salt.7 7.7 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001120002120003120004120005120006120007120008120009120010120011120012120013120014120015120016120017120018120019120020120021120022120023120024120025120026120027120028120029120030120031120032120033120034120035120036120037120038120039120040120041120042120043120044120045120046120047120048120049120050120051120052120053120054120055120056120057120058120059120060120061120062120063120064120065120066120067120068120069120070120071120072120073120074120075120076120077120078120079120080120081120082120083120084120085120086120087120088120089120090120091120092120093120094120095120096120097120098120099120100120101120102120103120104120105120106120107120108120109120110120111120112120113120114120115120116120117120118120119120120120121120122120123120124120125120126120127120128120129120130120131120132120133120134120135120136120137120138120139120140120141120142120143120144120145120146120147120148120149120150120151120152120153120154120155120156120157120158120159120160120161120162120163120164120165120166120167120168120169120170120171120172120173120174120175120176120177120178120179120180120181120182120183120184120185120186120187120188120189120190120191120192120193120194120195120196120197120198120199120200120201120202120203120204120205120206120207120208120209120210120211120212120213120214120215120216120217120218120219120220120221120222120223120224120225120226120227120228120229120230120231120232120233120234120235120236120237120238120239120240120241120242120243120244120245120246120247120248120249120250120251120252120253120254120255120256120257120258120259120260120261120262120263120264120265120266120267120268120269120270120271120272120273120274120275120276120277120278120279120280120281120282120283120284120285120286120287120288120289120290120291120292120293120294120295120296120297120298120299120300120301120302120303120304120305120306120307120308120309120310120311120312120313120314120315120316120317120318120319120320120321120322120323120324120325120326120327120328120329120330120331120332120333120334120335120336120337120338120339120340120341120342120343120344120345120346120347120348120349120350120351120352120353120354120355120356120357120358120359120360120361120362120363120364120365120366120367120368120369120370120371120372120373120374120375120376120377120378120379120380120381120382120383120384120385120386120387120388120389120390120391120392120393120394120395120396120397120398120399120400120401120402120403120404120405120406120407120408120409120410120411120412120413120414120415120416120417120418120419120420120421120422120423120424120425120426120427120428120429120430120431120432120433120434120435120436120437120438120439120440120441120442120443120444120445120446120447120448120449120450120451120452120453120454120455120456120457120458120459120460120461120462120463120464120465120466120467120468120469120470120471120472120473120474120475120476120477120478120479120480120481120482120483120484120485120486120487120488120489120490120491120492120493120494120495120496120497120498120499120500120501120502120503120504120505120506120507120508120509120510120511120512120513120514120515120516120517120518120519120520120521120522120523120524120525120526120527120528120529120530120531120532120533120534120535120536120537120538120539120540120541120542120543120544120545120546120547120548120549120550120551120552120553120554120555120556120557120558120559120560120561120562120563120564120565120566120567120568120569120570120571120572120573120574120575120576120577120578120579120580120581120582120583120584120585120586120587120588120589120590120591120592120593120594120595120596120597120598120599120600120601120602120603120604120605120606120607120608120609120610120611120612120613120614120615120616120617120618120619120620120621120622120623120624120625120626120627120628120629120630120631120632120633120634120635120636120637120638120639120640120641120642120643120644120645120646120647120648120649120650120651120652120653120654120655120656120657120658120659120660120661120662120663120664120665120666120667120668120669120670120671120672120673120674120675120676120677120678120679120680120681120682120683120684120685120686120687120688120689120690120691120692120693120694120695120696120697120698120699120700120701120702120703120704120705120706120707120708120709120710120711120712120713120714120715120716120717120718120719120720120721120722120723120724120725120726120727120728120729120730120731120732120733120734120735120736120737120738120739120740120741120742120743120744120745120746120747120748120749120750120751120752120753120754120755120756120757120758120759120760120761120762120763120764120765120766120767120768120769120770120771120772120773120774120775120776120777120778120779120780120781120782120783120784120785120786120787120788120789120790120791120792120793120794120795120796120797120798120799120800120801120802120803120804120805120806120807120808120809120810120811120812120813120814120815120816120817120818120819120820120821120822120823120824120825120826120827120828120829120830120831120832120833120834120835120836120837120838120839120840120841120842120843120844120845120846120847120848120849120850120851120852120853120854120855120856120857120858120859120860120861120862120863120864120865120866120867120868120869120870120871120872120873120874120875120876120877120878120879120880120881120882120883120884120885120886120887120888120889120890120891120892120893120894120895120896120897120898120899120900120901120902120903120904120905120906120907120908120909120910120911120912120913120914120915120916120917120918120919120920120921120922120923120924120925120926120927120928120929120930120931120932120933120934120935120936120937120938120939120940120941120942120943120944120945120946120947120948120949120950120951120952120953120954120955120956120957120958120959120960120961120962120963120964120965120966120967120968120969120970120971120972120973120974120975120976120977120978120979120980120981120982120983120984120985120986120987120988120989120990120991120992120993120994120995120996120997120998120999121000121001121002121003121004121005121006121007121008121009121010121011121012121013121014121015121016121017121018121019121020121021121022121023121024121025121026121027121028121029121030121031121032121033121034121035121036121037121038121039121040121041121042121043121044121045121046121047121048121049121050121051121052121053121054121055121056121057121058121059121060121061121062121063121064121065121066121067121068121069121070121071121072121073121074121075121076121077121078121079121080121081121082121083121084121085121086121087121088121089121090121091121092121093121094121095121096121097121098121099121100121101121102121103121104121105121106121107121108121109121110121111121112121113121114121115121116121117121118121119121120121121121122121123121124121125121126121127121128121129121130121131121132121133121134121135121136121137121138121139121140121141121142121143121144121145121146121147121148121149121150121151121152121153121154121155121156121157121158121159121160121161121162121163121164121165121166121167121168121169121170121171121172121173121174121175121176121177121178121179121180121181121182121183121184121185121186121187121188121189121190121191121192121193121194121195121196121197121198121199121200121201121202121203121204121205121206121207121208121209121210121211121212121213121214121215121216121217121218121219121220121221121222121223121224121225121226121227121228121229121230121231121232121233121234121235121236121237121238121239121240121241121242121243121244121245121246121247121248121249121250121251121252121253121254121255121256121257121258121259121260121261121262121263121264121265121266121267121268121269121270121271121272121273121274121275121276121277121278121279121280121281121282121283121284121285121286121287121288121289121290121291121292121293121294121295121296121297121298121299121300121301121302121303121304121305121306121307121308121309121310121311121312121313121314121315121316121317121318121319121320121321121322121323121324121325121326121327121328121329121330121331121332121333121334121335121336121337121338121339121340121341121342121343121344121345121346121347121348121349121350121351121352121353121354121355121356121357121358121359121360121361121362121363121364121365121366121367121368121369121370121371121372121373121374121375121376121377121378121379121380121381121382121383121384121385121386121387121388121389121390121391121392121393121394121395121396121397121398121399121400121401121402121403121404121405121406121407121408121409121410121411121412121413121414121415121416121417121418121419121420121421121422121423121424121425121426121427121428121429121430121431121432121433121434121435121436121437121438121439121440121441121442121443121444121445121446121447121448121449121450121451121452121453121454121455121456121457121458121459121460121461121462121463121464121465121466121467121468121469121470121471121472121473121474121475121476121477121478121479121480121481121482121483121484121485121486121487121488121489121490121491121492121493121494121495121496121497121498121499121500121501121502121503121504121505121506121507121508121509121510121511121512121513121514121515121516121517121518121519121520121521121522121523121524121525121526121527121528121529121530121531121532121533121534121535121536121537121538121539121540121541121542121543121544121545121546121547121548121549121550121551121552121553121554121555121556121557121558121559121560121561121562121563121564121565121566121567121568121569121570121571121572121573121574121575121576121577121578121579121580121581121582121583121584121585121586121587121588121589121590121591121592121593121594121595121596121597121598121599121600121601121602121603121604121605121606121607121608121609121610121611121612121613121614121615121616121617121618121619121620121621121622121623121624121625121626121627121628121629121630121631121632121633121634121635121636121637121638121639121640121641121642121643121644121645121646121647121648121649121650121651121652121653121654121655121656121657121658121659121660121661121662121663121664121665121666121667121668121669121670121671121672121673121674121675121676121677121678121679121680121681121682121683121684121685121686121687121688121689121690121691121692121693121694121695121696121697121698121699121700121701121702121703121704121705121706121707121708121709121710121711121712121713121714121715121716121717121718121719121720121721121722121723121724121725121726121727121728121729121730121731121732121733121734121735121736121737121738121739121740121741121742121743121744121745121746121747121748121749121750121751121752121753121754121755121756121757121758121759121760121761121762121763121764121765121766121767121768121769121770121771121772121773121774121775121776121777121778121779121780121781121782121783121784121785121786121787121788121789121790121791121792121793121794121795121796121797121798121799121800121801121802121803121804121805121806121807121808121809121810121811121812121813121814121815121816121817121818121819121820121821121822121823121824121825121826121827121828121829121830121831121832121833121834121835121836121837121838121839121840121841121842121843121844121845121846121847121848121849121850121851121852121853121854121855121856121857121858121859121860121861121862121863121864121865121866121867121868121869121870121871121872121873121874121875121876121877121878121879121880121881121882121883121884121885121886121887121888121889121890121891121892121893121894121895121896121897121898121899121900121901121902121903121904121905121906121907121908121909121910121911121912121913121914121915121916121917121918121919121920121921121922121923121924121925121926121927121928121929121930121931121932121933121934121935121936121937121938121939121940121941121942121943121944121945121946121947121948121949121950121951121952121953121954121955121956121957121958121959121960121961121962121963121964121965121966121967121968121969121970121971121972121973121974121975121976121977121978121979121980121981121982121983121984121985121986121987121988121989121990121991121992121993121994121995121996121997121998121999122000122001122002122003122004122005122006122007122008122009122010122011122012122013122014122015122016122017122018122019122020122021122022122023122024122025122026122027122028122029122030122031122032122033122034122035122036122037122038122039122040122041122042122043122044122045122046122047122048122049122050122051122052122053122054122055122056122057122058122059122060122061122062122063122064122065122066122067122068122069122070122071122072122073122074122075122076122077122078122079122080122081122082122083122084122085122086122087122088122089122090122091122092122093122094122095122096122097122098122099122100122101122102122103122104122105122106122107122108122109122110122111122112122113122114122115122116122117122118122119122120122121122122122123122124122125122126122127122128122129122130122131122132122133122134122135122136122137122138122139122140122141122142122143122144122145122146122147122148122149122150122151122152122153122154122155122156122157122158122159122160122161122162122163122164122165122166122167122168122169122170122171122172122173122174122175122176122177122178122179122180122181122182122183122184122185122186122187122188122189122190122191122192122193122194122195122196122197122198122199122200122201122202122203122204122205122206122207122208122209122210122211122212122213122214122215122216122217122218122219122220122221122222122223122224122225122226122227122228122229122230122231122232122233122234122235122236122237122238122239122240122241122242122243122244122245122246122247122248122249122250122251122252122253122254122255122256122257122258122259122260122261122262122263122264122265122266122267122268122269122270122271122272122273122274122275122276122277122278122279122280122281122282122283122284122285122286122287122288122289122290122291122292122293122294122295122296122297122298122299122300122301122302122303122304122305122306122307122308122309122310122311122312122313122314122315122316122317122318122319122320122321122322122323122324122325122326122327122328122329122330122331122332122333122334122335122336122337122338122339122340122341122342122343122344122345122346122347122348122349122350122351122352122353122354122355122356122357122358122359122360122361122362122363122364122365122366122367122368122369122370122371122372122373122374122375122376122377122378122379122380122381122382122383122384122385122386122387122388122389122390122391122392122393122394122395122396122397122398122399122400122401122402122403122404122405122406122407122408122409122410122411122412122413122414122415122416122417122418122419122420122421122422122423122424122425122426122427122428122429122430122431122432122433122434122435122436122437122438122439122440122441122442122443122444122445122446122447122448122449122450122451122452122453122454122455122456122457122458122459122460122461122462122463122464122465122466122467122468122469122470122471122472122473122474122475122476122477122478122479122480122481122482122483122484122485122486122487122488122489122490122491122492122493122494122495122496122497122498122499122500122501122502122503122504122505122506122507122508122509122510122511122512122513122514122515122516122517122518122519122520122521122522122523122524122525122526122527122528122529122530122531122532122533122534122535122536122537122538122539122540122541122542122543122544122545122546122547122548122549122550122551122552122553122554122555122556122557122558122559122560122561122562122563122564122565122566122567122568122569122570122571122572122573122574122575122576122577122578122579122580122581122582122583122584122585122586122587122588122589122590122591122592122593122594122595122596122597122598122599122600122601122602122603122604122605122606122607122608122609122610122611122612122613122614122615122616122617122618122619122620122621122622122623122624122625122626122627122628122629122630122631122632122633122634122635122636122637122638122639122640122641122642122643122644122645122646122647122648122649122650122651122652122653122654122655122656122657122658122659122660122661122662122663122664122665122666122667122668122669122670122671122672122673122674122675122676122677122678122679122680122681122682122683122684122685122686122687122688122689122690122691122692122693122694122695122696122697122698122699122700122701122702122703122704122705122706122707122708122709122710122711122712122713122714122715122716122717122718122719122720122721122722122723122724122725122726122727122728122729122730122731122732122733122734122735122736122737122738122739122740122741122742122743122744122745122746122747122748122749122750122751122752122753122754122755122756122757122758122759122760122761122762122763122764122765122766122767122768122769122770122771122772122773122774122775122776122777122778122779122780122781122782122783122784122785122786122787122788122789122790122791122792122793122794122795122796122797122798122799122800122801122802122803122804122805122806122807122808122809122810122811122812122813122814122815122816122817122818122819122820122821122822122823122824122825122826122827122828122829122830122831122832122833122834122835122836122837122838122839122840122841122842122843122844122845122846122847122848122849122850122851122852122853122854122855122856122857122858122859122860122861122862122863122864122865122866122867122868122869122870122871122872122873122874122875122876122877122878122879122880122881122882122883122884122885122886122887122888122889122890122891122892122893122894122895122896122897122898122899122900122901122902122903122904122905122906122907122908122909122910122911122912122913122914122915122916122917122918122919122920122921122922122923122924122925122926122927122928122929122930122931122932122933122934122935122936122937122938122939122940122941122942122943122944122945122946122947122948122949122950122951122952122953122954122955122956122957122958122959122960122961122962122963122964122965122966122967122968122969122970122971122972122973122974122975122976122977122978122979122980122981122982122983122984122985122986122987122988122989122990122991122992122993122994122995122996122997122998122999123000123001123002123003123004123005123006123007123008123009123010123011123012123013123014123015123016123017123018123019123020123021123022123023123024123025123026123027123028123029123030123031123032123033123034123035123036123037123038123039123040123041123042123043123044123045123046123047123048123049123050123051123052123053123054123055123056123057123058123059123060123061123062123063123064123065123066123067123068123069123070123071123072123073123074123075123076123077123078123079123080123081123082123083123084123085123086123087123088123089123090123091123092123093123094123095123096123097123098123099123100123101123102123103123104123105123106123107123108123109123110123111123112123113123114123115123116123117123118123119123120123121123122123123123124123125123126123127123128123129123130123131123132123133123134123135123136123137123138123139123140123141123142123143123144123145123146123147123148123149123150123151123152123153123154123155123156123157123158123159123160123161123162123163123164123165123166123167123168123169123170123171123172123173123174123175123176123177123178123179123180123181123182123183123184123185123186123187123188123189123190123191123192123193123194123195123196123197123198123199123200123201123202123203123204123205123206123207123208123209123210123211123212123213123214123215123216123217123218123219123220123221123222123223123224123225123226123227123228123229123230123231123232123233123234123235123236123237123238123239123240123241123242123243123244123245123246123247123248123249123250123251123252123253123254123255123256123257123258123259123260123261123262123263123264123265123266123267123268123269123270123271123272123273123274123275123276123277123278123279123280123281123282123283123284123285123286123287123288123289123290123291123292123293123294123295123296123297123298123299123300123301123302123303123304123305123306123307123308123309123310123311123312123313123314123315123316123317123318123319123320123321123322123323123324123325123326123327123328123329123330123331123332123333123334123335123336123337123338123339123340123341123342123343123344123345123346123347123348123349123350123351123352123353123354123355123356123357123358123359123360123361123362123363123364123365123366123367123368123369123370123371123372123373123374123375123376123377123378123379123380123381123382123383123384123385123386123387123388123389123390123391123392123393123394123395123396123397123398123399123400123401123402123403123404123405123406123407123408123409123410123411123412123413123414123415123416123417123418123419123420123421123422123423123424123425123426123427123428123429123430123431123432123433123434123435123436123437123438123439123440123441123442123443123444123445123446123447123448123449123450123451123452123453123454123455123456123457123458123459123460123461123462123463123464123465123466123467123468123469123470123471123472123473123474123475123476123477123478123479123480123481123482123483123484123485123486123487123488123489123490123491123492123493123494123495123496123497123498123499123500123501123502123503123504123505123506123507123508123509123510123511123512123513123514123515123516123517123518123519123520123521123522123523123524123525123526123527123528123529123530123531123532123533123534123535123536123537123538123539123540123541123542123543123544123545123546123547123548123549123550123551123552123553123554123555123556123557123558123559123560123561123562123563123564123565123566123567123568123569123570123571123572123573123574123575123576123577123578123579123580123581123582123583123584123585123586123587123588123589123590123591123592123593123594123595123596123597123598123599123600123601123602123603123604123605123606123607123608123609123610123611123612123613123614123615123616123617123618123619123620123621123622123623123624123625123626123627123628123629123630123631123632123633123634123635123636123637123638123639123640123641123642123643123644123645123646123647123648123649123650123651123652123653123654123655123656123657123658123659123660123661123662123663123664123665123666123667123668123669123670123671123672123673123674123675123676123677123678123679123680123681123682123683123684123685123686123687123688123689123690123691123692123693123694123695123696123697123698123699123700123701123702123703123704123705123706123707123708123709123710123711123712123713123714123715123716123717123718123719123720123721123722123723123724123725123726123727123728123729123730123731123732123733123734123735123736123737123738123739123740123741123742123743123744123745123746123747123748123749123750123751123752123753123754123755123756123757123758123759123760123761123762123763123764123765123766123767123768123769123770123771123772123773123774123775123776123777123778123779123780123781123782123783123784123785123786123787123788123789123790123791123792123793123794123795123796123797123798123799123800123801123802123803123804123805123806123807123808123809123810123811123812123813123814123815123816123817123818123819123820123821123822123823123824123825123826123827123828123829123830123831123832123833123834123835123836123837123838123839123840123841123842123843123844123845123846123847123848123849123850123851123852123853123854123855123856123857123858123859123860123861123862123863123864123865123866123867123868123869123870123871123872123873123874123875123876123877123878123879123880123881123882123883123884123885123886123887123888123889123890123891123892123893123894123895123896123897123898123899123900123901123902123903123904123905123906123907123908123909123910123911123912123913123914123915123916123917123918123919123920123921123922123923123924123925123926123927123928123929123930123931123932123933123934123935123936123937123938123939123940123941123942123943123944123945123946123947123948123949123950123951123952123953123954123955123956123957123958123959123960123961123962123963123964123965123966123967123968123969123970123971123972123973123974123975123976123977123978123979123980123981123982123983123984123985123986123987123988123989123990123991123992123993123994123995123996123997123998123999124000124001124002124003124004124005124006124007124008124009124010124011124012124013124014124015124016124017124018124019124020124021124022124023124024124025124026124027124028124029124030124031124032124033124034124035124036124037124038124039124040124041124042124043124044124045124046124047124048124049124050124051124052124053124054124055124056124057124058124059124060124061124062124063124064124065124066124067124068124069124070124071124072124073124074124075124076124077124078124079124080124081124082124083124084124085124086124087124088124089124090124091124092124093124094124095124096124097124098124099124100124101124102124103124104124105124106124107124108124109124110124111124112124113124114124115124116124117124118124119124120124121124122124123124124124125124126124127124128124129124130124131124132124133124134124135124136124137124138124139124140124141124142124143124144124145124146124147124148124149124150124151124152124153124154124155124156124157124158124159124160124161124162124163124164124165124166124167124168124169124170124171124172124173124174124175124176124177124178124179124180124181124182124183124184124185124186124187124188124189124190124191124192124193124194124195124196124197124198124199124200124201124202124203124204124205124206124207124208124209124210124211124212124213124214124215124216124217124218124219124220124221124222124223124224124225124226124227124228124229124230124231124232124233124234124235124236124237124238124239124240124241124242124243124244124245124246124247124248124249124250124251124252124253124254124255124256124257124258124259124260124261124262124263124264124265124266124267124268124269124270124271124272124273124274124275124276124277124278124279124280124281124282124283124284124285124286124287124288124289124290124291124292124293124294124295124296124297124298124299124300124301124302124303124304124305124306124307124308124309124310124311124312124313124314124315124316124317124318124319124320124321124322124323124324124325124326124327124328124329124330124331124332124333124334124335124336124337124338124339124340124341124342124343124344124345124346124347124348124349124350124351124352124353124354124355124356124357124358124359124360124361124362124363124364124365124366124367124368124369124370124371124372124373124374124375124376124377124378124379124380124381124382124383124384124385124386124387124388124389124390124391124392124393124394124395124396124397124398124399124400124401124402124403124404124405124406124407124408124409124410124411124412124413124414124415124416124417124418124419124420124421124422124423124424124425124426124427124428124429124430124431124432124433124434124435124436124437124438124439124440124441124442124443124444124445124446124447124448124449124450124451124452124453124454124455124456124457124458124459124460124461124462124463124464124465124466124467124468124469124470124471124472124473124474124475124476124477124478124479124480124481124482124483124484124485124486124487124488124489124490124491124492124493124494124495124496124497124498124499124500124501124502124503124504124505124506124507124508124509124510124511124512124513124514124515124516124517124518124519124520124521124522124523124524124525124526124527124528124529124530124531124532124533124534124535124536124537124538124539124540124541124542124543124544124545124546124547124548124549124550124551124552124553124554124555124556124557124558124559124560124561124562124563124564124565124566124567124568124569124570124571124572124573124574124575124576124577124578124579124580124581124582124583124584124585124586124587124588124589124590124591124592124593124594124595124596124597124598124599124600124601124602124603124604124605124606124607124608124609124610124611124612124613124614124615124616124617124618124619124620124621124622124623124624124625124626124627124628124629124630124631124632124633124634124635124636124637124638124639124640124641124642124643124644124645124646124647124648124649124650124651124652124653124654124655124656124657124658124659124660124661124662124663124664124665124666124667124668124669124670124671124672124673124674124675124676124677124678124679124680124681124682124683124684124685124686124687124688124689124690124691124692124693124694124695124696124697124698124699124700124701124702124703124704124705124706124707124708124709124710124711124712124713124714124715124716124717124718124719124720124721124722124723124724124725124726124727124728124729124730124731124732124733124734124735124736124737124738124739124740124741124742124743124744124745124746124747124748124749124750124751124752124753124754124755124756124757124758124759124760124761124762124763124764124765124766124767124768124769124770124771124772124773124774124775124776124777124778124779124780124781124782124783124784124785124786124787124788124789124790124791124792124793124794124795124796124797124798124799124800124801124802124803124804124805124806124807124808124809124810124811124812124813124814124815124816124817124818124819124820124821124822124823124824124825124826124827124828124829124830124831124832124833124834124835124836124837124838124839124840124841124842124843124844124845124846124847124848124849124850124851124852124853124854124855124856124857124858124859124860124861124862124863124864124865124866124867124868124869124870124871124872124873124874124875124876124877124878124879124880124881124882124883124884124885124886124887124888124889124890124891124892124893124894124895124896124897124898124899124900124901124902124903124904124905124906124907124908124909124910124911124912124913124914124915124916124917124918124919124920124921124922124923124924124925124926124927124928124929124930124931124932124933124934124935124936124937124938124939124940124941124942124943124944124945124946124947124948124949124950124951124952124953124954124955124956124957124958124959124960124961124962124963124964124965124966124967124968124969124970124971124972124973124974124975124976124977124978124979124980124981124982124983124984124985124986124987124988124989124990124991124992124993124994124995124996124997124998124999125000125001125002125003125004125005125006125007125008125009125010125011125012125013125014125015125016125017125018125019125020125021125022125023125024125025125026125027125028125029125030125031125032125033125034125035125036125037125038125039125040125041125042125043125044125045125046125047125048125049125050125051125052125053125054125055125056125057125058125059125060125061125062125063125064125065125066125067125068125069125070125071125072125073125074125075125076125077125078125079125080125081125082125083125084125085125086125087125088125089125090125091125092125093125094125095125096125097125098125099125100125101125102125103125104125105125106125107125108125109125110125111125112125113125114125115125116125117125118125119125120125121125122125123125124125125125126125127125128125129125130125131125132125133125134125135125136125137125138125139125140125141125142125143125144125145125146125147125148125149125150125151125152125153125154125155125156125157125158125159125160125161125162125163125164125165125166125167125168125169125170125171125172125173125174125175125176125177125178125179125180125181125182125183125184125185125186125187125188125189125190125191125192125193125194125195125196125197125198125199125200125201125202125203125204125205125206125207125208125209125210125211125212125213125214125215125216125217125218125219125220125221125222125223125224125225125226125227125228125229125230125231125232125233125234125235125236125237125238125239125240125241125242125243125244125245125246125247125248125249125250125251125252125253125254125255125256125257125258125259125260125261125262125263125264125265125266125267125268125269125270125271125272125273125274125275125276125277125278125279125280125281125282125283125284125285125286125287125288125289125290125291125292125293125294125295125296125297125298125299125300125301125302125303125304125305125306125307125308125309125310125311125312125313125314125315125316125317125318125319125320125321125322125323125324125325125326125327125328125329125330125331125332125333125334125335125336125337125338125339125340125341125342125343125344125345125346125347125348125349125350125351125352125353125354125355125356125357125358125359125360125361125362125363125364125365125366125367125368125369125370125371125372125373125374125375125376125377125378125379125380125381125382125383125384125385125386125387125388125389125390125391125392125393125394125395125396125397125398125399125400125401125402125403125404125405125406125407125408125409125410125411125412125413125414125415125416125417125418125419125420125421125422125423125424125425125426125427125428125429125430125431125432125433125434125435125436125437125438125439125440125441125442125443125444125445125446125447125448125449125450125451125452125453125454125455125456125457125458125459125460125461125462125463125464125465125466125467125468125469125470125471125472125473125474125475125476125477125478125479125480125481125482125483125484125485125486125487125488125489125490125491125492125493125494125495125496125497125498125499125500125501125502125503125504125505125506125507125508125509125510125511125512125513125514125515125516125517125518125519125520125521125522125523125524125525125526125527125528125529125530125531125532125533125534125535125536125537125538125539125540125541125542125543125544125545125546125547125548125549125550125551125552125553125554125555125556125557125558125559125560125561125562125563125564125565125566125567125568125569125570125571125572125573125574125575125576125577125578125579125580125581125582125583125584125585125586125587125588125589125590125591125592125593125594125595125596125597125598125599125600125601125602125603125604125605125606125607125608125609125610125611125612125613125614125615125616125617125618125619125620125621125622125623125624125625125626125627125628125629125630125631125632125633125634125635125636125637125638125639125640125641125642125643125644125645125646125647125648125649125650125651125652125653125654125655125656125657125658125659125660125661125662125663125664125665125666125667125668125669125670125671125672125673125674125675125676125677125678125679125680125681125682125683125684125685125686125687125688125689125690125691125692125693125694125695125696125697125698125699125700125701125702125703125704125705125706125707125708125709125710125711125712125713125714125715125716125717125718125719125720125721125722125723125724125725125726125727125728125729125730125731125732125733125734125735125736125737125738125739125740125741125742125743125744125745125746125747125748125749125750125751125752125753125754125755125756125757125758125759125760125761125762125763125764125765125766125767125768125769125770125771125772125773125774125775125776125777125778125779125780125781125782125783125784125785125786125787125788125789125790125791125792125793125794125795125796125797125798125799125800125801125802125803125804125805125806125807125808125809125810125811125812125813125814125815125816125817125818125819125820125821125822125823125824125825125826125827125828125829125830125831125832125833125834125835125836125837125838125839125840125841125842125843125844125845125846125847125848125849125850125851125852125853125854125855125856125857125858125859125860125861125862125863125864125865125866125867125868125869125870125871125872125873125874125875125876125877125878125879125880125881125882125883125884125885125886125887125888125889125890125891125892125893125894125895125896125897125898125899125900125901125902125903125904125905125906125907125908125909125910125911125912125913125914125915125916125917125918125919125920125921125922125923125924125925125926125927125928125929125930125931125932125933125934125935125936125937125938125939125940125941125942125943125944125945125946125947125948125949125950125951125952125953125954125955125956125957125958125959125960125961125962125963125964125965125966125967125968125969125970125971125972125973125974125975125976125977125978125979125980125981125982125983125984125985125986125987125988125989125990125991125992125993125994125995125996125997125998125999126000126001126002126003126004126005126006126007126008126009126010126011126012126013126014126015126016126017126018126019126020126021126022126023126024126025126026126027126028126029126030126031126032126033126034126035126036126037126038126039126040126041126042126043126044126045126046126047126048126049126050126051126052126053126054126055126056126057126058126059126060126061126062126063126064126065126066126067126068126069126070126071126072126073126074126075126076126077126078126079126080126081126082126083126084126085126086126087126088126089126090126091126092126093126094126095126096126097126098126099126100126101126102126103126104126105126106126107126108126109126110126111126112126113126114126115126116126117126118126119126120126121126122126123126124126125126126126127126128126129126130126131126132126133126134126135126136126137126138126139126140126141126142126143126144126145126146126147126148126149126150126151126152126153126154126155126156126157126158126159126160126161126162126163126164126165126166126167126168126169126170126171126172126173126174126175126176126177126178126179126180126181126182126183126184126185126186126187126188126189126190126191126192126193126194126195126196126197126198126199126200126201126202126203126204126205126206126207126208126209126210126211126212126213126214126215126216126217126218126219126220126221126222126223126224126225126226126227126228126229126230126231126232126233126234126235126236126237126238126239126240126241126242126243126244126245126246126247126248126249126250126251126252126253126254126255126256126257126258126259126260126261126262126263126264126265126266126267126268126269126270126271126272126273126274126275126276126277126278126279126280126281126282126283126284126285126286126287126288126289126290126291126292126293126294126295126296126297126298126299126300126301126302126303126304126305126306126307126308126309126310126311126312126313126314126315126316126317126318126319126320126321126322126323126324126325126326126327126328126329126330126331126332126333126334126335126336126337126338126339126340126341126342126343126344126345126346126347126348126349126350126351126352126353126354126355126356126357126358126359126360126361126362126363126364126365126366126367126368126369126370126371126372126373126374126375126376126377126378126379126380126381126382126383126384126385126386126387126388126389126390126391126392126393126394126395126396126397126398126399126400126401126402126403126404126405126406126407126408126409126410126411126412126413126414126415126416126417126418126419126420126421126422126423126424126425126426126427126428126429126430126431126432126433126434126435126436126437126438126439126440126441126442126443126444126445126446126447126448126449126450126451126452126453126454126455126456126457126458126459126460126461126462126463126464126465126466126467126468126469126470126471126472126473126474126475126476126477126478126479126480126481126482126483126484126485126486126487126488126489126490126491126492126493126494126495126496126497126498126499126500126501126502126503126504126505126506126507126508126509126510126511126512126513126514126515126516126517126518126519126520126521126522126523126524126525126526126527126528126529126530126531126532126533126534126535126536126537126538126539126540126541126542126543126544126545126546126547126548126549126550126551126552126553126554126555126556126557126558126559126560126561126562126563126564126565126566126567126568126569126570126571126572126573126574126575126576126577126578126579126580126581126582126583126584126585126586126587126588126589126590126591126592126593126594126595126596126597126598126599126600126601126602126603126604126605126606126607126608126609126610126611126612126613126614126615126616126617126618126619126620126621126622126623126624126625126626126627126628126629126630126631126632126633126634126635126636126637126638126639126640126641126642126643126644126645126646126647126648126649126650126651126652126653126654126655126656126657126658126659126660126661126662126663126664126665126666126667126668126669126670126671126672126673126674126675126676126677126678126679126680126681126682126683126684126685126686126687126688126689126690126691126692126693126694126695126696126697126698126699126700126701126702126703126704126705126706126707126708126709126710126711126712126713126714126715126716126717126718126719126720126721126722126723126724126725126726126727126728126729126730126731126732126733126734126735126736126737126738126739126740126741126742126743126744126745126746126747126748126749126750126751126752126753126754126755126756126757126758126759126760126761126762126763126764126765126766126767126768126769126770126771126772126773126774126775126776126777126778126779126780126781126782126783126784126785126786126787126788126789126790126791126792126793126794126795126796126797126798126799126800126801126802126803126804126805126806126807126808126809126810126811126812126813126814126815126816126817126818126819126820126821126822126823126824126825126826126827126828126829126830126831126832126833126834126835126836126837126838126839126840126841126842126843126844126845126846126847126848126849126850126851126852126853126854126855126856126857126858126859126860126861126862126863126864126865126866126867126868126869126870126871126872126873126874126875126876126877126878126879126880126881126882126883126884126885126886126887126888126889126890126891126892126893126894126895126896126897126898126899126900126901126902126903126904126905126906126907126908126909126910126911126912126913126914126915126916126917126918126919126920126921126922126923126924126925126926126927126928126929126930126931126932126933126934126935126936126937126938126939126940126941126942126943126944126945126946126947126948126949126950126951126952126953126954126955126956126957126958126959126960126961126962126963126964126965126966126967126968126969126970126971126972126973126974126975126976126977126978126979126980126981126982126983126984126985126986126987126988126989126990126991126992126993126994126995126996126997126998126999127000127001127002127003127004127005127006127007127008127009127010127011127012127013127014127015127016127017127018127019127020127021127022127023127024127025127026127027127028127029127030127031127032127033127034127035127036127037127038127039127040127041127042127043127044127045127046127047127048127049127050127051127052127053127054127055127056127057127058127059127060127061127062127063127064127065127066127067127068127069127070127071127072127073127074127075127076127077127078127079127080127081127082127083127084127085127086127087127088127089127090127091127092127093127094127095127096127097127098127099127100127101127102127103127104127105127106127107127108127109127110127111127112127113127114127115127116127117127118127119127120127121127122127123127124127125127126127127127128127129127130127131127132127133127134127135127136127137127138127139127140127141127142127143127144127145127146127147127148127149127150127151127152127153127154127155127156127157127158127159127160127161127162127163127164127165127166127167127168127169127170127171127172127173127174127175127176127177127178127179127180127181127182127183127184127185127186127187127188127189127190127191127192127193127194127195127196127197127198127199127200127201127202127203127204127205127206127207127208127209127210127211127212127213127214127215127216127217127218127219127220127221127222127223127224127225127226127227127228127229127230127231127232127233127234127235127236127237127238127239127240127241127242127243127244127245127246127247127248127249127250127251127252127253127254127255127256127257127258127259127260127261127262127263127264127265127266127267127268127269127270127271127272127273127274127275127276127277127278127279127280127281127282127283127284127285127286127287127288127289127290127291127292127293127294127295127296127297127298127299127300127301127302127303127304127305127306127307127308127309127310127311127312127313127314127315127316127317127318127319127320127321127322127323127324127325127326127327127328127329127330127331127332127333127334127335127336127337127338127339127340127341127342127343127344127345127346127347127348127349127350127351127352127353127354127355127356127357127358127359127360127361127362127363127364127365127366127367127368127369127370127371127372127373127374127375127376127377127378127379127380127381127382127383127384127385127386127387127388127389127390127391127392127393127394127395127396127397127398127399127400127401127402127403127404127405127406127407127408127409127410127411127412127413127414127415127416127417127418127419127420127421127422127423127424127425127426127427127428127429127430127431127432127433127434127435127436127437127438127439127440127441127442127443127444127445127446127447127448127449127450127451127452127453127454127455127456127457127458127459127460127461127462127463127464127465127466127467127468127469127470127471127472127473127474127475127476127477127478127479127480127481127482127483127484127485127486127487127488127489127490127491127492127493127494127495127496127497127498127499127500127501127502127503127504127505127506127507127508127509127510127511127512127513127514127515127516127517127518127519127520127521127522127523127524127525127526127527127528127529127530127531127532127533127534127535127536127537127538127539127540127541127542127543127544127545127546127547127548127549127550127551127552127553127554127555127556127557127558127559127560127561127562127563127564127565127566127567127568127569127570127571127572127573127574127575127576127577127578127579127580127581127582127583127584127585127586127587127588127589127590127591127592127593127594127595127596127597127598127599127600127601127602127603127604127605127606127607127608127609127610127611127612127613127614127615127616127617127618127619127620127621127622127623127624127625127626127627127628127629127630127631127632127633127634127635127636127637127638127639127640127641127642127643127644127645127646127647127648127649127650127651127652127653127654127655127656127657127658127659127660127661127662127663127664127665127666127667127668127669127670127671127672127673127674127675127676127677127678127679127680127681127682127683127684127685127686127687127688127689127690127691127692127693127694127695127696127697127698127699127700127701127702127703127704127705127706127707127708127709127710127711127712127713127714127715127716127717127718127719127720127721127722127723127724127725127726127727127728127729127730127731127732127733127734127735127736127737127738127739127740127741127742127743127744127745127746127747127748127749127750127751127752127753127754127755127756127757127758127759127760127761127762127763127764127765127766127767127768127769127770127771127772127773127774127775127776127777127778127779127780127781127782127783127784127785127786127787127788127789127790127791127792127793127794127795127796127797127798127799127800127801127802127803127804127805127806127807127808127809127810127811127812127813127814127815127816127817127818127819127820127821127822127823127824127825127826127827127828127829127830127831127832127833127834127835127836127837127838127839127840127841127842127843127844127845127846127847127848127849127850127851127852127853127854127855127856127857127858127859127860127861127862127863127864127865127866127867127868127869127870127871127872127873127874127875127876127877127878127879127880127881127882127883127884127885127886127887127888127889127890127891127892127893127894127895127896127897127898127899127900127901127902127903127904127905127906127907127908127909127910127911127912127913127914127915127916127917127918127919127920127921127922127923127924127925127926127927127928127929127930127931127932127933127934127935127936127937127938127939127940127941127942127943127944127945127946127947127948127949127950127951127952127953127954127955127956127957127958127959127960127961127962127963127964127965127966127967127968127969127970127971127972127973127974127975127976127977127978127979127980127981127982127983127984127985127986127987127988127989127990127991127992127993127994127995127996127997127998127999128000128001128002128003128004128005128006128007128008128009128010128011128012128013128014128015128016128017128018128019128020128021128022128023128024128025128026128027128028128029128030128031128032128033128034128035128036128037128038128039128040128041128042128043128044128045128046128047128048128049128050128051128052128053128054128055128056128057128058128059128060128061128062128063128064128065128066128067128068128069128070128071128072128073128074128075128076128077128078128079128080128081128082128083128084128085128086128087128088128089128090128091128092128093128094128095128096128097128098128099128100128101128102128103128104128105128106128107128108128109128110128111128112128113128114128115128116128117128118128119128120128121128122128123128124128125128126128127128128128129128130128131128132128133128134128135128136128137128138128139128140128141128142128143128144128145128146128147128148128149128150128151128152128153128154128155128156128157128158128159128160128161128162128163128164128165128166128167128168128169128170128171128172128173128174128175128176128177128178128179128180128181128182128183128184128185128186128187128188128189128190128191128192128193128194128195128196128197128198128199128200128201128202128203128204128205128206128207128208128209128210128211128212128213128214128215128216128217128218128219128220128221128222128223128224128225128226128227128228128229128230128231128232128233128234128235128236128237128238128239128240128241128242128243128244128245128246128247128248128249128250128251128252128253128254128255128256128257128258128259128260128261128262128263128264128265128266128267128268128269128270128271128272128273128274128275128276128277128278128279128280128281128282128283128284128285128286128287128288128289128290128291128292128293128294128295128296128297128298128299128300128301128302128303128304128305128306128307128308128309128310128311128312128313128314128315128316128317128318128319128320128321128322128323128324128325128326128327128328128329128330128331128332128333128334128335128336128337128338128339128340128341128342128343128344128345128346128347128348128349128350128351128352128353128354128355128356128357128358128359128360128361128362128363128364128365128366128367128368128369128370128371128372128373128374128375128376128377128378128379128380128381128382128383128384128385128386128387128388128389128390128391128392128393128394128395128396128397128398128399128400128401128402128403128404128405128406128407128408128409128410128411128412128413128414128415128416128417128418128419128420128421128422128423128424128425128426128427128428128429128430128431128432128433128434128435128436128437128438128439128440128441128442128443128444128445128446128447128448128449128450128451128452128453128454128455128456128457128458128459128460128461128462128463128464128465128466128467128468128469128470128471128472128473128474128475128476128477128478128479128480128481128482128483128484128485128486128487128488128489128490128491128492128493128494128495128496128497128498128499128500128501128502128503128504128505128506128507128508128509128510128511128512128513128514128515128516128517128518128519128520128521128522128523128524128525128526128527128528128529128530128531128532128533128534128535128536128537128538128539128540128541128542128543128544128545128546128547128548128549128550128551128552128553128554128555128556128557128558128559128560128561128562128563128564128565128566128567128568128569128570128571128572128573128574128575128576128577128578128579128580128581128582128583128584128585128586128587128588128589128590128591128592128593128594128595128596128597128598128599128600128601128602128603128604128605128606128607128608128609128610128611128612128613128614128615128616128617128618128619128620128621128622128623128624128625128626128627128628128629128630128631128632128633128634128635128636128637128638128639128640128641128642128643128644128645128646128647128648128649128650128651128652128653128654128655128656128657128658128659128660128661128662128663128664128665128666128667128668128669128670128671128672128673128674128675128676128677128678128679128680128681128682128683128684128685128686128687128688128689128690128691128692128693128694128695128696128697128698128699128700128701128702128703128704128705128706128707128708128709128710128711128712128713128714128715128716128717128718128719128720128721128722128723128724128725128726128727128728128729128730128731128732128733128734128735128736128737128738128739128740128741128742128743128744128745128746128747128748128749128750128751128752128753128754128755128756128757128758128759128760128761128762128763128764128765128766128767128768128769128770128771128772128773128774128775128776128777128778128779128780128781128782128783128784128785128786128787128788128789128790128791128792128793128794128795128796128797128798128799128800128801128802128803128804128805128806128807128808128809128810128811128812128813128814128815128816128817128818128819128820128821128822128823128824128825128826128827128828128829128830128831128832128833128834128835128836128837128838128839128840128841128842128843128844128845128846128847128848128849128850128851128852128853128854128855128856128857128858128859128860128861128862128863128864128865128866128867128868128869128870128871128872128873128874128875128876128877128878128879128880128881128882128883128884128885128886128887128888128889128890128891128892128893128894128895128896128897128898128899128900128901128902128903128904128905128906128907128908128909128910128911128912128913128914128915128916128917128918128919128920128921128922128923128924128925128926128927128928128929128930128931128932128933128934128935128936128937128938128939128940128941128942128943128944128945128946128947128948128949128950128951128952128953128954128955128956128957128958128959128960128961128962128963128964128965128966128967128968128969128970128971128972128973128974128975128976128977128978128979128980128981128982128983128984128985128986128987128988128989128990128991128992128993128994128995128996128997128998128999129000129001129002129003129004129005129006129007129008129009129010129011129012129013129014129015129016129017129018129019129020129021129022129023129024129025129026129027129028129029129030129031129032129033129034129035129036129037129038129039129040129041129042129043129044129045129046129047129048129049129050129051129052129053129054129055129056129057129058129059129060129061129062129063129064129065129066129067129068129069129070129071129072129073129074129075129076129077129078129079129080129081129082129083129084129085129086129087129088129089129090129091129092129093129094129095129096129097129098129099129100129101129102129103129104129105129106129107129108129109129110129111129112129113129114129115129116129117129118129119129120129121129122129123129124129125129126129127129128129129129130129131129132129133129134129135129136129137129138129139129140129141129142129143129144129145129146129147129148129149129150129151129152129153129154129155129156129157129158129159129160129161129162129163129164129165129166129167129168129169129170129171129172129173129174129175129176129177129178129179129180129181129182129183129184129185129186129187129188129189129190129191129192129193129194129195129196129197129198129199129200129201129202129203129204129205129206129207129208129209129210129211129212129213129214129215129216129217129218129219129220129221129222129223129224129225129226129227129228129229129230129231129232129233129234129235129236129237129238129239129240129241129242129243129244129245129246129247129248129249129250129251129252129253129254129255129256129257129258129259129260129261129262129263129264129265129266129267129268129269129270129271129272129273129274129275129276129277129278129279129280129281129282129283129284129285129286129287129288129289129290129291129292129293129294129295129296129297129298129299129300129301129302129303129304129305129306129307129308129309129310129311129312129313129314129315129316129317129318129319129320129321129322129323129324129325129326129327129328129329129330129331129332129333129334129335129336129337129338129339129340129341129342129343129344129345129346129347129348129349129350129351129352129353129354129355129356129357129358129359129360129361129362129363129364129365129366129367129368129369129370129371129372129373129374129375129376129377129378129379129380129381129382129383129384129385129386129387129388129389129390129391129392129393129394129395129396129397129398129399129400129401129402129403129404129405129406129407129408129409129410129411129412129413129414129415129416129417129418129419129420129421129422129423129424129425129426129427129428129429129430129431129432129433129434129435129436129437129438129439129440129441129442129443129444129445129446129447129448129449129450129451129452129453129454129455129456129457129458129459129460129461129462129463129464129465129466129467129468129469129470129471129472129473129474129475129476129477129478129479129480129481129482129483129484129485129486129487129488129489129490129491129492129493129494129495129496129497129498129499129500129501129502129503129504129505129506129507129508129509129510129511129512129513129514129515129516129517129518129519129520129521129522129523129524129525129526129527129528129529129530129531129532129533129534129535129536129537129538129539129540129541129542129543129544129545129546129547129548129549129550129551129552129553129554129555129556129557129558129559129560129561129562129563129564129565129566129567129568129569129570129571129572129573129574129575129576129577129578129579129580129581129582129583129584129585129586129587129588129589129590129591129592129593129594129595129596129597129598129599129600129601129602129603129604129605129606129607129608129609129610129611129612129613129614129615129616129617129618129619129620129621129622129623129624129625129626129627129628129629129630129631129632129633129634129635129636129637129638129639129640129641129642129643129644129645129646129647129648129649129650129651129652129653129654129655129656129657129658129659129660129661129662129663129664129665129666129667129668129669129670129671129672129673129674129675129676129677129678129679129680129681129682129683129684129685129686129687129688129689129690129691129692129693129694129695129696129697129698129699129700129701129702129703129704129705129706129707129708129709129710129711129712129713129714129715129716129717129718129719129720129721129722129723129724129725129726129727129728129729129730129731129732129733129734129735129736129737129738129739129740129741129742129743129744129745129746129747129748129749129750129751129752129753129754129755129756129757129758129759129760129761129762129763129764129765129766129767129768129769129770129771129772129773129774129775129776129777129778129779129780129781129782129783129784129785129786129787129788129789129790129791129792129793129794129795129796129797129798129799129800129801129802129803129804129805129806129807129808129809129810129811129812129813129814129815129816129817129818129819129820129821129822129823129824129825129826129827129828129829129830129831129832129833129834129835129836129837129838129839129840129841129842129843129844129845129846129847129848129849129850129851129852129853129854129855129856129857129858129859129860129861129862129863129864129865129866129867129868129869129870129871129872129873129874129875129876129877129878129879129880129881129882129883129884129885129886129887129888129889129890129891129892129893129894129895129896129897129898129899129900129901129902129903129904129905129906129907129908129909129910129911129912129913129914129915129916129917129918129919129920129921129922129923129924129925129926129927129928129929129930129931129932129933129934129935129936129937129938129939129940129941129942129943129944129945129946129947129948129949129950129951129952129953129954129955129956129957129958129959129960129961129962129963129964129965129966129967129968129969129970129971129972129973129974129975129976129977129978129979129980129981129982129983129984129985129986129987129988129989129990129991129992129993129994129995129996129997129998129999130000130001130002130003130004130005130006130007130008130009130010130011130012130013130014130015130016130017130018130019130020130021130022130023130024130025130026130027130028130029130030130031130032130033130034130035130036130037130038130039130040130041130042130043130044130045130046130047130048130049130050130051130052130053130054130055130056130057130058130059130060130061130062130063130064130065130066130067130068130069130070130071130072130073130074130075130076130077130078130079130080130081130082130083130084130085130086130087130088130089130090130091130092130093130094130095130096130097130098130099130100130101130102130103130104130105130106130107130108130109130110130111130112130113130114130115130116130117130118130119130120130121130122130123130124130125130126130127130128130129130130130131130132130133130134130135130136130137130138130139130140130141130142130143130144130145130146130147130148130149130150130151130152130153130154130155130156130157130158130159130160130161130162130163130164130165130166130167130168130169130170130171130172130173130174130175130176130177130178130179130180130181130182130183130184130185130186130187130188130189130190130191130192130193130194130195130196130197130198130199130200130201130202130203130204130205130206130207130208130209130210130211130212130213130214130215130216130217130218130219130220130221130222130223130224130225130226130227130228130229130230130231130232130233130234130235130236130237130238130239130240130241130242130243130244130245130246130247130248130249130250130251130252130253130254130255130256130257130258130259130260130261130262130263130264130265130266130267130268130269130270130271130272130273130274130275130276130277130278130279130280130281130282130283130284130285130286130287130288130289130290130291130292130293130294130295130296130297130298130299130300130301130302130303130304130305130306130307130308130309130310130311130312130313130314130315130316130317130318130319130320130321130322130323130324130325130326130327130328130329130330130331130332130333130334130335130336130337130338130339130340130341130342130343130344130345130346130347130348130349130350130351130352130353130354130355130356130357130358130359130360130361130362130363130364130365130366130367130368130369130370130371130372130373130374130375130376130377130378130379130380130381130382130383130384130385130386130387130388130389130390130391130392130393130394130395130396130397130398130399130400130401130402130403130404130405130406130407130408130409130410130411130412130413130414130415130416130417130418130419130420130421130422130423130424130425130426130427130428130429130430130431130432130433130434130435130436130437130438130439130440130441130442130443130444130445130446130447130448130449130450130451130452130453130454130455130456130457130458130459130460130461130462130463130464130465130466130467130468130469130470130471130472130473130474130475130476130477130478130479130480130481130482130483130484130485130486130487130488130489130490130491130492130493130494130495130496130497130498130499130500130501130502130503130504130505130506130507130508130509130510130511130512130513130514130515130516130517130518130519130520130521130522130523130524130525130526130527130528130529130530130531130532130533130534130535130536130537130538130539130540130541130542130543130544130545130546130547130548130549130550130551130552130553130554130555130556130557130558130559130560130561130562130563130564130565130566130567130568130569130570130571130572130573130574130575130576130577130578130579130580130581130582130583130584130585130586130587130588130589130590130591130592130593130594130595130596130597130598130599130600130601130602130603130604130605130606130607130608130609130610130611130612130613130614130615130616130617130618130619130620130621130622130623130624130625130626130627130628130629130630130631130632130633130634130635130636130637130638130639130640130641130642130643130644130645130646130647130648130649130650130651130652130653130654130655130656130657130658130659130660130661130662130663130664130665130666130667130668130669130670130671130672130673130674130675130676130677130678130679130680130681130682130683130684130685130686130687130688130689130690130691130692130693130694130695130696130697130698130699130700130701130702130703130704130705130706130707130708130709130710130711130712130713130714130715130716130717130718130719130720130721130722130723130724130725130726130727130728130729130730130731130732130733130734130735130736130737130738130739130740130741130742130743130744130745130746130747130748130749130750130751130752130753130754130755130756130757130758130759130760130761130762130763130764130765130766130767130768130769130770130771130772130773130774130775130776130777130778130779130780130781130782130783130784130785130786130787130788130789130790130791130792130793130794130795130796130797130798130799130800130801130802130803130804130805130806130807130808130809130810130811130812130813130814130815130816130817130818130819130820130821130822130823130824130825130826130827130828130829130830130831130832130833130834130835130836130837130838130839130840130841130842130843130844130845130846130847130848130849130850130851130852130853130854130855130856130857130858130859130860130861130862130863130864130865130866130867130868130869130870130871130872130873130874130875130876130877130878130879130880130881130882130883130884130885130886130887130888130889130890130891130892130893130894130895130896130897130898130899130900130901130902130903130904130905130906130907130908130909130910130911130912130913130914130915130916130917130918130919130920130921130922130923130924130925130926130927130928130929130930130931130932130933130934130935130936130937130938130939130940130941130942130943130944130945130946130947130948130949130950130951130952130953130954130955130956130957130958130959130960130961130962130963130964130965130966130967130968130969130970130971130972130973130974130975130976130977130978130979130980130981130982130983130984130985130986130987130988130989130990130991130992130993130994130995130996130997130998130999131000131001131002131003131004131005131006131007131008131009131010131011131012131013131014131015131016131017131018131019131020131021131022131023131024131025131026131027131028131029131030131031131032131033131034131035131036131037131038131039131040131041131042131043131044131045131046131047131048131049131050131051131052131053131054131055131056131057131058131059131060131061131062131063131064131065131066131067131068131069131070131071131072131073131074131075131076131077131078131079131080131081131082131083131084131085131086131087131088131089131090131091131092131093131094131095131096131097131098131099131100131101131102131103131104131105131106131107131108131109131110131111131112131113131114131115131116131117131118131119131120131121131122131123131124131125131126131127131128131129131130131131131132131133131134131135131136131137131138131139131140131141131142131143131144131145131146131147131148131149131150131151131152131153131154131155131156131157131158131159131160131161131162131163131164131165131166131167131168131169131170131171131172131173131174131175131176131177131178131179131180131181131182131183131184131185131186131187131188131189131190131191131192131193131194131195131196131197131198131199131200131201131202131203131204131205131206131207131208131209131210131211131212131213131214131215131216131217131218131219131220131221131222131223131224131225131226131227131228131229131230131231131232131233131234131235131236131237131238131239131240131241131242131243131244131245131246131247131248131249131250131251131252131253131254131255131256131257131258131259131260131261131262131263131264131265131266131267131268131269131270131271131272131273131274131275131276131277131278131279131280131281131282131283131284131285131286131287131288131289131290131291131292131293131294131295131296131297131298131299131300131301131302131303131304131305131306131307131308131309131310131311131312131313131314131315131316131317131318131319131320131321131322131323131324131325131326131327131328131329131330131331131332131333131334131335131336131337131338131339131340131341131342131343131344131345131346131347131348131349131350131351131352131353131354131355131356131357131358131359131360131361131362131363131364131365131366131367131368131369131370131371131372131373131374131375131376131377131378131379131380131381131382131383131384131385131386131387131388131389131390131391131392131393131394131395131396131397131398131399131400131401131402131403131404131405131406131407131408131409131410131411131412131413131414131415131416131417131418131419131420131421131422131423131424131425131426131427131428131429131430131431131432131433131434131435131436131437131438131439131440131441131442131443131444131445131446131447131448131449131450131451131452131453131454131455131456131457131458131459131460131461131462131463131464131465131466131467131468131469131470131471131472131473131474131475131476131477131478131479131480131481131482131483131484131485131486131487131488131489131490131491131492131493131494131495131496131497131498131499131500131501131502131503131504131505131506131507131508131509131510131511131512131513131514131515131516131517131518131519131520131521131522131523131524131525131526131527131528131529131530131531131532131533131534131535131536131537131538131539131540131541131542131543131544131545131546131547131548131549131550131551131552131553131554131555131556131557131558131559131560131561131562131563131564131565131566131567131568131569131570131571131572131573131574131575131576131577131578131579131580131581131582131583131584131585131586131587131588131589131590131591131592131593131594131595131596131597131598131599131600131601131602131603131604131605131606131607131608131609131610131611131612131613131614131615131616131617131618131619131620131621131622131623131624131625131626131627131628131629131630131631131632131633131634131635131636131637131638131639131640131641131642131643131644131645131646131647131648131649131650131651131652131653131654131655131656131657131658131659131660131661131662131663131664131665131666131667131668131669131670131671131672131673131674131675131676131677131678131679131680131681131682131683131684131685131686131687131688131689131690131691131692131693131694131695131696131697131698131699131700131701131702131703131704131705131706131707131708131709131710131711131712131713131714131715131716131717131718131719131720131721131722131723131724131725131726131727131728131729131730131731131732131733131734131735131736131737131738131739131740131741131742131743131744131745131746131747131748131749131750131751131752131753131754131755131756131757131758131759131760131761131762131763131764131765131766131767131768131769131770131771131772131773131774131775131776131777131778131779131780131781131782131783131784131785131786131787131788131789131790131791131792131793131794131795131796131797131798131799131800131801131802131803131804131805131806131807131808131809131810131811131812131813131814131815131816131817131818131819131820131821131822131823131824131825131826131827131828131829131830131831131832131833131834131835131836131837131838131839131840131841131842131843131844131845131846131847131848131849131850131851131852131853131854131855131856131857131858131859131860131861131862131863131864131865131866131867131868131869131870131871131872131873131874131875131876131877131878131879131880131881131882131883131884131885131886131887131888131889131890131891131892131893131894131895131896131897131898131899131900131901131902131903131904131905131906131907131908131909131910131911131912131913131914131915131916131917131918131919131920131921131922131923131924131925131926131927131928131929131930131931131932131933131934131935131936131937131938131939131940131941131942131943131944131945131946131947131948131949131950131951131952131953131954131955131956131957131958131959131960131961131962131963131964131965131966131967131968131969131970131971131972131973131974131975131976131977131978131979131980131981131982131983131984131985131986131987131988131989131990131991131992131993131994131995131996131997131998131999132000132001132002132003132004132005132006132007132008132009132010132011132012132013132014132015132016132017132018132019132020132021132022132023132024132025132026132027132028132029132030132031132032132033132034132035132036132037132038132039132040132041132042132043132044132045132046132047132048132049132050132051132052132053132054132055132056132057132058132059132060132061132062132063132064132065132066132067132068132069132070132071132072132073132074132075132076132077132078132079132080132081132082132083132084132085132086132087132088132089132090132091132092132093132094132095132096132097132098132099132100132101132102132103132104132105132106132107132108132109132110132111132112132113132114132115132116132117132118132119132120132121132122132123132124132125132126132127132128132129132130132131132132132133132134132135132136132137132138132139132140132141132142132143132144132145132146132147132148132149132150132151132152132153132154132155132156132157132158132159132160132161132162132163132164132165132166132167132168132169132170132171132172132173132174132175132176132177132178132179132180132181132182132183132184132185132186132187132188132189132190132191132192132193132194132195132196132197132198132199132200132201132202132203132204132205132206132207132208132209132210132211132212132213132214132215132216132217132218132219132220132221132222132223132224132225132226132227132228132229132230132231132232132233132234132235132236132237132238132239132240132241132242132243132244132245132246132247132248132249132250132251132252132253132254132255132256132257132258132259132260132261132262132263132264132265132266132267132268132269132270132271132272132273132274132275132276132277132278132279132280132281132282132283132284132285132286132287132288132289132290132291132292132293132294132295132296132297132298132299132300132301132302132303132304132305132306132307132308132309132310132311132312132313132314132315132316132317132318132319132320132321132322132323132324132325132326132327132328132329132330132331132332132333132334132335132336132337132338132339132340132341132342132343132344132345132346132347132348132349132350132351132352132353132354132355132356132357132358132359132360132361132362132363132364132365132366132367132368132369132370132371132372132373132374132375132376132377132378132379132380132381132382132383132384132385132386132387132388132389132390132391132392132393132394132395132396132397132398132399132400132401132402132403132404132405132406132407132408132409132410132411132412132413132414132415132416132417132418132419132420132421132422132423132424132425132426132427132428132429132430132431132432132433132434132435132436132437132438132439132440132441132442132443132444132445132446132447132448132449132450132451132452132453132454132455132456132457132458132459132460132461132462132463132464132465132466132467132468132469132470132471132472132473132474132475132476132477132478132479132480132481132482132483132484132485132486132487132488132489132490132491132492132493132494132495132496132497132498132499132500132501132502132503132504132505132506132507132508132509132510132511132512132513132514132515132516132517132518132519132520132521132522132523132524132525132526132527132528132529132530132531132532132533132534132535132536132537132538132539132540132541132542132543132544132545132546132547132548132549132550132551132552132553132554132555132556132557132558132559132560132561132562132563132564132565132566132567132568132569132570132571132572132573132574132575132576132577132578132579132580132581132582132583132584132585132586132587132588132589132590132591132592132593132594132595132596132597132598132599132600132601132602132603132604132605132606132607132608132609132610132611132612132613132614132615132616132617132618132619132620132621132622132623132624132625132626132627132628132629132630132631132632132633132634132635132636132637132638132639132640132641132642132643132644132645132646132647132648132649132650132651132652132653132654132655132656132657132658132659132660132661132662132663132664132665132666132667132668132669132670132671132672132673132674132675132676132677132678132679132680132681132682132683132684132685132686132687132688132689132690132691132692132693132694132695132696132697132698132699132700132701132702132703132704132705132706132707132708132709132710132711132712132713132714132715132716132717132718132719132720132721132722132723132724132725132726132727132728132729132730132731132732132733132734132735132736132737132738132739132740132741132742132743132744132745132746132747132748132749132750132751132752132753132754132755132756132757132758132759132760132761132762132763132764132765132766132767132768132769132770132771132772132773132774132775132776132777132778132779132780132781132782132783132784132785132786132787132788132789132790132791132792132793132794132795132796132797132798132799132800132801132802132803132804132805132806132807132808132809132810132811132812132813132814132815132816132817132818132819132820132821132822132823132824132825132826132827132828132829132830132831132832132833132834132835132836132837132838132839132840132841132842132843132844132845132846132847132848132849132850132851132852132853132854132855132856132857132858132859132860132861132862132863132864132865132866132867132868132869132870132871132872132873132874132875132876132877132878132879132880132881132882132883132884132885132886132887132888132889132890132891132892132893132894132895132896132897132898132899132900132901132902132903132904132905132906132907132908132909132910132911132912132913132914132915132916132917132918132919132920132921132922132923132924132925132926132927132928132929132930132931132932132933132934132935132936132937132938132939132940132941132942132943132944132945132946132947132948132949132950132951132952132953132954132955132956132957132958132959132960132961132962132963132964132965132966132967132968132969132970132971132972132973132974132975132976132977132978132979132980132981132982132983132984132985132986132987132988132989132990132991132992132993132994132995132996132997132998132999133000133001133002133003133004133005133006133007133008133009133010133011133012133013133014133015133016133017133018133019133020133021133022133023133024133025133026133027133028133029133030133031133032133033133034133035133036133037133038133039133040133041133042133043133044133045133046133047133048133049133050133051133052133053133054133055133056133057133058133059133060133061133062133063133064133065133066133067133068133069133070133071133072133073133074133075133076133077133078133079133080133081133082133083133084133085133086133087133088133089133090133091133092133093133094133095133096133097133098133099133100133101133102133103133104133105133106133107133108133109133110133111133112133113133114133115133116133117133118133119133120133121133122133123133124133125133126133127133128133129133130133131133132133133133134133135133136133137133138133139133140133141133142133143133144133145133146133147133148133149133150133151133152133153133154133155133156133157133158133159133160133161133162133163133164133165133166133167133168133169133170133171133172133173133174133175133176133177133178133179133180133181133182133183133184133185133186133187133188133189133190133191133192133193133194133195133196133197133198133199133200133201133202133203133204133205133206133207133208133209133210133211133212133213133214133215133216133217133218133219133220133221133222133223133224133225133226133227133228133229133230133231133232133233133234133235133236133237133238133239133240133241133242133243133244133245133246133247133248133249133250133251133252133253133254133255133256133257133258133259133260133261133262133263133264133265133266133267133268133269133270133271133272133273133274133275133276133277133278133279133280133281133282133283133284133285133286133287133288133289133290133291133292133293133294133295133296133297133298133299133300133301133302133303133304133305133306133307133308133309133310133311133312133313133314133315133316133317133318133319133320133321133322133323133324133325133326133327133328133329133330133331133332133333133334133335133336133337133338133339133340133341133342133343133344133345133346133347133348133349133350133351133352133353133354133355133356133357133358133359133360133361133362133363133364133365133366133367133368133369133370133371133372133373133374133375133376133377133378133379133380133381133382133383133384133385133386133387133388133389133390133391133392133393133394133395133396133397133398133399133400133401133402133403133404133405133406133407133408133409133410133411133412133413133414133415133416133417133418133419133420133421133422133423133424133425133426133427133428133429133430133431133432133433133434133435133436133437133438133439133440133441133442133443133444133445133446133447133448133449133450133451133452133453133454133455133456133457133458133459133460133461133462133463133464133465133466133467133468133469133470133471133472133473133474133475133476133477133478133479133480133481133482133483133484133485133486133487133488133489133490133491133492133493133494133495133496133497133498133499133500133501133502133503133504133505133506133507133508133509133510133511133512133513133514133515133516133517133518133519133520133521133522133523133524133525133526133527133528133529133530133531133532133533133534133535133536133537133538133539133540133541133542133543133544133545133546133547133548133549133550133551133552133553133554133555133556133557133558133559133560133561133562133563133564133565133566133567133568133569133570133571133572133573133574133575133576133577133578133579133580133581133582133583133584133585133586133587133588133589133590133591133592133593133594133595133596133597133598133599133600133601133602133603133604133605133606133607133608133609133610133611133612133613133614133615133616133617133618133619133620133621133622133623133624133625133626133627133628133629133630133631133632133633133634133635133636133637133638133639133640133641133642133643133644133645133646133647133648133649133650133651133652133653133654133655133656133657133658133659133660133661133662133663133664133665133666133667133668133669133670133671133672133673133674133675133676133677133678133679133680133681133682133683133684133685133686133687133688133689133690133691133692133693133694133695133696133697133698133699133700133701133702133703133704133705133706133707133708133709133710133711133712133713133714133715133716133717133718133719133720133721133722133723133724133725133726133727133728133729133730133731133732133733133734133735133736133737133738133739133740133741133742133743133744133745133746133747133748133749133750133751133752133753133754133755133756133757133758133759133760133761133762133763133764133765133766133767133768133769133770133771133772133773133774133775133776133777133778133779133780133781133782133783133784133785133786133787133788133789133790133791133792133793133794133795133796133797133798133799133800133801133802133803133804133805133806133807133808133809133810133811133812133813133814133815133816133817133818133819133820133821133822133823133824133825133826133827133828133829133830133831133832133833133834133835133836133837133838133839133840133841133842133843133844133845133846133847133848133849133850133851133852133853133854133855133856133857133858133859133860133861133862133863133864133865133866133867133868133869133870133871133872133873133874133875133876133877133878133879133880133881133882133883133884133885133886133887133888133889133890133891133892133893133894133895133896133897133898133899133900133901133902133903133904133905133906133907133908133909133910133911133912133913133914133915133916133917133918133919133920133921133922133923133924133925133926133927133928133929133930133931133932133933133934133935133936133937133938133939133940133941133942133943133944133945133946133947133948133949133950133951133952133953133954133955133956133957133958133959133960133961133962133963133964133965133966133967133968133969133970133971133972133973133974133975133976133977133978133979133980133981133982133983133984133985133986133987133988133989133990133991133992133993133994133995133996133997133998133999134000134001134002134003134004134005134006134007134008134009134010134011134012134013134014134015134016134017134018134019134020134021134022134023134024134025134026134027134028134029134030134031134032134033134034134035134036134037134038134039134040134041134042134043134044134045134046134047134048134049134050134051134052134053134054134055134056134057134058134059134060134061134062134063134064134065134066134067134068134069134070134071134072134073134074134075134076134077134078134079134080134081134082134083134084134085134086134087134088134089134090134091134092134093134094134095134096134097134098134099134100134101134102134103134104134105134106134107134108134109134110134111134112134113134114134115134116134117134118134119134120134121134122134123134124134125134126134127134128134129134130134131134132134133134134134135134136134137134138134139134140134141134142134143134144134145134146134147134148134149134150134151134152134153134154134155134156134157134158134159134160134161134162134163134164134165134166134167134168134169134170134171134172134173134174134175134176134177134178134179134180134181134182134183134184134185134186134187134188134189134190134191134192134193134194134195134196134197134198134199134200134201134202134203134204134205134206134207134208134209134210134211134212134213134214134215134216134217134218134219134220134221134222134223134224134225134226134227134228134229134230134231134232134233134234134235134236134237134238134239134240134241134242134243134244134245134246134247134248134249134250134251134252134253134254134255134256134257134258134259134260134261134262134263134264134265134266134267134268134269134270134271134272134273134274134275134276134277134278134279134280134281134282134283134284134285134286134287134288134289134290134291134292134293134294134295134296134297134298134299134300134301134302134303134304134305134306134307134308134309134310134311134312134313134314134315134316134317134318134319134320134321134322134323134324134325134326134327134328134329134330134331134332134333134334134335134336134337134338134339134340134341134342134343134344134345134346134347134348134349134350134351134352134353134354134355134356134357134358134359134360134361134362134363134364134365134366134367134368134369134370134371134372134373134374134375134376134377134378134379134380134381134382134383134384134385134386134387134388134389134390134391134392134393134394134395134396134397134398134399134400134401134402134403134404134405134406134407134408134409134410134411134412134413134414134415134416134417134418134419134420134421134422134423134424134425134426134427134428134429134430134431134432134433134434134435134436134437134438134439134440134441134442134443134444134445134446134447134448134449134450134451134452134453134454134455134456134457134458134459134460134461134462134463134464134465134466134467134468134469134470134471134472134473134474134475134476134477134478134479134480134481134482134483134484134485134486134487134488134489134490134491134492134493134494134495134496134497134498134499134500134501134502134503134504134505134506134507134508134509134510134511134512134513134514134515134516134517134518134519134520134521134522134523134524134525134526134527134528134529134530134531134532134533134534134535134536134537134538134539134540134541134542134543134544134545134546134547134548134549134550134551134552134553134554134555134556134557134558134559134560134561134562134563134564134565134566134567134568134569134570134571134572134573134574134575134576134577134578134579134580134581134582134583134584134585134586134587134588134589134590134591134592134593134594134595134596134597134598134599134600134601134602134603134604134605134606134607134608134609134610134611134612134613134614134615134616134617134618134619134620134621134622134623134624134625134626134627134628134629134630134631134632134633134634134635134636134637134638134639134640134641134642134643134644134645134646134647134648134649134650134651134652134653134654134655134656134657134658134659134660134661134662134663134664134665134666134667134668134669134670134671134672134673134674134675134676134677134678134679134680134681134682134683134684134685134686134687134688134689134690134691134692134693134694134695134696134697134698134699134700134701134702134703134704134705134706134707134708134709134710134711134712134713134714134715134716134717134718134719134720134721134722134723134724134725134726134727134728134729134730134731134732134733134734134735134736134737134738134739134740134741134742134743134744134745134746134747134748134749134750134751134752134753134754134755134756134757134758134759134760134761134762134763134764134765134766134767134768134769134770134771134772134773134774134775134776134777134778134779134780134781134782134783134784134785134786134787134788134789134790134791134792134793134794134795134796134797134798134799134800134801134802134803134804134805134806134807134808134809134810134811134812134813134814134815134816134817134818134819134820134821134822134823134824134825134826134827134828134829134830134831134832134833134834134835134836134837134838134839134840134841134842134843134844134845134846134847134848134849134850134851134852134853134854134855134856134857134858134859134860134861134862134863134864134865134866134867134868134869134870134871134872134873134874134875134876134877134878134879134880134881134882134883134884134885134886134887134888134889134890134891134892134893134894134895134896134897134898134899134900134901134902134903134904134905134906134907134908134909134910134911134912134913134914134915134916134917134918134919134920134921134922134923134924134925134926134927134928134929134930134931134932134933134934134935134936134937134938134939134940134941134942134943134944134945134946134947134948134949134950134951134952134953134954134955134956134957134958134959134960134961134962134963134964134965134966134967134968134969134970134971134972134973134974134975134976134977134978134979134980134981134982134983134984134985134986134987134988134989134990134991134992134993134994134995134996134997134998134999135000135001135002135003135004135005135006135007135008135009135010135011135012135013135014135015135016135017135018135019135020135021135022135023135024135025135026135027135028135029135030135031135032135033135034135035135036135037135038135039135040135041135042135043135044135045135046135047135048135049135050135051135052135053135054135055135056135057135058135059135060135061135062135063135064135065135066135067135068135069135070135071135072135073135074135075135076135077135078135079135080135081135082135083135084135085135086135087135088135089135090135091135092135093135094135095135096135097135098135099135100135101135102135103135104135105135106135107135108135109135110135111135112135113135114135115135116135117135118135119135120135121135122135123135124135125135126135127135128135129135130135131135132135133135134135135135136135137135138135139135140135141135142135143135144135145135146135147135148135149135150135151135152135153135154135155135156135157135158135159135160135161135162135163135164135165135166135167135168135169135170135171135172135173135174135175135176135177135178135179135180135181135182135183135184135185135186135187135188135189135190135191135192135193135194135195135196135197135198135199135200135201135202135203135204135205135206135207135208135209135210135211135212135213135214135215135216135217135218135219135220135221135222135223135224135225135226135227135228135229135230135231135232135233135234135235135236135237135238135239135240135241135242135243135244135245135246135247135248135249135250135251135252135253135254135255135256135257135258135259135260135261135262135263135264135265135266135267135268135269135270135271135272135273135274135275135276135277135278135279135280135281135282135283135284135285135286135287135288135289135290135291135292135293135294135295135296135297135298135299135300135301135302135303135304135305135306135307135308135309135310135311135312135313135314135315135316135317135318135319135320135321135322135323135324135325135326135327135328135329135330135331135332135333135334135335135336135337135338135339135340135341135342135343135344135345135346135347135348135349135350135351135352135353135354135355135356135357135358135359135360135361135362135363135364135365135366135367135368135369135370135371135372135373135374135375135376135377135378135379135380135381135382135383135384135385135386135387135388135389135390135391135392135393135394135395135396135397135398135399135400135401135402135403135404135405135406135407135408135409135410135411135412135413135414135415135416135417135418135419135420135421135422135423135424135425135426135427135428135429135430135431135432135433135434135435135436135437135438135439135440135441135442135443135444135445135446135447135448135449135450135451135452135453135454135455135456135457135458135459135460135461135462135463135464135465135466135467135468135469135470135471135472135473135474135475135476135477135478135479135480135481135482135483135484135485135486135487135488135489135490135491135492135493135494135495135496135497135498135499135500135501135502135503135504135505135506135507135508135509135510135511135512135513135514135515135516135517135518135519135520135521135522135523135524135525135526135527135528135529135530135531135532135533135534135535135536135537135538135539135540135541135542135543135544135545135546135547135548135549135550135551135552135553135554135555135556135557135558135559135560135561135562135563135564135565135566135567135568135569135570135571135572135573135574135575135576135577135578135579135580135581135582135583135584135585135586135587135588135589135590135591135592135593135594135595135596135597135598135599135600135601135602135603135604135605135606135607135608135609135610135611135612135613135614135615135616135617135618135619135620135621135622135623135624135625135626135627135628135629135630135631135632135633135634135635135636135637135638135639135640135641135642135643135644135645135646135647135648135649135650135651135652135653135654135655135656135657135658135659135660135661135662135663135664135665135666135667135668135669135670135671135672135673135674135675135676135677135678135679135680135681135682135683135684135685135686135687135688135689135690135691135692135693135694135695135696135697135698135699135700135701135702135703135704135705135706135707135708135709135710135711135712135713135714135715135716135717135718135719135720135721135722135723135724135725135726135727135728135729135730135731135732135733135734135735135736135737135738135739135740135741135742135743135744135745135746135747135748135749135750135751135752135753135754135755135756135757135758135759135760135761135762135763135764135765135766135767135768135769135770135771135772135773135774135775135776135777135778135779135780135781135782135783135784135785135786135787135788135789135790135791135792135793135794135795135796135797135798135799135800135801135802135803135804135805135806135807135808135809135810135811135812135813135814135815135816135817135818135819135820135821135822135823135824135825135826135827135828135829135830135831135832135833135834135835135836135837135838135839135840135841135842135843135844135845135846135847135848135849135850135851135852135853135854135855135856135857135858135859135860135861135862135863135864135865135866135867135868135869135870135871135872135873135874135875135876135877135878135879135880135881135882135883135884135885135886135887135888135889135890135891135892135893135894135895135896135897135898135899135900135901135902135903135904135905135906135907135908135909135910135911135912135913135914135915135916135917135918135919135920135921135922135923135924135925135926135927135928135929135930135931135932135933135934135935135936135937135938135939135940135941135942135943135944135945135946135947135948135949135950135951135952135953135954135955135956135957135958135959135960135961135962135963135964135965135966135967135968135969135970135971135972135973135974135975135976135977135978135979135980135981135982135983135984135985135986135987135988135989135990135991135992135993135994135995135996135997135998135999136000136001136002136003136004136005136006136007136008136009136010136011136012136013136014136015136016136017136018136019136020136021136022136023136024136025136026136027136028136029136030136031136032136033136034136035136036136037136038136039136040136041136042136043136044136045136046136047136048136049136050136051136052136053136054136055136056136057136058136059136060136061136062136063136064136065136066136067136068136069136070136071136072136073136074136075136076136077136078136079136080136081136082136083136084136085136086136087136088136089136090136091136092136093136094136095136096136097136098136099136100136101136102136103136104136105136106136107136108136109136110136111136112136113136114136115136116136117136118136119136120136121136122136123136124136125136126136127136128136129136130136131136132136133136134136135136136136137136138136139136140136141136142136143136144136145136146136147136148136149136150136151136152136153136154136155136156136157136158136159136160136161136162136163136164136165136166136167136168136169136170136171136172136173136174136175136176136177136178136179136180136181136182136183136184136185136186136187136188136189136190136191136192136193136194136195136196136197136198136199136200136201136202136203136204136205136206136207136208136209136210136211136212136213136214136215136216136217136218136219136220136221136222136223136224136225136226136227136228136229136230136231136232136233136234136235136236136237136238136239136240136241136242136243136244136245136246136247136248136249136250136251136252136253136254136255136256136257136258136259136260136261136262136263136264136265136266136267136268136269136270136271136272136273136274136275136276136277136278136279136280136281136282136283136284136285136286136287136288136289136290136291136292136293136294136295136296136297136298136299136300136301136302136303136304136305136306136307136308136309136310136311136312136313136314136315136316136317136318136319136320136321136322136323136324136325136326136327136328136329136330136331136332136333136334136335136336136337136338136339136340136341136342136343136344136345136346136347136348136349136350136351136352136353136354136355136356136357136358136359136360136361136362136363136364136365136366136367136368136369136370136371136372136373136374136375136376136377136378136379136380136381136382136383136384136385136386136387136388136389136390136391136392136393136394136395136396136397136398136399136400136401136402136403136404136405136406136407136408136409136410136411136412136413136414136415136416136417136418136419136420136421136422136423136424136425136426136427136428136429136430136431136432136433136434136435136436136437136438136439136440136441136442136443136444136445136446136447136448136449136450136451136452136453136454136455136456136457136458136459136460136461136462136463136464136465136466136467136468136469136470136471136472136473136474136475136476136477136478136479136480136481136482136483136484136485136486136487136488136489136490136491136492136493136494136495136496136497136498136499136500136501136502136503136504136505136506136507136508136509136510136511136512136513136514136515136516136517136518136519136520136521136522136523136524136525136526136527136528136529136530136531136532136533136534136535136536136537136538136539136540136541136542136543136544136545136546136547136548136549136550136551136552136553136554136555136556136557136558136559136560136561136562136563136564136565136566136567136568136569136570136571136572136573136574136575136576136577136578136579136580136581136582136583136584136585136586136587136588136589136590136591136592136593136594136595136596136597136598136599136600136601136602136603136604136605136606136607136608136609136610136611136612136613136614136615136616136617136618136619136620136621136622136623136624136625136626136627136628136629136630136631136632136633136634136635136636136637136638136639136640136641136642136643136644136645136646136647136648136649136650136651136652136653136654136655136656136657136658136659136660136661136662136663136664136665136666136667136668136669136670136671136672136673136674136675136676136677136678136679136680136681136682136683136684136685136686136687136688136689136690136691136692136693136694136695136696136697136698136699136700136701136702136703136704136705136706136707136708136709136710136711136712136713136714136715136716136717136718136719136720136721136722136723136724136725136726136727136728136729136730136731136732136733136734136735136736136737136738136739136740136741136742136743136744136745136746136747136748136749136750136751136752136753136754136755136756136757136758136759136760136761136762136763136764136765136766136767136768136769136770136771136772136773136774136775136776136777136778136779136780136781136782136783136784136785136786136787136788136789136790136791136792136793136794136795136796136797136798136799136800136801136802136803136804136805136806136807136808136809136810136811136812136813136814136815136816136817136818136819136820136821136822136823136824136825136826136827136828136829136830136831136832136833136834136835136836136837136838136839136840136841136842136843136844136845136846136847136848136849136850136851136852136853136854136855136856136857136858136859136860136861136862136863136864136865136866136867136868136869136870136871136872136873136874136875136876136877136878136879136880136881136882136883136884136885136886136887136888136889136890136891136892136893136894136895136896136897136898136899136900136901136902136903136904136905136906136907136908136909136910136911136912136913136914136915136916136917136918136919136920136921136922136923136924136925136926136927136928136929136930136931136932136933136934136935136936136937136938136939136940136941136942136943136944136945136946136947136948136949136950136951136952136953136954136955136956136957136958136959136960136961136962136963136964136965136966136967136968136969136970136971136972136973136974136975136976136977136978136979136980136981136982136983136984136985136986136987136988136989136990136991136992136993136994136995136996136997136998136999137000137001137002137003137004137005137006137007137008137009137010137011137012137013137014137015137016137017137018137019137020137021137022137023137024137025137026137027137028137029137030137031137032137033137034137035137036137037137038137039137040137041137042137043137044137045137046137047137048137049137050137051137052137053137054137055137056137057137058137059137060137061137062137063137064137065137066137067137068137069137070137071137072137073137074137075137076137077137078137079137080137081137082137083137084137085137086137087137088137089137090137091137092137093137094137095137096137097137098137099137100137101137102137103137104137105137106137107137108137109137110137111137112137113137114137115137116137117137118137119137120137121137122137123137124137125137126137127137128137129137130137131137132137133137134137135137136137137137138137139137140137141137142137143137144137145137146137147137148137149137150137151137152137153137154137155137156137157137158137159137160137161137162137163137164137165137166137167137168137169137170137171137172137173137174137175137176137177137178137179137180137181137182137183137184137185137186137187137188137189137190137191137192137193137194137195137196137197137198137199137200137201137202137203137204137205137206137207137208137209137210137211137212137213137214137215137216137217137218137219137220137221137222137223137224137225137226137227137228137229137230137231137232137233137234137235137236137237137238137239137240137241137242137243137244137245137246137247137248137249137250137251137252137253137254137255137256137257137258137259137260137261137262137263137264137265137266137267137268137269137270137271137272137273137274137275137276137277137278137279137280137281137282137283137284137285137286137287137288137289137290137291137292137293137294137295137296137297137298137299137300137301137302137303137304137305137306137307137308137309137310137311137312137313137314137315137316137317137318137319137320137321137322137323137324137325137326137327137328137329137330137331137332137333137334137335137336137337137338137339137340137341137342137343137344137345137346137347137348137349137350137351137352137353137354137355137356137357137358137359137360137361137362137363137364137365137366137367137368137369137370137371137372137373137374137375137376137377137378137379137380137381137382137383137384137385137386137387137388137389137390137391137392137393137394137395137396137397137398137399137400137401137402137403137404137405137406137407137408137409137410137411137412137413137414137415137416137417137418137419137420137421137422137423137424137425137426137427137428137429137430137431137432137433137434137435137436137437137438137439137440137441137442137443137444137445137446137447137448137449137450137451137452137453137454137455137456137457137458137459137460137461137462137463137464137465137466137467137468137469137470137471137472137473137474137475137476137477137478137479137480137481137482137483137484137485137486137487137488137489137490137491137492137493137494137495137496137497137498137499137500137501137502137503137504137505137506137507137508137509137510137511137512137513137514137515137516137517137518137519137520137521137522137523137524137525137526137527137528137529137530137531137532137533137534137535137536137537137538137539137540137541137542137543137544137545137546137547137548137549137550137551137552137553137554137555137556137557137558137559137560137561137562137563137564137565137566137567137568137569137570137571137572137573137574137575137576137577137578137579137580137581137582137583137584137585137586137587137588137589137590137591137592137593137594137595137596137597137598137599137600137601137602137603137604137605137606137607137608137609137610137611137612137613137614137615137616137617137618137619137620137621137622137623137624137625137626137627137628137629137630137631137632137633137634137635137636137637137638137639137640137641137642137643137644137645137646137647137648137649137650137651137652137653137654137655137656137657137658137659137660137661137662137663137664137665137666137667137668137669137670137671137672137673137674137675137676137677137678137679137680137681137682137683137684137685137686137687137688137689137690137691137692137693137694137695137696137697137698137699137700137701137702137703137704137705137706137707137708137709137710137711137712137713137714137715137716137717137718137719137720137721137722137723137724137725137726137727137728137729137730137731137732137733137734137735137736137737137738137739137740137741137742137743137744137745137746137747137748137749137750137751137752137753137754137755137756137757137758137759137760137761137762137763137764137765137766137767137768137769137770137771137772137773137774137775137776137777137778137779137780137781137782137783137784137785137786137787137788137789137790137791137792137793137794137795137796137797137798137799137800137801137802137803137804137805137806137807137808137809137810137811137812137813137814137815137816137817137818137819137820137821137822137823137824137825137826137827137828137829137830137831137832137833137834137835137836137837137838137839137840137841137842137843137844137845137846137847137848137849137850137851137852137853137854137855137856137857137858137859137860137861137862137863137864137865137866137867137868137869137870137871137872137873137874137875137876137877137878137879137880137881137882137883137884137885137886137887137888137889137890137891137892137893137894137895137896137897137898137899137900137901137902137903137904137905137906137907137908137909137910137911137912137913137914137915137916137917137918137919137920137921137922137923137924137925137926137927137928137929137930137931137932137933137934137935137936137937137938137939137940137941137942137943137944137945137946137947137948137949137950137951137952137953137954137955137956137957137958137959137960137961137962137963137964137965137966137967137968137969137970137971137972137973137974137975137976137977137978137979137980137981137982137983137984137985137986137987137988137989137990137991137992137993137994137995137996137997137998137999138000138001138002138003138004138005138006138007138008138009138010138011138012138013138014138015138016138017138018138019138020138021138022138023138024138025138026138027138028138029138030138031138032138033138034138035138036138037138038138039138040138041138042138043138044138045138046138047138048138049138050138051138052138053138054138055138056138057138058138059138060138061138062138063138064138065138066138067138068138069138070138071138072138073138074138075138076138077138078138079138080138081138082138083138084138085138086138087138088138089138090138091138092138093138094138095138096138097138098138099138100138101138102138103138104138105138106138107138108138109138110138111138112138113138114138115138116138117138118138119138120138121138122138123138124138125138126138127138128138129138130138131138132138133138134138135138136138137138138138139138140138141138142138143138144138145138146138147138148138149138150138151138152138153138154138155138156138157138158138159138160138161138162138163138164138165138166138167138168138169138170138171138172138173138174138175138176138177138178138179138180138181138182138183138184138185138186138187138188138189138190138191138192138193138194138195138196138197138198138199138200138201138202138203138204138205138206138207138208138209138210138211138212138213138214138215138216138217138218138219138220138221138222138223138224138225138226138227138228138229138230138231138232138233138234138235138236138237138238138239138240138241138242138243138244138245138246138247138248138249138250138251138252138253138254138255138256138257138258138259138260138261138262138263138264138265138266138267138268138269138270138271138272138273138274138275138276138277138278138279138280138281138282138283138284138285138286138287138288138289138290138291138292138293138294138295138296138297138298138299138300138301138302138303138304138305138306138307138308138309138310138311138312138313138314138315138316138317138318138319138320138321138322138323138324138325138326138327138328138329138330138331138332138333138334138335138336138337138338138339138340138341138342138343138344138345138346138347138348138349138350138351138352138353138354138355138356138357138358138359138360138361138362138363138364138365138366138367138368138369138370138371138372138373138374138375138376138377138378138379138380138381138382138383138384138385138386138387138388138389138390138391138392138393138394138395138396138397138398138399138400138401138402138403138404138405138406138407138408138409138410138411138412138413138414138415138416138417138418138419138420138421138422138423138424138425138426138427138428138429138430138431138432138433138434138435138436138437138438138439138440138441138442138443138444138445138446138447138448138449138450138451138452138453138454138455138456138457138458138459138460138461138462138463138464138465138466138467138468138469138470138471138472138473138474138475138476138477138478138479138480138481138482138483138484138485138486138487138488138489138490138491138492138493138494138495138496138497138498138499138500138501138502138503138504138505138506138507138508138509138510138511138512138513138514138515138516138517138518138519138520138521138522138523138524138525138526138527138528138529138530138531138532138533138534138535138536138537138538138539138540138541138542138543138544138545138546138547138548138549138550138551138552138553138554138555138556138557138558138559138560138561138562138563138564138565138566138567138568138569138570138571138572138573138574138575138576138577138578138579138580138581138582138583138584138585138586138587138588138589138590138591138592138593138594138595138596138597138598138599138600138601138602138603138604138605138606138607138608138609138610138611138612138613138614138615138616138617138618138619138620138621138622138623138624138625138626138627138628138629138630138631138632138633138634138635138636138637138638138639138640138641138642138643138644138645138646138647138648138649138650138651138652138653138654138655138656138657138658138659138660138661138662138663138664138665138666138667138668138669138670138671138672138673138674138675138676138677138678138679138680138681138682138683138684138685138686138687138688138689138690138691138692138693138694138695138696138697138698138699138700138701138702138703138704138705138706138707138708138709138710138711138712138713138714138715138716138717138718138719138720138721138722138723138724138725138726138727138728138729138730138731138732138733138734138735138736138737138738138739138740138741138742138743138744138745138746138747138748138749138750138751138752138753138754138755138756138757138758138759138760138761138762138763138764138765138766138767138768138769138770138771138772138773138774138775138776138777138778138779138780138781138782138783138784138785138786138787138788138789138790138791138792138793138794138795138796138797138798138799138800138801138802138803138804138805138806138807138808138809138810138811138812138813138814138815138816138817138818138819138820138821138822138823138824138825138826138827138828138829138830138831138832138833138834138835138836138837138838138839138840138841138842138843138844138845138846138847138848138849138850138851138852138853138854138855138856138857138858138859138860138861138862138863138864138865138866138867138868138869138870138871138872138873138874138875138876138877138878138879138880138881138882138883138884138885138886138887138888138889138890138891138892138893138894138895138896138897138898138899138900138901138902138903138904138905138906138907138908138909138910138911138912138913138914138915138916138917138918138919138920138921138922138923138924138925138926138927138928138929138930138931138932138933138934138935138936138937138938138939138940138941138942138943138944138945138946138947138948138949138950138951138952138953138954138955138956138957138958138959138960138961138962138963138964138965138966138967138968138969138970138971138972138973138974138975138976138977138978138979138980138981138982138983138984138985138986138987138988138989138990138991138992138993138994138995138996138997138998138999139000139001139002139003139004139005139006139007139008139009139010139011139012139013139014139015139016139017139018139019139020139021139022139023139024139025139026139027139028139029139030139031139032139033139034139035139036139037139038139039139040139041139042139043139044139045139046139047139048139049139050139051139052139053139054139055139056139057139058139059139060139061139062139063139064139065139066139067139068139069139070139071139072139073139074139075139076139077139078139079139080139081139082139083139084139085139086139087139088139089139090139091139092139093139094139095139096139097139098139099139100139101139102139103139104139105139106139107139108139109139110139111139112139113139114139115139116139117139118139119139120139121139122139123139124139125139126139127139128139129139130139131139132139133139134139135139136139137139138139139139140139141139142139143139144139145139146139147139148139149139150139151139152139153139154139155139156139157139158139159139160139161139162139163139164139165139166139167139168139169139170139171139172139173139174139175139176139177139178139179139180139181139182139183139184139185139186139187139188139189139190139191139192139193139194139195139196139197139198139199139200139201139202139203139204139205139206139207139208139209139210139211139212139213139214139215139216139217139218139219139220139221139222139223139224139225139226139227139228139229139230139231139232139233139234139235139236139237139238139239139240139241139242139243139244139245139246139247139248139249139250139251139252139253139254139255139256139257139258139259139260139261139262139263139264139265139266139267139268139269139270139271139272139273139274139275139276139277139278139279139280139281139282139283139284139285139286139287139288139289139290139291139292139293139294139295139296139297139298139299139300139301139302139303139304139305139306139307139308139309139310139311139312139313139314139315139316139317139318139319139320139321139322139323139324139325139326139327139328139329139330139331139332139333139334139335139336139337139338139339139340139341139342139343139344139345139346139347139348139349139350139351139352139353139354139355139356139357139358139359139360139361139362139363139364139365139366139367139368139369139370139371139372139373139374139375139376139377139378139379139380139381139382139383139384139385139386139387139388139389139390139391139392139393139394139395139396139397139398139399139400139401139402139403139404139405139406139407139408139409139410139411139412139413139414139415139416139417139418139419139420139421139422139423139424139425139426139427139428139429139430139431139432139433139434139435139436139437139438139439139440139441139442139443139444139445139446139447139448139449139450139451139452139453139454139455139456139457139458139459139460139461139462139463139464139465139466139467139468139469139470139471139472139473139474139475139476139477139478139479139480139481139482139483139484139485139486139487139488139489139490139491139492139493139494139495139496139497139498139499139500139501139502139503139504139505139506139507139508139509139510139511139512139513139514139515139516139517139518139519139520139521139522139523139524139525139526139527139528139529139530139531139532139533139534139535139536139537139538139539139540139541139542139543139544139545139546139547139548139549139550139551139552139553139554139555139556139557139558139559139560139561139562139563139564139565139566139567139568139569139570139571139572139573139574139575139576139577139578139579139580139581139582139583139584139585139586139587139588139589139590139591139592139593139594139595139596139597139598139599139600139601139602139603139604139605139606139607139608139609139610139611139612139613139614139615139616139617139618139619139620139621139622139623139624139625139626139627139628139629139630139631139632139633139634139635139636139637139638139639139640139641139642139643139644139645139646139647139648139649139650139651139652139653139654139655139656139657139658139659139660139661139662139663139664139665139666139667139668139669139670139671139672139673139674139675139676139677139678139679139680139681139682139683139684139685139686139687139688139689139690139691139692139693139694139695139696139697139698139699139700139701139702139703139704139705139706139707139708139709139710139711139712139713139714139715139716139717139718139719139720139721139722139723139724139725139726139727139728139729139730139731139732139733139734139735139736139737139738139739139740139741139742139743139744139745139746139747139748139749139750139751139752139753139754139755139756139757139758139759139760139761139762139763139764139765139766139767139768139769139770139771139772139773139774139775139776139777139778139779139780139781139782139783139784139785139786139787139788139789139790139791139792139793139794139795139796139797139798139799139800139801139802139803139804139805139806139807139808139809139810139811139812139813139814139815139816139817139818139819139820139821139822139823139824139825139826139827139828139829139830139831139832139833139834139835139836139837139838139839139840139841139842139843139844139845139846139847139848139849139850139851139852139853139854139855139856139857139858139859139860139861139862139863139864139865139866139867139868139869139870139871139872139873139874139875139876139877139878139879139880139881139882139883139884139885139886139887139888139889139890139891139892139893139894139895139896139897139898139899139900139901139902139903139904139905139906139907139908139909139910139911139912139913139914139915139916139917139918139919139920139921139922139923139924139925139926139927139928139929139930139931139932139933139934139935139936139937139938139939139940139941139942139943139944139945139946139947139948139949139950139951139952139953139954139955139956139957139958139959139960139961139962139963139964139965139966139967139968139969139970139971139972139973139974139975139976139977139978139979139980139981139982139983139984139985139986139987139988139989139990139991139992139993139994139995139996139997139998139999140000140001140002140003140004140005140006140007140008140009140010140011140012140013140014140015140016140017140018140019140020140021140022140023140024140025140026140027140028140029140030140031140032140033140034140035140036140037140038140039140040140041140042140043140044140045140046140047140048140049140050140051140052140053140054140055140056140057140058140059140060140061140062140063140064140065140066140067140068140069140070140071140072140073140074140075140076140077140078140079140080140081140082140083140084140085140086140087140088140089140090140091140092140093140094140095140096140097140098140099140100140101140102140103140104140105140106140107140108140109140110140111140112140113140114140115140116140117140118140119140120140121140122140123140124140125140126140127140128140129140130140131140132140133140134140135140136140137140138140139140140140141140142140143140144140145140146140147140148140149140150140151140152140153140154140155140156140157140158140159140160140161140162140163140164140165140166140167140168140169140170140171140172140173140174140175140176140177140178140179140180140181140182140183140184140185140186140187140188140189140190140191140192140193140194140195140196140197140198140199140200140201140202140203140204140205140206140207140208140209140210140211140212140213140214140215140216140217140218140219140220140221140222140223140224140225140226140227140228140229140230140231140232140233140234140235140236140237140238140239140240140241140242140243140244140245140246140247140248140249140250140251140252140253140254140255140256140257140258140259140260140261140262140263140264140265140266140267140268140269140270140271140272140273140274140275140276140277140278140279140280140281140282140283140284140285140286140287140288140289140290140291140292140293140294140295140296140297140298140299140300140301140302140303140304140305140306140307140308140309140310140311140312140313140314140315140316140317140318140319140320140321140322140323140324140325140326140327140328140329140330140331140332140333140334140335140336140337140338140339140340140341140342140343140344140345140346140347140348140349140350140351140352140353140354140355140356140357140358140359140360140361140362140363140364140365140366140367140368140369140370140371140372140373140374140375140376140377140378140379140380140381140382140383140384140385140386140387140388140389140390140391140392140393140394140395140396140397140398140399140400140401140402140403140404140405140406140407140408140409140410140411140412140413140414140415140416140417140418140419140420140421140422140423140424140425140426140427140428140429140430140431140432140433140434140435140436140437140438140439140440140441140442140443140444140445140446140447140448140449140450140451140452140453140454140455140456140457140458140459140460140461140462140463140464140465140466140467140468140469140470140471140472140473140474140475140476140477140478140479140480140481140482140483140484140485140486140487140488140489140490140491140492140493140494140495140496140497140498140499140500140501140502140503140504140505140506140507140508140509140510140511140512140513140514140515140516140517140518140519140520140521140522140523140524140525140526140527140528140529140530140531140532140533140534140535140536140537140538140539140540140541140542140543140544140545140546140547140548140549140550140551140552140553140554140555140556140557140558140559140560140561140562140563140564140565140566140567140568140569140570140571140572140573140574140575140576140577140578140579140580140581140582140583140584140585140586140587140588140589140590140591140592140593140594140595140596140597140598140599140600140601140602140603140604140605140606140607140608140609140610140611140612140613140614140615140616140617140618140619140620140621140622140623140624140625140626140627140628140629140630140631140632140633140634140635140636140637140638140639140640140641140642140643140644140645140646140647140648140649140650140651140652140653140654140655140656140657140658140659140660140661140662140663140664140665140666140667140668140669140670140671140672140673140674140675140676140677140678140679140680140681140682140683140684140685140686140687140688140689140690140691140692140693140694140695140696140697140698140699140700140701140702140703140704140705140706140707140708140709140710140711140712140713140714140715140716140717140718140719140720140721140722140723140724140725140726140727140728140729140730140731140732140733140734140735140736140737140738140739140740140741140742140743140744140745140746140747140748140749140750140751140752140753140754140755140756140757140758140759140760140761140762140763140764140765140766140767140768140769140770140771140772140773140774140775140776140777140778140779140780140781140782140783140784140785140786140787140788140789140790140791140792140793140794140795140796140797140798140799140800140801140802140803140804140805140806140807140808140809140810140811140812140813140814140815140816140817140818140819140820140821140822140823140824140825140826140827140828140829140830140831140832140833140834140835140836140837140838140839140840140841140842140843140844140845140846140847140848140849140850140851140852140853140854140855140856140857140858140859140860140861140862140863140864140865140866140867140868140869140870140871140872140873140874140875140876140877140878140879140880140881140882140883140884140885140886140887140888140889140890140891140892140893140894140895140896140897140898140899140900140901140902140903140904140905140906140907140908140909140910140911140912140913140914140915140916140917140918140919140920140921140922140923140924140925140926140927140928140929140930140931140932140933140934140935140936140937140938140939140940140941140942140943140944140945140946140947140948140949140950140951140952140953140954140955140956140957140958140959140960140961140962140963140964140965140966140967140968140969140970140971140972140973140974140975140976140977140978140979140980140981140982140983140984140985140986140987140988140989140990140991140992140993140994140995140996140997140998140999141000141001141002141003141004141005141006141007141008141009141010141011141012141013141014141015141016141017141018141019141020141021141022141023141024141025141026141027141028141029141030141031141032141033141034141035141036141037141038141039141040141041141042141043141044141045141046141047141048141049141050141051141052141053141054141055141056141057141058141059141060141061141062141063141064141065141066141067141068141069141070141071141072141073141074141075141076141077141078141079141080141081141082141083141084141085141086141087141088141089141090141091141092141093141094141095141096141097141098141099141100141101141102141103141104141105141106141107141108141109141110141111141112141113141114141115141116141117141118141119141120141121141122141123141124141125141126141127141128141129141130141131141132141133141134141135141136141137141138141139141140141141141142141143141144141145141146141147141148141149141150141151141152141153141154141155141156141157141158141159141160141161141162141163141164141165141166141167141168141169141170141171141172141173141174141175141176141177141178141179141180141181141182141183141184141185141186141187141188141189141190141191141192141193141194141195141196141197141198141199141200141201141202141203141204141205141206141207141208141209141210141211141212141213141214141215141216141217141218141219141220141221141222141223141224141225141226141227141228141229141230141231141232141233141234141235141236141237141238141239141240141241141242141243141244141245141246141247141248141249141250141251141252141253141254141255141256141257141258141259141260141261141262141263141264141265141266141267141268141269141270141271141272141273141274141275141276141277141278141279141280141281141282141283141284141285141286141287141288141289141290141291141292141293141294141295141296141297141298141299141300141301141302141303141304141305141306141307141308141309141310141311141312141313141314141315141316141317141318141319141320141321141322141323141324141325141326141327141328141329141330141331141332141333141334141335141336141337141338141339141340141341141342141343141344141345141346141347141348141349141350141351141352141353141354141355141356141357141358141359141360141361141362141363141364141365141366141367141368141369141370141371141372141373141374141375141376141377141378141379141380141381141382141383141384141385141386141387141388141389141390141391141392141393141394141395141396141397141398141399141400141401141402141403141404141405141406141407141408141409141410141411141412141413141414141415141416141417141418141419141420141421141422141423141424141425141426141427141428141429141430141431141432141433141434141435141436141437141438141439141440141441141442141443141444141445141446141447141448141449141450141451141452141453141454141455141456141457141458141459141460141461141462141463141464141465141466141467141468141469141470141471141472141473141474141475141476141477141478141479141480141481141482141483141484141485141486141487141488141489141490141491141492141493141494141495141496141497141498141499141500141501141502141503141504141505141506141507141508141509141510141511141512141513141514141515141516141517141518141519141520141521141522141523141524141525141526141527141528141529141530141531141532141533141534141535141536141537141538141539141540141541141542141543141544141545141546141547141548141549141550141551141552141553141554141555141556141557141558141559141560141561141562141563141564141565141566141567141568141569141570141571141572141573141574141575141576141577141578141579141580141581141582141583141584141585141586141587141588141589141590141591141592141593141594141595141596141597141598141599141600141601141602141603141604141605141606141607141608141609141610141611141612141613141614141615141616141617141618141619141620141621141622141623141624141625141626141627141628141629141630141631141632141633141634141635141636141637141638141639141640141641141642141643141644141645141646141647141648141649141650141651141652141653141654141655141656141657141658141659141660141661141662141663141664141665141666141667141668141669141670141671141672141673141674141675141676141677141678141679141680141681141682141683141684141685141686141687141688141689141690141691141692141693141694141695141696141697141698141699141700141701141702141703141704141705141706141707141708141709141710141711141712141713141714141715141716141717141718141719141720141721141722141723141724141725141726141727141728141729141730141731141732141733141734141735141736141737141738141739141740141741141742141743141744141745141746141747141748141749141750141751141752141753141754141755141756141757141758141759141760141761141762141763141764141765141766141767141768141769141770141771141772141773141774141775141776141777141778141779141780141781141782141783141784141785141786141787141788141789141790141791141792141793141794141795141796141797141798141799141800141801141802141803141804141805141806141807141808141809141810141811141812141813141814141815141816141817141818141819141820141821141822141823141824141825141826141827141828141829141830141831141832141833141834141835141836141837141838141839141840141841141842141843141844141845141846141847141848141849141850141851141852141853141854141855141856141857141858141859141860141861141862141863141864141865141866141867141868141869141870141871141872141873141874141875141876141877141878141879141880141881141882141883141884141885141886141887141888141889141890141891141892141893141894141895141896141897141898141899141900141901141902141903141904141905141906141907141908141909141910141911141912141913141914141915141916141917141918141919141920141921141922141923141924141925141926141927141928141929141930141931141932141933141934141935141936141937141938141939141940141941141942141943141944141945141946141947141948141949141950141951141952141953141954141955141956141957141958141959141960141961141962141963141964141965141966141967141968141969141970141971141972141973141974141975141976141977141978141979141980141981141982141983141984141985141986141987141988141989141990141991141992141993141994141995141996141997141998141999142000142001142002142003142004142005142006142007142008142009142010142011142012142013142014142015142016142017142018142019142020142021142022142023142024142025142026142027142028142029142030142031142032142033142034142035142036142037142038142039142040142041142042142043142044142045142046142047142048142049142050142051142052142053142054142055142056142057142058142059142060142061142062142063142064142065142066142067142068142069142070142071142072142073142074142075142076142077142078142079142080142081142082142083142084142085142086142087142088142089142090142091142092142093142094142095142096142097142098142099142100142101142102142103142104142105142106142107142108142109142110142111142112142113142114142115142116142117142118142119142120142121142122142123142124142125142126142127142128142129142130142131142132142133142134142135142136142137142138142139142140142141142142142143142144142145142146142147142148142149142150142151142152142153142154142155142156142157142158142159142160142161142162142163142164142165142166142167142168142169142170142171142172142173142174142175142176142177142178142179142180142181142182142183142184142185142186142187142188142189142190142191142192142193142194142195142196142197142198142199142200142201142202142203142204142205142206142207142208142209142210142211142212142213142214142215142216142217142218142219142220142221142222142223142224142225142226142227142228142229142230142231142232142233142234142235142236142237142238142239142240142241142242142243142244142245142246142247142248142249142250142251142252142253142254142255142256142257142258142259142260142261142262142263142264142265142266142267142268142269142270142271142272142273142274142275142276142277142278142279142280142281142282142283142284142285142286142287142288142289142290142291142292142293142294142295142296142297142298142299142300142301142302142303142304142305142306142307142308142309142310142311142312142313142314142315142316142317142318142319142320142321142322142323142324142325142326142327142328142329142330142331142332142333142334142335142336142337142338142339142340142341142342142343142344142345142346142347142348142349142350142351142352142353142354142355142356142357142358142359142360142361142362142363142364142365142366142367142368142369142370142371142372142373142374142375142376142377142378142379142380142381142382142383142384142385142386142387142388142389142390142391142392142393142394142395142396142397142398142399142400142401142402142403142404142405142406142407142408142409142410142411142412142413142414142415142416142417142418142419142420142421142422142423142424142425142426142427142428142429142430142431142432142433142434142435142436142437142438142439142440142441142442142443142444142445142446142447142448142449142450142451142452142453142454142455142456142457142458142459142460142461142462142463142464142465142466142467142468142469142470142471142472142473142474142475142476142477142478142479142480142481142482142483142484142485142486142487142488142489142490142491142492142493142494142495142496142497142498142499142500142501142502142503142504142505142506142507142508142509142510142511142512142513142514142515142516142517142518142519142520142521142522142523142524142525142526142527142528142529142530142531142532142533142534142535142536142537142538142539142540142541142542142543142544142545142546142547142548142549142550142551142552142553142554142555142556142557142558142559142560142561142562142563142564142565142566142567142568142569142570142571142572142573142574142575142576142577142578142579142580142581142582142583142584142585142586142587142588142589142590142591142592142593142594142595142596142597142598142599142600142601142602142603142604142605142606142607142608142609142610142611142612142613142614142615142616142617142618142619142620142621142622142623142624142625142626142627142628142629142630142631142632142633142634142635142636142637142638142639142640142641142642142643142644142645142646142647142648142649142650142651142652142653142654142655142656142657142658142659142660142661142662142663142664142665142666142667142668142669142670142671142672142673142674142675142676142677142678142679142680142681142682142683142684142685142686142687142688142689142690142691142692142693142694142695142696142697142698142699142700142701142702142703142704142705142706142707142708142709142710142711142712142713142714142715142716142717142718142719142720142721142722142723142724142725142726142727142728142729142730142731142732142733142734142735142736142737142738142739142740142741142742142743142744142745142746142747142748142749142750142751142752142753142754142755142756142757142758142759142760142761142762142763142764142765142766142767142768142769142770142771142772142773142774142775142776142777142778142779142780142781142782142783142784142785142786142787142788142789142790142791142792142793142794142795142796142797142798142799142800142801142802142803142804142805142806142807142808142809142810142811142812142813142814142815142816142817142818142819142820142821142822142823142824142825142826142827142828142829142830142831142832142833142834142835142836142837142838142839142840142841142842142843142844142845142846142847142848142849142850142851142852142853142854142855142856142857142858142859142860142861142862142863142864142865142866142867142868142869142870142871142872142873142874142875142876142877142878142879142880142881142882142883142884142885142886142887142888142889142890142891142892142893142894142895142896142897142898142899142900142901142902142903142904142905142906142907142908142909142910142911142912142913142914142915142916142917142918142919142920142921142922142923142924142925142926142927142928142929142930142931142932142933142934142935142936142937142938142939142940142941142942142943142944142945142946142947142948142949142950142951142952142953142954142955142956142957142958142959142960142961142962142963142964142965142966142967142968142969142970142971142972142973142974142975142976142977142978142979142980142981142982142983142984142985142986142987142988142989142990142991142992142993142994142995142996142997142998142999143000143001143002143003143004143005143006143007143008143009143010143011143012143013143014143015143016143017143018143019143020143021143022143023143024143025143026143027143028143029143030143031143032143033143034143035143036143037143038143039143040143041143042143043143044143045143046143047143048143049143050143051143052143053143054143055143056143057143058143059143060143061143062143063143064143065143066143067143068143069143070143071143072143073143074143075143076143077143078143079143080143081143082143083143084143085143086143087143088143089143090143091143092143093143094143095143096143097143098143099143100143101143102143103143104143105143106143107143108143109143110143111143112143113143114143115143116143117143118143119143120143121143122143123143124143125143126143127143128143129143130143131143132143133143134143135143136143137143138143139143140143141143142143143143144143145143146143147143148143149143150143151143152143153143154143155143156143157143158143159143160143161143162143163143164143165143166143167143168143169143170143171143172143173143174143175143176143177143178143179143180143181143182143183143184143185143186143187143188143189143190143191143192143193143194143195143196143197143198143199143200143201143202143203143204143205143206143207143208143209143210143211143212143213143214143215143216143217143218143219143220143221143222143223143224143225143226143227143228143229143230143231143232143233143234143235143236143237143238143239143240143241143242143243143244143245143246143247143248143249143250143251143252143253143254143255143256143257143258143259143260143261143262143263143264143265143266143267143268143269143270143271143272143273143274143275143276143277143278143279143280143281143282143283143284143285143286143287143288143289143290143291143292143293143294143295143296143297143298143299143300143301143302143303143304143305143306143307143308143309143310143311143312143313143314143315143316143317143318143319143320143321143322143323143324143325143326143327143328143329143330143331143332143333143334143335143336143337143338143339143340143341143342143343143344143345143346143347143348143349143350143351143352143353143354143355143356143357143358143359143360143361143362143363143364143365143366143367143368143369143370143371143372143373143374143375143376143377143378143379143380143381143382143383143384143385143386143387143388143389143390143391143392143393143394143395143396143397143398143399143400143401143402143403143404143405143406143407143408143409143410143411143412143413143414143415143416143417143418143419143420143421143422143423143424143425143426143427143428143429143430143431143432143433143434143435143436143437143438143439143440143441143442143443143444143445143446143447143448143449143450143451143452143453143454143455143456143457143458143459143460143461143462143463143464143465143466143467143468143469143470143471143472143473143474143475143476143477143478143479143480143481143482143483143484143485143486143487143488143489143490143491143492143493143494143495143496143497143498143499143500143501143502143503143504143505143506143507143508143509143510143511143512143513143514143515143516143517143518143519143520143521143522143523143524143525143526143527143528143529143530143531143532143533143534143535143536143537143538143539143540143541143542143543143544143545143546143547143548143549143550143551143552143553143554143555143556143557143558143559143560143561143562143563143564143565143566143567143568143569143570143571143572143573143574143575143576143577143578143579143580143581143582143583143584143585143586143587143588143589143590143591143592143593143594143595143596143597143598143599143600143601143602143603143604143605143606143607143608143609143610143611143612143613143614143615143616143617143618143619143620143621143622143623143624143625143626143627143628143629143630143631143632143633143634143635143636143637143638143639143640143641143642143643143644143645143646143647143648143649143650143651143652143653143654143655143656143657143658143659143660143661143662143663143664143665143666143667143668143669143670143671143672143673143674143675143676143677143678143679143680143681143682143683143684143685143686143687143688143689143690143691143692143693143694143695143696143697143698143699143700143701143702143703143704143705143706143707143708143709143710143711143712143713143714143715143716143717143718143719143720143721143722143723143724143725143726143727143728143729143730143731143732143733143734143735143736143737143738143739143740143741143742143743143744143745143746143747143748143749143750143751143752143753143754143755143756143757143758143759143760143761143762143763143764143765143766143767143768143769143770143771143772143773143774143775143776143777143778143779143780143781143782143783143784143785143786143787143788143789143790143791143792143793143794143795143796143797143798143799143800143801143802143803143804143805143806143807143808143809143810143811143812143813143814143815143816143817143818143819143820143821143822143823143824143825143826143827143828143829143830143831143832143833143834143835143836143837143838143839143840143841143842143843143844143845143846143847143848143849143850143851143852143853143854143855143856143857143858143859143860143861143862143863143864143865143866143867143868143869143870143871143872143873143874143875143876143877143878143879143880143881143882143883143884143885143886143887143888143889143890143891143892143893143894143895143896143897143898143899143900143901143902143903143904143905143906143907143908143909143910143911143912143913143914143915143916143917143918143919143920143921143922143923143924143925143926143927143928143929143930143931143932143933143934143935143936143937143938143939143940143941143942143943143944143945143946143947143948143949143950143951143952143953143954143955143956143957143958143959143960143961143962143963143964143965143966143967143968143969143970143971143972143973143974143975143976143977143978143979143980143981143982143983143984143985143986143987143988143989143990143991143992143993143994143995143996143997143998143999144000144001144002144003144004144005144006144007144008144009144010144011144012144013144014144015144016144017144018144019144020144021144022144023144024144025144026144027144028144029144030144031144032144033144034144035144036144037144038144039144040144041144042144043144044144045144046144047144048144049144050144051144052144053144054144055144056144057144058144059144060144061144062144063144064144065144066144067144068144069144070144071144072144073144074144075144076144077144078144079144080144081144082144083144084144085144086144087144088144089144090144091144092144093144094144095144096144097144098144099144100144101144102144103144104144105144106144107144108144109144110144111144112144113144114144115144116144117144118144119144120144121144122144123144124144125144126144127144128144129144130144131144132144133144134144135144136144137144138144139144140144141144142144143144144144145144146144147144148144149144150144151144152144153144154144155144156144157144158144159144160144161144162144163144164144165144166144167144168144169144170144171144172144173144174144175144176144177144178144179144180144181144182144183144184144185144186144187144188144189144190144191144192144193144194144195144196144197144198144199144200144201144202144203144204144205144206144207144208144209144210144211144212144213144214144215144216144217144218144219144220144221144222144223144224144225144226144227144228144229144230144231144232144233144234144235144236144237144238144239144240144241144242144243144244144245144246144247144248144249144250144251144252144253144254144255144256144257144258144259144260144261144262144263144264144265144266144267144268144269144270144271144272144273144274144275144276144277144278144279144280144281144282144283144284144285144286144287144288144289144290144291144292144293144294144295144296144297144298144299144300144301144302144303144304144305144306144307144308144309144310144311144312144313144314144315144316144317144318144319144320144321144322144323144324144325144326144327144328144329144330144331144332144333144334144335144336144337144338144339144340144341144342144343144344144345144346144347144348144349144350144351144352144353144354144355144356144357144358144359144360144361144362144363144364144365144366144367144368144369144370144371144372144373144374144375144376144377144378144379144380144381144382144383144384144385144386144387144388144389144390144391144392144393144394144395144396144397144398144399144400144401144402144403144404144405144406144407144408144409144410144411144412144413144414144415144416144417144418144419144420144421144422144423144424144425144426144427144428144429144430144431144432144433144434144435144436144437144438144439144440144441144442144443144444144445144446144447144448144449144450144451144452144453144454144455144456144457144458144459144460144461144462144463144464144465144466144467144468144469144470144471144472144473144474144475144476144477144478144479144480144481144482144483144484144485144486144487144488144489144490144491144492144493144494144495144496144497144498144499144500144501144502144503144504144505144506144507144508144509144510144511144512144513144514144515144516144517144518144519144520144521144522144523144524144525144526144527144528144529144530144531144532144533144534144535144536144537144538144539144540144541144542144543144544144545144546144547144548144549144550144551144552144553144554144555144556144557144558144559144560144561144562144563144564144565144566144567144568144569144570144571144572144573144574144575144576144577144578144579144580144581144582144583144584144585144586144587144588144589144590144591144592144593144594144595144596144597144598144599144600144601144602144603144604144605144606144607144608144609144610144611144612144613144614144615144616144617144618144619144620144621144622144623144624144625144626144627144628144629144630144631144632144633144634144635144636144637144638144639144640144641144642144643144644144645144646144647144648144649144650144651144652144653144654144655144656144657144658144659144660144661144662144663144664144665144666144667144668144669144670144671144672144673144674144675144676144677144678144679144680144681144682144683144684144685144686144687144688144689144690144691144692144693144694144695144696144697144698144699144700144701144702144703144704144705144706144707144708144709144710144711144712144713144714144715144716144717144718144719144720144721144722144723144724144725144726144727144728144729144730144731144732144733144734144735144736144737144738144739144740144741144742144743144744144745144746144747144748144749144750144751144752144753144754144755144756144757144758144759144760144761144762144763144764144765144766144767144768144769144770144771144772144773144774144775144776144777144778144779144780144781144782144783144784144785144786144787144788144789144790144791144792144793144794144795144796144797144798144799144800144801144802144803144804144805144806144807144808144809144810144811144812144813144814144815144816144817144818144819144820144821144822144823144824144825144826144827144828144829144830144831144832144833144834144835144836144837144838144839144840144841144842144843144844144845144846144847144848144849144850144851144852144853144854144855144856144857144858144859144860144861144862144863144864144865144866144867144868144869144870144871144872144873144874144875144876144877144878144879144880144881144882144883144884144885144886144887144888144889144890144891144892144893144894144895144896144897144898144899144900144901144902144903144904144905144906144907144908144909144910144911144912144913144914144915144916144917144918144919144920144921144922144923144924144925144926144927144928144929144930144931144932144933144934144935144936144937144938144939144940144941144942144943144944144945144946144947144948144949144950144951144952144953144954144955144956144957144958144959144960144961144962144963144964144965144966144967144968144969144970144971144972144973144974144975144976144977144978144979144980144981144982144983144984144985144986144987144988144989144990144991144992144993144994144995144996144997144998144999145000145001145002145003145004145005145006145007145008145009145010145011145012145013145014145015145016145017145018145019145020145021145022145023145024145025145026145027145028145029145030145031145032145033145034145035145036145037145038145039145040145041145042145043145044145045145046145047145048145049145050145051145052145053145054145055145056145057145058145059145060145061145062145063145064145065145066145067145068145069145070145071145072145073145074145075145076145077145078145079145080145081145082145083145084145085145086145087145088145089145090145091145092145093145094145095145096145097145098145099145100145101145102145103145104145105145106145107145108145109145110145111145112145113145114145115145116145117145118145119145120145121145122145123145124145125145126145127145128145129145130145131145132145133145134145135145136145137145138145139145140145141145142145143145144145145145146145147145148145149145150145151145152145153145154145155145156145157145158145159145160145161145162145163145164145165145166145167145168145169145170145171145172145173145174145175145176145177145178145179145180145181145182145183145184145185145186145187145188145189145190145191145192145193145194145195145196145197145198145199145200145201145202145203145204145205145206145207145208145209145210145211145212145213145214145215145216145217145218145219145220145221145222145223145224145225145226145227145228145229145230145231145232145233145234145235145236145237145238145239145240145241145242145243145244145245145246145247145248145249145250145251145252145253145254145255145256145257145258145259145260145261145262145263145264145265145266145267145268145269145270145271145272145273145274145275145276145277145278145279145280145281145282145283145284145285145286145287145288145289145290145291145292145293145294145295145296145297145298145299145300145301145302145303145304145305145306145307145308145309145310145311145312145313145314145315145316145317145318145319145320145321145322145323145324145325145326145327145328145329145330145331145332145333145334145335145336145337145338145339145340145341145342145343145344145345145346145347145348145349145350145351145352145353145354145355145356145357145358145359145360145361145362145363145364145365145366145367145368145369145370145371145372145373145374145375145376145377145378145379145380145381145382145383145384145385145386145387145388145389145390145391145392145393145394145395145396145397145398145399145400145401145402145403145404145405145406145407145408145409145410145411145412145413145414145415145416145417145418145419145420145421145422145423145424145425145426145427145428145429145430145431145432145433145434145435145436145437145438145439145440145441145442145443145444145445145446145447145448145449145450145451145452145453145454145455145456145457145458145459145460145461145462145463145464145465145466145467145468145469145470145471145472145473145474145475145476145477145478145479145480145481145482145483145484145485145486145487145488145489145490145491145492145493145494145495145496145497145498145499145500145501145502145503145504145505145506145507145508145509145510145511145512145513145514145515145516145517145518145519145520145521145522145523145524145525145526145527145528145529145530145531145532145533145534145535145536145537145538145539145540145541145542145543145544145545145546145547145548145549145550145551145552145553145554145555145556145557145558145559145560145561145562145563145564145565145566145567145568145569145570145571145572145573145574145575145576145577145578145579145580145581145582145583145584145585145586145587145588145589145590145591145592145593145594145595145596145597145598145599145600145601145602145603145604145605145606145607145608145609145610145611145612145613145614145615145616145617145618145619145620145621145622145623145624145625145626145627145628145629145630145631145632145633145634145635145636145637145638145639145640145641145642145643145644145645145646145647145648145649145650145651145652145653145654145655145656145657145658145659145660145661145662145663145664145665145666145667145668145669145670145671145672145673145674145675145676145677145678145679145680145681145682145683145684145685145686145687145688145689145690145691145692145693145694145695145696145697145698145699145700145701145702145703145704145705145706145707145708145709145710145711145712145713145714145715145716145717145718145719145720145721145722145723145724145725145726145727145728145729145730145731145732145733145734145735145736145737145738145739145740145741145742145743145744145745145746145747145748145749145750145751145752145753145754145755145756145757145758145759145760145761145762145763145764145765145766145767145768145769145770145771145772145773145774145775145776145777145778145779145780145781145782145783145784145785145786145787145788145789145790145791145792145793145794145795145796145797145798145799145800145801145802145803145804145805145806145807145808145809145810145811145812145813145814145815145816145817145818145819145820145821145822145823145824145825145826145827145828145829145830145831145832145833145834145835145836145837145838145839145840145841145842145843145844145845145846145847145848145849145850145851145852145853145854145855145856145857145858145859145860145861145862145863145864145865145866145867145868145869145870145871145872145873145874145875145876145877145878145879145880145881145882145883145884145885145886145887145888145889145890145891145892145893145894145895145896145897145898145899145900145901145902145903145904145905145906145907145908145909145910145911145912145913145914145915145916145917145918145919145920145921145922145923145924145925145926145927145928145929145930145931145932145933145934145935145936145937145938145939145940145941145942145943145944145945145946145947145948145949145950145951145952145953145954145955145956145957145958145959145960145961145962145963145964145965145966145967145968145969145970145971145972145973145974145975145976145977145978145979145980145981145982145983145984145985145986145987145988145989145990145991145992145993145994145995145996145997145998145999146000146001146002146003146004146005146006146007146008146009146010146011146012146013146014146015146016146017146018146019146020146021146022146023146024146025146026146027146028146029146030146031146032146033146034146035146036146037146038146039146040146041146042146043146044146045146046146047146048146049146050146051146052146053146054146055146056146057146058146059146060146061146062146063146064146065146066146067146068146069146070146071146072146073146074146075146076146077146078146079146080146081146082146083146084146085146086146087146088146089146090146091146092146093146094146095146096146097146098146099146100146101146102146103146104146105146106146107146108146109146110146111146112146113146114146115146116146117146118146119146120146121146122146123146124146125146126146127146128146129146130146131146132146133146134146135146136146137146138146139146140146141146142146143146144146145146146146147146148146149146150146151146152146153146154146155146156146157146158146159146160146161146162146163146164146165146166146167146168146169146170146171146172146173146174146175146176146177146178146179146180146181146182146183146184146185146186146187146188146189146190146191146192146193146194146195146196146197146198146199146200146201146202146203146204146205146206146207146208146209146210146211146212146213146214146215146216146217146218146219146220146221146222146223146224146225146226146227146228146229146230146231146232146233146234146235146236146237146238146239146240146241146242146243146244146245146246146247146248146249146250146251146252146253146254146255146256146257146258146259146260146261146262146263146264146265146266146267146268146269146270146271146272146273146274146275146276146277146278146279146280146281146282146283146284146285146286146287146288146289146290146291146292146293146294146295146296146297146298146299146300146301146302146303146304146305146306146307146308146309146310146311146312146313146314146315146316146317146318146319146320146321146322146323146324146325146326146327146328146329146330146331146332146333146334146335146336146337146338146339146340146341146342146343146344146345146346146347146348146349146350146351146352146353146354146355146356146357146358146359146360146361146362146363146364146365146366146367146368146369146370146371146372146373146374146375146376146377146378146379146380146381146382146383146384146385146386146387146388146389146390146391146392146393146394146395146396146397146398146399146400146401146402146403146404146405146406146407146408146409146410146411146412146413146414146415146416146417146418146419146420146421146422146423146424146425146426146427146428146429146430146431146432146433146434146435146436146437146438146439146440146441146442146443146444146445146446146447146448146449146450146451146452146453146454146455146456146457146458146459146460146461146462146463146464146465146466146467146468146469146470146471146472146473146474146475146476146477146478146479146480146481146482146483146484146485146486146487146488146489146490146491146492146493146494146495146496146497146498146499146500146501146502146503146504146505146506146507146508146509146510146511146512146513146514146515146516146517146518146519146520146521146522146523146524146525146526146527146528146529146530146531146532146533146534146535146536146537146538146539146540146541146542146543146544146545146546146547146548146549146550146551146552146553146554146555146556146557146558146559146560146561146562146563146564146565146566146567146568146569146570146571146572146573146574146575146576146577146578146579146580146581146582146583146584146585146586146587146588146589146590146591146592146593146594146595146596146597146598146599146600146601146602146603146604146605146606146607146608146609146610146611146612146613146614146615146616146617146618146619146620146621146622146623146624146625146626146627146628146629146630146631146632146633146634146635146636146637146638146639146640146641146642146643146644146645146646146647146648146649146650146651146652146653146654146655146656146657146658146659146660146661146662146663146664146665146666146667146668146669146670146671146672146673146674146675146676146677146678146679146680146681146682146683146684146685146686146687146688146689146690146691146692146693146694146695146696146697146698146699146700146701146702146703146704146705146706146707146708146709146710146711146712146713146714146715146716146717146718146719146720146721146722146723146724146725146726146727146728146729146730146731146732146733146734146735146736146737146738146739146740146741146742146743146744146745146746146747146748146749146750146751146752146753146754146755146756146757146758146759146760146761146762146763146764146765146766146767146768146769146770146771146772146773146774146775146776146777146778146779146780146781146782146783146784146785146786146787146788146789146790146791146792146793146794146795146796146797146798146799146800146801146802146803146804146805146806146807146808146809146810146811146812146813146814146815146816146817146818146819146820146821146822146823146824146825146826146827146828146829146830146831146832146833146834146835146836146837146838146839146840146841146842146843146844146845146846146847146848146849146850146851146852146853146854146855146856146857146858146859146860146861146862146863146864146865146866146867146868146869146870146871146872146873146874146875146876146877146878146879146880146881146882146883146884146885146886146887146888146889146890146891146892146893146894146895146896146897146898146899146900146901146902146903146904146905146906146907146908146909146910146911146912146913146914146915146916146917146918146919146920146921146922146923146924146925146926146927146928146929146930146931146932146933146934146935146936146937146938146939146940146941146942146943146944146945146946146947146948146949146950146951146952146953146954146955146956146957146958146959146960146961146962146963146964146965146966146967146968146969146970146971146972146973146974146975146976146977146978146979146980146981146982146983146984146985146986146987146988146989146990146991146992146993146994146995146996146997146998146999147000147001147002147003147004147005147006147007147008147009147010147011147012147013147014147015147016147017147018147019147020147021147022147023147024147025147026147027147028147029147030147031147032147033147034147035147036147037147038147039147040147041147042147043147044147045147046147047147048147049147050147051147052147053147054147055147056147057147058147059147060147061147062147063147064147065147066147067147068147069147070147071147072147073147074147075147076147077147078147079147080147081147082147083147084147085147086147087147088147089147090147091147092147093147094147095147096147097147098147099147100147101147102147103147104147105147106147107147108147109147110147111147112147113147114147115147116147117147118147119147120147121147122147123147124147125147126147127147128147129147130147131147132147133147134147135147136147137147138147139147140147141147142147143147144147145147146147147147148147149147150147151147152147153147154147155147156147157147158147159147160147161147162147163147164147165147166147167147168147169147170147171147172147173147174147175147176147177147178147179147180147181147182147183147184147185147186147187147188147189147190147191147192147193147194147195147196147197147198147199147200147201147202147203147204147205147206147207147208147209147210147211147212147213147214147215147216147217147218147219147220147221147222147223147224147225147226147227147228147229147230147231147232147233147234147235147236147237147238147239147240147241147242147243147244147245147246147247147248147249147250147251147252147253147254147255147256147257147258147259147260147261147262147263147264147265147266147267147268147269147270147271147272147273147274147275147276147277147278147279147280147281147282147283147284147285147286147287147288147289147290147291147292147293147294147295147296147297147298147299147300147301147302147303147304147305147306147307147308147309147310147311147312147313147314147315147316147317147318147319147320147321147322147323147324147325147326147327147328147329147330147331147332147333147334147335147336147337147338147339147340147341147342147343147344147345147346147347147348147349147350147351147352147353147354147355147356147357147358147359147360147361147362147363147364147365147366147367147368147369147370147371147372147373147374147375147376147377147378147379147380147381147382147383147384147385147386147387147388147389147390147391147392147393147394147395147396147397147398147399147400147401147402147403147404147405147406147407147408147409147410147411147412147413147414147415147416147417147418147419147420147421147422147423147424147425147426147427147428147429147430147431147432147433147434147435147436147437147438147439147440147441147442147443147444147445147446147447147448147449147450147451147452147453147454147455147456147457147458147459147460147461147462147463147464147465147466147467147468147469147470147471147472147473147474147475147476147477147478147479147480147481147482147483147484147485147486147487147488147489147490147491147492147493147494147495147496147497147498147499147500147501147502147503147504147505147506147507147508147509147510147511147512147513147514147515147516147517147518147519147520147521147522147523147524147525147526147527147528147529147530147531147532147533147534147535147536147537147538147539147540147541147542147543147544147545147546147547147548147549147550147551147552147553147554147555147556147557147558147559147560147561147562147563147564147565147566147567147568147569147570147571147572147573147574147575147576147577147578147579147580147581147582147583147584147585147586147587147588147589147590147591147592147593147594147595147596147597147598147599147600147601147602147603147604147605147606147607147608147609147610147611147612147613147614147615147616147617147618147619147620147621147622147623147624147625147626147627147628147629147630147631147632147633147634147635147636147637147638147639147640147641147642147643147644147645147646147647147648147649147650147651147652147653147654147655147656147657147658147659147660147661147662147663147664147665147666147667147668147669147670147671147672147673147674147675147676147677147678147679147680147681147682147683147684147685147686147687147688147689147690147691147692147693147694147695147696147697147698147699147700147701147702147703147704147705147706147707147708147709147710147711147712147713147714147715147716147717147718147719147720147721147722147723147724147725147726147727147728147729147730147731147732147733147734147735147736147737147738147739147740147741147742147743147744147745147746147747147748147749147750147751147752147753147754147755147756147757147758147759147760147761147762147763147764147765147766147767147768147769147770147771147772147773147774147775147776147777147778147779147780147781147782147783147784147785147786147787147788147789147790147791147792147793147794147795147796147797147798147799147800147801147802147803147804147805147806147807147808147809147810147811147812147813147814147815147816147817147818147819147820147821147822147823147824147825147826147827147828147829147830147831147832147833147834147835147836147837147838147839147840147841147842147843147844147845147846147847147848147849147850147851147852147853147854147855147856147857147858147859147860147861147862147863147864147865147866147867147868147869147870147871147872147873147874147875147876147877147878147879147880147881147882147883147884147885147886147887147888147889147890147891147892147893147894147895147896147897147898147899147900147901147902147903147904147905147906147907147908147909147910147911147912147913147914147915147916147917147918147919147920147921147922147923147924147925147926147927147928147929147930147931147932147933147934147935147936147937147938147939147940147941147942147943147944147945147946147947147948147949147950147951147952147953147954147955147956147957147958147959147960147961147962147963147964147965147966147967147968147969147970147971147972147973147974147975147976147977147978147979147980147981147982147983147984147985147986147987147988147989147990147991147992147993147994147995147996147997147998147999148000148001148002148003148004148005148006148007148008148009148010148011148012148013148014148015148016148017148018148019148020148021148022148023148024148025148026148027148028148029148030148031148032148033148034148035148036148037148038148039148040148041148042148043148044148045148046148047148048148049148050148051148052148053148054148055148056148057148058148059148060148061148062148063148064148065148066148067148068148069148070148071148072148073148074148075148076148077148078148079148080148081148082148083148084148085148086148087148088148089148090148091148092148093148094148095148096148097148098148099148100148101148102148103148104148105148106148107148108148109148110148111148112148113148114148115148116148117148118148119148120148121148122148123148124148125148126148127148128148129148130148131148132148133148134148135148136148137148138148139148140148141148142148143148144148145148146148147148148148149148150148151148152148153148154148155148156148157148158148159148160148161148162148163148164148165148166148167148168148169148170148171148172148173148174148175148176148177148178148179148180148181148182148183148184148185148186148187148188148189148190148191148192148193148194148195148196148197148198148199148200148201148202148203148204148205148206148207148208148209148210148211148212148213148214148215148216148217148218148219148220148221148222148223148224148225148226148227148228148229148230148231148232148233148234148235148236148237148238148239148240148241148242148243148244148245148246148247148248148249148250148251148252148253148254148255148256148257148258148259148260148261148262148263148264148265148266148267148268148269148270148271148272148273148274148275148276148277148278148279148280148281148282148283148284148285148286148287148288148289148290148291148292148293148294148295148296148297148298148299148300148301148302148303148304148305148306148307148308148309148310148311148312148313148314148315148316148317148318148319148320148321148322148323148324148325148326148327148328148329148330148331148332148333148334148335148336148337148338148339148340148341148342148343148344148345148346148347148348148349148350148351148352148353148354148355148356148357148358148359148360148361148362148363148364148365148366148367148368148369148370148371148372148373148374148375148376148377148378148379148380148381148382148383148384148385148386148387148388148389148390148391148392148393148394148395148396148397148398148399148400148401148402148403148404148405148406148407148408148409148410148411148412148413148414148415148416148417148418148419148420148421148422148423148424148425148426148427148428148429148430148431148432148433148434148435148436148437148438148439148440148441148442148443148444148445148446148447148448148449148450148451148452148453148454148455148456148457148458148459148460148461148462148463148464148465148466148467148468148469148470148471148472148473148474148475148476148477148478148479148480148481148482148483148484148485148486148487148488148489148490148491148492148493148494148495148496148497148498148499148500148501148502148503148504148505148506148507148508148509148510148511148512148513148514148515148516148517148518148519148520148521148522148523148524148525148526148527148528148529148530148531148532148533148534148535148536148537148538148539148540148541148542148543148544148545148546148547148548148549148550148551148552148553148554148555148556148557148558148559148560148561148562148563148564148565148566148567148568148569148570148571148572148573148574148575148576148577148578148579148580148581148582148583148584148585148586148587148588148589148590148591148592148593148594148595148596148597148598148599148600148601148602148603148604148605148606148607148608148609148610148611148612148613148614148615148616148617148618148619148620148621148622148623148624148625148626148627148628148629148630148631148632148633148634148635148636148637148638148639148640148641148642148643148644148645148646148647148648148649148650148651148652148653148654148655148656148657148658148659148660148661148662148663148664148665148666148667148668148669148670148671148672148673148674148675148676148677148678148679148680148681148682148683148684148685148686148687148688148689148690148691148692148693148694148695148696148697148698148699148700148701148702148703148704148705148706148707148708148709148710148711148712148713148714148715148716148717148718148719148720148721148722148723148724148725148726148727148728148729148730148731148732148733148734148735148736148737148738148739148740148741148742148743148744148745148746148747148748148749148750148751148752148753148754148755148756148757148758148759148760148761148762148763148764148765148766148767148768148769148770148771148772148773148774148775148776148777148778148779148780148781148782148783148784148785148786148787148788148789148790148791148792148793148794148795148796148797148798148799148800148801148802148803148804148805148806148807148808148809148810148811148812148813148814148815148816148817148818148819148820148821148822148823148824148825148826148827148828148829148830148831148832148833148834148835148836148837148838148839148840148841148842148843148844148845148846148847148848148849148850148851148852148853148854148855148856148857148858148859148860148861148862148863148864148865148866148867148868148869148870148871148872148873148874148875148876148877148878148879148880148881148882148883148884148885148886148887148888148889148890148891148892148893148894148895148896148897148898148899148900148901148902148903148904148905148906148907148908148909148910148911148912148913148914148915148916148917148918148919148920148921148922148923148924148925148926148927148928148929148930148931148932148933148934148935148936148937148938148939148940148941148942148943148944148945148946148947148948148949148950148951148952148953148954148955148956148957148958148959148960148961148962148963148964148965148966148967148968148969148970148971148972148973148974148975148976148977148978148979148980148981148982148983148984148985148986148987148988148989148990148991148992148993148994148995148996148997148998148999149000149001149002149003149004149005149006149007149008149009149010149011149012149013149014149015149016149017149018149019149020149021149022149023149024149025149026149027149028149029149030149031149032149033149034149035149036149037149038149039149040149041149042149043149044149045149046149047149048149049149050149051149052149053149054149055149056149057149058149059149060149061149062149063149064149065149066149067149068149069149070149071149072149073149074149075149076149077149078149079149080149081149082149083149084149085149086149087149088149089149090149091149092149093149094149095149096149097149098149099149100149101149102149103149104149105149106149107149108149109149110149111149112149113149114149115149116149117149118149119149120149121149122149123149124149125149126149127149128149129149130149131149132149133149134149135149136149137149138149139149140149141149142149143149144149145149146149147149148149149149150149151149152149153149154149155149156149157149158149159149160149161149162149163149164149165149166149167149168149169149170149171149172149173149174149175149176149177149178149179149180149181149182149183149184149185149186149187149188149189149190149191149192149193149194149195149196149197149198149199149200149201149202149203149204149205149206149207149208149209149210149211149212149213149214149215149216149217149218149219149220149221149222149223149224149225149226149227149228149229149230149231149232149233149234149235149236149237149238149239149240149241149242149243149244149245149246149247149248149249149250149251149252149253149254149255149256149257149258149259149260149261149262149263149264149265149266149267149268149269149270149271149272149273149274149275149276149277149278149279149280149281149282149283149284149285149286149287149288149289149290149291149292149293149294149295149296149297149298149299149300149301149302149303149304149305149306149307149308149309149310149311149312149313149314149315149316149317149318149319149320149321149322149323149324149325149326149327149328149329149330149331149332149333149334149335149336149337149338149339149340149341149342149343149344149345149346149347149348149349149350149351149352149353149354149355149356149357149358149359149360149361149362149363149364149365149366149367149368149369149370149371149372149373149374149375149376149377149378149379149380149381149382149383149384149385149386149387149388149389149390149391149392149393149394149395149396149397149398149399149400149401149402149403149404149405149406149407149408149409149410149411149412149413149414149415149416149417149418149419149420149421149422149423149424149425149426149427149428149429149430149431149432149433149434149435149436149437149438149439149440149441149442149443149444149445149446149447149448149449149450149451149452149453149454149455149456149457149458149459149460149461149462149463149464149465149466149467149468149469149470149471149472149473149474149475149476149477149478149479149480149481149482149483149484149485149486149487149488149489149490149491149492149493149494149495149496149497149498149499149500149501149502149503149504149505149506149507149508149509149510149511149512149513149514149515149516149517149518149519149520149521149522149523149524149525149526149527149528149529149530149531149532149533149534149535149536149537149538149539149540149541149542149543149544149545149546149547149548149549149550149551149552149553149554149555149556149557149558149559149560149561149562149563149564149565149566149567149568149569149570149571149572149573149574149575149576149577149578149579149580149581149582149583149584149585149586149587149588149589149590149591149592149593149594149595149596149597149598149599149600149601149602149603149604149605149606149607149608149609149610149611149612149613149614149615149616149617149618149619149620149621149622149623149624149625149626149627149628149629149630149631149632149633149634149635149636149637149638149639149640149641149642149643149644149645149646149647149648149649149650149651149652149653149654149655149656149657149658149659149660149661149662149663149664149665149666149667149668149669149670149671149672149673149674149675149676149677149678149679149680149681149682149683149684149685149686149687149688149689149690149691149692149693149694149695149696149697149698149699149700149701149702149703149704149705149706149707149708149709149710149711149712149713149714149715149716149717149718149719149720149721149722149723149724149725149726149727149728149729149730149731149732149733149734149735149736149737149738149739149740149741149742149743149744149745149746149747149748149749149750149751149752149753149754149755149756149757149758149759149760149761149762149763149764149765149766149767149768149769149770149771149772149773149774149775149776149777149778149779149780149781149782149783149784149785149786149787149788149789149790149791149792149793149794149795149796149797149798149799149800149801149802149803149804149805149806149807149808149809149810149811149812149813149814149815149816149817149818149819149820149821149822149823149824149825149826149827149828149829149830149831149832149833149834149835149836149837149838149839149840149841149842149843149844149845149846149847149848149849149850149851149852149853149854149855149856149857149858149859149860149861149862149863149864149865149866149867149868149869149870149871149872149873149874149875149876149877149878149879149880149881149882149883149884149885149886149887149888149889149890149891149892149893149894149895149896149897149898149899149900149901149902149903149904149905149906149907149908149909149910149911149912149913149914149915149916149917149918149919149920149921149922149923149924149925149926149927149928149929149930149931149932149933149934149935149936149937149938149939149940149941149942149943149944149945149946149947149948149949149950149951149952149953149954149955149956149957149958149959149960149961149962149963149964149965149966149967149968149969149970149971149972149973149974149975149976149977149978149979149980149981149982149983149984149985149986149987149988149989149990149991149992149993149994149995149996149997149998149999150000150001150002150003150004150005150006150007150008150009150010150011150012150013150014150015150016150017150018150019150020150021150022150023150024150025150026150027150028150029150030150031150032150033150034150035150036150037150038150039150040150041150042150043150044150045150046150047150048150049150050150051150052150053150054150055150056150057150058150059150060150061150062150063150064150065150066150067150068150069150070150071150072150073150074150075150076150077150078150079150080150081150082150083150084150085150086150087150088150089150090150091150092150093150094150095150096150097150098150099150100150101150102150103150104150105150106150107150108150109150110150111150112150113150114150115150116150117150118150119150120150121150122150123150124150125150126150127150128150129150130150131150132150133150134150135150136150137150138150139150140150141150142150143150144150145150146150147150148150149150150150151150152150153150154150155150156150157150158150159150160150161150162150163150164150165150166150167150168150169150170150171150172150173150174150175150176150177150178150179150180150181150182150183150184150185150186150187150188150189150190150191150192150193150194150195150196150197150198150199150200150201150202150203150204150205150206150207150208150209150210150211150212150213150214150215150216150217150218150219150220150221150222150223150224150225150226150227150228150229150230150231150232150233150234150235150236150237150238150239150240150241150242150243150244150245150246150247150248150249150250150251150252150253150254150255150256150257150258150259150260150261150262150263150264150265150266150267150268150269150270150271150272150273150274150275150276150277150278150279150280150281150282150283150284150285150286150287150288150289150290150291150292150293150294150295150296150297150298150299150300150301150302150303150304150305150306150307150308150309150310150311150312150313150314150315150316150317150318150319150320150321150322150323150324150325150326150327150328150329150330150331150332150333150334150335150336150337150338150339150340150341150342150343150344150345150346150347150348150349150350150351150352150353150354150355150356150357150358150359150360150361150362150363150364150365150366150367150368150369150370150371150372150373150374150375150376150377150378150379150380150381150382150383150384150385150386150387150388150389150390150391150392150393150394150395150396150397150398150399150400150401150402150403150404150405150406150407150408150409150410150411150412150413150414150415150416150417150418150419150420150421150422150423150424150425150426150427150428150429150430150431150432150433150434150435150436150437150438150439150440150441150442150443150444150445150446150447150448150449150450150451150452150453150454150455150456150457150458150459150460150461150462150463150464150465150466150467150468150469150470150471150472150473150474150475150476150477150478150479150480150481150482150483150484150485150486150487150488150489150490150491150492150493150494150495150496150497150498150499150500150501150502150503150504150505150506150507150508150509150510150511150512150513150514150515150516150517150518150519150520150521150522150523150524150525150526150527150528150529150530150531150532150533150534150535150536150537150538150539150540150541150542150543150544150545150546150547150548150549150550150551150552150553150554150555150556150557150558150559150560150561150562150563150564150565150566150567150568150569150570150571150572150573150574150575150576150577150578150579150580150581150582150583150584150585150586150587150588150589150590150591150592150593150594150595150596150597150598150599150600150601150602150603150604150605150606150607150608150609150610150611150612150613150614150615150616150617150618150619150620150621150622150623150624150625150626150627150628150629150630150631150632150633150634150635150636150637150638150639150640150641150642150643150644150645150646150647150648150649150650150651150652150653150654150655150656150657150658150659150660150661150662150663150664150665150666150667150668150669150670150671150672150673150674150675150676150677150678150679150680150681150682150683150684150685150686150687150688150689150690150691150692150693150694150695150696150697150698150699150700150701150702150703150704150705150706150707150708150709150710150711150712150713150714150715150716150717150718150719150720150721150722150723150724150725150726150727150728150729150730150731150732150733150734150735150736150737150738150739150740150741150742150743150744150745150746150747150748150749150750150751150752150753150754150755150756150757150758150759150760150761150762150763150764150765150766150767150768150769150770150771150772150773150774150775150776150777150778150779150780150781150782150783150784150785150786150787150788150789150790150791150792150793150794150795150796150797150798150799150800150801150802150803150804150805150806150807150808150809150810150811150812150813150814150815150816150817150818150819150820150821150822150823150824150825150826150827150828150829150830150831150832150833150834150835150836150837150838150839150840150841150842150843150844150845150846150847150848150849150850150851150852150853150854150855150856150857150858150859150860150861150862150863150864150865150866150867150868150869150870150871150872150873150874150875150876150877150878150879150880150881150882150883150884150885150886150887150888150889150890150891150892150893150894150895150896150897150898150899150900150901150902150903150904150905150906150907150908150909150910150911150912150913150914150915150916150917150918150919150920150921150922150923150924150925150926150927150928150929150930150931150932150933150934150935150936150937150938150939150940150941150942150943150944150945150946150947150948150949150950150951150952150953150954150955150956150957150958150959150960150961150962150963150964150965150966150967150968150969150970150971150972150973150974150975150976150977150978150979150980150981150982150983150984150985150986150987150988150989150990150991150992150993150994150995150996150997150998150999151000151001151002151003151004151005151006151007151008151009151010151011151012151013151014151015151016151017151018151019151020151021151022151023151024151025151026151027151028151029151030151031151032151033151034151035151036151037151038151039151040151041151042151043151044151045151046151047151048151049151050151051151052151053151054151055151056151057151058151059151060151061151062151063151064151065151066151067151068151069151070151071151072151073151074151075151076151077151078151079151080151081151082151083151084151085151086151087151088151089151090151091151092151093151094151095151096151097151098151099151100151101151102151103151104151105151106151107151108151109151110151111151112151113151114151115151116151117151118151119151120151121151122151123151124151125151126151127151128151129151130151131151132151133151134151135151136151137151138151139151140151141151142151143151144151145151146151147151148151149151150151151151152151153151154151155151156151157151158151159151160151161151162151163151164151165151166151167151168151169151170151171151172151173151174151175151176151177151178151179151180151181151182151183151184151185151186151187151188151189151190151191151192151193151194151195151196151197151198151199151200151201151202151203151204151205151206151207151208151209151210151211151212151213151214151215151216151217151218151219151220151221151222151223151224151225151226151227151228151229151230151231151232151233151234151235151236151237151238151239151240151241151242151243151244151245151246151247151248151249151250151251151252151253151254151255151256151257151258151259151260151261151262151263151264151265151266151267151268151269151270151271151272151273151274151275151276151277151278151279151280151281151282151283151284151285151286151287151288151289151290151291151292151293151294151295151296151297151298151299151300151301151302151303151304151305151306151307151308151309151310151311151312151313151314151315151316151317151318151319151320151321151322151323151324151325151326151327151328151329151330151331151332151333151334151335151336151337151338151339151340151341151342151343151344151345151346151347151348151349151350151351151352151353151354151355151356151357151358151359151360151361151362151363151364151365151366151367151368151369151370151371151372151373151374151375151376151377151378151379151380151381151382151383151384151385151386151387151388151389151390151391151392151393151394151395151396151397151398151399151400151401151402151403151404151405151406151407151408151409151410151411151412151413151414151415151416151417151418151419151420151421151422151423151424151425151426151427151428151429151430151431151432151433151434151435151436151437151438151439151440151441151442151443151444151445151446151447151448151449151450151451151452151453151454151455151456151457151458151459151460151461151462151463151464151465151466151467151468151469151470151471151472151473151474151475151476151477151478151479151480151481151482151483151484151485151486151487151488151489151490151491151492151493151494151495151496151497151498151499151500151501151502151503151504151505151506151507151508151509151510151511151512151513151514151515151516151517151518151519151520151521151522151523151524151525151526151527151528151529151530151531151532151533151534151535151536151537151538151539151540151541151542151543151544151545151546151547151548151549151550151551151552151553151554151555151556151557151558151559151560151561151562151563151564151565151566151567151568151569151570151571151572151573151574151575151576151577151578151579151580151581151582151583151584151585151586151587151588151589151590151591151592151593151594151595151596151597151598151599151600151601151602151603151604151605151606151607151608151609151610151611151612151613151614151615151616151617151618151619151620151621151622151623151624151625151626151627151628151629151630151631151632151633151634151635151636151637151638151639151640151641151642151643151644151645151646151647151648151649151650151651151652151653151654151655151656151657151658151659151660151661151662151663151664151665151666151667151668151669151670151671151672151673151674151675151676151677151678151679151680151681151682151683151684151685151686151687151688151689151690151691151692151693151694151695151696151697151698151699151700151701151702151703151704151705151706151707151708151709151710151711151712151713151714151715151716151717151718151719151720151721151722151723151724151725151726151727151728151729151730151731151732151733151734151735151736151737151738151739151740151741151742151743151744151745151746151747151748151749151750151751151752151753151754151755151756151757151758151759151760151761151762151763151764151765151766151767151768151769151770151771151772151773151774151775151776151777151778151779151780151781151782151783151784151785151786151787151788151789151790151791151792151793151794151795151796151797151798151799151800151801151802151803151804151805151806151807151808151809151810151811151812151813151814151815151816151817151818151819151820151821151822151823151824151825151826151827151828151829151830151831151832151833151834151835151836151837151838151839151840151841151842151843151844151845151846151847151848151849151850151851151852151853151854151855151856151857151858151859151860151861151862151863151864151865151866151867151868151869151870151871151872151873151874151875151876151877151878151879151880151881151882151883151884151885151886151887151888151889151890151891151892151893151894151895151896151897151898151899151900151901151902151903151904151905151906151907151908151909151910151911151912151913151914151915151916151917151918151919151920151921151922151923151924151925151926151927151928151929151930151931151932151933151934151935151936151937151938151939151940151941151942151943151944151945151946151947151948151949151950151951151952151953151954151955151956151957151958151959151960151961151962151963151964151965151966151967151968151969151970151971151972151973151974151975151976151977151978151979151980151981151982151983151984151985151986151987151988151989151990151991151992151993151994151995151996151997151998151999152000152001152002152003152004152005152006152007152008152009152010152011152012152013152014152015152016152017152018152019152020152021152022152023152024152025152026152027152028152029152030152031152032152033152034152035152036152037152038152039152040152041152042152043152044152045152046152047152048152049152050152051152052152053152054152055152056152057152058152059152060152061152062152063152064152065152066152067152068152069152070152071152072152073152074152075152076152077152078152079152080152081152082152083152084152085152086152087152088152089152090152091152092152093152094152095152096152097152098152099152100152101152102152103152104152105152106152107152108152109152110152111152112152113152114152115152116152117152118152119152120152121152122152123152124152125152126152127152128152129152130152131152132152133152134152135152136152137152138152139152140152141152142152143152144152145152146152147152148152149152150152151152152152153152154152155152156152157152158152159152160152161152162152163152164152165152166152167152168152169152170152171152172152173152174152175152176152177152178152179152180152181152182152183152184152185152186152187152188152189152190152191152192152193152194152195152196152197152198152199152200152201152202152203152204152205152206152207152208152209152210152211152212152213152214152215152216152217152218152219152220152221152222152223152224152225152226152227152228152229152230152231152232152233152234152235152236152237152238152239152240152241152242152243152244152245152246152247152248152249152250152251152252152253152254152255152256152257152258152259152260152261152262152263152264152265152266152267152268152269152270152271152272152273152274152275152276152277152278152279152280152281152282152283152284152285152286152287152288152289152290152291152292152293152294152295152296152297152298152299152300152301152302152303152304152305152306152307152308152309152310152311152312152313152314152315152316152317152318152319152320152321152322152323152324152325152326152327152328152329152330152331152332152333152334152335152336152337152338152339152340152341152342152343152344152345152346152347152348152349152350152351152352152353152354152355152356152357152358152359152360152361152362152363152364152365152366152367152368152369152370152371152372152373152374152375152376152377152378152379152380152381152382152383152384152385152386152387152388152389152390152391152392152393152394152395152396152397152398152399152400152401152402152403152404152405152406152407152408152409152410152411152412152413152414152415152416152417152418152419152420152421152422152423152424152425152426152427152428152429152430152431152432152433152434152435152436152437152438152439152440152441152442152443152444152445152446152447152448152449152450152451152452152453152454152455152456152457152458152459152460152461152462152463152464152465152466152467152468152469152470152471152472152473152474152475152476152477152478152479152480152481152482152483152484152485152486152487152488152489152490152491152492152493152494152495152496152497152498152499152500152501152502152503152504152505152506152507152508152509152510152511152512152513152514152515152516152517152518152519152520152521152522152523152524152525152526152527152528152529152530152531152532152533152534152535152536152537152538152539152540152541152542152543152544152545152546152547152548152549152550152551152552152553152554152555152556152557152558152559152560152561152562152563152564152565152566152567152568152569152570152571152572152573152574152575152576152577152578152579152580152581152582152583152584152585152586152587152588152589152590152591152592152593152594152595152596152597152598152599152600152601152602152603152604152605152606152607152608152609152610152611152612152613152614152615152616152617152618152619152620152621152622152623152624152625152626152627152628152629152630152631152632152633152634152635152636152637152638152639152640152641152642152643152644152645152646152647152648152649152650152651152652152653152654152655152656152657152658152659152660152661152662152663152664152665152666152667152668152669152670152671152672152673152674152675152676152677152678152679152680152681152682152683152684152685152686152687152688152689152690152691152692152693152694152695152696152697152698152699152700152701152702152703152704152705152706152707152708152709152710152711152712152713152714152715152716152717152718152719152720152721152722152723152724152725152726152727152728152729152730152731152732152733152734152735152736152737152738152739152740152741152742152743152744152745152746152747152748152749152750152751152752152753152754152755152756152757152758152759152760152761152762152763152764152765152766152767152768152769152770152771152772152773152774152775152776152777152778152779152780152781152782152783152784152785152786152787152788152789152790152791152792152793152794152795152796152797152798152799152800152801152802152803152804152805152806152807152808152809152810152811152812152813152814152815152816152817152818152819152820152821152822152823152824152825152826152827152828152829152830152831152832152833152834152835152836152837152838152839152840152841152842152843152844152845152846152847152848152849152850152851152852152853152854152855152856152857152858152859152860152861152862152863152864152865152866152867152868152869152870152871152872152873152874152875152876152877152878152879152880152881152882152883152884152885152886152887152888152889152890152891152892152893152894152895152896152897152898152899152900152901152902152903152904152905152906152907152908152909152910152911152912152913152914152915152916152917152918152919152920152921152922152923152924152925152926152927152928152929152930152931152932152933152934152935152936152937152938152939152940152941152942152943152944152945152946152947152948152949152950152951152952152953152954152955152956152957152958152959152960152961152962152963152964152965152966152967152968152969152970152971152972152973152974152975152976152977152978152979152980152981152982152983152984152985152986152987152988152989152990152991152992152993152994152995152996152997152998152999153000153001153002153003153004153005153006153007153008153009153010153011153012153013153014153015153016153017153018153019153020153021153022153023153024153025153026153027153028153029153030153031153032153033153034153035153036153037153038153039153040153041153042153043153044153045153046153047153048153049153050153051153052153053153054153055153056153057153058153059153060153061153062153063153064153065153066153067153068153069153070153071153072153073153074153075153076153077153078153079153080153081153082153083153084153085153086153087153088153089153090153091153092153093153094153095153096153097153098153099153100153101153102153103153104153105153106153107153108153109153110153111153112153113153114153115153116153117153118153119153120153121153122153123153124153125153126153127153128153129153130153131153132153133153134153135153136153137153138153139153140153141153142153143153144153145153146153147153148153149153150153151153152153153153154153155153156153157153158153159153160153161153162153163153164153165153166153167153168153169153170153171153172153173153174153175153176153177153178153179153180153181153182153183153184153185153186153187153188153189153190153191153192153193153194153195153196153197153198153199153200153201153202153203153204153205153206153207153208153209153210153211153212153213153214153215153216153217153218153219153220153221153222153223153224153225153226153227153228153229153230153231153232153233153234153235153236153237153238153239153240153241153242153243153244153245153246153247153248153249153250153251153252153253153254153255153256153257153258153259153260153261153262153263153264153265153266153267153268153269153270153271153272153273153274153275153276153277153278153279153280153281153282153283153284153285153286153287153288153289153290153291153292153293153294153295153296153297153298153299153300153301153302153303153304153305153306153307153308153309153310153311153312153313153314153315153316153317153318153319153320153321153322153323153324153325153326153327153328153329153330153331153332153333153334153335153336153337153338153339153340153341153342153343153344153345153346153347153348153349153350153351153352153353153354153355153356153357153358153359153360153361153362153363153364153365153366153367153368153369153370153371153372153373153374153375153376153377153378153379153380153381153382153383153384153385153386153387153388153389153390153391153392153393153394153395153396153397153398153399153400153401153402153403153404153405153406153407153408153409153410153411153412153413153414153415153416153417153418153419153420153421153422153423153424153425153426153427153428153429153430153431153432153433153434153435153436153437153438153439153440153441153442153443153444153445153446153447153448153449153450153451153452153453153454153455153456153457153458153459153460153461153462153463153464153465153466153467153468153469153470153471153472153473153474153475153476153477153478153479153480153481153482153483153484153485153486153487153488153489153490153491153492153493153494153495153496153497153498153499153500153501153502153503153504153505153506153507153508153509153510153511153512153513153514153515153516153517153518153519153520153521153522153523153524153525153526153527153528153529153530153531153532153533153534153535153536153537153538153539153540153541153542153543153544153545153546153547153548153549153550153551153552153553153554153555153556153557153558153559153560153561153562153563153564153565153566153567153568153569153570153571153572153573153574153575153576153577153578153579153580153581153582153583153584153585153586153587153588153589153590153591153592153593153594153595153596153597153598153599153600153601153602153603153604153605153606153607153608153609153610153611153612153613153614153615153616153617153618153619153620153621153622153623153624153625153626153627153628153629153630153631153632153633153634153635153636153637153638153639153640153641153642153643153644153645153646153647153648153649153650153651153652153653153654153655153656153657153658153659153660153661153662153663153664153665153666153667153668153669153670153671153672153673153674153675153676153677153678153679153680153681153682153683153684153685153686153687153688153689153690153691153692153693153694153695153696153697153698153699153700153701153702153703153704153705153706153707153708153709153710153711153712153713153714153715153716153717153718153719153720153721153722153723153724153725153726153727153728153729153730153731153732153733153734153735153736153737153738153739153740153741153742153743153744153745153746153747153748153749153750153751153752153753153754153755153756153757153758153759153760153761153762153763153764153765153766153767153768153769153770153771153772153773153774153775153776153777153778153779153780153781153782153783153784153785153786153787153788153789153790153791153792153793153794153795153796153797153798153799153800153801153802153803153804153805153806153807153808153809153810153811153812153813153814153815153816153817153818153819153820153821153822153823153824153825153826153827153828153829153830153831153832153833153834153835153836153837153838153839153840153841153842153843153844153845153846153847153848153849153850153851153852153853153854153855153856153857153858153859153860153861153862153863153864153865153866153867153868153869153870153871153872153873153874153875153876153877153878153879153880153881153882153883153884153885153886153887153888153889153890153891153892153893153894153895153896153897153898153899153900153901153902153903153904153905153906153907153908153909153910153911153912153913153914153915153916153917153918153919153920153921153922153923153924153925153926153927153928153929153930153931153932153933153934153935153936153937153938153939153940153941153942153943153944153945153946153947153948153949153950153951153952153953153954153955153956153957153958153959153960153961153962153963153964153965153966153967153968153969153970153971153972153973153974153975153976153977153978153979153980153981153982153983153984153985153986153987153988153989153990153991153992153993153994153995153996153997153998153999154000154001154002154003154004154005154006154007154008154009154010154011154012154013154014154015154016154017154018154019154020154021154022154023154024154025154026154027154028154029154030154031154032154033154034154035154036154037154038154039154040154041154042154043154044154045154046154047154048154049154050154051154052154053154054154055154056154057154058154059154060154061154062154063154064154065154066154067154068154069154070154071154072154073154074154075154076154077154078154079154080154081154082154083154084154085154086154087154088154089154090154091154092154093154094154095154096154097154098154099154100154101154102154103154104154105154106154107154108154109154110154111154112154113154114154115154116154117154118154119154120154121154122154123154124154125154126154127154128154129154130154131154132154133154134154135154136154137154138154139154140154141154142154143154144154145154146154147154148154149154150154151154152154153154154154155154156154157154158154159154160154161154162154163154164154165154166154167154168154169154170154171154172154173154174154175154176154177154178154179154180154181154182154183154184154185154186154187154188154189154190154191154192154193154194154195154196154197154198154199154200154201154202154203154204154205154206154207154208154209154210154211154212154213154214154215154216154217154218154219154220154221154222154223154224154225154226154227154228154229154230154231154232154233154234154235154236154237154238154239154240154241154242154243154244154245154246154247154248154249154250154251154252154253154254154255154256154257154258154259154260154261154262154263154264154265154266154267154268154269154270154271154272154273154274154275154276154277154278154279154280154281154282154283154284154285154286154287154288154289154290154291154292154293154294154295154296154297154298154299154300154301154302154303154304154305154306154307154308154309154310154311154312154313154314154315154316154317154318154319154320154321154322154323154324154325154326154327154328154329154330154331154332154333154334154335154336154337154338154339154340154341154342154343154344154345154346154347154348154349154350154351154352154353154354154355154356154357154358154359154360154361154362154363154364154365154366154367154368154369154370154371154372154373154374154375154376154377154378154379154380154381154382154383154384154385154386154387154388154389154390154391154392154393154394154395154396154397154398154399154400154401154402154403154404154405154406154407154408154409154410154411154412154413154414154415154416154417154418154419154420154421154422154423154424154425154426154427154428154429154430154431154432154433154434154435154436154437154438154439154440154441154442154443154444154445154446154447154448154449154450154451154452154453154454154455154456154457154458154459154460154461154462154463154464154465154466154467154468154469154470154471154472154473154474154475154476154477154478154479154480154481154482154483154484154485154486154487154488154489154490154491154492154493154494154495154496154497154498154499154500154501154502154503154504154505154506154507154508154509154510154511154512154513154514154515154516154517154518154519154520154521154522154523154524154525154526154527154528154529154530154531154532154533154534154535154536154537154538154539154540154541154542154543154544154545154546154547154548154549154550154551154552154553154554154555154556154557154558154559154560154561154562154563154564154565154566154567154568154569154570154571154572154573154574154575154576154577154578154579154580154581154582154583154584154585154586154587154588154589154590154591154592154593154594154595154596154597154598154599154600154601154602154603154604154605154606154607154608154609154610154611154612154613154614154615154616154617154618154619154620154621154622154623154624154625154626154627154628154629154630154631154632154633154634154635154636154637154638154639154640154641154642154643154644154645154646154647154648154649154650154651154652154653154654154655154656154657154658154659154660154661154662154663154664154665154666154667154668154669154670154671154672154673154674154675154676154677154678154679154680154681154682154683154684154685154686154687154688154689154690154691154692154693154694154695154696154697154698154699154700154701154702154703154704154705154706154707154708154709154710154711154712154713154714154715154716154717154718154719154720154721154722154723154724154725154726154727154728154729154730154731154732154733154734154735154736154737154738154739154740154741154742154743154744154745154746154747154748154749154750154751154752154753154754154755154756154757154758154759154760154761154762154763154764154765154766154767154768154769154770154771154772154773154774154775154776154777154778154779154780154781154782154783154784154785154786154787154788154789154790154791154792154793154794154795154796154797154798154799154800154801154802154803154804154805154806154807154808154809154810154811154812154813154814154815154816154817154818154819154820154821154822154823154824154825154826154827154828154829154830154831154832154833154834154835154836154837154838154839154840154841154842154843154844154845154846154847154848154849154850154851154852154853154854154855154856154857154858154859154860154861154862154863154864154865154866154867154868154869154870154871154872154873154874154875154876154877154878154879154880154881154882154883154884154885154886154887154888154889154890154891154892154893154894154895154896154897154898154899154900154901154902154903154904154905154906154907154908154909154910154911154912154913154914154915154916154917154918154919154920154921154922154923154924154925154926154927154928154929154930154931154932154933154934154935154936154937154938154939154940154941154942154943154944154945154946154947154948154949154950154951154952154953154954154955154956154957154958154959154960154961154962154963154964154965154966154967154968154969154970154971154972154973154974154975154976154977154978154979154980154981154982154983154984154985154986154987154988154989154990154991154992154993154994154995154996154997154998154999155000155001155002155003155004155005155006155007155008155009155010155011155012155013155014155015155016155017155018155019155020155021155022155023155024155025155026155027155028155029155030155031155032155033155034155035155036155037155038155039155040155041155042155043155044155045155046155047155048155049155050155051155052155053155054155055155056155057155058155059155060155061155062155063155064155065155066155067155068155069155070155071155072155073155074155075155076155077155078155079155080155081155082155083155084155085155086155087155088155089155090155091155092155093155094155095155096155097155098155099155100155101155102155103155104155105155106155107155108155109155110155111155112155113155114155115155116155117155118155119155120155121155122155123155124155125155126155127155128155129155130155131155132155133155134155135155136155137155138155139155140155141155142155143155144155145155146155147155148155149155150155151155152155153155154155155155156155157155158155159155160155161155162155163155164155165155166155167155168155169155170155171155172155173155174155175155176155177155178155179155180155181155182155183155184155185155186155187155188155189155190155191155192155193155194155195155196155197155198155199155200155201155202155203155204155205155206155207155208155209155210155211155212155213155214155215155216155217155218155219155220155221155222155223155224155225155226155227155228155229155230155231155232155233155234155235155236155237155238155239155240155241155242155243155244155245155246155247155248155249155250155251155252155253155254155255155256155257155258155259155260155261155262155263155264155265155266155267155268155269155270155271155272155273155274155275155276155277155278155279155280155281155282155283155284155285155286155287155288155289155290155291155292155293155294155295155296155297155298155299155300155301155302155303155304155305155306155307155308155309155310155311155312155313155314155315155316155317155318155319155320155321155322155323155324155325155326155327155328155329155330155331155332155333155334155335155336155337155338155339155340155341155342155343155344155345155346155347155348155349155350155351155352155353155354155355155356155357155358155359155360155361155362155363155364155365155366155367155368155369155370155371155372155373155374155375155376155377155378155379155380155381155382155383155384155385155386155387155388155389155390155391155392155393155394155395155396155397155398155399155400155401155402155403155404155405155406155407155408155409155410155411155412155413155414155415155416155417155418155419155420155421155422155423155424155425155426155427155428155429155430155431155432155433155434155435155436155437155438155439155440155441155442155443155444155445155446155447155448155449155450155451155452155453155454155455155456155457155458155459155460155461155462155463155464155465155466155467155468155469155470155471155472155473155474155475155476155477155478155479155480155481155482155483155484155485155486155487155488155489155490155491155492155493155494155495155496155497155498155499155500155501155502155503155504155505155506155507155508155509155510155511155512155513155514155515155516155517155518155519155520155521155522155523155524155525155526155527155528155529155530155531155532155533155534155535155536155537155538155539155540155541155542155543155544155545155546155547155548155549155550155551155552155553155554155555155556155557155558155559155560155561155562155563155564155565155566155567155568155569155570155571155572155573155574155575155576155577155578155579155580155581155582155583155584155585155586155587155588155589155590155591155592155593155594155595155596155597155598155599155600155601155602155603155604155605155606155607155608155609155610155611155612155613155614155615155616155617155618155619155620155621155622155623155624155625155626155627155628155629155630155631155632155633155634155635155636155637155638155639155640155641155642155643155644155645155646155647155648155649155650155651155652155653155654155655155656155657155658155659155660155661155662155663155664155665155666155667155668155669155670155671155672155673155674155675155676155677155678155679155680155681155682155683155684155685155686155687155688155689155690155691155692155693155694155695155696155697155698155699155700155701155702155703155704155705155706155707155708155709155710155711155712155713155714155715155716155717155718155719155720155721155722155723155724155725155726155727155728155729155730155731155732155733155734155735155736155737155738155739155740155741155742155743155744155745155746155747155748155749155750155751155752155753155754155755155756155757155758155759155760155761155762155763155764155765155766155767155768155769155770155771155772155773155774155775155776155777155778155779155780155781155782155783155784155785155786155787155788155789155790155791155792155793155794155795155796155797155798155799155800155801155802155803155804155805155806155807155808155809155810155811155812155813155814155815155816155817155818155819155820155821155822155823155824155825155826155827155828155829155830155831155832155833155834155835155836155837155838155839155840155841155842155843155844155845155846155847155848155849155850155851155852155853155854155855155856155857155858155859155860155861155862155863155864155865155866155867155868155869155870155871155872155873155874155875155876155877155878155879155880155881155882155883155884155885155886155887155888155889155890155891155892155893155894155895155896155897155898155899155900155901155902155903155904155905155906155907155908155909155910155911155912155913155914155915155916155917155918155919155920155921155922155923155924155925155926155927155928155929155930155931155932155933155934155935155936155937155938155939155940155941155942155943155944155945155946155947155948155949155950155951155952155953155954155955155956155957155958155959155960155961155962155963155964155965155966155967155968155969155970155971155972155973155974155975155976155977155978155979155980155981155982155983155984155985155986155987155988155989155990155991155992155993155994155995155996155997155998155999156000156001156002156003156004156005156006156007156008156009156010156011156012156013156014156015156016156017156018156019156020156021156022156023156024156025156026156027156028156029156030156031156032156033156034156035156036156037156038156039156040156041156042156043156044156045156046156047156048156049156050156051156052156053156054156055156056156057156058156059156060156061156062156063156064156065156066156067156068156069156070156071156072156073156074156075156076156077156078156079156080156081156082156083156084156085156086156087156088156089156090156091156092156093156094156095156096156097156098156099156100156101156102156103156104156105156106156107156108156109156110156111156112156113156114156115156116156117156118156119156120156121156122156123156124156125156126156127156128156129156130156131156132156133156134156135156136156137156138156139156140156141156142156143156144156145156146156147156148156149156150156151156152156153156154156155156156156157156158156159156160156161156162156163156164156165156166156167156168156169156170156171156172156173156174156175156176156177156178156179156180156181156182156183156184156185156186156187156188156189156190156191156192156193156194156195156196156197156198156199156200156201156202156203156204156205156206156207156208156209156210156211156212156213156214156215156216156217156218156219156220156221156222156223156224156225156226156227156228156229156230156231156232156233156234156235156236156237156238156239156240156241156242156243156244156245156246156247156248156249156250156251156252156253156254156255156256156257156258156259156260156261156262156263156264156265156266156267156268156269156270156271156272156273156274156275156276156277156278156279156280156281156282156283156284156285156286156287156288156289156290156291156292156293156294156295156296156297156298156299156300156301156302156303156304156305156306156307156308156309156310156311156312156313156314156315156316156317156318156319156320156321156322156323156324156325156326156327156328156329156330156331156332156333156334156335156336156337156338156339156340156341156342156343156344156345156346156347156348156349156350156351156352156353156354156355156356156357156358156359156360156361156362156363156364156365156366156367156368156369156370156371156372156373156374156375156376156377156378156379156380156381156382156383156384156385156386156387156388156389156390156391156392156393156394156395156396156397156398156399156400156401156402156403156404156405156406156407156408156409156410156411156412156413156414156415156416156417156418156419156420156421156422156423156424156425156426156427156428156429156430156431156432156433156434156435156436156437156438156439156440156441156442156443156444156445156446156447156448156449156450156451156452156453156454156455156456156457156458156459156460156461156462156463156464156465156466156467156468156469156470156471156472156473156474156475156476156477156478156479156480156481156482156483156484156485156486156487156488156489156490156491156492156493156494156495156496156497156498156499156500156501156502156503156504156505156506156507156508156509156510156511156512156513156514156515156516156517156518156519156520156521156522156523156524156525156526156527156528156529156530156531156532156533156534156535156536156537156538156539156540156541156542156543156544156545156546156547156548156549156550156551156552156553156554156555156556156557156558156559156560156561156562156563156564156565156566156567156568156569156570156571156572156573156574156575156576156577156578156579156580156581156582156583156584156585156586156587156588156589156590156591156592156593156594156595156596156597156598156599156600156601156602156603156604156605156606156607156608156609156610156611156612156613156614156615156616156617156618156619156620156621156622156623156624156625156626156627156628156629156630156631156632156633156634156635156636156637156638156639156640156641156642156643156644156645156646156647156648156649156650156651156652156653156654156655156656156657156658156659156660156661156662156663156664156665156666156667156668156669156670156671156672156673156674156675156676156677156678156679156680156681156682156683156684156685156686156687156688156689156690156691156692156693156694156695156696156697156698156699156700156701156702156703156704156705156706156707156708156709156710156711156712156713156714156715156716156717156718156719156720156721156722156723156724156725156726156727156728156729156730156731156732156733156734156735156736156737156738156739156740156741156742156743156744156745156746156747156748156749156750156751156752156753156754156755156756156757156758156759156760156761156762156763156764156765156766156767156768156769156770156771156772156773156774156775156776156777156778156779156780156781156782156783156784156785156786156787156788156789156790156791156792156793156794156795156796156797156798156799156800156801156802156803156804156805156806156807156808156809156810156811156812156813156814156815156816156817156818156819156820156821156822156823156824156825156826156827156828156829156830156831156832156833156834156835156836156837156838156839156840156841156842156843156844156845156846156847156848156849156850156851156852156853156854156855156856156857156858156859156860156861156862156863156864156865156866156867156868156869156870156871156872156873156874156875156876156877156878156879156880156881156882156883156884156885156886156887156888156889156890156891156892156893156894156895156896156897156898156899156900156901156902156903156904156905156906156907156908156909156910156911156912156913156914156915156916156917156918156919156920156921156922156923156924156925156926156927156928156929156930156931156932156933156934156935156936156937156938156939156940156941156942156943156944156945156946156947156948156949156950156951156952156953156954156955156956156957156958156959156960156961156962156963156964156965156966156967156968156969156970156971156972156973156974156975156976156977156978156979156980156981156982156983156984156985156986156987156988156989156990156991156992156993156994156995156996156997156998156999157000157001157002157003157004157005157006157007157008157009157010157011157012157013157014157015157016157017157018157019157020157021157022157023157024157025157026157027157028157029157030157031157032157033157034157035157036157037157038157039157040157041157042157043157044157045157046157047157048157049157050157051157052157053157054157055157056157057157058157059157060157061157062157063157064157065157066157067157068157069157070157071157072157073157074157075157076157077157078157079157080157081157082157083157084157085157086157087157088157089157090157091157092157093157094157095157096157097157098157099157100157101157102157103157104157105157106157107157108157109157110157111157112157113157114157115157116157117157118157119157120157121157122157123157124157125157126157127157128157129157130157131157132157133157134157135157136157137157138157139157140157141157142157143157144157145157146157147157148157149157150157151157152157153157154157155157156157157157158157159157160157161157162157163157164157165157166157167157168157169157170157171157172157173157174157175157176157177157178157179157180157181157182157183157184157185157186157187157188157189157190157191157192157193157194157195157196157197157198157199157200157201157202157203157204157205157206157207157208157209157210157211157212157213157214157215157216157217157218157219157220157221157222157223157224157225157226157227157228157229157230157231157232157233157234157235157236157237157238157239157240157241157242157243157244157245157246157247157248157249157250157251157252157253157254157255157256157257157258157259157260157261157262157263157264157265157266157267157268157269157270157271157272157273157274157275157276157277157278157279157280157281157282157283157284157285157286157287157288157289157290157291157292157293157294157295157296157297157298157299157300157301157302157303157304157305157306157307157308157309157310157311157312157313157314157315157316157317157318157319157320157321157322157323157324157325157326157327157328157329157330157331157332157333157334157335157336157337157338157339157340157341157342157343157344157345157346157347157348157349157350157351157352157353157354157355157356157357157358157359157360157361157362157363157364157365157366157367157368157369157370157371157372157373157374157375157376157377157378157379157380157381157382157383157384157385157386157387157388157389157390157391157392157393157394157395157396157397157398157399157400157401157402157403157404157405157406157407157408157409157410157411157412157413157414157415157416157417157418157419157420157421157422157423157424157425157426157427157428157429157430157431157432157433157434157435157436157437157438157439157440157441157442157443157444157445157446157447157448157449157450157451157452157453157454157455157456157457157458157459157460157461157462157463157464157465157466157467157468157469157470157471157472157473157474157475157476157477157478157479157480157481157482157483157484157485157486157487157488157489157490157491157492157493157494157495157496157497157498157499157500157501157502157503157504157505157506157507157508157509157510157511157512157513157514157515157516157517157518157519157520157521157522157523157524157525157526157527157528157529157530157531157532157533157534157535157536157537157538157539157540157541157542157543157544157545157546157547157548157549157550157551157552157553157554157555157556157557157558157559157560157561157562157563157564157565157566157567157568157569157570157571157572157573157574157575157576157577157578157579157580157581157582157583157584157585157586157587157588157589157590157591157592157593157594157595157596157597157598157599157600157601157602157603157604157605157606157607157608157609157610157611157612157613157614157615157616157617157618157619157620157621157622157623157624157625157626157627157628157629157630157631157632157633157634157635157636157637157638157639157640157641157642157643157644157645157646157647157648157649157650157651157652157653157654157655157656157657157658157659157660157661157662157663157664157665157666157667157668157669157670157671157672157673157674157675157676157677157678157679157680157681157682157683157684157685157686157687157688157689157690157691157692157693157694157695157696157697157698157699157700157701157702157703157704157705157706157707157708157709157710157711157712157713157714157715157716157717157718157719157720157721157722157723157724157725157726157727157728157729157730157731157732157733157734157735157736157737157738157739157740157741157742157743157744157745157746157747157748157749157750157751157752157753157754157755157756157757157758157759157760157761157762157763157764157765157766157767157768157769157770157771157772157773157774157775157776157777157778157779157780157781157782157783157784157785157786157787157788157789157790157791157792157793157794157795157796157797157798157799157800157801157802157803157804157805157806157807157808157809157810157811157812157813157814157815157816157817157818157819157820157821157822157823157824157825157826157827157828157829157830157831157832157833157834157835157836157837157838157839157840157841157842157843157844157845157846157847157848157849157850157851157852157853157854157855157856157857157858157859157860157861157862157863157864157865157866157867157868157869157870157871157872157873157874157875157876157877157878157879157880157881157882157883157884157885157886157887157888157889157890157891157892157893157894157895157896157897157898157899157900157901157902157903157904157905157906157907157908157909157910157911157912157913157914157915157916157917157918157919157920157921157922157923157924157925157926157927157928157929157930157931157932157933157934157935157936157937157938157939157940157941157942157943157944157945157946157947157948157949157950157951157952157953157954157955157956157957157958157959157960157961157962157963157964157965157966157967157968157969157970157971157972157973157974157975157976157977157978157979157980157981157982157983157984157985157986157987157988157989157990157991157992157993157994157995157996157997157998157999158000158001158002158003158004158005158006158007158008158009158010158011158012158013158014158015158016158017158018158019158020158021158022158023158024158025158026158027158028158029158030158031158032158033158034158035158036158037158038158039158040158041158042158043158044158045158046158047158048158049158050158051158052158053158054158055158056158057158058158059158060158061158062158063158064158065158066158067158068158069158070158071158072158073158074158075158076158077158078158079158080158081158082158083158084158085158086158087158088158089158090158091158092158093158094158095158096158097158098158099158100158101158102158103158104158105158106158107158108158109158110158111158112158113158114158115158116158117158118158119158120158121158122158123158124158125158126158127158128158129158130158131158132158133158134158135158136158137158138158139158140158141158142158143158144158145158146158147158148158149158150158151158152158153158154158155158156158157158158158159158160158161158162158163158164158165158166158167158168158169158170158171158172158173158174158175158176158177158178158179158180158181158182158183158184158185158186158187158188158189158190158191158192158193158194158195158196158197158198158199158200158201158202158203158204158205158206158207158208158209158210158211158212158213158214158215158216158217158218158219158220158221158222158223158224158225158226158227158228158229158230158231158232158233158234158235158236158237158238158239158240158241158242158243158244158245158246158247158248158249158250158251158252158253158254158255158256158257158258158259158260158261158262158263158264158265158266158267158268158269158270158271158272158273158274158275158276158277158278158279158280158281158282158283158284158285158286158287158288158289158290158291158292158293158294158295158296158297158298158299158300158301158302158303158304158305158306158307158308158309158310158311158312158313158314158315158316158317158318158319158320158321158322158323158324158325158326158327158328158329158330158331158332158333158334158335158336158337158338158339158340158341158342158343158344158345158346158347158348158349158350158351158352158353158354158355158356158357158358158359158360158361158362158363158364158365158366158367158368158369158370158371158372158373158374158375158376158377158378158379158380158381158382158383158384158385158386158387158388158389158390158391158392158393158394158395158396158397158398158399158400158401158402158403158404158405158406158407158408158409158410158411158412158413158414158415158416158417158418158419158420158421158422158423158424158425158426158427158428158429158430158431158432158433158434158435158436158437158438158439158440158441158442158443158444158445158446158447158448158449158450158451158452158453158454158455158456158457158458158459158460158461158462158463158464158465158466158467158468158469158470158471158472158473158474158475158476158477158478158479158480158481158482158483158484158485158486158487158488158489158490158491158492158493158494158495158496158497158498158499158500158501158502158503158504158505158506158507158508158509158510158511158512158513158514158515158516158517158518158519158520158521158522158523158524158525158526158527158528158529158530158531158532158533158534158535158536158537158538158539158540158541158542158543158544158545158546158547158548158549158550158551158552158553158554158555158556158557158558158559158560158561158562158563158564158565158566158567158568158569158570158571158572158573158574158575158576158577158578158579158580158581158582158583158584158585158586158587158588158589158590158591158592158593158594158595158596158597158598158599158600158601158602158603158604158605158606158607158608158609158610158611158612158613158614158615158616158617158618158619158620158621158622158623158624158625158626158627158628158629158630158631158632158633158634158635158636158637158638158639158640158641158642158643158644158645158646158647158648158649158650158651158652158653158654158655158656158657158658158659158660158661158662158663158664158665158666158667158668158669158670158671158672158673158674158675158676158677158678158679158680158681158682158683158684158685158686158687158688158689158690158691158692158693158694158695158696158697158698158699158700158701158702158703158704158705158706158707158708158709158710158711158712158713158714158715158716158717158718158719158720158721158722158723158724158725158726158727158728158729158730158731158732158733158734158735158736158737158738158739158740158741158742158743158744158745158746158747158748158749158750158751158752158753158754158755158756158757158758158759158760158761158762158763158764158765158766158767158768158769158770158771158772158773158774158775158776158777158778158779158780158781158782158783158784158785158786158787158788158789158790158791158792158793158794158795158796158797158798158799158800158801158802158803158804158805158806158807158808158809158810158811158812158813158814158815158816158817158818158819158820158821158822158823158824158825158826158827158828158829158830158831158832158833158834158835158836158837158838158839158840158841158842158843158844158845158846158847158848158849158850158851158852158853158854158855158856158857158858158859158860158861158862158863158864158865158866158867158868158869158870158871158872158873158874158875158876158877158878158879158880158881158882158883158884158885158886158887158888158889158890158891158892158893158894158895158896158897158898158899158900158901158902158903158904158905158906158907158908158909158910158911158912158913158914158915158916158917158918158919158920158921158922158923158924158925158926158927158928158929158930158931158932158933158934158935158936158937158938158939158940158941158942158943158944158945158946158947158948158949158950158951158952158953158954158955158956158957158958158959158960158961158962158963158964158965158966158967158968158969158970158971158972158973158974158975158976158977158978158979158980158981158982158983158984158985158986158987158988158989158990158991158992158993158994158995158996158997158998158999159000159001159002159003159004159005159006159007159008159009159010159011159012159013159014159015159016159017159018159019159020159021159022159023159024159025159026159027159028159029159030159031159032159033159034159035159036159037159038159039159040159041159042159043159044159045159046159047159048159049159050159051159052159053159054159055159056159057159058159059159060159061159062159063159064159065159066159067159068159069159070159071159072159073159074159075159076159077159078159079159080159081159082159083159084159085159086159087159088159089159090159091159092159093159094159095159096159097159098159099159100159101159102159103159104159105159106159107159108159109159110159111159112159113159114159115159116159117159118159119159120159121159122159123159124159125159126159127159128159129159130159131159132159133159134159135159136159137159138159139159140159141159142159143159144159145159146159147159148159149159150159151159152159153159154159155159156159157159158159159159160159161159162159163159164159165159166159167159168159169159170159171159172159173159174159175159176159177159178159179159180159181159182159183159184159185159186159187159188159189159190159191159192159193159194159195159196159197159198159199159200159201159202159203159204159205159206159207159208159209159210159211159212159213159214159215159216159217159218159219159220159221159222159223159224159225159226159227159228159229159230159231159232159233159234159235159236159237159238159239159240159241159242159243159244159245159246159247159248159249159250159251159252159253159254159255159256159257159258159259159260159261159262159263159264159265159266159267159268159269159270159271159272159273159274159275159276159277159278159279159280159281159282159283159284159285159286159287159288159289159290159291159292159293159294159295159296159297159298159299159300159301159302159303159304159305159306159307159308159309159310159311159312159313159314159315159316159317159318159319159320159321159322159323159324159325159326159327159328159329159330159331159332159333159334159335159336159337159338159339159340159341159342159343159344159345159346159347159348159349159350159351159352159353159354159355159356159357159358159359159360159361159362159363159364159365159366159367159368159369159370159371159372159373159374159375159376159377159378159379159380159381159382159383159384159385159386159387159388159389159390159391159392159393159394159395159396159397159398159399159400159401159402159403159404159405159406159407159408159409159410159411159412159413159414159415159416159417159418159419159420159421159422159423159424159425159426159427159428159429159430159431159432159433159434159435159436159437159438159439159440159441159442159443159444159445159446159447159448159449159450159451159452159453159454159455159456159457159458159459159460159461159462159463159464159465159466159467159468159469159470159471159472159473159474159475159476159477159478159479159480159481159482159483159484159485159486159487159488159489159490159491159492159493159494159495159496159497159498159499159500159501159502159503159504159505159506159507159508159509159510159511159512159513159514159515159516159517159518159519159520159521159522159523159524159525159526159527159528159529159530159531159532159533159534159535159536159537159538159539159540159541159542159543159544159545159546159547159548159549159550159551159552159553159554159555159556159557159558159559159560159561159562159563159564159565159566159567159568159569159570159571159572159573159574159575159576159577159578159579159580159581159582159583159584159585159586159587159588159589159590159591159592159593159594159595159596159597159598159599159600159601159602159603159604159605159606159607159608159609159610159611159612159613159614159615159616159617159618159619159620159621159622159623159624159625159626159627159628159629159630159631159632159633159634159635159636159637159638159639159640159641159642159643159644159645159646159647159648159649159650159651159652159653159654159655159656159657159658159659159660159661159662159663159664159665159666159667159668159669159670159671159672159673159674159675159676159677159678159679159680159681159682159683159684159685159686159687159688159689159690159691159692159693159694159695159696159697159698159699159700159701159702159703159704159705159706159707159708159709159710159711159712159713159714159715159716159717159718159719159720159721159722159723159724159725159726159727159728159729159730159731159732159733159734159735159736159737159738159739159740159741159742159743159744159745159746159747159748159749159750159751159752159753159754159755159756159757159758159759159760159761159762159763159764159765159766159767159768159769159770159771159772159773159774159775159776159777159778159779159780159781159782159783159784159785159786159787159788159789159790159791159792159793159794159795159796159797159798159799159800159801159802159803159804159805159806159807159808159809159810159811159812159813159814159815159816159817159818159819159820159821159822159823159824159825159826159827159828159829159830159831159832159833159834159835159836159837159838159839159840159841159842159843159844159845159846159847159848159849159850159851159852159853159854159855159856159857159858159859159860159861159862159863159864159865159866159867159868159869159870159871159872159873159874159875159876159877159878159879159880159881159882159883159884159885159886159887159888159889159890159891159892159893159894159895159896159897159898159899159900159901159902159903159904159905159906159907159908159909159910159911159912159913159914159915159916159917159918159919159920159921159922159923159924159925159926159927159928159929159930159931159932159933159934159935159936159937159938159939159940159941159942159943159944159945159946159947159948159949159950159951159952159953159954159955159956159957159958159959159960159961159962159963159964159965159966159967159968159969159970159971159972159973159974159975159976159977159978159979159980159981159982159983159984159985159986159987159988159989159990159991159992159993159994159995159996159997159998159999160000160001160002160003160004160005160006160007160008160009160010160011160012160013160014160015160016160017160018160019160020160021160022160023160024160025160026160027160028160029160030160031160032160033160034160035160036160037160038160039160040160041160042160043160044160045160046160047160048160049160050160051160052160053160054160055160056160057160058160059160060160061160062160063160064160065160066160067160068160069160070160071160072160073160074160075160076160077160078160079160080160081160082160083160084160085160086160087160088160089160090160091160092160093160094160095160096160097160098160099160100160101160102160103160104160105160106160107160108160109160110160111160112160113160114160115160116160117160118160119160120160121160122160123160124160125160126160127160128160129160130160131160132160133160134160135160136160137160138160139160140160141160142160143160144160145160146160147160148160149160150160151160152160153160154160155160156160157160158160159160160160161160162160163160164160165160166160167160168160169160170160171160172160173160174160175160176160177160178160179160180160181160182160183160184160185160186160187160188160189160190160191160192160193160194160195160196160197160198160199160200160201160202160203160204160205160206160207160208160209160210160211160212160213160214160215160216160217160218160219160220160221160222160223160224160225160226160227160228160229160230160231160232160233160234160235160236160237160238160239160240160241160242160243160244160245160246160247160248160249160250160251160252160253160254160255160256160257160258160259160260160261160262160263160264160265160266160267160268160269160270160271160272160273160274160275160276160277160278160279160280160281160282160283160284160285160286160287160288160289160290160291160292160293160294160295160296160297160298160299160300160301160302160303160304160305160306160307160308160309160310160311160312160313160314160315160316160317160318160319160320160321160322160323160324160325160326160327160328160329160330160331160332160333160334160335160336160337160338160339160340160341160342160343160344160345160346160347160348160349160350160351160352160353160354160355160356160357160358160359160360160361160362160363160364160365160366160367160368160369160370160371160372160373160374160375160376160377160378160379160380160381160382160383160384160385160386160387160388160389160390160391160392160393160394160395160396160397160398160399160400160401160402160403160404160405160406160407160408160409160410160411160412160413160414160415160416160417160418160419160420160421160422160423160424160425160426160427160428160429160430160431160432160433160434160435160436160437160438160439160440160441160442160443160444160445160446160447160448160449160450160451160452160453160454160455160456160457160458160459160460160461160462160463160464160465160466160467160468160469160470160471160472160473160474160475160476160477160478160479160480160481160482160483160484160485160486160487160488160489160490160491160492160493160494160495160496160497160498160499160500160501160502160503160504160505160506160507160508160509160510160511160512160513160514160515160516160517160518160519160520160521160522160523160524160525160526160527160528160529160530160531160532160533160534160535160536160537160538160539160540160541160542160543160544160545160546160547160548160549160550160551160552160553160554160555160556160557160558160559160560160561160562160563160564160565160566160567160568160569160570160571160572160573160574160575160576160577160578160579160580160581160582160583160584160585160586160587160588160589160590160591160592160593160594160595160596160597160598160599160600160601160602160603160604160605160606160607160608160609160610160611160612160613160614160615160616160617160618160619160620160621160622160623160624160625160626160627160628160629160630160631160632160633160634160635160636160637160638160639160640160641160642160643160644160645160646160647160648160649160650160651160652160653160654160655160656160657160658160659160660160661160662160663160664160665160666160667160668160669160670160671160672160673160674160675160676160677160678160679160680160681160682160683160684160685160686160687160688160689160690160691160692160693160694160695160696160697160698160699160700160701160702160703160704160705160706160707160708160709160710160711160712160713160714160715160716160717160718160719160720160721160722160723160724160725160726160727160728160729160730160731160732160733160734160735160736160737160738160739160740160741160742160743160744160745160746160747160748160749160750160751160752160753160754160755160756160757160758160759160760160761160762160763160764160765160766160767160768160769160770160771160772160773160774160775160776160777160778160779160780160781160782160783160784160785160786160787160788160789160790160791160792160793160794160795160796160797160798160799160800160801160802160803160804160805160806160807160808160809160810160811160812160813160814160815160816160817160818160819160820160821160822160823160824160825160826160827160828160829160830160831160832160833160834160835160836160837160838160839160840160841160842160843160844160845160846160847160848160849160850160851160852160853160854160855160856160857160858160859160860160861160862160863160864160865160866160867160868160869160870160871160872160873160874160875160876160877160878160879160880160881160882160883160884160885160886160887160888160889160890160891160892160893160894160895160896160897160898160899160900160901160902160903160904160905160906160907160908160909160910160911160912160913160914160915160916160917160918160919160920160921160922160923160924160925160926160927160928160929160930160931160932160933160934160935160936160937160938160939160940160941160942160943160944160945160946160947160948160949160950160951160952160953160954160955160956160957160958160959160960160961160962160963160964160965160966160967160968160969160970160971160972160973160974160975160976160977160978160979160980160981160982160983160984160985160986160987160988160989160990160991160992160993160994160995160996160997160998160999161000161001161002161003161004161005161006161007161008161009161010161011161012161013161014161015161016161017161018161019161020161021161022161023161024161025161026161027161028161029161030161031161032161033161034161035161036161037161038161039161040161041161042161043161044161045161046161047161048161049161050161051161052161053161054161055161056161057161058161059161060161061161062161063161064161065161066161067161068161069161070161071161072161073161074161075161076161077161078161079161080161081161082161083161084161085161086161087161088161089161090161091161092161093161094161095161096161097161098161099161100161101161102161103161104161105161106161107161108161109161110161111161112161113161114161115161116161117161118161119161120161121161122161123161124161125161126161127161128161129161130161131161132161133161134161135161136161137161138161139161140161141161142161143161144161145161146161147161148161149161150161151161152161153161154161155161156161157161158161159161160161161161162161163161164161165161166161167161168161169161170161171161172161173161174161175161176161177161178161179161180161181161182161183161184161185161186161187161188161189161190161191161192161193161194161195161196161197161198161199161200161201161202161203161204161205161206161207161208161209161210161211161212161213161214161215161216161217161218161219161220161221161222161223161224161225161226161227161228161229161230161231161232161233161234161235161236161237161238161239161240161241161242161243161244161245161246161247161248161249161250161251161252161253161254161255161256161257161258161259161260161261161262161263161264161265161266161267161268161269161270161271161272161273161274161275161276161277161278161279161280161281161282161283161284161285161286161287161288161289161290161291161292161293161294161295161296161297161298161299161300161301161302161303161304161305161306161307161308161309161310161311161312161313161314161315161316161317161318161319161320161321161322161323161324161325161326161327161328161329161330161331161332161333161334161335161336161337161338161339161340161341161342161343161344161345161346161347161348161349161350161351161352161353161354161355161356161357161358161359161360161361161362161363161364161365161366161367161368161369161370161371161372161373161374161375161376161377161378161379161380161381161382161383161384161385161386161387161388161389161390161391161392161393161394161395161396161397161398161399161400161401161402161403161404161405161406161407161408161409161410161411161412161413161414161415161416161417161418161419161420161421161422161423161424161425161426161427161428161429161430161431161432161433161434161435161436161437161438161439161440161441161442161443161444161445161446161447161448161449161450161451161452161453161454161455161456161457161458161459161460161461161462161463161464161465161466161467161468161469161470161471161472161473161474161475161476161477161478161479161480161481161482161483161484161485161486161487161488161489161490161491161492161493161494161495161496161497161498161499161500161501161502161503161504161505161506161507161508161509161510161511161512161513161514161515161516161517161518161519161520161521161522161523161524161525161526161527161528161529161530161531161532161533161534161535161536161537161538161539161540161541161542161543161544161545161546161547161548161549161550161551161552161553161554161555161556161557161558161559161560161561161562161563161564161565161566161567161568161569161570161571161572161573161574161575161576161577161578161579161580161581161582161583161584161585161586161587161588161589161590161591161592161593161594161595161596161597161598161599161600161601161602161603161604161605161606161607161608161609161610161611161612161613161614161615161616161617161618161619161620161621161622161623161624161625161626161627161628161629161630161631161632161633161634161635161636161637161638161639161640161641161642161643161644161645161646161647161648161649161650161651161652161653161654161655161656161657161658161659161660161661161662161663161664161665161666161667161668161669161670161671161672161673161674161675161676161677161678161679161680161681161682161683161684161685161686161687161688161689161690161691161692161693161694161695161696161697161698161699161700161701161702161703161704161705161706161707161708161709161710161711161712161713161714161715161716161717161718161719161720161721161722161723161724161725161726161727161728161729161730161731161732161733161734161735161736161737161738161739161740161741161742161743161744161745161746161747161748161749161750161751161752161753161754161755161756161757161758161759161760161761161762161763161764161765161766161767161768161769161770161771161772161773161774161775161776161777161778161779161780161781161782161783161784161785161786161787161788161789161790161791161792161793161794161795161796161797161798161799161800161801161802161803161804161805161806161807161808161809161810161811161812161813161814161815161816161817161818161819161820161821161822161823161824161825161826161827161828161829161830161831161832161833161834161835161836161837161838161839161840161841161842161843161844161845161846161847161848161849161850161851161852161853161854161855161856161857161858161859161860161861161862161863161864161865161866161867161868161869161870161871161872161873161874161875161876161877161878161879161880161881161882161883161884161885161886161887161888161889161890161891161892161893161894161895161896161897161898161899161900161901161902161903161904161905161906161907161908161909161910161911161912161913161914161915161916161917161918161919161920161921161922161923161924161925161926161927161928161929161930161931161932161933161934161935161936161937161938161939161940161941161942161943161944161945161946161947161948161949161950161951161952161953161954161955161956161957161958161959161960161961161962161963161964161965161966161967161968161969161970161971161972161973161974161975161976161977161978161979161980161981161982161983161984161985161986161987161988161989161990161991161992161993161994161995161996161997161998161999162000162001162002162003162004162005162006162007162008162009162010162011162012162013162014162015162016162017162018162019162020162021162022162023162024162025162026162027162028162029162030162031162032162033162034162035162036162037162038162039162040162041162042162043162044162045162046162047162048162049162050162051162052162053162054162055162056162057162058162059162060162061162062162063162064162065162066162067162068162069162070162071162072162073162074162075162076162077162078162079162080162081162082162083162084162085162086162087162088162089162090162091162092162093162094162095162096162097162098162099162100162101162102162103162104162105162106162107162108162109162110162111162112162113162114162115162116162117162118162119162120162121162122162123162124162125162126162127162128162129162130162131162132162133162134162135162136162137162138162139162140162141162142162143162144162145162146162147162148162149162150162151162152162153162154162155162156162157162158162159162160162161162162162163162164162165162166162167162168162169162170162171162172162173162174162175162176162177162178162179162180162181162182162183162184162185162186162187162188162189162190162191162192162193162194162195162196162197162198162199162200162201162202162203162204162205162206162207162208162209162210162211162212162213162214162215162216162217162218162219162220162221162222162223162224162225162226162227162228162229162230162231162232162233162234162235162236162237162238162239162240162241162242162243162244162245162246162247162248162249162250162251162252162253162254162255162256162257162258162259162260162261162262162263162264162265162266162267162268162269162270162271162272162273162274162275162276162277162278162279162280162281162282162283162284162285162286162287162288162289162290162291162292162293162294162295162296162297162298162299162300162301162302162303162304162305162306162307162308162309162310162311162312162313162314162315162316162317162318162319162320162321162322162323162324162325162326162327162328162329162330162331162332162333162334162335162336162337162338162339162340162341162342162343162344162345162346162347162348162349162350162351162352162353162354162355162356162357162358162359162360162361162362162363162364162365162366162367162368162369162370162371162372162373162374162375162376162377162378162379162380162381162382162383162384162385162386162387162388162389162390162391162392162393162394162395162396162397162398162399162400162401162402162403162404162405162406162407162408162409162410162411162412162413162414162415162416162417162418162419162420162421162422162423162424162425162426162427162428162429162430162431162432162433162434162435162436162437162438162439162440162441162442162443162444162445162446162447162448162449162450162451162452162453162454162455162456162457162458162459162460162461162462162463162464162465162466162467162468162469162470162471162472162473162474162475162476162477162478162479162480162481162482162483162484162485162486162487162488162489162490162491162492162493162494162495162496162497162498162499162500162501162502162503162504162505162506162507162508162509162510162511162512162513162514162515162516162517162518162519162520162521162522162523162524162525162526162527162528162529162530162531162532162533162534162535162536162537162538162539162540162541162542162543162544162545162546162547162548162549162550162551162552162553162554162555162556162557162558162559162560162561162562162563162564162565162566162567162568162569162570162571162572162573162574162575162576162577162578162579162580162581162582162583162584162585162586162587162588162589162590162591162592162593162594162595162596162597162598162599162600162601162602162603162604162605162606162607162608162609162610162611162612162613162614162615162616162617162618162619162620162621162622162623162624162625162626162627162628162629162630162631162632162633162634162635162636162637162638162639162640162641162642162643162644162645162646162647162648162649162650162651162652162653162654162655162656162657162658162659162660162661162662162663162664162665162666162667162668162669162670162671162672162673162674162675162676162677162678162679162680162681162682162683162684162685162686162687162688162689162690162691162692162693162694162695162696162697162698162699162700162701162702162703162704162705162706162707162708162709162710162711162712162713162714162715162716162717162718162719162720162721162722162723162724162725162726162727162728162729162730162731162732162733162734162735162736162737162738162739162740162741162742162743162744162745162746162747162748162749162750162751162752162753162754162755162756162757162758162759162760162761162762162763162764162765162766162767162768162769162770162771162772162773162774162775162776162777162778162779162780162781162782162783162784162785162786162787162788162789162790162791162792162793162794162795162796162797162798162799162800162801162802162803162804162805162806162807162808162809162810162811162812162813162814162815162816162817162818162819162820162821162822162823162824162825162826162827162828162829162830162831162832162833162834162835162836162837162838162839162840162841162842162843162844162845162846162847162848162849162850162851162852162853162854162855162856162857162858162859162860162861162862162863162864162865162866162867162868162869162870162871162872162873162874162875162876162877162878162879162880162881162882162883162884162885162886162887162888162889162890162891162892162893162894162895162896162897162898162899162900162901162902162903162904162905162906162907162908162909162910162911162912162913162914162915162916162917162918162919162920162921162922162923162924162925162926162927162928162929162930162931162932162933162934162935162936162937162938162939162940162941162942162943162944162945162946162947162948162949162950162951162952162953162954162955162956162957162958162959162960162961162962162963162964162965162966162967162968162969162970162971162972162973162974162975162976162977162978162979162980162981162982162983162984162985162986162987162988162989162990162991162992162993162994162995162996162997162998162999163000163001163002163003163004163005163006163007163008163009163010163011163012163013163014163015163016163017163018163019163020163021163022163023163024163025163026163027163028163029163030163031163032163033163034163035163036163037163038163039163040163041163042163043163044163045163046163047163048163049163050163051163052163053163054163055163056163057163058163059163060163061163062163063163064163065163066163067163068163069163070163071163072163073163074163075163076163077163078163079163080163081163082163083163084163085163086163087163088163089163090163091163092163093163094163095163096163097163098163099163100163101163102163103163104163105163106163107163108163109163110163111163112163113163114163115163116163117163118163119163120163121163122163123163124163125163126163127163128163129163130163131163132163133163134163135163136163137163138163139163140163141163142163143163144163145163146163147163148163149163150163151163152163153163154163155163156163157163158163159163160163161163162163163163164163165163166163167163168163169163170163171163172163173163174163175163176163177163178163179163180163181163182163183163184163185163186163187163188163189163190163191163192163193163194163195163196163197163198163199163200163201163202163203163204163205163206163207163208163209163210163211163212163213163214163215163216163217163218163219163220163221163222163223163224163225163226163227163228163229163230163231163232163233163234163235163236163237163238163239163240163241163242163243163244163245163246163247163248163249163250163251163252163253163254163255163256163257163258163259163260163261163262163263163264163265163266163267163268163269163270163271163272163273163274163275163276163277163278163279163280163281163282163283163284163285163286163287163288163289163290163291163292163293163294163295163296163297163298163299163300163301163302163303163304163305163306163307163308163309163310163311163312163313163314163315163316163317163318163319163320163321163322163323163324163325163326163327163328163329163330163331163332163333163334163335163336163337163338163339163340163341163342163343163344163345163346163347163348163349163350163351163352163353163354163355163356163357163358163359163360163361163362163363163364163365163366163367163368163369163370163371163372163373163374163375163376163377163378163379163380163381163382163383163384163385163386163387163388163389163390163391163392163393163394163395163396163397163398163399163400163401163402163403163404163405163406163407163408163409163410163411163412163413163414163415163416163417163418163419163420163421163422163423163424163425163426163427163428163429163430163431163432163433163434163435163436163437163438163439163440163441163442163443163444163445163446163447163448163449163450163451163452163453163454163455163456163457163458163459163460163461163462163463163464163465163466163467163468163469163470163471163472163473163474163475163476163477163478163479163480163481163482163483163484163485163486163487163488163489163490163491163492163493163494163495163496163497163498163499163500163501163502163503163504163505163506163507163508163509163510163511163512163513163514163515163516163517163518163519163520163521163522163523163524163525163526163527163528163529163530163531163532163533163534163535163536163537163538163539163540163541163542163543163544163545163546163547163548163549163550163551163552163553163554163555163556163557163558163559163560163561163562163563163564163565163566163567163568163569163570163571163572163573163574163575163576163577163578163579163580163581163582163583163584163585163586163587163588163589163590163591163592163593163594163595163596163597163598163599163600163601163602163603163604163605163606163607163608163609163610163611163612163613163614163615163616163617163618163619163620163621163622163623163624163625163626163627163628163629163630163631163632163633163634163635163636163637163638163639163640163641163642163643163644163645163646163647163648163649163650163651163652163653163654163655163656163657163658163659163660163661163662163663163664163665163666163667163668163669163670163671163672163673163674163675163676163677163678163679163680163681163682163683163684163685163686163687163688163689163690163691163692163693163694163695163696163697163698163699163700163701163702163703163704163705163706163707163708163709163710163711163712163713163714163715163716163717163718163719163720163721163722163723163724163725163726163727163728163729163730163731163732163733163734163735163736163737163738163739163740163741163742163743163744163745163746163747163748163749163750163751163752163753163754163755163756163757163758163759163760163761163762163763163764163765163766163767163768163769163770163771163772163773163774163775163776163777163778163779163780163781163782163783163784163785163786163787163788163789163790163791163792163793163794163795163796163797163798163799163800163801163802163803163804163805163806163807163808163809163810163811163812163813163814163815163816163817163818163819163820163821163822163823163824163825163826163827163828163829163830163831163832163833163834163835163836163837163838163839163840163841163842163843163844163845163846163847163848163849163850163851163852163853163854163855163856163857163858163859163860163861163862163863163864163865163866163867163868163869163870163871163872163873163874163875163876163877163878163879163880163881163882163883163884163885163886163887163888163889163890163891163892163893163894163895163896163897163898163899163900163901163902163903163904163905163906163907163908163909163910163911163912163913163914163915163916163917163918163919163920163921163922163923163924163925163926163927163928163929163930163931163932163933163934163935163936163937163938163939163940163941163942163943163944163945163946163947163948163949163950163951163952163953163954163955163956163957163958163959163960163961163962163963163964163965163966163967163968163969163970163971163972163973163974163975163976163977163978163979163980163981163982163983163984163985163986163987163988163989163990163991163992163993163994163995163996163997163998163999164000164001164002164003164004164005164006164007164008164009164010164011164012164013164014164015164016164017164018164019164020164021164022164023164024164025164026164027164028164029164030164031164032164033164034164035164036164037164038164039164040164041164042164043164044164045164046164047164048164049164050164051164052164053164054164055164056164057164058164059164060164061164062164063164064164065164066164067164068164069164070164071164072164073164074164075164076164077164078164079164080164081164082164083164084164085164086164087164088164089164090164091164092164093164094164095164096164097164098164099164100164101164102164103164104164105164106164107164108164109164110164111164112164113164114164115164116164117164118164119164120164121164122164123164124164125164126164127164128164129164130164131164132164133164134164135164136164137164138164139164140164141164142164143164144164145164146164147164148164149164150164151164152164153164154164155164156164157164158164159164160164161164162164163164164164165164166164167164168164169164170164171164172164173164174164175164176164177164178164179164180164181164182164183164184164185164186164187164188164189164190164191164192164193164194164195164196164197164198164199164200164201164202164203164204164205164206164207164208164209164210164211164212164213164214164215164216164217164218164219164220164221164222164223164224164225164226164227164228164229164230164231164232164233164234164235164236164237164238164239164240164241164242164243164244164245164246164247164248164249164250164251164252164253164254164255164256164257164258164259164260164261164262164263164264164265164266164267164268164269164270164271164272164273164274164275164276164277164278164279164280164281164282164283164284164285164286164287164288164289164290164291164292164293164294164295164296164297164298164299164300164301164302164303164304164305164306164307164308164309164310164311164312164313164314164315164316164317164318164319164320164321164322164323164324164325164326164327164328164329164330164331164332164333164334164335164336164337164338164339164340164341164342164343164344164345164346164347164348164349164350164351164352164353164354164355164356164357164358164359164360164361164362164363164364164365164366164367164368164369164370164371164372164373164374164375164376164377164378164379164380164381164382164383164384164385164386164387164388164389164390164391164392164393164394164395164396164397164398164399164400164401164402164403164404164405164406164407164408164409164410164411164412164413164414164415164416164417164418164419164420164421164422164423164424164425164426164427164428164429164430164431164432164433164434164435164436164437164438164439164440164441164442164443164444164445164446164447164448164449164450164451164452164453164454164455164456164457164458164459164460164461164462164463164464164465164466164467164468164469164470164471164472164473164474164475164476164477164478164479164480164481164482164483164484164485164486164487164488164489164490164491164492164493164494164495164496164497164498164499164500164501164502164503164504164505164506164507164508164509164510164511164512164513164514164515164516164517164518164519164520164521164522164523164524164525164526164527164528164529164530164531164532164533164534164535164536164537164538164539164540164541164542164543164544164545164546164547164548164549164550164551164552164553164554164555164556164557164558164559164560164561164562164563164564164565164566164567164568164569164570164571164572164573164574164575164576164577164578164579164580164581164582164583164584164585164586164587164588164589164590164591164592164593164594164595164596164597164598164599164600164601164602164603164604164605164606164607164608164609164610164611164612164613164614164615164616164617164618164619164620164621164622164623164624164625164626164627164628164629164630164631164632164633164634164635164636164637164638164639164640164641164642164643164644164645164646164647164648164649164650164651164652164653164654164655164656164657164658164659164660164661164662164663164664164665164666164667164668164669164670164671164672164673164674164675164676164677164678164679164680164681164682164683164684164685164686164687164688164689164690164691164692164693164694164695164696164697164698164699164700164701164702164703164704164705164706164707164708164709164710164711164712164713164714164715164716164717164718164719164720164721164722164723164724164725164726164727164728164729164730164731164732164733164734164735164736164737164738164739164740164741164742164743164744164745164746164747164748164749164750164751164752164753164754164755164756164757164758164759164760164761164762164763164764164765164766164767164768164769164770164771164772164773164774164775164776164777164778164779164780164781164782164783164784164785164786164787164788164789164790164791164792164793164794164795164796164797164798164799164800164801164802164803164804164805164806164807164808164809164810164811164812164813164814164815164816164817164818164819164820164821164822164823164824164825164826164827164828164829164830164831164832164833164834164835164836164837164838164839164840164841164842164843164844164845164846164847164848164849164850164851164852164853164854164855164856164857164858164859164860164861164862164863164864164865164866164867164868164869164870164871164872164873164874164875164876164877164878164879164880164881164882164883164884164885164886164887164888164889164890164891164892164893164894164895164896164897164898164899164900164901164902164903164904164905164906164907164908164909164910164911164912164913164914164915164916164917164918164919164920164921164922164923164924164925164926164927164928164929164930164931164932164933164934164935164936164937164938164939164940164941164942164943164944164945164946164947164948164949164950164951164952164953164954164955164956164957164958164959164960164961164962164963164964164965164966164967164968164969164970164971164972164973164974164975164976164977164978164979164980164981164982164983164984164985164986164987164988164989164990164991164992164993164994164995164996164997164998164999165000165001165002165003165004165005165006165007165008165009165010165011165012165013165014165015165016165017165018165019165020165021165022165023165024165025165026165027165028165029165030165031165032165033165034165035165036165037165038165039165040165041165042165043165044165045165046165047165048165049165050165051165052165053165054165055165056165057165058165059165060165061165062165063165064165065165066165067165068165069165070165071165072165073165074165075165076165077165078165079165080165081165082165083165084165085165086165087165088165089165090165091165092165093165094165095165096165097165098165099165100165101165102165103165104165105165106165107165108165109165110165111165112165113165114165115165116165117165118165119165120165121165122165123165124165125165126165127165128165129165130165131165132165133165134165135165136165137165138165139165140165141165142165143165144165145165146165147165148165149165150165151165152165153165154165155165156165157165158165159165160165161165162165163165164165165165166165167165168165169165170165171165172165173165174165175165176165177165178165179165180165181165182165183165184165185165186165187165188165189165190165191165192165193165194165195165196165197165198165199165200165201165202165203165204165205165206165207165208165209165210165211165212165213165214165215165216165217165218165219165220165221165222165223165224165225165226165227165228165229165230165231165232165233165234165235165236165237165238165239165240165241165242165243165244165245165246165247165248165249165250165251165252165253165254165255165256165257165258165259165260165261165262165263165264165265165266165267165268165269165270165271165272165273165274165275165276165277165278165279165280165281165282165283165284165285165286165287165288165289165290165291165292165293165294165295165296165297165298165299165300165301165302165303165304165305165306165307165308165309165310165311165312165313165314165315165316165317165318165319165320165321165322165323165324165325165326165327165328165329165330165331165332165333165334165335165336165337165338165339165340165341165342165343165344165345165346165347165348165349165350165351165352165353165354165355165356165357165358165359165360165361165362165363165364165365165366165367165368165369165370165371165372165373165374165375165376165377165378165379165380165381165382165383165384165385165386165387165388165389165390165391165392165393165394165395165396165397165398165399165400165401165402165403165404165405165406165407165408165409165410165411165412165413165414165415165416165417165418165419165420165421165422165423165424165425165426165427165428165429165430165431165432165433165434165435165436165437165438165439165440165441165442165443165444165445165446165447165448165449165450165451165452165453165454165455165456165457165458165459165460165461165462165463165464165465165466165467165468165469165470165471165472165473165474165475165476165477165478165479165480165481165482165483165484165485165486165487165488165489165490165491165492165493165494165495165496165497165498165499165500165501165502165503165504165505165506165507165508165509165510165511165512165513165514165515165516165517165518165519165520165521165522165523165524165525165526165527165528165529165530165531165532165533165534165535165536165537165538165539165540165541165542165543165544165545165546165547165548165549165550165551165552165553165554165555165556165557165558165559165560165561165562165563165564165565165566165567165568165569165570165571165572165573165574165575165576165577165578165579165580165581165582165583165584165585165586165587165588165589165590165591165592165593165594165595165596165597165598165599165600165601165602165603165604165605165606165607165608165609165610165611165612165613165614165615165616165617165618165619165620165621165622165623165624165625165626165627165628165629165630165631165632165633165634165635165636165637165638165639165640165641165642165643165644165645165646165647165648165649165650165651165652165653165654165655165656165657165658165659165660165661165662165663165664165665165666165667165668165669165670165671165672165673165674165675165676165677165678165679165680165681165682165683165684165685165686165687165688165689165690165691165692165693165694165695165696165697165698165699165700165701165702165703165704165705165706165707165708165709165710165711165712165713165714165715165716165717165718165719165720165721165722165723165724165725165726165727165728165729165730165731165732165733165734165735165736165737165738165739165740165741165742165743165744165745165746165747165748165749165750165751165752165753165754165755165756165757165758165759165760165761165762165763165764165765165766165767165768165769165770165771165772165773165774165775165776165777165778165779165780165781165782165783165784165785165786165787165788165789165790165791165792165793165794165795165796165797165798165799165800165801165802165803165804165805165806165807165808165809165810165811165812165813165814165815165816165817165818165819165820165821165822165823165824165825165826165827165828165829165830165831165832165833165834165835165836165837165838165839165840165841165842165843165844165845165846165847165848165849165850165851165852165853165854165855165856165857165858165859165860165861165862165863165864165865165866165867165868165869165870165871165872165873165874165875165876165877165878165879165880165881165882165883165884165885165886165887165888165889165890165891165892165893165894165895165896165897165898165899165900165901165902165903165904165905165906165907165908165909165910165911165912165913165914165915165916165917165918165919165920165921165922165923165924165925165926165927165928165929165930165931165932165933165934165935165936165937165938165939165940165941165942165943165944165945165946165947165948165949165950165951165952165953165954165955165956165957165958165959165960165961165962165963165964165965165966165967165968165969165970165971165972165973165974165975165976165977165978165979165980165981165982165983165984165985165986165987165988165989165990165991165992165993165994165995165996165997165998165999166000166001166002166003166004166005166006166007166008166009166010166011166012166013166014166015166016166017166018166019166020166021166022166023166024166025166026166027166028166029166030166031166032166033166034166035166036166037166038166039166040166041166042166043166044166045166046166047166048166049166050166051166052166053166054166055166056166057166058166059166060166061166062166063166064166065166066166067166068166069166070166071166072166073166074166075166076166077166078166079166080166081166082166083166084166085166086166087166088166089166090166091166092166093166094166095166096166097166098166099166100166101166102166103166104166105166106166107166108166109166110166111166112166113166114166115166116166117166118166119166120166121166122166123166124166125166126166127166128166129166130166131166132166133166134166135166136166137166138166139166140166141166142166143166144166145166146166147166148166149166150166151166152166153166154166155166156166157166158166159166160166161166162166163166164166165166166166167166168166169166170166171166172166173166174166175166176166177166178166179166180166181166182166183166184166185166186166187166188166189166190166191166192166193166194166195166196166197166198166199166200166201166202166203166204166205166206166207166208166209166210166211166212166213166214166215166216166217166218166219166220166221166222166223166224166225166226166227166228166229166230166231166232166233166234166235166236166237166238166239166240166241166242166243166244166245166246166247166248166249166250166251166252166253166254166255166256166257166258166259166260166261166262166263166264166265166266166267166268166269166270166271166272166273166274166275166276166277166278166279166280166281166282166283166284166285166286166287166288166289166290166291166292166293166294166295166296166297166298166299166300166301166302166303166304166305166306166307166308166309166310166311166312166313166314166315166316166317166318166319166320166321166322166323166324166325166326166327166328166329166330166331166332166333166334166335166336166337166338166339166340166341166342166343166344166345166346166347166348166349166350166351166352166353166354166355166356166357166358166359166360166361166362166363166364166365166366166367166368166369166370166371166372166373166374166375166376166377166378166379166380166381166382166383166384166385166386166387166388166389166390166391166392166393166394166395166396166397166398166399166400166401166402166403166404166405166406166407166408166409166410166411166412166413166414166415166416166417166418166419166420166421166422166423166424166425166426166427166428166429166430166431166432166433166434166435166436166437166438166439166440166441166442166443166444166445166446166447166448166449166450166451166452166453166454166455166456166457166458166459166460166461166462166463166464166465166466166467166468166469166470166471166472166473166474166475166476166477166478166479166480166481166482166483166484166485166486166487166488166489166490166491166492166493166494166495166496166497166498166499166500166501166502166503166504166505166506166507166508166509166510166511166512166513166514166515166516166517166518166519166520166521166522166523166524166525166526166527166528166529166530166531166532166533166534166535166536166537166538166539166540166541166542166543166544166545166546166547166548166549166550166551166552166553166554166555166556166557166558166559166560166561166562166563166564166565166566166567166568166569166570166571166572166573166574166575166576166577166578166579166580166581166582166583166584166585166586166587166588166589166590166591166592166593166594166595166596166597166598166599166600166601166602166603166604166605166606166607166608166609166610166611166612166613166614166615166616166617166618166619166620166621166622166623166624166625166626166627166628166629166630166631166632166633166634166635166636166637166638166639166640166641166642166643166644166645166646166647166648166649166650166651166652166653166654166655166656166657166658166659166660166661166662166663166664166665166666166667166668166669166670166671166672166673166674166675166676166677166678166679166680166681166682166683166684166685166686166687166688166689166690166691166692166693166694166695166696166697166698166699166700166701166702166703166704166705166706166707166708166709166710166711166712166713166714166715166716166717166718166719166720166721166722166723166724166725166726166727166728166729166730166731166732166733166734166735166736166737166738166739166740166741166742166743166744166745166746166747166748166749166750166751166752166753166754166755166756166757166758166759166760166761166762166763166764166765166766166767166768166769166770166771166772166773166774166775166776166777166778166779166780166781166782166783166784166785166786166787166788166789166790166791166792166793166794166795166796166797166798166799166800166801166802166803166804166805166806166807166808166809166810166811166812166813166814166815166816166817166818166819166820166821166822166823166824166825166826166827166828166829166830166831166832166833166834166835166836166837166838166839166840166841166842166843166844166845166846166847166848166849166850166851166852166853166854166855166856166857166858166859166860166861166862166863166864166865166866166867166868166869166870166871166872166873166874166875166876166877166878166879166880166881166882166883166884166885166886166887166888166889166890166891166892166893166894166895166896166897166898166899166900166901166902166903166904166905166906166907166908166909166910166911166912166913166914166915166916166917166918166919166920166921166922166923166924166925166926166927166928166929166930166931166932166933166934166935166936166937166938166939166940166941166942166943166944166945166946166947166948166949166950166951166952166953166954166955166956166957166958166959166960166961166962166963166964166965166966166967166968166969166970166971166972166973166974166975166976166977166978166979166980166981166982166983166984166985166986166987166988166989166990166991166992166993166994166995166996166997166998166999167000167001167002167003167004167005167006167007167008167009167010167011167012167013167014167015167016167017167018167019167020167021167022167023167024167025167026167027167028167029167030167031167032167033167034167035167036167037167038167039167040167041167042167043167044167045167046167047167048167049167050167051167052167053167054167055167056167057167058167059167060167061167062167063167064167065167066167067167068167069167070167071167072167073167074167075167076167077167078167079167080167081167082167083167084167085167086167087167088167089167090167091167092167093167094167095167096167097167098167099167100167101167102167103167104167105167106167107167108167109167110167111167112167113167114167115167116167117167118167119167120167121167122167123167124167125167126167127167128167129167130167131167132167133167134167135167136167137167138167139167140167141167142167143167144167145167146167147167148167149167150167151167152167153167154167155167156167157167158167159167160167161167162167163167164167165167166167167167168167169167170167171167172167173167174167175167176167177167178167179167180167181167182167183167184167185167186167187167188167189167190167191167192167193167194167195167196167197167198167199167200167201167202167203167204167205167206167207167208167209167210167211167212167213167214167215167216167217167218167219167220167221167222167223167224167225167226167227167228167229167230167231167232167233167234167235167236167237167238167239167240167241167242167243167244167245167246167247167248167249167250167251167252167253167254167255167256167257167258167259167260167261167262167263167264167265167266167267167268167269167270167271167272167273167274167275167276167277167278167279167280167281167282167283167284167285167286167287167288167289167290167291167292167293167294167295167296167297167298167299167300167301167302167303167304167305167306167307167308167309167310167311167312167313167314167315167316167317167318167319167320167321167322167323167324167325167326167327167328167329167330167331167332167333167334167335167336167337167338167339167340167341167342167343167344167345167346167347167348167349167350167351167352167353167354167355167356167357167358167359167360167361167362167363167364167365167366167367167368167369167370167371167372167373167374167375167376167377167378167379167380167381167382167383167384167385167386167387167388167389167390167391167392167393167394167395167396167397167398167399167400167401167402167403167404167405167406167407167408167409167410167411167412167413167414167415167416167417167418167419167420167421167422167423167424167425167426167427167428167429167430167431167432167433167434167435167436167437167438167439167440167441167442167443167444167445167446167447167448167449167450167451167452167453167454167455167456167457167458167459167460167461167462167463167464167465167466167467167468167469167470167471167472167473167474167475167476167477167478167479167480167481167482167483167484167485167486167487167488167489167490167491167492167493167494167495167496167497167498167499167500167501167502167503167504167505167506167507167508167509167510167511167512167513167514167515167516167517167518167519167520167521167522167523167524167525167526167527167528167529167530167531167532167533167534167535167536167537167538167539167540167541167542167543167544167545167546167547167548167549167550167551167552167553167554167555167556167557167558167559167560167561167562167563167564167565167566167567167568167569167570167571167572167573167574167575167576167577167578167579167580167581167582167583167584167585167586167587167588167589167590167591167592167593167594167595167596167597167598167599167600167601167602167603167604167605167606167607167608167609167610167611167612167613167614167615167616167617167618167619167620167621167622167623167624167625167626167627167628167629167630167631167632167633167634167635167636167637167638167639167640167641167642167643167644167645167646167647167648167649167650167651167652167653167654167655167656167657167658167659167660167661167662167663167664167665167666167667167668167669167670167671167672167673167674167675167676167677167678167679167680167681167682167683167684167685167686167687167688167689167690167691167692167693167694167695167696167697167698167699167700167701167702167703167704167705167706167707167708167709167710167711167712167713167714167715167716167717167718167719167720167721167722167723167724167725167726167727167728167729167730167731167732167733167734167735167736167737167738167739167740167741167742167743167744167745167746167747167748167749167750167751167752167753167754167755167756167757167758167759167760167761167762167763167764167765167766167767167768167769167770167771167772167773167774167775167776167777167778167779167780167781167782167783167784167785167786167787167788167789167790167791167792167793167794167795167796167797167798167799167800167801167802167803167804167805167806167807167808167809167810167811167812167813167814167815167816167817167818167819167820167821167822167823167824167825167826167827167828167829167830167831167832167833167834167835167836167837167838167839167840167841167842167843167844167845167846167847167848167849167850167851167852167853167854167855167856167857167858167859167860167861167862167863167864167865167866167867167868167869167870167871167872167873167874167875167876167877167878167879167880167881167882167883167884167885167886167887167888167889167890167891167892167893167894167895167896167897167898167899167900167901167902167903167904167905167906167907167908167909167910167911167912167913167914167915167916167917167918167919167920167921167922167923167924167925167926167927167928167929167930167931167932167933167934167935167936167937167938167939167940167941167942167943167944167945167946167947167948167949167950167951167952167953167954167955167956167957167958167959167960167961167962167963167964167965167966167967167968167969167970167971167972167973167974167975167976167977167978167979167980167981167982167983167984167985167986167987167988167989167990167991167992167993167994167995167996167997167998167999168000168001168002168003168004168005168006168007168008168009168010168011168012168013168014168015168016168017168018168019168020168021168022168023168024168025168026168027168028168029168030168031168032168033168034168035168036168037168038168039168040168041168042168043168044168045168046168047168048168049168050168051168052168053168054168055168056168057168058168059168060168061168062168063168064168065168066168067168068168069168070168071168072168073168074168075168076168077168078168079168080168081168082168083168084168085168086168087168088168089168090168091168092168093168094168095168096168097168098168099168100168101168102168103168104168105168106168107168108168109168110168111168112168113168114168115168116168117168118168119168120168121168122168123168124168125168126168127168128168129168130168131168132168133168134168135168136168137168138168139168140168141168142168143168144168145168146168147168148168149168150168151168152168153168154168155168156168157168158168159168160168161168162168163168164168165168166168167168168168169168170168171168172168173168174168175168176168177168178168179168180168181168182168183168184168185168186168187168188168189168190168191168192168193168194168195168196168197168198168199168200168201168202168203168204168205168206168207168208168209168210168211168212168213168214168215168216168217168218168219168220168221168222168223168224168225168226168227168228168229168230168231168232168233168234168235168236168237168238168239168240168241168242168243168244168245168246168247168248168249168250168251168252168253168254168255168256168257168258168259168260168261168262168263168264168265168266168267168268168269168270168271168272168273168274168275168276168277168278168279168280168281168282168283168284168285168286168287168288168289168290168291168292168293168294168295168296168297168298168299168300168301168302168303168304168305168306168307168308168309168310168311168312168313168314168315168316168317168318168319168320168321168322168323168324168325168326168327168328168329168330168331168332168333168334168335168336168337168338168339168340168341168342168343168344168345168346168347168348168349168350168351168352168353168354168355168356168357168358168359168360168361168362168363168364168365168366168367168368168369168370168371168372168373168374168375168376168377168378168379168380168381168382168383168384168385168386168387168388168389168390168391168392168393168394168395168396168397168398168399168400168401168402168403168404168405168406168407168408168409168410168411168412168413168414168415168416168417168418168419168420168421168422168423168424168425168426168427168428168429168430168431168432168433168434168435168436168437168438168439168440168441168442168443168444168445168446168447168448168449168450168451168452168453168454168455168456168457168458168459168460168461168462168463168464168465168466168467168468168469168470168471168472168473168474168475168476168477168478168479168480168481168482168483168484168485168486168487168488168489168490168491168492168493168494168495168496168497168498168499168500168501168502168503168504168505168506168507168508168509168510168511168512168513168514168515168516168517168518168519168520168521168522168523168524168525168526168527168528168529168530168531168532168533168534168535168536168537168538168539168540168541168542168543168544168545168546168547168548168549168550168551168552168553168554168555168556168557168558168559168560168561168562168563168564168565168566168567168568168569168570168571168572168573168574168575168576168577168578168579168580168581168582168583168584168585168586168587168588168589168590168591168592168593168594168595168596168597168598168599168600168601168602168603168604168605168606168607168608168609168610168611168612168613168614168615168616168617168618168619168620168621168622168623168624168625168626168627168628168629168630168631168632168633168634168635168636168637168638168639168640168641168642168643168644168645168646168647168648168649168650168651168652168653168654168655168656168657168658168659168660168661168662168663168664168665168666168667168668168669168670168671168672168673168674168675168676168677168678168679168680168681168682168683168684168685168686168687168688168689168690168691168692168693168694168695168696168697168698168699168700168701168702168703168704168705168706168707168708168709168710168711168712168713168714168715168716168717168718168719168720168721168722168723168724168725168726168727168728168729168730168731168732168733168734168735168736168737168738168739168740168741168742168743168744168745168746168747168748168749168750168751168752168753168754168755168756168757168758168759168760168761168762168763168764168765168766168767168768168769168770168771168772168773168774168775168776168777168778168779168780168781168782168783168784168785168786168787168788168789168790168791168792168793168794168795168796168797168798168799168800168801168802168803168804168805168806168807168808168809168810168811168812168813168814168815168816168817168818168819168820168821168822168823168824168825168826168827168828168829168830168831168832168833168834168835168836168837168838168839168840168841168842168843168844168845168846168847168848168849168850168851168852168853168854168855168856168857168858168859168860168861168862168863168864168865168866168867168868168869168870168871168872168873168874168875168876168877168878168879168880168881168882168883168884168885168886168887168888168889168890168891168892168893168894168895168896168897168898168899168900168901168902168903168904168905168906168907168908168909168910168911168912168913168914168915168916168917168918168919168920168921168922168923168924168925168926168927168928168929168930168931168932168933168934168935168936168937168938168939168940168941168942168943168944168945168946168947168948168949168950168951168952168953168954168955168956168957168958168959168960168961168962168963168964168965168966168967168968168969168970168971168972168973168974168975168976168977168978168979168980168981168982168983168984168985168986168987168988168989168990168991168992168993168994168995168996168997168998168999169000169001169002169003169004169005169006169007169008169009169010169011169012169013169014169015169016169017169018169019169020169021169022169023169024169025169026169027169028169029169030169031169032169033169034169035169036169037169038169039169040169041169042169043169044169045169046169047169048169049169050169051169052169053169054169055169056169057169058169059169060169061169062169063169064169065169066169067169068169069169070169071169072169073169074169075169076169077169078169079169080169081169082169083169084169085169086169087169088169089169090169091169092169093169094169095169096169097169098169099169100169101169102169103169104169105169106169107169108169109169110169111169112169113169114169115169116169117169118169119169120169121169122169123169124169125169126169127169128169129169130169131169132169133169134169135169136169137169138169139169140169141169142169143169144169145169146169147169148169149169150169151169152169153169154169155169156169157169158169159169160169161169162169163169164169165169166169167169168169169169170169171169172169173169174169175169176169177169178169179169180169181169182169183169184169185169186169187169188169189169190169191169192169193169194169195169196169197169198169199169200169201169202169203169204169205169206169207169208169209169210169211169212169213169214169215169216169217169218169219169220169221169222169223169224169225169226169227169228169229169230169231169232169233169234169235169236169237169238169239169240169241169242169243169244169245169246169247169248169249169250169251169252169253169254169255169256169257169258169259169260169261169262169263169264169265169266169267169268169269169270169271169272169273169274169275169276169277169278169279169280169281169282169283169284169285169286169287169288169289169290169291169292169293169294169295169296169297169298169299169300169301169302169303169304169305169306169307169308169309169310169311169312169313169314169315169316169317169318169319169320169321169322169323169324169325169326169327169328169329169330169331169332169333169334169335169336169337169338169339169340169341169342169343169344169345169346169347169348169349169350169351169352169353169354169355169356169357169358169359169360169361169362169363169364169365169366169367169368169369169370169371169372169373169374169375169376169377169378169379169380169381169382169383169384169385169386169387169388169389169390169391169392169393169394169395169396169397169398169399169400169401169402169403169404169405169406169407169408169409169410169411169412169413169414169415169416169417169418169419169420169421169422169423169424169425169426169427169428169429169430169431169432169433169434169435169436169437169438169439169440169441169442169443169444169445169446169447169448169449169450169451169452169453169454169455169456169457169458169459169460169461169462169463169464169465169466169467169468169469169470169471169472169473169474169475169476169477169478169479169480169481169482169483169484169485169486169487169488169489169490169491169492169493169494169495169496169497169498169499169500169501169502169503169504169505169506169507169508169509169510169511169512169513169514169515169516169517169518169519169520169521169522169523169524169525169526169527169528169529169530169531169532169533169534169535169536169537169538169539169540169541169542169543169544169545169546169547169548169549169550169551169552169553169554169555169556169557169558169559169560169561169562169563169564169565169566169567169568169569169570169571169572169573169574169575169576169577169578169579169580169581169582169583169584169585169586169587169588169589169590169591169592169593169594169595169596169597169598169599169600169601169602169603169604169605169606169607169608169609169610169611169612169613169614169615169616169617169618169619169620169621169622169623169624169625169626169627169628169629169630169631169632169633169634169635169636169637169638169639169640169641169642169643169644169645169646169647169648169649169650169651169652169653169654169655169656169657169658169659169660169661169662169663169664169665169666169667169668169669169670169671169672169673169674169675169676169677169678169679169680169681169682169683169684169685169686169687169688169689169690169691169692169693169694169695169696169697169698169699169700169701169702169703169704169705169706169707169708169709169710169711169712169713169714169715169716169717169718169719169720169721169722169723169724169725169726169727169728169729169730169731169732169733169734169735169736169737169738169739169740169741169742169743169744169745169746169747169748169749169750169751169752169753169754169755169756169757169758169759169760169761169762169763169764169765169766169767169768169769169770169771169772169773169774169775169776169777169778169779169780169781169782169783169784169785169786169787169788169789169790169791169792169793169794169795169796169797169798169799169800169801169802169803169804169805169806169807169808169809169810169811169812169813169814169815169816169817169818169819169820169821169822169823169824169825169826169827169828169829169830169831169832169833169834169835169836169837169838169839169840169841169842169843169844169845169846169847169848169849169850169851169852169853169854169855169856169857169858169859169860169861169862169863169864169865169866169867169868169869169870169871169872169873169874169875169876169877169878169879169880169881169882169883169884169885169886169887169888169889169890169891169892169893169894169895169896169897169898169899169900169901169902169903169904169905169906169907169908169909169910169911169912169913169914169915169916169917169918169919169920169921169922169923169924169925169926169927169928169929169930169931169932169933169934169935169936169937169938169939169940169941169942169943169944169945169946169947169948169949169950169951169952169953169954169955169956169957169958169959169960169961169962169963169964169965169966169967169968169969169970169971169972169973169974169975169976169977169978169979169980169981169982169983169984169985169986169987169988169989169990169991169992169993169994169995169996169997169998169999170000170001170002170003170004170005170006170007170008170009170010170011170012170013170014170015170016170017170018170019170020170021170022170023170024170025170026170027170028170029170030170031170032170033170034170035170036170037170038170039170040170041170042170043170044170045170046170047170048170049170050170051170052170053170054170055170056170057170058170059170060170061170062170063170064170065170066170067170068170069170070170071170072170073170074170075170076170077170078170079170080170081170082170083170084170085170086170087170088170089170090170091170092170093170094170095170096170097170098170099170100170101170102170103170104170105170106170107170108170109170110170111170112170113170114170115170116170117170118170119170120170121170122170123170124170125170126170127170128170129170130170131170132170133170134170135170136170137170138170139170140170141170142170143170144170145170146170147170148170149170150170151170152170153170154170155170156170157170158170159170160170161170162170163170164170165170166170167170168170169170170170171170172170173170174170175170176170177170178170179170180170181170182170183170184170185170186170187170188170189170190170191170192170193170194170195170196170197170198170199170200170201170202170203170204170205170206170207170208170209170210170211170212170213170214170215170216170217170218170219170220170221170222170223170224170225170226170227170228170229170230170231170232170233170234170235170236170237170238170239170240170241170242170243170244170245170246170247170248170249170250170251170252170253170254170255170256170257170258170259170260170261170262170263170264170265170266170267170268170269170270170271170272170273170274170275170276170277170278170279170280170281170282170283170284170285170286170287170288170289170290170291170292170293170294170295170296170297170298170299170300170301170302170303170304170305170306170307170308170309170310170311170312170313170314170315170316170317170318170319170320170321170322170323170324170325170326170327170328170329170330170331170332170333170334170335170336170337170338170339170340170341170342170343170344170345170346170347170348170349170350170351170352170353170354170355170356170357170358170359170360170361170362170363170364170365170366170367170368170369170370170371170372170373170374170375170376170377170378170379170380170381170382170383170384170385170386170387170388170389170390170391170392170393170394170395170396170397170398170399170400170401170402170403170404170405170406170407170408170409170410170411170412170413170414170415170416170417170418170419170420170421170422170423170424170425170426170427170428170429170430170431170432170433170434170435170436170437170438170439170440170441170442170443170444170445170446170447170448170449170450170451170452170453170454170455170456170457170458170459170460170461170462170463170464170465170466170467170468170469170470170471170472170473170474170475170476170477170478170479170480170481170482170483170484170485170486170487170488170489170490170491170492170493170494170495170496170497170498170499170500170501170502170503170504170505170506170507170508170509170510170511170512170513170514170515170516170517170518170519170520170521170522170523170524170525170526170527170528170529170530170531170532170533170534170535170536170537170538170539170540170541170542170543170544170545170546170547170548170549170550170551170552170553170554170555170556170557170558170559170560170561170562170563170564170565170566170567170568170569170570170571170572170573170574170575170576170577170578170579170580170581170582170583170584170585170586170587170588170589170590170591170592170593170594170595170596170597170598170599170600170601170602170603170604170605170606170607170608170609170610170611170612170613170614170615170616170617170618170619170620170621170622170623170624170625170626170627170628170629170630170631170632170633170634170635170636170637170638170639170640170641170642170643170644170645170646170647170648170649170650170651170652170653170654170655170656170657170658170659170660170661170662170663170664170665170666170667170668170669170670170671170672170673170674170675170676170677170678170679170680170681170682170683170684170685170686170687170688170689170690170691170692170693170694170695170696170697170698170699170700170701170702170703170704170705170706170707170708170709170710170711170712170713170714170715170716170717170718170719170720170721170722170723170724170725170726170727170728170729170730170731170732170733170734170735170736170737170738170739170740170741170742170743170744170745170746170747170748170749170750170751170752170753170754170755170756170757170758170759170760170761170762170763170764170765170766170767170768170769170770170771170772170773170774170775170776170777170778170779170780170781170782170783170784170785170786170787170788170789170790170791170792170793170794170795170796170797170798170799170800170801170802170803170804170805170806170807170808170809170810170811170812170813170814170815170816170817170818170819170820170821170822170823170824170825170826170827170828170829170830170831170832170833170834170835170836170837170838170839170840170841170842170843170844170845170846170847170848170849170850170851170852170853170854170855170856170857170858170859170860170861170862170863170864170865170866170867170868170869170870170871170872170873170874170875170876170877170878170879170880170881170882170883170884170885170886170887170888170889170890170891170892170893170894170895170896170897170898170899170900170901170902170903170904170905170906170907170908170909170910170911170912170913170914170915170916170917170918170919170920170921170922170923170924170925170926170927170928170929170930170931170932170933170934170935170936170937170938170939170940170941170942170943170944170945170946170947170948170949170950170951170952170953170954170955170956170957170958170959170960170961170962170963170964170965170966170967170968170969170970170971170972170973170974170975170976170977170978170979170980170981170982170983170984170985170986170987170988170989170990170991170992170993170994170995170996170997170998170999171000171001171002171003171004171005171006171007171008171009171010171011171012171013171014171015171016171017171018171019171020171021171022171023171024171025171026171027171028171029171030171031171032171033171034171035171036171037171038171039171040171041171042171043171044171045171046171047171048171049171050171051171052171053171054171055171056171057171058171059171060171061171062171063171064171065171066171067171068171069171070171071171072171073171074171075171076171077171078171079171080171081171082171083171084171085171086171087171088171089171090171091171092171093171094171095171096171097171098171099171100171101171102171103171104171105171106171107171108171109171110171111171112171113171114171115171116171117171118171119171120171121171122171123171124171125171126171127171128171129171130171131171132171133171134171135171136171137171138171139171140171141171142171143171144171145171146171147171148171149171150171151171152171153171154171155171156171157171158171159171160171161171162171163171164171165171166171167171168171169171170171171171172171173171174171175171176171177171178171179171180171181171182171183171184171185171186171187171188171189171190171191171192171193171194171195171196171197171198171199171200171201171202171203171204171205171206171207171208171209171210171211171212171213171214171215171216171217171218171219171220171221171222171223171224171225171226171227171228171229171230171231171232171233171234171235171236171237171238171239171240171241171242171243171244171245171246171247171248171249171250171251171252171253171254171255171256171257171258171259171260171261171262171263171264171265171266171267171268171269171270171271171272171273171274171275171276171277171278171279171280171281171282171283171284171285171286171287171288171289171290171291171292171293171294171295171296171297171298171299171300171301171302171303171304171305171306171307171308171309171310171311171312171313171314171315171316171317171318171319171320171321171322171323171324171325171326171327171328171329171330171331171332171333171334171335171336171337171338171339171340171341171342171343171344171345171346171347171348171349171350171351171352171353171354171355171356171357171358171359171360171361171362171363171364171365171366171367171368171369171370171371171372171373171374171375171376171377171378171379171380171381171382171383171384171385171386171387171388171389171390171391171392171393171394171395171396171397171398171399171400171401171402171403171404171405171406171407171408171409171410171411171412171413171414171415171416171417171418171419171420171421171422171423171424171425171426171427171428171429171430171431171432171433171434171435171436171437171438171439171440171441171442171443171444171445171446171447171448171449171450171451171452171453171454171455171456171457171458171459171460171461171462171463171464171465171466171467171468171469171470171471171472171473171474171475171476171477171478171479171480171481171482171483171484171485171486171487171488171489171490171491171492171493171494171495171496171497171498171499171500171501171502171503171504171505171506171507171508171509171510171511171512171513171514171515171516171517171518171519171520171521171522171523171524171525171526171527171528171529171530171531171532171533171534171535171536171537171538171539171540171541171542171543171544171545171546171547171548171549171550171551171552171553171554171555171556171557171558171559171560171561171562171563171564171565171566171567171568171569171570171571171572171573171574171575171576171577171578171579171580171581171582171583171584171585171586171587171588171589171590171591171592171593171594171595171596171597171598171599171600171601171602171603171604171605171606171607171608171609171610171611171612171613171614171615171616171617171618171619171620171621171622171623171624171625171626171627171628171629171630171631171632171633171634171635171636171637171638171639171640171641171642171643171644171645171646171647171648171649171650171651171652171653171654171655171656171657171658171659171660171661171662171663171664171665171666171667171668171669171670171671171672171673171674171675171676171677171678171679171680171681171682171683171684171685171686171687171688171689171690171691171692171693171694171695171696171697171698171699171700171701171702171703171704171705171706171707171708171709171710171711171712171713171714171715171716171717171718171719171720171721171722171723171724171725171726171727171728171729171730171731171732171733171734171735171736171737171738171739171740171741171742171743171744171745171746171747171748171749171750171751171752171753171754171755171756171757171758171759171760171761171762171763171764171765171766171767171768171769171770171771171772171773171774171775171776171777171778171779171780171781171782171783171784171785171786171787171788171789171790171791171792171793171794171795171796171797171798171799171800171801171802171803171804171805171806171807171808171809171810171811171812171813171814171815171816171817171818171819171820171821171822171823171824171825171826171827171828171829171830171831171832171833171834171835171836171837171838171839171840171841171842171843171844171845171846171847171848171849171850171851171852171853171854171855171856171857171858171859171860171861171862171863171864171865171866171867171868171869171870171871171872171873171874171875171876171877171878171879171880171881171882171883171884171885171886171887171888171889171890171891171892171893171894171895171896171897171898171899171900171901171902171903171904171905171906171907171908171909171910171911171912171913171914171915171916171917171918171919171920171921171922171923171924171925171926171927171928171929171930171931171932171933171934171935171936171937171938171939171940171941171942171943171944171945171946171947171948171949171950171951171952171953171954171955171956171957171958171959171960171961171962171963171964171965171966171967171968171969171970171971171972171973171974171975171976171977171978171979171980171981171982171983171984171985171986171987171988171989171990171991171992171993171994171995171996171997171998171999172000172001172002172003172004172005172006172007172008172009172010172011172012172013172014172015172016172017172018172019172020172021172022172023172024172025172026172027172028172029172030172031172032172033172034172035172036172037172038172039172040172041172042172043172044172045172046172047172048172049172050172051172052172053172054172055172056172057172058172059172060172061172062172063172064172065172066172067172068172069172070172071172072172073172074172075172076172077172078172079172080172081172082172083172084172085172086172087172088172089172090172091172092172093172094172095172096172097172098172099172100172101172102172103172104172105172106172107172108172109172110172111172112172113172114172115172116172117172118172119172120172121172122172123172124172125172126172127172128172129172130172131172132172133172134172135172136172137172138172139172140172141172142172143172144172145172146172147172148172149172150172151172152172153172154172155172156172157172158172159172160172161172162172163172164172165172166172167172168172169172170172171172172172173172174172175172176172177172178172179172180172181172182172183172184172185172186172187172188172189172190172191172192172193172194172195172196172197172198172199172200172201172202172203172204172205172206172207172208172209172210172211172212172213172214172215172216172217172218172219172220172221172222172223172224172225172226172227172228172229172230172231172232172233172234172235172236172237172238172239172240172241172242172243172244172245172246172247172248172249172250172251172252172253172254172255172256172257172258172259172260172261172262172263172264172265172266172267172268172269172270172271172272172273172274172275172276172277172278172279172280172281172282172283172284172285172286172287172288172289172290172291172292172293172294172295172296172297172298172299172300172301172302172303172304172305172306172307172308172309172310172311172312172313172314172315172316172317172318172319172320172321172322172323172324172325172326172327172328172329172330172331172332172333172334172335172336172337172338172339172340172341172342172343172344172345172346172347172348172349172350172351172352172353172354172355172356172357172358172359172360172361172362172363172364172365172366172367172368172369172370172371172372172373172374172375172376172377172378172379172380172381172382172383172384172385172386172387172388172389172390172391172392172393172394172395172396172397172398172399172400172401172402172403172404172405172406172407172408172409172410172411172412172413172414172415172416172417172418172419172420172421172422172423172424172425172426172427172428172429172430172431172432172433172434172435172436172437172438172439172440172441172442172443172444172445172446172447172448172449172450172451172452172453172454172455172456172457172458172459172460172461172462172463172464172465172466172467172468172469172470172471172472172473172474172475172476172477172478172479172480172481172482172483172484172485172486172487172488172489172490172491172492172493172494172495172496172497172498172499172500172501172502172503172504172505172506172507172508172509172510172511172512172513172514172515172516172517172518172519172520172521172522172523172524172525172526172527172528172529172530172531172532172533172534172535172536172537172538172539172540172541172542172543172544172545172546172547172548172549172550172551172552172553172554172555172556172557172558172559172560172561172562172563172564172565172566172567172568172569172570172571172572172573172574172575172576172577172578172579172580172581172582172583172584172585172586172587172588172589172590172591172592172593172594172595172596172597172598172599172600172601172602172603172604172605172606172607172608172609172610172611172612172613172614172615172616172617172618172619172620172621172622172623172624172625172626172627172628172629172630172631172632172633172634172635172636172637172638172639172640172641172642172643172644172645172646172647172648172649172650172651172652172653172654172655172656172657172658172659172660172661172662172663172664172665172666172667172668172669172670172671172672172673172674172675172676172677172678172679172680172681172682172683172684172685172686172687172688172689172690172691172692172693172694172695172696172697172698172699172700172701172702172703172704172705172706172707172708172709172710172711172712172713172714172715172716172717172718172719172720172721172722172723172724172725172726172727172728172729172730172731172732172733172734172735172736172737172738172739172740172741172742172743172744172745172746172747172748172749172750172751172752172753172754172755172756172757172758172759172760172761172762172763172764172765172766172767172768172769172770172771172772172773172774172775172776172777172778172779172780172781172782172783172784172785172786172787172788172789172790172791172792172793172794172795172796172797172798172799172800172801172802172803172804172805172806172807172808172809172810172811172812172813172814172815172816172817172818172819172820172821172822172823172824172825172826172827172828172829172830172831172832172833172834172835172836172837172838172839172840172841172842172843172844172845172846172847172848172849172850172851172852172853172854172855172856172857172858172859172860172861172862172863172864172865172866172867172868172869172870172871172872172873172874172875172876172877172878172879172880172881172882172883172884172885172886172887172888172889172890172891172892172893172894172895172896172897172898172899172900172901172902172903172904172905172906172907172908172909172910172911172912172913172914172915172916172917172918172919172920172921172922172923172924172925172926172927172928172929172930172931172932172933172934172935172936172937172938172939172940172941172942172943172944172945172946172947172948172949172950172951172952172953172954172955172956172957172958172959172960172961172962172963172964172965172966172967172968172969172970172971172972172973172974172975172976172977172978172979172980172981172982172983172984172985172986172987172988172989172990172991172992172993172994172995172996172997172998172999173000173001173002173003173004173005173006173007173008173009173010173011173012173013173014173015173016173017173018173019173020173021173022173023173024173025173026173027173028173029173030173031173032173033173034173035173036173037173038173039173040173041173042173043173044173045173046173047173048173049173050173051173052173053173054173055173056173057173058173059173060173061173062173063173064173065173066173067173068173069173070173071173072173073173074173075173076173077173078173079173080173081173082173083173084173085173086173087173088173089173090173091173092173093173094173095173096173097173098173099173100173101173102173103173104173105173106173107173108173109173110173111173112173113173114173115173116173117173118173119173120173121173122173123173124173125173126173127173128173129173130173131173132173133173134173135173136173137173138173139173140173141173142173143173144173145173146173147173148173149173150173151173152173153173154173155173156173157173158173159173160173161173162173163173164173165173166173167173168173169173170173171173172173173173174173175173176173177173178173179173180173181173182173183173184173185173186173187173188173189173190173191173192173193173194173195173196173197173198173199173200173201173202173203173204173205173206173207173208173209173210173211173212173213173214173215173216173217173218173219173220173221173222173223173224173225173226173227173228173229173230173231173232173233173234173235173236173237173238173239173240173241173242173243173244173245173246173247173248173249173250173251173252173253173254173255173256173257173258173259173260173261173262173263173264173265173266173267173268173269173270173271173272173273173274173275173276173277173278173279173280173281173282173283173284173285173286173287173288173289173290173291173292173293173294173295173296173297173298173299173300173301173302173303173304173305173306173307173308173309173310173311173312173313173314173315173316173317173318173319173320173321173322173323173324173325173326173327173328173329173330173331173332173333173334173335173336173337173338173339173340173341173342173343173344173345173346173347173348173349173350173351173352173353173354173355173356173357173358173359173360173361173362173363173364173365173366173367173368173369173370173371173372173373173374173375173376173377173378173379173380173381173382173383173384173385173386173387173388173389173390173391173392173393173394173395173396173397173398173399173400173401173402173403173404173405173406173407173408173409173410173411173412173413173414173415173416173417173418173419173420173421173422173423173424173425173426173427173428173429173430173431173432173433173434173435173436173437173438173439173440173441173442173443173444173445173446173447173448173449173450173451173452173453173454173455173456173457173458173459173460173461173462173463173464173465173466173467173468173469173470173471173472173473173474173475173476173477173478173479173480173481173482173483173484173485173486173487173488173489173490173491173492173493173494173495173496173497173498173499173500173501173502173503173504173505173506173507173508173509173510173511173512173513173514173515173516173517173518173519173520173521173522173523173524173525173526173527173528173529173530173531173532173533173534173535173536173537173538173539173540173541173542173543173544173545173546173547173548173549173550173551173552173553173554173555173556173557173558173559173560173561173562173563173564173565173566173567173568173569173570173571173572173573173574173575173576173577173578173579173580173581173582173583173584173585173586173587173588173589173590173591173592173593173594173595173596173597173598173599173600173601173602173603173604173605173606173607173608173609173610173611173612173613173614173615173616173617173618173619173620173621173622173623173624173625173626173627173628173629173630173631173632173633173634173635173636173637173638173639173640173641173642173643173644173645173646173647173648173649173650173651173652173653173654173655173656173657173658173659173660173661173662173663173664173665173666173667173668173669173670173671173672173673173674173675173676173677173678173679173680173681173682173683173684173685173686173687173688173689173690173691173692173693173694173695173696173697173698173699173700173701173702173703173704173705173706173707173708173709173710173711173712173713173714173715173716173717173718173719173720173721173722173723173724173725173726173727173728173729173730173731173732173733173734173735173736173737173738173739173740173741173742173743173744173745173746173747173748173749173750173751173752173753173754173755173756173757173758173759173760173761173762173763173764173765173766173767173768173769173770173771173772173773173774173775173776173777173778173779173780173781173782173783173784173785173786173787173788173789173790173791173792173793173794173795173796173797173798173799173800173801173802173803173804173805173806173807173808173809173810173811173812173813173814173815173816173817173818173819173820173821173822173823173824173825173826173827173828173829173830173831173832173833173834173835173836173837173838173839173840173841173842173843173844173845173846173847173848173849173850173851173852173853173854173855173856173857173858173859173860173861173862173863173864173865173866173867173868173869173870173871173872173873173874173875173876173877173878173879173880173881173882173883173884173885173886173887173888173889173890173891173892173893173894173895173896173897173898173899173900173901173902173903173904173905173906173907173908173909173910173911173912173913173914173915173916173917173918173919173920173921173922173923173924173925173926173927173928173929173930173931173932173933173934173935173936173937173938173939173940173941173942173943173944173945173946173947173948173949173950173951173952173953173954173955173956173957173958173959173960173961173962173963173964173965173966173967173968173969173970173971173972173973173974173975173976173977173978173979173980173981173982173983173984173985173986173987173988173989173990173991173992173993173994173995173996173997173998173999174000174001174002174003174004174005174006174007174008174009174010174011174012174013174014174015174016174017174018174019174020174021174022174023174024174025174026174027174028174029174030174031174032174033174034174035174036174037174038174039174040174041174042174043174044174045174046174047174048174049174050174051174052174053174054174055174056174057174058174059174060174061174062174063174064174065174066174067174068174069174070174071174072174073174074174075174076174077174078174079174080174081174082174083174084174085174086174087174088174089174090174091174092174093174094174095174096174097174098174099174100174101174102174103174104174105174106174107174108174109174110174111174112174113174114174115174116174117174118174119174120174121174122174123174124174125174126174127174128174129174130174131174132174133174134174135174136174137174138174139174140174141174142174143174144174145174146174147174148174149174150174151174152174153174154174155174156174157174158174159174160174161174162174163174164174165174166174167174168174169174170174171174172174173174174174175174176174177174178174179174180174181174182174183174184174185174186174187174188174189174190174191174192174193174194174195174196174197174198174199174200174201174202174203174204174205174206174207174208174209174210174211174212174213174214174215174216174217174218174219174220174221174222174223174224174225174226174227174228174229174230174231174232174233174234174235174236174237174238174239174240174241174242174243174244174245174246174247174248174249174250174251174252174253174254174255174256174257174258174259174260174261174262174263174264174265174266174267174268174269174270174271174272174273174274174275174276174277174278174279174280174281174282174283174284174285174286174287174288174289174290174291174292174293174294174295174296174297174298174299174300174301174302174303174304174305174306174307174308174309174310174311174312174313174314174315174316174317174318174319174320174321174322174323174324174325174326174327174328174329174330174331174332174333174334174335174336174337174338174339174340174341174342174343174344174345174346174347174348174349174350174351174352174353174354174355174356174357174358174359174360174361174362174363174364174365174366174367174368174369174370174371174372174373174374174375174376174377174378174379174380174381174382174383174384174385174386174387174388174389174390174391174392174393174394174395174396174397174398174399174400174401174402174403174404174405174406174407174408174409174410174411174412174413174414174415174416174417174418174419174420174421174422174423174424174425174426174427174428174429174430174431174432174433174434174435174436174437174438174439174440174441174442174443174444174445174446174447174448174449174450174451174452174453174454174455174456174457174458174459174460174461174462174463174464174465174466174467174468174469174470174471174472174473174474174475174476174477174478174479174480174481174482174483174484174485174486174487174488174489174490174491174492174493174494174495174496174497174498174499174500174501174502174503174504174505174506174507174508174509174510174511174512174513174514174515174516174517174518174519174520174521174522174523174524174525174526174527174528174529174530174531174532174533174534174535174536174537174538174539174540174541174542174543174544174545174546174547174548174549174550174551174552174553174554174555174556174557174558174559174560174561174562174563174564174565174566174567174568174569174570174571174572174573174574174575174576174577174578174579174580174581174582174583174584174585174586174587174588174589174590174591174592174593174594174595174596174597174598174599174600174601174602174603174604174605174606174607174608174609174610174611174612174613174614174615174616174617174618174619174620174621174622174623174624174625174626174627174628174629174630174631174632174633174634174635174636174637174638174639174640174641174642174643174644174645174646174647174648174649174650174651174652174653174654174655174656174657174658174659174660174661174662174663174664174665174666174667174668174669174670174671174672174673174674174675174676174677174678174679174680174681174682174683174684174685174686174687174688174689174690174691174692174693174694174695174696174697174698174699174700174701174702174703174704174705174706174707174708174709174710174711174712174713174714174715174716174717174718174719174720174721174722174723174724174725174726174727174728174729174730174731174732174733174734174735174736174737174738174739174740174741174742174743174744174745174746174747174748174749174750174751174752174753174754174755174756174757174758174759174760174761174762174763174764174765174766174767174768174769174770174771174772174773174774174775174776174777174778174779174780174781174782174783174784174785174786174787174788174789174790174791174792174793174794174795174796174797174798174799174800174801174802174803174804174805174806174807174808174809174810174811174812174813174814174815174816174817174818174819174820174821174822174823174824174825174826174827174828174829174830174831174832174833174834174835174836174837174838174839174840174841174842174843174844174845174846174847174848174849174850174851174852174853174854174855174856174857174858174859174860174861174862174863174864174865174866174867174868174869174870174871174872174873174874174875174876174877174878174879174880174881174882174883174884174885174886174887174888174889174890174891174892174893174894174895174896174897174898174899174900174901174902174903174904174905174906174907174908174909174910174911174912174913174914174915174916174917174918174919174920174921174922174923174924174925174926174927174928174929174930174931174932174933174934174935174936174937174938174939174940174941174942174943174944174945174946174947174948174949174950174951174952174953174954174955174956174957174958174959174960174961174962174963174964174965174966174967174968174969174970174971174972174973174974174975174976174977174978174979174980174981174982174983174984174985174986174987174988174989174990174991174992174993174994174995174996174997174998174999175000175001175002175003175004175005175006175007175008175009175010175011175012175013175014175015175016175017175018175019175020175021175022175023175024175025175026175027175028175029175030175031175032175033175034175035175036175037175038175039175040175041175042175043175044175045175046175047175048175049175050175051175052175053175054175055175056175057175058175059175060175061175062175063175064175065175066175067175068175069175070175071175072175073175074175075175076175077175078175079175080175081175082175083175084175085175086175087175088175089175090175091175092175093175094175095175096175097175098175099175100175101175102175103175104175105175106175107175108175109175110175111175112175113175114175115175116175117175118175119175120175121175122175123175124175125175126175127175128175129175130175131175132175133175134175135175136175137175138175139175140175141175142175143175144175145175146175147175148175149175150175151175152175153175154175155175156175157175158175159175160175161175162175163175164175165175166175167175168175169175170175171175172175173175174175175175176175177175178175179175180175181175182175183175184175185175186175187175188175189175190175191175192175193175194175195175196175197175198175199175200175201175202175203175204175205175206175207175208175209175210175211175212175213175214175215175216175217175218175219175220175221175222175223175224175225175226175227175228175229175230175231175232175233175234175235175236175237175238175239175240175241175242175243175244175245175246175247175248175249175250175251175252175253175254175255175256175257175258175259175260175261175262175263175264175265175266175267175268175269175270175271175272175273175274175275175276175277175278175279175280175281175282175283175284175285175286175287175288175289175290175291175292175293175294175295175296175297175298175299175300175301175302175303175304175305175306175307175308175309175310175311175312175313175314175315175316175317175318175319175320175321175322175323175324175325175326175327175328175329175330175331175332175333175334175335175336175337175338175339175340175341175342175343175344175345175346175347175348175349175350175351175352175353175354175355175356175357175358175359175360175361175362175363175364175365175366175367175368175369175370175371175372175373175374175375175376175377175378175379175380175381175382175383175384175385175386175387175388175389175390175391175392175393175394175395175396175397175398175399175400175401175402175403175404175405175406175407175408175409175410175411175412175413175414175415175416175417175418175419175420175421175422175423175424175425175426175427175428175429175430175431175432175433175434175435175436175437175438175439175440175441175442175443175444175445175446175447175448175449175450175451175452175453175454175455175456175457175458175459175460175461175462175463175464175465175466175467175468175469175470175471175472175473175474175475175476175477175478175479175480175481175482175483175484175485175486175487175488175489175490175491175492175493175494175495175496175497175498175499175500175501175502175503175504175505175506175507175508175509175510175511175512175513175514175515175516175517175518175519175520175521175522175523175524175525175526175527175528175529175530175531175532175533175534175535175536175537175538175539175540175541175542175543175544175545175546175547175548175549175550175551175552175553175554175555175556175557175558175559175560175561175562175563175564175565175566175567175568175569175570175571175572175573175574175575175576175577175578175579175580175581175582175583175584175585175586175587175588175589175590175591175592175593175594175595175596175597175598175599175600175601175602175603175604175605175606175607175608175609175610175611175612175613175614175615175616175617175618175619175620175621175622175623175624175625175626175627175628175629175630175631175632175633175634175635175636175637175638175639175640175641175642175643175644175645175646175647175648175649175650175651175652175653175654175655175656175657175658175659175660175661175662175663175664175665175666175667175668175669175670175671175672175673175674175675175676175677175678175679175680175681175682175683175684175685175686175687175688175689175690175691175692175693175694175695175696175697175698175699175700175701175702175703175704175705175706175707175708175709175710175711175712175713175714175715175716175717175718175719175720175721175722175723175724175725175726175727175728175729175730175731175732175733175734175735175736175737175738175739175740175741175742175743175744175745175746175747175748175749175750175751175752175753175754175755175756175757175758175759175760175761175762175763175764175765175766175767175768175769175770175771175772175773175774175775175776175777175778175779175780175781175782175783175784175785175786175787175788175789175790175791175792175793175794175795175796175797175798175799175800175801175802175803175804175805175806175807175808175809175810175811175812175813175814175815175816175817175818175819175820175821175822175823175824175825175826175827175828175829175830175831175832175833175834175835175836175837175838175839175840175841175842175843175844175845175846175847175848175849175850175851175852175853175854175855175856175857175858175859175860175861175862175863175864175865175866175867175868175869175870175871175872175873175874175875175876175877175878175879175880175881175882175883175884175885175886175887175888175889175890175891175892175893175894175895175896175897175898175899175900175901175902175903175904175905175906175907175908175909175910175911175912175913175914175915175916175917175918175919175920175921175922175923175924175925175926175927175928175929175930175931175932175933175934175935175936175937175938175939175940175941175942175943175944175945175946175947175948175949175950175951175952175953175954175955175956175957175958175959175960175961175962175963175964175965175966175967175968175969175970175971175972175973175974175975175976175977175978175979175980175981175982175983175984175985175986175987175988175989175990175991175992175993175994175995175996175997175998175999176000176001176002176003176004176005176006176007176008176009176010176011176012176013176014176015176016176017176018176019176020176021176022176023176024176025176026176027176028176029176030176031176032176033176034176035176036176037176038176039176040176041176042176043176044176045176046176047176048176049176050176051176052176053176054176055176056176057176058176059176060176061176062176063176064176065176066176067176068176069176070176071176072176073176074176075176076176077176078176079176080176081176082176083176084176085176086176087176088176089176090176091176092176093176094176095176096176097176098176099176100176101176102176103176104176105176106176107176108176109176110176111176112176113176114176115176116176117176118176119176120176121176122176123176124176125176126176127176128176129176130176131176132176133176134176135176136176137176138176139176140176141176142176143176144176145176146176147176148176149176150176151176152176153176154176155176156176157176158176159176160176161176162176163176164176165176166176167176168176169176170176171176172176173176174176175176176176177176178176179176180176181176182176183176184176185176186176187176188176189176190176191176192176193176194176195176196176197176198176199176200176201176202176203176204176205176206176207176208176209176210176211176212176213176214176215176216176217176218176219176220176221176222176223176224176225176226176227176228176229176230176231176232176233176234176235176236176237176238176239176240176241176242176243176244176245176246176247176248176249176250176251176252176253176254176255176256176257176258176259176260176261176262176263176264176265176266176267176268176269176270176271176272176273176274176275176276176277176278176279176280176281176282176283176284176285176286176287176288176289176290176291176292176293176294176295176296176297176298176299176300176301176302176303176304176305176306176307176308176309176310176311176312176313176314176315176316176317176318176319176320176321176322176323176324176325176326176327176328176329176330176331176332176333176334176335176336176337176338176339176340176341176342176343176344176345176346176347176348176349176350176351176352176353176354176355176356176357176358176359176360176361176362176363176364176365176366176367176368176369176370176371176372176373176374176375176376176377176378176379176380176381176382176383176384176385176386176387176388176389176390176391176392176393176394176395176396176397176398176399176400176401176402176403176404176405176406176407176408176409176410176411176412176413176414176415176416176417176418176419176420176421176422176423176424176425176426176427176428176429176430176431176432176433176434176435176436176437176438176439176440176441176442176443176444176445176446176447176448176449176450176451176452176453176454176455176456176457176458176459176460176461176462176463176464176465176466176467176468176469176470176471176472176473176474176475176476176477176478176479176480176481176482176483176484176485176486176487176488176489176490176491176492176493176494176495176496176497176498176499176500176501176502176503176504176505176506176507176508176509176510176511176512176513176514176515176516176517176518176519176520176521176522176523176524176525176526176527176528176529176530176531176532176533176534176535176536176537176538176539176540176541176542176543176544176545176546176547176548176549176550176551176552176553176554176555176556176557176558176559176560176561176562176563176564176565176566176567176568176569176570176571176572176573176574176575176576176577176578176579176580176581176582176583176584176585176586176587176588176589176590176591176592176593176594176595176596176597176598176599176600176601176602176603176604176605176606176607176608176609176610176611176612176613176614176615176616176617176618176619176620176621176622176623176624176625176626176627176628176629176630176631176632176633176634176635176636176637176638176639176640176641176642176643176644176645176646176647176648176649176650176651176652176653176654176655176656176657176658176659176660176661176662176663176664176665176666176667176668176669176670176671176672176673176674176675176676176677176678176679176680176681176682176683176684176685176686176687176688176689176690176691176692176693176694176695176696176697176698176699176700176701176702176703176704176705176706176707176708176709176710176711176712176713176714176715176716176717176718176719176720176721176722176723176724176725176726176727176728176729176730176731176732176733176734176735176736176737176738176739176740176741176742176743176744176745176746176747176748176749176750176751176752176753176754176755176756176757176758176759176760176761176762176763176764176765176766176767176768176769176770176771176772176773176774176775176776176777176778176779176780176781176782176783176784176785176786176787176788176789176790176791176792176793176794176795176796176797176798176799176800176801176802176803176804176805176806176807176808176809176810176811176812176813176814176815176816176817176818176819176820176821176822176823176824176825176826176827176828176829176830176831176832176833176834176835176836176837176838176839176840176841176842176843176844176845176846176847176848176849176850176851176852176853176854176855176856176857176858176859176860176861176862176863176864176865176866176867176868176869176870176871176872176873176874176875176876176877176878176879176880176881176882176883176884176885176886176887176888176889176890176891176892176893176894176895176896176897176898176899176900176901176902176903176904176905176906176907176908176909176910176911176912176913176914176915176916176917176918176919176920176921176922176923176924176925176926176927176928176929176930176931176932176933176934176935176936176937176938176939176940176941176942176943176944176945176946176947176948176949176950176951176952176953176954176955176956176957176958176959176960176961176962176963176964176965176966176967176968176969176970176971176972176973176974176975176976176977176978176979176980176981176982176983176984176985176986176987176988176989176990176991176992176993176994176995176996176997176998176999177000177001177002177003177004177005177006177007177008177009177010177011177012177013177014177015177016177017177018177019177020177021177022177023177024177025177026177027177028177029177030177031177032177033177034177035177036177037177038177039177040177041177042177043177044177045177046177047177048177049177050177051177052177053177054177055177056177057177058177059177060177061177062177063177064177065177066177067177068177069177070177071177072177073177074177075177076177077177078177079177080177081177082177083177084177085177086177087177088177089177090177091177092177093177094177095177096177097177098177099177100177101177102177103177104177105177106177107177108177109177110177111177112177113177114177115177116177117177118177119177120177121177122177123177124177125177126177127177128177129177130177131177132177133177134177135177136177137177138177139177140177141177142177143177144177145177146177147177148177149177150177151177152177153177154177155177156177157177158177159177160177161177162177163177164177165177166177167177168177169177170177171177172177173177174177175177176177177177178177179177180177181177182177183177184177185177186177187177188177189177190177191177192177193177194177195177196177197177198177199177200177201177202177203177204177205177206177207177208177209177210177211177212177213177214177215177216177217177218177219177220177221177222177223177224177225177226177227177228177229177230177231177232177233177234177235177236177237177238177239177240177241177242177243177244177245177246177247177248177249177250177251177252177253177254177255177256177257177258177259177260177261177262177263177264177265177266177267177268177269177270177271177272177273177274177275177276177277177278177279177280177281177282177283177284177285177286177287177288177289177290177291177292177293177294177295177296177297177298177299177300177301177302177303177304177305177306177307177308177309177310177311177312177313177314177315177316177317177318177319177320177321177322177323177324177325177326177327177328177329177330177331177332177333177334177335177336177337177338177339177340177341177342177343177344177345177346177347177348177349177350177351177352177353177354177355177356177357177358177359177360177361177362177363177364177365177366177367177368177369177370177371177372177373177374177375177376177377177378177379177380177381177382177383177384177385177386177387177388177389177390177391177392177393177394177395177396177397177398177399177400177401177402177403177404177405177406177407177408177409177410177411177412177413177414177415177416177417177418177419177420177421177422177423177424177425177426177427177428177429177430177431177432177433177434177435177436177437177438177439177440177441177442177443177444177445177446177447177448177449177450177451177452177453177454177455177456177457177458177459177460177461177462177463177464177465177466177467177468177469177470177471177472177473177474177475177476177477177478177479177480177481177482177483177484177485177486177487177488177489177490177491177492177493177494177495177496177497177498177499177500177501177502177503177504177505177506177507177508177509177510177511177512177513177514177515177516177517177518177519177520177521177522177523177524177525177526177527177528177529177530177531177532177533177534177535177536177537177538177539177540177541177542177543177544177545177546177547177548177549177550177551177552177553177554177555177556177557177558177559177560177561177562177563177564177565177566177567177568177569177570177571177572177573177574177575177576177577177578177579177580177581177582177583177584177585177586177587177588177589177590177591177592177593177594177595177596177597177598177599177600177601177602177603177604177605177606177607177608177609177610177611177612177613177614177615177616177617177618177619177620177621177622177623177624177625177626177627177628177629177630177631177632177633177634177635177636177637177638177639177640177641177642177643177644177645177646177647177648177649177650177651177652177653177654177655177656177657177658177659177660177661177662177663177664177665177666177667177668177669177670177671177672177673177674177675177676177677177678177679177680177681177682177683177684177685177686177687177688177689177690177691177692177693177694177695177696177697177698177699177700177701177702177703177704177705177706177707177708177709177710177711177712177713177714177715177716177717177718177719177720177721177722177723177724177725177726177727177728177729177730177731177732177733177734177735177736177737177738177739177740177741177742177743177744177745177746177747177748177749177750177751177752177753177754177755177756177757177758177759177760177761177762177763177764177765177766177767177768177769177770177771177772177773177774177775177776177777177778177779177780177781177782177783177784177785177786177787177788177789177790177791177792177793177794177795177796177797177798177799177800177801177802177803177804177805177806177807177808177809177810177811177812177813177814177815177816177817177818177819177820177821177822177823177824177825177826177827177828177829177830177831177832177833177834177835177836177837177838177839177840177841177842177843177844177845177846177847177848177849177850177851177852177853177854177855177856177857177858177859177860177861177862177863177864177865177866177867177868177869177870177871177872177873177874177875177876177877177878177879177880177881177882177883177884177885177886177887177888177889177890177891177892177893177894177895177896177897177898177899177900177901177902177903177904177905177906177907177908177909177910177911177912177913177914177915177916177917177918177919177920177921177922177923177924177925177926177927177928177929177930177931177932177933177934177935177936177937177938177939177940177941177942177943177944177945177946177947177948177949177950177951177952177953177954177955177956177957177958177959177960177961177962177963177964177965177966177967177968177969177970177971177972177973177974177975177976177977177978177979177980177981177982177983177984177985177986177987177988177989177990177991177992177993177994177995177996177997177998177999178000178001178002178003178004178005178006178007178008178009178010178011178012178013178014178015178016178017178018178019178020178021178022178023178024178025178026178027178028178029178030178031178032178033178034178035178036178037178038178039178040178041178042178043178044178045178046178047178048178049178050178051178052178053178054178055178056178057178058178059178060178061178062178063178064178065178066178067178068178069178070178071178072178073178074178075178076178077178078178079178080178081178082178083178084178085178086178087178088178089178090178091178092178093178094178095178096178097178098178099178100178101178102178103178104178105178106178107178108178109178110178111178112178113178114178115178116178117178118178119178120178121178122178123178124178125178126178127178128178129178130178131178132178133178134178135178136178137178138178139178140178141178142178143178144178145178146178147178148178149178150178151178152178153178154178155178156178157178158178159178160178161178162178163178164178165178166178167178168178169178170178171178172178173178174178175178176178177178178178179178180178181178182178183178184178185178186178187178188178189178190178191178192178193178194178195178196178197178198178199178200178201178202178203178204178205178206178207178208178209178210178211178212178213178214178215178216178217178218178219178220178221178222178223178224178225178226178227178228178229178230178231178232178233178234178235178236178237178238178239178240178241178242178243178244178245178246178247178248178249178250178251178252178253178254178255178256178257178258178259178260178261178262178263178264178265178266178267178268178269178270178271178272178273178274178275178276178277178278178279178280178281178282178283178284178285178286178287178288178289178290178291178292178293178294178295178296178297178298178299178300178301178302178303178304178305178306178307178308178309178310178311178312178313178314178315178316178317178318178319178320178321178322178323178324178325178326178327178328178329178330178331178332178333178334178335178336178337178338178339178340178341178342178343178344178345178346178347178348178349178350178351178352178353178354178355178356178357178358178359178360178361178362178363178364178365178366178367178368178369178370178371178372178373178374178375178376178377178378178379178380178381178382178383178384178385178386178387178388178389178390178391178392178393178394178395178396178397178398178399178400178401178402178403178404178405178406178407178408178409178410178411178412178413178414178415178416178417178418178419178420178421178422178423178424178425178426178427178428178429178430178431178432178433178434178435178436178437178438178439178440178441178442178443178444178445178446178447178448178449178450178451178452178453178454178455178456178457178458178459178460178461178462178463178464178465178466178467178468178469178470178471178472178473178474178475178476178477178478178479178480178481178482178483178484178485178486178487178488178489178490178491178492178493178494178495178496178497178498178499178500178501178502178503178504178505178506178507178508178509178510178511178512178513178514178515178516178517178518178519178520178521178522178523178524178525178526178527178528178529178530178531178532178533178534178535178536178537178538178539178540178541178542178543178544178545178546178547178548178549178550178551178552178553178554178555178556178557178558178559178560178561178562178563178564178565178566178567178568178569178570178571178572178573178574178575178576178577178578178579178580178581178582178583178584178585178586178587178588178589178590178591178592178593178594178595178596178597178598178599178600178601178602178603178604178605178606178607178608178609178610178611178612178613178614178615178616178617178618178619178620178621178622178623178624178625178626178627178628178629178630178631178632178633178634178635178636178637178638178639178640178641178642178643178644178645178646178647178648178649178650178651178652178653178654178655178656178657178658178659178660178661178662178663178664178665178666178667178668178669178670178671178672178673178674178675178676178677178678178679178680178681178682178683178684178685178686178687178688178689178690178691178692178693178694178695178696178697178698178699178700178701178702178703178704178705178706178707178708178709178710178711178712178713178714178715178716178717178718178719178720178721178722178723178724178725178726178727178728178729178730178731178732178733178734178735178736178737178738178739178740178741178742178743178744178745178746178747178748178749178750178751178752178753178754178755178756178757178758178759178760178761178762178763178764178765178766178767178768178769178770178771178772178773178774178775178776178777178778178779178780178781178782178783178784178785178786178787178788178789178790178791178792178793178794178795178796178797178798178799178800178801178802178803178804178805178806178807178808178809178810178811178812178813178814178815178816178817178818178819178820178821178822178823178824178825178826178827178828178829178830178831178832178833178834178835178836178837178838178839178840178841178842178843178844178845178846178847178848178849178850178851178852178853178854178855178856178857178858178859178860178861178862178863178864178865178866178867178868178869178870178871178872178873178874178875178876178877178878178879178880178881178882178883178884178885178886178887178888178889178890178891178892178893178894178895178896178897178898178899178900178901178902178903178904178905178906178907178908178909178910178911178912178913178914178915178916178917178918178919178920178921178922178923178924178925178926178927178928178929178930178931178932178933178934178935178936178937178938178939178940178941178942178943178944178945178946178947178948178949178950178951178952178953178954178955178956178957178958178959178960178961178962178963178964178965178966178967178968178969178970178971178972178973178974178975178976178977178978178979178980178981178982178983178984178985178986178987178988178989178990178991178992178993178994178995178996178997178998178999179000179001179002179003179004179005179006179007179008179009179010179011179012179013179014179015179016179017179018179019179020179021179022179023179024179025179026179027179028179029179030179031179032179033179034179035179036179037179038179039179040179041179042179043179044179045179046179047179048179049179050179051179052179053179054179055179056179057179058179059179060179061179062179063179064179065179066179067179068179069179070179071179072179073179074179075179076179077179078179079179080179081179082179083179084179085179086179087179088179089179090179091179092179093179094179095179096179097179098179099179100179101179102179103179104179105179106179107179108179109179110179111179112179113179114179115179116179117179118179119179120179121179122179123179124179125179126179127179128179129179130179131179132179133179134179135179136179137179138179139179140179141179142179143179144179145179146179147179148179149179150179151179152179153179154179155179156179157179158179159179160179161179162179163179164179165179166179167179168179169179170179171179172179173179174179175179176179177179178179179179180179181179182179183179184179185179186179187179188179189179190179191179192179193179194179195179196179197179198179199179200179201179202179203179204179205179206179207179208179209179210179211179212179213179214179215179216179217179218179219179220179221179222179223179224179225179226179227179228179229179230179231179232179233179234179235179236179237179238179239179240179241179242179243179244179245179246179247179248179249179250179251179252179253179254179255179256179257179258179259179260179261179262179263179264179265179266179267179268179269179270179271179272179273179274179275179276179277179278179279179280179281179282179283179284179285179286179287179288179289179290179291179292179293179294179295179296179297179298179299179300179301179302179303179304179305179306179307179308179309179310179311179312179313179314179315179316179317179318179319179320179321179322179323179324179325179326179327179328179329179330179331179332179333179334179335179336179337179338179339179340179341179342179343179344179345179346179347179348179349179350179351179352179353179354179355179356179357179358179359179360179361179362179363179364179365179366179367179368179369179370179371179372179373179374179375179376179377179378179379179380179381179382179383179384179385179386179387179388179389179390179391179392179393179394179395179396179397179398179399179400179401179402179403179404179405179406179407179408179409179410179411179412179413179414179415179416179417179418179419179420179421179422179423179424179425179426179427179428179429179430179431179432179433179434179435179436179437179438179439179440179441179442179443179444179445179446179447179448179449179450179451179452179453179454179455179456179457179458179459179460179461179462179463179464179465179466179467179468179469179470179471179472179473179474179475179476179477179478179479179480179481179482179483179484179485179486179487179488179489179490179491179492179493179494179495179496179497179498179499179500179501179502179503179504179505179506179507179508179509179510179511179512179513179514179515179516179517179518179519179520179521179522179523179524179525179526179527179528179529179530179531179532179533179534179535179536179537179538179539179540179541179542179543179544179545179546179547179548179549179550179551179552179553179554179555179556179557179558179559179560179561179562179563179564179565179566179567179568179569179570179571179572179573179574179575179576179577179578179579179580179581179582179583179584179585179586179587179588179589179590179591179592179593179594179595179596179597179598179599179600179601179602179603179604179605179606179607179608179609179610179611179612179613179614179615179616179617179618179619179620179621179622179623179624179625179626179627179628179629179630179631179632179633179634179635179636179637179638179639179640179641179642179643179644179645179646179647179648179649179650179651179652179653179654179655179656179657179658179659179660179661179662179663179664179665179666179667179668179669179670179671179672179673179674179675179676179677179678179679179680179681179682179683179684179685179686179687179688179689179690179691179692179693179694179695179696179697179698179699179700179701179702179703179704179705179706179707179708179709179710179711179712179713179714179715179716179717179718179719179720179721179722179723179724179725179726179727179728179729179730179731179732179733179734179735179736179737179738179739179740179741179742179743179744179745179746179747179748179749179750179751179752179753179754179755179756179757179758179759179760179761179762179763179764179765179766179767179768179769179770179771179772179773179774179775179776179777179778179779179780179781179782179783179784179785179786179787179788179789179790179791179792179793179794179795179796179797179798179799179800179801179802179803179804179805179806179807179808179809179810179811179812179813179814179815179816179817179818179819179820179821179822179823179824179825179826179827179828179829179830179831179832179833179834179835179836179837179838179839179840179841179842179843179844179845179846179847179848179849179850179851179852179853179854179855179856179857179858179859179860179861179862179863179864179865179866179867179868179869179870179871179872179873179874179875179876179877179878179879179880179881179882179883179884179885179886179887179888179889179890179891179892179893179894179895179896179897179898179899179900179901179902179903179904179905179906179907179908179909179910179911179912179913179914179915179916179917179918179919179920179921179922179923179924179925179926179927179928179929179930179931179932179933179934179935179936179937179938179939179940179941179942179943179944179945179946179947179948179949179950179951179952179953179954179955179956179957179958179959179960179961179962179963179964179965179966179967179968179969179970179971179972179973179974179975179976179977179978179979179980179981179982179983179984179985179986179987179988179989179990179991179992179993179994179995179996179997179998179999180000180001180002180003180004180005180006180007180008180009180010180011180012180013180014180015180016180017180018180019180020180021180022180023180024180025180026180027180028180029180030180031180032180033180034180035180036180037180038180039180040180041180042180043180044180045180046180047180048180049180050180051180052180053180054180055180056180057180058180059180060180061180062180063180064180065180066180067180068180069180070180071180072180073180074180075180076180077180078180079180080180081180082180083180084180085180086180087180088180089180090180091180092180093180094180095180096180097180098180099180100180101180102180103180104180105180106180107180108180109180110180111180112180113180114180115180116180117180118180119180120180121180122180123180124180125180126180127180128180129180130180131180132180133180134180135180136180137180138180139180140180141180142180143180144180145180146180147180148180149180150180151180152180153180154180155180156180157180158180159180160180161180162180163180164180165180166180167180168180169180170180171180172180173180174180175180176180177180178180179180180180181180182180183180184180185180186180187180188180189180190180191180192180193180194180195180196180197180198180199180200180201180202180203180204180205180206180207180208180209180210180211180212180213180214180215180216180217180218180219180220180221180222180223180224180225180226180227180228180229180230180231180232180233180234180235180236180237180238180239180240180241180242180243180244180245180246180247180248180249180250180251180252180253180254180255180256180257180258180259180260180261180262180263180264180265180266180267180268180269180270180271180272180273180274180275180276180277180278180279180280180281180282180283180284180285180286180287180288180289180290180291180292180293180294180295180296180297180298180299180300180301180302180303180304180305180306180307180308180309180310180311180312180313180314180315180316180317180318180319180320180321180322180323180324180325180326180327180328180329180330180331180332180333180334180335180336180337180338180339180340180341180342180343180344180345180346180347180348180349180350180351180352180353180354180355180356180357180358180359180360180361180362180363180364180365180366180367180368180369180370180371180372180373180374180375180376180377180378180379180380180381180382180383180384180385180386180387180388180389180390180391180392180393180394180395180396180397180398180399180400180401180402180403180404180405180406180407180408180409180410180411180412180413180414180415180416180417180418180419180420180421180422180423180424180425180426180427180428180429180430180431180432180433180434180435180436180437180438180439180440180441180442180443180444180445180446180447180448180449180450180451180452180453180454180455180456180457180458180459180460180461180462180463180464180465180466180467180468180469180470180471180472180473180474180475180476180477180478180479180480180481180482180483180484180485180486180487180488180489180490180491180492180493180494180495180496180497180498180499180500180501180502180503180504180505180506180507180508180509180510180511180512180513180514180515180516180517180518180519180520180521180522180523180524180525180526180527180528180529180530180531180532180533180534180535180536180537180538180539180540180541180542180543180544180545180546180547180548180549180550180551180552180553180554180555180556180557180558180559180560180561180562180563180564180565180566180567180568180569180570180571180572180573180574180575180576180577180578180579180580180581180582180583180584180585180586180587180588180589180590180591180592180593180594180595180596180597180598180599180600180601180602180603180604180605180606180607180608180609180610180611180612180613180614180615180616180617180618180619180620180621180622180623180624180625180626180627180628180629180630180631180632180633180634180635180636180637180638180639180640180641180642180643180644180645180646180647180648180649180650180651180652180653180654180655180656180657180658180659180660180661180662180663180664180665180666180667180668180669180670180671180672180673180674180675180676180677180678180679180680180681180682180683180684180685180686180687180688180689180690180691180692180693180694180695180696180697180698180699180700180701180702180703180704180705180706180707180708180709180710180711180712180713180714180715180716180717180718180719180720180721180722180723180724180725180726180727180728180729180730180731180732180733180734180735180736180737180738180739180740180741180742180743180744180745180746180747180748180749180750180751180752180753180754180755180756180757180758180759180760180761180762180763180764180765180766180767180768180769180770180771180772180773180774180775180776180777180778180779180780180781180782180783180784180785180786180787180788180789180790180791180792180793180794180795180796180797180798180799180800180801180802180803180804180805180806180807180808180809180810180811180812180813180814180815180816180817180818180819180820180821180822180823180824180825180826180827180828180829180830180831180832180833180834180835180836180837180838180839180840180841180842180843180844180845180846180847180848180849180850180851180852180853180854180855180856180857180858180859180860180861180862180863180864180865180866180867180868180869180870180871180872180873180874180875180876180877180878180879180880180881180882180883180884180885180886180887180888180889180890180891180892180893180894180895180896180897180898180899180900180901180902180903180904180905180906180907180908180909180910180911180912180913180914180915180916180917180918180919180920180921180922180923180924180925180926180927180928180929180930180931180932180933180934180935180936180937180938180939180940180941180942180943180944180945180946180947180948180949180950180951180952180953180954180955180956180957180958180959180960180961180962180963180964180965180966180967180968180969180970180971180972180973180974180975180976180977180978180979180980180981180982180983180984180985180986180987180988180989180990180991180992180993180994180995180996180997180998180999181000181001181002181003181004181005181006181007181008181009181010181011181012181013181014181015181016181017181018181019181020181021181022181023181024181025181026181027181028181029181030181031181032181033181034181035181036181037181038181039181040181041181042181043181044181045181046181047181048181049181050181051181052181053181054181055181056181057181058181059181060181061181062181063181064181065181066181067181068181069181070181071181072181073181074181075181076181077181078181079181080181081181082181083181084181085181086181087181088181089181090181091181092181093181094181095181096181097181098181099181100181101181102181103181104181105181106181107181108181109181110181111181112181113181114181115181116181117181118181119181120181121181122181123181124181125181126181127181128181129181130181131181132181133181134181135181136181137181138181139181140181141181142181143181144181145181146181147181148181149181150181151181152181153181154181155181156181157181158181159181160181161181162181163181164181165181166181167181168181169181170181171181172181173181174181175181176181177181178181179181180181181181182181183181184181185181186181187181188181189181190181191181192181193181194181195181196181197181198181199181200181201181202181203181204181205181206181207181208181209181210181211181212181213181214181215181216181217181218181219181220181221181222181223181224181225181226181227181228181229181230181231181232181233181234181235181236181237181238181239181240181241181242181243181244181245181246181247181248181249181250181251181252181253181254181255181256181257181258181259181260181261181262181263181264181265181266181267181268181269181270181271181272181273181274181275181276181277181278181279181280181281181282181283181284181285181286181287181288181289181290181291181292181293181294181295181296181297181298181299181300181301181302181303181304181305181306181307181308181309181310181311181312181313181314181315181316181317181318181319181320181321181322181323181324181325181326181327181328181329181330181331181332181333181334181335181336181337181338181339181340181341181342181343181344181345181346181347181348181349181350181351181352181353181354181355181356181357181358181359181360181361181362181363181364181365181366181367181368181369181370181371181372181373181374181375181376181377181378181379181380181381181382181383181384181385181386181387181388181389181390181391181392181393181394181395181396181397181398181399181400181401181402181403181404181405181406181407181408181409181410181411181412181413181414181415181416181417181418181419181420181421181422181423181424181425181426181427181428181429181430181431181432181433181434181435181436181437181438181439181440181441181442181443181444181445181446181447181448181449181450181451181452181453181454181455181456181457181458181459181460181461181462181463181464181465181466181467181468181469181470181471181472181473181474181475181476181477181478181479181480181481181482181483181484181485181486181487181488181489181490181491181492181493181494181495181496181497181498181499181500181501181502181503181504181505181506181507181508181509181510181511181512181513181514181515181516181517181518181519181520181521181522181523181524181525181526181527181528181529181530181531181532181533181534181535181536181537181538181539181540181541181542181543181544181545181546181547181548181549181550181551181552181553181554181555181556181557181558181559181560181561181562181563181564181565181566181567181568181569181570181571181572181573181574181575181576181577181578181579181580181581181582181583181584181585181586181587181588181589181590181591181592181593181594181595181596181597181598181599181600181601181602181603181604181605181606181607181608181609181610181611181612181613181614181615181616181617181618181619181620181621181622181623181624181625181626181627181628181629181630181631181632181633181634181635181636181637181638181639181640181641181642181643181644181645181646181647181648181649181650181651181652181653181654181655181656181657181658181659181660181661181662181663181664181665181666181667181668181669181670181671181672181673181674181675181676181677181678181679181680181681181682181683181684181685181686181687181688181689181690181691181692181693181694181695181696181697181698181699181700181701181702181703181704181705181706181707181708181709181710181711181712181713181714181715181716181717181718181719181720181721181722181723181724181725181726181727181728181729181730181731181732181733181734181735181736181737181738181739181740181741181742181743181744181745181746181747181748181749181750181751181752181753181754181755181756181757181758181759181760181761181762181763181764181765181766181767181768181769181770181771181772181773181774181775181776181777181778181779181780181781181782181783181784181785181786181787181788181789181790181791181792181793181794181795181796181797181798181799181800181801181802181803181804181805181806181807181808181809181810181811181812181813181814181815181816181817181818181819181820181821181822181823181824181825181826181827181828181829181830181831181832181833181834181835181836181837181838181839181840181841181842181843181844181845181846181847181848181849181850181851181852181853181854181855181856181857181858181859181860181861181862181863181864181865181866181867181868181869181870181871181872181873181874181875181876181877181878181879181880181881181882181883181884181885181886181887181888181889181890181891181892181893181894181895181896181897181898181899181900181901181902181903181904181905181906181907181908181909181910181911181912181913181914181915181916181917181918181919181920181921181922181923181924181925181926181927181928181929181930181931181932181933181934181935181936181937181938181939181940181941181942181943181944181945181946181947181948181949181950181951181952181953181954181955181956181957181958181959181960181961181962181963181964181965181966181967181968181969181970181971181972181973181974181975181976181977181978181979181980181981181982181983181984181985181986181987181988181989181990181991181992181993181994181995181996181997181998181999182000182001182002182003182004182005182006182007182008182009182010182011182012182013182014182015182016182017182018182019182020182021182022182023182024182025182026182027182028182029182030182031182032182033182034182035182036182037182038182039182040182041182042182043182044182045182046182047182048182049182050182051182052182053182054182055182056182057182058182059182060182061182062182063182064182065182066182067182068182069182070182071182072182073182074182075182076182077182078182079182080182081182082182083182084182085182086182087182088182089182090182091182092182093182094182095182096182097182098182099182100182101182102182103182104182105182106182107182108182109182110182111182112182113182114182115182116182117182118182119182120182121182122182123182124182125182126182127182128182129182130182131182132182133182134182135182136182137182138182139182140182141182142182143182144182145182146182147182148182149182150182151182152182153182154182155182156182157182158182159182160182161182162182163182164182165182166182167182168182169182170182171182172182173182174182175182176182177182178182179182180182181182182182183182184182185182186182187182188182189182190182191182192182193182194182195182196182197182198182199182200182201182202182203182204182205182206182207182208182209182210182211182212182213182214182215182216182217182218182219182220182221182222182223182224182225182226182227182228182229182230182231182232182233182234182235182236182237182238182239182240182241182242182243182244182245182246182247182248182249182250182251182252182253182254182255182256182257182258182259182260182261182262182263182264182265182266182267182268182269182270182271182272182273182274182275182276182277182278182279182280182281182282182283182284182285182286182287182288182289182290182291182292182293182294182295182296182297182298182299182300182301182302182303182304182305182306182307182308182309182310182311182312182313182314182315182316182317182318182319182320182321182322182323182324182325182326182327182328182329182330182331182332182333182334182335182336182337182338182339182340182341182342182343182344182345182346182347182348182349182350182351182352182353182354182355182356182357182358182359182360182361182362182363182364182365182366182367182368182369182370182371182372182373182374182375182376182377182378182379182380182381182382182383182384182385182386182387182388182389182390182391182392182393182394182395182396182397182398182399182400182401182402182403182404182405182406182407182408182409182410182411182412182413182414182415182416182417182418182419182420182421182422182423182424182425182426182427182428182429182430182431182432182433182434182435182436182437182438182439182440182441182442182443182444182445182446182447182448182449182450182451182452182453182454182455182456182457182458182459182460182461182462182463182464182465182466182467182468182469182470182471182472182473182474182475182476182477182478182479182480182481182482182483182484182485182486182487182488182489182490182491182492182493182494182495182496182497182498182499182500182501182502182503182504182505182506182507182508182509182510182511182512182513182514182515182516182517182518182519182520182521182522182523182524182525182526182527182528182529182530182531182532182533182534182535182536182537182538182539182540182541182542182543182544182545182546182547182548182549182550182551182552182553182554182555182556182557182558182559182560182561182562182563182564182565182566182567182568182569182570182571182572182573182574182575182576182577182578182579182580182581182582182583182584182585182586182587182588182589182590182591182592182593182594182595182596182597182598182599182600182601182602182603182604182605182606182607182608182609182610182611182612182613182614182615182616182617182618182619182620182621182622182623182624182625182626182627182628182629182630182631182632182633182634182635182636182637182638182639182640182641182642182643182644182645182646182647182648182649182650182651182652182653182654182655182656182657182658182659182660182661182662182663182664182665182666182667182668182669182670182671182672182673182674182675182676182677182678182679182680182681182682182683182684182685182686182687182688182689182690182691182692182693182694182695182696182697182698182699182700182701182702182703182704182705182706182707182708182709182710182711182712182713182714182715182716182717182718182719182720182721182722182723182724182725182726182727182728182729182730182731182732182733182734182735182736182737182738182739182740182741182742182743182744182745182746182747182748182749182750182751182752182753182754182755182756182757182758182759182760182761182762182763182764182765182766182767182768182769182770182771182772182773182774182775182776182777182778182779182780182781182782182783182784182785182786182787182788182789182790182791182792182793182794182795182796182797182798182799182800182801182802182803182804182805182806182807182808182809182810182811182812182813182814182815182816182817182818182819182820182821182822182823182824182825182826182827182828182829182830182831182832182833182834182835182836182837182838182839182840182841182842182843182844182845182846182847182848182849182850182851182852182853182854182855182856182857182858182859182860182861182862182863182864182865182866182867182868182869182870182871182872182873182874182875182876182877182878182879182880182881182882182883182884182885182886182887182888182889182890182891182892182893182894182895182896182897182898182899182900182901182902182903182904182905182906182907182908182909182910182911182912182913182914182915182916182917182918182919182920182921182922182923182924182925182926182927182928182929182930182931182932182933182934182935182936182937182938182939182940182941182942182943182944182945182946182947182948182949182950182951182952182953182954182955182956182957182958182959182960182961182962182963182964182965182966182967182968182969182970182971182972182973182974182975182976182977182978182979182980182981182982182983182984182985182986182987182988182989182990182991182992182993182994182995182996182997182998182999183000183001183002183003183004183005183006183007183008183009183010183011183012183013183014183015183016183017183018183019183020183021183022183023183024183025183026183027183028183029183030183031183032183033183034183035183036183037183038183039183040183041183042183043183044183045183046183047183048183049183050183051183052183053183054183055183056183057183058183059183060183061183062183063183064183065183066183067183068183069183070183071183072183073183074183075183076183077183078183079183080183081183082183083183084183085183086183087183088183089183090183091183092183093183094183095183096183097183098183099183100183101183102183103183104183105183106183107183108183109183110183111183112183113183114183115183116183117183118183119183120183121183122183123183124183125183126183127183128183129183130183131183132183133183134183135183136183137183138183139183140183141183142183143183144183145183146183147183148183149183150183151183152183153183154183155183156183157183158183159183160183161183162183163183164183165183166183167183168183169183170183171183172183173183174183175183176183177183178183179183180183181183182183183183184183185183186183187183188183189183190183191183192183193183194183195183196183197183198183199183200183201183202183203183204183205183206183207183208183209183210183211183212183213183214183215183216183217183218183219183220183221183222183223183224183225183226183227183228183229183230183231183232183233183234183235183236183237183238183239183240183241183242183243183244183245183246183247183248183249183250183251183252183253183254183255183256183257183258183259183260183261183262183263183264183265183266183267183268183269183270183271183272183273183274183275183276183277183278183279183280183281183282183283183284183285183286183287183288183289183290183291183292183293183294183295183296183297183298183299183300183301183302183303183304183305183306183307183308183309183310183311183312183313183314183315183316183317183318183319183320183321183322183323183324183325183326183327183328183329183330183331183332183333183334183335183336183337183338183339183340183341183342183343183344183345183346183347183348183349183350183351183352183353183354183355183356183357183358183359183360183361183362183363183364183365183366183367183368183369183370183371183372183373183374183375183376183377183378183379183380183381183382183383183384183385183386183387183388183389183390183391183392183393183394183395183396183397183398183399183400183401183402183403183404183405183406183407183408183409183410183411183412183413183414183415183416183417183418183419183420183421183422183423183424183425183426183427183428183429183430183431183432183433183434183435183436183437183438183439183440183441183442183443183444183445183446183447183448183449183450183451183452183453183454183455183456183457183458183459183460183461183462183463183464183465183466183467183468183469183470183471183472183473183474183475183476183477183478183479183480183481183482183483183484183485183486183487183488183489183490183491183492183493183494183495183496183497183498183499183500183501183502183503183504183505183506183507183508183509183510183511183512183513183514183515183516183517183518183519183520183521183522183523183524183525183526183527183528183529183530183531183532183533183534183535183536183537183538183539183540183541183542183543183544183545183546183547183548183549183550183551183552183553183554183555183556183557183558183559183560183561183562183563183564183565183566183567183568183569183570183571183572183573183574183575183576183577183578183579183580183581183582183583183584183585183586183587183588183589183590183591183592183593183594183595183596183597183598183599183600183601183602183603183604183605183606183607183608183609183610183611183612183613183614183615183616183617183618183619183620183621183622183623183624183625183626183627183628183629183630183631183632183633183634183635183636183637183638183639183640183641183642183643183644183645183646183647183648183649183650183651183652183653183654183655183656183657183658183659183660183661183662183663183664183665183666183667183668183669183670183671183672183673183674183675183676183677183678183679183680183681183682183683183684183685183686183687183688183689183690183691183692183693183694183695183696183697183698183699183700183701183702183703183704183705183706183707183708183709183710183711183712183713183714183715183716183717183718183719183720183721183722183723183724183725183726183727183728183729183730183731183732183733183734183735183736183737183738183739183740183741183742183743183744183745183746183747183748183749183750183751183752183753183754183755183756183757183758183759183760183761183762183763183764183765183766183767183768183769183770183771183772183773183774183775183776183777183778183779183780183781183782183783183784183785183786183787183788183789183790183791183792183793183794183795183796183797183798183799183800183801183802183803183804183805183806183807183808183809183810183811183812183813183814183815183816183817183818183819183820183821183822183823183824183825183826183827183828183829183830183831183832183833183834183835183836183837183838183839183840183841183842183843183844183845183846183847183848183849183850183851183852183853183854183855183856183857183858183859183860183861183862183863183864183865183866183867183868183869183870183871183872183873183874183875183876183877183878183879183880183881183882183883183884183885183886183887183888183889183890183891183892183893183894183895183896183897183898183899183900183901183902183903183904183905183906183907183908183909183910183911183912183913183914183915183916183917183918183919183920183921183922183923183924183925183926183927183928183929183930183931183932183933183934183935183936183937183938183939183940183941183942183943183944183945183946183947183948183949183950183951183952183953183954183955183956183957183958183959183960183961183962183963183964183965183966183967183968183969183970183971183972183973183974183975183976183977183978183979183980183981183982183983183984183985183986183987183988183989183990183991183992183993183994183995183996183997183998183999184000184001184002184003184004184005184006184007184008184009184010184011184012184013184014184015184016184017184018184019184020184021184022184023184024184025184026184027184028184029184030184031184032184033184034184035184036184037184038184039184040184041184042184043184044184045184046184047184048184049184050184051184052184053184054184055184056184057184058184059184060184061184062184063184064184065184066184067184068184069184070184071184072184073184074184075184076184077184078184079184080184081184082184083184084184085184086184087184088184089184090184091184092184093184094184095184096184097184098184099184100184101184102184103184104184105184106184107184108184109184110184111184112184113184114184115184116184117184118184119184120184121184122184123184124184125184126184127184128184129184130184131184132184133184134184135184136184137184138184139184140184141184142184143184144184145184146184147184148184149184150184151184152184153184154184155184156184157184158184159184160184161184162184163184164184165184166184167184168184169184170184171184172184173184174184175184176184177184178184179184180184181184182184183184184184185184186184187184188184189184190184191184192184193184194184195184196184197184198184199184200184201184202184203184204184205184206184207184208184209184210184211184212184213184214184215184216184217184218184219184220184221184222184223184224184225184226184227184228184229184230184231184232184233184234184235184236184237184238184239184240184241184242184243184244184245184246184247184248184249184250184251184252184253184254184255184256184257184258184259184260184261184262184263184264184265184266184267184268184269184270184271184272184273184274184275184276184277184278184279184280184281184282184283184284184285184286184287184288184289184290184291184292184293184294184295184296184297184298184299184300184301184302184303184304184305184306184307184308184309184310184311184312184313184314184315184316184317184318184319184320184321184322184323184324184325184326184327184328184329184330184331184332184333184334184335184336184337184338184339184340184341184342184343184344184345184346184347184348184349184350184351184352184353184354184355184356184357184358184359184360184361184362184363184364184365184366184367184368184369184370184371184372184373184374184375184376184377184378184379184380184381184382184383184384184385184386184387184388184389184390184391184392184393184394184395184396184397184398184399184400184401184402184403184404184405184406184407184408184409184410184411184412184413184414184415184416184417184418184419184420184421184422184423184424184425184426184427184428184429184430184431184432184433184434184435184436184437184438184439184440184441184442184443184444184445184446184447184448184449184450184451184452184453184454184455184456184457184458184459184460184461184462184463184464184465184466184467184468184469184470184471184472184473184474184475184476184477184478184479184480184481184482184483184484184485184486184487184488184489184490184491184492184493184494184495184496184497184498184499184500184501184502184503184504184505184506184507184508184509184510184511184512184513184514184515184516184517184518184519184520184521184522184523184524184525184526184527184528184529184530184531184532184533184534184535184536184537184538184539184540184541184542184543184544184545184546184547184548184549184550184551184552184553184554184555184556184557184558184559184560184561184562184563184564184565184566184567184568184569184570184571184572184573184574184575184576184577184578184579184580184581184582184583184584184585184586184587184588184589184590184591184592184593184594184595184596184597184598184599184600184601184602184603184604184605184606184607184608184609184610184611184612184613184614184615184616184617184618184619184620184621184622184623184624184625184626184627184628184629184630184631184632184633184634184635184636184637184638184639184640184641184642184643184644184645184646184647184648184649184650184651184652184653184654184655184656184657184658184659184660184661184662184663184664184665184666184667184668184669184670184671184672184673184674184675184676184677184678184679184680184681184682184683184684184685184686184687184688184689184690184691184692184693184694184695184696184697184698184699184700184701184702184703184704184705184706184707184708184709184710184711184712184713184714184715184716184717184718184719184720184721184722184723184724184725184726184727184728184729184730184731184732184733184734184735184736184737184738184739184740184741184742184743184744184745184746184747184748184749184750184751184752184753184754184755184756184757184758184759184760184761184762184763184764184765184766184767184768184769184770184771184772184773184774184775184776184777184778184779184780184781184782184783184784184785184786184787184788184789184790184791184792184793184794184795184796184797184798184799184800184801184802184803184804184805184806184807184808184809184810184811184812184813184814184815184816184817184818184819184820184821184822184823184824184825184826184827184828184829184830184831184832184833184834184835184836184837184838184839184840184841184842184843184844184845184846184847184848184849184850184851184852184853184854184855184856184857184858184859184860184861184862184863184864184865184866184867184868184869184870184871184872184873184874184875184876184877184878184879184880184881184882184883184884184885184886184887184888184889184890184891184892184893184894184895184896184897184898184899184900184901184902184903184904184905184906184907184908184909184910184911184912184913184914184915184916184917184918184919184920184921184922184923184924184925184926184927184928184929184930184931184932184933184934184935184936184937184938184939184940184941184942184943184944184945184946184947184948184949184950184951184952184953184954184955184956184957184958184959184960184961184962184963184964184965184966184967184968184969184970184971184972184973184974184975184976184977184978184979184980184981184982184983184984184985184986184987184988184989184990184991184992184993184994184995184996184997184998184999185000185001185002185003185004185005185006185007185008185009185010185011185012185013185014185015185016185017185018185019185020185021185022185023185024185025185026185027185028185029185030185031185032185033185034185035185036185037185038185039185040185041185042185043185044185045185046185047185048185049185050185051185052185053185054185055185056185057185058185059185060185061185062185063185064185065185066185067185068185069185070185071185072185073185074185075185076185077185078185079185080185081185082185083185084185085185086185087185088185089185090185091185092185093185094185095185096185097185098185099185100185101185102185103185104185105185106185107185108185109185110185111185112185113185114185115185116185117185118185119185120185121185122185123185124185125185126185127185128185129185130185131185132185133185134185135185136185137185138185139185140185141185142185143185144185145185146185147185148185149185150185151185152185153185154185155185156185157185158185159185160185161185162185163185164185165185166185167185168185169185170185171185172185173185174185175185176185177185178185179185180185181185182185183185184185185185186185187185188185189185190185191185192185193185194185195185196185197185198185199185200185201185202185203185204185205185206185207185208185209185210185211185212185213185214185215185216185217185218185219185220185221185222185223185224185225185226185227185228185229185230185231185232185233185234185235185236185237185238185239185240185241185242185243185244185245185246185247185248185249185250185251185252185253185254185255185256185257185258185259185260185261185262185263185264185265185266185267185268185269185270185271185272185273185274185275185276185277185278185279185280185281185282185283185284185285185286185287185288185289185290185291185292185293185294185295185296185297185298185299185300185301185302185303185304185305185306185307185308185309185310185311185312185313185314185315185316185317185318185319185320185321185322185323185324185325185326185327185328185329185330185331185332185333185334185335185336185337185338185339185340185341185342185343185344185345185346185347185348185349185350185351185352185353185354185355185356185357185358185359185360185361185362185363185364185365185366185367185368185369185370185371185372185373185374185375185376185377185378185379185380185381185382185383185384185385185386185387185388185389185390185391185392185393185394185395185396185397185398185399185400185401185402185403185404185405185406185407185408185409185410185411185412185413185414185415185416185417185418185419185420185421185422185423185424185425185426185427185428185429185430185431185432185433185434185435185436185437185438185439185440185441185442185443185444185445185446185447185448185449185450185451185452185453185454185455185456185457185458185459185460185461185462185463185464185465185466185467185468185469185470185471185472185473185474185475185476185477185478185479185480185481185482185483185484185485185486185487185488185489185490185491185492185493185494185495185496185497185498185499185500185501185502185503185504185505185506185507185508185509185510185511185512185513185514185515185516185517185518185519185520185521185522185523185524185525185526185527185528185529185530185531185532185533185534185535185536185537185538185539185540185541185542185543185544185545185546185547185548185549185550185551185552185553185554185555185556185557185558185559185560185561185562185563185564185565185566185567185568185569185570185571185572185573185574185575185576185577185578185579185580185581185582185583185584185585185586185587185588185589185590185591185592185593185594185595185596185597185598185599185600185601185602185603185604185605185606185607185608185609185610185611185612185613185614185615185616185617185618185619185620185621185622185623185624185625185626185627185628185629185630185631185632185633185634185635185636185637185638185639185640185641185642185643185644185645185646185647185648185649185650185651185652185653185654185655185656185657185658185659185660185661185662185663185664185665185666185667185668185669185670185671185672185673185674185675185676185677185678185679185680185681185682185683185684185685185686185687185688185689185690185691185692185693185694185695185696185697185698185699185700185701185702185703185704185705185706185707185708185709185710185711185712185713185714185715185716185717185718185719185720185721185722185723185724185725185726185727185728185729185730185731185732185733185734185735185736185737185738185739185740185741185742185743185744185745185746185747185748185749185750185751185752185753185754185755185756185757185758185759185760185761185762185763185764185765185766185767185768185769185770185771185772185773185774185775185776185777185778185779185780185781185782185783185784185785185786185787185788185789185790185791185792185793185794185795185796185797185798185799185800185801185802185803185804185805185806185807185808185809185810185811185812185813185814185815185816185817185818185819185820185821185822185823185824185825185826185827185828185829185830185831185832185833185834185835185836185837185838185839185840185841185842185843185844185845185846185847185848185849185850185851185852185853185854185855185856185857185858185859185860185861185862185863185864185865185866185867185868185869185870185871185872185873185874185875185876185877185878185879185880185881185882185883185884185885185886185887185888185889185890185891185892185893185894185895185896185897185898185899185900185901185902185903185904185905185906185907185908185909185910185911185912185913185914185915185916185917185918185919185920185921185922185923185924185925185926185927185928185929185930185931185932185933185934185935185936185937185938185939185940185941185942185943185944185945185946185947185948185949185950185951185952185953185954185955185956185957185958185959185960185961185962185963185964185965185966185967185968185969185970185971185972185973185974185975185976185977185978185979185980185981185982185983185984185985185986185987185988185989185990185991185992185993185994185995185996185997185998185999186000186001186002186003186004186005186006186007186008186009186010186011186012186013186014186015186016186017186018186019186020186021186022186023186024186025186026186027186028186029186030186031186032186033186034186035186036186037186038186039186040186041186042186043186044186045186046186047186048186049186050186051186052186053186054186055186056186057186058186059186060186061186062186063186064186065186066186067186068186069186070186071186072186073186074186075186076186077186078186079186080186081186082186083186084186085186086186087186088186089186090186091186092186093186094186095186096186097186098186099186100186101186102186103186104186105186106186107186108186109186110186111186112186113186114186115186116186117186118186119186120186121186122186123186124186125186126186127186128186129186130186131186132186133186134186135186136186137186138186139186140186141186142186143186144186145186146186147186148186149186150186151186152186153186154186155186156186157186158186159186160186161186162186163186164186165186166186167186168186169186170186171186172186173186174186175186176186177186178186179186180186181186182186183186184186185186186186187186188186189186190186191186192186193186194186195186196186197186198186199186200186201186202186203186204186205186206186207186208186209186210186211186212186213186214186215186216186217186218186219186220186221186222186223186224186225186226186227186228186229186230186231186232186233186234186235186236186237186238186239186240186241186242186243186244186245186246186247186248186249186250186251186252186253186254186255186256186257186258186259186260186261186262186263186264186265186266186267186268186269186270186271186272186273186274186275186276186277186278186279186280186281186282186283186284186285186286186287186288186289186290186291186292186293186294186295186296186297186298186299186300186301186302186303186304186305186306186307186308186309186310186311186312186313186314186315186316186317186318186319186320186321186322186323186324186325186326186327186328186329186330186331186332186333186334186335186336186337186338186339186340186341186342186343186344186345186346186347186348186349186350186351186352186353186354186355186356186357186358186359186360186361186362186363186364186365186366186367186368186369186370186371186372186373186374186375186376186377186378186379186380186381186382186383186384186385186386186387186388186389186390186391186392186393186394186395186396186397186398186399186400186401186402186403186404186405186406186407186408186409186410186411186412186413186414186415186416186417186418186419186420186421186422186423186424186425186426186427186428186429186430186431186432186433186434186435186436186437186438186439186440186441186442186443186444186445186446186447186448186449186450186451186452186453186454186455186456186457186458186459186460186461186462186463186464186465186466186467186468186469186470186471186472186473186474186475186476186477186478186479186480186481186482186483186484186485186486186487186488186489186490186491186492186493186494186495186496186497186498186499186500186501186502186503186504186505186506186507186508186509186510186511186512186513186514186515186516186517186518186519186520186521186522186523186524186525186526186527186528186529186530186531186532186533186534186535186536186537186538186539186540186541186542186543186544186545186546186547186548186549186550186551186552186553186554186555186556186557186558186559186560186561186562186563186564186565186566186567186568186569186570186571186572186573186574186575186576186577186578186579186580186581186582186583186584186585186586186587186588186589186590186591186592186593186594186595186596186597186598186599186600186601186602186603186604186605186606186607186608186609186610186611186612186613186614186615186616186617186618186619186620186621186622186623186624186625186626186627186628186629186630186631186632186633186634186635186636186637186638186639186640186641186642186643186644186645186646186647186648186649186650186651186652186653186654186655186656186657186658186659186660186661186662186663186664186665186666186667186668186669186670186671186672186673186674186675186676186677186678186679186680186681186682186683186684186685186686186687186688186689186690186691186692186693186694186695186696186697186698186699186700186701186702186703186704186705186706186707186708186709186710186711186712186713186714186715186716186717186718186719186720186721186722186723186724186725186726186727186728186729186730186731186732186733186734186735186736186737186738186739186740186741186742186743186744186745186746186747186748186749186750186751186752186753186754186755186756186757186758186759186760186761186762186763186764186765186766186767186768186769186770186771186772186773186774186775186776186777186778186779186780186781186782186783186784186785186786186787186788186789186790186791186792186793186794186795186796186797186798186799186800186801186802186803186804186805186806186807186808186809186810186811186812186813186814186815186816186817186818186819186820186821186822186823186824186825186826186827186828186829186830186831186832186833186834186835186836186837186838186839186840186841186842186843186844186845186846186847186848186849186850186851186852186853186854186855186856186857186858186859186860186861186862186863186864186865186866186867186868186869186870186871186872186873186874186875186876186877186878186879186880186881186882186883186884186885186886186887186888186889186890186891186892186893186894186895186896186897186898186899186900186901186902186903186904186905186906186907186908186909186910186911186912186913186914186915186916186917186918186919186920186921186922186923186924186925186926186927186928186929186930186931186932186933186934186935186936186937186938186939186940186941186942186943186944186945186946186947186948186949186950186951186952186953186954186955186956186957186958186959186960186961186962186963186964186965186966186967186968186969186970186971186972186973186974186975186976186977186978186979186980186981186982186983186984186985186986186987186988186989186990186991186992186993186994186995186996186997186998186999187000187001187002187003187004187005187006187007187008187009187010187011187012187013187014187015187016187017187018187019187020187021187022187023187024187025187026187027187028187029187030187031187032187033187034187035187036187037187038187039187040187041187042187043187044187045187046187047187048187049187050187051187052187053187054187055187056187057187058187059187060187061187062187063187064187065187066187067187068187069187070187071187072187073187074187075187076187077187078187079187080187081187082187083187084187085187086187087187088187089187090187091187092187093187094187095187096187097187098187099187100187101187102187103187104187105187106187107187108187109187110187111187112187113187114187115187116187117187118187119187120187121187122187123187124187125187126187127187128187129187130187131187132187133187134187135187136187137187138187139187140187141187142187143187144187145187146187147187148187149187150187151187152187153187154187155187156187157187158187159187160187161187162187163187164187165187166187167187168187169187170187171187172187173187174187175187176187177187178187179187180187181187182187183187184187185187186187187187188187189187190187191187192187193187194187195187196187197187198187199187200187201187202187203187204187205187206187207187208187209187210187211187212187213187214187215187216187217187218187219187220187221187222187223187224187225187226187227187228187229187230187231187232187233187234187235187236187237187238187239187240187241187242187243187244187245187246187247187248187249187250187251187252187253187254187255187256187257187258187259187260187261187262187263187264187265187266187267187268187269187270187271187272187273187274187275187276187277187278187279187280187281187282187283187284187285187286187287187288187289187290187291187292187293187294187295187296187297187298187299187300187301187302187303187304187305187306187307187308187309187310187311187312187313187314187315187316187317187318187319187320187321187322187323187324187325187326187327187328187329187330187331187332187333187334187335187336187337187338187339187340187341187342187343187344187345187346187347187348187349187350187351187352187353187354187355187356187357187358187359187360187361187362187363187364187365187366187367187368187369187370187371187372187373187374187375187376187377187378187379187380187381187382187383187384187385187386187387187388187389187390187391187392187393187394187395187396187397187398187399187400187401187402187403187404187405187406187407187408187409187410187411187412187413187414187415187416187417187418187419187420187421187422187423187424187425187426187427187428187429187430187431187432187433187434187435187436187437187438187439187440187441187442187443187444187445187446187447187448187449187450187451187452187453187454187455187456187457187458187459187460187461187462187463187464187465187466187467187468187469187470187471187472187473187474187475187476187477187478187479187480187481187482187483187484187485187486187487187488187489187490187491187492187493187494187495187496187497187498187499187500187501187502187503187504187505187506187507187508187509187510187511187512187513187514187515187516187517187518187519187520187521187522187523187524187525187526187527187528187529187530187531187532187533187534187535187536187537187538187539187540187541187542187543187544187545187546187547187548187549187550187551187552187553187554187555187556187557187558187559187560187561187562187563187564187565187566187567187568187569187570187571187572187573187574187575187576187577187578187579187580187581187582187583187584187585187586187587187588187589187590187591187592187593187594187595187596187597187598187599187600187601187602187603187604187605187606187607187608187609187610187611187612187613187614187615187616187617187618187619187620187621187622187623187624187625187626187627187628187629187630187631187632187633187634187635187636187637187638187639187640187641187642187643187644187645187646187647187648187649187650187651187652187653187654187655187656187657187658187659187660187661187662187663187664187665187666187667187668187669187670187671187672187673187674187675187676187677187678187679187680187681187682187683187684187685187686187687187688187689187690187691187692187693187694187695187696187697187698187699187700187701187702187703187704187705187706187707187708187709187710187711187712187713187714187715187716187717187718187719187720187721187722187723187724187725187726187727187728187729187730187731187732187733187734187735187736187737187738187739187740187741187742187743187744187745187746187747187748187749187750187751187752187753187754187755187756187757187758187759187760187761187762187763187764187765187766187767187768187769187770187771187772187773187774187775187776187777187778187779187780187781187782187783187784187785187786187787187788187789187790187791187792187793187794187795187796187797187798187799187800187801187802187803187804187805187806187807187808187809187810187811187812187813187814187815187816187817187818187819187820187821187822187823187824187825187826187827187828187829187830187831187832187833187834187835187836187837187838187839187840187841187842187843187844187845187846187847187848187849187850187851187852187853187854187855187856187857187858187859187860187861187862187863187864187865187866187867187868187869187870187871187872187873187874187875187876187877187878187879187880187881187882187883187884187885187886187887187888187889187890187891187892187893187894187895187896187897187898187899187900187901187902187903187904187905187906187907187908187909187910187911187912187913187914187915187916187917187918187919187920187921187922187923187924187925187926187927187928187929187930187931187932187933187934187935187936187937187938187939187940187941187942187943187944187945187946187947187948187949187950187951187952187953187954187955187956187957187958187959187960187961187962187963187964187965187966187967187968187969187970187971187972187973187974187975187976187977187978187979187980187981187982187983187984187985187986187987187988187989187990187991187992187993187994187995187996187997187998187999188000188001188002188003188004188005188006188007188008188009188010188011188012188013188014188015188016188017188018188019188020188021188022188023188024188025188026188027188028188029188030188031188032188033188034188035188036188037188038188039188040188041188042188043188044188045188046188047188048188049188050188051188052188053188054188055188056188057188058188059188060188061188062188063188064188065188066188067188068188069188070188071188072188073188074188075188076188077188078188079188080188081188082188083188084188085188086188087188088188089188090188091188092188093188094188095188096188097188098188099188100188101188102188103188104188105188106188107188108188109188110188111188112188113188114188115188116188117188118188119188120188121188122188123188124188125188126188127188128188129188130188131188132188133188134188135188136188137188138188139188140188141188142188143188144188145188146188147188148188149188150188151188152188153188154188155188156188157188158188159188160188161188162188163188164188165188166188167188168188169188170188171188172188173188174188175188176188177188178188179188180188181188182188183188184188185188186188187188188188189188190188191188192188193188194188195188196188197188198188199188200188201188202188203188204188205188206188207188208188209188210188211188212188213188214188215188216188217188218188219188220188221188222188223188224188225188226188227188228188229188230188231188232188233188234188235188236188237188238188239188240188241188242188243188244188245188246188247188248188249188250188251188252188253188254188255188256188257188258188259188260188261188262188263188264188265188266188267188268188269188270188271188272188273188274188275188276188277188278188279188280188281188282188283188284188285188286188287188288188289188290188291188292188293188294188295188296188297188298188299188300188301188302188303188304188305188306188307188308188309188310188311188312188313188314188315188316188317188318188319188320188321188322188323188324188325188326188327188328188329188330188331188332188333188334188335188336188337188338188339188340188341188342188343188344188345188346188347188348188349188350188351188352188353188354188355188356188357188358188359188360188361188362188363188364188365188366188367188368188369188370188371188372188373188374188375188376188377188378188379188380188381188382188383188384188385188386188387188388188389188390188391188392188393188394188395188396188397188398188399188400188401188402188403188404188405188406188407188408188409188410188411188412188413188414188415188416188417188418188419188420188421188422188423188424188425188426188427188428188429188430188431188432188433188434188435188436188437188438188439188440188441188442188443188444188445188446188447188448188449188450188451188452188453188454188455188456188457188458188459188460188461188462188463188464188465188466188467188468188469188470188471188472188473188474188475188476188477188478188479188480188481188482188483188484188485188486188487188488188489188490188491188492188493188494188495188496188497188498188499188500188501188502188503188504188505188506188507188508188509188510188511188512188513188514188515188516188517188518188519188520188521188522188523188524188525188526188527188528188529188530188531188532188533188534188535188536188537188538188539188540188541188542188543188544188545188546188547188548188549188550188551188552188553188554188555188556188557188558188559188560188561188562188563188564188565188566188567188568188569188570188571188572188573188574188575188576188577188578188579188580188581188582188583188584188585188586188587188588188589188590188591188592188593188594188595188596188597188598188599188600188601188602188603188604188605188606188607188608188609188610188611188612188613188614188615188616188617188618188619188620188621188622188623188624188625188626188627188628188629188630188631188632188633188634188635188636188637188638188639188640188641188642188643188644188645188646188647188648188649188650188651188652188653188654188655188656188657188658188659188660188661188662188663188664188665188666188667188668188669188670188671188672188673188674188675188676188677188678188679188680188681188682188683188684188685188686188687188688188689188690188691188692188693188694188695188696188697188698188699188700188701188702188703188704188705188706188707188708188709188710188711188712188713188714188715188716188717188718188719188720188721188722188723188724188725188726188727188728188729188730188731188732188733188734188735188736188737188738188739188740188741188742188743188744188745188746188747188748188749188750188751188752188753188754188755188756188757188758188759188760188761188762188763188764188765188766188767188768188769188770188771188772188773188774188775188776188777188778188779188780188781188782188783188784188785188786188787188788188789188790188791188792188793188794188795188796188797188798188799188800188801188802188803188804188805188806188807188808188809188810188811188812188813188814188815188816188817188818188819188820188821188822188823188824188825188826188827188828188829188830188831188832188833188834188835188836188837188838188839188840188841188842188843188844188845188846188847188848188849188850188851188852188853188854188855188856188857188858188859188860188861188862188863188864188865188866188867188868188869188870188871188872188873188874188875188876188877188878188879188880188881188882188883188884188885188886188887188888188889188890188891188892188893188894188895188896188897188898188899188900188901188902188903188904188905188906188907188908188909188910188911188912188913188914188915188916188917188918188919188920188921188922188923188924188925188926188927188928188929188930188931188932188933188934188935188936188937188938188939188940188941188942188943188944188945188946188947188948188949188950188951188952188953188954188955188956188957188958188959188960188961188962188963188964188965188966188967188968188969188970188971188972188973188974188975188976188977188978188979188980188981188982188983188984188985188986188987188988188989188990188991188992188993188994188995188996188997188998188999189000189001189002189003189004189005189006189007189008189009189010189011189012189013189014189015189016189017189018189019189020189021189022189023189024189025189026189027189028189029189030189031189032189033189034189035189036189037189038189039189040189041189042189043189044189045189046189047189048189049189050189051189052189053189054189055189056189057189058189059189060189061189062189063189064189065189066189067189068189069189070189071189072189073189074189075189076189077189078189079189080189081189082189083189084189085189086189087189088189089189090189091189092189093189094189095189096189097189098189099189100189101189102189103189104189105189106189107189108189109189110189111189112189113189114189115189116189117189118189119189120189121189122189123189124189125189126189127189128189129189130189131189132189133189134189135189136189137189138189139189140189141189142189143189144189145189146189147189148189149189150189151189152189153189154189155189156189157189158189159189160189161189162189163189164189165189166189167189168189169189170189171189172189173189174189175189176189177189178189179189180189181189182189183189184189185189186189187189188189189189190189191189192189193189194189195189196189197189198189199189200189201189202189203189204189205189206189207189208189209189210189211189212189213189214189215189216189217189218189219189220189221189222189223189224189225189226189227189228189229189230189231189232189233189234189235189236189237189238189239189240189241189242189243189244189245189246189247189248189249189250189251189252189253189254189255189256189257189258189259189260189261189262189263189264189265189266189267189268189269189270189271189272189273189274189275189276189277189278189279189280189281189282189283189284189285189286189287189288189289189290189291189292189293189294189295189296189297189298189299189300189301189302189303189304189305189306189307189308189309189310189311189312189313189314189315189316189317189318189319189320189321189322189323189324189325189326189327189328189329189330189331189332189333189334189335189336189337189338189339189340189341189342189343189344189345189346189347189348189349189350189351189352189353189354189355189356189357189358189359189360189361189362189363189364189365189366189367189368189369189370189371189372189373189374189375189376189377189378189379189380189381189382189383189384189385189386189387189388189389189390189391189392189393189394189395189396189397189398189399189400189401189402189403189404189405189406189407189408189409189410189411189412189413189414189415189416189417189418189419189420189421189422189423189424189425189426189427189428189429189430189431189432189433189434189435189436189437189438189439189440189441189442189443189444189445189446189447189448189449189450189451189452189453189454189455189456189457189458189459189460189461189462189463189464189465189466189467189468189469189470189471189472189473189474189475189476189477189478189479189480189481189482189483189484189485189486189487189488189489189490189491189492189493189494189495189496189497189498189499189500189501189502189503189504189505189506189507189508189509189510189511189512189513189514189515189516189517189518189519189520189521189522189523189524189525189526189527189528189529189530189531189532189533189534189535189536189537189538189539189540189541189542189543189544189545189546189547189548189549189550189551189552189553189554189555189556189557189558189559189560189561189562189563189564189565189566189567189568189569189570189571189572189573189574189575189576189577189578189579189580189581189582189583189584189585189586189587189588189589189590189591189592189593189594189595189596189597189598189599189600189601189602189603189604189605189606189607189608189609189610189611189612189613189614189615189616189617189618189619189620189621189622189623189624189625189626189627189628189629189630189631189632189633189634189635189636189637189638189639189640189641189642189643189644189645189646189647189648189649189650189651189652189653189654189655189656189657189658189659189660189661189662189663189664189665189666189667189668189669189670189671189672189673189674189675189676189677189678189679189680189681189682189683189684189685189686189687189688189689189690189691189692189693189694189695189696189697189698189699189700189701189702189703189704189705189706189707189708189709189710189711189712189713189714189715189716189717189718189719189720189721189722189723189724189725189726189727189728189729189730189731189732189733189734189735189736189737189738189739189740189741189742189743189744189745189746189747189748189749189750189751189752189753189754189755189756189757189758189759189760189761189762189763189764189765189766189767189768189769189770189771189772189773189774189775189776189777189778189779189780189781189782189783189784189785189786189787189788189789189790189791189792189793189794189795189796189797189798189799189800189801189802189803189804189805189806189807189808189809189810189811189812189813189814189815189816189817189818189819189820189821189822189823189824189825189826189827189828189829189830189831189832189833189834189835189836189837189838189839189840189841189842189843189844189845189846189847189848189849189850189851189852189853189854189855189856189857189858189859189860189861189862189863189864189865189866189867189868189869189870189871189872189873189874189875189876189877189878189879189880189881189882189883189884189885189886189887189888189889189890189891189892189893189894189895189896189897189898189899189900189901189902189903189904189905189906189907189908189909189910189911189912189913189914189915189916189917189918189919189920189921189922189923189924189925189926189927189928189929189930189931189932189933189934189935189936189937189938189939189940189941189942189943189944189945189946189947189948189949189950189951189952189953189954189955189956189957189958189959189960189961189962189963189964189965189966189967189968189969189970189971189972189973189974189975189976189977189978189979189980189981189982189983189984189985189986189987189988189989189990189991189992189993189994189995189996189997189998189999190000190001190002190003190004190005190006190007190008190009190010190011190012190013190014190015190016190017190018190019190020190021190022190023190024190025190026190027190028190029190030190031190032190033190034190035190036190037190038190039190040190041190042190043190044190045190046190047190048190049190050190051190052190053190054190055190056190057190058190059190060190061190062190063190064190065190066190067190068190069190070190071190072190073190074190075190076190077190078190079190080190081190082190083190084190085190086190087190088190089190090190091190092190093190094190095190096190097190098190099190100190101190102190103190104190105190106190107190108190109190110190111190112190113190114190115190116190117190118190119190120190121190122190123190124190125190126190127190128190129190130190131190132190133190134190135190136190137190138190139190140190141190142190143190144190145190146190147190148190149190150190151190152190153190154190155190156190157190158190159190160190161190162190163190164190165190166190167190168190169190170190171190172190173190174190175190176190177190178190179190180190181190182190183190184190185190186190187190188190189190190190191190192190193190194190195190196190197190198190199190200190201190202190203190204190205190206190207190208190209190210190211190212190213190214190215190216190217190218190219190220190221190222190223190224190225190226190227190228190229190230190231190232190233190234190235190236190237190238190239190240190241190242190243190244190245190246190247190248190249190250190251190252190253190254190255190256190257190258190259190260190261190262190263190264190265190266190267190268190269190270190271190272190273190274190275190276190277190278190279190280190281190282190283190284190285190286190287190288190289190290190291190292190293190294190295190296190297190298190299190300190301190302190303190304190305190306190307190308190309190310190311190312190313190314190315190316190317190318190319190320190321190322190323190324190325190326190327190328190329190330190331190332190333190334190335190336190337190338190339190340190341190342190343190344190345190346190347190348190349190350190351190352190353190354190355190356190357190358190359190360190361190362190363190364190365190366190367190368190369190370190371190372190373190374190375190376190377190378190379190380190381190382190383190384190385190386190387190388190389190390190391190392190393190394190395190396190397190398190399190400190401190402190403190404190405190406190407190408190409190410190411190412190413190414190415190416190417190418190419190420190421190422190423190424190425190426190427190428190429190430190431190432190433190434190435190436190437190438190439190440190441190442190443190444190445190446190447190448190449190450190451190452190453190454190455190456190457190458190459190460190461190462190463190464190465190466190467190468190469190470190471190472190473190474190475190476190477190478190479190480190481190482190483190484190485190486190487190488190489190490190491190492190493190494190495190496190497190498190499190500190501190502190503190504190505190506190507190508190509190510190511190512190513190514190515190516190517190518190519190520190521190522190523190524190525190526190527190528190529190530190531190532190533190534190535190536190537190538190539190540190541190542190543190544190545190546190547190548190549190550190551190552190553190554190555190556190557190558190559190560190561190562190563190564190565190566190567190568190569190570190571190572190573190574190575190576190577190578190579190580190581190582190583190584190585190586190587190588190589190590190591190592190593190594190595190596190597190598190599190600190601190602190603190604190605190606190607190608190609190610190611190612190613190614190615190616190617190618190619190620190621190622190623190624190625190626190627190628190629190630190631190632190633190634190635190636190637190638190639190640190641190642190643190644190645190646190647190648190649190650190651190652190653190654190655190656190657190658190659190660190661190662190663190664190665190666190667190668190669190670190671190672190673190674190675190676190677190678190679190680190681190682190683190684190685190686190687190688190689190690190691190692190693190694190695190696190697190698190699190700190701190702190703190704190705190706190707190708190709190710190711190712190713190714190715190716190717190718190719190720190721190722190723190724190725190726190727190728190729190730190731190732190733190734190735190736190737190738190739190740190741190742190743190744190745190746190747190748190749190750190751190752190753190754190755190756190757190758190759190760190761190762190763190764190765190766190767190768190769190770190771190772190773190774190775190776190777190778190779190780190781190782190783190784190785190786190787190788190789190790190791190792190793190794190795190796190797190798190799190800190801190802190803190804190805190806190807190808190809190810190811190812190813190814190815190816190817190818190819190820190821190822190823190824190825190826190827190828190829190830190831190832190833190834190835190836190837190838190839190840190841190842190843190844190845190846190847190848190849190850190851190852190853190854190855190856190857190858190859190860190861190862190863190864190865190866190867190868190869190870190871190872190873190874190875190876190877190878190879190880190881190882190883190884190885190886190887190888190889190890190891190892190893190894190895190896190897190898190899190900190901190902190903190904190905190906190907190908190909190910190911190912190913190914190915190916190917190918190919190920190921190922190923190924190925190926190927190928190929190930190931190932190933190934190935190936190937190938190939190940190941190942190943190944190945190946190947190948190949190950190951190952190953190954190955190956190957190958190959190960190961190962190963190964190965190966190967190968190969190970190971190972190973190974190975190976190977190978190979190980190981190982190983190984190985190986190987190988190989190990190991190992190993190994190995190996190997190998190999191000191001191002191003191004191005191006191007191008191009191010191011191012191013191014191015191016191017191018191019191020191021191022191023191024191025191026191027191028191029191030191031191032191033191034191035191036191037191038191039191040191041191042191043191044191045191046191047191048191049191050191051191052191053191054191055191056191057191058191059191060191061191062191063191064191065191066191067191068191069191070191071191072191073191074191075191076191077191078191079191080191081191082191083191084191085191086191087191088191089191090191091191092191093191094191095191096191097191098191099191100191101191102191103191104191105191106191107191108191109191110191111191112191113191114191115191116191117191118191119191120191121191122191123191124191125191126191127191128191129191130191131191132191133191134191135191136191137191138191139191140191141191142191143191144191145191146191147191148191149191150191151191152191153191154191155191156191157191158191159191160191161191162191163191164191165191166191167191168191169191170191171191172191173191174191175191176191177191178191179191180191181191182191183191184191185191186191187191188191189191190191191191192191193191194191195191196191197191198191199191200191201191202191203191204191205191206191207191208191209191210191211191212191213191214191215191216191217191218191219191220191221191222191223191224191225191226191227191228191229191230191231191232191233191234191235191236191237191238191239191240191241191242191243191244191245191246191247191248191249191250191251191252191253191254191255191256191257191258191259191260191261191262191263191264191265191266191267191268191269191270191271191272191273191274191275191276191277191278191279191280191281191282191283191284191285191286191287191288191289191290191291191292191293191294191295191296191297191298191299191300191301191302191303191304191305191306191307191308191309191310191311191312191313191314191315191316191317191318191319191320191321191322191323191324191325191326191327191328191329191330191331191332191333191334191335191336191337191338191339191340191341191342191343191344191345191346191347191348191349191350191351191352191353191354191355191356191357191358191359191360191361191362191363191364191365191366191367191368191369191370191371191372191373191374191375191376191377191378191379191380191381191382191383191384191385191386191387191388191389191390191391191392191393191394191395191396191397191398191399191400191401191402191403191404191405191406191407191408191409191410191411191412191413191414191415191416191417191418191419191420191421191422191423191424191425191426191427191428191429191430191431191432191433191434191435191436191437191438191439191440191441191442191443191444191445191446191447191448191449191450191451191452191453191454191455191456191457191458191459191460191461191462191463191464191465191466191467191468191469191470191471191472191473191474191475191476191477191478191479191480191481191482191483191484191485191486191487191488191489191490191491191492191493191494191495191496191497191498191499191500191501191502191503191504191505191506191507191508191509191510191511191512191513191514191515191516191517191518191519191520191521191522191523191524191525191526191527191528191529191530191531191532191533191534191535191536191537191538191539191540191541191542191543191544191545191546191547191548191549191550191551191552191553191554191555191556191557191558191559191560191561191562191563191564191565191566191567191568191569191570191571191572191573191574191575191576191577191578191579191580191581191582191583191584191585191586191587191588191589191590191591191592191593191594191595191596191597191598191599191600191601191602191603191604191605191606191607191608191609191610191611191612191613191614191615191616191617191618191619191620191621191622191623191624191625191626191627191628191629191630191631191632191633191634191635191636191637191638191639191640191641191642191643191644191645191646191647191648191649191650191651191652191653191654191655191656191657191658191659191660191661191662191663191664191665191666191667191668191669191670191671191672191673191674191675191676191677191678191679191680191681191682191683191684191685191686191687191688191689191690191691191692191693191694191695191696191697191698191699191700191701191702191703191704191705191706191707191708191709191710191711191712191713191714191715191716191717191718191719191720191721191722191723191724191725191726191727191728191729191730191731191732191733191734191735191736191737191738191739191740191741191742191743191744191745191746191747191748191749191750191751191752191753191754191755191756191757191758191759191760191761191762191763191764191765191766191767191768191769191770191771191772191773191774191775191776191777191778191779191780191781191782191783191784191785191786191787191788191789191790191791191792191793191794191795191796191797191798191799191800191801191802191803191804191805191806191807191808191809191810191811191812191813191814191815191816191817191818191819191820191821191822191823191824191825191826191827191828191829191830191831191832191833191834191835191836191837191838191839191840191841191842191843191844191845191846191847191848191849191850191851191852191853191854191855191856191857191858191859191860191861191862191863191864191865191866191867191868191869191870191871191872191873191874191875191876191877191878191879191880191881191882191883191884191885191886191887191888191889191890191891191892191893191894191895191896191897191898191899191900191901191902191903191904191905191906191907191908191909191910191911191912191913191914191915191916191917191918191919191920191921191922191923191924191925191926191927191928191929191930191931191932191933191934191935191936191937191938191939191940191941191942191943191944191945191946191947191948191949191950191951191952191953191954191955191956191957191958191959191960191961191962191963191964191965191966191967191968191969191970191971191972191973191974191975191976191977191978191979191980191981191982191983191984191985191986191987191988191989191990191991191992191993191994191995191996191997191998191999192000192001192002192003192004192005192006192007192008192009192010192011192012192013192014192015192016192017192018192019192020192021192022192023192024192025192026192027192028192029192030192031192032192033192034192035192036192037192038192039192040192041192042192043192044192045192046192047192048192049192050192051192052192053192054192055192056192057192058192059192060192061192062192063192064192065192066192067192068192069192070192071192072192073192074192075192076192077192078192079192080192081192082192083192084192085192086192087192088192089192090192091192092192093192094192095192096192097192098192099192100192101192102192103192104192105192106192107192108192109192110192111192112192113192114192115192116192117192118192119192120192121192122192123192124192125192126192127192128192129192130192131192132192133192134192135192136192137192138192139192140192141192142192143192144192145192146192147192148192149192150192151192152192153192154192155192156192157192158192159192160192161192162192163192164192165192166192167192168192169192170192171192172192173192174192175192176192177192178192179192180192181192182192183192184192185192186192187192188192189192190192191192192192193192194192195192196192197192198192199192200192201192202192203192204192205192206192207192208192209192210192211192212192213192214192215192216192217192218192219192220192221192222192223192224192225192226192227192228192229192230192231192232192233192234192235192236192237192238192239192240192241192242192243192244192245192246192247192248192249192250192251192252192253192254192255192256192257192258192259192260192261192262192263192264192265192266192267192268192269192270192271192272192273192274192275192276192277192278192279192280192281192282192283192284192285192286192287192288192289192290192291192292192293192294192295192296192297192298192299192300192301192302192303192304192305192306192307192308192309192310192311192312192313192314192315192316192317192318192319192320192321192322192323192324192325192326192327192328192329192330192331192332192333192334192335192336192337192338192339192340192341192342192343192344192345192346192347192348192349192350192351192352192353192354192355192356192357192358192359192360192361192362192363192364192365192366192367192368192369192370192371192372192373192374192375192376192377192378192379192380192381192382192383192384192385192386192387192388192389192390192391192392192393192394192395192396192397192398192399192400192401192402192403192404192405192406192407192408192409192410192411192412192413192414192415192416192417192418192419192420192421192422192423192424192425192426192427192428192429192430192431192432192433192434192435192436192437192438192439192440192441192442192443192444192445192446192447192448192449192450192451192452192453192454192455192456192457192458192459192460192461192462192463192464192465192466192467192468192469192470192471192472192473192474192475192476192477192478192479192480192481192482192483192484192485192486192487192488192489192490192491192492192493192494192495192496192497192498192499192500192501192502192503192504192505192506192507192508192509192510192511192512192513192514192515192516192517192518192519192520192521192522192523192524192525192526192527192528192529192530192531192532192533192534192535192536192537192538192539192540192541192542192543192544192545192546192547192548192549192550192551192552192553192554192555192556192557192558192559192560192561192562192563192564192565192566192567192568192569192570192571192572192573192574192575192576192577192578192579192580192581192582192583192584192585192586192587192588192589192590192591192592192593192594192595192596192597192598192599192600192601192602192603192604192605192606192607192608192609192610192611192612192613192614192615192616192617192618192619192620192621192622192623192624192625192626192627192628192629192630192631192632192633192634192635192636192637192638192639192640192641192642192643192644192645192646192647192648192649192650192651192652192653192654192655192656192657192658192659192660192661192662192663192664192665192666192667192668192669192670192671192672192673192674192675192676192677192678192679192680192681192682192683192684192685192686192687192688192689192690192691192692192693192694192695192696192697192698192699192700192701192702192703192704192705192706192707192708192709192710192711192712192713192714192715192716192717192718192719192720192721192722192723192724192725192726192727192728192729192730192731192732192733192734192735192736192737192738192739192740192741192742192743192744192745192746192747192748192749192750192751192752192753192754192755192756192757192758192759192760192761192762192763192764192765192766192767192768192769192770192771192772192773192774192775192776192777192778192779192780192781192782192783192784192785192786192787192788192789192790192791192792192793192794192795192796192797192798192799192800192801192802192803192804192805192806192807192808192809192810192811192812192813192814192815192816192817192818192819192820192821192822192823192824192825192826192827192828192829192830192831192832192833192834192835192836192837192838192839192840192841192842192843192844192845192846192847192848192849192850192851192852192853192854192855192856192857192858192859192860192861192862192863192864192865192866192867192868192869192870192871192872192873192874192875192876192877192878192879192880192881192882192883192884192885192886192887192888192889192890192891192892192893192894192895192896192897192898192899192900192901192902192903192904192905192906192907192908192909192910192911192912192913192914192915192916192917192918192919192920192921192922192923192924192925192926192927192928192929192930192931192932192933192934192935192936192937192938192939192940192941192942192943192944192945192946192947192948192949192950192951192952192953192954192955192956192957192958192959192960192961192962192963192964192965192966192967192968192969192970192971192972192973192974192975192976192977192978192979192980192981192982192983192984192985192986192987192988192989192990192991192992192993192994192995192996192997192998192999193000193001193002193003193004193005193006193007193008193009193010193011193012193013193014193015193016193017193018193019193020193021193022193023193024193025193026193027193028193029193030193031193032193033193034193035193036193037193038193039193040193041193042193043193044193045193046193047193048193049193050193051193052193053193054193055193056193057193058193059193060193061193062193063193064193065193066193067193068193069193070193071193072193073193074193075193076193077193078193079193080193081193082193083193084193085193086193087193088193089193090193091193092193093193094193095193096193097193098193099193100193101193102193103193104193105193106193107193108193109193110193111193112193113193114193115193116193117193118193119193120193121193122193123193124193125193126193127193128193129193130193131193132193133193134193135193136193137193138193139193140193141193142193143193144193145193146193147193148193149193150193151193152193153193154193155193156193157193158193159193160193161193162193163193164193165193166193167193168193169193170193171193172193173193174193175193176193177193178193179193180193181193182193183193184193185193186193187193188193189193190193191193192193193193194193195193196193197193198193199193200193201193202193203193204193205193206193207193208193209193210193211193212193213193214193215193216193217193218193219193220193221193222193223193224193225193226193227193228193229193230193231193232193233193234193235193236193237193238193239193240193241193242193243193244193245193246193247193248193249193250193251193252193253193254193255193256193257193258193259193260193261193262193263193264193265193266193267193268193269193270193271193272193273193274193275193276193277193278193279193280193281193282193283193284193285193286193287193288193289193290193291193292193293193294193295193296193297193298193299193300193301193302193303193304193305193306193307193308193309193310193311193312193313193314193315193316193317193318193319193320193321193322193323193324193325193326193327193328193329193330193331193332193333193334193335193336193337193338193339193340193341193342193343193344193345193346193347193348193349193350193351193352193353193354193355193356193357193358193359193360193361193362193363193364193365193366193367193368193369193370193371193372193373193374193375193376193377193378193379193380193381193382193383193384193385193386193387193388193389193390193391193392193393193394193395193396193397193398193399193400193401193402193403193404193405193406193407193408193409193410193411193412193413193414193415193416193417193418193419193420193421193422193423193424193425193426193427193428193429193430193431193432193433193434193435193436193437193438193439193440193441193442193443193444193445193446193447193448193449193450193451193452193453193454193455193456193457193458193459193460193461193462193463193464193465193466193467193468193469193470193471193472193473193474193475193476193477193478193479193480193481193482193483193484193485193486193487193488193489193490193491193492193493193494193495193496193497193498193499193500193501193502193503193504193505193506193507193508193509193510193511193512193513193514193515193516193517193518193519193520193521193522193523193524193525193526193527193528193529193530193531193532193533193534193535193536193537193538193539193540193541193542193543193544193545193546193547193548193549193550193551193552193553193554193555193556193557193558193559193560193561193562193563193564193565193566193567193568193569193570193571193572193573193574193575193576193577193578193579193580193581193582193583193584193585193586193587193588193589193590193591193592193593193594193595193596193597193598193599193600193601193602193603193604193605193606193607193608193609193610193611193612193613193614193615193616193617193618193619193620193621193622193623193624193625193626193627193628193629193630193631193632193633193634193635193636193637193638193639193640193641193642193643193644193645193646193647193648193649193650193651193652193653193654193655193656193657193658193659193660193661193662193663193664193665193666193667193668193669193670193671193672193673193674193675193676193677193678193679193680193681193682193683193684193685193686193687193688193689193690193691193692193693193694193695193696193697193698193699193700193701193702193703193704193705193706193707193708193709193710193711193712193713193714193715193716193717193718193719193720193721193722193723193724193725193726193727193728193729193730193731193732193733193734193735193736193737193738193739193740193741193742193743193744193745193746193747193748193749193750193751193752193753193754193755193756193757193758193759193760193761193762193763193764193765193766193767193768193769193770193771193772193773193774193775193776193777193778193779193780193781193782193783193784193785193786193787193788193789193790193791193792193793193794193795193796193797193798193799193800193801193802193803193804193805193806193807193808193809193810193811193812193813193814193815193816193817193818193819193820193821193822193823193824193825193826193827193828193829193830193831193832193833193834193835193836193837193838193839193840193841193842193843193844193845193846193847193848193849193850193851193852193853193854193855193856193857193858193859193860193861193862193863193864193865193866193867193868193869193870193871193872193873193874193875193876193877193878193879193880193881193882193883193884193885193886193887193888193889193890193891193892193893193894193895193896193897193898193899193900193901193902193903193904193905193906193907193908193909193910193911193912193913193914193915193916193917193918193919193920193921193922193923193924193925193926193927193928193929193930193931193932193933193934193935193936193937193938193939193940193941193942193943193944193945193946193947193948193949193950193951193952193953193954193955193956193957193958193959193960193961193962193963193964193965193966193967193968193969193970193971193972193973193974193975193976193977193978193979193980193981193982193983193984193985193986193987193988193989193990193991193992193993193994193995193996193997193998193999194000194001194002194003194004194005194006194007194008194009194010194011194012194013194014194015194016194017194018194019194020194021194022194023194024194025194026194027194028194029194030194031194032194033194034194035194036194037194038194039194040194041194042194043194044194045194046194047194048194049194050194051194052194053194054194055194056194057194058194059194060194061194062194063194064194065194066194067194068194069194070194071194072194073194074194075194076194077194078194079194080194081194082194083194084194085194086194087194088194089194090194091194092194093194094194095194096194097194098194099194100194101194102194103194104194105194106194107194108194109194110194111194112194113194114194115194116194117194118194119194120194121194122194123194124194125194126194127194128194129194130194131194132194133194134194135194136194137194138194139194140194141194142194143194144194145194146194147194148194149194150194151194152194153194154194155194156194157194158194159194160194161194162194163194164194165194166194167194168194169194170194171194172194173194174194175194176194177194178194179194180194181194182194183194184194185194186194187194188194189194190194191194192194193194194194195194196194197194198194199194200194201194202194203194204194205194206194207194208194209194210194211194212194213194214194215194216194217194218194219194220194221194222194223194224194225194226194227194228194229194230194231194232194233194234194235194236194237194238194239194240194241194242194243194244194245194246194247194248194249194250194251194252194253194254194255194256194257194258194259194260194261194262194263194264194265194266194267194268194269194270194271194272194273194274194275194276194277194278194279194280194281194282194283194284194285194286194287194288194289194290194291194292194293194294194295194296194297194298194299194300194301194302194303194304194305194306194307194308194309194310194311194312194313194314194315194316194317194318194319194320194321194322194323194324194325194326194327194328194329194330194331194332194333194334194335194336194337194338194339194340194341194342194343194344194345194346194347194348194349194350194351194352194353194354194355194356194357194358194359194360194361194362194363194364194365194366194367194368194369194370194371194372194373194374194375194376194377194378194379194380194381194382194383194384194385194386194387194388194389194390194391194392194393194394194395194396194397194398194399194400194401194402194403194404194405194406194407194408194409194410194411194412194413194414194415194416194417194418194419194420194421194422194423194424194425194426194427194428194429194430194431194432194433194434194435194436194437194438194439194440194441194442194443194444194445194446194447194448194449194450194451194452194453194454194455194456194457194458194459194460194461194462194463194464194465194466194467194468194469194470194471194472194473194474194475194476194477194478194479194480194481194482194483194484194485194486194487194488194489194490194491194492194493194494194495194496194497194498194499194500194501194502194503194504194505194506194507194508194509194510194511194512194513194514194515194516194517194518194519194520194521194522194523194524194525194526194527194528194529194530194531194532194533194534194535194536194537194538194539194540194541194542194543194544194545194546194547194548194549194550194551194552194553194554194555194556194557194558194559194560194561194562194563194564194565194566194567194568194569194570194571194572194573194574194575194576194577194578194579194580194581194582194583194584194585194586194587194588194589194590194591194592194593194594194595194596194597194598194599194600194601194602194603194604194605194606194607194608194609194610194611194612194613194614194615194616194617194618194619194620194621194622194623194624194625194626194627194628194629194630194631194632194633194634194635194636194637194638194639194640194641194642194643194644194645194646194647194648194649194650194651194652194653194654194655194656194657194658194659194660194661194662194663194664194665194666194667194668194669194670194671194672194673194674194675194676194677194678194679194680194681194682194683194684194685194686194687194688194689194690194691194692194693194694194695194696194697194698194699194700194701194702194703194704194705194706194707194708194709194710194711194712194713194714194715194716194717194718194719194720194721194722194723194724194725194726194727194728194729194730194731194732194733194734194735194736194737194738194739194740194741194742194743194744194745194746194747194748194749194750194751194752194753194754194755194756194757194758194759194760194761194762194763194764194765194766194767194768194769194770194771194772194773194774194775194776194777194778194779194780194781194782194783194784194785194786194787194788194789194790194791194792194793194794194795194796194797194798194799194800194801194802194803194804194805194806194807194808194809194810194811194812194813194814194815194816194817194818194819194820194821194822194823194824194825194826194827194828194829194830194831194832194833194834194835194836194837194838194839194840194841194842194843194844194845194846194847194848194849194850194851194852194853194854194855194856194857194858194859194860194861194862194863194864194865194866194867194868194869194870194871194872194873194874194875194876194877194878194879194880194881194882194883194884194885194886194887194888194889194890194891194892194893194894194895194896194897194898194899194900194901194902194903194904194905194906194907194908194909194910194911194912194913194914194915194916194917194918194919194920194921194922194923194924194925194926194927194928194929194930194931194932194933194934194935194936194937194938194939194940194941194942194943194944194945194946194947194948194949194950194951194952194953194954194955194956194957194958194959194960194961194962194963194964194965194966194967194968194969194970194971194972194973194974194975194976194977194978194979194980194981194982194983194984194985194986194987194988194989194990194991194992194993194994194995194996194997194998194999195000195001195002195003195004195005195006195007195008195009195010195011195012195013195014195015195016195017195018195019195020195021195022195023195024195025195026195027195028195029195030195031195032195033195034195035195036195037195038195039195040195041195042195043195044195045195046195047195048195049195050195051195052195053195054195055195056195057195058195059195060195061195062195063195064195065195066195067195068195069195070195071195072195073195074195075195076195077195078195079195080195081195082195083195084195085195086195087195088195089195090195091195092195093195094195095195096195097195098195099195100195101195102195103195104195105195106195107195108195109195110195111195112195113195114195115195116195117195118195119195120195121195122195123195124195125195126195127195128195129195130195131195132195133195134195135195136195137195138195139195140195141195142195143195144195145195146195147195148195149195150195151195152195153195154195155195156195157195158195159195160195161195162195163195164195165195166195167195168195169195170195171195172195173195174195175195176195177195178195179195180195181195182195183195184195185195186195187195188195189195190195191195192195193195194195195195196195197195198195199195200195201195202195203195204195205195206195207195208195209195210195211195212195213195214195215195216195217195218195219195220195221195222195223195224195225195226195227195228195229195230195231195232195233195234195235195236195237195238195239195240195241195242195243195244195245195246195247195248195249195250195251195252195253195254195255195256195257195258195259195260195261195262195263195264195265195266195267195268195269195270195271195272195273195274195275195276195277195278195279195280195281195282195283195284195285195286195287195288195289195290195291195292195293195294195295195296195297195298195299195300195301195302195303195304195305195306195307195308195309195310195311195312195313195314195315195316195317195318195319195320195321195322195323195324195325195326195327195328195329195330195331195332195333195334195335195336195337195338195339195340195341195342195343195344195345195346195347195348195349195350195351195352195353195354195355195356195357195358195359195360195361195362195363195364195365195366195367195368195369195370195371195372195373195374195375195376195377195378195379195380195381195382195383195384195385195386195387195388195389195390195391195392195393195394195395195396195397195398195399195400195401195402195403195404195405195406195407195408195409195410195411195412195413195414195415195416195417195418195419195420195421195422195423195424195425195426195427195428195429195430195431195432195433195434195435195436195437195438195439195440195441195442195443195444195445195446195447195448195449195450195451195452195453195454195455195456195457195458195459195460195461195462195463195464195465195466195467195468195469195470195471195472195473195474195475195476195477195478195479195480195481195482195483195484195485195486195487195488195489195490195491195492195493195494195495195496195497195498195499195500195501195502195503195504195505195506195507195508195509195510195511195512195513195514195515195516195517195518195519195520195521195522195523195524195525195526195527195528195529195530195531195532195533195534195535195536195537195538195539195540195541195542195543195544195545195546195547195548195549195550195551195552195553195554195555195556195557195558195559195560195561195562195563195564195565195566195567195568195569195570195571195572195573195574195575195576195577195578195579195580195581195582195583195584195585195586195587195588195589195590195591195592195593195594195595195596195597195598195599195600195601195602195603195604195605195606195607195608195609195610195611195612195613195614195615195616195617195618195619195620195621195622195623195624195625195626195627195628195629195630195631195632195633195634195635195636195637195638195639195640195641195642195643195644195645195646195647195648195649195650195651195652195653195654195655195656195657195658195659195660195661195662195663195664195665195666195667195668195669195670195671195672195673195674195675195676195677195678195679195680195681195682195683195684195685195686195687195688195689195690195691195692195693195694195695195696195697195698195699195700195701195702195703195704195705195706195707195708195709195710195711195712195713195714195715195716195717195718195719195720195721195722195723195724195725195726195727195728195729195730195731195732195733195734195735195736195737195738195739195740195741195742195743195744195745195746195747195748195749195750195751195752195753195754195755195756195757195758195759195760195761195762195763195764195765195766195767195768195769195770195771195772195773195774195775195776195777195778195779195780195781195782195783195784195785195786195787195788195789195790195791195792195793195794195795195796195797195798195799195800195801195802195803195804195805195806195807195808195809195810195811195812195813195814195815195816195817195818195819195820195821195822195823195824195825195826195827195828195829195830195831195832195833195834195835195836195837195838195839195840195841195842195843195844195845195846195847195848195849195850195851195852195853195854195855195856195857195858195859195860195861195862195863195864195865195866195867195868195869195870195871195872195873195874195875195876195877195878195879195880195881195882195883195884195885195886195887195888195889195890195891195892195893195894195895195896195897195898195899195900195901195902195903195904195905195906195907195908195909195910195911195912195913195914195915195916195917195918195919195920195921195922195923195924195925195926195927195928195929195930195931195932195933195934195935195936195937195938195939195940195941195942195943195944195945195946195947195948195949195950195951195952195953195954195955195956195957195958195959195960195961195962195963195964195965195966195967195968195969195970195971195972195973195974195975195976195977195978195979195980195981195982195983195984195985195986195987195988195989195990195991195992195993195994195995195996195997195998195999196000196001196002196003196004196005196006196007196008196009196010196011196012196013196014196015196016196017196018196019196020196021196022196023196024196025196026196027196028196029196030196031196032196033196034196035196036196037196038196039196040196041196042196043196044196045196046196047196048196049196050196051196052196053196054196055196056196057196058196059196060196061196062196063196064196065196066196067196068196069196070196071196072196073196074196075196076196077196078196079196080196081196082196083196084196085196086196087196088196089196090196091196092196093196094196095196096196097196098196099196100196101196102196103196104196105196106196107196108196109196110196111196112196113196114196115196116196117196118196119196120196121196122196123196124196125196126196127196128196129196130196131196132196133196134196135196136196137196138196139196140196141196142196143196144196145196146196147196148196149196150196151196152196153196154196155196156196157196158196159196160196161196162196163196164196165196166196167196168196169196170196171196172196173196174196175196176196177196178196179196180196181196182196183196184196185196186196187196188196189196190196191196192196193196194196195196196196197196198196199196200196201196202196203196204196205196206196207196208196209196210196211196212196213196214196215196216196217196218196219196220196221196222196223196224196225196226196227196228196229196230196231196232196233196234196235196236196237196238196239196240196241196242196243196244196245196246196247196248196249196250196251196252196253196254196255196256196257196258196259196260196261196262196263196264196265196266196267196268196269196270196271196272196273196274196275196276196277196278196279196280196281196282196283196284196285196286196287196288196289196290196291196292196293196294196295196296196297196298196299196300196301196302196303196304196305196306196307196308196309196310196311196312196313196314196315196316196317196318196319196320196321196322196323196324196325196326196327196328196329196330196331196332196333196334196335196336196337196338196339196340196341196342196343196344196345196346196347196348196349196350196351196352196353196354196355196356196357196358196359196360196361196362196363196364196365196366196367196368196369196370196371196372196373196374196375196376196377196378196379196380196381196382196383196384196385196386196387196388196389196390196391196392196393196394196395196396196397196398196399196400196401196402196403196404196405196406196407196408196409196410196411196412196413196414196415196416196417196418196419196420196421196422196423196424196425196426196427196428196429196430196431196432196433196434196435196436196437196438196439196440196441196442196443196444196445196446196447196448196449196450196451196452196453196454196455196456196457196458196459196460196461196462196463196464196465196466196467196468196469196470196471196472196473196474196475196476196477196478196479196480196481196482196483196484196485196486196487196488196489196490196491196492196493196494196495196496196497196498196499196500196501196502196503196504196505196506196507196508196509196510196511196512196513196514196515196516196517196518196519196520196521196522196523196524196525196526196527196528196529196530196531196532196533196534196535196536196537196538196539196540196541196542196543196544196545196546196547196548196549196550196551196552196553196554196555196556196557196558196559196560196561196562196563196564196565196566196567196568196569196570196571196572196573196574196575196576196577196578196579196580196581196582196583196584196585196586196587196588196589196590196591196592196593196594196595196596196597196598196599196600196601196602196603196604196605196606196607196608196609196610196611196612196613196614196615196616196617196618196619196620196621196622196623196624196625196626196627196628196629196630196631196632196633196634196635196636196637196638196639196640196641196642196643196644196645196646196647196648196649196650196651196652196653196654196655196656196657196658196659196660196661196662196663196664196665196666196667196668196669196670196671196672196673196674196675196676196677196678196679196680196681196682196683196684196685196686196687196688196689196690196691196692196693196694196695196696196697196698196699196700196701196702196703196704196705196706196707196708196709196710196711196712196713196714196715196716196717196718196719196720196721196722196723196724196725196726196727196728196729196730196731196732196733196734196735196736196737196738196739196740196741196742196743196744196745196746196747196748196749196750196751196752196753196754196755196756196757196758196759196760196761196762196763196764196765196766196767196768196769196770196771196772196773196774196775196776196777196778196779196780196781196782196783196784196785196786196787196788196789196790196791196792196793196794196795196796196797196798196799196800196801196802196803196804196805196806196807196808196809196810196811196812196813196814196815196816196817196818196819196820196821196822196823196824196825196826196827196828196829196830196831196832196833196834196835196836196837196838196839196840196841196842196843196844196845196846196847196848196849196850196851196852196853196854196855196856196857196858196859196860196861196862196863196864196865196866196867196868196869196870196871196872196873196874196875196876196877196878196879196880196881196882196883196884196885196886196887196888196889196890196891196892196893196894196895196896196897196898196899196900196901196902196903196904196905196906196907196908196909196910196911196912196913196914196915196916196917196918196919196920196921196922196923196924196925196926196927196928196929196930196931196932196933196934196935196936196937196938196939196940196941196942196943196944196945196946196947196948196949196950196951196952196953196954196955196956196957196958196959196960196961196962196963196964196965196966196967196968196969196970196971196972196973196974196975196976196977196978196979196980196981196982196983196984196985196986196987196988196989196990196991196992196993196994196995196996196997196998196999197000197001197002197003197004197005197006197007197008197009197010197011197012197013197014197015197016197017197018197019197020197021197022197023197024197025197026197027197028197029197030197031197032197033197034197035197036197037197038197039197040197041197042197043197044197045197046197047197048197049197050197051197052197053197054197055197056197057197058197059197060197061197062197063197064197065197066197067197068197069197070197071197072197073197074197075197076197077197078197079197080197081197082197083197084197085197086197087197088197089197090197091197092197093197094197095197096197097197098197099197100197101197102197103197104197105197106197107197108197109197110197111197112197113197114197115197116197117197118197119197120197121197122197123197124197125197126197127197128197129197130197131197132197133197134197135197136197137197138197139197140197141197142197143197144197145197146197147197148197149197150197151197152197153197154197155197156197157197158197159197160197161197162197163197164197165197166197167197168197169197170197171197172197173197174197175197176197177197178197179197180197181197182197183197184197185197186197187197188197189197190197191197192197193197194197195197196197197197198197199197200197201197202197203197204197205197206197207197208197209197210197211197212197213197214197215197216197217197218197219197220197221197222197223197224197225197226197227197228197229197230197231197232197233197234197235197236197237197238197239197240197241197242197243197244197245197246197247197248197249197250197251197252197253197254197255197256197257197258197259197260197261197262197263197264197265197266197267197268197269197270197271197272197273197274197275197276197277197278197279197280197281197282197283197284197285197286197287197288197289197290197291197292197293197294197295197296197297197298197299197300197301197302197303197304197305197306197307197308197309197310197311197312197313197314197315197316197317197318197319197320197321197322197323197324197325197326197327197328197329197330197331197332197333197334197335197336197337197338197339197340197341197342197343197344197345197346197347197348197349197350197351197352197353197354197355197356197357197358197359197360197361197362197363197364197365197366197367197368197369197370197371197372197373197374197375197376197377197378197379197380197381197382197383197384197385197386197387197388197389197390197391197392197393197394197395197396197397197398197399197400197401197402197403197404197405197406197407197408197409197410197411197412197413197414197415197416197417197418197419197420197421197422197423197424197425197426197427197428197429197430197431197432197433197434197435197436197437197438197439197440197441197442197443197444197445197446197447197448197449197450197451197452197453197454197455197456197457197458197459197460197461197462197463197464197465197466197467197468197469197470197471197472197473197474197475197476197477197478197479197480197481197482197483197484197485197486197487197488197489197490197491197492197493197494197495197496197497197498197499197500197501197502197503197504197505197506197507197508197509197510197511197512197513197514197515197516197517197518197519197520197521197522197523197524197525197526197527197528197529197530197531197532197533197534197535197536197537197538197539197540197541197542197543197544197545197546197547197548197549197550197551197552197553197554197555197556197557197558197559197560197561197562197563197564197565197566197567197568197569197570197571197572197573197574197575197576197577197578197579197580197581197582197583197584197585197586197587197588197589197590197591197592197593197594197595197596197597197598197599197600197601197602197603197604197605197606197607197608197609197610197611197612197613197614197615197616197617197618197619197620197621197622197623197624197625197626197627197628197629197630197631197632197633197634197635197636197637197638197639197640197641197642197643197644197645197646197647197648197649197650197651197652197653197654197655197656197657197658197659197660197661197662197663197664197665197666197667197668197669197670197671197672197673197674197675197676197677197678197679197680197681197682197683197684197685197686197687197688197689197690197691197692197693197694197695197696197697197698197699197700197701197702197703197704197705197706197707197708197709197710197711197712197713197714197715197716197717197718197719197720197721197722197723197724197725197726197727197728197729197730197731197732197733197734197735197736197737197738197739197740197741197742197743197744197745197746197747197748197749197750197751197752197753197754197755197756197757197758197759197760197761197762197763197764197765197766197767197768197769197770197771197772197773197774197775197776197777197778197779197780197781197782197783197784197785197786197787197788197789197790197791197792197793197794197795197796197797197798197799197800197801197802197803197804197805197806197807197808197809197810197811197812197813197814197815197816197817197818197819197820197821197822197823197824197825197826197827197828197829197830197831197832197833197834197835197836197837197838197839197840197841197842197843197844197845197846197847197848197849197850197851197852197853197854197855197856197857197858197859197860197861197862197863197864197865197866197867197868197869197870197871197872197873197874197875197876197877197878197879197880197881197882197883197884197885197886197887197888197889197890197891197892197893197894197895197896197897197898197899197900197901197902197903197904197905197906197907197908197909197910197911197912197913197914197915197916197917197918197919197920197921197922197923197924197925197926197927197928197929197930197931197932197933197934197935197936197937197938197939197940197941197942197943197944197945197946197947197948197949197950197951197952197953197954197955197956197957197958197959197960197961197962197963197964197965197966197967197968197969197970197971197972197973197974197975197976197977197978197979197980197981197982197983197984197985197986197987197988197989197990197991197992197993197994197995197996197997197998197999198000198001198002198003198004198005198006198007198008198009198010198011198012198013198014198015198016198017198018198019198020198021198022198023198024198025198026198027198028198029198030198031198032198033198034198035198036198037198038198039198040198041198042198043198044198045198046198047198048198049198050198051198052198053198054198055198056198057198058198059198060198061198062198063198064198065198066198067198068198069198070198071198072198073198074198075198076198077198078198079198080198081198082198083198084198085198086198087198088198089198090198091198092198093198094198095198096198097198098198099198100198101198102198103198104198105198106198107198108198109198110198111198112198113198114198115198116198117198118198119198120198121198122198123198124198125198126198127198128198129198130198131198132198133198134198135198136198137198138198139198140198141198142198143198144198145198146198147198148198149198150198151198152198153198154198155198156198157198158198159198160198161198162198163198164198165198166198167198168198169198170198171198172198173198174198175198176198177198178198179198180198181198182198183198184198185198186198187198188198189198190198191198192198193198194198195198196198197198198198199198200198201198202198203198204198205198206198207198208198209198210198211198212198213198214198215198216198217198218198219198220198221198222198223198224198225198226198227198228198229198230198231198232198233198234198235198236198237198238198239198240198241198242198243198244198245198246198247198248198249198250198251198252198253198254198255198256198257198258198259198260198261198262198263198264198265198266198267198268198269198270198271198272198273198274198275198276198277198278198279198280198281198282198283198284198285198286198287198288198289198290198291198292198293198294198295198296198297198298198299198300198301198302198303198304198305198306198307198308198309198310198311198312198313198314198315198316198317198318198319198320198321198322198323198324198325198326198327198328198329198330198331198332198333198334198335198336198337198338198339198340198341198342198343198344198345198346198347198348198349198350198351198352198353198354198355198356198357198358198359198360198361198362198363198364198365198366198367198368198369198370198371198372198373198374198375198376198377198378198379198380198381198382198383198384198385198386198387198388198389198390198391198392198393198394198395198396198397198398198399198400198401198402198403198404198405198406198407198408198409198410198411198412198413198414198415198416198417198418198419198420198421198422198423198424198425198426198427198428198429198430198431198432198433198434198435198436198437198438198439198440198441198442198443198444198445198446198447198448198449198450198451198452198453198454198455198456198457198458198459198460198461198462198463198464198465198466198467198468198469198470198471198472198473198474198475198476198477198478198479198480198481198482198483198484198485198486198487198488198489198490198491198492198493198494198495198496198497198498198499198500198501198502198503198504198505198506198507198508198509198510198511198512198513198514198515198516198517198518198519198520198521198522198523198524198525198526198527198528198529198530198531198532198533198534198535198536198537198538198539198540198541198542198543198544198545198546198547198548198549198550198551198552198553198554198555198556198557198558198559198560198561198562198563198564198565198566198567198568198569198570198571198572198573198574198575198576198577198578198579198580198581198582198583198584198585198586198587198588198589198590198591198592198593198594198595198596198597198598198599198600198601198602198603198604198605198606198607198608198609198610198611198612198613198614198615198616198617198618198619198620198621198622198623198624198625198626198627198628198629198630198631198632198633198634198635198636198637198638198639198640198641198642198643198644198645198646198647198648198649198650198651198652198653198654198655198656198657198658198659198660198661198662198663198664198665198666198667198668198669198670198671198672198673198674198675198676198677198678198679198680198681198682198683198684198685198686198687198688198689198690198691198692198693198694198695198696198697198698198699198700198701198702198703198704198705198706198707198708198709198710198711198712198713198714198715198716198717198718198719198720198721198722198723198724198725198726198727198728198729198730198731198732198733198734198735198736198737198738198739198740198741198742198743198744198745198746198747198748198749198750198751198752198753198754198755198756198757198758198759198760198761198762198763198764198765198766198767198768198769198770198771198772198773198774198775198776198777198778198779198780198781198782198783198784198785198786198787198788198789198790198791198792198793198794198795198796198797198798198799198800198801198802198803198804198805198806198807198808198809198810198811198812198813198814198815198816198817198818198819198820198821198822198823198824198825198826198827198828198829198830198831198832198833198834198835198836198837198838198839198840198841198842198843198844198845198846198847198848198849198850198851198852198853198854198855198856198857198858198859198860198861198862198863198864198865198866198867198868198869198870198871198872198873198874198875198876198877198878198879198880198881198882198883198884198885198886198887198888198889198890198891198892198893198894198895198896198897198898198899198900198901198902198903198904198905198906198907198908198909198910198911198912198913198914198915198916198917198918198919198920198921198922198923198924198925198926198927198928198929198930198931198932198933198934198935198936198937198938198939198940198941198942198943198944198945198946198947198948198949198950198951198952198953198954198955198956198957198958198959198960198961198962198963198964198965198966198967198968198969198970198971198972198973198974198975198976198977198978198979198980198981198982198983198984198985198986198987198988198989198990198991198992198993198994198995198996198997198998198999199000199001199002199003199004199005199006199007199008199009199010199011199012199013199014199015199016199017199018199019199020199021199022199023199024199025199026199027199028199029199030199031199032199033199034199035199036199037199038199039199040199041199042199043199044199045199046199047199048199049199050199051199052199053199054199055199056199057199058199059199060199061199062199063199064199065199066199067199068199069199070199071199072199073199074199075199076199077199078199079199080199081199082199083199084199085199086199087199088199089199090199091199092199093199094199095199096199097199098199099199100199101199102199103199104199105199106199107199108199109199110199111199112199113199114199115199116199117199118199119199120199121199122199123199124199125199126199127199128199129199130199131199132199133199134199135199136199137199138199139199140199141199142199143199144199145199146199147199148199149199150199151199152199153199154199155199156199157199158199159199160199161199162199163199164199165199166199167199168199169199170199171199172199173199174199175199176199177199178199179199180199181199182199183199184199185199186199187199188199189199190199191199192199193199194199195199196199197199198199199199200199201199202199203199204199205199206199207199208199209199210199211199212199213199214199215199216199217199218199219199220199221199222199223199224199225199226199227199228199229199230199231199232199233199234199235199236199237199238199239199240199241199242199243199244199245199246199247199248199249199250199251199252199253199254199255199256199257199258199259199260199261199262199263199264199265199266199267199268199269199270199271199272199273199274199275199276199277199278199279199280199281199282199283199284199285199286199287199288199289199290199291199292199293199294199295199296199297199298199299199300199301199302199303199304199305199306199307199308199309199310199311199312199313199314199315199316199317199318199319199320199321199322199323199324199325199326199327199328199329199330199331199332199333199334199335199336199337199338199339199340199341199342199343199344199345199346199347199348199349199350199351199352199353199354199355199356199357199358199359199360199361199362199363199364199365199366199367199368199369199370199371199372199373199374199375199376199377199378199379199380199381199382199383199384199385199386199387199388199389199390199391199392199393199394199395199396199397199398199399199400199401199402199403199404199405199406199407199408199409199410199411199412199413199414199415199416199417199418199419199420199421199422199423199424199425199426199427199428199429199430199431199432199433199434199435199436199437199438199439199440199441199442199443199444199445199446199447199448199449199450199451199452199453199454199455199456199457199458199459199460199461199462199463199464199465199466199467199468199469199470199471199472199473199474199475199476199477199478199479199480199481199482199483199484199485199486199487199488199489199490199491199492199493199494199495199496199497199498199499199500199501199502199503199504199505199506199507199508199509199510199511199512199513199514199515199516199517199518199519199520199521199522199523199524199525199526199527199528199529199530199531199532199533199534199535199536199537199538199539199540199541199542199543199544199545199546199547199548199549199550199551199552199553199554199555199556199557199558199559199560199561199562199563199564199565199566199567199568199569199570199571199572199573199574199575199576199577199578199579199580199581199582199583199584199585199586199587199588199589199590199591199592199593199594199595199596199597199598199599199600199601199602199603199604199605199606199607199608199609199610199611199612199613199614199615199616199617199618199619199620199621199622199623199624199625199626199627199628199629199630199631199632199633199634199635199636199637199638199639199640199641199642199643199644199645199646199647199648199649199650199651199652199653199654199655199656199657199658199659199660199661199662199663199664199665199666199667199668199669199670199671199672199673199674199675199676199677199678199679199680199681199682199683199684199685199686199687199688199689199690199691199692199693199694199695199696199697199698199699199700199701199702199703199704199705199706199707199708199709199710199711199712199713199714199715199716199717199718199719199720199721199722199723199724199725199726199727199728199729199730199731199732199733199734199735199736199737199738199739199740199741199742199743199744199745199746199747199748199749199750199751199752199753199754199755199756199757199758199759199760199761199762199763199764199765199766199767199768199769199770199771199772199773199774199775199776199777199778199779199780199781199782199783199784199785199786199787199788199789199790199791199792199793199794199795199796199797199798199799199800199801199802199803199804199805199806199807199808199809199810199811199812199813199814199815199816199817199818199819199820199821199822199823199824199825199826199827199828199829199830199831199832199833199834199835199836199837199838199839199840199841199842199843199844199845199846199847199848199849199850199851199852199853199854199855199856199857199858199859199860199861199862199863199864199865199866199867199868199869199870199871199872199873199874199875199876199877199878199879199880199881199882199883199884199885199886199887199888199889199890199891199892199893199894199895199896199897199898199899199900199901199902199903199904199905199906199907199908199909199910199911199912199913199914199915199916199917199918199919199920199921199922199923199924199925199926199927199928199929199930199931199932199933199934199935199936199937199938199939199940199941199942199943199944199945199946199947199948199949199950199951199952199953199954199955199956199957199958199959199960199961199962199963199964199965199966199967199968199969199970199971199972199973199974199975199976199977199978199979199980199981199982199983199984199985199986199987199988199989199990199991199992199993199994199995199996199997199998199999200000200001200002200003200004200005200006200007200008200009200010200011200012200013200014200015200016200017200018200019200020200021200022200023200024200025200026200027200028200029200030200031200032200033200034200035200036200037200038200039200040200041200042200043200044200045200046200047200048200049200050200051200052200053200054200055200056200057200058200059200060200061200062200063200064200065200066200067200068200069200070200071200072200073200074200075200076200077200078200079200080200081200082200083200084200085200086200087200088200089200090200091200092200093200094200095200096200097200098200099200100200101200102200103200104200105200106200107200108200109200110200111200112200113200114200115200116200117200118200119200120200121200122200123200124200125200126200127200128200129200130200131200132200133200134200135200136200137200138200139200140200141200142200143200144200145200146200147200148200149200150200151200152200153200154200155200156200157200158200159200160200161200162200163200164200165200166200167200168200169200170200171200172200173200174200175200176200177200178200179200180200181200182200183200184200185200186200187200188200189200190200191200192200193200194200195200196200197200198200199200200200201200202200203200204200205200206200207200208200209200210200211200212200213200214200215200216200217200218200219200220200221200222200223200224200225200226200227200228200229200230200231200232200233200234200235200236200237200238200239200240200241200242200243200244200245200246200247200248200249200250200251200252200253200254200255200256200257200258200259200260200261200262200263200264200265200266200267200268200269200270200271200272200273200274200275200276200277200278200279200280200281200282200283200284200285200286200287200288200289200290200291200292200293200294200295200296200297200298200299200300200301200302200303200304200305200306200307200308200309200310200311200312200313200314200315200316200317200318200319200320200321200322200323200324200325200326200327200328200329200330200331200332200333200334200335200336200337200338200339200340200341200342200343200344200345200346200347200348200349200350200351200352200353200354200355200356200357200358200359200360200361200362200363200364200365200366200367200368200369200370200371200372200373200374200375200376200377200378200379200380200381200382200383200384200385200386200387200388200389200390200391200392200393200394200395200396200397200398200399200400200401200402200403200404200405200406200407200408200409200410200411200412200413200414200415200416200417200418200419200420200421200422200423200424200425200426200427200428200429200430200431200432200433200434200435200436200437200438200439200440200441200442200443200444200445200446200447200448200449200450200451200452200453200454200455200456200457200458200459200460200461200462200463200464200465200466200467200468200469200470200471200472200473200474200475200476200477200478200479200480200481200482200483200484200485200486200487200488200489200490200491200492200493200494200495200496200497200498200499200500200501200502200503200504200505200506200507200508200509200510200511200512200513200514200515200516200517200518200519200520200521200522200523200524200525200526200527200528200529200530200531200532200533200534200535200536200537200538200539200540200541200542200543200544200545200546200547200548200549200550200551200552200553200554200555200556200557200558200559200560200561200562200563200564200565200566200567200568200569200570200571200572200573200574200575200576200577200578200579200580200581200582200583200584200585200586200587200588200589200590200591200592200593200594200595200596200597200598200599200600200601200602200603200604200605200606200607200608200609200610200611200612200613200614200615200616200617200618200619200620200621200622200623200624200625200626200627200628200629200630200631200632200633200634200635200636200637200638200639200640200641200642200643200644200645200646200647200648200649200650200651200652200653200654200655200656200657200658200659200660200661200662200663200664200665200666200667200668200669200670200671200672200673200674200675200676200677200678200679200680200681200682200683200684200685200686200687200688200689200690200691200692200693200694200695200696200697200698200699200700200701200702200703200704200705200706200707200708200709200710200711200712200713200714200715200716200717200718200719200720200721200722200723200724200725200726200727200728200729200730200731200732200733200734200735200736200737200738200739200740200741200742200743200744200745200746200747200748200749200750200751200752200753200754200755200756200757200758200759200760200761200762200763200764200765200766200767200768200769200770200771200772200773200774200775200776200777200778200779200780200781200782200783200784200785200786200787200788200789200790200791200792200793200794200795200796200797200798200799200800200801200802200803200804200805200806200807200808200809200810200811200812200813200814200815200816200817200818200819200820200821200822200823200824200825200826200827200828200829200830200831200832200833200834200835200836200837200838200839200840200841200842200843200844200845200846200847200848200849200850200851200852200853200854200855200856200857200858200859200860200861200862200863200864200865200866200867200868200869200870200871200872200873200874200875200876200877200878200879200880200881200882200883200884200885200886200887200888200889200890200891200892200893200894200895200896200897200898200899200900200901200902200903200904200905200906200907200908200909200910200911200912200913200914200915200916200917200918200919200920200921200922200923200924200925200926200927200928200929200930200931200932200933200934200935200936200937200938200939200940200941200942200943200944200945200946200947200948200949200950200951200952200953200954200955200956200957200958200959200960200961200962200963200964200965200966200967200968200969200970200971200972200973200974200975200976200977200978200979200980200981200982200983200984200985200986200987200988200989200990200991200992200993200994200995200996200997200998200999201000201001201002201003201004201005201006201007201008201009201010201011201012201013201014201015201016201017201018201019201020201021201022201023201024201025201026201027201028201029201030201031201032201033201034201035201036201037201038201039201040201041201042201043201044201045201046201047201048201049201050201051201052201053201054201055201056201057201058201059201060201061201062201063201064201065201066201067201068201069201070201071201072201073201074201075201076201077201078201079201080201081201082201083201084201085201086201087201088201089201090201091201092201093201094201095201096201097201098201099201100201101201102201103201104201105201106201107201108201109201110201111201112201113201114201115201116201117201118201119201120201121201122201123201124201125201126201127201128201129201130201131201132201133201134201135201136201137201138201139201140201141201142201143201144201145201146201147201148201149201150201151201152201153201154201155201156201157201158201159201160201161201162201163201164201165201166201167201168201169201170201171201172201173201174201175201176201177201178201179201180201181201182201183201184201185201186201187201188201189201190201191201192201193201194201195201196201197201198201199201200201201201202201203201204201205201206201207201208201209201210201211201212201213201214201215201216201217201218201219201220201221201222201223201224201225201226201227201228201229201230201231201232201233201234201235201236201237201238201239201240201241201242201243201244201245201246201247201248201249201250201251201252201253201254201255201256201257201258201259201260201261201262201263201264201265201266201267201268201269201270201271201272201273201274201275201276201277201278201279201280201281201282201283201284201285201286201287201288201289201290201291201292201293201294201295201296201297201298201299201300201301201302201303201304201305201306201307201308201309201310201311201312201313201314201315201316201317201318201319201320201321201322201323201324201325201326201327201328201329201330201331201332201333201334201335201336201337201338201339201340201341201342201343201344201345201346201347201348201349201350201351201352201353201354201355201356201357201358201359201360201361201362201363201364201365201366201367201368201369201370201371201372201373201374201375201376201377201378201379201380201381201382201383201384201385201386201387201388201389201390201391201392201393201394201395201396201397201398201399201400201401201402201403201404201405201406201407201408201409201410201411201412201413201414201415201416201417201418201419201420201421201422201423201424201425201426201427201428201429201430201431201432201433201434201435201436201437201438201439201440201441201442201443201444201445201446201447201448201449201450201451201452201453201454201455201456201457201458201459201460201461201462201463201464201465201466201467201468201469201470201471201472201473201474201475201476201477201478201479201480201481201482201483201484201485201486201487201488201489201490201491201492201493201494201495201496201497201498201499201500201501201502201503201504201505201506201507201508201509201510201511201512201513201514201515201516201517201518201519201520201521201522201523201524201525201526201527201528201529201530201531201532201533201534201535201536201537201538201539201540201541201542201543201544201545201546201547201548201549201550201551201552201553201554201555201556201557201558201559201560201561201562201563201564201565201566201567201568201569201570201571201572201573201574201575201576201577201578201579201580201581201582201583201584201585201586201587201588201589201590201591201592201593201594201595201596201597201598201599201600201601201602201603201604201605201606201607201608201609201610201611201612201613201614201615201616201617201618201619201620201621201622201623201624201625201626201627201628201629201630201631201632201633201634201635201636201637201638201639201640201641201642201643201644201645201646201647201648201649201650201651201652201653201654201655201656201657201658201659201660201661201662201663201664201665201666201667201668201669201670201671201672201673201674201675201676201677201678201679201680201681201682201683201684201685201686201687201688201689201690201691201692201693201694201695201696201697201698201699201700201701201702201703201704201705201706201707201708201709201710201711201712201713201714201715201716201717201718201719201720201721201722201723201724201725201726201727201728201729201730201731201732201733201734201735201736201737201738201739201740201741201742201743201744201745201746201747201748201749201750201751201752201753201754201755201756201757201758201759201760201761201762201763201764201765201766201767201768201769201770201771201772201773201774201775201776201777201778201779201780201781201782201783201784201785201786201787201788201789201790201791201792201793201794201795201796201797201798201799201800201801201802201803201804201805201806201807201808201809201810201811201812201813201814201815201816201817201818201819201820201821201822201823201824201825201826201827201828201829201830201831201832201833201834201835201836201837201838201839201840201841201842201843201844201845201846201847201848201849201850201851201852201853201854201855201856201857201858201859201860201861201862201863201864201865201866201867201868201869201870201871201872201873201874201875201876201877201878201879201880201881201882201883201884201885201886201887201888201889201890201891201892201893201894201895201896201897201898201899201900201901201902201903201904201905201906201907201908201909201910201911201912201913201914201915201916201917201918201919201920201921201922201923201924201925201926201927201928201929201930201931201932201933201934201935201936201937201938201939201940201941201942201943201944201945201946201947201948201949201950201951201952201953201954201955201956201957201958201959201960201961201962201963201964201965201966201967201968201969201970201971201972201973201974201975201976201977201978201979201980201981201982201983201984201985201986201987201988201989201990201991201992201993201994201995201996201997201998201999202000202001202002202003202004202005202006202007202008202009202010202011202012202013202014202015202016202017202018202019202020202021202022202023202024202025202026202027202028202029202030202031202032202033202034202035202036202037202038202039202040202041202042202043202044202045202046202047202048202049202050202051202052202053202054202055202056202057202058202059202060202061202062202063202064202065202066202067202068202069202070202071202072202073202074202075202076202077202078202079202080202081202082202083202084202085202086202087202088202089202090202091202092202093202094202095202096202097202098202099202100202101202102202103202104202105202106202107202108202109202110202111202112202113202114202115202116202117202118202119202120202121202122202123202124202125202126202127202128202129202130202131202132202133202134202135202136202137202138202139202140202141202142202143202144202145202146202147202148202149202150202151202152202153202154202155202156202157202158202159202160202161202162202163202164202165202166202167202168202169202170202171202172202173202174202175202176202177202178202179202180202181202182202183202184202185202186202187202188202189202190202191202192202193202194202195202196202197202198202199202200202201202202202203202204202205202206202207202208202209202210202211202212202213202214202215202216202217202218202219202220202221202222202223202224202225202226202227202228202229202230202231202232202233202234202235202236202237202238202239202240202241202242202243202244202245202246202247202248202249202250202251202252202253202254202255202256202257202258202259202260202261202262202263202264202265202266202267202268202269202270202271202272202273202274202275202276202277202278202279202280202281202282202283202284202285202286202287202288202289202290202291202292202293202294202295202296202297202298202299202300202301202302202303202304202305202306202307202308202309202310202311202312202313202314202315202316202317202318202319202320202321202322202323202324202325202326202327202328202329202330202331202332202333202334202335202336202337202338202339202340202341202342202343202344202345202346202347202348202349202350202351202352202353202354202355202356202357202358202359202360202361202362202363202364202365202366202367202368202369202370202371202372202373202374202375202376202377202378202379202380202381202382202383202384202385202386202387202388202389202390202391202392202393202394202395202396202397202398202399202400202401202402202403202404202405202406202407202408202409202410202411202412202413202414202415202416202417202418202419202420202421202422202423202424202425202426202427202428202429202430202431202432202433202434202435202436202437202438202439202440202441202442202443202444202445202446202447202448202449202450202451202452202453202454202455202456202457202458202459202460202461202462202463202464202465202466202467202468202469202470202471202472202473202474202475202476202477202478202479202480202481202482202483202484202485202486202487202488202489202490202491202492202493202494202495202496202497202498202499202500202501202502202503202504202505202506202507202508202509202510202511202512202513202514202515202516202517202518202519202520202521202522202523202524202525202526202527202528202529202530202531202532202533202534202535202536202537202538202539202540202541202542202543202544202545202546202547202548202549202550202551202552202553202554202555202556202557202558202559202560202561202562202563202564202565202566202567202568202569202570202571202572202573202574202575202576202577202578202579202580202581202582202583202584202585202586202587202588202589202590202591202592202593202594202595202596202597202598202599202600202601202602202603202604202605202606202607202608202609202610202611202612202613202614202615202616202617202618202619202620202621202622202623202624202625202626202627202628202629202630202631202632202633202634202635202636202637202638202639202640202641202642202643202644202645202646202647202648202649202650202651202652202653202654202655202656202657202658202659202660202661202662202663202664202665202666202667202668202669202670202671202672202673202674202675202676202677202678202679202680202681202682202683202684202685202686202687202688202689202690202691202692202693202694202695202696202697202698202699202700202701202702202703202704202705202706202707202708202709202710202711202712202713202714202715202716202717202718202719202720202721202722202723202724202725202726202727202728202729202730202731202732202733202734202735202736202737202738202739202740202741202742202743202744202745202746202747202748202749202750202751202752202753202754202755202756202757202758202759202760202761202762202763202764202765202766202767202768202769202770202771202772202773202774202775202776202777202778202779202780202781202782202783202784202785202786202787202788202789202790202791202792202793202794202795202796202797202798202799202800202801202802202803202804202805202806202807202808202809202810202811202812202813202814202815202816202817202818202819202820202821202822202823202824202825202826202827202828202829202830202831202832202833202834202835202836202837202838202839202840202841202842202843202844202845202846202847202848202849202850202851202852202853202854202855202856202857202858202859202860202861202862202863202864202865202866202867202868202869202870202871202872202873202874202875202876202877202878202879202880202881202882202883202884202885202886202887202888202889202890202891202892202893202894202895202896202897202898202899202900202901202902202903202904202905202906202907202908202909202910202911202912202913202914202915202916202917202918202919202920202921202922202923202924202925202926202927202928202929202930202931202932202933202934202935202936202937202938202939202940202941202942202943202944202945202946202947202948202949202950202951202952202953202954202955202956202957202958202959202960202961202962202963202964202965202966202967202968202969202970202971202972202973202974202975202976202977202978202979202980202981202982202983202984202985202986202987202988202989202990202991202992202993202994202995202996202997202998202999203000203001203002203003203004203005203006203007203008203009203010203011203012203013203014203015203016203017203018203019203020203021203022203023203024203025203026203027203028203029203030203031203032203033203034203035203036203037203038203039203040203041203042203043203044203045203046203047203048203049203050203051203052203053203054203055203056203057203058203059203060203061203062203063203064203065203066203067203068203069203070203071203072203073203074203075203076203077203078203079203080203081203082203083203084203085203086203087203088203089203090203091203092203093203094203095203096203097203098203099203100203101203102203103203104203105203106203107203108203109203110203111203112203113203114203115203116203117203118203119203120203121203122203123203124203125203126203127203128203129203130203131203132203133203134203135203136203137203138203139203140203141203142203143203144203145203146203147203148203149203150203151203152203153203154203155203156203157203158203159203160203161203162203163203164203165203166203167203168203169203170203171203172203173203174203175203176203177203178203179203180203181203182203183203184203185203186203187203188203189203190203191203192203193203194203195203196203197203198203199203200203201203202203203203204203205203206203207203208203209203210203211203212203213203214203215203216203217203218203219203220203221203222203223203224203225203226203227203228203229203230203231203232203233203234203235203236203237203238203239203240203241203242203243203244203245203246203247203248203249203250203251203252203253203254203255203256203257203258203259203260203261203262203263203264203265203266203267203268203269203270203271203272203273203274203275203276203277203278203279203280203281203282203283203284203285203286203287203288203289203290203291203292203293203294203295203296203297203298203299203300203301203302203303203304203305203306203307203308203309203310203311203312203313203314203315203316203317203318203319203320203321203322203323203324203325203326203327203328203329203330203331203332203333203334203335203336203337203338203339203340203341203342203343203344203345203346203347203348203349203350203351203352203353203354203355203356203357203358203359203360203361203362203363203364203365203366203367203368203369203370203371203372203373203374203375203376203377203378203379203380203381203382203383203384203385203386203387203388203389203390203391203392203393203394203395203396203397203398203399203400203401203402203403203404203405203406203407203408203409203410203411203412203413203414203415203416203417203418203419203420203421203422203423203424203425203426203427203428203429203430203431203432203433203434203435203436203437203438203439203440203441203442203443203444203445203446203447203448203449203450203451203452203453203454203455203456203457203458203459203460203461203462203463203464203465203466203467203468203469203470203471203472203473203474203475203476203477203478203479203480203481203482203483203484203485203486203487203488203489203490203491203492203493203494203495203496203497203498203499203500203501203502203503203504203505203506203507203508203509203510203511203512203513203514203515203516203517203518203519203520203521203522203523203524203525203526203527203528203529203530203531203532203533203534203535203536203537203538203539203540203541203542203543203544203545203546203547203548203549203550203551203552203553203554203555203556203557203558203559203560203561203562203563203564203565203566203567203568203569203570203571203572203573203574203575203576203577203578203579203580203581203582203583203584203585203586203587203588203589203590203591203592203593203594203595203596203597203598203599203600203601203602203603203604203605203606203607203608203609203610203611203612203613203614203615203616203617203618203619203620203621203622203623203624203625203626203627203628203629203630203631203632203633203634203635203636203637203638203639203640203641203642203643203644203645203646203647203648203649203650203651203652203653203654203655203656203657203658203659203660203661203662203663203664203665203666203667203668203669203670203671203672203673203674203675203676203677203678203679203680203681203682203683203684203685203686203687203688203689203690203691203692203693203694203695203696203697203698203699203700203701203702203703203704203705203706203707203708203709203710203711203712203713203714203715203716203717203718203719203720203721203722203723203724203725203726203727203728203729203730203731203732203733203734203735203736203737203738203739203740203741203742203743203744203745203746203747203748203749203750203751203752203753203754203755203756203757203758203759203760203761203762203763203764203765203766203767203768203769203770203771203772203773203774203775203776203777203778203779203780203781203782203783203784203785203786203787203788203789203790203791203792203793203794203795203796203797203798203799203800203801203802203803203804203805203806203807203808203809203810203811203812203813203814203815203816203817203818203819203820203821203822203823203824203825203826203827203828203829203830203831203832203833203834203835203836203837203838203839203840203841203842203843203844203845203846203847203848203849203850203851203852203853203854203855203856203857203858203859203860203861203862203863203864203865203866203867203868203869203870203871203872203873203874203875203876203877203878203879203880203881203882203883203884203885203886203887203888203889203890203891203892203893203894203895203896203897203898203899203900203901203902203903203904203905203906203907203908203909203910203911203912203913203914203915203916203917203918203919203920203921203922203923203924203925203926203927203928203929203930203931203932203933203934203935203936203937203938203939203940203941203942203943203944203945203946203947203948203949203950203951203952203953203954203955203956203957203958203959203960203961203962203963203964203965203966203967203968203969203970203971203972203973203974203975203976203977203978203979203980203981203982203983203984203985203986203987203988203989203990203991203992203993203994203995203996203997203998203999204000204001204002204003204004204005204006204007204008204009204010204011204012204013204014204015204016204017204018204019204020204021204022204023204024204025204026204027204028204029204030204031204032204033204034204035204036204037204038204039204040204041204042204043204044204045204046204047204048204049204050204051204052204053204054204055204056204057204058204059204060204061204062204063204064204065204066204067204068204069204070204071204072204073204074204075204076204077204078204079204080204081204082204083204084204085204086204087204088204089204090204091204092204093204094204095204096204097204098204099204100204101204102204103204104204105204106204107204108204109204110204111204112204113204114204115204116204117204118204119204120204121204122204123204124204125204126204127204128204129204130204131204132204133204134204135204136204137204138204139204140204141204142204143204144204145204146204147204148204149204150204151204152204153204154204155204156204157204158204159204160204161204162204163204164204165204166204167204168204169204170204171204172204173204174204175204176204177204178204179204180204181204182204183204184204185204186204187204188204189204190204191204192204193204194204195204196204197204198204199204200204201204202204203204204204205204206204207204208204209204210204211204212204213204214204215204216204217204218204219204220204221204222204223204224204225204226204227204228204229204230204231204232204233204234204235204236204237204238204239204240204241204242204243204244204245204246204247204248204249204250204251204252204253204254204255204256204257204258204259204260204261204262204263204264204265204266204267204268204269204270204271204272204273204274204275204276204277204278204279204280204281204282204283204284204285204286204287204288204289204290204291204292204293204294204295204296204297204298204299204300204301204302204303204304204305204306204307204308204309204310204311204312204313204314204315204316204317204318204319204320204321204322204323204324204325204326204327204328204329204330204331204332204333204334204335204336204337204338204339204340204341204342204343204344204345204346204347204348204349204350204351204352204353204354204355204356204357204358204359204360204361204362204363204364204365204366204367204368204369204370204371204372204373204374204375204376204377204378204379204380204381204382204383204384204385204386204387204388204389204390204391204392204393204394204395204396204397204398204399204400204401204402204403204404204405204406204407204408204409204410204411204412204413204414204415204416204417204418204419204420204421204422204423204424204425204426204427204428204429204430204431204432204433204434204435204436204437204438204439204440204441204442204443204444204445204446204447204448204449204450204451204452204453204454204455204456204457204458204459204460204461204462204463204464204465204466204467204468204469204470204471204472204473204474204475204476204477204478204479204480204481204482204483204484204485204486204487204488204489204490204491204492204493204494204495204496204497204498204499204500204501204502204503204504204505204506204507204508204509204510204511204512204513204514204515204516204517204518204519204520204521204522204523204524204525204526204527204528204529204530204531204532204533204534204535204536204537204538204539204540204541204542204543204544204545204546204547204548204549204550204551204552204553204554204555204556204557204558204559204560204561204562204563204564204565204566204567204568204569204570204571204572204573204574204575204576204577204578204579204580204581204582204583204584204585204586204587204588204589204590204591204592204593204594204595204596204597204598204599204600204601204602204603204604204605204606204607204608204609204610204611204612204613204614204615204616204617204618204619204620204621204622204623204624204625204626204627204628204629204630204631204632204633204634204635204636204637204638204639204640204641204642204643204644204645204646204647204648204649204650204651204652204653204654204655204656204657204658204659204660204661204662204663204664204665204666204667204668204669204670204671204672204673204674204675204676204677204678204679204680204681204682204683204684204685204686204687204688204689204690204691204692204693204694204695204696204697204698204699204700204701204702204703204704204705204706204707204708204709204710204711204712204713204714204715204716204717204718204719204720204721204722204723204724204725204726204727204728204729204730204731204732204733204734204735204736204737204738204739204740204741204742204743204744204745204746204747204748204749204750204751204752204753204754204755204756204757204758204759204760204761204762204763204764204765204766204767204768204769204770204771204772204773204774204775204776204777204778204779204780204781204782204783204784204785204786204787204788204789204790204791204792204793204794204795204796204797204798204799204800204801204802204803204804204805204806204807204808204809204810204811204812204813204814204815204816204817204818204819204820204821204822204823204824204825204826204827204828204829204830204831204832204833204834204835204836204837204838204839204840204841204842204843204844204845204846204847204848204849204850204851204852204853204854204855204856204857204858204859204860204861204862204863204864204865204866204867204868204869204870204871204872204873204874204875204876204877204878204879204880204881204882204883204884204885204886204887204888204889204890204891204892204893204894204895204896204897204898204899204900204901204902204903204904204905204906204907204908204909204910204911204912204913204914204915204916204917204918204919204920204921204922204923204924204925204926204927204928204929204930204931204932204933204934204935204936204937204938204939204940204941204942204943204944204945204946204947204948204949204950204951204952204953204954204955204956204957204958204959204960204961204962204963204964204965204966204967204968204969204970204971204972204973204974204975204976204977204978204979204980204981204982204983204984204985204986204987204988204989204990204991204992204993204994204995204996204997204998204999205000205001205002205003205004205005205006205007205008205009205010205011205012205013205014205015205016205017205018205019205020205021205022205023205024205025205026205027205028205029205030205031205032205033205034205035205036205037205038205039205040205041205042205043205044205045205046205047205048205049205050205051205052205053205054205055205056205057205058205059205060205061205062205063205064205065205066205067205068205069205070205071205072205073205074205075205076205077205078205079205080205081205082205083205084205085205086205087205088205089205090205091205092205093205094205095205096205097205098205099205100205101205102205103205104205105205106205107205108205109205110205111205112205113205114205115205116205117205118205119205120205121205122205123205124205125205126205127205128205129205130205131205132205133205134205135205136205137205138205139205140205141205142205143205144205145205146205147205148205149205150205151205152205153205154205155205156205157205158205159205160205161205162205163205164205165205166205167205168205169205170205171205172205173205174205175205176205177205178205179205180205181205182205183205184205185205186205187205188205189205190205191205192205193205194205195205196205197205198205199205200205201205202205203205204205205205206205207205208205209205210205211205212205213205214205215205216205217205218205219205220205221205222205223205224205225205226205227205228205229205230205231205232205233205234205235205236205237205238205239205240205241205242205243205244205245205246205247205248205249205250205251205252205253205254205255205256205257205258205259205260205261205262205263205264205265205266205267205268205269205270205271205272205273205274205275205276205277205278205279205280205281205282205283205284205285205286205287205288205289205290205291205292205293205294205295205296205297205298205299205300205301205302205303205304205305205306205307205308205309205310205311205312205313205314205315205316205317205318205319205320205321205322205323205324205325205326205327205328205329205330205331205332205333205334205335205336205337205338205339205340205341205342205343205344205345205346205347205348205349205350205351205352205353205354205355205356205357205358205359205360205361205362205363205364205365205366205367205368205369205370205371205372205373205374205375205376205377205378205379205380205381205382205383205384205385205386205387205388205389205390205391205392205393205394205395205396205397205398205399205400205401205402205403205404205405205406205407205408205409205410205411205412205413205414205415205416205417205418205419205420205421205422205423205424205425205426205427205428205429205430205431205432205433205434205435205436205437205438205439205440205441205442205443205444205445205446205447205448205449205450205451205452205453205454205455205456205457205458205459205460205461205462205463205464205465205466205467205468205469205470205471205472205473205474205475205476205477205478205479205480205481205482205483205484205485205486205487205488205489205490205491205492205493205494205495205496205497205498205499205500205501205502205503205504205505205506205507205508205509205510205511205512205513205514205515205516205517205518205519205520205521205522205523205524205525205526205527205528205529205530205531205532205533205534205535205536205537205538205539205540205541205542205543205544205545205546205547205548205549205550205551205552205553205554205555205556205557205558205559205560205561205562205563205564205565205566205567205568205569205570205571205572205573205574205575205576205577205578205579205580205581205582205583205584205585205586205587205588205589205590205591205592205593205594205595205596205597205598205599205600205601205602205603205604205605205606205607205608205609205610205611205612205613205614205615205616205617205618205619205620205621205622205623205624205625205626205627205628205629205630205631205632205633205634205635205636205637205638205639205640205641205642205643205644205645205646205647205648205649205650205651205652205653205654205655205656205657205658205659205660205661205662205663205664205665205666205667205668205669205670205671205672205673205674205675205676205677205678205679205680205681205682205683205684205685205686205687205688205689205690205691205692205693205694205695205696205697205698205699205700205701205702205703205704205705205706205707205708205709205710205711205712205713205714205715205716205717205718205719205720205721205722205723205724205725205726205727205728205729205730205731205732205733205734205735205736205737205738205739205740205741205742205743205744205745205746205747205748205749205750205751205752205753205754205755205756205757205758205759205760205761205762205763205764205765205766205767205768205769205770205771205772205773205774205775205776205777205778205779205780205781205782205783205784205785205786205787205788205789205790205791205792205793205794205795205796205797205798205799205800205801205802205803205804205805205806205807205808205809205810205811205812205813205814205815205816205817205818205819205820205821205822205823205824205825205826205827205828205829205830205831205832205833205834205835205836205837205838205839205840205841205842205843205844205845205846205847205848205849205850205851205852205853205854205855205856205857205858205859205860205861205862205863205864205865205866205867205868205869205870205871205872205873205874205875205876205877205878205879205880205881205882205883205884205885205886205887205888205889205890205891205892205893205894205895205896205897205898205899205900205901205902205903205904205905205906205907205908205909205910205911205912205913205914205915205916205917205918205919205920205921205922205923205924205925205926205927205928205929205930205931205932205933205934205935205936205937205938205939205940205941205942205943205944205945205946205947205948205949205950205951205952205953205954205955205956205957205958205959205960205961205962205963205964205965205966205967205968205969205970205971205972205973205974205975205976205977205978205979205980205981205982205983205984205985205986205987205988205989205990205991205992205993205994205995205996205997205998205999206000206001206002206003206004206005206006206007206008206009206010206011206012206013206014206015206016206017206018206019206020206021206022206023206024206025206026206027206028206029206030206031206032206033206034206035206036206037206038206039206040206041206042206043206044206045206046206047206048206049206050206051206052206053206054206055206056206057206058206059206060206061206062206063206064206065206066206067206068206069206070206071206072206073206074206075206076206077206078206079206080206081206082206083206084206085206086206087206088206089206090206091206092206093206094206095206096206097206098206099206100206101206102206103206104206105206106206107206108206109206110206111206112206113206114206115206116206117206118206119206120206121206122206123206124206125206126206127206128206129206130206131206132206133206134206135206136206137206138206139206140206141206142206143206144206145206146206147206148206149206150206151206152206153206154206155206156206157206158206159206160206161206162206163206164206165206166206167206168206169206170206171206172206173206174206175206176206177206178206179206180206181206182206183206184206185206186206187206188206189206190206191206192206193206194206195206196206197206198206199206200206201206202206203206204206205206206206207206208206209206210206211206212206213206214206215206216206217206218206219206220206221206222206223206224206225206226206227206228206229206230206231206232206233206234206235206236206237206238206239206240206241206242206243206244206245206246206247206248206249206250206251206252206253206254206255206256206257206258206259206260206261206262206263206264206265206266206267206268206269206270206271206272206273206274206275206276206277206278206279206280206281206282206283206284206285206286206287206288206289206290206291206292206293206294206295206296206297206298206299206300206301206302206303206304206305206306206307206308206309206310206311206312206313206314206315206316206317206318206319206320206321206322206323206324206325206326206327206328206329206330206331206332206333206334206335206336206337206338206339206340206341206342206343206344206345206346206347206348206349206350206351206352206353206354206355206356206357206358206359206360206361206362206363206364206365206366206367206368206369206370206371206372206373206374206375206376206377206378206379206380206381206382206383206384206385206386206387206388206389206390206391206392206393206394206395206396206397206398206399206400206401206402206403206404206405206406206407206408206409206410206411206412206413206414206415206416206417206418206419206420206421206422206423206424206425206426206427206428206429206430206431206432206433206434206435206436206437206438206439206440206441206442206443206444206445206446206447206448206449206450206451206452206453206454206455206456206457206458206459206460206461206462206463206464206465206466206467206468206469206470206471206472206473206474206475206476206477206478206479206480206481206482206483206484206485206486206487206488206489206490206491206492206493206494206495206496206497206498206499206500206501206502206503206504206505206506206507206508206509206510206511206512206513206514206515206516206517206518206519206520206521206522206523206524206525206526206527206528206529206530206531206532206533206534206535206536206537206538206539206540206541206542206543206544206545206546206547206548206549206550206551206552206553206554206555206556206557206558206559206560206561206562206563206564206565206566206567206568206569206570206571206572206573206574206575206576206577206578206579206580206581206582206583206584206585206586206587206588206589206590206591206592206593206594206595206596206597206598206599206600206601206602206603206604206605206606206607206608206609206610206611206612206613206614206615206616206617206618206619206620206621206622206623206624206625206626206627206628206629206630206631206632206633206634206635206636206637206638206639206640206641206642206643206644206645206646206647206648206649206650206651206652206653206654206655206656206657206658206659206660206661206662206663206664206665206666206667206668206669206670206671206672206673206674206675206676206677206678206679206680206681206682206683206684206685206686206687206688206689206690206691206692206693206694206695206696206697206698206699206700206701206702206703206704206705206706206707206708206709206710206711206712206713206714206715206716206717206718206719206720206721206722206723206724206725206726206727206728206729206730206731206732206733206734206735206736206737206738206739206740206741206742206743206744206745206746206747206748206749206750206751206752206753206754206755206756206757206758206759206760206761206762206763206764206765206766206767206768206769206770206771206772206773206774206775206776206777206778206779206780206781206782206783206784206785206786206787206788206789206790206791206792206793206794206795206796206797206798206799206800206801206802206803206804206805206806206807206808206809206810206811206812206813206814206815206816206817206818206819206820206821206822206823206824206825206826206827206828206829206830206831206832206833206834206835206836206837206838206839206840206841206842206843206844206845206846206847206848206849206850206851206852206853206854206855206856206857206858206859206860206861206862206863206864206865206866206867206868206869206870206871206872206873206874206875206876206877206878206879206880206881206882206883206884206885206886206887206888206889206890206891206892206893206894206895206896206897206898206899206900206901206902206903206904206905206906206907206908206909206910206911206912206913206914206915206916206917206918206919206920206921206922206923206924206925206926206927206928206929206930206931206932206933206934206935206936206937206938206939206940206941206942206943206944206945206946206947206948206949206950206951206952206953206954206955206956206957206958206959206960206961206962206963206964206965206966206967206968206969206970206971206972206973206974206975206976206977206978206979206980206981206982206983206984206985206986206987206988206989206990206991206992206993206994206995206996206997206998206999207000207001207002207003207004207005207006207007207008207009207010207011207012207013207014207015207016207017207018207019207020207021207022207023207024207025207026207027207028207029207030207031207032207033207034207035207036207037207038207039207040207041207042207043207044207045207046207047207048207049207050207051207052207053207054207055207056207057207058207059207060207061207062207063207064207065207066207067207068207069207070207071207072207073207074207075207076207077207078207079207080207081207082207083207084207085207086207087207088207089207090207091207092207093207094207095207096207097207098207099207100207101207102207103207104207105207106207107207108207109207110207111207112207113207114207115207116207117207118207119207120207121207122207123207124207125207126207127207128207129207130207131207132207133207134207135207136207137207138207139207140207141207142207143207144207145207146207147207148207149207150207151207152207153207154207155207156207157207158207159207160207161207162207163207164207165207166207167207168207169207170207171207172207173207174207175207176207177207178207179207180207181207182207183207184207185207186207187207188207189207190207191207192207193207194207195207196207197207198207199207200207201207202207203207204207205207206207207207208207209207210207211207212207213207214207215207216207217207218207219207220207221207222207223207224207225207226207227207228207229207230207231207232207233207234207235207236207237207238207239207240207241207242207243207244207245207246207247207248207249207250207251207252207253207254207255207256207257207258207259207260207261207262207263207264207265207266207267207268207269207270207271207272207273207274207275207276207277207278207279207280207281207282207283207284207285207286207287207288207289207290207291207292207293207294207295207296207297207298207299207300207301207302207303207304207305207306207307207308207309207310207311207312207313207314207315207316207317207318207319207320207321207322207323207324207325207326207327207328207329207330207331207332207333207334207335207336207337207338207339207340207341207342207343207344207345207346207347207348207349207350207351207352207353207354207355207356207357207358207359207360207361207362207363207364207365207366207367207368207369207370207371207372207373207374207375207376207377207378207379207380207381207382207383207384207385207386207387207388207389207390207391207392207393207394207395207396207397207398207399207400207401207402207403207404207405207406207407207408207409207410207411207412207413207414207415207416207417207418207419207420207421207422207423207424207425207426207427207428207429207430207431207432207433207434207435207436207437207438207439207440207441207442207443207444207445207446207447207448207449207450207451207452207453207454207455207456207457207458207459207460207461207462207463207464207465207466207467207468207469207470207471207472207473207474207475207476207477207478207479207480207481207482207483207484207485207486207487207488207489207490207491207492207493207494207495207496207497207498207499207500207501207502207503207504207505207506207507207508207509207510207511207512207513207514207515207516207517207518207519207520207521207522207523207524207525207526207527207528207529207530207531207532207533207534207535207536207537207538207539207540207541207542207543207544207545207546207547207548207549207550207551207552207553207554207555207556207557207558207559207560207561207562207563207564207565207566207567207568207569207570207571207572207573207574207575207576207577207578207579207580207581207582207583207584207585207586207587207588207589207590207591207592207593207594207595207596207597207598207599207600207601207602207603207604207605207606207607207608207609207610207611207612207613207614207615207616207617207618207619207620207621207622207623207624207625207626207627207628207629207630207631207632207633207634207635207636207637207638207639207640207641207642207643207644207645207646207647207648207649207650207651207652207653207654207655207656207657207658207659207660207661207662207663207664207665207666207667207668207669207670207671207672207673207674207675207676207677207678207679207680207681207682207683207684207685207686207687207688207689207690207691207692207693207694207695207696207697207698207699207700207701207702207703207704207705207706207707207708207709207710207711207712207713207714207715207716207717207718207719207720207721207722207723207724207725207726207727207728207729207730207731207732207733207734207735207736207737207738207739207740207741207742207743207744207745207746207747207748207749207750207751207752207753207754207755207756207757207758207759207760207761207762207763207764207765207766207767207768207769207770207771207772207773207774207775207776207777207778207779207780207781207782207783207784207785207786207787207788207789207790207791207792207793207794207795207796207797207798207799207800207801207802207803207804207805207806207807207808207809207810207811207812207813207814207815207816207817207818207819207820207821207822207823207824207825207826207827207828207829207830207831207832207833207834207835207836207837207838207839207840207841207842207843207844207845207846207847207848207849207850207851207852207853207854207855207856207857207858207859207860207861207862207863207864207865207866207867207868207869207870207871207872207873207874207875207876207877207878207879207880207881207882207883207884207885207886207887207888207889207890207891207892207893207894207895207896207897207898207899207900207901207902207903207904207905207906207907207908207909207910207911207912207913207914207915207916207917207918207919207920207921207922207923207924207925207926207927207928207929207930207931207932207933207934207935207936207937207938207939207940207941207942207943207944207945207946207947207948207949207950207951207952207953207954207955207956207957207958207959207960207961207962207963207964207965207966207967207968207969207970207971207972207973207974207975207976207977207978207979207980207981207982207983207984207985207986207987207988207989207990207991207992207993207994207995207996207997207998207999208000208001208002208003208004208005208006208007208008208009208010208011208012208013208014208015208016208017208018208019208020208021208022208023208024208025208026208027208028208029208030208031208032208033208034208035208036208037208038208039208040208041208042208043208044208045208046208047208048208049208050208051208052208053208054208055208056208057208058208059208060208061208062208063208064208065208066208067208068208069208070208071208072208073208074208075208076208077208078208079208080208081208082208083208084208085208086208087208088208089208090208091208092208093208094208095208096208097208098208099208100208101208102208103208104208105208106208107208108208109208110208111208112208113208114208115208116208117208118208119208120208121208122208123208124208125208126208127208128208129208130208131208132208133208134208135208136208137208138208139208140208141208142208143208144208145208146208147208148208149208150208151208152208153208154208155208156208157208158208159208160208161208162208163208164208165208166208167208168208169208170208171208172208173208174208175208176208177208178208179208180208181208182208183208184208185208186208187208188208189208190208191208192208193208194208195208196208197208198208199208200208201208202208203208204208205208206208207208208208209208210208211208212208213208214208215208216208217208218208219208220208221208222208223208224208225208226208227208228208229208230208231208232208233208234208235208236208237208238208239208240208241208242208243208244208245208246208247208248208249208250208251208252208253208254208255208256208257208258208259208260208261208262208263208264208265208266208267208268208269208270208271208272208273208274208275208276208277208278208279208280208281208282208283208284208285208286208287208288208289208290208291208292208293208294208295208296208297208298208299208300208301208302208303208304208305208306208307208308208309208310208311208312208313208314208315208316208317208318208319208320208321208322208323208324208325208326208327208328208329208330208331208332208333208334208335208336208337208338208339208340208341208342208343208344208345208346208347208348208349208350208351208352208353208354208355208356208357208358208359208360208361208362208363208364208365208366208367208368208369208370208371208372208373208374208375208376208377208378208379208380208381208382208383208384208385208386208387208388208389208390208391208392208393208394208395208396208397208398208399208400208401208402208403208404208405208406208407208408208409208410208411208412208413208414208415208416208417208418208419208420208421208422208423208424208425208426208427208428208429208430208431208432208433208434208435208436208437208438208439208440208441208442208443208444208445208446208447208448208449208450208451208452208453208454208455208456208457208458208459208460208461208462208463208464208465208466208467208468208469208470208471208472208473208474208475208476208477208478208479208480208481208482208483208484208485208486208487208488208489208490208491208492208493208494208495208496208497208498208499208500208501208502208503208504208505208506208507208508208509208510208511208512208513208514208515208516208517208518208519208520208521208522208523208524208525208526208527208528208529208530208531208532208533208534208535208536208537208538208539208540208541208542208543208544208545208546208547208548208549208550208551208552208553208554208555208556208557208558208559208560208561208562208563208564208565208566208567208568208569208570208571208572208573208574208575208576208577208578208579208580208581208582208583208584208585208586208587208588208589208590208591208592208593208594208595208596208597208598208599208600208601208602208603208604208605208606208607208608208609208610208611208612208613208614208615208616208617208618208619208620208621208622208623208624208625208626208627208628208629208630208631208632208633208634208635208636208637208638208639208640208641208642208643208644208645208646208647208648208649208650208651208652208653208654208655208656208657208658208659208660208661208662208663208664208665208666208667208668208669208670208671208672208673208674208675208676208677208678208679208680208681208682208683208684208685208686208687208688208689208690208691208692208693208694208695208696208697208698208699208700208701208702208703208704208705208706208707208708208709208710208711208712208713208714208715208716208717208718208719208720208721208722208723208724208725208726208727208728208729208730208731208732208733208734208735208736208737208738208739208740208741208742208743208744208745208746208747208748208749208750208751208752208753208754208755208756208757208758208759208760208761208762208763208764208765208766208767208768208769208770208771208772208773208774208775208776208777208778208779208780208781208782208783208784208785208786208787208788208789208790208791208792208793208794208795208796208797208798208799208800208801208802208803208804208805208806208807208808208809208810208811208812208813208814208815208816208817208818208819208820208821208822208823208824208825208826208827208828208829208830208831208832208833208834208835208836208837208838208839208840208841208842208843208844208845208846208847208848208849208850208851208852208853208854208855208856208857208858208859208860208861208862208863208864208865208866208867208868208869208870208871208872208873208874208875208876208877208878208879208880208881208882208883208884208885208886208887208888208889208890208891208892208893208894208895208896208897208898208899208900208901208902208903208904208905208906208907208908208909208910208911208912208913208914208915208916208917208918208919208920208921208922208923208924208925208926208927208928208929208930208931208932208933208934208935208936208937208938208939208940208941208942208943208944208945208946208947208948208949208950208951208952208953208954208955208956208957208958208959208960208961208962208963208964208965208966208967208968208969208970208971208972208973208974208975208976208977208978208979208980208981208982208983208984208985208986208987208988208989208990208991208992208993208994208995208996208997208998208999209000209001209002209003209004209005209006209007209008209009209010209011209012209013209014209015209016209017209018209019209020209021209022209023209024209025209026209027209028209029209030209031209032209033209034209035209036209037209038209039209040209041209042209043209044209045209046209047209048209049209050209051209052209053209054209055209056209057209058209059209060209061209062209063209064209065209066209067209068209069209070209071209072209073209074209075209076209077209078209079209080209081209082209083209084209085209086209087209088209089209090209091209092209093209094209095209096209097209098209099209100209101209102209103209104209105209106209107209108209109209110209111209112209113209114209115209116209117209118209119209120209121209122209123209124209125209126209127209128209129209130209131209132209133209134209135209136209137209138209139209140209141209142209143209144209145209146209147209148209149209150209151209152209153209154209155209156209157209158209159209160209161209162209163209164209165209166209167209168209169209170209171209172209173209174209175209176209177209178209179209180209181209182209183209184209185209186209187209188209189209190209191209192209193209194209195209196209197209198209199209200209201209202209203209204209205209206209207209208209209209210209211209212209213209214209215209216209217209218209219209220209221209222209223209224209225209226209227209228209229209230209231209232209233209234209235209236209237209238209239209240209241209242209243209244209245209246209247209248209249209250209251209252209253209254209255209256209257209258209259209260209261209262209263209264209265209266209267209268209269209270209271209272209273209274209275209276209277209278209279209280209281209282209283209284209285209286209287209288209289209290209291209292209293209294209295209296209297209298209299209300209301209302209303209304209305209306209307209308209309209310209311209312209313209314209315209316209317209318209319209320209321209322209323209324209325209326209327209328209329209330209331209332209333209334209335209336209337209338209339209340209341209342209343209344209345209346209347209348209349209350209351209352209353209354209355209356209357209358209359209360209361209362209363209364209365209366209367209368209369209370209371209372209373209374209375209376209377209378209379209380209381209382209383209384209385209386209387209388209389209390209391209392209393209394209395209396209397209398209399209400209401209402209403209404209405209406209407209408209409209410209411209412209413209414209415209416209417209418209419209420209421209422209423209424209425209426209427209428209429209430209431209432209433209434209435209436209437209438209439209440209441209442209443209444209445209446209447209448209449209450209451209452209453209454209455209456209457209458209459209460209461209462209463209464209465209466209467209468209469209470209471209472209473209474209475209476209477209478209479209480209481209482209483209484209485209486209487209488209489209490209491209492209493209494209495209496209497209498209499209500209501209502209503209504209505209506209507209508209509209510209511209512209513209514209515209516209517209518209519209520209521209522209523209524209525209526209527209528209529209530209531209532209533209534209535209536209537209538209539209540209541209542209543209544209545209546209547209548209549209550209551209552209553209554209555209556209557209558209559209560209561209562209563209564209565209566209567209568209569209570209571209572209573209574209575209576209577209578209579209580209581209582209583209584209585209586209587209588209589209590209591209592209593209594209595209596209597209598209599209600209601209602209603209604209605209606209607209608209609209610209611209612209613209614209615209616209617209618209619209620209621209622209623209624209625209626209627209628209629209630209631209632209633209634209635209636209637209638209639209640209641209642209643209644209645209646209647209648209649209650209651209652209653209654209655209656209657209658209659209660209661209662209663209664209665209666209667209668209669209670209671209672209673209674209675209676209677209678209679209680209681209682209683209684209685209686209687209688209689209690209691209692209693209694209695209696209697209698209699209700209701209702209703209704209705209706209707209708209709209710209711209712209713209714209715209716209717209718209719209720209721209722209723209724209725209726209727209728209729209730209731209732209733209734209735209736209737209738209739209740209741209742209743209744209745209746209747209748209749209750209751209752209753209754209755209756209757209758209759209760209761209762209763209764209765209766209767209768209769209770209771209772209773209774209775209776209777209778209779209780209781209782209783209784209785209786209787209788209789209790209791209792209793209794209795209796209797209798209799209800209801209802209803209804209805209806209807209808209809209810209811209812209813209814209815209816209817209818209819209820209821209822209823209824209825209826209827209828209829209830209831209832209833209834209835209836209837209838209839209840209841209842209843209844209845209846209847209848209849209850209851209852209853209854209855209856209857209858209859209860209861209862209863209864209865209866209867209868209869209870209871209872209873209874209875209876209877209878209879209880209881209882209883209884209885209886209887209888209889209890209891209892209893209894209895209896209897209898209899209900209901209902209903209904209905209906209907209908209909209910209911209912209913209914209915209916209917209918209919209920209921209922209923209924209925209926209927209928209929209930209931209932209933209934209935209936209937209938209939209940209941209942209943209944209945209946209947209948209949209950209951209952209953209954209955209956209957209958209959209960209961209962209963209964209965209966209967209968209969209970209971209972209973209974209975209976209977209978209979209980209981209982209983209984209985209986209987209988209989209990209991209992209993209994209995209996209997209998209999210000210001210002210003210004210005210006210007210008210009210010210011210012210013210014210015210016210017210018210019210020210021210022210023210024210025210026210027210028210029210030210031210032210033210034210035210036210037210038210039210040210041210042210043210044210045210046210047210048210049210050210051210052210053210054210055210056210057210058210059210060210061210062210063210064210065210066210067210068210069210070210071210072210073210074210075210076210077210078210079210080210081210082210083210084210085210086210087210088210089210090210091210092210093210094210095210096210097210098210099210100210101210102210103210104210105210106210107210108210109210110210111210112210113210114210115210116210117210118210119210120210121210122210123210124210125210126210127210128210129210130210131210132210133210134210135210136210137210138210139210140210141210142210143210144210145210146210147210148210149210150210151210152210153210154210155210156210157210158210159210160210161210162210163210164210165210166210167210168210169210170210171210172210173210174210175210176210177210178210179210180210181210182210183210184210185210186210187210188210189210190210191210192210193210194210195210196210197210198210199210200210201210202210203210204210205210206210207210208210209210210210211210212210213210214210215210216210217210218210219210220210221210222210223210224210225210226210227210228210229210230210231210232210233210234210235210236210237210238210239210240210241210242210243210244210245210246210247210248210249210250210251210252210253210254210255210256210257210258210259210260210261210262210263210264210265210266210267210268210269210270210271210272210273210274210275210276210277210278210279210280210281210282210283210284210285210286210287210288210289210290210291210292210293210294210295210296210297210298210299210300210301210302210303210304210305210306210307210308210309210310210311210312210313210314210315210316210317210318210319210320210321210322210323210324210325210326210327210328210329210330210331210332210333210334210335210336210337210338210339210340210341210342210343210344210345210346210347210348210349210350210351210352210353210354210355210356210357210358210359210360210361210362210363210364210365210366210367210368210369210370210371210372210373210374210375210376210377210378210379210380210381210382210383210384210385210386210387210388210389210390210391210392210393210394210395210396210397210398210399210400210401210402210403210404210405210406210407210408210409210410210411210412210413210414210415210416210417210418210419210420210421210422210423210424210425210426210427210428210429210430210431210432210433210434210435210436210437210438210439210440210441210442210443210444210445210446210447210448210449210450210451210452210453210454210455210456210457210458210459210460210461210462210463210464210465210466210467210468210469210470210471210472210473210474210475210476210477210478210479210480210481210482210483210484210485210486210487210488210489210490210491210492210493210494210495210496210497210498210499210500210501210502210503210504210505210506210507210508210509210510210511210512210513210514210515210516210517210518210519210520210521210522210523210524210525210526210527210528210529210530210531210532210533210534210535210536210537210538210539210540210541210542210543210544210545210546210547210548210549210550210551210552210553210554210555210556210557210558210559210560210561210562210563210564210565210566210567210568210569210570210571210572210573210574210575210576210577210578210579210580210581210582210583210584210585210586210587210588210589210590210591210592210593210594210595210596210597210598210599210600210601210602210603210604210605210606210607210608210609210610210611210612210613210614210615210616210617210618210619210620210621210622210623210624210625210626210627210628210629210630210631210632210633210634210635210636210637210638210639210640210641210642210643210644210645210646210647210648210649210650210651210652210653210654210655210656210657210658210659210660210661210662210663210664210665210666210667210668210669210670210671210672210673210674210675210676210677210678210679210680210681210682210683210684210685210686210687210688210689210690210691210692210693210694210695210696210697210698210699210700210701210702210703210704210705210706210707210708210709210710210711210712210713210714210715210716210717210718210719210720210721210722210723210724210725210726210727210728210729210730210731210732210733210734210735210736210737210738210739210740210741210742210743210744210745210746210747210748210749210750210751210752210753210754210755210756210757210758210759210760210761210762210763210764210765210766210767210768210769210770210771210772210773210774210775210776210777210778210779210780210781210782210783210784210785210786210787210788210789210790210791210792210793210794210795210796210797210798210799210800210801210802210803210804210805210806210807210808210809210810210811210812210813210814210815210816210817210818210819210820210821210822210823210824210825210826210827210828210829210830210831210832210833210834210835210836210837210838210839210840210841210842210843210844210845210846210847210848210849210850210851210852210853210854210855210856210857210858210859210860210861210862210863210864210865210866210867210868210869210870210871210872210873210874210875210876210877210878210879210880210881210882210883210884210885210886210887210888210889210890210891210892210893210894210895210896210897210898210899210900210901210902210903210904210905210906210907210908210909210910210911210912210913210914210915210916210917210918210919210920210921210922210923210924210925210926210927210928210929210930210931210932210933210934210935210936210937210938210939210940210941210942210943210944210945210946210947210948210949210950210951210952210953210954210955210956210957210958210959210960210961210962210963210964210965210966210967210968210969210970210971210972210973210974210975210976210977210978210979210980210981210982210983210984210985210986210987210988210989210990210991210992210993210994210995210996210997210998210999211000211001211002211003211004211005211006211007211008211009211010211011211012211013211014211015211016211017211018211019211020211021211022211023211024211025211026211027211028211029211030211031211032211033211034211035211036211037211038211039211040211041211042211043211044211045211046211047211048211049211050211051211052211053211054211055211056211057211058211059211060211061211062211063211064211065211066211067211068211069211070211071211072211073211074211075211076211077211078211079211080211081211082211083211084211085211086211087211088211089211090211091211092211093211094211095211096211097211098211099211100211101211102211103211104211105211106211107211108211109211110211111211112211113211114211115211116211117211118211119211120211121211122211123211124211125211126211127211128211129211130211131211132211133211134211135211136211137211138211139211140211141211142211143211144211145211146211147211148211149211150211151211152211153211154211155211156211157211158211159211160211161211162211163211164211165211166211167211168211169211170211171211172211173211174211175211176211177211178211179211180211181211182211183211184211185211186211187211188211189211190211191211192211193211194211195211196211197211198211199211200211201211202211203211204211205211206211207211208211209211210211211211212211213211214211215211216211217211218211219211220211221211222211223211224211225211226211227211228211229211230211231211232211233211234211235211236211237211238211239211240211241211242211243211244211245211246211247211248211249211250211251211252211253211254211255211256211257211258211259211260211261211262211263211264211265211266211267211268211269211270211271211272211273211274211275211276211277211278211279211280211281211282211283211284211285211286211287211288211289211290211291211292211293211294211295211296211297211298211299211300211301211302211303211304211305211306211307211308211309211310211311211312211313211314211315211316211317211318211319211320211321211322211323211324211325211326211327211328211329211330211331211332211333211334211335211336211337211338211339211340211341211342211343211344211345211346211347211348211349211350211351211352211353211354211355211356211357211358211359211360211361211362211363211364211365211366211367211368211369211370211371211372211373211374211375211376211377211378211379211380211381211382211383211384211385211386211387211388211389211390211391211392211393211394211395211396211397211398211399211400211401211402211403211404211405211406211407211408211409211410211411211412211413211414211415211416211417211418211419211420211421211422211423211424211425211426211427211428211429211430211431211432211433211434211435211436211437211438211439211440211441211442211443211444211445211446211447211448211449211450211451211452211453211454211455211456211457211458211459211460211461211462211463211464211465211466211467211468211469211470211471211472211473211474211475211476211477211478211479211480211481211482211483211484211485211486211487211488211489211490211491211492211493211494211495211496211497211498211499211500211501211502211503211504211505211506211507211508211509211510211511211512211513211514211515211516211517211518211519211520211521211522211523211524211525211526211527211528211529211530211531211532211533211534211535211536211537211538211539211540211541211542211543211544211545211546211547211548211549211550211551211552211553211554211555211556211557211558211559211560211561211562211563211564211565211566211567211568211569211570211571211572211573211574211575211576211577211578211579211580211581211582211583211584211585211586211587211588211589211590211591211592211593211594211595211596211597211598211599211600211601211602211603211604211605211606211607211608211609211610211611211612211613211614211615211616211617211618211619211620211621211622211623211624211625211626211627211628211629211630211631211632211633211634211635211636211637211638211639211640211641211642211643211644211645211646211647211648211649211650211651211652211653211654211655211656211657211658211659211660211661211662211663211664211665211666211667211668211669211670211671211672211673211674211675211676211677211678211679211680211681211682211683211684211685211686211687211688211689211690211691211692211693211694211695211696211697211698211699211700211701211702211703211704211705211706211707211708211709211710211711211712211713211714211715211716211717211718211719211720211721211722211723211724211725211726211727211728211729211730211731211732211733211734211735211736211737211738211739211740211741211742211743211744211745211746211747211748211749211750211751211752211753211754211755211756211757211758211759211760211761211762211763211764211765211766211767211768211769211770211771211772211773211774211775211776211777211778211779211780211781211782211783211784211785211786211787211788211789211790211791211792211793211794211795211796211797211798211799211800211801211802211803211804211805211806211807211808211809211810211811211812211813211814211815211816211817211818211819211820211821211822211823211824211825211826211827211828211829211830211831211832211833211834211835211836211837211838211839211840211841211842211843211844211845211846211847211848211849211850211851211852211853211854211855211856211857211858211859211860211861211862211863211864211865211866211867211868211869211870211871211872211873211874211875211876211877211878211879211880211881211882211883211884211885211886211887211888211889211890211891211892211893211894211895211896211897211898211899211900211901211902211903211904211905211906211907211908211909211910211911211912211913211914211915211916211917211918211919211920211921211922211923211924211925211926211927211928211929211930211931211932211933211934211935211936211937211938211939211940211941211942211943211944211945211946211947211948211949211950211951211952211953211954211955211956211957211958211959211960211961211962211963211964211965211966211967211968211969211970211971211972211973211974211975211976211977211978211979211980211981211982211983211984211985211986211987211988211989211990211991211992211993211994211995211996211997211998211999212000212001212002212003212004212005212006212007212008212009212010212011212012212013212014212015212016212017212018212019212020212021212022212023212024212025212026212027212028212029212030212031212032212033212034212035212036212037212038212039212040212041212042212043212044212045212046212047212048212049212050212051212052212053212054212055212056212057212058212059212060212061212062212063212064212065212066212067212068212069212070212071212072212073212074212075212076212077212078212079212080212081212082212083212084212085212086212087212088212089212090212091212092212093212094212095212096212097212098212099212100212101212102212103212104212105212106212107212108212109212110212111212112212113212114212115212116212117212118212119212120212121212122212123212124212125212126212127212128212129212130212131212132212133212134212135212136212137212138212139212140212141212142212143212144212145212146212147212148212149212150212151212152212153212154212155212156212157212158212159212160212161212162212163212164212165212166212167212168212169212170212171212172212173212174212175212176212177212178212179212180212181212182212183212184212185212186212187212188212189212190212191212192212193212194212195212196212197212198212199212200212201212202212203212204212205212206212207212208212209212210212211212212212213212214212215212216212217212218212219212220212221212222212223212224212225212226212227212228212229212230212231212232212233212234212235212236212237212238212239212240212241212242212243212244212245212246212247212248212249212250212251212252212253212254212255212256212257212258212259212260212261212262212263212264212265212266212267212268212269212270212271212272212273212274212275212276212277212278212279212280212281212282212283212284212285212286212287212288212289212290212291212292212293212294212295212296212297212298212299212300212301212302212303212304212305212306212307212308212309212310212311212312212313212314212315212316212317212318212319212320212321212322212323212324212325212326212327212328212329212330212331212332212333212334212335212336212337212338212339212340212341212342212343212344212345212346212347212348212349212350212351212352212353212354212355212356212357212358212359212360212361212362212363212364212365212366212367212368212369212370212371212372212373212374212375212376212377212378212379212380212381212382212383212384212385212386212387212388212389212390212391212392212393212394212395212396212397212398212399212400212401212402212403212404212405212406212407212408212409212410212411212412212413212414212415212416212417212418212419212420212421212422212423212424212425212426212427212428212429212430212431212432212433212434212435212436212437212438212439212440212441212442212443212444212445212446212447212448212449212450212451212452212453212454212455212456212457212458212459212460212461212462212463212464212465212466212467212468212469212470212471212472212473212474212475212476212477212478212479212480212481212482212483212484212485212486212487212488212489212490212491212492212493212494212495212496212497212498212499212500212501212502212503212504212505212506212507212508212509212510212511212512212513212514212515212516212517212518212519212520212521212522212523212524212525212526212527212528212529212530212531212532212533212534212535212536212537212538212539212540212541212542212543212544212545212546212547212548212549212550212551212552212553212554212555212556212557212558212559212560212561212562212563212564212565212566212567212568212569212570212571212572212573212574212575212576212577212578212579212580212581212582212583212584212585212586212587212588212589212590212591212592212593212594212595212596212597212598212599212600212601212602212603212604212605212606212607212608212609212610212611212612212613212614212615212616212617212618212619212620212621212622212623212624212625212626212627212628212629212630212631212632212633212634212635212636212637212638212639212640212641212642212643212644212645212646212647212648212649212650212651212652212653212654212655212656212657212658212659212660212661212662212663212664212665212666212667212668212669212670212671212672212673212674212675212676212677212678212679212680212681212682212683212684212685212686212687212688212689212690212691212692212693212694212695212696212697212698212699212700212701212702212703212704212705212706212707212708212709212710212711212712212713212714212715212716212717212718212719212720212721212722212723212724212725212726212727212728212729212730212731212732212733212734212735212736212737212738212739212740212741212742212743212744212745212746212747212748212749212750212751212752212753212754212755212756212757212758212759212760212761212762212763212764212765212766212767212768212769212770212771212772212773212774212775212776212777212778212779212780212781212782212783212784212785212786212787212788212789212790212791212792212793212794212795212796212797212798212799212800212801212802212803212804212805212806212807212808212809212810212811212812212813212814212815212816212817212818212819212820212821212822212823212824212825212826212827212828212829212830212831212832212833212834212835212836212837212838212839212840212841212842212843212844212845212846212847212848212849212850212851212852212853212854212855212856212857212858212859212860212861212862212863212864212865212866212867212868212869212870212871212872212873212874212875212876212877212878212879212880212881212882212883212884212885212886212887212888212889212890212891212892212893212894212895212896212897212898212899212900212901212902212903212904212905212906212907212908212909212910212911212912212913212914212915212916212917212918212919212920212921212922212923212924212925212926212927212928212929212930212931212932212933212934212935212936212937212938212939212940212941212942212943212944212945212946212947212948212949212950212951212952212953212954212955212956212957212958212959212960212961212962212963212964212965212966212967212968212969212970212971212972212973212974212975212976212977212978212979212980212981212982212983212984212985212986212987212988212989212990212991212992212993212994212995212996212997212998212999213000213001213002213003213004213005213006213007213008213009213010213011213012213013213014213015213016213017213018213019213020213021213022213023213024213025213026213027213028213029213030213031213032213033213034213035213036213037213038213039213040213041213042213043213044213045213046213047213048213049213050213051213052213053213054213055213056213057213058213059213060213061213062213063213064213065213066213067213068213069213070213071213072213073213074213075213076213077213078213079213080213081213082213083213084213085213086213087213088213089213090213091213092213093213094213095213096213097213098213099213100213101213102213103213104213105213106213107213108213109213110213111213112213113213114213115213116213117213118213119213120213121213122213123213124213125213126213127213128213129213130213131213132213133213134213135213136213137213138213139213140213141213142213143213144213145213146213147213148213149213150213151213152213153213154213155213156213157213158213159213160213161213162213163213164213165213166213167213168213169213170213171213172213173213174213175213176213177213178213179213180213181213182213183213184213185213186213187213188213189213190213191213192213193213194213195213196213197213198213199213200213201213202213203213204213205213206213207213208213209213210213211213212213213213214213215213216213217213218213219213220213221213222213223213224213225213226213227213228213229213230213231213232213233213234213235213236213237213238213239213240213241213242213243213244213245213246213247213248213249213250213251213252213253213254213255213256213257213258213259213260213261213262213263213264213265213266213267213268213269213270213271213272213273213274213275213276213277213278213279213280213281213282213283213284213285213286213287213288213289213290213291213292213293213294213295213296213297213298213299213300213301213302213303213304213305213306213307213308213309213310213311213312213313213314213315213316213317213318213319213320213321213322213323213324213325213326213327213328213329213330213331213332213333213334213335213336213337213338213339213340213341213342213343213344213345213346213347213348213349213350213351213352213353213354213355213356213357213358213359213360213361213362213363213364213365213366213367213368213369213370213371213372213373213374213375213376213377213378213379213380213381213382213383213384213385213386213387213388213389213390213391213392213393213394213395213396213397213398213399213400213401213402213403213404213405213406213407213408213409213410213411213412213413213414213415213416213417213418213419213420213421213422213423213424213425213426213427213428213429213430213431213432213433213434213435213436213437213438213439213440213441213442213443213444213445213446213447213448213449213450213451213452213453213454213455213456213457213458213459213460213461213462213463213464213465213466213467213468213469213470213471213472213473213474213475213476213477213478213479213480213481213482213483213484213485213486213487213488213489213490213491213492213493213494213495213496213497213498213499213500213501213502213503213504213505213506213507213508213509213510213511213512213513213514213515213516213517213518213519213520213521213522213523213524213525213526213527213528213529213530213531213532213533213534213535213536213537213538213539213540213541213542213543213544213545213546213547213548213549213550213551213552213553213554213555213556213557213558213559213560213561213562213563213564213565213566213567213568213569213570213571213572213573213574213575213576213577213578213579213580213581213582213583213584213585213586213587213588213589213590213591213592213593213594213595213596213597213598213599213600213601213602213603213604213605213606213607213608213609213610213611213612213613213614213615213616213617213618213619213620213621213622213623213624213625213626213627213628213629213630213631213632213633213634213635213636213637213638213639213640213641213642213643213644213645213646213647213648213649213650213651213652213653213654213655213656213657213658213659213660213661213662213663213664213665213666213667213668213669213670213671213672213673213674213675213676213677213678213679213680213681213682213683213684213685213686213687213688213689213690213691213692213693213694213695213696213697213698213699213700213701213702213703213704213705213706213707213708213709213710213711213712213713213714213715213716213717213718213719213720213721213722213723213724213725213726213727213728213729213730213731213732213733213734213735213736213737213738213739213740213741213742213743213744213745213746213747213748213749213750213751213752213753213754213755213756213757213758213759213760213761213762213763213764213765213766213767213768213769213770213771213772213773213774213775213776213777213778213779213780213781213782213783213784213785213786213787213788213789213790213791213792213793213794213795213796213797213798213799213800213801213802213803213804213805213806213807213808213809213810213811213812213813213814213815213816213817213818213819213820213821213822213823213824213825213826213827213828213829213830213831213832213833213834213835213836213837213838213839213840213841213842213843213844213845213846213847213848213849213850213851213852213853213854213855213856213857213858213859213860213861213862213863213864213865213866213867213868213869213870213871213872213873213874213875213876213877213878213879213880213881213882213883213884213885213886213887213888213889213890213891213892213893213894213895213896213897213898213899213900213901213902213903213904213905213906213907213908213909213910213911213912213913213914213915213916213917213918213919213920213921213922213923213924213925213926213927213928213929213930213931213932213933213934213935213936213937213938213939213940213941213942213943213944213945213946213947213948213949213950213951213952213953213954213955213956213957213958213959213960213961213962213963213964213965213966213967213968213969213970213971213972213973213974213975213976213977213978213979213980213981213982213983213984213985213986213987213988213989213990213991213992213993213994213995213996213997213998213999214000214001214002214003214004214005214006214007214008214009214010214011214012214013214014214015214016214017214018214019214020214021214022214023214024214025214026214027214028214029214030214031214032214033214034214035214036214037214038214039214040214041214042214043214044214045214046214047214048214049214050214051214052214053214054214055214056214057214058214059214060214061214062214063214064214065214066214067214068214069214070214071214072214073214074214075214076214077214078214079214080214081214082214083214084214085214086214087214088214089214090214091214092214093214094214095214096214097214098214099214100214101214102214103214104214105214106214107214108214109214110214111214112214113214114214115214116214117214118214119214120214121214122214123214124214125214126214127214128214129214130214131214132214133214134214135214136214137214138214139214140214141214142214143214144214145214146214147214148214149214150214151214152214153214154214155214156214157214158214159214160214161214162214163214164214165214166214167214168214169214170214171214172214173214174214175214176214177214178214179214180214181214182214183214184214185214186214187214188214189214190214191214192214193214194214195214196214197214198214199214200214201214202214203214204214205214206214207214208214209214210214211214212214213214214214215214216214217214218214219214220214221214222214223214224214225214226214227214228214229214230214231214232214233214234214235214236214237214238214239214240214241214242214243214244214245214246214247214248214249214250214251214252214253214254214255214256214257214258214259214260214261214262214263214264214265214266214267214268214269214270214271214272214273214274214275214276214277214278214279214280214281214282214283214284214285214286214287214288214289214290214291214292214293214294214295214296214297214298214299214300214301214302214303214304214305214306214307214308214309214310214311214312214313214314214315214316214317214318214319214320214321214322214323214324214325214326214327214328214329214330214331214332214333214334214335214336214337214338214339214340214341214342214343214344214345214346214347214348214349214350214351214352214353214354214355214356214357214358214359214360214361214362214363214364214365214366214367214368214369214370214371214372214373214374214375214376214377214378214379214380214381214382214383214384214385214386214387214388214389214390214391214392214393214394214395214396214397214398214399214400214401214402214403214404214405214406214407214408214409214410214411214412214413214414214415214416214417214418214419214420214421214422214423214424214425214426214427214428214429214430214431214432214433214434214435214436214437214438214439214440214441214442214443214444214445214446214447214448214449214450214451214452214453214454214455214456214457214458214459214460214461214462214463214464214465214466214467214468214469214470214471214472214473214474214475214476214477214478214479214480214481214482214483214484214485214486214487214488214489214490214491214492214493214494214495214496214497214498214499214500214501214502214503214504214505214506214507214508214509214510214511214512214513214514214515214516214517214518214519214520214521214522214523214524214525214526214527214528214529214530214531214532214533214534214535214536214537214538214539214540214541214542214543214544214545214546214547214548214549214550214551214552214553214554214555214556214557214558214559214560214561214562214563214564214565214566214567214568214569214570214571214572214573214574214575214576214577214578214579214580214581214582214583214584214585214586214587214588214589214590214591214592214593214594214595214596214597214598214599214600214601214602214603214604214605214606214607214608214609214610214611214612214613214614214615214616214617214618214619214620214621214622214623214624214625214626214627214628214629214630214631214632214633214634214635214636214637214638214639214640214641214642214643214644214645214646214647214648214649214650214651214652214653214654214655214656214657214658214659214660214661214662214663214664214665214666214667214668214669214670214671214672214673214674214675214676214677214678214679214680214681214682214683214684214685214686214687214688214689214690214691214692214693214694214695214696214697214698214699214700214701214702214703214704214705214706214707214708214709214710214711214712214713214714214715214716214717214718214719214720214721214722214723214724214725214726214727214728214729214730214731214732214733214734214735214736214737214738214739214740214741214742214743214744214745214746214747214748214749214750214751214752214753214754214755214756214757214758214759214760214761214762214763214764214765214766214767214768214769214770214771214772214773214774214775214776214777214778214779214780214781214782214783214784214785214786214787214788214789214790214791214792214793214794214795214796214797214798214799214800214801214802214803214804214805214806214807214808214809214810214811214812214813214814214815214816214817214818214819214820214821214822214823214824214825214826214827214828214829214830214831214832214833214834214835214836214837214838214839214840214841214842214843214844214845214846214847214848214849214850214851214852214853214854214855214856214857214858214859214860214861214862214863214864214865214866214867214868214869214870214871214872214873214874214875214876214877214878214879214880214881214882214883214884214885214886214887214888214889214890214891214892214893214894214895214896214897214898214899214900214901214902214903214904214905214906214907214908214909214910214911214912214913214914214915214916214917214918214919214920214921214922214923214924214925214926214927214928214929214930214931214932214933214934214935214936214937214938214939214940214941214942214943214944214945214946214947214948214949214950214951214952214953214954214955214956214957214958214959214960214961214962214963214964214965214966214967214968214969214970214971214972214973214974214975214976214977214978214979214980214981214982214983214984214985214986214987214988214989214990214991214992214993214994214995214996214997214998214999215000215001215002215003215004215005215006215007215008215009215010215011215012215013215014215015215016215017215018215019215020215021215022215023215024215025215026215027215028215029215030215031215032215033215034215035215036215037215038215039215040215041215042215043215044215045215046215047215048215049215050215051215052215053215054215055215056215057215058215059215060215061215062215063215064215065215066215067215068215069215070215071215072215073215074215075215076215077215078215079215080215081215082215083215084215085215086215087215088215089215090215091215092215093215094215095215096215097215098215099215100215101215102215103215104215105215106215107215108215109215110215111215112215113215114215115215116215117215118215119215120215121215122215123215124215125215126215127215128215129215130215131215132215133215134215135215136215137215138215139215140215141215142215143215144215145215146215147215148215149215150215151215152215153215154215155215156215157215158215159215160215161215162215163215164215165215166215167215168215169215170215171215172215173215174215175215176215177215178215179215180215181215182215183215184215185215186215187215188215189215190215191215192215193215194215195215196215197215198215199215200215201215202215203215204215205215206215207215208215209215210215211215212215213215214215215215216215217215218215219215220215221215222215223215224215225215226215227215228215229215230215231215232215233215234215235215236215237215238215239215240215241215242215243215244215245215246215247215248215249215250215251215252215253215254215255215256215257215258215259215260215261215262215263215264215265215266215267215268215269215270215271215272215273215274215275215276215277215278215279215280215281215282215283215284215285215286215287215288215289215290215291215292215293215294215295215296215297215298215299215300215301215302215303215304215305215306215307215308215309215310215311215312215313215314215315215316215317215318215319215320215321215322215323215324215325215326215327215328215329215330215331215332215333215334215335215336215337215338215339215340215341215342215343215344215345215346215347215348215349215350215351215352215353215354215355215356215357215358215359215360215361215362215363215364215365215366215367215368215369215370215371215372215373215374215375215376215377215378215379215380215381215382215383215384215385215386215387215388215389215390215391215392215393215394215395215396215397215398215399215400215401215402215403215404215405215406215407215408215409215410215411215412215413215414215415215416215417215418215419215420215421215422215423215424215425215426215427215428215429215430215431215432215433215434215435215436215437215438215439215440215441215442215443215444215445215446215447215448215449215450215451215452215453215454215455215456215457215458215459215460215461215462215463215464215465215466215467215468215469215470215471215472215473215474215475215476215477215478215479215480215481215482215483215484215485215486215487215488215489215490215491215492215493215494215495215496215497215498215499215500215501215502215503215504215505215506215507215508215509215510215511215512215513215514215515215516215517215518215519215520215521215522215523215524215525215526215527215528215529215530215531215532215533215534215535215536215537215538215539215540215541215542215543215544215545215546215547215548215549215550215551215552215553215554215555215556215557215558215559215560215561215562215563215564215565215566215567215568215569215570215571215572215573215574215575215576215577215578215579215580215581215582215583215584215585215586215587215588215589215590215591215592215593215594215595215596215597215598215599215600215601215602215603215604215605215606215607215608215609215610215611215612215613215614215615215616215617215618215619215620215621215622215623215624215625215626215627215628215629215630215631215632215633215634215635215636215637215638215639215640215641215642215643215644215645215646215647215648215649215650215651215652215653215654215655215656215657215658215659215660215661215662215663215664215665215666215667215668215669215670215671215672215673215674215675215676215677215678215679215680215681215682215683215684215685215686215687215688215689215690215691215692215693215694215695215696215697215698215699215700215701215702215703215704215705215706215707215708215709215710215711215712215713215714215715215716215717215718215719215720215721215722215723215724215725215726215727215728215729215730215731215732215733215734215735215736215737215738215739215740215741215742215743215744215745215746215747215748215749215750215751215752215753215754215755215756215757215758215759215760215761215762215763215764215765215766215767215768215769215770215771215772215773215774215775215776215777215778215779215780215781215782215783215784215785215786215787215788215789215790215791215792215793215794215795215796215797215798215799215800215801215802215803215804215805215806215807215808215809215810215811215812215813215814215815215816215817215818215819215820215821215822215823215824215825215826215827215828215829215830215831215832215833215834215835215836215837215838215839215840215841215842215843215844215845215846215847215848215849215850215851215852215853215854215855215856215857215858215859215860215861215862215863215864215865215866215867215868215869215870215871215872215873215874215875215876215877215878215879215880215881215882215883215884215885215886215887215888215889215890215891215892215893215894215895215896215897215898215899215900215901215902215903215904215905215906215907215908215909215910215911215912215913215914215915215916215917215918215919215920215921215922215923215924215925215926215927215928215929215930215931215932215933215934215935215936215937215938215939215940215941215942215943215944215945215946215947215948215949215950215951215952215953215954215955215956215957215958215959215960215961215962215963215964215965215966215967215968215969215970215971215972215973215974215975215976215977215978215979215980215981215982215983215984215985215986215987215988215989215990215991215992215993215994215995215996215997215998215999216000216001216002216003216004216005216006216007216008216009216010216011216012216013216014216015216016216017216018216019216020216021216022216023216024216025216026216027216028216029216030216031216032216033216034216035216036216037216038216039216040216041216042216043216044216045216046216047216048216049216050216051216052216053216054216055216056216057216058216059216060216061216062216063216064216065216066216067216068216069216070216071216072216073216074216075216076216077216078216079216080216081216082216083216084216085216086216087216088216089216090216091216092216093216094216095216096216097216098216099216100216101216102216103216104216105216106216107216108216109216110216111216112216113216114216115216116216117216118216119216120216121216122216123216124216125216126216127216128216129216130216131216132216133216134216135216136216137216138216139216140216141216142216143216144216145216146216147216148216149216150216151216152216153216154216155216156216157216158216159216160216161216162216163216164216165216166216167216168216169216170216171216172216173216174216175216176216177216178216179216180216181216182216183216184216185216186216187216188216189216190216191216192216193216194216195216196216197216198216199216200216201216202216203216204216205216206216207216208216209216210216211216212216213216214216215216216216217216218216219216220216221216222216223216224216225216226216227216228216229216230216231216232216233216234216235216236216237216238216239216240216241216242216243216244216245216246216247216248216249216250216251216252216253216254216255216256216257216258216259216260216261216262216263216264216265216266216267216268216269216270216271216272216273216274216275216276216277216278216279216280216281216282216283216284216285216286216287216288216289216290216291216292216293216294216295216296216297216298216299216300216301216302216303216304216305216306216307216308216309216310216311216312216313216314216315216316216317216318216319216320216321216322216323216324216325216326216327216328216329216330216331216332216333216334216335216336216337216338216339216340216341216342216343216344216345216346216347216348216349216350216351216352216353216354216355216356216357216358216359216360216361216362216363216364216365216366216367216368216369216370216371216372216373216374216375216376216377216378216379216380216381216382216383216384216385216386216387216388216389216390216391216392216393216394216395216396216397216398216399216400216401216402216403216404216405216406216407216408216409216410216411216412216413216414216415216416216417216418216419216420216421216422216423216424216425216426216427216428216429216430216431216432216433216434216435216436216437216438216439216440216441216442216443216444216445216446216447216448216449216450216451216452216453216454216455216456216457216458216459216460216461216462216463216464216465216466216467216468216469216470216471216472216473216474216475216476216477216478216479216480216481216482216483216484216485216486216487216488216489216490216491216492216493216494216495216496216497216498216499216500216501216502216503216504216505216506216507216508216509216510216511216512216513216514216515216516216517216518216519216520216521216522216523216524216525216526216527216528216529216530216531216532216533216534216535216536216537216538216539216540216541216542216543216544216545216546216547216548216549216550216551216552216553216554216555216556216557216558216559216560216561216562216563216564216565216566216567216568216569216570216571216572216573216574216575216576216577216578216579216580216581216582216583216584216585216586216587216588216589216590216591216592216593216594216595216596216597216598216599216600216601216602216603216604216605216606216607216608216609216610216611216612216613216614216615216616216617216618216619216620216621216622216623216624216625216626216627216628216629216630216631216632216633216634216635216636216637216638216639216640216641216642216643216644216645216646216647216648216649216650216651216652216653216654216655216656216657216658216659216660216661216662216663216664216665216666216667216668216669216670216671216672216673216674216675216676216677216678216679216680216681216682216683216684216685216686216687216688216689216690216691216692216693216694216695216696216697216698216699216700216701216702216703216704216705216706216707216708216709216710216711216712216713216714216715216716216717216718216719216720216721216722216723216724216725216726216727216728216729216730216731216732216733216734216735216736216737216738216739216740216741216742216743216744216745216746216747216748216749216750216751216752216753216754216755216756216757216758216759216760216761216762216763216764216765216766216767216768216769216770216771216772216773216774216775216776216777216778216779216780216781216782216783216784216785216786216787216788216789216790216791216792216793216794216795216796216797216798216799216800216801216802216803216804216805216806216807216808216809216810216811216812216813216814216815216816216817216818216819216820216821216822216823216824216825216826216827216828216829216830216831216832216833216834216835216836216837216838216839216840216841216842216843216844216845216846216847216848216849216850216851216852216853216854216855216856216857216858216859216860216861216862216863216864216865216866216867216868216869216870216871216872216873216874216875216876216877216878216879216880216881216882216883216884216885216886216887216888216889216890216891216892216893216894216895216896216897216898216899216900216901216902216903216904216905216906216907216908216909216910216911216912216913216914216915216916216917216918216919216920216921216922216923216924216925216926216927216928216929216930216931216932216933216934216935216936216937216938216939216940216941216942216943216944216945216946216947216948216949216950216951216952216953216954216955216956216957216958216959216960216961216962216963216964216965216966216967216968216969216970216971216972216973216974216975216976216977216978216979216980216981216982216983216984216985216986216987216988216989216990216991216992216993216994216995216996216997216998216999217000217001217002217003217004217005217006217007217008217009217010217011217012217013217014217015217016217017217018217019217020217021217022217023217024217025217026217027217028217029217030217031217032217033217034217035217036217037217038217039217040217041217042217043217044217045217046217047217048217049217050217051217052217053217054217055217056217057217058217059217060217061217062217063217064217065217066217067217068217069217070217071217072217073217074217075217076217077217078217079217080217081217082217083217084217085217086217087217088217089217090217091217092217093217094217095217096217097217098217099217100217101217102217103217104217105217106217107217108217109217110217111217112217113217114217115217116217117217118217119217120217121217122217123217124217125217126217127217128217129217130217131217132217133217134217135217136217137217138217139217140217141217142217143217144217145217146217147217148217149217150217151217152217153217154217155217156217157217158217159217160217161217162217163217164217165217166217167217168217169217170217171217172217173217174217175217176217177217178217179217180217181217182217183217184217185217186217187217188217189217190217191217192217193217194217195217196217197217198217199217200217201217202217203217204217205217206217207217208217209217210217211217212217213217214217215217216217217217218217219217220217221217222217223217224217225217226217227217228217229217230217231217232217233217234217235217236217237217238217239217240217241217242217243217244217245217246217247217248217249217250217251217252217253217254217255217256217257217258217259217260217261217262217263217264217265217266217267217268217269217270217271217272217273217274217275217276217277217278217279217280217281217282217283217284217285217286217287217288217289217290217291217292217293217294217295217296217297217298217299217300217301217302217303217304217305217306217307217308217309217310217311217312217313217314217315217316217317217318217319217320217321217322217323217324217325217326217327217328217329217330217331217332217333217334217335217336217337217338217339217340217341217342217343217344217345217346217347217348217349217350217351217352217353217354217355217356217357217358217359217360217361217362217363217364217365217366217367217368217369217370217371217372217373217374217375217376217377217378217379217380217381217382217383217384217385217386217387217388217389217390217391217392217393217394217395217396217397217398217399217400217401217402217403217404217405217406217407217408217409217410217411217412217413217414217415217416217417217418217419217420217421217422217423217424217425217426217427217428217429217430217431217432217433217434217435217436217437217438217439217440217441217442217443217444217445217446217447217448217449217450217451217452217453217454217455217456217457217458217459217460217461217462217463217464217465217466217467217468217469217470217471217472217473217474217475217476217477217478217479217480217481217482217483217484217485217486217487217488217489217490217491217492217493217494217495217496217497217498217499217500217501217502217503217504217505217506217507217508217509217510217511217512217513217514217515217516217517217518217519217520217521217522217523217524217525217526217527217528217529217530217531217532217533217534217535217536217537217538217539217540217541217542217543217544217545217546217547217548217549217550217551217552217553217554217555217556217557217558217559217560217561217562217563217564217565217566217567217568217569217570217571217572217573217574217575217576217577217578217579217580217581217582217583217584217585217586217587217588217589217590217591217592217593217594217595217596217597217598217599217600217601217602217603217604217605217606217607217608217609217610217611217612217613217614217615217616217617217618217619217620217621217622217623217624217625217626217627217628217629217630217631217632217633217634217635217636217637217638217639217640217641217642217643217644217645217646217647217648217649217650217651217652217653217654217655217656217657217658217659217660217661217662217663217664217665217666217667217668217669217670217671217672217673217674217675217676217677217678217679217680217681217682217683217684217685217686217687217688217689217690217691217692217693217694217695217696217697217698217699217700217701217702217703217704217705217706217707217708217709217710217711217712217713217714217715217716217717217718217719217720217721217722217723217724217725217726217727217728217729217730217731217732217733217734217735217736217737217738217739217740217741217742217743217744217745217746217747217748217749217750217751217752217753217754217755217756217757217758217759217760217761217762217763217764217765217766217767217768217769217770217771217772217773217774217775217776217777217778217779217780217781217782217783217784217785217786217787217788217789217790217791217792217793217794217795217796217797217798217799217800217801217802217803217804217805217806217807217808217809217810217811217812217813217814217815217816217817217818217819217820217821217822217823217824217825217826217827217828217829217830217831217832217833217834217835217836217837217838217839217840217841217842217843217844217845217846217847217848217849217850217851217852217853217854217855217856217857217858217859217860217861217862217863217864217865217866217867217868217869217870217871217872217873217874217875217876217877217878217879217880217881217882217883217884217885217886217887217888217889217890217891217892217893217894217895217896217897217898217899217900217901217902217903217904217905217906217907217908217909217910217911217912217913217914217915217916217917217918217919217920217921217922217923217924217925217926217927217928217929217930217931217932217933217934217935217936217937217938217939217940217941217942217943217944217945217946217947217948217949217950217951217952217953217954217955217956217957217958217959217960217961217962217963217964217965217966217967217968217969217970217971217972217973217974217975217976217977217978217979217980217981217982217983217984217985217986217987217988217989217990217991217992217993217994217995217996217997217998217999218000218001218002218003218004218005218006218007218008218009218010218011218012218013218014218015218016218017218018218019218020218021218022218023218024218025218026218027218028218029218030218031218032218033218034218035218036218037218038218039218040218041218042218043218044218045218046218047218048218049218050218051218052218053218054218055218056218057218058218059218060218061218062218063218064218065218066218067218068218069218070218071218072218073218074218075218076218077218078218079218080218081218082218083218084218085218086218087218088218089218090218091218092218093218094218095218096218097218098218099218100218101218102218103218104218105218106218107218108218109218110218111218112218113218114218115218116218117218118218119218120218121218122218123218124218125218126218127218128218129218130218131218132218133218134218135218136218137218138218139218140218141218142218143218144218145218146218147218148218149218150218151218152218153218154218155218156218157218158218159218160218161218162218163218164218165218166218167218168218169218170218171218172218173218174218175218176218177218178218179218180218181218182218183218184218185218186218187218188218189218190218191218192218193218194218195218196218197218198218199218200218201218202218203218204218205218206218207218208218209218210218211218212218213218214218215218216218217218218218219218220218221218222218223218224218225218226218227218228218229218230218231218232218233218234218235218236218237218238218239218240218241218242218243218244218245218246218247218248218249218250218251218252218253218254218255218256218257218258218259218260218261218262218263218264218265218266218267218268218269218270218271218272218273218274218275218276218277218278218279218280218281218282218283218284218285218286218287218288218289218290218291218292218293218294218295218296218297218298218299218300218301218302218303218304218305218306218307218308218309218310218311218312218313218314218315218316218317218318218319218320218321218322218323218324218325218326218327218328218329218330218331218332218333218334218335218336218337218338218339218340218341218342218343218344218345218346218347218348218349218350218351218352218353218354218355218356218357218358218359218360218361218362218363218364218365218366218367218368218369218370218371218372218373218374218375218376218377218378218379218380218381218382218383218384218385218386218387218388218389218390218391218392218393218394218395218396218397218398218399218400218401218402218403218404218405218406218407218408218409218410218411218412218413218414218415218416218417218418218419218420218421218422218423218424218425218426218427218428218429218430218431218432218433218434218435218436218437218438218439218440218441218442218443218444218445218446218447218448218449218450218451218452218453218454218455218456218457218458218459218460218461218462218463218464218465218466218467218468218469218470218471218472218473218474218475218476218477218478218479218480218481218482218483218484218485218486218487218488218489218490218491218492218493218494218495218496218497218498218499218500218501218502218503218504218505218506218507218508218509218510218511218512218513218514218515218516218517218518218519218520218521218522218523218524218525218526218527218528218529218530218531218532218533218534218535218536218537218538218539218540218541218542218543218544218545218546218547218548218549218550218551218552218553218554218555218556218557218558218559218560218561218562218563218564218565218566218567218568218569218570218571218572218573218574218575218576218577218578218579218580218581218582218583218584218585218586218587218588218589218590218591218592218593218594218595218596218597218598218599218600218601218602218603218604218605218606218607218608218609218610218611218612218613218614218615218616218617218618218619218620218621218622218623218624218625218626218627218628218629218630218631218632218633218634218635218636218637218638218639218640218641218642218643218644218645218646218647218648218649218650218651218652218653218654218655218656218657218658218659218660218661218662218663218664218665218666218667218668218669218670218671218672218673218674218675218676218677218678218679218680218681218682218683218684218685218686218687218688218689218690218691218692218693218694218695218696218697218698218699218700218701218702218703218704218705218706218707218708218709218710218711218712218713218714218715218716218717218718218719218720218721218722218723218724218725218726218727218728218729218730218731218732218733218734218735218736218737218738218739218740218741218742218743218744218745218746218747218748218749218750218751218752218753218754218755218756218757218758218759218760218761218762218763218764218765218766218767218768218769218770218771218772218773218774218775218776218777218778218779218780218781218782218783218784218785218786218787218788218789218790218791218792218793218794218795218796218797218798218799218800218801218802218803218804218805218806218807218808218809218810218811218812218813218814218815218816218817218818218819218820218821218822218823218824218825218826218827218828218829218830218831218832218833218834218835218836218837218838218839218840218841218842218843218844218845218846218847218848218849218850218851218852218853218854218855218856218857218858218859218860218861218862218863218864218865218866218867218868218869218870218871218872218873218874218875218876218877218878218879218880218881218882218883218884218885218886218887218888218889218890218891218892218893218894218895218896218897218898218899218900218901218902218903218904218905218906218907218908218909218910218911218912218913218914218915218916218917218918218919218920218921218922218923218924218925218926218927218928218929218930218931218932218933218934218935218936218937218938218939218940218941218942218943218944218945218946218947218948218949218950218951218952218953218954218955218956218957218958218959218960218961218962218963218964218965218966218967218968218969218970218971218972218973218974218975218976218977218978218979218980218981218982218983218984218985218986218987218988218989218990218991218992218993218994218995218996218997218998218999219000219001219002219003219004219005219006219007219008219009219010219011219012219013219014219015219016219017219018219019219020219021219022219023219024219025219026219027219028219029219030219031219032219033219034219035219036219037219038219039219040219041219042219043219044219045219046219047219048219049219050219051219052219053219054219055219056219057219058219059219060219061219062219063219064219065219066219067219068219069219070219071219072219073219074219075219076219077219078219079219080219081219082219083219084219085219086219087219088219089219090219091219092219093219094219095219096219097219098219099219100219101219102219103219104219105219106219107219108219109219110219111219112219113219114219115219116219117219118219119219120219121219122219123219124219125219126219127219128219129219130219131219132219133219134219135219136219137219138219139219140219141219142219143219144219145219146219147219148219149219150219151219152219153219154219155219156219157219158219159219160219161219162219163219164219165219166219167219168219169219170219171219172219173219174219175219176219177219178219179219180219181219182219183219184219185219186219187219188219189219190219191219192219193219194219195219196219197219198219199219200219201219202219203219204219205219206219207219208219209219210219211219212219213219214219215219216219217219218219219219220219221219222219223219224219225219226219227219228219229219230219231219232219233219234219235219236219237219238219239219240219241219242219243219244219245219246219247219248219249219250219251219252219253219254219255219256219257219258219259219260219261219262219263219264219265219266219267219268219269219270219271219272219273219274219275219276219277219278219279219280219281219282219283219284219285219286219287219288219289219290219291219292219293219294219295219296219297219298219299219300219301219302219303219304219305219306219307219308219309219310219311219312219313219314219315219316219317219318219319219320219321219322219323219324219325219326219327219328219329219330219331219332219333219334219335219336219337219338219339219340219341219342219343219344219345219346219347219348219349219350219351219352219353219354219355219356219357219358219359219360219361219362219363219364219365219366219367219368219369219370219371219372219373219374219375219376219377219378219379219380219381219382219383219384219385219386219387219388219389219390219391219392219393219394219395219396219397219398219399219400219401219402219403219404219405219406219407219408219409219410219411219412219413219414219415219416219417219418219419219420219421219422219423219424219425219426219427219428219429219430219431219432219433219434219435219436219437219438219439219440219441219442219443219444219445219446219447219448219449219450219451219452219453219454219455219456219457219458219459219460219461219462219463219464219465219466219467219468219469219470219471219472219473219474219475219476219477219478219479219480219481219482219483219484219485219486219487219488219489219490219491219492219493219494219495219496219497219498219499219500219501219502219503219504219505219506219507219508219509219510219511219512219513219514219515219516219517219518219519219520219521219522219523219524219525219526219527219528219529219530219531219532219533219534219535219536219537219538219539219540219541219542219543219544219545219546219547219548219549219550219551219552219553219554219555219556219557219558219559219560219561219562219563219564219565219566219567219568219569219570219571219572219573219574219575219576219577219578219579219580219581219582219583219584219585219586219587219588219589219590219591219592219593219594219595219596219597219598219599219600219601219602219603219604219605219606219607219608219609219610219611219612219613219614219615219616219617219618219619219620219621219622219623219624219625219626219627219628219629219630219631219632219633219634219635219636219637219638219639219640219641219642219643219644219645219646219647219648219649219650219651219652219653219654219655219656219657219658219659219660219661219662219663219664219665219666219667219668219669219670219671219672219673219674219675219676219677219678219679219680219681219682219683219684219685219686219687219688219689219690219691219692219693219694219695219696219697219698219699219700219701219702219703219704219705219706219707219708219709219710219711219712219713219714219715219716219717219718219719219720219721219722219723219724219725219726219727219728219729219730219731219732219733219734219735219736219737219738219739219740219741219742219743219744219745219746219747219748219749219750219751219752219753219754219755219756219757219758219759219760219761219762219763219764219765219766219767219768219769219770219771219772219773219774219775219776219777219778219779219780219781219782219783219784219785219786219787219788219789219790219791219792219793219794219795219796219797219798219799219800219801219802219803219804219805219806219807219808219809219810219811219812219813219814219815219816219817219818219819219820219821219822219823219824219825219826219827219828219829219830219831219832219833219834219835219836219837219838219839219840219841219842219843219844219845219846219847219848219849219850219851219852219853219854219855219856219857219858219859219860219861219862219863219864219865219866219867219868219869219870219871219872219873219874219875219876219877219878219879219880219881219882219883219884219885219886219887219888219889219890219891219892219893219894219895219896219897219898219899219900219901219902219903219904219905219906219907219908219909219910219911219912219913219914219915219916219917219918219919219920219921219922219923219924219925219926219927219928219929219930219931219932219933219934219935219936219937219938219939219940219941219942219943219944219945219946219947219948219949219950219951219952219953219954219955219956219957219958219959219960219961219962219963219964219965219966219967219968219969219970219971219972219973219974219975219976219977219978219979219980219981219982219983219984219985219986219987219988219989219990219991219992219993219994219995219996219997219998219999220000220001220002220003220004220005220006220007220008220009220010220011220012220013220014220015220016220017220018220019220020220021220022220023220024220025220026220027220028220029220030220031220032220033220034220035220036220037220038220039220040220041220042220043220044220045220046220047220048220049220050220051220052220053220054220055220056220057220058220059220060220061220062220063220064220065220066220067220068220069220070220071220072220073220074220075220076220077220078220079220080220081220082220083220084220085220086220087220088220089220090220091220092220093220094220095220096220097220098220099220100220101220102220103220104220105220106220107220108220109220110220111220112220113220114220115220116220117220118220119220120220121220122220123220124220125220126220127220128220129220130220131220132220133220134220135220136220137220138220139220140220141220142220143220144220145220146220147220148220149220150220151220152220153220154220155220156220157220158220159220160220161220162220163220164220165220166220167220168220169220170220171220172220173220174220175220176220177220178220179220180220181220182220183220184220185220186220187220188220189220190220191220192220193220194220195220196220197220198220199220200220201220202220203220204220205220206220207220208220209220210220211220212220213220214220215220216220217220218220219220220220221220222220223220224220225220226220227220228220229220230220231220232220233220234220235220236220237220238220239220240220241220242220243220244220245220246220247220248220249220250220251220252220253220254220255220256220257220258220259220260220261220262220263220264220265220266220267220268220269220270220271220272220273220274220275220276220277220278220279220280220281220282220283220284220285220286220287220288220289220290220291220292220293220294220295220296220297220298220299220300220301220302220303220304220305220306220307220308220309220310220311220312220313220314220315220316220317220318220319220320220321220322220323220324220325220326220327220328220329220330220331220332220333220334220335220336220337220338220339220340220341220342220343220344220345220346220347220348220349220350220351220352220353220354220355220356220357220358220359220360220361220362220363220364220365220366220367220368220369220370220371220372220373220374220375220376220377220378220379220380220381220382220383220384220385220386220387220388220389220390220391220392220393220394220395220396220397220398220399220400220401220402220403220404220405220406220407220408220409220410220411220412220413220414220415220416220417220418220419220420220421220422220423220424220425220426220427220428220429220430220431220432220433220434220435220436220437220438220439220440220441220442220443220444220445220446220447220448220449220450220451220452220453220454220455220456220457220458220459220460220461220462220463220464220465220466220467220468220469220470220471220472220473220474220475220476220477220478220479220480220481220482220483220484220485220486220487220488220489220490220491220492220493220494220495220496220497220498220499220500220501220502220503220504220505220506220507220508220509220510220511220512220513220514220515220516220517220518220519220520220521220522220523220524220525220526220527220528220529220530220531220532220533220534220535220536220537220538220539220540220541220542220543220544220545220546220547220548220549220550220551220552220553220554220555220556220557220558220559220560220561220562220563220564220565220566220567220568220569220570220571220572220573220574220575220576220577220578220579220580220581220582220583220584220585220586220587220588220589220590220591220592220593220594220595220596220597220598220599220600220601220602220603220604220605220606220607220608220609220610220611220612220613220614220615220616220617220618220619220620220621220622220623220624220625220626220627220628220629220630220631220632220633220634220635220636220637220638220639220640220641220642220643220644220645220646220647220648220649220650220651220652220653220654220655220656220657220658220659220660220661220662220663220664220665220666220667220668220669220670220671220672220673220674220675220676220677220678220679220680220681220682220683220684220685220686220687220688220689220690220691220692220693220694220695220696220697220698220699220700220701220702220703220704220705220706220707220708220709220710220711220712220713220714220715220716220717220718220719220720220721220722220723220724220725220726220727220728220729220730220731220732220733220734220735220736220737220738220739220740220741220742220743220744220745220746220747220748220749220750220751220752220753220754220755220756220757220758220759220760220761220762220763220764220765220766220767220768220769220770220771220772220773220774220775220776220777220778220779220780220781220782220783220784220785220786220787220788220789220790220791220792220793220794220795220796220797220798220799220800220801220802220803220804220805220806220807220808220809220810220811220812220813220814220815220816220817220818220819220820220821220822220823220824220825220826220827220828220829220830220831220832220833220834220835220836220837220838220839220840220841220842220843220844220845220846220847220848220849220850220851220852220853220854220855220856220857220858220859220860220861220862220863220864220865220866220867220868220869220870220871220872220873220874220875220876220877220878220879220880220881220882220883220884220885220886220887220888220889220890220891220892220893220894220895220896220897220898220899220900220901220902220903220904220905220906220907220908220909220910220911220912220913220914220915220916220917220918220919220920220921220922220923220924220925220926220927220928220929220930220931220932220933220934220935220936220937220938220939220940220941220942220943220944220945220946220947220948220949220950220951220952220953220954220955220956220957220958220959220960220961220962220963220964220965220966220967220968220969220970220971220972220973220974220975220976220977220978220979220980220981220982220983220984220985220986220987220988220989220990220991220992220993220994220995220996220997220998220999221000221001221002221003221004221005221006221007221008221009221010221011221012221013221014221015221016221017221018221019221020221021221022221023221024221025221026221027221028221029221030221031221032221033221034221035221036221037221038221039221040221041221042221043221044221045221046221047221048221049221050221051221052221053221054221055221056221057221058221059221060221061221062221063221064221065221066221067221068221069221070221071221072221073221074221075221076221077221078221079221080221081221082221083221084221085221086221087221088221089221090221091221092221093221094221095221096221097221098221099221100221101221102221103221104221105221106221107221108221109221110221111221112221113221114221115221116221117221118221119221120221121221122221123221124221125221126221127221128221129221130221131221132221133221134221135221136221137221138221139221140221141221142221143221144221145221146221147221148221149221150221151221152221153221154221155221156221157221158221159221160221161221162221163221164221165221166221167221168221169221170221171221172221173221174221175221176221177221178221179221180221181221182221183221184221185221186221187221188221189221190221191221192221193221194221195221196221197221198221199221200221201221202221203221204221205221206221207221208221209221210221211221212221213221214221215221216221217221218221219221220221221221222221223221224221225221226221227221228221229221230221231221232221233221234221235221236221237221238221239221240221241221242221243221244221245221246221247221248221249221250221251221252221253221254221255221256221257221258221259221260221261221262221263221264221265221266221267221268221269221270221271221272221273221274221275221276221277221278221279221280221281221282221283221284221285221286221287221288221289221290221291221292221293221294221295221296221297221298221299221300221301221302221303221304221305221306221307221308221309221310221311221312221313221314221315221316221317221318221319221320221321221322221323221324221325221326221327221328221329221330221331221332221333221334221335221336221337221338221339221340221341221342221343221344221345221346221347221348221349221350221351221352221353221354221355221356221357221358221359221360221361221362221363221364221365221366221367221368221369221370221371221372221373221374221375221376221377221378221379221380221381221382221383221384221385221386221387221388221389221390221391221392221393221394221395221396221397221398221399221400221401221402221403221404221405221406221407221408221409221410221411221412221413221414221415221416221417221418221419221420221421221422221423221424221425221426221427221428221429221430221431221432221433221434221435221436221437221438221439221440221441221442221443221444221445221446221447221448221449221450221451221452221453221454221455221456221457221458221459221460221461221462221463221464221465221466221467221468221469221470221471221472221473221474221475221476221477221478221479221480221481221482221483221484221485221486221487221488221489221490221491221492221493221494221495221496221497221498221499221500221501221502221503221504221505221506221507221508221509221510221511221512221513221514221515221516221517221518221519221520221521221522221523221524221525221526221527221528221529221530221531221532221533221534221535221536221537221538221539221540221541221542221543221544221545221546221547221548221549221550221551221552221553221554221555221556221557221558221559221560221561221562221563221564221565221566221567221568221569221570221571221572221573221574221575221576221577221578221579221580221581221582221583221584221585221586221587221588221589221590221591221592221593221594221595221596221597221598221599221600221601221602221603221604221605221606221607221608221609221610221611221612221613221614221615221616221617221618221619221620221621221622221623221624221625221626221627221628221629221630221631221632221633221634221635221636221637221638221639221640221641221642221643221644221645221646221647221648221649221650221651221652221653221654221655221656221657221658221659221660221661221662221663221664221665221666221667221668221669221670221671221672221673221674221675221676221677221678221679221680221681221682221683221684221685221686221687221688221689221690221691221692221693221694221695221696221697221698221699221700221701221702221703221704221705221706221707221708221709221710221711221712221713221714221715221716221717221718221719221720221721221722221723221724221725221726221727221728221729221730221731221732221733221734221735221736221737221738221739221740221741221742221743221744221745221746221747221748221749221750221751221752221753221754221755221756221757221758221759221760221761221762221763221764221765221766221767221768221769221770221771221772221773221774221775221776221777221778221779221780221781221782221783221784221785221786221787221788221789221790221791221792221793221794221795221796221797221798221799221800221801221802221803221804221805221806221807221808221809221810221811221812221813221814221815221816221817221818221819221820221821221822221823221824221825221826221827221828221829221830221831221832221833221834221835221836221837221838221839221840221841221842221843221844221845221846221847221848221849221850221851221852221853221854221855221856221857221858221859221860221861221862221863221864221865221866221867221868221869221870221871221872221873221874221875221876221877221878221879221880221881221882221883221884221885221886221887221888221889221890221891221892221893221894221895221896221897221898221899221900221901221902221903221904221905221906221907221908221909221910221911221912221913221914221915221916221917221918221919221920221921221922221923221924221925221926221927221928221929221930221931221932221933221934221935221936221937221938221939221940221941221942221943221944221945221946221947221948221949221950221951221952221953221954221955221956221957221958221959221960221961221962221963221964221965221966221967221968221969221970221971221972221973221974221975221976221977221978221979221980221981221982221983221984221985221986221987221988221989221990221991221992221993221994221995221996221997221998221999222000222001222002222003222004222005222006222007222008222009222010222011222012222013222014222015222016222017222018222019222020222021222022222023222024222025222026222027222028222029222030222031222032222033222034222035222036222037222038222039222040222041222042222043222044222045222046222047222048222049222050222051222052222053222054222055222056222057222058222059222060222061222062222063222064222065222066222067222068222069222070222071222072222073222074222075222076222077222078222079222080222081222082222083222084222085222086222087222088222089222090222091222092222093222094222095222096222097222098222099222100222101222102222103222104222105222106222107222108222109222110222111222112222113222114222115222116222117222118222119222120222121222122222123222124222125222126222127222128222129222130222131222132222133222134222135222136222137222138222139222140222141222142222143222144222145222146222147222148222149222150222151222152222153222154222155222156222157222158222159222160222161222162222163222164222165222166222167222168222169222170222171222172222173222174222175222176222177222178222179222180222181222182222183222184222185222186222187222188222189222190222191222192222193222194222195222196222197222198222199222200222201222202222203222204222205222206222207222208222209222210222211222212222213222214222215222216222217222218222219222220222221222222222223222224222225222226222227222228222229222230222231222232222233222234222235222236222237222238222239222240222241222242222243222244222245222246222247222248222249222250222251222252222253222254222255222256222257222258222259222260222261222262222263222264222265222266222267222268222269222270222271222272222273222274222275222276222277222278222279222280222281222282222283222284222285222286222287222288222289222290222291222292222293222294222295222296222297222298222299222300222301222302222303222304222305222306222307222308222309222310222311222312222313222314222315222316222317222318222319222320222321222322222323222324222325222326222327222328222329222330222331222332222333222334222335222336222337222338222339222340222341222342222343222344222345222346222347222348222349222350222351222352222353222354222355222356222357222358222359222360222361222362222363222364222365222366222367222368222369222370222371222372222373222374222375222376222377222378222379222380222381222382222383222384222385222386222387222388222389222390222391222392222393222394222395222396222397222398222399222400222401222402222403222404222405222406222407222408222409222410222411222412222413222414222415222416222417222418222419222420222421222422222423222424222425222426222427222428222429222430222431222432222433222434222435222436222437222438222439222440222441222442222443222444222445222446222447222448222449222450222451222452222453222454222455222456222457222458222459222460222461222462222463222464222465222466222467222468222469222470222471222472222473222474222475222476222477222478222479222480222481222482222483222484222485222486222487222488222489222490222491222492222493222494222495222496222497222498222499222500222501222502222503222504222505222506222507222508222509222510222511222512222513222514222515222516222517222518222519222520222521222522222523222524222525222526222527222528222529222530222531222532222533222534222535222536222537222538222539222540222541222542222543222544222545222546222547222548222549222550222551222552222553222554222555222556222557222558222559222560222561222562222563222564222565222566222567222568222569222570222571222572222573222574222575222576222577222578222579222580222581222582222583222584222585222586222587222588222589222590222591222592222593222594222595222596222597222598222599222600222601222602222603222604222605222606222607222608222609222610222611222612222613222614222615222616222617222618222619222620222621222622222623222624222625222626222627222628222629222630222631222632222633222634222635222636222637222638222639222640222641222642222643222644222645222646222647222648222649222650222651222652222653222654222655222656222657222658222659222660222661222662222663222664222665222666222667222668222669222670222671222672222673222674222675222676222677222678222679222680222681222682222683222684222685222686222687222688222689222690222691222692222693222694222695222696222697222698222699222700222701222702222703222704222705222706222707222708222709222710222711222712222713222714222715222716222717222718222719222720222721222722222723222724222725222726222727222728222729222730222731222732222733222734222735222736222737222738222739222740222741222742222743222744222745222746222747222748222749222750222751222752222753222754222755222756222757222758222759222760222761222762222763222764222765222766222767222768222769222770222771222772222773222774222775222776222777222778222779222780222781222782222783222784222785222786222787222788222789222790222791222792222793222794222795222796222797222798222799222800222801222802222803222804222805222806222807222808222809222810222811222812222813222814222815222816222817222818222819222820222821222822222823222824222825222826222827222828222829222830222831222832222833222834222835222836222837222838222839222840222841222842222843222844222845222846222847222848222849222850222851222852222853222854222855222856222857222858222859222860222861222862222863222864222865222866222867222868222869222870222871222872222873222874222875222876222877222878222879222880222881222882222883222884222885222886222887222888222889222890222891222892222893222894222895222896222897222898222899222900222901222902222903222904222905222906222907222908222909222910222911222912222913222914222915222916222917222918222919222920222921222922222923222924222925222926222927222928222929222930222931222932222933222934222935222936222937222938222939222940222941222942222943222944222945222946222947222948222949222950222951222952222953222954222955222956222957222958222959222960222961222962222963222964222965222966222967222968222969222970222971222972222973222974222975222976222977222978222979222980222981222982222983222984222985222986222987222988222989222990222991222992222993222994222995222996222997222998222999223000223001223002223003223004223005223006223007223008223009223010223011223012223013223014223015223016223017223018223019223020223021223022223023223024223025223026223027223028223029223030223031223032223033223034223035223036223037223038223039223040223041223042223043223044223045223046223047223048223049223050223051223052223053223054223055223056223057223058223059223060223061223062223063223064223065223066223067223068223069223070223071223072223073223074223075223076223077223078223079223080223081223082223083223084223085223086223087223088223089223090223091223092223093223094223095223096223097223098223099223100223101223102223103223104223105223106223107223108223109223110223111223112223113223114223115223116223117223118223119223120223121223122223123223124223125223126223127223128223129223130223131223132223133223134223135223136223137223138223139223140223141223142223143223144223145223146223147223148223149223150223151223152223153223154223155223156223157223158223159223160223161223162223163223164223165223166223167223168223169223170223171223172223173223174223175223176223177223178223179223180223181223182223183223184223185223186223187223188223189223190223191223192223193223194223195223196223197223198223199223200223201223202223203223204223205223206223207223208223209223210223211223212223213223214223215223216223217223218223219223220223221223222223223223224223225223226223227223228223229223230223231223232223233223234223235223236223237223238223239223240223241223242223243223244223245223246223247223248223249223250223251223252223253223254223255223256223257223258223259223260223261223262223263223264223265223266223267223268223269223270223271223272223273223274223275223276223277223278223279223280223281223282223283223284223285223286223287223288223289223290223291223292223293223294223295223296223297223298223299223300223301223302223303223304223305223306223307223308223309223310223311223312223313223314223315223316223317223318223319223320223321223322223323223324223325223326223327223328223329223330223331223332223333223334223335223336223337223338223339223340223341223342223343223344223345223346223347223348223349223350223351223352223353223354223355223356223357223358223359223360223361223362223363223364223365223366223367223368223369223370223371223372223373223374223375223376223377223378223379223380223381223382223383223384223385223386223387223388223389223390223391223392223393223394223395223396223397223398223399223400223401223402223403223404223405223406223407223408223409223410223411223412223413223414223415223416223417223418223419223420223421223422223423223424223425223426223427223428223429223430223431223432223433223434223435223436223437223438223439223440223441223442223443223444223445223446223447223448223449223450223451223452223453223454223455223456223457223458223459223460223461223462223463223464223465223466223467223468223469223470223471223472223473223474223475223476223477223478223479223480223481223482223483223484223485223486223487223488223489223490223491223492223493223494223495223496223497223498223499223500223501223502223503223504223505223506223507223508223509223510223511223512223513223514223515223516223517223518223519223520223521223522223523223524223525223526223527223528223529223530223531223532223533223534223535223536223537223538223539223540223541223542223543223544223545223546223547223548223549223550223551223552223553223554223555223556223557223558223559223560223561223562223563223564223565223566223567223568223569223570223571223572223573223574223575223576223577223578223579223580223581223582223583223584223585223586223587223588223589223590223591223592223593223594223595223596223597223598223599223600223601223602223603223604223605223606223607223608223609223610223611223612223613223614223615223616223617223618223619223620223621223622223623223624223625223626223627223628223629223630223631223632223633223634223635223636223637223638223639223640223641223642223643223644223645223646223647223648223649223650223651223652223653223654223655223656223657223658223659223660223661223662223663223664223665223666223667223668223669223670223671223672223673223674223675223676223677223678223679223680223681223682223683223684223685223686223687223688223689223690223691223692223693223694223695223696223697223698223699223700223701223702223703223704223705223706223707223708223709223710223711223712223713223714223715223716223717223718223719223720223721223722223723223724223725223726223727223728223729223730223731223732223733223734223735223736223737223738223739223740223741223742223743223744223745223746223747223748223749223750223751223752223753223754223755223756223757223758223759223760223761223762223763223764223765223766223767223768223769223770223771223772223773223774223775223776223777223778223779223780223781223782223783223784223785223786223787223788223789223790223791223792223793223794223795223796223797223798223799223800223801223802223803223804223805223806223807223808223809223810223811223812223813223814223815223816223817223818223819223820223821223822223823223824223825223826223827223828223829223830223831223832223833223834223835223836223837223838223839223840223841223842223843223844223845223846223847223848223849223850223851223852223853223854223855223856223857223858223859223860223861223862223863223864223865223866223867223868223869223870223871223872223873223874223875223876223877223878223879223880223881223882223883223884223885223886223887223888223889223890223891223892223893223894223895223896223897223898223899223900223901223902223903223904223905223906223907223908223909223910223911223912223913223914223915223916223917223918223919223920223921223922223923223924223925223926223927223928223929223930223931223932223933223934223935223936223937223938223939223940223941223942223943223944223945223946223947223948223949223950223951223952223953223954223955223956223957223958223959223960223961223962223963223964223965223966223967223968223969223970223971223972223973223974223975223976223977223978223979223980223981223982223983223984223985223986223987223988223989223990223991223992223993223994223995223996223997223998223999224000224001224002224003224004224005224006224007224008224009224010224011224012224013224014224015224016224017224018224019224020224021224022224023224024224025224026224027224028224029224030224031224032224033224034224035224036224037224038224039224040224041224042224043224044224045224046224047224048224049224050224051224052224053224054224055224056224057224058224059224060224061224062224063224064224065224066224067224068224069224070224071224072224073224074224075224076224077224078224079224080224081224082224083224084224085224086224087224088224089224090224091224092224093224094224095224096224097224098224099224100224101224102224103224104224105224106224107224108224109224110224111224112224113224114224115224116224117224118224119224120224121224122224123224124224125224126224127224128224129224130224131224132224133224134224135224136224137224138224139224140224141224142224143224144224145224146224147224148224149224150224151224152224153224154224155224156224157224158224159224160224161224162224163224164224165224166224167224168224169224170224171224172224173224174224175224176224177224178224179224180224181224182224183224184224185224186224187224188224189224190224191224192224193224194224195224196224197224198224199224200224201224202224203224204224205224206224207224208224209224210224211224212224213224214224215224216224217224218224219224220224221224222224223224224224225224226224227224228224229224230224231224232224233224234224235224236224237224238224239224240224241224242224243224244224245224246224247224248224249224250224251224252224253224254224255224256224257224258224259224260224261224262224263224264224265224266224267224268224269224270224271224272224273224274224275224276224277224278224279224280224281224282224283224284224285224286224287224288224289224290224291224292224293224294224295224296224297224298224299224300224301224302224303224304224305224306224307224308224309224310224311224312224313224314224315224316224317224318224319224320224321224322224323224324224325224326224327224328224329224330224331224332224333224334224335224336224337224338224339224340224341224342224343224344224345224346224347224348224349224350224351224352224353224354224355224356224357224358224359224360224361224362224363224364224365224366224367224368224369224370224371224372224373224374224375224376224377224378224379224380224381224382224383224384224385224386224387224388224389224390224391224392224393224394224395224396224397224398224399224400224401224402224403224404224405224406224407224408224409224410224411224412224413224414224415224416224417224418224419224420224421224422224423224424224425224426224427224428224429224430224431224432224433224434224435224436224437224438224439224440224441224442224443224444224445224446224447224448224449224450224451224452224453224454224455224456224457224458224459224460224461224462224463224464224465224466224467224468224469224470224471224472224473224474224475224476224477224478224479224480224481224482224483224484224485224486224487224488224489224490224491224492224493224494224495224496224497224498224499224500224501224502224503224504224505224506224507224508224509224510224511224512224513224514224515224516224517224518224519224520224521224522224523224524224525224526224527224528224529224530224531224532224533224534224535224536224537224538224539224540224541224542224543224544224545224546224547224548224549224550224551224552224553224554224555224556224557224558224559224560224561224562224563224564224565224566224567224568224569224570224571224572224573224574224575224576224577224578224579224580224581224582224583224584224585224586224587224588224589224590224591224592224593224594224595224596224597224598224599224600224601224602224603224604224605224606224607224608224609224610224611224612224613224614224615224616224617224618224619224620224621224622224623224624224625224626224627224628224629224630224631224632224633224634224635224636224637224638224639224640224641224642224643224644224645224646224647224648224649224650224651224652224653224654224655224656224657224658224659224660224661224662224663224664224665224666224667224668224669224670224671224672224673224674224675224676224677224678224679224680224681224682224683224684224685224686224687224688224689224690224691224692224693224694224695224696224697224698224699224700224701224702224703224704224705224706224707224708224709224710224711224712224713224714224715224716224717224718224719224720224721224722224723224724224725224726224727224728224729224730224731224732224733224734224735224736224737224738224739224740224741224742224743224744224745224746224747224748224749224750224751224752224753224754224755224756224757224758224759224760224761224762224763224764224765224766224767224768224769224770224771224772224773224774224775224776224777224778224779224780224781224782224783224784224785224786224787224788224789224790224791224792224793224794224795224796224797224798224799224800224801224802224803224804224805224806224807224808224809224810224811224812224813224814224815224816224817224818224819224820224821224822224823224824224825224826224827224828224829224830224831224832224833224834224835224836224837224838224839224840224841224842224843224844224845224846224847224848224849224850224851224852224853224854224855224856224857224858224859224860224861224862224863224864224865224866224867224868224869224870224871224872224873224874224875224876224877224878224879224880224881224882224883224884224885224886224887224888224889224890224891224892224893224894224895224896224897224898224899224900224901224902224903224904224905224906224907224908224909224910224911224912224913224914224915224916224917224918224919224920224921224922224923224924224925224926224927224928224929224930224931224932224933224934224935224936224937224938224939224940224941224942224943224944224945224946224947224948224949224950224951224952224953224954224955224956224957224958224959224960224961224962224963224964224965224966224967224968224969224970224971224972224973224974224975224976224977224978224979224980224981224982224983224984224985224986224987224988224989224990224991224992224993224994224995224996224997224998224999225000225001225002225003225004225005225006225007225008225009225010225011225012225013225014225015225016225017225018225019225020225021225022225023225024225025225026225027225028225029225030225031225032225033225034225035225036225037225038225039225040225041225042225043225044225045225046225047225048225049225050225051225052225053225054225055225056225057225058225059225060225061225062225063225064225065225066225067225068225069225070225071225072225073225074225075225076225077225078225079225080225081225082225083225084225085225086225087225088225089225090225091225092225093225094225095225096225097225098225099225100225101225102225103225104225105225106225107225108225109225110225111225112225113225114225115225116225117225118225119225120225121225122225123225124225125225126225127225128225129225130225131225132225133225134225135225136225137225138225139225140225141225142225143225144225145225146225147225148225149225150225151225152225153225154225155225156225157225158225159225160225161225162225163225164225165225166225167225168225169225170225171225172225173225174225175225176225177225178225179225180225181225182225183225184225185225186225187225188225189225190225191225192225193225194225195225196225197225198225199225200225201225202225203225204225205225206225207225208225209225210225211225212225213225214225215225216225217225218225219225220225221225222225223225224225225225226225227225228225229225230225231225232225233225234225235225236225237225238225239225240225241225242225243225244225245225246225247225248225249225250225251225252225253225254225255225256225257225258225259225260225261225262225263225264225265225266225267225268225269225270225271225272225273225274225275225276225277225278225279225280225281225282225283225284225285225286225287225288225289225290225291225292225293225294225295225296225297225298225299225300225301225302225303225304225305225306225307225308225309225310225311225312225313225314225315225316225317225318225319225320225321225322225323225324225325225326225327225328225329225330225331225332225333225334225335225336225337225338225339225340225341225342225343225344225345225346225347225348225349225350225351225352225353225354225355225356225357225358225359225360225361225362225363225364225365225366225367225368225369225370225371225372225373225374225375225376225377225378225379225380225381225382225383225384225385225386225387225388225389225390225391225392225393225394225395225396225397225398225399225400225401225402225403225404225405225406225407225408225409225410225411225412225413225414225415225416225417225418225419225420225421225422225423225424225425225426225427225428225429225430225431225432225433225434225435225436225437225438225439225440225441225442225443225444225445225446225447225448225449225450225451225452225453225454225455225456225457225458225459225460225461225462225463225464225465225466225467225468225469225470225471225472225473225474225475225476225477225478225479225480225481225482225483225484225485225486225487225488225489225490225491225492225493225494225495225496225497225498225499225500225501225502225503225504225505225506225507225508225509225510225511225512225513225514225515225516225517225518225519225520225521225522225523225524225525225526225527225528225529225530225531225532225533225534225535225536225537225538225539225540225541225542225543225544225545225546225547225548225549225550225551225552225553225554225555225556225557225558225559225560225561225562225563225564225565225566225567225568225569225570225571225572225573225574225575225576225577225578225579225580225581225582225583225584225585225586225587225588225589225590225591225592225593225594225595225596225597225598225599225600225601225602225603225604225605225606225607225608225609225610225611225612225613225614225615225616225617225618225619225620225621225622225623225624225625225626225627225628225629225630225631225632225633225634225635225636225637225638225639225640225641225642225643225644225645225646225647225648225649225650225651225652225653225654225655225656225657225658225659225660225661225662225663225664225665225666225667225668225669225670225671225672225673225674225675225676225677225678225679225680225681225682225683225684225685225686225687225688225689225690225691225692225693225694225695225696225697225698225699225700225701225702225703225704225705225706225707225708225709225710225711225712225713225714225715225716225717225718225719225720225721225722225723225724225725225726225727225728225729225730225731225732225733225734225735225736225737225738225739225740225741225742225743225744225745225746225747225748225749225750225751225752225753225754225755225756225757225758225759225760225761225762225763225764225765225766225767225768225769225770225771225772225773225774225775225776225777225778225779225780225781225782225783225784225785225786225787225788225789225790225791225792225793225794225795225796225797225798225799225800225801225802225803225804225805225806225807225808225809225810225811225812225813225814225815225816225817225818225819225820225821225822225823225824225825225826225827225828225829225830225831225832225833225834225835225836225837225838225839225840225841225842225843225844225845225846225847225848225849225850225851225852225853225854225855225856225857225858225859225860225861225862225863225864225865225866225867225868225869225870225871225872225873225874225875225876225877225878225879225880225881225882225883225884225885225886225887225888225889225890225891225892225893225894225895225896225897225898225899225900225901225902225903225904225905225906225907225908225909225910225911225912225913225914225915225916225917225918225919225920225921225922225923225924225925225926225927225928225929225930225931225932225933225934225935225936225937225938225939225940225941225942225943225944225945225946225947225948225949225950225951225952225953225954225955225956225957225958225959225960225961225962225963225964225965225966225967225968225969225970225971225972225973225974225975225976225977225978225979225980225981225982225983225984225985225986225987225988225989225990225991225992225993225994225995225996225997225998225999226000226001226002226003226004226005226006226007226008226009226010226011226012226013226014226015226016226017226018226019226020226021226022226023226024226025226026226027226028226029226030226031226032226033226034226035226036226037226038226039226040226041226042226043226044226045226046226047226048226049226050226051226052226053226054226055226056226057226058226059226060226061226062226063226064226065226066226067226068226069226070226071226072226073226074226075226076226077226078226079226080226081226082226083226084226085226086226087226088226089226090226091226092226093226094226095226096226097226098226099226100226101226102226103226104226105226106226107226108226109226110226111226112226113226114226115226116226117226118226119226120226121226122226123226124226125226126226127226128226129226130226131226132226133226134226135226136226137226138226139226140226141226142226143226144226145226146226147226148226149226150226151226152226153226154226155226156226157226158226159226160226161226162226163226164226165226166226167226168226169226170226171226172226173226174226175226176226177226178226179226180226181226182226183226184226185226186226187226188226189226190226191226192226193226194226195226196226197226198226199226200226201226202226203226204226205226206226207226208226209226210226211226212226213226214226215226216226217226218226219226220226221226222226223226224226225226226226227226228226229226230226231226232226233226234226235226236226237226238226239226240226241226242226243226244226245226246226247226248226249226250226251226252226253226254226255226256226257226258226259226260226261226262226263226264226265226266226267226268226269226270226271226272226273226274226275226276226277226278226279226280226281226282226283226284226285226286226287226288226289226290226291226292226293226294226295226296226297226298226299226300226301226302226303226304226305226306226307226308226309226310226311226312226313226314226315226316226317226318226319226320226321226322226323226324226325226326226327226328226329226330226331226332226333226334226335226336226337226338226339226340226341226342226343226344226345226346226347226348226349226350226351226352226353226354226355226356226357226358226359226360226361226362226363226364226365226366226367226368226369226370226371226372226373226374226375226376226377226378226379226380226381226382226383226384226385226386226387226388226389226390226391226392226393226394226395226396226397226398226399226400226401226402226403226404226405226406226407226408226409226410226411226412226413226414226415226416226417226418226419226420226421226422226423226424226425226426226427226428226429226430226431226432226433226434226435226436226437226438226439226440226441226442226443226444226445226446226447226448226449226450226451226452226453226454226455226456226457226458226459226460226461226462226463226464226465226466226467226468226469226470226471226472226473226474226475226476226477226478226479226480226481226482226483226484226485226486226487226488226489226490226491226492226493226494226495226496226497226498226499226500226501226502226503226504226505226506226507226508226509226510226511226512226513226514226515226516226517226518226519226520226521226522226523226524226525226526226527226528226529226530226531226532226533226534226535226536226537226538226539226540226541226542226543226544226545226546226547226548226549226550226551226552226553226554226555226556226557226558226559226560226561226562226563226564226565226566226567226568226569226570226571226572226573226574226575226576226577226578226579226580226581226582226583226584226585226586226587226588226589226590226591226592226593226594226595226596226597226598226599226600226601226602226603226604226605226606226607226608226609226610226611226612226613226614226615226616226617226618226619226620226621226622226623226624226625226626226627226628226629226630226631226632226633226634226635226636226637226638226639226640226641226642226643226644226645226646226647226648226649226650226651226652226653226654226655226656226657226658226659226660226661226662226663226664226665226666226667226668226669226670226671226672226673226674226675226676226677226678226679226680226681226682226683226684226685226686226687226688226689226690226691226692226693226694226695226696226697226698226699226700226701226702226703226704226705226706226707226708226709226710226711226712226713226714226715226716226717226718226719226720226721226722226723226724226725226726226727226728226729226730226731226732226733226734226735226736226737226738226739226740226741226742226743226744226745226746226747226748226749226750226751226752226753226754226755226756226757226758226759226760226761226762226763226764226765226766226767226768226769226770226771226772226773226774226775226776226777226778226779226780226781226782226783226784226785226786226787226788226789226790226791226792226793226794226795226796226797226798226799226800226801226802226803226804226805226806226807226808226809226810226811226812226813226814226815226816226817226818226819226820226821226822226823226824226825226826226827226828226829226830226831226832226833226834226835226836226837226838226839226840226841226842226843226844226845226846226847226848226849226850226851226852226853226854226855226856226857226858226859226860226861226862226863226864226865226866226867226868226869226870226871226872226873226874226875226876226877226878226879226880226881226882226883226884226885226886226887226888226889226890226891226892226893226894226895226896226897226898226899226900226901226902226903226904226905226906226907226908226909226910226911226912226913226914226915226916226917226918226919226920226921226922226923226924226925226926226927226928226929226930226931226932226933226934226935226936226937226938226939226940226941226942226943226944226945226946226947226948226949226950226951226952226953226954226955226956226957226958226959226960226961226962226963226964226965226966226967226968226969226970226971226972226973226974226975226976226977226978226979226980226981226982226983226984226985226986226987226988226989226990226991226992226993226994226995226996226997226998226999227000227001227002227003227004227005227006227007227008227009227010227011227012227013227014227015227016227017227018227019227020227021227022227023227024227025227026227027227028227029227030227031227032227033227034227035227036227037227038227039227040227041227042227043227044227045227046227047227048227049227050227051227052227053227054227055227056227057227058227059227060227061227062227063227064227065227066227067227068227069227070227071227072227073227074227075227076227077227078227079227080227081227082227083227084227085227086227087227088227089227090227091227092227093227094227095227096227097227098227099227100227101227102227103227104227105227106227107227108227109227110227111227112227113227114227115227116227117227118227119227120227121227122227123227124227125227126227127227128227129227130227131227132227133227134227135227136227137227138227139227140227141227142227143227144227145227146227147227148227149227150227151227152227153227154227155227156227157227158227159227160227161227162227163227164227165227166227167227168227169227170227171227172227173227174227175227176227177227178227179227180227181227182227183227184227185227186227187227188227189227190227191227192227193227194227195227196227197227198227199227200227201227202227203227204227205227206227207227208227209227210227211227212227213227214227215227216227217227218227219227220227221227222227223227224227225227226227227227228227229227230227231227232227233227234227235227236227237227238227239227240227241227242227243227244227245227246227247227248227249227250227251227252227253227254227255227256227257227258227259227260227261227262227263227264227265227266227267227268227269227270227271227272227273227274227275227276227277227278227279227280227281227282227283227284227285227286227287227288227289227290227291227292227293227294227295227296227297227298227299227300227301227302227303227304227305227306227307227308227309227310227311227312227313227314227315227316227317227318227319227320227321227322227323227324227325227326227327227328227329227330227331227332227333227334227335227336227337227338227339227340227341227342227343227344227345227346227347227348227349227350227351227352227353227354227355227356227357227358227359227360227361227362227363227364227365227366227367227368227369227370227371227372227373227374227375227376227377227378227379227380227381227382227383227384227385227386227387227388227389227390227391227392227393227394227395227396227397227398227399227400227401227402227403227404227405227406227407227408227409227410227411227412227413227414227415227416227417227418227419227420227421227422227423227424227425227426227427227428227429227430227431227432227433227434227435227436227437227438227439227440227441227442227443227444227445227446227447227448227449227450227451227452227453227454227455227456227457227458227459227460227461227462227463227464227465227466227467227468227469227470227471227472227473227474227475227476227477227478227479227480227481227482227483227484227485227486227487227488227489227490227491227492227493227494227495227496227497227498227499227500227501227502227503227504227505227506227507227508227509227510227511227512227513227514227515227516227517227518227519227520227521227522227523227524227525227526227527227528227529227530227531227532227533227534227535227536227537227538227539227540227541227542227543227544227545227546227547227548227549227550227551227552227553227554227555227556227557227558227559227560227561227562227563227564227565227566227567227568227569227570227571227572227573227574227575227576227577227578227579227580227581227582227583227584227585227586227587227588227589227590227591227592227593227594227595227596227597227598227599227600227601227602227603227604227605227606227607227608227609227610227611227612227613227614227615227616227617227618227619227620227621227622227623227624227625227626227627227628227629227630227631227632227633227634227635227636227637227638227639227640227641227642227643227644227645227646227647227648227649227650227651227652227653227654227655227656227657227658227659227660227661227662227663227664227665227666227667227668227669227670227671227672227673227674227675227676227677227678227679227680227681227682227683227684227685227686227687227688227689227690227691227692227693227694227695227696227697227698227699227700227701227702227703227704227705227706227707227708227709227710227711227712227713227714227715227716227717227718227719227720227721227722227723227724227725227726227727227728227729227730227731227732227733227734227735227736227737227738227739227740227741227742227743227744227745227746227747227748227749227750227751227752227753227754227755227756227757227758227759227760227761227762227763227764227765227766227767227768227769227770227771227772227773227774227775227776227777227778227779227780227781227782227783227784227785227786227787227788227789227790227791227792227793227794227795227796227797227798227799227800227801227802227803227804227805227806227807227808227809227810227811227812227813227814227815227816227817227818227819227820227821227822227823227824227825227826227827227828227829227830227831227832227833227834227835227836227837227838227839227840227841227842227843227844227845227846227847227848227849227850227851227852227853227854227855227856227857227858227859227860227861227862227863227864227865227866227867227868227869227870227871227872227873227874227875227876227877227878227879227880227881227882227883227884227885227886227887227888227889227890227891227892227893227894227895227896227897227898227899227900227901227902227903227904227905227906227907227908227909227910227911227912227913227914227915227916227917227918227919227920227921227922227923227924227925227926227927227928227929227930227931227932227933227934227935227936227937227938227939227940227941227942227943227944227945227946227947227948227949227950227951227952227953227954227955227956227957227958227959227960227961227962227963227964227965227966227967227968227969227970227971227972227973227974227975227976227977227978227979227980227981227982227983227984227985227986227987227988227989227990227991227992227993227994227995227996227997227998227999228000228001228002228003228004228005228006228007228008228009228010228011228012228013228014228015228016228017228018228019228020228021228022228023228024228025228026228027228028228029228030228031228032228033228034228035228036228037228038228039228040228041228042228043228044228045228046228047228048228049228050228051228052228053228054228055228056228057228058228059228060228061228062228063228064228065228066228067228068228069228070228071228072228073228074228075228076228077228078228079228080228081228082228083228084228085228086228087228088228089228090228091228092228093228094228095228096228097228098228099228100228101228102228103228104228105228106228107228108228109228110228111228112228113228114228115228116228117228118228119228120228121228122228123228124228125228126228127228128228129228130228131228132228133228134228135228136228137228138228139228140228141228142228143228144228145228146228147228148228149228150228151228152228153228154228155228156228157228158228159228160228161228162228163228164228165228166228167228168228169228170228171228172228173228174228175228176228177228178228179228180228181228182228183228184228185228186228187228188228189228190228191228192228193228194228195228196228197228198228199228200228201228202228203228204228205228206228207228208228209228210228211228212228213228214228215228216228217228218228219228220228221228222228223228224228225228226228227228228228229228230228231228232228233228234228235228236228237228238228239228240228241228242228243228244228245228246228247228248228249228250228251228252228253228254228255228256228257228258228259228260228261228262228263228264228265228266228267228268228269228270228271228272228273228274228275228276228277228278228279228280228281228282228283228284228285228286228287228288228289228290228291228292228293228294228295228296228297228298228299228300228301228302228303228304228305228306228307228308228309228310228311228312228313228314228315228316228317228318228319228320228321228322228323228324228325228326228327228328228329228330228331228332228333228334228335228336228337228338228339228340228341228342228343228344228345228346228347228348228349228350228351228352228353228354228355228356228357228358228359228360228361228362228363228364228365228366228367228368228369228370228371228372228373228374228375228376228377228378228379228380228381228382228383228384228385228386228387228388228389228390228391228392228393228394228395228396228397228398228399228400228401228402228403228404228405228406228407228408228409228410228411228412228413228414228415228416228417228418228419228420228421228422228423228424228425228426228427228428228429228430228431228432228433228434228435228436228437228438228439228440228441228442228443228444228445228446228447228448228449228450228451228452228453228454228455228456228457228458228459228460228461228462228463228464228465228466228467228468228469228470228471228472228473228474228475228476228477228478228479228480228481228482228483228484228485228486228487228488228489228490228491228492228493228494228495228496228497228498228499228500228501228502228503228504228505228506228507228508228509228510228511228512228513228514228515228516228517228518228519228520228521228522228523228524228525228526228527228528228529228530228531228532228533228534228535228536228537228538228539228540228541228542228543228544228545228546228547228548228549228550228551228552228553228554228555228556228557228558228559228560228561228562228563228564228565228566228567228568228569228570228571228572228573228574228575228576228577228578228579228580228581228582228583228584228585228586228587228588228589228590228591228592228593228594228595228596228597228598228599228600228601228602228603228604228605228606228607228608228609228610228611228612228613228614228615228616228617228618228619228620228621228622228623228624228625228626228627228628228629228630228631228632228633228634228635228636228637228638228639228640228641228642228643228644228645228646228647228648228649228650228651228652228653228654228655228656228657228658228659228660228661228662228663228664228665228666228667228668228669228670228671228672228673228674228675228676228677228678228679228680228681228682228683228684228685228686228687228688228689228690228691228692228693228694228695228696228697228698228699228700228701228702228703228704228705228706228707228708228709228710228711228712228713228714228715228716228717228718228719228720228721228722228723228724228725228726228727228728228729228730228731228732228733228734228735228736228737228738228739228740228741228742228743228744228745228746228747228748228749228750228751228752228753228754228755228756228757228758228759228760228761228762228763228764228765228766228767228768228769228770228771228772228773228774228775228776228777228778228779228780228781228782228783228784228785228786228787228788228789228790228791228792228793228794228795228796228797228798228799228800228801228802228803228804228805228806228807228808228809228810228811228812228813228814228815228816228817228818228819228820228821228822228823228824228825228826228827228828228829228830228831228832228833228834228835228836228837228838228839228840228841228842228843228844228845228846228847228848228849228850228851228852228853228854228855228856228857228858228859228860228861228862228863228864228865228866228867228868228869228870228871228872228873228874228875228876228877228878228879228880228881228882228883228884228885228886228887228888228889228890228891228892228893228894228895228896228897228898228899228900228901228902228903228904228905228906228907228908228909228910228911228912228913228914228915228916228917228918228919228920228921228922228923228924228925228926228927228928228929228930228931228932228933228934228935228936228937228938228939228940228941228942228943228944228945228946228947228948228949228950228951228952228953228954228955228956228957228958228959228960228961228962228963228964228965228966228967228968228969228970228971228972228973228974228975228976228977228978228979228980228981228982228983228984228985228986228987228988228989228990228991228992228993228994228995228996228997228998228999229000229001229002229003229004229005229006229007229008229009229010229011229012229013229014229015229016229017229018229019229020229021229022229023229024229025229026229027229028229029229030229031229032229033229034229035229036229037229038229039229040229041229042229043229044229045229046229047229048229049229050229051229052229053229054229055229056229057229058229059229060229061229062229063229064229065229066229067229068229069229070229071229072229073229074229075229076229077229078229079229080229081229082229083229084229085229086229087229088229089229090229091229092229093229094229095229096229097229098229099229100229101229102229103229104229105229106229107229108229109229110229111229112229113229114229115229116229117229118229119229120229121229122229123229124229125229126229127229128229129229130229131229132229133229134229135229136229137229138229139229140229141229142229143229144229145229146229147229148229149229150229151229152229153229154229155229156229157229158229159229160229161229162229163229164229165229166229167229168229169229170229171229172229173229174229175229176229177229178229179229180229181229182229183229184229185229186229187229188229189229190229191229192229193229194229195229196229197229198229199229200229201229202229203229204229205229206229207229208229209229210229211229212229213229214229215229216229217229218229219229220229221229222229223229224229225229226229227229228229229229230229231229232229233229234229235229236229237229238229239229240229241229242229243229244229245229246229247229248229249229250229251229252229253229254229255229256229257229258229259229260229261229262229263229264229265229266229267229268229269229270229271229272229273229274229275229276229277229278229279229280229281229282229283229284229285229286229287229288229289229290229291229292229293229294229295229296229297229298229299229300229301229302229303229304229305229306229307229308229309229310229311229312229313229314229315229316229317229318229319229320229321229322229323229324229325229326229327229328229329229330229331229332229333229334229335229336229337229338229339229340229341229342229343229344229345229346229347229348229349229350229351229352229353229354229355229356229357229358229359229360229361229362229363229364229365229366229367229368229369229370229371229372229373229374229375229376229377229378229379229380229381229382229383229384229385229386229387229388229389229390229391229392229393229394229395229396229397229398229399229400229401229402229403229404229405229406229407229408229409229410229411229412229413229414229415229416229417229418229419229420229421229422229423229424229425229426229427229428229429229430229431229432229433229434229435229436229437229438229439229440229441229442229443229444229445229446229447229448229449229450229451229452229453229454229455229456229457229458229459229460229461229462229463229464229465229466229467229468229469229470229471229472229473229474229475229476229477229478229479229480229481229482229483229484229485229486229487229488229489229490229491229492229493229494229495229496229497229498229499229500229501229502229503229504229505229506229507229508229509229510229511229512229513229514229515229516229517229518229519229520229521229522229523229524229525229526229527229528229529229530229531229532229533229534229535229536229537229538229539229540229541229542229543229544229545229546229547229548229549229550229551229552229553229554229555229556229557229558229559229560229561229562229563229564229565229566229567229568229569229570229571229572229573229574229575229576229577229578229579229580229581229582229583229584229585229586229587229588229589229590229591229592229593229594229595229596229597229598229599229600229601229602229603229604229605229606229607229608229609229610229611229612229613229614229615229616229617229618229619229620229621229622229623229624229625229626229627229628229629229630229631229632229633229634229635229636229637229638229639229640229641229642229643229644229645229646229647229648229649229650229651229652229653229654229655229656229657229658229659229660229661229662229663229664229665229666229667229668229669229670229671229672229673229674229675229676229677229678229679229680229681229682229683229684229685229686229687229688229689229690229691229692229693229694229695229696229697229698229699229700229701229702229703229704229705229706229707229708229709229710229711229712229713229714229715229716229717229718229719229720229721229722229723229724229725229726229727229728229729229730229731229732229733229734229735229736229737229738229739229740229741229742229743229744229745229746229747229748229749229750229751229752229753229754229755229756229757229758229759229760229761229762229763229764229765229766229767229768229769229770229771229772229773229774229775229776229777229778229779229780229781229782229783229784229785229786229787229788229789229790229791229792229793229794229795229796229797229798229799229800229801229802229803229804229805229806229807229808229809229810229811229812229813229814229815229816229817229818229819229820229821229822229823229824229825229826229827229828229829229830229831229832229833229834229835229836229837229838229839229840229841229842229843229844229845229846229847229848229849229850229851229852229853229854229855229856229857229858229859229860229861229862229863229864229865229866229867229868229869229870229871229872229873229874229875229876229877229878229879229880229881229882229883229884229885229886229887229888229889229890229891229892229893229894229895229896229897229898229899229900229901229902229903229904229905229906229907229908229909229910229911229912229913229914229915229916229917229918229919229920229921229922229923229924229925229926229927229928229929229930229931229932229933229934229935229936229937229938229939229940229941229942229943229944229945229946229947229948229949229950229951229952229953229954229955229956229957229958229959229960229961229962229963229964229965229966229967229968229969229970229971229972229973229974229975229976229977229978229979229980229981229982229983229984229985229986229987229988229989229990229991229992229993229994229995229996229997229998229999230000230001230002230003230004230005230006230007230008230009230010230011230012230013230014230015230016230017230018230019230020230021230022230023230024230025230026230027230028230029230030230031230032230033230034230035230036230037230038230039230040230041230042230043230044230045230046230047230048230049230050230051230052230053230054230055230056230057230058230059230060230061230062230063230064230065230066230067230068230069230070230071230072230073230074230075230076230077230078230079230080230081230082230083230084230085230086230087230088230089230090230091230092230093230094230095230096230097230098230099230100230101230102230103230104230105230106230107230108230109230110230111230112230113230114230115230116230117230118230119230120230121230122230123230124230125230126230127230128230129230130230131230132230133230134230135230136230137230138230139230140230141230142230143230144230145230146230147230148230149230150230151230152230153230154230155230156230157230158230159230160230161230162230163230164230165230166230167230168230169230170230171230172230173230174230175230176230177230178230179230180230181230182230183230184230185230186230187230188230189230190230191230192230193230194230195230196230197230198230199230200230201230202230203230204230205230206230207230208230209230210230211230212230213230214230215230216230217230218230219230220230221230222230223230224230225230226230227230228230229230230230231230232230233230234230235230236230237230238230239230240230241230242230243230244230245230246230247230248230249230250230251230252230253230254230255230256230257230258230259230260230261230262230263230264230265230266230267230268230269230270230271230272230273230274230275230276230277230278230279230280230281230282230283230284230285230286230287230288230289230290230291230292230293230294230295230296230297230298230299230300230301230302230303230304230305230306230307230308230309230310230311230312230313230314230315230316230317230318230319230320230321230322230323230324230325230326230327230328230329230330230331230332230333230334230335230336230337230338230339230340230341230342230343230344230345230346230347230348230349230350230351230352230353230354230355230356230357230358230359230360230361230362230363230364230365230366230367230368230369230370230371230372230373230374230375230376230377230378230379230380230381230382230383230384230385230386230387230388230389230390230391230392230393230394230395230396230397230398230399230400230401230402230403230404230405230406230407230408230409230410230411230412230413230414230415230416230417230418230419230420230421230422230423230424230425230426230427230428230429230430230431230432230433230434230435230436230437230438230439230440230441230442230443230444230445230446230447230448230449230450230451230452230453230454230455230456230457230458230459230460230461230462230463230464230465230466230467230468230469230470230471230472230473230474230475230476230477230478230479230480230481230482230483230484230485230486230487230488230489230490230491230492230493230494230495230496230497230498230499230500230501230502230503230504230505230506230507230508230509230510230511230512230513230514230515230516230517230518230519230520230521230522230523230524230525230526230527230528230529230530230531230532230533230534230535230536230537230538230539230540230541230542230543230544230545230546230547230548230549230550230551230552230553230554230555230556230557230558230559230560230561230562230563230564230565230566230567230568230569230570230571230572230573230574230575230576230577230578230579230580230581230582230583230584230585230586230587230588230589230590230591230592230593230594230595230596230597230598230599230600230601230602230603230604230605230606230607230608230609230610230611230612230613230614230615230616230617230618230619230620230621230622230623230624230625230626230627230628230629230630230631230632230633230634230635230636230637230638230639230640230641230642230643230644230645230646230647230648230649230650230651230652230653230654230655230656230657230658230659230660230661230662230663230664230665230666230667230668230669230670230671230672230673230674230675230676230677230678230679230680230681230682230683230684230685230686230687230688230689230690230691230692230693230694230695230696230697230698230699230700230701230702230703230704230705230706230707230708230709230710230711230712230713230714230715230716230717230718230719230720230721230722230723230724230725230726230727230728230729230730230731230732230733230734230735230736230737230738230739230740230741230742230743230744230745230746230747230748230749230750230751230752230753230754230755230756230757230758230759230760230761230762230763230764230765230766230767230768230769230770230771230772230773230774230775230776230777230778230779230780230781230782230783230784230785230786230787230788230789230790230791230792230793230794230795230796230797230798230799230800230801230802230803230804230805230806230807230808230809230810230811230812230813230814230815230816230817230818230819230820230821230822230823230824230825230826230827230828230829230830230831230832230833230834230835230836230837230838230839230840230841230842230843230844230845230846230847230848230849230850230851230852230853230854230855230856230857230858230859230860230861230862230863230864230865230866230867230868230869230870230871230872230873230874230875230876230877230878230879230880230881230882230883230884230885230886230887230888230889230890230891230892230893230894230895230896230897230898230899230900230901230902230903230904230905230906230907230908230909230910230911230912230913230914230915230916230917230918230919230920230921230922230923230924230925230926230927230928230929230930230931230932230933230934230935230936230937230938230939230940230941230942230943230944230945230946230947230948230949230950230951230952230953230954230955230956230957230958230959230960230961230962230963230964230965230966230967230968230969230970230971230972230973230974230975230976230977230978230979230980230981230982230983230984230985230986230987230988230989230990230991230992230993230994230995230996230997230998230999231000231001231002231003231004231005231006231007231008231009231010231011231012231013231014231015231016231017231018231019231020231021231022231023231024231025231026231027231028231029231030231031231032231033231034231035231036231037231038231039231040231041231042231043231044231045231046231047231048231049231050231051231052231053231054231055231056231057231058231059231060231061231062231063231064231065231066231067231068231069231070231071231072231073231074231075231076231077231078231079231080231081231082231083231084231085231086231087231088231089231090231091231092231093231094231095231096231097231098231099231100231101231102231103231104231105231106231107231108231109231110231111231112231113231114231115231116231117231118231119231120231121231122231123231124231125231126231127231128231129231130231131231132231133231134231135231136231137231138231139231140231141231142231143231144231145231146231147231148231149231150231151231152231153231154231155231156231157231158231159231160231161231162231163231164231165231166231167231168231169231170231171231172231173231174231175231176231177231178231179231180231181231182231183231184231185231186231187231188231189231190231191231192231193231194231195231196231197231198231199231200231201231202231203231204231205231206231207231208231209231210231211231212231213231214231215231216231217231218231219231220231221231222231223231224231225231226231227231228231229231230231231231232231233231234231235231236231237231238231239231240231241231242231243231244231245231246231247231248231249231250231251231252231253231254231255231256231257231258231259231260231261231262231263231264231265231266231267231268231269231270231271231272231273231274231275231276231277231278231279231280231281231282231283231284231285231286231287231288231289231290231291231292231293231294231295231296231297231298231299231300231301231302231303231304231305231306231307231308231309231310231311231312231313231314231315231316231317231318231319231320231321231322231323231324231325231326231327231328231329231330231331231332231333231334231335231336231337231338231339231340231341231342231343231344231345231346231347231348231349231350231351231352231353231354231355231356231357231358231359231360231361231362231363231364231365231366231367231368231369231370231371231372231373231374231375231376231377231378231379231380231381231382231383231384231385231386231387231388231389231390231391231392231393231394231395231396231397231398231399231400231401231402231403231404231405231406231407231408231409231410231411231412231413231414231415231416231417231418231419231420231421231422231423231424231425231426231427231428231429231430231431231432231433231434231435231436231437231438231439231440231441231442231443231444231445231446231447231448231449231450231451231452231453231454231455231456231457231458231459231460231461231462231463231464231465231466231467231468231469231470231471231472231473231474231475231476231477231478231479231480231481231482231483231484231485231486231487231488231489231490231491231492231493231494231495231496231497231498231499231500231501231502231503231504231505231506231507231508231509231510231511231512231513231514231515231516231517231518231519231520231521231522231523231524231525231526231527231528231529231530231531231532231533231534231535231536231537231538231539231540231541231542231543231544231545231546231547231548231549231550231551231552231553231554231555231556231557231558231559231560231561231562231563231564231565231566231567231568231569231570231571231572231573231574231575231576231577231578231579231580231581231582231583231584231585231586231587231588231589231590231591231592231593231594231595231596231597231598231599231600231601231602231603231604231605231606231607231608231609231610231611231612231613231614231615231616231617231618231619231620231621231622231623231624231625231626231627231628231629231630231631231632231633231634231635231636231637231638231639231640231641231642231643231644231645231646231647231648231649231650231651231652231653231654231655231656231657231658231659231660231661231662231663231664231665231666231667231668231669231670231671231672231673231674231675231676231677231678231679231680231681231682231683231684231685231686231687231688231689231690231691231692231693231694231695231696231697231698231699231700231701231702231703231704231705231706231707231708231709231710231711231712231713231714231715231716231717231718231719231720231721231722231723231724231725231726231727231728231729231730231731231732231733231734231735231736231737231738231739231740231741231742231743231744231745231746231747231748231749231750231751231752231753231754231755231756231757231758231759231760231761231762231763231764231765231766231767231768231769231770231771231772231773231774231775231776231777231778231779231780231781231782231783231784231785231786231787231788231789231790231791231792231793231794231795231796231797231798231799231800231801231802231803231804231805231806231807231808231809231810231811231812231813231814231815231816231817231818231819231820231821231822231823231824231825231826231827231828231829231830231831231832231833231834231835231836231837231838231839231840231841231842231843231844231845231846231847231848231849231850231851231852231853231854231855231856231857231858231859231860231861231862231863231864231865231866231867231868231869231870231871231872231873231874231875231876231877231878231879231880231881231882231883231884231885231886231887231888231889231890231891231892231893231894231895231896231897231898231899231900231901231902231903231904231905231906231907231908231909231910231911231912231913231914231915231916231917231918231919231920231921231922231923231924231925231926231927231928231929231930231931231932231933231934231935231936231937231938231939231940231941231942231943231944231945231946231947231948231949231950231951231952231953231954231955231956231957231958231959231960231961231962231963231964231965231966231967231968231969231970231971231972231973231974231975231976231977231978231979231980231981231982231983231984231985231986231987231988231989231990231991231992231993231994231995231996231997231998231999232000232001232002232003232004232005232006232007232008232009232010232011232012232013232014232015232016232017232018232019232020232021232022232023232024232025232026232027232028232029232030232031232032232033232034232035232036232037232038232039232040232041232042232043232044232045232046232047232048232049232050232051232052232053232054232055232056232057232058232059232060232061232062232063232064232065232066232067232068232069232070232071232072232073232074232075232076232077232078232079232080232081232082232083232084232085232086232087232088232089232090232091232092232093232094232095232096232097232098232099232100232101232102232103232104232105232106232107232108232109232110232111232112232113232114232115232116232117232118232119232120232121232122232123232124232125232126232127232128232129232130232131232132232133232134232135232136232137232138232139232140232141232142232143232144232145232146232147232148232149232150232151232152232153232154232155232156232157232158232159232160232161232162232163232164232165232166232167232168232169232170232171232172232173232174232175232176232177232178232179232180232181232182232183232184232185232186232187232188232189232190232191232192232193232194232195232196232197232198232199232200232201232202232203232204232205232206232207232208232209232210232211232212232213232214232215232216232217232218232219232220232221232222232223232224232225232226232227232228232229232230232231232232232233232234232235232236232237232238232239232240232241232242232243232244232245232246232247232248232249232250232251232252232253232254232255232256232257232258232259232260232261232262232263232264232265232266232267232268232269232270232271232272232273232274232275232276232277232278232279232280232281232282232283232284232285232286232287232288232289232290232291232292232293232294232295232296232297232298232299232300232301232302232303232304232305232306232307232308232309232310232311232312232313232314232315232316232317232318232319232320232321232322232323232324232325232326232327232328232329232330232331232332232333232334232335232336232337232338232339232340232341232342232343232344232345232346232347232348232349232350232351232352232353232354232355232356232357232358232359232360232361232362232363232364232365232366232367232368232369232370232371232372232373232374232375232376232377232378232379232380232381232382232383232384232385232386232387232388232389232390232391232392232393232394232395232396232397232398232399232400232401232402232403232404232405232406232407232408232409232410232411232412232413232414232415232416232417232418232419232420232421232422232423232424232425232426232427232428232429232430232431232432232433232434232435232436232437232438232439232440232441232442232443232444232445232446232447232448232449232450232451232452232453232454232455232456232457232458232459232460232461232462232463232464232465232466232467232468232469232470232471232472232473232474232475232476232477232478232479232480232481232482232483232484232485232486232487232488232489232490232491232492232493232494232495232496232497232498232499232500232501232502232503232504232505232506232507232508232509232510232511232512232513232514232515232516232517232518232519232520232521232522232523232524232525232526232527232528232529232530232531232532232533232534232535232536232537232538232539232540232541232542232543232544232545232546232547232548232549232550232551232552232553232554232555232556232557232558232559232560232561232562232563232564232565232566232567232568232569232570232571232572232573232574232575232576232577232578232579232580232581232582232583232584232585232586232587232588232589232590232591232592232593232594232595232596232597232598232599232600232601232602232603232604232605232606232607232608232609232610232611232612232613232614232615232616232617232618232619232620232621232622232623232624232625232626232627232628232629232630232631232632232633232634232635232636232637232638232639232640232641232642232643232644232645232646232647232648232649232650232651232652232653232654232655232656232657232658232659232660232661232662232663232664232665232666232667232668232669232670232671232672232673232674232675232676232677232678232679232680232681232682232683232684232685232686232687232688232689232690232691232692232693232694232695232696232697232698232699232700232701232702232703232704232705232706232707232708232709232710232711232712232713232714232715232716232717232718232719232720232721232722232723232724232725232726232727232728232729232730232731232732232733232734232735232736232737232738232739232740232741232742232743232744232745232746232747232748232749232750232751232752232753232754232755232756232757232758232759232760232761232762232763232764232765232766232767232768232769232770232771232772232773232774232775232776232777232778232779232780232781232782232783232784232785232786232787232788232789232790232791232792232793232794232795232796232797232798232799232800232801232802232803232804232805232806232807232808232809232810232811232812232813232814232815232816232817232818232819232820232821232822232823232824232825232826232827232828232829232830232831232832232833232834232835232836232837232838232839232840232841232842232843232844232845232846232847232848232849232850232851232852232853232854232855232856232857232858232859232860232861232862232863232864232865232866232867232868232869232870232871232872232873232874232875232876232877232878232879232880232881232882232883232884232885232886232887232888232889232890232891232892232893232894232895232896232897232898232899232900232901232902232903232904232905232906232907232908232909232910232911232912232913232914232915232916232917232918232919232920232921232922232923232924232925232926232927232928232929232930232931232932232933232934232935232936232937232938232939232940232941232942232943232944232945232946232947232948232949232950232951232952232953232954232955232956232957232958232959232960232961232962232963232964232965232966232967232968232969232970232971232972232973232974232975232976232977232978232979232980232981232982232983232984232985232986232987232988232989232990232991232992232993232994232995232996232997232998232999233000233001233002233003233004233005233006233007233008233009233010233011233012233013233014233015233016233017233018233019233020233021233022233023233024233025233026233027233028233029233030233031233032233033233034233035233036233037233038233039233040233041233042233043233044233045233046233047233048233049233050233051233052233053233054233055233056233057233058233059233060233061233062233063233064233065233066233067233068233069233070233071233072233073233074233075233076233077233078233079233080233081233082233083233084233085233086233087233088233089233090233091233092233093233094233095233096233097233098233099233100233101233102233103233104233105233106233107233108233109233110233111233112233113233114233115233116233117233118233119233120233121233122233123233124233125233126233127233128233129233130233131233132233133233134233135233136233137233138233139233140233141233142233143233144233145233146233147233148233149233150233151233152233153233154233155233156233157233158233159233160233161233162233163233164233165233166233167233168233169233170233171233172233173233174233175233176233177233178233179233180233181233182233183233184233185233186233187233188233189233190233191233192233193233194233195233196233197233198233199233200233201233202233203233204233205233206233207233208233209233210233211233212233213233214233215233216233217233218233219233220233221233222233223233224233225233226233227233228233229233230233231233232233233233234233235233236233237233238233239233240233241233242233243233244233245233246233247233248233249233250233251233252233253233254233255233256233257233258233259233260233261233262233263233264233265233266233267233268233269233270233271233272233273233274233275233276233277233278233279233280233281233282233283233284233285233286233287233288233289233290233291233292233293233294233295233296233297233298233299233300233301233302233303233304233305233306233307233308233309233310233311233312233313233314233315233316233317233318233319233320233321233322233323233324233325233326233327233328233329233330233331233332233333233334233335233336233337233338233339233340233341233342233343233344233345233346233347233348233349233350233351233352233353233354233355233356233357233358233359233360233361233362233363233364233365233366233367233368233369233370233371233372233373233374233375233376233377233378233379233380233381233382233383233384233385233386233387233388233389233390233391233392233393233394233395233396233397233398233399233400233401233402233403233404233405233406233407233408233409233410233411233412233413233414233415233416233417233418233419233420233421233422233423233424233425233426233427233428233429233430233431233432233433233434233435233436233437233438233439233440233441233442233443233444233445233446233447233448233449233450233451233452233453233454233455233456233457233458233459233460233461233462233463233464233465233466233467233468233469233470233471233472233473233474233475233476233477233478233479233480233481233482233483233484233485233486233487233488233489233490233491233492233493233494233495233496233497233498233499233500233501233502233503233504233505233506233507233508233509233510233511233512233513233514233515233516233517233518233519233520233521233522233523233524233525233526233527233528233529233530233531233532233533233534233535233536233537233538233539233540233541233542233543233544233545233546233547233548233549233550233551233552233553233554233555233556233557233558233559233560233561233562233563233564233565233566233567233568233569233570233571233572233573233574233575233576233577233578233579233580233581233582233583233584233585233586233587233588233589233590233591233592233593233594233595233596233597233598233599233600233601233602233603233604233605233606233607233608233609233610233611233612233613233614233615233616233617233618233619233620233621233622233623233624233625233626233627233628233629233630233631233632233633233634233635233636233637233638233639233640233641233642233643233644233645233646233647233648233649233650233651233652233653233654233655233656233657233658233659233660233661233662233663233664233665233666233667233668233669233670233671233672233673233674233675233676233677233678233679233680233681233682233683233684233685233686233687233688233689233690233691233692233693233694233695233696233697233698233699233700233701233702233703233704233705233706233707233708233709233710233711233712233713233714233715233716233717233718233719233720233721233722233723233724233725233726233727233728233729233730233731233732233733233734233735233736233737233738233739233740233741233742233743233744233745233746233747233748233749233750233751233752233753233754233755233756233757233758233759233760233761233762233763233764233765233766233767233768233769233770233771233772233773233774233775233776233777233778233779233780233781233782233783233784233785233786233787233788233789233790233791233792233793233794233795233796233797233798233799233800233801233802233803233804233805233806233807233808233809233810233811233812233813233814233815233816233817233818233819233820233821233822233823233824233825233826233827233828233829233830233831233832233833233834233835233836233837233838233839233840233841233842233843233844233845233846233847233848233849233850233851233852233853233854233855233856233857233858233859233860233861233862233863233864233865233866233867233868233869233870233871233872233873233874233875233876233877233878233879233880233881233882233883233884233885233886233887233888233889233890233891233892233893233894233895233896233897233898233899233900233901233902233903233904233905233906233907233908233909233910233911233912233913233914233915233916233917233918233919233920233921233922233923233924233925233926233927233928233929233930233931233932233933233934233935233936233937233938233939233940233941233942233943233944233945233946233947233948233949233950233951233952233953233954233955233956233957233958233959233960233961233962233963233964233965233966233967233968233969233970233971233972233973233974233975233976233977233978233979233980233981233982233983233984233985233986233987233988233989233990233991233992233993233994233995233996233997233998233999234000234001234002234003234004234005234006234007234008234009234010234011234012234013234014234015234016234017234018234019234020234021234022234023234024234025234026234027234028234029234030234031234032234033234034234035234036234037234038234039234040234041234042234043234044234045234046234047234048234049234050234051234052234053234054234055234056234057234058234059234060234061234062234063234064234065234066234067234068234069234070234071234072234073234074234075234076234077234078234079234080234081234082234083234084234085234086234087234088234089234090234091234092234093234094234095234096234097234098234099234100234101234102234103234104234105234106234107234108234109234110234111234112234113234114234115234116234117234118234119234120234121234122234123234124234125234126234127234128234129234130234131234132234133234134234135234136234137234138234139234140234141234142234143234144234145234146234147234148234149234150234151234152234153234154234155234156234157234158234159234160234161234162234163234164234165234166234167234168234169234170234171234172234173234174234175234176234177234178234179234180234181234182234183234184234185234186234187234188234189234190234191234192234193234194234195234196234197234198234199234200234201234202234203234204234205234206234207234208234209234210234211234212234213234214234215234216234217234218234219234220234221234222234223234224234225234226234227234228234229234230234231234232234233234234234235234236234237234238234239234240234241234242234243234244234245234246234247234248234249234250234251234252234253234254234255234256234257234258234259234260234261234262234263234264234265234266234267234268234269234270234271234272234273234274234275234276234277234278234279234280234281234282234283234284234285234286234287234288234289234290234291234292234293234294234295234296234297234298234299234300234301234302234303234304234305234306234307234308234309234310234311234312234313234314234315234316234317234318234319234320234321234322234323234324234325234326234327234328234329234330234331234332234333234334234335234336234337234338234339234340234341234342234343234344234345234346234347234348234349234350234351234352234353234354234355234356234357234358234359234360234361234362234363234364234365234366234367234368234369234370234371234372234373234374234375234376234377234378234379234380234381234382234383234384234385234386234387234388234389234390234391234392234393234394234395234396234397234398234399234400234401234402234403234404234405234406234407234408234409234410234411234412234413234414234415234416234417234418234419234420234421234422234423234424234425234426234427234428234429234430234431234432234433234434234435234436234437234438234439234440234441234442234443234444234445234446234447234448234449234450234451234452234453234454234455234456234457234458234459234460234461234462234463234464234465234466234467234468234469234470234471234472234473234474234475234476234477234478234479234480234481234482234483234484234485234486234487234488234489234490234491234492234493234494234495234496234497234498234499234500234501234502234503234504234505234506234507234508234509234510234511234512234513234514234515234516234517234518234519234520234521234522234523234524234525234526234527234528234529234530234531234532234533234534234535234536234537234538234539234540234541234542234543234544234545234546234547234548234549234550234551234552234553234554234555234556234557234558234559234560234561234562234563234564234565234566234567234568234569234570234571234572234573234574234575234576234577234578234579234580234581234582234583234584234585234586234587234588234589234590234591234592234593234594234595234596234597234598234599234600234601234602234603234604234605234606234607234608234609234610234611234612234613234614234615234616234617234618234619234620234621234622234623234624234625234626234627234628234629234630234631234632234633234634234635234636234637234638234639234640234641234642234643234644234645234646234647234648234649234650234651234652234653234654234655234656234657234658234659234660234661234662234663234664234665234666234667234668234669234670234671234672234673234674234675234676234677234678234679234680234681234682234683234684234685234686234687234688234689234690234691234692234693234694234695234696234697234698234699234700234701234702234703234704234705234706234707234708234709234710234711234712234713234714234715234716234717234718234719234720234721234722234723234724234725234726234727234728234729234730234731234732234733234734234735234736234737234738234739234740234741234742234743234744234745234746234747234748234749234750234751234752234753234754234755234756234757234758234759234760234761234762234763234764234765234766234767234768234769234770234771234772234773234774234775234776234777234778234779234780234781234782234783234784234785234786234787234788234789234790234791234792234793234794234795234796234797234798234799234800234801234802234803234804234805234806234807234808234809234810234811234812234813234814234815234816234817234818234819234820234821234822234823234824234825234826234827234828234829234830234831234832234833234834234835234836234837234838234839234840234841234842234843234844234845234846234847234848234849234850234851234852234853234854234855234856234857234858234859234860234861234862234863234864234865234866234867234868234869234870234871234872234873234874234875234876234877234878234879234880234881234882234883234884234885234886234887234888234889234890234891234892234893234894234895234896234897234898234899234900234901234902234903234904234905234906234907234908234909234910234911234912234913234914234915234916234917234918234919234920234921234922234923234924234925234926234927234928234929234930234931234932234933234934234935234936234937234938234939234940234941234942234943234944234945234946234947234948234949234950234951234952234953234954234955234956234957234958234959234960234961234962234963234964234965234966234967234968234969234970234971234972234973234974234975234976234977234978234979234980234981234982234983234984234985234986234987234988234989234990234991234992234993234994234995234996234997234998234999235000235001235002235003235004235005235006235007235008235009235010235011235012235013235014235015235016235017235018235019235020235021235022235023235024235025235026235027235028235029235030235031235032235033235034235035235036235037235038235039235040235041235042235043235044235045235046235047235048235049235050235051235052235053235054235055235056235057235058235059235060235061235062235063235064235065235066235067235068235069235070235071235072235073235074235075235076235077235078235079235080235081235082235083235084235085235086235087235088235089235090235091235092235093235094235095235096235097235098235099235100235101235102235103235104235105235106235107235108235109235110235111235112235113235114235115235116235117235118235119235120235121235122235123235124235125235126235127235128235129235130235131235132235133235134235135235136235137235138235139235140235141235142235143235144235145235146235147235148235149235150235151235152235153235154235155235156235157235158235159235160235161235162235163235164235165235166235167235168235169235170235171235172235173235174235175235176235177235178235179235180235181235182235183235184235185235186235187235188235189235190235191235192235193235194235195235196235197235198235199235200235201235202235203235204235205235206235207235208235209235210235211235212235213235214235215235216235217235218235219235220235221235222235223235224235225235226235227235228235229235230235231235232235233235234235235235236235237235238235239235240235241235242235243235244235245235246235247235248235249235250235251235252235253235254235255235256235257235258235259235260235261235262235263235264235265235266235267235268235269235270235271235272235273235274235275235276235277235278235279235280235281235282235283235284235285235286235287235288235289235290235291235292235293235294235295235296235297235298235299235300235301235302235303235304235305235306235307235308235309235310235311235312235313235314235315235316235317235318235319235320235321235322235323235324235325235326235327235328235329235330235331235332235333235334235335235336235337235338235339235340235341235342235343235344235345235346235347235348235349235350235351235352235353235354235355235356235357235358235359235360235361235362235363235364235365235366235367235368235369235370235371235372235373235374235375235376235377235378235379235380235381235382235383235384235385235386235387235388235389235390235391235392235393235394235395235396235397235398235399235400235401235402235403235404235405235406235407235408235409235410235411235412235413235414235415235416235417235418235419235420235421235422235423235424235425235426235427235428235429235430235431235432235433235434235435235436235437235438235439235440235441235442235443235444235445235446235447235448235449235450235451235452235453235454235455235456235457235458235459235460235461235462235463235464235465235466235467235468235469235470235471235472235473235474235475235476235477235478235479235480235481235482235483235484235485235486235487235488235489235490235491235492235493235494235495235496235497235498235499235500235501235502235503235504235505235506235507235508235509235510235511235512235513235514235515235516235517235518235519235520235521235522235523235524235525235526235527235528235529235530235531235532235533235534235535235536235537235538235539235540235541235542235543235544235545235546235547235548235549235550235551235552235553235554235555235556235557235558235559235560235561235562235563235564235565235566235567235568235569235570235571235572235573235574235575235576235577235578235579235580235581235582235583235584235585235586235587235588235589235590235591235592235593235594235595235596235597235598235599235600235601235602235603235604235605235606235607235608235609235610235611235612235613235614235615235616235617235618235619235620235621235622235623235624235625235626235627235628235629235630235631235632235633235634235635235636235637235638235639235640235641235642235643235644235645235646235647235648235649235650235651235652235653235654235655235656235657235658235659235660235661235662235663235664235665235666235667235668235669235670235671235672235673235674235675235676235677235678235679235680235681235682235683235684235685235686235687235688235689235690235691235692235693235694235695235696235697235698235699235700235701235702235703235704235705235706235707235708235709235710235711235712235713235714235715235716235717235718235719235720235721235722235723235724235725235726235727235728235729235730235731235732235733235734235735235736235737235738235739235740235741235742235743235744235745235746235747235748235749235750235751235752235753235754235755235756235757235758235759235760235761235762235763235764235765235766235767235768235769235770235771235772235773235774235775235776235777235778235779235780235781235782235783235784235785235786235787235788235789235790235791235792235793235794235795235796235797235798235799235800235801235802235803235804235805235806235807235808235809235810235811235812235813235814235815235816235817235818235819235820235821235822235823235824235825235826235827235828235829235830235831235832235833235834235835235836235837235838235839235840235841235842235843235844235845235846235847235848235849235850235851235852235853235854235855235856235857235858235859235860235861235862235863235864235865235866235867235868235869235870235871235872235873235874235875235876235877235878235879235880235881235882235883235884235885235886235887235888235889235890235891235892235893235894235895235896235897235898235899235900235901235902235903235904235905235906235907235908235909235910235911235912235913235914235915235916235917235918235919235920235921235922235923235924235925235926235927235928235929235930235931235932235933235934235935235936235937235938235939235940235941235942235943235944235945235946235947235948235949235950235951235952235953235954235955235956235957235958235959235960235961235962235963235964235965235966235967235968235969235970235971235972235973235974235975235976235977235978235979235980235981235982235983235984235985235986235987235988235989235990235991235992235993235994235995235996235997235998235999236000236001236002236003236004236005236006236007236008236009236010236011236012236013236014236015236016236017236018236019236020236021236022236023236024236025236026236027236028236029236030236031236032236033236034236035236036236037236038236039236040236041236042236043236044236045236046236047236048236049236050236051236052236053236054236055236056236057236058236059236060236061236062236063236064236065236066236067236068236069236070236071236072236073236074236075236076236077236078236079236080236081236082236083236084236085236086236087236088236089236090236091236092236093236094236095236096236097236098236099236100236101236102236103236104236105236106236107236108236109236110236111236112236113236114236115236116236117236118236119236120236121236122236123236124236125236126236127236128236129236130236131236132236133236134236135236136236137236138236139236140236141236142236143236144236145236146236147236148236149236150236151236152236153236154236155236156236157236158236159236160236161236162236163236164236165236166236167236168236169236170236171236172236173236174236175236176236177236178236179236180236181236182236183236184236185236186236187236188236189236190236191236192236193236194236195236196236197236198236199236200236201236202236203236204236205236206236207236208236209236210236211236212236213236214236215236216236217236218236219236220236221236222236223236224236225236226236227236228236229236230236231236232236233236234236235236236236237236238236239236240236241236242236243236244236245236246236247236248236249236250236251236252236253236254236255236256236257236258236259236260236261236262236263236264236265236266236267236268236269236270236271236272236273236274236275236276236277236278236279236280236281236282236283236284236285236286236287236288236289236290236291236292236293236294236295236296236297236298236299236300236301236302236303236304236305236306236307236308236309236310236311236312236313236314236315236316236317236318236319236320236321236322236323236324236325236326236327236328236329236330236331236332236333236334236335236336236337236338236339236340236341236342236343236344236345236346236347236348236349236350236351236352236353236354236355236356236357236358236359236360236361236362236363236364236365236366236367236368236369236370236371236372236373236374236375236376236377236378236379236380236381236382236383236384236385236386236387236388236389236390236391236392236393236394236395236396236397236398236399236400236401236402236403236404236405236406236407236408236409236410236411236412236413236414236415236416236417236418236419236420236421236422236423236424236425236426236427236428236429236430236431236432236433236434236435236436236437236438236439236440236441236442236443236444236445236446236447236448236449236450236451236452236453236454236455236456236457236458236459236460236461236462236463236464236465236466236467236468236469236470236471236472236473236474236475236476236477236478236479236480236481236482236483236484236485236486236487236488236489236490236491236492236493236494236495236496236497236498236499236500236501236502236503236504236505236506236507236508236509236510236511236512236513236514236515236516236517236518236519236520236521236522236523236524236525236526236527236528236529236530236531236532236533236534236535236536236537236538236539236540236541236542236543236544236545236546236547236548236549236550236551236552236553236554236555236556236557236558236559236560236561236562236563236564236565236566236567236568236569236570236571236572236573236574236575236576236577236578236579236580236581236582236583236584236585236586236587236588236589236590236591236592236593236594236595236596236597236598236599236600236601236602236603236604236605236606236607236608236609236610236611236612236613236614236615236616236617236618236619236620236621236622236623236624236625236626236627236628236629236630236631236632236633236634236635236636236637236638236639236640236641236642236643236644236645236646236647236648236649236650236651236652236653236654236655236656236657236658236659236660236661236662236663236664236665236666236667236668236669236670236671236672236673236674236675236676236677236678236679236680236681236682236683236684236685236686236687236688236689236690236691236692236693236694236695236696236697236698236699236700236701236702236703236704236705236706236707236708236709236710236711236712236713236714236715236716236717236718236719236720236721236722236723236724236725236726236727236728236729236730236731236732236733236734236735236736236737236738236739236740236741236742236743236744236745236746236747236748236749236750236751236752236753236754236755236756236757236758236759236760236761236762236763236764236765236766236767236768236769236770236771236772236773236774236775236776236777236778236779236780236781236782236783236784236785236786236787236788236789236790236791236792236793236794236795236796236797236798236799236800236801236802236803236804236805236806236807236808236809236810236811236812236813236814236815236816236817236818236819236820236821236822236823236824236825236826236827236828236829236830236831236832236833236834236835236836236837236838236839236840236841236842236843236844236845236846236847236848236849236850236851236852236853236854236855236856236857236858236859236860236861236862236863236864236865236866236867236868236869236870236871236872236873236874236875236876236877236878236879236880236881236882236883236884236885236886236887236888236889236890236891236892236893236894236895236896236897236898236899236900236901236902236903236904236905236906236907236908236909236910236911236912236913236914236915236916236917236918236919236920236921236922236923236924236925236926236927236928236929236930236931236932236933236934236935236936236937236938236939236940236941236942236943236944236945236946236947236948236949236950236951236952236953236954236955236956236957236958236959236960236961236962236963236964236965236966236967236968236969236970236971236972236973236974236975236976236977236978236979236980236981236982236983236984236985236986236987236988236989236990236991236992236993236994236995236996236997236998236999237000237001237002237003237004237005237006237007237008237009237010237011237012237013237014237015237016237017237018237019237020237021237022237023237024237025237026237027237028237029237030237031237032237033237034237035237036237037237038237039237040237041237042237043237044237045237046237047237048237049237050237051237052237053237054237055237056237057237058237059237060237061237062237063237064237065237066237067237068237069237070237071237072237073237074237075237076237077237078237079237080237081237082237083237084237085237086237087237088237089237090237091237092237093237094237095237096237097237098237099237100237101237102237103237104237105237106237107237108237109237110237111237112237113237114237115237116237117237118237119237120237121237122237123237124237125237126237127237128237129237130237131237132237133237134237135237136237137237138237139237140237141237142237143237144237145237146237147237148237149237150237151237152237153237154237155237156237157237158237159237160237161237162237163237164237165237166237167237168237169237170237171237172237173237174237175237176237177237178237179237180237181237182237183237184237185237186237187237188237189237190237191237192237193237194237195237196237197237198237199237200237201237202237203237204237205237206237207237208237209237210237211237212237213237214237215237216237217237218237219237220237221237222237223237224237225237226237227237228237229237230237231237232237233237234237235237236237237237238237239237240237241237242237243237244237245237246237247237248237249237250237251237252237253237254237255237256237257237258237259237260237261237262237263237264237265237266237267237268237269237270237271237272237273237274237275237276237277237278237279237280237281237282237283237284237285237286237287237288237289237290237291237292237293237294237295237296237297237298237299237300237301237302237303237304237305237306237307237308237309237310237311237312237313237314237315237316237317237318237319237320237321237322237323237324237325237326237327237328237329237330237331237332237333237334237335237336237337237338237339237340237341237342237343237344237345237346237347237348237349237350237351237352237353237354237355237356237357237358237359237360237361237362237363237364237365237366237367237368237369237370237371237372237373237374237375237376237377237378237379237380237381237382237383237384237385237386237387237388237389237390237391237392237393237394237395237396237397237398237399237400237401237402237403237404237405237406237407237408237409237410237411237412237413237414237415237416237417237418237419237420237421237422237423237424237425237426237427237428237429237430237431237432237433237434237435237436237437237438237439237440237441237442237443237444237445237446237447237448237449237450237451237452237453237454237455237456237457237458237459237460237461237462237463237464237465237466237467237468237469237470237471237472237473237474237475237476237477237478237479237480237481237482237483237484237485237486237487237488237489237490237491237492237493237494237495237496237497237498237499237500237501237502237503237504237505237506237507237508237509237510237511237512237513237514237515237516237517237518237519237520237521237522237523237524237525237526237527237528237529237530237531237532237533237534237535237536237537237538237539237540237541237542237543237544237545237546237547237548237549237550237551237552237553237554237555237556237557237558237559237560237561237562237563237564237565237566237567237568237569237570237571237572237573237574237575237576237577237578237579237580237581237582237583237584237585237586237587237588237589237590237591237592237593237594237595237596237597237598237599237600237601237602237603237604237605237606237607237608237609237610237611237612237613237614237615237616237617237618237619237620237621237622237623237624237625237626237627237628237629237630237631237632237633237634237635237636237637237638237639237640237641237642237643237644237645237646237647237648237649237650237651237652237653237654237655237656237657237658237659237660237661237662237663237664237665237666237667237668237669237670237671237672237673237674237675237676237677237678237679237680237681237682237683237684237685237686237687237688237689237690237691237692237693237694237695237696237697237698237699237700237701237702237703237704237705237706237707237708237709237710237711237712237713237714237715237716237717237718237719237720237721237722237723237724237725237726237727237728237729237730237731237732237733237734237735237736237737237738237739237740237741237742237743237744237745237746237747237748237749237750237751237752237753237754237755237756237757237758237759237760237761237762237763237764237765237766237767237768237769237770237771237772237773237774237775237776237777237778237779237780237781237782237783237784237785237786237787237788237789237790237791237792237793237794237795237796237797237798237799237800237801237802237803237804237805237806237807237808237809237810237811237812237813237814237815237816237817237818237819237820237821237822237823237824237825237826237827237828237829237830237831237832237833237834237835237836237837237838237839237840237841237842237843237844237845237846237847237848237849237850237851237852237853237854237855237856237857237858237859237860237861237862237863237864237865237866237867237868237869237870237871237872237873237874237875237876237877237878237879237880237881237882237883237884237885237886237887237888237889237890237891237892237893237894237895237896237897237898237899237900237901237902237903237904237905237906237907237908237909237910237911237912237913237914237915237916237917237918237919237920237921237922237923237924237925237926237927237928237929237930237931237932237933237934237935237936237937237938237939237940237941237942237943237944237945237946237947237948237949237950237951237952237953237954237955237956237957237958237959237960237961237962237963237964237965237966237967237968237969237970237971237972237973237974237975237976237977237978237979237980237981237982237983237984237985237986237987237988237989237990237991237992237993237994237995237996237997237998237999238000238001238002238003238004238005238006238007238008238009238010238011238012238013238014238015238016238017238018238019238020238021238022238023238024238025238026238027238028238029238030238031238032238033238034238035238036238037238038238039238040238041238042238043238044238045238046238047238048238049238050238051238052238053238054238055238056238057238058238059238060238061238062238063238064238065238066238067238068238069238070238071238072238073238074238075238076238077238078238079238080238081238082238083238084238085238086238087238088238089238090238091238092238093238094238095238096238097238098238099238100238101238102238103238104238105238106238107238108238109238110238111238112238113238114238115238116238117238118238119238120238121238122238123238124238125238126238127238128238129238130238131238132238133238134238135238136238137238138238139238140238141238142238143238144238145238146238147238148238149238150238151238152238153238154238155238156238157238158238159238160238161238162238163238164238165238166238167238168238169238170238171238172238173238174238175238176238177238178238179238180238181238182238183238184238185238186238187238188238189238190238191238192238193238194238195238196238197238198238199238200238201238202238203238204238205238206238207238208238209238210238211238212238213238214238215238216238217238218238219238220238221238222238223238224238225238226238227238228238229238230238231238232238233238234238235238236238237238238238239238240238241238242238243238244238245238246238247238248238249238250238251238252238253238254238255238256238257238258238259238260238261238262238263238264238265238266238267238268238269238270238271238272238273238274238275238276238277238278238279238280238281238282238283238284238285238286238287238288238289238290238291238292238293238294238295238296238297238298238299238300238301238302238303238304238305238306238307238308238309238310238311238312238313238314238315238316238317238318238319238320238321238322238323238324238325238326238327238328238329238330238331238332238333238334238335238336238337238338238339238340238341238342238343238344238345238346238347238348238349238350238351238352238353238354238355238356238357238358238359238360238361238362238363238364238365238366238367238368238369238370238371238372238373238374238375238376238377238378238379238380238381238382238383238384238385238386238387238388238389238390238391238392238393238394238395238396238397238398238399238400238401238402238403238404238405238406238407238408238409238410238411238412238413238414238415238416238417238418238419238420238421238422238423238424238425238426238427238428238429238430238431238432238433238434238435238436238437238438238439238440238441238442238443238444238445238446238447238448238449238450238451238452238453238454238455238456238457238458238459238460238461238462238463238464238465238466238467238468238469238470238471238472238473238474238475238476238477238478238479238480238481238482238483238484238485238486238487238488238489238490238491238492238493238494238495238496238497238498238499238500238501238502238503238504238505238506238507238508238509238510238511238512238513238514238515238516238517238518238519238520238521238522238523238524238525238526238527238528238529238530238531238532238533238534238535238536238537238538238539238540238541238542238543238544238545238546238547238548238549238550238551238552238553238554238555238556238557238558238559238560238561238562238563238564238565238566238567238568238569238570238571238572238573238574238575238576238577238578238579238580238581238582238583238584238585238586238587238588238589238590238591238592238593238594238595238596238597238598238599238600238601238602238603238604238605238606238607238608238609238610238611238612238613238614238615238616238617238618238619238620238621238622238623238624238625238626238627238628238629238630238631238632238633238634238635238636238637238638238639238640238641238642238643238644238645238646238647238648238649238650238651238652238653238654238655238656238657238658238659238660238661238662238663238664238665238666238667238668238669238670238671238672238673238674238675238676238677238678238679238680238681238682238683238684238685238686238687238688238689238690238691238692238693238694238695238696238697238698238699238700238701238702238703238704238705238706238707238708238709238710238711238712238713238714238715238716238717238718238719238720238721238722238723238724238725238726238727238728238729238730238731238732238733238734238735238736238737238738238739238740238741238742238743238744238745238746238747238748238749238750238751238752238753238754238755238756238757238758238759238760238761238762238763238764238765238766238767238768238769238770238771238772238773238774238775238776238777238778238779238780238781238782238783238784238785238786238787238788238789238790238791238792238793238794238795238796238797238798238799238800238801238802238803238804238805238806238807238808238809238810238811238812238813238814238815238816238817238818238819238820238821238822238823238824238825238826238827238828238829238830238831238832238833238834238835238836238837238838238839238840238841238842238843238844238845238846238847238848238849238850238851238852238853238854238855238856238857238858238859238860238861238862238863238864238865238866238867238868238869238870238871238872238873238874238875238876238877238878238879238880238881238882238883238884238885238886238887238888238889238890238891238892238893238894238895238896238897238898238899238900238901238902238903238904238905238906238907238908238909238910238911238912238913238914238915238916238917238918238919238920238921238922238923238924238925238926238927238928238929238930238931238932238933238934238935238936238937238938238939238940238941238942238943238944238945238946238947238948238949238950238951238952238953238954238955238956238957238958238959238960238961238962238963238964238965238966238967238968238969238970238971238972238973238974238975238976238977238978238979238980238981238982238983238984238985238986238987238988238989238990238991238992238993238994238995238996238997238998238999239000239001239002239003239004239005239006239007239008239009239010239011239012239013239014239015239016239017239018239019239020239021239022239023239024239025239026239027239028239029239030239031239032239033239034239035239036239037239038239039239040239041239042239043239044239045239046239047239048239049239050239051239052239053239054239055239056239057239058239059239060239061239062239063239064239065239066239067239068239069239070239071239072239073239074239075239076239077239078239079239080239081239082239083239084239085239086239087239088239089239090239091239092239093239094239095239096239097239098239099239100239101239102239103239104239105239106239107239108239109239110239111239112239113239114239115239116239117239118239119239120239121239122239123239124239125239126239127239128239129239130239131239132239133239134239135239136239137239138239139239140239141239142239143239144239145239146239147239148239149239150239151239152239153239154239155239156239157239158239159239160239161239162239163239164239165239166239167239168239169239170239171239172239173239174239175239176239177239178239179239180239181239182239183239184239185239186239187239188239189239190239191239192239193239194239195239196239197239198239199239200239201239202239203239204239205239206239207239208239209239210239211239212239213239214239215239216239217239218239219239220239221239222239223239224239225239226239227239228239229239230239231239232239233239234239235239236239237239238239239239240239241239242239243239244239245239246239247239248239249239250239251239252239253239254239255239256239257239258239259239260239261239262239263239264239265239266239267239268239269239270239271239272239273239274239275239276239277239278239279239280239281239282239283239284239285239286239287239288239289239290239291239292239293239294239295239296239297239298239299239300239301239302239303239304239305239306239307239308239309239310239311239312239313239314239315239316239317239318239319239320239321239322239323239324239325239326239327239328239329239330239331239332239333239334239335239336239337239338239339239340239341239342239343239344239345239346239347239348239349239350239351239352239353239354239355239356239357239358239359239360239361239362239363239364239365239366239367239368239369239370239371239372239373239374239375239376239377239378239379239380239381239382239383239384239385239386239387239388239389239390239391239392239393239394239395239396239397239398239399239400239401239402239403239404239405239406239407239408239409239410239411239412239413239414239415239416239417239418239419239420239421239422239423239424239425239426239427239428239429239430239431239432239433239434239435239436239437239438239439239440239441239442239443239444239445239446239447239448239449239450239451239452239453239454239455239456239457239458239459239460239461239462239463239464239465239466239467239468239469239470239471239472239473239474239475239476239477239478239479239480239481239482239483239484239485239486239487239488239489239490239491239492239493239494239495239496239497239498239499239500239501239502239503239504239505239506239507239508239509239510239511239512239513239514239515239516239517239518239519239520239521239522239523239524239525239526239527239528239529239530239531239532239533239534239535239536239537239538239539239540239541239542239543239544239545239546239547239548239549239550239551239552239553239554239555239556239557239558239559239560239561239562239563239564239565239566239567239568239569239570239571239572239573239574239575239576239577239578239579239580239581239582239583239584239585239586239587239588239589239590239591239592239593239594239595239596239597239598239599239600239601239602239603239604239605239606239607239608239609239610239611239612239613239614239615239616239617239618239619239620239621239622239623239624239625239626239627239628239629239630239631239632239633239634239635239636239637239638239639239640239641239642239643239644239645239646239647239648239649239650239651239652239653239654239655239656239657239658239659239660239661239662239663239664239665239666239667239668239669239670239671239672239673239674239675239676239677239678239679239680239681239682239683239684239685239686239687239688239689239690239691239692239693239694239695239696239697239698239699239700239701239702239703239704239705239706239707239708239709239710239711239712239713239714239715239716239717239718239719239720239721239722239723239724239725239726239727239728239729239730239731239732239733239734239735239736239737239738239739239740239741239742239743239744239745239746239747239748239749239750239751239752239753239754239755239756239757239758239759239760239761239762239763239764239765239766239767239768239769239770239771239772239773239774239775239776239777239778239779239780239781239782239783239784239785239786239787239788239789239790239791239792239793239794239795239796239797239798239799239800239801239802239803239804239805239806239807239808239809239810239811239812239813239814239815239816239817239818239819239820239821239822239823239824239825239826239827239828239829239830239831239832239833239834239835239836239837239838239839239840239841239842239843239844239845239846239847239848239849239850239851239852239853239854239855239856239857239858239859239860239861239862239863239864239865239866239867239868239869239870239871239872239873239874239875239876239877239878239879239880239881239882239883239884239885239886239887239888239889239890239891239892239893239894239895239896239897239898239899239900239901239902239903239904239905239906239907239908239909239910239911239912239913239914239915239916239917239918239919239920239921239922239923239924239925239926239927239928239929239930239931239932239933239934239935239936239937239938239939239940239941239942239943239944239945239946239947239948239949239950239951239952239953239954239955239956239957239958239959239960239961239962239963239964239965239966239967239968239969239970239971239972239973239974239975239976239977239978239979239980239981239982239983239984239985239986239987239988239989239990239991239992239993239994239995239996239997239998239999240000240001240002240003240004240005240006240007240008240009240010240011240012240013240014240015240016240017240018240019240020240021240022240023240024240025240026240027240028240029240030240031240032240033240034240035240036240037240038240039240040240041240042240043240044240045240046240047240048240049240050240051240052240053240054240055240056240057240058240059240060240061240062240063240064240065240066240067240068240069240070240071240072240073240074240075240076240077240078240079240080240081240082240083240084240085240086240087240088240089240090240091240092240093240094240095240096240097240098240099240100240101240102240103240104240105240106240107240108240109240110240111240112240113240114240115240116240117240118240119240120240121240122240123240124240125240126240127240128240129240130240131240132240133240134240135240136240137240138240139240140240141240142240143240144240145240146240147240148240149240150240151240152240153240154240155240156240157240158240159240160240161240162240163240164240165240166240167240168240169240170240171240172240173240174240175240176240177240178240179240180240181240182240183240184240185240186240187240188240189240190240191240192240193240194240195240196240197240198240199240200240201240202240203240204240205240206240207240208240209240210240211240212240213240214240215240216240217240218240219240220240221240222240223240224240225240226240227240228240229240230240231240232240233240234240235240236240237240238240239240240240241240242240243240244240245240246240247240248240249240250240251240252240253240254240255240256240257240258240259240260240261240262240263240264240265240266240267240268240269240270240271240272240273240274240275240276240277240278240279240280240281240282240283240284240285240286240287240288240289240290240291240292240293240294240295240296240297240298240299240300240301240302240303240304240305240306240307240308240309240310240311240312240313240314240315240316240317240318240319240320240321240322240323240324240325240326240327240328240329240330240331240332240333240334240335240336240337240338240339240340240341240342240343240344240345240346240347240348240349240350240351240352240353240354240355240356240357240358240359240360240361240362240363240364240365240366240367240368240369240370240371240372240373240374240375240376240377240378240379240380240381240382240383240384240385240386240387240388240389240390240391240392240393240394240395240396240397240398240399240400240401240402240403240404240405240406240407240408240409240410240411240412240413240414240415240416240417240418240419240420240421240422240423240424240425240426240427240428240429240430240431240432240433240434240435240436240437240438240439240440240441240442240443240444240445240446240447240448240449240450240451240452240453240454240455240456240457240458240459240460240461240462240463240464240465240466240467240468240469240470240471240472240473240474240475240476240477240478240479240480240481240482240483240484240485240486240487240488240489240490240491240492240493240494240495240496240497240498240499240500240501240502240503240504240505240506240507240508240509240510240511240512240513240514240515240516240517240518240519240520240521240522240523240524240525240526240527240528240529240530240531240532240533240534240535240536240537240538240539240540240541240542240543240544240545240546240547240548240549240550240551240552240553240554240555240556240557240558240559240560240561240562240563240564240565240566240567240568240569240570240571240572240573240574240575240576240577240578240579240580240581240582240583240584240585240586240587240588240589240590240591240592240593240594240595240596240597240598240599240600240601240602240603240604240605240606240607240608240609240610240611240612240613240614240615240616240617240618240619240620240621240622240623240624240625240626240627240628240629240630240631240632240633240634240635240636240637240638240639240640240641240642240643240644240645240646240647240648240649240650240651240652240653240654240655240656240657240658240659240660240661240662240663240664240665240666240667240668240669240670240671240672240673240674240675240676240677240678240679240680240681240682240683240684240685240686240687240688240689240690240691240692240693240694240695240696240697240698240699240700240701240702240703240704240705240706240707240708240709240710240711240712240713240714240715240716240717240718240719240720240721240722240723240724240725240726240727240728240729240730240731240732240733240734240735240736240737240738240739240740240741240742240743240744240745240746240747240748240749240750240751240752240753240754240755240756240757240758240759240760240761240762240763240764240765240766240767240768240769240770240771240772240773240774240775240776240777240778240779240780240781240782240783240784240785240786240787240788240789240790240791240792240793240794240795240796240797240798240799240800240801240802240803240804240805240806240807240808240809240810240811240812240813240814240815240816240817240818240819240820240821240822240823240824240825240826240827240828240829240830240831240832240833240834240835240836240837240838240839240840240841240842240843240844240845240846240847240848240849240850240851240852240853240854240855240856240857240858240859240860240861240862240863240864240865240866240867240868240869240870240871240872240873240874240875240876240877240878240879240880240881240882240883240884240885240886240887240888240889240890240891240892240893240894240895240896240897240898240899240900240901240902240903240904240905240906240907240908240909240910240911240912240913240914240915240916240917240918240919240920240921240922240923240924240925240926240927240928240929240930240931240932240933240934240935240936240937240938240939240940240941240942240943240944240945240946240947240948240949240950240951240952240953240954240955240956240957240958240959240960240961240962240963240964240965240966240967240968240969240970240971240972240973240974240975240976240977240978240979240980240981240982240983240984240985240986240987240988240989240990240991240992240993240994240995240996240997240998240999241000241001241002241003241004241005241006241007241008241009241010241011241012241013241014241015241016241017241018241019241020241021241022241023241024241025241026241027241028241029241030241031241032241033241034241035241036241037241038241039241040241041241042241043241044241045241046241047241048241049241050241051241052241053241054241055241056241057241058241059241060241061241062241063241064241065241066241067241068241069241070241071241072241073241074241075241076241077241078241079241080241081241082241083241084241085241086241087241088241089241090241091241092241093241094241095241096241097241098241099241100241101241102241103241104241105241106241107241108241109241110241111241112241113241114241115241116241117241118241119241120241121241122241123241124241125241126241127241128241129241130241131241132241133241134241135241136241137241138241139241140241141241142241143241144241145241146241147241148241149241150241151241152241153241154241155241156241157241158241159241160241161241162241163241164241165241166241167241168241169241170241171241172241173241174241175241176241177241178241179241180241181241182241183241184241185241186241187241188241189241190241191241192241193241194241195241196241197241198241199241200241201241202241203241204241205241206241207241208241209241210241211241212241213241214241215241216241217241218241219241220241221241222241223241224241225241226241227241228241229241230241231241232241233241234241235241236241237241238241239241240241241241242241243241244241245241246241247241248241249241250241251241252241253241254241255241256241257241258241259241260241261241262241263241264241265241266241267241268241269241270241271241272241273241274241275241276241277241278241279241280241281241282241283241284241285241286241287241288241289241290241291241292241293241294241295241296241297241298241299241300241301241302241303241304241305241306241307241308241309241310241311241312241313241314241315241316241317241318241319241320241321241322241323241324241325241326241327241328241329241330241331241332241333241334241335241336241337241338241339241340241341241342241343241344241345241346241347241348241349241350241351241352241353241354241355241356241357241358241359241360241361241362241363241364241365241366241367241368241369241370241371241372241373241374241375241376241377241378241379241380241381241382241383241384241385241386241387241388241389241390241391241392241393241394241395241396241397241398241399241400241401241402241403241404241405241406241407241408241409241410241411241412241413241414241415241416241417241418241419241420241421241422241423241424241425241426241427241428241429241430241431241432241433241434241435241436241437241438241439241440241441241442241443241444241445241446241447241448241449241450241451241452241453241454241455241456241457241458241459241460241461241462241463241464241465241466241467241468241469241470241471241472241473241474241475241476241477241478241479241480241481241482241483241484241485241486241487241488241489241490241491241492241493241494241495241496241497241498241499241500241501241502241503241504241505241506241507241508241509241510241511241512241513241514241515241516241517241518241519241520241521241522241523241524241525241526241527241528241529241530241531241532241533241534241535241536241537241538241539241540241541241542241543241544241545241546241547241548241549241550241551241552241553241554241555241556241557241558241559241560241561241562241563241564241565241566241567241568241569241570241571241572241573241574241575241576241577241578241579241580241581241582241583241584241585241586241587241588241589241590241591241592241593241594241595241596241597241598241599241600241601241602241603241604241605241606241607241608241609241610241611241612241613241614241615241616241617241618241619241620241621241622241623241624241625241626241627241628241629241630241631241632241633241634241635241636241637241638241639241640241641241642241643241644241645241646241647241648241649241650241651241652241653241654241655241656241657241658241659241660241661241662241663241664241665241666241667241668241669241670241671241672241673241674241675241676241677241678241679241680241681241682241683241684241685241686241687241688241689241690241691241692241693241694241695241696241697241698241699241700241701241702241703241704241705241706241707241708241709241710241711241712241713241714241715241716241717241718241719241720241721241722241723241724241725241726241727241728241729241730241731241732241733241734241735241736241737241738241739241740241741241742241743241744241745241746241747241748241749241750241751241752241753241754241755241756241757241758241759241760241761241762241763241764241765241766241767241768241769241770241771241772241773241774241775241776241777241778241779241780241781241782241783241784241785241786241787241788241789241790241791241792241793241794241795241796241797241798241799241800241801241802241803241804241805241806241807241808241809241810241811241812241813241814241815241816241817241818241819241820241821241822241823241824241825241826241827241828241829241830241831241832241833241834241835241836241837241838241839241840241841241842241843241844241845241846241847241848241849241850241851241852241853241854241855241856241857241858241859241860241861241862241863241864241865241866241867241868241869241870241871241872241873241874241875241876241877241878241879241880241881241882241883241884241885241886241887241888241889241890241891241892241893241894241895241896241897241898241899241900241901241902241903241904241905241906241907241908241909241910241911241912241913241914241915241916241917241918241919241920241921241922241923241924241925241926241927241928241929241930241931241932241933241934241935241936241937241938241939241940241941241942241943241944241945241946241947241948241949241950241951241952241953241954241955241956241957241958241959241960241961241962241963241964241965241966241967241968241969241970241971241972241973241974241975241976241977241978241979241980241981241982241983241984241985241986241987241988241989241990241991241992241993241994241995241996241997241998241999242000242001242002242003242004242005242006242007242008242009242010242011242012242013242014242015242016242017242018242019242020242021242022242023242024242025242026242027242028242029242030242031242032242033242034242035242036242037242038242039242040242041242042242043242044242045242046242047242048242049242050242051242052242053242054242055242056242057242058242059242060242061242062242063242064242065242066242067242068242069242070242071242072242073242074242075242076242077242078242079242080242081242082242083242084242085242086242087242088242089242090242091242092242093242094242095242096242097242098242099242100242101242102242103242104242105242106242107242108242109242110242111242112242113242114242115242116242117242118242119242120242121242122242123242124242125242126242127242128242129242130242131242132242133242134242135242136242137242138242139242140242141242142242143242144242145242146242147242148242149242150242151242152242153242154242155242156242157242158242159242160242161242162242163242164242165242166242167242168242169242170242171242172242173242174242175242176242177242178242179242180242181242182242183242184242185242186242187242188242189242190242191242192242193242194242195242196242197242198242199242200242201242202242203242204242205242206242207242208242209242210242211242212242213242214242215242216242217242218242219242220242221242222242223242224242225242226242227242228242229242230242231242232242233242234242235242236242237242238242239242240242241242242242243242244242245242246242247242248242249242250242251242252242253242254242255242256242257242258242259242260242261242262242263242264242265242266242267242268242269242270242271242272242273242274242275242276242277242278242279242280242281242282242283242284242285242286242287242288242289242290242291242292242293242294242295242296242297242298242299242300242301242302242303242304242305242306242307242308242309242310242311242312242313242314242315242316242317242318242319242320242321242322242323242324242325242326242327242328242329242330242331242332242333242334242335242336242337242338242339242340242341242342242343242344242345242346242347242348242349242350242351242352242353242354242355242356242357242358242359242360242361242362242363242364242365242366242367242368242369242370242371242372242373242374242375242376242377242378242379242380242381242382242383242384242385242386242387242388242389242390242391242392242393242394242395242396242397242398242399242400242401242402242403242404242405242406242407242408242409242410242411242412242413242414242415242416242417242418242419242420242421242422242423242424242425242426242427242428242429242430242431242432242433242434242435242436242437242438242439242440242441242442242443242444242445242446242447242448242449242450242451242452242453242454242455242456242457242458242459242460242461242462242463242464242465242466242467242468242469242470242471242472242473242474242475242476242477242478242479242480242481242482242483242484242485242486242487242488242489242490242491242492242493242494242495242496242497242498242499242500242501242502242503242504242505242506242507242508242509242510242511242512242513242514242515242516242517242518242519242520242521242522242523242524242525242526242527242528242529242530242531242532242533242534242535242536242537242538242539242540242541242542242543242544242545242546242547242548242549242550242551242552242553242554242555242556242557242558242559242560242561242562242563242564242565242566242567242568242569242570242571242572242573242574242575242576242577242578242579242580242581242582242583242584242585242586242587242588242589242590242591242592242593242594242595242596242597242598242599242600242601242602242603242604242605242606242607242608242609242610242611242612242613242614242615242616242617242618242619242620242621242622242623242624242625242626242627242628242629242630242631242632242633242634242635242636242637242638242639242640242641242642242643242644242645242646242647242648242649242650242651242652242653242654242655242656242657242658242659242660242661242662242663242664242665242666242667242668242669242670242671242672242673242674242675242676242677242678242679242680242681242682242683242684242685242686242687242688242689242690242691242692242693242694242695242696242697242698242699242700242701242702242703242704242705242706242707242708242709242710242711242712242713242714242715242716242717242718242719242720242721242722242723242724242725242726242727242728242729242730242731242732242733242734242735242736242737242738242739242740242741242742242743242744242745242746242747242748242749242750242751242752242753242754242755242756242757242758242759242760242761242762242763242764242765242766242767242768242769242770242771242772242773242774242775242776242777242778242779242780242781242782242783242784242785242786242787242788242789242790242791242792242793242794242795242796242797242798242799242800242801242802242803242804242805242806242807242808242809242810242811242812242813242814242815242816242817242818242819242820242821242822242823242824242825242826242827242828242829242830242831242832242833242834242835242836242837242838242839242840242841242842242843242844242845242846242847242848242849242850242851242852242853242854242855242856242857242858242859242860242861242862242863242864242865242866242867242868242869242870242871242872242873242874242875242876242877242878242879242880242881242882242883242884242885242886242887242888242889242890242891242892242893242894242895242896242897242898242899242900242901242902242903242904242905242906242907242908242909242910242911242912242913242914242915242916242917242918242919242920242921242922242923242924242925242926242927242928242929242930242931242932242933242934242935242936242937242938242939242940242941242942242943242944242945242946242947242948242949242950242951242952242953242954242955242956242957242958242959242960242961242962242963242964242965242966242967242968242969242970242971242972242973242974242975242976242977242978242979242980242981242982242983242984242985242986242987242988242989242990242991242992242993242994242995242996242997242998242999243000243001243002243003243004243005243006243007243008243009243010243011243012243013243014243015243016243017243018243019243020243021243022243023243024243025243026243027243028243029243030243031243032243033243034243035243036243037243038243039243040243041243042243043243044243045243046243047243048243049243050243051243052243053243054243055243056243057243058243059243060243061243062243063243064243065243066243067243068243069243070243071243072243073243074243075243076243077243078243079243080243081243082243083243084243085243086243087243088243089243090243091243092243093243094243095243096243097243098243099243100243101243102243103243104243105243106243107243108243109243110243111243112243113243114243115243116243117243118243119243120243121243122243123243124243125243126243127243128243129243130243131243132243133243134243135243136243137243138243139243140243141243142243143243144243145243146243147243148243149243150243151243152243153243154243155243156243157243158243159243160243161243162243163243164243165243166243167243168243169243170243171243172243173243174243175243176243177243178243179243180243181243182243183243184243185243186243187243188243189243190243191243192243193243194243195243196243197243198243199243200243201243202243203243204243205243206243207243208243209243210243211243212243213243214243215243216243217243218243219243220243221243222243223243224243225243226243227243228243229243230243231243232243233243234243235243236243237243238243239243240243241243242243243243244243245243246243247243248243249243250243251243252243253243254243255243256243257243258243259243260243261243262243263243264243265243266243267243268243269243270243271243272243273243274243275243276243277243278243279243280243281243282243283243284243285243286243287243288243289243290243291243292243293243294243295243296243297243298243299243300243301243302243303243304243305243306243307243308243309243310243311243312243313243314243315243316243317243318243319243320243321243322243323243324243325243326243327243328243329243330243331243332243333243334243335243336243337243338243339243340243341243342243343243344243345243346243347243348243349243350243351243352243353243354243355243356243357243358243359243360243361243362243363243364243365243366243367243368243369243370243371243372243373243374243375243376243377243378243379243380243381243382243383243384243385243386243387243388243389243390243391243392243393243394243395243396243397243398243399243400243401243402243403243404243405243406243407243408243409243410243411243412243413243414243415243416243417243418243419243420243421243422243423243424243425243426243427243428243429243430243431243432243433243434243435243436243437243438243439243440243441243442243443243444243445243446243447243448243449243450243451243452243453243454243455243456243457243458243459243460243461243462243463243464243465243466243467243468243469243470243471243472243473243474243475243476243477243478243479243480243481243482243483243484243485243486243487243488243489243490243491243492243493243494243495243496243497243498243499243500243501243502243503243504243505243506243507243508243509243510243511243512243513243514243515243516243517243518243519243520243521243522243523243524243525243526243527243528243529243530243531243532243533243534243535243536243537243538243539243540243541243542243543243544243545243546243547243548243549243550243551243552243553243554243555243556243557243558243559243560243561243562243563243564243565243566243567243568243569243570243571243572243573243574243575243576243577243578243579243580243581243582243583243584243585243586243587243588243589243590243591243592243593243594243595243596243597243598243599243600243601243602243603243604243605243606243607243608243609243610243611243612243613243614243615243616243617243618243619243620243621243622243623243624243625243626243627243628243629243630243631243632243633243634243635243636243637243638243639243640243641243642243643243644243645243646243647243648243649243650243651243652243653243654243655243656243657243658243659243660243661243662243663243664243665243666243667243668243669243670243671243672243673243674243675243676243677243678243679243680243681243682243683243684243685243686243687243688243689243690243691243692243693243694243695243696243697243698243699243700243701243702243703243704243705243706243707243708243709243710243711243712243713243714243715243716243717243718243719243720243721243722243723243724243725243726243727243728243729243730243731243732243733243734243735243736243737243738243739243740243741243742243743243744243745243746243747243748243749243750243751243752243753243754243755243756243757243758243759243760243761243762243763243764243765243766243767243768243769243770243771243772243773243774243775243776243777243778243779243780243781243782243783243784243785243786243787243788243789243790243791243792243793243794243795243796243797243798243799243800243801243802243803243804243805243806243807243808243809243810243811243812243813243814243815243816243817243818243819243820243821243822243823243824243825243826243827243828243829243830243831243832243833243834243835243836243837243838243839243840243841243842243843243844243845243846243847243848243849243850243851243852243853243854243855243856243857243858243859243860243861243862243863243864243865243866243867243868243869243870243871243872243873243874243875243876243877243878243879243880243881243882243883243884243885243886243887243888243889243890243891243892243893243894243895243896243897243898243899243900243901243902243903243904243905243906243907243908243909243910243911243912243913243914243915243916243917243918243919243920243921243922243923243924243925243926243927243928243929243930243931243932243933243934243935243936243937243938243939243940243941243942243943243944243945243946243947243948243949243950243951243952243953243954243955243956243957243958243959243960243961243962243963243964243965243966243967243968243969243970243971243972243973243974243975243976243977243978243979243980243981243982243983243984243985243986243987243988243989243990243991243992243993243994243995243996243997243998243999244000244001244002244003244004244005244006244007244008244009244010244011244012244013244014244015244016244017244018244019244020244021244022244023244024244025244026244027244028244029244030244031244032244033244034244035244036244037244038244039244040244041244042244043244044244045244046244047244048244049244050244051244052244053244054244055244056244057244058244059244060244061244062244063244064244065244066244067244068244069244070244071244072244073244074244075244076244077244078244079244080244081244082244083244084244085244086244087244088244089244090244091244092244093244094244095244096244097244098244099244100244101244102244103244104244105244106244107244108244109244110244111244112244113244114244115244116244117244118244119244120244121244122244123244124244125244126244127244128244129244130244131244132244133244134244135244136244137244138244139244140244141244142244143244144244145244146244147244148244149244150244151244152244153244154244155244156244157244158244159244160244161244162244163244164244165244166244167244168244169244170244171244172244173244174244175244176244177244178244179244180244181244182244183244184244185244186244187244188244189244190244191244192244193244194244195244196244197244198244199244200244201244202244203244204244205244206244207244208244209244210244211244212244213244214244215244216244217244218244219244220244221244222244223244224244225244226244227244228244229244230244231244232244233244234244235244236244237244238244239244240244241244242244243244244244245244246244247244248244249244250244251244252244253244254244255244256244257244258244259244260244261244262244263244264244265244266244267244268244269244270244271244272244273244274244275244276244277244278244279244280244281244282244283244284244285244286244287244288244289244290244291244292244293244294244295244296244297244298244299244300244301244302244303244304244305244306244307244308244309244310244311244312244313244314244315244316244317244318244319244320244321244322244323244324244325244326244327244328244329244330244331244332244333244334244335244336244337244338244339244340244341244342244343244344244345244346244347244348244349244350244351244352244353244354244355244356244357244358244359244360244361244362244363244364244365244366244367244368244369244370244371244372244373244374244375244376244377244378244379244380244381244382244383244384244385244386244387244388244389244390244391244392244393244394244395244396244397244398244399244400244401244402244403244404244405244406244407244408244409244410244411244412244413244414244415244416244417244418244419244420244421244422244423244424244425244426244427244428244429244430244431244432244433244434244435244436244437244438244439244440244441244442244443244444244445244446244447244448244449244450244451244452244453244454244455244456244457244458244459244460244461244462244463244464244465244466244467244468244469244470244471244472244473244474244475244476244477244478244479244480244481244482244483244484244485244486244487244488244489244490244491244492244493244494244495244496244497244498244499244500244501244502244503244504244505244506244507244508244509244510244511244512244513244514244515244516244517244518244519244520244521244522244523244524244525244526244527244528244529244530244531244532244533244534244535244536244537244538244539244540244541244542244543244544244545244546244547244548244549244550244551244552244553244554244555244556244557244558244559244560244561244562244563244564244565244566244567244568244569244570244571244572244573244574244575244576244577244578244579244580244581244582244583244584244585244586244587244588244589244590244591244592244593244594244595244596244597244598244599244600244601244602244603244604244605244606244607244608244609244610244611244612244613244614244615244616244617244618244619244620244621244622244623244624244625244626244627244628244629244630244631244632244633244634244635244636244637244638244639244640244641244642244643244644244645244646244647244648244649244650244651244652244653244654244655244656244657244658244659244660244661244662244663244664244665244666244667244668244669244670244671244672244673244674244675244676244677244678244679244680244681244682244683244684244685244686244687244688244689244690244691244692244693244694244695244696244697244698244699244700244701244702244703244704244705244706244707244708244709244710244711244712244713244714244715244716244717244718244719244720244721244722244723244724244725244726244727244728244729244730244731244732244733244734244735244736244737244738244739244740244741244742244743244744244745244746244747244748244749244750244751244752244753244754244755244756244757244758244759244760244761244762244763244764244765244766244767244768244769244770244771244772244773244774244775244776244777244778244779244780244781244782244783244784244785244786244787244788244789244790244791244792244793244794244795244796244797244798244799244800244801244802244803244804244805244806244807244808244809244810244811244812244813244814244815244816244817244818244819244820244821244822244823244824244825244826244827244828244829244830244831244832244833244834244835244836244837244838244839244840244841244842244843244844244845244846244847244848244849244850244851244852244853244854244855244856244857244858244859244860244861244862244863244864244865244866244867244868244869244870244871244872244873244874244875244876244877244878244879244880244881244882244883244884244885244886244887244888244889244890244891244892244893244894244895244896244897244898244899244900244901244902244903244904244905244906244907244908244909244910244911244912244913244914244915244916244917244918244919244920244921244922244923244924244925244926244927244928244929244930244931244932244933244934244935244936244937244938244939244940244941244942244943244944244945244946244947244948244949244950244951244952244953244954244955244956244957244958244959244960244961244962244963244964244965244966244967244968244969244970244971244972244973244974244975244976244977244978244979244980244981244982244983244984244985244986244987244988244989244990244991244992244993244994244995244996244997244998244999245000245001245002245003245004245005245006245007245008245009245010245011245012245013245014245015245016245017245018245019245020245021245022245023245024245025245026245027245028245029245030245031245032245033245034245035245036245037245038245039245040245041245042245043245044245045245046245047245048245049245050245051245052245053245054245055245056245057245058245059245060245061245062245063245064245065245066245067245068245069245070245071245072245073245074245075245076245077245078245079245080245081245082245083245084245085245086245087245088245089245090245091245092245093245094245095245096245097245098245099245100245101245102245103245104245105245106245107245108245109245110245111245112245113245114245115245116245117245118245119245120245121245122245123245124245125245126245127245128245129245130245131245132245133245134245135245136245137245138245139245140245141245142245143245144245145245146245147245148245149245150245151245152245153245154245155245156245157245158245159245160245161245162245163245164245165245166245167245168245169245170245171245172245173245174245175245176245177245178245179245180245181245182245183245184245185245186245187245188245189245190245191245192245193245194245195245196245197245198245199245200245201245202245203245204245205245206245207245208245209245210245211245212245213245214245215245216245217245218245219245220245221245222245223245224245225245226245227245228245229245230245231245232245233245234245235245236245237245238245239245240245241245242245243245244245245245246245247245248245249245250245251245252245253245254245255245256245257245258245259245260245261245262245263245264245265245266245267245268245269245270245271245272245273245274245275245276245277245278245279245280245281245282245283245284245285245286245287245288245289245290245291245292245293245294245295245296245297245298245299245300245301245302245303245304245305245306245307245308245309245310245311245312245313245314245315245316245317245318245319245320245321245322245323245324245325245326245327245328245329245330245331245332245333245334245335245336245337245338245339245340245341245342245343245344245345245346245347245348245349245350245351245352245353245354245355245356245357245358245359245360245361245362245363245364245365245366245367245368245369245370245371245372245373245374245375245376245377245378245379245380245381245382245383245384245385245386245387245388245389245390245391245392245393245394245395245396245397245398245399245400245401245402245403245404245405245406245407245408245409245410245411245412245413245414245415245416245417245418245419245420245421245422245423245424245425245426245427245428245429245430245431245432245433245434245435245436245437245438245439245440245441245442245443245444245445245446245447245448245449245450245451245452245453245454245455245456245457245458245459245460245461245462245463245464245465245466245467245468245469245470245471245472245473245474245475245476245477245478245479245480245481245482245483245484245485245486245487245488245489245490245491245492245493245494245495245496245497245498245499245500245501245502245503245504245505245506245507245508245509245510245511245512245513245514245515245516245517245518245519245520245521245522245523245524245525245526245527245528245529245530245531245532245533245534245535245536245537245538245539245540245541245542245543245544245545245546245547245548245549245550245551245552245553245554245555245556245557245558245559245560245561245562245563245564245565245566245567245568245569245570245571245572245573245574245575245576245577245578245579245580245581245582245583245584245585245586245587245588245589245590245591245592245593245594245595245596245597245598245599245600245601245602245603245604245605245606245607245608245609245610245611245612245613245614245615245616245617245618245619245620245621245622245623245624245625245626245627245628245629245630245631245632245633245634245635245636245637245638245639245640245641245642245643245644245645245646245647245648245649245650245651245652245653245654245655245656245657245658245659245660245661245662245663245664245665245666245667245668245669245670245671245672245673245674245675245676245677245678245679245680245681245682245683245684245685245686245687245688245689245690245691245692245693245694245695245696245697245698245699245700245701245702245703245704245705245706245707245708245709245710245711245712245713245714245715245716245717245718245719245720245721245722245723245724245725245726245727245728245729245730245731245732245733245734245735245736245737245738245739245740245741245742245743245744245745245746245747245748245749245750245751245752245753245754245755245756245757245758245759245760245761245762245763245764245765245766245767245768245769245770245771245772245773245774245775245776245777245778245779245780245781245782245783245784245785245786245787245788245789245790245791245792245793245794245795245796245797245798245799245800245801245802245803245804245805245806245807245808245809245810245811245812245813245814245815245816245817245818245819245820245821245822245823245824245825245826245827245828245829245830245831245832245833245834245835245836245837245838245839245840245841245842245843245844245845245846245847245848245849245850245851245852245853245854245855245856245857245858245859245860245861245862245863245864245865245866245867245868245869245870245871245872245873245874245875245876245877245878245879245880245881245882245883245884245885245886245887245888245889245890245891245892245893245894245895245896245897245898245899245900245901245902245903245904245905245906245907245908245909245910245911245912245913245914245915245916245917245918245919245920245921245922245923245924245925245926245927245928245929245930245931245932245933245934245935245936245937245938245939245940245941245942245943245944245945245946245947245948245949245950245951245952245953245954245955245956245957245958245959245960245961245962245963245964245965245966245967245968245969245970245971245972245973245974245975245976245977245978245979245980245981245982245983245984245985245986245987245988245989245990245991245992245993245994245995245996245997245998245999246000246001246002246003246004246005246006246007246008246009246010246011246012246013246014246015246016246017246018246019246020246021246022246023246024246025246026246027246028246029246030246031246032246033246034246035246036246037246038246039246040246041246042246043246044246045246046246047246048246049246050246051246052246053246054246055246056246057246058246059246060246061246062246063246064246065246066246067246068246069246070246071246072246073246074246075246076246077246078246079246080246081246082246083246084246085246086246087246088246089246090246091246092246093246094246095246096246097246098246099246100246101246102246103246104246105246106246107246108246109246110246111246112246113246114246115246116246117246118246119246120246121246122246123246124246125246126246127246128246129246130246131246132246133246134246135246136246137246138246139246140246141246142246143246144246145246146246147246148246149246150246151246152246153246154246155246156246157246158246159246160246161246162246163246164246165246166246167246168246169246170246171246172246173246174246175246176246177246178246179246180246181246182246183246184246185246186246187246188246189246190246191246192246193246194246195246196246197246198246199246200246201246202246203246204246205246206246207246208246209246210246211246212246213246214246215246216246217246218246219246220246221246222246223246224246225246226246227246228246229246230246231246232246233246234246235246236246237246238246239246240246241246242246243246244246245246246246247246248246249246250246251246252246253246254246255246256246257246258246259246260246261246262246263246264246265246266246267246268246269246270246271246272246273246274246275246276246277246278246279246280246281246282246283246284246285246286246287246288246289246290246291246292246293246294246295246296246297246298246299246300246301246302246303246304246305246306246307246308246309246310246311246312246313246314246315246316246317246318246319246320246321246322246323246324246325246326246327246328246329246330246331246332246333246334246335246336246337246338246339246340246341246342246343246344246345246346246347246348246349246350246351246352246353246354246355246356246357246358246359246360246361246362246363246364246365246366246367246368246369246370246371246372246373246374246375246376246377246378246379246380246381246382246383246384246385246386246387246388246389246390246391246392246393246394246395246396246397246398246399246400246401246402246403246404246405246406246407246408246409246410246411246412246413246414246415246416246417246418246419246420246421246422246423246424246425246426246427246428246429246430246431246432246433246434246435246436246437246438246439246440246441246442246443246444246445246446246447246448246449246450246451246452246453246454246455246456246457246458246459246460246461246462246463246464246465246466246467246468246469246470246471246472246473246474246475246476246477246478246479246480246481246482246483246484246485246486246487246488246489246490246491246492246493246494246495246496246497246498246499246500246501246502246503246504246505246506246507246508246509246510246511246512246513246514246515246516246517246518246519246520246521246522246523246524246525246526246527246528246529246530246531246532246533246534246535246536246537246538246539246540246541246542246543246544246545246546246547246548246549246550246551246552246553246554246555246556246557246558246559246560246561246562246563246564246565246566246567246568246569246570246571246572246573246574246575246576246577246578246579246580246581246582246583246584246585246586246587246588246589246590246591246592246593246594246595246596246597246598246599246600246601246602246603246604246605246606246607246608246609246610246611246612246613246614246615246616246617246618246619246620246621246622246623246624246625246626246627246628246629246630246631246632246633246634246635246636246637246638246639246640246641246642246643246644246645246646246647246648246649246650246651246652246653246654246655246656246657246658246659246660246661246662246663246664246665246666246667246668246669246670246671246672246673246674246675246676246677246678246679246680246681246682246683246684246685246686246687246688246689246690246691246692246693246694246695246696246697246698246699246700246701246702246703246704246705246706246707246708246709246710246711246712246713246714246715246716246717246718246719246720246721246722246723246724246725246726246727246728246729246730246731246732246733246734246735246736246737246738246739246740246741246742246743246744246745246746246747246748246749246750246751246752246753246754246755246756246757246758246759246760246761246762246763246764246765246766246767246768246769246770246771246772246773246774246775246776246777246778246779246780246781246782246783246784246785246786246787246788246789246790246791246792246793246794246795246796246797246798246799246800246801246802246803246804246805246806246807246808246809246810246811246812246813246814246815246816246817246818246819246820246821246822246823246824246825246826246827246828246829246830246831246832246833246834246835246836246837246838246839246840246841246842246843246844246845246846246847246848246849246850246851246852246853246854246855246856246857246858246859246860246861246862246863246864246865246866246867246868246869246870246871246872246873246874246875246876246877246878246879246880246881246882246883246884246885246886246887246888246889246890246891246892246893246894246895246896246897246898246899246900246901246902246903246904246905246906246907246908246909246910246911246912246913246914246915246916246917246918246919246920246921246922246923246924246925246926246927246928246929246930246931246932246933246934246935246936246937246938246939246940246941246942246943246944246945246946246947246948246949246950246951246952246953246954246955246956246957246958246959246960246961246962246963246964246965246966246967246968246969246970246971246972246973246974246975246976246977246978246979246980246981246982246983246984246985246986246987246988246989246990246991246992246993246994246995246996246997246998246999247000247001247002247003247004247005247006247007247008247009247010247011247012247013247014247015247016247017247018247019247020247021247022247023247024247025247026247027247028247029247030247031247032247033247034247035247036247037247038247039247040247041247042247043247044247045247046247047247048247049247050247051247052247053247054247055247056247057247058247059247060247061247062247063247064247065247066247067247068247069247070247071247072247073247074247075247076247077247078247079247080247081247082247083247084247085247086247087247088247089247090247091247092247093247094247095247096247097247098247099247100247101247102247103247104247105247106247107247108247109247110247111247112247113247114247115247116247117247118247119247120247121247122247123247124247125247126247127247128247129247130247131247132247133247134247135247136247137247138247139247140247141247142247143247144247145247146247147247148247149247150247151247152247153247154247155247156247157247158247159247160247161247162247163247164247165247166247167247168247169247170247171247172247173247174247175247176247177247178247179247180247181247182247183247184247185247186247187247188247189247190247191247192247193247194247195247196247197247198247199247200247201247202247203247204247205247206247207247208247209247210247211247212247213247214247215247216247217247218247219247220247221247222247223247224247225247226247227247228247229247230247231247232247233247234247235247236247237247238247239247240247241247242247243247244247245247246247247247248247249247250247251247252247253247254247255247256247257247258247259247260247261247262247263247264247265247266247267247268247269247270247271247272247273247274247275247276247277247278247279247280247281247282247283247284247285247286247287247288247289247290247291247292247293247294247295247296247297247298247299247300247301247302247303247304247305247306247307247308247309247310247311247312247313247314247315247316247317247318247319247320247321247322247323247324247325247326247327247328247329247330247331247332247333247334247335247336247337247338247339247340247341247342247343247344247345247346247347247348247349247350247351247352247353247354247355247356247357247358247359247360247361247362247363247364247365247366247367247368247369247370247371247372247373247374247375247376247377247378247379247380247381247382247383247384247385247386247387247388247389247390247391247392247393247394247395247396247397247398247399247400247401247402247403247404247405247406247407247408247409247410247411247412247413247414247415247416247417247418247419247420247421247422247423247424247425247426247427247428247429247430247431247432247433247434247435247436247437247438247439247440247441247442247443247444247445247446247447247448247449247450247451247452247453247454247455247456247457247458247459247460247461247462247463247464247465247466247467247468247469247470247471247472247473247474247475247476247477247478247479247480247481247482247483247484247485247486247487247488247489247490247491247492247493247494247495247496247497247498247499247500247501247502247503247504247505247506247507247508247509247510247511247512247513247514247515247516247517247518247519247520247521247522247523247524247525247526247527247528247529247530247531247532247533247534247535247536247537247538247539247540247541247542247543247544247545247546247547247548247549247550247551247552247553247554247555247556247557247558247559247560247561247562247563247564247565247566247567247568247569247570247571247572247573247574247575247576247577247578247579247580247581247582247583247584247585247586247587247588247589247590247591247592247593247594247595247596247597247598247599247600247601247602247603247604247605247606247607247608247609247610247611247612247613247614247615247616247617247618247619247620247621247622247623247624247625247626247627247628247629247630247631247632247633247634247635247636247637247638247639247640247641247642247643247644247645247646247647247648247649247650247651247652247653247654247655247656247657247658247659247660247661247662247663247664247665247666247667247668247669247670247671247672247673247674247675247676247677247678247679247680247681247682247683247684247685247686247687247688247689247690247691247692247693247694247695247696247697247698247699247700247701247702247703247704247705247706247707247708247709247710247711247712247713247714247715247716247717247718247719247720247721247722247723247724247725247726247727247728247729247730247731247732247733247734247735247736247737247738247739247740247741247742247743247744247745247746247747247748247749247750247751247752247753247754247755247756247757247758247759247760247761247762247763247764247765247766247767247768247769247770247771247772247773247774247775247776247777247778247779247780247781247782247783247784247785247786247787247788247789247790247791247792247793247794247795247796247797247798247799247800247801247802247803247804247805247806247807247808247809247810247811247812247813247814247815247816247817247818247819247820247821247822247823247824247825247826247827247828247829247830247831247832247833247834247835247836247837247838247839247840247841247842247843247844247845247846247847247848247849247850247851247852247853247854247855247856247857247858247859247860247861247862247863247864247865247866247867247868247869247870247871247872247873247874247875247876247877247878247879247880247881247882247883247884247885247886247887247888247889247890247891247892247893247894247895247896247897247898247899247900247901247902247903247904247905247906247907247908247909247910247911247912247913247914247915247916247917247918247919247920247921247922247923247924247925247926247927247928247929247930247931247932247933247934247935247936247937247938247939247940247941247942247943247944247945247946247947247948247949247950247951247952247953247954247955247956247957247958247959247960247961247962247963247964247965247966247967247968247969247970247971247972247973247974247975247976247977247978247979247980247981247982247983247984247985247986247987247988247989247990247991247992247993247994247995247996247997247998247999248000248001248002248003248004248005248006248007248008248009248010248011248012248013248014248015248016248017248018248019248020248021248022248023248024248025248026248027248028248029248030248031248032248033248034248035248036248037248038248039248040248041248042248043248044248045248046248047248048248049248050248051248052248053248054248055248056248057248058248059248060248061248062248063248064248065248066248067248068248069248070248071248072248073248074248075248076248077248078248079248080248081248082248083248084248085248086248087248088248089248090248091248092248093248094248095248096248097248098248099248100248101248102248103248104248105248106248107248108248109248110248111248112248113248114248115248116248117248118248119248120248121248122248123248124248125248126248127248128248129248130248131248132248133248134248135248136248137248138248139248140248141248142248143248144248145248146248147248148248149248150248151248152248153248154248155248156248157248158248159248160248161248162248163248164248165248166248167248168248169248170248171248172248173248174248175248176248177248178248179248180248181248182248183248184248185248186248187248188248189248190248191248192248193248194248195248196248197248198248199248200248201248202248203248204248205248206248207248208248209248210248211248212248213248214248215248216248217248218248219248220248221248222248223248224248225248226248227248228248229248230248231248232248233248234248235248236248237248238248239248240248241248242248243248244248245248246248247248248248249248250248251248252248253248254248255248256248257248258248259248260248261248262248263248264248265248266248267248268248269248270248271248272248273248274248275248276248277248278248279248280248281248282248283248284248285248286248287248288248289248290248291248292248293248294248295248296248297248298248299248300248301248302248303248304248305248306248307248308248309248310248311248312248313248314248315248316248317248318248319248320248321248322248323248324248325248326248327248328248329248330248331248332248333248334248335248336248337248338248339248340248341248342248343248344248345248346248347248348248349248350248351248352248353248354248355248356248357248358248359248360248361248362248363248364248365248366248367248368248369248370248371248372248373248374248375248376248377248378248379248380248381248382248383248384248385248386248387248388248389248390248391248392248393248394248395248396248397248398248399248400248401248402248403248404248405248406248407248408248409248410248411248412248413248414248415248416248417248418248419248420248421248422248423248424248425248426248427248428248429248430248431248432248433248434248435248436248437248438248439248440248441248442248443248444248445248446248447248448248449248450248451248452248453248454248455248456248457248458248459248460248461248462248463248464248465248466248467248468248469248470248471248472248473248474248475248476248477248478248479248480248481248482248483248484248485248486248487248488248489248490248491248492248493248494248495248496248497248498248499248500248501248502248503248504248505248506248507248508248509248510248511248512248513248514248515248516248517248518248519248520248521248522248523248524248525248526248527248528248529248530248531248532248533248534248535248536248537248538248539248540248541248542248543248544248545248546248547248548248549248550248551248552248553248554248555248556248557248558248559248560248561248562248563248564248565248566248567248568248569248570248571248572248573248574248575248576248577248578248579248580248581248582248583248584248585248586248587248588248589248590248591248592248593248594248595248596248597248598248599248600248601248602248603248604248605248606248607248608248609248610248611248612248613248614248615248616248617248618248619248620248621248622248623248624248625248626248627248628248629248630248631248632248633248634248635248636248637248638248639248640248641248642248643248644248645248646248647248648248649248650248651248652248653248654248655248656248657248658248659248660248661248662248663248664248665248666248667248668248669248670248671248672248673248674248675248676248677248678248679248680248681248682248683248684248685248686248687248688248689248690248691248692248693248694248695248696248697248698248699248700248701248702248703248704248705248706248707248708248709248710248711248712248713248714248715248716248717248718248719248720248721248722248723248724248725248726248727248728248729248730248731248732248733248734248735248736248737248738248739248740248741248742248743248744248745248746248747248748248749248750248751248752248753248754248755248756248757248758248759248760248761248762248763248764248765248766248767248768248769248770248771248772248773248774248775248776248777248778248779248780248781248782248783248784248785248786248787248788248789248790248791248792248793248794248795248796248797248798248799248800248801248802248803248804248805248806248807248808248809248810248811248812248813248814248815248816248817248818248819248820248821248822248823248824248825248826248827248828248829248830248831248832248833248834248835248836248837248838248839248840248841248842248843248844248845248846248847248848248849248850248851248852248853248854248855248856248857248858248859248860248861248862248863248864248865248866248867248868248869248870248871248872248873248874248875248876248877248878248879248880248881248882248883248884248885248886248887248888248889248890248891248892248893248894248895248896248897248898248899248900248901248902248903248904248905248906248907248908248909248910248911248912248913248914248915248916248917248918248919248920248921248922248923248924248925248926248927248928248929248930248931248932248933248934248935248936248937248938248939248940248941248942248943248944248945248946248947248948248949248950248951248952248953248954248955248956248957248958248959248960248961248962248963248964248965248966248967248968248969248970248971248972248973248974248975248976248977248978248979248980248981248982248983248984248985248986248987248988248989248990248991248992248993248994248995248996248997248998248999249000249001249002249003249004249005249006249007249008249009249010249011249012249013249014249015249016249017249018249019249020249021249022249023249024249025249026249027249028249029249030249031249032249033249034249035249036249037249038249039249040249041249042249043249044249045249046249047249048249049249050249051249052249053249054249055249056249057249058249059249060249061249062249063249064249065249066249067249068249069249070249071249072249073249074249075249076249077249078249079249080249081249082249083249084249085249086249087249088249089249090249091249092249093249094249095249096249097249098249099249100249101249102249103249104249105249106249107249108249109249110249111249112249113249114249115249116249117249118249119249120249121249122249123249124249125249126249127249128249129249130249131249132249133249134249135249136249137249138249139249140249141249142249143249144249145249146249147249148249149249150249151249152249153249154249155249156249157249158249159249160249161249162249163249164249165249166249167249168249169249170249171249172249173249174249175249176249177249178249179249180249181249182249183249184249185249186249187249188249189249190249191249192249193249194249195249196249197249198249199249200249201249202249203249204249205249206249207249208249209249210249211249212249213249214249215249216249217249218249219249220249221249222249223249224249225249226249227249228249229249230249231249232249233249234249235249236249237249238249239249240249241249242249243249244249245249246249247249248249249249250249251249252249253249254249255249256249257249258249259249260249261249262249263249264249265249266249267249268249269249270249271249272249273249274249275249276249277249278249279249280249281249282249283249284249285249286249287249288249289249290249291249292249293249294249295249296249297249298249299249300249301249302249303249304249305249306249307249308249309249310249311249312249313249314249315249316249317249318249319249320249321249322249323249324249325249326249327249328249329249330249331249332249333249334249335249336249337249338249339249340249341249342249343249344249345249346249347249348249349249350249351249352249353249354249355249356249357249358249359249360249361249362249363249364249365249366249367249368249369249370249371249372249373249374249375249376249377249378249379249380249381249382249383249384249385249386249387249388249389249390249391249392249393249394249395249396249397249398249399249400249401249402249403249404249405249406249407249408249409249410249411249412249413249414249415249416249417249418249419249420249421249422249423249424249425249426249427249428249429249430249431249432249433249434249435249436249437249438249439249440249441249442249443249444249445249446249447249448249449249450249451249452249453249454249455249456249457249458249459249460249461249462249463249464249465249466249467249468249469249470249471249472249473249474249475249476249477249478249479249480249481249482249483249484249485249486249487249488249489249490249491249492249493249494249495249496249497249498249499249500249501249502249503249504249505249506249507249508249509249510249511249512249513249514249515249516249517249518249519249520249521249522249523249524249525249526249527249528249529249530249531249532249533249534249535249536249537249538249539249540249541249542249543249544249545249546249547249548249549249550249551249552249553249554249555249556249557249558249559249560249561249562249563249564249565249566249567249568249569249570249571249572249573249574249575249576249577249578249579249580249581249582249583249584249585249586249587249588249589249590249591249592249593249594249595249596249597249598249599249600249601249602249603249604249605249606249607249608249609249610249611249612249613249614249615249616249617249618249619249620249621249622249623249624249625249626249627249628249629249630249631249632249633249634249635249636249637249638249639249640249641249642249643249644249645249646249647249648249649249650249651249652249653249654249655249656249657249658249659249660249661249662249663249664249665249666249667249668249669249670249671249672249673249674249675249676249677249678249679249680249681249682249683249684249685249686249687249688249689249690249691249692249693249694249695249696249697249698249699249700249701249702249703249704249705249706249707249708249709249710249711249712249713249714249715249716249717249718249719249720249721249722249723249724249725249726249727249728249729249730249731249732249733249734249735249736249737249738249739249740249741249742249743249744249745249746249747249748249749249750249751249752249753249754249755249756249757249758249759249760249761249762249763249764249765249766249767249768249769249770249771249772249773249774249775249776249777249778249779249780249781249782249783249784249785249786249787249788249789249790249791249792249793249794249795249796249797249798249799249800249801249802249803249804249805249806249807249808249809249810249811249812249813249814249815249816249817249818249819249820249821249822249823249824249825249826249827249828249829249830249831249832249833249834249835249836249837249838249839249840249841249842249843249844249845249846249847249848249849249850249851249852249853249854249855249856249857249858249859249860249861249862249863249864249865249866249867249868249869249870249871249872249873249874249875249876249877249878249879249880249881249882249883249884249885249886249887249888249889249890249891249892249893249894249895249896249897249898249899249900249901249902249903249904249905249906249907249908249909249910249911249912249913249914249915249916249917249918249919249920249921249922249923249924249925249926249927249928249929249930249931249932249933249934249935249936249937249938249939249940249941249942249943249944249945249946249947249948249949249950249951249952249953249954249955249956249957249958249959249960249961249962249963249964249965249966249967249968249969249970249971249972249973249974249975249976249977249978249979249980249981249982249983249984249985249986249987249988249989249990249991249992249993249994249995249996249997249998249999250000250001250002250003250004250005250006250007250008250009250010250011250012250013250014250015250016250017250018250019250020250021250022250023250024250025250026250027250028250029250030250031250032250033250034250035250036250037250038250039250040250041250042250043250044250045250046250047250048250049250050250051250052250053250054250055250056250057250058250059250060250061250062250063250064250065250066250067250068250069250070250071250072250073250074250075250076250077250078250079250080250081250082250083250084250085250086250087250088250089250090250091250092250093250094250095250096250097250098250099250100250101250102250103250104250105250106250107250108250109250110250111250112250113250114250115250116250117250118250119250120250121250122250123250124250125250126250127250128250129250130250131250132250133250134250135250136250137250138250139250140250141250142250143250144250145250146250147250148250149250150250151250152250153250154250155250156250157250158250159250160250161250162250163250164250165250166250167250168250169250170250171250172250173250174250175250176250177250178250179250180250181250182250183250184250185250186250187250188250189250190250191250192250193250194250195250196250197250198250199250200250201250202250203250204250205250206250207250208250209250210250211250212250213250214250215250216250217250218250219250220250221250222250223250224250225250226250227250228250229250230250231250232250233250234250235250236250237250238250239250240250241250242250243250244250245250246250247250248250249250250250251250252250253250254250255250256250257250258250259250260250261250262250263250264250265250266250267250268250269250270250271250272250273250274250275250276250277250278250279250280250281250282250283250284250285250286250287250288250289250290250291250292250293250294250295250296250297250298250299250300250301250302250303250304250305250306250307250308250309250310250311250312250313250314250315250316250317250318250319250320250321250322250323250324250325250326250327250328250329250330250331250332250333250334250335250336250337250338250339250340250341250342250343250344250345250346250347250348250349250350250351250352250353250354250355250356250357250358250359250360250361250362250363250364250365250366250367250368250369250370250371250372250373250374250375250376250377250378250379250380250381250382250383250384250385250386250387250388250389250390250391250392250393250394250395250396250397250398250399250400250401250402250403250404250405250406250407250408250409250410250411250412250413250414250415250416250417250418250419250420250421250422250423250424250425250426250427250428250429250430250431250432250433250434250435250436250437250438250439250440250441250442250443250444250445250446250447250448250449250450250451250452250453250454250455250456250457250458250459250460250461250462250463250464250465250466250467250468250469250470250471250472250473250474250475250476250477250478250479250480250481250482250483250484250485250486250487250488250489250490250491250492250493250494250495250496250497250498250499250500250501250502250503250504250505250506250507250508250509250510250511250512250513250514250515250516250517250518250519250520250521250522250523250524250525250526250527250528250529250530250531250532250533250534250535250536250537250538250539250540250541250542250543250544250545250546250547250548250549250550250551250552250553250554250555250556250557250558250559250560250561250562250563250564250565250566250567250568250569250570250571250572250573250574250575250576250577250578250579250580250581250582250583250584250585250586250587250588250589250590250591250592250593250594250595250596250597250598250599250600250601250602250603250604250605250606250607250608250609250610250611250612250613250614250615250616250617250618250619250620250621250622250623250624250625250626250627250628250629250630250631250632250633250634250635250636250637250638250639250640250641250642250643250644250645250646250647250648250649250650250651250652250653250654250655250656250657250658250659250660250661250662250663250664250665250666250667250668250669250670250671250672250673250674250675250676250677250678250679250680250681250682250683250684250685250686250687250688250689250690250691250692250693250694250695250696250697250698250699250700250701250702250703250704250705250706250707250708250709250710250711250712250713250714250715250716250717250718250719250720250721250722250723250724250725250726250727250728250729250730250731250732250733250734250735250736250737250738250739250740250741250742250743250744250745250746250747250748250749250750250751250752250753250754250755250756250757250758250759250760250761250762250763250764250765250766250767250768250769250770250771250772250773250774250775250776250777250778250779250780250781250782250783250784250785250786250787250788250789250790250791250792250793250794250795250796250797250798250799250800250801250802250803250804250805250806250807250808250809250810250811250812250813250814250815250816250817250818250819250820250821250822250823250824250825250826250827250828250829250830250831250832250833250834250835250836250837250838250839250840250841250842250843250844250845250846250847250848250849250850250851250852250853250854250855250856250857250858250859250860250861250862250863250864250865250866250867250868250869250870250871250872250873250874250875250876250877250878250879250880250881250882250883250884250885250886250887250888250889250890250891250892250893250894250895250896250897250898250899250900250901250902250903250904250905250906250907250908250909250910250911250912250913250914250915250916250917250918250919250920250921250922250923250924250925250926250927250928250929250930250931250932250933250934250935250936250937250938250939250940250941250942250943250944250945250946250947250948250949250950250951250952250953250954250955250956250957250958250959250960250961250962250963250964250965250966250967250968250969250970250971250972250973250974250975250976250977250978250979250980250981250982250983250984250985250986250987250988250989250990250991250992250993250994250995250996250997250998250999251000251001251002251003251004251005251006251007251008251009251010251011251012251013251014251015251016251017251018251019251020251021251022251023251024251025251026251027251028251029251030251031251032251033251034251035251036251037251038251039251040251041251042251043251044251045251046251047251048251049251050251051251052251053251054251055251056251057251058251059251060251061251062251063251064251065251066251067251068251069251070251071251072251073251074251075251076251077251078251079251080251081251082251083251084251085251086251087251088251089251090251091251092251093251094251095251096251097251098251099251100251101251102251103251104251105251106251107251108251109251110251111251112251113251114251115251116251117251118251119251120251121251122251123251124251125251126251127251128251129251130251131251132251133251134251135251136251137251138251139251140251141251142251143251144251145251146251147251148251149251150251151251152251153251154251155251156251157251158251159251160251161251162251163251164251165251166251167251168251169251170251171251172251173251174251175251176251177251178251179251180251181251182251183251184251185251186251187251188251189251190251191251192251193251194251195251196251197251198251199251200251201251202251203251204251205251206251207251208251209251210251211251212251213251214251215251216251217251218251219251220251221251222251223251224251225251226251227251228251229251230251231251232251233251234251235251236251237251238251239251240251241251242251243251244251245251246251247251248251249251250251251251252251253251254251255251256251257251258251259251260251261251262251263251264251265251266251267251268251269251270251271251272251273251274251275251276251277251278251279251280251281251282251283251284251285251286251287251288251289251290251291251292251293251294251295251296251297251298251299251300251301251302251303251304251305251306251307251308251309251310251311251312251313251314251315251316251317251318251319251320251321251322251323251324251325251326251327251328251329251330251331251332251333251334251335251336251337251338251339251340251341251342251343251344251345251346251347251348251349251350251351251352251353251354251355251356251357251358251359251360251361251362251363251364251365251366251367251368251369251370251371251372251373251374251375251376251377251378251379251380251381251382251383251384251385251386251387251388251389251390251391251392251393251394251395251396251397251398251399251400251401251402251403251404251405251406251407251408251409251410251411251412251413251414251415251416251417251418251419251420251421251422251423251424251425251426251427251428251429251430251431251432251433251434251435251436251437251438251439251440251441251442251443251444251445251446251447251448251449251450251451251452251453251454251455251456251457251458251459251460251461251462251463251464251465251466251467251468251469251470251471251472251473251474251475251476251477251478251479251480251481251482251483251484251485251486251487251488251489251490251491251492251493251494251495251496251497251498251499251500251501251502251503251504251505251506251507251508251509251510251511251512251513251514251515251516251517251518251519251520251521251522251523251524251525251526251527251528251529251530251531251532251533251534251535251536251537251538251539251540251541251542251543251544251545251546251547251548251549251550251551251552251553251554251555251556251557251558251559251560251561251562251563251564251565251566251567251568251569251570251571251572251573251574251575251576251577251578251579251580251581251582251583251584251585251586251587251588251589251590251591251592251593251594251595251596251597251598251599251600251601251602251603251604251605251606251607251608251609251610251611251612251613251614251615251616251617251618251619251620251621251622251623251624251625251626251627251628251629251630251631251632251633251634251635251636251637251638251639251640251641251642251643251644251645251646251647251648251649251650251651251652251653251654251655251656251657251658251659251660251661251662251663251664251665251666251667251668251669251670251671251672251673251674251675251676251677251678251679251680251681251682251683251684251685251686251687251688251689251690251691251692251693251694251695251696251697251698251699251700251701251702251703251704251705251706251707251708251709251710251711251712251713251714251715251716251717251718251719251720251721251722251723251724251725251726251727251728251729251730251731251732251733251734251735251736251737251738251739251740251741251742251743251744251745251746251747251748251749251750251751251752251753251754251755251756251757251758251759251760251761251762251763251764251765251766251767251768251769251770251771251772251773251774251775251776251777251778251779251780251781251782251783251784251785251786251787251788251789251790251791251792251793251794251795251796251797251798251799251800251801251802251803251804251805251806251807251808251809251810251811251812251813251814251815251816251817251818251819251820251821251822251823251824251825251826251827251828251829251830251831251832251833251834251835251836251837251838251839251840251841251842251843251844251845251846251847251848251849251850251851251852251853251854251855251856251857251858251859251860251861251862251863251864251865251866251867251868251869251870251871251872251873251874251875251876251877251878251879251880251881251882251883251884251885251886251887251888251889251890251891251892251893251894251895251896251897251898251899251900251901251902251903251904251905251906251907251908251909251910251911251912251913251914251915251916251917251918251919251920251921251922251923251924251925251926251927251928251929251930251931251932251933251934251935251936251937251938251939251940251941251942251943251944251945251946251947251948251949251950251951251952251953251954251955251956251957251958251959251960251961251962251963251964251965251966251967251968251969251970251971251972251973251974251975251976251977251978251979251980251981251982251983251984251985251986251987251988251989251990251991251992251993251994251995251996251997251998251999252000252001252002252003252004252005252006252007252008252009252010252011252012252013252014252015252016252017252018252019252020252021252022252023252024252025252026252027252028252029252030252031252032252033252034252035252036252037252038252039252040252041252042252043252044252045252046252047252048252049252050252051252052252053252054252055252056252057252058252059252060252061252062252063252064252065252066252067252068252069252070252071252072252073252074252075252076252077252078252079252080252081252082252083252084252085252086252087252088252089252090252091252092252093252094252095252096252097252098252099252100252101252102252103252104252105252106252107252108252109252110252111252112252113252114252115252116252117252118252119252120252121252122252123252124252125252126252127252128252129252130252131252132252133252134252135252136252137252138252139252140252141252142252143252144252145252146252147252148252149252150252151252152252153252154252155252156252157252158252159252160252161252162252163252164252165252166252167252168252169252170252171252172252173252174252175252176252177252178252179252180252181252182252183252184252185252186252187252188252189252190252191252192252193252194252195252196252197252198252199252200252201252202252203252204252205252206252207252208252209252210252211252212252213252214252215252216252217252218252219252220252221252222252223252224252225252226252227252228252229252230252231252232252233252234252235252236252237252238252239252240252241252242252243252244252245252246252247252248252249252250252251252252252253252254252255252256252257252258252259252260252261252262252263252264252265252266252267252268252269252270252271252272252273252274252275252276252277252278252279252280252281252282252283252284252285252286252287252288252289252290252291252292252293252294252295252296252297252298252299252300252301252302252303252304252305252306252307252308252309252310252311252312252313252314252315252316252317252318252319252320252321252322252323252324252325252326252327252328252329252330252331252332252333252334252335252336252337252338252339252340252341252342252343252344252345252346252347252348252349252350252351252352252353252354252355252356252357252358252359252360252361252362252363252364252365252366252367252368252369252370252371252372252373252374252375252376252377252378252379252380252381252382252383252384252385252386252387252388252389252390252391252392252393252394252395252396252397252398252399252400252401252402252403252404252405252406252407252408252409252410252411252412252413252414252415252416252417252418252419252420252421252422252423252424252425252426252427252428252429252430252431252432252433252434252435252436252437252438252439252440252441252442252443252444252445252446252447252448252449252450252451252452252453252454252455252456252457252458252459252460252461252462252463252464252465252466252467252468252469252470252471252472252473252474252475252476252477252478252479252480252481252482252483252484252485252486252487252488252489252490252491252492252493252494252495252496252497252498252499252500252501252502252503252504252505252506252507252508252509252510252511252512252513252514252515252516252517252518252519252520252521252522252523252524252525252526252527252528252529252530252531252532252533252534252535252536252537252538252539252540252541252542252543252544252545252546252547252548252549252550252551252552252553252554252555252556252557252558252559252560252561252562252563252564252565252566252567252568252569252570252571252572252573252574252575252576252577252578252579252580252581252582252583252584252585252586252587252588252589252590252591252592252593252594252595252596252597252598252599252600252601252602252603252604252605252606252607252608252609252610252611252612252613252614252615252616252617252618252619252620252621252622252623252624252625252626252627252628252629252630252631252632252633252634252635252636252637252638252639252640252641252642252643252644252645252646252647252648252649252650252651252652252653252654252655252656252657252658252659252660252661252662252663252664252665252666252667252668252669252670252671252672252673252674252675252676252677252678252679252680252681252682252683252684252685252686252687252688252689252690252691252692252693252694252695252696252697252698252699252700252701252702252703252704252705252706252707252708252709252710252711252712252713252714252715252716252717252718252719252720252721252722252723252724252725252726252727252728252729252730252731252732252733252734252735252736252737252738252739252740252741252742252743252744252745252746252747252748252749252750252751252752252753252754252755252756252757252758252759252760252761252762252763252764252765252766252767252768252769252770252771252772252773252774252775252776252777252778252779252780252781252782252783252784252785252786252787252788252789252790252791252792252793252794252795252796252797252798252799252800252801252802252803252804252805252806252807252808252809252810252811252812252813252814252815252816252817252818252819252820252821252822252823252824252825252826252827252828252829252830252831252832252833252834252835252836252837252838252839252840252841252842252843252844252845252846252847252848252849252850252851252852252853252854252855252856252857252858252859252860252861252862252863252864252865252866252867252868252869252870252871252872252873252874252875252876252877252878252879252880252881252882252883252884252885252886252887252888252889252890252891252892252893252894252895252896252897252898252899252900252901252902252903252904252905252906252907252908252909252910252911252912252913252914252915252916252917252918252919252920252921252922252923252924252925252926252927252928252929252930252931252932252933252934252935252936252937252938252939252940252941252942252943252944252945252946252947252948252949252950252951252952252953252954252955252956252957252958252959252960252961252962252963252964252965252966252967252968252969252970252971252972252973252974252975252976252977252978252979252980252981252982252983252984252985252986252987252988252989252990252991252992252993252994252995252996252997252998252999253000253001253002253003253004253005253006253007253008253009253010253011253012253013253014253015253016253017253018253019253020253021253022253023253024253025253026253027253028253029253030253031253032253033253034253035253036253037253038253039253040253041253042253043253044253045253046253047253048253049253050253051253052253053253054253055253056253057253058253059253060253061253062253063253064253065253066253067253068253069253070253071253072253073253074253075253076253077253078253079253080253081253082253083253084253085253086253087253088253089253090253091253092253093253094253095253096253097253098253099253100253101253102253103253104253105253106253107253108253109253110253111253112253113253114253115253116253117253118253119253120253121253122253123253124253125253126253127253128253129253130253131253132253133253134253135253136253137253138253139253140253141253142253143253144253145253146253147253148253149253150253151253152253153253154253155253156253157253158253159253160253161253162253163253164253165253166253167253168253169253170253171253172253173253174253175253176253177253178253179253180253181253182253183253184253185253186253187253188253189253190253191253192253193253194253195253196253197253198253199253200253201253202253203253204253205253206253207253208253209253210253211253212253213253214253215253216253217253218253219253220253221253222253223253224253225253226253227253228253229253230253231253232253233253234253235253236253237253238253239253240253241253242253243253244253245253246253247253248253249253250253251253252253253253254253255253256253257253258253259253260253261253262253263253264253265253266253267253268253269253270253271253272253273253274253275253276253277253278253279253280253281253282253283253284253285253286253287253288253289253290253291253292253293253294253295253296253297253298253299253300253301253302253303253304253305253306253307253308253309253310253311253312253313253314253315253316253317253318253319253320253321253322253323253324253325253326253327253328253329253330253331253332253333253334253335253336253337253338253339253340253341253342253343253344253345253346253347253348253349253350253351253352253353253354253355253356253357253358253359253360253361253362253363253364253365253366253367253368253369253370253371253372253373253374253375253376253377253378253379253380253381253382253383253384253385253386253387253388253389253390253391253392253393253394253395253396253397253398253399253400253401253402253403253404253405253406253407253408253409253410253411253412253413253414253415253416253417253418253419253420253421253422253423253424253425253426253427253428253429253430253431253432253433253434253435253436253437253438253439253440253441253442253443253444253445253446253447253448253449253450253451253452253453253454253455253456253457253458253459253460253461253462253463253464253465253466253467253468253469253470253471253472253473253474253475253476253477253478253479253480253481253482253483253484253485253486253487253488253489253490253491253492253493253494253495253496253497253498253499253500253501253502253503253504253505253506253507253508253509253510253511253512253513253514253515253516253517253518253519253520253521253522253523253524253525253526253527253528253529253530253531253532253533253534253535253536253537253538253539253540253541253542253543253544253545253546253547253548253549253550253551253552253553253554253555253556253557253558253559253560253561253562253563253564253565253566253567253568253569253570253571253572253573253574253575253576253577253578253579253580253581253582253583253584253585253586253587253588253589253590253591253592253593253594253595253596253597253598253599253600253601253602253603253604253605253606253607253608253609253610253611253612253613253614253615253616253617253618253619253620253621253622253623253624253625253626253627253628253629253630253631253632253633253634253635253636253637253638253639253640253641253642253643253644253645253646253647253648253649253650253651253652253653253654253655253656253657253658253659253660253661253662253663253664253665253666253667253668253669253670253671253672253673253674253675253676253677253678253679253680253681253682253683253684253685253686253687253688253689253690253691253692253693253694253695253696253697253698253699253700253701253702253703253704253705253706253707253708253709253710253711253712253713253714253715253716253717253718253719253720253721253722253723253724253725253726253727253728253729253730253731253732253733253734253735253736253737253738253739253740253741253742253743253744253745253746253747253748253749253750253751253752253753253754253755253756253757253758253759253760253761253762253763253764253765253766253767253768253769253770253771253772253773253774253775253776253777253778253779253780253781253782253783253784253785253786253787253788253789253790253791253792253793253794253795253796253797253798253799253800253801253802253803253804253805253806253807253808253809253810253811253812253813253814253815253816253817253818253819253820253821253822253823253824253825253826253827253828253829253830253831253832253833253834253835253836253837253838253839253840253841253842253843253844253845253846253847253848253849253850253851253852253853253854253855253856253857253858253859253860253861253862253863253864253865253866253867253868253869253870253871253872253873253874253875253876253877253878253879253880253881253882253883253884253885253886253887253888253889253890253891253892253893253894253895253896253897253898253899253900253901253902253903253904253905253906253907253908253909253910253911253912253913253914253915253916253917253918253919253920253921253922253923253924253925253926253927253928253929253930253931253932253933253934253935253936253937253938253939253940253941253942253943253944253945253946253947253948253949253950253951253952253953253954253955253956253957253958253959253960253961253962253963253964253965253966253967253968253969253970253971253972253973253974253975253976253977253978253979253980253981253982253983253984253985253986253987253988253989253990253991253992253993253994253995253996253997253998253999254000254001254002254003254004254005254006254007254008254009254010254011254012254013254014254015254016254017254018254019254020254021254022254023254024254025254026254027254028254029254030254031254032254033254034254035254036254037254038254039254040254041254042254043254044254045254046254047254048254049254050254051254052254053254054254055254056254057254058254059254060254061254062254063254064254065254066254067254068254069254070254071254072254073254074254075254076254077254078254079254080254081254082254083254084254085254086254087254088254089254090254091254092254093254094254095254096254097254098254099254100254101254102254103254104254105254106254107254108254109254110254111254112254113254114254115254116254117254118254119254120254121254122254123254124254125254126254127254128254129254130254131254132254133254134254135254136254137254138254139254140254141254142254143254144254145254146254147254148254149254150254151254152254153254154254155254156254157254158254159254160254161254162254163254164254165254166254167254168254169254170254171254172254173254174254175254176254177254178254179254180254181254182254183254184254185254186254187254188254189254190254191254192254193254194254195254196254197254198254199254200254201254202254203254204254205254206254207254208254209254210254211254212254213254214254215254216254217254218254219254220254221254222254223254224254225254226254227254228254229254230254231254232254233254234254235254236254237254238254239254240254241254242254243254244254245254246254247254248254249254250254251254252254253254254254255254256254257254258254259254260254261254262254263254264254265254266254267254268254269254270254271254272254273254274254275254276254277254278254279254280254281254282254283254284254285254286254287254288254289254290254291254292254293254294254295254296254297254298254299254300254301254302254303254304254305254306254307254308254309254310254311254312254313254314254315254316254317254318254319254320254321254322254323254324254325254326254327254328254329254330254331254332254333254334254335254336254337254338254339254340254341254342254343254344254345254346254347254348254349254350254351254352254353254354254355254356254357254358254359254360254361254362254363254364254365254366254367254368254369254370254371254372254373254374254375254376254377254378254379254380254381254382254383254384254385254386254387254388254389254390254391254392254393254394254395254396254397254398254399254400254401254402254403254404254405254406254407254408254409254410254411254412254413254414254415254416254417254418254419254420254421254422254423254424254425254426254427254428254429254430254431254432254433254434254435254436254437254438254439254440254441254442254443254444254445254446254447254448254449254450254451254452254453254454254455254456254457254458254459254460254461254462254463254464254465254466254467254468254469254470254471254472254473254474254475254476254477254478254479254480254481254482254483254484254485254486254487254488254489254490254491254492254493254494254495254496254497254498254499254500254501254502254503254504254505254506254507254508254509254510254511254512254513254514254515254516254517254518254519254520254521254522254523254524254525254526254527254528254529254530254531254532254533254534254535254536254537254538254539254540254541254542254543254544254545254546254547254548254549254550254551254552254553254554254555254556254557254558254559254560254561254562254563254564254565254566254567254568254569254570254571254572254573254574254575254576254577254578254579254580254581254582254583254584254585254586254587254588254589254590254591254592254593254594254595254596254597254598254599254600254601254602254603254604254605254606254607254608254609254610254611254612254613254614254615254616254617254618254619254620254621254622254623254624254625254626254627254628254629254630254631254632254633254634254635254636254637254638254639254640254641254642254643254644254645254646254647254648254649254650254651254652254653254654254655254656254657254658254659254660254661254662254663254664254665254666254667254668254669254670254671254672254673254674254675254676254677254678254679254680254681254682254683254684254685254686254687254688254689254690254691254692254693254694254695254696254697254698254699254700254701254702254703254704254705254706254707254708254709254710254711254712254713254714254715254716254717254718254719254720254721254722254723254724254725254726254727254728254729254730254731254732254733254734254735254736254737254738254739254740254741254742254743254744254745254746254747254748254749254750254751254752254753254754254755254756254757254758254759254760254761254762254763254764254765254766254767254768254769254770254771254772254773254774254775254776254777254778254779254780254781254782254783254784254785254786254787254788254789254790254791254792254793254794254795254796254797254798254799254800254801254802254803254804254805254806254807254808254809254810254811254812254813254814254815254816254817254818254819254820254821254822254823254824254825254826254827254828254829254830254831254832254833254834254835254836254837254838254839254840254841254842254843254844254845254846254847254848254849254850254851254852254853254854254855254856254857254858254859254860254861254862254863254864254865254866254867254868254869254870254871254872254873254874254875254876254877254878254879254880254881254882254883254884254885254886254887254888254889254890254891254892254893254894254895254896254897254898254899254900254901254902254903254904254905254906254907254908254909254910254911254912254913254914254915254916254917254918254919254920254921254922254923254924254925254926254927254928254929254930254931254932254933254934254935254936254937254938254939254940254941254942254943254944254945254946254947254948254949254950254951254952254953254954254955254956254957254958254959254960254961254962254963254964254965254966254967254968254969254970254971254972254973254974254975254976254977254978254979254980254981254982254983254984254985254986254987254988254989254990254991254992254993254994254995254996254997254998254999255000255001255002255003255004255005255006255007255008255009255010255011255012255013255014255015255016255017255018255019255020255021255022255023255024255025255026255027255028255029255030255031255032255033255034255035255036255037255038255039255040255041255042255043255044255045255046255047255048255049255050255051255052255053255054255055255056255057255058255059255060255061255062255063255064255065255066255067255068255069255070255071255072255073255074255075255076255077255078255079255080255081255082255083255084255085255086255087255088255089255090255091255092255093255094255095255096255097255098255099255100255101255102255103255104255105255106255107255108255109255110255111255112255113255114255115255116255117255118255119255120255121255122255123255124255125255126255127255128255129255130255131255132255133255134255135255136255137255138255139255140255141255142255143255144255145255146255147255148255149255150255151255152255153255154255155255156255157255158255159255160255161255162255163255164255165255166255167255168255169255170255171255172255173255174255175255176255177255178255179255180255181255182255183255184255185255186255187255188255189255190255191255192255193255194255195255196255197255198255199255200255201255202255203255204255205255206255207255208255209255210255211255212255213255214255215255216255217255218255219255220255221255222255223255224255225255226255227255228255229255230255231255232255233255234255235255236255237255238255239255240255241255242255243255244255245255246255247255248255249255250255251255252255253255254255255255256255257255258255259255260255261255262255263255264255265255266255267255268255269255270255271255272255273255274255275255276255277255278255279255280255281255282255283255284255285255286255287255288255289255290255291255292255293255294255295255296255297255298255299255300255301255302255303255304255305255306255307255308255309255310255311255312255313255314255315255316255317255318255319255320255321255322255323255324255325255326255327255328255329255330255331255332255333255334255335255336255337255338255339255340255341255342255343255344255345255346255347255348255349255350255351255352255353255354255355255356255357255358255359255360255361255362255363255364255365255366255367255368255369255370255371255372255373255374255375255376255377255378255379255380255381255382255383255384255385255386255387255388255389255390255391255392255393255394255395255396255397255398255399255400255401255402255403255404255405255406255407255408255409255410255411255412255413255414255415255416255417255418255419255420255421255422255423255424255425255426255427255428255429255430255431255432255433255434255435255436255437255438255439255440255441255442255443255444255445255446255447255448255449255450255451255452255453255454255455255456255457255458255459255460255461255462255463255464255465255466255467255468255469255470255471255472255473255474255475255476255477255478255479255480255481255482255483255484255485255486255487255488255489255490255491255492255493255494255495255496255497255498255499255500255501255502255503255504255505255506255507255508255509255510255511255512255513255514255515255516255517255518255519255520255521255522255523255524255525255526255527255528255529255530255531255532255533255534255535255536255537255538255539255540255541255542255543255544255545255546255547255548255549255550255551255552255553255554255555255556255557255558255559255560255561255562255563255564255565255566255567255568255569255570255571255572255573255574255575255576255577255578255579255580255581255582255583255584255585255586255587255588255589255590255591255592255593255594255595255596255597255598255599255600255601255602255603255604255605255606255607255608255609255610255611255612255613255614255615255616255617255618255619255620255621255622255623255624255625255626255627255628255629255630255631255632255633255634255635255636255637255638255639255640255641255642255643255644255645255646255647255648255649255650255651255652255653255654255655255656255657255658255659255660255661255662255663255664255665255666255667255668255669255670255671255672255673255674255675255676255677255678255679255680255681255682255683255684255685255686255687255688255689255690255691255692255693255694255695255696255697255698255699255700255701255702255703255704255705255706255707255708255709255710255711255712255713255714255715255716255717255718255719255720255721255722255723255724255725255726255727255728255729255730255731255732255733255734255735255736255737255738255739255740255741255742255743255744255745255746255747255748255749255750255751255752255753255754255755255756255757255758255759255760255761255762255763255764255765255766255767255768255769255770255771255772255773255774255775255776255777255778255779255780255781255782255783255784255785255786255787255788255789255790255791255792255793255794255795255796255797255798255799255800255801255802255803255804255805255806255807255808255809255810255811255812255813255814255815255816255817255818255819255820255821255822255823255824255825255826255827255828255829255830255831255832255833255834255835255836255837255838255839255840255841255842255843255844255845255846255847255848255849255850255851255852255853255854255855255856255857255858255859255860255861255862255863255864255865255866255867255868255869255870255871255872255873255874255875255876255877255878255879255880255881255882255883255884255885255886255887255888255889255890255891255892255893255894255895255896255897255898255899255900255901255902255903255904255905255906255907255908255909255910255911255912255913255914255915255916255917255918255919255920255921255922255923255924255925255926255927255928255929255930255931255932255933255934255935255936255937255938255939255940255941255942255943255944255945255946255947255948255949255950255951255952255953255954255955255956255957255958255959255960255961255962255963255964255965255966255967255968255969255970255971255972255973255974255975255976255977255978255979255980255981255982255983255984255985255986255987255988255989255990255991255992255993255994255995255996255997255998255999256000256001256002256003256004256005256006256007256008256009256010256011256012256013256014256015256016256017256018256019256020256021256022256023256024256025256026256027256028256029256030256031256032256033256034256035256036256037256038256039256040256041256042256043256044256045256046256047256048256049256050256051256052256053256054256055256056256057256058256059256060256061256062256063256064256065256066256067256068256069256070256071256072256073256074256075256076256077256078256079256080256081256082256083256084256085256086256087256088256089256090256091256092256093256094256095256096256097256098256099256100256101256102256103256104256105256106256107256108256109256110256111256112256113256114256115256116256117256118256119256120256121256122256123256124256125256126256127256128256129256130256131256132256133256134256135256136256137256138256139256140256141256142256143256144256145256146256147256148256149256150256151256152256153256154256155256156256157256158256159256160256161256162256163256164256165256166256167256168256169256170256171256172256173256174256175256176256177256178256179256180256181256182256183256184256185256186256187256188256189256190256191256192256193256194256195256196256197256198256199256200256201256202256203256204256205256206256207256208256209256210256211256212256213256214256215256216256217256218256219256220256221256222256223256224256225256226256227256228256229256230256231256232256233256234256235256236256237256238256239256240256241256242256243256244256245256246256247256248256249256250256251256252256253256254256255256256256257256258256259256260256261256262256263256264256265256266256267256268256269256270256271256272256273256274256275256276256277256278256279256280256281256282256283256284256285256286256287256288256289256290256291256292256293256294256295256296256297256298256299256300256301256302256303256304256305256306256307256308256309256310256311256312256313256314256315256316256317256318256319256320256321256322256323256324256325256326256327256328256329256330256331256332256333256334256335256336256337256338256339256340256341256342256343256344256345256346256347256348256349256350256351256352256353256354256355256356256357256358256359256360256361256362256363256364256365256366256367256368256369256370256371256372256373256374256375256376256377256378256379256380256381256382256383256384256385256386256387256388256389256390256391256392256393256394256395256396256397256398256399256400256401256402256403256404256405256406256407256408256409256410256411256412256413256414256415256416256417256418256419256420256421256422256423256424256425256426256427256428256429256430256431256432256433256434256435256436256437256438256439256440256441256442256443256444256445256446256447256448256449256450256451256452256453256454256455256456256457256458256459256460256461256462256463256464256465256466256467256468256469256470256471256472256473256474256475256476256477256478256479256480256481256482256483256484256485256486256487256488256489256490256491256492256493256494256495256496256497256498256499256500256501256502256503256504256505256506256507256508256509256510256511256512256513256514256515256516256517256518256519256520256521256522256523256524256525256526256527256528256529256530256531256532256533256534256535256536256537256538256539256540256541256542256543256544256545256546256547256548256549256550256551256552256553256554256555256556256557256558256559256560256561256562256563256564256565256566256567256568256569256570256571256572256573256574256575256576256577256578256579256580256581256582256583256584256585256586256587256588256589256590256591256592256593256594256595256596256597256598256599256600256601256602256603256604256605256606256607256608256609256610256611256612256613256614256615256616256617256618256619256620256621256622256623256624256625256626256627256628256629256630256631256632256633256634256635256636256637256638256639256640256641256642256643256644256645256646256647256648256649256650256651256652256653256654256655256656256657256658256659256660256661256662256663256664256665256666256667256668256669256670256671256672256673256674256675256676256677256678256679256680256681256682256683256684256685256686256687256688256689256690256691256692256693256694256695256696256697256698256699256700256701256702256703256704256705256706256707256708256709256710256711256712256713256714256715256716256717256718256719256720256721256722256723256724256725256726256727256728256729256730256731256732256733256734256735256736256737256738256739256740256741256742256743256744256745256746256747256748256749256750256751256752256753256754256755256756256757256758256759256760256761256762256763256764256765256766256767256768256769256770256771256772256773256774256775256776256777256778256779256780256781256782256783256784256785256786256787256788256789256790256791256792256793256794256795256796256797256798256799256800256801256802256803256804256805256806256807256808256809256810256811256812256813256814256815256816256817256818256819256820256821256822256823256824256825256826256827256828256829256830256831256832256833256834256835256836256837256838256839256840256841256842256843256844256845256846256847256848256849256850256851256852256853256854256855256856256857256858256859256860256861256862256863256864256865256866256867256868256869256870256871256872256873256874256875256876256877256878256879256880256881256882256883256884256885256886256887256888256889256890256891256892256893256894256895256896256897256898256899256900256901256902256903256904256905256906256907256908256909256910256911256912256913256914256915256916256917256918256919256920256921256922256923256924256925256926256927256928256929256930256931256932256933256934256935256936256937256938256939256940256941256942256943256944256945256946256947256948256949256950256951256952256953256954256955256956256957256958256959256960256961256962256963256964256965256966256967256968256969256970256971256972256973256974256975256976256977256978256979256980256981256982256983256984256985256986256987256988256989256990256991256992256993256994256995256996256997256998256999257000257001257002257003257004257005257006257007257008257009257010257011257012257013257014257015257016257017257018257019257020257021257022257023257024257025257026257027257028257029257030257031257032257033257034257035257036257037257038257039257040257041257042257043257044257045257046257047257048257049257050257051257052257053257054257055257056257057257058257059257060257061257062257063257064257065257066257067257068257069257070257071257072257073257074257075257076257077257078257079257080257081257082257083257084257085257086257087257088257089257090257091257092257093257094257095257096257097257098257099257100257101257102257103257104257105257106257107257108257109257110257111257112257113257114257115257116257117257118257119257120257121257122257123257124257125257126257127257128257129257130257131257132257133257134257135257136257137257138257139257140257141257142257143257144257145257146257147257148257149257150257151257152257153257154257155257156257157257158257159257160257161257162257163257164257165257166257167257168257169257170257171257172257173257174257175257176257177257178257179257180257181257182257183257184257185257186257187257188257189257190257191257192257193257194257195257196257197257198257199257200257201257202257203257204257205257206257207257208257209257210257211257212257213257214257215257216257217257218257219257220257221257222257223257224257225257226257227257228257229257230257231257232257233257234257235257236257237257238257239257240257241257242257243257244257245257246257247257248257249257250257251257252257253257254257255257256257257257258257259257260257261257262257263257264257265257266257267257268257269257270257271257272257273257274257275257276257277257278257279257280257281257282257283257284257285257286257287257288257289257290257291257292257293257294257295257296257297257298257299257300257301257302257303257304257305257306257307257308257309257310257311257312257313257314257315257316257317257318257319257320257321257322257323257324257325257326257327257328257329257330257331257332257333257334257335257336257337257338257339257340257341257342257343257344257345257346257347257348257349257350257351257352257353257354257355257356257357257358257359257360257361257362257363257364257365257366257367257368257369257370257371257372257373257374257375257376257377257378257379257380257381257382257383257384257385257386257387257388257389257390257391257392257393257394257395257396257397257398257399257400257401257402257403257404257405257406257407257408257409257410257411257412257413257414257415257416257417257418257419257420257421257422257423257424257425257426257427257428257429257430257431257432257433257434257435257436257437257438257439257440257441257442257443257444257445257446257447257448257449257450257451257452257453257454257455257456257457257458257459257460257461257462257463257464257465257466257467257468257469257470257471257472257473257474257475257476257477257478257479257480257481257482257483257484257485257486257487257488257489257490257491257492257493257494257495257496257497257498257499257500257501257502257503257504257505257506257507257508257509257510257511257512257513257514257515257516257517257518257519257520257521257522257523257524257525257526257527257528257529257530257531257532257533257534257535257536257537257538257539257540257541257542257543257544257545257546257547257548257549257550257551257552257553257554257555257556257557257558257559257560257561257562257563257564257565257566257567257568257569257570257571257572257573257574257575257576257577257578257579257580257581257582257583257584257585257586257587257588257589257590257591257592257593257594257595257596257597257598257599257600257601257602257603257604257605257606257607257608257609257610257611257612257613257614257615257616257617257618257619257620257621257622257623257624257625257626257627257628257629257630257631257632257633257634257635257636257637257638257639257640257641257642257643257644257645257646257647257648257649257650257651257652257653257654257655257656257657257658257659257660257661257662257663257664257665257666257667257668257669257670257671257672257673257674257675257676257677257678257679257680257681257682257683257684257685257686257687257688257689257690257691257692257693257694257695257696257697257698257699257700257701257702257703257704257705257706257707257708257709257710257711257712257713257714257715257716257717257718257719257720257721257722257723257724257725257726257727257728257729257730257731257732257733257734257735257736257737257738257739257740257741257742257743257744257745257746257747257748257749257750257751257752257753257754257755257756257757257758257759257760257761257762257763257764257765257766257767257768257769257770257771257772257773257774257775257776257777257778257779257780257781257782257783257784257785257786257787257788257789257790257791257792257793257794257795257796257797257798257799257800257801257802257803257804257805257806257807257808257809257810257811257812257813257814257815257816257817257818257819257820257821257822257823257824257825257826257827257828257829257830257831257832257833257834257835257836257837257838257839257840257841257842257843257844257845257846257847257848257849257850257851257852257853257854257855257856257857257858257859257860257861257862257863257864257865257866257867257868257869257870257871257872257873257874257875257876257877257878257879257880257881257882257883257884257885257886257887257888257889257890257891257892257893257894257895257896257897257898257899257900257901257902257903257904257905257906257907257908257909257910257911257912257913257914257915257916257917257918257919257920257921257922257923257924257925257926257927257928257929257930257931257932257933257934257935257936257937257938257939257940257941257942257943257944257945257946257947257948257949257950257951257952257953257954257955257956257957257958257959257960257961257962257963257964257965257966257967257968257969257970257971257972257973257974257975257976257977257978257979257980257981257982257983257984257985257986257987257988257989257990257991257992257993257994257995257996257997257998257999258000258001258002258003258004258005258006258007258008258009258010258011258012258013258014258015258016258017258018258019258020258021258022258023258024258025258026258027258028258029258030258031258032258033258034258035258036258037258038258039258040258041258042258043258044258045258046258047258048258049258050258051258052258053258054258055258056258057258058258059258060258061258062258063258064258065258066258067258068258069258070258071258072258073258074258075258076258077258078258079258080258081258082258083258084258085258086258087258088258089258090258091258092258093258094258095258096258097258098258099258100258101258102258103258104258105258106258107258108258109258110258111258112258113258114258115258116258117258118258119258120258121258122258123258124258125258126258127258128258129258130258131258132258133258134258135258136258137258138258139258140258141258142258143258144258145258146258147258148258149258150258151258152258153258154258155258156258157258158258159258160258161258162258163258164258165258166258167258168258169258170258171258172258173258174258175258176258177258178258179258180258181258182258183258184258185258186258187258188258189258190258191258192258193258194258195258196258197258198258199258200258201258202258203258204258205258206258207258208258209258210258211258212258213258214258215258216258217258218258219258220258221258222258223258224258225258226258227258228258229258230258231258232258233258234258235258236258237258238258239258240258241258242258243258244258245258246258247258248258249258250258251258252258253258254258255258256258257258258258259258260258261258262258263258264258265258266258267258268258269258270258271258272258273258274258275258276258277258278258279258280258281258282258283258284258285258286258287258288258289258290258291258292258293258294258295258296258297258298258299258300258301258302258303258304258305258306258307258308258309258310258311258312258313258314258315258316258317258318258319258320258321258322258323258324258325258326258327258328258329258330258331258332258333258334258335258336258337258338258339258340258341258342258343258344258345258346258347258348258349258350258351258352258353258354258355258356258357258358258359258360258361258362258363258364258365258366258367258368258369258370258371258372258373258374258375258376258377258378258379258380258381258382258383258384258385258386258387258388258389258390258391258392258393258394258395258396258397258398258399258400258401258402258403258404258405258406258407258408258409258410258411258412258413258414258415258416258417258418258419258420258421258422258423258424258425258426258427258428258429258430258431258432258433258434258435258436258437258438258439258440258441258442258443258444258445258446258447258448258449258450258451258452258453258454258455258456258457258458258459258460258461258462258463258464258465258466258467258468258469258470258471258472258473258474258475258476258477258478258479258480258481258482258483258484258485258486258487258488258489258490258491258492258493258494258495258496258497258498258499258500258501258502258503258504258505258506258507258508258509258510258511258512258513258514258515258516258517258518258519258520258521258522258523258524258525258526258527258528258529258530258531258532258533258534258535258536258537258538258539258540258541258542258543258544258545258546258547258548258549258550258551258552258553258554258555258556258557258558258559258560258561258562258563258564258565258566258567258568258569258570258571258572258573258574258575258576258577258578258579258580258581258582258583258584258585258586258587258588258589258590258591258592258593258594258595258596258597258598258599258600258601258602258603258604258605258606258607258608258609258610258611258612258613258614258615258616258617258618258619258620258621258622258623258624258625258626258627258628258629258630258631258632258633258634258635258636258637258638258639258640258641258642258643258644258645258646258647258648258649258650258651258652258653258654258655258656258657258658258659258660258661258662258663258664258665258666258667258668258669258670258671258672258673258674258675258676258677258678258679258680258681258682258683258684258685258686258687258688258689258690258691258692258693258694258695258696258697258698258699258700258701258702258703258704258705258706258707258708258709258710258711258712258713258714258715258716258717258718258719258720258721258722258723258724258725258726258727258728258729258730258731258732258733258734258735258736258737258738258739258740258741258742258743258744258745258746258747258748258749258750258751258752258753258754258755258756258757258758258759258760258761258762258763258764258765258766258767258768258769258770258771258772258773258774258775258776258777258778258779258780258781258782258783258784258785258786258787258788258789258790258791258792258793258794258795258796258797258798258799258800258801258802258803258804258805258806258807258808258809258810258811258812258813258814258815258816258817258818258819258820258821258822258823258824258825258826258827258828258829258830258831258832258833258834258835258836258837258838258839258840258841258842258843258844258845258846258847258848258849258850258851258852258853258854258855258856258857258858258859258860258861258862258863258864258865258866258867258868258869258870258871258872258873258874258875258876258877258878258879258880258881258882258883258884258885258886258887258888258889258890258891258892258893258894258895258896258897258898258899258900258901258902258903258904258905258906258907258908258909258910258911258912258913258914258915258916258917258918258919258920258921258922258923258924258925258926258927258928258929258930258931258932258933258934258935258936258937258938258939258940258941258942258943258944258945258946258947258948258949258950258951258952258953258954258955258956258957258958258959258960258961258962258963258964258965258966258967258968258969258970258971258972258973258974258975258976258977258978258979258980258981258982258983258984258985258986258987258988258989258990258991258992258993258994258995258996258997258998258999259000259001259002259003259004259005259006259007259008259009259010259011259012259013259014259015259016259017259018259019259020259021259022259023259024259025259026259027259028259029259030259031259032259033259034259035259036259037259038259039259040259041259042259043259044259045259046259047259048259049259050259051259052259053259054259055259056259057259058259059259060259061259062259063259064259065259066259067259068259069259070259071259072259073259074259075259076259077259078259079259080259081259082259083259084259085259086259087259088259089259090259091259092259093259094259095259096259097259098259099259100259101259102259103259104259105259106259107259108259109259110259111259112259113259114259115259116259117259118259119259120259121259122259123259124259125259126259127259128259129259130259131259132259133259134259135259136259137259138259139259140259141259142259143259144259145259146259147259148259149259150259151259152259153259154259155259156259157259158259159259160259161259162259163259164259165259166259167259168259169259170259171259172259173259174259175259176259177259178259179259180259181259182259183259184259185259186259187259188259189259190259191259192259193259194259195259196259197259198259199259200259201259202259203259204259205259206259207259208259209259210259211259212259213259214259215259216259217259218259219259220259221259222259223259224259225259226259227259228259229259230259231259232259233259234259235259236259237259238259239259240259241259242259243259244259245259246259247259248259249259250259251259252259253259254259255259256259257259258259259259260259261259262259263259264259265259266259267259268259269259270259271259272259273259274259275259276259277259278259279259280259281259282259283259284259285259286259287259288259289259290259291259292259293259294259295259296259297259298259299259300259301259302259303259304259305259306259307259308259309259310259311259312259313259314259315259316259317259318259319259320259321259322259323259324259325259326259327259328259329259330259331259332259333259334259335259336259337259338259339259340259341259342259343259344259345259346259347259348259349259350259351259352259353259354259355259356259357259358259359259360259361259362259363259364259365259366259367259368259369259370259371259372259373259374259375259376259377259378259379259380259381259382259383259384259385259386259387259388259389259390259391259392259393259394259395259396259397259398259399259400259401259402259403259404259405259406259407259408259409259410259411259412259413259414259415259416259417259418259419259420259421259422259423259424259425259426259427259428259429259430259431259432259433259434259435259436259437259438259439259440259441259442259443259444259445259446259447259448259449259450259451259452259453259454259455259456259457259458259459259460259461259462259463259464259465259466259467259468259469259470259471259472259473259474259475259476259477259478259479259480259481259482259483259484259485259486259487259488259489259490259491259492259493259494259495259496259497259498259499259500259501259502259503259504259505259506259507259508259509259510259511259512259513259514259515259516259517259518259519259520259521259522259523259524259525259526259527259528259529259530259531259532259533259534259535259536259537259538259539259540259541259542259543259544259545259546259547259548259549259550259551259552259553259554259555259556259557259558259559259560259561259562259563259564259565259566259567259568259569259570259571259572259573259574259575259576259577259578259579259580259581259582259583259584259585259586259587259588259589259590259591259592259593259594259595259596259597259598259599259600259601259602259603259604259605259606259607259608259609259610259611259612259613259614259615259616259617259618259619259620259621259622259623259624259625259626259627259628259629259630259631259632259633259634259635259636259637259638259639259640259641259642259643259644259645259646259647259648259649259650259651259652259653259654259655259656259657259658259659259660259661259662259663259664259665259666259667259668259669259670259671259672259673259674259675259676259677259678259679259680259681259682259683259684259685259686259687259688259689259690259691259692259693259694259695259696259697259698259699259700259701259702259703259704259705259706259707259708259709259710259711259712259713259714259715259716259717259718259719259720259721259722259723259724259725259726259727259728259729259730259731259732259733259734259735259736259737259738259739259740259741259742259743259744259745259746259747259748259749259750259751259752259753259754259755259756259757259758259759259760259761259762259763259764259765259766259767259768259769259770259771259772259773259774259775259776259777259778259779259780259781259782259783259784259785259786259787259788259789259790259791259792259793259794259795259796259797259798259799259800259801259802259803259804259805259806259807259808259809259810259811259812259813259814259815259816259817259818259819259820259821259822259823259824259825259826259827259828259829259830259831259832259833259834259835259836259837259838259839259840259841259842259843259844259845259846259847259848259849259850259851259852259853259854259855259856259857259858259859259860259861259862259863259864259865259866259867259868259869259870259871259872259873259874259875259876259877259878259879259880259881259882259883259884259885259886259887259888259889259890259891259892259893259894259895259896259897259898259899259900259901259902259903259904259905259906259907259908259909259910259911259912259913259914259915259916259917259918259919259920259921259922259923259924259925259926259927259928259929259930259931259932259933259934259935259936259937259938259939259940259941259942259943259944259945259946259947259948259949259950259951259952259953259954259955259956259957259958259959259960259961259962259963259964259965259966259967259968259969259970259971259972259973259974259975259976259977259978259979259980259981259982259983259984259985259986259987259988259989259990259991259992259993259994259995259996259997259998259999260000260001260002260003260004260005260006260007260008260009260010260011260012260013260014260015260016260017260018260019260020260021260022260023260024260025260026260027260028260029260030260031260032260033260034260035260036260037260038260039260040260041260042260043260044260045260046260047260048260049260050260051260052260053260054260055260056260057260058260059260060260061260062260063260064260065260066260067260068260069260070260071260072260073260074260075260076260077260078260079260080260081260082260083260084260085260086260087260088260089260090260091260092260093260094260095260096260097260098260099260100260101260102260103260104260105260106260107260108260109260110260111260112260113260114260115260116260117260118260119260120260121260122260123260124260125260126260127260128260129260130260131260132260133260134260135260136260137260138260139260140260141260142260143260144260145260146260147260148260149260150260151260152260153260154260155260156260157260158260159260160260161260162260163260164260165260166260167260168260169260170260171260172260173260174260175260176260177260178260179260180260181260182260183260184260185260186260187260188260189260190260191260192260193260194260195260196260197260198260199260200260201260202260203260204260205260206260207260208260209260210260211260212260213260214260215260216260217260218260219260220260221260222260223260224260225260226260227260228260229260230260231260232260233260234260235260236260237260238260239260240260241260242260243260244260245260246260247260248260249260250260251260252260253260254260255260256260257260258260259260260260261260262260263260264260265260266260267260268260269260270260271260272260273260274260275260276260277260278260279260280260281260282260283260284260285260286260287260288260289260290260291260292260293260294260295260296260297260298260299260300260301260302260303260304260305260306260307260308260309260310260311260312260313260314260315260316260317260318260319260320260321260322260323260324260325260326260327260328260329260330260331260332260333260334260335260336260337260338260339260340260341260342260343260344260345260346260347260348260349260350260351260352260353260354260355260356260357260358260359260360260361260362260363260364260365260366260367260368260369260370260371260372260373260374260375260376260377260378260379260380260381260382260383260384260385260386260387260388260389260390260391260392260393260394260395260396260397260398260399260400260401260402260403260404260405260406260407260408260409260410260411260412260413260414260415260416260417260418260419260420260421260422260423260424260425260426260427260428260429260430260431260432260433260434260435260436260437260438260439260440260441260442260443260444260445260446260447260448260449260450260451260452260453260454260455260456260457260458260459260460260461260462260463260464260465260466260467260468260469260470260471260472260473260474260475260476260477260478260479260480260481260482260483260484260485260486260487260488260489260490260491260492260493260494260495260496260497260498260499260500260501260502260503260504260505260506260507260508260509260510260511260512260513260514260515260516260517260518260519260520260521260522260523260524260525260526260527260528260529260530260531260532260533260534260535260536260537260538260539260540260541260542260543260544260545260546260547260548260549260550260551260552260553260554260555260556260557260558260559260560260561260562260563260564260565260566260567260568260569260570260571260572260573260574260575260576260577260578260579260580260581260582260583260584260585260586260587260588260589260590260591260592260593260594260595260596260597260598260599260600260601260602260603260604260605260606260607260608260609260610260611260612260613260614260615260616260617260618260619260620260621260622260623260624260625260626260627260628260629260630260631260632260633260634260635260636260637260638260639260640260641260642260643260644260645260646260647260648260649260650260651260652260653260654260655260656260657260658260659260660260661260662260663260664260665260666260667260668260669260670260671260672260673260674260675260676260677260678260679260680260681260682260683260684260685260686260687260688260689260690260691260692260693260694260695260696260697260698260699260700260701260702260703260704260705260706260707260708260709260710260711260712260713260714260715260716260717260718260719260720260721260722260723260724260725260726260727260728260729260730260731260732260733260734260735260736260737260738260739260740260741260742260743260744260745260746260747260748260749260750260751260752260753260754260755260756260757260758260759260760260761260762260763260764260765260766260767260768260769260770260771260772260773260774260775260776260777260778260779260780260781260782260783260784260785260786260787260788260789260790260791260792260793260794260795260796260797260798260799260800260801260802260803260804260805260806260807260808260809260810260811260812260813260814260815260816260817260818260819260820260821260822260823260824260825260826260827260828260829260830260831260832260833260834260835260836260837260838260839260840260841260842260843260844260845260846260847260848260849260850260851260852260853260854260855260856260857260858260859260860260861260862260863260864260865260866260867260868260869260870260871260872260873260874260875260876260877260878260879260880260881260882260883260884260885260886260887260888260889260890260891260892260893260894260895260896260897260898260899260900260901260902260903260904260905260906260907260908260909260910260911260912260913260914260915260916260917260918260919260920260921260922260923260924260925260926260927260928260929260930260931260932260933260934260935260936260937260938260939260940260941260942260943260944260945260946260947260948260949260950260951260952260953260954260955260956260957260958260959260960260961260962260963260964260965260966260967260968260969260970260971260972260973260974260975260976260977260978260979260980260981260982260983260984260985260986260987260988260989260990260991260992260993260994260995260996260997260998260999261000261001261002261003261004261005261006261007261008261009261010261011261012261013261014261015261016261017261018261019261020261021261022261023261024261025261026261027261028261029261030261031261032261033261034261035261036261037261038261039261040261041261042261043261044261045261046261047261048261049261050261051261052261053261054261055261056261057261058261059261060261061261062261063261064261065261066261067261068261069261070261071261072261073261074261075261076261077261078261079261080261081261082261083261084261085261086261087261088261089261090261091261092261093261094261095261096261097261098261099261100261101261102261103261104261105261106261107261108261109261110261111261112261113261114261115261116261117261118261119261120261121261122261123261124261125261126261127261128261129261130261131261132261133261134261135261136261137261138261139261140261141261142261143261144261145261146261147261148261149261150261151261152261153261154261155261156261157261158261159261160261161261162261163261164261165261166261167261168261169261170261171261172261173261174261175261176261177261178261179261180261181261182261183261184261185261186261187261188261189261190261191261192261193261194261195261196261197261198261199261200261201261202261203261204261205261206261207261208261209261210261211261212261213261214261215261216261217261218261219261220261221261222261223261224261225261226261227261228261229261230261231261232261233261234261235261236261237261238261239261240261241261242261243261244261245261246261247261248261249261250261251261252261253261254261255261256261257261258261259261260261261261262261263261264261265261266261267261268261269261270261271261272261273261274261275261276261277261278261279261280261281261282261283261284261285261286261287261288261289261290261291261292261293261294261295261296261297261298261299261300261301261302261303261304261305261306261307261308261309261310261311261312261313261314261315261316261317261318261319261320261321261322261323261324261325261326261327261328261329261330261331261332261333261334261335261336261337261338261339261340261341261342261343261344261345261346261347261348261349261350261351261352261353261354261355261356261357261358261359261360261361261362261363261364261365261366261367261368261369261370261371261372261373261374261375261376261377261378261379261380261381261382261383261384261385261386261387261388261389261390261391261392261393261394261395261396261397261398261399261400261401261402261403261404261405261406261407261408261409261410261411261412261413261414261415261416261417261418261419261420261421261422261423261424261425261426261427261428261429261430261431261432261433261434261435261436261437261438261439261440261441261442261443261444261445261446261447261448261449261450261451261452261453261454261455261456261457261458261459261460261461261462261463261464261465261466261467261468261469261470261471261472261473261474261475261476261477261478261479261480261481261482261483261484261485261486261487261488261489261490261491261492261493261494261495261496261497261498261499261500261501261502261503261504261505261506261507261508261509261510261511261512261513261514261515261516261517261518261519261520261521261522261523261524261525261526261527261528261529261530261531261532261533261534261535261536261537261538261539261540261541261542261543261544261545261546261547261548261549261550261551261552261553261554261555261556261557261558261559261560261561261562261563261564261565261566261567261568261569261570261571261572261573261574261575261576261577261578261579261580261581261582261583261584261585261586261587261588261589261590261591261592261593261594261595261596261597261598261599261600261601261602261603261604261605261606261607261608261609261610261611261612261613261614261615261616261617261618261619261620261621261622261623261624261625261626261627261628261629261630261631261632261633261634261635261636261637261638261639261640261641261642261643261644261645261646261647261648261649261650261651261652261653261654261655261656261657261658261659261660261661261662261663261664261665261666261667261668261669261670261671261672261673261674261675261676261677261678261679261680261681261682261683261684261685261686261687261688261689261690261691261692261693261694261695261696261697261698261699261700261701261702261703261704261705261706261707261708261709261710261711261712261713261714261715261716261717261718261719261720261721261722261723261724261725261726261727261728261729261730261731261732261733261734261735261736261737261738261739261740261741261742261743261744261745261746261747261748261749261750261751261752261753261754261755261756261757261758261759261760261761261762261763261764261765261766261767261768261769261770261771261772261773261774261775261776261777261778261779261780261781261782261783261784261785261786261787261788261789261790261791261792261793261794261795261796261797261798261799261800261801261802261803261804261805261806261807261808261809261810261811261812261813261814261815261816261817261818261819261820261821261822261823261824261825261826261827261828261829261830261831261832261833261834261835261836261837261838261839261840261841261842261843261844261845261846261847261848261849261850261851261852261853261854261855261856261857261858261859261860261861261862261863261864261865261866261867261868261869261870261871261872261873261874261875261876261877261878261879261880261881261882261883261884261885261886261887261888261889261890261891261892261893261894261895261896261897261898261899261900261901261902261903261904261905261906261907261908261909261910261911261912261913261914261915261916261917261918261919261920261921261922261923261924261925261926261927261928261929261930261931261932261933261934261935261936261937261938261939261940261941261942261943261944261945261946261947261948261949261950261951261952261953261954261955261956261957261958261959261960261961261962261963261964261965261966261967261968261969261970261971261972261973261974261975261976261977261978261979261980261981261982261983261984261985261986261987261988261989261990261991261992261993261994261995261996261997261998261999262000262001262002262003262004262005262006262007262008262009262010262011262012262013262014262015262016262017262018262019262020262021262022262023262024262025262026262027262028262029262030262031262032262033262034262035262036262037262038262039262040262041262042262043262044262045262046262047262048262049262050262051262052262053262054262055262056262057262058262059262060262061262062262063262064262065262066262067262068262069262070262071262072262073262074262075262076262077262078262079262080262081262082262083262084262085262086262087262088262089262090262091262092262093262094262095262096262097262098262099262100262101262102262103262104262105262106262107262108262109262110262111262112262113262114262115262116262117262118262119262120262121262122262123262124262125262126262127262128262129262130262131262132262133262134262135262136262137262138262139262140262141262142262143262144262145262146262147262148262149262150262151262152262153262154262155262156262157262158262159262160262161262162262163262164262165262166262167262168262169262170262171262172262173262174262175262176262177262178262179262180262181262182262183262184262185262186262187262188262189262190262191262192262193262194262195262196262197262198262199262200262201262202262203262204262205262206262207262208262209262210262211262212262213262214262215262216262217262218262219262220262221262222262223262224262225262226262227262228262229262230262231262232262233262234262235262236262237262238262239262240262241262242262243262244262245262246262247262248262249262250262251262252262253262254262255262256262257262258262259262260262261262262262263262264262265262266262267262268262269262270262271262272262273262274262275262276262277262278262279262280262281262282262283262284262285262286262287262288262289262290262291262292262293262294262295262296262297262298262299262300262301262302262303262304262305262306262307262308262309262310262311262312262313262314262315262316262317262318262319262320262321262322262323262324262325262326262327262328262329262330262331262332262333262334262335262336262337262338262339262340262341262342262343262344262345262346262347262348262349262350262351262352262353262354262355262356262357262358262359262360262361262362262363262364262365262366262367262368262369262370262371262372262373262374262375262376262377262378262379262380262381262382262383262384262385262386262387262388262389262390262391262392262393262394262395262396262397262398262399262400262401262402262403262404262405262406262407262408262409262410262411262412262413262414262415262416262417262418262419262420262421262422262423262424262425262426262427262428262429262430262431262432262433262434262435262436262437262438262439262440262441262442262443262444262445262446262447262448262449262450262451262452262453262454262455262456262457262458262459262460262461262462262463262464262465262466262467262468262469262470262471262472262473262474262475262476262477262478262479262480262481262482262483262484262485262486262487262488262489262490262491262492262493262494262495262496262497262498262499262500262501262502262503262504262505262506262507262508262509262510262511262512262513262514262515262516262517262518262519262520262521262522262523262524262525262526262527262528262529262530262531262532262533262534262535262536262537262538262539262540262541262542262543262544262545262546262547262548262549262550262551262552262553262554262555262556262557262558262559262560262561262562262563262564262565262566262567262568262569262570262571262572262573262574262575262576262577262578262579262580262581262582262583262584262585262586262587262588262589262590262591262592262593262594262595262596262597262598262599262600262601262602262603262604262605262606262607262608262609262610262611262612262613262614262615262616262617262618262619262620262621262622262623262624262625262626262627262628262629262630262631262632262633262634262635262636262637262638262639262640262641262642262643262644262645262646262647262648262649262650262651262652262653262654262655262656262657262658262659262660262661262662262663262664262665262666262667262668262669262670262671262672262673262674262675262676262677262678262679262680262681262682262683262684262685262686262687262688262689262690262691262692262693262694262695262696262697262698262699262700262701262702262703262704262705262706262707262708262709262710262711262712262713262714262715262716262717262718262719262720262721262722262723262724262725262726262727262728262729262730262731262732262733262734262735262736262737262738262739262740262741262742262743262744262745262746262747262748262749262750262751262752262753262754262755262756262757262758262759262760262761262762262763262764262765262766262767262768262769262770262771262772262773262774262775262776262777262778262779262780262781262782262783262784262785262786262787262788262789262790262791262792262793262794262795262796262797262798262799262800262801262802262803262804262805262806262807262808262809262810262811262812262813262814262815262816262817262818262819262820262821262822262823262824262825262826262827262828262829262830262831262832262833262834262835262836262837262838262839262840262841262842262843262844262845262846262847262848262849262850262851262852262853262854262855262856262857262858262859262860262861262862262863262864262865262866262867262868262869262870262871262872262873262874262875262876262877262878262879262880262881262882262883262884262885262886262887262888262889262890262891262892262893262894262895262896262897262898262899262900262901262902262903262904262905262906262907262908262909262910262911262912262913262914262915262916262917262918262919262920262921262922262923262924262925262926262927262928262929262930262931262932262933262934262935262936262937262938262939262940262941262942262943262944262945262946262947262948262949262950262951262952262953262954262955262956262957262958262959262960262961262962262963262964262965262966262967262968262969262970262971262972262973262974262975262976262977262978262979262980262981262982262983262984262985262986262987262988262989262990262991262992262993262994262995262996262997262998262999263000263001263002263003263004263005263006263007263008263009263010263011263012263013263014263015263016263017263018263019263020263021263022263023263024263025263026263027263028263029263030263031263032263033263034263035263036263037263038263039263040263041263042263043263044263045263046263047263048263049263050263051263052263053263054263055263056263057263058263059263060263061263062263063263064263065263066263067263068263069263070263071263072263073263074263075263076263077263078263079263080263081263082263083263084263085263086263087263088263089263090263091263092263093263094263095263096263097263098263099263100263101263102263103263104263105263106263107263108263109263110263111263112263113263114263115263116263117263118263119263120263121263122263123263124263125263126263127263128263129263130263131263132263133263134263135263136263137263138263139263140263141263142263143263144263145263146263147263148263149263150263151263152263153263154263155263156263157263158263159263160263161263162263163263164263165263166263167263168263169263170263171263172263173263174263175263176263177263178263179263180263181263182263183263184263185263186263187263188263189263190263191263192263193263194263195263196263197263198263199263200263201263202263203263204263205263206263207263208263209263210263211263212263213263214263215263216263217263218263219263220263221263222263223263224263225263226263227263228263229263230263231263232263233263234263235263236263237263238263239263240263241263242263243263244263245263246263247263248263249263250263251263252263253263254263255263256263257263258263259263260263261263262263263263264263265263266263267263268263269263270263271263272263273263274263275263276263277263278263279263280263281263282263283263284263285263286263287263288263289263290263291263292263293263294263295263296263297263298263299263300263301263302263303263304263305263306263307263308263309263310263311263312263313263314263315263316263317263318263319263320263321263322263323263324263325263326263327263328263329263330263331263332263333263334263335263336263337263338263339263340263341263342263343263344263345263346263347263348263349263350263351263352263353263354263355263356263357263358263359263360263361263362263363263364263365263366263367263368263369263370263371263372263373263374263375263376263377263378263379263380263381263382263383263384263385263386263387263388263389263390263391263392263393263394263395263396263397263398263399263400263401263402263403263404263405263406263407263408263409263410263411263412263413263414263415263416263417263418263419263420263421263422263423263424263425263426263427263428263429263430263431263432263433263434263435263436263437263438263439263440263441263442263443263444263445263446263447263448263449263450263451263452263453263454263455263456263457263458263459263460263461263462263463263464263465263466263467263468263469263470263471263472263473263474263475263476263477263478263479263480263481263482263483263484263485263486263487263488263489263490263491263492263493263494263495263496263497263498263499263500263501263502263503263504263505263506263507263508263509263510263511263512263513263514263515263516263517263518263519263520263521263522263523263524263525263526263527263528263529263530263531263532263533263534263535263536263537263538263539263540263541263542263543263544263545263546263547263548263549263550263551263552263553263554263555263556263557263558263559263560263561263562263563263564263565263566263567263568263569263570263571263572263573263574263575263576263577263578263579263580263581263582263583263584263585263586263587263588263589263590263591263592263593263594263595263596263597263598263599263600263601263602263603263604263605263606263607263608263609263610263611263612263613263614263615263616263617263618263619263620263621263622263623263624263625263626263627263628263629263630263631263632263633263634263635263636263637263638263639263640263641263642263643263644263645263646263647263648263649263650263651263652263653263654263655263656263657263658263659263660263661263662263663263664263665263666263667263668263669263670263671263672263673263674263675263676263677263678263679263680263681263682263683263684263685263686263687263688263689263690263691263692263693263694263695263696263697263698263699263700263701263702263703263704263705263706263707263708263709263710263711263712263713263714263715263716263717263718263719263720263721263722263723263724263725263726263727263728263729263730263731263732263733263734263735263736263737263738263739263740263741263742263743263744263745263746263747263748263749263750263751263752263753263754263755263756263757263758263759263760263761263762263763263764263765263766263767263768263769263770263771263772263773263774263775263776263777263778263779263780263781263782263783263784263785263786263787263788263789263790263791263792263793263794263795263796263797263798263799263800263801263802263803263804263805263806263807263808263809263810263811263812263813263814263815263816263817263818263819263820263821263822263823263824263825263826263827263828263829263830263831263832263833263834263835263836263837263838263839263840263841263842263843263844263845263846263847263848263849263850263851263852263853263854263855263856263857263858263859263860263861263862263863263864263865263866263867263868263869263870263871263872263873263874263875263876263877263878263879263880263881263882263883263884263885263886263887263888263889263890263891263892263893263894263895263896263897263898263899263900263901263902263903263904263905263906263907263908263909263910263911263912263913263914263915263916263917263918263919263920263921263922263923263924263925263926263927263928263929263930263931263932263933263934263935263936263937263938263939263940263941263942263943263944263945263946263947263948263949263950263951263952263953263954263955263956263957263958263959263960263961263962263963263964263965263966263967263968263969263970263971263972263973263974263975263976263977263978263979263980263981263982263983263984263985263986263987263988263989263990263991263992263993263994263995263996263997263998263999264000264001264002264003264004264005264006264007264008264009264010264011264012264013264014264015264016264017264018264019264020264021264022264023264024264025264026264027264028264029264030264031264032264033264034264035264036264037264038264039264040264041264042264043264044264045264046264047264048264049264050264051264052264053264054264055264056264057264058264059264060264061264062264063264064264065264066264067264068264069264070264071264072264073264074264075264076264077264078264079264080264081264082264083264084264085264086264087264088264089264090264091264092264093264094264095264096264097264098264099264100264101264102264103264104264105264106264107264108264109264110264111264112264113264114264115264116264117264118264119264120264121264122264123264124264125264126264127264128264129264130264131264132264133264134264135264136264137264138264139264140264141264142264143264144264145264146264147264148264149264150264151264152264153264154264155264156264157264158264159264160264161264162264163264164264165264166264167264168264169264170264171264172264173264174264175264176264177264178264179264180264181264182264183264184264185264186264187264188264189264190264191264192264193264194264195264196264197264198264199264200264201264202264203264204264205264206264207264208264209264210264211264212264213264214264215264216264217264218264219264220264221264222264223264224264225264226264227264228264229264230264231264232264233264234264235264236264237264238264239264240264241264242264243264244264245264246264247264248264249264250264251264252264253264254264255264256264257264258264259264260264261264262264263264264264265264266264267264268264269264270264271264272264273264274264275264276264277264278264279264280264281264282264283264284264285264286264287264288264289264290264291264292264293264294264295264296264297264298264299264300264301264302264303264304264305264306264307264308264309264310264311264312264313264314264315264316264317264318264319264320264321264322264323264324264325264326264327264328264329264330264331264332264333264334264335264336264337264338264339264340264341264342264343264344264345264346264347264348264349264350264351264352264353264354264355264356264357264358264359264360264361264362264363264364264365264366264367264368264369264370264371264372264373264374264375264376264377264378264379264380264381264382264383264384264385264386264387264388264389264390264391264392264393264394264395264396264397264398264399264400264401264402264403264404264405264406264407264408264409264410264411264412264413264414264415264416264417264418264419264420264421264422264423264424264425264426264427264428264429264430264431264432264433264434264435264436264437264438264439264440264441264442264443264444264445264446264447264448264449264450264451264452264453264454264455264456264457264458264459264460264461264462264463264464264465264466264467264468264469264470264471264472264473264474264475264476264477264478264479264480264481264482264483264484264485264486264487264488264489264490264491264492264493264494264495264496264497264498264499264500264501264502264503264504264505264506264507264508264509264510264511264512264513264514264515264516264517264518264519264520264521264522264523264524264525264526264527264528264529264530264531264532264533264534264535264536264537264538264539264540264541264542264543264544264545264546264547264548264549264550264551264552264553264554264555264556264557264558264559264560264561264562264563264564264565264566264567264568264569264570264571264572264573264574264575264576264577264578264579264580264581264582264583264584264585264586264587264588264589264590264591264592264593264594264595264596264597264598264599264600264601264602264603264604264605264606264607264608264609264610264611264612264613264614264615264616264617264618264619264620264621264622264623264624264625264626264627264628264629264630264631264632264633264634264635264636264637264638264639264640264641264642264643264644264645264646264647264648264649264650264651264652264653264654264655264656264657264658264659264660264661264662264663264664264665264666264667264668264669264670264671264672264673264674264675264676264677264678264679264680264681264682264683264684264685264686264687264688264689264690264691264692264693264694264695264696264697264698264699264700264701264702264703264704264705264706264707264708264709264710264711264712264713264714264715264716264717264718264719264720264721264722264723264724264725264726264727264728264729264730264731264732264733264734264735264736264737264738264739264740264741264742264743264744264745264746264747264748264749264750264751264752264753264754264755264756264757264758264759264760264761264762264763264764264765264766264767264768264769264770264771264772264773264774264775264776264777264778264779264780264781264782264783264784264785264786264787264788264789264790264791264792264793264794264795264796264797264798264799264800264801264802264803264804264805264806264807264808264809264810264811264812264813264814264815264816264817264818264819264820264821264822264823264824264825264826264827264828264829264830264831264832264833264834264835264836264837264838264839264840264841264842264843264844264845264846264847264848264849264850264851264852264853264854264855264856264857264858264859264860264861264862264863264864264865264866264867264868264869264870264871264872264873264874264875264876264877264878264879264880264881264882264883264884264885264886264887264888264889264890264891264892264893264894264895264896264897264898264899264900264901264902264903264904264905264906264907264908264909264910264911264912264913264914264915264916264917264918264919264920264921264922264923264924264925264926264927264928264929264930264931264932264933264934264935264936264937264938264939264940264941264942264943264944264945264946264947264948264949264950264951264952264953264954264955264956264957264958264959264960264961264962264963264964264965264966264967264968264969264970264971264972264973264974264975264976264977264978264979264980264981264982264983264984264985264986264987264988264989264990264991264992264993264994264995264996264997264998264999265000265001265002265003265004265005265006265007265008265009265010265011265012265013265014265015265016265017265018265019265020265021265022265023265024265025265026265027265028265029265030265031265032265033265034265035265036265037265038265039265040265041265042265043265044265045265046265047265048265049265050265051265052265053265054265055265056265057265058265059265060265061265062265063265064265065265066265067265068265069265070265071265072265073265074265075265076265077265078265079265080265081265082265083265084265085265086265087265088265089265090265091265092265093265094265095265096265097265098265099265100265101265102265103265104265105265106265107265108265109265110265111265112265113265114265115265116265117265118265119265120265121265122265123265124265125265126265127265128265129265130265131265132265133265134265135265136265137265138265139265140265141265142265143265144265145265146265147265148265149265150265151265152265153265154265155265156265157265158265159265160265161265162265163265164265165265166265167265168265169265170265171265172265173265174265175265176265177265178265179265180265181265182265183265184265185265186265187265188265189265190265191265192265193265194265195265196265197265198265199265200265201265202265203265204265205265206265207265208265209265210265211265212265213265214265215265216265217265218265219265220265221265222265223265224265225265226265227265228265229265230265231265232265233265234265235265236265237265238265239265240265241265242265243265244265245265246265247265248265249265250265251265252265253265254265255265256265257265258265259265260265261265262265263265264265265265266265267265268265269265270265271265272265273265274265275265276265277265278265279265280265281265282265283265284265285265286265287265288265289265290265291265292265293265294265295265296265297265298265299265300265301265302265303265304265305265306265307265308265309265310265311265312265313265314265315265316265317265318265319265320265321265322265323265324265325265326265327265328265329265330265331265332265333265334265335265336265337265338265339265340265341265342265343265344265345265346265347265348265349265350265351265352265353265354265355265356265357265358265359265360265361265362265363265364265365265366265367265368265369265370265371265372265373265374265375265376265377265378265379265380265381265382265383265384265385265386265387265388265389265390265391265392265393265394265395265396265397265398265399265400265401265402265403265404265405265406265407265408265409265410265411265412265413265414265415265416265417265418265419265420265421265422265423265424265425265426265427265428265429265430265431265432265433265434265435265436265437265438265439265440265441265442265443265444265445265446265447265448265449265450265451265452265453265454265455265456265457265458265459265460265461265462265463265464265465265466265467265468265469265470265471265472265473265474265475265476265477265478265479265480265481265482265483265484265485265486265487265488265489265490265491265492265493265494265495265496265497265498265499265500265501265502265503265504265505265506265507265508265509265510265511265512265513265514265515265516265517265518265519265520265521265522265523265524265525265526265527265528265529265530265531265532265533265534265535265536265537265538265539265540265541265542265543265544265545265546265547265548265549265550265551265552265553265554265555265556265557265558265559265560265561265562265563265564265565265566265567265568265569265570265571265572265573265574265575265576265577265578265579265580265581265582265583265584265585265586265587265588265589265590265591265592265593265594265595265596265597265598265599265600265601265602265603265604265605265606265607265608265609265610265611265612265613265614265615265616265617265618265619265620265621265622265623265624265625265626265627265628265629265630265631265632265633265634265635265636265637265638265639265640265641265642265643265644265645265646265647265648265649265650265651265652265653265654265655265656265657265658265659265660265661265662265663265664265665265666265667265668265669265670265671265672265673265674265675265676265677265678265679265680265681265682265683265684265685265686265687265688265689265690265691265692265693265694265695265696265697265698265699265700265701265702265703265704265705265706265707265708265709265710265711265712265713265714265715265716265717265718265719265720265721265722265723265724265725265726265727265728265729265730265731265732265733265734265735265736265737265738265739265740265741265742265743265744265745265746265747265748265749265750265751265752265753265754265755265756265757265758265759265760265761265762265763265764265765265766265767265768265769265770265771265772265773265774265775265776265777265778265779265780265781265782265783265784265785265786265787265788265789265790265791265792265793265794265795265796265797265798265799265800265801265802265803265804265805265806265807265808265809265810265811265812265813265814265815265816265817265818265819265820265821265822265823265824265825265826265827265828265829265830265831265832265833265834265835265836265837265838265839265840265841265842265843265844265845265846265847265848265849265850265851265852265853265854265855265856265857265858265859265860265861265862265863265864265865265866265867265868265869265870265871265872265873265874265875265876265877265878265879265880265881265882265883265884265885265886265887265888265889265890265891265892265893265894265895265896265897265898265899265900265901265902265903265904265905265906265907265908265909265910265911265912265913265914265915265916265917265918265919265920265921265922265923265924265925265926265927265928265929265930265931265932265933265934265935265936265937265938265939265940265941265942265943265944265945265946265947265948265949265950265951265952265953265954265955265956265957265958265959265960265961265962265963265964265965265966265967265968265969265970265971265972265973265974265975265976265977265978265979265980265981265982265983265984265985265986265987265988265989265990265991265992265993265994265995265996265997265998265999266000266001266002266003266004266005266006266007266008266009266010266011266012266013266014266015266016266017266018266019266020266021266022266023266024266025266026266027266028266029266030266031266032266033266034266035266036266037266038266039266040266041266042266043266044266045266046266047266048266049266050266051266052266053266054266055266056266057266058266059266060266061266062266063266064266065266066266067266068266069266070266071266072266073266074266075266076266077266078266079266080266081266082266083266084266085266086266087266088266089266090266091266092266093266094266095266096266097266098266099266100266101266102266103266104266105266106266107266108266109266110266111266112266113266114266115266116266117266118266119266120266121266122266123266124266125266126266127266128266129266130266131266132266133266134266135266136266137266138266139266140266141266142266143266144266145266146266147266148266149266150266151266152266153266154266155266156266157266158266159266160266161266162266163266164266165266166266167266168266169266170266171266172266173266174266175266176266177266178266179266180266181266182266183266184266185266186266187266188266189266190266191266192266193266194266195266196266197266198266199266200266201266202266203266204266205266206266207266208266209266210266211266212266213266214266215266216266217266218266219266220266221266222266223266224266225266226266227266228266229266230266231266232266233266234266235266236266237266238266239266240266241266242266243266244266245266246266247266248266249266250266251266252266253266254266255266256266257266258266259266260266261266262266263266264266265266266266267266268266269266270266271266272266273266274266275266276266277266278266279266280266281266282266283266284266285266286266287266288266289266290266291266292266293266294266295266296266297266298266299266300266301266302266303266304266305266306266307266308266309266310266311266312266313266314266315266316266317266318266319266320266321266322266323266324266325266326266327266328266329266330266331266332266333266334266335266336266337266338266339266340266341266342266343266344266345266346266347266348266349266350266351266352266353266354266355266356266357266358266359266360266361266362266363266364266365266366266367266368266369266370266371266372266373266374266375266376266377266378266379266380266381266382266383266384266385266386266387266388266389266390266391266392266393266394266395266396266397266398266399266400266401266402266403266404266405266406266407266408266409266410266411266412266413266414266415266416266417266418266419266420266421266422266423266424266425266426266427266428266429266430266431266432266433266434266435266436266437266438266439266440266441266442266443266444266445266446266447266448266449266450266451266452266453266454266455266456266457266458266459266460266461266462266463266464266465266466266467266468266469266470266471266472266473266474266475266476266477266478266479266480266481266482266483266484266485266486266487266488266489266490266491266492266493266494266495266496266497266498266499266500266501266502266503266504266505266506266507266508266509266510266511266512266513266514266515266516266517266518266519266520266521266522266523266524266525266526266527266528266529266530266531266532266533266534266535266536266537266538266539266540266541266542266543266544266545266546266547266548266549266550266551266552266553266554266555266556266557266558266559266560266561266562266563266564266565266566266567266568266569266570266571266572266573266574266575266576266577266578266579266580266581266582266583266584266585266586266587266588266589266590266591266592266593266594266595266596266597266598266599266600266601266602266603266604266605266606266607266608266609266610266611266612266613266614266615266616266617266618266619266620266621266622266623266624266625266626266627266628266629266630266631266632266633266634266635266636266637266638266639266640266641266642266643266644266645266646266647266648266649266650266651266652266653266654266655266656266657266658266659266660266661266662266663266664266665266666266667266668266669266670266671266672266673266674266675266676266677266678266679266680266681266682266683266684266685266686266687266688266689266690266691266692266693266694266695266696266697266698266699266700266701266702266703266704266705266706266707266708266709266710266711266712266713266714266715266716266717266718266719266720266721266722266723266724266725266726266727266728266729266730266731266732266733266734266735266736266737266738266739266740266741266742266743266744266745266746266747266748266749266750266751266752266753266754266755266756266757266758266759266760266761266762266763266764266765266766266767266768266769266770266771266772266773266774266775266776266777266778266779266780266781266782266783266784266785266786266787266788266789266790266791266792266793266794266795266796266797266798266799266800266801266802266803266804266805266806266807266808266809266810266811266812266813266814266815266816266817266818266819266820266821266822266823266824266825266826266827266828266829266830266831266832266833266834266835266836266837266838266839266840266841266842266843266844266845266846266847266848266849266850266851266852266853266854266855266856266857266858266859266860266861266862266863266864266865266866266867266868266869266870266871266872266873266874266875266876266877266878266879266880266881266882266883266884266885266886266887266888266889266890266891266892266893266894266895266896266897266898266899266900266901266902266903266904266905266906266907266908266909266910266911266912266913266914266915266916266917266918266919266920266921266922266923266924266925266926266927266928266929266930266931266932266933266934266935266936266937266938266939266940266941266942266943266944266945266946266947266948266949266950266951266952266953266954266955266956266957266958266959266960266961266962266963266964266965266966266967266968266969266970266971266972266973266974266975266976266977266978266979266980266981266982266983266984266985266986266987266988266989266990266991266992266993266994266995266996266997266998266999267000267001267002267003267004267005267006267007267008267009267010267011267012267013267014267015267016267017267018267019267020267021267022267023267024267025267026267027267028267029267030267031267032267033267034267035267036267037267038267039267040267041267042267043267044267045267046267047267048267049267050267051267052267053267054267055267056267057267058267059267060267061267062267063267064267065267066267067267068267069267070267071267072267073267074267075267076267077267078267079267080267081267082267083267084267085267086267087267088267089267090267091267092267093267094267095267096267097267098267099267100267101267102267103267104267105267106267107267108267109267110267111267112267113267114267115267116267117267118267119267120267121267122267123267124267125267126267127267128267129267130267131267132267133267134267135267136267137267138267139267140267141267142267143267144267145267146267147267148267149267150267151267152267153267154267155267156267157267158267159267160267161267162267163267164267165267166267167267168267169267170267171267172267173267174267175267176267177267178267179267180267181267182267183267184267185267186267187267188267189267190267191267192267193267194267195267196267197267198267199267200267201267202267203267204267205267206267207267208267209267210267211267212267213267214267215267216267217267218267219267220267221267222267223267224267225267226267227267228267229267230267231267232267233267234267235267236267237267238267239267240267241267242267243267244267245267246267247267248267249267250267251267252267253267254267255267256267257267258267259267260267261267262267263267264267265267266267267267268267269267270267271267272267273267274267275267276267277267278267279267280267281267282267283267284267285267286267287267288267289267290267291267292267293267294267295267296267297267298267299267300267301267302267303267304267305267306267307267308267309267310267311267312267313267314267315267316267317267318267319267320267321267322267323267324267325267326267327267328267329267330267331267332267333267334267335267336267337267338267339267340267341267342267343267344267345267346267347267348267349267350267351267352267353267354267355267356267357267358267359267360267361267362267363267364267365267366267367267368267369267370267371267372267373267374267375267376267377267378267379267380267381267382267383267384267385267386267387267388267389267390267391267392267393267394267395267396267397267398267399267400267401267402267403267404267405267406267407267408267409267410267411267412267413267414267415267416267417267418267419267420267421267422267423267424267425267426267427267428267429267430267431267432267433267434267435267436267437267438267439267440267441267442267443267444267445267446267447267448267449267450267451267452267453267454267455267456267457267458267459267460267461267462267463267464267465267466267467267468267469267470267471267472267473267474267475267476267477267478267479267480267481267482267483267484267485267486267487267488267489267490267491267492267493267494267495267496267497267498267499267500267501267502267503267504267505267506267507267508267509267510267511267512267513267514267515267516267517267518267519267520267521267522267523267524267525267526267527267528267529267530267531267532267533267534267535267536267537267538267539267540267541267542267543267544267545267546267547267548267549267550267551267552267553267554267555267556267557267558267559267560267561267562267563267564267565267566267567267568267569267570267571267572267573267574267575267576267577267578267579267580267581267582267583267584267585267586267587267588267589267590267591267592267593267594267595267596267597267598267599267600267601267602267603267604267605267606267607267608267609267610267611267612267613267614267615267616267617267618267619267620267621267622267623267624267625267626267627267628267629267630267631267632267633267634267635267636267637267638267639267640267641267642267643267644267645267646267647267648267649267650267651267652267653267654267655267656267657267658267659267660267661267662267663267664267665267666267667267668267669267670267671267672267673267674267675267676267677267678267679267680267681267682267683267684267685267686267687267688267689267690267691267692267693267694267695267696267697267698267699267700267701267702267703267704267705267706267707267708267709267710267711267712267713267714267715267716267717267718267719267720267721267722267723267724267725267726267727267728267729267730267731267732267733267734267735267736267737267738267739267740267741267742267743267744267745267746267747267748267749267750267751267752267753267754267755267756267757267758267759267760267761267762267763267764267765267766267767267768267769267770267771267772267773267774267775267776267777267778267779267780267781267782267783267784267785267786267787267788267789267790267791267792267793267794267795267796267797267798267799267800267801267802267803267804267805267806267807267808267809267810267811267812267813267814267815267816267817267818267819267820267821267822267823267824267825267826267827267828267829267830267831267832267833267834267835267836267837267838267839267840267841267842267843267844267845267846267847267848267849267850267851267852267853267854267855267856267857267858267859267860267861267862267863267864267865267866267867267868267869267870267871267872267873267874267875267876267877267878267879267880267881267882267883267884267885267886267887267888267889267890267891267892267893267894267895267896267897267898267899267900267901267902267903267904267905267906267907267908267909267910267911267912267913267914267915267916267917267918267919267920267921267922267923267924267925267926267927267928267929267930267931267932267933267934267935267936267937267938267939267940267941267942267943267944267945267946267947267948267949267950267951267952267953267954267955267956267957267958267959267960267961267962267963267964267965267966267967267968267969267970267971267972267973267974267975267976267977267978267979267980267981267982267983267984267985267986267987267988267989267990267991267992267993267994267995267996267997267998267999268000268001268002268003268004268005268006268007268008268009268010268011268012268013268014268015268016268017268018268019268020268021268022268023268024268025268026268027268028268029268030268031268032268033268034268035268036268037268038268039268040268041268042268043268044268045268046268047268048268049268050268051268052268053268054268055268056268057268058268059268060268061268062268063268064268065268066268067268068268069268070268071268072268073268074268075268076268077268078268079268080268081268082268083268084268085268086268087268088268089268090268091268092268093268094268095268096268097268098268099268100268101268102268103268104268105268106268107268108268109268110268111268112268113268114268115268116268117268118268119268120268121268122268123268124268125268126268127268128268129268130268131268132268133268134268135268136268137268138268139268140268141268142268143268144268145268146268147268148268149268150268151268152268153268154268155268156268157268158268159268160268161268162268163268164268165268166268167268168268169268170268171268172268173268174268175268176268177268178268179268180268181268182268183268184268185268186268187268188268189268190268191268192268193268194268195268196268197268198268199268200268201268202268203268204268205268206268207268208268209268210268211268212268213268214268215268216268217268218268219268220268221268222268223268224268225268226268227268228268229268230268231268232268233268234268235268236268237268238268239268240268241268242268243268244268245268246268247268248268249268250268251268252268253268254268255268256268257268258268259268260268261268262268263268264268265268266268267268268268269268270268271268272268273268274268275268276268277268278268279268280268281268282268283268284268285268286268287268288268289268290268291268292268293268294268295268296268297268298268299268300268301268302268303268304268305268306268307268308268309268310268311268312268313268314268315268316268317268318268319268320268321268322268323268324268325268326268327268328268329268330268331268332268333268334268335268336268337268338268339268340268341268342268343268344268345268346268347268348268349268350268351268352268353268354268355268356268357268358268359268360268361268362268363268364268365268366268367268368268369268370268371268372268373268374268375268376268377268378268379268380268381268382268383268384268385268386268387268388268389268390268391268392268393268394268395268396268397268398268399268400268401268402268403268404268405268406268407268408268409268410268411268412268413268414268415268416268417268418268419268420268421268422268423268424268425268426268427268428268429268430268431268432268433268434268435268436268437268438268439268440268441268442268443268444268445268446268447268448268449268450268451268452268453268454268455268456268457268458268459268460268461268462268463268464268465268466268467268468268469268470268471268472268473268474268475268476268477268478268479268480268481268482268483268484268485268486268487268488268489268490268491268492268493268494268495268496268497268498268499268500268501268502268503268504268505268506268507268508268509268510268511268512268513268514268515268516268517268518268519268520268521268522268523268524268525268526268527268528268529268530268531268532268533268534268535268536268537268538268539268540268541268542268543268544268545268546268547268548268549268550268551268552268553268554268555268556268557268558268559268560268561268562268563268564268565268566268567268568268569268570268571268572268573268574268575268576268577268578268579268580268581268582268583268584268585268586268587268588268589268590268591268592268593268594268595268596268597268598268599268600268601268602268603268604268605268606268607268608268609268610268611268612268613268614268615268616268617268618268619268620268621268622268623268624268625268626268627268628268629268630268631268632268633268634268635268636268637268638268639268640268641268642268643268644268645268646268647268648268649268650268651268652268653268654268655268656268657268658268659268660268661268662268663268664268665268666268667268668268669268670268671268672268673268674268675268676268677268678268679268680268681268682268683268684268685268686268687268688268689268690268691268692268693268694268695268696268697268698268699268700268701268702268703268704268705268706268707268708268709268710268711268712268713268714268715268716268717268718268719268720268721268722268723268724268725268726268727268728268729268730268731268732268733268734268735268736268737268738268739268740268741268742268743268744268745268746268747268748268749268750268751268752268753268754268755268756268757268758268759268760268761268762268763268764268765268766268767268768268769268770268771268772268773268774268775268776268777268778268779268780268781268782268783268784268785268786268787268788268789268790268791268792268793268794268795268796268797268798268799268800268801268802268803268804268805268806268807268808268809268810268811268812268813268814268815268816268817268818268819268820268821268822268823268824268825268826268827268828268829268830268831268832268833268834268835268836268837268838268839268840268841268842268843268844268845268846268847268848268849268850268851268852268853268854268855268856268857268858268859268860268861268862268863268864268865268866268867268868268869268870268871268872268873268874268875268876268877268878268879268880268881268882268883268884268885268886268887268888268889268890268891268892268893268894268895268896268897268898268899268900268901268902268903268904268905268906268907268908268909268910268911268912268913268914268915268916268917268918268919268920268921268922268923268924268925268926268927268928268929268930268931268932268933268934268935268936268937268938268939268940268941268942268943268944268945268946268947268948268949268950268951268952268953268954268955268956268957268958268959268960268961268962268963268964268965268966268967268968268969268970268971268972268973268974268975268976268977268978268979268980268981268982268983268984268985268986268987268988268989268990268991268992268993268994268995268996268997268998268999269000269001269002269003269004269005269006269007269008269009269010269011269012269013269014269015269016269017269018269019269020269021269022269023269024269025269026269027269028269029269030269031269032269033269034269035269036269037269038269039269040269041269042269043269044269045269046269047269048269049269050269051269052269053269054269055269056269057269058269059269060269061269062269063269064269065269066269067269068269069269070269071269072269073269074269075269076269077269078269079269080269081269082269083269084269085269086269087269088269089269090269091269092269093269094269095269096269097269098269099269100269101269102269103269104269105269106269107269108269109269110269111269112269113269114269115269116269117269118269119269120269121269122269123269124269125269126269127269128269129269130269131269132269133269134269135269136269137269138269139269140269141269142269143269144269145269146269147269148269149269150269151269152269153269154269155269156269157269158269159269160269161269162269163269164269165269166269167269168269169269170269171269172269173269174269175269176269177269178269179269180269181269182269183269184269185269186269187269188269189269190269191269192269193269194269195269196269197269198269199269200269201269202269203269204269205269206269207269208269209269210269211269212269213269214269215269216269217269218269219269220269221269222269223269224269225269226269227269228269229269230269231269232269233269234269235269236269237269238269239269240269241269242269243269244269245269246269247269248269249269250269251269252269253269254269255269256269257269258269259269260269261269262269263269264269265269266269267269268269269269270269271269272269273269274269275269276269277269278269279269280269281269282269283269284269285269286269287269288269289269290269291269292269293269294269295269296269297269298269299269300269301269302269303269304269305269306269307269308269309269310269311269312269313269314269315269316269317269318269319269320269321269322269323269324269325269326269327269328269329269330269331269332269333269334269335269336269337269338269339269340269341269342269343269344269345269346269347269348269349269350269351269352269353269354269355269356269357269358269359269360269361269362269363269364269365269366269367269368269369269370269371269372269373269374269375269376269377269378269379269380269381269382269383269384269385269386269387269388269389269390269391269392269393269394269395269396269397269398269399269400269401269402269403269404269405269406269407269408269409269410269411269412269413269414269415269416269417269418269419269420269421269422269423269424269425269426269427269428269429269430269431269432269433269434269435269436269437269438269439269440269441269442269443269444269445269446269447269448269449269450269451269452269453269454269455269456269457269458269459269460269461269462269463269464269465269466269467269468269469269470269471269472269473269474269475269476269477269478269479269480269481269482269483269484269485269486269487269488269489269490269491269492269493269494269495269496269497269498269499269500269501269502269503269504269505269506269507269508269509269510269511269512269513269514269515269516269517269518269519269520269521269522269523269524269525269526269527269528269529269530269531269532269533269534269535269536269537269538269539269540269541269542269543269544269545269546269547269548269549269550269551269552269553269554269555269556269557269558269559269560269561269562269563269564269565269566269567269568269569269570269571269572269573269574269575269576269577269578269579269580269581269582269583269584269585269586269587269588269589269590269591269592269593269594269595269596269597269598269599269600269601269602269603269604269605269606269607269608269609269610269611269612269613269614269615269616269617269618269619269620269621269622269623269624269625269626269627269628269629269630269631269632269633269634269635269636269637269638269639269640269641269642269643269644269645269646269647269648269649269650269651269652269653269654269655269656269657269658269659269660269661269662269663269664269665269666269667269668269669269670269671269672269673269674269675269676269677269678269679269680269681269682269683269684269685269686269687269688269689269690269691269692269693269694269695269696269697269698269699269700269701269702269703269704269705269706269707269708269709269710269711269712269713269714269715269716269717269718269719269720269721269722269723269724269725269726269727269728269729269730269731269732269733269734269735269736269737269738269739269740269741269742269743269744269745269746269747269748269749269750269751269752269753269754269755269756269757269758269759269760269761269762269763269764269765269766269767269768269769269770269771269772269773269774269775269776269777269778269779269780269781269782269783269784269785269786269787269788269789269790269791269792269793269794269795269796269797269798269799269800269801269802269803269804269805269806269807269808269809269810269811269812269813269814269815269816269817269818269819269820269821269822269823269824269825269826269827269828269829269830269831269832269833269834269835269836269837269838269839269840269841269842269843269844269845269846269847269848269849269850269851269852269853269854269855269856269857269858269859269860269861269862269863269864269865269866269867269868269869269870269871269872269873269874269875269876269877269878269879269880269881269882269883269884269885269886269887269888269889269890269891269892269893269894269895269896269897269898269899269900269901269902269903269904269905269906269907269908269909269910269911269912269913269914269915269916269917269918269919269920269921269922269923269924269925269926269927269928269929269930269931269932269933269934269935269936269937269938269939269940269941269942269943269944269945269946269947269948269949269950269951269952269953269954269955269956269957269958269959269960269961269962269963269964269965269966269967269968269969269970269971269972269973269974269975269976269977269978269979269980269981269982269983269984269985269986269987269988269989269990269991269992269993269994269995269996269997269998269999270000270001270002270003270004270005270006270007270008270009270010270011270012270013270014270015270016270017270018270019270020270021270022270023270024270025270026270027270028270029270030270031270032270033270034270035270036270037270038270039270040270041270042270043270044270045270046270047270048270049270050270051270052270053270054270055270056270057270058270059270060270061270062270063270064270065270066270067270068270069270070270071270072270073270074270075270076270077270078270079270080270081270082270083270084270085270086270087270088270089270090270091270092270093270094270095270096270097270098270099270100270101270102270103270104270105270106270107270108270109270110270111270112270113270114270115270116270117270118270119270120270121270122270123270124270125270126270127270128270129270130270131270132270133270134270135270136270137270138270139270140270141270142270143270144270145270146270147270148270149270150270151270152270153270154270155270156270157270158270159270160270161270162270163270164270165270166270167270168270169270170270171270172270173270174270175270176270177270178270179270180270181270182270183270184270185270186270187270188270189270190270191270192270193270194270195270196270197270198270199270200270201270202270203270204270205270206270207270208270209270210270211270212270213270214270215270216270217270218270219270220270221270222270223270224270225270226270227270228270229270230270231270232270233270234270235270236270237270238270239270240270241270242270243270244270245270246270247270248270249270250270251270252270253270254270255270256270257270258270259270260270261270262270263270264270265270266270267270268270269270270270271270272270273270274270275270276270277270278270279270280270281270282270283270284270285270286270287270288270289270290270291270292270293270294270295270296270297270298270299270300270301270302270303270304270305270306270307270308270309270310270311270312270313270314270315270316270317270318270319270320270321270322270323270324270325270326270327270328270329270330270331270332270333270334270335270336270337270338270339270340270341270342270343270344270345270346270347270348270349270350270351270352270353270354270355270356270357270358270359270360270361270362270363270364270365270366270367270368270369270370270371270372270373270374270375270376270377270378270379270380270381270382270383270384270385270386270387270388270389270390270391270392270393270394270395270396270397270398270399270400270401270402270403270404270405270406270407270408270409270410270411270412270413270414270415270416270417270418270419270420270421270422270423270424270425270426270427270428270429270430270431270432270433270434270435270436270437270438270439270440270441270442270443270444270445270446270447270448270449270450270451270452270453270454270455270456270457270458270459270460270461270462270463270464270465270466270467270468270469270470270471270472270473270474270475270476270477270478270479270480270481270482270483270484270485270486270487270488270489270490270491270492270493270494270495270496270497270498270499270500270501270502270503270504270505270506270507270508270509270510270511270512270513270514270515270516270517270518270519270520270521270522270523270524270525270526270527270528270529270530270531270532270533270534270535270536270537270538270539270540270541270542270543270544270545270546270547270548270549270550270551270552270553270554270555270556270557270558270559270560270561270562270563270564270565270566270567270568270569270570270571270572270573270574270575270576270577270578270579270580270581270582270583270584270585270586270587270588270589270590270591270592270593270594270595270596270597270598270599270600270601270602270603270604270605270606270607270608270609270610270611270612270613270614270615270616270617270618270619270620270621270622270623270624270625270626270627270628270629270630270631270632270633270634270635270636270637270638270639270640270641270642270643270644270645270646270647270648270649270650270651270652270653270654270655270656270657270658270659270660270661270662270663270664270665270666270667270668270669270670270671270672270673270674270675270676270677270678270679270680270681270682270683270684270685270686270687270688270689270690270691270692270693270694270695270696270697270698270699270700270701270702270703270704270705270706270707270708270709270710270711270712270713270714270715270716270717270718270719270720270721270722270723270724270725270726270727270728270729270730270731270732270733270734270735270736270737270738270739270740270741270742270743270744270745270746270747270748270749270750270751270752270753270754270755270756270757270758270759270760270761270762270763270764270765270766270767270768270769270770270771270772270773270774270775270776270777270778270779270780270781270782270783270784270785270786270787270788270789270790270791270792270793270794270795270796270797270798270799270800270801270802270803270804270805270806270807270808270809270810270811270812270813270814270815270816270817270818270819270820270821270822270823270824270825270826270827270828270829270830270831270832270833270834270835270836270837270838270839270840270841270842270843270844270845270846270847270848270849270850270851270852270853270854270855270856270857270858270859270860270861270862270863270864270865270866270867270868270869270870270871270872270873270874270875270876270877270878270879270880270881270882270883270884270885270886270887270888270889270890270891270892270893270894270895270896270897270898270899270900270901270902270903270904270905270906270907270908270909270910270911270912270913270914270915270916270917270918270919270920270921270922270923270924270925270926270927270928270929270930270931270932270933270934270935270936270937270938270939270940270941270942270943270944270945270946270947270948270949270950270951270952270953270954270955270956270957270958270959270960270961270962270963270964270965270966270967270968270969270970270971270972270973270974270975270976270977270978270979270980270981270982270983270984270985270986270987270988270989270990270991270992270993270994270995270996270997270998270999271000271001271002271003271004271005271006271007271008271009271010271011271012271013271014271015271016271017271018271019271020271021271022271023271024271025271026271027271028271029271030271031271032271033271034271035271036271037271038271039271040271041271042271043271044271045271046271047271048271049271050271051271052271053271054271055271056271057271058271059271060271061271062271063271064271065271066271067271068271069271070271071271072271073271074271075271076271077271078271079271080271081271082271083271084271085271086271087271088271089271090271091271092271093271094271095271096271097271098271099271100271101271102271103271104271105271106271107271108271109271110271111271112271113271114271115271116271117271118271119271120271121271122271123271124271125271126271127271128271129271130271131271132271133271134271135271136271137271138271139271140271141271142271143271144271145271146271147271148271149271150271151271152271153271154271155271156271157271158271159271160271161271162271163271164271165271166271167271168271169271170271171271172271173271174271175271176271177271178271179271180271181271182271183271184271185271186271187271188271189271190271191271192271193271194271195271196271197271198271199271200271201271202271203271204271205271206271207271208271209271210271211271212271213271214271215271216271217271218271219271220271221271222271223271224271225271226271227271228271229271230271231271232271233271234271235271236271237271238271239271240271241271242271243271244271245271246271247271248271249271250271251271252271253271254271255271256271257271258271259271260271261271262271263271264271265271266271267271268271269271270271271271272271273271274271275271276271277271278271279271280271281271282271283271284271285271286271287271288271289271290271291271292271293271294271295271296271297271298271299271300271301271302271303271304271305271306271307271308271309271310271311271312271313271314271315271316271317271318271319271320271321271322271323271324271325271326271327271328271329271330271331271332271333271334271335271336271337271338271339271340271341271342271343271344271345271346271347271348271349271350271351271352271353271354271355271356271357271358271359271360271361271362271363271364271365271366271367271368271369271370271371271372271373271374271375271376271377271378271379271380271381271382271383271384271385271386271387271388271389271390271391271392271393271394271395271396271397271398271399271400271401271402271403271404271405271406271407271408271409271410271411271412271413271414271415271416271417271418271419271420271421271422271423271424271425271426271427271428271429271430271431271432271433271434271435271436271437271438271439271440271441271442271443271444271445271446271447271448271449271450271451271452271453271454271455271456271457271458271459271460271461271462271463271464271465271466271467271468271469271470271471271472271473271474271475271476271477271478271479271480271481271482271483271484271485271486271487271488271489271490271491271492271493271494271495271496271497271498271499271500271501271502271503271504271505271506271507271508271509271510271511271512271513271514271515271516271517271518271519271520271521271522271523271524271525271526271527271528271529271530271531271532271533271534271535271536271537271538271539271540271541271542271543271544271545271546271547271548271549271550271551271552271553271554271555271556271557271558271559271560271561271562271563271564271565271566271567271568271569271570271571271572271573271574271575271576271577271578271579271580271581271582271583271584271585271586271587271588271589271590271591271592271593271594271595271596271597271598271599271600271601271602271603271604271605271606271607271608271609271610271611271612271613271614271615271616271617271618271619271620271621271622271623271624271625271626271627271628271629271630271631271632271633271634271635271636271637271638271639271640271641271642271643271644271645271646271647271648271649271650271651271652271653271654271655271656271657271658271659271660271661271662271663271664271665271666271667271668271669271670271671271672271673271674271675271676271677271678271679271680271681271682271683271684271685271686271687271688271689271690271691271692271693271694271695271696271697271698271699271700271701271702271703271704271705271706271707271708271709271710271711271712271713271714271715271716271717271718271719271720271721271722271723271724271725271726271727271728271729271730271731271732271733271734271735271736271737271738271739271740271741271742271743271744271745271746271747271748271749271750271751271752271753271754271755271756271757271758271759271760271761271762271763271764271765271766271767271768271769271770271771271772271773271774271775271776271777271778271779271780271781271782271783271784271785271786271787271788271789271790271791271792271793271794271795271796271797271798271799271800271801271802271803271804271805271806271807271808271809271810271811271812271813271814271815271816271817271818271819271820271821271822271823271824271825271826271827271828271829271830271831271832271833271834271835271836271837271838271839271840271841271842271843271844271845271846271847271848271849271850271851271852271853271854271855271856271857271858271859271860271861271862271863271864271865271866271867271868271869271870271871271872271873271874271875271876271877271878271879271880271881271882271883271884271885271886271887271888271889271890271891271892271893271894271895271896271897271898271899271900271901271902271903271904271905271906271907271908271909271910271911271912271913271914271915271916271917271918271919271920271921271922271923271924271925271926271927271928271929271930271931271932271933271934271935271936271937271938271939271940271941271942271943271944271945271946271947271948271949271950271951271952271953271954271955271956271957271958271959271960271961271962271963271964271965271966271967271968271969271970271971271972271973271974271975271976271977271978271979271980271981271982271983271984271985271986271987271988271989271990271991271992271993271994271995271996271997271998271999272000272001272002272003272004272005272006272007272008272009272010272011272012272013272014272015272016272017272018272019272020272021272022272023272024272025272026272027272028272029272030272031272032272033272034272035272036272037272038272039272040272041272042272043272044272045272046272047272048272049272050272051272052272053272054272055272056272057272058272059272060272061272062272063272064272065272066272067272068272069272070272071272072272073272074272075272076272077272078272079272080272081272082272083272084272085272086272087272088272089272090272091272092272093272094272095272096272097272098272099272100272101272102272103272104272105272106272107272108272109272110272111272112272113272114272115272116272117272118272119272120272121272122272123272124272125272126272127272128272129272130272131272132272133272134272135272136272137272138272139272140272141272142272143272144272145272146272147272148272149272150272151272152272153272154272155272156272157272158272159272160272161272162272163272164272165272166272167272168272169272170272171272172272173272174272175272176272177272178272179272180272181272182272183272184272185272186272187272188272189272190272191272192272193272194272195272196272197272198272199272200272201272202272203272204272205272206272207272208272209272210272211272212272213272214272215272216272217272218272219272220272221272222272223272224272225272226272227272228272229272230272231272232272233272234272235272236272237272238272239272240272241272242272243272244272245272246272247272248272249272250272251272252272253272254272255272256272257272258272259272260272261272262272263272264272265272266272267272268272269272270272271272272272273272274272275272276272277272278272279272280272281272282272283272284272285272286272287272288272289272290272291272292272293272294272295272296272297272298272299272300272301272302272303272304272305272306272307272308272309272310272311272312272313272314272315272316272317272318272319272320272321272322272323272324272325272326272327272328272329272330272331272332272333272334272335272336272337272338272339272340272341272342272343272344272345272346272347272348272349272350272351272352272353272354272355272356272357272358272359272360272361272362272363272364272365272366272367272368272369272370272371272372272373272374272375272376272377272378272379272380272381272382272383272384272385272386272387272388272389272390272391272392272393272394272395272396272397272398272399272400272401272402272403272404272405272406272407272408272409272410272411272412272413272414272415272416272417272418272419272420272421272422272423272424272425272426272427272428272429272430272431272432272433272434272435272436272437272438272439272440272441272442272443272444272445272446272447272448272449272450272451272452272453272454272455272456272457272458272459272460272461272462272463272464272465272466272467272468272469272470272471272472272473272474272475272476272477272478272479272480272481272482272483272484272485272486272487272488272489272490272491272492272493272494272495272496272497272498272499272500272501272502272503272504272505272506272507272508272509272510272511272512272513272514272515272516272517272518272519272520272521272522272523272524272525272526272527272528272529272530272531272532272533272534272535272536272537272538272539272540272541272542272543272544272545272546272547272548272549272550272551272552272553272554272555272556272557272558272559272560272561272562272563272564272565272566272567272568272569272570272571272572272573272574272575272576272577272578272579272580272581272582272583272584272585272586272587272588272589272590272591272592272593272594272595272596272597272598272599272600272601272602272603272604272605272606272607272608272609272610272611272612272613272614272615272616272617272618272619272620272621272622272623272624272625272626272627272628272629272630272631272632272633272634272635272636272637272638272639272640272641272642272643272644272645272646272647272648272649272650272651272652272653272654272655272656272657272658272659272660272661272662272663272664272665272666272667272668272669272670272671272672272673272674272675272676272677272678272679272680272681272682272683272684272685272686272687272688272689272690272691272692272693272694272695272696272697272698272699272700272701272702272703272704272705272706272707272708272709272710272711272712272713272714272715272716272717272718272719272720272721272722272723272724272725272726272727272728272729272730272731272732272733272734272735272736272737272738272739272740272741272742272743272744272745272746272747272748272749272750272751272752272753272754272755272756272757272758272759272760272761272762272763272764272765272766272767272768272769272770272771272772272773272774272775272776272777272778272779272780272781272782272783272784272785272786272787272788272789272790272791272792272793272794272795272796272797272798272799272800272801272802272803272804272805272806272807272808272809272810272811272812272813272814272815272816272817272818272819272820272821272822272823272824272825272826272827272828272829272830272831272832272833272834272835272836272837272838272839272840272841272842272843272844272845272846272847272848272849272850272851272852272853272854272855272856272857272858272859272860272861272862272863272864272865272866272867272868272869272870272871272872272873272874272875272876272877272878272879272880272881272882272883272884272885272886272887272888272889272890272891272892272893272894272895272896272897272898272899272900272901272902272903272904272905272906272907272908272909272910272911272912272913272914272915272916272917272918272919272920272921272922272923272924272925272926272927272928272929272930272931272932272933272934272935272936272937272938272939272940272941272942272943272944272945272946272947272948272949272950272951272952272953272954272955272956272957272958272959272960272961272962272963272964272965272966272967272968272969272970272971272972272973272974272975272976272977272978272979272980272981272982272983272984272985272986272987272988272989272990272991272992272993272994272995272996272997272998272999273000273001273002273003273004273005273006273007273008273009273010273011273012273013273014273015273016273017273018273019273020273021273022273023273024273025273026273027273028273029273030273031273032273033273034273035273036273037273038273039273040273041273042273043273044273045273046273047273048273049273050273051273052273053273054273055273056273057273058273059273060273061273062273063273064273065273066273067273068273069273070273071273072273073273074273075273076273077273078273079273080273081273082273083273084273085273086273087273088273089273090273091273092273093273094273095273096273097273098273099273100273101273102273103273104273105273106273107273108273109273110273111273112273113273114273115273116273117273118273119273120273121273122273123273124273125273126273127273128273129273130273131273132273133273134273135273136273137273138273139273140273141273142273143273144273145273146273147273148273149273150273151273152273153273154273155273156273157273158273159273160273161273162273163273164273165273166273167273168273169273170273171273172273173273174273175273176273177273178273179273180273181273182273183273184273185273186273187273188273189273190273191273192273193273194273195273196273197273198273199273200273201273202273203273204273205273206273207273208273209273210273211273212273213273214273215273216273217273218273219273220273221273222273223273224273225273226273227273228273229273230273231273232273233273234273235273236273237273238273239273240273241273242273243273244273245273246273247273248273249273250273251273252273253273254273255273256273257273258273259273260273261273262273263273264273265273266273267273268273269273270273271273272273273273274273275273276273277273278273279273280273281273282273283273284273285273286273287273288273289273290273291273292273293273294273295273296273297273298273299273300273301273302273303273304273305273306273307273308273309273310273311273312273313273314273315273316273317273318273319273320273321273322273323273324273325273326273327273328273329273330273331273332273333273334273335273336273337273338273339273340273341273342273343273344273345273346273347273348273349273350273351273352273353273354273355273356273357273358273359273360273361273362273363273364273365273366273367273368273369273370273371273372273373273374273375273376273377273378273379273380273381273382273383273384273385273386273387273388273389273390273391273392273393273394273395273396273397273398273399273400273401273402273403273404273405273406273407273408273409273410273411273412273413273414273415273416273417273418273419273420273421273422273423273424273425273426273427273428273429273430273431273432273433273434273435273436273437273438273439273440273441273442273443273444273445273446273447273448273449273450273451273452273453273454273455273456273457273458273459273460273461273462273463273464273465273466273467273468273469273470273471273472273473273474273475273476273477273478273479273480273481273482273483273484273485273486273487273488273489273490273491273492273493273494273495273496273497273498273499273500273501273502273503273504273505273506273507273508273509273510273511273512273513273514273515273516273517273518273519273520273521273522273523273524273525273526273527273528273529273530273531273532273533273534273535273536273537273538273539273540273541273542273543273544273545273546273547273548273549273550273551273552273553273554273555273556273557273558273559273560273561273562273563273564273565273566273567273568273569273570273571273572273573273574273575273576273577273578273579273580273581273582273583273584273585273586273587273588273589273590273591273592273593273594273595273596273597273598273599273600273601273602273603273604273605273606273607273608273609273610273611273612273613273614273615273616273617273618273619273620273621273622273623273624273625273626273627273628273629273630273631273632273633273634273635273636273637273638273639273640273641273642273643273644273645273646273647273648273649273650273651273652273653273654273655273656273657273658273659273660273661273662273663273664273665273666273667273668273669273670273671273672273673273674273675273676273677273678273679273680273681273682273683273684273685273686273687273688273689273690273691273692273693273694273695273696273697273698273699273700273701273702273703273704273705273706273707273708273709273710273711273712273713273714273715273716273717273718273719273720273721273722273723273724273725273726273727273728273729273730273731273732273733273734273735273736273737273738273739273740273741273742273743273744273745273746273747273748273749273750273751273752273753273754273755273756273757273758273759273760273761273762273763273764273765273766273767273768273769273770273771273772273773273774273775273776273777273778273779273780273781273782273783273784273785273786273787273788273789273790273791273792273793273794273795273796273797273798273799273800273801273802273803273804273805273806273807273808273809273810273811273812273813273814273815273816273817273818273819273820273821273822273823273824273825273826273827273828273829273830273831273832273833273834273835273836273837273838273839273840273841273842273843273844273845273846273847273848273849273850273851273852273853273854273855273856273857273858273859273860273861273862273863273864273865273866273867273868273869273870273871273872273873273874273875273876273877273878273879273880273881273882273883273884273885273886273887273888273889273890273891273892273893273894273895273896273897273898273899273900273901273902273903273904273905273906273907273908273909273910273911273912273913273914273915273916273917273918273919273920273921273922273923273924273925273926273927273928273929273930273931273932273933273934273935273936273937273938273939273940273941273942273943273944273945273946273947273948273949273950273951273952273953273954273955273956273957273958273959273960273961273962273963273964273965273966273967273968273969273970273971273972273973273974273975273976273977273978273979273980273981273982273983273984273985273986273987273988273989273990273991273992273993273994273995273996273997273998273999274000274001274002274003274004274005274006274007274008274009274010274011274012274013274014274015274016274017274018274019274020274021274022274023274024274025274026274027274028274029274030274031274032274033274034274035274036274037274038274039274040274041274042274043274044274045274046274047274048274049274050274051274052274053274054274055274056274057274058274059274060274061274062274063274064274065274066274067274068274069274070274071274072274073274074274075274076274077274078274079274080274081274082274083274084274085274086274087274088274089274090274091274092274093274094274095274096274097274098274099274100274101274102274103274104274105274106274107274108274109274110274111274112274113274114274115274116274117274118274119274120274121274122274123274124274125274126274127274128274129274130274131274132274133274134274135274136274137274138274139274140274141274142274143274144274145274146274147274148274149274150274151274152274153274154274155274156274157274158274159274160274161274162274163274164274165274166274167274168274169274170274171274172274173274174274175274176274177274178274179274180274181274182274183274184274185274186274187274188274189274190274191274192274193274194274195274196274197274198274199274200274201274202274203274204274205274206274207274208274209274210274211274212274213274214274215274216274217274218274219274220274221274222274223274224274225274226274227274228274229274230274231274232274233274234274235274236274237274238274239274240274241274242274243274244274245274246274247274248274249274250274251274252274253274254274255274256274257274258274259274260274261274262274263274264274265274266274267274268274269274270274271274272274273274274274275274276274277274278274279274280274281274282274283274284274285274286274287274288274289274290274291274292274293274294274295274296274297274298274299274300274301274302274303274304274305274306274307274308274309274310274311274312274313274314274315274316274317274318274319274320274321274322274323274324274325274326274327274328274329274330274331274332274333274334274335274336274337274338274339274340274341274342274343274344274345274346274347274348274349274350274351274352274353274354274355274356274357274358274359274360274361274362274363274364274365274366274367274368274369274370274371274372274373274374274375274376274377274378274379274380274381274382274383274384274385274386274387274388274389274390274391274392274393274394274395274396274397274398274399274400274401274402274403274404274405274406274407274408274409274410274411274412274413274414274415274416274417274418274419274420274421274422274423274424274425274426274427274428274429274430274431274432274433274434274435274436274437274438274439274440274441274442274443274444274445274446274447274448274449274450274451274452274453274454274455274456274457274458274459274460274461274462274463274464274465274466274467274468274469274470274471274472274473274474274475274476274477274478274479274480274481274482274483274484274485274486274487274488274489274490274491274492274493274494274495274496274497274498274499274500274501274502274503274504274505274506274507274508274509274510274511274512274513274514274515274516274517274518274519274520274521274522274523274524274525274526274527274528274529274530274531274532274533274534274535274536274537274538274539274540274541274542274543274544274545274546274547274548274549274550274551274552274553274554274555274556274557274558274559274560274561274562274563274564274565274566274567274568274569274570274571274572274573274574274575274576274577274578274579274580274581274582274583274584274585274586274587274588274589274590274591274592274593274594274595274596274597274598274599274600274601274602274603274604274605274606274607274608274609274610274611274612274613274614274615274616274617274618274619274620274621274622274623274624274625274626274627274628274629274630274631274632274633274634274635274636274637274638274639274640274641274642274643274644274645274646274647274648274649274650274651274652274653274654274655274656274657274658274659274660274661274662274663274664274665274666274667274668274669274670274671274672274673274674274675274676274677274678274679274680274681274682274683274684274685274686274687274688274689274690274691274692274693274694274695274696274697274698274699274700274701274702274703274704274705274706274707274708274709274710274711274712274713274714274715274716274717274718274719274720274721274722274723274724274725274726274727274728274729274730274731274732274733274734274735274736274737274738274739274740274741274742274743274744274745274746274747274748274749274750274751274752274753274754274755274756274757274758274759274760274761274762274763274764274765274766274767274768274769274770274771274772274773274774274775274776274777274778274779274780274781
  1. .\" Man page generated from reStructuredText.
  2. .
  3. .TH "SALT" "7" "May 21, 2020" "3001" "Salt"
  4. .SH NAME
  5. salt \- Salt Documentation
  6. .
  7. .nr rst2man-indent-level 0
  8. .
  9. .de1 rstReportMargin
  10. \\$1 \\n[an-margin]
  11. level \\n[rst2man-indent-level]
  12. level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
  13. -
  14. \\n[rst2man-indent0]
  15. \\n[rst2man-indent1]
  16. \\n[rst2man-indent2]
  17. ..
  18. .de1 INDENT
  19. .\" .rstReportMargin pre:
  20. . RS \\$1
  21. . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
  22. . nr rst2man-indent-level +1
  23. .\" .rstReportMargin post:
  24. ..
  25. .de UNINDENT
  26. . RE
  27. .\" indent \\n[an-margin]
  28. .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
  29. .nr rst2man-indent-level -1
  30. .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
  31. .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
  32. ..
  33. .SH INTRODUCTION TO SALT
  34. We’re not just talking about NaCl..SS The 30 second summary
  35. .sp
  36. Salt is:
  37. .INDENT 0.0
  38. .IP \(bu 2
  39. \fBA configuration management system.\fP Salt is capable of maintaining remote
  40. nodes in defined states. For example, it can ensure that specific packages are
  41. installed and that specific services are running.
  42. .IP \(bu 2
  43. \fBA distributed remote execution system used to execute commands and
  44. query data on remote nodes.\fP Salt can query and execute commands either on
  45. individual nodes or by using an arbitrary selection criteria.
  46. .UNINDENT
  47. .sp
  48. It was developed in order to bring the best solutions found in the
  49. world of remote execution together and make them better, faster, and more
  50. malleable. Salt accomplishes this through its ability to handle large loads of
  51. information, and not just dozens but hundreds and even thousands of individual
  52. servers quickly through a simple and manageable interface.
  53. .SS Simplicity
  54. .sp
  55. Providing versatility between massive scale deployments and smaller systems may seem
  56. daunting, but Salt is very simple to set up and maintain, regardless of the
  57. size of the project. The architecture of Salt is designed to work with any
  58. number of servers, from a handful of local network systems to international
  59. deployments across different data centers. The topology is a simple
  60. server/client model with the needed functionality built into a single set of
  61. daemons. While the default configuration will work with little to no
  62. modification, Salt can be fine tuned to meet specific needs.
  63. .SS Parallel execution
  64. .sp
  65. The core functions of Salt:
  66. .INDENT 0.0
  67. .IP \(bu 2
  68. enable commands to remote systems to be called in parallel rather than serially
  69. .IP \(bu 2
  70. use a secure and encrypted protocol
  71. .IP \(bu 2
  72. use the smallest and fastest network payloads possible
  73. .IP \(bu 2
  74. provide a simple programming interface
  75. .UNINDENT
  76. .sp
  77. Salt also introduces more granular controls to the realm of remote
  78. execution, allowing systems to be targeted not just by hostname, but
  79. also by system properties.
  80. .SS Builds on proven technology
  81. .sp
  82. Salt takes advantage of a number of technologies and techniques. The
  83. networking layer is built with the excellent \fI\%ZeroMQ\fP networking
  84. library, so the Salt daemon includes a viable and transparent AMQ
  85. broker. Salt uses public keys for authentication with the master
  86. daemon, then uses faster \fI\%AES\fP encryption for payload communication;
  87. authentication and encryption are integral to Salt. Salt takes
  88. advantage of communication via \fI\%msgpack\fP, enabling fast and light
  89. network traffic.
  90. .SS Python client interface
  91. .sp
  92. In order to allow for simple expansion, Salt execution routines can be written
  93. as plain Python modules. The data collected from Salt executions can be sent
  94. back to the master server, or to any arbitrary program. Salt can be called from
  95. a simple Python API, or from the command line, so that Salt can be used to
  96. execute one\-off commands as well as operate as an integral part of a larger
  97. application.
  98. .SS Fast, flexible, scalable
  99. .sp
  100. The result is a system that can execute commands at high speed on
  101. target server groups ranging from one to very many servers. Salt is
  102. very fast, easy to set up, amazingly malleable and provides a single
  103. remote execution architecture that can manage the diverse
  104. requirements of any number of servers. The Salt infrastructure
  105. brings together the best of the remote execution world, amplifies its
  106. capabilities and expands its range, resulting in a system that is as
  107. versatile as it is practical, suitable for any network.
  108. .SS Open
  109. .sp
  110. Salt is developed under the \fI\%Apache 2.0 license\fP, and can be used for
  111. open and proprietary projects. Please submit your expansions back to
  112. the Salt project so that we can all benefit together as Salt grows.
  113. Please feel free to sprinkle Salt around your systems and let the
  114. deliciousness come forth.
  115. .SS Salt Community
  116. .sp
  117. Join the Salt!
  118. .sp
  119. There are many ways to participate in and communicate with the Salt community.
  120. .sp
  121. Salt has an active IRC channel and a mailing list.
  122. .SS Mailing List
  123. .sp
  124. Join the \fI\%salt\-users mailing list\fP\&. It is the best place to ask questions
  125. about Salt and see whats going on with Salt development! The Salt mailing list
  126. is hosted by Google Groups. It is open to new members.
  127. .sp
  128. Additionally, all users of Salt should be subscribed to the Announcements mailing
  129. list which contains important updates about Salt, such as new releaes and
  130. security\-related announcements. This list is low\-traffic.
  131. .SS IRC
  132. .sp
  133. The \fB#salt\fP IRC channel is hosted on the popular \fI\%Freenode\fP network. You
  134. can use the \fI\%Freenode webchat client\fP right from your browser.
  135. .sp
  136. \fI\%Logs of the IRC channel activity\fP are being collected courtesy of Moritz Lenz.
  137. .sp
  138. If you wish to discuss the development of Salt itself join us in
  139. \fB#salt\-devel\fP\&.
  140. .SS Follow on Github
  141. .sp
  142. The Salt code is developed via Github. Follow Salt for constant updates on what
  143. is happening in Salt development:
  144. .sp
  145. \fI\%https://github.com/saltstack/salt\fP
  146. .sp
  147. Long\-term planning and strategic decisions are handled via Salt Enhancement Proposals
  148. and can be found on GitHub.
  149. .SS Blogs
  150. .sp
  151. SaltStack Inc. keeps a \fI\%blog\fP with recent news and advancements:
  152. .sp
  153. \fI\%http://www.saltstack.com/blog/\fP
  154. .SS Example Salt States
  155. .sp
  156. The official \fBsalt\-states\fP repository is:
  157. \fI\%https://github.com/SS\-archive/salt\-states\fP
  158. .sp
  159. A few examples of salt states from the community:
  160. .INDENT 0.0
  161. .IP \(bu 2
  162. \fI\%https://github.com/blast\-hardcheese/blast\-salt\-states\fP
  163. .IP \(bu 2
  164. \fI\%https://github.com/kevingranade/kevingranade\-salt\-state\fP
  165. .IP \(bu 2
  166. \fI\%https://github.com/uggedal/states\fP
  167. .IP \(bu 2
  168. \fI\%https://github.com/mattmcclean/salt\-openstack/tree/master/salt\fP
  169. .IP \(bu 2
  170. \fI\%https://github.com/rentalita/ubuntu\-setup/\fP
  171. .IP \(bu 2
  172. \fI\%https://github.com/brutasse/states\fP
  173. .IP \(bu 2
  174. \fI\%https://github.com/bclermont/states\fP
  175. .IP \(bu 2
  176. \fI\%https://github.com/pcrews/salt\-data\fP
  177. .UNINDENT
  178. .SS Follow on Open Hub
  179. .sp
  180. \fI\%https://www.openhub.net/p/salt\fP
  181. .SS Other community links
  182. .INDENT 0.0
  183. .IP \(bu 2
  184. \fI\%Salt Stack Inc.\fP
  185. .IP \(bu 2
  186. \fI\%Subreddit\fP
  187. .IP \(bu 2
  188. \fI\%YouTube\fP
  189. .IP \(bu 2
  190. \fI\%Facebook\fP
  191. .IP \(bu 2
  192. \fI\%Twitter\fP
  193. .IP \(bu 2
  194. \fI\%Wikipedia page\fP
  195. .IP \(bu 2
  196. \fI\%Stack Overflow\fP
  197. .UNINDENT
  198. .SS Hack the Source
  199. .sp
  200. If you want to get involved with the development of source code or the
  201. documentation efforts, please review the contributing documentation!
  202. .SH INSTALLATION
  203. .sp
  204. This section contains instructions to install Salt. If you are setting up your
  205. environment for the first time, you should install a Salt master on
  206. a dedicated management server or VM, and then install a Salt minion on each
  207. system that you want to manage using Salt. For now you don\(aqt need to worry
  208. about your architecture, you can easily add
  209. components and modify your configuration later without needing to reinstall
  210. anything.
  211. .sp
  212. The general installation process is as follows:
  213. .INDENT 0.0
  214. .IP 1. 3
  215. Install a Salt master using the instructions for your platform or by running
  216. the Salt bootstrap script. If you use the bootstrap script, be sure to
  217. include the \fB\-M\fP option to install the Salt master.
  218. .IP 2. 3
  219. Make sure that your Salt minions can find the Salt master\&.
  220. .IP 3. 3
  221. Install the Salt minion on each system that you want to manage.
  222. .IP 4. 3
  223. Accept the Salt minion keys after the Salt minion
  224. connects.
  225. .UNINDENT
  226. .sp
  227. After this, you should be able to run a simple command and receive salt version returns from
  228. all connected Salt minions.
  229. .INDENT 0.0
  230. .INDENT 3.5
  231. .sp
  232. .nf
  233. .ft C
  234. salt \(aq*\(aq test.version
  235. .ft P
  236. .fi
  237. .UNINDENT
  238. .UNINDENT
  239. .SS Quick Install
  240. .sp
  241. On most distributions, you can set up a \fBSalt Minion\fP with the
  242. Salt bootstrap\&.
  243. .SS Platform\-specific Installation Instructions
  244. .sp
  245. These guides go into detail how to install Salt on a given platform.
  246. .SS Arch Linux
  247. .SS Installation
  248. .sp
  249. Salt (stable) is currently available via the Arch Linux Official repositories.
  250. There are currently \-git packages available in the Arch User repositories (AUR)
  251. as well.
  252. .SS Stable Release
  253. .sp
  254. Install Salt stable releases from the Arch Linux Official repositories as follows:
  255. .INDENT 0.0
  256. .INDENT 3.5
  257. .sp
  258. .nf
  259. .ft C
  260. pacman \-S salt
  261. .ft P
  262. .fi
  263. .UNINDENT
  264. .UNINDENT
  265. .SS Tracking develop
  266. .sp
  267. To install the bleeding edge version of Salt (\fBmay include bugs!\fP),
  268. use the \-git package. Installing the \-git package as follows:
  269. .INDENT 0.0
  270. .INDENT 3.5
  271. .sp
  272. .nf
  273. .ft C
  274. wget https://aur.archlinux.org/packages/sa/salt\-git/salt\-git.tar.gz
  275. tar xf salt\-git.tar.gz
  276. cd salt\-git/
  277. makepkg \-is
  278. .ft P
  279. .fi
  280. .UNINDENT
  281. .UNINDENT
  282. .sp
  283. \fBNOTE:\fP
  284. .INDENT 0.0
  285. .INDENT 3.5
  286. yaourt
  287. .sp
  288. If a tool such as \fI\%Yaourt\fP is used, the dependencies will be
  289. gathered and built automatically.
  290. .sp
  291. The command to install salt using the yaourt tool is:
  292. .INDENT 0.0
  293. .INDENT 3.5
  294. .sp
  295. .nf
  296. .ft C
  297. yaourt salt\-git
  298. .ft P
  299. .fi
  300. .UNINDENT
  301. .UNINDENT
  302. .UNINDENT
  303. .UNINDENT
  304. .SS Post\-installation tasks
  305. .sp
  306. \fBsystemd\fP
  307. .sp
  308. Activate the Salt Master and/or Minion via \fBsystemctl\fP as follows:
  309. .INDENT 0.0
  310. .INDENT 3.5
  311. .sp
  312. .nf
  313. .ft C
  314. systemctl enable salt\-master.service
  315. systemctl enable salt\-minion.service
  316. .ft P
  317. .fi
  318. .UNINDENT
  319. .UNINDENT
  320. .sp
  321. \fBStart the Master\fP
  322. .sp
  323. Once you\(aqve completed all of these steps you\(aqre ready to start your Salt
  324. Master. You should be able to start your Salt Master now using the command
  325. seen here:
  326. .INDENT 0.0
  327. .INDENT 3.5
  328. .sp
  329. .nf
  330. .ft C
  331. systemctl start salt\-master
  332. .ft P
  333. .fi
  334. .UNINDENT
  335. .UNINDENT
  336. .sp
  337. Now go to the Configuring Salt page.
  338. .SS Debian GNU/Linux / Raspbian
  339. .sp
  340. Debian GNU/Linux distribution and some derivatives such as Raspbian already
  341. have included Salt packages to their repositories. However, current stable
  342. Debian release contains old outdated Salt releases. It is
  343. recommended to use SaltStack repository for Debian as described
  344. \fI\%below\fP\&.
  345. .sp
  346. Installation from official Debian and Raspbian repositories is described
  347. \fI\%here\fP\&.
  348. .SS Installation from the Official SaltStack Repository
  349. .sp
  350. Packages for Debian 9 (Stretch) and Debian 8 (Jessie) are available in the
  351. Official SaltStack repository.
  352. .sp
  353. Instructions are at \fI\%https://repo.saltstack.com/#debian\fP\&.
  354. .sp
  355. \fBNOTE:\fP
  356. .INDENT 0.0
  357. .INDENT 3.5
  358. Regular security support for Debian 7 ended on April 25th 2016. As a result,
  359. 2016.3.1 and 2015.8.10 will be the last Salt releases for which Debian
  360. 7 packages are created.
  361. .UNINDENT
  362. .UNINDENT
  363. .SS Installation from the Debian / Raspbian Official Repository
  364. .sp
  365. The Debian distributions contain mostly old Salt packages
  366. built by the Debian Salt Team. You can install Salt
  367. components directly from Debian but it is recommended to
  368. use the instructions above for the packages from the official
  369. Salt repository.
  370. .sp
  371. On Jessie there is an option to install Salt minion from Stretch with
  372. \fIpython\-tornado\fP dependency from \fIjessie\-backports\fP repositories.
  373. .sp
  374. To install fresh release of Salt minion on Jessie:
  375. .INDENT 0.0
  376. .IP 1. 3
  377. Add \fIjessie\-backports\fP and \fIstretch\fP repositories:
  378. .sp
  379. \fBDebian\fP:
  380. .INDENT 3.0
  381. .INDENT 3.5
  382. .sp
  383. .nf
  384. .ft C
  385. echo \(aqdeb http://httpredir.debian.org/debian jessie\-backports main\(aq >> /etc/apt/sources.list
  386. echo \(aqdeb http://httpredir.debian.org/debian stretch main\(aq >> /etc/apt/sources.list
  387. .ft P
  388. .fi
  389. .UNINDENT
  390. .UNINDENT
  391. .sp
  392. \fBRaspbian\fP:
  393. .INDENT 3.0
  394. .INDENT 3.5
  395. .sp
  396. .nf
  397. .ft C
  398. echo \(aqdeb http://archive.raspbian.org/raspbian/ stretch main\(aq >> /etc/apt/sources.list
  399. .ft P
  400. .fi
  401. .UNINDENT
  402. .UNINDENT
  403. .IP 2. 3
  404. Make Jessie a default release:
  405. .INDENT 3.0
  406. .INDENT 3.5
  407. .sp
  408. .nf
  409. .ft C
  410. echo \(aqAPT::Default\-Release "jessie";\(aq > /etc/apt/apt.conf.d/10apt
  411. .ft P
  412. .fi
  413. .UNINDENT
  414. .UNINDENT
  415. .IP 3. 3
  416. Install Salt dependencies:
  417. .sp
  418. \fBDebian\fP:
  419. .INDENT 3.0
  420. .INDENT 3.5
  421. .sp
  422. .nf
  423. .ft C
  424. apt\-get update
  425. apt\-get install python\-zmq python\-systemd/jessie\-backports python\-tornado/jessie\-backports salt\-common/stretch
  426. .ft P
  427. .fi
  428. .UNINDENT
  429. .UNINDENT
  430. .sp
  431. \fBRaspbian\fP:
  432. .INDENT 3.0
  433. .INDENT 3.5
  434. .sp
  435. .nf
  436. .ft C
  437. apt\-get update
  438. apt\-get install python\-zmq python\-tornado/stretch salt\-common/stretch
  439. .ft P
  440. .fi
  441. .UNINDENT
  442. .UNINDENT
  443. .IP 4. 3
  444. Install Salt minion package from Latest Debian Release:
  445. .INDENT 3.0
  446. .INDENT 3.5
  447. .sp
  448. .nf
  449. .ft C
  450. apt\-get install salt\-minion/stretch
  451. .ft P
  452. .fi
  453. .UNINDENT
  454. .UNINDENT
  455. .UNINDENT
  456. .SS Install Packages
  457. .sp
  458. Install the Salt master, minion or other packages from the repository with
  459. the \fIapt\-get\fP command. These examples each install one of Salt components, but
  460. more than one package name may be given at a time:
  461. .INDENT 0.0
  462. .IP \(bu 2
  463. \fBapt\-get install salt\-api\fP
  464. .IP \(bu 2
  465. \fBapt\-get install salt\-cloud\fP
  466. .IP \(bu 2
  467. \fBapt\-get install salt\-master\fP
  468. .IP \(bu 2
  469. \fBapt\-get install salt\-minion\fP
  470. .IP \(bu 2
  471. \fBapt\-get install salt\-ssh\fP
  472. .IP \(bu 2
  473. \fBapt\-get install salt\-syndic\fP
  474. .UNINDENT
  475. .SS Post\-installation tasks
  476. .sp
  477. Now, go to the Configuring Salt page.
  478. .SS Arista EOS Salt minion installation guide
  479. .sp
  480. The Salt minion for Arista EOS is distributed as a SWIX extension and can be installed directly on the switch. The EOS network operating system is based on old Fedora distributions and the installation of the \fBsalt\-minion\fP requires backports. This SWIX extension contains the necessary backports, together with the Salt basecode.
  481. .sp
  482. \fBNOTE:\fP
  483. .INDENT 0.0
  484. .INDENT 3.5
  485. This SWIX extension has been tested on Arista DCS\-7280SE\-68\-R, running EOS 4.17.5M and vEOS 4.18.3F.
  486. .UNINDENT
  487. .UNINDENT
  488. .SS Important Notes
  489. .sp
  490. This package is in beta, make sure to test it carefully before running it in production.
  491. .sp
  492. If confirmed working correctly, please report and add a note on this page with the platform model and EOS version.
  493. .sp
  494. If you want to uninstall this package, please refer to the \fI\%uninstalling\fP section.
  495. .SS Installation from the Official SaltStack Repository
  496. .sp
  497. Download the swix package and save it to flash.
  498. .INDENT 0.0
  499. .INDENT 3.5
  500. .sp
  501. .nf
  502. .ft C
  503. veos#copy https://salt\-eos.netops.life/salt\-eos\-latest.swix flash:
  504. veos#copy https://salt\-eos.netops.life/startup.sh flash:
  505. .ft P
  506. .fi
  507. .UNINDENT
  508. .UNINDENT
  509. .SS Install the Extension
  510. .sp
  511. Copy the Salt package to extension
  512. .INDENT 0.0
  513. .INDENT 3.5
  514. .sp
  515. .nf
  516. .ft C
  517. veos#copy flash:salt\-eos\-latest.swix extension:
  518. .ft P
  519. .fi
  520. .UNINDENT
  521. .UNINDENT
  522. .sp
  523. Install the SWIX
  524. .INDENT 0.0
  525. .INDENT 3.5
  526. .sp
  527. .nf
  528. .ft C
  529. veos#extension salt\-eos\-latest.swix force
  530. .ft P
  531. .fi
  532. .UNINDENT
  533. .UNINDENT
  534. .sp
  535. Verify the installation
  536. .INDENT 0.0
  537. .INDENT 3.5
  538. .sp
  539. .nf
  540. .ft C
  541. veos#show extensions | include salt\-eos
  542. salt\-eos\-2017\-07\-19.swix 1.0.11/1.fc25 A, F 27
  543. .ft P
  544. .fi
  545. .UNINDENT
  546. .UNINDENT
  547. .sp
  548. Change the Salt master IP address or FQDN, by edit the variable (SALT_MASTER)
  549. .INDENT 0.0
  550. .INDENT 3.5
  551. .sp
  552. .nf
  553. .ft C
  554. veos#bash vi /mnt/flash/startup.sh
  555. .ft P
  556. .fi
  557. .UNINDENT
  558. .UNINDENT
  559. .sp
  560. Make sure you enable the eAPI with unix\-socket
  561. .INDENT 0.0
  562. .INDENT 3.5
  563. .sp
  564. .nf
  565. .ft C
  566. veos(config)#management api http\-commands
  567. protocol unix\-socket
  568. no shutdown
  569. .ft P
  570. .fi
  571. .UNINDENT
  572. .UNINDENT
  573. .SS Post\-installation tasks
  574. .sp
  575. Generate Keys and host record and start Salt minion
  576. .INDENT 0.0
  577. .INDENT 3.5
  578. .sp
  579. .nf
  580. .ft C
  581. veos#bash
  582. #sudo /mnt/flash/startup.sh
  583. .ft P
  584. .fi
  585. .UNINDENT
  586. .UNINDENT
  587. .sp
  588. \fBsalt\-minion\fP should be running
  589. .sp
  590. Copy the installed extensions to boot\-extensions
  591. .INDENT 0.0
  592. .INDENT 3.5
  593. .sp
  594. .nf
  595. .ft C
  596. veos#copy installed\-extensions boot\-extensions
  597. .ft P
  598. .fi
  599. .UNINDENT
  600. .UNINDENT
  601. .sp
  602. Apply event\-handler to let EOS start salt\-minion during boot\-up
  603. .INDENT 0.0
  604. .INDENT 3.5
  605. .sp
  606. .nf
  607. .ft C
  608. veos(config)#event\-handler boot\-up\-script
  609. trigger on\-boot
  610. action bash sudo /mnt/flash/startup.sh
  611. .ft P
  612. .fi
  613. .UNINDENT
  614. .UNINDENT
  615. .sp
  616. For more specific installation details of the \fBsalt\-minion\fP, please refer to Configuring Salt\&.
  617. .SS Uninstalling
  618. .sp
  619. If you decide to uninstall this package, the following steps are recommended for safety:
  620. .INDENT 0.0
  621. .IP 1. 3
  622. Remove the extension from boot\-extensions
  623. .UNINDENT
  624. .INDENT 0.0
  625. .INDENT 3.5
  626. .sp
  627. .nf
  628. .ft C
  629. veos#bash rm /mnt/flash/boot\-extensions
  630. .ft P
  631. .fi
  632. .UNINDENT
  633. .UNINDENT
  634. .INDENT 0.0
  635. .IP 2. 3
  636. Remove the extension from extensions folder
  637. .UNINDENT
  638. .INDENT 0.0
  639. .INDENT 3.5
  640. .sp
  641. .nf
  642. .ft C
  643. veos#bash rm /mnt/flash/.extensions/salt\-eos\-latest.swix
  644. .ft P
  645. .fi
  646. .UNINDENT
  647. .UNINDENT
  648. .INDENT 0.0
  649. .IP 2. 3
  650. Remove boot\-up script
  651. .UNINDENT
  652. .INDENT 0.0
  653. .INDENT 3.5
  654. .sp
  655. .nf
  656. .ft C
  657. veos(config)#no event\-handler boot\-up\-script
  658. .ft P
  659. .fi
  660. .UNINDENT
  661. .UNINDENT
  662. .SS Additional Information
  663. .sp
  664. This SWIX extension contains the following RPM packages:
  665. .INDENT 0.0
  666. .INDENT 3.5
  667. .sp
  668. .nf
  669. .ft C
  670. libsodium\-1.0.11\-1.fc25.i686.rpm
  671. libstdc++\-6.2.1\-2.fc25.i686.rpm
  672. openpgm\-5.2.122\-6.fc24.i686.rpm
  673. python\-Jinja2\-2.8\-0.i686.rpm
  674. python\-PyYAML\-3.12\-0.i686.rpm
  675. python\-babel\-0.9.6\-5.fc18.noarch.rpm
  676. python\-backports\-1.0\-3.fc18.i686.rpm
  677. python\-backports\-ssl_match_hostname\-3.4.0.2\-1.fc18.noarch.rpm
  678. python\-backports_abc\-0.5\-0.i686.rpm
  679. python\-certifi\-2016.9.26\-0.i686.rpm
  680. python\-chardet\-2.0.1\-5.fc18.noarch.rpm
  681. python\-crypto\-1.4.1\-1.noarch.rpm
  682. python\-crypto\-2.6.1\-1.fc18.i686.rpm
  683. python\-futures\-3.1.1\-1.noarch.rpm
  684. python\-jtextfsm\-0.3.1\-0.noarch.rpm
  685. python\-kitchen\-1.1.1\-2.fc18.noarch.rpm
  686. python\-markupsafe\-0.18\-1.fc18.i686.rpm
  687. python\-msgpack\-python\-0.4.8\-0.i686.rpm
  688. python\-napalm\-base\-0.24.3\-1.noarch.rpm
  689. python\-napalm\-eos\-0.6.0\-1.noarch.rpm
  690. python\-netaddr\-0.7.18\-0.noarch.rpm
  691. python\-pyeapi\-0.7.0\-0.noarch.rpm
  692. python\-salt\-2017.7.0_1414_g2fb986f\-1.noarch.rpm
  693. python\-singledispatch\-3.4.0.3\-0.i686.rpm
  694. python\-six\-1.10.0\-0.i686.rpm
  695. python\-tornado\-4.4.2\-0.i686.rpm
  696. python\-urllib3\-1.5\-7.fc18.noarch.rpm
  697. python2\-zmq\-15.3.0\-2.fc25.i686.rpm
  698. zeromq\-4.1.4\-5.fc25.i686.rpm
  699. .ft P
  700. .fi
  701. .UNINDENT
  702. .UNINDENT
  703. .SS Fedora
  704. .sp
  705. Beginning with version 0.9.4, Salt has been available in the primary Fedora
  706. repositories and \fI\%EPEL\fP\&. It is installable using \fByum\fP or \fBdnf\fP, depending
  707. on your version of Fedora.
  708. .sp
  709. \fBNOTE:\fP
  710. .INDENT 0.0
  711. .INDENT 3.5
  712. Released versions of Salt starting with \fB2015.5.2\fP through \fB2016.3.2\fP
  713. do not have Fedora packages available though \fI\%EPEL\fP\&. To install a version
  714. of Salt within this release array, please use SaltStack\(aqs \fI\%Bootstrap Script\fP
  715. and use the git method of installing Salt using the version\(aqs associated
  716. release tag.
  717. .sp
  718. Release \fB2016.3.3\fP and onward will have packaged versions available via
  719. \fI\%EPEL\fP\&.
  720. .UNINDENT
  721. .UNINDENT
  722. .sp
  723. \fBWARNING\fP: Fedora 19 comes with systemd 204. Systemd has known bugs fixed in
  724. later revisions that prevent the salt\-master from starting reliably or opening
  725. the network connections that it needs to. It\(aqs not likely that a salt\-master
  726. will start or run reliably on any distribution that uses systemd version 204 or
  727. earlier. Running salt\-minions should be OK.
  728. .SS Installation
  729. .sp
  730. Salt can be installed using \fByum\fP and is available in the standard Fedora
  731. repositories.
  732. .SS Stable Release
  733. .sp
  734. Salt is packaged separately for the minion and the master. It is necessary only to
  735. install the appropriate package for the role the machine will play. Typically, there
  736. will be one master and multiple minions.
  737. .INDENT 0.0
  738. .INDENT 3.5
  739. .sp
  740. .nf
  741. .ft C
  742. yum install salt\-master
  743. yum install salt\-minion
  744. .ft P
  745. .fi
  746. .UNINDENT
  747. .UNINDENT
  748. .SS Installing from \fBupdates\-testing\fP
  749. .sp
  750. When a new Salt release is packaged, it is first admitted into the
  751. \fBupdates\-testing\fP repository, before being moved to the stable repo.
  752. .sp
  753. To install from \fBupdates\-testing\fP, use the \fBenablerepo\fP argument for yum:
  754. .INDENT 0.0
  755. .INDENT 3.5
  756. .sp
  757. .nf
  758. .ft C
  759. yum \-\-enablerepo=updates\-testing install salt\-master
  760. yum \-\-enablerepo=updates\-testing install salt\-minion
  761. .ft P
  762. .fi
  763. .UNINDENT
  764. .UNINDENT
  765. .SS Installation Using pip
  766. .sp
  767. Since Salt is on \fI\%PyPI\fP, it can be installed using pip, though most users
  768. prefer to install using a package manager.
  769. .sp
  770. Installing from pip has a few additional requirements:
  771. .INDENT 0.0
  772. .IP \(bu 2
  773. Install the group \(aqDevelopment Tools\(aq, \fBdnf groupinstall \(aqDevelopment Tools\(aq\fP
  774. .IP \(bu 2
  775. Install the \(aqzeromq\-devel\(aq package if it fails on linking against that
  776. afterwards as well.
  777. .UNINDENT
  778. .sp
  779. A pip install does not make the init scripts or the /etc/salt directory, and you
  780. will need to provide your own systemd service unit.
  781. .sp
  782. Installation from pip:
  783. .INDENT 0.0
  784. .INDENT 3.5
  785. .sp
  786. .nf
  787. .ft C
  788. pip install salt
  789. .ft P
  790. .fi
  791. .UNINDENT
  792. .UNINDENT
  793. .sp
  794. \fBWARNING:\fP
  795. .INDENT 0.0
  796. .INDENT 3.5
  797. If installing from pip (or from source using \fBsetup.py install\fP), be
  798. advised that the \fByum\-utils\fP package is needed for Salt to manage
  799. packages. Also, if the Python dependencies are not already installed, then
  800. you will need additional libraries/tools installed to build some of them.
  801. More information on this can be found here\&.
  802. .UNINDENT
  803. .UNINDENT
  804. .SS Post\-installation tasks
  805. .sp
  806. \fBMaster\fP
  807. .sp
  808. To have the Master start automatically at boot time:
  809. .INDENT 0.0
  810. .INDENT 3.5
  811. .sp
  812. .nf
  813. .ft C
  814. systemctl enable salt\-master.service
  815. .ft P
  816. .fi
  817. .UNINDENT
  818. .UNINDENT
  819. .sp
  820. To start the Master:
  821. .INDENT 0.0
  822. .INDENT 3.5
  823. .sp
  824. .nf
  825. .ft C
  826. systemctl start salt\-master.service
  827. .ft P
  828. .fi
  829. .UNINDENT
  830. .UNINDENT
  831. .sp
  832. \fBMinion\fP
  833. .sp
  834. To have the Minion start automatically at boot time:
  835. .INDENT 0.0
  836. .INDENT 3.5
  837. .sp
  838. .nf
  839. .ft C
  840. systemctl enable salt\-minion.service
  841. .ft P
  842. .fi
  843. .UNINDENT
  844. .UNINDENT
  845. .sp
  846. To start the Minion:
  847. .INDENT 0.0
  848. .INDENT 3.5
  849. .sp
  850. .nf
  851. .ft C
  852. systemctl start salt\-minion.service
  853. .ft P
  854. .fi
  855. .UNINDENT
  856. .UNINDENT
  857. .sp
  858. Now go to the Configuring Salt page.
  859. .SS FreeBSD
  860. .SS Installation
  861. .sp
  862. Salt is available in the FreeBSD ports tree at \fI\%sysutils/py\-salt\fP\&.
  863. .SS FreeBSD binary repo
  864. .sp
  865. For Python 2.7 use:
  866. .sp
  867. Install Salt via the official package repository. Salt is packaged both as a Python 2.7 or 3.7 version.
  868. .INDENT 0.0
  869. .INDENT 3.5
  870. .sp
  871. .nf
  872. .ft C
  873. pkg install py27\-salt
  874. .ft P
  875. .fi
  876. .UNINDENT
  877. .UNINDENT
  878. .sp
  879. For Python 3.7 use:
  880. .INDENT 0.0
  881. .INDENT 3.5
  882. .sp
  883. .nf
  884. .ft C
  885. pkg install py37\-salt
  886. .ft P
  887. .fi
  888. .UNINDENT
  889. .UNINDENT
  890. .SS FreeBSD ports
  891. .sp
  892. Installation from ports:
  893. .INDENT 0.0
  894. .INDENT 3.5
  895. .sp
  896. .nf
  897. .ft C
  898. cd /usr/ports/sysutils/py\-salt
  899. make install
  900. .ft P
  901. .fi
  902. .UNINDENT
  903. .UNINDENT
  904. .sp
  905. Python 3.7 can be used by setting default Python version to 3.7:
  906. .INDENT 0.0
  907. .INDENT 3.5
  908. .sp
  909. .nf
  910. .ft C
  911. echo "DEFAULT_VERSIONS+= python=3.7" >> /etc/make.conf
  912. .ft P
  913. .fi
  914. .UNINDENT
  915. .UNINDENT
  916. .SS Post\-installation tasks
  917. .sp
  918. \fBrc.conf\fP
  919. .sp
  920. Activate the Salt Master in \fB/etc/rc.conf\fP:
  921. .INDENT 0.0
  922. .INDENT 3.5
  923. .sp
  924. .nf
  925. .ft C
  926. sysrc salt_master_enable="YES"
  927. .ft P
  928. .fi
  929. .UNINDENT
  930. .UNINDENT
  931. .sp
  932. \fBStart the Master\fP
  933. .sp
  934. Start the Salt Master as follows:
  935. .INDENT 0.0
  936. .INDENT 3.5
  937. .sp
  938. .nf
  939. .ft C
  940. service salt_master start
  941. .ft P
  942. .fi
  943. .UNINDENT
  944. .UNINDENT
  945. .sp
  946. \fBrc.conf\fP
  947. .sp
  948. Activate the Salt Minion in \fB/etc/rc.conf\fP:
  949. .INDENT 0.0
  950. .INDENT 3.5
  951. .sp
  952. .nf
  953. .ft C
  954. sysrc salt_minion_enable="YES"
  955. .ft P
  956. .fi
  957. .UNINDENT
  958. .UNINDENT
  959. .sp
  960. \fBStart the Minion\fP
  961. .sp
  962. Start the Salt Minion as follows:
  963. .INDENT 0.0
  964. .INDENT 3.5
  965. .sp
  966. .nf
  967. .ft C
  968. service salt_minion start
  969. .ft P
  970. .fi
  971. .UNINDENT
  972. .UNINDENT
  973. .sp
  974. Now go to the Configuring Salt page.
  975. .SS Gentoo
  976. .sp
  977. Salt can be easily installed on Gentoo via Portage:
  978. .INDENT 0.0
  979. .INDENT 3.5
  980. .sp
  981. .nf
  982. .ft C
  983. emerge app\-admin/salt
  984. .ft P
  985. .fi
  986. .UNINDENT
  987. .UNINDENT
  988. .SS Post\-installation tasks
  989. .sp
  990. Now go to the Configuring Salt page.
  991. .SS Cisco Nexus Salt Minion Installation and Configuration Guide
  992. .sp
  993. This document describes the Salt Minion installation and configuration on Cisco Nexus switches. These instructions detail the process for managing the Nexus switches using a Proxy Minion or Native Minion on platforms that have GuestShell support.
  994. .SS Table of Contents
  995. .INDENT 0.0
  996. .IP \(bu 2
  997. \fI\%Cisco Nexus Salt Minion Installation and Configuration Guide\fP
  998. .INDENT 2.0
  999. .IP \(bu 2
  1000. \fI\%Pre\-Install Tasks\fP
  1001. .INDENT 2.0
  1002. .IP \(bu 2
  1003. \fI\%STEP 1: Verify Platform and Software Version Support\fP
  1004. .IP \(bu 2
  1005. \fI\%STEP 2: Choose Salt Minion Type\fP
  1006. .IP \(bu 2
  1007. \fI\%STEP 3: Network Connectivity\fP
  1008. .UNINDENT
  1009. .IP \(bu 2
  1010. \fI\%Salt Proxy Minion Configuration\fP
  1011. .INDENT 2.0
  1012. .IP \(bu 2
  1013. \fI\%Proxy Minion Pillar Data\fP
  1014. .UNINDENT
  1015. .IP \(bu 2
  1016. \fI\%GuestShell Salt Minion Installation\fP
  1017. .INDENT 2.0
  1018. .IP \(bu 2
  1019. \fI\%STEP 1a: Enable the Guestshell on low footprint N3ks\fP
  1020. .IP \(bu 2
  1021. \fI\%STEP 1b: Enable the Guestshell\fP
  1022. .IP \(bu 2
  1023. \fI\%STEP 2: Set Up Guestshell Network\fP
  1024. .IP \(bu 2
  1025. \fI\%STEP 3: Install SaltStack Minion\fP
  1026. .IP \(bu 2
  1027. \fI\%STEP 4: Configure SaltStack Minion\fP
  1028. .UNINDENT
  1029. .IP \(bu 2
  1030. \fI\%GuestShell Salt Minion Persistence\fP
  1031. .IP \(bu 2
  1032. \fI\%References\fP
  1033. .UNINDENT
  1034. .UNINDENT
  1035. .SS Pre\-Install Tasks
  1036. .SS STEP 1: Verify Platform and Software Version Support
  1037. .sp
  1038. The following platforms and software versions have been certified to work with this version of Salt.
  1039. .INDENT 0.0
  1040. .INDENT 3.5
  1041. .SS Platform / Software Mininum Requirements
  1042. .TS
  1043. center;
  1044. |l|l|l|l|l|.
  1045. _
  1046. T{
  1047. Supported Platforms
  1048. T} T{
  1049. Minimum NX\-OS Version
  1050. T} T{
  1051. SSH Proxy Minion
  1052. T} T{
  1053. NX\-API Proxy Minion
  1054. T} T{
  1055. GuestShell Minion
  1056. T}
  1057. _
  1058. T{
  1059. Cisco Nexus N3k
  1060. T} T{
  1061. 7.0(3)I2(5) and later
  1062. T} T{
  1063. Supported
  1064. T} T{
  1065. Supported
  1066. T} T{
  1067. Supported
  1068. T}
  1069. _
  1070. T{
  1071. Cisco Nexus N9k
  1072. T} T{
  1073. 7.0(3)I2(5) and later
  1074. T} T{
  1075. Supported
  1076. T} T{
  1077. Supported
  1078. T} T{
  1079. Supported
  1080. T}
  1081. _
  1082. T{
  1083. Cisco Nexus N6k
  1084. T} T{
  1085. 7.3(0)N1(1) and later
  1086. T} T{
  1087. Supported
  1088. T} T{
  1089. Not Supported
  1090. T} T{
  1091. Not Supported
  1092. T}
  1093. _
  1094. T{
  1095. Cisco Nexus N7k
  1096. T} T{
  1097. 7.3(0)D1(1) and later
  1098. T} T{
  1099. Supported
  1100. T} T{
  1101. Supported
  1102. T} T{
  1103. Not Supported
  1104. T}
  1105. _
  1106. .TE
  1107. .SS Platform Models
  1108. .TS
  1109. center;
  1110. |l|l|.
  1111. _
  1112. T{
  1113. Platform
  1114. T} T{
  1115. Description
  1116. T}
  1117. _
  1118. T{
  1119. N3k
  1120. T} T{
  1121. Support includes N30xx, N31xx, N32xx and N35xx models
  1122. T}
  1123. _
  1124. T{
  1125. N6k
  1126. T} T{
  1127. Support includes all N6xxx models
  1128. T}
  1129. _
  1130. T{
  1131. N7k
  1132. T} T{
  1133. Support includes all N7xxx models
  1134. T}
  1135. _
  1136. T{
  1137. N9k
  1138. T} T{
  1139. Support includes all N9xxx models
  1140. T}
  1141. _
  1142. .TE
  1143. .UNINDENT
  1144. .UNINDENT
  1145. .SS STEP 2: Choose Salt Minion Type
  1146. .sp
  1147. Using the tables above, select the Salt Minion type.
  1148. .INDENT 0.0
  1149. .TP
  1150. .B Choices:
  1151. .INDENT 7.0
  1152. .IP \(bu 2
  1153. \fBSSH\fP Proxy Minion (See \fI\%Salt Proxy Minion Configuration\fP Section)
  1154. .IP \(bu 2
  1155. \fBNX\-API\fP Proxy Minion (See \fI\%Salt Proxy Minion Configuration\fP Section)
  1156. .IP \(bu 2
  1157. .INDENT 2.0
  1158. .TP
  1159. .B \fBGuestShell\fP Native Minion (See \fI\%GuestShell Salt Minion Installation\fP Section)
  1160. .INDENT 7.0
  1161. .IP \(bu 2
  1162. Some platforms support a native minion installed directly on the NX\-OS device inside the GuestShell
  1163. .IP \(bu 2
  1164. The GuestShell is a secure Linux container environment running CentOS
  1165. .UNINDENT
  1166. .UNINDENT
  1167. .UNINDENT
  1168. .UNINDENT
  1169. .SS STEP 3: Network Connectivity
  1170. .sp
  1171. Ensure that IP reachability exists between the NX\-OS Salt Minion device and the SaltStack Master.
  1172. .sp
  1173. \fBNote:\fP The management interface exists in a separate VRF context and requires additional configuration as shown.
  1174. .sp
  1175. Example: Nexus CLI Configuration for connectivity via management interface
  1176. .INDENT 0.0
  1177. .INDENT 3.5
  1178. .sp
  1179. .nf
  1180. .ft C
  1181. config term
  1182. vrf context management
  1183. ip name\-server 10\&.0.0.202
  1184. ip domain\-name mycompany.com
  1185. ip route 0\&.0.0.0/0 10\&.0.0.1
  1186. interface mgmt0
  1187. vrf member management
  1188. ip address 10\&.0.0.99/24
  1189. ntp server 10\&.0.0.201 use\-vrf management
  1190. end
  1191. .ft P
  1192. .fi
  1193. .UNINDENT
  1194. .UNINDENT
  1195. .SS Salt Proxy Minion Configuration
  1196. .sp
  1197. Here is a sample Proxy Minion directory structure
  1198. .INDENT 0.0
  1199. .INDENT 3.5
  1200. .sp
  1201. .nf
  1202. .ft C
  1203. saltmaster:/srv/pillar$tree
  1204. \&.
  1205. ├── n3k\-proxy.sls
  1206. ├── n7k\-proxy.sls
  1207. └── top.sls
  1208. .ft P
  1209. .fi
  1210. .UNINDENT
  1211. .UNINDENT
  1212. .sp
  1213. This displays a top sls file and two proxy minion sls files for a Nexus 3k and Nexus 7k device.
  1214. .sp
  1215. Sample contents for the \fBtop.sls\fP file.
  1216. .INDENT 0.0
  1217. .INDENT 3.5
  1218. .sp
  1219. .nf
  1220. .ft C
  1221. saltmaster:/srv/pillar$cat top.sls
  1222. base:
  1223. n3k\-proxy:
  1224. \- n3k\-proxy
  1225. n7k\-proxy:
  1226. \- n7k\-proxy
  1227. .ft P
  1228. .fi
  1229. .UNINDENT
  1230. .UNINDENT
  1231. .SS Proxy Minion Pillar Data
  1232. .sp
  1233. Here is a sample Proxy Minion pillar data file.
  1234. .sp
  1235. All of the data for both ssh and nxapi proxy minion types can be stored in the same pillar data file. To choose \fBssh\fP or \fBnxapi\fP, simply set the \fBconnection:\fP parameter accordingly.
  1236. .INDENT 0.0
  1237. .INDENT 3.5
  1238. .sp
  1239. .nf
  1240. .ft C
  1241. saltmaster:/srv/pillar$cat n7k\-proxy.sls
  1242. proxy:
  1243. proxytype: nxos
  1244. # Specify ssh or nxapi connection type (default is ssh)
  1245. #connection: ssh
  1246. connection: nxapi
  1247. # Parameters Common to both SSH and NX\-API
  1248. host: n7k.example.com
  1249. username: admin
  1250. password: password
  1251. # SSH Parameters
  1252. prompt_name: n7k
  1253. ssh_args: \(aq\-o PubkeyAuthentication=no\(aq
  1254. key_accept: True
  1255. # NX\-API Parameters
  1256. transport: https
  1257. port: 443
  1258. verify: False
  1259. # Option to prevent auto\-save after each configuration command.
  1260. # Setting this to True will improve performance when using
  1261. # nxos execution module functions to configure the device.
  1262. no_save_config: True
  1263. .ft P
  1264. .fi
  1265. .UNINDENT
  1266. .UNINDENT
  1267. .INDENT 0.0
  1268. .IP \(bu 2
  1269. For the most current nxos proxy minion configuration options, See \fBsalt.proxy.nxos\fP
  1270. .IP \(bu 2
  1271. For the most current list of nxos execution module functions, See \fBsalt.modules.nxos\fP
  1272. .UNINDENT
  1273. .SS GuestShell Salt Minion Installation
  1274. .sp
  1275. This section is only required when running the SaltStack Minion from the \fBguestshell\fP\&.
  1276. .SS STEP 1a: Enable the Guestshell on low footprint N3ks
  1277. .sp
  1278. \fBNOTE:\fP Skip down to \fBSTEP 1b\fP if the target system is not a low footprint N3k.
  1279. .sp
  1280. Nexus 3xxx switches with 4 GB RAM and 1.6 GB bootflash are advised to use compacted images to reduce the storage resources consumed by the image. As part of the compaction process, the \fBguestshell.ova\fP is removed from the system image. To make use of the guestshell on these systems, the guestshell.ova may be downloaded and used to install the guestshell.
  1281. .sp
  1282. Guestshell OVA Download \fI\%Link\fP
  1283. .sp
  1284. Starting in release \fB9.2(1)\fP and onward, the .ova file can be copied to the \fBvolatile:\fP directory which frees up more space on \fBbootflash:\fP\&.
  1285. .sp
  1286. Copy the \fBguestshell.ova\fP file to \fBvolatile:\fP if supported, otherwise copy it to \fBbootflash:\fP
  1287. .INDENT 0.0
  1288. .INDENT 3.5
  1289. .sp
  1290. .nf
  1291. .ft C
  1292. n3xxx# copy scp://admin@1.2.3.4/guestshell.ova volatile: vrf management
  1293. guestshell.ova 100% 55MB 10\&.9MB/s 00:05
  1294. Copy complete, now saving to disk (please wait)\&...
  1295. Copy complete.
  1296. .ft P
  1297. .fi
  1298. .UNINDENT
  1299. .UNINDENT
  1300. .sp
  1301. Use the \fBguestshell enable\fP command to install and enable guestshell.
  1302. .INDENT 0.0
  1303. .INDENT 3.5
  1304. .sp
  1305. .nf
  1306. .ft C
  1307. n3xxx# guestshell enable package volatile:guestshell.ova
  1308. .ft P
  1309. .fi
  1310. .UNINDENT
  1311. .UNINDENT
  1312. .SS STEP 1b: Enable the Guestshell
  1313. .sp
  1314. The \fBguestshell\fP container environment is enabled by default on most platforms; however, the default disk and memory resources allotted to guestshell are typically too small to support SaltStack Minion requirements. The resource limits may be increased with the NX\-OS CLI \fBguestshell resize\fP commands as shown below.
  1315. .INDENT 0.0
  1316. .INDENT 3.5
  1317. .SS Resource Requirements
  1318. .TS
  1319. center;
  1320. |l|l|.
  1321. _
  1322. T{
  1323. Resource
  1324. T} T{
  1325. Recommended
  1326. T}
  1327. _
  1328. T{
  1329. Disk
  1330. T} T{
  1331. \fB500 MB\fP
  1332. T}
  1333. _
  1334. T{
  1335. Memory
  1336. T} T{
  1337. \fB350 MB\fP
  1338. T}
  1339. _
  1340. .TE
  1341. .UNINDENT
  1342. .UNINDENT
  1343. .sp
  1344. \fBshow guestshell detail\fP displays the current resource limits:
  1345. .INDENT 0.0
  1346. .INDENT 3.5
  1347. .sp
  1348. .nf
  1349. .ft C
  1350. n3k# show guestshell detail
  1351. Virtual service guestshell+ detail
  1352. State : Activated
  1353. \&...
  1354. Resource reservation
  1355. Disk : 150 MB
  1356. Memory : 128 MB
  1357. .ft P
  1358. .fi
  1359. .UNINDENT
  1360. .UNINDENT
  1361. .sp
  1362. \fBguestshell resize rootfs\fP sets disk size limits while \fBguestshell resize memory\fP sets memory limits. The resize commands do not take effect until after the guestshell container is (re)started by \fBguestshell reboot\fP or \fBguestshell enable\fP\&.
  1363. .sp
  1364. \fBExample.\fP Allocate resources for guestshell by setting new limits to 500MB disk and 350MB memory.
  1365. .INDENT 0.0
  1366. .INDENT 3.5
  1367. .sp
  1368. .nf
  1369. .ft C
  1370. n3k# guestshell resize rootfs 500
  1371. n3k# guestshell resize memory 350
  1372. n3k# guestshell reboot
  1373. Are you sure you want to reboot the guest shell? (y/n) [n] y
  1374. .ft P
  1375. .fi
  1376. .UNINDENT
  1377. .UNINDENT
  1378. .SS STEP 2: Set Up Guestshell Network
  1379. .sp
  1380. The \fBguestshell\fP is an independent CentOS container that does not inherit settings from NX\-OS.
  1381. .INDENT 0.0
  1382. .IP \(bu 2
  1383. Use \fBguestshell\fP to enter the guestshell environment, then become root.
  1384. .IP \(bu 2
  1385. \fIOptional:\fP Use \fBchvrf\fP to specify a vrf namespace; e.g. \fBsudo chvrf management\fP
  1386. .UNINDENT
  1387. .INDENT 0.0
  1388. .INDENT 3.5
  1389. .sp
  1390. .nf
  1391. .ft C
  1392. n3k# guestshell
  1393. [guestshell@guestshell ~]$ sudo su \- # Optional: sudo chvrf management
  1394. [root@guestshell guestshell]#
  1395. .ft P
  1396. .fi
  1397. .UNINDENT
  1398. .UNINDENT
  1399. .sp
  1400. \fBOPTIONAL: Add DNS Configuration\fP
  1401. .INDENT 0.0
  1402. .INDENT 3.5
  1403. .sp
  1404. .nf
  1405. .ft C
  1406. [root@guestshell guestshell]# cat >> /etc/resolv.conf << EOF
  1407. nameserver 10\&.0.0.202
  1408. domain mycompany.com
  1409. EOF
  1410. .ft P
  1411. .fi
  1412. .UNINDENT
  1413. .UNINDENT
  1414. .sp
  1415. \fBOPTIONAL: Define proxy server variables if needed to allow network access to SaltStack package repositories\fP
  1416. .INDENT 0.0
  1417. .INDENT 3.5
  1418. .sp
  1419. .nf
  1420. .ft C
  1421. export http_proxy=http://proxy.yourdomain.com:<port>
  1422. export https_proxy=https://proxy.yourdomain.com:<port>
  1423. .ft P
  1424. .fi
  1425. .UNINDENT
  1426. .UNINDENT
  1427. .SS STEP 3: Install SaltStack Minion
  1428. .sp
  1429. \fBOPTIONAL: Upgrade the pip installer\fP
  1430. .INDENT 0.0
  1431. .INDENT 3.5
  1432. \fB[root@guestshell guestshell]# pip install \-\-upgrade pip\fP
  1433. .UNINDENT
  1434. .UNINDENT
  1435. .sp
  1436. Install the \fBcertifi\fP python package.
  1437. .INDENT 0.0
  1438. .INDENT 3.5
  1439. \fB[root@guestshell guestshell]# pip install certifi\fP
  1440. .UNINDENT
  1441. .UNINDENT
  1442. .sp
  1443. The most current information on installing the SaltStack Minion in a Centos7 environment can be found \fI\%here\fP
  1444. .sp
  1445. Information from the install guide is provided here for convenience.
  1446. .sp
  1447. Run the following commands to install the SaltStack repository and key:
  1448. .INDENT 0.0
  1449. .INDENT 3.5
  1450. \fB[root@guestshell guestshell]# yum install https://repo.saltstack.com/yum/redhat/salt\-repo\-latest\-2.el7.noarch.rpm\fP
  1451. .UNINDENT
  1452. .UNINDENT
  1453. .sp
  1454. Run the following command to force yum to revalidate the cache for each repository.
  1455. .INDENT 0.0
  1456. .INDENT 3.5
  1457. \fB[root@guestshell guestshell]# yum clean expire\-cache\fP
  1458. .UNINDENT
  1459. .UNINDENT
  1460. .sp
  1461. Install the Salt Minion.
  1462. .INDENT 0.0
  1463. .INDENT 3.5
  1464. \fB[root@guestshell guestshell]# yum install salt\-minion\fP
  1465. .UNINDENT
  1466. .UNINDENT
  1467. .SS STEP 4: Configure SaltStack Minion
  1468. .sp
  1469. Make the following changes to the \fB/etc/salt/minion\fP configuration file in the NX\-OS GuestShell.
  1470. .sp
  1471. Change the \fBmaster:\fP directive to point to the SaltStack Master.
  1472. .INDENT 0.0
  1473. .INDENT 3.5
  1474. .sp
  1475. .nf
  1476. .ft C
  1477. \- #master: salt
  1478. + master: saltmaster.example.com
  1479. .ft P
  1480. .fi
  1481. .UNINDENT
  1482. .UNINDENT
  1483. .sp
  1484. Change the \fBid:\fP directive to easily identify the minion running in the GuestShell.
  1485. .sp
  1486. Example:
  1487. .INDENT 0.0
  1488. .INDENT 3.5
  1489. .sp
  1490. .nf
  1491. .ft C
  1492. \- #id: salt
  1493. + id: n3k\-guestshell\-minion
  1494. .ft P
  1495. .fi
  1496. .UNINDENT
  1497. .UNINDENT
  1498. .sp
  1499. Start the Minion in the Guestshell and accept the key on the SaltStack Master.
  1500. .INDENT 0.0
  1501. .INDENT 3.5
  1502. \fB[root@guestshell ~]# systemctl start salt\-minion\fP
  1503. .UNINDENT
  1504. .UNINDENT
  1505. .INDENT 0.0
  1506. .INDENT 3.5
  1507. .sp
  1508. .nf
  1509. .ft C
  1510. saltmaster: salt\-key \-L
  1511. Accepted Keys:
  1512. Denied Keys:
  1513. Unaccepted Keys:
  1514. n3k\-guestshell\-minion
  1515. Rejected Keys:
  1516. .ft P
  1517. .fi
  1518. .UNINDENT
  1519. .UNINDENT
  1520. .INDENT 0.0
  1521. .INDENT 3.5
  1522. .sp
  1523. .nf
  1524. .ft C
  1525. saltmaster: salt\-key \-A
  1526. The following keys are going to be accepted:
  1527. Unaccepted Keys:
  1528. n3k\-guestshell\-minion
  1529. Proceed? [n/Y] Y
  1530. Key for minion n3k\-guestshell\-minion accepted.
  1531. .ft P
  1532. .fi
  1533. .UNINDENT
  1534. .UNINDENT
  1535. .sp
  1536. Ping the SaltStack Minion running in the Guestshell.
  1537. .INDENT 0.0
  1538. .INDENT 3.5
  1539. .sp
  1540. .nf
  1541. .ft C
  1542. saltmaster: salt n3k\-guestshell\-minion nxos.ping
  1543. n3k\-guestshell\-minion:
  1544. True
  1545. .ft P
  1546. .fi
  1547. .UNINDENT
  1548. .UNINDENT
  1549. .SS GuestShell Salt Minion Persistence
  1550. .sp
  1551. This section documents SaltStack Minion persistence in the \fBguestshell\fP after system restarts and high availability switchovers.
  1552. .sp
  1553. The \fBguestshell\fP container does not automatically sync filesystem changes from the active processor to the standby processor. This means that SaltStack Minion installation files and related file changes will not be present on the standby until they are manually synced with the following NX\-OS exec command:
  1554. .sp
  1555. \fBguestshell sync\fP
  1556. .sp
  1557. The \fBguestshell\fP environment uses \fBsystemd\fP for service management. The SaltStack Minion provides a generic systemd script when installed, but a slight modification as shown below is needed for nodes that run Salt in the management (or other vrf) namespace:
  1558. .INDENT 0.0
  1559. .INDENT 3.5
  1560. .sp
  1561. .nf
  1562. .ft C
  1563. \-\-\- /usr/lib/systemd/system/salt\-minion.service.old
  1564. +++ /usr/lib/systemd/system/salt\-minion.service
  1565. [Unit]
  1566. Description=The Salt Minion
  1567. Documentation=man:salt\-minion(1) file:///usr/share/doc/salt/html/contents.html
  1568. https://docs.saltstack.com/en/latest/contents.html
  1569. After=network.target salt\-master.service
  1570. [Service]
  1571. KillMode=process
  1572. Type=notify
  1573. NotifyAccess=all
  1574. LimitNOFILE=8192
  1575. \- ExecStart=/usr/bin/salt\-minion
  1576. + ExecStart=/bin/nsenter \-\-net=/var/run/netns/management \-\- /usr/bin/salt\-minion
  1577. [Install]
  1578. WantedBy=multi\-user.target
  1579. .ft P
  1580. .fi
  1581. .UNINDENT
  1582. .UNINDENT
  1583. .sp
  1584. Change the \fBpidfile:\fP directive to point to the \fB/run\fP \fBtmpfs\fP location in the GuestShell.
  1585. .INDENT 0.0
  1586. .INDENT 3.5
  1587. .sp
  1588. .nf
  1589. .ft C
  1590. \- #pidfile: /var/run/salt\-minion.pid
  1591. + pidfile: /run/salt\-minion.pid
  1592. .ft P
  1593. .fi
  1594. .UNINDENT
  1595. .UNINDENT
  1596. .sp
  1597. Next, enable the SaltStack Minion systemd service (the \fBenable\fP command adds it to systemd for autostarting on the next boot) and optionally start it now:
  1598. .INDENT 0.0
  1599. .INDENT 3.5
  1600. .sp
  1601. .nf
  1602. .ft C
  1603. systemctl enable salt\-minion
  1604. systemctl start salt\-minion
  1605. .ft P
  1606. .fi
  1607. .UNINDENT
  1608. .UNINDENT
  1609. .SS References
  1610. .INDENT 0.0
  1611. .INDENT 3.5
  1612. .SS Nexus Document References
  1613. .TS
  1614. center;
  1615. |l|l|.
  1616. _
  1617. T{
  1618. References
  1619. T} T{
  1620. Description
  1621. T}
  1622. _
  1623. T{
  1624. \fI\%GuestShell_N9k\fP
  1625. T} T{
  1626. N9k Guestshell Programmability Guide
  1627. T}
  1628. _
  1629. T{
  1630. \fI\%GuestShell_N3k\fP
  1631. T} T{
  1632. N3k Guestshell Programmability Guide
  1633. T}
  1634. _
  1635. .TE
  1636. .UNINDENT
  1637. .UNINDENT
  1638. .SS OpenBSD
  1639. .sp
  1640. Salt was added to the OpenBSD ports tree on Aug 10th 2013.
  1641. It has been tested on OpenBSD 5.5 onwards.
  1642. .sp
  1643. Salt is dependent on the following additional ports. These will be installed as
  1644. dependencies of the \fBsysutils/salt\fP port:
  1645. .INDENT 0.0
  1646. .INDENT 3.5
  1647. .sp
  1648. .nf
  1649. .ft C
  1650. devel/py\-futures
  1651. devel/py\-progressbar
  1652. net/py\-msgpack
  1653. net/py\-zmq
  1654. security/py\-crypto
  1655. security/py\-M2Crypto
  1656. textproc/py\-MarkupSafe
  1657. textproc/py\-yaml
  1658. www/py\-jinja2
  1659. www/py\-requests
  1660. www/py\-tornado
  1661. .ft P
  1662. .fi
  1663. .UNINDENT
  1664. .UNINDENT
  1665. .SS Installation
  1666. .sp
  1667. To install Salt from the OpenBSD pkg repo, use the command:
  1668. .INDENT 0.0
  1669. .INDENT 3.5
  1670. .sp
  1671. .nf
  1672. .ft C
  1673. pkg_add salt
  1674. .ft P
  1675. .fi
  1676. .UNINDENT
  1677. .UNINDENT
  1678. .SS Post\-installation tasks
  1679. .sp
  1680. \fBMaster\fP
  1681. .sp
  1682. To have the Master start automatically at boot time:
  1683. .INDENT 0.0
  1684. .INDENT 3.5
  1685. .sp
  1686. .nf
  1687. .ft C
  1688. rcctl enable salt_master
  1689. .ft P
  1690. .fi
  1691. .UNINDENT
  1692. .UNINDENT
  1693. .sp
  1694. To start the Master:
  1695. .INDENT 0.0
  1696. .INDENT 3.5
  1697. .sp
  1698. .nf
  1699. .ft C
  1700. rcctl start salt_master
  1701. .ft P
  1702. .fi
  1703. .UNINDENT
  1704. .UNINDENT
  1705. .sp
  1706. \fBMinion\fP
  1707. .sp
  1708. To have the Minion start automatically at boot time:
  1709. .INDENT 0.0
  1710. .INDENT 3.5
  1711. .sp
  1712. .nf
  1713. .ft C
  1714. rcctl enable salt_minion
  1715. .ft P
  1716. .fi
  1717. .UNINDENT
  1718. .UNINDENT
  1719. .sp
  1720. To start the Minion:
  1721. .INDENT 0.0
  1722. .INDENT 3.5
  1723. .sp
  1724. .nf
  1725. .ft C
  1726. rcctl start salt_minion
  1727. .ft P
  1728. .fi
  1729. .UNINDENT
  1730. .UNINDENT
  1731. .sp
  1732. Now go to the Configuring Salt page.
  1733. .SS macOS
  1734. .SS Installation from the Official SaltStack Repository
  1735. .sp
  1736. \fBLatest stable build from the selected branch\fP:
  1737. .sp
  1738. The output of \fBmd5 <salt pkg>\fP should match the contents of the
  1739. corresponding md5 file.
  1740. .sp
  1741. \fI\%Earlier builds from supported branches\fP
  1742. .sp
  1743. \fI\%Archived builds from unsupported branches\fP
  1744. .SS Installation from Homebrew
  1745. .INDENT 0.0
  1746. .INDENT 3.5
  1747. .sp
  1748. .nf
  1749. .ft C
  1750. brew install saltstack
  1751. .ft P
  1752. .fi
  1753. .UNINDENT
  1754. .UNINDENT
  1755. .sp
  1756. It should be noted that Homebrew explicitly discourages the \fI\%use of sudo\fP:
  1757. .INDENT 0.0
  1758. .INDENT 3.5
  1759. Homebrew is designed to work without using sudo. You can decide to use it but we strongly recommend not to do so. If you have used sudo and run into a bug then it is likely to be the cause. Please don’t file a bug report unless you can reproduce it after reinstalling Homebrew from scratch without using sudo
  1760. .UNINDENT
  1761. .UNINDENT
  1762. .SS Installation from MacPorts
  1763. .sp
  1764. Macports isolates its dependencies from the OS, and installs salt in /opt/local by default, with config files under /opt/local/etc/salt. For best results, add /opt/local/bin to your PATH.
  1765. .INDENT 0.0
  1766. .INDENT 3.5
  1767. .sp
  1768. .nf
  1769. .ft C
  1770. sudo port install salt
  1771. .ft P
  1772. .fi
  1773. .UNINDENT
  1774. .UNINDENT
  1775. .sp
  1776. Variants allow selection of python version used to run salt, defaulting to python27, but also supporting python34, python35, and python36. To install salt with Python 3.6, use the python36 variant, for example:
  1777. .INDENT 0.0
  1778. .INDENT 3.5
  1779. .sp
  1780. .nf
  1781. .ft C
  1782. sudo port install salt @python36
  1783. .ft P
  1784. .fi
  1785. .UNINDENT
  1786. .UNINDENT
  1787. .sp
  1788. Startup items (for master, minion, and rest\-cherrypy API gateway, respectively) are installed by subport targets. These will register launchd LaunchDaemons as org.macports.salt\-minion, for example, to trigger automatic startup of the salt\-minion through launchd. LaunchDaemons for salt can be started and stopped without reboot using the macprots load and unload commands.
  1789. .INDENT 0.0
  1790. .INDENT 3.5
  1791. .sp
  1792. .nf
  1793. .ft C
  1794. sudo port install salt\-master salt\-minion salt\-api
  1795. sudo port load salt\-master salt\-minion salt\-api
  1796. .ft P
  1797. .fi
  1798. .UNINDENT
  1799. .UNINDENT
  1800. .SS Installation from Pip
  1801. .sp
  1802. When only using the macOS system\(aqs pip, install this way:
  1803. .INDENT 0.0
  1804. .INDENT 3.5
  1805. .sp
  1806. .nf
  1807. .ft C
  1808. sudo pip install salt
  1809. .ft P
  1810. .fi
  1811. .UNINDENT
  1812. .UNINDENT
  1813. .SS Salt\-Master Customizations
  1814. .sp
  1815. \fBNOTE:\fP
  1816. .INDENT 0.0
  1817. .INDENT 3.5
  1818. Salt master on macOS is not tested or supported by SaltStack. See \fI\%SaltStack Platform Support\fP for more information.
  1819. .UNINDENT
  1820. .UNINDENT
  1821. .sp
  1822. To run salt\-master on macOS, sudo add this configuration option to the /etc/salt/master file:
  1823. .INDENT 0.0
  1824. .INDENT 3.5
  1825. .sp
  1826. .nf
  1827. .ft C
  1828. max_open_files: 8192
  1829. .ft P
  1830. .fi
  1831. .UNINDENT
  1832. .UNINDENT
  1833. .sp
  1834. On versions previous to macOS 10.10 (Yosemite), increase the root user maxfiles limit:
  1835. .INDENT 0.0
  1836. .INDENT 3.5
  1837. .sp
  1838. .nf
  1839. .ft C
  1840. sudo launchctl limit maxfiles 4096 8192
  1841. .ft P
  1842. .fi
  1843. .UNINDENT
  1844. .UNINDENT
  1845. .sp
  1846. \fBNOTE:\fP
  1847. .INDENT 0.0
  1848. .INDENT 3.5
  1849. On macOS 10.10 (Yosemite) and higher, maxfiles should not be adjusted. The
  1850. default limits are sufficient in all but the most extreme scenarios.
  1851. Overriding these values with the setting below will cause system
  1852. instability!
  1853. .UNINDENT
  1854. .UNINDENT
  1855. .sp
  1856. Now the salt\-master should run without errors:
  1857. .INDENT 0.0
  1858. .INDENT 3.5
  1859. .sp
  1860. .nf
  1861. .ft C
  1862. sudo salt\-master \-\-log\-level=all
  1863. .ft P
  1864. .fi
  1865. .UNINDENT
  1866. .UNINDENT
  1867. .SS Post\-installation tasks
  1868. .sp
  1869. Now go to the Configuring Salt page.
  1870. .SS RHEL / CentOS / Scientific Linux / Amazon Linux / Oracle Linux
  1871. .sp
  1872. Salt should work properly with all mainstream derivatives of Red Hat Enterprise
  1873. Linux, including CentOS, Scientific Linux, Oracle Linux, and Amazon Linux.
  1874. Report any bugs or issues on the \fI\%issue tracker\fP\&.
  1875. .SS Installation from the Official SaltStack Repository
  1876. .sp
  1877. Packages for Redhat, CentOS, and Amazon Linux are available in
  1878. the SaltStack Repository.
  1879. .INDENT 0.0
  1880. .IP \(bu 2
  1881. \fI\%Red Hat / CentOS\fP
  1882. .IP \(bu 2
  1883. \fI\%Amazon Linux\fP
  1884. .UNINDENT
  1885. .sp
  1886. \fBNOTE:\fP
  1887. .INDENT 0.0
  1888. .INDENT 3.5
  1889. As of 2015.8.0, EPEL repository is no longer required for installing on
  1890. RHEL systems. SaltStack repository provides all needed dependencies.
  1891. .UNINDENT
  1892. .UNINDENT
  1893. .sp
  1894. \fBWARNING:\fP
  1895. .INDENT 0.0
  1896. .INDENT 3.5
  1897. If installing on Red Hat Enterprise Linux 7 with disabled (not subscribed on)
  1898. \(aqRHEL Server Releases\(aq or \(aqRHEL Server Optional Channel\(aq repositories,
  1899. append CentOS 7 GPG key URL to SaltStack yum repository configuration to
  1900. install required base packages:
  1901. .INDENT 0.0
  1902. .INDENT 3.5
  1903. .sp
  1904. .nf
  1905. .ft C
  1906. [saltstack\-repo]
  1907. name=SaltStack repo for Red Hat Enterprise Linux $releasever
  1908. baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
  1909. enabled=1
  1910. gpgcheck=1
  1911. gpgkey=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/SALTSTACK\-GPG\-KEY.pub
  1912. https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest/base/RPM\-GPG\-KEY\-CentOS\-7
  1913. .ft P
  1914. .fi
  1915. .UNINDENT
  1916. .UNINDENT
  1917. .UNINDENT
  1918. .UNINDENT
  1919. .sp
  1920. \fBNOTE:\fP
  1921. .INDENT 0.0
  1922. .INDENT 3.5
  1923. \fBsystemd\fP and \fBsystemd\-python\fP are required by Salt, but are not
  1924. installed by the Red Hat 7 \fB@base\fP installation or by the Salt
  1925. installation. These dependencies might need to be installed before Salt.
  1926. .UNINDENT
  1927. .UNINDENT
  1928. .SS Installation from the Community\-Maintained Repository
  1929. .sp
  1930. Beginning with version 0.9.4, Salt has been available in \fI\%EPEL\fP\&.
  1931. .sp
  1932. \fBNOTE:\fP
  1933. .INDENT 0.0
  1934. .INDENT 3.5
  1935. Packages in this repository are built by community, and it can take a little
  1936. while until the latest stable SaltStack release become available.
  1937. .UNINDENT
  1938. .UNINDENT
  1939. .SS RHEL/CentOS 6 and 7, Scientific Linux, etc.
  1940. .sp
  1941. \fBWARNING:\fP
  1942. .INDENT 0.0
  1943. .INDENT 3.5
  1944. Salt 2015.8 is currently not available in EPEL due to unsatisfied
  1945. dependencies: \fBpython\-crypto\fP 2.6.1 or higher, and \fBpython\-tornado\fP
  1946. version 4.2.1 or higher. These packages are not currently available in EPEL
  1947. for Red Hat Enterprise Linux 6 and 7.
  1948. .UNINDENT
  1949. .UNINDENT
  1950. .SS Enabling EPEL
  1951. .sp
  1952. If the EPEL repository is not installed on your system, you can download the
  1953. RPM for \fI\%RHEL/CentOS 6\fP or for \fI\%RHEL/CentOS 7\fP and install it
  1954. using the following command:
  1955. .INDENT 0.0
  1956. .INDENT 3.5
  1957. .sp
  1958. .nf
  1959. .ft C
  1960. rpm \-Uvh epel\-release\-X\-Y.rpm
  1961. .ft P
  1962. .fi
  1963. .UNINDENT
  1964. .UNINDENT
  1965. .sp
  1966. Replace \fBepel\-release\-X\-Y.rpm\fP with the appropriate filename.
  1967. .SS Installing Stable Release
  1968. .sp
  1969. Salt is packaged separately for the minion and the master. It is necessary
  1970. to install only the appropriate package for the role the machine will play.
  1971. Typically, there will be one master and multiple minions.
  1972. .INDENT 0.0
  1973. .INDENT 3.5
  1974. .INDENT 0.0
  1975. .IP \(bu 2
  1976. \fByum install salt\-master\fP
  1977. .IP \(bu 2
  1978. \fByum install salt\-minion\fP
  1979. .IP \(bu 2
  1980. \fByum install salt\-ssh\fP
  1981. .IP \(bu 2
  1982. \fByum install salt\-syndic\fP
  1983. .IP \(bu 2
  1984. \fByum install salt\-cloud\fP
  1985. .UNINDENT
  1986. .UNINDENT
  1987. .UNINDENT
  1988. .SS Installing from \fBepel\-testing\fP
  1989. .sp
  1990. When a new Salt release is packaged, it is first admitted into the
  1991. \fBepel\-testing\fP repository, before being moved to the stable EPEL repository.
  1992. .sp
  1993. To install from \fBepel\-testing\fP, use the \fBenablerepo\fP argument for \fByum\fP:
  1994. .INDENT 0.0
  1995. .INDENT 3.5
  1996. .sp
  1997. .nf
  1998. .ft C
  1999. yum \-\-enablerepo=epel\-testing install salt\-minion
  2000. .ft P
  2001. .fi
  2002. .UNINDENT
  2003. .UNINDENT
  2004. .SS Installation Using pip
  2005. .sp
  2006. Since Salt is on \fI\%PyPI\fP, it can be installed using pip, though most users
  2007. prefer to install using RPM packages (which can be installed from \fI\%EPEL\fP).
  2008. .sp
  2009. Installing from pip has a few additional requirements:
  2010. .INDENT 0.0
  2011. .IP \(bu 2
  2012. Install the group \(aqDevelopment Tools\(aq, \fByum groupinstall \(aqDevelopment Tools\(aq\fP
  2013. .IP \(bu 2
  2014. Install the \(aqzeromq\-devel\(aq package if it fails on linking against that
  2015. afterwards as well.
  2016. .UNINDENT
  2017. .sp
  2018. A pip install does not make the init scripts or the /etc/salt directory, and you
  2019. will need to provide your own systemd service unit.
  2020. .sp
  2021. Installation from pip:
  2022. .INDENT 0.0
  2023. .INDENT 3.5
  2024. .sp
  2025. .nf
  2026. .ft C
  2027. pip install salt
  2028. .ft P
  2029. .fi
  2030. .UNINDENT
  2031. .UNINDENT
  2032. .sp
  2033. \fBWARNING:\fP
  2034. .INDENT 0.0
  2035. .INDENT 3.5
  2036. If installing from pip (or from source using \fBsetup.py install\fP), be
  2037. advised that the \fByum\-utils\fP package is needed for Salt to manage
  2038. packages. Also, if the Python dependencies are not already installed, then
  2039. you will need additional libraries/tools installed to build some of them.
  2040. More information on this can be found here\&.
  2041. .UNINDENT
  2042. .UNINDENT
  2043. .SS ZeroMQ 4
  2044. .sp
  2045. We recommend using ZeroMQ 4 where available. SaltStack provides ZeroMQ 4.0.5
  2046. and \fBpyzmq\fP 14.5.0 in the \fI\%SaltStack Repository\fP\&.
  2047. .sp
  2048. If this repository is added \fIbefore\fP Salt is installed, then installing either
  2049. \fBsalt\-master\fP or \fBsalt\-minion\fP will automatically pull in ZeroMQ 4.0.5, and
  2050. additional steps to upgrade ZeroMQ and pyzmq are unnecessary.
  2051. .SS Package Management
  2052. .sp
  2053. Salt\(aqs interface to \fByum\fP makes heavy use of the
  2054. \fBrepoquery\fP utility, from the \fI\%yum\-utils\fP package. This package will be
  2055. installed as a dependency if salt is installed via EPEL. However, if salt has
  2056. been installed using pip, or a host is being managed using salt\-ssh, then as of
  2057. version 2014.7.0 \fI\%yum\-utils\fP will be installed automatically to satisfy this
  2058. dependency.
  2059. .SS Post\-installation tasks
  2060. .SS Master
  2061. .sp
  2062. To have the Master start automatically at boot time:
  2063. .sp
  2064. \fBRHEL/CentOS 5 and 6\fP
  2065. .INDENT 0.0
  2066. .INDENT 3.5
  2067. .sp
  2068. .nf
  2069. .ft C
  2070. chkconfig salt\-master on
  2071. .ft P
  2072. .fi
  2073. .UNINDENT
  2074. .UNINDENT
  2075. .sp
  2076. \fBRHEL/CentOS 7\fP
  2077. .INDENT 0.0
  2078. .INDENT 3.5
  2079. .sp
  2080. .nf
  2081. .ft C
  2082. systemctl enable salt\-master.service
  2083. .ft P
  2084. .fi
  2085. .UNINDENT
  2086. .UNINDENT
  2087. .sp
  2088. To start the Master:
  2089. .sp
  2090. \fBRHEL/CentOS 5 and 6\fP
  2091. .INDENT 0.0
  2092. .INDENT 3.5
  2093. .sp
  2094. .nf
  2095. .ft C
  2096. service salt\-master start
  2097. .ft P
  2098. .fi
  2099. .UNINDENT
  2100. .UNINDENT
  2101. .sp
  2102. \fBRHEL/CentOS 7\fP
  2103. .INDENT 0.0
  2104. .INDENT 3.5
  2105. .sp
  2106. .nf
  2107. .ft C
  2108. systemctl start salt\-master.service
  2109. .ft P
  2110. .fi
  2111. .UNINDENT
  2112. .UNINDENT
  2113. .SS Minion
  2114. .sp
  2115. To have the Minion start automatically at boot time:
  2116. .sp
  2117. \fBRHEL/CentOS 5 and 6\fP
  2118. .INDENT 0.0
  2119. .INDENT 3.5
  2120. .sp
  2121. .nf
  2122. .ft C
  2123. chkconfig salt\-minion on
  2124. .ft P
  2125. .fi
  2126. .UNINDENT
  2127. .UNINDENT
  2128. .sp
  2129. \fBRHEL/CentOS 7\fP
  2130. .INDENT 0.0
  2131. .INDENT 3.5
  2132. .sp
  2133. .nf
  2134. .ft C
  2135. systemctl enable salt\-minion.service
  2136. .ft P
  2137. .fi
  2138. .UNINDENT
  2139. .UNINDENT
  2140. .sp
  2141. To start the Minion:
  2142. .sp
  2143. \fBRHEL/CentOS 5 and 6\fP
  2144. .INDENT 0.0
  2145. .INDENT 3.5
  2146. .sp
  2147. .nf
  2148. .ft C
  2149. service salt\-minion start
  2150. .ft P
  2151. .fi
  2152. .UNINDENT
  2153. .UNINDENT
  2154. .sp
  2155. \fBRHEL/CentOS 7\fP
  2156. .INDENT 0.0
  2157. .INDENT 3.5
  2158. .sp
  2159. .nf
  2160. .ft C
  2161. systemctl start salt\-minion.service
  2162. .ft P
  2163. .fi
  2164. .UNINDENT
  2165. .UNINDENT
  2166. .sp
  2167. Now go to the Configuring Salt page.
  2168. .SS Solaris
  2169. .sp
  2170. Salt is known to work on Solaris but community packages are unmaintained.
  2171. .sp
  2172. It is possible to install Salt on Solaris by using \fIsetuptools\fP\&.
  2173. .sp
  2174. For example, to install the develop version of salt:
  2175. .INDENT 0.0
  2176. .INDENT 3.5
  2177. .sp
  2178. .nf
  2179. .ft C
  2180. git clone https://github.com/saltstack/salt
  2181. cd salt
  2182. sudo python setup.py install \-\-force
  2183. .ft P
  2184. .fi
  2185. .UNINDENT
  2186. .UNINDENT
  2187. .sp
  2188. \fBNOTE:\fP
  2189. .INDENT 0.0
  2190. .INDENT 3.5
  2191. SaltStack does offer commercial support for Solaris which includes packages.
  2192. .UNINDENT
  2193. .UNINDENT
  2194. .SS Ubuntu
  2195. .SS Installation from the Official SaltStack Repository
  2196. .sp
  2197. Packages for Ubuntu 16 (Xenial), Ubuntu 14 (Trusty), and Ubuntu 12 (Precise)
  2198. are available in the SaltStack repository.
  2199. .sp
  2200. Instructions are at \fI\%https://repo.saltstack.com/#ubuntu\fP\&.
  2201. .SS Install Packages
  2202. .sp
  2203. Install the Salt master, minion or other packages from the repository with
  2204. the \fIapt\-get\fP command. These examples each install one of Salt components, but
  2205. more than one package name may be given at a time:
  2206. .INDENT 0.0
  2207. .IP \(bu 2
  2208. \fBapt\-get install salt\-api\fP
  2209. .IP \(bu 2
  2210. \fBapt\-get install salt\-cloud\fP
  2211. .IP \(bu 2
  2212. \fBapt\-get install salt\-master\fP
  2213. .IP \(bu 2
  2214. \fBapt\-get install salt\-minion\fP
  2215. .IP \(bu 2
  2216. \fBapt\-get install salt\-ssh\fP
  2217. .IP \(bu 2
  2218. \fBapt\-get install salt\-syndic\fP
  2219. .UNINDENT
  2220. .SS Post\-installation tasks
  2221. .sp
  2222. Now go to the Configuring Salt page.
  2223. .SS Windows
  2224. .sp
  2225. Salt has full support for running the Salt minion on Windows. You must connect
  2226. Windows Salt minions to a Salt master on a supported operating system to
  2227. control your Salt Minions.
  2228. .sp
  2229. Many of the standard Salt modules have been ported to work on Windows and many
  2230. of the Salt States currently work on Windows as well.
  2231. .SS Installation from the Official SaltStack Repository
  2232. .sp
  2233. \fBLatest stable build from the selected branch\fP:
  2234. .sp
  2235. The output of \fBmd5sum <salt minion exe>\fP should match the contents of the
  2236. corresponding md5 file.
  2237. .sp
  2238. \fI\%Earlier builds from supported branches\fP
  2239. .sp
  2240. \fI\%Archived builds from unsupported branches\fP
  2241. .sp
  2242. \fBNOTE:\fP
  2243. .INDENT 0.0
  2244. .INDENT 3.5
  2245. The installation executable installs dependencies that the Salt minion
  2246. requires.
  2247. .UNINDENT
  2248. .UNINDENT
  2249. .sp
  2250. The 64bit installer has been tested on Windows 7 64bit and Windows Server
  2251. 2008R2 64bit. The 32bit installer has been tested on Windows 2008 Server 32bit.
  2252. Please file a bug report on our GitHub repo if issues for other platforms are
  2253. found.
  2254. .sp
  2255. There are installers available for Python 2 and Python 3.
  2256. .sp
  2257. The installer will detect previous installations of Salt and ask if you would
  2258. like to remove them. Clicking OK will remove the Salt binaries and related files
  2259. but leave any existing config, cache, and PKI information.
  2260. .SS Salt Minion Installation
  2261. .sp
  2262. If the system is missing the appropriate version of the Visual C++
  2263. Redistributable (vcredist) the user will be prompted to install it. Click \fBOK\fP
  2264. to install the vcredist. Click \fBCancel\fP to abort the installation without
  2265. making modifications to the system.
  2266. .sp
  2267. If Salt is already installed on the system the user will be prompted to remove
  2268. the previous installation. Click \fBOK\fP to uninstall Salt without removing the
  2269. configuration, PKI information, or cached files. Click \fBCancel\fP to abort the
  2270. installation before making any modifications to the system.
  2271. .sp
  2272. After the Welcome and the License Agreement, the installer asks for two bits of
  2273. information to configure the minion; the master hostname and the minion name.
  2274. The installer will update the minion config with these options.
  2275. .sp
  2276. If the installer finds an existing minion config file, these fields will be
  2277. populated with values from the existing config, but they will be grayed out.
  2278. There will also be a checkbox to use the existing config. If you continue, the
  2279. existing config will be used. If the checkbox is unchecked, default values are
  2280. displayed and can be changed. If you continue, the existing config file in
  2281. \fBc:\esalt\econf\fP will be removed along with the \fBc:\esalt\econf\eminion.d\fP
  2282. directory. The values entered will be used with the default config.
  2283. .sp
  2284. The final page allows you to start the minion service and optionally change its
  2285. startup type. By default, the minion is set to \fBAutomatic\fP\&. You can change the
  2286. minion start type to \fBAutomatic (Delayed Start)\fP by checking the \(aqDelayed
  2287. Start\(aq checkbox.
  2288. .sp
  2289. \fBNOTE:\fP
  2290. .INDENT 0.0
  2291. .INDENT 3.5
  2292. Highstates that require a reboot may fail after reboot because salt
  2293. continues the highstate before Windows has finished the booting process.
  2294. This can be fixed by changing the startup type to \(aqAutomatic (Delayed
  2295. Start)\(aq. The drawback is that it may increase the time it takes for the
  2296. \(aqsalt\-minion\(aq service to actually start.
  2297. .UNINDENT
  2298. .UNINDENT
  2299. .sp
  2300. The \fBsalt\-minion\fP service will appear in the Windows Service Manager and can
  2301. be managed there or from the command line like any other Windows service.
  2302. .INDENT 0.0
  2303. .INDENT 3.5
  2304. .sp
  2305. .nf
  2306. .ft C
  2307. sc start salt\-minion
  2308. net start salt\-minion
  2309. .ft P
  2310. .fi
  2311. .UNINDENT
  2312. .UNINDENT
  2313. .SS Installation Prerequisites
  2314. .sp
  2315. Most Salt functionality should work just fine right out of the box. A few Salt
  2316. modules rely on PowerShell. The minimum version of PowerShell required for Salt
  2317. is version 3. If you intend to work with DSC then Powershell version 5 is the
  2318. minimum.
  2319. .SS Silent Installer Options
  2320. .sp
  2321. The installer can be run silently by providing the \fB/S\fP option at the command
  2322. line. The installer also accepts the following options for configuring the Salt
  2323. Minion silently:
  2324. .TS
  2325. center;
  2326. |l|l|.
  2327. _
  2328. T{
  2329. Option
  2330. T} T{
  2331. Description
  2332. T}
  2333. _
  2334. T{
  2335. \fB/master=\fP
  2336. T} T{
  2337. A string value to set the IP address or hostname of
  2338. the master. Default value is \(aqsalt\(aq. You can pass a
  2339. single master or a comma\-separated list of masters.
  2340. Setting the master will cause the installer to use
  2341. the default config or a custom config if defined.
  2342. T}
  2343. _
  2344. T{
  2345. \fB/minion\-name=\fP
  2346. T} T{
  2347. A string value to set the minion name. Default value
  2348. is \(aqhostname\(aq. Setting the minion name causes the
  2349. installer to use the default config or a custom
  2350. config if defined.
  2351. T}
  2352. _
  2353. T{
  2354. \fB/start\-minion=\fP
  2355. T} T{
  2356. Either a 1 or 0. \(aq1\(aq will start the salt\-minion
  2357. service, \(aq0\(aq will not. Default is to start the
  2358. service after installation.
  2359. T}
  2360. _
  2361. T{
  2362. \fB/start\-minion\-delayed\fP
  2363. T} T{
  2364. Set the minion start type to
  2365. \fBAutomatic (Delayed Start)\fP\&.
  2366. T}
  2367. _
  2368. T{
  2369. \fB/default\-config\fP
  2370. T} T{
  2371. Overwrite the existing config if present with the
  2372. default config for salt. Default is to use the
  2373. existing config if present. If \fB/master\fP and/or
  2374. \fB/minion\-name\fP is passed, those values will be used
  2375. to update the new default config.
  2376. T}
  2377. _
  2378. T{
  2379. \fB/custom\-config=\fP
  2380. T} T{
  2381. A string value specifying the name of a custom config
  2382. file in the same path as the installer or the full
  2383. path to a custom config file. If \fB/master\fP and/or
  2384. \fB/minion\-name\fP is passed, those values will be used
  2385. to update the new custom config.
  2386. T}
  2387. _
  2388. T{
  2389. \fB/S\fP
  2390. T} T{
  2391. Runs the installation silently. Uses the above
  2392. settings or the defaults.
  2393. T}
  2394. _
  2395. T{
  2396. \fB/?\fP
  2397. T} T{
  2398. Displays command line help.
  2399. T}
  2400. _
  2401. .TE
  2402. .sp
  2403. \fBNOTE:\fP
  2404. .INDENT 0.0
  2405. .INDENT 3.5
  2406. \fB/start\-service\fP has been deprecated but will continue to function as
  2407. expected for the time being.
  2408. .UNINDENT
  2409. .UNINDENT
  2410. .sp
  2411. \fBNOTE:\fP
  2412. .INDENT 0.0
  2413. .INDENT 3.5
  2414. \fB/default\-config\fP and \fB/custom\-config=\fP will backup an existing config
  2415. if found. A timestamp and a \fB\&.bak\fP extension will be added. That includes
  2416. the \fBminion\fP file and the \fBminion.d\fP directory.
  2417. .UNINDENT
  2418. .UNINDENT
  2419. .sp
  2420. Here are some examples of using the silent installer:
  2421. .INDENT 0.0
  2422. .INDENT 3.5
  2423. .sp
  2424. .nf
  2425. .ft C
  2426. # Install the Salt Minion
  2427. # Configure the minion and start the service
  2428. Salt\-Minion\-2017.7.1\-Py2\-AMD64\-Setup.exe /S /master=yoursaltmaster /minion\-name=yourminionname
  2429. .ft P
  2430. .fi
  2431. .UNINDENT
  2432. .UNINDENT
  2433. .INDENT 0.0
  2434. .INDENT 3.5
  2435. .sp
  2436. .nf
  2437. .ft C
  2438. # Install the Salt Minion
  2439. # Configure the minion but don\(aqt start the minion service
  2440. Salt\-Minion\-2017.7.1\-Py3\-AMD64\-Setup.exe /S /master=yoursaltmaster /minion\-name=yourminionname /start\-minion=0
  2441. .ft P
  2442. .fi
  2443. .UNINDENT
  2444. .UNINDENT
  2445. .INDENT 0.0
  2446. .INDENT 3.5
  2447. .sp
  2448. .nf
  2449. .ft C
  2450. # Install the Salt Minion
  2451. # Configure the minion using a custom config and configuring multimaster
  2452. Salt\-Minion\-2017.7.1\-Py3\-AMD64\-Setup.exe /S /custom\-config=windows_minion /master=prod_master1,prod_master2
  2453. .ft P
  2454. .fi
  2455. .UNINDENT
  2456. .UNINDENT
  2457. .SS Running the Salt Minion on Windows as an Unprivileged User
  2458. .sp
  2459. Notes:
  2460. .INDENT 0.0
  2461. .IP \(bu 2
  2462. These instructions were tested with Windows Server 2008 R2
  2463. .IP \(bu 2
  2464. They are generalizable to any version of Windows that supports a salt\-minion
  2465. .UNINDENT
  2466. .SS Create the Unprivileged User that the Salt Minion will Run As
  2467. .INDENT 0.0
  2468. .IP 1. 4
  2469. Click \fBStart\fP > \fBControl Panel\fP > \fBUser Accounts\fP\&.
  2470. .IP 2. 4
  2471. Click \fBAdd or remove user accounts\fP\&.
  2472. .IP 3. 4
  2473. Click \fBCreate new account\fP\&.
  2474. .IP 4. 4
  2475. Enter \fBsalt\-user\fP (or a name of your preference) in the \fBNew account name\fP field.
  2476. .IP 5. 4
  2477. Select the \fBStandard user\fP radio button.
  2478. .IP 6. 4
  2479. Click the \fBCreate Account\fP button.
  2480. .IP 7. 4
  2481. Click on the newly created user account.
  2482. .IP 8. 4
  2483. Click the \fBCreate a password\fP link.
  2484. .IP 9. 4
  2485. In the \fBNew password\fP and \fBConfirm new password\fP fields, provide
  2486. a password (e.g "SuperSecretMinionPassword4Me!").
  2487. .IP 10. 4
  2488. In the \fBType a password hint\fP field, provide appropriate text (e.g. "My Salt Password").
  2489. .IP 11. 4
  2490. Click the \fBCreate password\fP button.
  2491. .IP 12. 4
  2492. Close the \fBChange an Account\fP window.
  2493. .UNINDENT
  2494. .SS Add the New User to the Access Control List for the Salt Folder
  2495. .INDENT 0.0
  2496. .IP 1. 3
  2497. In a File Explorer window, browse to the path where Salt is installed (the default path is \fBC:\eSalt\fP).
  2498. .IP 2. 3
  2499. Right\-click on the \fBSalt\fP folder and select \fBProperties\fP\&.
  2500. .IP 3. 3
  2501. Click on the \fBSecurity\fP tab.
  2502. .IP 4. 3
  2503. Click the \fBEdit\fP button.
  2504. .IP 5. 3
  2505. Click the \fBAdd\fP button.
  2506. .IP 6. 3
  2507. Type the name of your designated Salt user and click the \fBOK\fP button.
  2508. .IP 7. 3
  2509. Check the box to \fBAllow\fP the \fBModify\fP permission.
  2510. .IP 8. 3
  2511. Click the \fBOK\fP button.
  2512. .IP 9. 3
  2513. Click the \fBOK\fP button to close the \fBSalt Properties\fP window.
  2514. .UNINDENT
  2515. .SS Update the Windows Service User for the \fBsalt\-minion\fP Service
  2516. .INDENT 0.0
  2517. .IP 1. 4
  2518. Click \fBStart\fP > \fBAdministrative Tools\fP > \fBServices\fP\&.
  2519. .IP 2. 4
  2520. In the Services list, right\-click on \fBsalt\-minion\fP and select \fBProperties\fP\&.
  2521. .IP 3. 4
  2522. Click the \fBLog On\fP tab.
  2523. .IP 4. 4
  2524. Click the \fBThis account\fP radio button.
  2525. .IP 5. 4
  2526. Provide the account credentials created in section A.
  2527. .IP 6. 4
  2528. Click the \fBOK\fP button.
  2529. .IP 7. 4
  2530. Click the \fBOK\fP button to the prompt confirming that the user \fBhas been
  2531. granted the Log On As A Service right\fP\&.
  2532. .IP 8. 4
  2533. Click the \fBOK\fP button to the prompt confirming that \fBThe new logon name
  2534. will not take effect until you stop and restart the service\fP\&.
  2535. .IP 9. 4
  2536. Right\-Click on \fBsalt\-minion\fP and select \fBStop\fP\&.
  2537. .IP 10. 4
  2538. Right\-Click on \fBsalt\-minion\fP and select \fBStart\fP\&.
  2539. .UNINDENT
  2540. .SS Building and Developing on Windows
  2541. .sp
  2542. This document will explain how to set up a development environment for Salt on
  2543. Windows. The development environment allows you to work with the source code to
  2544. customize or fix bugs. It will also allow you to build your own installation.
  2545. .sp
  2546. There are several scripts to automate creating a Windows installer as well as
  2547. setting up an environment that facilitates developing and troubleshooting Salt
  2548. code. They are located in the \fBpkg\ewindows\fP directory in the Salt repo
  2549. \fI\%(here)\fP\&.
  2550. .SS Scripts:
  2551. .TS
  2552. center;
  2553. |l|l|.
  2554. _
  2555. T{
  2556. Script
  2557. T} T{
  2558. Description
  2559. T}
  2560. _
  2561. T{
  2562. \fBbuild_env_2.ps1\fP
  2563. T} T{
  2564. A PowerShell script that sets up a Python 2 build
  2565. environment
  2566. T}
  2567. _
  2568. T{
  2569. \fBbuild_env_3.ps1\fP
  2570. T} T{
  2571. A PowerShell script that sets up a Python 3 build
  2572. environment
  2573. T}
  2574. _
  2575. T{
  2576. \fBbuild_pkg.bat\fP
  2577. T} T{
  2578. A batch file that builds a Windows installer based on the
  2579. contents of the \fBC:\ePython27\fP directory
  2580. T}
  2581. _
  2582. T{
  2583. \fBbuild.bat\fP
  2584. T} T{
  2585. A batch file that fully automates the building of the
  2586. Windows installer using the above two scripts
  2587. T}
  2588. _
  2589. .TE
  2590. .sp
  2591. \fBNOTE:\fP
  2592. .INDENT 0.0
  2593. .INDENT 3.5
  2594. The \fBbuild.bat\fP and \fBbuild_pkg.bat\fP scripts both accept a parameter to
  2595. specify the version of Salt that will be displayed in the Windows installer.
  2596. If no version is passed, the version will be determined using git.
  2597. .sp
  2598. Both scripts also accept an additional parameter to specify the version of
  2599. Python to use. The default is 2.
  2600. .UNINDENT
  2601. .UNINDENT
  2602. .SS Prerequisite Software
  2603. .sp
  2604. The only prerequisite is \fI\%Git for Windows\fP\&.
  2605. .SS Create a Build Environment
  2606. .SS 1. Working Directory
  2607. .sp
  2608. Create a \fBSalt\-Dev\fP directory on the root of \fBC:\fP\&. This will be our working
  2609. directory. Navigate to \fBSalt\-Dev\fP and clone the
  2610. \fI\%Salt\fP repo from GitHub.
  2611. .sp
  2612. Open a command line and type:
  2613. .INDENT 0.0
  2614. .INDENT 3.5
  2615. .sp
  2616. .nf
  2617. .ft C
  2618. cd \e
  2619. md Salt\-Dev
  2620. cd Salt\-Dev
  2621. git clone https://github.com/saltstack/salt
  2622. .ft P
  2623. .fi
  2624. .UNINDENT
  2625. .UNINDENT
  2626. .sp
  2627. Go into the \fBsalt\fP directory and checkout the version of salt to work with
  2628. (2016.3 or higher).
  2629. .INDENT 0.0
  2630. .INDENT 3.5
  2631. .sp
  2632. .nf
  2633. .ft C
  2634. cd salt
  2635. git checkout 2017.7.2
  2636. .ft P
  2637. .fi
  2638. .UNINDENT
  2639. .UNINDENT
  2640. .SS 2. Setup the Python Environment
  2641. .sp
  2642. Navigate to the \fBpkg\ewindows\fP directory and execute the \fBbuild_env.ps1\fP
  2643. PowerShell script.
  2644. .INDENT 0.0
  2645. .INDENT 3.5
  2646. .sp
  2647. .nf
  2648. .ft C
  2649. cd pkg\ewindows
  2650. powershell \-file build_env_2.ps1
  2651. .ft P
  2652. .fi
  2653. .UNINDENT
  2654. .UNINDENT
  2655. .sp
  2656. \fBNOTE:\fP
  2657. .INDENT 0.0
  2658. .INDENT 3.5
  2659. You can also do this from Explorer by navigating to the \fBpkg\ewindows\fP
  2660. directory, right clicking the \fBbuild_env_2.ps1\fP powershell script and
  2661. selecting \fBRun with PowerShell\fP
  2662. .UNINDENT
  2663. .UNINDENT
  2664. .sp
  2665. This will download and install Python 2 with all the dependencies needed to
  2666. develop and build Salt.
  2667. .sp
  2668. \fBNOTE:\fP
  2669. .INDENT 0.0
  2670. .INDENT 3.5
  2671. If you get an error or the script fails to run you may need to change the
  2672. execution policy. Open a powershell window and type the following command:
  2673. .UNINDENT
  2674. .UNINDENT
  2675. .INDENT 0.0
  2676. .INDENT 3.5
  2677. .sp
  2678. .nf
  2679. .ft C
  2680. Set\-ExecutionPolicy RemoteSigned
  2681. .ft P
  2682. .fi
  2683. .UNINDENT
  2684. .UNINDENT
  2685. .SS 3. Salt in Editable Mode
  2686. .sp
  2687. Editable mode allows you to more easily modify and test the source code. For
  2688. more information see the \fI\%Pip documentation\fP\&.
  2689. .sp
  2690. Navigate to the root of the \fBsalt\fP directory and install Salt in editable mode
  2691. with \fBpip\fP
  2692. .INDENT 0.0
  2693. .INDENT 3.5
  2694. .sp
  2695. .nf
  2696. .ft C
  2697. cd \eSalt\-Dev\esalt
  2698. pip install \-e .
  2699. .ft P
  2700. .fi
  2701. .UNINDENT
  2702. .UNINDENT
  2703. .sp
  2704. \fBNOTE:\fP
  2705. .INDENT 0.0
  2706. .INDENT 3.5
  2707. The \fB\&.\fP is important
  2708. .UNINDENT
  2709. .UNINDENT
  2710. .sp
  2711. \fBNOTE:\fP
  2712. .INDENT 0.0
  2713. .INDENT 3.5
  2714. If \fBpip\fP is not recognized, you may need to restart your shell to get the
  2715. updated path
  2716. .UNINDENT
  2717. .UNINDENT
  2718. .sp
  2719. \fBNOTE:\fP
  2720. .INDENT 0.0
  2721. .INDENT 3.5
  2722. If \fBpip\fP is still not recognized make sure that the Python Scripts folder
  2723. is in the System \fB%PATH%\fP\&. (\fBC:\ePython2\eScripts\fP)
  2724. .UNINDENT
  2725. .UNINDENT
  2726. .SS 4. Setup Salt Configuration
  2727. .sp
  2728. Salt requires a minion configuration file and a few other directories. The
  2729. default config file is named \fBminion\fP located in \fBC:\esalt\econf\fP\&. The
  2730. easiest way to set this up is to copy the contents of the
  2731. \fBsalt\epkg\ewindows\ebuildenv\fP directory to \fBC:\esalt\fP\&.
  2732. .INDENT 0.0
  2733. .INDENT 3.5
  2734. .sp
  2735. .nf
  2736. .ft C
  2737. cd \e
  2738. md salt
  2739. xcopy /s /e \eSalt\-Dev\esalt\epkg\ewindows\ebuildenv\e* \esalt\e
  2740. .ft P
  2741. .fi
  2742. .UNINDENT
  2743. .UNINDENT
  2744. .sp
  2745. Now go into the \fBC:\esalt\econf\fP directory and edit the minion config file named
  2746. \fBminion\fP (no extension). You need to configure the master and id parameters in
  2747. this file. Edit the following lines:
  2748. .INDENT 0.0
  2749. .INDENT 3.5
  2750. .sp
  2751. .nf
  2752. .ft C
  2753. master: <ip or name of your master>
  2754. id: <name of your minion>
  2755. .ft P
  2756. .fi
  2757. .UNINDENT
  2758. .UNINDENT
  2759. .SS Create a Windows Installer
  2760. .sp
  2761. To create a Windows installer, follow steps 1 and 2 from
  2762. \fI\%Create a Build Environment\fP above. Then proceed
  2763. to 3 below:
  2764. .SS 3. Install Salt
  2765. .sp
  2766. To create the installer for Window we install Salt using Python instead of pip.
  2767. Navigate to the root \fBsalt\fP directory and install Salt.
  2768. .INDENT 0.0
  2769. .INDENT 3.5
  2770. .sp
  2771. .nf
  2772. .ft C
  2773. cd \eSalt\-Dev\esalt
  2774. python setup.py install
  2775. .ft P
  2776. .fi
  2777. .UNINDENT
  2778. .UNINDENT
  2779. .SS 4. Create the Windows Installer
  2780. .sp
  2781. Navigate to the \fBpkg\ewindows\fP directory and run the \fBbuild_pkg.bat\fP
  2782. with the build version (2017.7.2) and the Python version as parameters.
  2783. .INDENT 0.0
  2784. .INDENT 3.5
  2785. .sp
  2786. .nf
  2787. .ft C
  2788. cd pkg\ewindows
  2789. build_pkg.bat 2017.7.2 2
  2790. ^^^^^^^^ ^
  2791. | |
  2792. # build version \-\- |
  2793. # python version \-\-\-\-\-\-
  2794. .ft P
  2795. .fi
  2796. .UNINDENT
  2797. .UNINDENT
  2798. .sp
  2799. \fBNOTE:\fP
  2800. .INDENT 0.0
  2801. .INDENT 3.5
  2802. If no version is passed, the \fBbuild_pkg.bat\fP will guess the version number
  2803. using git. If the python version is not passed, the default is 2.
  2804. .UNINDENT
  2805. .UNINDENT
  2806. .SS Creating a Windows Installer: Alternate Method (Easier)
  2807. .sp
  2808. Clone the \fI\%Salt\fP repo from GitHub into the
  2809. directory of your choice. We\(aqre going to use \fBSalt\-Dev\fP\&.
  2810. .INDENT 0.0
  2811. .INDENT 3.5
  2812. .sp
  2813. .nf
  2814. .ft C
  2815. cd \e
  2816. md Salt\-Dev
  2817. cd Salt\-Dev
  2818. git clone https://github.com/saltstack/salt
  2819. .ft P
  2820. .fi
  2821. .UNINDENT
  2822. .UNINDENT
  2823. .sp
  2824. Go into the \fBsalt\fP directory and checkout the version of Salt you want to
  2825. build.
  2826. .INDENT 0.0
  2827. .INDENT 3.5
  2828. .sp
  2829. .nf
  2830. .ft C
  2831. cd salt
  2832. git checkout 2017.7.2
  2833. .ft P
  2834. .fi
  2835. .UNINDENT
  2836. .UNINDENT
  2837. .sp
  2838. Then navigate to \fBpkg\ewindows\fP and run the \fBbuild.bat\fP script with the
  2839. version you\(aqre building.
  2840. .INDENT 0.0
  2841. .INDENT 3.5
  2842. .sp
  2843. .nf
  2844. .ft C
  2845. cd pkg\ewindows
  2846. build.bat 2017.7.2 3
  2847. ^^^^^^^^ ^
  2848. | |
  2849. # build version |
  2850. # python version \-\-
  2851. .ft P
  2852. .fi
  2853. .UNINDENT
  2854. .UNINDENT
  2855. .sp
  2856. This will install everything needed to build a Windows installer for Salt using
  2857. Python 3. The binary will be in the \fBsalt\epkg\ewindows\einstaller\fP directory.
  2858. .SS Testing the Salt minion
  2859. .INDENT 0.0
  2860. .IP 1. 3
  2861. Create the directory \fBC:\esalt\fP (if it doesn\(aqt exist already)
  2862. .IP 2. 3
  2863. .INDENT 3.0
  2864. .TP
  2865. .B Copy the example \fBconf\fP and \fBvar\fP directories from
  2866. \fBpkg\ewindows\ebuildenv\fP into \fBC:\esalt\fP
  2867. .UNINDENT
  2868. .IP 3. 3
  2869. Edit \fBC:\esalt\econf\eminion\fP
  2870. .INDENT 3.0
  2871. .INDENT 3.5
  2872. .INDENT 0.0
  2873. .INDENT 3.5
  2874. .sp
  2875. .nf
  2876. .ft C
  2877. master: ipaddress or hostname of your salt\-master
  2878. .ft P
  2879. .fi
  2880. .UNINDENT
  2881. .UNINDENT
  2882. .UNINDENT
  2883. .UNINDENT
  2884. .IP 4. 3
  2885. Start the salt\-minion
  2886. .INDENT 3.0
  2887. .INDENT 3.5
  2888. .INDENT 0.0
  2889. .INDENT 3.5
  2890. .sp
  2891. .nf
  2892. .ft C
  2893. cd C:\ePython27\eScripts
  2894. python salt\-minion \-l debug
  2895. .ft P
  2896. .fi
  2897. .UNINDENT
  2898. .UNINDENT
  2899. .UNINDENT
  2900. .UNINDENT
  2901. .IP 5. 3
  2902. On the salt\-master accept the new minion\(aqs key
  2903. .INDENT 3.0
  2904. .INDENT 3.5
  2905. .INDENT 0.0
  2906. .INDENT 3.5
  2907. .sp
  2908. .nf
  2909. .ft C
  2910. sudo salt\-key \-A
  2911. .ft P
  2912. .fi
  2913. .UNINDENT
  2914. .UNINDENT
  2915. .sp
  2916. This accepts all unaccepted keys. If you\(aqre concerned about security just
  2917. accept the key for this specific minion.
  2918. .UNINDENT
  2919. .UNINDENT
  2920. .IP 6. 3
  2921. Test that your minion is responding
  2922. .INDENT 3.0
  2923. .INDENT 3.5
  2924. On the salt\-master run:
  2925. .INDENT 0.0
  2926. .INDENT 3.5
  2927. .sp
  2928. .nf
  2929. .ft C
  2930. sudo salt \(aq*\(aq test.version
  2931. .ft P
  2932. .fi
  2933. .UNINDENT
  2934. .UNINDENT
  2935. .UNINDENT
  2936. .UNINDENT
  2937. .UNINDENT
  2938. .sp
  2939. You should get the following response: \fB{\(aqyour minion hostname\(aq: True}\fP
  2940. .SS Packages Management Under Windows 2003
  2941. .sp
  2942. Windows Server 2003 and Windows XP have both reached End of Support. Though Salt
  2943. is not officially supported on operating systems that are EoL, some
  2944. functionality may continue to work.
  2945. .sp
  2946. On Windows Server 2003, you need to install optional component "WMI Windows
  2947. Installer Provider" to get a full list of installed packages. If you don\(aqt have
  2948. this, salt\-minion can\(aqt report some installed software.
  2949. .SS SUSE
  2950. .SS Installation from the Official SaltStack Repository
  2951. .sp
  2952. Packages for SUSE 12 SP1, SUSE 12, SUSE 11, openSUSE 13 and openSUSE Leap 42.1
  2953. are available in the SaltStack Repository.
  2954. .sp
  2955. Instructions are at \fI\%https://repo.saltstack.com/#suse\fP\&.
  2956. .SS Installation from the SUSE Repository
  2957. .sp
  2958. Since openSUSE 13.2, Salt 2014.1.11 is available in the primary repositories.
  2959. With the release of SUSE manager 3 a new repository setup has been created.
  2960. The new repo will by systemsmanagement:saltstack, which is the source
  2961. for newer stable packages. For backward compatibility a linkpackage will be
  2962. created to the old devel:language:python repo.
  2963. All development of suse packages will be done in systemsmanagement:saltstack:testing.
  2964. This will ensure that salt will be in mainline suse repo\(aqs, a stable release
  2965. repo and a testing repo for further enhancements.
  2966. .SS Installation
  2967. .sp
  2968. Salt can be installed using \fBzypper\fP and is available in the standard openSUSE/SLES
  2969. repositories.
  2970. .SS Stable Release
  2971. .sp
  2972. Salt is packaged separately for the minion and the master. It is necessary only to
  2973. install the appropriate package for the role the machine will play. Typically, there
  2974. will be one master and multiple minions.
  2975. .INDENT 0.0
  2976. .INDENT 3.5
  2977. .sp
  2978. .nf
  2979. .ft C
  2980. zypper install salt\-master
  2981. zypper install salt\-minion
  2982. .ft P
  2983. .fi
  2984. .UNINDENT
  2985. .UNINDENT
  2986. .SS Post\-installation tasks openSUSE
  2987. .sp
  2988. \fBMaster\fP
  2989. .sp
  2990. To have the Master start automatically at boot time:
  2991. .INDENT 0.0
  2992. .INDENT 3.5
  2993. .sp
  2994. .nf
  2995. .ft C
  2996. systemctl enable salt\-master.service
  2997. .ft P
  2998. .fi
  2999. .UNINDENT
  3000. .UNINDENT
  3001. .sp
  3002. To start the Master:
  3003. .INDENT 0.0
  3004. .INDENT 3.5
  3005. .sp
  3006. .nf
  3007. .ft C
  3008. systemctl start salt\-master.service
  3009. .ft P
  3010. .fi
  3011. .UNINDENT
  3012. .UNINDENT
  3013. .sp
  3014. \fBMinion\fP
  3015. .sp
  3016. To have the Minion start automatically at boot time:
  3017. .INDENT 0.0
  3018. .INDENT 3.5
  3019. .sp
  3020. .nf
  3021. .ft C
  3022. systemctl enable salt\-minion.service
  3023. .ft P
  3024. .fi
  3025. .UNINDENT
  3026. .UNINDENT
  3027. .sp
  3028. To start the Minion:
  3029. .INDENT 0.0
  3030. .INDENT 3.5
  3031. .sp
  3032. .nf
  3033. .ft C
  3034. systemctl start salt\-minion.service
  3035. .ft P
  3036. .fi
  3037. .UNINDENT
  3038. .UNINDENT
  3039. .SS Post\-installation tasks SLES
  3040. .sp
  3041. \fBMaster\fP
  3042. .sp
  3043. To have the Master start automatically at boot time:
  3044. .INDENT 0.0
  3045. .INDENT 3.5
  3046. .sp
  3047. .nf
  3048. .ft C
  3049. chkconfig salt\-master on
  3050. .ft P
  3051. .fi
  3052. .UNINDENT
  3053. .UNINDENT
  3054. .sp
  3055. To start the Master:
  3056. .INDENT 0.0
  3057. .INDENT 3.5
  3058. .sp
  3059. .nf
  3060. .ft C
  3061. rcsalt\-master start
  3062. .ft P
  3063. .fi
  3064. .UNINDENT
  3065. .UNINDENT
  3066. .sp
  3067. \fBMinion\fP
  3068. .sp
  3069. To have the Minion start automatically at boot time:
  3070. .INDENT 0.0
  3071. .INDENT 3.5
  3072. .sp
  3073. .nf
  3074. .ft C
  3075. chkconfig salt\-minion on
  3076. .ft P
  3077. .fi
  3078. .UNINDENT
  3079. .UNINDENT
  3080. .sp
  3081. To start the Minion:
  3082. .INDENT 0.0
  3083. .INDENT 3.5
  3084. .sp
  3085. .nf
  3086. .ft C
  3087. rcsalt\-minion start
  3088. .ft P
  3089. .fi
  3090. .UNINDENT
  3091. .UNINDENT
  3092. .SS Unstable Release
  3093. .SS openSUSE
  3094. .sp
  3095. For openSUSE Tumbleweed run the following as root:
  3096. .INDENT 0.0
  3097. .INDENT 3.5
  3098. .sp
  3099. .nf
  3100. .ft C
  3101. zypper install salt salt\-minion salt\-master
  3102. .ft P
  3103. .fi
  3104. .UNINDENT
  3105. .UNINDENT
  3106. .sp
  3107. For openSUSE 15.0 Leap run the following as root:
  3108. .INDENT 0.0
  3109. .INDENT 3.5
  3110. .sp
  3111. .nf
  3112. .ft C
  3113. zypper install salt salt\-minion salt\-master
  3114. .ft P
  3115. .fi
  3116. .UNINDENT
  3117. .UNINDENT
  3118. .sp
  3119. For openSUSE 15.1 run the following as root:
  3120. .INDENT 0.0
  3121. .INDENT 3.5
  3122. .sp
  3123. .nf
  3124. .ft C
  3125. zypper install salt salt\-minion salt\-master
  3126. .ft P
  3127. .fi
  3128. .UNINDENT
  3129. .UNINDENT
  3130. .SS SUSE Linux Enterprise
  3131. .sp
  3132. For SLE 15 and above run the following as root:
  3133. .INDENT 0.0
  3134. .INDENT 3.5
  3135. .sp
  3136. .nf
  3137. .ft C
  3138. zypper install salt salt\-minion salt\-master
  3139. .ft P
  3140. .fi
  3141. .UNINDENT
  3142. .UNINDENT
  3143. .sp
  3144. Now go to the Configuring Salt page.
  3145. .SS Initial Configuration
  3146. .SS Configuring Salt
  3147. .sp
  3148. Salt configuration is very simple. The default configuration for the
  3149. master will work for most installations and the only requirement for
  3150. setting up a minion is to set the location of the master in the minion
  3151. configuration file.
  3152. .sp
  3153. The configuration files will be installed to \fB/etc/salt\fP and are named
  3154. after the respective components, \fB/etc/salt/master\fP, and
  3155. \fB/etc/salt/minion\fP\&.
  3156. .SS Master Configuration
  3157. .sp
  3158. By default the Salt master listens on ports 4505 and 4506 on all
  3159. interfaces (0.0.0.0). To bind Salt to a specific IP, redefine the
  3160. "interface" directive in the master configuration file, typically
  3161. \fB/etc/salt/master\fP, as follows:
  3162. .INDENT 0.0
  3163. .INDENT 3.5
  3164. .sp
  3165. .nf
  3166. .ft C
  3167. \- #interface: 0.0.0.0
  3168. + interface: 10.0.0.1
  3169. .ft P
  3170. .fi
  3171. .UNINDENT
  3172. .UNINDENT
  3173. .sp
  3174. After updating the configuration file, restart the Salt master.
  3175. See the master configuration reference
  3176. for more details about other configurable options.
  3177. .SS Minion Configuration
  3178. .sp
  3179. Although there are many Salt Minion configuration options, configuring
  3180. a Salt Minion is very simple. By default a Salt Minion will
  3181. try to connect to the DNS name "salt"; if the Minion is able to
  3182. resolve that name correctly, no configuration is needed.
  3183. .sp
  3184. If the DNS name "salt" does not resolve to point to the correct
  3185. location of the Master, redefine the "master" directive in the minion
  3186. configuration file, typically \fB/etc/salt/minion\fP, as follows:
  3187. .INDENT 0.0
  3188. .INDENT 3.5
  3189. .sp
  3190. .nf
  3191. .ft C
  3192. \- #master: salt
  3193. + master: 10.0.0.1
  3194. .ft P
  3195. .fi
  3196. .UNINDENT
  3197. .UNINDENT
  3198. .sp
  3199. After updating the configuration file, restart the Salt minion.
  3200. See the minion configuration reference
  3201. for more details about other configurable options.
  3202. .SS Proxy Minion Configuration
  3203. .sp
  3204. A proxy minion emulates the behaviour of a regular minion
  3205. and inherits their options.
  3206. .sp
  3207. Similarly, the configuration file is \fB/etc/salt/proxy\fP and the proxy
  3208. tries to connect to the DNS name "salt".
  3209. .sp
  3210. In addition to the regular minion options,
  3211. there are several proxy\-specific \- see the
  3212. proxy minion configuration reference\&.
  3213. .SS Running Salt
  3214. .INDENT 0.0
  3215. .IP 1. 3
  3216. Start the master in the foreground (to daemonize the process, pass the
  3217. \fB\-d flag\fP):
  3218. .INDENT 3.0
  3219. .INDENT 3.5
  3220. .sp
  3221. .nf
  3222. .ft C
  3223. salt\-master
  3224. .ft P
  3225. .fi
  3226. .UNINDENT
  3227. .UNINDENT
  3228. .IP 2. 3
  3229. Start the minion in the foreground (to daemonize the process, pass the
  3230. \fB\-d flag\fP):
  3231. .INDENT 3.0
  3232. .INDENT 3.5
  3233. .sp
  3234. .nf
  3235. .ft C
  3236. salt\-minion
  3237. .ft P
  3238. .fi
  3239. .UNINDENT
  3240. .UNINDENT
  3241. .UNINDENT
  3242. .INDENT 0.0
  3243. .INDENT 3.5
  3244. .IP "Having trouble?"
  3245. .sp
  3246. The simplest way to troubleshoot Salt is to run the master and minion in
  3247. the foreground with \fBlog level\fP set to \fBdebug\fP:
  3248. .INDENT 0.0
  3249. .INDENT 3.5
  3250. .sp
  3251. .nf
  3252. .ft C
  3253. salt\-master \-\-log\-level=debug
  3254. .ft P
  3255. .fi
  3256. .UNINDENT
  3257. .UNINDENT
  3258. .sp
  3259. For information on salt\(aqs logging system please see the logging
  3260. document\&.
  3261. .UNINDENT
  3262. .UNINDENT
  3263. .INDENT 0.0
  3264. .INDENT 3.5
  3265. .IP "Run as an unprivileged (non\-root) user"
  3266. .sp
  3267. To run Salt as another user, set the \fBuser\fP parameter in the
  3268. master config file.
  3269. .sp
  3270. Additionally, ownership, and permissions need to be set such that the
  3271. desired user can read from and write to the following directories (and
  3272. their subdirectories, where applicable):
  3273. .INDENT 0.0
  3274. .IP \(bu 2
  3275. /etc/salt
  3276. .IP \(bu 2
  3277. /var/cache/salt
  3278. .IP \(bu 2
  3279. /var/log/salt
  3280. .IP \(bu 2
  3281. /var/run/salt
  3282. .UNINDENT
  3283. .sp
  3284. More information about running salt as a non\-privileged user can be found
  3285. here\&.
  3286. .UNINDENT
  3287. .UNINDENT
  3288. .sp
  3289. There is also a full troubleshooting guide
  3290. available.
  3291. .SS Key Identity
  3292. .sp
  3293. Salt provides commands to validate the identity of your Salt master
  3294. and Salt minions before the initial key exchange. Validating key identity helps
  3295. avoid inadvertently connecting to the wrong Salt master, and helps prevent
  3296. a potential MiTM attack when establishing the initial connection.
  3297. .SS Master Key Fingerprint
  3298. .sp
  3299. Print the master key fingerprint by running the following command on the Salt master:
  3300. .INDENT 0.0
  3301. .INDENT 3.5
  3302. .sp
  3303. .nf
  3304. .ft C
  3305. salt\-key \-F master
  3306. .ft P
  3307. .fi
  3308. .UNINDENT
  3309. .UNINDENT
  3310. .sp
  3311. Copy the \fBmaster.pub\fP fingerprint from the \fILocal Keys\fP section, and then set this value
  3312. as the \fBmaster_finger\fP in the minion configuration file. Save the configuration
  3313. file and then restart the Salt minion.
  3314. .SS Minion Key Fingerprint
  3315. .sp
  3316. Run the following command on each Salt minion to view the minion key fingerprint:
  3317. .INDENT 0.0
  3318. .INDENT 3.5
  3319. .sp
  3320. .nf
  3321. .ft C
  3322. salt\-call \-\-local key.finger
  3323. .ft P
  3324. .fi
  3325. .UNINDENT
  3326. .UNINDENT
  3327. .sp
  3328. Compare this value to the value that is displayed when you run the
  3329. \fBsalt\-key \-\-finger <MINION_ID>\fP command on the Salt master.
  3330. .SS Key Management
  3331. .sp
  3332. Salt uses AES encryption for all communication between the Master and
  3333. the Minion. This ensures that the commands sent to the Minions cannot
  3334. be tampered with, and that communication between Master and Minion is
  3335. authenticated through trusted, accepted keys.
  3336. .sp
  3337. Before commands can be sent to a Minion, its key must be accepted on
  3338. the Master. Run the \fBsalt\-key\fP command to list the keys known to
  3339. the Salt Master:
  3340. .INDENT 0.0
  3341. .INDENT 3.5
  3342. .sp
  3343. .nf
  3344. .ft C
  3345. [root@master ~]# salt\-key \-L
  3346. Unaccepted Keys:
  3347. alpha
  3348. bravo
  3349. charlie
  3350. delta
  3351. Accepted Keys:
  3352. .ft P
  3353. .fi
  3354. .UNINDENT
  3355. .UNINDENT
  3356. .sp
  3357. This example shows that the Salt Master is aware of four Minions, but none of
  3358. the keys has been accepted. To accept the keys and allow the Minions to be
  3359. controlled by the Master, again use the \fBsalt\-key\fP command:
  3360. .INDENT 0.0
  3361. .INDENT 3.5
  3362. .sp
  3363. .nf
  3364. .ft C
  3365. [root@master ~]# salt\-key \-A
  3366. [root@master ~]# salt\-key \-L
  3367. Unaccepted Keys:
  3368. Accepted Keys:
  3369. alpha
  3370. bravo
  3371. charlie
  3372. delta
  3373. .ft P
  3374. .fi
  3375. .UNINDENT
  3376. .UNINDENT
  3377. .sp
  3378. The \fBsalt\-key\fP command allows for signing keys individually or in bulk. The
  3379. example above, using \fB\-A\fP bulk\-accepts all pending keys. To accept keys
  3380. individually use the lowercase of the same option, \fB\-a keyname\fP\&.
  3381. .sp
  3382. \fBSEE ALSO:\fP
  3383. .INDENT 0.0
  3384. .INDENT 3.5
  3385. salt\-key manpage
  3386. .UNINDENT
  3387. .UNINDENT
  3388. .SS Sending Commands
  3389. .sp
  3390. Communication between the Master and a Minion may be verified by running
  3391. the \fBtest.version\fP command:
  3392. .INDENT 0.0
  3393. .INDENT 3.5
  3394. .sp
  3395. .nf
  3396. .ft C
  3397. [root@master ~]# salt alpha test.version
  3398. alpha:
  3399. 2018.3.4
  3400. .ft P
  3401. .fi
  3402. .UNINDENT
  3403. .UNINDENT
  3404. .sp
  3405. Communication between the Master and all Minions may be tested in a
  3406. similar way:
  3407. .INDENT 0.0
  3408. .INDENT 3.5
  3409. .sp
  3410. .nf
  3411. .ft C
  3412. [root@master ~]# salt \(aq*\(aq test.version
  3413. alpha:
  3414. 2018.3.4
  3415. bravo:
  3416. 2018.3.4
  3417. charlie:
  3418. 2018.3.4
  3419. delta:
  3420. 2018.3.4
  3421. .ft P
  3422. .fi
  3423. .UNINDENT
  3424. .UNINDENT
  3425. .sp
  3426. Each of the Minions should send a \fB2018.3.4\fP response as shown above,
  3427. or any other salt version installed.
  3428. .SS What\(aqs Next?
  3429. .sp
  3430. Understanding targeting is important. From there, depending
  3431. on the way you wish to use Salt, you should also proceed to learn about
  3432. Remote Execution and Configuration Management\&.
  3433. .SS Additional Installation Guides
  3434. .SS Salt Bootstrap
  3435. .sp
  3436. The Salt Bootstrap Script allows a user to install the Salt Minion or Master
  3437. on a variety of system distributions and versions.
  3438. .sp
  3439. The Salt Bootstrap Script is a shell script is known as \fBbootstrap\-salt.sh\fP\&.
  3440. It runs through a series of checks to determine the operating system type and
  3441. version. It then installs the Salt binaries using the appropriate methods.
  3442. .sp
  3443. The Salt Bootstrap Script installs the minimum number of packages required to
  3444. run Salt. This means that in the event you run the bootstrap to install via
  3445. package, Git will not be installed. Installing the minimum number of packages
  3446. helps ensure the script stays as lightweight as possible, assuming the user
  3447. will install any other required packages after the Salt binaries are present
  3448. on the system.
  3449. .sp
  3450. The Salt Bootstrap Script is maintained in a separate repo from Salt, complete
  3451. with its own issues, pull requests, contributing guidelines, release protocol,
  3452. etc.
  3453. .sp
  3454. To learn more, please see the Salt Bootstrap repo links:
  3455. .INDENT 0.0
  3456. .IP \(bu 2
  3457. \fI\%Salt Bootstrap repo\fP
  3458. .IP \(bu 2
  3459. \fI\%README\fP: includes supported operating systems, example usage, and more.
  3460. .IP \(bu 2
  3461. \fI\%Contributing Guidelines\fP
  3462. .IP \(bu 2
  3463. \fI\%Release Process\fP
  3464. .UNINDENT
  3465. .sp
  3466. \fBNOTE:\fP
  3467. .INDENT 0.0
  3468. .INDENT 3.5
  3469. The Salt Bootstrap script can be found in the Salt repo under the
  3470. \fBsalt/cloud/deploy/bootstrap\-salt.sh\fP path. Any changes to this file
  3471. will be overwritten! Bug fixes and feature additions must be submitted
  3472. via the \fI\%Salt Bootstrap repo\fP\&. Please see the Salt Bootstrap Script\(aqs
  3473. \fI\%Release Process\fP for more information.
  3474. .UNINDENT
  3475. .UNINDENT
  3476. .SS Opening the Firewall up for Salt
  3477. .sp
  3478. The Salt master communicates with the minions using an AES\-encrypted ZeroMQ
  3479. connection. These communications are done over TCP ports \fB4505\fP and \fB4506\fP,
  3480. which need to be accessible on the master only. This document outlines suggested
  3481. firewall rules for allowing these incoming connections to the master.
  3482. .sp
  3483. \fBNOTE:\fP
  3484. .INDENT 0.0
  3485. .INDENT 3.5
  3486. No firewall configuration needs to be done on Salt minions. These changes
  3487. refer to the master only.
  3488. .UNINDENT
  3489. .UNINDENT
  3490. .SS Fedora 18 and beyond / RHEL 7 / CentOS 7
  3491. .sp
  3492. Starting with Fedora 18 \fI\%FirewallD\fP is the tool that is used to dynamically
  3493. manage the firewall rules on a host. It has support for IPv4/6 settings and
  3494. the separation of runtime and permanent configurations. To interact with
  3495. FirewallD use the command line client \fBfirewall\-cmd\fP\&.
  3496. .sp
  3497. \fBfirewall\-cmd example\fP:
  3498. .INDENT 0.0
  3499. .INDENT 3.5
  3500. .sp
  3501. .nf
  3502. .ft C
  3503. firewall\-cmd \-\-permanent \-\-zone=<zone> \-\-add\-port=4505\-4506/tcp
  3504. .ft P
  3505. .fi
  3506. .UNINDENT
  3507. .UNINDENT
  3508. .sp
  3509. A network zone defines the security level of trust for the network.
  3510. The user should choose an appropriate zone value for their setup.
  3511. Possible values include: drop, block, public, external, dmz, work, home, internal, trusted.
  3512. .sp
  3513. Don\(aqt forget to reload after you made your changes.
  3514. .INDENT 0.0
  3515. .INDENT 3.5
  3516. .sp
  3517. .nf
  3518. .ft C
  3519. firewall\-cmd \-\-reload
  3520. .ft P
  3521. .fi
  3522. .UNINDENT
  3523. .UNINDENT
  3524. .SS RHEL 6 / CentOS 6
  3525. .sp
  3526. The \fBlokkit\fP command packaged with some Linux distributions makes opening
  3527. iptables firewall ports very simple via the command line. Just be careful
  3528. to not lock out access to the server by neglecting to open the ssh port.
  3529. .sp
  3530. \fBlokkit example\fP:
  3531. .INDENT 0.0
  3532. .INDENT 3.5
  3533. .sp
  3534. .nf
  3535. .ft C
  3536. lokkit \-p 22:tcp \-p 4505:tcp \-p 4506:tcp
  3537. .ft P
  3538. .fi
  3539. .UNINDENT
  3540. .UNINDENT
  3541. .sp
  3542. The \fBsystem\-config\-firewall\-tui\fP command provides a text\-based interface to
  3543. modifying the firewall.
  3544. .sp
  3545. \fBsystem\-config\-firewall\-tui\fP:
  3546. .INDENT 0.0
  3547. .INDENT 3.5
  3548. .sp
  3549. .nf
  3550. .ft C
  3551. system\-config\-firewall\-tui
  3552. .ft P
  3553. .fi
  3554. .UNINDENT
  3555. .UNINDENT
  3556. .SS openSUSE
  3557. .sp
  3558. Salt installs firewall rules in \fI\%/etc/sysconfig/SuSEfirewall2.d/services/salt\fP\&.
  3559. Enable with:
  3560. .INDENT 0.0
  3561. .INDENT 3.5
  3562. .sp
  3563. .nf
  3564. .ft C
  3565. SuSEfirewall2 open
  3566. SuSEfirewall2 start
  3567. .ft P
  3568. .fi
  3569. .UNINDENT
  3570. .UNINDENT
  3571. .sp
  3572. If you have an older package of Salt where the above configuration file is
  3573. not included, the \fBSuSEfirewall2\fP command makes opening iptables firewall
  3574. ports very simple via the command line.
  3575. .sp
  3576. \fBSuSEfirewall example\fP:
  3577. .INDENT 0.0
  3578. .INDENT 3.5
  3579. .sp
  3580. .nf
  3581. .ft C
  3582. SuSEfirewall2 open EXT TCP 4505
  3583. SuSEfirewall2 open EXT TCP 4506
  3584. .ft P
  3585. .fi
  3586. .UNINDENT
  3587. .UNINDENT
  3588. .sp
  3589. The firewall module in YaST2 provides a text\-based interface to modifying the
  3590. firewall.
  3591. .sp
  3592. \fBYaST2\fP:
  3593. .INDENT 0.0
  3594. .INDENT 3.5
  3595. .sp
  3596. .nf
  3597. .ft C
  3598. yast2 firewall
  3599. .ft P
  3600. .fi
  3601. .UNINDENT
  3602. .UNINDENT
  3603. .SS Windows
  3604. .sp
  3605. Windows Firewall is the default component of Microsoft Windows that provides
  3606. firewalling and packet filtering. There are many 3rd party firewalls available
  3607. for Windows, some of which use rules from the Windows Firewall. If you are
  3608. experiencing problems see the vendor\(aqs specific documentation for opening the
  3609. required ports.
  3610. .sp
  3611. The Windows Firewall can be configured using the Windows Interface or from the
  3612. command line.
  3613. .sp
  3614. \fBWindows Firewall (interface)\fP:
  3615. .INDENT 0.0
  3616. .IP 1. 3
  3617. Open the Windows Firewall Interface by typing \fBwf.msc\fP at the command
  3618. prompt or in a run dialog (\fIWindows Key + R\fP)
  3619. .IP 2. 3
  3620. Navigate to \fBInbound Rules\fP in the console tree
  3621. .IP 3. 3
  3622. Add a new rule by clicking \fBNew Rule...\fP in the Actions area
  3623. .IP 4. 3
  3624. Change the Rule Type to \fBPort\fP\&. Click \fBNext\fP
  3625. .IP 5. 3
  3626. Set the Protocol to \fBTCP\fP and specify local ports \fB4505\-4506\fP\&. Click
  3627. \fBNext\fP
  3628. .IP 6. 3
  3629. Set the Action to \fBAllow the connection\fP\&. Click \fBNext\fP
  3630. .IP 7. 3
  3631. Apply the rule to \fBDomain\fP, \fBPrivate\fP, and \fBPublic\fP\&. Click \fBNext\fP
  3632. .IP 8. 3
  3633. Give the new rule a Name, ie: \fBSalt\fP\&. You may also add a description. Click
  3634. \fBFinish\fP
  3635. .UNINDENT
  3636. .sp
  3637. \fBWindows Firewall (command line)\fP:
  3638. .sp
  3639. The Windows Firewall rule can be created by issuing a single command. Run the
  3640. following command from the command line or a run prompt:
  3641. .INDENT 0.0
  3642. .INDENT 3.5
  3643. .sp
  3644. .nf
  3645. .ft C
  3646. netsh advfirewall firewall add rule name="Salt" dir=in action=allow protocol=TCP localport=4505\-4506
  3647. .ft P
  3648. .fi
  3649. .UNINDENT
  3650. .UNINDENT
  3651. .SS iptables
  3652. .sp
  3653. Different Linux distributions store their \fIiptables\fP (also known as
  3654. \fI\%netfilter\fP) rules in different places, which makes it difficult to
  3655. standardize firewall documentation. Included are some of the more
  3656. common locations, but your mileage may vary.
  3657. .sp
  3658. \fBFedora / RHEL / CentOS\fP:
  3659. .INDENT 0.0
  3660. .INDENT 3.5
  3661. .sp
  3662. .nf
  3663. .ft C
  3664. /etc/sysconfig/iptables
  3665. .ft P
  3666. .fi
  3667. .UNINDENT
  3668. .UNINDENT
  3669. .sp
  3670. \fBArch Linux\fP:
  3671. .INDENT 0.0
  3672. .INDENT 3.5
  3673. .sp
  3674. .nf
  3675. .ft C
  3676. /etc/iptables/iptables.rules
  3677. .ft P
  3678. .fi
  3679. .UNINDENT
  3680. .UNINDENT
  3681. .sp
  3682. \fBDebian\fP
  3683. .sp
  3684. Follow these instructions: \fI\%https://wiki.debian.org/iptables\fP
  3685. .sp
  3686. Once you\(aqve found your firewall rules, you\(aqll need to add the below line
  3687. to allow traffic on \fBtcp/4505\fP and \fBtcp/4506\fP:
  3688. .INDENT 0.0
  3689. .INDENT 3.5
  3690. .sp
  3691. .nf
  3692. .ft C
  3693. \-A INPUT \-m state \-\-state new \-m tcp \-p tcp \-\-dport 4505:4506 \-j ACCEPT
  3694. .ft P
  3695. .fi
  3696. .UNINDENT
  3697. .UNINDENT
  3698. .sp
  3699. \fBUbuntu\fP
  3700. .sp
  3701. Salt installs firewall rules in \fI\%/etc/ufw/applications.d/salt.ufw\fP\&. Enable with:
  3702. .INDENT 0.0
  3703. .INDENT 3.5
  3704. .sp
  3705. .nf
  3706. .ft C
  3707. ufw allow salt
  3708. .ft P
  3709. .fi
  3710. .UNINDENT
  3711. .UNINDENT
  3712. .SS pf.conf
  3713. .sp
  3714. The BSD\-family of operating systems uses \fI\%packet filter (pf)\fP\&. The following
  3715. example describes the addition to \fBpf.conf\fP needed to access the Salt
  3716. master.
  3717. .INDENT 0.0
  3718. .INDENT 3.5
  3719. .sp
  3720. .nf
  3721. .ft C
  3722. pass in on $int_if proto tcp from any to $int_if port 4505:4506
  3723. .ft P
  3724. .fi
  3725. .UNINDENT
  3726. .UNINDENT
  3727. .sp
  3728. Once this addition has been made to the \fBpf.conf\fP the rules will need to
  3729. be reloaded. This can be done using the \fBpfctl\fP command.
  3730. .INDENT 0.0
  3731. .INDENT 3.5
  3732. .sp
  3733. .nf
  3734. .ft C
  3735. pfctl \-vf /etc/pf.conf
  3736. .ft P
  3737. .fi
  3738. .UNINDENT
  3739. .UNINDENT
  3740. .SS Whitelist communication to Master
  3741. .sp
  3742. There are situations where you want to selectively allow Minion traffic
  3743. from specific hosts or networks into your Salt Master. The first
  3744. scenario which comes to mind is to prevent unwanted traffic to your
  3745. Master out of security concerns, but another scenario is to handle
  3746. Minion upgrades when there are backwards incompatible changes between
  3747. the installed Salt versions in your environment.
  3748. .sp
  3749. Here is an example \fI\%Linux iptables\fP ruleset to
  3750. be set on the Master:
  3751. .INDENT 0.0
  3752. .INDENT 3.5
  3753. .sp
  3754. .nf
  3755. .ft C
  3756. # Allow Minions from these networks
  3757. \-I INPUT \-s 10.1.2.0/24 \-p tcp \-\-dports 4505:4506 \-j ACCEPT
  3758. \-I INPUT \-s 10.1.3.0/24 \-p tcp \-\-dports 4505:4506 \-j ACCEPT
  3759. # Allow Salt to communicate with Master on the loopback interface
  3760. \-A INPUT \-i lo \-p tcp \-\-dports 4505:4506 \-j ACCEPT
  3761. # Reject everything else
  3762. \-A INPUT \-p tcp \-\-dports 4505:4506 \-j REJECT
  3763. .ft P
  3764. .fi
  3765. .UNINDENT
  3766. .UNINDENT
  3767. .sp
  3768. \fBNOTE:\fP
  3769. .INDENT 0.0
  3770. .INDENT 3.5
  3771. The important thing to note here is that the \fBsalt\fP command
  3772. needs to communicate with the listening network socket of
  3773. \fBsalt\-master\fP on the \fIloopback\fP interface. Without this you will
  3774. see no outgoing Salt traffic from the master, even for a simple
  3775. \fBsalt \(aq*\(aq test.version\fP, because the \fBsalt\fP client never reached
  3776. the \fBsalt\-master\fP to tell it to carry out the execution.
  3777. .UNINDENT
  3778. .UNINDENT
  3779. .SS Preseed Minion with Accepted Key
  3780. .sp
  3781. In some situations, it is not convenient to wait for a minion to start before
  3782. accepting its key on the master. For instance, you may want the minion to
  3783. bootstrap itself as soon as it comes online. You may also want to let your
  3784. developers provision new development machines on the fly.
  3785. .sp
  3786. \fBSEE ALSO:\fP
  3787. .INDENT 0.0
  3788. .INDENT 3.5
  3789. Many ways to preseed minion keys
  3790. .sp
  3791. Salt has other ways to generate and pre\-accept minion keys in addition to
  3792. the manual steps outlined below.
  3793. .sp
  3794. salt\-cloud performs these same steps automatically when new cloud VMs are
  3795. created (unless instructed not to).
  3796. .sp
  3797. salt\-api exposes an HTTP call to Salt\(aqs REST API to \fBgenerate and
  3798. download the new minion keys as a tarball\fP\&.
  3799. .UNINDENT
  3800. .UNINDENT
  3801. .sp
  3802. There is a general four step process to do this:
  3803. .INDENT 0.0
  3804. .IP 1. 3
  3805. Generate the keys on the master:
  3806. .UNINDENT
  3807. .INDENT 0.0
  3808. .INDENT 3.5
  3809. .sp
  3810. .nf
  3811. .ft C
  3812. root@saltmaster# salt\-key \-\-gen\-keys=[key_name]
  3813. .ft P
  3814. .fi
  3815. .UNINDENT
  3816. .UNINDENT
  3817. .sp
  3818. Pick a name for the key, such as the minion\(aqs id.
  3819. .INDENT 0.0
  3820. .IP 2. 3
  3821. Add the public key to the accepted minion folder:
  3822. .UNINDENT
  3823. .INDENT 0.0
  3824. .INDENT 3.5
  3825. .sp
  3826. .nf
  3827. .ft C
  3828. root@saltmaster# cp key_name.pub /etc/salt/pki/master/minions/[minion_id]
  3829. .ft P
  3830. .fi
  3831. .UNINDENT
  3832. .UNINDENT
  3833. .sp
  3834. It is necessary that the public key file has the same name as your minion id.
  3835. This is how Salt matches minions with their keys. Also note that the pki folder
  3836. could be in a different location, depending on your OS or if specified in the
  3837. master config file.
  3838. .INDENT 0.0
  3839. .IP 3. 3
  3840. Distribute the minion keys.
  3841. .UNINDENT
  3842. .sp
  3843. There is no single method to get the keypair to your minion. The difficulty is
  3844. finding a distribution method which is secure. For Amazon EC2 only, an AWS best
  3845. practice is to use IAM Roles to pass credentials. (See blog post,
  3846. \fI\%https://aws.amazon.com/blogs/security/using\-iam\-roles\-to\-distribute\-non\-aws\-credentials\-to\-your\-ec2\-instances/\fP )
  3847. .INDENT 0.0
  3848. .INDENT 3.5
  3849. .IP "Security Warning"
  3850. .sp
  3851. Since the minion key is already accepted on the master, distributing
  3852. the private key poses a potential security risk. A malicious party
  3853. will have access to your entire state tree and other sensitive data if they
  3854. gain access to a preseeded minion key.
  3855. .UNINDENT
  3856. .UNINDENT
  3857. .INDENT 0.0
  3858. .IP 4. 3
  3859. Preseed the Minion with the keys
  3860. .UNINDENT
  3861. .sp
  3862. You will want to place the minion keys before starting the salt\-minion daemon:
  3863. .INDENT 0.0
  3864. .INDENT 3.5
  3865. .sp
  3866. .nf
  3867. .ft C
  3868. /etc/salt/pki/minion/minion.pem
  3869. /etc/salt/pki/minion/minion.pub
  3870. .ft P
  3871. .fi
  3872. .UNINDENT
  3873. .UNINDENT
  3874. .sp
  3875. Once in place, you should be able to start salt\-minion and run \fBsalt\-call
  3876. state.apply\fP or any other salt commands that require master authentication.
  3877. .SS The macOS (Maverick) Developer Step By Step Guide To Salt Installation
  3878. .sp
  3879. This document provides a step\-by\-step guide to installing a Salt cluster
  3880. consisting of one master, and one minion running on a local VM hosted on macOS.
  3881. .sp
  3882. \fBNOTE:\fP
  3883. .INDENT 0.0
  3884. .INDENT 3.5
  3885. This guide is aimed at developers who wish to run Salt in a virtual machine.
  3886. The official (Linux) walkthrough can be found
  3887. \fI\%here\fP\&.
  3888. .UNINDENT
  3889. .UNINDENT
  3890. .SS The 5 Cent Salt Intro
  3891. .sp
  3892. Since you\(aqre here you\(aqve probably already heard about Salt, so you already
  3893. know Salt lets you configure and run commands on hordes of servers easily.
  3894. Here\(aqs a brief overview of a Salt cluster:
  3895. .INDENT 0.0
  3896. .IP \(bu 2
  3897. Salt works by having a "master" server sending commands to one or multiple
  3898. "minion" servers. The master server is the "command center". It is
  3899. going to be the place where you store your configuration files, aka: "which
  3900. server is the db, which is the web server, and what libraries and software
  3901. they should have installed". The minions receive orders from the master.
  3902. Minions are the servers actually performing work for your business.
  3903. .IP \(bu 2
  3904. Salt has two types of configuration files:
  3905. .sp
  3906. 1. the "salt communication channels" or "meta" or "config" configuration
  3907. files (not official names): one for the master (usually is /etc/salt/master
  3908. , \fBon the master server\fP), and one for minions (default is
  3909. /etc/salt/minion or /etc/salt/minion.conf, \fBon the minion servers\fP). Those
  3910. files are used to determine things like the Salt Master IP, port, Salt
  3911. folder locations, etc.. If these are configured incorrectly, your minions
  3912. will probably be unable to receive orders from the master, or the master
  3913. will not know which software a given minion should install.
  3914. .sp
  3915. 2. the "business" or "service" configuration files (once again, not an
  3916. official name): these are configuration files, ending with ".sls" extension,
  3917. that describe which software should run on which server, along with
  3918. particular configuration properties for the software that is being
  3919. installed. These files should be created in the /srv/salt folder by default,
  3920. but their location can be changed using ... /etc/salt/master configuration file!
  3921. .UNINDENT
  3922. .sp
  3923. \fBNOTE:\fP
  3924. .INDENT 0.0
  3925. .INDENT 3.5
  3926. This tutorial contains a third important configuration file, not to
  3927. be confused with the previous two: the virtual machine provisioning
  3928. configuration file. This in itself is not specifically tied to Salt, but
  3929. it also contains some Salt configuration. More on that in step 3. Also
  3930. note that all configuration files are YAML files. So indentation matters.
  3931. .UNINDENT
  3932. .UNINDENT
  3933. .sp
  3934. \fBNOTE:\fP
  3935. .INDENT 0.0
  3936. .INDENT 3.5
  3937. Salt also works with "masterless" configuration where a minion is
  3938. autonomous (in which case salt can be seen as a local configuration tool),
  3939. or in "multiple master" configuration. See the documentation for more on
  3940. that.
  3941. .UNINDENT
  3942. .UNINDENT
  3943. .SS Before Digging In, The Architecture Of The Salt Cluster
  3944. .SS Salt Master
  3945. .sp
  3946. The "Salt master" server is going to be the Mac OS machine, directly. Commands
  3947. will be run from a terminal app, so Salt will need to be installed on the Mac.
  3948. This is going to be more convenient for toying around with configuration files.
  3949. .SS Salt Minion
  3950. .sp
  3951. We\(aqll only have one "Salt minion" server. It is going to be running on a
  3952. Virtual Machine running on the Mac, using VirtualBox. It will run an Ubuntu
  3953. distribution.
  3954. .SS Step 1 \- Configuring The Salt Master On Your Mac
  3955. .sp
  3956. \fI\%Official Documentation\fP
  3957. .sp
  3958. Because Salt has a lot of dependencies that are not built in macOS, we will use
  3959. Homebrew to install Salt. Homebrew is a package manager for Mac, it\(aqs great, use
  3960. it (for this tutorial at least!). Some people spend a lot of time installing
  3961. libs by hand to better understand dependencies, and then realize how useful a
  3962. package manager is once they\(aqre configuring a brand new machine and have to do
  3963. it all over again. It also lets you \fIuninstall\fP things easily.
  3964. .sp
  3965. \fBNOTE:\fP
  3966. .INDENT 0.0
  3967. .INDENT 3.5
  3968. Brew is a Ruby program (Ruby is installed by default with your Mac). Brew
  3969. downloads, compiles, and links software. The linking phase is when compiled
  3970. software is deployed on your machine. It may conflict with manually
  3971. installed software, especially in the /usr/local directory. It\(aqs ok,
  3972. remove the manually installed version then refresh the link by typing
  3973. \fBbrew link \(aqpackageName\(aq\fP\&. Brew has a \fBbrew doctor\fP command that can
  3974. help you troubleshoot. It\(aqs a great command, use it often. Brew requires
  3975. xcode command line tools. When you run brew the first time it asks you to
  3976. install them if they\(aqre not already on your system. Brew installs
  3977. software in /usr/local/bin (system bins are in /usr/bin). In order to use
  3978. those bins you need your $PATH to search there first. Brew tells you if
  3979. your $PATH needs to be fixed.
  3980. .UNINDENT
  3981. .UNINDENT
  3982. .sp
  3983. \fBTIP:\fP
  3984. .INDENT 0.0
  3985. .INDENT 3.5
  3986. Use the keyboard shortcut \fBcmd + shift + period\fP in the "open" macOS
  3987. dialog box to display hidden files and folders, such as .profile.
  3988. .UNINDENT
  3989. .UNINDENT
  3990. .SS Install Homebrew
  3991. .sp
  3992. Install Homebrew here \fI\%https://brew.sh/\fP
  3993. .sp
  3994. Or just type
  3995. .INDENT 0.0
  3996. .INDENT 3.5
  3997. .sp
  3998. .nf
  3999. .ft C
  4000. ruby \-e "$(curl \-fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  4001. .ft P
  4002. .fi
  4003. .UNINDENT
  4004. .UNINDENT
  4005. .sp
  4006. Now type the following commands in your terminal (you may want to type \fBbrew
  4007. doctor\fP after each to make sure everything\(aqs fine):
  4008. .INDENT 0.0
  4009. .INDENT 3.5
  4010. .sp
  4011. .nf
  4012. .ft C
  4013. brew install python
  4014. brew install swig
  4015. brew install zmq
  4016. .ft P
  4017. .fi
  4018. .UNINDENT
  4019. .UNINDENT
  4020. .sp
  4021. \fBNOTE:\fP
  4022. .INDENT 0.0
  4023. .INDENT 3.5
  4024. zmq is ZeroMQ. It\(aqs a fantastic library used for server to server network
  4025. communication and is at the core of Salt efficiency.
  4026. .UNINDENT
  4027. .UNINDENT
  4028. .SS Install Salt
  4029. .sp
  4030. You should now have everything ready to launch this command:
  4031. .INDENT 0.0
  4032. .INDENT 3.5
  4033. .sp
  4034. .nf
  4035. .ft C
  4036. pip install salt
  4037. .ft P
  4038. .fi
  4039. .UNINDENT
  4040. .UNINDENT
  4041. .sp
  4042. \fBNOTE:\fP
  4043. .INDENT 0.0
  4044. .INDENT 3.5
  4045. There should be no need for \fBsudo pip install salt\fP\&. Brew installed
  4046. Python for your user, so you should have all the access. In case you
  4047. would like to check, type \fBwhich python\fP to ensure that it\(aqs
  4048. /usr/local/bin/python, and \fBwhich pip\fP which should be
  4049. /usr/local/bin/pip.
  4050. .UNINDENT
  4051. .UNINDENT
  4052. .sp
  4053. Now type \fBpython\fP in a terminal then, \fBimport salt\fP\&. There should be no
  4054. errors. Now exit the Python terminal using \fBexit()\fP\&.
  4055. .SS Create The Master Configuration
  4056. .sp
  4057. If the default /etc/salt/master configuration file was not created,
  4058. copy\-paste it from here:
  4059. \fI\%http://docs.saltstack.com/ref/configuration/examples.html#configuration\-examples\-master\fP
  4060. .sp
  4061. \fBNOTE:\fP
  4062. .INDENT 0.0
  4063. .INDENT 3.5
  4064. \fB/etc/salt/master\fP is a file, not a folder.
  4065. .UNINDENT
  4066. .UNINDENT
  4067. .sp
  4068. Salt Master configuration changes. The Salt master needs a few customization
  4069. to be able to run on macOS:
  4070. .INDENT 0.0
  4071. .INDENT 3.5
  4072. .sp
  4073. .nf
  4074. .ft C
  4075. sudo launchctl limit maxfiles 4096 8192
  4076. .ft P
  4077. .fi
  4078. .UNINDENT
  4079. .UNINDENT
  4080. .sp
  4081. In the /etc/salt/master file, change max_open_files to 8192 (or just add the
  4082. line: \fBmax_open_files: 8192\fP (no quote) if it doesn\(aqt already exists).
  4083. .sp
  4084. You should now be able to launch the Salt master:
  4085. .INDENT 0.0
  4086. .INDENT 3.5
  4087. .sp
  4088. .nf
  4089. .ft C
  4090. sudo salt\-master \-\-log\-level=all
  4091. .ft P
  4092. .fi
  4093. .UNINDENT
  4094. .UNINDENT
  4095. .sp
  4096. There should be no errors when running the above command.
  4097. .sp
  4098. \fBNOTE:\fP
  4099. .INDENT 0.0
  4100. .INDENT 3.5
  4101. This command is supposed to be a daemon, but for toying around, we\(aqll keep
  4102. it running on a terminal to monitor the activity.
  4103. .UNINDENT
  4104. .UNINDENT
  4105. .sp
  4106. Now that the master is set, let\(aqs configure a minion on a VM.
  4107. .SS Step 2 \- Configuring The Minion VM
  4108. .sp
  4109. The Salt minion is going to run on a Virtual Machine. There are a lot of
  4110. software options that let you run virtual machines on a mac, But for this
  4111. tutorial we\(aqre going to use VirtualBox. In addition to virtualBox, we will use
  4112. Vagrant, which allows you to create the base VM configuration.
  4113. .sp
  4114. Vagrant lets you build ready to use VM images, starting from an OS image and
  4115. customizing it using "provisioners". In our case, we\(aqll use it to:
  4116. .INDENT 0.0
  4117. .IP \(bu 2
  4118. Download the base Ubuntu image
  4119. .IP \(bu 2
  4120. Install salt on that Ubuntu image (Salt is going to be the "provisioner"
  4121. for the VM).
  4122. .IP \(bu 2
  4123. Launch the VM
  4124. .IP \(bu 2
  4125. SSH into the VM to debug
  4126. .IP \(bu 2
  4127. Stop the VM once you\(aqre done.
  4128. .UNINDENT
  4129. .SS Install VirtualBox
  4130. .sp
  4131. Go get it here: \fI\%https://www.virtualbox.org/wiki/Downloads\fP (click on VirtualBox
  4132. for macOS hosts => x86/amd64)
  4133. .SS Install Vagrant
  4134. .sp
  4135. Go get it here: \fI\%https://www.vagrantup.com/downloads.html\fP and choose the latest version
  4136. (1.3.5 at time of writing), then the .dmg file. Double\-click to install it.
  4137. Make sure the \fBvagrant\fP command is found when run in the terminal. Type
  4138. \fBvagrant\fP\&. It should display a list of commands.
  4139. .SS Create The Minion VM Folder
  4140. .sp
  4141. Create a folder in which you will store your minion\(aqs VM. In this tutorial,
  4142. it\(aqs going to be a minion folder in the $home directory.
  4143. .INDENT 0.0
  4144. .INDENT 3.5
  4145. .sp
  4146. .nf
  4147. .ft C
  4148. cd $home
  4149. mkdir minion
  4150. .ft P
  4151. .fi
  4152. .UNINDENT
  4153. .UNINDENT
  4154. .SS Initialize Vagrant
  4155. .sp
  4156. From the minion folder, type
  4157. .INDENT 0.0
  4158. .INDENT 3.5
  4159. .sp
  4160. .nf
  4161. .ft C
  4162. vagrant init
  4163. .ft P
  4164. .fi
  4165. .UNINDENT
  4166. .UNINDENT
  4167. .sp
  4168. This command creates a default Vagrantfile configuration file. This
  4169. configuration file will be used to pass configuration parameters to the Salt
  4170. provisioner in Step 3.
  4171. .SS Import Precise64 Ubuntu Box
  4172. .INDENT 0.0
  4173. .INDENT 3.5
  4174. .sp
  4175. .nf
  4176. .ft C
  4177. vagrant box add precise64 http://files.vagrantup.com/precise64.box
  4178. .ft P
  4179. .fi
  4180. .UNINDENT
  4181. .UNINDENT
  4182. .sp
  4183. \fBNOTE:\fP
  4184. .INDENT 0.0
  4185. .INDENT 3.5
  4186. This box is added at the global Vagrant level. You only need to do it
  4187. once as each VM will use this same file.
  4188. .UNINDENT
  4189. .UNINDENT
  4190. .SS Modify the Vagrantfile
  4191. .sp
  4192. Modify ./minion/Vagrantfile to use th precise64 box. Change the \fBconfig.vm.box\fP
  4193. line to:
  4194. .INDENT 0.0
  4195. .INDENT 3.5
  4196. .sp
  4197. .nf
  4198. .ft C
  4199. config.vm.box = "precise64"
  4200. .ft P
  4201. .fi
  4202. .UNINDENT
  4203. .UNINDENT
  4204. .sp
  4205. Uncomment the line creating a host\-only IP. This is the ip of your minion
  4206. (you can change it to something else if that IP is already in use):
  4207. .INDENT 0.0
  4208. .INDENT 3.5
  4209. .sp
  4210. .nf
  4211. .ft C
  4212. config.vm.network :private_network, ip: "192.168.33.10"
  4213. .ft P
  4214. .fi
  4215. .UNINDENT
  4216. .UNINDENT
  4217. .sp
  4218. At this point you should have a VM that can run, although there won\(aqt be much
  4219. in it. Let\(aqs check that.
  4220. .SS Checking The VM
  4221. .sp
  4222. From the $home/minion folder type:
  4223. .INDENT 0.0
  4224. .INDENT 3.5
  4225. .sp
  4226. .nf
  4227. .ft C
  4228. vagrant up
  4229. .ft P
  4230. .fi
  4231. .UNINDENT
  4232. .UNINDENT
  4233. .sp
  4234. A log showing the VM booting should be present. Once it\(aqs done you\(aqll be back
  4235. to the terminal:
  4236. .INDENT 0.0
  4237. .INDENT 3.5
  4238. .sp
  4239. .nf
  4240. .ft C
  4241. ping 192.168.33.10
  4242. .ft P
  4243. .fi
  4244. .UNINDENT
  4245. .UNINDENT
  4246. .sp
  4247. The VM should respond to your ping request.
  4248. .sp
  4249. Now log into the VM in ssh using Vagrant again:
  4250. .INDENT 0.0
  4251. .INDENT 3.5
  4252. .sp
  4253. .nf
  4254. .ft C
  4255. vagrant ssh
  4256. .ft P
  4257. .fi
  4258. .UNINDENT
  4259. .UNINDENT
  4260. .sp
  4261. You should see the shell prompt change to something similar to
  4262. \fBvagrant@precise64:~$\fP meaning you\(aqre inside the VM. From there, enter the
  4263. following:
  4264. .INDENT 0.0
  4265. .INDENT 3.5
  4266. .sp
  4267. .nf
  4268. .ft C
  4269. ping 10.0.2.2
  4270. .ft P
  4271. .fi
  4272. .UNINDENT
  4273. .UNINDENT
  4274. .sp
  4275. \fBNOTE:\fP
  4276. .INDENT 0.0
  4277. .INDENT 3.5
  4278. That ip is the ip of your VM host (the macOS host). The number is a
  4279. VirtualBox default and is displayed in the log after the Vagrant ssh
  4280. command. We\(aqll use that IP to tell the minion where the Salt master is.
  4281. Once you\(aqre done, end the ssh session by typing \fBexit\fP\&.
  4282. .UNINDENT
  4283. .UNINDENT
  4284. .sp
  4285. It\(aqs now time to connect the VM to the salt master
  4286. .SS Step 3 \- Connecting Master and Minion
  4287. .SS Creating The Minion Configuration File
  4288. .sp
  4289. Create the \fB/etc/salt/minion\fP file. In that file, put the
  4290. following lines, giving the ID for this minion, and the IP of the master:
  4291. .INDENT 0.0
  4292. .INDENT 3.5
  4293. .sp
  4294. .nf
  4295. .ft C
  4296. master: 10.0.2.2
  4297. id: \(aqminion1\(aq
  4298. file_client: remote
  4299. .ft P
  4300. .fi
  4301. .UNINDENT
  4302. .UNINDENT
  4303. .sp
  4304. Minions authenticate with the master using keys. Keys are generated
  4305. automatically if you don\(aqt provide one and can accept them later on. However,
  4306. this requires accepting the minion key every time the minion is destroyed or
  4307. created (which could be quite often). A better way is to create those keys in
  4308. advance, feed them to the minion, and authorize them once.
  4309. .SS Preseed minion keys
  4310. .sp
  4311. From the minion folder on your Mac run:
  4312. .INDENT 0.0
  4313. .INDENT 3.5
  4314. .sp
  4315. .nf
  4316. .ft C
  4317. sudo salt\-key \-\-gen\-keys=minion1
  4318. .ft P
  4319. .fi
  4320. .UNINDENT
  4321. .UNINDENT
  4322. .sp
  4323. This should create two files: minion1.pem, and minion1.pub.
  4324. Since those files have been created using sudo, but will be used by vagrant,
  4325. you need to change ownership:
  4326. .INDENT 0.0
  4327. .INDENT 3.5
  4328. .sp
  4329. .nf
  4330. .ft C
  4331. sudo chown youruser:yourgroup minion1.pem
  4332. sudo chown youruser:yourgroup minion1.pub
  4333. .ft P
  4334. .fi
  4335. .UNINDENT
  4336. .UNINDENT
  4337. .sp
  4338. Then copy the .pub file into the list of accepted minions:
  4339. .INDENT 0.0
  4340. .INDENT 3.5
  4341. .sp
  4342. .nf
  4343. .ft C
  4344. sudo cp minion1.pub /etc/salt/pki/master/minions/minion1
  4345. .ft P
  4346. .fi
  4347. .UNINDENT
  4348. .UNINDENT
  4349. .SS Modify Vagrantfile to Use Salt Provisioner
  4350. .sp
  4351. Let\(aqs now modify the Vagrantfile used to provision the Salt VM. Add the
  4352. following section in the Vagrantfile (note: it should be at the same
  4353. indentation level as the other properties):
  4354. .INDENT 0.0
  4355. .INDENT 3.5
  4356. .sp
  4357. .nf
  4358. .ft C
  4359. # salt\-vagrant config
  4360. config.vm.provision :salt do |salt|
  4361. salt.run_highstate = true
  4362. salt.minion_config = "/etc/salt/minion"
  4363. salt.minion_key = "./minion1.pem"
  4364. salt.minion_pub = "./minion1.pub"
  4365. end
  4366. .ft P
  4367. .fi
  4368. .UNINDENT
  4369. .UNINDENT
  4370. .sp
  4371. Now destroy the vm and recreate it from the /minion folder:
  4372. .INDENT 0.0
  4373. .INDENT 3.5
  4374. .sp
  4375. .nf
  4376. .ft C
  4377. vagrant destroy
  4378. vagrant up
  4379. .ft P
  4380. .fi
  4381. .UNINDENT
  4382. .UNINDENT
  4383. .sp
  4384. If everything is fine you should see the following message:
  4385. .INDENT 0.0
  4386. .INDENT 3.5
  4387. .sp
  4388. .nf
  4389. .ft C
  4390. "Bootstrapping Salt... (this may take a while)
  4391. Salt successfully configured and installed!"
  4392. .ft P
  4393. .fi
  4394. .UNINDENT
  4395. .UNINDENT
  4396. .SS Checking Master\-Minion Communication
  4397. .sp
  4398. To make sure the master and minion are talking to each other, enter the
  4399. following:
  4400. .INDENT 0.0
  4401. .INDENT 3.5
  4402. .sp
  4403. .nf
  4404. .ft C
  4405. sudo salt \(aq*\(aq test.version
  4406. .ft P
  4407. .fi
  4408. .UNINDENT
  4409. .UNINDENT
  4410. .sp
  4411. You should see your minion answering with its salt version. It\(aqs now time to do some
  4412. configuration.
  4413. .SS Step 4 \- Configure Services to Install On the Minion
  4414. .sp
  4415. In this step we\(aqll use the Salt master to instruct our minion to install
  4416. Nginx.
  4417. .SS Checking the system\(aqs original state
  4418. .sp
  4419. First, make sure that an HTTP server is not installed on our minion.
  4420. When opening a browser directed at \fBhttp://192.168.33.10/\fP You should get an
  4421. error saying the site cannot be reached.
  4422. .SS Initialize the top.sls file
  4423. .sp
  4424. System configuration is done in \fB/srv/salt/top.sls\fP (and subfiles/folders),
  4425. and then applied by running the \fBstate.apply\fP function to have the Salt master order its minions
  4426. to update their instructions and run the associated commands.
  4427. .sp
  4428. First Create an empty file on your Salt master (macOS machine):
  4429. .INDENT 0.0
  4430. .INDENT 3.5
  4431. .sp
  4432. .nf
  4433. .ft C
  4434. touch /srv/salt/top.sls
  4435. .ft P
  4436. .fi
  4437. .UNINDENT
  4438. .UNINDENT
  4439. .sp
  4440. When the file is empty, or if no configuration is found for our minion
  4441. an error is reported:
  4442. .INDENT 0.0
  4443. .INDENT 3.5
  4444. .sp
  4445. .nf
  4446. .ft C
  4447. sudo salt \(aqminion1\(aq state.apply
  4448. .ft P
  4449. .fi
  4450. .UNINDENT
  4451. .UNINDENT
  4452. .sp
  4453. This should return an error stating: \fBNo Top file or external nodes data
  4454. matches found\fP\&.
  4455. .SS Create The Nginx Configuration
  4456. .sp
  4457. Now is finally the time to enter the real meat of our server\(aqs configuration.
  4458. For this tutorial our minion will be treated as a web server that needs to
  4459. have Nginx installed.
  4460. .sp
  4461. Insert the following lines into \fB/srv/salt/top.sls\fP (which should current be
  4462. empty).
  4463. .INDENT 0.0
  4464. .INDENT 3.5
  4465. .sp
  4466. .nf
  4467. .ft C
  4468. base:
  4469. \(aqminion1\(aq:
  4470. \- bin.nginx
  4471. .ft P
  4472. .fi
  4473. .UNINDENT
  4474. .UNINDENT
  4475. .sp
  4476. Now create \fB/srv/salt/bin/nginx.sls\fP containing the following:
  4477. .INDENT 0.0
  4478. .INDENT 3.5
  4479. .sp
  4480. .nf
  4481. .ft C
  4482. nginx:
  4483. pkg.installed:
  4484. \- name: nginx
  4485. service.running:
  4486. \- enable: True
  4487. \- reload: True
  4488. .ft P
  4489. .fi
  4490. .UNINDENT
  4491. .UNINDENT
  4492. .SS Check Minion State
  4493. .sp
  4494. Finally, run the \fBstate.apply\fP function
  4495. again:
  4496. .INDENT 0.0
  4497. .INDENT 3.5
  4498. .sp
  4499. .nf
  4500. .ft C
  4501. sudo salt \(aqminion1\(aq state.apply
  4502. .ft P
  4503. .fi
  4504. .UNINDENT
  4505. .UNINDENT
  4506. .sp
  4507. You should see a log showing that the Nginx package has been installed
  4508. and the service configured. To prove it, open your browser and navigate to
  4509. \fI\%http://192.168.33.10/\fP, you should see the standard Nginx welcome page.
  4510. .sp
  4511. Congratulations!
  4512. .SS Where To Go From Here
  4513. .sp
  4514. A full description of configuration management within Salt (sls files among
  4515. other things) is available here:
  4516. \fI\%http://docs.saltstack.com/en/latest/index.html#configuration\-management\fP
  4517. .SS running salt as normal user tutorial
  4518. .sp
  4519. \fBBefore continuing\fP make sure you have a working Salt installation by
  4520. following the installation and the
  4521. configuration instructions.
  4522. .INDENT 0.0
  4523. .INDENT 3.5
  4524. .IP "Stuck?"
  4525. .sp
  4526. There are many ways to get help from the Salt community including our
  4527. \fI\%mailing list\fP
  4528. and our \fI\%IRC channel\fP #salt.
  4529. .UNINDENT
  4530. .UNINDENT
  4531. .SS Running Salt functions as non root user
  4532. .sp
  4533. If you don\(aqt want to run salt cloud as root or even install it you can
  4534. configure it to have a virtual root in your working directory.
  4535. .sp
  4536. The salt system uses the \fBsalt.syspath\fP module to find the variables
  4537. .sp
  4538. If you run the salt\-build, it will generated in:
  4539. .INDENT 0.0
  4540. .INDENT 3.5
  4541. .sp
  4542. .nf
  4543. .ft C
  4544. \&./build/lib.linux\-x86_64\-2.7/salt/_syspaths.py
  4545. .ft P
  4546. .fi
  4547. .UNINDENT
  4548. .UNINDENT
  4549. .sp
  4550. To generate it, run the command:
  4551. .INDENT 0.0
  4552. .INDENT 3.5
  4553. .sp
  4554. .nf
  4555. .ft C
  4556. python setup.py build
  4557. .ft P
  4558. .fi
  4559. .UNINDENT
  4560. .UNINDENT
  4561. .sp
  4562. Copy the generated module into your salt directory
  4563. .INDENT 0.0
  4564. .INDENT 3.5
  4565. .sp
  4566. .nf
  4567. .ft C
  4568. cp ./build/lib.linux\-x86_64\-2.7/salt/_syspaths.py salt/_syspaths.py
  4569. .ft P
  4570. .fi
  4571. .UNINDENT
  4572. .UNINDENT
  4573. .sp
  4574. Edit it to include needed variables and your new paths
  4575. .INDENT 0.0
  4576. .INDENT 3.5
  4577. .sp
  4578. .nf
  4579. .ft C
  4580. # you need to edit this
  4581. ROOT_DIR = *your current dir* + \(aq/salt/root\(aq
  4582. # you need to edit this
  4583. INSTALL_DIR = *location of source code*
  4584. CONFIG_DIR = ROOT_DIR + \(aq/etc/salt\(aq
  4585. CACHE_DIR = ROOT_DIR + \(aq/var/cache/salt\(aq
  4586. SOCK_DIR = ROOT_DIR + \(aq/var/run/salt\(aq
  4587. SRV_ROOT_DIR= ROOT_DIR + \(aq/srv\(aq
  4588. BASE_FILE_ROOTS_DIR = ROOT_DIR + \(aq/srv/salt\(aq
  4589. BASE_PILLAR_ROOTS_DIR = ROOT_DIR + \(aq/srv/pillar\(aq
  4590. BASE_MASTER_ROOTS_DIR = ROOT_DIR + \(aq/srv/salt\-master\(aq
  4591. LOGS_DIR = ROOT_DIR + \(aq/var/log/salt\(aq
  4592. PIDFILE_DIR = ROOT_DIR + \(aq/var/run\(aq
  4593. CLOUD_DIR = INSTALL_DIR + \(aq/cloud\(aq
  4594. BOOTSTRAP = CLOUD_DIR + \(aq/deploy/bootstrap\-salt.sh\(aq
  4595. .ft P
  4596. .fi
  4597. .UNINDENT
  4598. .UNINDENT
  4599. .sp
  4600. Create the directory structure
  4601. .INDENT 0.0
  4602. .INDENT 3.5
  4603. .sp
  4604. .nf
  4605. .ft C
  4606. mkdir \-p root/etc/salt root/var/cache/run root/run/salt root/srv
  4607. root/srv/salt root/srv/pillar root/srv/salt\-master root/var/log/salt root/var/run
  4608. .ft P
  4609. .fi
  4610. .UNINDENT
  4611. .UNINDENT
  4612. .sp
  4613. Populate the configuration files:
  4614. .INDENT 0.0
  4615. .INDENT 3.5
  4616. .sp
  4617. .nf
  4618. .ft C
  4619. cp \-r conf/* root/etc/salt/
  4620. .ft P
  4621. .fi
  4622. .UNINDENT
  4623. .UNINDENT
  4624. .sp
  4625. Edit your \fBroot/etc/salt/master\fP configuration that is used by salt\-cloud:
  4626. .INDENT 0.0
  4627. .INDENT 3.5
  4628. .sp
  4629. .nf
  4630. .ft C
  4631. user: *your user name*
  4632. .ft P
  4633. .fi
  4634. .UNINDENT
  4635. .UNINDENT
  4636. .sp
  4637. Run like this:
  4638. .INDENT 0.0
  4639. .INDENT 3.5
  4640. .sp
  4641. .nf
  4642. .ft C
  4643. PYTHONPATH=\(gapwd\(ga scripts/salt\-cloud
  4644. .ft P
  4645. .fi
  4646. .UNINDENT
  4647. .UNINDENT
  4648. .SS Standalone Minion
  4649. .sp
  4650. Since the Salt minion contains such extensive functionality it can be useful
  4651. to run it standalone. A standalone minion can be used to do a number of
  4652. things:
  4653. .INDENT 0.0
  4654. .IP \(bu 2
  4655. Use salt\-call commands on a system without connectivity to a master
  4656. .IP \(bu 2
  4657. Masterless States, run states entirely from files local to the minion
  4658. .UNINDENT
  4659. .sp
  4660. \fBNOTE:\fP
  4661. .INDENT 0.0
  4662. .INDENT 3.5
  4663. When running Salt in masterless mode, do not run the salt\-minion daemon.
  4664. Otherwise, it will attempt to connect to a master and fail. The salt\-call
  4665. command stands on its own and does not need the salt\-minion daemon.
  4666. .UNINDENT
  4667. .UNINDENT
  4668. .SS Minion Configuration
  4669. .sp
  4670. Throughout this document there are several references to setting different
  4671. options to configure a masterless Minion. Salt Minions are easy to configure
  4672. via a configuration file that is located, by default, in \fB/etc/salt/minion\fP\&.
  4673. Note, however, that on FreeBSD systems, the minion configuration file is located
  4674. in \fB/usr/local/etc/salt/minion\fP\&.
  4675. .sp
  4676. You can learn more about minion configuration options in the
  4677. Configuring the Salt Minion docs.
  4678. .SS Telling Salt Call to Run Masterless
  4679. .sp
  4680. The salt\-call command is used to run module functions locally on a minion
  4681. instead of executing them from the master. Normally the salt\-call command
  4682. checks into the master to retrieve file server and pillar data, but when
  4683. running standalone salt\-call needs to be instructed to not check the master for
  4684. this data. To instruct the minion to not look for a master when running
  4685. salt\-call the \fBfile_client\fP configuration option needs to be set.
  4686. By default the \fBfile_client\fP is set to \fBremote\fP so that the
  4687. minion knows that file server and pillar data are to be gathered from the
  4688. master. When setting the \fBfile_client\fP option to \fBlocal\fP the
  4689. minion is configured to not gather this data from the master.
  4690. .INDENT 0.0
  4691. .INDENT 3.5
  4692. .sp
  4693. .nf
  4694. .ft C
  4695. file_client: local
  4696. .ft P
  4697. .fi
  4698. .UNINDENT
  4699. .UNINDENT
  4700. .sp
  4701. Now the salt\-call command will not look for a master and will assume that the
  4702. local system has all of the file and pillar resources.
  4703. .SS Running States Masterless
  4704. .sp
  4705. The state system can be easily run without a Salt master, with all needed files
  4706. local to the minion. To do this the minion configuration file needs to be set
  4707. up to know how to return file_roots information like the master. The file_roots
  4708. setting defaults to /srv/salt for the base environment just like on the master:
  4709. .INDENT 0.0
  4710. .INDENT 3.5
  4711. .sp
  4712. .nf
  4713. .ft C
  4714. file_roots:
  4715. base:
  4716. \- /srv/salt
  4717. .ft P
  4718. .fi
  4719. .UNINDENT
  4720. .UNINDENT
  4721. .sp
  4722. Now set up the Salt State Tree, top file, and SLS modules in the same way that
  4723. they would be set up on a master. Now, with the \fBfile_client\fP
  4724. option set to \fBlocal\fP and an available state tree then calls to functions in
  4725. the state module will use the information in the file_roots on the minion
  4726. instead of checking in with the master.
  4727. .sp
  4728. Remember that when creating a state tree on a minion there are no syntax or
  4729. path changes needed, SLS modules written to be used from a master do not need
  4730. to be modified in any way to work with a minion.
  4731. .sp
  4732. This makes it easy to "script" deployments with Salt states without having to
  4733. set up a master, and allows for these SLS modules to be easily moved into a
  4734. Salt master as the deployment grows.
  4735. .sp
  4736. The declared state can now be executed with:
  4737. .INDENT 0.0
  4738. .INDENT 3.5
  4739. .sp
  4740. .nf
  4741. .ft C
  4742. salt\-call state.apply
  4743. .ft P
  4744. .fi
  4745. .UNINDENT
  4746. .UNINDENT
  4747. .sp
  4748. Or the salt\-call command can be executed with the \fB\-\-local\fP flag, this makes
  4749. it unnecessary to change the configuration file:
  4750. .INDENT 0.0
  4751. .INDENT 3.5
  4752. .sp
  4753. .nf
  4754. .ft C
  4755. salt\-call state.apply \-\-local
  4756. .ft P
  4757. .fi
  4758. .UNINDENT
  4759. .UNINDENT
  4760. .SS External Pillars
  4761. .sp
  4762. External pillars are supported when running in masterless mode.
  4763. .SS Salt Masterless Quickstart
  4764. .sp
  4765. Running a masterless salt\-minion lets you use Salt\(aqs configuration management
  4766. for a single machine without calling out to a Salt master on another machine.
  4767. .sp
  4768. Since the Salt minion contains such extensive functionality it can be useful
  4769. to run it standalone. A standalone minion can be used to do a number of
  4770. things:
  4771. .INDENT 0.0
  4772. .IP \(bu 2
  4773. Stand up a master server via States (Salting a Salt Master)
  4774. .IP \(bu 2
  4775. Use salt\-call commands on a system without connectivity to a master
  4776. .IP \(bu 2
  4777. Masterless States, run states entirely from files local to the minion
  4778. .UNINDENT
  4779. .sp
  4780. It is also useful for testing out state trees before deploying to a production setup.
  4781. .SS Bootstrap Salt Minion
  4782. .sp
  4783. The \fI\%salt\-bootstrap\fP script makes bootstrapping a server with Salt simple
  4784. for any OS with a Bourne shell:
  4785. .INDENT 0.0
  4786. .INDENT 3.5
  4787. .sp
  4788. .nf
  4789. .ft C
  4790. curl \-L https://bootstrap.saltstack.com \-o bootstrap_salt.sh
  4791. sudo sh bootstrap_salt.sh
  4792. .ft P
  4793. .fi
  4794. .UNINDENT
  4795. .UNINDENT
  4796. .sp
  4797. See the \fI\%salt\-bootstrap\fP documentation for other one liners. When using \fI\%Vagrant\fP
  4798. to test out salt, the \fI\%Vagrant salt provisioner\fP will provision the VM for you.
  4799. .SS Telling Salt to Run Masterless
  4800. .sp
  4801. To instruct the minion to not look for a master, the \fBfile_client\fP
  4802. configuration option needs to be set in the minion configuration file.
  4803. By default the \fBfile_client\fP is set to \fBremote\fP so that the
  4804. minion gathers file server and pillar data from the salt master.
  4805. When setting the \fBfile_client\fP option to \fBlocal\fP the
  4806. minion is configured to not gather this data from the master.
  4807. .INDENT 0.0
  4808. .INDENT 3.5
  4809. .sp
  4810. .nf
  4811. .ft C
  4812. file_client: local
  4813. .ft P
  4814. .fi
  4815. .UNINDENT
  4816. .UNINDENT
  4817. .sp
  4818. Now the salt minion will not look for a master and will assume that the local
  4819. system has all of the file and pillar resources.
  4820. .sp
  4821. Configuration which resided in the
  4822. master configuration (e.g. \fB/etc/salt/master\fP)
  4823. should be moved to the minion configuration
  4824. since the minion does not read the master configuration.
  4825. .sp
  4826. \fBNOTE:\fP
  4827. .INDENT 0.0
  4828. .INDENT 3.5
  4829. When running Salt in masterless mode, do not run the salt\-minion daemon.
  4830. Otherwise, it will attempt to connect to a master and fail. The salt\-call
  4831. command stands on its own and does not need the salt\-minion daemon.
  4832. .UNINDENT
  4833. .UNINDENT
  4834. .SS Create State Tree
  4835. .sp
  4836. Following the successful installation of a salt\-minion, the next step is to create
  4837. a state tree, which is where the SLS files that comprise the possible states of the
  4838. minion are stored.
  4839. .sp
  4840. The following example walks through the steps necessary to create a state tree that
  4841. ensures that the server has the Apache webserver installed.
  4842. .sp
  4843. \fBNOTE:\fP
  4844. .INDENT 0.0
  4845. .INDENT 3.5
  4846. For a complete explanation on Salt States, see the \fI\%tutorial\fP\&.
  4847. .UNINDENT
  4848. .UNINDENT
  4849. .INDENT 0.0
  4850. .IP 1. 3
  4851. Create the \fBtop.sls\fP file:
  4852. .UNINDENT
  4853. .sp
  4854. \fB/srv/salt/top.sls:\fP
  4855. .INDENT 0.0
  4856. .INDENT 3.5
  4857. .sp
  4858. .nf
  4859. .ft C
  4860. base:
  4861. \(aq*\(aq:
  4862. \- webserver
  4863. .ft P
  4864. .fi
  4865. .UNINDENT
  4866. .UNINDENT
  4867. .INDENT 0.0
  4868. .IP 2. 3
  4869. Create the webserver state tree:
  4870. .UNINDENT
  4871. .sp
  4872. \fB/srv/salt/webserver.sls:\fP
  4873. .INDENT 0.0
  4874. .INDENT 3.5
  4875. .sp
  4876. .nf
  4877. .ft C
  4878. apache: # ID declaration
  4879. pkg: # state declaration
  4880. \- installed # function declaration
  4881. .ft P
  4882. .fi
  4883. .UNINDENT
  4884. .UNINDENT
  4885. .sp
  4886. \fBNOTE:\fP
  4887. .INDENT 0.0
  4888. .INDENT 3.5
  4889. The apache package has different names on different platforms, for
  4890. instance on Debian/Ubuntu it is apache2, on Fedora/RHEL it is httpd
  4891. and on Arch it is apache
  4892. .UNINDENT
  4893. .UNINDENT
  4894. .sp
  4895. The only thing left is to provision our minion using \fBsalt\-call\fP\&.
  4896. .SS Salt\-call
  4897. .sp
  4898. The salt\-call command is used to run remote execution functions locally on a
  4899. minion instead of executing them from the master. Normally the salt\-call
  4900. command checks into the master to retrieve file server and pillar data, but
  4901. when running standalone salt\-call needs to be instructed to not check the
  4902. master for this data:
  4903. .INDENT 0.0
  4904. .INDENT 3.5
  4905. .sp
  4906. .nf
  4907. .ft C
  4908. salt\-call \-\-local state.apply
  4909. .ft P
  4910. .fi
  4911. .UNINDENT
  4912. .UNINDENT
  4913. .sp
  4914. The \fB\-\-local\fP flag tells the salt\-minion to look for the state tree in the
  4915. local file system and not to contact a Salt Master for instructions.
  4916. .sp
  4917. To provide verbose output, use \fB\-l debug\fP:
  4918. .INDENT 0.0
  4919. .INDENT 3.5
  4920. .sp
  4921. .nf
  4922. .ft C
  4923. salt\-call \-\-local state.apply \-l debug
  4924. .ft P
  4925. .fi
  4926. .UNINDENT
  4927. .UNINDENT
  4928. .sp
  4929. The minion first examines the \fBtop.sls\fP file and determines that it is a part
  4930. of the group matched by \fB*\fP glob and that the \fBwebserver\fP SLS should be applied.
  4931. .sp
  4932. It then examines the \fBwebserver.sls\fP file and finds the \fBapache\fP state, which
  4933. installs the Apache package.
  4934. .sp
  4935. The minion should now have Apache installed, and the next step is to begin
  4936. learning how to write more complex states\&.
  4937. .SS Dependencies
  4938. .sp
  4939. Salt should run on any Unix\-like platform so long as the dependencies are met.
  4940. .INDENT 0.0
  4941. .IP \(bu 2
  4942. \fI\%Python\fP \- Python2 >= 2.7, Python3 >= 3.4
  4943. .IP \(bu 2
  4944. \fI\%msgpack\-python\fP \- High\-performance message interchange format
  4945. .IP \(bu 2
  4946. \fI\%YAML\fP \- Python YAML bindings
  4947. .IP \(bu 2
  4948. \fI\%Jinja2\fP \- parsing Salt States (configurable in the master settings)
  4949. .IP \(bu 2
  4950. \fI\%MarkupSafe\fP \- Implements a XML/HTML/XHTML Markup safe string for Python
  4951. .IP \(bu 2
  4952. \fI\%apache\-libcloud\fP \- Python lib for interacting with many of the popular
  4953. cloud service providers using a unified API
  4954. .IP \(bu 2
  4955. \fI\%Requests\fP \- HTTP library
  4956. .IP \(bu 2
  4957. \fI\%Tornado\fP \- Web framework and asynchronous networking library
  4958. .IP \(bu 2
  4959. \fI\%futures\fP \- Python2 only dependency. Backport of the concurrent.futures package from Python 3.2
  4960. .IP \(bu 2
  4961. ZeroMQ:
  4962. .INDENT 2.0
  4963. .IP \(bu 2
  4964. \fI\%ZeroMQ\fP >= 3.2.0
  4965. .IP \(bu 2
  4966. \fI\%pyzmq\fP >= 2.2.0 \- ZeroMQ Python bindings
  4967. .IP \(bu 2
  4968. \fI\%PyCrypto\fP \- The Python cryptography toolkit
  4969. .UNINDENT
  4970. .UNINDENT
  4971. .sp
  4972. \fBWARNING:\fP
  4973. .INDENT 0.0
  4974. .INDENT 3.5
  4975. For historical reasons, Salt requires PyCrypto as a "lowest common
  4976. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  4977. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  4978. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  4979. .UNINDENT
  4980. .UNINDENT
  4981. .sp
  4982. Salt defaults to the \fI\%ZeroMQ\fP transport. The \fB\-\-salt\-transport\fP installation
  4983. option is available, but currently only supports the \fBzeromq\fP option. This
  4984. may be expanded in the future.
  4985. .INDENT 0.0
  4986. .INDENT 3.5
  4987. .sp
  4988. .nf
  4989. .ft C
  4990. python setup.py \-\-salt\-transport=zeromq install
  4991. .ft P
  4992. .fi
  4993. .UNINDENT
  4994. .UNINDENT
  4995. .sp
  4996. This way, only the required dependencies are pulled by the setup script if need
  4997. be.
  4998. .sp
  4999. If installing using pip, the \fB\-\-salt\-transport\fP install option can be
  5000. provided like:
  5001. .INDENT 0.0
  5002. .INDENT 3.5
  5003. .sp
  5004. .nf
  5005. .ft C
  5006. pip install \-\-install\-option="\-\-salt\-transport=zeromq" salt
  5007. .ft P
  5008. .fi
  5009. .UNINDENT
  5010. .UNINDENT
  5011. .sp
  5012. \fBNOTE:\fP
  5013. .INDENT 0.0
  5014. .INDENT 3.5
  5015. Salt does not bundle dependencies that are typically distributed as part of
  5016. the base OS. If you have unmet dependencies and are using a custom or
  5017. minimal installation, you might need to install some additional packages
  5018. from your OS vendor.
  5019. .UNINDENT
  5020. .UNINDENT
  5021. .SS Optional Dependencies
  5022. .INDENT 0.0
  5023. .IP \(bu 2
  5024. \fI\%mako\fP \- an optional parser for Salt States (configurable in the master
  5025. settings)
  5026. .IP \(bu 2
  5027. gcc \- dynamic \fI\%Cython\fP module compiling
  5028. .UNINDENT
  5029. .SS Upgrading Salt
  5030. .sp
  5031. When upgrading Salt, the master(s) should always be upgraded first. Backward
  5032. compatibility for minions running newer versions of salt than their masters is
  5033. not guaranteed.
  5034. .sp
  5035. Whenever possible, backward compatibility between new masters and old minions
  5036. will be preserved. Generally, the only exception to this policy is in case of
  5037. a security vulnerability.
  5038. .sp
  5039. \fBSEE ALSO:\fP
  5040. .INDENT 0.0
  5041. .INDENT 3.5
  5042. Installing Salt for development and
  5043. contributing to the project.
  5044. .UNINDENT
  5045. .UNINDENT
  5046. .SS Building Packages using Salt Pack
  5047. .sp
  5048. Salt\-pack is an open\-source package builder for most commonly used Linux
  5049. platforms, for example: Redhat/CentOS and Debian/Ubuntu families, utilizing
  5050. SaltStack states and execution modules to build Salt and a specified set of
  5051. dependencies, from which a platform specific repository can be built.
  5052. .sp
  5053. \fI\%https://github.com/saltstack/salt\-pack\fP
  5054. .SH CONFIGURING SALT
  5055. .sp
  5056. This section explains how to configure user access, view and store job results,
  5057. secure and troubleshoot, and how to perform many other administrative tasks.
  5058. .SS Configuring the Salt Master
  5059. .sp
  5060. The Salt system is amazingly simple and easy to configure, the two components
  5061. of the Salt system each have a respective configuration file. The
  5062. \fBsalt\-master\fP is configured via the master configuration file, and the
  5063. \fBsalt\-minion\fP is configured via the minion configuration file.
  5064. .sp
  5065. \fBSEE ALSO:\fP
  5066. .INDENT 0.0
  5067. .INDENT 3.5
  5068. Example master configuration file\&.
  5069. .UNINDENT
  5070. .UNINDENT
  5071. .sp
  5072. The configuration file for the salt\-master is located at \fB/etc/salt/master\fP
  5073. by default. Atomic included configuration files can be placed in
  5074. \fB/etc/salt/master.d/*.conf\fP\&. Warning: files with other suffixes than .conf will
  5075. not be included. A notable exception is FreeBSD, where the configuration file is
  5076. located at \fB/usr/local/etc/salt\fP\&. The available options are as follows:
  5077. .SS Primary Master Configuration
  5078. .SS \fBinterface\fP
  5079. .sp
  5080. Default: \fB0.0.0.0\fP (all interfaces)
  5081. .sp
  5082. The local interface to bind to, must be an IP address.
  5083. .INDENT 0.0
  5084. .INDENT 3.5
  5085. .sp
  5086. .nf
  5087. .ft C
  5088. interface: 192.168.0.1
  5089. .ft P
  5090. .fi
  5091. .UNINDENT
  5092. .UNINDENT
  5093. .SS \fBipv6\fP
  5094. .sp
  5095. Default: \fBFalse\fP
  5096. .sp
  5097. Whether the master should listen for IPv6 connections. If this is set to True,
  5098. the interface option must be adjusted too (for example: \fBinterface: \(aq::\(aq\fP)
  5099. .INDENT 0.0
  5100. .INDENT 3.5
  5101. .sp
  5102. .nf
  5103. .ft C
  5104. ipv6: True
  5105. .ft P
  5106. .fi
  5107. .UNINDENT
  5108. .UNINDENT
  5109. .SS \fBpublish_port\fP
  5110. .sp
  5111. Default: \fB4505\fP
  5112. .sp
  5113. The network port to set up the publication interface.
  5114. .INDENT 0.0
  5115. .INDENT 3.5
  5116. .sp
  5117. .nf
  5118. .ft C
  5119. publish_port: 4505
  5120. .ft P
  5121. .fi
  5122. .UNINDENT
  5123. .UNINDENT
  5124. .SS \fBmaster_id\fP
  5125. .sp
  5126. Default: \fBNone\fP
  5127. .sp
  5128. The id to be passed in the publish job to minions. This is used for MultiSyndics
  5129. to return the job to the requesting master.
  5130. .sp
  5131. \fBNOTE:\fP
  5132. .INDENT 0.0
  5133. .INDENT 3.5
  5134. This must be the same string as the syndic is configured with.
  5135. .UNINDENT
  5136. .UNINDENT
  5137. .INDENT 0.0
  5138. .INDENT 3.5
  5139. .sp
  5140. .nf
  5141. .ft C
  5142. master_id: MasterOfMaster
  5143. .ft P
  5144. .fi
  5145. .UNINDENT
  5146. .UNINDENT
  5147. .SS \fBuser\fP
  5148. .sp
  5149. Default: \fBroot\fP
  5150. .sp
  5151. The user to run the Salt processes
  5152. .INDENT 0.0
  5153. .INDENT 3.5
  5154. .sp
  5155. .nf
  5156. .ft C
  5157. user: root
  5158. .ft P
  5159. .fi
  5160. .UNINDENT
  5161. .UNINDENT
  5162. .SS \fBenable_ssh_minions\fP
  5163. .sp
  5164. Default: \fBFalse\fP
  5165. .sp
  5166. Tell the master to also use salt\-ssh when running commands against minions.
  5167. .INDENT 0.0
  5168. .INDENT 3.5
  5169. .sp
  5170. .nf
  5171. .ft C
  5172. enable_ssh_minions: True
  5173. .ft P
  5174. .fi
  5175. .UNINDENT
  5176. .UNINDENT
  5177. .sp
  5178. \fBNOTE:\fP
  5179. .INDENT 0.0
  5180. .INDENT 3.5
  5181. Cross\-minion communication is still not possible. The Salt mine and
  5182. publish.publish do not work between minion types.
  5183. .UNINDENT
  5184. .UNINDENT
  5185. .SS \fBret_port\fP
  5186. .sp
  5187. Default: \fB4506\fP
  5188. .sp
  5189. The port used by the return server, this is the server used by Salt to receive
  5190. execution returns and command executions.
  5191. .INDENT 0.0
  5192. .INDENT 3.5
  5193. .sp
  5194. .nf
  5195. .ft C
  5196. ret_port: 4506
  5197. .ft P
  5198. .fi
  5199. .UNINDENT
  5200. .UNINDENT
  5201. .SS \fBpidfile\fP
  5202. .sp
  5203. Default: \fB/var/run/salt\-master.pid\fP
  5204. .sp
  5205. Specify the location of the master pidfile.
  5206. .INDENT 0.0
  5207. .INDENT 3.5
  5208. .sp
  5209. .nf
  5210. .ft C
  5211. pidfile: /var/run/salt\-master.pid
  5212. .ft P
  5213. .fi
  5214. .UNINDENT
  5215. .UNINDENT
  5216. .SS \fBroot_dir\fP
  5217. .sp
  5218. Default: \fB/\fP
  5219. .sp
  5220. The system root directory to operate from, change this to make Salt run from
  5221. an alternative root.
  5222. .INDENT 0.0
  5223. .INDENT 3.5
  5224. .sp
  5225. .nf
  5226. .ft C
  5227. root_dir: /
  5228. .ft P
  5229. .fi
  5230. .UNINDENT
  5231. .UNINDENT
  5232. .sp
  5233. \fBNOTE:\fP
  5234. .INDENT 0.0
  5235. .INDENT 3.5
  5236. This directory is prepended to the following options:
  5237. \fI\%pki_dir\fP, \fI\%cachedir\fP, \fI\%sock_dir\fP,
  5238. \fI\%log_file\fP, \fI\%autosign_file\fP,
  5239. \fI\%autoreject_file\fP, \fI\%pidfile\fP,
  5240. \fI\%autosign_grains_dir\fP\&.
  5241. .UNINDENT
  5242. .UNINDENT
  5243. .SS \fBconf_file\fP
  5244. .sp
  5245. Default: \fB/etc/salt/master\fP
  5246. .sp
  5247. The path to the master\(aqs configuration file.
  5248. .INDENT 0.0
  5249. .INDENT 3.5
  5250. .sp
  5251. .nf
  5252. .ft C
  5253. conf_file: /etc/salt/master
  5254. .ft P
  5255. .fi
  5256. .UNINDENT
  5257. .UNINDENT
  5258. .SS \fBpki_dir\fP
  5259. .sp
  5260. Default: \fB/etc/salt/pki/master\fP
  5261. .sp
  5262. The directory to store the pki authentication keys.
  5263. .INDENT 0.0
  5264. .INDENT 3.5
  5265. .sp
  5266. .nf
  5267. .ft C
  5268. pki_dir: /etc/salt/pki/master
  5269. .ft P
  5270. .fi
  5271. .UNINDENT
  5272. .UNINDENT
  5273. .SS \fBextension_modules\fP
  5274. .sp
  5275. Changed in version 2016.3.0: The default location for this directory has been moved. Prior to this
  5276. version, the location was a directory named \fBextmods\fP in the Salt
  5277. cachedir (on most platforms, \fB/var/cache/salt/extmods\fP). It has been
  5278. moved into the master cachedir (on most platforms,
  5279. \fB/var/cache/salt/master/extmods\fP).
  5280. .sp
  5281. Directory for custom modules. This directory can contain subdirectories for
  5282. each of Salt\(aqs module types such as \fBrunners\fP, \fBoutput\fP, \fBwheel\fP,
  5283. \fBmodules\fP, \fBstates\fP, \fBreturners\fP, \fBengines\fP, \fButils\fP, etc.
  5284. This path is appended to \fI\%root_dir\fP\&.
  5285. .INDENT 0.0
  5286. .INDENT 3.5
  5287. .sp
  5288. .nf
  5289. .ft C
  5290. extension_modules: /root/salt_extmods
  5291. .ft P
  5292. .fi
  5293. .UNINDENT
  5294. .UNINDENT
  5295. .SS \fBextmod_whitelist/extmod_blacklist\fP
  5296. .sp
  5297. New in version 2017.7.0.
  5298. .sp
  5299. By using this dictionary, the modules that are synced to the master\(aqs extmod cache using \fIsaltutil.sync_*\fP can be
  5300. limited. If nothing is set to a specific type, then all modules are accepted. To block all modules of a specific type,
  5301. whitelist an empty list.
  5302. .INDENT 0.0
  5303. .INDENT 3.5
  5304. .sp
  5305. .nf
  5306. .ft C
  5307. extmod_whitelist:
  5308. modules:
  5309. \- custom_module
  5310. engines:
  5311. \- custom_engine
  5312. pillars: []
  5313. extmod_blacklist:
  5314. modules:
  5315. \- specific_module
  5316. .ft P
  5317. .fi
  5318. .UNINDENT
  5319. .UNINDENT
  5320. .INDENT 0.0
  5321. .TP
  5322. .B Valid options:
  5323. .INDENT 7.0
  5324. .IP \(bu 2
  5325. modules
  5326. .IP \(bu 2
  5327. states
  5328. .IP \(bu 2
  5329. grains
  5330. .IP \(bu 2
  5331. renderers
  5332. .IP \(bu 2
  5333. returners
  5334. .IP \(bu 2
  5335. output
  5336. .IP \(bu 2
  5337. proxy
  5338. .IP \(bu 2
  5339. runners
  5340. .IP \(bu 2
  5341. wheel
  5342. .IP \(bu 2
  5343. engines
  5344. .IP \(bu 2
  5345. queues
  5346. .IP \(bu 2
  5347. pillar
  5348. .IP \(bu 2
  5349. utils
  5350. .IP \(bu 2
  5351. sdb
  5352. .IP \(bu 2
  5353. cache
  5354. .IP \(bu 2
  5355. clouds
  5356. .IP \(bu 2
  5357. tops
  5358. .IP \(bu 2
  5359. roster
  5360. .IP \(bu 2
  5361. tokens
  5362. .UNINDENT
  5363. .UNINDENT
  5364. .SS \fBmodule_dirs\fP
  5365. .sp
  5366. Default: \fB[]\fP
  5367. .sp
  5368. Like \fBextension_modules\fP, but a list of extra directories to search
  5369. for Salt modules.
  5370. .INDENT 0.0
  5371. .INDENT 3.5
  5372. .sp
  5373. .nf
  5374. .ft C
  5375. module_dirs:
  5376. \- /var/cache/salt/minion/extmods
  5377. .ft P
  5378. .fi
  5379. .UNINDENT
  5380. .UNINDENT
  5381. .SS \fBcachedir\fP
  5382. .sp
  5383. Default: \fB/var/cache/salt/master\fP
  5384. .sp
  5385. The location used to store cache information, particularly the job information
  5386. for executed salt commands.
  5387. .sp
  5388. This directory may contain sensitive data and should be protected accordingly.
  5389. .INDENT 0.0
  5390. .INDENT 3.5
  5391. .sp
  5392. .nf
  5393. .ft C
  5394. cachedir: /var/cache/salt/master
  5395. .ft P
  5396. .fi
  5397. .UNINDENT
  5398. .UNINDENT
  5399. .SS \fBverify_env\fP
  5400. .sp
  5401. Default: \fBTrue\fP
  5402. .sp
  5403. Verify and set permissions on configuration directories at startup.
  5404. .INDENT 0.0
  5405. .INDENT 3.5
  5406. .sp
  5407. .nf
  5408. .ft C
  5409. verify_env: True
  5410. .ft P
  5411. .fi
  5412. .UNINDENT
  5413. .UNINDENT
  5414. .SS \fBkeep_jobs\fP
  5415. .sp
  5416. Default: \fB24\fP
  5417. .sp
  5418. Set the number of hours to keep old job information. Note that setting this option
  5419. to \fB0\fP disables the cache cleaner.
  5420. .INDENT 0.0
  5421. .INDENT 3.5
  5422. .sp
  5423. .nf
  5424. .ft C
  5425. keep_jobs: 24
  5426. .ft P
  5427. .fi
  5428. .UNINDENT
  5429. .UNINDENT
  5430. .SS \fBgather_job_timeout\fP
  5431. .sp
  5432. New in version 2014.7.0.
  5433. .sp
  5434. Default: \fB10\fP
  5435. .sp
  5436. The number of seconds to wait when the client is requesting information
  5437. about running jobs.
  5438. .INDENT 0.0
  5439. .INDENT 3.5
  5440. .sp
  5441. .nf
  5442. .ft C
  5443. gather_job_timeout: 10
  5444. .ft P
  5445. .fi
  5446. .UNINDENT
  5447. .UNINDENT
  5448. .SS \fBtimeout\fP
  5449. .sp
  5450. Default: \fB5\fP
  5451. .sp
  5452. Set the default timeout for the salt command and api.
  5453. .SS \fBloop_interval\fP
  5454. .sp
  5455. Default: \fB60\fP
  5456. .sp
  5457. The loop_interval option controls the seconds for the master\(aqs maintenance
  5458. process check cycle. This process updates file server backends, cleans the
  5459. job cache and executes the scheduler.
  5460. .SS \fBoutput\fP
  5461. .sp
  5462. Default: \fBnested\fP
  5463. .sp
  5464. Set the default outputter used by the salt command.
  5465. .SS \fBoutputter_dirs\fP
  5466. .sp
  5467. Default: \fB[]\fP
  5468. .sp
  5469. A list of additional directories to search for salt outputters in.
  5470. .INDENT 0.0
  5471. .INDENT 3.5
  5472. .sp
  5473. .nf
  5474. .ft C
  5475. outputter_dirs: []
  5476. .ft P
  5477. .fi
  5478. .UNINDENT
  5479. .UNINDENT
  5480. .SS \fBoutput_file\fP
  5481. .sp
  5482. Default: None
  5483. .sp
  5484. Set the default output file used by the salt command. Default is to output
  5485. to the CLI and not to a file. Functions the same way as the "\-\-out\-file"
  5486. CLI option, only sets this to a single file for all salt commands.
  5487. .INDENT 0.0
  5488. .INDENT 3.5
  5489. .sp
  5490. .nf
  5491. .ft C
  5492. output_file: /path/output/file
  5493. .ft P
  5494. .fi
  5495. .UNINDENT
  5496. .UNINDENT
  5497. .SS \fBshow_timeout\fP
  5498. .sp
  5499. Default: \fBTrue\fP
  5500. .sp
  5501. Tell the client to show minions that have timed out.
  5502. .INDENT 0.0
  5503. .INDENT 3.5
  5504. .sp
  5505. .nf
  5506. .ft C
  5507. show_timeout: True
  5508. .ft P
  5509. .fi
  5510. .UNINDENT
  5511. .UNINDENT
  5512. .SS \fBshow_jid\fP
  5513. .sp
  5514. Default: \fBFalse\fP
  5515. .sp
  5516. Tell the client to display the jid when a job is published.
  5517. .INDENT 0.0
  5518. .INDENT 3.5
  5519. .sp
  5520. .nf
  5521. .ft C
  5522. show_jid: False
  5523. .ft P
  5524. .fi
  5525. .UNINDENT
  5526. .UNINDENT
  5527. .SS \fBcolor\fP
  5528. .sp
  5529. Default: \fBTrue\fP
  5530. .sp
  5531. By default output is colored, to disable colored output set the color value
  5532. to False.
  5533. .INDENT 0.0
  5534. .INDENT 3.5
  5535. .sp
  5536. .nf
  5537. .ft C
  5538. color: False
  5539. .ft P
  5540. .fi
  5541. .UNINDENT
  5542. .UNINDENT
  5543. .SS \fBcolor_theme\fP
  5544. .sp
  5545. Default: \fB""\fP
  5546. .sp
  5547. Specifies a path to the color theme to use for colored command line output.
  5548. .INDENT 0.0
  5549. .INDENT 3.5
  5550. .sp
  5551. .nf
  5552. .ft C
  5553. color_theme: /etc/salt/color_theme
  5554. .ft P
  5555. .fi
  5556. .UNINDENT
  5557. .UNINDENT
  5558. .SS \fBcli_summary\fP
  5559. .sp
  5560. Default: \fBFalse\fP
  5561. .sp
  5562. When set to \fBTrue\fP, displays a summary of the number of minions targeted,
  5563. the number of minions returned, and the number of minions that did not
  5564. return.
  5565. .INDENT 0.0
  5566. .INDENT 3.5
  5567. .sp
  5568. .nf
  5569. .ft C
  5570. cli_summary: False
  5571. .ft P
  5572. .fi
  5573. .UNINDENT
  5574. .UNINDENT
  5575. .SS \fBsock_dir\fP
  5576. .sp
  5577. Default: \fB/var/run/salt/master\fP
  5578. .sp
  5579. Set the location to use for creating Unix sockets for master process
  5580. communication.
  5581. .INDENT 0.0
  5582. .INDENT 3.5
  5583. .sp
  5584. .nf
  5585. .ft C
  5586. sock_dir: /var/run/salt/master
  5587. .ft P
  5588. .fi
  5589. .UNINDENT
  5590. .UNINDENT
  5591. .SS \fBenable_gpu_grains\fP
  5592. .sp
  5593. Default: \fBFalse\fP
  5594. .sp
  5595. Enable GPU hardware data for your master. Be aware that the master can
  5596. take a while to start up when lspci and/or dmidecode is used to populate the
  5597. grains for the master.
  5598. .INDENT 0.0
  5599. .INDENT 3.5
  5600. .sp
  5601. .nf
  5602. .ft C
  5603. enable_gpu_grains: True
  5604. .ft P
  5605. .fi
  5606. .UNINDENT
  5607. .UNINDENT
  5608. .SS \fBskip_grains\fP
  5609. .sp
  5610. Default: \fBFalse\fP
  5611. .sp
  5612. MasterMinions should omit grains. A MasterMinion is "a minion function object
  5613. for generic use on the master" that omit pillar. A RunnerClient creates a
  5614. MasterMinion omitting states and renderer. Setting to True can improve master
  5615. performance.
  5616. .INDENT 0.0
  5617. .INDENT 3.5
  5618. .sp
  5619. .nf
  5620. .ft C
  5621. skip_grains: True
  5622. .ft P
  5623. .fi
  5624. .UNINDENT
  5625. .UNINDENT
  5626. .SS \fBjob_cache\fP
  5627. .sp
  5628. Default: \fBTrue\fP
  5629. .sp
  5630. The master maintains a temporary job cache. While this is a great addition, it
  5631. can be a burden on the master for larger deployments (over 5000 minions).
  5632. Disabling the job cache will make previously executed jobs unavailable to
  5633. the jobs system and is not generally recommended. Normally it is wise to make
  5634. sure the master has access to a faster IO system or a tmpfs is mounted to the
  5635. jobs dir.
  5636. .INDENT 0.0
  5637. .INDENT 3.5
  5638. .sp
  5639. .nf
  5640. .ft C
  5641. job_cache: True
  5642. .ft P
  5643. .fi
  5644. .UNINDENT
  5645. .UNINDENT
  5646. .sp
  5647. \fBNOTE:\fP
  5648. .INDENT 0.0
  5649. .INDENT 3.5
  5650. Setting the \fBjob_cache\fP to \fBFalse\fP will not cache minion returns, but
  5651. the JID directory for each job is still created. The creation of the JID
  5652. directories is necessary because Salt uses those directories to check for
  5653. JID collisions. By setting this option to \fBFalse\fP, the job cache
  5654. directory, which is \fB/var/cache/salt/master/jobs/\fP by default, will be
  5655. smaller, but the JID directories will still be present.
  5656. .sp
  5657. Note that the \fI\%keep_jobs\fP option can be set to a lower value,
  5658. such as \fB1\fP, to limit the number of hours jobs are stored in the job
  5659. cache. (The default is 24 hours.)
  5660. .sp
  5661. Please see the Managing the Job Cache
  5662. documentation for more information.
  5663. .UNINDENT
  5664. .UNINDENT
  5665. .SS \fBminion_data_cache\fP
  5666. .sp
  5667. Default: \fBTrue\fP
  5668. .sp
  5669. The minion data cache is a cache of information about the minions stored on the
  5670. master, this information is primarily the pillar, grains and mine data. The data
  5671. is cached via the cache subsystem in the Master cachedir under the name of the
  5672. minion or in a supported database. The data is used to predetermine what minions
  5673. are expected to reply from executions.
  5674. .INDENT 0.0
  5675. .INDENT 3.5
  5676. .sp
  5677. .nf
  5678. .ft C
  5679. minion_data_cache: True
  5680. .ft P
  5681. .fi
  5682. .UNINDENT
  5683. .UNINDENT
  5684. .SS \fBcache\fP
  5685. .sp
  5686. Default: \fBlocalfs\fP
  5687. .sp
  5688. Cache subsystem module to use for minion data cache.
  5689. .INDENT 0.0
  5690. .INDENT 3.5
  5691. .sp
  5692. .nf
  5693. .ft C
  5694. cache: consul
  5695. .ft P
  5696. .fi
  5697. .UNINDENT
  5698. .UNINDENT
  5699. .SS \fBmemcache_expire_seconds\fP
  5700. .sp
  5701. Default: \fB0\fP
  5702. .sp
  5703. Memcache is an additional cache layer that keeps a limited amount of data
  5704. fetched from the minion data cache for a limited period of time in memory that
  5705. makes cache operations faster. It doesn\(aqt make much sense for the \fBlocalfs\fP
  5706. cache driver but helps for more complex drivers like \fBconsul\fP\&.
  5707. .sp
  5708. This option sets the memcache items expiration time. By default is set to \fB0\fP
  5709. that disables the memcache.
  5710. .INDENT 0.0
  5711. .INDENT 3.5
  5712. .sp
  5713. .nf
  5714. .ft C
  5715. memcache_expire_seconds: 30
  5716. .ft P
  5717. .fi
  5718. .UNINDENT
  5719. .UNINDENT
  5720. .SS \fBmemcache_max_items\fP
  5721. .sp
  5722. Default: \fB1024\fP
  5723. .sp
  5724. Set memcache limit in items that are bank\-key pairs. I.e the list of
  5725. minion_0/data, minion_0/mine, minion_1/data contains 3 items. This value depends
  5726. on the count of minions usually targeted in your environment. The best one could
  5727. be found by analyzing the cache log with \fBmemcache_debug\fP enabled.
  5728. .INDENT 0.0
  5729. .INDENT 3.5
  5730. .sp
  5731. .nf
  5732. .ft C
  5733. memcache_max_items: 1024
  5734. .ft P
  5735. .fi
  5736. .UNINDENT
  5737. .UNINDENT
  5738. .SS \fBmemcache_full_cleanup\fP
  5739. .sp
  5740. Default: \fBFalse\fP
  5741. .sp
  5742. If cache storage got full, i.e. the items count exceeds the
  5743. \fBmemcache_max_items\fP value, memcache cleans up its storage. If this option
  5744. set to \fBFalse\fP memcache removes the only one oldest value from its storage.
  5745. If this set set to \fBTrue\fP memcache removes all the expired items and also
  5746. removes the oldest one if there are no expired items.
  5747. .INDENT 0.0
  5748. .INDENT 3.5
  5749. .sp
  5750. .nf
  5751. .ft C
  5752. memcache_full_cleanup: True
  5753. .ft P
  5754. .fi
  5755. .UNINDENT
  5756. .UNINDENT
  5757. .SS \fBmemcache_debug\fP
  5758. .sp
  5759. Default: \fBFalse\fP
  5760. .sp
  5761. Enable collecting the memcache stats and log it on \fIdebug\fP log level. If enabled
  5762. memcache collect information about how many \fBfetch\fP calls has been done and
  5763. how many of them has been hit by memcache. Also it outputs the rate value that
  5764. is the result of division of the first two values. This should help to choose
  5765. right values for the expiration time and the cache size.
  5766. .INDENT 0.0
  5767. .INDENT 3.5
  5768. .sp
  5769. .nf
  5770. .ft C
  5771. memcache_debug: True
  5772. .ft P
  5773. .fi
  5774. .UNINDENT
  5775. .UNINDENT
  5776. .SS \fBext_job_cache\fP
  5777. .sp
  5778. Default: \fB\(aq\(aq\fP
  5779. .sp
  5780. Used to specify a default returner for all minions. When this option is set,
  5781. the specified returner needs to be properly configured and the minions will
  5782. always default to sending returns to this returner. This will also disable the
  5783. local job cache on the master.
  5784. .INDENT 0.0
  5785. .INDENT 3.5
  5786. .sp
  5787. .nf
  5788. .ft C
  5789. ext_job_cache: redis
  5790. .ft P
  5791. .fi
  5792. .UNINDENT
  5793. .UNINDENT
  5794. .SS \fBevent_return\fP
  5795. .sp
  5796. New in version 2015.5.0.
  5797. .sp
  5798. Default: \fB\(aq\(aq\fP
  5799. .sp
  5800. Specify the returner(s) to use to log events. Each returner may have
  5801. installation and configuration requirements. Read the returner\(aqs
  5802. documentation.
  5803. .sp
  5804. \fBNOTE:\fP
  5805. .INDENT 0.0
  5806. .INDENT 3.5
  5807. Not all returners support event returns. Verify that a returner has an
  5808. \fBevent_return()\fP function before configuring this option with a returner.
  5809. .UNINDENT
  5810. .UNINDENT
  5811. .INDENT 0.0
  5812. .INDENT 3.5
  5813. .sp
  5814. .nf
  5815. .ft C
  5816. event_return:
  5817. \- syslog
  5818. \- splunk
  5819. .ft P
  5820. .fi
  5821. .UNINDENT
  5822. .UNINDENT
  5823. .SS \fBevent_return_queue\fP
  5824. .sp
  5825. New in version 2015.5.0.
  5826. .sp
  5827. Default: \fB0\fP
  5828. .sp
  5829. On busy systems, enabling event_returns can cause a considerable load on
  5830. the storage system for returners. Events can be queued on the master and
  5831. stored in a batched fashion using a single transaction for multiple events.
  5832. By default, events are not queued.
  5833. .INDENT 0.0
  5834. .INDENT 3.5
  5835. .sp
  5836. .nf
  5837. .ft C
  5838. event_return_queue: 0
  5839. .ft P
  5840. .fi
  5841. .UNINDENT
  5842. .UNINDENT
  5843. .SS \fBevent_return_whitelist\fP
  5844. .sp
  5845. New in version 2015.5.0.
  5846. .sp
  5847. Default: \fB[]\fP
  5848. .sp
  5849. Only return events matching tags in a whitelist.
  5850. .sp
  5851. Changed in version 2016.11.0: Supports glob matching patterns.
  5852. .INDENT 0.0
  5853. .INDENT 3.5
  5854. .sp
  5855. .nf
  5856. .ft C
  5857. event_return_whitelist:
  5858. \- salt/master/a_tag
  5859. \- salt/run/*/ret
  5860. .ft P
  5861. .fi
  5862. .UNINDENT
  5863. .UNINDENT
  5864. .SS \fBevent_return_blacklist\fP
  5865. .sp
  5866. New in version 2015.5.0.
  5867. .sp
  5868. Default: \fB[]\fP
  5869. .sp
  5870. Store all event returns _except_ the tags in a blacklist.
  5871. .sp
  5872. Changed in version 2016.11.0: Supports glob matching patterns.
  5873. .INDENT 0.0
  5874. .INDENT 3.5
  5875. .sp
  5876. .nf
  5877. .ft C
  5878. event_return_blacklist:
  5879. \- salt/master/not_this_tag
  5880. \- salt/wheel/*/ret
  5881. .ft P
  5882. .fi
  5883. .UNINDENT
  5884. .UNINDENT
  5885. .SS \fBmax_event_size\fP
  5886. .sp
  5887. New in version 2014.7.0.
  5888. .sp
  5889. Default: \fB1048576\fP
  5890. .sp
  5891. Passing very large events can cause the minion to consume large amounts of
  5892. memory. This value tunes the maximum size of a message allowed onto the
  5893. master event bus. The value is expressed in bytes.
  5894. .INDENT 0.0
  5895. .INDENT 3.5
  5896. .sp
  5897. .nf
  5898. .ft C
  5899. max_event_size: 1048576
  5900. .ft P
  5901. .fi
  5902. .UNINDENT
  5903. .UNINDENT
  5904. .SS \fBmaster_job_cache\fP
  5905. .sp
  5906. New in version 2014.7.0.
  5907. .sp
  5908. Default: \fBlocal_cache\fP
  5909. .sp
  5910. Specify the returner to use for the job cache. The job cache will only be
  5911. interacted with from the salt master and therefore does not need to be
  5912. accessible from the minions.
  5913. .INDENT 0.0
  5914. .INDENT 3.5
  5915. .sp
  5916. .nf
  5917. .ft C
  5918. master_job_cache: redis
  5919. .ft P
  5920. .fi
  5921. .UNINDENT
  5922. .UNINDENT
  5923. .SS \fBjob_cache_store_endtime\fP
  5924. .sp
  5925. New in version 2015.8.0.
  5926. .sp
  5927. Default: \fBFalse\fP
  5928. .sp
  5929. Specify whether the Salt Master should store end times for jobs as returns
  5930. come in.
  5931. .INDENT 0.0
  5932. .INDENT 3.5
  5933. .sp
  5934. .nf
  5935. .ft C
  5936. job_cache_store_endtime: False
  5937. .ft P
  5938. .fi
  5939. .UNINDENT
  5940. .UNINDENT
  5941. .SS \fBenforce_mine_cache\fP
  5942. .sp
  5943. Default: False
  5944. .sp
  5945. By\-default when disabling the minion_data_cache mine will stop working since
  5946. it is based on cached data, by enabling this option we explicitly enabling
  5947. only the cache for the mine system.
  5948. .INDENT 0.0
  5949. .INDENT 3.5
  5950. .sp
  5951. .nf
  5952. .ft C
  5953. enforce_mine_cache: False
  5954. .ft P
  5955. .fi
  5956. .UNINDENT
  5957. .UNINDENT
  5958. .SS \fBmax_minions\fP
  5959. .sp
  5960. Default: 0
  5961. .sp
  5962. The maximum number of minion connections allowed by the master. Use this to
  5963. accommodate the number of minions per master if you have different types of
  5964. hardware serving your minions. The default of \fB0\fP means unlimited connections.
  5965. Please note that this can slow down the authentication process a bit in large
  5966. setups.
  5967. .INDENT 0.0
  5968. .INDENT 3.5
  5969. .sp
  5970. .nf
  5971. .ft C
  5972. max_minions: 100
  5973. .ft P
  5974. .fi
  5975. .UNINDENT
  5976. .UNINDENT
  5977. .SS \fBcon_cache\fP
  5978. .sp
  5979. Default: False
  5980. .sp
  5981. If max_minions is used in large installations, the master might experience
  5982. high\-load situations because of having to check the number of connected
  5983. minions for every authentication. This cache provides the minion\-ids of
  5984. all connected minions to all MWorker\-processes and greatly improves the
  5985. performance of max_minions.
  5986. .INDENT 0.0
  5987. .INDENT 3.5
  5988. .sp
  5989. .nf
  5990. .ft C
  5991. con_cache: True
  5992. .ft P
  5993. .fi
  5994. .UNINDENT
  5995. .UNINDENT
  5996. .SS \fBpresence_events\fP
  5997. .sp
  5998. Default: False
  5999. .sp
  6000. Causes the master to periodically look for actively connected minions.
  6001. Presence events are fired on the event bus on a
  6002. regular interval with a list of connected minions, as well as events with lists
  6003. of newly connected or disconnected minions. This is a master\-only operation
  6004. that does not send executions to minions.
  6005. .INDENT 0.0
  6006. .INDENT 3.5
  6007. .sp
  6008. .nf
  6009. .ft C
  6010. presence_events: False
  6011. .ft P
  6012. .fi
  6013. .UNINDENT
  6014. .UNINDENT
  6015. .SS \fBping_on_rotate\fP
  6016. .sp
  6017. New in version 2014.7.0.
  6018. .sp
  6019. Default: \fBFalse\fP
  6020. .sp
  6021. By default, the master AES key rotates every 24 hours. The next command
  6022. following a key rotation will trigger a key refresh from the minion which may
  6023. result in minions which do not respond to the first command after a key refresh.
  6024. .sp
  6025. To tell the master to ping all minions immediately after an AES key refresh,
  6026. set \fBping_on_rotate\fP to \fBTrue\fP\&. This should mitigate the issue where a
  6027. minion does not appear to initially respond after a key is rotated.
  6028. .sp
  6029. Note that enabling this may cause high load on the master immediately after the
  6030. key rotation event as minions reconnect. Consider this carefully if this salt
  6031. master is managing a large number of minions.
  6032. .sp
  6033. If disabled, it is recommended to handle this event by listening for the
  6034. \fBaes_key_rotate\fP event with the \fBkey\fP tag and acting appropriately.
  6035. .INDENT 0.0
  6036. .INDENT 3.5
  6037. .sp
  6038. .nf
  6039. .ft C
  6040. ping_on_rotate: False
  6041. .ft P
  6042. .fi
  6043. .UNINDENT
  6044. .UNINDENT
  6045. .SS \fBtransport\fP
  6046. .sp
  6047. Default: \fBzeromq\fP
  6048. .sp
  6049. Changes the underlying transport layer. ZeroMQ is the recommended transport
  6050. while additional transport layers are under development. Supported values are
  6051. \fBzeromq\fP and \fBtcp\fP (experimental). This setting has a significant impact on
  6052. performance and should not be changed unless you know what you are doing!
  6053. .INDENT 0.0
  6054. .INDENT 3.5
  6055. .sp
  6056. .nf
  6057. .ft C
  6058. transport: zeromq
  6059. .ft P
  6060. .fi
  6061. .UNINDENT
  6062. .UNINDENT
  6063. .SS \fBtransport_opts\fP
  6064. .sp
  6065. Default: \fB{}\fP
  6066. .sp
  6067. (experimental) Starts multiple transports and overrides options for each
  6068. transport with the provided dictionary This setting has a significant impact on
  6069. performance and should not be changed unless you know what you are doing! The
  6070. following example shows how to start a TCP transport alongside a ZMQ transport.
  6071. .INDENT 0.0
  6072. .INDENT 3.5
  6073. .sp
  6074. .nf
  6075. .ft C
  6076. transport_opts:
  6077. tcp:
  6078. publish_port: 4605
  6079. ret_port: 4606
  6080. zeromq: []
  6081. .ft P
  6082. .fi
  6083. .UNINDENT
  6084. .UNINDENT
  6085. .SS \fBmaster_stats\fP
  6086. .sp
  6087. Default: False
  6088. .sp
  6089. Turning on the master stats enables runtime throughput and statistics events
  6090. to be fired from the master event bus. These events will report on what
  6091. functions have been run on the master and how long these runs have, on
  6092. average, taken over a given period of time.
  6093. .SS \fBmaster_stats_event_iter\fP
  6094. .sp
  6095. Default: 60
  6096. .sp
  6097. The time in seconds to fire master_stats events. This will only fire in
  6098. conjunction with receiving a request to the master, idle masters will not
  6099. fire these events.
  6100. .SS \fBsock_pool_size\fP
  6101. .sp
  6102. Default: 1
  6103. .sp
  6104. To avoid blocking waiting while writing a data to a socket, we support
  6105. socket pool for Salt applications. For example, a job with a large number
  6106. of target host list can cause long period blocking waiting. The option
  6107. is used by ZMQ and TCP transports, and the other transport methods don\(aqt
  6108. need the socket pool by definition. Most of Salt tools, including CLI,
  6109. are enough to use a single bucket of socket pool. On the other hands,
  6110. it is highly recommended to set the size of socket pool larger than 1
  6111. for other Salt applications, especially Salt API, which must write data
  6112. to socket concurrently.
  6113. .INDENT 0.0
  6114. .INDENT 3.5
  6115. .sp
  6116. .nf
  6117. .ft C
  6118. sock_pool_size: 15
  6119. .ft P
  6120. .fi
  6121. .UNINDENT
  6122. .UNINDENT
  6123. .SS \fBipc_mode\fP
  6124. .sp
  6125. Default: \fBipc\fP
  6126. .sp
  6127. The ipc strategy. (i.e., sockets versus tcp, etc.) Windows platforms lack
  6128. POSIX IPC and must rely on TCP based inter\-process communications. \fBipc_mode\fP
  6129. is set to \fBtcp\fP by default on Windows.
  6130. .INDENT 0.0
  6131. .INDENT 3.5
  6132. .sp
  6133. .nf
  6134. .ft C
  6135. ipc_mode: ipc
  6136. .ft P
  6137. .fi
  6138. .UNINDENT
  6139. .UNINDENT
  6140. .SS \fBtcp_master_pub_port\fP
  6141. .sp
  6142. Default: \fB4512\fP
  6143. .sp
  6144. The TCP port on which events for the master should be published if \fBipc_mode\fP is TCP.
  6145. .INDENT 0.0
  6146. .INDENT 3.5
  6147. .sp
  6148. .nf
  6149. .ft C
  6150. tcp_master_pub_port: 4512
  6151. .ft P
  6152. .fi
  6153. .UNINDENT
  6154. .UNINDENT
  6155. .SS \fBtcp_master_pull_port\fP
  6156. .sp
  6157. Default: \fB4513\fP
  6158. .sp
  6159. The TCP port on which events for the master should be pulled if \fBipc_mode\fP is TCP.
  6160. .INDENT 0.0
  6161. .INDENT 3.5
  6162. .sp
  6163. .nf
  6164. .ft C
  6165. tcp_master_pull_port: 4513
  6166. .ft P
  6167. .fi
  6168. .UNINDENT
  6169. .UNINDENT
  6170. .SS \fBtcp_master_publish_pull\fP
  6171. .sp
  6172. Default: \fB4514\fP
  6173. .sp
  6174. The TCP port on which events for the master should be pulled fom and then republished onto
  6175. the event bus on the master.
  6176. .INDENT 0.0
  6177. .INDENT 3.5
  6178. .sp
  6179. .nf
  6180. .ft C
  6181. tcp_master_publish_pull: 4514
  6182. .ft P
  6183. .fi
  6184. .UNINDENT
  6185. .UNINDENT
  6186. .SS \fBtcp_master_workers\fP
  6187. .sp
  6188. Default: \fB4515\fP
  6189. .sp
  6190. The TCP port for \fBmworkers\fP to connect to on the master.
  6191. .INDENT 0.0
  6192. .INDENT 3.5
  6193. .sp
  6194. .nf
  6195. .ft C
  6196. tcp_master_workers: 4515
  6197. .ft P
  6198. .fi
  6199. .UNINDENT
  6200. .UNINDENT
  6201. .SS \fBauth_events\fP
  6202. .sp
  6203. New in version 2017.7.3.
  6204. .sp
  6205. Default: \fBTrue\fP
  6206. .sp
  6207. Determines whether the master will fire authentication events.
  6208. Authentication events are fired when
  6209. a minion performs an authentication check with the master.
  6210. .INDENT 0.0
  6211. .INDENT 3.5
  6212. .sp
  6213. .nf
  6214. .ft C
  6215. auth_events: True
  6216. .ft P
  6217. .fi
  6218. .UNINDENT
  6219. .UNINDENT
  6220. .SS \fBminion_data_cache_events\fP
  6221. .sp
  6222. New in version 2017.7.3.
  6223. .sp
  6224. Default: \fBTrue\fP
  6225. .sp
  6226. Determines whether the master will fire minion data cache events. Minion data
  6227. cache events are fired when a minion requests a minion data cache refresh.
  6228. .INDENT 0.0
  6229. .INDENT 3.5
  6230. .sp
  6231. .nf
  6232. .ft C
  6233. minion_data_cache_events: True
  6234. .ft P
  6235. .fi
  6236. .UNINDENT
  6237. .UNINDENT
  6238. .SS \fBhttp_connect_timeout\fP
  6239. .sp
  6240. New in version 2019.2.0.
  6241. .sp
  6242. Default: \fB20\fP
  6243. .sp
  6244. HTTP connection timeout in seconds.
  6245. Applied when fetching files using tornado back\-end.
  6246. Should be greater than overall download time.
  6247. .INDENT 0.0
  6248. .INDENT 3.5
  6249. .sp
  6250. .nf
  6251. .ft C
  6252. http_connect_timeout: 20
  6253. .ft P
  6254. .fi
  6255. .UNINDENT
  6256. .UNINDENT
  6257. .SS \fBhttp_request_timeout\fP
  6258. .sp
  6259. New in version 2015.8.0.
  6260. .sp
  6261. Default: \fB3600\fP
  6262. .sp
  6263. HTTP request timeout in seconds.
  6264. Applied when fetching files using tornado back\-end.
  6265. Should be greater than overall download time.
  6266. .INDENT 0.0
  6267. .INDENT 3.5
  6268. .sp
  6269. .nf
  6270. .ft C
  6271. http_request_timeout: 3600
  6272. .ft P
  6273. .fi
  6274. .UNINDENT
  6275. .UNINDENT
  6276. .SS \fBuse_yamlloader_old\fP
  6277. .sp
  6278. New in version 2019.2.1.
  6279. .sp
  6280. Default: \fBFalse\fP
  6281. .sp
  6282. Use the pre\-2019.2 YAML renderer.
  6283. Uses legacy YAML rendering to support some legacy inline data structures.
  6284. See the 2019.2.1 release notes for more details.
  6285. .INDENT 0.0
  6286. .INDENT 3.5
  6287. .sp
  6288. .nf
  6289. .ft C
  6290. use_yamlloader_old: False
  6291. .ft P
  6292. .fi
  6293. .UNINDENT
  6294. .UNINDENT
  6295. .SS Salt\-SSH Configuration
  6296. .SS \fBroster\fP
  6297. .sp
  6298. Default: \fBflat\fP
  6299. .sp
  6300. Define the default salt\-ssh roster module to use
  6301. .INDENT 0.0
  6302. .INDENT 3.5
  6303. .sp
  6304. .nf
  6305. .ft C
  6306. roster: cache
  6307. .ft P
  6308. .fi
  6309. .UNINDENT
  6310. .UNINDENT
  6311. .SS \fBroster_defaults\fP
  6312. .sp
  6313. New in version 2017.7.0.
  6314. .sp
  6315. Default settings which will be inherited by all rosters.
  6316. .INDENT 0.0
  6317. .INDENT 3.5
  6318. .sp
  6319. .nf
  6320. .ft C
  6321. roster_defaults:
  6322. user: daniel
  6323. sudo: True
  6324. priv: /root/.ssh/id_rsa
  6325. tty: True
  6326. .ft P
  6327. .fi
  6328. .UNINDENT
  6329. .UNINDENT
  6330. .SS \fBroster_file\fP
  6331. .sp
  6332. Default: \fB/etc/salt/roster\fP
  6333. .sp
  6334. Pass in an alternative location for the salt\-ssh \fBflat\fP roster file.
  6335. .INDENT 0.0
  6336. .INDENT 3.5
  6337. .sp
  6338. .nf
  6339. .ft C
  6340. roster_file: /root/roster
  6341. .ft P
  6342. .fi
  6343. .UNINDENT
  6344. .UNINDENT
  6345. .SS \fBrosters\fP
  6346. .sp
  6347. Default: \fBNone\fP
  6348. .sp
  6349. Define locations for \fBflat\fP roster files so they can
  6350. be chosen when using Salt API. An administrator can place roster files into
  6351. these locations. Then, when calling Salt API, the \fI\%roster_file\fP
  6352. parameter should contain a relative path to these locations. That is,
  6353. \fBroster_file=/foo/roster\fP will be resolved as
  6354. \fB/etc/salt/roster.d/foo/roster\fP etc. This feature prevents passing insecure
  6355. custom rosters through the Salt API.
  6356. .INDENT 0.0
  6357. .INDENT 3.5
  6358. .sp
  6359. .nf
  6360. .ft C
  6361. rosters:
  6362. \- /etc/salt/roster.d
  6363. \- /opt/salt/some/more/rosters
  6364. .ft P
  6365. .fi
  6366. .UNINDENT
  6367. .UNINDENT
  6368. .SS \fBssh_passwd\fP
  6369. .sp
  6370. Default: \fB\(aq\(aq\fP
  6371. .sp
  6372. The ssh password to log in with.
  6373. .INDENT 0.0
  6374. .INDENT 3.5
  6375. .sp
  6376. .nf
  6377. .ft C
  6378. ssh_passwd: \(aq\(aq
  6379. .ft P
  6380. .fi
  6381. .UNINDENT
  6382. .UNINDENT
  6383. .SS \fBssh_priv_passwd\fP
  6384. .sp
  6385. Default: \fB\(aq\(aq\fP
  6386. .sp
  6387. Passphrase for ssh private key file.
  6388. .INDENT 0.0
  6389. .INDENT 3.5
  6390. .sp
  6391. .nf
  6392. .ft C
  6393. ssh_priv_passwd: \(aq\(aq
  6394. .ft P
  6395. .fi
  6396. .UNINDENT
  6397. .UNINDENT
  6398. .SS \fBssh_port\fP
  6399. .sp
  6400. Default: \fB22\fP
  6401. .sp
  6402. The target system\(aqs ssh port number.
  6403. .INDENT 0.0
  6404. .INDENT 3.5
  6405. .sp
  6406. .nf
  6407. .ft C
  6408. ssh_port: 22
  6409. .ft P
  6410. .fi
  6411. .UNINDENT
  6412. .UNINDENT
  6413. .SS \fBssh_scan_ports\fP
  6414. .sp
  6415. Default: \fB22\fP
  6416. .sp
  6417. Comma\-separated list of ports to scan.
  6418. .INDENT 0.0
  6419. .INDENT 3.5
  6420. .sp
  6421. .nf
  6422. .ft C
  6423. ssh_scan_ports: 22
  6424. .ft P
  6425. .fi
  6426. .UNINDENT
  6427. .UNINDENT
  6428. .SS \fBssh_scan_timeout\fP
  6429. .sp
  6430. Default: \fB0.01\fP
  6431. .sp
  6432. Scanning socket timeout for salt\-ssh.
  6433. .INDENT 0.0
  6434. .INDENT 3.5
  6435. .sp
  6436. .nf
  6437. .ft C
  6438. ssh_scan_timeout: 0.01
  6439. .ft P
  6440. .fi
  6441. .UNINDENT
  6442. .UNINDENT
  6443. .SS \fBssh_sudo\fP
  6444. .sp
  6445. Default: \fBFalse\fP
  6446. .sp
  6447. Boolean to run command via sudo.
  6448. .INDENT 0.0
  6449. .INDENT 3.5
  6450. .sp
  6451. .nf
  6452. .ft C
  6453. ssh_sudo: False
  6454. .ft P
  6455. .fi
  6456. .UNINDENT
  6457. .UNINDENT
  6458. .SS \fBssh_timeout\fP
  6459. .sp
  6460. Default: \fB60\fP
  6461. .sp
  6462. Number of seconds to wait for a response when establishing an SSH connection.
  6463. .INDENT 0.0
  6464. .INDENT 3.5
  6465. .sp
  6466. .nf
  6467. .ft C
  6468. ssh_timeout: 60
  6469. .ft P
  6470. .fi
  6471. .UNINDENT
  6472. .UNINDENT
  6473. .SS \fBssh_user\fP
  6474. .sp
  6475. Default: \fBroot\fP
  6476. .sp
  6477. The user to log in as.
  6478. .INDENT 0.0
  6479. .INDENT 3.5
  6480. .sp
  6481. .nf
  6482. .ft C
  6483. ssh_user: root
  6484. .ft P
  6485. .fi
  6486. .UNINDENT
  6487. .UNINDENT
  6488. .SS \fBssh_log_file\fP
  6489. .sp
  6490. New in version 2016.3.5.
  6491. .sp
  6492. Default: \fB/var/log/salt/ssh\fP
  6493. .sp
  6494. Specify the log file of the \fBsalt\-ssh\fP command.
  6495. .INDENT 0.0
  6496. .INDENT 3.5
  6497. .sp
  6498. .nf
  6499. .ft C
  6500. ssh_log_file: /var/log/salt/ssh
  6501. .ft P
  6502. .fi
  6503. .UNINDENT
  6504. .UNINDENT
  6505. .SS \fBssh_minion_opts\fP
  6506. .sp
  6507. Default: None
  6508. .sp
  6509. Pass in minion option overrides that will be inserted into the SHIM for
  6510. salt\-ssh calls. The local minion config is not used for salt\-ssh. Can be
  6511. overridden on a per\-minion basis in the roster (\fBminion_opts\fP)
  6512. .INDENT 0.0
  6513. .INDENT 3.5
  6514. .sp
  6515. .nf
  6516. .ft C
  6517. ssh_minion_opts:
  6518. gpg_keydir: /root/gpg
  6519. .ft P
  6520. .fi
  6521. .UNINDENT
  6522. .UNINDENT
  6523. .SS \fBssh_use_home_key\fP
  6524. .sp
  6525. Default: False
  6526. .sp
  6527. Set this to True to default to using \fB~/.ssh/id_rsa\fP for salt\-ssh
  6528. authentication with minions
  6529. .INDENT 0.0
  6530. .INDENT 3.5
  6531. .sp
  6532. .nf
  6533. .ft C
  6534. ssh_use_home_key: False
  6535. .ft P
  6536. .fi
  6537. .UNINDENT
  6538. .UNINDENT
  6539. .SS \fBssh_identities_only\fP
  6540. .sp
  6541. Default: \fBFalse\fP
  6542. .sp
  6543. Set this to \fBTrue\fP to default salt\-ssh to run with \fB\-o IdentitiesOnly=yes\fP\&. This
  6544. option is intended for situations where the ssh\-agent offers many different identities
  6545. and allows ssh to ignore those identities and use the only one specified in options.
  6546. .INDENT 0.0
  6547. .INDENT 3.5
  6548. .sp
  6549. .nf
  6550. .ft C
  6551. ssh_identities_only: False
  6552. .ft P
  6553. .fi
  6554. .UNINDENT
  6555. .UNINDENT
  6556. .SS \fBssh_list_nodegroups\fP
  6557. .sp
  6558. Default: \fB{}\fP
  6559. .sp
  6560. List\-only nodegroups for salt\-ssh. Each group must be formed as either a comma\-separated
  6561. list, or a YAML list. This option is useful to group minions into easy\-to\-target groups
  6562. when using salt\-ssh. These groups can then be targeted with the normal \-N argument to
  6563. salt\-ssh.
  6564. .INDENT 0.0
  6565. .INDENT 3.5
  6566. .sp
  6567. .nf
  6568. .ft C
  6569. ssh_list_nodegroups:
  6570. groupA: minion1,minion2
  6571. groupB: minion1,minion3
  6572. .ft P
  6573. .fi
  6574. .UNINDENT
  6575. .UNINDENT
  6576. .sp
  6577. Default: False
  6578. .sp
  6579. Run the ssh_pre_flight script defined in the salt\-ssh roster. By default
  6580. the script will only run when the thin dir does not exist on the targeted
  6581. minion. This will force the script to run and not check if the thin dir
  6582. exists first.
  6583. .SS \fBthin_extra_mods\fP
  6584. .sp
  6585. Default: None
  6586. .sp
  6587. List of additional modules, needed to be included into the Salt Thin.
  6588. Pass a list of importable Python modules that are typically located in
  6589. the \fIsite\-packages\fP Python directory so they will be also always included
  6590. into the Salt Thin, once generated.
  6591. .SS \fBmin_extra_mods\fP
  6592. .sp
  6593. Default: None
  6594. .sp
  6595. Identical as \fIthin_extra_mods\fP, only applied to the Salt Minimal.
  6596. .SS Master Security Settings
  6597. .SS \fBopen_mode\fP
  6598. .sp
  6599. Default: \fBFalse\fP
  6600. .sp
  6601. Open mode is a dangerous security feature. One problem encountered with pki
  6602. authentication systems is that keys can become "mixed up" and authentication
  6603. begins to fail. Open mode turns off authentication and tells the master to
  6604. accept all authentication. This will clean up the pki keys received from the
  6605. minions. Open mode should not be turned on for general use. Open mode should
  6606. only be used for a short period of time to clean up pki keys. To turn on open
  6607. mode set this value to \fBTrue\fP\&.
  6608. .INDENT 0.0
  6609. .INDENT 3.5
  6610. .sp
  6611. .nf
  6612. .ft C
  6613. open_mode: False
  6614. .ft P
  6615. .fi
  6616. .UNINDENT
  6617. .UNINDENT
  6618. .SS \fBauto_accept\fP
  6619. .sp
  6620. Default: \fBFalse\fP
  6621. .sp
  6622. Enable auto_accept. This setting will automatically accept all incoming
  6623. public keys from minions.
  6624. .INDENT 0.0
  6625. .INDENT 3.5
  6626. .sp
  6627. .nf
  6628. .ft C
  6629. auto_accept: False
  6630. .ft P
  6631. .fi
  6632. .UNINDENT
  6633. .UNINDENT
  6634. .SS \fBkeysize\fP
  6635. .sp
  6636. Default: \fB2048\fP
  6637. .sp
  6638. The size of key that should be generated when creating new keys.
  6639. .INDENT 0.0
  6640. .INDENT 3.5
  6641. .sp
  6642. .nf
  6643. .ft C
  6644. keysize: 2048
  6645. .ft P
  6646. .fi
  6647. .UNINDENT
  6648. .UNINDENT
  6649. .SS \fBautosign_timeout\fP
  6650. .sp
  6651. New in version 2014.7.0.
  6652. .sp
  6653. Default: \fB120\fP
  6654. .sp
  6655. Time in minutes that a incoming public key with a matching name found in
  6656. pki_dir/minion_autosign/keyid is automatically accepted. Expired autosign keys
  6657. are removed when the master checks the minion_autosign directory. This method
  6658. to auto accept minions can be safer than an autosign_file because the
  6659. keyid record can expire and is limited to being an exact name match.
  6660. This should still be considered a less than secure option, due to the fact
  6661. that trust is based on just the requesting minion id.
  6662. .SS \fBautosign_file\fP
  6663. .sp
  6664. Default: \fBnot defined\fP
  6665. .sp
  6666. If the \fBautosign_file\fP is specified incoming keys specified in the autosign_file
  6667. will be automatically accepted. Matches will be searched for first by string
  6668. comparison, then by globbing, then by full\-string regex matching.
  6669. This should still be considered a less than secure option, due to the fact
  6670. that trust is based on just the requesting minion id.
  6671. .sp
  6672. Changed in version 2018.3.0: For security reasons the file must be readonly except for its owner.
  6673. If \fI\%permissive_pki_access\fP is \fBTrue\fP the owning group can also
  6674. have write access, but if Salt is running as \fBroot\fP it must be a member of that group.
  6675. A less strict requirement also existed in previous version.
  6676. .SS \fBautoreject_file\fP
  6677. .sp
  6678. New in version 2014.1.0.
  6679. .sp
  6680. Default: \fBnot defined\fP
  6681. .sp
  6682. Works like \fI\%autosign_file\fP, but instead allows you to specify
  6683. minion IDs for which keys will automatically be rejected. Will override both
  6684. membership in the \fI\%autosign_file\fP and the
  6685. \fI\%auto_accept\fP setting.
  6686. .SS \fBautosign_grains_dir\fP
  6687. .sp
  6688. New in version 2018.3.0.
  6689. .sp
  6690. Default: \fBnot defined\fP
  6691. .sp
  6692. If the \fBautosign_grains_dir\fP is specified, incoming keys from minions with
  6693. grain values that match those defined in files in the autosign_grains_dir
  6694. will be accepted automatically. Grain values that should be accepted automatically
  6695. can be defined by creating a file named like the corresponding grain in the
  6696. autosign_grains_dir and writing the values into that file, one value per line.
  6697. Lines starting with a \fB#\fP will be ignored.
  6698. Minion must be configured to send the corresponding grains on authentication.
  6699. This should still be considered a less than secure option, due to the fact
  6700. that trust is based on just the requesting minion.
  6701. .sp
  6702. Please see the Autoaccept Minions from Grains
  6703. documentation for more information.
  6704. .INDENT 0.0
  6705. .INDENT 3.5
  6706. .sp
  6707. .nf
  6708. .ft C
  6709. autosign_grains_dir: /etc/salt/autosign_grains
  6710. .ft P
  6711. .fi
  6712. .UNINDENT
  6713. .UNINDENT
  6714. .SS \fBpermissive_pki_access\fP
  6715. .sp
  6716. Default: \fBFalse\fP
  6717. .sp
  6718. Enable permissive access to the salt keys. This allows you to run the
  6719. master or minion as root, but have a non\-root group be given access to
  6720. your pki_dir. To make the access explicit, root must belong to the group
  6721. you\(aqve given access to. This is potentially quite insecure. If an autosign_file
  6722. is specified, enabling permissive_pki_access will allow group access to that
  6723. specific file.
  6724. .INDENT 0.0
  6725. .INDENT 3.5
  6726. .sp
  6727. .nf
  6728. .ft C
  6729. permissive_pki_access: False
  6730. .ft P
  6731. .fi
  6732. .UNINDENT
  6733. .UNINDENT
  6734. .SS \fBpublisher_acl\fP
  6735. .sp
  6736. Default: \fB{}\fP
  6737. .sp
  6738. Enable user accounts on the master to execute specific modules. These modules
  6739. can be expressed as regular expressions.
  6740. .INDENT 0.0
  6741. .INDENT 3.5
  6742. .sp
  6743. .nf
  6744. .ft C
  6745. publisher_acl:
  6746. fred:
  6747. \- test.ping
  6748. \- pkg.*
  6749. .ft P
  6750. .fi
  6751. .UNINDENT
  6752. .UNINDENT
  6753. .SS \fBpublisher_acl_blacklist\fP
  6754. .sp
  6755. Default: \fB{}\fP
  6756. .sp
  6757. Blacklist users or modules
  6758. .sp
  6759. This example would blacklist all non sudo users, including root from
  6760. running any commands. It would also blacklist any use of the "cmd"
  6761. module.
  6762. .sp
  6763. This is completely disabled by default.
  6764. .INDENT 0.0
  6765. .INDENT 3.5
  6766. .sp
  6767. .nf
  6768. .ft C
  6769. publisher_acl_blacklist:
  6770. users:
  6771. \- root
  6772. \- \(aq^(?!sudo_).*$\(aq # all non sudo users
  6773. modules:
  6774. \- cmd.*
  6775. \- test.echo
  6776. .ft P
  6777. .fi
  6778. .UNINDENT
  6779. .UNINDENT
  6780. .SS \fBsudo_acl\fP
  6781. .sp
  6782. Default: \fBFalse\fP
  6783. .sp
  6784. Enforce \fBpublisher_acl\fP and \fBpublisher_acl_blacklist\fP when users have sudo
  6785. access to the salt command.
  6786. .INDENT 0.0
  6787. .INDENT 3.5
  6788. .sp
  6789. .nf
  6790. .ft C
  6791. sudo_acl: False
  6792. .ft P
  6793. .fi
  6794. .UNINDENT
  6795. .UNINDENT
  6796. .SS \fBexternal_auth\fP
  6797. .sp
  6798. Default: \fB{}\fP
  6799. .sp
  6800. The external auth system uses the Salt auth modules to authenticate and
  6801. validate users to access areas of the Salt system.
  6802. .INDENT 0.0
  6803. .INDENT 3.5
  6804. .sp
  6805. .nf
  6806. .ft C
  6807. external_auth:
  6808. pam:
  6809. fred:
  6810. \- test.*
  6811. .ft P
  6812. .fi
  6813. .UNINDENT
  6814. .UNINDENT
  6815. .SS \fBtoken_expire\fP
  6816. .sp
  6817. Default: \fB43200\fP
  6818. .sp
  6819. Time (in seconds) for a newly generated token to live.
  6820. .sp
  6821. Default: 12 hours
  6822. .INDENT 0.0
  6823. .INDENT 3.5
  6824. .sp
  6825. .nf
  6826. .ft C
  6827. token_expire: 43200
  6828. .ft P
  6829. .fi
  6830. .UNINDENT
  6831. .UNINDENT
  6832. .SS \fBtoken_expire_user_override\fP
  6833. .sp
  6834. Default: \fBFalse\fP
  6835. .sp
  6836. Allow eauth users to specify the expiry time of the tokens they generate.
  6837. .sp
  6838. A boolean applies to all users or a dictionary of whitelisted eauth backends
  6839. and usernames may be given:
  6840. .INDENT 0.0
  6841. .INDENT 3.5
  6842. .sp
  6843. .nf
  6844. .ft C
  6845. token_expire_user_override:
  6846. pam:
  6847. \- fred
  6848. \- tom
  6849. ldap:
  6850. \- gary
  6851. .ft P
  6852. .fi
  6853. .UNINDENT
  6854. .UNINDENT
  6855. .SS \fBkeep_acl_in_token\fP
  6856. .sp
  6857. Default: \fBFalse\fP
  6858. .sp
  6859. Set to True to enable keeping the calculated user\(aqs auth list in the token
  6860. file. This is disabled by default and the auth list is calculated or requested
  6861. from the eauth driver each time.
  6862. .INDENT 0.0
  6863. .INDENT 3.5
  6864. .sp
  6865. .nf
  6866. .ft C
  6867. keep_acl_in_token: False
  6868. .ft P
  6869. .fi
  6870. .UNINDENT
  6871. .UNINDENT
  6872. .SS \fBeauth_acl_module\fP
  6873. .sp
  6874. Default: \fB\(aq\(aq\fP
  6875. .sp
  6876. Auth subsystem module to use to get authorized access list for a user. By default it\(aqs
  6877. the same module used for external authentication.
  6878. .INDENT 0.0
  6879. .INDENT 3.5
  6880. .sp
  6881. .nf
  6882. .ft C
  6883. eauth_acl_module: django
  6884. .ft P
  6885. .fi
  6886. .UNINDENT
  6887. .UNINDENT
  6888. .SS \fBfile_recv\fP
  6889. .sp
  6890. Default: \fBFalse\fP
  6891. .sp
  6892. Allow minions to push files to the master. This is disabled by default, for
  6893. security purposes.
  6894. .INDENT 0.0
  6895. .INDENT 3.5
  6896. .sp
  6897. .nf
  6898. .ft C
  6899. file_recv: False
  6900. .ft P
  6901. .fi
  6902. .UNINDENT
  6903. .UNINDENT
  6904. .SS \fBfile_recv_max_size\fP
  6905. .sp
  6906. New in version 2014.7.0.
  6907. .sp
  6908. Default: \fB100\fP
  6909. .sp
  6910. Set a hard\-limit on the size of the files that can be pushed to the master.
  6911. It will be interpreted as megabytes.
  6912. .INDENT 0.0
  6913. .INDENT 3.5
  6914. .sp
  6915. .nf
  6916. .ft C
  6917. file_recv_max_size: 100
  6918. .ft P
  6919. .fi
  6920. .UNINDENT
  6921. .UNINDENT
  6922. .SS \fBmaster_sign_pubkey\fP
  6923. .sp
  6924. Default: \fBFalse\fP
  6925. .sp
  6926. Sign the master auth\-replies with a cryptographic signature of the master\(aqs
  6927. public key. Please see the tutorial how to use these settings in the
  6928. \fI\%Multimaster\-PKI with Failover Tutorial\fP
  6929. .INDENT 0.0
  6930. .INDENT 3.5
  6931. .sp
  6932. .nf
  6933. .ft C
  6934. master_sign_pubkey: True
  6935. .ft P
  6936. .fi
  6937. .UNINDENT
  6938. .UNINDENT
  6939. .SS \fBmaster_sign_key_name\fP
  6940. .sp
  6941. Default: \fBmaster_sign\fP
  6942. .sp
  6943. The customizable name of the signing\-key\-pair without suffix.
  6944. .INDENT 0.0
  6945. .INDENT 3.5
  6946. .sp
  6947. .nf
  6948. .ft C
  6949. master_sign_key_name: <filename_without_suffix>
  6950. .ft P
  6951. .fi
  6952. .UNINDENT
  6953. .UNINDENT
  6954. .SS \fBmaster_pubkey_signature\fP
  6955. .sp
  6956. Default: \fBmaster_pubkey_signature\fP
  6957. .sp
  6958. The name of the file in the master\(aqs pki\-directory that holds the pre\-calculated
  6959. signature of the master\(aqs public\-key.
  6960. .INDENT 0.0
  6961. .INDENT 3.5
  6962. .sp
  6963. .nf
  6964. .ft C
  6965. master_pubkey_signature: <filename>
  6966. .ft P
  6967. .fi
  6968. .UNINDENT
  6969. .UNINDENT
  6970. .SS \fBmaster_use_pubkey_signature\fP
  6971. .sp
  6972. Default: \fBFalse\fP
  6973. .sp
  6974. Instead of computing the signature for each auth\-reply, use a pre\-calculated
  6975. signature. The \fI\%master_pubkey_signature\fP must also be set for this.
  6976. .INDENT 0.0
  6977. .INDENT 3.5
  6978. .sp
  6979. .nf
  6980. .ft C
  6981. master_use_pubkey_signature: True
  6982. .ft P
  6983. .fi
  6984. .UNINDENT
  6985. .UNINDENT
  6986. .SS \fBrotate_aes_key\fP
  6987. .sp
  6988. Default: \fBTrue\fP
  6989. .sp
  6990. Rotate the salt\-masters AES\-key when a minion\-public is deleted with salt\-key.
  6991. This is a very important security\-setting. Disabling it will enable deleted
  6992. minions to still listen in on the messages published by the salt\-master.
  6993. Do not disable this unless it is absolutely clear what this does.
  6994. .INDENT 0.0
  6995. .INDENT 3.5
  6996. .sp
  6997. .nf
  6998. .ft C
  6999. rotate_aes_key: True
  7000. .ft P
  7001. .fi
  7002. .UNINDENT
  7003. .UNINDENT
  7004. .SS \fBpublish_session\fP
  7005. .sp
  7006. Default: \fB86400\fP
  7007. .sp
  7008. The number of seconds between AES key rotations on the master.
  7009. .INDENT 0.0
  7010. .INDENT 3.5
  7011. .sp
  7012. .nf
  7013. .ft C
  7014. publish_session: Default: 86400
  7015. .ft P
  7016. .fi
  7017. .UNINDENT
  7018. .UNINDENT
  7019. .SS \fBssl\fP
  7020. .sp
  7021. New in version 2016.11.0.
  7022. .sp
  7023. Default: \fBNone\fP
  7024. .sp
  7025. TLS/SSL connection options. This could be set to a dictionary containing
  7026. arguments corresponding to python \fBssl.wrap_socket\fP method. For details see
  7027. \fI\%Tornado\fP
  7028. and \fI\%Python\fP
  7029. documentation.
  7030. .sp
  7031. Note: to set enum arguments values like \fBcert_reqs\fP and \fBssl_version\fP use
  7032. constant names without ssl module prefix: \fBCERT_REQUIRED\fP or \fBPROTOCOL_SSLv23\fP\&.
  7033. .INDENT 0.0
  7034. .INDENT 3.5
  7035. .sp
  7036. .nf
  7037. .ft C
  7038. ssl:
  7039. keyfile: <path_to_keyfile>
  7040. certfile: <path_to_certfile>
  7041. ssl_version: PROTOCOL_TLSv1_2
  7042. .ft P
  7043. .fi
  7044. .UNINDENT
  7045. .UNINDENT
  7046. .SS \fBpreserve_minion_cache\fP
  7047. .sp
  7048. Default: \fBFalse\fP
  7049. .sp
  7050. By default, the master deletes its cache of minion data when the key for that
  7051. minion is removed. To preserve the cache after key deletion, set
  7052. \fBpreserve_minion_cache\fP to True.
  7053. .sp
  7054. WARNING: This may have security implications if compromised minions auth with
  7055. a previous deleted minion ID.
  7056. .INDENT 0.0
  7057. .INDENT 3.5
  7058. .sp
  7059. .nf
  7060. .ft C
  7061. preserve_minion_cache: False
  7062. .ft P
  7063. .fi
  7064. .UNINDENT
  7065. .UNINDENT
  7066. .SS \fBallow_minion_key_revoke\fP
  7067. .sp
  7068. Default: \fBTrue\fP
  7069. .sp
  7070. Controls whether a minion can request its own key revocation. When True
  7071. the master will honor the minion\(aqs request and revoke its key. When False,
  7072. the master will drop the request and the minion\(aqs key will remain accepted.
  7073. .INDENT 0.0
  7074. .INDENT 3.5
  7075. .sp
  7076. .nf
  7077. .ft C
  7078. allow_minion_key_revoke: False
  7079. .ft P
  7080. .fi
  7081. .UNINDENT
  7082. .UNINDENT
  7083. .SS \fBoptimization_order\fP
  7084. .sp
  7085. Default: \fB[0, 1, 2]\fP
  7086. .sp
  7087. In cases where Salt is distributed without .py files, this option determines
  7088. the priority of optimization level(s) Salt\(aqs module loader should prefer.
  7089. .sp
  7090. \fBNOTE:\fP
  7091. .INDENT 0.0
  7092. .INDENT 3.5
  7093. This option is only supported on Python 3.5+.
  7094. .UNINDENT
  7095. .UNINDENT
  7096. .INDENT 0.0
  7097. .INDENT 3.5
  7098. .sp
  7099. .nf
  7100. .ft C
  7101. optimization_order:
  7102. \- 2
  7103. \- 0
  7104. \- 1
  7105. .ft P
  7106. .fi
  7107. .UNINDENT
  7108. .UNINDENT
  7109. .SS Master Large Scale Tuning Settings
  7110. .SS \fBmax_open_files\fP
  7111. .sp
  7112. Default: \fB100000\fP
  7113. .sp
  7114. Each minion connecting to the master uses AT LEAST one file descriptor, the
  7115. master subscription connection. If enough minions connect you might start
  7116. seeing on the console(and then salt\-master crashes):
  7117. .INDENT 0.0
  7118. .INDENT 3.5
  7119. .sp
  7120. .nf
  7121. .ft C
  7122. Too many open files (tcp_listener.cpp:335)
  7123. Aborted (core dumped)
  7124. .ft P
  7125. .fi
  7126. .UNINDENT
  7127. .UNINDENT
  7128. .INDENT 0.0
  7129. .INDENT 3.5
  7130. .sp
  7131. .nf
  7132. .ft C
  7133. max_open_files: 100000
  7134. .ft P
  7135. .fi
  7136. .UNINDENT
  7137. .UNINDENT
  7138. .sp
  7139. By default this value will be the one of \fIulimit \-Hn\fP, i.e., the hard limit for
  7140. max open files.
  7141. .sp
  7142. To set a different value than the default one, uncomment, and configure this
  7143. setting. Remember that this value CANNOT be higher than the hard limit. Raising
  7144. the hard limit depends on the OS and/or distribution, a good way to find the
  7145. limit is to search the internet for something like this:
  7146. .INDENT 0.0
  7147. .INDENT 3.5
  7148. .sp
  7149. .nf
  7150. .ft C
  7151. raise max open files hard limit debian
  7152. .ft P
  7153. .fi
  7154. .UNINDENT
  7155. .UNINDENT
  7156. .SS \fBworker_threads\fP
  7157. .sp
  7158. Default: \fB5\fP
  7159. .sp
  7160. The number of threads to start for receiving commands and replies from minions.
  7161. If minions are stalling on replies because you have many minions, raise the
  7162. worker_threads value.
  7163. .sp
  7164. Worker threads should not be put below 3 when using the peer system, but can
  7165. drop down to 1 worker otherwise.
  7166. .sp
  7167. \fBNOTE:\fP
  7168. .INDENT 0.0
  7169. .INDENT 3.5
  7170. When the master daemon starts, it is expected behaviour to see
  7171. multiple salt\-master processes, even if \(aqworker_threads\(aq is set to \(aq1\(aq. At
  7172. a minimum, a controlling process will start along with a Publisher, an
  7173. EventPublisher, and a number of MWorker processes will be started. The
  7174. number of MWorker processes is tuneable by the \(aqworker_threads\(aq
  7175. configuration value while the others are not.
  7176. .UNINDENT
  7177. .UNINDENT
  7178. .INDENT 0.0
  7179. .INDENT 3.5
  7180. .sp
  7181. .nf
  7182. .ft C
  7183. worker_threads: 5
  7184. .ft P
  7185. .fi
  7186. .UNINDENT
  7187. .UNINDENT
  7188. .SS \fBpub_hwm\fP
  7189. .sp
  7190. Default: \fB1000\fP
  7191. .sp
  7192. The zeromq high water mark on the publisher interface.
  7193. .INDENT 0.0
  7194. .INDENT 3.5
  7195. .sp
  7196. .nf
  7197. .ft C
  7198. pub_hwm: 1000
  7199. .ft P
  7200. .fi
  7201. .UNINDENT
  7202. .UNINDENT
  7203. .SS \fBzmq_backlog\fP
  7204. .sp
  7205. Default: \fB1000\fP
  7206. .sp
  7207. The listen queue size of the ZeroMQ backlog.
  7208. .INDENT 0.0
  7209. .INDENT 3.5
  7210. .sp
  7211. .nf
  7212. .ft C
  7213. zmq_backlog: 1000
  7214. .ft P
  7215. .fi
  7216. .UNINDENT
  7217. .UNINDENT
  7218. .SS Master Module Management
  7219. .SS \fBrunner_dirs\fP
  7220. .sp
  7221. Default: \fB[]\fP
  7222. .sp
  7223. Set additional directories to search for runner modules.
  7224. .INDENT 0.0
  7225. .INDENT 3.5
  7226. .sp
  7227. .nf
  7228. .ft C
  7229. runner_dirs:
  7230. \- /var/lib/salt/runners
  7231. .ft P
  7232. .fi
  7233. .UNINDENT
  7234. .UNINDENT
  7235. .SS \fButils_dirs\fP
  7236. .sp
  7237. New in version 2018.3.0.
  7238. .sp
  7239. Default: \fB[]\fP
  7240. .sp
  7241. Set additional directories to search for util modules.
  7242. .INDENT 0.0
  7243. .INDENT 3.5
  7244. .sp
  7245. .nf
  7246. .ft C
  7247. utils_dirs:
  7248. \- /var/lib/salt/utils
  7249. .ft P
  7250. .fi
  7251. .UNINDENT
  7252. .UNINDENT
  7253. .SS \fBcython_enable\fP
  7254. .sp
  7255. Default: \fBFalse\fP
  7256. .sp
  7257. Set to true to enable Cython modules (.pyx files) to be compiled on the fly on
  7258. the Salt master.
  7259. .INDENT 0.0
  7260. .INDENT 3.5
  7261. .sp
  7262. .nf
  7263. .ft C
  7264. cython_enable: False
  7265. .ft P
  7266. .fi
  7267. .UNINDENT
  7268. .UNINDENT
  7269. .SS Master State System Settings
  7270. .SS \fBstate_top\fP
  7271. .sp
  7272. Default: \fBtop.sls\fP
  7273. .sp
  7274. The state system uses a "top" file to tell the minions what environment to
  7275. use and what modules to use. The state_top file is defined relative to the
  7276. root of the base environment. The value of "state_top" is also used for the
  7277. pillar top file
  7278. .INDENT 0.0
  7279. .INDENT 3.5
  7280. .sp
  7281. .nf
  7282. .ft C
  7283. state_top: top.sls
  7284. .ft P
  7285. .fi
  7286. .UNINDENT
  7287. .UNINDENT
  7288. .SS \fBstate_top_saltenv\fP
  7289. .sp
  7290. This option has no default value. Set it to an environment name to ensure that
  7291. \fIonly\fP the top file from that environment is considered during a
  7292. highstate\&.
  7293. .sp
  7294. \fBNOTE:\fP
  7295. .INDENT 0.0
  7296. .INDENT 3.5
  7297. Using this value does not change the merging strategy. For instance, if
  7298. \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and
  7299. \fI\%state_top_saltenv\fP is set to \fBfoo\fP, then any sections for
  7300. environments other than \fBfoo\fP in the top file for the \fBfoo\fP environment
  7301. will be ignored. With \fI\%state_top_saltenv\fP set to \fBbase\fP, all
  7302. states from all environments in the \fBbase\fP top file will be applied,
  7303. while all other top files are ignored. The only way to set
  7304. \fI\%state_top_saltenv\fP to something other than \fBbase\fP and not
  7305. have the other environments in the targeted top file ignored, would be to
  7306. set \fI\%top_file_merging_strategy\fP to \fBmerge_all\fP\&.
  7307. .UNINDENT
  7308. .UNINDENT
  7309. .INDENT 0.0
  7310. .INDENT 3.5
  7311. .sp
  7312. .nf
  7313. .ft C
  7314. state_top_saltenv: dev
  7315. .ft P
  7316. .fi
  7317. .UNINDENT
  7318. .UNINDENT
  7319. .SS \fBtop_file_merging_strategy\fP
  7320. .sp
  7321. Changed in version 2016.11.0: A \fBmerge_all\fP strategy has been added.
  7322. .sp
  7323. Default: \fBmerge\fP
  7324. .sp
  7325. When no specific fileserver environment (a.k.a. \fBsaltenv\fP) has been specified
  7326. for a highstate, all environments\(aq top files are
  7327. inspected. This config option determines how the SLS targets in those top files
  7328. are handled.
  7329. .sp
  7330. When set to \fBmerge\fP, the \fBbase\fP environment\(aqs top file is evaluated first,
  7331. followed by the other environments\(aq top files. The first target expression
  7332. (e.g. \fB\(aq*\(aq\fP) for a given environment is kept, and when the same target
  7333. expression is used in a different top file evaluated later, it is ignored.
  7334. Because \fBbase\fP is evaluated first, it is authoritative. For example, if there
  7335. is a target for \fB\(aq*\(aq\fP for the \fBfoo\fP environment in both the \fBbase\fP and
  7336. \fBfoo\fP environment\(aqs top files, the one in the \fBfoo\fP environment would be
  7337. ignored. The environments will be evaluated in no specific order (aside from
  7338. \fBbase\fP coming first). For greater control over the order in which the
  7339. environments are evaluated, use \fI\%env_order\fP\&. Note that, aside from
  7340. the \fBbase\fP environment\(aqs top file, any sections in top files that do not
  7341. match that top file\(aqs environment will be ignored. So, for example, a section
  7342. for the \fBqa\fP environment would be ignored if it appears in the \fBdev\fP
  7343. environment\(aqs top file. To keep use cases like this from being ignored, use the
  7344. \fBmerge_all\fP strategy.
  7345. .sp
  7346. When set to \fBsame\fP, then for each environment, only that environment\(aqs top
  7347. file is processed, with the others being ignored. For example, only the \fBdev\fP
  7348. environment\(aqs top file will be processed for the \fBdev\fP environment, and any
  7349. SLS targets defined for \fBdev\fP in the \fBbase\fP environment\(aqs (or any other
  7350. environment\(aqs) top file will be ignored. If an environment does not have a top
  7351. file, then the top file from the \fBdefault_top\fP config parameter
  7352. will be used as a fallback.
  7353. .sp
  7354. When set to \fBmerge_all\fP, then all states in all environments in all top files
  7355. will be applied. The order in which individual SLS files will be executed will
  7356. depend on the order in which the top files were evaluated, and the environments
  7357. will be evaluated in no specific order. For greater control over the order in
  7358. which the environments are evaluated, use \fI\%env_order\fP\&.
  7359. .INDENT 0.0
  7360. .INDENT 3.5
  7361. .sp
  7362. .nf
  7363. .ft C
  7364. top_file_merging_strategy: same
  7365. .ft P
  7366. .fi
  7367. .UNINDENT
  7368. .UNINDENT
  7369. .SS \fBenv_order\fP
  7370. .sp
  7371. Default: \fB[]\fP
  7372. .sp
  7373. When \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and no
  7374. environment is specified for a highstate, this
  7375. config option allows for the order in which top files are evaluated to be
  7376. explicitly defined.
  7377. .INDENT 0.0
  7378. .INDENT 3.5
  7379. .sp
  7380. .nf
  7381. .ft C
  7382. env_order:
  7383. \- base
  7384. \- dev
  7385. \- qa
  7386. .ft P
  7387. .fi
  7388. .UNINDENT
  7389. .UNINDENT
  7390. .SS \fBmaster_tops\fP
  7391. .sp
  7392. Default: \fB{}\fP
  7393. .sp
  7394. The master_tops option replaces the external_nodes option by creating
  7395. a pluggable system for the generation of external top data. The external_nodes
  7396. option is deprecated by the master_tops option.
  7397. To gain the capabilities of the classic external_nodes system, use the
  7398. following configuration:
  7399. .INDENT 0.0
  7400. .INDENT 3.5
  7401. .sp
  7402. .nf
  7403. .ft C
  7404. master_tops:
  7405. ext_nodes: <Shell command which returns yaml>
  7406. .ft P
  7407. .fi
  7408. .UNINDENT
  7409. .UNINDENT
  7410. .SS \fBrenderer\fP
  7411. .sp
  7412. Default: \fBjinja|yaml\fP
  7413. .sp
  7414. The renderer to use on the minions to render the state data.
  7415. .INDENT 0.0
  7416. .INDENT 3.5
  7417. .sp
  7418. .nf
  7419. .ft C
  7420. renderer: jinja|json
  7421. .ft P
  7422. .fi
  7423. .UNINDENT
  7424. .UNINDENT
  7425. .SS \fBuserdata_template\fP
  7426. .sp
  7427. New in version 2016.11.4.
  7428. .sp
  7429. Default: \fBNone\fP
  7430. .sp
  7431. The renderer to use for templating userdata files in salt\-cloud, if the
  7432. \fBuserdata_template\fP is not set in the cloud profile. If no value is set in
  7433. the cloud profile or master config file, no templating will be performed.
  7434. .INDENT 0.0
  7435. .INDENT 3.5
  7436. .sp
  7437. .nf
  7438. .ft C
  7439. userdata_template: jinja
  7440. .ft P
  7441. .fi
  7442. .UNINDENT
  7443. .UNINDENT
  7444. .SS \fBjinja_env\fP
  7445. .sp
  7446. New in version 2018.3.0.
  7447. .sp
  7448. Default: \fB{}\fP
  7449. .sp
  7450. jinja_env overrides the default Jinja environment options for
  7451. \fBall templates except sls templates\fP\&.
  7452. To set the options for sls templates use \fI\%jinja_sls_env\fP\&.
  7453. .sp
  7454. \fBNOTE:\fP
  7455. .INDENT 0.0
  7456. .INDENT 3.5
  7457. The \fI\%Jinja2 Environment documentation\fP is the official source for the default values.
  7458. Not all the options listed in the jinja documentation can be overridden using \fI\%jinja_env\fP or \fI\%jinja_sls_env\fP\&.
  7459. .UNINDENT
  7460. .UNINDENT
  7461. .sp
  7462. The default options are:
  7463. .INDENT 0.0
  7464. .INDENT 3.5
  7465. .sp
  7466. .nf
  7467. .ft C
  7468. jinja_env:
  7469. block_start_string: \(aq{%\(aq
  7470. block_end_string: \(aq%}\(aq
  7471. variable_start_string: \(aq{{\(aq
  7472. variable_end_string: \(aq}}\(aq
  7473. comment_start_string: \(aq{#\(aq
  7474. comment_end_string: \(aq#}\(aq
  7475. line_statement_prefix:
  7476. line_comment_prefix:
  7477. trim_blocks: False
  7478. lstrip_blocks: False
  7479. newline_sequence: \(aq\en\(aq
  7480. keep_trailing_newline: False
  7481. .ft P
  7482. .fi
  7483. .UNINDENT
  7484. .UNINDENT
  7485. .SS \fBjinja_sls_env\fP
  7486. .sp
  7487. New in version 2018.3.0.
  7488. .sp
  7489. Default: \fB{}\fP
  7490. .sp
  7491. jinja_sls_env sets the Jinja environment options for \fBsls templates\fP\&.
  7492. The defaults and accepted options are exactly the same as they are
  7493. for \fI\%jinja_env\fP\&.
  7494. .sp
  7495. The default options are:
  7496. .INDENT 0.0
  7497. .INDENT 3.5
  7498. .sp
  7499. .nf
  7500. .ft C
  7501. jinja_sls_env:
  7502. block_start_string: \(aq{%\(aq
  7503. block_end_string: \(aq%}\(aq
  7504. variable_start_string: \(aq{{\(aq
  7505. variable_end_string: \(aq}}\(aq
  7506. comment_start_string: \(aq{#\(aq
  7507. comment_end_string: \(aq#}\(aq
  7508. line_statement_prefix:
  7509. line_comment_prefix:
  7510. trim_blocks: False
  7511. lstrip_blocks: False
  7512. newline_sequence: \(aq\en\(aq
  7513. keep_trailing_newline: False
  7514. .ft P
  7515. .fi
  7516. .UNINDENT
  7517. .UNINDENT
  7518. .sp
  7519. Example using line statements and line comments to increase ease of use:
  7520. .sp
  7521. If your configuration options are
  7522. .INDENT 0.0
  7523. .INDENT 3.5
  7524. .sp
  7525. .nf
  7526. .ft C
  7527. jinja_sls_env:
  7528. line_statement_prefix: \(aq%\(aq
  7529. line_comment_prefix: \(aq##\(aq
  7530. .ft P
  7531. .fi
  7532. .UNINDENT
  7533. .UNINDENT
  7534. .sp
  7535. With these options jinja will interpret anything after a \fB%\fP at the start of a line (ignoreing whitespace)
  7536. as a jinja statement and will interpret anything after a \fB##\fP as a comment.
  7537. .sp
  7538. This allows the following more convenient syntax to be used:
  7539. .INDENT 0.0
  7540. .INDENT 3.5
  7541. .sp
  7542. .nf
  7543. .ft C
  7544. ## (this comment will not stay once rendered)
  7545. # (this comment remains in the rendered template)
  7546. ## ensure all the formula services are running
  7547. % for service in formula_services:
  7548. enable_service_{{ service }}:
  7549. service.running:
  7550. name: {{ service }}
  7551. % endfor
  7552. .ft P
  7553. .fi
  7554. .UNINDENT
  7555. .UNINDENT
  7556. .sp
  7557. The following less convenient but equivalent syntax would have to
  7558. be used if you had not set the line_statement and line_comment options:
  7559. .INDENT 0.0
  7560. .INDENT 3.5
  7561. .sp
  7562. .nf
  7563. .ft C
  7564. {# (this comment will not stay once rendered) #}
  7565. # (this comment remains in the rendered template)
  7566. {# ensure all the formula services are running #}
  7567. {% for service in formula_services %}
  7568. enable_service_{{ service }}:
  7569. service.running:
  7570. name: {{ service }}
  7571. {% endfor %}
  7572. .ft P
  7573. .fi
  7574. .UNINDENT
  7575. .UNINDENT
  7576. .SS \fBjinja_trim_blocks\fP
  7577. .sp
  7578. Deprecated since version 2018.3.0: Replaced by \fI\%jinja_env\fP and \fI\%jinja_sls_env\fP
  7579. .sp
  7580. New in version 2014.1.0.
  7581. .sp
  7582. Default: \fBFalse\fP
  7583. .sp
  7584. If this is set to \fBTrue\fP, the first newline after a Jinja block is
  7585. removed (block, not variable tag!). Defaults to \fBFalse\fP and corresponds
  7586. to the Jinja environment init variable \fBtrim_blocks\fP\&.
  7587. .INDENT 0.0
  7588. .INDENT 3.5
  7589. .sp
  7590. .nf
  7591. .ft C
  7592. jinja_trim_blocks: False
  7593. .ft P
  7594. .fi
  7595. .UNINDENT
  7596. .UNINDENT
  7597. .SS \fBjinja_lstrip_blocks\fP
  7598. .sp
  7599. Deprecated since version 2018.3.0: Replaced by \fI\%jinja_env\fP and \fI\%jinja_sls_env\fP
  7600. .sp
  7601. New in version 2014.1.0.
  7602. .sp
  7603. Default: \fBFalse\fP
  7604. .sp
  7605. If this is set to \fBTrue\fP, leading spaces and tabs are stripped from the
  7606. start of a line to a block. Defaults to \fBFalse\fP and corresponds to the
  7607. Jinja environment init variable \fBlstrip_blocks\fP\&.
  7608. .INDENT 0.0
  7609. .INDENT 3.5
  7610. .sp
  7611. .nf
  7612. .ft C
  7613. jinja_lstrip_blocks: False
  7614. .ft P
  7615. .fi
  7616. .UNINDENT
  7617. .UNINDENT
  7618. .SS \fBfailhard\fP
  7619. .sp
  7620. Default: \fBFalse\fP
  7621. .sp
  7622. Set the global failhard flag. This informs all states to stop running states
  7623. at the moment a single state fails.
  7624. .INDENT 0.0
  7625. .INDENT 3.5
  7626. .sp
  7627. .nf
  7628. .ft C
  7629. failhard: False
  7630. .ft P
  7631. .fi
  7632. .UNINDENT
  7633. .UNINDENT
  7634. .SS \fBstate_verbose\fP
  7635. .sp
  7636. Default: \fBTrue\fP
  7637. .sp
  7638. Controls the verbosity of state runs. By default, the results of all states are
  7639. returned, but setting this value to \fBFalse\fP will cause salt to only display
  7640. output for states that failed or states that have changes.
  7641. .INDENT 0.0
  7642. .INDENT 3.5
  7643. .sp
  7644. .nf
  7645. .ft C
  7646. state_verbose: False
  7647. .ft P
  7648. .fi
  7649. .UNINDENT
  7650. .UNINDENT
  7651. .SS \fBstate_output\fP
  7652. .sp
  7653. Default: \fBfull\fP
  7654. .sp
  7655. The state_output setting controls which results will be output full multi line:
  7656. .INDENT 0.0
  7657. .IP \(bu 2
  7658. \fBfull\fP, \fBterse\fP \- each state will be full/terse
  7659. .IP \(bu 2
  7660. \fBmixed\fP \- only states with errors will be full
  7661. .IP \(bu 2
  7662. \fBchanges\fP \- states with changes and errors will be full
  7663. .UNINDENT
  7664. .sp
  7665. \fBfull_id\fP, \fBmixed_id\fP, \fBchanges_id\fP and \fBterse_id\fP are also allowed;
  7666. when set, the state ID will be used as name in the output.
  7667. .INDENT 0.0
  7668. .INDENT 3.5
  7669. .sp
  7670. .nf
  7671. .ft C
  7672. state_output: full
  7673. .ft P
  7674. .fi
  7675. .UNINDENT
  7676. .UNINDENT
  7677. .SS \fBstate_output_diff\fP
  7678. .sp
  7679. Default: \fBFalse\fP
  7680. .sp
  7681. The state_output_diff setting changes whether or not the output from
  7682. successful states is returned. Useful when even the terse output of these
  7683. states is cluttering the logs. Set it to True to ignore them.
  7684. .INDENT 0.0
  7685. .INDENT 3.5
  7686. .sp
  7687. .nf
  7688. .ft C
  7689. state_output_diff: False
  7690. .ft P
  7691. .fi
  7692. .UNINDENT
  7693. .UNINDENT
  7694. .SS \fBstate_aggregate\fP
  7695. .sp
  7696. Default: \fBFalse\fP
  7697. .sp
  7698. Automatically aggregate all states that have support for mod_aggregate by
  7699. setting to \fBTrue\fP\&. Or pass a list of state module names to automatically
  7700. aggregate just those types.
  7701. .INDENT 0.0
  7702. .INDENT 3.5
  7703. .sp
  7704. .nf
  7705. .ft C
  7706. state_aggregate:
  7707. \- pkg
  7708. .ft P
  7709. .fi
  7710. .UNINDENT
  7711. .UNINDENT
  7712. .INDENT 0.0
  7713. .INDENT 3.5
  7714. .sp
  7715. .nf
  7716. .ft C
  7717. state_aggregate: True
  7718. .ft P
  7719. .fi
  7720. .UNINDENT
  7721. .UNINDENT
  7722. .SS \fBstate_events\fP
  7723. .sp
  7724. Default: \fBFalse\fP
  7725. .sp
  7726. Send progress events as each function in a state run completes execution
  7727. by setting to \fBTrue\fP\&. Progress events are in the format
  7728. \fBsalt/job/<JID>/prog/<MID>/<RUN NUM>\fP\&.
  7729. .INDENT 0.0
  7730. .INDENT 3.5
  7731. .sp
  7732. .nf
  7733. .ft C
  7734. state_events: True
  7735. .ft P
  7736. .fi
  7737. .UNINDENT
  7738. .UNINDENT
  7739. .SS \fByaml_utf8\fP
  7740. .sp
  7741. Default: \fBFalse\fP
  7742. .sp
  7743. Enable extra routines for YAML renderer used states containing UTF characters.
  7744. .INDENT 0.0
  7745. .INDENT 3.5
  7746. .sp
  7747. .nf
  7748. .ft C
  7749. yaml_utf8: False
  7750. .ft P
  7751. .fi
  7752. .UNINDENT
  7753. .UNINDENT
  7754. .SS \fBrunner_returns\fP
  7755. .sp
  7756. Default: \fBFalse\fP
  7757. .sp
  7758. If set to \fBTrue\fP, runner jobs will be saved to job cache (defined by
  7759. \fI\%master_job_cache\fP).
  7760. .INDENT 0.0
  7761. .INDENT 3.5
  7762. .sp
  7763. .nf
  7764. .ft C
  7765. runner_returns: True
  7766. .ft P
  7767. .fi
  7768. .UNINDENT
  7769. .UNINDENT
  7770. .SS Master File Server Settings
  7771. .SS \fBfileserver_backend\fP
  7772. .sp
  7773. Default: \fB[\(aqroots\(aq]\fP
  7774. .sp
  7775. Salt supports a modular fileserver backend system, this system allows the salt
  7776. master to link directly to third party systems to gather and manage the files
  7777. available to minions. Multiple backends can be configured and will be searched
  7778. for the requested file in the order in which they are defined here. The default
  7779. setting only enables the standard backend \fBroots\fP, which is configured using
  7780. the \fI\%file_roots\fP option.
  7781. .sp
  7782. Example:
  7783. .INDENT 0.0
  7784. .INDENT 3.5
  7785. .sp
  7786. .nf
  7787. .ft C
  7788. fileserver_backend:
  7789. \- roots
  7790. \- gitfs
  7791. .ft P
  7792. .fi
  7793. .UNINDENT
  7794. .UNINDENT
  7795. .sp
  7796. \fBNOTE:\fP
  7797. .INDENT 0.0
  7798. .INDENT 3.5
  7799. For masterless Salt, this parameter must be specified in the minion config
  7800. file.
  7801. .UNINDENT
  7802. .UNINDENT
  7803. .SS \fBfileserver_followsymlinks\fP
  7804. .sp
  7805. New in version 2014.1.0.
  7806. .sp
  7807. Default: \fBTrue\fP
  7808. .sp
  7809. By default, the file_server follows symlinks when walking the filesystem tree.
  7810. Currently this only applies to the default roots fileserver_backend.
  7811. .INDENT 0.0
  7812. .INDENT 3.5
  7813. .sp
  7814. .nf
  7815. .ft C
  7816. fileserver_followsymlinks: True
  7817. .ft P
  7818. .fi
  7819. .UNINDENT
  7820. .UNINDENT
  7821. .SS \fBfileserver_ignoresymlinks\fP
  7822. .sp
  7823. New in version 2014.1.0.
  7824. .sp
  7825. Default: \fBFalse\fP
  7826. .sp
  7827. If you do not want symlinks to be treated as the files they are pointing to,
  7828. set \fBfileserver_ignoresymlinks\fP to \fBTrue\fP\&. By default this is set to
  7829. False. When set to \fBTrue\fP, any detected symlink while listing files on the
  7830. Master will not be returned to the Minion.
  7831. .INDENT 0.0
  7832. .INDENT 3.5
  7833. .sp
  7834. .nf
  7835. .ft C
  7836. fileserver_ignoresymlinks: False
  7837. .ft P
  7838. .fi
  7839. .UNINDENT
  7840. .UNINDENT
  7841. .SS \fBfileserver_limit_traversal\fP
  7842. .sp
  7843. New in version 2014.1.0.
  7844. .sp
  7845. Deprecated since version 2018.3.4: This option is now ignored. Firstly, it only traversed
  7846. \fI\%file_roots\fP, which means it did not work for the other
  7847. fileserver backends. Secondly, since this option was added we have added
  7848. caching to the code that traverses the file_roots (and gitfs, etc.), which
  7849. greatly reduces the amount of traversal that is done.
  7850. .sp
  7851. Default: \fBFalse\fP
  7852. .sp
  7853. By default, the Salt fileserver recurses fully into all defined environments
  7854. to attempt to find files. To limit this behavior so that the fileserver only
  7855. traverses directories with SLS files and special Salt directories like _modules,
  7856. set \fBfileserver_limit_traversal\fP to \fBTrue\fP\&. This might be useful for
  7857. installations where a file root has a very large number of files and performance
  7858. is impacted.
  7859. .INDENT 0.0
  7860. .INDENT 3.5
  7861. .sp
  7862. .nf
  7863. .ft C
  7864. fileserver_limit_traversal: False
  7865. .ft P
  7866. .fi
  7867. .UNINDENT
  7868. .UNINDENT
  7869. .SS \fBfileserver_list_cache_time\fP
  7870. .sp
  7871. New in version 2014.1.0.
  7872. .sp
  7873. Changed in version 2016.11.0: The default was changed from \fB30\fP seconds to \fB20\fP\&.
  7874. .sp
  7875. Default: \fB20\fP
  7876. .sp
  7877. Salt caches the list of files/symlinks/directories for each fileserver backend
  7878. and environment as they are requested, to guard against a performance
  7879. bottleneck at scale when many minions all ask the fileserver which files are
  7880. available simultaneously. This configuration parameter allows for the max age
  7881. of that cache to be altered.
  7882. .sp
  7883. Set this value to \fB0\fP to disable use of this cache altogether, but keep in
  7884. mind that this may increase the CPU load on the master when running a highstate
  7885. on a large number of minions.
  7886. .sp
  7887. \fBNOTE:\fP
  7888. .INDENT 0.0
  7889. .INDENT 3.5
  7890. Rather than altering this configuration parameter, it may be advisable to
  7891. use the \fBfileserver.clear_file_list_cache\fP runner to clear these
  7892. caches.
  7893. .UNINDENT
  7894. .UNINDENT
  7895. .INDENT 0.0
  7896. .INDENT 3.5
  7897. .sp
  7898. .nf
  7899. .ft C
  7900. fileserver_list_cache_time: 5
  7901. .ft P
  7902. .fi
  7903. .UNINDENT
  7904. .UNINDENT
  7905. .SS \fBfileserver_verify_config\fP
  7906. .sp
  7907. New in version 2017.7.0.
  7908. .sp
  7909. Default: \fBTrue\fP
  7910. .sp
  7911. By default, as the master starts it performs some sanity checks on the
  7912. configured fileserver backends. If any of these sanity checks fail (such as
  7913. when an invalid configuration is used), the master daemon will abort.
  7914. .sp
  7915. To skip these sanity checks, set this option to \fBFalse\fP\&.
  7916. .INDENT 0.0
  7917. .INDENT 3.5
  7918. .sp
  7919. .nf
  7920. .ft C
  7921. fileserver_verify_config: False
  7922. .ft P
  7923. .fi
  7924. .UNINDENT
  7925. .UNINDENT
  7926. .SS \fBhash_type\fP
  7927. .sp
  7928. Default: \fBsha256\fP
  7929. .sp
  7930. The hash_type is the hash to use when discovering the hash of a file on
  7931. the master server. The default is sha256, but md5, sha1, sha224, sha384, and
  7932. sha512 are also supported.
  7933. .INDENT 0.0
  7934. .INDENT 3.5
  7935. .sp
  7936. .nf
  7937. .ft C
  7938. hash_type: sha256
  7939. .ft P
  7940. .fi
  7941. .UNINDENT
  7942. .UNINDENT
  7943. .SS \fBfile_buffer_size\fP
  7944. .sp
  7945. Default: \fB1048576\fP
  7946. .sp
  7947. The buffer size in the file server in bytes.
  7948. .INDENT 0.0
  7949. .INDENT 3.5
  7950. .sp
  7951. .nf
  7952. .ft C
  7953. file_buffer_size: 1048576
  7954. .ft P
  7955. .fi
  7956. .UNINDENT
  7957. .UNINDENT
  7958. .SS \fBfile_ignore_regex\fP
  7959. .sp
  7960. Default: \fB\(aq\(aq\fP
  7961. .sp
  7962. A regular expression (or a list of expressions) that will be matched
  7963. against the file path before syncing the modules and states to the minions.
  7964. This includes files affected by the file.recurse state.
  7965. For example, if you manage your custom modules and states in subversion
  7966. and don\(aqt want all the \(aq.svn\(aq folders and content synced to your minions,
  7967. you could set this to \(aq/.svn($|/)\(aq. By default nothing is ignored.
  7968. .INDENT 0.0
  7969. .INDENT 3.5
  7970. .sp
  7971. .nf
  7972. .ft C
  7973. file_ignore_regex:
  7974. \- \(aq/\e.svn($|/)\(aq
  7975. \- \(aq/\e.git($|/)\(aq
  7976. .ft P
  7977. .fi
  7978. .UNINDENT
  7979. .UNINDENT
  7980. .SS \fBfile_ignore_glob\fP
  7981. .sp
  7982. Default \fB\(aq\(aq\fP
  7983. .sp
  7984. A file glob (or list of file globs) that will be matched against the file
  7985. path before syncing the modules and states to the minions. This is similar
  7986. to file_ignore_regex above, but works on globs instead of regex. By default
  7987. nothing is ignored.
  7988. .INDENT 0.0
  7989. .INDENT 3.5
  7990. .sp
  7991. .nf
  7992. .ft C
  7993. file_ignore_glob:
  7994. \- \(aq\e*.pyc\(aq
  7995. \- \(aq\e*/somefolder/\e*.bak\(aq
  7996. \- \(aq\e*.swp\(aq
  7997. .ft P
  7998. .fi
  7999. .UNINDENT
  8000. .UNINDENT
  8001. .sp
  8002. \fBNOTE:\fP
  8003. .INDENT 0.0
  8004. .INDENT 3.5
  8005. Vim\(aqs .swp files are a common cause of Unicode errors in
  8006. \fBfile.recurse\fP states which use
  8007. templating. Unless there is a good reason to distribute them via the
  8008. fileserver, it is good practice to include \fB\(aq\e*.swp\(aq\fP in the
  8009. \fI\%file_ignore_glob\fP\&.
  8010. .UNINDENT
  8011. .UNINDENT
  8012. .SS \fBmaster_roots\fP
  8013. .sp
  8014. Default: \fB\(aq\(aq\fP
  8015. .sp
  8016. A master\-only copy of the \fI\%file_roots\fP dictionary, used by the
  8017. state compiler.
  8018. .sp
  8019. Example:
  8020. .INDENT 0.0
  8021. .INDENT 3.5
  8022. .sp
  8023. .nf
  8024. .ft C
  8025. master_roots:
  8026. base:
  8027. \- /srv/salt\-master
  8028. .ft P
  8029. .fi
  8030. .UNINDENT
  8031. .UNINDENT
  8032. .SS roots: Master\(aqs Local File Server
  8033. .SS \fBfile_roots\fP
  8034. .sp
  8035. Default:
  8036. .INDENT 0.0
  8037. .INDENT 3.5
  8038. .sp
  8039. .nf
  8040. .ft C
  8041. base:
  8042. \- /srv/salt
  8043. .ft P
  8044. .fi
  8045. .UNINDENT
  8046. .UNINDENT
  8047. .sp
  8048. Salt runs a lightweight file server written in ZeroMQ to deliver files to
  8049. minions. This file server is built into the master daemon and does not
  8050. require a dedicated port.
  8051. .sp
  8052. The file server works on environments passed to the master. Each environment
  8053. can have multiple root directories. The subdirectories in the multiple file
  8054. roots cannot match, otherwise the downloaded files will not be able to be
  8055. reliably ensured. A base environment is required to house the top file.
  8056. .sp
  8057. As of 2018.3.5 and 2019.2.1, it is possible to have \fI__env__\fP as a catch\-all environment.
  8058. .sp
  8059. Example:
  8060. .INDENT 0.0
  8061. .INDENT 3.5
  8062. .sp
  8063. .nf
  8064. .ft C
  8065. file_roots:
  8066. base:
  8067. \- /srv/salt
  8068. dev:
  8069. \- /srv/salt/dev/services
  8070. \- /srv/salt/dev/states
  8071. prod:
  8072. \- /srv/salt/prod/services
  8073. \- /srv/salt/prod/states
  8074. __env__:
  8075. \- /srv/salt/default
  8076. .ft P
  8077. .fi
  8078. .UNINDENT
  8079. .UNINDENT
  8080. .sp
  8081. \fBNOTE:\fP
  8082. .INDENT 0.0
  8083. .INDENT 3.5
  8084. For masterless Salt, this parameter must be specified in the minion config
  8085. file.
  8086. .UNINDENT
  8087. .UNINDENT
  8088. .SS \fBroots_update_interval\fP
  8089. .sp
  8090. New in version 2018.3.0.
  8091. .sp
  8092. Default: \fB60\fP
  8093. .sp
  8094. This option defines the update interval (in seconds) for
  8095. \fI\%file_roots\fP\&.
  8096. .sp
  8097. \fBNOTE:\fP
  8098. .INDENT 0.0
  8099. .INDENT 3.5
  8100. Since \fBfile_roots\fP consists of files local to the minion, the update
  8101. process for this fileserver backend just reaps the cache for this backend.
  8102. .UNINDENT
  8103. .UNINDENT
  8104. .INDENT 0.0
  8105. .INDENT 3.5
  8106. .sp
  8107. .nf
  8108. .ft C
  8109. roots_update_interval: 120
  8110. .ft P
  8111. .fi
  8112. .UNINDENT
  8113. .UNINDENT
  8114. .SS gitfs: Git Remote File Server Backend
  8115. .SS \fBgitfs_remotes\fP
  8116. .sp
  8117. Default: \fB[]\fP
  8118. .sp
  8119. When using the \fBgit\fP fileserver backend at least one git remote needs to be
  8120. defined. The user running the salt master will need read access to the repo.
  8121. .sp
  8122. The repos will be searched in order to find the file requested by a client and
  8123. the first repo to have the file will return it. Branches and tags are
  8124. translated into salt environments.
  8125. .INDENT 0.0
  8126. .INDENT 3.5
  8127. .sp
  8128. .nf
  8129. .ft C
  8130. gitfs_remotes:
  8131. \- git://github.com/saltstack/salt\-states.git
  8132. \- file:///var/git/saltmaster
  8133. .ft P
  8134. .fi
  8135. .UNINDENT
  8136. .UNINDENT
  8137. .sp
  8138. \fBNOTE:\fP
  8139. .INDENT 0.0
  8140. .INDENT 3.5
  8141. \fBfile://\fP repos will be treated as a remote and copied into the master\(aqs
  8142. gitfs cache, so only the \fIlocal\fP refs for those repos will be exposed as
  8143. fileserver environments.
  8144. .UNINDENT
  8145. .UNINDENT
  8146. .sp
  8147. As of 2014.7.0, it is possible to have per\-repo versions of several of the
  8148. gitfs configuration parameters. For more information, see the GitFS
  8149. Walkthrough\&.
  8150. .SS \fBgitfs_provider\fP
  8151. .sp
  8152. New in version 2014.7.0.
  8153. .sp
  8154. Optional parameter used to specify the provider to be used for gitfs. More
  8155. information can be found in the GitFS Walkthrough\&.
  8156. .sp
  8157. Must be either \fBpygit2\fP or \fBgitpython\fP\&. If unset, then each will be tried
  8158. in that same order, and the first one with a compatible version installed will
  8159. be the provider that is used.
  8160. .INDENT 0.0
  8161. .INDENT 3.5
  8162. .sp
  8163. .nf
  8164. .ft C
  8165. gitfs_provider: gitpython
  8166. .ft P
  8167. .fi
  8168. .UNINDENT
  8169. .UNINDENT
  8170. .SS \fBgitfs_ssl_verify\fP
  8171. .sp
  8172. Default: \fBTrue\fP
  8173. .sp
  8174. Specifies whether or not to ignore SSL certificate errors when fetching from
  8175. the repositories configured in \fI\%gitfs_remotes\fP\&. The \fBFalse\fP
  8176. setting is useful if you\(aqre using a git repo that uses a self\-signed
  8177. certificate. However, keep in mind that setting this to anything other \fBTrue\fP
  8178. is a considered insecure, and using an SSH\-based transport (if available) may
  8179. be a better option.
  8180. .INDENT 0.0
  8181. .INDENT 3.5
  8182. .sp
  8183. .nf
  8184. .ft C
  8185. gitfs_ssl_verify: False
  8186. .ft P
  8187. .fi
  8188. .UNINDENT
  8189. .UNINDENT
  8190. .sp
  8191. \fBNOTE:\fP
  8192. .INDENT 0.0
  8193. .INDENT 3.5
  8194. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  8195. newer.
  8196. .UNINDENT
  8197. .UNINDENT
  8198. .sp
  8199. Changed in version 2015.8.0: This option can now be configured on individual repositories as well. See
  8200. here for more info.
  8201. .sp
  8202. Changed in version 2016.11.0: The default config value changed from \fBFalse\fP to \fBTrue\fP\&.
  8203. .SS \fBgitfs_mountpoint\fP
  8204. .sp
  8205. New in version 2014.7.0.
  8206. .sp
  8207. Default: \fB\(aq\(aq\fP
  8208. .sp
  8209. Specifies a path on the salt fileserver which will be prepended to all files
  8210. served by gitfs. This option can be used in conjunction with
  8211. \fI\%gitfs_root\fP\&. It can also be configured for an individual
  8212. repository, see here for more info.
  8213. .INDENT 0.0
  8214. .INDENT 3.5
  8215. .sp
  8216. .nf
  8217. .ft C
  8218. gitfs_mountpoint: salt://foo/bar
  8219. .ft P
  8220. .fi
  8221. .UNINDENT
  8222. .UNINDENT
  8223. .sp
  8224. \fBNOTE:\fP
  8225. .INDENT 0.0
  8226. .INDENT 3.5
  8227. The \fBsalt://\fP protocol designation can be left off (in other words,
  8228. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  8229. \fBbaz.sh\fP in the root of a gitfs remote, and the above example mountpoint,
  8230. this file would be served up via \fBsalt://foo/bar/baz.sh\fP\&.
  8231. .UNINDENT
  8232. .UNINDENT
  8233. .SS \fBgitfs_root\fP
  8234. .sp
  8235. Default: \fB\(aq\(aq\fP
  8236. .sp
  8237. Relative path to a subdirectory within the repository from which Salt should
  8238. begin to serve files. This is useful when there are files in the repository
  8239. that should not be available to the Salt fileserver. Can be used in conjunction
  8240. with \fI\%gitfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  8241. directories above the one specified will be ignored and the relative path will
  8242. (for the purposes of gitfs) be considered as the root of the repo.
  8243. .INDENT 0.0
  8244. .INDENT 3.5
  8245. .sp
  8246. .nf
  8247. .ft C
  8248. gitfs_root: somefolder/otherfolder
  8249. .ft P
  8250. .fi
  8251. .UNINDENT
  8252. .UNINDENT
  8253. .sp
  8254. Changed in version 2014.7.0: This option can now be configured on individual repositories as well. See
  8255. here for more info.
  8256. .SS \fBgitfs_base\fP
  8257. .sp
  8258. Default: \fBmaster\fP
  8259. .sp
  8260. Defines which branch/tag should be used as the \fBbase\fP environment.
  8261. .INDENT 0.0
  8262. .INDENT 3.5
  8263. .sp
  8264. .nf
  8265. .ft C
  8266. gitfs_base: salt
  8267. .ft P
  8268. .fi
  8269. .UNINDENT
  8270. .UNINDENT
  8271. .sp
  8272. Changed in version 2014.7.0: This option can now be configured on individual repositories as well. See
  8273. here for more info.
  8274. .SS \fBgitfs_saltenv\fP
  8275. .sp
  8276. New in version 2016.11.0.
  8277. .sp
  8278. Default: \fB[]\fP
  8279. .sp
  8280. Global settings for per\-saltenv configuration parameters\&. Though per\-saltenv configuration parameters are
  8281. typically one\-off changes specific to a single gitfs remote, and thus more
  8282. often configured on a per\-remote basis, this parameter can be used to specify
  8283. per\-saltenv changes which should apply to all remotes. For example, the below
  8284. configuration will map the \fBdevelop\fP branch to the \fBdev\fP saltenv for all
  8285. gitfs remotes.
  8286. .INDENT 0.0
  8287. .INDENT 3.5
  8288. .sp
  8289. .nf
  8290. .ft C
  8291. gitfs_saltenv:
  8292. \- dev:
  8293. \- ref: develop
  8294. .ft P
  8295. .fi
  8296. .UNINDENT
  8297. .UNINDENT
  8298. .SS \fBgitfs_disable_saltenv_mapping\fP
  8299. .sp
  8300. New in version 2018.3.0.
  8301. .sp
  8302. Default: \fBFalse\fP
  8303. .sp
  8304. When set to \fBTrue\fP, all saltenv mapping logic is disregarded (aside from
  8305. which branch/tag is mapped to the \fBbase\fP saltenv). To use any other
  8306. environments, they must then be defined using per\-saltenv configuration
  8307. parameters\&.
  8308. .INDENT 0.0
  8309. .INDENT 3.5
  8310. .sp
  8311. .nf
  8312. .ft C
  8313. gitfs_disable_saltenv_mapping: True
  8314. .ft P
  8315. .fi
  8316. .UNINDENT
  8317. .UNINDENT
  8318. .sp
  8319. \fBNOTE:\fP
  8320. .INDENT 0.0
  8321. .INDENT 3.5
  8322. This is is a global configuration option, see here for examples of configuring it for individual
  8323. repositories.
  8324. .UNINDENT
  8325. .UNINDENT
  8326. .SS \fBgitfs_ref_types\fP
  8327. .sp
  8328. New in version 2018.3.0.
  8329. .sp
  8330. Default: \fB[\(aqbranch\(aq, \(aqtag\(aq, \(aqsha\(aq]\fP
  8331. .sp
  8332. This option defines what types of refs are mapped to fileserver environments
  8333. (i.e. saltenvs). It also sets the order of preference when there are
  8334. ambiguously\-named refs (i.e. when a branch and tag both have the same name).
  8335. The below example disables mapping of both tags and SHAs, so that only branches
  8336. are mapped as saltenvs:
  8337. .INDENT 0.0
  8338. .INDENT 3.5
  8339. .sp
  8340. .nf
  8341. .ft C
  8342. gitfs_ref_types:
  8343. \- branch
  8344. .ft P
  8345. .fi
  8346. .UNINDENT
  8347. .UNINDENT
  8348. .sp
  8349. \fBNOTE:\fP
  8350. .INDENT 0.0
  8351. .INDENT 3.5
  8352. This is is a global configuration option, see here for examples of configuring it for individual
  8353. repositories.
  8354. .UNINDENT
  8355. .UNINDENT
  8356. .sp
  8357. \fBNOTE:\fP
  8358. .INDENT 0.0
  8359. .INDENT 3.5
  8360. \fBsha\fP is special in that it will not show up when listing saltenvs (e.g.
  8361. with the \fBfileserver.envs\fP runner),
  8362. but works within states and with \fBcp.cache_file\fP to retrieve a file from a specific git SHA.
  8363. .UNINDENT
  8364. .UNINDENT
  8365. .SS \fBgitfs_saltenv_whitelist\fP
  8366. .sp
  8367. New in version 2014.7.0.
  8368. .sp
  8369. Changed in version 2018.3.0: Renamed from \fBgitfs_env_whitelist\fP to \fBgitfs_saltenv_whitelist\fP
  8370. .sp
  8371. Default: \fB[]\fP
  8372. .sp
  8373. Used to restrict which environments are made available. Can speed up state runs
  8374. if the repos in \fI\%gitfs_remotes\fP contain many branches/tags. More
  8375. information can be found in the GitFS Walkthrough\&.
  8376. .INDENT 0.0
  8377. .INDENT 3.5
  8378. .sp
  8379. .nf
  8380. .ft C
  8381. gitfs_saltenv_whitelist:
  8382. \- base
  8383. \- v1.*
  8384. \- \(aqmybranch\ed+\(aq
  8385. .ft P
  8386. .fi
  8387. .UNINDENT
  8388. .UNINDENT
  8389. .SS \fBgitfs_saltenv_blacklist\fP
  8390. .sp
  8391. New in version 2014.7.0.
  8392. .sp
  8393. Changed in version 2018.3.0: Renamed from \fBgitfs_env_blacklist\fP to \fBgitfs_saltenv_blacklist\fP
  8394. .sp
  8395. Default: \fB[]\fP
  8396. .sp
  8397. Used to restrict which environments are made available. Can speed up state runs
  8398. if the repos in \fI\%gitfs_remotes\fP contain many branches/tags. More
  8399. information can be found in the GitFS Walkthrough\&.
  8400. .INDENT 0.0
  8401. .INDENT 3.5
  8402. .sp
  8403. .nf
  8404. .ft C
  8405. gitfs_saltenv_blacklist:
  8406. \- base
  8407. \- v1.*
  8408. \- \(aqmybranch\ed+\(aq
  8409. .ft P
  8410. .fi
  8411. .UNINDENT
  8412. .UNINDENT
  8413. .SS \fBgitfs_global_lock\fP
  8414. .sp
  8415. New in version 2015.8.9.
  8416. .sp
  8417. Default: \fBTrue\fP
  8418. .sp
  8419. When set to \fBFalse\fP, if there is an update lock for a gitfs remote and the
  8420. pid written to it is not running on the master, the lock file will be
  8421. automatically cleared and a new lock will be obtained. When set to \fBTrue\fP,
  8422. Salt will simply log a warning when there is an update lock present.
  8423. .sp
  8424. On single\-master deployments, disabling this option can help automatically deal
  8425. with instances where the master was shutdown/restarted during the middle of a
  8426. gitfs update, leaving a update lock in place.
  8427. .sp
  8428. However, on multi\-master deployments with the gitfs cachedir shared via
  8429. \fI\%GlusterFS\fP, nfs, or another network filesystem, it is strongly recommended
  8430. not to disable this option as doing so will cause lock files to be removed if
  8431. they were created by a different master.
  8432. .INDENT 0.0
  8433. .INDENT 3.5
  8434. .sp
  8435. .nf
  8436. .ft C
  8437. # Disable global lock
  8438. gitfs_global_lock: False
  8439. .ft P
  8440. .fi
  8441. .UNINDENT
  8442. .UNINDENT
  8443. .SS \fBgitfs_update_interval\fP
  8444. .sp
  8445. New in version 2018.3.0.
  8446. .sp
  8447. Default: \fB60\fP
  8448. .sp
  8449. This option defines the default update interval (in seconds) for gitfs remotes.
  8450. The update interval can also be set for a single repository via a
  8451. per\-remote config option
  8452. .INDENT 0.0
  8453. .INDENT 3.5
  8454. .sp
  8455. .nf
  8456. .ft C
  8457. gitfs_update_interval: 120
  8458. .ft P
  8459. .fi
  8460. .UNINDENT
  8461. .UNINDENT
  8462. .SS GitFS Authentication Options
  8463. .sp
  8464. These parameters only currently apply to the pygit2 gitfs provider. Examples of
  8465. how to use these can be found in the GitFS Walkthrough\&.
  8466. .SS \fBgitfs_user\fP
  8467. .sp
  8468. New in version 2014.7.0.
  8469. .sp
  8470. Default: \fB\(aq\(aq\fP
  8471. .sp
  8472. Along with \fI\%gitfs_password\fP, is used to authenticate to HTTPS
  8473. remotes.
  8474. .INDENT 0.0
  8475. .INDENT 3.5
  8476. .sp
  8477. .nf
  8478. .ft C
  8479. gitfs_user: git
  8480. .ft P
  8481. .fi
  8482. .UNINDENT
  8483. .UNINDENT
  8484. .sp
  8485. \fBNOTE:\fP
  8486. .INDENT 0.0
  8487. .INDENT 3.5
  8488. This is is a global configuration option, see here for examples of configuring it for individual
  8489. repositories.
  8490. .UNINDENT
  8491. .UNINDENT
  8492. .SS \fBgitfs_password\fP
  8493. .sp
  8494. New in version 2014.7.0.
  8495. .sp
  8496. Default: \fB\(aq\(aq\fP
  8497. .sp
  8498. Along with \fI\%gitfs_user\fP, is used to authenticate to HTTPS remotes.
  8499. This parameter is not required if the repository does not use authentication.
  8500. .INDENT 0.0
  8501. .INDENT 3.5
  8502. .sp
  8503. .nf
  8504. .ft C
  8505. gitfs_password: mypassword
  8506. .ft P
  8507. .fi
  8508. .UNINDENT
  8509. .UNINDENT
  8510. .sp
  8511. \fBNOTE:\fP
  8512. .INDENT 0.0
  8513. .INDENT 3.5
  8514. This is is a global configuration option, see here for examples of configuring it for individual
  8515. repositories.
  8516. .UNINDENT
  8517. .UNINDENT
  8518. .SS \fBgitfs_insecure_auth\fP
  8519. .sp
  8520. New in version 2014.7.0.
  8521. .sp
  8522. Default: \fBFalse\fP
  8523. .sp
  8524. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  8525. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  8526. .INDENT 0.0
  8527. .INDENT 3.5
  8528. .sp
  8529. .nf
  8530. .ft C
  8531. gitfs_insecure_auth: True
  8532. .ft P
  8533. .fi
  8534. .UNINDENT
  8535. .UNINDENT
  8536. .sp
  8537. \fBNOTE:\fP
  8538. .INDENT 0.0
  8539. .INDENT 3.5
  8540. This is is a global configuration option, see here for examples of configuring it for individual
  8541. repositories.
  8542. .UNINDENT
  8543. .UNINDENT
  8544. .SS \fBgitfs_pubkey\fP
  8545. .sp
  8546. New in version 2014.7.0.
  8547. .sp
  8548. Default: \fB\(aq\(aq\fP
  8549. .sp
  8550. Along with \fI\%gitfs_privkey\fP (and optionally
  8551. \fI\%gitfs_passphrase\fP), is used to authenticate to SSH remotes.
  8552. Required for SSH remotes.
  8553. .INDENT 0.0
  8554. .INDENT 3.5
  8555. .sp
  8556. .nf
  8557. .ft C
  8558. gitfs_pubkey: /path/to/key.pub
  8559. .ft P
  8560. .fi
  8561. .UNINDENT
  8562. .UNINDENT
  8563. .sp
  8564. \fBNOTE:\fP
  8565. .INDENT 0.0
  8566. .INDENT 3.5
  8567. This is is a global configuration option, see here for examples of configuring it for individual
  8568. repositories.
  8569. .UNINDENT
  8570. .UNINDENT
  8571. .SS \fBgitfs_privkey\fP
  8572. .sp
  8573. New in version 2014.7.0.
  8574. .sp
  8575. Default: \fB\(aq\(aq\fP
  8576. .sp
  8577. Along with \fI\%gitfs_pubkey\fP (and optionally
  8578. \fI\%gitfs_passphrase\fP), is used to authenticate to SSH remotes.
  8579. Required for SSH remotes.
  8580. .INDENT 0.0
  8581. .INDENT 3.5
  8582. .sp
  8583. .nf
  8584. .ft C
  8585. gitfs_privkey: /path/to/key
  8586. .ft P
  8587. .fi
  8588. .UNINDENT
  8589. .UNINDENT
  8590. .sp
  8591. \fBNOTE:\fP
  8592. .INDENT 0.0
  8593. .INDENT 3.5
  8594. This is is a global configuration option, see here for examples of configuring it for individual
  8595. repositories.
  8596. .UNINDENT
  8597. .UNINDENT
  8598. .SS \fBgitfs_passphrase\fP
  8599. .sp
  8600. New in version 2014.7.0.
  8601. .sp
  8602. Default: \fB\(aq\(aq\fP
  8603. .sp
  8604. This parameter is optional, required only when the SSH key being used to
  8605. authenticate is protected by a passphrase.
  8606. .INDENT 0.0
  8607. .INDENT 3.5
  8608. .sp
  8609. .nf
  8610. .ft C
  8611. gitfs_passphrase: mypassphrase
  8612. .ft P
  8613. .fi
  8614. .UNINDENT
  8615. .UNINDENT
  8616. .sp
  8617. \fBNOTE:\fP
  8618. .INDENT 0.0
  8619. .INDENT 3.5
  8620. This is is a global configuration option, see here for examples of configuring it for individual
  8621. repositories.
  8622. .UNINDENT
  8623. .UNINDENT
  8624. .SS \fBgitfs_refspecs\fP
  8625. .sp
  8626. New in version 2017.7.0.
  8627. .sp
  8628. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  8629. .sp
  8630. When fetching from remote repositories, by default Salt will fetch branches and
  8631. tags. This parameter can be used to override the default and specify
  8632. alternate refspecs to be fetched. More information on how this feature works
  8633. can be found in the GitFS Walkthrough\&.
  8634. .INDENT 0.0
  8635. .INDENT 3.5
  8636. .sp
  8637. .nf
  8638. .ft C
  8639. gitfs_refspecs:
  8640. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  8641. \- \(aq+refs/tags/*:refs/tags/*\(aq
  8642. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  8643. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  8644. .ft P
  8645. .fi
  8646. .UNINDENT
  8647. .UNINDENT
  8648. .SS hgfs: Mercurial Remote File Server Backend
  8649. .SS \fBhgfs_remotes\fP
  8650. .sp
  8651. New in version 0.17.0.
  8652. .sp
  8653. Default: \fB[]\fP
  8654. .sp
  8655. When using the \fBhg\fP fileserver backend at least one mercurial remote needs to
  8656. be defined. The user running the salt master will need read access to the repo.
  8657. .sp
  8658. The repos will be searched in order to find the file requested by a client and
  8659. the first repo to have the file will return it. Branches and/or bookmarks are
  8660. translated into salt environments, as defined by the
  8661. \fI\%hgfs_branch_method\fP parameter.
  8662. .INDENT 0.0
  8663. .INDENT 3.5
  8664. .sp
  8665. .nf
  8666. .ft C
  8667. hgfs_remotes:
  8668. \- https://username@bitbucket.org/username/reponame
  8669. .ft P
  8670. .fi
  8671. .UNINDENT
  8672. .UNINDENT
  8673. .sp
  8674. \fBNOTE:\fP
  8675. .INDENT 0.0
  8676. .INDENT 3.5
  8677. As of 2014.7.0, it is possible to have per\-repo versions of the
  8678. \fI\%hgfs_root\fP, \fI\%hgfs_mountpoint\fP,
  8679. \fI\%hgfs_base\fP, and \fI\%hgfs_branch_method\fP parameters.
  8680. For example:
  8681. .INDENT 0.0
  8682. .INDENT 3.5
  8683. .sp
  8684. .nf
  8685. .ft C
  8686. hgfs_remotes:
  8687. \- https://username@bitbucket.org/username/repo1
  8688. \- base: saltstates
  8689. \- https://username@bitbucket.org/username/repo2:
  8690. \- root: salt
  8691. \- mountpoint: salt://foo/bar/baz
  8692. \- https://username@bitbucket.org/username/repo3:
  8693. \- root: salt/states
  8694. \- branch_method: mixed
  8695. .ft P
  8696. .fi
  8697. .UNINDENT
  8698. .UNINDENT
  8699. .UNINDENT
  8700. .UNINDENT
  8701. .SS \fBhgfs_branch_method\fP
  8702. .sp
  8703. New in version 0.17.0.
  8704. .sp
  8705. Default: \fBbranches\fP
  8706. .sp
  8707. Defines the objects that will be used as fileserver environments.
  8708. .INDENT 0.0
  8709. .IP \(bu 2
  8710. \fBbranches\fP \- Only branches and tags will be used
  8711. .IP \(bu 2
  8712. \fBbookmarks\fP \- Only bookmarks and tags will be used
  8713. .IP \(bu 2
  8714. \fBmixed\fP \- Branches, bookmarks, and tags will be used
  8715. .UNINDENT
  8716. .INDENT 0.0
  8717. .INDENT 3.5
  8718. .sp
  8719. .nf
  8720. .ft C
  8721. hgfs_branch_method: mixed
  8722. .ft P
  8723. .fi
  8724. .UNINDENT
  8725. .UNINDENT
  8726. .sp
  8727. \fBNOTE:\fP
  8728. .INDENT 0.0
  8729. .INDENT 3.5
  8730. Starting in version 2014.1.0, the value of the \fI\%hgfs_base\fP
  8731. parameter defines which branch is used as the \fBbase\fP environment,
  8732. allowing for a \fBbase\fP environment to be used with an
  8733. \fI\%hgfs_branch_method\fP of \fBbookmarks\fP\&.
  8734. .sp
  8735. Prior to this release, the \fBdefault\fP branch will be used as the \fBbase\fP
  8736. environment.
  8737. .UNINDENT
  8738. .UNINDENT
  8739. .SS \fBhgfs_mountpoint\fP
  8740. .sp
  8741. New in version 2014.7.0.
  8742. .sp
  8743. Default: \fB\(aq\(aq\fP
  8744. .sp
  8745. Specifies a path on the salt fileserver which will be prepended to all files
  8746. served by hgfs. This option can be used in conjunction with
  8747. \fI\%hgfs_root\fP\&. It can also be configured on a per\-remote basis, see
  8748. \fI\%here\fP for more info.
  8749. .INDENT 0.0
  8750. .INDENT 3.5
  8751. .sp
  8752. .nf
  8753. .ft C
  8754. hgfs_mountpoint: salt://foo/bar
  8755. .ft P
  8756. .fi
  8757. .UNINDENT
  8758. .UNINDENT
  8759. .sp
  8760. \fBNOTE:\fP
  8761. .INDENT 0.0
  8762. .INDENT 3.5
  8763. The \fBsalt://\fP protocol designation can be left off (in other words,
  8764. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  8765. \fBbaz.sh\fP in the root of an hgfs remote, this file would be served up via
  8766. \fBsalt://foo/bar/baz.sh\fP\&.
  8767. .UNINDENT
  8768. .UNINDENT
  8769. .SS \fBhgfs_root\fP
  8770. .sp
  8771. New in version 0.17.0.
  8772. .sp
  8773. Default: \fB\(aq\(aq\fP
  8774. .sp
  8775. Relative path to a subdirectory within the repository from which Salt should
  8776. begin to serve files. This is useful when there are files in the repository
  8777. that should not be available to the Salt fileserver. Can be used in conjunction
  8778. with \fI\%hgfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  8779. directories above the one specified will be ignored and the relative path will
  8780. (for the purposes of hgfs) be considered as the root of the repo.
  8781. .INDENT 0.0
  8782. .INDENT 3.5
  8783. .sp
  8784. .nf
  8785. .ft C
  8786. hgfs_root: somefolder/otherfolder
  8787. .ft P
  8788. .fi
  8789. .UNINDENT
  8790. .UNINDENT
  8791. .sp
  8792. Changed in version 2014.7.0: Ability to specify hgfs roots on a per\-remote basis was added. See
  8793. \fI\%here\fP for more info.
  8794. .SS \fBhgfs_base\fP
  8795. .sp
  8796. New in version 2014.1.0.
  8797. .sp
  8798. Default: \fBdefault\fP
  8799. .sp
  8800. Defines which branch should be used as the \fBbase\fP environment. Change this if
  8801. \fI\%hgfs_branch_method\fP is set to \fBbookmarks\fP to specify which
  8802. bookmark should be used as the \fBbase\fP environment.
  8803. .INDENT 0.0
  8804. .INDENT 3.5
  8805. .sp
  8806. .nf
  8807. .ft C
  8808. hgfs_base: salt
  8809. .ft P
  8810. .fi
  8811. .UNINDENT
  8812. .UNINDENT
  8813. .SS \fBhgfs_saltenv_whitelist\fP
  8814. .sp
  8815. New in version 2014.7.0.
  8816. .sp
  8817. Changed in version 2018.3.0: Renamed from \fBhgfs_env_whitelist\fP to \fBhgfs_saltenv_whitelist\fP
  8818. .sp
  8819. Default: \fB[]\fP
  8820. .sp
  8821. Used to restrict which environments are made available. Can speed up state runs
  8822. if your hgfs remotes contain many branches/bookmarks/tags. Full names, globs,
  8823. and regular expressions are supported. If using a regular expression, the
  8824. expression must match the entire minion ID.
  8825. .sp
  8826. If used, only branches/bookmarks/tags which match one of the specified
  8827. expressions will be exposed as fileserver environments.
  8828. .sp
  8829. If used in conjunction with \fI\%hgfs_saltenv_blacklist\fP, then the subset
  8830. of branches/bookmarks/tags which match the whitelist but do \fInot\fP match the
  8831. blacklist will be exposed as fileserver environments.
  8832. .INDENT 0.0
  8833. .INDENT 3.5
  8834. .sp
  8835. .nf
  8836. .ft C
  8837. hgfs_saltenv_whitelist:
  8838. \- base
  8839. \- v1.*
  8840. \- \(aqmybranch\ed+\(aq
  8841. .ft P
  8842. .fi
  8843. .UNINDENT
  8844. .UNINDENT
  8845. .SS \fBhgfs_saltenv_blacklist\fP
  8846. .sp
  8847. New in version 2014.7.0.
  8848. .sp
  8849. Changed in version 2018.3.0: Renamed from \fBhgfs_env_blacklist\fP to \fBhgfs_saltenv_blacklist\fP
  8850. .sp
  8851. Default: \fB[]\fP
  8852. .sp
  8853. Used to restrict which environments are made available. Can speed up state runs
  8854. if your hgfs remotes contain many branches/bookmarks/tags. Full names, globs,
  8855. and regular expressions are supported. If using a regular expression, the
  8856. expression must match the entire minion ID.
  8857. .sp
  8858. If used, branches/bookmarks/tags which match one of the specified expressions
  8859. will \fInot\fP be exposed as fileserver environments.
  8860. .sp
  8861. If used in conjunction with \fI\%hgfs_saltenv_whitelist\fP, then the subset
  8862. of branches/bookmarks/tags which match the whitelist but do \fInot\fP match the
  8863. blacklist will be exposed as fileserver environments.
  8864. .INDENT 0.0
  8865. .INDENT 3.5
  8866. .sp
  8867. .nf
  8868. .ft C
  8869. hgfs_saltenv_blacklist:
  8870. \- base
  8871. \- v1.*
  8872. \- \(aqmybranch\ed+\(aq
  8873. .ft P
  8874. .fi
  8875. .UNINDENT
  8876. .UNINDENT
  8877. .SS \fBhgfs_update_interval\fP
  8878. .sp
  8879. New in version 2018.3.0.
  8880. .sp
  8881. Default: \fB60\fP
  8882. .sp
  8883. This option defines the update interval (in seconds) for
  8884. \fI\%hgfs_remotes\fP\&.
  8885. .INDENT 0.0
  8886. .INDENT 3.5
  8887. .sp
  8888. .nf
  8889. .ft C
  8890. hgfs_update_interval: 120
  8891. .ft P
  8892. .fi
  8893. .UNINDENT
  8894. .UNINDENT
  8895. .SS svnfs: Subversion Remote File Server Backend
  8896. .SS \fBsvnfs_remotes\fP
  8897. .sp
  8898. New in version 0.17.0.
  8899. .sp
  8900. Default: \fB[]\fP
  8901. .sp
  8902. When using the \fBsvn\fP fileserver backend at least one subversion remote needs
  8903. to be defined. The user running the salt master will need read access to the
  8904. repo.
  8905. .sp
  8906. The repos will be searched in order to find the file requested by a client and
  8907. the first repo to have the file will return it. The trunk, branches, and tags
  8908. become environments, with the trunk being the \fBbase\fP environment.
  8909. .INDENT 0.0
  8910. .INDENT 3.5
  8911. .sp
  8912. .nf
  8913. .ft C
  8914. svnfs_remotes:
  8915. \- svn://foo.com/svn/myproject
  8916. .ft P
  8917. .fi
  8918. .UNINDENT
  8919. .UNINDENT
  8920. .sp
  8921. \fBNOTE:\fP
  8922. .INDENT 0.0
  8923. .INDENT 3.5
  8924. As of 2014.7.0, it is possible to have per\-repo versions of the following
  8925. configuration parameters:
  8926. .INDENT 0.0
  8927. .IP \(bu 2
  8928. \fI\%svnfs_root\fP
  8929. .IP \(bu 2
  8930. \fI\%svnfs_mountpoint\fP
  8931. .IP \(bu 2
  8932. \fI\%svnfs_trunk\fP
  8933. .IP \(bu 2
  8934. \fI\%svnfs_branches\fP
  8935. .IP \(bu 2
  8936. \fI\%svnfs_tags\fP
  8937. .UNINDENT
  8938. .sp
  8939. For example:
  8940. .INDENT 0.0
  8941. .INDENT 3.5
  8942. .sp
  8943. .nf
  8944. .ft C
  8945. svnfs_remotes:
  8946. \- svn://foo.com/svn/project1
  8947. \- svn://foo.com/svn/project2:
  8948. \- root: salt
  8949. \- mountpoint: salt://foo/bar/baz
  8950. \- svn//foo.com/svn/project3:
  8951. \- root: salt/states
  8952. \- branches: branch
  8953. \- tags: tag
  8954. .ft P
  8955. .fi
  8956. .UNINDENT
  8957. .UNINDENT
  8958. .UNINDENT
  8959. .UNINDENT
  8960. .SS \fBsvnfs_mountpoint\fP
  8961. .sp
  8962. New in version 2014.7.0.
  8963. .sp
  8964. Default: \fB\(aq\(aq\fP
  8965. .sp
  8966. Specifies a path on the salt fileserver which will be prepended to all files
  8967. served by hgfs. This option can be used in conjunction with
  8968. \fI\%svnfs_root\fP\&. It can also be configured on a per\-remote basis, see
  8969. \fI\%here\fP for more info.
  8970. .INDENT 0.0
  8971. .INDENT 3.5
  8972. .sp
  8973. .nf
  8974. .ft C
  8975. svnfs_mountpoint: salt://foo/bar
  8976. .ft P
  8977. .fi
  8978. .UNINDENT
  8979. .UNINDENT
  8980. .sp
  8981. \fBNOTE:\fP
  8982. .INDENT 0.0
  8983. .INDENT 3.5
  8984. The \fBsalt://\fP protocol designation can be left off (in other words,
  8985. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent). Assuming a file
  8986. \fBbaz.sh\fP in the root of an svnfs remote, this file would be served up via
  8987. \fBsalt://foo/bar/baz.sh\fP\&.
  8988. .UNINDENT
  8989. .UNINDENT
  8990. .SS \fBsvnfs_root\fP
  8991. .sp
  8992. New in version 0.17.0.
  8993. .sp
  8994. Default: \fB\(aq\(aq\fP
  8995. .sp
  8996. Relative path to a subdirectory within the repository from which Salt should
  8997. begin to serve files. This is useful when there are files in the repository
  8998. that should not be available to the Salt fileserver. Can be used in conjunction
  8999. with \fI\%svnfs_mountpoint\fP\&. If used, then from Salt\(aqs perspective the
  9000. directories above the one specified will be ignored and the relative path will
  9001. (for the purposes of svnfs) be considered as the root of the repo.
  9002. .INDENT 0.0
  9003. .INDENT 3.5
  9004. .sp
  9005. .nf
  9006. .ft C
  9007. svnfs_root: somefolder/otherfolder
  9008. .ft P
  9009. .fi
  9010. .UNINDENT
  9011. .UNINDENT
  9012. .sp
  9013. Changed in version 2014.7.0: Ability to specify svnfs roots on a per\-remote basis was added. See
  9014. \fI\%here\fP for more info.
  9015. .SS \fBsvnfs_trunk\fP
  9016. .sp
  9017. New in version 2014.7.0.
  9018. .sp
  9019. Default: \fBtrunk\fP
  9020. .sp
  9021. Path relative to the root of the repository where the trunk is located. Can
  9022. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9023. .INDENT 0.0
  9024. .INDENT 3.5
  9025. .sp
  9026. .nf
  9027. .ft C
  9028. svnfs_trunk: trunk
  9029. .ft P
  9030. .fi
  9031. .UNINDENT
  9032. .UNINDENT
  9033. .SS \fBsvnfs_branches\fP
  9034. .sp
  9035. New in version 2014.7.0.
  9036. .sp
  9037. Default: \fBbranches\fP
  9038. .sp
  9039. Path relative to the root of the repository where the branches are located. Can
  9040. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9041. .INDENT 0.0
  9042. .INDENT 3.5
  9043. .sp
  9044. .nf
  9045. .ft C
  9046. svnfs_branches: branches
  9047. .ft P
  9048. .fi
  9049. .UNINDENT
  9050. .UNINDENT
  9051. .SS \fBsvnfs_tags\fP
  9052. .sp
  9053. New in version 2014.7.0.
  9054. .sp
  9055. Default: \fBtags\fP
  9056. .sp
  9057. Path relative to the root of the repository where the tags are located. Can
  9058. also be configured on a per\-remote basis, see \fI\%here\fP for more info.
  9059. .INDENT 0.0
  9060. .INDENT 3.5
  9061. .sp
  9062. .nf
  9063. .ft C
  9064. svnfs_tags: tags
  9065. .ft P
  9066. .fi
  9067. .UNINDENT
  9068. .UNINDENT
  9069. .SS \fBsvnfs_saltenv_whitelist\fP
  9070. .sp
  9071. New in version 2014.7.0.
  9072. .sp
  9073. Changed in version 2018.3.0: Renamed from \fBsvnfs_env_whitelist\fP to \fBsvnfs_saltenv_whitelist\fP
  9074. .sp
  9075. Default: \fB[]\fP
  9076. .sp
  9077. Used to restrict which environments are made available. Can speed up state runs
  9078. if your svnfs remotes contain many branches/tags. Full names, globs, and
  9079. regular expressions are supported. If using a regular expression, the expression
  9080. must match the entire minion ID.
  9081. .sp
  9082. If used, only branches/tags which match one of the specified expressions will
  9083. be exposed as fileserver environments.
  9084. .sp
  9085. If used in conjunction with \fI\%svnfs_saltenv_blacklist\fP, then the subset
  9086. of branches/tags which match the whitelist but do \fInot\fP match the blacklist
  9087. will be exposed as fileserver environments.
  9088. .INDENT 0.0
  9089. .INDENT 3.5
  9090. .sp
  9091. .nf
  9092. .ft C
  9093. svnfs_saltenv_whitelist:
  9094. \- base
  9095. \- v1.*
  9096. \- \(aqmybranch\ed+\(aq
  9097. .ft P
  9098. .fi
  9099. .UNINDENT
  9100. .UNINDENT
  9101. .SS \fBsvnfs_saltenv_blacklist\fP
  9102. .sp
  9103. New in version 2014.7.0.
  9104. .sp
  9105. Changed in version 2018.3.0: Renamed from \fBsvnfs_env_blacklist\fP to \fBsvnfs_saltenv_blacklist\fP
  9106. .sp
  9107. Default: \fB[]\fP
  9108. .sp
  9109. Used to restrict which environments are made available. Can speed up state runs
  9110. if your svnfs remotes contain many branches/tags. Full names, globs, and
  9111. regular expressions are supported. If using a regular expression, the
  9112. expression must match the entire minion ID.
  9113. .sp
  9114. If used, branches/tags which match one of the specified expressions will \fInot\fP
  9115. be exposed as fileserver environments.
  9116. .sp
  9117. If used in conjunction with \fI\%svnfs_saltenv_whitelist\fP, then the subset
  9118. of branches/tags which match the whitelist but do \fInot\fP match the blacklist
  9119. will be exposed as fileserver environments.
  9120. .INDENT 0.0
  9121. .INDENT 3.5
  9122. .sp
  9123. .nf
  9124. .ft C
  9125. svnfs_saltenv_blacklist:
  9126. \- base
  9127. \- v1.*
  9128. \- \(aqmybranch\ed+\(aq
  9129. .ft P
  9130. .fi
  9131. .UNINDENT
  9132. .UNINDENT
  9133. .SS \fBsvnfs_update_interval\fP
  9134. .sp
  9135. New in version 2018.3.0.
  9136. .sp
  9137. Default: \fB60\fP
  9138. .sp
  9139. This option defines the update interval (in seconds) for
  9140. \fI\%svnfs_remotes\fP\&.
  9141. .INDENT 0.0
  9142. .INDENT 3.5
  9143. .sp
  9144. .nf
  9145. .ft C
  9146. svnfs_update_interval: 120
  9147. .ft P
  9148. .fi
  9149. .UNINDENT
  9150. .UNINDENT
  9151. .SS minionfs: MinionFS Remote File Server Backend
  9152. .SS \fBminionfs_env\fP
  9153. .sp
  9154. New in version 2014.7.0.
  9155. .sp
  9156. Default: \fBbase\fP
  9157. .sp
  9158. Environment from which MinionFS files are made available.
  9159. .INDENT 0.0
  9160. .INDENT 3.5
  9161. .sp
  9162. .nf
  9163. .ft C
  9164. minionfs_env: minionfs
  9165. .ft P
  9166. .fi
  9167. .UNINDENT
  9168. .UNINDENT
  9169. .SS \fBminionfs_mountpoint\fP
  9170. .sp
  9171. New in version 2014.7.0.
  9172. .sp
  9173. Default: \fB\(aq\(aq\fP
  9174. .sp
  9175. Specifies a path on the salt fileserver from which minionfs files are served.
  9176. .INDENT 0.0
  9177. .INDENT 3.5
  9178. .sp
  9179. .nf
  9180. .ft C
  9181. minionfs_mountpoint: salt://foo/bar
  9182. .ft P
  9183. .fi
  9184. .UNINDENT
  9185. .UNINDENT
  9186. .sp
  9187. \fBNOTE:\fP
  9188. .INDENT 0.0
  9189. .INDENT 3.5
  9190. The \fBsalt://\fP protocol designation can be left off (in other words,
  9191. \fBfoo/bar\fP and \fBsalt://foo/bar\fP are equivalent).
  9192. .UNINDENT
  9193. .UNINDENT
  9194. .SS \fBminionfs_whitelist\fP
  9195. .sp
  9196. New in version 2014.7.0.
  9197. .sp
  9198. Default: \fB[]\fP
  9199. .sp
  9200. Used to restrict which minions\(aq pushed files are exposed via minionfs. If using
  9201. a regular expression, the expression must match the entire minion ID.
  9202. .sp
  9203. If used, only the pushed files from minions which match one of the specified
  9204. expressions will be exposed.
  9205. .sp
  9206. If used in conjunction with \fI\%minionfs_blacklist\fP, then the subset
  9207. of hosts which match the whitelist but do \fInot\fP match the blacklist will be
  9208. exposed.
  9209. .INDENT 0.0
  9210. .INDENT 3.5
  9211. .sp
  9212. .nf
  9213. .ft C
  9214. minionfs_whitelist:
  9215. \- server01
  9216. \- dev*
  9217. \- \(aqmail\ed+.mydomain.tld\(aq
  9218. .ft P
  9219. .fi
  9220. .UNINDENT
  9221. .UNINDENT
  9222. .SS \fBminionfs_blacklist\fP
  9223. .sp
  9224. New in version 2014.7.0.
  9225. .sp
  9226. Default: \fB[]\fP
  9227. .sp
  9228. Used to restrict which minions\(aq pushed files are exposed via minionfs. If using
  9229. a regular expression, the expression must match the entire minion ID.
  9230. .sp
  9231. If used, only the pushed files from minions which match one of the specified
  9232. expressions will \fInot\fP be exposed.
  9233. .sp
  9234. If used in conjunction with \fI\%minionfs_whitelist\fP, then the subset
  9235. of hosts which match the whitelist but do \fInot\fP match the blacklist will be
  9236. exposed.
  9237. .INDENT 0.0
  9238. .INDENT 3.5
  9239. .sp
  9240. .nf
  9241. .ft C
  9242. minionfs_blacklist:
  9243. \- server01
  9244. \- dev*
  9245. \- \(aqmail\ed+.mydomain.tld\(aq
  9246. .ft P
  9247. .fi
  9248. .UNINDENT
  9249. .UNINDENT
  9250. .SS \fBminionfs_update_interval\fP
  9251. .sp
  9252. New in version 2018.3.0.
  9253. .sp
  9254. Default: \fB60\fP
  9255. .sp
  9256. This option defines the update interval (in seconds) for MinionFS\&.
  9257. .sp
  9258. \fBNOTE:\fP
  9259. .INDENT 0.0
  9260. .INDENT 3.5
  9261. Since MinionFS consists of files local to the
  9262. master, the update process for this fileserver backend just reaps the cache
  9263. for this backend.
  9264. .UNINDENT
  9265. .UNINDENT
  9266. .INDENT 0.0
  9267. .INDENT 3.5
  9268. .sp
  9269. .nf
  9270. .ft C
  9271. minionfs_update_interval: 120
  9272. .ft P
  9273. .fi
  9274. .UNINDENT
  9275. .UNINDENT
  9276. .SS azurefs: Azure File Server Backend
  9277. .sp
  9278. New in version 2015.8.0.
  9279. .sp
  9280. See the \fBazurefs documentation\fP for usage
  9281. examples.
  9282. .SS \fBazurefs_update_interval\fP
  9283. .sp
  9284. New in version 2018.3.0.
  9285. .sp
  9286. Default: \fB60\fP
  9287. .sp
  9288. This option defines the update interval (in seconds) for azurefs.
  9289. .INDENT 0.0
  9290. .INDENT 3.5
  9291. .sp
  9292. .nf
  9293. .ft C
  9294. azurefs_update_interval: 120
  9295. .ft P
  9296. .fi
  9297. .UNINDENT
  9298. .UNINDENT
  9299. .SS s3fs: S3 File Server Backend
  9300. .sp
  9301. New in version 0.16.0.
  9302. .sp
  9303. See the \fBs3fs documentation\fP for usage examples.
  9304. .SS \fBs3fs_update_interval\fP
  9305. .sp
  9306. New in version 2018.3.0.
  9307. .sp
  9308. Default: \fB60\fP
  9309. .sp
  9310. This option defines the update interval (in seconds) for s3fs.
  9311. .INDENT 0.0
  9312. .INDENT 3.5
  9313. .sp
  9314. .nf
  9315. .ft C
  9316. s3fs_update_interval: 120
  9317. .ft P
  9318. .fi
  9319. .UNINDENT
  9320. .UNINDENT
  9321. .SS Pillar Configuration
  9322. .SS \fBpillar_roots\fP
  9323. .sp
  9324. Default:
  9325. .INDENT 0.0
  9326. .INDENT 3.5
  9327. .sp
  9328. .nf
  9329. .ft C
  9330. base:
  9331. \- /srv/pillar
  9332. .ft P
  9333. .fi
  9334. .UNINDENT
  9335. .UNINDENT
  9336. .sp
  9337. Set the environments and directories used to hold pillar sls data. This
  9338. configuration is the same as \fI\%file_roots\fP:
  9339. .sp
  9340. As of 2017.7.5 and 2018.3.1, it is possible to have \fI__env__\fP as a catch\-all environment.
  9341. .sp
  9342. Example:
  9343. .INDENT 0.0
  9344. .INDENT 3.5
  9345. .sp
  9346. .nf
  9347. .ft C
  9348. pillar_roots:
  9349. base:
  9350. \- /srv/pillar
  9351. dev:
  9352. \- /srv/pillar/dev
  9353. prod:
  9354. \- /srv/pillar/prod
  9355. __env__:
  9356. \- /srv/pillar/others
  9357. .ft P
  9358. .fi
  9359. .UNINDENT
  9360. .UNINDENT
  9361. .SS \fBon_demand_ext_pillar\fP
  9362. .sp
  9363. New in version 2016.3.6,2016.11.3,2017.7.0.
  9364. .sp
  9365. Default: \fB[\(aqlibvirt\(aq, \(aqvirtkey\(aq]\fP
  9366. .sp
  9367. The external pillars permitted to be used on\-demand using \fBpillar.ext\fP\&.
  9368. .INDENT 0.0
  9369. .INDENT 3.5
  9370. .sp
  9371. .nf
  9372. .ft C
  9373. on_demand_ext_pillar:
  9374. \- libvirt
  9375. \- virtkey
  9376. \- git
  9377. .ft P
  9378. .fi
  9379. .UNINDENT
  9380. .UNINDENT
  9381. .sp
  9382. \fBWARNING:\fP
  9383. .INDENT 0.0
  9384. .INDENT 3.5
  9385. This will allow minions to request specific pillar data via
  9386. \fBpillar.ext\fP, and may be considered a
  9387. security risk. However, pillar data generated in this way will not affect
  9388. the in\-memory pillar data, so this risk is
  9389. limited to instances in which states/modules/etc. (built\-in or custom) rely
  9390. upon pillar data generated by \fBpillar.ext\fP\&.
  9391. .UNINDENT
  9392. .UNINDENT
  9393. .SS \fBdecrypt_pillar\fP
  9394. .sp
  9395. New in version 2017.7.0.
  9396. .sp
  9397. Default: \fB[]\fP
  9398. .sp
  9399. A list of paths to be recursively decrypted during pillar compilation.
  9400. .INDENT 0.0
  9401. .INDENT 3.5
  9402. .sp
  9403. .nf
  9404. .ft C
  9405. decrypt_pillar:
  9406. \- \(aqfoo:bar\(aq: gpg
  9407. \- \(aqlorem:ipsum:dolor\(aq
  9408. .ft P
  9409. .fi
  9410. .UNINDENT
  9411. .UNINDENT
  9412. .sp
  9413. Entries in this list can be formatted either as a simple string, or as a
  9414. key/value pair, with the key being the pillar location, and the value being the
  9415. renderer to use for pillar decryption. If the former is used, the renderer
  9416. specified by \fI\%decrypt_pillar_default\fP will be used.
  9417. .SS \fBdecrypt_pillar_delimiter\fP
  9418. .sp
  9419. New in version 2017.7.0.
  9420. .sp
  9421. Default: \fB:\fP
  9422. .sp
  9423. The delimiter used to distinguish nested data structures in the
  9424. \fI\%decrypt_pillar\fP option.
  9425. .INDENT 0.0
  9426. .INDENT 3.5
  9427. .sp
  9428. .nf
  9429. .ft C
  9430. decrypt_pillar_delimiter: \(aq|\(aq
  9431. decrypt_pillar:
  9432. \- \(aqfoo|bar\(aq: gpg
  9433. \- \(aqlorem|ipsum|dolor\(aq
  9434. .ft P
  9435. .fi
  9436. .UNINDENT
  9437. .UNINDENT
  9438. .SS \fBdecrypt_pillar_default\fP
  9439. .sp
  9440. New in version 2017.7.0.
  9441. .sp
  9442. Default: \fBgpg\fP
  9443. .sp
  9444. The default renderer used for decryption, if one is not specified for a given
  9445. pillar key in \fI\%decrypt_pillar\fP\&.
  9446. .INDENT 0.0
  9447. .INDENT 3.5
  9448. .sp
  9449. .nf
  9450. .ft C
  9451. decrypt_pillar_default: my_custom_renderer
  9452. .ft P
  9453. .fi
  9454. .UNINDENT
  9455. .UNINDENT
  9456. .SS \fBdecrypt_pillar_renderers\fP
  9457. .sp
  9458. New in version 2017.7.0.
  9459. .sp
  9460. Default: \fB[\(aqgpg\(aq]\fP
  9461. .sp
  9462. List of renderers which are permitted to be used for pillar decryption.
  9463. .INDENT 0.0
  9464. .INDENT 3.5
  9465. .sp
  9466. .nf
  9467. .ft C
  9468. decrypt_pillar_renderers:
  9469. \- gpg
  9470. \- my_custom_renderer
  9471. .ft P
  9472. .fi
  9473. .UNINDENT
  9474. .UNINDENT
  9475. .SS \fBpillar_opts\fP
  9476. .sp
  9477. Default: \fBFalse\fP
  9478. .sp
  9479. The \fBpillar_opts\fP option adds the master configuration file data to a dict in
  9480. the pillar called \fBmaster\fP\&. This can be used to set simple configurations in
  9481. the master config file that can then be used on minions.
  9482. .sp
  9483. Note that setting this option to \fBTrue\fP means the master config file will be
  9484. included in all minion\(aqs pillars. While this makes global configuration of services
  9485. and systems easy, it may not be desired if sensitive data is stored in the master
  9486. configuration.
  9487. .INDENT 0.0
  9488. .INDENT 3.5
  9489. .sp
  9490. .nf
  9491. .ft C
  9492. pillar_opts: False
  9493. .ft P
  9494. .fi
  9495. .UNINDENT
  9496. .UNINDENT
  9497. .SS \fBpillar_safe_render_error\fP
  9498. .sp
  9499. Default: \fBTrue\fP
  9500. .sp
  9501. The pillar_safe_render_error option prevents the master from passing pillar
  9502. render errors to the minion. This is set on by default because the error could
  9503. contain templating data which would give that minion information it shouldn\(aqt
  9504. have, like a password! When set \fBTrue\fP the error message will only show:
  9505. .INDENT 0.0
  9506. .INDENT 3.5
  9507. .sp
  9508. .nf
  9509. .ft C
  9510. Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  9511. .ft P
  9512. .fi
  9513. .UNINDENT
  9514. .UNINDENT
  9515. .INDENT 0.0
  9516. .INDENT 3.5
  9517. .sp
  9518. .nf
  9519. .ft C
  9520. pillar_safe_render_error: True
  9521. .ft P
  9522. .fi
  9523. .UNINDENT
  9524. .UNINDENT
  9525. .SS \fBext_pillar\fP
  9526. .sp
  9527. The ext_pillar option allows for any number of external pillar interfaces to be
  9528. called when populating pillar data. The configuration is based on ext_pillar
  9529. functions. The available ext_pillar functions can be found herein:
  9530. .sp
  9531. \fI\%https://github.com/saltstack/salt/blob/master/salt/pillar\fP
  9532. .sp
  9533. By default, the ext_pillar interface is not configured to run.
  9534. .sp
  9535. Default: \fB[]\fP
  9536. .INDENT 0.0
  9537. .INDENT 3.5
  9538. .sp
  9539. .nf
  9540. .ft C
  9541. ext_pillar:
  9542. \- hiera: /etc/hiera.yaml
  9543. \- cmd_yaml: cat /etc/salt/yaml
  9544. \- reclass:
  9545. inventory_base_uri: /etc/reclass
  9546. .ft P
  9547. .fi
  9548. .UNINDENT
  9549. .UNINDENT
  9550. .sp
  9551. There are additional details at salt\-pillars
  9552. .SS \fBext_pillar_first\fP
  9553. .sp
  9554. New in version 2015.5.0.
  9555. .sp
  9556. Default: \fBFalse\fP
  9557. .sp
  9558. This option allows for external pillar sources to be evaluated before
  9559. \fI\%pillar_roots\fP\&. External pillar data is evaluated separately from
  9560. \fI\%pillar_roots\fP pillar data, and then both sets of pillar data are
  9561. merged into a single pillar dictionary, so the value of this config option will
  9562. have an impact on which key "wins" when there is one of the same name in both
  9563. the external pillar data and \fI\%pillar_roots\fP pillar data. By
  9564. setting this option to \fBTrue\fP, ext_pillar keys will be overridden by
  9565. \fI\%pillar_roots\fP, while leaving it as \fBFalse\fP will allow
  9566. ext_pillar keys to override those from \fI\%pillar_roots\fP\&.
  9567. .sp
  9568. \fBNOTE:\fP
  9569. .INDENT 0.0
  9570. .INDENT 3.5
  9571. For a while, this config option did not work as specified above, because of
  9572. a bug in Pillar compilation. This bug has been resolved in version 2016.3.4
  9573. and later.
  9574. .UNINDENT
  9575. .UNINDENT
  9576. .INDENT 0.0
  9577. .INDENT 3.5
  9578. .sp
  9579. .nf
  9580. .ft C
  9581. ext_pillar_first: False
  9582. .ft P
  9583. .fi
  9584. .UNINDENT
  9585. .UNINDENT
  9586. .SS \fBpillarenv_from_saltenv\fP
  9587. .sp
  9588. Default: \fBFalse\fP
  9589. .sp
  9590. When set to \fBTrue\fP, the \fBpillarenv\fP value will assume the value
  9591. of the effective saltenv when running states. This essentially makes \fBsalt\-run
  9592. pillar.show_pillar saltenv=dev\fP equivalent to \fBsalt\-run pillar.show_pillar
  9593. saltenv=dev pillarenv=dev\fP\&. If \fBpillarenv\fP is set on the CLI, it
  9594. will override this option.
  9595. .INDENT 0.0
  9596. .INDENT 3.5
  9597. .sp
  9598. .nf
  9599. .ft C
  9600. pillarenv_from_saltenv: True
  9601. .ft P
  9602. .fi
  9603. .UNINDENT
  9604. .UNINDENT
  9605. .sp
  9606. \fBNOTE:\fP
  9607. .INDENT 0.0
  9608. .INDENT 3.5
  9609. For salt remote execution commands this option should be set in the Minion
  9610. configuration instead.
  9611. .UNINDENT
  9612. .UNINDENT
  9613. .SS \fBpillar_raise_on_missing\fP
  9614. .sp
  9615. New in version 2015.5.0.
  9616. .sp
  9617. Default: \fBFalse\fP
  9618. .sp
  9619. Set this option to \fBTrue\fP to force a \fBKeyError\fP to be raised whenever an
  9620. attempt to retrieve a named value from pillar fails. When this option is set
  9621. to \fBFalse\fP, the failed attempt returns an empty string.
  9622. .SS Git External Pillar (git_pillar) Configuration Options
  9623. .SS \fBgit_pillar_provider\fP
  9624. .sp
  9625. New in version 2015.8.0.
  9626. .sp
  9627. Specify the provider to be used for git_pillar. Must be either \fBpygit2\fP or
  9628. \fBgitpython\fP\&. If unset, then both will be tried in that same order, and the
  9629. first one with a compatible version installed will be the provider that is
  9630. used.
  9631. .INDENT 0.0
  9632. .INDENT 3.5
  9633. .sp
  9634. .nf
  9635. .ft C
  9636. git_pillar_provider: gitpython
  9637. .ft P
  9638. .fi
  9639. .UNINDENT
  9640. .UNINDENT
  9641. .SS \fBgit_pillar_base\fP
  9642. .sp
  9643. New in version 2015.8.0.
  9644. .sp
  9645. Default: \fBmaster\fP
  9646. .sp
  9647. If the desired branch matches this value, and the environment is omitted from
  9648. the git_pillar configuration, then the environment for that git_pillar remote
  9649. will be \fBbase\fP\&. For example, in the configuration below, the \fBfoo\fP
  9650. branch/tag would be assigned to the \fBbase\fP environment, while \fBbar\fP would
  9651. be mapped to the \fBbar\fP environment.
  9652. .INDENT 0.0
  9653. .INDENT 3.5
  9654. .sp
  9655. .nf
  9656. .ft C
  9657. git_pillar_base: foo
  9658. ext_pillar:
  9659. \- git:
  9660. \- foo https://mygitserver/git\-pillar.git
  9661. \- bar https://mygitserver/git\-pillar.git
  9662. .ft P
  9663. .fi
  9664. .UNINDENT
  9665. .UNINDENT
  9666. .SS \fBgit_pillar_branch\fP
  9667. .sp
  9668. New in version 2015.8.0.
  9669. .sp
  9670. Default: \fBmaster\fP
  9671. .sp
  9672. If the branch is omitted from a git_pillar remote, then this branch will be
  9673. used instead. For example, in the configuration below, the first two remotes
  9674. would use the \fBpillardata\fP branch/tag, while the third would use the \fBfoo\fP
  9675. branch/tag.
  9676. .INDENT 0.0
  9677. .INDENT 3.5
  9678. .sp
  9679. .nf
  9680. .ft C
  9681. git_pillar_branch: pillardata
  9682. ext_pillar:
  9683. \- git:
  9684. \- https://mygitserver/pillar1.git
  9685. \- https://mygitserver/pillar2.git:
  9686. \- root: pillar
  9687. \- foo https://mygitserver/pillar3.git
  9688. .ft P
  9689. .fi
  9690. .UNINDENT
  9691. .UNINDENT
  9692. .SS \fBgit_pillar_env\fP
  9693. .sp
  9694. New in version 2015.8.0.
  9695. .sp
  9696. Default: \fB\(aq\(aq\fP (unset)
  9697. .sp
  9698. Environment to use for git_pillar remotes. This is normally derived from the
  9699. branch/tag (or from a per\-remote \fBenv\fP parameter), but if set this will
  9700. override the process of deriving the env from the branch/tag name. For example,
  9701. in the configuration below the \fBfoo\fP branch would be assigned to the \fBbase\fP
  9702. environment, while the \fBbar\fP branch would need to explicitly have \fBbar\fP
  9703. configured as its environment to keep it from also being mapped to the
  9704. \fBbase\fP environment.
  9705. .INDENT 0.0
  9706. .INDENT 3.5
  9707. .sp
  9708. .nf
  9709. .ft C
  9710. git_pillar_env: base
  9711. ext_pillar:
  9712. \- git:
  9713. \- foo https://mygitserver/git\-pillar.git
  9714. \- bar https://mygitserver/git\-pillar.git:
  9715. \- env: bar
  9716. .ft P
  9717. .fi
  9718. .UNINDENT
  9719. .UNINDENT
  9720. .sp
  9721. For this reason, this option is recommended to be left unset, unless the use
  9722. case calls for all (or almost all) of the git_pillar remotes to use the same
  9723. environment irrespective of the branch/tag being used.
  9724. .SS \fBgit_pillar_root\fP
  9725. .sp
  9726. New in version 2015.8.0.
  9727. .sp
  9728. Default: \fB\(aq\(aq\fP
  9729. .sp
  9730. Path relative to the root of the repository where the git_pillar top file and
  9731. SLS files are located. In the below configuration, the pillar top file and SLS
  9732. files would be looked for in a subdirectory called \fBpillar\fP\&.
  9733. .INDENT 0.0
  9734. .INDENT 3.5
  9735. .sp
  9736. .nf
  9737. .ft C
  9738. git_pillar_root: pillar
  9739. ext_pillar:
  9740. \- git:
  9741. \- master https://mygitserver/pillar1.git
  9742. \- master https://mygitserver/pillar2.git
  9743. .ft P
  9744. .fi
  9745. .UNINDENT
  9746. .UNINDENT
  9747. .sp
  9748. \fBNOTE:\fP
  9749. .INDENT 0.0
  9750. .INDENT 3.5
  9751. This is a global option. If only one or two repos need to have their files
  9752. sourced from a subdirectory, then \fI\%git_pillar_root\fP can be
  9753. omitted and the root can be specified on a per\-remote basis, like so:
  9754. .INDENT 0.0
  9755. .INDENT 3.5
  9756. .sp
  9757. .nf
  9758. .ft C
  9759. ext_pillar:
  9760. \- git:
  9761. \- master https://mygitserver/pillar1.git
  9762. \- master https://mygitserver/pillar2.git:
  9763. \- root: pillar
  9764. .ft P
  9765. .fi
  9766. .UNINDENT
  9767. .UNINDENT
  9768. .sp
  9769. In this example, for the first remote the top file and SLS files would be
  9770. looked for in the root of the repository, while in the second remote the
  9771. pillar data would be retrieved from the \fBpillar\fP subdirectory.
  9772. .UNINDENT
  9773. .UNINDENT
  9774. .SS \fBgit_pillar_ssl_verify\fP
  9775. .sp
  9776. New in version 2015.8.0.
  9777. .sp
  9778. Changed in version 2016.11.0.
  9779. .sp
  9780. Default: \fBFalse\fP
  9781. .sp
  9782. Specifies whether or not to ignore SSL certificate errors when contacting the
  9783. remote repository. The \fBFalse\fP setting is useful if you\(aqre using a
  9784. git repo that uses a self\-signed certificate. However, keep in mind that
  9785. setting this to anything other \fBTrue\fP is a considered insecure, and using an
  9786. SSH\-based transport (if available) may be a better option.
  9787. .sp
  9788. In the 2016.11.0 release, the default config value changed from \fBFalse\fP to
  9789. \fBTrue\fP\&.
  9790. .INDENT 0.0
  9791. .INDENT 3.5
  9792. .sp
  9793. .nf
  9794. .ft C
  9795. git_pillar_ssl_verify: True
  9796. .ft P
  9797. .fi
  9798. .UNINDENT
  9799. .UNINDENT
  9800. .sp
  9801. \fBNOTE:\fP
  9802. .INDENT 0.0
  9803. .INDENT 3.5
  9804. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  9805. newer.
  9806. .UNINDENT
  9807. .UNINDENT
  9808. .SS \fBgit_pillar_global_lock\fP
  9809. .sp
  9810. New in version 2015.8.9.
  9811. .sp
  9812. Default: \fBTrue\fP
  9813. .sp
  9814. When set to \fBFalse\fP, if there is an update/checkout lock for a git_pillar
  9815. remote and the pid written to it is not running on the master, the lock file
  9816. will be automatically cleared and a new lock will be obtained. When set to
  9817. \fBTrue\fP, Salt will simply log a warning when there is an lock present.
  9818. .sp
  9819. On single\-master deployments, disabling this option can help automatically deal
  9820. with instances where the master was shutdown/restarted during the middle of a
  9821. git_pillar update/checkout, leaving a lock in place.
  9822. .sp
  9823. However, on multi\-master deployments with the git_pillar cachedir shared via
  9824. \fI\%GlusterFS\fP, nfs, or another network filesystem, it is strongly recommended
  9825. not to disable this option as doing so will cause lock files to be removed if
  9826. they were created by a different master.
  9827. .INDENT 0.0
  9828. .INDENT 3.5
  9829. .sp
  9830. .nf
  9831. .ft C
  9832. # Disable global lock
  9833. git_pillar_global_lock: False
  9834. .ft P
  9835. .fi
  9836. .UNINDENT
  9837. .UNINDENT
  9838. .SS \fBgit_pillar_includes\fP
  9839. .sp
  9840. New in version 2017.7.0.
  9841. .sp
  9842. Default: \fBTrue\fP
  9843. .sp
  9844. Normally, when processing git_pillar remotes, if more than one repo under the same \fBgit\fP
  9845. section in the \fBext_pillar\fP configuration refers to the same pillar
  9846. environment, then each repo in a given environment will have access to the
  9847. other repos\(aq files to be referenced in their top files. However, it may be
  9848. desirable to disable this behavior. If so, set this value to \fBFalse\fP\&.
  9849. .sp
  9850. For a more detailed examination of how includes work, see this
  9851. explanation from the git_pillar documentation.
  9852. .INDENT 0.0
  9853. .INDENT 3.5
  9854. .sp
  9855. .nf
  9856. .ft C
  9857. git_pillar_includes: False
  9858. .ft P
  9859. .fi
  9860. .UNINDENT
  9861. .UNINDENT
  9862. .SS \fBgit_pillar_update_interval\fP
  9863. .sp
  9864. New in version 3000.
  9865. .sp
  9866. Default: \fB60\fP
  9867. .sp
  9868. This option defines the default update interval (in seconds) for git_pillar
  9869. remotes. The update is handled within the global loop, hence
  9870. \fBgit_pillar_update_interval\fP should be a multiple of \fBloop_interval\fP\&.
  9871. .INDENT 0.0
  9872. .INDENT 3.5
  9873. .sp
  9874. .nf
  9875. .ft C
  9876. git_pillar_update_interval: 120
  9877. .ft P
  9878. .fi
  9879. .UNINDENT
  9880. .UNINDENT
  9881. .SS Git External Pillar Authentication Options
  9882. .sp
  9883. These parameters only currently apply to the \fBpygit2\fP
  9884. \fI\%git_pillar_provider\fP\&. Authentication works the same as it does
  9885. in gitfs, as outlined in the GitFS Walkthrough,
  9886. though the global configuration options are named differently to reflect that
  9887. they are for git_pillar instead of gitfs.
  9888. .SS \fBgit_pillar_user\fP
  9889. .sp
  9890. New in version 2015.8.0.
  9891. .sp
  9892. Default: \fB\(aq\(aq\fP
  9893. .sp
  9894. Along with \fI\%git_pillar_password\fP, is used to authenticate to HTTPS
  9895. remotes.
  9896. .INDENT 0.0
  9897. .INDENT 3.5
  9898. .sp
  9899. .nf
  9900. .ft C
  9901. git_pillar_user: git
  9902. .ft P
  9903. .fi
  9904. .UNINDENT
  9905. .UNINDENT
  9906. .SS \fBgit_pillar_password\fP
  9907. .sp
  9908. New in version 2015.8.0.
  9909. .sp
  9910. Default: \fB\(aq\(aq\fP
  9911. .sp
  9912. Along with \fI\%git_pillar_user\fP, is used to authenticate to HTTPS
  9913. remotes. This parameter is not required if the repository does not use
  9914. authentication.
  9915. .INDENT 0.0
  9916. .INDENT 3.5
  9917. .sp
  9918. .nf
  9919. .ft C
  9920. git_pillar_password: mypassword
  9921. .ft P
  9922. .fi
  9923. .UNINDENT
  9924. .UNINDENT
  9925. .SS \fBgit_pillar_insecure_auth\fP
  9926. .sp
  9927. New in version 2015.8.0.
  9928. .sp
  9929. Default: \fBFalse\fP
  9930. .sp
  9931. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  9932. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  9933. .INDENT 0.0
  9934. .INDENT 3.5
  9935. .sp
  9936. .nf
  9937. .ft C
  9938. git_pillar_insecure_auth: True
  9939. .ft P
  9940. .fi
  9941. .UNINDENT
  9942. .UNINDENT
  9943. .SS \fBgit_pillar_pubkey\fP
  9944. .sp
  9945. New in version 2015.8.0.
  9946. .sp
  9947. Default: \fB\(aq\(aq\fP
  9948. .sp
  9949. Along with \fI\%git_pillar_privkey\fP (and optionally
  9950. \fI\%git_pillar_passphrase\fP), is used to authenticate to SSH remotes.
  9951. .INDENT 0.0
  9952. .INDENT 3.5
  9953. .sp
  9954. .nf
  9955. .ft C
  9956. git_pillar_pubkey: /path/to/key.pub
  9957. .ft P
  9958. .fi
  9959. .UNINDENT
  9960. .UNINDENT
  9961. .SS \fBgit_pillar_privkey\fP
  9962. .sp
  9963. New in version 2015.8.0.
  9964. .sp
  9965. Default: \fB\(aq\(aq\fP
  9966. .sp
  9967. Along with \fI\%git_pillar_pubkey\fP (and optionally
  9968. \fI\%git_pillar_passphrase\fP), is used to authenticate to SSH remotes.
  9969. .INDENT 0.0
  9970. .INDENT 3.5
  9971. .sp
  9972. .nf
  9973. .ft C
  9974. git_pillar_privkey: /path/to/key
  9975. .ft P
  9976. .fi
  9977. .UNINDENT
  9978. .UNINDENT
  9979. .SS \fBgit_pillar_passphrase\fP
  9980. .sp
  9981. New in version 2015.8.0.
  9982. .sp
  9983. Default: \fB\(aq\(aq\fP
  9984. .sp
  9985. This parameter is optional, required only when the SSH key being used to
  9986. authenticate is protected by a passphrase.
  9987. .INDENT 0.0
  9988. .INDENT 3.5
  9989. .sp
  9990. .nf
  9991. .ft C
  9992. git_pillar_passphrase: mypassphrase
  9993. .ft P
  9994. .fi
  9995. .UNINDENT
  9996. .UNINDENT
  9997. .SS \fBgit_pillar_refspecs\fP
  9998. .sp
  9999. New in version 2017.7.0.
  10000. .sp
  10001. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  10002. .sp
  10003. When fetching from remote repositories, by default Salt will fetch branches and
  10004. tags. This parameter can be used to override the default and specify
  10005. alternate refspecs to be fetched. This parameter works similarly to its
  10006. GitFS counterpart, in that it can be
  10007. configured both globally and for individual remotes.
  10008. .INDENT 0.0
  10009. .INDENT 3.5
  10010. .sp
  10011. .nf
  10012. .ft C
  10013. git_pillar_refspecs:
  10014. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  10015. \- \(aq+refs/tags/*:refs/tags/*\(aq
  10016. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  10017. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  10018. .ft P
  10019. .fi
  10020. .UNINDENT
  10021. .UNINDENT
  10022. .SS \fBgit_pillar_verify_config\fP
  10023. .sp
  10024. New in version 2017.7.0.
  10025. .sp
  10026. Default: \fBTrue\fP
  10027. .sp
  10028. By default, as the master starts it performs some sanity checks on the
  10029. configured git_pillar repositories. If any of these sanity checks fail (such as
  10030. when an invalid configuration is used), the master daemon will abort.
  10031. .sp
  10032. To skip these sanity checks, set this option to \fBFalse\fP\&.
  10033. .INDENT 0.0
  10034. .INDENT 3.5
  10035. .sp
  10036. .nf
  10037. .ft C
  10038. git_pillar_verify_config: False
  10039. .ft P
  10040. .fi
  10041. .UNINDENT
  10042. .UNINDENT
  10043. .SS Pillar Merging Options
  10044. .SS \fBpillar_source_merging_strategy\fP
  10045. .sp
  10046. New in version 2014.7.0.
  10047. .sp
  10048. Default: \fBsmart\fP
  10049. .sp
  10050. The pillar_source_merging_strategy option allows you to configure merging
  10051. strategy between different sources. It accepts 5 values:
  10052. .INDENT 0.0
  10053. .IP \(bu 2
  10054. \fBnone\fP:
  10055. .sp
  10056. It will not do any merging at all and only parse the pillar data from the passed environment and \(aqbase\(aq if no environment was specified.
  10057. .sp
  10058. New in version 2016.3.4.
  10059. .IP \(bu 2
  10060. \fBrecurse\fP:
  10061. .sp
  10062. It will recursively merge data. For example, theses 2 sources:
  10063. .INDENT 2.0
  10064. .INDENT 3.5
  10065. .sp
  10066. .nf
  10067. .ft C
  10068. foo: 42
  10069. bar:
  10070. element1: True
  10071. .ft P
  10072. .fi
  10073. .UNINDENT
  10074. .UNINDENT
  10075. .INDENT 2.0
  10076. .INDENT 3.5
  10077. .sp
  10078. .nf
  10079. .ft C
  10080. bar:
  10081. element2: True
  10082. baz: quux
  10083. .ft P
  10084. .fi
  10085. .UNINDENT
  10086. .UNINDENT
  10087. .sp
  10088. will be merged as:
  10089. .INDENT 2.0
  10090. .INDENT 3.5
  10091. .sp
  10092. .nf
  10093. .ft C
  10094. foo: 42
  10095. bar:
  10096. element1: True
  10097. element2: True
  10098. baz: quux
  10099. .ft P
  10100. .fi
  10101. .UNINDENT
  10102. .UNINDENT
  10103. .IP \(bu 2
  10104. \fBaggregate\fP:
  10105. .sp
  10106. instructs aggregation of elements between sources that use the #!yamlex renderer.
  10107. .sp
  10108. For example, these two documents:
  10109. .INDENT 2.0
  10110. .INDENT 3.5
  10111. .sp
  10112. .nf
  10113. .ft C
  10114. #!yamlex
  10115. foo: 42
  10116. bar: !aggregate {
  10117. element1: True
  10118. }
  10119. baz: !aggregate quux
  10120. .ft P
  10121. .fi
  10122. .UNINDENT
  10123. .UNINDENT
  10124. .INDENT 2.0
  10125. .INDENT 3.5
  10126. .sp
  10127. .nf
  10128. .ft C
  10129. #!yamlex
  10130. bar: !aggregate {
  10131. element2: True
  10132. }
  10133. baz: !aggregate quux2
  10134. .ft P
  10135. .fi
  10136. .UNINDENT
  10137. .UNINDENT
  10138. .sp
  10139. will be merged as:
  10140. .INDENT 2.0
  10141. .INDENT 3.5
  10142. .sp
  10143. .nf
  10144. .ft C
  10145. foo: 42
  10146. bar:
  10147. element1: True
  10148. element2: True
  10149. baz:
  10150. \- quux
  10151. \- quux2
  10152. .ft P
  10153. .fi
  10154. .UNINDENT
  10155. .UNINDENT
  10156. .IP \(bu 2
  10157. \fBoverwrite\fP:
  10158. .sp
  10159. Will use the behaviour of the 2014.1 branch and earlier.
  10160. .sp
  10161. Overwrites elements according the order in which they are processed.
  10162. .sp
  10163. First pillar processed:
  10164. .INDENT 2.0
  10165. .INDENT 3.5
  10166. .sp
  10167. .nf
  10168. .ft C
  10169. A:
  10170. first_key: blah
  10171. second_key: blah
  10172. .ft P
  10173. .fi
  10174. .UNINDENT
  10175. .UNINDENT
  10176. .sp
  10177. Second pillar processed:
  10178. .INDENT 2.0
  10179. .INDENT 3.5
  10180. .sp
  10181. .nf
  10182. .ft C
  10183. A:
  10184. third_key: blah
  10185. fourth_key: blah
  10186. .ft P
  10187. .fi
  10188. .UNINDENT
  10189. .UNINDENT
  10190. .sp
  10191. will be merged as:
  10192. .INDENT 2.0
  10193. .INDENT 3.5
  10194. .sp
  10195. .nf
  10196. .ft C
  10197. A:
  10198. third_key: blah
  10199. fourth_key: blah
  10200. .ft P
  10201. .fi
  10202. .UNINDENT
  10203. .UNINDENT
  10204. .IP \(bu 2
  10205. \fBsmart\fP (default):
  10206. .sp
  10207. Guesses the best strategy based on the "renderer" setting.
  10208. .UNINDENT
  10209. .sp
  10210. \fBNOTE:\fP
  10211. .INDENT 0.0
  10212. .INDENT 3.5
  10213. In order for yamlex based features such as \fB!aggregate\fP to work as expected
  10214. across documents using the default \fBsmart\fP merge strategy, the \fI\%renderer\fP
  10215. config option must be set to \fBjinja|yamlex\fP or similar.
  10216. .UNINDENT
  10217. .UNINDENT
  10218. .SS \fBpillar_merge_lists\fP
  10219. .sp
  10220. New in version 2015.8.0.
  10221. .sp
  10222. Default: \fBFalse\fP
  10223. .sp
  10224. Recursively merge lists by aggregating them instead of replacing them.
  10225. .INDENT 0.0
  10226. .INDENT 3.5
  10227. .sp
  10228. .nf
  10229. .ft C
  10230. pillar_merge_lists: False
  10231. .ft P
  10232. .fi
  10233. .UNINDENT
  10234. .UNINDENT
  10235. .SS \fBpillar_includes_override_sls\fP
  10236. .sp
  10237. New in version 2017.7.6,2018.3.1.
  10238. .sp
  10239. Default: \fBFalse\fP
  10240. .sp
  10241. Prior to version 2017.7.3, keys from pillar includes
  10242. would be merged on top of the pillar SLS. Since 2017.7.3, the includes are
  10243. merged together and then the pillar SLS is merged on top of that.
  10244. .sp
  10245. Set this option to \fBTrue\fP to return to the old behavior.
  10246. .INDENT 0.0
  10247. .INDENT 3.5
  10248. .sp
  10249. .nf
  10250. .ft C
  10251. pillar_includes_override_sls: True
  10252. .ft P
  10253. .fi
  10254. .UNINDENT
  10255. .UNINDENT
  10256. .SS Pillar Cache Options
  10257. .SS \fBpillar_cache\fP
  10258. .sp
  10259. New in version 2015.8.8.
  10260. .sp
  10261. Default: \fBFalse\fP
  10262. .sp
  10263. A master can cache pillars locally to bypass the expense of having to render them
  10264. for each minion on every request. This feature should only be enabled in cases
  10265. where pillar rendering time is known to be unsatisfactory and any attendant security
  10266. concerns about storing pillars in a master cache have been addressed.
  10267. .sp
  10268. When enabling this feature, be certain to read through the additional \fBpillar_cache_*\fP
  10269. configuration options to fully understand the tunable parameters and their implications.
  10270. .INDENT 0.0
  10271. .INDENT 3.5
  10272. .sp
  10273. .nf
  10274. .ft C
  10275. pillar_cache: False
  10276. .ft P
  10277. .fi
  10278. .UNINDENT
  10279. .UNINDENT
  10280. .sp
  10281. \fBNOTE:\fP
  10282. .INDENT 0.0
  10283. .INDENT 3.5
  10284. Setting \fBpillar_cache: True\fP has no effect on
  10285. targeting minions with pillar\&.
  10286. .UNINDENT
  10287. .UNINDENT
  10288. .SS \fBpillar_cache_ttl\fP
  10289. .sp
  10290. New in version 2015.8.8.
  10291. .sp
  10292. Default: \fB3600\fP
  10293. .sp
  10294. If and only if a master has set \fBpillar_cache: True\fP, the cache TTL controls the amount
  10295. of time, in seconds, before the cache is considered invalid by a master and a fresh
  10296. pillar is recompiled and stored.
  10297. .SS \fBpillar_cache_backend\fP
  10298. .sp
  10299. New in version 2015.8.8.
  10300. .sp
  10301. Default: \fBdisk\fP
  10302. .sp
  10303. If an only if a master has set \fBpillar_cache: True\fP, one of several storage providers
  10304. can be utilized:
  10305. .INDENT 0.0
  10306. .IP \(bu 2
  10307. \fBdisk\fP (default):
  10308. .sp
  10309. The default storage backend. This caches rendered pillars to the master cache.
  10310. Rendered pillars are serialized and deserialized as \fBmsgpack\fP structures for speed.
  10311. Note that pillars are stored UNENCRYPTED. Ensure that the master cache has permissions
  10312. set appropriately (sane defaults are provided).
  10313. .IP \(bu 2
  10314. \fBmemory\fP [EXPERIMENTAL]:
  10315. .sp
  10316. An optional backend for pillar caches which uses a pure\-Python
  10317. in\-memory data structure for maximal performance. There are several caveats,
  10318. however. First, because each master worker contains its own in\-memory cache,
  10319. there is no guarantee of cache consistency between minion requests. This
  10320. works best in situations where the pillar rarely if ever changes. Secondly,
  10321. and perhaps more importantly, this means that unencrypted pillars will
  10322. be accessible to any process which can examine the memory of the \fBsalt\-master\fP!
  10323. This may represent a substantial security risk.
  10324. .UNINDENT
  10325. .INDENT 0.0
  10326. .INDENT 3.5
  10327. .sp
  10328. .nf
  10329. .ft C
  10330. pillar_cache_backend: disk
  10331. .ft P
  10332. .fi
  10333. .UNINDENT
  10334. .UNINDENT
  10335. .SS Master Reactor Settings
  10336. .SS \fBreactor\fP
  10337. .sp
  10338. Default: \fB[]\fP
  10339. .sp
  10340. Defines a salt reactor. See the Reactor documentation for more
  10341. information.
  10342. .INDENT 0.0
  10343. .INDENT 3.5
  10344. .sp
  10345. .nf
  10346. .ft C
  10347. reactor:
  10348. \- \(aqsalt/minion/*/start\(aq:
  10349. \- salt://reactor/startup_tasks.sls
  10350. .ft P
  10351. .fi
  10352. .UNINDENT
  10353. .UNINDENT
  10354. .SS \fBreactor_refresh_interval\fP
  10355. .sp
  10356. Default: \fB60\fP
  10357. .sp
  10358. The TTL for the cache of the reactor configuration.
  10359. .INDENT 0.0
  10360. .INDENT 3.5
  10361. .sp
  10362. .nf
  10363. .ft C
  10364. reactor_refresh_interval: 60
  10365. .ft P
  10366. .fi
  10367. .UNINDENT
  10368. .UNINDENT
  10369. .SS \fBreactor_worker_threads\fP
  10370. .sp
  10371. Default: \fB10\fP
  10372. .sp
  10373. The number of workers for the runner/wheel in the reactor.
  10374. .INDENT 0.0
  10375. .INDENT 3.5
  10376. .sp
  10377. .nf
  10378. .ft C
  10379. reactor_worker_threads: 10
  10380. .ft P
  10381. .fi
  10382. .UNINDENT
  10383. .UNINDENT
  10384. .SS \fBreactor_worker_hwm\fP
  10385. .sp
  10386. Default: \fB10000\fP
  10387. .sp
  10388. The queue size for workers in the reactor.
  10389. .INDENT 0.0
  10390. .INDENT 3.5
  10391. .sp
  10392. .nf
  10393. .ft C
  10394. reactor_worker_hwm: 10000
  10395. .ft P
  10396. .fi
  10397. .UNINDENT
  10398. .UNINDENT
  10399. .SS Salt\-API Master Settings
  10400. .sp
  10401. There are some settings for salt\-api that can be
  10402. configured on the Salt Master.
  10403. .SS \fBapi_logfile\fP
  10404. .sp
  10405. Default: \fB/var/log/salt/api\fP
  10406. .sp
  10407. The logfile location for \fBsalt\-api\fP\&.
  10408. .INDENT 0.0
  10409. .INDENT 3.5
  10410. .sp
  10411. .nf
  10412. .ft C
  10413. api_logfile: /var/log/salt/api
  10414. .ft P
  10415. .fi
  10416. .UNINDENT
  10417. .UNINDENT
  10418. .SS \fBapi_pidfile\fP
  10419. .sp
  10420. Default: /var/run/salt\-api.pid
  10421. .sp
  10422. If this master will be running \fBsalt\-api\fP, specify the pidfile of the
  10423. \fBsalt\-api\fP daemon.
  10424. .INDENT 0.0
  10425. .INDENT 3.5
  10426. .sp
  10427. .nf
  10428. .ft C
  10429. api_pidfile: /var/run/salt\-api.pid
  10430. .ft P
  10431. .fi
  10432. .UNINDENT
  10433. .UNINDENT
  10434. .SS \fBrest_timeout\fP
  10435. .sp
  10436. Default: \fB300\fP
  10437. .sp
  10438. Used by \fBsalt\-api\fP for the master requests timeout.
  10439. .INDENT 0.0
  10440. .INDENT 3.5
  10441. .sp
  10442. .nf
  10443. .ft C
  10444. rest_timeout: 300
  10445. .ft P
  10446. .fi
  10447. .UNINDENT
  10448. .UNINDENT
  10449. .SS Syndic Server Settings
  10450. .sp
  10451. A Salt syndic is a Salt master used to pass commands from a higher Salt master
  10452. to minions below the syndic. Using the syndic is simple. If this is a master
  10453. that will have syndic servers(s) below it, set the \fBorder_masters\fP setting to
  10454. \fBTrue\fP\&.
  10455. .sp
  10456. If this is a master that will be running a syndic daemon for passthrough the
  10457. \fBsyndic_master\fP setting needs to be set to the location of the master server.
  10458. .sp
  10459. Do not forget that, in other words, it means that it shares with the local minion
  10460. its ID and PKI directory.
  10461. .SS \fBorder_masters\fP
  10462. .sp
  10463. Default: \fBFalse\fP
  10464. .sp
  10465. Extra data needs to be sent with publications if the master is controlling a
  10466. lower level master via a syndic minion. If this is the case the order_masters
  10467. value must be set to True
  10468. .INDENT 0.0
  10469. .INDENT 3.5
  10470. .sp
  10471. .nf
  10472. .ft C
  10473. order_masters: False
  10474. .ft P
  10475. .fi
  10476. .UNINDENT
  10477. .UNINDENT
  10478. .SS \fBsyndic_master\fP
  10479. .sp
  10480. Changed in version 2016.3.5,2016.11.1: Set default higher level master address.
  10481. .sp
  10482. Default: \fBmasterofmasters\fP
  10483. .sp
  10484. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10485. master, specify the higher level master with this configuration value.
  10486. .INDENT 0.0
  10487. .INDENT 3.5
  10488. .sp
  10489. .nf
  10490. .ft C
  10491. syndic_master: masterofmasters
  10492. .ft P
  10493. .fi
  10494. .UNINDENT
  10495. .UNINDENT
  10496. .sp
  10497. You can optionally connect a syndic to multiple higher level masters by
  10498. setting the \fBsyndic_master\fP value to a list:
  10499. .INDENT 0.0
  10500. .INDENT 3.5
  10501. .sp
  10502. .nf
  10503. .ft C
  10504. syndic_master:
  10505. \- masterofmasters1
  10506. \- masterofmasters2
  10507. .ft P
  10508. .fi
  10509. .UNINDENT
  10510. .UNINDENT
  10511. .sp
  10512. Each higher level master must be set up in a multi\-master configuration.
  10513. .SS \fBsyndic_master_port\fP
  10514. .sp
  10515. Default: \fB4506\fP
  10516. .sp
  10517. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10518. master, specify the higher level master port with this configuration value.
  10519. .INDENT 0.0
  10520. .INDENT 3.5
  10521. .sp
  10522. .nf
  10523. .ft C
  10524. syndic_master_port: 4506
  10525. .ft P
  10526. .fi
  10527. .UNINDENT
  10528. .UNINDENT
  10529. .SS \fBsyndic_pidfile\fP
  10530. .sp
  10531. Default: \fB/var/run/salt\-syndic.pid\fP
  10532. .sp
  10533. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10534. master, specify the pidfile of the syndic daemon.
  10535. .INDENT 0.0
  10536. .INDENT 3.5
  10537. .sp
  10538. .nf
  10539. .ft C
  10540. syndic_pidfile: /var/run/syndic.pid
  10541. .ft P
  10542. .fi
  10543. .UNINDENT
  10544. .UNINDENT
  10545. .SS \fBsyndic_log_file\fP
  10546. .sp
  10547. Default: \fB/var/log/salt/syndic\fP
  10548. .sp
  10549. If this master will be running the \fBsalt\-syndic\fP to connect to a higher level
  10550. master, specify the log file of the syndic daemon.
  10551. .INDENT 0.0
  10552. .INDENT 3.5
  10553. .sp
  10554. .nf
  10555. .ft C
  10556. syndic_log_file: /var/log/salt\-syndic.log
  10557. .ft P
  10558. .fi
  10559. .UNINDENT
  10560. .UNINDENT
  10561. .SS \fBsyndic_failover\fP
  10562. .sp
  10563. New in version 2016.3.0.
  10564. .sp
  10565. Default: \fBrandom\fP
  10566. .sp
  10567. The behaviour of the multi\-syndic when connection to a master of masters failed.
  10568. Can specify \fBrandom\fP (default) or \fBordered\fP\&. If set to \fBrandom\fP, masters
  10569. will be iterated in random order. If \fBordered\fP is specified, the configured
  10570. order will be used.
  10571. .INDENT 0.0
  10572. .INDENT 3.5
  10573. .sp
  10574. .nf
  10575. .ft C
  10576. syndic_failover: random
  10577. .ft P
  10578. .fi
  10579. .UNINDENT
  10580. .UNINDENT
  10581. .SS \fBsyndic_wait\fP
  10582. .sp
  10583. Default: \fB5\fP
  10584. .sp
  10585. The number of seconds for the salt client to wait for additional syndics to
  10586. check in with their lists of expected minions before giving up.
  10587. .INDENT 0.0
  10588. .INDENT 3.5
  10589. .sp
  10590. .nf
  10591. .ft C
  10592. syndic_wait: 5
  10593. .ft P
  10594. .fi
  10595. .UNINDENT
  10596. .UNINDENT
  10597. .SS \fBsyndic_forward_all_events\fP
  10598. .sp
  10599. New in version 2017.7.0.
  10600. .sp
  10601. Default: \fBFalse\fP
  10602. .sp
  10603. Option on multi\-syndic or single when connected to multiple masters to be able to
  10604. send events to all connected masters.
  10605. .INDENT 0.0
  10606. .INDENT 3.5
  10607. .sp
  10608. .nf
  10609. .ft C
  10610. syndic_forward_all_events: False
  10611. .ft P
  10612. .fi
  10613. .UNINDENT
  10614. .UNINDENT
  10615. .SS Peer Publish Settings
  10616. .sp
  10617. Salt minions can send commands to other minions, but only if the minion is
  10618. allowed to. By default "Peer Publication" is disabled, and when enabled it
  10619. is enabled for specific minions and specific commands. This allows secure
  10620. compartmentalization of commands based on individual minions.
  10621. .SS \fBpeer\fP
  10622. .sp
  10623. Default: \fB{}\fP
  10624. .sp
  10625. The configuration uses regular expressions to match minions and then a list
  10626. of regular expressions to match functions. The following will allow the
  10627. minion authenticated as foo.example.com to execute functions from the test
  10628. and pkg modules.
  10629. .INDENT 0.0
  10630. .INDENT 3.5
  10631. .sp
  10632. .nf
  10633. .ft C
  10634. peer:
  10635. foo.example.com:
  10636. \- test.*
  10637. \- pkg.*
  10638. .ft P
  10639. .fi
  10640. .UNINDENT
  10641. .UNINDENT
  10642. .sp
  10643. This will allow all minions to execute all commands:
  10644. .INDENT 0.0
  10645. .INDENT 3.5
  10646. .sp
  10647. .nf
  10648. .ft C
  10649. peer:
  10650. .*:
  10651. \- .*
  10652. .ft P
  10653. .fi
  10654. .UNINDENT
  10655. .UNINDENT
  10656. .sp
  10657. This is not recommended, since it would allow anyone who gets root on any
  10658. single minion to instantly have root on all of the minions!
  10659. .sp
  10660. By adding an additional layer you can limit the target hosts in addition to the
  10661. accessible commands:
  10662. .INDENT 0.0
  10663. .INDENT 3.5
  10664. .sp
  10665. .nf
  10666. .ft C
  10667. peer:
  10668. foo.example.com:
  10669. \(aqdb*\(aq:
  10670. \- test.*
  10671. \- pkg.*
  10672. .ft P
  10673. .fi
  10674. .UNINDENT
  10675. .UNINDENT
  10676. .SS \fBpeer_run\fP
  10677. .sp
  10678. Default: \fB{}\fP
  10679. .sp
  10680. The peer_run option is used to open up runners on the master to access from the
  10681. minions. The peer_run configuration matches the format of the peer
  10682. configuration.
  10683. .sp
  10684. The following example would allow foo.example.com to execute the manage.up
  10685. runner:
  10686. .INDENT 0.0
  10687. .INDENT 3.5
  10688. .sp
  10689. .nf
  10690. .ft C
  10691. peer_run:
  10692. foo.example.com:
  10693. \- manage.up
  10694. .ft P
  10695. .fi
  10696. .UNINDENT
  10697. .UNINDENT
  10698. .SS Master Logging Settings
  10699. .SS \fBlog_file\fP
  10700. .sp
  10701. Default: \fB/var/log/salt/master\fP
  10702. .sp
  10703. The master log can be sent to a regular file, local path name, or network
  10704. location. See also \fBlog_file\fP\&.
  10705. .sp
  10706. Examples:
  10707. .INDENT 0.0
  10708. .INDENT 3.5
  10709. .sp
  10710. .nf
  10711. .ft C
  10712. log_file: /var/log/salt/master
  10713. .ft P
  10714. .fi
  10715. .UNINDENT
  10716. .UNINDENT
  10717. .INDENT 0.0
  10718. .INDENT 3.5
  10719. .sp
  10720. .nf
  10721. .ft C
  10722. log_file: file:///dev/log
  10723. .ft P
  10724. .fi
  10725. .UNINDENT
  10726. .UNINDENT
  10727. .INDENT 0.0
  10728. .INDENT 3.5
  10729. .sp
  10730. .nf
  10731. .ft C
  10732. log_file: udp://loghost:10514
  10733. .ft P
  10734. .fi
  10735. .UNINDENT
  10736. .UNINDENT
  10737. .SS \fBlog_level\fP
  10738. .sp
  10739. Default: \fBwarning\fP
  10740. .sp
  10741. The level of messages to send to the console. See also \fBlog_level\fP\&.
  10742. .INDENT 0.0
  10743. .INDENT 3.5
  10744. .sp
  10745. .nf
  10746. .ft C
  10747. log_level: warning
  10748. .ft P
  10749. .fi
  10750. .UNINDENT
  10751. .UNINDENT
  10752. .SS \fBlog_level_logfile\fP
  10753. .sp
  10754. Default: \fBwarning\fP
  10755. .sp
  10756. The level of messages to send to the log file. See also
  10757. \fBlog_level_logfile\fP\&. When it is not set explicitly
  10758. it will inherit the level set by \fBlog_level\fP option.
  10759. .INDENT 0.0
  10760. .INDENT 3.5
  10761. .sp
  10762. .nf
  10763. .ft C
  10764. log_level_logfile: warning
  10765. .ft P
  10766. .fi
  10767. .UNINDENT
  10768. .UNINDENT
  10769. .SS \fBlog_datefmt\fP
  10770. .sp
  10771. Default: \fB%H:%M:%S\fP
  10772. .sp
  10773. The date and time format used in console log messages. See also
  10774. \fBlog_datefmt\fP\&.
  10775. .INDENT 0.0
  10776. .INDENT 3.5
  10777. .sp
  10778. .nf
  10779. .ft C
  10780. log_datefmt: \(aq%H:%M:%S\(aq
  10781. .ft P
  10782. .fi
  10783. .UNINDENT
  10784. .UNINDENT
  10785. .SS \fBlog_datefmt_logfile\fP
  10786. .sp
  10787. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  10788. .sp
  10789. The date and time format used in log file messages. See also
  10790. \fBlog_datefmt_logfile\fP\&.
  10791. .INDENT 0.0
  10792. .INDENT 3.5
  10793. .sp
  10794. .nf
  10795. .ft C
  10796. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  10797. .ft P
  10798. .fi
  10799. .UNINDENT
  10800. .UNINDENT
  10801. .SS \fBlog_fmt_console\fP
  10802. .sp
  10803. Default: \fB[%(levelname)\-8s] %(message)s\fP
  10804. .sp
  10805. The format of the console logging messages. See also
  10806. \fBlog_fmt_console\fP\&.
  10807. .sp
  10808. \fBNOTE:\fP
  10809. .INDENT 0.0
  10810. .INDENT 3.5
  10811. Log colors are enabled in \fBlog_fmt_console\fP rather than the
  10812. \fI\%color\fP config since the logging system is loaded before the
  10813. master config.
  10814. .sp
  10815. Console log colors are specified by these additional formatters:
  10816. .sp
  10817. %(colorlevel)s
  10818. %(colorname)s
  10819. %(colorprocess)s
  10820. %(colormsg)s
  10821. .sp
  10822. Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  10823. the coloring of the messages, these color formatters also include padding
  10824. as well. Color LogRecord attributes are only available for console
  10825. logging.
  10826. .UNINDENT
  10827. .UNINDENT
  10828. .INDENT 0.0
  10829. .INDENT 3.5
  10830. .sp
  10831. .nf
  10832. .ft C
  10833. log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  10834. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  10835. .ft P
  10836. .fi
  10837. .UNINDENT
  10838. .UNINDENT
  10839. .SS \fBlog_fmt_logfile\fP
  10840. .sp
  10841. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  10842. .sp
  10843. The format of the log file logging messages. See also
  10844. \fBlog_fmt_logfile\fP\&.
  10845. .INDENT 0.0
  10846. .INDENT 3.5
  10847. .sp
  10848. .nf
  10849. .ft C
  10850. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  10851. .ft P
  10852. .fi
  10853. .UNINDENT
  10854. .UNINDENT
  10855. .SS \fBlog_granular_levels\fP
  10856. .sp
  10857. Default: \fB{}\fP
  10858. .sp
  10859. This can be used to control logging levels more specifically. See also
  10860. \fBlog_granular_levels\fP\&.
  10861. .SS \fBlog_rotate_max_bytes\fP
  10862. .sp
  10863. Default: \fB0\fP
  10864. .sp
  10865. The maximum number of bytes a single log file may contain before it is rotated.
  10866. A value of 0 disables this feature. Currently only supported on Windows. On
  10867. other platforms, use an external tool such as \(aqlogrotate\(aq to manage log files.
  10868. \fBlog_rotate_max_bytes\fP
  10869. .SS \fBlog_rotate_backup_count\fP
  10870. .sp
  10871. Default: \fB0\fP
  10872. .sp
  10873. The number of backup files to keep when rotating log files. Only used if
  10874. \fI\%log_rotate_max_bytes\fP is greater than 0. Currently only supported
  10875. on Windows. On other platforms, use an external tool such as \(aqlogrotate\(aq to
  10876. manage log files.
  10877. \fBlog_rotate_backup_count\fP
  10878. .SS Node Groups
  10879. .SS \fBnodegroups\fP
  10880. .sp
  10881. Default: \fB{}\fP
  10882. .sp
  10883. Node groups allow for logical groupings of minion nodes.
  10884. A group consists of a group name and a compound target.
  10885. .INDENT 0.0
  10886. .INDENT 3.5
  10887. .sp
  10888. .nf
  10889. .ft C
  10890. nodegroups:
  10891. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  10892. group2: \(aqG@os:Debian and foo.domain.com\(aq
  10893. group3: \(aqG@os:Debian and N@group1\(aq
  10894. group4:
  10895. \- \(aqG@foo:bar\(aq
  10896. \- \(aqor\(aq
  10897. \- \(aqG@foo:baz\(aq
  10898. .ft P
  10899. .fi
  10900. .UNINDENT
  10901. .UNINDENT
  10902. .sp
  10903. More information on using nodegroups can be found here\&.
  10904. .SS Range Cluster Settings
  10905. .SS \fBrange_server\fP
  10906. .sp
  10907. Default: \fB\(aqrange:80\(aq\fP
  10908. .sp
  10909. The range server (and optional port) that serves your cluster information
  10910. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  10911. .INDENT 0.0
  10912. .INDENT 3.5
  10913. .sp
  10914. .nf
  10915. .ft C
  10916. range_server: range:80
  10917. .ft P
  10918. .fi
  10919. .UNINDENT
  10920. .UNINDENT
  10921. .SS Include Configuration
  10922. .sp
  10923. Configuration can be loaded from multiple files. The order in which this is
  10924. done is:
  10925. .INDENT 0.0
  10926. .IP 1. 3
  10927. The master config file itself
  10928. .IP 2. 3
  10929. The files matching the glob in \fI\%default_include\fP
  10930. .IP 3. 3
  10931. The files matching the glob in \fI\%include\fP (if defined)
  10932. .UNINDENT
  10933. .sp
  10934. Each successive step overrides any values defined in the previous steps.
  10935. Therefore, any config options defined in one of the
  10936. \fI\%default_include\fP files would override the same value in the
  10937. master config file, and any options defined in \fI\%include\fP would
  10938. override both.
  10939. .SS \fBdefault_include\fP
  10940. .sp
  10941. Default: \fBmaster.d/*.conf\fP
  10942. .sp
  10943. The master can include configuration from other files. Per default the
  10944. master will automatically include all config files from \fBmaster.d/*.conf\fP
  10945. where \fBmaster.d\fP is relative to the directory of the master configuration
  10946. file.
  10947. .sp
  10948. \fBNOTE:\fP
  10949. .INDENT 0.0
  10950. .INDENT 3.5
  10951. Salt creates files in the \fBmaster.d\fP directory for its own use. These
  10952. files are prefixed with an underscore. A common example of this is the
  10953. \fB_schedule.conf\fP file.
  10954. .UNINDENT
  10955. .UNINDENT
  10956. .SS \fBinclude\fP
  10957. .sp
  10958. Default: \fBnot defined\fP
  10959. .sp
  10960. The master can include configuration from other files. To enable this,
  10961. pass a list of paths to this option. The paths can be either relative or
  10962. absolute; if relative, they are considered to be relative to the directory
  10963. the main minion configuration file lives in. Paths can make use of
  10964. shell\-style globbing. If no files are matched by a path passed to this
  10965. option then the master will log a warning message.
  10966. .INDENT 0.0
  10967. .INDENT 3.5
  10968. .sp
  10969. .nf
  10970. .ft C
  10971. # Include files from a master.d directory in the same
  10972. # directory as the master config file
  10973. include: master.d/*
  10974. # Include a single extra file into the configuration
  10975. include: /etc/roles/webserver
  10976. # Include several files and the master.d directory
  10977. include:
  10978. \- extra_config
  10979. \- master.d/*
  10980. \- /etc/roles/webserver
  10981. .ft P
  10982. .fi
  10983. .UNINDENT
  10984. .UNINDENT
  10985. .SS Keepalive Settings
  10986. .SS \fBtcp_keepalive\fP
  10987. .sp
  10988. Default: \fBTrue\fP
  10989. .sp
  10990. The tcp keepalive interval to set on TCP ports. This setting can be used to tune Salt
  10991. connectivity issues in messy network environments with misbehaving firewalls.
  10992. .INDENT 0.0
  10993. .INDENT 3.5
  10994. .sp
  10995. .nf
  10996. .ft C
  10997. tcp_keepalive: True
  10998. .ft P
  10999. .fi
  11000. .UNINDENT
  11001. .UNINDENT
  11002. .SS \fBtcp_keepalive_cnt\fP
  11003. .sp
  11004. Default: \fB\-1\fP
  11005. .sp
  11006. Sets the ZeroMQ TCP keepalive count. May be used to tune issues with minion disconnects.
  11007. .INDENT 0.0
  11008. .INDENT 3.5
  11009. .sp
  11010. .nf
  11011. .ft C
  11012. tcp_keepalive_cnt: \-1
  11013. .ft P
  11014. .fi
  11015. .UNINDENT
  11016. .UNINDENT
  11017. .SS \fBtcp_keepalive_idle\fP
  11018. .sp
  11019. Default: \fB300\fP
  11020. .sp
  11021. Sets ZeroMQ TCP keepalive idle. May be used to tune issues with minion disconnects.
  11022. .INDENT 0.0
  11023. .INDENT 3.5
  11024. .sp
  11025. .nf
  11026. .ft C
  11027. tcp_keepalive_idle: 300
  11028. .ft P
  11029. .fi
  11030. .UNINDENT
  11031. .UNINDENT
  11032. .SS \fBtcp_keepalive_intvl\fP
  11033. .sp
  11034. Default: \fB\-1\fP
  11035. .sp
  11036. Sets ZeroMQ TCP keepalive interval. May be used to tune issues with minion disconnects.
  11037. .INDENT 0.0
  11038. .INDENT 3.5
  11039. .sp
  11040. .nf
  11041. .ft C
  11042. tcp_keepalive_intvl\(aq: \-1
  11043. .ft P
  11044. .fi
  11045. .UNINDENT
  11046. .UNINDENT
  11047. .SS Windows Software Repo Settings
  11048. .SS \fBwinrepo_provider\fP
  11049. .sp
  11050. New in version 2015.8.0.
  11051. .sp
  11052. Specify the provider to be used for winrepo. Must be either \fBpygit2\fP or
  11053. \fBgitpython\fP\&. If unset, then both will be tried in that same order, and the
  11054. first one with a compatible version installed will be the provider that is
  11055. used.
  11056. .INDENT 0.0
  11057. .INDENT 3.5
  11058. .sp
  11059. .nf
  11060. .ft C
  11061. winrepo_provider: gitpython
  11062. .ft P
  11063. .fi
  11064. .UNINDENT
  11065. .UNINDENT
  11066. .SS \fBwinrepo_dir\fP
  11067. .sp
  11068. Changed in version 2015.8.0: Renamed from \fBwin_repo\fP to \fBwinrepo_dir\fP\&.
  11069. .sp
  11070. Default: \fB/srv/salt/win/repo\fP
  11071. .sp
  11072. Location on the master where the \fI\%winrepo_remotes\fP are checked out
  11073. for pre\-2015.8.0 minions. 2015.8.0 and later minions use
  11074. \fI\%winrepo_remotes_ng\fP instead.
  11075. .INDENT 0.0
  11076. .INDENT 3.5
  11077. .sp
  11078. .nf
  11079. .ft C
  11080. winrepo_dir: /srv/salt/win/repo
  11081. .ft P
  11082. .fi
  11083. .UNINDENT
  11084. .UNINDENT
  11085. .SS \fBwinrepo_dir_ng\fP
  11086. .sp
  11087. New in version 2015.8.0: A new ng repo was added.
  11088. .sp
  11089. Default: \fB/srv/salt/win/repo\-ng\fP
  11090. .sp
  11091. Location on the master where the \fI\%winrepo_remotes_ng\fP are checked
  11092. out for 2015.8.0 and later minions.
  11093. .INDENT 0.0
  11094. .INDENT 3.5
  11095. .sp
  11096. .nf
  11097. .ft C
  11098. winrepo_dir_ng: /srv/salt/win/repo\-ng
  11099. .ft P
  11100. .fi
  11101. .UNINDENT
  11102. .UNINDENT
  11103. .SS \fBwinrepo_cachefile\fP
  11104. .sp
  11105. Changed in version 2015.8.0: Renamed from \fBwin_repo_mastercachefile\fP to \fBwinrepo_cachefile\fP
  11106. .sp
  11107. \fBNOTE:\fP
  11108. .INDENT 0.0
  11109. .INDENT 3.5
  11110. 2015.8.0 and later minions do not use this setting since the cachefile
  11111. is now generated by the minion.
  11112. .UNINDENT
  11113. .UNINDENT
  11114. .sp
  11115. Default: \fBwinrepo.p\fP
  11116. .sp
  11117. Path relative to \fI\%winrepo_dir\fP where the winrepo cache should be
  11118. created.
  11119. .INDENT 0.0
  11120. .INDENT 3.5
  11121. .sp
  11122. .nf
  11123. .ft C
  11124. winrepo_cachefile: winrepo.p
  11125. .ft P
  11126. .fi
  11127. .UNINDENT
  11128. .UNINDENT
  11129. .SS \fBwinrepo_remotes\fP
  11130. .sp
  11131. Changed in version 2015.8.0: Renamed from \fBwin_gitrepos\fP to \fBwinrepo_remotes\fP\&.
  11132. .sp
  11133. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq]\fP
  11134. .sp
  11135. List of git repositories to checkout and include in the winrepo for
  11136. pre\-2015.8.0 minions. 2015.8.0 and later minions use
  11137. \fI\%winrepo_remotes_ng\fP instead.
  11138. .INDENT 0.0
  11139. .INDENT 3.5
  11140. .sp
  11141. .nf
  11142. .ft C
  11143. winrepo_remotes:
  11144. \- https://github.com/saltstack/salt\-winrepo.git
  11145. .ft P
  11146. .fi
  11147. .UNINDENT
  11148. .UNINDENT
  11149. .sp
  11150. To specify a specific revision of the repository, prepend a commit ID to the
  11151. URL of the repository:
  11152. .INDENT 0.0
  11153. .INDENT 3.5
  11154. .sp
  11155. .nf
  11156. .ft C
  11157. winrepo_remotes:
  11158. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo.git\(aq
  11159. .ft P
  11160. .fi
  11161. .UNINDENT
  11162. .UNINDENT
  11163. .sp
  11164. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  11165. ID is useful in that it allows one to revert back to a previous version in the
  11166. event that an error is introduced in the latest revision of the repo.
  11167. .SS \fBwinrepo_remotes_ng\fP
  11168. .sp
  11169. New in version 2015.8.0: A new ng repo was added.
  11170. .sp
  11171. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq]\fP
  11172. .sp
  11173. List of git repositories to checkout and include in the winrepo for
  11174. 2015.8.0 and later minions.
  11175. .INDENT 0.0
  11176. .INDENT 3.5
  11177. .sp
  11178. .nf
  11179. .ft C
  11180. winrepo_remotes_ng:
  11181. \- https://github.com/saltstack/salt\-winrepo\-ng.git
  11182. .ft P
  11183. .fi
  11184. .UNINDENT
  11185. .UNINDENT
  11186. .sp
  11187. To specify a specific revision of the repository, prepend a commit ID to the
  11188. URL of the repository:
  11189. .INDENT 0.0
  11190. .INDENT 3.5
  11191. .sp
  11192. .nf
  11193. .ft C
  11194. winrepo_remotes_ng:
  11195. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  11196. .ft P
  11197. .fi
  11198. .UNINDENT
  11199. .UNINDENT
  11200. .sp
  11201. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  11202. ID is useful in that it allows one to revert back to a previous version in the
  11203. event that an error is introduced in the latest revision of the repo.
  11204. .SS \fBwinrepo_branch\fP
  11205. .sp
  11206. New in version 2015.8.0.
  11207. .sp
  11208. Default: \fBmaster\fP
  11209. .sp
  11210. If the branch is omitted from a winrepo remote, then this branch will be
  11211. used instead. For example, in the configuration below, the first two remotes
  11212. would use the \fBwinrepo\fP branch/tag, while the third would use the \fBfoo\fP
  11213. branch/tag.
  11214. .INDENT 0.0
  11215. .INDENT 3.5
  11216. .sp
  11217. .nf
  11218. .ft C
  11219. winrepo_branch: winrepo
  11220. winrepo_remotes:
  11221. \- https://mygitserver/winrepo1.git
  11222. \- https://mygitserver/winrepo2.git:
  11223. \- foo https://mygitserver/winrepo3.git
  11224. .ft P
  11225. .fi
  11226. .UNINDENT
  11227. .UNINDENT
  11228. .SS \fBwinrepo_ssl_verify\fP
  11229. .sp
  11230. New in version 2015.8.0.
  11231. .sp
  11232. Changed in version 2016.11.0.
  11233. .sp
  11234. Default: \fBFalse\fP
  11235. .sp
  11236. Specifies whether or not to ignore SSL certificate errors when contacting the
  11237. remote repository. The \fBFalse\fP setting is useful if you\(aqre using a
  11238. git repo that uses a self\-signed certificate. However, keep in mind that
  11239. setting this to anything other \fBTrue\fP is a considered insecure, and using an
  11240. SSH\-based transport (if available) may be a better option.
  11241. .sp
  11242. In the 2016.11.0 release, the default config value changed from \fBFalse\fP to
  11243. \fBTrue\fP\&.
  11244. .INDENT 0.0
  11245. .INDENT 3.5
  11246. .sp
  11247. .nf
  11248. .ft C
  11249. winrepo_ssl_verify: True
  11250. .ft P
  11251. .fi
  11252. .UNINDENT
  11253. .UNINDENT
  11254. .SS Winrepo Authentication Options
  11255. .sp
  11256. These parameters only currently apply to the \fBpygit2\fP
  11257. \fI\%winrepo_provider\fP\&. Authentication works the same as it does in
  11258. gitfs, as outlined in the GitFS Walkthrough,
  11259. though the global configuration options are named differently to reflect that
  11260. they are for winrepo instead of gitfs.
  11261. .SS \fBwinrepo_user\fP
  11262. .sp
  11263. New in version 2015.8.0.
  11264. .sp
  11265. Default: \fB\(aq\(aq\fP
  11266. .sp
  11267. Along with \fI\%winrepo_password\fP, is used to authenticate to HTTPS
  11268. remotes.
  11269. .INDENT 0.0
  11270. .INDENT 3.5
  11271. .sp
  11272. .nf
  11273. .ft C
  11274. winrepo_user: git
  11275. .ft P
  11276. .fi
  11277. .UNINDENT
  11278. .UNINDENT
  11279. .SS \fBwinrepo_password\fP
  11280. .sp
  11281. New in version 2015.8.0.
  11282. .sp
  11283. Default: \fB\(aq\(aq\fP
  11284. .sp
  11285. Along with \fI\%winrepo_user\fP, is used to authenticate to HTTPS
  11286. remotes. This parameter is not required if the repository does not use
  11287. authentication.
  11288. .INDENT 0.0
  11289. .INDENT 3.5
  11290. .sp
  11291. .nf
  11292. .ft C
  11293. winrepo_password: mypassword
  11294. .ft P
  11295. .fi
  11296. .UNINDENT
  11297. .UNINDENT
  11298. .SS \fBwinrepo_insecure_auth\fP
  11299. .sp
  11300. New in version 2015.8.0.
  11301. .sp
  11302. Default: \fBFalse\fP
  11303. .sp
  11304. By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote. This
  11305. parameter enables authentication over HTTP. \fBEnable this at your own risk.\fP
  11306. .INDENT 0.0
  11307. .INDENT 3.5
  11308. .sp
  11309. .nf
  11310. .ft C
  11311. winrepo_insecure_auth: True
  11312. .ft P
  11313. .fi
  11314. .UNINDENT
  11315. .UNINDENT
  11316. .SS \fBwinrepo_pubkey\fP
  11317. .sp
  11318. New in version 2015.8.0.
  11319. .sp
  11320. Default: \fB\(aq\(aq\fP
  11321. .sp
  11322. Along with \fI\%winrepo_privkey\fP (and optionally
  11323. \fI\%winrepo_passphrase\fP), is used to authenticate to SSH remotes.
  11324. .INDENT 0.0
  11325. .INDENT 3.5
  11326. .sp
  11327. .nf
  11328. .ft C
  11329. winrepo_pubkey: /path/to/key.pub
  11330. .ft P
  11331. .fi
  11332. .UNINDENT
  11333. .UNINDENT
  11334. .SS \fBwinrepo_privkey\fP
  11335. .sp
  11336. New in version 2015.8.0.
  11337. .sp
  11338. Default: \fB\(aq\(aq\fP
  11339. .sp
  11340. Along with \fI\%winrepo_pubkey\fP (and optionally
  11341. \fI\%winrepo_passphrase\fP), is used to authenticate to SSH remotes.
  11342. .INDENT 0.0
  11343. .INDENT 3.5
  11344. .sp
  11345. .nf
  11346. .ft C
  11347. winrepo_privkey: /path/to/key
  11348. .ft P
  11349. .fi
  11350. .UNINDENT
  11351. .UNINDENT
  11352. .SS \fBwinrepo_passphrase\fP
  11353. .sp
  11354. New in version 2015.8.0.
  11355. .sp
  11356. Default: \fB\(aq\(aq\fP
  11357. .sp
  11358. This parameter is optional, required only when the SSH key being used to
  11359. authenticate is protected by a passphrase.
  11360. .INDENT 0.0
  11361. .INDENT 3.5
  11362. .sp
  11363. .nf
  11364. .ft C
  11365. winrepo_passphrase: mypassphrase
  11366. .ft P
  11367. .fi
  11368. .UNINDENT
  11369. .UNINDENT
  11370. .SS \fBwinrepo_refspecs\fP
  11371. .sp
  11372. New in version 2017.7.0.
  11373. .sp
  11374. Default: \fB[\(aq+refs/heads/*:refs/remotes/origin/*\(aq, \(aq+refs/tags/*:refs/tags/*\(aq]\fP
  11375. .sp
  11376. When fetching from remote repositories, by default Salt will fetch branches and
  11377. tags. This parameter can be used to override the default and specify
  11378. alternate refspecs to be fetched. This parameter works similarly to its
  11379. GitFS counterpart, in that it can be
  11380. configured both globally and for individual remotes.
  11381. .INDENT 0.0
  11382. .INDENT 3.5
  11383. .sp
  11384. .nf
  11385. .ft C
  11386. winrepo_refspecs:
  11387. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  11388. \- \(aq+refs/tags/*:refs/tags/*\(aq
  11389. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  11390. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  11391. .ft P
  11392. .fi
  11393. .UNINDENT
  11394. .UNINDENT
  11395. .SS Configure Master on Windows
  11396. .sp
  11397. The master on Windows requires no additional configuration. You can modify the
  11398. master configuration by creating/editing the master config file located at
  11399. \fBc:\esalt\econf\emaster\fP\&. The same configuration options available on Linux are
  11400. available in Windows, as long as they apply. For example, SSH options wouldn\(aqt
  11401. apply in Windows. The main differences are the file paths. If you are familiar
  11402. with common salt paths, the following table may be useful:
  11403. .TS
  11404. center;
  11405. |l|l|l|.
  11406. _
  11407. T{
  11408. linux Paths
  11409. T} T{
  11410. T} T{
  11411. Windows Paths
  11412. T}
  11413. _
  11414. T{
  11415. \fB/etc/salt\fP
  11416. T} T{
  11417. \fB<\-\-\->\fP
  11418. T} T{
  11419. \fBc:\esalt\econf\fP
  11420. T}
  11421. _
  11422. T{
  11423. \fB/\fP
  11424. T} T{
  11425. \fB<\-\-\->\fP
  11426. T} T{
  11427. \fBc:\esalt\fP
  11428. T}
  11429. _
  11430. .TE
  11431. .sp
  11432. So, for example, the master config file in Linux is \fB/etc/salt/master\fP\&. In
  11433. Windows the master config file is \fBc:\esalt\econf\emaster\fP\&. The Linux path
  11434. \fB/etc/salt\fP becomes \fBc:\esalt\econf\fP in Windows.
  11435. .SS Common File Locations
  11436. .TS
  11437. center;
  11438. |l|l|.
  11439. _
  11440. T{
  11441. Linux Paths
  11442. T} T{
  11443. Windows Paths
  11444. T}
  11445. _
  11446. T{
  11447. \fBconf_file: /etc/salt/master\fP
  11448. T} T{
  11449. \fBconf_file: c:\esalt\econf\emaster\fP
  11450. T}
  11451. _
  11452. T{
  11453. \fBlog_file: /var/log/salt/master\fP
  11454. T} T{
  11455. \fBlog_file: c:\esalt\evar\elog\esalt\emaster\fP
  11456. T}
  11457. _
  11458. T{
  11459. \fBpidfile: /var/run/salt\-master.pid\fP
  11460. T} T{
  11461. \fBpidfile: c:\esalt\evar\erun\esalt\-master.pid\fP
  11462. T}
  11463. _
  11464. .TE
  11465. .SS Common Directories
  11466. .TS
  11467. center;
  11468. |l|l|.
  11469. _
  11470. T{
  11471. Linux Paths
  11472. T} T{
  11473. Windows Paths
  11474. T}
  11475. _
  11476. T{
  11477. \fBcachedir: /var/cache/salt/master\fP
  11478. T} T{
  11479. \fBcachedir: c:\esalt\evar\ecache\esalt\emaster\fP
  11480. T}
  11481. _
  11482. T{
  11483. \fBextension_modules: /var/cache/salt/master/extmods\fP
  11484. T} T{
  11485. \fBc:\esalt\evar\ecache\esalt\emaster\eextmods\fP
  11486. T}
  11487. _
  11488. T{
  11489. \fBpki_dir: /etc/salt/pki/master\fP
  11490. T} T{
  11491. \fBpki_dir: c:\esalt\econf\epki\emaster\fP
  11492. T}
  11493. _
  11494. T{
  11495. \fBroot_dir: /\fP
  11496. T} T{
  11497. \fBroot_dir: c:\esalt\fP
  11498. T}
  11499. _
  11500. T{
  11501. \fBsock_dir: /var/run/salt/master\fP
  11502. T} T{
  11503. \fBsock_dir: c:\esalt\evar\erun\esalt\emaster\fP
  11504. T}
  11505. _
  11506. .TE
  11507. .SS Roots
  11508. .sp
  11509. \fBfile_roots\fP
  11510. .TS
  11511. center;
  11512. |l|l|.
  11513. _
  11514. T{
  11515. Linux Paths
  11516. T} T{
  11517. Windows Paths
  11518. T}
  11519. _
  11520. T{
  11521. \fB/srv/salt\fP
  11522. T} T{
  11523. \fBc:\esalt\esrv\esalt\fP
  11524. T}
  11525. _
  11526. T{
  11527. \fB/srv/spm/salt\fP
  11528. T} T{
  11529. \fBc:\esalt\esrv\espm\esalt\fP
  11530. T}
  11531. _
  11532. .TE
  11533. .sp
  11534. \fBpillar_roots\fP
  11535. .TS
  11536. center;
  11537. |l|l|.
  11538. _
  11539. T{
  11540. Linux Paths
  11541. T} T{
  11542. Windows Paths
  11543. T}
  11544. _
  11545. T{
  11546. \fB/srv/pillar\fP
  11547. T} T{
  11548. \fBc:\esalt\esrv\epillar\fP
  11549. T}
  11550. _
  11551. T{
  11552. \fB/srv/spm/pillar\fP
  11553. T} T{
  11554. \fBc:\esalt\esrv\espm\epillar\fP
  11555. T}
  11556. _
  11557. .TE
  11558. .SS Win Repo Settings
  11559. .TS
  11560. center;
  11561. |l|l|.
  11562. _
  11563. T{
  11564. Linux Paths
  11565. T} T{
  11566. Windows Paths
  11567. T}
  11568. _
  11569. T{
  11570. \fBwinrepo_dir: /srv/salt/win/repo\fP
  11571. T} T{
  11572. \fBwinrepo_dir: c:\esalt\esrv\esalt\ewin\erepo\fP
  11573. T}
  11574. _
  11575. T{
  11576. \fBwinrepo_dir_ng: /srv/salt/win/repo\-ng\fP
  11577. T} T{
  11578. \fBwinrepo_dir_ng: c:\esalt\esrv\esalt\ewin\erepo\-ng\fP
  11579. T}
  11580. _
  11581. .TE
  11582. .SS Configuring the Salt Minion
  11583. .sp
  11584. The Salt system is amazingly simple and easy to configure. The two components
  11585. of the Salt system each have a respective configuration file. The
  11586. \fBsalt\-master\fP is configured via the master configuration file, and the
  11587. \fBsalt\-minion\fP is configured via the minion configuration file.
  11588. .sp
  11589. \fBSEE ALSO:\fP
  11590. .INDENT 0.0
  11591. .INDENT 3.5
  11592. example minion configuration file
  11593. .UNINDENT
  11594. .UNINDENT
  11595. .sp
  11596. The Salt Minion configuration is very simple. Typically, the only value that
  11597. needs to be set is the master value so the minion knows where to locate its master.
  11598. .sp
  11599. By default, the salt\-minion configuration will be in \fB/etc/salt/minion\fP\&.
  11600. A notable exception is FreeBSD, where the configuration will be in
  11601. \fB/usr/local/etc/salt/minion\fP\&.
  11602. .SS Minion Primary Configuration
  11603. .SS \fBmaster\fP
  11604. .sp
  11605. Default: \fBsalt\fP
  11606. .sp
  11607. The hostname or IP address of the master. See \fI\%ipv6\fP for IPv6
  11608. connections to the master.
  11609. .sp
  11610. Default: \fBsalt\fP
  11611. .INDENT 0.0
  11612. .INDENT 3.5
  11613. .sp
  11614. .nf
  11615. .ft C
  11616. master: salt
  11617. .ft P
  11618. .fi
  11619. .UNINDENT
  11620. .UNINDENT
  11621. .SS master:port Syntax
  11622. .sp
  11623. New in version 2015.8.0.
  11624. .sp
  11625. The \fBmaster\fP config option can also be set to use the master\(aqs IP in
  11626. conjunction with a port number by default.
  11627. .INDENT 0.0
  11628. .INDENT 3.5
  11629. .sp
  11630. .nf
  11631. .ft C
  11632. master: localhost:1234
  11633. .ft P
  11634. .fi
  11635. .UNINDENT
  11636. .UNINDENT
  11637. .sp
  11638. For IPv6 formatting with a port, remember to add brackets around the IP address
  11639. before adding the port and enclose the line in single quotes to make it a string:
  11640. .INDENT 0.0
  11641. .INDENT 3.5
  11642. .sp
  11643. .nf
  11644. .ft C
  11645. master: \(aq[2001:db8:85a3:8d3:1319:8a2e:370:7348]:1234\(aq
  11646. .ft P
  11647. .fi
  11648. .UNINDENT
  11649. .UNINDENT
  11650. .sp
  11651. \fBNOTE:\fP
  11652. .INDENT 0.0
  11653. .INDENT 3.5
  11654. If a port is specified in the \fBmaster\fP as well as \fI\%master_port\fP,
  11655. the \fBmaster_port\fP setting will be overridden by the \fBmaster\fP configuration.
  11656. .UNINDENT
  11657. .UNINDENT
  11658. .SS List of Masters Syntax
  11659. .sp
  11660. The option can also be set to a list of masters, enabling
  11661. multi\-master mode.
  11662. .INDENT 0.0
  11663. .INDENT 3.5
  11664. .sp
  11665. .nf
  11666. .ft C
  11667. master:
  11668. \- address1
  11669. \- address2
  11670. .ft P
  11671. .fi
  11672. .UNINDENT
  11673. .UNINDENT
  11674. .sp
  11675. Changed in version 2014.7.0: The master can be dynamically configured. The \fI\%master\fP value
  11676. can be set to an module function which will be executed and will assume
  11677. that the returning value is the ip or hostname of the desired master. If a
  11678. function is being specified, then the \fI\%master_type\fP option
  11679. must be set to \fBfunc\fP, to tell the minion that the value is a function to
  11680. be run and not a fully\-qualified domain name.
  11681. .INDENT 0.0
  11682. .INDENT 3.5
  11683. .sp
  11684. .nf
  11685. .ft C
  11686. master: module.function
  11687. master_type: func
  11688. .ft P
  11689. .fi
  11690. .UNINDENT
  11691. .UNINDENT
  11692. .sp
  11693. In addition, instead of using multi\-master mode, the minion can be
  11694. configured to use the list of master addresses as a failover list, trying
  11695. the first address, then the second, etc. until the minion successfully
  11696. connects. To enable this behavior, set \fI\%master_type\fP to
  11697. \fBfailover\fP:
  11698. .INDENT 0.0
  11699. .INDENT 3.5
  11700. .sp
  11701. .nf
  11702. .ft C
  11703. master:
  11704. \- address1
  11705. \- address2
  11706. master_type: failover
  11707. .ft P
  11708. .fi
  11709. .UNINDENT
  11710. .UNINDENT
  11711. .SS \fBipv6\fP
  11712. .sp
  11713. Default: \fBNone\fP
  11714. .sp
  11715. Whether the master should be connected over IPv6. By default salt minion
  11716. will try to automatically detect IPv6 connectivity to master.
  11717. .INDENT 0.0
  11718. .INDENT 3.5
  11719. .sp
  11720. .nf
  11721. .ft C
  11722. ipv6: True
  11723. .ft P
  11724. .fi
  11725. .UNINDENT
  11726. .UNINDENT
  11727. .SS \fBmaster_uri_format\fP
  11728. .sp
  11729. New in version 2015.8.0.
  11730. .sp
  11731. Specify the format in which the master address will be evaluated. Valid options
  11732. are \fBdefault\fP or \fBip_only\fP\&. If \fBip_only\fP is specified, then the master
  11733. address will not be split into IP and PORT, so be sure that only an IP (or domain
  11734. name) is set in the \fI\%master\fP configuration setting.
  11735. .INDENT 0.0
  11736. .INDENT 3.5
  11737. .sp
  11738. .nf
  11739. .ft C
  11740. master_uri_format: ip_only
  11741. .ft P
  11742. .fi
  11743. .UNINDENT
  11744. .UNINDENT
  11745. .SS \fBmaster_tops_first\fP
  11746. .sp
  11747. New in version 2018.3.0.
  11748. .sp
  11749. Default: \fBFalse\fP
  11750. .sp
  11751. SLS targets defined using the Master Tops system
  11752. are normally executed \fIafter\fP any matches defined in the Top File\&. Set this option to \fBTrue\fP to have the minion execute the
  11753. Master Tops states first.
  11754. .INDENT 0.0
  11755. .INDENT 3.5
  11756. .sp
  11757. .nf
  11758. .ft C
  11759. master_tops_first: True
  11760. .ft P
  11761. .fi
  11762. .UNINDENT
  11763. .UNINDENT
  11764. .SS \fBmaster_type\fP
  11765. .sp
  11766. New in version 2014.7.0.
  11767. .sp
  11768. Default: \fBstr\fP
  11769. .sp
  11770. The type of the \fI\%master\fP variable. Can be \fBstr\fP, \fBfailover\fP,
  11771. \fBfunc\fP or \fBdisable\fP\&.
  11772. .INDENT 0.0
  11773. .INDENT 3.5
  11774. .sp
  11775. .nf
  11776. .ft C
  11777. master_type: failover
  11778. .ft P
  11779. .fi
  11780. .UNINDENT
  11781. .UNINDENT
  11782. .sp
  11783. If this option is set to \fBfailover\fP, \fI\%master\fP must be a list of
  11784. master addresses. The minion will then try each master in the order specified
  11785. in the list until it successfully connects. \fI\%master_alive_interval\fP
  11786. must also be set, this determines how often the minion will verify the presence
  11787. of the master.
  11788. .INDENT 0.0
  11789. .INDENT 3.5
  11790. .sp
  11791. .nf
  11792. .ft C
  11793. master_type: func
  11794. .ft P
  11795. .fi
  11796. .UNINDENT
  11797. .UNINDENT
  11798. .sp
  11799. If the master needs to be dynamically assigned by executing a function instead
  11800. of reading in the static master value, set this to \fBfunc\fP\&. This can be used
  11801. to manage the minion\(aqs master setting from an execution module. By simply
  11802. changing the algorithm in the module to return a new master ip/fqdn, restart
  11803. the minion and it will connect to the new master.
  11804. .sp
  11805. As of version 2016.11.0 this option can be set to \fBdisable\fP and the minion
  11806. will never attempt to talk to the master. This is useful for running a
  11807. masterless minion daemon.
  11808. .INDENT 0.0
  11809. .INDENT 3.5
  11810. .sp
  11811. .nf
  11812. .ft C
  11813. master_type: disable
  11814. .ft P
  11815. .fi
  11816. .UNINDENT
  11817. .UNINDENT
  11818. .SS \fBmax_event_size\fP
  11819. .sp
  11820. New in version 2014.7.0.
  11821. .sp
  11822. Default: \fB1048576\fP
  11823. .sp
  11824. Passing very large events can cause the minion to consume large amounts of
  11825. memory. This value tunes the maximum size of a message allowed onto the
  11826. minion event bus. The value is expressed in bytes.
  11827. .INDENT 0.0
  11828. .INDENT 3.5
  11829. .sp
  11830. .nf
  11831. .ft C
  11832. max_event_size: 1048576
  11833. .ft P
  11834. .fi
  11835. .UNINDENT
  11836. .UNINDENT
  11837. .SS \fBenable_legacy_startup_events\fP
  11838. .sp
  11839. New in version 2019.2.0.
  11840. .sp
  11841. Default: \fBTrue\fP
  11842. .sp
  11843. When a minion starts up it sends a notification on the event bus with a tag
  11844. that looks like this: \fBsalt/minion/<minion_id>/start\fP\&. For historical reasons
  11845. the minion also sends a similar event with an event tag like this:
  11846. \fBminion_start\fP\&. This duplication can cause a lot of clutter on the event bus
  11847. when there are many minions. Set \fBenable_legacy_startup_events: False\fP in the
  11848. minion config to ensure only the \fBsalt/minion/<minion_id>/start\fP events are
  11849. sent. Beginning with the \fBSodium\fP Salt release this option will default to
  11850. \fBFalse\fP\&.
  11851. .INDENT 0.0
  11852. .INDENT 3.5
  11853. .sp
  11854. .nf
  11855. .ft C
  11856. enable_legacy_startup_events: True
  11857. .ft P
  11858. .fi
  11859. .UNINDENT
  11860. .UNINDENT
  11861. .SS \fBmaster_failback\fP
  11862. .sp
  11863. New in version 2016.3.0.
  11864. .sp
  11865. Default: \fBFalse\fP
  11866. .sp
  11867. If the minion is in multi\-master mode and the :conf_minion\(gamaster_type\(ga
  11868. configuration option is set to \fBfailover\fP, this setting can be set to \fBTrue\fP
  11869. to force the minion to fail back to the first master in the list if the first
  11870. master is back online.
  11871. .INDENT 0.0
  11872. .INDENT 3.5
  11873. .sp
  11874. .nf
  11875. .ft C
  11876. master_failback: False
  11877. .ft P
  11878. .fi
  11879. .UNINDENT
  11880. .UNINDENT
  11881. .SS \fBmaster_failback_interval\fP
  11882. .sp
  11883. New in version 2016.3.0.
  11884. .sp
  11885. Default: \fB0\fP
  11886. .sp
  11887. If the minion is in multi\-master mode, the :conf_minion\(gamaster_type\(ga configuration
  11888. is set to \fBfailover\fP, and the \fBmaster_failback\fP option is enabled, the master
  11889. failback interval can be set to ping the top master with this interval, in seconds.
  11890. .INDENT 0.0
  11891. .INDENT 3.5
  11892. .sp
  11893. .nf
  11894. .ft C
  11895. master_failback_interval: 0
  11896. .ft P
  11897. .fi
  11898. .UNINDENT
  11899. .UNINDENT
  11900. .SS \fBmaster_alive_interval\fP
  11901. .sp
  11902. Default: \fB0\fP
  11903. .sp
  11904. Configures how often, in seconds, the minion will verify that the current
  11905. master is alive and responding. The minion will try to establish a connection
  11906. to the next master in the list if it finds the existing one is dead.
  11907. .INDENT 0.0
  11908. .INDENT 3.5
  11909. .sp
  11910. .nf
  11911. .ft C
  11912. master_alive_interval: 30
  11913. .ft P
  11914. .fi
  11915. .UNINDENT
  11916. .UNINDENT
  11917. .SS \fBmaster_shuffle\fP
  11918. .sp
  11919. New in version 2014.7.0.
  11920. .sp
  11921. Deprecated since version 2019.2.0.
  11922. .sp
  11923. Default: \fBFalse\fP
  11924. .sp
  11925. \fBWARNING:\fP
  11926. .INDENT 0.0
  11927. .INDENT 3.5
  11928. This option has been deprecated in Salt \fB2019.2.0\fP\&. Please use
  11929. \fI\%random_master\fP instead.
  11930. .UNINDENT
  11931. .UNINDENT
  11932. .INDENT 0.0
  11933. .INDENT 3.5
  11934. .sp
  11935. .nf
  11936. .ft C
  11937. master_shuffle: True
  11938. .ft P
  11939. .fi
  11940. .UNINDENT
  11941. .UNINDENT
  11942. .SS \fBrandom_master\fP
  11943. .sp
  11944. New in version 2014.7.0.
  11945. .sp
  11946. Changed in version 2019.2.0: The \fI\%master_failback\fP option can be used in conjunction with
  11947. \fBrandom_master\fP to force the minion to fail back to the first master in the
  11948. list if the first master is back online. Note that \fI\%master_type\fP
  11949. must be set to \fBfailover\fP in order for the \fBmaster_failback\fP setting to
  11950. work.
  11951. .sp
  11952. Default: \fBFalse\fP
  11953. .sp
  11954. If \fI\%master\fP is a list of addresses, shuffle them before trying to
  11955. connect to distribute the minions over all available masters. This uses Python\(aqs
  11956. \fBrandom.shuffle\fP method.
  11957. .sp
  11958. If multiple masters are specified in the \(aqmaster\(aq setting as a list, the default
  11959. behavior is to always try to connect to them in the order they are listed. If
  11960. \fBrandom_master\fP is set to True, the order will be randomized instead upon Minion
  11961. startup. This can be helpful in distributing the load of many minions executing
  11962. \fBsalt\-call\fP requests, for example, from a cron job. If only one master is listed,
  11963. this setting is ignored and a warning is logged.
  11964. .INDENT 0.0
  11965. .INDENT 3.5
  11966. .sp
  11967. .nf
  11968. .ft C
  11969. random_master: True
  11970. .ft P
  11971. .fi
  11972. .UNINDENT
  11973. .UNINDENT
  11974. .sp
  11975. \fBNOTE:\fP
  11976. .INDENT 0.0
  11977. .INDENT 3.5
  11978. When the \fBfailover\fP, \fBmaster_failback\fP, and \fBrandom_master\fP options are
  11979. used together, only the "secondary masters" will be shuffled. The first master
  11980. in the list is ignored in the \fBrandom.shuffle\fP
  11981. call. See \fI\%master_failback\fP for more information.
  11982. .UNINDENT
  11983. .UNINDENT
  11984. .SS \fBretry_dns\fP
  11985. .sp
  11986. Default: \fB30\fP
  11987. .sp
  11988. Set the number of seconds to wait before attempting to resolve
  11989. the master hostname if name resolution fails. Defaults to 30 seconds.
  11990. Set to zero if the minion should shutdown and not retry.
  11991. .INDENT 0.0
  11992. .INDENT 3.5
  11993. .sp
  11994. .nf
  11995. .ft C
  11996. retry_dns: 30
  11997. .ft P
  11998. .fi
  11999. .UNINDENT
  12000. .UNINDENT
  12001. .SS \fBretry_dns_count\fP
  12002. .sp
  12003. New in version 2018.3.4.
  12004. .sp
  12005. Default: \fBNone\fP
  12006. .sp
  12007. Set the number of attempts to perform when resolving
  12008. the master hostname if name resolution fails.
  12009. By default the minion will retry indefinitely.
  12010. .INDENT 0.0
  12011. .INDENT 3.5
  12012. .sp
  12013. .nf
  12014. .ft C
  12015. retry_dns_count: 3
  12016. .ft P
  12017. .fi
  12018. .UNINDENT
  12019. .UNINDENT
  12020. .SS \fBmaster_port\fP
  12021. .sp
  12022. Default: \fB4506\fP
  12023. .sp
  12024. The port of the master ret server, this needs to coincide with the ret_port
  12025. option on the Salt master.
  12026. .INDENT 0.0
  12027. .INDENT 3.5
  12028. .sp
  12029. .nf
  12030. .ft C
  12031. master_port: 4506
  12032. .ft P
  12033. .fi
  12034. .UNINDENT
  12035. .UNINDENT
  12036. .SS \fBpublish_port\fP
  12037. .sp
  12038. Default: \fB4505\fP
  12039. .sp
  12040. The port of the master publish server, this needs to coincide with the publish_port
  12041. option on the Salt master.
  12042. .INDENT 0.0
  12043. .INDENT 3.5
  12044. .sp
  12045. .nf
  12046. .ft C
  12047. publish_port: 4505
  12048. .ft P
  12049. .fi
  12050. .UNINDENT
  12051. .UNINDENT
  12052. .SS \fBsource_interface_name\fP
  12053. .sp
  12054. New in version 2018.3.0.
  12055. .sp
  12056. The name of the interface to use when establishing the connection to the Master.
  12057. .sp
  12058. \fBNOTE:\fP
  12059. .INDENT 0.0
  12060. .INDENT 3.5
  12061. If multiple IP addresses are configured on the named interface,
  12062. the first one will be selected. In that case, for a better selection,
  12063. consider using the \fI\%source_address\fP option.
  12064. .UNINDENT
  12065. .UNINDENT
  12066. .sp
  12067. \fBNOTE:\fP
  12068. .INDENT 0.0
  12069. .INDENT 3.5
  12070. To use an IPv6 address from the named interface, make sure the option
  12071. \fI\%ipv6\fP is enabled, i.e., \fBipv6: true\fP\&.
  12072. .UNINDENT
  12073. .UNINDENT
  12074. .sp
  12075. \fBNOTE:\fP
  12076. .INDENT 0.0
  12077. .INDENT 3.5
  12078. If the interface is down, it will avoid using it, and the Minion
  12079. will bind to \fB0.0.0.0\fP (all interfaces).
  12080. .UNINDENT
  12081. .UNINDENT
  12082. .sp
  12083. \fBWARNING:\fP
  12084. .INDENT 0.0
  12085. .INDENT 3.5
  12086. This option requires modern version of the underlying libraries used by
  12087. the selected transport:
  12088. .INDENT 0.0
  12089. .IP \(bu 2
  12090. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12091. .IP \(bu 2
  12092. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12093. .UNINDENT
  12094. .UNINDENT
  12095. .UNINDENT
  12096. .sp
  12097. Configuration example:
  12098. .INDENT 0.0
  12099. .INDENT 3.5
  12100. .sp
  12101. .nf
  12102. .ft C
  12103. source_interface_name: bond0.1234
  12104. .ft P
  12105. .fi
  12106. .UNINDENT
  12107. .UNINDENT
  12108. .SS \fBsource_address\fP
  12109. .sp
  12110. New in version 2018.3.0.
  12111. .sp
  12112. The source IP address or the domain name to be used when connecting the Minion
  12113. to the Master.
  12114. See \fI\%ipv6\fP for IPv6 connections to the Master.
  12115. .sp
  12116. \fBWARNING:\fP
  12117. .INDENT 0.0
  12118. .INDENT 3.5
  12119. This option requires modern version of the underlying libraries used by
  12120. the selected transport:
  12121. .INDENT 0.0
  12122. .IP \(bu 2
  12123. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12124. .IP \(bu 2
  12125. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12126. .UNINDENT
  12127. .UNINDENT
  12128. .UNINDENT
  12129. .sp
  12130. Configuration example:
  12131. .INDENT 0.0
  12132. .INDENT 3.5
  12133. .sp
  12134. .nf
  12135. .ft C
  12136. source_address: if\-bond0\-1234.sjc.us\-west.internal
  12137. .ft P
  12138. .fi
  12139. .UNINDENT
  12140. .UNINDENT
  12141. .SS \fBsource_ret_port\fP
  12142. .sp
  12143. New in version 2018.3.0.
  12144. .sp
  12145. The source port to be used when connecting the Minion to the Master ret server.
  12146. .sp
  12147. \fBWARNING:\fP
  12148. .INDENT 0.0
  12149. .INDENT 3.5
  12150. This option requires modern version of the underlying libraries used by
  12151. the selected transport:
  12152. .INDENT 0.0
  12153. .IP \(bu 2
  12154. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12155. .IP \(bu 2
  12156. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12157. .UNINDENT
  12158. .UNINDENT
  12159. .UNINDENT
  12160. .sp
  12161. Configuration example:
  12162. .INDENT 0.0
  12163. .INDENT 3.5
  12164. .sp
  12165. .nf
  12166. .ft C
  12167. source_ret_port: 49017
  12168. .ft P
  12169. .fi
  12170. .UNINDENT
  12171. .UNINDENT
  12172. .SS \fBsource_publish_port\fP
  12173. .sp
  12174. New in version 2018.3.0.
  12175. .sp
  12176. The source port to be used when connecting the Minion to the Master publish
  12177. server.
  12178. .sp
  12179. \fBWARNING:\fP
  12180. .INDENT 0.0
  12181. .INDENT 3.5
  12182. This option requires modern version of the underlying libraries used by
  12183. the selected transport:
  12184. .INDENT 0.0
  12185. .IP \(bu 2
  12186. \fBzeromq\fP requires \fBpyzmq\fP >= 16.0.1 and \fBlibzmq\fP >= 4.1.6
  12187. .IP \(bu 2
  12188. \fBtcp\fP requires \fBtornado\fP >= 4.5
  12189. .UNINDENT
  12190. .UNINDENT
  12191. .UNINDENT
  12192. .sp
  12193. Configuration example:
  12194. .INDENT 0.0
  12195. .INDENT 3.5
  12196. .sp
  12197. .nf
  12198. .ft C
  12199. source_publish_port: 49018
  12200. .ft P
  12201. .fi
  12202. .UNINDENT
  12203. .UNINDENT
  12204. .SS \fBuser\fP
  12205. .sp
  12206. Default: \fBroot\fP
  12207. .sp
  12208. The user to run the Salt processes
  12209. .INDENT 0.0
  12210. .INDENT 3.5
  12211. .sp
  12212. .nf
  12213. .ft C
  12214. user: root
  12215. .ft P
  12216. .fi
  12217. .UNINDENT
  12218. .UNINDENT
  12219. .SS \fBsudo_user\fP
  12220. .sp
  12221. Default: \fB\(aq\(aq\fP
  12222. .sp
  12223. The user to run salt remote execution commands as via sudo. If this option is
  12224. enabled then sudo will be used to change the active user executing the remote
  12225. command. If enabled the user will need to be allowed access via the sudoers file
  12226. for the user that the salt minion is configured to run as. The most common
  12227. option would be to use the root user. If this option is set the \fBuser\fP option
  12228. should also be set to a non\-root user. If migrating from a root minion to a non
  12229. root minion the minion cache should be cleared and the minion pki directory will
  12230. need to be changed to the ownership of the new user.
  12231. .INDENT 0.0
  12232. .INDENT 3.5
  12233. .sp
  12234. .nf
  12235. .ft C
  12236. sudo_user: root
  12237. .ft P
  12238. .fi
  12239. .UNINDENT
  12240. .UNINDENT
  12241. .SS \fBpidfile\fP
  12242. .sp
  12243. Default: \fB/var/run/salt\-minion.pid\fP
  12244. .sp
  12245. The location of the daemon\(aqs process ID file
  12246. .INDENT 0.0
  12247. .INDENT 3.5
  12248. .sp
  12249. .nf
  12250. .ft C
  12251. pidfile: /var/run/salt\-minion.pid
  12252. .ft P
  12253. .fi
  12254. .UNINDENT
  12255. .UNINDENT
  12256. .SS \fBroot_dir\fP
  12257. .sp
  12258. Default: \fB/\fP
  12259. .sp
  12260. This directory is prepended to the following options: \fI\%pki_dir\fP,
  12261. \fI\%cachedir\fP, \fI\%log_file\fP, \fI\%sock_dir\fP, and
  12262. \fBpidfile\fP\&.
  12263. .INDENT 0.0
  12264. .INDENT 3.5
  12265. .sp
  12266. .nf
  12267. .ft C
  12268. root_dir: /
  12269. .ft P
  12270. .fi
  12271. .UNINDENT
  12272. .UNINDENT
  12273. .SS \fBconf_file\fP
  12274. .sp
  12275. Default: \fB/etc/salt/minion\fP
  12276. .sp
  12277. The path to the minion\(aqs configuration file.
  12278. .INDENT 0.0
  12279. .INDENT 3.5
  12280. .sp
  12281. .nf
  12282. .ft C
  12283. conf_file: /etc/salt/minion
  12284. .ft P
  12285. .fi
  12286. .UNINDENT
  12287. .UNINDENT
  12288. .SS \fBpki_dir\fP
  12289. .sp
  12290. Default: \fB/etc/salt/pki/minion\fP
  12291. .sp
  12292. The directory used to store the minion\(aqs public and private keys.
  12293. .INDENT 0.0
  12294. .INDENT 3.5
  12295. .sp
  12296. .nf
  12297. .ft C
  12298. pki_dir: /etc/salt/pki/minion
  12299. .ft P
  12300. .fi
  12301. .UNINDENT
  12302. .UNINDENT
  12303. .SS \fBid\fP
  12304. .sp
  12305. Default: the system\(aqs hostname
  12306. .sp
  12307. \fBSEE ALSO:\fP
  12308. .INDENT 0.0
  12309. .INDENT 3.5
  12310. Salt Walkthrough
  12311. .sp
  12312. The \fBSetting up a Salt Minion\fP section contains detailed
  12313. information on how the hostname is determined.
  12314. .UNINDENT
  12315. .UNINDENT
  12316. .sp
  12317. Explicitly declare the id for this minion to use. Since Salt uses detached ids
  12318. it is possible to run multiple minions on the same machine but with different
  12319. ids.
  12320. .INDENT 0.0
  12321. .INDENT 3.5
  12322. .sp
  12323. .nf
  12324. .ft C
  12325. id: foo.bar.com
  12326. .ft P
  12327. .fi
  12328. .UNINDENT
  12329. .UNINDENT
  12330. .SS \fBminion_id_caching\fP
  12331. .sp
  12332. New in version 0.17.2.
  12333. .sp
  12334. Default: \fBTrue\fP
  12335. .sp
  12336. Caches the minion id to a file when the minion\(aqs \fI\%id\fP is not
  12337. statically defined in the minion config. This setting prevents potential
  12338. problems when automatic minion id resolution changes, which can cause the
  12339. minion to lose connection with the master. To turn off minion id caching,
  12340. set this config to \fBFalse\fP\&.
  12341. .sp
  12342. For more information, please see \fI\%Issue #7558\fP and \fI\%Pull Request #8488\fP\&.
  12343. .INDENT 0.0
  12344. .INDENT 3.5
  12345. .sp
  12346. .nf
  12347. .ft C
  12348. minion_id_caching: True
  12349. .ft P
  12350. .fi
  12351. .UNINDENT
  12352. .UNINDENT
  12353. .SS \fBappend_domain\fP
  12354. .sp
  12355. Default: \fBNone\fP
  12356. .sp
  12357. Append a domain to a hostname in the event that it does not exist. This is
  12358. useful for systems where \fBsocket.getfqdn()\fP does not actually result in a
  12359. FQDN (for instance, Solaris).
  12360. .INDENT 0.0
  12361. .INDENT 3.5
  12362. .sp
  12363. .nf
  12364. .ft C
  12365. append_domain: foo.org
  12366. .ft P
  12367. .fi
  12368. .UNINDENT
  12369. .UNINDENT
  12370. .SS \fBminion_id_remove_domain\fP
  12371. .sp
  12372. New in version 3000.
  12373. .sp
  12374. Default: \fBFalse\fP
  12375. .sp
  12376. Remove a domain when the minion id is generated as a fully qualified domain
  12377. name (either by the user provided \fBid_function\fP, or by Salt). This is useful
  12378. when the minions shall be named like hostnames. Can be a single domain (to
  12379. prevent name clashes), or True, to remove all domains.
  12380. .INDENT 0.0
  12381. .TP
  12382. .B Examples:
  12383. .INDENT 7.0
  12384. .IP \(bu 2
  12385. minion_id_remove_domain = foo.org
  12386. \- FQDN = king_bob.foo.org \-\-> minion_id = king_bob
  12387. \- FQDN = king_bob.bar.org \-\-> minion_id = king_bob.bar.org
  12388. .IP \(bu 2
  12389. minion_id_remove_domain = True
  12390. \- FQDN = king_bob.foo.org \-\-> minion_id = king_bob
  12391. \- FQDN = king_bob.bar.org \-\-> minion_id = king_bob
  12392. .UNINDENT
  12393. .UNINDENT
  12394. .sp
  12395. For more information, please see \fI\%issue #49212\fP and \fI\%PR #49378\fP\&.
  12396. .INDENT 0.0
  12397. .INDENT 3.5
  12398. .sp
  12399. .nf
  12400. .ft C
  12401. minion_id_remove_domain: foo.org
  12402. .ft P
  12403. .fi
  12404. .UNINDENT
  12405. .UNINDENT
  12406. .SS \fBminion_id_lowercase\fP
  12407. .sp
  12408. Default: \fBFalse\fP
  12409. .sp
  12410. Convert minion id to lowercase when it is being generated. Helpful when some hosts
  12411. get the minion id in uppercase. Cached ids will remain the same and not converted.
  12412. .INDENT 0.0
  12413. .INDENT 3.5
  12414. .sp
  12415. .nf
  12416. .ft C
  12417. minion_id_lowercase: True
  12418. .ft P
  12419. .fi
  12420. .UNINDENT
  12421. .UNINDENT
  12422. .SS \fBcachedir\fP
  12423. .sp
  12424. Default: \fB/var/cache/salt/minion\fP
  12425. .sp
  12426. The location for minion cache data.
  12427. .sp
  12428. This directory may contain sensitive data and should be protected accordingly.
  12429. .INDENT 0.0
  12430. .INDENT 3.5
  12431. .sp
  12432. .nf
  12433. .ft C
  12434. cachedir: /var/cache/salt/minion
  12435. .ft P
  12436. .fi
  12437. .UNINDENT
  12438. .UNINDENT
  12439. .SS \fBcolor_theme\fP
  12440. .sp
  12441. Default: \fB""\fP
  12442. .sp
  12443. Specifies a path to the color theme to use for colored command line output.
  12444. .INDENT 0.0
  12445. .INDENT 3.5
  12446. .sp
  12447. .nf
  12448. .ft C
  12449. color_theme: /etc/salt/color_theme
  12450. .ft P
  12451. .fi
  12452. .UNINDENT
  12453. .UNINDENT
  12454. .SS \fBappend_minionid_config_dirs\fP
  12455. .sp
  12456. Default: \fB[]\fP (the empty list) for regular minions, \fB[\(aqcachedir\(aq]\fP for proxy minions.
  12457. .sp
  12458. Append minion_id to these configuration directories. Helps with multiple proxies
  12459. and minions running on the same machine. Allowed elements in the list:
  12460. \fBpki_dir\fP, \fBcachedir\fP, \fBextension_modules\fP\&.
  12461. Normally not needed unless running several proxies and/or minions on the same machine.
  12462. .INDENT 0.0
  12463. .INDENT 3.5
  12464. .sp
  12465. .nf
  12466. .ft C
  12467. append_minionid_config_dirs:
  12468. \- pki_dir
  12469. \- cachedir
  12470. .ft P
  12471. .fi
  12472. .UNINDENT
  12473. .UNINDENT
  12474. .SS \fBverify_env\fP
  12475. .sp
  12476. Default: \fBTrue\fP
  12477. .sp
  12478. Verify and set permissions on configuration directories at startup.
  12479. .INDENT 0.0
  12480. .INDENT 3.5
  12481. .sp
  12482. .nf
  12483. .ft C
  12484. verify_env: True
  12485. .ft P
  12486. .fi
  12487. .UNINDENT
  12488. .UNINDENT
  12489. .sp
  12490. \fBNOTE:\fP
  12491. .INDENT 0.0
  12492. .INDENT 3.5
  12493. When set to \fBTrue\fP the verify_env option requires WRITE access to the
  12494. configuration directory (/etc/salt/). In certain situations such as
  12495. mounting /etc/salt/ as read\-only for templating this will create a stack
  12496. trace when \fBstate.apply\fP is called.
  12497. .UNINDENT
  12498. .UNINDENT
  12499. .SS \fBcache_jobs\fP
  12500. .sp
  12501. Default: \fBFalse\fP
  12502. .sp
  12503. The minion can locally cache the return data from jobs sent to it, this can be
  12504. a good way to keep track of the minion side of the jobs the minion has
  12505. executed. By default this feature is disabled, to enable set cache_jobs to
  12506. \fBTrue\fP\&.
  12507. .INDENT 0.0
  12508. .INDENT 3.5
  12509. .sp
  12510. .nf
  12511. .ft C
  12512. cache_jobs: False
  12513. .ft P
  12514. .fi
  12515. .UNINDENT
  12516. .UNINDENT
  12517. .SS \fBgrains\fP
  12518. .sp
  12519. Default: (empty)
  12520. .sp
  12521. \fBSEE ALSO:\fP
  12522. .INDENT 0.0
  12523. .INDENT 3.5
  12524. static\-custom\-grains
  12525. .UNINDENT
  12526. .UNINDENT
  12527. .sp
  12528. Statically assigns grains to the minion.
  12529. .INDENT 0.0
  12530. .INDENT 3.5
  12531. .sp
  12532. .nf
  12533. .ft C
  12534. grains:
  12535. roles:
  12536. \- webserver
  12537. \- memcache
  12538. deployment: datacenter4
  12539. cabinet: 13
  12540. cab_u: 14\-15
  12541. .ft P
  12542. .fi
  12543. .UNINDENT
  12544. .UNINDENT
  12545. .SS \fBgrains_blacklist\fP
  12546. .sp
  12547. Default: \fB[]\fP
  12548. .sp
  12549. Each grains key will be compared against each of the expressions in this list.
  12550. Any keys which match will be filtered from the grains. Exact matches, glob
  12551. matches, and regular expressions are supported.
  12552. .sp
  12553. \fBNOTE:\fP
  12554. .INDENT 0.0
  12555. .INDENT 3.5
  12556. Some states and execution modules depend on grains. Filtering may cause
  12557. them to be unavailable or run unreliably.
  12558. .UNINDENT
  12559. .UNINDENT
  12560. .sp
  12561. New in version 3000.
  12562. .INDENT 0.0
  12563. .INDENT 3.5
  12564. .sp
  12565. .nf
  12566. .ft C
  12567. grains_blacklist:
  12568. \- cpu_flags
  12569. \- zmq*
  12570. \- ipv[46]
  12571. .ft P
  12572. .fi
  12573. .UNINDENT
  12574. .UNINDENT
  12575. .SS \fBgrains_cache\fP
  12576. .sp
  12577. Default: \fBFalse\fP
  12578. .sp
  12579. The minion can locally cache grain data instead of refreshing the data
  12580. each time the grain is referenced. By default this feature is disabled,
  12581. to enable set \fBgrains_cache\fP to \fBTrue\fP\&.
  12582. .INDENT 0.0
  12583. .INDENT 3.5
  12584. .sp
  12585. .nf
  12586. .ft C
  12587. grains_cache: False
  12588. .ft P
  12589. .fi
  12590. .UNINDENT
  12591. .UNINDENT
  12592. .SS \fBgrains_cache_expiration\fP
  12593. .sp
  12594. Default: \fB300\fP
  12595. .sp
  12596. Grains cache expiration, in seconds. If the cache file is older than this number
  12597. of seconds then the grains cache will be dumped and fully re\-populated with
  12598. fresh data. Defaults to 5 minutes. Will have no effect if
  12599. \fI\%grains_cache\fP is not enabled.
  12600. .INDENT 0.0
  12601. .INDENT 3.5
  12602. .sp
  12603. .nf
  12604. .ft C
  12605. grains_cache_expiration: 300
  12606. .ft P
  12607. .fi
  12608. .UNINDENT
  12609. .UNINDENT
  12610. .SS \fBgrains_deep_merge\fP
  12611. .sp
  12612. New in version 2016.3.0.
  12613. .sp
  12614. Default: \fBFalse\fP
  12615. .sp
  12616. The grains can be merged, instead of overridden, using this option.
  12617. This allows custom grains to defined different subvalues of a dictionary
  12618. grain. By default this feature is disabled, to enable set grains_deep_merge
  12619. to \fBTrue\fP\&.
  12620. .INDENT 0.0
  12621. .INDENT 3.5
  12622. .sp
  12623. .nf
  12624. .ft C
  12625. grains_deep_merge: False
  12626. .ft P
  12627. .fi
  12628. .UNINDENT
  12629. .UNINDENT
  12630. .sp
  12631. For example, with these custom grains functions:
  12632. .INDENT 0.0
  12633. .INDENT 3.5
  12634. .sp
  12635. .nf
  12636. .ft C
  12637. def custom1_k1():
  12638. return {\(aqcustom1\(aq: {\(aqk1\(aq: \(aqv1\(aq}}
  12639. def custom1_k2():
  12640. return {\(aqcustom1\(aq: {\(aqk2\(aq: \(aqv2\(aq}}
  12641. .ft P
  12642. .fi
  12643. .UNINDENT
  12644. .UNINDENT
  12645. .sp
  12646. Without \fBgrains_deep_merge\fP, the result would be:
  12647. .INDENT 0.0
  12648. .INDENT 3.5
  12649. .sp
  12650. .nf
  12651. .ft C
  12652. custom1:
  12653. k1: v1
  12654. .ft P
  12655. .fi
  12656. .UNINDENT
  12657. .UNINDENT
  12658. .sp
  12659. With \fBgrains_deep_merge\fP, the result will be:
  12660. .INDENT 0.0
  12661. .INDENT 3.5
  12662. .sp
  12663. .nf
  12664. .ft C
  12665. custom1:
  12666. k1: v1
  12667. k2: v2
  12668. .ft P
  12669. .fi
  12670. .UNINDENT
  12671. .UNINDENT
  12672. .SS \fBgrains_refresh_every\fP
  12673. .sp
  12674. Default: \fB0\fP
  12675. .sp
  12676. The \fBgrains_refresh_every\fP setting allows for a minion to periodically
  12677. check its grains to see if they have changed and, if so, to inform the master
  12678. of the new grains. This operation is moderately expensive, therefore care
  12679. should be taken not to set this value too low.
  12680. .sp
  12681. Note: This value is expressed in minutes.
  12682. .sp
  12683. A value of 10 minutes is a reasonable default.
  12684. .INDENT 0.0
  12685. .INDENT 3.5
  12686. .sp
  12687. .nf
  12688. .ft C
  12689. grains_refresh_every: 0
  12690. .ft P
  12691. .fi
  12692. .UNINDENT
  12693. .UNINDENT
  12694. .SS \fBmetadata_server_grains\fP
  12695. .sp
  12696. New in version 2017.7.0.
  12697. .sp
  12698. Default: \fBFalse\fP
  12699. .sp
  12700. Set this option to enable gathering of cloud metadata from
  12701. \fBhttp://169.254.169.254/latest\fP for use in grains (see \fBhere\fP for more information).
  12702. .INDENT 0.0
  12703. .INDENT 3.5
  12704. .sp
  12705. .nf
  12706. .ft C
  12707. metadata_server_grains: True
  12708. .ft P
  12709. .fi
  12710. .UNINDENT
  12711. .UNINDENT
  12712. .SS \fBfibre_channel_grains\fP
  12713. .sp
  12714. Default: \fBFalse\fP
  12715. .sp
  12716. The \fBfibre_channel_grains\fP setting will enable the \fBfc_wwn\fP grain for
  12717. Fibre Channel WWN\(aqs on the minion. Since this grain is expensive, it is
  12718. disabled by default.
  12719. .INDENT 0.0
  12720. .INDENT 3.5
  12721. .sp
  12722. .nf
  12723. .ft C
  12724. fibre_channel_grains: True
  12725. .ft P
  12726. .fi
  12727. .UNINDENT
  12728. .UNINDENT
  12729. .SS \fBiscsi_grains\fP
  12730. .sp
  12731. Default: \fBFalse\fP
  12732. .sp
  12733. The \fBiscsi_grains\fP setting will enable the \fBiscsi_iqn\fP grain on the
  12734. minion. Since this grain is expensive, it is disabled by default.
  12735. .INDENT 0.0
  12736. .INDENT 3.5
  12737. .sp
  12738. .nf
  12739. .ft C
  12740. iscsi_grains: True
  12741. .ft P
  12742. .fi
  12743. .UNINDENT
  12744. .UNINDENT
  12745. .SS \fBnvme_grains\fP
  12746. .sp
  12747. Default: \fBFalse\fP
  12748. .sp
  12749. The \fBnvme_grains\fP setting will enable the \fBnvme_nqn\fP grain on the
  12750. minion. Since this grain is expensive, it is disabled by default.
  12751. .INDENT 0.0
  12752. .INDENT 3.5
  12753. .sp
  12754. .nf
  12755. .ft C
  12756. nvme_grains: True
  12757. .ft P
  12758. .fi
  12759. .UNINDENT
  12760. .UNINDENT
  12761. .SS \fBmine_enabled\fP
  12762. .sp
  12763. New in version 2015.8.10.
  12764. .sp
  12765. Default: \fBTrue\fP
  12766. .sp
  12767. Determines whether or not the salt minion should run scheduled mine updates. If this is set to
  12768. False then the mine update function will not get added to the scheduler for the minion.
  12769. .INDENT 0.0
  12770. .INDENT 3.5
  12771. .sp
  12772. .nf
  12773. .ft C
  12774. mine_enabled: True
  12775. .ft P
  12776. .fi
  12777. .UNINDENT
  12778. .UNINDENT
  12779. .SS \fBmine_return_job\fP
  12780. .sp
  12781. New in version 2015.8.10.
  12782. .sp
  12783. Default: \fBFalse\fP
  12784. .sp
  12785. Determines whether or not scheduled mine updates should be accompanied by a job
  12786. return for the job cache.
  12787. .INDENT 0.0
  12788. .INDENT 3.5
  12789. .sp
  12790. .nf
  12791. .ft C
  12792. mine_return_job: False
  12793. .ft P
  12794. .fi
  12795. .UNINDENT
  12796. .UNINDENT
  12797. .SS \fBmine_functions\fP
  12798. .sp
  12799. Default: Empty
  12800. .sp
  12801. Designate which functions should be executed at mine_interval intervals on each minion.
  12802. See this documentation on the Salt Mine for more information.
  12803. Note these can be defined in the pillar for a minion as well.
  12804. .INDENT 0.0
  12805. .INDENT 3.5
  12806. example minion configuration file
  12807. .UNINDENT
  12808. .UNINDENT
  12809. .INDENT 0.0
  12810. .INDENT 3.5
  12811. .sp
  12812. .nf
  12813. .ft C
  12814. mine_functions:
  12815. test.ping: []
  12816. network.ip_addrs:
  12817. interface: eth0
  12818. cidr: \(aq10.0.0.0/8\(aq
  12819. .ft P
  12820. .fi
  12821. .UNINDENT
  12822. .UNINDENT
  12823. .SS \fBmine_interval\fP
  12824. .sp
  12825. Default: \fB60\fP
  12826. .sp
  12827. The number of minutes between mine updates.
  12828. .INDENT 0.0
  12829. .INDENT 3.5
  12830. .sp
  12831. .nf
  12832. .ft C
  12833. mine_interval: 60
  12834. .ft P
  12835. .fi
  12836. .UNINDENT
  12837. .UNINDENT
  12838. .SS \fBsock_dir\fP
  12839. .sp
  12840. Default: \fB/var/run/salt/minion\fP
  12841. .sp
  12842. The directory where Unix sockets will be kept.
  12843. .INDENT 0.0
  12844. .INDENT 3.5
  12845. .sp
  12846. .nf
  12847. .ft C
  12848. sock_dir: /var/run/salt/minion
  12849. .ft P
  12850. .fi
  12851. .UNINDENT
  12852. .UNINDENT
  12853. .SS \fBenable_gpu_grains\fP
  12854. .sp
  12855. Default: \fBTrue\fP
  12856. .sp
  12857. Enable GPU hardware data for your master. Be aware that the minion can
  12858. take a while to start up when lspci and/or dmidecode is used to populate the
  12859. grains for the minion, so this can be set to \fBFalse\fP if you do not need these
  12860. grains.
  12861. .INDENT 0.0
  12862. .INDENT 3.5
  12863. .sp
  12864. .nf
  12865. .ft C
  12866. enable_gpu_grains: False
  12867. .ft P
  12868. .fi
  12869. .UNINDENT
  12870. .UNINDENT
  12871. .SS \fBoutputter_dirs\fP
  12872. .sp
  12873. Default: \fB[]\fP
  12874. .sp
  12875. A list of additional directories to search for salt outputters in.
  12876. .INDENT 0.0
  12877. .INDENT 3.5
  12878. .sp
  12879. .nf
  12880. .ft C
  12881. outputter_dirs: []
  12882. .ft P
  12883. .fi
  12884. .UNINDENT
  12885. .UNINDENT
  12886. .SS \fBbackup_mode\fP
  12887. .sp
  12888. Default: \fB\(aq\(aq\fP
  12889. .sp
  12890. Make backups of files replaced by \fBfile.managed\fP and \fBfile.recurse\fP state modules under
  12891. \fI\%cachedir\fP in \fBfile_backup\fP subdirectory preserving original paths.
  12892. Refer to File State Backups documentation for more details.
  12893. .INDENT 0.0
  12894. .INDENT 3.5
  12895. .sp
  12896. .nf
  12897. .ft C
  12898. backup_mode: minion
  12899. .ft P
  12900. .fi
  12901. .UNINDENT
  12902. .UNINDENT
  12903. .SS \fBacceptance_wait_time\fP
  12904. .sp
  12905. Default: \fB10\fP
  12906. .sp
  12907. The number of seconds to wait until attempting to re\-authenticate with the
  12908. master.
  12909. .INDENT 0.0
  12910. .INDENT 3.5
  12911. .sp
  12912. .nf
  12913. .ft C
  12914. acceptance_wait_time: 10
  12915. .ft P
  12916. .fi
  12917. .UNINDENT
  12918. .UNINDENT
  12919. .SS \fBacceptance_wait_time_max\fP
  12920. .sp
  12921. Default: \fB0\fP
  12922. .sp
  12923. The maximum number of seconds to wait until attempting to re\-authenticate
  12924. with the master. If set, the wait will increase by \fI\%acceptance_wait_time\fP
  12925. seconds each iteration.
  12926. .INDENT 0.0
  12927. .INDENT 3.5
  12928. .sp
  12929. .nf
  12930. .ft C
  12931. acceptance_wait_time_max: 0
  12932. .ft P
  12933. .fi
  12934. .UNINDENT
  12935. .UNINDENT
  12936. .SS \fBrejected_retry\fP
  12937. .sp
  12938. Default: \fBFalse\fP
  12939. .sp
  12940. If the master rejects the minion\(aqs public key, retry instead of exiting.
  12941. Rejected keys will be handled the same as waiting on acceptance.
  12942. .INDENT 0.0
  12943. .INDENT 3.5
  12944. .sp
  12945. .nf
  12946. .ft C
  12947. rejected_retry: False
  12948. .ft P
  12949. .fi
  12950. .UNINDENT
  12951. .UNINDENT
  12952. .SS \fBrandom_reauth_delay\fP
  12953. .sp
  12954. Default: \fB10\fP
  12955. .sp
  12956. When the master key changes, the minion will try to re\-auth itself to
  12957. receive the new master key. In larger environments this can cause a syn\-flood
  12958. on the master because all minions try to re\-auth immediately. To prevent this
  12959. and have a minion wait for a random amount of time, use this optional
  12960. parameter. The wait\-time will be a random number of seconds between
  12961. 0 and the defined value.
  12962. .INDENT 0.0
  12963. .INDENT 3.5
  12964. .sp
  12965. .nf
  12966. .ft C
  12967. random_reauth_delay: 60
  12968. .ft P
  12969. .fi
  12970. .UNINDENT
  12971. .UNINDENT
  12972. .SS \fBmaster_tries\fP
  12973. .sp
  12974. New in version 2016.3.0.
  12975. .sp
  12976. Default: \fB1\fP
  12977. .sp
  12978. The number of attempts to connect to a master before giving up. Set this to
  12979. \fB\-1\fP for unlimited attempts. This allows for a master to have downtime and the
  12980. minion to reconnect to it later when it comes back up. In \(aqfailover\(aq mode, which
  12981. is set in the \fI\%master_type\fP configuration, this value is the number
  12982. of attempts for each set of masters. In this mode, it will cycle through the list
  12983. of masters for each attempt.
  12984. .sp
  12985. \fBmaster_tries\fP is different than \fI\%auth_tries\fP because \fBauth_tries\fP
  12986. attempts to retry auth attempts with a single master. \fBauth_tries\fP is under the
  12987. assumption that you can connect to the master but not gain authorization from it.
  12988. \fBmaster_tries\fP will still cycle through all of the masters in a given try, so it
  12989. is appropriate if you expect occasional downtime from the master(s).
  12990. .INDENT 0.0
  12991. .INDENT 3.5
  12992. .sp
  12993. .nf
  12994. .ft C
  12995. master_tries: 1
  12996. .ft P
  12997. .fi
  12998. .UNINDENT
  12999. .UNINDENT
  13000. .SS \fBauth_tries\fP
  13001. .sp
  13002. New in version 2014.7.0.
  13003. .sp
  13004. Default: \fB7\fP
  13005. .sp
  13006. The number of attempts to authenticate to a master before giving up. Or, more
  13007. technically, the number of consecutive SaltReqTimeoutErrors that are acceptable
  13008. when trying to authenticate to the master.
  13009. .INDENT 0.0
  13010. .INDENT 3.5
  13011. .sp
  13012. .nf
  13013. .ft C
  13014. auth_tries: 7
  13015. .ft P
  13016. .fi
  13017. .UNINDENT
  13018. .UNINDENT
  13019. .SS \fBauth_timeout\fP
  13020. .sp
  13021. New in version 2014.7.0.
  13022. .sp
  13023. Default: \fB60\fP
  13024. .sp
  13025. When waiting for a master to accept the minion\(aqs public key, salt will
  13026. continuously attempt to reconnect until successful. This is the timeout value,
  13027. in seconds, for each individual attempt. After this timeout expires, the minion
  13028. will wait for \fI\%acceptance_wait_time\fP seconds before trying again.
  13029. Unless your master is under unusually heavy load, this should be left at the
  13030. default.
  13031. .INDENT 0.0
  13032. .INDENT 3.5
  13033. .sp
  13034. .nf
  13035. .ft C
  13036. auth_timeout: 60
  13037. .ft P
  13038. .fi
  13039. .UNINDENT
  13040. .UNINDENT
  13041. .SS \fBauth_safemode\fP
  13042. .sp
  13043. New in version 2014.7.0.
  13044. .sp
  13045. Default: \fBFalse\fP
  13046. .sp
  13047. If authentication fails due to SaltReqTimeoutError during a ping_interval,
  13048. this setting, when set to \fBTrue\fP, will cause a sub\-minion process to
  13049. restart.
  13050. .INDENT 0.0
  13051. .INDENT 3.5
  13052. .sp
  13053. .nf
  13054. .ft C
  13055. auth_safemode: False
  13056. .ft P
  13057. .fi
  13058. .UNINDENT
  13059. .UNINDENT
  13060. .SS \fBping_interval\fP
  13061. .sp
  13062. Default: \fB0\fP
  13063. .sp
  13064. Instructs the minion to ping its master(s) every n number of minutes. Used
  13065. primarily as a mitigation technique against minion disconnects.
  13066. .INDENT 0.0
  13067. .INDENT 3.5
  13068. .sp
  13069. .nf
  13070. .ft C
  13071. ping_interval: 0
  13072. .ft P
  13073. .fi
  13074. .UNINDENT
  13075. .UNINDENT
  13076. .SS \fBrandom_startup_delay\fP
  13077. .sp
  13078. Default: \fB0\fP
  13079. .sp
  13080. The maximum bound for an interval in which a minion will randomly sleep upon starting
  13081. up prior to attempting to connect to a master. This can be used to splay connection attempts
  13082. for cases where many minions starting up at once may place undue load on a master.
  13083. .sp
  13084. For example, setting this to \fB5\fP will tell a minion to sleep for a value between \fB0\fP
  13085. and \fB5\fP seconds.
  13086. .INDENT 0.0
  13087. .INDENT 3.5
  13088. .sp
  13089. .nf
  13090. .ft C
  13091. random_startup_delay: 5
  13092. .ft P
  13093. .fi
  13094. .UNINDENT
  13095. .UNINDENT
  13096. .SS \fBrecon_default\fP
  13097. .sp
  13098. Default: \fB1000\fP
  13099. .sp
  13100. The interval in milliseconds that the socket should wait before trying to
  13101. reconnect to the master (1000ms = 1 second).
  13102. .INDENT 0.0
  13103. .INDENT 3.5
  13104. .sp
  13105. .nf
  13106. .ft C
  13107. recon_default: 1000
  13108. .ft P
  13109. .fi
  13110. .UNINDENT
  13111. .UNINDENT
  13112. .SS \fBrecon_max\fP
  13113. .sp
  13114. Default: \fB10000\fP
  13115. .sp
  13116. The maximum time a socket should wait. Each interval the time to wait is calculated
  13117. by doubling the previous time. If recon_max is reached, it starts again at
  13118. the recon_default.
  13119. .INDENT 0.0
  13120. .TP
  13121. .B Short example:
  13122. .INDENT 7.0
  13123. .IP \(bu 2
  13124. reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  13125. .IP \(bu 2
  13126. reconnect 2: \(aqrecon_default\(aq * 2
  13127. .IP \(bu 2
  13128. reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  13129. .IP \(bu 2
  13130. reconnect 4: value from previous interval * 2
  13131. .IP \(bu 2
  13132. reconnect 5: value from previous interval * 2
  13133. .IP \(bu 2
  13134. reconnect x: if value >= recon_max, it starts again with recon_default
  13135. .UNINDENT
  13136. .UNINDENT
  13137. .INDENT 0.0
  13138. .INDENT 3.5
  13139. .sp
  13140. .nf
  13141. .ft C
  13142. recon_max: 10000
  13143. .ft P
  13144. .fi
  13145. .UNINDENT
  13146. .UNINDENT
  13147. .SS \fBrecon_randomize\fP
  13148. .sp
  13149. Default: \fBTrue\fP
  13150. .sp
  13151. Generate a random wait time on minion start. The wait time will be a random value
  13152. between recon_default and recon_default + recon_max. Having all minions reconnect
  13153. with the same recon_default and recon_max value kind of defeats the purpose of being
  13154. able to change these settings. If all minions have the same values and the setup is
  13155. quite large (several thousand minions), they will still flood the master. The desired
  13156. behavior is to have time\-frame within all minions try to reconnect.
  13157. .INDENT 0.0
  13158. .INDENT 3.5
  13159. .sp
  13160. .nf
  13161. .ft C
  13162. recon_randomize: True
  13163. .ft P
  13164. .fi
  13165. .UNINDENT
  13166. .UNINDENT
  13167. .SS \fBloop_interval\fP
  13168. .sp
  13169. Default: \fB1\fP
  13170. .sp
  13171. The loop_interval sets how long in seconds the minion will wait between
  13172. evaluating the scheduler and running cleanup tasks. This defaults to 1
  13173. second on the minion scheduler.
  13174. .INDENT 0.0
  13175. .INDENT 3.5
  13176. .sp
  13177. .nf
  13178. .ft C
  13179. loop_interval: 1
  13180. .ft P
  13181. .fi
  13182. .UNINDENT
  13183. .UNINDENT
  13184. .SS \fBpub_ret\fP
  13185. .sp
  13186. Default: True
  13187. .sp
  13188. Some installations choose to start all job returns in a cache or a returner
  13189. and forgo sending the results back to a master. In this workflow, jobs
  13190. are most often executed with \-\-async from the Salt CLI and then results
  13191. are evaluated by examining job caches on the minions or any configured returners.
  13192. WARNING: Setting this to False will \fBdisable\fP returns back to the master.
  13193. .INDENT 0.0
  13194. .INDENT 3.5
  13195. .sp
  13196. .nf
  13197. .ft C
  13198. pub_ret: True
  13199. .ft P
  13200. .fi
  13201. .UNINDENT
  13202. .UNINDENT
  13203. .SS \fBreturn_retry_timer\fP
  13204. .sp
  13205. Default: \fB5\fP
  13206. .sp
  13207. The default timeout for a minion return attempt.
  13208. .INDENT 0.0
  13209. .INDENT 3.5
  13210. .sp
  13211. .nf
  13212. .ft C
  13213. return_retry_timer: 5
  13214. .ft P
  13215. .fi
  13216. .UNINDENT
  13217. .UNINDENT
  13218. .SS \fBreturn_retry_timer_max\fP
  13219. .sp
  13220. Default: \fB10\fP
  13221. .sp
  13222. The maximum timeout for a minion return attempt. If non\-zero the minion return
  13223. retry timeout will be a random int between \fBreturn_retry_timer\fP and
  13224. \fBreturn_retry_timer_max\fP
  13225. .INDENT 0.0
  13226. .INDENT 3.5
  13227. .sp
  13228. .nf
  13229. .ft C
  13230. return_retry_timer_max: 10
  13231. .ft P
  13232. .fi
  13233. .UNINDENT
  13234. .UNINDENT
  13235. .SS \fBcache_sreqs\fP
  13236. .sp
  13237. Default: \fBTrue\fP
  13238. .sp
  13239. The connection to the master ret_port is kept open. When set to False, the minion
  13240. creates a new connection for every return to the master.
  13241. .INDENT 0.0
  13242. .INDENT 3.5
  13243. .sp
  13244. .nf
  13245. .ft C
  13246. cache_sreqs: True
  13247. .ft P
  13248. .fi
  13249. .UNINDENT
  13250. .UNINDENT
  13251. .SS \fBipc_mode\fP
  13252. .sp
  13253. Default: \fBipc\fP
  13254. .sp
  13255. Windows platforms lack POSIX IPC and must rely on slower TCP based inter\-
  13256. process communications. \fBipc_mode\fP is set to \fBtcp\fP on such systems.
  13257. .INDENT 0.0
  13258. .INDENT 3.5
  13259. .sp
  13260. .nf
  13261. .ft C
  13262. ipc_mode: ipc
  13263. .ft P
  13264. .fi
  13265. .UNINDENT
  13266. .UNINDENT
  13267. .SS \fBtcp_pub_port\fP
  13268. .sp
  13269. Default: \fB4510\fP
  13270. .sp
  13271. Publish port used when \fI\%ipc_mode\fP is set to \fBtcp\fP\&.
  13272. .INDENT 0.0
  13273. .INDENT 3.5
  13274. .sp
  13275. .nf
  13276. .ft C
  13277. tcp_pub_port: 4510
  13278. .ft P
  13279. .fi
  13280. .UNINDENT
  13281. .UNINDENT
  13282. .SS \fBtcp_pull_port\fP
  13283. .sp
  13284. Default: \fB4511\fP
  13285. .sp
  13286. Pull port used when \fI\%ipc_mode\fP is set to \fBtcp\fP\&.
  13287. .INDENT 0.0
  13288. .INDENT 3.5
  13289. .sp
  13290. .nf
  13291. .ft C
  13292. tcp_pull_port: 4511
  13293. .ft P
  13294. .fi
  13295. .UNINDENT
  13296. .UNINDENT
  13297. .SS \fBtransport\fP
  13298. .sp
  13299. Default: \fBzeromq\fP
  13300. .sp
  13301. Changes the underlying transport layer. ZeroMQ is the recommended transport
  13302. while additional transport layers are under development. Supported values are
  13303. \fBzeromq\fP and \fBtcp\fP (experimental). This setting has a significant impact
  13304. on performance and should not be changed unless you know what you are doing!
  13305. .INDENT 0.0
  13306. .INDENT 3.5
  13307. .sp
  13308. .nf
  13309. .ft C
  13310. transport: zeromq
  13311. .ft P
  13312. .fi
  13313. .UNINDENT
  13314. .UNINDENT
  13315. .SS \fBsyndic_finger\fP
  13316. .sp
  13317. Default: \fB\(aq\(aq\fP
  13318. .sp
  13319. The key fingerprint of the higher\-level master for the syndic to verify it is
  13320. talking to the intended master.
  13321. .INDENT 0.0
  13322. .INDENT 3.5
  13323. .sp
  13324. .nf
  13325. .ft C
  13326. syndic_finger: \(aqab:30:65:2a:d6:9e:20:4f:d8:b2:f3:a7:d4:65:50:10\(aq
  13327. .ft P
  13328. .fi
  13329. .UNINDENT
  13330. .UNINDENT
  13331. .SS \fBhttp_connect_timeout\fP
  13332. .sp
  13333. New in version 2019.2.0.
  13334. .sp
  13335. Default: \fB20\fP
  13336. .sp
  13337. HTTP connection timeout in seconds.
  13338. Applied when fetching files using tornado back\-end.
  13339. Should be greater than overall download time.
  13340. .INDENT 0.0
  13341. .INDENT 3.5
  13342. .sp
  13343. .nf
  13344. .ft C
  13345. http_connect_timeout: 20
  13346. .ft P
  13347. .fi
  13348. .UNINDENT
  13349. .UNINDENT
  13350. .SS \fBhttp_request_timeout\fP
  13351. .sp
  13352. New in version 2015.8.0.
  13353. .sp
  13354. Default: \fB3600\fP
  13355. .sp
  13356. HTTP request timeout in seconds.
  13357. Applied when fetching files using tornado back\-end.
  13358. Should be greater than overall download time.
  13359. .INDENT 0.0
  13360. .INDENT 3.5
  13361. .sp
  13362. .nf
  13363. .ft C
  13364. http_request_timeout: 3600
  13365. .ft P
  13366. .fi
  13367. .UNINDENT
  13368. .UNINDENT
  13369. .SS \fBproxy_host\fP
  13370. .sp
  13371. Default: \fB\(aq\(aq\fP
  13372. .sp
  13373. The hostname used for HTTP proxy access.
  13374. .INDENT 0.0
  13375. .INDENT 3.5
  13376. .sp
  13377. .nf
  13378. .ft C
  13379. proxy_host: proxy.my\-domain
  13380. .ft P
  13381. .fi
  13382. .UNINDENT
  13383. .UNINDENT
  13384. .SS \fBproxy_port\fP
  13385. .sp
  13386. Default: \fB0\fP
  13387. .sp
  13388. The port number used for HTTP proxy access.
  13389. .INDENT 0.0
  13390. .INDENT 3.5
  13391. .sp
  13392. .nf
  13393. .ft C
  13394. proxy_port: 31337
  13395. .ft P
  13396. .fi
  13397. .UNINDENT
  13398. .UNINDENT
  13399. .SS \fBproxy_username\fP
  13400. .sp
  13401. Default: \fB\(aq\(aq\fP
  13402. .sp
  13403. The username used for HTTP proxy access.
  13404. .INDENT 0.0
  13405. .INDENT 3.5
  13406. .sp
  13407. .nf
  13408. .ft C
  13409. proxy_username: charon
  13410. .ft P
  13411. .fi
  13412. .UNINDENT
  13413. .UNINDENT
  13414. .SS \fBproxy_password\fP
  13415. .sp
  13416. Default: \fB\(aq\(aq\fP
  13417. .sp
  13418. The password used for HTTP proxy access.
  13419. .INDENT 0.0
  13420. .INDENT 3.5
  13421. .sp
  13422. .nf
  13423. .ft C
  13424. proxy_password: obolus
  13425. .ft P
  13426. .fi
  13427. .UNINDENT
  13428. .UNINDENT
  13429. .SS \fBno_proxy\fP
  13430. .sp
  13431. New in version 2019.2.0.
  13432. .sp
  13433. Default: \fB[]\fP
  13434. .sp
  13435. List of hosts to bypass HTTP proxy
  13436. .sp
  13437. \fBNOTE:\fP
  13438. .INDENT 0.0
  13439. .INDENT 3.5
  13440. This key does nothing unless proxy_host etc is configured, it does not
  13441. support any kind of wildcards.
  13442. .UNINDENT
  13443. .UNINDENT
  13444. .INDENT 0.0
  13445. .INDENT 3.5
  13446. .sp
  13447. .nf
  13448. .ft C
  13449. no_proxy: [ \(aq127.0.0.1\(aq, \(aqfoo.tld\(aq ]
  13450. .ft P
  13451. .fi
  13452. .UNINDENT
  13453. .UNINDENT
  13454. .SS \fBuse_yamlloader_old\fP
  13455. .sp
  13456. New in version 2019.2.1.
  13457. .sp
  13458. Default: \fBFalse\fP
  13459. .sp
  13460. Use the pre\-2019.2 YAML renderer.
  13461. Uses legacy YAML rendering to support some legacy inline data structures.
  13462. See the 2019.2.1 release notes for more details.
  13463. .INDENT 0.0
  13464. .INDENT 3.5
  13465. .sp
  13466. .nf
  13467. .ft C
  13468. use_yamlloader_old: False
  13469. .ft P
  13470. .fi
  13471. .UNINDENT
  13472. .UNINDENT
  13473. .SS Docker Configuration
  13474. .SS \fBdocker.update_mine\fP
  13475. .sp
  13476. New in version 2017.7.8,2018.3.3.
  13477. .sp
  13478. Changed in version 2019.2.0: The default value is now \fBFalse\fP
  13479. .sp
  13480. Default: \fBTrue\fP
  13481. .sp
  13482. If enabled, when containers are added, removed, stopped, started, etc., the
  13483. mine will be updated with the results of \fBdocker.ps
  13484. verbose=True all=True host=True\fP\&. This mine data is
  13485. used by \fBmine.get_docker\fP\&. Set this
  13486. option to \fBFalse\fP to keep Salt from updating the mine with this information.
  13487. .sp
  13488. \fBNOTE:\fP
  13489. .INDENT 0.0
  13490. .INDENT 3.5
  13491. This option can also be set in Grains or Pillar data, with Grains
  13492. overriding Pillar and the minion config file overriding Grains.
  13493. .UNINDENT
  13494. .UNINDENT
  13495. .sp
  13496. \fBNOTE:\fP
  13497. .INDENT 0.0
  13498. .INDENT 3.5
  13499. Disabling this will of course keep \fBmine.get_docker\fP from returning any information for a given
  13500. minion.
  13501. .UNINDENT
  13502. .UNINDENT
  13503. .INDENT 0.0
  13504. .INDENT 3.5
  13505. .sp
  13506. .nf
  13507. .ft C
  13508. docker.update_mine: False
  13509. .ft P
  13510. .fi
  13511. .UNINDENT
  13512. .UNINDENT
  13513. .SS \fBdocker.compare_container_networks\fP
  13514. .sp
  13515. New in version 2018.3.0.
  13516. .sp
  13517. Default: \fB{\(aqstatic\(aq: [\(aqAliases\(aq, \(aqLinks\(aq, \(aqIPAMConfig\(aq], \(aqautomatic\(aq: [\(aqIPAddress\(aq, \(aqGateway\(aq, \(aqGlobalIPv6Address\(aq, \(aqIPv6Gateway\(aq]}\fP
  13518. .sp
  13519. Specifies which keys are examined by
  13520. \fBdocker.compare_container_networks\fP\&.
  13521. .sp
  13522. \fBNOTE:\fP
  13523. .INDENT 0.0
  13524. .INDENT 3.5
  13525. This should not need to be modified unless new features added to Docker
  13526. result in new keys added to the network configuration which must be
  13527. compared to determine if two containers have different network configs.
  13528. This config option exists solely as a way to allow users to continue using
  13529. Salt to manage their containers after an API change, without waiting for a
  13530. new Salt release to catch up to the changes in the Docker API.
  13531. .UNINDENT
  13532. .UNINDENT
  13533. .INDENT 0.0
  13534. .INDENT 3.5
  13535. .sp
  13536. .nf
  13537. .ft C
  13538. docker.compare_container_networks:
  13539. static:
  13540. \- Aliases
  13541. \- Links
  13542. \- IPAMConfig
  13543. automatic:
  13544. \- IPAddress
  13545. \- Gateway
  13546. \- GlobalIPv6Address
  13547. \- IPv6Gateway
  13548. .ft P
  13549. .fi
  13550. .UNINDENT
  13551. .UNINDENT
  13552. .SS \fBoptimization_order\fP
  13553. .sp
  13554. Default: \fB[0, 1, 2]\fP
  13555. .sp
  13556. In cases where Salt is distributed without .py files, this option determines
  13557. the priority of optimization level(s) Salt\(aqs module loader should prefer.
  13558. .sp
  13559. \fBNOTE:\fP
  13560. .INDENT 0.0
  13561. .INDENT 3.5
  13562. This option is only supported on Python 3.5+.
  13563. .UNINDENT
  13564. .UNINDENT
  13565. .INDENT 0.0
  13566. .INDENT 3.5
  13567. .sp
  13568. .nf
  13569. .ft C
  13570. optimization_order:
  13571. \- 2
  13572. \- 0
  13573. \- 1
  13574. .ft P
  13575. .fi
  13576. .UNINDENT
  13577. .UNINDENT
  13578. .SS Minion Execution Module Management
  13579. .SS \fBdisable_modules\fP
  13580. .sp
  13581. Default: \fB[]\fP (all execution modules are enabled by default)
  13582. .sp
  13583. The event may occur in which the administrator desires that a minion should not
  13584. be able to execute a certain module.
  13585. .sp
  13586. However, the \fBsys\fP module is built into the minion and cannot be disabled.
  13587. .sp
  13588. This setting can also tune the minion. Because all modules are loaded into system
  13589. memory, disabling modules will lower the minion\(aqs memory footprint.
  13590. .sp
  13591. Modules should be specified according to their file name on the system and not by
  13592. their virtual name. For example, to disable \fBcmd\fP, use the string \fBcmdmod\fP which
  13593. corresponds to \fBsalt.modules.cmdmod\fP\&.
  13594. .INDENT 0.0
  13595. .INDENT 3.5
  13596. .sp
  13597. .nf
  13598. .ft C
  13599. disable_modules:
  13600. \- test
  13601. \- solr
  13602. .ft P
  13603. .fi
  13604. .UNINDENT
  13605. .UNINDENT
  13606. .SS \fBdisable_returners\fP
  13607. .sp
  13608. Default: \fB[]\fP (all returners are enabled by default)
  13609. .sp
  13610. If certain returners should be disabled, this is the place
  13611. .INDENT 0.0
  13612. .INDENT 3.5
  13613. .sp
  13614. .nf
  13615. .ft C
  13616. disable_returners:
  13617. \- mongo_return
  13618. .ft P
  13619. .fi
  13620. .UNINDENT
  13621. .UNINDENT
  13622. .SS \fBwhitelist_modules\fP
  13623. .sp
  13624. Default: \fB[]\fP (Module whitelisting is disabled. Adding anything to the config option
  13625. will cause only the listed modules to be enabled. Modules not in the list will
  13626. not be loaded.)
  13627. .sp
  13628. This option is the reverse of disable_modules. If enabled, only execution modules in this
  13629. list will be loaded and executed on the minion.
  13630. .sp
  13631. Note that this is a very large hammer and it can be quite difficult to keep the minion working
  13632. the way you think it should since Salt uses many modules internally itself. At a bare minimum
  13633. you need the following enabled or else the minion won\(aqt start.
  13634. .INDENT 0.0
  13635. .INDENT 3.5
  13636. .sp
  13637. .nf
  13638. .ft C
  13639. whitelist_modules:
  13640. \- cmdmod
  13641. \- test
  13642. \- config
  13643. .ft P
  13644. .fi
  13645. .UNINDENT
  13646. .UNINDENT
  13647. .SS \fBmodule_dirs\fP
  13648. .sp
  13649. Default: \fB[]\fP
  13650. .sp
  13651. A list of extra directories to search for Salt modules
  13652. .INDENT 0.0
  13653. .INDENT 3.5
  13654. .sp
  13655. .nf
  13656. .ft C
  13657. module_dirs:
  13658. \- /var/lib/salt/modules
  13659. .ft P
  13660. .fi
  13661. .UNINDENT
  13662. .UNINDENT
  13663. .SS \fBreturner_dirs\fP
  13664. .sp
  13665. Default: \fB[]\fP
  13666. .sp
  13667. A list of extra directories to search for Salt returners
  13668. .INDENT 0.0
  13669. .INDENT 3.5
  13670. .sp
  13671. .nf
  13672. .ft C
  13673. returner_dirs:
  13674. \- /var/lib/salt/returners
  13675. .ft P
  13676. .fi
  13677. .UNINDENT
  13678. .UNINDENT
  13679. .SS \fBstates_dirs\fP
  13680. .sp
  13681. Default: \fB[]\fP
  13682. .sp
  13683. A list of extra directories to search for Salt states
  13684. .INDENT 0.0
  13685. .INDENT 3.5
  13686. .sp
  13687. .nf
  13688. .ft C
  13689. states_dirs:
  13690. \- /var/lib/salt/states
  13691. .ft P
  13692. .fi
  13693. .UNINDENT
  13694. .UNINDENT
  13695. .SS \fBgrains_dirs\fP
  13696. .sp
  13697. Default: \fB[]\fP
  13698. .sp
  13699. A list of extra directories to search for Salt grains
  13700. .INDENT 0.0
  13701. .INDENT 3.5
  13702. .sp
  13703. .nf
  13704. .ft C
  13705. grains_dirs:
  13706. \- /var/lib/salt/grains
  13707. .ft P
  13708. .fi
  13709. .UNINDENT
  13710. .UNINDENT
  13711. .SS \fBrender_dirs\fP
  13712. .sp
  13713. Default: \fB[]\fP
  13714. .sp
  13715. A list of extra directories to search for Salt renderers
  13716. .INDENT 0.0
  13717. .INDENT 3.5
  13718. .sp
  13719. .nf
  13720. .ft C
  13721. render_dirs:
  13722. \- /var/lib/salt/renderers
  13723. .ft P
  13724. .fi
  13725. .UNINDENT
  13726. .UNINDENT
  13727. .SS \fButils_dirs\fP
  13728. .sp
  13729. Default: \fB[]\fP
  13730. .sp
  13731. A list of extra directories to search for Salt utilities
  13732. .INDENT 0.0
  13733. .INDENT 3.5
  13734. .sp
  13735. .nf
  13736. .ft C
  13737. utils_dirs:
  13738. \- /var/lib/salt/utils
  13739. .ft P
  13740. .fi
  13741. .UNINDENT
  13742. .UNINDENT
  13743. .SS \fBcython_enable\fP
  13744. .sp
  13745. Default: \fBFalse\fP
  13746. .sp
  13747. Set this value to true to enable auto\-loading and compiling of \fB\&.pyx\fP modules,
  13748. This setting requires that \fBgcc\fP and \fBcython\fP are installed on the minion.
  13749. .INDENT 0.0
  13750. .INDENT 3.5
  13751. .sp
  13752. .nf
  13753. .ft C
  13754. cython_enable: False
  13755. .ft P
  13756. .fi
  13757. .UNINDENT
  13758. .UNINDENT
  13759. .SS \fBenable_zip_modules\fP
  13760. .sp
  13761. New in version 2015.8.0.
  13762. .sp
  13763. Default: \fBFalse\fP
  13764. .sp
  13765. Set this value to true to enable loading of zip archives as extension modules.
  13766. This allows for packing module code with specific dependencies to avoid conflicts
  13767. and/or having to install specific modules\(aq dependencies in system libraries.
  13768. .INDENT 0.0
  13769. .INDENT 3.5
  13770. .sp
  13771. .nf
  13772. .ft C
  13773. enable_zip_modules: False
  13774. .ft P
  13775. .fi
  13776. .UNINDENT
  13777. .UNINDENT
  13778. .SS \fBproviders\fP
  13779. .sp
  13780. Default: (empty)
  13781. .sp
  13782. A module provider can be statically overwritten or extended for the minion via
  13783. the \fBproviders\fP option. This can be done on an individual basis in an
  13784. SLS file, or globally here in the minion config, like
  13785. below.
  13786. .INDENT 0.0
  13787. .INDENT 3.5
  13788. .sp
  13789. .nf
  13790. .ft C
  13791. providers:
  13792. service: systemd
  13793. .ft P
  13794. .fi
  13795. .UNINDENT
  13796. .UNINDENT
  13797. .SS \fBmodules_max_memory\fP
  13798. .sp
  13799. Default: \fB\-1\fP
  13800. .sp
  13801. Specify a max size (in bytes) for modules on import. This feature is currently
  13802. only supported on *NIX operating systems and requires psutil.
  13803. .INDENT 0.0
  13804. .INDENT 3.5
  13805. .sp
  13806. .nf
  13807. .ft C
  13808. modules_max_memory: \-1
  13809. .ft P
  13810. .fi
  13811. .UNINDENT
  13812. .UNINDENT
  13813. .SS \fBextmod_whitelist/extmod_blacklist\fP
  13814. .sp
  13815. New in version 2017.7.0.
  13816. .sp
  13817. By using this dictionary, the modules that are synced to the minion\(aqs extmod cache using \fIsaltutil.sync_*\fP can be
  13818. limited. If nothing is set to a specific type, then all modules are accepted. To block all modules of a specific type,
  13819. whitelist an empty list.
  13820. .INDENT 0.0
  13821. .INDENT 3.5
  13822. .sp
  13823. .nf
  13824. .ft C
  13825. extmod_whitelist:
  13826. modules:
  13827. \- custom_module
  13828. engines:
  13829. \- custom_engine
  13830. pillars: []
  13831. extmod_blacklist:
  13832. modules:
  13833. \- specific_module
  13834. .ft P
  13835. .fi
  13836. .UNINDENT
  13837. .UNINDENT
  13838. .sp
  13839. Valid options:
  13840. .INDENT 0.0
  13841. .INDENT 3.5
  13842. .INDENT 0.0
  13843. .IP \(bu 2
  13844. beacons
  13845. .IP \(bu 2
  13846. clouds
  13847. .IP \(bu 2
  13848. sdb
  13849. .IP \(bu 2
  13850. modules
  13851. .IP \(bu 2
  13852. states
  13853. .IP \(bu 2
  13854. grains
  13855. .IP \(bu 2
  13856. renderers
  13857. .IP \(bu 2
  13858. returners
  13859. .IP \(bu 2
  13860. proxy
  13861. .IP \(bu 2
  13862. engines
  13863. .IP \(bu 2
  13864. output
  13865. .IP \(bu 2
  13866. utils
  13867. .IP \(bu 2
  13868. pillar
  13869. .UNINDENT
  13870. .UNINDENT
  13871. .UNINDENT
  13872. .SS Top File Settings
  13873. .sp
  13874. These parameters only have an effect if running a masterless minion.
  13875. .SS \fBstate_top\fP
  13876. .sp
  13877. Default: \fBtop.sls\fP
  13878. .sp
  13879. The state system uses a "top" file to tell the minions what environment to
  13880. use and what modules to use. The state_top file is defined relative to the
  13881. root of the base environment.
  13882. .INDENT 0.0
  13883. .INDENT 3.5
  13884. .sp
  13885. .nf
  13886. .ft C
  13887. state_top: top.sls
  13888. .ft P
  13889. .fi
  13890. .UNINDENT
  13891. .UNINDENT
  13892. .SS \fBstate_top_saltenv\fP
  13893. .sp
  13894. This option has no default value. Set it to an environment name to ensure that
  13895. \fIonly\fP the top file from that environment is considered during a
  13896. highstate\&.
  13897. .sp
  13898. \fBNOTE:\fP
  13899. .INDENT 0.0
  13900. .INDENT 3.5
  13901. Using this value does not change the merging strategy. For instance, if
  13902. \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and
  13903. \fI\%state_top_saltenv\fP is set to \fBfoo\fP, then any sections for
  13904. environments other than \fBfoo\fP in the top file for the \fBfoo\fP environment
  13905. will be ignored. With \fI\%state_top_saltenv\fP set to \fBbase\fP, all
  13906. states from all environments in the \fBbase\fP top file will be applied,
  13907. while all other top files are ignored. The only way to set
  13908. \fI\%state_top_saltenv\fP to something other than \fBbase\fP and not
  13909. have the other environments in the targeted top file ignored, would be to
  13910. set \fI\%top_file_merging_strategy\fP to \fBmerge_all\fP\&.
  13911. .UNINDENT
  13912. .UNINDENT
  13913. .INDENT 0.0
  13914. .INDENT 3.5
  13915. .sp
  13916. .nf
  13917. .ft C
  13918. state_top_saltenv: dev
  13919. .ft P
  13920. .fi
  13921. .UNINDENT
  13922. .UNINDENT
  13923. .SS \fBtop_file_merging_strategy\fP
  13924. .sp
  13925. Changed in version 2016.11.0: A \fBmerge_all\fP strategy has been added.
  13926. .sp
  13927. Default: \fBmerge\fP
  13928. .sp
  13929. When no specific fileserver environment (a.k.a. \fBsaltenv\fP) has been specified
  13930. for a highstate, all environments\(aq top files are
  13931. inspected. This config option determines how the SLS targets in those top files
  13932. are handled.
  13933. .sp
  13934. When set to \fBmerge\fP, the \fBbase\fP environment\(aqs top file is evaluated first,
  13935. followed by the other environments\(aq top files. The first target expression
  13936. (e.g. \fB\(aq*\(aq\fP) for a given environment is kept, and when the same target
  13937. expression is used in a different top file evaluated later, it is ignored.
  13938. Because \fBbase\fP is evaluated first, it is authoritative. For example, if there
  13939. is a target for \fB\(aq*\(aq\fP for the \fBfoo\fP environment in both the \fBbase\fP and
  13940. \fBfoo\fP environment\(aqs top files, the one in the \fBfoo\fP environment would be
  13941. ignored. The environments will be evaluated in no specific order (aside from
  13942. \fBbase\fP coming first). For greater control over the order in which the
  13943. environments are evaluated, use \fI\%env_order\fP\&. Note that, aside from
  13944. the \fBbase\fP environment\(aqs top file, any sections in top files that do not
  13945. match that top file\(aqs environment will be ignored. So, for example, a section
  13946. for the \fBqa\fP environment would be ignored if it appears in the \fBdev\fP
  13947. environment\(aqs top file. To keep use cases like this from being ignored, use the
  13948. \fBmerge_all\fP strategy.
  13949. .sp
  13950. When set to \fBsame\fP, then for each environment, only that environment\(aqs top
  13951. file is processed, with the others being ignored. For example, only the \fBdev\fP
  13952. environment\(aqs top file will be processed for the \fBdev\fP environment, and any
  13953. SLS targets defined for \fBdev\fP in the \fBbase\fP environment\(aqs (or any other
  13954. environment\(aqs) top file will be ignored. If an environment does not have a top
  13955. file, then the top file from the \fI\%default_top\fP config parameter
  13956. will be used as a fallback.
  13957. .sp
  13958. When set to \fBmerge_all\fP, then all states in all environments in all top files
  13959. will be applied. The order in which individual SLS files will be executed will
  13960. depend on the order in which the top files were evaluated, and the environments
  13961. will be evaluated in no specific order. For greater control over the order in
  13962. which the environments are evaluated, use \fI\%env_order\fP\&.
  13963. .INDENT 0.0
  13964. .INDENT 3.5
  13965. .sp
  13966. .nf
  13967. .ft C
  13968. top_file_merging_strategy: same
  13969. .ft P
  13970. .fi
  13971. .UNINDENT
  13972. .UNINDENT
  13973. .SS \fBenv_order\fP
  13974. .sp
  13975. Default: \fB[]\fP
  13976. .sp
  13977. When \fI\%top_file_merging_strategy\fP is set to \fBmerge\fP, and no
  13978. environment is specified for a highstate, this
  13979. config option allows for the order in which top files are evaluated to be
  13980. explicitly defined.
  13981. .INDENT 0.0
  13982. .INDENT 3.5
  13983. .sp
  13984. .nf
  13985. .ft C
  13986. env_order:
  13987. \- base
  13988. \- dev
  13989. \- qa
  13990. .ft P
  13991. .fi
  13992. .UNINDENT
  13993. .UNINDENT
  13994. .SS \fBdefault_top\fP
  13995. .sp
  13996. Default: \fBbase\fP
  13997. .sp
  13998. When \fI\%top_file_merging_strategy\fP is set to \fBsame\fP, and no
  13999. environment is specified for a highstate (i.e.
  14000. \fI\%environment\fP is not set for the minion), this config option
  14001. specifies a fallback environment in which to look for a top file if an
  14002. environment lacks one.
  14003. .INDENT 0.0
  14004. .INDENT 3.5
  14005. .sp
  14006. .nf
  14007. .ft C
  14008. default_top: dev
  14009. .ft P
  14010. .fi
  14011. .UNINDENT
  14012. .UNINDENT
  14013. .SS \fBstartup_states\fP
  14014. .sp
  14015. Default: \fB\(aq\(aq\fP
  14016. .sp
  14017. States to run when the minion daemon starts. To enable, set \fBstartup_states\fP to:
  14018. .INDENT 0.0
  14019. .IP \(bu 2
  14020. \fBhighstate\fP: Execute state.highstate
  14021. .IP \(bu 2
  14022. \fBsls\fP: Read in the sls_list option and execute the named sls files
  14023. .IP \(bu 2
  14024. \fBtop\fP: Read top_file option and execute based on that file on the Master
  14025. .UNINDENT
  14026. .INDENT 0.0
  14027. .INDENT 3.5
  14028. .sp
  14029. .nf
  14030. .ft C
  14031. startup_states: \(aq\(aq
  14032. .ft P
  14033. .fi
  14034. .UNINDENT
  14035. .UNINDENT
  14036. .SS \fBsls_list\fP
  14037. .sp
  14038. Default: \fB[]\fP
  14039. .sp
  14040. List of states to run when the minion starts up if \fBstartup_states\fP is set to \fBsls\fP\&.
  14041. .INDENT 0.0
  14042. .INDENT 3.5
  14043. .sp
  14044. .nf
  14045. .ft C
  14046. sls_list:
  14047. \- edit.vim
  14048. \- hyper
  14049. .ft P
  14050. .fi
  14051. .UNINDENT
  14052. .UNINDENT
  14053. .SS \fBstart_event_grains\fP
  14054. .sp
  14055. Default: \fB[]\fP
  14056. .sp
  14057. List of grains to pass in start event when minion starts up.
  14058. .INDENT 0.0
  14059. .INDENT 3.5
  14060. .sp
  14061. .nf
  14062. .ft C
  14063. start_event_grains:
  14064. \- machine_id
  14065. \- uuid
  14066. .ft P
  14067. .fi
  14068. .UNINDENT
  14069. .UNINDENT
  14070. .SS \fBtop_file\fP
  14071. .sp
  14072. Default: \fB\(aq\(aq\fP
  14073. .sp
  14074. Top file to execute if \fBstartup_states\fP is set to \fBtop\fP\&.
  14075. .INDENT 0.0
  14076. .INDENT 3.5
  14077. .sp
  14078. .nf
  14079. .ft C
  14080. top_file: \(aq\(aq
  14081. .ft P
  14082. .fi
  14083. .UNINDENT
  14084. .UNINDENT
  14085. .SS State Management Settings
  14086. .SS \fBrenderer\fP
  14087. .sp
  14088. Default: \fBjinja|yaml\fP
  14089. .sp
  14090. The default renderer used for local state executions
  14091. .INDENT 0.0
  14092. .INDENT 3.5
  14093. .sp
  14094. .nf
  14095. .ft C
  14096. renderer: jinja|json
  14097. .ft P
  14098. .fi
  14099. .UNINDENT
  14100. .UNINDENT
  14101. .SS \fBtest\fP
  14102. .sp
  14103. Default: \fBFalse\fP
  14104. .sp
  14105. Set all state calls to only test if they are going to actually make changes
  14106. or just post what changes are going to be made.
  14107. .INDENT 0.0
  14108. .INDENT 3.5
  14109. .sp
  14110. .nf
  14111. .ft C
  14112. test: False
  14113. .ft P
  14114. .fi
  14115. .UNINDENT
  14116. .UNINDENT
  14117. .SS \fBstate_verbose\fP
  14118. .sp
  14119. Default: \fBTrue\fP
  14120. .sp
  14121. Controls the verbosity of state runs. By default, the results of all states are
  14122. returned, but setting this value to \fBFalse\fP will cause salt to only display
  14123. output for states that failed or states that have changes.
  14124. .INDENT 0.0
  14125. .INDENT 3.5
  14126. .sp
  14127. .nf
  14128. .ft C
  14129. state_verbose: True
  14130. .ft P
  14131. .fi
  14132. .UNINDENT
  14133. .UNINDENT
  14134. .SS \fBstate_output\fP
  14135. .sp
  14136. Default: \fBfull\fP
  14137. .sp
  14138. The state_output setting controls which results will be output full multi line:
  14139. .INDENT 0.0
  14140. .IP \(bu 2
  14141. \fBfull\fP, \fBterse\fP \- each state will be full/terse
  14142. .IP \(bu 2
  14143. \fBmixed\fP \- only states with errors will be full
  14144. .IP \(bu 2
  14145. \fBchanges\fP \- states with changes and errors will be full
  14146. .UNINDENT
  14147. .sp
  14148. \fBfull_id\fP, \fBmixed_id\fP, \fBchanges_id\fP and \fBterse_id\fP are also allowed;
  14149. when set, the state ID will be used as name in the output.
  14150. .INDENT 0.0
  14151. .INDENT 3.5
  14152. .sp
  14153. .nf
  14154. .ft C
  14155. state_output: full
  14156. .ft P
  14157. .fi
  14158. .UNINDENT
  14159. .UNINDENT
  14160. .SS \fBstate_output_diff\fP
  14161. .sp
  14162. Default: \fBFalse\fP
  14163. .sp
  14164. The state_output_diff setting changes whether or not the output from
  14165. successful states is returned. Useful when even the terse output of these
  14166. states is cluttering the logs. Set it to True to ignore them.
  14167. .INDENT 0.0
  14168. .INDENT 3.5
  14169. .sp
  14170. .nf
  14171. .ft C
  14172. state_output_diff: False
  14173. .ft P
  14174. .fi
  14175. .UNINDENT
  14176. .UNINDENT
  14177. .SS \fBautoload_dynamic_modules\fP
  14178. .sp
  14179. Default: \fBTrue\fP
  14180. .sp
  14181. autoload_dynamic_modules turns on automatic loading of modules found in the
  14182. environments on the master. This is turned on by default. To turn off
  14183. auto\-loading modules when states run, set this value to \fBFalse\fP\&.
  14184. .INDENT 0.0
  14185. .INDENT 3.5
  14186. .sp
  14187. .nf
  14188. .ft C
  14189. autoload_dynamic_modules: True
  14190. .ft P
  14191. .fi
  14192. .UNINDENT
  14193. .UNINDENT
  14194. .SS \fBclean_dynamic_modules\fP
  14195. .sp
  14196. Default: \fBTrue\fP
  14197. .sp
  14198. clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  14199. the dynamic modules on the master. This means that if a dynamic module is
  14200. not on the master it will be deleted from the minion. By default this is
  14201. enabled and can be disabled by changing this value to \fBFalse\fP\&.
  14202. .INDENT 0.0
  14203. .INDENT 3.5
  14204. .sp
  14205. .nf
  14206. .ft C
  14207. clean_dynamic_modules: True
  14208. .ft P
  14209. .fi
  14210. .UNINDENT
  14211. .UNINDENT
  14212. .sp
  14213. \fBNOTE:\fP
  14214. .INDENT 0.0
  14215. .INDENT 3.5
  14216. If \fBextmod_whitelist\fP is specified, modules which are not whitelisted will also be cleaned here.
  14217. .UNINDENT
  14218. .UNINDENT
  14219. .SS \fBsaltenv\fP
  14220. .sp
  14221. Changed in version 2018.3.0: Renamed from \fBenvironment\fP to \fBsaltenv\fP\&. If \fBenvironment\fP is used,
  14222. \fBsaltenv\fP will take its value. If both are used, \fBenvironment\fP will be
  14223. ignored and \fBsaltenv\fP will be used.
  14224. .sp
  14225. Normally the minion is not isolated to any single environment on the master
  14226. when running states, but the environment can be isolated on the minion side
  14227. by statically setting it. Remember that the recommended way to manage
  14228. environments is to isolate via the top file.
  14229. .INDENT 0.0
  14230. .INDENT 3.5
  14231. .sp
  14232. .nf
  14233. .ft C
  14234. saltenv: dev
  14235. .ft P
  14236. .fi
  14237. .UNINDENT
  14238. .UNINDENT
  14239. .SS \fBlock_saltenv\fP
  14240. .sp
  14241. New in version 2018.3.0.
  14242. .sp
  14243. Default: \fBFalse\fP
  14244. .sp
  14245. For purposes of running states, this option prevents using the \fBsaltenv\fP
  14246. argument to manually set the environment. This is useful to keep a minion which
  14247. has the \fI\%saltenv\fP option set to \fBdev\fP from running states from
  14248. an environment other than \fBdev\fP\&.
  14249. .INDENT 0.0
  14250. .INDENT 3.5
  14251. .sp
  14252. .nf
  14253. .ft C
  14254. lock_saltenv: True
  14255. .ft P
  14256. .fi
  14257. .UNINDENT
  14258. .UNINDENT
  14259. .SS \fBsnapper_states\fP
  14260. .sp
  14261. Default: False
  14262. .sp
  14263. The \fIsnapper_states\fP value is used to enable taking snapper snapshots before
  14264. and after salt state runs. This allows for state runs to be rolled back.
  14265. .sp
  14266. For snapper states to function properly snapper needs to be installed and
  14267. enabled.
  14268. .INDENT 0.0
  14269. .INDENT 3.5
  14270. .sp
  14271. .nf
  14272. .ft C
  14273. snapper_states: True
  14274. .ft P
  14275. .fi
  14276. .UNINDENT
  14277. .UNINDENT
  14278. .SS \fBsnapper_states_config\fP
  14279. .sp
  14280. Default: \fBroot\fP
  14281. .sp
  14282. Snapper can execute based on a snapper configuration. The configuration
  14283. needs to be set up before snapper can use it. The default configuration
  14284. is \fBroot\fP, this default makes snapper run on SUSE systems using the
  14285. default configuration set up at install time.
  14286. .INDENT 0.0
  14287. .INDENT 3.5
  14288. .sp
  14289. .nf
  14290. .ft C
  14291. snapper_states_config: root
  14292. .ft P
  14293. .fi
  14294. .UNINDENT
  14295. .UNINDENT
  14296. .SS File Directory Settings
  14297. .SS \fBfile_client\fP
  14298. .sp
  14299. Default: \fBremote\fP
  14300. .sp
  14301. The client defaults to looking on the master server for files, but can be
  14302. directed to look on the minion by setting this parameter to \fBlocal\fP\&.
  14303. .INDENT 0.0
  14304. .INDENT 3.5
  14305. .sp
  14306. .nf
  14307. .ft C
  14308. file_client: remote
  14309. .ft P
  14310. .fi
  14311. .UNINDENT
  14312. .UNINDENT
  14313. .SS \fBuse_master_when_local\fP
  14314. .sp
  14315. Default: \fBFalse\fP
  14316. .sp
  14317. When using a local \fI\%file_client\fP, this parameter is used to allow
  14318. the client to connect to a master for remote execution.
  14319. .INDENT 0.0
  14320. .INDENT 3.5
  14321. .sp
  14322. .nf
  14323. .ft C
  14324. use_master_when_local: False
  14325. .ft P
  14326. .fi
  14327. .UNINDENT
  14328. .UNINDENT
  14329. .SS \fBfile_roots\fP
  14330. .sp
  14331. Default:
  14332. .INDENT 0.0
  14333. .INDENT 3.5
  14334. .sp
  14335. .nf
  14336. .ft C
  14337. base:
  14338. \- /srv/salt
  14339. .ft P
  14340. .fi
  14341. .UNINDENT
  14342. .UNINDENT
  14343. .sp
  14344. When using a local \fI\%file_client\fP, this parameter is used to setup
  14345. the fileserver\(aqs environments. This parameter operates identically to the
  14346. \fBmaster config parameter\fP of the same name.
  14347. .INDENT 0.0
  14348. .INDENT 3.5
  14349. .sp
  14350. .nf
  14351. .ft C
  14352. file_roots:
  14353. base:
  14354. \- /srv/salt
  14355. dev:
  14356. \- /srv/salt/dev/services
  14357. \- /srv/salt/dev/states
  14358. prod:
  14359. \- /srv/salt/prod/services
  14360. \- /srv/salt/prod/states
  14361. .ft P
  14362. .fi
  14363. .UNINDENT
  14364. .UNINDENT
  14365. .SS \fBfileserver_followsymlinks\fP
  14366. .sp
  14367. New in version 2014.1.0.
  14368. .sp
  14369. Default: \fBTrue\fP
  14370. .sp
  14371. By default, the file_server follows symlinks when walking the filesystem tree.
  14372. Currently this only applies to the default roots fileserver_backend.
  14373. .INDENT 0.0
  14374. .INDENT 3.5
  14375. .sp
  14376. .nf
  14377. .ft C
  14378. fileserver_followsymlinks: True
  14379. .ft P
  14380. .fi
  14381. .UNINDENT
  14382. .UNINDENT
  14383. .SS \fBfileserver_ignoresymlinks\fP
  14384. .sp
  14385. New in version 2014.1.0.
  14386. .sp
  14387. Default: \fBFalse\fP
  14388. .sp
  14389. If you do not want symlinks to be treated as the files they are pointing to,
  14390. set \fBfileserver_ignoresymlinks\fP to \fBTrue\fP\&. By default this is set to
  14391. False. When set to \fBTrue\fP, any detected symlink while listing files on the
  14392. Master will not be returned to the Minion.
  14393. .INDENT 0.0
  14394. .INDENT 3.5
  14395. .sp
  14396. .nf
  14397. .ft C
  14398. fileserver_ignoresymlinks: False
  14399. .ft P
  14400. .fi
  14401. .UNINDENT
  14402. .UNINDENT
  14403. .SS \fBfileserver_limit_traversal\fP
  14404. .sp
  14405. New in version 2014.1.0.
  14406. .sp
  14407. Default: \fBFalse\fP
  14408. .sp
  14409. By default, the Salt fileserver recurses fully into all defined environments
  14410. to attempt to find files. To limit this behavior so that the fileserver only
  14411. traverses directories with SLS files and special Salt directories like _modules,
  14412. set \fBfileserver_limit_traversal\fP to \fBTrue\fP\&. This might be useful for
  14413. installations where a file root has a very large number of files and performance
  14414. is impacted.
  14415. .INDENT 0.0
  14416. .INDENT 3.5
  14417. .sp
  14418. .nf
  14419. .ft C
  14420. fileserver_limit_traversal: False
  14421. .ft P
  14422. .fi
  14423. .UNINDENT
  14424. .UNINDENT
  14425. .SS \fBhash_type\fP
  14426. .sp
  14427. Default: \fBsha256\fP
  14428. .sp
  14429. The hash_type is the hash to use when discovering the hash of a file on the
  14430. local fileserver. The default is sha256, but md5, sha1, sha224, sha384, and
  14431. sha512 are also supported.
  14432. .INDENT 0.0
  14433. .INDENT 3.5
  14434. .sp
  14435. .nf
  14436. .ft C
  14437. hash_type: sha256
  14438. .ft P
  14439. .fi
  14440. .UNINDENT
  14441. .UNINDENT
  14442. .SS Pillar Configuration
  14443. .SS \fBpillar_roots\fP
  14444. .sp
  14445. Default:
  14446. .INDENT 0.0
  14447. .INDENT 3.5
  14448. .sp
  14449. .nf
  14450. .ft C
  14451. base:
  14452. \- /srv/pillar
  14453. .ft P
  14454. .fi
  14455. .UNINDENT
  14456. .UNINDENT
  14457. .sp
  14458. When using a local \fI\%file_client\fP, this parameter is used to setup
  14459. the pillar environments.
  14460. .INDENT 0.0
  14461. .INDENT 3.5
  14462. .sp
  14463. .nf
  14464. .ft C
  14465. pillar_roots:
  14466. base:
  14467. \- /srv/pillar
  14468. dev:
  14469. \- /srv/pillar/dev
  14470. prod:
  14471. \- /srv/pillar/prod
  14472. .ft P
  14473. .fi
  14474. .UNINDENT
  14475. .UNINDENT
  14476. .SS \fBon_demand_ext_pillar\fP
  14477. .sp
  14478. New in version 2016.3.6,2016.11.3,2017.7.0.
  14479. .sp
  14480. Default: \fB[\(aqlibvirt\(aq, \(aqvirtkey\(aq]\fP
  14481. .sp
  14482. When using a local \fI\%file_client\fP, this option controls which
  14483. external pillars are permitted to be used on\-demand using \fBpillar.ext\fP\&.
  14484. .INDENT 0.0
  14485. .INDENT 3.5
  14486. .sp
  14487. .nf
  14488. .ft C
  14489. on_demand_ext_pillar:
  14490. \- libvirt
  14491. \- virtkey
  14492. \- git
  14493. .ft P
  14494. .fi
  14495. .UNINDENT
  14496. .UNINDENT
  14497. .sp
  14498. \fBWARNING:\fP
  14499. .INDENT 0.0
  14500. .INDENT 3.5
  14501. This will allow a masterless minion to request specific pillar data via
  14502. \fBpillar.ext\fP, and may be considered a
  14503. security risk. However, pillar data generated in this way will not affect
  14504. the in\-memory pillar data, so this risk is
  14505. limited to instances in which states/modules/etc. (built\-in or custom) rely
  14506. upon pillar data generated by \fBpillar.ext\fP\&.
  14507. .UNINDENT
  14508. .UNINDENT
  14509. .SS \fBdecrypt_pillar\fP
  14510. .sp
  14511. New in version 2017.7.0.
  14512. .sp
  14513. Default: \fB[]\fP
  14514. .sp
  14515. A list of paths to be recursively decrypted during pillar compilation.
  14516. .INDENT 0.0
  14517. .INDENT 3.5
  14518. .sp
  14519. .nf
  14520. .ft C
  14521. decrypt_pillar:
  14522. \- \(aqfoo:bar\(aq: gpg
  14523. \- \(aqlorem:ipsum:dolor\(aq
  14524. .ft P
  14525. .fi
  14526. .UNINDENT
  14527. .UNINDENT
  14528. .sp
  14529. Entries in this list can be formatted either as a simple string, or as a
  14530. key/value pair, with the key being the pillar location, and the value being the
  14531. renderer to use for pillar decryption. If the former is used, the renderer
  14532. specified by \fI\%decrypt_pillar_default\fP will be used.
  14533. .SS \fBdecrypt_pillar_delimiter\fP
  14534. .sp
  14535. New in version 2017.7.0.
  14536. .sp
  14537. Default: \fB:\fP
  14538. .sp
  14539. The delimiter used to distinguish nested data structures in the
  14540. \fI\%decrypt_pillar\fP option.
  14541. .INDENT 0.0
  14542. .INDENT 3.5
  14543. .sp
  14544. .nf
  14545. .ft C
  14546. decrypt_pillar_delimiter: \(aq|\(aq
  14547. decrypt_pillar:
  14548. \- \(aqfoo|bar\(aq: gpg
  14549. \- \(aqlorem|ipsum|dolor\(aq
  14550. .ft P
  14551. .fi
  14552. .UNINDENT
  14553. .UNINDENT
  14554. .SS \fBdecrypt_pillar_default\fP
  14555. .sp
  14556. New in version 2017.7.0.
  14557. .sp
  14558. Default: \fBgpg\fP
  14559. .sp
  14560. The default renderer used for decryption, if one is not specified for a given
  14561. pillar key in \fI\%decrypt_pillar\fP\&.
  14562. .INDENT 0.0
  14563. .INDENT 3.5
  14564. .sp
  14565. .nf
  14566. .ft C
  14567. decrypt_pillar_default: my_custom_renderer
  14568. .ft P
  14569. .fi
  14570. .UNINDENT
  14571. .UNINDENT
  14572. .SS \fBdecrypt_pillar_renderers\fP
  14573. .sp
  14574. New in version 2017.7.0.
  14575. .sp
  14576. Default: \fB[\(aqgpg\(aq]\fP
  14577. .sp
  14578. List of renderers which are permitted to be used for pillar decryption.
  14579. .INDENT 0.0
  14580. .INDENT 3.5
  14581. .sp
  14582. .nf
  14583. .ft C
  14584. decrypt_pillar_renderers:
  14585. \- gpg
  14586. \- my_custom_renderer
  14587. .ft P
  14588. .fi
  14589. .UNINDENT
  14590. .UNINDENT
  14591. .SS \fBpillarenv\fP
  14592. .sp
  14593. Default: \fBNone\fP
  14594. .sp
  14595. Isolates the pillar environment on the minion side. This functions the same as
  14596. the environment setting, but for pillar instead of states.
  14597. .INDENT 0.0
  14598. .INDENT 3.5
  14599. .sp
  14600. .nf
  14601. .ft C
  14602. pillarenv: dev
  14603. .ft P
  14604. .fi
  14605. .UNINDENT
  14606. .UNINDENT
  14607. .SS \fBpillarenv_from_saltenv\fP
  14608. .sp
  14609. New in version 2017.7.0.
  14610. .sp
  14611. Default: \fBFalse\fP
  14612. .sp
  14613. When set to \fBTrue\fP, the \fI\%pillarenv\fP value will assume the value
  14614. of the effective saltenv when running states. This essentially makes \fBsalt \(aq*\(aq
  14615. state.sls mysls saltenv=dev\fP equivalent to \fBsalt \(aq*\(aq state.sls mysls
  14616. saltenv=dev pillarenv=dev\fP\&. If \fI\%pillarenv\fP is set, either in the
  14617. minion config file or via the CLI, it will override this option.
  14618. .INDENT 0.0
  14619. .INDENT 3.5
  14620. .sp
  14621. .nf
  14622. .ft C
  14623. pillarenv_from_saltenv: True
  14624. .ft P
  14625. .fi
  14626. .UNINDENT
  14627. .UNINDENT
  14628. .SS \fBpillar_raise_on_missing\fP
  14629. .sp
  14630. New in version 2015.5.0.
  14631. .sp
  14632. Default: \fBFalse\fP
  14633. .sp
  14634. Set this option to \fBTrue\fP to force a \fBKeyError\fP to be raised whenever an
  14635. attempt to retrieve a named value from pillar fails. When this option is set
  14636. to \fBFalse\fP, the failed attempt returns an empty string.
  14637. .SS \fBminion_pillar_cache\fP
  14638. .sp
  14639. New in version 2016.3.0.
  14640. .sp
  14641. Default: \fBFalse\fP
  14642. .sp
  14643. The minion can locally cache rendered pillar data under
  14644. \fI\%cachedir\fP/pillar. This allows a temporarily disconnected minion
  14645. to access previously cached pillar data by invoking salt\-call with the \-\-local
  14646. and \-\-pillar_root=:conf_minion:\fIcachedir\fP/pillar options. Before enabling this
  14647. setting consider that the rendered pillar may contain security sensitive data.
  14648. Appropriate access restrictions should be in place. By default the saved pillar
  14649. data will be readable only by the user account running salt. By default this
  14650. feature is disabled, to enable set minion_pillar_cache to \fBTrue\fP\&.
  14651. .INDENT 0.0
  14652. .INDENT 3.5
  14653. .sp
  14654. .nf
  14655. .ft C
  14656. minion_pillar_cache: False
  14657. .ft P
  14658. .fi
  14659. .UNINDENT
  14660. .UNINDENT
  14661. .SS \fBfile_recv_max_size\fP
  14662. .sp
  14663. New in version 2014.7.0.
  14664. .sp
  14665. Default: \fB100\fP
  14666. .sp
  14667. Set a hard\-limit on the size of the files that can be pushed to the master.
  14668. It will be interpreted as megabytes.
  14669. .INDENT 0.0
  14670. .INDENT 3.5
  14671. .sp
  14672. .nf
  14673. .ft C
  14674. file_recv_max_size: 100
  14675. .ft P
  14676. .fi
  14677. .UNINDENT
  14678. .UNINDENT
  14679. .SS \fBpass_to_ext_pillars\fP
  14680. .sp
  14681. Specify a list of configuration keys whose values are to be passed to
  14682. external pillar functions.
  14683. .sp
  14684. Suboptions can be specified using the \(aq:\(aq notation (i.e. \fBoption:suboption\fP)
  14685. .sp
  14686. The values are merged and included in the \fBextra_minion_data\fP optional
  14687. parameter of the external pillar function. The \fBextra_minion_data\fP parameter
  14688. is passed only to the external pillar functions that have it explicitly
  14689. specified in their definition.
  14690. .sp
  14691. If the config contains
  14692. .INDENT 0.0
  14693. .INDENT 3.5
  14694. .sp
  14695. .nf
  14696. .ft C
  14697. opt1: value1
  14698. opt2:
  14699. subopt1: value2
  14700. subopt2: value3
  14701. pass_to_ext_pillars:
  14702. \- opt1
  14703. \- opt2: subopt1
  14704. .ft P
  14705. .fi
  14706. .UNINDENT
  14707. .UNINDENT
  14708. .sp
  14709. the \fBextra_minion_data\fP parameter will be
  14710. .INDENT 0.0
  14711. .INDENT 3.5
  14712. .sp
  14713. .nf
  14714. .ft C
  14715. {\(aqopt1\(aq: \(aqvalue1\(aq,
  14716. \(aqopt2\(aq: {\(aqsubopt1\(aq: \(aqvalue2\(aq}}
  14717. .ft P
  14718. .fi
  14719. .UNINDENT
  14720. .UNINDENT
  14721. .SS Security Settings
  14722. .SS \fBopen_mode\fP
  14723. .sp
  14724. Default: \fBFalse\fP
  14725. .sp
  14726. Open mode can be used to clean out the PKI key received from the Salt master,
  14727. turn on open mode, restart the minion, then turn off open mode and restart the
  14728. minion to clean the keys.
  14729. .INDENT 0.0
  14730. .INDENT 3.5
  14731. .sp
  14732. .nf
  14733. .ft C
  14734. open_mode: False
  14735. .ft P
  14736. .fi
  14737. .UNINDENT
  14738. .UNINDENT
  14739. .SS \fBmaster_finger\fP
  14740. .sp
  14741. Default: \fB\(aq\(aq\fP
  14742. .sp
  14743. Fingerprint of the master public key to validate the identity of your Salt master
  14744. before the initial key exchange. The master fingerprint can be found as \fBmaster.pub\fP by running
  14745. "salt\-key \-F master" on the Salt master.
  14746. .INDENT 0.0
  14747. .INDENT 3.5
  14748. .sp
  14749. .nf
  14750. .ft C
  14751. master_finger: \(aqba:30:65:2a:d6:9e:20:4f:d8:b2:f3:a7:d4:65:11:13\(aq
  14752. .ft P
  14753. .fi
  14754. .UNINDENT
  14755. .UNINDENT
  14756. .SS \fBkeysize\fP
  14757. .sp
  14758. Default: \fB2048\fP
  14759. .sp
  14760. The size of key that should be generated when creating new keys.
  14761. .INDENT 0.0
  14762. .INDENT 3.5
  14763. .sp
  14764. .nf
  14765. .ft C
  14766. keysize: 2048
  14767. .ft P
  14768. .fi
  14769. .UNINDENT
  14770. .UNINDENT
  14771. .SS \fBpermissive_pki_access\fP
  14772. .sp
  14773. Default: \fBFalse\fP
  14774. .sp
  14775. Enable permissive access to the salt keys. This allows you to run the
  14776. master or minion as root, but have a non\-root group be given access to
  14777. your pki_dir. To make the access explicit, root must belong to the group
  14778. you\(aqve given access to. This is potentially quite insecure.
  14779. .INDENT 0.0
  14780. .INDENT 3.5
  14781. .sp
  14782. .nf
  14783. .ft C
  14784. permissive_pki_access: False
  14785. .ft P
  14786. .fi
  14787. .UNINDENT
  14788. .UNINDENT
  14789. .SS \fBverify_master_pubkey_sign\fP
  14790. .sp
  14791. Default: \fBFalse\fP
  14792. .sp
  14793. Enables verification of the master\-public\-signature returned by the master in
  14794. auth\-replies. Please see the tutorial on how to configure this properly
  14795. \fI\%Multimaster\-PKI with Failover Tutorial\fP
  14796. .sp
  14797. New in version 2014.7.0.
  14798. .INDENT 0.0
  14799. .INDENT 3.5
  14800. .sp
  14801. .nf
  14802. .ft C
  14803. verify_master_pubkey_sign: True
  14804. .ft P
  14805. .fi
  14806. .UNINDENT
  14807. .UNINDENT
  14808. .sp
  14809. If this is set to \fBTrue\fP, \fBmaster_sign_pubkey\fP must be also set
  14810. to \fBTrue\fP in the master configuration file.
  14811. .SS \fBmaster_sign_key_name\fP
  14812. .sp
  14813. Default: \fBmaster_sign\fP
  14814. .sp
  14815. The filename without the \fI\&.pub\fP suffix of the public key that should be used
  14816. for verifying the signature from the master. The file must be located in the
  14817. minion\(aqs pki directory.
  14818. .sp
  14819. New in version 2014.7.0.
  14820. .INDENT 0.0
  14821. .INDENT 3.5
  14822. .sp
  14823. .nf
  14824. .ft C
  14825. master_sign_key_name: <filename_without_suffix>
  14826. .ft P
  14827. .fi
  14828. .UNINDENT
  14829. .UNINDENT
  14830. .SS \fBautosign_grains\fP
  14831. .sp
  14832. New in version 2018.3.0.
  14833. .sp
  14834. Default: \fBnot defined\fP
  14835. .sp
  14836. The grains that should be sent to the master on authentication to decide if
  14837. the minion\(aqs key should be accepted automatically.
  14838. .sp
  14839. Please see the Autoaccept Minions from Grains
  14840. documentation for more information.
  14841. .INDENT 0.0
  14842. .INDENT 3.5
  14843. .sp
  14844. .nf
  14845. .ft C
  14846. autosign_grains:
  14847. \- uuid
  14848. \- server_id
  14849. .ft P
  14850. .fi
  14851. .UNINDENT
  14852. .UNINDENT
  14853. .SS \fBalways_verify_signature\fP
  14854. .sp
  14855. Default: \fBFalse\fP
  14856. .sp
  14857. If \fI\%verify_master_pubkey_sign\fP is enabled, the signature is only verified
  14858. if the public\-key of the master changes. If the signature should always be verified,
  14859. this can be set to \fBTrue\fP\&.
  14860. .sp
  14861. New in version 2014.7.0.
  14862. .INDENT 0.0
  14863. .INDENT 3.5
  14864. .sp
  14865. .nf
  14866. .ft C
  14867. always_verify_signature: True
  14868. .ft P
  14869. .fi
  14870. .UNINDENT
  14871. .UNINDENT
  14872. .SS \fBcmd_blacklist_glob\fP
  14873. .sp
  14874. Default: \fB[]\fP
  14875. .sp
  14876. If \fI\%cmd_blacklist_glob\fP is enabled then any shell command called over
  14877. remote execution or via salt\-call will be checked against the glob matches found in
  14878. the \fIcmd_blacklist_glob\fP list and any matched shell command will be blocked.
  14879. .sp
  14880. \fBNOTE:\fP
  14881. .INDENT 0.0
  14882. .INDENT 3.5
  14883. This blacklist is only applied to direct executions made by the \fIsalt\fP and
  14884. \fIsalt\-call\fP commands. This does NOT blacklist commands called from states
  14885. or shell commands executed from other modules.
  14886. .UNINDENT
  14887. .UNINDENT
  14888. .sp
  14889. New in version 2016.11.0.
  14890. .INDENT 0.0
  14891. .INDENT 3.5
  14892. .sp
  14893. .nf
  14894. .ft C
  14895. cmd_blacklist_glob:
  14896. \- \(aqrm * \(aq
  14897. \- \(aqcat /etc/* \(aq
  14898. .ft P
  14899. .fi
  14900. .UNINDENT
  14901. .UNINDENT
  14902. .SS \fBcmd_whitelist_glob\fP
  14903. .sp
  14904. Default: \fB[]\fP
  14905. .sp
  14906. If \fI\%cmd_whitelist_glob\fP is enabled then any shell command called over
  14907. remote execution or via salt\-call will be checked against the glob matches found in
  14908. the \fIcmd_whitelist_glob\fP list and any shell command NOT found in the list will be
  14909. blocked. If \fIcmd_whitelist_glob\fP is NOT SET, then all shell commands are permitted.
  14910. .sp
  14911. \fBNOTE:\fP
  14912. .INDENT 0.0
  14913. .INDENT 3.5
  14914. This whitelist is only applied to direct executions made by the \fIsalt\fP and
  14915. \fIsalt\-call\fP commands. This does NOT restrict commands called from states
  14916. or shell commands executed from other modules.
  14917. .UNINDENT
  14918. .UNINDENT
  14919. .sp
  14920. New in version 2016.11.0.
  14921. .INDENT 0.0
  14922. .INDENT 3.5
  14923. .sp
  14924. .nf
  14925. .ft C
  14926. cmd_whitelist_glob:
  14927. \- \(aqls * \(aq
  14928. \- \(aqcat /etc/fstab\(aq
  14929. .ft P
  14930. .fi
  14931. .UNINDENT
  14932. .UNINDENT
  14933. .SS \fBssl\fP
  14934. .sp
  14935. New in version 2016.11.0.
  14936. .sp
  14937. Default: \fBNone\fP
  14938. .sp
  14939. TLS/SSL connection options. This could be set to a dictionary containing
  14940. arguments corresponding to python \fBssl.wrap_socket\fP method. For details see
  14941. \fI\%Tornado\fP
  14942. and \fI\%Python\fP
  14943. documentation.
  14944. .sp
  14945. Note: to set enum arguments values like \fBcert_reqs\fP and \fBssl_version\fP use
  14946. constant names without ssl module prefix: \fBCERT_REQUIRED\fP or \fBPROTOCOL_SSLv23\fP\&.
  14947. .INDENT 0.0
  14948. .INDENT 3.5
  14949. .sp
  14950. .nf
  14951. .ft C
  14952. ssl:
  14953. keyfile: <path_to_keyfile>
  14954. certfile: <path_to_certfile>
  14955. ssl_version: PROTOCOL_TLSv1_2
  14956. .ft P
  14957. .fi
  14958. .UNINDENT
  14959. .UNINDENT
  14960. .SS Reactor Settings
  14961. .SS \fBreactor\fP
  14962. .sp
  14963. Default: \fB[]\fP
  14964. .sp
  14965. Defines a salt reactor. See the Reactor documentation for more
  14966. information.
  14967. .INDENT 0.0
  14968. .INDENT 3.5
  14969. .sp
  14970. .nf
  14971. .ft C
  14972. reactor: []
  14973. .ft P
  14974. .fi
  14975. .UNINDENT
  14976. .UNINDENT
  14977. .SS \fBreactor_refresh_interval\fP
  14978. .sp
  14979. Default: \fB60\fP
  14980. .sp
  14981. The TTL for the cache of the reactor configuration.
  14982. .INDENT 0.0
  14983. .INDENT 3.5
  14984. .sp
  14985. .nf
  14986. .ft C
  14987. reactor_refresh_interval: 60
  14988. .ft P
  14989. .fi
  14990. .UNINDENT
  14991. .UNINDENT
  14992. .SS \fBreactor_worker_threads\fP
  14993. .sp
  14994. Default: \fB10\fP
  14995. .sp
  14996. The number of workers for the runner/wheel in the reactor.
  14997. .INDENT 0.0
  14998. .INDENT 3.5
  14999. .sp
  15000. .nf
  15001. .ft C
  15002. reactor_worker_threads: 10
  15003. .ft P
  15004. .fi
  15005. .UNINDENT
  15006. .UNINDENT
  15007. .SS \fBreactor_worker_hwm\fP
  15008. .sp
  15009. Default: \fB10000\fP
  15010. .sp
  15011. The queue size for workers in the reactor.
  15012. .INDENT 0.0
  15013. .INDENT 3.5
  15014. .sp
  15015. .nf
  15016. .ft C
  15017. reactor_worker_hwm: 10000
  15018. .ft P
  15019. .fi
  15020. .UNINDENT
  15021. .UNINDENT
  15022. .SS Thread Settings
  15023. .SS \fBmultiprocessing\fP
  15024. .sp
  15025. Default: \fBTrue\fP
  15026. .sp
  15027. If \fBmultiprocessing\fP is enabled when a minion receives a
  15028. publication a new process is spawned and the command is executed therein.
  15029. Conversely, if \fBmultiprocessing\fP is disabled the new publication will be run
  15030. executed in a thread.
  15031. .INDENT 0.0
  15032. .INDENT 3.5
  15033. .sp
  15034. .nf
  15035. .ft C
  15036. multiprocessing: True
  15037. .ft P
  15038. .fi
  15039. .UNINDENT
  15040. .UNINDENT
  15041. .SS \fBprocess_count_max\fP
  15042. .sp
  15043. New in version 2018.3.0.
  15044. .sp
  15045. Default: \fB\-1\fP
  15046. .sp
  15047. Limit the maximum amount of processes or threads created by \fBsalt\-minion\fP\&.
  15048. This is useful to avoid resource exhaustion in case the minion receives more
  15049. publications than it is able to handle, as it limits the number of spawned
  15050. processes or threads. \fB\-1\fP is the default and disables the limit.
  15051. .INDENT 0.0
  15052. .INDENT 3.5
  15053. .sp
  15054. .nf
  15055. .ft C
  15056. process_count_max: \-1
  15057. .ft P
  15058. .fi
  15059. .UNINDENT
  15060. .UNINDENT
  15061. .SS Minion Logging Settings
  15062. .SS \fBlog_file\fP
  15063. .sp
  15064. Default: \fB/var/log/salt/minion\fP
  15065. .sp
  15066. The minion log can be sent to a regular file, local path name, or network
  15067. location. See also \fBlog_file\fP\&.
  15068. .sp
  15069. Examples:
  15070. .INDENT 0.0
  15071. .INDENT 3.5
  15072. .sp
  15073. .nf
  15074. .ft C
  15075. log_file: /var/log/salt/minion
  15076. .ft P
  15077. .fi
  15078. .UNINDENT
  15079. .UNINDENT
  15080. .INDENT 0.0
  15081. .INDENT 3.5
  15082. .sp
  15083. .nf
  15084. .ft C
  15085. log_file: file:///dev/log
  15086. .ft P
  15087. .fi
  15088. .UNINDENT
  15089. .UNINDENT
  15090. .INDENT 0.0
  15091. .INDENT 3.5
  15092. .sp
  15093. .nf
  15094. .ft C
  15095. log_file: udp://loghost:10514
  15096. .ft P
  15097. .fi
  15098. .UNINDENT
  15099. .UNINDENT
  15100. .SS \fBlog_level\fP
  15101. .sp
  15102. Default: \fBwarning\fP
  15103. .sp
  15104. The level of messages to send to the console. See also \fBlog_level\fP\&.
  15105. .INDENT 0.0
  15106. .INDENT 3.5
  15107. .sp
  15108. .nf
  15109. .ft C
  15110. log_level: warning
  15111. .ft P
  15112. .fi
  15113. .UNINDENT
  15114. .UNINDENT
  15115. .SS \fBlog_level_logfile\fP
  15116. .sp
  15117. Default: \fBwarning\fP
  15118. .sp
  15119. The level of messages to send to the log file. See also
  15120. \fBlog_level_logfile\fP\&. When it is not set explicitly
  15121. it will inherit the level set by \fBlog_level\fP option.
  15122. .INDENT 0.0
  15123. .INDENT 3.5
  15124. .sp
  15125. .nf
  15126. .ft C
  15127. log_level_logfile: warning
  15128. .ft P
  15129. .fi
  15130. .UNINDENT
  15131. .UNINDENT
  15132. .SS \fBlog_datefmt\fP
  15133. .sp
  15134. Default: \fB%H:%M:%S\fP
  15135. .sp
  15136. The date and time format used in console log messages. See also
  15137. \fBlog_datefmt\fP\&.
  15138. .INDENT 0.0
  15139. .INDENT 3.5
  15140. .sp
  15141. .nf
  15142. .ft C
  15143. log_datefmt: \(aq%H:%M:%S\(aq
  15144. .ft P
  15145. .fi
  15146. .UNINDENT
  15147. .UNINDENT
  15148. .SS \fBlog_datefmt_logfile\fP
  15149. .sp
  15150. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  15151. .sp
  15152. The date and time format used in log file messages. See also
  15153. \fBlog_datefmt_logfile\fP\&.
  15154. .INDENT 0.0
  15155. .INDENT 3.5
  15156. .sp
  15157. .nf
  15158. .ft C
  15159. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  15160. .ft P
  15161. .fi
  15162. .UNINDENT
  15163. .UNINDENT
  15164. .SS \fBlog_fmt_console\fP
  15165. .sp
  15166. Default: \fB[%(levelname)\-8s] %(message)s\fP
  15167. .sp
  15168. The format of the console logging messages. See also
  15169. \fBlog_fmt_console\fP\&.
  15170. .sp
  15171. \fBNOTE:\fP
  15172. .INDENT 0.0
  15173. .INDENT 3.5
  15174. Log colors are enabled in \fBlog_fmt_console\fP rather than the
  15175. \fBcolor\fP config since the logging system is loaded before the
  15176. minion config.
  15177. .sp
  15178. Console log colors are specified by these additional formatters:
  15179. .sp
  15180. %(colorlevel)s
  15181. %(colorname)s
  15182. %(colorprocess)s
  15183. %(colormsg)s
  15184. .sp
  15185. Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  15186. the coloring of the messages, these color formatters also include padding
  15187. as well. Color LogRecord attributes are only available for console
  15188. logging.
  15189. .UNINDENT
  15190. .UNINDENT
  15191. .INDENT 0.0
  15192. .INDENT 3.5
  15193. .sp
  15194. .nf
  15195. .ft C
  15196. log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  15197. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  15198. .ft P
  15199. .fi
  15200. .UNINDENT
  15201. .UNINDENT
  15202. .SS \fBlog_fmt_logfile\fP
  15203. .sp
  15204. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  15205. .sp
  15206. The format of the log file logging messages. See also
  15207. \fBlog_fmt_logfile\fP\&.
  15208. .INDENT 0.0
  15209. .INDENT 3.5
  15210. .sp
  15211. .nf
  15212. .ft C
  15213. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  15214. .ft P
  15215. .fi
  15216. .UNINDENT
  15217. .UNINDENT
  15218. .SS \fBlog_granular_levels\fP
  15219. .sp
  15220. Default: \fB{}\fP
  15221. .sp
  15222. This can be used to control logging levels more specifically. See also
  15223. \fBlog_granular_levels\fP\&.
  15224. .SS \fBlog_rotate_max_bytes\fP
  15225. .sp
  15226. Default: \fB0\fP
  15227. .sp
  15228. The maximum number of bytes a single log file may contain before it is rotated.
  15229. A value of 0 disables this feature. Currently only supported on Windows. On
  15230. other platforms, use an external tool such as \(aqlogrotate\(aq to manage log files.
  15231. \fBlog_rotate_max_bytes\fP
  15232. .SS \fBlog_rotate_backup_count\fP
  15233. .sp
  15234. Default: \fB0\fP
  15235. .sp
  15236. The number of backup files to keep when rotating log files. Only used if
  15237. \fI\%log_rotate_max_bytes\fP is greater than 0. Currently only supported
  15238. on Windows. On other platforms, use an external tool such as \(aqlogrotate\(aq to
  15239. manage log files.
  15240. \fBlog_rotate_backup_count\fP
  15241. .SS \fBzmq_monitor\fP
  15242. .sp
  15243. Default: \fBFalse\fP
  15244. .sp
  15245. To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  15246. supports the use of monitor sockets to log connection events. This
  15247. feature requires ZeroMQ 4.0 or higher.
  15248. .sp
  15249. To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  15250. debug level or higher.
  15251. .sp
  15252. A sample log event is as follows:
  15253. .INDENT 0.0
  15254. .INDENT 3.5
  15255. .sp
  15256. .nf
  15257. .ft C
  15258. [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  15259. \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  15260. .ft P
  15261. .fi
  15262. .UNINDENT
  15263. .UNINDENT
  15264. .sp
  15265. All events logged will include the string \fBZeroMQ event\fP\&. A connection event
  15266. should be logged as the minion starts up and initially connects to the
  15267. master. If not, check for debug log level and that the necessary version of
  15268. ZeroMQ is installed.
  15269. .SS \fBtcp_authentication_retries\fP
  15270. .sp
  15271. Default: \fB5\fP
  15272. .sp
  15273. The number of times to retry authenticating with the salt master when it comes
  15274. back online.
  15275. .sp
  15276. Zeromq does a lot to make sure when connections come back online that they
  15277. reauthenticate. The tcp transport should try to connect with a new connection
  15278. if the old one times out on reauthenticating.
  15279. .sp
  15280. \fI\-1\fP for infinite tries.
  15281. .SS \fBfailhard\fP
  15282. .sp
  15283. Default: \fBFalse\fP
  15284. .sp
  15285. Set the global failhard flag. This informs all states to stop running states
  15286. at the moment a single state fails
  15287. .INDENT 0.0
  15288. .INDENT 3.5
  15289. .sp
  15290. .nf
  15291. .ft C
  15292. failhard: False
  15293. .ft P
  15294. .fi
  15295. .UNINDENT
  15296. .UNINDENT
  15297. .SS Include Configuration
  15298. .sp
  15299. Configuration can be loaded from multiple files. The order in which this is
  15300. done is:
  15301. .INDENT 0.0
  15302. .IP 1. 3
  15303. The minion config file itself
  15304. .IP 2. 3
  15305. The files matching the glob in \fI\%default_include\fP
  15306. .IP 3. 3
  15307. The files matching the glob in \fI\%include\fP (if defined)
  15308. .UNINDENT
  15309. .sp
  15310. Each successive step overrides any values defined in the previous steps.
  15311. Therefore, any config options defined in one of the
  15312. \fI\%default_include\fP files would override the same value in the
  15313. minion config file, and any options defined in \fI\%include\fP would
  15314. override both.
  15315. .SS \fBdefault_include\fP
  15316. .sp
  15317. Default: \fBminion.d/*.conf\fP
  15318. .sp
  15319. The minion can include configuration from other files. Per default the
  15320. minion will automatically include all config files from \fIminion.d/*.conf\fP
  15321. where minion.d is relative to the directory of the minion configuration
  15322. file.
  15323. .sp
  15324. \fBNOTE:\fP
  15325. .INDENT 0.0
  15326. .INDENT 3.5
  15327. Salt creates files in the \fBminion.d\fP directory for its own use. These
  15328. files are prefixed with an underscore. A common example of this is the
  15329. \fB_schedule.conf\fP file.
  15330. .UNINDENT
  15331. .UNINDENT
  15332. .SS \fBinclude\fP
  15333. .sp
  15334. Default: \fBnot defined\fP
  15335. .sp
  15336. The minion can include configuration from other files. To enable this,
  15337. pass a list of paths to this option. The paths can be either relative or
  15338. absolute; if relative, they are considered to be relative to the directory
  15339. the main minion configuration file lives in. Paths can make use of
  15340. shell\-style globbing. If no files are matched by a path passed to this
  15341. option then the minion will log a warning message.
  15342. .INDENT 0.0
  15343. .INDENT 3.5
  15344. .sp
  15345. .nf
  15346. .ft C
  15347. # Include files from a minion.d directory in the same
  15348. # directory as the minion config file
  15349. include: minion.d/*.conf
  15350. # Include a single extra file into the configuration
  15351. include: /etc/roles/webserver
  15352. # Include several files and the minion.d directory
  15353. include:
  15354. \- extra_config
  15355. \- minion.d/*
  15356. \- /etc/roles/webserver
  15357. .ft P
  15358. .fi
  15359. .UNINDENT
  15360. .UNINDENT
  15361. .SS Keepalive Settings
  15362. .SS \fBtcp_keepalive\fP
  15363. .sp
  15364. Default: \fBTrue\fP
  15365. .sp
  15366. The tcp keepalive interval to set on TCP ports. This setting can be used to tune Salt
  15367. connectivity issues in messy network environments with misbehaving firewalls.
  15368. .INDENT 0.0
  15369. .INDENT 3.5
  15370. .sp
  15371. .nf
  15372. .ft C
  15373. tcp_keepalive: True
  15374. .ft P
  15375. .fi
  15376. .UNINDENT
  15377. .UNINDENT
  15378. .SS \fBtcp_keepalive_cnt\fP
  15379. .sp
  15380. Default: \fB\-1\fP
  15381. .sp
  15382. Sets the ZeroMQ TCP keepalive count. May be used to tune issues with minion disconnects.
  15383. .INDENT 0.0
  15384. .INDENT 3.5
  15385. .sp
  15386. .nf
  15387. .ft C
  15388. tcp_keepalive_cnt: \-1
  15389. .ft P
  15390. .fi
  15391. .UNINDENT
  15392. .UNINDENT
  15393. .SS \fBtcp_keepalive_idle\fP
  15394. .sp
  15395. Default: \fB300\fP
  15396. .sp
  15397. Sets ZeroMQ TCP keepalive idle. May be used to tune issues with minion disconnects.
  15398. .INDENT 0.0
  15399. .INDENT 3.5
  15400. .sp
  15401. .nf
  15402. .ft C
  15403. tcp_keepalive_idle: 300
  15404. .ft P
  15405. .fi
  15406. .UNINDENT
  15407. .UNINDENT
  15408. .SS \fBtcp_keepalive_intvl\fP
  15409. .sp
  15410. Default: \fB\-1\fP
  15411. .sp
  15412. Sets ZeroMQ TCP keepalive interval. May be used to tune issues with minion disconnects.
  15413. .INDENT 0.0
  15414. .INDENT 3.5
  15415. .sp
  15416. .nf
  15417. .ft C
  15418. tcp_keepalive_intvl\(aq: \-1
  15419. .ft P
  15420. .fi
  15421. .UNINDENT
  15422. .UNINDENT
  15423. .SS Frozen Build Update Settings
  15424. .sp
  15425. These options control how \fBsalt.modules.saltutil.update()\fP works with esky
  15426. frozen apps. For more information look at \fI\%https://github.com/cloudmatrix/esky/\fP\&.
  15427. .SS \fBupdate_url\fP
  15428. .sp
  15429. Default: \fBFalse\fP (Update feature is disabled)
  15430. .sp
  15431. The url to use when looking for application updates. Esky depends on directory
  15432. listings to search for new versions. A webserver running on your Master is a
  15433. good starting point for most setups.
  15434. .INDENT 0.0
  15435. .INDENT 3.5
  15436. .sp
  15437. .nf
  15438. .ft C
  15439. update_url: \(aqhttp://salt.example.com/minion\-updates\(aq
  15440. .ft P
  15441. .fi
  15442. .UNINDENT
  15443. .UNINDENT
  15444. .SS \fBupdate_restart_services\fP
  15445. .sp
  15446. Default: \fB[]\fP (service restarting on update is disabled)
  15447. .sp
  15448. A list of services to restart when the minion software is updated. This would
  15449. typically just be a list containing the minion\(aqs service name, but you may
  15450. have other services that need to go with it.
  15451. .INDENT 0.0
  15452. .INDENT 3.5
  15453. .sp
  15454. .nf
  15455. .ft C
  15456. update_restart_services: [\(aqsalt\-minion\(aq]
  15457. .ft P
  15458. .fi
  15459. .UNINDENT
  15460. .UNINDENT
  15461. .SS \fBwinrepo_cache_expire_min\fP
  15462. .sp
  15463. New in version 2016.11.0.
  15464. .sp
  15465. Default: \fB1800\fP
  15466. .sp
  15467. If set to a nonzero integer, then passing \fBrefresh=True\fP to functions in the
  15468. \fBwindows pkg module\fP will not refresh the windows
  15469. repo metadata if the age of the metadata is less than this value. The exception
  15470. to this is \fBpkg.refresh_db\fP, which
  15471. will always refresh the metadata, regardless of age.
  15472. .INDENT 0.0
  15473. .INDENT 3.5
  15474. .sp
  15475. .nf
  15476. .ft C
  15477. winrepo_cache_expire_min: 1800
  15478. .ft P
  15479. .fi
  15480. .UNINDENT
  15481. .UNINDENT
  15482. .SS \fBwinrepo_cache_expire_max\fP
  15483. .sp
  15484. New in version 2016.11.0.
  15485. .sp
  15486. Default: \fB21600\fP
  15487. .sp
  15488. If the windows repo metadata is older than this value, and the metadata is
  15489. needed by a function in the \fBwindows pkg module\fP,
  15490. the metadata will be refreshed.
  15491. .INDENT 0.0
  15492. .INDENT 3.5
  15493. .sp
  15494. .nf
  15495. .ft C
  15496. winrepo_cache_expire_max: 86400
  15497. .ft P
  15498. .fi
  15499. .UNINDENT
  15500. .UNINDENT
  15501. .SS Minion Windows Software Repo Settings
  15502. .sp
  15503. \fBIMPORTANT:\fP
  15504. .INDENT 0.0
  15505. .INDENT 3.5
  15506. To use these config options, the minion can be running in master\-minion or
  15507. masterless mode.
  15508. .UNINDENT
  15509. .UNINDENT
  15510. .SS \fBwinrepo_source_dir\fP
  15511. .sp
  15512. Default: \fBsalt://win/repo\-ng/\fP
  15513. .sp
  15514. The source location for the winrepo sls files.
  15515. .INDENT 0.0
  15516. .INDENT 3.5
  15517. .sp
  15518. .nf
  15519. .ft C
  15520. winrepo_source_dir: salt://win/repo\-ng/
  15521. .ft P
  15522. .fi
  15523. .UNINDENT
  15524. .UNINDENT
  15525. .SS Standalone Minion Windows Software Repo Settings
  15526. .sp
  15527. \fBIMPORTANT:\fP
  15528. .INDENT 0.0
  15529. .INDENT 3.5
  15530. To use these config options, the minion must be running in masterless mode
  15531. (set \fI\%file_client\fP to \fBlocal\fP).
  15532. .UNINDENT
  15533. .UNINDENT
  15534. .SS \fBwinrepo_dir\fP
  15535. .sp
  15536. Changed in version 2015.8.0: Renamed from \fBwin_repo\fP to \fBwinrepo_dir\fP\&. Also, this option did not
  15537. have a default value until this version.
  15538. .sp
  15539. Default: \fBC:\esalt\esrv\esalt\ewin\erepo\fP
  15540. .sp
  15541. Location on the minion where the \fI\%winrepo_remotes\fP are checked
  15542. out.
  15543. .INDENT 0.0
  15544. .INDENT 3.5
  15545. .sp
  15546. .nf
  15547. .ft C
  15548. winrepo_dir: \(aqD:\ewinrepo\(aq
  15549. .ft P
  15550. .fi
  15551. .UNINDENT
  15552. .UNINDENT
  15553. .SS \fBwinrepo_dir_ng\fP
  15554. .sp
  15555. New in version 2015.8.0: A new ng repo was added.
  15556. .sp
  15557. Default: \fB/srv/salt/win/repo\-ng\fP
  15558. .sp
  15559. Location on the minion where the \fI\%winrepo_remotes_ng\fP are checked
  15560. out for 2015.8.0 and later minions.
  15561. .INDENT 0.0
  15562. .INDENT 3.5
  15563. .sp
  15564. .nf
  15565. .ft C
  15566. winrepo_dir_ng: /srv/salt/win/repo\-ng
  15567. .ft P
  15568. .fi
  15569. .UNINDENT
  15570. .UNINDENT
  15571. .SS \fBwinrepo_cachefile\fP
  15572. .sp
  15573. Changed in version 2015.8.0: Renamed from \fBwin_repo_cachefile\fP to \fBwinrepo_cachefile\fP\&. Also,
  15574. this option did not have a default value until this version.
  15575. .sp
  15576. Default: \fBwinrepo.p\fP
  15577. .sp
  15578. Path relative to \fI\%winrepo_dir\fP where the winrepo cache should be
  15579. created.
  15580. .INDENT 0.0
  15581. .INDENT 3.5
  15582. .sp
  15583. .nf
  15584. .ft C
  15585. winrepo_cachefile: winrepo.p
  15586. .ft P
  15587. .fi
  15588. .UNINDENT
  15589. .UNINDENT
  15590. .SS \fBwinrepo_remotes\fP
  15591. .sp
  15592. Changed in version 2015.8.0: Renamed from \fBwin_gitrepos\fP to \fBwinrepo_remotes\fP\&. Also, this option did
  15593. not have a default value until this version.
  15594. .sp
  15595. New in version 2015.8.0.
  15596. .sp
  15597. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq]\fP
  15598. .sp
  15599. List of git repositories to checkout and include in the winrepo
  15600. .INDENT 0.0
  15601. .INDENT 3.5
  15602. .sp
  15603. .nf
  15604. .ft C
  15605. winrepo_remotes:
  15606. \- https://github.com/saltstack/salt\-winrepo.git
  15607. .ft P
  15608. .fi
  15609. .UNINDENT
  15610. .UNINDENT
  15611. .sp
  15612. To specify a specific revision of the repository, prepend a commit ID to the
  15613. URL of the repository:
  15614. .INDENT 0.0
  15615. .INDENT 3.5
  15616. .sp
  15617. .nf
  15618. .ft C
  15619. winrepo_remotes:
  15620. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo.git\(aq
  15621. .ft P
  15622. .fi
  15623. .UNINDENT
  15624. .UNINDENT
  15625. .sp
  15626. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  15627. ID is useful in that it allows one to revert back to a previous version in the
  15628. event that an error is introduced in the latest revision of the repo.
  15629. .SS \fBwinrepo_remotes_ng\fP
  15630. .sp
  15631. New in version 2015.8.0: A new ng repo was added.
  15632. .sp
  15633. Default: \fB[\(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq]\fP
  15634. .sp
  15635. List of git repositories to checkout and include in the winrepo for
  15636. 2015.8.0 and later minions.
  15637. .INDENT 0.0
  15638. .INDENT 3.5
  15639. .sp
  15640. .nf
  15641. .ft C
  15642. winrepo_remotes_ng:
  15643. \- https://github.com/saltstack/salt\-winrepo\-ng.git
  15644. .ft P
  15645. .fi
  15646. .UNINDENT
  15647. .UNINDENT
  15648. .sp
  15649. To specify a specific revision of the repository, prepend a commit ID to the
  15650. URL of the repository:
  15651. .INDENT 0.0
  15652. .INDENT 3.5
  15653. .sp
  15654. .nf
  15655. .ft C
  15656. winrepo_remotes_ng:
  15657. \- \(aq<commit_id> https://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  15658. .ft P
  15659. .fi
  15660. .UNINDENT
  15661. .UNINDENT
  15662. .sp
  15663. Replace \fB<commit_id>\fP with the SHA1 hash of a commit ID. Specifying a commit
  15664. ID is useful in that it allows one to revert back to a previous version in the
  15665. event that an error is introduced in the latest revision of the repo.
  15666. .SS \fBssh_merge_pillar\fP
  15667. .sp
  15668. New in version 2018.3.2.
  15669. .sp
  15670. Default: \fBTrue\fP
  15671. .sp
  15672. Merges the compiled pillar data with the pillar data already available globally.
  15673. This is useful when using \fBsalt\-ssh\fP or \fBsalt\-call \-\-local\fP and overriding the pillar
  15674. data in a state file:
  15675. .INDENT 0.0
  15676. .INDENT 3.5
  15677. .sp
  15678. .nf
  15679. .ft C
  15680. apply_showpillar:
  15681. module.run:
  15682. \- name: state.apply
  15683. \- mods:
  15684. \- showpillar
  15685. \- kwargs:
  15686. pillar:
  15687. test: "foo bar"
  15688. .ft P
  15689. .fi
  15690. .UNINDENT
  15691. .UNINDENT
  15692. .sp
  15693. If set to \fBTrue\fP the \fBshowpillar\fP state will have access to the
  15694. global pillar data.
  15695. .sp
  15696. If set to \fBFalse\fP only the overriding pillar data will be available
  15697. to the \fBshowpillar\fP state.
  15698. .SS Configuring the Salt Proxy Minion
  15699. .sp
  15700. The Salt system is amazingly simple and easy to configure. The two components
  15701. of the Salt system each have a respective configuration file. The
  15702. \fBsalt\-master\fP is configured via the master configuration file, and the
  15703. \fBsalt\-proxy\fP is configured via the proxy configuration file.
  15704. .sp
  15705. \fBSEE ALSO:\fP
  15706. .INDENT 0.0
  15707. .INDENT 3.5
  15708. example proxy minion configuration file
  15709. .UNINDENT
  15710. .UNINDENT
  15711. .sp
  15712. The Salt Minion configuration is very simple. Typically, the only value that
  15713. needs to be set is the master value so the proxy knows where to locate its master.
  15714. .sp
  15715. By default, the salt\-proxy configuration will be in \fB/etc/salt/proxy\fP\&.
  15716. A notable exception is FreeBSD, where the configuration will be in
  15717. \fB/usr/local/etc/salt/proxy\fP\&.
  15718. .SS Proxy\-specific Configuration Options
  15719. .SS \fBadd_proxymodule_to_opts\fP
  15720. .sp
  15721. New in version 2015.8.2.
  15722. .sp
  15723. Changed in version 2016.3.0.
  15724. .sp
  15725. Default: \fBFalse\fP
  15726. .sp
  15727. Add the proxymodule LazyLoader object to opts.
  15728. .INDENT 0.0
  15729. .INDENT 3.5
  15730. .sp
  15731. .nf
  15732. .ft C
  15733. add_proxymodule_to_opts: True
  15734. .ft P
  15735. .fi
  15736. .UNINDENT
  15737. .UNINDENT
  15738. .SS \fBproxy_merge_grains_in_module\fP
  15739. .sp
  15740. New in version 2016.3.0.
  15741. .sp
  15742. Changed in version 2017.7.0.
  15743. .sp
  15744. Default: \fBTrue\fP
  15745. .sp
  15746. If a proxymodule has a function called \fBgrains\fP, then call it during
  15747. regular grains loading and merge the results with the proxy\(aqs grains
  15748. dictionary. Otherwise it is assumed that the module calls the grains
  15749. function in a custom way and returns the data elsewhere.
  15750. .INDENT 0.0
  15751. .INDENT 3.5
  15752. .sp
  15753. .nf
  15754. .ft C
  15755. proxy_merge_grains_in_module: False
  15756. .ft P
  15757. .fi
  15758. .UNINDENT
  15759. .UNINDENT
  15760. .SS \fBproxy_keep_alive\fP
  15761. .sp
  15762. New in version 2017.7.0.
  15763. .sp
  15764. Default: \fBTrue\fP
  15765. .sp
  15766. Whether the connection with the remote device should be restarted
  15767. when dead. The proxy module must implement the \fBalive\fP function,
  15768. otherwise the connection is considered alive.
  15769. .INDENT 0.0
  15770. .INDENT 3.5
  15771. .sp
  15772. .nf
  15773. .ft C
  15774. proxy_keep_alive: False
  15775. .ft P
  15776. .fi
  15777. .UNINDENT
  15778. .UNINDENT
  15779. .SS \fBproxy_keep_alive_interval\fP
  15780. .sp
  15781. New in version 2017.7.0.
  15782. .sp
  15783. Default: \fB1\fP
  15784. .sp
  15785. The frequency of keepalive checks, in minutes. It requires the
  15786. \fI\%proxy_keep_alive\fP option to be enabled
  15787. (and the proxy module to implement the \fBalive\fP function).
  15788. .INDENT 0.0
  15789. .INDENT 3.5
  15790. .sp
  15791. .nf
  15792. .ft C
  15793. proxy_keep_alive_interval: 5
  15794. .ft P
  15795. .fi
  15796. .UNINDENT
  15797. .UNINDENT
  15798. .SS \fBproxy_always_alive\fP
  15799. .sp
  15800. New in version 2017.7.0.
  15801. .sp
  15802. Default: \fBTrue\fP
  15803. .sp
  15804. Whether the proxy should maintain the connection with the remote
  15805. device. Similarly to \fI\%proxy_keep_alive\fP, this option
  15806. is very specific to the design of the proxy module.
  15807. When \fI\%proxy_always_alive\fP is set to \fBFalse\fP,
  15808. the connection with the remote device is not maintained and
  15809. has to be closed after every command.
  15810. .INDENT 0.0
  15811. .INDENT 3.5
  15812. .sp
  15813. .nf
  15814. .ft C
  15815. proxy_always_alive: False
  15816. .ft P
  15817. .fi
  15818. .UNINDENT
  15819. .UNINDENT
  15820. .SS \fBproxy_merge_pillar_in_opts\fP
  15821. .sp
  15822. New in version 2017.7.3.
  15823. .sp
  15824. Default: \fBFalse\fP\&.
  15825. .sp
  15826. Whether the pillar data to be merged into the proxy configuration options.
  15827. As multiple proxies can run on the same server, we may need different
  15828. configuration options for each, while there\(aqs one single configuration file.
  15829. The solution is merging the pillar data of each proxy minion into the opts.
  15830. .INDENT 0.0
  15831. .INDENT 3.5
  15832. .sp
  15833. .nf
  15834. .ft C
  15835. proxy_merge_pillar_in_opts: True
  15836. .ft P
  15837. .fi
  15838. .UNINDENT
  15839. .UNINDENT
  15840. .SS \fBproxy_deep_merge_pillar_in_opts\fP
  15841. .sp
  15842. New in version 2017.7.3.
  15843. .sp
  15844. Default: \fBFalse\fP\&.
  15845. .sp
  15846. Deep merge of pillar data into configuration opts.
  15847. This option is evaluated only when \fBproxy_merge_pillar_in_opts\fP is
  15848. enabled.
  15849. .SS \fBproxy_merge_pillar_in_opts_strategy\fP
  15850. .sp
  15851. New in version 2017.7.3.
  15852. .sp
  15853. Default: \fBsmart\fP\&.
  15854. .sp
  15855. The strategy used when merging pillar configuration into opts.
  15856. This option is evaluated only when \fBproxy_merge_pillar_in_opts\fP is
  15857. enabled.
  15858. .SS \fBproxy_mines_pillar\fP
  15859. .sp
  15860. New in version 2017.7.3.
  15861. .sp
  15862. Default: \fBTrue\fP\&.
  15863. .sp
  15864. Allow enabling mine details using pillar data. This evaluates the mine
  15865. configuration under the pillar, for the following regular minion options that
  15866. are also equally available on the proxy minion: \fBmine_interval\fP,
  15867. and \fBmine_functions\fP\&.
  15868. .SS Configuration file examples
  15869. .INDENT 0.0
  15870. .IP \(bu 2
  15871. \fI\%Example master configuration file\fP
  15872. .IP \(bu 2
  15873. \fI\%Example minion configuration file\fP
  15874. .IP \(bu 2
  15875. \fI\%Example proxy minion configuration file\fP
  15876. .UNINDENT
  15877. .SS Example master configuration file
  15878. .INDENT 0.0
  15879. .INDENT 3.5
  15880. .sp
  15881. .nf
  15882. .ft C
  15883. ##### Primary configuration settings #####
  15884. ##########################################
  15885. # This configuration file is used to manage the behavior of the Salt Master.
  15886. # Values that are commented out but have an empty line after the comment are
  15887. # defaults that do not need to be set in the config. If there is no blank line
  15888. # after the comment then the value is presented as an example and is not the
  15889. # default.
  15890. # Per default, the master will automatically include all config files
  15891. # from master.d/*.conf (master.d is a directory in the same directory
  15892. # as the main master config file).
  15893. #default_include: master.d/*.conf
  15894. # The address of the interface to bind to:
  15895. #interface: 0.0.0.0
  15896. # Whether the master should listen for IPv6 connections. If this is set to True,
  15897. # the interface option must be adjusted, too. (For example: "interface: \(aq::\(aq")
  15898. #ipv6: False
  15899. # The tcp port used by the publisher:
  15900. #publish_port: 4505
  15901. # The user under which the salt master will run. Salt will update all
  15902. # permissions to allow the specified user to run the master. The exception is
  15903. # the job cache, which must be deleted if this user is changed. If the
  15904. # modified files cause conflicts, set verify_env to False.
  15905. #user: root
  15906. # Tell the master to also use salt\-ssh when running commands against minions.
  15907. #enable_ssh_minions: False
  15908. # The port used by the communication interface. The ret (return) port is the
  15909. # interface used for the file server, authentication, job returns, etc.
  15910. #ret_port: 4506
  15911. # Specify the location of the daemon process ID file:
  15912. #pidfile: /var/run/salt\-master.pid
  15913. # The root directory prepended to these options: pki_dir, cachedir,
  15914. # sock_dir, log_file, autosign_file, autoreject_file, extension_modules,
  15915. # key_logfile, pidfile, autosign_grains_dir:
  15916. #root_dir: /
  15917. # The path to the master\(aqs configuration file.
  15918. #conf_file: /etc/salt/master
  15919. # Directory used to store public key data:
  15920. #pki_dir: /etc/salt/pki/master
  15921. # Key cache. Increases master speed for large numbers of accepted
  15922. # keys. Available options: \(aqsched\(aq. (Updates on a fixed schedule.)
  15923. # Note that enabling this feature means that minions will not be
  15924. # available to target for up to the length of the maintanence loop
  15925. # which by default is 60s.
  15926. #key_cache: \(aq\(aq
  15927. # Directory to store job and cache data:
  15928. # This directory may contain sensitive data and should be protected accordingly.
  15929. #
  15930. #cachedir: /var/cache/salt/master
  15931. # Directory for custom modules. This directory can contain subdirectories for
  15932. # each of Salt\(aqs module types such as "runners", "output", "wheel", "modules",
  15933. # "states", "returners", "engines", "utils", etc.
  15934. #extension_modules: /var/cache/salt/master/extmods
  15935. # Directory for custom modules. This directory can contain subdirectories for
  15936. # each of Salt\(aqs module types such as "runners", "output", "wheel", "modules",
  15937. # "states", "returners", "engines", "utils", etc.
  15938. # Like \(aqextension_modules\(aq but can take an array of paths
  15939. #module_dirs: []
  15940. # Verify and set permissions on configuration directories at startup:
  15941. #verify_env: True
  15942. # Set the number of hours to keep old job information in the job cache:
  15943. #keep_jobs: 24
  15944. # The number of seconds to wait when the client is requesting information
  15945. # about running jobs.
  15946. #gather_job_timeout: 10
  15947. # Set the default timeout for the salt command and api. The default is 5
  15948. # seconds.
  15949. #timeout: 5
  15950. # The loop_interval option controls the seconds for the master\(aqs maintenance
  15951. # process check cycle. This process updates file server backends, cleans the
  15952. # job cache and executes the scheduler.
  15953. #loop_interval: 60
  15954. # Set the default outputter used by the salt command. The default is "nested".
  15955. #output: nested
  15956. # To set a list of additional directories to search for salt outputters, set the
  15957. # outputter_dirs option.
  15958. #outputter_dirs: []
  15959. # Set the default output file used by the salt command. Default is to output
  15960. # to the CLI and not to a file. Functions the same way as the "\-\-out\-file"
  15961. # CLI option, only sets this to a single file for all salt commands.
  15962. #output_file: None
  15963. # Return minions that timeout when running commands like test.ping
  15964. #show_timeout: True
  15965. # Tell the client to display the jid when a job is published.
  15966. #show_jid: False
  15967. # By default, output is colored. To disable colored output, set the color value
  15968. # to False.
  15969. #color: True
  15970. # Do not strip off the colored output from nested results and state outputs
  15971. # (true by default).
  15972. # strip_colors: False
  15973. # To display a summary of the number of minions targeted, the number of
  15974. # minions returned, and the number of minions that did not return, set the
  15975. # cli_summary value to True. (False by default.)
  15976. #
  15977. #cli_summary: False
  15978. # Set the directory used to hold unix sockets:
  15979. #sock_dir: /var/run/salt/master
  15980. # The master can take a while to start up when lspci and/or dmidecode is used
  15981. # to populate the grains for the master. Enable if you want to see GPU hardware
  15982. # data for your master.
  15983. # enable_gpu_grains: False
  15984. # The master maintains a job cache. While this is a great addition, it can be
  15985. # a burden on the master for larger deployments (over 5000 minions).
  15986. # Disabling the job cache will make previously executed jobs unavailable to
  15987. # the jobs system and is not generally recommended.
  15988. #job_cache: True
  15989. # Cache minion grains, pillar and mine data via the cache subsystem in the
  15990. # cachedir or a database.
  15991. #minion_data_cache: True
  15992. # Cache subsystem module to use for minion data cache.
  15993. #cache: localfs
  15994. # Enables a fast in\-memory cache booster and sets the expiration time.
  15995. #memcache_expire_seconds: 0
  15996. # Set a memcache limit in items (bank + key) per cache storage (driver + driver_opts).
  15997. #memcache_max_items: 1024
  15998. # Each time a cache storage got full cleanup all the expired items not just the oldest one.
  15999. #memcache_full_cleanup: False
  16000. # Enable collecting the memcache stats and log it on \(gadebug\(ga log level.
  16001. #memcache_debug: False
  16002. # Store all returns in the given returner.
  16003. # Setting this option requires that any returner\-specific configuration also
  16004. # be set. See various returners in salt/returners for details on required
  16005. # configuration values. (See also, event_return_queue, and event_return_queue_max_seconds below.)
  16006. #
  16007. #event_return: mysql
  16008. # On busy systems, enabling event_returns can cause a considerable load on
  16009. # the storage system for returners. Events can be queued on the master and
  16010. # stored in a batched fashion using a single transaction for multiple events.
  16011. # By default, events are not queued.
  16012. #event_return_queue: 0
  16013. # In some cases enabling event return queueing can be very helpful, but the bus
  16014. # may not busy enough to flush the queue consistently. Setting this to a reasonable
  16015. # value (1\-30 seconds) will cause the queue to be flushed when the oldest event is older
  16016. # than \(gaevent_return_queue_max_seconds\(ga regardless of how many events are in the queue.
  16017. #event_return_queue_max_seconds: 0
  16018. # Only return events matching tags in a whitelist, supports glob matches.
  16019. #event_return_whitelist:
  16020. # \- salt/master/a_tag
  16021. # \- salt/run/*/ret
  16022. # Store all event returns **except** the tags in a blacklist, supports globs.
  16023. #event_return_blacklist:
  16024. # \- salt/master/not_this_tag
  16025. # \- salt/wheel/*/ret
  16026. # Passing very large events can cause the minion to consume large amounts of
  16027. # memory. This value tunes the maximum size of a message allowed onto the
  16028. # master event bus. The value is expressed in bytes.
  16029. #max_event_size: 1048576
  16030. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  16031. # process communications. Set ipc_mode to \(aqtcp\(aq on such systems
  16032. #ipc_mode: ipc
  16033. # Overwrite the default tcp ports used by the minion when ipc_mode is set to \(aqtcp\(aq
  16034. #tcp_master_pub_port: 4510
  16035. #tcp_master_pull_port: 4511
  16036. # By default, the master AES key rotates every 24 hours. The next command
  16037. # following a key rotation will trigger a key refresh from the minion which may
  16038. # result in minions which do not respond to the first command after a key refresh.
  16039. #
  16040. # To tell the master to ping all minions immediately after an AES key refresh, set
  16041. # ping_on_rotate to True. This should mitigate the issue where a minion does not
  16042. # appear to initially respond after a key is rotated.
  16043. #
  16044. # Note that ping_on_rotate may cause high load on the master immediately after
  16045. # the key rotation event as minions reconnect. Consider this carefully if this
  16046. # salt master is managing a large number of minions.
  16047. #
  16048. # If disabled, it is recommended to handle this event by listening for the
  16049. # \(aqaes_key_rotate\(aq event with the \(aqkey\(aq tag and acting appropriately.
  16050. # ping_on_rotate: False
  16051. # By default, the master deletes its cache of minion data when the key for that
  16052. # minion is removed. To preserve the cache after key deletion, set
  16053. # \(aqpreserve_minion_cache\(aq to True.
  16054. #
  16055. # WARNING: This may have security implications if compromised minions auth with
  16056. # a previous deleted minion ID.
  16057. #preserve_minion_cache: False
  16058. # Allow or deny minions from requesting their own key revocation
  16059. #allow_minion_key_revoke: True
  16060. # If max_minions is used in large installations, the master might experience
  16061. # high\-load situations because of having to check the number of connected
  16062. # minions for every authentication. This cache provides the minion\-ids of
  16063. # all connected minions to all MWorker\-processes and greatly improves the
  16064. # performance of max_minions.
  16065. # con_cache: False
  16066. # The master can include configuration from other files. To enable this,
  16067. # pass a list of paths to this option. The paths can be either relative or
  16068. # absolute; if relative, they are considered to be relative to the directory
  16069. # the main master configuration file lives in (this file). Paths can make use
  16070. # of shell\-style globbing. If no files are matched by a path passed to this
  16071. # option, then the master will log a warning message.
  16072. #
  16073. # Include a config file from some other path:
  16074. # include: /etc/salt/extra_config
  16075. #
  16076. # Include config from several files and directories:
  16077. # include:
  16078. # \- /etc/salt/extra_config
  16079. ##### Large\-scale tuning settings #####
  16080. ##########################################
  16081. # Max open files
  16082. #
  16083. # Each minion connecting to the master uses AT LEAST one file descriptor, the
  16084. # master subscription connection. If enough minions connect you might start
  16085. # seeing on the console (and then salt\-master crashes):
  16086. # Too many open files (tcp_listener.cpp:335)
  16087. # Aborted (core dumped)
  16088. #
  16089. # By default this value will be the one of \(gaulimit \-Hn\(ga, ie, the hard limit for
  16090. # max open files.
  16091. #
  16092. # If you wish to set a different value than the default one, uncomment and
  16093. # configure this setting. Remember that this value CANNOT be higher than the
  16094. # hard limit. Raising the hard limit depends on your OS and/or distribution,
  16095. # a good way to find the limit is to search the internet. For example:
  16096. # raise max open files hard limit debian
  16097. #
  16098. #max_open_files: 100000
  16099. # The number of worker threads to start. These threads are used to manage
  16100. # return calls made from minions to the master. If the master seems to be
  16101. # running slowly, increase the number of threads. This setting can not be
  16102. # set lower than 3.
  16103. #worker_threads: 5
  16104. # Set the ZeroMQ high water marks
  16105. # http://api.zeromq.org/3\-2:zmq\-setsockopt
  16106. # The listen queue size / backlog
  16107. #zmq_backlog: 1000
  16108. # The publisher interface ZeroMQPubServerChannel
  16109. #pub_hwm: 1000
  16110. # The master may allocate memory per\-event and not
  16111. # reclaim it.
  16112. # To set a high\-water mark for memory allocation, use
  16113. # ipc_write_buffer to set a high\-water mark for message
  16114. # buffering.
  16115. # Value: In bytes. Set to \(aqdynamic\(aq to have Salt select
  16116. # a value for you. Default is disabled.
  16117. # ipc_write_buffer: \(aqdynamic\(aq
  16118. # These two batch settings, batch_safe_limit and batch_safe_size, are used to
  16119. # automatically switch to a batch mode execution. If a command would have been
  16120. # sent to more than <batch_safe_limit> minions, then run the command in
  16121. # batches of <batch_safe_size>. If no batch_safe_size is specified, a default
  16122. # of 8 will be used. If no batch_safe_limit is specified, then no automatic
  16123. # batching will occur.
  16124. #batch_safe_limit: 100
  16125. #batch_safe_size: 8
  16126. # Master stats enables stats events to be fired from the master at close
  16127. # to the defined interval
  16128. #master_stats: False
  16129. #master_stats_event_iter: 60
  16130. ##### Security settings #####
  16131. ##########################################
  16132. # Enable passphrase protection of Master private key. Although a string value
  16133. # is acceptable; passwords should be stored in an external vaulting mechanism
  16134. # and retrieved via sdb. See https://docs.saltstack.com/en/latest/topics/sdb/.
  16135. # Passphrase protection is off by default but an example of an sdb profile and
  16136. # query is as follows.
  16137. # masterkeyring:
  16138. # driver: keyring
  16139. # service: system
  16140. #
  16141. # key_pass: sdb://masterkeyring/key_pass
  16142. # Enable passphrase protection of the Master signing_key. This only applies if
  16143. # master_sign_pubkey is set to True. This is disabled by default.
  16144. # master_sign_pubkey: True
  16145. # signing_key_pass: sdb://masterkeyring/signing_pass
  16146. # Enable "open mode", this mode still maintains encryption, but turns off
  16147. # authentication, this is only intended for highly secure environments or for
  16148. # the situation where your keys end up in a bad state. If you run in open mode
  16149. # you do so at your own risk!
  16150. #open_mode: False
  16151. # Enable auto_accept, this setting will automatically accept all incoming
  16152. # public keys from the minions. Note that this is insecure.
  16153. #auto_accept: False
  16154. # The size of key that should be generated when creating new keys.
  16155. #keysize: 2048
  16156. # Time in minutes that an incoming public key with a matching name found in
  16157. # pki_dir/minion_autosign/keyid is automatically accepted. Expired autosign keys
  16158. # are removed when the master checks the minion_autosign directory.
  16159. # 0 equals no timeout
  16160. # autosign_timeout: 120
  16161. # If the autosign_file is specified, incoming keys specified in the
  16162. # autosign_file will be automatically accepted. This is insecure. Regular
  16163. # expressions as well as globing lines are supported. The file must be readonly
  16164. # except for the owner. Use permissive_pki_access to allow the group write access.
  16165. #autosign_file: /etc/salt/autosign.conf
  16166. # Works like autosign_file, but instead allows you to specify minion IDs for
  16167. # which keys will automatically be rejected. Will override both membership in
  16168. # the autosign_file and the auto_accept setting.
  16169. #autoreject_file: /etc/salt/autoreject.conf
  16170. # If the autosign_grains_dir is specified, incoming keys from minions with grain
  16171. # values matching those defined in files in this directory will be accepted
  16172. # automatically. This is insecure. Minions need to be configured to send the grains.
  16173. #autosign_grains_dir: /etc/salt/autosign_grains
  16174. # Enable permissive access to the salt keys. This allows you to run the
  16175. # master or minion as root, but have a non\-root group be given access to
  16176. # your pki_dir. To make the access explicit, root must belong to the group
  16177. # you\(aqve given access to. This is potentially quite insecure. If an autosign_file
  16178. # is specified, enabling permissive_pki_access will allow group access to that
  16179. # specific file.
  16180. #permissive_pki_access: False
  16181. # Allow users on the master access to execute specific commands on minions.
  16182. # This setting should be treated with care since it opens up execution
  16183. # capabilities to non root users. By default this capability is completely
  16184. # disabled.
  16185. #publisher_acl:
  16186. # larry:
  16187. # \- test.ping
  16188. # \- network.*
  16189. #
  16190. # Blacklist any of the following users or modules
  16191. #
  16192. # This example would blacklist all non sudo users, including root from
  16193. # running any commands. It would also blacklist any use of the "cmd"
  16194. # module. This is completely disabled by default.
  16195. #
  16196. #
  16197. # Check the list of configured users in client ACL against users on the
  16198. # system and throw errors if they do not exist.
  16199. #client_acl_verify: True
  16200. #
  16201. #publisher_acl_blacklist:
  16202. # users:
  16203. # \- root
  16204. # \- \(aq^(?!sudo_).*$\(aq # all non sudo users
  16205. # modules:
  16206. # \- cmd
  16207. # Enforce publisher_acl & publisher_acl_blacklist when users have sudo
  16208. # access to the salt command.
  16209. #
  16210. #sudo_acl: False
  16211. # The external auth system uses the Salt auth modules to authenticate and
  16212. # validate users to access areas of the Salt system.
  16213. #external_auth:
  16214. # pam:
  16215. # fred:
  16216. # \- test.*
  16217. #
  16218. # Time (in seconds) for a newly generated token to live. Default: 12 hours
  16219. #token_expire: 43200
  16220. #
  16221. # Allow eauth users to specify the expiry time of the tokens they generate.
  16222. # A boolean applies to all users or a dictionary of whitelisted eauth backends
  16223. # and usernames may be given.
  16224. # token_expire_user_override:
  16225. # pam:
  16226. # \- fred
  16227. # \- tom
  16228. # ldap:
  16229. # \- gary
  16230. #
  16231. #token_expire_user_override: False
  16232. # Set to True to enable keeping the calculated user\(aqs auth list in the token
  16233. # file. This is disabled by default and the auth list is calculated or requested
  16234. # from the eauth driver each time.
  16235. #keep_acl_in_token: False
  16236. # Auth subsystem module to use to get authorized access list for a user. By default it\(aqs
  16237. # the same module used for external authentication.
  16238. #eauth_acl_module: django
  16239. # Allow minions to push files to the master. This is disabled by default, for
  16240. # security purposes.
  16241. #file_recv: False
  16242. # Set a hard\-limit on the size of the files that can be pushed to the master.
  16243. # It will be interpreted as megabytes. Default: 100
  16244. #file_recv_max_size: 100
  16245. # Signature verification on messages published from the master.
  16246. # This causes the master to cryptographically sign all messages published to its event
  16247. # bus, and minions then verify that signature before acting on the message.
  16248. #
  16249. # This is False by default.
  16250. #
  16251. # Note that to facilitate interoperability with masters and minions that are different
  16252. # versions, if sign_pub_messages is True but a message is received by a minion with
  16253. # no signature, it will still be accepted, and a warning message will be logged.
  16254. # Conversely, if sign_pub_messages is False, but a minion receives a signed
  16255. # message it will be accepted, the signature will not be checked, and a warning message
  16256. # will be logged. This behavior went away in Salt 2014.1.0 and these two situations
  16257. # will cause minion to throw an exception and drop the message.
  16258. # sign_pub_messages: False
  16259. # Signature verification on messages published from minions
  16260. # This requires that minions cryptographically sign the messages they
  16261. # publish to the master. If minions are not signing, then log this information
  16262. # at loglevel \(aqINFO\(aq and drop the message without acting on it.
  16263. # require_minion_sign_messages: False
  16264. # The below will drop messages when their signatures do not validate.
  16265. # Note that when this option is False but \(garequire_minion_sign_messages\(ga is True
  16266. # minions MUST sign their messages but the validity of their signatures
  16267. # is ignored.
  16268. # These two config options exist so a Salt infrastructure can be moved
  16269. # to signing minion messages gradually.
  16270. # drop_messages_signature_fail: False
  16271. # Use TLS/SSL encrypted connection between master and minion.
  16272. # Can be set to a dictionary containing keyword arguments corresponding to Python\(aqs
  16273. # \(aqssl.wrap_socket\(aq method.
  16274. # Default is None.
  16275. #ssl:
  16276. # keyfile: <path_to_keyfile>
  16277. # certfile: <path_to_certfile>
  16278. # ssl_version: PROTOCOL_TLSv1_2
  16279. ##### Salt\-SSH Configuration #####
  16280. ##########################################
  16281. # Define the default salt\-ssh roster module to use
  16282. #roster: flat
  16283. # Pass in an alternative location for the salt\-ssh \(gaflat\(ga roster file
  16284. #roster_file: /etc/salt/roster
  16285. # Define locations for \(gaflat\(ga roster files so they can be chosen when using Salt API.
  16286. # An administrator can place roster files into these locations. Then when
  16287. # calling Salt API, parameter \(aqroster_file\(aq should contain a relative path to
  16288. # these locations. That is, "roster_file=/foo/roster" will be resolved as
  16289. # "/etc/salt/roster.d/foo/roster" etc. This feature prevents passing insecure
  16290. # custom rosters through the Salt API.
  16291. #
  16292. #rosters:
  16293. # \- /etc/salt/roster.d
  16294. # \- /opt/salt/some/more/rosters
  16295. # The ssh password to log in with.
  16296. #ssh_passwd: \(aq\(aq
  16297. #The target system\(aqs ssh port number.
  16298. #ssh_port: 22
  16299. # Comma\-separated list of ports to scan.
  16300. #ssh_scan_ports: 22
  16301. # Scanning socket timeout for salt\-ssh.
  16302. #ssh_scan_timeout: 0.01
  16303. # Boolean to run command via sudo.
  16304. #ssh_sudo: False
  16305. # Boolean to run ssh_pre_flight script defined in roster. By default
  16306. # the script will only run if the thin_dir does not exist on the targeted
  16307. # minion. This forces the script to run regardless of the thin dir existing
  16308. # or not.
  16309. #ssh_run_pre_flight: True
  16310. # Number of seconds to wait for a response when establishing an SSH connection.
  16311. #ssh_timeout: 60
  16312. # The user to log in as.
  16313. #ssh_user: root
  16314. # The log file of the salt\-ssh command:
  16315. #ssh_log_file: /var/log/salt/ssh
  16316. # Pass in minion option overrides that will be inserted into the SHIM for
  16317. # salt\-ssh calls. The local minion config is not used for salt\-ssh. Can be
  16318. # overridden on a per\-minion basis in the roster (\(gaminion_opts\(ga)
  16319. #ssh_minion_opts:
  16320. # gpg_keydir: /root/gpg
  16321. # Set this to True to default to using ~/.ssh/id_rsa for salt\-ssh
  16322. # authentication with minions
  16323. #ssh_use_home_key: False
  16324. # Set this to True to default salt\-ssh to run with \(ga\(ga\-o IdentitiesOnly=yes\(ga\(ga.
  16325. # This option is intended for situations where the ssh\-agent offers many
  16326. # different identities and allows ssh to ignore those identities and use the
  16327. # only one specified in options.
  16328. #ssh_identities_only: False
  16329. # List\-only nodegroups for salt\-ssh. Each group must be formed as either a
  16330. # comma\-separated list, or a YAML list. This option is useful to group minions
  16331. # into easy\-to\-target groups when using salt\-ssh. These groups can then be
  16332. # targeted with the normal \-N argument to salt\-ssh.
  16333. #ssh_list_nodegroups: {}
  16334. # salt\-ssh has the ability to update the flat roster file if a minion is not
  16335. # found in the roster. Set this to True to enable it.
  16336. #ssh_update_roster: False
  16337. ##### Master Module Management #####
  16338. ##########################################
  16339. # Manage how master side modules are loaded.
  16340. # Add any additional locations to look for master runners:
  16341. #runner_dirs: []
  16342. # Add any additional locations to look for master utils:
  16343. #utils_dirs: []
  16344. # Enable Cython for master side modules:
  16345. #cython_enable: False
  16346. ##### State System settings #####
  16347. ##########################################
  16348. # The state system uses a "top" file to tell the minions what environment to
  16349. # use and what modules to use. The state_top file is defined relative to the
  16350. # root of the base environment as defined in "File Server settings" below.
  16351. #state_top: top.sls
  16352. # The master_tops option replaces the external_nodes option by creating
  16353. # a plugable system for the generation of external top data. The external_nodes
  16354. # option is deprecated by the master_tops option.
  16355. #
  16356. # To gain the capabilities of the classic external_nodes system, use the
  16357. # following configuration:
  16358. # master_tops:
  16359. # ext_nodes: <Shell command which returns yaml>
  16360. #
  16361. #master_tops: {}
  16362. # The renderer to use on the minions to render the state data
  16363. #renderer: jinja|yaml
  16364. # Default Jinja environment options for all templates except sls templates
  16365. #jinja_env:
  16366. # block_start_string: \(aq{%\(aq
  16367. # block_end_string: \(aq%}\(aq
  16368. # variable_start_string: \(aq{{\(aq
  16369. # variable_end_string: \(aq}}\(aq
  16370. # comment_start_string: \(aq{#\(aq
  16371. # comment_end_string: \(aq#}\(aq
  16372. # line_statement_prefix:
  16373. # line_comment_prefix:
  16374. # trim_blocks: False
  16375. # lstrip_blocks: False
  16376. # newline_sequence: \(aq\en\(aq
  16377. # keep_trailing_newline: False
  16378. # Jinja environment options for sls templates
  16379. #jinja_sls_env:
  16380. # block_start_string: \(aq{%\(aq
  16381. # block_end_string: \(aq%}\(aq
  16382. # variable_start_string: \(aq{{\(aq
  16383. # variable_end_string: \(aq}}\(aq
  16384. # comment_start_string: \(aq{#\(aq
  16385. # comment_end_string: \(aq#}\(aq
  16386. # line_statement_prefix:
  16387. # line_comment_prefix:
  16388. # trim_blocks: False
  16389. # lstrip_blocks: False
  16390. # newline_sequence: \(aq\en\(aq
  16391. # keep_trailing_newline: False
  16392. # The failhard option tells the minions to stop immediately after the first
  16393. # failure detected in the state execution, defaults to False
  16394. #failhard: False
  16395. # The state_verbose and state_output settings can be used to change the way
  16396. # state system data is printed to the display. By default all data is printed.
  16397. # The state_verbose setting can be set to True or False, when set to False
  16398. # all data that has a result of True and no changes will be suppressed.
  16399. #state_verbose: True
  16400. # The state_output setting controls which results will be output full multi line
  16401. # full, terse \- each state will be full/terse
  16402. # mixed \- only states with errors will be full
  16403. # changes \- states with changes and errors will be full
  16404. # full_id, mixed_id, changes_id and terse_id are also allowed;
  16405. # when set, the state ID will be used as name in the output
  16406. #state_output: full
  16407. # The state_output_diff setting changes whether or not the output from
  16408. # successful states is returned. Useful when even the terse output of these
  16409. # states is cluttering the logs. Set it to True to ignore them.
  16410. #state_output_diff: False
  16411. # Automatically aggregate all states that have support for mod_aggregate by
  16412. # setting to \(aqTrue\(aq. Or pass a list of state module names to automatically
  16413. # aggregate just those types.
  16414. #
  16415. # state_aggregate:
  16416. # \- pkg
  16417. #
  16418. #state_aggregate: False
  16419. # Send progress events as each function in a state run completes execution
  16420. # by setting to \(aqTrue\(aq. Progress events are in the format
  16421. # \(aqsalt/job/<JID>/prog/<MID>/<RUN NUM>\(aq.
  16422. #state_events: False
  16423. ##### File Server settings #####
  16424. ##########################################
  16425. # Salt runs a lightweight file server written in zeromq to deliver files to
  16426. # minions. This file server is built into the master daemon and does not
  16427. # require a dedicated port.
  16428. # The file server works on environments passed to the master, each environment
  16429. # can have multiple root directories, the subdirectories in the multiple file
  16430. # roots cannot match, otherwise the downloaded files will not be able to be
  16431. # reliably ensured. A base environment is required to house the top file.
  16432. # Example:
  16433. # file_roots:
  16434. # base:
  16435. # \- /srv/salt/
  16436. # dev:
  16437. # \- /srv/salt/dev/services
  16438. # \- /srv/salt/dev/states
  16439. # prod:
  16440. # \- /srv/salt/prod/services
  16441. # \- /srv/salt/prod/states
  16442. #
  16443. #file_roots:
  16444. # base:
  16445. # \- /srv/salt
  16446. #
  16447. # The master_roots setting configures a master\-only copy of the file_roots dictionary,
  16448. # used by the state compiler.
  16449. #master_roots:
  16450. # base:
  16451. # \- /srv/salt\-master
  16452. # When using multiple environments, each with their own top file, the
  16453. # default behaviour is an unordered merge. To prevent top files from
  16454. # being merged together and instead to only use the top file from the
  16455. # requested environment, set this value to \(aqsame\(aq.
  16456. #top_file_merging_strategy: merge
  16457. # To specify the order in which environments are merged, set the ordering
  16458. # in the env_order option. Given a conflict, the last matching value will
  16459. # win.
  16460. #env_order: [\(aqbase\(aq, \(aqdev\(aq, \(aqprod\(aq]
  16461. # If top_file_merging_strategy is set to \(aqsame\(aq and an environment does not
  16462. # contain a top file, the top file in the environment specified by default_top
  16463. # will be used instead.
  16464. #default_top: base
  16465. # The hash_type is the hash to use when discovering the hash of a file on
  16466. # the master server. The default is sha256, but md5, sha1, sha224, sha384 and
  16467. # sha512 are also supported.
  16468. #
  16469. # WARNING: While md5 and sha1 are also supported, do not use them due to the
  16470. # high chance of possible collisions and thus security breach.
  16471. #
  16472. # Prior to changing this value, the master should be stopped and all Salt
  16473. # caches should be cleared.
  16474. #hash_type: sha256
  16475. # The buffer size in the file server can be adjusted here:
  16476. #file_buffer_size: 1048576
  16477. # A regular expression (or a list of expressions) that will be matched
  16478. # against the file path before syncing the modules and states to the minions.
  16479. # This includes files affected by the file.recurse state.
  16480. # For example, if you manage your custom modules and states in subversion
  16481. # and don\(aqt want all the \(aq.svn\(aq folders and content synced to your minions,
  16482. # you could set this to \(aq/\e.svn($|/)\(aq. By default nothing is ignored.
  16483. #file_ignore_regex:
  16484. # \- \(aq/\e.svn($|/)\(aq
  16485. # \- \(aq/\e.git($|/)\(aq
  16486. # A file glob (or list of file globs) that will be matched against the file
  16487. # path before syncing the modules and states to the minions. This is similar
  16488. # to file_ignore_regex above, but works on globs instead of regex. By default
  16489. # nothing is ignored.
  16490. # file_ignore_glob:
  16491. # \- \(aq*.pyc\(aq
  16492. # \- \(aq*/somefolder/*.bak\(aq
  16493. # \- \(aq*.swp\(aq
  16494. # File Server Backend
  16495. #
  16496. # Salt supports a modular fileserver backend system, this system allows
  16497. # the salt master to link directly to third party systems to gather and
  16498. # manage the files available to minions. Multiple backends can be
  16499. # configured and will be searched for the requested file in the order in which
  16500. # they are defined here. The default setting only enables the standard backend
  16501. # "roots" which uses the "file_roots" option.
  16502. #fileserver_backend:
  16503. # \- roots
  16504. #
  16505. # To use multiple backends list them in the order they are searched:
  16506. #fileserver_backend:
  16507. # \- git
  16508. # \- roots
  16509. #
  16510. # Uncomment the line below if you do not want the file_server to follow
  16511. # symlinks when walking the filesystem tree. This is set to True
  16512. # by default. Currently this only applies to the default roots
  16513. # fileserver_backend.
  16514. #fileserver_followsymlinks: False
  16515. #
  16516. # Uncomment the line below if you do not want symlinks to be
  16517. # treated as the files they are pointing to. By default this is set to
  16518. # False. By uncommenting the line below, any detected symlink while listing
  16519. # files on the Master will not be returned to the Minion.
  16520. #fileserver_ignoresymlinks: True
  16521. #
  16522. # By default, the Salt fileserver recurses fully into all defined environments
  16523. # to attempt to find files. To limit this behavior so that the fileserver only
  16524. # traverses directories with SLS files and special Salt directories like _modules,
  16525. # enable the option below. This might be useful for installations where a file root
  16526. # has a very large number of files and performance is impacted. Default is False.
  16527. # fileserver_limit_traversal: False
  16528. #
  16529. # The fileserver can fire events off every time the fileserver is updated,
  16530. # these are disabled by default, but can be easily turned on by setting this
  16531. # flag to True
  16532. #fileserver_events: False
  16533. # Git File Server Backend Configuration
  16534. #
  16535. # Optional parameter used to specify the provider to be used for gitfs. Must be
  16536. # either pygit2 or gitpython. If unset, then both will be tried (in that
  16537. # order), and the first one with a compatible version installed will be the
  16538. # provider that is used.
  16539. #
  16540. #gitfs_provider: pygit2
  16541. # Along with gitfs_password, is used to authenticate to HTTPS remotes.
  16542. # gitfs_user: \(aq\(aq
  16543. # Along with gitfs_user, is used to authenticate to HTTPS remotes.
  16544. # This parameter is not required if the repository does not use authentication.
  16545. #gitfs_password: \(aq\(aq
  16546. # By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote.
  16547. # This parameter enables authentication over HTTP. Enable this at your own risk.
  16548. #gitfs_insecure_auth: False
  16549. # Along with gitfs_privkey (and optionally gitfs_passphrase), is used to
  16550. # authenticate to SSH remotes. This parameter (or its per\-remote counterpart)
  16551. # is required for SSH remotes.
  16552. #gitfs_pubkey: \(aq\(aq
  16553. # Along with gitfs_pubkey (and optionally gitfs_passphrase), is used to
  16554. # authenticate to SSH remotes. This parameter (or its per\-remote counterpart)
  16555. # is required for SSH remotes.
  16556. #gitfs_privkey: \(aq\(aq
  16557. # This parameter is optional, required only when the SSH key being used to
  16558. # authenticate is protected by a passphrase.
  16559. #gitfs_passphrase: \(aq\(aq
  16560. # When using the git fileserver backend at least one git remote needs to be
  16561. # defined. The user running the salt master will need read access to the repo.
  16562. #
  16563. # The repos will be searched in order to find the file requested by a client
  16564. # and the first repo to have the file will return it.
  16565. # When using the git backend branches and tags are translated into salt
  16566. # environments.
  16567. # Note: file:// repos will be treated as a remote, so refs you want used must
  16568. # exist in that repo as *local* refs.
  16569. #gitfs_remotes:
  16570. # \- git://github.com/saltstack/salt\-states.git
  16571. # \- file:///var/git/saltmaster
  16572. #
  16573. # The gitfs_ssl_verify option specifies whether to ignore ssl certificate
  16574. # errors when contacting the gitfs backend. You might want to set this to
  16575. # false if you\(aqre using a git backend that uses a self\-signed certificate but
  16576. # keep in mind that setting this flag to anything other than the default of True
  16577. # is a security concern, you may want to try using the ssh transport.
  16578. #gitfs_ssl_verify: True
  16579. #
  16580. # The gitfs_root option gives the ability to serve files from a subdirectory
  16581. # within the repository. The path is defined relative to the root of the
  16582. # repository and defaults to the repository root.
  16583. #gitfs_root: somefolder/otherfolder
  16584. #
  16585. # The refspecs fetched by gitfs remotes
  16586. #gitfs_refspecs:
  16587. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  16588. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  16589. #
  16590. #
  16591. ##### Pillar settings #####
  16592. ##########################################
  16593. # Salt Pillars allow for the building of global data that can be made selectively
  16594. # available to different minions based on minion grain filtering. The Salt
  16595. # Pillar is laid out in the same fashion as the file server, with environments,
  16596. # a top file and sls files. However, pillar data does not need to be in the
  16597. # highstate format, and is generally just key/value pairs.
  16598. #pillar_roots:
  16599. # base:
  16600. # \- /srv/pillar
  16601. #
  16602. #ext_pillar:
  16603. # \- hiera: /etc/hiera.yaml
  16604. # \- cmd_yaml: cat /etc/salt/yaml
  16605. # A list of paths to be recursively decrypted during pillar compilation.
  16606. # Entries in this list can be formatted either as a simple string, or as a
  16607. # key/value pair, with the key being the pillar location, and the value being
  16608. # the renderer to use for pillar decryption. If the former is used, the
  16609. # renderer specified by decrypt_pillar_default will be used.
  16610. #decrypt_pillar:
  16611. # \- \(aqfoo:bar\(aq: gpg
  16612. # \- \(aqlorem:ipsum:dolor\(aq
  16613. # The delimiter used to distinguish nested data structures in the
  16614. # decrypt_pillar option.
  16615. #decrypt_pillar_delimiter: \(aq:\(aq
  16616. # The default renderer used for decryption, if one is not specified for a given
  16617. # pillar key in decrypt_pillar.
  16618. #decrypt_pillar_default: gpg
  16619. # List of renderers which are permitted to be used for pillar decryption.
  16620. #decrypt_pillar_renderers:
  16621. # \- gpg
  16622. # The ext_pillar_first option allows for external pillar sources to populate
  16623. # before file system pillar. This allows for targeting file system pillar from
  16624. # ext_pillar.
  16625. #ext_pillar_first: False
  16626. # The external pillars permitted to be used on\-demand using pillar.ext
  16627. #on_demand_ext_pillar:
  16628. # \- libvirt
  16629. # \- virtkey
  16630. # The pillar_gitfs_ssl_verify option specifies whether to ignore ssl certificate
  16631. # errors when contacting the pillar gitfs backend. You might want to set this to
  16632. # false if you\(aqre using a git backend that uses a self\-signed certificate but
  16633. # keep in mind that setting this flag to anything other than the default of True
  16634. # is a security concern, you may want to try using the ssh transport.
  16635. #pillar_gitfs_ssl_verify: True
  16636. # The pillar_opts option adds the master configuration file data to a dict in
  16637. # the pillar called "master". This is used to set simple configurations in the
  16638. # master config file that can then be used on minions.
  16639. #pillar_opts: False
  16640. # The pillar_safe_render_error option prevents the master from passing pillar
  16641. # render errors to the minion. This is set on by default because the error could
  16642. # contain templating data which would give that minion information it shouldn\(aqt
  16643. # have, like a password! When set true the error message will only show:
  16644. # Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  16645. #pillar_safe_render_error: True
  16646. # The pillar_source_merging_strategy option allows you to configure merging strategy
  16647. # between different sources. It accepts five values: none, recurse, aggregate, overwrite,
  16648. # or smart. None will not do any merging at all. Recurse will merge recursively mapping of data.
  16649. # Aggregate instructs aggregation of elements between sources that use the #!yamlex renderer. Overwrite
  16650. # will overwrite elements according the order in which they are processed. This is
  16651. # behavior of the 2014.1 branch and earlier. Smart guesses the best strategy based
  16652. # on the "renderer" setting and is the default value.
  16653. #pillar_source_merging_strategy: smart
  16654. # Recursively merge lists by aggregating them instead of replacing them.
  16655. #pillar_merge_lists: False
  16656. # Set this option to True to force the pillarenv to be the same as the effective
  16657. # saltenv when running states. If pillarenv is specified this option will be
  16658. # ignored.
  16659. #pillarenv_from_saltenv: False
  16660. # Set this option to \(aqTrue\(aq to force a \(aqKeyError\(aq to be raised whenever an
  16661. # attempt to retrieve a named value from pillar fails. When this option is set
  16662. # to \(aqFalse\(aq, the failed attempt returns an empty string. Default is \(aqFalse\(aq.
  16663. #pillar_raise_on_missing: False
  16664. # Git External Pillar (git_pillar) Configuration Options
  16665. #
  16666. # Specify the provider to be used for git_pillar. Must be either pygit2 or
  16667. # gitpython. If unset, then both will be tried in that same order, and the
  16668. # first one with a compatible version installed will be the provider that
  16669. # is used.
  16670. #git_pillar_provider: pygit2
  16671. # If the desired branch matches this value, and the environment is omitted
  16672. # from the git_pillar configuration, then the environment for that git_pillar
  16673. # remote will be base.
  16674. #git_pillar_base: master
  16675. # If the branch is omitted from a git_pillar remote, then this branch will
  16676. # be used instead
  16677. #git_pillar_branch: master
  16678. # Environment to use for git_pillar remotes. This is normally derived from
  16679. # the branch/tag (or from a per\-remote env parameter), but if set this will
  16680. # override the process of deriving the env from the branch/tag name.
  16681. #git_pillar_env: \(aq\(aq
  16682. # Path relative to the root of the repository where the git_pillar top file
  16683. # and SLS files are located.
  16684. #git_pillar_root: \(aq\(aq
  16685. # Specifies whether or not to ignore SSL certificate errors when contacting
  16686. # the remote repository.
  16687. #git_pillar_ssl_verify: False
  16688. # When set to False, if there is an update/checkout lock for a git_pillar
  16689. # remote and the pid written to it is not running on the master, the lock
  16690. # file will be automatically cleared and a new lock will be obtained.
  16691. #git_pillar_global_lock: True
  16692. # Git External Pillar Authentication Options
  16693. #
  16694. # Along with git_pillar_password, is used to authenticate to HTTPS remotes.
  16695. #git_pillar_user: \(aq\(aq
  16696. # Along with git_pillar_user, is used to authenticate to HTTPS remotes.
  16697. # This parameter is not required if the repository does not use authentication.
  16698. #git_pillar_password: \(aq\(aq
  16699. # By default, Salt will not authenticate to an HTTP (non\-HTTPS) remote.
  16700. # This parameter enables authentication over HTTP.
  16701. #git_pillar_insecure_auth: False
  16702. # Along with git_pillar_privkey (and optionally git_pillar_passphrase),
  16703. # is used to authenticate to SSH remotes.
  16704. #git_pillar_pubkey: \(aq\(aq
  16705. # Along with git_pillar_pubkey (and optionally git_pillar_passphrase),
  16706. # is used to authenticate to SSH remotes.
  16707. #git_pillar_privkey: \(aq\(aq
  16708. # This parameter is optional, required only when the SSH key being used
  16709. # to authenticate is protected by a passphrase.
  16710. #git_pillar_passphrase: \(aq\(aq
  16711. # The refspecs fetched by git_pillar remotes
  16712. #git_pillar_refspecs:
  16713. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  16714. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  16715. # A master can cache pillars locally to bypass the expense of having to render them
  16716. # for each minion on every request. This feature should only be enabled in cases
  16717. # where pillar rendering time is known to be unsatisfactory and any attendant security
  16718. # concerns about storing pillars in a master cache have been addressed.
  16719. #
  16720. # When enabling this feature, be certain to read through the additional \(ga\(gapillar_cache_*\(ga\(ga
  16721. # configuration options to fully understand the tunable parameters and their implications.
  16722. #
  16723. # Note: setting \(ga\(gapillar_cache: True\(ga\(ga has no effect on targeting Minions with Pillars.
  16724. # See https://docs.saltstack.com/en/latest/topics/targeting/pillar.html
  16725. #pillar_cache: False
  16726. # If and only if a master has set \(ga\(gapillar_cache: True\(ga\(ga, the cache TTL controls the amount
  16727. # of time, in seconds, before the cache is considered invalid by a master and a fresh
  16728. # pillar is recompiled and stored.
  16729. #pillar_cache_ttl: 3600
  16730. # If and only if a master has set \(gapillar_cache: True\(ga, one of several storage providers
  16731. # can be utilized.
  16732. #
  16733. # \(gadisk\(ga: The default storage backend. This caches rendered pillars to the master cache.
  16734. # Rendered pillars are serialized and deserialized as msgpack structures for speed.
  16735. # Note that pillars are stored UNENCRYPTED. Ensure that the master cache
  16736. # has permissions set appropriately. (Same defaults are provided.)
  16737. #
  16738. # memory: [EXPERIMENTAL] An optional backend for pillar caches which uses a pure\-Python
  16739. # in\-memory data structure for maximal performance. There are several caveats,
  16740. # however. First, because each master worker contains its own in\-memory cache,
  16741. # there is no guarantee of cache consistency between minion requests. This
  16742. # works best in situations where the pillar rarely if ever changes. Secondly,
  16743. # and perhaps more importantly, this means that unencrypted pillars will
  16744. # be accessible to any process which can examine the memory of the \(ga\(gasalt\-master\(ga\(ga!
  16745. # This may represent a substantial security risk.
  16746. #
  16747. #pillar_cache_backend: disk
  16748. # A master can also cache GPG data locally to bypass the expense of having to render them
  16749. # for each minion on every request. This feature should only be enabled in cases
  16750. # where pillar rendering time is known to be unsatisfactory and any attendant security
  16751. # concerns about storing decrypted GPG data in a master cache have been addressed.
  16752. #
  16753. # When enabling this feature, be certain to read through the additional \(ga\(gagpg_cache_*\(ga\(ga
  16754. # configuration options to fully understand the tunable parameters and their implications.
  16755. #gpg_cache: False
  16756. # If and only if a master has set \(ga\(gagpg_cache: True\(ga\(ga, the cache TTL controls the amount
  16757. # of time, in seconds, before the cache is considered invalid by a master and a fresh
  16758. # pillar is recompiled and stored.
  16759. #gpg_cache_ttl: 86400
  16760. # If and only if a master has set \(gagpg_cache: True\(ga, one of several storage providers
  16761. # can be utilized. Available options are the same as \(ga\(gapillar_cache_backend\(ga\(ga.
  16762. #gpg_cache_backend: disk
  16763. ###### Reactor Settings #####
  16764. ###########################################
  16765. # Define a salt reactor. See https://docs.saltstack.com/en/latest/topics/reactor/
  16766. #reactor: []
  16767. #Set the TTL for the cache of the reactor configuration.
  16768. #reactor_refresh_interval: 60
  16769. #Configure the number of workers for the runner/wheel in the reactor.
  16770. #reactor_worker_threads: 10
  16771. #Define the queue size for workers in the reactor.
  16772. #reactor_worker_hwm: 10000
  16773. ##### Syndic settings #####
  16774. ##########################################
  16775. # The Salt syndic is used to pass commands through a master from a higher
  16776. # master. Using the syndic is simple. If this is a master that will have
  16777. # syndic servers(s) below it, then set the "order_masters" setting to True.
  16778. #
  16779. # If this is a master that will be running a syndic daemon for passthrough, then
  16780. # the "syndic_master" setting needs to be set to the location of the master server
  16781. # to receive commands from.
  16782. # Set the order_masters setting to True if this master will command lower
  16783. # masters\(aq syndic interfaces.
  16784. #order_masters: False
  16785. # If this master will be running a salt syndic daemon, syndic_master tells
  16786. # this master where to receive commands from.
  16787. #syndic_master: masterofmasters
  16788. # This is the \(aqret_port\(aq of the MasterOfMaster:
  16789. #syndic_master_port: 4506
  16790. # PID file of the syndic daemon:
  16791. #syndic_pidfile: /var/run/salt\-syndic.pid
  16792. # The log file of the salt\-syndic daemon:
  16793. #syndic_log_file: /var/log/salt/syndic
  16794. # The behaviour of the multi\-syndic when connection to a master of masters failed.
  16795. # Can specify \(ga\(garandom\(ga\(ga (default) or \(ga\(gaordered\(ga\(ga. If set to \(ga\(garandom\(ga\(ga, masters
  16796. # will be iterated in random order. If \(ga\(gaordered\(ga\(ga is specified, the configured
  16797. # order will be used.
  16798. #syndic_failover: random
  16799. # The number of seconds for the salt client to wait for additional syndics to
  16800. # check in with their lists of expected minions before giving up.
  16801. #syndic_wait: 5
  16802. ##### Peer Publish settings #####
  16803. ##########################################
  16804. # Salt minions can send commands to other minions, but only if the minion is
  16805. # allowed to. By default "Peer Publication" is disabled, and when enabled it
  16806. # is enabled for specific minions and specific commands. This allows secure
  16807. # compartmentalization of commands based on individual minions.
  16808. # The configuration uses regular expressions to match minions and then a list
  16809. # of regular expressions to match functions. The following will allow the
  16810. # minion authenticated as foo.example.com to execute functions from the test
  16811. # and pkg modules.
  16812. #peer:
  16813. # foo.example.com:
  16814. # \- test.*
  16815. # \- pkg.*
  16816. #
  16817. # This will allow all minions to execute all commands:
  16818. #peer:
  16819. # .*:
  16820. # \- .*
  16821. #
  16822. # This is not recommended, since it would allow anyone who gets root on any
  16823. # single minion to instantly have root on all of the minions!
  16824. # Minions can also be allowed to execute runners from the salt master.
  16825. # Since executing a runner from the minion could be considered a security risk,
  16826. # it needs to be enabled. This setting functions just like the peer setting
  16827. # except that it opens up runners instead of module functions.
  16828. #
  16829. # All peer runner support is turned off by default and must be enabled before
  16830. # using. This will enable all peer runners for all minions:
  16831. #peer_run:
  16832. # .*:
  16833. # \- .*
  16834. #
  16835. # To enable just the manage.up runner for the minion foo.example.com:
  16836. #peer_run:
  16837. # foo.example.com:
  16838. # \- manage.up
  16839. #
  16840. #
  16841. ##### Mine settings #####
  16842. #####################################
  16843. # Restrict mine.get access from minions. By default any minion has a full access
  16844. # to get all mine data from master cache. In acl definion below, only pcre matches
  16845. # are allowed.
  16846. # mine_get:
  16847. # .*:
  16848. # \- .*
  16849. #
  16850. # The example below enables minion foo.example.com to get \(aqnetwork.interfaces\(aq mine
  16851. # data only, minions web* to get all network.* and disk.* mine data and all other
  16852. # minions won\(aqt get any mine data.
  16853. # mine_get:
  16854. # foo.example.com:
  16855. # \- network.interfaces
  16856. # web.*:
  16857. # \- network.*
  16858. # \- disk.*
  16859. ##### Logging settings #####
  16860. ##########################################
  16861. # The location of the master log file
  16862. # The master log can be sent to a regular file, local path name, or network
  16863. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  16864. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  16865. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  16866. #log_file: /var/log/salt/master
  16867. #log_file: file:///dev/log
  16868. #log_file: udp://loghost:10514
  16869. #log_file: /var/log/salt/master
  16870. #key_logfile: /var/log/salt/key
  16871. # The level of messages to send to the console.
  16872. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  16873. #
  16874. # The following log levels are considered INSECURE and may log sensitive data:
  16875. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  16876. #
  16877. #log_level: warning
  16878. # The level of messages to send to the log file.
  16879. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  16880. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  16881. #log_level_logfile: warning
  16882. # The date and time format used in log messages. Allowed date/time formatting
  16883. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  16884. #log_datefmt: \(aq%H:%M:%S\(aq
  16885. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  16886. # The format of the console logging messages. Allowed formatting options can
  16887. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  16888. #
  16889. # Console log colors are specified by these additional formatters:
  16890. #
  16891. # %(colorlevel)s
  16892. # %(colorname)s
  16893. # %(colorprocess)s
  16894. # %(colormsg)s
  16895. #
  16896. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  16897. # the coloring of the messages, these color formatters also include padding as
  16898. # well. Color LogRecord attributes are only available for console logging.
  16899. #
  16900. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  16901. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  16902. #
  16903. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  16904. # This can be used to control logging levels more specificically. This
  16905. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  16906. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  16907. # log_granular_levels:
  16908. # \(aqsalt\(aq: \(aqwarning\(aq
  16909. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  16910. #
  16911. #log_granular_levels: {}
  16912. ##### Node Groups ######
  16913. ##########################################
  16914. # Node groups allow for logical groupings of minion nodes. A group consists of
  16915. # a group name and a compound target. Nodgroups can reference other nodegroups
  16916. # with \(aqN@\(aq classifier. Ensure that you do not have circular references.
  16917. #
  16918. #nodegroups:
  16919. # group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  16920. # group2: \(aqG@os:Debian and foo.domain.com\(aq
  16921. # group3: \(aqG@os:Debian and N@group1\(aq
  16922. # group4:
  16923. # \- \(aqG@foo:bar\(aq
  16924. # \- \(aqor\(aq
  16925. # \- \(aqG@foo:baz\(aq
  16926. ##### Range Cluster settings #####
  16927. ##########################################
  16928. # The range server (and optional port) that serves your cluster information
  16929. # https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec
  16930. #
  16931. #range_server: range:80
  16932. ##### Windows Software Repo settings #####
  16933. ###########################################
  16934. # Location of the repo on the master:
  16935. #winrepo_dir_ng: \(aq/srv/salt/win/repo\-ng\(aq
  16936. #
  16937. # List of git repositories to include with the local repo:
  16938. #winrepo_remotes_ng:
  16939. # \- \(aqhttps://github.com/saltstack/salt\-winrepo\-ng.git\(aq
  16940. ##### Windows Software Repo settings \- Pre 2015.8 #####
  16941. ########################################################
  16942. # Legacy repo settings for pre\-2015.8 Windows minions.
  16943. #
  16944. # Location of the repo on the master:
  16945. #winrepo_dir: \(aq/srv/salt/win/repo\(aq
  16946. #
  16947. # Location of the master\(aqs repo cache file:
  16948. #winrepo_mastercachefile: \(aq/srv/salt/win/repo/winrepo.p\(aq
  16949. #
  16950. # List of git repositories to include with the local repo:
  16951. #winrepo_remotes:
  16952. # \- \(aqhttps://github.com/saltstack/salt\-winrepo.git\(aq
  16953. # The refspecs fetched by winrepo remotes
  16954. #winrepo_refspecs:
  16955. # \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  16956. # \- \(aq+refs/tags/*:refs/tags/*\(aq
  16957. #
  16958. ##### Returner settings ######
  16959. ############################################
  16960. # Which returner(s) will be used for minion\(aqs result:
  16961. #return: mysql
  16962. ###### Miscellaneous settings ######
  16963. ############################################
  16964. # Default match type for filtering events tags: startswith, endswith, find, regex, fnmatch
  16965. #event_match_type: startswith
  16966. # Save runner returns to the job cache
  16967. #runner_returns: True
  16968. # Permanently include any available Python 3rd party modules into thin and minimal Salt
  16969. # when they are generated for Salt\-SSH or other purposes.
  16970. # The modules should be named by the names they are actually imported inside the Python.
  16971. # The value of the parameters can be either one module or a comma separated list of them.
  16972. #thin_extra_mods: foo,bar
  16973. #min_extra_mods: foo,bar,baz
  16974. ###### Keepalive settings ######
  16975. ############################################
  16976. # Warning: Failure to set TCP keepalives on the salt\-master can result in
  16977. # not detecting the loss of a minion when the connection is lost or when
  16978. # its host has been terminated without first closing the socket.
  16979. # Salt\(aqs Presence System depends on this connection status to know if a minion
  16980. # is "present".
  16981. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  16982. # the OS. If connections between the minion and the master pass through
  16983. # a state tracking device such as a firewall or VPN gateway, there is
  16984. # the risk that it could tear down the connection the master and minion
  16985. # without informing either party that their connection has been taken away.
  16986. # Enabling TCP Keepalives prevents this from happening.
  16987. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  16988. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  16989. #tcp_keepalive: True
  16990. # How long before the first keepalive should be sent in seconds. Default 300
  16991. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  16992. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  16993. #tcp_keepalive_idle: 300
  16994. # How many lost probes are needed to consider the connection lost. Default \-1
  16995. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  16996. #tcp_keepalive_cnt: \-1
  16997. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  16998. # use OS defaults, typically 75 seconds on Linux, see
  16999. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  17000. #tcp_keepalive_intvl: \-1
  17001. ##### NetAPI settings #####
  17002. ############################################
  17003. # Allow the raw_shell parameter to be used when calling Salt SSH client via API
  17004. #netapi_allow_raw_shell: True
  17005. .ft P
  17006. .fi
  17007. .UNINDENT
  17008. .UNINDENT
  17009. .SS Example minion configuration file
  17010. .INDENT 0.0
  17011. .INDENT 3.5
  17012. .sp
  17013. .nf
  17014. .ft C
  17015. ##### Primary configuration settings #####
  17016. ##########################################
  17017. # This configuration file is used to manage the behavior of the Salt Minion.
  17018. # With the exception of the location of the Salt Master Server, values that are
  17019. # commented out but have an empty line after the comment are defaults that need
  17020. # not be set in the config. If there is no blank line after the comment, the
  17021. # value is presented as an example and is not the default.
  17022. # Per default the minion will automatically include all config files
  17023. # from minion.d/*.conf (minion.d is a directory in the same directory
  17024. # as the main minion config file).
  17025. #default_include: minion.d/*.conf
  17026. # Set the location of the salt master server. If the master server cannot be
  17027. # resolved, then the minion will fail to start.
  17028. #master: salt
  17029. # Set http proxy information for the minion when doing requests
  17030. #proxy_host:
  17031. #proxy_port:
  17032. #proxy_username:
  17033. #proxy_password:
  17034. # List of hosts to bypass HTTP proxy. This key does nothing unless proxy_host etc is
  17035. # configured, it does not support any kind of wildcards.
  17036. #no_proxy: []
  17037. # If multiple masters are specified in the \(aqmaster\(aq setting, the default behavior
  17038. # is to always try to connect to them in the order they are listed. If random_master
  17039. # is set to True, the order will be randomized upon Minion startup instead. This can
  17040. # be helpful in distributing the load of many minions executing salt\-call requests,
  17041. # for example, from a cron job. If only one master is listed, this setting is ignored
  17042. # and a warning will be logged.
  17043. #random_master: False
  17044. # NOTE: Deprecated in Salt 2019.2.0. Use \(aqrandom_master\(aq instead.
  17045. #master_shuffle: False
  17046. # Minions can connect to multiple masters simultaneously (all masters
  17047. # are "hot"), or can be configured to failover if a master becomes
  17048. # unavailable. Multiple hot masters are configured by setting this
  17049. # value to "str". Failover masters can be requested by setting
  17050. # to "failover". MAKE SURE TO SET master_alive_interval if you are
  17051. # using failover.
  17052. # Setting master_type to \(aqdisable\(aq let\(aqs you have a running minion (with engines and
  17053. # beacons) without a master connection
  17054. # master_type: str
  17055. # Poll interval in seconds for checking if the master is still there. Only
  17056. # respected if master_type above is "failover". To disable the interval entirely,
  17057. # set the value to \-1. (This may be necessary on machines which have high numbers
  17058. # of TCP connections, such as load balancers.)
  17059. # master_alive_interval: 30
  17060. # If the minion is in multi\-master mode and the master_type configuration option
  17061. # is set to "failover", this setting can be set to "True" to force the minion
  17062. # to fail back to the first master in the list if the first master is back online.
  17063. #master_failback: False
  17064. # If the minion is in multi\-master mode, the "master_type" configuration is set to
  17065. # "failover", and the "master_failback" option is enabled, the master failback
  17066. # interval can be set to ping the top master with this interval, in seconds.
  17067. #master_failback_interval: 0
  17068. # Set whether the minion should connect to the master via IPv6:
  17069. #ipv6: False
  17070. # Set the number of seconds to wait before attempting to resolve
  17071. # the master hostname if name resolution fails. Defaults to 30 seconds.
  17072. # Set to zero if the minion should shutdown and not retry.
  17073. # retry_dns: 30
  17074. # Set the number of times to attempt to resolve
  17075. # the master hostname if name resolution fails. Defaults to None,
  17076. # which will attempt the resolution indefinitely.
  17077. # retry_dns_count: 3
  17078. # Set the port used by the master reply and authentication server.
  17079. #master_port: 4506
  17080. # The user to run salt.
  17081. #user: root
  17082. # The user to run salt remote execution commands as via sudo. If this option is
  17083. # enabled then sudo will be used to change the active user executing the remote
  17084. # command. If enabled the user will need to be allowed access via the sudoers
  17085. # file for the user that the salt minion is configured to run as. The most
  17086. # common option would be to use the root user. If this option is set the user
  17087. # option should also be set to a non\-root user. If migrating from a root minion
  17088. # to a non root minion the minion cache should be cleared and the minion pki
  17089. # directory will need to be changed to the ownership of the new user.
  17090. #sudo_user: root
  17091. # Specify the location of the daemon process ID file.
  17092. #pidfile: /var/run/salt\-minion.pid
  17093. # The root directory prepended to these options: pki_dir, cachedir, log_file,
  17094. # sock_dir, pidfile.
  17095. #root_dir: /
  17096. # The path to the minion\(aqs configuration file.
  17097. #conf_file: /etc/salt/minion
  17098. # The directory to store the pki information in
  17099. #pki_dir: /etc/salt/pki/minion
  17100. # Explicitly declare the id for this minion to use, if left commented the id
  17101. # will be the hostname as returned by the python call: socket.getfqdn()
  17102. # Since salt uses detached ids it is possible to run multiple minions on the
  17103. # same machine but with different ids, this can be useful for salt compute
  17104. # clusters.
  17105. #id:
  17106. # Cache the minion id to a file when the minion\(aqs id is not statically defined
  17107. # in the minion config. Defaults to "True". This setting prevents potential
  17108. # problems when automatic minion id resolution changes, which can cause the
  17109. # minion to lose connection with the master. To turn off minion id caching,
  17110. # set this config to \(ga\(gaFalse\(ga\(ga.
  17111. #minion_id_caching: True
  17112. # Append a domain to a hostname in the event that it does not exist. This is
  17113. # useful for systems where socket.getfqdn() does not actually result in a
  17114. # FQDN (for instance, Solaris).
  17115. #append_domain:
  17116. # Custom static grains for this minion can be specified here and used in SLS
  17117. # files just like all other grains. This example sets 4 custom grains, with
  17118. # the \(aqroles\(aq grain having two values that can be matched against.
  17119. #grains:
  17120. # roles:
  17121. # \- webserver
  17122. # \- memcache
  17123. # deployment: datacenter4
  17124. # cabinet: 13
  17125. # cab_u: 14\-15
  17126. #
  17127. # Where cache data goes.
  17128. # This data may contain sensitive data and should be protected accordingly.
  17129. #cachedir: /var/cache/salt/minion
  17130. # Append minion_id to these directories. Helps with
  17131. # multiple proxies and minions running on the same machine.
  17132. # Allowed elements in the list: pki_dir, cachedir, extension_modules
  17133. # Normally not needed unless running several proxies and/or minions on the same machine
  17134. # Defaults to [\(aqcachedir\(aq] for proxies, [] (empty list) for regular minions
  17135. #append_minionid_config_dirs:
  17136. # Verify and set permissions on configuration directories at startup.
  17137. #verify_env: True
  17138. # The minion can locally cache the return data from jobs sent to it, this
  17139. # can be a good way to keep track of jobs the minion has executed
  17140. # (on the minion side). By default this feature is disabled, to enable, set
  17141. # cache_jobs to True.
  17142. #cache_jobs: False
  17143. # Set the directory used to hold unix sockets.
  17144. #sock_dir: /var/run/salt/minion
  17145. # The minion can take a while to start up when lspci and/or dmidecode is used
  17146. # to populate the grains for the minion. Set this to False if you do not need
  17147. # GPU hardware grains for your minion.
  17148. # enable_gpu_grains: True
  17149. # Set the default outputter used by the salt\-call command. The default is
  17150. # "nested".
  17151. #output: nested
  17152. # To set a list of additional directories to search for salt outputters, set the
  17153. # outputter_dirs option.
  17154. #outputter_dirs: []
  17155. # By default output is colored. To disable colored output, set the color value
  17156. # to False.
  17157. #color: True
  17158. # Do not strip off the colored output from nested results and state outputs
  17159. # (true by default).
  17160. # strip_colors: False
  17161. # Backup files that are replaced by file.managed and file.recurse under
  17162. # \(aqcachedir\(aq/file_backup relative to their original location and appended
  17163. # with a timestamp. The only valid setting is "minion". Disabled by default.
  17164. #
  17165. # Alternatively this can be specified for each file in state files:
  17166. # /etc/ssh/sshd_config:
  17167. # file.managed:
  17168. # \- source: salt://ssh/sshd_config
  17169. # \- backup: minion
  17170. #
  17171. #backup_mode: minion
  17172. # When waiting for a master to accept the minion\(aqs public key, salt will
  17173. # continuously attempt to reconnect until successful. This is the time, in
  17174. # seconds, between those reconnection attempts.
  17175. #acceptance_wait_time: 10
  17176. # If this is nonzero, the time between reconnection attempts will increase by
  17177. # acceptance_wait_time seconds per iteration, up to this maximum. If this is
  17178. # set to zero, the time between reconnection attempts will stay constant.
  17179. #acceptance_wait_time_max: 0
  17180. # If the master rejects the minion\(aqs public key, retry instead of exiting.
  17181. # Rejected keys will be handled the same as waiting on acceptance.
  17182. #rejected_retry: False
  17183. # When the master key changes, the minion will try to re\-auth itself to receive
  17184. # the new master key. In larger environments this can cause a SYN flood on the
  17185. # master because all minions try to re\-auth immediately. To prevent this and
  17186. # have a minion wait for a random amount of time, use this optional parameter.
  17187. # The wait\-time will be a random number of seconds between 0 and the defined value.
  17188. #random_reauth_delay: 60
  17189. # To avoid overloading a master when many minions startup at once, a randomized
  17190. # delay may be set to tell the minions to wait before connecting to the master.
  17191. # This value is the number of seconds to choose from for a random number. For
  17192. # example, setting this value to 60 will choose a random number of seconds to delay
  17193. # on startup between zero seconds and sixty seconds. Setting to \(aq0\(aq will disable
  17194. # this feature.
  17195. #random_startup_delay: 0
  17196. # When waiting for a master to accept the minion\(aqs public key, salt will
  17197. # continuously attempt to reconnect until successful. This is the timeout value,
  17198. # in seconds, for each individual attempt. After this timeout expires, the minion
  17199. # will wait for acceptance_wait_time seconds before trying again. Unless your master
  17200. # is under unusually heavy load, this should be left at the default.
  17201. #auth_timeout: 60
  17202. # Number of consecutive SaltReqTimeoutError that are acceptable when trying to
  17203. # authenticate.
  17204. #auth_tries: 7
  17205. # The number of attempts to connect to a master before giving up.
  17206. # Set this to \-1 for unlimited attempts. This allows for a master to have
  17207. # downtime and the minion to reconnect to it later when it comes back up.
  17208. # In \(aqfailover\(aq mode, it is the number of attempts for each set of masters.
  17209. # In this mode, it will cycle through the list of masters for each attempt.
  17210. #
  17211. # This is different than auth_tries because auth_tries attempts to
  17212. # retry auth attempts with a single master. auth_tries is under the
  17213. # assumption that you can connect to the master but not gain
  17214. # authorization from it. master_tries will still cycle through all
  17215. # the masters in a given try, so it is appropriate if you expect
  17216. # occasional downtime from the master(s).
  17217. #master_tries: 1
  17218. # If authentication fails due to SaltReqTimeoutError during a ping_interval,
  17219. # cause sub minion process to restart.
  17220. #auth_safemode: False
  17221. # Ping Master to ensure connection is alive (minutes).
  17222. #ping_interval: 0
  17223. # To auto recover minions if master changes IP address (DDNS)
  17224. # auth_tries: 10
  17225. # auth_safemode: False
  17226. # ping_interval: 2
  17227. #
  17228. # Minions won\(aqt know master is missing until a ping fails. After the ping fail,
  17229. # the minion will attempt authentication and likely fails out and cause a restart.
  17230. # When the minion restarts it will resolve the masters IP and attempt to reconnect.
  17231. # If you don\(aqt have any problems with syn\-floods, don\(aqt bother with the
  17232. # three recon_* settings described below, just leave the defaults!
  17233. #
  17234. # The ZeroMQ pull\-socket that binds to the masters publishing interface tries
  17235. # to reconnect immediately, if the socket is disconnected (for example if
  17236. # the master processes are restarted). In large setups this will have all
  17237. # minions reconnect immediately which might flood the master (the ZeroMQ\-default
  17238. # is usually a 100ms delay). To prevent this, these three recon_* settings
  17239. # can be used.
  17240. # recon_default: the interval in milliseconds that the socket should wait before
  17241. # trying to reconnect to the master (1000ms = 1 second)
  17242. #
  17243. # recon_max: the maximum time a socket should wait. each interval the time to wait
  17244. # is calculated by doubling the previous time. if recon_max is reached,
  17245. # it starts again at recon_default. Short example:
  17246. #
  17247. # reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  17248. # reconnect 2: \(aqrecon_default\(aq * 2
  17249. # reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  17250. # reconnect 4: value from previous interval * 2
  17251. # reconnect 5: value from previous interval * 2
  17252. # reconnect x: if value >= recon_max, it starts again with recon_default
  17253. #
  17254. # recon_randomize: generate a random wait time on minion start. The wait time will
  17255. # be a random value between recon_default and recon_default +
  17256. # recon_max. Having all minions reconnect with the same recon_default
  17257. # and recon_max value kind of defeats the purpose of being able to
  17258. # change these settings. If all minions have the same values and your
  17259. # setup is quite large (several thousand minions), they will still
  17260. # flood the master. The desired behavior is to have timeframe within
  17261. # all minions try to reconnect.
  17262. #
  17263. # Example on how to use these settings. The goal: have all minions reconnect within a
  17264. # 60 second timeframe on a disconnect.
  17265. # recon_default: 1000
  17266. # recon_max: 59000
  17267. # recon_randomize: True
  17268. #
  17269. # Each minion will have a randomized reconnect value between \(aqrecon_default\(aq
  17270. # and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  17271. # 60000ms (or between 1 and 60 seconds). The generated random\-value will be
  17272. # doubled after each attempt to reconnect. Lets say the generated random
  17273. # value is 11 seconds (or 11000ms).
  17274. # reconnect 1: wait 11 seconds
  17275. # reconnect 2: wait 22 seconds
  17276. # reconnect 3: wait 33 seconds
  17277. # reconnect 4: wait 44 seconds
  17278. # reconnect 5: wait 55 seconds
  17279. # reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  17280. # reconnect 7: wait 11 seconds
  17281. # reconnect 8: wait 22 seconds
  17282. # reconnect 9: wait 33 seconds
  17283. # reconnect x: etc.
  17284. #
  17285. # In a setup with ~6000 thousand hosts these settings would average the reconnects
  17286. # to about 100 per second and all hosts would be reconnected within 60 seconds.
  17287. # recon_default: 100
  17288. # recon_max: 5000
  17289. # recon_randomize: False
  17290. #
  17291. #
  17292. # The loop_interval sets how long in seconds the minion will wait between
  17293. # evaluating the scheduler and running cleanup tasks. This defaults to 1
  17294. # second on the minion scheduler.
  17295. #loop_interval: 1
  17296. # Some installations choose to start all job returns in a cache or a returner
  17297. # and forgo sending the results back to a master. In this workflow, jobs
  17298. # are most often executed with \-\-async from the Salt CLI and then results
  17299. # are evaluated by examining job caches on the minions or any configured returners.
  17300. # WARNING: Setting this to False will **disable** returns back to the master.
  17301. #pub_ret: True
  17302. # The grains can be merged, instead of overridden, using this option.
  17303. # This allows custom grains to defined different subvalues of a dictionary
  17304. # grain. By default this feature is disabled, to enable set grains_deep_merge
  17305. # to \(ga\(gaTrue\(ga\(ga.
  17306. #grains_deep_merge: False
  17307. # The grains_refresh_every setting allows for a minion to periodically check
  17308. # its grains to see if they have changed and, if so, to inform the master
  17309. # of the new grains. This operation is moderately expensive, therefore
  17310. # care should be taken not to set this value too low.
  17311. #
  17312. # Note: This value is expressed in __minutes__!
  17313. #
  17314. # A value of 10 minutes is a reasonable default.
  17315. #
  17316. # If the value is set to zero, this check is disabled.
  17317. #grains_refresh_every: 1
  17318. # Cache grains on the minion. Default is False.
  17319. #grains_cache: False
  17320. # Cache rendered pillar data on the minion. Default is False.
  17321. # This may cause \(aqcachedir\(aq/pillar to contain sensitive data that should be
  17322. # protected accordingly.
  17323. #minion_pillar_cache: False
  17324. # Grains cache expiration, in seconds. If the cache file is older than this
  17325. # number of seconds then the grains cache will be dumped and fully re\-populated
  17326. # with fresh data. Defaults to 5 minutes. Will have no effect if \(aqgrains_cache\(aq
  17327. # is not enabled.
  17328. # grains_cache_expiration: 300
  17329. # Determines whether or not the salt minion should run scheduled mine updates.
  17330. # Defaults to "True". Set to "False" to disable the scheduled mine updates
  17331. # (this essentially just does not add the mine update function to the minion\(aqs
  17332. # scheduler).
  17333. #mine_enabled: True
  17334. # Determines whether or not scheduled mine updates should be accompanied by a job
  17335. # return for the job cache. Defaults to "False". Set to "True" to include job
  17336. # returns in the job cache for mine updates.
  17337. #mine_return_job: False
  17338. # Example functions that can be run via the mine facility
  17339. # NO mine functions are established by default.
  17340. # Note these can be defined in the minion\(aqs pillar as well.
  17341. #mine_functions:
  17342. # test.ping: []
  17343. # network.ip_addrs:
  17344. # interface: eth0
  17345. # cidr: \(aq10.0.0.0/8\(aq
  17346. # The number of minutes between mine updates.
  17347. #mine_interval: 60
  17348. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  17349. # process communications. ipc_mode is set to \(aqtcp\(aq on such systems.
  17350. #ipc_mode: ipc
  17351. # Overwrite the default tcp ports used by the minion when ipc_mode is set to \(aqtcp\(aq
  17352. #tcp_pub_port: 4510
  17353. #tcp_pull_port: 4511
  17354. # Passing very large events can cause the minion to consume large amounts of
  17355. # memory. This value tunes the maximum size of a message allowed onto the
  17356. # minion event bus. The value is expressed in bytes.
  17357. #max_event_size: 1048576
  17358. # When a minion starts up it sends a notification on the event bus with a tag
  17359. # that looks like this: \(gasalt/minion/<minion_id>/start\(ga. For historical reasons
  17360. # the minion also sends a similar event with an event tag like this:
  17361. # \(gaminion_start\(ga. This duplication can cause a lot of clutter on the event bus
  17362. # when there are many minions. Set \(gaenable_legacy_startup_events: False\(ga in the
  17363. # minion config to ensure only the \(gasalt/minion/<minion_id>/start\(ga events are
  17364. # sent. Beginning with the \(gaSodium\(ga Salt release this option will default to
  17365. # \(gaFalse\(ga
  17366. #enable_legacy_startup_events: True
  17367. # To detect failed master(s) and fire events on connect/disconnect, set
  17368. # master_alive_interval to the number of seconds to poll the masters for
  17369. # connection events.
  17370. #
  17371. #master_alive_interval: 30
  17372. # The minion can include configuration from other files. To enable this,
  17373. # pass a list of paths to this option. The paths can be either relative or
  17374. # absolute; if relative, they are considered to be relative to the directory
  17375. # the main minion configuration file lives in (this file). Paths can make use
  17376. # of shell\-style globbing. If no files are matched by a path passed to this
  17377. # option then the minion will log a warning message.
  17378. #
  17379. # Include a config file from some other path:
  17380. # include: /etc/salt/extra_config
  17381. #
  17382. # Include config from several files and directories:
  17383. #include:
  17384. # \- /etc/salt/extra_config
  17385. # \- /etc/roles/webserver
  17386. # The syndic minion can verify that it is talking to the correct master via the
  17387. # key fingerprint of the higher\-level master with the "syndic_finger" config.
  17388. #syndic_finger: \(aq\(aq
  17389. #
  17390. #
  17391. #
  17392. ##### Minion module management #####
  17393. ##########################################
  17394. # Disable specific modules. This allows the admin to limit the level of
  17395. # access the master has to the minion. The default here is the empty list,
  17396. # below is an example of how this needs to be formatted in the config file
  17397. #disable_modules:
  17398. # \- cmdmod
  17399. # \- test
  17400. #disable_returners: []
  17401. # This is the reverse of disable_modules. The default, like disable_modules, is the empty list,
  17402. # but if this option is set to *anything* then *only* those modules will load.
  17403. # Note that this is a very large hammer and it can be quite difficult to keep the minion working
  17404. # the way you think it should since Salt uses many modules internally itself. At a bare minimum
  17405. # you need the following enabled or else the minion won\(aqt start.
  17406. #whitelist_modules:
  17407. # \- cmdmod
  17408. # \- test
  17409. # \- config
  17410. # Modules can be loaded from arbitrary paths. This enables the easy deployment
  17411. # of third party modules. Modules for returners and minions can be loaded.
  17412. # Specify a list of extra directories to search for minion modules and
  17413. # returners. These paths must be fully qualified!
  17414. #module_dirs: []
  17415. #returner_dirs: []
  17416. #states_dirs: []
  17417. #render_dirs: []
  17418. #utils_dirs: []
  17419. #
  17420. # A module provider can be statically overwritten or extended for the minion
  17421. # via the providers option, in this case the default module will be
  17422. # overwritten by the specified module. In this example the pkg module will
  17423. # be provided by the yumpkg5 module instead of the system default.
  17424. #providers:
  17425. # pkg: yumpkg5
  17426. #
  17427. # Enable Cython modules searching and loading. (Default: False)
  17428. #cython_enable: False
  17429. #
  17430. # Specify a max size (in bytes) for modules on import. This feature is currently
  17431. # only supported on *nix operating systems and requires psutil.
  17432. # modules_max_memory: \-1
  17433. ##### State Management Settings #####
  17434. ###########################################
  17435. # The default renderer to use in SLS files. This is configured as a
  17436. # pipe\-delimited expression. For example, jinja|yaml will first run jinja
  17437. # templating on the SLS file, and then load the result as YAML. This syntax is
  17438. # documented in further depth at the following URL:
  17439. #
  17440. # https://docs.saltstack.com/en/latest/ref/renderers/#composing\-renderers
  17441. #
  17442. # NOTE: The "shebang" prefix (e.g. "#!jinja|yaml") described in the
  17443. # documentation linked above is for use in an SLS file to override the default
  17444. # renderer, it should not be used when configuring the renderer here.
  17445. #
  17446. #renderer: jinja|yaml
  17447. #
  17448. # The failhard option tells the minions to stop immediately after the first
  17449. # failure detected in the state execution. Defaults to False.
  17450. #failhard: False
  17451. #
  17452. # Reload the modules prior to a highstate run.
  17453. #autoload_dynamic_modules: True
  17454. #
  17455. # clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  17456. # the dynamic modules on the master, this means that if a dynamic module is
  17457. # not on the master it will be deleted from the minion. By default, this is
  17458. # enabled and can be disabled by changing this value to False.
  17459. #clean_dynamic_modules: True
  17460. #
  17461. # Normally, the minion is not isolated to any single environment on the master
  17462. # when running states, but the environment can be isolated on the minion side
  17463. # by statically setting it. Remember that the recommended way to manage
  17464. # environments is to isolate via the top file.
  17465. #environment: None
  17466. #
  17467. # Isolates the pillar environment on the minion side. This functions the same
  17468. # as the environment setting, but for pillar instead of states.
  17469. #pillarenv: None
  17470. #
  17471. # Set this option to True to force the pillarenv to be the same as the
  17472. # effective saltenv when running states. Note that if pillarenv is specified,
  17473. # this option will be ignored.
  17474. #pillarenv_from_saltenv: False
  17475. #
  17476. # Set this option to \(aqTrue\(aq to force a \(aqKeyError\(aq to be raised whenever an
  17477. # attempt to retrieve a named value from pillar fails. When this option is set
  17478. # to \(aqFalse\(aq, the failed attempt returns an empty string. Default is \(aqFalse\(aq.
  17479. #pillar_raise_on_missing: False
  17480. #
  17481. # If using the local file directory, then the state top file name needs to be
  17482. # defined, by default this is top.sls.
  17483. #state_top: top.sls
  17484. #
  17485. # Run states when the minion daemon starts. To enable, set startup_states to:
  17486. # \(aqhighstate\(aq \-\- Execute state.highstate
  17487. # \(aqsls\(aq \-\- Read in the sls_list option and execute the named sls files
  17488. # \(aqtop\(aq \-\- Read top_file option and execute based on that file on the Master
  17489. #startup_states: \(aq\(aq
  17490. #
  17491. # List of states to run when the minion starts up if startup_states is \(aqsls\(aq:
  17492. #sls_list:
  17493. # \- edit.vim
  17494. # \- hyper
  17495. #
  17496. # List of grains to pass in start event when minion starts up:
  17497. #start_event_grains:
  17498. # \- machine_id
  17499. # \- uuid
  17500. #
  17501. # Top file to execute if startup_states is \(aqtop\(aq:
  17502. #top_file: \(aq\(aq
  17503. # Automatically aggregate all states that have support for mod_aggregate by
  17504. # setting to True. Or pass a list of state module names to automatically
  17505. # aggregate just those types.
  17506. #
  17507. # state_aggregate:
  17508. # \- pkg
  17509. #
  17510. #state_aggregate: False
  17511. # Disable requisites during state runs by specifying a single requisite
  17512. # or a list of requisites to disable.
  17513. #
  17514. # disabled_requisites: require_in
  17515. #
  17516. # disabled_requisites:
  17517. # \- require
  17518. # \- require_in
  17519. ##### File Directory Settings #####
  17520. ##########################################
  17521. # The Salt Minion can redirect all file server operations to a local directory,
  17522. # this allows for the same state tree that is on the master to be used if
  17523. # copied completely onto the minion. This is a literal copy of the settings on
  17524. # the master but used to reference a local directory on the minion.
  17525. # Set the file client. The client defaults to looking on the master server for
  17526. # files, but can be directed to look at the local file directory setting
  17527. # defined below by setting it to "local". Setting a local file_client runs the
  17528. # minion in masterless mode.
  17529. #file_client: remote
  17530. # The file directory works on environments passed to the minion, each environment
  17531. # can have multiple root directories, the subdirectories in the multiple file
  17532. # roots cannot match, otherwise the downloaded files will not be able to be
  17533. # reliably ensured. A base environment is required to house the top file.
  17534. # Example:
  17535. # file_roots:
  17536. # base:
  17537. # \- /srv/salt/
  17538. # dev:
  17539. # \- /srv/salt/dev/services
  17540. # \- /srv/salt/dev/states
  17541. # prod:
  17542. # \- /srv/salt/prod/services
  17543. # \- /srv/salt/prod/states
  17544. #
  17545. #file_roots:
  17546. # base:
  17547. # \- /srv/salt
  17548. # Uncomment the line below if you do not want the file_server to follow
  17549. # symlinks when walking the filesystem tree. This is set to True
  17550. # by default. Currently this only applies to the default roots
  17551. # fileserver_backend.
  17552. #fileserver_followsymlinks: False
  17553. #
  17554. # Uncomment the line below if you do not want symlinks to be
  17555. # treated as the files they are pointing to. By default this is set to
  17556. # False. By uncommenting the line below, any detected symlink while listing
  17557. # files on the Master will not be returned to the Minion.
  17558. #fileserver_ignoresymlinks: True
  17559. #
  17560. # By default, the Salt fileserver recurses fully into all defined environments
  17561. # to attempt to find files. To limit this behavior so that the fileserver only
  17562. # traverses directories with SLS files and special Salt directories like _modules,
  17563. # enable the option below. This might be useful for installations where a file root
  17564. # has a very large number of files and performance is negatively impacted. Default
  17565. # is False.
  17566. #fileserver_limit_traversal: False
  17567. # The hash_type is the hash to use when discovering the hash of a file on
  17568. # the local fileserver. The default is sha256, but md5, sha1, sha224, sha384
  17569. # and sha512 are also supported.
  17570. #
  17571. # WARNING: While md5 and sha1 are also supported, do not use them due to the
  17572. # high chance of possible collisions and thus security breach.
  17573. #
  17574. # Warning: Prior to changing this value, the minion should be stopped and all
  17575. # Salt caches should be cleared.
  17576. #hash_type: sha256
  17577. # The Salt pillar is searched for locally if file_client is set to local. If
  17578. # this is the case, and pillar data is defined, then the pillar_roots need to
  17579. # also be configured on the minion:
  17580. #pillar_roots:
  17581. # base:
  17582. # \- /srv/pillar
  17583. # Set a hard\-limit on the size of the files that can be pushed to the master.
  17584. # It will be interpreted as megabytes. Default: 100
  17585. #file_recv_max_size: 100
  17586. #
  17587. #
  17588. ###### Security settings #####
  17589. ###########################################
  17590. # Enable "open mode", this mode still maintains encryption, but turns off
  17591. # authentication, this is only intended for highly secure environments or for
  17592. # the situation where your keys end up in a bad state. If you run in open mode
  17593. # you do so at your own risk!
  17594. #open_mode: False
  17595. # The size of key that should be generated when creating new keys.
  17596. #keysize: 2048
  17597. # Enable permissive access to the salt keys. This allows you to run the
  17598. # master or minion as root, but have a non\-root group be given access to
  17599. # your pki_dir. To make the access explicit, root must belong to the group
  17600. # you\(aqve given access to. This is potentially quite insecure.
  17601. #permissive_pki_access: False
  17602. # The state_verbose and state_output settings can be used to change the way
  17603. # state system data is printed to the display. By default all data is printed.
  17604. # The state_verbose setting can be set to True or False, when set to False
  17605. # all data that has a result of True and no changes will be suppressed.
  17606. #state_verbose: True
  17607. # The state_output setting controls which results will be output full multi line
  17608. # full, terse \- each state will be full/terse
  17609. # mixed \- only states with errors will be full
  17610. # changes \- states with changes and errors will be full
  17611. # full_id, mixed_id, changes_id and terse_id are also allowed;
  17612. # when set, the state ID will be used as name in the output
  17613. #state_output: full
  17614. # The state_output_diff setting changes whether or not the output from
  17615. # successful states is returned. Useful when even the terse output of these
  17616. # states is cluttering the logs. Set it to True to ignore them.
  17617. #state_output_diff: False
  17618. # The state_output_profile setting changes whether profile information
  17619. # will be shown for each state run.
  17620. #state_output_profile: True
  17621. # Fingerprint of the master public key to validate the identity of your Salt master
  17622. # before the initial key exchange. The master fingerprint can be found by running
  17623. # "salt\-key \-f master.pub" on the Salt master.
  17624. #master_finger: \(aq\(aq
  17625. # Use TLS/SSL encrypted connection between master and minion.
  17626. # Can be set to a dictionary containing keyword arguments corresponding to Python\(aqs
  17627. # \(aqssl.wrap_socket\(aq method.
  17628. # Default is None.
  17629. #ssl:
  17630. # keyfile: <path_to_keyfile>
  17631. # certfile: <path_to_certfile>
  17632. # ssl_version: PROTOCOL_TLSv1_2
  17633. # Grains to be sent to the master on authentication to check if the minion\(aqs key
  17634. # will be accepted automatically. Needs to be configured on the master.
  17635. #autosign_grains:
  17636. # \- uuid
  17637. # \- server_id
  17638. ###### Reactor Settings #####
  17639. ###########################################
  17640. # Define a salt reactor. See https://docs.saltstack.com/en/latest/topics/reactor/
  17641. #reactor: []
  17642. #Set the TTL for the cache of the reactor configuration.
  17643. #reactor_refresh_interval: 60
  17644. #Configure the number of workers for the runner/wheel in the reactor.
  17645. #reactor_worker_threads: 10
  17646. #Define the queue size for workers in the reactor.
  17647. #reactor_worker_hwm: 10000
  17648. ###### Thread settings #####
  17649. ###########################################
  17650. # Disable multiprocessing support, by default when a minion receives a
  17651. # publication a new process is spawned and the command is executed therein.
  17652. #
  17653. # WARNING: Disabling multiprocessing may result in substantial slowdowns
  17654. # when processing large pillars. See https://github.com/saltstack/salt/issues/38758
  17655. # for a full explanation.
  17656. #multiprocessing: True
  17657. # Limit the maximum amount of processes or threads created by salt\-minion.
  17658. # This is useful to avoid resource exhaustion in case the minion receives more
  17659. # publications than it is able to handle, as it limits the number of spawned
  17660. # processes or threads. \-1 is the default and disables the limit.
  17661. #process_count_max: \-1
  17662. ##### Logging settings #####
  17663. ##########################################
  17664. # The location of the minion log file
  17665. # The minion log can be sent to a regular file, local path name, or network
  17666. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  17667. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  17668. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  17669. #log_file: /var/log/salt/minion
  17670. #log_file: file:///dev/log
  17671. #log_file: udp://loghost:10514
  17672. #
  17673. #log_file: /var/log/salt/minion
  17674. #key_logfile: /var/log/salt/key
  17675. # The level of messages to send to the console.
  17676. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17677. #
  17678. # The following log levels are considered INSECURE and may log sensitive data:
  17679. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  17680. #
  17681. # Default: \(aqwarning\(aq
  17682. #log_level: warning
  17683. # The level of messages to send to the log file.
  17684. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  17685. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  17686. # Default: \(aqwarning\(aq
  17687. #log_level_logfile:
  17688. # The date and time format used in log messages. Allowed date/time formatting
  17689. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  17690. #log_datefmt: \(aq%H:%M:%S\(aq
  17691. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  17692. # The format of the console logging messages. Allowed formatting options can
  17693. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  17694. #
  17695. # Console log colors are specified by these additional formatters:
  17696. #
  17697. # %(colorlevel)s
  17698. # %(colorname)s
  17699. # %(colorprocess)s
  17700. # %(colormsg)s
  17701. #
  17702. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  17703. # the coloring of the messages, these color formatters also include padding as
  17704. # well. Color LogRecord attributes are only available for console logging.
  17705. #
  17706. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  17707. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  17708. #
  17709. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  17710. # This can be used to control logging levels more specificically. This
  17711. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  17712. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  17713. # log_granular_levels:
  17714. # \(aqsalt\(aq: \(aqwarning\(aq
  17715. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  17716. #
  17717. #log_granular_levels: {}
  17718. # To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  17719. # supports the use of monitor sockets to log connection events. This
  17720. # feature requires ZeroMQ 4.0 or higher.
  17721. #
  17722. # To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  17723. # debug level or higher.
  17724. #
  17725. # A sample log event is as follows:
  17726. #
  17727. # [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  17728. # \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  17729. #
  17730. # All events logged will include the string \(aqZeroMQ event\(aq. A connection event
  17731. # should be logged as the minion starts up and initially connects to the
  17732. # master. If not, check for debug log level and that the necessary version of
  17733. # ZeroMQ is installed.
  17734. #
  17735. #zmq_monitor: False
  17736. # Number of times to try to authenticate with the salt master when reconnecting
  17737. # to the master
  17738. #tcp_authentication_retries: 5
  17739. ###### Module configuration #####
  17740. ###########################################
  17741. # Salt allows for modules to be passed arbitrary configuration data, any data
  17742. # passed here in valid yaml format will be passed on to the salt minion modules
  17743. # for use. It is STRONGLY recommended that a naming convention be used in which
  17744. # the module name is followed by a . and then the value. Also, all top level
  17745. # data must be applied via the yaml dict construct, some examples:
  17746. #
  17747. # You can specify that all modules should run in test mode:
  17748. #test: True
  17749. #
  17750. # A simple value for the test module:
  17751. #test.foo: foo
  17752. #
  17753. # A list for the test module:
  17754. #test.bar: [baz,quo]
  17755. #
  17756. # A dict for the test module:
  17757. #test.baz: {spam: sausage, cheese: bread}
  17758. #
  17759. #
  17760. ###### Update settings ######
  17761. ###########################################
  17762. # Using the features in Esky, a salt minion can both run as a frozen app and
  17763. # be updated on the fly. These options control how the update process
  17764. # (saltutil.update()) behaves.
  17765. #
  17766. # The url for finding and downloading updates. Disabled by default.
  17767. #update_url: False
  17768. #
  17769. # The list of services to restart after a successful update. Empty by default.
  17770. #update_restart_services: []
  17771. ###### Keepalive settings ######
  17772. ############################################
  17773. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  17774. # the OS. If connections between the minion and the master pass through
  17775. # a state tracking device such as a firewall or VPN gateway, there is
  17776. # the risk that it could tear down the connection the master and minion
  17777. # without informing either party that their connection has been taken away.
  17778. # Enabling TCP Keepalives prevents this from happening.
  17779. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  17780. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  17781. #tcp_keepalive: True
  17782. # How long before the first keepalive should be sent in seconds. Default 300
  17783. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  17784. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  17785. #tcp_keepalive_idle: 300
  17786. # How many lost probes are needed to consider the connection lost. Default \-1
  17787. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  17788. #tcp_keepalive_cnt: \-1
  17789. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  17790. # use OS defaults, typically 75 seconds on Linux, see
  17791. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  17792. #tcp_keepalive_intvl: \-1
  17793. ###### Windows Software settings ######
  17794. ############################################
  17795. # Location of the repository cache file on the master:
  17796. #win_repo_cachefile: \(aqsalt://win/repo/winrepo.p\(aq
  17797. ###### Returner settings ######
  17798. ############################################
  17799. # Default Minion returners. Can be a comma delimited string or a list:
  17800. #
  17801. #return: mysql
  17802. #
  17803. #return: mysql,slack,redis
  17804. #
  17805. #return:
  17806. # \- mysql
  17807. # \- hipchat
  17808. # \- slack
  17809. ###### Miscellaneous settings ######
  17810. ############################################
  17811. # Default match type for filtering events tags: startswith, endswith, find, regex, fnmatch
  17812. #event_match_type: startswith
  17813. .ft P
  17814. .fi
  17815. .UNINDENT
  17816. .UNINDENT
  17817. .SS Example proxy minion configuration file
  17818. .INDENT 0.0
  17819. .INDENT 3.5
  17820. .sp
  17821. .nf
  17822. .ft C
  17823. ##### Primary configuration settings #####
  17824. ##########################################
  17825. # This configuration file is used to manage the behavior of all Salt Proxy
  17826. # Minions on this host.
  17827. # With the exception of the location of the Salt Master Server, values that are
  17828. # commented out but have an empty line after the comment are defaults that need
  17829. # not be set in the config. If there is no blank line after the comment, the
  17830. # value is presented as an example and is not the default.
  17831. # Per default the minion will automatically include all config files
  17832. # from minion.d/*.conf (minion.d is a directory in the same directory
  17833. # as the main minion config file).
  17834. #default_include: minion.d/*.conf
  17835. # Backwards compatibility option for proxymodules created before 2015.8.2
  17836. # This setting will default to \(aqFalse\(aq in the 2016.3.0 release
  17837. # Setting this to True adds proxymodules to the __opts__ dictionary.
  17838. # This breaks several Salt features (basically anything that serializes
  17839. # __opts__ over the wire) but retains backwards compatibility.
  17840. #add_proxymodule_to_opts: True
  17841. # Set the location of the salt master server. If the master server cannot be
  17842. # resolved, then the minion will fail to start.
  17843. #master: salt
  17844. # If a proxymodule has a function called \(aqgrains\(aq, then call it during
  17845. # regular grains loading and merge the results with the proxy\(aqs grains
  17846. # dictionary. Otherwise it is assumed that the module calls the grains
  17847. # function in a custom way and returns the data elsewhere
  17848. #
  17849. # Default to False for 2016.3 and 2016.11. Switch to True for 2017.7.0.
  17850. # proxy_merge_grains_in_module: True
  17851. # If a proxymodule has a function called \(aqalive\(aq returning a boolean
  17852. # flag reflecting the state of the connection with the remove device,
  17853. # when this option is set as True, a scheduled job on the proxy will
  17854. # try restarting the connection. The polling frequency depends on the
  17855. # next option, \(aqproxy_keep_alive_interval\(aq. Added in 2017.7.0.
  17856. # proxy_keep_alive: True
  17857. # The polling interval (in minutes) to check if the underlying connection
  17858. # with the remote device is still alive. This option requires
  17859. # \(aqproxy_keep_alive\(aq to be configured as True and the proxymodule to
  17860. # implement the \(aqalive\(aq function. Added in 2017.7.0.
  17861. # proxy_keep_alive_interval: 1
  17862. # By default, any proxy opens the connection with the remote device when
  17863. # initialized. Some proxymodules allow through this option to open/close
  17864. # the session per command. This requires the proxymodule to have this
  17865. # capability. Please consult the documentation to see if the proxy type
  17866. # used can be that flexible. Added in 2017.7.0.
  17867. # proxy_always_alive: True
  17868. # If multiple masters are specified in the \(aqmaster\(aq setting, the default behavior
  17869. # is to always try to connect to them in the order they are listed. If random_master is
  17870. # set to True, the order will be randomized instead. This can be helpful in distributing
  17871. # the load of many minions executing salt\-call requests, for example, from a cron job.
  17872. # If only one master is listed, this setting is ignored and a warning will be logged.
  17873. #random_master: False
  17874. # Minions can connect to multiple masters simultaneously (all masters
  17875. # are "hot"), or can be configured to failover if a master becomes
  17876. # unavailable. Multiple hot masters are configured by setting this
  17877. # value to "str". Failover masters can be requested by setting
  17878. # to "failover". MAKE SURE TO SET master_alive_interval if you are
  17879. # using failover.
  17880. # master_type: str
  17881. # Poll interval in seconds for checking if the master is still there. Only
  17882. # respected if master_type above is "failover".
  17883. # master_alive_interval: 30
  17884. # Set whether the minion should connect to the master via IPv6:
  17885. #ipv6: False
  17886. # Set the number of seconds to wait before attempting to resolve
  17887. # the master hostname if name resolution fails. Defaults to 30 seconds.
  17888. # Set to zero if the minion should shutdown and not retry.
  17889. # retry_dns: 30
  17890. # Set the port used by the master reply and authentication server.
  17891. #master_port: 4506
  17892. # The user to run salt.
  17893. #user: root
  17894. # Setting sudo_user will cause salt to run all execution modules under an sudo
  17895. # to the user given in sudo_user. The user under which the salt minion process
  17896. # itself runs will still be that provided in the user config above, but all
  17897. # execution modules run by the minion will be rerouted through sudo.
  17898. #sudo_user: saltdev
  17899. # Specify the location of the daemon process ID file.
  17900. #pidfile: /var/run/salt\-minion.pid
  17901. # The root directory prepended to these options: pki_dir, cachedir, log_file,
  17902. # sock_dir, pidfile.
  17903. #root_dir: /
  17904. # The directory to store the pki information in
  17905. #pki_dir: /etc/salt/pki/minion
  17906. # Where cache data goes.
  17907. # This data may contain sensitive data and should be protected accordingly.
  17908. #cachedir: /var/cache/salt/minion
  17909. # Append minion_id to these directories. Helps with
  17910. # multiple proxies and minions running on the same machine.
  17911. # Allowed elements in the list: pki_dir, cachedir, extension_modules
  17912. # Normally not needed unless running several proxies and/or minions on the same machine
  17913. # Defaults to [\(aqcachedir\(aq] for proxies, [] (empty list) for regular minions
  17914. # append_minionid_config_dirs:
  17915. # \- cachedir
  17916. # Verify and set permissions on configuration directories at startup.
  17917. #verify_env: True
  17918. # The minion can locally cache the return data from jobs sent to it, this
  17919. # can be a good way to keep track of jobs the minion has executed
  17920. # (on the minion side). By default this feature is disabled, to enable, set
  17921. # cache_jobs to True.
  17922. #cache_jobs: False
  17923. # Set the directory used to hold unix sockets.
  17924. #sock_dir: /var/run/salt/minion
  17925. # Set the default outputter used by the salt\-call command. The default is
  17926. # "nested".
  17927. #output: nested
  17928. #
  17929. # By default output is colored. To disable colored output, set the color value
  17930. # to False.
  17931. #color: True
  17932. # Do not strip off the colored output from nested results and state outputs
  17933. # (true by default).
  17934. # strip_colors: False
  17935. # Backup files that are replaced by file.managed and file.recurse under
  17936. # \(aqcachedir\(aq/file_backup relative to their original location and appended
  17937. # with a timestamp. The only valid setting is "minion". Disabled by default.
  17938. #
  17939. # Alternatively this can be specified for each file in state files:
  17940. # /etc/ssh/sshd_config:
  17941. # file.managed:
  17942. # \- source: salt://ssh/sshd_config
  17943. # \- backup: minion
  17944. #
  17945. #backup_mode: minion
  17946. # When waiting for a master to accept the minion\(aqs public key, salt will
  17947. # continuously attempt to reconnect until successful. This is the time, in
  17948. # seconds, between those reconnection attempts.
  17949. #acceptance_wait_time: 10
  17950. # If this is nonzero, the time between reconnection attempts will increase by
  17951. # acceptance_wait_time seconds per iteration, up to this maximum. If this is
  17952. # set to zero, the time between reconnection attempts will stay constant.
  17953. #acceptance_wait_time_max: 0
  17954. # If the master rejects the minion\(aqs public key, retry instead of exiting.
  17955. # Rejected keys will be handled the same as waiting on acceptance.
  17956. #rejected_retry: False
  17957. # When the master key changes, the minion will try to re\-auth itself to receive
  17958. # the new master key. In larger environments this can cause a SYN flood on the
  17959. # master because all minions try to re\-auth immediately. To prevent this and
  17960. # have a minion wait for a random amount of time, use this optional parameter.
  17961. # The wait\-time will be a random number of seconds between 0 and the defined value.
  17962. #random_reauth_delay: 60
  17963. # When waiting for a master to accept the minion\(aqs public key, salt will
  17964. # continuously attempt to reconnect until successful. This is the timeout value,
  17965. # in seconds, for each individual attempt. After this timeout expires, the minion
  17966. # will wait for acceptance_wait_time seconds before trying again. Unless your master
  17967. # is under unusually heavy load, this should be left at the default.
  17968. #auth_timeout: 60
  17969. # Number of consecutive SaltReqTimeoutError that are acceptable when trying to
  17970. # authenticate.
  17971. #auth_tries: 7
  17972. # If authentication fails due to SaltReqTimeoutError during a ping_interval,
  17973. # cause sub minion process to restart.
  17974. #auth_safemode: False
  17975. # Ping Master to ensure connection is alive (minutes).
  17976. #ping_interval: 0
  17977. # To auto recover minions if master changes IP address (DDNS)
  17978. # auth_tries: 10
  17979. # auth_safemode: False
  17980. # ping_interval: 90
  17981. #
  17982. # Minions won\(aqt know master is missing until a ping fails. After the ping fail,
  17983. # the minion will attempt authentication and likely fails out and cause a restart.
  17984. # When the minion restarts it will resolve the masters IP and attempt to reconnect.
  17985. # If you don\(aqt have any problems with syn\-floods, don\(aqt bother with the
  17986. # three recon_* settings described below, just leave the defaults!
  17987. #
  17988. # The ZeroMQ pull\-socket that binds to the masters publishing interface tries
  17989. # to reconnect immediately, if the socket is disconnected (for example if
  17990. # the master processes are restarted). In large setups this will have all
  17991. # minions reconnect immediately which might flood the master (the ZeroMQ\-default
  17992. # is usually a 100ms delay). To prevent this, these three recon_* settings
  17993. # can be used.
  17994. # recon_default: the interval in milliseconds that the socket should wait before
  17995. # trying to reconnect to the master (1000ms = 1 second)
  17996. #
  17997. # recon_max: the maximum time a socket should wait. each interval the time to wait
  17998. # is calculated by doubling the previous time. if recon_max is reached,
  17999. # it starts again at recon_default. Short example:
  18000. #
  18001. # reconnect 1: the socket will wait \(aqrecon_default\(aq milliseconds
  18002. # reconnect 2: \(aqrecon_default\(aq * 2
  18003. # reconnect 3: (\(aqrecon_default\(aq * 2) * 2
  18004. # reconnect 4: value from previous interval * 2
  18005. # reconnect 5: value from previous interval * 2
  18006. # reconnect x: if value >= recon_max, it starts again with recon_default
  18007. #
  18008. # recon_randomize: generate a random wait time on minion start. The wait time will
  18009. # be a random value between recon_default and recon_default +
  18010. # recon_max. Having all minions reconnect with the same recon_default
  18011. # and recon_max value kind of defeats the purpose of being able to
  18012. # change these settings. If all minions have the same values and your
  18013. # setup is quite large (several thousand minions), they will still
  18014. # flood the master. The desired behavior is to have timeframe within
  18015. # all minions try to reconnect.
  18016. #
  18017. # Example on how to use these settings. The goal: have all minions reconnect within a
  18018. # 60 second timeframe on a disconnect.
  18019. # recon_default: 1000
  18020. # recon_max: 59000
  18021. # recon_randomize: True
  18022. #
  18023. # Each minion will have a randomized reconnect value between \(aqrecon_default\(aq
  18024. # and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  18025. # 60000ms (or between 1 and 60 seconds). The generated random\-value will be
  18026. # doubled after each attempt to reconnect. Lets say the generated random
  18027. # value is 11 seconds (or 11000ms).
  18028. # reconnect 1: wait 11 seconds
  18029. # reconnect 2: wait 22 seconds
  18030. # reconnect 3: wait 33 seconds
  18031. # reconnect 4: wait 44 seconds
  18032. # reconnect 5: wait 55 seconds
  18033. # reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  18034. # reconnect 7: wait 11 seconds
  18035. # reconnect 8: wait 22 seconds
  18036. # reconnect 9: wait 33 seconds
  18037. # reconnect x: etc.
  18038. #
  18039. # In a setup with ~6000 thousand hosts these settings would average the reconnects
  18040. # to about 100 per second and all hosts would be reconnected within 60 seconds.
  18041. # recon_default: 100
  18042. # recon_max: 5000
  18043. # recon_randomize: False
  18044. #
  18045. #
  18046. # The loop_interval sets how long in seconds the minion will wait between
  18047. # evaluating the scheduler and running cleanup tasks. This defaults to a
  18048. # sane 60 seconds, but if the minion scheduler needs to be evaluated more
  18049. # often lower this value
  18050. #loop_interval: 60
  18051. # The grains_refresh_every setting allows for a minion to periodically check
  18052. # its grains to see if they have changed and, if so, to inform the master
  18053. # of the new grains. This operation is moderately expensive, therefore
  18054. # care should be taken not to set this value too low.
  18055. #
  18056. # Note: This value is expressed in __minutes__!
  18057. #
  18058. # A value of 10 minutes is a reasonable default.
  18059. #
  18060. # If the value is set to zero, this check is disabled.
  18061. #grains_refresh_every: 1
  18062. # Cache grains on the minion. Default is False.
  18063. #grains_cache: False
  18064. # Grains cache expiration, in seconds. If the cache file is older than this
  18065. # number of seconds then the grains cache will be dumped and fully re\-populated
  18066. # with fresh data. Defaults to 5 minutes. Will have no effect if \(aqgrains_cache\(aq
  18067. # is not enabled.
  18068. # grains_cache_expiration: 300
  18069. # Windows platforms lack posix IPC and must rely on slower TCP based inter\-
  18070. # process communications. Set ipc_mode to \(aqtcp\(aq on such systems
  18071. #ipc_mode: ipc
  18072. # Overwrite the default tcp ports used by the minion when in tcp mode
  18073. #tcp_pub_port: 4510
  18074. #tcp_pull_port: 4511
  18075. # Passing very large events can cause the minion to consume large amounts of
  18076. # memory. This value tunes the maximum size of a message allowed onto the
  18077. # minion event bus. The value is expressed in bytes.
  18078. #max_event_size: 1048576
  18079. # To detect failed master(s) and fire events on connect/disconnect, set
  18080. # master_alive_interval to the number of seconds to poll the masters for
  18081. # connection events.
  18082. #
  18083. #master_alive_interval: 30
  18084. # The minion can include configuration from other files. To enable this,
  18085. # pass a list of paths to this option. The paths can be either relative or
  18086. # absolute; if relative, they are considered to be relative to the directory
  18087. # the main minion configuration file lives in (this file). Paths can make use
  18088. # of shell\-style globbing. If no files are matched by a path passed to this
  18089. # option then the minion will log a warning message.
  18090. #
  18091. # Include a config file from some other path:
  18092. # include: /etc/salt/extra_config
  18093. #
  18094. # Include config from several files and directories:
  18095. #include:
  18096. # \- /etc/salt/extra_config
  18097. # \- /etc/roles/webserver
  18098. #
  18099. #
  18100. #
  18101. ##### Minion module management #####
  18102. ##########################################
  18103. # Disable specific modules. This allows the admin to limit the level of
  18104. # access the master has to the minion.
  18105. #disable_modules: [cmd,test]
  18106. #disable_returners: []
  18107. #
  18108. # Modules can be loaded from arbitrary paths. This enables the easy deployment
  18109. # of third party modules. Modules for returners and minions can be loaded.
  18110. # Specify a list of extra directories to search for minion modules and
  18111. # returners. These paths must be fully qualified!
  18112. #module_dirs: []
  18113. #returner_dirs: []
  18114. #states_dirs: []
  18115. #render_dirs: []
  18116. #utils_dirs: []
  18117. #
  18118. # A module provider can be statically overwritten or extended for the minion
  18119. # via the providers option, in this case the default module will be
  18120. # overwritten by the specified module. In this example the pkg module will
  18121. # be provided by the yumpkg5 module instead of the system default.
  18122. #providers:
  18123. # pkg: yumpkg5
  18124. #
  18125. # Enable Cython modules searching and loading. (Default: False)
  18126. #cython_enable: False
  18127. #
  18128. # Specify a max size (in bytes) for modules on import. This feature is currently
  18129. # only supported on *nix operating systems and requires psutil.
  18130. # modules_max_memory: \-1
  18131. ##### State Management Settings #####
  18132. ###########################################
  18133. # The default renderer to use in SLS files. This is configured as a
  18134. # pipe\-delimited expression. For example, jinja|yaml will first run jinja
  18135. # templating on the SLS file, and then load the result as YAML. This syntax is
  18136. # documented in further depth at the following URL:
  18137. #
  18138. # https://docs.saltstack.com/en/latest/ref/renderers/#composing\-renderers
  18139. #
  18140. # NOTE: The "shebang" prefix (e.g. "#!jinja|yaml") described in the
  18141. # documentation linked above is for use in an SLS file to override the default
  18142. # renderer, it should not be used when configuring the renderer here.
  18143. #
  18144. #renderer: jinja|yaml
  18145. #
  18146. # The failhard option tells the minions to stop immediately after the first
  18147. # failure detected in the state execution. Defaults to False.
  18148. #failhard: False
  18149. #
  18150. # Reload the modules prior to a highstate run.
  18151. #autoload_dynamic_modules: True
  18152. #
  18153. # clean_dynamic_modules keeps the dynamic modules on the minion in sync with
  18154. # the dynamic modules on the master, this means that if a dynamic module is
  18155. # not on the master it will be deleted from the minion. By default, this is
  18156. # enabled and can be disabled by changing this value to False.
  18157. #clean_dynamic_modules: True
  18158. #
  18159. # Normally, the minion is not isolated to any single environment on the master
  18160. # when running states, but the environment can be isolated on the minion side
  18161. # by statically setting it. Remember that the recommended way to manage
  18162. # environments is to isolate via the top file.
  18163. #environment: None
  18164. #
  18165. # If using the local file directory, then the state top file name needs to be
  18166. # defined, by default this is top.sls.
  18167. #state_top: top.sls
  18168. #
  18169. # Run states when the minion daemon starts. To enable, set startup_states to:
  18170. # \(aqhighstate\(aq \-\- Execute state.highstate
  18171. # \(aqsls\(aq \-\- Read in the sls_list option and execute the named sls files
  18172. # \(aqtop\(aq \-\- Read top_file option and execute based on that file on the Master
  18173. #startup_states: \(aq\(aq
  18174. #
  18175. # List of states to run when the minion starts up if startup_states is \(aqsls\(aq:
  18176. #sls_list:
  18177. # \- edit.vim
  18178. # \- hyper
  18179. #
  18180. # Top file to execute if startup_states is \(aqtop\(aq:
  18181. #top_file: \(aq\(aq
  18182. # Automatically aggregate all states that have support for mod_aggregate by
  18183. # setting to True. Or pass a list of state module names to automatically
  18184. # aggregate just those types.
  18185. #
  18186. # state_aggregate:
  18187. # \- pkg
  18188. #
  18189. #state_aggregate: False
  18190. ##### File Directory Settings #####
  18191. ##########################################
  18192. # The Salt Minion can redirect all file server operations to a local directory,
  18193. # this allows for the same state tree that is on the master to be used if
  18194. # copied completely onto the minion. This is a literal copy of the settings on
  18195. # the master but used to reference a local directory on the minion.
  18196. # Set the file client. The client defaults to looking on the master server for
  18197. # files, but can be directed to look at the local file directory setting
  18198. # defined below by setting it to "local". Setting a local file_client runs the
  18199. # minion in masterless mode.
  18200. #file_client: remote
  18201. # The file directory works on environments passed to the minion, each environment
  18202. # can have multiple root directories, the subdirectories in the multiple file
  18203. # roots cannot match, otherwise the downloaded files will not be able to be
  18204. # reliably ensured. A base environment is required to house the top file.
  18205. # Example:
  18206. # file_roots:
  18207. # base:
  18208. # \- /srv/salt/
  18209. # dev:
  18210. # \- /srv/salt/dev/services
  18211. # \- /srv/salt/dev/states
  18212. # prod:
  18213. # \- /srv/salt/prod/services
  18214. # \- /srv/salt/prod/states
  18215. #
  18216. #file_roots:
  18217. # base:
  18218. # \- /srv/salt
  18219. # By default, the Salt fileserver recurses fully into all defined environments
  18220. # to attempt to find files. To limit this behavior so that the fileserver only
  18221. # traverses directories with SLS files and special Salt directories like _modules,
  18222. # enable the option below. This might be useful for installations where a file root
  18223. # has a very large number of files and performance is negatively impacted. Default
  18224. # is False.
  18225. #fileserver_limit_traversal: False
  18226. # The hash_type is the hash to use when discovering the hash of a file in
  18227. # the local fileserver. The default is sha256 but sha224, sha384 and sha512
  18228. # are also supported.
  18229. #
  18230. # WARNING: While md5 and sha1 are also supported, do not use it due to the high chance
  18231. # of possible collisions and thus security breach.
  18232. #
  18233. # WARNING: While md5 is also supported, do not use it due to the high chance
  18234. # of possible collisions and thus security breach.
  18235. #
  18236. # Warning: Prior to changing this value, the minion should be stopped and all
  18237. # Salt caches should be cleared.
  18238. #hash_type: sha256
  18239. # The Salt pillar is searched for locally if file_client is set to local. If
  18240. # this is the case, and pillar data is defined, then the pillar_roots need to
  18241. # also be configured on the minion:
  18242. #pillar_roots:
  18243. # base:
  18244. # \- /srv/pillar
  18245. #
  18246. #
  18247. ###### Security settings #####
  18248. ###########################################
  18249. # Enable "open mode", this mode still maintains encryption, but turns off
  18250. # authentication, this is only intended for highly secure environments or for
  18251. # the situation where your keys end up in a bad state. If you run in open mode
  18252. # you do so at your own risk!
  18253. #open_mode: False
  18254. # Enable permissive access to the salt keys. This allows you to run the
  18255. # master or minion as root, but have a non\-root group be given access to
  18256. # your pki_dir. To make the access explicit, root must belong to the group
  18257. # you\(aqve given access to. This is potentially quite insecure.
  18258. #permissive_pki_access: False
  18259. # The state_verbose and state_output settings can be used to change the way
  18260. # state system data is printed to the display. By default all data is printed.
  18261. # The state_verbose setting can be set to True or False, when set to False
  18262. # all data that has a result of True and no changes will be suppressed.
  18263. #state_verbose: True
  18264. # The state_output setting controls which results will be output full multi line
  18265. # full, terse \- each state will be full/terse
  18266. # mixed \- only states with errors will be full
  18267. # changes \- states with changes and errors will be full
  18268. # full_id, mixed_id, changes_id and terse_id are also allowed;
  18269. # when set, the state ID will be used as name in the output
  18270. #state_output: full
  18271. # The state_output_diff setting changes whether or not the output from
  18272. # successful states is returned. Useful when even the terse output of these
  18273. # states is cluttering the logs. Set it to True to ignore them.
  18274. #state_output_diff: False
  18275. # The state_output_profile setting changes whether profile information
  18276. # will be shown for each state run.
  18277. #state_output_profile: True
  18278. # Fingerprint of the master public key to validate the identity of your Salt master
  18279. # before the initial key exchange. The master fingerprint can be found by running
  18280. # "salt\-key \-F master" on the Salt master.
  18281. #master_finger: \(aq\(aq
  18282. ###### Thread settings #####
  18283. ###########################################
  18284. # Disable multiprocessing support, by default when a minion receives a
  18285. # publication a new process is spawned and the command is executed therein.
  18286. #multiprocessing: True
  18287. ##### Logging settings #####
  18288. ##########################################
  18289. # The location of the minion log file
  18290. # The minion log can be sent to a regular file, local path name, or network
  18291. # location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  18292. # \(ga\(gafile:///dev/log\(ga\(ga), with rsyslogd(8) configured for network logging. The URI
  18293. # format is: <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  18294. #log_file: /var/log/salt/minion
  18295. #log_file: file:///dev/log
  18296. #log_file: udp://loghost:10514
  18297. #
  18298. #log_file: /var/log/salt/minion
  18299. #key_logfile: /var/log/salt/key
  18300. # The level of messages to send to the console.
  18301. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, \(aqinfo\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  18302. #
  18303. # The following log levels are considered INSECURE and may log sensitive data:
  18304. # [\(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq]
  18305. #
  18306. # Default: \(aqwarning\(aq
  18307. #log_level: warning
  18308. # The level of messages to send to the log file.
  18309. # One of \(aqgarbage\(aq, \(aqtrace\(aq, \(aqdebug\(aq, info\(aq, \(aqwarning\(aq, \(aqerror\(aq, \(aqcritical\(aq.
  18310. # If using \(aqlog_granular_levels\(aq this must be set to the highest desired level.
  18311. # Default: \(aqwarning\(aq
  18312. #log_level_logfile:
  18313. # The date and time format used in log messages. Allowed date/time formatting
  18314. # can be seen here: http://docs.python.org/library/time.html#time.strftime
  18315. #log_datefmt: \(aq%H:%M:%S\(aq
  18316. #log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  18317. # The format of the console logging messages. Allowed formatting options can
  18318. # be seen here: http://docs.python.org/library/logging.html#logrecord\-attributes
  18319. #
  18320. # Console log colors are specified by these additional formatters:
  18321. #
  18322. # %(colorlevel)s
  18323. # %(colorname)s
  18324. # %(colorprocess)s
  18325. # %(colormsg)s
  18326. #
  18327. # Since it is desirable to include the surrounding brackets, \(aq[\(aq and \(aq]\(aq, in
  18328. # the coloring of the messages, these color formatters also include padding as
  18329. # well. Color LogRecord attributes are only available for console logging.
  18330. #
  18331. #log_fmt_console: \(aq%(colorlevel)s %(colormsg)s\(aq
  18332. #log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  18333. #
  18334. #log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  18335. # This can be used to control logging levels more specificically. This
  18336. # example sets the main salt library at the \(aqwarning\(aq level, but sets
  18337. # \(aqsalt.modules\(aq to log at the \(aqdebug\(aq level:
  18338. # log_granular_levels:
  18339. # \(aqsalt\(aq: \(aqwarning\(aq
  18340. # \(aqsalt.modules\(aq: \(aqdebug\(aq
  18341. #
  18342. #log_granular_levels: {}
  18343. # To diagnose issues with minions disconnecting or missing returns, ZeroMQ
  18344. # supports the use of monitor sockets # to log connection events. This
  18345. # feature requires ZeroMQ 4.0 or higher.
  18346. #
  18347. # To enable ZeroMQ monitor sockets, set \(aqzmq_monitor\(aq to \(aqTrue\(aq and log at a
  18348. # debug level or higher.
  18349. #
  18350. # A sample log event is as follows:
  18351. #
  18352. # [DEBUG ] ZeroMQ event: {\(aqendpoint\(aq: \(aqtcp://127.0.0.1:4505\(aq, \(aqevent\(aq: 512,
  18353. # \(aqvalue\(aq: 27, \(aqdescription\(aq: \(aqEVENT_DISCONNECTED\(aq}
  18354. #
  18355. # All events logged will include the string \(aqZeroMQ event\(aq. A connection event
  18356. # should be logged on the as the minion starts up and initially connects to the
  18357. # master. If not, check for debug log level and that the necessary version of
  18358. # ZeroMQ is installed.
  18359. #
  18360. #zmq_monitor: False
  18361. ###### Module configuration #####
  18362. ###########################################
  18363. # Salt allows for modules to be passed arbitrary configuration data, any data
  18364. # passed here in valid yaml format will be passed on to the salt minion modules
  18365. # for use. It is STRONGLY recommended that a naming convention be used in which
  18366. # the module name is followed by a . and then the value. Also, all top level
  18367. # data must be applied via the yaml dict construct, some examples:
  18368. #
  18369. # You can specify that all modules should run in test mode:
  18370. #test: True
  18371. #
  18372. # A simple value for the test module:
  18373. #test.foo: foo
  18374. #
  18375. # A list for the test module:
  18376. #test.bar: [baz,quo]
  18377. #
  18378. # A dict for the test module:
  18379. #test.baz: {spam: sausage, cheese: bread}
  18380. #
  18381. #
  18382. ###### Update settings ######
  18383. ###########################################
  18384. # Using the features in Esky, a salt minion can both run as a frozen app and
  18385. # be updated on the fly. These options control how the update process
  18386. # (saltutil.update()) behaves.
  18387. #
  18388. # The url for finding and downloading updates. Disabled by default.
  18389. #update_url: False
  18390. #
  18391. # The list of services to restart after a successful update. Empty by default.
  18392. #update_restart_services: []
  18393. ###### Keepalive settings ######
  18394. ############################################
  18395. # ZeroMQ now includes support for configuring SO_KEEPALIVE if supported by
  18396. # the OS. If connections between the minion and the master pass through
  18397. # a state tracking device such as a firewall or VPN gateway, there is
  18398. # the risk that it could tear down the connection the master and minion
  18399. # without informing either party that their connection has been taken away.
  18400. # Enabling TCP Keepalives prevents this from happening.
  18401. # Overall state of TCP Keepalives, enable (1 or True), disable (0 or False)
  18402. # or leave to the OS defaults (\-1), on Linux, typically disabled. Default True, enabled.
  18403. #tcp_keepalive: True
  18404. # How long before the first keepalive should be sent in seconds. Default 300
  18405. # to send the first keepalive after 5 minutes, OS default (\-1) is typically 7200 seconds
  18406. # on Linux see /proc/sys/net/ipv4/tcp_keepalive_time.
  18407. #tcp_keepalive_idle: 300
  18408. # How many lost probes are needed to consider the connection lost. Default \-1
  18409. # to use OS defaults, typically 9 on Linux, see /proc/sys/net/ipv4/tcp_keepalive_probes.
  18410. #tcp_keepalive_cnt: \-1
  18411. # How often, in seconds, to send keepalives after the first one. Default \-1 to
  18412. # use OS defaults, typically 75 seconds on Linux, see
  18413. # /proc/sys/net/ipv4/tcp_keepalive_intvl.
  18414. #tcp_keepalive_intvl: \-1
  18415. ###### Windows Software settings ######
  18416. ############################################
  18417. # Location of the repository cache file on the master:
  18418. #win_repo_cachefile: \(aqsalt://win/repo/winrepo.p\(aq
  18419. ###### Returner settings ######
  18420. ############################################
  18421. # Which returner(s) will be used for minion\(aqs result:
  18422. #return: mysql
  18423. .ft P
  18424. .fi
  18425. .UNINDENT
  18426. .UNINDENT
  18427. .SS Minion Blackout Configuration
  18428. .sp
  18429. New in version 2016.3.0.
  18430. .sp
  18431. Salt supports minion blackouts. When a minion is in blackout mode, all remote
  18432. execution commands are disabled. This allows production minions to be put
  18433. "on hold", eliminating the risk of an untimely configuration change.
  18434. .sp
  18435. Minion blackouts are configured via a special pillar key, \fBminion_blackout\fP\&.
  18436. If this key is set to \fBTrue\fP, then the minion will reject all incoming
  18437. commands, except for \fBsaltutil.refresh_pillar\fP\&. (The exception is important,
  18438. so minions can be brought out of blackout mode)
  18439. .sp
  18440. Salt also supports an explicit whitelist of additional functions that will be
  18441. allowed during blackout. This is configured with the special pillar key
  18442. \fBminion_blackout_whitelist\fP, which is formed as a list:
  18443. .INDENT 0.0
  18444. .INDENT 3.5
  18445. .sp
  18446. .nf
  18447. .ft C
  18448. minion_blackout_whitelist:
  18449. \- test.version
  18450. \- pillar.get
  18451. .ft P
  18452. .fi
  18453. .UNINDENT
  18454. .UNINDENT
  18455. .SS Access Control System
  18456. .sp
  18457. New in version 0.10.4.
  18458. .sp
  18459. Salt maintains a standard system used to open granular control to non
  18460. administrative users to execute Salt commands. The access control system
  18461. has been applied to all systems used to configure access to non administrative
  18462. control interfaces in Salt.
  18463. .sp
  18464. These interfaces include, the \fBpeer\fP system, the
  18465. \fBexternal auth\fP system and the \fBpublisher acl\fP system.
  18466. .sp
  18467. The access control system mandated a standard configuration syntax used in
  18468. all of the three aforementioned systems. While this adds functionality to the
  18469. configuration in 0.10.4, it does not negate the old configuration.
  18470. .sp
  18471. Now specific functions can be opened up to specific minions from specific users
  18472. in the case of external auth and publisher ACLs, and for specific minions in the
  18473. case of the peer system.
  18474. .SS Publisher ACL system
  18475. .sp
  18476. The salt publisher ACL system is a means to allow system users other than root
  18477. to have access to execute select salt commands on minions from the master.
  18478. .sp
  18479. \fBNOTE:\fP
  18480. .INDENT 0.0
  18481. .INDENT 3.5
  18482. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  18483. commands without giving them root access. If you can log into the Salt
  18484. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  18485. root privileges. If the local system is configured to authenticate against
  18486. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  18487. interact with the remote system transparently.
  18488. .sp
  18489. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  18490. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  18491. flag) but it is more cumbersome as there are more steps involved. The only
  18492. time it is useful at the CLI is when the local system is \fInot\fP configured
  18493. to authenticate against an external service \fIbut\fP you still want Salt to
  18494. authenticate against an external service.
  18495. .sp
  18496. For more information and examples, see this Access Control System section.
  18497. .UNINDENT
  18498. .UNINDENT
  18499. .sp
  18500. The publisher ACL system is configured in the master configuration file via the
  18501. \fBpublisher_acl\fP configuration option. Under the \fBpublisher_acl\fP
  18502. configuration option the users open to send commands are specified and then a
  18503. list of the minion functions which will be made available to specified user.
  18504. Both users and functions could be specified by exact match, shell glob or
  18505. regular expression. This configuration is much like the external_auth configuration:
  18506. .INDENT 0.0
  18507. .INDENT 3.5
  18508. .sp
  18509. .nf
  18510. .ft C
  18511. publisher_acl:
  18512. # Allow thatch to execute anything.
  18513. thatch:
  18514. \- .*
  18515. # Allow fred to use test and pkg, but only on "web*" minions.
  18516. fred:
  18517. \- web*:
  18518. \- test.*
  18519. \- pkg.*
  18520. # Allow admin and managers to use saltutil module functions
  18521. admin|manager_.*:
  18522. \- saltutil.*
  18523. # Allow users to use only my_mod functions on "web*" minions with specific arguments.
  18524. user_.*:
  18525. \- web*:
  18526. \- \(aqmy_mod.*\(aq:
  18527. args:
  18528. \- \(aqa.*\(aq
  18529. \- \(aqb.*\(aq
  18530. kwargs:
  18531. \(aqkwa\(aq: \(aqkwa.*\(aq
  18532. \(aqkwb\(aq: \(aqkwb\(aq
  18533. .ft P
  18534. .fi
  18535. .UNINDENT
  18536. .UNINDENT
  18537. .SS Permission Issues
  18538. .sp
  18539. Directories required for \fBpublisher_acl\fP must be modified to be readable by
  18540. the users specified:
  18541. .INDENT 0.0
  18542. .INDENT 3.5
  18543. .sp
  18544. .nf
  18545. .ft C
  18546. chmod 755 /var/cache/salt /var/cache/salt/master /var/cache/salt/master/jobs /var/run/salt /var/run/salt/master
  18547. .ft P
  18548. .fi
  18549. .UNINDENT
  18550. .UNINDENT
  18551. .sp
  18552. \fBNOTE:\fP
  18553. .INDENT 0.0
  18554. .INDENT 3.5
  18555. In addition to the changes above you will also need to modify the
  18556. permissions of /var/log/salt and the existing log file to be writable by
  18557. the user(s) which will be running the commands. If you do not wish to do
  18558. this then you must disable logging or Salt will generate errors as it
  18559. cannot write to the logs as the system users.
  18560. .UNINDENT
  18561. .UNINDENT
  18562. .sp
  18563. If you are upgrading from earlier versions of salt you must also remove any
  18564. existing user keys and re\-start the Salt master:
  18565. .INDENT 0.0
  18566. .INDENT 3.5
  18567. .sp
  18568. .nf
  18569. .ft C
  18570. rm /var/cache/salt/.*key
  18571. service salt\-master restart
  18572. .ft P
  18573. .fi
  18574. .UNINDENT
  18575. .UNINDENT
  18576. .SS Whitelist and Blacklist
  18577. .sp
  18578. Salt\(aqs authentication systems can be configured by specifying what is allowed
  18579. using a whitelist, or by specifying what is disallowed using a blacklist. If
  18580. you specify a whitelist, only specified operations are allowed. If you specify
  18581. a blacklist, all operations are allowed except those that are blacklisted.
  18582. .sp
  18583. See \fBpublisher_acl\fP and \fBpublisher_acl_blacklist\fP\&.
  18584. .SS External Authentication System
  18585. .sp
  18586. Salt\(aqs External Authentication System (eAuth) allows for Salt to pass through
  18587. command authorization to any external authentication system, such as PAM or LDAP.
  18588. .sp
  18589. \fBNOTE:\fP
  18590. .INDENT 0.0
  18591. .INDENT 3.5
  18592. eAuth using the PAM external auth system requires salt\-master to be run as
  18593. root as this system needs root access to check authentication.
  18594. .UNINDENT
  18595. .UNINDENT
  18596. .sp
  18597. \fBNOTE:\fP
  18598. .INDENT 0.0
  18599. .INDENT 3.5
  18600. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  18601. commands without giving them root access. If you can log into the Salt
  18602. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  18603. root privileges. If the local system is configured to authenticate against
  18604. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  18605. interact with the remote system transparently.
  18606. .sp
  18607. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  18608. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  18609. flag) but it is more cumbersome as there are more steps involved. The only
  18610. time it is useful at the CLI is when the local system is \fInot\fP configured
  18611. to authenticate against an external service \fIbut\fP you still want Salt to
  18612. authenticate against an external service.
  18613. .sp
  18614. For more information and examples, see this Access Control System section.
  18615. .UNINDENT
  18616. .UNINDENT
  18617. .SS External Authentication System Configuration
  18618. .sp
  18619. The external authentication system allows for specific users to be granted
  18620. access to execute specific functions on specific minions. Access is configured
  18621. in the master configuration file and uses the access control system:
  18622. .INDENT 0.0
  18623. .INDENT 3.5
  18624. .sp
  18625. .nf
  18626. .ft C
  18627. external_auth:
  18628. pam:
  18629. thatch:
  18630. \- \(aqweb*\(aq:
  18631. \- test.*
  18632. \- network.*
  18633. steve|admin.*:
  18634. \- .*
  18635. .ft P
  18636. .fi
  18637. .UNINDENT
  18638. .UNINDENT
  18639. .sp
  18640. The above configuration allows the user \fBthatch\fP to execute functions in the
  18641. test and network modules on the minions that match the web* target. User
  18642. \fBsteve\fP and the users whose logins start with \fBadmin\fP, are granted
  18643. unrestricted access to minion commands.
  18644. .sp
  18645. Salt respects the current PAM configuration in place, and uses the \(aqlogin\(aq
  18646. service to authenticate.
  18647. .sp
  18648. \fBNOTE:\fP
  18649. .INDENT 0.0
  18650. .INDENT 3.5
  18651. The PAM module does not allow authenticating as \fBroot\fP\&.
  18652. .UNINDENT
  18653. .UNINDENT
  18654. .sp
  18655. \fBNOTE:\fP
  18656. .INDENT 0.0
  18657. .INDENT 3.5
  18658. state.sls and state.highstate will return "Failed to authenticate!"
  18659. if the request timeout is reached. Use \-t flag to increase the timeout
  18660. .UNINDENT
  18661. .UNINDENT
  18662. .sp
  18663. To allow access to wheel modules or runner
  18664. modules the following \fB@\fP syntax must be used:
  18665. .INDENT 0.0
  18666. .INDENT 3.5
  18667. .sp
  18668. .nf
  18669. .ft C
  18670. external_auth:
  18671. pam:
  18672. thatch:
  18673. \- \(aq@wheel\(aq # to allow access to all wheel modules
  18674. \- \(aq@runner\(aq # to allow access to all runner modules
  18675. \- \(aq@jobs\(aq # to allow access to the jobs runner and/or wheel module
  18676. .ft P
  18677. .fi
  18678. .UNINDENT
  18679. .UNINDENT
  18680. .sp
  18681. \fBNOTE:\fP
  18682. .INDENT 0.0
  18683. .INDENT 3.5
  18684. The runner/wheel markup is different, since there are no minions to scope the
  18685. acl to.
  18686. .UNINDENT
  18687. .UNINDENT
  18688. .sp
  18689. \fBNOTE:\fP
  18690. .INDENT 0.0
  18691. .INDENT 3.5
  18692. Globs will not match wheel or runners! They must be explicitly
  18693. allowed with @wheel or @runner.
  18694. .UNINDENT
  18695. .UNINDENT
  18696. .sp
  18697. \fBWARNING:\fP
  18698. .INDENT 0.0
  18699. .INDENT 3.5
  18700. All users that have external authentication privileges are allowed to run
  18701. \fBsaltutil.findjob\fP\&. Be aware
  18702. that this could inadvertently expose some data such as minion IDs.
  18703. .UNINDENT
  18704. .UNINDENT
  18705. .SS Matching syntax
  18706. .sp
  18707. The structure of the \fBexternal_auth\fP dictionary can take the following
  18708. shapes. User and function matches are exact matches, shell glob patterns or
  18709. regular expressions; minion matches are compound targets.
  18710. .sp
  18711. By user:
  18712. .INDENT 0.0
  18713. .INDENT 3.5
  18714. .sp
  18715. .nf
  18716. .ft C
  18717. external_auth:
  18718. <eauth backend>:
  18719. <user or group%>:
  18720. \- <regex to match function>
  18721. .ft P
  18722. .fi
  18723. .UNINDENT
  18724. .UNINDENT
  18725. .sp
  18726. By user, by minion:
  18727. .INDENT 0.0
  18728. .INDENT 3.5
  18729. .sp
  18730. .nf
  18731. .ft C
  18732. external_auth:
  18733. <eauth backend>:
  18734. <user or group%>:
  18735. <minion compound target>:
  18736. \- <regex to match function>
  18737. .ft P
  18738. .fi
  18739. .UNINDENT
  18740. .UNINDENT
  18741. .sp
  18742. By user, by runner/wheel:
  18743. .INDENT 0.0
  18744. .INDENT 3.5
  18745. .sp
  18746. .nf
  18747. .ft C
  18748. external_auth:
  18749. <eauth backend>:
  18750. <user or group%>:
  18751. <@runner or @wheel>:
  18752. \- <regex to match function>
  18753. .ft P
  18754. .fi
  18755. .UNINDENT
  18756. .UNINDENT
  18757. .sp
  18758. By user, by runner+wheel module:
  18759. .INDENT 0.0
  18760. .INDENT 3.5
  18761. .sp
  18762. .nf
  18763. .ft C
  18764. external_auth:
  18765. <eauth backend>:
  18766. <user or group%>:
  18767. <@module_name>:
  18768. \- <regex to match function without module_name>
  18769. .ft P
  18770. .fi
  18771. .UNINDENT
  18772. .UNINDENT
  18773. .SS Groups
  18774. .sp
  18775. To apply permissions to a group of users in an external authentication system,
  18776. append a \fB%\fP to the ID:
  18777. .INDENT 0.0
  18778. .INDENT 3.5
  18779. .sp
  18780. .nf
  18781. .ft C
  18782. external_auth:
  18783. pam:
  18784. admins%:
  18785. \- \(aq*\(aq:
  18786. \- \(aqpkg.*\(aq
  18787. .ft P
  18788. .fi
  18789. .UNINDENT
  18790. .UNINDENT
  18791. .SS Limiting by function arguments
  18792. .sp
  18793. Positional arguments or keyword arguments to functions can also be whitelisted.
  18794. .sp
  18795. New in version 2016.3.0.
  18796. .INDENT 0.0
  18797. .INDENT 3.5
  18798. .sp
  18799. .nf
  18800. .ft C
  18801. external_auth:
  18802. pam:
  18803. my_user:
  18804. \- \(aq*\(aq:
  18805. \- \(aqmy_mod.*\(aq:
  18806. args:
  18807. \- \(aqa.*\(aq
  18808. \- \(aqb.*\(aq
  18809. kwargs:
  18810. \(aqkwa\(aq: \(aqkwa.*\(aq
  18811. \(aqkwb\(aq: \(aqkwb\(aq
  18812. \- \(aq@runner\(aq:
  18813. \- \(aqrunner_mod.*\(aq:
  18814. args:
  18815. \- \(aqa.*\(aq
  18816. \- \(aqb.*\(aq
  18817. kwargs:
  18818. \(aqkwa\(aq: \(aqkwa.*\(aq
  18819. \(aqkwb\(aq: \(aqkwb\(aq
  18820. .ft P
  18821. .fi
  18822. .UNINDENT
  18823. .UNINDENT
  18824. .sp
  18825. The rules:
  18826. .INDENT 0.0
  18827. .IP 1. 3
  18828. The arguments values are matched as regexp.
  18829. .IP 2. 3
  18830. If arguments restrictions are specified the only matched are allowed.
  18831. .IP 3. 3
  18832. If an argument isn\(aqt specified any value is allowed.
  18833. .IP 4. 3
  18834. To skip an arg use "everything" regexp \fB\&.*\fP\&. I.e. if \fBarg0\fP and \fBarg2\fP
  18835. should be limited but \fBarg1\fP and other arguments could have any value use:
  18836. .INDENT 3.0
  18837. .INDENT 3.5
  18838. .sp
  18839. .nf
  18840. .ft C
  18841. args:
  18842. \- \(aqvalue0\(aq
  18843. \- \(aq.*\(aq
  18844. \- \(aqvalue2\(aq
  18845. .ft P
  18846. .fi
  18847. .UNINDENT
  18848. .UNINDENT
  18849. .UNINDENT
  18850. .SS Usage
  18851. .sp
  18852. The external authentication system can then be used from the command\-line by
  18853. any user on the same system as the master with the \fB\-a\fP option:
  18854. .INDENT 0.0
  18855. .INDENT 3.5
  18856. .sp
  18857. .nf
  18858. .ft C
  18859. $ salt \-a pam web\e* test.version
  18860. .ft P
  18861. .fi
  18862. .UNINDENT
  18863. .UNINDENT
  18864. .sp
  18865. The system will ask the user for the credentials required by the
  18866. authentication system and then publish the command.
  18867. .SS Tokens
  18868. .sp
  18869. With external authentication alone, the authentication credentials will be
  18870. required with every call to Salt. This can be alleviated with Salt tokens.
  18871. .sp
  18872. Tokens are short term authorizations and can be easily created by just
  18873. adding a \fB\-T\fP option when authenticating:
  18874. .INDENT 0.0
  18875. .INDENT 3.5
  18876. .sp
  18877. .nf
  18878. .ft C
  18879. $ salt \-T \-a pam web\e* test.version
  18880. .ft P
  18881. .fi
  18882. .UNINDENT
  18883. .UNINDENT
  18884. .sp
  18885. Now a token will be created that has an expiration of 12 hours (by default).
  18886. This token is stored in a file named \fBsalt_token\fP in the active user\(aqs home
  18887. directory.
  18888. .sp
  18889. Once the token is created, it is sent with all subsequent communications.
  18890. User authentication does not need to be entered again until the token expires.
  18891. .sp
  18892. Token expiration time can be set in the Salt master config file.
  18893. .SS LDAP and Active Directory
  18894. .sp
  18895. \fBNOTE:\fP
  18896. .INDENT 0.0
  18897. .INDENT 3.5
  18898. LDAP usage requires that you have installed python\-ldap.
  18899. .UNINDENT
  18900. .UNINDENT
  18901. .sp
  18902. Salt supports both user and group authentication for LDAP (and Active Directory
  18903. accessed via its LDAP interface)
  18904. .SS OpenLDAP and similar systems
  18905. .sp
  18906. LDAP configuration happens in the Salt master configuration file.
  18907. .sp
  18908. Server configuration values and their defaults:
  18909. .INDENT 0.0
  18910. .INDENT 3.5
  18911. .sp
  18912. .nf
  18913. .ft C
  18914. # Server to auth against
  18915. auth.ldap.server: localhost
  18916. # Port to connect via
  18917. auth.ldap.port: 389
  18918. # Use TLS when connecting
  18919. auth.ldap.tls: False
  18920. # Use STARTTLS when connecting
  18921. auth.ldap.starttls: False
  18922. # LDAP scope level, almost always 2
  18923. auth.ldap.scope: 2
  18924. # Server specified in URI format
  18925. auth.ldap.uri: \(aq\(aq # Overrides .ldap.server, .ldap.port, .ldap.tls above
  18926. # Verify server\(aqs TLS certificate
  18927. auth.ldap.no_verify: False
  18928. # Bind to LDAP anonymously to determine group membership
  18929. # Active Directory does not allow anonymous binds without special configuration
  18930. # In addition, if auth.ldap.anonymous is True, empty bind passwords are not permitted.
  18931. auth.ldap.anonymous: False
  18932. # FOR TESTING ONLY, this is a VERY insecure setting.
  18933. # If this is True, the LDAP bind password will be ignored and
  18934. # access will be determined by group membership alone with
  18935. # the group memberships being retrieved via anonymous bind
  18936. auth.ldap.auth_by_group_membership_only: False
  18937. # Require authenticating user to be part of this Organizational Unit
  18938. # This can be blank if your LDAP schema does not use this kind of OU
  18939. auth.ldap.groupou: \(aqGroups\(aq
  18940. # Object Class for groups. An LDAP search will be done to find all groups of this
  18941. # class to which the authenticating user belongs.
  18942. auth.ldap.groupclass: \(aqposixGroup\(aq
  18943. # Unique ID attribute name for the user
  18944. auth.ldap.accountattributename: \(aqmemberUid\(aq
  18945. # These are only for Active Directory
  18946. auth.ldap.activedirectory: False
  18947. auth.ldap.persontype: \(aqperson\(aq
  18948. auth.ldap.minion_stripdomains: []
  18949. # Redhat Identity Policy Audit
  18950. auth.ldap.freeipa: False
  18951. .ft P
  18952. .fi
  18953. .UNINDENT
  18954. .UNINDENT
  18955. .SS Authenticating to the LDAP Server
  18956. .sp
  18957. There are two phases to LDAP authentication. First, Salt authenticates to search for a users\(aq Distinguished Name
  18958. and group membership. The user it authenticates as in this phase is often a special LDAP system user with
  18959. read\-only access to the LDAP directory. After Salt searches the directory to determine the actual user\(aqs DN
  18960. and groups, it re\-authenticates as the user running the Salt commands.
  18961. .sp
  18962. If you are already aware of the structure of your DNs and permissions in your LDAP store are set such that
  18963. users can look up their own group memberships, then the first and second users can be the same. To tell Salt this is
  18964. the case, omit the \fBauth.ldap.bindpw\fP parameter. Note this is not the same thing as using an anonymous bind.
  18965. Most LDAP servers will not permit anonymous bind, and as mentioned above, if \fIauth.ldap.anonymous\fP is False you
  18966. cannot use an empty password.
  18967. .sp
  18968. You can template the \fBbinddn\fP like this:
  18969. .INDENT 0.0
  18970. .INDENT 3.5
  18971. .sp
  18972. .nf
  18973. .ft C
  18974. auth.ldap.basedn: dc=saltstack,dc=com
  18975. auth.ldap.binddn: uid={{ username }},cn=users,cn=accounts,dc=saltstack,dc=com
  18976. .ft P
  18977. .fi
  18978. .UNINDENT
  18979. .UNINDENT
  18980. .sp
  18981. Salt will use the password entered on the salt command line in place of the bindpw.
  18982. .sp
  18983. To use two separate users, specify the LDAP lookup user in the binddn directive, and include a bindpw like so
  18984. .INDENT 0.0
  18985. .INDENT 3.5
  18986. .sp
  18987. .nf
  18988. .ft C
  18989. auth.ldap.binddn: uid=ldaplookup,cn=sysaccounts,cn=etc,dc=saltstack,dc=com
  18990. auth.ldap.bindpw: mypassword
  18991. .ft P
  18992. .fi
  18993. .UNINDENT
  18994. .UNINDENT
  18995. .sp
  18996. As mentioned before, Salt uses a filter to find the DN associated with a user. Salt
  18997. substitutes the \fB{{ username }}\fP value for the username when querying LDAP
  18998. .INDENT 0.0
  18999. .INDENT 3.5
  19000. .sp
  19001. .nf
  19002. .ft C
  19003. auth.ldap.filter: uid={{ username }}
  19004. .ft P
  19005. .fi
  19006. .UNINDENT
  19007. .UNINDENT
  19008. .SS Determining Group Memberships (OpenLDAP / non\-Active Directory)
  19009. .sp
  19010. For OpenLDAP, to determine group membership, one can specify an OU that contains
  19011. group data. This is prepended to the basedn to create a search path. Then
  19012. the results are filtered against \fBauth.ldap.groupclass\fP, default
  19013. \fBposixGroup\fP, and the account\(aqs \(aqname\(aq attribute, \fBmemberUid\fP by default.
  19014. .INDENT 0.0
  19015. .INDENT 3.5
  19016. .sp
  19017. .nf
  19018. .ft C
  19019. auth.ldap.groupou: Groups
  19020. .ft P
  19021. .fi
  19022. .UNINDENT
  19023. .UNINDENT
  19024. .sp
  19025. Note that as of 2017.7, auth.ldap.groupclass can refer to either a groupclass or an objectClass.
  19026. For some LDAP servers (notably OpenLDAP without the \fBmemberOf\fP overlay enabled) to determine group
  19027. membership we need to know both the \fBobjectClass\fP and the \fBmemberUid\fP attributes. Usually for these
  19028. servers you will want a \fBauth.ldap.groupclass\fP of \fBposixGroup\fP and an \fBauth.ldap.groupattribute\fP of
  19029. \fBmemberUid\fP\&.
  19030. .sp
  19031. LDAP servers with the \fBmemberOf\fP overlay will have entries similar to \fBauth.ldap.groupclass: person\fP and
  19032. \fBauth.ldap.groupattribute: memberOf\fP\&.
  19033. .sp
  19034. When using the \fBldap(\(aqDC=domain,DC=com\(aq)\fP eauth operator, sometimes the records returned
  19035. from LDAP or Active Directory have fully\-qualified domain names attached, while minion IDs
  19036. instead are simple hostnames. The parameter below allows the administrator to strip
  19037. off a certain set of domain names so the hostnames looked up in the directory service
  19038. can match the minion IDs.
  19039. .INDENT 0.0
  19040. .INDENT 3.5
  19041. .sp
  19042. .nf
  19043. .ft C
  19044. auth.ldap.minion_stripdomains: [\(aq.external.bigcorp.com\(aq, \(aq.internal.bigcorp.com\(aq]
  19045. .ft P
  19046. .fi
  19047. .UNINDENT
  19048. .UNINDENT
  19049. .SS Determining Group Memberships (Active Directory)
  19050. .sp
  19051. Active Directory handles group membership differently, and does not utilize the
  19052. \fBgroupou\fP configuration variable. AD needs the following options in
  19053. the master config:
  19054. .INDENT 0.0
  19055. .INDENT 3.5
  19056. .sp
  19057. .nf
  19058. .ft C
  19059. auth.ldap.activedirectory: True
  19060. auth.ldap.filter: sAMAccountName={{username}}
  19061. auth.ldap.accountattributename: sAMAccountName
  19062. auth.ldap.groupclass: group
  19063. auth.ldap.persontype: person
  19064. .ft P
  19065. .fi
  19066. .UNINDENT
  19067. .UNINDENT
  19068. .sp
  19069. To determine group membership in AD, the username and password that is entered
  19070. when LDAP is requested as the eAuth mechanism on the command line is used to
  19071. bind to AD\(aqs LDAP interface. If this fails, then it doesn\(aqt matter what groups
  19072. the user belongs to, he or she is denied access. Next, the \fBdistinguishedName\fP
  19073. of the user is looked up with the following LDAP search:
  19074. .INDENT 0.0
  19075. .INDENT 3.5
  19076. .sp
  19077. .nf
  19078. .ft C
  19079. (&(<value of auth.ldap.accountattributename>={{username}})
  19080. (objectClass=<value of auth.ldap.persontype>)
  19081. )
  19082. .ft P
  19083. .fi
  19084. .UNINDENT
  19085. .UNINDENT
  19086. .sp
  19087. This should return a distinguishedName that we can use to filter for group
  19088. membership. Then the following LDAP query is executed:
  19089. .INDENT 0.0
  19090. .INDENT 3.5
  19091. .sp
  19092. .nf
  19093. .ft C
  19094. (&(member=<distinguishedName from search above>)
  19095. (objectClass=<value of auth.ldap.groupclass>)
  19096. )
  19097. .ft P
  19098. .fi
  19099. .UNINDENT
  19100. .UNINDENT
  19101. .INDENT 0.0
  19102. .INDENT 3.5
  19103. .sp
  19104. .nf
  19105. .ft C
  19106. external_auth:
  19107. ldap:
  19108. test_ldap_user:
  19109. \- \(aq*\(aq:
  19110. \- test.ping
  19111. .ft P
  19112. .fi
  19113. .UNINDENT
  19114. .UNINDENT
  19115. .sp
  19116. To configure a LDAP group, append a \fB%\fP to the ID:
  19117. .INDENT 0.0
  19118. .INDENT 3.5
  19119. .sp
  19120. .nf
  19121. .ft C
  19122. external_auth:
  19123. ldap:
  19124. test_ldap_group%:
  19125. \- \(aq*\(aq:
  19126. \- test.echo
  19127. .ft P
  19128. .fi
  19129. .UNINDENT
  19130. .UNINDENT
  19131. .sp
  19132. In addition, if there are a set of computers in the directory service that should
  19133. be part of the eAuth definition, they can be specified like this:
  19134. .INDENT 0.0
  19135. .INDENT 3.5
  19136. .sp
  19137. .nf
  19138. .ft C
  19139. external_auth:
  19140. ldap:
  19141. test_ldap_group%:
  19142. \- ldap(\(aqDC=corp,DC=example,DC=com\(aq):
  19143. \- test.echo
  19144. .ft P
  19145. .fi
  19146. .UNINDENT
  19147. .UNINDENT
  19148. .sp
  19149. The string inside \fBldap()\fP above is any valid LDAP/AD tree limiter. \fBOU=\fP in
  19150. particular is permitted as long as it would return a list of computer objects.
  19151. .SS Peer Communication
  19152. .sp
  19153. Salt 0.9.0 introduced the capability for Salt minions to publish commands. The
  19154. intent of this feature is not for Salt minions to act as independent brokers
  19155. one with another, but to allow Salt minions to pass commands to each other.
  19156. .sp
  19157. In Salt 0.10.0 the ability to execute runners from the master was added. This
  19158. allows for the master to return collective data from runners back to the
  19159. minions via the peer interface.
  19160. .sp
  19161. The peer interface is configured through two options in the master
  19162. configuration file. For minions to send commands from the master the \fBpeer\fP
  19163. configuration is used. To allow for minions to execute runners from the master
  19164. the \fBpeer_run\fP configuration is used.
  19165. .sp
  19166. Since this presents a viable security risk by allowing minions access to the
  19167. master publisher the capability is turned off by default. The minions can be
  19168. allowed access to the master publisher on a per minion basis based on regular
  19169. expressions. Minions with specific ids can be allowed access to certain Salt
  19170. modules and functions.
  19171. .SS Peer Configuration
  19172. .sp
  19173. The configuration is done under the \fBpeer\fP setting in the Salt master
  19174. configuration file, here are a number of configuration possibilities.
  19175. .sp
  19176. The simplest approach is to enable all communication for all minions, this is
  19177. only recommended for very secure environments.
  19178. .INDENT 0.0
  19179. .INDENT 3.5
  19180. .sp
  19181. .nf
  19182. .ft C
  19183. peer:
  19184. .*:
  19185. \- .*
  19186. .ft P
  19187. .fi
  19188. .UNINDENT
  19189. .UNINDENT
  19190. .sp
  19191. This configuration will allow minions with IDs ending in example.com access
  19192. to the test, ps, and pkg module functions.
  19193. .INDENT 0.0
  19194. .INDENT 3.5
  19195. .sp
  19196. .nf
  19197. .ft C
  19198. peer:
  19199. .*example.com:
  19200. \- test.*
  19201. \- ps.*
  19202. \- pkg.*
  19203. .ft P
  19204. .fi
  19205. .UNINDENT
  19206. .UNINDENT
  19207. .sp
  19208. The configuration logic is simple, a regular expression is passed for matching
  19209. minion ids, and then a list of expressions matching minion functions is
  19210. associated with the named minion. For instance, this configuration will also
  19211. allow minions ending with foo.org access to the publisher.
  19212. .INDENT 0.0
  19213. .INDENT 3.5
  19214. .sp
  19215. .nf
  19216. .ft C
  19217. peer:
  19218. .*example.com:
  19219. \- test.*
  19220. \- ps.*
  19221. \- pkg.*
  19222. .*foo.org:
  19223. \- test.*
  19224. \- ps.*
  19225. \- pkg.*
  19226. .ft P
  19227. .fi
  19228. .UNINDENT
  19229. .UNINDENT
  19230. .sp
  19231. \fBNOTE:\fP
  19232. .INDENT 0.0
  19233. .INDENT 3.5
  19234. Functions are matched using regular expressions.
  19235. .UNINDENT
  19236. .UNINDENT
  19237. .SS Peer Runner Communication
  19238. .sp
  19239. Configuration to allow minions to execute runners from the master is done via
  19240. the \fBpeer_run\fP option on the master. The \fBpeer_run\fP configuration follows
  19241. the same logic as the \fBpeer\fP option. The only difference is that access is
  19242. granted to runner modules.
  19243. .sp
  19244. To open up access to all minions to all runners:
  19245. .INDENT 0.0
  19246. .INDENT 3.5
  19247. .sp
  19248. .nf
  19249. .ft C
  19250. peer_run:
  19251. .*:
  19252. \- .*
  19253. .ft P
  19254. .fi
  19255. .UNINDENT
  19256. .UNINDENT
  19257. .sp
  19258. This configuration will allow minions with IDs ending in example.com access
  19259. to the manage and jobs runner functions.
  19260. .INDENT 0.0
  19261. .INDENT 3.5
  19262. .sp
  19263. .nf
  19264. .ft C
  19265. peer_run:
  19266. .*example.com:
  19267. \- manage.*
  19268. \- jobs.*
  19269. .ft P
  19270. .fi
  19271. .UNINDENT
  19272. .UNINDENT
  19273. .sp
  19274. \fBNOTE:\fP
  19275. .INDENT 0.0
  19276. .INDENT 3.5
  19277. Functions are matched using regular expressions.
  19278. .UNINDENT
  19279. .UNINDENT
  19280. .SS Using Peer Communication
  19281. .sp
  19282. The publish module was created to manage peer communication. The publish module
  19283. comes with a number of functions to execute peer communication in different
  19284. ways. Currently there are three functions in the publish module. These examples
  19285. will show how to test the peer system via the salt\-call command.
  19286. .sp
  19287. To execute test.version on all minions:
  19288. .INDENT 0.0
  19289. .INDENT 3.5
  19290. .sp
  19291. .nf
  19292. .ft C
  19293. # salt\-call publish.publish \e* test.version
  19294. .ft P
  19295. .fi
  19296. .UNINDENT
  19297. .UNINDENT
  19298. .sp
  19299. To execute the manage.up runner:
  19300. .INDENT 0.0
  19301. .INDENT 3.5
  19302. .sp
  19303. .nf
  19304. .ft C
  19305. # salt\-call publish.runner manage.up
  19306. .ft P
  19307. .fi
  19308. .UNINDENT
  19309. .UNINDENT
  19310. .sp
  19311. To match minions using other matchers, use \fBtgt_type\fP:
  19312. .INDENT 0.0
  19313. .INDENT 3.5
  19314. .sp
  19315. .nf
  19316. .ft C
  19317. # salt\-call publish.publish \(aqwebserv* and not G@os:Ubuntu\(aq test.version tgt_type=\(aqcompound\(aq
  19318. .ft P
  19319. .fi
  19320. .UNINDENT
  19321. .UNINDENT
  19322. .sp
  19323. \fBNOTE:\fP
  19324. .INDENT 0.0
  19325. .INDENT 3.5
  19326. In pre\-2017.7.0 releases, use \fBexpr_form\fP instead of \fBtgt_type\fP\&.
  19327. .UNINDENT
  19328. .UNINDENT
  19329. .SS When to Use Each Authentication System
  19330. .sp
  19331. \fBpublisher_acl\fP is useful for allowing local system users to run Salt
  19332. commands without giving them root access. If you can log into the Salt
  19333. master directly, then \fBpublisher_acl\fP allows you to use Salt without
  19334. root privileges. If the local system is configured to authenticate against
  19335. a remote system, like LDAP or Active Directory, then \fBpublisher_acl\fP will
  19336. interact with the remote system transparently.
  19337. .sp
  19338. \fBexternal_auth\fP is useful for \fBsalt\-api\fP or for making your own scripts
  19339. that use Salt\(aqs Python API. It can be used at the CLI (with the \fB\-a\fP
  19340. flag) but it is more cumbersome as there are more steps involved. The only
  19341. time it is useful at the CLI is when the local system is \fInot\fP configured
  19342. to authenticate against an external service \fIbut\fP you still want Salt to
  19343. authenticate against an external service.
  19344. .SS Examples
  19345. .sp
  19346. The access controls are manifested using matchers in these configurations:
  19347. .INDENT 0.0
  19348. .INDENT 3.5
  19349. .sp
  19350. .nf
  19351. .ft C
  19352. publisher_acl:
  19353. fred:
  19354. \- web\e*:
  19355. \- pkg.list_pkgs
  19356. \- test.*
  19357. \- apache.*
  19358. .ft P
  19359. .fi
  19360. .UNINDENT
  19361. .UNINDENT
  19362. .sp
  19363. In the above example, fred is able to send commands only to minions which match
  19364. the specified glob target. This can be expanded to include other functions for
  19365. other minions based on standard targets (all matchers are supported except the compound one).
  19366. .INDENT 0.0
  19367. .INDENT 3.5
  19368. .sp
  19369. .nf
  19370. .ft C
  19371. external_auth:
  19372. pam:
  19373. dave:
  19374. \- test.version
  19375. \- mongo\e*:
  19376. \- network.*
  19377. \- log\e*:
  19378. \- network.*
  19379. \- pkg.*
  19380. \- \(aqG@os:RedHat\(aq:
  19381. \- kmod.*
  19382. steve:
  19383. \- .*
  19384. .ft P
  19385. .fi
  19386. .UNINDENT
  19387. .UNINDENT
  19388. .sp
  19389. The above allows for all minions to be hit by test.version by dave, and adds a
  19390. few functions that dave can execute on other minions. It also allows steve
  19391. unrestricted access to salt commands.
  19392. .sp
  19393. \fBNOTE:\fP
  19394. .INDENT 0.0
  19395. .INDENT 3.5
  19396. Functions are matched using regular expressions.
  19397. .UNINDENT
  19398. .UNINDENT
  19399. .SS Job Management
  19400. .sp
  19401. New in version 0.9.7.
  19402. .sp
  19403. Since Salt executes jobs running on many systems, Salt needs to be able to
  19404. manage jobs running on many systems.
  19405. .SS The Minion proc System
  19406. .sp
  19407. Salt Minions maintain a \fIproc\fP directory in the Salt \fBcachedir\fP\&. The \fIproc\fP
  19408. directory maintains files named after the executed job ID. These files contain
  19409. the information about the current running jobs on the minion and allow for
  19410. jobs to be looked up. This is located in the \fIproc\fP directory under the
  19411. cachedir, with a default configuration it is under \fB/var/cache/salt/{master|minion}/proc\fP\&.
  19412. .SS Functions in the saltutil Module
  19413. .sp
  19414. Salt 0.9.7 introduced a few new functions to the
  19415. \fBsaltutil\fP module for managing
  19416. jobs. These functions are:
  19417. .INDENT 0.0
  19418. .IP 1. 3
  19419. \fBrunning\fP
  19420. Returns the data of all running jobs that are found in the \fIproc\fP directory.
  19421. .IP 2. 3
  19422. \fBfind_job\fP
  19423. Returns specific data about a certain job based on job id.
  19424. .IP 3. 3
  19425. \fBsignal_job\fP
  19426. Allows for a given jid to be sent a signal.
  19427. .IP 4. 3
  19428. \fBterm_job\fP
  19429. Sends a termination signal (SIGTERM, 15) to the process controlling the
  19430. specified job.
  19431. .IP 5. 3
  19432. \fBkill_job\fP
  19433. Sends a kill signal (SIGKILL, 9) to the process controlling the
  19434. specified job.
  19435. .UNINDENT
  19436. .sp
  19437. These functions make up the core of the back end used to manage jobs at the
  19438. minion level.
  19439. .SS The jobs Runner
  19440. .sp
  19441. A convenience runner front end and reporting system has been added as well.
  19442. The jobs runner contains functions to make viewing data easier and cleaner.
  19443. .sp
  19444. The jobs runner contains a number of functions...
  19445. .SS active
  19446. .sp
  19447. The active function runs saltutil.running on all minions and formats the
  19448. return data about all running jobs in a much more usable and compact format.
  19449. The active function will also compare jobs that have returned and jobs that
  19450. are still running, making it easier to see what systems have completed a job
  19451. and what systems are still being waited on.
  19452. .INDENT 0.0
  19453. .INDENT 3.5
  19454. .sp
  19455. .nf
  19456. .ft C
  19457. # salt\-run jobs.active
  19458. .ft P
  19459. .fi
  19460. .UNINDENT
  19461. .UNINDENT
  19462. .SS lookup_jid
  19463. .sp
  19464. When jobs are executed the return data is sent back to the master and cached.
  19465. By default it is cached for 24 hours, but this can be configured via the
  19466. \fBkeep_jobs\fP option in the master configuration.
  19467. Using the lookup_jid runner will display the same return data that the initial
  19468. job invocation with the salt command would display.
  19469. .INDENT 0.0
  19470. .INDENT 3.5
  19471. .sp
  19472. .nf
  19473. .ft C
  19474. # salt\-run jobs.lookup_jid <job id number>
  19475. .ft P
  19476. .fi
  19477. .UNINDENT
  19478. .UNINDENT
  19479. .SS list_jobs
  19480. .sp
  19481. Before finding a historic job, it may be required to find the job id. \fBlist_jobs\fP
  19482. will parse the cached execution data and display all of the job data for jobs
  19483. that have already, or partially returned.
  19484. .INDENT 0.0
  19485. .INDENT 3.5
  19486. .sp
  19487. .nf
  19488. .ft C
  19489. # salt\-run jobs.list_jobs
  19490. .ft P
  19491. .fi
  19492. .UNINDENT
  19493. .UNINDENT
  19494. .SS Scheduling Jobs
  19495. .sp
  19496. Salt\(aqs scheduling system allows incremental executions on minions or the
  19497. master. The schedule system exposes the execution of any execution function on
  19498. minions or any runner on the master.
  19499. .sp
  19500. Scheduling can be enabled by multiple methods:
  19501. .INDENT 0.0
  19502. .IP \(bu 2
  19503. \fBschedule\fP option in either the master or minion config files. These
  19504. require the master or minion application to be restarted in order for the
  19505. schedule to be implemented.
  19506. .IP \(bu 2
  19507. Minion pillar data. Schedule is implemented by refreshing the minion\(aqs pillar data,
  19508. for example by using \fBsaltutil.refresh_pillar\fP\&.
  19509. .IP \(bu 2
  19510. The \fBschedule state\fP or
  19511. \fBschedule module\fP
  19512. .UNINDENT
  19513. .sp
  19514. \fBNOTE:\fP
  19515. .INDENT 0.0
  19516. .INDENT 3.5
  19517. The scheduler executes different functions on the master and minions. When
  19518. running on the master the functions reference runner functions, when
  19519. running on the minion the functions specify execution functions.
  19520. .UNINDENT
  19521. .UNINDENT
  19522. .sp
  19523. A scheduled run has no output on the minion unless the config is set to info level
  19524. or higher. Refer to \fBminion\-logging\-settings\fP\&.
  19525. .sp
  19526. States are executed on the minion, as all states are. You can pass positional
  19527. arguments and provide a YAML dict of named arguments.
  19528. .INDENT 0.0
  19529. .INDENT 3.5
  19530. .sp
  19531. .nf
  19532. .ft C
  19533. schedule:
  19534. job1:
  19535. function: state.sls
  19536. seconds: 3600
  19537. args:
  19538. \- httpd
  19539. kwargs:
  19540. test: True
  19541. .ft P
  19542. .fi
  19543. .UNINDENT
  19544. .UNINDENT
  19545. .sp
  19546. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19547. (every hour).
  19548. .INDENT 0.0
  19549. .INDENT 3.5
  19550. .sp
  19551. .nf
  19552. .ft C
  19553. schedule:
  19554. job1:
  19555. function: state.sls
  19556. seconds: 3600
  19557. args:
  19558. \- httpd
  19559. kwargs:
  19560. test: True
  19561. splay: 15
  19562. .ft P
  19563. .fi
  19564. .UNINDENT
  19565. .UNINDENT
  19566. .sp
  19567. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19568. (every hour) splaying the time between 0 and 15 seconds.
  19569. .INDENT 0.0
  19570. .INDENT 3.5
  19571. .sp
  19572. .nf
  19573. .ft C
  19574. schedule:
  19575. job1:
  19576. function: state.sls
  19577. seconds: 3600
  19578. args:
  19579. \- httpd
  19580. kwargs:
  19581. test: True
  19582. splay:
  19583. start: 10
  19584. end: 15
  19585. .ft P
  19586. .fi
  19587. .UNINDENT
  19588. .UNINDENT
  19589. .sp
  19590. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19591. (every hour) splaying the time between 10 and 15 seconds.
  19592. .SS Schedule by Date and Time
  19593. .sp
  19594. New in version 2014.7.0.
  19595. .sp
  19596. Frequency of jobs can also be specified using date strings supported by
  19597. the Python \fBdateutil\fP library. This requires the Python \fBdateutil\fP library
  19598. to be installed.
  19599. .INDENT 0.0
  19600. .INDENT 3.5
  19601. .sp
  19602. .nf
  19603. .ft C
  19604. schedule:
  19605. job1:
  19606. function: state.sls
  19607. args:
  19608. \- httpd
  19609. kwargs:
  19610. test: True
  19611. when: 5:00pm
  19612. .ft P
  19613. .fi
  19614. .UNINDENT
  19615. .UNINDENT
  19616. .sp
  19617. This will schedule the command: \fBstate.sls httpd test=True\fP at 5:00 PM minion
  19618. localtime.
  19619. .INDENT 0.0
  19620. .INDENT 3.5
  19621. .sp
  19622. .nf
  19623. .ft C
  19624. schedule:
  19625. job1:
  19626. function: state.sls
  19627. args:
  19628. \- httpd
  19629. kwargs:
  19630. test: True
  19631. when:
  19632. \- Monday 5:00pm
  19633. \- Tuesday 3:00pm
  19634. \- Wednesday 5:00pm
  19635. \- Thursday 3:00pm
  19636. \- Friday 5:00pm
  19637. .ft P
  19638. .fi
  19639. .UNINDENT
  19640. .UNINDENT
  19641. .sp
  19642. This will schedule the command: \fBstate.sls httpd test=True\fP at 5:00 PM on
  19643. Monday, Wednesday and Friday, and 3:00 PM on Tuesday and Thursday.
  19644. .INDENT 0.0
  19645. .INDENT 3.5
  19646. .sp
  19647. .nf
  19648. .ft C
  19649. schedule:
  19650. job1:
  19651. function: state.sls
  19652. args:
  19653. \- httpd
  19654. kwargs:
  19655. test: True
  19656. when:
  19657. \- \(aqtea time\(aq
  19658. .ft P
  19659. .fi
  19660. .UNINDENT
  19661. .UNINDENT
  19662. .INDENT 0.0
  19663. .INDENT 3.5
  19664. .sp
  19665. .nf
  19666. .ft C
  19667. whens:
  19668. tea time: 1:40pm
  19669. deployment time: Friday 5:00pm
  19670. .ft P
  19671. .fi
  19672. .UNINDENT
  19673. .UNINDENT
  19674. .sp
  19675. The Salt scheduler also allows custom phrases to be used for the \fIwhen\fP
  19676. parameter. These \fIwhens\fP can be stored as either pillar values or
  19677. grain values.
  19678. .INDENT 0.0
  19679. .INDENT 3.5
  19680. .sp
  19681. .nf
  19682. .ft C
  19683. schedule:
  19684. job1:
  19685. function: state.sls
  19686. seconds: 3600
  19687. args:
  19688. \- httpd
  19689. kwargs:
  19690. test: True
  19691. range:
  19692. start: 8:00am
  19693. end: 5:00pm
  19694. .ft P
  19695. .fi
  19696. .UNINDENT
  19697. .UNINDENT
  19698. .sp
  19699. This will schedule the command: \fBstate.sls httpd test=True\fP every 3600 seconds
  19700. (every hour) between the hours of 8:00 AM and 5:00 PM. The range parameter must
  19701. be a dictionary with the date strings using the \fBdateutil\fP format.
  19702. .INDENT 0.0
  19703. .INDENT 3.5
  19704. .sp
  19705. .nf
  19706. .ft C
  19707. schedule:
  19708. job1:
  19709. function: state.sls
  19710. seconds: 3600
  19711. args:
  19712. \- httpd
  19713. kwargs:
  19714. test: True
  19715. range:
  19716. invert: True
  19717. start: 8:00am
  19718. end: 5:00pm
  19719. .ft P
  19720. .fi
  19721. .UNINDENT
  19722. .UNINDENT
  19723. .sp
  19724. Using the invert option for range, this will schedule the command
  19725. \fBstate.sls httpd test=True\fP every 3600 seconds (every hour) until the current
  19726. time is between the hours of 8:00 AM and 5:00 PM. The range parameter must be
  19727. a dictionary with the date strings using the \fBdateutil\fP format.
  19728. .INDENT 0.0
  19729. .INDENT 3.5
  19730. .sp
  19731. .nf
  19732. .ft C
  19733. schedule:
  19734. job1:
  19735. function: pkg.install
  19736. kwargs:
  19737. pkgs: [{\(aqbar\(aq: \(aq>1.2.3\(aq}]
  19738. refresh: true
  19739. once: \(aq2016\-01\-07T14:30:00\(aq
  19740. .ft P
  19741. .fi
  19742. .UNINDENT
  19743. .UNINDENT
  19744. .sp
  19745. This will schedule the function \fBpkg.install\fP to be executed once at the
  19746. specified time. The schedule entry \fBjob1\fP will not be removed after the job
  19747. completes, therefore use \fBschedule.delete\fP to manually remove it afterwards.
  19748. .sp
  19749. The default date format is ISO 8601 but can be overridden by also specifying the
  19750. \fBonce_fmt\fP option, like this:
  19751. .INDENT 0.0
  19752. .INDENT 3.5
  19753. .sp
  19754. .nf
  19755. .ft C
  19756. schedule:
  19757. job1:
  19758. function: test.ping
  19759. once: 2015\-04\-22T20:21:00
  19760. once_fmt: \(aq%Y\-%m\-%dT%H:%M:%S\(aq
  19761. .ft P
  19762. .fi
  19763. .UNINDENT
  19764. .UNINDENT
  19765. .SS Maximum Parallel Jobs Running
  19766. .sp
  19767. New in version 2014.7.0.
  19768. .sp
  19769. The scheduler also supports ensuring that there are no more than N copies of
  19770. a particular routine running. Use this for jobs that may be long\-running
  19771. and could step on each other or pile up in case of infrastructure outage.
  19772. .sp
  19773. The default for \fBmaxrunning\fP is 1.
  19774. .INDENT 0.0
  19775. .INDENT 3.5
  19776. .sp
  19777. .nf
  19778. .ft C
  19779. schedule:
  19780. long_running_job:
  19781. function: big_file_transfer
  19782. jid_include: True
  19783. maxrunning: 1
  19784. .ft P
  19785. .fi
  19786. .UNINDENT
  19787. .UNINDENT
  19788. .SS Cron\-like Schedule
  19789. .sp
  19790. New in version 2014.7.0.
  19791. .INDENT 0.0
  19792. .INDENT 3.5
  19793. .sp
  19794. .nf
  19795. .ft C
  19796. schedule:
  19797. job1:
  19798. function: state.sls
  19799. cron: \(aq*/15 * * * *\(aq
  19800. args:
  19801. \- httpd
  19802. kwargs:
  19803. test: True
  19804. .ft P
  19805. .fi
  19806. .UNINDENT
  19807. .UNINDENT
  19808. .sp
  19809. The scheduler also supports scheduling jobs using a cron like format.
  19810. This requires the Python \fBcroniter\fP library.
  19811. .SS Job Data Return
  19812. .sp
  19813. New in version 2015.5.0.
  19814. .sp
  19815. By default, data about jobs runs from the Salt scheduler is returned to the
  19816. master. Setting the \fBreturn_job\fP parameter to False will prevent the data
  19817. from being sent back to the Salt master.
  19818. .INDENT 0.0
  19819. .INDENT 3.5
  19820. .sp
  19821. .nf
  19822. .ft C
  19823. schedule:
  19824. job1:
  19825. function: scheduled_job_function
  19826. return_job: False
  19827. .ft P
  19828. .fi
  19829. .UNINDENT
  19830. .UNINDENT
  19831. .SS Job Metadata
  19832. .sp
  19833. New in version 2015.5.0.
  19834. .sp
  19835. It can be useful to include specific data to differentiate a job from other
  19836. jobs. Using the metadata parameter special values can be associated with
  19837. a scheduled job. These values are not used in the execution of the job,
  19838. but can be used to search for specific jobs later if combined with the
  19839. \fBreturn_job\fP parameter. The metadata parameter must be specified as a
  19840. dictionary, othewise it will be ignored.
  19841. .INDENT 0.0
  19842. .INDENT 3.5
  19843. .sp
  19844. .nf
  19845. .ft C
  19846. schedule:
  19847. job1:
  19848. function: scheduled_job_function
  19849. metadata:
  19850. foo: bar
  19851. .ft P
  19852. .fi
  19853. .UNINDENT
  19854. .UNINDENT
  19855. .SS Run on Start
  19856. .sp
  19857. New in version 2015.5.0.
  19858. .sp
  19859. By default, any job scheduled based on the startup time of the minion will run
  19860. the scheduled job when the minion starts up. Sometimes this is not the desired
  19861. situation. Using the \fBrun_on_start\fP parameter set to \fBFalse\fP will cause the
  19862. scheduler to skip this first run and wait until the next scheduled run:
  19863. .INDENT 0.0
  19864. .INDENT 3.5
  19865. .sp
  19866. .nf
  19867. .ft C
  19868. schedule:
  19869. job1:
  19870. function: state.sls
  19871. seconds: 3600
  19872. run_on_start: False
  19873. args:
  19874. \- httpd
  19875. kwargs:
  19876. test: True
  19877. .ft P
  19878. .fi
  19879. .UNINDENT
  19880. .UNINDENT
  19881. .SS Until and After
  19882. .sp
  19883. New in version 2015.8.0.
  19884. .INDENT 0.0
  19885. .INDENT 3.5
  19886. .sp
  19887. .nf
  19888. .ft C
  19889. schedule:
  19890. job1:
  19891. function: state.sls
  19892. seconds: 15
  19893. until: \(aq12/31/2015 11:59pm\(aq
  19894. args:
  19895. \- httpd
  19896. kwargs:
  19897. test: True
  19898. .ft P
  19899. .fi
  19900. .UNINDENT
  19901. .UNINDENT
  19902. .sp
  19903. Using the until argument, the Salt scheduler allows you to specify
  19904. an end time for a scheduled job. If this argument is specified, jobs
  19905. will not run once the specified time has passed. Time should be specified
  19906. in a format supported by the \fBdateutil\fP library.
  19907. This requires the Python \fBdateutil\fP library to be installed.
  19908. .sp
  19909. New in version 2015.8.0.
  19910. .INDENT 0.0
  19911. .INDENT 3.5
  19912. .sp
  19913. .nf
  19914. .ft C
  19915. schedule:
  19916. job1:
  19917. function: state.sls
  19918. seconds: 15
  19919. after: \(aq12/31/2015 11:59pm\(aq
  19920. args:
  19921. \- httpd
  19922. kwargs:
  19923. test: True
  19924. .ft P
  19925. .fi
  19926. .UNINDENT
  19927. .UNINDENT
  19928. .sp
  19929. Using the after argument, the Salt scheduler allows you to specify
  19930. an start time for a scheduled job. If this argument is specified, jobs
  19931. will not run until the specified time has passed. Time should be specified
  19932. in a format supported by the \fBdateutil\fP library.
  19933. This requires the Python \fBdateutil\fP library to be installed.
  19934. .SS Scheduling States
  19935. .INDENT 0.0
  19936. .INDENT 3.5
  19937. .sp
  19938. .nf
  19939. .ft C
  19940. schedule:
  19941. log\-loadavg:
  19942. function: cmd.run
  19943. seconds: 3660
  19944. args:
  19945. \- \(aqlogger \-t salt < /proc/loadavg\(aq
  19946. kwargs:
  19947. stateful: False
  19948. shell: /bin/sh
  19949. .ft P
  19950. .fi
  19951. .UNINDENT
  19952. .UNINDENT
  19953. .SS Scheduling Highstates
  19954. .sp
  19955. To set up a highstate to run on a minion every 60 minutes set this in the
  19956. minion config or pillar:
  19957. .INDENT 0.0
  19958. .INDENT 3.5
  19959. .sp
  19960. .nf
  19961. .ft C
  19962. schedule:
  19963. highstate:
  19964. function: state.highstate
  19965. minutes: 60
  19966. .ft P
  19967. .fi
  19968. .UNINDENT
  19969. .UNINDENT
  19970. .sp
  19971. Time intervals can be specified as seconds, minutes, hours, or days.
  19972. .SS Scheduling Runners
  19973. .sp
  19974. Runner executions can also be specified on the master within the master
  19975. configuration file:
  19976. .INDENT 0.0
  19977. .INDENT 3.5
  19978. .sp
  19979. .nf
  19980. .ft C
  19981. schedule:
  19982. run_my_orch:
  19983. function: state.orchestrate
  19984. hours: 6
  19985. splay: 600
  19986. args:
  19987. \- orchestration.my_orch
  19988. .ft P
  19989. .fi
  19990. .UNINDENT
  19991. .UNINDENT
  19992. .sp
  19993. The above configuration is analogous to running
  19994. \fBsalt\-run state.orch orchestration.my_orch\fP every 6 hours.
  19995. .SS Scheduler With Returner
  19996. .sp
  19997. The scheduler is also useful for tasks like gathering monitoring data about
  19998. a minion, this schedule option will gather status data and send it to a MySQL
  19999. returner database:
  20000. .INDENT 0.0
  20001. .INDENT 3.5
  20002. .sp
  20003. .nf
  20004. .ft C
  20005. schedule:
  20006. uptime:
  20007. function: status.uptime
  20008. seconds: 60
  20009. returner: mysql
  20010. meminfo:
  20011. function: status.meminfo
  20012. minutes: 5
  20013. returner: mysql
  20014. .ft P
  20015. .fi
  20016. .UNINDENT
  20017. .UNINDENT
  20018. .sp
  20019. Since specifying the returner repeatedly can be tiresome, the
  20020. \fBschedule_returner\fP option is available to specify one or a list of global
  20021. returners to be used by the minions when scheduling.
  20022. .SS Managing the Job Cache
  20023. .sp
  20024. The Salt Master maintains a job cache of all job executions which can be
  20025. queried via the jobs runner. This job cache is called the Default Job Cache.
  20026. .SS Default Job Cache
  20027. .sp
  20028. A number of options are available when configuring the job cache. The default
  20029. caching system uses local storage on the Salt Master and can be found in the
  20030. job cache directory (on Linux systems this is typically
  20031. \fB/var/cache/salt/master/jobs\fP). The default caching system is suitable for most
  20032. deployments as it does not typically require any further configuration or
  20033. management.
  20034. .sp
  20035. The default job cache is a temporary cache and jobs will be stored for 24
  20036. hours. If the default cache needs to store jobs for a different period the
  20037. time can be easily adjusted by changing the \fBkeep_jobs\fP parameter in the
  20038. Salt Master configuration file. The value passed in is measured via hours:
  20039. .INDENT 0.0
  20040. .INDENT 3.5
  20041. .sp
  20042. .nf
  20043. .ft C
  20044. keep_jobs: 24
  20045. .ft P
  20046. .fi
  20047. .UNINDENT
  20048. .UNINDENT
  20049. .SS Reducing the Size of the Default Job Cache
  20050. .sp
  20051. The Default Job Cache can sometimes be a burden on larger deployments (over 5000
  20052. minions). Disabling the job cache will make previously executed jobs unavailable
  20053. to the jobs system and is not generally recommended. Normally it is wise to make
  20054. sure the master has access to a faster IO system or a tmpfs is mounted to the
  20055. jobs dir.
  20056. .sp
  20057. However, you can disable the \fBjob_cache\fP by setting it to \fBFalse\fP
  20058. in the Salt Master configuration file. Setting this value to \fBFalse\fP means that
  20059. the Salt Master will no longer cache minion returns, but a JID directory and \fBjid\fP
  20060. file for each job will still be created. This JID directory is necessary for
  20061. checking for and preventing JID collisions.
  20062. .sp
  20063. The default location for the job cache is in the \fB/var/cache/salt/master/jobs/\fP
  20064. directory.
  20065. .sp
  20066. Setting the \fBjob_cache\fP to \fBFalse\fP in addition to setting
  20067. the \fBkeep_jobs\fP option to a smaller value, such as \fB1\fP, in the Salt
  20068. Master configuration file will reduce the size of the Default Job Cache, and thus
  20069. the burden on the Salt Master.
  20070. .sp
  20071. \fBNOTE:\fP
  20072. .INDENT 0.0
  20073. .INDENT 3.5
  20074. Changing the \fBkeep_jobs\fP option sets the number of hours to keep old job
  20075. information and defaults to \fB24\fP hours. Do not set this value to \fB0\fP when
  20076. trying to make the cache cleaner run more frequently, as this means the cache
  20077. cleaner will never run.
  20078. .UNINDENT
  20079. .UNINDENT
  20080. .SS Additional Job Cache Options
  20081. .sp
  20082. Many deployments may wish to use an external database to maintain a long term
  20083. register of executed jobs. Salt comes with two main mechanisms to do this, the
  20084. master job cache and the external job cache.
  20085. .sp
  20086. See Storing Job Results in an External System\&.
  20087. .SS Storing Job Results in an External System
  20088. .sp
  20089. After a job executes, job results are returned
  20090. to the Salt Master by each Salt Minion. These results are stored in the
  20091. Default Job Cache\&.
  20092. .sp
  20093. In addition to the Default Job Cache, Salt provides two additional
  20094. mechanisms to send job results to other systems (databases, local syslog,
  20095. and others):
  20096. .INDENT 0.0
  20097. .IP \(bu 2
  20098. External Job Cache
  20099. .IP \(bu 2
  20100. Master Job Cache
  20101. .UNINDENT
  20102. .sp
  20103. The major difference between these two mechanism is from where results are
  20104. returned (from the Salt Master or Salt Minion). Configuring either of these
  20105. options will also make the \fBJobs Runner functions\fP
  20106. to automatically query the remote stores for information.
  20107. .SS External Job Cache \- Minion\-Side Returner
  20108. .sp
  20109. When an External Job Cache is configured, data is returned to the Default Job
  20110. Cache on the Salt Master like usual, and then results are also sent to an
  20111. External Job Cache using a Salt returner module running on the Salt Minion.
  20112. [image]
  20113. .INDENT 0.0
  20114. .IP \(bu 2
  20115. Advantages: Data is stored without placing additional load on the Salt Master.
  20116. .IP \(bu 2
  20117. Disadvantages: Each Salt Minion connects to the external job cache, which can
  20118. result in a large number of connections. Also requires additional configuration to
  20119. get returner module settings on all Salt Minions.
  20120. .UNINDENT
  20121. .SS Master Job Cache \- Master\-Side Returner
  20122. .sp
  20123. New in version 2014.7.0.
  20124. .sp
  20125. Instead of configuring an External Job Cache on each Salt Minion, you can
  20126. configure the Master Job Cache to send job results from the Salt Master
  20127. instead. In this configuration, Salt Minions send data to the Default Job Cache
  20128. as usual, and then the Salt Master sends the data to the external system using
  20129. a Salt returner module running on the Salt Master.
  20130. [image]
  20131. .INDENT 0.0
  20132. .IP \(bu 2
  20133. Advantages: A single connection is required to the external system. This is
  20134. preferred for databases and similar systems.
  20135. .IP \(bu 2
  20136. Disadvantages: Places additional load on your Salt Master.
  20137. .UNINDENT
  20138. .SS Configure an External or Master Job Cache
  20139. .SS Step 1: Understand Salt Returners
  20140. .sp
  20141. Before you configure a job cache, it is essential to understand Salt returner
  20142. modules ("returners"). Returners are pluggable Salt Modules that take the data
  20143. returned by jobs, and then perform any necessary steps to send the data to an
  20144. external system. For example, a returner might establish a connection,
  20145. authenticate, and then format and transfer data.
  20146. .sp
  20147. The Salt Returner system provides the core functionality used by the External
  20148. and Master Job Cache systems, and the same returners are used by both systems.
  20149. .sp
  20150. Salt currently provides many different returners that let you connect to a
  20151. wide variety of systems. A complete list is available at
  20152. all Salt returners\&.
  20153. Each returner is configured differently, so make sure you read and follow the
  20154. instructions linked from that page.
  20155. .sp
  20156. For example, the MySQL returner requires:
  20157. .INDENT 0.0
  20158. .IP \(bu 2
  20159. A database created using provided schema (structure is available at
  20160. \fBMySQL returner\fP)
  20161. .IP \(bu 2
  20162. A user created with privileges to the database
  20163. .IP \(bu 2
  20164. Optional SSL configuration
  20165. .UNINDENT
  20166. .sp
  20167. A simpler returner, such as Slack or HipChat, requires:
  20168. .INDENT 0.0
  20169. .IP \(bu 2
  20170. An API key/version
  20171. .IP \(bu 2
  20172. The target channel/room
  20173. .IP \(bu 2
  20174. The username that should be used to send the message
  20175. .UNINDENT
  20176. .SS Step 2: Configure the Returner
  20177. .sp
  20178. After you understand the configuration and have the external system ready, the
  20179. configuration requirements must be declared.
  20180. .SS External Job Cache
  20181. .sp
  20182. The returner configuration settings can be declared in the Salt Minion
  20183. configuration file, the Minion\(aqs pillar data, or the Minion\(aqs grains.
  20184. .sp
  20185. If \fBexternal_job_cache\fP configuration settings are specified in more than
  20186. one place, the options are retrieved in the following order. The first
  20187. configuration location that is found is the one that will be used.
  20188. .INDENT 0.0
  20189. .IP \(bu 2
  20190. Minion configuration file
  20191. .IP \(bu 2
  20192. Minion\(aqs grains
  20193. .IP \(bu 2
  20194. Minion\(aqs pillar data
  20195. .UNINDENT
  20196. .SS Master Job Cache
  20197. .sp
  20198. The returner configuration settings for the Master Job Cache should be
  20199. declared in the Salt Master\(aqs configuration file.
  20200. .SS Configuration File Examples
  20201. .sp
  20202. MySQL requires:
  20203. .INDENT 0.0
  20204. .INDENT 3.5
  20205. .sp
  20206. .nf
  20207. .ft C
  20208. mysql.host: \(aqsalt\(aq
  20209. mysql.user: \(aqsalt\(aq
  20210. mysql.pass: \(aqsalt\(aq
  20211. mysql.db: \(aqsalt\(aq
  20212. mysql.port: 3306
  20213. .ft P
  20214. .fi
  20215. .UNINDENT
  20216. .UNINDENT
  20217. .sp
  20218. Slack requires:
  20219. .INDENT 0.0
  20220. .INDENT 3.5
  20221. .sp
  20222. .nf
  20223. .ft C
  20224. slack.channel: \(aqchannel\(aq
  20225. slack.api_key: \(aqkey\(aq
  20226. slack.from_name: \(aqname\(aq
  20227. .ft P
  20228. .fi
  20229. .UNINDENT
  20230. .UNINDENT
  20231. .sp
  20232. After you have configured the returner and added settings to the configuration
  20233. file, you can enable the External or Master Job Cache.
  20234. .SS Step 3: Enable the External or Master Job Cache
  20235. .sp
  20236. Configuration is a single line that specifies an
  20237. already\-configured returner to use to send all job data to an external system.
  20238. .SS External Job Cache
  20239. .sp
  20240. To enable a returner as the External Job Cache (Minion\-side), add the following
  20241. line to the Salt Master configuration file:
  20242. .INDENT 0.0
  20243. .INDENT 3.5
  20244. .sp
  20245. .nf
  20246. .ft C
  20247. ext_job_cache: <returner>
  20248. .ft P
  20249. .fi
  20250. .UNINDENT
  20251. .UNINDENT
  20252. .sp
  20253. For example:
  20254. .INDENT 0.0
  20255. .INDENT 3.5
  20256. .sp
  20257. .nf
  20258. .ft C
  20259. ext_job_cache: mysql
  20260. .ft P
  20261. .fi
  20262. .UNINDENT
  20263. .UNINDENT
  20264. .sp
  20265. \fBNOTE:\fP
  20266. .INDENT 0.0
  20267. .INDENT 3.5
  20268. When configuring an External Job Cache (Minion\-side), the returner settings are
  20269. added to the Minion configuration file, but the External Job Cache setting
  20270. is configured in the Master configuration file.
  20271. .UNINDENT
  20272. .UNINDENT
  20273. .SS Master Job Cache
  20274. .sp
  20275. To enable a returner as a Master Job Cache (Master\-side), add the following
  20276. line to the Salt Master configuration file:
  20277. .INDENT 0.0
  20278. .INDENT 3.5
  20279. .sp
  20280. .nf
  20281. .ft C
  20282. master_job_cache: <returner>
  20283. .ft P
  20284. .fi
  20285. .UNINDENT
  20286. .UNINDENT
  20287. .sp
  20288. For example:
  20289. .INDENT 0.0
  20290. .INDENT 3.5
  20291. .sp
  20292. .nf
  20293. .ft C
  20294. master_job_cache: mysql
  20295. .ft P
  20296. .fi
  20297. .UNINDENT
  20298. .UNINDENT
  20299. .sp
  20300. Verify that the returner configuration settings are in the Master configuration
  20301. file, and be sure to restart the salt\-master service after you make
  20302. configuration changes. (\fBservice salt\-master restart\fP).
  20303. .SS Logging
  20304. .sp
  20305. The salt project tries to get the logging to work for you and help us solve any
  20306. issues you might find along the way.
  20307. .sp
  20308. If you want to get some more information on the nitty\-gritty of salt\(aqs logging
  20309. system, please head over to the logging development
  20310. document, if all you\(aqre after is salt\(aqs logging
  20311. configurations, please continue reading.
  20312. .SS Log Levels
  20313. .sp
  20314. The log levels are ordered numerically such that setting the log level to a
  20315. specific level will record all log statements at that level and higher. For
  20316. example, setting \fBlog_level: error\fP will log statements at \fBerror\fP,
  20317. \fBcritical\fP, and \fBquiet\fP levels, although nothing \fIshould\fP be logged at
  20318. \fBquiet\fP level.
  20319. .sp
  20320. Most of the logging levels are defined by default in Python\(aqs logging library
  20321. and can be found in the official \fI\%Python documentation\fP\&.
  20322. Salt uses some more levels in addition to the standard levels. All levels
  20323. available in salt are shown in the table below.
  20324. .sp
  20325. \fBNOTE:\fP
  20326. .INDENT 0.0
  20327. .INDENT 3.5
  20328. Python dependencies used by salt may define and use additional logging
  20329. levels. For example, the Python 2 version of the \fBmultiprocessing\fP
  20330. standard Python library \fI\%uses the levels\fP
  20331. \fBsubwarning\fP, 25 and \fBsubdebug\fP, 5.
  20332. .UNINDENT
  20333. .UNINDENT
  20334. .TS
  20335. center;
  20336. |l|l|l|.
  20337. _
  20338. T{
  20339. Level
  20340. T} T{
  20341. Numeric value
  20342. T} T{
  20343. Description
  20344. T}
  20345. _
  20346. T{
  20347. quiet
  20348. T} T{
  20349. 1000
  20350. T} T{
  20351. Nothing should be logged at this level
  20352. T}
  20353. _
  20354. T{
  20355. critical
  20356. T} T{
  20357. 50
  20358. T} T{
  20359. Critical errors
  20360. T}
  20361. _
  20362. T{
  20363. error
  20364. T} T{
  20365. 40
  20366. T} T{
  20367. Errors
  20368. T}
  20369. _
  20370. T{
  20371. warning
  20372. T} T{
  20373. 30
  20374. T} T{
  20375. Warnings
  20376. T}
  20377. _
  20378. T{
  20379. info
  20380. T} T{
  20381. 20
  20382. T} T{
  20383. Normal log information
  20384. T}
  20385. _
  20386. T{
  20387. profile
  20388. T} T{
  20389. 15
  20390. T} T{
  20391. Profiling information on salt performance
  20392. T}
  20393. _
  20394. T{
  20395. debug
  20396. T} T{
  20397. 10
  20398. T} T{
  20399. Information useful for debugging both salt implementations and salt code
  20400. T}
  20401. _
  20402. T{
  20403. trace
  20404. T} T{
  20405. 5
  20406. T} T{
  20407. More detailed code debugging information
  20408. T}
  20409. _
  20410. T{
  20411. garbage
  20412. T} T{
  20413. 1
  20414. T} T{
  20415. Even more debugging information
  20416. T}
  20417. _
  20418. T{
  20419. all
  20420. T} T{
  20421. 0
  20422. T} T{
  20423. Everything
  20424. T}
  20425. _
  20426. .TE
  20427. .SS Available Configuration Settings
  20428. .SS \fBlog_file\fP
  20429. .sp
  20430. The log records can be sent to a regular file, local path name, or network
  20431. location. Remote logging works best when configured to use rsyslogd(8) (e.g.:
  20432. \fBfile:///dev/log\fP), with rsyslogd(8) configured for network logging. The
  20433. format for remote addresses is:
  20434. .INDENT 0.0
  20435. .INDENT 3.5
  20436. .sp
  20437. .nf
  20438. .ft C
  20439. <file|udp|tcp>://<host|socketpath>:<port\-if\-required>/<log\-facility>
  20440. .ft P
  20441. .fi
  20442. .UNINDENT
  20443. .UNINDENT
  20444. .sp
  20445. Where \fBlog\-facility\fP is the symbolic name of a syslog facility as defined in
  20446. the \fI\%SysLogHandler documentation\fP\&. It defaults to \fBLOG_USER\fP\&.
  20447. .sp
  20448. Default: Dependent of the binary being executed, for example, for
  20449. \fBsalt\-master\fP, \fB/var/log/salt/master\fP\&.
  20450. .sp
  20451. Examples:
  20452. .INDENT 0.0
  20453. .INDENT 3.5
  20454. .sp
  20455. .nf
  20456. .ft C
  20457. log_file: /var/log/salt/master
  20458. .ft P
  20459. .fi
  20460. .UNINDENT
  20461. .UNINDENT
  20462. .INDENT 0.0
  20463. .INDENT 3.5
  20464. .sp
  20465. .nf
  20466. .ft C
  20467. log_file: /var/log/salt/minion
  20468. .ft P
  20469. .fi
  20470. .UNINDENT
  20471. .UNINDENT
  20472. .INDENT 0.0
  20473. .INDENT 3.5
  20474. .sp
  20475. .nf
  20476. .ft C
  20477. log_file: file:///dev/log
  20478. .ft P
  20479. .fi
  20480. .UNINDENT
  20481. .UNINDENT
  20482. .INDENT 0.0
  20483. .INDENT 3.5
  20484. .sp
  20485. .nf
  20486. .ft C
  20487. log_file: file:///dev/log/LOG_DAEMON
  20488. .ft P
  20489. .fi
  20490. .UNINDENT
  20491. .UNINDENT
  20492. .INDENT 0.0
  20493. .INDENT 3.5
  20494. .sp
  20495. .nf
  20496. .ft C
  20497. log_file: udp://loghost:10514
  20498. .ft P
  20499. .fi
  20500. .UNINDENT
  20501. .UNINDENT
  20502. .SS \fBlog_level\fP
  20503. .sp
  20504. Default: \fBwarning\fP
  20505. .sp
  20506. The level of log record messages to send to the console. One of \fBall\fP,
  20507. \fBgarbage\fP, \fBtrace\fP, \fBdebug\fP, \fBprofile\fP, \fBinfo\fP, \fBwarning\fP,
  20508. \fBerror\fP, \fBcritical\fP, \fBquiet\fP\&.
  20509. .INDENT 0.0
  20510. .INDENT 3.5
  20511. .sp
  20512. .nf
  20513. .ft C
  20514. log_level: warning
  20515. .ft P
  20516. .fi
  20517. .UNINDENT
  20518. .UNINDENT
  20519. .sp
  20520. \fBNOTE:\fP
  20521. .INDENT 0.0
  20522. .INDENT 3.5
  20523. Add \fBlog_level: quiet\fP in salt configuration file to completely disable
  20524. logging. In case of running salt in command line use \fB\-\-log\-level=quiet\fP
  20525. instead.
  20526. .UNINDENT
  20527. .UNINDENT
  20528. .SS \fBlog_level_logfile\fP
  20529. .sp
  20530. Default: \fBinfo\fP
  20531. .sp
  20532. The level of messages to send to the log file. One of \fBall\fP, \fBgarbage\fP,
  20533. \fBtrace\fP, \fBdebug\fP, \fBprofile\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP,
  20534. \fBcritical\fP, \fBquiet\fP\&.
  20535. .INDENT 0.0
  20536. .INDENT 3.5
  20537. .sp
  20538. .nf
  20539. .ft C
  20540. log_level_logfile: warning
  20541. .ft P
  20542. .fi
  20543. .UNINDENT
  20544. .UNINDENT
  20545. .SS \fBlog_datefmt\fP
  20546. .sp
  20547. Default: \fB%H:%M:%S\fP
  20548. .sp
  20549. The date and time format used in console log messages. Allowed date/time
  20550. formatting matches those used in \fI\%time.strftime()\fP\&.
  20551. .INDENT 0.0
  20552. .INDENT 3.5
  20553. .sp
  20554. .nf
  20555. .ft C
  20556. log_datefmt: \(aq%H:%M:%S\(aq
  20557. .ft P
  20558. .fi
  20559. .UNINDENT
  20560. .UNINDENT
  20561. .SS \fBlog_datefmt_logfile\fP
  20562. .sp
  20563. Default: \fB%Y\-%m\-%d %H:%M:%S\fP
  20564. .sp
  20565. The date and time format used in log file messages. Allowed date/time
  20566. formatting matches those used in \fI\%time.strftime()\fP\&.
  20567. .INDENT 0.0
  20568. .INDENT 3.5
  20569. .sp
  20570. .nf
  20571. .ft C
  20572. log_datefmt_logfile: \(aq%Y\-%m\-%d %H:%M:%S\(aq
  20573. .ft P
  20574. .fi
  20575. .UNINDENT
  20576. .UNINDENT
  20577. .SS \fBlog_fmt_console\fP
  20578. .sp
  20579. Default: \fB[%(levelname)\-8s] %(message)s\fP
  20580. .sp
  20581. The format of the console logging messages. All standard python logging
  20582. \fI\%LogRecord\fP attributes can be used. Salt also provides these
  20583. custom LogRecord attributes to colorize console log output:
  20584. .INDENT 0.0
  20585. .INDENT 3.5
  20586. .sp
  20587. .nf
  20588. .ft C
  20589. \(aq%(colorlevel)s\(aq # log level name colorized by level
  20590. \(aq%(colorname)s\(aq # colorized module name
  20591. \(aq%(colorprocess)s\(aq # colorized process number
  20592. \(aq%(colormsg)s\(aq # log message colorized by level
  20593. .ft P
  20594. .fi
  20595. .UNINDENT
  20596. .UNINDENT
  20597. .sp
  20598. \fBNOTE:\fP
  20599. .INDENT 0.0
  20600. .INDENT 3.5
  20601. The \fB%(colorlevel)s\fP, \fB%(colorname)s\fP, and \fB%(colorprocess)\fP
  20602. LogRecord attributes also include padding and enclosing brackets, \fB[\fP and
  20603. \fB]\fP to match the default values of their collateral non\-colorized
  20604. LogRecord attributes.
  20605. .UNINDENT
  20606. .UNINDENT
  20607. .INDENT 0.0
  20608. .INDENT 3.5
  20609. .sp
  20610. .nf
  20611. .ft C
  20612. log_fmt_console: \(aq[%(levelname)\-8s] %(message)s\(aq
  20613. .ft P
  20614. .fi
  20615. .UNINDENT
  20616. .UNINDENT
  20617. .SS \fBlog_fmt_logfile\fP
  20618. .sp
  20619. Default: \fB%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\fP
  20620. .sp
  20621. The format of the log file logging messages. All standard python logging
  20622. \fI\%LogRecord\fP attributes can be used. Salt also provides
  20623. these custom LogRecord attributes that include padding and enclosing brackets
  20624. \fB[\fP and \fB]\fP:
  20625. .INDENT 0.0
  20626. .INDENT 3.5
  20627. .sp
  20628. .nf
  20629. .ft C
  20630. \(aq%(bracketlevel)s\(aq # equivalent to [%(levelname)\-8s]
  20631. \(aq%(bracketname)s\(aq # equivalent to [%(name)\-17s]
  20632. \(aq%(bracketprocess)s\(aq # equivalent to [%(process)5s]
  20633. .ft P
  20634. .fi
  20635. .UNINDENT
  20636. .UNINDENT
  20637. .INDENT 0.0
  20638. .INDENT 3.5
  20639. .sp
  20640. .nf
  20641. .ft C
  20642. log_fmt_logfile: \(aq%(asctime)s,%(msecs)03d [%(name)\-17s][%(levelname)\-8s] %(message)s\(aq
  20643. .ft P
  20644. .fi
  20645. .UNINDENT
  20646. .UNINDENT
  20647. .SS \fBlog_granular_levels\fP
  20648. .sp
  20649. Default: \fB{}\fP
  20650. .sp
  20651. This can be used to control logging levels more specifically, based on log call name. The example sets
  20652. the main salt library at the \(aqwarning\(aq level, sets \fBsalt.modules\fP to log
  20653. at the \fBdebug\fP level, and sets a custom module to the \fBall\fP level:
  20654. .INDENT 0.0
  20655. .INDENT 3.5
  20656. .sp
  20657. .nf
  20658. .ft C
  20659. log_granular_levels:
  20660. \(aqsalt\(aq: \(aqwarning\(aq
  20661. \(aqsalt.modules\(aq: \(aqdebug\(aq
  20662. \(aqsalt.loader.saltmaster.ext.module.custom_module\(aq: \(aqall\(aq
  20663. .ft P
  20664. .fi
  20665. .UNINDENT
  20666. .UNINDENT
  20667. .SS \fBlog_fmt_jid\fP
  20668. .sp
  20669. Default: \fB[JID: %(jid)s]\fP
  20670. .sp
  20671. The format of the JID when added to logging messages.
  20672. .INDENT 0.0
  20673. .INDENT 3.5
  20674. .sp
  20675. .nf
  20676. .ft C
  20677. log_fmt_jid: \(aq[JID: %(jid)s]\(aq
  20678. .ft P
  20679. .fi
  20680. .UNINDENT
  20681. .UNINDENT
  20682. .SS External Logging Handlers
  20683. .sp
  20684. Besides the internal logging handlers used by salt, there are some external
  20685. which can be used, see the external logging handlers
  20686. document.
  20687. .SS External Logging Handlers
  20688. .TS
  20689. center;
  20690. |l|l|.
  20691. _
  20692. T{
  20693. \fBfluent_mod\fP
  20694. T} T{
  20695. T}
  20696. _
  20697. T{
  20698. \fBlog4mongo_mod\fP
  20699. T} T{
  20700. Log4Mongo Logging Handler
  20701. T}
  20702. _
  20703. T{
  20704. \fBlogstash_mod\fP
  20705. T} T{
  20706. T}
  20707. _
  20708. T{
  20709. \fBsentry_mod\fP
  20710. T} T{
  20711. T}
  20712. _
  20713. .TE
  20714. .SS salt.log.handlers.log4mongo_mod
  20715. .SS Log4Mongo Logging Handler
  20716. .sp
  20717. This module provides a logging handler for sending salt logs to MongoDB
  20718. .SS Configuration
  20719. .sp
  20720. In the salt configuration file (e.g. /etc/salt/{master,minion}):
  20721. .INDENT 0.0
  20722. .INDENT 3.5
  20723. .sp
  20724. .nf
  20725. .ft C
  20726. log4mongo_handler:
  20727. host: mongodb_host
  20728. port: 27017
  20729. database_name: logs
  20730. collection: salt_logs
  20731. username: logging
  20732. password: reindeerflotilla
  20733. write_concern: 0
  20734. log_level: warning
  20735. .ft P
  20736. .fi
  20737. .UNINDENT
  20738. .UNINDENT
  20739. .SS Log Level
  20740. .sp
  20741. If not set, the log_level will be set to the level defined in the global
  20742. configuration file setting.
  20743. .INDENT 0.0
  20744. .INDENT 3.5
  20745. .IP "Inspiration"
  20746. .sp
  20747. This work was inspired by the Salt logging handlers for LogStash and
  20748. Sentry and by the log4mongo Python implementation.
  20749. .UNINDENT
  20750. .UNINDENT
  20751. .SS salt.log.handlers.fluent_mod
  20752. .SS salt.log.handlers.logstash_mod
  20753. .SS salt.log.handlers.sentry_mod
  20754. .SS Salt File Server
  20755. .sp
  20756. Salt comes with a simple file server suitable for distributing files to the
  20757. Salt minions. The file server is a stateless ZeroMQ server that is built into
  20758. the Salt master.
  20759. .sp
  20760. The main intent of the Salt file server is to present files for use in the
  20761. Salt state system. With this said, the Salt file server can be used for any
  20762. general file transfer from the master to the minions.
  20763. .SS File Server Backends
  20764. .sp
  20765. In Salt 0.12.0, the modular fileserver was introduced. This feature added the
  20766. ability for the Salt Master to integrate different file server backends. File
  20767. server backends allow the Salt file server to act as a transparent bridge to
  20768. external resources. A good example of this is the \fBgit\fP backend, which allows Salt to serve files sourced from
  20769. one or more git repositories, but there are several others as well. Click
  20770. here for a full list of Salt\(aqs fileserver
  20771. backends.
  20772. .SS Enabling a Fileserver Backend
  20773. .sp
  20774. Fileserver backends can be enabled with the \fBfileserver_backend\fP
  20775. option.
  20776. .INDENT 0.0
  20777. .INDENT 3.5
  20778. .sp
  20779. .nf
  20780. .ft C
  20781. fileserver_backend:
  20782. \- git
  20783. .ft P
  20784. .fi
  20785. .UNINDENT
  20786. .UNINDENT
  20787. .sp
  20788. See the documentation for each backend to find the
  20789. correct value to add to \fBfileserver_backend\fP in order to enable
  20790. them.
  20791. .SS Using Multiple Backends
  20792. .sp
  20793. If \fBfileserver_backend\fP is not defined in the Master config file,
  20794. Salt will use the \fBroots\fP backend, but the
  20795. \fBfileserver_backend\fP option supports multiple backends. When more
  20796. than one backend is in use, the files from the enabled backends are merged into a
  20797. single virtual filesystem. When a file is requested, the backends will be
  20798. searched in order for that file, and the first backend to match will be the one
  20799. which returns the file.
  20800. .INDENT 0.0
  20801. .INDENT 3.5
  20802. .sp
  20803. .nf
  20804. .ft C
  20805. fileserver_backend:
  20806. \- roots
  20807. \- git
  20808. .ft P
  20809. .fi
  20810. .UNINDENT
  20811. .UNINDENT
  20812. .sp
  20813. With this configuration, the environments and files defined in the
  20814. \fBfile_roots\fP parameter will be searched first, and if the file is
  20815. not found then the git repositories defined in \fBgitfs_remotes\fP
  20816. will be searched.
  20817. .SS Defining Environments
  20818. .sp
  20819. Just as the order of the values in \fBfileserver_backend\fP matters,
  20820. so too does the order in which different sources are defined within a
  20821. fileserver environment. For example, given the below \fBfile_roots\fP
  20822. configuration, if both \fB/srv/salt/dev/foo.txt\fP and \fB/srv/salt/prod/foo.txt\fP
  20823. exist on the Master, then \fBsalt://foo.txt\fP would point to
  20824. \fB/srv/salt/dev/foo.txt\fP in the \fBdev\fP environment, but it would point to
  20825. \fB/srv/salt/prod/foo.txt\fP in the \fBbase\fP environment.
  20826. .INDENT 0.0
  20827. .INDENT 3.5
  20828. .sp
  20829. .nf
  20830. .ft C
  20831. file_roots:
  20832. base:
  20833. \- /srv/salt/prod
  20834. qa:
  20835. \- /srv/salt/qa
  20836. \- /srv/salt/prod
  20837. dev:
  20838. \- /srv/salt/dev
  20839. \- /srv/salt/qa
  20840. \- /srv/salt/prod
  20841. .ft P
  20842. .fi
  20843. .UNINDENT
  20844. .UNINDENT
  20845. .sp
  20846. Similarly, when using the \fBgit\fP backend, if both
  20847. repositories defined below have a \fBhotfix23\fP branch/tag, and both of them
  20848. also contain the file \fBbar.txt\fP in the root of the repository at that
  20849. branch/tag, then \fBsalt://bar.txt\fP in the \fBhotfix23\fP environment would be
  20850. served from the \fBfirst\fP repository.
  20851. .INDENT 0.0
  20852. .INDENT 3.5
  20853. .sp
  20854. .nf
  20855. .ft C
  20856. gitfs_remotes:
  20857. \- https://mydomain.tld/repos/first.git
  20858. \- https://mydomain.tld/repos/second.git
  20859. .ft P
  20860. .fi
  20861. .UNINDENT
  20862. .UNINDENT
  20863. .sp
  20864. \fBNOTE:\fP
  20865. .INDENT 0.0
  20866. .INDENT 3.5
  20867. Environments map differently based on the fileserver backend. For instance,
  20868. the mappings are explicitly defined in \fBroots\fP
  20869. backend, while in the VCS backends (\fBgit\fP,
  20870. \fBhg\fP, \fBsvn\fP) the
  20871. environments are created from branches/tags/bookmarks/etc. For the
  20872. \fBminion\fP backend, the files are all in a
  20873. single environment, which is specified by the \fBminionfs_env\fP
  20874. option.
  20875. .sp
  20876. See the documentation for each backend for a more detailed explanation of
  20877. how environments are mapped.
  20878. .UNINDENT
  20879. .UNINDENT
  20880. .SS Requesting Files from Specific Environments
  20881. .sp
  20882. The Salt fileserver supports multiple environments, allowing for SLS files and
  20883. other files to be isolated for better organization.
  20884. .sp
  20885. For the default backend (called \fBroots\fP),
  20886. environments are defined using the \fBroots\fP option.
  20887. Other backends (such as \fBgitfs\fP) define
  20888. environments in their own ways. For a list of available fileserver backends,
  20889. see here\&.
  20890. .SS Querystring Syntax
  20891. .sp
  20892. Any \fBsalt://\fP file URL can specify its fileserver environment using a
  20893. querystring syntax, like so:
  20894. .INDENT 0.0
  20895. .INDENT 3.5
  20896. .sp
  20897. .nf
  20898. .ft C
  20899. salt://path/to/file?saltenv=foo
  20900. .ft P
  20901. .fi
  20902. .UNINDENT
  20903. .UNINDENT
  20904. .sp
  20905. In Reactor configurations, this method must be used to pull
  20906. files from an environment other than \fBbase\fP\&.
  20907. .SS In States
  20908. .sp
  20909. Minions can be instructed which environment to use both globally, and for a
  20910. single state, and multiple methods for each are available:
  20911. .SS Globally
  20912. .sp
  20913. A minion can be pinned to an environment using the \fBenvironment\fP
  20914. option in the minion config file.
  20915. .sp
  20916. Additionally, the environment can be set for a single call to the following
  20917. functions:
  20918. .INDENT 0.0
  20919. .IP \(bu 2
  20920. \fBstate.apply\fP
  20921. .IP \(bu 2
  20922. \fBstate.highstate\fP
  20923. .IP \(bu 2
  20924. \fBstate.sls\fP
  20925. .IP \(bu 2
  20926. \fBstate.top\fP
  20927. .UNINDENT
  20928. .sp
  20929. \fBNOTE:\fP
  20930. .INDENT 0.0
  20931. .INDENT 3.5
  20932. When the \fBsaltenv\fP parameter is used to trigger a highstate using either \fBstate.apply\fP or \fBstate.highstate\fP, only states from that environment will be
  20933. applied.
  20934. .UNINDENT
  20935. .UNINDENT
  20936. .SS On a Per\-State Basis
  20937. .sp
  20938. Within an individual state, there are two ways of specifying the environment.
  20939. The first is to add a \fBsaltenv\fP argument to the state. This example will pull
  20940. the file from the \fBconfig\fP environment:
  20941. .INDENT 0.0
  20942. .INDENT 3.5
  20943. .sp
  20944. .nf
  20945. .ft C
  20946. /etc/foo/bar.conf:
  20947. file.managed:
  20948. \- source: salt://foo/bar.conf
  20949. \- user: foo
  20950. \- mode: 600
  20951. \- saltenv: config
  20952. .ft P
  20953. .fi
  20954. .UNINDENT
  20955. .UNINDENT
  20956. .sp
  20957. Another way of doing the same thing is to use the \fI\%querystring syntax\fP described above:
  20958. .INDENT 0.0
  20959. .INDENT 3.5
  20960. .sp
  20961. .nf
  20962. .ft C
  20963. /etc/foo/bar.conf:
  20964. file.managed:
  20965. \- source: salt://foo/bar.conf?saltenv=config
  20966. \- user: foo
  20967. \- mode: 600
  20968. .ft P
  20969. .fi
  20970. .UNINDENT
  20971. .UNINDENT
  20972. .sp
  20973. \fBNOTE:\fP
  20974. .INDENT 0.0
  20975. .INDENT 3.5
  20976. Specifying the environment using either of the above methods is only
  20977. necessary in cases where a state from one environment needs to access files
  20978. from another environment. If the SLS file containing this state was in the
  20979. \fBconfig\fP environment, then it would look in that environment by default.
  20980. .UNINDENT
  20981. .UNINDENT
  20982. .SS File Server Configuration
  20983. .sp
  20984. The Salt file server is a high performance file server written in ZeroMQ. It
  20985. manages large files quickly and with little overhead, and has been optimized
  20986. to handle small files in an extremely efficient manner.
  20987. .sp
  20988. The Salt file server is an environment aware file server. This means that
  20989. files can be allocated within many root directories and accessed by
  20990. specifying both the file path and the environment to search. The
  20991. individual environments can span across multiple directory roots
  20992. to create overlays and to allow for files to be organized in many flexible
  20993. ways.
  20994. .SS Environments
  20995. .sp
  20996. The Salt file server defaults to the mandatory \fBbase\fP environment. This
  20997. environment \fBMUST\fP be defined and is used to download files when no
  20998. environment is specified.
  20999. .sp
  21000. Environments allow for files and sls data to be logically separated, but
  21001. environments are not isolated from each other. This allows for logical
  21002. isolation of environments by the engineer using Salt, but also allows
  21003. for information to be used in multiple environments.
  21004. .SS Directory Overlay
  21005. .sp
  21006. The \fBenvironment\fP setting is a list of directories to publish files from.
  21007. These directories are searched in order to find the specified file and the
  21008. first file found is returned.
  21009. .sp
  21010. This means that directory data is prioritized based on the order in which they
  21011. are listed. In the case of this \fBfile_roots\fP configuration:
  21012. .INDENT 0.0
  21013. .INDENT 3.5
  21014. .sp
  21015. .nf
  21016. .ft C
  21017. file_roots:
  21018. base:
  21019. \- /srv/salt/base
  21020. \- /srv/salt/failover
  21021. .ft P
  21022. .fi
  21023. .UNINDENT
  21024. .UNINDENT
  21025. .sp
  21026. If a file\(aqs URI is \fBsalt://httpd/httpd.conf\fP, it will first search for the
  21027. file at \fB/srv/salt/base/httpd/httpd.conf\fP\&. If the file is found there it
  21028. will be returned. If the file is not found there, then
  21029. \fB/srv/salt/failover/httpd/httpd.conf\fP will be used for the source.
  21030. .sp
  21031. This allows for directories to be overlaid and prioritized based on the order
  21032. they are defined in the configuration.
  21033. .sp
  21034. It is also possible to have \fBfile_roots\fP which supports multiple
  21035. environments:
  21036. .INDENT 0.0
  21037. .INDENT 3.5
  21038. .sp
  21039. .nf
  21040. .ft C
  21041. file_roots:
  21042. base:
  21043. \- /srv/salt/base
  21044. dev:
  21045. \- /srv/salt/dev
  21046. \- /srv/salt/base
  21047. prod:
  21048. \- /srv/salt/prod
  21049. \- /srv/salt/base
  21050. .ft P
  21051. .fi
  21052. .UNINDENT
  21053. .UNINDENT
  21054. .sp
  21055. This example ensures that each environment will check the associated
  21056. environment directory for files first. If a file is not found in the
  21057. appropriate directory, the system will default to using the base directory.
  21058. .SS Local File Server
  21059. .sp
  21060. New in version 0.9.8.
  21061. .sp
  21062. The file server can be rerouted to run from the minion. This is primarily to
  21063. enable running Salt states without a Salt master. To use the local file server
  21064. interface, copy the file server data to the minion and set the file_roots
  21065. option on the minion to point to the directories copied from the master.
  21066. Once the minion \fBfile_roots\fP option has been set, change the \fBfile_client\fP
  21067. option to local to make sure that the local file server interface is used.
  21068. .SS The cp Module
  21069. .sp
  21070. The cp module is the home of minion side file server operations. The cp module
  21071. is used by the Salt state system, salt\-cp, and can be used to distribute files
  21072. presented by the Salt file server.
  21073. .SS Escaping Special Characters
  21074. .sp
  21075. The \fBsalt://\fP url format can potentially contain a query string, for example
  21076. \fBsalt://dir/file.txt?saltenv=base\fP\&. You can prevent the fileclient/fileserver from
  21077. interpreting \fB?\fP as the initial token of a query string by referencing the file
  21078. with \fBsalt://|\fP rather than \fBsalt://\fP\&.
  21079. .INDENT 0.0
  21080. .INDENT 3.5
  21081. .sp
  21082. .nf
  21083. .ft C
  21084. /etc/marathon/conf/?checkpoint:
  21085. file.managed:
  21086. \- source: salt://|hw/config/?checkpoint
  21087. \- makedirs: True
  21088. .ft P
  21089. .fi
  21090. .UNINDENT
  21091. .UNINDENT
  21092. .SS Environments
  21093. .sp
  21094. Since the file server is made to work with the Salt state system, it supports
  21095. environments. The environments are defined in the master config file and
  21096. when referencing an environment the file specified will be based on the root
  21097. directory of the environment.
  21098. .SS get_file
  21099. .sp
  21100. The cp.get_file function can be used on the minion to download a file from
  21101. the master, the syntax looks like this:
  21102. .INDENT 0.0
  21103. .INDENT 3.5
  21104. .sp
  21105. .nf
  21106. .ft C
  21107. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc
  21108. .ft P
  21109. .fi
  21110. .UNINDENT
  21111. .UNINDENT
  21112. .sp
  21113. This will instruct all Salt minions to download the vimrc file and copy it
  21114. to /etc/vimrc
  21115. .sp
  21116. Template rendering can be enabled on both the source and destination file names
  21117. like so:
  21118. .INDENT 0.0
  21119. .INDENT 3.5
  21120. .sp
  21121. .nf
  21122. .ft C
  21123. # salt \(aq*\(aq cp.get_file "salt://{{grains.os}}/vimrc" /etc/vimrc template=jinja
  21124. .ft P
  21125. .fi
  21126. .UNINDENT
  21127. .UNINDENT
  21128. .sp
  21129. This example would instruct all Salt minions to download the vimrc from a
  21130. directory with the same name as their OS grain and copy it to /etc/vimrc
  21131. .sp
  21132. For larger files, the cp.get_file module also supports gzip compression.
  21133. Because gzip is CPU\-intensive, this should only be used in
  21134. scenarios where the compression ratio is very high (e.g. pretty\-printed JSON
  21135. or YAML files).
  21136. .sp
  21137. To use compression, use the \fBgzip\fP named argument. Valid values are integers
  21138. from 1 to 9, where 1 is the lightest compression and 9 the heaviest. In other
  21139. words, 1 uses the least CPU on the master (and minion), while 9 uses the most.
  21140. .INDENT 0.0
  21141. .INDENT 3.5
  21142. .sp
  21143. .nf
  21144. .ft C
  21145. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc gzip=5
  21146. .ft P
  21147. .fi
  21148. .UNINDENT
  21149. .UNINDENT
  21150. .sp
  21151. Finally, note that by default cp.get_file does \fInot\fP create new destination
  21152. directories if they do not exist. To change this, use the \fBmakedirs\fP
  21153. argument:
  21154. .INDENT 0.0
  21155. .INDENT 3.5
  21156. .sp
  21157. .nf
  21158. .ft C
  21159. # salt \(aq*\(aq cp.get_file salt://vimrc /etc/vim/vimrc makedirs=True
  21160. .ft P
  21161. .fi
  21162. .UNINDENT
  21163. .UNINDENT
  21164. .sp
  21165. In this example, /etc/vim/ would be created if it didn\(aqt already exist.
  21166. .SS get_dir
  21167. .sp
  21168. The cp.get_dir function can be used on the minion to download an entire
  21169. directory from the master. The syntax is very similar to get_file:
  21170. .INDENT 0.0
  21171. .INDENT 3.5
  21172. .sp
  21173. .nf
  21174. .ft C
  21175. # salt \(aq*\(aq cp.get_dir salt://etc/apache2 /etc
  21176. .ft P
  21177. .fi
  21178. .UNINDENT
  21179. .UNINDENT
  21180. .sp
  21181. cp.get_dir supports template rendering and gzip compression arguments just like
  21182. get_file:
  21183. .INDENT 0.0
  21184. .INDENT 3.5
  21185. .sp
  21186. .nf
  21187. .ft C
  21188. # salt \(aq*\(aq cp.get_dir salt://etc/{{pillar.webserver}} /etc gzip=5 template=jinja
  21189. .ft P
  21190. .fi
  21191. .UNINDENT
  21192. .UNINDENT
  21193. .SS File Server Client Instance
  21194. .sp
  21195. A client instance is available which allows for modules and applications to be
  21196. written which make use of the Salt file server.
  21197. .sp
  21198. The file server uses the same authentication and encryption used by the rest
  21199. of the Salt system for network communication.
  21200. .SS fileclient Module
  21201. .sp
  21202. The \fBsalt/fileclient.py\fP module is used to set up the communication from the
  21203. minion to the master. When creating a client instance using the fileclient module,
  21204. the minion configuration needs to be passed in. When using the fileclient module
  21205. from within a minion module the built in \fB__opts__\fP data can be passed:
  21206. .INDENT 0.0
  21207. .INDENT 3.5
  21208. .sp
  21209. .nf
  21210. .ft C
  21211. import salt.minion
  21212. import salt.fileclient
  21213. def get_file(path, dest, saltenv=\(aqbase\(aq):
  21214. \(aq\(aq\(aq
  21215. Used to get a single file from the Salt master
  21216. CLI Example:
  21217. salt \(aq*\(aq cp.get_file salt://vimrc /etc/vimrc
  21218. \(aq\(aq\(aq
  21219. # Get the fileclient object
  21220. client = salt.fileclient.get_file_client(__opts__)
  21221. # Call get_file
  21222. return client.get_file(path, dest, False, saltenv)
  21223. .ft P
  21224. .fi
  21225. .UNINDENT
  21226. .UNINDENT
  21227. .sp
  21228. Creating a fileclient instance outside of a minion module where the \fB__opts__\fP
  21229. data is not available, it needs to be generated:
  21230. .INDENT 0.0
  21231. .INDENT 3.5
  21232. .sp
  21233. .nf
  21234. .ft C
  21235. import salt.fileclient
  21236. import salt.config
  21237. def get_file(path, dest, saltenv=\(aqbase\(aq):
  21238. \(aq\(aq\(aq
  21239. Used to get a single file from the Salt master
  21240. \(aq\(aq\(aq
  21241. # Get the configuration data
  21242. opts = salt.config.minion_config(\(aq/etc/salt/minion\(aq)
  21243. # Get the fileclient object
  21244. client = salt.fileclient.get_file_client(opts)
  21245. # Call get_file
  21246. return client.get_file(path, dest, False, saltenv)
  21247. .ft P
  21248. .fi
  21249. .UNINDENT
  21250. .UNINDENT
  21251. .SS Git Fileserver Backend Walkthrough
  21252. .sp
  21253. \fBNOTE:\fP
  21254. .INDENT 0.0
  21255. .INDENT 3.5
  21256. This walkthrough assumes basic knowledge of Salt. To get up to speed, check
  21257. out the Salt Walkthrough\&.
  21258. .UNINDENT
  21259. .UNINDENT
  21260. .sp
  21261. The gitfs backend allows Salt to serve files from git repositories. It can be
  21262. enabled by adding \fBgit\fP to the \fBfileserver_backend\fP list, and
  21263. configuring one or more repositories in \fBgitfs_remotes\fP\&.
  21264. .sp
  21265. Branches and tags become Salt fileserver environments.
  21266. .sp
  21267. \fBNOTE:\fP
  21268. .INDENT 0.0
  21269. .INDENT 3.5
  21270. Branching and tagging can result in a lot of potentially\-conflicting
  21271. top files, for this reason it may be useful to set
  21272. \fBtop_file_merging_strategy\fP to \fBsame\fP in the minions\(aq config
  21273. files if the top files are being managed in a GitFS repo.
  21274. .UNINDENT
  21275. .UNINDENT
  21276. .SS Installing Dependencies
  21277. .sp
  21278. Both \fI\%pygit2\fP and \fI\%GitPython\fP are supported Python interfaces to git. If
  21279. compatible versions of both are installed, \fI\%pygit2\fP will be preferred. In these
  21280. cases, \fI\%GitPython\fP can be forced using the \fBgitfs_provider\fP
  21281. parameter in the master config file.
  21282. .sp
  21283. \fBNOTE:\fP
  21284. .INDENT 0.0
  21285. .INDENT 3.5
  21286. It is recommended to always run the most recent version of any the below
  21287. dependencies. Certain features of GitFS may not be available without
  21288. the most recent version of the chosen library.
  21289. .UNINDENT
  21290. .UNINDENT
  21291. .SS pygit2
  21292. .sp
  21293. The minimum supported version of \fI\%pygit2\fP is 0.20.3. Availability for this
  21294. version of \fI\%pygit2\fP is still limited, though the SaltStack team is working to
  21295. get compatible versions available for as many platforms as possible.
  21296. .sp
  21297. For the Fedora/EPEL versions which have a new enough version packaged, the
  21298. following command would be used to install \fI\%pygit2\fP:
  21299. .INDENT 0.0
  21300. .INDENT 3.5
  21301. .sp
  21302. .nf
  21303. .ft C
  21304. # yum install python\-pygit2
  21305. .ft P
  21306. .fi
  21307. .UNINDENT
  21308. .UNINDENT
  21309. .sp
  21310. Provided a valid version is packaged for Debian/Ubuntu (which is not currently
  21311. the case), the package name would be the same, and the following command would
  21312. be used to install it:
  21313. .INDENT 0.0
  21314. .INDENT 3.5
  21315. .sp
  21316. .nf
  21317. .ft C
  21318. # apt\-get install python\-pygit2
  21319. .ft P
  21320. .fi
  21321. .UNINDENT
  21322. .UNINDENT
  21323. .sp
  21324. If \fI\%pygit2\fP is not packaged for the platform on which the Master is running, the
  21325. \fI\%pygit2\fP website has installation instructions
  21326. \fI\%here\fP\&. Keep in mind however that
  21327. following these instructions will install \fI\%libgit2\fP and \fI\%pygit2\fP without system
  21328. packages. Additionally, keep in mind that \fI\%SSH authentication in pygit2\fP requires \fI\%libssh2\fP (\fInot\fP libssh) development
  21329. libraries to be present before \fI\%libgit2\fP is built. On some Debian\-based distros
  21330. \fBpkg\-config\fP is also required to link \fI\%libgit2\fP with libssh2.
  21331. .sp
  21332. \fBNOTE:\fP
  21333. .INDENT 0.0
  21334. .INDENT 3.5
  21335. If you are receiving the error "Unsupported URL Protocol" in the Salt Master
  21336. log when making a connection using SSH, review the libssh2 details listed
  21337. above.
  21338. .UNINDENT
  21339. .UNINDENT
  21340. .sp
  21341. Additionally, version 0.21.0 of pygit2 introduced a dependency on \fI\%python\-cffi\fP,
  21342. which in turn depends on newer releases of \fI\%libffi\fP\&. Upgrading \fI\%libffi\fP is not
  21343. advisable as several other applications depend on it, so on older LTS linux
  21344. releases \fI\%pygit2\fP 0.20.3 and \fI\%libgit2\fP 0.20.0 is the recommended combination.
  21345. .sp
  21346. \fBWARNING:\fP
  21347. .INDENT 0.0
  21348. .INDENT 3.5
  21349. \fI\%pygit2\fP is actively developed and \fI\%frequently makes
  21350. non\-backwards\-compatible API changes\fP, even in
  21351. minor releases. It is not uncommon for \fI\%pygit2\fP upgrades to result in errors
  21352. in Salt. Please take care when upgrading \fI\%pygit2\fP, and pay close attention
  21353. to the \fI\%changelog\fP, keeping an eye out for API changes. Errors can be
  21354. reported on the \fI\%SaltStack issue tracker\fP\&.
  21355. .UNINDENT
  21356. .UNINDENT
  21357. .SS RedHat Pygit2 Issues
  21358. .sp
  21359. The release of RedHat/CentOS 7.3 upgraded both \fBpython\-cffi\fP and
  21360. \fBhttp\-parser\fP, both of which are dependencies for \fI\%pygit2\fP/\fI\%libgit2\fP\&. Both
  21361. \fBpygit2\fP and \fBlibgit2\fP packages (which are from the EPEL repository) should
  21362. be upgraded to the most recent versions, at least to \fB0.24.2\fP\&.
  21363. .sp
  21364. The below errors will show up in the master log if an incompatible
  21365. \fBpython\-pygit2\fP package is installed:
  21366. .INDENT 0.0
  21367. .INDENT 3.5
  21368. .sp
  21369. .nf
  21370. .ft C
  21371. 2017\-02\-10 09:07:34,892 [salt.utils.gitfs ][ERROR ][11211] Import pygit2 failed: CompileError: command \(aqgcc\(aq failed with exit status 1
  21372. 2017\-02\-10 09:07:34,907 [salt.utils.gitfs ][ERROR ][11211] gitfs is configured but could not be loaded, are pygit2 and libgit2 installed?
  21373. 2017\-02\-10 09:07:34,907 [salt.utils.gitfs ][CRITICAL][11211] No suitable gitfs provider module is installed.
  21374. 2017\-02\-10 09:07:34,912 [salt.master ][CRITICAL][11211] Master failed pre flight checks, exiting
  21375. .ft P
  21376. .fi
  21377. .UNINDENT
  21378. .UNINDENT
  21379. .sp
  21380. The below errors will show up in the master log if an incompatible \fBlibgit2\fP
  21381. package is installed:
  21382. .INDENT 0.0
  21383. .INDENT 3.5
  21384. .sp
  21385. .nf
  21386. .ft C
  21387. 2017\-02\-15 18:04:45,211 [salt.utils.gitfs ][ERROR ][6211] Error occurred fetching gitfs remote \(aqhttps://foo.com/bar.git\(aq: No Content\-Type header in response
  21388. .ft P
  21389. .fi
  21390. .UNINDENT
  21391. .UNINDENT
  21392. .sp
  21393. A restart of the \fBsalt\-master\fP daemon and gitfs cache directory clean up may
  21394. be required to allow http(s) repositories to continue to be fetched.
  21395. .SS GitPython
  21396. .sp
  21397. \fI\%GitPython\fP 0.3.0 or newer is required to use GitPython for gitfs. For
  21398. RHEL\-based Linux distros, a compatible version is available in EPEL, and can be
  21399. easily installed on the master using yum:
  21400. .INDENT 0.0
  21401. .INDENT 3.5
  21402. .sp
  21403. .nf
  21404. .ft C
  21405. # yum install GitPython
  21406. .ft P
  21407. .fi
  21408. .UNINDENT
  21409. .UNINDENT
  21410. .sp
  21411. Ubuntu 14.04 LTS and Debian Wheezy (7.x) also have a compatible version packaged:
  21412. .INDENT 0.0
  21413. .INDENT 3.5
  21414. .sp
  21415. .nf
  21416. .ft C
  21417. # apt\-get install python\-git
  21418. .ft P
  21419. .fi
  21420. .UNINDENT
  21421. .UNINDENT
  21422. .sp
  21423. \fI\%GitPython\fP requires the \fBgit\fP CLI utility to work. If installed from a system
  21424. package, then git should already be installed, but if installed via \fI\%pip\fP then
  21425. it may still be necessary to install git separately. For MacOS users,
  21426. \fI\%GitPython\fP comes bundled in with the Salt installer, but git must still be
  21427. installed for it to work properly. Git can be installed in several ways,
  21428. including by installing \fI\%XCode\fP\&.
  21429. .sp
  21430. \fBWARNING:\fP
  21431. .INDENT 0.0
  21432. .INDENT 3.5
  21433. GitPython advises against the use of its library for long\-running processes
  21434. (such as a salt\-master or salt\-minion). Please see their warning on potential
  21435. leaks of system resources:
  21436. \fI\%https://github.com/gitpython\-developers/GitPython#leakage\-of\-system\-resources\fP\&.
  21437. .UNINDENT
  21438. .UNINDENT
  21439. .sp
  21440. \fBWARNING:\fP
  21441. .INDENT 0.0
  21442. .INDENT 3.5
  21443. Keep in mind that if GitPython has been previously installed on the master
  21444. using pip (even if it was subsequently uninstalled), then it may still
  21445. exist in the build cache (typically \fB/tmp/pip\-build\-root/GitPython\fP) if
  21446. the cache is not cleared after installation. The package in the build cache
  21447. will override any requirement specifiers, so if you try upgrading to
  21448. version 0.3.2.RC1 by running \fBpip install \(aqGitPython==0.3.2.RC1\(aq\fP then it
  21449. will ignore this and simply install the version from the cache directory.
  21450. Therefore, it may be necessary to delete the GitPython directory from the
  21451. build cache in order to ensure that the specified version is installed.
  21452. .UNINDENT
  21453. .UNINDENT
  21454. .sp
  21455. \fBWARNING:\fP
  21456. .INDENT 0.0
  21457. .INDENT 3.5
  21458. \fI\%GitPython\fP 2.0.9 and newer is not compatible with Python 2.6. If installing
  21459. \fI\%GitPython\fP using pip on a machine running Python 2.6, make sure that a
  21460. version earlier than 2.0.9 is installed. This can be done on the CLI by
  21461. running \fBpip install \(aqGitPython<2.0.9\(aq\fP, or in a \fBpip.installed\fP state using the following SLS:
  21462. .INDENT 0.0
  21463. .INDENT 3.5
  21464. .sp
  21465. .nf
  21466. .ft C
  21467. GitPython:
  21468. pip.installed:
  21469. \- name: \(aqGitPython < 2.0.9\(aq
  21470. .ft P
  21471. .fi
  21472. .UNINDENT
  21473. .UNINDENT
  21474. .UNINDENT
  21475. .UNINDENT
  21476. .SS Simple Configuration
  21477. .sp
  21478. To use the gitfs backend, only two configuration changes are required on the
  21479. master:
  21480. .INDENT 0.0
  21481. .IP 1. 3
  21482. Include \fBgitfs\fP in the \fBfileserver_backend\fP list in the
  21483. master config file:
  21484. .INDENT 3.0
  21485. .INDENT 3.5
  21486. .sp
  21487. .nf
  21488. .ft C
  21489. fileserver_backend:
  21490. \- gitfs
  21491. .ft P
  21492. .fi
  21493. .UNINDENT
  21494. .UNINDENT
  21495. .sp
  21496. \fBNOTE:\fP
  21497. .INDENT 3.0
  21498. .INDENT 3.5
  21499. \fBgit\fP also works here. Prior to the 2018.3.0 release, \fIonly\fP \fBgit\fP
  21500. would work.
  21501. .UNINDENT
  21502. .UNINDENT
  21503. .IP 2. 3
  21504. Specify one or more \fBgit://\fP, \fBhttps://\fP, \fBfile://\fP, or \fBssh://\fP
  21505. URLs in \fBgitfs_remotes\fP to configure which repositories to
  21506. cache and search for requested files:
  21507. .INDENT 3.0
  21508. .INDENT 3.5
  21509. .sp
  21510. .nf
  21511. .ft C
  21512. gitfs_remotes:
  21513. \- https://github.com/saltstack\-formulas/salt\-formula.git
  21514. .ft P
  21515. .fi
  21516. .UNINDENT
  21517. .UNINDENT
  21518. .sp
  21519. SSH remotes can also be configured using scp\-like syntax:
  21520. .INDENT 3.0
  21521. .INDENT 3.5
  21522. .sp
  21523. .nf
  21524. .ft C
  21525. gitfs_remotes:
  21526. \- git@github.com:user/repo.git
  21527. \- ssh://user@domain.tld/path/to/repo.git
  21528. .ft P
  21529. .fi
  21530. .UNINDENT
  21531. .UNINDENT
  21532. .sp
  21533. Information on how to authenticate to SSH remotes can be found \fI\%here\fP\&.
  21534. .IP 3. 3
  21535. Restart the master to load the new configuration.
  21536. .UNINDENT
  21537. .sp
  21538. \fBNOTE:\fP
  21539. .INDENT 0.0
  21540. .INDENT 3.5
  21541. In a master/minion setup, files from a gitfs remote are cached once by the
  21542. master, so minions do not need direct access to the git repository.
  21543. .UNINDENT
  21544. .UNINDENT
  21545. .SS Multiple Remotes
  21546. .sp
  21547. The \fBgitfs_remotes\fP option accepts an ordered list of git remotes to
  21548. cache and search, in listed order, for requested files.
  21549. .sp
  21550. A simple scenario illustrates this cascading lookup behavior:
  21551. .sp
  21552. If the \fBgitfs_remotes\fP option specifies three remotes:
  21553. .INDENT 0.0
  21554. .INDENT 3.5
  21555. .sp
  21556. .nf
  21557. .ft C
  21558. gitfs_remotes:
  21559. \- git://github.com/example/first.git
  21560. \- https://github.com/example/second.git
  21561. \- file:///root/third
  21562. .ft P
  21563. .fi
  21564. .UNINDENT
  21565. .UNINDENT
  21566. .sp
  21567. And each repository contains some files:
  21568. .INDENT 0.0
  21569. .INDENT 3.5
  21570. .sp
  21571. .nf
  21572. .ft C
  21573. first.git:
  21574. top.sls
  21575. edit/vim.sls
  21576. edit/vimrc
  21577. nginx/init.sls
  21578. second.git:
  21579. edit/dev_vimrc
  21580. haproxy/init.sls
  21581. third:
  21582. haproxy/haproxy.conf
  21583. edit/dev_vimrc
  21584. .ft P
  21585. .fi
  21586. .UNINDENT
  21587. .UNINDENT
  21588. .sp
  21589. Salt will attempt to lookup the requested file from each gitfs remote
  21590. repository in the order in which they are defined in the configuration. The
  21591. \fBgit://github.com/example/first.git\fP remote will be searched first.
  21592. If the requested file is found, then it is served and no further searching
  21593. is executed. For example:
  21594. .INDENT 0.0
  21595. .IP \(bu 2
  21596. A request for the file \fBsalt://haproxy/init.sls\fP will be served from
  21597. the \fBhttps://github.com/example/second.git\fP git repo.
  21598. .IP \(bu 2
  21599. A request for the file \fBsalt://haproxy/haproxy.conf\fP will be served from the
  21600. \fBfile:///root/third\fP repo.
  21601. .UNINDENT
  21602. .sp
  21603. \fBNOTE:\fP
  21604. .INDENT 0.0
  21605. .INDENT 3.5
  21606. This example is purposefully contrived to illustrate the behavior of the
  21607. gitfs backend. This example should not be read as a recommended way to lay
  21608. out files and git repos.
  21609. .sp
  21610. The \fBfile://\fP prefix denotes a git repository in a local directory.
  21611. However, it will still use the given \fBfile://\fP URL as a remote,
  21612. rather than copying the git repo to the salt cache. This means that any
  21613. refs you want accessible must exist as \fIlocal\fP refs in the specified repo.
  21614. .UNINDENT
  21615. .UNINDENT
  21616. .sp
  21617. \fBWARNING:\fP
  21618. .INDENT 0.0
  21619. .INDENT 3.5
  21620. Salt versions prior to 2014.1.0 are not tolerant of changing the
  21621. order of remotes or modifying the URI of existing remotes. In those
  21622. versions, when modifying remotes it is a good idea to remove the gitfs
  21623. cache directory (\fB/var/cache/salt/master/gitfs\fP) before restarting the
  21624. salt\-master service.
  21625. .UNINDENT
  21626. .UNINDENT
  21627. .SS Per\-remote Configuration Parameters
  21628. .sp
  21629. New in version 2014.7.0.
  21630. .sp
  21631. The following master config parameters are global (that is, they apply to all
  21632. configured gitfs remotes):
  21633. .INDENT 0.0
  21634. .IP \(bu 2
  21635. \fBgitfs_base\fP
  21636. .IP \(bu 2
  21637. \fBgitfs_root\fP
  21638. .IP \(bu 2
  21639. \fBgitfs_ssl_verify\fP
  21640. .IP \(bu 2
  21641. \fBgitfs_mountpoint\fP (new in 2014.7.0)
  21642. .IP \(bu 2
  21643. \fBgitfs_user\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21644. .IP \(bu 2
  21645. \fBgitfs_password\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21646. .IP \(bu 2
  21647. \fBgitfs_insecure_auth\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21648. .IP \(bu 2
  21649. \fBgitfs_pubkey\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21650. .IP \(bu 2
  21651. \fBgitfs_privkey\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21652. .IP \(bu 2
  21653. \fBgitfs_passphrase\fP (\fBpygit2 only\fP, new in 2014.7.0)
  21654. .IP \(bu 2
  21655. \fBgitfs_refspecs\fP (new in 2017.7.0)
  21656. .IP \(bu 2
  21657. \fBgitfs_disable_saltenv_mapping\fP (new in 2018.3.0)
  21658. .IP \(bu 2
  21659. \fBgitfs_ref_types\fP (new in 2018.3.0)
  21660. .IP \(bu 2
  21661. \fBgitfs_update_interval\fP (new in 2018.3.0)
  21662. .UNINDENT
  21663. .sp
  21664. \fBNOTE:\fP
  21665. .INDENT 0.0
  21666. .INDENT 3.5
  21667. pygit2 only supports disabling SSL verification in versions 0.23.2 and
  21668. newer.
  21669. .UNINDENT
  21670. .UNINDENT
  21671. .sp
  21672. These parameters can now be overridden on a per\-remote basis. This allows for a
  21673. tremendous amount of customization. Here\(aqs some example usage:
  21674. .INDENT 0.0
  21675. .INDENT 3.5
  21676. .sp
  21677. .nf
  21678. .ft C
  21679. gitfs_provider: pygit2
  21680. gitfs_base: develop
  21681. gitfs_remotes:
  21682. \- https://foo.com/foo.git
  21683. \- https://foo.com/bar.git:
  21684. \- root: salt
  21685. \- mountpoint: salt://bar
  21686. \- base: salt\-base
  21687. \- ssl_verify: False
  21688. \- update_interval: 120
  21689. \- https://foo.com/bar.git:
  21690. \- name: second_bar_repo
  21691. \- root: other/salt
  21692. \- mountpoint: salt://other/bar
  21693. \- base: salt\-base
  21694. \- ref_types:
  21695. \- branch
  21696. \- http://foo.com/baz.git:
  21697. \- root: salt/states
  21698. \- user: joe
  21699. \- password: mysupersecretpassword
  21700. \- insecure_auth: True
  21701. \- disable_saltenv_mapping: True
  21702. \- saltenv:
  21703. \- foo:
  21704. \- ref: foo
  21705. \- http://foo.com/quux.git:
  21706. \- all_saltenvs: master
  21707. .ft P
  21708. .fi
  21709. .UNINDENT
  21710. .UNINDENT
  21711. .sp
  21712. \fBIMPORTANT:\fP
  21713. .INDENT 0.0
  21714. .INDENT 3.5
  21715. There are two important distinctions which should be noted for per\-remote
  21716. configuration:
  21717. .INDENT 0.0
  21718. .IP 1. 3
  21719. The URL of a remote which has per\-remote configuration must be suffixed
  21720. with a colon.
  21721. .IP 2. 3
  21722. Per\-remote configuration parameters are named like the global versions,
  21723. with the \fBgitfs_\fP removed from the beginning. The exception being the
  21724. \fBname\fP, \fBsaltenv\fP, and \fBall_saltenvs\fP parameters, which are only
  21725. available to per\-remote configurations.
  21726. .UNINDENT
  21727. .sp
  21728. The \fBall_saltenvs\fP parameter is new in the 2018.3.0 release.
  21729. .UNINDENT
  21730. .UNINDENT
  21731. .sp
  21732. In the example configuration above, the following is true:
  21733. .INDENT 0.0
  21734. .IP 1. 3
  21735. The first and fourth gitfs remotes will use the \fBdevelop\fP branch/tag as the
  21736. \fBbase\fP environment, while the second and third will use the \fBsalt\-base\fP
  21737. branch/tag as the \fBbase\fP environment.
  21738. .IP 2. 3
  21739. The first remote will serve all files in the repository. The second
  21740. remote will only serve files from the \fBsalt\fP directory (and its
  21741. subdirectories). The third remote will only server files from the
  21742. \fBother/salt\fP directory (and its subdirectories), while the fourth remote
  21743. will only serve files from the \fBsalt/states\fP directory (and its
  21744. subdirectories).
  21745. .IP 3. 3
  21746. The third remote will only serve files from branches, and not from tags or
  21747. SHAs.
  21748. .IP 4. 3
  21749. The fourth remote will only have two saltenvs available: \fBbase\fP (pointed
  21750. at \fBdevelop\fP), and \fBfoo\fP (pointed at \fBfoo\fP).
  21751. .IP 5. 3
  21752. The first and fourth remotes will have files located under the root of the
  21753. Salt fileserver namespace (\fBsalt://\fP). The files from the second remote
  21754. will be located under \fBsalt://bar\fP, while the files from the third remote
  21755. will be located under \fBsalt://other/bar\fP\&.
  21756. .IP 6. 3
  21757. The second and third remotes reference the same repository and unique names
  21758. need to be declared for duplicate gitfs remotes.
  21759. .IP 7. 3
  21760. The fourth remote overrides the default behavior of \fI\%not authenticating
  21761. to insecure (non\-HTTPS) remotes\fP\&.
  21762. .IP 8. 3
  21763. Because \fBall_saltenvs\fP is configured for the fifth remote, files from the
  21764. branch/tag \fBmaster\fP will appear in every fileserver environment.
  21765. .sp
  21766. \fBNOTE:\fP
  21767. .INDENT 3.0
  21768. .INDENT 3.5
  21769. The use of \fBhttp://\fP (instead of \fBhttps://\fP) is permitted here
  21770. \fIonly\fP because authentication is not being used. Otherwise, the
  21771. \fBinsecure_auth\fP parameter must be used (as in the fourth remote) to
  21772. force Salt to authenticate to an \fBhttp://\fP remote.
  21773. .UNINDENT
  21774. .UNINDENT
  21775. .IP 9. 3
  21776. The first remote will wait 120 seconds between updates instead of 60.
  21777. .UNINDENT
  21778. .SS Per\-Saltenv Configuration Parameters
  21779. .sp
  21780. New in version 2016.11.0.
  21781. .sp
  21782. For more granular control, Salt allows the following three things to be
  21783. overridden for individual saltenvs within a given repo:
  21784. .INDENT 0.0
  21785. .IP \(bu 2
  21786. The \fI\%mountpoint\fP
  21787. .IP \(bu 2
  21788. The \fI\%root\fP
  21789. .IP \(bu 2
  21790. The branch/tag to be used for a given saltenv
  21791. .UNINDENT
  21792. .sp
  21793. Here is an example:
  21794. .INDENT 0.0
  21795. .INDENT 3.5
  21796. .sp
  21797. .nf
  21798. .ft C
  21799. gitfs_root: salt
  21800. gitfs_saltenv:
  21801. \- dev:
  21802. \- mountpoint: salt://gitfs\-dev
  21803. \- ref: develop
  21804. gitfs_remotes:
  21805. \- https://foo.com/bar.git:
  21806. \- saltenv:
  21807. \- staging:
  21808. \- ref: qa
  21809. \- mountpoint: salt://bar\-staging
  21810. \- dev:
  21811. \- ref: development
  21812. \- https://foo.com/baz.git:
  21813. \- saltenv:
  21814. \- staging:
  21815. \- mountpoint: salt://baz\-staging
  21816. .ft P
  21817. .fi
  21818. .UNINDENT
  21819. .UNINDENT
  21820. .sp
  21821. Given the above configuration, the following is true:
  21822. .INDENT 0.0
  21823. .IP 1. 3
  21824. For all gitfs remotes, files for the \fBdev\fP saltenv will be located under
  21825. \fBsalt://gitfs\-dev\fP\&.
  21826. .IP 2. 3
  21827. For the \fBdev\fP saltenv, files from the first remote will be sourced from
  21828. the \fBdevelopment\fP branch, while files from the second remote will be
  21829. sourced from the \fBdevelop\fP branch.
  21830. .IP 3. 3
  21831. For the \fBstaging\fP saltenv, files from the first remote will be located
  21832. under \fBsalt://bar\-staging\fP, while files from the second remote will be
  21833. located under \fBsalt://baz\-staging\fP\&.
  21834. .IP 4. 3
  21835. For all gitfs remotes, and in all saltenvs, files will be served from the
  21836. \fBsalt\fP directory (and its subdirectories).
  21837. .UNINDENT
  21838. .SS Custom Refspecs
  21839. .sp
  21840. New in version 2017.7.0.
  21841. .sp
  21842. GitFS will by default fetch remote branches and tags. However, sometimes it can
  21843. be useful to fetch custom refs (such as those created for \fI\%GitHub pull
  21844. requests\fP). To change the refspecs GitFS fetches, use the
  21845. \fBgitfs_refspecs\fP config option:
  21846. .INDENT 0.0
  21847. .INDENT 3.5
  21848. .sp
  21849. .nf
  21850. .ft C
  21851. gitfs_refspecs:
  21852. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  21853. \- \(aq+refs/tags/*:refs/tags/*\(aq
  21854. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  21855. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  21856. .ft P
  21857. .fi
  21858. .UNINDENT
  21859. .UNINDENT
  21860. .sp
  21861. In the above example, in addition to fetching remote branches and tags,
  21862. GitHub\(aqs custom refs for pull requests and merged pull requests will also be
  21863. fetched. These special \fBhead\fP refs represent the head of the branch which is
  21864. requesting to be merged, and the \fBmerge\fP refs represent the result of the
  21865. base branch after the merge.
  21866. .sp
  21867. \fBIMPORTANT:\fP
  21868. .INDENT 0.0
  21869. .INDENT 3.5
  21870. When using custom refspecs, the destination of the fetched refs \fImust\fP be
  21871. under \fBrefs/remotes/origin/\fP, preferably in a subdirectory like in the
  21872. example above. These custom refspecs will map as environment names using
  21873. their relative path underneath \fBrefs/remotes/origin/\fP\&. For example,
  21874. assuming the configuration above, the head branch for pull request 12345
  21875. would map to fileserver environment \fBpr/12345\fP (slash included).
  21876. .UNINDENT
  21877. .UNINDENT
  21878. .sp
  21879. Refspecs can be configured on a \fI\%per\-remote basis\fP\&. For example, the below configuration would only
  21880. alter the default refspecs for the \fIsecond\fP GitFS remote. The first remote
  21881. would only fetch branches and tags (the default).
  21882. .INDENT 0.0
  21883. .INDENT 3.5
  21884. .sp
  21885. .nf
  21886. .ft C
  21887. gitfs_remotes:
  21888. \- https://domain.tld/foo.git
  21889. \- https://domain.tld/bar.git:
  21890. \- refspecs:
  21891. \- \(aq+refs/heads/*:refs/remotes/origin/*\(aq
  21892. \- \(aq+refs/tags/*:refs/tags/*\(aq
  21893. \- \(aq+refs/pull/*/head:refs/remotes/origin/pr/*\(aq
  21894. \- \(aq+refs/pull/*/merge:refs/remotes/origin/merge/*\(aq
  21895. .ft P
  21896. .fi
  21897. .UNINDENT
  21898. .UNINDENT
  21899. .SS Global Remotes
  21900. .sp
  21901. New in version 2018.3.0: for all_saltenvs, sodium for fallback
  21902. .sp
  21903. The \fBall_saltenvs\fP per\-remote configuration parameter overrides the logic
  21904. Salt uses to map branches/tags to fileserver environments (i.e. saltenvs). This
  21905. allows a single branch/tag to appear in \fIall\fP GitFS saltenvs.
  21906. .sp
  21907. \fBNOTE:\fP
  21908. .INDENT 0.0
  21909. .INDENT 3.5
  21910. \fBall_saltenvs\fP only works \fIwithin\fP GitFS. That is, files in a branch
  21911. configured using \fBall_saltenvs\fP will \fInot\fP show up in a fileserver
  21912. environment defined via some other fileserver backend (e.g.
  21913. \fBfile_roots\fP).
  21914. .UNINDENT
  21915. .UNINDENT
  21916. .sp
  21917. The \fBfallback\fP global or per\-remote configuration can also be used.
  21918. .sp
  21919. This is very useful in particular when working with salt formulas\&. Prior to the addition of this feature, it was necessary
  21920. to push a branch/tag to the remote repo for each saltenv in which that formula
  21921. was to be used. If the formula needed to be updated, this update would need to
  21922. be reflected in all of the other branches/tags. This is both inconvenient and
  21923. not scalable.
  21924. .sp
  21925. With \fBall_saltenvs\fP, it is now possible to define your formula once, in a
  21926. single branch.
  21927. .INDENT 0.0
  21928. .INDENT 3.5
  21929. .sp
  21930. .nf
  21931. .ft C
  21932. gitfs_remotes:
  21933. \- http://foo.com/quux.git:
  21934. \- all_saltenvs: anything
  21935. .ft P
  21936. .fi
  21937. .UNINDENT
  21938. .UNINDENT
  21939. .sp
  21940. If you want to also test working branches of the formula repository, use
  21941. \fBfallback\fP:
  21942. .INDENT 0.0
  21943. .INDENT 3.5
  21944. .sp
  21945. .nf
  21946. .ft C
  21947. gitfs_remotes:
  21948. \- http://foo.com/quux.git:
  21949. \- fallback: anything
  21950. .ft P
  21951. .fi
  21952. .UNINDENT
  21953. .UNINDENT
  21954. .SS Update Intervals
  21955. .sp
  21956. Prior to the 2018.3.0 release, GitFS would update its fileserver backends as part
  21957. of a dedicated "maintenance" process, in which various routine maintenance
  21958. tasks were performed. This tied the update interval to the
  21959. \fBloop_interval\fP config option, and also forced all fileservers to
  21960. update at the same interval.
  21961. .sp
  21962. Now it is possible to make GitFS update at its own interval, using
  21963. \fBgitfs_update_interval\fP:
  21964. .INDENT 0.0
  21965. .INDENT 3.5
  21966. .sp
  21967. .nf
  21968. .ft C
  21969. gitfs_update_interval: 180
  21970. gitfs_remotes:
  21971. \- https://foo.com/foo.git
  21972. \- https://foo.com/bar.git:
  21973. \- update_interval: 120
  21974. .ft P
  21975. .fi
  21976. .UNINDENT
  21977. .UNINDENT
  21978. .sp
  21979. Using the above configuration, the first remote would update every three
  21980. minutes, while the second remote would update every two minutes.
  21981. .SS Configuration Order of Precedence
  21982. .sp
  21983. The order of precedence for GitFS configuration is as follows (each level
  21984. overrides all levels below it):
  21985. .INDENT 0.0
  21986. .IP 1. 3
  21987. Per\-saltenv configuration (defined under a per\-remote \fBsaltenv\fP
  21988. param)
  21989. .INDENT 3.0
  21990. .INDENT 3.5
  21991. .sp
  21992. .nf
  21993. .ft C
  21994. gitfs_remotes:
  21995. \- https://foo.com/bar.git:
  21996. \- saltenv:
  21997. \- dev:
  21998. \- mountpoint: salt://bar
  21999. .ft P
  22000. .fi
  22001. .UNINDENT
  22002. .UNINDENT
  22003. .IP 2. 3
  22004. Global per\-saltenv configuration (defined in \fBgitfs_saltenv\fP)
  22005. .INDENT 3.0
  22006. .INDENT 3.5
  22007. .sp
  22008. .nf
  22009. .ft C
  22010. gitfs_saltenv:
  22011. \- dev:
  22012. \- mountpoint: salt://bar
  22013. .ft P
  22014. .fi
  22015. .UNINDENT
  22016. .UNINDENT
  22017. .IP 3. 3
  22018. Per\-remote configuration parameter
  22019. .INDENT 3.0
  22020. .INDENT 3.5
  22021. .sp
  22022. .nf
  22023. .ft C
  22024. gitfs_remotes:
  22025. \- https://foo.com/bar.git:
  22026. \- mountpoint: salt://bar
  22027. .ft P
  22028. .fi
  22029. .UNINDENT
  22030. .UNINDENT
  22031. .IP 4. 3
  22032. Global configuration parameter
  22033. .INDENT 3.0
  22034. .INDENT 3.5
  22035. .sp
  22036. .nf
  22037. .ft C
  22038. gitfs_mountpoint: salt://bar
  22039. .ft P
  22040. .fi
  22041. .UNINDENT
  22042. .UNINDENT
  22043. .UNINDENT
  22044. .sp
  22045. \fBNOTE:\fP
  22046. .INDENT 0.0
  22047. .INDENT 3.5
  22048. The one exception to the above is when \fI\%all_saltenvs\fP is used. This value overrides all logic for mapping
  22049. branches/tags to fileserver environments. So, even if
  22050. \fBgitfs_saltenv\fP is used to globally override the mapping for a
  22051. given saltenv, \fI\%all_saltenvs\fP would take
  22052. precedence for any remote which uses it.
  22053. .sp
  22054. It\(aqs important to note however that any \fBroot\fP and \fBmountpoint\fP values
  22055. configured in \fBgitfs_saltenv\fP (or \fI\%per\-saltenv
  22056. configuration\fP) would be unaffected by this.
  22057. .UNINDENT
  22058. .UNINDENT
  22059. .SS Serving from a Subdirectory
  22060. .sp
  22061. The \fBgitfs_root\fP parameter allows files to be served from a
  22062. subdirectory within the repository. This allows for only part of a repository
  22063. to be exposed to the Salt fileserver.
  22064. .sp
  22065. Assume the below layout:
  22066. .INDENT 0.0
  22067. .INDENT 3.5
  22068. .sp
  22069. .nf
  22070. .ft C
  22071. \&.gitignore
  22072. README.txt
  22073. foo/
  22074. foo/bar/
  22075. foo/bar/one.txt
  22076. foo/bar/two.txt
  22077. foo/bar/three.txt
  22078. foo/baz/
  22079. foo/baz/top.sls
  22080. foo/baz/edit/vim.sls
  22081. foo/baz/edit/vimrc
  22082. foo/baz/nginx/init.sls
  22083. .ft P
  22084. .fi
  22085. .UNINDENT
  22086. .UNINDENT
  22087. .sp
  22088. The below configuration would serve only the files under \fBfoo/baz\fP, ignoring
  22089. the other files in the repository:
  22090. .INDENT 0.0
  22091. .INDENT 3.5
  22092. .sp
  22093. .nf
  22094. .ft C
  22095. gitfs_remotes:
  22096. \- git://mydomain.com/stuff.git
  22097. gitfs_root: foo/baz
  22098. .ft P
  22099. .fi
  22100. .UNINDENT
  22101. .UNINDENT
  22102. .sp
  22103. The root can also be configured on a \fI\%per\-remote basis\fP\&.
  22104. .SS Mountpoints
  22105. .sp
  22106. New in version 2014.7.0.
  22107. .sp
  22108. The \fBgitfs_mountpoint\fP parameter will prepend the specified path
  22109. to the files served from gitfs. This allows an existing repository to be used,
  22110. rather than needing to reorganize a repository or design it around the layout
  22111. of the Salt fileserver.
  22112. .sp
  22113. Before the addition of this feature, if a file being served up via gitfs was
  22114. deeply nested within the root directory (for example,
  22115. \fBsalt://webapps/foo/files/foo.conf\fP, it would be necessary to ensure that the
  22116. file was properly located in the remote repository, and that all of the
  22117. parent directories were present (for example, the directories
  22118. \fBwebapps/foo/files/\fP would need to exist at the root of the repository).
  22119. .sp
  22120. The below example would allow for a file \fBfoo.conf\fP at the root of the
  22121. repository to be served up from the Salt fileserver path
  22122. \fBsalt://webapps/foo/files/foo.conf\fP\&.
  22123. .INDENT 0.0
  22124. .INDENT 3.5
  22125. .sp
  22126. .nf
  22127. .ft C
  22128. gitfs_remotes:
  22129. \- https://mydomain.com/stuff.git
  22130. gitfs_mountpoint: salt://webapps/foo/files
  22131. .ft P
  22132. .fi
  22133. .UNINDENT
  22134. .UNINDENT
  22135. .sp
  22136. Mountpoints can also be configured on a \fI\%per\-remote basis\fP\&.
  22137. .SS Using gitfs in Masterless Mode
  22138. .sp
  22139. Since 2014.7.0, gitfs can be used in masterless mode. To do so, simply add the
  22140. gitfs configuration parameters (and set \fBfileserver_backend\fP) in
  22141. the _minion_ config file instead of the master config file.
  22142. .SS Using gitfs Alongside Other Backends
  22143. .sp
  22144. Sometimes it may make sense to use multiple backends; for instance, if \fBsls\fP
  22145. files are stored in git but larger files are stored directly on the master.
  22146. .sp
  22147. The cascading lookup logic used for multiple remotes is also used with multiple
  22148. backends. If the \fBfileserver_backend\fP option contains multiple
  22149. backends:
  22150. .INDENT 0.0
  22151. .INDENT 3.5
  22152. .sp
  22153. .nf
  22154. .ft C
  22155. fileserver_backend:
  22156. \- roots
  22157. \- git
  22158. .ft P
  22159. .fi
  22160. .UNINDENT
  22161. .UNINDENT
  22162. .sp
  22163. Then the \fBroots\fP backend (the default backend of files in \fB/srv/salt\fP) will
  22164. be searched first for the requested file; then, if it is not found on the
  22165. master, each configured git remote will be searched.
  22166. .sp
  22167. \fBNOTE:\fP
  22168. .INDENT 0.0
  22169. .INDENT 3.5
  22170. This can be used together with \fIfile_roots\fP accepting \fI__env__\fP as a catch\-all
  22171. environment, since 2018.3.5 and 2019.2.1:
  22172. .INDENT 0.0
  22173. .INDENT 3.5
  22174. .sp
  22175. .nf
  22176. .ft C
  22177. file_roots:
  22178. base:
  22179. \- /srv/salt
  22180. __env__:
  22181. \- /srv/salt
  22182. .ft P
  22183. .fi
  22184. .UNINDENT
  22185. .UNINDENT
  22186. .UNINDENT
  22187. .UNINDENT
  22188. .SS Branches, Environments, and Top Files
  22189. .sp
  22190. When using the GitFS backend, branches, and tags will be mapped to environments
  22191. using the branch/tag name as an identifier.
  22192. .sp
  22193. There is one exception to this rule: the \fBmaster\fP branch is implicitly mapped
  22194. to the \fBbase\fP environment.
  22195. .sp
  22196. So, for a typical \fBbase\fP, \fBqa\fP, \fBdev\fP setup, the following branches could
  22197. be used:
  22198. .INDENT 0.0
  22199. .INDENT 3.5
  22200. .sp
  22201. .nf
  22202. .ft C
  22203. master
  22204. qa
  22205. dev
  22206. .ft P
  22207. .fi
  22208. .UNINDENT
  22209. .UNINDENT
  22210. .sp
  22211. \fBtop.sls\fP files from different branches will be merged into one at runtime.
  22212. Since this can lead to overly complex configurations, the recommended setup is
  22213. to have a separate repository, containing only the \fBtop.sls\fP file with just
  22214. one single \fBmaster\fP branch.
  22215. .sp
  22216. To map a branch other than \fBmaster\fP as the \fBbase\fP environment, use the
  22217. \fBgitfs_base\fP parameter.
  22218. .INDENT 0.0
  22219. .INDENT 3.5
  22220. .sp
  22221. .nf
  22222. .ft C
  22223. gitfs_base: salt\-base
  22224. .ft P
  22225. .fi
  22226. .UNINDENT
  22227. .UNINDENT
  22228. .sp
  22229. The base can also be configured on a \fI\%per\-remote basis\fP\&.
  22230. .SS Environment Whitelist/Blacklist
  22231. .sp
  22232. New in version 2014.7.0.
  22233. .sp
  22234. The \fBgitfs_saltenv_whitelist\fP and
  22235. \fBgitfs_saltenv_blacklist\fP parameters allow for greater control
  22236. over which branches/tags are exposed as fileserver environments. Exact matches,
  22237. globs, and regular expressions are supported, and are evaluated in that order.
  22238. If using a regular expression, \fB^\fP and \fB$\fP must be omitted, and the
  22239. expression must match the entire branch/tag.
  22240. .INDENT 0.0
  22241. .INDENT 3.5
  22242. .sp
  22243. .nf
  22244. .ft C
  22245. gitfs_saltenv_whitelist:
  22246. \- base
  22247. \- v1.*
  22248. \- \(aqmybranch\ed+\(aq
  22249. .ft P
  22250. .fi
  22251. .UNINDENT
  22252. .UNINDENT
  22253. .sp
  22254. \fBNOTE:\fP
  22255. .INDENT 0.0
  22256. .INDENT 3.5
  22257. \fBv1.*\fP, in this example, will match as both a glob and a regular
  22258. expression (though it will have been matched as a glob, since globs are
  22259. evaluated before regular expressions).
  22260. .UNINDENT
  22261. .UNINDENT
  22262. .sp
  22263. The behavior of the blacklist/whitelist will differ depending on which
  22264. combination of the two options is used:
  22265. .INDENT 0.0
  22266. .IP \(bu 2
  22267. If only \fBgitfs_saltenv_whitelist\fP is used, then \fBonly\fP
  22268. branches/tags which match the whitelist will be available as environments
  22269. .IP \(bu 2
  22270. If only \fBgitfs_saltenv_blacklist\fP is used, then the
  22271. branches/tags which match the blacklist will \fBnot\fP be available as
  22272. environments
  22273. .IP \(bu 2
  22274. If both are used, then the branches/tags which match the whitelist, but do
  22275. \fBnot\fP match the blacklist, will be available as environments.
  22276. .UNINDENT
  22277. .SS Authentication
  22278. .SS pygit2
  22279. .sp
  22280. New in version 2014.7.0.
  22281. .sp
  22282. Both HTTPS and SSH authentication are supported as of version 0.20.3, which is
  22283. the earliest version of \fI\%pygit2\fP supported by Salt for gitfs.
  22284. .sp
  22285. \fBNOTE:\fP
  22286. .INDENT 0.0
  22287. .INDENT 3.5
  22288. The examples below make use of per\-remote configuration parameters, a
  22289. feature new to Salt 2014.7.0. More information on these can be found
  22290. \fI\%here\fP\&.
  22291. .UNINDENT
  22292. .UNINDENT
  22293. .SS HTTPS
  22294. .sp
  22295. For HTTPS repositories which require authentication, the username and password
  22296. can be provided like so:
  22297. .INDENT 0.0
  22298. .INDENT 3.5
  22299. .sp
  22300. .nf
  22301. .ft C
  22302. gitfs_remotes:
  22303. \- https://domain.tld/myrepo.git:
  22304. \- user: git
  22305. \- password: mypassword
  22306. .ft P
  22307. .fi
  22308. .UNINDENT
  22309. .UNINDENT
  22310. .sp
  22311. If the repository is served over HTTP instead of HTTPS, then Salt will by
  22312. default refuse to authenticate to it. This behavior can be overridden by adding
  22313. an \fBinsecure_auth\fP parameter:
  22314. .INDENT 0.0
  22315. .INDENT 3.5
  22316. .sp
  22317. .nf
  22318. .ft C
  22319. gitfs_remotes:
  22320. \- http://domain.tld/insecure_repo.git:
  22321. \- user: git
  22322. \- password: mypassword
  22323. \- insecure_auth: True
  22324. .ft P
  22325. .fi
  22326. .UNINDENT
  22327. .UNINDENT
  22328. .SS SSH
  22329. .sp
  22330. SSH repositories can be configured using the \fBssh://\fP protocol designation,
  22331. or using scp\-like syntax. So, the following two configurations are equivalent:
  22332. .INDENT 0.0
  22333. .IP \(bu 2
  22334. \fBssh://git@github.com/user/repo.git\fP
  22335. .IP \(bu 2
  22336. \fBgit@github.com:user/repo.git\fP
  22337. .UNINDENT
  22338. .sp
  22339. Both \fBgitfs_pubkey\fP and \fBgitfs_privkey\fP (or their
  22340. \fI\%per\-remote counterparts\fP) must be configured in
  22341. order to authenticate to SSH\-based repos. If the private key is protected with
  22342. a passphrase, it can be configured using \fBgitfs_passphrase\fP (or
  22343. simply \fBpassphrase\fP if being configured \fI\%per\-remote\fP). For example:
  22344. .INDENT 0.0
  22345. .INDENT 3.5
  22346. .sp
  22347. .nf
  22348. .ft C
  22349. gitfs_remotes:
  22350. \- git@github.com:user/repo.git:
  22351. \- pubkey: /root/.ssh/id_rsa.pub
  22352. \- privkey: /root/.ssh/id_rsa
  22353. \- passphrase: myawesomepassphrase
  22354. .ft P
  22355. .fi
  22356. .UNINDENT
  22357. .UNINDENT
  22358. .sp
  22359. Finally, the SSH host key must be \fI\%added to the known_hosts file\fP\&.
  22360. .sp
  22361. \fBNOTE:\fP
  22362. .INDENT 0.0
  22363. .INDENT 3.5
  22364. There is a known issue with public\-key SSH authentication to Microsoft
  22365. Visual Studio (VSTS) with pygit2. This is due to a bug or lack of support
  22366. for VSTS in older libssh2 releases. Known working releases include libssh2
  22367. 1.7.0 and later, and known incompatible releases include 1.5.0 and older.
  22368. At the time of this writing, 1.6.0 has not been tested.
  22369. .sp
  22370. Since upgrading libssh2 would require rebuilding many other packages (curl,
  22371. etc.), followed by a rebuild of libgit2 and a reinstall of pygit2, an
  22372. easier workaround for systems with older libssh2 is to use GitPython with a
  22373. passphraseless key for authentication.
  22374. .UNINDENT
  22375. .UNINDENT
  22376. .SS GitPython
  22377. .SS HTTPS
  22378. .sp
  22379. For HTTPS repositories which require authentication, the username and password
  22380. can be configured in one of two ways. The first way is to include them in the
  22381. URL using the format \fBhttps://<user>:<password>@<url>\fP, like so:
  22382. .INDENT 0.0
  22383. .INDENT 3.5
  22384. .sp
  22385. .nf
  22386. .ft C
  22387. gitfs_remotes:
  22388. \- https://git:mypassword@domain.tld/myrepo.git
  22389. .ft P
  22390. .fi
  22391. .UNINDENT
  22392. .UNINDENT
  22393. .sp
  22394. The other way would be to configure the authentication in \fB~/.netrc\fP:
  22395. .INDENT 0.0
  22396. .INDENT 3.5
  22397. .sp
  22398. .nf
  22399. .ft C
  22400. machine domain.tld
  22401. login git
  22402. password mypassword
  22403. .ft P
  22404. .fi
  22405. .UNINDENT
  22406. .UNINDENT
  22407. .sp
  22408. If the repository is served over HTTP instead of HTTPS, then Salt will by
  22409. default refuse to authenticate to it. This behavior can be overridden by adding
  22410. an \fBinsecure_auth\fP parameter:
  22411. .INDENT 0.0
  22412. .INDENT 3.5
  22413. .sp
  22414. .nf
  22415. .ft C
  22416. gitfs_remotes:
  22417. \- http://git:mypassword@domain.tld/insecure_repo.git:
  22418. \- insecure_auth: True
  22419. .ft P
  22420. .fi
  22421. .UNINDENT
  22422. .UNINDENT
  22423. .SS SSH
  22424. .sp
  22425. Only passphrase\-less SSH public key authentication is supported using
  22426. GitPython. \fBThe auth parameters (pubkey, privkey, etc.) shown in the pygit2
  22427. authentication examples above do not work with GitPython.\fP
  22428. .INDENT 0.0
  22429. .INDENT 3.5
  22430. .sp
  22431. .nf
  22432. .ft C
  22433. gitfs_remotes:
  22434. \- ssh://git@github.com/example/salt\-states.git
  22435. .ft P
  22436. .fi
  22437. .UNINDENT
  22438. .UNINDENT
  22439. .sp
  22440. Since \fI\%GitPython\fP wraps the git CLI, the private key must be located in
  22441. \fB~/.ssh/id_rsa\fP for the user under which the Master is running, and should
  22442. have permissions of \fB0600\fP\&. Also, in the absence of a user in the repo URL,
  22443. \fI\%GitPython\fP will (just as SSH does) attempt to login as the current user (in
  22444. other words, the user under which the Master is running, usually \fBroot\fP).
  22445. .sp
  22446. If a key needs to be used, then \fB~/.ssh/config\fP can be configured to use
  22447. the desired key. Information on how to do this can be found by viewing the
  22448. manpage for \fBssh_config\fP\&. Here\(aqs an example entry which can be added to the
  22449. \fB~/.ssh/config\fP to use an alternate key for gitfs:
  22450. .INDENT 0.0
  22451. .INDENT 3.5
  22452. .sp
  22453. .nf
  22454. .ft C
  22455. Host github.com
  22456. IdentityFile /root/.ssh/id_rsa_gitfs
  22457. .ft P
  22458. .fi
  22459. .UNINDENT
  22460. .UNINDENT
  22461. .sp
  22462. The \fBHost\fP parameter should be a hostname (or hostname glob) that matches the
  22463. domain name of the git repository.
  22464. .sp
  22465. It is also necessary to \fI\%add the SSH host key to the known_hosts file\fP\&. The exception to this would be if strict host key
  22466. checking is disabled, which can be done by adding \fBStrictHostKeyChecking no\fP
  22467. to the entry in \fB~/.ssh/config\fP
  22468. .INDENT 0.0
  22469. .INDENT 3.5
  22470. .sp
  22471. .nf
  22472. .ft C
  22473. Host github.com
  22474. IdentityFile /root/.ssh/id_rsa_gitfs
  22475. StrictHostKeyChecking no
  22476. .ft P
  22477. .fi
  22478. .UNINDENT
  22479. .UNINDENT
  22480. .sp
  22481. However, this is generally regarded as insecure, and is not recommended.
  22482. .SS Adding the SSH Host Key to the known_hosts File
  22483. .sp
  22484. To use SSH authentication, it is necessary to have the remote repository\(aqs SSH
  22485. host key in the \fB~/.ssh/known_hosts\fP file. If the master is also a minion,
  22486. this can be done using the \fBssh.set_known_host\fP function:
  22487. .INDENT 0.0
  22488. .INDENT 3.5
  22489. .sp
  22490. .nf
  22491. .ft C
  22492. # salt mymaster ssh.set_known_host user=root hostname=github.com
  22493. mymaster:
  22494. \-\-\-\-\-\-\-\-\-\-
  22495. new:
  22496. \-\-\-\-\-\-\-\-\-\-
  22497. enc:
  22498. ssh\-rsa
  22499. fingerprint:
  22500. 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
  22501. hostname:
  22502. |1|OiefWWqOD4kwO3BhoIGa0loR5AA=|BIXVtmcTbPER+68HvXmceodDcfI=
  22503. key:
  22504. AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
  22505. old:
  22506. None
  22507. status:
  22508. updated
  22509. .ft P
  22510. .fi
  22511. .UNINDENT
  22512. .UNINDENT
  22513. .sp
  22514. If not, then the easiest way to add the key is to su to the user (usually
  22515. \fBroot\fP) under which the salt\-master runs and attempt to login to the
  22516. server via SSH:
  22517. .INDENT 0.0
  22518. .INDENT 3.5
  22519. .sp
  22520. .nf
  22521. .ft C
  22522. $ su \-
  22523. Password:
  22524. # ssh github.com
  22525. The authenticity of host \(aqgithub.com (192.30.252.128)\(aq can\(aqt be established.
  22526. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
  22527. Are you sure you want to continue connecting (yes/no)? yes
  22528. Warning: Permanently added \(aqgithub.com,192.30.252.128\(aq (RSA) to the list of known hosts.
  22529. Permission denied (publickey).
  22530. .ft P
  22531. .fi
  22532. .UNINDENT
  22533. .UNINDENT
  22534. .sp
  22535. It doesn\(aqt matter if the login was successful, as answering \fByes\fP will write
  22536. the fingerprint to the known_hosts file.
  22537. .SS Verifying the Fingerprint
  22538. .sp
  22539. To verify that the correct fingerprint was added, it is a good idea to look it
  22540. up. One way to do this is to use \fBnmap\fP:
  22541. .INDENT 0.0
  22542. .INDENT 3.5
  22543. .sp
  22544. .nf
  22545. .ft C
  22546. $ nmap \-p 22 github.com \-\-script ssh\-hostkey
  22547. Starting Nmap 5.51 ( http://nmap.org ) at 2014\-08\-18 17:47 CDT
  22548. Nmap scan report for github.com (192.30.252.129)
  22549. Host is up (0.17s latency).
  22550. Not shown: 996 filtered ports
  22551. PORT STATE SERVICE
  22552. 22/tcp open ssh
  22553. | ssh\-hostkey: 1024 ad:1c:08:a4:40:e3:6f:9c:f5:66:26:5d:4b:33:5d:8c (DSA)
  22554. |_2048 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48 (RSA)
  22555. 80/tcp open http
  22556. 443/tcp open https
  22557. 9418/tcp open git
  22558. Nmap done: 1 IP address (1 host up) scanned in 28.78 seconds
  22559. .ft P
  22560. .fi
  22561. .UNINDENT
  22562. .UNINDENT
  22563. .sp
  22564. Another way is to check one\(aqs own \fBknown_hosts\fP file, using this one\-liner:
  22565. .INDENT 0.0
  22566. .INDENT 3.5
  22567. .sp
  22568. .nf
  22569. .ft C
  22570. $ ssh\-keygen \-l \-f /dev/stdin <<<\(gassh\-keyscan github.com 2>/dev/null\(ga | awk \(aq{print $2}\(aq
  22571. 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
  22572. .ft P
  22573. .fi
  22574. .UNINDENT
  22575. .UNINDENT
  22576. .sp
  22577. \fBWARNING:\fP
  22578. .INDENT 0.0
  22579. .INDENT 3.5
  22580. AWS tracks usage of nmap and may flag it as abuse. On AWS hosts, the
  22581. \fBssh\-keygen\fP method is recommended for host key verification.
  22582. .UNINDENT
  22583. .UNINDENT
  22584. .sp
  22585. \fBNOTE:\fP
  22586. .INDENT 0.0
  22587. .INDENT 3.5
  22588. As of \fI\%OpenSSH 6.8\fP the SSH fingerprint is now shown as a base64\-encoded
  22589. SHA256 checksum of the host key. So, instead of the fingerprint looking
  22590. like \fB16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48\fP, it would look
  22591. like \fBSHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8\fP\&.
  22592. .UNINDENT
  22593. .UNINDENT
  22594. .SS Refreshing gitfs Upon Push
  22595. .sp
  22596. By default, Salt updates the remote fileserver backends every 60 seconds.
  22597. However, if it is desirable to refresh quicker than that, the Reactor
  22598. System can be used to signal the master to update the fileserver on
  22599. each push, provided that the git server is also a Salt minion. There are three
  22600. steps to this process:
  22601. .INDENT 0.0
  22602. .IP 1. 3
  22603. On the master, create a file \fB/srv/reactor/update_fileserver.sls\fP, with
  22604. the following contents:
  22605. .INDENT 3.0
  22606. .INDENT 3.5
  22607. .sp
  22608. .nf
  22609. .ft C
  22610. update_fileserver:
  22611. runner.fileserver.update
  22612. .ft P
  22613. .fi
  22614. .UNINDENT
  22615. .UNINDENT
  22616. .IP 2. 3
  22617. Add the following reactor configuration to the master config file:
  22618. .INDENT 3.0
  22619. .INDENT 3.5
  22620. .sp
  22621. .nf
  22622. .ft C
  22623. reactor:
  22624. \- \(aqsalt/fileserver/gitfs/update\(aq:
  22625. \- /srv/reactor/update_fileserver.sls
  22626. .ft P
  22627. .fi
  22628. .UNINDENT
  22629. .UNINDENT
  22630. .IP 3. 3
  22631. On the git server, add a \fI\%post\-receive hook\fP
  22632. .INDENT 3.0
  22633. .IP a. 3
  22634. If the user executing \fIgit push\fP is the same as the minion user, use the following hook:
  22635. .UNINDENT
  22636. .INDENT 3.0
  22637. .INDENT 3.5
  22638. .INDENT 0.0
  22639. .INDENT 3.5
  22640. .sp
  22641. .nf
  22642. .ft C
  22643. #!/usr/bin/env sh
  22644. salt\-call event.fire_master update salt/fileserver/gitfs/update
  22645. .ft P
  22646. .fi
  22647. .UNINDENT
  22648. .UNINDENT
  22649. .UNINDENT
  22650. .UNINDENT
  22651. .INDENT 3.0
  22652. .IP b. 3
  22653. To enable other git users to run the hook after a \fIpush\fP, use sudo in the hook script:
  22654. .UNINDENT
  22655. .INDENT 3.0
  22656. .INDENT 3.5
  22657. .INDENT 0.0
  22658. .INDENT 3.5
  22659. .sp
  22660. .nf
  22661. .ft C
  22662. #!/usr/bin/env sh
  22663. sudo \-u root salt\-call event.fire_master update salt/fileserver/gitfs/update
  22664. .ft P
  22665. .fi
  22666. .UNINDENT
  22667. .UNINDENT
  22668. .UNINDENT
  22669. .UNINDENT
  22670. .IP 4. 3
  22671. If using sudo in the git hook (above), the policy must be changed to permit
  22672. all users to fire the event. Add the following policy to the sudoers file
  22673. on the git server.
  22674. .INDENT 3.0
  22675. .INDENT 3.5
  22676. .sp
  22677. .nf
  22678. .ft C
  22679. Cmnd_Alias SALT_GIT_HOOK = /bin/salt\-call event.fire_master update salt/fileserver/gitfs/update
  22680. Defaults!SALT_GIT_HOOK !requiretty
  22681. ALL ALL=(root) NOPASSWD: SALT_GIT_HOOK
  22682. .ft P
  22683. .fi
  22684. .UNINDENT
  22685. .UNINDENT
  22686. .UNINDENT
  22687. .sp
  22688. The \fBupdate\fP argument right after \fBevent.fire_master\fP in this example can really be anything, as it
  22689. represents the data being passed in the event, and the passed data is ignored
  22690. by this reactor.
  22691. .sp
  22692. Similarly, the tag name \fBsalt/fileserver/gitfs/update\fP can be replaced by
  22693. anything, so long as the usage is consistent.
  22694. .sp
  22695. The \fBroot\fP user name in the hook script and sudo policy should be changed to
  22696. match the user under which the minion is running.
  22697. .SS Using Git as an External Pillar Source
  22698. .sp
  22699. The git external pillar (a.k.a. git_pillar) has been rewritten for the 2015.8.0
  22700. release. This rewrite brings with it \fI\%pygit2\fP support (allowing for access to
  22701. authenticated repositories), as well as more granular support for per\-remote
  22702. configuration. This configuration schema is detailed here\&.
  22703. .SS Why aren\(aqt my custom modules/states/etc. syncing to my Minions?
  22704. .sp
  22705. In versions 0.16.3 and older, when using the \fBgit fileserver backend\fP, certain versions of GitPython may generate errors
  22706. when fetching, which Salt fails to catch. While not fatal to the fetch process,
  22707. these interrupt the fileserver update that takes place before custom types are
  22708. synced, and thus interrupt the sync itself. Try disabling the git fileserver
  22709. backend in the master config, restarting the master, and attempting the sync
  22710. again.
  22711. .sp
  22712. This issue is worked around in Salt 0.16.4 and newer.
  22713. .SS MinionFS Backend Walkthrough
  22714. .sp
  22715. New in version 2014.1.0.
  22716. .sp
  22717. \fBNOTE:\fP
  22718. .INDENT 0.0
  22719. .INDENT 3.5
  22720. This walkthrough assumes basic knowledge of Salt and \fBcp.push\fP\&. To get up to speed, check out the
  22721. Salt Walkthrough\&.
  22722. .UNINDENT
  22723. .UNINDENT
  22724. .sp
  22725. Sometimes it is desirable to deploy a file located on one minion to one or more
  22726. other minions. This is supported in Salt, and can be accomplished in two parts:
  22727. .INDENT 0.0
  22728. .IP 1. 3
  22729. Minion support for pushing files to the master (using \fBcp.push\fP)
  22730. .IP 2. 3
  22731. The \fBminionfs\fP fileserver backend
  22732. .UNINDENT
  22733. .sp
  22734. This walkthrough will show how to use both of these features.
  22735. .SS Enabling File Push
  22736. .sp
  22737. To set the master to accept files pushed from minions, the
  22738. \fBfile_recv\fP option in the master config file must be set to
  22739. \fBTrue\fP (the default is \fBFalse\fP).
  22740. .INDENT 0.0
  22741. .INDENT 3.5
  22742. .sp
  22743. .nf
  22744. .ft C
  22745. file_recv: True
  22746. .ft P
  22747. .fi
  22748. .UNINDENT
  22749. .UNINDENT
  22750. .sp
  22751. \fBNOTE:\fP
  22752. .INDENT 0.0
  22753. .INDENT 3.5
  22754. This change requires a restart of the salt\-master service.
  22755. .UNINDENT
  22756. .UNINDENT
  22757. .SS Pushing Files
  22758. .sp
  22759. Once this has been done, files can be pushed to the master using the
  22760. \fBcp.push\fP function:
  22761. .INDENT 0.0
  22762. .INDENT 3.5
  22763. .sp
  22764. .nf
  22765. .ft C
  22766. salt \(aqminion\-id\(aq cp.push /path/to/the/file
  22767. .ft P
  22768. .fi
  22769. .UNINDENT
  22770. .UNINDENT
  22771. .sp
  22772. This command will store the file in a subdirectory named \fBminions\fP under the
  22773. master\(aqs \fBcachedir\fP\&. On most masters, this path will be
  22774. \fB/var/cache/salt/master/minions\fP\&. Within this directory will be one directory
  22775. for each minion which has pushed a file to the master, and underneath that the
  22776. full path to the file on the minion. So, for example, if a minion with an ID of
  22777. \fBdev1\fP pushed a file \fB/var/log/myapp.log\fP to the master, it would be saved
  22778. to \fB/var/cache/salt/master/minions/dev1/var/log/myapp.log\fP\&.
  22779. .SS Serving Pushed Files Using MinionFS
  22780. .sp
  22781. While it is certainly possible to add \fB/var/cache/salt/master/minions\fP to the
  22782. master\(aqs \fBfile_roots\fP and serve these files, it may only be
  22783. desirable to expose files pushed from certain minions. Adding
  22784. \fB/var/cache/salt/master/minions/<minion\-id>\fP for each minion that needs to be
  22785. exposed can be cumbersome and prone to errors.
  22786. .sp
  22787. Enter \fBminionfs\fP\&. This fileserver backend will
  22788. make files pushed using \fBcp.push\fP available to
  22789. the Salt fileserver, and provides an easy mechanism to restrict which minions\(aq
  22790. pushed files are made available.
  22791. .SS Simple Configuration
  22792. .sp
  22793. To use the \fBminionfs\fP backend, add \fBminionfs\fP
  22794. to the list of backends in the \fBfileserver_backend\fP configuration
  22795. option on the master:
  22796. .INDENT 0.0
  22797. .INDENT 3.5
  22798. .sp
  22799. .nf
  22800. .ft C
  22801. file_recv: True
  22802. fileserver_backend:
  22803. \- roots
  22804. \- minionfs
  22805. .ft P
  22806. .fi
  22807. .UNINDENT
  22808. .UNINDENT
  22809. .sp
  22810. \fBNOTE:\fP
  22811. .INDENT 0.0
  22812. .INDENT 3.5
  22813. \fBminion\fP also works here. Prior to the 2018.3.0 release, \fIonly\fP
  22814. \fBminion\fP would work.
  22815. .sp
  22816. Also, as described earlier, \fBfile_recv: True\fP is needed to enable the
  22817. master to receive files pushed from minions. As always, changes to the
  22818. master configuration require a restart of the \fBsalt\-master\fP service.
  22819. .UNINDENT
  22820. .UNINDENT
  22821. .sp
  22822. Files made available via \fBminionfs\fP are by
  22823. default located at \fBsalt://<minion\-id>/path/to/file\fP\&. Think back to the
  22824. earlier example, in which \fBdev1\fP pushed a file \fB/var/log/myapp.log\fP to the
  22825. master. With \fBminionfs\fP enabled, this file
  22826. would be addressable in Salt at \fBsalt://dev1/var/log/myapp.log\fP\&.
  22827. .sp
  22828. If many minions have pushed to the master, this will result in many directories
  22829. in the root of the Salt fileserver. For this reason, it is recommended to use
  22830. the \fBminionfs_mountpoint\fP config option to organize these files
  22831. underneath a subdirectory:
  22832. .INDENT 0.0
  22833. .INDENT 3.5
  22834. .sp
  22835. .nf
  22836. .ft C
  22837. minionfs_mountpoint: salt://minionfs
  22838. .ft P
  22839. .fi
  22840. .UNINDENT
  22841. .UNINDENT
  22842. .sp
  22843. Using the above mountpoint, the file in the example would be located at
  22844. \fBsalt://minionfs/dev1/var/log/myapp.log\fP\&.
  22845. .SS Restricting Certain Minions\(aq Files from Being Available Via MinionFS
  22846. .sp
  22847. A whitelist and blacklist can be used to restrict the minions whose pushed
  22848. files are available via \fBminionfs\fP\&. These lists
  22849. can be managed using the \fBminionfs_whitelist\fP and
  22850. \fBminionfs_blacklist\fP config options. Click the links for both of
  22851. them for a detailed explanation of how to use them.
  22852. .sp
  22853. A more complex configuration example, which uses both a whitelist and
  22854. blacklist, can be found below:
  22855. .INDENT 0.0
  22856. .INDENT 3.5
  22857. .sp
  22858. .nf
  22859. .ft C
  22860. file_recv: True
  22861. fileserver_backend:
  22862. \- roots
  22863. \- minionfs
  22864. minionfs_mountpoint: salt://minionfs
  22865. minionfs_whitelist:
  22866. \- host04
  22867. \- web*
  22868. \- \(aqmail\ed+\e.domain\e.tld\(aq
  22869. minionfs_blacklist:
  22870. \- web21
  22871. .ft P
  22872. .fi
  22873. .UNINDENT
  22874. .UNINDENT
  22875. .SS Potential Concerns
  22876. .INDENT 0.0
  22877. .IP \(bu 2
  22878. There is no access control in place to restrict which minions have access to
  22879. files served up by \fBminionfs\fP\&. All minions
  22880. will have access to these files.
  22881. .IP \(bu 2
  22882. Unless the \fBminionfs_whitelist\fP and/or
  22883. \fBminionfs_blacklist\fP config options are used, all minions which
  22884. push files to the master will have their files made available via
  22885. \fBminionfs\fP\&.
  22886. .UNINDENT
  22887. .SS Salt Package Manager
  22888. .sp
  22889. The Salt Package Manager, or SPM, enables Salt formulas to be packaged to simplify
  22890. distribution to Salt masters. The design of SPM was influenced by other existing packaging
  22891. systems including RPM, Yum, and Pacman.
  22892. [image]
  22893. .sp
  22894. \fBNOTE:\fP
  22895. .INDENT 0.0
  22896. .INDENT 3.5
  22897. The previous diagram shows each SPM component as a different system, but this
  22898. is not required. You can build packages and host the SPM repo on
  22899. a single Salt master if you\(aqd like.
  22900. .UNINDENT
  22901. .UNINDENT
  22902. .sp
  22903. \fBPackaging System\fP
  22904. .sp
  22905. The packaging system is used to package the state, pillar, file templates, and other
  22906. files used by your formula into a single file. After a formula package is
  22907. created, it is copied to the Repository System where it is made available to
  22908. Salt masters.
  22909. .sp
  22910. See Building SPM Packages
  22911. .sp
  22912. \fBRepo System\fP
  22913. .sp
  22914. The Repo system stores the SPM package and metadata files and makes them
  22915. available to Salt masters via http(s), ftp, or file URLs. SPM repositories can be
  22916. hosted on a Salt Master, a Salt Minion, or on another system.
  22917. .sp
  22918. See Distributing SPM Packages
  22919. .sp
  22920. \fBSalt Master\fP
  22921. .sp
  22922. SPM provides Salt master settings that let you configure the URL of one or more
  22923. SPM repos. You can then quickly install packages that contain entire formulas
  22924. to your Salt masters using SPM.
  22925. .sp
  22926. See Installing SPM Packages
  22927. .sp
  22928. \fBContents\fP
  22929. .SS Building SPM Packages
  22930. .sp
  22931. The first step when using Salt Package Manager is to build packages for each of
  22932. of the formulas that you want to distribute. Packages can be built on any
  22933. system where you can install Salt.
  22934. .SS Package Build Overview
  22935. .sp
  22936. To build a package, all state, pillar, jinja, and file templates used by your
  22937. formula are assembled into a folder on the build system. These files can be
  22938. cloned from a Git repository, such as those found at the \fI\%saltstack\-formulas\fP organization on GitHub, or copied
  22939. directly to the folder.
  22940. .sp
  22941. The following diagram demonstrates
  22942. a typical formula layout on the build system:
  22943. [image]
  22944. .sp
  22945. In this example, all formula files are placed in a \fBmyapp\-formula\fP folder.
  22946. This is the folder that is targeted by the \fBspm build\fP command when this
  22947. package is built.
  22948. .sp
  22949. Within this folder, pillar data is placed in
  22950. a \fBpillar.example\fP file at the root, and all state, jinja, and template files
  22951. are placed within a subfolder that is named after the application being
  22952. packaged. State files are typically contained within a subfolder, similar to
  22953. how state files are organized in the state tree. Any non\-pillar files
  22954. in your package that are not contained in a subfolder are placed at the root
  22955. of the spm state tree.
  22956. .sp
  22957. Additionally, a FORMULA file is created and placed in the
  22958. root of the folder. This file contains package metadata that is used by SPM.
  22959. .SS Package Installation Overview
  22960. .sp
  22961. When building packages, it is useful to know where files are installed on the
  22962. Salt master. During installation, all files except \fBpillar.example\fP and \fBFORMULA\fP are copied
  22963. directly to the spm state tree on the Salt master (located at
  22964. \fB\esrv\espm\esalt\fP).
  22965. .sp
  22966. If a \fBpillar.example\fP file is present in the root, it is renamed to
  22967. \fB<formula name>.sls.orig\fP and placed in the \fBpillar_path\fP\&.
  22968. [image]
  22969. .sp
  22970. \fBNOTE:\fP
  22971. .INDENT 0.0
  22972. .INDENT 3.5
  22973. Even though the pillar data file is copied to the pillar root, you still
  22974. need to manually assign this pillar data to systems using the pillar top
  22975. file. This file can also be duplicated and renamed so the \fB\&.orig\fP
  22976. version is left intact in case you need to restore it later.
  22977. .UNINDENT
  22978. .UNINDENT
  22979. .SS Building an SPM Formula Package
  22980. .INDENT 0.0
  22981. .IP 1. 3
  22982. Assemble formula files in a folder on the build system.
  22983. .IP 2. 3
  22984. Create a FORMULA file and place it in the root of the package folder.
  22985. .IP 3. 3
  22986. Run \fBspm build <folder name>\fP\&. The package is built and placed in the \fB/srv/spm_build\fP folder.
  22987. .INDENT 3.0
  22988. .INDENT 3.5
  22989. .sp
  22990. .nf
  22991. .ft C
  22992. spm build /path/to/salt\-packages\-source/myapp\-formula
  22993. .ft P
  22994. .fi
  22995. .UNINDENT
  22996. .UNINDENT
  22997. .IP 4. 3
  22998. Copy the \fB\&.spm\fP file to a folder on the repository system\&.
  22999. .UNINDENT
  23000. .SS Types of Packages
  23001. .sp
  23002. SPM supports different types of packages. The function of each package
  23003. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23004. considered to be Salt States (the most common type of formula). Packages which
  23005. end in \fB\-conf\fP contain configuration which is to be placed in the
  23006. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23007. treated as if they have a \fB\-formula\fP name.
  23008. .SS formula
  23009. .sp
  23010. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23011. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23012. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23013. by default).
  23014. .SS reactor
  23015. .sp
  23016. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23017. directory.
  23018. .SS conf
  23019. .sp
  23020. The files in this type of package are configuration files for Salt, which
  23021. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23022. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23023. type of package).
  23024. .SS Technical Information
  23025. .sp
  23026. Packages are built using BZ2\-compressed tarballs. By default, the package
  23027. database is stored using the \fBsqlite3\fP driver (see Loader Modules below).
  23028. .sp
  23029. Support for these are built into Python, and so no external dependencies are
  23030. needed.
  23031. .sp
  23032. All other files belonging to SPM use YAML, for portability and ease of use and
  23033. maintainability.
  23034. .SS SPM\-Specific Loader Modules
  23035. .sp
  23036. SPM was designed to behave like traditional package managers, which apply files
  23037. to the filesystem and store package metadata in a local database. However,
  23038. because modern infrastructures often extend beyond those use cases, certain
  23039. parts of SPM have been broken out into their own set of modules.
  23040. .SS Package Database
  23041. .sp
  23042. By default, the package database is stored using the \fBsqlite3\fP module. This
  23043. module was chosen because support for SQLite3 is built into Python itself.
  23044. .sp
  23045. Please see the SPM Development Guide for information on creating new modules
  23046. for package database management.
  23047. .SS Package Files
  23048. .sp
  23049. By default, package files are installed using the \fBlocal\fP module. This module
  23050. applies files to the local filesystem, on the machine that the package is
  23051. installed on.
  23052. .sp
  23053. Please see the SPM Development Guide for information
  23054. on creating new modules for package file management.
  23055. .SS Distributing SPM Packages
  23056. .sp
  23057. SPM packages can be distributed to Salt masters over HTTP(S), FTP, or through the
  23058. file system. The SPM repo can be hosted on any system where you can install
  23059. Salt. Salt is installed so you can run the \fBspm create_repo\fP command when you
  23060. update or add a package to the repo. SPM repos do not require the salt\-master,
  23061. salt\-minion, or any other process running on the system.
  23062. .sp
  23063. \fBNOTE:\fP
  23064. .INDENT 0.0
  23065. .INDENT 3.5
  23066. If you are hosting the SPM repo on a system where you can not or do not
  23067. want to install Salt, you can run the \fBspm create_repo\fP command on the
  23068. build system and then copy the packages and the generated \fBSPM\-METADATA\fP
  23069. file to the repo. You can also install SPM files directly on a Salt
  23070. master, bypassing the repository completely.
  23071. .UNINDENT
  23072. .UNINDENT
  23073. .SS Setting up a Package Repository
  23074. .sp
  23075. After packages are built, the generated SPM files are placed in the
  23076. \fBsrv/spm_build\fP folder.
  23077. .sp
  23078. Where you place the built SPM files on your repository server depends on how
  23079. you plan to make them available to your Salt masters.
  23080. .sp
  23081. You can share the \fBsrv/spm_build\fP folder on the network, or copy the files to
  23082. your FTP or Web server.
  23083. .SS Adding a Package to the repository
  23084. .sp
  23085. New packages are added by simply copying the SPM file to the repo folder, and then
  23086. generating repo metadata.
  23087. .SS Generate Repo Metadata
  23088. .sp
  23089. Each time you update or add an SPM package to your repository, issue an \fBspm
  23090. create_repo\fP command:
  23091. .INDENT 0.0
  23092. .INDENT 3.5
  23093. .sp
  23094. .nf
  23095. .ft C
  23096. spm create_repo /srv/spm_build
  23097. .ft P
  23098. .fi
  23099. .UNINDENT
  23100. .UNINDENT
  23101. .sp
  23102. SPM generates the repository metadata for all of the packages in that directory
  23103. and places it in an \fBSPM\-METADATA\fP file at the folder root. This command is
  23104. used even if repository metadata already exists in that directory.
  23105. .SS Installing SPM Packages
  23106. .sp
  23107. SPM packages are installed to your Salt master, where they are available to Salt minions
  23108. using all of Salt\(aqs package management functions.
  23109. .SS Configuring Remote Repositories
  23110. .sp
  23111. Before SPM can use a repository, two things need to happen. First, the Salt master needs to
  23112. know where the repository is through a configuration process. Then it needs to pull down the repository
  23113. metadata.
  23114. .SS Repository Configuration Files
  23115. .sp
  23116. Repositories are configured by adding each of them to the
  23117. \fB/etc/salt/spm.repos.d/spm.repo\fP file on each Salt master. This file contains
  23118. the name of the repository, and the link to the repository:
  23119. .INDENT 0.0
  23120. .INDENT 3.5
  23121. .sp
  23122. .nf
  23123. .ft C
  23124. my_repo:
  23125. url: https://spm.example.com/
  23126. .ft P
  23127. .fi
  23128. .UNINDENT
  23129. .UNINDENT
  23130. .sp
  23131. For HTTP/HTTPS Basic authorization you can define credentials:
  23132. .INDENT 0.0
  23133. .INDENT 3.5
  23134. .sp
  23135. .nf
  23136. .ft C
  23137. my_repo:
  23138. url: https://spm.example.com/
  23139. username: user
  23140. password: pass
  23141. .ft P
  23142. .fi
  23143. .UNINDENT
  23144. .UNINDENT
  23145. .sp
  23146. Beware of unauthorized access to this file, please set at least 0640 permissions for this configuration file:
  23147. .sp
  23148. The URL can use \fBhttp\fP, \fBhttps\fP, \fBftp\fP, or \fBfile\fP\&.
  23149. .INDENT 0.0
  23150. .INDENT 3.5
  23151. .sp
  23152. .nf
  23153. .ft C
  23154. my_repo:
  23155. url: file:///srv/spm_build
  23156. .ft P
  23157. .fi
  23158. .UNINDENT
  23159. .UNINDENT
  23160. .SS Updating Local Repository Metadata
  23161. .sp
  23162. After the repository is configured on the Salt master, repository metadata is
  23163. downloaded using the \fBspm update_repo\fP command:
  23164. .INDENT 0.0
  23165. .INDENT 3.5
  23166. .sp
  23167. .nf
  23168. .ft C
  23169. spm update_repo
  23170. .ft P
  23171. .fi
  23172. .UNINDENT
  23173. .UNINDENT
  23174. .sp
  23175. \fBNOTE:\fP
  23176. .INDENT 0.0
  23177. .INDENT 3.5
  23178. A file for each repo is placed in \fB/var/cache/salt/spm\fP on the Salt master
  23179. after you run the \fIupdate_repo\fP command. If you add a repository and it
  23180. does not seem to be showing up, check this path to verify that the
  23181. repository was found.
  23182. .UNINDENT
  23183. .UNINDENT
  23184. .SS Update File Roots
  23185. .sp
  23186. SPM packages are installed to the \fBsrv/spm/salt\fP folder on your Salt master.
  23187. This path needs to be added to the file roots on your Salt master
  23188. manually.
  23189. .INDENT 0.0
  23190. .INDENT 3.5
  23191. .sp
  23192. .nf
  23193. .ft C
  23194. file_roots:
  23195. base:
  23196. 1. /srv/salt
  23197. 2. /srv/spm/salt
  23198. .ft P
  23199. .fi
  23200. .UNINDENT
  23201. .UNINDENT
  23202. .sp
  23203. Restart the salt\-master service after updating the \fBfile_roots\fP setting.
  23204. .SS Installing Packages
  23205. .sp
  23206. To install a package, use the \fBspm install\fP command:
  23207. .INDENT 0.0
  23208. .INDENT 3.5
  23209. .sp
  23210. .nf
  23211. .ft C
  23212. spm install apache
  23213. .ft P
  23214. .fi
  23215. .UNINDENT
  23216. .UNINDENT
  23217. .sp
  23218. \fBWARNING:\fP
  23219. .INDENT 0.0
  23220. .INDENT 3.5
  23221. Currently, SPM does not check to see if files are already in place before
  23222. installing them. That means that existing files will be overwritten without
  23223. warning.
  23224. .UNINDENT
  23225. .UNINDENT
  23226. .SS Installing directly from an SPM file
  23227. .sp
  23228. You can also install SPM packages using a local SPM file using the \fBspm local
  23229. install\fP command:
  23230. .INDENT 0.0
  23231. .INDENT 3.5
  23232. .sp
  23233. .nf
  23234. .ft C
  23235. spm local install /srv/spm/apache\-201506\-1.spm
  23236. .ft P
  23237. .fi
  23238. .UNINDENT
  23239. .UNINDENT
  23240. .sp
  23241. An SPM repository is not required when using \fIspm local install\fP\&.
  23242. .SS Pillars
  23243. .sp
  23244. If an installed package includes Pillar data, be sure to target the installed
  23245. pillar to the necessary systems using the pillar Top file.
  23246. .SS Removing Packages
  23247. .sp
  23248. Packages may be removed after they are installed using the \fBspm remove\fP
  23249. command.
  23250. .INDENT 0.0
  23251. .INDENT 3.5
  23252. .sp
  23253. .nf
  23254. .ft C
  23255. spm remove apache
  23256. .ft P
  23257. .fi
  23258. .UNINDENT
  23259. .UNINDENT
  23260. .sp
  23261. If files have been modified, they will not be removed. Empty directories will
  23262. also be removed.
  23263. .SS SPM Configuration
  23264. .sp
  23265. There are a number of options that are specific to SPM. They may be configured
  23266. in the \fBmaster\fP configuration file, or in SPM\(aqs own \fBspm\fP configuration
  23267. file (normally located at \fB/etc/salt/spm\fP). If configured in both places, the
  23268. \fBspm\fP file takes precedence. In general, these values will not need to be
  23269. changed from the defaults.
  23270. .SS spm_logfile
  23271. .sp
  23272. Default: \fB/var/log/salt/spm\fP
  23273. .sp
  23274. Where SPM logs messages.
  23275. .SS spm_repos_config
  23276. .sp
  23277. Default: \fB/etc/salt/spm.repos\fP
  23278. .sp
  23279. SPM repositories are configured with this file. There is also a directory which
  23280. corresponds to it, which ends in \fB\&.d\fP\&. For instance, if the filename is
  23281. \fB/etc/salt/spm.repos\fP, the directory will be \fB/etc/salt/spm.repos.d/\fP\&.
  23282. .SS spm_cache_dir
  23283. .sp
  23284. Default: \fB/var/cache/salt/spm\fP
  23285. .sp
  23286. When SPM updates package repository metadata and downloads packaged, they will
  23287. be placed in this directory. The package database, normally called
  23288. \fBpackages.db\fP, also lives in this directory.
  23289. .SS spm_db
  23290. .sp
  23291. Default: \fB/var/cache/salt/spm/packages.db\fP
  23292. .sp
  23293. The location and name of the package database. This database stores the names of
  23294. all of the SPM packages installed on the system, the files that belong to them,
  23295. and the metadata for those files.
  23296. .SS spm_build_dir
  23297. .sp
  23298. Default: \fB/srv/spm_build\fP
  23299. .sp
  23300. When packages are built, they will be placed in this directory.
  23301. .SS spm_build_exclude
  23302. .sp
  23303. Default: \fB[\(aq.git\(aq]\fP
  23304. .sp
  23305. When SPM builds a package, it normally adds all files in the formula directory
  23306. to the package. Files listed here will be excluded from that package. This
  23307. option requires a list to be specified.
  23308. .INDENT 0.0
  23309. .INDENT 3.5
  23310. .sp
  23311. .nf
  23312. .ft C
  23313. spm_build_exclude:
  23314. \- .git
  23315. \- .svn
  23316. .ft P
  23317. .fi
  23318. .UNINDENT
  23319. .UNINDENT
  23320. .SS Types of Packages
  23321. .sp
  23322. SPM supports different types of formula packages. The function of each package
  23323. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23324. considered to be Salt States (the most common type of formula). Packages which
  23325. end in \fB\-conf\fP contain configuration which is to be placed in the
  23326. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23327. treated as if they have a \fB\-formula\fP name.
  23328. .SS formula
  23329. .sp
  23330. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23331. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23332. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23333. by default).
  23334. .SS reactor
  23335. .sp
  23336. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23337. directory.
  23338. .SS conf
  23339. .sp
  23340. The files in this type of package are configuration files for Salt, which
  23341. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23342. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23343. type of package).
  23344. .SS FORMULA File
  23345. .sp
  23346. In addition to the formula itself, a \fBFORMULA\fP file must exist which
  23347. describes the package. An example of this file is:
  23348. .INDENT 0.0
  23349. .INDENT 3.5
  23350. .sp
  23351. .nf
  23352. .ft C
  23353. name: apache
  23354. os: RedHat, Debian, Ubuntu, SUSE, FreeBSD
  23355. os_family: RedHat, Debian, Suse, FreeBSD
  23356. version: 201506
  23357. release: 2
  23358. summary: Formula for installing Apache
  23359. description: Formula for installing Apache
  23360. .ft P
  23361. .fi
  23362. .UNINDENT
  23363. .UNINDENT
  23364. .SS Required Fields
  23365. .sp
  23366. This file must contain at least the following fields:
  23367. .SS name
  23368. .sp
  23369. The name of the package, as it will appear in the package filename, in the
  23370. repository metadata, and the package database. Even if the source formula has
  23371. \fB\-formula\fP in its name, this name should probably not include that. For
  23372. instance, when packaging the \fBapache\-formula\fP, the name should be set to
  23373. \fBapache\fP\&.
  23374. .SS os
  23375. .sp
  23376. The value of the \fBos\fP grain that this formula supports. This is used to
  23377. help users know which operating systems can support this package.
  23378. .SS os_family
  23379. .sp
  23380. The value of the \fBos_family\fP grain that this formula supports. This is used to
  23381. help users know which operating system families can support this package.
  23382. .SS version
  23383. .sp
  23384. The version of the package. While it is up to the organization that manages this
  23385. package, it is suggested that this version is specified in a \fBYYYYMM\fP format.
  23386. For instance, if this version was released in June 2015, the package version
  23387. should be \fB201506\fP\&. If multiple releases are made in a month, the \fBrelease\fP
  23388. field should be used.
  23389. .SS minimum_version
  23390. .sp
  23391. Minimum recommended version of Salt to use this formula. Not currently enforced.
  23392. .SS release
  23393. .sp
  23394. This field refers primarily to a release of a version, but also to multiple
  23395. versions within a month. In general, if a version has been made public, and
  23396. immediate updates need to be made to it, this field should also be updated.
  23397. .SS summary
  23398. .sp
  23399. A one\-line description of the package.
  23400. .SS description
  23401. .sp
  23402. A more detailed description of the package which can contain more than one line.
  23403. .SS Optional Fields
  23404. .sp
  23405. The following fields may also be present.
  23406. .SS top_level_dir
  23407. .sp
  23408. This field is optional, but highly recommended. If it is not specified, the
  23409. package name will be used.
  23410. .sp
  23411. Formula repositories typically do not store \fB\&.sls\fP files in the root of the
  23412. repository; instead they are stored in a subdirectory. For instance, an
  23413. \fBapache\-formula\fP repository would contain a directory called \fBapache\fP, which
  23414. would contain an \fBinit.sls\fP, plus a number of other related files. In this
  23415. instance, the \fBtop_level_dir\fP should be set to \fBapache\fP\&.
  23416. .sp
  23417. Files outside the \fBtop_level_dir\fP, such as \fBREADME.rst\fP, \fBFORMULA\fP, and
  23418. \fBLICENSE\fP will not be installed. The exceptions to this rule are files that
  23419. are already treated specially, such as \fBpillar.example\fP and \fB_modules/\fP\&.
  23420. .SS dependencies
  23421. .sp
  23422. A comma\-separated list of packages that must be installed along with this
  23423. package. When this package is installed, SPM will attempt to discover and
  23424. install these packages as well. If it is unable to, then it will refuse to
  23425. install this package.
  23426. .sp
  23427. This is useful for creating packages which tie together other packages. For
  23428. instance, a package called wordpress\-mariadb\-apache would depend upon
  23429. wordpress, mariadb, and apache.
  23430. .SS optional
  23431. .sp
  23432. A comma\-separated list of packages which are related to this package, but are
  23433. neither required nor necessarily recommended. This list is displayed in an
  23434. informational message when the package is installed to SPM.
  23435. .SS recommended
  23436. .sp
  23437. A comma\-separated list of optional packages that are recommended to be
  23438. installed with the package. This list is displayed in an informational message
  23439. when the package is installed to SPM.
  23440. .SS files
  23441. .sp
  23442. A files section can be added, to specify a list of files to add to the SPM.
  23443. Such a section might look like:
  23444. .INDENT 0.0
  23445. .INDENT 3.5
  23446. .sp
  23447. .nf
  23448. .ft C
  23449. files:
  23450. \- _pillar
  23451. \- FORMULA
  23452. \- _runners
  23453. \- d|mymodule/index.rst
  23454. \- r|README.rst
  23455. .ft P
  23456. .fi
  23457. .UNINDENT
  23458. .UNINDENT
  23459. .sp
  23460. When \fBfiles\fP are specified, then only those files will be added to the SPM,
  23461. regardless of what other files exist in the directory. They will also be added
  23462. in the order specified, which is useful if you have a need to lay down files in
  23463. a specific order.
  23464. .sp
  23465. As can be seen in the example above, you may also tag files as being a specific
  23466. type. This is done by pre\-pending a filename with its type, followed by a pipe
  23467. (\fB|\fP) character. The above example contains a document file and a readme. The
  23468. available file types are:
  23469. .INDENT 0.0
  23470. .IP \(bu 2
  23471. \fBc\fP: config file
  23472. .IP \(bu 2
  23473. \fBd\fP: documentation file
  23474. .IP \(bu 2
  23475. \fBg\fP: ghost file (i.e. the file contents are not included in the package payload)
  23476. .IP \(bu 2
  23477. \fBl\fP: license file
  23478. .IP \(bu 2
  23479. \fBr\fP: readme file
  23480. .IP \(bu 2
  23481. \fBs\fP: SLS file
  23482. .IP \(bu 2
  23483. \fBm\fP: Salt module
  23484. .UNINDENT
  23485. .sp
  23486. The first 5 of these types (\fBc\fP, \fBd\fP, \fBg\fP, \fBl\fP, \fBr\fP) will be placed in
  23487. \fB/usr/share/salt/spm/\fP by default. This can be changed by setting an
  23488. \fBspm_share_dir\fP value in your \fB/etc/salt/spm\fP configuration file.
  23489. .sp
  23490. The last two types (\fBs\fP and \fBm\fP) are currently ignored, but they are
  23491. reserved for future use.
  23492. .SS Pre and Post States
  23493. .sp
  23494. It is possible to run Salt states before and after installing a package by
  23495. using pre and post states. The following sections may be declared in a
  23496. \fBFORMULA\fP:
  23497. .INDENT 0.0
  23498. .IP \(bu 2
  23499. \fBpre_local_state\fP
  23500. .IP \(bu 2
  23501. \fBpre_tgt_state\fP
  23502. .IP \(bu 2
  23503. \fBpost_local_state\fP
  23504. .IP \(bu 2
  23505. \fBpost_tgt_state\fP
  23506. .UNINDENT
  23507. .sp
  23508. Sections with \fBpre\fP in their name are evaluated before a package is installed
  23509. and sections with \fBpost\fP are evaluated after a package is installed. \fBlocal\fP
  23510. states are evaluated before \fBtgt\fP states.
  23511. .sp
  23512. Each of these sections needs to be evaluated as text, rather than as YAML.
  23513. Consider the following block:
  23514. .INDENT 0.0
  23515. .INDENT 3.5
  23516. .sp
  23517. .nf
  23518. .ft C
  23519. pre_local_state: >
  23520. echo test > /tmp/spmtest:
  23521. cmd:
  23522. \- run
  23523. .ft P
  23524. .fi
  23525. .UNINDENT
  23526. .UNINDENT
  23527. .sp
  23528. Note that this declaration uses \fB>\fP after \fBpre_local_state\fP\&. This is a YAML
  23529. marker that marks the next multi\-line block as text, including newlines. It is
  23530. important to use this marker whenever declaring \fBpre\fP or \fBpost\fP states, so
  23531. that the text following it can be evaluated properly.
  23532. .SS local States
  23533. .sp
  23534. \fBlocal\fP states are evaluated locally; this is analogous to issuing a state
  23535. run using a \fBsalt\-call \-\-local\fP command. These commands will be issued on the
  23536. local machine running the \fBspm\fP command, whether that machine is a master or
  23537. a minion.
  23538. .sp
  23539. \fBlocal\fP states do not require any special arguments, but they must still use
  23540. the \fB>\fP marker to denote that the state is evaluated as text, not a data
  23541. structure.
  23542. .INDENT 0.0
  23543. .INDENT 3.5
  23544. .sp
  23545. .nf
  23546. .ft C
  23547. pre_local_state: >
  23548. echo test > /tmp/spmtest:
  23549. cmd:
  23550. \- run
  23551. .ft P
  23552. .fi
  23553. .UNINDENT
  23554. .UNINDENT
  23555. .SS tgt States
  23556. .sp
  23557. \fBtgt\fP states are issued against a remote target. This is analogous to issuing
  23558. a state using the \fBsalt\fP command. As such it requires that the machine that
  23559. the \fBspm\fP command is running on is a master.
  23560. .sp
  23561. Because \fBtgt\fP states require that a target be specified, their code blocks
  23562. are a little different. Consider the following state:
  23563. .INDENT 0.0
  23564. .INDENT 3.5
  23565. .sp
  23566. .nf
  23567. .ft C
  23568. pre_tgt_state:
  23569. tgt: \(aq*\(aq
  23570. data: >
  23571. echo test > /tmp/spmtest:
  23572. cmd:
  23573. \- run
  23574. .ft P
  23575. .fi
  23576. .UNINDENT
  23577. .UNINDENT
  23578. .sp
  23579. With \fBtgt\fP states, the state data is placed under a \fBdata\fP section, inside
  23580. the \fB*_tgt_state\fP code block. The target is of course specified as a \fBtgt\fP
  23581. and you may also optionally specify a \fBtgt_type\fP (the default is \fBglob\fP).
  23582. .sp
  23583. You still need to use the \fB>\fP marker, but this time it follows the \fBdata\fP
  23584. line, rather than the \fB*_tgt_state\fP line.
  23585. .SS Templating States
  23586. .sp
  23587. The reason that state data must be evaluated as text rather than a data
  23588. structure is because that state data is first processed through the rendering
  23589. engine, as it would be with a standard state run.
  23590. .sp
  23591. This means that you can use Jinja or any other supported renderer inside of
  23592. Salt. All formula variables are available to the renderer, so you can reference
  23593. \fBFORMULA\fP data inside your state if you need to:
  23594. .INDENT 0.0
  23595. .INDENT 3.5
  23596. .sp
  23597. .nf
  23598. .ft C
  23599. pre_tgt_state:
  23600. tgt: \(aq*\(aq
  23601. data: >
  23602. echo {{ name }} > /tmp/spmtest:
  23603. cmd:
  23604. \- run
  23605. .ft P
  23606. .fi
  23607. .UNINDENT
  23608. .UNINDENT
  23609. .sp
  23610. You may also declare your own variables inside the \fBFORMULA\fP\&. If SPM doesn\(aqt
  23611. recognize them then it will ignore them, so there are no restrictions on
  23612. variable names, outside of avoiding reserved words.
  23613. .sp
  23614. By default the renderer is set to \fBjinja|yaml\fP\&. You may change this by
  23615. changing the \fBrenderer\fP setting in the \fBFORMULA\fP itself.
  23616. .SS Building a Package
  23617. .sp
  23618. Once a \fBFORMULA\fP file has been created, it is placed into the root of the
  23619. formula that is to be turned into a package. The \fBspm build\fP command is
  23620. used to turn that formula into a package:
  23621. .INDENT 0.0
  23622. .INDENT 3.5
  23623. .sp
  23624. .nf
  23625. .ft C
  23626. spm build /path/to/saltstack\-formulas/apache\-formula
  23627. .ft P
  23628. .fi
  23629. .UNINDENT
  23630. .UNINDENT
  23631. .sp
  23632. The resulting file will be placed in the build directory. By default this
  23633. directory is located at \fB/srv/spm/\fP\&.
  23634. .SS Loader Modules
  23635. .sp
  23636. When an execution module is placed in \fB<file_roots>/_modules/\fP on the master,
  23637. it will automatically be synced to minions, the next time a sync operation takes
  23638. place. Other modules are also propagated this way: state modules can be placed
  23639. in \fB_states/\fP, and so on.
  23640. .sp
  23641. When SPM detects a file in a package which resides in one of these directories,
  23642. that directory will be placed in \fB<file_roots>\fP instead of in the formula
  23643. directory with the rest of the files.
  23644. .SS Removing Packages
  23645. .sp
  23646. Packages may be removed once they are installed using the \fBspm remove\fP
  23647. command.
  23648. .INDENT 0.0
  23649. .INDENT 3.5
  23650. .sp
  23651. .nf
  23652. .ft C
  23653. spm remove apache
  23654. .ft P
  23655. .fi
  23656. .UNINDENT
  23657. .UNINDENT
  23658. .sp
  23659. If files have been modified, they will not be removed. Empty directories will
  23660. also be removed.
  23661. .SS Technical Information
  23662. .sp
  23663. Packages are built using BZ2\-compressed tarballs. By default, the package
  23664. database is stored using the \fBsqlite3\fP driver (see Loader Modules below).
  23665. .sp
  23666. Support for these are built into Python, and so no external dependencies are
  23667. needed.
  23668. .sp
  23669. All other files belonging to SPM use YAML, for portability and ease of use and
  23670. maintainability.
  23671. .SS SPM\-Specific Loader Modules
  23672. .sp
  23673. SPM was designed to behave like traditional package managers, which apply files
  23674. to the filesystem and store package metadata in a local database. However,
  23675. because modern infrastructures often extend beyond those use cases, certain
  23676. parts of SPM have been broken out into their own set of modules.
  23677. .SS Package Database
  23678. .sp
  23679. By default, the package database is stored using the \fBsqlite3\fP module. This
  23680. module was chosen because support for SQLite3 is built into Python itself.
  23681. .sp
  23682. Please see the SPM Development Guide for information on creating new modules
  23683. for package database management.
  23684. .SS Package Files
  23685. .sp
  23686. By default, package files are installed using the \fBlocal\fP module. This module
  23687. applies files to the local filesystem, on the machine that the package is
  23688. installed on.
  23689. .sp
  23690. Please see the SPM Development Guide for information
  23691. on creating new modules for package file management.
  23692. .SS Types of Packages
  23693. .sp
  23694. SPM supports different types of formula packages. The function of each package
  23695. is denoted by its name. For instance, packages which end in \fB\-formula\fP are
  23696. considered to be Salt States (the most common type of formula). Packages which
  23697. end in \fB\-conf\fP contain configuration which is to be placed in the
  23698. \fB/etc/salt/\fP directory. Packages which do not contain one of these names are
  23699. treated as if they have a \fB\-formula\fP name.
  23700. .SS formula
  23701. .sp
  23702. By default, most files from this type of package live in the \fB/srv/spm/salt/\fP
  23703. directory. The exception is the \fBpillar.example\fP file, which will be renamed
  23704. to \fB<package_name>.sls\fP and placed in the pillar directory (\fB/srv/spm/pillar/\fP
  23705. by default).
  23706. .SS reactor
  23707. .sp
  23708. By default, files from this type of package live in the \fB/srv/spm/reactor/\fP
  23709. directory.
  23710. .SS conf
  23711. .sp
  23712. The files in this type of package are configuration files for Salt, which
  23713. normally live in the \fB/etc/salt/\fP directory. Configuration files for packages
  23714. other than Salt can and should be handled with a Salt State (using a \fBformula\fP
  23715. type of package).
  23716. .SS SPM Development Guide
  23717. .sp
  23718. This document discusses developing additional code for SPM.
  23719. .SS SPM\-Specific Loader Modules
  23720. .sp
  23721. SPM was designed to behave like traditional package managers, which apply files
  23722. to the filesystem and store package metadata in a local database. However,
  23723. because modern infrastructures often extend beyond those use cases, certain
  23724. parts of SPM have been broken out into their own set of modules.
  23725. .sp
  23726. Each function that accepts arguments has a set of required and optional
  23727. arguments. Take note that SPM will pass all arguments in, and therefore each
  23728. function must accept each of those arguments. However, arguments that are
  23729. marked as required are crucial to SPM\(aqs core functionality, while arguments that
  23730. are marked as optional are provided as a benefit to the module, if it needs to
  23731. use them.
  23732. .SS Package Database
  23733. .sp
  23734. By default, the package database is stored using the \fBsqlite3\fP module. This
  23735. module was chosen because support for SQLite3 is built into Python itself.
  23736. .sp
  23737. Modules for managing the package database are stored in the \fBsalt/spm/pkgdb/\fP
  23738. directory. A number of functions must exist to support database management.
  23739. .SS init()
  23740. .sp
  23741. Get a database connection, and initialize the package database if necessary.
  23742. .sp
  23743. This function accepts no arguments. If a database is used which supports a
  23744. connection object, then that connection object is returned. For instance, the
  23745. \fBsqlite3\fP module returns a \fBconnect()\fP object from the \fBsqlite3\fP library:
  23746. .INDENT 0.0
  23747. .INDENT 3.5
  23748. .sp
  23749. .nf
  23750. .ft C
  23751. conn = sqlite3.connect(__opts__[\(aqspm_db\(aq], isolation_level=None)
  23752. \&...
  23753. return conn
  23754. .ft P
  23755. .fi
  23756. .UNINDENT
  23757. .UNINDENT
  23758. .sp
  23759. SPM itself will not use this connection object; it will be passed in as\-is to
  23760. the other functions in the module. Therefore, when you set up this object, make
  23761. sure to do so in a way that is easily usable throughout the module.
  23762. .SS info()
  23763. .sp
  23764. Return information for a package. This generally consists of the information
  23765. that is stored in the \fBFORMULA\fP file in the package.
  23766. .sp
  23767. The arguments that are passed in, in order, are \fBpackage\fP (required) and
  23768. \fBconn\fP (optional).
  23769. .sp
  23770. \fBpackage\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23771. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23772. .SS list_files()
  23773. .sp
  23774. Return a list of files for an installed package. Only the filename should be
  23775. returned, and no other information.
  23776. .sp
  23777. The arguments that are passed in, in order, are \fBpackage\fP (required) and
  23778. \fBconn\fP (optional).
  23779. .sp
  23780. \fBpackage\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23781. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23782. .SS register_pkg()
  23783. .sp
  23784. Register a package in the package database. Nothing is expected to be returned
  23785. from this function.
  23786. .sp
  23787. The arguments that are passed in, in order, are \fBname\fP (required),
  23788. \fBformula_def\fP (required), and \fBconn\fP (optional).
  23789. .sp
  23790. \fBname\fP is the name of the package, as specified in the \fBFORMULA\fP\&.
  23791. \fBformula_def\fP is the contents of the \fBFORMULA\fP file, as a \fBdict\fP\&. \fBconn\fP
  23792. is the connection object returned from \fBinit()\fP\&.
  23793. .SS register_file()
  23794. .sp
  23795. Register a file in the package database. Nothing is expected to be returned
  23796. from this function.
  23797. .sp
  23798. The arguments that are passed in are \fBname\fP (required), \fBmember\fP (required),
  23799. \fBpath\fP (required), \fBdigest\fP (optional), and \fBconn\fP (optional).
  23800. .sp
  23801. \fBname\fP is the name of the package.
  23802. .sp
  23803. \fBmember\fP is a \fBtarfile\fP object for the
  23804. package file. It is included, because it contains most of the information for
  23805. the file.
  23806. .sp
  23807. \fBpath\fP is the location of the file on the local filesystem.
  23808. .sp
  23809. \fBdigest\fP is the SHA1 checksum of the file.
  23810. .sp
  23811. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23812. .SS unregister_pkg()
  23813. .sp
  23814. Unregister a package from the package database. This usually only involves
  23815. removing the package\(aqs record from the database. Nothing is expected to be
  23816. returned from this function.
  23817. .sp
  23818. The arguments that are passed in, in order, are \fBname\fP (required) and
  23819. \fBconn\fP (optional).
  23820. .sp
  23821. \fBname\fP is the name of the package, as specified in the \fBFORMULA\fP\&. \fBconn\fP
  23822. is the connection object returned from \fBinit()\fP\&.
  23823. .SS unregister_file()
  23824. .sp
  23825. Unregister a package from the package database. This usually only involves
  23826. removing the package\(aqs record from the database. Nothing is expected to be
  23827. returned from this function.
  23828. .sp
  23829. The arguments that are passed in, in order, are \fBname\fP (required), \fBpkg\fP
  23830. (optional) and \fBconn\fP (optional).
  23831. .sp
  23832. \fBname\fP is the path of the file, as it was installed on the filesystem.
  23833. .sp
  23834. \fBpkg\fP is the name of the package that the file belongs to.
  23835. .sp
  23836. \fBconn\fP is the connection object returned from \fBinit()\fP\&.
  23837. .SS db_exists()
  23838. .sp
  23839. Check to see whether the package database already exists. This is the path to
  23840. the package database file. This function will return \fBTrue\fP or \fBFalse\fP\&.
  23841. .sp
  23842. The only argument that is expected is \fBdb_\fP, which is the package database
  23843. file.
  23844. .SS Package Files
  23845. .sp
  23846. By default, package files are installed using the \fBlocal\fP module. This module
  23847. applies files to the local filesystem, on the machine that the package is
  23848. installed on.
  23849. .sp
  23850. Modules for managing the package database are stored in the
  23851. \fBsalt/spm/pkgfiles/\fP directory. A number of functions must exist to support
  23852. file management.
  23853. .SS init()
  23854. .sp
  23855. Initialize the installation location for the package files. Normally these will
  23856. be directory paths, but other external destinations such as databases can be
  23857. used. For this reason, this function will return a connection object, which can
  23858. be a database object. However, in the default \fBlocal\fP module, this object is a
  23859. dict containing the paths. This object will be passed into all other functions.
  23860. .sp
  23861. Three directories are used for the destinations: \fBformula_path\fP,
  23862. \fBpillar_path\fP, and \fBreactor_path\fP\&.
  23863. .sp
  23864. \fBformula_path\fP is the location of most of the files that will be installed.
  23865. The default is specific to the operating system, but is normally \fB/srv/salt/\fP\&.
  23866. .sp
  23867. \fBpillar_path\fP is the location that the \fBpillar.example\fP file will be
  23868. installed to. The default is specific to the operating system, but is normally
  23869. \fB/srv/pillar/\fP\&.
  23870. .sp
  23871. \fBreactor_path\fP is the location that reactor files will be installed to. The
  23872. default is specific to the operating system, but is normally \fB/srv/reactor/\fP\&.
  23873. .SS check_existing()
  23874. .sp
  23875. Check the filesystem for existing files. All files for the package will be
  23876. checked, and if any are existing, then this function will normally state that
  23877. SPM will refuse to install the package.
  23878. .sp
  23879. This function returns a list of the files that exist on the system.
  23880. .sp
  23881. The arguments that are passed into this function are, in order: \fBpackage\fP
  23882. (required), \fBpkg_files\fP (required), \fBformula_def\fP (formula_def), and
  23883. \fBconn\fP (optional).
  23884. .sp
  23885. \fBpackage\fP is the name of the package that is to be installed.
  23886. .sp
  23887. \fBpkg_files\fP is a list of the files to be checked.
  23888. .sp
  23889. \fBformula_def\fP is a copy of the information that is stored in the \fBFORMULA\fP
  23890. file.
  23891. .sp
  23892. \fBconn\fP is the file connection object.
  23893. .SS install_file()
  23894. .sp
  23895. Install a single file to the destination (normally on the filesystem). Nothing
  23896. is expected to be returned from this function.
  23897. .sp
  23898. This function returns the final location that the file was installed to.
  23899. .sp
  23900. The arguments that are passed into this function are, in order, \fBpackage\fP
  23901. (required), \fBformula_tar\fP (required), \fBmember\fP (required), \fBformula_def\fP
  23902. (required), and \fBconn\fP (optional).
  23903. .sp
  23904. \fBpackage\fP is the name of the package that is to be installed.
  23905. .sp
  23906. \fBformula_tar\fP is the tarfile object for the package. This is passed in so that
  23907. the function can call \fBformula_tar.extract()\fP for the file.
  23908. .sp
  23909. \fBmember\fP is the tarfile object which represents the individual file. This may
  23910. be modified as necessary, before being passed into \fBformula_tar.extract()\fP\&.
  23911. .sp
  23912. \fBformula_def\fP is a copy of the information from the \fBFORMULA\fP file.
  23913. .sp
  23914. \fBconn\fP is the file connection object.
  23915. .SS remove_file()
  23916. .sp
  23917. Remove a single file from file system. Normally this will be little more than an
  23918. \fBos.remove()\fP\&. Nothing is expected to be returned from this function.
  23919. .sp
  23920. The arguments that are passed into this function are, in order, \fBpath\fP
  23921. (required) and \fBconn\fP (optional).
  23922. .sp
  23923. \fBpath\fP is the absolute path to the file to be removed.
  23924. .sp
  23925. \fBconn\fP is the file connection object.
  23926. .SS hash_file()
  23927. .sp
  23928. Returns the hexdigest hash value of a file.
  23929. .sp
  23930. The arguments that are passed into this function are, in order, \fBpath\fP
  23931. (required), \fBhashobj\fP (required), and \fBconn\fP (optional).
  23932. .sp
  23933. \fBpath\fP is the absolute path to the file.
  23934. .sp
  23935. \fBhashobj\fP is a reference to \fBhashlib.sha1()\fP, which is used to pull the
  23936. \fBhexdigest()\fP for the file.
  23937. .sp
  23938. \fBconn\fP is the file connection object.
  23939. .sp
  23940. This function will not generally be more complex than:
  23941. .INDENT 0.0
  23942. .INDENT 3.5
  23943. .sp
  23944. .nf
  23945. .ft C
  23946. def hash_file(path, hashobj, conn=None):
  23947. with salt.utils.files.fopen(path, \(aqr\(aq) as f:
  23948. hashobj.update(f.read())
  23949. return hashobj.hexdigest()
  23950. .ft P
  23951. .fi
  23952. .UNINDENT
  23953. .UNINDENT
  23954. .SS path_exists()
  23955. .sp
  23956. Check to see whether the file already exists on the filesystem. Returns \fBTrue\fP
  23957. or \fBFalse\fP\&.
  23958. .sp
  23959. This function expects a \fBpath\fP argument, which is the absolute path to the
  23960. file to be checked.
  23961. .SS path_isdir()
  23962. .sp
  23963. Check to see whether the path specified is a directory. Returns \fBTrue\fP or
  23964. \fBFalse\fP\&.
  23965. .sp
  23966. This function expects a \fBpath\fP argument, which is the absolute path to be
  23967. checked.
  23968. .SS Storing Data in Other Databases
  23969. .sp
  23970. The SDB interface is designed to store and retrieve data that, unlike pillars
  23971. and grains, is not necessarily minion\-specific. The initial design goal was to
  23972. allow passwords to be stored in a secure database, such as one managed by the
  23973. keyring package, rather than as plain\-text files. However, as a generic database
  23974. interface, it could conceptually be used for a number of other purposes.
  23975. .sp
  23976. SDB was added to Salt in version 2014.7.0.
  23977. .SS SDB Configuration
  23978. .sp
  23979. In order to use the SDB interface, a configuration profile must be set up.
  23980. To be available for master commands, such as runners, it needs to be
  23981. configured in the master configuration. For modules executed on a minion, it
  23982. can be set either in the minion configuration file, or as a pillar. The
  23983. configuration stanza includes the name/ID that the profile will be referred to
  23984. as, a \fBdriver\fP setting, and any other arguments that are necessary for the SDB
  23985. module that will be used. For instance, a profile called \fBmykeyring\fP, which
  23986. uses the \fBsystem\fP service in the \fBkeyring\fP module would look like:
  23987. .INDENT 0.0
  23988. .INDENT 3.5
  23989. .sp
  23990. .nf
  23991. .ft C
  23992. mykeyring:
  23993. driver: keyring
  23994. service: system
  23995. .ft P
  23996. .fi
  23997. .UNINDENT
  23998. .UNINDENT
  23999. .sp
  24000. It is recommended to keep the name of the profile simple, as it is used in the
  24001. SDB URI as well.
  24002. .SS SDB URIs
  24003. .sp
  24004. SDB is designed to make small database queries (hence the name, SDB) using a
  24005. compact URL. This allows users to reference a database value quickly inside
  24006. a number of Salt configuration areas, without a lot of overhead. The basic
  24007. format of an SDB URI is:
  24008. .INDENT 0.0
  24009. .INDENT 3.5
  24010. .sp
  24011. .nf
  24012. .ft C
  24013. sdb://<profile>/<args>
  24014. .ft P
  24015. .fi
  24016. .UNINDENT
  24017. .UNINDENT
  24018. .sp
  24019. The profile refers to the configuration profile defined in either the master or
  24020. the minion configuration file. The args are specific to the module referred to
  24021. in the profile, but will typically only need to refer to the key of a
  24022. key/value pair inside the database. This is because the profile itself should
  24023. define as many other parameters as possible.
  24024. .sp
  24025. For example, a profile might be set up to reference credentials for a specific
  24026. OpenStack account. The profile might look like:
  24027. .INDENT 0.0
  24028. .INDENT 3.5
  24029. .sp
  24030. .nf
  24031. .ft C
  24032. kevinopenstack:
  24033. driver: keyring
  24034. service: salt.cloud.openstack.kevin
  24035. .ft P
  24036. .fi
  24037. .UNINDENT
  24038. .UNINDENT
  24039. .sp
  24040. And the URI used to reference the password might look like:
  24041. .INDENT 0.0
  24042. .INDENT 3.5
  24043. .sp
  24044. .nf
  24045. .ft C
  24046. sdb://kevinopenstack/password
  24047. .ft P
  24048. .fi
  24049. .UNINDENT
  24050. .UNINDENT
  24051. .SS Getting, Setting and Deleting SDB Values
  24052. .sp
  24053. Once an SDB driver is configured, you can use the \fBsdb\fP execution module to
  24054. get, set and delete values from it. There are two functions that may appear in
  24055. most SDB modules: \fBget\fP, \fBset\fP and \fBdelete\fP\&.
  24056. .sp
  24057. Getting a value requires only the SDB URI to be specified. To retrieve a value
  24058. from the \fBkevinopenstack\fP profile above, you would use:
  24059. .INDENT 0.0
  24060. .INDENT 3.5
  24061. .sp
  24062. .nf
  24063. .ft C
  24064. salt\-call sdb.get sdb://kevinopenstack/password
  24065. .ft P
  24066. .fi
  24067. .UNINDENT
  24068. .UNINDENT
  24069. .sp
  24070. \fBWARNING:\fP
  24071. .INDENT 0.0
  24072. .INDENT 3.5
  24073. The \fBvault\fP driver previously only supported splitting the path and key with
  24074. a question mark. This has since been deprecated in favor of using the standard
  24075. / to split the path and key. The use of the questions mark will still be supported
  24076. to ensure backwards compatibility, but please use the preferred method using /.
  24077. The deprecated approach required the full path to where the key is stored,
  24078. followed by a question mark, followed by the key to be retrieved. If you were
  24079. using a profile called \fBmyvault\fP, you would use a URI that looks like:
  24080. .INDENT 0.0
  24081. .INDENT 3.5
  24082. .sp
  24083. .nf
  24084. .ft C
  24085. salt\-call sdb.get \(aqsdb://myvault/secret/salt?saltstack\(aq
  24086. .ft P
  24087. .fi
  24088. .UNINDENT
  24089. .UNINDENT
  24090. .sp
  24091. Instead of the above please use the preferred URI using / instead:
  24092. .INDENT 0.0
  24093. .INDENT 3.5
  24094. .sp
  24095. .nf
  24096. .ft C
  24097. salt\-call sdb.get \(aqsdb://myvault/secret/salt/saltstack\(aq
  24098. .ft P
  24099. .fi
  24100. .UNINDENT
  24101. .UNINDENT
  24102. .UNINDENT
  24103. .UNINDENT
  24104. .sp
  24105. Setting a value uses the same URI as would be used to retrieve it, followed
  24106. by the value as another argument.
  24107. .INDENT 0.0
  24108. .INDENT 3.5
  24109. .sp
  24110. .nf
  24111. .ft C
  24112. salt\-call sdb.set \(aqsdb://myvault/secret/salt/saltstack\(aq \(aqsuper awesome\(aq
  24113. .ft P
  24114. .fi
  24115. .UNINDENT
  24116. .UNINDENT
  24117. .sp
  24118. Deleting values (if supported by the driver) is done pretty much the same way as
  24119. getting them. Provided that you have a profile called \fBmykvstore\fP that uses
  24120. a driver allowing to delete values you would delete a value as shown below:
  24121. .INDENT 0.0
  24122. .INDENT 3.5
  24123. .sp
  24124. .nf
  24125. .ft C
  24126. salt\-call sdb.delete \(aqsdb://mykvstore/foobar\(aq
  24127. .ft P
  24128. .fi
  24129. .UNINDENT
  24130. .UNINDENT
  24131. .sp
  24132. The \fBsdb.get\fP, \fBsdb.set\fP and \fBsdb.delete\fP functions are also available in
  24133. the runner system:
  24134. .INDENT 0.0
  24135. .INDENT 3.5
  24136. .sp
  24137. .nf
  24138. .ft C
  24139. salt\-run sdb.get \(aqsdb://myvault/secret/salt/saltstack\(aq
  24140. salt\-run sdb.set \(aqsdb://myvault/secret/salt/saltstack\(aq \(aqsuper awesome\(aq
  24141. salt\-run sdb.delete \(aqsdb://mykvstore/foobar\(aq
  24142. .ft P
  24143. .fi
  24144. .UNINDENT
  24145. .UNINDENT
  24146. .SS Using SDB URIs in Files
  24147. .sp
  24148. SDB URIs can be used in both configuration files, and files that are processed
  24149. by the renderer system (jinja, mako, etc.). In a configuration file (such as
  24150. \fB/etc/salt/master\fP, \fB/etc/salt/minion\fP, \fB/etc/salt/cloud\fP, etc.), make an
  24151. entry as usual, and set the value to the SDB URI. For instance:
  24152. .INDENT 0.0
  24153. .INDENT 3.5
  24154. .sp
  24155. .nf
  24156. .ft C
  24157. mykey: sdb://myetcd/mykey
  24158. .ft P
  24159. .fi
  24160. .UNINDENT
  24161. .UNINDENT
  24162. .sp
  24163. To retrieve this value using a module, the module in question must use the
  24164. \fBconfig.get\fP function to retrieve configuration values. This would look
  24165. something like:
  24166. .INDENT 0.0
  24167. .INDENT 3.5
  24168. .sp
  24169. .nf
  24170. .ft C
  24171. mykey = __salt__[\(aqconfig.get\(aq](\(aqmykey\(aq)
  24172. .ft P
  24173. .fi
  24174. .UNINDENT
  24175. .UNINDENT
  24176. .sp
  24177. Templating renderers use a similar construct. To get the \fBmykey\fP value from
  24178. above in Jinja, you would use:
  24179. .INDENT 0.0
  24180. .INDENT 3.5
  24181. .sp
  24182. .nf
  24183. .ft C
  24184. {{ salt[\(aqconfig.get\(aq](\(aqmykey\(aq) }}
  24185. .ft P
  24186. .fi
  24187. .UNINDENT
  24188. .UNINDENT
  24189. .sp
  24190. When retrieving data from configuration files using \fBconfig.get\fP, the SDB
  24191. URI need only appear in the configuration file itself.
  24192. .sp
  24193. If you would like to retrieve a key directly from SDB, you would call the
  24194. \fBsdb.get\fP function directly, using the SDB URI. For instance, in Jinja:
  24195. .INDENT 0.0
  24196. .INDENT 3.5
  24197. .sp
  24198. .nf
  24199. .ft C
  24200. {{ salt[\(aqsdb.get\(aq](\(aqsdb://myetcd/mykey\(aq) }}
  24201. .ft P
  24202. .fi
  24203. .UNINDENT
  24204. .UNINDENT
  24205. .sp
  24206. When writing Salt modules, it is not recommended to call \fBsdb.get\fP directly,
  24207. as it requires the user to provide values in SDB, using a specific URI. Use
  24208. \fBconfig.get\fP instead.
  24209. .SS Writing SDB Modules
  24210. .sp
  24211. There is currently one function that MUST exist in any SDB module (\fBget()\fP),
  24212. one that SHOULD exist (\fBset_()\fP) and one that MAY exist (\fBdelete()\fP). If
  24213. using a (\fBset_()\fP) function, a \fB__func_alias__\fP dictionary MUST be declared
  24214. in the module as well:
  24215. .INDENT 0.0
  24216. .INDENT 3.5
  24217. .sp
  24218. .nf
  24219. .ft C
  24220. __func_alias__ = {
  24221. \(aqset_\(aq: \(aqset\(aq,
  24222. }
  24223. .ft P
  24224. .fi
  24225. .UNINDENT
  24226. .UNINDENT
  24227. .sp
  24228. This is because \fBset\fP is a Python built\-in, and therefore functions should not
  24229. be created which are called \fBset()\fP\&. The \fB__func_alias__\fP functionality is
  24230. provided via Salt\(aqs loader interfaces, and allows legally\-named functions to be
  24231. referred to using names that would otherwise be unwise to use.
  24232. .sp
  24233. The \fBget()\fP function is required, as it will be called via functions in other
  24234. areas of the code which make use of the \fBsdb://\fP URI. For example, the
  24235. \fBconfig.get\fP function in the \fBconfig\fP execution module uses this function.
  24236. .sp
  24237. The \fBset_()\fP function may be provided, but is not required, as some sources
  24238. may be read\-only, or may be otherwise unwise to access via a URI (for instance,
  24239. because of SQL injection attacks).
  24240. .sp
  24241. The \fBdelete()\fP function may be provided as well, but is not required, as many
  24242. sources may be read\-only or restrict such operations.
  24243. .sp
  24244. A simple example of an SDB module is \fBsalt/sdb/keyring_db.py\fP, as it provides
  24245. basic examples of most, if not all, of the types of functionality that are
  24246. available not only for SDB modules, but for Salt modules in general.
  24247. .SS Running the Salt Master/Minion as an Unprivileged User
  24248. .sp
  24249. While the default setup runs the master and minion as the root user, some
  24250. may consider it an extra measure of security to run the master as a non\-root
  24251. user. Keep in mind that doing so does not change the master\(aqs capability
  24252. to access minions as the user they are running as. Due to this many feel that
  24253. running the master as a non\-root user does not grant any real security advantage
  24254. which is why the master has remained as root by default.
  24255. .sp
  24256. \fBNOTE:\fP
  24257. .INDENT 0.0
  24258. .INDENT 3.5
  24259. Some of Salt\(aqs operations cannot execute correctly when the master is not
  24260. running as root, specifically the pam external auth system, as this system
  24261. needs root access to check authentication.
  24262. .UNINDENT
  24263. .UNINDENT
  24264. .sp
  24265. As of Salt 0.9.10 it is possible to run Salt as a non\-root user. This can be
  24266. done by setting the \fBuser\fP parameter in the master configuration
  24267. file. and restarting the \fBsalt\-master\fP service.
  24268. .sp
  24269. The minion has its own \fBuser\fP parameter as well, but running the
  24270. minion as an unprivileged user will keep it from making changes to things like
  24271. users, installed packages, etc. unless access controls (sudo, etc.) are setup
  24272. on the minion to permit the non\-root user to make the needed changes.
  24273. .sp
  24274. In order to allow Salt to successfully run as a non\-root user, ownership, and
  24275. permissions need to be set such that the desired user can read from and write
  24276. to the following directories (and their subdirectories, where applicable):
  24277. .INDENT 0.0
  24278. .IP \(bu 2
  24279. /etc/salt
  24280. .IP \(bu 2
  24281. /var/cache/salt
  24282. .IP \(bu 2
  24283. /var/log/salt
  24284. .IP \(bu 2
  24285. /var/run/salt
  24286. .UNINDENT
  24287. .sp
  24288. Ownership can be easily changed with \fBchown\fP, like so:
  24289. .INDENT 0.0
  24290. .INDENT 3.5
  24291. .sp
  24292. .nf
  24293. .ft C
  24294. # chown \-R user /etc/salt /var/cache/salt /var/log/salt /var/run/salt
  24295. .ft P
  24296. .fi
  24297. .UNINDENT
  24298. .UNINDENT
  24299. .sp
  24300. \fBWARNING:\fP
  24301. .INDENT 0.0
  24302. .INDENT 3.5
  24303. Running either the master or minion with the \fBroot_dir\fP
  24304. parameter specified will affect these paths, as will setting options like
  24305. \fBpki_dir\fP, \fBcachedir\fP, \fBlog_file\fP,
  24306. and other options that normally live in the above directories.
  24307. .UNINDENT
  24308. .UNINDENT
  24309. .SS Using cron with Salt
  24310. .sp
  24311. The Salt Minion can initiate its own highstate using
  24312. the \fBsalt\-call\fP command.
  24313. .INDENT 0.0
  24314. .INDENT 3.5
  24315. .sp
  24316. .nf
  24317. .ft C
  24318. $ salt\-call state.apply
  24319. .ft P
  24320. .fi
  24321. .UNINDENT
  24322. .UNINDENT
  24323. .sp
  24324. This will cause the minion to check in with the master and ensure it is in the
  24325. correct "state".
  24326. .SS Use cron to initiate a highstate
  24327. .sp
  24328. If you would like the Salt Minion to regularly check in with the master you can
  24329. use cron to run the \fBsalt\-call\fP command:
  24330. .INDENT 0.0
  24331. .INDENT 3.5
  24332. .sp
  24333. .nf
  24334. .ft C
  24335. 0 0 * * * salt\-call state.apply
  24336. .ft P
  24337. .fi
  24338. .UNINDENT
  24339. .UNINDENT
  24340. .sp
  24341. The above cron entry will run a highstate every day
  24342. at midnight.
  24343. .sp
  24344. \fBNOTE:\fP
  24345. .INDENT 0.0
  24346. .INDENT 3.5
  24347. When executing Salt using cron, keep in mind that the default PATH for cron
  24348. may not include the path for any scripts or commands used by Salt, and it
  24349. may be necessary to set the PATH accordingly in the crontab:
  24350. .INDENT 0.0
  24351. .INDENT 3.5
  24352. .sp
  24353. .nf
  24354. .ft C
  24355. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin
  24356. 0 0 * * * salt\-call state.apply
  24357. .ft P
  24358. .fi
  24359. .UNINDENT
  24360. .UNINDENT
  24361. .UNINDENT
  24362. .UNINDENT
  24363. .SS Hardening Salt
  24364. .sp
  24365. This topic contains tips you can use to secure and harden your Salt
  24366. environment. How you best secure and harden your Salt environment depends
  24367. heavily on how you use Salt, where you use Salt, how your team is structured,
  24368. where you get data from, and what kinds of access (internal and external) you
  24369. require.
  24370. .sp
  24371. \fBWARNING:\fP
  24372. .INDENT 0.0
  24373. .INDENT 3.5
  24374. For historical reasons, Salt requires PyCrypto as a "lowest common
  24375. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  24376. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  24377. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  24378. .UNINDENT
  24379. .UNINDENT
  24380. .SS General hardening tips
  24381. .INDENT 0.0
  24382. .IP \(bu 2
  24383. Restrict who can directly log into your Salt master system.
  24384. .IP \(bu 2
  24385. Use SSH keys secured with a passphrase to gain access to the Salt master system.
  24386. .IP \(bu 2
  24387. Track and secure SSH keys and any other login credentials you and your team
  24388. need to gain access to the Salt master system.
  24389. .IP \(bu 2
  24390. Use a hardened bastion server or a VPN to restrict direct access to the Salt
  24391. master from the internet.
  24392. .IP \(bu 2
  24393. Don\(aqt expose the Salt master any more than what is required.
  24394. .IP \(bu 2
  24395. Harden the system as you would with any high\-priority target.
  24396. .IP \(bu 2
  24397. Keep the system patched and up\-to\-date.
  24398. .IP \(bu 2
  24399. Use tight firewall rules. Pay particular attention to TCP/4505 and TCP/4506
  24400. on the salt master and avoid exposing these ports unnecessarily.
  24401. .UNINDENT
  24402. .SS Salt hardening tips
  24403. .INDENT 0.0
  24404. .IP \(bu 2
  24405. Subscribe to \fI\%salt\-users\fP or \fI\%salt\-announce\fP so you know when new Salt
  24406. releases are available. Keep your systems up\-to\-date with the latest patches.
  24407. .IP \(bu 2
  24408. Use Salt\(aqs Client ACL system to avoid having to give out root
  24409. access in order to run Salt commands.
  24410. .IP \(bu 2
  24411. Use Salt\(aqs Client ACL system to restrict which users can run what commands.
  24412. .IP \(bu 2
  24413. Use external Pillar to pull data into Salt from
  24414. external sources so that non\-sysadmins (other teams, junior admins,
  24415. developers, etc) can provide configuration data without needing access to the
  24416. Salt master.
  24417. .IP \(bu 2
  24418. Make heavy use of SLS files that are version\-controlled and go through
  24419. a peer\-review/code\-review process before they\(aqre deployed and run in
  24420. production. This is good advice even for "one\-off" CLI commands because it
  24421. helps mitigate typos and mistakes.
  24422. .IP \(bu 2
  24423. Use salt\-api, SSL, and restrict authentication with the external auth system if you need to expose your Salt master to external
  24424. services.
  24425. .IP \(bu 2
  24426. Make use of Salt\(aqs event system and reactor to allow minions
  24427. to signal the Salt master without requiring direct access.
  24428. .IP \(bu 2
  24429. Run the \fBsalt\-master\fP daemon as non\-root.
  24430. .IP \(bu 2
  24431. Disable which modules are loaded onto minions with the
  24432. \fBdisable_modules\fP setting. (for example, disable the \fBcmd\fP
  24433. module if it makes sense in your environment.)
  24434. .IP \(bu 2
  24435. Look through the fully\-commented sample master and minion config files. There are many options for
  24436. securing an installation.
  24437. .IP \(bu 2
  24438. Run masterless\-mode minions on
  24439. particularly sensitive minions. There is also salt\-ssh or the
  24440. \fBmodules.sudo\fP if you need to further restrict
  24441. a minion.
  24442. .IP \(bu 2
  24443. Monitor specific security releated log messages. Salt \fBsalt\-master\fP logs
  24444. attempts to access methods which are not exposed to network clients. These log
  24445. messages are logged at the \fBerror\fP log level and start with \fBRequested
  24446. method not exposed\fP\&.
  24447. .UNINDENT
  24448. .SS Security disclosure policy
  24449. .INDENT 0.0
  24450. .TP
  24451. .B email
  24452. \fI\%security@saltstack.com\fP
  24453. .TP
  24454. .B gpg key ID
  24455. 4EA0793D
  24456. .TP
  24457. .B gpg key fingerprint
  24458. \fB8ABE 4EFC F0F4 B24B FF2A AF90 D570 F2D3 4EA0 793D\fP
  24459. .UNINDENT
  24460. .sp
  24461. \fBgpg public key:\fP
  24462. .INDENT 0.0
  24463. .INDENT 3.5
  24464. .sp
  24465. .nf
  24466. .ft C
  24467. \-\-\-\-\-BEGIN PGP PUBLIC KEY BLOCK\-\-\-\-\-
  24468. mQINBFO15mMBEADa3CfQwk5ED9wAQ8fFDku277CegG3U1hVGdcxqKNvucblwoKCb
  24469. hRK6u9ihgaO9V9duV2glwgjytiBI/z6lyWqdaD37YXG/gTL+9Md+qdSDeaOa/9eg
  24470. 7y+g4P+FvU9HWUlujRVlofUn5Dj/IZgUywbxwEybutuzvvFVTzsn+DFVwTH34Qoh
  24471. QIuNzQCSEz3Lhh8zq9LqkNy91ZZQO1ZIUrypafspH6GBHHcE8msBFgYiNBnVcUFH
  24472. u0r4j1Rav+621EtD5GZsOt05+NJI8pkaC/dDKjURcuiV6bhmeSpNzLaXUhwx6f29
  24473. Vhag5JhVGGNQxlRTxNEM86HEFp+4zJQ8m/wRDrGX5IAHsdESdhP+ljDVlAAX/ttP
  24474. /Ucl2fgpTnDKVHOA00E515Q87ZHv6awJ3GL1veqi8zfsLaag7rw1TuuHyGLOPkDt
  24475. t5PAjsS9R3KI7pGnhqI6bTOi591odUdgzUhZChWUUX1VStiIDi2jCvyoOOLMOGS5
  24476. AEYXuWYP7KgujZCDRaTNqRDdgPd93Mh9JI8UmkzXDUgijdzVpzPjYgFaWtyK8lsc
  24477. Fizqe3/Yzf9RCVX/lmRbiEH+ql/zSxcWlBQd17PKaL+TisQFXcmQzccYgAxFbj2r
  24478. QHp5ABEu9YjFme2Jzun7Mv9V4qo3JF5dmnUk31yupZeAOGZkirIsaWC3hwARAQAB
  24479. tDBTYWx0U3RhY2sgU2VjdXJpdHkgVGVhbSA8c2VjdXJpdHlAc2FsdHN0YWNrLmNv
  24480. bT6JAj4EEwECACgFAlO15mMCGwMFCQeGH4AGCwkIBwMCBhUIAgkKCwQWAgMBAh4B
  24481. AheAAAoJENVw8tNOoHk9z/MP/2vzY27fmVxU5X8joiiturjlgEqQw41IYEmWv1Bw
  24482. 4WVXYCHP1yu/1MC1uuvOmOd5BlI8YO2C2oyW7d1B0NorguPtz55b7jabCElekVCh
  24483. h/H4ZVThiwqgPpthRv/2npXjIm7SLSs/kuaXo6Qy2JpszwDVFw+xCRVL0tH9KJxz
  24484. HuNBeVq7abWD5fzIWkmGM9hicG/R2D0RIlco1Q0VNKy8klG+pOFOW886KnwkSPc7
  24485. JUYp1oUlHsSlhTmkLEG54cyVzrTP/XuZuyMTdtyTc3mfgW0adneAL6MARtC5UB/h
  24486. q+v9dqMf4iD3wY6ctu8KWE8Vo5MUEsNNO9EA2dUR88LwFZ3ZnnXdQkizgR/Aa515
  24487. dm17vlNkSoomYCo84eN7GOTfxWcq+iXYSWcKWT4X+h/ra+LmNndQWQBRebVUtbKE
  24488. ZDwKmiQz/5LY5EhlWcuU4lVmMSFpWXt5FR/PtzgTdZAo9QKkBjcv97LYbXvsPI69
  24489. El1BLAg+m+1UpE1L7zJT1il6PqVyEFAWBxW46wXCCkGssFsvz2yRp0PDX8A6u4yq
  24490. rTkt09uYht1is61joLDJ/kq3+6k8gJWkDOW+2NMrmf+/qcdYCMYXmrtOpg/wF27W
  24491. GMNAkbdyzgeX/MbUBCGCMdzhevRuivOI5bu4vT5s3KdshG+yhzV45bapKRd5VN+1
  24492. mZRqiQJVBBMBAgA/AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIXgBYhBIq+Tvzw
  24493. 9LJL/yqvkNVw8tNOoHk9BQJb0e5rBQkL3m8IAAoJENVw8tNOoHk9fzMP/ApQtkQD
  24494. BmoYEBTF6BH1bywzDw5OHpnBSLbuoYtA3gkhnm/83MzFDcGn22pgo2Fv0MuHltWI
  24495. G2oExzje7szmcM6Xg3ZTKapJ3/p2J+P33tkJA1LWpg+DdgdQlqrjlXKwEnikszuB
  24496. 9IMhbjoPeBzwiUtsBQmcwbVgwMzbscwoV5DJ/gLDCkgF4rp2uKEYAcBi8s9NGX6p
  24497. zQsb9Sb0/bKdCrszAcvUn4WYB6WbAPttvutYHtg/nZfXEeX/SgBueXo3lO9vzFlO
  24498. r3Zgk7WeucsEqa9Qo0VLOq28HykixM5mEJKsAQrNIqM1DqXgfDch8RJAHzgMBHFH
  24499. Qi9hJXk1/6OA2FPXQGcA9Td5Dt0i1Z7wMrAUMj3s9gNMVCD0hQqEKfUtpyV7KBAj
  24500. AO5j8Wr8KafnRm6czBCkcV0SRzHQSHdYyncozWwPgWOaRC9AY9fEDz8lBaSoB/C+
  24501. dyO/xZMTWoaWqkHozVoHIrCc4CAtZTye/5mxFhq15Q1Iy/NjelrMTCD1kql1dNIP
  24502. oOgfOYl1xLMQIBwrrCrgeRIvxEgKRf9KOLbSrS7+3vOKoxf+LD4AQfLci8dFyH+I
  24503. t0Z43nk93yTOI82RTdz5GwUXIKcvGhsJ8bgNlGTxM1R/Sl8Sg8diE2PRAp/fk7+g
  24504. CwOM8VkeyrDM2k1cy64d8USkbR7YtT3otyFQuQINBFO15mMBEAC5UuLii9ZLz6qH
  24505. fIJp35IOW9U8SOf7QFhzXR7NZ3DmJsd3f6Nb/habQFIHjm3K9wbpj+FvaW2oWRlF
  24506. VvYdzjUq6c82GUUjW1dnqgUvFwdmM8351n0YQ2TonmyaF882RvsRZrbJ65uvy7SQ
  24507. xlouXaAYOdqwLsPxBEOyOnMPSktW5V2UIWyxsNP3sADchWIGq9p5D3Y/loyIMsS1
  24508. dj+TjoQZOKSj7CuRT98+8yhGAY8YBEXu9r3I9o6mDkuPpAljuMc8r09Im6az2egt
  24509. K/szKt4Hy1bpSSBZU4W/XR7XwQNywmb3wxjmYT6Od3Mwj0jtzc3gQiH8hcEy3+BO
  24510. +NNmyzFVyIwOLziwjmEcw62S57wYKUVnHD2nglMsQa8Ve0e6ABBMEY7zGEGStva5
  24511. 9rfgeh0jUMJiccGiUDTMs0tdkC6knYKbu/fdRqNYFoNuDcSeLEw4DdCuP01l2W4y
  24512. Y+fiK6hAcL25amjzc+yYo9eaaqTn6RATbzdhHQZdpAMxY+vNT0+NhP1Zo5gYBMR6
  24513. 5Zp/VhFsf67ijb03FUtdw9N8dHwiR2m8vVA8kO/gCD6wS2p9RdXqrJ9JhnHYWjiV
  24514. uXR+f755ZAndyQfRtowMdQIoiXuJEXYw6XN+/BX81gJaynJYc0uw0MnxWQX+A5m8
  24515. HqEsbIFUXBYXPgbwXTm7c4IHGgXXdwARAQABiQI8BBgBAgAmAhsMFiEEir5O/PD0
  24516. skv/Kq+Q1XDy006geT0FAlvR7oMFCQvebyAACgkQ1XDy006geT2Hxw//Zha8j8Uc
  24517. 4B+DmHhZIvPmHp9aFI4DWhC7CBDrYKztBz42H6eX+UsBu4p+uBDKdW9xJH+Qt/zF
  24518. nf/zB5Bhc/wFceVRCAkWxPdiIQeo5XQGjZeORjle7E9iunTko+5q1q9I7IgqWYrn
  24519. jRmulDvRhO7AoUrqGACDrV6t0F1/XPB8seR2i6axFmFlt1qBHasRq11yksdgNYiD
  24520. KXaovf7csDGPGOCWEKMX7BFGpdK/dWdNYfH0Arfom0U5TqNfvGtP4yRPx2bcs7/1
  24521. VXPj7IqhBgOtA9pwtMjFki8HGkqj7bB2ErFBOnSwqqNnNcbnhiO6D74SHVGAHhKZ
  24522. whaMPDg76EvjAezoLHg7KWYOyUkWJSLa+YoM9r4+PJuEuW/XuaZCNbrAhek+p3pD
  24523. ywhElvZe/2UFk619qKzwSbTzk7a90rxLQ2wwtd0vxAW/GyjWl4/kOMZhI5+LAk1l
  24524. REucE0fSQxzCTeXu2ObvFR9ic02IYGH3Koz8CrGReEI1J05041Y5IhKxdsvGOD2W
  24525. e7ymcblYW4Gz8eYFlLeNJkj/38R7qmNZ028XHzAZDCAWDiTFrnCoglyk+U0JRHfg
  24526. HTsdvoc8mBdT/s24LhnfAbpLizlrZZquuOF6NLQSkbuLtmIwf+h9ynEEJxEkGGWg
  24527. 7JqB1tMjNHLkRpveO/DTYB+iffpba1nCguk=
  24528. =OgRY
  24529. \-\-\-\-\-END PGP PUBLIC KEY BLOCK\-\-\-\-\-
  24530. .ft P
  24531. .fi
  24532. .UNINDENT
  24533. .UNINDENT
  24534. .sp
  24535. The SaltStack Security Team is available at \fI\%security@saltstack.com\fP for
  24536. security\-related bug reports or questions.
  24537. .sp
  24538. We request the disclosure of any security\-related bugs or issues be reported
  24539. non\-publicly until such time as the issue can be resolved and a security\-fix
  24540. release can be prepared. At that time we will release the fix and make a public
  24541. announcement with upgrade instructions and download locations.
  24542. .SS Security response procedure
  24543. .sp
  24544. SaltStack takes security and the trust of our customers and users very
  24545. seriously. Our disclosure policy is intended to resolve security issues as
  24546. quickly and safely as is possible.
  24547. .INDENT 0.0
  24548. .IP 1. 3
  24549. A security report sent to \fI\%security@saltstack.com\fP is assigned to a team
  24550. member. This person is the primary contact for questions and will
  24551. coordinate the fix, release, and announcement.
  24552. .IP 2. 3
  24553. The reported issue is reproduced and confirmed. A list of affected projects
  24554. and releases is made.
  24555. .IP 3. 3
  24556. Fixes are implemented for all affected projects and releases that are
  24557. actively supported. Back\-ports of the fix are made to any old releases that
  24558. are actively supported.
  24559. .IP 4. 3
  24560. Packagers are notified via the \fI\%salt\-packagers\fP mailing list that an issue
  24561. was reported and resolved, and that an announcement is incoming.
  24562. .IP 5. 3
  24563. A new release is created and pushed to all affected repositories. The
  24564. release documentation provides a full description of the issue, plus any
  24565. upgrade instructions or other relevant details.
  24566. .IP 6. 3
  24567. An announcement is made to the \fI\%salt\-users\fP and \fI\%salt\-announce\fP mailing
  24568. lists. The announcement contains a description of the issue and a link to
  24569. the full release documentation and download locations.
  24570. .UNINDENT
  24571. .SS Receiving security announcements
  24572. .sp
  24573. The fastest place to receive security announcements is via the \fI\%salt\-announce\fP
  24574. mailing list. This list is low\-traffic.
  24575. .SS Salt Transport
  24576. .sp
  24577. One of fundamental features of Salt is remote execution. Salt has two basic
  24578. "channels" for communicating with minions. Each channel requires a
  24579. client (minion) and a server (master) implementation to work within Salt. These
  24580. pairs of channels will work together to implement the specific message passing
  24581. required by the channel interface.
  24582. .SS Pub Channel
  24583. .sp
  24584. The pub channel, or publish channel, is how a master sends a job (payload) to a
  24585. minion. This is a basic pub/sub paradigm, which has specific targeting semantics.
  24586. All data which goes across the publish system should be encrypted such that only
  24587. members of the Salt cluster can decrypt the publishes.
  24588. .SS Req Channel
  24589. .sp
  24590. The req channel is how the minions send data to the master. This interface is
  24591. primarily used for fetching files and returning job returns. The req channels
  24592. have two basic interfaces when talking to the master. \fBsend\fP is the basic
  24593. method that guarantees the message is encrypted at least so that only minions
  24594. attached to the same master can read it\-\- but no guarantee of minion\-master
  24595. confidentiality, whereas the \fBcrypted_transfer_decode_dictentry\fP method does
  24596. guarantee minion\-master confidentiality.
  24597. .SS Zeromq Transport
  24598. .sp
  24599. \fBNOTE:\fP
  24600. .INDENT 0.0
  24601. .INDENT 3.5
  24602. Zeromq is the current default transport within Salt
  24603. .UNINDENT
  24604. .UNINDENT
  24605. .sp
  24606. Zeromq is a messaging library with bindings into many languages. Zeromq implements
  24607. a socket interface for message passing, with specific semantics for the socket type.
  24608. .SS Pub Channel
  24609. .sp
  24610. The pub channel is implemented using zeromq\(aqs pub/sub sockets. By default we don\(aqt
  24611. use zeromq\(aqs filtering, which means that all publish jobs are sent to all minions
  24612. and filtered minion side. Zeromq does have publisher side filtering which can be
  24613. enabled in salt using \fBzmq_filtering\fP\&.
  24614. .SS Req Channel
  24615. .sp
  24616. The req channel is implemented using zeromq\(aqs req/rep sockets. These sockets
  24617. enforce a send/recv pattern, which forces salt to serialize messages through these
  24618. socket pairs. This means that although the interface is asynchronous on the minion
  24619. we cannot send a second message until we have received the reply of the first message.
  24620. .SS TCP Transport
  24621. .sp
  24622. The tcp transport is an implementation of Salt\(aqs channels using raw tcp sockets.
  24623. Since this isn\(aqt using a pre\-defined messaging library we will describe the wire
  24624. protocol, message semantics, etc. in this document.
  24625. .sp
  24626. The tcp transport is enabled by changing the \fBtransport\fP setting
  24627. to \fBtcp\fP on each Salt minion and Salt master.
  24628. .INDENT 0.0
  24629. .INDENT 3.5
  24630. .sp
  24631. .nf
  24632. .ft C
  24633. transport: tcp
  24634. .ft P
  24635. .fi
  24636. .UNINDENT
  24637. .UNINDENT
  24638. .sp
  24639. \fBWARNING:\fP
  24640. .INDENT 0.0
  24641. .INDENT 3.5
  24642. We currently recommend that when using Syndics that all Masters and Minions
  24643. use the same transport. We\(aqre investigating a report of an error when using
  24644. mixed transport types at very heavy loads.
  24645. .UNINDENT
  24646. .UNINDENT
  24647. .SS Wire Protocol
  24648. .sp
  24649. This implementation over TCP focuses on flexibility over absolute efficiency.
  24650. This means we are okay to spend a couple of bytes of wire space for flexibility
  24651. in the future. That being said, the wire framing is quite efficient and looks
  24652. like:
  24653. .INDENT 0.0
  24654. .INDENT 3.5
  24655. .sp
  24656. .nf
  24657. .ft C
  24658. msgpack({\(aqhead\(aq: SOMEHEADER, \(aqbody\(aq: SOMEBODY})
  24659. .ft P
  24660. .fi
  24661. .UNINDENT
  24662. .UNINDENT
  24663. .sp
  24664. Since msgpack is an iterably parsed serialization, we can simply write the serialized
  24665. payload to the wire. Within that payload we have two items "head" and "body".
  24666. Head contains header information (such as "message id"). The Body contains the
  24667. actual message that we are sending. With this flexible wire protocol we can
  24668. implement any message semantics that we\(aqd like\-\- including multiplexed message
  24669. passing on a single socket.
  24670. .SS TLS Support
  24671. .sp
  24672. New in version 2016.11.1.
  24673. .sp
  24674. The TCP transport allows for the master/minion communication to be optionally
  24675. wrapped in a TLS connection. Enabling this is simple, the master and minion need
  24676. to be using the tcp connection, then the \fIssl\fP option is enabled. The \fIssl\fP
  24677. option is passed as a dict and corresponds to the options passed to the
  24678. Python \fIssl.wrap_socket <https://docs.python.org/2/library/ssl.html#ssl.wrap_socket>\fP
  24679. function.
  24680. .sp
  24681. A simple setup looks like this, on the Salt Master add the \fIssl\fP option to the
  24682. master configuration file:
  24683. .INDENT 0.0
  24684. .INDENT 3.5
  24685. .sp
  24686. .nf
  24687. .ft C
  24688. ssl:
  24689. keyfile: <path_to_keyfile>
  24690. certfile: <path_to_certfile>
  24691. ssl_version: PROTOCOL_TLSv1_2
  24692. .ft P
  24693. .fi
  24694. .UNINDENT
  24695. .UNINDENT
  24696. .sp
  24697. The minimal \fIssl\fP option in the minion configuration file looks like this:
  24698. .INDENT 0.0
  24699. .INDENT 3.5
  24700. .sp
  24701. .nf
  24702. .ft C
  24703. ssl: True
  24704. # Versions below 2016.11.4:
  24705. ssl: {}
  24706. .ft P
  24707. .fi
  24708. .UNINDENT
  24709. .UNINDENT
  24710. .sp
  24711. Specific options can be sent to the minion also, as defined in the Python
  24712. \fIssl.wrap_socket\fP function.
  24713. .sp
  24714. \fBNOTE:\fP
  24715. .INDENT 0.0
  24716. .INDENT 3.5
  24717. While setting the ssl_version is not required, we recommend it. Some older
  24718. versions of python do not support the latest TLS protocol and if this is
  24719. the case for your version of python we strongly recommend upgrading your
  24720. version of Python.
  24721. .UNINDENT
  24722. .UNINDENT
  24723. .SS Crypto
  24724. .sp
  24725. The current implementation uses the same crypto as the \fBzeromq\fP transport.
  24726. .SS Pub Channel
  24727. .sp
  24728. For the pub channel we send messages without "message ids" which the remote end
  24729. interprets as a one\-way send.
  24730. .sp
  24731. \fBNOTE:\fP
  24732. .INDENT 0.0
  24733. .INDENT 3.5
  24734. As of today we send all publishes to all minions and rely on minion\-side filtering.
  24735. .UNINDENT
  24736. .UNINDENT
  24737. .SS Req Channel
  24738. .sp
  24739. For the req channel we send messages with a "message id". This "message id" allows
  24740. us to multiplex messages across the socket.
  24741. .SS Master Tops System
  24742. .sp
  24743. In 0.10.4 the \fIexternal_nodes\fP system was upgraded to allow for modular
  24744. subsystems to be used to generate the top file data for a highstate run on the master.
  24745. .sp
  24746. The old \fIexternal_nodes\fP option has been removed. The master tops system
  24747. provides a pluggable and extendable replacement for it, allowing for multiple
  24748. different subsystems to provide top file data.
  24749. .sp
  24750. Using the new \fImaster_tops\fP option is simple:
  24751. .INDENT 0.0
  24752. .INDENT 3.5
  24753. .sp
  24754. .nf
  24755. .ft C
  24756. master_tops:
  24757. ext_nodes: cobbler\-external\-nodes
  24758. .ft P
  24759. .fi
  24760. .UNINDENT
  24761. .UNINDENT
  24762. .sp
  24763. for \fBCobbler\fP or:
  24764. .INDENT 0.0
  24765. .INDENT 3.5
  24766. .sp
  24767. .nf
  24768. .ft C
  24769. master_tops:
  24770. reclass:
  24771. inventory_base_uri: /etc/reclass
  24772. classes_uri: roles
  24773. .ft P
  24774. .fi
  24775. .UNINDENT
  24776. .UNINDENT
  24777. .sp
  24778. for \fBReclass\fP\&.
  24779. .INDENT 0.0
  24780. .INDENT 3.5
  24781. .sp
  24782. .nf
  24783. .ft C
  24784. master_tops:
  24785. varstack: /path/to/the/config/file/varstack.yaml
  24786. .ft P
  24787. .fi
  24788. .UNINDENT
  24789. .UNINDENT
  24790. .sp
  24791. for \fBVarstack\fP\&.
  24792. .sp
  24793. It\(aqs also possible to create custom master_tops modules. Simply place them into
  24794. \fBsalt://_tops\fP in the Salt fileserver and use the
  24795. \fBsaltutil.sync_tops\fP runner to sync
  24796. them. If this runner function is not available, they can manually be placed
  24797. into \fBextmods/tops\fP, relative to the master cachedir (in most cases the full
  24798. path will be \fB/var/cache/salt/master/extmods/tops\fP).
  24799. .sp
  24800. Custom tops modules are written like any other execution module, see the source
  24801. for the two modules above for examples of fully functional ones. Below is a
  24802. bare\-bones example:
  24803. .sp
  24804. \fB/etc/salt/master:\fP
  24805. .INDENT 0.0
  24806. .INDENT 3.5
  24807. .sp
  24808. .nf
  24809. .ft C
  24810. master_tops:
  24811. customtop: True
  24812. .ft P
  24813. .fi
  24814. .UNINDENT
  24815. .UNINDENT
  24816. .sp
  24817. \fBcustomtop.py:\fP (custom master_tops module)
  24818. .INDENT 0.0
  24819. .INDENT 3.5
  24820. .sp
  24821. .nf
  24822. .ft C
  24823. import logging
  24824. import sys
  24825. # Define the module\(aqs virtual name
  24826. __virtualname__ = \(aqcustomtop\(aq
  24827. log = logging.getLogger(__name__)
  24828. def __virtual__():
  24829. return __virtualname__
  24830. def top(**kwargs):
  24831. log.debug(\(aqCalling top in customtop\(aq)
  24832. return {\(aqbase\(aq: [\(aqtest\(aq]}
  24833. .ft P
  24834. .fi
  24835. .UNINDENT
  24836. .UNINDENT
  24837. .sp
  24838. \fIsalt minion state.show_top\fP should then display something like:
  24839. .INDENT 0.0
  24840. .INDENT 3.5
  24841. .sp
  24842. .nf
  24843. .ft C
  24844. $ salt minion state.show_top
  24845. minion
  24846. \-\-\-\-\-\-\-\-\-\-
  24847. base:
  24848. \- test
  24849. .ft P
  24850. .fi
  24851. .UNINDENT
  24852. .UNINDENT
  24853. .sp
  24854. \fBNOTE:\fP
  24855. .INDENT 0.0
  24856. .INDENT 3.5
  24857. If a master_tops module returns top file data for a
  24858. given minion, it will be added to the states configured in the top file. It
  24859. will \fInot\fP replace it altogether. The 2018.3.0 release adds additional
  24860. functionality allowing a minion to treat master_tops as the single source
  24861. of truth, irrespective of the top file.
  24862. .UNINDENT
  24863. .UNINDENT
  24864. .SS Returners
  24865. .sp
  24866. By default the return values of the commands sent to the Salt minions are
  24867. returned to the Salt master, however anything at all can be done with the results
  24868. data.
  24869. .sp
  24870. By using a Salt returner, results data can be redirected to external data\-stores
  24871. for analysis and archival.
  24872. .sp
  24873. Returners pull their configuration values from the Salt minions. Returners are only
  24874. configured once, which is generally at load time.
  24875. .sp
  24876. The returner interface allows the return data to be sent to any system that
  24877. can receive data. This means that return data can be sent to a Redis server,
  24878. a MongoDB server, a MySQL server, or any system.
  24879. .sp
  24880. \fBSEE ALSO:\fP
  24881. .INDENT 0.0
  24882. .INDENT 3.5
  24883. Full list of builtin returners
  24884. .UNINDENT
  24885. .UNINDENT
  24886. .SS Using Returners
  24887. .sp
  24888. All Salt commands will return the command data back to the master. Specifying
  24889. returners will ensure that the data is _also_ sent to the specified returner
  24890. interfaces.
  24891. .sp
  24892. Specifying what returners to use is done when the command is invoked:
  24893. .INDENT 0.0
  24894. .INDENT 3.5
  24895. .sp
  24896. .nf
  24897. .ft C
  24898. salt \(aq*\(aq test.version \-\-return redis_return
  24899. .ft P
  24900. .fi
  24901. .UNINDENT
  24902. .UNINDENT
  24903. .sp
  24904. This command will ensure that the redis_return returner is used.
  24905. .sp
  24906. It is also possible to specify multiple returners:
  24907. .INDENT 0.0
  24908. .INDENT 3.5
  24909. .sp
  24910. .nf
  24911. .ft C
  24912. salt \(aq*\(aq test.version \-\-return mongo_return,redis_return,cassandra_return
  24913. .ft P
  24914. .fi
  24915. .UNINDENT
  24916. .UNINDENT
  24917. .sp
  24918. In this scenario all three returners will be called and the data from the
  24919. test.version command will be sent out to the three named returners.
  24920. .SS Writing a Returner
  24921. .sp
  24922. Returners are Salt modules that allow the redirection of results data to targets other than the Salt Master.
  24923. .SS Returners Are Easy To Write!
  24924. .sp
  24925. Writing a Salt returner is straightforward.
  24926. .sp
  24927. A returner is a Python module containing at minimum a \fBreturner\fP function.
  24928. Other optional functions can be included to add support for
  24929. \fBmaster_job_cache\fP, external\-job\-cache, and \fI\%Event Returners\fP\&.
  24930. .INDENT 0.0
  24931. .TP
  24932. .B \fBreturner\fP
  24933. The \fBreturner\fP function must accept a single argument. The argument
  24934. contains return data from the called minion function. If the minion
  24935. function \fBtest.version\fP is called, the value of the argument will be a
  24936. dictionary. Run the following command from a Salt master to get a sample
  24937. of the dictionary:
  24938. .UNINDENT
  24939. .INDENT 0.0
  24940. .INDENT 3.5
  24941. .sp
  24942. .nf
  24943. .ft C
  24944. salt\-call \-\-local \-\-metadata test.version \-\-out=pprint
  24945. .ft P
  24946. .fi
  24947. .UNINDENT
  24948. .UNINDENT
  24949. .INDENT 0.0
  24950. .INDENT 3.5
  24951. .sp
  24952. .nf
  24953. .ft C
  24954. import redis
  24955. import salt.utils.json
  24956. def returner(ret):
  24957. \(aq\(aq\(aq
  24958. Return information to a redis server
  24959. \(aq\(aq\(aq
  24960. # Get a redis connection
  24961. serv = redis.Redis(
  24962. host=\(aqredis\-serv.example.com\(aq,
  24963. port=6379,
  24964. db=\(aq0\(aq)
  24965. serv.sadd("%(id)s:jobs" % ret, ret[\(aqjid\(aq])
  24966. serv.set("%(jid)s:%(id)s" % ret, salt.utils.json.dumps(ret[\(aqreturn\(aq]))
  24967. serv.sadd(\(aqjobs\(aq, ret[\(aqjid\(aq])
  24968. serv.sadd(ret[\(aqjid\(aq], ret[\(aqid\(aq])
  24969. .ft P
  24970. .fi
  24971. .UNINDENT
  24972. .UNINDENT
  24973. .sp
  24974. The above example of a returner set to send the data to a Redis server
  24975. serializes the data as JSON and sets it in redis.
  24976. .SS Using Custom Returner Modules
  24977. .sp
  24978. Place custom returners in a \fB_returners/\fP directory within the
  24979. \fBfile_roots\fP specified by the master config file.
  24980. .sp
  24981. Custom returners are distributed when any of the following are called:
  24982. .INDENT 0.0
  24983. .IP \(bu 2
  24984. \fBstate.apply\fP
  24985. .IP \(bu 2
  24986. \fBsaltutil.sync_returners\fP
  24987. .IP \(bu 2
  24988. \fBsaltutil.sync_all\fP
  24989. .UNINDENT
  24990. .sp
  24991. Any custom returners which have been synced to a minion that are named the
  24992. same as one of Salt\(aqs default set of returners will take the place of the
  24993. default returner with the same name.
  24994. .SS Naming the Returner
  24995. .sp
  24996. Note that a returner\(aqs default name is its filename (i.e. \fBfoo.py\fP becomes
  24997. returner \fBfoo\fP), but that its name can be overridden by using a
  24998. __virtual__ function\&. A good example of this can be
  24999. found in the \fI\%redis\fP returner, which is named \fBredis_return.py\fP but is
  25000. loaded as simply \fBredis\fP:
  25001. .INDENT 0.0
  25002. .INDENT 3.5
  25003. .sp
  25004. .nf
  25005. .ft C
  25006. try:
  25007. import redis
  25008. HAS_REDIS = True
  25009. except ImportError:
  25010. HAS_REDIS = False
  25011. __virtualname__ = \(aqredis\(aq
  25012. def __virtual__():
  25013. if not HAS_REDIS:
  25014. return False
  25015. return __virtualname__
  25016. .ft P
  25017. .fi
  25018. .UNINDENT
  25019. .UNINDENT
  25020. .SS Master Job Cache Support
  25021. .sp
  25022. \fBmaster_job_cache\fP, external\-job\-cache, and \fI\%Event Returners\fP\&.
  25023. Salt\(aqs \fBmaster_job_cache\fP allows returners to be used as a pluggable
  25024. replacement for the default_job_cache\&. In order to do so, a returner
  25025. must implement the following functions:
  25026. .sp
  25027. \fBNOTE:\fP
  25028. .INDENT 0.0
  25029. .INDENT 3.5
  25030. The code samples contained in this section were taken from the cassandra_cql
  25031. returner.
  25032. .UNINDENT
  25033. .UNINDENT
  25034. .INDENT 0.0
  25035. .TP
  25036. .B \fBprep_jid\fP
  25037. Ensures that job ids (jid) don\(aqt collide, unless passed_jid is provided.
  25038. .sp
  25039. \fBnocache\fP is an optional boolean that indicates if return data
  25040. should be cached. \fBpassed_jid\fP is a caller provided jid which should be
  25041. returned unconditionally.
  25042. .UNINDENT
  25043. .INDENT 0.0
  25044. .INDENT 3.5
  25045. .sp
  25046. .nf
  25047. .ft C
  25048. def prep_jid(nocache, passed_jid=None): # pylint: disable=unused\-argument
  25049. \(aq\(aq\(aq
  25050. Do any work necessary to prepare a JID, including sending a custom id
  25051. \(aq\(aq\(aq
  25052. return passed_jid if passed_jid is not None else salt.utils.jid.gen_jid()
  25053. .ft P
  25054. .fi
  25055. .UNINDENT
  25056. .UNINDENT
  25057. .INDENT 0.0
  25058. .TP
  25059. .B \fBsave_load\fP
  25060. Save job information. The \fBjid\fP is generated by \fBprep_jid\fP and should
  25061. be considered a unique identifier for the job. The jid, for example, could
  25062. be used as the primary/unique key in a database. The \fBload\fP is what is
  25063. returned to a Salt master by a minion. \fBminions\fP is a list of minions
  25064. that the job was run against. The following code example stores the load as
  25065. a JSON string in the salt.jids table.
  25066. .UNINDENT
  25067. .INDENT 0.0
  25068. .INDENT 3.5
  25069. .sp
  25070. .nf
  25071. .ft C
  25072. import salt.utils.json
  25073. def save_load(jid, load, minions=None):
  25074. \(aq\(aq\(aq
  25075. Save the load to the specified jid id
  25076. \(aq\(aq\(aq
  25077. query = \(aq\(aq\(aqINSERT INTO salt.jids (
  25078. jid, load
  25079. ) VALUES (
  25080. \(aq{0}\(aq, \(aq{1}\(aq
  25081. );\(aq\(aq\(aq.format(jid, salt.utils.json.dumps(load))
  25082. # cassandra_cql.cql_query may raise a CommandExecutionError
  25083. try:
  25084. __salt__[\(aqcassandra_cql.cql_query\(aq](query)
  25085. except CommandExecutionError:
  25086. log.critical(\(aqCould not save load in jids table.\(aq)
  25087. raise
  25088. except Exception as e:
  25089. log.critical(
  25090. \(aqUnexpected error while inserting into jids: {0}\(aq.format(e)
  25091. )
  25092. raise
  25093. .ft P
  25094. .fi
  25095. .UNINDENT
  25096. .UNINDENT
  25097. .INDENT 0.0
  25098. .TP
  25099. .B \fBget_load\fP
  25100. must accept a job id (jid) and return the job load stored by \fBsave_load\fP,
  25101. or an empty dictionary when not found.
  25102. .UNINDENT
  25103. .INDENT 0.0
  25104. .INDENT 3.5
  25105. .sp
  25106. .nf
  25107. .ft C
  25108. def get_load(jid):
  25109. \(aq\(aq\(aq
  25110. Return the load data that marks a specified jid
  25111. \(aq\(aq\(aq
  25112. query = \(aq\(aq\(aqSELECT load FROM salt.jids WHERE jid = \(aq{0}\(aq;\(aq\(aq\(aq.format(jid)
  25113. ret = {}
  25114. # cassandra_cql.cql_query may raise a CommandExecutionError
  25115. try:
  25116. data = __salt__[\(aqcassandra_cql.cql_query\(aq](query)
  25117. if data:
  25118. load = data[0].get(\(aqload\(aq)
  25119. if load:
  25120. ret = json.loads(load)
  25121. except CommandExecutionError:
  25122. log.critical(\(aqCould not get load from jids table.\(aq)
  25123. raise
  25124. except Exception as e:
  25125. log.critical(\(aq\(aq\(aqUnexpected error while getting load from
  25126. jids: {0}\(aq\(aq\(aq.format(str(e)))
  25127. raise
  25128. return ret
  25129. .ft P
  25130. .fi
  25131. .UNINDENT
  25132. .UNINDENT
  25133. .SS External Job Cache Support
  25134. .sp
  25135. Salt\(aqs external\-job\-cache extends the \fBmaster_job_cache\fP\&. External
  25136. Job Cache support requires the following functions in addition to what is
  25137. required for Master Job Cache support:
  25138. .INDENT 0.0
  25139. .TP
  25140. .B \fBget_jid\fP
  25141. Return a dictionary containing the information (load) returned by each
  25142. minion when the specified job id was executed.
  25143. .UNINDENT
  25144. .sp
  25145. Sample:
  25146. .INDENT 0.0
  25147. .INDENT 3.5
  25148. .sp
  25149. .nf
  25150. .ft C
  25151. {
  25152. "local": {
  25153. "master_minion": {
  25154. "fun_args": [],
  25155. "jid": "20150330121011408195",
  25156. "return": "2018.3.4",
  25157. "retcode": 0,
  25158. "success": true,
  25159. "cmd": "_return",
  25160. "_stamp": "2015\-03\-30T12:10:12.708663",
  25161. "fun": "test.version",
  25162. "id": "master_minion"
  25163. }
  25164. }
  25165. }
  25166. .ft P
  25167. .fi
  25168. .UNINDENT
  25169. .UNINDENT
  25170. .INDENT 0.0
  25171. .TP
  25172. .B \fBget_fun\fP
  25173. Return a dictionary of minions that called a given Salt function as their
  25174. last function call.
  25175. .UNINDENT
  25176. .sp
  25177. Sample:
  25178. .INDENT 0.0
  25179. .INDENT 3.5
  25180. .sp
  25181. .nf
  25182. .ft C
  25183. {
  25184. "local": {
  25185. "minion1": "test.version",
  25186. "minion3": "test.version",
  25187. "minion2": "test.version"
  25188. }
  25189. }
  25190. .ft P
  25191. .fi
  25192. .UNINDENT
  25193. .UNINDENT
  25194. .INDENT 0.0
  25195. .TP
  25196. .B \fBget_jids\fP
  25197. Return a list of all job ids.
  25198. .UNINDENT
  25199. .sp
  25200. Sample:
  25201. .INDENT 0.0
  25202. .INDENT 3.5
  25203. .sp
  25204. .nf
  25205. .ft C
  25206. {
  25207. "local": [
  25208. "20150330121011408195",
  25209. "20150330195922139916"
  25210. ]
  25211. }
  25212. .ft P
  25213. .fi
  25214. .UNINDENT
  25215. .UNINDENT
  25216. .INDENT 0.0
  25217. .TP
  25218. .B \fBget_minions\fP
  25219. Returns a list of minions
  25220. .UNINDENT
  25221. .sp
  25222. Sample:
  25223. .INDENT 0.0
  25224. .INDENT 3.5
  25225. .sp
  25226. .nf
  25227. .ft C
  25228. {
  25229. "local": [
  25230. "minion3",
  25231. "minion2",
  25232. "minion1",
  25233. "master_minion"
  25234. ]
  25235. }
  25236. .ft P
  25237. .fi
  25238. .UNINDENT
  25239. .UNINDENT
  25240. .sp
  25241. Please refer to one or more of the existing returners (i.e. mysql,
  25242. cassandra_cql) if you need further clarification.
  25243. .SS Event Support
  25244. .sp
  25245. An \fBevent_return\fP function must be added to the returner module to allow
  25246. events to be logged from a master via the returner. A list of events are passed
  25247. to the function by the master.
  25248. .sp
  25249. The following example was taken from the MySQL returner. In this example, each
  25250. event is inserted into the salt_events table keyed on the event tag. The tag
  25251. contains the jid and therefore is guaranteed to be unique.
  25252. .INDENT 0.0
  25253. .INDENT 3.5
  25254. .sp
  25255. .nf
  25256. .ft C
  25257. import salt.utils.json
  25258. def event_return(events):
  25259. \(aq\(aq\(aq
  25260. Return event to mysql server
  25261. Requires that configuration be enabled via \(aqevent_return\(aq
  25262. option in master config.
  25263. \(aq\(aq\(aq
  25264. with _get_serv(events, commit=True) as cur:
  25265. for event in events:
  25266. tag = event.get(\(aqtag\(aq, \(aq\(aq)
  25267. data = event.get(\(aqdata\(aq, \(aq\(aq)
  25268. sql = \(aq\(aq\(aqINSERT INTO \(gasalt_events\(ga (\(gatag\(ga, \(gadata\(ga, \(gamaster_id\(ga )
  25269. VALUES (%s, %s, %s)\(aq\(aq\(aq
  25270. cur.execute(sql, (tag, salt.utils.json.dumps(data), __opts__[\(aqid\(aq]))
  25271. .ft P
  25272. .fi
  25273. .UNINDENT
  25274. .UNINDENT
  25275. .SS Testing the Returner
  25276. .sp
  25277. The \fBreturner\fP, \fBprep_jid\fP, \fBsave_load\fP, \fBget_load\fP, and
  25278. \fBevent_return\fP functions can be tested by configuring the
  25279. \fBmaster_job_cache\fP and \fI\%Event Returners\fP in the master config
  25280. file and submitting a job to \fBtest.version\fP each minion from the master.
  25281. .sp
  25282. Once you have successfully exercised the Master Job Cache functions, test the
  25283. External Job Cache functions using the \fBret\fP execution module.
  25284. .INDENT 0.0
  25285. .INDENT 3.5
  25286. .sp
  25287. .nf
  25288. .ft C
  25289. salt\-call ret.get_jids cassandra_cql \-\-output=json
  25290. salt\-call ret.get_fun cassandra_cql test.version \-\-output=json
  25291. salt\-call ret.get_minions cassandra_cql \-\-output=json
  25292. salt\-call ret.get_jid cassandra_cql 20150330121011408195 \-\-output=json
  25293. .ft P
  25294. .fi
  25295. .UNINDENT
  25296. .UNINDENT
  25297. .SS Event Returners
  25298. .sp
  25299. For maximum visibility into the history of events across a Salt
  25300. infrastructure, all events seen by a salt master may be logged to one or
  25301. more returners.
  25302. .sp
  25303. To enable event logging, set the \fBevent_return\fP configuration option in the
  25304. master config to the returner(s) which should be designated as the handler
  25305. for event returns.
  25306. .sp
  25307. \fBNOTE:\fP
  25308. .INDENT 0.0
  25309. .INDENT 3.5
  25310. Not all returners support event returns. Verify a returner has an
  25311. \fBevent_return()\fP function before using.
  25312. .UNINDENT
  25313. .UNINDENT
  25314. .sp
  25315. \fBNOTE:\fP
  25316. .INDENT 0.0
  25317. .INDENT 3.5
  25318. On larger installations, many hundreds of events may be generated on a
  25319. busy master every second. Be certain to closely monitor the storage of
  25320. a given returner as Salt can easily overwhelm an underpowered server
  25321. with thousands of returns.
  25322. .UNINDENT
  25323. .UNINDENT
  25324. .SS Full List of Returners
  25325. .SS returner modules
  25326. .TS
  25327. center;
  25328. |l|l|.
  25329. _
  25330. T{
  25331. \fBappoptics_return\fP
  25332. T} T{
  25333. T}
  25334. _
  25335. T{
  25336. \fBcarbon_return\fP
  25337. T} T{
  25338. T}
  25339. _
  25340. T{
  25341. \fBcassandra_cql_return\fP
  25342. T} T{
  25343. T}
  25344. _
  25345. T{
  25346. \fBcassandra_return\fP
  25347. T} T{
  25348. T}
  25349. _
  25350. T{
  25351. \fBcouchbase_return\fP
  25352. T} T{
  25353. T}
  25354. _
  25355. T{
  25356. \fBcouchdb_return\fP
  25357. T} T{
  25358. T}
  25359. _
  25360. T{
  25361. \fBdjango_return\fP
  25362. T} T{
  25363. T}
  25364. _
  25365. T{
  25366. \fBelasticsearch_return\fP
  25367. T} T{
  25368. T}
  25369. _
  25370. T{
  25371. \fBetcd_return\fP
  25372. T} T{
  25373. T}
  25374. _
  25375. T{
  25376. \fBhighstate_return\fP
  25377. T} T{
  25378. T}
  25379. _
  25380. T{
  25381. \fBinfluxdb_return\fP
  25382. T} T{
  25383. T}
  25384. _
  25385. T{
  25386. \fBkafka_return\fP
  25387. T} T{
  25388. T}
  25389. _
  25390. T{
  25391. \fBlibrato_return\fP
  25392. T} T{
  25393. T}
  25394. _
  25395. T{
  25396. \fBlocal\fP
  25397. T} T{
  25398. The local returner is used to test the returner interface, it just prints the return data to the console to verify that it is being passed properly
  25399. T}
  25400. _
  25401. T{
  25402. \fBlocal_cache\fP
  25403. T} T{
  25404. T}
  25405. _
  25406. T{
  25407. \fBmattermost_returner\fP
  25408. T} T{
  25409. T}
  25410. _
  25411. T{
  25412. \fBmemcache_return\fP
  25413. T} T{
  25414. T}
  25415. _
  25416. T{
  25417. \fBmongo_future_return\fP
  25418. T} T{
  25419. T}
  25420. _
  25421. T{
  25422. \fBmongo_return\fP
  25423. T} T{
  25424. T}
  25425. _
  25426. T{
  25427. \fBmulti_returner\fP
  25428. T} T{
  25429. T}
  25430. _
  25431. T{
  25432. \fBmysql\fP
  25433. T} T{
  25434. T}
  25435. _
  25436. T{
  25437. \fBnagios_nrdp_return\fP
  25438. T} T{
  25439. Return salt data to Nagios
  25440. T}
  25441. _
  25442. T{
  25443. \fBodbc\fP
  25444. T} T{
  25445. T}
  25446. _
  25447. T{
  25448. \fBpgjsonb\fP
  25449. T} T{
  25450. T}
  25451. _
  25452. T{
  25453. \fBpostgres\fP
  25454. T} T{
  25455. T}
  25456. _
  25457. T{
  25458. \fBpostgres_local_cache\fP
  25459. T} T{
  25460. T}
  25461. _
  25462. T{
  25463. \fBpushover_returner\fP
  25464. T} T{
  25465. Return salt data via pushover (\fI\%http://www.pushover.net\fP)
  25466. T}
  25467. _
  25468. T{
  25469. \fBrawfile_json\fP
  25470. T} T{
  25471. T}
  25472. _
  25473. T{
  25474. \fBredis_return\fP
  25475. T} T{
  25476. T}
  25477. _
  25478. T{
  25479. \fBsentry_return\fP
  25480. T} T{
  25481. T}
  25482. _
  25483. T{
  25484. \fBslack_returner\fP
  25485. T} T{
  25486. T}
  25487. _
  25488. T{
  25489. \fBslack_webhook_return\fP
  25490. T} T{
  25491. T}
  25492. _
  25493. T{
  25494. \fBsms_return\fP
  25495. T} T{
  25496. Return data by SMS.
  25497. T}
  25498. _
  25499. T{
  25500. \fBsmtp_return\fP
  25501. T} T{
  25502. T}
  25503. _
  25504. T{
  25505. \fBsplunk\fP
  25506. T} T{
  25507. T}
  25508. _
  25509. T{
  25510. \fBsqlite3_return\fP
  25511. T} T{
  25512. T}
  25513. _
  25514. T{
  25515. \fBsyslog_return\fP
  25516. T} T{
  25517. T}
  25518. _
  25519. T{
  25520. \fBtelegram_return\fP
  25521. T} T{
  25522. Return salt data via Telegram.
  25523. T}
  25524. _
  25525. T{
  25526. \fBxmpp_return\fP
  25527. T} T{
  25528. Return salt data via xmpp
  25529. T}
  25530. _
  25531. T{
  25532. \fBzabbix_return\fP
  25533. T} T{
  25534. Return salt data to Zabbix
  25535. T}
  25536. _
  25537. .TE
  25538. .SS salt.returners.local
  25539. .sp
  25540. The local returner is used to test the returner interface, it just prints the
  25541. return data to the console to verify that it is being passed properly
  25542. .sp
  25543. To use the local returner, append \(aq\-\-return local\(aq to the salt command. ex:
  25544. .INDENT 0.0
  25545. .INDENT 3.5
  25546. .sp
  25547. .nf
  25548. .ft C
  25549. salt \(aq*\(aq test.ping \-\-return local
  25550. .ft P
  25551. .fi
  25552. .UNINDENT
  25553. .UNINDENT
  25554. .INDENT 0.0
  25555. .TP
  25556. .B salt.returners.local.event_return(event)
  25557. Print event return data to the terminal to verify functionality
  25558. .UNINDENT
  25559. .INDENT 0.0
  25560. .TP
  25561. .B salt.returners.local.returner(ret)
  25562. Print the return data to the terminal to verify functionality
  25563. .UNINDENT
  25564. .SS salt.returners.nagios_nrdp_return
  25565. .sp
  25566. Return salt data to Nagios
  25567. .sp
  25568. The following fields can be set in the minion conf file:
  25569. .INDENT 0.0
  25570. .INDENT 3.5
  25571. .sp
  25572. .nf
  25573. .ft C
  25574. nagios.url (required)
  25575. nagios.token (required)
  25576. nagios.service (optional)
  25577. nagios.check_type (optional)
  25578. .ft P
  25579. .fi
  25580. .UNINDENT
  25581. .UNINDENT
  25582. .sp
  25583. Alternative configuration values can be used by prefacing the configuration.
  25584. Any values not found in the alternative configuration will be pulled from
  25585. the default location:
  25586. .INDENT 0.0
  25587. .INDENT 3.5
  25588. .sp
  25589. .nf
  25590. .ft C
  25591. nagios.url
  25592. nagios.token
  25593. nagios.service
  25594. .ft P
  25595. .fi
  25596. .UNINDENT
  25597. .UNINDENT
  25598. .sp
  25599. Nagios settings may also be configured as:
  25600. .INDENT 0.0
  25601. .INDENT 3.5
  25602. .sp
  25603. .nf
  25604. .ft C
  25605. nagios:
  25606. url: http://localhost/nrdp
  25607. token: r4nd0mt0k3n
  25608. service: service\-check
  25609. alternative.nagios:
  25610. url: http://localhost/nrdp
  25611. token: r4nd0mt0k3n
  25612. service: another\-service\-check
  25613. To use the Nagios returner, append \(aq\-\-return nagios\(aq to the salt command. ex:
  25614. \&.. code\-block:: bash
  25615. salt \(aq*\(aq test.ping \-\-return nagios
  25616. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command. ex:
  25617. salt \(aq*\(aq test.ping \-\-return nagios \-\-return_config alternative
  25618. .ft P
  25619. .fi
  25620. .UNINDENT
  25621. .UNINDENT
  25622. .sp
  25623. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  25624. .sp
  25625. New in version 2016.3.0.
  25626. .INDENT 0.0
  25627. .INDENT 3.5
  25628. .sp
  25629. .nf
  25630. .ft C
  25631. salt \(aq*\(aq test.ping \-\-return nagios \-\-return_kwargs \(aq{"service": "service\-name"}\(aq
  25632. .ft P
  25633. .fi
  25634. .UNINDENT
  25635. .UNINDENT
  25636. .INDENT 0.0
  25637. .TP
  25638. .B salt.returners.nagios_nrdp_return.returner(ret)
  25639. Send a message to Nagios with the data
  25640. .UNINDENT
  25641. .SS salt.returners.pushover_returner
  25642. .sp
  25643. Return salt data via pushover (\fI\%http://www.pushover.net\fP)
  25644. .sp
  25645. New in version 2016.3.0.
  25646. .sp
  25647. The following fields can be set in the minion conf file:
  25648. .INDENT 0.0
  25649. .INDENT 3.5
  25650. .sp
  25651. .nf
  25652. .ft C
  25653. pushover.user (required)
  25654. pushover.token (required)
  25655. pushover.title (optional)
  25656. pushover.device (optional)
  25657. pushover.priority (optional)
  25658. pushover.expire (optional)
  25659. pushover.retry (optional)
  25660. pushover.profile (optional)
  25661. .ft P
  25662. .fi
  25663. .UNINDENT
  25664. .UNINDENT
  25665. .sp
  25666. Alternative configuration values can be used by prefacing the configuration.
  25667. Any values not found in the alternative configuration will be pulled from
  25668. the default location:
  25669. .INDENT 0.0
  25670. .INDENT 3.5
  25671. .sp
  25672. .nf
  25673. .ft C
  25674. alternative.pushover.user
  25675. alternative.pushover.token
  25676. alternative.pushover.title
  25677. alternative.pushover.device
  25678. alternative.pushover.priority
  25679. alternative.pushover.expire
  25680. alternative.pushover.retry
  25681. .ft P
  25682. .fi
  25683. .UNINDENT
  25684. .UNINDENT
  25685. .sp
  25686. PushOver settings may also be configured as:
  25687. .INDENT 0.0
  25688. .INDENT 3.5
  25689. .sp
  25690. .nf
  25691. .ft C
  25692. pushover:
  25693. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25694. token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25695. title: Salt Returner
  25696. device: phone
  25697. priority: \-1
  25698. expire: 3600
  25699. retry: 5
  25700. alternative.pushover:
  25701. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25702. token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25703. title: Salt Returner
  25704. device: phone
  25705. priority: 1
  25706. expire: 4800
  25707. retry: 2
  25708. pushover_profile:
  25709. pushover.token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25710. pushover:
  25711. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25712. profile: pushover_profile
  25713. alternative.pushover:
  25714. user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25715. profile: pushover_profile
  25716. To use the PushOver returner, append \(aq\-\-return pushover\(aq to the salt command. ex:
  25717. \&.. code\-block:: bash
  25718. salt \(aq*\(aq test.ping \-\-return pushover
  25719. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command. ex:
  25720. salt \(aq*\(aq test.ping \-\-return pushover \-\-return_config alternative
  25721. .ft P
  25722. .fi
  25723. .UNINDENT
  25724. .UNINDENT
  25725. .sp
  25726. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  25727. .INDENT 0.0
  25728. .INDENT 3.5
  25729. .sp
  25730. .nf
  25731. .ft C
  25732. salt \(aq*\(aq test.ping \-\-return pushover \-\-return_kwargs \(aq{"title": "Salt is awesome!"}\(aq
  25733. .ft P
  25734. .fi
  25735. .UNINDENT
  25736. .UNINDENT
  25737. .INDENT 0.0
  25738. .TP
  25739. .B salt.returners.pushover_returner.returner(ret)
  25740. Send an PushOver message with the data
  25741. .UNINDENT
  25742. .SS salt.returners.sms_return
  25743. .sp
  25744. Return data by SMS.
  25745. .sp
  25746. New in version 2015.5.0.
  25747. .INDENT 0.0
  25748. .TP
  25749. .B maintainer
  25750. Damian Myerscough
  25751. .TP
  25752. .B maturity
  25753. new
  25754. .TP
  25755. .B depends
  25756. twilio
  25757. .TP
  25758. .B platform
  25759. all
  25760. .UNINDENT
  25761. .sp
  25762. To enable this returner the minion will need the python twilio library
  25763. installed and the following values configured in the minion or master
  25764. config:
  25765. .INDENT 0.0
  25766. .INDENT 3.5
  25767. .sp
  25768. .nf
  25769. .ft C
  25770. twilio.sid: \(aqXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\(aq
  25771. twilio.token: \(aqXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\(aq
  25772. twilio.to: \(aq+1415XXXXXXX\(aq
  25773. twilio.from: \(aq+1650XXXXXXX\(aq
  25774. .ft P
  25775. .fi
  25776. .UNINDENT
  25777. .UNINDENT
  25778. .sp
  25779. To use the sms returner, append \(aq\-\-return sms\(aq to the salt command.
  25780. .INDENT 0.0
  25781. .INDENT 3.5
  25782. .sp
  25783. .nf
  25784. .ft C
  25785. salt \(aq*\(aq test.ping \-\-return sms
  25786. .ft P
  25787. .fi
  25788. .UNINDENT
  25789. .UNINDENT
  25790. .INDENT 0.0
  25791. .TP
  25792. .B salt.returners.sms_return.returner(ret)
  25793. Return a response in an SMS message
  25794. .UNINDENT
  25795. .SS salt.returners.telegram_return
  25796. .sp
  25797. Return salt data via Telegram.
  25798. .sp
  25799. The following fields can be set in the minion conf file:
  25800. .INDENT 0.0
  25801. .INDENT 3.5
  25802. .sp
  25803. .nf
  25804. .ft C
  25805. telegram.chat_id (required)
  25806. telegram.token (required)
  25807. .ft P
  25808. .fi
  25809. .UNINDENT
  25810. .UNINDENT
  25811. .sp
  25812. Telegram settings may also be configured as:
  25813. .INDENT 0.0
  25814. .INDENT 3.5
  25815. .sp
  25816. .nf
  25817. .ft C
  25818. telegram:
  25819. chat_id: 000000000
  25820. token: 000000000:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  25821. .ft P
  25822. .fi
  25823. .UNINDENT
  25824. .UNINDENT
  25825. .sp
  25826. To use the Telegram return, append \(aq\-\-return telegram\(aq to the salt command.
  25827. .INDENT 0.0
  25828. .INDENT 3.5
  25829. .sp
  25830. .nf
  25831. .ft C
  25832. salt \(aq*\(aq test.ping \-\-return telegram
  25833. .ft P
  25834. .fi
  25835. .UNINDENT
  25836. .UNINDENT
  25837. .INDENT 0.0
  25838. .TP
  25839. .B salt.returners.telegram_return.returner(ret)
  25840. Send a Telegram message with the data.
  25841. .INDENT 7.0
  25842. .TP
  25843. .B Parameters
  25844. \fBret\fP \-\- The data to be sent.
  25845. .TP
  25846. .B Returns
  25847. Boolean if message was sent successfully.
  25848. .UNINDENT
  25849. .UNINDENT
  25850. .SS salt.returners.xmpp_return
  25851. .sp
  25852. Return salt data via xmpp
  25853. .INDENT 0.0
  25854. .TP
  25855. .B depends
  25856. sleekxmpp >= 1.3.1
  25857. .UNINDENT
  25858. .sp
  25859. The following fields can be set in the minion conf file:
  25860. .INDENT 0.0
  25861. .INDENT 3.5
  25862. .sp
  25863. .nf
  25864. .ft C
  25865. xmpp.jid (required)
  25866. xmpp.password (required)
  25867. xmpp.recipient (required)
  25868. xmpp.profile (optional)
  25869. .ft P
  25870. .fi
  25871. .UNINDENT
  25872. .UNINDENT
  25873. .sp
  25874. Alternative configuration values can be used by prefacing the configuration.
  25875. Any values not found in the alternative configuration will be pulled from
  25876. the default location:
  25877. .INDENT 0.0
  25878. .INDENT 3.5
  25879. .sp
  25880. .nf
  25881. .ft C
  25882. xmpp.jid
  25883. xmpp.password
  25884. xmpp.recipient
  25885. xmpp.profile
  25886. .ft P
  25887. .fi
  25888. .UNINDENT
  25889. .UNINDENT
  25890. .sp
  25891. XMPP settings may also be configured as:
  25892. .INDENT 0.0
  25893. .INDENT 3.5
  25894. .sp
  25895. .nf
  25896. .ft C
  25897. xmpp:
  25898. jid: user@xmpp.domain.com/resource
  25899. password: password
  25900. recipient: user@xmpp.example.com
  25901. alternative.xmpp:
  25902. jid: user@xmpp.domain.com/resource
  25903. password: password
  25904. recipient: someone@xmpp.example.com
  25905. xmpp_profile:
  25906. xmpp.jid: user@xmpp.domain.com/resource
  25907. xmpp.password: password
  25908. xmpp:
  25909. profile: xmpp_profile
  25910. recipient: user@xmpp.example.com
  25911. alternative.xmpp:
  25912. profile: xmpp_profile
  25913. recipient: someone\-else@xmpp.example.com
  25914. .ft P
  25915. .fi
  25916. .UNINDENT
  25917. .UNINDENT
  25918. .sp
  25919. To use the XMPP returner, append \(aq\-\-return xmpp\(aq to the salt command.
  25920. .INDENT 0.0
  25921. .INDENT 3.5
  25922. .sp
  25923. .nf
  25924. .ft C
  25925. salt \(aq*\(aq test.ping \-\-return xmpp
  25926. .ft P
  25927. .fi
  25928. .UNINDENT
  25929. .UNINDENT
  25930. .sp
  25931. To use the alternative configuration, append \(aq\-\-return_config alternative\(aq to the salt command.
  25932. .sp
  25933. New in version 2015.5.0.
  25934. .INDENT 0.0
  25935. .INDENT 3.5
  25936. .sp
  25937. .nf
  25938. .ft C
  25939. salt \(aq*\(aq test.ping \-\-return xmpp \-\-return_config alternative
  25940. .ft P
  25941. .fi
  25942. .UNINDENT
  25943. .UNINDENT
  25944. .sp
  25945. To override individual configuration items, append \-\-return_kwargs \(aq{"key:": "value"}\(aq to the salt command.
  25946. .sp
  25947. New in version 2016.3.0.
  25948. .INDENT 0.0
  25949. .INDENT 3.5
  25950. .sp
  25951. .nf
  25952. .ft C
  25953. salt \(aq*\(aq test.ping \-\-return xmpp \-\-return_kwargs \(aq{"recipient": "someone\-else@xmpp.example.com"}\(aq
  25954. .ft P
  25955. .fi
  25956. .UNINDENT
  25957. .UNINDENT
  25958. .INDENT 0.0
  25959. .TP
  25960. .B class salt.returners.xmpp_return.SendMsgBot(jid, password, recipient, msg)
  25961. .INDENT 7.0
  25962. .TP
  25963. .B start(event)
  25964. .UNINDENT
  25965. .UNINDENT
  25966. .INDENT 0.0
  25967. .TP
  25968. .B salt.returners.xmpp_return.returner(ret)
  25969. Send an xmpp message with the data
  25970. .UNINDENT
  25971. .SS salt.returners.zabbix_return module
  25972. .sp
  25973. Return salt data to Zabbix
  25974. .sp
  25975. The following Type: "Zabbix trapper" with "Type of information" Text items are required:
  25976. .INDENT 0.0
  25977. .INDENT 3.5
  25978. .sp
  25979. .nf
  25980. .ft C
  25981. Key: salt.trap.info
  25982. Key: salt.trap.warning
  25983. Key: salt.trap.high
  25984. .ft P
  25985. .fi
  25986. .UNINDENT
  25987. .UNINDENT
  25988. .sp
  25989. To use the Zabbix returner, append \(aq\-\-return zabbix\(aq to the salt command. ex:
  25990. .INDENT 0.0
  25991. .INDENT 3.5
  25992. .sp
  25993. .nf
  25994. .ft C
  25995. salt \(aq*\(aq test.ping \-\-return zabbix
  25996. .ft P
  25997. .fi
  25998. .UNINDENT
  25999. .UNINDENT
  26000. .INDENT 0.0
  26001. .TP
  26002. .B salt.returners.zabbix_return.returner(ret)
  26003. .UNINDENT
  26004. .INDENT 0.0
  26005. .TP
  26006. .B salt.returners.zabbix_return.save_load(jid, load, minions=None)
  26007. Included for API consistency
  26008. .UNINDENT
  26009. .INDENT 0.0
  26010. .TP
  26011. .B salt.returners.zabbix_return.zabbix_send(key, output)
  26012. .UNINDENT
  26013. .INDENT 0.0
  26014. .TP
  26015. .B salt.returners.zabbix_return.zbx()
  26016. .UNINDENT
  26017. .SS Renderers
  26018. .sp
  26019. The Salt state system operates by gathering information from common data types
  26020. such as lists, dictionaries, and strings that would be familiar to any
  26021. developer.
  26022. .sp
  26023. Salt Renderers translate input from the format in which it is written into
  26024. Python data structures.
  26025. .sp
  26026. The default renderer is set in the master/minion configuration file using the
  26027. \fBrenderer\fP config option, which defaults to \fBjinja|yaml\fP\&.
  26028. .SS Two Kinds of Renderers
  26029. .sp
  26030. Renderers fall into one of two categories, based on what they output: text or
  26031. data. The one exception to this would be the \fBpure python\fP renderer, which can be used in either capacity.
  26032. .SS Text Renderers
  26033. .sp
  26034. A text renderer returns text. These include templating engines such as
  26035. \fBjinja\fP, \fBmako\fP, and
  26036. \fBgenshi\fP, as well as the \fBgpg\fP renderer. The following are all text renderers:
  26037. .INDENT 0.0
  26038. .IP \(bu 2
  26039. \fBaws_kms\fP
  26040. .IP \(bu 2
  26041. \fBcheetah\fP
  26042. .IP \(bu 2
  26043. \fBgenshi\fP
  26044. .IP \(bu 2
  26045. \fBgpg\fP
  26046. .IP \(bu 2
  26047. \fBjinja\fP
  26048. .IP \(bu 2
  26049. \fBmako\fP
  26050. .IP \(bu 2
  26051. \fBnacl\fP
  26052. .IP \(bu 2
  26053. \fBpass\fP
  26054. .IP \(bu 2
  26055. \fBpy\fP
  26056. .IP \(bu 2
  26057. \fBwempy\fP
  26058. .UNINDENT
  26059. .SS Data Renderers
  26060. .sp
  26061. A data renderer returns a Python data structure (typically a dictionary). The
  26062. following are all data renderers:
  26063. .INDENT 0.0
  26064. .IP \(bu 2
  26065. \fBdson\fP
  26066. .IP \(bu 2
  26067. \fBhjson\fP
  26068. .IP \(bu 2
  26069. \fBjson5\fP
  26070. .IP \(bu 2
  26071. \fBjson\fP
  26072. .IP \(bu 2
  26073. \fBpydsl\fP
  26074. .IP \(bu 2
  26075. \fBpyobjects\fP
  26076. .IP \(bu 2
  26077. \fBpy\fP
  26078. .IP \(bu 2
  26079. \fBstateconf\fP
  26080. .IP \(bu 2
  26081. \fByamlex\fP
  26082. .IP \(bu 2
  26083. \fByaml\fP
  26084. .UNINDENT
  26085. .SS Overriding the Default Renderer
  26086. .sp
  26087. It can sometimes be beneficial to write an SLS file using a renderer other than
  26088. the default one. This can be done by using a "shebang"\-like syntax on the first
  26089. line of the SLS file:
  26090. .sp
  26091. Here is an example of using the \fBpure python\fP renderer
  26092. to install a package:
  26093. .INDENT 0.0
  26094. .INDENT 3.5
  26095. .sp
  26096. .nf
  26097. .ft C
  26098. #!py
  26099. def run():
  26100. \(aq\(aq\(aq
  26101. Install version 1.5\-1.el7 of package "python\-foo"
  26102. \(aq\(aq\(aq
  26103. return {
  26104. \(aqinclude\(aq: [\(aqpython\(aq],
  26105. \(aqpython\-foo\(aq: {
  26106. \(aqpkg.installed\(aq: [
  26107. {\(aqversion\(aq: \(aq1.5\-1.el7\(aq},
  26108. ]
  26109. }
  26110. }
  26111. .ft P
  26112. .fi
  26113. .UNINDENT
  26114. .UNINDENT
  26115. .sp
  26116. This would be equivalent to the following:
  26117. .INDENT 0.0
  26118. .INDENT 3.5
  26119. .sp
  26120. .nf
  26121. .ft C
  26122. include:
  26123. \- python
  26124. python\-foo:
  26125. pkg.installed:
  26126. \- version: \(aq1.5\-1.el7\(aq
  26127. .ft P
  26128. .fi
  26129. .UNINDENT
  26130. .UNINDENT
  26131. .SS Composing Renderers (a.k.a. The "Render Pipeline")
  26132. .sp
  26133. A render pipeline can be composed from other renderers by connecting them in a
  26134. series of "pipes" (i.e. \fB|\fP). The renderers will be evaluated from left to
  26135. right, with each renderer receiving the result of the previous renderer\(aqs
  26136. execution.
  26137. .sp
  26138. Take for example the default renderer (\fBjinja|yaml\fP). The file is evaluated
  26139. first a jinja template, and the result of that template is evaluated as a YAML
  26140. document.
  26141. .sp
  26142. Other render pipeline combinations include:
  26143. .INDENT 0.0
  26144. .INDENT 3.5
  26145. .INDENT 0.0
  26146. .TP
  26147. .B \fByaml\fP
  26148. Just YAML, no templating.
  26149. .TP
  26150. .B \fBmako|yaml\fP
  26151. This passes the input to the \fBmako\fP renderer, with its output fed into
  26152. the \fByaml\fP renderer.
  26153. .TP
  26154. .B \fBjinja|mako|yaml\fP
  26155. This one allows you to use both jinja and mako templating syntax in the
  26156. input and then parse the final rendered output as YAML.
  26157. .UNINDENT
  26158. .UNINDENT
  26159. .UNINDENT
  26160. .sp
  26161. The following is a contrived example SLS file using the \fBjinja|mako|yaml\fP
  26162. render pipeline:
  26163. .INDENT 0.0
  26164. .INDENT 3.5
  26165. .sp
  26166. .nf
  26167. .ft C
  26168. #!jinja|mako|yaml
  26169. An_Example:
  26170. cmd.run:
  26171. \- name: |
  26172. echo "Using Salt ${grains[\(aqsaltversion\(aq]}" \e
  26173. "from path {{grains[\(aqsaltpath\(aq]}}."
  26174. \- cwd: /
  26175. <%doc> ${...} is Mako\(aqs notation, and so is this comment. </%doc>
  26176. {# Similarly, {{...}} is Jinja\(aqs notation, and so is this comment. #}
  26177. .ft P
  26178. .fi
  26179. .UNINDENT
  26180. .UNINDENT
  26181. .sp
  26182. \fBIMPORTANT:\fP
  26183. .INDENT 0.0
  26184. .INDENT 3.5
  26185. Keep in mind that not all renderers can be used alone or with any other
  26186. renderers. For example, text renderers shouldn\(aqt be used alone as their
  26187. outputs are just strings, which still need to be parsed by another renderer
  26188. to turn them into Python data structures.
  26189. .sp
  26190. For example, it would not make sense to use \fByaml|jinja\fP because the
  26191. output of the \fByaml\fP renderer is a Python data
  26192. structure, and the \fBjinja\fP renderer only
  26193. accepts text as input.
  26194. .sp
  26195. Therefore, when combining renderers, you should know what each renderer
  26196. accepts as input and what it returns as output. One way of thinking about
  26197. it is that you can chain together multiple text renderers, but the pipeline
  26198. \fImust\fP end in a data renderer. Similarly, since the text renderers in Salt
  26199. don\(aqt accept data structures as input, a text renderer should usually not
  26200. come after a data renderer. It\(aqs technically \fIpossible\fP to write a renderer
  26201. that takes a data structure as input and returns a string, but no such
  26202. renderer is distributed with Salt.
  26203. .UNINDENT
  26204. .UNINDENT
  26205. .SS Writing Renderers
  26206. .sp
  26207. A custom renderer must be a Python module which implements a \fBrender\fP
  26208. function. This function must implement three positional arguments:
  26209. .INDENT 0.0
  26210. .IP 1. 3
  26211. \fBdata\fP \- Can be called whatever you like. This is the input to be
  26212. rendered.
  26213. .IP 2. 3
  26214. \fBsaltenv\fP
  26215. .IP 3. 3
  26216. \fBsls\fP
  26217. .UNINDENT
  26218. .sp
  26219. The first is the important one, and the 2nd and 3rd must be included since Salt
  26220. needs to pass this info to each render, even though it is only used by template
  26221. renderers.
  26222. .sp
  26223. Renderers should be written so that the \fBdata\fP argument can accept either
  26224. strings or file\-like objects as input. For example:
  26225. .INDENT 0.0
  26226. .INDENT 3.5
  26227. .sp
  26228. .nf
  26229. .ft C
  26230. import mycoolmodule
  26231. from salt.ext import six
  26232. def render(data, saltenv=\(aqbase\(aq, sls=\(aq\(aq, **kwargs):
  26233. if not isinstance(data, six.string_types):
  26234. # Read from file\-like object
  26235. data = data.read()
  26236. return mycoolmodule.do_something(data)
  26237. .ft P
  26238. .fi
  26239. .UNINDENT
  26240. .UNINDENT
  26241. .sp
  26242. Custom renderers should be placed within \fBsalt://_renderers/\fP, so that they
  26243. can be synced to minions. They are synced when any of the following are run:
  26244. .INDENT 0.0
  26245. .IP \(bu 2
  26246. \fBstate.apply\fP
  26247. .IP \(bu 2
  26248. \fBsaltutil.sync_renderers\fP
  26249. .IP \(bu 2
  26250. \fBsaltutil.sync_all\fP
  26251. .UNINDENT
  26252. .sp
  26253. Any custom renderers which have been synced to a minion, that are named the
  26254. same as one of Salt\(aqs default set of renderers, will take the place of the
  26255. default renderer with the same name.
  26256. .sp
  26257. \fBNOTE:\fP
  26258. .INDENT 0.0
  26259. .INDENT 3.5
  26260. Renderers can also be synced from \fBsalt://_renderers/\fP to the Master
  26261. using either the \fBsaltutil.sync_renderers\fP or \fBsaltutil.sync_all\fP runner function.
  26262. .UNINDENT
  26263. .UNINDENT
  26264. .SS Examples
  26265. .sp
  26266. The best place to find examples of renderers is in the Salt source code.
  26267. .sp
  26268. Documentation for renderers included with Salt can be found here:
  26269. .sp
  26270. \fI\%https://github.com/saltstack/salt/blob/master/salt/renderers\fP
  26271. .sp
  26272. Here is a simple YAML renderer example:
  26273. .INDENT 0.0
  26274. .INDENT 3.5
  26275. .sp
  26276. .nf
  26277. .ft C
  26278. import salt.utils.yaml
  26279. from salt.utils.yamlloader import SaltYamlSafeLoader
  26280. from salt.ext import six
  26281. def render(yaml_data, saltenv=\(aq\(aq, sls=\(aq\(aq, **kws):
  26282. if not isinstance(yaml_data, six.string_types):
  26283. yaml_data = yaml_data.read()
  26284. data = salt.utils.yaml.safe_load(yaml_data)
  26285. return data if data else {}
  26286. .ft P
  26287. .fi
  26288. .UNINDENT
  26289. .UNINDENT
  26290. .SS Full List of Renderers
  26291. .SS renderer modules
  26292. .TS
  26293. center;
  26294. |l|l|.
  26295. _
  26296. T{
  26297. \fBaws_kms\fP
  26298. T} T{
  26299. T}
  26300. _
  26301. T{
  26302. \fBcheetah\fP
  26303. T} T{
  26304. Cheetah Renderer for Salt
  26305. T}
  26306. _
  26307. T{
  26308. \fBdson\fP
  26309. T} T{
  26310. DSON Renderer for Salt
  26311. T}
  26312. _
  26313. T{
  26314. \fBgenshi\fP
  26315. T} T{
  26316. Genshi Renderer for Salt
  26317. T}
  26318. _
  26319. T{
  26320. \fBgpg\fP
  26321. T} T{
  26322. T}
  26323. _
  26324. T{
  26325. \fBhjson\fP
  26326. T} T{
  26327. hjson renderer for Salt
  26328. T}
  26329. _
  26330. T{
  26331. \fBjinja\fP
  26332. T} T{
  26333. T}
  26334. _
  26335. T{
  26336. \fI\%json\fP
  26337. T} T{
  26338. JSON (JavaScript Object Notation) <\fI\%http://json.org\fP> is a subset of JavaScript syntax (ECMA\-262 3rd edition) used as a lightweight data interchange format.
  26339. T}
  26340. _
  26341. T{
  26342. \fBjson5\fP
  26343. T} T{
  26344. JSON5 Renderer for Salt
  26345. T}
  26346. _
  26347. T{
  26348. \fBmako\fP
  26349. T} T{
  26350. T}
  26351. _
  26352. T{
  26353. \fBmsgpack\fP
  26354. T} T{
  26355. T}
  26356. _
  26357. T{
  26358. \fBnacl\fP
  26359. T} T{
  26360. Renderer that will decrypt NACL ciphers
  26361. T}
  26362. _
  26363. T{
  26364. \fBpass\fP
  26365. T} T{
  26366. T}
  26367. _
  26368. T{
  26369. \fBpy\fP
  26370. T} T{
  26371. pylib: rapid testing and development utils
  26372. T}
  26373. _
  26374. T{
  26375. \fBpydsl\fP
  26376. T} T{
  26377. T}
  26378. _
  26379. T{
  26380. \fBpyobjects\fP
  26381. T} T{
  26382. T}
  26383. _
  26384. T{
  26385. \fBstateconf\fP
  26386. T} T{
  26387. T}
  26388. _
  26389. T{
  26390. \fBtoml\fP
  26391. T} T{
  26392. Python module which parses and emits TOML.
  26393. T}
  26394. _
  26395. T{
  26396. \fBwempy\fP
  26397. T} T{
  26398. T}
  26399. _
  26400. T{
  26401. \fByaml\fP
  26402. T} T{
  26403. T}
  26404. _
  26405. T{
  26406. \fByamlex\fP
  26407. T} T{
  26408. T}
  26409. _
  26410. .TE
  26411. .SS salt.renderers.aws_kms
  26412. .sp
  26413. Renderer that will decrypt ciphers encrypted using \fI\%AWS KMS Envelope Encryption\fP\&.
  26414. .sp
  26415. Any key in the data to be rendered can be a urlsafe_b64encoded string, and this renderer will attempt
  26416. to decrypt it before passing it off to Salt. This allows you to safely store secrets in
  26417. source control, in such a way that only your Salt master can decrypt them and
  26418. distribute them only to the minions that need them.
  26419. .sp
  26420. The typical use\-case would be to use ciphers in your pillar data, and keep the encrypted
  26421. data key on your master. This way developers with appropriate AWS IAM privileges can add new secrets
  26422. quickly and easily.
  26423. .sp
  26424. This renderer requires the \fI\%boto3\fP Python library.
  26425. .SS Setup
  26426. .sp
  26427. First, set up your AWS client. For complete instructions on configuration the AWS client,
  26428. please read the \fI\%boto3 configuration documentation\fP\&. By default, this renderer will use
  26429. the default AWS profile. You can override the profile name in salt configuration.
  26430. For example, if you have a profile in your aws client configuration named "salt",
  26431. you can add the following salt configuration:
  26432. .INDENT 0.0
  26433. .INDENT 3.5
  26434. .sp
  26435. .nf
  26436. .ft C
  26437. aws_kms:
  26438. profile_name: salt
  26439. .ft P
  26440. .fi
  26441. .UNINDENT
  26442. .UNINDENT
  26443. .sp
  26444. The rest of these instructions assume that you will use the default profile for key generation
  26445. and setup. If not, export AWS_PROFILE and set it to the desired value.
  26446. .sp
  26447. Once the aws client is configured, generate a KMS customer master key and use that to generate
  26448. a local data key.
  26449. .INDENT 0.0
  26450. .INDENT 3.5
  26451. .sp
  26452. .nf
  26453. .ft C
  26454. # data_key=$(aws kms generate\-data\-key \-\-key\-id your\-key\-id \-\-key\-spec AES_256
  26455. \-\-query \(aqCiphertextBlob\(aq \-\-output text)
  26456. # echo \(aqaws_kms:\(aq
  26457. # echo \(aq data_key: !!binary "%s"\en\(aq "$data_key" >> config/master
  26458. .ft P
  26459. .fi
  26460. .UNINDENT
  26461. .UNINDENT
  26462. .sp
  26463. To apply the renderer on a file\-by\-file basis add the following line to the
  26464. top of any pillar with gpg data in it:
  26465. .INDENT 0.0
  26466. .INDENT 3.5
  26467. .sp
  26468. .nf
  26469. .ft C
  26470. #!yaml|aws_kms
  26471. .ft P
  26472. .fi
  26473. .UNINDENT
  26474. .UNINDENT
  26475. .sp
  26476. Now with your renderer configured, you can include your ciphers in your pillar
  26477. data like so:
  26478. .INDENT 0.0
  26479. .INDENT 3.5
  26480. .sp
  26481. .nf
  26482. .ft C
  26483. #!yaml|aws_kms
  26484. a\-secret: gAAAAABaj5uzShPI3PEz6nL5Vhk2eEHxGXSZj8g71B84CZsVjAAtDFY1mfjNRl\-1Su9YVvkUzNjI4lHCJJfXqdcTvwczBYtKy0Pa7Ri02s10Wn1tF0tbRwk=
  26485. .ft P
  26486. .fi
  26487. .UNINDENT
  26488. .UNINDENT
  26489. .INDENT 0.0
  26490. .TP
  26491. .B salt.renderers.aws_kms.render(data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, argline=u\(aq\(aq, **kwargs)
  26492. Decrypt the data to be rendered that was encrypted using AWS KMS envelope encryption.
  26493. .UNINDENT
  26494. .SS salt.renderers.cheetah
  26495. .sp
  26496. Cheetah Renderer for Salt
  26497. .INDENT 0.0
  26498. .TP
  26499. .B salt.renderers.cheetah.render(cheetah_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, method=u\(aqxml\(aq, **kws)
  26500. Render a Cheetah template.
  26501. .INDENT 7.0
  26502. .TP
  26503. .B Return type
  26504. A Python data structure
  26505. .UNINDENT
  26506. .UNINDENT
  26507. .SS salt.renderers.dson
  26508. .sp
  26509. DSON Renderer for Salt
  26510. .sp
  26511. This renderer is intended for demonstration purposes. Information on the DSON
  26512. spec can be found \fI\%here\fP\&.
  26513. .sp
  26514. This renderer requires \fI\%Dogeon\fP (installable via pip)
  26515. .INDENT 0.0
  26516. .TP
  26517. .B salt.renderers.dson.render(dson_input, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kwargs)
  26518. Accepts DSON data as a string or as a file object and runs it through the
  26519. JSON parser.
  26520. .INDENT 7.0
  26521. .TP
  26522. .B Return type
  26523. A Python data structure
  26524. .UNINDENT
  26525. .UNINDENT
  26526. .SS salt.renderers.genshi
  26527. .sp
  26528. Genshi Renderer for Salt
  26529. .INDENT 0.0
  26530. .TP
  26531. .B salt.renderers.genshi.render(genshi_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, method=u\(aqxml\(aq, **kws)
  26532. Render a Genshi template. A method should be passed in as part of the
  26533. kwargs. If no method is passed in, xml is assumed. Valid methods are:
  26534. .sp
  26535. Note that the \fBtext\fP method will call \fBNewTextTemplate\fP\&. If \fBoldtext\fP
  26536. is desired, it must be called explicitly
  26537. .INDENT 7.0
  26538. .TP
  26539. .B Return type
  26540. A Python data structure
  26541. .UNINDENT
  26542. .UNINDENT
  26543. .SS salt.renderers.hjson
  26544. .sp
  26545. hjson renderer for Salt
  26546. .sp
  26547. See the \fI\%hjson\fP documentation for more information
  26548. .INDENT 0.0
  26549. .TP
  26550. .B salt.renderers.hjson.render(hjson_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26551. Accepts HJSON as a string or as a file object and runs it through the HJSON
  26552. parser.
  26553. .INDENT 7.0
  26554. .TP
  26555. .B Return type
  26556. A Python data structure
  26557. .UNINDENT
  26558. .UNINDENT
  26559. .SS salt.renderers.json5
  26560. .sp
  26561. JSON5 Renderer for Salt
  26562. .sp
  26563. New in version 2016.3.0.
  26564. .sp
  26565. JSON5 is an unofficial extension to JSON. See \fI\%http://json5.org/\fP for more
  26566. information.
  26567. .sp
  26568. This renderer requires the \fI\%json5 python bindings\fP, installable via pip.
  26569. .INDENT 0.0
  26570. .TP
  26571. .B salt.renderers.json5.render(json_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26572. Accepts JSON as a string or as a file object and runs it through the JSON
  26573. parser.
  26574. .INDENT 7.0
  26575. .TP
  26576. .B Return type
  26577. A Python data structure
  26578. .UNINDENT
  26579. .UNINDENT
  26580. .SS salt.renderers.msgpack
  26581. .INDENT 0.0
  26582. .TP
  26583. .B salt.renderers.msgpack.render(msgpack_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, **kws)
  26584. Accepts a message pack string or a file object, renders said data back to
  26585. a python dict.
  26586. .INDENT 7.0
  26587. .TP
  26588. .B Return type
  26589. A Python data structure
  26590. .UNINDENT
  26591. .UNINDENT
  26592. .SS salt.renderers.nacl
  26593. .sp
  26594. Renderer that will decrypt NACL ciphers
  26595. .sp
  26596. Any key in the SLS file can be an NACL cipher, and this renderer will decrypt it
  26597. before passing it off to Salt. This allows you to safely store secrets in
  26598. source control, in such a way that only your Salt master can decrypt them and
  26599. distribute them only to the minions that need them.
  26600. .sp
  26601. The typical use\-case would be to use ciphers in your pillar data, and keep a
  26602. secret key on your master. You can put the public key in source control so that
  26603. developers can add new secrets quickly and easily.
  26604. .sp
  26605. This renderer requires the libsodium library binary and libnacl >= 1.5.1
  26606. python package (support for sealed boxes came in 1.5.1 version).
  26607. .SS Setup
  26608. .sp
  26609. To set things up, first generate a keypair. On the master, run the following:
  26610. .INDENT 0.0
  26611. .INDENT 3.5
  26612. .sp
  26613. .nf
  26614. .ft C
  26615. # salt\-call \-\-local nacl.keygen sk_file=/root/.nacl
  26616. .ft P
  26617. .fi
  26618. .UNINDENT
  26619. .UNINDENT
  26620. .SS Using encrypted pillar
  26621. .sp
  26622. To encrypt secrets, copy the public key to your local machine and run:
  26623. .INDENT 0.0
  26624. .INDENT 3.5
  26625. .sp
  26626. .nf
  26627. .ft C
  26628. $ salt\-call \-\-local nacl.enc datatoenc pk_file=/root/.nacl.pub
  26629. .ft P
  26630. .fi
  26631. .UNINDENT
  26632. .UNINDENT
  26633. .sp
  26634. To apply the renderer on a file\-by\-file basis add the following line to the
  26635. top of any pillar with nacl encrypted data in it:
  26636. .INDENT 0.0
  26637. .INDENT 3.5
  26638. .sp
  26639. .nf
  26640. .ft C
  26641. #!yaml|nacl
  26642. .ft P
  26643. .fi
  26644. .UNINDENT
  26645. .UNINDENT
  26646. .sp
  26647. Now with your renderer configured, you can include your ciphers in your pillar
  26648. data like so:
  26649. .INDENT 0.0
  26650. .INDENT 3.5
  26651. .sp
  26652. .nf
  26653. .ft C
  26654. #!yaml|nacl
  26655. a\-secret: "NACL[MRN3cc+fmdxyQbz6WMF+jq1hKdU5X5BBI7OjK+atvHo1ll+w1gZ7XyWtZVfq9gK9rQaMfkDxmidJKwE0Mw==]"
  26656. .ft P
  26657. .fi
  26658. .UNINDENT
  26659. .UNINDENT
  26660. .INDENT 0.0
  26661. .TP
  26662. .B salt.renderers.nacl.render(nacl_data, saltenv=u\(aqbase\(aq, sls=u\(aq\(aq, argline=u\(aq\(aq, **kwargs)
  26663. Decrypt the data to be rendered using the given nacl key or the one given
  26664. in config
  26665. .UNINDENT
  26666. .SH USING SALT
  26667. .sp
  26668. This section describes the fundamental components and concepts that you need to understand to use Salt.
  26669. .SS Grains
  26670. .sp
  26671. Salt comes with an interface to derive information about the underlying system.
  26672. This is called the grains interface, because it presents salt with grains of
  26673. information. Grains are collected for the operating system, domain name,
  26674. IP address, kernel, OS type, memory, and many other system properties.
  26675. .sp
  26676. The grains interface is made available to Salt modules and components so that
  26677. the right salt minion commands are automatically available on the right
  26678. systems.
  26679. .sp
  26680. Grain data is relatively static, though if system information changes
  26681. (for example, if network settings are changed), or if a new value is assigned
  26682. to a custom grain, grain data is refreshed.
  26683. .sp
  26684. \fBNOTE:\fP
  26685. .INDENT 0.0
  26686. .INDENT 3.5
  26687. Grains resolve to lowercase letters. For example, \fBFOO\fP, and \fBfoo\fP
  26688. target the same grain.
  26689. .UNINDENT
  26690. .UNINDENT
  26691. .SS Listing Grains
  26692. .sp
  26693. Available grains can be listed by using the \(aqgrains.ls\(aq module:
  26694. .INDENT 0.0
  26695. .INDENT 3.5
  26696. .sp
  26697. .nf
  26698. .ft C
  26699. salt \(aq*\(aq grains.ls
  26700. .ft P
  26701. .fi
  26702. .UNINDENT
  26703. .UNINDENT
  26704. .sp
  26705. Grains data can be listed by using the \(aqgrains.items\(aq module:
  26706. .INDENT 0.0
  26707. .INDENT 3.5
  26708. .sp
  26709. .nf
  26710. .ft C
  26711. salt \(aq*\(aq grains.items
  26712. .ft P
  26713. .fi
  26714. .UNINDENT
  26715. .UNINDENT
  26716. .SS Using grains in a state
  26717. .sp
  26718. To use a grain in a state you can access it via \fI{{ grains[\(aqkey\(aq] }}\fP\&.
  26719. .SS Grains in the Minion Config
  26720. .sp
  26721. Grains can also be statically assigned within the minion configuration file.
  26722. Just add the option \fBgrains\fP and pass options to it:
  26723. .INDENT 0.0
  26724. .INDENT 3.5
  26725. .sp
  26726. .nf
  26727. .ft C
  26728. grains:
  26729. roles:
  26730. \- webserver
  26731. \- memcache
  26732. deployment: datacenter4
  26733. cabinet: 13
  26734. cab_u: 14\-15
  26735. .ft P
  26736. .fi
  26737. .UNINDENT
  26738. .UNINDENT
  26739. .sp
  26740. Then status data specific to your servers can be retrieved via Salt, or used
  26741. inside of the State system for matching. It also makes it possible to target based on specific data about your deployment, as in the example above.
  26742. .SS Grains in /etc/salt/grains
  26743. .sp
  26744. If you do not want to place your custom static grains in the minion config
  26745. file, you can also put them in \fB/etc/salt/grains\fP on the minion. They are configured in the
  26746. same way as in the above example, only without a top\-level \fBgrains:\fP key:
  26747. .INDENT 0.0
  26748. .INDENT 3.5
  26749. .sp
  26750. .nf
  26751. .ft C
  26752. roles:
  26753. \- webserver
  26754. \- memcache
  26755. deployment: datacenter4
  26756. cabinet: 13
  26757. cab_u: 14\-15
  26758. .ft P
  26759. .fi
  26760. .UNINDENT
  26761. .UNINDENT
  26762. .sp
  26763. \fBNOTE:\fP
  26764. .INDENT 0.0
  26765. .INDENT 3.5
  26766. Grains in \fB/etc/salt/grains\fP are ignored if you specify the same grains in the minion config.
  26767. .UNINDENT
  26768. .UNINDENT
  26769. .sp
  26770. \fBNOTE:\fP
  26771. .INDENT 0.0
  26772. .INDENT 3.5
  26773. Grains are static, and since they are not often changed, they will need a grains refresh when they are updated. You can do this by calling: \fBsalt minion saltutil.refresh_modules\fP
  26774. .UNINDENT
  26775. .UNINDENT
  26776. .sp
  26777. \fBNOTE:\fP
  26778. .INDENT 0.0
  26779. .INDENT 3.5
  26780. You can equally configure static grains for Proxy Minions.
  26781. As multiple Proxy Minion processes can run on the same machine, you need
  26782. to index the files using the Minion ID, under \fB/etc/salt/proxy.d/<minion ID>/grains\fP\&.
  26783. For example, the grains for the Proxy Minion \fBrouter1\fP can be defined
  26784. under \fB/etc/salt/proxy.d/router1/grains\fP, while the grains for the
  26785. Proxy Minion \fBswitch7\fP can be put in \fB/etc/salt/proxy.d/switch7/grains\fP\&.
  26786. .UNINDENT
  26787. .UNINDENT
  26788. .SS Matching Grains in the Top File
  26789. .sp
  26790. With correctly configured grains on the Minion, the top file used in
  26791. Pillar or during Highstate can be made very efficient. For example, consider
  26792. the following configuration:
  26793. .INDENT 0.0
  26794. .INDENT 3.5
  26795. .sp
  26796. .nf
  26797. .ft C
  26798. \(aqroles:webserver\(aq:
  26799. \- match: grain
  26800. \- state0
  26801. \(aqroles:memcache\(aq:
  26802. \- match: grain
  26803. \- state1
  26804. \- state2
  26805. .ft P
  26806. .fi
  26807. .UNINDENT
  26808. .UNINDENT
  26809. .sp
  26810. For this example to work, you would need to have defined the grain
  26811. \fBrole\fP for the minions you wish to match.
  26812. .SS Writing Grains
  26813. .sp
  26814. The grains are derived by executing all of the "public" functions (i.e. those
  26815. which do not begin with an underscore) found in the modules located in the
  26816. Salt\(aqs core grains code, followed by those in any custom grains modules. The
  26817. functions in a grains module must return a \fI\%Python dictionary\fP, where the dictionary keys are the names of grains, and
  26818. each key\(aqs value is that value for that grain.
  26819. .sp
  26820. Custom grains modules should be placed in a subdirectory named \fB_grains\fP
  26821. located under the \fBfile_roots\fP specified by the master config
  26822. file. The default path would be \fB/srv/salt/_grains\fP\&. Custom grains modules
  26823. will be distributed to the minions when \fBstate.highstate\fP is run, or by executing the
  26824. \fBsaltutil.sync_grains\fP or
  26825. \fBsaltutil.sync_all\fP functions.
  26826. .sp
  26827. Grains modules are easy to write, and (as noted above) only need to return a
  26828. dictionary. For example:
  26829. .INDENT 0.0
  26830. .INDENT 3.5
  26831. .sp
  26832. .nf
  26833. .ft C
  26834. def yourfunction():
  26835. # initialize a grains dictionary
  26836. grains = {}
  26837. # Some code for logic that sets grains like
  26838. grains[\(aqyourcustomgrain\(aq] = True
  26839. grains[\(aqanothergrain\(aq] = \(aqsomevalue\(aq
  26840. return grains
  26841. .ft P
  26842. .fi
  26843. .UNINDENT
  26844. .UNINDENT
  26845. .sp
  26846. The name of the function does not matter and will not factor into the grains
  26847. data at all; only the keys/values returned become part of the grains.
  26848. .SS When to Use a Custom Grain
  26849. .sp
  26850. Before adding new grains, consider what the data is and remember that grains
  26851. should (for the most part) be static data.
  26852. .sp
  26853. If the data is something that is likely to change, consider using Pillar or an execution module instead. If it\(aqs a simple set of
  26854. key/value pairs, pillar is a good match. If compiling the information requires
  26855. that system commands be run, then putting this information in an execution
  26856. module is likely a better idea.
  26857. .sp
  26858. Good candidates for grains are data that is useful for targeting minions in the
  26859. top file or the Salt CLI. The name and data structure of
  26860. the grain should be designed to support many platforms, operating systems or
  26861. applications. Also, keep in mind that Jinja templating in Salt supports
  26862. referencing pillar data as well as invoking functions from execution modules,
  26863. so there\(aqs no need to place information in grains to make it available to Jinja
  26864. templates. For example:
  26865. .INDENT 0.0
  26866. .INDENT 3.5
  26867. .sp
  26868. .nf
  26869. .ft C
  26870. \&...
  26871. \&...
  26872. {{ salt[\(aqmodule.function_name\(aq](\(aqargument_1\(aq, \(aqargument_2\(aq) }}
  26873. {{ pillar[\(aqmy_pillar_key\(aq] }}
  26874. \&...
  26875. \&...
  26876. .ft P
  26877. .fi
  26878. .UNINDENT
  26879. .UNINDENT
  26880. .sp
  26881. \fBWARNING:\fP
  26882. .INDENT 0.0
  26883. .INDENT 3.5
  26884. Custom grains will not be available in the top file until after the first
  26885. highstate\&. To make custom grains available on a
  26886. minion\(aqs first highstate, it is recommended to use this example to ensure that the custom grains are synced when
  26887. the minion starts.
  26888. .UNINDENT
  26889. .UNINDENT
  26890. .SS Loading Custom Grains
  26891. .sp
  26892. If you have multiple functions specifying grains that are called from a \fBmain\fP
  26893. function, be sure to prepend grain function names with an underscore. This prevents
  26894. Salt from including the loaded grains from the grain functions in the final
  26895. grain data structure. For example, consider this custom grain file:
  26896. .INDENT 0.0
  26897. .INDENT 3.5
  26898. .sp
  26899. .nf
  26900. .ft C
  26901. #!/usr/bin/env python
  26902. def _my_custom_grain():
  26903. my_grain = {\(aqfoo\(aq: \(aqbar\(aq, \(aqhello\(aq: \(aqworld\(aq}
  26904. return my_grain
  26905. def main():
  26906. # initialize a grains dictionary
  26907. grains = {}
  26908. grains[\(aqmy_grains\(aq] = _my_custom_grain()
  26909. return grains
  26910. .ft P
  26911. .fi
  26912. .UNINDENT
  26913. .UNINDENT
  26914. .sp
  26915. The output of this example renders like so:
  26916. .INDENT 0.0
  26917. .INDENT 3.5
  26918. .sp
  26919. .nf
  26920. .ft C
  26921. # salt\-call \-\-local grains.items
  26922. local:
  26923. \-\-\-\-\-\-\-\-\-\-
  26924. <Snipped for brevity>
  26925. my_grains:
  26926. \-\-\-\-\-\-\-\-\-\-
  26927. foo:
  26928. bar
  26929. hello:
  26930. world
  26931. .ft P
  26932. .fi
  26933. .UNINDENT
  26934. .UNINDENT
  26935. .sp
  26936. However, if you don\(aqt prepend the \fBmy_custom_grain\fP function with an underscore,
  26937. the function will be rendered twice by Salt in the items output: once for the
  26938. \fBmy_custom_grain\fP call itself, and again when it is called in the \fBmain\fP
  26939. function:
  26940. .INDENT 0.0
  26941. .INDENT 3.5
  26942. .sp
  26943. .nf
  26944. .ft C
  26945. # salt\-call \-\-local grains.items
  26946. local:
  26947. \-\-\-\-\-\-\-\-\-\-
  26948. <Snipped for brevity>
  26949. foo:
  26950. bar
  26951. <Snipped for brevity>
  26952. hello:
  26953. world
  26954. <Snipped for brevity>
  26955. my_grains:
  26956. \-\-\-\-\-\-\-\-\-\-
  26957. foo:
  26958. bar
  26959. hello:
  26960. world
  26961. .ft P
  26962. .fi
  26963. .UNINDENT
  26964. .UNINDENT
  26965. .SS Precedence
  26966. .sp
  26967. Core grains can be overridden by custom grains. As there are several ways of
  26968. defining custom grains, there is an order of precedence which should be kept in
  26969. mind when defining them. The order of evaluation is as follows:
  26970. .INDENT 0.0
  26971. .IP 1. 3
  26972. Core grains.
  26973. .IP 2. 3
  26974. Custom grains in \fB/etc/salt/grains\fP\&.
  26975. .IP 3. 3
  26976. Custom grains in \fB/etc/salt/minion\fP\&.
  26977. .IP 4. 3
  26978. Custom grain modules in \fB_grains\fP directory, synced to minions.
  26979. .UNINDENT
  26980. .sp
  26981. Each successive evaluation overrides the previous ones, so any grains defined
  26982. by custom grains modules synced to minions that have the same name as a core
  26983. grain will override that core grain. Similarly, grains from
  26984. \fB/etc/salt/minion\fP override both core grains and custom grain modules, and
  26985. grains in \fB_grains\fP will override \fIany\fP grains of the same name.
  26986. .sp
  26987. For custom grains, if the function takes an argument \fBgrains\fP, then the
  26988. previously rendered grains will be passed in. Because the rest of the grains
  26989. could be rendered in any order, the only grains that can be relied upon to be
  26990. passed in are \fBcore\fP grains. This was added in the 2019.2.0 release.
  26991. .SS Examples of Grains
  26992. .sp
  26993. The core module in the grains package is where the main grains are loaded by
  26994. the Salt minion and provides the principal example of how to write grains:
  26995. .sp
  26996. \fI\%https://github.com/saltstack/salt/blob/master/salt/grains/core.py\fP
  26997. .SS Syncing Grains
  26998. .sp
  26999. Syncing grains can be done a number of ways. They are automatically synced when
  27000. \fBstate.highstate\fP is called, or (as noted
  27001. above) the grains can be manually synced and reloaded by calling the
  27002. \fBsaltutil.sync_grains\fP or
  27003. \fBsaltutil.sync_all\fP functions.
  27004. .sp
  27005. \fBNOTE:\fP
  27006. .INDENT 0.0
  27007. .INDENT 3.5
  27008. When the \fBgrains_cache\fP is set to False, the grains dictionary is built
  27009. and stored in memory on the minion. Every time the minion restarts or
  27010. \fBsaltutil.refresh_grains\fP is run, the grain dictionary is rebuilt from scratch.
  27011. .UNINDENT
  27012. .UNINDENT
  27013. .SS Storing Static Data in the Pillar
  27014. .sp
  27015. Pillar is an interface for Salt designed to offer global values that can be
  27016. distributed to minions. Pillar data is managed in a similar way as
  27017. the Salt State Tree.
  27018. .sp
  27019. Pillar was added to Salt in version 0.9.8
  27020. .sp
  27021. \fBNOTE:\fP
  27022. .INDENT 0.0
  27023. .INDENT 3.5
  27024. Storing sensitive data
  27025. .sp
  27026. Pillar data is compiled on the master. Additionally, pillar data for a
  27027. given minion is only accessible by the minion for which it is targeted in
  27028. the pillar configuration. This makes pillar useful for storing sensitive
  27029. data specific to a particular minion.
  27030. .UNINDENT
  27031. .UNINDENT
  27032. .SS Declaring the Master Pillar
  27033. .sp
  27034. The Salt Master server maintains a \fBpillar_roots\fP setup that
  27035. matches the structure of the \fBfile_roots\fP used in the Salt file
  27036. server. Like \fBfile_roots\fP, the \fBpillar_roots\fP option
  27037. maps environments to directories. The pillar data is then mapped to minions
  27038. based on matchers in a top file which is laid out in the same way as the state
  27039. top file. Salt pillars can use the same matcher types as the standard top
  27040. file\&.
  27041. .sp
  27042. conf_master:\fIpillar_roots\fP is configured just like \fBfile_roots\fP\&.
  27043. For example:
  27044. .INDENT 0.0
  27045. .INDENT 3.5
  27046. .sp
  27047. .nf
  27048. .ft C
  27049. pillar_roots:
  27050. base:
  27051. \- /srv/pillar
  27052. .ft P
  27053. .fi
  27054. .UNINDENT
  27055. .UNINDENT
  27056. .sp
  27057. This example configuration declares that the base environment will be located
  27058. in the \fB/srv/pillar\fP directory. It must not be in a subdirectory of the
  27059. state tree.
  27060. .sp
  27061. The top file used matches the name of the top file used for States,
  27062. and has the same structure:
  27063. .sp
  27064. \fB/srv/pillar/top.sls\fP
  27065. .INDENT 0.0
  27066. .INDENT 3.5
  27067. .sp
  27068. .nf
  27069. .ft C
  27070. base:
  27071. \(aq*\(aq:
  27072. \- packages
  27073. .ft P
  27074. .fi
  27075. .UNINDENT
  27076. .UNINDENT
  27077. .sp
  27078. In the above top file, it is declared that in the \fBbase\fP environment, the
  27079. glob matching all minions will have the pillar data found in the \fBpackages\fP
  27080. pillar available to it. Assuming the \fBpillar_roots\fP value of \fB/srv/pillar\fP
  27081. taken from above, the \fBpackages\fP pillar would be located at
  27082. \fB/srv/pillar/packages.sls\fP\&.
  27083. .sp
  27084. Any number of matchers can be added to the base environment. For example, here
  27085. is an expanded version of the Pillar top file stated above:
  27086. .sp
  27087. /srv/pillar/top.sls:
  27088. .INDENT 0.0
  27089. .INDENT 3.5
  27090. .sp
  27091. .nf
  27092. .ft C
  27093. base:
  27094. \(aq*\(aq:
  27095. \- packages
  27096. \(aqweb*\(aq:
  27097. \- vim
  27098. .ft P
  27099. .fi
  27100. .UNINDENT
  27101. .UNINDENT
  27102. .sp
  27103. In this expanded top file, minions that match \fBweb*\fP will have access to the
  27104. \fB/srv/pillar/packages.sls\fP file, as well as the \fB/srv/pillar/vim.sls\fP file.
  27105. .sp
  27106. Another example shows how to use other standard top matching types
  27107. to deliver specific salt pillar data to minions with different properties.
  27108. .sp
  27109. Here is an example using the \fBgrains\fP matcher to target pillars to minions
  27110. by their \fBos\fP grain:
  27111. .INDENT 0.0
  27112. .INDENT 3.5
  27113. .sp
  27114. .nf
  27115. .ft C
  27116. dev:
  27117. \(aqos:Debian\(aq:
  27118. \- match: grain
  27119. \- servers
  27120. .ft P
  27121. .fi
  27122. .UNINDENT
  27123. .UNINDENT
  27124. .sp
  27125. Pillar definitions can also take a keyword argument \fBignore_missing\fP\&.
  27126. When the value of \fBignore_missing\fP is \fBTrue\fP, all errors for missing
  27127. pillar files are ignored. The default value for \fBignore_missing\fP is
  27128. \fBFalse\fP\&.
  27129. .sp
  27130. Here is an example using the \fBignore_missing\fP keyword parameter to ignore
  27131. errors for missing pillar files:
  27132. .INDENT 0.0
  27133. .INDENT 3.5
  27134. .sp
  27135. .nf
  27136. .ft C
  27137. base:
  27138. \(aq*\(aq:
  27139. \- servers
  27140. \- systems
  27141. \- ignore_missing: True
  27142. .ft P
  27143. .fi
  27144. .UNINDENT
  27145. .UNINDENT
  27146. .sp
  27147. Assuming that the pillar \fBservers\fP exists in the fileserver backend
  27148. and the pillar \fBsystems\fP doesn\(aqt, all pillar data from \fBservers\fP
  27149. pillar is delivered to minions and no error for the missing pillar
  27150. \fBsystems\fP is noted under the key \fB_errors\fP in the pillar data
  27151. delivered to minions.
  27152. .sp
  27153. Should the \fBignore_missing\fP keyword parameter have the value \fBFalse\fP,
  27154. an error for the missing pillar \fBsystems\fP would produce the value
  27155. \fBSpecified SLS \(aqservers\(aq in environment \(aqbase\(aq is not available on the salt master\fP
  27156. under the key \fB_errors\fP in the pillar data delivered to minions.
  27157. .sp
  27158. \fB/srv/pillar/packages.sls\fP
  27159. .INDENT 0.0
  27160. .INDENT 3.5
  27161. .sp
  27162. .nf
  27163. .ft C
  27164. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq %}
  27165. apache: httpd
  27166. git: git
  27167. {% elif grains[\(aqos\(aq] == \(aqDebian\(aq %}
  27168. apache: apache2
  27169. git: git\-core
  27170. {% endif %}
  27171. company: Foo Industries
  27172. .ft P
  27173. .fi
  27174. .UNINDENT
  27175. .UNINDENT
  27176. .sp
  27177. \fBIMPORTANT:\fP
  27178. .INDENT 0.0
  27179. .INDENT 3.5
  27180. See Is Targeting using Grain Data Secure? for
  27181. important security information.
  27182. .UNINDENT
  27183. .UNINDENT
  27184. .sp
  27185. The above pillar sets two key/value pairs. If a minion is running RedHat, then
  27186. the \fBapache\fP key is set to \fBhttpd\fP and the \fBgit\fP key is set to the value
  27187. of \fBgit\fP\&. If the minion is running Debian, those values are changed to
  27188. \fBapache2\fP and \fBgit\-core\fP respectively. All minions that have this pillar
  27189. targeting to them via a top file will have the key of \fBcompany\fP with a value
  27190. of \fBFoo Industries\fP\&.
  27191. .sp
  27192. Consequently this data can be used from within modules, renderers, State SLS
  27193. files, and more via the shared pillar dictionary:
  27194. .INDENT 0.0
  27195. .INDENT 3.5
  27196. .sp
  27197. .nf
  27198. .ft C
  27199. apache:
  27200. pkg.installed:
  27201. \- name: {{ pillar[\(aqapache\(aq] }}
  27202. .ft P
  27203. .fi
  27204. .UNINDENT
  27205. .UNINDENT
  27206. .INDENT 0.0
  27207. .INDENT 3.5
  27208. .sp
  27209. .nf
  27210. .ft C
  27211. git:
  27212. pkg.installed:
  27213. \- name: {{ pillar[\(aqgit\(aq] }}
  27214. .ft P
  27215. .fi
  27216. .UNINDENT
  27217. .UNINDENT
  27218. .sp
  27219. Finally, the above states can utilize the values provided to them via Pillar.
  27220. All pillar values targeted to a minion are available via the \(aqpillar\(aq
  27221. dictionary. As seen in the above example, Jinja substitution can then be
  27222. utilized to access the keys and values in the Pillar dictionary.
  27223. .sp
  27224. Note that you cannot just list key/value\-information in \fBtop.sls\fP\&. Instead,
  27225. target a minion to a pillar file and then list the keys and values in the
  27226. pillar. Here is an example top file that illustrates this point:
  27227. .INDENT 0.0
  27228. .INDENT 3.5
  27229. .sp
  27230. .nf
  27231. .ft C
  27232. base:
  27233. \(aq*\(aq:
  27234. \- common_pillar
  27235. .ft P
  27236. .fi
  27237. .UNINDENT
  27238. .UNINDENT
  27239. .sp
  27240. And the actual pillar file at \(aq/srv/pillar/common_pillar.sls\(aq:
  27241. .INDENT 0.0
  27242. .INDENT 3.5
  27243. .sp
  27244. .nf
  27245. .ft C
  27246. foo: bar
  27247. boo: baz
  27248. .ft P
  27249. .fi
  27250. .UNINDENT
  27251. .UNINDENT
  27252. .sp
  27253. \fBNOTE:\fP
  27254. .INDENT 0.0
  27255. .INDENT 3.5
  27256. When working with multiple pillar environments, assuming that each pillar
  27257. environment has its own top file, the jinja placeholder \fB{{ saltenv }}\fP
  27258. can be used in place of the environment name:
  27259. .INDENT 0.0
  27260. .INDENT 3.5
  27261. .sp
  27262. .nf
  27263. .ft C
  27264. {{ saltenv }}:
  27265. \(aq*\(aq:
  27266. \- common_pillar
  27267. .ft P
  27268. .fi
  27269. .UNINDENT
  27270. .UNINDENT
  27271. .sp
  27272. Yes, this is \fB{{ saltenv }}\fP, and not \fB{{ pillarenv }}\fP\&. The reason for
  27273. this is because the Pillar top files are parsed using some of the same code
  27274. which parses top files when running states, so
  27275. the pillar environment takes the place of \fB{{ saltenv }}\fP in the jinja
  27276. context.
  27277. .UNINDENT
  27278. .UNINDENT
  27279. .SS Dynamic Pillar Environments
  27280. .sp
  27281. If environment \fB__env__\fP is specified in \fBpillar_roots\fP, all
  27282. environments that are not explicitly specified in \fBpillar_roots\fP
  27283. will map to the directories from \fB__env__\fP\&. This allows one to use dynamic
  27284. git branch based environments for state/pillar files with the same file\-based
  27285. pillar applying to all environments. For example:
  27286. .INDENT 0.0
  27287. .INDENT 3.5
  27288. .sp
  27289. .nf
  27290. .ft C
  27291. pillar_roots:
  27292. __env__:
  27293. \- /srv/pillar
  27294. ext_pillar:
  27295. \- git:
  27296. \- __env__ https://example.com/git\-pillar.git
  27297. .ft P
  27298. .fi
  27299. .UNINDENT
  27300. .UNINDENT
  27301. .sp
  27302. New in version 2017.7.5,2018.3.1.
  27303. .SS Pillar Namespace Flattening
  27304. .sp
  27305. The separate pillar SLS files all merge down into a single dictionary of
  27306. key\-value pairs. When the same key is defined in multiple SLS files, this can
  27307. result in unexpected behavior if care is not taken to how the pillar SLS files
  27308. are laid out.
  27309. .sp
  27310. For example, given a \fBtop.sls\fP containing the following:
  27311. .INDENT 0.0
  27312. .INDENT 3.5
  27313. .sp
  27314. .nf
  27315. .ft C
  27316. base:
  27317. \(aq*\(aq:
  27318. \- packages
  27319. \- services
  27320. .ft P
  27321. .fi
  27322. .UNINDENT
  27323. .UNINDENT
  27324. .sp
  27325. with \fBpackages.sls\fP containing:
  27326. .INDENT 0.0
  27327. .INDENT 3.5
  27328. .sp
  27329. .nf
  27330. .ft C
  27331. bind: bind9
  27332. .ft P
  27333. .fi
  27334. .UNINDENT
  27335. .UNINDENT
  27336. .sp
  27337. and \fBservices.sls\fP containing:
  27338. .INDENT 0.0
  27339. .INDENT 3.5
  27340. .sp
  27341. .nf
  27342. .ft C
  27343. bind: named
  27344. .ft P
  27345. .fi
  27346. .UNINDENT
  27347. .UNINDENT
  27348. .sp
  27349. Then a request for the \fBbind\fP pillar key will only return \fBnamed\fP\&. The
  27350. \fBbind9\fP value will be lost, because \fBservices.sls\fP was evaluated later.
  27351. .sp
  27352. \fBNOTE:\fP
  27353. .INDENT 0.0
  27354. .INDENT 3.5
  27355. Pillar files are applied in the order they are listed in the top file.
  27356. Therefore conflicting keys will be overwritten in a \(aqlast one wins\(aq manner!
  27357. For example, in the above scenario conflicting key values in \fBservices\fP
  27358. will overwrite those in \fBpackages\fP because it\(aqs at the bottom of the list.
  27359. .UNINDENT
  27360. .UNINDENT
  27361. .sp
  27362. It can be better to structure your pillar files with more hierarchy. For
  27363. example the \fBpackage.sls\fP file could be configured like so:
  27364. .INDENT 0.0
  27365. .INDENT 3.5
  27366. .sp
  27367. .nf
  27368. .ft C
  27369. packages:
  27370. bind: bind9
  27371. .ft P
  27372. .fi
  27373. .UNINDENT
  27374. .UNINDENT
  27375. .sp
  27376. This would make the \fBpackages\fP pillar key a nested dictionary containing a
  27377. \fBbind\fP key.
  27378. .SS Pillar Dictionary Merging
  27379. .sp
  27380. If the same pillar key is defined in multiple pillar SLS files, and the keys in
  27381. both files refer to nested dictionaries, then the content from these
  27382. dictionaries will be recursively merged.
  27383. .sp
  27384. For example, keeping the \fBtop.sls\fP the same, assume the following
  27385. modifications to the pillar SLS files:
  27386. .sp
  27387. \fBpackages.sls\fP:
  27388. .INDENT 0.0
  27389. .INDENT 3.5
  27390. .sp
  27391. .nf
  27392. .ft C
  27393. bind:
  27394. package\-name: bind9
  27395. version: 9.9.5
  27396. .ft P
  27397. .fi
  27398. .UNINDENT
  27399. .UNINDENT
  27400. .sp
  27401. \fBservices.sls\fP:
  27402. .INDENT 0.0
  27403. .INDENT 3.5
  27404. .sp
  27405. .nf
  27406. .ft C
  27407. bind:
  27408. port: 53
  27409. listen\-on: any
  27410. .ft P
  27411. .fi
  27412. .UNINDENT
  27413. .UNINDENT
  27414. .sp
  27415. The resulting pillar dictionary will be:
  27416. .INDENT 0.0
  27417. .INDENT 3.5
  27418. .sp
  27419. .nf
  27420. .ft C
  27421. $ salt\-call pillar.get bind
  27422. local:
  27423. \-\-\-\-\-\-\-\-\-\-
  27424. listen\-on:
  27425. any
  27426. package\-name:
  27427. bind9
  27428. port:
  27429. 53
  27430. version:
  27431. 9.9.5
  27432. .ft P
  27433. .fi
  27434. .UNINDENT
  27435. .UNINDENT
  27436. .sp
  27437. Since both pillar SLS files contained a \fBbind\fP key which contained a nested
  27438. dictionary, the pillar dictionary\(aqs \fBbind\fP key contains the combined contents
  27439. of both SLS files\(aq \fBbind\fP keys.
  27440. .SS Including Other Pillars
  27441. .sp
  27442. New in version 0.16.0.
  27443. .sp
  27444. Pillar SLS files may include other pillar files, similar to State files. Two
  27445. syntaxes are available for this purpose. The simple form simply includes the
  27446. additional pillar as if it were part of the same file:
  27447. .INDENT 0.0
  27448. .INDENT 3.5
  27449. .sp
  27450. .nf
  27451. .ft C
  27452. include:
  27453. \- users
  27454. .ft P
  27455. .fi
  27456. .UNINDENT
  27457. .UNINDENT
  27458. .sp
  27459. The full include form allows two additional options \-\- passing default values
  27460. to the templating engine for the included pillar file as well as an optional
  27461. key under which to nest the results of the included pillar:
  27462. .INDENT 0.0
  27463. .INDENT 3.5
  27464. .sp
  27465. .nf
  27466. .ft C
  27467. include:
  27468. \- users:
  27469. defaults:
  27470. sudo: [\(aqbob\(aq, \(aqpaul\(aq]
  27471. key: users
  27472. .ft P
  27473. .fi
  27474. .UNINDENT
  27475. .UNINDENT
  27476. .sp
  27477. With this form, the included file (users.sls) will be nested within the \(aqusers\(aq
  27478. key of the compiled pillar. Additionally, the \(aqsudo\(aq value will be available
  27479. as a template variable to users.sls.
  27480. .SS In\-Memory Pillar Data vs. On\-Demand Pillar Data
  27481. .sp
  27482. Since compiling pillar data is computationally expensive, the minion will
  27483. maintain a copy of the pillar data in memory to avoid needing to ask the master
  27484. to recompile and send it a copy of the pillar data each time pillar data is
  27485. requested. This in\-memory pillar data is what is returned by the
  27486. \fBpillar.item\fP, \fBpillar.get\fP, and \fBpillar.raw\fP
  27487. functions.
  27488. .sp
  27489. Also, for those writing custom execution modules, or contributing to Salt\(aqs
  27490. existing execution modules, the in\-memory pillar data is available as the
  27491. \fB__pillar__\fP dunder dictionary.
  27492. .sp
  27493. The in\-memory pillar data is generated on minion start, and can be refreshed
  27494. using the \fBsaltutil.refresh_pillar\fP function:
  27495. .INDENT 0.0
  27496. .INDENT 3.5
  27497. .sp
  27498. .nf
  27499. .ft C
  27500. salt \(aq*\(aq saltutil.refresh_pillar
  27501. .ft P
  27502. .fi
  27503. .UNINDENT
  27504. .UNINDENT
  27505. .sp
  27506. This function triggers the minion to asynchronously refresh the in\-memory
  27507. pillar data and will always return \fBNone\fP\&.
  27508. .sp
  27509. In contrast to in\-memory pillar data, certain actions trigger pillar data to be
  27510. compiled to ensure that the most up\-to\-date pillar data is available. These
  27511. actions include:
  27512. .INDENT 0.0
  27513. .IP \(bu 2
  27514. Running states
  27515. .IP \(bu 2
  27516. Running \fBpillar.items\fP
  27517. .UNINDENT
  27518. .sp
  27519. Performing these actions will \fInot\fP refresh the in\-memory pillar data. So, if
  27520. pillar data is modified, and then states are run, the states will see the
  27521. updated pillar data, but \fBpillar.item\fP,
  27522. \fBpillar.get\fP, and \fBpillar.raw\fP will not see this data unless refreshed using
  27523. \fBsaltutil.refresh_pillar\fP\&.
  27524. .SS How Pillar Environments Are Handled
  27525. .sp
  27526. When multiple pillar environments are used, the default behavior is for the
  27527. pillar data from all environments to be merged together. The pillar dictionary
  27528. will therefore contain keys from all configured environments.
  27529. .sp
  27530. The \fBpillarenv\fP minion config option can be used to force the
  27531. minion to only consider pillar configuration from a single environment. This
  27532. can be useful in cases where one needs to run states with alternate pillar
  27533. data, either in a testing/QA environment or to test changes to the pillar data
  27534. before pushing them live.
  27535. .sp
  27536. For example, assume that the following is set in the minion config file:
  27537. .INDENT 0.0
  27538. .INDENT 3.5
  27539. .sp
  27540. .nf
  27541. .ft C
  27542. pillarenv: base
  27543. .ft P
  27544. .fi
  27545. .UNINDENT
  27546. .UNINDENT
  27547. .sp
  27548. This would cause that minion to ignore all other pillar environments besides
  27549. \fBbase\fP when compiling the in\-memory pillar data. Then, when running states,
  27550. the \fBpillarenv\fP CLI argument can be used to override the minion\(aqs
  27551. \fBpillarenv\fP config value:
  27552. .INDENT 0.0
  27553. .INDENT 3.5
  27554. .sp
  27555. .nf
  27556. .ft C
  27557. salt \(aq*\(aq state.apply mystates pillarenv=testing
  27558. .ft P
  27559. .fi
  27560. .UNINDENT
  27561. .UNINDENT
  27562. .sp
  27563. The above command will run the states with pillar data sourced exclusively from
  27564. the \fBtesting\fP environment, without modifying the in\-memory pillar data.
  27565. .sp
  27566. \fBNOTE:\fP
  27567. .INDENT 0.0
  27568. .INDENT 3.5
  27569. When running states, the \fBpillarenv\fP CLI option does not require a
  27570. \fBpillarenv\fP option to be set in the minion config file. When
  27571. \fBpillarenv\fP is left unset, as mentioned above all configured
  27572. environments will be combined. Running states with \fBpillarenv=testing\fP in
  27573. this case would still restrict the states\(aq pillar data to just that of the
  27574. \fBtesting\fP pillar environment.
  27575. .UNINDENT
  27576. .UNINDENT
  27577. .sp
  27578. Starting in the 2017.7.0 release, it is possible to pin the pillarenv to the
  27579. effective saltenv, using the \fBpillarenv_from_saltenv\fP minion
  27580. config option. When this is set to \fBTrue\fP, if a specific saltenv is specified
  27581. when running states, the \fBpillarenv\fP will be the same. This essentially makes
  27582. the following two commands equivalent:
  27583. .INDENT 0.0
  27584. .INDENT 3.5
  27585. .sp
  27586. .nf
  27587. .ft C
  27588. salt \(aq*\(aq state.apply mystates saltenv=dev
  27589. salt \(aq*\(aq state.apply mystates saltenv=dev pillarenv=dev
  27590. .ft P
  27591. .fi
  27592. .UNINDENT
  27593. .UNINDENT
  27594. .sp
  27595. However, if a pillarenv is specified, it will override this behavior. So, the
  27596. following command will use the \fBqa\fP pillar environment but source the SLS
  27597. files from the \fBdev\fP saltenv:
  27598. .INDENT 0.0
  27599. .INDENT 3.5
  27600. .sp
  27601. .nf
  27602. .ft C
  27603. salt \(aq*\(aq state.apply mystates saltenv=dev pillarenv=qa
  27604. .ft P
  27605. .fi
  27606. .UNINDENT
  27607. .UNINDENT
  27608. .sp
  27609. So, if a \fBpillarenv\fP is set in the minion config file,
  27610. \fBpillarenv_from_saltenv\fP will be ignored, and passing a
  27611. \fBpillarenv\fP on the CLI will temporarily override
  27612. \fBpillarenv_from_saltenv\fP\&.
  27613. .SS Viewing Pillar Data
  27614. .sp
  27615. To view pillar data, use the \fBpillar\fP execution
  27616. module. This module includes several functions, each of them with their own
  27617. use. These functions include:
  27618. .INDENT 0.0
  27619. .IP \(bu 2
  27620. \fBpillar.item\fP \- Retrieves the value of
  27621. one or more keys from the \fI\%in\-memory pillar data\fP\&.
  27622. .IP \(bu 2
  27623. \fBpillar.items\fP \- Compiles a fresh pillar
  27624. dictionary and returns it, leaving the \fI\%in\-memory pillar data\fP untouched. If pillar keys are passed to this function
  27625. however, this function acts like \fBpillar.item\fP and returns their values from the \fI\%in\-memory
  27626. pillar data\fP\&.
  27627. .IP \(bu 2
  27628. \fBpillar.raw\fP \- Like \fBpillar.items\fP, it returns the entire pillar dictionary, but
  27629. from the \fI\%in\-memory pillar data\fP instead of compiling
  27630. fresh pillar data.
  27631. .IP \(bu 2
  27632. \fBpillar.get\fP \- Described in detail below.
  27633. .UNINDENT
  27634. .SS The \fBpillar.get\fP Function
  27635. .sp
  27636. New in version 0.14.0.
  27637. .sp
  27638. The \fBpillar.get\fP function works much in the same
  27639. way as the \fBget\fP method in a python dict, but with an enhancement: nested
  27640. dictonaries can be traversed using a colon as a delimiter.
  27641. .sp
  27642. If a structure like this is in pillar:
  27643. .INDENT 0.0
  27644. .INDENT 3.5
  27645. .sp
  27646. .nf
  27647. .ft C
  27648. foo:
  27649. bar:
  27650. baz: qux
  27651. .ft P
  27652. .fi
  27653. .UNINDENT
  27654. .UNINDENT
  27655. .sp
  27656. Extracting it from the raw pillar in an sls formula or file template is done
  27657. this way:
  27658. .INDENT 0.0
  27659. .INDENT 3.5
  27660. .sp
  27661. .nf
  27662. .ft C
  27663. {{ pillar[\(aqfoo\(aq][\(aqbar\(aq][\(aqbaz\(aq] }}
  27664. .ft P
  27665. .fi
  27666. .UNINDENT
  27667. .UNINDENT
  27668. .sp
  27669. Now, with the new \fBpillar.get\fP function the data
  27670. can be safely gathered and a default can be set, allowing the template to fall
  27671. back if the value is not available:
  27672. .INDENT 0.0
  27673. .INDENT 3.5
  27674. .sp
  27675. .nf
  27676. .ft C
  27677. {{ salt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq, \(aqqux\(aq) }}
  27678. .ft P
  27679. .fi
  27680. .UNINDENT
  27681. .UNINDENT
  27682. .sp
  27683. This makes handling nested structures much easier.
  27684. .sp
  27685. \fBNOTE:\fP
  27686. .INDENT 0.0
  27687. .INDENT 3.5
  27688. \fBpillar.get()\fP vs \fBsalt[\(aqpillar.get\(aq]()\fP
  27689. .sp
  27690. It should be noted that within templating, the \fBpillar\fP variable is just
  27691. a dictionary. This means that calling \fBpillar.get()\fP inside of a
  27692. template will just use the default dictionary \fB\&.get()\fP function which
  27693. does not include the extra \fB:\fP delimiter functionality. It must be
  27694. called using the above syntax (\fBsalt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq,
  27695. \(aqqux\(aq)\fP) to get the salt function, instead of the default dictionary
  27696. behavior.
  27697. .UNINDENT
  27698. .UNINDENT
  27699. .SS Setting Pillar Data at the Command Line
  27700. .sp
  27701. Pillar data can be set at the command line like the following example:
  27702. .INDENT 0.0
  27703. .INDENT 3.5
  27704. .sp
  27705. .nf
  27706. .ft C
  27707. salt \(aq*\(aq state.apply pillar=\(aq{"cheese": "spam"}\(aq
  27708. .ft P
  27709. .fi
  27710. .UNINDENT
  27711. .UNINDENT
  27712. .sp
  27713. This will add a pillar key of \fBcheese\fP with its value set to \fBspam\fP\&.
  27714. .sp
  27715. \fBNOTE:\fP
  27716. .INDENT 0.0
  27717. .INDENT 3.5
  27718. Be aware that when sending sensitive data via pillar on the command\-line
  27719. that the publication containing that data will be received by all minions
  27720. and will not be restricted to the targeted minions. This may represent
  27721. a security concern in some cases.
  27722. .UNINDENT
  27723. .UNINDENT
  27724. .SS Pillar Encryption
  27725. .sp
  27726. Salt\(aqs renderer system can be used to decrypt pillar data. This allows for
  27727. pillar items to be stored in an encrypted state, and decrypted during pillar
  27728. compilation.
  27729. .SS Encrypted Pillar SLS
  27730. .sp
  27731. New in version 2017.7.0.
  27732. .sp
  27733. Consider the following pillar SLS file:
  27734. .INDENT 0.0
  27735. .INDENT 3.5
  27736. .sp
  27737. .nf
  27738. .ft C
  27739. secrets:
  27740. vault:
  27741. foo: |
  27742. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27743. hQEMAw2B674HRhwSAQgAhTrN8NizwUv/VunVrqa4/X8t6EUulrnhKcSeb8sZS4th
  27744. W1Qz3K2NjL4lkUHCQHKZVx/VoZY7zsddBIFvvoGGfj8+2wjkEDwFmFjGE4DEsS74
  27745. ZLRFIFJC1iB/O0AiQ+oU745skQkU6OEKxqavmKMrKo3rvJ8ZCXDC470+i2/Hqrp7
  27746. +KWGmaDOO422JaSKRm5D9bQZr9oX7KqnrPG9I1+UbJyQSJdsdtquPWmeIpamEVHb
  27747. VMDNQRjSezZ1yKC4kCWm3YQbBF76qTHzG1VlLF5qOzuGI9VkyvlMaLfMibriqY73
  27748. zBbPzf6Bkp2+Y9qyzuveYMmwS4sEOuZL/PetqisWe9JGAWD/O+slQ2KRu9hNww06
  27749. KMDPJRdyj5bRuBVE4hHkkP23KrYr7SuhW2vpe7O/MvWEJ9uDNegpMLhTWruGngJh
  27750. iFndxegN9w==
  27751. =bAuo
  27752. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27753. bar: this was unencrypted already
  27754. baz: |
  27755. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27756. hQEMAw2B674HRhwSAQf+Ne+IfsP2IcPDrUWct8sTJrga47jQvlPCmO+7zJjOVcqz
  27757. gLjUKvMajrbI/jorBWxyAbF+5E7WdG9WHHVnuoywsyTB9rbmzuPqYCJCe+ZVyqWf
  27758. 9qgJ+oUjcvYIFmH3h7H68ldqbxaAUkAOQbTRHdr253wwaTIC91ZeX0SCj64HfTg7
  27759. Izwk383CRWonEktXJpientApQFSUWNeLUWagEr/YPNFA3vzpPF5/Ia9X8/z/6oO2
  27760. q+D5W5mVsns3i2HHbg2A8Y+pm4TWnH6mTSh/gdxPqssi9qIrzGQ6H1tEoFFOEq1V
  27761. kJBe0izlfudqMq62XswzuRB4CYT5Iqw1c97T+1RqENJCASG0Wz8AGhinTdlU5iQl
  27762. JkLKqBxcBz4L70LYWyHhYwYROJWjHgKAywX5T67ftq0wi8APuZl9olnOkwSK+wrY
  27763. 1OZi
  27764. =7epf
  27765. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27766. qux:
  27767. \- foo
  27768. \- bar
  27769. \- |
  27770. \-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-
  27771. hQEMAw2B674HRhwSAQgAg1YCmokrweoOI1c9HO0BLamWBaFPTMblOaTo0WJLZoTS
  27772. ksbQ3OJAMkrkn3BnnM/djJc5C7vNs86ZfSJ+pvE8Sp1Rhtuxh25EKMqGOn/SBedI
  27773. gR6N5vGUNiIpG5Tf3DuYAMNFDUqw8uY0MyDJI+ZW3o3xrMUABzTH0ew+Piz85FDA
  27774. YrVgwZfqyL+9OQuu6T66jOIdwQNRX2NPFZqvon8liZUPus5VzD8E5cAL9OPxQ3sF
  27775. f7/zE91YIXUTimrv3L7eCgU1dSxKhhfvA2bEUi+AskMWFXFuETYVrIhFJAKnkFmE
  27776. uZx+O9R9hADW3hM5hWHKH9/CRtb0/cC84I9oCWIQPdI+AaPtICxtsD2N8Q98hhhd
  27777. 4M7I0sLZhV+4ZJqzpUsOnSpaGyfh1Zy/1d3ijJi99/l+uVHuvmMllsNmgR+ZTj0=
  27778. =LrCQ
  27779. \-\-\-\-\-END PGP MESSAGE\-\-\-\-\-
  27780. .ft P
  27781. .fi
  27782. .UNINDENT
  27783. .UNINDENT
  27784. .sp
  27785. When the pillar data is compiled, the results will be decrypted:
  27786. .INDENT 0.0
  27787. .INDENT 3.5
  27788. .sp
  27789. .nf
  27790. .ft C
  27791. # salt myminion pillar.items
  27792. myminion:
  27793. \-\-\-\-\-\-\-\-\-\-
  27794. secrets:
  27795. \-\-\-\-\-\-\-\-\-\-
  27796. vault:
  27797. \-\-\-\-\-\-\-\-\-\-
  27798. bar:
  27799. this was unencrypted already
  27800. baz:
  27801. rosebud
  27802. foo:
  27803. supersecret
  27804. qux:
  27805. \- foo
  27806. \- bar
  27807. \- baz
  27808. .ft P
  27809. .fi
  27810. .UNINDENT
  27811. .UNINDENT
  27812. .sp
  27813. Salt must be told what portions of the pillar data to decrypt. This is done
  27814. using the \fBdecrypt_pillar\fP config option:
  27815. .INDENT 0.0
  27816. .INDENT 3.5
  27817. .sp
  27818. .nf
  27819. .ft C
  27820. decrypt_pillar:
  27821. \- \(aqsecrets:vault\(aq: gpg
  27822. .ft P
  27823. .fi
  27824. .UNINDENT
  27825. .UNINDENT
  27826. .sp
  27827. The notation used to specify the pillar item(s) to be decrypted is the same as
  27828. the one used in \fBpillar.get\fP function.
  27829. .sp
  27830. If a different delimiter is needed, it can be specified using the
  27831. \fBdecrypt_pillar_delimiter\fP config option:
  27832. .INDENT 0.0
  27833. .INDENT 3.5
  27834. .sp
  27835. .nf
  27836. .ft C
  27837. decrypt_pillar:
  27838. \- \(aqsecrets|vault\(aq: gpg
  27839. decrypt_pillar_delimiter: \(aq|\(aq
  27840. .ft P
  27841. .fi
  27842. .UNINDENT
  27843. .UNINDENT
  27844. .sp
  27845. The name of the renderer used to decrypt a given pillar item can be omitted,
  27846. and if so it will fall back to the value specified by the
  27847. \fBdecrypt_pillar_default\fP config option, which defaults to \fBgpg\fP\&.
  27848. So, the first example above could be rewritten as:
  27849. .INDENT 0.0
  27850. .INDENT 3.5
  27851. .sp
  27852. .nf
  27853. .ft C
  27854. decrypt_pillar:
  27855. \- \(aqsecrets:vault\(aq
  27856. .ft P
  27857. .fi
  27858. .UNINDENT
  27859. .UNINDENT
  27860. .SS Encrypted Pillar Data on the CLI
  27861. .sp
  27862. New in version 2016.3.0.
  27863. .sp
  27864. The following functions support passing pillar data on the CLI via the
  27865. \fBpillar\fP argument:
  27866. .INDENT 0.0
  27867. .IP \(bu 2
  27868. \fBpillar.items\fP
  27869. .IP \(bu 2
  27870. \fBstate.apply\fP
  27871. .IP \(bu 2
  27872. \fBstate.highstate\fP
  27873. .IP \(bu 2
  27874. \fBstate.sls\fP
  27875. .UNINDENT
  27876. .sp
  27877. Triggerring decryption of this CLI pillar data can be done in one of two ways:
  27878. .INDENT 0.0
  27879. .IP 1. 3
  27880. Using the \fBpillar_enc\fP argument:
  27881. .INDENT 3.0
  27882. .INDENT 3.5
  27883. .sp
  27884. .nf
  27885. .ft C
  27886. # salt myminion pillar.items pillar_enc=gpg pillar=\(aq{foo: "\-\-\-\-\-BEGIN PGP MESSAGE\-\-\-\-\-\en\enhQEMAw2B674HRhwSAQf+OvPqEdDoA2fk15I5dYUTDoj1yf/pVolAma6iU4v8Zixn\enRDgWsaAnFz99FEiFACsAGDEFdZaVOxG80T0Lj+PnW4pVy0OXmXHnY2KjV9zx8FLS\enQxfvmhRR4t23WSFybozfMm0lsN8r1vfBBjbK+A72l0oxN78d1rybJ6PWNZiXi+aC\enmqIeunIbAKQ21w/OvZHhxH7cnIiGQIHc7N9nQH7ibyoKQzQMSZeilSMGr2abAHun\enmLzscr4wKMb+81Z0/fdBfP6g3bLWMJga3hSzSldU9ovu7KR8rDJI1qOlENj3Wm8C\enwTpDOB33kWIKMqiAjY3JFtb5MCHrafyggwQL7cX1+tI+AbSO6kZpbcDfzetb77LZ\enxc5NWnnGK4pGoqq4MAmZshw98RpecSHKMosto2gtiuWCuo9Zn5cV/FbjZ9CTWrQ=\en=0hO/\en\-\-\-\-\-END PGP MESSAGE\-\-\-\-\-"}\(aq
  27887. .ft P
  27888. .fi
  27889. .UNINDENT
  27890. .UNINDENT
  27891. .sp
  27892. The newlines in this example are specified using a literal \fB\en\fP\&. Newlines
  27893. can be replaced with a literal \fB\en\fP using \fBsed\fP:
  27894. .INDENT 3.0
  27895. .INDENT 3.5
  27896. .sp
  27897. .nf
  27898. .ft C
  27899. $ echo \-n bar | gpg \-\-armor \-\-trust\-model always \-\-encrypt \-r user@domain.tld | sed \(aq:a;N;$!ba;s/\en/\e\en/g\(aq
  27900. .ft P
  27901. .fi
  27902. .UNINDENT
  27903. .UNINDENT
  27904. .sp
  27905. \fBNOTE:\fP
  27906. .INDENT 3.0
  27907. .INDENT 3.5
  27908. Using \fBpillar_enc\fP will perform the decryption minion\-side, so for
  27909. this to work it will be necessary to set up the keyring in
  27910. \fB/etc/salt/gpgkeys\fP on the minion just as one would typically do on
  27911. the master. The easiest way to do this is to first export the keys from
  27912. the master:
  27913. .INDENT 0.0
  27914. .INDENT 3.5
  27915. .sp
  27916. .nf
  27917. .ft C
  27918. # gpg \-\-homedir /etc/salt/gpgkeys \-\-export\-secret\-key \-a user@domain.tld >/tmp/keypair.gpg
  27919. .ft P
  27920. .fi
  27921. .UNINDENT
  27922. .UNINDENT
  27923. .sp
  27924. Then, copy the file to the minion, setup the keyring, and import:
  27925. .INDENT 0.0
  27926. .INDENT 3.5
  27927. .sp
  27928. .nf
  27929. .ft C
  27930. # mkdir \-p /etc/salt/gpgkeys
  27931. # chmod 0700 /etc/salt/gpgkeys
  27932. # gpg \-\-homedir /etc/salt/gpgkeys \-\-list\-keys
  27933. # gpg \-\-homedir /etc/salt/gpgkeys \-\-import \-\-allow\-secret\-key\-import keypair.gpg
  27934. .ft P
  27935. .fi
  27936. .UNINDENT
  27937. .UNINDENT
  27938. .sp
  27939. The \fB\-\-list\-keys\fP command is run create a keyring in the newly\-created
  27940. directory.
  27941. .UNINDENT
  27942. .UNINDENT
  27943. .sp
  27944. Pillar data which is decrypted minion\-side will still be securely
  27945. transferred to the master, since the data sent between minion and master is
  27946. encrypted with the master\(aqs public key.
  27947. .IP 2. 3
  27948. Use the \fBdecrypt_pillar\fP option. This is less flexible in that
  27949. the pillar key passed on the CLI must be pre\-configured on the master, but
  27950. it doesn\(aqt require a keyring to be setup on the minion. One other caveat to
  27951. this method is that pillar decryption on the master happens at the end of
  27952. pillar compilation, so if the encrypted pillar data being passed on the CLI
  27953. needs to be referenced by pillar or ext_pillar \fIduring pillar compilation\fP,
  27954. it \fImust\fP be decrypted minion\-side.
  27955. .UNINDENT
  27956. .SS Adding New Renderers for Decryption
  27957. .sp
  27958. Those looking to add new renderers for decryption should look at the \fBgpg\fP renderer for an example of how to do so. The function
  27959. that performs the decryption should be recursive and be able to traverse a
  27960. mutable type such as a dictionary, and modify the values in\-place.
  27961. .sp
  27962. Once the renderer has been written, \fBdecrypt_pillar_renderers\fP
  27963. should be modified so that Salt allows it to be used for decryption.
  27964. .sp
  27965. If the renderer is being submitted upstream to the Salt project, the renderer
  27966. should be added in \fI\%salt/renderers/\fP\&. Additionally, the following should be
  27967. done:
  27968. .INDENT 0.0
  27969. .IP \(bu 2
  27970. Both occurrences of \fBdecrypt_pillar_renderers\fP in
  27971. \fI\%salt/config/__init__.py\fP should be updated to include the name of the new
  27972. renderer so that it is included in the default value for this config option.
  27973. .IP \(bu 2
  27974. The documentation for the \fBdecrypt_pillar_renderers\fP config
  27975. option in the \fI\%master config file\fP and \fI\%minion config file\fP should be
  27976. updated to show the correct new default value.
  27977. .IP \(bu 2
  27978. The commented example for the \fBdecrypt_pillar_renderers\fP config
  27979. option in the \fI\%master config template\fP should be updated to show the correct
  27980. new default value.
  27981. .UNINDENT
  27982. .SS Binary Data in the Pillar
  27983. .sp
  27984. Salt has partial support for binary pillar data.
  27985. .sp
  27986. \fBNOTE:\fP
  27987. .INDENT 0.0
  27988. .INDENT 3.5
  27989. There are some situations (such as salt\-ssh) where only text (ASCII or
  27990. Unicode) is allowed.
  27991. .UNINDENT
  27992. .UNINDENT
  27993. .sp
  27994. The simplest way to embed binary data in your pillar is to make use of YAML\(aqs
  27995. built\-in binary data type, which requires base64 encoded data.
  27996. .INDENT 0.0
  27997. .INDENT 3.5
  27998. .sp
  27999. .nf
  28000. .ft C
  28001. salt_pic: !!binary
  28002. iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAA
  28003. .ft P
  28004. .fi
  28005. .UNINDENT
  28006. .UNINDENT
  28007. .sp
  28008. Then you can use it as a \fBcontents_pillar\fP in a state:
  28009. .INDENT 0.0
  28010. .INDENT 3.5
  28011. .sp
  28012. .nf
  28013. .ft C
  28014. /tmp/salt.png:
  28015. file.managed:
  28016. \- contents_pillar: salt_pic
  28017. .ft P
  28018. .fi
  28019. .UNINDENT
  28020. .UNINDENT
  28021. .sp
  28022. It is also possible to add ASCII\-armored encrypted data to pillars, as
  28023. mentioned in the Pillar Encryption section.
  28024. .SS Master Config in Pillar
  28025. .sp
  28026. For convenience the data stored in the master configuration file can be made
  28027. available in all minion\(aqs pillars. This makes global configuration of services
  28028. and systems very easy but may not be desired if sensitive data is stored in the
  28029. master configuration. This option is disabled by default.
  28030. .sp
  28031. To enable the master config from being added to the pillar set
  28032. \fBpillar_opts\fP to \fBTrue\fP in the minion config file:
  28033. .INDENT 0.0
  28034. .INDENT 3.5
  28035. .sp
  28036. .nf
  28037. .ft C
  28038. pillar_opts: True
  28039. .ft P
  28040. .fi
  28041. .UNINDENT
  28042. .UNINDENT
  28043. .SS Minion Config in Pillar
  28044. .sp
  28045. Minion configuration options can be set on pillars. Any option that you want
  28046. to modify, should be in the first level of the pillars, in the same way you set
  28047. the options in the config file. For example, to configure the MySQL root
  28048. password to be used by MySQL Salt execution module, set the following pillar
  28049. variable:
  28050. .INDENT 0.0
  28051. .INDENT 3.5
  28052. .sp
  28053. .nf
  28054. .ft C
  28055. mysql.pass: hardtoguesspassword
  28056. .ft P
  28057. .fi
  28058. .UNINDENT
  28059. .UNINDENT
  28060. .SS Master Provided Pillar Error
  28061. .sp
  28062. By default if there is an error rendering a pillar, the detailed error is
  28063. hidden and replaced with:
  28064. .INDENT 0.0
  28065. .INDENT 3.5
  28066. .sp
  28067. .nf
  28068. .ft C
  28069. Rendering SLS \(aqmy.sls\(aq failed. Please see master log for details.
  28070. .ft P
  28071. .fi
  28072. .UNINDENT
  28073. .UNINDENT
  28074. .sp
  28075. The error is protected because it\(aqs possible to contain templating data
  28076. which would give that minion information it shouldn\(aqt know, like a password!
  28077. .sp
  28078. To have the master provide the detailed error that could potentially carry
  28079. protected data set \fBpillar_safe_render_error\fP to \fBFalse\fP:
  28080. .INDENT 0.0
  28081. .INDENT 3.5
  28082. .sp
  28083. .nf
  28084. .ft C
  28085. pillar_safe_render_error: False
  28086. .ft P
  28087. .fi
  28088. .UNINDENT
  28089. .UNINDENT
  28090. .SS Pillar Walkthrough
  28091. .sp
  28092. \fBNOTE:\fP
  28093. .INDENT 0.0
  28094. .INDENT 3.5
  28095. This walkthrough assumes that the reader has already completed the initial
  28096. Salt walkthrough\&.
  28097. .UNINDENT
  28098. .UNINDENT
  28099. .sp
  28100. Pillars are tree\-like structures of data defined on the Salt Master and passed
  28101. through to minions. They allow confidential, targeted data to be securely sent
  28102. only to the relevant minion.
  28103. .sp
  28104. \fBNOTE:\fP
  28105. .INDENT 0.0
  28106. .INDENT 3.5
  28107. Grains and Pillar are sometimes confused, just remember that Grains
  28108. are data about a minion which is stored or generated from the minion.
  28109. This is why information like the OS and CPU type are found in Grains.
  28110. Pillar is information about a minion or many minions stored or generated
  28111. on the Salt Master.
  28112. .UNINDENT
  28113. .UNINDENT
  28114. .sp
  28115. Pillar data is useful for:
  28116. .INDENT 0.0
  28117. .TP
  28118. .B Highly Sensitive Data:
  28119. Information transferred via pillar is guaranteed to only be presented to
  28120. the minions that are targeted, making Pillar suitable
  28121. for managing security information, such as cryptographic keys and
  28122. passwords.
  28123. .TP
  28124. .B Minion Configuration:
  28125. Minion modules such as the execution modules, states, and returners can
  28126. often be configured via data stored in pillar.
  28127. .TP
  28128. .B Variables:
  28129. Variables which need to be assigned to specific minions or groups of
  28130. minions can be defined in pillar and then accessed inside sls formulas
  28131. and template files.
  28132. .TP
  28133. .B Arbitrary Data:
  28134. Pillar can contain any basic data structure in dictionary format,
  28135. so a key/value store can be defined making it easy to iterate over a group
  28136. of values in sls formulas.
  28137. .UNINDENT
  28138. .sp
  28139. Pillar is therefore one of the most important systems when using Salt. This
  28140. walkthrough is designed to get a simple Pillar up and running in a few minutes
  28141. and then to dive into the capabilities of Pillar and where the data is
  28142. available.
  28143. .SS Setting Up Pillar
  28144. .sp
  28145. The pillar is already running in Salt by default. To see the minion\(aqs
  28146. pillar data:
  28147. .INDENT 0.0
  28148. .INDENT 3.5
  28149. .sp
  28150. .nf
  28151. .ft C
  28152. salt \(aq*\(aq pillar.items
  28153. .ft P
  28154. .fi
  28155. .UNINDENT
  28156. .UNINDENT
  28157. .sp
  28158. \fBNOTE:\fP
  28159. .INDENT 0.0
  28160. .INDENT 3.5
  28161. Prior to version 0.16.2, this function is named \fBpillar.data\fP\&. This
  28162. function name is still supported for backwards compatibility.
  28163. .UNINDENT
  28164. .UNINDENT
  28165. .sp
  28166. By default, the contents of the master configuration file are not loaded into
  28167. pillar for all minions. This default is stored in the \fBpillar_opts\fP setting,
  28168. which defaults to \fBFalse\fP\&.
  28169. .sp
  28170. The contents of the master configuration file can be made available to minion
  28171. pillar files. This makes global configuration of services and systems very easy,
  28172. but note that this may not be desired or appropriate if sensitive data is stored
  28173. in the master\(aqs configuration file. To enable the master configuration file to be
  28174. available to a minion\(aqs pillar files, set \fBpillar_opts\fP to \fBTrue\fP in the
  28175. minion configuration file.
  28176. .sp
  28177. Similar to the state tree, the pillar is comprised of sls files and has a top file.
  28178. The default location for the pillar is in /srv/pillar.
  28179. .sp
  28180. \fBNOTE:\fP
  28181. .INDENT 0.0
  28182. .INDENT 3.5
  28183. The pillar location can be configured via the \fBpillar_roots\fP option inside
  28184. the master configuration file. It must not be in a subdirectory of the state
  28185. tree or file_roots. If the pillar is under file_roots, any pillar targeting
  28186. can be bypassed by minions.
  28187. .UNINDENT
  28188. .UNINDENT
  28189. .sp
  28190. To start setting up the pillar, the /srv/pillar directory needs to be present:
  28191. .INDENT 0.0
  28192. .INDENT 3.5
  28193. .sp
  28194. .nf
  28195. .ft C
  28196. mkdir /srv/pillar
  28197. .ft P
  28198. .fi
  28199. .UNINDENT
  28200. .UNINDENT
  28201. .sp
  28202. Now create a simple top file, following the same format as the top file used for
  28203. states:
  28204. .sp
  28205. \fB/srv/pillar/top.sls\fP:
  28206. .INDENT 0.0
  28207. .INDENT 3.5
  28208. .sp
  28209. .nf
  28210. .ft C
  28211. base:
  28212. \(aq*\(aq:
  28213. \- data
  28214. .ft P
  28215. .fi
  28216. .UNINDENT
  28217. .UNINDENT
  28218. .sp
  28219. This top file associates the data.sls file to all minions. Now the
  28220. \fB/srv/pillar/data.sls\fP file needs to be populated:
  28221. .sp
  28222. \fB/srv/pillar/data.sls\fP:
  28223. .INDENT 0.0
  28224. .INDENT 3.5
  28225. .sp
  28226. .nf
  28227. .ft C
  28228. info: some data
  28229. .ft P
  28230. .fi
  28231. .UNINDENT
  28232. .UNINDENT
  28233. .sp
  28234. To ensure that the minions have the new pillar data, issue a command
  28235. to them asking that they fetch their pillars from the master:
  28236. .INDENT 0.0
  28237. .INDENT 3.5
  28238. .sp
  28239. .nf
  28240. .ft C
  28241. salt \(aq*\(aq saltutil.refresh_pillar
  28242. .ft P
  28243. .fi
  28244. .UNINDENT
  28245. .UNINDENT
  28246. .sp
  28247. Now that the minions have the new pillar, it can be retrieved:
  28248. .INDENT 0.0
  28249. .INDENT 3.5
  28250. .sp
  28251. .nf
  28252. .ft C
  28253. salt \(aq*\(aq pillar.items
  28254. .ft P
  28255. .fi
  28256. .UNINDENT
  28257. .UNINDENT
  28258. .sp
  28259. The key \fBinfo\fP should now appear in the returned pillar data.
  28260. .SS More Complex Data
  28261. .sp
  28262. Unlike states, pillar files do not need to define \fBformulas\fP\&.
  28263. This example sets up user data with a UID:
  28264. .sp
  28265. \fB/srv/pillar/users/init.sls\fP:
  28266. .INDENT 0.0
  28267. .INDENT 3.5
  28268. .sp
  28269. .nf
  28270. .ft C
  28271. users:
  28272. thatch: 1000
  28273. shouse: 1001
  28274. utahdave: 1002
  28275. redbeard: 1003
  28276. .ft P
  28277. .fi
  28278. .UNINDENT
  28279. .UNINDENT
  28280. .sp
  28281. \fBNOTE:\fP
  28282. .INDENT 0.0
  28283. .INDENT 3.5
  28284. The same directory lookups that exist in states exist in pillar, so the
  28285. file \fBusers/init.sls\fP can be referenced with \fBusers\fP in the top
  28286. file\&.
  28287. .UNINDENT
  28288. .UNINDENT
  28289. .sp
  28290. The top file will need to be updated to include this sls file:
  28291. .sp
  28292. \fB/srv/pillar/top.sls\fP:
  28293. .INDENT 0.0
  28294. .INDENT 3.5
  28295. .sp
  28296. .nf
  28297. .ft C
  28298. base:
  28299. \(aq*\(aq:
  28300. \- data
  28301. \- users
  28302. .ft P
  28303. .fi
  28304. .UNINDENT
  28305. .UNINDENT
  28306. .sp
  28307. Now the data will be available to the minions. To use the pillar data in a
  28308. state, you can use Jinja:
  28309. .sp
  28310. \fB/srv/salt/users/init.sls\fP
  28311. .INDENT 0.0
  28312. .INDENT 3.5
  28313. .sp
  28314. .nf
  28315. .ft C
  28316. {% for user, uid in pillar.get(\(aqusers\(aq, {}).items() %}
  28317. {{user}}:
  28318. user.present:
  28319. \- uid: {{uid}}
  28320. {% endfor %}
  28321. .ft P
  28322. .fi
  28323. .UNINDENT
  28324. .UNINDENT
  28325. .sp
  28326. This approach allows for users to be safely defined in a pillar and then the
  28327. user data is applied in an sls file.
  28328. .SS Parameterizing States With Pillar
  28329. .sp
  28330. Pillar data can be accessed in state files to customise behavior for each
  28331. minion. All pillar (and grain) data applicable to each minion is substituted
  28332. into the state files through templating before being run. Typical uses
  28333. include setting directories appropriate for the minion and skipping states
  28334. that don\(aqt apply.
  28335. .sp
  28336. A simple example is to set up a mapping of package names in pillar for
  28337. separate Linux distributions:
  28338. .sp
  28339. \fB/srv/pillar/pkg/init.sls\fP:
  28340. .INDENT 0.0
  28341. .INDENT 3.5
  28342. .sp
  28343. .nf
  28344. .ft C
  28345. pkgs:
  28346. {% if grains[\(aqos_family\(aq] == \(aqRedHat\(aq %}
  28347. apache: httpd
  28348. vim: vim\-enhanced
  28349. {% elif grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  28350. apache: apache2
  28351. vim: vim
  28352. {% elif grains[\(aqos\(aq] == \(aqArch\(aq %}
  28353. apache: apache
  28354. vim: vim
  28355. {% endif %}
  28356. .ft P
  28357. .fi
  28358. .UNINDENT
  28359. .UNINDENT
  28360. .sp
  28361. The new \fBpkg\fP sls needs to be added to the top file:
  28362. .sp
  28363. \fB/srv/pillar/top.sls\fP:
  28364. .INDENT 0.0
  28365. .INDENT 3.5
  28366. .sp
  28367. .nf
  28368. .ft C
  28369. base:
  28370. \(aq*\(aq:
  28371. \- data
  28372. \- users
  28373. \- pkg
  28374. .ft P
  28375. .fi
  28376. .UNINDENT
  28377. .UNINDENT
  28378. .sp
  28379. Now the minions will auto map values based on respective operating systems
  28380. inside of the pillar, so sls files can be safely parameterized:
  28381. .sp
  28382. \fB/srv/salt/apache/init.sls\fP:
  28383. .INDENT 0.0
  28384. .INDENT 3.5
  28385. .sp
  28386. .nf
  28387. .ft C
  28388. apache:
  28389. pkg.installed:
  28390. \- name: {{ pillar[\(aqpkgs\(aq][\(aqapache\(aq] }}
  28391. .ft P
  28392. .fi
  28393. .UNINDENT
  28394. .UNINDENT
  28395. .sp
  28396. Or, if no pillar is available a default can be set as well:
  28397. .sp
  28398. \fBNOTE:\fP
  28399. .INDENT 0.0
  28400. .INDENT 3.5
  28401. The function \fBpillar.get\fP used in this example was added to Salt in
  28402. version 0.14.0
  28403. .UNINDENT
  28404. .UNINDENT
  28405. .sp
  28406. \fB/srv/salt/apache/init.sls\fP:
  28407. .INDENT 0.0
  28408. .INDENT 3.5
  28409. .sp
  28410. .nf
  28411. .ft C
  28412. apache:
  28413. pkg.installed:
  28414. \- name: {{ salt[\(aqpillar.get\(aq](\(aqpkgs:apache\(aq, \(aqhttpd\(aq) }}
  28415. .ft P
  28416. .fi
  28417. .UNINDENT
  28418. .UNINDENT
  28419. .sp
  28420. In the above example, if the pillar value \fBpillar[\(aqpkgs\(aq][\(aqapache\(aq]\fP is not
  28421. set in the minion\(aqs pillar, then the default of \fBhttpd\fP will be used.
  28422. .sp
  28423. \fBNOTE:\fP
  28424. .INDENT 0.0
  28425. .INDENT 3.5
  28426. Under the hood, pillar is just a Python dict, so Python dict methods such
  28427. as \fBget\fP and \fBitems\fP can be used.
  28428. .UNINDENT
  28429. .UNINDENT
  28430. .SS Pillar Makes Simple States Grow Easily
  28431. .sp
  28432. One of the design goals of pillar is to make simple sls formulas easily grow
  28433. into more flexible formulas without refactoring or complicating the states.
  28434. .sp
  28435. A simple formula:
  28436. .sp
  28437. \fB/srv/salt/edit/vim.sls\fP:
  28438. .INDENT 0.0
  28439. .INDENT 3.5
  28440. .sp
  28441. .nf
  28442. .ft C
  28443. vim:
  28444. pkg.installed: []
  28445. /etc/vimrc:
  28446. file.managed:
  28447. \- source: salt://edit/vimrc
  28448. \- mode: 644
  28449. \- user: root
  28450. \- group: root
  28451. \- require:
  28452. \- pkg: vim
  28453. .ft P
  28454. .fi
  28455. .UNINDENT
  28456. .UNINDENT
  28457. .sp
  28458. Can be easily transformed into a powerful, parameterized formula:
  28459. .sp
  28460. \fB/srv/salt/edit/vim.sls\fP:
  28461. .INDENT 0.0
  28462. .INDENT 3.5
  28463. .sp
  28464. .nf
  28465. .ft C
  28466. vim:
  28467. pkg.installed:
  28468. \- name: {{ pillar[\(aqpkgs\(aq][\(aqvim\(aq] }}
  28469. /etc/vimrc:
  28470. file.managed:
  28471. \- source: {{ pillar[\(aqvimrc\(aq] }}
  28472. \- mode: 644
  28473. \- user: root
  28474. \- group: root
  28475. \- require:
  28476. \- pkg: vim
  28477. .ft P
  28478. .fi
  28479. .UNINDENT
  28480. .UNINDENT
  28481. .sp
  28482. Where the vimrc source location can now be changed via pillar:
  28483. .sp
  28484. \fB/srv/pillar/edit/vim.sls\fP:
  28485. .INDENT 0.0
  28486. .INDENT 3.5
  28487. .sp
  28488. .nf
  28489. .ft C
  28490. {% if grains[\(aqid\(aq].startswith(\(aqdev\(aq) %}
  28491. vimrc: salt://edit/dev_vimrc
  28492. {% elif grains[\(aqid\(aq].startswith(\(aqqa\(aq) %}
  28493. vimrc: salt://edit/qa_vimrc
  28494. {% else %}
  28495. vimrc: salt://edit/vimrc
  28496. {% endif %}
  28497. .ft P
  28498. .fi
  28499. .UNINDENT
  28500. .UNINDENT
  28501. .sp
  28502. Ensuring that the right vimrc is sent out to the correct minions.
  28503. .sp
  28504. The pillar top file must include a reference to the new sls pillar file:
  28505. .sp
  28506. \fB/srv/pillar/top.sls\fP:
  28507. .INDENT 0.0
  28508. .INDENT 3.5
  28509. .sp
  28510. .nf
  28511. .ft C
  28512. base:
  28513. \(aq*\(aq:
  28514. \- pkg
  28515. \- edit.vim
  28516. .ft P
  28517. .fi
  28518. .UNINDENT
  28519. .UNINDENT
  28520. .SS Setting Pillar Data on the Command Line
  28521. .sp
  28522. Pillar data can be set on the command line when running \fBstate.apply
  28523. <salt.modules.state.apply_()\fP like so:
  28524. .INDENT 0.0
  28525. .INDENT 3.5
  28526. .sp
  28527. .nf
  28528. .ft C
  28529. salt \(aq*\(aq state.apply pillar=\(aq{"foo": "bar"}\(aq
  28530. salt \(aq*\(aq state.apply my_sls_file pillar=\(aq{"hello": "world"}\(aq
  28531. .ft P
  28532. .fi
  28533. .UNINDENT
  28534. .UNINDENT
  28535. .sp
  28536. Nested pillar values can also be set via the command line:
  28537. .INDENT 0.0
  28538. .INDENT 3.5
  28539. .sp
  28540. .nf
  28541. .ft C
  28542. salt \(aq*\(aq state.sls my_sls_file pillar=\(aq{"foo": {"bar": "baz"}}\(aq
  28543. .ft P
  28544. .fi
  28545. .UNINDENT
  28546. .UNINDENT
  28547. .sp
  28548. Lists can be passed via command line pillar data as follows:
  28549. .INDENT 0.0
  28550. .INDENT 3.5
  28551. .sp
  28552. .nf
  28553. .ft C
  28554. salt \(aq*\(aq state.sls my_sls_file pillar=\(aq{"some_list": ["foo", "bar", "baz"]}\(aq
  28555. .ft P
  28556. .fi
  28557. .UNINDENT
  28558. .UNINDENT
  28559. .sp
  28560. \fBNOTE:\fP
  28561. .INDENT 0.0
  28562. .INDENT 3.5
  28563. If a key is passed on the command line that already exists on the minion,
  28564. the key that is passed in will overwrite the entire value of that key,
  28565. rather than merging only the specified value set via the command line.
  28566. .UNINDENT
  28567. .UNINDENT
  28568. .sp
  28569. The example below will swap the value for vim with telnet in the previously
  28570. specified list, notice the nested pillar dict:
  28571. .INDENT 0.0
  28572. .INDENT 3.5
  28573. .sp
  28574. .nf
  28575. .ft C
  28576. salt \(aq*\(aq state.apply edit.vim pillar=\(aq{"pkgs": {"vim": "telnet"}}\(aq
  28577. .ft P
  28578. .fi
  28579. .UNINDENT
  28580. .UNINDENT
  28581. .sp
  28582. This will attempt to install telnet on your minions, feel free to
  28583. uninstall the package or replace telnet value with anything else.
  28584. .sp
  28585. \fBNOTE:\fP
  28586. .INDENT 0.0
  28587. .INDENT 3.5
  28588. Be aware that when sending sensitive data via pillar on the command\-line
  28589. that the publication containing that data will be received by all minions
  28590. and will not be restricted to the targeted minions. This may represent
  28591. a security concern in some cases.
  28592. .UNINDENT
  28593. .UNINDENT
  28594. .SS More On Pillar
  28595. .sp
  28596. Pillar data is generated on the Salt master and securely distributed to
  28597. minions. Salt is not restricted to the pillar sls files when defining the
  28598. pillar but can retrieve data from external sources. This can be useful when
  28599. information about an infrastructure is stored in a separate location.
  28600. .sp
  28601. Reference information on pillar and the external pillar interface can be found
  28602. in the Salt documentation:
  28603. .sp
  28604. Pillar
  28605. .SS Minion Config in Pillar
  28606. .sp
  28607. Minion configuration options can be set on pillars. Any option that you want
  28608. to modify, should be in the first level of the pillars, in the same way you set
  28609. the options in the config file. For example, to configure the MySQL root
  28610. password to be used by MySQL Salt execution module:
  28611. .INDENT 0.0
  28612. .INDENT 3.5
  28613. .sp
  28614. .nf
  28615. .ft C
  28616. mysql.pass: hardtoguesspassword
  28617. .ft P
  28618. .fi
  28619. .UNINDENT
  28620. .UNINDENT
  28621. .sp
  28622. This is very convenient when you need some dynamic configuration change that
  28623. you want to be applied on the fly. For example, there is a chicken and the egg
  28624. problem if you do this:
  28625. .INDENT 0.0
  28626. .INDENT 3.5
  28627. .sp
  28628. .nf
  28629. .ft C
  28630. mysql\-admin\-passwd:
  28631. mysql_user.present:
  28632. \- name: root
  28633. \- password: somepasswd
  28634. mydb:
  28635. mysql_db.present
  28636. .ft P
  28637. .fi
  28638. .UNINDENT
  28639. .UNINDENT
  28640. .sp
  28641. The second state will fail, because you changed the root password and the
  28642. minion didn\(aqt notice it. Setting mysql.pass in the pillar, will help to sort
  28643. out the issue. But always change the root admin password in the first place.
  28644. .sp
  28645. This is very helpful for any module that needs credentials to apply state
  28646. changes: mysql, keystone, etc.
  28647. .SS Targeting Minions
  28648. .sp
  28649. Targeting minions is specifying which minions should run a command or execute a
  28650. state by matching against hostnames, or system information, or defined groups,
  28651. or even combinations thereof.
  28652. .sp
  28653. For example the command \fBsalt web1 apache.signal restart\fP to restart the
  28654. Apache httpd server specifies the machine \fBweb1\fP as the target and the
  28655. command will only be run on that one minion.
  28656. .sp
  28657. Similarly when using States, the following top file specifies that only
  28658. the \fBweb1\fP minion should execute the contents of \fBwebserver.sls\fP:
  28659. .INDENT 0.0
  28660. .INDENT 3.5
  28661. .sp
  28662. .nf
  28663. .ft C
  28664. base:
  28665. \(aqweb1\(aq:
  28666. \- webserver
  28667. .ft P
  28668. .fi
  28669. .UNINDENT
  28670. .UNINDENT
  28671. .sp
  28672. The simple target specifications, glob, regex, and list will cover many use
  28673. cases, and for some will cover all use cases, but more powerful options exist.
  28674. .SS Targeting with Grains
  28675. .sp
  28676. The Grains interface was built into Salt to allow minions to be targeted by
  28677. system properties. So minions running on a particular operating system can
  28678. be called to execute a function, or a specific kernel.
  28679. .sp
  28680. Calling via a grain is done by passing the \-G option to salt, specifying
  28681. a grain and a glob expression to match the value of the grain. The syntax for
  28682. the target is the grain key followed by a glob expression: "os:Arch*".
  28683. .INDENT 0.0
  28684. .INDENT 3.5
  28685. .sp
  28686. .nf
  28687. .ft C
  28688. salt \-G \(aqos:Fedora\(aq test.version
  28689. .ft P
  28690. .fi
  28691. .UNINDENT
  28692. .UNINDENT
  28693. .sp
  28694. Will return True from all of the minions running Fedora.
  28695. .sp
  28696. To discover what grains are available and what the values are, execute the
  28697. grains.item salt function:
  28698. .INDENT 0.0
  28699. .INDENT 3.5
  28700. .sp
  28701. .nf
  28702. .ft C
  28703. salt \(aq*\(aq grains.items
  28704. .ft P
  28705. .fi
  28706. .UNINDENT
  28707. .UNINDENT
  28708. .sp
  28709. More info on using targeting with grains can be found here\&.
  28710. .SS Compound Targeting
  28711. .sp
  28712. New in version 0.9.5.
  28713. .sp
  28714. Multiple target interfaces can be used in conjunction to determine the command
  28715. targets. These targets can then be combined using \fBand\fP or \fBor\fP statements.
  28716. This is well defined with an example:
  28717. .INDENT 0.0
  28718. .INDENT 3.5
  28719. .sp
  28720. .nf
  28721. .ft C
  28722. salt \-C \(aqG@os:Debian and webser* or E@db.*\(aq test.version
  28723. .ft P
  28724. .fi
  28725. .UNINDENT
  28726. .UNINDENT
  28727. .sp
  28728. In this example any minion who\(aqs id starts with \fBwebser\fP and is running
  28729. Debian, or any minion who\(aqs id starts with db will be matched.
  28730. .sp
  28731. The type of matcher defaults to glob, but can be specified with the
  28732. corresponding letter followed by the \fB@\fP symbol. In the above example a grain
  28733. is used with \fBG@\fP as well as a regular expression with \fBE@\fP\&. The
  28734. \fBwebser*\fP target does not need to be prefaced with a target type specifier
  28735. because it is a glob.
  28736. .sp
  28737. More info on using compound targeting can be found here\&.
  28738. .SS Node Group Targeting
  28739. .sp
  28740. New in version 0.9.5.
  28741. .sp
  28742. For certain cases, it can be convenient to have a predefined group of minions
  28743. on which to execute commands. This can be accomplished using what are called
  28744. nodegroups\&. Nodegroups allow for predefined
  28745. compound targets to be declared in the master configuration file, as a sort of
  28746. shorthand for having to type out complicated compound expressions.
  28747. .INDENT 0.0
  28748. .INDENT 3.5
  28749. .sp
  28750. .nf
  28751. .ft C
  28752. nodegroups:
  28753. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com\(aq
  28754. group2: \(aqG@os:Debian and foo.domain.com\(aq
  28755. group3: \(aqG@os:Debian and N@group1\(aq
  28756. .ft P
  28757. .fi
  28758. .UNINDENT
  28759. .UNINDENT
  28760. .SS Advanced Targeting Methods
  28761. .sp
  28762. There are many ways to target individual minions or groups of minions in Salt:
  28763. .SS Matching the \fBminion id\fP
  28764. .sp
  28765. Each minion needs a unique identifier. By default when a minion starts for the
  28766. first time it chooses its FQDN as that
  28767. identifier. The minion id can be overridden via the minion\(aqs \fBid\fP
  28768. configuration setting.
  28769. .sp
  28770. \fBTIP:\fP
  28771. .INDENT 0.0
  28772. .INDENT 3.5
  28773. minion id and minion keys
  28774. .sp
  28775. The minion id is used to generate the minion\(aqs public/private keys
  28776. and if it ever changes the master must then accept the new key as though
  28777. the minion was a new host.
  28778. .UNINDENT
  28779. .UNINDENT
  28780. .SS Globbing
  28781. .sp
  28782. The default matching that Salt utilizes is \fBshell\-style globbing\fP around the minion id\&. This also works for states
  28783. in the top file\&.
  28784. .sp
  28785. \fBNOTE:\fP
  28786. .INDENT 0.0
  28787. .INDENT 3.5
  28788. You must wrap \fBsalt\fP calls that use globbing in single\-quotes to
  28789. prevent the shell from expanding the globs before Salt is invoked.
  28790. .UNINDENT
  28791. .UNINDENT
  28792. .sp
  28793. Match all minions:
  28794. .INDENT 0.0
  28795. .INDENT 3.5
  28796. .sp
  28797. .nf
  28798. .ft C
  28799. salt \(aq*\(aq test.version
  28800. .ft P
  28801. .fi
  28802. .UNINDENT
  28803. .UNINDENT
  28804. .sp
  28805. Match all minions in the example.net domain or any of the example domains:
  28806. .INDENT 0.0
  28807. .INDENT 3.5
  28808. .sp
  28809. .nf
  28810. .ft C
  28811. salt \(aq*.example.net\(aq test.version
  28812. salt \(aq*.example.*\(aq test.version
  28813. .ft P
  28814. .fi
  28815. .UNINDENT
  28816. .UNINDENT
  28817. .sp
  28818. Match all the \fBwebN\fP minions in the example.net domain (\fBweb1.example.net\fP,
  28819. \fBweb2.example.net\fP … \fBwebN.example.net\fP):
  28820. .INDENT 0.0
  28821. .INDENT 3.5
  28822. .sp
  28823. .nf
  28824. .ft C
  28825. salt \(aqweb?.example.net\(aq test.version
  28826. .ft P
  28827. .fi
  28828. .UNINDENT
  28829. .UNINDENT
  28830. .sp
  28831. Match the \fBweb1\fP through \fBweb5\fP minions:
  28832. .INDENT 0.0
  28833. .INDENT 3.5
  28834. .sp
  28835. .nf
  28836. .ft C
  28837. salt \(aqweb[1\-5]\(aq test.version
  28838. .ft P
  28839. .fi
  28840. .UNINDENT
  28841. .UNINDENT
  28842. .sp
  28843. Match the \fBweb1\fP and \fBweb3\fP minions:
  28844. .INDENT 0.0
  28845. .INDENT 3.5
  28846. .sp
  28847. .nf
  28848. .ft C
  28849. salt \(aqweb[1,3]\(aq test.version
  28850. .ft P
  28851. .fi
  28852. .UNINDENT
  28853. .UNINDENT
  28854. .sp
  28855. Match the \fBweb\-x\fP, \fBweb\-y\fP, and \fBweb\-z\fP minions:
  28856. .INDENT 0.0
  28857. .INDENT 3.5
  28858. .sp
  28859. .nf
  28860. .ft C
  28861. salt \(aqweb\-[x\-z]\(aq test.version
  28862. .ft P
  28863. .fi
  28864. .UNINDENT
  28865. .UNINDENT
  28866. .sp
  28867. \fBNOTE:\fP
  28868. .INDENT 0.0
  28869. .INDENT 3.5
  28870. For additional targeting methods please review the
  28871. compound matchers documentation.
  28872. .UNINDENT
  28873. .UNINDENT
  28874. .SS Regular Expressions
  28875. .sp
  28876. Minions can be matched using Perl\-compatible \fBregular expressions\fP (which is globbing on steroids and a ton of caffeine).
  28877. .sp
  28878. Match both \fBweb1\-prod\fP and \fBweb1\-devel\fP minions:
  28879. .INDENT 0.0
  28880. .INDENT 3.5
  28881. .sp
  28882. .nf
  28883. .ft C
  28884. salt \-E \(aqweb1\-(prod|devel)\(aq test.version
  28885. .ft P
  28886. .fi
  28887. .UNINDENT
  28888. .UNINDENT
  28889. .sp
  28890. When using regular expressions in a State\(aqs top file, you must specify
  28891. the matcher as the first option. The following example executes the contents of
  28892. \fBwebserver.sls\fP on the above\-mentioned minions.
  28893. .INDENT 0.0
  28894. .INDENT 3.5
  28895. .sp
  28896. .nf
  28897. .ft C
  28898. base:
  28899. \(aqweb1\-(prod|devel)\(aq:
  28900. \- match: pcre
  28901. \- webserver
  28902. .ft P
  28903. .fi
  28904. .UNINDENT
  28905. .UNINDENT
  28906. .SS Lists
  28907. .sp
  28908. At the most basic level, you can specify a flat list of minion IDs:
  28909. .INDENT 0.0
  28910. .INDENT 3.5
  28911. .sp
  28912. .nf
  28913. .ft C
  28914. salt \-L \(aqweb1,web2,web3\(aq test.version
  28915. .ft P
  28916. .fi
  28917. .UNINDENT
  28918. .UNINDENT
  28919. .SS Targeting using Grains
  28920. .sp
  28921. Grain data can be used when targeting minions.
  28922. .sp
  28923. For example, the following matches all CentOS minions:
  28924. .INDENT 0.0
  28925. .INDENT 3.5
  28926. .sp
  28927. .nf
  28928. .ft C
  28929. salt \-G \(aqos:CentOS\(aq test.version
  28930. .ft P
  28931. .fi
  28932. .UNINDENT
  28933. .UNINDENT
  28934. .sp
  28935. Match all minions with 64\-bit CPUs, and return number of CPU cores for each
  28936. matching minion:
  28937. .INDENT 0.0
  28938. .INDENT 3.5
  28939. .sp
  28940. .nf
  28941. .ft C
  28942. salt \-G \(aqcpuarch:x86_64\(aq grains.item num_cpus
  28943. .ft P
  28944. .fi
  28945. .UNINDENT
  28946. .UNINDENT
  28947. .sp
  28948. Additionally, globs can be used in grain matches, and grains that are nested in
  28949. a dictionary can be matched by adding a colon for each level that is traversed.
  28950. For example, the following will match hosts that have a grain called
  28951. \fBec2_tags\fP, which itself is a dictionary with a key named \fBenvironment\fP,
  28952. which has a value that contains the word \fBproduction\fP:
  28953. .INDENT 0.0
  28954. .INDENT 3.5
  28955. .sp
  28956. .nf
  28957. .ft C
  28958. salt \-G \(aqec2_tags:environment:*production*\(aq
  28959. .ft P
  28960. .fi
  28961. .UNINDENT
  28962. .UNINDENT
  28963. .sp
  28964. \fBIMPORTANT:\fP
  28965. .INDENT 0.0
  28966. .INDENT 3.5
  28967. See Is Targeting using Grain Data Secure? for
  28968. important security information.
  28969. .UNINDENT
  28970. .UNINDENT
  28971. .SS Targeting using Pillar
  28972. .sp
  28973. Pillar data can be used when targeting minions. This allows for ultimate
  28974. control and flexibility when targeting minions.
  28975. .sp
  28976. \fBNOTE:\fP
  28977. .INDENT 0.0
  28978. .INDENT 3.5
  28979. To start using Pillar targeting it is required to make a Pillar
  28980. data cache on Salt Master for each Minion via following commands:
  28981. \fBsalt \(aq*\(aq saltutil.refresh_pillar\fP or \fBsalt \(aq*\(aq saltutil.sync_all\fP\&.
  28982. Also Pillar data cache will be populated during the
  28983. highstate run. Once Pillar data changes, you
  28984. must refresh the cache by running above commands for this targeting
  28985. method to work correctly.
  28986. .UNINDENT
  28987. .UNINDENT
  28988. .sp
  28989. Example:
  28990. .INDENT 0.0
  28991. .INDENT 3.5
  28992. .sp
  28993. .nf
  28994. .ft C
  28995. salt \-I \(aqsomekey:specialvalue\(aq test.version
  28996. .ft P
  28997. .fi
  28998. .UNINDENT
  28999. .UNINDENT
  29000. .sp
  29001. Like with Grains, it is possible to use globbing
  29002. as well as match nested values in Pillar, by adding colons for each level that
  29003. is being traversed. The below example would match minions with a pillar named
  29004. \fBfoo\fP, which is a dict containing a key \fBbar\fP, with a value beginning with
  29005. \fBbaz\fP:
  29006. .INDENT 0.0
  29007. .INDENT 3.5
  29008. .sp
  29009. .nf
  29010. .ft C
  29011. salt \-I \(aqfoo:bar:baz*\(aq test.version
  29012. .ft P
  29013. .fi
  29014. .UNINDENT
  29015. .UNINDENT
  29016. .SS Subnet/IP Address Matching
  29017. .sp
  29018. Minions can easily be matched based on IP address, or by subnet (using \fI\%CIDR\fP
  29019. notation).
  29020. .INDENT 0.0
  29021. .INDENT 3.5
  29022. .sp
  29023. .nf
  29024. .ft C
  29025. salt \-S 192.168.40.20 test.version
  29026. salt \-S 2001:db8::/64 test.version
  29027. .ft P
  29028. .fi
  29029. .UNINDENT
  29030. .UNINDENT
  29031. .sp
  29032. Ipcidr matching can also be used in compound matches
  29033. .INDENT 0.0
  29034. .INDENT 3.5
  29035. .sp
  29036. .nf
  29037. .ft C
  29038. salt \-C \(aqS@10.0.0.0/24 and G@os:Debian\(aq test.version
  29039. .ft P
  29040. .fi
  29041. .UNINDENT
  29042. .UNINDENT
  29043. .sp
  29044. It is also possible to use in both pillar and state\-matching
  29045. .INDENT 0.0
  29046. .INDENT 3.5
  29047. .sp
  29048. .nf
  29049. .ft C
  29050. \(aq172.16.0.0/12\(aq:
  29051. \- match: ipcidr
  29052. \- internal
  29053. .ft P
  29054. .fi
  29055. .UNINDENT
  29056. .UNINDENT
  29057. .SS Compound matchers
  29058. .sp
  29059. Compound matchers allow very granular minion targeting using any of Salt\(aqs
  29060. matchers. The default matcher is a \fBglob\fP match, just as
  29061. with CLI and top file matching. To match using anything other than a
  29062. glob, prefix the match string with the appropriate letter from the table below,
  29063. followed by an \fB@\fP sign.
  29064. .TS
  29065. center;
  29066. |l|l|l|l|.
  29067. _
  29068. T{
  29069. Letter
  29070. T} T{
  29071. Match Type
  29072. T} T{
  29073. Example
  29074. T} T{
  29075. \fI\%Alt Delimiter?\fP
  29076. T}
  29077. _
  29078. T{
  29079. G
  29080. T} T{
  29081. Grains glob
  29082. T} T{
  29083. \fBG@os:Ubuntu\fP
  29084. T} T{
  29085. Yes
  29086. T}
  29087. _
  29088. T{
  29089. E
  29090. T} T{
  29091. PCRE Minion ID
  29092. T} T{
  29093. \fBE@web\ed+\e.(dev|qa|prod)\e.loc\fP
  29094. T} T{
  29095. No
  29096. T}
  29097. _
  29098. T{
  29099. P
  29100. T} T{
  29101. Grains PCRE
  29102. T} T{
  29103. \fBP@os:(RedHat|Fedora|CentOS)\fP
  29104. T} T{
  29105. Yes
  29106. T}
  29107. _
  29108. T{
  29109. L
  29110. T} T{
  29111. List of minions
  29112. T} T{
  29113. \fBL@minion1.example.com,minion3.domain.com or bl*.domain.com\fP
  29114. T} T{
  29115. No
  29116. T}
  29117. _
  29118. T{
  29119. I
  29120. T} T{
  29121. Pillar glob
  29122. T} T{
  29123. \fBI@pdata:foobar\fP
  29124. T} T{
  29125. Yes
  29126. T}
  29127. _
  29128. T{
  29129. J
  29130. T} T{
  29131. Pillar PCRE
  29132. T} T{
  29133. \fBJ@pdata:^(foo|bar)$\fP
  29134. T} T{
  29135. Yes
  29136. T}
  29137. _
  29138. T{
  29139. S
  29140. T} T{
  29141. Subnet/IP address
  29142. T} T{
  29143. \fBS@192.168.1.0/24\fP or \fBS@192.168.1.100\fP
  29144. T} T{
  29145. No
  29146. T}
  29147. _
  29148. T{
  29149. R
  29150. T} T{
  29151. Range cluster
  29152. T} T{
  29153. \fBR@%foo.bar\fP
  29154. T} T{
  29155. No
  29156. T}
  29157. _
  29158. T{
  29159. N
  29160. T} T{
  29161. Nodegroups
  29162. T} T{
  29163. \fBN@group1\fP
  29164. T} T{
  29165. No
  29166. T}
  29167. _
  29168. .TE
  29169. .sp
  29170. Matchers can be joined using boolean \fBand\fP, \fBor\fP, and \fBnot\fP operators.
  29171. .sp
  29172. For example, the following string matches all Debian minions with a hostname
  29173. that begins with \fBwebserv\fP, as well as any minions that have a hostname which
  29174. matches the \fBregular expression\fP \fBweb\-dc1\-srv.*\fP:
  29175. .INDENT 0.0
  29176. .INDENT 3.5
  29177. .sp
  29178. .nf
  29179. .ft C
  29180. salt \-C \(aqwebserv* and G@os:Debian or E@web\-dc1\-srv.*\(aq test.version
  29181. .ft P
  29182. .fi
  29183. .UNINDENT
  29184. .UNINDENT
  29185. .sp
  29186. That same example expressed in a top file looks like the following:
  29187. .INDENT 0.0
  29188. .INDENT 3.5
  29189. .sp
  29190. .nf
  29191. .ft C
  29192. base:
  29193. \(aqwebserv* and G@os:Debian or E@web\-dc1\-srv.*\(aq:
  29194. \- match: compound
  29195. \- webserver
  29196. .ft P
  29197. .fi
  29198. .UNINDENT
  29199. .UNINDENT
  29200. .sp
  29201. New in version 2015.8.0.
  29202. .sp
  29203. Excluding a minion based on its ID is also possible:
  29204. .INDENT 0.0
  29205. .INDENT 3.5
  29206. .sp
  29207. .nf
  29208. .ft C
  29209. salt \-C \(aqnot web\-dc1\-srv\(aq test.version
  29210. .ft P
  29211. .fi
  29212. .UNINDENT
  29213. .UNINDENT
  29214. .sp
  29215. Versions prior to 2015.8.0 a leading \fBnot\fP was not supported in compound
  29216. matches. Instead, something like the following was required:
  29217. .INDENT 0.0
  29218. .INDENT 3.5
  29219. .sp
  29220. .nf
  29221. .ft C
  29222. salt \-C \(aq* and not G@kernel:Darwin\(aq test.version
  29223. .ft P
  29224. .fi
  29225. .UNINDENT
  29226. .UNINDENT
  29227. .sp
  29228. Excluding a minion based on its ID was also possible:
  29229. .INDENT 0.0
  29230. .INDENT 3.5
  29231. .sp
  29232. .nf
  29233. .ft C
  29234. salt \-C \(aq* and not web\-dc1\-srv\(aq test.version
  29235. .ft P
  29236. .fi
  29237. .UNINDENT
  29238. .UNINDENT
  29239. .SS Precedence Matching
  29240. .sp
  29241. Matchers can be grouped together with parentheses to explicitly declare precedence amongst groups.
  29242. .INDENT 0.0
  29243. .INDENT 3.5
  29244. .sp
  29245. .nf
  29246. .ft C
  29247. salt \-C \(aq( ms\-1 or G@id:ms\-3 ) and G@id:ms\-3\(aq test.version
  29248. .ft P
  29249. .fi
  29250. .UNINDENT
  29251. .UNINDENT
  29252. .sp
  29253. \fBNOTE:\fP
  29254. .INDENT 0.0
  29255. .INDENT 3.5
  29256. Be certain to note that spaces are required between the parentheses and targets. Failing to obey this
  29257. rule may result in incorrect targeting!
  29258. .UNINDENT
  29259. .UNINDENT
  29260. .SS Alternate Delimiters
  29261. .sp
  29262. New in version 2015.8.0.
  29263. .sp
  29264. Matchers that target based on a key value pair use a colon (\fB:\fP) as
  29265. a delimiter. Matchers with a \fBYes\fP in the \fBAlt Delimiters\fP column
  29266. in the previous table support specifying an alternate delimiter character.
  29267. .sp
  29268. This is done by specifying an alternate delimiter character between the leading
  29269. matcher character and the \fB@\fP pattern separator character. This avoids
  29270. incorrect interpretation of the pattern in the case that \fB:\fP is part of the
  29271. grain or pillar data structure traversal.
  29272. .INDENT 0.0
  29273. .INDENT 3.5
  29274. .sp
  29275. .nf
  29276. .ft C
  29277. salt \-C \(aqJ|@foo|bar|^foo:bar$ or J!@gitrepo!https://github.com:example/project.git\(aq test.ping
  29278. .ft P
  29279. .fi
  29280. .UNINDENT
  29281. .UNINDENT
  29282. .SS Node groups
  29283. .sp
  29284. Nodegroups are declared using a compound target specification. The compound
  29285. target documentation can be found here\&.
  29286. .sp
  29287. The \fBnodegroups\fP master config file parameter is used to define
  29288. nodegroups. Here\(aqs an example nodegroup configuration within
  29289. \fB/etc/salt/master\fP:
  29290. .INDENT 0.0
  29291. .INDENT 3.5
  29292. .sp
  29293. .nf
  29294. .ft C
  29295. nodegroups:
  29296. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  29297. group2: \(aqG@os:Debian and foo.domain.com\(aq
  29298. group3: \(aqG@os:Debian and N@group1\(aq
  29299. group4:
  29300. \- \(aqG@foo:bar\(aq
  29301. \- \(aqor\(aq
  29302. \- \(aqG@foo:baz\(aq
  29303. .ft P
  29304. .fi
  29305. .UNINDENT
  29306. .UNINDENT
  29307. .sp
  29308. \fBNOTE:\fP
  29309. .INDENT 0.0
  29310. .INDENT 3.5
  29311. The \fBL\fP within group1 is matching a list of minions, while the \fBG\fP in
  29312. group2 is matching specific grains. See the compound matchers documentation for more details.
  29313. .sp
  29314. As of the 2017.7.0 release of Salt, group names can also be prepended with
  29315. a dash. This brings the usage in line with many other areas of Salt. For
  29316. example:
  29317. .INDENT 0.0
  29318. .INDENT 3.5
  29319. .sp
  29320. .nf
  29321. .ft C
  29322. nodegroups:
  29323. \- group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.com\(aq
  29324. .ft P
  29325. .fi
  29326. .UNINDENT
  29327. .UNINDENT
  29328. .UNINDENT
  29329. .UNINDENT
  29330. .sp
  29331. New in version 2015.8.0.
  29332. .sp
  29333. \fBNOTE:\fP
  29334. .INDENT 0.0
  29335. .INDENT 3.5
  29336. Nodegroups can reference other nodegroups as seen in \fBgroup3\fP\&. Ensure
  29337. that you do not have circular references. Circular references will be
  29338. detected and cause partial expansion with a logged error message.
  29339. .UNINDENT
  29340. .UNINDENT
  29341. .sp
  29342. New in version 2015.8.0.
  29343. .sp
  29344. Compound nodegroups can be either string values or lists of string values.
  29345. When the nodegroup is A string value will be tokenized by splitting on
  29346. whitespace. This may be a problem if whitespace is necessary as part of a
  29347. pattern. When a nodegroup is a list of strings then tokenization will
  29348. happen for each list element as a whole.
  29349. .sp
  29350. To match a nodegroup on the CLI, use the \fB\-N\fP command\-line option:
  29351. .INDENT 0.0
  29352. .INDENT 3.5
  29353. .sp
  29354. .nf
  29355. .ft C
  29356. salt \-N group1 test.version
  29357. .ft P
  29358. .fi
  29359. .UNINDENT
  29360. .UNINDENT
  29361. .sp
  29362. New in version 2019.2.0.
  29363. .sp
  29364. \fBNOTE:\fP
  29365. .INDENT 0.0
  29366. .INDENT 3.5
  29367. The \fBN@\fP classifier historically could not be used in compound matches
  29368. within the CLI or top file, it was only recognized in the
  29369. \fBnodegroups\fP master config file parameter. As of the 2019.2.0
  29370. release, this limitation no longer exists.
  29371. .UNINDENT
  29372. .UNINDENT
  29373. .sp
  29374. To match a nodegroup in your top file, make sure to put \fB\- match:
  29375. nodegroup\fP on the line directly following the nodegroup name.
  29376. .INDENT 0.0
  29377. .INDENT 3.5
  29378. .sp
  29379. .nf
  29380. .ft C
  29381. base:
  29382. group1:
  29383. \- match: nodegroup
  29384. \- webserver
  29385. .ft P
  29386. .fi
  29387. .UNINDENT
  29388. .UNINDENT
  29389. .sp
  29390. \fBNOTE:\fP
  29391. .INDENT 0.0
  29392. .INDENT 3.5
  29393. When adding or modifying nodegroups to a master configuration file, the
  29394. master must be restarted for those changes to be fully recognized.
  29395. .sp
  29396. A limited amount of functionality, such as targeting with \-N from the
  29397. command\-line may be available without a restart.
  29398. .UNINDENT
  29399. .UNINDENT
  29400. .SS Defining Nodegroups as Lists of Minion IDs
  29401. .sp
  29402. A simple list of minion IDs would traditionally be defined like this:
  29403. .INDENT 0.0
  29404. .INDENT 3.5
  29405. .sp
  29406. .nf
  29407. .ft C
  29408. nodegroups:
  29409. group1: L@host1,host2,host3
  29410. .ft P
  29411. .fi
  29412. .UNINDENT
  29413. .UNINDENT
  29414. .sp
  29415. They can now also be defined as a YAML list, like this:
  29416. .INDENT 0.0
  29417. .INDENT 3.5
  29418. .sp
  29419. .nf
  29420. .ft C
  29421. nodegroups:
  29422. group1:
  29423. \- host1
  29424. \- host2
  29425. \- host3
  29426. .ft P
  29427. .fi
  29428. .UNINDENT
  29429. .UNINDENT
  29430. .sp
  29431. New in version 2016.11.0.
  29432. .SS Batch Size
  29433. .sp
  29434. The \fB\-b\fP (or \fB\-\-batch\-size\fP) option allows commands to be executed on only
  29435. a specified number of minions at a time. Both percentages and finite numbers are
  29436. supported.
  29437. .INDENT 0.0
  29438. .INDENT 3.5
  29439. .sp
  29440. .nf
  29441. .ft C
  29442. salt \(aq*\(aq \-b 10 test.version
  29443. salt \-G \(aqos:RedHat\(aq \-\-batch\-size 25% apache.signal restart
  29444. .ft P
  29445. .fi
  29446. .UNINDENT
  29447. .UNINDENT
  29448. .sp
  29449. This will only run test.version on 10 of the targeted minions at a time and then
  29450. restart apache on 25% of the minions matching \fBos:RedHat\fP at a time and work
  29451. through them all until the task is complete. This makes jobs like rolling web
  29452. server restarts behind a load balancer or doing maintenance on BSD firewalls
  29453. using carp much easier with salt.
  29454. .sp
  29455. The batch system maintains a window of running minions, so, if there are a
  29456. total of 150 minions targeted and the batch size is 10, then the command is
  29457. sent to 10 minions, when one minion returns then the command is sent to one
  29458. additional minion, so that the job is constantly running on 10 minions.
  29459. .sp
  29460. New in version 2016.3.
  29461. .sp
  29462. The \fB\-\-batch\-wait\fP argument can be used to specify a number of seconds to
  29463. wait after a minion returns, before sending the command to a new minion.
  29464. .SS SECO Range
  29465. .sp
  29466. SECO range is a cluster\-based metadata store developed and maintained by Yahoo!
  29467. .sp
  29468. The Range project is hosted here:
  29469. .sp
  29470. \fI\%https://github.com/ytoolshed/range\fP
  29471. .sp
  29472. Learn more about range here:
  29473. .sp
  29474. \fI\%https://github.com/ytoolshed/range/wiki/\fP
  29475. .SS Prerequisites
  29476. .sp
  29477. To utilize range support in Salt, a range server is required. Setting up a
  29478. range server is outside the scope of this document. Apache modules are included
  29479. in the range distribution.
  29480. .sp
  29481. With a working range server, cluster files must be defined. These files are
  29482. written in YAML and define hosts contained inside a cluster. Full documentation
  29483. on writing YAML range files is here:
  29484. .sp
  29485. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  29486. .sp
  29487. Additionally, the Python seco range libraries must be installed on the salt
  29488. master. One can verify that they have been installed correctly via the
  29489. following command:
  29490. .INDENT 0.0
  29491. .INDENT 3.5
  29492. .sp
  29493. .nf
  29494. .ft C
  29495. python \-c \(aqimport seco.range\(aq
  29496. .ft P
  29497. .fi
  29498. .UNINDENT
  29499. .UNINDENT
  29500. .sp
  29501. If no errors are returned, range is installed successfully on the salt master.
  29502. .SS Preparing Salt
  29503. .sp
  29504. Range support must be enabled on the salt master by setting the hostname and
  29505. port of the range server inside the master configuration file:
  29506. .INDENT 0.0
  29507. .INDENT 3.5
  29508. .sp
  29509. .nf
  29510. .ft C
  29511. range_server: my.range.server.com:80
  29512. .ft P
  29513. .fi
  29514. .UNINDENT
  29515. .UNINDENT
  29516. .sp
  29517. Following this, the master must be restarted for the change to have an effect.
  29518. .SS Targeting with Range
  29519. .sp
  29520. Once a cluster has been defined, it can be targeted with a salt command by
  29521. using the \fB\-R\fP or \fB\-\-range\fP flags.
  29522. .sp
  29523. For example, given the following range YAML file being served from a range
  29524. server:
  29525. .INDENT 0.0
  29526. .INDENT 3.5
  29527. .sp
  29528. .nf
  29529. .ft C
  29530. $ cat /etc/range/test.yaml
  29531. CLUSTER: host1..100.test.com
  29532. APPS:
  29533. \- frontend
  29534. \- backend
  29535. \- mysql
  29536. .ft P
  29537. .fi
  29538. .UNINDENT
  29539. .UNINDENT
  29540. .sp
  29541. One might target host1 through host100 in the test.com domain with Salt as follows:
  29542. .INDENT 0.0
  29543. .INDENT 3.5
  29544. .sp
  29545. .nf
  29546. .ft C
  29547. salt \-\-range %test:CLUSTER test.version
  29548. .ft P
  29549. .fi
  29550. .UNINDENT
  29551. .UNINDENT
  29552. .sp
  29553. The following salt command would target three hosts: \fBfrontend\fP, \fBbackend\fP, and \fBmysql\fP:
  29554. .INDENT 0.0
  29555. .INDENT 3.5
  29556. .sp
  29557. .nf
  29558. .ft C
  29559. salt \-\-range %test:APPS test.version
  29560. .ft P
  29561. .fi
  29562. .UNINDENT
  29563. .UNINDENT
  29564. .SS Loadable Matchers
  29565. .sp
  29566. New in version 2019.2.0.
  29567. .sp
  29568. Internally targeting is implemented with chunks of code called Matchers. As of
  29569. the 2019.2.0 release, matchers can be loaded dynamically. Currently new matchers
  29570. cannot be created, but existing matchers can have their functionality altered or
  29571. extended. For more information on Matchers see
  29572. .SS Matchers
  29573. .sp
  29574. New in version 3000.
  29575. .sp
  29576. Matchers are modules that provide Salt\(aqs targeting abilities. As of the
  29577. 3000 release, matchers can be dynamically loaded. Currently new matchers
  29578. cannot be created because the required plumbing for the CLI does not exist yet.
  29579. Existing matchers may have their functionality altered or extended.
  29580. .sp
  29581. For details of targeting methods, see the Targeting topic.
  29582. .sp
  29583. A matcher module must have a function called \fBmatch()\fP\&. This function ends up
  29584. becoming a method on the Matcher class. All matcher functions require at least
  29585. two arguments, \fBself\fP (because the function will be turned into a method), and
  29586. \fBtgt\fP, which is the actual target string. The grains and pillar matchers also
  29587. take a \fBdelimiter\fP argument and should default to \fBDEFAULT_TARGET_DELIM\fP\&.
  29588. .sp
  29589. Like other Salt loadable modules, modules that override built\-in functionality
  29590. can be placed in \fBfile_roots\fP in a special directory and then copied to the
  29591. minion through the normal sync process. \fBsaltutil.sync_all\fP
  29592. will transfer all loadable modules, and the 3000 release introduces
  29593. \fBsaltutil.sync_matchers\fP\&. For matchers, the directory is
  29594. \fB/srv/salt/_matchers\fP (assuming your \fBfile_roots\fP is set to the default
  29595. \fB/srv/salt\fP).
  29596. .sp
  29597. As an example, let\(aqs modify the \fBlist\fP matcher to have the separator be a
  29598. \(aq\fB/\fP\(aq instead of the default \(aq\fB,\fP\(aq.
  29599. .INDENT 0.0
  29600. .INDENT 3.5
  29601. .sp
  29602. .nf
  29603. .ft C
  29604. from __future__ import absolute_import, print_function, unicode_literals
  29605. from salt.ext import six # pylint: disable=3rd\-party\-module\-not\-gated
  29606. def match(self, tgt):
  29607. \(aq\(aq\(aq
  29608. Determines if this host is on the list
  29609. \(aq\(aq\(aq
  29610. if isinstance(tgt, six.string_types):
  29611. # The stock matcher splits on \(ga,\(ga. Change to \(ga/\(ga below.
  29612. tgt = tgt.split(\(aq/\(aq)
  29613. return bool(self.opts[\(aqid\(aq] in tgt)
  29614. .ft P
  29615. .fi
  29616. .UNINDENT
  29617. .UNINDENT
  29618. .sp
  29619. Place this code in a file called \fBlist_matcher.py\fP in \fB_matchers\fP in your
  29620. \fBfile_roots\fP\&. Sync this down to your minions with
  29621. \fBsaltutil.sync_matchers\fP\&.
  29622. Then attempt to match with the following, replacing \fBminionX\fP with three of your minions.
  29623. .INDENT 0.0
  29624. .INDENT 3.5
  29625. .sp
  29626. .nf
  29627. .ft C
  29628. salt \-L \(aqminion1/minion2/minion3\(aq test.ping
  29629. .ft P
  29630. .fi
  29631. .UNINDENT
  29632. .UNINDENT
  29633. .sp
  29634. Three of your minions should respond.
  29635. .sp
  29636. The current supported matchers and associated filenames are
  29637. .TS
  29638. center;
  29639. |l|l|l|.
  29640. _
  29641. T{
  29642. Salt CLI Switch
  29643. T} T{
  29644. Match Type
  29645. T} T{
  29646. Filename
  29647. T}
  29648. _
  29649. T{
  29650. <none>
  29651. T} T{
  29652. Glob
  29653. T} T{
  29654. glob_match.py
  29655. T}
  29656. _
  29657. T{
  29658. \-C
  29659. T} T{
  29660. Compound
  29661. T} T{
  29662. compound_match.py
  29663. T}
  29664. _
  29665. T{
  29666. \-E
  29667. T} T{
  29668. Perl\-Compatible
  29669. Regular Expressions
  29670. T} T{
  29671. pcre_match.py
  29672. T}
  29673. _
  29674. T{
  29675. \-L
  29676. T} T{
  29677. List
  29678. T} T{
  29679. list_match.py
  29680. T}
  29681. _
  29682. T{
  29683. \-G
  29684. T} T{
  29685. Grain
  29686. T} T{
  29687. grain_match.py
  29688. T}
  29689. _
  29690. T{
  29691. \-P
  29692. T} T{
  29693. Grain Perl\-Compatible
  29694. Regular Expressions
  29695. T} T{
  29696. grain_pcre_match.py
  29697. T}
  29698. _
  29699. T{
  29700. \-N
  29701. T} T{
  29702. Nodegroup
  29703. T} T{
  29704. nodegroup_match.py
  29705. T}
  29706. _
  29707. T{
  29708. \-R
  29709. T} T{
  29710. Range
  29711. T} T{
  29712. range_match.py
  29713. T}
  29714. _
  29715. T{
  29716. \-I
  29717. T} T{
  29718. Pillar
  29719. T} T{
  29720. pillar_match.py
  29721. T}
  29722. _
  29723. T{
  29724. \-J
  29725. T} T{
  29726. Pillar Perl\-Compatible
  29727. Regular Expressions
  29728. T} T{
  29729. pillar_pcre.py
  29730. T}
  29731. _
  29732. T{
  29733. \-S
  29734. T} T{
  29735. IP\-Classless Internet
  29736. Domain Routing
  29737. T} T{
  29738. ipcidr_match.py
  29739. T}
  29740. _
  29741. .TE
  29742. .SS The Salt Mine
  29743. .sp
  29744. The Salt Mine is used to collect arbitrary data from Minions and store it on
  29745. the Master. This data is then made available to all Minions via the
  29746. \fBsalt.modules.mine\fP module.
  29747. .sp
  29748. Mine data is gathered on the Minion and sent back to the Master where only the
  29749. most recent data is maintained (if long term data is required use returners or
  29750. the external job cache).
  29751. .SS Mine vs Grains
  29752. .sp
  29753. Mine data is designed to be much more up\-to\-date than grain data. Grains are
  29754. refreshed on a very limited basis and are largely static data. Mines are
  29755. designed to replace slow peer publishing calls when Minions need data from
  29756. other Minions. Rather than having a Minion reach out to all the other Minions
  29757. for a piece of data, the Salt Mine, running on the Master, can collect it from
  29758. all the Minions every \fI\%Mine Interval\fP, resulting in
  29759. almost fresh data at any given time, with much less overhead.
  29760. .SS Mine Functions
  29761. .sp
  29762. To enable the Salt Mine the \fBmine_functions\fP option needs to be applied to a
  29763. Minion. This option can be applied via the Minion\(aqs configuration file, or the
  29764. Minion\(aqs Pillar. The \fBmine_functions\fP option dictates what functions are
  29765. being executed and allows for arguments to be passed in. The list of
  29766. functions are available in the \fBsalt.module\fP\&. If no arguments
  29767. are passed, an empty list must be added like in the \fBtest.ping\fP function in
  29768. the example below:
  29769. .INDENT 0.0
  29770. .INDENT 3.5
  29771. .sp
  29772. .nf
  29773. .ft C
  29774. mine_functions:
  29775. test.ping: []
  29776. network.ip_addrs:
  29777. interface: eth0
  29778. cidr: 10.0.0.0/8
  29779. .ft P
  29780. .fi
  29781. .UNINDENT
  29782. .UNINDENT
  29783. .sp
  29784. In the example above \fBsalt.modules.network.ip_addrs\fP has additional
  29785. filters to help narrow down the results. In the above example IP addresses
  29786. are only returned if they are on a eth0 interface and in the 10.0.0.0/8 IP
  29787. range.
  29788. .sp
  29789. Changed in version 3000.
  29790. .sp
  29791. The format to define mine_functions has been changed to allow the same format
  29792. as used for module.run. The old format (above) will still be supported.
  29793. .INDENT 0.0
  29794. .INDENT 3.5
  29795. .sp
  29796. .nf
  29797. .ft C
  29798. mine_functions:
  29799. test.ping: []
  29800. network.ip_addrs:
  29801. \- interface: eth0
  29802. \- cidr: 10.0.0.0/8
  29803. test.arg:
  29804. \- isn\(aqt
  29805. \- this
  29806. \- fun
  29807. \- this: that
  29808. \- salt: stack
  29809. .ft P
  29810. .fi
  29811. .UNINDENT
  29812. .UNINDENT
  29813. .SS Minion\-side Access Control
  29814. .sp
  29815. New in version 3000.
  29816. .sp
  29817. Mine functions can be targeted to only be available to specific minions. This
  29818. uses the same targeting parameters as targeting but with keywords \fBallow_tgt\fP
  29819. and \fBallow_tgt_type\fP\&. When a minion requests a function from the salt mine that
  29820. is not allowed to be requested by that minion (i.e. when looking up the combination
  29821. of \fBallow_tgt\fP and \fBallow_tgt_type\fP and the requesting minion is not in the list)
  29822. it will get no data, just as if the requested function is not present in the salt mine.
  29823. .INDENT 0.0
  29824. .INDENT 3.5
  29825. .sp
  29826. .nf
  29827. .ft C
  29828. mine_functions:
  29829. network.ip_addrs:
  29830. \- interface: eth0
  29831. \- cidr: 10.0.0.0/8
  29832. \- allow_tgt: \(aqG@role:master\(aq
  29833. \- allow_tgt_type: \(aqcompound\(aq
  29834. .ft P
  29835. .fi
  29836. .UNINDENT
  29837. .UNINDENT
  29838. .SS Mine Functions Aliases
  29839. .sp
  29840. Function aliases can be used to provide friendly names, usage intentions or to
  29841. allow multiple calls of the same function with different arguments. There is a
  29842. different syntax for passing positional and key\-value arguments. Mixing
  29843. positional and key\-value arguments is not supported.
  29844. .sp
  29845. New in version 2014.7.0.
  29846. .INDENT 0.0
  29847. .INDENT 3.5
  29848. .sp
  29849. .nf
  29850. .ft C
  29851. mine_functions:
  29852. network.ip_addrs: [eth0]
  29853. networkplus.internal_ip_addrs: []
  29854. internal_ip_addrs:
  29855. mine_function: network.ip_addrs
  29856. cidr: 192.168.0.0/16
  29857. ip_list:
  29858. \- mine_function: grains.get
  29859. \- ip_interfaces
  29860. .ft P
  29861. .fi
  29862. .UNINDENT
  29863. .UNINDENT
  29864. .sp
  29865. Changed in version 3000.
  29866. .sp
  29867. With the addition of the module.run\-like format for defining mine_functions, the
  29868. method of adding aliases remains similar. Just add a \fBmine_function\fP kwarg with
  29869. the name of the real function to call, making the key below \fBmine_functions\fP
  29870. the alias:
  29871. .INDENT 0.0
  29872. .INDENT 3.5
  29873. .sp
  29874. .nf
  29875. .ft C
  29876. mine_functions:
  29877. alias_name:
  29878. \- mine_function: network.ip_addrs
  29879. \- eth0
  29880. internal_ip_addrs:
  29881. \- mine_function: network.ip_addrs
  29882. \- cidr: 192.168.0.0/16
  29883. ip_list:
  29884. \- mine_function: grains.get
  29885. \- ip_interfaces
  29886. .ft P
  29887. .fi
  29888. .UNINDENT
  29889. .UNINDENT
  29890. .SS Mine Interval
  29891. .sp
  29892. The Salt Mine functions are executed when the Minion starts and at a given
  29893. interval by the scheduler. The default interval is every 60 minutes and can
  29894. be adjusted for the Minion via the \fBmine_interval\fP option in the minion
  29895. config:
  29896. .INDENT 0.0
  29897. .INDENT 3.5
  29898. .sp
  29899. .nf
  29900. .ft C
  29901. mine_interval: 60
  29902. .ft P
  29903. .fi
  29904. .UNINDENT
  29905. .UNINDENT
  29906. .SS Mine in Salt\-SSH
  29907. .sp
  29908. As of the 2015.5.0 release of salt, salt\-ssh supports \fBmine.get\fP\&.
  29909. .sp
  29910. Because the Minions cannot provide their own \fBmine_functions\fP configuration,
  29911. we retrieve the args for specified mine functions in one of three places,
  29912. searched in the following order:
  29913. .INDENT 0.0
  29914. .IP 1. 3
  29915. Roster data
  29916. .IP 2. 3
  29917. Pillar
  29918. .IP 3. 3
  29919. Master config
  29920. .UNINDENT
  29921. .sp
  29922. The \fBmine_functions\fP are formatted exactly the same as in normal salt, just
  29923. stored in a different location. Here is an example of a flat roster containing
  29924. \fBmine_functions\fP:
  29925. .INDENT 0.0
  29926. .INDENT 3.5
  29927. .sp
  29928. .nf
  29929. .ft C
  29930. test:
  29931. host: 104.237.131.248
  29932. user: root
  29933. mine_functions:
  29934. cmd.run: [\(aqecho "hello!"\(aq]
  29935. network.ip_addrs:
  29936. interface: eth0
  29937. .ft P
  29938. .fi
  29939. .UNINDENT
  29940. .UNINDENT
  29941. .sp
  29942. \fBNOTE:\fP
  29943. .INDENT 0.0
  29944. .INDENT 3.5
  29945. Because of the differences in the architecture of salt\-ssh, \fBmine.get\fP
  29946. calls are somewhat inefficient. Salt must make a new salt\-ssh call to each
  29947. of the Minions in question to retrieve the requested data, much like a
  29948. publish call. However, unlike publish, it must run the requested function
  29949. as a wrapper function, so we can retrieve the function args from the pillar
  29950. of the Minion in question. This results in a non\-trivial delay in
  29951. retrieving the requested data.
  29952. .UNINDENT
  29953. .UNINDENT
  29954. .SS Minions Targeting with Mine
  29955. .sp
  29956. The \fBmine.get\fP function supports various methods of Minions targeting to fetch Mine data from particular hosts, such as glob or regular
  29957. expression matching on Minion id (name), grains, pillars and compound
  29958. matches\&. See the \fBsalt.modules.mine\fP module
  29959. documentation for the reference.
  29960. .sp
  29961. \fBNOTE:\fP
  29962. .INDENT 0.0
  29963. .INDENT 3.5
  29964. Pillar data needs to be cached on Master for pillar targeting to work with
  29965. Mine. Read the note in relevant section\&.
  29966. .UNINDENT
  29967. .UNINDENT
  29968. .SS Example
  29969. .sp
  29970. One way to use data from Salt Mine is in a State. The values can be retrieved
  29971. via Jinja and used in the SLS file. The following example is a partial HAProxy
  29972. configuration file and pulls IP addresses from all Minions with the "web" grain
  29973. to add them to the pool of load balanced servers.
  29974. .sp
  29975. \fB/srv/pillar/top.sls\fP:
  29976. .INDENT 0.0
  29977. .INDENT 3.5
  29978. .sp
  29979. .nf
  29980. .ft C
  29981. base:
  29982. \(aqG@roles:web\(aq:
  29983. \- web
  29984. .ft P
  29985. .fi
  29986. .UNINDENT
  29987. .UNINDENT
  29988. .sp
  29989. \fB/srv/pillar/web.sls\fP:
  29990. .INDENT 0.0
  29991. .INDENT 3.5
  29992. .sp
  29993. .nf
  29994. .ft C
  29995. mine_functions:
  29996. network.ip_addrs: [eth0]
  29997. .ft P
  29998. .fi
  29999. .UNINDENT
  30000. .UNINDENT
  30001. .sp
  30002. Then trigger the minions to refresh their pillar data by running:
  30003. .INDENT 0.0
  30004. .INDENT 3.5
  30005. .sp
  30006. .nf
  30007. .ft C
  30008. salt \(aq*\(aq saltutil.refresh_pillar
  30009. .ft P
  30010. .fi
  30011. .UNINDENT
  30012. .UNINDENT
  30013. .sp
  30014. Verify that the results are showing up in the pillar on the minions by
  30015. executing the following and checking for \fBnetwork.ip_addrs\fP in the output:
  30016. .INDENT 0.0
  30017. .INDENT 3.5
  30018. .sp
  30019. .nf
  30020. .ft C
  30021. salt \(aq*\(aq pillar.items
  30022. .ft P
  30023. .fi
  30024. .UNINDENT
  30025. .UNINDENT
  30026. .sp
  30027. Which should show that the function is present on the minion, but not include
  30028. the output:
  30029. .INDENT 0.0
  30030. .INDENT 3.5
  30031. .sp
  30032. .nf
  30033. .ft C
  30034. minion1.example.com:
  30035. \-\-\-\-\-\-\-\-\-\-
  30036. mine_functions:
  30037. \-\-\-\-\-\-\-\-\-\-
  30038. network.ip_addrs:
  30039. \- eth0
  30040. .ft P
  30041. .fi
  30042. .UNINDENT
  30043. .UNINDENT
  30044. .sp
  30045. Mine data is typically only updated on the master every 60 minutes, this can
  30046. be modified by setting:
  30047. .sp
  30048. \fB/etc/salt/minion.d/mine.conf\fP:
  30049. .INDENT 0.0
  30050. .INDENT 3.5
  30051. .sp
  30052. .nf
  30053. .ft C
  30054. mine_interval: 5
  30055. .ft P
  30056. .fi
  30057. .UNINDENT
  30058. .UNINDENT
  30059. .sp
  30060. To force the mine data to update immediately run:
  30061. .INDENT 0.0
  30062. .INDENT 3.5
  30063. .sp
  30064. .nf
  30065. .ft C
  30066. salt \(aq*\(aq mine.update
  30067. .ft P
  30068. .fi
  30069. .UNINDENT
  30070. .UNINDENT
  30071. .sp
  30072. Setup the \fBsalt.states.file.managed\fP state in
  30073. \fB/srv/salt/haproxy.sls\fP:
  30074. .INDENT 0.0
  30075. .INDENT 3.5
  30076. .sp
  30077. .nf
  30078. .ft C
  30079. haproxy_config:
  30080. file.managed:
  30081. \- name: /etc/haproxy/config
  30082. \- source: salt://haproxy_config
  30083. \- template: jinja
  30084. .ft P
  30085. .fi
  30086. .UNINDENT
  30087. .UNINDENT
  30088. .sp
  30089. Create the Jinja template in \fB/srv/salt/haproxy_config\fP:
  30090. .INDENT 0.0
  30091. .INDENT 3.5
  30092. .sp
  30093. .nf
  30094. .ft C
  30095. <...file contents snipped...>
  30096. {% for server, addrs in salt[\(aqmine.get\(aq](\(aqroles:web\(aq, \(aqnetwork.ip_addrs\(aq, tgt_type=\(aqgrain\(aq) | dictsort() %}
  30097. server {{ server }} {{ addrs[0] }}:80 check
  30098. {% endfor %}
  30099. <...file contents snipped...>
  30100. .ft P
  30101. .fi
  30102. .UNINDENT
  30103. .UNINDENT
  30104. .sp
  30105. In the above example, \fBserver\fP will be expanded to the \fBminion_id\fP\&.
  30106. .sp
  30107. \fBNOTE:\fP
  30108. .INDENT 0.0
  30109. .INDENT 3.5
  30110. The expr_form argument will be renamed to \fBtgt_type\fP in the 2017.7.0
  30111. release of Salt.
  30112. .UNINDENT
  30113. .UNINDENT
  30114. .SS Runners
  30115. .sp
  30116. Salt runners are convenience applications executed with the salt\-run command.
  30117. .sp
  30118. Salt runners work similarly to Salt execution modules however they execute on the
  30119. Salt master itself instead of remote Salt minions.
  30120. .sp
  30121. A Salt runner can be a simple client call or a complex application.
  30122. .sp
  30123. \fBSEE ALSO:\fP
  30124. .INDENT 0.0
  30125. .INDENT 3.5
  30126. The full list of runners
  30127. .UNINDENT
  30128. .UNINDENT
  30129. .SS Writing Salt Runners
  30130. .sp
  30131. A Salt runner is written in a similar manner to a Salt execution module.
  30132. Both are Python modules which contain functions and each public function
  30133. is a runner which may be executed via the \fIsalt\-run\fP command.
  30134. .sp
  30135. For example, if a Python module named \fBtest.py\fP is created in the runners
  30136. directory and contains a function called \fBfoo\fP, the \fBtest\fP runner could be
  30137. invoked with the following command:
  30138. .INDENT 0.0
  30139. .INDENT 3.5
  30140. .sp
  30141. .nf
  30142. .ft C
  30143. # salt\-run test.foo
  30144. .ft P
  30145. .fi
  30146. .UNINDENT
  30147. .UNINDENT
  30148. .sp
  30149. Runners have several options for controlling output.
  30150. .sp
  30151. Any \fBprint\fP statement in a runner is automatically also
  30152. fired onto the master event bus where. For example:
  30153. .INDENT 0.0
  30154. .INDENT 3.5
  30155. .sp
  30156. .nf
  30157. .ft C
  30158. def a_runner(outputter=None, display_progress=False):
  30159. print(\(aqHello world\(aq)
  30160. ...
  30161. .ft P
  30162. .fi
  30163. .UNINDENT
  30164. .UNINDENT
  30165. .sp
  30166. The above would result in an event fired as follows:
  30167. .INDENT 0.0
  30168. .INDENT 3.5
  30169. .sp
  30170. .nf
  30171. .ft C
  30172. Event fired at Tue Jan 13 15:26:45 2015
  30173. *************************
  30174. Tag: salt/run/20150113152644070246/print
  30175. Data:
  30176. {\(aq_stamp\(aq: \(aq2015\-01\-13T15:26:45.078707\(aq,
  30177. \(aqdata\(aq: \(aqhello\(aq,
  30178. \(aqoutputter\(aq: \(aqpprint\(aq}
  30179. .ft P
  30180. .fi
  30181. .UNINDENT
  30182. .UNINDENT
  30183. .sp
  30184. A runner may also send a progress event, which is displayed to the user during
  30185. runner execution and is also passed across the event bus if the \fBdisplay_progress\fP
  30186. argument to a runner is set to True.
  30187. .sp
  30188. A custom runner may send its own progress event by using the
  30189. \fB__jid_event_.fire_event()\fP method as shown here:
  30190. .INDENT 0.0
  30191. .INDENT 3.5
  30192. .sp
  30193. .nf
  30194. .ft C
  30195. if display_progress:
  30196. __jid_event__.fire_event({\(aqmessage\(aq: \(aqA progress message\(aq}, \(aqprogress\(aq)
  30197. .ft P
  30198. .fi
  30199. .UNINDENT
  30200. .UNINDENT
  30201. .sp
  30202. The above would produce output on the console reading: \fBA progress message\fP
  30203. as well as an event on the event similar to:
  30204. .INDENT 0.0
  30205. .INDENT 3.5
  30206. .sp
  30207. .nf
  30208. .ft C
  30209. Event fired at Tue Jan 13 15:21:20 2015
  30210. *************************
  30211. Tag: salt/run/20150113152118341421/progress
  30212. Data:
  30213. {\(aq_stamp\(aq: \(aq2015\-01\-13T15:21:20.390053\(aq,
  30214. \(aqmessage\(aq: "A progress message"}
  30215. .ft P
  30216. .fi
  30217. .UNINDENT
  30218. .UNINDENT
  30219. .sp
  30220. A runner could use the same approach to send an event with a customized tag
  30221. onto the event bus by replacing the second argument (\fBprogress\fP) with
  30222. whatever tag is desired. However, this will not be shown on the command\-line
  30223. and will only be fired onto the event bus.
  30224. .SS Synchronous vs. Asynchronous
  30225. .sp
  30226. A runner may be fired asynchronously which will immediately return control. In
  30227. this case, no output will be display to the user if \fBsalt\-run\fP is being used
  30228. from the command\-line. If used programmatically, no results will be returned.
  30229. If results are desired, they must be gathered either by firing events on the
  30230. bus from the runner and then watching for them or by some other means.
  30231. .sp
  30232. \fBNOTE:\fP
  30233. .INDENT 0.0
  30234. .INDENT 3.5
  30235. When running a runner in asynchronous mode, the \fB\-\-progress\fP flag will
  30236. not deliver output to the salt\-run CLI. However, progress events will
  30237. still be fired on the bus.
  30238. .UNINDENT
  30239. .UNINDENT
  30240. .sp
  30241. In synchronous mode, which is the default, control will not be returned until
  30242. the runner has finished executing.
  30243. .sp
  30244. To add custom runners, put them in a directory and add it to
  30245. \fBrunner_dirs\fP in the master configuration file.
  30246. .SS Examples
  30247. .sp
  30248. Examples of runners can be found in the Salt distribution:
  30249. .sp
  30250. \fI\%https://github.com/saltstack/salt/blob/master/salt/runners\fP
  30251. .sp
  30252. A simple runner that returns a well\-formatted list of the minions that are
  30253. responding to Salt calls could look like this:
  30254. .INDENT 0.0
  30255. .INDENT 3.5
  30256. .sp
  30257. .nf
  30258. .ft C
  30259. # Import salt modules
  30260. import salt.client
  30261. def up():
  30262. \(aq\(aq\(aq
  30263. Print a list of all of the minions that are up
  30264. \(aq\(aq\(aq
  30265. client = salt.client.LocalClient(__opts__[\(aqconf_file\(aq])
  30266. minions = client.cmd(\(aq*\(aq, \(aqtest.version\(aq, timeout=1)
  30267. for minion in sorted(minions):
  30268. print minion
  30269. .ft P
  30270. .fi
  30271. .UNINDENT
  30272. .UNINDENT
  30273. .SS Salt Engines
  30274. .sp
  30275. New in version 2015.8.0.
  30276. .sp
  30277. Salt Engines are long\-running, external system processes that leverage Salt.
  30278. .INDENT 0.0
  30279. .IP \(bu 2
  30280. Engines have access to Salt configuration, execution modules, and runners (\fB__opts__\fP, \fB__salt__\fP, and \fB__runners__\fP).
  30281. .IP \(bu 2
  30282. Engines are executed in a separate process that is monitored by Salt. If a Salt engine stops, it is restarted automatically.
  30283. .IP \(bu 2
  30284. Engines can run on the Salt master and on Salt minions.
  30285. .UNINDENT
  30286. .sp
  30287. Salt engines enhance and replace the external processes functionality.
  30288. .SS Configuration
  30289. .sp
  30290. Salt engines are configured under an \fBengines\fP top\-level section in your Salt master or Salt minion configuration. Provide a list of engines and parameters under this section.
  30291. .INDENT 0.0
  30292. .INDENT 3.5
  30293. .sp
  30294. .nf
  30295. .ft C
  30296. engines:
  30297. \- logstash:
  30298. host: log.my_network.com
  30299. port: 5959
  30300. proto: tcp
  30301. .ft P
  30302. .fi
  30303. .UNINDENT
  30304. .UNINDENT
  30305. .sp
  30306. New in version 3000.
  30307. .sp
  30308. Multiple copies of a particular Salt engine can be configured by including the \fBengine_module\fP parameter in the engine configuration.
  30309. .INDENT 0.0
  30310. .INDENT 3.5
  30311. .sp
  30312. .nf
  30313. .ft C
  30314. engines:
  30315. \- production_logstash:
  30316. host: production_log.my_network.com
  30317. port: 5959
  30318. proto: tcp
  30319. engine_module: logstash
  30320. \- develop_logstash:
  30321. host: develop_log.my_network.com
  30322. port: 5959
  30323. proto: tcp
  30324. engine_module: logstash
  30325. .ft P
  30326. .fi
  30327. .UNINDENT
  30328. .UNINDENT
  30329. .sp
  30330. Salt engines must be in the Salt path, or you can add the \fBengines_dirs\fP option in your Salt master configuration with a list of directories under which Salt attempts to find Salt engines. This option should be formatted as a list of directories to search, such as:
  30331. .INDENT 0.0
  30332. .INDENT 3.5
  30333. .sp
  30334. .nf
  30335. .ft C
  30336. engines_dirs:
  30337. \- /home/bob/engines
  30338. .ft P
  30339. .fi
  30340. .UNINDENT
  30341. .UNINDENT
  30342. .SS Writing an Engine
  30343. .sp
  30344. An example Salt engine, \fI\%https://github.com/saltstack/salt/blob/master/salt/engines/test.py\fP, is available in the Salt source. To develop an engine, the only requirement is that your module implement the \fBstart()\fP function.
  30345. .SS Understanding YAML
  30346. .sp
  30347. The default renderer for SLS files is the YAML renderer. YAML is a
  30348. markup language with many powerful features. However, Salt uses
  30349. a small subset of YAML that maps over very commonly used data structures,
  30350. like lists and dictionaries. It is the job of the YAML renderer to take
  30351. the YAML data structure and compile it into a Python data structure for
  30352. use by Salt.
  30353. .sp
  30354. Though YAML syntax may seem daunting and terse at first, there are only
  30355. three very simple rules to remember when writing YAML for SLS files.
  30356. .SS Rule One: Indentation
  30357. .sp
  30358. YAML uses a fixed indentation scheme to represent relationships between
  30359. data layers. Salt requires that the indentation for each level consists
  30360. of exactly two spaces. Do not use tabs.
  30361. .SS Rule Two: Colons
  30362. .sp
  30363. Python dictionaries are, of course, simply key\-value pairs. Users from other
  30364. languages may recognize this data type as hashes or associative arrays.
  30365. .sp
  30366. Dictionary keys are represented in YAML as strings terminated by a trailing
  30367. colon. Values are represented by either a string following the colon,
  30368. separated by a space:
  30369. .INDENT 0.0
  30370. .INDENT 3.5
  30371. .sp
  30372. .nf
  30373. .ft C
  30374. my_key: my_value
  30375. .ft P
  30376. .fi
  30377. .UNINDENT
  30378. .UNINDENT
  30379. .sp
  30380. In Python, the above maps to:
  30381. .INDENT 0.0
  30382. .INDENT 3.5
  30383. .sp
  30384. .nf
  30385. .ft C
  30386. {\(aqmy_key\(aq: \(aqmy_value\(aq}
  30387. .ft P
  30388. .fi
  30389. .UNINDENT
  30390. .UNINDENT
  30391. .sp
  30392. Alternatively, a value can be associated with a key through indentation.
  30393. .INDENT 0.0
  30394. .INDENT 3.5
  30395. .sp
  30396. .nf
  30397. .ft C
  30398. my_key:
  30399. my_value
  30400. .ft P
  30401. .fi
  30402. .UNINDENT
  30403. .UNINDENT
  30404. .sp
  30405. \fBNOTE:\fP
  30406. .INDENT 0.0
  30407. .INDENT 3.5
  30408. The above syntax is valid YAML but is uncommon in SLS files because most often,
  30409. the value for a key is not singular but instead is a \fIlist\fP of values.
  30410. .UNINDENT
  30411. .UNINDENT
  30412. .sp
  30413. In Python, the above maps to:
  30414. .INDENT 0.0
  30415. .INDENT 3.5
  30416. .sp
  30417. .nf
  30418. .ft C
  30419. {\(aqmy_key\(aq: \(aqmy_value\(aq}
  30420. .ft P
  30421. .fi
  30422. .UNINDENT
  30423. .UNINDENT
  30424. .sp
  30425. Dictionaries can be nested:
  30426. .INDENT 0.0
  30427. .INDENT 3.5
  30428. .sp
  30429. .nf
  30430. .ft C
  30431. first_level_dict_key:
  30432. second_level_dict_key: value_in_second_level_dict
  30433. .ft P
  30434. .fi
  30435. .UNINDENT
  30436. .UNINDENT
  30437. .sp
  30438. And in Python:
  30439. .INDENT 0.0
  30440. .INDENT 3.5
  30441. .sp
  30442. .nf
  30443. .ft C
  30444. {
  30445. \(aqfirst_level_dict_key\(aq: {
  30446. \(aqsecond_level_dict_key\(aq: \(aqvalue_in_second_level_dict\(aq
  30447. }
  30448. }
  30449. .ft P
  30450. .fi
  30451. .UNINDENT
  30452. .UNINDENT
  30453. .SS Rule Three: Dashes
  30454. .sp
  30455. To represent lists of items, a single dash followed by a space is used. Multiple
  30456. items are a part of the same list as a function of their having the same level of indentation.
  30457. .INDENT 0.0
  30458. .INDENT 3.5
  30459. .sp
  30460. .nf
  30461. .ft C
  30462. \- list_value_one
  30463. \- list_value_two
  30464. \- list_value_three
  30465. .ft P
  30466. .fi
  30467. .UNINDENT
  30468. .UNINDENT
  30469. .sp
  30470. Lists can be the value of a key\-value pair. This is quite common in Salt:
  30471. .INDENT 0.0
  30472. .INDENT 3.5
  30473. .sp
  30474. .nf
  30475. .ft C
  30476. my_dictionary:
  30477. \- list_value_one
  30478. \- list_value_two
  30479. \- list_value_three
  30480. .ft P
  30481. .fi
  30482. .UNINDENT
  30483. .UNINDENT
  30484. .sp
  30485. In Python, the above maps to:
  30486. .INDENT 0.0
  30487. .INDENT 3.5
  30488. .sp
  30489. .nf
  30490. .ft C
  30491. {\(aqmy_dictionary\(aq: [\(aqlist_value_one\(aq, \(aqlist_value_two\(aq, \(aqlist_value_three\(aq]}
  30492. .ft P
  30493. .fi
  30494. .UNINDENT
  30495. .UNINDENT
  30496. .SS Learning More
  30497. .sp
  30498. One easy way to learn more about how YAML gets rendered into Python data structures is
  30499. to use an online YAML parser to see the Python output.
  30500. .sp
  30501. One excellent choice for experimenting with YAML parsing is: \fI\%http://yaml\-online\-parser.appspot.com/\fP
  30502. .SS Templating
  30503. .sp
  30504. Jinja statements and expressions are allowed by default in SLS files. See
  30505. Understanding Jinja\&.
  30506. .SS Understanding Jinja
  30507. .sp
  30508. \fI\%Jinja\fP is the default templating language in SLS files.
  30509. .SS Jinja in States
  30510. .sp
  30511. Jinja is evaluated before YAML, which means it is evaluated before the States
  30512. are run.
  30513. .sp
  30514. The most basic usage of Jinja in state files is using control structures to
  30515. wrap conditional or redundant state elements:
  30516. .INDENT 0.0
  30517. .INDENT 3.5
  30518. .sp
  30519. .nf
  30520. .ft C
  30521. {% if grains[\(aqos\(aq] != \(aqFreeBSD\(aq %}
  30522. tcsh:
  30523. pkg:
  30524. \- installed
  30525. {% endif %}
  30526. motd:
  30527. file.managed:
  30528. {% if grains[\(aqos\(aq] == \(aqFreeBSD\(aq %}
  30529. \- name: /etc/motd
  30530. {% elif grains[\(aqos\(aq] == \(aqDebian\(aq %}
  30531. \- name: /etc/motd.tail
  30532. {% endif %}
  30533. \- source: salt://motd
  30534. .ft P
  30535. .fi
  30536. .UNINDENT
  30537. .UNINDENT
  30538. .sp
  30539. In this example, the first \fBif\fP block will only be evaluated on minions that
  30540. aren\(aqt running FreeBSD, and the second block changes the file name based on the
  30541. \fIos\fP grain.
  30542. .sp
  30543. Writing \fBif\-else\fP blocks can lead to very redundant state files however. In
  30544. this case, using pillars, or using a previously
  30545. defined variable might be easier:
  30546. .INDENT 0.0
  30547. .INDENT 3.5
  30548. .sp
  30549. .nf
  30550. .ft C
  30551. {% set motd = [\(aq/etc/motd\(aq] %}
  30552. {% if grains[\(aqos\(aq] == \(aqDebian\(aq %}
  30553. {% set motd = [\(aq/etc/motd.tail\(aq, \(aq/var/run/motd\(aq] %}
  30554. {% endif %}
  30555. {% for motdfile in motd %}
  30556. {{ motdfile }}:
  30557. file.managed:
  30558. \- source: salt://motd
  30559. {% endfor %}
  30560. .ft P
  30561. .fi
  30562. .UNINDENT
  30563. .UNINDENT
  30564. .sp
  30565. Using a variable set by the template, the \fI\%for loop\fP will iterate over the
  30566. list of MOTD files to update, adding a state block for each file.
  30567. .sp
  30568. The filter_by function can also be used to set variables based on grains:
  30569. .INDENT 0.0
  30570. .INDENT 3.5
  30571. .sp
  30572. .nf
  30573. .ft C
  30574. {% set auditd = salt[\(aqgrains.filter_by\(aq]({
  30575. \(aqRedHat\(aq: { \(aqpackage\(aq: \(aqaudit\(aq },
  30576. \(aqDebian\(aq: { \(aqpackage\(aq: \(aqauditd\(aq },
  30577. }) %}
  30578. .ft P
  30579. .fi
  30580. .UNINDENT
  30581. .UNINDENT
  30582. .SS Include and Import
  30583. .sp
  30584. Includes and \fI\%imports\fP can be used to share common, reusable state configuration
  30585. between state files and between files.
  30586. .INDENT 0.0
  30587. .INDENT 3.5
  30588. .sp
  30589. .nf
  30590. .ft C
  30591. {% from \(aqlib.sls\(aq import test %}
  30592. .ft P
  30593. .fi
  30594. .UNINDENT
  30595. .UNINDENT
  30596. .sp
  30597. This would import the \fBtest\fP template variable or macro, not the \fBtest\fP
  30598. state element, from the file \fBlib.sls\fP\&. In the case that the included file
  30599. performs checks against grains, or something else that requires context, passing
  30600. the context into the included file is required:
  30601. .INDENT 0.0
  30602. .INDENT 3.5
  30603. .sp
  30604. .nf
  30605. .ft C
  30606. {% from \(aqlib.sls\(aq import test with context %}
  30607. .ft P
  30608. .fi
  30609. .UNINDENT
  30610. .UNINDENT
  30611. .sp
  30612. Includes must use full paths, like so:
  30613. .sp
  30614. spam/eggs.jinja
  30615. .INDENT 0.0
  30616. .INDENT 3.5
  30617. .sp
  30618. .nf
  30619. .ft C
  30620. {% include \(aqspam/foobar.jinja\(aq %}
  30621. .ft P
  30622. .fi
  30623. .UNINDENT
  30624. .UNINDENT
  30625. .SS Including Context During Include/Import
  30626. .sp
  30627. By adding \fBwith context\fP to the include/import directive, the
  30628. current context can be passed to an included/imported template.
  30629. .INDENT 0.0
  30630. .INDENT 3.5
  30631. .sp
  30632. .nf
  30633. .ft C
  30634. {% import \(aqopenssl/vars.sls\(aq as ssl with context %}
  30635. .ft P
  30636. .fi
  30637. .UNINDENT
  30638. .UNINDENT
  30639. .SS Macros
  30640. .sp
  30641. \fI\%Macros\fP are helpful for eliminating redundant code. Macros are most useful as
  30642. mini\-templates to repeat blocks of strings with a few parameterized variables.
  30643. Be aware that stripping whitespace from the template block, as well as
  30644. contained blocks, may be necessary to emulate a variable return from the macro.
  30645. .INDENT 0.0
  30646. .INDENT 3.5
  30647. .sp
  30648. .nf
  30649. .ft C
  30650. # init.sls
  30651. {% from \(aqlib.sls\(aq import pythonpkg with context %}
  30652. python\-virtualenv:
  30653. pkg.installed:
  30654. \- name: {{ pythonpkg(\(aqvirtualenv\(aq) }}
  30655. python\-fabric:
  30656. pkg.installed:
  30657. \- name: {{ pythonpkg(\(aqfabric\(aq) }}
  30658. .ft P
  30659. .fi
  30660. .UNINDENT
  30661. .UNINDENT
  30662. .INDENT 0.0
  30663. .INDENT 3.5
  30664. .sp
  30665. .nf
  30666. .ft C
  30667. # lib.sls
  30668. {% macro pythonpkg(pkg) \-%}
  30669. {%\- if grains[\(aqos\(aq] == \(aqFreeBSD\(aq \-%}
  30670. py27\-{{ pkg }}
  30671. {%\- elif grains[\(aqos\(aq] == \(aqDebian\(aq \-%}
  30672. python\-{{ pkg }}
  30673. {%\- endif \-%}
  30674. {%\- endmacro %}
  30675. .ft P
  30676. .fi
  30677. .UNINDENT
  30678. .UNINDENT
  30679. .sp
  30680. This would define a \fI\%macro\fP that would return a string of the full package name,
  30681. depending on the packaging system\(aqs naming convention. The whitespace of the
  30682. macro was eliminated, so that the macro would return a string without line
  30683. breaks, using \fI\%whitespace control\fP\&.
  30684. .SS Template Inheritance
  30685. .sp
  30686. \fI\%Template inheritance\fP works fine from state files and files. The search path
  30687. starts at the root of the state tree or pillar.
  30688. .SS Errors
  30689. .sp
  30690. Saltstack allows raising custom errors using the \fBraise\fP jinja function.
  30691. .INDENT 0.0
  30692. .INDENT 3.5
  30693. .sp
  30694. .nf
  30695. .ft C
  30696. {{ raise(\(aqCustom Error\(aq) }}
  30697. .ft P
  30698. .fi
  30699. .UNINDENT
  30700. .UNINDENT
  30701. .sp
  30702. When rendering the template containing the above statement, a \fBTemplateError\fP
  30703. exception is raised, causing the rendering to fail with the following message:
  30704. .INDENT 0.0
  30705. .INDENT 3.5
  30706. .sp
  30707. .nf
  30708. .ft C
  30709. TemplateError: Custom Error
  30710. .ft P
  30711. .fi
  30712. .UNINDENT
  30713. .UNINDENT
  30714. .SS Filters
  30715. .sp
  30716. Saltstack extends \fI\%builtin filters\fP with these custom filters:
  30717. .SS \fBstrftime\fP
  30718. .sp
  30719. Converts any time related object into a time based string. It requires valid
  30720. strftime directives. An exhaustive list can be found \fI\%here\fP in the Python documentation.
  30721. .INDENT 0.0
  30722. .INDENT 3.5
  30723. .sp
  30724. .nf
  30725. .ft C
  30726. {% set curtime = None | strftime() %}
  30727. .ft P
  30728. .fi
  30729. .UNINDENT
  30730. .UNINDENT
  30731. .sp
  30732. Fuzzy dates require the \fI\%timelib\fP Python module is installed.
  30733. .INDENT 0.0
  30734. .INDENT 3.5
  30735. .sp
  30736. .nf
  30737. .ft C
  30738. {{ "2002/12/25"|strftime("%y") }}
  30739. {{ "1040814000"|strftime("%Y\-%m\-%d") }}
  30740. {{ datetime|strftime("%u") }}
  30741. {{ "tomorrow"|strftime }}
  30742. .ft P
  30743. .fi
  30744. .UNINDENT
  30745. .UNINDENT
  30746. .SS \fBsequence\fP
  30747. .sp
  30748. Ensure that parsed data is a sequence.
  30749. .SS \fByaml_encode\fP
  30750. .sp
  30751. Serializes a single object into a YAML scalar with any necessary
  30752. handling for escaping special characters. This will work for any
  30753. scalar YAML data type: ints, floats, timestamps, booleans, strings,
  30754. unicode. It will \fInot\fP work for multi\-objects such as sequences or
  30755. maps.
  30756. .INDENT 0.0
  30757. .INDENT 3.5
  30758. .sp
  30759. .nf
  30760. .ft C
  30761. {%\- set bar = 7 %}
  30762. {%\- set baz = none %}
  30763. {%\- set zip = true %}
  30764. {%\- set zap = \(aqThe word of the day is "salty"\(aq %}
  30765. {%\- load_yaml as foo %}
  30766. bar: {{ bar|yaml_encode }}
  30767. baz: {{ baz|yaml_encode }}
  30768. zip: {{ zip|yaml_encode }}
  30769. zap: {{ zap|yaml_encode }}
  30770. {%\- endload %}
  30771. .ft P
  30772. .fi
  30773. .UNINDENT
  30774. .UNINDENT
  30775. .sp
  30776. In the above case \fB{{ bar }}\fP and \fB{{ foo.bar }}\fP should be
  30777. identical and \fB{{ baz }}\fP and \fB{{ foo.baz }}\fP should be
  30778. identical.
  30779. .SS \fByaml_dquote\fP
  30780. .sp
  30781. Serializes a string into a properly\-escaped YAML double\-quoted
  30782. string. This is useful when the contents of a string are unknown
  30783. and may contain quotes or unicode that needs to be preserved. The
  30784. resulting string will be emitted with opening and closing double
  30785. quotes.
  30786. .INDENT 0.0
  30787. .INDENT 3.5
  30788. .sp
  30789. .nf
  30790. .ft C
  30791. {%\- set bar = \(aq"The quick brown fox . . ."\(aq %}
  30792. {%\- set baz = \(aqThe word of the day is "salty".\(aq %}
  30793. {%\- load_yaml as foo %}
  30794. bar: {{ bar|yaml_dquote }}
  30795. baz: {{ baz|yaml_dquote }}
  30796. {%\- endload %}
  30797. .ft P
  30798. .fi
  30799. .UNINDENT
  30800. .UNINDENT
  30801. .sp
  30802. In the above case \fB{{ bar }}\fP and \fB{{ foo.bar }}\fP should be
  30803. identical and \fB{{ baz }}\fP and \fB{{ foo.baz }}\fP should be
  30804. identical. If variable contents are not guaranteed to be a string
  30805. then it is better to use \fByaml_encode\fP which handles all YAML
  30806. scalar types.
  30807. .SS \fByaml_squote\fP
  30808. .sp
  30809. Similar to the \fByaml_dquote\fP filter but with single quotes. Note
  30810. that YAML only allows special escapes inside double quotes so
  30811. \fByaml_squote\fP is not nearly as useful (viz. you likely want to
  30812. use \fByaml_encode\fP or \fByaml_dquote\fP).
  30813. .SS \fBto_bool\fP
  30814. .sp
  30815. New in version 2017.7.0.
  30816. .sp
  30817. Returns the logical value of an element.
  30818. .sp
  30819. Example:
  30820. .INDENT 0.0
  30821. .INDENT 3.5
  30822. .sp
  30823. .nf
  30824. .ft C
  30825. {{ \(aqyes\(aq | to_bool }}
  30826. {{ \(aqtrue\(aq | to_bool }}
  30827. {{ 1 | to_bool }}
  30828. {{ \(aqno\(aq | to_bool }}
  30829. .ft P
  30830. .fi
  30831. .UNINDENT
  30832. .UNINDENT
  30833. .sp
  30834. Will be rendered as:
  30835. .INDENT 0.0
  30836. .INDENT 3.5
  30837. .sp
  30838. .nf
  30839. .ft C
  30840. True
  30841. True
  30842. True
  30843. False
  30844. .ft P
  30845. .fi
  30846. .UNINDENT
  30847. .UNINDENT
  30848. .SS \fBexactly_n_true\fP
  30849. .sp
  30850. New in version 2017.7.0.
  30851. .sp
  30852. Tests that exactly N items in an iterable are "truthy" (neither None, False, nor 0).
  30853. .sp
  30854. Example:
  30855. .INDENT 0.0
  30856. .INDENT 3.5
  30857. .sp
  30858. .nf
  30859. .ft C
  30860. {{ [\(aqyes\(aq, 0, False, \(aqTrue\(aq] | exactly_n_true(2) }}
  30861. .ft P
  30862. .fi
  30863. .UNINDENT
  30864. .UNINDENT
  30865. .sp
  30866. Returns:
  30867. .INDENT 0.0
  30868. .INDENT 3.5
  30869. .sp
  30870. .nf
  30871. .ft C
  30872. True
  30873. .ft P
  30874. .fi
  30875. .UNINDENT
  30876. .UNINDENT
  30877. .SS \fBexactly_one_true\fP
  30878. .sp
  30879. New in version 2017.7.0.
  30880. .sp
  30881. Tests that exactly one item in an iterable is "truthy" (neither None, False, nor 0).
  30882. .sp
  30883. Example:
  30884. .INDENT 0.0
  30885. .INDENT 3.5
  30886. .sp
  30887. .nf
  30888. .ft C
  30889. {{ [\(aqyes\(aq, False, 0, None] | exactly_one_true }}
  30890. .ft P
  30891. .fi
  30892. .UNINDENT
  30893. .UNINDENT
  30894. .sp
  30895. Returns:
  30896. .INDENT 0.0
  30897. .INDENT 3.5
  30898. .sp
  30899. .nf
  30900. .ft C
  30901. True
  30902. .ft P
  30903. .fi
  30904. .UNINDENT
  30905. .UNINDENT
  30906. .SS \fBquote\fP
  30907. .sp
  30908. New in version 2017.7.0.
  30909. .sp
  30910. This text will be wrapped in quotes.
  30911. .SS \fBregex_search\fP
  30912. .sp
  30913. New in version 2017.7.0.
  30914. .sp
  30915. Scan through string looking for a location where this regular expression
  30916. produces a match. Returns \fBNone\fP in case there were no matches found
  30917. .sp
  30918. Example:
  30919. .INDENT 0.0
  30920. .INDENT 3.5
  30921. .sp
  30922. .nf
  30923. .ft C
  30924. {{ \(aqabcdefabcdef\(aq | regex_search(\(aqBC(.*)\(aq, ignorecase=True) }}
  30925. .ft P
  30926. .fi
  30927. .UNINDENT
  30928. .UNINDENT
  30929. .sp
  30930. Returns:
  30931. .INDENT 0.0
  30932. .INDENT 3.5
  30933. .sp
  30934. .nf
  30935. .ft C
  30936. (\(aqdefabcdef\(aq,)
  30937. .ft P
  30938. .fi
  30939. .UNINDENT
  30940. .UNINDENT
  30941. .SS \fBregex_match\fP
  30942. .sp
  30943. New in version 2017.7.0.
  30944. .sp
  30945. If zero or more characters at the beginning of string match this regular
  30946. expression, otherwise returns \fBNone\fP\&.
  30947. .sp
  30948. Example:
  30949. .INDENT 0.0
  30950. .INDENT 3.5
  30951. .sp
  30952. .nf
  30953. .ft C
  30954. {{ \(aqabcdefabcdef\(aq | regex_match(\(aqBC(.*)\(aq, ignorecase=True) }}
  30955. .ft P
  30956. .fi
  30957. .UNINDENT
  30958. .UNINDENT
  30959. .sp
  30960. Returns:
  30961. .INDENT 0.0
  30962. .INDENT 3.5
  30963. .sp
  30964. .nf
  30965. .ft C
  30966. None
  30967. .ft P
  30968. .fi
  30969. .UNINDENT
  30970. .UNINDENT
  30971. .SS \fBregex_replace\fP
  30972. .sp
  30973. New in version 2017.7.0.
  30974. .sp
  30975. Searches for a pattern and replaces with a sequence of characters.
  30976. .sp
  30977. Example:
  30978. .INDENT 0.0
  30979. .INDENT 3.5
  30980. .sp
  30981. .nf
  30982. .ft C
  30983. {% set my_text = \(aqyes, this is a TEST\(aq %}
  30984. {{ my_text | regex_replace(\(aq ([a\-z])\(aq, \(aq__\e\e1\(aq, ignorecase=True) }}
  30985. .ft P
  30986. .fi
  30987. .UNINDENT
  30988. .UNINDENT
  30989. .sp
  30990. Returns:
  30991. .INDENT 0.0
  30992. .INDENT 3.5
  30993. .sp
  30994. .nf
  30995. .ft C
  30996. yes,__this__is__a__TEST
  30997. .ft P
  30998. .fi
  30999. .UNINDENT
  31000. .UNINDENT
  31001. .SS \fBuuid\fP
  31002. .sp
  31003. New in version 2017.7.0.
  31004. .sp
  31005. Return a UUID.
  31006. .sp
  31007. Example:
  31008. .INDENT 0.0
  31009. .INDENT 3.5
  31010. .sp
  31011. .nf
  31012. .ft C
  31013. {{ \(aqrandom\(aq | uuid }}
  31014. .ft P
  31015. .fi
  31016. .UNINDENT
  31017. .UNINDENT
  31018. .sp
  31019. Returns:
  31020. .INDENT 0.0
  31021. .INDENT 3.5
  31022. .sp
  31023. .nf
  31024. .ft C
  31025. 3652b285\-26ad\-588e\-a5dc\-c2ee65edc804
  31026. .ft P
  31027. .fi
  31028. .UNINDENT
  31029. .UNINDENT
  31030. .SS \fBis_list\fP
  31031. .sp
  31032. New in version 2017.7.0.
  31033. .sp
  31034. Return if an object is list.
  31035. .sp
  31036. Example:
  31037. .INDENT 0.0
  31038. .INDENT 3.5
  31039. .sp
  31040. .nf
  31041. .ft C
  31042. {{ [1, 2, 3] | is_list }}
  31043. .ft P
  31044. .fi
  31045. .UNINDENT
  31046. .UNINDENT
  31047. .sp
  31048. Returns:
  31049. .INDENT 0.0
  31050. .INDENT 3.5
  31051. .sp
  31052. .nf
  31053. .ft C
  31054. True
  31055. .ft P
  31056. .fi
  31057. .UNINDENT
  31058. .UNINDENT
  31059. .SS \fBis_iter\fP
  31060. .sp
  31061. New in version 2017.7.0.
  31062. .sp
  31063. Return if an object is iterable.
  31064. .sp
  31065. Example:
  31066. .INDENT 0.0
  31067. .INDENT 3.5
  31068. .sp
  31069. .nf
  31070. .ft C
  31071. {{ [1, 2, 3] | is_iter }}
  31072. .ft P
  31073. .fi
  31074. .UNINDENT
  31075. .UNINDENT
  31076. .sp
  31077. Returns:
  31078. .INDENT 0.0
  31079. .INDENT 3.5
  31080. .sp
  31081. .nf
  31082. .ft C
  31083. True
  31084. .ft P
  31085. .fi
  31086. .UNINDENT
  31087. .UNINDENT
  31088. .SS \fBmin\fP
  31089. .sp
  31090. New in version 2017.7.0.
  31091. .sp
  31092. Return the minimum value from a list.
  31093. .sp
  31094. Example:
  31095. .INDENT 0.0
  31096. .INDENT 3.5
  31097. .sp
  31098. .nf
  31099. .ft C
  31100. {{ [1, 2, 3] | min }}
  31101. .ft P
  31102. .fi
  31103. .UNINDENT
  31104. .UNINDENT
  31105. .sp
  31106. Returns:
  31107. .INDENT 0.0
  31108. .INDENT 3.5
  31109. .sp
  31110. .nf
  31111. .ft C
  31112. 1
  31113. .ft P
  31114. .fi
  31115. .UNINDENT
  31116. .UNINDENT
  31117. .SS \fBmax\fP
  31118. .sp
  31119. New in version 2017.7.0.
  31120. .sp
  31121. Returns the maximum value from a list.
  31122. .sp
  31123. Example:
  31124. .INDENT 0.0
  31125. .INDENT 3.5
  31126. .sp
  31127. .nf
  31128. .ft C
  31129. {{ [1, 2, 3] | max }}
  31130. .ft P
  31131. .fi
  31132. .UNINDENT
  31133. .UNINDENT
  31134. .sp
  31135. Returns:
  31136. .INDENT 0.0
  31137. .INDENT 3.5
  31138. .sp
  31139. .nf
  31140. .ft C
  31141. 3
  31142. .ft P
  31143. .fi
  31144. .UNINDENT
  31145. .UNINDENT
  31146. .SS \fBavg\fP
  31147. .sp
  31148. New in version 2017.7.0.
  31149. .sp
  31150. Returns the average value of the elements of a list
  31151. .sp
  31152. Example:
  31153. .INDENT 0.0
  31154. .INDENT 3.5
  31155. .sp
  31156. .nf
  31157. .ft C
  31158. {{ [1, 2, 3] | avg }}
  31159. .ft P
  31160. .fi
  31161. .UNINDENT
  31162. .UNINDENT
  31163. .sp
  31164. Returns:
  31165. .INDENT 0.0
  31166. .INDENT 3.5
  31167. .sp
  31168. .nf
  31169. .ft C
  31170. 2
  31171. .ft P
  31172. .fi
  31173. .UNINDENT
  31174. .UNINDENT
  31175. .SS \fBunion\fP
  31176. .sp
  31177. New in version 2017.7.0.
  31178. .sp
  31179. Return the union of two lists.
  31180. .sp
  31181. Example:
  31182. .INDENT 0.0
  31183. .INDENT 3.5
  31184. .sp
  31185. .nf
  31186. .ft C
  31187. {{ [1, 2, 3] | union([2, 3, 4]) | join(\(aq, \(aq) }}
  31188. .ft P
  31189. .fi
  31190. .UNINDENT
  31191. .UNINDENT
  31192. .sp
  31193. Returns:
  31194. .INDENT 0.0
  31195. .INDENT 3.5
  31196. .sp
  31197. .nf
  31198. .ft C
  31199. 1, 2, 3, 4
  31200. .ft P
  31201. .fi
  31202. .UNINDENT
  31203. .UNINDENT
  31204. .SS \fBintersect\fP
  31205. .sp
  31206. New in version 2017.7.0.
  31207. .sp
  31208. Return the intersection of two lists.
  31209. .sp
  31210. Example:
  31211. .INDENT 0.0
  31212. .INDENT 3.5
  31213. .sp
  31214. .nf
  31215. .ft C
  31216. {{ [1, 2, 3] | intersect([2, 3, 4]) | join(\(aq, \(aq) }}
  31217. .ft P
  31218. .fi
  31219. .UNINDENT
  31220. .UNINDENT
  31221. .sp
  31222. Returns:
  31223. .INDENT 0.0
  31224. .INDENT 3.5
  31225. .sp
  31226. .nf
  31227. .ft C
  31228. 2, 3
  31229. .ft P
  31230. .fi
  31231. .UNINDENT
  31232. .UNINDENT
  31233. .SS \fBdifference\fP
  31234. .sp
  31235. New in version 2017.7.0.
  31236. .sp
  31237. Return the difference of two lists.
  31238. .sp
  31239. Example:
  31240. .INDENT 0.0
  31241. .INDENT 3.5
  31242. .sp
  31243. .nf
  31244. .ft C
  31245. {{ [1, 2, 3] | difference([2, 3, 4]) | join(\(aq, \(aq) }}
  31246. .ft P
  31247. .fi
  31248. .UNINDENT
  31249. .UNINDENT
  31250. .sp
  31251. Returns:
  31252. .INDENT 0.0
  31253. .INDENT 3.5
  31254. .sp
  31255. .nf
  31256. .ft C
  31257. 1
  31258. .ft P
  31259. .fi
  31260. .UNINDENT
  31261. .UNINDENT
  31262. .SS \fBsymmetric_difference\fP
  31263. .sp
  31264. New in version 2017.7.0.
  31265. .sp
  31266. Return the symmetric difference of two lists.
  31267. .sp
  31268. Example:
  31269. .INDENT 0.0
  31270. .INDENT 3.5
  31271. .sp
  31272. .nf
  31273. .ft C
  31274. {{ [1, 2, 3] | symmetric_difference([2, 3, 4]) | join(\(aq, \(aq) }}
  31275. .ft P
  31276. .fi
  31277. .UNINDENT
  31278. .UNINDENT
  31279. .sp
  31280. Returns:
  31281. .INDENT 0.0
  31282. .INDENT 3.5
  31283. .sp
  31284. .nf
  31285. .ft C
  31286. 1, 4
  31287. .ft P
  31288. .fi
  31289. .UNINDENT
  31290. .UNINDENT
  31291. .SS \fBmethod_call\fP
  31292. .sp
  31293. New in version Sodium.
  31294. .sp
  31295. Returns a result of object\(aqs method call.
  31296. .sp
  31297. Example #1:
  31298. .INDENT 0.0
  31299. .INDENT 3.5
  31300. .sp
  31301. .nf
  31302. .ft C
  31303. {{ [1, 2, 1, 3, 4] | method_call(\(aqindex\(aq, 1, 1, 3) }}
  31304. .ft P
  31305. .fi
  31306. .UNINDENT
  31307. .UNINDENT
  31308. .sp
  31309. Returns:
  31310. .INDENT 0.0
  31311. .INDENT 3.5
  31312. .sp
  31313. .nf
  31314. .ft C
  31315. 2
  31316. .ft P
  31317. .fi
  31318. .UNINDENT
  31319. .UNINDENT
  31320. .sp
  31321. This filter can be used with the \fI\%map filter\fP to apply object methods without
  31322. using loop constructs or temporary variables.
  31323. .sp
  31324. Example #2:
  31325. .INDENT 0.0
  31326. .INDENT 3.5
  31327. .sp
  31328. .nf
  31329. .ft C
  31330. {% set host_list = [\(aqweb01.example.com\(aq, \(aqdb01.example.com\(aq] %}
  31331. {% set host_list_split = [] %}
  31332. {% for item in host_list %}
  31333. {% do host_list_split.append(item.split(\(aq.\(aq, 1)) %}
  31334. {% endfor %}
  31335. {{ host_list_split }}
  31336. .ft P
  31337. .fi
  31338. .UNINDENT
  31339. .UNINDENT
  31340. .sp
  31341. Example #3:
  31342. .INDENT 0.0
  31343. .INDENT 3.5
  31344. .sp
  31345. .nf
  31346. .ft C
  31347. {{ host_list|map(\(aqmethod_call\(aq, \(aqsplit\(aq, \(aq.\(aq, 1)|list }}
  31348. .ft P
  31349. .fi
  31350. .UNINDENT
  31351. .UNINDENT
  31352. .sp
  31353. Return of examples #2 and #3:
  31354. .INDENT 0.0
  31355. .INDENT 3.5
  31356. .sp
  31357. .nf
  31358. .ft C
  31359. [[web01, example.com], [db01, example.com]]
  31360. .ft P
  31361. .fi
  31362. .UNINDENT
  31363. .UNINDENT
  31364. .SS \fBis_sorted\fP
  31365. .sp
  31366. New in version 2017.7.0.
  31367. .sp
  31368. Return \fBTrue\fP if an iterable object is already sorted.
  31369. .sp
  31370. Example:
  31371. .INDENT 0.0
  31372. .INDENT 3.5
  31373. .sp
  31374. .nf
  31375. .ft C
  31376. {{ [1, 2, 3] | is_sorted }}
  31377. .ft P
  31378. .fi
  31379. .UNINDENT
  31380. .UNINDENT
  31381. .sp
  31382. Returns:
  31383. .INDENT 0.0
  31384. .INDENT 3.5
  31385. .sp
  31386. .nf
  31387. .ft C
  31388. True
  31389. .ft P
  31390. .fi
  31391. .UNINDENT
  31392. .UNINDENT
  31393. .SS \fBcompare_lists\fP
  31394. .sp
  31395. New in version 2017.7.0.
  31396. .sp
  31397. Compare two lists and return a dictionary with the changes.
  31398. .sp
  31399. Example:
  31400. .INDENT 0.0
  31401. .INDENT 3.5
  31402. .sp
  31403. .nf
  31404. .ft C
  31405. {{ [1, 2, 3] | compare_lists([1, 2, 4]) }}
  31406. .ft P
  31407. .fi
  31408. .UNINDENT
  31409. .UNINDENT
  31410. .sp
  31411. Returns:
  31412. .INDENT 0.0
  31413. .INDENT 3.5
  31414. .sp
  31415. .nf
  31416. .ft C
  31417. {\(aqnew\(aq: [4], \(aqold\(aq: [3]}
  31418. .ft P
  31419. .fi
  31420. .UNINDENT
  31421. .UNINDENT
  31422. .SS \fBcompare_dicts\fP
  31423. .sp
  31424. New in version 2017.7.0.
  31425. .sp
  31426. Compare two dictionaries and return a dictionary with the changes.
  31427. .sp
  31428. Example:
  31429. .INDENT 0.0
  31430. .INDENT 3.5
  31431. .sp
  31432. .nf
  31433. .ft C
  31434. {{ {\(aqa\(aq: \(aqb\(aq} | compare_dicts({\(aqa\(aq: \(aqc\(aq}) }}
  31435. .ft P
  31436. .fi
  31437. .UNINDENT
  31438. .UNINDENT
  31439. .sp
  31440. Returns:
  31441. .INDENT 0.0
  31442. .INDENT 3.5
  31443. .sp
  31444. .nf
  31445. .ft C
  31446. {\(aqa\(aq: {\(aqnew\(aq: \(aqc\(aq, \(aqold\(aq: \(aqb\(aq}}
  31447. .ft P
  31448. .fi
  31449. .UNINDENT
  31450. .UNINDENT
  31451. .SS \fBis_hex\fP
  31452. .sp
  31453. New in version 2017.7.0.
  31454. .sp
  31455. Return \fBTrue\fP if the value is hexadecimal.
  31456. .sp
  31457. Example:
  31458. .INDENT 0.0
  31459. .INDENT 3.5
  31460. .sp
  31461. .nf
  31462. .ft C
  31463. {{ \(aq0xabcd\(aq | is_hex }}
  31464. {{ \(aqxyzt\(aq | is_hex }}
  31465. .ft P
  31466. .fi
  31467. .UNINDENT
  31468. .UNINDENT
  31469. .sp
  31470. Returns:
  31471. .INDENT 0.0
  31472. .INDENT 3.5
  31473. .sp
  31474. .nf
  31475. .ft C
  31476. True
  31477. False
  31478. .ft P
  31479. .fi
  31480. .UNINDENT
  31481. .UNINDENT
  31482. .SS \fBcontains_whitespace\fP
  31483. .sp
  31484. New in version 2017.7.0.
  31485. .sp
  31486. Return \fBTrue\fP if a text contains whitespaces.
  31487. .sp
  31488. Example:
  31489. .INDENT 0.0
  31490. .INDENT 3.5
  31491. .sp
  31492. .nf
  31493. .ft C
  31494. {{ \(aqabcd\(aq | contains_whitespace }}
  31495. {{ \(aqab cd\(aq | contains_whitespace }}
  31496. .ft P
  31497. .fi
  31498. .UNINDENT
  31499. .UNINDENT
  31500. .sp
  31501. Returns:
  31502. .INDENT 0.0
  31503. .INDENT 3.5
  31504. .sp
  31505. .nf
  31506. .ft C
  31507. False
  31508. True
  31509. .ft P
  31510. .fi
  31511. .UNINDENT
  31512. .UNINDENT
  31513. .SS \fBsubstring_in_list\fP
  31514. .sp
  31515. New in version 2017.7.0.
  31516. .sp
  31517. Return \fBTrue\fP if a substring is found in a list of string values.
  31518. .sp
  31519. Example:
  31520. .INDENT 0.0
  31521. .INDENT 3.5
  31522. .sp
  31523. .nf
  31524. .ft C
  31525. {{ \(aqabcd\(aq | substring_in_list([\(aqthis\(aq, \(aqis\(aq, \(aqan abcd example\(aq]) }}
  31526. .ft P
  31527. .fi
  31528. .UNINDENT
  31529. .UNINDENT
  31530. .sp
  31531. Returns:
  31532. .INDENT 0.0
  31533. .INDENT 3.5
  31534. .sp
  31535. .nf
  31536. .ft C
  31537. True
  31538. .ft P
  31539. .fi
  31540. .UNINDENT
  31541. .UNINDENT
  31542. .SS \fBcheck_whitelist_blacklist\fP
  31543. .sp
  31544. New in version 2017.7.0.
  31545. .sp
  31546. Check a whitelist and/or blacklist to see if the value matches it.
  31547. .sp
  31548. This filter can be used with either a whitelist or a blacklist individually,
  31549. or a whitelist and a blacklist can be passed simultaneously.
  31550. .sp
  31551. If whitelist is used alone, value membership is checked against the
  31552. whitelist only. If the value is found, the function returns \fBTrue\fP\&.
  31553. Otherwise, it returns \fBFalse\fP\&.
  31554. .sp
  31555. If blacklist is used alone, value membership is checked against the
  31556. blacklist only. If the value is found, the function returns \fBFalse\fP\&.
  31557. Otherwise, it returns \fBTrue\fP\&.
  31558. .sp
  31559. If both a whitelist and a blacklist are provided, value membership in the
  31560. blacklist will be examined first. If the value is not found in the blacklist,
  31561. then the whitelist is checked. If the value isn\(aqt found in the whitelist,
  31562. the function returns \fBFalse\fP\&.
  31563. .sp
  31564. Whitelist Example:
  31565. .INDENT 0.0
  31566. .INDENT 3.5
  31567. .sp
  31568. .nf
  31569. .ft C
  31570. {{ 5 | check_whitelist_blacklist(whitelist=[5, 6, 7]) }}
  31571. .ft P
  31572. .fi
  31573. .UNINDENT
  31574. .UNINDENT
  31575. .sp
  31576. Returns:
  31577. .INDENT 0.0
  31578. .INDENT 3.5
  31579. .sp
  31580. .nf
  31581. .ft C
  31582. True
  31583. .ft P
  31584. .fi
  31585. .UNINDENT
  31586. .UNINDENT
  31587. .sp
  31588. Blacklist Example:
  31589. .INDENT 0.0
  31590. .INDENT 3.5
  31591. .sp
  31592. .nf
  31593. .ft C
  31594. {{ 5 | check_whitelist_blacklist(blacklist=[5, 6, 7]) }}
  31595. .ft P
  31596. .fi
  31597. .UNINDENT
  31598. .UNINDENT
  31599. .INDENT 0.0
  31600. .INDENT 3.5
  31601. .sp
  31602. .nf
  31603. .ft C
  31604. False
  31605. .ft P
  31606. .fi
  31607. .UNINDENT
  31608. .UNINDENT
  31609. .SS \fBdate_format\fP
  31610. .sp
  31611. New in version 2017.7.0.
  31612. .sp
  31613. Converts unix timestamp into human\-readable string.
  31614. .sp
  31615. Example:
  31616. .INDENT 0.0
  31617. .INDENT 3.5
  31618. .sp
  31619. .nf
  31620. .ft C
  31621. {{ 1457456400 | date_format }}
  31622. {{ 1457456400 | date_format(\(aq%d.%m.%Y %H:%M\(aq) }}
  31623. .ft P
  31624. .fi
  31625. .UNINDENT
  31626. .UNINDENT
  31627. .sp
  31628. Returns:
  31629. .INDENT 0.0
  31630. .INDENT 3.5
  31631. .sp
  31632. .nf
  31633. .ft C
  31634. 2017\-03\-08
  31635. 08.03.2017 17:00
  31636. .ft P
  31637. .fi
  31638. .UNINDENT
  31639. .UNINDENT
  31640. .SS \fBto_num\fP
  31641. .sp
  31642. New in version 2017.7.0.
  31643. .sp
  31644. New in version 2018.3.0: Renamed from \fBstr_to_num\fP to \fBto_num\fP\&.
  31645. .sp
  31646. Converts a string to its numerical value.
  31647. .sp
  31648. Example:
  31649. .INDENT 0.0
  31650. .INDENT 3.5
  31651. .sp
  31652. .nf
  31653. .ft C
  31654. {{ \(aq5\(aq | to_num }}
  31655. .ft P
  31656. .fi
  31657. .UNINDENT
  31658. .UNINDENT
  31659. .sp
  31660. Returns:
  31661. .INDENT 0.0
  31662. .INDENT 3.5
  31663. .sp
  31664. .nf
  31665. .ft C
  31666. 5
  31667. .ft P
  31668. .fi
  31669. .UNINDENT
  31670. .UNINDENT
  31671. .SS \fBto_bytes\fP
  31672. .sp
  31673. New in version 2017.7.0.
  31674. .sp
  31675. Converts string\-type object to bytes.
  31676. .sp
  31677. Example:
  31678. .INDENT 0.0
  31679. .INDENT 3.5
  31680. .sp
  31681. .nf
  31682. .ft C
  31683. {{ \(aqwall of text\(aq | to_bytes }}
  31684. .ft P
  31685. .fi
  31686. .UNINDENT
  31687. .UNINDENT
  31688. .sp
  31689. \fBNOTE:\fP
  31690. .INDENT 0.0
  31691. .INDENT 3.5
  31692. This option may have adverse effects when using the default renderer,
  31693. \fBjinja|yaml\fP\&. This is due to the fact that YAML requires proper handling
  31694. in regard to special characters. Please see the section on YAML ASCII
  31695. support in the YAML Idiosyncracies documentation for more information.
  31696. .UNINDENT
  31697. .UNINDENT
  31698. .SS \fBjson_encode_list\fP
  31699. .sp
  31700. New in version 2017.7.0.
  31701. .sp
  31702. New in version 2018.3.0: Renamed from \fBjson_decode_list\fP to \fBjson_encode_list\fP\&. When you encode
  31703. something you get bytes, and when you decode, you get your locale\(aqs
  31704. encoding (usually a \fBunicode\fP type). This filter was incorrectly\-named
  31705. when it was added. \fBjson_decode_list\fP will be supported until the Aluminium
  31706. release.
  31707. .sp
  31708. Deprecated since version 2018.3.3,2019.2.0: The \fI\%tojson\fP filter accomplishes what this filter was designed
  31709. to do, making this filter redundant.
  31710. .sp
  31711. Recursively encodes all string elements of the list to bytes.
  31712. .sp
  31713. Example:
  31714. .INDENT 0.0
  31715. .INDENT 3.5
  31716. .sp
  31717. .nf
  31718. .ft C
  31719. {{ [1, 2, 3] | json_encode_list }}
  31720. .ft P
  31721. .fi
  31722. .UNINDENT
  31723. .UNINDENT
  31724. .sp
  31725. Returns:
  31726. .INDENT 0.0
  31727. .INDENT 3.5
  31728. .sp
  31729. .nf
  31730. .ft C
  31731. [1, 2, 3]
  31732. .ft P
  31733. .fi
  31734. .UNINDENT
  31735. .UNINDENT
  31736. .SS \fBjson_encode_dict\fP
  31737. .sp
  31738. New in version 2017.7.0.
  31739. .sp
  31740. New in version 2018.3.0: Renamed from \fBjson_decode_dict\fP to \fBjson_encode_dict\fP\&. When you encode
  31741. something you get bytes, and when you decode, you get your locale\(aqs
  31742. encoding (usually a \fBunicode\fP type). This filter was incorrectly\-named
  31743. when it was added. \fBjson_decode_dict\fP will be supported until the Aluminium
  31744. release.
  31745. .sp
  31746. Deprecated since version 2018.3.3,2019.2.0: The \fI\%tojson\fP filter accomplishes what this filter was designed
  31747. to do, making this filter redundant.
  31748. .sp
  31749. Recursively encodes all string items in the dictionary to bytes.
  31750. .sp
  31751. Example:
  31752. .sp
  31753. Assuming that \fBpillar[\(aqfoo\(aq]\fP contains \fB{u\(aqa\(aq: u\(aq\eu0414\(aq}\fP, and your locale
  31754. is \fBen_US.UTF\-8\fP:
  31755. .INDENT 0.0
  31756. .INDENT 3.5
  31757. .sp
  31758. .nf
  31759. .ft C
  31760. {{ pillar[\(aqfoo\(aq] | json_encode_dict }}
  31761. .ft P
  31762. .fi
  31763. .UNINDENT
  31764. .UNINDENT
  31765. .sp
  31766. Returns:
  31767. .INDENT 0.0
  31768. .INDENT 3.5
  31769. .sp
  31770. .nf
  31771. .ft C
  31772. {\(aqa\(aq: \(aq\exd0\ex94\(aq}
  31773. .ft P
  31774. .fi
  31775. .UNINDENT
  31776. .UNINDENT
  31777. .SS \fBtojson\fP
  31778. .sp
  31779. New in version 2018.3.3,2019.2.0.
  31780. .sp
  31781. Dumps a data structure to JSON.
  31782. .sp
  31783. This filter was added to provide this functionality to hosts which have a
  31784. Jinja release older than version 2.9 installed. If Jinja 2.9 or newer is
  31785. installed, then the upstream version of the filter will be used. See the
  31786. \fI\%upstream docs\fP for more information.
  31787. .SS \fBrandom_hash\fP
  31788. .sp
  31789. New in version 2017.7.0.
  31790. .sp
  31791. New in version 2018.3.0: Renamed from \fBrand_str\fP to \fBrandom_hash\fP to more accurately describe
  31792. what the filter does. \fBrand_str\fP will be supported to ensure backwards
  31793. compatibility but please use the preferred \fBrandom_hash\fP\&.
  31794. .sp
  31795. Generates a random number between 1 and the number passed to the filter, and
  31796. then hashes it. The default hash type is the one specified by the minion\(aqs
  31797. \fBhash_type\fP config option, but an alternate hash type can be
  31798. passed to the filter as an argument.
  31799. .sp
  31800. Example:
  31801. .INDENT 0.0
  31802. .INDENT 3.5
  31803. .sp
  31804. .nf
  31805. .ft C
  31806. {% set num_range = 99999999 %}
  31807. {{ num_range | random_hash }}
  31808. {{ num_range | random_hash(\(aqsha512\(aq) }}
  31809. .ft P
  31810. .fi
  31811. .UNINDENT
  31812. .UNINDENT
  31813. .sp
  31814. Returns:
  31815. .INDENT 0.0
  31816. .INDENT 3.5
  31817. .sp
  31818. .nf
  31819. .ft C
  31820. 43ec517d68b6edd3015b3edc9a11367b
  31821. d94a45acd81f8e3107d237dbc0d5d195f6a52a0d188bc0284c0763ece1eac9f9496fb6a531a296074c87b3540398dace1222b42e150e67c9301383fde3d66ae5
  31822. .ft P
  31823. .fi
  31824. .UNINDENT
  31825. .UNINDENT
  31826. .SS \fBset_dict_key_value\fP
  31827. .sp
  31828. \&..versionadded:: 3000
  31829. .sp
  31830. Allows you to set a value in a nested dictionary without having to worry if all the nested keys actually exist.
  31831. Missing keys will be automatically created if they do not exist.
  31832. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  31833. .sp
  31834. Examples:
  31835. .INDENT 0.0
  31836. .INDENT 3.5
  31837. .sp
  31838. .nf
  31839. .ft C
  31840. .ft P
  31841. .fi
  31842. .UNINDENT
  31843. .UNINDENT
  31844. .INDENT 0.0
  31845. .TP
  31846. .B Example 1:
  31847. {%\- set foo = {} %}
  31848. {{ foo | set_dict_key_value(\(aqbar:baz\(aq, 42) }}
  31849. .TP
  31850. .B Example 2:
  31851. {{ {} | set_dict_key_value(\(aqbar.baz.qux\(aq, 42, delimiter=\(aq.\(aq) }}
  31852. .UNINDENT
  31853. .sp
  31854. Returns:
  31855. .INDENT 0.0
  31856. .INDENT 3.5
  31857. .sp
  31858. .nf
  31859. .ft C
  31860. .ft P
  31861. .fi
  31862. .UNINDENT
  31863. .UNINDENT
  31864. .INDENT 0.0
  31865. .TP
  31866. .B Example 1:
  31867. {\(aqbar\(aq: {\(aqbaz\(aq: 42}}
  31868. .TP
  31869. .B Example 2:
  31870. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 42}}}
  31871. .UNINDENT
  31872. .SS \fBappend_dict_key_value\fP
  31873. .sp
  31874. \&..versionadded:: 3000
  31875. .sp
  31876. Allows you to append to a list nested (deep) in a dictionary without having to worry if all the nested keys (or the list itself) actually exist.
  31877. Missing keys will automatically be created if they do not exist.
  31878. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  31879. .sp
  31880. Examples:
  31881. .INDENT 0.0
  31882. .INDENT 3.5
  31883. .sp
  31884. .nf
  31885. .ft C
  31886. .ft P
  31887. .fi
  31888. .UNINDENT
  31889. .UNINDENT
  31890. .INDENT 0.0
  31891. .TP
  31892. .B Example 1:
  31893. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2]}} %}
  31894. {{ foo | append_dict_key_value(\(aqbar:baz\(aq, 42) }}
  31895. .TP
  31896. .B Example 2:
  31897. {%\- set foo = {} %}
  31898. {{ foo | append_dict_key_value(\(aqbar:baz:qux\(aq, 42) }}
  31899. .UNINDENT
  31900. .sp
  31901. Returns:
  31902. .INDENT 0.0
  31903. .INDENT 3.5
  31904. .sp
  31905. .nf
  31906. .ft C
  31907. .ft P
  31908. .fi
  31909. .UNINDENT
  31910. .UNINDENT
  31911. .INDENT 0.0
  31912. .TP
  31913. .B Example 1:
  31914. {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2, 42]}}
  31915. .TP
  31916. .B Example 2:
  31917. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: [42]}}}
  31918. .UNINDENT
  31919. .SS \fBextend_dict_key_value\fP
  31920. .sp
  31921. \&..versionadded:: 3000
  31922. .sp
  31923. Allows you to extend a list nested (deep) in a dictionary without having to worry if all the nested keys (or the list itself) actually exist.
  31924. Missing keys will automatically be created if they do not exist.
  31925. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  31926. .sp
  31927. Examples:
  31928. .INDENT 0.0
  31929. .INDENT 3.5
  31930. .sp
  31931. .nf
  31932. .ft C
  31933. .ft P
  31934. .fi
  31935. .UNINDENT
  31936. .UNINDENT
  31937. .INDENT 0.0
  31938. .TP
  31939. .B Example 1:
  31940. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2]}} %}
  31941. {{ foo | extend_dict_key_value(\(aqbar:baz\(aq, [42, 42]) }}
  31942. .TP
  31943. .B Example 2:
  31944. {{ {} | extend_dict_key_value(\(aqbar:baz:qux\(aq, [42]) }}
  31945. .UNINDENT
  31946. .sp
  31947. Returns:
  31948. .INDENT 0.0
  31949. .INDENT 3.5
  31950. .sp
  31951. .nf
  31952. .ft C
  31953. .ft P
  31954. .fi
  31955. .UNINDENT
  31956. .UNINDENT
  31957. .INDENT 0.0
  31958. .TP
  31959. .B Example 1:
  31960. {\(aqbar\(aq: {\(aqbaz\(aq: [1, 2, 42, 42]}}
  31961. .TP
  31962. .B Example 2:
  31963. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: [42]}}}
  31964. .UNINDENT
  31965. .SS \fBupdate_dict_key_value\fP
  31966. .sp
  31967. \&..versionadded:: 3000
  31968. .sp
  31969. Allows you to update a dictionary nested (deep) in another dictionary without having to worry if all the nested keys actually exist.
  31970. Missing keys will automatically be created if they do not exist.
  31971. The default delimiter for the keys is \(aq:\(aq, however, with the \fIdelimiter\fP\-parameter, a different delimiter can be specified.
  31972. .sp
  31973. Examples:
  31974. .INDENT 0.0
  31975. .INDENT 3.5
  31976. .sp
  31977. .nf
  31978. .ft C
  31979. .ft P
  31980. .fi
  31981. .UNINDENT
  31982. .UNINDENT
  31983. .INDENT 0.0
  31984. .TP
  31985. .B Example 1:
  31986. {%\- set foo = {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 1}}} %}
  31987. {{ foo | update_dict_key_value(\(aqbar:baz\(aq, {\(aqquux\(aq: 3}) }}
  31988. .TP
  31989. .B Example 2:
  31990. {{ {} | update_dict_key_value(\(aqbar:baz:qux\(aq, {\(aqquux\(aq: 3}) }}
  31991. .UNINDENT
  31992. .INDENT 0.0
  31993. .INDENT 3.5
  31994. .sp
  31995. .nf
  31996. .ft C
  31997. .ft P
  31998. .fi
  31999. .UNINDENT
  32000. .UNINDENT
  32001. .INDENT 0.0
  32002. .TP
  32003. .B Example 1:
  32004. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: 1, \(aqquux\(aq: 3}}}
  32005. .TP
  32006. .B Example 2:
  32007. {\(aqbar\(aq: {\(aqbaz\(aq: {\(aqqux\(aq: {\(aqquux\(aq: 3}}}}
  32008. .UNINDENT
  32009. .SS \fBmd5\fP
  32010. .sp
  32011. New in version 2017.7.0.
  32012. .sp
  32013. Return the md5 digest of a string.
  32014. .sp
  32015. Example:
  32016. .INDENT 0.0
  32017. .INDENT 3.5
  32018. .sp
  32019. .nf
  32020. .ft C
  32021. {{ \(aqrandom\(aq | md5 }}
  32022. .ft P
  32023. .fi
  32024. .UNINDENT
  32025. .UNINDENT
  32026. .sp
  32027. Returns:
  32028. .INDENT 0.0
  32029. .INDENT 3.5
  32030. .sp
  32031. .nf
  32032. .ft C
  32033. 7ddf32e17a6ac5ce04a8ecbf782ca509
  32034. .ft P
  32035. .fi
  32036. .UNINDENT
  32037. .UNINDENT
  32038. .SS \fBsha256\fP
  32039. .sp
  32040. New in version 2017.7.0.
  32041. .sp
  32042. Return the sha256 digest of a string.
  32043. .sp
  32044. Example:
  32045. .INDENT 0.0
  32046. .INDENT 3.5
  32047. .sp
  32048. .nf
  32049. .ft C
  32050. {{ \(aqrandom\(aq | sha256 }}
  32051. .ft P
  32052. .fi
  32053. .UNINDENT
  32054. .UNINDENT
  32055. .sp
  32056. Returns:
  32057. .INDENT 0.0
  32058. .INDENT 3.5
  32059. .sp
  32060. .nf
  32061. .ft C
  32062. a441b15fe9a3cf56661190a0b93b9dec7d04127288cc87250967cf3b52894d11
  32063. .ft P
  32064. .fi
  32065. .UNINDENT
  32066. .UNINDENT
  32067. .SS \fBsha512\fP
  32068. .sp
  32069. New in version 2017.7.0.
  32070. .sp
  32071. Return the sha512 digest of a string.
  32072. .sp
  32073. Example:
  32074. .INDENT 0.0
  32075. .INDENT 3.5
  32076. .sp
  32077. .nf
  32078. .ft C
  32079. {{ \(aqrandom\(aq | sha512 }}
  32080. .ft P
  32081. .fi
  32082. .UNINDENT
  32083. .UNINDENT
  32084. .sp
  32085. Returns:
  32086. .INDENT 0.0
  32087. .INDENT 3.5
  32088. .sp
  32089. .nf
  32090. .ft C
  32091. 811a90e1c8e86c7b4c0eef5b2c0bf0ec1b19c4b1b5a242e6455be93787cb473cb7bc9b0fdeb960d00d5c6881c2094dd63c5c900ce9057255e2a4e271fc25fef1
  32092. .ft P
  32093. .fi
  32094. .UNINDENT
  32095. .UNINDENT
  32096. .SS \fBbase64_encode\fP
  32097. .sp
  32098. New in version 2017.7.0.
  32099. .sp
  32100. Encode a string as base64.
  32101. .sp
  32102. Example:
  32103. .INDENT 0.0
  32104. .INDENT 3.5
  32105. .sp
  32106. .nf
  32107. .ft C
  32108. {{ \(aqrandom\(aq | base64_encode }}
  32109. .ft P
  32110. .fi
  32111. .UNINDENT
  32112. .UNINDENT
  32113. .sp
  32114. Returns:
  32115. .INDENT 0.0
  32116. .INDENT 3.5
  32117. .sp
  32118. .nf
  32119. .ft C
  32120. cmFuZG9t
  32121. .ft P
  32122. .fi
  32123. .UNINDENT
  32124. .UNINDENT
  32125. .SS \fBbase64_decode\fP
  32126. .sp
  32127. New in version 2017.7.0.
  32128. .sp
  32129. Decode a base64\-encoded string.
  32130. .INDENT 0.0
  32131. .INDENT 3.5
  32132. .sp
  32133. .nf
  32134. .ft C
  32135. {{ \(aqZ2V0IHNhbHRlZA==\(aq | base64_decode }}
  32136. .ft P
  32137. .fi
  32138. .UNINDENT
  32139. .UNINDENT
  32140. .sp
  32141. Returns:
  32142. .INDENT 0.0
  32143. .INDENT 3.5
  32144. .sp
  32145. .nf
  32146. .ft C
  32147. get salted
  32148. .ft P
  32149. .fi
  32150. .UNINDENT
  32151. .UNINDENT
  32152. .SS \fBhmac\fP
  32153. .sp
  32154. New in version 2017.7.0.
  32155. .sp
  32156. Verify a challenging hmac signature against a string / shared\-secret. Returns
  32157. a boolean value.
  32158. .sp
  32159. Example:
  32160. .INDENT 0.0
  32161. .INDENT 3.5
  32162. .sp
  32163. .nf
  32164. .ft C
  32165. {{ \(aqget salted\(aq | hmac(\(aqshared secret\(aq, \(aqeBWf9bstXg+NiP5AOwppB5HMvZiYMPzEM9W5YMm/AmQ=\(aq) }}
  32166. .ft P
  32167. .fi
  32168. .UNINDENT
  32169. .UNINDENT
  32170. .sp
  32171. Returns:
  32172. .INDENT 0.0
  32173. .INDENT 3.5
  32174. .sp
  32175. .nf
  32176. .ft C
  32177. True
  32178. .ft P
  32179. .fi
  32180. .UNINDENT
  32181. .UNINDENT
  32182. .SS \fBhttp_query\fP
  32183. .sp
  32184. New in version 2017.7.0.
  32185. .sp
  32186. Return the HTTP reply object from a URL.
  32187. .sp
  32188. Example:
  32189. .INDENT 0.0
  32190. .INDENT 3.5
  32191. .sp
  32192. .nf
  32193. .ft C
  32194. {{ \(aqhttp://jsonplaceholder.typicode.com/posts/1\(aq | http_query }}
  32195. .ft P
  32196. .fi
  32197. .UNINDENT
  32198. .UNINDENT
  32199. .sp
  32200. Returns:
  32201. .INDENT 0.0
  32202. .INDENT 3.5
  32203. .sp
  32204. .nf
  32205. .ft C
  32206. {
  32207. \(aqbody\(aq: \(aq{
  32208. "userId": 1,
  32209. "id": 1,
  32210. "title": "sunt aut facere repellat provident occaecati excepturi option reprehenderit",
  32211. "body": "quia et suscipit\e\ensuscipit recusandae consequuntur expedita et cum\e\enreprehenderit molestiae ut ut quas totam\e\ennostrum rerum est autem sunt rem eveniet architecto"
  32212. }\(aq
  32213. }
  32214. .ft P
  32215. .fi
  32216. .UNINDENT
  32217. .UNINDENT
  32218. .SS \fBtraverse\fP
  32219. .sp
  32220. New in version 2018.3.3.
  32221. .sp
  32222. Traverse a dict or list using a colon\-delimited target string.
  32223. The target \(aqfoo:bar:0\(aq will return data[\(aqfoo\(aq][\(aqbar\(aq][0] if this value exists,
  32224. and will otherwise return the provided default value.
  32225. .sp
  32226. Example:
  32227. .INDENT 0.0
  32228. .INDENT 3.5
  32229. .sp
  32230. .nf
  32231. .ft C
  32232. {{ {\(aqa1\(aq: {\(aqb1\(aq: {\(aqc1\(aq: \(aqfoo\(aq}}, \(aqa2\(aq: \(aqbar\(aq} | traverse(\(aqa1:b1\(aq, \(aqdefault\(aq) }}
  32233. .ft P
  32234. .fi
  32235. .UNINDENT
  32236. .UNINDENT
  32237. .sp
  32238. Returns:
  32239. .INDENT 0.0
  32240. .INDENT 3.5
  32241. .sp
  32242. .nf
  32243. .ft C
  32244. {\(aqc1\(aq: \(aqfoo\(aq}
  32245. .ft P
  32246. .fi
  32247. .UNINDENT
  32248. .UNINDENT
  32249. .INDENT 0.0
  32250. .INDENT 3.5
  32251. .sp
  32252. .nf
  32253. .ft C
  32254. {{ {\(aqa1\(aq: {\(aqb1\(aq: {\(aqc1\(aq: \(aqfoo\(aq}}, \(aqa2\(aq: \(aqbar\(aq} | traverse(\(aqa2:b2\(aq, \(aqdefault\(aq) }}
  32255. .ft P
  32256. .fi
  32257. .UNINDENT
  32258. .UNINDENT
  32259. .sp
  32260. Returns:
  32261. .INDENT 0.0
  32262. .INDENT 3.5
  32263. .sp
  32264. .nf
  32265. .ft C
  32266. \(aqdefault\(aq
  32267. .ft P
  32268. .fi
  32269. .UNINDENT
  32270. .UNINDENT
  32271. .SS \fBjson_query\fP
  32272. .sp
  32273. New in version 3000.
  32274. .sp
  32275. A port of Ansible \fBjson_query\fP Jinja filter to make queries against JSON data using \fI\%JMESPath language\fP\&.
  32276. Could be used to filter \fBpillar\fP data, \fByaml\fP maps, and together with \fI\%http_query\fP\&.
  32277. Depends on the \fI\%jmespath\fP Python module.
  32278. .sp
  32279. Examples:
  32280. .INDENT 0.0
  32281. .INDENT 3.5
  32282. .sp
  32283. .nf
  32284. .ft C
  32285. Example 1: {{ [1, 2, 3, 4, [5, 6]] | json_query(\(aq[]\(aq) }}
  32286. Example 2: {{
  32287. {"machines": [
  32288. {"name": "a", "state": "running"},
  32289. {"name": "b", "state": "stopped"},
  32290. {"name": "c", "state": "running"}
  32291. ]} | json_query("machines[?state==\(aqrunning\(aq].name") }}
  32292. Example 3: {{
  32293. {"services": [
  32294. {"name": "http", "host": "1.2.3.4", "port": 80},
  32295. {"name": "smtp", "host": "1.2.3.5", "port": 25},
  32296. {"name": "ssh", "host": "1.2.3.6", "port": 22},
  32297. ]} | json_query("services[].port") }}
  32298. .ft P
  32299. .fi
  32300. .UNINDENT
  32301. .UNINDENT
  32302. .sp
  32303. Returns:
  32304. .INDENT 0.0
  32305. .INDENT 3.5
  32306. .sp
  32307. .nf
  32308. .ft C
  32309. Example 1: [1, 2, 3, 4, 5, 6]
  32310. Example 2: [\(aqa\(aq, \(aqc\(aq]
  32311. Example 3: [80, 25, 22]
  32312. .ft P
  32313. .fi
  32314. .UNINDENT
  32315. .UNINDENT
  32316. .SS \fBto_snake_case\fP
  32317. .sp
  32318. New in version 3000.
  32319. .sp
  32320. Converts a string from camelCase (or CamelCase) to snake_case.
  32321. .INDENT 0.0
  32322. .INDENT 3.5
  32323. .sp
  32324. .nf
  32325. .ft C
  32326. Example: {{ camelsWillLoveThis | to_snake_case }}
  32327. .ft P
  32328. .fi
  32329. .UNINDENT
  32330. .UNINDENT
  32331. .sp
  32332. Returns:
  32333. .INDENT 0.0
  32334. .INDENT 3.5
  32335. .sp
  32336. .nf
  32337. .ft C
  32338. Example: camels_will_love_this
  32339. .ft P
  32340. .fi
  32341. .UNINDENT
  32342. .UNINDENT
  32343. .SS \fBto_camelcase\fP
  32344. .sp
  32345. New in version 3000.
  32346. .sp
  32347. Converts a string from snake_case to camelCase (or UpperCamelCase if so indicated).
  32348. .INDENT 0.0
  32349. .INDENT 3.5
  32350. .sp
  32351. .nf
  32352. .ft C
  32353. Example 1: {{ snake_case_for_the_win | to_camelcase }}
  32354. Example 2: {{ snake_case_for_the_win | to_camelcase(uppercamel=True) }}
  32355. .ft P
  32356. .fi
  32357. .UNINDENT
  32358. .UNINDENT
  32359. .sp
  32360. Returns:
  32361. .INDENT 0.0
  32362. .INDENT 3.5
  32363. .sp
  32364. .nf
  32365. .ft C
  32366. Example 1: snakeCaseForTheWin
  32367. Example 2: SnakeCaseForTheWin
  32368. .ft P
  32369. .fi
  32370. .UNINDENT
  32371. .UNINDENT
  32372. .SS Networking Filters
  32373. .sp
  32374. The following networking\-related filters are supported:
  32375. .SS \fBis_ip\fP
  32376. .sp
  32377. New in version 2017.7.0.
  32378. .sp
  32379. Return if a string is a valid IP Address.
  32380. .INDENT 0.0
  32381. .INDENT 3.5
  32382. .sp
  32383. .nf
  32384. .ft C
  32385. {{ \(aq192.168.0.1\(aq | is_ip }}
  32386. .ft P
  32387. .fi
  32388. .UNINDENT
  32389. .UNINDENT
  32390. .sp
  32391. Additionally accepts the following options:
  32392. .INDENT 0.0
  32393. .IP \(bu 2
  32394. global
  32395. .IP \(bu 2
  32396. link\-local
  32397. .IP \(bu 2
  32398. loopback
  32399. .IP \(bu 2
  32400. multicast
  32401. .IP \(bu 2
  32402. private
  32403. .IP \(bu 2
  32404. public
  32405. .IP \(bu 2
  32406. reserved
  32407. .IP \(bu 2
  32408. site\-local
  32409. .IP \(bu 2
  32410. unspecified
  32411. .UNINDENT
  32412. .sp
  32413. Example \- test if a string is a valid loopback IP address.
  32414. .INDENT 0.0
  32415. .INDENT 3.5
  32416. .sp
  32417. .nf
  32418. .ft C
  32419. {{ \(aq192.168.0.1\(aq | is_ip(options=\(aqloopback\(aq) }}
  32420. .ft P
  32421. .fi
  32422. .UNINDENT
  32423. .UNINDENT
  32424. .SS \fBis_ipv4\fP
  32425. .sp
  32426. New in version 2017.7.0.
  32427. .sp
  32428. Returns if a string is a valid IPv4 address. Supports the same options
  32429. as \fBis_ip\fP\&.
  32430. .INDENT 0.0
  32431. .INDENT 3.5
  32432. .sp
  32433. .nf
  32434. .ft C
  32435. {{ \(aq192.168.0.1\(aq | is_ipv4 }}
  32436. .ft P
  32437. .fi
  32438. .UNINDENT
  32439. .UNINDENT
  32440. .SS \fBis_ipv6\fP
  32441. .sp
  32442. New in version 2017.7.0.
  32443. .sp
  32444. Returns if a string is a valid IPv6 address. Supports the same options
  32445. as \fBis_ip\fP\&.
  32446. .INDENT 0.0
  32447. .INDENT 3.5
  32448. .sp
  32449. .nf
  32450. .ft C
  32451. {{ \(aqfe80::\(aq | is_ipv6 }}
  32452. .ft P
  32453. .fi
  32454. .UNINDENT
  32455. .UNINDENT
  32456. .SS \fBipaddr\fP
  32457. .sp
  32458. New in version 2017.7.0.
  32459. .sp
  32460. From a list, returns only valid IP entries. Supports the same options
  32461. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32462. .sp
  32463. Example:
  32464. .INDENT 0.0
  32465. .INDENT 3.5
  32466. .sp
  32467. .nf
  32468. .ft C
  32469. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipaddr }}
  32470. .ft P
  32471. .fi
  32472. .UNINDENT
  32473. .UNINDENT
  32474. .sp
  32475. Returns:
  32476. .INDENT 0.0
  32477. .INDENT 3.5
  32478. .sp
  32479. .nf
  32480. .ft C
  32481. [\(aq192.168.0.1\(aq, \(aqfe80::\(aq]
  32482. .ft P
  32483. .fi
  32484. .UNINDENT
  32485. .UNINDENT
  32486. .SS \fBipv4\fP
  32487. .sp
  32488. New in version 2017.7.0.
  32489. .sp
  32490. From a list, returns only valid IPv4 entries. Supports the same options
  32491. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32492. .sp
  32493. Example:
  32494. .INDENT 0.0
  32495. .INDENT 3.5
  32496. .sp
  32497. .nf
  32498. .ft C
  32499. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipv4 }}
  32500. .ft P
  32501. .fi
  32502. .UNINDENT
  32503. .UNINDENT
  32504. .sp
  32505. Returns:
  32506. .INDENT 0.0
  32507. .INDENT 3.5
  32508. .sp
  32509. .nf
  32510. .ft C
  32511. [\(aq192.168.0.1\(aq]
  32512. .ft P
  32513. .fi
  32514. .UNINDENT
  32515. .UNINDENT
  32516. .SS \fBipv6\fP
  32517. .sp
  32518. New in version 2017.7.0.
  32519. .sp
  32520. From a list, returns only valid IPv6 entries. Supports the same options
  32521. as \fBis_ip\fP\&. The list can contains also IP interfaces/networks.
  32522. .sp
  32523. Example:
  32524. .INDENT 0.0
  32525. .INDENT 3.5
  32526. .sp
  32527. .nf
  32528. .ft C
  32529. {{ [\(aq192.168.0.1\(aq, \(aqfoo\(aq, \(aqbar\(aq, \(aqfe80::\(aq] | ipv6 }}
  32530. .ft P
  32531. .fi
  32532. .UNINDENT
  32533. .UNINDENT
  32534. .sp
  32535. Returns:
  32536. .INDENT 0.0
  32537. .INDENT 3.5
  32538. .sp
  32539. .nf
  32540. .ft C
  32541. [\(aqfe80::\(aq]
  32542. .ft P
  32543. .fi
  32544. .UNINDENT
  32545. .UNINDENT
  32546. .SS \fBnetwork_hosts\fP
  32547. .sp
  32548. New in version 2017.7.0.
  32549. .sp
  32550. Return the list of hosts within a networks. This utility works for both IPv4 and IPv6.
  32551. .sp
  32552. \fBNOTE:\fP
  32553. .INDENT 0.0
  32554. .INDENT 3.5
  32555. When running this command with a large IPv6 network, the command will
  32556. take a long time to gather all of the hosts.
  32557. .UNINDENT
  32558. .UNINDENT
  32559. .sp
  32560. Example:
  32561. .INDENT 0.0
  32562. .INDENT 3.5
  32563. .sp
  32564. .nf
  32565. .ft C
  32566. {{ \(aq192.168.0.1/30\(aq | network_hosts }}
  32567. .ft P
  32568. .fi
  32569. .UNINDENT
  32570. .UNINDENT
  32571. .sp
  32572. Returns:
  32573. .INDENT 0.0
  32574. .INDENT 3.5
  32575. .sp
  32576. .nf
  32577. .ft C
  32578. [\(aq192.168.0.1\(aq, \(aq192.168.0.2\(aq]
  32579. .ft P
  32580. .fi
  32581. .UNINDENT
  32582. .UNINDENT
  32583. .SS \fBnetwork_size\fP
  32584. .sp
  32585. New in version 2017.7.0.
  32586. .sp
  32587. Return the size of the network. This utility works for both IPv4 and IPv6.
  32588. .sp
  32589. Example:
  32590. .INDENT 0.0
  32591. .INDENT 3.5
  32592. .sp
  32593. .nf
  32594. .ft C
  32595. {{ \(aq192.168.0.1/8\(aq | network_size }}
  32596. .ft P
  32597. .fi
  32598. .UNINDENT
  32599. .UNINDENT
  32600. .sp
  32601. Returns:
  32602. .INDENT 0.0
  32603. .INDENT 3.5
  32604. .sp
  32605. .nf
  32606. .ft C
  32607. 16777216
  32608. .ft P
  32609. .fi
  32610. .UNINDENT
  32611. .UNINDENT
  32612. .SS \fBgen_mac\fP
  32613. .sp
  32614. New in version 2017.7.0.
  32615. .sp
  32616. Generates a MAC address with the defined OUI prefix.
  32617. .sp
  32618. Common prefixes:
  32619. .INDENT 0.0
  32620. .IP \(bu 2
  32621. \fB00:16:3E\fP \-\- Xen
  32622. .IP \(bu 2
  32623. \fB00:18:51\fP \-\- OpenVZ
  32624. .IP \(bu 2
  32625. \fB00:50:56\fP \-\- VMware (manually generated)
  32626. .IP \(bu 2
  32627. \fB52:54:00\fP \-\- QEMU/KVM
  32628. .IP \(bu 2
  32629. \fBAC:DE:48\fP \-\- PRIVATE
  32630. .UNINDENT
  32631. .sp
  32632. Example:
  32633. .INDENT 0.0
  32634. .INDENT 3.5
  32635. .sp
  32636. .nf
  32637. .ft C
  32638. {{ \(aq00:50\(aq | gen_mac }}
  32639. .ft P
  32640. .fi
  32641. .UNINDENT
  32642. .UNINDENT
  32643. .sp
  32644. Returns:
  32645. .INDENT 0.0
  32646. .INDENT 3.5
  32647. .sp
  32648. .nf
  32649. .ft C
  32650. 00:50:71:52:1C
  32651. .ft P
  32652. .fi
  32653. .UNINDENT
  32654. .UNINDENT
  32655. .SS \fBmac_str_to_bytes\fP
  32656. .sp
  32657. New in version 2017.7.0.
  32658. .sp
  32659. Converts a string representing a valid MAC address to bytes.
  32660. .sp
  32661. Example:
  32662. .INDENT 0.0
  32663. .INDENT 3.5
  32664. .sp
  32665. .nf
  32666. .ft C
  32667. {{ \(aq00:11:22:33:44:55\(aq | mac_str_to_bytes }}
  32668. .ft P
  32669. .fi
  32670. .UNINDENT
  32671. .UNINDENT
  32672. .sp
  32673. \fBNOTE:\fP
  32674. .INDENT 0.0
  32675. .INDENT 3.5
  32676. This option may have adverse effects when using the default renderer,
  32677. \fBjinja|yaml\fP\&. This is due to the fact that YAML requires proper handling
  32678. in regard to special characters. Please see the section on YAML ASCII
  32679. support in the YAML Idiosyncracies documentation for more information.
  32680. .UNINDENT
  32681. .UNINDENT
  32682. .SS \fBdns_check\fP
  32683. .sp
  32684. New in version 2017.7.0.
  32685. .sp
  32686. Return the ip resolved by dns, but do not exit on failure, only raise an
  32687. exception. Obeys system preference for IPv4/6 address resolution.
  32688. .sp
  32689. Example:
  32690. .INDENT 0.0
  32691. .INDENT 3.5
  32692. .sp
  32693. .nf
  32694. .ft C
  32695. {{ \(aqwww.google.com\(aq | dns_check(port=443) }}
  32696. .ft P
  32697. .fi
  32698. .UNINDENT
  32699. .UNINDENT
  32700. .sp
  32701. Returns:
  32702. .INDENT 0.0
  32703. .INDENT 3.5
  32704. .sp
  32705. .nf
  32706. .ft C
  32707. \(aq172.217.3.196\(aq
  32708. .ft P
  32709. .fi
  32710. .UNINDENT
  32711. .UNINDENT
  32712. .SS File filters
  32713. .SS \fBis_text_file\fP
  32714. .sp
  32715. New in version 2017.7.0.
  32716. .sp
  32717. Return if a file is text.
  32718. .sp
  32719. Uses heuristics to guess whether the given file is text or binary,
  32720. by reading a single block of bytes from the file.
  32721. If more than 30% of the chars in the block are non\-text, or there
  32722. are NUL (\(aqx00\(aq) bytes in the block, assume this is a binary file.
  32723. .sp
  32724. Example:
  32725. .INDENT 0.0
  32726. .INDENT 3.5
  32727. .sp
  32728. .nf
  32729. .ft C
  32730. {{ \(aq/etc/salt/master\(aq | is_text_file }}
  32731. .ft P
  32732. .fi
  32733. .UNINDENT
  32734. .UNINDENT
  32735. .sp
  32736. Returns:
  32737. .INDENT 0.0
  32738. .INDENT 3.5
  32739. .sp
  32740. .nf
  32741. .ft C
  32742. True
  32743. .ft P
  32744. .fi
  32745. .UNINDENT
  32746. .UNINDENT
  32747. .SS \fBis_binary_file\fP
  32748. .sp
  32749. New in version 2017.7.0.
  32750. .sp
  32751. Return if a file is binary.
  32752. .sp
  32753. Detects if the file is a binary, returns bool. Returns True if the file is
  32754. a bin, False if the file is not and None if the file is not available.
  32755. .sp
  32756. Example:
  32757. .INDENT 0.0
  32758. .INDENT 3.5
  32759. .sp
  32760. .nf
  32761. .ft C
  32762. {{ \(aq/etc/salt/master\(aq | is_binary_file }}
  32763. .ft P
  32764. .fi
  32765. .UNINDENT
  32766. .UNINDENT
  32767. .sp
  32768. Returns:
  32769. .INDENT 0.0
  32770. .INDENT 3.5
  32771. .sp
  32772. .nf
  32773. .ft C
  32774. False
  32775. .ft P
  32776. .fi
  32777. .UNINDENT
  32778. .UNINDENT
  32779. .SS \fBis_empty_file\fP
  32780. .sp
  32781. New in version 2017.7.0.
  32782. .sp
  32783. Return if a file is empty.
  32784. .sp
  32785. Example:
  32786. .INDENT 0.0
  32787. .INDENT 3.5
  32788. .sp
  32789. .nf
  32790. .ft C
  32791. {{ \(aq/etc/salt/master\(aq | is_empty_file }}
  32792. .ft P
  32793. .fi
  32794. .UNINDENT
  32795. .UNINDENT
  32796. .sp
  32797. Returns:
  32798. .INDENT 0.0
  32799. .INDENT 3.5
  32800. .sp
  32801. .nf
  32802. .ft C
  32803. False
  32804. .ft P
  32805. .fi
  32806. .UNINDENT
  32807. .UNINDENT
  32808. .SS \fBfile_hashsum\fP
  32809. .sp
  32810. New in version 2017.7.0.
  32811. .sp
  32812. Return the hashsum of a file.
  32813. .sp
  32814. Example:
  32815. .INDENT 0.0
  32816. .INDENT 3.5
  32817. .sp
  32818. .nf
  32819. .ft C
  32820. {{ \(aq/etc/salt/master\(aq | file_hashsum }}
  32821. .ft P
  32822. .fi
  32823. .UNINDENT
  32824. .UNINDENT
  32825. .sp
  32826. Returns:
  32827. .INDENT 0.0
  32828. .INDENT 3.5
  32829. .sp
  32830. .nf
  32831. .ft C
  32832. 02d4ef135514934759634f10079653252c7ad594ea97bd385480c532bca0fdda
  32833. .ft P
  32834. .fi
  32835. .UNINDENT
  32836. .UNINDENT
  32837. .SS \fBlist_files\fP
  32838. .sp
  32839. New in version 2017.7.0.
  32840. .sp
  32841. Return a recursive list of files under a specific path.
  32842. .sp
  32843. Example:
  32844. .INDENT 0.0
  32845. .INDENT 3.5
  32846. .sp
  32847. .nf
  32848. .ft C
  32849. {{ \(aq/etc/salt/\(aq | list_files | join(\(aq\en\(aq) }}
  32850. .ft P
  32851. .fi
  32852. .UNINDENT
  32853. .UNINDENT
  32854. .sp
  32855. Returns:
  32856. .INDENT 0.0
  32857. .INDENT 3.5
  32858. .sp
  32859. .nf
  32860. .ft C
  32861. /etc/salt/master
  32862. /etc/salt/proxy
  32863. /etc/salt/minion
  32864. /etc/salt/pillar/top.sls
  32865. /etc/salt/pillar/device1.sls
  32866. .ft P
  32867. .fi
  32868. .UNINDENT
  32869. .UNINDENT
  32870. .SS \fBpath_join\fP
  32871. .sp
  32872. New in version 2017.7.0.
  32873. .sp
  32874. Joins absolute paths.
  32875. .sp
  32876. Example:
  32877. .INDENT 0.0
  32878. .INDENT 3.5
  32879. .sp
  32880. .nf
  32881. .ft C
  32882. {{ \(aq/etc/salt/\(aq | path_join(\(aqpillar\(aq, \(aqdevice1.sls\(aq) }}
  32883. .ft P
  32884. .fi
  32885. .UNINDENT
  32886. .UNINDENT
  32887. .sp
  32888. Returns:
  32889. .INDENT 0.0
  32890. .INDENT 3.5
  32891. .sp
  32892. .nf
  32893. .ft C
  32894. /etc/salt/pillar/device1.sls
  32895. .ft P
  32896. .fi
  32897. .UNINDENT
  32898. .UNINDENT
  32899. .SS \fBwhich\fP
  32900. .sp
  32901. New in version 2017.7.0.
  32902. .sp
  32903. Python clone of /usr/bin/which.
  32904. .sp
  32905. Example:
  32906. .INDENT 0.0
  32907. .INDENT 3.5
  32908. .sp
  32909. .nf
  32910. .ft C
  32911. {{ \(aqsalt\-master\(aq | which }}
  32912. .ft P
  32913. .fi
  32914. .UNINDENT
  32915. .UNINDENT
  32916. .sp
  32917. Returns:
  32918. .INDENT 0.0
  32919. .INDENT 3.5
  32920. .sp
  32921. .nf
  32922. .ft C
  32923. /usr/local/salt/virtualenv/bin/salt\-master
  32924. .ft P
  32925. .fi
  32926. .UNINDENT
  32927. .UNINDENT
  32928. .SS Tests
  32929. .sp
  32930. Saltstack extends \fI\%builtin tests\fP with these custom tests:
  32931. .SS \fBequalto\fP
  32932. .sp
  32933. Tests the equality between two values.
  32934. .sp
  32935. Can be used in an \fBif\fP statement directly:
  32936. .INDENT 0.0
  32937. .INDENT 3.5
  32938. .sp
  32939. .nf
  32940. .ft C
  32941. {% if 1 is equalto(1) %}
  32942. < statements >
  32943. {% endif %}
  32944. .ft P
  32945. .fi
  32946. .UNINDENT
  32947. .UNINDENT
  32948. .sp
  32949. If clause evaluates to \fBTrue\fP
  32950. .sp
  32951. or with the \fBselectattr\fP filter:
  32952. .INDENT 0.0
  32953. .INDENT 3.5
  32954. .sp
  32955. .nf
  32956. .ft C
  32957. {{ [{\(aqvalue\(aq: 1}, {\(aqvalue\(aq: 2} , {\(aqvalue\(aq: 3}] | selectattr(\(aqvalue\(aq, \(aqequalto\(aq, 3) | list }}
  32958. .ft P
  32959. .fi
  32960. .UNINDENT
  32961. .UNINDENT
  32962. .sp
  32963. Returns:
  32964. .INDENT 0.0
  32965. .INDENT 3.5
  32966. .sp
  32967. .nf
  32968. .ft C
  32969. [{\(aqvalue\(aq: 3}]
  32970. .ft P
  32971. .fi
  32972. .UNINDENT
  32973. .UNINDENT
  32974. .SS \fBmatch\fP
  32975. .sp
  32976. Tests that a string matches the regex passed as an argument.
  32977. .sp
  32978. Can be used in a \fBif\fP statement directly:
  32979. .INDENT 0.0
  32980. .INDENT 3.5
  32981. .sp
  32982. .nf
  32983. .ft C
  32984. {% if \(aqa\(aq is match(\(aq[a\-b]\(aq) %}
  32985. < statements >
  32986. {% endif %}
  32987. .ft P
  32988. .fi
  32989. .UNINDENT
  32990. .UNINDENT
  32991. .sp
  32992. If clause evaluates to \fBTrue\fP
  32993. .sp
  32994. or with the \fBselectattr\fP filter:
  32995. .INDENT 0.0
  32996. .INDENT 3.5
  32997. .sp
  32998. .nf
  32999. .ft C
  33000. {{ [{\(aqvalue\(aq: \(aqa\(aq}, {\(aqvalue\(aq: \(aqb\(aq}, {\(aqvalue\(aq: \(aqc\(aq}] | selectattr(\(aqvalue\(aq, \(aqmatch\(aq, \(aq[b\-e]\(aq) | list }}
  33001. .ft P
  33002. .fi
  33003. .UNINDENT
  33004. .UNINDENT
  33005. .sp
  33006. Returns:
  33007. .INDENT 0.0
  33008. .INDENT 3.5
  33009. .sp
  33010. .nf
  33011. .ft C
  33012. [{\(aqvalue\(aq: \(aqb\(aq}, {\(aqvalue\(aq: \(aqc\(aq}]
  33013. .ft P
  33014. .fi
  33015. .UNINDENT
  33016. .UNINDENT
  33017. .sp
  33018. Test supports additional optional arguments: \fBignorecase\fP, \fBmultiline\fP
  33019. .SS Escape filters
  33020. .SS \fBregex_escape\fP
  33021. .sp
  33022. New in version 2017.7.0.
  33023. .sp
  33024. Allows escaping of strings so they can be interpreted literally by another function.
  33025. .sp
  33026. Example:
  33027. .INDENT 0.0
  33028. .INDENT 3.5
  33029. .sp
  33030. .nf
  33031. .ft C
  33032. regex_escape = {{ \(aqhttps://example.com?foo=bar%20baz\(aq | regex_escape }}
  33033. .ft P
  33034. .fi
  33035. .UNINDENT
  33036. .UNINDENT
  33037. .sp
  33038. will be rendered as:
  33039. .INDENT 0.0
  33040. .INDENT 3.5
  33041. .sp
  33042. .nf
  33043. .ft C
  33044. regex_escape = https\e:\e/\e/example\e.com\e?foo\e=bar\e%20baz
  33045. .ft P
  33046. .fi
  33047. .UNINDENT
  33048. .UNINDENT
  33049. .SS Set Theory Filters
  33050. .SS \fBunique\fP
  33051. .sp
  33052. New in version 2017.7.0.
  33053. .sp
  33054. Performs set math using Jinja filters.
  33055. .sp
  33056. Example:
  33057. .INDENT 0.0
  33058. .INDENT 3.5
  33059. .sp
  33060. .nf
  33061. .ft C
  33062. unique = {{ [\(aqfoo\(aq, \(aqfoo\(aq, \(aqbar\(aq] | unique }}
  33063. .ft P
  33064. .fi
  33065. .UNINDENT
  33066. .UNINDENT
  33067. .sp
  33068. will be rendered as:
  33069. .INDENT 0.0
  33070. .INDENT 3.5
  33071. .sp
  33072. .nf
  33073. .ft C
  33074. unique = [\(aqfoo\(aq, \(aqbar\(aq]
  33075. .ft P
  33076. .fi
  33077. .UNINDENT
  33078. .UNINDENT
  33079. .SS Jinja in Files
  33080. .sp
  33081. \fI\%Jinja\fP can be used in the same way in managed files:
  33082. .INDENT 0.0
  33083. .INDENT 3.5
  33084. .sp
  33085. .nf
  33086. .ft C
  33087. # redis.sls
  33088. /etc/redis/redis.conf:
  33089. file.managed:
  33090. \- source: salt://redis.conf
  33091. \- template: jinja
  33092. \- context:
  33093. bind: 127.0.0.1
  33094. .ft P
  33095. .fi
  33096. .UNINDENT
  33097. .UNINDENT
  33098. .INDENT 0.0
  33099. .INDENT 3.5
  33100. .sp
  33101. .nf
  33102. .ft C
  33103. # lib.sls
  33104. {% set port = 6379 %}
  33105. .ft P
  33106. .fi
  33107. .UNINDENT
  33108. .UNINDENT
  33109. .INDENT 0.0
  33110. .INDENT 3.5
  33111. .sp
  33112. .nf
  33113. .ft C
  33114. # redis.conf
  33115. {% from \(aqlib.sls\(aq import port with context %}
  33116. port {{ port }}
  33117. bind {{ bind }}
  33118. .ft P
  33119. .fi
  33120. .UNINDENT
  33121. .UNINDENT
  33122. .sp
  33123. As an example, configuration was pulled from the file context and from an
  33124. external template file.
  33125. .sp
  33126. \fBNOTE:\fP
  33127. .INDENT 0.0
  33128. .INDENT 3.5
  33129. Macros and variables can be shared across templates. They should not be
  33130. starting with one or more underscores, and should be managed by one of the
  33131. following tags: \fImacro\fP, \fIset\fP, \fIload_yaml\fP, \fIload_json\fP, \fIimport_yaml\fP and
  33132. \fIimport_json\fP\&.
  33133. .UNINDENT
  33134. .UNINDENT
  33135. .SS Escaping Jinja
  33136. .sp
  33137. Occasionally, it may be necessary to escape Jinja syntax. There are two ways
  33138. to do this in Jinja. One is escaping individual variables or strings and the
  33139. other is to escape entire blocks.
  33140. .sp
  33141. To escape a string commonly used in Jinja syntax such as \fB{{\fP, you can use the
  33142. following syntax:
  33143. .INDENT 0.0
  33144. .INDENT 3.5
  33145. .sp
  33146. .nf
  33147. .ft C
  33148. {{ \(aq{{\(aq }}
  33149. .ft P
  33150. .fi
  33151. .UNINDENT
  33152. .UNINDENT
  33153. .sp
  33154. For larger blocks that contain Jinja syntax that needs to be escaped, you can use
  33155. raw blocks:
  33156. .INDENT 0.0
  33157. .INDENT 3.5
  33158. .sp
  33159. .nf
  33160. .ft C
  33161. {% raw %}
  33162. some text that contains jinja characters that need to be escaped
  33163. {% endraw %}
  33164. .ft P
  33165. .fi
  33166. .UNINDENT
  33167. .UNINDENT
  33168. .sp
  33169. See the \fI\%Escaping\fP section of Jinja\(aqs documentation to learn more.
  33170. .sp
  33171. A real\-word example of needing to use raw tags to escape a larger block of code
  33172. is when using \fBfile.managed\fP with the \fBcontents_pillar\fP option to manage
  33173. files that contain something like consul\-template, which shares a syntax subset
  33174. with Jinja. Raw blocks are necessary here because the Jinja in the pillar would
  33175. be rendered before the file.managed is ever called, so the Jinja syntax must be
  33176. escaped:
  33177. .INDENT 0.0
  33178. .INDENT 3.5
  33179. .sp
  33180. .nf
  33181. .ft C
  33182. {% raw %}
  33183. \- contents_pillar: |
  33184. job "example\-job" {
  33185. <snipped>
  33186. task "example" {
  33187. driver = "docker"
  33188. config {
  33189. image = "docker\-registry.service.consul:5000/example\-job:{{key "nomad/jobs/example\-job/version"}}"
  33190. <snipped>
  33191. {% endraw %}
  33192. .ft P
  33193. .fi
  33194. .UNINDENT
  33195. .UNINDENT
  33196. .SS Calling Salt Functions
  33197. .sp
  33198. The Jinja renderer provides a shorthand lookup syntax for the \fBsalt\fP
  33199. dictionary of execution function\&.
  33200. .sp
  33201. New in version 2014.7.0.
  33202. .INDENT 0.0
  33203. .INDENT 3.5
  33204. .sp
  33205. .nf
  33206. .ft C
  33207. # The following two function calls are equivalent.
  33208. {{ salt[\(aqcmd.run\(aq](\(aqwhoami\(aq) }}
  33209. {{ salt.cmd.run(\(aqwhoami\(aq) }}
  33210. .ft P
  33211. .fi
  33212. .UNINDENT
  33213. .UNINDENT
  33214. .SS Debugging
  33215. .sp
  33216. The \fBshow_full_context\fP function can be used to output all variables present
  33217. in the current Jinja context.
  33218. .sp
  33219. New in version 2014.7.0.
  33220. .INDENT 0.0
  33221. .INDENT 3.5
  33222. .sp
  33223. .nf
  33224. .ft C
  33225. Context is: {{ show_full_context()|yaml(False) }}
  33226. .ft P
  33227. .fi
  33228. .UNINDENT
  33229. .UNINDENT
  33230. .SS Logs
  33231. .sp
  33232. New in version 2017.7.0.
  33233. .sp
  33234. Yes, in Salt, one is able to debug a complex Jinja template using the logs.
  33235. For example, making the call:
  33236. .INDENT 0.0
  33237. .INDENT 3.5
  33238. .sp
  33239. .nf
  33240. .ft C
  33241. {%\- do salt.log.error(\(aqtesting jinja logging\(aq) \-%}
  33242. .ft P
  33243. .fi
  33244. .UNINDENT
  33245. .UNINDENT
  33246. .sp
  33247. Will insert the following message in the minion logs:
  33248. .INDENT 0.0
  33249. .INDENT 3.5
  33250. .sp
  33251. .nf
  33252. .ft C
  33253. 2017\-02\-01 01:24:40,728 [salt.module.logmod][ERROR ][3779] testing jinja logging
  33254. .ft P
  33255. .fi
  33256. .UNINDENT
  33257. .UNINDENT
  33258. .SS Python Methods
  33259. .sp
  33260. A powerful feature of jinja that is only hinted at in the official jinja
  33261. documentation is that you can use the native python methods of the
  33262. variable type. Here is the python documentation for \fI\%string methods\fP\&.
  33263. .INDENT 0.0
  33264. .INDENT 3.5
  33265. .sp
  33266. .nf
  33267. .ft C
  33268. {% set hostname,domain = grains.id.partition(\(aq.\(aq)[::2] %}{{ hostname }}
  33269. .ft P
  33270. .fi
  33271. .UNINDENT
  33272. .UNINDENT
  33273. .INDENT 0.0
  33274. .INDENT 3.5
  33275. .sp
  33276. .nf
  33277. .ft C
  33278. {% set strings = grains.id.split(\(aq\-\(aq) %}{{ strings[0] }}
  33279. .ft P
  33280. .fi
  33281. .UNINDENT
  33282. .UNINDENT
  33283. .SS Custom Execution Modules
  33284. .sp
  33285. Custom execution modules can be used to supplement or replace complex Jinja. Many
  33286. tasks that require complex looping and logic are trivial when using Python
  33287. in a Salt execution module. Salt execution modules are easy to write and
  33288. distribute to Salt minions.
  33289. .sp
  33290. Functions in custom execution modules are available in the Salt execution
  33291. module dictionary just like the built\-in execution modules:
  33292. .INDENT 0.0
  33293. .INDENT 3.5
  33294. .sp
  33295. .nf
  33296. .ft C
  33297. {{ salt[\(aqmy_custom_module.my_custom_function\(aq]() }}
  33298. .ft P
  33299. .fi
  33300. .UNINDENT
  33301. .UNINDENT
  33302. .INDENT 0.0
  33303. .IP \(bu 2
  33304. How to Convert Jinja Logic to an Execution Module
  33305. .IP \(bu 2
  33306. Writing Execution Modules
  33307. .UNINDENT
  33308. .SS Custom Jinja filters
  33309. .sp
  33310. Given that all execution modules are available in the Jinja template,
  33311. one can easily define a custom module as in the previous paragraph
  33312. and use it as a Jinja filter.
  33313. However, please note that it will not be accessible through the pipe.
  33314. .sp
  33315. For example, instead of:
  33316. .INDENT 0.0
  33317. .INDENT 3.5
  33318. .sp
  33319. .nf
  33320. .ft C
  33321. {{ my_variable | my_jinja_filter }}
  33322. .ft P
  33323. .fi
  33324. .UNINDENT
  33325. .UNINDENT
  33326. .sp
  33327. The user will need to define \fBmy_jinja_filter\fP function under an extension
  33328. module, say \fBmy_filters\fP and use as:
  33329. .INDENT 0.0
  33330. .INDENT 3.5
  33331. .sp
  33332. .nf
  33333. .ft C
  33334. {{ salt.my_filters.my_jinja_filter(my_variable) }}
  33335. .ft P
  33336. .fi
  33337. .UNINDENT
  33338. .UNINDENT
  33339. .sp
  33340. The greatest benefit is that you are able to access thousands of existing functions, e.g.:
  33341. .INDENT 0.0
  33342. .IP \(bu 2
  33343. get the DNS AAAA records for a specific address using the \fBdnsutil\fP:
  33344. .INDENT 2.0
  33345. .INDENT 3.5
  33346. .sp
  33347. .nf
  33348. .ft C
  33349. {{ salt.dnsutil.AAAA(\(aqwww.google.com\(aq) }}
  33350. .ft P
  33351. .fi
  33352. .UNINDENT
  33353. .UNINDENT
  33354. .IP \(bu 2
  33355. retrieve a specific field value from a \fBRedis\fP hash:
  33356. .INDENT 2.0
  33357. .INDENT 3.5
  33358. .sp
  33359. .nf
  33360. .ft C
  33361. {{ salt.redis.hget(\(aqfoo_hash\(aq, \(aqbar_field\(aq) }}
  33362. .ft P
  33363. .fi
  33364. .UNINDENT
  33365. .UNINDENT
  33366. .IP \(bu 2
  33367. get the routes to \fB0.0.0.0/0\fP using the \fBNAPALM route\fP:
  33368. .INDENT 2.0
  33369. .INDENT 3.5
  33370. .sp
  33371. .nf
  33372. .ft C
  33373. {{ salt.route.show(\(aq0.0.0.0/0\(aq) }}
  33374. .ft P
  33375. .fi
  33376. .UNINDENT
  33377. .UNINDENT
  33378. .UNINDENT
  33379. .SS Tutorials Index
  33380. .SS Autoaccept minions from Grains
  33381. .sp
  33382. New in version 2018.3.0.
  33383. .sp
  33384. To automatically accept minions based on certain characteristics, e.g. the \fBuuid\fP
  33385. you can specify certain grain values on the salt master. Minions with matching grains
  33386. will have their keys automatically accepted.
  33387. .INDENT 0.0
  33388. .IP 1. 3
  33389. Configure the autosign_grains_dir in the master config file:
  33390. .UNINDENT
  33391. .INDENT 0.0
  33392. .INDENT 3.5
  33393. .sp
  33394. .nf
  33395. .ft C
  33396. autosign_grains_dir: /etc/salt/autosign_grains
  33397. .ft P
  33398. .fi
  33399. .UNINDENT
  33400. .UNINDENT
  33401. .INDENT 0.0
  33402. .IP 2. 3
  33403. Configure the grain values to be accepted
  33404. .UNINDENT
  33405. .sp
  33406. Place a file named like the grain in the autosign_grains_dir and write the values that
  33407. should be accepted automatically inside that file. For example to automatically
  33408. accept minions based on their \fBuuid\fP create a file named \fB/etc/salt/autosign_grains/uuid\fP:
  33409. .INDENT 0.0
  33410. .INDENT 3.5
  33411. .sp
  33412. .nf
  33413. .ft C
  33414. 8f7d68e2\-30c5\-40c6\-b84a\-df7e978a03ee
  33415. 1d3c5473\-1fbc\-479e\-b0c7\-877705a0730f
  33416. .ft P
  33417. .fi
  33418. .UNINDENT
  33419. .UNINDENT
  33420. .sp
  33421. The master is now setup to accept minions with either of the two specified uuids.
  33422. Multiple values must always be written into separate lines.
  33423. Lines starting with a \fB#\fP are ignored.
  33424. .INDENT 0.0
  33425. .IP 3. 3
  33426. Configure the minion to send the specific grains to the master in the minion config file:
  33427. .UNINDENT
  33428. .INDENT 0.0
  33429. .INDENT 3.5
  33430. .sp
  33431. .nf
  33432. .ft C
  33433. autosign_grains:
  33434. \- uuid
  33435. .ft P
  33436. .fi
  33437. .UNINDENT
  33438. .UNINDENT
  33439. .sp
  33440. Now you should be able to start salt\-minion and run \fBsalt\-call
  33441. state.apply\fP or any other salt commands that require master authentication.
  33442. .SS Salt as a Cloud Controller
  33443. .sp
  33444. In Salt 0.14.0, an advanced cloud control system were introduced, allow
  33445. private cloud vms to be managed directly with Salt. This system is generally
  33446. referred to as \fBSalt Virt\fP\&.
  33447. .sp
  33448. The Salt Virt system already exists and is installed within Salt itself, this
  33449. means that besides setting up Salt, no additional salt code needs to be
  33450. deployed.
  33451. .sp
  33452. \fBNOTE:\fP
  33453. .INDENT 0.0
  33454. .INDENT 3.5
  33455. The \fBlibvirt\fP python module and the \fBcerttool\fP binary are required.
  33456. .UNINDENT
  33457. .UNINDENT
  33458. .sp
  33459. The main goal of Salt Virt is to facilitate a very fast and simple cloud. The
  33460. cloud that can scale and is fully featured. Salt Virt comes with the
  33461. ability to set up and manage complex virtual machine networking, powerful
  33462. image and disk management, as well as virtual machine migration with and without
  33463. shared storage.
  33464. .sp
  33465. This means that Salt Virt can be used to create a cloud from a blade center
  33466. and a SAN, but can also create a cloud out of a swarm of Linux Desktops
  33467. without a single shared storage system. Salt Virt can make clouds from
  33468. truly commodity hardware, but can also stand up the power of specialized
  33469. hardware as well.
  33470. .SS Setting up Hypervisors
  33471. .sp
  33472. The first step to set up the hypervisors involves getting the correct software
  33473. installed and setting up the hypervisor network interfaces.
  33474. .SS Installing Hypervisor Software
  33475. .sp
  33476. Salt Virt is made to be hypervisor agnostic but currently the only fully
  33477. implemented hypervisor is KVM via libvirt.
  33478. .sp
  33479. The required software for a hypervisor is libvirt and kvm. For advanced
  33480. features install libguestfs or qemu\-nbd.
  33481. .sp
  33482. \fBNOTE:\fP
  33483. .INDENT 0.0
  33484. .INDENT 3.5
  33485. Libguestfs and qemu\-nbd allow for virtual machine images to be mounted
  33486. before startup and get pre\-seeded with configurations and a salt minion
  33487. .UNINDENT
  33488. .UNINDENT
  33489. .sp
  33490. This sls will set up the needed software for a hypervisor, and run the routines
  33491. to set up the libvirt pki keys.
  33492. .sp
  33493. \fBNOTE:\fP
  33494. .INDENT 0.0
  33495. .INDENT 3.5
  33496. Package names and setup used is Red Hat specific, different package names
  33497. will be required for different platforms
  33498. .UNINDENT
  33499. .UNINDENT
  33500. .INDENT 0.0
  33501. .INDENT 3.5
  33502. .sp
  33503. .nf
  33504. .ft C
  33505. libvirt:
  33506. pkg.installed: []
  33507. file.managed:
  33508. \- name: /etc/sysconfig/libvirtd
  33509. \- contents: \(aqLIBVIRTD_ARGS="\-\-listen"\(aq
  33510. \- require:
  33511. \- pkg: libvirt
  33512. virt.keys:
  33513. \- require:
  33514. \- pkg: libvirt
  33515. service.running:
  33516. \- name: libvirtd
  33517. \- require:
  33518. \- pkg: libvirt
  33519. \- network: br0
  33520. \- libvirt: libvirt
  33521. \- watch:
  33522. \- file: libvirt
  33523. libvirt\-python:
  33524. pkg.installed: []
  33525. libguestfs:
  33526. pkg.installed:
  33527. \- pkgs:
  33528. \- libguestfs
  33529. \- libguestfs\-tools
  33530. .ft P
  33531. .fi
  33532. .UNINDENT
  33533. .UNINDENT
  33534. .SS Hypervisor Network Setup
  33535. .sp
  33536. The hypervisors will need to be running a network bridge to serve up network
  33537. devices for virtual machines, this formula will set up a standard bridge on
  33538. a hypervisor connecting the bridge to eth0:
  33539. .INDENT 0.0
  33540. .INDENT 3.5
  33541. .sp
  33542. .nf
  33543. .ft C
  33544. eth0:
  33545. network.managed:
  33546. \- enabled: True
  33547. \- type: eth
  33548. \- bridge: br0
  33549. br0:
  33550. network.managed:
  33551. \- enabled: True
  33552. \- type: bridge
  33553. \- proto: dhcp
  33554. \- require:
  33555. \- network: eth0
  33556. .ft P
  33557. .fi
  33558. .UNINDENT
  33559. .UNINDENT
  33560. .SS Virtual Machine Network Setup
  33561. .sp
  33562. Salt Virt comes with a system to model the network interfaces used by the
  33563. deployed virtual machines; by default a single interface is created for the
  33564. deployed virtual machine and is bridged to \fBbr0\fP\&. To get going with the
  33565. default networking setup, ensure that the bridge interface named \fBbr0\fP exists
  33566. on the hypervisor and is bridged to an active network device.
  33567. .sp
  33568. \fBNOTE:\fP
  33569. .INDENT 0.0
  33570. .INDENT 3.5
  33571. To use more advanced networking in Salt Virt, read the \fISalt Virt
  33572. Networking\fP document:
  33573. .sp
  33574. Salt Virt Networking
  33575. .UNINDENT
  33576. .UNINDENT
  33577. .SS Libvirt State
  33578. .sp
  33579. One of the challenges of deploying a libvirt based cloud is the distribution
  33580. of libvirt certificates. These certificates allow for virtual machine
  33581. migration. Salt comes with a system used to auto deploy these certificates.
  33582. Salt manages the signing authority key and generates keys for libvirt clients
  33583. on the master, signs them with the certificate authority and uses pillar to
  33584. distribute them. This is managed via the \fBlibvirt\fP state. Simply execute this
  33585. formula on the minion to ensure that the certificate is in place and up to
  33586. date:
  33587. .sp
  33588. \fBNOTE:\fP
  33589. .INDENT 0.0
  33590. .INDENT 3.5
  33591. The above formula includes the calls needed to set up libvirt keys.
  33592. .UNINDENT
  33593. .UNINDENT
  33594. .INDENT 0.0
  33595. .INDENT 3.5
  33596. .sp
  33597. .nf
  33598. .ft C
  33599. libvirt_keys:
  33600. virt.keys
  33601. .ft P
  33602. .fi
  33603. .UNINDENT
  33604. .UNINDENT
  33605. .SS Getting Virtual Machine Images Ready
  33606. .sp
  33607. Salt Virt, requires that virtual machine images be provided as these are not
  33608. generated on the fly. Generating these virtual machine images differs greatly
  33609. based on the underlying platform.
  33610. .sp
  33611. Virtual machine images can be manually created using KVM and running through
  33612. the installer, but this process is not recommended since it is very manual and
  33613. prone to errors.
  33614. .sp
  33615. Virtual Machine generation applications are available for many platforms:
  33616. .INDENT 0.0
  33617. .TP
  33618. .B kiwi: (openSUSE, SLES, RHEL, CentOS)
  33619. \fI\%https://opensuse.github.io/kiwi/\fP
  33620. .TP
  33621. .B vm\-builder:
  33622. \fI\%https://wiki.debian.org/VMBuilder\fP
  33623. .sp
  33624. \fBSEE ALSO:\fP
  33625. .INDENT 7.0
  33626. .INDENT 3.5
  33627. \fI\%vmbuilder\-formula\fP
  33628. .UNINDENT
  33629. .UNINDENT
  33630. .UNINDENT
  33631. .sp
  33632. Once virtual machine images are available, the easiest way to make them
  33633. available to Salt Virt is to place them in the Salt file server. Just copy an
  33634. image into \fB/srv/salt\fP and it can now be used by Salt Virt.
  33635. .sp
  33636. For purposes of this demo, the file name \fBcentos.img\fP will be used.
  33637. .SS Existing Virtual Machine Images
  33638. .sp
  33639. Many existing Linux distributions distribute virtual machine images which
  33640. can be used with Salt Virt. Please be advised that NONE OF THESE IMAGES ARE
  33641. SUPPORTED BY SALTSTACK.
  33642. .SS CentOS
  33643. .sp
  33644. These images have been prepared for OpenNebula but should work without issue with
  33645. Salt Virt, only the raw qcow image file is needed:
  33646. \fI\%https://wiki.centos.org/Cloud/OpenNebula\fP
  33647. .SS Fedora Linux
  33648. .sp
  33649. Images for Fedora Linux can be found here:
  33650. \fI\%https://alt.fedoraproject.org/cloud\fP
  33651. .SS openSUSE
  33652. .sp
  33653. \fI\%https://download.opensuse.org/distribution/leap/15.1/jeos/openSUSE\-Leap\-15.1\-JeOS.x86_64\-15.1.0\-kvm\-and\-xen\-Current.qcow2.meta4\fP
  33654. .SS SUSE
  33655. .sp
  33656. \fI\%https://www.suse.com/products/server/jeos\fP
  33657. .SS Ubuntu Linux
  33658. .sp
  33659. Images for Ubuntu Linux can be found here:
  33660. \fI\%http://cloud\-images.ubuntu.com/\fP
  33661. .SS Using Salt Virt
  33662. .sp
  33663. With hypervisors set up and virtual machine images ready, Salt can start
  33664. issuing cloud commands using the \fIvirt runner\fP\&.
  33665. .sp
  33666. Start by running a Salt Virt hypervisor info command:
  33667. .INDENT 0.0
  33668. .INDENT 3.5
  33669. .sp
  33670. .nf
  33671. .ft C
  33672. salt\-run virt.host_info
  33673. .ft P
  33674. .fi
  33675. .UNINDENT
  33676. .UNINDENT
  33677. .sp
  33678. This will query the running hypervisor(s) for stats and display useful
  33679. information such as the number of cpus and amount of memory.
  33680. .sp
  33681. You can also list all VMs and their current states on all hypervisor
  33682. nodes:
  33683. .INDENT 0.0
  33684. .INDENT 3.5
  33685. .sp
  33686. .nf
  33687. .ft C
  33688. salt\-run virt.list
  33689. .ft P
  33690. .fi
  33691. .UNINDENT
  33692. .UNINDENT
  33693. .sp
  33694. Now that hypervisors are available a virtual machine can be provisioned.
  33695. The \fBvirt.init\fP routine will create a new virtual machine:
  33696. .INDENT 0.0
  33697. .INDENT 3.5
  33698. .sp
  33699. .nf
  33700. .ft C
  33701. salt\-run virt.init centos1 2 512 salt://centos.img
  33702. .ft P
  33703. .fi
  33704. .UNINDENT
  33705. .UNINDENT
  33706. .sp
  33707. The Salt Virt runner will now automatically select a hypervisor to deploy
  33708. the new virtual machine on. Using \fBsalt://\fP assumes that the CentOS virtual
  33709. machine image is located in the root of the file\-server on the master.
  33710. When images are cloned (i.e. copied locatlly after retrieval from the file server)
  33711. the destination directory on the hypervisor minion is determined by the \fBvirt:images\fP
  33712. config option; by default this is \fB/srv/salt\-images/\fP\&.
  33713. .sp
  33714. When a VM is initialized using \fBvirt.init\fP the image is copied to the hypervisor
  33715. using \fBcp.cache_file\fP and will be mounted and seeded with a minion. Seeding includes
  33716. setting pre\-authenticated keys on the new machine. A minion will only be installed if
  33717. one can not be found on the image using the default arguments to \fBseed.apply\fP\&.
  33718. .sp
  33719. \fBNOTE:\fP
  33720. .INDENT 0.0
  33721. .INDENT 3.5
  33722. The biggest bottleneck in starting VMs is when the Salt Minion needs to be
  33723. installed. Making sure that the source VM images already have Salt
  33724. installed will GREATLY speed up virtual machine deployment.
  33725. .UNINDENT
  33726. .UNINDENT
  33727. .sp
  33728. You can also deploy an image on a particular minion by directly calling the
  33729. \fIvirt\fP execution module with an absolute image path. This can be quite handy for testing:
  33730. .INDENT 0.0
  33731. .INDENT 3.5
  33732. .sp
  33733. .nf
  33734. .ft C
  33735. salt \(aqhypervisor*\(aq virt.init centos1 2 512 image=/var/lib/libvirt/images/centos.img
  33736. .ft P
  33737. .fi
  33738. .UNINDENT
  33739. .UNINDENT
  33740. .sp
  33741. Now that the new VM has been prepared, it can be seen via the \fBvirt.query\fP
  33742. command:
  33743. .INDENT 0.0
  33744. .INDENT 3.5
  33745. .sp
  33746. .nf
  33747. .ft C
  33748. salt\-run virt.query
  33749. .ft P
  33750. .fi
  33751. .UNINDENT
  33752. .UNINDENT
  33753. .sp
  33754. This command will return data about all of the hypervisors and respective
  33755. virtual machines.
  33756. .sp
  33757. Now that the new VM is booted it should have contacted the Salt Master, a
  33758. \fBtest.version\fP will reveal if the new VM is running.
  33759. .SS QEMU copy on write support
  33760. .sp
  33761. For fast image cloning you can use the \fI\%qcow\fP disk image format.
  33762. Pass the \fBenable_qcow\fP flag and a \fI\&.qcow2\fP image path to \fIvirt.init\fP:
  33763. .INDENT 0.0
  33764. .INDENT 3.5
  33765. .sp
  33766. .nf
  33767. .ft C
  33768. salt \(aqhypervisor*\(aq virt.init centos1 2 512 image=/var/lib/libvirt/images/centos.qcow2 enable_qcow=True start=False
  33769. .ft P
  33770. .fi
  33771. .UNINDENT
  33772. .UNINDENT
  33773. .sp
  33774. \fBNOTE:\fP
  33775. .INDENT 0.0
  33776. .INDENT 3.5
  33777. Beware that attempting to boot a qcow image too quickly after cloning
  33778. can result in a race condition where libvirt may try to boot the machine
  33779. before image seeding has completed. For that reason it is recommended to
  33780. also pass \fBstart=False\fP to \fBvirt.init\fP\&.
  33781. .sp
  33782. Also know that you \fBmust not\fP modify the original base image without
  33783. first making a copy and then \fIrebasing\fP all overlay images onto it.
  33784. See the \fBqemu\-img rebase\fP \fI\%usage docs\fP\&.
  33785. .UNINDENT
  33786. .UNINDENT
  33787. .SS Migrating Virtual Machines
  33788. .sp
  33789. Salt Virt comes with full support for virtual machine migration, and using
  33790. the libvirt state in the above formula makes migration possible.
  33791. .sp
  33792. A few things need to be available to support migration. Many operating systems
  33793. turn on firewalls when originally set up, the firewall needs to be opened up
  33794. to allow for libvirt and kvm to cross communicate and execution migration
  33795. routines. On Red Hat based hypervisors in particular port 16514 needs to be
  33796. opened on hypervisors:
  33797. .INDENT 0.0
  33798. .INDENT 3.5
  33799. .sp
  33800. .nf
  33801. .ft C
  33802. iptables \-A INPUT \-m state \-\-state NEW \-m tcp \-p tcp \-\-dport 16514 \-j ACCEPT
  33803. .ft P
  33804. .fi
  33805. .UNINDENT
  33806. .UNINDENT
  33807. .sp
  33808. \fBNOTE:\fP
  33809. .INDENT 0.0
  33810. .INDENT 3.5
  33811. More in\-depth information regarding distribution specific firewall settings can read in:
  33812. .sp
  33813. Opening the Firewall up for Salt
  33814. .UNINDENT
  33815. .UNINDENT
  33816. .sp
  33817. Salt also needs the \fBvirt:tunnel\fP option to be turned on.
  33818. This flag tells Salt to run migrations securely via the libvirt TLS tunnel and to
  33819. use port 16514. Without \fBvirt:tunnel\fP libvirt tries to bind to random ports when
  33820. running migrations.
  33821. .sp
  33822. To turn on \fBvirt:tunnel\fP simply apply it to the master config file:
  33823. .INDENT 0.0
  33824. .INDENT 3.5
  33825. .sp
  33826. .nf
  33827. .ft C
  33828. virt:
  33829. tunnel: True
  33830. .ft P
  33831. .fi
  33832. .UNINDENT
  33833. .UNINDENT
  33834. .sp
  33835. Once the master config has been updated, restart the master and send out a call
  33836. to the minions to refresh the pillar to pick up on the change:
  33837. .INDENT 0.0
  33838. .INDENT 3.5
  33839. .sp
  33840. .nf
  33841. .ft C
  33842. salt \e* saltutil.refresh_modules
  33843. .ft P
  33844. .fi
  33845. .UNINDENT
  33846. .UNINDENT
  33847. .sp
  33848. Now, migration routines can be run! To migrate a VM, simply run the Salt Virt
  33849. migrate routine:
  33850. .INDENT 0.0
  33851. .INDENT 3.5
  33852. .sp
  33853. .nf
  33854. .ft C
  33855. salt\-run virt.migrate centos <new hypervisor>
  33856. .ft P
  33857. .fi
  33858. .UNINDENT
  33859. .UNINDENT
  33860. .SS VNC Consoles
  33861. .sp
  33862. Although not enabled by default, Salt Virt can also set up VNC consoles allowing for remote visual
  33863. consoles to be opened up. When creating a new VM using \fBvirt.init\fP pass the \fBenable_vnc=True\fP
  33864. parameter to have a console configured for the new VM.
  33865. .sp
  33866. The information from a \fBvirt.query\fP routine will display the vnc console port for the specific vms:
  33867. .INDENT 0.0
  33868. .INDENT 3.5
  33869. .sp
  33870. .nf
  33871. .ft C
  33872. centos
  33873. CPU: 2
  33874. Memory: 524288
  33875. State: running
  33876. Graphics: vnc \- hyper6:5900
  33877. Disk \- vda:
  33878. Size: 2.0G
  33879. File: /srv/salt\-images/ubuntu2/system.qcow2
  33880. File Format: qcow2
  33881. Nic \- ac:de:48:98:08:77:
  33882. Source: br0
  33883. Type: bridge
  33884. .ft P
  33885. .fi
  33886. .UNINDENT
  33887. .UNINDENT
  33888. .sp
  33889. The line \fIGraphics: vnc \- hyper6:5900\fP holds the key. First the port named,
  33890. in this case 5900, will need to be available in the hypervisor\(aqs firewall.
  33891. Once the port is open, then the console can be easily opened via vncviewer:
  33892. .INDENT 0.0
  33893. .INDENT 3.5
  33894. .sp
  33895. .nf
  33896. .ft C
  33897. vncviewer hyper6:5900
  33898. .ft P
  33899. .fi
  33900. .UNINDENT
  33901. .UNINDENT
  33902. .sp
  33903. By default there is no VNC security set up on these ports, which suggests that
  33904. keeping them firewalled and mandating that SSH tunnels be used to access these
  33905. VNC interfaces. Keep in mind that activity on a VNC interface that is accessed
  33906. can be viewed by any other user that accesses that same VNC interface, and any other
  33907. user logging in can also operate with the logged in user on the virtual
  33908. machine.
  33909. .SS Conclusion
  33910. .sp
  33911. Now with Salt Virt running, new hypervisors can be seamlessly added just by
  33912. running the above states on new bare metal machines, and these machines will be
  33913. instantly available to Salt Virt.
  33914. .SS Running Salt States and Commands in Docker Containers
  33915. .sp
  33916. The 2016.11.0 release of Salt introduces the ability to execute Salt States
  33917. and Salt remote execution commands directly inside of Docker containers.
  33918. .sp
  33919. This addition makes it possible to not only deploy fresh containers using
  33920. Salt States. This also allows for running containers to be audited and
  33921. modified using Salt, but without running a Salt Minion inside the container.
  33922. Some of the applications include security audits of running containers as
  33923. well as gathering operating data from containers.
  33924. .sp
  33925. This new feature is simple and straightforward, and can be used via a running
  33926. Salt Minion, the Salt Call command, or via Salt SSH. For this tutorial we will
  33927. use the \fIsalt\-call\fP command, but like all salt commands these calls are
  33928. directly translatable to \fIsalt\fP and \fIsalt\-ssh\fP\&.
  33929. .SS Step 1 \- Install Docker
  33930. .sp
  33931. Since setting up Docker is well covered in the Docker documentation we will
  33932. make no such effort to describe it here. Please see the Docker Installation
  33933. Documentation for installing and setting up Docker:
  33934. \fI\%https://docs.docker.com/engine/installation/\fP
  33935. .sp
  33936. The Docker integration also requires that the \fIdocker\-py\fP library is installed.
  33937. This can easily be done using pip or via your system package manager:
  33938. .INDENT 0.0
  33939. .INDENT 3.5
  33940. .sp
  33941. .nf
  33942. .ft C
  33943. pip install docker\-py
  33944. .ft P
  33945. .fi
  33946. .UNINDENT
  33947. .UNINDENT
  33948. .SS Step 2 \- Install Salt
  33949. .sp
  33950. For this tutorial we will be using Salt Call, which is available in the
  33951. \fIsalt\-minion\fP package, please follow the Salt Installation docs found here:
  33952. \fI\%https://repo.saltstack.com/\fP
  33953. .SS Step 3 \- Create With Salt States
  33954. .sp
  33955. Next some Salt States are needed, for this example a very basic state which
  33956. installs \fIvim\fP is used, but anything Salt States can do can be done here,
  33957. please see the Salt States Introduction Tutorial to learn more about Salt
  33958. States:
  33959. \fI\%https://docs.saltstack.com/en/stage/getstarted/config/\fP
  33960. .sp
  33961. For this tutorial, simply create a small state file in \fI/srv/salt/vim.sls\fP:
  33962. .INDENT 0.0
  33963. .INDENT 3.5
  33964. .sp
  33965. .nf
  33966. .ft C
  33967. vim:
  33968. pkg.installed
  33969. .ft P
  33970. .fi
  33971. .UNINDENT
  33972. .UNINDENT
  33973. .sp
  33974. \fBNOTE:\fP
  33975. .INDENT 0.0
  33976. .INDENT 3.5
  33977. The base image you choose will need to have python 2.6 or 2.7 installed.
  33978. We are hoping to resolve this constraint in a future release.
  33979. .sp
  33980. If \fIbase\fP is omitted the default image used is a minimal openSUSE
  33981. image with Python support, maintained by SUSE
  33982. .UNINDENT
  33983. .UNINDENT
  33984. .sp
  33985. Next run the \fIdocker.sls_build\fP command:
  33986. .INDENT 0.0
  33987. .INDENT 3.5
  33988. .sp
  33989. .nf
  33990. .ft C
  33991. salt\-call \-\-local dockerng.sls_build test base=my_base_image mods=vim
  33992. .ft P
  33993. .fi
  33994. .UNINDENT
  33995. .UNINDENT
  33996. .sp
  33997. Now we have a fresh image called \fItest\fP to work with and vim has been
  33998. installed.
  33999. .SS Step 4 \- Running Commands Inside the Container
  34000. .sp
  34001. Salt can now run remote execution functions inside the container with another
  34002. simple \fIsalt\-call\fP command:
  34003. .INDENT 0.0
  34004. .INDENT 3.5
  34005. .sp
  34006. .nf
  34007. .ft C
  34008. salt\-call \-\-local dockerng.call test test.version
  34009. salt\-call \-\-local dockerng.call test network.interfaces
  34010. salt\-call \-\-local dockerng.call test disk.usage
  34011. salt\-call \-\-local dockerng.call test pkg.list_pkgs
  34012. salt\-call \-\-local dockerng.call test service.running httpd
  34013. salt\-call \-\-local dockerng.call test cmd.run \(aqls \-l /etc\(aq
  34014. .ft P
  34015. .fi
  34016. .UNINDENT
  34017. .UNINDENT
  34018. .SS Automatic Updates / Frozen Deployments
  34019. .sp
  34020. New in version 0.10.3.d.
  34021. .sp
  34022. Salt has support for the
  34023. \fI\%Esky\fP application freezing and update
  34024. tool. This tool allows one to build a complete zipfile out of the salt scripts
  34025. and all their dependencies \- including shared objects / DLLs.
  34026. .SS Getting Started
  34027. .sp
  34028. To build frozen applications, suitable build environment will be needed for
  34029. each platform. You should probably set up a virtualenv in order to limit the
  34030. scope of Q/A.
  34031. .sp
  34032. This process does work on Windows. Directions are available at
  34033. \fI\%https://github.com/saltstack/salt\-windows\-install\fP for details on
  34034. installing Salt in Windows. Only the 32\-bit Python and dependencies have been
  34035. tested, but they have been tested on 64\-bit Windows.
  34036. .sp
  34037. Install \fBbbfreeze\fP, and then \fBesky\fP from PyPI in order to enable the
  34038. \fBbdist_esky\fP command in \fBsetup.py\fP\&. Salt itself must also be installed, in
  34039. addition to its dependencies.
  34040. .SS Building and Freezing
  34041. .sp
  34042. Once you have your tools installed and the environment configured, use
  34043. \fBsetup.py\fP to prepare the distribution files.
  34044. .INDENT 0.0
  34045. .INDENT 3.5
  34046. .sp
  34047. .nf
  34048. .ft C
  34049. python setup.py sdist
  34050. python setup.py bdist
  34051. .ft P
  34052. .fi
  34053. .UNINDENT
  34054. .UNINDENT
  34055. .sp
  34056. Once the distribution files are in place, Esky can be used traverse the module
  34057. tree and pack all the scripts up into a redistributable.
  34058. .INDENT 0.0
  34059. .INDENT 3.5
  34060. .sp
  34061. .nf
  34062. .ft C
  34063. python setup.py bdist_esky
  34064. .ft P
  34065. .fi
  34066. .UNINDENT
  34067. .UNINDENT
  34068. .sp
  34069. There will be an appropriately versioned \fBsalt\-VERSION.zip\fP in \fBdist/\fP if
  34070. everything went smoothly.
  34071. .SS Windows
  34072. .sp
  34073. \fBC:\ePython27\elib\esite\-packages\ezmq\fP will need to be added to the PATH
  34074. variable. This helps bbfreeze find the zmq DLL so it can pack it up.
  34075. .SS Using the Frozen Build
  34076. .sp
  34077. Unpack the zip file in the desired install location. Scripts like
  34078. \fBsalt\-minion\fP and \fBsalt\-call\fP will be in the root of the zip file. The
  34079. associated libraries and bootstrapping will be in the directories at the same
  34080. level. (Check the \fI\%Esky\fP documentation
  34081. for more information)
  34082. .sp
  34083. To support updating your minions in the wild, put the builds on a web server
  34084. that the minions can reach. \fBsalt.modules.saltutil.update()\fP will
  34085. trigger an update and (optionally) a restart of the minion service under the
  34086. new version.
  34087. .SS Troubleshooting
  34088. .SS A Windows minion isn\(aqt responding
  34089. .sp
  34090. The process dispatch on Windows is slower than it is on *nix. It may be
  34091. necessary to add \(aq\-t 15\(aq to salt commands to give minions plenty of time to
  34092. return.
  34093. .SS Windows and the Visual Studio Redist
  34094. .sp
  34095. The Visual C++ 2008 32\-bit redistributable will need to be installed on all
  34096. Windows minions. Esky has an option to pack the library into the zipfile,
  34097. but OpenSSL does not seem to acknowledge the new location. If a
  34098. \fBno OPENSSL_Applink\fP error appears on the console when trying to start a
  34099. frozen minion, the redistributable is not installed.
  34100. .SS Mixed Linux environments and Yum
  34101. .sp
  34102. The Yum Python module doesn\(aqt appear to be available on any of the standard
  34103. Python package mirrors. If RHEL/CentOS systems need to be supported, the frozen
  34104. build should created on that platform to support all the Linux nodes. Remember
  34105. to build the virtualenv with \fB\-\-system\-site\-packages\fP so that the \fByum\fP
  34106. module is included.
  34107. .SS Automatic (Python) module discovery
  34108. .sp
  34109. Automatic (Python) module discovery does not work with the late\-loaded scheme
  34110. that Salt uses for (Salt) modules. Any misbehaving modules will need to be
  34111. explicitly added to the \fBfreezer_includes\fP in Salt\(aqs \fBsetup.py\fP\&. Always
  34112. check the zipped application to make sure that the necessary modules were
  34113. included.
  34114. .SS ESXi Proxy Minion
  34115. .sp
  34116. New in version 2015.8.4.
  34117. .sp
  34118. \fBNOTE:\fP
  34119. .INDENT 0.0
  34120. .INDENT 3.5
  34121. This tutorial assumes basic knowledge of Salt. To get up to speed, check
  34122. out the Salt Walkthrough\&.
  34123. .sp
  34124. This tutorial also assumes a basic understanding of Salt Proxy Minions. If
  34125. you\(aqre unfamiliar with Salt\(aqs Proxy Minion system, please read the
  34126. Salt Proxy Minion documentation and the
  34127. Salt Proxy Minion End\-to\-End Example
  34128. tutorial.
  34129. .sp
  34130. The third assumption that this tutorial makes is that you also have a
  34131. basic understanding of ESXi hosts. You can learn more about ESXi hosts on
  34132. \fI\%VMware\(aqs various resources\fP\&.
  34133. .UNINDENT
  34134. .UNINDENT
  34135. .sp
  34136. Salt\(aqs ESXi Proxy Minion allows a VMware ESXi host to be treated as an individual
  34137. Salt Minion, without installing a Salt Minion on the ESXi host.
  34138. .sp
  34139. Since an ESXi host may not necessarily run on an OS capable of hosting a Python
  34140. stack, the ESXi host can\(aqt run a regular Salt Minion directly. Therefore, Salt\(aqs
  34141. Proxy Minion functionality enables you to designate another machine to host a
  34142. proxy process that "proxies" communication from the Salt Master to the ESXi host.
  34143. The master does not know or care that the ESXi target is not a "real" Salt Minion.
  34144. .sp
  34145. More in\-depth conceptual reading on Proxy Minions can be found in the
  34146. Proxy Minion section of Salt\(aqs documentation.
  34147. .sp
  34148. Salt\(aqs ESXi Proxy Minion was added in the 2015.8.4 release of Salt.
  34149. .sp
  34150. \fBNOTE:\fP
  34151. .INDENT 0.0
  34152. .INDENT 3.5
  34153. Be aware that some functionality for the ESXi Proxy Minion may depend on the
  34154. type of license attached the ESXi host(s).
  34155. .sp
  34156. For example, certain services are only available to manipulate service state
  34157. or policies with a VMware vSphere Enterprise or Enterprise Plus license, while
  34158. others are available with a Standard license. The \fBntpd\fP service is restricted
  34159. to an Enterprise Plus license, while \fBssh\fP is available via the Standard
  34160. license.
  34161. .sp
  34162. Please see the \fI\%vSphere Comparison\fP page for more information.
  34163. .UNINDENT
  34164. .UNINDENT
  34165. .SS Dependencies
  34166. .sp
  34167. Manipulation of the ESXi host via a Proxy Minion requires the machine running
  34168. the Proxy Minion process to have the ESXCLI package (and all of its dependencies)
  34169. and the pyVmomi Python Library to be installed.
  34170. .SS ESXi Password
  34171. .sp
  34172. The ESXi Proxy Minion uses VMware\(aqs API to perform tasks on the host as if it was
  34173. a regular Salt Minion. In order to access the API that is already running on the
  34174. ESXi host, the ESXi host must have a username and password that is used to log
  34175. into the host. The username is usually \fBroot\fP\&. Before Salt can access the ESXi
  34176. host via VMware\(aqs API, a default password \fImust\fP be set on the host.
  34177. .SS pyVmomi
  34178. .sp
  34179. The pyVmomi Python library must be installed on the machine that is running the
  34180. proxy process. pyVmomi can be installed via pip:
  34181. .INDENT 0.0
  34182. .INDENT 3.5
  34183. .sp
  34184. .nf
  34185. .ft C
  34186. pip install pyVmomi
  34187. .ft P
  34188. .fi
  34189. .UNINDENT
  34190. .UNINDENT
  34191. .sp
  34192. \fBNOTE:\fP
  34193. .INDENT 0.0
  34194. .INDENT 3.5
  34195. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  34196. versions of Python. If using version 6.0 of pyVmomi, the machine that you
  34197. are running the proxy minion process from must have either Python 2.6,
  34198. Python 2.7.9, or newer. This is due to an upstream dependency in pyVmomi 6.0
  34199. that is not supported in Python version 2.7 to 2.7.8. If the
  34200. version of Python running the proxy process is not in the supported range, you
  34201. will need to install an earlier version of pyVmomi. See \fI\%Issue #29537\fP for
  34202. more information.
  34203. .UNINDENT
  34204. .UNINDENT
  34205. .sp
  34206. Based on the note above, to install an earlier version of pyVmomi than the
  34207. version currently listed in PyPi, run the following:
  34208. .INDENT 0.0
  34209. .INDENT 3.5
  34210. .sp
  34211. .nf
  34212. .ft C
  34213. pip install pyVmomi==5.5.0.2014.1.1
  34214. .ft P
  34215. .fi
  34216. .UNINDENT
  34217. .UNINDENT
  34218. .sp
  34219. The 5.5.0.2014.1.1 is a known stable version that the original ESXi Proxy Minion
  34220. was developed against.
  34221. .SS ESXCLI
  34222. .sp
  34223. Currently, about a third of the functions used for the ESXi Proxy Minion require
  34224. the ESXCLI package be installed on the machine running the Proxy Minion process.
  34225. .sp
  34226. The ESXCLI package is also referred to as the VMware vSphere CLI, or vCLI. VMware
  34227. provides vCLI package installation instructions for \fI\%vSphere 5.5\fP and
  34228. \fI\%vSphere 6.0\fP\&.
  34229. .sp
  34230. Once all of the required dependencies are in place and the vCLI package is
  34231. installed, you can check to see if you can connect to your ESXi host by running
  34232. the following command:
  34233. .INDENT 0.0
  34234. .INDENT 3.5
  34235. .sp
  34236. .nf
  34237. .ft C
  34238. esxcli \-s <host\-location> \-u <username> \-p <password> system syslog config get
  34239. .ft P
  34240. .fi
  34241. .UNINDENT
  34242. .UNINDENT
  34243. .sp
  34244. If the connection was successful, ESXCLI was successfully installed on your system.
  34245. You should see output related to the ESXi host\(aqs syslog configuration.
  34246. .SS Configuration
  34247. .sp
  34248. There are several places where various configuration values need to be set in
  34249. order for the ESXi Proxy Minion to run and connect properly.
  34250. .SS Proxy Config File
  34251. .sp
  34252. On the machine that will be running the Proxy Minion process(es), a proxy config
  34253. file must be in place. This file should be located in the \fB/etc/salt/\fP directory
  34254. and should be named \fBproxy\fP\&. If the file is not there by default, create it.
  34255. .sp
  34256. This file should contain the location of your Salt Master that the Salt Proxy
  34257. will connect to.
  34258. .sp
  34259. Example Proxy Config File:
  34260. .INDENT 0.0
  34261. .INDENT 3.5
  34262. .sp
  34263. .nf
  34264. .ft C
  34265. # /etc/salt/proxy
  34266. master: <salt\-master\-location>
  34267. .ft P
  34268. .fi
  34269. .UNINDENT
  34270. .UNINDENT
  34271. .SS Pillar Profiles
  34272. .sp
  34273. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  34274. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  34275. the Proxy ID. At a minimum for communication with the ESXi host, the pillar
  34276. should look like this:
  34277. .INDENT 0.0
  34278. .INDENT 3.5
  34279. .sp
  34280. .nf
  34281. .ft C
  34282. proxy:
  34283. proxytype: esxi
  34284. host: <ip or dns name of esxi host>
  34285. username: <ESXi username>
  34286. passwords:
  34287. \- first_password
  34288. \- second_password
  34289. \- third_password
  34290. .ft P
  34291. .fi
  34292. .UNINDENT
  34293. .UNINDENT
  34294. .sp
  34295. Some other optional settings are \fBprotocol\fP and \fBport\fP\&. These can be added
  34296. to the pillar configuration.
  34297. .SS proxytype
  34298. .sp
  34299. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  34300. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  34301. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  34302. own proxy module, for example). To use this ESXi Proxy Module, set this to
  34303. \fBesxi\fP\&.
  34304. .SS host
  34305. .sp
  34306. The location, or ip/dns, of the ESXi host. Required.
  34307. .SS username
  34308. .sp
  34309. The username used to login to the ESXi host, such as \fBroot\fP\&. Required.
  34310. .SS passwords
  34311. .sp
  34312. A list of passwords to be used to try and login to the ESXi host. At least
  34313. one password in this list is required.
  34314. .sp
  34315. The proxy integration will try the passwords listed in order. It is
  34316. configured this way so you can have a regular password and the password you
  34317. may be updating for an ESXi host either via the
  34318. \fBvsphere.update_host_password\fP
  34319. execution module function or via the
  34320. \fBesxi.password_present\fP state
  34321. function. This way, after the password is changed, you should not need to
  34322. restart the proxy minion\-\-it should just pick up the new password
  34323. provided in the list. You can then change pillar at will to move that
  34324. password to the front and retire the unused ones.
  34325. .sp
  34326. Use\-case/reasoning for using a list of passwords: You are setting up an
  34327. ESXi host for the first time, and the host comes with a default password.
  34328. You know that you\(aqll be changing this password during your initial setup
  34329. from the default to a new password. If you only have one password option,
  34330. and if you have a state changing the password, any remote execution commands
  34331. or states that run after the password change will not be able to run on the
  34332. host until the password is updated in Pillar and the Proxy Minion process is
  34333. restarted.
  34334. .sp
  34335. This allows you to use any number of potential fallback passwords.
  34336. .sp
  34337. \fBNOTE:\fP
  34338. .INDENT 0.0
  34339. .INDENT 3.5
  34340. When a password is changed on the host to one in the list of possible
  34341. passwords, the further down on the list the password is, the longer
  34342. individual commands will take to return. This is due to the nature of
  34343. pyVmomi\(aqs login system. We have to wait for the first attempt to fail
  34344. before trying the next password on the list.
  34345. .sp
  34346. This scenario is especially true, and even slower, when the proxy
  34347. minion first starts. If the correct password is not the first password
  34348. on the list, it may take up to a minute for \fBtest.version\fP to respond
  34349. with salt\(aqs version installed (Example: \fB2018.3.4\fP\&. Once the initial
  34350. authorization is complete, the responses for commands will be a little
  34351. faster.
  34352. .sp
  34353. To avoid these longer waiting periods, SaltStack recommends moving the
  34354. correct password to the top of the list and restarting the proxy minion
  34355. at your earliest convenience.
  34356. .UNINDENT
  34357. .UNINDENT
  34358. .SS protocol
  34359. .sp
  34360. If the ESXi host is not using the default protocol, set this value to an
  34361. alternate protocol. Default is \fBhttps\fP\&. For example:
  34362. .SS port
  34363. .sp
  34364. If the ESXi host is not using the default port, set this value to an
  34365. alternate port. Default is \fB443\fP\&.
  34366. .SS Example Configuration Files
  34367. .sp
  34368. An example of all of the basic configurations that need to be in place before
  34369. starting the Proxy Minion processes includes the Proxy Config File, Pillar
  34370. Top File, and any individual Proxy Minion Pillar files.
  34371. .sp
  34372. In this example, we\(aqll assuming there are two ESXi hosts to connect to. Therefore,
  34373. we\(aqll be creating two Proxy Minion config files, one config for each ESXi host.
  34374. .sp
  34375. Proxy Config File:
  34376. .INDENT 0.0
  34377. .INDENT 3.5
  34378. .sp
  34379. .nf
  34380. .ft C
  34381. # /etc/salt/proxy
  34382. master: <salt\-master\-location>
  34383. .ft P
  34384. .fi
  34385. .UNINDENT
  34386. .UNINDENT
  34387. .sp
  34388. Pillar Top File:
  34389. .INDENT 0.0
  34390. .INDENT 3.5
  34391. .sp
  34392. .nf
  34393. .ft C
  34394. # /srv/pillar/top.sls
  34395. base:
  34396. \(aqesxi\-1\(aq:
  34397. \- esxi\-1
  34398. \(aqesxi\-2\(aq:
  34399. \- esxi\-2
  34400. .ft P
  34401. .fi
  34402. .UNINDENT
  34403. .UNINDENT
  34404. .sp
  34405. Pillar Config File for the first ESXi host, esxi\-1:
  34406. .INDENT 0.0
  34407. .INDENT 3.5
  34408. .sp
  34409. .nf
  34410. .ft C
  34411. # /srv/pillar/esxi\-1.sls
  34412. proxy:
  34413. proxytype: esxi
  34414. host: esxi\-1.example.com
  34415. username: \(aqroot\(aq
  34416. passwords:
  34417. \- bad\-password\-1
  34418. \- backup\-bad\-password\-1
  34419. .ft P
  34420. .fi
  34421. .UNINDENT
  34422. .UNINDENT
  34423. .sp
  34424. Pillar Config File for the second ESXi host, esxi\-2:
  34425. .INDENT 0.0
  34426. .INDENT 3.5
  34427. .sp
  34428. .nf
  34429. .ft C
  34430. # /srv/pillar/esxi\-2.sls
  34431. proxy:
  34432. proxytype: esxi
  34433. host: esxi\-2.example.com
  34434. username: \(aqroot\(aq
  34435. passwords:
  34436. \- bad\-password\-2
  34437. \- backup\-bad\-password\-2
  34438. .ft P
  34439. .fi
  34440. .UNINDENT
  34441. .UNINDENT
  34442. .SS Starting the Proxy Minion
  34443. .sp
  34444. Once all of the correct configuration files are in place, it is time to start the
  34445. proxy processes!
  34446. .INDENT 0.0
  34447. .IP 1. 3
  34448. First, make sure your Salt Master is running.
  34449. .IP 2. 3
  34450. Start the first Salt Proxy, in debug mode, by giving the Proxy Minion process
  34451. and ID that matches the config file name created in the \fI\%Configuration\fP section.
  34452. .UNINDENT
  34453. .INDENT 0.0
  34454. .INDENT 3.5
  34455. .sp
  34456. .nf
  34457. .ft C
  34458. salt\-proxy \-\-proxyid=\(aqesxi\-1\(aq \-l debug
  34459. .ft P
  34460. .fi
  34461. .UNINDENT
  34462. .UNINDENT
  34463. .INDENT 0.0
  34464. .IP 1. 3
  34465. Accept the \fBesxi\-1\fP Proxy Minion\(aqs key on the Salt Master:
  34466. .UNINDENT
  34467. .INDENT 0.0
  34468. .INDENT 3.5
  34469. .sp
  34470. .nf
  34471. .ft C
  34472. # salt\-key \-L
  34473. Accepted Keys:
  34474. Denied Keys:
  34475. Unaccepted Keys:
  34476. esxi\-1
  34477. Rejected Keys:
  34478. #
  34479. # salt\-key \-a esxi\-1
  34480. The following keys are going to be accepted:
  34481. Unaccepted Keys:
  34482. esxi\-1
  34483. Proceed? [n/Y] y
  34484. Key for minion esxi\-1 accepted.
  34485. .ft P
  34486. .fi
  34487. .UNINDENT
  34488. .UNINDENT
  34489. .INDENT 0.0
  34490. .IP 1. 3
  34491. Repeat for the second Salt Proxy, this time we\(aqll run the proxy process as a
  34492. daemon, as an example.
  34493. .UNINDENT
  34494. .INDENT 0.0
  34495. .INDENT 3.5
  34496. .sp
  34497. .nf
  34498. .ft C
  34499. salt\-proxy \-\-proxyid=\(aqesxi\-2\(aq \-d
  34500. .ft P
  34501. .fi
  34502. .UNINDENT
  34503. .UNINDENT
  34504. .INDENT 0.0
  34505. .IP 1. 3
  34506. Accept the \fBesxi\-2\fP Proxy Minion\(aqs key on the Salt Master:
  34507. .UNINDENT
  34508. .INDENT 0.0
  34509. .INDENT 3.5
  34510. .sp
  34511. .nf
  34512. .ft C
  34513. # salt\-key \-L
  34514. Accepted Keys:
  34515. esxi\-1
  34516. Denied Keys:
  34517. Unaccepted Keys:
  34518. esxi\-2
  34519. Rejected Keys:
  34520. #
  34521. # salt\-key \-a esxi\-1
  34522. The following keys are going to be accepted:
  34523. Unaccepted Keys:
  34524. esxi\-2
  34525. Proceed? [n/Y] y
  34526. Key for minion esxi\-1 accepted.
  34527. .ft P
  34528. .fi
  34529. .UNINDENT
  34530. .UNINDENT
  34531. .INDENT 0.0
  34532. .IP 1. 3
  34533. Check and see if your Proxy Minions are responding:
  34534. .UNINDENT
  34535. .INDENT 0.0
  34536. .INDENT 3.5
  34537. .sp
  34538. .nf
  34539. .ft C
  34540. # salt \(aqesxi\-*\(aq test.version
  34541. esxi\-1:
  34542. True
  34543. esxi\-3:
  34544. True
  34545. .ft P
  34546. .fi
  34547. .UNINDENT
  34548. .UNINDENT
  34549. .SS Executing Commands
  34550. .sp
  34551. Now that you\(aqve configured your Proxy Minions and have them responding successfully
  34552. to a \fBtest.version\fP, we can start executing commands against the ESXi hosts via Salt.
  34553. .sp
  34554. It\(aqs important to understand how this particular proxy works, and there are a couple
  34555. of important pieces to be aware of in order to start running remote execution and
  34556. state commands against the ESXi host via a Proxy Minion: the
  34557. \fI\%vSphere Execution Module\fP, the \fI\%ESXi Execution Module\fP, and the \fI\%ESXi State Module\fP\&.
  34558. .SS vSphere Execution Module
  34559. .sp
  34560. The \fBSalt.modules.vsphere\fP is a
  34561. standard Salt execution module that does the bulk of the work for the ESXi Proxy
  34562. Minion. If you pull up the docs for it you\(aqll see that almost every function in
  34563. the module takes credentials (\fBusername\fP and \fBpassword\fP) and a target \fBhost\fP
  34564. argument. When credentials and a host aren\(aqt passed, Salt runs commands
  34565. through \fBpyVmomi\fP or \fBESXCLI\fP against the local machine. If you wanted,
  34566. you could run functions from this module on any machine where an appropriate
  34567. version of \fBpyVmomi\fP and \fBESXCLI\fP are installed, and that machine would reach
  34568. out over the network and communicate with the ESXi host.
  34569. .sp
  34570. You\(aqll notice that most of the functions in the vSphere module require a \fBhost\fP,
  34571. \fBusername\fP, and \fBpassword\fP\&. These parameters are contained in the Pillar files and
  34572. passed through to the function via the proxy process that is already running. You don\(aqt
  34573. need to provide these parameters when you execute the commands. See the
  34574. \fI\%Running Remote Execution Commands\fP section below for an example.
  34575. .SS ESXi Execution Module
  34576. .sp
  34577. In order for the Pillar information set up in the \fI\%Configuration\fP section above to
  34578. be passed to the function call in the vSphere Execution Module, the
  34579. \fBsalt.modules.esxi\fP execution module acts
  34580. as a "shim" between the vSphere execution module functions and the proxy process.
  34581. .sp
  34582. The "shim" takes the authentication credentials specified in the Pillar files and
  34583. passes them through to the \fBhost\fP, \fBusername\fP, \fBpassword\fP, and optional
  34584. \fBprotocol\fP and \fBport\fP options required by the vSphere Execution Module functions.
  34585. .sp
  34586. If the function takes more positional, or keyword, arguments you can append them
  34587. to the call. It\(aqs this shim that speaks to the ESXi host through the proxy, arranging
  34588. for the credentials and hostname to be pulled from the Pillar section for the ESXi
  34589. Proxy Minion.
  34590. .sp
  34591. Because of the presence of the shim, to lookup documentation for what
  34592. functions you can use to interface with the ESXi host, you\(aqll want to
  34593. look in \fBsalt.modules.vsphere\fP
  34594. instead of \fBsalt.modules.esxi\fP\&.
  34595. .SS Running Remote Execution Commands
  34596. .sp
  34597. To run commands from the Salt Master to execute, via the ESXi Proxy Minion, against
  34598. the ESXi host, you use the \fBesxi.cmd <vsphere\-function\-name>\fP syntax to call
  34599. functions located in the vSphere Execution Module. Both args and kwargs needed
  34600. for various vsphere execution module functions must be passed through in a kwarg\-
  34601. type manor. For example:
  34602. .INDENT 0.0
  34603. .INDENT 3.5
  34604. .sp
  34605. .nf
  34606. .ft C
  34607. salt \(aqesxi\-*\(aq esxi.cmd system_info
  34608. salt \(aqexsi\-*\(aq esxi.cmd get_service_running service_name=\(aqssh\(aq
  34609. .ft P
  34610. .fi
  34611. .UNINDENT
  34612. .UNINDENT
  34613. .SS ESXi State Module
  34614. .sp
  34615. The ESXi State Module functions similarly to other state modules. The "shim" provided
  34616. by the \fI\%ESXi Execution Module\fP passes the necessary \fBhost\fP, \fBusername\fP, and
  34617. \fBpassword\fP credentials through, so those options don\(aqt need to be provided in the
  34618. state. Other than that, state files are written and executed just like any other
  34619. Salt state. See the \fBsalt.modules.esxi\fP state
  34620. for ESXi state functions.
  34621. .sp
  34622. The follow state file is an example of how to configure various pieces of an ESXi host
  34623. including enabling SSH, uploading and SSH key, configuring a coredump network config,
  34624. syslog, ntp, enabling VMotion, resetting a host password, and more.
  34625. .INDENT 0.0
  34626. .INDENT 3.5
  34627. .sp
  34628. .nf
  34629. .ft C
  34630. # /srv/salt/configure\-esxi.sls
  34631. configure\-host\-ssh:
  34632. esxi.ssh_configured:
  34633. \- service_running: True
  34634. \- ssh_key_file: /etc/salt/ssh_keys/my_key.pub
  34635. \- service_policy: \(aqautomatic\(aq
  34636. \- service_restart: True
  34637. \- certificate_verify: True
  34638. configure\-host\-coredump:
  34639. esxi.coredump_configured:
  34640. \- enabled: True
  34641. \- dump_ip: \(aqmy\-coredump\-ip.example.com\(aq
  34642. configure\-host\-syslog:
  34643. esxi.syslog_configured:
  34644. \- syslog_configs:
  34645. loghost: ssl://localhost:5432,tcp://10.1.0.1:1514
  34646. default\-timeout: 120
  34647. \- firewall: True
  34648. \- reset_service: True
  34649. \- reset_syslog_config: True
  34650. \- reset_configs: loghost,default\-timeout
  34651. configure\-host\-ntp:
  34652. esxi.ntp_configured:
  34653. \- service_running: True
  34654. \- ntp_servers:
  34655. \- 192.174.1.100
  34656. \- 192.174.1.200
  34657. \- service_policy: \(aqautomatic\(aq
  34658. \- service_restart: True
  34659. configure\-vmotion:
  34660. esxi.vmotion_configured:
  34661. \- enabled: True
  34662. configure\-host\-vsan:
  34663. esxi.vsan_configured:
  34664. \- enabled: True
  34665. \- add_disks_to_vsan: True
  34666. configure\-host\-password:
  34667. esxi.password_present:
  34668. \- password: \(aqnew\-bad\-password\(aq
  34669. .ft P
  34670. .fi
  34671. .UNINDENT
  34672. .UNINDENT
  34673. .sp
  34674. States are called via the ESXi Proxy Minion just as they would on a regular minion.
  34675. For example:
  34676. .INDENT 0.0
  34677. .INDENT 3.5
  34678. .sp
  34679. .nf
  34680. .ft C
  34681. salt \(aqesxi\-*\(aq state.sls configure\-esxi test=true
  34682. salt \(aqesxi\-*\(aq state.sls configure\-esxi
  34683. .ft P
  34684. .fi
  34685. .UNINDENT
  34686. .UNINDENT
  34687. .SS Relevant Salt Files and Resources
  34688. .INDENT 0.0
  34689. .IP \(bu 2
  34690. \fBESXi Proxy Minion\fP
  34691. .IP \(bu 2
  34692. \fBESXi Execution Module\fP
  34693. .IP \(bu 2
  34694. \fBESXi State Module\fP
  34695. .IP \(bu 2
  34696. Salt Proxy Minion Docs
  34697. .IP \(bu 2
  34698. Salt Proxy Minion End\-to\-End Example
  34699. .IP \(bu 2
  34700. \fBvSphere Execution Module\fP
  34701. .UNINDENT
  34702. .SS Installing and Configuring Halite
  34703. .sp
  34704. \fBWARNING:\fP
  34705. .INDENT 0.0
  34706. .INDENT 3.5
  34707. Halite is deprecated
  34708. .sp
  34709. The Halite project is retired. The code will remain available on GitHub.
  34710. .UNINDENT
  34711. .UNINDENT
  34712. .sp
  34713. In this tutorial, we\(aqll walk through installing and setting up Halite. The
  34714. current version of Halite is considered pre\-alpha and is supported only in Salt
  34715. \fBv2014.1.0\fP or greater. Additional information is available on GitHub:
  34716. \fI\%https://github.com/saltstack/halite\fP
  34717. .sp
  34718. Before beginning this tutorial, ensure that the salt\-master is installed. To
  34719. install the salt\-master, please review the installation documentation:
  34720. \fI\%http://docs.saltstack.com/topics/installation/index.html\fP
  34721. .sp
  34722. \fBNOTE:\fP
  34723. .INDENT 0.0
  34724. .INDENT 3.5
  34725. Halite only works with Salt versions greater than 2014.1.0.
  34726. .UNINDENT
  34727. .UNINDENT
  34728. .SS Installing Halite Via Package
  34729. .sp
  34730. On CentOS, RHEL, or Fedora:
  34731. .INDENT 0.0
  34732. .INDENT 3.5
  34733. .sp
  34734. .nf
  34735. .ft C
  34736. $ yum install python\-halite
  34737. .ft P
  34738. .fi
  34739. .UNINDENT
  34740. .UNINDENT
  34741. .sp
  34742. \fBNOTE:\fP
  34743. .INDENT 0.0
  34744. .INDENT 3.5
  34745. By default python\-halite only installs CherryPy. If you would like to use
  34746. a different webserver please review the instructions below to install
  34747. pip and your server of choice. The package does not modify the master
  34748. configuration with \fB/etc/salt/master\fP\&.
  34749. .UNINDENT
  34750. .UNINDENT
  34751. .SS Installing Halite Using pip
  34752. .sp
  34753. To begin the installation of Halite from PyPI, you\(aqll need to install pip. The
  34754. Salt package, as well as the bootstrap, do not install pip by default.
  34755. .sp
  34756. On CentOS, RHEL, or Fedora:
  34757. .INDENT 0.0
  34758. .INDENT 3.5
  34759. .sp
  34760. .nf
  34761. .ft C
  34762. $ yum install python\-pip
  34763. .ft P
  34764. .fi
  34765. .UNINDENT
  34766. .UNINDENT
  34767. .sp
  34768. On Debian:
  34769. .INDENT 0.0
  34770. .INDENT 3.5
  34771. .sp
  34772. .nf
  34773. .ft C
  34774. $ apt\-get install python\-pip
  34775. .ft P
  34776. .fi
  34777. .UNINDENT
  34778. .UNINDENT
  34779. .sp
  34780. Once you have pip installed, use it to install halite:
  34781. .INDENT 0.0
  34782. .INDENT 3.5
  34783. .sp
  34784. .nf
  34785. .ft C
  34786. $ pip install \-U halite
  34787. .ft P
  34788. .fi
  34789. .UNINDENT
  34790. .UNINDENT
  34791. .sp
  34792. Depending on the webserver you want to run halite through, you\(aqll need to
  34793. install that piece as well. On RHEL based distros, use one of the following:
  34794. .INDENT 0.0
  34795. .INDENT 3.5
  34796. .sp
  34797. .nf
  34798. .ft C
  34799. $ pip install cherrypy
  34800. .ft P
  34801. .fi
  34802. .UNINDENT
  34803. .UNINDENT
  34804. .INDENT 0.0
  34805. .INDENT 3.5
  34806. .sp
  34807. .nf
  34808. .ft C
  34809. $ pip install paste
  34810. .ft P
  34811. .fi
  34812. .UNINDENT
  34813. .UNINDENT
  34814. .INDENT 0.0
  34815. .INDENT 3.5
  34816. .sp
  34817. .nf
  34818. .ft C
  34819. $ yum install python\-devel
  34820. $ yum install gcc
  34821. $ pip install gevent
  34822. $ pip install pyopenssl
  34823. .ft P
  34824. .fi
  34825. .UNINDENT
  34826. .UNINDENT
  34827. .sp
  34828. On Debian based distributions:
  34829. .INDENT 0.0
  34830. .INDENT 3.5
  34831. .sp
  34832. .nf
  34833. .ft C
  34834. $ pip install CherryPy
  34835. .ft P
  34836. .fi
  34837. .UNINDENT
  34838. .UNINDENT
  34839. .INDENT 0.0
  34840. .INDENT 3.5
  34841. .sp
  34842. .nf
  34843. .ft C
  34844. $ pip install paste
  34845. .ft P
  34846. .fi
  34847. .UNINDENT
  34848. .UNINDENT
  34849. .INDENT 0.0
  34850. .INDENT 3.5
  34851. .sp
  34852. .nf
  34853. .ft C
  34854. $ apt\-get install gcc
  34855. $ apt\-get install python\-dev
  34856. $ apt\-get install libevent\-dev
  34857. $ pip install gevent
  34858. $ pip install pyopenssl
  34859. .ft P
  34860. .fi
  34861. .UNINDENT
  34862. .UNINDENT
  34863. .SS Configuring Halite Permissions
  34864. .sp
  34865. Configuring Halite access permissions is easy. By default, you only need to
  34866. ensure that the @runner group is configured. In the \fB/etc/salt/master\fP file,
  34867. uncomment and modify the following lines:
  34868. .INDENT 0.0
  34869. .INDENT 3.5
  34870. .sp
  34871. .nf
  34872. .ft C
  34873. external_auth:
  34874. pam:
  34875. testuser:
  34876. \- .*
  34877. \- \(aq@runner\(aq
  34878. .ft P
  34879. .fi
  34880. .UNINDENT
  34881. .UNINDENT
  34882. .sp
  34883. \fBNOTE:\fP
  34884. .INDENT 0.0
  34885. .INDENT 3.5
  34886. You cannot use the root user for pam login; it will fail to authenticate.
  34887. .UNINDENT
  34888. .UNINDENT
  34889. .sp
  34890. Halite uses the runner manage.present to get the status of minions, so runner
  34891. permissions are required. For example:
  34892. .INDENT 0.0
  34893. .INDENT 3.5
  34894. .sp
  34895. .nf
  34896. .ft C
  34897. external_auth:
  34898. pam:
  34899. mytestuser:
  34900. \- .*
  34901. \- \(aq@runner\(aq
  34902. \- \(aq@wheel\(aq
  34903. .ft P
  34904. .fi
  34905. .UNINDENT
  34906. .UNINDENT
  34907. .sp
  34908. Currently Halite allows, but does not require, any wheel modules.
  34909. .SS Configuring Halite Settings
  34910. .sp
  34911. Once you\(aqve configured the permissions for Halite, you\(aqll need to set up the
  34912. Halite settings in the /etc/salt/master file. Halite supports CherryPy, Paste, and Gevent out of the box.
  34913. .sp
  34914. To configure cherrypy, add the following to the bottom of your /etc/salt/master file:
  34915. .INDENT 0.0
  34916. .INDENT 3.5
  34917. .sp
  34918. .nf
  34919. .ft C
  34920. halite:
  34921. level: \(aqdebug\(aq
  34922. server: \(aqcherrypy\(aq
  34923. host: \(aq0.0.0.0\(aq
  34924. port: \(aq8080\(aq
  34925. cors: False
  34926. tls: True
  34927. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  34928. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  34929. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  34930. .ft P
  34931. .fi
  34932. .UNINDENT
  34933. .UNINDENT
  34934. .sp
  34935. If you wish to use paste:
  34936. .INDENT 0.0
  34937. .INDENT 3.5
  34938. .sp
  34939. .nf
  34940. .ft C
  34941. halite:
  34942. level: \(aqdebug\(aq
  34943. server: \(aqpaste\(aq
  34944. host: \(aq0.0.0.0\(aq
  34945. port: \(aq8080\(aq
  34946. cors: False
  34947. tls: True
  34948. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  34949. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  34950. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  34951. .ft P
  34952. .fi
  34953. .UNINDENT
  34954. .UNINDENT
  34955. .sp
  34956. To use gevent:
  34957. .INDENT 0.0
  34958. .INDENT 3.5
  34959. .sp
  34960. .nf
  34961. .ft C
  34962. halite:
  34963. level: \(aqdebug\(aq
  34964. server: \(aqgevent\(aq
  34965. host: \(aq0.0.0.0\(aq
  34966. port: \(aq8080\(aq
  34967. cors: False
  34968. tls: True
  34969. certpath: \(aq/etc/pki/tls/certs/localhost.crt\(aq
  34970. keypath: \(aq/etc/pki/tls/certs/localhost.key\(aq
  34971. pempath: \(aq/etc/pki/tls/certs/localhost.pem\(aq
  34972. .ft P
  34973. .fi
  34974. .UNINDENT
  34975. .UNINDENT
  34976. .sp
  34977. The "cherrypy" and "gevent" servers require the certpath and keypath files
  34978. to run tls/ssl. The .crt file holds the public cert and the .key file holds
  34979. the private key. Whereas the "paste" server requires a single .pem file that
  34980. contains both the cert and key. This can be created simply by concatenating
  34981. the .crt and .key files.
  34982. .sp
  34983. If you want to use a self\-signed cert, you can create one using the Salt.tls
  34984. module:
  34985. .sp
  34986. \fBNOTE:\fP
  34987. .INDENT 0.0
  34988. .INDENT 3.5
  34989. The following command needs to be run on your salt master.
  34990. .UNINDENT
  34991. .UNINDENT
  34992. .INDENT 0.0
  34993. .INDENT 3.5
  34994. .sp
  34995. .nf
  34996. .ft C
  34997. salt\-call tls.create_self_signed_cert tls
  34998. .ft P
  34999. .fi
  35000. .UNINDENT
  35001. .UNINDENT
  35002. .sp
  35003. Note that certs generated by the above command can be found under the \fB/etc/pki/tls/certs/\fP directory.
  35004. When using self\-signed certs, browsers will need approval before accepting the
  35005. cert. If the web application page has been cached with a non\-HTTPS version of
  35006. the app, then the browser cache will have to be cleared before it will
  35007. recognize and prompt to accept the self\-signed certificate.
  35008. .SS Starting Halite
  35009. .sp
  35010. Once you\(aqve configured the halite section of your /etc/salt/master, you can
  35011. restart the salt\-master service, and your halite instance will be available.
  35012. Depending on your configuration, the instance will be available either at
  35013. \fI\%https://localhost:8080/app\fP, \fI\%https://domain:8080/app\fP, or
  35014. \fI\%https://123.456.789.012:8080/app\fP .
  35015. .sp
  35016. \fBNOTE:\fP
  35017. .INDENT 0.0
  35018. .INDENT 3.5
  35019. halite requires an HTML 5 compliant browser.
  35020. .UNINDENT
  35021. .UNINDENT
  35022. .sp
  35023. All logs relating to halite are logged to the default /var/log/salt/master file.
  35024. .SS HTTP Modules
  35025. .sp
  35026. This tutorial demonstrates using the various HTTP modules available in Salt.
  35027. These modules wrap the Python \fBtornado\fP, \fBurllib2\fP, and \fBrequests\fP
  35028. libraries, extending them in a manner that is more consistent with Salt
  35029. workflows.
  35030. .SS The \fBsalt.utils.http\fP Library
  35031. .sp
  35032. This library forms the core of the HTTP modules. Since it is designed to be used
  35033. from the minion as an execution module, in addition to the master as a runner,
  35034. it was abstracted into this multi\-use library. This library can also be imported
  35035. by 3rd\-party programs wishing to take advantage of its extended functionality.
  35036. .sp
  35037. Core functionality of the execution, state, and runner modules is derived from
  35038. this library, so common usages between them are described here. Documentation
  35039. specific to each module is described below.
  35040. .sp
  35041. This library can be imported with:
  35042. .INDENT 0.0
  35043. .INDENT 3.5
  35044. .sp
  35045. .nf
  35046. .ft C
  35047. import salt.utils.http
  35048. .ft P
  35049. .fi
  35050. .UNINDENT
  35051. .UNINDENT
  35052. .SS Configuring Libraries
  35053. .sp
  35054. This library can make use of either \fBtornado\fP, which is required by Salt,
  35055. \fBurllib2\fP, which ships with Python, or \fBrequests\fP, which can be installed
  35056. separately. By default, \fBtornado\fP will be used. In order to switch to
  35057. \fBurllib2\fP, set the following variable:
  35058. .INDENT 0.0
  35059. .INDENT 3.5
  35060. .sp
  35061. .nf
  35062. .ft C
  35063. backend: urllib2
  35064. .ft P
  35065. .fi
  35066. .UNINDENT
  35067. .UNINDENT
  35068. .sp
  35069. In order to switch to \fBrequests\fP, set the following variable:
  35070. .INDENT 0.0
  35071. .INDENT 3.5
  35072. .sp
  35073. .nf
  35074. .ft C
  35075. backend: requests
  35076. .ft P
  35077. .fi
  35078. .UNINDENT
  35079. .UNINDENT
  35080. .sp
  35081. This can be set in the master or minion configuration file, or passed as an
  35082. option directly to any \fBhttp.query()\fP functions.
  35083. .SS \fBsalt.utils.http.query()\fP
  35084. .sp
  35085. This function forms a basic query, but with some add\-ons not present in the
  35086. \fBtornado\fP, \fBurllib2\fP, and \fBrequests\fP libraries. Not all functionality
  35087. currently available in these libraries has been added, but can be in future
  35088. iterations.
  35089. .SS HTTPS Request Methods
  35090. .sp
  35091. A basic query can be performed by calling this function with no more than a
  35092. single URL:
  35093. .INDENT 0.0
  35094. .INDENT 3.5
  35095. .sp
  35096. .nf
  35097. .ft C
  35098. salt.utils.http.query(\(aqhttp://example.com\(aq)
  35099. .ft P
  35100. .fi
  35101. .UNINDENT
  35102. .UNINDENT
  35103. .sp
  35104. By default the query will be performed with a \fBGET\fP method. The method can
  35105. be overridden with the \fBmethod\fP argument:
  35106. .INDENT 0.0
  35107. .INDENT 3.5
  35108. .sp
  35109. .nf
  35110. .ft C
  35111. salt.utils.http.query(\(aqhttp://example.com/delete/url\(aq, \(aqDELETE\(aq)
  35112. .ft P
  35113. .fi
  35114. .UNINDENT
  35115. .UNINDENT
  35116. .sp
  35117. When using the \fBPOST\fP method (and others, such as \fBPUT\fP), extra data is usually
  35118. sent as well. This data can be sent directly (would be URL encoded when necessary),
  35119. or in whatever format is required by the remote server (XML, JSON, plain text, etc).
  35120. .INDENT 0.0
  35121. .INDENT 3.5
  35122. .sp
  35123. .nf
  35124. .ft C
  35125. salt.utils.http.query(
  35126. \(aqhttp://example.com/post/url\(aq,
  35127. method=\(aqPOST\(aq,
  35128. data=json.dumps(mydict)
  35129. )
  35130. .ft P
  35131. .fi
  35132. .UNINDENT
  35133. .UNINDENT
  35134. .SS Data Formatting and Templating
  35135. .sp
  35136. Bear in mind that the data must be sent pre\-formatted; this function will not
  35137. format it for you. However, a templated file stored on the local system may be
  35138. passed through, along with variables to populate it with. To pass through only
  35139. the file (untemplated):
  35140. .INDENT 0.0
  35141. .INDENT 3.5
  35142. .sp
  35143. .nf
  35144. .ft C
  35145. salt.utils.http.query(
  35146. \(aqhttp://example.com/post/url\(aq,
  35147. method=\(aqPOST\(aq,
  35148. data_file=\(aq/srv/salt/somefile.xml\(aq
  35149. )
  35150. .ft P
  35151. .fi
  35152. .UNINDENT
  35153. .UNINDENT
  35154. .sp
  35155. To pass through a file that contains jinja + yaml templating (the default):
  35156. .INDENT 0.0
  35157. .INDENT 3.5
  35158. .sp
  35159. .nf
  35160. .ft C
  35161. salt.utils.http.query(
  35162. \(aqhttp://example.com/post/url\(aq,
  35163. method=\(aqPOST\(aq,
  35164. data_file=\(aq/srv/salt/somefile.jinja\(aq,
  35165. data_render=True,
  35166. template_dict={\(aqkey1\(aq: \(aqvalue1\(aq, \(aqkey2\(aq: \(aqvalue2\(aq}
  35167. )
  35168. .ft P
  35169. .fi
  35170. .UNINDENT
  35171. .UNINDENT
  35172. .sp
  35173. To pass through a file that contains mako templating:
  35174. .INDENT 0.0
  35175. .INDENT 3.5
  35176. .sp
  35177. .nf
  35178. .ft C
  35179. salt.utils.http.query(
  35180. \(aqhttp://example.com/post/url\(aq,
  35181. method=\(aqPOST\(aq,
  35182. data_file=\(aq/srv/salt/somefile.mako\(aq,
  35183. data_render=True,
  35184. data_renderer=\(aqmako\(aq,
  35185. template_dict={\(aqkey1\(aq: \(aqvalue1\(aq, \(aqkey2\(aq: \(aqvalue2\(aq}
  35186. )
  35187. .ft P
  35188. .fi
  35189. .UNINDENT
  35190. .UNINDENT
  35191. .sp
  35192. Because this function uses Salt\(aqs own rendering system, any Salt renderer can
  35193. be used. Because Salt\(aqs renderer requires \fB__opts__\fP to be set, an \fBopts\fP
  35194. dictionary should be passed in. If it is not, then the default \fB__opts__\fP
  35195. values for the node type (master or minion) will be used. Because this library
  35196. is intended primarily for use by minions, the default node type is \fBminion\fP\&.
  35197. However, this can be changed to \fBmaster\fP if necessary.
  35198. .INDENT 0.0
  35199. .INDENT 3.5
  35200. .sp
  35201. .nf
  35202. .ft C
  35203. salt.utils.http.query(
  35204. \(aqhttp://example.com/post/url\(aq,
  35205. method=\(aqPOST\(aq,
  35206. data_file=\(aq/srv/salt/somefile.jinja\(aq,
  35207. data_render=True,
  35208. template_dict={\(aqkey1\(aq: \(aqvalue1\(aq, \(aqkey2\(aq: \(aqvalue2\(aq},
  35209. opts=__opts__
  35210. )
  35211. salt.utils.http.query(
  35212. \(aqhttp://example.com/post/url\(aq,
  35213. method=\(aqPOST\(aq,
  35214. data_file=\(aq/srv/salt/somefile.jinja\(aq,
  35215. data_render=True,
  35216. template_dict={\(aqkey1\(aq: \(aqvalue1\(aq, \(aqkey2\(aq: \(aqvalue2\(aq},
  35217. node=\(aqmaster\(aq
  35218. )
  35219. .ft P
  35220. .fi
  35221. .UNINDENT
  35222. .UNINDENT
  35223. .SS Headers
  35224. .sp
  35225. Headers may also be passed through, either as a \fBheader_list\fP, a
  35226. \fBheader_dict\fP, or as a \fBheader_file\fP\&. As with the \fBdata_file\fP, the
  35227. \fBheader_file\fP may also be templated. Take note that because HTTP headers are
  35228. normally syntactically\-correct YAML, they will automatically be imported as an
  35229. a Python dict.
  35230. .INDENT 0.0
  35231. .INDENT 3.5
  35232. .sp
  35233. .nf
  35234. .ft C
  35235. salt.utils.http.query(
  35236. \(aqhttp://example.com/delete/url\(aq,
  35237. method=\(aqPOST\(aq,
  35238. header_file=\(aq/srv/salt/headers.jinja\(aq,
  35239. header_render=True,
  35240. header_renderer=\(aqjinja\(aq,
  35241. template_dict={\(aqkey1\(aq: \(aqvalue1\(aq, \(aqkey2\(aq: \(aqvalue2\(aq}
  35242. )
  35243. .ft P
  35244. .fi
  35245. .UNINDENT
  35246. .UNINDENT
  35247. .sp
  35248. Because much of the data that would be templated between headers and data may be
  35249. the same, the \fBtemplate_dict\fP is the same for both. Correcting possible
  35250. variable name collisions is up to the user.
  35251. .SS Authentication
  35252. .sp
  35253. The \fBquery()\fP function supports basic HTTP authentication. A username and
  35254. password may be passed in as \fBusername\fP and \fBpassword\fP, respectively.
  35255. .INDENT 0.0
  35256. .INDENT 3.5
  35257. .sp
  35258. .nf
  35259. .ft C
  35260. salt.utils.http.query(
  35261. \(aqhttp://example.com\(aq,
  35262. username=\(aqlarry\(aq,
  35263. password=\(aq5700g3543v4r\(aq,
  35264. )
  35265. .ft P
  35266. .fi
  35267. .UNINDENT
  35268. .UNINDENT
  35269. .SS Cookies and Sessions
  35270. .sp
  35271. Cookies are also supported, using Python\(aqs built\-in \fBcookielib\fP\&. However, they
  35272. are turned off by default. To turn cookies on, set \fBcookies\fP to True.
  35273. .INDENT 0.0
  35274. .INDENT 3.5
  35275. .sp
  35276. .nf
  35277. .ft C
  35278. salt.utils.http.query(
  35279. \(aqhttp://example.com\(aq,
  35280. cookies=True
  35281. )
  35282. .ft P
  35283. .fi
  35284. .UNINDENT
  35285. .UNINDENT
  35286. .sp
  35287. By default cookies are stored in Salt\(aqs cache directory, normally
  35288. \fB/var/cache/salt\fP, as a file called \fBcookies.txt\fP\&. However, this location
  35289. may be changed with the \fBcookie_jar\fP argument:
  35290. .INDENT 0.0
  35291. .INDENT 3.5
  35292. .sp
  35293. .nf
  35294. .ft C
  35295. salt.utils.http.query(
  35296. \(aqhttp://example.com\(aq,
  35297. cookies=True,
  35298. cookie_jar=\(aq/path/to/cookie_jar.txt\(aq
  35299. )
  35300. .ft P
  35301. .fi
  35302. .UNINDENT
  35303. .UNINDENT
  35304. .sp
  35305. By default, the format of the cookie jar is LWP (aka, lib\-www\-perl). This
  35306. default was chosen because it is a human\-readable text file. If desired, the
  35307. format of the cookie jar can be set to Mozilla:
  35308. .INDENT 0.0
  35309. .INDENT 3.5
  35310. .sp
  35311. .nf
  35312. .ft C
  35313. salt.utils.http.query(
  35314. \(aqhttp://example.com\(aq,
  35315. cookies=True,
  35316. cookie_jar=\(aq/path/to/cookie_jar.txt\(aq,
  35317. cookie_format=\(aqmozilla\(aq
  35318. )
  35319. .ft P
  35320. .fi
  35321. .UNINDENT
  35322. .UNINDENT
  35323. .sp
  35324. Because Salt commands are normally one\-off commands that are piped together,
  35325. this library cannot normally behave as a normal browser, with session cookies
  35326. that persist across multiple HTTP requests. However, the session can be
  35327. persisted in a separate cookie jar. The default filename for this file, inside
  35328. Salt\(aqs cache directory, is \fBcookies.session.p\fP\&. This can also be changed.
  35329. .INDENT 0.0
  35330. .INDENT 3.5
  35331. .sp
  35332. .nf
  35333. .ft C
  35334. salt.utils.http.query(
  35335. \(aqhttp://example.com\(aq,
  35336. persist_session=True,
  35337. session_cookie_jar=\(aq/path/to/jar.p\(aq
  35338. )
  35339. .ft P
  35340. .fi
  35341. .UNINDENT
  35342. .UNINDENT
  35343. .sp
  35344. The format of this file is msgpack, which is consistent with much of the rest
  35345. of Salt\(aqs internal structure. Historically, the extension for this file is
  35346. \fB\&.p\fP\&. There are no current plans to make this configurable.
  35347. .SS Proxy
  35348. .sp
  35349. If the \fBtornado\fP backend is used (\fBtornado\fP is the default), proxy
  35350. information configured in \fBproxy_host\fP, \fBproxy_port\fP, \fBproxy_username\fP,
  35351. \fBproxy_password\fP and \fBno_proxy\fP from the \fB__opts__\fP dictionary will be used. Normally
  35352. these are set in the minion configuration file.
  35353. .INDENT 0.0
  35354. .INDENT 3.5
  35355. .sp
  35356. .nf
  35357. .ft C
  35358. proxy_host: proxy.my\-domain
  35359. proxy_port: 31337
  35360. proxy_username: charon
  35361. proxy_password: obolus
  35362. no_proxy: [\(aq127.0.0.1\(aq, \(aqlocalhost\(aq]
  35363. .ft P
  35364. .fi
  35365. .UNINDENT
  35366. .UNINDENT
  35367. .INDENT 0.0
  35368. .INDENT 3.5
  35369. .sp
  35370. .nf
  35371. .ft C
  35372. salt.utils.http.query(
  35373. \(aqhttp://example.com\(aq,
  35374. opts=__opts__,
  35375. backend=\(aqtornado\(aq
  35376. )
  35377. .ft P
  35378. .fi
  35379. .UNINDENT
  35380. .UNINDENT
  35381. .SS Return Data
  35382. .sp
  35383. \fBNOTE:\fP
  35384. .INDENT 0.0
  35385. .INDENT 3.5
  35386. Return data encoding
  35387. .sp
  35388. If \fBdecode\fP is set to \fBTrue\fP, \fBquery()\fP will attempt to decode the
  35389. return data. \fBdecode_type\fP defaults to \fBauto\fP\&. Set it to a specific
  35390. encoding, \fBxml\fP, for example, to override autodetection.
  35391. .UNINDENT
  35392. .UNINDENT
  35393. .sp
  35394. Because Salt\(aqs http library was designed to be used with REST interfaces,
  35395. \fBquery()\fP will attempt to decode the data received from the remote server
  35396. when \fBdecode\fP is set to \fBTrue\fP\&. First it will check the \fBContent\-type\fP
  35397. header to try and find references to XML. If it does not find any, it will look
  35398. for references to JSON. If it does not find any, it will fall back to plain
  35399. text, which will not be decoded.
  35400. .sp
  35401. JSON data is translated into a dict using Python\(aqs built\-in \fBjson\fP library.
  35402. XML is translated using \fBsalt.utils.xml_util\fP, which will use Python\(aqs
  35403. built\-in XML libraries to attempt to convert the XML into a dict. In order to
  35404. force either JSON or XML decoding, the \fBdecode_type\fP may be set:
  35405. .INDENT 0.0
  35406. .INDENT 3.5
  35407. .sp
  35408. .nf
  35409. .ft C
  35410. salt.utils.http.query(
  35411. \(aqhttp://example.com\(aq,
  35412. decode_type=\(aqxml\(aq
  35413. )
  35414. .ft P
  35415. .fi
  35416. .UNINDENT
  35417. .UNINDENT
  35418. .sp
  35419. Once translated, the return dict from \fBquery()\fP will include a dict called
  35420. \fBdict\fP\&.
  35421. .sp
  35422. If the data is not to be translated using one of these methods, decoding may be
  35423. turned off.
  35424. .INDENT 0.0
  35425. .INDENT 3.5
  35426. .sp
  35427. .nf
  35428. .ft C
  35429. salt.utils.http.query(
  35430. \(aqhttp://example.com\(aq,
  35431. decode=False
  35432. )
  35433. .ft P
  35434. .fi
  35435. .UNINDENT
  35436. .UNINDENT
  35437. .sp
  35438. If decoding is turned on, and references to JSON or XML cannot be found, then
  35439. this module will default to plain text, and return the undecoded data as
  35440. \fBtext\fP (even if text is set to \fBFalse\fP; see below).
  35441. .sp
  35442. The \fBquery()\fP function can return the HTTP status code, headers, and/or text
  35443. as required. However, each must individually be turned on.
  35444. .INDENT 0.0
  35445. .INDENT 3.5
  35446. .sp
  35447. .nf
  35448. .ft C
  35449. salt.utils.http.query(
  35450. \(aqhttp://example.com\(aq,
  35451. status=True,
  35452. headers=True,
  35453. text=True
  35454. )
  35455. .ft P
  35456. .fi
  35457. .UNINDENT
  35458. .UNINDENT
  35459. .sp
  35460. The return from these will be found in the return dict as \fBstatus\fP,
  35461. \fBheaders\fP and \fBtext\fP, respectively.
  35462. .SS Writing Return Data to Files
  35463. .sp
  35464. It is possible to write either the return data or headers to files, as soon as
  35465. the response is received from the server, but specifying file locations via the
  35466. \fBtext_out\fP or \fBheaders_out\fP arguments. \fBtext\fP and \fBheaders\fP do not need
  35467. to be returned to the user in order to do this.
  35468. .INDENT 0.0
  35469. .INDENT 3.5
  35470. .sp
  35471. .nf
  35472. .ft C
  35473. salt.utils.http.query(
  35474. \(aqhttp://example.com\(aq,
  35475. text=False,
  35476. headers=False,
  35477. text_out=\(aq/path/to/url_download.txt\(aq,
  35478. headers_out=\(aq/path/to/headers_download.txt\(aq,
  35479. )
  35480. .ft P
  35481. .fi
  35482. .UNINDENT
  35483. .UNINDENT
  35484. .SS SSL Verification
  35485. .sp
  35486. By default, this function will verify SSL certificates. However, for testing or
  35487. debugging purposes, SSL verification can be turned off.
  35488. .INDENT 0.0
  35489. .INDENT 3.5
  35490. .sp
  35491. .nf
  35492. .ft C
  35493. salt.utils.http.query(
  35494. \(aqhttps://example.com\(aq,
  35495. verify_ssl=False,
  35496. )
  35497. .ft P
  35498. .fi
  35499. .UNINDENT
  35500. .UNINDENT
  35501. .SS CA Bundles
  35502. .sp
  35503. The \fBrequests\fP library has its own method of detecting which CA (certificate
  35504. authority) bundle file to use. Usually this is implemented by the packager for
  35505. the specific operating system distribution that you are using. However,
  35506. \fBurllib2\fP requires a little more work under the hood. By default, Salt will
  35507. try to auto\-detect the location of this file. However, if it is not in an
  35508. expected location, or a different path needs to be specified, it may be done so
  35509. using the \fBca_bundle\fP variable.
  35510. .INDENT 0.0
  35511. .INDENT 3.5
  35512. .sp
  35513. .nf
  35514. .ft C
  35515. salt.utils.http.query(
  35516. \(aqhttps://example.com\(aq,
  35517. ca_bundle=\(aq/path/to/ca_bundle.pem\(aq,
  35518. )
  35519. .ft P
  35520. .fi
  35521. .UNINDENT
  35522. .UNINDENT
  35523. .SS Updating CA Bundles
  35524. .sp
  35525. The \fBupdate_ca_bundle()\fP function can be used to update the bundle file at a
  35526. specified location. If the target location is not specified, then it will
  35527. attempt to auto\-detect the location of the bundle file. If the URL to download
  35528. the bundle from does not exist, a bundle will be downloaded from the cURL
  35529. website.
  35530. .sp
  35531. CAUTION: The \fBtarget\fP and the \fBsource\fP should always be specified! Failure
  35532. to specify the \fBtarget\fP may result in the file being written to the wrong
  35533. location on the local system. Failure to specify the \fBsource\fP may cause the
  35534. upstream URL to receive excess unnecessary traffic, and may cause a file to be
  35535. download which is hazardous or does not meet the needs of the user.
  35536. .INDENT 0.0
  35537. .INDENT 3.5
  35538. .sp
  35539. .nf
  35540. .ft C
  35541. salt.utils.http.update_ca_bundle(
  35542. target=\(aq/path/to/ca\-bundle.crt\(aq,
  35543. source=\(aqhttps://example.com/path/to/ca\-bundle.crt\(aq,
  35544. opts=__opts__,
  35545. )
  35546. .ft P
  35547. .fi
  35548. .UNINDENT
  35549. .UNINDENT
  35550. .sp
  35551. The \fBopts\fP parameter should also always be specified. If it is, then the
  35552. \fBtarget\fP and the \fBsource\fP may be specified in the relevant configuration
  35553. file (master or minion) as \fBca_bundle\fP and \fBca_bundle_url\fP, respectively.
  35554. .INDENT 0.0
  35555. .INDENT 3.5
  35556. .sp
  35557. .nf
  35558. .ft C
  35559. ca_bundle: /path/to/ca\-bundle.crt
  35560. ca_bundle_url: https://example.com/path/to/ca\-bundle.crt
  35561. .ft P
  35562. .fi
  35563. .UNINDENT
  35564. .UNINDENT
  35565. .sp
  35566. If Salt is unable to auto\-detect the location of the CA bundle, it will raise
  35567. an error.
  35568. .sp
  35569. The \fBupdate_ca_bundle()\fP function can also be passed a string or a list of
  35570. strings which represent files on the local system, which should be appended (in
  35571. the specified order) to the end of the CA bundle file. This is useful in
  35572. environments where private certs need to be made available, and are not
  35573. otherwise reasonable to add to the bundle file.
  35574. .INDENT 0.0
  35575. .INDENT 3.5
  35576. .sp
  35577. .nf
  35578. .ft C
  35579. salt.utils.http.update_ca_bundle(
  35580. opts=__opts__,
  35581. merge_files=[
  35582. \(aq/etc/ssl/private_cert_1.pem\(aq,
  35583. \(aq/etc/ssl/private_cert_2.pem\(aq,
  35584. \(aq/etc/ssl/private_cert_3.pem\(aq,
  35585. ]
  35586. )
  35587. .ft P
  35588. .fi
  35589. .UNINDENT
  35590. .UNINDENT
  35591. .SS Test Mode
  35592. .sp
  35593. This function may be run in test mode. This mode will perform all work up until
  35594. the actual HTTP request. By default, instead of performing the request, an empty
  35595. dict will be returned. Using this function with \fBTRACE\fP logging turned on will
  35596. reveal the contents of the headers and POST data to be sent.
  35597. .sp
  35598. Rather than returning an empty dict, an alternate \fBtest_url\fP may be passed in.
  35599. If this is detected, then test mode will replace the \fBurl\fP with the
  35600. \fBtest_url\fP, set \fBtest\fP to \fBTrue\fP in the return data, and perform the rest
  35601. of the requested operations as usual. This allows a custom, non\-destructive URL
  35602. to be used for testing when necessary.
  35603. .SS Execution Module
  35604. .sp
  35605. The \fBhttp\fP execution module is a very thin wrapper around the
  35606. \fBsalt.utils.http\fP library. The \fBopts\fP can be passed through as well, but if
  35607. they are not specified, the minion defaults will be used as necessary.
  35608. .sp
  35609. Because passing complete data structures from the command line can be tricky at
  35610. best and dangerous (in terms of execution injection attacks) at worse, the
  35611. \fBdata_file\fP, and \fBheader_file\fP are likely to see more use here.
  35612. .sp
  35613. All methods for the library are available in the execution module, as kwargs.
  35614. .INDENT 0.0
  35615. .INDENT 3.5
  35616. .sp
  35617. .nf
  35618. .ft C
  35619. salt myminion http.query http://example.com/restapi method=POST \e
  35620. username=\(aqlarry\(aq password=\(aq5700g3543v4r\(aq headers=True text=True \e
  35621. status=True decode_type=xml data_render=True \e
  35622. header_file=/tmp/headers.txt data_file=/tmp/data.txt \e
  35623. header_render=True cookies=True persist_session=True
  35624. .ft P
  35625. .fi
  35626. .UNINDENT
  35627. .UNINDENT
  35628. .SS Runner Module
  35629. .sp
  35630. Like the execution module, the \fBhttp\fP runner module is a very thin wrapper
  35631. around the \fBsalt.utils.http\fP library. The only significant difference is that
  35632. because runners execute on the master instead of a minion, a target is not
  35633. required, and default opts will be derived from the master config, rather than
  35634. the minion config.
  35635. .sp
  35636. All methods for the library are available in the runner module, as kwargs.
  35637. .INDENT 0.0
  35638. .INDENT 3.5
  35639. .sp
  35640. .nf
  35641. .ft C
  35642. salt\-run http.query http://example.com/restapi method=POST \e
  35643. username=\(aqlarry\(aq password=\(aq5700g3543v4r\(aq headers=True text=True \e
  35644. status=True decode_type=xml data_render=True \e
  35645. header_file=/tmp/headers.txt data_file=/tmp/data.txt \e
  35646. header_render=True cookies=True persist_session=True
  35647. .ft P
  35648. .fi
  35649. .UNINDENT
  35650. .UNINDENT
  35651. .SS State Module
  35652. .sp
  35653. The state module is a wrapper around the runner module, which applies stateful
  35654. logic to a query. All kwargs as listed above are specified as usual in state
  35655. files, but two more kwargs are available to apply stateful logic. A required
  35656. parameter is \fBmatch\fP, which specifies a pattern to look for in the return
  35657. text. By default, this will perform a string comparison of looking for the
  35658. value of match in the return text. In Python terms this looks like:
  35659. .INDENT 0.0
  35660. .INDENT 3.5
  35661. .sp
  35662. .nf
  35663. .ft C
  35664. if match in html_text:
  35665. return True
  35666. .ft P
  35667. .fi
  35668. .UNINDENT
  35669. .UNINDENT
  35670. .sp
  35671. If more complex pattern matching is required, a regular expression can be used
  35672. by specifying a \fBmatch_type\fP\&. By default this is set to \fBstring\fP, but it
  35673. can be manually set to \fBpcre\fP instead. Please note that despite the name, this
  35674. will use Python\(aqs \fBre.search()\fP rather than \fBre.match()\fP\&.
  35675. .sp
  35676. Therefore, the following states are valid:
  35677. .INDENT 0.0
  35678. .INDENT 3.5
  35679. .sp
  35680. .nf
  35681. .ft C
  35682. http://example.com/restapi:
  35683. http.query:
  35684. \- match: \(aqSUCCESS\(aq
  35685. \- username: \(aqlarry\(aq
  35686. \- password: \(aq5700g3543v4r\(aq
  35687. \- data_render: True
  35688. \- header_file: /tmp/headers.txt
  35689. \- data_file: /tmp/data.txt
  35690. \- header_render: True
  35691. \- cookies: True
  35692. \- persist_session: True
  35693. http://example.com/restapi:
  35694. http.query:
  35695. \- match_type: pcre
  35696. \- match: \(aq(?i)succe[ss|ed]\(aq
  35697. \- username: \(aqlarry\(aq
  35698. \- password: \(aq5700g3543v4r\(aq
  35699. \- data_render: True
  35700. \- header_file: /tmp/headers.txt
  35701. \- data_file: /tmp/data.txt
  35702. \- header_render: True
  35703. \- cookies: True
  35704. \- persist_session: True
  35705. .ft P
  35706. .fi
  35707. .UNINDENT
  35708. .UNINDENT
  35709. .sp
  35710. In addition to, or instead of a match pattern, the status code for a URL can be
  35711. checked. This is done using the \fBstatus\fP argument:
  35712. .INDENT 0.0
  35713. .INDENT 3.5
  35714. .sp
  35715. .nf
  35716. .ft C
  35717. http://example.com/:
  35718. http.query:
  35719. \- status: 200
  35720. .ft P
  35721. .fi
  35722. .UNINDENT
  35723. .UNINDENT
  35724. .sp
  35725. If both are specified, both will be checked, but if only one is \fBTrue\fP and the
  35726. other is \fBFalse\fP, then \fBFalse\fP will be returned. In this case, the comments
  35727. in the return data will contain information for troubleshooting.
  35728. .sp
  35729. Because this is a monitoring state, it will return extra data to code that
  35730. expects it. This data will always include \fBtext\fP and \fBstatus\fP\&. Optionally,
  35731. \fBheaders\fP and \fBdict\fP may also be requested by setting the \fBheaders\fP and
  35732. \fBdecode\fP arguments to True, respectively.
  35733. .SS Using Salt at scale
  35734. .sp
  35735. The focus of this tutorial will be building a Salt infrastructure for handling
  35736. large numbers of minions. This will include tuning, topology, and best practices.
  35737. .sp
  35738. For how to install the Salt Master please
  35739. go here: \fI\%Installing saltstack\fP
  35740. .sp
  35741. \fBNOTE:\fP
  35742. .INDENT 0.0
  35743. .INDENT 3.5
  35744. This tutorial is intended for large installations, although these same settings
  35745. won\(aqt hurt, it may not be worth the complexity to smaller installations.
  35746. .sp
  35747. When used with minions, the term \(aqmany\(aq refers to at least a thousand
  35748. and \(aqa few\(aq always means 500.
  35749. .sp
  35750. For simplicity reasons, this tutorial will default to the standard ports
  35751. used by Salt.
  35752. .UNINDENT
  35753. .UNINDENT
  35754. .SS The Master
  35755. .sp
  35756. The most common problems on the Salt Master are:
  35757. .INDENT 0.0
  35758. .IP 1. 3
  35759. too many minions authing at once
  35760. .IP 2. 3
  35761. too many minions re\-authing at once
  35762. .IP 3. 3
  35763. too many minions re\-connecting at once
  35764. .IP 4. 3
  35765. too many minions returning at once
  35766. .IP 5. 3
  35767. too few resources (CPU/HDD)
  35768. .UNINDENT
  35769. .sp
  35770. The first three are all "thundering herd" problems. To mitigate these issues
  35771. we must configure the minions to back\-off appropriately when the Master is
  35772. under heavy load.
  35773. .sp
  35774. The fourth is caused by masters with little hardware resources in combination
  35775. with a possible bug in ZeroMQ. At least that\(aqs what it looks like till today
  35776. (\fI\%Issue 118651\fP,
  35777. \fI\%Issue 5948\fP,
  35778. \fI\%Mail thread\fP)
  35779. .sp
  35780. To fully understand each problem, it is important to understand, how Salt works.
  35781. .sp
  35782. Very briefly, the Salt Master offers two services to the minions.
  35783. .INDENT 0.0
  35784. .IP \(bu 2
  35785. a job publisher on port 4505
  35786. .IP \(bu 2
  35787. an open port 4506 to receive the minions returns
  35788. .UNINDENT
  35789. .sp
  35790. All minions are always connected to the publisher on port 4505 and only connect
  35791. to the open return port 4506 if necessary. On an idle Master, there will only
  35792. be connections on port 4505.
  35793. .SS Too many minions authing
  35794. .sp
  35795. When the Minion service is first started up, it will connect to its Master\(aqs publisher
  35796. on port 4505. If too many minions are started at once, this can cause a "thundering herd".
  35797. This can be avoided by not starting too many minions at once.
  35798. .sp
  35799. The connection itself usually isn\(aqt the culprit, the more likely cause of master\-side
  35800. issues is the authentication that the Minion must do with the Master. If the Master
  35801. is too heavily loaded to handle the auth request it will time it out. The Minion
  35802. will then wait \fIacceptance_wait_time\fP to retry. If \fIacceptance_wait_time_max\fP is
  35803. set then the Minion will increase its wait time by the \fIacceptance_wait_time\fP each
  35804. subsequent retry until reaching \fIacceptance_wait_time_max\fP\&.
  35805. .SS Too many minions re\-authing
  35806. .sp
  35807. This is most likely to happen in the testing phase of a Salt deployment, when
  35808. all Minion keys have already been accepted, but the framework is being tested
  35809. and parameters are frequently changed in the Salt Master\(aqs configuration
  35810. file(s).
  35811. .sp
  35812. The Salt Master generates a new AES key to encrypt its publications at certain
  35813. events such as a Master restart or the removal of a Minion key. If you are
  35814. encountering this problem of too many minions re\-authing against the Master,
  35815. you will need to recalibrate your setup to reduce the rate of events like a
  35816. Master restart or Minion key removal (\fBsalt\-key \-d\fP).
  35817. .sp
  35818. When the Master generates a new AES key, the minions aren\(aqt notified of this
  35819. but will discover it on the next pub job they receive. When the Minion
  35820. receives such a job it will then re\-auth with the Master. Since Salt does
  35821. minion\-side filtering this means that all the minions will re\-auth on the next
  35822. command published on the master\-\- causing another "thundering herd". This can
  35823. be avoided by setting the
  35824. .INDENT 0.0
  35825. .INDENT 3.5
  35826. .sp
  35827. .nf
  35828. .ft C
  35829. random_reauth_delay: 60
  35830. .ft P
  35831. .fi
  35832. .UNINDENT
  35833. .UNINDENT
  35834. .sp
  35835. in the minions configuration file to a higher value and stagger the amount
  35836. of re\-auth attempts. Increasing this value will of course increase the time
  35837. it takes until all minions are reachable via Salt commands.
  35838. .SS Too many minions re\-connecting
  35839. .sp
  35840. By default the zmq socket will re\-connect every 100ms which for some larger
  35841. installations may be too quick. This will control how quickly the TCP session is
  35842. re\-established, but has no bearing on the auth load.
  35843. .sp
  35844. To tune the minions sockets reconnect attempts, there are a few values in
  35845. the sample configuration file (default values)
  35846. .INDENT 0.0
  35847. .INDENT 3.5
  35848. .sp
  35849. .nf
  35850. .ft C
  35851. recon_default: 1000
  35852. recon_max: 5000
  35853. recon_randomize: True
  35854. .ft P
  35855. .fi
  35856. .UNINDENT
  35857. .UNINDENT
  35858. .INDENT 0.0
  35859. .IP \(bu 2
  35860. recon_default: the default value the socket should use, i.e. 1000. This value is in
  35861. milliseconds. (1000ms = 1 second)
  35862. .IP \(bu 2
  35863. recon_max: the max value that the socket should use as a delay before trying to reconnect
  35864. This value is in milliseconds. (5000ms = 5 seconds)
  35865. .IP \(bu 2
  35866. recon_randomize: enables randomization between recon_default and recon_max
  35867. .UNINDENT
  35868. .sp
  35869. To tune this values to an existing environment, a few decision have to be made.
  35870. .INDENT 0.0
  35871. .IP 1. 3
  35872. How long can one wait, before the minions should be online and reachable via Salt?
  35873. .IP 2. 3
  35874. How many reconnects can the Master handle without a syn flood?
  35875. .UNINDENT
  35876. .sp
  35877. These questions can not be answered generally. Their answers depend on the
  35878. hardware and the administrators requirements.
  35879. .sp
  35880. Here is an example scenario with the goal, to have all minions reconnect
  35881. within a 60 second time\-frame on a Salt Master service restart.
  35882. .INDENT 0.0
  35883. .INDENT 3.5
  35884. .sp
  35885. .nf
  35886. .ft C
  35887. recon_default: 1000
  35888. recon_max: 59000
  35889. recon_randomize: True
  35890. .ft P
  35891. .fi
  35892. .UNINDENT
  35893. .UNINDENT
  35894. .sp
  35895. Each Minion will have a randomized reconnect value between \(aqrecon_default\(aq
  35896. and \(aqrecon_default + recon_max\(aq, which in this example means between 1000ms
  35897. and 60000ms (or between 1 and 60 seconds). The generated random\-value will
  35898. be doubled after each attempt to reconnect (ZeroMQ default behavior).
  35899. .sp
  35900. Lets say the generated random value is 11 seconds (or 11000ms).
  35901. .INDENT 0.0
  35902. .INDENT 3.5
  35903. .sp
  35904. .nf
  35905. .ft C
  35906. reconnect 1: wait 11 seconds
  35907. reconnect 2: wait 22 seconds
  35908. reconnect 3: wait 33 seconds
  35909. reconnect 4: wait 44 seconds
  35910. reconnect 5: wait 55 seconds
  35911. reconnect 6: wait time is bigger than 60 seconds (recon_default + recon_max)
  35912. reconnect 7: wait 11 seconds
  35913. reconnect 8: wait 22 seconds
  35914. reconnect 9: wait 33 seconds
  35915. reconnect x: etc.
  35916. .ft P
  35917. .fi
  35918. .UNINDENT
  35919. .UNINDENT
  35920. .sp
  35921. With a thousand minions this will mean
  35922. .INDENT 0.0
  35923. .INDENT 3.5
  35924. .sp
  35925. .nf
  35926. .ft C
  35927. 1000/60 = ~16
  35928. .ft P
  35929. .fi
  35930. .UNINDENT
  35931. .UNINDENT
  35932. .sp
  35933. round about 16 connection attempts a second. These values should be altered to
  35934. values that match your environment. Keep in mind though, that it may grow over
  35935. time and that more minions might raise the problem again.
  35936. .SS Too many minions returning at once
  35937. .sp
  35938. This can also happen during the testing phase, if all minions are addressed at
  35939. once with
  35940. .INDENT 0.0
  35941. .INDENT 3.5
  35942. .sp
  35943. .nf
  35944. .ft C
  35945. $ salt * disk.usage
  35946. .ft P
  35947. .fi
  35948. .UNINDENT
  35949. .UNINDENT
  35950. .sp
  35951. it may cause thousands of minions trying to return their data to the Salt Master
  35952. open port 4506. Also causing a flood of syn\-flood if the Master can\(aqt handle that many
  35953. returns at once.
  35954. .sp
  35955. This can be easily avoided with Salt\(aqs batch mode:
  35956. .INDENT 0.0
  35957. .INDENT 3.5
  35958. .sp
  35959. .nf
  35960. .ft C
  35961. $ salt * disk.usage \-b 50
  35962. .ft P
  35963. .fi
  35964. .UNINDENT
  35965. .UNINDENT
  35966. .sp
  35967. This will only address 50 minions at once while looping through all addressed
  35968. minions.
  35969. .SS Too few resources
  35970. .sp
  35971. The masters resources always have to match the environment. There is no way
  35972. to give good advise without knowing the environment the Master is supposed to
  35973. run in. But here are some general tuning tips for different situations:
  35974. .SS The Master is CPU bound
  35975. .sp
  35976. Salt uses RSA\-Key\-Pairs on the masters and minions end. Both generate 4096
  35977. bit key\-pairs on first start. While the key\-size for the Master is currently
  35978. not configurable, the minions keysize can be configured with different
  35979. key\-sizes. For example with a 2048 bit key:
  35980. .INDENT 0.0
  35981. .INDENT 3.5
  35982. .sp
  35983. .nf
  35984. .ft C
  35985. keysize: 2048
  35986. .ft P
  35987. .fi
  35988. .UNINDENT
  35989. .UNINDENT
  35990. .sp
  35991. With thousands of decryptions, the amount of time that can be saved on the
  35992. masters end should not be neglected. See here for reference:
  35993. \fI\%Pull Request 9235\fP how much
  35994. influence the key\-size can have.
  35995. .sp
  35996. Downsizing the Salt Master\(aqs key is not that important, because the minions
  35997. do not encrypt as many messages as the Master does.
  35998. .sp
  35999. In installations with large or with complex pillar files, it is possible
  36000. for the master to exhibit poor performance as a result of having to render
  36001. many pillar files at once. This exhibit itself in a number of ways, both
  36002. as high load on the master and on minions which block on waiting for their
  36003. pillar to be delivered to them.
  36004. .sp
  36005. To reduce pillar rendering times, it is possible to cache pillars on the
  36006. master. To do this, see the set of master configuration options which
  36007. are prefixed with \fIpillar_cache\fP\&.
  36008. .sp
  36009. If many pillars are encrypted using \fBgpg\fP renderer, it
  36010. is possible to cache GPG data. To do this, see the set of master configuration
  36011. options which are prefixed with \fIgpg_cache\fP\&.
  36012. .sp
  36013. \fBNOTE:\fP
  36014. .INDENT 0.0
  36015. .INDENT 3.5
  36016. Caching pillars or GPG data on the master may introduce security
  36017. considerations. Be certain to read caveats outlined in the master
  36018. configuration file to understand how pillar caching may affect a master\(aqs
  36019. ability to protect sensitive data!
  36020. .UNINDENT
  36021. .UNINDENT
  36022. .SS The Master is disk IO bound
  36023. .sp
  36024. By default, the Master saves every Minion\(aqs return for every job in its
  36025. job\-cache. The cache can then be used later, to lookup results for previous
  36026. jobs. The default directory for this is:
  36027. .INDENT 0.0
  36028. .INDENT 3.5
  36029. .sp
  36030. .nf
  36031. .ft C
  36032. cachedir: /var/cache/salt
  36033. .ft P
  36034. .fi
  36035. .UNINDENT
  36036. .UNINDENT
  36037. .sp
  36038. and then in the \fB/proc\fP directory.
  36039. .sp
  36040. Each job return for every Minion is saved in a single file. Over time this
  36041. directory can grow quite large, depending on the number of published jobs. The
  36042. amount of files and directories will scale with the number of jobs published and
  36043. the retention time defined by
  36044. .INDENT 0.0
  36045. .INDENT 3.5
  36046. .sp
  36047. .nf
  36048. .ft C
  36049. keep_jobs: 24
  36050. .ft P
  36051. .fi
  36052. .UNINDENT
  36053. .UNINDENT
  36054. .INDENT 0.0
  36055. .INDENT 3.5
  36056. .sp
  36057. .nf
  36058. .ft C
  36059. 250 jobs/day * 2000 minions returns = 500,000 files a day
  36060. .ft P
  36061. .fi
  36062. .UNINDENT
  36063. .UNINDENT
  36064. .SS Use and External Job Cache
  36065. .sp
  36066. An external job cache allows for job storage to be placed on an external
  36067. system, such as a database.
  36068. .INDENT 0.0
  36069. .IP \(bu 2
  36070. ext_job_cache: this will have the minions store their return data directly
  36071. into a returner (not sent through the Master)
  36072. .IP \(bu 2
  36073. master_job_cache (New in \fI2014.7.0\fP): this will make the Master store the job
  36074. data using a returner (instead of the local job cache on disk).
  36075. .UNINDENT
  36076. .sp
  36077. If a master has many accepted keys, it may take a long time to publish a job
  36078. because the master must first determine the matching minions and deliver
  36079. that information back to the waiting client before the job can be published.
  36080. .sp
  36081. To mitigate this, a key cache may be enabled. This will reduce the load
  36082. on the master to a single file open instead of thousands or tens of thousands.
  36083. .sp
  36084. This cache is updated by the maintanence process, however, which means that
  36085. minions with keys that are accepted may not be targeted by the master
  36086. for up to sixty seconds by default.
  36087. .sp
  36088. To enable the master key cache, set \fIkey_cache: \(aqsched\(aq\fP in the master
  36089. configuration file.
  36090. .SS Disable The Job Cache
  36091. .sp
  36092. The job cache is a central component of the Salt Master and many aspects of
  36093. the Salt Master will not function correctly without a running job cache.
  36094. .sp
  36095. Disabling the job cache is \fBSTRONGLY DISCOURAGED\fP and should not be done
  36096. unless the master is being used to execute routines that require no history
  36097. or reliable feedback!
  36098. .sp
  36099. The job cache can be disabled:
  36100. .INDENT 0.0
  36101. .INDENT 3.5
  36102. .sp
  36103. .nf
  36104. .ft C
  36105. job_cache: False
  36106. .ft P
  36107. .fi
  36108. .UNINDENT
  36109. .UNINDENT
  36110. .SS How to Convert Jinja Logic to an Execution Module
  36111. .sp
  36112. \fBNOTE:\fP
  36113. .INDENT 0.0
  36114. .INDENT 3.5
  36115. This tutorial assumes a basic knowledge of Salt states and specifically
  36116. experience using the \fImaps.jinja\fP idiom.
  36117. .sp
  36118. This tutorial was written by a salt user who was told "if your maps.jinja
  36119. is too complicated, write an execution module!". If you are experiencing
  36120. over\-complicated jinja, read on.
  36121. .UNINDENT
  36122. .UNINDENT
  36123. .SS The Problem: Jinja Gone Wild
  36124. .sp
  36125. It is often said in the Salt community that "Jinja is not a Programming Language".
  36126. There\(aqs an even older saying known as Maslow\(aqs hammer.
  36127. It goes something like
  36128. "if all you have is a hammer, everything looks like a nail".
  36129. Jinja is a reliable hammer, and so is the \fImaps.jinja\fP idiom.
  36130. Unfortunately, it can lead to code that looks like the following.
  36131. .INDENT 0.0
  36132. .INDENT 3.5
  36133. .sp
  36134. .nf
  36135. .ft C
  36136. # storage/maps.yaml
  36137. {% import_yaml \(aqstorage/defaults.yaml\(aq as default_settings %}
  36138. {% set storage = default_settings.storage %}
  36139. {% do storage.update(salt[\(aqgrains.filter_by\(aq]({
  36140. \(aqDebian\(aq: {
  36141. },
  36142. \(aqRedHat\(aq: {
  36143. }
  36144. }, merge=salt[\(aqpillar.get\(aq](\(aqstorage:lookup\(aq))) %}
  36145. {% if \(aqVirtualBox\(aq == grains.get(\(aqvirtual\(aq, None) or \(aqoracle\(aq == grains.get(\(aqvirtual\(aq, None) %}
  36146. {% do storage.update({\(aqdepot_ip\(aq: \(aq192.168.33.81\(aq, \(aqserver_ip\(aq: \(aq192.168.33.51\(aq}) %}
  36147. {% else %}
  36148. {% set colo = pillar.get(\(aqinventory\(aq, {}).get(\(aqcolo\(aq, \(aqUnknown\(aq) %}
  36149. {% set servers_list = pillar.get(\(aqstorage_servers\(aq, {}).get(colo, [storage.depot_ip, ]) %}
  36150. {% if opts.id.startswith(\(aqfoo\(aq) %}
  36151. {% set modulus = servers_list | count %}
  36152. {% set integer_id = opts.id | replace(\(aqfoo\(aq, \(aq\(aq) | int %}
  36153. {% set server_index = integer_id % modulus %}
  36154. {% else %}
  36155. {% set server_index = 0 %}
  36156. {% endif %}
  36157. {% do storage.update({\(aqserver_ip\(aq: servers_list[server_index]}) %}
  36158. {% endif %}
  36159. {% for network, _ in salt.pillar.get(\(aqinventory:networks\(aq, {}) | dictsort %}
  36160. {% do storage.ipsets.hash_net.foo_networks.append(network) %}
  36161. {% endfor %}
  36162. .ft P
  36163. .fi
  36164. .UNINDENT
  36165. .UNINDENT
  36166. .sp
  36167. This is an example from the author\(aqs salt formulae demonstrating misuse of jinja.
  36168. Aside from being difficult to read and maintain,
  36169. accessing the logic it contains from a non\-jinja renderer
  36170. while probably possible is a significant barrier!
  36171. .SS Refactor
  36172. .sp
  36173. The first step is to reduce the maps.jinja file to something reasonable.
  36174. This gives us an idea of what the module we are writing needs to do.
  36175. There is a lot of logic around selecting a storage server ip.
  36176. Let\(aqs move that to an execution module.
  36177. .INDENT 0.0
  36178. .INDENT 3.5
  36179. .sp
  36180. .nf
  36181. .ft C
  36182. # storage/maps.yaml
  36183. {% import_yaml \(aqstorage/defaults.yaml\(aq as default_settings %}
  36184. {% set storage = default_settings.storage %}
  36185. {% do storage.update(salt[\(aqgrains.filter_by\(aq]({
  36186. \(aqDebian\(aq: {
  36187. },
  36188. \(aqRedHat\(aq: {
  36189. }
  36190. }, merge=salt[\(aqpillar.get\(aq](\(aqstorage:lookup\(aq))) %}
  36191. {% if \(aqVirtualBox\(aq == grains.get(\(aqvirtual\(aq, None) or \(aqoracle\(aq == grains.get(\(aqvirtual\(aq, None) %}
  36192. {% do storage.update({\(aqdepot_ip\(aq: \(aq192.168.33.81\(aq}) %}
  36193. {% endif %}
  36194. {% do storage.update({\(aqserver_ip\(aq: salt[\(aqstorage.ip\(aq]()}) %}
  36195. {% for network, _ in salt.pillar.get(\(aqinventory:networks\(aq, {}) | dictsort %}
  36196. {% do storage.ipsets.hash_net.af_networks.append(network) %}
  36197. {% endfor %}
  36198. .ft P
  36199. .fi
  36200. .UNINDENT
  36201. .UNINDENT
  36202. .sp
  36203. And then, write the module.
  36204. Note how the module encapsulates all of the logic around finding the storage server IP.
  36205. .INDENT 0.0
  36206. .INDENT 3.5
  36207. .sp
  36208. .nf
  36209. .ft C
  36210. # _modules/storage.py
  36211. #!python
  36212. \(aq\(aq\(aq
  36213. Functions related to storage servers.
  36214. \(aq\(aq\(aq
  36215. import re
  36216. def ips():
  36217. \(aq\(aq\(aq
  36218. Provide a list of all local storage server IPs.
  36219. CLI Example::
  36220. salt \e* storage.ips
  36221. \(aq\(aq\(aq
  36222. if __grains__.get(\(aqvirtual\(aq, None) in [\(aqVirtualBox\(aq, \(aqoracle\(aq]:
  36223. return [\(aq192.168.33.51\(aq, ]
  36224. colo = __pillar__.get(\(aqinventory\(aq, {}).get(\(aqcolo\(aq, \(aqUnknown\(aq)
  36225. return __pillar__.get(\(aqstorage_servers\(aq, {}).get(colo, [\(aqunknown\(aq, ])
  36226. def ip():
  36227. \(aq\(aq\(aq
  36228. Select and return a local storage server IP.
  36229. This loadbalances across storage servers by using the modulus of the client\(aqs id number.
  36230. :maintainer: Andrew Hammond <ahammond@anchorfree.com>
  36231. :maturity: new
  36232. :depends: None
  36233. :platform: all
  36234. CLI Example::
  36235. salt \e* storage.ip
  36236. \(aq\(aq\(aq
  36237. numerical_suffix = re.compile(r\(aq^.*(\ed+)$\(aq)
  36238. servers_list = ips()
  36239. m = numerical_suffix.match(__grains__[\(aqid\(aq])
  36240. if m:
  36241. modulus = len(servers_list)
  36242. server_number = int(m.group(1))
  36243. server_index = server_number % modulus
  36244. else:
  36245. server_index = 0
  36246. return servers_list[server_index]
  36247. .ft P
  36248. .fi
  36249. .UNINDENT
  36250. .UNINDENT
  36251. .SS Conclusion
  36252. .sp
  36253. That was... surprisingly straight\-forward.
  36254. Now the logic is available in every renderer, instead of just Jinja.
  36255. Best of all, it can be maintained in Python,
  36256. which is a whole lot easier than Jinja.
  36257. .SS Using Apache Libcloud for declarative and procedural multi\-cloud orchestration
  36258. .sp
  36259. New in version 2018.3.0.
  36260. .sp
  36261. \fBNOTE:\fP
  36262. .INDENT 0.0
  36263. .INDENT 3.5
  36264. This walkthrough assumes basic knowledge of Salt and Salt States. To get up to speed, check out the
  36265. Salt Walkthrough\&.
  36266. .UNINDENT
  36267. .UNINDENT
  36268. .sp
  36269. Apache Libcloud is a Python library which hides differences between different cloud provider APIs and allows
  36270. you to manage different cloud resources through a unified and easy to use API. Apache Libcloud supports over
  36271. 60 cloud platforms, including Amazon, Microsoft Azure, DigitalOcean, Google Cloud Platform and OpenStack.
  36272. .INDENT 0.0
  36273. .TP
  36274. .B Execution and state modules are available for Compute, DNS, Storage and Load Balancer drivers from Apache Libcloud in
  36275. SaltStack.
  36276. .UNINDENT
  36277. .INDENT 0.0
  36278. .IP \(bu 2
  36279. .INDENT 2.0
  36280. .TP
  36281. .B \fBlibcloud_compute\fP \- Compute \-
  36282. services such as OpenStack Nova, Amazon EC2, Microsoft Azure VMs
  36283. .UNINDENT
  36284. .IP \(bu 2
  36285. .INDENT 2.0
  36286. .TP
  36287. .B \fBlibcloud_dns\fP \- DNS as a Service \-
  36288. services such as Amazon Route 53 and Zerigo
  36289. .UNINDENT
  36290. .IP \(bu 2
  36291. .INDENT 2.0
  36292. .TP
  36293. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service \-
  36294. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36295. .UNINDENT
  36296. .IP \(bu 2
  36297. .INDENT 2.0
  36298. .TP
  36299. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN \-
  36300. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36301. .UNINDENT
  36302. .UNINDENT
  36303. .sp
  36304. These modules are designed as a way of having a multi\-cloud deployment and abstracting simple differences
  36305. between platform to design a high\-availability architecture.
  36306. .sp
  36307. The Apache Libcloud functionality is available through both execution modules and Salt states.
  36308. .SS Configuring Drivers
  36309. .sp
  36310. Drivers can be configured in the Salt Configuration/Minion settings. All libcloud modules expect a list of "profiles" to
  36311. be configured with authentication details for each driver.
  36312. .sp
  36313. Each driver will have a string identifier, these can be found in the libcloud.<api>.types.Provider class
  36314. for each API, \fI\%https://libcloud.readthedocs.io/en/latest/supported_providers.html\fP
  36315. .sp
  36316. Some drivers require additional parameters, which are documented in the Apache Libcloud documentation. For example,
  36317. GoDaddy DNS expects "\fIshopper_id\fP", which is the customer ID. These additional parameters can be added to the profile settings
  36318. and will be passed directly to the driver instantiation method.
  36319. .INDENT 0.0
  36320. .INDENT 3.5
  36321. .sp
  36322. .nf
  36323. .ft C
  36324. libcloud_dns:
  36325. godaddy:
  36326. driver: godaddy
  36327. shopper_id: 90425123
  36328. key: AFDDJFGIjDFVNSDIFNASMC
  36329. secret: FG(#f8vdfgjlkm)
  36330. libcloud_storage:
  36331. google:
  36332. driver: google_storage
  36333. key: GOOG4ASDIDFNVIdfnIVW
  36334. secret: R+qYE9hkfdhv89h4invhdfvird4Pq3an8rnK
  36335. .ft P
  36336. .fi
  36337. .UNINDENT
  36338. .UNINDENT
  36339. .sp
  36340. You can have multiple profiles for a single driver, for example if you wanted 2 DNS profiles for Amazon Route53,
  36341. naming them "route53_prod" and "route54_test" would help your
  36342. administrators distinguish their purpose.
  36343. .INDENT 0.0
  36344. .INDENT 3.5
  36345. .sp
  36346. .nf
  36347. .ft C
  36348. libcloud_dns:
  36349. route53_prod:
  36350. driver: route53
  36351. key: AFDDJFGIjDFVNSDIFNASMC
  36352. secret: FG(#f8vdfgjlkm)
  36353. route53_test:
  36354. driver: route53
  36355. key: AFDDJFGIjdfgdfgdf
  36356. secret: FG(#f8vdfgjlkm)
  36357. .ft P
  36358. .fi
  36359. .UNINDENT
  36360. .UNINDENT
  36361. .SS Using the execution modules
  36362. .sp
  36363. Amongst over 60 clouds that Apache Libcloud supports, you can add profiles to your Salt configuration to access and control these clouds.
  36364. Each of the libcloud execution modules exposes the common API methods for controlling Compute, DNS, Load Balancers and Object Storage.
  36365. To see which functions are supported across specific clouds, see the Libcloud \fI\%supported methods\fP documentation.
  36366. .sp
  36367. The module documentation explains each of the API methods and how to leverage them.
  36368. .INDENT 0.0
  36369. .IP \(bu 2
  36370. .INDENT 2.0
  36371. .TP
  36372. .B \fBlibcloud_compute\fP \- Compute \-
  36373. services such as OpenStack Nova, Amazon EC2, Microsoft Azure VMs
  36374. .UNINDENT
  36375. .IP \(bu 2
  36376. .INDENT 2.0
  36377. .TP
  36378. .B \fBlibcloud_dns\fP \- DNS as a Service \-
  36379. services such as Amazon Route 53 and Zerigo
  36380. .UNINDENT
  36381. .IP \(bu 2
  36382. .INDENT 2.0
  36383. .TP
  36384. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service \-
  36385. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36386. .UNINDENT
  36387. .IP \(bu 2
  36388. .INDENT 2.0
  36389. .TP
  36390. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN \-
  36391. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36392. .UNINDENT
  36393. .UNINDENT
  36394. .sp
  36395. For example, listing buckets in the Google Storage platform:
  36396. .INDENT 0.0
  36397. .INDENT 3.5
  36398. .sp
  36399. .nf
  36400. .ft C
  36401. $ salt\-call libcloud_storage.list_containers google
  36402. local:
  36403. |_
  36404. \-\-\-\-\-\-\-\-\-\-
  36405. extra:
  36406. \-\-\-\-\-\-\-\-\-\-
  36407. creation_date:
  36408. 2017\-01\-05T05:44:56.324Z
  36409. name:
  36410. anthonypjshaw
  36411. .ft P
  36412. .fi
  36413. .UNINDENT
  36414. .UNINDENT
  36415. .sp
  36416. The Apache Libcloud storage module can be used to synchronize files between multiple storage clouds,
  36417. such as Google Storage, S3 and OpenStack Swift
  36418. .INDENT 0.0
  36419. .INDENT 3.5
  36420. .sp
  36421. .nf
  36422. .ft C
  36423. $ salt \(aq*\(aq libcloud_storage.download_object DeploymentTools test.sh /tmp/test.sh google_storage
  36424. .ft P
  36425. .fi
  36426. .UNINDENT
  36427. .UNINDENT
  36428. .SS Using the state modules
  36429. .sp
  36430. For each configured profile, the assets available in the API (e.g. storage objects, containers,
  36431. DNS records and load balancers) can be deployed via Salt\(aqs state system.
  36432. .sp
  36433. The state module documentation explains the specific states that each module supports
  36434. .INDENT 0.0
  36435. .IP \(bu 2
  36436. .INDENT 2.0
  36437. .TP
  36438. .B \fBlibcloud_storage\fP \- Cloud Object Storage and CDN
  36439. .INDENT 7.0
  36440. .IP \(bu 2
  36441. services such as Amazon S3 and Rackspace CloudFiles, OpenStack Swift
  36442. .UNINDENT
  36443. .UNINDENT
  36444. .IP \(bu 2
  36445. .INDENT 2.0
  36446. .TP
  36447. .B \fBlibcloud_loadbalancer\fP \- Load Balancers as a Service
  36448. .INDENT 7.0
  36449. .IP \(bu 2
  36450. services such as Amazon Elastic Load Balancer and GoGrid LoadBalancers
  36451. .UNINDENT
  36452. .UNINDENT
  36453. .IP \(bu 2
  36454. .INDENT 2.0
  36455. .TP
  36456. .B \fBlibcloud_dns\fP \- DNS as a Service
  36457. .INDENT 7.0
  36458. .IP \(bu 2
  36459. services such as Amazon Route 53 and Zerigo
  36460. .UNINDENT
  36461. .UNINDENT
  36462. .UNINDENT
  36463. .sp
  36464. For DNS, the state modules can be used to provide DNS resilience for multiple nameservers, for example:
  36465. .INDENT 0.0
  36466. .INDENT 3.5
  36467. .sp
  36468. .nf
  36469. .ft C
  36470. libcloud_dns:
  36471. godaddy:
  36472. driver: godaddy
  36473. shopper_id: 12345
  36474. key: 2orgk34kgk34g
  36475. secret: fjgoidhjgoim
  36476. amazon:
  36477. driver: route53
  36478. key: blah
  36479. secret: blah
  36480. .ft P
  36481. .fi
  36482. .UNINDENT
  36483. .UNINDENT
  36484. .sp
  36485. And then in a state file:
  36486. .INDENT 0.0
  36487. .INDENT 3.5
  36488. .sp
  36489. .nf
  36490. .ft C
  36491. webserver:
  36492. libcloud_dns.zone_present:
  36493. name: mywebsite.com
  36494. profile: godaddy
  36495. libcloud_dns.record_present:
  36496. name: www
  36497. zone: mywebsite.com
  36498. type: A
  36499. data: 12.34.32.3
  36500. profile: godaddy
  36501. libcloud_dns.zone_present:
  36502. name: mywebsite.com
  36503. profile: amazon
  36504. libcloud_dns.record_present:
  36505. name: www
  36506. zone: mywebsite.com
  36507. type: A
  36508. data: 12.34.32.3
  36509. profile: amazon
  36510. .ft P
  36511. .fi
  36512. .UNINDENT
  36513. .UNINDENT
  36514. .sp
  36515. This could be combined with a multi\-cloud load balancer deployment,
  36516. .INDENT 0.0
  36517. .INDENT 3.5
  36518. .sp
  36519. .nf
  36520. .ft C
  36521. webserver:
  36522. libcloud_dns.zone_present:
  36523. \- name: mywebsite.com
  36524. \- profile: godaddy
  36525. ...
  36526. libcloud_loadbalancer.balancer_present:
  36527. \- name: web_main
  36528. \- port: 80
  36529. \- protocol: http
  36530. \- members:
  36531. \- ip: 1.2.4.5
  36532. port: 80
  36533. \- ip: 2.4.5.6
  36534. port: 80
  36535. \- profile: google_gce
  36536. libcloud_loadbalancer.balancer_present:
  36537. \- name: web_main
  36538. \- port: 80
  36539. \- protocol: http
  36540. \- members:
  36541. \- ip: 1.2.4.5
  36542. port: 80
  36543. \- ip: 2.4.5.6
  36544. port: 80
  36545. \- profile: amazon_elb
  36546. .ft P
  36547. .fi
  36548. .UNINDENT
  36549. .UNINDENT
  36550. .sp
  36551. Extended parameters can be passed to the specific cloud, for example you can specify the region with the Google Cloud API, because
  36552. \fIcreate_balancer\fP can accept a \fIex_region\fP argument. Adding this argument to the state will pass the additional command to the driver.
  36553. .INDENT 0.0
  36554. .INDENT 3.5
  36555. .sp
  36556. .nf
  36557. .ft C
  36558. lb_test:
  36559. libcloud_loadbalancer.balancer_absent:
  36560. \- name: example
  36561. \- port: 80
  36562. \- protocol: http
  36563. \- profile: google
  36564. \- ex_region: us\-east1
  36565. .ft P
  36566. .fi
  36567. .UNINDENT
  36568. .UNINDENT
  36569. .SS Accessing custom arguments in execution modules
  36570. .sp
  36571. Some cloud providers have additional functionality that can be accessed on top of the base API, for example
  36572. the Google Cloud Engine load balancer service offers the ability to provision load balancers into a specific region.
  36573. .sp
  36574. Looking at the \fI\%API documentation\fP,
  36575. we can see that it expects an \fIex_region\fP in the \fIcreate_balancer\fP method, so when we execute the salt command, we can add this additional parameter like this:
  36576. .INDENT 0.0
  36577. .INDENT 3.5
  36578. .sp
  36579. .nf
  36580. .ft C
  36581. $ salt myminion libcloud_storage.create_balancer my_balancer 80 http profile1 ex_region=us\-east1
  36582. $ salt myminion libcloud_storage.list_container_objects my_bucket profile1 ex_prefix=me
  36583. .ft P
  36584. .fi
  36585. .UNINDENT
  36586. .UNINDENT
  36587. .SS Accessing custom methods in Libcloud drivers
  36588. .sp
  36589. Some cloud APIs have additional methods that are prefixed with \fIex_\fP in Apache Libcloud, these methods
  36590. are part of the non\-standard API but can still
  36591. be accessed from the Salt modules for \fIlibcloud_storage\fP, \fIlibcloud_loadbalancer\fP and \fIlibcloud_dns\fP\&.
  36592. The extra methods are available via the \fIextra\fP command, which expects the name of the method as the
  36593. first argument, the profile as the second and then
  36594. accepts a list of keyword arguments to pass onto the driver method, for example, accessing permissions in Google Storage objects:
  36595. .INDENT 0.0
  36596. .INDENT 3.5
  36597. .sp
  36598. .nf
  36599. .ft C
  36600. $ salt myminion libcloud_storage.extra ex_get_permissions google container_name=my_container object_name=me.jpg \-\-out=yaml
  36601. .ft P
  36602. .fi
  36603. .UNINDENT
  36604. .UNINDENT
  36605. .SS Example profiles
  36606. .SS Google Cloud
  36607. .sp
  36608. Using Service Accounts with GCE, you can provide a path to the JSON file and the project name in the parameters.
  36609. .INDENT 0.0
  36610. .INDENT 3.5
  36611. .sp
  36612. .nf
  36613. .ft C
  36614. google:
  36615. driver: gce
  36616. user_id: 234234\-compute@developer.gserviceaccount.com
  36617. key: /path/to/service_account_download.json
  36618. auth_type: SA
  36619. project: project\-name
  36620. .ft P
  36621. .fi
  36622. .UNINDENT
  36623. .UNINDENT
  36624. .SS LXC Management with Salt
  36625. .sp
  36626. \fBNOTE:\fP
  36627. .INDENT 0.0
  36628. .INDENT 3.5
  36629. This walkthrough assumes basic knowledge of Salt. To get up to speed, check
  36630. out the Salt Walkthrough\&.
  36631. .UNINDENT
  36632. .UNINDENT
  36633. .SS Dependencies
  36634. .sp
  36635. Manipulation of LXC containers in Salt requires the minion to have an LXC
  36636. version of at least 1.0 (an alpha or beta release of LXC 1.0 is acceptable).
  36637. The following distributions are known to have new enough versions of LXC
  36638. packaged:
  36639. .INDENT 0.0
  36640. .IP \(bu 2
  36641. RHEL/CentOS 6 and later (via \fI\%EPEL\fP)
  36642. .IP \(bu 2
  36643. Fedora (All non\-EOL releases)
  36644. .IP \(bu 2
  36645. Debian 8.0 (Jessie)
  36646. .IP \(bu 2
  36647. Ubuntu 14.04 LTS and later (LXC templates are packaged separately as
  36648. \fBlxc\-templates\fP, it is recommended to also install this package)
  36649. .IP \(bu 2
  36650. openSUSE 13.2 and later
  36651. .UNINDENT
  36652. .SS Profiles
  36653. .sp
  36654. Profiles allow for a sort of shorthand for commonly\-used
  36655. configurations to be defined in the minion config file, grains, pillar, or the master config file. The
  36656. profile is retrieved by Salt using the \fBconfig.get\fP function, which looks in those locations, in that
  36657. order. This allows for profiles to be defined centrally in the master config
  36658. file, with several options for overriding them (if necessary) on groups of
  36659. minions or individual minions.
  36660. .sp
  36661. There are two types of profiles:
  36662. .INDENT 0.0
  36663. .INDENT 3.5
  36664. .INDENT 0.0
  36665. .IP \(bu 2
  36666. One for defining the parameters used in container creation/clone.
  36667. .IP \(bu 2
  36668. One for defining the container\(aqs network interface(s) settings.
  36669. .UNINDENT
  36670. .UNINDENT
  36671. .UNINDENT
  36672. .SS Container Profiles
  36673. .sp
  36674. LXC container profiles are defined underneath the
  36675. \fBlxc.container_profile\fP config option:
  36676. .INDENT 0.0
  36677. .INDENT 3.5
  36678. .sp
  36679. .nf
  36680. .ft C
  36681. lxc.container_profile:
  36682. centos:
  36683. template: centos
  36684. backing: lvm
  36685. vgname: vg1
  36686. lvname: lxclv
  36687. size: 10G
  36688. centos_big:
  36689. template: centos
  36690. backing: lvm
  36691. vgname: vg1
  36692. lvname: lxclv
  36693. size: 20G
  36694. .ft P
  36695. .fi
  36696. .UNINDENT
  36697. .UNINDENT
  36698. .sp
  36699. Profiles are retrieved using the \fBconfig.get\fP
  36700. function, with the \fBrecurse\fP merge strategy. This means that a profile can be
  36701. defined at a lower level (for example, the master config file) and then parts
  36702. of it can be overridden at a higher level (for example, in pillar data).
  36703. Consider the following container profile data:
  36704. .sp
  36705. \fBIn the Master config file:\fP
  36706. .INDENT 0.0
  36707. .INDENT 3.5
  36708. .sp
  36709. .nf
  36710. .ft C
  36711. lxc.container_profile:
  36712. centos:
  36713. template: centos
  36714. backing: lvm
  36715. vgname: vg1
  36716. lvname: lxclv
  36717. size: 10G
  36718. .ft P
  36719. .fi
  36720. .UNINDENT
  36721. .UNINDENT
  36722. .sp
  36723. \fBIn the Pillar data\fP
  36724. .INDENT 0.0
  36725. .INDENT 3.5
  36726. .sp
  36727. .nf
  36728. .ft C
  36729. lxc.container_profile:
  36730. centos:
  36731. size: 20G
  36732. .ft P
  36733. .fi
  36734. .UNINDENT
  36735. .UNINDENT
  36736. .sp
  36737. Any minion with the above Pillar data would have the \fBsize\fP parameter in the
  36738. \fBcentos\fP profile overridden to 20G, while those minions without the above
  36739. Pillar data would have the 10G \fBsize\fP value. This is another way of achieving
  36740. the same result as the \fBcentos_big\fP profile above, without having to define
  36741. another whole profile that differs in just one value.
  36742. .sp
  36743. \fBNOTE:\fP
  36744. .INDENT 0.0
  36745. .INDENT 3.5
  36746. In the 2014.7.x release cycle and earlier, container profiles are defined
  36747. under \fBlxc.profile\fP\&. This parameter will still work in version 2015.5.0,
  36748. but is deprecated and will be removed in a future release. Please note
  36749. however that the profile merging feature described above will only work
  36750. with profiles defined under \fBlxc.container_profile\fP, and only in versions
  36751. 2015.5.0 and later.
  36752. .UNINDENT
  36753. .UNINDENT
  36754. .sp
  36755. Additionally, in version 2015.5.0 container profiles have been expanded to
  36756. support passing template\-specific CLI options to \fBlxc.create\fP\&. Below is a table describing the parameters which
  36757. can be configured in container profiles:
  36758. .TS
  36759. center;
  36760. |l|l|l|.
  36761. _
  36762. T{
  36763. Parameter
  36764. T} T{
  36765. 2015.5.0 and Newer
  36766. T} T{
  36767. 2014.7.x and Earlier
  36768. T}
  36769. _
  36770. T{
  36771. \fItemplate\fP\s-2\u1\d\s0
  36772. T} T{
  36773. Yes
  36774. T} T{
  36775. Yes
  36776. T}
  36777. _
  36778. T{
  36779. \fIoptions\fP\s-2\u1\d\s0
  36780. T} T{
  36781. Yes
  36782. T} T{
  36783. No
  36784. T}
  36785. _
  36786. T{
  36787. \fIimage\fP\s-2\u1\d\s0
  36788. T} T{
  36789. Yes
  36790. T} T{
  36791. Yes
  36792. T}
  36793. _
  36794. T{
  36795. \fIbacking\fP
  36796. T} T{
  36797. Yes
  36798. T} T{
  36799. Yes
  36800. T}
  36801. _
  36802. T{
  36803. \fIsnapshot\fP\s-2\u2\d\s0
  36804. T} T{
  36805. Yes
  36806. T} T{
  36807. Yes
  36808. T}
  36809. _
  36810. T{
  36811. \fIlvname\fP\s-2\u1\d\s0
  36812. T} T{
  36813. Yes
  36814. T} T{
  36815. Yes
  36816. T}
  36817. _
  36818. T{
  36819. \fIfstype\fP\s-2\u1\d\s0
  36820. T} T{
  36821. Yes
  36822. T} T{
  36823. Yes
  36824. T}
  36825. _
  36826. T{
  36827. \fIsize\fP
  36828. T} T{
  36829. Yes
  36830. T} T{
  36831. Yes
  36832. T}
  36833. _
  36834. .TE
  36835. .INDENT 0.0
  36836. .IP 1. 3
  36837. Parameter is only supported for container creation, and will be ignored if
  36838. the profile is used when cloning a container.
  36839. .IP 2. 3
  36840. Parameter is only supported for container cloning, and will be ignored if
  36841. the profile is used when not cloning a container.
  36842. .UNINDENT
  36843. .SS Network Profiles
  36844. .sp
  36845. LXC network profiles are defined defined underneath the \fBlxc.network_profile\fP
  36846. config option.
  36847. By default, the module uses a DHCP based configuration and try to guess a bridge to
  36848. get connectivity.
  36849. .sp
  36850. \fBWARNING:\fP
  36851. .INDENT 0.0
  36852. .INDENT 3.5
  36853. on pre \fB2015.5.2\fP, you need to specify explicitly the network bridge
  36854. .UNINDENT
  36855. .UNINDENT
  36856. .INDENT 0.0
  36857. .INDENT 3.5
  36858. .sp
  36859. .nf
  36860. .ft C
  36861. lxc.network_profile:
  36862. centos:
  36863. eth0:
  36864. link: br0
  36865. type: veth
  36866. flags: up
  36867. ubuntu:
  36868. eth0:
  36869. link: lxcbr0
  36870. type: veth
  36871. flags: up
  36872. .ft P
  36873. .fi
  36874. .UNINDENT
  36875. .UNINDENT
  36876. .sp
  36877. As with container profiles, network profiles are retrieved using the
  36878. \fBconfig.get\fP function, with the \fBrecurse\fP
  36879. merge strategy. Consider the following network profile data:
  36880. .sp
  36881. \fBIn the Master config file:\fP
  36882. .INDENT 0.0
  36883. .INDENT 3.5
  36884. .sp
  36885. .nf
  36886. .ft C
  36887. lxc.network_profile:
  36888. centos:
  36889. eth0:
  36890. link: br0
  36891. type: veth
  36892. flags: up
  36893. .ft P
  36894. .fi
  36895. .UNINDENT
  36896. .UNINDENT
  36897. .sp
  36898. \fBIn the Pillar data\fP
  36899. .INDENT 0.0
  36900. .INDENT 3.5
  36901. .sp
  36902. .nf
  36903. .ft C
  36904. lxc.network_profile:
  36905. centos:
  36906. eth0:
  36907. link: lxcbr0
  36908. .ft P
  36909. .fi
  36910. .UNINDENT
  36911. .UNINDENT
  36912. .sp
  36913. Any minion with the above Pillar data would use the \fBlxcbr0\fP interface as the
  36914. bridge interface for any container configured using the \fBcentos\fP network
  36915. profile, while those minions without the above Pillar data would use the
  36916. \fBbr0\fP interface for the same.
  36917. .sp
  36918. \fBNOTE:\fP
  36919. .INDENT 0.0
  36920. .INDENT 3.5
  36921. In the 2014.7.x release cycle and earlier, network profiles are defined
  36922. under \fBlxc.nic\fP\&. This parameter will still work in version 2015.5.0, but
  36923. is deprecated and will be removed in a future release. Please note however
  36924. that the profile merging feature described above will only work with
  36925. profiles defined under \fBlxc.network_profile\fP, and only in versions
  36926. 2015.5.0 and later.
  36927. .UNINDENT
  36928. .UNINDENT
  36929. .sp
  36930. The following are parameters which can be configured in network profiles. These
  36931. will directly correspond to a parameter in an LXC configuration file (see \fBman
  36932. 5 lxc.container.conf\fP).
  36933. .INDENT 0.0
  36934. .IP \(bu 2
  36935. \fBtype\fP \- Corresponds to \fBlxc.network.type\fP
  36936. .IP \(bu 2
  36937. \fBlink\fP \- Corresponds to \fBlxc.network.link\fP
  36938. .IP \(bu 2
  36939. \fBflags\fP \- Corresponds to \fBlxc.network.flags\fP
  36940. .UNINDENT
  36941. .sp
  36942. Interface\-specific options (MAC address, IPv4/IPv6, etc.) must be passed on a
  36943. container\-by\-container basis, for instance using the \fBnic_opts\fP argument to
  36944. \fBlxc.create\fP:
  36945. .INDENT 0.0
  36946. .INDENT 3.5
  36947. .sp
  36948. .nf
  36949. .ft C
  36950. salt myminion lxc.create container1 profile=centos network_profile=centos nic_opts=\(aq{eth0: {ipv4: 10.0.0.20/24, gateway: 10.0.0.1}}\(aq
  36951. .ft P
  36952. .fi
  36953. .UNINDENT
  36954. .UNINDENT
  36955. .sp
  36956. \fBWARNING:\fP
  36957. .INDENT 0.0
  36958. .INDENT 3.5
  36959. The \fBipv4\fP, \fBipv6\fP, \fBgateway\fP, and \fBlink\fP (bridge) settings in
  36960. network profiles / nic_opts will only work if the container doesn\(aqt redefine
  36961. the network configuration (for example in
  36962. \fB/etc/sysconfig/network\-scripts/ifcfg\-<interface_name>\fP on RHEL/CentOS,
  36963. or \fB/etc/network/interfaces\fP on Debian/Ubuntu/etc.). Use these with
  36964. caution. The container images installed using the \fBdownload\fP template,
  36965. for instance, typically are configured for eth0 to use DHCP, which will
  36966. conflict with static IP addresses set at the container level.
  36967. .UNINDENT
  36968. .UNINDENT
  36969. .sp
  36970. \fBNOTE:\fP
  36971. .INDENT 0.0
  36972. .INDENT 3.5
  36973. For LXC < 1.0.7 and DHCP support, set \fBipv4.gateway: \(aqauto\(aq\fP is your
  36974. network profile, ie.:
  36975. .INDENT 0.0
  36976. .INDENT 3.5
  36977. .sp
  36978. .nf
  36979. .ft C
  36980. lxc.network_profile.nic:
  36981. debian:
  36982. eth0:
  36983. link: lxcbr0
  36984. ipv4.gateway: \(aqauto\(aq
  36985. .ft P
  36986. .fi
  36987. .UNINDENT
  36988. .UNINDENT
  36989. .UNINDENT
  36990. .UNINDENT
  36991. .SS Old lxc support (<1.0.7)
  36992. .sp
  36993. With saltstack \fB2015.5.2\fP and above, normally the setting is autoselected, but
  36994. before, you\(aqll need to teach your network profile to set
  36995. \fBlxc.network.ipv4.gateway\fP to \fBauto\fP when using a classic ipv4 configuration.
  36996. .sp
  36997. Thus you\(aqll need
  36998. .INDENT 0.0
  36999. .INDENT 3.5
  37000. .sp
  37001. .nf
  37002. .ft C
  37003. lxc.network_profile.foo:
  37004. etho:
  37005. link: lxcbr0
  37006. ipv4.gateway: auto
  37007. .ft P
  37008. .fi
  37009. .UNINDENT
  37010. .UNINDENT
  37011. .SS Tricky network setups Examples
  37012. .sp
  37013. This example covers how to make a container with both an internal ip and a
  37014. public routable ip, wired on two veth pairs.
  37015. .sp
  37016. The another interface which receives directly a public routable ip can\(aqt be on
  37017. the first interface that we reserve for private inter LXC networking.
  37018. .INDENT 0.0
  37019. .INDENT 3.5
  37020. .sp
  37021. .nf
  37022. .ft C
  37023. lxc.network_profile.foo:
  37024. eth0: {gateway: null, bridge: lxcbr0}
  37025. eth1:
  37026. # replace that by your main interface
  37027. \(aqlink\(aq: \(aqbr0\(aq
  37028. \(aqmac\(aq: \(aq00:16:5b:01:24:e1\(aq
  37029. \(aqgateway\(aq: \(aq2.20.9.14\(aq
  37030. \(aqipv4\(aq: \(aq2.20.9.1\(aq
  37031. .ft P
  37032. .fi
  37033. .UNINDENT
  37034. .UNINDENT
  37035. .SS Creating a Container on the CLI
  37036. .SS From a Template
  37037. .sp
  37038. LXC is commonly distributed with several template scripts in
  37039. /usr/share/lxc/templates. Some distros may package these separately in an
  37040. \fBlxc\-templates\fP package, so make sure to check if this is the case.
  37041. .sp
  37042. There are LXC template scripts for several different operating systems, but
  37043. some of them are designed to use tools specific to a given distribution. For
  37044. instance, the \fBubuntu\fP template uses deb_bootstrap, the \fBcentos\fP template
  37045. uses yum, etc., making these templates impractical when a container from a
  37046. different OS is desired.
  37047. .sp
  37048. The \fBlxc.create\fP function is used to create
  37049. containers using a template script. To create a CentOS container named
  37050. \fBcontainer1\fP on a CentOS minion named \fBmycentosminion\fP, using the
  37051. \fBcentos\fP LXC template, one can simply run the following command:
  37052. .INDENT 0.0
  37053. .INDENT 3.5
  37054. .sp
  37055. .nf
  37056. .ft C
  37057. salt mycentosminion lxc.create container1 template=centos
  37058. .ft P
  37059. .fi
  37060. .UNINDENT
  37061. .UNINDENT
  37062. .sp
  37063. For these instances, there is a \fBdownload\fP template which retrieves minimal
  37064. container images for several different operating systems. To use this template,
  37065. it is necessary to provide an \fBoptions\fP parameter when creating the
  37066. container, with three values:
  37067. .INDENT 0.0
  37068. .IP 1. 3
  37069. \fBdist\fP \- the Linux distribution (i.e. \fBubuntu\fP or \fBcentos\fP)
  37070. .IP 2. 3
  37071. \fBrelease\fP \- the release name/version (i.e. \fBtrusty\fP or \fB6\fP)
  37072. .IP 3. 3
  37073. \fBarch\fP \- CPU architecture (i.e. \fBamd64\fP or \fBi386\fP)
  37074. .UNINDENT
  37075. .sp
  37076. The \fBlxc.images\fP function (new in version
  37077. 2015.5.0) can be used to list the available images. Alternatively, the releases
  37078. can be viewed on \fI\%http://images.linuxcontainers.org/images/\fP\&. The images are
  37079. organized in such a way that the \fBdist\fP, \fBrelease\fP, and \fBarch\fP can be
  37080. determined using the following URL format:
  37081. \fBhttp://images.linuxcontainers.org/images/dist/release/arch\fP\&. For example,
  37082. \fBhttp://images.linuxcontainers.org/images/centos/6/amd64\fP would correspond to
  37083. a \fBdist\fP of \fBcentos\fP, a \fBrelease\fP of \fB6\fP, and an \fBarch\fP of \fBamd64\fP\&.
  37084. .sp
  37085. Therefore, to use the \fBdownload\fP template to create a new 64\-bit CentOS 6
  37086. container, the following command can be used:
  37087. .INDENT 0.0
  37088. .INDENT 3.5
  37089. .sp
  37090. .nf
  37091. .ft C
  37092. salt myminion lxc.create container1 template=download options=\(aq{dist: centos, release: 6, arch: amd64}\(aq
  37093. .ft P
  37094. .fi
  37095. .UNINDENT
  37096. .UNINDENT
  37097. .sp
  37098. \fBNOTE:\fP
  37099. .INDENT 0.0
  37100. .INDENT 3.5
  37101. These command\-line options can be placed into a \fI\%container profile\fP, like so:
  37102. .INDENT 0.0
  37103. .INDENT 3.5
  37104. .sp
  37105. .nf
  37106. .ft C
  37107. lxc.container_profile.cent6:
  37108. template: download
  37109. options:
  37110. dist: centos
  37111. release: 6
  37112. arch: amd64
  37113. .ft P
  37114. .fi
  37115. .UNINDENT
  37116. .UNINDENT
  37117. .sp
  37118. The \fBoptions\fP parameter is not supported in profiles for the 2014.7.x
  37119. release cycle and earlier, so it would still need to be provided on the
  37120. command\-line.
  37121. .UNINDENT
  37122. .UNINDENT
  37123. .SS Cloning an Existing Container
  37124. .sp
  37125. To clone a container, use the \fBlxc.clone\fP
  37126. function:
  37127. .INDENT 0.0
  37128. .INDENT 3.5
  37129. .sp
  37130. .nf
  37131. .ft C
  37132. salt myminion lxc.clone container2 orig=container1
  37133. .ft P
  37134. .fi
  37135. .UNINDENT
  37136. .UNINDENT
  37137. .SS Using a Container Image
  37138. .sp
  37139. While cloning is a good way to create new containers from a common base
  37140. container, the source container that is being cloned needs to already exist on
  37141. the minion. This makes deploying a common container across minions difficult.
  37142. For this reason, Salt\(aqs \fBlxc.create\fP is capable
  37143. of installing a container from a tar archive of another container\(aqs rootfs. To
  37144. create an image of a container named \fBcent6\fP, run the following command as
  37145. root:
  37146. .INDENT 0.0
  37147. .INDENT 3.5
  37148. .sp
  37149. .nf
  37150. .ft C
  37151. tar czf cent6.tar.gz \-C /var/lib/lxc/cent6 rootfs
  37152. .ft P
  37153. .fi
  37154. .UNINDENT
  37155. .UNINDENT
  37156. .sp
  37157. \fBNOTE:\fP
  37158. .INDENT 0.0
  37159. .INDENT 3.5
  37160. Before doing this, it is recommended that the container is stopped.
  37161. .UNINDENT
  37162. .UNINDENT
  37163. .sp
  37164. The resulting tarball can then be placed alongside the files in the salt
  37165. fileserver and referenced using a \fBsalt://\fP URL. To create a container using
  37166. an image, use the \fBimage\fP parameter with \fBlxc.create\fP:
  37167. .INDENT 0.0
  37168. .INDENT 3.5
  37169. .sp
  37170. .nf
  37171. .ft C
  37172. salt myminion lxc.create new\-cent6 image=salt://path/to/cent6.tar.gz
  37173. .ft P
  37174. .fi
  37175. .UNINDENT
  37176. .UNINDENT
  37177. .sp
  37178. \fBNOTE:\fP
  37179. .INDENT 0.0
  37180. .INDENT 3.5
  37181. Making images of containers with LVM backing
  37182. .sp
  37183. For containers with LVM backing, the rootfs is not mounted, so it is
  37184. necessary to mount it first before creating the tar archive. When a
  37185. container is created using LVM backing, an empty \fBrootfs\fP dir is handily
  37186. created within \fB/var/lib/lxc/container_name\fP, so this can be used as the
  37187. mountpoint. The location of the logical volume for the container will be
  37188. \fB/dev/vgname/lvname\fP, where \fBvgname\fP is the name of the volume group,
  37189. and \fBlvname\fP is the name of the logical volume. Therefore, assuming a
  37190. volume group of \fBvg1\fP, a logical volume of \fBlxc\-cent6\fP, and a container
  37191. name of \fBcent6\fP, the following commands can be used to create a tar
  37192. archive of the rootfs:
  37193. .INDENT 0.0
  37194. .INDENT 3.5
  37195. .sp
  37196. .nf
  37197. .ft C
  37198. mount /dev/vg1/lxc\-cent6 /var/lib/lxc/cent6/rootfs
  37199. tar czf cent6.tar.gz \-C /var/lib/lxc/cent6 rootfs
  37200. umount /var/lib/lxc/cent6/rootfs
  37201. .ft P
  37202. .fi
  37203. .UNINDENT
  37204. .UNINDENT
  37205. .UNINDENT
  37206. .UNINDENT
  37207. .sp
  37208. \fBWARNING:\fP
  37209. .INDENT 0.0
  37210. .INDENT 3.5
  37211. One caveat of using this method of container creation is that
  37212. \fB/etc/hosts\fP is left unmodified. This could cause confusion for some
  37213. distros if salt\-minion is later installed on the container, as the
  37214. functions that determine the hostname take \fB/etc/hosts\fP into account.
  37215. .sp
  37216. Additionally, when creating an rootfs image, be sure to remove
  37217. \fB/etc/salt/minion_id\fP and make sure that \fBid\fP is not defined in
  37218. \fB/etc/salt/minion\fP, as this will cause similar issues.
  37219. .UNINDENT
  37220. .UNINDENT
  37221. .SS Initializing a New Container as a Salt Minion
  37222. .sp
  37223. The above examples illustrate a few ways to create containers on the CLI, but
  37224. often it is desirable to also have the new container run as a Minion. To do
  37225. this, the \fBlxc.init\fP function can be used. This
  37226. function will do the following:
  37227. .INDENT 0.0
  37228. .IP 1. 3
  37229. Create a new container
  37230. .IP 2. 3
  37231. Optionally set password and/or DNS
  37232. .IP 3. 3
  37233. Bootstrap the minion (using either \fI\%salt\-bootstrap\fP or a custom command)
  37234. .UNINDENT
  37235. .sp
  37236. By default, the new container will be pointed at the same Salt Master as the
  37237. host machine on which the container was created. It will then request to
  37238. authenticate with the Master like any other bootstrapped Minion, at which point
  37239. it can be accepted.
  37240. .INDENT 0.0
  37241. .INDENT 3.5
  37242. .sp
  37243. .nf
  37244. .ft C
  37245. salt myminion lxc.init test1 profile=centos
  37246. salt\-key \-a test1
  37247. .ft P
  37248. .fi
  37249. .UNINDENT
  37250. .UNINDENT
  37251. .sp
  37252. For even greater convenience, the \fBLXC runner\fP contains
  37253. a runner function of the same name (\fBlxc.init\fP),
  37254. which creates a keypair, seeds the new minion with it, and pre\-accepts the key,
  37255. allowing for the new Minion to be created and authorized in a single step:
  37256. .INDENT 0.0
  37257. .INDENT 3.5
  37258. .sp
  37259. .nf
  37260. .ft C
  37261. salt\-run lxc.init test1 host=myminion profile=centos
  37262. .ft P
  37263. .fi
  37264. .UNINDENT
  37265. .UNINDENT
  37266. .SS Running Commands Within a Container
  37267. .sp
  37268. For containers which are not running their own Minion, commands can be run
  37269. within the container in a manner similar to using (\fBcmd.run
  37270. <salt.modules.cmdmod.run\fP). The means of doing this have been changed
  37271. significantly in version 2015.5.0 (though the deprecated behavior will still be
  37272. supported for a few releases). Both the old and new usage are documented
  37273. below.
  37274. .SS 2015.5.0 and Newer
  37275. .sp
  37276. New functions have been added to mimic the behavior of the functions in the
  37277. \fBcmd\fP module. Below is a table with the \fBcmd\fP functions and their \fBlxc\fP module
  37278. equivalents:
  37279. .TS
  37280. center;
  37281. |l|l|l|.
  37282. _
  37283. T{
  37284. Description
  37285. T} T{
  37286. \fBcmd\fP module
  37287. T} T{
  37288. \fBlxc\fP module
  37289. T}
  37290. _
  37291. T{
  37292. Run a command and get all output
  37293. T} T{
  37294. \fBcmd.run\fP
  37295. T} T{
  37296. \fBlxc.run\fP
  37297. T}
  37298. _
  37299. T{
  37300. Run a command and get just stdout
  37301. T} T{
  37302. \fBcmd.run_stdout\fP
  37303. T} T{
  37304. \fBlxc.run_stdout\fP
  37305. T}
  37306. _
  37307. T{
  37308. Run a command and get just stderr
  37309. T} T{
  37310. \fBcmd.run_stderr\fP
  37311. T} T{
  37312. \fBlxc.run_stderr\fP
  37313. T}
  37314. _
  37315. T{
  37316. Run a command and get just the retcode
  37317. T} T{
  37318. \fBcmd.retcode\fP
  37319. T} T{
  37320. \fBlxc.retcode\fP
  37321. T}
  37322. _
  37323. T{
  37324. Run a command and get all information
  37325. T} T{
  37326. \fBcmd.run_all\fP
  37327. T} T{
  37328. \fBlxc.run_all\fP
  37329. T}
  37330. _
  37331. .TE
  37332. .SS 2014.7.x and Earlier
  37333. .sp
  37334. Earlier Salt releases use a single function (\fBlxc.run_cmd\fP) to run commands within containers. Whether stdout,
  37335. stderr, etc. are returned depends on how the function is invoked.
  37336. .sp
  37337. To run a command and return the stdout:
  37338. .INDENT 0.0
  37339. .INDENT 3.5
  37340. .sp
  37341. .nf
  37342. .ft C
  37343. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq
  37344. .ft P
  37345. .fi
  37346. .UNINDENT
  37347. .UNINDENT
  37348. .sp
  37349. To run a command and return the stderr:
  37350. .INDENT 0.0
  37351. .INDENT 3.5
  37352. .sp
  37353. .nf
  37354. .ft C
  37355. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=False stderr=True
  37356. .ft P
  37357. .fi
  37358. .UNINDENT
  37359. .UNINDENT
  37360. .sp
  37361. To run a command and return the retcode:
  37362. .INDENT 0.0
  37363. .INDENT 3.5
  37364. .sp
  37365. .nf
  37366. .ft C
  37367. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=False stderr=False
  37368. .ft P
  37369. .fi
  37370. .UNINDENT
  37371. .UNINDENT
  37372. .sp
  37373. To run a command and return all information:
  37374. .INDENT 0.0
  37375. .INDENT 3.5
  37376. .sp
  37377. .nf
  37378. .ft C
  37379. salt myminion lxc.run_cmd web1 \(aqtail /var/log/messages\(aq stdout=True stderr=True
  37380. .ft P
  37381. .fi
  37382. .UNINDENT
  37383. .UNINDENT
  37384. .SS Container Management Using salt\-cloud
  37385. .sp
  37386. Salt cloud uses under the hood the salt runner and module to manage containers,
  37387. Please look at this chapter
  37388. .SS Container Management Using States
  37389. .sp
  37390. Several states are being renamed or otherwise modified in version 2015.5.0. The
  37391. information in this tutorial refers to the new states. For
  37392. 2014.7.x and earlier, please refer to the \fBdocumentation for the LXC
  37393. states\fP\&.
  37394. .SS Ensuring a Container Is Present
  37395. .sp
  37396. To ensure the existence of a named container, use the \fBlxc.present\fP state. Here are some examples:
  37397. .INDENT 0.0
  37398. .INDENT 3.5
  37399. .sp
  37400. .nf
  37401. .ft C
  37402. # Using a template
  37403. web1:
  37404. lxc.present:
  37405. \- template: download
  37406. \- options:
  37407. dist: centos
  37408. release: 6
  37409. arch: amd64
  37410. # Cloning
  37411. web2:
  37412. lxc.present:
  37413. \- clone_from: web\-base
  37414. # Using a rootfs image
  37415. web3:
  37416. lxc.present:
  37417. \- image: salt://path/to/cent6.tar.gz
  37418. # Using profiles
  37419. web4:
  37420. lxc.present:
  37421. \- profile: centos_web
  37422. \- network_profile: centos
  37423. .ft P
  37424. .fi
  37425. .UNINDENT
  37426. .UNINDENT
  37427. .sp
  37428. \fBWARNING:\fP
  37429. .INDENT 0.0
  37430. .INDENT 3.5
  37431. The \fBlxc.present\fP state will not modify an
  37432. existing container (in other words, it will not re\-create the container).
  37433. If an \fBlxc.present\fP state is run on an
  37434. existing container, there will be no change and the state will return a
  37435. \fBTrue\fP result.
  37436. .UNINDENT
  37437. .UNINDENT
  37438. .sp
  37439. The \fBlxc.present\fP state also includes an
  37440. optional \fBrunning\fP parameter which can be used to ensure that a container is
  37441. running/stopped. Note that there are standalone \fBlxc.running\fP and \fBlxc.stopped\fP
  37442. states which can be used for this purpose.
  37443. .SS Ensuring a Container Does Not Exist
  37444. .sp
  37445. To ensure that a named container is not present, use the \fBlxc.absent\fP state. For example:
  37446. .INDENT 0.0
  37447. .INDENT 3.5
  37448. .sp
  37449. .nf
  37450. .ft C
  37451. web1:
  37452. lxc.absent
  37453. .ft P
  37454. .fi
  37455. .UNINDENT
  37456. .UNINDENT
  37457. .SS Ensuring a Container is Running/Stopped/Frozen
  37458. .sp
  37459. Containers can be in one of three states:
  37460. .INDENT 0.0
  37461. .IP \(bu 2
  37462. \fBrunning\fP \- Container is running and active
  37463. .IP \(bu 2
  37464. \fBfrozen\fP \- Container is running, but all process are blocked and the
  37465. container is essentially non\-active until the container is "unfrozen"
  37466. .IP \(bu 2
  37467. \fBstopped\fP \- Container is not running
  37468. .UNINDENT
  37469. .sp
  37470. Salt has three states (\fBlxc.running\fP,
  37471. \fBlxc.frozen\fP, and \fBlxc.stopped\fP) which can be used to ensure a container is in one
  37472. of these states:
  37473. .INDENT 0.0
  37474. .INDENT 3.5
  37475. .sp
  37476. .nf
  37477. .ft C
  37478. web1:
  37479. lxc.running
  37480. # Restart the container if it was already running
  37481. web2:
  37482. lxc.running:
  37483. \- restart: True
  37484. web3:
  37485. lxc.stopped
  37486. # Explicitly kill all tasks in container instead of gracefully stopping
  37487. web4:
  37488. lxc.stopped:
  37489. \- kill: True
  37490. web5:
  37491. lxc.frozen
  37492. # If container is stopped, do not start it (in which case the state will fail)
  37493. web6:
  37494. lxc.frozen:
  37495. \- start: False
  37496. .ft P
  37497. .fi
  37498. .UNINDENT
  37499. .UNINDENT
  37500. .SS Remote execution tutorial
  37501. .sp
  37502. \fBBefore continuing\fP make sure you have a working Salt installation by
  37503. following the installation and the
  37504. configuration instructions.
  37505. .INDENT 0.0
  37506. .INDENT 3.5
  37507. .IP "Stuck?"
  37508. .sp
  37509. There are many ways to get help from the Salt community including our
  37510. \fI\%mailing list\fP
  37511. and our \fI\%IRC channel\fP #salt.
  37512. .UNINDENT
  37513. .UNINDENT
  37514. .SS Order your minions around
  37515. .sp
  37516. Now that you have a master and at least one minion
  37517. communicating with each other you can perform commands on the minion via the
  37518. \fBsalt\fP command. Salt calls are comprised of three main components:
  37519. .INDENT 0.0
  37520. .INDENT 3.5
  37521. .sp
  37522. .nf
  37523. .ft C
  37524. salt \(aq<target>\(aq <function> [arguments]
  37525. .ft P
  37526. .fi
  37527. .UNINDENT
  37528. .UNINDENT
  37529. .sp
  37530. \fBSEE ALSO:\fP
  37531. .INDENT 0.0
  37532. .INDENT 3.5
  37533. salt manpage
  37534. .UNINDENT
  37535. .UNINDENT
  37536. .SS target
  37537. .sp
  37538. The target component allows you to filter which minions should run the
  37539. following function. The default filter is a glob on the minion id. For example:
  37540. .INDENT 0.0
  37541. .INDENT 3.5
  37542. .sp
  37543. .nf
  37544. .ft C
  37545. salt \(aq*\(aq test.version
  37546. salt \(aq*.example.org\(aq test.version
  37547. .ft P
  37548. .fi
  37549. .UNINDENT
  37550. .UNINDENT
  37551. .sp
  37552. Targets can be based on minion system information using the Grains system:
  37553. .INDENT 0.0
  37554. .INDENT 3.5
  37555. .sp
  37556. .nf
  37557. .ft C
  37558. salt \-G \(aqos:Ubuntu\(aq test.version
  37559. .ft P
  37560. .fi
  37561. .UNINDENT
  37562. .UNINDENT
  37563. .sp
  37564. \fBSEE ALSO:\fP
  37565. .INDENT 0.0
  37566. .INDENT 3.5
  37567. Grains system
  37568. .UNINDENT
  37569. .UNINDENT
  37570. .sp
  37571. Targets can be filtered by regular expression:
  37572. .INDENT 0.0
  37573. .INDENT 3.5
  37574. .sp
  37575. .nf
  37576. .ft C
  37577. salt \-E \(aqvirtmach[0\-9]\(aq test.version
  37578. .ft P
  37579. .fi
  37580. .UNINDENT
  37581. .UNINDENT
  37582. .sp
  37583. Targets can be explicitly specified in a list:
  37584. .INDENT 0.0
  37585. .INDENT 3.5
  37586. .sp
  37587. .nf
  37588. .ft C
  37589. salt \-L \(aqfoo,bar,baz,quo\(aq test.version
  37590. .ft P
  37591. .fi
  37592. .UNINDENT
  37593. .UNINDENT
  37594. .sp
  37595. Or Multiple target types can be combined in one command:
  37596. .INDENT 0.0
  37597. .INDENT 3.5
  37598. .sp
  37599. .nf
  37600. .ft C
  37601. salt \-C \(aqG@os:Ubuntu and webser* or E@database.*\(aq test.version
  37602. .ft P
  37603. .fi
  37604. .UNINDENT
  37605. .UNINDENT
  37606. .SS function
  37607. .sp
  37608. A function is some functionality provided by a module. Salt ships with a large
  37609. collection of available functions. List all available functions on your
  37610. minions:
  37611. .INDENT 0.0
  37612. .INDENT 3.5
  37613. .sp
  37614. .nf
  37615. .ft C
  37616. salt \(aq*\(aq sys.doc
  37617. .ft P
  37618. .fi
  37619. .UNINDENT
  37620. .UNINDENT
  37621. .sp
  37622. Here are some examples:
  37623. .sp
  37624. Show all currently available minions:
  37625. .INDENT 0.0
  37626. .INDENT 3.5
  37627. .sp
  37628. .nf
  37629. .ft C
  37630. salt \(aq*\(aq test.version
  37631. .ft P
  37632. .fi
  37633. .UNINDENT
  37634. .UNINDENT
  37635. .sp
  37636. Run an arbitrary shell command:
  37637. .INDENT 0.0
  37638. .INDENT 3.5
  37639. .sp
  37640. .nf
  37641. .ft C
  37642. salt \(aq*\(aq cmd.run \(aquname \-a\(aq
  37643. .ft P
  37644. .fi
  37645. .UNINDENT
  37646. .UNINDENT
  37647. .sp
  37648. \fBSEE ALSO:\fP
  37649. .INDENT 0.0
  37650. .INDENT 3.5
  37651. the full list of modules
  37652. .UNINDENT
  37653. .UNINDENT
  37654. .SS arguments
  37655. .sp
  37656. Space\-delimited arguments to the function:
  37657. .INDENT 0.0
  37658. .INDENT 3.5
  37659. .sp
  37660. .nf
  37661. .ft C
  37662. salt \(aq*\(aq cmd.exec_code python \(aqimport sys; print sys.version\(aq
  37663. .ft P
  37664. .fi
  37665. .UNINDENT
  37666. .UNINDENT
  37667. .sp
  37668. Optional, keyword arguments are also supported:
  37669. .INDENT 0.0
  37670. .INDENT 3.5
  37671. .sp
  37672. .nf
  37673. .ft C
  37674. salt \(aq*\(aq pip.install salt timeout=5 upgrade=True
  37675. .ft P
  37676. .fi
  37677. .UNINDENT
  37678. .UNINDENT
  37679. .sp
  37680. They are always in the form of \fBkwarg=argument\fP\&.
  37681. .SS Multi Master Tutorial
  37682. .sp
  37683. As of Salt 0.16.0, the ability to connect minions to multiple masters has been
  37684. made available. The multi\-master system allows for redundancy of Salt
  37685. masters and facilitates multiple points of communication out to minions. When
  37686. using a multi\-master setup, all masters are running hot, and any active master
  37687. can be used to send commands out to the minions.
  37688. .sp
  37689. \fBNOTE:\fP
  37690. .INDENT 0.0
  37691. .INDENT 3.5
  37692. If you need failover capabilities with multiple masters, there is also a
  37693. MultiMaster\-PKI setup available, that uses a different topology
  37694. \fI\%MultiMaster\-PKI with Failover Tutorial\fP
  37695. .UNINDENT
  37696. .UNINDENT
  37697. .sp
  37698. In 0.16.0, the masters do not share any information, keys need to be accepted
  37699. on both masters, and shared files need to be shared manually or use tools like
  37700. the git fileserver backend to ensure that the \fBfile_roots\fP are
  37701. kept consistent.
  37702. .sp
  37703. Beginning with Salt 2016.11.0, the Pluggable Minion Data Cache
  37704. was introduced. The minion data cache contains the Salt Mine data, minion grains, and minion
  37705. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  37706. module, but other external data stores can be used instead.
  37707. .sp
  37708. Using a pluggable minion cache modules allows for the data stored on a Salt Master about
  37709. Salt Minions to be replicated on other Salt Masters the Minion is connected to. Please see
  37710. the Minion Data Cache documentation for more information and configuration
  37711. examples.
  37712. .SS Summary of Steps
  37713. .INDENT 0.0
  37714. .IP 1. 3
  37715. Create a redundant master server
  37716. .IP 2. 3
  37717. Copy primary master key to redundant master
  37718. .IP 3. 3
  37719. Start redundant master
  37720. .IP 4. 3
  37721. Configure minions to connect to redundant master
  37722. .IP 5. 3
  37723. Restart minions
  37724. .IP 6. 3
  37725. Accept keys on redundant master
  37726. .UNINDENT
  37727. .SS Prepping a Redundant Master
  37728. .sp
  37729. The first task is to prepare the redundant master. If the redundant master is
  37730. already running, stop it. There is only one requirement when preparing a
  37731. redundant master, which is that masters share the same private key. When the
  37732. first master was created, the master\(aqs identifying key pair was generated and
  37733. placed in the master\(aqs \fBpki_dir\fP\&. The default location of the master\(aqs key
  37734. pair is \fB/etc/salt/pki/master/\fP\&. Take the private key, \fBmaster.pem\fP, and
  37735. copy it to the same location on the redundant master. Do the same for the
  37736. master\(aqs public key, \fBmaster.pub\fP\&. Assuming that no minions have yet been
  37737. connected to the new redundant master, it is safe to delete any existing key
  37738. in this location and replace it.
  37739. .sp
  37740. \fBNOTE:\fP
  37741. .INDENT 0.0
  37742. .INDENT 3.5
  37743. There is no logical limit to the number of redundant masters that can be
  37744. used.
  37745. .UNINDENT
  37746. .UNINDENT
  37747. .sp
  37748. Once the new key is in place, the redundant master can be safely started.
  37749. .SS Configure Minions
  37750. .sp
  37751. Since minions need to be master\-aware, the new master needs to be added to the
  37752. minion configurations. Simply update the minion configurations to list all
  37753. connected masters:
  37754. .INDENT 0.0
  37755. .INDENT 3.5
  37756. .sp
  37757. .nf
  37758. .ft C
  37759. master:
  37760. \- saltmaster1.example.com
  37761. \- saltmaster2.example.com
  37762. .ft P
  37763. .fi
  37764. .UNINDENT
  37765. .UNINDENT
  37766. .sp
  37767. Now the minion can be safely restarted.
  37768. .sp
  37769. \fBNOTE:\fP
  37770. .INDENT 0.0
  37771. .INDENT 3.5
  37772. If the ipc_mode for the minion is set to TCP (default in Windows), then
  37773. each minion in the multi\-minion setup (one per master) needs its own
  37774. tcp_pub_port and tcp_pull_port.
  37775. .sp
  37776. If these settings are left as the default 4510/4511, each minion object
  37777. will receive a port 2 higher than the previous. Thus the first minion will
  37778. get 4510/4511, the second will get 4512/4513, and so on. If these port
  37779. decisions are unacceptable, you must configure tcp_pub_port and
  37780. tcp_pull_port with lists of ports for each master. The length of these
  37781. lists should match the number of masters, and there should not be overlap
  37782. in the lists.
  37783. .UNINDENT
  37784. .UNINDENT
  37785. .sp
  37786. Now the minions will check into the original master and also check into the new
  37787. redundant master. Both masters are first\-class and have rights to the minions.
  37788. .sp
  37789. \fBNOTE:\fP
  37790. .INDENT 0.0
  37791. .INDENT 3.5
  37792. Minions can automatically detect failed masters and attempt to reconnect
  37793. to them quickly. To enable this functionality, set
  37794. \fImaster_alive_interval\fP in the minion config and specify a number of
  37795. seconds to poll the masters for connection status.
  37796. .sp
  37797. If this option is not set, minions will still reconnect to failed masters
  37798. but the first command sent after a master comes back up may be lost while
  37799. the minion authenticates.
  37800. .UNINDENT
  37801. .UNINDENT
  37802. .SS Sharing Files Between Masters
  37803. .sp
  37804. Salt does not automatically share files between multiple masters. A number of
  37805. files should be shared or sharing of these files should be strongly considered.
  37806. .SS Minion Keys
  37807. .sp
  37808. Minion keys can be accepted the normal way using \fBsalt\-key\fP on both
  37809. masters. Keys accepted, deleted, or rejected on one master will NOT be
  37810. automatically managed on redundant masters; this needs to be taken care of by
  37811. running salt\-key on both masters or sharing the
  37812. \fB/etc/salt/pki/master/{minions,minions_pre,minions_rejected}\fP directories
  37813. between masters.
  37814. .sp
  37815. \fBNOTE:\fP
  37816. .INDENT 0.0
  37817. .INDENT 3.5
  37818. While sharing the \fB/etc/salt/pki/master\fP directory will work, it is
  37819. strongly discouraged, since allowing access to the \fBmaster.pem\fP key
  37820. outside of Salt creates a \fISERIOUS\fP security risk.
  37821. .UNINDENT
  37822. .UNINDENT
  37823. .SS File_Roots
  37824. .sp
  37825. The \fBfile_roots\fP contents should be kept consistent between
  37826. masters. Otherwise state runs will not always be consistent on minions since
  37827. instructions managed by one master will not agree with other masters.
  37828. .sp
  37829. The recommended way to sync these is to use a fileserver backend like gitfs or
  37830. to keep these files on shared storage.
  37831. .sp
  37832. \fBIMPORTANT:\fP
  37833. .INDENT 0.0
  37834. .INDENT 3.5
  37835. If using gitfs/git_pillar with the cachedir shared between masters using
  37836. \fI\%GlusterFS\fP, nfs, or another network filesystem, and the masters are
  37837. running Salt 2015.5.9 or later, it is strongly recommended not to turn off
  37838. \fBgitfs_global_lock\fP/\fBgit_pillar_global_lock\fP as
  37839. doing so will cause lock files to be removed if they were created by a
  37840. different master.
  37841. .UNINDENT
  37842. .UNINDENT
  37843. .SS Pillar_Roots
  37844. .sp
  37845. Pillar roots should be given the same considerations as
  37846. \fBfile_roots\fP\&.
  37847. .SS Master Configurations
  37848. .sp
  37849. While reasons may exist to maintain separate master configurations, it is wise
  37850. to remember that each master maintains independent control over minions.
  37851. Therefore, access controls should be in sync between masters unless a valid
  37852. reason otherwise exists to keep them inconsistent.
  37853. .sp
  37854. These access control options include but are not limited to:
  37855. .INDENT 0.0
  37856. .IP \(bu 2
  37857. external_auth
  37858. .IP \(bu 2
  37859. publisher_acl
  37860. .IP \(bu 2
  37861. peer
  37862. .IP \(bu 2
  37863. peer_run
  37864. .UNINDENT
  37865. .SS Multi\-Master\-PKI Tutorial With Failover
  37866. .sp
  37867. This tutorial will explain, how to run a salt\-environment where a single
  37868. minion can have multiple masters and fail\-over between them if its current
  37869. master fails.
  37870. .sp
  37871. The individual steps are
  37872. .INDENT 0.0
  37873. .IP \(bu 2
  37874. setup the master(s) to sign its auth\-replies
  37875. .IP \(bu 2
  37876. setup minion(s) to verify master\-public\-keys
  37877. .IP \(bu 2
  37878. enable multiple masters on minion(s)
  37879. .IP \(bu 2
  37880. enable master\-check on minion(s)
  37881. .INDENT 2.0
  37882. .INDENT 3.5
  37883. Please note, that it is advised to have good knowledge of the salt\-
  37884. authentication and communication\-process to understand this tutorial.
  37885. All of the settings described here, go on top of the default
  37886. authentication/communication process.
  37887. .UNINDENT
  37888. .UNINDENT
  37889. .UNINDENT
  37890. .SS Motivation
  37891. .sp
  37892. The default behaviour of a salt\-minion is to connect to a master and accept
  37893. the masters public key. With each publication, the master sends his public\-key
  37894. for the minion to check and if this public\-key ever changes, the minion
  37895. complains and exits. Practically this means, that there can only be a single
  37896. master at any given time.
  37897. .sp
  37898. Would it not be much nicer, if the minion could have any number of masters
  37899. (1:n) and jump to the next master if its current master died because of a
  37900. network or hardware failure?
  37901. .sp
  37902. \fBNOTE:\fP
  37903. .INDENT 0.0
  37904. .INDENT 3.5
  37905. There is also a MultiMaster\-Tutorial with a different approach and topology
  37906. than this one, that might also suite your needs or might even be better suited
  37907. \fI\%Multi\-Master Tutorial\fP
  37908. .UNINDENT
  37909. .UNINDENT
  37910. .sp
  37911. It is also desirable, to add some sort of authenticity\-check to the very first
  37912. public key a minion receives from a master. Currently a minions takes the
  37913. first masters public key for granted.
  37914. .SS The Goal
  37915. .sp
  37916. Setup the master to sign the public key it sends to the minions and enable the
  37917. minions to verify this signature for authenticity.
  37918. .SS Prepping the master to sign its public key
  37919. .sp
  37920. For signing to work, both master and minion must have the signing and/or
  37921. verification settings enabled. If the master signs the public key but the
  37922. minion does not verify it, the minion will complain and exit. The same
  37923. happens, when the master does not sign but the minion tries to verify.
  37924. .sp
  37925. The easiest way to have the master sign its public key is to set
  37926. .INDENT 0.0
  37927. .INDENT 3.5
  37928. .sp
  37929. .nf
  37930. .ft C
  37931. master_sign_pubkey: True
  37932. .ft P
  37933. .fi
  37934. .UNINDENT
  37935. .UNINDENT
  37936. .sp
  37937. After restarting the salt\-master service, the master will automatically
  37938. generate a new key\-pair
  37939. .INDENT 0.0
  37940. .INDENT 3.5
  37941. .sp
  37942. .nf
  37943. .ft C
  37944. master_sign.pem
  37945. master_sign.pub
  37946. .ft P
  37947. .fi
  37948. .UNINDENT
  37949. .UNINDENT
  37950. .sp
  37951. A custom name can be set for the signing key\-pair by setting
  37952. .INDENT 0.0
  37953. .INDENT 3.5
  37954. .sp
  37955. .nf
  37956. .ft C
  37957. master_sign_key_name: <name_without_suffix>
  37958. .ft P
  37959. .fi
  37960. .UNINDENT
  37961. .UNINDENT
  37962. .sp
  37963. The master will then generate that key\-pair upon restart and use it for
  37964. creating the public keys signature attached to the auth\-reply.
  37965. .sp
  37966. The computation is done for every auth\-request of a minion. If many minions
  37967. auth very often, it is advised to use conf_master:\fImaster_pubkey_signature\fP
  37968. and conf_master:\fImaster_use_pubkey_signature\fP settings described below.
  37969. .sp
  37970. If multiple masters are in use and should sign their auth\-replies, the signing
  37971. key\-pair master_sign.* has to be copied to each master. Otherwise a minion
  37972. will fail to verify the masters public when connecting to a different master
  37973. than it did initially. That is because the public keys signature was created
  37974. with a different signing key\-pair.
  37975. .SS Prepping the minion to verify received public keys
  37976. .sp
  37977. The minion must have the public key (and only that one!) available to be
  37978. able to verify a signature it receives. That public key (defaults to
  37979. master_sign.pub) must be copied from the master to the minions pki\-directory.
  37980. .INDENT 0.0
  37981. .INDENT 3.5
  37982. .sp
  37983. .nf
  37984. .ft C
  37985. /etc/salt/pki/minion/master_sign.pub
  37986. .ft P
  37987. .fi
  37988. .UNINDENT
  37989. .UNINDENT
  37990. .sp
  37991. \fBIMPORTANT:\fP
  37992. .INDENT 0.0
  37993. .INDENT 3.5
  37994. DO NOT COPY THE master_sign.pem FILE. IT MUST STAY ON THE MASTER AND
  37995. ONLY THERE!
  37996. .UNINDENT
  37997. .UNINDENT
  37998. .sp
  37999. When that is done, enable the signature checking in the minions configuration
  38000. .INDENT 0.0
  38001. .INDENT 3.5
  38002. .sp
  38003. .nf
  38004. .ft C
  38005. verify_master_pubkey_sign: True
  38006. .ft P
  38007. .fi
  38008. .UNINDENT
  38009. .UNINDENT
  38010. .sp
  38011. and restart the minion. For the first try, the minion should be run in manual
  38012. debug mode.
  38013. .INDENT 0.0
  38014. .INDENT 3.5
  38015. .sp
  38016. .nf
  38017. .ft C
  38018. salt\-minion \-l debug
  38019. .ft P
  38020. .fi
  38021. .UNINDENT
  38022. .UNINDENT
  38023. .sp
  38024. Upon connecting to the master, the following lines should appear on the output:
  38025. .INDENT 0.0
  38026. .INDENT 3.5
  38027. .sp
  38028. .nf
  38029. .ft C
  38030. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38031. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38032. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38033. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38034. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38035. [INFO ] Received signed and verified master pubkey from master 172.16.0.10
  38036. [DEBUG ] Decrypting the current master AES key
  38037. .ft P
  38038. .fi
  38039. .UNINDENT
  38040. .UNINDENT
  38041. .sp
  38042. If the signature verification fails, something went wrong and it will look
  38043. like this
  38044. .INDENT 0.0
  38045. .INDENT 3.5
  38046. .sp
  38047. .nf
  38048. .ft C
  38049. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38050. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38051. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38052. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38053. [DEBUG ] Failed to verify signature of public key
  38054. [CRITICAL] The Salt Master server\(aqs public key did not authenticate!
  38055. .ft P
  38056. .fi
  38057. .UNINDENT
  38058. .UNINDENT
  38059. .sp
  38060. In a case like this, it should be checked, that the verification pubkey
  38061. (master_sign.pub) on the minion is the same as the one on the master.
  38062. .sp
  38063. Once the verification is successful, the minion can be started in daemon mode
  38064. again.
  38065. .sp
  38066. For the paranoid among us, its also possible to verify the publication whenever
  38067. it is received from the master. That is, for every single auth\-attempt which
  38068. can be quite frequent. For example just the start of the minion will force the
  38069. signature to be checked 6 times for various things like auth, mine,
  38070. highstate, etc.
  38071. .sp
  38072. If that is desired, enable the setting
  38073. .INDENT 0.0
  38074. .INDENT 3.5
  38075. .sp
  38076. .nf
  38077. .ft C
  38078. always_verify_signature: True
  38079. .ft P
  38080. .fi
  38081. .UNINDENT
  38082. .UNINDENT
  38083. .SS Multiple Masters For A Minion
  38084. .sp
  38085. Configuring multiple masters on a minion is done by specifying two settings:
  38086. .INDENT 0.0
  38087. .IP \(bu 2
  38088. a list of masters addresses
  38089. .IP \(bu 2
  38090. what type of master is defined
  38091. .UNINDENT
  38092. .INDENT 0.0
  38093. .INDENT 3.5
  38094. .sp
  38095. .nf
  38096. .ft C
  38097. master:
  38098. \- 172.16.0.10
  38099. \- 172.16.0.11
  38100. \- 172.16.0.12
  38101. .ft P
  38102. .fi
  38103. .UNINDENT
  38104. .UNINDENT
  38105. .INDENT 0.0
  38106. .INDENT 3.5
  38107. .sp
  38108. .nf
  38109. .ft C
  38110. master_type: failover
  38111. .ft P
  38112. .fi
  38113. .UNINDENT
  38114. .UNINDENT
  38115. .sp
  38116. This tells the minion that all the master above are available for it to
  38117. connect to. When started with this configuration, it will try the master
  38118. in the order they are defined. To randomize that order, set
  38119. .INDENT 0.0
  38120. .INDENT 3.5
  38121. .sp
  38122. .nf
  38123. .ft C
  38124. master_shuffle: True
  38125. .ft P
  38126. .fi
  38127. .UNINDENT
  38128. .UNINDENT
  38129. .sp
  38130. The master\-list will then be shuffled before the first connection attempt.
  38131. .sp
  38132. The first master that accepts the minion, is used by the minion. If the
  38133. master does not yet know the minion, that counts as accepted and the minion
  38134. stays on that master.
  38135. .sp
  38136. For the minion to be able to detect if its still connected to its current
  38137. master enable the check for it
  38138. .INDENT 0.0
  38139. .INDENT 3.5
  38140. .sp
  38141. .nf
  38142. .ft C
  38143. master_alive_interval: <seconds>
  38144. .ft P
  38145. .fi
  38146. .UNINDENT
  38147. .UNINDENT
  38148. .sp
  38149. If the loss of the connection is detected, the minion will temporarily
  38150. remove the failed master from the list and try one of the other masters
  38151. defined (again shuffled if that is enabled).
  38152. .SS Testing the setup
  38153. .sp
  38154. At least two running masters are needed to test the failover setup.
  38155. .sp
  38156. Both masters should be running and the minion should be running on the command
  38157. line in debug mode
  38158. .INDENT 0.0
  38159. .INDENT 3.5
  38160. .sp
  38161. .nf
  38162. .ft C
  38163. salt\-minion \-l debug
  38164. .ft P
  38165. .fi
  38166. .UNINDENT
  38167. .UNINDENT
  38168. .sp
  38169. The minion will connect to the first master from its master list
  38170. .INDENT 0.0
  38171. .INDENT 3.5
  38172. .sp
  38173. .nf
  38174. .ft C
  38175. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.10
  38176. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38177. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38178. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38179. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38180. [INFO ] Received signed and verified master pubkey from master 172.16.0.10
  38181. [DEBUG ] Decrypting the current master AES key
  38182. .ft P
  38183. .fi
  38184. .UNINDENT
  38185. .UNINDENT
  38186. .sp
  38187. A test.version on the master the minion is currently connected to should be run to
  38188. test connectivity.
  38189. .sp
  38190. If successful, that master should be turned off. A firewall\-rule denying the
  38191. minions packets will also do the trick.
  38192. .sp
  38193. Depending on the configured conf_minion:\fImaster_alive_interval\fP, the minion
  38194. will notice the loss of the connection and log it to its logfile.
  38195. .INDENT 0.0
  38196. .INDENT 3.5
  38197. .sp
  38198. .nf
  38199. .ft C
  38200. [INFO ] Connection to master 172.16.0.10 lost
  38201. [INFO ] Trying to tune in to next master from master\-list
  38202. .ft P
  38203. .fi
  38204. .UNINDENT
  38205. .UNINDENT
  38206. .sp
  38207. The minion will then remove the current master from the list and try connecting
  38208. to the next master
  38209. .INDENT 0.0
  38210. .INDENT 3.5
  38211. .sp
  38212. .nf
  38213. .ft C
  38214. [INFO ] Removing possibly failed master 172.16.0.10 from list of masters
  38215. [WARNING ] Master ip address changed from 172.16.0.10 to 172.16.0.11
  38216. [DEBUG ] Attempting to authenticate with the Salt Master at 172.16.0.11
  38217. .ft P
  38218. .fi
  38219. .UNINDENT
  38220. .UNINDENT
  38221. .sp
  38222. If everything is configured correctly, the new masters public key will be
  38223. verified successfully
  38224. .INDENT 0.0
  38225. .INDENT 3.5
  38226. .sp
  38227. .nf
  38228. .ft C
  38229. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38230. [DEBUG ] salt.crypt.verify_signature: Loading public key
  38231. [DEBUG ] salt.crypt.verify_signature: Verifying signature
  38232. [DEBUG ] Successfully verified signature of master public key with verification public key master_sign.pub
  38233. .ft P
  38234. .fi
  38235. .UNINDENT
  38236. .UNINDENT
  38237. .sp
  38238. the authentication with the new master is successful
  38239. .INDENT 0.0
  38240. .INDENT 3.5
  38241. .sp
  38242. .nf
  38243. .ft C
  38244. [INFO ] Received signed and verified master pubkey from master 172.16.0.11
  38245. [DEBUG ] Decrypting the current master AES key
  38246. [DEBUG ] Loaded minion key: /etc/salt/pki/minion/minion.pem
  38247. [INFO ] Authentication with master successful!
  38248. .ft P
  38249. .fi
  38250. .UNINDENT
  38251. .UNINDENT
  38252. .sp
  38253. and the minion can be pinged again from its new master.
  38254. .SS Performance Tuning
  38255. .sp
  38256. With the setup described above, the master computes a signature for every
  38257. auth\-request of a minion. With many minions and many auth\-requests, that
  38258. can chew up quite a bit of CPU\-Power.
  38259. .sp
  38260. To avoid that, the master can use a pre\-created signature of its public\-key.
  38261. The signature is saved as a base64 encoded string which the master reads
  38262. once when starting and attaches only that string to auth\-replies.
  38263. .sp
  38264. Enabling this also gives paranoid users the possibility, to have the signing
  38265. key\-pair on a different system than the actual salt\-master and create the public
  38266. keys signature there. Probably on a system with more restrictive firewall rules,
  38267. without internet access, less users, etc.
  38268. .sp
  38269. That signature can be created with
  38270. .INDENT 0.0
  38271. .INDENT 3.5
  38272. .sp
  38273. .nf
  38274. .ft C
  38275. salt\-key \-\-gen\-signature
  38276. .ft P
  38277. .fi
  38278. .UNINDENT
  38279. .UNINDENT
  38280. .sp
  38281. This will create a default signature file in the master pki\-directory
  38282. .INDENT 0.0
  38283. .INDENT 3.5
  38284. .sp
  38285. .nf
  38286. .ft C
  38287. /etc/salt/pki/master/master_pubkey_signature
  38288. .ft P
  38289. .fi
  38290. .UNINDENT
  38291. .UNINDENT
  38292. .sp
  38293. It is a simple text\-file with the binary\-signature converted to base64.
  38294. .sp
  38295. If no signing\-pair is present yet, this will auto\-create the signing pair and
  38296. the signature file in one call
  38297. .INDENT 0.0
  38298. .INDENT 3.5
  38299. .sp
  38300. .nf
  38301. .ft C
  38302. salt\-key \-\-gen\-signature \-\-auto\-create
  38303. .ft P
  38304. .fi
  38305. .UNINDENT
  38306. .UNINDENT
  38307. .sp
  38308. Telling the master to use the pre\-created signature is done with
  38309. .INDENT 0.0
  38310. .INDENT 3.5
  38311. .sp
  38312. .nf
  38313. .ft C
  38314. master_use_pubkey_signature: True
  38315. .ft P
  38316. .fi
  38317. .UNINDENT
  38318. .UNINDENT
  38319. .sp
  38320. That requires the file \(aqmaster_pubkey_signature\(aq to be present in the masters
  38321. pki\-directory with the correct signature.
  38322. .sp
  38323. If the signature file is named differently, its name can be set with
  38324. .INDENT 0.0
  38325. .INDENT 3.5
  38326. .sp
  38327. .nf
  38328. .ft C
  38329. master_pubkey_signature: <filename>
  38330. .ft P
  38331. .fi
  38332. .UNINDENT
  38333. .UNINDENT
  38334. .sp
  38335. With many masters and many public\-keys (default and signing), it is advised to
  38336. use the salt\-masters hostname for the signature\-files name. Signatures can be
  38337. easily confused because they do not provide any information about the key the
  38338. signature was created from.
  38339. .sp
  38340. Verifying that everything works is done the same way as above.
  38341. .SS How the signing and verification works
  38342. .sp
  38343. The default key\-pair of the salt\-master is
  38344. .INDENT 0.0
  38345. .INDENT 3.5
  38346. .sp
  38347. .nf
  38348. .ft C
  38349. /etc/salt/pki/master/master.pem
  38350. /etc/salt/pki/master/master.pub
  38351. .ft P
  38352. .fi
  38353. .UNINDENT
  38354. .UNINDENT
  38355. .sp
  38356. To be able to create a signature of a message (in this case a public\-key),
  38357. another key\-pair has to be added to the setup. Its default name is:
  38358. .INDENT 0.0
  38359. .INDENT 3.5
  38360. .sp
  38361. .nf
  38362. .ft C
  38363. master_sign.pem
  38364. master_sign.pub
  38365. .ft P
  38366. .fi
  38367. .UNINDENT
  38368. .UNINDENT
  38369. .sp
  38370. The combination of the master.* and master_sign.* key\-pairs give the
  38371. possibility of generating signatures. The signature of a given message
  38372. is unique and can be verified, if the public\-key of the signing\-key\-pair
  38373. is available to the recipient (the minion).
  38374. .sp
  38375. The signature of the masters public\-key in master.pub is computed with
  38376. .INDENT 0.0
  38377. .INDENT 3.5
  38378. .sp
  38379. .nf
  38380. .ft C
  38381. master_sign.pem
  38382. master.pub
  38383. M2Crypto.EVP.sign_update()
  38384. .ft P
  38385. .fi
  38386. .UNINDENT
  38387. .UNINDENT
  38388. .sp
  38389. This results in a binary signature which is converted to base64 and attached
  38390. to the auth\-reply send to the minion.
  38391. .sp
  38392. With the signing\-pairs public\-key available to the minion, the attached
  38393. signature can be verified with
  38394. .INDENT 0.0
  38395. .INDENT 3.5
  38396. .sp
  38397. .nf
  38398. .ft C
  38399. master_sign.pub
  38400. master.pub
  38401. M2Cryptos EVP.verify_update().
  38402. .ft P
  38403. .fi
  38404. .UNINDENT
  38405. .UNINDENT
  38406. .sp
  38407. When running multiple masters, either the signing key\-pair has to be present
  38408. on all of them, or the master_pubkey_signature has to be pre\-computed for
  38409. each master individually (because they all have different public\-keys).
  38410. .INDENT 0.0
  38411. .INDENT 3.5
  38412. DO NOT PUT THE SAME master.pub ON ALL MASTERS FOR EASE OF USE.
  38413. .UNINDENT
  38414. .UNINDENT
  38415. .SS Packaging External Modules for Salt
  38416. .SS External Modules Setuptools Entry\-Points Support
  38417. .sp
  38418. The salt loader was enhanced to look for external modules by looking at the
  38419. \fIsalt.loader\fP entry\-point:
  38420. .INDENT 0.0
  38421. .INDENT 3.5
  38422. \fI\%https://setuptools.readthedocs.io/en/latest/pkg_resources.html#entry\-points\fP
  38423. .UNINDENT
  38424. .UNINDENT
  38425. .sp
  38426. \fIpkg_resources\fP should be installed, which is normally included in setuptools.
  38427. .INDENT 0.0
  38428. .INDENT 3.5
  38429. \fI\%https://setuptools.readthedocs.io/en/latest/pkg_resources.html\fP
  38430. .UNINDENT
  38431. .UNINDENT
  38432. .sp
  38433. The package which has custom engines, minion modules, outputters, etc, should
  38434. require setuptools and should define the following entry points in its setup
  38435. function:
  38436. .INDENT 0.0
  38437. .INDENT 3.5
  38438. .sp
  38439. .nf
  38440. .ft C
  38441. from setuptools import setup, find_packages
  38442. setup(name=<NAME>,
  38443. version=<VERSION>,
  38444. description=<DESC>,
  38445. author=<AUTHOR>,
  38446. author_email=<AUTHOR\-EMAIL>,
  38447. url=\(aq ... \(aq,
  38448. packages=find_packages(),
  38449. entry_points=\(aq\(aq\(aq
  38450. [salt.loader]
  38451. engines_dirs = <package>.<loader\-module>:engines_dirs
  38452. fileserver_dirs = <package>.<loader\-module>:fileserver_dirs
  38453. pillar_dirs = <package>.<loader\-module>:pillar_dirs
  38454. returner_dirs = <package>.<loader\-module>:returner_dirs
  38455. roster_dirs = <package>.<loader\-module>:roster_dirs
  38456. \(aq\(aq\(aq)
  38457. .ft P
  38458. .fi
  38459. .UNINDENT
  38460. .UNINDENT
  38461. .sp
  38462. The above setup script example mentions a loader module. here\(aqs an example of
  38463. how \fI<package>/<loader\-module>.py\fP it should look:
  38464. .INDENT 0.0
  38465. .INDENT 3.5
  38466. .sp
  38467. .nf
  38468. .ft C
  38469. # \-*\- coding: utf\-8 \-*\-
  38470. # Import python libs
  38471. import os
  38472. PKG_DIR = os.path.abspath(os.path.dirname(__file__))
  38473. def engines_dirs():
  38474. \(aq\(aq\(aq
  38475. yield one path per parent directory of where engines can be found
  38476. \(aq\(aq\(aq
  38477. yield os.path.join(PKG_DIR, \(aqengines_1\(aq)
  38478. yield os.path.join(PKG_DIR, \(aqengines_2\(aq)
  38479. def fileserver_dirs():
  38480. \(aq\(aq\(aq
  38481. yield one path per parent directory of where fileserver modules can be found
  38482. \(aq\(aq\(aq
  38483. yield os.path.join(PKG_DIR, \(aqfileserver\(aq)
  38484. def pillar_dirs():
  38485. \(aq\(aq\(aq
  38486. yield one path per parent directory of where external pillar modules can be found
  38487. \(aq\(aq\(aq
  38488. yield os.path.join(PKG_DIR, \(aqpillar\(aq)
  38489. def returner_dirs():
  38490. \(aq\(aq\(aq
  38491. yield one path per parent directory of where returner modules can be found
  38492. \(aq\(aq\(aq
  38493. yield os.path.join(PKG_DIR, \(aqreturners\(aq)
  38494. def roster_dirs():
  38495. \(aq\(aq\(aq
  38496. yield one path per parent directory of where roster modules can be found
  38497. \(aq\(aq\(aq
  38498. yield os.path.join(PKG_DIR, \(aqroster\(aq)
  38499. .ft P
  38500. .fi
  38501. .UNINDENT
  38502. .UNINDENT
  38503. .SS How Do I Use Salt States?
  38504. .sp
  38505. Simplicity, Simplicity, Simplicity
  38506. .sp
  38507. Many of the most powerful and useful engineering solutions are founded on
  38508. simple principles. Salt States strive to do just that: K.I.S.S. (Keep It
  38509. Stupidly Simple)
  38510. .sp
  38511. The core of the Salt State system is the SLS, or \fBS\fPa\fBL\fPt
  38512. \fBS\fPtate file. The SLS is a representation of the state in which
  38513. a system should be in, and is set up to contain this data in a simple format.
  38514. This is often called configuration management.
  38515. .sp
  38516. \fBNOTE:\fP
  38517. .INDENT 0.0
  38518. .INDENT 3.5
  38519. This is just the beginning of using states, make sure to read up on pillar
  38520. Pillar next.
  38521. .UNINDENT
  38522. .UNINDENT
  38523. .SS It is All Just Data
  38524. .sp
  38525. Before delving into the particulars, it will help to understand that the SLS
  38526. file is just a data structure under the hood. While understanding that the SLS
  38527. is just a data structure isn\(aqt critical for understanding and making use of
  38528. Salt States, it should help bolster knowledge of where the real power is.
  38529. .sp
  38530. SLS files are therefore, in reality, just dictionaries, lists, strings, and
  38531. numbers. By using this approach Salt can be much more flexible. As one writes
  38532. more state files, it becomes clearer exactly what is being written. The result
  38533. is a system that is easy to understand, yet grows with the needs of the admin
  38534. or developer.
  38535. .SS The Top File
  38536. .sp
  38537. The example SLS files in the below sections can be assigned to hosts using a
  38538. file called \fBtop.sls\fP\&. This file is described in\-depth here\&.
  38539. .SS Default Data \- YAML
  38540. .sp
  38541. By default Salt represents the SLS data in what is one of the simplest
  38542. serialization formats available \- \fI\%YAML\fP\&.
  38543. .sp
  38544. A typical SLS file will often look like this in YAML:
  38545. .sp
  38546. \fBNOTE:\fP
  38547. .INDENT 0.0
  38548. .INDENT 3.5
  38549. These demos use some generic service and package names, different
  38550. distributions often use different names for packages and services. For
  38551. instance \fIapache\fP should be replaced with \fIhttpd\fP on a Red Hat system.
  38552. Salt uses the name of the init script, systemd name, upstart name etc.
  38553. based on what the underlying service management for the platform. To
  38554. get a list of the available service names on a platform execute the
  38555. service.get_all salt function.
  38556. .sp
  38557. Information on how to make states work with multiple distributions
  38558. is later in the tutorial.
  38559. .UNINDENT
  38560. .UNINDENT
  38561. .INDENT 0.0
  38562. .INDENT 3.5
  38563. .sp
  38564. .nf
  38565. .ft C
  38566. apache:
  38567. pkg.installed: []
  38568. service.running:
  38569. \- require:
  38570. \- pkg: apache
  38571. .ft P
  38572. .fi
  38573. .UNINDENT
  38574. .UNINDENT
  38575. .sp
  38576. This SLS data will ensure that the package named apache is installed, and
  38577. that the apache service is running. The components can be explained in a
  38578. simple way.
  38579. .sp
  38580. The first line is the ID for a set of data, and it is called the ID
  38581. Declaration. This ID sets the name of the thing that needs to be manipulated.
  38582. .sp
  38583. The second and third lines contain the state module function to be run, in the
  38584. format \fB<state_module>.<function>\fP\&. The \fBpkg.installed\fP state module
  38585. function ensures that a software package is installed via the system\(aqs native
  38586. package manager. The \fBservice.running\fP state module function ensures that a
  38587. given system daemon is running.
  38588. .sp
  38589. Finally, on line five, is the word \fBrequire\fP\&. This is called a Requisite
  38590. Statement, and it makes sure that the Apache service is only started after
  38591. a successful installation of the apache package.
  38592. .SS Adding Configs and Users
  38593. .sp
  38594. When setting up a service like an Apache web server, many more components may
  38595. need to be added. The Apache configuration file will most likely be managed,
  38596. and a user and group may need to be set up.
  38597. .INDENT 0.0
  38598. .INDENT 3.5
  38599. .sp
  38600. .nf
  38601. .ft C
  38602. apache:
  38603. pkg.installed: []
  38604. service.running:
  38605. \- watch:
  38606. \- pkg: apache
  38607. \- file: /etc/httpd/conf/httpd.conf
  38608. \- user: apache
  38609. user.present:
  38610. \- uid: 87
  38611. \- gid: 87
  38612. \- home: /var/www/html
  38613. \- shell: /bin/nologin
  38614. \- require:
  38615. \- group: apache
  38616. group.present:
  38617. \- gid: 87
  38618. \- require:
  38619. \- pkg: apache
  38620. /etc/httpd/conf/httpd.conf:
  38621. file.managed:
  38622. \- source: salt://apache/httpd.conf
  38623. \- user: root
  38624. \- group: root
  38625. \- mode: 644
  38626. .ft P
  38627. .fi
  38628. .UNINDENT
  38629. .UNINDENT
  38630. .sp
  38631. This SLS data greatly extends the first example, and includes a config file,
  38632. a user, a group and new requisite statement: \fBwatch\fP\&.
  38633. .sp
  38634. Adding more states is easy, since the new user and group states are under
  38635. the Apache ID, the user and group will be the Apache user and group. The
  38636. \fBrequire\fP statements will make sure that the user will only be made after
  38637. the group, and that the group will be made only after the Apache package is
  38638. installed.
  38639. .sp
  38640. Next, the \fBrequire\fP statement under service was changed to watch, and is
  38641. now watching 3 states instead of just one. The watch statement does the same
  38642. thing as require, making sure that the other states run before running the
  38643. state with a watch, but it adds an extra component. The \fBwatch\fP statement
  38644. will run the state\(aqs watcher function for any changes to the watched states.
  38645. So if the package was updated, the config file changed, or the user
  38646. uid modified, then the service state\(aqs watcher will be run. The service
  38647. state\(aqs watcher just restarts the service, so in this case, a change in the
  38648. config file will also trigger a restart of the respective service.
  38649. .SS Moving Beyond a Single SLS
  38650. .sp
  38651. When setting up Salt States in a scalable manner, more than one SLS will need
  38652. to be used. The above examples were in a single SLS file, but two or more
  38653. SLS files can be combined to build out a State Tree. The above example also
  38654. references a file with a strange source \- \fBsalt://apache/httpd.conf\fP\&. That
  38655. file will need to be available as well.
  38656. .sp
  38657. The SLS files are laid out in a directory structure on the Salt master; an
  38658. SLS is just a file and files to download are just files.
  38659. .sp
  38660. The Apache example would be laid out in the root of the Salt file server like
  38661. this:
  38662. .INDENT 0.0
  38663. .INDENT 3.5
  38664. .sp
  38665. .nf
  38666. .ft C
  38667. apache/init.sls
  38668. apache/httpd.conf
  38669. .ft P
  38670. .fi
  38671. .UNINDENT
  38672. .UNINDENT
  38673. .sp
  38674. So the httpd.conf is just a file in the apache directory, and is referenced
  38675. directly.
  38676. .INDENT 0.0
  38677. .INDENT 3.5
  38678. .IP "Do not use dots in SLS file names or their directories"
  38679. .sp
  38680. The initial implementation of \fBtop.sls\fP and
  38681. include\-declaration followed the python import model where a slash
  38682. is represented as a period. This means that a SLS file with a period in
  38683. the name ( besides the suffix period) can not be referenced. For example,
  38684. webserver_1.0.sls is not referenceable because webserver_1.0 would refer
  38685. to the directory/file webserver_1/0.sls
  38686. .sp
  38687. The same applies for any subdirectories, this is especially \(aqtricky\(aq when
  38688. git repos are created. Another command that typically can\(aqt render its
  38689. output is \fB\(gastate.show_sls\(ga\fP of a file in a path that contains a dot.
  38690. .UNINDENT
  38691. .UNINDENT
  38692. .sp
  38693. But when using more than one single SLS file, more components can be added to
  38694. the toolkit. Consider this SSH example:
  38695. .sp
  38696. \fBssh/init.sls:\fP
  38697. .INDENT 0.0
  38698. .INDENT 3.5
  38699. .sp
  38700. .nf
  38701. .ft C
  38702. openssh\-client:
  38703. pkg.installed
  38704. /etc/ssh/ssh_config:
  38705. file.managed:
  38706. \- user: root
  38707. \- group: root
  38708. \- mode: 644
  38709. \- source: salt://ssh/ssh_config
  38710. \- require:
  38711. \- pkg: openssh\-client
  38712. .ft P
  38713. .fi
  38714. .UNINDENT
  38715. .UNINDENT
  38716. .sp
  38717. \fBssh/server.sls:\fP
  38718. .INDENT 0.0
  38719. .INDENT 3.5
  38720. .sp
  38721. .nf
  38722. .ft C
  38723. include:
  38724. \- ssh
  38725. openssh\-server:
  38726. pkg.installed
  38727. sshd:
  38728. service.running:
  38729. \- require:
  38730. \- pkg: openssh\-client
  38731. \- pkg: openssh\-server
  38732. \- file: /etc/ssh/banner
  38733. \- file: /etc/ssh/sshd_config
  38734. /etc/ssh/sshd_config:
  38735. file.managed:
  38736. \- user: root
  38737. \- group: root
  38738. \- mode: 644
  38739. \- source: salt://ssh/sshd_config
  38740. \- require:
  38741. \- pkg: openssh\-server
  38742. /etc/ssh/banner:
  38743. file:
  38744. \- managed
  38745. \- user: root
  38746. \- group: root
  38747. \- mode: 644
  38748. \- source: salt://ssh/banner
  38749. \- require:
  38750. \- pkg: openssh\-server
  38751. .ft P
  38752. .fi
  38753. .UNINDENT
  38754. .UNINDENT
  38755. .sp
  38756. \fBNOTE:\fP
  38757. .INDENT 0.0
  38758. .INDENT 3.5
  38759. Notice that we use two similar ways of denoting that a file
  38760. is managed by Salt. In the \fI/etc/ssh/sshd_config\fP state section above,
  38761. we use the \fIfile.managed\fP state declaration whereas with the
  38762. \fI/etc/ssh/banner\fP state section, we use the \fIfile\fP state declaration
  38763. and add a \fImanaged\fP attribute to that state declaration. Both ways
  38764. produce an identical result; the first way \-\- using \fIfile.managed\fP \-\-
  38765. is merely a shortcut.
  38766. .UNINDENT
  38767. .UNINDENT
  38768. .sp
  38769. Now our State Tree looks like this:
  38770. .INDENT 0.0
  38771. .INDENT 3.5
  38772. .sp
  38773. .nf
  38774. .ft C
  38775. apache/init.sls
  38776. apache/httpd.conf
  38777. ssh/init.sls
  38778. ssh/server.sls
  38779. ssh/banner
  38780. ssh/ssh_config
  38781. ssh/sshd_config
  38782. .ft P
  38783. .fi
  38784. .UNINDENT
  38785. .UNINDENT
  38786. .sp
  38787. This example now introduces the \fBinclude\fP statement. The include statement
  38788. includes another SLS file so that components found in it can be required,
  38789. watched or as will soon be demonstrated \- extended.
  38790. .sp
  38791. The include statement allows for states to be cross linked. When an SLS
  38792. has an include statement it is literally extended to include the contents of
  38793. the included SLS files.
  38794. .sp
  38795. Note that some of the SLS files are called init.sls, while others are not. More
  38796. info on what this means can be found in the States Tutorial\&.
  38797. .SS Extending Included SLS Data
  38798. .sp
  38799. Sometimes SLS data needs to be extended. Perhaps the apache service needs to
  38800. watch additional resources, or under certain circumstances a different file
  38801. needs to be placed.
  38802. .sp
  38803. In these examples, the first will add a custom banner to ssh and the second will
  38804. add more watchers to apache to include mod_python.
  38805. .sp
  38806. \fBssh/custom\-server.sls:\fP
  38807. .INDENT 0.0
  38808. .INDENT 3.5
  38809. .sp
  38810. .nf
  38811. .ft C
  38812. include:
  38813. \- ssh.server
  38814. extend:
  38815. /etc/ssh/banner:
  38816. file:
  38817. \- source: salt://ssh/custom\-banner
  38818. .ft P
  38819. .fi
  38820. .UNINDENT
  38821. .UNINDENT
  38822. .sp
  38823. \fBpython/mod_python.sls:\fP
  38824. .INDENT 0.0
  38825. .INDENT 3.5
  38826. .sp
  38827. .nf
  38828. .ft C
  38829. include:
  38830. \- apache
  38831. extend:
  38832. apache:
  38833. service:
  38834. \- watch:
  38835. \- pkg: mod_python
  38836. mod_python:
  38837. pkg.installed
  38838. .ft P
  38839. .fi
  38840. .UNINDENT
  38841. .UNINDENT
  38842. .sp
  38843. The \fBcustom\-server.sls\fP file uses the extend statement to overwrite where the
  38844. banner is being downloaded from, and therefore changing what file is being used
  38845. to configure the banner.
  38846. .sp
  38847. In the new mod_python SLS the mod_python package is added, but more importantly
  38848. the apache service was extended to also watch the mod_python package.
  38849. .INDENT 0.0
  38850. .INDENT 3.5
  38851. .IP "Using extend with require or watch"
  38852. .sp
  38853. The \fBextend\fP statement works differently for \fBrequire\fP or \fBwatch\fP\&.
  38854. It appends to, rather than replacing the requisite component.
  38855. .UNINDENT
  38856. .UNINDENT
  38857. .SS Understanding the Render System
  38858. .sp
  38859. Since SLS data is simply that (data), it does not need to be represented
  38860. with YAML. Salt defaults to YAML because it is very straightforward and easy
  38861. to learn and use. But the SLS files can be rendered from almost any imaginable
  38862. medium, so long as a renderer module is provided.
  38863. .sp
  38864. The default rendering system is the \fBjinja|yaml\fP renderer. The
  38865. \fBjinja|yaml\fP renderer will first pass the template through the \fI\%Jinja2\fP
  38866. templating system, and then through the YAML parser. The benefit here is that
  38867. full programming constructs are available when creating SLS files.
  38868. .sp
  38869. Other renderers available are \fByaml_mako\fP and \fByaml_wempy\fP which each use
  38870. the \fI\%Mako\fP or \fI\%Wempy\fP templating system respectively rather than the jinja
  38871. templating system, and more notably, the pure Python or \fBpy\fP, \fBpydsl\fP &
  38872. \fBpyobjects\fP renderers.
  38873. The \fBpy\fP renderer allows for SLS files to be written in pure Python,
  38874. allowing for the utmost level of flexibility and power when preparing SLS
  38875. data; while the \fBpydsl\fP renderer
  38876. provides a flexible, domain\-specific language for authoring SLS data in Python;
  38877. and the \fBpyobjects\fP renderer
  38878. gives you a \fI\%"Pythonic"\fP interface to building state data.
  38879. .sp
  38880. \fBNOTE:\fP
  38881. .INDENT 0.0
  38882. .INDENT 3.5
  38883. The templating engines described above aren\(aqt just available in SLS files.
  38884. They can also be used in \fBfile.managed\fP
  38885. states, making file management much more dynamic and flexible. Some
  38886. examples for using templates in managed files can be found in the
  38887. documentation for the \fBfile state\fP, as well as the
  38888. \fI\%MooseFS example\fP below.
  38889. .UNINDENT
  38890. .UNINDENT
  38891. .SS Getting to Know the Default \- jinja|yaml
  38892. .sp
  38893. The default renderer \- \fBjinja|yaml\fP, allows for use of the jinja
  38894. templating system. A guide to the Jinja templating system can be found here:
  38895. \fI\%https://jinja.palletsprojects.com/en/2.11.x/\fP
  38896. .sp
  38897. When working with renderers a few very useful bits of data are passed in. In
  38898. the case of templating engine based renderers, three critical components are
  38899. available, \fBsalt\fP, \fBgrains\fP, and \fBpillar\fP\&. The \fBsalt\fP object allows for
  38900. any Salt function to be called from within the template, and \fBgrains\fP allows
  38901. for the Grains to be accessed from within the template. A few examples:
  38902. .sp
  38903. \fBapache/init.sls:\fP
  38904. .INDENT 0.0
  38905. .INDENT 3.5
  38906. .sp
  38907. .nf
  38908. .ft C
  38909. apache:
  38910. pkg.installed:
  38911. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq%}
  38912. \- name: httpd
  38913. {% endif %}
  38914. service.running:
  38915. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq%}
  38916. \- name: httpd
  38917. {% endif %}
  38918. \- watch:
  38919. \- pkg: apache
  38920. \- file: /etc/httpd/conf/httpd.conf
  38921. \- user: apache
  38922. user.present:
  38923. \- uid: 87
  38924. \- gid: 87
  38925. \- home: /var/www/html
  38926. \- shell: /bin/nologin
  38927. \- require:
  38928. \- group: apache
  38929. group.present:
  38930. \- gid: 87
  38931. \- require:
  38932. \- pkg: apache
  38933. /etc/httpd/conf/httpd.conf:
  38934. file.managed:
  38935. \- source: salt://apache/httpd.conf
  38936. \- user: root
  38937. \- group: root
  38938. \- mode: 644
  38939. .ft P
  38940. .fi
  38941. .UNINDENT
  38942. .UNINDENT
  38943. .sp
  38944. This example is simple. If the \fBos\fP grain states that the operating system is
  38945. Red Hat, then the name of the Apache package and service needs to be httpd.
  38946. .sp
  38947. A more aggressive way to use Jinja can be found here, in a module to set up
  38948. a MooseFS distributed filesystem chunkserver:
  38949. .sp
  38950. \fBmoosefs/chunk.sls:\fP
  38951. .INDENT 0.0
  38952. .INDENT 3.5
  38953. .sp
  38954. .nf
  38955. .ft C
  38956. include:
  38957. \- moosefs
  38958. {% for mnt in salt[\(aqcmd.run\(aq](\(aqls /dev/data/moose*\(aq).split() %}
  38959. /mnt/moose{{ mnt[\-1] }}:
  38960. mount.mounted:
  38961. \- device: {{ mnt }}
  38962. \- fstype: xfs
  38963. \- mkmnt: True
  38964. file.directory:
  38965. \- user: mfs
  38966. \- group: mfs
  38967. \- require:
  38968. \- user: mfs
  38969. \- group: mfs
  38970. {% endfor %}
  38971. /etc/mfshdd.cfg:
  38972. file.managed:
  38973. \- source: salt://moosefs/mfshdd.cfg
  38974. \- user: root
  38975. \- group: root
  38976. \- mode: 644
  38977. \- template: jinja
  38978. \- require:
  38979. \- pkg: mfs\-chunkserver
  38980. /etc/mfschunkserver.cfg:
  38981. file.managed:
  38982. \- source: salt://moosefs/mfschunkserver.cfg
  38983. \- user: root
  38984. \- group: root
  38985. \- mode: 644
  38986. \- template: jinja
  38987. \- require:
  38988. \- pkg: mfs\-chunkserver
  38989. mfs\-chunkserver:
  38990. pkg.installed: []
  38991. mfschunkserver:
  38992. service.running:
  38993. \- require:
  38994. {% for mnt in salt[\(aqcmd.run\(aq](\(aqls /dev/data/moose*\(aq) %}
  38995. \- mount: /mnt/moose{{ mnt[\-1] }}
  38996. \- file: /mnt/moose{{ mnt[\-1] }}
  38997. {% endfor %}
  38998. \- file: /etc/mfschunkserver.cfg
  38999. \- file: /etc/mfshdd.cfg
  39000. \- file: /var/lib/mfs
  39001. .ft P
  39002. .fi
  39003. .UNINDENT
  39004. .UNINDENT
  39005. .sp
  39006. This example shows much more of the available power of Jinja.
  39007. Multiple for loops are used to dynamically detect available hard drives
  39008. and set them up to be mounted, and the \fBsalt\fP object is used multiple
  39009. times to call shell commands to gather data.
  39010. .SS Introducing the Python, PyDSL, and the Pyobjects Renderers
  39011. .sp
  39012. Sometimes the chosen default renderer might not have enough logical power to
  39013. accomplish the needed task. When this happens, the Python renderer can be
  39014. used. Normally a YAML renderer should be used for the majority of SLS files,
  39015. but an SLS file set to use another renderer can be easily added to the tree.
  39016. .sp
  39017. This example shows a very basic Python SLS file:
  39018. .sp
  39019. \fBpython/django.sls:\fP
  39020. .INDENT 0.0
  39021. .INDENT 3.5
  39022. .sp
  39023. .nf
  39024. .ft C
  39025. #!py
  39026. def run():
  39027. \(aq\(aq\(aq
  39028. Install the django package
  39029. \(aq\(aq\(aq
  39030. return {\(aqinclude\(aq: [\(aqpython\(aq],
  39031. \(aqdjango\(aq: {\(aqpkg\(aq: [\(aqinstalled\(aq]}}
  39032. .ft P
  39033. .fi
  39034. .UNINDENT
  39035. .UNINDENT
  39036. .sp
  39037. This is a very simple example; the first line has an SLS shebang that
  39038. tells Salt to not use the default renderer, but to use the \fBpy\fP renderer.
  39039. Then the run function is defined, the return value from the run function
  39040. must be a Salt friendly data structure, or better known as a Salt
  39041. HighState data structure\&.
  39042. .sp
  39043. Alternatively, using the \fBpydsl\fP
  39044. renderer, the above example can be written more succinctly as:
  39045. .INDENT 0.0
  39046. .INDENT 3.5
  39047. .sp
  39048. .nf
  39049. .ft C
  39050. #!pydsl
  39051. include(\(aqpython\(aq, delayed=True)
  39052. state(\(aqdjango\(aq).pkg.installed()
  39053. .ft P
  39054. .fi
  39055. .UNINDENT
  39056. .UNINDENT
  39057. .sp
  39058. The \fBpyobjects\fP renderer
  39059. provides an \fI\%"Pythonic"\fP object based approach for building the state data.
  39060. The above example could be written as:
  39061. .INDENT 0.0
  39062. .INDENT 3.5
  39063. .sp
  39064. .nf
  39065. .ft C
  39066. #!pyobjects
  39067. include(\(aqpython\(aq)
  39068. Pkg.installed("django")
  39069. .ft P
  39070. .fi
  39071. .UNINDENT
  39072. .UNINDENT
  39073. .sp
  39074. These Python examples would look like this if they were written in YAML:
  39075. .INDENT 0.0
  39076. .INDENT 3.5
  39077. .sp
  39078. .nf
  39079. .ft C
  39080. include:
  39081. \- python
  39082. django:
  39083. pkg.installed
  39084. .ft P
  39085. .fi
  39086. .UNINDENT
  39087. .UNINDENT
  39088. .sp
  39089. This example clearly illustrates that; one, using the YAML renderer by default
  39090. is a wise decision and two, unbridled power can be obtained where needed by
  39091. using a pure Python SLS.
  39092. .SS Running and Debugging Salt States
  39093. .sp
  39094. Once the rules in an SLS are ready, they should be tested to ensure they
  39095. work properly. To invoke these rules, simply execute
  39096. \fBsalt \(aq*\(aq state.apply\fP on the command line. If you get back only
  39097. hostnames with a \fB:\fP after, but no return, chances are there is a problem with
  39098. one or more of the sls files. On the minion, use the \fBsalt\-call\fP command to
  39099. examine the output for errors:
  39100. .INDENT 0.0
  39101. .INDENT 3.5
  39102. .sp
  39103. .nf
  39104. .ft C
  39105. salt\-call state.apply \-l debug
  39106. .ft P
  39107. .fi
  39108. .UNINDENT
  39109. .UNINDENT
  39110. .sp
  39111. This should help troubleshoot the issue. The minion can also be started in the
  39112. foreground in debug mode by running \fBsalt\-minion \-l debug\fP\&.
  39113. .SS Next Reading
  39114. .sp
  39115. With an understanding of states, the next recommendation is to become familiar
  39116. with Salt\(aqs pillar interface:
  39117. .INDENT 0.0
  39118. .INDENT 3.5
  39119. Pillar Walkthrough
  39120. .UNINDENT
  39121. .UNINDENT
  39122. .SS States tutorial, part 1 \- Basic Usage
  39123. .sp
  39124. The purpose of this tutorial is to demonstrate how quickly you can configure a
  39125. system to be managed by Salt States. For detailed information about the state
  39126. system please refer to the full states reference\&.
  39127. .sp
  39128. This tutorial will walk you through using Salt to configure a minion to run the
  39129. Apache HTTP server and to ensure the server is running.
  39130. .sp
  39131. \fBBefore continuing\fP make sure you have a working Salt installation by
  39132. following the installation and the
  39133. configuration instructions.
  39134. .INDENT 0.0
  39135. .INDENT 3.5
  39136. .IP "Stuck?"
  39137. .sp
  39138. There are many ways to get help from the Salt community including our
  39139. \fI\%mailing list\fP
  39140. and our \fI\%IRC channel\fP #salt.
  39141. .UNINDENT
  39142. .UNINDENT
  39143. .SS Setting up the Salt State Tree
  39144. .sp
  39145. States are stored in text files on the master and transferred to the minions on
  39146. demand via the master\(aqs File Server. The collection of state files make up the
  39147. \fBState Tree\fP\&.
  39148. .sp
  39149. To start using a central state system in Salt, the Salt File Server must first
  39150. be set up. Edit the master config file (\fBfile_roots\fP) and
  39151. uncomment the following lines:
  39152. .INDENT 0.0
  39153. .INDENT 3.5
  39154. .sp
  39155. .nf
  39156. .ft C
  39157. file_roots:
  39158. base:
  39159. \- /srv/salt
  39160. .ft P
  39161. .fi
  39162. .UNINDENT
  39163. .UNINDENT
  39164. .sp
  39165. \fBNOTE:\fP
  39166. .INDENT 0.0
  39167. .INDENT 3.5
  39168. If you are deploying on FreeBSD via ports, the \fBfile_roots\fP path defaults
  39169. to \fB/usr/local/etc/salt/states\fP\&.
  39170. .UNINDENT
  39171. .UNINDENT
  39172. .sp
  39173. Restart the Salt master in order to pick up this change:
  39174. .INDENT 0.0
  39175. .INDENT 3.5
  39176. .sp
  39177. .nf
  39178. .ft C
  39179. pkill salt\-master
  39180. salt\-master \-d
  39181. .ft P
  39182. .fi
  39183. .UNINDENT
  39184. .UNINDENT
  39185. .SS Preparing the Top File
  39186. .sp
  39187. On the master, in the directory uncommented in the previous step,
  39188. (\fB/srv/salt\fP by default), create a new file called
  39189. \fBtop.sls\fP and add the following:
  39190. .INDENT 0.0
  39191. .INDENT 3.5
  39192. .sp
  39193. .nf
  39194. .ft C
  39195. base:
  39196. \(aq*\(aq:
  39197. \- webserver
  39198. .ft P
  39199. .fi
  39200. .UNINDENT
  39201. .UNINDENT
  39202. .sp
  39203. The top file is separated into environments (discussed
  39204. later). The default environment is \fBbase\fP\&. Under the \fBbase\fP environment a
  39205. collection of minion matches is defined; for now simply specify all hosts
  39206. (\fB*\fP).
  39207. .INDENT 0.0
  39208. .INDENT 3.5
  39209. .IP "Targeting minions"
  39210. .sp
  39211. The expressions can use any of the targeting mechanisms used by Salt —
  39212. minions can be matched by glob, PCRE regular expression, or by grains\&. For example:
  39213. .INDENT 0.0
  39214. .INDENT 3.5
  39215. .sp
  39216. .nf
  39217. .ft C
  39218. base:
  39219. \(aqos:Fedora\(aq:
  39220. \- match: grain
  39221. \- webserver
  39222. .ft P
  39223. .fi
  39224. .UNINDENT
  39225. .UNINDENT
  39226. .UNINDENT
  39227. .UNINDENT
  39228. .SS Create an \fBsls\fP file
  39229. .sp
  39230. In the same directory as the top file, create a file
  39231. named \fBwebserver.sls\fP, containing the following:
  39232. .INDENT 0.0
  39233. .INDENT 3.5
  39234. .sp
  39235. .nf
  39236. .ft C
  39237. apache: # ID declaration
  39238. pkg: # state declaration
  39239. \- installed # function declaration
  39240. .ft P
  39241. .fi
  39242. .UNINDENT
  39243. .UNINDENT
  39244. .sp
  39245. The first line, called the id\-declaration, is an arbitrary identifier.
  39246. In this case it defines the name of the package to be installed.
  39247. .sp
  39248. \fBNOTE:\fP
  39249. .INDENT 0.0
  39250. .INDENT 3.5
  39251. The package name for the Apache httpd web server may differ depending on
  39252. OS or distro — for example, on Fedora it is \fBhttpd\fP but on
  39253. Debian/Ubuntu it is \fBapache2\fP\&.
  39254. .UNINDENT
  39255. .UNINDENT
  39256. .sp
  39257. The second line, called the state\-declaration, defines which of the Salt
  39258. States we are using. In this example, we are using the \fBpkg state\fP to ensure that a given package is installed.
  39259. .sp
  39260. The third line, called the function\-declaration, defines which function
  39261. in the \fBpkg state\fP module to call.
  39262. .INDENT 0.0
  39263. .INDENT 3.5
  39264. .IP "Renderers"
  39265. .sp
  39266. States \fBsls\fP files can be written in many formats. Salt requires only
  39267. a simple data structure and is not concerned with how that data structure
  39268. is built. Templating languages and \fI\%DSLs\fP are a dime\-a\-dozen and everyone
  39269. has a favorite.
  39270. .sp
  39271. Building the expected data structure is the job of Salt renderers
  39272. and they are dead\-simple to write.
  39273. .sp
  39274. In this tutorial we will be using YAML in Jinja2 templates, which is the
  39275. default format. The default can be changed by editing
  39276. \fBrenderer\fP in the master configuration file.
  39277. .UNINDENT
  39278. .UNINDENT
  39279. .SS Install the package
  39280. .sp
  39281. Next, let\(aqs run the state we created. Open a terminal on the master and run:
  39282. .INDENT 0.0
  39283. .INDENT 3.5
  39284. .sp
  39285. .nf
  39286. .ft C
  39287. salt \(aq*\(aq state.apply
  39288. .ft P
  39289. .fi
  39290. .UNINDENT
  39291. .UNINDENT
  39292. .sp
  39293. Our master is instructing all targeted minions to run \fBstate.apply\fP\&. When this function is executed without any SLS
  39294. targets, a minion will download the top file and attempt to
  39295. match the expressions within it. When the minion does match an expression the
  39296. modules listed for it will be downloaded, compiled, and executed.
  39297. .sp
  39298. \fBNOTE:\fP
  39299. .INDENT 0.0
  39300. .INDENT 3.5
  39301. This action is referred to as a "highstate", and can be run using the
  39302. \fBstate.highstate\fP function.
  39303. However, to make the usage easier to understand ("highstate" is not
  39304. necessarily an intuitive name), a \fBstate.apply\fP function was added in version 2015.5.0, which
  39305. when invoked without any SLS names will trigger a highstate.
  39306. \fBstate.highstate\fP still exists and
  39307. can be used, but the documentation (as can be seen above) has been updated
  39308. to reference \fBstate.apply\fP, so keep
  39309. the following in mind as you read the documentation:
  39310. .INDENT 0.0
  39311. .IP \(bu 2
  39312. \fBstate.apply\fP invoked without any
  39313. SLS names will run \fBstate.highstate\fP
  39314. .IP \(bu 2
  39315. \fBstate.apply\fP invoked with SLS names
  39316. will run \fBstate.sls\fP
  39317. .UNINDENT
  39318. .UNINDENT
  39319. .UNINDENT
  39320. .sp
  39321. Once completed, the minion will report back with a summary of all actions taken
  39322. and all changes made.
  39323. .sp
  39324. \fBWARNING:\fP
  39325. .INDENT 0.0
  39326. .INDENT 3.5
  39327. If you have created custom grain modules, they will
  39328. not be available in the top file until after the first \fI\%highstate\fP\&. To make custom grains available on a minion\(aqs first
  39329. \fI\%highstate\fP, it is recommended to use this
  39330. example to ensure that the custom grains are synced
  39331. when the minion starts.
  39332. .UNINDENT
  39333. .UNINDENT
  39334. .INDENT 0.0
  39335. .INDENT 3.5
  39336. .IP "SLS File Namespace"
  39337. .sp
  39338. Note that in the \fI\%example\fP above, the SLS file
  39339. \fBwebserver.sls\fP was referred to simply as \fBwebserver\fP\&. The namespace
  39340. for SLS files when referenced in \fBtop.sls\fP or an include\-declaration
  39341. follows a few simple rules:
  39342. .INDENT 0.0
  39343. .IP 1. 3
  39344. The \fB\&.sls\fP is discarded (i.e. \fBwebserver.sls\fP becomes
  39345. \fBwebserver\fP).
  39346. .IP 2. 3
  39347. .INDENT 3.0
  39348. .TP
  39349. .B Subdirectories can be used for better organization.
  39350. .INDENT 7.0
  39351. .IP a. 3
  39352. Each subdirectory is represented with a dot (following the Python
  39353. import model) in Salt states and on the command line . \fBwebserver/dev.sls\fP
  39354. on the filesystem is referred to as \fBwebserver.dev\fP in Salt
  39355. .IP b. 3
  39356. Because slashes are represented as dots, SLS files can not contain
  39357. dots in the name (other than the dot for the SLS suffix). The SLS
  39358. file \fBwebserver_1.0.sls\fP can not be matched, and \fBwebserver_1.0\fP
  39359. would match the directory/file \fBwebserver_1/0.sls\fP
  39360. .UNINDENT
  39361. .UNINDENT
  39362. .IP 3. 3
  39363. A file called \fBinit.sls\fP in a subdirectory is referred to by the path
  39364. of the directory. So, \fBwebserver/init.sls\fP is referred to as
  39365. \fBwebserver\fP\&.
  39366. .IP 4. 3
  39367. If both \fBwebserver.sls\fP and \fBwebserver/init.sls\fP happen to exist,
  39368. \fBwebserver/init.sls\fP will be ignored and \fBwebserver.sls\fP will be the
  39369. file referred to as \fBwebserver\fP\&.
  39370. .UNINDENT
  39371. .UNINDENT
  39372. .UNINDENT
  39373. .INDENT 0.0
  39374. .INDENT 3.5
  39375. .IP "Troubleshooting Salt"
  39376. .sp
  39377. If the expected output isn\(aqt seen, the following tips can help to
  39378. narrow down the problem.
  39379. .INDENT 0.0
  39380. .TP
  39381. .B Turn up logging
  39382. Salt can be quite chatty when you change the logging setting to
  39383. \fBdebug\fP:
  39384. .INDENT 7.0
  39385. .INDENT 3.5
  39386. .sp
  39387. .nf
  39388. .ft C
  39389. salt\-minion \-l debug
  39390. .ft P
  39391. .fi
  39392. .UNINDENT
  39393. .UNINDENT
  39394. .TP
  39395. .B Run the minion in the foreground
  39396. By not starting the minion in daemon mode (\fB\-d\fP)
  39397. one can view any output from the minion as it works:
  39398. .INDENT 7.0
  39399. .INDENT 3.5
  39400. .sp
  39401. .nf
  39402. .ft C
  39403. salt\-minion
  39404. .ft P
  39405. .fi
  39406. .UNINDENT
  39407. .UNINDENT
  39408. .UNINDENT
  39409. .sp
  39410. Increase the default timeout value when running \fBsalt\fP\&. For
  39411. example, to change the default timeout to 60 seconds:
  39412. .INDENT 0.0
  39413. .INDENT 3.5
  39414. .sp
  39415. .nf
  39416. .ft C
  39417. salt \-t 60
  39418. .ft P
  39419. .fi
  39420. .UNINDENT
  39421. .UNINDENT
  39422. .sp
  39423. For best results, combine all three:
  39424. .INDENT 0.0
  39425. .INDENT 3.5
  39426. .sp
  39427. .nf
  39428. .ft C
  39429. salt\-minion \-l debug # On the minion
  39430. salt \(aq*\(aq state.apply \-t 60 # On the master
  39431. .ft P
  39432. .fi
  39433. .UNINDENT
  39434. .UNINDENT
  39435. .UNINDENT
  39436. .UNINDENT
  39437. .SS Next steps
  39438. .sp
  39439. This tutorial focused on getting a simple Salt States configuration working.
  39440. Part 2 will build on this example to cover more advanced
  39441. \fBsls\fP syntax and will explore more of the states that ship with Salt.
  39442. .SS States tutorial, part 2 \- More Complex States, Requisites
  39443. .sp
  39444. \fBNOTE:\fP
  39445. .INDENT 0.0
  39446. .INDENT 3.5
  39447. This tutorial builds on topics covered in part 1\&. It is
  39448. recommended that you begin there.
  39449. .UNINDENT
  39450. .UNINDENT
  39451. .sp
  39452. In the last part of the Salt States tutorial we covered the
  39453. basics of installing a package. We will now modify our \fBwebserver.sls\fP file
  39454. to have requirements, and use even more Salt States.
  39455. .SS Call multiple States
  39456. .sp
  39457. You can specify multiple state\-declaration under an
  39458. id\-declaration\&. For example, a quick modification to our
  39459. \fBwebserver.sls\fP to also start Apache if it is not running:
  39460. .INDENT 0.0
  39461. .INDENT 3.5
  39462. .sp
  39463. .nf
  39464. .ft C
  39465. apache:
  39466. pkg.installed: []
  39467. service.running:
  39468. \- require:
  39469. \- pkg: apache
  39470. .ft P
  39471. .fi
  39472. .UNINDENT
  39473. .UNINDENT
  39474. .sp
  39475. Try stopping Apache before running \fBstate.apply\fP once again and observe the output.
  39476. .sp
  39477. \fBNOTE:\fP
  39478. .INDENT 0.0
  39479. .INDENT 3.5
  39480. For those running RedhatOS derivatives (Centos, AWS), you will want to specify the
  39481. service name to be httpd. More on state service here, \fBservice state\fP\&. With the example above, just add "\- name: httpd"
  39482. above the require line and with the same spacing.
  39483. .UNINDENT
  39484. .UNINDENT
  39485. .SS Require other states
  39486. .sp
  39487. We now have a working installation of Apache so let\(aqs add an HTML file to
  39488. customize our website. It isn\(aqt exactly useful to have a website without a
  39489. webserver so we don\(aqt want Salt to install our HTML file until Apache is
  39490. installed and running. Include the following at the bottom of your
  39491. \fBwebserver/init.sls\fP file:
  39492. .INDENT 0.0
  39493. .INDENT 3.5
  39494. .sp
  39495. .nf
  39496. .ft C
  39497. apache:
  39498. pkg.installed: []
  39499. service.running:
  39500. \- require:
  39501. \- pkg: apache
  39502. /var/www/index.html: # ID declaration
  39503. file: # state declaration
  39504. \- managed # function
  39505. \- source: salt://webserver/index.html # function arg
  39506. \- require: # requisite declaration
  39507. \- pkg: apache # requisite reference
  39508. .ft P
  39509. .fi
  39510. .UNINDENT
  39511. .UNINDENT
  39512. .sp
  39513. \fBline 7\fP is the id\-declaration\&. In this example it is the location we
  39514. want to install our custom HTML file. (\fBNote:\fP the default location that
  39515. Apache serves may differ from the above on your OS or distro. \fB/srv/www\fP
  39516. could also be a likely place to look.)
  39517. .sp
  39518. \fBLine 8\fP the state\-declaration\&. This example uses the Salt \fBfile
  39519. state\fP\&.
  39520. .sp
  39521. \fBLine 9\fP is the function\-declaration\&. The \fBmanaged function\fP will download a file from the master and install it
  39522. in the location specified.
  39523. .sp
  39524. \fBLine 10\fP is a function\-arg\-declaration which, in this example, passes
  39525. the \fBsource\fP argument to the \fBmanaged function\fP\&.
  39526. .sp
  39527. \fBLine 11\fP is a requisite\-declaration\&.
  39528. .sp
  39529. \fBLine 12\fP is a requisite\-reference which refers to a state and an ID.
  39530. In this example, it is referring to the \fBID declaration\fP from our example in
  39531. part 1\&. This declaration tells Salt not to install the HTML
  39532. file until Apache is installed.
  39533. .sp
  39534. Next, create the \fBindex.html\fP file and save it in the \fBwebserver\fP
  39535. directory:
  39536. .INDENT 0.0
  39537. .INDENT 3.5
  39538. .sp
  39539. .nf
  39540. .ft C
  39541. <!DOCTYPE html>
  39542. <html>
  39543. <head><title>Salt rocks</title></head>
  39544. <body>
  39545. <h1>This file brought to you by Salt</h1>
  39546. </body>
  39547. </html>
  39548. .ft P
  39549. .fi
  39550. .UNINDENT
  39551. .UNINDENT
  39552. .sp
  39553. Last, call \fBstate.apply\fP again and the minion
  39554. will fetch and execute the highstate as well as our
  39555. HTML file from the master using Salt\(aqs File Server:
  39556. .INDENT 0.0
  39557. .INDENT 3.5
  39558. .sp
  39559. .nf
  39560. .ft C
  39561. salt \(aq*\(aq state.apply
  39562. .ft P
  39563. .fi
  39564. .UNINDENT
  39565. .UNINDENT
  39566. .sp
  39567. Verify that Apache is now serving your custom HTML.
  39568. .INDENT 0.0
  39569. .INDENT 3.5
  39570. .IP "\fBrequire\fP vs. \fBwatch\fP"
  39571. .sp
  39572. There are two requisite\-declaration, “require”, and “watch”. Not
  39573. every state supports “watch”. The \fBservice state\fP does support “watch” and will restart a service
  39574. based on the watch condition.
  39575. .sp
  39576. For example, if you use Salt to install an Apache virtual host
  39577. configuration file and want to restart Apache whenever that file is changed
  39578. you could modify our Apache example from earlier as follows:
  39579. .INDENT 0.0
  39580. .INDENT 3.5
  39581. .sp
  39582. .nf
  39583. .ft C
  39584. /etc/httpd/extra/httpd\-vhosts.conf:
  39585. file.managed:
  39586. \- source: salt://webserver/httpd\-vhosts.conf
  39587. apache:
  39588. pkg.installed: []
  39589. service.running:
  39590. \- watch:
  39591. \- file: /etc/httpd/extra/httpd\-vhosts.conf
  39592. \- require:
  39593. \- pkg: apache
  39594. .ft P
  39595. .fi
  39596. .UNINDENT
  39597. .UNINDENT
  39598. .sp
  39599. If the pkg and service names differ on your OS or distro of choice you can
  39600. specify each one separately using a name\-declaration which explained
  39601. in Part 3\&.
  39602. .UNINDENT
  39603. .UNINDENT
  39604. .SS Next steps
  39605. .sp
  39606. In part 3 we will discuss how to use includes, extends, and
  39607. templating to make a more complete State Tree configuration.
  39608. .SS States tutorial, part 3 \- Templating, Includes, Extends
  39609. .sp
  39610. \fBNOTE:\fP
  39611. .INDENT 0.0
  39612. .INDENT 3.5
  39613. This tutorial builds on topics covered in part 1 and
  39614. part 2\&. It is recommended that you begin there.
  39615. .UNINDENT
  39616. .UNINDENT
  39617. .sp
  39618. This part of the tutorial will cover more advanced templating and
  39619. configuration techniques for \fBsls\fP files.
  39620. .SS Templating SLS modules
  39621. .sp
  39622. SLS modules may require programming logic or inline execution. This is
  39623. accomplished with module templating. The default module templating system used
  39624. is \fI\%Jinja2\fP and may be configured by changing the \fBrenderer\fP
  39625. value in the master config.
  39626. .sp
  39627. All states are passed through a templating system when they are initially read.
  39628. To make use of the templating system, simply add some templating markup.
  39629. An example of an sls module with templating markup may look like this:
  39630. .INDENT 0.0
  39631. .INDENT 3.5
  39632. .sp
  39633. .nf
  39634. .ft C
  39635. {% for usr in [\(aqmoe\(aq,\(aqlarry\(aq,\(aqcurly\(aq] %}
  39636. {{ usr }}:
  39637. user.present
  39638. {% endfor %}
  39639. .ft P
  39640. .fi
  39641. .UNINDENT
  39642. .UNINDENT
  39643. .sp
  39644. This templated sls file once generated will look like this:
  39645. .INDENT 0.0
  39646. .INDENT 3.5
  39647. .sp
  39648. .nf
  39649. .ft C
  39650. moe:
  39651. user.present
  39652. larry:
  39653. user.present
  39654. curly:
  39655. user.present
  39656. .ft P
  39657. .fi
  39658. .UNINDENT
  39659. .UNINDENT
  39660. .sp
  39661. Here\(aqs a more complex example:
  39662. .INDENT 0.0
  39663. .INDENT 3.5
  39664. .sp
  39665. .nf
  39666. .ft C
  39667. # Comments in yaml start with a hash symbol.
  39668. # Since jinja rendering occurs before yaml parsing, if you want to include jinja
  39669. # in the comments you may need to escape them using \(aqjinja\(aq comments to prevent
  39670. # jinja from trying to render something which is not well\-defined jinja.
  39671. # e.g.
  39672. # {# iterate over the Three Stooges using a {% for %}..{% endfor %} loop
  39673. # with the iterator variable {{ usr }} becoming the state ID. #}
  39674. {% for usr in \(aqmoe\(aq,\(aqlarry\(aq,\(aqcurly\(aq %}
  39675. {{ usr }}:
  39676. group:
  39677. \- present
  39678. user:
  39679. \- present
  39680. \- gid_from_name: True
  39681. \- require:
  39682. \- group: {{ usr }}
  39683. {% endfor %}
  39684. .ft P
  39685. .fi
  39686. .UNINDENT
  39687. .UNINDENT
  39688. .SS Using Grains in SLS modules
  39689. .sp
  39690. Often times a state will need to behave differently on different systems.
  39691. Salt grains objects are made available in the template
  39692. context. The \fIgrains\fP can be used from within sls modules:
  39693. .INDENT 0.0
  39694. .INDENT 3.5
  39695. .sp
  39696. .nf
  39697. .ft C
  39698. apache:
  39699. pkg.installed:
  39700. {% if grains[\(aqos\(aq] == \(aqRedHat\(aq %}
  39701. \- name: httpd
  39702. {% elif grains[\(aqos\(aq] == \(aqUbuntu\(aq %}
  39703. \- name: apache2
  39704. {% endif %}
  39705. .ft P
  39706. .fi
  39707. .UNINDENT
  39708. .UNINDENT
  39709. .SS Using Environment Variables in SLS modules
  39710. .sp
  39711. You can use \fBsalt[\(aqenviron.get\(aq](\(aqVARNAME\(aq)\fP to use an environment
  39712. variable in a Salt state.
  39713. .INDENT 0.0
  39714. .INDENT 3.5
  39715. .sp
  39716. .nf
  39717. .ft C
  39718. MYENVVAR="world" salt\-call state.template test.sls
  39719. .ft P
  39720. .fi
  39721. .UNINDENT
  39722. .UNINDENT
  39723. .INDENT 0.0
  39724. .INDENT 3.5
  39725. .sp
  39726. .nf
  39727. .ft C
  39728. Create a file with contents from an environment variable:
  39729. file.managed:
  39730. \- name: /tmp/hello
  39731. \- contents: {{ salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) }}
  39732. .ft P
  39733. .fi
  39734. .UNINDENT
  39735. .UNINDENT
  39736. .sp
  39737. Error checking:
  39738. .INDENT 0.0
  39739. .INDENT 3.5
  39740. .sp
  39741. .nf
  39742. .ft C
  39743. {% set myenvvar = salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) %}
  39744. {% if myenvvar %}
  39745. Create a file with contents from an environment variable:
  39746. file.managed:
  39747. \- name: /tmp/hello
  39748. \- contents: {{ salt[\(aqenviron.get\(aq](\(aqMYENVVAR\(aq) }}
  39749. {% else %}
  39750. Fail \- no environment passed in:
  39751. test.fail_without_changes
  39752. {% endif %}
  39753. .ft P
  39754. .fi
  39755. .UNINDENT
  39756. .UNINDENT
  39757. .SS Calling Salt modules from templates
  39758. .sp
  39759. All of the Salt modules loaded by the minion are available within the
  39760. templating system. This allows data to be gathered in real time on the target
  39761. system. It also allows for shell commands to be run easily from within the sls
  39762. modules.
  39763. .sp
  39764. The Salt module functions are also made available in the template context as
  39765. \fBsalt:\fP
  39766. .sp
  39767. The following example illustrates calling the \fBgroup_to_gid\fP function in the
  39768. \fBfile\fP execution module with a single positional argument called
  39769. \fBsome_group_that_exists\fP\&.
  39770. .INDENT 0.0
  39771. .INDENT 3.5
  39772. .sp
  39773. .nf
  39774. .ft C
  39775. moe:
  39776. user.present:
  39777. \- gid: {{ salt[\(aqfile.group_to_gid\(aq](\(aqsome_group_that_exists\(aq) }}
  39778. .ft P
  39779. .fi
  39780. .UNINDENT
  39781. .UNINDENT
  39782. .sp
  39783. One way to think about this might be that the \fBgid\fP key is being assigned
  39784. a value equivalent to the following python pseudo\-code:
  39785. .INDENT 0.0
  39786. .INDENT 3.5
  39787. .sp
  39788. .nf
  39789. .ft C
  39790. import salt.modules.file
  39791. file.group_to_gid(\(aqsome_group_that_exists\(aq)
  39792. .ft P
  39793. .fi
  39794. .UNINDENT
  39795. .UNINDENT
  39796. .sp
  39797. Note that for the above example to work, \fBsome_group_that_exists\fP must exist
  39798. before the state file is processed by the templating engine.
  39799. .sp
  39800. Below is an example that uses the \fBnetwork.hw_addr\fP function to retrieve the
  39801. MAC address for eth0:
  39802. .INDENT 0.0
  39803. .INDENT 3.5
  39804. .sp
  39805. .nf
  39806. .ft C
  39807. salt[\(aqnetwork.hw_addr\(aq](\(aqeth0\(aq)
  39808. .ft P
  39809. .fi
  39810. .UNINDENT
  39811. .UNINDENT
  39812. .sp
  39813. To examine the possible arguments to each execution module function,
  39814. one can examine the \fI\%module reference documentation\fP:
  39815. .SS Advanced SLS module syntax
  39816. .sp
  39817. Lastly, we will cover some incredibly useful techniques for more complex State
  39818. trees.
  39819. .SS Include declaration
  39820. .sp
  39821. A previous example showed how to spread a Salt tree across several files.
  39822. Similarly, requisites span multiple files by
  39823. using an include\-declaration\&. For example:
  39824. .sp
  39825. \fBpython/python\-libs.sls:\fP
  39826. .INDENT 0.0
  39827. .INDENT 3.5
  39828. .sp
  39829. .nf
  39830. .ft C
  39831. python\-dateutil:
  39832. pkg.installed
  39833. .ft P
  39834. .fi
  39835. .UNINDENT
  39836. .UNINDENT
  39837. .sp
  39838. \fBpython/django.sls:\fP
  39839. .INDENT 0.0
  39840. .INDENT 3.5
  39841. .sp
  39842. .nf
  39843. .ft C
  39844. include:
  39845. \- python.python\-libs
  39846. django:
  39847. pkg.installed:
  39848. \- require:
  39849. \- pkg: python\-dateutil
  39850. .ft P
  39851. .fi
  39852. .UNINDENT
  39853. .UNINDENT
  39854. .SS Extend declaration
  39855. .sp
  39856. You can modify previous declarations by using an extend\-declaration\&. For
  39857. example the following modifies the Apache tree to also restart Apache when the
  39858. vhosts file is changed:
  39859. .sp
  39860. \fBapache/apache.sls:\fP
  39861. .INDENT 0.0
  39862. .INDENT 3.5
  39863. .sp
  39864. .nf
  39865. .ft C
  39866. apache:
  39867. pkg.installed
  39868. .ft P
  39869. .fi
  39870. .UNINDENT
  39871. .UNINDENT
  39872. .sp
  39873. \fBapache/mywebsite.sls:\fP
  39874. .INDENT 0.0
  39875. .INDENT 3.5
  39876. .sp
  39877. .nf
  39878. .ft C
  39879. include:
  39880. \- apache.apache
  39881. extend:
  39882. apache:
  39883. service:
  39884. \- running
  39885. \- watch:
  39886. \- file: /etc/httpd/extra/httpd\-vhosts.conf
  39887. /etc/httpd/extra/httpd\-vhosts.conf:
  39888. file.managed:
  39889. \- source: salt://apache/httpd\-vhosts.conf
  39890. .ft P
  39891. .fi
  39892. .UNINDENT
  39893. .UNINDENT
  39894. .INDENT 0.0
  39895. .INDENT 3.5
  39896. .IP "Using extend with require or watch"
  39897. .sp
  39898. The \fBextend\fP statement works differently for \fBrequire\fP or \fBwatch\fP\&.
  39899. It appends to, rather than replacing the requisite component.
  39900. .UNINDENT
  39901. .UNINDENT
  39902. .SS Name declaration
  39903. .sp
  39904. You can override the id\-declaration by using a name\-declaration\&.
  39905. For example, the previous example is a bit more maintainable if rewritten as
  39906. follows:
  39907. .sp
  39908. \fBapache/mywebsite.sls:\fP
  39909. .INDENT 0.0
  39910. .INDENT 3.5
  39911. .sp
  39912. .nf
  39913. .ft C
  39914. include:
  39915. \- apache.apache
  39916. extend:
  39917. apache:
  39918. service:
  39919. \- running
  39920. \- watch:
  39921. \- file: mywebsite
  39922. mywebsite:
  39923. file.managed:
  39924. \- name: /etc/httpd/extra/httpd\-vhosts.conf
  39925. \- source: salt://apache/httpd\-vhosts.conf
  39926. .ft P
  39927. .fi
  39928. .UNINDENT
  39929. .UNINDENT
  39930. .SS Names declaration
  39931. .sp
  39932. Even more powerful is using a names\-declaration to override the
  39933. id\-declaration for multiple states at once. This often can remove the
  39934. need for looping in a template. For example, the first example in this tutorial
  39935. can be rewritten without the loop:
  39936. .INDENT 0.0
  39937. .INDENT 3.5
  39938. .sp
  39939. .nf
  39940. .ft C
  39941. stooges:
  39942. user.present:
  39943. \- names:
  39944. \- moe
  39945. \- larry
  39946. \- curly
  39947. .ft P
  39948. .fi
  39949. .UNINDENT
  39950. .UNINDENT
  39951. .SS Next steps
  39952. .sp
  39953. In part 4 we will discuss how to use salt\(aqs
  39954. \fBfile_roots\fP to set up a workflow in which states can be
  39955. "promoted" from dev, to QA, to production.
  39956. .SS States tutorial, part 4
  39957. .sp
  39958. \fBNOTE:\fP
  39959. .INDENT 0.0
  39960. .INDENT 3.5
  39961. This tutorial builds on topics covered in part 1,
  39962. part 2, and part 3\&.
  39963. It is recommended that you begin there.
  39964. .UNINDENT
  39965. .UNINDENT
  39966. .sp
  39967. This part of the tutorial will show how to use salt\(aqs \fBfile_roots\fP
  39968. to set up a workflow in which states can be "promoted" from dev, to QA, to
  39969. production.
  39970. .SS Salt fileserver path inheritance
  39971. .sp
  39972. Salt\(aqs fileserver allows for more than one root directory per environment, like
  39973. in the below example, which uses both a local directory and a secondary
  39974. location shared to the salt master via NFS:
  39975. .INDENT 0.0
  39976. .INDENT 3.5
  39977. .sp
  39978. .nf
  39979. .ft C
  39980. # In the master config file (/etc/salt/master)
  39981. file_roots:
  39982. base:
  39983. \- /srv/salt
  39984. \- /mnt/salt\-nfs/base
  39985. .ft P
  39986. .fi
  39987. .UNINDENT
  39988. .UNINDENT
  39989. .sp
  39990. Salt\(aqs fileserver collapses the list of root directories into a single virtual
  39991. environment containing all files from each root. If the same file exists at the
  39992. same relative path in more than one root, then the top\-most match "wins". For
  39993. example, if \fB/srv/salt/foo.txt\fP and \fB/mnt/salt\-nfs/base/foo.txt\fP both
  39994. exist, then \fBsalt://foo.txt\fP will point to \fB/srv/salt/foo.txt\fP\&.
  39995. .sp
  39996. \fBNOTE:\fP
  39997. .INDENT 0.0
  39998. .INDENT 3.5
  39999. When using multiple fileserver backends, the order in which they are listed
  40000. in the \fBfileserver_backend\fP parameter also matters. If both
  40001. \fBroots\fP and \fBgit\fP backends contain a file with the same relative path,
  40002. and \fBroots\fP appears before \fBgit\fP in the
  40003. \fBfileserver_backend\fP list, then the file in \fBroots\fP will
  40004. "win", and the file in gitfs will be ignored.
  40005. .sp
  40006. A more thorough explanation of how Salt\(aqs modular fileserver works can be
  40007. found here\&. We recommend reading this.
  40008. .UNINDENT
  40009. .UNINDENT
  40010. .SS Environment configuration
  40011. .sp
  40012. Configure a multiple\-environment setup like so:
  40013. .INDENT 0.0
  40014. .INDENT 3.5
  40015. .sp
  40016. .nf
  40017. .ft C
  40018. file_roots:
  40019. base:
  40020. \- /srv/salt/prod
  40021. qa:
  40022. \- /srv/salt/qa
  40023. \- /srv/salt/prod
  40024. dev:
  40025. \- /srv/salt/dev
  40026. \- /srv/salt/qa
  40027. \- /srv/salt/prod
  40028. .ft P
  40029. .fi
  40030. .UNINDENT
  40031. .UNINDENT
  40032. .sp
  40033. Given the path inheritance described above, files within \fB/srv/salt/prod\fP
  40034. would be available in all environments. Files within \fB/srv/salt/qa\fP would be
  40035. available in both \fBqa\fP, and \fBdev\fP\&. Finally, the files within
  40036. \fB/srv/salt/dev\fP would only be available within the \fBdev\fP environment.
  40037. .sp
  40038. Based on the order in which the roots are defined, new files/states can be
  40039. placed within \fB/srv/salt/dev\fP, and pushed out to the dev hosts for testing.
  40040. .sp
  40041. Those files/states can then be moved to the same relative path within
  40042. \fB/srv/salt/qa\fP, and they are now available only in the \fBdev\fP and \fBqa\fP
  40043. environments, allowing them to be pushed to QA hosts and tested.
  40044. .sp
  40045. Finally, if moved to the same relative path within \fB/srv/salt/prod\fP, the
  40046. files are now available in all three environments.
  40047. .SS Requesting files from specific fileserver environments
  40048. .sp
  40049. See here for documentation on how to request
  40050. files from specific environments.
  40051. .SS Practical Example
  40052. .sp
  40053. As an example, consider a simple website, installed to \fB/var/www/foobarcom\fP\&.
  40054. Below is a top.sls that can be used to deploy the website:
  40055. .sp
  40056. \fB/srv/salt/prod/top.sls:\fP
  40057. .INDENT 0.0
  40058. .INDENT 3.5
  40059. .sp
  40060. .nf
  40061. .ft C
  40062. base:
  40063. \(aqweb*prod*\(aq:
  40064. \- webserver.foobarcom
  40065. qa:
  40066. \(aqweb*qa*\(aq:
  40067. \- webserver.foobarcom
  40068. dev:
  40069. \(aqweb*dev*\(aq:
  40070. \- webserver.foobarcom
  40071. .ft P
  40072. .fi
  40073. .UNINDENT
  40074. .UNINDENT
  40075. .sp
  40076. Using pillar, roles can be assigned to the hosts:
  40077. .sp
  40078. \fB/srv/pillar/top.sls:\fP
  40079. .INDENT 0.0
  40080. .INDENT 3.5
  40081. .sp
  40082. .nf
  40083. .ft C
  40084. base:
  40085. \(aqweb*prod*\(aq:
  40086. \- webserver.prod
  40087. \(aqweb*qa*\(aq:
  40088. \- webserver.qa
  40089. \(aqweb*dev*\(aq:
  40090. \- webserver.dev
  40091. .ft P
  40092. .fi
  40093. .UNINDENT
  40094. .UNINDENT
  40095. .sp
  40096. \fB/srv/pillar/webserver/prod.sls:\fP
  40097. .INDENT 0.0
  40098. .INDENT 3.5
  40099. .sp
  40100. .nf
  40101. .ft C
  40102. webserver_role: prod
  40103. .ft P
  40104. .fi
  40105. .UNINDENT
  40106. .UNINDENT
  40107. .sp
  40108. \fB/srv/pillar/webserver/qa.sls:\fP
  40109. .INDENT 0.0
  40110. .INDENT 3.5
  40111. .sp
  40112. .nf
  40113. .ft C
  40114. webserver_role: qa
  40115. .ft P
  40116. .fi
  40117. .UNINDENT
  40118. .UNINDENT
  40119. .sp
  40120. \fB/srv/pillar/webserver/dev.sls:\fP
  40121. .INDENT 0.0
  40122. .INDENT 3.5
  40123. .sp
  40124. .nf
  40125. .ft C
  40126. webserver_role: dev
  40127. .ft P
  40128. .fi
  40129. .UNINDENT
  40130. .UNINDENT
  40131. .sp
  40132. And finally, the SLS to deploy the website:
  40133. .sp
  40134. \fB/srv/salt/prod/webserver/foobarcom.sls:\fP
  40135. .INDENT 0.0
  40136. .INDENT 3.5
  40137. .sp
  40138. .nf
  40139. .ft C
  40140. {% if pillar.get(\(aqwebserver_role\(aq, \(aq\(aq) %}
  40141. /var/www/foobarcom:
  40142. file.recurse:
  40143. \- source: salt://webserver/src/foobarcom
  40144. \- env: {{ pillar[\(aqwebserver_role\(aq] }}
  40145. \- user: www
  40146. \- group: www
  40147. \- dir_mode: 755
  40148. \- file_mode: 644
  40149. {% endif %}
  40150. .ft P
  40151. .fi
  40152. .UNINDENT
  40153. .UNINDENT
  40154. .sp
  40155. Given the above SLS, the source for the website should initially be placed in
  40156. \fB/srv/salt/dev/webserver/src/foobarcom\fP\&.
  40157. .sp
  40158. First, let\(aqs deploy to dev. Given the configuration in the top file, this can
  40159. be done using \fBstate.apply\fP:
  40160. .INDENT 0.0
  40161. .INDENT 3.5
  40162. .sp
  40163. .nf
  40164. .ft C
  40165. salt \-\-pillar \(aqwebserver_role:dev\(aq state.apply
  40166. .ft P
  40167. .fi
  40168. .UNINDENT
  40169. .UNINDENT
  40170. .sp
  40171. However, in the event that it is not desirable to apply all states configured
  40172. in the top file (which could be likely in more complex setups), it is possible
  40173. to apply just the states for the \fBfoobarcom\fP website, by invoking
  40174. \fBstate.apply\fP with the desired SLS target
  40175. as an argument:
  40176. .INDENT 0.0
  40177. .INDENT 3.5
  40178. .sp
  40179. .nf
  40180. .ft C
  40181. salt \-\-pillar \(aqwebserver_role:dev\(aq state.apply webserver.foobarcom
  40182. .ft P
  40183. .fi
  40184. .UNINDENT
  40185. .UNINDENT
  40186. .sp
  40187. Once the site has been tested in dev, then the files can be moved from
  40188. \fB/srv/salt/dev/webserver/src/foobarcom\fP to
  40189. \fB/srv/salt/qa/webserver/src/foobarcom\fP, and deployed using the following:
  40190. .INDENT 0.0
  40191. .INDENT 3.5
  40192. .sp
  40193. .nf
  40194. .ft C
  40195. salt \-\-pillar \(aqwebserver_role:qa\(aq state.apply webserver.foobarcom
  40196. .ft P
  40197. .fi
  40198. .UNINDENT
  40199. .UNINDENT
  40200. .sp
  40201. Finally, once the site has been tested in qa, then the files can be moved from
  40202. \fB/srv/salt/qa/webserver/src/foobarcom\fP to
  40203. \fB/srv/salt/prod/webserver/src/foobarcom\fP, and deployed using the following:
  40204. .INDENT 0.0
  40205. .INDENT 3.5
  40206. .sp
  40207. .nf
  40208. .ft C
  40209. salt \-\-pillar \(aqwebserver_role:prod\(aq state.apply webserver.foobarcom
  40210. .ft P
  40211. .fi
  40212. .UNINDENT
  40213. .UNINDENT
  40214. .sp
  40215. Thanks to Salt\(aqs fileserver inheritance, even though the files have been moved
  40216. to within \fB/srv/salt/prod\fP, they are still available from the same
  40217. \fBsalt://\fP URI in both the qa and dev environments.
  40218. .SS Continue Learning
  40219. .sp
  40220. The best way to continue learning about Salt States is to read through the
  40221. reference documentation and to look through examples
  40222. of existing state trees. Many pre\-configured state trees
  40223. can be found on GitHub in the \fI\%saltstack\-formulas\fP collection of repositories.
  40224. .sp
  40225. If you have any questions, suggestions, or just want to chat with other people
  40226. who are using Salt, we have a very active community
  40227. and we\(aqd love to hear from you.
  40228. .sp
  40229. In addition, by continuing to the Orchestrate Runner docs,
  40230. you can learn about the powerful orchestration of which Salt is capable.
  40231. .SS States Tutorial, Part 5 \- Orchestration with Salt
  40232. .sp
  40233. This was moved to Orchestrate Runner\&.
  40234. .SS Syslog\-ng usage
  40235. .SS Overview
  40236. .sp
  40237. Syslog_ng state module is for generating syslog\-ng
  40238. configurations. You can do the following things:
  40239. .INDENT 0.0
  40240. .IP \(bu 2
  40241. generate syslog\-ng configuration from YAML,
  40242. .IP \(bu 2
  40243. use non\-YAML configuration,
  40244. .IP \(bu 2
  40245. start, stop or reload syslog\-ng.
  40246. .UNINDENT
  40247. .sp
  40248. There is also an execution module, which can check the syntax of the
  40249. configuration, get the version and other information about syslog\-ng.
  40250. .SS Configuration
  40251. .sp
  40252. Users can create syslog\-ng configuration statements with the
  40253. \fBsyslog_ng.config\fP function. It requires
  40254. a \fIname\fP and a \fIconfig\fP parameter. The \fIname\fP parameter determines the name of
  40255. the generated statement and the \fIconfig\fP parameter holds a parsed YAML structure.
  40256. .sp
  40257. A statement can be declared in the following forms (both are equivalent):
  40258. .INDENT 0.0
  40259. .INDENT 3.5
  40260. .sp
  40261. .nf
  40262. .ft C
  40263. source.s_localhost:
  40264. syslog_ng.config:
  40265. \- config:
  40266. \- tcp:
  40267. \- ip: "127.0.0.1"
  40268. \- port: 1233
  40269. .ft P
  40270. .fi
  40271. .UNINDENT
  40272. .UNINDENT
  40273. .INDENT 0.0
  40274. .INDENT 3.5
  40275. .sp
  40276. .nf
  40277. .ft C
  40278. s_localhost:
  40279. syslog_ng.config:
  40280. \- config:
  40281. source:
  40282. \- tcp:
  40283. \- ip: "127.0.0.1"
  40284. \- port: 1233
  40285. .ft P
  40286. .fi
  40287. .UNINDENT
  40288. .UNINDENT
  40289. .sp
  40290. The first one is called short form, because it needs less typing. Users can use lists
  40291. and dictionaries to specify their configuration. The format is quite self describing and
  40292. there are more examples [at the end](#examples) of this document.
  40293. .SS Quotation
  40294. .INDENT 0.0
  40295. .TP
  40296. .B The quotation can be tricky sometimes but here are some rules to follow:
  40297. .INDENT 7.0
  40298. .IP \(bu 2
  40299. when a string meant to be \fB"string"\fP in the generated configuration, it should be like \fB\(aq"string"\(aq\fP in the YAML document
  40300. .IP \(bu 2
  40301. similarly, users should write \fB"\(aqstring\(aq"\fP to get \fB\(aqstring\(aq\fP in the generated configuration
  40302. .UNINDENT
  40303. .UNINDENT
  40304. .SS Full example
  40305. .sp
  40306. The following configuration is an example, how a complete syslog\-ng configuration looks like:
  40307. .INDENT 0.0
  40308. .INDENT 3.5
  40309. .sp
  40310. .nf
  40311. .ft C
  40312. # Set the location of the configuration file
  40313. set_location:
  40314. module.run:
  40315. \- name: syslog_ng.set_config_file
  40316. \- m_name: "/home/tibi/install/syslog\-ng/etc/syslog\-ng.conf"
  40317. # The syslog\-ng and syslog\-ng\-ctl binaries are here. You needn\(aqt use
  40318. # this method if these binaries can be found in a directory in your PATH.
  40319. set_bin_path:
  40320. module.run:
  40321. \- name: syslog_ng.set_binary_path
  40322. \- m_name: "/home/tibi/install/syslog\-ng/sbin"
  40323. # Writes the first lines into the config file, also erases its previous
  40324. # content
  40325. write_version:
  40326. module.run:
  40327. \- name: syslog_ng.write_version
  40328. \- m_name: "3.6"
  40329. # There is a shorter form to set the above variables
  40330. set_variables:
  40331. module.run:
  40332. \- name: syslog_ng.set_parameters
  40333. \- version: "3.6"
  40334. \- binary_path: "/home/tibi/install/syslog\-ng/sbin"
  40335. \- config_file: "/home/tibi/install/syslog\-ng/etc/syslog\-ng.conf"
  40336. # Some global options
  40337. options.global_options:
  40338. syslog_ng.config:
  40339. \- config:
  40340. \- time_reap: 30
  40341. \- mark_freq: 10
  40342. \- keep_hostname: "yes"
  40343. source.s_localhost:
  40344. syslog_ng.config:
  40345. \- config:
  40346. \- tcp:
  40347. \- ip: "127.0.0.1"
  40348. \- port: 1233
  40349. destination.d_log_server:
  40350. syslog_ng.config:
  40351. \- config:
  40352. \- tcp:
  40353. \- "127.0.0.1"
  40354. \- port: 1234
  40355. log.l_log_to_central_server:
  40356. syslog_ng.config:
  40357. \- config:
  40358. \- source: s_localhost
  40359. \- destination: d_log_server
  40360. some_comment:
  40361. module.run:
  40362. \- name: syslog_ng.write_config
  40363. \- config: |
  40364. # Multi line
  40365. # comment
  40366. # Another mode to use comments or existing configuration snippets
  40367. config.other_comment_form:
  40368. syslog_ng.config:
  40369. \- config: |
  40370. # Multi line
  40371. # comment
  40372. .ft P
  40373. .fi
  40374. .UNINDENT
  40375. .UNINDENT
  40376. .sp
  40377. The \fBsyslog_ng.reloaded\fP function can generate syslog\-ng configuration from YAML. If the statement (source, destination, parser,
  40378. etc.) has a name, this function uses the id as the name, otherwise (log
  40379. statement) its purpose is like a mandatory comment.
  40380. .sp
  40381. After execution this example the syslog_ng state will generate this
  40382. file:
  40383. .INDENT 0.0
  40384. .INDENT 3.5
  40385. .sp
  40386. .nf
  40387. .ft C
  40388. #Generated by Salt on 2014\-08\-18 00:11:11
  40389. @version: 3.6
  40390. options {
  40391. time_reap(
  40392. 30
  40393. );
  40394. mark_freq(
  40395. 10
  40396. );
  40397. keep_hostname(
  40398. yes
  40399. );
  40400. };
  40401. source s_localhost {
  40402. tcp(
  40403. ip(
  40404. 127.0.0.1
  40405. ),
  40406. port(
  40407. 1233
  40408. )
  40409. );
  40410. };
  40411. destination d_log_server {
  40412. tcp(
  40413. 127.0.0.1,
  40414. port(
  40415. 1234
  40416. )
  40417. );
  40418. };
  40419. log {
  40420. source(
  40421. s_localhost
  40422. );
  40423. destination(
  40424. d_log_server
  40425. );
  40426. };
  40427. # Multi line
  40428. # comment
  40429. # Multi line
  40430. # comment
  40431. .ft P
  40432. .fi
  40433. .UNINDENT
  40434. .UNINDENT
  40435. .sp
  40436. Users can include arbitrary texts in the generated configuration with
  40437. using the \fBconfig\fP statement (see the example above).
  40438. .SS Syslog_ng module functions
  40439. .sp
  40440. You can use \fBsyslog_ng.set_binary_path\fP
  40441. to set the directory which contains the
  40442. syslog\-ng and syslog\-ng\-ctl binaries. If this directory is in your PATH,
  40443. you don\(aqt need to use this function. There is also a \fBsyslog_ng.set_config_file\fP
  40444. function to set the location of the configuration file.
  40445. .SS Examples
  40446. .SS Simple source
  40447. .INDENT 0.0
  40448. .INDENT 3.5
  40449. .sp
  40450. .nf
  40451. .ft C
  40452. source s_tail {
  40453. file(
  40454. "/var/log/apache/access.log",
  40455. follow_freq(1),
  40456. flags(no\-parse, validate\-utf8)
  40457. );
  40458. };
  40459. .ft P
  40460. .fi
  40461. .UNINDENT
  40462. .UNINDENT
  40463. .INDENT 0.0
  40464. .INDENT 3.5
  40465. .sp
  40466. .nf
  40467. .ft C
  40468. s_tail:
  40469. # Salt will call the source function of syslog_ng module
  40470. syslog_ng.config:
  40471. \- config:
  40472. source:
  40473. \- file:
  40474. \- file: \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40475. \- follow_freq : 1
  40476. \- flags:
  40477. \- no\-parse
  40478. \- validate\-utf8
  40479. .ft P
  40480. .fi
  40481. .UNINDENT
  40482. .UNINDENT
  40483. .sp
  40484. OR
  40485. .INDENT 0.0
  40486. .INDENT 3.5
  40487. .sp
  40488. .nf
  40489. .ft C
  40490. s_tail:
  40491. syslog_ng.config:
  40492. \- config:
  40493. source:
  40494. \- file:
  40495. \- \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40496. \- follow_freq : 1
  40497. \- flags:
  40498. \- no\-parse
  40499. \- validate\-utf8
  40500. .ft P
  40501. .fi
  40502. .UNINDENT
  40503. .UNINDENT
  40504. .sp
  40505. OR
  40506. .INDENT 0.0
  40507. .INDENT 3.5
  40508. .sp
  40509. .nf
  40510. .ft C
  40511. source.s_tail:
  40512. syslog_ng.config:
  40513. \- config:
  40514. \- file:
  40515. \- \(aq\(aq"/var/log/apache/access.log"\(aq\(aq
  40516. \- follow_freq : 1
  40517. \- flags:
  40518. \- no\-parse
  40519. \- validate\-utf8
  40520. .ft P
  40521. .fi
  40522. .UNINDENT
  40523. .UNINDENT
  40524. .SS Complex source
  40525. .INDENT 0.0
  40526. .INDENT 3.5
  40527. .sp
  40528. .nf
  40529. .ft C
  40530. source s_gsoc2014 {
  40531. tcp(
  40532. ip("0.0.0.0"),
  40533. port(1234),
  40534. flags(no\-parse)
  40535. );
  40536. };
  40537. .ft P
  40538. .fi
  40539. .UNINDENT
  40540. .UNINDENT
  40541. .INDENT 0.0
  40542. .INDENT 3.5
  40543. .sp
  40544. .nf
  40545. .ft C
  40546. s_gsoc2014:
  40547. syslog_ng.config:
  40548. \- config:
  40549. source:
  40550. \- tcp:
  40551. \- ip: 0.0.0.0
  40552. \- port: 1234
  40553. \- flags: no\-parse
  40554. .ft P
  40555. .fi
  40556. .UNINDENT
  40557. .UNINDENT
  40558. .SS Filter
  40559. .INDENT 0.0
  40560. .INDENT 3.5
  40561. .sp
  40562. .nf
  40563. .ft C
  40564. filter f_json {
  40565. match(
  40566. "@json:"
  40567. );
  40568. };
  40569. .ft P
  40570. .fi
  40571. .UNINDENT
  40572. .UNINDENT
  40573. .INDENT 0.0
  40574. .INDENT 3.5
  40575. .sp
  40576. .nf
  40577. .ft C
  40578. f_json:
  40579. syslog_ng.config:
  40580. \- config:
  40581. filter:
  40582. \- match:
  40583. \- \(aq\(aq"@json:"\(aq\(aq
  40584. .ft P
  40585. .fi
  40586. .UNINDENT
  40587. .UNINDENT
  40588. .SS Template
  40589. .INDENT 0.0
  40590. .INDENT 3.5
  40591. .sp
  40592. .nf
  40593. .ft C
  40594. template t_demo_filetemplate {
  40595. template(
  40596. "$ISODATE $HOST $MSG "
  40597. );
  40598. template_escape(
  40599. no
  40600. );
  40601. };
  40602. .ft P
  40603. .fi
  40604. .UNINDENT
  40605. .UNINDENT
  40606. .INDENT 0.0
  40607. .INDENT 3.5
  40608. .sp
  40609. .nf
  40610. .ft C
  40611. t_demo_filetemplate:
  40612. syslog_ng.config:
  40613. \-config:
  40614. template:
  40615. \- template:
  40616. \- \(aq"$ISODATE $HOST $MSG\en"\(aq
  40617. \- template_escape:
  40618. \- "no"
  40619. .ft P
  40620. .fi
  40621. .UNINDENT
  40622. .UNINDENT
  40623. .SS Rewrite
  40624. .INDENT 0.0
  40625. .INDENT 3.5
  40626. .sp
  40627. .nf
  40628. .ft C
  40629. rewrite r_set_message_to_MESSAGE {
  40630. set(
  40631. "${.json.message}",
  40632. value("$MESSAGE")
  40633. );
  40634. };
  40635. .ft P
  40636. .fi
  40637. .UNINDENT
  40638. .UNINDENT
  40639. .INDENT 0.0
  40640. .INDENT 3.5
  40641. .sp
  40642. .nf
  40643. .ft C
  40644. r_set_message_to_MESSAGE:
  40645. syslog_ng.config:
  40646. \- config:
  40647. rewrite:
  40648. \- set:
  40649. \- \(aq"${.json.message}"\(aq
  40650. \- value : \(aq"$MESSAGE"\(aq
  40651. .ft P
  40652. .fi
  40653. .UNINDENT
  40654. .UNINDENT
  40655. .SS Global options
  40656. .INDENT 0.0
  40657. .INDENT 3.5
  40658. .sp
  40659. .nf
  40660. .ft C
  40661. options {
  40662. time_reap(30);
  40663. mark_freq(10);
  40664. keep_hostname(yes);
  40665. };
  40666. .ft P
  40667. .fi
  40668. .UNINDENT
  40669. .UNINDENT
  40670. .INDENT 0.0
  40671. .INDENT 3.5
  40672. .sp
  40673. .nf
  40674. .ft C
  40675. global_options:
  40676. syslog_ng.config:
  40677. \- config:
  40678. options:
  40679. \- time_reap: 30
  40680. \- mark_freq: 10
  40681. \- keep_hostname: "yes"
  40682. .ft P
  40683. .fi
  40684. .UNINDENT
  40685. .UNINDENT
  40686. .SS Log
  40687. .INDENT 0.0
  40688. .INDENT 3.5
  40689. .sp
  40690. .nf
  40691. .ft C
  40692. log {
  40693. source(s_gsoc2014);
  40694. junction {
  40695. channel {
  40696. filter(f_json);
  40697. parser(p_json);
  40698. rewrite(r_set_json_tag);
  40699. rewrite(r_set_message_to_MESSAGE);
  40700. destination {
  40701. file(
  40702. "/tmp/json\-input.log",
  40703. template(t_gsoc2014)
  40704. );
  40705. };
  40706. flags(final);
  40707. };
  40708. channel {
  40709. filter(f_not_json);
  40710. parser {
  40711. syslog\-parser(
  40712. );
  40713. };
  40714. rewrite(r_set_syslog_tag);
  40715. flags(final);
  40716. };
  40717. };
  40718. destination {
  40719. file(
  40720. "/tmp/all.log",
  40721. template(t_gsoc2014)
  40722. );
  40723. };
  40724. };
  40725. .ft P
  40726. .fi
  40727. .UNINDENT
  40728. .UNINDENT
  40729. .INDENT 0.0
  40730. .INDENT 3.5
  40731. .sp
  40732. .nf
  40733. .ft C
  40734. l_gsoc2014:
  40735. syslog_ng.config:
  40736. \- config:
  40737. log:
  40738. \- source: s_gsoc2014
  40739. \- junction:
  40740. \- channel:
  40741. \- filter: f_json
  40742. \- parser: p_json
  40743. \- rewrite: r_set_json_tag
  40744. \- rewrite: r_set_message_to_MESSAGE
  40745. \- destination:
  40746. \- file:
  40747. \- \(aq"/tmp/json\-input.log"\(aq
  40748. \- template: t_gsoc2014
  40749. \- flags: final
  40750. \- channel:
  40751. \- filter: f_not_json
  40752. \- parser:
  40753. \- syslog\-parser: []
  40754. \- rewrite: r_set_syslog_tag
  40755. \- flags: final
  40756. \- destination:
  40757. \- file:
  40758. \- "/tmp/all.log"
  40759. \- template: t_gsoc2014
  40760. .ft P
  40761. .fi
  40762. .UNINDENT
  40763. .UNINDENT
  40764. .SS Salt in 10 Minutes
  40765. .sp
  40766. \fBNOTE:\fP
  40767. .INDENT 0.0
  40768. .INDENT 3.5
  40769. Welcome to SaltStack! I am excited that you are interested in Salt and
  40770. starting down the path to better infrastructure management. I developed
  40771. (and am continuing to develop) Salt with the goal of making the best
  40772. software available to manage computers of almost any kind. I hope you enjoy
  40773. working with Salt and that the software can solve your real world needs!
  40774. .INDENT 0.0
  40775. .IP \(bu 2
  40776. Thomas S Hatch
  40777. .IP \(bu 2
  40778. Salt creator and Chief Developer
  40779. .IP \(bu 2
  40780. CTO of SaltStack, Inc.
  40781. .UNINDENT
  40782. .UNINDENT
  40783. .UNINDENT
  40784. .SS Getting Started
  40785. .SS What is Salt?
  40786. .sp
  40787. Salt is a different approach to infrastructure management, founded on
  40788. the idea that high\-speed communication with large numbers of systems can open
  40789. up new capabilities. This approach makes Salt a powerful multitasking system
  40790. that can solve many specific problems in an infrastructure.
  40791. .sp
  40792. The backbone of Salt is the remote execution engine, which creates a high\-speed,
  40793. secure and bi\-directional communication net for groups of systems. On top of this
  40794. communication system, Salt provides an extremely fast, flexible, and easy\-to\-use
  40795. configuration management system called \fBSalt States\fP\&.
  40796. .SS Installing Salt
  40797. .sp
  40798. SaltStack has been made to be very easy to install and get started. The
  40799. installation documents contain instructions
  40800. for all supported platforms.
  40801. .SS Starting Salt
  40802. .sp
  40803. Salt functions on a master/minion topology. A master server acts as a
  40804. central control bus for the clients, which are called \fBminions\fP\&. The minions
  40805. connect back to the master.
  40806. .SS Setting Up the Salt Master
  40807. .sp
  40808. Turning on the Salt Master is easy \-\- just turn it on! The default configuration
  40809. is suitable for the vast majority of installations. The Salt Master can be
  40810. controlled by the local Linux/Unix service manager:
  40811. .sp
  40812. On Systemd based platforms (newer Debian, openSUSE, Fedora):
  40813. .INDENT 0.0
  40814. .INDENT 3.5
  40815. .sp
  40816. .nf
  40817. .ft C
  40818. systemctl start salt\-master
  40819. .ft P
  40820. .fi
  40821. .UNINDENT
  40822. .UNINDENT
  40823. .sp
  40824. On Upstart based systems (Ubuntu, older Fedora/RHEL):
  40825. .INDENT 0.0
  40826. .INDENT 3.5
  40827. .sp
  40828. .nf
  40829. .ft C
  40830. service salt\-master start
  40831. .ft P
  40832. .fi
  40833. .UNINDENT
  40834. .UNINDENT
  40835. .sp
  40836. On SysV Init systems (Gentoo, older Debian etc.):
  40837. .INDENT 0.0
  40838. .INDENT 3.5
  40839. .sp
  40840. .nf
  40841. .ft C
  40842. /etc/init.d/salt\-master start
  40843. .ft P
  40844. .fi
  40845. .UNINDENT
  40846. .UNINDENT
  40847. .sp
  40848. Alternatively, the Master can be started directly on the command\-line:
  40849. .INDENT 0.0
  40850. .INDENT 3.5
  40851. .sp
  40852. .nf
  40853. .ft C
  40854. salt\-master \-d
  40855. .ft P
  40856. .fi
  40857. .UNINDENT
  40858. .UNINDENT
  40859. .sp
  40860. The Salt Master can also be started in the foreground in debug mode, thus
  40861. greatly increasing the command output:
  40862. .INDENT 0.0
  40863. .INDENT 3.5
  40864. .sp
  40865. .nf
  40866. .ft C
  40867. salt\-master \-l debug
  40868. .ft P
  40869. .fi
  40870. .UNINDENT
  40871. .UNINDENT
  40872. .sp
  40873. The Salt Master needs to bind to two TCP network ports on the system. These ports
  40874. are \fB4505\fP and \fB4506\fP\&. For more in depth information on firewalling these ports,
  40875. the firewall tutorial is available here\&.
  40876. .SS Finding the Salt Master
  40877. .sp
  40878. When a minion starts, by default it searches for a system that resolves to the \fBsalt\fP hostname on the network.
  40879. If found, the minion initiates the handshake and key authentication process with the Salt master.
  40880. This means that the easiest configuration approach is to set internal DNS to resolve the name \fBsalt\fP back to the Salt Master IP.
  40881. .sp
  40882. Otherwise, the minion configuration file will need to be edited so that the
  40883. configuration option \fBmaster\fP points to the DNS name or the IP of the Salt Master:
  40884. .sp
  40885. \fBNOTE:\fP
  40886. .INDENT 0.0
  40887. .INDENT 3.5
  40888. The default location of the configuration files is \fB/etc/salt\fP\&. Most
  40889. platforms adhere to this convention, but platforms such as FreeBSD and
  40890. Microsoft Windows place this file in different locations.
  40891. .UNINDENT
  40892. .UNINDENT
  40893. .sp
  40894. \fB/etc/salt/minion:\fP
  40895. .INDENT 0.0
  40896. .INDENT 3.5
  40897. .sp
  40898. .nf
  40899. .ft C
  40900. master: saltmaster.example.com
  40901. .ft P
  40902. .fi
  40903. .UNINDENT
  40904. .UNINDENT
  40905. .SS Setting up a Salt Minion
  40906. .sp
  40907. \fBNOTE:\fP
  40908. .INDENT 0.0
  40909. .INDENT 3.5
  40910. The Salt Minion can operate with or without a Salt Master. This walk\-through
  40911. assumes that the minion will be connected to the master, for information on
  40912. how to run a master\-less minion please see the master\-less quick\-start guide:
  40913. .sp
  40914. Masterless Minion Quickstart
  40915. .UNINDENT
  40916. .UNINDENT
  40917. .sp
  40918. Now that the master can be found, start the minion in the same way as the
  40919. master; with the platform init system or via the command line directly:
  40920. .sp
  40921. As a daemon:
  40922. .INDENT 0.0
  40923. .INDENT 3.5
  40924. .sp
  40925. .nf
  40926. .ft C
  40927. salt\-minion \-d
  40928. .ft P
  40929. .fi
  40930. .UNINDENT
  40931. .UNINDENT
  40932. .sp
  40933. In the foreground in debug mode:
  40934. .INDENT 0.0
  40935. .INDENT 3.5
  40936. .sp
  40937. .nf
  40938. .ft C
  40939. salt\-minion \-l debug
  40940. .ft P
  40941. .fi
  40942. .UNINDENT
  40943. .UNINDENT
  40944. .sp
  40945. When the minion is started, it will generate an \fBid\fP value, unless it has
  40946. been generated on a previous run and cached (in \fB/etc/salt/minion_id\fP by
  40947. default). This is the name by which the minion will attempt
  40948. to authenticate to the master. The following steps are attempted, in order to
  40949. try to find a value that is not \fBlocalhost\fP:
  40950. .INDENT 0.0
  40951. .IP 1. 3
  40952. The Python function \fBsocket.getfqdn()\fP is run
  40953. .IP 2. 3
  40954. \fB/etc/hostname\fP is checked (non\-Windows only)
  40955. .IP 3. 3
  40956. \fB/etc/hosts\fP (\fB%WINDIR%\esystem32\edrivers\eetc\ehosts\fP on Windows hosts) is
  40957. checked for hostnames that map to anything within \fB127.0.0.0/8\fP\&.
  40958. .UNINDENT
  40959. .sp
  40960. If none of the above are able to produce an id which is not \fBlocalhost\fP, then
  40961. a sorted list of IP addresses on the minion (excluding any within
  40962. \fB127.0.0.0/8\fP) is inspected. The first publicly\-routable IP address is
  40963. used, if there is one. Otherwise, the first privately\-routable IP address is
  40964. used.
  40965. .sp
  40966. If all else fails, then \fBlocalhost\fP is used as a fallback.
  40967. .sp
  40968. \fBNOTE:\fP
  40969. .INDENT 0.0
  40970. .INDENT 3.5
  40971. Overriding the \fBid\fP
  40972. .sp
  40973. The minion id can be manually specified using the \fBid\fP
  40974. parameter in the minion config file. If this configuration value is
  40975. specified, it will override all other sources for the \fBid\fP\&.
  40976. .UNINDENT
  40977. .UNINDENT
  40978. .sp
  40979. Now that the minion is started, it will generate cryptographic keys and attempt
  40980. to connect to the master. The next step is to venture back to the master server
  40981. and accept the new minion\(aqs public key.
  40982. .SS Using salt\-key
  40983. .sp
  40984. Salt authenticates minions using public\-key encryption and authentication. For
  40985. a minion to start accepting commands from the master, the minion keys need to be
  40986. accepted by the master.
  40987. .sp
  40988. The \fBsalt\-key\fP command is used to manage all of the keys on the
  40989. master. To list the keys that are on the master:
  40990. .INDENT 0.0
  40991. .INDENT 3.5
  40992. .sp
  40993. .nf
  40994. .ft C
  40995. salt\-key \-L
  40996. .ft P
  40997. .fi
  40998. .UNINDENT
  40999. .UNINDENT
  41000. .sp
  41001. The keys that have been rejected, accepted, and pending acceptance are listed.
  41002. The easiest way to accept the minion key is to accept all pending keys:
  41003. .INDENT 0.0
  41004. .INDENT 3.5
  41005. .sp
  41006. .nf
  41007. .ft C
  41008. salt\-key \-A
  41009. .ft P
  41010. .fi
  41011. .UNINDENT
  41012. .UNINDENT
  41013. .sp
  41014. \fBNOTE:\fP
  41015. .INDENT 0.0
  41016. .INDENT 3.5
  41017. Keys should be verified! Print the master key fingerprint by running \fBsalt\-key \-F master\fP
  41018. on the Salt master. Copy the \fBmaster.pub\fP fingerprint from the Local Keys section,
  41019. and then set this value as the \fBmaster_finger\fP in the minion configuration
  41020. file. Restart the Salt minion.
  41021. .sp
  41022. On the master, run \fBsalt\-key \-f minion\-id\fP to print the fingerprint of the
  41023. minion\(aqs public key that was received by the master. On the minion, run
  41024. \fBsalt\-call key.finger \-\-local\fP to print the fingerprint of the minion key.
  41025. .sp
  41026. On the master:
  41027. .INDENT 0.0
  41028. .INDENT 3.5
  41029. .sp
  41030. .nf
  41031. .ft C
  41032. # salt\-key \-f foo.domain.com
  41033. Unaccepted Keys:
  41034. foo.domain.com: 39:f9:e4:8a:aa:74:8d:52:1a:ec:92:03:82:09:c8:f9
  41035. .ft P
  41036. .fi
  41037. .UNINDENT
  41038. .UNINDENT
  41039. .sp
  41040. On the minion:
  41041. .INDENT 0.0
  41042. .INDENT 3.5
  41043. .sp
  41044. .nf
  41045. .ft C
  41046. # salt\-call key.finger \-\-local
  41047. local:
  41048. 39:f9:e4:8a:aa:74:8d:52:1a:ec:92:03:82:09:c8:f9
  41049. .ft P
  41050. .fi
  41051. .UNINDENT
  41052. .UNINDENT
  41053. .sp
  41054. If they match, approve the key with \fBsalt\-key \-a foo.domain.com\fP\&.
  41055. .UNINDENT
  41056. .UNINDENT
  41057. .SS Sending the First Commands
  41058. .sp
  41059. Now that the minion is connected to the master and authenticated, the master
  41060. can start to command the minion.
  41061. .sp
  41062. Salt commands allow for a vast set of functions to be executed and for
  41063. specific minions and groups of minions to be targeted for execution.
  41064. .sp
  41065. The \fBsalt\fP command is comprised of command options, target specification,
  41066. the function to execute, and arguments to the function.
  41067. .sp
  41068. A simple command to
  41069. start with looks like this:
  41070. .INDENT 0.0
  41071. .INDENT 3.5
  41072. .sp
  41073. .nf
  41074. .ft C
  41075. salt \(aq*\(aq test.version
  41076. .ft P
  41077. .fi
  41078. .UNINDENT
  41079. .UNINDENT
  41080. .sp
  41081. The \fB*\fP is the target, which specifies all minions.
  41082. .sp
  41083. \fBtest.version\fP tells the minion to run the \fBtest.version\fP function.
  41084. .sp
  41085. In the case of \fBtest.version\fP, \fBtest\fP refers to a execution module\&. \fBversion\fP refers to the \fBversion\fP function contained in the aforementioned \fBtest\fP
  41086. module.
  41087. .sp
  41088. \fBNOTE:\fP
  41089. .INDENT 0.0
  41090. .INDENT 3.5
  41091. Execution modules are the workhorses of Salt. They do the work on the
  41092. system to perform various tasks, such as manipulating files and restarting
  41093. services.
  41094. .UNINDENT
  41095. .UNINDENT
  41096. .sp
  41097. The result of running this command will be the master instructing all of the
  41098. minions to execute \fBtest.version\fP in parallel
  41099. and return the result. Using \fBtest.version\fP
  41100. is a good way of confirming that a minion is connected, and reaffirm to the user
  41101. the salt version(s) they have installed on the minions.
  41102. .sp
  41103. \fBNOTE:\fP
  41104. .INDENT 0.0
  41105. .INDENT 3.5
  41106. Each minion registers itself with a unique minion ID. This ID defaults to
  41107. the minion\(aqs hostname, but can be explicitly defined in the minion config as
  41108. well by using the \fBid\fP parameter.
  41109. .UNINDENT
  41110. .UNINDENT
  41111. .sp
  41112. Of course, there are hundreds of other modules that can be called just as
  41113. \fBtest.version\fP can. For example, the following would return disk usage on all
  41114. targeted minions:
  41115. .INDENT 0.0
  41116. .INDENT 3.5
  41117. .sp
  41118. .nf
  41119. .ft C
  41120. salt \(aq*\(aq disk.usage
  41121. .ft P
  41122. .fi
  41123. .UNINDENT
  41124. .UNINDENT
  41125. .SS Getting to Know the Functions
  41126. .sp
  41127. Salt comes with a vast library of functions available for execution, and Salt
  41128. functions are self\-documenting. To see what functions are available on the
  41129. minions execute the \fBsys.doc\fP function:
  41130. .INDENT 0.0
  41131. .INDENT 3.5
  41132. .sp
  41133. .nf
  41134. .ft C
  41135. salt \(aq*\(aq sys.doc
  41136. .ft P
  41137. .fi
  41138. .UNINDENT
  41139. .UNINDENT
  41140. .sp
  41141. This will display a very large list of available functions and documentation on
  41142. them.
  41143. .sp
  41144. \fBNOTE:\fP
  41145. .INDENT 0.0
  41146. .INDENT 3.5
  41147. Module documentation is also available on the web\&.
  41148. .UNINDENT
  41149. .UNINDENT
  41150. .sp
  41151. These functions cover everything from shelling out to package management to
  41152. manipulating database servers. They comprise a powerful system management API
  41153. which is the backbone to Salt configuration management and many other aspects
  41154. of Salt.
  41155. .sp
  41156. \fBNOTE:\fP
  41157. .INDENT 0.0
  41158. .INDENT 3.5
  41159. Salt comes with many plugin systems. The functions that are available via
  41160. the \fBsalt\fP command are called Execution Modules\&.
  41161. .UNINDENT
  41162. .UNINDENT
  41163. .SS Helpful Functions to Know
  41164. .sp
  41165. The \fBcmd\fP module contains
  41166. functions to shell out on minions, such as \fBcmd.run\fP and \fBcmd.run_all\fP:
  41167. .INDENT 0.0
  41168. .INDENT 3.5
  41169. .sp
  41170. .nf
  41171. .ft C
  41172. salt \(aq*\(aq cmd.run \(aqls \-l /etc\(aq
  41173. .ft P
  41174. .fi
  41175. .UNINDENT
  41176. .UNINDENT
  41177. .sp
  41178. The \fBpkg\fP functions automatically map local system package managers to the
  41179. same salt functions. This means that \fBpkg.install\fP will install packages via
  41180. \fByum\fP on Red Hat based systems, \fBapt\fP on Debian systems, etc.:
  41181. .INDENT 0.0
  41182. .INDENT 3.5
  41183. .sp
  41184. .nf
  41185. .ft C
  41186. salt \(aq*\(aq pkg.install vim
  41187. .ft P
  41188. .fi
  41189. .UNINDENT
  41190. .UNINDENT
  41191. .sp
  41192. \fBNOTE:\fP
  41193. .INDENT 0.0
  41194. .INDENT 3.5
  41195. Some custom Linux spins and derivatives of other distributions are not properly
  41196. detected by Salt. If the above command returns an error message saying that
  41197. \fBpkg.install\fP is not available, then you may need to override the pkg
  41198. provider. This process is explained here\&.
  41199. .UNINDENT
  41200. .UNINDENT
  41201. .sp
  41202. The \fBnetwork.interfaces\fP function will
  41203. list all interfaces on a minion, along with their IP addresses, netmasks, MAC
  41204. addresses, etc:
  41205. .INDENT 0.0
  41206. .INDENT 3.5
  41207. .sp
  41208. .nf
  41209. .ft C
  41210. salt \(aq*\(aq network.interfaces
  41211. .ft P
  41212. .fi
  41213. .UNINDENT
  41214. .UNINDENT
  41215. .SS Changing the Output Format
  41216. .sp
  41217. The default output format used for most Salt commands is called the \fBnested\fP
  41218. outputter, but there are several other outputters that can be used to change
  41219. the way the output is displayed. For instance, the \fBpprint\fP outputter can be
  41220. used to display the return data using Python\(aqs \fBpprint\fP module:
  41221. .INDENT 0.0
  41222. .INDENT 3.5
  41223. .sp
  41224. .nf
  41225. .ft C
  41226. root@saltmaster:~# salt myminion grains.item pythonpath \-\-out=pprint
  41227. {\(aqmyminion\(aq: {\(aqpythonpath\(aq: [\(aq/usr/lib64/python2.7\(aq,
  41228. \(aq/usr/lib/python2.7/plat\-linux2\(aq,
  41229. \(aq/usr/lib64/python2.7/lib\-tk\(aq,
  41230. \(aq/usr/lib/python2.7/lib\-tk\(aq,
  41231. \(aq/usr/lib/python2.7/site\-packages\(aq,
  41232. \(aq/usr/lib/python2.7/site\-packages/gst\-0.10\(aq,
  41233. \(aq/usr/lib/python2.7/site\-packages/gtk\-2.0\(aq]}}
  41234. .ft P
  41235. .fi
  41236. .UNINDENT
  41237. .UNINDENT
  41238. .sp
  41239. The full list of Salt outputters, as well as example output, can be found
  41240. here\&.
  41241. .SS \fBsalt\-call\fP
  41242. .sp
  41243. The examples so far have described running commands from the Master using the
  41244. \fBsalt\fP command, but when troubleshooting it can be more beneficial to login
  41245. to the minion directly and use \fBsalt\-call\fP\&.
  41246. .sp
  41247. Doing so allows you to see the minion log messages specific to the command you
  41248. are running (which are \fInot\fP part of the return data you see when running the
  41249. command from the Master using \fBsalt\fP), making it unnecessary to tail the
  41250. minion log. More information on \fBsalt\-call\fP and how to use it can be found
  41251. here\&.
  41252. .SS Grains
  41253. .sp
  41254. Salt uses a system called Grains to build up
  41255. static data about minions. This data includes information about the operating
  41256. system that is running, CPU architecture and much more. The grains system is
  41257. used throughout Salt to deliver platform data to many components and to users.
  41258. .sp
  41259. Grains can also be statically set, this makes it easy to assign values to
  41260. minions for grouping and managing.
  41261. .sp
  41262. A common practice is to assign grains to minions to specify what the role or
  41263. roles a minion might be. These static grains can be set in the minion
  41264. configuration file or via the \fBgrains.setval\fP
  41265. function.
  41266. .SS Targeting
  41267. .sp
  41268. Salt allows for minions to be targeted based on a wide range of criteria. The
  41269. default targeting system uses globular expressions to match minions, hence if
  41270. there are minions named \fBlarry1\fP, \fBlarry2\fP, \fBcurly1\fP, and \fBcurly2\fP, a
  41271. glob of \fBlarry*\fP will match \fBlarry1\fP and \fBlarry2\fP, and a glob of \fB*1\fP
  41272. will match \fBlarry1\fP and \fBcurly1\fP\&.
  41273. .sp
  41274. Many other targeting systems can be used other than globs, these systems
  41275. include:
  41276. .INDENT 0.0
  41277. .TP
  41278. .B Regular Expressions
  41279. Target using PCRE\-compliant regular expressions
  41280. .TP
  41281. .B Grains
  41282. Target based on grains data:
  41283. Targeting with Grains
  41284. .TP
  41285. .B Pillar
  41286. Target based on pillar data:
  41287. Targeting with Pillar
  41288. .TP
  41289. .B IP
  41290. Target based on IP address/subnet/range
  41291. .TP
  41292. .B Compound
  41293. Create logic to target based on multiple targets:
  41294. Targeting with Compound
  41295. .TP
  41296. .B Nodegroup
  41297. Target with nodegroups:
  41298. Targeting with Nodegroup
  41299. .UNINDENT
  41300. .sp
  41301. The concepts of targets are used on the command line with Salt, but also
  41302. function in many other areas as well, including the state system and the
  41303. systems used for ACLs and user permissions.
  41304. .SS Passing in Arguments
  41305. .sp
  41306. Many of the functions available accept arguments which can be passed in on
  41307. the command line:
  41308. .INDENT 0.0
  41309. .INDENT 3.5
  41310. .sp
  41311. .nf
  41312. .ft C
  41313. salt \(aq*\(aq pkg.install vim
  41314. .ft P
  41315. .fi
  41316. .UNINDENT
  41317. .UNINDENT
  41318. .sp
  41319. This example passes the argument \fBvim\fP to the pkg.install function. Since
  41320. many functions can accept more complex input than just a string, the arguments
  41321. are parsed through YAML, allowing for more complex data to be sent on the
  41322. command line:
  41323. .INDENT 0.0
  41324. .INDENT 3.5
  41325. .sp
  41326. .nf
  41327. .ft C
  41328. salt \(aq*\(aq test.echo \(aqfoo: bar\(aq
  41329. .ft P
  41330. .fi
  41331. .UNINDENT
  41332. .UNINDENT
  41333. .sp
  41334. In this case Salt translates the string \(aqfoo: bar\(aq into the dictionary
  41335. "{\(aqfoo\(aq: \(aqbar\(aq}"
  41336. .sp
  41337. \fBNOTE:\fP
  41338. .INDENT 0.0
  41339. .INDENT 3.5
  41340. Any line that contains a newline will not be parsed by YAML.
  41341. .UNINDENT
  41342. .UNINDENT
  41343. .SS Salt States
  41344. .sp
  41345. Now that the basics are covered the time has come to evaluate \fBStates\fP\&. Salt
  41346. \fBStates\fP, or the \fBState System\fP is the component of Salt made for
  41347. configuration management.
  41348. .sp
  41349. The state system is already available with a basic Salt setup, no additional
  41350. configuration is required. States can be set up immediately.
  41351. .sp
  41352. \fBNOTE:\fP
  41353. .INDENT 0.0
  41354. .INDENT 3.5
  41355. Before diving into the state system, a brief overview of how states are
  41356. constructed will make many of the concepts clearer. Salt states are based
  41357. on data modeling and build on a low level data structure that is used to
  41358. execute each state function. Then more logical layers are built on top of
  41359. each other.
  41360. .sp
  41361. The high layers of the state system which this tutorial will
  41362. cover consists of everything that needs to be known to use states, the two
  41363. high layers covered here are the \fIsls\fP layer and the highest layer
  41364. \fIhighstate\fP\&.
  41365. .sp
  41366. Understanding the layers of data management in the State System will help with
  41367. understanding states, but they never need to be used. Just as understanding
  41368. how a compiler functions assists when learning a programming language,
  41369. understanding what is going on under the hood of a configuration management
  41370. system will also prove to be a valuable asset.
  41371. .UNINDENT
  41372. .UNINDENT
  41373. .SS The First SLS Formula
  41374. .sp
  41375. The state system is built on SLS (SaLt State) formulas. These formulas are built out in
  41376. files on Salt\(aqs file server. To make a very basic SLS formula open up a file
  41377. under /srv/salt named vim.sls. The following state ensures that vim is installed
  41378. on a system to which that state has been applied.
  41379. .sp
  41380. \fB/srv/salt/vim.sls:\fP
  41381. .INDENT 0.0
  41382. .INDENT 3.5
  41383. .sp
  41384. .nf
  41385. .ft C
  41386. vim:
  41387. pkg.installed
  41388. .ft P
  41389. .fi
  41390. .UNINDENT
  41391. .UNINDENT
  41392. .sp
  41393. Now install vim on the minions by calling the SLS directly:
  41394. .INDENT 0.0
  41395. .INDENT 3.5
  41396. .sp
  41397. .nf
  41398. .ft C
  41399. salt \(aq*\(aq state.apply vim
  41400. .ft P
  41401. .fi
  41402. .UNINDENT
  41403. .UNINDENT
  41404. .sp
  41405. This command will invoke the state system and run the \fBvim\fP SLS.
  41406. .sp
  41407. Now, to beef up the vim SLS formula, a \fBvimrc\fP can be added:
  41408. .sp
  41409. \fB/srv/salt/vim.sls:\fP
  41410. .INDENT 0.0
  41411. .INDENT 3.5
  41412. .sp
  41413. .nf
  41414. .ft C
  41415. vim:
  41416. pkg.installed: []
  41417. /etc/vimrc:
  41418. file.managed:
  41419. \- source: salt://vimrc
  41420. \- mode: 644
  41421. \- user: root
  41422. \- group: root
  41423. .ft P
  41424. .fi
  41425. .UNINDENT
  41426. .UNINDENT
  41427. .sp
  41428. Now the desired \fBvimrc\fP needs to be copied into the Salt file server to
  41429. \fB/srv/salt/vimrc\fP\&. In Salt, everything is a file, so no path redirection needs
  41430. to be accounted for. The \fBvimrc\fP file is placed right next to the \fBvim.sls\fP file.
  41431. The same command as above can be executed to all the vim SLS formulas and now
  41432. include managing the file.
  41433. .sp
  41434. \fBNOTE:\fP
  41435. .INDENT 0.0
  41436. .INDENT 3.5
  41437. Salt does not need to be restarted/reloaded or have the master manipulated
  41438. in any way when changing SLS formulas. They are instantly available.
  41439. .UNINDENT
  41440. .UNINDENT
  41441. .SS Adding Some Depth
  41442. .sp
  41443. Obviously maintaining SLS formulas right in a single directory at the root of
  41444. the file server will not scale out to reasonably sized deployments. This is
  41445. why more depth is required. Start by making an nginx formula a better way,
  41446. make an nginx subdirectory and add an init.sls file:
  41447. .sp
  41448. \fB/srv/salt/nginx/init.sls:\fP
  41449. .INDENT 0.0
  41450. .INDENT 3.5
  41451. .sp
  41452. .nf
  41453. .ft C
  41454. nginx:
  41455. pkg.installed: []
  41456. service.running:
  41457. \- require:
  41458. \- pkg: nginx
  41459. .ft P
  41460. .fi
  41461. .UNINDENT
  41462. .UNINDENT
  41463. .sp
  41464. A few concepts are introduced in this SLS formula.
  41465. .sp
  41466. First is the service statement which ensures that the \fBnginx\fP service is running.
  41467. .sp
  41468. Of course, the nginx service can\(aqt be started unless the package is installed \-\-
  41469. hence the \fBrequire\fP statement which sets up a dependency between the two.
  41470. .sp
  41471. The \fBrequire\fP statement makes sure that the required component is executed before
  41472. and that it results in success.
  41473. .sp
  41474. \fBNOTE:\fP
  41475. .INDENT 0.0
  41476. .INDENT 3.5
  41477. The \fIrequire\fP option belongs to a family of options called \fIrequisites\fP\&.
  41478. Requisites are a powerful component of Salt States, for more information
  41479. on how requisites work and what is available see:
  41480. Requisites
  41481. .sp
  41482. Also evaluation ordering is available in Salt as well:
  41483. Ordering States
  41484. .UNINDENT
  41485. .UNINDENT
  41486. .sp
  41487. This new sls formula has a special name \-\- \fBinit.sls\fP\&. When an SLS formula is
  41488. named \fBinit.sls\fP it inherits the name of the directory path that contains it.
  41489. This formula can be referenced via the following command:
  41490. .INDENT 0.0
  41491. .INDENT 3.5
  41492. .sp
  41493. .nf
  41494. .ft C
  41495. salt \(aq*\(aq state.apply nginx
  41496. .ft P
  41497. .fi
  41498. .UNINDENT
  41499. .UNINDENT
  41500. .sp
  41501. \fBNOTE:\fP
  41502. .INDENT 0.0
  41503. .INDENT 3.5
  41504. \fBstate.apply\fP is just another remote
  41505. execution function, just like \fBtest.version\fP
  41506. or \fBdisk.usage\fP\&. It simply takes the
  41507. name of an SLS file as an argument.
  41508. .UNINDENT
  41509. .UNINDENT
  41510. .sp
  41511. Now that subdirectories can be used, the \fBvim.sls\fP formula can be cleaned up.
  41512. To make things more flexible, move the \fBvim.sls\fP and vimrc into a new subdirectory
  41513. called \fBedit\fP and change the \fBvim.sls\fP file to reflect the change:
  41514. .sp
  41515. \fB/srv/salt/edit/vim.sls:\fP
  41516. .INDENT 0.0
  41517. .INDENT 3.5
  41518. .sp
  41519. .nf
  41520. .ft C
  41521. vim:
  41522. pkg.installed
  41523. /etc/vimrc:
  41524. file.managed:
  41525. \- source: salt://edit/vimrc
  41526. \- mode: 644
  41527. \- user: root
  41528. \- group: root
  41529. .ft P
  41530. .fi
  41531. .UNINDENT
  41532. .UNINDENT
  41533. .sp
  41534. Only the source path to the vimrc file has changed. Now the formula is
  41535. referenced as \fBedit.vim\fP because it resides in the edit subdirectory.
  41536. Now the edit subdirectory can contain formulas for emacs, nano, joe or any other
  41537. editor that may need to be deployed.
  41538. .SS Next Reading
  41539. .sp
  41540. Two walk\-throughs are specifically recommended at this point. First, a deeper
  41541. run through States, followed by an explanation of Pillar.
  41542. .INDENT 0.0
  41543. .IP 1. 3
  41544. Starting States
  41545. .IP 2. 3
  41546. Pillar Walkthrough
  41547. .UNINDENT
  41548. .sp
  41549. An understanding of Pillar is extremely helpful in using States.
  41550. .SS Getting Deeper Into States
  41551. .sp
  41552. Two more in\-depth States tutorials exist, which delve much more deeply into States
  41553. functionality.
  41554. .INDENT 0.0
  41555. .IP 1. 3
  41556. How Do I Use Salt States?, covers much
  41557. more to get off the ground with States.
  41558. .IP 2. 3
  41559. The States Tutorial also provides a
  41560. fantastic introduction.
  41561. .UNINDENT
  41562. .sp
  41563. These tutorials include much more in\-depth information including templating
  41564. SLS formulas etc.
  41565. .SS So Much More!
  41566. .sp
  41567. This concludes the initial Salt walk\-through, but there are many more things still
  41568. to learn! These documents will cover important core aspects of Salt:
  41569. .INDENT 0.0
  41570. .IP \(bu 2
  41571. Pillar
  41572. .IP \(bu 2
  41573. Job Management
  41574. .UNINDENT
  41575. .sp
  41576. A few more tutorials are also available:
  41577. .INDENT 0.0
  41578. .IP \(bu 2
  41579. Remote Execution Tutorial
  41580. .IP \(bu 2
  41581. Standalone Minion
  41582. .UNINDENT
  41583. .sp
  41584. This still is only scratching the surface, many components such as the reactor
  41585. and event systems, extending Salt, modular components and more are not covered
  41586. here. For an overview of all Salt features and documentation, look at the
  41587. Table of Contents\&.
  41588. .SS Salt\(aqs Test Suite: An Introduction
  41589. .sp
  41590. \fBNOTE:\fP
  41591. .INDENT 0.0
  41592. .INDENT 3.5
  41593. This tutorial makes a couple of assumptions. The first assumption is that
  41594. you have a basic knowledge of Salt. To get up to speed, check out the
  41595. Salt Walkthrough\&.
  41596. .sp
  41597. The second assumption is that your Salt development environment is already
  41598. configured and that you have a basic understanding of contributing to the
  41599. Salt codebase. If you\(aqre unfamiliar with either of these topics, please refer
  41600. to the Installing Salt for Development
  41601. and the Contributing pages, respectively.
  41602. .UNINDENT
  41603. .UNINDENT
  41604. .sp
  41605. Salt comes with a powerful integration and unit test suite. The test suite
  41606. allows for the fully automated run of integration and/or unit tests from a
  41607. single interface.
  41608. .sp
  41609. Salt\(aqs test suite is located under the \fBtests\fP directory in the root of Salt\(aqs
  41610. code base and is divided into two main types of tests:
  41611. \fI\%unit tests and integration tests\fP\&. The \fBunit\fP and
  41612. \fBintegration\fP sub\-test\-suites are located in the \fBtests\fP directory, which is
  41613. where the majority of Salt\(aqs test cases are housed.
  41614. .SS Getting Set Up For Tests
  41615. .sp
  41616. There are a couple of requirements, in addition to Salt\(aqs requirements, that need
  41617. to be installed in order to run Salt\(aqs test suite. You can install these additional
  41618. requirements using the files located in the \fBsalt/requirements\fP directory,
  41619. depending on your relevant version of Python:
  41620. .INDENT 0.0
  41621. .INDENT 3.5
  41622. .sp
  41623. .nf
  41624. .ft C
  41625. pip install \-r requirements/dev_python27.txt
  41626. pip install \-r requirements/dev_python34.txt
  41627. .ft P
  41628. .fi
  41629. .UNINDENT
  41630. .UNINDENT
  41631. .sp
  41632. To be able to run integration tests which utilizes ZeroMQ transport, you also
  41633. need to install additional requirements for it. Make sure you have installed
  41634. the C/C++ compiler and development libraries and header files needed for your
  41635. Python version.
  41636. .sp
  41637. This is an example for RedHat\-based operating systems:
  41638. .INDENT 0.0
  41639. .INDENT 3.5
  41640. .sp
  41641. .nf
  41642. .ft C
  41643. yum install gcc gcc\-c++ python\-devel
  41644. pip install \-r requirements/zeromq.txt
  41645. .ft P
  41646. .fi
  41647. .UNINDENT
  41648. .UNINDENT
  41649. .sp
  41650. On Debian, Ubuntu or their derivatives run the following commands:
  41651. .INDENT 0.0
  41652. .INDENT 3.5
  41653. .sp
  41654. .nf
  41655. .ft C
  41656. apt\-get install build\-essential python\-dev
  41657. pip install \-r requirements/zeromq.txt
  41658. .ft P
  41659. .fi
  41660. .UNINDENT
  41661. .UNINDENT
  41662. .sp
  41663. This will install the latest \fBpycrypto\fP and \fBpyzmq\fP (with bundled
  41664. \fBlibzmq\fP) Python modules required for running integration tests suite.
  41665. .SS Test Directory Structure
  41666. .sp
  41667. As noted in the introduction to this tutorial, Salt\(aqs test suite is located in the
  41668. \fBtests\fP directory in the root of Salt\(aqs code base. From there, the tests are divided
  41669. into two groups \fBintegration\fP and \fBunit\fP\&. Within each of these directories, the
  41670. directory structure roughly mirrors the directory structure of Salt\(aqs own codebase.
  41671. For example, the files inside \fBtests/integration/modules\fP contains tests for the
  41672. files located within \fBsalt/modules\fP\&.
  41673. .sp
  41674. \fBNOTE:\fP
  41675. .INDENT 0.0
  41676. .INDENT 3.5
  41677. \fBtests/integration\fP and \fBtests/unit\fP are the only directories discussed in
  41678. this tutorial. With the exception of the \fBtests/runtests.py\fP file, which is
  41679. used below in the \fI\%Running the Test Suite\fP section, the other directories and
  41680. files located in \fBtests\fP are outside the scope of this tutorial.
  41681. .UNINDENT
  41682. .UNINDENT
  41683. .SS Integration vs. Unit
  41684. .sp
  41685. Given that Salt\(aqs test suite contains two powerful, though very different, testing
  41686. approaches, when should you write integration tests and when should you write unit
  41687. tests?
  41688. .sp
  41689. Integration tests use Salt masters, minions, and a syndic to test salt functionality
  41690. directly and focus on testing the interaction of these components. Salt\(aqs integration
  41691. test runner includes functionality to run Salt execution modules, runners, states,
  41692. shell commands, salt\-ssh commands, salt\-api commands, and more. This provides a
  41693. tremendous ability to use Salt to test itself and makes writing such tests a breeze.
  41694. Integration tests are the preferred method of testing Salt functionality when
  41695. possible.
  41696. .sp
  41697. Unit tests do not spin up any Salt daemons, but instead find their value in testing
  41698. singular implementations of individual functions. Instead of testing against specific
  41699. interactions, unit tests should be used to test a function\(aqs logic. Unit tests should
  41700. be used to test a function\(aqs exit point(s) such as any \fBreturn\fP or \fBraises\fP
  41701. statements.
  41702. .sp
  41703. Unit tests are also useful in cases where writing an integration test might not be
  41704. possible. While the integration test suite is extremely powerful, unfortunately at
  41705. this time, it does not cover all functional areas of Salt\(aqs ecosystem. For example,
  41706. at the time of this writing, there is not a way to write integration tests for Proxy
  41707. Minions. Since the test runner will need to be adjusted to account for Proxy Minion
  41708. processes, unit tests can still provide some testing support in the interim by
  41709. testing the logic contained inside Proxy Minion functions.
  41710. .SS Running the Test Suite
  41711. .sp
  41712. Once all of the \fI\%requirements\fP are installed, the
  41713. \fBruntests.py\fP file in the \fBsalt/tests\fP directory is used to instantiate
  41714. Salt\(aqs test suite:
  41715. .INDENT 0.0
  41716. .INDENT 3.5
  41717. .sp
  41718. .nf
  41719. .ft C
  41720. python tests/runtests.py [OPTIONS]
  41721. .ft P
  41722. .fi
  41723. .UNINDENT
  41724. .UNINDENT
  41725. .sp
  41726. The command above, if executed without any options, will run the entire suite of
  41727. integration and unit tests. Some tests require certain flags to run, such as
  41728. destructive tests. If these flags are not included, then the test suite will only
  41729. perform the tests that don\(aqt require special attention.
  41730. .sp
  41731. At the end of the test run, you will see a summary output of the tests that passed,
  41732. failed, or were skipped.
  41733. .sp
  41734. The test runner also includes a \fB\-\-help\fP option that lists all of the various
  41735. command line options:
  41736. .INDENT 0.0
  41737. .INDENT 3.5
  41738. .sp
  41739. .nf
  41740. .ft C
  41741. python tests/runtests.py \-\-help
  41742. .ft P
  41743. .fi
  41744. .UNINDENT
  41745. .UNINDENT
  41746. .sp
  41747. You can also call the test runner as an executable:
  41748. .INDENT 0.0
  41749. .INDENT 3.5
  41750. .sp
  41751. .nf
  41752. .ft C
  41753. \&./tests/runtests.py \-\-help
  41754. .ft P
  41755. .fi
  41756. .UNINDENT
  41757. .UNINDENT
  41758. .SS Running Integration Tests
  41759. .sp
  41760. Salt\(aqs set of integration tests use Salt to test itself. The integration portion
  41761. of the test suite includes some built\-in Salt daemons that will spin up in preparation
  41762. of the test run. This list of Salt daemon processes includes:
  41763. .INDENT 0.0
  41764. .IP \(bu 2
  41765. 2 Salt Masters
  41766. .IP \(bu 2
  41767. 2 Salt Minions
  41768. .IP \(bu 2
  41769. 1 Salt Syndic
  41770. .UNINDENT
  41771. .sp
  41772. These various daemons are used to execute Salt commands and functionality within
  41773. the test suite, allowing you to write tests to assert against expected or
  41774. unexpected behaviors.
  41775. .sp
  41776. A simple example of a test utilizing a typical master/minion execution module command
  41777. is the test for the \fBtest_ping\fP function in the
  41778. \fBtests/integration/modules/test_test.py\fP
  41779. file:
  41780. .INDENT 0.0
  41781. .INDENT 3.5
  41782. .sp
  41783. .nf
  41784. .ft C
  41785. def test_ping(self):
  41786. \(aq\(aq\(aq
  41787. test.ping
  41788. \(aq\(aq\(aq
  41789. self.assertTrue(self.run_function(\(aqtest.ping\(aq))
  41790. .ft P
  41791. .fi
  41792. .UNINDENT
  41793. .UNINDENT
  41794. .sp
  41795. The test above is a very simple example where the \fBtest.ping\fP function is
  41796. executed by Salt\(aqs test suite runner and is asserting that the minion returned
  41797. with a \fBTrue\fP response.
  41798. .SS Test Selection Options
  41799. .sp
  41800. If you look in the output of the \fB\-\-help\fP command of the test runner, you will
  41801. see a section called \fBTests Selection Options\fP\&. The options under this section
  41802. contain various subsections of the integration test suite such as \fB\-\-modules\fP,
  41803. \fB\-\-ssh\fP, or \fB\-\-states\fP\&. By selecting any one of these options, the test daemons
  41804. will spin up and the integration tests in the named subsection will run.
  41805. .INDENT 0.0
  41806. .INDENT 3.5
  41807. .sp
  41808. .nf
  41809. .ft C
  41810. \&./tests/runtests.py \-\-modules
  41811. .ft P
  41812. .fi
  41813. .UNINDENT
  41814. .UNINDENT
  41815. .sp
  41816. \fBNOTE:\fP
  41817. .INDENT 0.0
  41818. .INDENT 3.5
  41819. The testing subsections listed in the \fBTests Selection Options\fP of the
  41820. \fB\-\-help\fP output \fIonly\fP apply to the integration tests. They do not run unit
  41821. tests.
  41822. .UNINDENT
  41823. .UNINDENT
  41824. .SS Running Unit Tests
  41825. .sp
  41826. While \fB\&./tests/runtests.py\fP executes the \fIentire\fP test suite (barring any tests
  41827. requiring special flags), the \fB\-\-unit\fP flag can be used to run \fIonly\fP Salt\(aqs
  41828. unit tests. Salt\(aqs unit tests include the tests located in the \fBtests/unit\fP
  41829. directory.
  41830. .sp
  41831. The unit tests do not spin up any Salt testing daemons as the integration tests
  41832. do and execute very quickly compared to the integration tests.
  41833. .INDENT 0.0
  41834. .INDENT 3.5
  41835. .sp
  41836. .nf
  41837. .ft C
  41838. \&./tests/runtests.py \-\-unit
  41839. .ft P
  41840. .fi
  41841. .UNINDENT
  41842. .UNINDENT
  41843. .SS Running Specific Tests
  41844. .sp
  41845. There are times when a specific test file, test class, or even a single,
  41846. individual test need to be executed, such as when writing new tests. In these
  41847. situations, the \fB\-\-name\fP option should be used.
  41848. .sp
  41849. For running a single test file, such as the pillar module test file in the
  41850. integration test directory, you must provide the file path using \fB\&.\fP instead
  41851. of \fB/\fP as separators and no file extension:
  41852. .INDENT 0.0
  41853. .INDENT 3.5
  41854. .sp
  41855. .nf
  41856. .ft C
  41857. \&./tests/runtests.py \-\-name=integration.modules.test_pillar
  41858. \&./tests/runtests.py \-n integration.modules.test_pillar
  41859. .ft P
  41860. .fi
  41861. .UNINDENT
  41862. .UNINDENT
  41863. .sp
  41864. Some test files contain only one test class while other test files contain multiple
  41865. test classes. To run a specific test class within the file, append the name of
  41866. the test class to the end of the file path:
  41867. .INDENT 0.0
  41868. .INDENT 3.5
  41869. .sp
  41870. .nf
  41871. .ft C
  41872. \&./tests/runtests.py \-\-name=integration.modules.test_pillar.PillarModuleTest
  41873. \&./tests/runtests.py \-n integration.modules.test_pillar.PillarModuleTest
  41874. .ft P
  41875. .fi
  41876. .UNINDENT
  41877. .UNINDENT
  41878. .sp
  41879. To run a single test within a file, append both the name of the test class the
  41880. individual test belongs to, as well as the name of the test itself:
  41881. .INDENT 0.0
  41882. .INDENT 3.5
  41883. .sp
  41884. .nf
  41885. .ft C
  41886. \&./tests/runtests.py \e
  41887. \-\-name=integration.modules.test_pillar.PillarModuleTest.test_data
  41888. \&./tests/runtests.py \e
  41889. \-n integration.modules.test_pillar.PillarModuleTest.test_data
  41890. .ft P
  41891. .fi
  41892. .UNINDENT
  41893. .UNINDENT
  41894. .sp
  41895. The \fB\-\-name\fP and \fB\-n\fP options can be used for unit tests as well as integration
  41896. tests. The following command is an example of how to execute a single test found in
  41897. the \fBtests/unit/modules/test_cp.py\fP file:
  41898. .INDENT 0.0
  41899. .INDENT 3.5
  41900. .sp
  41901. .nf
  41902. .ft C
  41903. \&./tests/runtests.py \e
  41904. \-n unit.modules.test_cp.CpTestCase.test_get_template_success
  41905. .ft P
  41906. .fi
  41907. .UNINDENT
  41908. .UNINDENT
  41909. .SS Writing Tests for Salt
  41910. .sp
  41911. Once you\(aqre comfortable running tests, you can now start writing them! Be sure
  41912. to review the \fI\%Integration vs. Unit\fP section of this tutorial to determine what
  41913. type of test makes the most sense for the code you\(aqre testing.
  41914. .sp
  41915. \fBNOTE:\fP
  41916. .INDENT 0.0
  41917. .INDENT 3.5
  41918. There are many decorators, naming conventions, and code specifications
  41919. required for Salt test files. We will not be covering all of the these specifics
  41920. in this tutorial. Please refer to the testing documentation links listed below
  41921. in the \fI\%Additional Testing Documentation\fP section to learn more about these
  41922. requirements.
  41923. .sp
  41924. In the following sections, the test examples assume the "new" test is added to
  41925. a test file that is already present and regularly running in the test suite and
  41926. is written with the correct requirements.
  41927. .UNINDENT
  41928. .UNINDENT
  41929. .SS Writing Integration Tests
  41930. .sp
  41931. Since integration tests validate against a running environment, as explained in the
  41932. \fI\%Running Integration Tests\fP section of this tutorial, integration tests are very
  41933. easy to write and are generally the preferred method of writing Salt tests.
  41934. .sp
  41935. The following integration test is an example taken from the \fBtest.py\fP file in the
  41936. \fBtests/integration/modules\fP directory. This test uses the \fBrun_function\fP method
  41937. to test the functionality of a traditional execution module command.
  41938. .sp
  41939. The \fBrun_function\fP method uses the integration test daemons to execute a
  41940. \fBmodule.function\fP command as you would with Salt. The minion runs the function and
  41941. returns. The test also uses \fI\%Python\(aqs Assert Functions\fP to test that the
  41942. minion\(aqs return is expected.
  41943. .INDENT 0.0
  41944. .INDENT 3.5
  41945. .sp
  41946. .nf
  41947. .ft C
  41948. def test_ping(self):
  41949. \(aq\(aq\(aq
  41950. test.ping
  41951. \(aq\(aq\(aq
  41952. self.assertTrue(self.run_function(\(aqtest.ping\(aq))
  41953. .ft P
  41954. .fi
  41955. .UNINDENT
  41956. .UNINDENT
  41957. .sp
  41958. Args can be passed in to the \fBrun_function\fP method as well:
  41959. .INDENT 0.0
  41960. .INDENT 3.5
  41961. .sp
  41962. .nf
  41963. .ft C
  41964. def test_echo(self):
  41965. \(aq\(aq\(aq
  41966. test.echo
  41967. \(aq\(aq\(aq
  41968. self.assertEqual(self.run_function(\(aqtest.echo\(aq, [\(aqtext\(aq]), \(aqtext\(aq)
  41969. .ft P
  41970. .fi
  41971. .UNINDENT
  41972. .UNINDENT
  41973. .sp
  41974. The next example is taken from the
  41975. \fBtests/integration/modules/test_aliases.py\fP file and
  41976. demonstrates how to pass kwargs to the \fBrun_function\fP call. Also note that this
  41977. test uses another salt function to ensure the correct data is present (via the
  41978. \fBaliases.set_target\fP call) before attempting to assert what the \fBaliases.get_target\fP
  41979. call should return.
  41980. .INDENT 0.0
  41981. .INDENT 3.5
  41982. .sp
  41983. .nf
  41984. .ft C
  41985. def test_set_target(self):
  41986. \(aq\(aq\(aq
  41987. aliases.set_target and aliases.get_target
  41988. \(aq\(aq\(aq
  41989. set_ret = self.run_function(
  41990. \(aqaliases.set_target\(aq,
  41991. alias=\(aqfred\(aq,
  41992. target=\(aqbob\(aq)
  41993. self.assertTrue(set_ret)
  41994. tgt_ret = self.run_function(
  41995. \(aqaliases.get_target\(aq,
  41996. alias=\(aqfred\(aq)
  41997. self.assertEqual(tgt_ret, \(aqbob\(aq)
  41998. .ft P
  41999. .fi
  42000. .UNINDENT
  42001. .UNINDENT
  42002. .sp
  42003. Using multiple Salt commands in this manner provides two useful benefits. The first is
  42004. that it provides some additional coverage for the \fBaliases.set_target\fP function.
  42005. The second benefit is the call to \fBaliases.get_target\fP is not dependent on the
  42006. presence of any aliases set outside of this test. Tests should not be dependent on
  42007. the previous execution, success, or failure of other tests. They should be isolated
  42008. from other tests as much as possible.
  42009. .sp
  42010. While it might be tempting to build out a test file where tests depend on one another
  42011. before running, this should be avoided. SaltStack recommends that each test should
  42012. test a single functionality and not rely on other tests. Therefore, when possible,
  42013. individual tests should also be broken up into singular pieces. These are not
  42014. hard\-and\-fast rules, but serve more as recommendations to keep the test suite simple.
  42015. This helps with debugging code and related tests when failures occur and problems
  42016. are exposed. There may be instances where large tests use many asserts to set up a
  42017. use case that protects against potential regressions.
  42018. .sp
  42019. \fBNOTE:\fP
  42020. .INDENT 0.0
  42021. .INDENT 3.5
  42022. The examples above all use the \fBrun_function\fP option to test execution module
  42023. functions in a traditional master/minion environment. To see examples of how to
  42024. test other common Salt components such as runners, salt\-api, and more, please
  42025. refer to the Integration Test Class Examples
  42026. documentation.
  42027. .UNINDENT
  42028. .UNINDENT
  42029. .SS Destructive vs Non\-destructive Tests
  42030. .sp
  42031. Since Salt is used to change the settings and behavior of systems, often, the
  42032. best approach to run tests is to make actual changes to an underlying system.
  42033. This is where the concept of destructive integration tests comes into play.
  42034. Tests can be written to alter the system they are running on. This capability
  42035. is what fills in the gap needed to properly test aspects of system management
  42036. like package installation.
  42037. .sp
  42038. To write a destructive test, import and use the \fBdestructiveTest\fP decorator for
  42039. the test method:
  42040. .INDENT 0.0
  42041. .INDENT 3.5
  42042. .sp
  42043. .nf
  42044. .ft C
  42045. import integration
  42046. from tests.support.helpers import destructiveTest
  42047. class PkgTest(integration.ModuleCase):
  42048. @destructiveTest
  42049. def test_pkg_install(self):
  42050. ret = self.run_function(\(aqpkg.install\(aq, name=\(aqfinch\(aq)
  42051. self.assertSaltTrueReturn(ret)
  42052. ret = self.run_function(\(aqpkg.purge\(aq, name=\(aqfinch\(aq)
  42053. self.assertSaltTrueReturn(ret)
  42054. .ft P
  42055. .fi
  42056. .UNINDENT
  42057. .UNINDENT
  42058. .SS Writing Unit Tests
  42059. .sp
  42060. As explained in the \fI\%Integration vs. Unit\fP section above, unit tests should be
  42061. written to test the \fIlogic\fP of a function. This includes focusing on testing
  42062. \fBreturn\fP and \fBraises\fP statements. Substantial effort should be made to mock
  42063. external resources that are used in the code being tested.
  42064. .sp
  42065. External resources that should be mocked include, but are not limited to, APIs,
  42066. function calls, external data either globally available or passed in through
  42067. function arguments, file data, etc. This practice helps to isolate unit tests to
  42068. test Salt logic. One handy way to think about writing unit tests is to "block
  42069. all of the exits". More information about how to properly mock external resources
  42070. can be found in Salt\(aqs Unit Test documentation.
  42071. .sp
  42072. Salt\(aqs unit tests utilize Python\(aqs mock class as well as \fI\%MagicMock\fP\&. The
  42073. \fB@patch\fP decorator is also heavily used when "blocking all the exits".
  42074. .sp
  42075. A simple example of a unit test currently in use in Salt is the
  42076. \fBtest_get_file_not_found\fP test in the \fBtests/unit/modules/test_cp.py\fP file.
  42077. This test uses the \fB@patch\fP decorator and \fBMagicMock\fP to mock the return
  42078. of the call to Salt\(aqs \fBcp.hash_file\fP execution module function. This ensures
  42079. that we\(aqre testing the \fBcp.get_file\fP function directly, instead of inadvertently
  42080. testing the call to \fBcp.hash_file\fP, which is used in \fBcp.get_file\fP\&.
  42081. .INDENT 0.0
  42082. .INDENT 3.5
  42083. .sp
  42084. .nf
  42085. .ft C
  42086. def test_get_file_not_found(self):
  42087. \(aq\(aq\(aq
  42088. Test if get_file can\(aqt find the file.
  42089. \(aq\(aq\(aq
  42090. with patch(\(aqsalt.modules.cp.hash_file\(aq, MagicMock(return_value=False)):
  42091. path = \(aqsalt://saltines\(aq
  42092. dest = \(aq/srv/salt/cheese\(aq
  42093. ret = \(aq\(aq
  42094. self.assertEqual(cp.get_file(path, dest), ret)
  42095. .ft P
  42096. .fi
  42097. .UNINDENT
  42098. .UNINDENT
  42099. .sp
  42100. Note that Salt\(aqs \fBcp\fP module is imported at the top of the file, along with all
  42101. of the other necessary testing imports. The \fBget_file\fP function is then called
  42102. directed in the testing function, instead of using the \fBrun_function\fP method as
  42103. the integration test examples do above.
  42104. .sp
  42105. The call to \fBcp.get_file\fP returns an empty string when a \fBhash_file\fP isn\(aqt found.
  42106. Therefore, the example above is a good illustration of a unit test "blocking
  42107. the exits" via the \fB@patch\fP decorator, as well as testing logic via asserting
  42108. against the \fBreturn\fP statement in the \fBif\fP clause.
  42109. .sp
  42110. There are more examples of writing unit tests of varying complexities available
  42111. in the following docs:
  42112. .INDENT 0.0
  42113. .IP \(bu 2
  42114. Simple Unit Test Example
  42115. .IP \(bu 2
  42116. Complete Unit Test Example
  42117. .IP \(bu 2
  42118. Complex Unit Test Example
  42119. .UNINDENT
  42120. .sp
  42121. \fBNOTE:\fP
  42122. .INDENT 0.0
  42123. .INDENT 3.5
  42124. Considerable care should be made to ensure that you\(aqre testing something
  42125. useful in your test functions. It is very easy to fall into a situation
  42126. where you have mocked so much of the original function that the test
  42127. results in only asserting against the data you have provided. This results
  42128. in a poor and fragile unit test.
  42129. .UNINDENT
  42130. .UNINDENT
  42131. .SS Checking for Log Messages
  42132. .sp
  42133. To test to see if a given log message has been emitted, the following pattern
  42134. can be used
  42135. .INDENT 0.0
  42136. .INDENT 3.5
  42137. .sp
  42138. .nf
  42139. .ft C
  42140. # Import logging handler
  42141. from tests.support.helpers import TstSuiteLoggingHandler
  42142. # .. inside test
  42143. with TstSuiteLoggingHandler() as handler:
  42144. for message in handler.messages:
  42145. if message.startswith(\(aqERROR: This is the error message we seek\(aq):
  42146. break
  42147. else:
  42148. raise AssertionError(\(aqDid not find error message\(aq)
  42149. .ft P
  42150. .fi
  42151. .UNINDENT
  42152. .UNINDENT
  42153. .SS Automated Test Runs
  42154. .sp
  42155. SaltStack maintains a Jenkins server which can be viewed at
  42156. \fI\%https://jenkinsci.saltstack.com\fP\&. The tests executed from this Jenkins server
  42157. create fresh virtual machines for each test run, then execute the destructive
  42158. tests on the new, clean virtual machine. This allows for the execution of tests
  42159. across supported platforms.
  42160. .SS Additional Testing Documentation
  42161. .sp
  42162. In addition to this tutorial, there are some other helpful resources and documentation
  42163. that go into more depth on Salt\(aqs test runner, writing tests for Salt code, and general
  42164. Python testing documentation. Please see the follow references for more information:
  42165. .INDENT 0.0
  42166. .IP \(bu 2
  42167. Salt\(aqs Test Suite Documentation
  42168. .IP \(bu 2
  42169. Integration Tests
  42170. .IP \(bu 2
  42171. Unit Tests
  42172. .IP \(bu 2
  42173. \fI\%MagicMock\fP
  42174. .IP \(bu 2
  42175. \fI\%Python Unittest\fP
  42176. .IP \(bu 2
  42177. \fI\%Python\(aqs Assert Functions\fP
  42178. .UNINDENT
  42179. .SS Troubleshooting
  42180. .sp
  42181. The intent of the troubleshooting section is to introduce solutions to a
  42182. number of common issues encountered by users and the tools that are available
  42183. to aid in developing States and Salt code.
  42184. .SS Troubleshooting the Salt Master
  42185. .sp
  42186. If your Salt master is having issues such as minions not returning data, slow
  42187. execution times, or a variety of other issues, the following links contain
  42188. details on troubleshooting the most common issues encountered:
  42189. .SS Troubleshooting the Salt Master
  42190. .SS Running in the Foreground
  42191. .sp
  42192. A great deal of information is available via the debug logging system, if you
  42193. are having issues with minions connecting or not starting run the master in
  42194. the foreground:
  42195. .INDENT 0.0
  42196. .INDENT 3.5
  42197. .sp
  42198. .nf
  42199. .ft C
  42200. # salt\-master \-l debug
  42201. .ft P
  42202. .fi
  42203. .UNINDENT
  42204. .UNINDENT
  42205. .sp
  42206. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42207. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42208. run them in the foreground.
  42209. .SS What Ports does the Master Need Open?
  42210. .sp
  42211. For the master, TCP ports 4505 and 4506 need to be open. If you\(aqve put both
  42212. your Salt master and minion in debug mode and don\(aqt see an acknowledgment
  42213. that your minion has connected, it could very well be a firewall interfering
  42214. with the connection. See our firewall configuration page for help opening the firewall on various
  42215. platforms.
  42216. .sp
  42217. If you\(aqve opened the correct TCP ports and still aren\(aqt seeing connections,
  42218. check that no additional access control system such as \fI\%SELinux\fP or
  42219. \fI\%AppArmor\fP is blocking Salt.
  42220. .SS Too many open files
  42221. .sp
  42222. The salt\-master needs at least 2 sockets per host that connects to it, one for
  42223. the Publisher and one for response port. Thus, large installations may, upon
  42224. scaling up the number of minions accessing a given master, encounter:
  42225. .INDENT 0.0
  42226. .INDENT 3.5
  42227. .sp
  42228. .nf
  42229. .ft C
  42230. 12:45:29,289 [salt.master ][INFO ] Starting Salt worker process 38
  42231. Too many open files
  42232. sock != \-1 (tcp_listener.cpp:335)
  42233. .ft P
  42234. .fi
  42235. .UNINDENT
  42236. .UNINDENT
  42237. .sp
  42238. The solution to this would be to check the number of files allowed to be
  42239. opened by the user running salt\-master (root by default):
  42240. .INDENT 0.0
  42241. .INDENT 3.5
  42242. .sp
  42243. .nf
  42244. .ft C
  42245. [root@salt\-master ~]# ulimit \-n
  42246. 1024
  42247. .ft P
  42248. .fi
  42249. .UNINDENT
  42250. .UNINDENT
  42251. .sp
  42252. If this value is not equal to at least twice the number of minions, then it
  42253. will need to be raised. For example, in an environment with 1800 minions, the
  42254. \fBnofile\fP limit should be set to no less than 3600. This can be done by
  42255. creating the file \fB/etc/security/limits.d/99\-salt.conf\fP, with the following
  42256. contents:
  42257. .INDENT 0.0
  42258. .INDENT 3.5
  42259. .sp
  42260. .nf
  42261. .ft C
  42262. root hard nofile 4096
  42263. root soft nofile 4096
  42264. .ft P
  42265. .fi
  42266. .UNINDENT
  42267. .UNINDENT
  42268. .sp
  42269. Replace \fBroot\fP with the user under which the master runs, if different.
  42270. .sp
  42271. If your master does not have an \fB/etc/security/limits.d\fP directory, the lines
  42272. can simply be appended to \fB/etc/security/limits.conf\fP\&.
  42273. .sp
  42274. As with any change to resource limits, it is best to stay logged into your
  42275. current shell and open another shell to run \fBulimit \-n\fP again and verify that
  42276. the changes were applied correctly. Additionally, if your master is running
  42277. upstart, it may be necessary to specify the \fBnofile\fP limit in
  42278. \fB/etc/default/salt\-master\fP if upstart isn\(aqt respecting your resource limits:
  42279. .INDENT 0.0
  42280. .INDENT 3.5
  42281. .sp
  42282. .nf
  42283. .ft C
  42284. limit nofile 4096 4096
  42285. .ft P
  42286. .fi
  42287. .UNINDENT
  42288. .UNINDENT
  42289. .sp
  42290. \fBNOTE:\fP
  42291. .INDENT 0.0
  42292. .INDENT 3.5
  42293. The above is simply an example of how to set these values, and you may
  42294. wish to increase them even further if your Salt master is doing more than
  42295. just running Salt.
  42296. .UNINDENT
  42297. .UNINDENT
  42298. .SS Salt Master Stops Responding
  42299. .sp
  42300. There are known bugs with ZeroMQ versions less than 2.1.11 which can cause the
  42301. Salt master to not respond properly. If you\(aqre running a ZeroMQ version greater
  42302. than or equal to 2.1.9, you can work around the bug by setting the sysctls
  42303. \fBnet.core.rmem_max\fP and \fBnet.core.wmem_max\fP to 16777216. Next, set the third
  42304. field in \fBnet.ipv4.tcp_rmem\fP and \fBnet.ipv4.tcp_wmem\fP to at least 16777216.
  42305. .sp
  42306. You can do it manually with something like:
  42307. .INDENT 0.0
  42308. .INDENT 3.5
  42309. .sp
  42310. .nf
  42311. .ft C
  42312. # echo 16777216 > /proc/sys/net/core/rmem_max
  42313. # echo 16777216 > /proc/sys/net/core/wmem_max
  42314. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
  42315. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem
  42316. .ft P
  42317. .fi
  42318. .UNINDENT
  42319. .UNINDENT
  42320. .sp
  42321. Or with the following Salt state:
  42322. .INDENT 0.0
  42323. .INDENT 3.5
  42324. .sp
  42325. .nf
  42326. .ft C
  42327. net.core.rmem_max:
  42328. sysctl:
  42329. \- present
  42330. \- value: 16777216
  42331. net.core.wmem_max:
  42332. sysctl:
  42333. \- present
  42334. \- value: 16777216
  42335. net.ipv4.tcp_rmem:
  42336. sysctl:
  42337. \- present
  42338. \- value: 4096 87380 16777216
  42339. net.ipv4.tcp_wmem:
  42340. sysctl:
  42341. \- present
  42342. \- value: 4096 87380 16777216
  42343. .ft P
  42344. .fi
  42345. .UNINDENT
  42346. .UNINDENT
  42347. .SS Live Python Debug Output
  42348. .sp
  42349. If the master seems to be unresponsive, a SIGUSR1 can be passed to the
  42350. salt\-master threads to display what piece of code is executing. This debug
  42351. information can be invaluable in tracking down bugs.
  42352. .sp
  42353. To pass a SIGUSR1 to the master, first make sure the master is running in the
  42354. foreground. Stop the service if it is running as a daemon, and start it in the
  42355. foreground like so:
  42356. .INDENT 0.0
  42357. .INDENT 3.5
  42358. .sp
  42359. .nf
  42360. .ft C
  42361. # salt\-master \-l debug
  42362. .ft P
  42363. .fi
  42364. .UNINDENT
  42365. .UNINDENT
  42366. .sp
  42367. Then pass the signal to the master when it seems to be unresponsive:
  42368. .INDENT 0.0
  42369. .INDENT 3.5
  42370. .sp
  42371. .nf
  42372. .ft C
  42373. # killall \-SIGUSR1 salt\-master
  42374. .ft P
  42375. .fi
  42376. .UNINDENT
  42377. .UNINDENT
  42378. .sp
  42379. When filing an issue or sending questions to the mailing list for a problem
  42380. with an unresponsive daemon, be sure to include this information if possible.
  42381. .SS Live Salt\-Master Profiling
  42382. .sp
  42383. When faced with performance problems one can turn on master process profiling by
  42384. sending it SIGUSR2.
  42385. .INDENT 0.0
  42386. .INDENT 3.5
  42387. .sp
  42388. .nf
  42389. .ft C
  42390. # killall \-SIGUSR2 salt\-master
  42391. .ft P
  42392. .fi
  42393. .UNINDENT
  42394. .UNINDENT
  42395. .sp
  42396. This will activate \fByappi\fP profiler inside salt\-master code, then after some
  42397. time one must send SIGUSR2 again to stop profiling and save results to file. If
  42398. run in foreground salt\-master will report filename for the results, which are
  42399. usually located under \fB/tmp\fP on Unix\-based OSes and \fBc:\etemp\fP on windows.
  42400. .sp
  42401. Make sure you have yappi installed.
  42402. .sp
  42403. Results can then be analyzed with \fI\%kcachegrind\fP or similar tool.
  42404. .sp
  42405. Make sure you have yappi installed.
  42406. .sp
  42407. On Windows, in the absence of kcachegrind, a simple file\-based workflow to create
  42408. profiling graphs could use \fI\%gprof2dot\fP, \fI\%graphviz\fP and this batch file:
  42409. .INDENT 0.0
  42410. .INDENT 3.5
  42411. .sp
  42412. .nf
  42413. .ft C
  42414. ::
  42415. :: Converts callgrind* profiler output to *.pdf, via *.dot
  42416. ::
  42417. @echo off
  42418. del *.dot.pdf
  42419. for /r %%f in (callgrind*) do (
  42420. echo "%%f"
  42421. gprof2dot.exe \-f callgrind \-\-show\-samples "%%f" \-o "%%f.dot"
  42422. dot.exe "%%f.dot" \-Tpdf \-O
  42423. del "%%f.dot"
  42424. )
  42425. .ft P
  42426. .fi
  42427. .UNINDENT
  42428. .UNINDENT
  42429. .SS Commands Time Out or Do Not Return Output
  42430. .sp
  42431. Depending on your OS (this is most common on Ubuntu due to apt\-get) you may
  42432. sometimes encounter times where a \fBstate.apply\fP, or other long running commands do not return
  42433. output.
  42434. .sp
  42435. By default the timeout is set to 5 seconds. The timeout value can easily be
  42436. increased by modifying the \fBtimeout\fP line within your \fB/etc/salt/master\fP
  42437. configuration file.
  42438. .sp
  42439. Having keys accepted for Salt minions that no longer exist or are not reachable
  42440. also increases the possibility of timeouts, since the Salt master waits for
  42441. those systems to return command results.
  42442. .SS Passing the \-c Option to Salt Returns a Permissions Error
  42443. .sp
  42444. Using the \fB\-c\fP option with the Salt command modifies the configuration
  42445. directory. When the configuration file is read it will still base data off of
  42446. the \fBroot_dir\fP setting. This can result in unintended behavior if you are
  42447. expecting files such as \fB/etc/salt/pki\fP to be pulled from the location
  42448. specified with \fB\-c\fP\&. Modify the \fBroot_dir\fP setting to address this
  42449. behavior.
  42450. .SS Salt Master Doesn\(aqt Return Anything While Running jobs
  42451. .sp
  42452. When a command being run via Salt takes a very long time to return
  42453. (package installations, certain scripts, etc.) the master may drop you back
  42454. to the shell. In most situations the job is still running but Salt has
  42455. exceeded the set timeout before returning. Querying the job queue will
  42456. provide the data of the job but is inconvenient. This can be resolved by
  42457. either manually using the \fB\-t\fP option to set a longer timeout when running
  42458. commands (by default it is 5 seconds) or by modifying the master
  42459. configuration file: \fB/etc/salt/master\fP and setting the \fBtimeout\fP value to
  42460. change the default timeout for all commands, and then restarting the
  42461. salt\-master service.
  42462. .sp
  42463. If a \fBstate.apply\fP run takes too long, you can find a bottleneck by adding the
  42464. \fB\-\-out=profile\fP option.
  42465. .SS Salt Master Auth Flooding
  42466. .sp
  42467. In large installations, care must be taken not to overwhealm the master with
  42468. authentication requests. Several options can be set on the master which
  42469. mitigate the chances of an authentication flood from causing an interruption in
  42470. service.
  42471. .sp
  42472. \fBNOTE:\fP
  42473. .INDENT 0.0
  42474. .INDENT 3.5
  42475. recon_default:
  42476. .sp
  42477. The average number of seconds to wait between reconnection attempts.
  42478. .INDENT 0.0
  42479. .TP
  42480. .B recon_max:
  42481. The maximum number of seconds to wait between reconnection attempts.
  42482. .TP
  42483. .B recon_randomize:
  42484. A flag to indicate whether the recon_default value should be randomized.
  42485. .TP
  42486. .B acceptance_wait_time:
  42487. The number of seconds to wait for a reply to each authentication request.
  42488. .TP
  42489. .B random_reauth_delay:
  42490. The range of seconds across which the minions should attempt to randomize
  42491. authentication attempts.
  42492. .TP
  42493. .B auth_timeout:
  42494. The total time to wait for the authentication process to complete, regardless
  42495. of the number of attempts.
  42496. .UNINDENT
  42497. .UNINDENT
  42498. .UNINDENT
  42499. .SS Running states locally
  42500. .sp
  42501. To debug the states, you can use call locally.
  42502. .INDENT 0.0
  42503. .INDENT 3.5
  42504. .sp
  42505. .nf
  42506. .ft C
  42507. salt\-call \-l trace \-\-local state.highstate
  42508. .ft P
  42509. .fi
  42510. .UNINDENT
  42511. .UNINDENT
  42512. .sp
  42513. The top.sls file is used to map what SLS modules get loaded onto what minions via the state system.
  42514. .sp
  42515. It is located in the file defined in the \fBfile_roots\fP variable of the salt master
  42516. configuration file which is defined by found in \fBCONFIG_DIR/master\fP, normally \fB/etc/salt/master\fP
  42517. .sp
  42518. The default configuration for the \fBfile_roots\fP is:
  42519. .INDENT 0.0
  42520. .INDENT 3.5
  42521. .sp
  42522. .nf
  42523. .ft C
  42524. file_roots:
  42525. base:
  42526. \- /srv/salt
  42527. .ft P
  42528. .fi
  42529. .UNINDENT
  42530. .UNINDENT
  42531. .sp
  42532. So the top file is defaulted to the location \fB/srv/salt/top.sls\fP
  42533. .SS Salt Master Umask
  42534. .sp
  42535. The salt master uses a cache to track jobs as they are published and returns come back.
  42536. The recommended umask for a salt\-master is \fI022\fP, which is the default for most users
  42537. on a system. Incorrect umasks can result in permission\-denied errors when the master
  42538. tries to access files in its cache.
  42539. .SS Troubleshooting the Salt Minion
  42540. .sp
  42541. In the event that your Salt minion is having issues, a variety of solutions
  42542. and suggestions are available. Please refer to the following links for more information:
  42543. .SS Troubleshooting the Salt Minion
  42544. .SS Running in the Foreground
  42545. .sp
  42546. A great deal of information is available via the debug logging system, if you
  42547. are having issues with minions connecting or not starting run the minion in
  42548. the foreground:
  42549. .INDENT 0.0
  42550. .INDENT 3.5
  42551. .sp
  42552. .nf
  42553. .ft C
  42554. # salt\-minion \-l debug
  42555. .ft P
  42556. .fi
  42557. .UNINDENT
  42558. .UNINDENT
  42559. .sp
  42560. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42561. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42562. run them in the foreground.
  42563. .SS What Ports does the Minion Need Open?
  42564. .sp
  42565. No ports need to be opened on the minion, as it makes outbound connections to
  42566. the master. If you\(aqve put both your Salt master and minion in debug mode and
  42567. don\(aqt see an acknowledgment that your minion has connected, it could very well
  42568. be a firewall interfering with the connection. See our firewall
  42569. configuration page for help opening the firewall
  42570. on various platforms.
  42571. .sp
  42572. If you have netcat installed, you can check port connectivity from the minion
  42573. with the \fBnc\fP command:
  42574. .INDENT 0.0
  42575. .INDENT 3.5
  42576. .sp
  42577. .nf
  42578. .ft C
  42579. $ nc \-v \-z salt.master.ip.addr 4505
  42580. Connection to salt.master.ip.addr 4505 port [tcp/unknown] succeeded!
  42581. $ nc \-v \-z salt.master.ip.addr 4506
  42582. Connection to salt.master.ip.addr 4506 port [tcp/unknown] succeeded!
  42583. .ft P
  42584. .fi
  42585. .UNINDENT
  42586. .UNINDENT
  42587. .sp
  42588. The \fI\%Nmap\fP utility can also be used to check if these ports are open:
  42589. .INDENT 0.0
  42590. .INDENT 3.5
  42591. .sp
  42592. .nf
  42593. .ft C
  42594. # nmap \-sS \-q \-p 4505\-4506 salt.master.ip.addr
  42595. Starting Nmap 6.40 ( http://nmap.org ) at 2013\-12\-29 19:44 CST
  42596. Nmap scan report for salt.master.ip.addr (10.0.0.10)
  42597. Host is up (0.0026s latency).
  42598. PORT STATE SERVICE
  42599. 4505/tcp open unknown
  42600. 4506/tcp open unknown
  42601. MAC Address: 00:11:22:AA:BB:CC (Intel)
  42602. Nmap done: 1 IP address (1 host up) scanned in 1.64 seconds
  42603. .ft P
  42604. .fi
  42605. .UNINDENT
  42606. .UNINDENT
  42607. .sp
  42608. If you\(aqve opened the correct TCP ports and still aren\(aqt seeing connections,
  42609. check that no additional access control system such as \fI\%SELinux\fP or
  42610. \fI\%AppArmor\fP is blocking Salt. Tools like \fI\%tcptraceroute\fP can also be used
  42611. to determine if an intermediate device or firewall is blocking the needed
  42612. TCP ports.
  42613. .SS Using salt\-call
  42614. .sp
  42615. The \fBsalt\-call\fP command was originally developed for aiding in the
  42616. development of new Salt modules. Since then, many applications have been
  42617. developed for running any Salt module locally on a minion. These range from the
  42618. original intent of salt\-call (development assistance), to gathering more
  42619. verbose output from calls like \fBstate.apply\fP\&.
  42620. .sp
  42621. When initially creating your state tree, it is generally recommended to invoke
  42622. highstates by running \fBstate.apply\fP directly
  42623. from the minion with \fBsalt\-call\fP, rather than remotely from the master. This
  42624. displays far more information about the execution than calling it remotely. For
  42625. even more verbosity, increase the loglevel using the \fB\-l\fP argument:
  42626. .INDENT 0.0
  42627. .INDENT 3.5
  42628. .sp
  42629. .nf
  42630. .ft C
  42631. # salt\-call \-l debug state.apply
  42632. .ft P
  42633. .fi
  42634. .UNINDENT
  42635. .UNINDENT
  42636. .sp
  42637. The main difference between using \fBsalt\fP and using \fBsalt\-call\fP is that
  42638. \fBsalt\-call\fP is run from the minion, and it only runs the selected function on
  42639. that minion. By contrast, \fBsalt\fP is run from the master, and requires you to
  42640. specify the minions on which to run the command using salt\(aqs targeting
  42641. system\&.
  42642. .SS Live Python Debug Output
  42643. .sp
  42644. If the minion seems to be unresponsive, a SIGUSR1 can be passed to the process
  42645. to display what piece of code is executing. This debug information can be
  42646. invaluable in tracking down bugs.
  42647. .sp
  42648. To pass a SIGUSR1 to the minion, first make sure the minion is running in the
  42649. foreground. Stop the service if it is running as a daemon, and start it in the
  42650. foreground like so:
  42651. .INDENT 0.0
  42652. .INDENT 3.5
  42653. .sp
  42654. .nf
  42655. .ft C
  42656. # salt\-minion \-l debug
  42657. .ft P
  42658. .fi
  42659. .UNINDENT
  42660. .UNINDENT
  42661. .sp
  42662. Then pass the signal to the minion when it seems to be unresponsive:
  42663. .INDENT 0.0
  42664. .INDENT 3.5
  42665. .sp
  42666. .nf
  42667. .ft C
  42668. # killall \-SIGUSR1 salt\-minion
  42669. .ft P
  42670. .fi
  42671. .UNINDENT
  42672. .UNINDENT
  42673. .sp
  42674. When filing an issue or sending questions to the mailing list for a problem
  42675. with an unresponsive daemon, be sure to include this information if possible.
  42676. .SS Multiprocessing in Execution Modules
  42677. .sp
  42678. As is outlined in github issue #6300, Salt cannot use python\(aqs multiprocessing
  42679. pipes and queues from execution modules. Multiprocessing from the execution
  42680. modules is perfectly viable, it is just necessary to use Salt\(aqs event system
  42681. to communicate back with the process.
  42682. .sp
  42683. The reason for this difficulty is that python attempts to pickle all objects in
  42684. memory when communicating, and it cannot pickle function objects. Since the
  42685. Salt loader system creates and manages function objects this causes the pickle
  42686. operation to fail.
  42687. .SS Salt Minion Doesn\(aqt Return Anything While Running Jobs Locally
  42688. .sp
  42689. When a command being run via Salt takes a very long time to return
  42690. (package installations, certain scripts, etc.) the minion may drop you back
  42691. to the shell. In most situations the job is still running but Salt has
  42692. exceeded the set timeout before returning. Querying the job queue will
  42693. provide the data of the job but is inconvenient. This can be resolved by
  42694. either manually using the \fB\-t\fP option to set a longer timeout when running
  42695. commands (by default it is 5 seconds) or by modifying the minion
  42696. configuration file: \fB/etc/salt/minion\fP and setting the \fBtimeout\fP value to
  42697. change the default timeout for all commands, and then restarting the
  42698. salt\-minion service.
  42699. .sp
  42700. \fBNOTE:\fP
  42701. .INDENT 0.0
  42702. .INDENT 3.5
  42703. Modifying the minion timeout value is not required when running commands
  42704. from a Salt Master. It is only required when running commands locally on
  42705. the minion.
  42706. .UNINDENT
  42707. .UNINDENT
  42708. .sp
  42709. If a \fBstate.apply\fP run takes too long, you can find a bottleneck by adding the
  42710. \fB\-\-out=profile\fP option.
  42711. .SS Running in the Foreground
  42712. .sp
  42713. A great deal of information is available via the debug logging system, if you
  42714. are having issues with minions connecting or not starting run the minion and/or
  42715. master in the foreground:
  42716. .INDENT 0.0
  42717. .INDENT 3.5
  42718. .sp
  42719. .nf
  42720. .ft C
  42721. salt\-master \-l debug
  42722. salt\-minion \-l debug
  42723. .ft P
  42724. .fi
  42725. .UNINDENT
  42726. .UNINDENT
  42727. .sp
  42728. Anyone wanting to run Salt daemons via a process supervisor such as \fI\%monit\fP,
  42729. \fI\%runit\fP, or \fI\%supervisord\fP, should omit the \fB\-d\fP argument to the daemons and
  42730. run them in the foreground.
  42731. .SS What Ports do the Master and Minion Need Open?
  42732. .sp
  42733. No ports need to be opened up on each minion. For the master, TCP ports 4505
  42734. and 4506 need to be open. If you\(aqve put both your Salt master and minion in
  42735. debug mode and don\(aqt see an acknowledgment that your minion has connected,
  42736. it could very well be a firewall.
  42737. .sp
  42738. You can check port connectivity from the minion with the nc command:
  42739. .INDENT 0.0
  42740. .INDENT 3.5
  42741. .sp
  42742. .nf
  42743. .ft C
  42744. nc \-v \-z salt.master.ip 4505
  42745. nc \-v \-z salt.master.ip 4506
  42746. .ft P
  42747. .fi
  42748. .UNINDENT
  42749. .UNINDENT
  42750. .sp
  42751. There is also a firewall configuration
  42752. document that might help as well.
  42753. .sp
  42754. If you\(aqve enabled the right TCP ports on your operating system or Linux
  42755. distribution\(aqs firewall and still aren\(aqt seeing connections, check that no
  42756. additional access control system such as \fI\%SELinux\fP or \fI\%AppArmor\fP is blocking
  42757. Salt.
  42758. .SS Using salt\-call
  42759. .sp
  42760. The \fBsalt\-call\fP command was originally developed for aiding in the development
  42761. of new Salt modules. Since then, many applications have been developed for
  42762. running any Salt module locally on a minion. These range from the original
  42763. intent of salt\-call, development assistance, to gathering more verbose output
  42764. from calls like \fBstate.apply\fP\&.
  42765. .sp
  42766. When initially creating your state tree, it is generally recommended to invoke
  42767. \fBstate.apply\fP directly from the minion with
  42768. \fBsalt\-call\fP, rather than remotely from the master. This displays far more
  42769. information about the execution than calling it remotely. For even more
  42770. verbosity, increase the loglevel using the \fB\-l\fP argument:
  42771. .INDENT 0.0
  42772. .INDENT 3.5
  42773. .sp
  42774. .nf
  42775. .ft C
  42776. salt\-call \-l debug state.apply
  42777. .ft P
  42778. .fi
  42779. .UNINDENT
  42780. .UNINDENT
  42781. .sp
  42782. The main difference between using \fBsalt\fP and using \fBsalt\-call\fP is that
  42783. \fBsalt\-call\fP is run from the minion, and it only runs the selected function on
  42784. that minion. By contrast, \fBsalt\fP is run from the master, and requires you to
  42785. specify the minions on which to run the command using salt\(aqs targeting
  42786. system\&.
  42787. .SS Too many open files
  42788. .sp
  42789. The salt\-master needs at least 2 sockets per host that connects to it, one for
  42790. the Publisher and one for response port. Thus, large installations may, upon
  42791. scaling up the number of minions accessing a given master, encounter:
  42792. .INDENT 0.0
  42793. .INDENT 3.5
  42794. .sp
  42795. .nf
  42796. .ft C
  42797. 12:45:29,289 [salt.master ][INFO ] Starting Salt worker process 38
  42798. Too many open files
  42799. sock != \-1 (tcp_listener.cpp:335)
  42800. .ft P
  42801. .fi
  42802. .UNINDENT
  42803. .UNINDENT
  42804. .sp
  42805. The solution to this would be to check the number of files allowed to be
  42806. opened by the user running salt\-master (root by default):
  42807. .INDENT 0.0
  42808. .INDENT 3.5
  42809. .sp
  42810. .nf
  42811. .ft C
  42812. [root@salt\-master ~]# ulimit \-n
  42813. 1024
  42814. .ft P
  42815. .fi
  42816. .UNINDENT
  42817. .UNINDENT
  42818. .sp
  42819. And modify that value to be at least equal to the number of minions x 2.
  42820. This setting can be changed in limits.conf as the nofile value(s),
  42821. and activated upon new a login of the specified user.
  42822. .sp
  42823. So, an environment with 1800 minions, would need 1800 x 2 = 3600 as a minimum.
  42824. .SS Salt Master Stops Responding
  42825. .sp
  42826. There are known bugs with ZeroMQ versions less than 2.1.11 which can cause the
  42827. Salt master to not respond properly. If you\(aqre running a ZeroMQ version greater
  42828. than or equal to 2.1.9, you can work around the bug by setting the sysctls
  42829. \fBnet.core.rmem_max\fP and \fBnet.core.wmem_max\fP to 16777216. Next, set the third
  42830. field in \fBnet.ipv4.tcp_rmem\fP and \fBnet.ipv4.tcp_wmem\fP to at least 16777216.
  42831. .sp
  42832. You can do it manually with something like:
  42833. .INDENT 0.0
  42834. .INDENT 3.5
  42835. .sp
  42836. .nf
  42837. .ft C
  42838. # echo 16777216 > /proc/sys/net/core/rmem_max
  42839. # echo 16777216 > /proc/sys/net/core/wmem_max
  42840. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_rmem
  42841. # echo "4096 87380 16777216" > /proc/sys/net/ipv4/tcp_wmem
  42842. .ft P
  42843. .fi
  42844. .UNINDENT
  42845. .UNINDENT
  42846. .sp
  42847. Or with the following Salt state:
  42848. .INDENT 0.0
  42849. .INDENT 3.5
  42850. .sp
  42851. .nf
  42852. .ft C
  42853. net.core.rmem_max:
  42854. sysctl:
  42855. \- present
  42856. \- value: 16777216
  42857. net.core.wmem_max:
  42858. sysctl:
  42859. \- present
  42860. \- value: 16777216
  42861. net.ipv4.tcp_rmem:
  42862. sysctl:
  42863. \- present
  42864. \- value: 4096 87380 16777216
  42865. net.ipv4.tcp_wmem:
  42866. sysctl:
  42867. \- present
  42868. \- value: 4096 87380 16777216
  42869. .ft P
  42870. .fi
  42871. .UNINDENT
  42872. .UNINDENT
  42873. .SS Salt and SELinux
  42874. .sp
  42875. Currently there are no SELinux policies for Salt. For the most part Salt runs
  42876. without issue when SELinux is running in Enforcing mode. This is because when
  42877. the minion executes as a daemon the type context is changed to \fBinitrc_t\fP\&.
  42878. The problem with SELinux arises when using salt\-call or running the minion in
  42879. the foreground, since the type context stays \fBunconfined_t\fP\&.
  42880. .sp
  42881. This problem is generally manifest in the rpm install scripts when using the
  42882. pkg module. Until a full SELinux Policy is available for Salt the solution
  42883. to this issue is to set the execution context of \fBsalt\-call\fP and
  42884. \fBsalt\-minion\fP to rpm_exec_t:
  42885. .INDENT 0.0
  42886. .INDENT 3.5
  42887. .sp
  42888. .nf
  42889. .ft C
  42890. # CentOS 5 and RHEL 5:
  42891. chcon \-t system_u:system_r:rpm_exec_t:s0 /usr/bin/salt\-minion
  42892. chcon \-t system_u:system_r:rpm_exec_t:s0 /usr/bin/salt\-call
  42893. # CentOS 6 and RHEL 6:
  42894. chcon system_u:object_r:rpm_exec_t:s0 /usr/bin/salt\-minion
  42895. chcon system_u:object_r:rpm_exec_t:s0 /usr/bin/salt\-call
  42896. .ft P
  42897. .fi
  42898. .UNINDENT
  42899. .UNINDENT
  42900. .sp
  42901. This works well, because the \fBrpm_exec_t\fP context has very broad control over
  42902. other types.
  42903. .SS Red Hat Enterprise Linux 5
  42904. .sp
  42905. Salt requires Python 2.6 or 2.7. Red Hat Enterprise Linux 5 and its variants
  42906. come with Python 2.4 installed by default. When installing on RHEL 5 from the
  42907. \fI\%EPEL repository\fP this is handled for you. But, if you run Salt from git, be
  42908. advised that its dependencies need to be installed from EPEL and that Salt
  42909. needs to be run with the \fBpython26\fP executable.
  42910. .SS Common YAML Gotchas
  42911. .sp
  42912. An extensive list of YAML idiosyncrasies has been compiled:
  42913. .SS YAML Idiosyncrasies
  42914. .sp
  42915. One of Salt\(aqs strengths, the use of existing serialization systems for
  42916. representing SLS data, can also backfire. \fI\%YAML\fP is a general purpose system
  42917. and there are a number of things that would seem to make sense in an sls
  42918. file that cause YAML issues. It is wise to be aware of these issues. While
  42919. reports or running into them are generally rare they can still crop up at
  42920. unexpected times.
  42921. .SS Spaces vs Tabs
  42922. .sp
  42923. \fI\%YAML uses spaces\fP, period. Do not use tabs in your SLS files! If strange
  42924. errors are coming up in rendering SLS files, make sure to check that
  42925. no tabs have crept in! In Vim, after enabling search highlighting
  42926. with: \fB:set hlsearch\fP, you can check with the following key sequence in
  42927. normal mode(you can hit \fIESC\fP twice to be sure): \fB/\fP, \fICtrl\-v\fP, \fITab\fP, then
  42928. hit \fIEnter\fP\&. Also, you can convert tabs to 2 spaces by these commands in Vim:
  42929. \fB:set tabstop=2 expandtab\fP and then \fB:retab\fP\&.
  42930. .SS Indentation
  42931. .sp
  42932. The suggested syntax for YAML files is to use 2 spaces for indentation,
  42933. but YAML will follow whatever indentation system that the individual file
  42934. uses. Indentation of two spaces works very well for SLS files given the
  42935. fact that the data is uniform and not deeply nested.
  42936. .SS Nested Dictionaries
  42937. .sp
  42938. When dictionaries are nested within other data structures (particularly lists),
  42939. the indentation logic sometimes changes. Examples of where this might happen
  42940. include \fBcontext\fP and \fBdefault\fP options from the \fBfile.managed\fP state:
  42941. .INDENT 0.0
  42942. .INDENT 3.5
  42943. .sp
  42944. .nf
  42945. .ft C
  42946. /etc/http/conf/http.conf:
  42947. file:
  42948. \- managed
  42949. \- source: salt://apache/http.conf
  42950. \- user: root
  42951. \- group: root
  42952. \- mode: 644
  42953. \- template: jinja
  42954. \- context:
  42955. custom_var: "override"
  42956. \- defaults:
  42957. custom_var: "default value"
  42958. other_var: 123
  42959. .ft P
  42960. .fi
  42961. .UNINDENT
  42962. .UNINDENT
  42963. .sp
  42964. Notice that while the indentation is two spaces per level, for the values under
  42965. the \fBcontext\fP and \fBdefaults\fP options there is a four\-space indent. If only
  42966. two spaces are used to indent, then those keys will be considered part of the
  42967. same dictionary that contains the \fBcontext\fP key, and so the data will not be
  42968. loaded correctly. If using a double indent is not desirable, then a
  42969. deeply\-nested dict can be declared with curly braces:
  42970. .INDENT 0.0
  42971. .INDENT 3.5
  42972. .sp
  42973. .nf
  42974. .ft C
  42975. /etc/http/conf/http.conf:
  42976. file:
  42977. \- managed
  42978. \- source: salt://apache/http.conf
  42979. \- user: root
  42980. \- group: root
  42981. \- mode: 644
  42982. \- template: jinja
  42983. \- context: {
  42984. custom_var: "override" }
  42985. \- defaults: {
  42986. custom_var: "default value",
  42987. other_var: 123 }
  42988. .ft P
  42989. .fi
  42990. .UNINDENT
  42991. .UNINDENT
  42992. .sp
  42993. Here is a more concrete example of how YAML actually handles these
  42994. indentations, using the Python interpreter on the command line:
  42995. .INDENT 0.0
  42996. .INDENT 3.5
  42997. .sp
  42998. .nf
  42999. .ft C
  43000. >>> import yaml
  43001. >>> yaml.safe_load(\(aq\(aq\(aqmystate:
  43002. \&... file.managed:
  43003. \&... \- context:
  43004. \&... some: var\(aq\(aq\(aq)
  43005. {\(aqmystate\(aq: {\(aqfile.managed\(aq: [{\(aqcontext\(aq: {\(aqsome\(aq: \(aqvar\(aq}}]}}
  43006. >>> yaml.safe_load(\(aq\(aq\(aqmystate:
  43007. \&... file.managed:
  43008. \&... \- context:
  43009. \&... some: var\(aq\(aq\(aq)
  43010. {\(aqmystate\(aq: {\(aqfile.managed\(aq: [{\(aqsome\(aq: \(aqvar\(aq, \(aqcontext\(aq: None}]}}
  43011. .ft P
  43012. .fi
  43013. .UNINDENT
  43014. .UNINDENT
  43015. .sp
  43016. Note that in the second example, \fBsome\fP is added as another key in the same
  43017. dictionary, whereas in the first example, it\(aqs the start of a new dictionary.
  43018. That\(aqs the distinction. \fBcontext\fP is a common example because it is a keyword
  43019. arg for many functions, and should contain a dictionary.
  43020. .SS True/False, Yes/No, On/Off
  43021. .sp
  43022. PyYAML will load these values as boolean \fBTrue\fP or \fBFalse\fP\&. Un\-capitalized
  43023. versions will also be loaded as booleans (\fBtrue\fP, \fBfalse\fP, \fByes\fP, \fBno\fP,
  43024. \fBon\fP, and \fBoff\fP). This can be especially problematic when constructing
  43025. Pillar data. Make sure that your Pillars which need to use the string versions
  43026. of these values are enclosed in quotes. Pillars will be parsed twice by salt,
  43027. so you\(aqll need to wrap your values in multiple quotes, including double quotation
  43028. marks (\fB" "\fP) and single quotation marks (\fB\(aq \(aq\fP). Note that spaces are included
  43029. in the quotation type examples for clarity.
  43030. .sp
  43031. Multiple quoting examples looks like this:
  43032. .INDENT 0.0
  43033. .INDENT 3.5
  43034. .sp
  43035. .nf
  43036. .ft C
  43037. \- \(aq"false"\(aq
  43038. \- "\(aqTrue\(aq"
  43039. \- "\(aqYES\(aq"
  43040. \- \(aq"No"\(aq
  43041. .ft P
  43042. .fi
  43043. .UNINDENT
  43044. .UNINDENT
  43045. .sp
  43046. \fBNOTE:\fP
  43047. .INDENT 0.0
  43048. .INDENT 3.5
  43049. When using multiple quotes in this manner, they must be different. Using \fB"" ""\fP
  43050. or \fB\(aq\(aq \(aq\(aq\fP won\(aqt work in this case (spaces are included in examples for clarity).
  43051. .UNINDENT
  43052. .UNINDENT
  43053. .SS The \(aq%\(aq Sign
  43054. .sp
  43055. The \fI%\fP symbol has a special meaning in YAML, it needs to be passed as a
  43056. string literal:
  43057. .INDENT 0.0
  43058. .INDENT 3.5
  43059. .sp
  43060. .nf
  43061. .ft C
  43062. cheese:
  43063. ssh_auth.present:
  43064. \- user: tbortels
  43065. \- source: salt://ssh_keys/chease.pub
  43066. \- config: \(aq%h/.ssh/authorized_keys\(aq
  43067. .ft P
  43068. .fi
  43069. .UNINDENT
  43070. .UNINDENT
  43071. .SS Time Expressions
  43072. .sp
  43073. PyYAML will load a time expression as the integer value of that, assuming
  43074. \fBHH:MM\fP\&. So for example, \fB12:00\fP is loaded by PyYAML as \fB720\fP\&. An
  43075. excellent explanation for why can be found \fI\%here\fP\&.
  43076. .sp
  43077. To keep time expressions like this from being loaded as integers, always quote
  43078. them.
  43079. .sp
  43080. \fBNOTE:\fP
  43081. .INDENT 0.0
  43082. .INDENT 3.5
  43083. When using a jinja \fBload_yaml\fP map, items must be quoted twice. For
  43084. example:
  43085. .INDENT 0.0
  43086. .INDENT 3.5
  43087. .sp
  43088. .nf
  43089. .ft C
  43090. {% load_yaml as wsus_schedule %}
  43091. FRI_10:
  43092. time: \(aq"23:00"\(aq
  43093. day: 6 \- Every Friday
  43094. SAT_10:
  43095. time: \(aq"06:00"\(aq
  43096. day: 7 \- Every Saturday
  43097. SAT_20:
  43098. time: \(aq"14:00"\(aq
  43099. day: 7 \- Every Saturday
  43100. SAT_30:
  43101. time: \(aq"22:00"\(aq
  43102. day: 7 \- Every Saturday
  43103. SUN_10:
  43104. time: \(aq"06:00"\(aq
  43105. day: 1 \- Every Sunday
  43106. {% endload %}
  43107. .ft P
  43108. .fi
  43109. .UNINDENT
  43110. .UNINDENT
  43111. .UNINDENT
  43112. .UNINDENT
  43113. .SS YAML does not like "Double Short Decs"
  43114. .sp
  43115. If I can find a way to make YAML accept "Double Short Decs" then I will, since
  43116. I think that double short decs would be awesome. So what is a "Double Short
  43117. Dec"? It is when you declare a multiple short decs in one ID. Here is a
  43118. standard short dec, it works great:
  43119. .INDENT 0.0
  43120. .INDENT 3.5
  43121. .sp
  43122. .nf
  43123. .ft C
  43124. vim:
  43125. pkg.installed
  43126. .ft P
  43127. .fi
  43128. .UNINDENT
  43129. .UNINDENT
  43130. .sp
  43131. The short dec means that there are no arguments to pass, so it is not required
  43132. to add any arguments, and it can save space.
  43133. .sp
  43134. YAML though, gets upset when declaring multiple short decs, for the record...
  43135. .sp
  43136. THIS DOES NOT WORK:
  43137. .INDENT 0.0
  43138. .INDENT 3.5
  43139. .sp
  43140. .nf
  43141. .ft C
  43142. vim:
  43143. pkg.installed
  43144. user.present
  43145. .ft P
  43146. .fi
  43147. .UNINDENT
  43148. .UNINDENT
  43149. .sp
  43150. Similarly declaring a short dec in the same ID dec as a standard dec does not
  43151. work either...
  43152. .sp
  43153. ALSO DOES NOT WORK:
  43154. .INDENT 0.0
  43155. .INDENT 3.5
  43156. .sp
  43157. .nf
  43158. .ft C
  43159. fred:
  43160. user.present
  43161. ssh_auth.present:
  43162. \- name: AAAAB3NzaC...
  43163. \- user: fred
  43164. \- enc: ssh\-dss
  43165. \- require:
  43166. \- user: fred
  43167. .ft P
  43168. .fi
  43169. .UNINDENT
  43170. .UNINDENT
  43171. .sp
  43172. The correct way is to define them like this:
  43173. .INDENT 0.0
  43174. .INDENT 3.5
  43175. .sp
  43176. .nf
  43177. .ft C
  43178. vim:
  43179. pkg.installed: []
  43180. user.present: []
  43181. fred:
  43182. user.present: []
  43183. ssh_auth.present:
  43184. \- name: AAAAB3NzaC...
  43185. \- user: fred
  43186. \- enc: ssh\-dss
  43187. \- require:
  43188. \- user: fred
  43189. .ft P
  43190. .fi
  43191. .UNINDENT
  43192. .UNINDENT
  43193. .sp
  43194. Alternatively, they can be defined the "old way", or with multiple
  43195. "full decs":
  43196. .INDENT 0.0
  43197. .INDENT 3.5
  43198. .sp
  43199. .nf
  43200. .ft C
  43201. vim:
  43202. pkg:
  43203. \- installed
  43204. user:
  43205. \- present
  43206. fred:
  43207. user:
  43208. \- present
  43209. ssh_auth:
  43210. \- present
  43211. \- name: AAAAB3NzaC...
  43212. \- user: fred
  43213. \- enc: ssh\-dss
  43214. \- require:
  43215. \- user: fred
  43216. .ft P
  43217. .fi
  43218. .UNINDENT
  43219. .UNINDENT
  43220. .SS YAML supports only plain ASCII
  43221. .sp
  43222. According to YAML specification, only ASCII characters can be used.
  43223. .sp
  43224. Within double\-quotes, special characters may be represented with C\-style
  43225. escape sequences starting with a backslash ( \e ).
  43226. .sp
  43227. Examples:
  43228. .INDENT 0.0
  43229. .INDENT 3.5
  43230. .sp
  43231. .nf
  43232. .ft C
  43233. \- micro: "\eu00b5"
  43234. \- copyright: "\eu00A9"
  43235. \- A: "\ex41"
  43236. \- alpha: "\eu0251"
  43237. \- Alef: "\eu05d0"
  43238. .ft P
  43239. .fi
  43240. .UNINDENT
  43241. .UNINDENT
  43242. .sp
  43243. List of usable \fI\%Unicode characters\fP will help you to identify correct numbers.
  43244. .sp
  43245. Python can also be used to discover the Unicode number for a character:
  43246. .INDENT 0.0
  43247. .INDENT 3.5
  43248. .sp
  43249. .nf
  43250. .ft C
  43251. repr(u"Text with wrong characters i need to figure out")
  43252. .ft P
  43253. .fi
  43254. .UNINDENT
  43255. .UNINDENT
  43256. .sp
  43257. This shell command can find wrong characters in your SLS files:
  43258. .INDENT 0.0
  43259. .INDENT 3.5
  43260. .sp
  43261. .nf
  43262. .ft C
  43263. find . \-name \(aq*.sls\(aq \-exec grep \-\-color=\(aqauto\(aq \-P \-n \(aq[^\ex00\-\ex7F]\(aq \e{} \e;
  43264. .ft P
  43265. .fi
  43266. .UNINDENT
  43267. .UNINDENT
  43268. .sp
  43269. Alternatively you can toggle the \fIyaml_utf8\fP setting in your master configuration
  43270. file. This is still an experimental setting but it should manage the right
  43271. encoding conversion in salt after yaml states compilations.
  43272. .SS Underscores stripped in Integer Definitions
  43273. .sp
  43274. If a definition only includes numbers and underscores, it is parsed by YAML as
  43275. an integer and all underscores are stripped. To ensure the object becomes a
  43276. string, it should be surrounded by quotes. \fI\%More information here\fP\&.
  43277. .sp
  43278. Here\(aqs an example:
  43279. .INDENT 0.0
  43280. .INDENT 3.5
  43281. .sp
  43282. .nf
  43283. .ft C
  43284. >>> import yaml
  43285. >>> yaml.safe_load(\(aq2013_05_10\(aq)
  43286. 20130510
  43287. >>> yaml.safe_load(\(aq"2013_05_10"\(aq)
  43288. \(aq2013_05_10\(aq
  43289. .ft P
  43290. .fi
  43291. .UNINDENT
  43292. .UNINDENT
  43293. .SS Automatic \fBdatetime\fP conversion
  43294. .sp
  43295. If there is a value in a YAML file formatted \fB2014\-01\-20 14:23:23\fP or
  43296. similar, YAML will automatically convert this to a Python \fBdatetime\fP object.
  43297. These objects are not msgpack serializable, and so may break core salt
  43298. functionality. If values such as these are needed in a salt YAML file
  43299. (specifically a configuration file), they should be formatted with surrounding
  43300. strings to force YAML to serialize them as strings:
  43301. .INDENT 0.0
  43302. .INDENT 3.5
  43303. .sp
  43304. .nf
  43305. .ft C
  43306. >>> import yaml
  43307. >>> yaml.safe_load(\(aq2014\-01\-20 14:23:23\(aq)
  43308. datetime.datetime(2014, 1, 20, 14, 23, 23)
  43309. >>> yaml.safe_load(\(aq"2014\-01\-20 14:23:23"\(aq)
  43310. \(aq2014\-01\-20 14:23:23\(aq
  43311. .ft P
  43312. .fi
  43313. .UNINDENT
  43314. .UNINDENT
  43315. .sp
  43316. Additionally, numbers formatted like \fBXXXX\-XX\-XX\fP will also be converted (or
  43317. YAML will attempt to convert them, and error out if it doesn\(aqt think the date
  43318. is a real one). Thus, for example, if a minion were to have an ID of
  43319. \fB4017\-16\-20\fP the minion would not start because YAML would complain that the
  43320. date was out of range. The workaround is the same, surround the offending
  43321. string with quotes:
  43322. .INDENT 0.0
  43323. .INDENT 3.5
  43324. .sp
  43325. .nf
  43326. .ft C
  43327. >>> import yaml
  43328. >>> yaml.safe_load(\(aq4017\-16\-20\(aq)
  43329. Traceback (most recent call last):
  43330. File "<stdin>", line 1, in <module>
  43331. File "/usr/local/lib/python2.7/site\-packages/yaml/__init__.py", line 93, in safe_load
  43332. return load(stream, SafeLoader)
  43333. File "/usr/local/lib/python2.7/site\-packages/yaml/__init__.py", line 71, in load
  43334. return loader.get_single_data()
  43335. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 39, in get_single_data
  43336. return self.construct_document(node)
  43337. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 43, in construct_document
  43338. data = self.construct_object(node)
  43339. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 88, in construct_object
  43340. data = constructor(self, node)
  43341. File "/usr/local/lib/python2.7/site\-packages/yaml/constructor.py", line 312, in construct_yaml_timestamp
  43342. return datetime.date(year, month, day)
  43343. ValueError: month must be in 1..12
  43344. >>> yaml.safe_load(\(aq"4017\-16\-20"\(aq)
  43345. \(aq4017\-16\-20\(aq
  43346. .ft P
  43347. .fi
  43348. .UNINDENT
  43349. .UNINDENT
  43350. .SS Keys Limited to 1024 Characters
  43351. .sp
  43352. Simple keys are limited by the \fI\%YAML Spec\fP to a single line, and cannot be
  43353. longer that 1024 characters. PyYAML enforces these limitations (see \fI\%here\fP),
  43354. and therefore anything parsed as YAML in Salt is subject to them.
  43355. .SS Live Python Debug Output
  43356. .sp
  43357. If the minion or master seems to be unresponsive, a SIGUSR1 can be passed to
  43358. the processes to display where in the code they are running. If encountering a
  43359. situation like this, this debug information can be invaluable. First make
  43360. sure the master of minion are running in the foreground:
  43361. .INDENT 0.0
  43362. .INDENT 3.5
  43363. .sp
  43364. .nf
  43365. .ft C
  43366. salt\-master \-l debug
  43367. salt\-minion \-l debug
  43368. .ft P
  43369. .fi
  43370. .UNINDENT
  43371. .UNINDENT
  43372. .sp
  43373. Then pass the signal to the master or minion when it seems to be unresponsive:
  43374. .INDENT 0.0
  43375. .INDENT 3.5
  43376. .sp
  43377. .nf
  43378. .ft C
  43379. killall \-SIGUSR1 salt\-master
  43380. killall \-SIGUSR1 salt\-minion
  43381. .ft P
  43382. .fi
  43383. .UNINDENT
  43384. .UNINDENT
  43385. .sp
  43386. Also under BSD and macOS in addition to SIGUSR1 signal, debug subroutine set
  43387. up for SIGINFO which has an advantage of being sent by Ctrl+T shortcut.
  43388. .sp
  43389. When filing an issue or sending questions to the mailing list for a problem
  43390. with an unresponsive daemon this information can be invaluable.
  43391. .SS Salt 0.16.x minions cannot communicate with a 0.17.x master
  43392. .sp
  43393. As of release 0.17.1 you can no longer run different versions of Salt on your
  43394. Master and Minion servers. This is due to a protocol change for security
  43395. purposes. The Salt team will continue to attempt to ensure versions are as
  43396. backwards compatible as possible.
  43397. .SS Debugging the Master and Minion
  43398. .sp
  43399. A list of common master and
  43400. minion troubleshooting steps provide a
  43401. starting point for resolving issues you may encounter.
  43402. .SS Frequently Asked Questions
  43403. .SS FAQ
  43404. .INDENT 0.0
  43405. .IP \(bu 2
  43406. \fI\%Frequently Asked Questions\fP
  43407. .INDENT 2.0
  43408. .IP \(bu 2
  43409. \fI\%Is Salt open\-core?\fP
  43410. .IP \(bu 2
  43411. \fI\%I think I found a bug! What should I do?\fP
  43412. .IP \(bu 2
  43413. \fI\%What ports should I open on my firewall?\fP
  43414. .IP \(bu 2
  43415. \fI\%I\(aqm seeing weird behavior (including but not limited to packages not installing their users properly)\fP
  43416. .IP \(bu 2
  43417. \fI\%My script runs every time I run a state.apply. Why?\fP
  43418. .IP \(bu 2
  43419. \fI\%When I run test.ping, why don\(aqt the Minions that aren\(aqt responding return anything? Returning False would be helpful.\fP
  43420. .IP \(bu 2
  43421. \fI\%How does Salt determine the Minion\(aqs id?\fP
  43422. .IP \(bu 2
  43423. \fI\%I\(aqm trying to manage packages/services but I get an error saying that the state is not available. Why?\fP
  43424. .IP \(bu 2
  43425. \fI\%Why aren\(aqt my custom modules/states/etc. available on my Minions?\fP
  43426. .IP \(bu 2
  43427. \fI\%Module X isn\(aqt available, even though the shell command it uses is installed. Why?\fP
  43428. .IP \(bu 2
  43429. \fI\%Can I run different versions of Salt on my Master and Minion?\fP
  43430. .IP \(bu 2
  43431. \fI\%Does Salt support backing up managed files?\fP
  43432. .IP \(bu 2
  43433. \fI\%Is it possible to deploy a file to a specific minion, without other minions having access to it?\fP
  43434. .IP \(bu 2
  43435. \fI\%What is the best way to restart a Salt Minion daemon using Salt after upgrade?\fP
  43436. .INDENT 2.0
  43437. .IP \(bu 2
  43438. \fI\%Upgrade without automatic restart\fP
  43439. .IP \(bu 2
  43440. \fI\%Restart using states\fP
  43441. .IP \(bu 2
  43442. \fI\%Restart using remote executions\fP
  43443. .IP \(bu 2
  43444. \fI\%Waiting for minions to come back online\fP
  43445. .UNINDENT
  43446. .IP \(bu 2
  43447. \fI\%Salting the Salt Master\fP
  43448. .IP \(bu 2
  43449. \fI\%Is Targeting using Grain Data Secure?\fP
  43450. .IP \(bu 2
  43451. \fI\%Why Did the Value for a Grain Change on Its Own?\fP
  43452. .UNINDENT
  43453. .UNINDENT
  43454. .SS Is Salt open\-core?
  43455. .sp
  43456. No. Salt is 100% committed to being open\-source, including all of our APIs. It
  43457. is developed under the \fI\%Apache 2.0 license\fP, allowing it to be used in both
  43458. open and proprietary projects.
  43459. .sp
  43460. To expand on this a little:
  43461. .sp
  43462. There is much argument over the actual definition of "open core". From our standpoint, Salt is open source because
  43463. .INDENT 0.0
  43464. .IP 1. 3
  43465. It is a standalone product that anyone is free to use.
  43466. .IP 2. 3
  43467. It is developed in the open with contributions accepted from the community for the good of the project.
  43468. .IP 3. 3
  43469. There are no features of Salt itself that are restricted to separate proprietary products distributed by SaltStack, Inc.
  43470. .IP 4. 3
  43471. Because of our Apache 2.0 license, Salt can be used as the foundation for a project or even a proprietary tool.
  43472. .IP 5. 3
  43473. Our APIs are open and documented (any lack of documentation is an oversight as opposed to an intentional decision by SaltStack the company) and available for use by anyone.
  43474. .UNINDENT
  43475. .sp
  43476. SaltStack the company does make proprietary products which use Salt and its libraries, like company is free to do, but we do so via the APIs, NOT by forking Salt and creating a different, closed\-source version of it for paying customers.
  43477. .SS I think I found a bug! What should I do?
  43478. .sp
  43479. The salt\-users mailing list as well as the salt IRC channel can both be helpful
  43480. resources to confirm if others are seeing the issue and to assist with
  43481. immediate debugging.
  43482. .sp
  43483. To report a bug to the Salt project, please follow the instructions in
  43484. reporting a bug\&.
  43485. .SS What ports should I open on my firewall?
  43486. .sp
  43487. Minions need to be able to connect to the Master on TCP ports 4505 and 4506.
  43488. Minions do not need any inbound ports open. More detailed information on
  43489. firewall settings can be found here\&.
  43490. .SS I\(aqm seeing weird behavior (including but not limited to packages not installing their users properly)
  43491. .sp
  43492. This is often caused by SELinux. Try disabling SELinux or putting it in
  43493. permissive mode and see if the weird behavior goes away.
  43494. .SS My script runs every time I run a \fIstate.apply\fP\&. Why?
  43495. .sp
  43496. You are probably using \fBcmd.run\fP rather than
  43497. \fBcmd.wait\fP\&. A \fBcmd.wait\fP state will only run when there has been a change in a
  43498. state that it is watching.
  43499. .sp
  43500. A \fBcmd.run\fP state will run the corresponding command
  43501. \fIevery time\fP (unless it is prevented from running by the \fBunless\fP or \fBonlyif\fP
  43502. arguments).
  43503. .sp
  43504. More details can be found in the documentation for the \fBcmd\fP states.
  43505. .SS When I run \fItest.ping\fP, why don\(aqt the Minions that aren\(aqt responding return anything? Returning \fBFalse\fP would be helpful.
  43506. .sp
  43507. When you run \fItest.ping\fP the Master tells Minions to run commands/functions,
  43508. and listens for the return data, printing it to the screen when it is received.
  43509. If it doesn\(aqt receive anything back, it doesn\(aqt have anything to display for
  43510. that Minion.
  43511. .sp
  43512. There are a couple options for getting information on Minions that are not
  43513. responding. One is to use the verbose (\fB\-v\fP) option when you run salt
  43514. commands, as it will display "Minion did not return" for any Minions which time
  43515. out.
  43516. .INDENT 0.0
  43517. .INDENT 3.5
  43518. .sp
  43519. .nf
  43520. .ft C
  43521. salt \-v \(aq*\(aq pkg.install zsh
  43522. .ft P
  43523. .fi
  43524. .UNINDENT
  43525. .UNINDENT
  43526. .sp
  43527. Another option is to use the \fBmanage.down\fP
  43528. runner:
  43529. .INDENT 0.0
  43530. .INDENT 3.5
  43531. .sp
  43532. .nf
  43533. .ft C
  43534. salt\-run manage.down
  43535. .ft P
  43536. .fi
  43537. .UNINDENT
  43538. .UNINDENT
  43539. .sp
  43540. Also, if the Master is under heavy load, it is possible that the CLI will exit
  43541. without displaying return data for all targeted Minions. However, this doesn\(aqt
  43542. mean that the Minions did not return; this only means that the Salt CLI timed
  43543. out waiting for a response. Minions will still send their return data back to
  43544. the Master once the job completes. If any expected Minions are missing from the
  43545. CLI output, the \fBjobs.list_jobs\fP runner can
  43546. be used to show the job IDs of the jobs that have been run, and the
  43547. \fBjobs.lookup_jid\fP runner can be used to get
  43548. the return data for that job.
  43549. .INDENT 0.0
  43550. .INDENT 3.5
  43551. .sp
  43552. .nf
  43553. .ft C
  43554. salt\-run jobs.list_jobs
  43555. salt\-run jobs.lookup_jid 20130916125524463507
  43556. .ft P
  43557. .fi
  43558. .UNINDENT
  43559. .UNINDENT
  43560. .sp
  43561. If you find that you are often missing Minion return data on the CLI, only to
  43562. find it with the jobs runners, then this may be a sign that the
  43563. \fBworker_threads\fP value may need to be increased in the master
  43564. config file. Additionally, running your Salt CLI commands with the \fB\-t\fP
  43565. option will make Salt wait longer for the return data before the CLI command
  43566. exits. For instance, the below command will wait up to 60 seconds for the
  43567. Minions to return:
  43568. .INDENT 0.0
  43569. .INDENT 3.5
  43570. .sp
  43571. .nf
  43572. .ft C
  43573. salt \-t 60 \(aq*\(aq test.ping
  43574. .ft P
  43575. .fi
  43576. .UNINDENT
  43577. .UNINDENT
  43578. .SS How does Salt determine the Minion\(aqs id?
  43579. .sp
  43580. If the Minion id is not configured explicitly (using the \fBid\fP
  43581. parameter), Salt will determine the id based on the hostname. Exactly how this
  43582. is determined varies a little between operating systems and is described in
  43583. detail here\&.
  43584. .SS I\(aqm trying to manage packages/services but I get an error saying that the state is not available. Why?
  43585. .sp
  43586. Salt detects the Minion\(aqs operating system and assigns the correct package or
  43587. service management module based on what is detected. However, for certain custom
  43588. spins and OS derivatives this detection fails. In cases like this, an issue
  43589. should be opened on our \fI\%tracker\fP, with the following information:
  43590. .INDENT 0.0
  43591. .IP 1. 3
  43592. The output of the following command:
  43593. .INDENT 3.0
  43594. .INDENT 3.5
  43595. .sp
  43596. .nf
  43597. .ft C
  43598. salt <minion_id> grains.items | grep os
  43599. .ft P
  43600. .fi
  43601. .UNINDENT
  43602. .UNINDENT
  43603. .IP 2. 3
  43604. The contents of \fB/etc/lsb\-release\fP, if present on the Minion.
  43605. .UNINDENT
  43606. .SS Why aren\(aqt my custom modules/states/etc. available on my Minions?
  43607. .sp
  43608. Custom modules are synced to Minions when
  43609. \fBsaltutil.sync_modules\fP,
  43610. or \fBsaltutil.sync_all\fP is run.
  43611. .sp
  43612. Similarly, custom states are synced to Minions when \fBsaltutil.sync_states\fP, or \fBsaltutil.sync_all\fP is run.
  43613. .sp
  43614. They are both also synced when a highstate is
  43615. triggered.
  43616. .sp
  43617. As of the 2019.2.0 release, as well as 2017.7.7 and 2018.3.2 in their
  43618. respective release cycles, the \fBsync\fP argument to \fBstate.apply\fP/\fBstate.sls\fP can
  43619. be used to sync custom types when running individual SLS files.
  43620. .sp
  43621. Other custom types (renderers, outputters, etc.) have similar behavior, see the
  43622. documentation for the \fBsaltutil\fP module for more
  43623. information.
  43624. .sp
  43625. This reactor example can be used to automatically
  43626. sync custom types when the minion connects to the master, to help with this
  43627. chicken\-and\-egg issue.
  43628. .SS Module \fBX\fP isn\(aqt available, even though the shell command it uses is installed. Why?
  43629. .sp
  43630. This is most likely a PATH issue. Did you custom\-compile the software which the
  43631. module requires? RHEL/CentOS/etc. in particular override the root user\(aqs path
  43632. in \fB/etc/init.d/functions\fP, setting it to \fB/sbin:/usr/sbin:/bin:/usr/bin\fP,
  43633. making software installed into \fB/usr/local/bin\fP unavailable to Salt when the
  43634. Minion is started using the initscript. In version 2014.1.0, Salt will have a
  43635. better solution for these sort of PATH\-related issues, but recompiling the
  43636. software to install it into a location within the PATH should resolve the
  43637. issue in the meantime. Alternatively, you can create a symbolic link within the
  43638. PATH using a \fBfile.symlink\fP state.
  43639. .INDENT 0.0
  43640. .INDENT 3.5
  43641. .sp
  43642. .nf
  43643. .ft C
  43644. /usr/bin/foo:
  43645. file.symlink:
  43646. \- target: /usr/local/bin/foo
  43647. .ft P
  43648. .fi
  43649. .UNINDENT
  43650. .UNINDENT
  43651. .SS Can I run different versions of Salt on my Master and Minion?
  43652. .sp
  43653. This depends on the versions. In general, it is recommended that Master and
  43654. Minion versions match.
  43655. .sp
  43656. When upgrading Salt, the master(s) should always be upgraded first. Backwards
  43657. compatibility for minions running newer versions of salt than their masters is
  43658. not guaranteed.
  43659. .sp
  43660. Whenever possible, backwards compatibility between new masters
  43661. and old minions will be preserved. Generally, the only exception to this
  43662. policy is in case of a security vulnerability.
  43663. .sp
  43664. Recent examples of backwards compatibility breakage include the 0.17.1 release
  43665. (where all backwards compatibility was broken due to a security fix), and the
  43666. 2014.1.0 release (which retained compatibility between 2014.1.0 masters and
  43667. 0.17 minions, but broke compatibility for 2014.1.0 minions and older masters).
  43668. .SS Does Salt support backing up managed files?
  43669. .sp
  43670. Yes. Salt provides an easy to use addition to your file.managed states that
  43671. allow you to back up files via backup_mode,
  43672. backup_mode can be configured on a per state basis, or in the minion config
  43673. (note that if set in the minion config this would simply be the default
  43674. method to use, you still need to specify that the file should be backed up!).
  43675. .SS Is it possible to deploy a file to a specific minion, without other minions having access to it?
  43676. .sp
  43677. The Salt fileserver does not yet support access control, but it is still
  43678. possible to do this. As of Salt 2015.5.0, the
  43679. \fBfile_tree\fP external pillar is available, and
  43680. allows the contents of a file to be loaded as Pillar data. This external pillar
  43681. is capable of assigning Pillar values both to individual minions, and to
  43682. nodegroups\&. See the \fBdocumentation\fP for details on how to set this up.
  43683. .sp
  43684. Once the external pillar has been set up, the data can be pushed to a minion
  43685. via a \fBfile.managed\fP state, using the
  43686. \fBcontents_pillar\fP argument:
  43687. .INDENT 0.0
  43688. .INDENT 3.5
  43689. .sp
  43690. .nf
  43691. .ft C
  43692. /etc/my_super_secret_file:
  43693. file.managed:
  43694. \- user: secret
  43695. \- group: secret
  43696. \- mode: 600
  43697. \- contents_pillar: secret_files:my_super_secret_file
  43698. .ft P
  43699. .fi
  43700. .UNINDENT
  43701. .UNINDENT
  43702. .sp
  43703. In this example, the source file would be located in a directory called
  43704. \fBsecret_files\fP underneath the file_tree path for the minion. The syntax for
  43705. specifying the pillar variable is the same one used for \fBpillar.get\fP, with a colon representing a nested dictionary.
  43706. .sp
  43707. \fBWARNING:\fP
  43708. .INDENT 0.0
  43709. .INDENT 3.5
  43710. Deploying binary contents using the \fBfile.managed\fP state is only supported in Salt 2015.8.4 and
  43711. newer.
  43712. .UNINDENT
  43713. .UNINDENT
  43714. .SS What is the best way to restart a Salt Minion daemon using Salt after upgrade?
  43715. .sp
  43716. Updating the \fBsalt\-minion\fP package requires a restart of the \fBsalt\-minion\fP
  43717. service. But restarting the service while in the middle of a state run
  43718. interrupts the process of the Minion running states and sending results back to
  43719. the Master. A common way to workaround that is to schedule restarting the
  43720. Minion service in the background by issuing a \fBsalt\-call\fP command calling
  43721. \fBservice.restart\fP function. This prevents the Minion being disconnected from
  43722. the Master immediately. Otherwise you would get
  43723. \fBMinion did not return. [Not connected]\fP message as the result of a state run.
  43724. .SS Upgrade without automatic restart
  43725. .sp
  43726. Doing the Minion upgrade seems to be a simplest state in your SLS file at
  43727. first. But the operating systems such as Debian GNU/Linux, Ubuntu and their
  43728. derivatives start the service after the package installation by default.
  43729. To prevent this, we need to create policy layer which will prevent the Minion
  43730. service to restart right after the upgrade:
  43731. .INDENT 0.0
  43732. .INDENT 3.5
  43733. .sp
  43734. .nf
  43735. .ft C
  43736. {%\- if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  43737. Disable starting services:
  43738. file.managed:
  43739. \- name: /usr/sbin/policy\-rc.d
  43740. \- user: root
  43741. \- group: root
  43742. \- mode: 0755
  43743. \- contents:
  43744. \- \(aq#!/bin/sh\(aq
  43745. \- exit 101
  43746. # do not touch if already exists
  43747. \- replace: False
  43748. \- prereq:
  43749. \- pkg: Upgrade Salt Minion
  43750. {%\- endif %}
  43751. Upgrade Salt Minion:
  43752. pkg.installed:
  43753. \- name: salt\-minion
  43754. \- version: 2016.11.3{% if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}+ds\-1{% endif %}
  43755. \- order: last
  43756. Enable Salt Minion:
  43757. service.enabled:
  43758. \- name: salt\-minion
  43759. \- require:
  43760. \- pkg: Upgrade Salt Minion
  43761. {%\- if grains[\(aqos_family\(aq] == \(aqDebian\(aq %}
  43762. Enable starting services:
  43763. file.absent:
  43764. \- name: /usr/sbin/policy\-rc.d
  43765. \- onchanges:
  43766. \- pkg: Upgrade Salt Minion
  43767. {%\- endif %}
  43768. .ft P
  43769. .fi
  43770. .UNINDENT
  43771. .UNINDENT
  43772. .SS Restart using states
  43773. .sp
  43774. Now we can apply the workaround to restart the Minion in reliable way.
  43775. The following example works on UNIX\-like operating systems:
  43776. .INDENT 0.0
  43777. .INDENT 3.5
  43778. .sp
  43779. .nf
  43780. .ft C
  43781. {%\- if grains[\(aqos\(aq] != \(aqWindows\(aq %}
  43782. Restart Salt Minion:
  43783. cmd.run:
  43784. \- name: \(aqsalt\-call service.restart salt\-minion\(aq
  43785. \- bg: True
  43786. \- onchanges:
  43787. \- pkg: Upgrade Salt Minion
  43788. {%\- endif %}
  43789. .ft P
  43790. .fi
  43791. .UNINDENT
  43792. .UNINDENT
  43793. .sp
  43794. Note that restarting the \fBsalt\-minion\fP service on Windows operating systems is
  43795. not always necessary when performing an upgrade. The installer stops the
  43796. \fBsalt\-minion\fP service, removes it, deletes the contents of the \fB\esalt\ebin\fP
  43797. directory, installs the new code, re\-creates the \fBsalt\-minion\fP service, and
  43798. starts it (by default). The restart step \fBwould\fP be necessary during the
  43799. upgrade process, however, if the minion config was edited after the upgrade or
  43800. installation. If a minion restart is necessary, the state above can be edited
  43801. as follows:
  43802. .INDENT 0.0
  43803. .INDENT 3.5
  43804. .sp
  43805. .nf
  43806. .ft C
  43807. Restart Salt Minion:
  43808. cmd.run:
  43809. {%\- if grains[\(aqkernel\(aq] == \(aqWindows\(aq %}
  43810. \- name: \(aqC:\esalt\esalt\-call.bat service.restart salt\-minion\(aq
  43811. {%\- else %}
  43812. \- name: \(aqsalt\-call service.restart salt\-minion\(aq
  43813. {%\- endif %}
  43814. \- bg: True
  43815. \- onchanges:
  43816. \- pkg: Upgrade Salt Minion
  43817. .ft P
  43818. .fi
  43819. .UNINDENT
  43820. .UNINDENT
  43821. .sp
  43822. However, it requires more advanced tricks to upgrade from legacy version of
  43823. Salt (before \fB2016.3.0\fP) on UNIX\-like operating systems, where executing
  43824. commands in the background is not supported. You also may need to schedule
  43825. restarting the Minion service using masterless mode after all other states have been applied for Salt
  43826. versions earlier than \fB2016.11.0\fP\&. This allows the Minion to keep the
  43827. connection to the Master alive for being able to report the final results back
  43828. to the Master, while the service is restarting in the background. This state
  43829. should run last or watch for the \fBpkg\fP state changes:
  43830. .INDENT 0.0
  43831. .INDENT 3.5
  43832. .sp
  43833. .nf
  43834. .ft C
  43835. Restart Salt Minion:
  43836. cmd.run:
  43837. {%\- if grains[\(aqkernel\(aq] == \(aqWindows\(aq %}
  43838. \- name: \(aqstart powershell "Restart\-Service \-Name salt\-minion"\(aq
  43839. {%\- else %}
  43840. # fork and disown the process
  43841. \- name: |\-
  43842. exec 0>&\- # close stdin
  43843. exec 1>&\- # close stdout
  43844. exec 2>&\- # close stderr
  43845. nohup salt\-call \-\-local service.restart salt\-minion &
  43846. {%\- endif %}
  43847. .ft P
  43848. .fi
  43849. .UNINDENT
  43850. .UNINDENT
  43851. .SS Restart using remote executions
  43852. .sp
  43853. Restart the Minion from the command line:
  43854. .INDENT 0.0
  43855. .INDENT 3.5
  43856. .sp
  43857. .nf
  43858. .ft C
  43859. salt \-G kernel:Windows cmd.run_bg \(aqC:\esalt\esalt\-call.bat service.restart salt\-minion\(aq
  43860. salt \-C \(aqnot G@kernel:Windows\(aq cmd.run_bg \(aqsalt\-call service.restart salt\-minion\(aq
  43861. .ft P
  43862. .fi
  43863. .UNINDENT
  43864. .UNINDENT
  43865. .SS Waiting for minions to come back online
  43866. .sp
  43867. A common issue in performing automated restarts of a salt minion, for example during
  43868. an orchestration run, is that it will break the orchestration since the next statement
  43869. is likely to be attempted before the minion is back online. This can be remedied
  43870. by inserting a blocking waiting state that only returns when the selected minions
  43871. are back up (note: this will only work in orchestration states since \fImanage.up\fP
  43872. needs to run on the master):
  43873. .INDENT 0.0
  43874. .INDENT 3.5
  43875. .sp
  43876. .nf
  43877. .ft C
  43878. Wait for salt minion:
  43879. loop.until_no_eval:
  43880. \- name: saltutil.runner
  43881. \- expected:
  43882. \- my_minion
  43883. \- args:
  43884. \- manage.up
  43885. \- kwargs:
  43886. tgt: my_minion
  43887. \- period: 3
  43888. \- init_wait: 3
  43889. .ft P
  43890. .fi
  43891. .UNINDENT
  43892. .UNINDENT
  43893. .sp
  43894. This will, after an initial delay of 3 seconds, execute the \fImanage.up\fP\-runner
  43895. targeted specifically for \fImy_minion\fP\&. It will do this every \fIperiod\fP seconds
  43896. until the \fIexpected\fP data is returned. The default timeout is 60s but can be configured
  43897. as well.
  43898. .SS Salting the Salt Master
  43899. .sp
  43900. In order to configure a master server via states, the Salt master can also be
  43901. "salted" in order to enforce state on the Salt master as well as the Salt
  43902. minions. Salting the Salt master requires a Salt minion to be installed on
  43903. the same machine as the Salt master. Once the Salt minion is installed, the
  43904. minion configuration file must be pointed to the local Salt master:
  43905. .INDENT 0.0
  43906. .INDENT 3.5
  43907. .sp
  43908. .nf
  43909. .ft C
  43910. master: 127.0.0.1
  43911. .ft P
  43912. .fi
  43913. .UNINDENT
  43914. .UNINDENT
  43915. .sp
  43916. Once the Salt master has been "salted" with a Salt minion, it can be targeted
  43917. just like any other minion. If the minion on the salted master is running, the
  43918. minion can be targeted via any usual \fBsalt\fP command. Additionally, the
  43919. \fBsalt\-call\fP command can execute operations to enforce state on the salted
  43920. master without requiring the minion to be running.
  43921. .sp
  43922. More information about salting the Salt master can be found in the salt\-formula
  43923. for salt itself:
  43924. .sp
  43925. \fI\%https://github.com/saltstack\-formulas/salt\-formula\fP
  43926. .sp
  43927. Restarting the \fBsalt\-master\fP service using execution module or application of
  43928. state could be done the same way as for the Salt minion described \fI\%above\fP\&.
  43929. .SS Is Targeting using Grain Data Secure?
  43930. .sp
  43931. Because grains can be set by users that have access to the minion configuration
  43932. files on the local system, grains are considered less secure than other
  43933. identifiers in Salt. Use caution when targeting sensitive operations or setting
  43934. pillar values based on grain data.
  43935. .sp
  43936. The only grain which can be safely used is \fBgrains[\(aqid\(aq]\fP which contains the Minion ID.
  43937. .sp
  43938. When possible, you should target sensitive operations and data using the Minion
  43939. ID. If the Minion ID of a system changes, the Salt Minion\(aqs public key must be
  43940. re\-accepted by an administrator on the Salt Master, making it less vulnerable
  43941. to impersonation attacks.
  43942. .SS Why Did the Value for a Grain Change on Its Own?
  43943. .sp
  43944. This is usually the result of an upstream change in an OS distribution that
  43945. replaces or removes something that Salt was using to detect the grain.
  43946. Fortunately, when this occurs, you can use Salt to fix it with a command
  43947. similar to the following:
  43948. .INDENT 0.0
  43949. .INDENT 3.5
  43950. .sp
  43951. .nf
  43952. .ft C
  43953. salt \-G \(aqgrain:ChangedValue\(aq grains.setvals "{\(aqgrain\(aq: \(aqOldValue\(aq}"
  43954. .ft P
  43955. .fi
  43956. .UNINDENT
  43957. .UNINDENT
  43958. .sp
  43959. (Replacing \fIgrain\fP, \fIChangedValue\fP, and \fIOldValue\fP with
  43960. the grain and values that you want to change / set.)
  43961. .sp
  43962. You should also \fI\%file an issue\fP
  43963. describing the change so it can be fixed in Salt.
  43964. .SS Salt Best Practices
  43965. .sp
  43966. Salt\(aqs extreme flexibility leads to many questions concerning the structure of
  43967. configuration files.
  43968. .sp
  43969. This document exists to clarify these points through examples and
  43970. code.
  43971. .SS General rules
  43972. .INDENT 0.0
  43973. .IP 1. 3
  43974. Modularity and clarity should be emphasized whenever possible.
  43975. .IP 2. 3
  43976. Create clear relations between pillars and states.
  43977. .IP 3. 3
  43978. Use variables when it makes sense but don\(aqt overuse them.
  43979. .IP 4. 3
  43980. Store sensitive data in pillar.
  43981. .IP 5. 3
  43982. Don\(aqt use grains for matching in your pillar top file for any sensitive
  43983. pillars.
  43984. .UNINDENT
  43985. .SS Structuring States and Formulas
  43986. .sp
  43987. When structuring Salt States and Formulas it is important to begin with the
  43988. directory structure. A proper directory structure clearly defines the
  43989. functionality of each state to the user via visual inspection of the state\(aqs
  43990. name.
  43991. .sp
  43992. Reviewing the \fI\%MySQL Salt Formula\fP
  43993. it is clear to see the benefits to the end\-user when reviewing a sample of the
  43994. available states:
  43995. .INDENT 0.0
  43996. .INDENT 3.5
  43997. .sp
  43998. .nf
  43999. .ft C
  44000. /srv/salt/mysql/files/
  44001. /srv/salt/mysql/client.sls
  44002. /srv/salt/mysql/map.jinja
  44003. /srv/salt/mysql/python.sls
  44004. /srv/salt/mysql/server.sls
  44005. .ft P
  44006. .fi
  44007. .UNINDENT
  44008. .UNINDENT
  44009. .sp
  44010. This directory structure would lead to these states being referenced in a top
  44011. file in the following way:
  44012. .INDENT 0.0
  44013. .INDENT 3.5
  44014. .sp
  44015. .nf
  44016. .ft C
  44017. base:
  44018. \(aqweb*\(aq:
  44019. \- mysql.client
  44020. \- mysql.python
  44021. \(aqdb*\(aq:
  44022. \- mysql.server
  44023. .ft P
  44024. .fi
  44025. .UNINDENT
  44026. .UNINDENT
  44027. .sp
  44028. This clear definition ensures that the user is properly informed of what each
  44029. state will do.
  44030. .sp
  44031. Another example comes from the \fI\%vim\-formula\fP:
  44032. .INDENT 0.0
  44033. .INDENT 3.5
  44034. .sp
  44035. .nf
  44036. .ft C
  44037. /srv/salt/vim/files/
  44038. /srv/salt/vim/absent.sls
  44039. /srv/salt/vim/init.sls
  44040. /srv/salt/vim/map.jinja
  44041. /srv/salt/vim/nerdtree.sls
  44042. /srv/salt/vim/pyflakes.sls
  44043. /srv/salt/vim/salt.sls
  44044. .ft P
  44045. .fi
  44046. .UNINDENT
  44047. .UNINDENT
  44048. .sp
  44049. Once again viewing how this would look in a top file:
  44050. .sp
  44051. /srv/salt/top.sls:
  44052. .INDENT 0.0
  44053. .INDENT 3.5
  44054. .sp
  44055. .nf
  44056. .ft C
  44057. base:
  44058. \(aqweb*\(aq:
  44059. \- vim
  44060. \- vim.nerdtree
  44061. \- vim.pyflakes
  44062. \- vim.salt
  44063. \(aqdb*\(aq:
  44064. \- vim.absent
  44065. .ft P
  44066. .fi
  44067. .UNINDENT
  44068. .UNINDENT
  44069. .sp
  44070. The usage of a clear top\-level directory as well as properly named states
  44071. reduces the overall complexity and leads a user to both understand what will
  44072. be included at a glance and where it is located.
  44073. .sp
  44074. In addition Formulas should
  44075. be used as often as possible.
  44076. .sp
  44077. \fBNOTE:\fP
  44078. .INDENT 0.0
  44079. .INDENT 3.5
  44080. Formulas repositories on the saltstack\-formulas GitHub organization should
  44081. not be pointed to directly from systems that automatically fetch new
  44082. updates such as GitFS or similar tooling. Instead formulas repositories
  44083. should be forked on GitHub or cloned locally, where unintended, automatic
  44084. changes will not take place.
  44085. .UNINDENT
  44086. .UNINDENT
  44087. .SS Structuring Pillar Files
  44088. .sp
  44089. Pillars are used to store
  44090. secure and insecure data pertaining to minions. When designing the structure
  44091. of the \fB/srv/pillar\fP directory, the pillars contained within
  44092. should once again be focused on clear and concise data which users can easily
  44093. review, modify, and understand.
  44094. .sp
  44095. The \fB/srv/pillar/\fP directory is primarily controlled by \fBtop.sls\fP\&. It
  44096. should be noted that the pillar \fBtop.sls\fP is not used as a location to
  44097. declare variables and their values. The \fBtop.sls\fP is used as a way to
  44098. include other pillar files and organize the way they are matched based on
  44099. environments or grains.
  44100. .sp
  44101. An example \fBtop.sls\fP may be as simple as the following:
  44102. .sp
  44103. /srv/pillar/top.sls:
  44104. .INDENT 0.0
  44105. .INDENT 3.5
  44106. .sp
  44107. .nf
  44108. .ft C
  44109. base:
  44110. \(aq*\(aq:
  44111. \- packages
  44112. .ft P
  44113. .fi
  44114. .UNINDENT
  44115. .UNINDENT
  44116. .sp
  44117. Any number of matchers can be added to the base environment. For example, here
  44118. is an expanded version of the Pillar top file stated above:
  44119. .sp
  44120. /srv/pillar/top.sls:
  44121. .INDENT 0.0
  44122. .INDENT 3.5
  44123. .sp
  44124. .nf
  44125. .ft C
  44126. base:
  44127. \(aq*\(aq:
  44128. \- packages
  44129. \(aqweb*\(aq:
  44130. \- apache
  44131. \- vim
  44132. .ft P
  44133. .fi
  44134. .UNINDENT
  44135. .UNINDENT
  44136. .sp
  44137. Or an even more complicated example, using a variety of matchers in numerous
  44138. environments:
  44139. .sp
  44140. /srv/pillar/top.sls:
  44141. .INDENT 0.0
  44142. .INDENT 3.5
  44143. .sp
  44144. .nf
  44145. .ft C
  44146. base:
  44147. \(aq*\(aq:
  44148. \- apache
  44149. dev:
  44150. \(aqos:Debian\(aq:
  44151. \- match: grain
  44152. \- vim
  44153. test:
  44154. \(aq* and not G@os: Debian\(aq:
  44155. \- match: compound
  44156. \- emacs
  44157. .ft P
  44158. .fi
  44159. .UNINDENT
  44160. .UNINDENT
  44161. .sp
  44162. It is clear to see through these examples how the top file provides users with
  44163. power but when used incorrectly it can lead to confusing configurations. This
  44164. is why it is important to understand that the top file for pillar is not used
  44165. for variable definitions.
  44166. .sp
  44167. Each SLS file within the \fB/srv/pillar/\fP directory should correspond to the
  44168. states which it matches.
  44169. .sp
  44170. This would mean that the \fBapache\fP pillar file should contain data relevant to
  44171. Apache. Structuring files in this way once again ensures modularity, and
  44172. creates a consistent understanding throughout our Salt environment. Users can
  44173. expect that pillar variables found in an Apache state will live inside of an
  44174. Apache pillar:
  44175. .sp
  44176. \fB/srv/pillar/apache.sls\fP:
  44177. .INDENT 0.0
  44178. .INDENT 3.5
  44179. .sp
  44180. .nf
  44181. .ft C
  44182. apache:
  44183. lookup:
  44184. name: httpd
  44185. config:
  44186. tmpl: /etc/httpd/httpd.conf
  44187. .ft P
  44188. .fi
  44189. .UNINDENT
  44190. .UNINDENT
  44191. .sp
  44192. While this pillar file is simple, it shows how a pillar file explicitly
  44193. relates to the state it is associated with.
  44194. .SS Variable Flexibility
  44195. .sp
  44196. Salt allows users to define variables in SLS files. When creating a state
  44197. variables should provide users with as much flexibility as possible. This
  44198. means that variables should be clearly defined and easy to manipulate, and
  44199. that sane defaults should exist in the event a variable is not properly
  44200. defined. Looking at several examples shows how these different items can
  44201. lead to extensive flexibility.
  44202. .sp
  44203. Although it is possible to set variables locally, this is generally not
  44204. preferred:
  44205. .sp
  44206. \fB/srv/salt/apache/conf.sls\fP:
  44207. .INDENT 0.0
  44208. .INDENT 3.5
  44209. .sp
  44210. .nf
  44211. .ft C
  44212. {% set name = \(aqhttpd\(aq %}
  44213. {% set tmpl = \(aqsalt://apache/files/httpd.conf\(aq %}
  44214. include:
  44215. \- apache
  44216. apache_conf:
  44217. file.managed:
  44218. \- name: {{ name }}
  44219. \- source: {{ tmpl }}
  44220. \- template: jinja
  44221. \- user: root
  44222. \- watch_in:
  44223. \- service: apache
  44224. .ft P
  44225. .fi
  44226. .UNINDENT
  44227. .UNINDENT
  44228. .sp
  44229. When generating this information it can be easily transitioned to the pillar
  44230. where data can be overwritten, modified, and applied to multiple states, or
  44231. locations within a single state:
  44232. .sp
  44233. \fB/srv/pillar/apache.sls\fP:
  44234. .INDENT 0.0
  44235. .INDENT 3.5
  44236. .sp
  44237. .nf
  44238. .ft C
  44239. apache:
  44240. lookup:
  44241. name: httpd
  44242. config:
  44243. tmpl: salt://apache/files/httpd.conf
  44244. .ft P
  44245. .fi
  44246. .UNINDENT
  44247. .UNINDENT
  44248. .sp
  44249. \fB/srv/salt/apache/conf.sls\fP:
  44250. .INDENT 0.0
  44251. .INDENT 3.5
  44252. .sp
  44253. .nf
  44254. .ft C
  44255. {% from "apache/map.jinja" import apache with context %}
  44256. include:
  44257. \- apache
  44258. apache_conf:
  44259. file.managed:
  44260. \- name: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:name\(aq) }}
  44261. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44262. \- template: jinja
  44263. \- user: root
  44264. \- watch_in:
  44265. \- service: apache
  44266. .ft P
  44267. .fi
  44268. .UNINDENT
  44269. .UNINDENT
  44270. .sp
  44271. This flexibility provides users with a centralized location to modify
  44272. variables, which is extremely important as an environment grows.
  44273. .SS Modularity Within States
  44274. .sp
  44275. Ensuring that states are modular is one of the key concepts to understand
  44276. within Salt. When creating a state a user must consider how many times the
  44277. state could be re\-used, and what it relies on to operate. Below are several
  44278. examples which will iteratively explain how a user can go from a state which
  44279. is not very modular to one that is:
  44280. .sp
  44281. \fB/srv/salt/apache/init.sls\fP:
  44282. .INDENT 0.0
  44283. .INDENT 3.5
  44284. .sp
  44285. .nf
  44286. .ft C
  44287. httpd:
  44288. pkg:
  44289. \- installed
  44290. service.running:
  44291. \- enable: True
  44292. /etc/httpd/httpd.conf:
  44293. file.managed:
  44294. \- source: salt://apache/files/httpd.conf
  44295. \- template: jinja
  44296. \- watch_in:
  44297. \- service: httpd
  44298. .ft P
  44299. .fi
  44300. .UNINDENT
  44301. .UNINDENT
  44302. .sp
  44303. The example above is probably the worst\-case scenario when writing a state.
  44304. There is a clear lack of focus by naming both the pkg/service, and managed
  44305. file directly as the state ID. This would lead to changing multiple requires
  44306. within this state, as well as others that may depend upon the state.
  44307. .sp
  44308. Imagine if a require was used for the \fBhttpd\fP package in another state, and
  44309. then suddenly it\(aqs a custom package. Now changes need to be made in multiple
  44310. locations which increases the complexity and leads to a more error prone
  44311. configuration.
  44312. .sp
  44313. There is also the issue of having the configuration file located in the init,
  44314. as a user would be unable to simply install the service and use the default
  44315. conf file.
  44316. .sp
  44317. Our second revision begins to address the referencing by using \fB\- name\fP, as
  44318. opposed to direct ID references:
  44319. .sp
  44320. \fB/srv/salt/apache/init.sls\fP:
  44321. .INDENT 0.0
  44322. .INDENT 3.5
  44323. .sp
  44324. .nf
  44325. .ft C
  44326. apache:
  44327. pkg.installed:
  44328. \- name: httpd
  44329. service.running:
  44330. \- name: httpd
  44331. \- enable: True
  44332. apache_conf:
  44333. file.managed:
  44334. \- name: /etc/httpd/httpd.conf
  44335. \- source: salt://apache/files/httpd.conf
  44336. \- template: jinja
  44337. \- watch_in:
  44338. \- service: apache
  44339. .ft P
  44340. .fi
  44341. .UNINDENT
  44342. .UNINDENT
  44343. .sp
  44344. The above init file is better than our original, yet it has several issues
  44345. which lead to a lack of modularity. The first of these problems is the usage
  44346. of static values for items such as the name of the service, the name of the
  44347. managed file, and the source of the managed file. When these items are hard
  44348. coded they become difficult to modify and the opportunity to make mistakes
  44349. arises. It also leads to multiple edits that need to occur when changing
  44350. these items (imagine if there were dozens of these occurrences throughout the
  44351. state!). There is also still the concern of the configuration file data living
  44352. in the same state as the service and package.
  44353. .sp
  44354. In the next example steps will be taken to begin addressing these issues.
  44355. Starting with the addition of a map.jinja file (as noted in the
  44356. Formula documentation), and
  44357. modification of static values:
  44358. .sp
  44359. \fB/srv/salt/apache/map.jinja\fP:
  44360. .INDENT 0.0
  44361. .INDENT 3.5
  44362. .sp
  44363. .nf
  44364. .ft C
  44365. {% set apache = salt[\(aqgrains.filter_by\(aq]({
  44366. \(aqDebian\(aq: {
  44367. \(aqserver\(aq: \(aqapache2\(aq,
  44368. \(aqservice\(aq: \(aqapache2\(aq,
  44369. \(aqconf\(aq: \(aq/etc/apache2/apache.conf\(aq,
  44370. },
  44371. \(aqRedHat\(aq: {
  44372. \(aqserver\(aq: \(aqhttpd\(aq,
  44373. \(aqservice\(aq: \(aqhttpd\(aq,
  44374. \(aqconf\(aq: \(aq/etc/httpd/httpd.conf\(aq,
  44375. },
  44376. }, merge=salt[\(aqpillar.get\(aq](\(aqapache:lookup\(aq)) %}
  44377. .ft P
  44378. .fi
  44379. .UNINDENT
  44380. .UNINDENT
  44381. .sp
  44382. /srv/pillar/apache.sls:
  44383. .INDENT 0.0
  44384. .INDENT 3.5
  44385. .sp
  44386. .nf
  44387. .ft C
  44388. apache:
  44389. lookup:
  44390. config:
  44391. tmpl: salt://apache/files/httpd.conf
  44392. .ft P
  44393. .fi
  44394. .UNINDENT
  44395. .UNINDENT
  44396. .sp
  44397. \fB/srv/salt/apache/init.sls\fP:
  44398. .INDENT 0.0
  44399. .INDENT 3.5
  44400. .sp
  44401. .nf
  44402. .ft C
  44403. {% from "apache/map.jinja" import apache with context %}
  44404. apache:
  44405. pkg.installed:
  44406. \- name: {{ apache.server }}
  44407. service.running:
  44408. \- name: {{ apache.service }}
  44409. \- enable: True
  44410. apache_conf:
  44411. file.managed:
  44412. \- name: {{ apache.conf }}
  44413. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44414. \- template: jinja
  44415. \- user: root
  44416. \- watch_in:
  44417. \- service: apache
  44418. .ft P
  44419. .fi
  44420. .UNINDENT
  44421. .UNINDENT
  44422. .sp
  44423. The changes to this state now allow us to easily identify the location of the
  44424. variables, as well as ensuring they are flexible and easy to modify.
  44425. While this takes another step in the right direction, it is not yet complete.
  44426. Suppose the user did not want to use the provided conf file, or even their own
  44427. configuration file, but the default apache conf. With the current state setup
  44428. this is not possible. To attain this level of modularity this state will need
  44429. to be broken into two states.
  44430. .sp
  44431. \fB/srv/salt/apache/map.jinja\fP:
  44432. .INDENT 0.0
  44433. .INDENT 3.5
  44434. .sp
  44435. .nf
  44436. .ft C
  44437. {% set apache = salt[\(aqgrains.filter_by\(aq]({
  44438. \(aqDebian\(aq: {
  44439. \(aqserver\(aq: \(aqapache2\(aq,
  44440. \(aqservice\(aq: \(aqapache2\(aq,
  44441. \(aqconf\(aq: \(aq/etc/apache2/apache.conf\(aq,
  44442. },
  44443. \(aqRedHat\(aq: {
  44444. \(aqserver\(aq: \(aqhttpd\(aq,
  44445. \(aqservice\(aq: \(aqhttpd\(aq,
  44446. \(aqconf\(aq: \(aq/etc/httpd/httpd.conf\(aq,
  44447. },
  44448. }, merge=salt[\(aqpillar.get\(aq](\(aqapache:lookup\(aq)) %}
  44449. .ft P
  44450. .fi
  44451. .UNINDENT
  44452. .UNINDENT
  44453. .sp
  44454. \fB/srv/pillar/apache.sls\fP:
  44455. .INDENT 0.0
  44456. .INDENT 3.5
  44457. .sp
  44458. .nf
  44459. .ft C
  44460. apache:
  44461. lookup:
  44462. config:
  44463. tmpl: salt://apache/files/httpd.conf
  44464. .ft P
  44465. .fi
  44466. .UNINDENT
  44467. .UNINDENT
  44468. .sp
  44469. \fB/srv/salt/apache/init.sls\fP:
  44470. .INDENT 0.0
  44471. .INDENT 3.5
  44472. .sp
  44473. .nf
  44474. .ft C
  44475. {% from "apache/map.jinja" import apache with context %}
  44476. apache:
  44477. pkg.installed:
  44478. \- name: {{ apache.server }}
  44479. service.running:
  44480. \- name: {{ apache.service }}
  44481. \- enable: True
  44482. .ft P
  44483. .fi
  44484. .UNINDENT
  44485. .UNINDENT
  44486. .sp
  44487. \fB/srv/salt/apache/conf.sls\fP:
  44488. .INDENT 0.0
  44489. .INDENT 3.5
  44490. .sp
  44491. .nf
  44492. .ft C
  44493. {% from "apache/map.jinja" import apache with context %}
  44494. include:
  44495. \- apache
  44496. apache_conf:
  44497. file.managed:
  44498. \- name: {{ apache.conf }}
  44499. \- source: {{ salt[\(aqpillar.get\(aq](\(aqapache:lookup:config:tmpl\(aq) }}
  44500. \- template: jinja
  44501. \- user: root
  44502. \- watch_in:
  44503. \- service: apache
  44504. .ft P
  44505. .fi
  44506. .UNINDENT
  44507. .UNINDENT
  44508. .sp
  44509. This new structure now allows users to choose whether they only wish to
  44510. install the default Apache, or if they wish, overwrite the default package,
  44511. service, configuration file location, or the configuration file itself. In
  44512. addition to this the data has been broken between multiple files allowing for
  44513. users to identify where they need to change the associated data.
  44514. .SS Storing Secure Data
  44515. .sp
  44516. Secure data refers to any information that you would not wish to share with
  44517. anyone accessing a server. This could include data such as passwords,
  44518. keys, or other information.
  44519. .sp
  44520. As all data within a state is accessible by EVERY server that is connected
  44521. it is important to store secure data within pillar. This will ensure that only
  44522. those servers which require this secure data have access to it. In this
  44523. example a use can go from an insecure configuration to one which is only
  44524. accessible by the appropriate hosts:
  44525. .sp
  44526. \fB/srv/salt/mysql/testerdb.sls\fP:
  44527. .INDENT 0.0
  44528. .INDENT 3.5
  44529. .sp
  44530. .nf
  44531. .ft C
  44532. testdb:
  44533. mysql_database.present:
  44534. \- name: testerdb
  44535. .ft P
  44536. .fi
  44537. .UNINDENT
  44538. .UNINDENT
  44539. .sp
  44540. \fB/srv/salt/mysql/user.sls\fP:
  44541. .INDENT 0.0
  44542. .INDENT 3.5
  44543. .sp
  44544. .nf
  44545. .ft C
  44546. include:
  44547. \- mysql.testerdb
  44548. testdb_user:
  44549. mysql_user.present:
  44550. \- name: frank
  44551. \- password: "test3rdb"
  44552. \- host: localhost
  44553. \- require:
  44554. \- sls: mysql.testerdb
  44555. .ft P
  44556. .fi
  44557. .UNINDENT
  44558. .UNINDENT
  44559. .sp
  44560. Many users would review this state and see that the password is there in plain
  44561. text, which is quite problematic. It results in several issues which may not
  44562. be immediately visible.
  44563. .sp
  44564. The first of these issues is clear to most users \-\- the password being visible
  44565. in this state. This means that any minion will have a copy of this, and
  44566. therefore the password which is a major security concern as minions may not
  44567. be locked down as tightly as the master server.
  44568. .sp
  44569. The other issue that can be encountered is access by users on the master. If
  44570. everyone has access to the states (or their repository), then they are able to
  44571. review this password. Keeping your password data accessible by only a few
  44572. users is critical for both security and peace of mind.
  44573. .sp
  44574. There is also the issue of portability. When a state is configured this way
  44575. it results in multiple changes needing to be made. This was discussed in the
  44576. sections above but it is a critical idea to drive home. If states are not
  44577. portable it may result in more work later!
  44578. .sp
  44579. Fixing this issue is relatively simple, the content just needs to be moved to
  44580. the associated pillar:
  44581. .sp
  44582. \fB/srv/pillar/mysql.sls\fP:
  44583. .INDENT 0.0
  44584. .INDENT 3.5
  44585. .sp
  44586. .nf
  44587. .ft C
  44588. mysql:
  44589. lookup:
  44590. name: testerdb
  44591. password: test3rdb
  44592. user: frank
  44593. host: localhost
  44594. .ft P
  44595. .fi
  44596. .UNINDENT
  44597. .UNINDENT
  44598. .sp
  44599. \fB/srv/salt/mysql/testerdb.sls\fP:
  44600. .INDENT 0.0
  44601. .INDENT 3.5
  44602. .sp
  44603. .nf
  44604. .ft C
  44605. testdb:
  44606. mysql_database.present:
  44607. \- name: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:name\(aq) }}
  44608. .ft P
  44609. .fi
  44610. .UNINDENT
  44611. .UNINDENT
  44612. .sp
  44613. \fB/srv/salt/mysql/user.sls\fP:
  44614. .INDENT 0.0
  44615. .INDENT 3.5
  44616. .sp
  44617. .nf
  44618. .ft C
  44619. include:
  44620. \- mysql.testerdb
  44621. testdb_user:
  44622. mysql_user.present:
  44623. \- name: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:user\(aq) }}
  44624. \- password: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:password\(aq) }}
  44625. \- host: {{ salt[\(aqpillar.get\(aq](\(aqmysql:lookup:host\(aq) }}
  44626. \- require:
  44627. \- sls: mysql.testerdb
  44628. .ft P
  44629. .fi
  44630. .UNINDENT
  44631. .UNINDENT
  44632. .sp
  44633. Now that the database details have been moved to the associated pillar file,
  44634. only machines which are targeted via pillar will have access to these details.
  44635. Access to users who should not be able to review these details can also be
  44636. prevented while ensuring that they are still able to write states which take
  44637. advantage of this information.
  44638. .SH REMOTE EXECUTION
  44639. .sp
  44640. Running pre\-defined or arbitrary commands on remote hosts, also known as
  44641. remote execution, is the core function of Salt. The following links explore
  44642. modules and returners, which are two key elements of remote execution.
  44643. .sp
  44644. \fBSalt Execution Modules\fP
  44645. .sp
  44646. Salt execution modules are called by the remote execution system to perform
  44647. a wide variety of tasks. These modules provide functionality such as installing
  44648. packages, restarting a service, running a remote command, transferring files,
  44649. and so on.
  44650. .INDENT 0.0
  44651. .INDENT 3.5
  44652. .INDENT 0.0
  44653. .TP
  44654. .B Full list of execution modules
  44655. Contains: a list of core modules that ship with Salt.
  44656. .TP
  44657. .B Writing execution modules
  44658. Contains: a guide on how to write Salt modules.
  44659. .UNINDENT
  44660. .UNINDENT
  44661. .UNINDENT
  44662. .SS Running Commands on Salt Minions
  44663. .sp
  44664. Salt can be controlled by a command line client by the root user on the Salt
  44665. master. The Salt command line client uses the Salt client API to communicate
  44666. with the Salt master server. The Salt client is straightforward and simple
  44667. to use.
  44668. .sp
  44669. Using the Salt client commands can be easily sent to the minions.
  44670. .sp
  44671. Each of these commands accepts an explicit \fI\-\-config\fP option to point to either
  44672. the master or minion configuration file. If this option is not provided and
  44673. the default configuration file does not exist then Salt falls back to use the
  44674. environment variables \fBSALT_MASTER_CONFIG\fP and \fBSALT_MINION_CONFIG\fP\&.
  44675. .sp
  44676. \fBSEE ALSO:\fP
  44677. .INDENT 0.0
  44678. .INDENT 3.5
  44679. Configuration
  44680. .UNINDENT
  44681. .UNINDENT
  44682. .SS Using the Salt Command
  44683. .sp
  44684. The Salt command needs a few components to send information to the Salt
  44685. minions. The target minions need to be defined, the function to call and any
  44686. arguments the function requires.
  44687. .SS Defining the Target Minions
  44688. .sp
  44689. The first argument passed to salt, defines the target minions, the target
  44690. minions are accessed via their hostname. The default target type is a bash
  44691. glob:
  44692. .INDENT 0.0
  44693. .INDENT 3.5
  44694. .sp
  44695. .nf
  44696. .ft C
  44697. salt \(aq*foo.com\(aq sys.doc
  44698. .ft P
  44699. .fi
  44700. .UNINDENT
  44701. .UNINDENT
  44702. .sp
  44703. Salt can also define the target minions with regular expressions:
  44704. .INDENT 0.0
  44705. .INDENT 3.5
  44706. .sp
  44707. .nf
  44708. .ft C
  44709. salt \-E \(aq.*\(aq cmd.run \(aqls \-l | grep foo\(aq
  44710. .ft P
  44711. .fi
  44712. .UNINDENT
  44713. .UNINDENT
  44714. .sp
  44715. Or to explicitly list hosts, salt can take a list:
  44716. .INDENT 0.0
  44717. .INDENT 3.5
  44718. .sp
  44719. .nf
  44720. .ft C
  44721. salt \-L foo.bar.baz,quo.qux cmd.run \(aqps aux | grep foo\(aq
  44722. .ft P
  44723. .fi
  44724. .UNINDENT
  44725. .UNINDENT
  44726. .SS More Powerful Targets
  44727. .sp
  44728. See Targeting\&.
  44729. .SS Calling the Function
  44730. .sp
  44731. The function to call on the specified target is placed after the target
  44732. specification.
  44733. .sp
  44734. New in version 0.9.8.
  44735. .sp
  44736. Functions may also accept arguments, space\-delimited:
  44737. .INDENT 0.0
  44738. .INDENT 3.5
  44739. .sp
  44740. .nf
  44741. .ft C
  44742. salt \(aq*\(aq cmd.exec_code python \(aqimport sys; print sys.version\(aq
  44743. .ft P
  44744. .fi
  44745. .UNINDENT
  44746. .UNINDENT
  44747. .sp
  44748. Optional, keyword arguments are also supported:
  44749. .INDENT 0.0
  44750. .INDENT 3.5
  44751. .sp
  44752. .nf
  44753. .ft C
  44754. salt \(aq*\(aq pip.install salt timeout=5 upgrade=True
  44755. .ft P
  44756. .fi
  44757. .UNINDENT
  44758. .UNINDENT
  44759. .sp
  44760. They are always in the form of \fBkwarg=argument\fP\&.
  44761. .sp
  44762. Arguments are formatted as YAML:
  44763. .INDENT 0.0
  44764. .INDENT 3.5
  44765. .sp
  44766. .nf
  44767. .ft C
  44768. salt \(aq*\(aq cmd.run \(aqecho "Hello: $FIRST_NAME"\(aq env=\(aq{FIRST_NAME: "Joe"}\(aq
  44769. .ft P
  44770. .fi
  44771. .UNINDENT
  44772. .UNINDENT
  44773. .sp
  44774. Note: dictionaries must have curly braces around them (like the \fBenv\fP
  44775. keyword argument above). This was changed in 0.15.1: in the above example,
  44776. the first argument used to be parsed as the dictionary
  44777. \fB{\(aqecho "Hello\(aq: \(aq$FIRST_NAME"\(aq}\fP\&. This was generally not the expected
  44778. behavior.
  44779. .sp
  44780. If you want to test what parameters are actually passed to a module, use the
  44781. \fBtest.arg_repr\fP command:
  44782. .INDENT 0.0
  44783. .INDENT 3.5
  44784. .sp
  44785. .nf
  44786. .ft C
  44787. salt \(aq*\(aq test.arg_repr \(aqecho "Hello: $FIRST_NAME"\(aq env=\(aq{FIRST_NAME: "Joe"}\(aq
  44788. .ft P
  44789. .fi
  44790. .UNINDENT
  44791. .UNINDENT
  44792. .SS Finding available minion functions
  44793. .sp
  44794. The Salt functions are self documenting, all of the function documentation can
  44795. be retried from the minions via the \fBsys.doc()\fP function:
  44796. .INDENT 0.0
  44797. .INDENT 3.5
  44798. .sp
  44799. .nf
  44800. .ft C
  44801. salt \(aq*\(aq sys.doc
  44802. .ft P
  44803. .fi
  44804. .UNINDENT
  44805. .UNINDENT
  44806. .SS Compound Command Execution
  44807. .sp
  44808. If a series of commands needs to be sent to a single target specification then
  44809. the commands can be sent in a single publish. This can make gathering
  44810. groups of information faster, and lowers the stress on the network for repeated
  44811. commands.
  44812. .sp
  44813. Compound command execution works by sending a list of functions and arguments
  44814. instead of sending a single function and argument. The functions are executed
  44815. on the minion in the order they are defined on the command line, and then the
  44816. data from all of the commands are returned in a dictionary. This means that
  44817. the set of commands are called in a predictable way, and the returned data can
  44818. be easily interpreted.
  44819. .sp
  44820. Executing compound commands if done by passing a comma delimited list of
  44821. functions, followed by a comma delimited list of arguments:
  44822. .INDENT 0.0
  44823. .INDENT 3.5
  44824. .sp
  44825. .nf
  44826. .ft C
  44827. salt \(aq*\(aq cmd.run,test.ping,test.echo \(aqcat /proc/cpuinfo\(aq,,foo
  44828. .ft P
  44829. .fi
  44830. .UNINDENT
  44831. .UNINDENT
  44832. .sp
  44833. The trick to look out for here, is that if a function is being passed no
  44834. arguments, then there needs to be a placeholder for the absent arguments. This
  44835. is why in the above example, there are two commas right next to each other.
  44836. \fBtest.ping\fP takes no arguments, so we need to add another comma, otherwise
  44837. Salt would attempt to pass "foo" to \fBtest.ping\fP\&.
  44838. .sp
  44839. If you need to pass arguments that include commas, then make sure you add
  44840. spaces around the commas that separate arguments. For example:
  44841. .INDENT 0.0
  44842. .INDENT 3.5
  44843. .sp
  44844. .nf
  44845. .ft C
  44846. salt \(aq*\(aq cmd.run,test.ping,test.echo \(aqecho "1,2,3"\(aq , , foo
  44847. .ft P
  44848. .fi
  44849. .UNINDENT
  44850. .UNINDENT
  44851. .sp
  44852. You may change the arguments separator using the \fB\-\-args\-separator\fP option:
  44853. .INDENT 0.0
  44854. .INDENT 3.5
  44855. .sp
  44856. .nf
  44857. .ft C
  44858. salt \-\-args\-separator=:: \(aq*\(aq some.fun,test.echo params with , comma :: foo
  44859. .ft P
  44860. .fi
  44861. .UNINDENT
  44862. .UNINDENT
  44863. .SS CLI Completion
  44864. .sp
  44865. Shell completion scripts for the Salt CLI are available in the \fBpkg\fP Salt
  44866. \fI\%source directory\fP\&.
  44867. .SS Writing Execution Modules
  44868. .sp
  44869. Salt execution modules are the functions called by the \fBsalt\fP command.
  44870. .SS Modules Are Easy to Write!
  44871. .sp
  44872. Writing Salt execution modules is straightforward.
  44873. .sp
  44874. A Salt execution module is a Python or \fI\%Cython\fP module placed in a directory
  44875. called \fB_modules/\fP at the root of the Salt fileserver. When using the default
  44876. fileserver backend (i.e. \fBroots\fP), unless
  44877. environments are otherwise defined in the \fBfile_roots\fP config
  44878. option, the \fB_modules/\fP directory would be located in \fB/srv/salt/_modules\fP
  44879. on most systems.
  44880. .sp
  44881. Modules placed in \fB_modules/\fP will be synced to the minions when any of the
  44882. following Salt functions are called:
  44883. .INDENT 0.0
  44884. .IP \(bu 2
  44885. \fBstate.highstate\fP (or \fBstate.apply\fP with no state argument)
  44886. .IP \(bu 2
  44887. \fBsaltutil.sync_modules\fP
  44888. .IP \(bu 2
  44889. \fBsaltutil.sync_all\fP
  44890. .UNINDENT
  44891. .sp
  44892. Modules placed in \fB_modules/\fP will be synced to masters when any of the
  44893. following Salt runners are called:
  44894. .INDENT 0.0
  44895. .IP \(bu 2
  44896. \fBsaltutil.sync_modules\fP
  44897. .IP \(bu 2
  44898. \fBsaltutil.sync_all\fP
  44899. .UNINDENT
  44900. .sp
  44901. Note that a module\(aqs default name is its filename
  44902. (i.e. \fBfoo.py\fP becomes module \fBfoo\fP), but that its name can be overridden
  44903. by using a \fI\%__virtual__ function\fP\&.
  44904. .sp
  44905. If a Salt module has errors and cannot be imported, the Salt minion will continue
  44906. to load without issue and the module with errors will simply be omitted.
  44907. .sp
  44908. If adding a Cython module the file must be named \fB<modulename>.pyx\fP so that
  44909. the loader knows that the module needs to be imported as a Cython module. The
  44910. compilation of the Cython module is automatic and happens when the minion
  44911. starts, so only the \fB*.pyx\fP file is required.
  44912. .SS Zip Archives as Modules
  44913. .sp
  44914. Python 2.3 and higher allows developers to directly import zip archives
  44915. containing Python code. By setting \fBenable_zip_modules\fP to
  44916. \fBTrue\fP in the minion config, the Salt loader will be able to import \fB\&.zip\fP
  44917. files in this fashion. This allows Salt module developers to package
  44918. dependencies with their modules for ease of deployment, isolation, etc.
  44919. .sp
  44920. For a user, Zip Archive modules behave just like other modules. When executing
  44921. a function from a module provided as the file \fBmy_module.zip\fP, a user would
  44922. call a function within that module as \fBmy_module.<function>\fP\&.
  44923. .SS Creating a Zip Archive Module
  44924. .sp
  44925. A Zip Archive module is structured similarly to a simple \fI\%Python package\fP\&.
  44926. The \fB\&.zip\fP file contains a single directory with the same name as the module.
  44927. The module code traditionally in \fB<module_name>.py\fP goes in
  44928. \fB<module_name>/__init__.py\fP\&. The dependency packages are subdirectories of
  44929. \fB<module_name>/\fP\&.
  44930. .sp
  44931. Here is an example directory structure for the \fBlumberjack\fP module, which has
  44932. two library dependencies (\fBsleep\fP and \fBwork\fP) to be included.
  44933. .INDENT 0.0
  44934. .INDENT 3.5
  44935. .sp
  44936. .nf
  44937. .ft C
  44938. modules $ ls \-R lumberjack
  44939. __init__.py sleep work
  44940. lumberjack/sleep:
  44941. __init__.py
  44942. lumberjack/work:
  44943. __init__.py
  44944. .ft P
  44945. .fi
  44946. .UNINDENT
  44947. .UNINDENT
  44948. .sp
  44949. The contents of \fBlumberjack/__init__.py\fP show how to import and use these
  44950. included libraries.
  44951. .INDENT 0.0
  44952. .INDENT 3.5
  44953. .sp
  44954. .nf
  44955. .ft C
  44956. # Libraries included in lumberjack.zip
  44957. from lumberjack import sleep, work
  44958. def is_ok(person):
  44959. \(aq\(aq\(aq Checks whether a person is really a lumberjack \(aq\(aq\(aq
  44960. return sleep.all_night(person) and work.all_day(person)
  44961. .ft P
  44962. .fi
  44963. .UNINDENT
  44964. .UNINDENT
  44965. .sp
  44966. Then, create the zip:
  44967. .INDENT 0.0
  44968. .INDENT 3.5
  44969. .sp
  44970. .nf
  44971. .ft C
  44972. modules $ zip \-r lumberjack lumberjack
  44973. adding: lumberjack/ (stored 0%)
  44974. adding: lumberjack/__init__.py (deflated 39%)
  44975. adding: lumberjack/sleep/ (stored 0%)
  44976. adding: lumberjack/sleep/__init__.py (deflated 7%)
  44977. adding: lumberjack/work/ (stored 0%)
  44978. adding: lumberjack/work/__init__.py (deflated 7%)
  44979. modules $ unzip \-l lumberjack.zip
  44980. Archive: lumberjack.zip
  44981. Length Date Time Name
  44982. \-\-\-\-\-\-\-\- \-\-\-\- \-\-\-\- \-\-\-\-
  44983. 0 08\-21\-15 20:08 lumberjack/
  44984. 348 08\-21\-15 20:08 lumberjack/__init__.py
  44985. 0 08\-21\-15 19:53 lumberjack/sleep/
  44986. 83 08\-21\-15 19:53 lumberjack/sleep/__init__.py
  44987. 0 08\-21\-15 19:53 lumberjack/work/
  44988. 81 08\-21\-15 19:21 lumberjack/work/__init__.py
  44989. \-\-\-\-\-\-\-\- \-\-\-\-\-\-\-
  44990. 512 6 files
  44991. .ft P
  44992. .fi
  44993. .UNINDENT
  44994. .UNINDENT
  44995. .sp
  44996. Once placed in \fBfile_roots\fP, Salt users can distribute and use
  44997. \fBlumberjack.zip\fP like any other module.
  44998. .INDENT 0.0
  44999. .INDENT 3.5
  45000. .sp
  45001. .nf
  45002. .ft C
  45003. $ sudo salt minion1 saltutil.sync_modules
  45004. minion1:
  45005. \- modules.lumberjack
  45006. $ sudo salt minion1 lumberjack.is_ok \(aqMichael Palin\(aq
  45007. minion1:
  45008. True
  45009. .ft P
  45010. .fi
  45011. .UNINDENT
  45012. .UNINDENT
  45013. .SS Cross Calling Execution Modules
  45014. .sp
  45015. All of the Salt execution modules are available to each other and modules can
  45016. call functions available in other execution modules.
  45017. .sp
  45018. The variable \fB__salt__\fP is packed into the modules after they are loaded into
  45019. the Salt minion.
  45020. .sp
  45021. The \fB__salt__\fP variable is a \fI\%Python dictionary\fP
  45022. containing all of the Salt functions. Dictionary keys are strings representing
  45023. the names of the modules and the values are the functions themselves.
  45024. .sp
  45025. Salt modules can be cross\-called by accessing the value in the \fB__salt__\fP
  45026. dict:
  45027. .INDENT 0.0
  45028. .INDENT 3.5
  45029. .sp
  45030. .nf
  45031. .ft C
  45032. def foo(bar):
  45033. return __salt__[\(aqcmd.run\(aq](bar)
  45034. .ft P
  45035. .fi
  45036. .UNINDENT
  45037. .UNINDENT
  45038. .sp
  45039. This code will call the \fIrun\fP function in the \fBcmd\fP
  45040. module and pass the argument \fBbar\fP to it.
  45041. .SS Calling Execution Modules on the Salt Master
  45042. .sp
  45043. New in version 2016.11.0.
  45044. .sp
  45045. Execution modules can now also be called via the \fBsalt\-run\fP command
  45046. using the salt runner\&.
  45047. .SS Preloaded Execution Module Data
  45048. .sp
  45049. When interacting with execution modules often it is nice to be able to read
  45050. information dynamically about the minion or to load in configuration parameters
  45051. for a module.
  45052. .sp
  45053. Salt allows for different types of data to be loaded into the modules by the
  45054. minion.
  45055. .SS Grains Data
  45056. .sp
  45057. The values detected by the Salt Grains on the minion are available in a
  45058. \fI\%Python dictionary\fP named \fB__grains__\fP and can be
  45059. accessed from within callable objects in the Python modules.
  45060. .sp
  45061. To see the contents of the grains dictionary for a given system in your
  45062. deployment run the \fBgrains.items()\fP function:
  45063. .INDENT 0.0
  45064. .INDENT 3.5
  45065. .sp
  45066. .nf
  45067. .ft C
  45068. salt \(aqhostname\(aq grains.items \-\-output=pprint
  45069. .ft P
  45070. .fi
  45071. .UNINDENT
  45072. .UNINDENT
  45073. .sp
  45074. Any value in a grains dictionary can be accessed as any other Python
  45075. dictionary. For example, the grain representing the minion ID is stored in the
  45076. \fBid\fP key and from an execution module, the value would be stored in
  45077. \fB__grains__[\(aqid\(aq]\fP\&.
  45078. .SS Module Configuration
  45079. .sp
  45080. Since parameters for configuring a module may be desired, Salt allows for
  45081. configuration information from the minion configuration file to be passed to
  45082. execution modules.
  45083. .sp
  45084. Since the minion configuration file is a YAML document, arbitrary configuration
  45085. data can be passed in the minion config that is read by the modules. It is
  45086. therefore \fBstrongly\fP recommended that the values passed in the configuration
  45087. file match the module name. A value intended for the \fBtest\fP execution module
  45088. should be named \fBtest.<value>\fP\&.
  45089. .sp
  45090. The test execution module contains usage of the module configuration and the
  45091. default configuration file for the minion contains the information and format
  45092. used to pass data to the modules. \fBsalt.modules.test\fP,
  45093. \fBconf/minion\fP\&.
  45094. .SS \fB__init__\fP Function
  45095. .sp
  45096. If you want your module to have different execution modes based on minion
  45097. configuration, you can use the \fB__init__(opts)\fP function to perform initial
  45098. module setup. The parameter \fBopts\fP is the complete minion configuration,
  45099. as also available in the \fB__opts__\fP dict.
  45100. .INDENT 0.0
  45101. .INDENT 3.5
  45102. .sp
  45103. .nf
  45104. .ft C
  45105. \(aq\(aq\(aq
  45106. Cheese module initialization example
  45107. \(aq\(aq\(aq
  45108. def __init__(opts):
  45109. \(aq\(aq\(aq
  45110. Allow foreign imports if configured to do so
  45111. \(aq\(aq\(aq
  45112. if opts.get(\(aqcheese.allow_foreign\(aq, False):
  45113. _enable_foreign_products()
  45114. .ft P
  45115. .fi
  45116. .UNINDENT
  45117. .UNINDENT
  45118. .SS Strings and Unicode
  45119. .sp
  45120. An execution module author should always assume that strings fed to the module
  45121. have already decoded from strings into Unicode. In Python 2, these will
  45122. be of type \(aqUnicode\(aq and in Python 3 they will be of type \fBstr\fP\&. Calling
  45123. from a state to other Salt sub\-systems, should pass Unicode (or bytes if passing binary data). In the
  45124. rare event that a state needs to write directly to disk, Unicode should be
  45125. encoded to a string immediately before writing to disk. An author may use
  45126. \fB__salt_system_encoding__\fP to learn what the encoding type of the system is.
  45127. For example, \fI\(aqmy_string\(aq.encode(__salt_system_encoding__\(aq)\fP\&.
  45128. .SS Outputter Configuration
  45129. .sp
  45130. Since execution module functions can return different data, and the way the
  45131. data is printed can greatly change the presentation, Salt allows for a specific
  45132. outputter to be set on a function\-by\-function basis.
  45133. .sp
  45134. This is done be declaring an \fB__outputter__\fP dictionary in the global scope
  45135. of the module. The \fB__outputter__\fP dictionary contains a mapping of function
  45136. names to Salt outputters\&.
  45137. .INDENT 0.0
  45138. .INDENT 3.5
  45139. .sp
  45140. .nf
  45141. .ft C
  45142. __outputter__ = {
  45143. \(aqrun\(aq: \(aqtxt\(aq
  45144. }
  45145. .ft P
  45146. .fi
  45147. .UNINDENT
  45148. .UNINDENT
  45149. .sp
  45150. This will ensure that the \fBtxt\fP outputter is used to display output from the
  45151. \fBrun\fP function.
  45152. .SS Virtual Modules
  45153. .sp
  45154. Virtual modules let you override the name of a module in order to use the same
  45155. name to refer to one of several similar modules. The specific module that is
  45156. loaded for a virtual name is selected based on the current platform or
  45157. environment.
  45158. .sp
  45159. For example, packages are managed across platforms using the \fBpkg\fP module.
  45160. \fBpkg\fP is a virtual module name that is an alias for the specific package
  45161. manager module that is loaded on a specific system (for example, \fByumpkg\fP on RHEL/CentOS systems , and \fBaptpkg\fP on Ubuntu).
  45162. .sp
  45163. Virtual module names are set using the \fB__virtual__\fP function and the
  45164. \fI\%virtual name\fP\&.
  45165. .SS \fB__virtual__\fP Function
  45166. .sp
  45167. The \fB__virtual__\fP function returns either a \fI\%string\fP,
  45168. \fI\%True\fP, \fI\%False\fP, or \fI\%False\fP with an \fI\%error
  45169. string\fP\&. If a string is returned then the module is loaded
  45170. using the name of the string as the virtual name. If \fBTrue\fP is returned the
  45171. module is loaded using the current module name. If \fBFalse\fP is returned the
  45172. module is not loaded. \fBFalse\fP lets the module perform system checks and
  45173. prevent loading if dependencies are not met.
  45174. .sp
  45175. Since \fB__virtual__\fP is called before the module is loaded, \fB__salt__\fP will
  45176. be unreliable as not all modules will be available at this point in time. The
  45177. \fB__pillar__\fP and \fB__grains__\fP "dunder" dictionaries
  45178. are available however.
  45179. .sp
  45180. \fBNOTE:\fP
  45181. .INDENT 0.0
  45182. .INDENT 3.5
  45183. Modules which return a string from \fB__virtual__\fP that is already used by
  45184. a module that ships with Salt will _override_ the stock module.
  45185. .UNINDENT
  45186. .UNINDENT
  45187. .SS Returning Error Information from \fB__virtual__\fP
  45188. .sp
  45189. Optionally, Salt plugin modules, such as execution, state, returner, beacon,
  45190. etc. modules may additionally return a string containing the reason that a
  45191. module could not be loaded. For example, an execution module called \fBcheese\fP
  45192. and a corresponding state module also called \fBcheese\fP, both depending on a
  45193. utility called \fBenzymes\fP should have \fB__virtual__\fP functions that handle
  45194. the case when the dependency is unavailable.
  45195. .INDENT 0.0
  45196. .INDENT 3.5
  45197. .sp
  45198. .nf
  45199. .ft C
  45200. \(aq\(aq\(aq
  45201. Cheese execution (or returner/beacon/etc.) module
  45202. \(aq\(aq\(aq
  45203. try:
  45204. import enzymes
  45205. HAS_ENZYMES = True
  45206. except ImportError:
  45207. HAS_ENZYMES = False
  45208. def __virtual__():
  45209. \(aq\(aq\(aq
  45210. only load cheese if enzymes are available
  45211. \(aq\(aq\(aq
  45212. if HAS_ENZYMES:
  45213. return \(aqcheese\(aq
  45214. else:
  45215. return False, \(aqThe cheese execution module cannot be loaded: enzymes unavailable.\(aq
  45216. def slice():
  45217. pass
  45218. .ft P
  45219. .fi
  45220. .UNINDENT
  45221. .UNINDENT
  45222. .INDENT 0.0
  45223. .INDENT 3.5
  45224. .sp
  45225. .nf
  45226. .ft C
  45227. \(aq\(aq\(aq
  45228. Cheese state module. Note that this works in state modules because it is
  45229. guaranteed that execution modules are loaded first
  45230. \(aq\(aq\(aq
  45231. def __virtual__():
  45232. \(aq\(aq\(aq
  45233. only load cheese if enzymes are available
  45234. \(aq\(aq\(aq
  45235. # predicate loading of the cheese state on the corresponding execution module
  45236. if \(aqcheese.slice\(aq in __salt__:
  45237. return \(aqcheese\(aq
  45238. else:
  45239. return False, \(aqThe cheese state module cannot be loaded: enzymes unavailable.\(aq
  45240. .ft P
  45241. .fi
  45242. .UNINDENT
  45243. .UNINDENT
  45244. .SS Examples
  45245. .sp
  45246. The package manager modules are among the best examples of using the
  45247. \fB__virtual__\fP function. A table of all the virtual \fBpkg\fP modules can be
  45248. found here\&.
  45249. .SS Overriding Virtual Module Providers
  45250. .sp
  45251. Salt often uses OS grains (\fBos\fP, \fBosrelease\fP, \fBos_family\fP, etc.) to
  45252. determine which module should be loaded as the virtual module for \fBpkg\fP,
  45253. \fBservice\fP, etc. Sometimes this OS detection is incomplete, with new distros
  45254. popping up, existing distros changing init systems, etc. The virtual modules
  45255. likely to be affected by this are in the list below (click each item for more
  45256. information):
  45257. .INDENT 0.0
  45258. .IP \(bu 2
  45259. pkg
  45260. .IP \(bu 2
  45261. service
  45262. .IP \(bu 2
  45263. user
  45264. .IP \(bu 2
  45265. shadow
  45266. .IP \(bu 2
  45267. group
  45268. .UNINDENT
  45269. .sp
  45270. If Salt is using the wrong module for one of these, first of all, please
  45271. \fI\%report it on the issue tracker\fP, so that this issue can be resolved for a
  45272. future release. To make it easier to troubleshoot, please also provide the
  45273. \fBgrains.items\fP output, taking care to
  45274. redact any sensitive information.
  45275. .sp
  45276. Then, while waiting for the SaltStack development team to fix the issue, Salt
  45277. can be made to use the correct module using the \fBproviders\fP option
  45278. in the minion config file:
  45279. .INDENT 0.0
  45280. .INDENT 3.5
  45281. .sp
  45282. .nf
  45283. .ft C
  45284. providers:
  45285. service: systemd
  45286. pkg: aptpkg
  45287. .ft P
  45288. .fi
  45289. .UNINDENT
  45290. .UNINDENT
  45291. .sp
  45292. The above example will force the minion to use the \fBsystemd\fP module to provide service management, and the
  45293. \fBaptpkg\fP module to provide package management.
  45294. .SS Logging Restrictions
  45295. .sp
  45296. As a rule, logging should not be done anywhere in a Salt module before it is
  45297. loaded. This rule apples to all code that would run before the \fB__virtual__()\fP
  45298. function, as well as the code within the \fB__virtual__()\fP function itself.
  45299. .sp
  45300. If logging statements are made before the virtual function determines if
  45301. the module should be loaded, then those logging statements will be called
  45302. repeatedly. This clutters up log files unnecessarily.
  45303. .sp
  45304. Exceptions may be considered for logging statements made at the \fBtrace\fP level.
  45305. However, it is better to provide the necessary information by another means.
  45306. One method is to \fI\%return error information\fP in the
  45307. \fB__virtual__()\fP function.
  45308. .SS \fB__virtualname__\fP
  45309. .sp
  45310. \fB__virtualname__\fP is a variable that is used by the documentation build
  45311. system to know the virtual name of a module without calling the \fB__virtual__\fP
  45312. function. Modules that return a string from the \fB__virtual__\fP function
  45313. must also set the \fB__virtualname__\fP variable.
  45314. .sp
  45315. To avoid setting the virtual name string twice, you can implement
  45316. \fB__virtual__\fP to return the value set for \fB__virtualname__\fP using a pattern
  45317. similar to the following:
  45318. .INDENT 0.0
  45319. .INDENT 3.5
  45320. .sp
  45321. .nf
  45322. .ft C
  45323. # Define the module\(aqs virtual name
  45324. __virtualname__ = \(aqpkg\(aq
  45325. def __virtual__():
  45326. \(aq\(aq\(aq
  45327. Confine this module to Mac OS with Homebrew.
  45328. \(aq\(aq\(aq
  45329. if salt.utils.path.which(\(aqbrew\(aq) and __grains__[\(aqos\(aq] == \(aqMacOS\(aq:
  45330. return __virtualname__
  45331. return False
  45332. .ft P
  45333. .fi
  45334. .UNINDENT
  45335. .UNINDENT
  45336. .sp
  45337. The \fB__virtual__()\fP function can return a \fBTrue\fP or \fBFalse\fP boolean, a tuple,
  45338. or a string. If it returns a \fBTrue\fP value, this \fB__virtualname__\fP module\-level
  45339. attribute can be set as seen in the above example. This is the string that the module
  45340. should be referred to as.
  45341. .sp
  45342. When \fB__virtual__()\fP returns a tuple, the first item should be a boolean and the
  45343. second should be a string. This is typically done when the module should not load. The
  45344. first value of the tuple is \fBFalse\fP and the second is the error message to display
  45345. for why the module did not load.
  45346. .sp
  45347. For example:
  45348. .INDENT 0.0
  45349. .INDENT 3.5
  45350. .sp
  45351. .nf
  45352. .ft C
  45353. def __virtual__():
  45354. \(aq\(aq\(aq
  45355. Only load if git exists on the system
  45356. \(aq\(aq\(aq
  45357. if salt.utils.path.which(\(aqgit\(aq) is None:
  45358. return (False,
  45359. \(aqThe git execution module cannot be loaded: git unavailable.\(aq)
  45360. else:
  45361. return True
  45362. .ft P
  45363. .fi
  45364. .UNINDENT
  45365. .UNINDENT
  45366. .SS Documentation
  45367. .sp
  45368. Salt execution modules are documented. The \fBsys.doc()\fP function will return
  45369. the documentation for all available modules:
  45370. .INDENT 0.0
  45371. .INDENT 3.5
  45372. .sp
  45373. .nf
  45374. .ft C
  45375. salt \(aq*\(aq sys.doc
  45376. .ft P
  45377. .fi
  45378. .UNINDENT
  45379. .UNINDENT
  45380. .sp
  45381. The \fBsys.doc\fP function simply prints out the docstrings found in the modules;
  45382. when writing Salt execution modules, please follow the formatting conventions
  45383. for docstrings as they appear in the other modules.
  45384. .SS Adding Documentation to Salt Modules
  45385. .sp
  45386. It is strongly suggested that all Salt modules have documentation added.
  45387. .sp
  45388. To add documentation add a \fI\%Python docstring\fP to the function.
  45389. .INDENT 0.0
  45390. .INDENT 3.5
  45391. .sp
  45392. .nf
  45393. .ft C
  45394. def spam(eggs):
  45395. \(aq\(aq\(aq
  45396. A function to make some spam with eggs!
  45397. CLI Example::
  45398. salt \(aq*\(aq test.spam eggs
  45399. \(aq\(aq\(aq
  45400. return eggs
  45401. .ft P
  45402. .fi
  45403. .UNINDENT
  45404. .UNINDENT
  45405. .sp
  45406. Now when the sys.doc call is executed the docstring will be cleanly returned
  45407. to the calling terminal.
  45408. .sp
  45409. Documentation added to execution modules in docstrings will automatically be
  45410. added to the online web\-based documentation.
  45411. .SS Add Execution Module Metadata
  45412. .sp
  45413. When writing a Python docstring for an execution module, add information about
  45414. the module using the following field lists:
  45415. .INDENT 0.0
  45416. .INDENT 3.5
  45417. .sp
  45418. .nf
  45419. .ft C
  45420. :maintainer: Thomas Hatch <thatch@saltstack.com, Seth House <shouse@saltstack.com>
  45421. :maturity: new
  45422. :depends: python\-mysqldb
  45423. :platform: all
  45424. .ft P
  45425. .fi
  45426. .UNINDENT
  45427. .UNINDENT
  45428. .sp
  45429. The maintainer field is a comma\-delimited list of developers who help maintain
  45430. this module.
  45431. .sp
  45432. The maturity field indicates the level of quality and testing for this module.
  45433. Standard labels will be determined.
  45434. .sp
  45435. The depends field is a comma\-delimited list of modules that this module depends
  45436. on.
  45437. .sp
  45438. The platform field is a comma\-delimited list of platforms that this module is
  45439. known to run on.
  45440. .SS Log Output
  45441. .sp
  45442. You can call the logger from custom modules to write messages to the minion
  45443. logs. The following code snippet demonstrates writing log messages:
  45444. .INDENT 0.0
  45445. .INDENT 3.5
  45446. .sp
  45447. .nf
  45448. .ft C
  45449. import logging
  45450. log = logging.getLogger(__name__)
  45451. log.info(\(aqHere is Some Information\(aq)
  45452. log.warning(\(aqYou Should Not Do That\(aq)
  45453. log.error(\(aqIt Is Busted\(aq)
  45454. .ft P
  45455. .fi
  45456. .UNINDENT
  45457. .UNINDENT
  45458. .SS Aliasing Functions
  45459. .sp
  45460. Sometimes one wishes to use a function name that would shadow a python built\-in.
  45461. A common example would be \fBset()\fP\&. To support this, append an underscore to
  45462. the function definition, \fBdef set_():\fP, and use the \fB__func_alias__\fP feature
  45463. to provide an alias to the function.
  45464. .sp
  45465. \fB__func_alias__\fP is a dictionary where each key is the name of a function in
  45466. the module, and each value is a string representing the alias for that function.
  45467. When calling an aliased function from a different execution module, state
  45468. module, or from the cli, the alias name should be used.
  45469. .INDENT 0.0
  45470. .INDENT 3.5
  45471. .sp
  45472. .nf
  45473. .ft C
  45474. __func_alias__ = {
  45475. \(aqset_\(aq: \(aqset\(aq,
  45476. \(aqlist_\(aq: \(aqlist\(aq,
  45477. }
  45478. .ft P
  45479. .fi
  45480. .UNINDENT
  45481. .UNINDENT
  45482. .SS Private Functions
  45483. .sp
  45484. In Salt, Python callable objects contained within an execution module are made
  45485. available to the Salt minion for use. The only exception to this rule is a
  45486. callable object with a name starting with an underscore \fB_\fP\&.
  45487. .SS Objects Loaded Into the Salt Minion
  45488. .INDENT 0.0
  45489. .INDENT 3.5
  45490. .sp
  45491. .nf
  45492. .ft C
  45493. def foo(bar):
  45494. return bar
  45495. .ft P
  45496. .fi
  45497. .UNINDENT
  45498. .UNINDENT
  45499. .SS Objects NOT Loaded into the Salt Minion
  45500. .INDENT 0.0
  45501. .INDENT 3.5
  45502. .sp
  45503. .nf
  45504. .ft C
  45505. def _foobar(baz): # Preceded with an _
  45506. return baz
  45507. cheese = {} # Not a callable Python object
  45508. .ft P
  45509. .fi
  45510. .UNINDENT
  45511. .UNINDENT
  45512. .SS Useful Decorators for Modules
  45513. .SS Depends Decorator
  45514. .sp
  45515. When writing execution modules there are many times where some of the module
  45516. will work on all hosts but some functions have an external dependency, such as
  45517. a service that needs to be installed or a binary that needs to be present on
  45518. the system.
  45519. .sp
  45520. Instead of trying to wrap much of the code in large try/except blocks, a
  45521. decorator can be used.
  45522. .sp
  45523. If the dependencies passed to the decorator don\(aqt exist, then the salt minion
  45524. will remove those functions from the module on that host.
  45525. .sp
  45526. If a \fBfallback_function\fP is defined, it will replace the function instead of
  45527. removing it
  45528. .INDENT 0.0
  45529. .INDENT 3.5
  45530. .sp
  45531. .nf
  45532. .ft C
  45533. import logging
  45534. from salt.utils.decorators import depends
  45535. log = logging.getLogger(__name__)
  45536. try:
  45537. import dependency_that_sometimes_exists
  45538. except ImportError as e:
  45539. log.trace(\(aqFailed to import dependency_that_sometimes_exists: {0}\(aq.format(e))
  45540. @depends(\(aqdependency_that_sometimes_exists\(aq)
  45541. def foo():
  45542. \(aq\(aq\(aq
  45543. Function with a dependency on the "dependency_that_sometimes_exists" module,
  45544. if the "dependency_that_sometimes_exists" is missing this function will not exist
  45545. \(aq\(aq\(aq
  45546. return True
  45547. def _fallback():
  45548. \(aq\(aq\(aq
  45549. Fallback function for the depends decorator to replace a function with
  45550. \(aq\(aq\(aq
  45551. return \(aq"dependency_that_sometimes_exists" needs to be installed for this function to exist\(aq
  45552. @depends(\(aqdependency_that_sometimes_exists\(aq, fallback_function=_fallback)
  45553. def foo():
  45554. \(aq\(aq\(aq
  45555. Function with a dependency on the "dependency_that_sometimes_exists" module.
  45556. If the "dependency_that_sometimes_exists" is missing this function will be
  45557. replaced with "_fallback"
  45558. \(aq\(aq\(aq
  45559. return True
  45560. .ft P
  45561. .fi
  45562. .UNINDENT
  45563. .UNINDENT
  45564. .sp
  45565. In addition to global dependencies the depends decorator also supports raw
  45566. booleans.
  45567. .INDENT 0.0
  45568. .INDENT 3.5
  45569. .sp
  45570. .nf
  45571. .ft C
  45572. from salt.utils.decorators import depends
  45573. HAS_DEP = False
  45574. try:
  45575. import dependency_that_sometimes_exists
  45576. HAS_DEP = True
  45577. except ImportError:
  45578. pass
  45579. @depends(HAS_DEP)
  45580. def foo():
  45581. return True
  45582. .ft P
  45583. .fi
  45584. .UNINDENT
  45585. .UNINDENT
  45586. .SS Executors
  45587. .sp
  45588. Executors are used by minion to execute module functions. Executors can be used
  45589. to modify the functions behavior, do any pre\-execution steps or execute in a
  45590. specific way like sudo executor.
  45591. .sp
  45592. Executors could be passed as a list and they will be used one\-by\-one in the
  45593. order. If an executor returns \fBNone\fP the next one will be called. If an
  45594. executor returns non\-\fBNone\fP the execution sequence is terminated and the
  45595. returned value is used as a result. It\(aqs a way executor could control modules
  45596. execution working as a filter. Note that executor could actually not execute
  45597. the function but just do something else and return \fBNone\fP like \fBsplay\fP
  45598. executor does. In this case some other executor have to be used as a final
  45599. executor that will actually execute the function. See examples below.
  45600. .sp
  45601. Executors list could be passed by minion config file in the following way:
  45602. .INDENT 0.0
  45603. .INDENT 3.5
  45604. .sp
  45605. .nf
  45606. .ft C
  45607. module_executors:
  45608. \- splay
  45609. \- direct_call
  45610. splaytime: 30
  45611. .ft P
  45612. .fi
  45613. .UNINDENT
  45614. .UNINDENT
  45615. .sp
  45616. The same could be done by command line:
  45617. .INDENT 0.0
  45618. .INDENT 3.5
  45619. .sp
  45620. .nf
  45621. .ft C
  45622. salt \-t 40 \-\-module\-executors=\(aq[splay, direct_call]\(aq \-\-executor\-opts=\(aq{splaytime: 30}\(aq \(aq*\(aq test.version
  45623. .ft P
  45624. .fi
  45625. .UNINDENT
  45626. .UNINDENT
  45627. .sp
  45628. And the same command called via netapi will look like this:
  45629. .INDENT 0.0
  45630. .INDENT 3.5
  45631. .sp
  45632. .nf
  45633. .ft C
  45634. curl \-sSk https://localhost:8000 \e
  45635. \-H \(aqAccept: application/x\-yaml\(aq \e
  45636. \-H \(aqX\-Auth\-Token: 697adbdc8fe971d09ae4c2a3add7248859c87079\(aq \e
  45637. \-H \(aqContent\-type: application/json\(aq \e
  45638. \-d \(aq[{
  45639. "client": "local",
  45640. "tgt": "*",
  45641. "fun": "test.version",
  45642. "module_executors": ["splay", "direct_call"],
  45643. "executor_opts": {"splaytime": 10}
  45644. }]\(aq
  45645. .ft P
  45646. .fi
  45647. .UNINDENT
  45648. .UNINDENT
  45649. .sp
  45650. \fBSEE ALSO:\fP
  45651. .INDENT 0.0
  45652. .INDENT 3.5
  45653. The full list of executors
  45654. .UNINDENT
  45655. .UNINDENT
  45656. .SS Writing Salt Executors
  45657. .sp
  45658. A Salt executor is written in a similar manner to a Salt execution module.
  45659. Executor is a python module placed into the \fBexecutors\fP folder and containing
  45660. the \fBexecute\fP function with the following signature:
  45661. .INDENT 0.0
  45662. .INDENT 3.5
  45663. .sp
  45664. .nf
  45665. .ft C
  45666. def execute(opts, data, func, args, kwargs)
  45667. .ft P
  45668. .fi
  45669. .UNINDENT
  45670. .UNINDENT
  45671. .sp
  45672. Where the args are:
  45673. .INDENT 0.0
  45674. .TP
  45675. .B \fBopts\fP:
  45676. Dictionary containing the minion configuration options
  45677. .TP
  45678. .B \fBdata\fP:
  45679. Dictionary containing the load data including \fBexecutor_opts\fP passed via
  45680. cmdline/API.
  45681. .TP
  45682. .B \fBfunc\fP, \fBargs\fP, \fBkwargs\fP:
  45683. Execution module function to be executed and its arguments. For instance the
  45684. simplest \fBdirect_call\fP executor just runs it as \fBfunc(*args, **kwargs)\fP\&.
  45685. .TP
  45686. .B \fBReturns\fP:
  45687. \fBNone\fP if the execution sequence must be continued with the next executor.
  45688. Error string or execution result if the job is done and execution must be
  45689. stopped.
  45690. .UNINDENT
  45691. .sp
  45692. Specific options could be passed to the executor via minion config or via
  45693. \fBexecutor_opts\fP argument. For instance to access \fBsplaytime\fP option set by
  45694. minion config executor should access \fBopts.get(\(aqsplaytime\(aq)\fP\&. To access the
  45695. option set by commandline or API \fBdata.get(\(aqexecutor_opts\(aq,
  45696. {}).get(\(aqsplaytime\(aq)\fP should be used. So if an option is safe and must be
  45697. accessible by user executor should check it in both places, but if an option is
  45698. unsafe it should be read from the only config ignoring the passed request data.
  45699. .sp
  45700. There is also a function named \fBall_missing_func\fP which the name of the
  45701. \fBfunc\fP is passed, which can be used to verify if the command should still be
  45702. run, even if it is not loaded in minion_mods.
  45703. .SH CONFIGURATION MANAGEMENT
  45704. .sp
  45705. Salt contains a robust and flexible configuration management framework, which
  45706. is built on the remote execution core. This framework executes on the minions,
  45707. allowing effortless, simultaneous configuration of tens of thousands of hosts,
  45708. by rendering language specific state files. The following links provide
  45709. resources to learn more about state and renderers.
  45710. .INDENT 0.0
  45711. .TP
  45712. \fBStates\fP
  45713. Express the state of a host using small, easy to read, easy to
  45714. understand configuration files. \fINo programming required\fP\&.
  45715. .INDENT 7.0
  45716. .TP
  45717. .B Full list of states
  45718. Contains: list of install packages, create users, transfer files, start
  45719. services, and so on.
  45720. .TP
  45721. .B Pillar System
  45722. Contains: description of Salt\(aqs Pillar system.
  45723. .TP
  45724. .B Highstate data structure
  45725. Contains: a dry vocabulary and technical representation of the
  45726. configuration format that states represent.
  45727. .TP
  45728. .B Writing states
  45729. Contains: a guide on how to write Salt state modules, easily extending
  45730. Salt to directly manage more software.
  45731. .UNINDENT
  45732. .UNINDENT
  45733. .sp
  45734. \fBNOTE:\fP
  45735. .INDENT 0.0
  45736. .INDENT 3.5
  45737. Salt execution modules are different from state modules and cannot be
  45738. called as a state in an SLS file. In other words, this will not work:
  45739. .INDENT 0.0
  45740. .INDENT 3.5
  45741. .sp
  45742. .nf
  45743. .ft C
  45744. moe:
  45745. user.rename:
  45746. \- new_name: larry
  45747. \- onlyif: id moe
  45748. .ft P
  45749. .fi
  45750. .UNINDENT
  45751. .UNINDENT
  45752. .sp
  45753. You must use the \fBmodule\fP states to call
  45754. execution modules directly. Here\(aqs an example:
  45755. .INDENT 0.0
  45756. .INDENT 3.5
  45757. .sp
  45758. .nf
  45759. .ft C
  45760. rename_moe:
  45761. module.run:
  45762. \- name: user.rename
  45763. \- m_name: moe
  45764. \- new_name: larry
  45765. \- onlyif: id moe
  45766. .ft P
  45767. .fi
  45768. .UNINDENT
  45769. .UNINDENT
  45770. .UNINDENT
  45771. .UNINDENT
  45772. .INDENT 0.0
  45773. .TP
  45774. \fBRenderers\fP
  45775. Renderers use state configuration files written in a variety of languages,
  45776. templating engines, or files. Salt\(aqs configuration management system is,
  45777. under the hood, language agnostic.
  45778. .INDENT 7.0
  45779. .TP
  45780. .B Full list of renderers
  45781. Contains: a list of renderers.
  45782. YAML is one choice, but many systems are available, from
  45783. alternative templating engines to the PyDSL language for rendering
  45784. sls formulas.
  45785. .TP
  45786. .B Renderers
  45787. Contains: more information about renderers. Salt states are only
  45788. concerned with the ultimate highstate data structure, not how the
  45789. data structure was created.
  45790. .UNINDENT
  45791. .UNINDENT
  45792. .SS State System Reference
  45793. .sp
  45794. Salt offers an interface to manage the configuration or "state" of the
  45795. Salt minions. This interface is a fully capable mechanism used to enforce the
  45796. state of systems from a central manager.
  45797. .SS Mod Aggregate State Runtime Modifications
  45798. .sp
  45799. New in version 2014.7.0.
  45800. .sp
  45801. The mod_aggregate system was added in the 2014.7.0 release of Salt and allows for
  45802. runtime modification of the executing state data. Simply put, it allows for the
  45803. data used by Salt\(aqs state system to be changed on the fly at runtime, kind of
  45804. like a configuration management JIT compiler or a runtime import system. All in
  45805. all, it makes Salt much more dynamic.
  45806. .SS How it Works
  45807. .sp
  45808. The best example is the \fBpkg\fP state. One of the major requests in Salt has long
  45809. been adding the ability to install all packages defined at the same time. The
  45810. mod_aggregate system makes this a reality. While executing Salt\(aqs state system,
  45811. when a \fBpkg\fP state is reached the \fBmod_aggregate\fP function in the state module
  45812. is called. For \fBpkg\fP this function scans all of the other states that are slated
  45813. to run, and picks up the references to \fBname\fP and \fBpkgs\fP, then adds them to
  45814. \fBpkgs\fP in the first state. The result is a single call to yum, apt\-get,
  45815. pacman, etc as part of the first package install.
  45816. .SS How to Use it
  45817. .sp
  45818. \fBNOTE:\fP
  45819. .INDENT 0.0
  45820. .INDENT 3.5
  45821. Since this option changes the basic behavior of the state runtime, after
  45822. it is enabled states should be executed using \fItest=True\fP to ensure that
  45823. the desired behavior is preserved.
  45824. .UNINDENT
  45825. .UNINDENT
  45826. .SS In config files
  45827. .sp
  45828. The first way to enable aggregation is with a configuration option in either
  45829. the master or minion configuration files. Salt will invoke \fBmod_aggregate\fP
  45830. the first time it encounters a state module that has aggregate support.
  45831. .sp
  45832. If this option is set in the master config it will apply to all state runs on
  45833. all minions, if set in the minion config it will only apply to said minion.
  45834. .sp
  45835. Enable for all states:
  45836. .INDENT 0.0
  45837. .INDENT 3.5
  45838. .sp
  45839. .nf
  45840. .ft C
  45841. state_aggregate: True
  45842. .ft P
  45843. .fi
  45844. .UNINDENT
  45845. .UNINDENT
  45846. .sp
  45847. Enable for only specific state modules:
  45848. .INDENT 0.0
  45849. .INDENT 3.5
  45850. .sp
  45851. .nf
  45852. .ft C
  45853. state_aggregate:
  45854. \- pkg
  45855. .ft P
  45856. .fi
  45857. .UNINDENT
  45858. .UNINDENT
  45859. .SS In states
  45860. .sp
  45861. The second way to enable aggregation is with the state\-level \fBaggregate\fP
  45862. keyword. In this configuration, Salt will invoke the \fBmod_aggregate\fP function
  45863. the first time it encounters this keyword. Any additional occurrences of the
  45864. keyword will be ignored as the aggregation has already taken place.
  45865. .sp
  45866. The following example will trigger \fBmod_aggregate\fP when the \fBlamp_stack\fP
  45867. state is processed resulting in a single call to the underlying package
  45868. manager.
  45869. .INDENT 0.0
  45870. .INDENT 3.5
  45871. .sp
  45872. .nf
  45873. .ft C
  45874. lamp_stack:
  45875. pkg.installed:
  45876. \- pkgs:
  45877. \- php
  45878. \- mysql\-client
  45879. \- aggregate: True
  45880. memcached:
  45881. pkg.installed:
  45882. \- name: memcached
  45883. .ft P
  45884. .fi
  45885. .UNINDENT
  45886. .UNINDENT
  45887. .SS Adding mod_aggregate to a State Module
  45888. .sp
  45889. Adding a mod_aggregate routine to an existing state module only requires adding
  45890. an additional function to the state module called mod_aggregate.
  45891. .sp
  45892. The mod_aggregate function just needs to accept three parameters and return the
  45893. low data to use. Since mod_aggregate is working on the state runtime level it
  45894. does need to manipulate \fIlow data\fP\&.
  45895. .sp
  45896. The three parameters are \fIlow\fP, \fIchunks\fP, and \fIrunning\fP\&. The \fIlow\fP option is the
  45897. low data for the state execution which is about to be called. The \fIchunks\fP is
  45898. the list of all of the low data dictionaries which are being executed by the
  45899. runtime and the \fIrunning\fP dictionary is the return data from all of the state
  45900. executions which have already be executed.
  45901. .sp
  45902. This example, simplified from the pkg state, shows how to create mod_aggregate functions:
  45903. .INDENT 0.0
  45904. .INDENT 3.5
  45905. .sp
  45906. .nf
  45907. .ft C
  45908. def mod_aggregate(low, chunks, running):
  45909. \(aq\(aq\(aq
  45910. The mod_aggregate function which looks up all packages in the available
  45911. low chunks and merges them into a single pkgs ref in the present low data
  45912. \(aq\(aq\(aq
  45913. pkgs = []
  45914. # What functions should we aggregate?
  45915. agg_enabled = [
  45916. \(aqinstalled\(aq,
  45917. \(aqlatest\(aq,
  45918. \(aqremoved\(aq,
  45919. \(aqpurged\(aq,
  45920. ]
  45921. # The \(galow\(ga data is just a dict with the state, function (fun) and
  45922. # arguments passed in from the sls
  45923. if low.get(\(aqfun\(aq) not in agg_enabled:
  45924. return low
  45925. # Now look into what other things are set to execute
  45926. for chunk in chunks:
  45927. # The state runtime uses "tags" to track completed jobs, it may
  45928. # look familiar with the _|\-
  45929. tag = __utils__[\(aqstate.gen_tag\(aq](chunk)
  45930. if tag in running:
  45931. # Already ran the pkg state, skip aggregation
  45932. continue
  45933. if chunk.get(\(aqstate\(aq) == \(aqpkg\(aq:
  45934. if \(aq__agg__\(aq in chunk:
  45935. continue
  45936. # Check for the same function
  45937. if chunk.get(\(aqfun\(aq) != low.get(\(aqfun\(aq):
  45938. continue
  45939. # Pull out the pkg names!
  45940. if \(aqpkgs\(aq in chunk:
  45941. pkgs.extend(chunk[\(aqpkgs\(aq])
  45942. chunk[\(aq__agg__\(aq] = True
  45943. elif \(aqname\(aq in chunk:
  45944. pkgs.append(chunk[\(aqname\(aq])
  45945. chunk[\(aq__agg__\(aq] = True
  45946. if pkgs:
  45947. if \(aqpkgs\(aq in low:
  45948. low[\(aqpkgs\(aq].extend(pkgs)
  45949. else:
  45950. low[\(aqpkgs\(aq] = pkgs
  45951. # The low has been modified and needs to be returned to the state
  45952. # runtime for execution
  45953. return low
  45954. .ft P
  45955. .fi
  45956. .UNINDENT
  45957. .UNINDENT
  45958. .SS Altering States
  45959. .sp
  45960. \fBNOTE:\fP
  45961. .INDENT 0.0
  45962. .INDENT 3.5
  45963. This documentation has been moved here\&.
  45964. .UNINDENT
  45965. .UNINDENT
  45966. .SS File State Backups
  45967. .sp
  45968. In 0.10.2 a new feature was added for backing up files that are replaced by
  45969. the file.managed and file.recurse states. The new feature is called the backup
  45970. mode. Setting the backup mode is easy, but it can be set in a number of
  45971. places.
  45972. .sp
  45973. The backup_mode can be set in the minion config file:
  45974. .INDENT 0.0
  45975. .INDENT 3.5
  45976. .sp
  45977. .nf
  45978. .ft C
  45979. backup_mode: minion
  45980. .ft P
  45981. .fi
  45982. .UNINDENT
  45983. .UNINDENT
  45984. .sp
  45985. Or it can be set for each file:
  45986. .INDENT 0.0
  45987. .INDENT 3.5
  45988. .sp
  45989. .nf
  45990. .ft C
  45991. /etc/ssh/sshd_config:
  45992. file.managed:
  45993. \- source: salt://ssh/sshd_config
  45994. \- backup: minion
  45995. .ft P
  45996. .fi
  45997. .UNINDENT
  45998. .UNINDENT
  45999. .SS Backed\-up Files
  46000. .sp
  46001. The files will be saved in the minion cachedir under the directory named
  46002. \fBfile_backup\fP\&. The files will be in the location relative to where they
  46003. were under the root filesystem and be appended with a timestamp. This should
  46004. make them easy to browse.
  46005. .SS Interacting with Backups
  46006. .sp
  46007. Starting with version 0.17.0, it will be possible to list, restore, and delete
  46008. previously\-created backups.
  46009. .SS Listing
  46010. .sp
  46011. The backups for a given file can be listed using \fBfile.list_backups\fP:
  46012. .INDENT 0.0
  46013. .INDENT 3.5
  46014. .sp
  46015. .nf
  46016. .ft C
  46017. # salt foo.bar.com file.list_backups /tmp/foo.txt
  46018. foo.bar.com:
  46019. \-\-\-\-\-\-\-\-\-\-
  46020. 0:
  46021. \-\-\-\-\-\-\-\-\-\-
  46022. Backup Time:
  46023. Sat Jul 27 2013 17:48:41.738027
  46024. Location:
  46025. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
  46026. Size:
  46027. 13
  46028. 1:
  46029. \-\-\-\-\-\-\-\-\-\-
  46030. Backup Time:
  46031. Sat Jul 27 2013 17:48:28.369804
  46032. Location:
  46033. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
  46034. Size:
  46035. 35
  46036. .ft P
  46037. .fi
  46038. .UNINDENT
  46039. .UNINDENT
  46040. .SS Restoring
  46041. .sp
  46042. Restoring is easy using \fBfile.restore_backup\fP, just pass the path and the numeric id
  46043. found with \fBfile.list_backups\fP:
  46044. .INDENT 0.0
  46045. .INDENT 3.5
  46046. .sp
  46047. .nf
  46048. .ft C
  46049. # salt foo.bar.com file.restore_backup /tmp/foo.txt 1
  46050. foo.bar.com:
  46051. \-\-\-\-\-\-\-\-\-\-
  46052. comment:
  46053. Successfully restored /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013 to /tmp/foo.txt
  46054. result:
  46055. True
  46056. .ft P
  46057. .fi
  46058. .UNINDENT
  46059. .UNINDENT
  46060. .sp
  46061. The existing file will be backed up, just in case, as can be seen if
  46062. \fBfile.list_backups\fP is run again:
  46063. .INDENT 0.0
  46064. .INDENT 3.5
  46065. .sp
  46066. .nf
  46067. .ft C
  46068. # salt foo.bar.com file.list_backups /tmp/foo.txt
  46069. foo.bar.com:
  46070. \-\-\-\-\-\-\-\-\-\-
  46071. 0:
  46072. \-\-\-\-\-\-\-\-\-\-
  46073. Backup Time:
  46074. Sat Jul 27 2013 18:00:19.822550
  46075. Location:
  46076. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
  46077. Size:
  46078. 53
  46079. 1:
  46080. \-\-\-\-\-\-\-\-\-\-
  46081. Backup Time:
  46082. Sat Jul 27 2013 17:48:41.738027
  46083. Location:
  46084. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:41_738027_2013
  46085. Size:
  46086. 13
  46087. 2:
  46088. \-\-\-\-\-\-\-\-\-\-
  46089. Backup Time:
  46090. Sat Jul 27 2013 17:48:28.369804
  46091. Location:
  46092. /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_17:48:28_369804_2013
  46093. Size:
  46094. 35
  46095. .ft P
  46096. .fi
  46097. .UNINDENT
  46098. .UNINDENT
  46099. .sp
  46100. \fBNOTE:\fP
  46101. .INDENT 0.0
  46102. .INDENT 3.5
  46103. Since no state is being run, restoring a file will not trigger any watches
  46104. for the file. So, if you are restoring a config file for a service, it will
  46105. likely still be necessary to run a \fBservice.restart\fP\&.
  46106. .UNINDENT
  46107. .UNINDENT
  46108. .SS Deleting
  46109. .sp
  46110. Deleting backups can be done using \fBfile.delete_backup\fP:
  46111. .INDENT 0.0
  46112. .INDENT 3.5
  46113. .sp
  46114. .nf
  46115. .ft C
  46116. # salt foo.bar.com file.delete_backup /tmp/foo.txt 0
  46117. foo.bar.com:
  46118. \-\-\-\-\-\-\-\-\-\-
  46119. comment:
  46120. Successfully removed /var/cache/salt/minion/file_backup/tmp/foo.txt_Sat_Jul_27_18:00:19_822550_2013
  46121. result:
  46122. True
  46123. .ft P
  46124. .fi
  46125. .UNINDENT
  46126. .UNINDENT
  46127. .SS Understanding State Compiler Ordering
  46128. .sp
  46129. \fBNOTE:\fP
  46130. .INDENT 0.0
  46131. .INDENT 3.5
  46132. This tutorial is an intermediate level tutorial. Some basic understanding
  46133. of the state system and writing Salt Formulas is assumed.
  46134. .UNINDENT
  46135. .UNINDENT
  46136. .sp
  46137. Salt\(aqs state system is built to deliver all of the power of configuration
  46138. management systems without sacrificing simplicity. This tutorial is made to
  46139. help users understand in detail just how the order is defined for state
  46140. executions in Salt.
  46141. .sp
  46142. This tutorial is written to represent the behavior of Salt as of version
  46143. 0.17.0.
  46144. .SS Compiler Basics
  46145. .sp
  46146. To understand ordering in depth some very basic knowledge about the state
  46147. compiler is very helpful. No need to worry though, this is very high level!
  46148. .SS High Data and Low Data
  46149. .sp
  46150. When defining Salt Formulas in YAML the data that is being represented is
  46151. referred to by the compiler as High Data. When the data is initially
  46152. loaded into the compiler it is a single large python dictionary, this
  46153. dictionary can be viewed raw by running:
  46154. .INDENT 0.0
  46155. .INDENT 3.5
  46156. .sp
  46157. .nf
  46158. .ft C
  46159. salt \(aq*\(aq state.show_highstate
  46160. .ft P
  46161. .fi
  46162. .UNINDENT
  46163. .UNINDENT
  46164. .sp
  46165. This "High Data" structure is then compiled down to "Low Data". The Low
  46166. Data is what is matched up to create individual executions in Salt\(aqs
  46167. configuration management system. The
  46168. low data is an ordered list of single state calls to execute. Once the
  46169. low data is compiled the evaluation order can be seen.
  46170. .sp
  46171. The low data can be viewed by running:
  46172. .INDENT 0.0
  46173. .INDENT 3.5
  46174. .sp
  46175. .nf
  46176. .ft C
  46177. salt \(aq*\(aq state.show_lowstate
  46178. .ft P
  46179. .fi
  46180. .UNINDENT
  46181. .UNINDENT
  46182. .sp
  46183. \fBNOTE:\fP
  46184. .INDENT 0.0
  46185. .INDENT 3.5
  46186. The state execution module contains MANY functions for evaluating the
  46187. state system and is well worth a read! These routines can be very useful
  46188. when debugging states or to help deepen one\(aqs understanding of Salt\(aqs
  46189. state system.
  46190. .UNINDENT
  46191. .UNINDENT
  46192. .sp
  46193. As an example, a state written thusly:
  46194. .INDENT 0.0
  46195. .INDENT 3.5
  46196. .sp
  46197. .nf
  46198. .ft C
  46199. apache:
  46200. pkg.installed:
  46201. \- name: httpd
  46202. service.running:
  46203. \- name: httpd
  46204. \- watch:
  46205. \- file: apache_conf
  46206. \- pkg: apache
  46207. apache_conf:
  46208. file.managed:
  46209. \- name: /etc/httpd/conf.d/httpd.conf
  46210. \- source: salt://apache/httpd.conf
  46211. .ft P
  46212. .fi
  46213. .UNINDENT
  46214. .UNINDENT
  46215. .sp
  46216. Will have High Data which looks like this represented in json:
  46217. .INDENT 0.0
  46218. .INDENT 3.5
  46219. .sp
  46220. .nf
  46221. .ft C
  46222. {
  46223. "apache": {
  46224. "pkg": [
  46225. {
  46226. "name": "httpd"
  46227. },
  46228. "installed",
  46229. {
  46230. "order": 10000
  46231. }
  46232. ],
  46233. "service": [
  46234. {
  46235. "name": "httpd"
  46236. },
  46237. {
  46238. "watch": [
  46239. {
  46240. "file": "apache_conf"
  46241. },
  46242. {
  46243. "pkg": "apache"
  46244. }
  46245. ]
  46246. },
  46247. "running",
  46248. {
  46249. "order": 10001
  46250. }
  46251. ],
  46252. "__sls__": "blah",
  46253. "__env__": "base"
  46254. },
  46255. "apache_conf": {
  46256. "file": [
  46257. {
  46258. "name": "/etc/httpd/conf.d/httpd.conf"
  46259. },
  46260. {
  46261. "source": "salt://apache/httpd.conf"
  46262. },
  46263. "managed",
  46264. {
  46265. "order": 10002
  46266. }
  46267. ],
  46268. "__sls__": "blah",
  46269. "__env__": "base"
  46270. }
  46271. }
  46272. .ft P
  46273. .fi
  46274. .UNINDENT
  46275. .UNINDENT
  46276. .sp
  46277. The subsequent Low Data will look like this:
  46278. .INDENT 0.0
  46279. .INDENT 3.5
  46280. .sp
  46281. .nf
  46282. .ft C
  46283. [
  46284. {
  46285. "name": "httpd",
  46286. "state": "pkg",
  46287. "__id__": "apache",
  46288. "fun": "installed",
  46289. "__env__": "base",
  46290. "__sls__": "blah",
  46291. "order": 10000
  46292. },
  46293. {
  46294. "name": "httpd",
  46295. "watch": [
  46296. {
  46297. "file": "apache_conf"
  46298. },
  46299. {
  46300. "pkg": "apache"
  46301. }
  46302. ],
  46303. "state": "service",
  46304. "__id__": "apache",
  46305. "fun": "running",
  46306. "__env__": "base",
  46307. "__sls__": "blah",
  46308. "order": 10001
  46309. },
  46310. {
  46311. "name": "/etc/httpd/conf.d/httpd.conf",
  46312. "source": "salt://apache/httpd.conf",
  46313. "state": "file",
  46314. "__id__": "apache_conf",
  46315. "fun": "managed",
  46316. "__env__": "base",
  46317. "__sls__": "blah",
  46318. "order": 10002
  46319. }
  46320. ]
  46321. .ft P
  46322. .fi
  46323. .UNINDENT
  46324. .UNINDENT
  46325. .sp
  46326. This tutorial discusses the Low Data evaluation and the state runtime.
  46327. .SS Ordering Layers
  46328. .sp
  46329. Salt defines 2 order interfaces which are evaluated in the state runtime and
  46330. defines these orders in a number of passes.
  46331. .SS Definition Order
  46332. .sp
  46333. \fBNOTE:\fP
  46334. .INDENT 0.0
  46335. .INDENT 3.5
  46336. The Definition Order system can be disabled by turning the option
  46337. \fBstate_auto_order\fP to \fBFalse\fP in the master configuration file.
  46338. .UNINDENT
  46339. .UNINDENT
  46340. .sp
  46341. The top level of ordering is the \fIDefinition Order\fP\&. The \fIDefinition Order\fP
  46342. is the order in which states are defined in salt formulas. This is very
  46343. straightforward on basic states which do not contain \fBinclude\fP statements
  46344. or a \fBtop\fP file, as the states are just ordered from the top of the file,
  46345. but the include system starts to bring in some simple rules for how the
  46346. \fIDefinition Order\fP is defined.
  46347. .sp
  46348. Looking back at the "Low Data" and "High Data" shown above, the order key has
  46349. been transparently added to the data to enable the \fIDefinition Order\fP\&.
  46350. .SS The Include Statement
  46351. .sp
  46352. Basically, if there is an include statement in a formula, then the formulas
  46353. which are included will be run BEFORE the contents of the formula which
  46354. is including them. Also, the include statement is a list, so they will be
  46355. loaded in the order in which they are included.
  46356. .sp
  46357. In the following case:
  46358. .sp
  46359. \fBfoo.sls\fP
  46360. .INDENT 0.0
  46361. .INDENT 3.5
  46362. .sp
  46363. .nf
  46364. .ft C
  46365. include:
  46366. \- bar
  46367. \- baz
  46368. .ft P
  46369. .fi
  46370. .UNINDENT
  46371. .UNINDENT
  46372. .sp
  46373. \fBbar.sls\fP
  46374. .INDENT 0.0
  46375. .INDENT 3.5
  46376. .sp
  46377. .nf
  46378. .ft C
  46379. include:
  46380. \- quo
  46381. .ft P
  46382. .fi
  46383. .UNINDENT
  46384. .UNINDENT
  46385. .sp
  46386. \fBbaz.sls\fP
  46387. .INDENT 0.0
  46388. .INDENT 3.5
  46389. .sp
  46390. .nf
  46391. .ft C
  46392. include:
  46393. \- qux
  46394. .ft P
  46395. .fi
  46396. .UNINDENT
  46397. .UNINDENT
  46398. .sp
  46399. In the above case if \fBstate.apply foo\fP were called then the formulas will be
  46400. loaded in the following order:
  46401. .INDENT 0.0
  46402. .IP 1. 3
  46403. quo
  46404. .IP 2. 3
  46405. bar
  46406. .IP 3. 3
  46407. qux
  46408. .IP 4. 3
  46409. baz
  46410. .IP 5. 3
  46411. foo
  46412. .UNINDENT
  46413. .SS The \fIorder\fP Flag
  46414. .sp
  46415. The \fIDefinition Order\fP happens transparently in the background, but the
  46416. ordering can be explicitly overridden using the \fBorder\fP flag in states:
  46417. .INDENT 0.0
  46418. .INDENT 3.5
  46419. .sp
  46420. .nf
  46421. .ft C
  46422. apache:
  46423. pkg.installed:
  46424. \- name: httpd
  46425. \- order: 1
  46426. .ft P
  46427. .fi
  46428. .UNINDENT
  46429. .UNINDENT
  46430. .sp
  46431. This order flag will over ride the definition order, this makes it very
  46432. simple to create states that are always executed first, last or in specific
  46433. stages, a great example is defining a number of package repositories that
  46434. need to be set up before anything else, or final checks that need to be
  46435. run at the end of a state run by using \fBorder: last\fP or \fBorder: \-1\fP\&.
  46436. .sp
  46437. When the order flag is explicitly set the \fIDefinition Order\fP system will omit
  46438. setting an order for that state and directly use the order flag defined.
  46439. .SS Lexicographical Fall\-back
  46440. .sp
  46441. Salt states were written to ALWAYS execute in the same order. Before the
  46442. introduction of \fIDefinition Order\fP in version 0.17.0 everything was ordered
  46443. lexicographically according to the name of the state, then function then id.
  46444. .sp
  46445. This is the way Salt has always ensured that states always run in the same
  46446. order regardless of where they are deployed, the addition of the
  46447. \fIDefinition Order\fP method mealy makes this finite ordering easier to follow.
  46448. .sp
  46449. The lexicographical ordering is still applied but it only has any effect when
  46450. two order statements collide. This means that if multiple states are assigned
  46451. the same order number that they will fall back to lexicographical ordering
  46452. to ensure that every execution still happens in a finite order.
  46453. .sp
  46454. \fBNOTE:\fP
  46455. .INDENT 0.0
  46456. .INDENT 3.5
  46457. If running with \fBstate_auto_order: False\fP the \fBorder\fP key is not
  46458. set automatically, since the Lexicographical order can be derived
  46459. from other keys.
  46460. .UNINDENT
  46461. .UNINDENT
  46462. .SS Requisite Ordering
  46463. .sp
  46464. Salt states are fully declarative, in that they are written to declare the
  46465. state in which a system should be. This means that components can require that
  46466. other components have been set up successfully. Unlike the other ordering
  46467. systems, the \fIRequisite\fP system in Salt is evaluated at runtime.
  46468. .sp
  46469. The requisite system is also built to ensure that the ordering of execution
  46470. never changes, but is always the same for a given set of states. This is
  46471. accomplished by using a runtime that processes states in a completely
  46472. predictable order instead of using an event loop based system like other
  46473. declarative configuration management systems.
  46474. .SS Runtime Requisite Evaluation
  46475. .sp
  46476. The requisite system is evaluated as the components are found, and the
  46477. requisites are always evaluated in the same order. This explanation will
  46478. be followed by an example, as the raw explanation may be a little dizzying
  46479. at first as it creates a linear dependency evaluation sequence.
  46480. .sp
  46481. The "Low Data" is an ordered list or dictionaries, the state runtime evaluates
  46482. each dictionary in the order in which they are arranged in the list. When
  46483. evaluating a single dictionary it is checked for requisites, requisites are
  46484. evaluated in order, \fBrequire\fP then \fBwatch\fP then \fBprereq\fP\&.
  46485. .sp
  46486. \fBNOTE:\fP
  46487. .INDENT 0.0
  46488. .INDENT 3.5
  46489. If using requisite in statements like require_in and watch_in these will
  46490. be compiled down to require and watch statements before runtime evaluation.
  46491. .UNINDENT
  46492. .UNINDENT
  46493. .sp
  46494. Each requisite contains an ordered list of requisites, these requisites are
  46495. looked up in the list of dictionaries and then executed. Once all requisites
  46496. have been evaluated and executed then the requiring state can safely be run
  46497. (or not run if requisites have not been met).
  46498. .sp
  46499. This means that the requisites are always evaluated in the same order, again
  46500. ensuring one of the core design principals of Salt\(aqs State system to ensure
  46501. that execution is always finite is intact.
  46502. .SS Simple Runtime Evaluation Example
  46503. .sp
  46504. Given the above "Low Data" the states will be evaluated in the following order:
  46505. .INDENT 0.0
  46506. .IP 1. 3
  46507. The pkg.installed is executed ensuring that the apache package is
  46508. installed, it contains no requisites and is therefore the first defined
  46509. state to execute.
  46510. .IP 2. 3
  46511. The service.running state is evaluated but NOT executed, a watch requisite
  46512. is found, therefore they are read in order, the runtime first checks for
  46513. the file, sees that it has not been executed and calls for the file state
  46514. to be evaluated.
  46515. .IP 3. 3
  46516. The file state is evaluated AND executed, since it, like the pkg state does
  46517. not contain any requisites.
  46518. .IP 4. 3
  46519. The evaluation of the service state continues, it next checks the pkg
  46520. requisite and sees that it is met, with all requisites met the service
  46521. state is now executed.
  46522. .UNINDENT
  46523. .SS Best Practice
  46524. .sp
  46525. The best practice in Salt is to choose a method and stick with it, official
  46526. states are written using requisites for all associations since requisites
  46527. create clean, traceable dependency trails and make for the most portable
  46528. formulas. To accomplish something similar to how classical imperative
  46529. systems function all requisites can be omitted and the \fBfailhard\fP option
  46530. then set to \fBTrue\fP in the master configuration, this will stop all state runs at
  46531. the first instance of a failure.
  46532. .sp
  46533. In the end, using requisites creates very tight and fine grained states,
  46534. not using requisites makes full sequence runs and while slightly easier
  46535. to write, and gives much less control over the executions.
  46536. .SS Extending External SLS Data
  46537. .sp
  46538. Sometimes a state defined in one SLS file will need to be modified from a
  46539. separate SLS file. A good example of this is when an argument needs to be
  46540. overwritten or when a service needs to watch an additional state.
  46541. .SS The Extend Declaration
  46542. .sp
  46543. The standard way to extend is via the extend declaration. The extend
  46544. declaration is a top level declaration like \fBinclude\fP and encapsulates ID
  46545. declaration data included from other SLS files. A standard extend looks like
  46546. this:
  46547. .INDENT 0.0
  46548. .INDENT 3.5
  46549. .sp
  46550. .nf
  46551. .ft C
  46552. include:
  46553. \- http
  46554. \- ssh
  46555. extend:
  46556. apache:
  46557. file:
  46558. \- name: /etc/httpd/conf/httpd.conf
  46559. \- source: salt://http/httpd2.conf
  46560. ssh\-server:
  46561. service:
  46562. \- watch:
  46563. \- file: /etc/ssh/banner
  46564. /etc/ssh/banner:
  46565. file.managed:
  46566. \- source: salt://ssh/banner
  46567. .ft P
  46568. .fi
  46569. .UNINDENT
  46570. .UNINDENT
  46571. .sp
  46572. A few critical things happened here, first off the SLS files that are going to
  46573. be extended are included, then the extend dec is defined. Under the extend dec
  46574. 2 IDs are extended, the apache ID\(aqs file state is overwritten with a new name
  46575. and source. Then the ssh server is extended to watch the banner file in
  46576. addition to anything it is already watching.
  46577. .SS Extend is a Top Level Declaration
  46578. .sp
  46579. This means that \fBextend\fP can only be called once in an sls, if it is used
  46580. twice then only one of the extend blocks will be read. So this is WRONG:
  46581. .INDENT 0.0
  46582. .INDENT 3.5
  46583. .sp
  46584. .nf
  46585. .ft C
  46586. include:
  46587. \- http
  46588. \- ssh
  46589. extend:
  46590. apache:
  46591. file:
  46592. \- name: /etc/httpd/conf/httpd.conf
  46593. \- source: salt://http/httpd2.conf
  46594. # Second extend will overwrite the first!! Only make one
  46595. extend:
  46596. ssh\-server:
  46597. service:
  46598. \- watch:
  46599. \- file: /etc/ssh/banner
  46600. .ft P
  46601. .fi
  46602. .UNINDENT
  46603. .UNINDENT
  46604. .SS The Requisite "in" Statement
  46605. .sp
  46606. Since one of the most common things to do when extending another SLS is to add
  46607. states for a service to watch, or anything for a watcher to watch, the
  46608. requisite in statement was added to 0.9.8 to make extending the watch and
  46609. require lists easier. The ssh\-server extend statement above could be more
  46610. cleanly defined like so:
  46611. .INDENT 0.0
  46612. .INDENT 3.5
  46613. .sp
  46614. .nf
  46615. .ft C
  46616. include:
  46617. \- ssh
  46618. /etc/ssh/banner:
  46619. file.managed:
  46620. \- source: salt://ssh/banner
  46621. \- watch_in:
  46622. \- service: ssh\-server
  46623. .ft P
  46624. .fi
  46625. .UNINDENT
  46626. .UNINDENT
  46627. .SS Rules to Extend By
  46628. .sp
  46629. There are a few rules to remember when extending states:
  46630. .INDENT 0.0
  46631. .IP 1. 3
  46632. Always include the SLS being extended with an include declaration
  46633. .IP 2. 3
  46634. Requisites (watch and require) are appended to, everything else is
  46635. overwritten
  46636. .IP 3. 3
  46637. extend is a top level declaration, like an ID declaration, cannot be
  46638. declared twice in a single SLS
  46639. .IP 4. 3
  46640. Many IDs can be extended under the extend declaration
  46641. .UNINDENT
  46642. .SS Failhard Global Option
  46643. .sp
  46644. Normally, when a state fails Salt continues to execute the remainder of the
  46645. defined states and will only refuse to execute states that require the failed
  46646. state.
  46647. .sp
  46648. But the situation may exist, where you would want all state execution to stop
  46649. if a single state execution fails. The capability to do this is called
  46650. \fBfailing hard\fP\&.
  46651. .SS State Level Failhard
  46652. .sp
  46653. A single state can have a failhard set, this means that if this individual
  46654. state fails that all state execution will immediately stop. This is a great
  46655. thing to do if there is a state that sets up a critical config file and
  46656. setting a require for each state that reads the config would be cumbersome.
  46657. A good example of this would be setting up a package manager early on:
  46658. .INDENT 0.0
  46659. .INDENT 3.5
  46660. .sp
  46661. .nf
  46662. .ft C
  46663. /etc/yum.repos.d/company.repo:
  46664. file.managed:
  46665. \- source: salt://company/yumrepo.conf
  46666. \- user: root
  46667. \- group: root
  46668. \- mode: 644
  46669. \- order: 1
  46670. \- failhard: True
  46671. .ft P
  46672. .fi
  46673. .UNINDENT
  46674. .UNINDENT
  46675. .sp
  46676. In this situation, the yum repo is going to be configured before other states,
  46677. and if it fails to lay down the config file, than no other states will be
  46678. executed.
  46679. It is possible to override a Global Failhard (see below) by explicitly setting
  46680. it to \fBFalse\fP in the state.
  46681. .SS Global Failhard
  46682. .sp
  46683. It may be desired to have failhard be applied to every state that is executed,
  46684. if this is the case, then failhard can be set in the master configuration
  46685. file. Setting failhard in the master configuration file will result in failing
  46686. hard when any minion gathering states from the master have a state fail.
  46687. .sp
  46688. This is NOT the default behavior, normally Salt will only fail states that
  46689. require a failed state.
  46690. .sp
  46691. Using the global failhard is generally not recommended, since it can result
  46692. in states not being executed or even checked. It can also be confusing to
  46693. see states failhard if an admin is not actively aware that the failhard has
  46694. been set.
  46695. .sp
  46696. To use the global failhard set \fBfailhard\fP to \fBTrue\fP in the
  46697. master configuration file.
  46698. .SS Global State Arguments
  46699. .sp
  46700. \fBNOTE:\fP
  46701. .INDENT 0.0
  46702. .INDENT 3.5
  46703. This documentation has been moved here\&.
  46704. .UNINDENT
  46705. .UNINDENT
  46706. .SS Highstate data structure definitions
  46707. .SS The Salt State Tree
  46708. .sp
  46709. A state tree is a collection of \fBSLS\fP files and directories that live under the directory
  46710. specified in \fBfile_roots\fP\&.
  46711. .sp
  46712. \fBNOTE:\fP
  46713. .INDENT 0.0
  46714. .INDENT 3.5
  46715. Directory names or filenames in the state tree cannot contain a period, with the
  46716. exception of the period in the .sls file suffix.
  46717. .UNINDENT
  46718. .UNINDENT
  46719. .SS Top file
  46720. .sp
  46721. The main state file that instructs minions what environment and modules to use
  46722. during state execution.
  46723. .sp
  46724. Configurable via \fBstate_top\fP\&.
  46725. .sp
  46726. \fBSEE ALSO:\fP
  46727. .INDENT 0.0
  46728. .INDENT 3.5
  46729. A detailed description of the top file
  46730. .UNINDENT
  46731. .UNINDENT
  46732. .SS Include declaration
  46733. .sp
  46734. Defines a list of \fI\%Module reference\fP strings to include in this \fBSLS\fP\&.
  46735. .sp
  46736. Occurs only in the top level of the SLS data structure.
  46737. .sp
  46738. Example:
  46739. .INDENT 0.0
  46740. .INDENT 3.5
  46741. .sp
  46742. .nf
  46743. .ft C
  46744. include:
  46745. \- edit.vim
  46746. \- http.server
  46747. .ft P
  46748. .fi
  46749. .UNINDENT
  46750. .UNINDENT
  46751. .SS Module reference
  46752. .sp
  46753. The name of a SLS module defined by a separate SLS file and residing on
  46754. the Salt Master. A module named \fBedit.vim\fP is a reference to the SLS
  46755. file \fBsalt://edit/vim.sls\fP\&.
  46756. .SS ID declaration
  46757. .sp
  46758. Defines an individual highstate component. Always
  46759. references a value of a dictionary containing keys referencing
  46760. \fI\%State declaration\fP and \fI\%Requisite declaration\fP\&. Can be overridden by
  46761. a \fI\%Name declaration\fP or a \fI\%Names declaration\fP\&.
  46762. .sp
  46763. Occurs on the top level or under the \fI\%Extend declaration\fP\&.
  46764. .sp
  46765. Must be unique across entire state tree. If the same ID declaration is
  46766. used twice, only the first one matched will be used. All subsequent
  46767. ID declarations with the same name will be ignored.
  46768. .sp
  46769. \fBNOTE:\fP
  46770. .INDENT 0.0
  46771. .INDENT 3.5
  46772. Naming gotchas
  46773. .sp
  46774. In Salt versions earlier than 0.9.7, ID declarations containing dots would
  46775. result in unpredictable output.
  46776. .UNINDENT
  46777. .UNINDENT
  46778. .SS Extend declaration
  46779. .sp
  46780. Extends a \fI\%Name declaration\fP from an included \fBSLS module\fP\&. The
  46781. keys of the extend declaration always refer to an existing
  46782. \fI\%ID declaration\fP which have been defined in included \fBSLS modules\fP\&.
  46783. .sp
  46784. Occurs only in the top level and defines a dictionary.
  46785. .sp
  46786. States cannot be extended more than once in a single state run.
  46787. .sp
  46788. Extend declarations are useful for adding\-to or overriding parts of a
  46789. \fI\%State declaration\fP that is defined in another \fBSLS\fP file. In the
  46790. following contrived example, the shown \fBmywebsite.sls\fP file is \fBinclude\fP
  46791. \-ing and \fBextend\fP \-ing the \fBapache.sls\fP module in order to add a \fBwatch\fP
  46792. declaration that will restart Apache whenever the Apache configuration file,
  46793. \fBmywebsite\fP changes.
  46794. .INDENT 0.0
  46795. .INDENT 3.5
  46796. .sp
  46797. .nf
  46798. .ft C
  46799. include:
  46800. \- apache
  46801. extend:
  46802. apache:
  46803. service:
  46804. \- watch:
  46805. \- file: mywebsite
  46806. mywebsite:
  46807. file.managed:
  46808. \- name: /var/www/mysite
  46809. .ft P
  46810. .fi
  46811. .UNINDENT
  46812. .UNINDENT
  46813. .sp
  46814. \fBSEE ALSO:\fP
  46815. .INDENT 0.0
  46816. .INDENT 3.5
  46817. watch_in and require_in
  46818. .sp
  46819. Sometimes it is more convenient to use the watch_in or require_in syntax
  46820. instead of extending another \fBSLS\fP file.
  46821. .sp
  46822. State Requisites
  46823. .UNINDENT
  46824. .UNINDENT
  46825. .SS State declaration
  46826. .sp
  46827. A list which contains one string defining the \fI\%Function declaration\fP and
  46828. any number of \fI\%Function arg declaration\fP dictionaries.
  46829. .sp
  46830. Can, optionally, contain a number of additional components like the
  46831. name override components — \fI\%name\fP and
  46832. \fI\%names\fP\&. Can also contain \fI\%requisite
  46833. declarations\fP\&.
  46834. .sp
  46835. Occurs under an \fI\%ID declaration\fP\&.
  46836. .SS Requisite declaration
  46837. .sp
  46838. A list containing \fI\%requisite references\fP\&.
  46839. .sp
  46840. Used to build the action dependency tree. While Salt states are made to
  46841. execute in a deterministic order, this order is managed by requiring
  46842. and watching other Salt states.
  46843. .sp
  46844. Occurs as a list component under a \fI\%State declaration\fP or as a
  46845. key under an \fI\%ID declaration\fP\&.
  46846. .SS Requisite reference
  46847. .sp
  46848. A single key dictionary. The key is the name of the referenced
  46849. \fI\%State declaration\fP and the value is the ID of the referenced
  46850. \fI\%ID declaration\fP\&.
  46851. .sp
  46852. Occurs as a single index in a \fI\%Requisite declaration\fP list.
  46853. .SS Function declaration
  46854. .sp
  46855. The name of the function to call within the state. A state declaration
  46856. can contain only a single function declaration.
  46857. .sp
  46858. For example, the following state declaration calls the \fBinstalled\fP function in the \fBpkg\fP state module:
  46859. .INDENT 0.0
  46860. .INDENT 3.5
  46861. .sp
  46862. .nf
  46863. .ft C
  46864. httpd:
  46865. pkg.installed: []
  46866. .ft P
  46867. .fi
  46868. .UNINDENT
  46869. .UNINDENT
  46870. .sp
  46871. The function can be declared inline with the state as a shortcut.
  46872. The actual data structure is compiled to this form:
  46873. .INDENT 0.0
  46874. .INDENT 3.5
  46875. .sp
  46876. .nf
  46877. .ft C
  46878. httpd:
  46879. pkg:
  46880. \- installed
  46881. .ft P
  46882. .fi
  46883. .UNINDENT
  46884. .UNINDENT
  46885. .sp
  46886. Where the function is a string in the body of the state declaration.
  46887. Technically when the function is declared in dot notation the compiler
  46888. converts it to be a string in the state declaration list. Note that the
  46889. use of the first example more than once in an ID declaration is invalid
  46890. yaml.
  46891. .sp
  46892. INVALID:
  46893. .INDENT 0.0
  46894. .INDENT 3.5
  46895. .sp
  46896. .nf
  46897. .ft C
  46898. httpd:
  46899. pkg.installed
  46900. service.running
  46901. .ft P
  46902. .fi
  46903. .UNINDENT
  46904. .UNINDENT
  46905. .sp
  46906. When passing a function without arguments and another state declaration
  46907. within a single ID declaration, then the long or "standard" format
  46908. needs to be used since otherwise it does not represent a valid data
  46909. structure.
  46910. .sp
  46911. VALID:
  46912. .INDENT 0.0
  46913. .INDENT 3.5
  46914. .sp
  46915. .nf
  46916. .ft C
  46917. httpd:
  46918. pkg.installed: []
  46919. service.running: []
  46920. .ft P
  46921. .fi
  46922. .UNINDENT
  46923. .UNINDENT
  46924. .sp
  46925. Occurs as the only index in the \fI\%State declaration\fP list.
  46926. .SS Function arg declaration
  46927. .sp
  46928. A single key dictionary referencing a Python type which is to be passed
  46929. to the named \fI\%Function declaration\fP as a parameter. The type must
  46930. be the data type expected by the function.
  46931. .sp
  46932. Occurs under a \fI\%Function declaration\fP\&.
  46933. .sp
  46934. For example in the following state declaration \fBuser\fP, \fBgroup\fP, and
  46935. \fBmode\fP are passed as arguments to the \fBmanaged\fP function in the \fBfile\fP state module:
  46936. .INDENT 0.0
  46937. .INDENT 3.5
  46938. .sp
  46939. .nf
  46940. .ft C
  46941. /etc/http/conf/http.conf:
  46942. file.managed:
  46943. \- user: root
  46944. \- group: root
  46945. \- mode: 644
  46946. .ft P
  46947. .fi
  46948. .UNINDENT
  46949. .UNINDENT
  46950. .SS Name declaration
  46951. .sp
  46952. Overrides the \fBname\fP argument of a \fI\%State declaration\fP\&. If
  46953. \fBname\fP is not specified the \fI\%ID declaration\fP satisfies the
  46954. \fBname\fP argument.
  46955. .sp
  46956. The name is always a single key dictionary referencing a string.
  46957. .sp
  46958. Overriding \fBname\fP is useful for a variety of scenarios.
  46959. .sp
  46960. For example, avoiding clashing ID declarations. The following two state
  46961. declarations cannot both have \fB/etc/motd\fP as the ID declaration:
  46962. .INDENT 0.0
  46963. .INDENT 3.5
  46964. .sp
  46965. .nf
  46966. .ft C
  46967. motd_perms:
  46968. file.managed:
  46969. \- name: /etc/motd
  46970. \- mode: 644
  46971. motd_quote:
  46972. file.append:
  46973. \- name: /etc/motd
  46974. \- text: "Of all smells, bread; of all tastes, salt."
  46975. .ft P
  46976. .fi
  46977. .UNINDENT
  46978. .UNINDENT
  46979. .sp
  46980. Another common reason to override \fBname\fP is if the ID declaration is long and
  46981. needs to be referenced in multiple places. In the example below it is much
  46982. easier to specify \fBmywebsite\fP than to specify
  46983. \fB/etc/apache2/sites\-available/mywebsite.com\fP multiple times:
  46984. .INDENT 0.0
  46985. .INDENT 3.5
  46986. .sp
  46987. .nf
  46988. .ft C
  46989. mywebsite:
  46990. file.managed:
  46991. \- name: /etc/apache2/sites\-available/mywebsite.com
  46992. \- source: salt://mywebsite.com
  46993. a2ensite mywebsite.com:
  46994. cmd.wait:
  46995. \- unless: test \-L /etc/apache2/sites\-enabled/mywebsite.com
  46996. \- watch:
  46997. \- file: mywebsite
  46998. apache2:
  46999. service.running:
  47000. \- watch:
  47001. \- file: mywebsite
  47002. .ft P
  47003. .fi
  47004. .UNINDENT
  47005. .UNINDENT
  47006. .SS Names declaration
  47007. .sp
  47008. Expands the contents of the containing \fI\%State declaration\fP into
  47009. multiple state declarations, each with its own name.
  47010. .sp
  47011. For example, given the following state declaration:
  47012. .INDENT 0.0
  47013. .INDENT 3.5
  47014. .sp
  47015. .nf
  47016. .ft C
  47017. python\-pkgs:
  47018. pkg.installed:
  47019. \- names:
  47020. \- python\-django
  47021. \- python\-crypto
  47022. \- python\-yaml
  47023. .ft P
  47024. .fi
  47025. .UNINDENT
  47026. .UNINDENT
  47027. .sp
  47028. Once converted into the lowstate data structure the above state
  47029. declaration will be expanded into the following three state declarations:
  47030. .INDENT 0.0
  47031. .INDENT 3.5
  47032. .sp
  47033. .nf
  47034. .ft C
  47035. python\-django:
  47036. pkg.installed
  47037. python\-crypto:
  47038. pkg.installed
  47039. python\-yaml:
  47040. pkg.installed
  47041. .ft P
  47042. .fi
  47043. .UNINDENT
  47044. .UNINDENT
  47045. .sp
  47046. Other values can be overridden during the expansion by providing an additional
  47047. dictionary level.
  47048. .sp
  47049. New in version 2014.7.0.
  47050. .INDENT 0.0
  47051. .INDENT 3.5
  47052. .sp
  47053. .nf
  47054. .ft C
  47055. ius:
  47056. pkgrepo.managed:
  47057. \- humanname: IUS Community Packages for Enterprise Linux 6 \- $basearch
  47058. \- gpgcheck: 1
  47059. \- baseurl: http://mirror.rackspace.com/ius/stable/CentOS/6/$basearch
  47060. \- gpgkey: http://dl.iuscommunity.org/pub/ius/IUS\-COMMUNITY\-GPG\-KEY
  47061. \- names:
  47062. \- ius
  47063. \- ius\-devel:
  47064. \- baseurl: http://mirror.rackspace.com/ius/development/CentOS/6/$basearch
  47065. .ft P
  47066. .fi
  47067. .UNINDENT
  47068. .UNINDENT
  47069. .SS Large example
  47070. .sp
  47071. Here is the layout in yaml using the names of the highdata structure
  47072. components.
  47073. .INDENT 0.0
  47074. .INDENT 3.5
  47075. .sp
  47076. .nf
  47077. .ft C
  47078. <Include Declaration>:
  47079. \- <Module Reference>
  47080. \- <Module Reference>
  47081. <Extend Declaration>:
  47082. <ID Declaration>:
  47083. [<overrides>]
  47084. # standard declaration
  47085. <ID Declaration>:
  47086. <State Module>:
  47087. \- <Function>
  47088. \- <Function Arg>
  47089. \- <Function Arg>
  47090. \- <Function Arg>
  47091. \- <Name>: <name>
  47092. \- <Requisite Declaration>:
  47093. \- <Requisite Reference>
  47094. \- <Requisite Reference>
  47095. # inline function and names
  47096. <ID Declaration>:
  47097. <State Module>.<Function>:
  47098. \- <Function Arg>
  47099. \- <Function Arg>
  47100. \- <Function Arg>
  47101. \- <Names>:
  47102. \- <name>
  47103. \- <name>
  47104. \- <name>
  47105. \- <Requisite Declaration>:
  47106. \- <Requisite Reference>
  47107. \- <Requisite Reference>
  47108. # multiple states for single id
  47109. <ID Declaration>:
  47110. <State Module>:
  47111. \- <Function>
  47112. \- <Function Arg>
  47113. \- <Name>: <name>
  47114. \- <Requisite Declaration>:
  47115. \- <Requisite Reference>
  47116. <State Module>:
  47117. \- <Function>
  47118. \- <Function Arg>
  47119. \- <Names>:
  47120. \- <name>
  47121. \- <name>
  47122. \- <Requisite Declaration>:
  47123. \- <Requisite Reference>
  47124. .ft P
  47125. .fi
  47126. .UNINDENT
  47127. .UNINDENT
  47128. .SS Include and Exclude
  47129. .sp
  47130. Salt SLS files can include other SLS files and exclude SLS files that have been
  47131. otherwise included. This allows for an SLS file to easily extend or manipulate
  47132. other SLS files.
  47133. .SS Include
  47134. .sp
  47135. When other SLS files are included, everything defined in the included SLS file
  47136. will be added to the state run. When including define a list of SLS formulas
  47137. to include:
  47138. .INDENT 0.0
  47139. .INDENT 3.5
  47140. .sp
  47141. .nf
  47142. .ft C
  47143. include:
  47144. \- http
  47145. \- libvirt
  47146. .ft P
  47147. .fi
  47148. .UNINDENT
  47149. .UNINDENT
  47150. .sp
  47151. The include statement will include SLS formulas from the same environment
  47152. that the including SLS formula is in. But the environment can be explicitly
  47153. defined in the configuration to override the running environment, therefore
  47154. if an SLS formula needs to be included from an external environment named "dev"
  47155. the following syntax is used:
  47156. .INDENT 0.0
  47157. .INDENT 3.5
  47158. .sp
  47159. .nf
  47160. .ft C
  47161. include:
  47162. \- dev: http
  47163. .ft P
  47164. .fi
  47165. .UNINDENT
  47166. .UNINDENT
  47167. .sp
  47168. \fBNOTE\fP: \fBinclude\fP does not simply inject the states where you place it
  47169. in the SLS file. If you need to guarantee order of execution, consider using
  47170. requisites.
  47171. .INDENT 0.0
  47172. .INDENT 3.5
  47173. .IP "Do not use dots in SLS file names or their directories"
  47174. .sp
  47175. The initial implementation of \fBtop.sls\fP and
  47176. include\-declaration followed the python import model where a slash
  47177. is represented as a period. This means that a SLS file with a period in
  47178. the name ( besides the suffix period) can not be referenced. For example,
  47179. webserver_1.0.sls is not referenceable because webserver_1.0 would refer
  47180. to the directory/file webserver_1/0.sls
  47181. .sp
  47182. The same applies for any subdirectories, this is especially \(aqtricky\(aq when
  47183. git repos are created. Another command that typically can\(aqt render its
  47184. output is \fB\(gastate.show_sls\(ga\fP of a file in a path that contains a dot.
  47185. .UNINDENT
  47186. .UNINDENT
  47187. .SS Relative Include
  47188. .sp
  47189. In Salt 0.16.0, the capability to include SLS formulas which are relative to
  47190. the running SLS formula was added. Simply precede the formula name with a
  47191. \fB\&.\fP:
  47192. .INDENT 0.0
  47193. .INDENT 3.5
  47194. .sp
  47195. .nf
  47196. .ft C
  47197. include:
  47198. \- .virt
  47199. \- .virt.hyper
  47200. .ft P
  47201. .fi
  47202. .UNINDENT
  47203. .UNINDENT
  47204. .sp
  47205. In Salt 2015.8, the ability to include SLS formulas which are relative to the
  47206. parents of the running SLS formula was added. In order to achieve this,
  47207. precede the formula name with more than one \fB\&.\fP (dot). Much like Python\(aqs
  47208. relative import abilities, two or more leading dots represent a relative
  47209. include of the parent or parents of the current package, with each \fB\&.\fP
  47210. representing one level after the first.
  47211. .sp
  47212. The following SLS configuration, if placed within \fBexample.dev.virtual\fP,
  47213. would result in \fBexample.http\fP and \fBbase\fP being included respectively:
  47214. .INDENT 0.0
  47215. .INDENT 3.5
  47216. .sp
  47217. .nf
  47218. .ft C
  47219. include:
  47220. \- ..http
  47221. \- ...base
  47222. .ft P
  47223. .fi
  47224. .UNINDENT
  47225. .UNINDENT
  47226. .SS Exclude
  47227. .sp
  47228. The exclude statement, added in Salt 0.10.3, allows an SLS to hard exclude
  47229. another SLS file or a specific id. The component is excluded after the
  47230. high data has been compiled, so nothing should be able to override an
  47231. exclude.
  47232. .sp
  47233. Since the exclude can remove an id or an sls the type of component to exclude
  47234. needs to be defined. An exclude statement that verifies that the running
  47235. highstate does not contain the \fBhttp\fP sls and the
  47236. \fB/etc/vimrc\fP id would look like this:
  47237. .INDENT 0.0
  47238. .INDENT 3.5
  47239. .sp
  47240. .nf
  47241. .ft C
  47242. exclude:
  47243. \- sls: http
  47244. \- id: /etc/vimrc
  47245. .ft P
  47246. .fi
  47247. .UNINDENT
  47248. .UNINDENT
  47249. .sp
  47250. \fBNOTE:\fP
  47251. .INDENT 0.0
  47252. .INDENT 3.5
  47253. The current state processing flow checks for duplicate IDs before
  47254. processing excludes. An error occurs if duplicate IDs are present even if
  47255. one of the IDs is targeted by an \fBexclude\fP\&.
  47256. .UNINDENT
  47257. .UNINDENT
  47258. .SS State System Layers
  47259. .sp
  47260. The Salt state system is comprised of multiple layers. While using Salt does
  47261. not require an understanding of the state layers, a deeper understanding of
  47262. how Salt compiles and manages states can be very beneficial.
  47263. .SS Function Call
  47264. .sp
  47265. The lowest layer of functionality in the state system is the direct state
  47266. function call. State executions are executions of single state functions at
  47267. the core. These individual functions are defined in state modules and can
  47268. be called directly via the \fBstate.single\fP command.
  47269. .INDENT 0.0
  47270. .INDENT 3.5
  47271. .sp
  47272. .nf
  47273. .ft C
  47274. salt \(aq*\(aq state.single pkg.installed name=\(aqvim\(aq
  47275. .ft P
  47276. .fi
  47277. .UNINDENT
  47278. .UNINDENT
  47279. .SS Low Chunk
  47280. .sp
  47281. The low chunk is the bottom of the Salt state compiler. This is a data
  47282. representation of a single function call. The low chunk is sent to the state
  47283. caller and used to execute a single state function.
  47284. .sp
  47285. A single low chunk can be executed manually via the \fBstate.low\fP command.
  47286. .INDENT 0.0
  47287. .INDENT 3.5
  47288. .sp
  47289. .nf
  47290. .ft C
  47291. salt \(aq*\(aq state.low \(aq{name: vim, state: pkg, fun: installed}\(aq
  47292. .ft P
  47293. .fi
  47294. .UNINDENT
  47295. .UNINDENT
  47296. .sp
  47297. The passed data reflects what the state execution system gets after compiling
  47298. the data down from sls formulas.
  47299. .SS Low State
  47300. .sp
  47301. The \fILow State\fP layer is the list of low chunks "evaluated" in order. To see
  47302. what the low state looks like for a highstate, run:
  47303. .INDENT 0.0
  47304. .INDENT 3.5
  47305. .sp
  47306. .nf
  47307. .ft C
  47308. salt \(aq*\(aq state.show_lowstate
  47309. .ft P
  47310. .fi
  47311. .UNINDENT
  47312. .UNINDENT
  47313. .sp
  47314. This will display the raw lowstate in the order which each low chunk will be
  47315. evaluated. The order of evaluation is not necessarily the order of execution,
  47316. since requisites are evaluated at runtime. Requisite execution and evaluation
  47317. is finite; this means that the order of execution can be ascertained with 100%
  47318. certainty based on the order of the low state.
  47319. .SS High Data
  47320. .sp
  47321. High data is the data structure represented in YAML via SLS files. The High
  47322. data structure is created by merging the data components rendered inside sls
  47323. files (or other render systems). The High data can be easily viewed by
  47324. executing the \fBstate.show_highstate\fP or \fBstate.show_sls\fP functions. Since
  47325. this data is a somewhat complex data structure, it may be easier to read using
  47326. the json, yaml, or pprint outputters:
  47327. .INDENT 0.0
  47328. .INDENT 3.5
  47329. .sp
  47330. .nf
  47331. .ft C
  47332. salt \(aq*\(aq state.show_highstate \-\-out yaml
  47333. salt \(aq*\(aq state.show_sls edit.vim \-\-out pprint
  47334. .ft P
  47335. .fi
  47336. .UNINDENT
  47337. .UNINDENT
  47338. .SS SLS
  47339. .sp
  47340. Above "High Data", the logical layers are no longer technically required to be
  47341. executed, or to be executed in a hierarchy. This means that how the High data
  47342. is generated is optional and very flexible. The SLS layer allows for many
  47343. mechanisms to be used to render sls data from files or to use the fileserver
  47344. backend to generate sls and file data from external systems.
  47345. .sp
  47346. The SLS layer can be called directly to execute individual sls formulas.
  47347. .sp
  47348. \fBNOTE:\fP
  47349. .INDENT 0.0
  47350. .INDENT 3.5
  47351. SLS Formulas have historically been called "SLS files". This is because a
  47352. single SLS was only constituted in a single file. Now the term
  47353. "SLS Formula" better expresses how a compartmentalized SLS can be expressed
  47354. in a much more dynamic way by combining pillar and other sources, and the
  47355. SLS can be dynamically generated.
  47356. .UNINDENT
  47357. .UNINDENT
  47358. .sp
  47359. To call a single SLS formula named \fBedit.vim\fP, execute \fBstate.apply\fP and pass \fBedit.vim\fP as an argument:
  47360. .INDENT 0.0
  47361. .INDENT 3.5
  47362. .sp
  47363. .nf
  47364. .ft C
  47365. salt \(aq*\(aq state.apply edit.vim
  47366. .ft P
  47367. .fi
  47368. .UNINDENT
  47369. .UNINDENT
  47370. .SS HighState
  47371. .sp
  47372. Calling SLS directly logically assigns what states should be executed from the
  47373. context of the calling minion. The Highstate layer is used to allow for full
  47374. contextual assignment of what is executed where to be tied to groups of, or
  47375. individual, minions entirely from the master. This means that the environment of
  47376. a minion, and all associated execution data pertinent to said minion, can be
  47377. assigned from the master without needing to execute or configure anything on
  47378. the target minion. This also means that the minion can independently retrieve
  47379. information about its complete configuration from the master.
  47380. .sp
  47381. To execute the highstate use \fBstate.apply\fP:
  47382. .INDENT 0.0
  47383. .INDENT 3.5
  47384. .sp
  47385. .nf
  47386. .ft C
  47387. salt \(aq*\(aq state.apply
  47388. .ft P
  47389. .fi
  47390. .UNINDENT
  47391. .UNINDENT
  47392. .SS Orchestrate
  47393. .sp
  47394. The orchestrate layer expresses the highest functional layer of Salt\(aqs automated
  47395. logic systems. The Overstate allows for stateful and functional orchestration
  47396. of routines from the master. The orchestrate defines in data execution stages
  47397. which minions should execute states, or functions, and in what order using
  47398. requisite logic.
  47399. .SS The Orchestrate Runner
  47400. .sp
  47401. \fBNOTE:\fP
  47402. .INDENT 0.0
  47403. .INDENT 3.5
  47404. This documentation has been moved here\&.
  47405. .UNINDENT
  47406. .UNINDENT
  47407. .SS Ordering States
  47408. .sp
  47409. The way in which configuration management systems are executed is a hotly
  47410. debated topic in the configuration management world. Two major philosophies
  47411. exist on the subject, to either execute in an imperative fashion where things
  47412. are executed in the order in which they are defined, or in a declarative
  47413. fashion where dependencies need to be mapped between objects.
  47414. .sp
  47415. Imperative ordering is finite and generally considered easier to write, but
  47416. declarative ordering is much more powerful and flexible but generally considered
  47417. more difficult to create.
  47418. .sp
  47419. Salt has been created to get the best of both worlds. States are evaluated in
  47420. a finite order, which guarantees that states are always executed in the same
  47421. order, and the states runtime is declarative, making Salt fully aware of
  47422. dependencies via the \fIrequisite\fP system.
  47423. .SS State Auto Ordering
  47424. .sp
  47425. Salt always executes states in a finite manner, meaning that they will always
  47426. execute in the same order regardless of the system that is executing them. This
  47427. evaluation order makes it easy to know what order the states will be executed in,
  47428. but it is important to note that the requisite system will override the ordering
  47429. defined in the files, and the \fBorder\fP option, described below, will also
  47430. override the order in which states are executed.
  47431. .sp
  47432. This ordering system can be disabled in preference of lexicographic (classic)
  47433. ordering by setting the \fBstate_auto_order\fP option to \fBFalse\fP in the master
  47434. configuration file. Otherwise, \fBstate_auto_order\fP defaults to \fBTrue\fP\&.
  47435. .sp
  47436. How compiler ordering is managed is described further in compiler\-ordering\&.
  47437. .SS Requisite Statements
  47438. .sp
  47439. \fBNOTE:\fP
  47440. .INDENT 0.0
  47441. .INDENT 3.5
  47442. The behavior of requisites changed in version 0.9.7 of Salt. This
  47443. documentation applies to requisites in version 0.9.7 and later.
  47444. .UNINDENT
  47445. .UNINDENT
  47446. .sp
  47447. Often when setting up states any single action will require or depend on
  47448. another action. Salt allows for the building of relationships between states
  47449. with requisite statements. A requisite statement ensures that the named state
  47450. is evaluated before the state requiring it. There are three types of requisite
  47451. statements in Salt, \fBrequire\fP, \fBwatch\fP, and \fBprereq\fP\&.
  47452. .sp
  47453. These requisite statements are applied to a specific state declaration:
  47454. .INDENT 0.0
  47455. .INDENT 3.5
  47456. .sp
  47457. .nf
  47458. .ft C
  47459. httpd:
  47460. pkg.installed: []
  47461. file.managed:
  47462. \- name: /etc/httpd/conf/httpd.conf
  47463. \- source: salt://httpd/httpd.conf
  47464. \- require:
  47465. \- pkg: httpd
  47466. .ft P
  47467. .fi
  47468. .UNINDENT
  47469. .UNINDENT
  47470. .sp
  47471. In this example, the \fBrequire\fP requisite is used to declare that the file
  47472. /etc/httpd/conf/httpd.conf should only be set up if the pkg state executes
  47473. successfully.
  47474. .sp
  47475. The requisite system works by finding the states that are required and
  47476. executing them before the state that requires them. Then the required states
  47477. can be evaluated to see if they have executed correctly.
  47478. .sp
  47479. Require statements can refer to any state defined in Salt. The basic examples
  47480. are \fIpkg\fP, \fIservice\fP, and \fIfile\fP, but any used state can be referenced.
  47481. .sp
  47482. In addition to state declarations such as pkg, file, etc., \fBsls\fP type requisites
  47483. are also recognized, and essentially allow \(aqchaining\(aq of states. This provides a
  47484. mechanism to ensure the proper sequence for complex state formulas, especially when
  47485. the discrete states are split or groups into separate sls files:
  47486. .INDENT 0.0
  47487. .INDENT 3.5
  47488. .sp
  47489. .nf
  47490. .ft C
  47491. include:
  47492. \- network
  47493. httpd:
  47494. pkg.installed: []
  47495. service.running:
  47496. \- require:
  47497. \- pkg: httpd
  47498. \- sls: network
  47499. .ft P
  47500. .fi
  47501. .UNINDENT
  47502. .UNINDENT
  47503. .sp
  47504. In this example, the httpd service running state will not be applied
  47505. (i.e., the httpd service will not be started) unless both the httpd package is
  47506. installed AND the network state is satisfied.
  47507. .sp
  47508. \fBNOTE:\fP
  47509. .INDENT 0.0
  47510. .INDENT 3.5
  47511. Requisite matching
  47512. .sp
  47513. Requisites match on both the ID Declaration and the \fBname\fP parameter.
  47514. Therefore, if using the \fBpkgs\fP or \fBsources\fP argument to install
  47515. a list of packages in a pkg state, it\(aqs important to note that it is
  47516. impossible to match an individual package in the list, since all packages
  47517. are installed as a single state.
  47518. .UNINDENT
  47519. .UNINDENT
  47520. .SS Multiple Requisites
  47521. .sp
  47522. The requisite statement is passed as a list, allowing for the easy addition of
  47523. more requisites. Both requisite types can also be separately declared:
  47524. .INDENT 0.0
  47525. .INDENT 3.5
  47526. .sp
  47527. .nf
  47528. .ft C
  47529. httpd:
  47530. pkg.installed: []
  47531. service.running:
  47532. \- enable: True
  47533. \- watch:
  47534. \- file: /etc/httpd/conf/httpd.conf
  47535. \- require:
  47536. \- pkg: httpd
  47537. \- user: httpd
  47538. \- group: httpd
  47539. file.managed:
  47540. \- name: /etc/httpd/conf/httpd.conf
  47541. \- source: salt://httpd/httpd.conf
  47542. \- require:
  47543. \- pkg: httpd
  47544. user.present: []
  47545. group.present: []
  47546. .ft P
  47547. .fi
  47548. .UNINDENT
  47549. .UNINDENT
  47550. .sp
  47551. In this example, the httpd service is only going to be started if the package,
  47552. user, group, and file are executed successfully.
  47553. .SS Requisite Documentation
  47554. .sp
  47555. For detailed information on each of the individual requisites, please
  47556. look here.
  47557. .SS The Order Option
  47558. .sp
  47559. Before using the \fIorder\fP option, remember that the majority of state ordering
  47560. should be done with a requisite\-declaration, and that a requisite
  47561. declaration will override an \fIorder\fP option, so a state with order option
  47562. should not require or required by other states.
  47563. .sp
  47564. The order option is used by adding an order number to a state declaration
  47565. with the option \fIorder\fP:
  47566. .INDENT 0.0
  47567. .INDENT 3.5
  47568. .sp
  47569. .nf
  47570. .ft C
  47571. vim:
  47572. pkg.installed:
  47573. \- order: 1
  47574. .ft P
  47575. .fi
  47576. .UNINDENT
  47577. .UNINDENT
  47578. .sp
  47579. By adding the order option to \fI1\fP this ensures that the vim package will be
  47580. installed in tandem with any other state declaration set to the order \fI1\fP\&.
  47581. .sp
  47582. Any state declared without an order option will be executed after all states
  47583. with order options are executed.
  47584. .sp
  47585. But this construct can only handle ordering states from the beginning.
  47586. Certain circumstances will present a situation where it is desirable to send
  47587. a state to the end of the line. To do this, set the order to \fBlast\fP:
  47588. .INDENT 0.0
  47589. .INDENT 3.5
  47590. .sp
  47591. .nf
  47592. .ft C
  47593. vim:
  47594. pkg.installed:
  47595. \- order: last
  47596. .ft P
  47597. .fi
  47598. .UNINDENT
  47599. .UNINDENT
  47600. .SS Running States in Parallel
  47601. .sp
  47602. Introduced in Salt version \fB2017.7.0\fP it is now possible to run select states
  47603. in parallel. This is accomplished very easily by adding the \fBparallel: True\fP
  47604. option to your state declaration:
  47605. .INDENT 0.0
  47606. .INDENT 3.5
  47607. .sp
  47608. .nf
  47609. .ft C
  47610. nginx:
  47611. service.running:
  47612. \- parallel: True
  47613. .ft P
  47614. .fi
  47615. .UNINDENT
  47616. .UNINDENT
  47617. .sp
  47618. Now \fBnginx\fP will be started in a separate process from the normal state run
  47619. and will therefore not block additional states.
  47620. .SS Parallel States and Requisites
  47621. .sp
  47622. Parallel States still honor requisites. If a given state requires another state
  47623. that has been run in parallel then the state runtime will wait for the required
  47624. state to finish.
  47625. .sp
  47626. Given this example:
  47627. .INDENT 0.0
  47628. .INDENT 3.5
  47629. .sp
  47630. .nf
  47631. .ft C
  47632. sleep 10:
  47633. cmd.run:
  47634. \- parallel: True
  47635. nginx:
  47636. service.running:
  47637. \- parallel: True
  47638. \- require:
  47639. \- cmd: sleep 10
  47640. sleep 5:
  47641. cmd.run:
  47642. \- parallel: True
  47643. .ft P
  47644. .fi
  47645. .UNINDENT
  47646. .UNINDENT
  47647. .sp
  47648. The \fBsleep 10\fP will be started first, then the state system will block on
  47649. starting nginx until the \fBsleep 10\fP completes. Once nginx has been ensured to
  47650. be running then the \fBsleep 5\fP will start.
  47651. .sp
  47652. This means that the order of evaluation of Salt States and requisites are
  47653. still honored, and given that in the above case, \fBparallel: True\fP does not
  47654. actually speed things up.
  47655. .sp
  47656. To run the above state much faster make sure that the \fBsleep 5\fP is evaluated
  47657. before the \fBnginx\fP state
  47658. .INDENT 0.0
  47659. .INDENT 3.5
  47660. .sp
  47661. .nf
  47662. .ft C
  47663. sleep 10:
  47664. cmd.run:
  47665. \- parallel: True
  47666. sleep 5:
  47667. cmd.run:
  47668. \- parallel: True
  47669. nginx:
  47670. service.running:
  47671. \- parallel: True
  47672. \- require:
  47673. \- cmd: sleep 10
  47674. .ft P
  47675. .fi
  47676. .UNINDENT
  47677. .UNINDENT
  47678. .sp
  47679. Now both of the sleep calls will be started in parallel and \fBnginx\fP will still
  47680. wait for the state it requires, but while it waits the \fBsleep 5\fP state will
  47681. also complete.
  47682. .SS Things to be Careful of
  47683. .sp
  47684. Parallel States do not prevent you from creating parallel conflicts on your
  47685. system. This means that if you start multiple package installs using Salt then
  47686. the package manager will block or fail. If you attempt to manage the same file
  47687. with multiple states in parallel then the result can produce an unexpected
  47688. file.
  47689. .sp
  47690. Make sure that the states you choose to run in parallel do not conflict, or
  47691. else, like in any parallel programming environment, the outcome may not be
  47692. what you expect. Doing things like just making all states run in parallel
  47693. will almost certainly result in unexpected behavior.
  47694. .sp
  47695. With that said, running states in parallel should be safe the vast majority
  47696. of the time and the most likely culprit for unexpected behavior is running
  47697. multiple package installs in parallel.
  47698. .SS State Providers
  47699. .sp
  47700. New in version 0.9.8.
  47701. .sp
  47702. Salt predetermines what modules should be mapped to what uses based on the
  47703. properties of a system. These determinations are generally made for modules
  47704. that provide things like package and service management.
  47705. .sp
  47706. Sometimes in states, it may be necessary to use an alternative module to
  47707. provide the needed functionality. For instance, an very old Arch Linux system
  47708. may not be running systemd, so instead of using the systemd service module, you
  47709. can revert to the default service module:
  47710. .INDENT 0.0
  47711. .INDENT 3.5
  47712. .sp
  47713. .nf
  47714. .ft C
  47715. httpd:
  47716. service.running:
  47717. \- enable: True
  47718. \- provider: service
  47719. .ft P
  47720. .fi
  47721. .UNINDENT
  47722. .UNINDENT
  47723. .sp
  47724. In this instance, the basic \fBservice\fP module (which
  47725. manages \fBsysvinit\fP\-based services) will replace the
  47726. \fBsystemd\fP module which is used by default on Arch Linux.
  47727. .sp
  47728. This change only affects this one state though. If it is necessary to make this
  47729. override for most or every service, it is better to just override the provider
  47730. in the minion config file, as described here\&.
  47731. .sp
  47732. Also, keep in mind that this only works for states with an identically\-named
  47733. virtual module (\fBpkg\fP, \fBservice\fP,
  47734. etc.).
  47735. .SS Arbitrary Module Redirects
  47736. .sp
  47737. The provider statement can also be used for more powerful means, instead of
  47738. overwriting or extending the module used for the named service an arbitrary
  47739. module can be used to provide certain functionality.
  47740. .INDENT 0.0
  47741. .INDENT 3.5
  47742. .sp
  47743. .nf
  47744. .ft C
  47745. emacs:
  47746. pkg.installed:
  47747. \- provider:
  47748. \- cmd: customcmd
  47749. .ft P
  47750. .fi
  47751. .UNINDENT
  47752. .UNINDENT
  47753. .sp
  47754. In this example, the state is being instructed to use a custom module to invoke
  47755. commands.
  47756. .sp
  47757. Arbitrary module redirects can be used to dramatically change the behavior of a
  47758. given state.
  47759. .SS Requisites and Other Global State Arguments
  47760. .SS Requisites
  47761. .sp
  47762. The Salt requisite system is used to create relationships between states. This
  47763. provides a method to easily define inter\-dependencies between states. These
  47764. dependencies are expressed by declaring the relationships using state names
  47765. and IDs or names. The generalized form of a requisite target is \fB<state name>:
  47766. <ID or name>\fP\&. The specific form is defined as a Requisite Reference\&.
  47767. .sp
  47768. A common use\-case for requisites is ensuring a package has been installed before
  47769. trying to ensure the service is running. In the following example, Salt will
  47770. ensure nginx has been installed before trying to manage the service. If the
  47771. package could not be installed, Salt will not try to manage the service.
  47772. .INDENT 0.0
  47773. .INDENT 3.5
  47774. .sp
  47775. .nf
  47776. .ft C
  47777. nginx:
  47778. pkg.installed:
  47779. \- name: nginx\-light
  47780. service.running:
  47781. \- enable: True
  47782. \- require:
  47783. \- pkg: nginx
  47784. .ft P
  47785. .fi
  47786. .UNINDENT
  47787. .UNINDENT
  47788. .sp
  47789. Without the requisite defined, salt would attempt to install the package and
  47790. then attempt to manage the service even if the installation failed.
  47791. .sp
  47792. These requisites always form dependencies in a predictable single direction.
  47793. Each requisite has an alternate \fI\%<requisite>_in\fP form that
  47794. can be used to establish a "reverse" dependency\-\-useful in for loops.
  47795. .sp
  47796. In the end, a single dependency map is created and everything is executed in a
  47797. finite and predictable order.
  47798. .SS Requisite matching
  47799. .sp
  47800. Requisites typically need two pieces of information for matching:
  47801. .INDENT 0.0
  47802. .IP \(bu 2
  47803. The state module name (e.g. \fBpkg\fP or \fBservice\fP)
  47804. .IP \(bu 2
  47805. The state identifier (e.g. \fBnginx\fP or \fB/etc/nginx/nginx.conf\fP)
  47806. .UNINDENT
  47807. .INDENT 0.0
  47808. .INDENT 3.5
  47809. .sp
  47810. .nf
  47811. .ft C
  47812. nginx:
  47813. pkg.installed: []
  47814. file.managed:
  47815. \- name: /etc/nginx/nginx.conf
  47816. service.running:
  47817. \- require:
  47818. \- pkg: nginx
  47819. \- file: /etc/nginx/nginx.conf
  47820. .ft P
  47821. .fi
  47822. .UNINDENT
  47823. .UNINDENT
  47824. .SS Glob matching in requisites
  47825. .sp
  47826. New in version 0.9.8.
  47827. .sp
  47828. Glob matching is supported in requisites. This is mostly useful for file
  47829. changes. In the example below, a change in \fB/etc/apache2/httpd.conf\fP or
  47830. \fB/etc/apache2/sites\-available/default.conf\fP will reload/restart the service:
  47831. .INDENT 0.0
  47832. .INDENT 3.5
  47833. .sp
  47834. .nf
  47835. .ft C
  47836. apache2:
  47837. service.running:
  47838. \- watch:
  47839. \- file: /etc/apache2/*
  47840. .ft P
  47841. .fi
  47842. .UNINDENT
  47843. .UNINDENT
  47844. .SS Omitting state module in requisites
  47845. .sp
  47846. New in version 2016.3.0.
  47847. .sp
  47848. In version 2016.3.0, the state module name was made optional. If the state module
  47849. is omitted, all states matching the ID will be required, regardless of which
  47850. module they are using.
  47851. .INDENT 0.0
  47852. .INDENT 3.5
  47853. .sp
  47854. .nf
  47855. .ft C
  47856. \- require:
  47857. \- vim
  47858. .ft P
  47859. .fi
  47860. .UNINDENT
  47861. .UNINDENT
  47862. .SS State target matching
  47863. .sp
  47864. In order to understand how state targets are matched, it is helpful to know
  47865. how the state compiler is working\&. Consider the following
  47866. example:
  47867. .INDENT 0.0
  47868. .INDENT 3.5
  47869. .sp
  47870. .nf
  47871. .ft C
  47872. Deploy server package:
  47873. file.managed:
  47874. \- name: /usr/local/share/myapp.tar.xz
  47875. \- source: salt://myapp.tar.xz
  47876. Extract server package:
  47877. archive.extracted:
  47878. \- name: /usr/local/share/myapp
  47879. \- source: /usr/local/share/myapp.tar.xz
  47880. \- archive_format: tar
  47881. \- onchanges:
  47882. \- file: Deploy server package
  47883. .ft P
  47884. .fi
  47885. .UNINDENT
  47886. .UNINDENT
  47887. .sp
  47888. The first formula is converted to a dictionary which looks as follows (represented
  47889. as YAML, some properties omitted for simplicity) as \fIHigh Data\fP:
  47890. .INDENT 0.0
  47891. .INDENT 3.5
  47892. .sp
  47893. .nf
  47894. .ft C
  47895. Deploy server package:
  47896. file:
  47897. \- managed
  47898. \- name: /usr/local/share/myapp.tar.xz
  47899. \- source: salt://myapp.tar.xz
  47900. .ft P
  47901. .fi
  47902. .UNINDENT
  47903. .UNINDENT
  47904. .sp
  47905. The \fBfile.managed\fP format used in the formula is essentially syntactic sugar:
  47906. at the end, the target is \fBfile\fP, which is used in the \fBExtract server package\fP
  47907. state above.
  47908. .SS Identifier matching
  47909. .sp
  47910. Requisites match on both the ID Declaration and the \fBname\fP parameter.
  47911. This means that, in the "Deploy server package" example above, a \fBrequire\fP
  47912. requisite would match with \fBDeploy server package\fP \fIor\fP \fB/usr/local/share/myapp.tar.xz\fP,
  47913. so either of the following versions for "Extract server package" is correct:
  47914. .INDENT 0.0
  47915. .INDENT 3.5
  47916. .sp
  47917. .nf
  47918. .ft C
  47919. # (Archive arguments omitted for simplicity)
  47920. # Match by ID declaration
  47921. Extract server package:
  47922. archive.extracted:
  47923. \- onchanges:
  47924. \- file: Deploy server package
  47925. # Match by name parameter
  47926. Extract server package:
  47927. archive.extracted:
  47928. \- onchanges:
  47929. \- file: /usr/local/share/myapp.tar.xz
  47930. .ft P
  47931. .fi
  47932. .UNINDENT
  47933. .UNINDENT
  47934. .SS Omitting state module in requisites
  47935. .sp
  47936. New in version 2016.3.0.
  47937. .sp
  47938. In version 2016.3.0, the state module name was made optional. If the state module
  47939. is omitted, all states matching the ID will be required, regardless of which
  47940. module they are using.
  47941. .INDENT 0.0
  47942. .INDENT 3.5
  47943. .sp
  47944. .nf
  47945. .ft C
  47946. \- require:
  47947. \- vim
  47948. .ft P
  47949. .fi
  47950. .UNINDENT
  47951. .UNINDENT
  47952. .SS Requisites Types
  47953. .sp
  47954. All requisite types have a corresponding \fI\%<requisite>_in\fP form:
  47955. .INDENT 0.0
  47956. .IP \(bu 2
  47957. \fI\%require\fP: Requires that a list of target states succeed before execution
  47958. .IP \(bu 2
  47959. \fI\%onchanges\fP: Execute if any target states succeed with changes
  47960. .IP \(bu 2
  47961. \fI\%watch\fP: Similar to \fBonchanges\fP; modifies state behavior using \fBmod_watch\fP
  47962. .IP \(bu 2
  47963. \fI\%listen\fP: Similar to \fBonchanges\fP; delays execution to end of state run using \fBmod_wait\fP
  47964. .IP \(bu 2
  47965. \fI\%prereq\fP: Execute prior to target state if target state expects to produce changes
  47966. .IP \(bu 2
  47967. \fI\%onfail\fP: Execute only if a target state fails
  47968. .IP \(bu 2
  47969. \fI\%use\fP: Copy arguments from another state
  47970. .UNINDENT
  47971. .sp
  47972. Several requisite types have a corresponding \fI\%requisite_any\fP form:
  47973. .INDENT 0.0
  47974. .IP \(bu 2
  47975. \fBrequire_any\fP
  47976. .IP \(bu 2
  47977. \fBwatch_any\fP
  47978. .IP \(bu 2
  47979. \fBonchanges_any\fP
  47980. .IP \(bu 2
  47981. \fBonfail_any\fP
  47982. .UNINDENT
  47983. .sp
  47984. Lastly, onfail has one special \fBonfail_all\fP form to account for when \fIAND\fP
  47985. logic is desired instead of the default \fIOR\fP logic of onfail/onfail_any (which
  47986. are equivalent).
  47987. .sp
  47988. All requisites define specific relationships and always work with the dependency
  47989. logic defined \fI\%above\fP\&.
  47990. .SS require
  47991. .sp
  47992. The use of \fBrequire\fP builds a dependency that prevents a state from executing
  47993. until all required states execute successfully. If any required state fails,
  47994. then the state will fail due to requisites.
  47995. .sp
  47996. In the following example, the \fBservice\fP state will not be checked unless both
  47997. \fBfile\fP states execute without failure.
  47998. .INDENT 0.0
  47999. .INDENT 3.5
  48000. .sp
  48001. .nf
  48002. .ft C
  48003. nginx:
  48004. service.running:
  48005. \- require:
  48006. \- file: /etc/nginx/nginx.conf
  48007. \- file: /etc/nginx/conf.d/ssl.conf
  48008. .ft P
  48009. .fi
  48010. .UNINDENT
  48011. .UNINDENT
  48012. .SS Require SLS File
  48013. .sp
  48014. As of Salt 0.16.0, it is possible to require an entire sls file. Do this by first
  48015. including the sls file and then setting a state to \fBrequire\fP the included sls
  48016. file:
  48017. .INDENT 0.0
  48018. .INDENT 3.5
  48019. .sp
  48020. .nf
  48021. .ft C
  48022. include:
  48023. \- foo
  48024. bar:
  48025. pkg.installed:
  48026. \- require:
  48027. \- sls: foo
  48028. .ft P
  48029. .fi
  48030. .UNINDENT
  48031. .UNINDENT
  48032. .sp
  48033. This will add a \fBrequire\fP to all of the state declarations found in the given
  48034. sls file. This means that \fBbar\fP will \fBrequire\fP every state within \fBfoo\fP\&.
  48035. This makes it very easy to batch large groups of states easily in any requisite
  48036. statement.
  48037. .SS onchanges
  48038. .sp
  48039. New in version 2014.7.0.
  48040. .sp
  48041. The \fBonchanges\fP requisite makes a state only apply if the required states
  48042. generate changes, and if the watched state\(aqs "result" is \fBTrue\fP (does not fail).
  48043. This can be a useful way to execute a post hook after changing aspects of a system.
  48044. .sp
  48045. If a state has multiple \fBonchanges\fP requisites then the state will trigger
  48046. if any of the watched states changes.
  48047. .INDENT 0.0
  48048. .INDENT 3.5
  48049. .sp
  48050. .nf
  48051. .ft C
  48052. myservice:
  48053. file.managed:
  48054. \- name: /etc/myservice/myservice.conf
  48055. \- source: salt://myservice/files/myservice.conf
  48056. cmd.run:
  48057. \- name: /usr/local/sbin/run\-build
  48058. \- onchanges:
  48059. \- file: /etc/myservice/myservice.conf
  48060. .ft P
  48061. .fi
  48062. .UNINDENT
  48063. .UNINDENT
  48064. .sp
  48065. In the example above, \fBcmd.run\fP will run only if there are changes in the
  48066. \fBfile.managed\fP state.
  48067. .sp
  48068. An easy mistake to make is using \fBonchanges_in\fP when \fBonchanges\fP is the
  48069. correct choice, as seen in this next example.
  48070. .INDENT 0.0
  48071. .INDENT 3.5
  48072. .sp
  48073. .nf
  48074. .ft C
  48075. myservice:
  48076. file.managed:
  48077. \- name: /etc/myservice/myservice.conf
  48078. \- source: salt://myservice/files/myservice.conf
  48079. cmd.run:
  48080. \- name: /usr/local/sbin/run\-build
  48081. \- onchanges_in: # <\-\- broken logic
  48082. \- file: /etc/myservice/myservice.conf
  48083. .ft P
  48084. .fi
  48085. .UNINDENT
  48086. .UNINDENT
  48087. .sp
  48088. This will set up a requisite relationship in which the \fBcmd.run\fP state
  48089. always executes, and the \fBfile.managed\fP state only executes if the
  48090. \fBcmd.run\fP state has changes (which it always will, since the \fBcmd.run\fP
  48091. state includes the command results as changes).
  48092. .sp
  48093. It may semantically seem like the \fBcmd.run\fP state should only run
  48094. when there are changes in the file state, but remember that requisite
  48095. relationships involve one state watching another state, and a
  48096. \fI\%requisite_in\fP does the opposite: it forces
  48097. the specified state to watch the state with the \fBrequisite_in\fP\&.
  48098. .SS watch
  48099. .sp
  48100. A \fBwatch\fP requisite is used to add additional behavior when there are changes
  48101. in other states. This is done using the \fBmod_watch\fP function available from
  48102. the execution module and will execute any time a watched state changes.
  48103. .sp
  48104. \fBNOTE:\fP
  48105. .INDENT 0.0
  48106. .INDENT 3.5
  48107. If a state should only execute when another state has changes, and
  48108. otherwise do nothing, the \fBonchanges\fP requisite should be used instead
  48109. of \fBwatch\fP\&. \fBwatch\fP is designed to add \fIadditional\fP behavior when
  48110. there are changes, but otherwise the state executes normally.
  48111. .UNINDENT
  48112. .UNINDENT
  48113. .sp
  48114. A good example of using \fBwatch\fP is with a \fBservice.running\fP state. When a service watches a state, then
  48115. the service is reloaded/restarted when the watched state changes, in addition
  48116. to Salt ensuring that the service is running.
  48117. .INDENT 0.0
  48118. .INDENT 3.5
  48119. .sp
  48120. .nf
  48121. .ft C
  48122. ntpd:
  48123. service.running:
  48124. \- watch:
  48125. \- file: /etc/ntp.conf
  48126. file.managed:
  48127. \- name: /etc/ntp.conf
  48128. \- source: salt://ntp/files/ntp.conf
  48129. .ft P
  48130. .fi
  48131. .UNINDENT
  48132. .UNINDENT
  48133. .sp
  48134. Another useful example of \fBwatch\fP is using salt to ensure a configuration file
  48135. is present and in a correct state, ensure the service is running, and trigger
  48136. \fBservice nginx reload\fP instead of \fBservice nginx restart\fP in order to avoid
  48137. dropping any connections.
  48138. .INDENT 0.0
  48139. .INDENT 3.5
  48140. .sp
  48141. .nf
  48142. .ft C
  48143. nginx:
  48144. service.running:
  48145. \- reload: True
  48146. \- watch:
  48147. \- file: nginx
  48148. file.managed:
  48149. \- name: /etc/nginx/conf.d/tls\-settings.conf
  48150. \- source: salt://nginx/files/tls\-settings.conf
  48151. .ft P
  48152. .fi
  48153. .UNINDENT
  48154. .UNINDENT
  48155. .sp
  48156. \fBNOTE:\fP
  48157. .INDENT 0.0
  48158. .INDENT 3.5
  48159. Not all state modules contain \fBmod_watch\fP\&. If \fBmod_watch\fP is absent
  48160. from the watching state module, the \fBwatch\fP requisite behaves exactly
  48161. like a \fBrequire\fP requisite.
  48162. .UNINDENT
  48163. .UNINDENT
  48164. .sp
  48165. The state containing the \fBwatch\fP requisite is defined as the watching
  48166. state. The state specified in the \fBwatch\fP statement is defined as the watched
  48167. state. When the watched state executes, it will return a dictionary containing
  48168. a key named "changes". Here are two examples of state return dictionaries,
  48169. shown in json for clarity:
  48170. .INDENT 0.0
  48171. .INDENT 3.5
  48172. .sp
  48173. .nf
  48174. .ft C
  48175. {
  48176. "local": {
  48177. "file_|\-/tmp/foo_|\-/tmp/foo_|\-directory": {
  48178. "comment": "Directory /tmp/foo updated",
  48179. "__run_num__": 0,
  48180. "changes": {
  48181. "user": "bar"
  48182. },
  48183. "name": "/tmp/foo",
  48184. "result": true
  48185. }
  48186. }
  48187. }
  48188. {
  48189. "local": {
  48190. "pkgrepo_|\-salt\-minion_|\-salt\-minion_|\-managed": {
  48191. "comment": "Package repo \(aqsalt\-minion\(aq already configured",
  48192. "__run_num__": 0,
  48193. "changes": {},
  48194. "name": "salt\-minion",
  48195. "result": true
  48196. }
  48197. }
  48198. }
  48199. .ft P
  48200. .fi
  48201. .UNINDENT
  48202. .UNINDENT
  48203. .sp
  48204. If the "result" of the watched state is \fBTrue\fP, the watching state \fIwill
  48205. execute normally\fP, and if it is \fBFalse\fP, the watching state will never run.
  48206. This part of \fBwatch\fP mirrors the functionality of the \fBrequire\fP requisite.
  48207. .sp
  48208. If the "result" of the watched state is \fBTrue\fP \fIand\fP the "changes"
  48209. key contains a populated dictionary (changes occurred in the watched state),
  48210. then the \fBwatch\fP requisite can add additional behavior. This additional
  48211. behavior is defined by the \fBmod_watch\fP function within the watching state
  48212. module. If the \fBmod_watch\fP function exists in the watching state module, it
  48213. will be called \fIin addition to\fP the normal watching state. The return data
  48214. from the \fBmod_watch\fP function is what will be returned to the master in this
  48215. case; the return data from the main watching function is discarded.
  48216. .sp
  48217. If the "changes" key contains an empty dictionary, the \fBwatch\fP requisite acts
  48218. exactly like the \fBrequire\fP requisite (the watching state will execute if
  48219. "result" is \fBTrue\fP, and fail if "result" is \fBFalse\fP in the watched state).
  48220. .sp
  48221. \fBNOTE:\fP
  48222. .INDENT 0.0
  48223. .INDENT 3.5
  48224. If the watching state \fBchanges\fP key contains values, then \fBmod_watch\fP
  48225. will not be called. If you\(aqre using \fBwatch\fP or \fBwatch_in\fP then it\(aqs a
  48226. good idea to have a state that only enforces one attribute \- such as
  48227. splitting out \fBservice.running\fP into its own state and have
  48228. \fBservice.enabled\fP in another.
  48229. .UNINDENT
  48230. .UNINDENT
  48231. .sp
  48232. One common source of confusion is expecting \fBmod_watch\fP to be called for
  48233. every necessary change. You might be tempted to write something like this:
  48234. .INDENT 0.0
  48235. .INDENT 3.5
  48236. .sp
  48237. .nf
  48238. .ft C
  48239. httpd:
  48240. service.running:
  48241. \- enable: True
  48242. \- watch:
  48243. \- file: httpd\-config
  48244. httpd\-config:
  48245. file.managed:
  48246. \- name: /etc/httpd/conf/httpd.conf
  48247. \- source: salt://httpd/files/apache.conf
  48248. .ft P
  48249. .fi
  48250. .UNINDENT
  48251. .UNINDENT
  48252. .sp
  48253. If your service is already running but not enabled, you might expect that Salt
  48254. will be able to tell that since the config file changed your service needs to
  48255. be restarted. This is not the case. Because the service needs to be enabled,
  48256. that change will be made and \fBmod_watch\fP will never be triggered. In this
  48257. case, changes to your \fBapache.conf\fP will fail to be loaded. If you want to
  48258. ensure that your service always reloads the correct way to handle this is
  48259. either ensure that your service is not running before applying your state, or
  48260. simply make sure that \fBservice.running\fP is in a state on its own:
  48261. .INDENT 0.0
  48262. .INDENT 3.5
  48263. .sp
  48264. .nf
  48265. .ft C
  48266. enable\-httpd:
  48267. service.enabled:
  48268. \- name: httpd
  48269. start\-httpd:
  48270. service.running:
  48271. \- name: httpd
  48272. \- watch:
  48273. \- file: httpd\-config
  48274. httpd\-config:
  48275. file.managed:
  48276. \- name: /etc/httpd/conf/httpd.conf
  48277. \- source: salt://httpd/files/apache.conf
  48278. .ft P
  48279. .fi
  48280. .UNINDENT
  48281. .UNINDENT
  48282. .sp
  48283. Now that \fBservice.running\fP is its own state, changes to \fBservice.enabled\fP
  48284. will no longer prevent \fBmod_watch\fP from getting triggered, so your \fBhttpd\fP
  48285. service will get restarted like you want.
  48286. .SS listen
  48287. .sp
  48288. New in version 2014.7.0.
  48289. .sp
  48290. A \fBlisten\fP requisite is used to trigger the \fBmod_wait\fP function of an
  48291. execution module. Rather than modifying execution order, the \fBmod_wait\fP state
  48292. created by \fBlisten\fP will execute at the end of the state run.
  48293. .INDENT 0.0
  48294. .INDENT 3.5
  48295. .sp
  48296. .nf
  48297. .ft C
  48298. restart\-apache2:
  48299. service.running:
  48300. \- name: apache2
  48301. \- listen:
  48302. \- file: /etc/apache2/apache2.conf
  48303. configure\-apache2:
  48304. file.managed:
  48305. \- name: /etc/apache2/apache2.conf
  48306. \- source: salt://apache2/apache2.conf
  48307. .ft P
  48308. .fi
  48309. .UNINDENT
  48310. .UNINDENT
  48311. .sp
  48312. This example will cause apache2 to restart when the apache2.conf file is
  48313. changed, but the apache2 restart will happen at the end of the state run.
  48314. .INDENT 0.0
  48315. .INDENT 3.5
  48316. .sp
  48317. .nf
  48318. .ft C
  48319. restart\-apache2:
  48320. service.running:
  48321. \- name: apache2
  48322. configure\-apache2:
  48323. file.managed:
  48324. \- name: /etc/apache2/apache2.conf
  48325. \- source: salt://apache2/apache2.conf
  48326. \- listen_in:
  48327. \- service: apache2
  48328. .ft P
  48329. .fi
  48330. .UNINDENT
  48331. .UNINDENT
  48332. .sp
  48333. This example does the same as the above example, but puts the state argument
  48334. on the file resource, rather than the service resource.
  48335. .SS prereq
  48336. .sp
  48337. New in version 0.16.0.
  48338. .sp
  48339. The \fBprereq\fP requisite works similar to \fBonchanges\fP except that it uses the
  48340. result from \fBtest=True\fP on the observed state to determine if it should run
  48341. prior to the observed state being run.
  48342. .sp
  48343. The best way to define how \fBprereq\fP operates is displayed in the following
  48344. practical example: When a service should be shut down because underlying code
  48345. is going to change, the service should be off\-line while the update occurs. In
  48346. this example, \fBgraceful\-down\fP is the pre\-requiring state and \fBsite\-code\fP
  48347. is the pre\-required state.
  48348. .INDENT 0.0
  48349. .INDENT 3.5
  48350. .sp
  48351. .nf
  48352. .ft C
  48353. graceful\-down:
  48354. cmd.run:
  48355. \- name: service apache graceful
  48356. \- prereq:
  48357. \- file: site\-code
  48358. site\-code:
  48359. file.recurse:
  48360. \- name: /opt/site_code
  48361. \- source: salt://site/code
  48362. .ft P
  48363. .fi
  48364. .UNINDENT
  48365. .UNINDENT
  48366. .sp
  48367. In this case, the apache server will only be shut down if the site\-code state
  48368. expects to deploy fresh code via the file.recurse call. The site\-code deployment
  48369. will only be executed if the graceful\-down run completes successfully.
  48370. .sp
  48371. When a \fBprereq\fP requisite is evaluated, the pre\-required state reports if it
  48372. expects to have any changes. It does this by running the pre\-required single
  48373. state as a test\-run by enabling \fBtest=True\fP\&. This test\-run will return a
  48374. dictionary containing a key named "changes". (See the \fBwatch\fP section above
  48375. for examples of "changes" dictionaries.)
  48376. .sp
  48377. If the "changes" key contains a populated dictionary, it means that the
  48378. pre\-required state expects changes to occur when the state is actually
  48379. executed, as opposed to the test\-run. The pre\-requiring state will now
  48380. run. If the pre\-requiring state executes successfully, the pre\-required
  48381. state will then execute. If the pre\-requiring state fails, the pre\-required
  48382. state will not execute.
  48383. .sp
  48384. If the "changes" key contains an empty dictionary, this means that changes are
  48385. not expected by the pre\-required state. Neither the pre\-required state nor the
  48386. pre\-requiring state will run.
  48387. .SS onfail
  48388. .sp
  48389. New in version 2014.7.0.
  48390. .sp
  48391. The \fBonfail\fP requisite allows for reactions to happen strictly as a response
  48392. to the failure of another state. This can be used in a number of ways, such as
  48393. sending a notification or attempting an alternate task or thread of tasks when
  48394. an important state fails.
  48395. .sp
  48396. The \fBonfail\fP requisite is applied in the same way as \fBrequire\fP and \fBwatch\fP:
  48397. .INDENT 0.0
  48398. .INDENT 3.5
  48399. .sp
  48400. .nf
  48401. .ft C
  48402. primary_mount:
  48403. mount.mounted:
  48404. \- name: /mnt/share
  48405. \- device: 10.0.0.45:/share
  48406. \- fstype: nfs
  48407. backup_mount:
  48408. mount.mounted:
  48409. \- name: /mnt/share
  48410. \- device: 192.168.40.34:/share
  48411. \- fstype: nfs
  48412. \- onfail:
  48413. \- mount: primary_mount
  48414. .ft P
  48415. .fi
  48416. .UNINDENT
  48417. .UNINDENT
  48418. .INDENT 0.0
  48419. .INDENT 3.5
  48420. .sp
  48421. .nf
  48422. .ft C
  48423. build_site:
  48424. cmd.run:
  48425. \- name: /srv/web/app/build_site
  48426. notify\-build_failure:
  48427. hipchat.send_message:
  48428. \- room_id: 123456
  48429. \- message: "Building website fail on {{ salt.grains.get(\(aqid\(aq) }}"
  48430. .ft P
  48431. .fi
  48432. .UNINDENT
  48433. .UNINDENT
  48434. .sp
  48435. The default behavior of the \fBonfail\fP when multiple requisites are listed is
  48436. the opposite of other requisites in the salt state engine, it acts by default
  48437. like \fBany()\fP instead of \fBall()\fP\&. This means that when you list multiple
  48438. onfail requisites on a state, if \fIany\fP fail the requisite will be satisfied.
  48439. If you instead need \fIall\fP logic to be applied, you can use \fBonfail_all\fP
  48440. form:
  48441. .INDENT 0.0
  48442. .INDENT 3.5
  48443. .sp
  48444. .nf
  48445. .ft C
  48446. test_site_a:
  48447. cmd.run:
  48448. \- name: ping \-c1 10.0.0.1
  48449. test_site_b:
  48450. cmd.run:
  48451. \- name: ping \-c1 10.0.0.2
  48452. notify_site_down:
  48453. hipchat.send_message:
  48454. \- room_id: 123456
  48455. \- message: "Both primary and backup sites are down!"
  48456. \- onfail_all:
  48457. \- cmd: test_site_a
  48458. \- cmd: test_site_b
  48459. .ft P
  48460. .fi
  48461. .UNINDENT
  48462. .UNINDENT
  48463. .sp
  48464. In this contrived example \fInotify_site_down\fP will run when both 10.0.0.1 and
  48465. 10.0.0.2 fail to respond to ping.
  48466. .sp
  48467. \fBNOTE:\fP
  48468. .INDENT 0.0
  48469. .INDENT 3.5
  48470. Setting failhard (globally or in
  48471. the failing state) to \fBTrue\fP will cause
  48472. \fBonfail\fP, \fBonfail_in\fP and \fBonfail_any\fP requisites to be ignored.
  48473. If you want to combine a global failhard set to True with \fBonfail\fP,
  48474. \fBonfail_in\fP or \fBonfail_any\fP, you will have to explicitly set failhard
  48475. to \fBFalse\fP (overriding the global setting) in the state that could fail.
  48476. .UNINDENT
  48477. .UNINDENT
  48478. .sp
  48479. \fBNOTE:\fP
  48480. .INDENT 0.0
  48481. .INDENT 3.5
  48482. Beginning in the \fB2016.11.0\fP release of Salt, \fBonfail\fP uses OR logic for
  48483. multiple listed \fBonfail\fP requisites. Prior to the \fB2016.11.0\fP release,
  48484. \fBonfail\fP used AND logic. See \fI\%Issue #22370\fP for more information.
  48485. Beginning in the \fBNeon\fP release of Salt, a new \fBonfail_all\fP requisite
  48486. form is available if AND logic is desired.
  48487. .UNINDENT
  48488. .UNINDENT
  48489. .SS use
  48490. .sp
  48491. The \fBuse\fP requisite is used to inherit the arguments passed in another
  48492. id declaration. This is useful when many files need to have the same defaults.
  48493. .INDENT 0.0
  48494. .INDENT 3.5
  48495. .sp
  48496. .nf
  48497. .ft C
  48498. /etc/foo.conf:
  48499. file.managed:
  48500. \- source: salt://foo.conf
  48501. \- template: jinja
  48502. \- mkdirs: True
  48503. \- user: apache
  48504. \- group: apache
  48505. \- mode: 755
  48506. /etc/bar.conf:
  48507. file.managed:
  48508. \- source: salt://bar.conf
  48509. \- use:
  48510. \- file: /etc/foo.conf
  48511. .ft P
  48512. .fi
  48513. .UNINDENT
  48514. .UNINDENT
  48515. .sp
  48516. The \fBuse\fP statement was developed primarily for the networking states but
  48517. can be used on any states in Salt. This makes sense for the networking state
  48518. because it can define a long list of options that need to be applied to
  48519. multiple network interfaces.
  48520. .sp
  48521. The \fBuse\fP statement does not inherit the requisites arguments of the
  48522. targeted state. This means also a chain of \fBuse\fP requisites would not
  48523. inherit inherited options.
  48524. .SS The _in version of requisites
  48525. .sp
  48526. Direct requisites form a dependency in a single direction. This makes it possible
  48527. for Salt to detect cyclical dependencies and helps prevent faulty logic. In some
  48528. cases, often in loops, it is desirable to establish a dependency in the opposite
  48529. direction.
  48530. .sp
  48531. All direct requisites have an \fB_in\fP counterpart that behaves the same but forms
  48532. the dependency in the opposite direction. The following sls examples will produce
  48533. the exact same dependency mapping.
  48534. .INDENT 0.0
  48535. .INDENT 3.5
  48536. .sp
  48537. .nf
  48538. .ft C
  48539. httpd:
  48540. pkg.installed: []
  48541. service.running:
  48542. \- require:
  48543. \- pkg: httpd
  48544. .ft P
  48545. .fi
  48546. .UNINDENT
  48547. .UNINDENT
  48548. .INDENT 0.0
  48549. .INDENT 3.5
  48550. .sp
  48551. .nf
  48552. .ft C
  48553. httpd:
  48554. pkg.installed:
  48555. \- require_in:
  48556. \- service: httpd
  48557. service.running: []
  48558. .ft P
  48559. .fi
  48560. .UNINDENT
  48561. .UNINDENT
  48562. .sp
  48563. In the following example, Salt will not try to manage the nginx service or any
  48564. configuration files unless the nginx package is installed because of the \fBpkg:
  48565. nginx\fP requisite.
  48566. .INDENT 0.0
  48567. .INDENT 3.5
  48568. .sp
  48569. .nf
  48570. .ft C
  48571. nginx:
  48572. pkg.installed: []
  48573. service.running:
  48574. \- enable: True
  48575. \- reload: True
  48576. \- require:
  48577. \- pkg: nginx
  48578. .ft P
  48579. .fi
  48580. .UNINDENT
  48581. .UNINDENT
  48582. .sp
  48583. php.sls
  48584. .INDENT 0.0
  48585. .INDENT 3.5
  48586. .sp
  48587. .nf
  48588. .ft C
  48589. include:
  48590. \- http
  48591. php:
  48592. pkg.installed:
  48593. \- require_in:
  48594. \- service: httpd
  48595. .ft P
  48596. .fi
  48597. .UNINDENT
  48598. .UNINDENT
  48599. .sp
  48600. mod_python.sls
  48601. .INDENT 0.0
  48602. .INDENT 3.5
  48603. .sp
  48604. .nf
  48605. .ft C
  48606. include:
  48607. \- http
  48608. mod_python:
  48609. pkg.installed:
  48610. \- require_in:
  48611. \- service: httpd
  48612. .ft P
  48613. .fi
  48614. .UNINDENT
  48615. .UNINDENT
  48616. .sp
  48617. Now the httpd server will only start if both php and mod_python are first verified to
  48618. be installed. Thus allowing for a requisite to be defined "after the fact".
  48619. .INDENT 0.0
  48620. .INDENT 3.5
  48621. .sp
  48622. .nf
  48623. .ft C
  48624. {% for cfile in salt.pillar.get(\(aqnginx:config_files\(aq) %}
  48625. /etc/nginx/conf.d/{{ cfile }}:
  48626. file.managed:
  48627. \- source: salt://nginx/configs/{{ cfile }}
  48628. \- require:
  48629. \- pkg: nginx
  48630. \- listen_in:
  48631. \- service: nginx
  48632. {% endfor %}
  48633. .ft P
  48634. .fi
  48635. .UNINDENT
  48636. .UNINDENT
  48637. .sp
  48638. In this scenario, \fBlisten_in\fP is a better choice than \fBrequire_in\fP because the
  48639. \fBlisten\fP requisite will trigger \fBmod_wait\fP behavior which will wait until the
  48640. end of state execution and then reload the service.
  48641. .SS The _any version of requisites
  48642. .sp
  48643. New in version 2018.3.0.
  48644. .sp
  48645. Some requisites have an \fB_any\fP counterpart that changes the requisite behavior
  48646. from \fBall()\fP to \fBany()\fP\&.
  48647. .INDENT 0.0
  48648. .INDENT 3.5
  48649. .sp
  48650. .nf
  48651. .ft C
  48652. A:
  48653. cmd.run:
  48654. \- name: echo A
  48655. \- require_any:
  48656. \- cmd: B
  48657. \- cmd: C
  48658. B:
  48659. cmd.run:
  48660. \- name: echo B
  48661. C:
  48662. cmd.run:
  48663. \- name: /bin/false
  48664. .ft P
  48665. .fi
  48666. .UNINDENT
  48667. .UNINDENT
  48668. .sp
  48669. In this example \fIA\fP will run because at least one of the requirements specified,
  48670. \fIB\fP or \fIC\fP, will succeed.
  48671. .INDENT 0.0
  48672. .INDENT 3.5
  48673. .sp
  48674. .nf
  48675. .ft C
  48676. myservice:
  48677. pkg.installed
  48678. /etc/myservice/myservice.conf:
  48679. file.managed:
  48680. \- source: salt://myservice/files/myservice.conf
  48681. /etc/yourservice/yourservice.conf:
  48682. file.managed:
  48683. \- source: salt://yourservice/files/yourservice.conf
  48684. /usr/local/sbin/myservice/post\-changes\-hook.sh
  48685. cmd.run:
  48686. \- onchanges_any:
  48687. \- file: /etc/myservice/myservice.conf
  48688. \- file: /etc/your_service/yourservice.conf
  48689. \- require:
  48690. \- pkg: myservice
  48691. .ft P
  48692. .fi
  48693. .UNINDENT
  48694. .UNINDENT
  48695. .sp
  48696. In this example, \fIcmd.run\fP would be run only if either of the \fIfile.managed\fP
  48697. states generated changes and at least one of the watched state\(aqs "result" is
  48698. \fBTrue\fP\&.
  48699. .SS Altering States
  48700. .sp
  48701. The state altering system is used to make sure that states are evaluated exactly
  48702. as the user expects. It can be used to double check that a state preformed
  48703. exactly how it was expected to, or to make 100% sure that a state only runs
  48704. under certain conditions. The use of unless or onlyif options help make states
  48705. even more stateful. The \fBcheck_cmd\fP option helps ensure that the result of a
  48706. state is evaluated correctly.
  48707. .SS reload
  48708. .sp
  48709. \fBreload_modules\fP is a boolean option that forces salt to reload its modules
  48710. after a state finishes. \fBreload_pillar\fP and \fBreload_grains\fP can also be set.
  48711. See Reloading Modules\&.
  48712. .INDENT 0.0
  48713. .INDENT 3.5
  48714. .sp
  48715. .nf
  48716. .ft C
  48717. grains_refresh:
  48718. module.run:
  48719. \- name: saltutil.refresh_grains
  48720. \- reload_grains: true
  48721. grains_read:
  48722. module.run:
  48723. \- name: grains.items
  48724. .ft P
  48725. .fi
  48726. .UNINDENT
  48727. .UNINDENT
  48728. .SS unless
  48729. .sp
  48730. New in version 2014.7.0.
  48731. .sp
  48732. The \fBunless\fP requisite specifies that a state should only run when any of
  48733. the specified commands return \fBFalse\fP\&. The \fBunless\fP requisite operates
  48734. as NAND and is useful in giving more granular control over when a state should
  48735. execute.
  48736. .sp
  48737. \fBNOTE\fP: Under the hood \fBunless\fP calls \fBcmd.retcode\fP with
  48738. \fBpython_shell=True\fP\&. This means the commands referenced by \fBunless\fP will be
  48739. parsed by a shell, so beware of side\-effects as this shell will be run with the
  48740. same privileges as the salt\-minion. Also be aware that the boolean value is
  48741. determined by the shell\(aqs concept of \fBTrue\fP and \fBFalse\fP, rather than Python\(aqs
  48742. concept of \fBTrue\fP and \fBFalse\fP\&.
  48743. .INDENT 0.0
  48744. .INDENT 3.5
  48745. .sp
  48746. .nf
  48747. .ft C
  48748. vim:
  48749. pkg.installed:
  48750. \- unless:
  48751. \- rpm \-q vim\-enhanced
  48752. \- ls /usr/bin/vim
  48753. .ft P
  48754. .fi
  48755. .UNINDENT
  48756. .UNINDENT
  48757. .sp
  48758. In the example above, the state will only run if either the vim\-enhanced
  48759. package is not installed (returns \fBFalse\fP) or if /usr/bin/vim does not
  48760. exist (returns \fBFalse\fP). The state will run if both commands return
  48761. \fBFalse\fP\&.
  48762. .sp
  48763. However, the state will not run if both commands return \fBTrue\fP\&.
  48764. .sp
  48765. Unless checks are resolved for each name to which they are associated.
  48766. .sp
  48767. For example:
  48768. .INDENT 0.0
  48769. .INDENT 3.5
  48770. .sp
  48771. .nf
  48772. .ft C
  48773. deploy_app:
  48774. cmd.run:
  48775. \- names:
  48776. \- first_deploy_cmd
  48777. \- second_deploy_cmd
  48778. \- unless: some_check
  48779. .ft P
  48780. .fi
  48781. .UNINDENT
  48782. .UNINDENT
  48783. .sp
  48784. In the above case, \fBsome_check\fP will be run prior to _each_ name \-\- once for
  48785. \fBfirst_deploy_cmd\fP and a second time for \fBsecond_deploy_cmd\fP\&.
  48786. .sp
  48787. Changed in version 3000: The \fBunless\fP requisite can take a module as a dictionary field in unless.
  48788. The dictionary must contain an argument \fBfun\fP which is the module that is
  48789. being run, and everything else must be passed in under the args key or will
  48790. be passed as individual kwargs to the module function.
  48791. .INDENT 0.0
  48792. .INDENT 3.5
  48793. .sp
  48794. .nf
  48795. .ft C
  48796. install apache on debian based distros:
  48797. cmd.run:
  48798. \- name: make install
  48799. \- cwd: /path/to/dir/whatever\-2.1.5/
  48800. \- unless:
  48801. \- fun: file.file_exists
  48802. path: /usr/local/bin/whatever
  48803. .ft P
  48804. .fi
  48805. .UNINDENT
  48806. .UNINDENT
  48807. .INDENT 0.0
  48808. .INDENT 3.5
  48809. .sp
  48810. .nf
  48811. .ft C
  48812. set mysql root password:
  48813. debconf.set:
  48814. \- name: mysql\-server\-5.7
  48815. \- data:
  48816. \(aqmysql\-server/root_password\(aq: {\(aqtype\(aq: \(aqpassword\(aq, \(aqvalue\(aq: {{pillar[\(aqmysql.pass\(aq]}} }
  48817. \- unless:
  48818. \- fun: pkg.version
  48819. args:
  48820. \- mysql\-server\-5.7
  48821. .ft P
  48822. .fi
  48823. .UNINDENT
  48824. .UNINDENT
  48825. .SS onlyif
  48826. .sp
  48827. New in version 2014.7.0.
  48828. .sp
  48829. The \fBonlyif\fP requisite specifies that if each command listed in \fBonlyif\fP
  48830. returns \fBTrue\fP, then the state is run. If any of the specified commands
  48831. return \fBFalse\fP, the state will not run.
  48832. .sp
  48833. \fBNOTE\fP: Under the hood \fBonlyif\fP calls \fBcmd.retcode\fP with
  48834. \fBpython_shell=True\fP\&. This means the commands referenced by \fBonlyif\fP will be
  48835. parsed by a shell, so beware of side\-effects as this shell will be run with the
  48836. same privileges as the salt\-minion. Also be aware that the boolean value is
  48837. determined by the shell\(aqs concept of \fBTrue\fP and \fBFalse\fP, rather than Python\(aqs
  48838. concept of \fBTrue\fP and \fBFalse\fP\&.
  48839. .INDENT 0.0
  48840. .INDENT 3.5
  48841. .sp
  48842. .nf
  48843. .ft C
  48844. stop\-volume:
  48845. module.run:
  48846. \- name: glusterfs.stop_volume
  48847. \- m_name: work
  48848. \- onlyif:
  48849. \- gluster volume status work
  48850. \- order: 1
  48851. remove\-volume:
  48852. module.run:
  48853. \- name: glusterfs.delete
  48854. \- m_name: work
  48855. \- onlyif:
  48856. \- gluster volume info work
  48857. \- watch:
  48858. \- cmd: stop\-volume
  48859. .ft P
  48860. .fi
  48861. .UNINDENT
  48862. .UNINDENT
  48863. .sp
  48864. The above example ensures that the stop_volume and delete modules only run
  48865. if the gluster commands return a 0 ret value.
  48866. .sp
  48867. Changed in version 3000: The \fBonlyif\fP requisite can take a module as a dictionary field in onlyif.
  48868. The dictionary must contain an argument \fBfun\fP which is the module that is
  48869. being run, and everything else must be passed in under the args key or will
  48870. be passed as individual kwargs to the module function.
  48871. .INDENT 0.0
  48872. .INDENT 3.5
  48873. .sp
  48874. .nf
  48875. .ft C
  48876. install apache on redhat based distros:
  48877. pkg.latest:
  48878. \- name: httpd
  48879. \- onlyif:
  48880. \- fun: match.grain
  48881. tgt: \(aqos_family: RedHat\(aq
  48882. install apache on debian based distros:
  48883. pkg.latest:
  48884. \- name: apache2
  48885. \- onlyif:
  48886. \- fun: match.grain
  48887. tgt: \(aqos_family: Debian\(aq
  48888. .ft P
  48889. .fi
  48890. .UNINDENT
  48891. .UNINDENT
  48892. .INDENT 0.0
  48893. .INDENT 3.5
  48894. .sp
  48895. .nf
  48896. .ft C
  48897. arbitrary file example:
  48898. file.touch:
  48899. \- name: /path/to/file
  48900. \- onlyif:
  48901. \- fun: file.search
  48902. args:
  48903. \- /etc/crontab
  48904. \- \(aqentry1\(aq
  48905. .ft P
  48906. .fi
  48907. .UNINDENT
  48908. .UNINDENT
  48909. .SS Creates
  48910. .sp
  48911. New in version Sodium.
  48912. .sp
  48913. The \fBcreates\fP requisite specifies that a state should only run when any of
  48914. the specified files do not already exist. Like \fBunless\fP, \fBcreates\fP requisite
  48915. operates as NAND and is useful in giving more granular control over when a state
  48916. should execute. This was previously used by the \fBcmd\fP and
  48917. \fBdocker_container\fP states.
  48918. .INDENT 0.0
  48919. .INDENT 3.5
  48920. .INDENT 0.0
  48921. .INDENT 3.5
  48922. .sp
  48923. .nf
  48924. .ft C
  48925. contrived creates example:
  48926. file.touch:
  48927. \- name: /path/to/file
  48928. \- creates: /path/to/file
  48929. .ft P
  48930. .fi
  48931. .UNINDENT
  48932. .UNINDENT
  48933. .UNINDENT
  48934. .UNINDENT
  48935. .sp
  48936. \fBcreates\fP also accepts a list of files, in which case this state will
  48937. run if \fBany\fP of the files do not exist:
  48938. .INDENT 0.0
  48939. .INDENT 3.5
  48940. .INDENT 0.0
  48941. .INDENT 3.5
  48942. .sp
  48943. .nf
  48944. .ft C
  48945. creates list:
  48946. file.cmd:
  48947. \- name: /path/to/command
  48948. \- creates:
  48949. \- /path/file
  48950. \- /path/file2
  48951. .ft P
  48952. .fi
  48953. .UNINDENT
  48954. .UNINDENT
  48955. .UNINDENT
  48956. .UNINDENT
  48957. .SS listen
  48958. .sp
  48959. New in version 2017.7.0.
  48960. .sp
  48961. The \fBrunas\fP global option is used to set the user which will be used to run
  48962. the command in the \fBcmd.run\fP module.
  48963. .INDENT 0.0
  48964. .INDENT 3.5
  48965. .sp
  48966. .nf
  48967. .ft C
  48968. django:
  48969. pip.installed:
  48970. \- name: django >= 1.6, <= 1.7
  48971. \- runas: daniel
  48972. \- require:
  48973. \- pkg: python\-pip
  48974. .ft P
  48975. .fi
  48976. .UNINDENT
  48977. .UNINDENT
  48978. .sp
  48979. In the above state, the pip command run by \fBcmd.run\fP will be run by the daniel user.
  48980. .SS runas_password
  48981. .sp
  48982. New in version 2017.7.2.
  48983. .sp
  48984. The \fBrunas_password\fP global option is used to set the password used by the
  48985. runas global option. This is required by \fBcmd.run\fP on Windows when \fBrunas\fP
  48986. is specified. It will be set when \fBrunas_password\fP is defined in the state.
  48987. .INDENT 0.0
  48988. .INDENT 3.5
  48989. .sp
  48990. .nf
  48991. .ft C
  48992. run_script:
  48993. cmd.run:
  48994. \- name: Powershell \-NonInteractive \-ExecutionPolicy Bypass \-File C:\e\eTemp\e\escript.ps1
  48995. \- runas: frank
  48996. \- runas_password: supersecret
  48997. .ft P
  48998. .fi
  48999. .UNINDENT
  49000. .UNINDENT
  49001. .sp
  49002. In the above state, the Powershell script run by \fBcmd.run\fP will be run by the
  49003. frank user with the password \fBsupersecret\fP\&.
  49004. .SS check_cmd
  49005. .sp
  49006. New in version 2014.7.0.
  49007. .sp
  49008. Check Command is used for determining that a state did or did not run as
  49009. expected.
  49010. .sp
  49011. \fBNOTE\fP: Under the hood \fBcheck_cmd\fP calls \fBcmd.retcode\fP with
  49012. \fBpython_shell=True\fP\&. This means the commands referenced by unless will be
  49013. parsed by a shell, so beware of side\-effects as this shell will be run with the
  49014. same privileges as the salt\-minion.
  49015. .INDENT 0.0
  49016. .INDENT 3.5
  49017. .sp
  49018. .nf
  49019. .ft C
  49020. comment\-repo:
  49021. file.replace:
  49022. \- name: /etc/yum.repos.d/fedora.repo
  49023. \- pattern: \(aq^enabled=0\(aq
  49024. \- repl: enabled=1
  49025. \- check_cmd:
  49026. \- "! grep \(aqenabled=0\(aq /etc/yum.repos.d/fedora.repo"
  49027. .ft P
  49028. .fi
  49029. .UNINDENT
  49030. .UNINDENT
  49031. .sp
  49032. This will attempt to do a replace on all \fBenabled=0\fP in the .repo file, and
  49033. replace them with \fBenabled=1\fP\&. The \fBcheck_cmd\fP is just a bash command. It
  49034. will do a grep for \fBenabled=0\fP in the file, and if it finds any, it will
  49035. return a 0, which will be inverted by the leading \fB!\fP, causing \fBcheck_cmd\fP
  49036. to set the state as failed. If it returns a 1, meaning it didn\(aqt find any
  49037. \fBenabled=0\fP, it will be inverted by the leading \fB!\fP, returning a 0, and
  49038. declaring the function succeeded.
  49039. .sp
  49040. \fBNOTE\fP: This requisite \fBcheck_cmd\fP functions differently than the \fBcheck_cmd\fP
  49041. of the \fBfile.managed\fP state.
  49042. .SS Overriding Checks
  49043. .sp
  49044. There are two commands used for the above checks.
  49045. .sp
  49046. \fBmod_run_check\fP is used to check for \fBonlyif\fP and \fBunless\fP\&. If the goal is to
  49047. override the global check for these to variables, include a \fBmod_run_check\fP in the
  49048. salt/states/ file.
  49049. .sp
  49050. \fBmod_run_check_cmd\fP is used to check for the check_cmd options. To override
  49051. this one, include a \fBmod_run_check_cmd\fP in the states file for the state.
  49052. .SS Fire Event Notifications
  49053. .sp
  49054. New in version 2015.8.0.
  49055. .sp
  49056. The \fIfire_event\fP option in a state will cause the minion to send an event to
  49057. the Salt Master upon completion of that individual state.
  49058. .sp
  49059. The following example will cause the minion to send an event to the Salt Master
  49060. with a tag of \fIsalt/state_result/20150505121517276431/dasalt/nano\fP and the
  49061. result of the state will be the data field of the event. Notice that the \fIname\fP
  49062. of the state gets added to the tag.
  49063. .INDENT 0.0
  49064. .INDENT 3.5
  49065. .sp
  49066. .nf
  49067. .ft C
  49068. nano_stuff:
  49069. pkg.installed:
  49070. \- name: nano
  49071. \- fire_event: True
  49072. .ft P
  49073. .fi
  49074. .UNINDENT
  49075. .UNINDENT
  49076. .sp
  49077. In the following example instead of setting \fIfire_event\fP to \fITrue\fP,
  49078. \fIfire_event\fP is set to an arbitrary string, which will cause the event to be
  49079. sent with this tag:
  49080. \fIsalt/state_result/20150505121725642845/dasalt/custom/tag/nano/finished\fP
  49081. .INDENT 0.0
  49082. .INDENT 3.5
  49083. .sp
  49084. .nf
  49085. .ft C
  49086. nano_stuff:
  49087. pkg.installed:
  49088. \- name: nano
  49089. \- fire_event: custom/tag/nano/finished
  49090. .ft P
  49091. .fi
  49092. .UNINDENT
  49093. .UNINDENT
  49094. .SS Retrying States
  49095. .sp
  49096. New in version 2017.7.0.
  49097. .sp
  49098. The retry option in a state allows it to be executed multiple times until a desired
  49099. result is obtained or the maximum number of attempts have been made.
  49100. .sp
  49101. The retry option can be configured by the \fBattempts\fP, \fBuntil\fP, \fBinterval\fP, and
  49102. \fBsplay\fP parameters.
  49103. .sp
  49104. The \fBattempts\fP parameter controls the maximum number of times the state will be
  49105. run. If not specified or if an invalid value is specified, \fBattempts\fP will default
  49106. to \fB2\fP\&.
  49107. .sp
  49108. The \fBuntil\fP parameter defines the result that is required to stop retrying the state.
  49109. If not specified or if an invalid value is specified, \fBuntil\fP will default to \fBTrue\fP
  49110. .sp
  49111. The \fBinterval\fP parameter defines the amount of time, in seconds, that the system
  49112. will wait between attempts. If not specified or if an invalid value is specified,
  49113. \fBinterval\fP will default to \fB30\fP\&.
  49114. .sp
  49115. The \fBsplay\fP parameter allows the \fBinterval\fP to be additionally spread out. If not
  49116. specified or if an invalid value is specified, \fBsplay\fP defaults to \fB0\fP (i.e. no
  49117. splaying will occur).
  49118. .sp
  49119. The following example will run the pkg.installed state until it returns \fBTrue\fP or it has
  49120. been run \fB5\fP times. Each attempt will be \fB60\fP seconds apart and the interval will be splayed
  49121. up to an additional \fB10\fP seconds:
  49122. .INDENT 0.0
  49123. .INDENT 3.5
  49124. .sp
  49125. .nf
  49126. .ft C
  49127. my_retried_state:
  49128. pkg.installed:
  49129. \- name: nano
  49130. \- retry:
  49131. attempts: 5
  49132. until: True
  49133. interval: 60
  49134. splay: 10
  49135. .ft P
  49136. .fi
  49137. .UNINDENT
  49138. .UNINDENT
  49139. .sp
  49140. The following example will run the pkg.installed state with all the defaults for \fBretry\fP\&.
  49141. The state will run up to \fB2\fP times, each attempt being \fB30\fP seconds apart, or until it
  49142. returns \fBTrue\fP\&.
  49143. .INDENT 0.0
  49144. .INDENT 3.5
  49145. .sp
  49146. .nf
  49147. .ft C
  49148. install_nano:
  49149. pkg.installed:
  49150. \- name: nano
  49151. \- retry: True
  49152. .ft P
  49153. .fi
  49154. .UNINDENT
  49155. .UNINDENT
  49156. .sp
  49157. The following example will run the file.exists state every \fB30\fP seconds up to \fB15\fP times
  49158. or until the file exists (i.e. the state returns \fBTrue\fP).
  49159. .INDENT 0.0
  49160. .INDENT 3.5
  49161. .sp
  49162. .nf
  49163. .ft C
  49164. wait_for_file:
  49165. file.exists:
  49166. \- name: /path/to/file
  49167. \- retry:
  49168. attempts: 15
  49169. interval: 30
  49170. .ft P
  49171. .fi
  49172. .UNINDENT
  49173. .UNINDENT
  49174. .SS Return data from a retried state
  49175. .sp
  49176. When a state is retried, the returned output is as follows:
  49177. .sp
  49178. The \fBresult\fP return value is the \fBresult\fP from the final run. For example, imagine a state set
  49179. to \fBretry\fP up to three times or \fBuntil\fP \fBTrue\fP\&. If the state returns \fBFalse\fP on the first run
  49180. and then \fBTrue\fP on the second, the \fBresult\fP of the state will be \fBTrue\fP\&.
  49181. .sp
  49182. The \fBstarted\fP return value is the \fBstarted\fP from the first run.
  49183. .sp
  49184. The \fBduration\fP return value is the total duration of all attempts plus the retry intervals.
  49185. .sp
  49186. The \fBcomment\fP return value will include the result and comment from all previous attempts.
  49187. .sp
  49188. For example:
  49189. .INDENT 0.0
  49190. .INDENT 3.5
  49191. .sp
  49192. .nf
  49193. .ft C
  49194. wait_for_file:
  49195. file.exists:
  49196. \- name: /path/to/file
  49197. \- retry:
  49198. attempts: 10
  49199. interval: 2
  49200. splay: 5
  49201. .ft P
  49202. .fi
  49203. .UNINDENT
  49204. .UNINDENT
  49205. .sp
  49206. Would return similar to the following. The state result in this case is \fBFalse\fP (file.exist was run 10
  49207. times with a 2 second interval, but the file specified did not exist on any run).
  49208. .INDENT 0.0
  49209. .INDENT 3.5
  49210. .sp
  49211. .nf
  49212. .ft C
  49213. ID: wait_for_file
  49214. Function: file.exists
  49215. Result: False
  49216. Comment: Attempt 1: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49217. Attempt 2: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49218. Attempt 3: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49219. Attempt 4: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49220. Attempt 5: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49221. Attempt 6: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49222. Attempt 7: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49223. Attempt 8: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49224. Attempt 9: Returned a result of "False", with the following comment: "Specified path /path/to/file does not exist"
  49225. Specified path /path/to/file does not exist
  49226. Started: 09:08:12.903000
  49227. Duration: 47000.0 ms
  49228. Changes:
  49229. .ft P
  49230. .fi
  49231. .UNINDENT
  49232. .UNINDENT
  49233. .SS Startup States
  49234. .sp
  49235. Sometimes it may be desired that the salt minion execute a state run when it is
  49236. started. This alleviates the need for the master to initiate a state run on a
  49237. new minion and can make provisioning much easier.
  49238. .sp
  49239. As of Salt 0.10.3 the minion config reads options that allow for states to be
  49240. executed at startup. The options are \fIstartup_states\fP, \fIsls_list\fP, and
  49241. \fItop_file\fP\&.
  49242. .sp
  49243. The \fIstartup_states\fP option can be passed one of a number of arguments to
  49244. define how to execute states. The available options are:
  49245. .INDENT 0.0
  49246. .TP
  49247. .B highstate
  49248. Execute \fBstate.apply\fP
  49249. .TP
  49250. .B sls
  49251. Read in the \fBsls_list\fP option and execute the named sls files
  49252. .TP
  49253. .B top
  49254. Read in the \fBtop_file\fP option and execute states based on that top file
  49255. on the Salt Master
  49256. .UNINDENT
  49257. .SS Examples:
  49258. .sp
  49259. Execute \fBstate.apply\fP to run the
  49260. highstate when starting the minion:
  49261. .INDENT 0.0
  49262. .INDENT 3.5
  49263. .sp
  49264. .nf
  49265. .ft C
  49266. startup_states: highstate
  49267. .ft P
  49268. .fi
  49269. .UNINDENT
  49270. .UNINDENT
  49271. .sp
  49272. Execute the sls files \fIedit.vim\fP and \fIhyper\fP:
  49273. .INDENT 0.0
  49274. .INDENT 3.5
  49275. .sp
  49276. .nf
  49277. .ft C
  49278. startup_states: sls
  49279. sls_list:
  49280. \- edit.vim
  49281. \- hyper
  49282. .ft P
  49283. .fi
  49284. .UNINDENT
  49285. .UNINDENT
  49286. .SS State Testing
  49287. .sp
  49288. Executing a Salt state run can potentially change many aspects of a system and
  49289. it may be desirable to first see what a state run is going to change before
  49290. applying the run.
  49291. .sp
  49292. Salt has a test interface to report on exactly what will be changed, this
  49293. interface can be invoked on any of the major state run functions:
  49294. .INDENT 0.0
  49295. .INDENT 3.5
  49296. .sp
  49297. .nf
  49298. .ft C
  49299. salt \(aq*\(aq state.apply test=True
  49300. salt \(aq*\(aq state.apply mysls test=True
  49301. salt \(aq*\(aq state.single test=True
  49302. .ft P
  49303. .fi
  49304. .UNINDENT
  49305. .UNINDENT
  49306. .sp
  49307. The test run is mandated by adding the \fBtest=True\fP option to the states. The
  49308. return information will show states that will be applied in yellow and the
  49309. result is reported as \fBNone\fP\&.
  49310. .SS Default Test
  49311. .sp
  49312. If the value \fBtest\fP is set to \fBTrue\fP in the minion configuration file then
  49313. states will default to being executed in test mode. If this value is set then
  49314. states can still be run by calling test=False:
  49315. .INDENT 0.0
  49316. .INDENT 3.5
  49317. .sp
  49318. .nf
  49319. .ft C
  49320. salt \(aq*\(aq state.apply test=False
  49321. salt \(aq*\(aq state.apply mysls test=False
  49322. salt \(aq*\(aq state.single test=False
  49323. .ft P
  49324. .fi
  49325. .UNINDENT
  49326. .UNINDENT
  49327. .SS The Top File
  49328. .SS Introduction
  49329. .sp
  49330. Most infrastructures are made up of groups of machines, each machine in the
  49331. group performing a role similar to others. Those groups of machines work
  49332. in concert with each other to create an application stack.
  49333. .sp
  49334. To effectively manage those groups of machines, an administrator needs to
  49335. be able to create roles for those groups. For example, a group of machines
  49336. that serve front\-end web traffic might have roles which indicate that
  49337. those machines should all have the Apache webserver package installed and
  49338. that the Apache service should always be running.
  49339. .sp
  49340. In Salt, the file which contains a mapping between groups of machines on a
  49341. network and the configuration roles that should be applied to them is
  49342. called a \fBtop file\fP\&.
  49343. .sp
  49344. Top files are named \fBtop.sls\fP by default and they are so\-named because they
  49345. always exist in the "top" of a directory hierarchy that contains state files.
  49346. That directory hierarchy is called a \fBstate tree\fP\&.
  49347. .SS A Basic Example
  49348. .sp
  49349. Top files have three components:
  49350. .INDENT 0.0
  49351. .IP \(bu 2
  49352. \fBEnvironment:\fP A state tree directory containing a set of state files to
  49353. configure systems.
  49354. .IP \(bu 2
  49355. \fBTarget:\fP A grouping of machines which will have a set of states applied to
  49356. them.
  49357. .IP \(bu 2
  49358. \fBState files:\fP A list of state files to apply to a target. Each state file
  49359. describes one or more states to be configured and enforced on the targeted
  49360. machines.
  49361. .UNINDENT
  49362. .sp
  49363. The relationship between these three components is nested as follows:
  49364. .INDENT 0.0
  49365. .IP \(bu 2
  49366. Environments contain targets
  49367. .IP \(bu 2
  49368. Targets contain states
  49369. .UNINDENT
  49370. .sp
  49371. Putting these concepts together, we can describe a scenario in which all
  49372. minions with an ID that begins with \fBweb\fP have an \fBapache\fP state applied
  49373. to them:
  49374. .INDENT 0.0
  49375. .INDENT 3.5
  49376. .sp
  49377. .nf
  49378. .ft C
  49379. base: # Apply SLS files from the directory root for the \(aqbase\(aq environment
  49380. \(aqweb*\(aq: # All minions with a minion_id that begins with \(aqweb\(aq
  49381. \- apache # Apply the state file named \(aqapache.sls\(aq
  49382. .ft P
  49383. .fi
  49384. .UNINDENT
  49385. .UNINDENT
  49386. .SS Environments
  49387. .sp
  49388. Environments are directory hierarchies which contain a top file and a set
  49389. of state files.
  49390. .sp
  49391. Environments can be used in many ways, however there is no requirement that
  49392. they be used at all. In fact, the most common way to deploy Salt is with
  49393. a single environment, called \fBbase\fP\&. It is recommended that users only
  49394. create multiple environments if they have a use case which specifically
  49395. calls for multiple versions of state trees.
  49396. .SS Getting Started with Top Files
  49397. .sp
  49398. Each environment is defined inside a salt master configuration variable
  49399. called, \fBfile_roots\fP .
  49400. .sp
  49401. In the most common single\-environment setup, only the \fBbase\fP environment is
  49402. defined in \fBfile_roots\fP along with only one directory path for
  49403. the state tree.
  49404. .INDENT 0.0
  49405. .INDENT 3.5
  49406. .sp
  49407. .nf
  49408. .ft C
  49409. file_roots:
  49410. base:
  49411. \- /srv/salt
  49412. .ft P
  49413. .fi
  49414. .UNINDENT
  49415. .UNINDENT
  49416. .sp
  49417. In the above example, the top file will only have a single environment to pull
  49418. from.
  49419. .sp
  49420. Next is a simple single\-environment top file placed in \fB/srv/salt/top.sls\fP,
  49421. illustrating that for the environment called \fBbase\fP, all minions will have the
  49422. state files named \fBcore.sls\fP and \fBedit.sls\fP applied to them.
  49423. .INDENT 0.0
  49424. .INDENT 3.5
  49425. .sp
  49426. .nf
  49427. .ft C
  49428. base:
  49429. \(aq*\(aq:
  49430. \- core
  49431. \- edit
  49432. .ft P
  49433. .fi
  49434. .UNINDENT
  49435. .UNINDENT
  49436. .sp
  49437. Assuming the \fBfile_roots\fP configuration from above, Salt will look in the
  49438. \fB/srv/salt\fP directory for \fBcore.sls\fP and \fBedit.sls\fP\&.
  49439. .SS Multiple Environments
  49440. .sp
  49441. In some cases, teams may wish to create versioned state trees which can be
  49442. used to test Salt configurations in isolated sets of systems such as a staging
  49443. environment before deploying states into production.
  49444. .sp
  49445. For this case, multiple environments can be used to accomplish this task.
  49446. .sp
  49447. To create multiple environments, the \fBfile_roots\fP option can be
  49448. expanded:
  49449. .INDENT 0.0
  49450. .INDENT 3.5
  49451. .sp
  49452. .nf
  49453. .ft C
  49454. file_roots:
  49455. dev:
  49456. \- /srv/salt/dev
  49457. qa:
  49458. \- /srv/salt/qa
  49459. prod:
  49460. \- /srv/salt/prod
  49461. .ft P
  49462. .fi
  49463. .UNINDENT
  49464. .UNINDENT
  49465. .sp
  49466. In the above, we declare three environments: \fBdev\fP, \fBqa\fP and \fBprod\fP\&.
  49467. Each environment has a single directory assigned to it.
  49468. .sp
  49469. Our top file references the environments:
  49470. .INDENT 0.0
  49471. .INDENT 3.5
  49472. .sp
  49473. .nf
  49474. .ft C
  49475. dev:
  49476. \(aqwebserver*\(aq:
  49477. \- webserver
  49478. \(aqdb*\(aq:
  49479. \- db
  49480. qa:
  49481. \(aqwebserver*\(aq:
  49482. \- webserver
  49483. \(aqdb*\(aq:
  49484. \- db
  49485. prod:
  49486. \(aqwebserver*\(aq:
  49487. \- webserver
  49488. \(aqdb*\(aq:
  49489. \- db
  49490. .ft P
  49491. .fi
  49492. .UNINDENT
  49493. .UNINDENT
  49494. .sp
  49495. As seen above, the top file now declares the three environments and for each,
  49496. target expressions are defined to map minions to state files. For example, all
  49497. minions which have an ID beginning with the string \fBwebserver\fP will have the
  49498. webserver state from the requested environment assigned to it.
  49499. .sp
  49500. In this manner, a proposed change to a state could first be made in a state
  49501. file in \fB/srv/salt/dev\fP and then be applied to development webservers before
  49502. moving the state into QA by copying the state file into \fB/srv/salt/qa\fP\&.
  49503. .SS Choosing an Environment to Target
  49504. .sp
  49505. The top file is used to assign a minion to an environment unless overridden
  49506. using the methods described below. The environment in the top file must match
  49507. valid fileserver environment (a.k.a. \fBsaltenv\fP) in order for any states to be
  49508. applied to that minion. When using the default fileserver backend, environments
  49509. are defined in \fBfile_roots\fP\&.
  49510. .sp
  49511. The states that will be applied to a minion in a given environment can be
  49512. viewed using the \fBstate.show_top\fP
  49513. function.
  49514. .sp
  49515. Minions may be pinned to a particular environment by setting the
  49516. \fBenvironment\fP value in the minion configuration file. In doing so,
  49517. a minion will only request files from the environment to which it is assigned.
  49518. .sp
  49519. The environment may also be dynamically selected at runtime by passing it to
  49520. the \fBsalt\fP, \fBsalt\-call\fP or \fBsalt\-ssh\fP command. This is most commonly done
  49521. with functions in the \fBstate\fP module by using the \fBsaltenv\fP argument. For
  49522. example, to run a \fBhighstate\fP on all minions, using only the top file and SLS
  49523. files in the \fBprod\fP environment, run: \fBsalt \(aq*\(aq state.highstate
  49524. saltenv=prod\fP\&.
  49525. .sp
  49526. \fBNOTE:\fP
  49527. .INDENT 0.0
  49528. .INDENT 3.5
  49529. Not all functions accept \fBsaltenv\fP as an argument, see the documentation
  49530. for an individual function documentation to verify.
  49531. .UNINDENT
  49532. .UNINDENT
  49533. .SS Shorthand
  49534. .sp
  49535. If you assign only one SLS to a system, as in this example, a shorthand is
  49536. also available:
  49537. .INDENT 0.0
  49538. .INDENT 3.5
  49539. .sp
  49540. .nf
  49541. .ft C
  49542. base:
  49543. \(aq*\(aq: global
  49544. dev:
  49545. \(aqwebserver*\(aq: webserver
  49546. \(aqdb*\(aq: db
  49547. qa:
  49548. \(aqwebserver*\(aq: webserver
  49549. \(aqdb*\(aq: db
  49550. prod:
  49551. \(aqwebserver*\(aq: webserver
  49552. \(aqdb*\(aq: db
  49553. .ft P
  49554. .fi
  49555. .UNINDENT
  49556. .UNINDENT
  49557. .SS Advanced Minion Targeting
  49558. .sp
  49559. In the examples above, notice that all of the target expressions are globs. The
  49560. default match type in top files (since version 2014.7.0) is actually the
  49561. compound matcher, not the glob matcher as in the
  49562. CLI.
  49563. .sp
  49564. A single glob, when passed through the compound matcher, acts the same way as
  49565. matching by glob, so in most cases the two are indistinguishable. However,
  49566. there is an edge case in which a minion ID contains whitespace. While it is not
  49567. recommended to include spaces in a minion ID, Salt will not stop you from doing
  49568. so. However, since compound expressions are parsed word\-by\-word, if a minion ID
  49569. contains spaces it will fail to match. In this edge case, it will be necessary
  49570. to explicitly use the \fBglob\fP matcher:
  49571. .INDENT 0.0
  49572. .INDENT 3.5
  49573. .sp
  49574. .nf
  49575. .ft C
  49576. base:
  49577. \(aqminion 1\(aq:
  49578. \- match: glob
  49579. \- foo
  49580. .ft P
  49581. .fi
  49582. .UNINDENT
  49583. .UNINDENT
  49584. .sp
  49585. The available match types which can be set for a target expression in the top
  49586. file are:
  49587. .TS
  49588. center;
  49589. |l|l|.
  49590. _
  49591. T{
  49592. Match Type
  49593. T} T{
  49594. Description
  49595. T}
  49596. _
  49597. T{
  49598. glob
  49599. T} T{
  49600. Full minion ID or glob expression to match multiple minions (e.g. \fBminion123\fP or \fBminion*\fP)
  49601. T}
  49602. _
  49603. T{
  49604. pcre
  49605. T} T{
  49606. Perl\-compatible regular expression (PCRE) matching a minion ID (e.g. \fBweb[0\-3].domain.com\fP)
  49607. T}
  49608. _
  49609. T{
  49610. grain
  49611. T} T{
  49612. Match a grain, optionally using globbing (e.g. \fBkernel:Linux\fP or \fBkernel:*BSD\fP)
  49613. T}
  49614. _
  49615. T{
  49616. grain_pcre
  49617. T} T{
  49618. Match a grain using PCRE (e.g. \fBkernel:(Free|Open)BSD\fP)
  49619. T}
  49620. _
  49621. T{
  49622. list
  49623. T} T{
  49624. Comma\-separated list of minions (e.g. \fBminion1,minion2,minion3\fP)
  49625. T}
  49626. _
  49627. T{
  49628. pillar
  49629. T} T{
  49630. Pillar match, optionally using globbing (e.g. \fBrole:webserver\fP or \fBrole:web*\fP)
  49631. T}
  49632. _
  49633. T{
  49634. pillar_pcre
  49635. T} T{
  49636. Pillar match using PCRE (e.g. \fBrole:web(server|proxy)\fP
  49637. T}
  49638. _
  49639. T{
  49640. pillar_exact
  49641. T} T{
  49642. Pillar match with no globbing or PCRE (e.g. \fBrole:webserver\fP)
  49643. T}
  49644. _
  49645. T{
  49646. ipcidr
  49647. T} T{
  49648. Subnet or IP address (e.g. \fB172.17.0.0/16\fP or \fB10.2.9.80\fP)
  49649. T}
  49650. _
  49651. T{
  49652. data
  49653. T} T{
  49654. Match values kept in the minion\(aqs datastore (created using the \fBdata\fP execution module)
  49655. T}
  49656. _
  49657. T{
  49658. range
  49659. T} T{
  49660. Range cluster
  49661. T}
  49662. _
  49663. T{
  49664. compound
  49665. T} T{
  49666. Complex expression combining multiple match types (see here)
  49667. T}
  49668. _
  49669. T{
  49670. nodegroup
  49671. T} T{
  49672. Pre\-defined compound expressions in the master config file (see here)
  49673. T}
  49674. _
  49675. .TE
  49676. .sp
  49677. Below is a slightly more complex top file example, showing some of the above
  49678. match types:
  49679. .INDENT 0.0
  49680. .INDENT 3.5
  49681. .sp
  49682. .nf
  49683. .ft C
  49684. # All files will be taken from the file path specified in the base
  49685. # environment in the \(ga\(gafile_roots\(ga\(ga configuration value.
  49686. base:
  49687. # All minions which begin with the strings \(aqnag1\(aq or any minion with
  49688. # a grain set called \(aqrole\(aq with the value of \(aqmonitoring\(aq will have
  49689. # the \(aqserver.sls\(aq state file applied from the \(aqnagios/\(aq directory.
  49690. \(aqnag1* or G@role:monitoring\(aq:
  49691. \- nagios.server
  49692. # All minions get the following three state files applied
  49693. \(aq*\(aq:
  49694. \- ldap\-client
  49695. \- networking
  49696. \- salt.minion
  49697. # All minions which have an ID that begins with the phrase
  49698. # \(aqsalt\-master\(aq will have an SLS file applied that is named
  49699. # \(aqmaster.sls\(aq and is in the \(aqsalt\(aq directory, underneath
  49700. # the root specified in the \(ga\(gabase\(ga\(ga environment in the
  49701. # configuration value for \(ga\(gafile_roots\(ga\(ga.
  49702. \(aqsalt\-master*\(aq:
  49703. \- salt.master
  49704. # Minions that have an ID matching the following regular
  49705. # expression will have the state file called \(aqweb.sls\(aq in the
  49706. # nagios/mon directory applied. Additionally, minions matching
  49707. # the regular expression will also have the \(aqserver.sls\(aq file
  49708. # in the apache/ directory applied.
  49709. # NOTE!
  49710. #
  49711. # Take note of the \(aqmatch\(aq directive here, which tells Salt
  49712. # to treat the target string as a regex to be matched!
  49713. \(aq^(memcache|web).(qa|prod).loc$\(aq:
  49714. \- match: pcre
  49715. \- nagios.mon.web
  49716. \- apache.server
  49717. # Minions that have a grain set indicating that they are running
  49718. # the Ubuntu operating system will have the state file called
  49719. # \(aqubuntu.sls\(aq in the \(aqrepos\(aq directory applied.
  49720. #
  49721. # Again take note of the \(aqmatch\(aq directive here which tells
  49722. # Salt to match against a grain instead of a minion ID.
  49723. \(aqos:Ubuntu\(aq:
  49724. \- match: grain
  49725. \- repos.ubuntu
  49726. # Minions that are either RedHat or CentOS should have the \(aqepel.sls\(aq
  49727. # state applied, from the \(aqrepos/\(aq directory.
  49728. \(aqos:(RedHat|CentOS)\(aq:
  49729. \- match: grain_pcre
  49730. \- repos.epel
  49731. # The three minions with the IDs of \(aqfoo\(aq, \(aqbar\(aq and \(aqbaz\(aq should
  49732. # have \(aqdatabase.sls\(aq applied.
  49733. \(aqfoo,bar,baz\(aq:
  49734. \- match: list
  49735. \- database
  49736. # Any minion for which the pillar key \(aqsomekey\(aq is set and has a value
  49737. # of that key matching \(aqabc\(aq will have the \(aqxyz.sls\(aq state applied.
  49738. \(aqsomekey:abc\(aq:
  49739. \- match: pillar
  49740. \- xyz
  49741. .ft P
  49742. .fi
  49743. .UNINDENT
  49744. .UNINDENT
  49745. .SS How Top Files Are Compiled
  49746. .sp
  49747. When a highstate is executed and an environment is
  49748. specified (either using the \fBenvironment\fP config option or by
  49749. passing the saltenv when executing the highstate),
  49750. then that environment\(aqs top file is the only top file used to assign states to
  49751. minions, and only states from the specified environment will be run.
  49752. .sp
  49753. The remainder of this section applies to cases in which a highstate is executed without an environment specified.
  49754. .sp
  49755. With no environment specified, the minion will look for a top file in each
  49756. environment, and each top file will be processed to determine the SLS files to
  49757. run on the minions. By default, the top files from each environment will be
  49758. merged together. In configurations with many environments, such as with
  49759. GitFS where each branch and tag is treated as a
  49760. distinct environment, this may cause unexpected results as SLS files from older
  49761. tags cause defunct SLS files to be included in the highstate. In cases like
  49762. this, it can be helpful to set \fBtop_file_merging_strategy\fP to
  49763. \fBsame\fP to force each environment to use its own top file.
  49764. .INDENT 0.0
  49765. .INDENT 3.5
  49766. .sp
  49767. .nf
  49768. .ft C
  49769. top_file_merging_strategy: same
  49770. .ft P
  49771. .fi
  49772. .UNINDENT
  49773. .UNINDENT
  49774. .sp
  49775. Another option would be to set \fBstate_top_saltenv\fP to a specific
  49776. environment, to ensure that any top files in other environments are
  49777. disregarded:
  49778. .INDENT 0.0
  49779. .INDENT 3.5
  49780. .sp
  49781. .nf
  49782. .ft C
  49783. state_top_saltenv: base
  49784. .ft P
  49785. .fi
  49786. .UNINDENT
  49787. .UNINDENT
  49788. .sp
  49789. With GitFS, it can also be helpful to simply manage
  49790. each environment\(aqs top file separately, and/or manually specify the environment
  49791. when executing the highstate to avoid any complicated merging scenarios.
  49792. \fBgitfs_saltenv_whitelist\fP and \fBgitfs_saltenv_blacklist\fP can
  49793. also be used to hide unneeded branches and tags from GitFS to reduce the number
  49794. of top files in play.
  49795. .sp
  49796. When using multiple environments, it is not necessary to create a top file for
  49797. each environment. The easiest\-to\-maintain approach is to use a single top file
  49798. placed in the \fBbase\fP environment. This is often infeasible with GitFS though, since branching/tagging can easily result in extra
  49799. top files. However, when only the default (\fBroots\fP) fileserver backend is
  49800. used, a single top file in the \fBbase\fP environment is the most common way of
  49801. configuring a highstate\&.
  49802. .sp
  49803. The following minion configuration options affect how top files are compiled
  49804. when no environment is specified, it is recommended to follow the below four
  49805. links to learn more about how these options work:
  49806. .INDENT 0.0
  49807. .IP \(bu 2
  49808. \fBstate_top_saltenv\fP
  49809. .IP \(bu 2
  49810. \fBtop_file_merging_strategy\fP
  49811. .IP \(bu 2
  49812. \fBenv_order\fP
  49813. .IP \(bu 2
  49814. \fBdefault_top\fP
  49815. .UNINDENT
  49816. .SS Top File Compilation Examples
  49817. .sp
  49818. For the scenarios below, assume the following configuration:
  49819. .sp
  49820. \fB/etc/salt/master\fP:
  49821. .INDENT 0.0
  49822. .INDENT 3.5
  49823. .sp
  49824. .nf
  49825. .ft C
  49826. file_roots:
  49827. base:
  49828. \- /srv/salt/base
  49829. dev:
  49830. \- /srv/salt/dev
  49831. qa:
  49832. \- /srv/salt/qa
  49833. .ft P
  49834. .fi
  49835. .UNINDENT
  49836. .UNINDENT
  49837. .sp
  49838. \fB/srv/salt/base/top.sls\fP:
  49839. .INDENT 0.0
  49840. .INDENT 3.5
  49841. .sp
  49842. .nf
  49843. .ft C
  49844. base:
  49845. \(aq*\(aq:
  49846. \- base1
  49847. dev:
  49848. \(aq*\(aq:
  49849. \- dev1
  49850. qa:
  49851. \(aq*\(aq:
  49852. \- qa1
  49853. .ft P
  49854. .fi
  49855. .UNINDENT
  49856. .UNINDENT
  49857. .sp
  49858. \fB/srv/salt/dev/top.sls\fP:
  49859. .INDENT 0.0
  49860. .INDENT 3.5
  49861. .sp
  49862. .nf
  49863. .ft C
  49864. base:
  49865. \(aqminion1\(aq:
  49866. \- base2
  49867. dev:
  49868. \(aqminion2\(aq:
  49869. \- dev2
  49870. qa:
  49871. \(aq*\(aq:
  49872. \- qa1
  49873. \- qa2
  49874. .ft P
  49875. .fi
  49876. .UNINDENT
  49877. .UNINDENT
  49878. .sp
  49879. \fBNOTE:\fP
  49880. .INDENT 0.0
  49881. .INDENT 3.5
  49882. For the purposes of these examples, there is no top file in the \fBqa\fP
  49883. environment.
  49884. .UNINDENT
  49885. .UNINDENT
  49886. .SS Scenario 1 \- \fBdev\fP Environment Specified
  49887. .sp
  49888. In this scenario, the highstate was either invoked
  49889. with \fBsaltenv=dev\fP or the minion has \fBenvironment: dev\fP set in the minion
  49890. config file. The result will be that only the \fBdev2\fP SLS from the dev
  49891. environment will be part of the highstate, and it
  49892. will be applied to minion2, while minion1 will have no states applied to it.
  49893. .sp
  49894. If the \fBbase\fP environment were specified, the result would be that only the
  49895. \fBbase1\fP SLS from the \fBbase\fP environment would be part of the
  49896. highstate, and it would be applied to all minions.
  49897. .sp
  49898. If the \fBqa\fP environment were specified, the highstate would exit with an error.
  49899. .SS Scenario 2 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "merge"
  49900. .sp
  49901. In this scenario, assuming that the \fBbase\fP environment\(aqs top file was
  49902. evaluated first, the \fBbase1\fP, \fBdev1\fP, and \fBqa1\fP states would be applied
  49903. to all minions. If, for instance, the \fBqa\fP environment is not defined in
  49904. \fB/srv/salt/base/top.sls\fP, then because there is no top file for the \fBqa\fP
  49905. environment, no states from the \fBqa\fP environment would be applied.
  49906. .SS Scenario 3 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "same"
  49907. .sp
  49908. Changed in version 2016.11.0: In prior versions, "same" did not quite work as described below (see
  49909. \fI\%here\fP). This has now been corrected. It was decided that changing
  49910. something like top file handling in a point release had the potential to
  49911. unexpectedly impact users\(aq top files too much, and it would be better to
  49912. make this correction in a feature release.
  49913. .sp
  49914. In this scenario, \fBbase1\fP from the \fBbase\fP environment is applied to all
  49915. minions. Additionally, \fBdev2\fP from the \fBdev\fP environment is applied to
  49916. minion2.
  49917. .sp
  49918. If \fBdefault_top\fP is unset (or set to \fBbase\fP, which happens to be
  49919. the default), then \fBqa1\fP from the \fBqa\fP environment will be applied to all
  49920. minions. If \fBdefault_top\fP were set to \fBdev\fP, then both \fBqa1\fP
  49921. and \fBqa2\fP from the \fBqa\fP environment would be applied to all minions.
  49922. .SS Scenario 4 \- No Environment Specified, \fBtop_file_merging_strategy\fP is "merge_all"
  49923. .sp
  49924. New in version 2016.11.0.
  49925. .sp
  49926. In this scenario, all configured states in all top files are applied. From the
  49927. \fBbase\fP environment, \fBbase1\fP would be applied to all minions, with \fBbase2\fP
  49928. being applied only to \fBminion1\fP\&. From the \fBdev\fP environment, \fBdev1\fP would
  49929. be applied to all minions, with \fBdev2\fP being applied only to \fBminion2\fP\&.
  49930. Finally, from the \fBqa\fP environment, both the \fBqa1\fP and \fBqa2\fP states will
  49931. be applied to all minions. Note that the \fBqa1\fP states would not be applied
  49932. twice, even though \fBqa1\fP appears twice.
  49933. .SS SLS Template Variable Reference
  49934. .sp
  49935. The template engines available to sls files and file templates come loaded
  49936. with a number of context variables. These variables contain information and
  49937. functions to assist in the generation of templates. See each variable below
  49938. for its availability \-\- not all variables are available in all templating
  49939. contexts.
  49940. .SS Salt
  49941. .sp
  49942. The \fIsalt\fP variable is available to abstract the salt library functions. This
  49943. variable is a python dictionary containing all of the functions available to
  49944. the running salt minion. It is available in all salt templates.
  49945. .INDENT 0.0
  49946. .INDENT 3.5
  49947. .sp
  49948. .nf
  49949. .ft C
  49950. {% for file in salt[\(aqcmd.run\(aq](\(aqls \-1 /opt/to_remove\(aq).splitlines() %}
  49951. /opt/to_remove/{{ file }}:
  49952. file.absent
  49953. {% endfor %}
  49954. .ft P
  49955. .fi
  49956. .UNINDENT
  49957. .UNINDENT
  49958. .SS Opts
  49959. .sp
  49960. The \fIopts\fP variable abstracts the contents of the minion\(aqs configuration file
  49961. directly to the template. The \fIopts\fP variable is a dictionary. It is available
  49962. in all templates.
  49963. .INDENT 0.0
  49964. .INDENT 3.5
  49965. .sp
  49966. .nf
  49967. .ft C
  49968. {{ opts[\(aqcachedir\(aq] }}
  49969. .ft P
  49970. .fi
  49971. .UNINDENT
  49972. .UNINDENT
  49973. .sp
  49974. The \fBconfig.get\fP function also searches for values in the \fIopts\fP dictionary.
  49975. .SS Pillar
  49976. .sp
  49977. The \fIpillar\fP dictionary can be referenced directly, and is available in all
  49978. templates:
  49979. .INDENT 0.0
  49980. .INDENT 3.5
  49981. .sp
  49982. .nf
  49983. .ft C
  49984. {{ pillar[\(aqkey\(aq] }}
  49985. .ft P
  49986. .fi
  49987. .UNINDENT
  49988. .UNINDENT
  49989. .sp
  49990. Using the \fBpillar.get\fP function via the \fIsalt\fP variable is generally
  49991. recommended since a default can be safely set in the event that the value
  49992. is not available in pillar and dictionaries can be traversed directly:
  49993. .INDENT 0.0
  49994. .INDENT 3.5
  49995. .sp
  49996. .nf
  49997. .ft C
  49998. {{ salt[\(aqpillar.get\(aq](\(aqkey\(aq, \(aqfailover_value\(aq) }}
  49999. {{ salt[\(aqpillar.get\(aq](\(aqstuff:more:deeper\(aq) }}
  50000. .ft P
  50001. .fi
  50002. .UNINDENT
  50003. .UNINDENT
  50004. .SS Grains
  50005. .sp
  50006. The \fIgrains\fP dictionary makes the minion\(aqs grains directly available, and is
  50007. available in all templates:
  50008. .INDENT 0.0
  50009. .INDENT 3.5
  50010. .sp
  50011. .nf
  50012. .ft C
  50013. {{ grains[\(aqos\(aq] }}
  50014. .ft P
  50015. .fi
  50016. .UNINDENT
  50017. .UNINDENT
  50018. .sp
  50019. The \fBgrains.get\fP function can be used to traverse deeper grains and set
  50020. defaults:
  50021. .INDENT 0.0
  50022. .INDENT 3.5
  50023. .sp
  50024. .nf
  50025. .ft C
  50026. {{ salt[\(aqgrains.get\(aq](\(aqos\(aq) }}
  50027. .ft P
  50028. .fi
  50029. .UNINDENT
  50030. .UNINDENT
  50031. .SS saltenv
  50032. .sp
  50033. The \fIsaltenv\fP variable is available in only in sls files when gathering the sls
  50034. from an environment.
  50035. .INDENT 0.0
  50036. .INDENT 3.5
  50037. .sp
  50038. .nf
  50039. .ft C
  50040. {{ saltenv }}
  50041. .ft P
  50042. .fi
  50043. .UNINDENT
  50044. .UNINDENT
  50045. .SS sls
  50046. .sp
  50047. The \fIsls\fP variable contains the sls reference value, and is only available in
  50048. the actual SLS file (not in any files referenced in that SLS). The sls
  50049. reference value is the value used to include the sls in top files or via the
  50050. include option.
  50051. .INDENT 0.0
  50052. .INDENT 3.5
  50053. .sp
  50054. .nf
  50055. .ft C
  50056. {{ sls }}
  50057. .ft P
  50058. .fi
  50059. .UNINDENT
  50060. .UNINDENT
  50061. .SS slspath
  50062. .sp
  50063. The \fIslspath\fP variable contains the path to the directory of the current sls
  50064. file. The value of \fIslspath\fP in files referenced in the current sls depends on
  50065. the reference method. For jinja includes \fIslspath\fP is the path to the current
  50066. directory of the file. For salt includes \fIslspath\fP is the path to the directory
  50067. of the included file.
  50068. .INDENT 0.0
  50069. .INDENT 3.5
  50070. .sp
  50071. .nf
  50072. .ft C
  50073. {{ slspath }}
  50074. .ft P
  50075. .fi
  50076. .UNINDENT
  50077. .UNINDENT
  50078. .SS State Modules
  50079. .sp
  50080. State Modules are the components that map to actual enforcement and management
  50081. of Salt states.
  50082. .SS States are Easy to Write!
  50083. .sp
  50084. State Modules should be easy to write and straightforward. The information
  50085. passed to the SLS data structures will map directly to the states modules.
  50086. .sp
  50087. Mapping the information from the SLS data is simple, this example should
  50088. illustrate:
  50089. .INDENT 0.0
  50090. .INDENT 3.5
  50091. .sp
  50092. .nf
  50093. .ft C
  50094. /etc/salt/master: # maps to "name", unless a "name" argument is specified below
  50095. file.managed: # maps to <filename>.<function> \- e.g. "managed" in https://github.com/saltstack/salt/tree/master/salt/states/file.py
  50096. \- user: root # one of many options passed to the manage function
  50097. \- group: root
  50098. \- mode: 644
  50099. \- source: salt://salt/master
  50100. .ft P
  50101. .fi
  50102. .UNINDENT
  50103. .UNINDENT
  50104. .sp
  50105. Therefore this SLS data can be directly linked to a module, function, and
  50106. arguments passed to that function.
  50107. .sp
  50108. This does issue the burden, that function names, state names and function
  50109. arguments should be very human readable inside state modules, since they
  50110. directly define the user interface.
  50111. .INDENT 0.0
  50112. .INDENT 3.5
  50113. .IP "Keyword Arguments"
  50114. .sp
  50115. Salt passes a number of keyword arguments to states when rendering them,
  50116. including the environment, a unique identifier for the state, and more.
  50117. Additionally, keep in mind that the requisites for a state are part of the
  50118. keyword arguments. Therefore, if you need to iterate through the keyword
  50119. arguments in a state, these must be considered and handled appropriately.
  50120. One such example is in the \fBpkgrepo.managed\fP state, which needs to be able to handle
  50121. arbitrary keyword arguments and pass them to module execution functions.
  50122. An example of how these keyword arguments can be handled can be found
  50123. \fI\%here\fP\&.
  50124. .UNINDENT
  50125. .UNINDENT
  50126. .SS Best Practices
  50127. .sp
  50128. A well\-written state function will follow these steps:
  50129. .sp
  50130. \fBNOTE:\fP
  50131. .INDENT 0.0
  50132. .INDENT 3.5
  50133. This is an extremely simplified example. Feel free to browse the \fI\%source
  50134. code\fP for Salt\(aqs state modules to see other examples.
  50135. .UNINDENT
  50136. .UNINDENT
  50137. .INDENT 0.0
  50138. .IP 1. 3
  50139. Set up the return dictionary and perform any necessary input validation
  50140. (type checking, looking for use of mutually\-exclusive arguments, etc.).
  50141. .INDENT 3.0
  50142. .INDENT 3.5
  50143. .sp
  50144. .nf
  50145. .ft C
  50146. ret = {\(aqname\(aq: name,
  50147. \(aqresult\(aq: False,
  50148. \(aqchanges\(aq: {},
  50149. \(aqcomment\(aq: \(aq\(aq}
  50150. if foo and bar:
  50151. ret[\(aqcomment\(aq] = \(aqOnly one of foo and bar is permitted\(aq
  50152. return ret
  50153. .ft P
  50154. .fi
  50155. .UNINDENT
  50156. .UNINDENT
  50157. .IP 2. 3
  50158. Check if changes need to be made. This is best done with an
  50159. information\-gathering function in an accompanying execution module\&. The state should be able to use the return
  50160. from this function to tell whether or not the minion is already in the
  50161. desired state.
  50162. .INDENT 3.0
  50163. .INDENT 3.5
  50164. .sp
  50165. .nf
  50166. .ft C
  50167. result = __salt__[\(aqmodname.check\(aq](name)
  50168. .ft P
  50169. .fi
  50170. .UNINDENT
  50171. .UNINDENT
  50172. .IP 3. 3
  50173. If step 2 found that the minion is already in the desired state, then exit
  50174. immediately with a \fBTrue\fP result and without making any changes.
  50175. .INDENT 3.0
  50176. .INDENT 3.5
  50177. .sp
  50178. .nf
  50179. .ft C
  50180. if result:
  50181. ret[\(aqresult\(aq] = True
  50182. ret[\(aqcomment\(aq] = \(aq{0} is already installed\(aq.format(name)
  50183. return ret
  50184. .ft P
  50185. .fi
  50186. .UNINDENT
  50187. .UNINDENT
  50188. .IP 4. 3
  50189. If step 2 found that changes \fIdo\fP need to be made, then check to see if the
  50190. state was being run in test mode (i.e. with \fBtest=True\fP). If so, then exit
  50191. with a \fBNone\fP result, a relevant comment, and (if possible) a \fBchanges\fP
  50192. entry describing what changes would be made.
  50193. .INDENT 3.0
  50194. .INDENT 3.5
  50195. .sp
  50196. .nf
  50197. .ft C
  50198. if __opts__[\(aqtest\(aq]:
  50199. ret[\(aqresult\(aq] = None
  50200. ret[\(aqcomment\(aq] = \(aq{0} would be installed\(aq.format(name)
  50201. ret[\(aqchanges\(aq] = result
  50202. return ret
  50203. .ft P
  50204. .fi
  50205. .UNINDENT
  50206. .UNINDENT
  50207. .IP 5. 3
  50208. Make the desired changes. This should again be done using a function from an
  50209. accompanying execution module. If the result of that function is enough to
  50210. tell you whether or not an error occurred, then you can exit with a
  50211. \fBFalse\fP result and a relevant comment to explain what happened.
  50212. .INDENT 3.0
  50213. .INDENT 3.5
  50214. .sp
  50215. .nf
  50216. .ft C
  50217. result = __salt__[\(aqmodname.install\(aq](name)
  50218. .ft P
  50219. .fi
  50220. .UNINDENT
  50221. .UNINDENT
  50222. .IP 6. 3
  50223. Perform the same check from step 2 again to confirm whether or not the
  50224. minion is in the desired state. Just as in step 2, this function should be
  50225. able to tell you by its return data whether or not changes need to be made.
  50226. .INDENT 3.0
  50227. .INDENT 3.5
  50228. .sp
  50229. .nf
  50230. .ft C
  50231. ret[\(aqchanges\(aq] = __salt__[\(aqmodname.check\(aq](name)
  50232. .ft P
  50233. .fi
  50234. .UNINDENT
  50235. .UNINDENT
  50236. .sp
  50237. As you can see here, we are setting the \fBchanges\fP key in the return
  50238. dictionary to the result of the \fBmodname.check\fP function (just as we did
  50239. in step 4). The assumption here is that the information\-gathering function
  50240. will return a dictionary explaining what changes need to be made. This may
  50241. or may not fit your use case.
  50242. .IP 7. 3
  50243. Set the return data and return!
  50244. .INDENT 3.0
  50245. .INDENT 3.5
  50246. .sp
  50247. .nf
  50248. .ft C
  50249. if ret[\(aqchanges\(aq]:
  50250. ret[\(aqcomment\(aq] = \(aq{0} failed to install\(aq.format(name)
  50251. else:
  50252. ret[\(aqresult\(aq] = True
  50253. ret[\(aqcomment\(aq] = \(aq{0} was installed\(aq.format(name)
  50254. return ret
  50255. .ft P
  50256. .fi
  50257. .UNINDENT
  50258. .UNINDENT
  50259. .UNINDENT
  50260. .SS Using Custom State Modules
  50261. .sp
  50262. Before the state module can be used, it must be distributed to minions. This
  50263. can be done by placing them into \fBsalt://_states/\fP\&. They can then be
  50264. distributed manually to minions by running \fBsaltutil.sync_states\fP or \fBsaltutil.sync_all\fP\&. Alternatively, when running a
  50265. highstate custom types will automatically be synced.
  50266. .sp
  50267. NOTE: Writing state modules with hyphens in the filename will cause issues
  50268. with !pyobjects routines. Best practice to stick to underscores.
  50269. .sp
  50270. Any custom states which have been synced to a minion, that are named the same
  50271. as one of Salt\(aqs default set of states, will take the place of the default
  50272. state with the same name. Note that a state module\(aqs name defaults to one based
  50273. on its filename (i.e. \fBfoo.py\fP becomes state module \fBfoo\fP), but that its
  50274. name can be overridden by using a __virtual__ function\&.
  50275. .SS Cross Calling Execution Modules from States
  50276. .sp
  50277. As with Execution Modules, State Modules can also make use of the \fB__salt__\fP
  50278. and \fB__grains__\fP data. See cross calling execution modules\&.
  50279. .sp
  50280. It is important to note that the real work of state management should not be
  50281. done in the state module unless it is needed. A good example is the pkg state
  50282. module. This module does not do any package management work, it just calls the
  50283. pkg execution module. This makes the pkg state module completely generic, which
  50284. is why there is only one pkg state module and many backend pkg execution
  50285. modules.
  50286. .sp
  50287. On the other hand some modules will require that the logic be placed in the
  50288. state module, a good example of this is the file module. But in the vast
  50289. majority of cases this is not the best approach, and writing specific
  50290. execution modules to do the backend work will be the optimal solution.
  50291. .SS Cross Calling State Modules
  50292. .sp
  50293. All of the Salt state modules are available to each other and state modules can call
  50294. functions available in other state modules.
  50295. .sp
  50296. The variable \fB__states__\fP is packed into the modules after they are loaded into
  50297. the Salt minion.
  50298. .sp
  50299. The \fB__states__\fP variable is a \fI\%Python dictionary\fP
  50300. containing all of the state modules. Dictionary keys are strings representing
  50301. the names of the modules and the values are the functions themselves.
  50302. .sp
  50303. Salt state modules can be cross\-called by accessing the value in the
  50304. \fB__states__\fP dict:
  50305. .INDENT 0.0
  50306. .INDENT 3.5
  50307. .sp
  50308. .nf
  50309. .ft C
  50310. ret = __states__[\(aqfile.managed\(aq](name=\(aq/tmp/myfile\(aq, source=\(aqsalt://myfile\(aq)
  50311. .ft P
  50312. .fi
  50313. .UNINDENT
  50314. .UNINDENT
  50315. .sp
  50316. This code will call the \fImanaged\fP function in the \fBfile\fP state module and pass the arguments \fBname\fP and \fBsource\fP
  50317. to it.
  50318. .SS Return Data
  50319. .sp
  50320. A State Module must return a dict containing the following keys/values:
  50321. .INDENT 0.0
  50322. .IP \(bu 2
  50323. \fBname:\fP The same value passed to the state as "name".
  50324. .IP \(bu 2
  50325. \fBchanges:\fP A dict describing the changes made. Each thing changed should
  50326. be a key, with its value being another dict with keys called "old" and "new"
  50327. containing the old/new values. For example, the pkg state\(aqs \fBchanges\fP dict
  50328. has one key for each package changed, with the "old" and "new" keys in its
  50329. sub\-dict containing the old and new versions of the package. For example,
  50330. the final changes dictionary for this scenario would look something like this:
  50331. .INDENT 2.0
  50332. .INDENT 3.5
  50333. .sp
  50334. .nf
  50335. .ft C
  50336. ret[\(aqchanges\(aq].update({\(aqmy_pkg_name\(aq: {\(aqold\(aq: \(aq\(aq,
  50337. \(aqnew\(aq: \(aqmy_pkg_name\-1.0\(aq}})
  50338. .ft P
  50339. .fi
  50340. .UNINDENT
  50341. .UNINDENT
  50342. .IP \(bu 2
  50343. \fBresult:\fP A tristate value. \fBTrue\fP if the action was successful,
  50344. \fBFalse\fP if it was not, or \fBNone\fP if the state was run in test mode,
  50345. \fBtest=True\fP, and changes would have been made if the state was not run in
  50346. test mode.
  50347. .TS
  50348. center;
  50349. |l|l|l|.
  50350. _
  50351. T{
  50352. T} T{
  50353. live mode
  50354. T} T{
  50355. test mode
  50356. T}
  50357. _
  50358. T{
  50359. no changes
  50360. T} T{
  50361. \fBTrue\fP
  50362. T} T{
  50363. \fBTrue\fP
  50364. T}
  50365. _
  50366. T{
  50367. successful changes
  50368. T} T{
  50369. \fBTrue\fP
  50370. T} T{
  50371. \fBNone\fP
  50372. T}
  50373. _
  50374. T{
  50375. failed changes
  50376. T} T{
  50377. \fBFalse\fP
  50378. T} T{
  50379. \fBFalse\fP or \fBNone\fP
  50380. T}
  50381. _
  50382. .TE
  50383. .sp
  50384. \fBNOTE:\fP
  50385. .INDENT 2.0
  50386. .INDENT 3.5
  50387. Test mode does not predict if the changes will be successful or not,
  50388. and hence the result for pending changes is usually \fBNone\fP\&.
  50389. .sp
  50390. However, if a state is going to fail and this can be determined
  50391. in test mode without applying the change, \fBFalse\fP can be returned.
  50392. .UNINDENT
  50393. .UNINDENT
  50394. .IP \(bu 2
  50395. \fBcomment:\fP A list of strings or a single string summarizing the result.
  50396. Note that support for lists of strings is available as of Salt 2018.3.0.
  50397. Lists of strings will be joined with newlines to form the final comment;
  50398. this is useful to allow multiple comments from subparts of a state.
  50399. Prefer to keep line lengths short (use multiple lines as needed),
  50400. and end with punctuation (e.g. a period) to delimit multiple comments.
  50401. .UNINDENT
  50402. .sp
  50403. \fBNOTE:\fP
  50404. .INDENT 0.0
  50405. .INDENT 3.5
  50406. States should not return data which cannot be serialized such as frozensets.
  50407. .UNINDENT
  50408. .UNINDENT
  50409. .SS Test State
  50410. .sp
  50411. All states should check for and support \fBtest\fP being passed in the options.
  50412. This will return data about what changes would occur if the state were actually
  50413. run. An example of such a check could look like this:
  50414. .INDENT 0.0
  50415. .INDENT 3.5
  50416. .sp
  50417. .nf
  50418. .ft C
  50419. # Return comment of changes if test.
  50420. if __opts__[\(aqtest\(aq]:
  50421. ret[\(aqresult\(aq] = None
  50422. ret[\(aqcomment\(aq] = \(aqState Foo will execute with param {0}\(aq.format(bar)
  50423. return ret
  50424. .ft P
  50425. .fi
  50426. .UNINDENT
  50427. .UNINDENT
  50428. .sp
  50429. Make sure to test and return before performing any real actions on the minion.
  50430. .sp
  50431. \fBNOTE:\fP
  50432. .INDENT 0.0
  50433. .INDENT 3.5
  50434. Be sure to refer to the \fBresult\fP table listed above and displaying any
  50435. possible changes when writing support for \fBtest\fP\&. Looking for changes in
  50436. a state is essential to \fBtest=true\fP functionality. If a state is predicted
  50437. to have no changes when \fBtest=true\fP (or \fBtest: true\fP in a config file)
  50438. is used, then the result of the final state \fBshould not\fP be \fBNone\fP\&.
  50439. .UNINDENT
  50440. .UNINDENT
  50441. .SS Watcher Function
  50442. .sp
  50443. If the state being written should support the watch requisite then a watcher
  50444. function needs to be declared. The watcher function is called whenever the
  50445. watch requisite is invoked and should be generic to the behavior of the state
  50446. itself.
  50447. .sp
  50448. The watcher function should accept all of the options that the normal state
  50449. functions accept (as they will be passed into the watcher function).
  50450. .sp
  50451. A watcher function typically is used to execute state specific reactive
  50452. behavior, for instance, the watcher for the service module restarts the
  50453. named service and makes it useful for the watcher to make the service
  50454. react to changes in the environment.
  50455. .sp
  50456. The watcher function also needs to return the same data that a normal state
  50457. function returns.
  50458. .SS Mod_init Interface
  50459. .sp
  50460. Some states need to execute something only once to ensure that an environment
  50461. has been set up, or certain conditions global to the state behavior can be
  50462. predefined. This is the realm of the mod_init interface.
  50463. .sp
  50464. A state module can have a function called \fBmod_init\fP which executes when the
  50465. first state of this type is called. This interface was created primarily to
  50466. improve the pkg state. When packages are installed the package metadata needs
  50467. to be refreshed, but refreshing the package metadata every time a package is
  50468. installed is wasteful. The mod_init function for the pkg state sets a flag down
  50469. so that the first, and only the first, package installation attempt will refresh
  50470. the package database (the package database can of course be manually called to
  50471. refresh via the \fBrefresh\fP option in the pkg state).
  50472. .sp
  50473. The mod_init function must accept the \fBLow State Data\fP for the given
  50474. executing state as an argument. The low state data is a dict and can be seen by
  50475. executing the state.show_lowstate function. Then the mod_init function must
  50476. return a bool. If the return value is True, then the mod_init function will not
  50477. be executed again, meaning that the needed behavior has been set up. Otherwise,
  50478. if the mod_init function returns False, then the function will be called the
  50479. next time.
  50480. .sp
  50481. A good example of the mod_init function is found in the pkg state module:
  50482. .INDENT 0.0
  50483. .INDENT 3.5
  50484. .sp
  50485. .nf
  50486. .ft C
  50487. def mod_init(low):
  50488. \(aq\(aq\(aq
  50489. Refresh the package database here so that it only needs to happen once
  50490. \(aq\(aq\(aq
  50491. if low[\(aqfun\(aq] == \(aqinstalled\(aq or low[\(aqfun\(aq] == \(aqlatest\(aq:
  50492. rtag = __gen_rtag()
  50493. if not os.path.exists(rtag):
  50494. open(rtag, \(aqw+\(aq).write(\(aq\(aq)
  50495. return True
  50496. else:
  50497. return False
  50498. .ft P
  50499. .fi
  50500. .UNINDENT
  50501. .UNINDENT
  50502. .sp
  50503. The mod_init function in the pkg state accepts the low state data as \fBlow\fP
  50504. and then checks to see if the function being called is going to install
  50505. packages, if the function is not going to install packages then there is no
  50506. need to refresh the package database. Therefore if the package database is
  50507. prepared to refresh, then return True and the mod_init will not be called
  50508. the next time a pkg state is evaluated, otherwise return False and the mod_init
  50509. will be called next time a pkg state is evaluated.
  50510. .SS Log Output
  50511. .sp
  50512. You can call the logger from custom modules to write messages to the minion
  50513. logs. The following code snippet demonstrates writing log messages:
  50514. .INDENT 0.0
  50515. .INDENT 3.5
  50516. .sp
  50517. .nf
  50518. .ft C
  50519. import logging
  50520. log = logging.getLogger(__name__)
  50521. log.info(\(aqHere is Some Information\(aq)
  50522. log.warning(\(aqYou Should Not Do That\(aq)
  50523. log.error(\(aqIt Is Busted\(aq)
  50524. .ft P
  50525. .fi
  50526. .UNINDENT
  50527. .UNINDENT
  50528. .SS Strings and Unicode
  50529. .sp
  50530. A state module author should always assume that strings fed to the module
  50531. have already decoded from strings into Unicode. In Python 2, these will
  50532. be of type \(aqUnicode\(aq and in Python 3 they will be of type \fBstr\fP\&. Calling
  50533. from a state to other Salt sub\-systems, such as execution modules should
  50534. pass Unicode (or bytes if passing binary data). In the rare event that a state needs to write directly
  50535. to disk, Unicode should be encoded to a string immediately before writing
  50536. to disk. An author may use \fB__salt_system_encoding__\fP to learn what the
  50537. encoding type of the system is. For example,
  50538. \fI\(aqmy_string\(aq.encode(__salt_system_encoding__\(aq)\fP\&.
  50539. .SS Full State Module Example
  50540. .sp
  50541. The following is a simplistic example of a full state module and function.
  50542. Remember to call out to execution modules to perform all the real work. The
  50543. state module should only perform "before" and "after" checks.
  50544. .INDENT 0.0
  50545. .IP 1. 3
  50546. Make a custom state module by putting the code into a file at the following
  50547. path: \fB/srv/salt/_states/my_custom_state.py\fP\&.
  50548. .IP 2. 3
  50549. Distribute the custom state module to the minions:
  50550. .INDENT 3.0
  50551. .INDENT 3.5
  50552. .sp
  50553. .nf
  50554. .ft C
  50555. salt \(aq*\(aq saltutil.sync_states
  50556. .ft P
  50557. .fi
  50558. .UNINDENT
  50559. .UNINDENT
  50560. .IP 3. 3
  50561. Write a new state to use the custom state by making a new state file, for
  50562. instance \fB/srv/salt/my_custom_state.sls\fP\&.
  50563. .IP 4. 3
  50564. Add the following SLS configuration to the file created in Step 3:
  50565. .INDENT 3.0
  50566. .INDENT 3.5
  50567. .sp
  50568. .nf
  50569. .ft C
  50570. human_friendly_state_id: # An arbitrary state ID declaration.
  50571. my_custom_state: # The custom state module name.
  50572. \- enforce_custom_thing # The function in the custom state module.
  50573. \- name: a_value # Maps to the \(ga\(ganame\(ga\(ga parameter in the custom function.
  50574. \- foo: Foo # Specify the required \(ga\(gafoo\(ga\(ga parameter.
  50575. \- bar: False # Override the default value for the \(ga\(gabar\(ga\(ga parameter.
  50576. .ft P
  50577. .fi
  50578. .UNINDENT
  50579. .UNINDENT
  50580. .UNINDENT
  50581. .SS Example state module
  50582. .INDENT 0.0
  50583. .INDENT 3.5
  50584. .sp
  50585. .nf
  50586. .ft C
  50587. import salt.exceptions
  50588. def enforce_custom_thing(name, foo, bar=True):
  50589. \(aq\(aq\(aq
  50590. Enforce the state of a custom thing
  50591. This state module does a custom thing. It calls out to the execution module
  50592. \(ga\(gamy_custom_module\(ga\(ga in order to check the current system and perform any
  50593. needed changes.
  50594. name
  50595. The thing to do something to
  50596. foo
  50597. A required argument
  50598. bar : True
  50599. An argument with a default value
  50600. \(aq\(aq\(aq
  50601. ret = {
  50602. \(aqname\(aq: name,
  50603. \(aqchanges\(aq: {},
  50604. \(aqresult\(aq: False,
  50605. \(aqcomment\(aq: \(aq\(aq,
  50606. }
  50607. # Start with basic error\-checking. Do all the passed parameters make sense
  50608. # and agree with each\-other?
  50609. if bar == True and foo.startswith(\(aqFoo\(aq):
  50610. raise salt.exceptions.SaltInvocationError(
  50611. \(aqArgument "foo" cannot start with "Foo" if argument "bar" is True.\(aq)
  50612. # Check the current state of the system. Does anything need to change?
  50613. current_state = __salt__[\(aqmy_custom_module.current_state\(aq](name)
  50614. if current_state == foo:
  50615. ret[\(aqresult\(aq] = True
  50616. ret[\(aqcomment\(aq] = \(aqSystem already in the correct state\(aq
  50617. return ret
  50618. # The state of the system does need to be changed. Check if we\(aqre running
  50619. # in \(ga\(gatest=true\(ga\(ga mode.
  50620. if __opts__[\(aqtest\(aq] == True:
  50621. ret[\(aqcomment\(aq] = \(aqThe state of "{0}" will be changed.\(aq.format(name)
  50622. ret[\(aqchanges\(aq] = {
  50623. \(aqold\(aq: current_state,
  50624. \(aqnew\(aq: \(aqDescription, diff, whatever of the new state\(aq,
  50625. }
  50626. # Return \(ga\(gaNone\(ga\(ga when running with \(ga\(gatest=true\(ga\(ga.
  50627. ret[\(aqresult\(aq] = None
  50628. return ret
  50629. # Finally, make the actual change and return the result.
  50630. new_state = __salt__[\(aqmy_custom_module.change_state\(aq](name, foo)
  50631. ret[\(aqcomment\(aq] = \(aqThe state of "{0}" was changed!\(aq.format(name)
  50632. ret[\(aqchanges\(aq] = {
  50633. \(aqold\(aq: current_state,
  50634. \(aqnew\(aq: new_state,
  50635. }
  50636. ret[\(aqresult\(aq] = True
  50637. return ret
  50638. .ft P
  50639. .fi
  50640. .UNINDENT
  50641. .UNINDENT
  50642. .SS State Management
  50643. .sp
  50644. State management, also frequently called Software Configuration Management
  50645. (SCM), is a program that puts and keeps a system into a predetermined state. It
  50646. installs software packages, starts or restarts services or puts configuration
  50647. files in place and watches them for changes.
  50648. .sp
  50649. Having a state management system in place allows one to easily and reliably
  50650. configure and manage a few servers or a few thousand servers. It allows
  50651. configurations to be kept under version control.
  50652. .sp
  50653. Salt States is an extension of the Salt Modules that we discussed in the
  50654. previous remote execution tutorial. Instead
  50655. of calling one\-off executions the state of a system can be easily defined and
  50656. then enforced.
  50657. .SS Understanding the Salt State System Components
  50658. .sp
  50659. The Salt state system is comprised of a number of components. As a user, an
  50660. understanding of the SLS and renderer systems are needed. But as a developer,
  50661. an understanding of Salt states and how to write the states is needed as well.
  50662. .sp
  50663. \fBNOTE:\fP
  50664. .INDENT 0.0
  50665. .INDENT 3.5
  50666. States are compiled and executed only on minions that have been targeted.
  50667. To execute functions directly on masters, see runners\&.
  50668. .UNINDENT
  50669. .UNINDENT
  50670. .SS Salt SLS System
  50671. .sp
  50672. The primary system used by the Salt state system is the SLS system. SLS stands
  50673. for \fBS\fPa\fBL\fPt \fBS\fPtate.
  50674. .sp
  50675. The Salt States are files which contain the information about how to configure
  50676. Salt minions. The states are laid out in a directory tree and can be written in
  50677. many different formats.
  50678. .sp
  50679. The contents of the files and the way they are laid out is intended to be as
  50680. simple as possible while allowing for maximum flexibility. The files are laid
  50681. out in states and contains information about how the minion needs to be
  50682. configured.
  50683. .SS SLS File Layout
  50684. .sp
  50685. SLS files are laid out in the Salt file server.
  50686. .sp
  50687. A simple layout can look like this:
  50688. .INDENT 0.0
  50689. .INDENT 3.5
  50690. .sp
  50691. .nf
  50692. .ft C
  50693. top.sls
  50694. ssh.sls
  50695. sshd_config
  50696. users/init.sls
  50697. users/admin.sls
  50698. salt/master.sls
  50699. web/init.sls
  50700. .ft P
  50701. .fi
  50702. .UNINDENT
  50703. .UNINDENT
  50704. .sp
  50705. The \fBtop.sls\fP file is a key component. The \fBtop.sls\fP files
  50706. is used to determine which SLS files should be applied to which minions.
  50707. .sp
  50708. The rest of the files with the \fB\&.sls\fP extension in the above example are
  50709. state files.
  50710. .sp
  50711. Files without a \fB\&.sls\fP extensions are seen by the Salt master as
  50712. files that can be downloaded to a Salt minion.
  50713. .sp
  50714. States are translated into dot notation. For example, the \fBssh.sls\fP file is
  50715. seen as the ssh state and the \fBusers/admin.sls\fP file is seen as the
  50716. users.admin state.
  50717. .sp
  50718. Files named \fBinit.sls\fP are translated to be the state name of the parent
  50719. directory, so the \fBweb/init.sls\fP file translates to the \fBweb\fP state.
  50720. .sp
  50721. In Salt, everything is a file; there is no "magic translation" of files and file
  50722. types. This means that a state file can be distributed to minions just like a
  50723. plain text or binary file.
  50724. .SS SLS Files
  50725. .sp
  50726. The Salt state files are simple sets of data. Since SLS files are just data
  50727. they can be represented in a number of different ways.
  50728. .sp
  50729. The default format is YAML generated from a Jinja template. This allows for the
  50730. states files to have all the language constructs of Python and the simplicity of YAML.
  50731. .sp
  50732. State files can then be complicated Jinja templates that translate down to YAML, or just
  50733. plain and simple YAML files.
  50734. .sp
  50735. The State files are simply common data structures such as dictionaries and lists, constructed
  50736. using a templating language such as YAML.
  50737. .sp
  50738. Here is an example of a Salt State:
  50739. .INDENT 0.0
  50740. .INDENT 3.5
  50741. .sp
  50742. .nf
  50743. .ft C
  50744. vim:
  50745. pkg.installed: []
  50746. salt:
  50747. pkg.latest:
  50748. \- name: salt
  50749. service.running:
  50750. \- names:
  50751. \- salt\-master
  50752. \- salt\-minion
  50753. \- require:
  50754. \- pkg: salt
  50755. \- watch:
  50756. \- file: /etc/salt/minion
  50757. /etc/salt/minion:
  50758. file.managed:
  50759. \- source: salt://salt/minion
  50760. \- user: root
  50761. \- group: root
  50762. \- mode: 644
  50763. \- require:
  50764. \- pkg: salt
  50765. .ft P
  50766. .fi
  50767. .UNINDENT
  50768. .UNINDENT
  50769. .sp
  50770. This short stanza will ensure that vim is installed, Salt is installed and up
  50771. to date, the salt\-master and salt\-minion daemons are running and the Salt
  50772. minion configuration file is in place. It will also ensure everything is
  50773. deployed in the right order and that the Salt services are restarted when the
  50774. watched file updated.
  50775. .SS The Top File
  50776. .sp
  50777. The top file controls the mapping between minions and the states which should
  50778. be applied to them.
  50779. .sp
  50780. The top file specifies which minions should have which SLS files applied and
  50781. which environments they should draw those SLS files from.
  50782. .sp
  50783. The top file works by specifying environments on the top\-level.
  50784. .sp
  50785. Each environment contains target expressions to match
  50786. minions. Finally, each target expression contains a list of Salt states to
  50787. apply to matching minions:
  50788. .INDENT 0.0
  50789. .INDENT 3.5
  50790. .sp
  50791. .nf
  50792. .ft C
  50793. base:
  50794. \(aq*\(aq:
  50795. \- salt
  50796. \- users
  50797. \- users.admin
  50798. \(aqsaltmaster.*\(aq:
  50799. \- match: pcre
  50800. \- salt.master
  50801. .ft P
  50802. .fi
  50803. .UNINDENT
  50804. .UNINDENT
  50805. .sp
  50806. This above example uses the base environment which is built into the default
  50807. Salt setup.
  50808. .sp
  50809. The base environment has target expressions. The first one matches all minions,
  50810. and the SLS files below it apply to all minions.
  50811. .sp
  50812. The second expression is a regular expression that will match all minions
  50813. with an ID matching \fBsaltmaster.*\fP and specifies that for those minions, the
  50814. salt.master state should be applied.
  50815. .sp
  50816. \fBIMPORTANT:\fP
  50817. .INDENT 0.0
  50818. .INDENT 3.5
  50819. Since version 2014.7.0, the default matcher (when one is not explicitly
  50820. defined as in the second expression in the above example) is the
  50821. compound matcher. Since this matcher parses
  50822. individual words in the expression, minion IDs containing spaces will not
  50823. match properly using this matcher. Therefore, if your target expression is
  50824. designed to match a minion ID containing spaces, it will be necessary to
  50825. specify a different match type (such as \fBglob\fP). For example:
  50826. .INDENT 0.0
  50827. .INDENT 3.5
  50828. .sp
  50829. .nf
  50830. .ft C
  50831. base:
  50832. \(aqtest minion\(aq:
  50833. \- match: glob
  50834. \- foo
  50835. \- bar
  50836. \- baz
  50837. .ft P
  50838. .fi
  50839. .UNINDENT
  50840. .UNINDENT
  50841. .UNINDENT
  50842. .UNINDENT
  50843. .sp
  50844. A full table of match types available in the top file can be found here\&.
  50845. .SS Reloading Modules
  50846. .sp
  50847. Some Salt states require that specific packages be installed in order for the
  50848. module to load. As an example the \fBpip\fP state
  50849. module requires the \fI\%pip\fP package for proper name and version parsing.
  50850. .sp
  50851. In most of the common cases, Salt is clever enough to transparently reload the
  50852. modules. For example, if you install a package, Salt reloads modules because
  50853. some other module or state might require just that package which was installed.
  50854. .sp
  50855. On some edge\-cases salt might need to be told to reload the modules. Consider
  50856. the following state file which we\(aqll call \fBpep8.sls\fP:
  50857. .INDENT 0.0
  50858. .INDENT 3.5
  50859. .sp
  50860. .nf
  50861. .ft C
  50862. python\-pip:
  50863. cmd.run:
  50864. \- name: |
  50865. easy_install \-\-script\-dir=/usr/bin \-U pip
  50866. \- cwd: /
  50867. pep8:
  50868. pip.installed:
  50869. \- require:
  50870. \- cmd: python\-pip
  50871. .ft P
  50872. .fi
  50873. .UNINDENT
  50874. .UNINDENT
  50875. .sp
  50876. The above example installs \fI\%pip\fP using \fBeasy_install\fP from \fI\%setuptools\fP and
  50877. installs \fI\%pep8\fP using \fBpip\fP, which, as told
  50878. earlier, requires \fI\%pip\fP to be installed system\-wide. Let\(aqs execute this state:
  50879. .INDENT 0.0
  50880. .INDENT 3.5
  50881. .sp
  50882. .nf
  50883. .ft C
  50884. salt\-call state.apply pep8
  50885. .ft P
  50886. .fi
  50887. .UNINDENT
  50888. .UNINDENT
  50889. .sp
  50890. The execution output would be something like:
  50891. .INDENT 0.0
  50892. .INDENT 3.5
  50893. .sp
  50894. .nf
  50895. .ft C
  50896. \-\-\-\-\-\-\-\-\-\-
  50897. State: \- pip
  50898. Name: pep8
  50899. Function: installed
  50900. Result: False
  50901. Comment: State pip.installed found in sls pep8 is unavailable
  50902. Changes:
  50903. Summary
  50904. \-\-\-\-\-\-\-\-\-\-\-\-
  50905. Succeeded: 1
  50906. Failed: 1
  50907. \-\-\-\-\-\-\-\-\-\-\-\-
  50908. Total: 2
  50909. .ft P
  50910. .fi
  50911. .UNINDENT
  50912. .UNINDENT
  50913. .sp
  50914. If we executed the state again the output would be:
  50915. .INDENT 0.0
  50916. .INDENT 3.5
  50917. .sp
  50918. .nf
  50919. .ft C
  50920. \-\-\-\-\-\-\-\-\-\-
  50921. State: \- pip
  50922. Name: pep8
  50923. Function: installed
  50924. Result: True
  50925. Comment: Package was successfully installed
  50926. Changes: pep8==1.4.6: Installed
  50927. Summary
  50928. \-\-\-\-\-\-\-\-\-\-\-\-
  50929. Succeeded: 2
  50930. Failed: 0
  50931. \-\-\-\-\-\-\-\-\-\-\-\-
  50932. Total: 2
  50933. .ft P
  50934. .fi
  50935. .UNINDENT
  50936. .UNINDENT
  50937. .sp
  50938. Since we installed \fI\%pip\fP using \fBcmd\fP, Salt has no way
  50939. to know that a system\-wide package was installed.
  50940. .sp
  50941. On the second execution, since the required \fI\%pip\fP package was installed, the
  50942. state executed correctly.
  50943. .sp
  50944. \fBNOTE:\fP
  50945. .INDENT 0.0
  50946. .INDENT 3.5
  50947. Salt does not reload modules on every state run because doing so would greatly
  50948. slow down state execution.
  50949. .UNINDENT
  50950. .UNINDENT
  50951. .sp
  50952. So how do we solve this \fIedge\-case\fP? \fBreload_modules\fP!
  50953. .sp
  50954. \fBreload_modules\fP is a boolean option recognized by salt on \fBall\fP available
  50955. states which forces salt to reload its modules once a given state finishes.
  50956. .sp
  50957. The modified state file would now be:
  50958. .INDENT 0.0
  50959. .INDENT 3.5
  50960. .sp
  50961. .nf
  50962. .ft C
  50963. python\-pip:
  50964. cmd.run:
  50965. \- name: |
  50966. easy_install \-\-script\-dir=/usr/bin \-U pip
  50967. \- cwd: /
  50968. \- reload_modules: true
  50969. pep8:
  50970. pip.installed:
  50971. \- require:
  50972. \- cmd: python\-pip
  50973. .ft P
  50974. .fi
  50975. .UNINDENT
  50976. .UNINDENT
  50977. .sp
  50978. Let\(aqs run it, once:
  50979. .INDENT 0.0
  50980. .INDENT 3.5
  50981. .sp
  50982. .nf
  50983. .ft C
  50984. salt\-call state.apply pep8
  50985. .ft P
  50986. .fi
  50987. .UNINDENT
  50988. .UNINDENT
  50989. .sp
  50990. The output is:
  50991. .INDENT 0.0
  50992. .INDENT 3.5
  50993. .sp
  50994. .nf
  50995. .ft C
  50996. \-\-\-\-\-\-\-\-\-\-
  50997. State: \- pip
  50998. Name: pep8
  50999. Function: installed
  51000. Result: True
  51001. Comment: Package was successfully installed
  51002. Changes: pep8==1.4.6: Installed
  51003. Summary
  51004. \-\-\-\-\-\-\-\-\-\-\-\-
  51005. Succeeded: 2
  51006. Failed: 0
  51007. \-\-\-\-\-\-\-\-\-\-\-\-
  51008. Total: 2
  51009. .ft P
  51010. .fi
  51011. .UNINDENT
  51012. .UNINDENT
  51013. .SH RETURN CODES
  51014. .sp
  51015. When the \fBsalt\fP or \fBsalt\-call\fP CLI commands result in an error, the command
  51016. will exit with a return code of \fB1\fP\&. Error cases consist of the following:
  51017. .INDENT 0.0
  51018. .IP 1. 3
  51019. Errors are encountered while running States, or any state returns a \fBFalse\fP result
  51020. .IP 2. 3
  51021. Any exception is raised
  51022. .IP 3. 3
  51023. In the case of remote\-execution functions, when the return data is a
  51024. \fI\%Python dictionary\fP with a key named either \fBresult\fP
  51025. or \fBsuccess\fP, which has a value of \fBFalse\fP
  51026. .UNINDENT
  51027. .SS Retcode Passthrough
  51028. .sp
  51029. In addition to the cases listed above, if a state or remote\-execution function
  51030. sets a nonzero value in the \fBretcode\fP key of the __context__ dictionary, the command will exit with a return code of
  51031. \fB1\fP\&. For those developing custom states and execution modules, using
  51032. \fB__context__[\(aqretcode\(aq]\fP can be a useful way of signaling that an error has
  51033. occurred:
  51034. .INDENT 0.0
  51035. .INDENT 3.5
  51036. .sp
  51037. .nf
  51038. .ft C
  51039. if something_went_wrong:
  51040. __context__[\(aqretcode\(aq] = 42
  51041. .ft P
  51042. .fi
  51043. .UNINDENT
  51044. .UNINDENT
  51045. .sp
  51046. This is actually how states signal that they have failed. Different cases
  51047. result in different codes being set in the __context__
  51048. dictionary:
  51049. .INDENT 0.0
  51050. .IP \(bu 2
  51051. \fB1\fP is set when any error is encountered in the state compiler (missing SLS
  51052. file, etc.)
  51053. .IP \(bu 2
  51054. \fB2\fP is set when any state returns a \fBFalse\fP result
  51055. .IP \(bu 2
  51056. \fB5\fP is set when Pillar data fails to be compiled before running the
  51057. state(s)
  51058. .UNINDENT
  51059. .sp
  51060. When the \fB\-\-retcode\-passthrough\fP flag is used with \fBsalt\-call\fP, then
  51061. \fBsalt\-call\fP will exit with whichever retcode was set in the __context__ dictionary, rather than the default behavior which simply
  51062. exits with \fB1\fP for any error condition.
  51063. .SH UTILITY MODULES - CODE REUSE IN CUSTOM MODULES
  51064. .sp
  51065. New in version 2015.5.0.
  51066. .sp
  51067. Changed in version 2016.11.0: These can now be synced to the Master for use in custom Runners, and in
  51068. custom execution modules called within Pillar SLS files.
  51069. .sp
  51070. When extending Salt by writing custom (state modules), execution modules, etc., sometimes there is a need for a function to
  51071. be available to more than just one kind of custom module. For these cases, Salt
  51072. supports what are called "utility modules". These modules are like normal
  51073. execution modules, but instead of being invoked in Salt code using
  51074. \fB__salt__\fP, the \fB__utils__\fP prefix is used instead.
  51075. .sp
  51076. For example, assuming the following simple utility module, saved to
  51077. \fBsalt://_utils/foo.py\fP
  51078. .INDENT 0.0
  51079. .INDENT 3.5
  51080. .sp
  51081. .nf
  51082. .ft C
  51083. # \-*\- coding: utf\-8 \-*\-
  51084. \(aq\(aq\(aq
  51085. My utils module
  51086. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51087. This module contains common functions for use in my other custom types.
  51088. \(aq\(aq\(aq
  51089. def bar():
  51090. return \(aqbaz\(aq
  51091. .ft P
  51092. .fi
  51093. .UNINDENT
  51094. .UNINDENT
  51095. .sp
  51096. Once synced to a minion, this function would be available to other custom Salt
  51097. types like so:
  51098. .INDENT 0.0
  51099. .INDENT 3.5
  51100. .sp
  51101. .nf
  51102. .ft C
  51103. # \-*\- coding: utf\-8 \-*\-
  51104. \(aq\(aq\(aq
  51105. My awesome execution module
  51106. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51107. \(aq\(aq\(aq
  51108. def observe_the_awesomeness():
  51109. \(aq\(aq\(aq
  51110. Prints information from my utility module
  51111. CLI Example:
  51112. .. code\-block:: bash
  51113. salt \(aq*\(aq mymodule.observe_the_awesomeness
  51114. \(aq\(aq\(aq
  51115. return __utils__[\(aqfoo.bar\(aq]()
  51116. .ft P
  51117. .fi
  51118. .UNINDENT
  51119. .UNINDENT
  51120. .sp
  51121. Utility modules, like any other kind of Salt extension, support using a
  51122. __virtual__ function to conditionally load them,
  51123. or load them under a different namespace. For instance, if the utility module
  51124. above were named \fBsalt://_utils/mymodule.py\fP it could be made to be loaded as
  51125. the \fBfoo\fP utility module with a \fB__virtual__\fP function.
  51126. .INDENT 0.0
  51127. .INDENT 3.5
  51128. .sp
  51129. .nf
  51130. .ft C
  51131. # \-*\- coding: utf\-8 \-*\-
  51132. \(aq\(aq\(aq
  51133. My utils module
  51134. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51135. This module contains common functions for use in my other custom types.
  51136. \(aq\(aq\(aq
  51137. def __virtual__():
  51138. \(aq\(aq\(aq
  51139. Load as a different name
  51140. \(aq\(aq\(aq
  51141. return \(aqfoo\(aq
  51142. def bar():
  51143. return \(aqbaz\(aq
  51144. .ft P
  51145. .fi
  51146. .UNINDENT
  51147. .UNINDENT
  51148. .sp
  51149. New in version 2018.3.0: Instantiating objects from classes declared in util modules works with
  51150. Master side modules, such as Runners, Outputters, etc.
  51151. .sp
  51152. Also you could even write your utility modules in object oriented fashion:
  51153. .INDENT 0.0
  51154. .INDENT 3.5
  51155. .sp
  51156. .nf
  51157. .ft C
  51158. # \-*\- coding: utf\-8 \-*\-
  51159. \(aq\(aq\(aq
  51160. My OOP\-style utils module
  51161. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51162. This module contains common functions for use in my other custom types.
  51163. \(aq\(aq\(aq
  51164. class Foo(object):
  51165. def __init__(self):
  51166. pass
  51167. def bar(self):
  51168. return \(aqbaz\(aq
  51169. .ft P
  51170. .fi
  51171. .UNINDENT
  51172. .UNINDENT
  51173. .sp
  51174. And import them into other custom modules:
  51175. .INDENT 0.0
  51176. .INDENT 3.5
  51177. .sp
  51178. .nf
  51179. .ft C
  51180. # \-*\- coding: utf\-8 \-*\-
  51181. \(aq\(aq\(aq
  51182. My awesome execution module
  51183. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  51184. \(aq\(aq\(aq
  51185. import mymodule
  51186. def observe_the_awesomeness():
  51187. \(aq\(aq\(aq
  51188. Prints information from my utility module
  51189. CLI Example:
  51190. .. code\-block:: bash
  51191. salt \(aq*\(aq mymodule.observe_the_awesomeness
  51192. \(aq\(aq\(aq
  51193. foo = mymodule.Foo()
  51194. return foo.bar()
  51195. .ft P
  51196. .fi
  51197. .UNINDENT
  51198. .UNINDENT
  51199. .sp
  51200. These are, of course, contrived examples, but they should serve to show some of
  51201. the possibilities opened up by writing utility modules. Keep in mind though
  51202. that states still have access to all of the execution modules, so it is not
  51203. necessary to write a utility module to make a function available to both a
  51204. state and an execution module. One good use case for utility modules is one
  51205. where it is necessary to invoke the same function from a custom outputter/returner, as well as an execution module.
  51206. .sp
  51207. Utility modules placed in \fBsalt://_utils/\fP will be synced to the minions when
  51208. a highstate is run, as well as when any of the
  51209. following Salt functions are called:
  51210. .INDENT 0.0
  51211. .IP \(bu 2
  51212. \fBsaltutil.sync_utils\fP
  51213. .IP \(bu 2
  51214. \fBsaltutil.sync_all\fP
  51215. .UNINDENT
  51216. .sp
  51217. As of the 2019.2.0 release, as well as 2017.7.7 and 2018.3.2 in their
  51218. respective release cycles, the \fBsync\fP argument to \fBstate.apply\fP/\fBstate.sls\fP can
  51219. be used to sync custom types when running individual SLS files.
  51220. .sp
  51221. To sync to the Master, use either of the following:
  51222. .INDENT 0.0
  51223. .IP \(bu 2
  51224. \fBsaltutil.sync_utils\fP
  51225. .IP \(bu 2
  51226. \fBsaltutil.sync_all\fP
  51227. .UNINDENT
  51228. .SH EVENTS & REACTOR
  51229. .SS Event System
  51230. .sp
  51231. The Salt Event System is used to fire off events enabling third party
  51232. applications or external processes to react to behavior within Salt.
  51233. The event system uses a publish\-subscribe pattern, otherwise know as pub/sub.
  51234. .SS Event Bus
  51235. .sp
  51236. The event system is comprised of a two primary components, which make up the
  51237. concept of an Event Bus:
  51238. .INDENT 0.0
  51239. .IP \(bu 2
  51240. The event sockets, which publish events
  51241. .IP \(bu 2
  51242. The event library, which can listen to events and send events into the salt system
  51243. .UNINDENT
  51244. .sp
  51245. Events are published onto the event bus and event bus subscribers listen for the
  51246. published events.
  51247. .sp
  51248. The event bus is used for both inter\-process communication as well as network transport
  51249. in Salt. Inter\-process communication is provided through UNIX domain sockets (UDX).
  51250. .sp
  51251. The Salt Master and each Salt Minion has their own event bus.
  51252. .SS Event types
  51253. .SS Salt Master Events
  51254. .sp
  51255. These events are fired on the Salt Master event bus. This list is \fBnot\fP
  51256. comprehensive.
  51257. .SS Authentication events
  51258. .INDENT 0.0
  51259. .TP
  51260. .B salt/auth
  51261. Fired when a minion performs an authentication check with the master.
  51262. .INDENT 7.0
  51263. .TP
  51264. .B Variables
  51265. .INDENT 7.0
  51266. .IP \(bu 2
  51267. \fBid\fP \-\- The minion ID.
  51268. .IP \(bu 2
  51269. \fBact\fP \-\- The current status of the minion key: \fBaccept\fP, \fBpend\fP,
  51270. \fBreject\fP\&.
  51271. .IP \(bu 2
  51272. \fBpub\fP \-\- The minion public key.
  51273. .UNINDENT
  51274. .UNINDENT
  51275. .sp
  51276. \fBNOTE:\fP
  51277. .INDENT 7.0
  51278. .INDENT 3.5
  51279. Minions fire auth events on fairly regular basis for a number
  51280. of reasons. Writing reactors to respond to events through
  51281. the auth cycle can lead to infinite reactor event loops
  51282. (minion tries to auth, reactor responds by doing something
  51283. that generates another auth event, minion sends auth event,
  51284. etc.). Consider reacting to \fBsalt/key\fP or \fBsalt/minion/<MID>/start\fP
  51285. or firing a custom event tag instead.
  51286. .UNINDENT
  51287. .UNINDENT
  51288. .UNINDENT
  51289. .SS Start events
  51290. .INDENT 0.0
  51291. .TP
  51292. .B salt/minion/<MID>/start
  51293. Fired every time a minion connects to the Salt master.
  51294. .INDENT 7.0
  51295. .TP
  51296. .B Variables
  51297. \fBid\fP \-\- The minion ID.
  51298. .UNINDENT
  51299. .UNINDENT
  51300. .SS Key events
  51301. .INDENT 0.0
  51302. .TP
  51303. .B salt/key
  51304. Fired when accepting and rejecting minions keys on the Salt master.
  51305. These happen as a result of actions undertaken by the \fIsalt\-key\fP command.
  51306. .INDENT 7.0
  51307. .TP
  51308. .B Variables
  51309. .INDENT 7.0
  51310. .IP \(bu 2
  51311. \fBid\fP \-\- The minion ID.
  51312. .IP \(bu 2
  51313. \fBact\fP \-\- The new status of the minion key: \fBaccept\fP, \fBdelete\fP,
  51314. .UNINDENT
  51315. .UNINDENT
  51316. .UNINDENT
  51317. .sp
  51318. \fBWARNING:\fP
  51319. .INDENT 0.0
  51320. .INDENT 3.5
  51321. If a master is in \fBauto_accept mode\fP, \fBsalt/key\fP events
  51322. will not be fired when the keys are accepted. In addition, pre\-seeding
  51323. keys (like happens through Salt\-Cloud) will not cause
  51324. firing of these events.
  51325. .UNINDENT
  51326. .UNINDENT
  51327. .SS Job events
  51328. .INDENT 0.0
  51329. .TP
  51330. .B salt/job/<JID>/new
  51331. Fired as a new job is sent out to minions.
  51332. .INDENT 7.0
  51333. .TP
  51334. .B Variables
  51335. .INDENT 7.0
  51336. .IP \(bu 2
  51337. \fBjid\fP \-\- The job ID.
  51338. .IP \(bu 2
  51339. \fBtgt\fP \-\- The target of the job: \fB*\fP, a minion ID,
  51340. \fBG@os_family:RedHat\fP, etc.
  51341. .IP \(bu 2
  51342. \fBtgt_type\fP \-\- The type of targeting used: \fBglob\fP, \fBgrain\fP,
  51343. \fBcompound\fP, etc.
  51344. .IP \(bu 2
  51345. \fBfun\fP \-\- The function to run on minions: \fBtest.version\fP,
  51346. \fBnetwork.interfaces\fP, etc.
  51347. .IP \(bu 2
  51348. \fBarg\fP \-\- A list of arguments to pass to the function that will be
  51349. called.
  51350. .IP \(bu 2
  51351. \fBminions\fP \-\- A list of minion IDs that Salt expects will return data for
  51352. this job.
  51353. .IP \(bu 2
  51354. \fBuser\fP \-\- The name of the user that ran the command as defined in Salt\(aqs
  51355. Publisher ACL or external auth.
  51356. .UNINDENT
  51357. .UNINDENT
  51358. .UNINDENT
  51359. .INDENT 0.0
  51360. .TP
  51361. .B salt/job/<JID>/ret/<MID>
  51362. Fired each time a minion returns data for a job.
  51363. .INDENT 7.0
  51364. .TP
  51365. .B Variables
  51366. .INDENT 7.0
  51367. .IP \(bu 2
  51368. \fBid\fP \-\- The minion ID.
  51369. .IP \(bu 2
  51370. \fBjid\fP \-\- The job ID.
  51371. .IP \(bu 2
  51372. \fBretcode\fP \-\- The return code for the job.
  51373. .IP \(bu 2
  51374. \fBfun\fP \-\- The function the minion ran. E.g., \fBtest.version\fP\&.
  51375. .IP \(bu 2
  51376. \fBreturn\fP \-\- The data returned from the execution module.
  51377. .UNINDENT
  51378. .UNINDENT
  51379. .UNINDENT
  51380. .INDENT 0.0
  51381. .TP
  51382. .B salt/job/<JID>/prog/<MID>/<RUN NUM>
  51383. Fired each time a each function in a state run completes execution. Must be
  51384. enabled using the \fBstate_events\fP option.
  51385. .INDENT 7.0
  51386. .TP
  51387. .B Variables
  51388. .INDENT 7.0
  51389. .IP \(bu 2
  51390. \fBdata\fP \-\- The data returned from the state module function.
  51391. .IP \(bu 2
  51392. \fBid\fP \-\- The minion ID.
  51393. .IP \(bu 2
  51394. \fBjid\fP \-\- The job ID.
  51395. .UNINDENT
  51396. .UNINDENT
  51397. .UNINDENT
  51398. .SS Runner Events
  51399. .INDENT 0.0
  51400. .TP
  51401. .B salt/run/<JID>/new
  51402. Fired as a runner begins execution
  51403. .INDENT 7.0
  51404. .TP
  51405. .B Variables
  51406. .INDENT 7.0
  51407. .IP \(bu 2
  51408. \fBjid\fP \-\- The job ID.
  51409. .IP \(bu 2
  51410. \fBfun\fP \-\- The name of the runner function, with \fBrunner.\fP prepended to it
  51411. (e.g. \fBrunner.jobs.lookup_jid\fP)
  51412. .IP \(bu 2
  51413. \fBfun_args\fP \-\- The arguments passed to the runner function (e.g.
  51414. \fB[\(aq20160829225914848058\(aq]\fP)
  51415. .IP \(bu 2
  51416. \fBuser\fP \-\- The user who executed the runner (e.g. \fBroot\fP)
  51417. .UNINDENT
  51418. .UNINDENT
  51419. .UNINDENT
  51420. .INDENT 0.0
  51421. .TP
  51422. .B salt/run/<JID>/ret
  51423. Fired when a runner function returns
  51424. .INDENT 7.0
  51425. .TP
  51426. .B Variables
  51427. .INDENT 7.0
  51428. .IP \(bu 2
  51429. \fBjid\fP \-\- The job ID.
  51430. .IP \(bu 2
  51431. \fBfun\fP \-\- The name of the runner function, with \fBrunner.\fP prepended to it
  51432. (e.g. \fBrunner.jobs.lookup_jid\fP)
  51433. .IP \(bu 2
  51434. \fBfun_args\fP \-\- The arguments passed to the runner function (e.g.
  51435. \fB[\(aq20160829225914848058\(aq]\fP)
  51436. .IP \(bu 2
  51437. \fBreturn\fP \-\- The data returned by the runner function
  51438. .UNINDENT
  51439. .UNINDENT
  51440. .UNINDENT
  51441. .INDENT 0.0
  51442. .TP
  51443. .B salt/run/<JID>/args
  51444. New in version 2016.11.0.
  51445. .sp
  51446. Fired by the \fBstate.orchestrate\fP
  51447. runner
  51448. .INDENT 7.0
  51449. .TP
  51450. .B Variables
  51451. .INDENT 7.0
  51452. .IP \(bu 2
  51453. \fBname\fP \-\- The ID declaration for the orchestration job (i.e. the line
  51454. above \fBsalt.state\fP, \fBsalt.function\fP, \fBsalt.runner\fP, etc.)
  51455. .IP \(bu 2
  51456. \fBtype\fP \-\- The type of orchestration job being run (e.g. \fBstate\fP)
  51457. .IP \(bu 2
  51458. \fBtgt\fP \-\- The target expression (e.g. \fB*\fP). Included for \fBstate\fP and
  51459. \fBfunction\fP types only.
  51460. .IP \(bu 2
  51461. \fBargs\fP \-\- The args passed to the orchestration job. \fBNote:\fP for
  51462. \fBstate\fP and \fBfunction\fP types, also includes a \fBtgt_type\fP value
  51463. which shows what kind of match (\fBglob\fP, \fBpcre\fP, etc.) was used.
  51464. This value was named \fBexpr_form\fP in the 2016.11 release cycle but has
  51465. been renamed to \fBtgt_type\fP in 2017.7.0 for consistency with other
  51466. events.
  51467. .UNINDENT
  51468. .UNINDENT
  51469. .UNINDENT
  51470. .SS Presence Events
  51471. .INDENT 0.0
  51472. .TP
  51473. .B salt/presence/present
  51474. Events fired on a regular interval about currently connected, newly
  51475. connected, or recently disconnected minions. Requires the
  51476. \fBpresence_events\fP setting to be enabled.
  51477. .INDENT 7.0
  51478. .TP
  51479. .B Variables
  51480. \fBpresent\fP \-\- A list of minions that are currently connected to the Salt
  51481. master.
  51482. .UNINDENT
  51483. .UNINDENT
  51484. .INDENT 0.0
  51485. .TP
  51486. .B salt/presence/change
  51487. Fired when the Presence system detects new minions connect or disconnect.
  51488. .INDENT 7.0
  51489. .TP
  51490. .B Variables
  51491. .INDENT 7.0
  51492. .IP \(bu 2
  51493. \fBnew\fP \-\- A list of minions that have connected since the last presence
  51494. event.
  51495. .IP \(bu 2
  51496. \fBlost\fP \-\- A list of minions that have disconnected since the last
  51497. presence event.
  51498. .UNINDENT
  51499. .UNINDENT
  51500. .UNINDENT
  51501. .SS Cloud Events
  51502. .sp
  51503. Unlike other Master events, \fBsalt\-cloud\fP events are not fired on behalf of a
  51504. Salt Minion. Instead, \fBsalt\-cloud\fP events are fired on behalf of a VM. This
  51505. is because the minion\-to\-be may not yet exist to fire events to or also may have
  51506. been destroyed.
  51507. .sp
  51508. This behavior is reflected by the \fBname\fP variable in the event data for
  51509. \fBsalt\-cloud\fP events as compared to the \fBid\fP variable for Salt
  51510. Minion\-triggered events.
  51511. .INDENT 0.0
  51512. .TP
  51513. .B salt/cloud/<VM NAME>/creating
  51514. Fired when salt\-cloud starts the VM creation process.
  51515. .INDENT 7.0
  51516. .TP
  51517. .B Variables
  51518. .INDENT 7.0
  51519. .IP \(bu 2
  51520. \fBname\fP \-\- the name of the VM being created.
  51521. .IP \(bu 2
  51522. \fBevent\fP \-\- description of the event.
  51523. .IP \(bu 2
  51524. \fBprovider\fP \-\- the cloud provider of the VM being created.
  51525. .IP \(bu 2
  51526. \fBprofile\fP \-\- the cloud profile for the VM being created.
  51527. .UNINDENT
  51528. .UNINDENT
  51529. .UNINDENT
  51530. .INDENT 0.0
  51531. .TP
  51532. .B salt/cloud/<VM NAME>/deploying
  51533. Fired when the VM is available and salt\-cloud begins deploying Salt to the
  51534. new VM.
  51535. .INDENT 7.0
  51536. .TP
  51537. .B Variables
  51538. .INDENT 7.0
  51539. .IP \(bu 2
  51540. \fBname\fP \-\- the name of the VM being created.
  51541. .IP \(bu 2
  51542. \fBevent\fP \-\- description of the event.
  51543. .IP \(bu 2
  51544. \fBkwargs\fP \-\- options available as the deploy script is invoked:
  51545. \fBconf_file\fP, \fBdeploy_command\fP, \fBdisplay_ssh_output\fP, \fBhost\fP,
  51546. \fBkeep_tmp\fP, \fBkey_filename\fP, \fBmake_minion\fP, \fBminion_conf\fP,
  51547. \fBname\fP, \fBparallel\fP, \fBpreseed_minion_keys\fP, \fBscript\fP,
  51548. \fBscript_args\fP, \fBscript_env\fP, \fBsock_dir\fP, \fBstart_action\fP,
  51549. \fBsudo\fP, \fBtmp_dir\fP, \fBtty\fP, \fBusername\fP
  51550. .UNINDENT
  51551. .UNINDENT
  51552. .UNINDENT
  51553. .INDENT 0.0
  51554. .TP
  51555. .B salt/cloud/<VM NAME>/requesting
  51556. Fired when salt\-cloud sends the request to create a new VM.
  51557. .INDENT 7.0
  51558. .TP
  51559. .B Variables
  51560. .INDENT 7.0
  51561. .IP \(bu 2
  51562. \fBevent\fP \-\- description of the event.
  51563. .IP \(bu 2
  51564. \fBlocation\fP \-\- the location of the VM being requested.
  51565. .IP \(bu 2
  51566. \fBkwargs\fP \-\- options available as the VM is being requested:
  51567. \fBAction\fP, \fBImageId\fP, \fBInstanceType\fP, \fBKeyName\fP, \fBMaxCount\fP,
  51568. \fBMinCount\fP, \fBSecurityGroup.1\fP
  51569. .UNINDENT
  51570. .UNINDENT
  51571. .UNINDENT
  51572. .INDENT 0.0
  51573. .TP
  51574. .B salt/cloud/<VM NAME>/querying
  51575. Fired when salt\-cloud queries data for a new instance.
  51576. .INDENT 7.0
  51577. .TP
  51578. .B Variables
  51579. .INDENT 7.0
  51580. .IP \(bu 2
  51581. \fBevent\fP \-\- description of the event.
  51582. .IP \(bu 2
  51583. \fBinstance_id\fP \-\- the ID of the new VM.
  51584. .UNINDENT
  51585. .UNINDENT
  51586. .UNINDENT
  51587. .INDENT 0.0
  51588. .TP
  51589. .B salt/cloud/<VM NAME>/tagging
  51590. Fired when salt\-cloud tags a new instance.
  51591. .INDENT 7.0
  51592. .TP
  51593. .B Variables
  51594. .INDENT 7.0
  51595. .IP \(bu 2
  51596. \fBevent\fP \-\- description of the event.
  51597. .IP \(bu 2
  51598. \fBtags\fP \-\- tags being set on the new instance.
  51599. .UNINDENT
  51600. .UNINDENT
  51601. .UNINDENT
  51602. .INDENT 0.0
  51603. .TP
  51604. .B salt/cloud/<VM NAME>/waiting_for_ssh
  51605. Fired while the salt\-cloud deploy process is waiting for ssh to become
  51606. available on the new instance.
  51607. .INDENT 7.0
  51608. .TP
  51609. .B Variables
  51610. .INDENT 7.0
  51611. .IP \(bu 2
  51612. \fBevent\fP \-\- description of the event.
  51613. .IP \(bu 2
  51614. \fBip_address\fP \-\- IP address of the new instance.
  51615. .UNINDENT
  51616. .UNINDENT
  51617. .UNINDENT
  51618. .INDENT 0.0
  51619. .TP
  51620. .B salt/cloud/<VM NAME>/deploy_script
  51621. Fired once the deploy script is finished.
  51622. .INDENT 7.0
  51623. .TP
  51624. .B Variables
  51625. \fBevent\fP \-\- description of the event.
  51626. .UNINDENT
  51627. .UNINDENT
  51628. .INDENT 0.0
  51629. .TP
  51630. .B salt/cloud/<VM NAME>/created
  51631. Fired once the new instance has been fully created.
  51632. .INDENT 7.0
  51633. .TP
  51634. .B Variables
  51635. .INDENT 7.0
  51636. .IP \(bu 2
  51637. \fBname\fP \-\- the name of the VM being created.
  51638. .IP \(bu 2
  51639. \fBevent\fP \-\- description of the event.
  51640. .IP \(bu 2
  51641. \fBinstance_id\fP \-\- the ID of the new instance.
  51642. .IP \(bu 2
  51643. \fBprovider\fP \-\- the cloud provider of the VM being created.
  51644. .IP \(bu 2
  51645. \fBprofile\fP \-\- the cloud profile for the VM being created.
  51646. .UNINDENT
  51647. .UNINDENT
  51648. .UNINDENT
  51649. .INDENT 0.0
  51650. .TP
  51651. .B salt/cloud/<VM NAME>/destroying
  51652. Fired when salt\-cloud requests the destruction of an instance.
  51653. .INDENT 7.0
  51654. .TP
  51655. .B Variables
  51656. .INDENT 7.0
  51657. .IP \(bu 2
  51658. \fBname\fP \-\- the name of the VM being created.
  51659. .IP \(bu 2
  51660. \fBevent\fP \-\- description of the event.
  51661. .IP \(bu 2
  51662. \fBinstance_id\fP \-\- the ID of the new instance.
  51663. .UNINDENT
  51664. .UNINDENT
  51665. .UNINDENT
  51666. .INDENT 0.0
  51667. .TP
  51668. .B salt/cloud/<VM NAME>/destroyed
  51669. Fired when an instance has been destroyed.
  51670. .INDENT 7.0
  51671. .TP
  51672. .B Variables
  51673. .INDENT 7.0
  51674. .IP \(bu 2
  51675. \fBname\fP \-\- the name of the VM being created.
  51676. .IP \(bu 2
  51677. \fBevent\fP \-\- description of the event.
  51678. .IP \(bu 2
  51679. \fBinstance_id\fP \-\- the ID of the new instance.
  51680. .UNINDENT
  51681. .UNINDENT
  51682. .UNINDENT
  51683. .SS Listening for Events
  51684. .sp
  51685. Salt\(aqs event system is used heavily within Salt and it is also written to
  51686. integrate heavily with existing tooling and scripts. There is a variety of
  51687. ways to consume it.
  51688. .SS From the CLI
  51689. .sp
  51690. The quickest way to watch the event bus is by calling the \fBstate.event
  51691. runner\fP:
  51692. .INDENT 0.0
  51693. .INDENT 3.5
  51694. .sp
  51695. .nf
  51696. .ft C
  51697. salt\-run state.event pretty=True
  51698. .ft P
  51699. .fi
  51700. .UNINDENT
  51701. .UNINDENT
  51702. .sp
  51703. That runner is designed to interact with the event bus from external tools and
  51704. shell scripts. See the documentation for more examples.
  51705. .SS Remotely via the REST API
  51706. .sp
  51707. Salt\(aqs event bus can be consumed
  51708. \fBsalt.netapi.rest_cherrypy.app.Events\fP as an HTTP stream from
  51709. external tools or services.
  51710. .INDENT 0.0
  51711. .INDENT 3.5
  51712. .sp
  51713. .nf
  51714. .ft C
  51715. curl \-SsNk https://salt\-api.example.com:8000/events?token=05A3
  51716. .ft P
  51717. .fi
  51718. .UNINDENT
  51719. .UNINDENT
  51720. .SS From Python
  51721. .sp
  51722. Python scripts can access the event bus only as the same system user that Salt
  51723. is running as.
  51724. .sp
  51725. The event system is accessed via the event library and can only be accessed
  51726. by the same system user that Salt is running as. To listen to events a
  51727. SaltEvent object needs to be created and then the get_event function needs to
  51728. be run. The SaltEvent object needs to know the location that the Salt Unix
  51729. sockets are kept. In the configuration this is the \fBsock_dir\fP option. The
  51730. \fBsock_dir\fP option defaults to "/var/run/salt/master" on most systems.
  51731. .sp
  51732. The following code will check for a single event:
  51733. .INDENT 0.0
  51734. .INDENT 3.5
  51735. .sp
  51736. .nf
  51737. .ft C
  51738. import salt.config
  51739. import salt.utils.event
  51740. opts = salt.config.client_config(\(aq/etc/salt/master\(aq)
  51741. event = salt.utils.event.get_event(
  51742. \(aqmaster\(aq,
  51743. sock_dir=opts[\(aqsock_dir\(aq],
  51744. transport=opts[\(aqtransport\(aq],
  51745. opts=opts)
  51746. data = event.get_event()
  51747. .ft P
  51748. .fi
  51749. .UNINDENT
  51750. .UNINDENT
  51751. .sp
  51752. Events will also use a "tag". Tags allow for events to be filtered by prefix.
  51753. By default all events will be returned. If only authentication events are
  51754. desired, then pass the tag "salt/auth".
  51755. .sp
  51756. The \fBget_event\fP method has a default poll time assigned of 5 seconds. To
  51757. change this time set the "wait" option.
  51758. .sp
  51759. The following example will only listen for auth events and will wait for 10 seconds
  51760. instead of the default 5.
  51761. .INDENT 0.0
  51762. .INDENT 3.5
  51763. .sp
  51764. .nf
  51765. .ft C
  51766. data = event.get_event(wait=10, tag=\(aqsalt/auth\(aq)
  51767. .ft P
  51768. .fi
  51769. .UNINDENT
  51770. .UNINDENT
  51771. .sp
  51772. To retrieve the tag as well as the event data, pass \fBfull=True\fP:
  51773. .INDENT 0.0
  51774. .INDENT 3.5
  51775. .sp
  51776. .nf
  51777. .ft C
  51778. evdata = event.get_event(wait=10, tag=\(aqsalt/job\(aq, full=True)
  51779. tag, data = evdata[\(aqtag\(aq], evdata[\(aqdata\(aq]
  51780. .ft P
  51781. .fi
  51782. .UNINDENT
  51783. .UNINDENT
  51784. .sp
  51785. Instead of looking for a single event, the \fBiter_events\fP method can be used to
  51786. make a generator which will continually yield salt events.
  51787. .sp
  51788. The iter_events method also accepts a tag but not a wait time:
  51789. .INDENT 0.0
  51790. .INDENT 3.5
  51791. .sp
  51792. .nf
  51793. .ft C
  51794. for data in event.iter_events(tag=\(aqsalt/auth\(aq):
  51795. print(data)
  51796. .ft P
  51797. .fi
  51798. .UNINDENT
  51799. .UNINDENT
  51800. .sp
  51801. And finally event tags can be globbed, such as they can be in the Reactor,
  51802. using the fnmatch library.
  51803. .INDENT 0.0
  51804. .INDENT 3.5
  51805. .sp
  51806. .nf
  51807. .ft C
  51808. import fnmatch
  51809. import salt.config
  51810. import salt.utils.event
  51811. opts = salt.config.client_config(\(aq/etc/salt/master\(aq)
  51812. sevent = salt.utils.event.get_event(
  51813. \(aqmaster\(aq,
  51814. sock_dir=opts[\(aqsock_dir\(aq],
  51815. transport=opts[\(aqtransport\(aq],
  51816. opts=opts)
  51817. while True:
  51818. ret = sevent.get_event(full=True)
  51819. if ret is None:
  51820. continue
  51821. if fnmatch.fnmatch(ret[\(aqtag\(aq], \(aqsalt/job/*/ret/*\(aq):
  51822. do_something_with_job_return(ret[\(aqdata\(aq])
  51823. .ft P
  51824. .fi
  51825. .UNINDENT
  51826. .UNINDENT
  51827. .SS Firing Events
  51828. .sp
  51829. It is possible to fire events on either the minion\(aqs local bus or to fire
  51830. events intended for the master.
  51831. .sp
  51832. To fire a local event from the minion on the command line call the
  51833. \fBevent.fire\fP execution function:
  51834. .INDENT 0.0
  51835. .INDENT 3.5
  51836. .sp
  51837. .nf
  51838. .ft C
  51839. salt\-call event.fire \(aq{"data": "message to be sent in the event"}\(aq \(aqtag\(aq
  51840. .ft P
  51841. .fi
  51842. .UNINDENT
  51843. .UNINDENT
  51844. .sp
  51845. To fire an event to be sent up to the master from the minion call the
  51846. \fBevent.send\fP execution function. Remember
  51847. YAML can be used at the CLI in function arguments:
  51848. .INDENT 0.0
  51849. .INDENT 3.5
  51850. .sp
  51851. .nf
  51852. .ft C
  51853. salt\-call event.send \(aqmyco/mytag/success\(aq \(aq{success: True, message: "It works!"}\(aq
  51854. .ft P
  51855. .fi
  51856. .UNINDENT
  51857. .UNINDENT
  51858. .sp
  51859. If a process is listening on the minion, it may be useful for a user on the
  51860. master to fire an event to it. An example of listening local events on
  51861. a minion on a non\-Windows system:
  51862. .INDENT 0.0
  51863. .INDENT 3.5
  51864. .sp
  51865. .nf
  51866. .ft C
  51867. # Job on minion
  51868. import salt.utils.event
  51869. opts = salt.config.minion_config(\(aq/etc/salt/minion\(aq)
  51870. event = salt.utils.event.MinionEvent(opts)
  51871. for evdata in event.iter_events(match_type = \(aqregex\(aq,
  51872. tag = \(aqcustom/.*\(aq):
  51873. # do your processing here...
  51874. .ft P
  51875. .fi
  51876. .UNINDENT
  51877. .UNINDENT
  51878. .sp
  51879. And an example of listening local events on a Windows system:
  51880. .INDENT 0.0
  51881. .INDENT 3.5
  51882. .sp
  51883. .nf
  51884. .ft C
  51885. # Job on minion
  51886. import salt.utils.event
  51887. opts = salt.config.minion_config(salt.minion.DEFAULT_MINION_OPTS)
  51888. event = salt.utils.event.MinionEvent(opts)
  51889. for evdata in event.iter_events(match_type = \(aqregex\(aq,
  51890. tag = \(aqcustom/.*\(aq):
  51891. # do your processing here...
  51892. .ft P
  51893. .fi
  51894. .UNINDENT
  51895. .UNINDENT
  51896. .INDENT 0.0
  51897. .INDENT 3.5
  51898. .sp
  51899. .nf
  51900. .ft C
  51901. salt minionname event.fire \(aq{"data": "message for the minion"}\(aq \(aqcustomtag/african/unladen\(aq
  51902. .ft P
  51903. .fi
  51904. .UNINDENT
  51905. .UNINDENT
  51906. .SS Firing Events from Python
  51907. .SS From Salt execution modules
  51908. .sp
  51909. Events can be very useful when writing execution modules, in order to inform
  51910. various processes on the master when a certain task has taken place. This is
  51911. easily done using the normal cross\-calling syntax:
  51912. .INDENT 0.0
  51913. .INDENT 3.5
  51914. .sp
  51915. .nf
  51916. .ft C
  51917. # /srv/salt/_modules/my_custom_module.py
  51918. def do_something():
  51919. \(aq\(aq\(aq
  51920. Do something and fire an event to the master when finished
  51921. CLI Example::
  51922. salt \(aq*\(aq my_custom_module:do_something
  51923. \(aq\(aq\(aq
  51924. # do something!
  51925. __salt__[\(aqevent.send\(aq](\(aqmyco/my_custom_module/finished\(aq, {
  51926. \(aqfinished\(aq: True,
  51927. \(aqmessage\(aq: "The something is finished!",
  51928. })
  51929. .ft P
  51930. .fi
  51931. .UNINDENT
  51932. .UNINDENT
  51933. .SS From Custom Python Scripts
  51934. .sp
  51935. Firing events from custom Python code is quite simple and mirrors how it is
  51936. done at the CLI:
  51937. .INDENT 0.0
  51938. .INDENT 3.5
  51939. .sp
  51940. .nf
  51941. .ft C
  51942. import salt.client
  51943. caller = salt.client.Caller()
  51944. ret = caller.cmd(\(aqevent.send\(aq,
  51945. \(aqmyco/event/success\(aq
  51946. { \(aqsuccess\(aq: True,
  51947. \(aqmessage\(aq: "It works!" })
  51948. if not ret:
  51949. # the event could not be sent, process the error here
  51950. .ft P
  51951. .fi
  51952. .UNINDENT
  51953. .UNINDENT
  51954. .SS Beacons
  51955. .sp
  51956. Beacons let you use the Salt event system to monitor non\-Salt processes. The
  51957. beacon system allows the minion to hook into a variety of system processes and
  51958. continually monitor these processes. When monitored activity occurs in a system
  51959. process, an event is sent on the Salt event bus that can be used to trigger a
  51960. reactor\&.
  51961. .sp
  51962. Salt beacons can currently monitor and send Salt events for many system
  51963. activities, including:
  51964. .INDENT 0.0
  51965. .IP \(bu 2
  51966. file system changes
  51967. .IP \(bu 2
  51968. system load
  51969. .IP \(bu 2
  51970. service status
  51971. .IP \(bu 2
  51972. shell activity, such as user login
  51973. .IP \(bu 2
  51974. network and disk usage
  51975. .UNINDENT
  51976. .sp
  51977. See beacon modules for a current list.
  51978. .sp
  51979. \fBNOTE:\fP
  51980. .INDENT 0.0
  51981. .INDENT 3.5
  51982. Salt beacons are an event generation mechanism. Beacons leverage the Salt
  51983. reactor system to make changes when beacon events occur.
  51984. .UNINDENT
  51985. .UNINDENT
  51986. .SS Configuring Beacons
  51987. .sp
  51988. Salt beacons do not require any changes to the system components that are being
  51989. monitored, everything is configured using Salt.
  51990. .sp
  51991. Beacons are typically enabled by placing a \fBbeacons:\fP top level block in
  51992. \fB/etc/salt/minion\fP or any file in \fB/etc/salt/minion.d/\fP such as
  51993. \fB/etc/salt/minion.d/beacons.conf\fP or add it to pillars for that minion:
  51994. .INDENT 0.0
  51995. .INDENT 3.5
  51996. .sp
  51997. .nf
  51998. .ft C
  51999. beacons:
  52000. inotify:
  52001. \- files:
  52002. /etc/important_file: {}
  52003. /opt: {}
  52004. .ft P
  52005. .fi
  52006. .UNINDENT
  52007. .UNINDENT
  52008. .sp
  52009. The beacon system, like many others in Salt, can also be configured via the
  52010. minion pillar, grains, or local config file.
  52011. .sp
  52012. \fBNOTE:\fP
  52013. .INDENT 0.0
  52014. .INDENT 3.5
  52015. The \fIinotify\fP beacon only works on OSes that have \fIinotify\fP kernel support.
  52016. Currently this excludes FreeBSD, macOS, and Windows.
  52017. .UNINDENT
  52018. .UNINDENT
  52019. .sp
  52020. All beacon configuration is done using list based configuration.
  52021. .sp
  52022. New in version Neon.
  52023. .sp
  52024. Multiple copies of a particular Salt beacon can be configured by including the \fBbeacon_module\fP parameter in the beacon configuration.
  52025. .INDENT 0.0
  52026. .INDENT 3.5
  52027. .sp
  52028. .nf
  52029. .ft C
  52030. beacons:
  52031. watch_importand_file:
  52032. \- files:
  52033. /etc/important_file: {}
  52034. \- beacon_module: inotify
  52035. watch_another_file:
  52036. \- files:
  52037. /etc/another_file: {}
  52038. \- beacon_module: inotify
  52039. .ft P
  52040. .fi
  52041. .UNINDENT
  52042. .UNINDENT
  52043. .SS Beacon Monitoring Interval
  52044. .sp
  52045. Beacons monitor on a 1\-second interval by default. To set a different interval,
  52046. provide an \fBinterval\fP argument to a beacon. The following beacons run on 5\-
  52047. and 10\-second intervals:
  52048. .INDENT 0.0
  52049. .INDENT 3.5
  52050. .sp
  52051. .nf
  52052. .ft C
  52053. beacons:
  52054. inotify:
  52055. \- files:
  52056. /etc/important_file: {}
  52057. /opt: {}
  52058. \- interval: 5
  52059. \- disable_during_state_run: True
  52060. load:
  52061. \- averages:
  52062. 1m:
  52063. \- 0.0
  52064. \- 2.0
  52065. 5m:
  52066. \- 0.0
  52067. \- 1.5
  52068. 15m:
  52069. \- 0.1
  52070. \- 1.0
  52071. \- interval: 10
  52072. .ft P
  52073. .fi
  52074. .UNINDENT
  52075. .UNINDENT
  52076. .SS Avoiding Event Loops
  52077. .sp
  52078. It is important to carefully consider the possibility of creating a loop
  52079. between a reactor and a beacon. For example, one might set up a beacon which
  52080. monitors whether a file is read which in turn fires a reactor to run a state
  52081. which in turn reads the file and re\-fires the beacon.
  52082. .sp
  52083. To avoid these types of scenarios, the \fBdisable_during_state_run\fP argument
  52084. may be set. If a state run is in progress, the beacon will not be run on its
  52085. regular interval until the minion detects that the state run has completed, at
  52086. which point the normal beacon interval will resume.
  52087. .INDENT 0.0
  52088. .INDENT 3.5
  52089. .sp
  52090. .nf
  52091. .ft C
  52092. beacons:
  52093. inotify:
  52094. \- files:
  52095. /etc/important_file: {}
  52096. \- disable_during_state_run: True
  52097. .ft P
  52098. .fi
  52099. .UNINDENT
  52100. .UNINDENT
  52101. .sp
  52102. \fBNOTE:\fP
  52103. .INDENT 0.0
  52104. .INDENT 3.5
  52105. For beacon writers: If you need extra stuff to happen, like closing file
  52106. handles for the \fBdisable_during_state_run\fP to actually work, you can add
  52107. a \fIclose()\fP function to the beacon to run those extra things. See the
  52108. \fIinotify\fP beacon.
  52109. .UNINDENT
  52110. .UNINDENT
  52111. .SS Beacon Example
  52112. .sp
  52113. This example demonstrates configuring the \fBinotify\fP
  52114. beacon to monitor a file for changes, and then restores the file to its
  52115. original contents if a change was made.
  52116. .sp
  52117. \fBNOTE:\fP
  52118. .INDENT 0.0
  52119. .INDENT 3.5
  52120. The inotify beacon requires Pyinotify on the minion, install it using
  52121. \fBsalt myminion pkg.install python\-inotify\fP\&.
  52122. .UNINDENT
  52123. .UNINDENT
  52124. .SS Create Watched File
  52125. .sp
  52126. Create the file named \fB/etc/important_file\fP and add some simple content:
  52127. .INDENT 0.0
  52128. .INDENT 3.5
  52129. .sp
  52130. .nf
  52131. .ft C
  52132. important_config: True
  52133. .ft P
  52134. .fi
  52135. .UNINDENT
  52136. .UNINDENT
  52137. .SS Add Beacon Configs to Minion
  52138. .sp
  52139. On the Salt minion, add the following configuration to
  52140. \fB/etc/salt/minion.d/beacons.conf\fP:
  52141. .INDENT 0.0
  52142. .INDENT 3.5
  52143. .sp
  52144. .nf
  52145. .ft C
  52146. beacons:
  52147. inotify:
  52148. \- files:
  52149. /etc/important_file:
  52150. mask:
  52151. \- modify
  52152. \- disable_during_state_run: True
  52153. .ft P
  52154. .fi
  52155. .UNINDENT
  52156. .UNINDENT
  52157. .sp
  52158. Save the configuration file and restart the minion service. The beacon is now
  52159. set up to notify salt upon modifications made to the file.
  52160. .sp
  52161. \fBNOTE:\fP
  52162. .INDENT 0.0
  52163. .INDENT 3.5
  52164. The \fBdisable_during_state_run: True\fP parameter \fI\%prevents\fP the inotify beacon from generating reactor
  52165. events due to salt itself modifying the file.
  52166. .UNINDENT
  52167. .UNINDENT
  52168. .SS View Events on the Master
  52169. .sp
  52170. On your Salt master, start the event runner using the following command:
  52171. .INDENT 0.0
  52172. .INDENT 3.5
  52173. .sp
  52174. .nf
  52175. .ft C
  52176. salt\-run state.event pretty=true
  52177. .ft P
  52178. .fi
  52179. .UNINDENT
  52180. .UNINDENT
  52181. .sp
  52182. This runner displays events as they are received by the master on the Salt
  52183. event bus. To test the beacon you set up in the previous section, make and save
  52184. a modification to \fB/etc/important_file\fP\&. You\(aqll see an event similar to the
  52185. following on the event bus:
  52186. .INDENT 0.0
  52187. .INDENT 3.5
  52188. .sp
  52189. .nf
  52190. .ft C
  52191. {
  52192. "_stamp": "2015\-09\-09T15:59:37.972753",
  52193. "data": {
  52194. "change": "IN_IGNORED",
  52195. "id": "larry",
  52196. "path": "/etc/important_file"
  52197. },
  52198. "tag": "salt/beacon/larry/inotify//etc/important_file"
  52199. }
  52200. .ft P
  52201. .fi
  52202. .UNINDENT
  52203. .UNINDENT
  52204. .sp
  52205. This indicates that the event is being captured and sent correctly. Now you can
  52206. create a reactor to take action when this event occurs.
  52207. .SS Create a Reactor
  52208. .sp
  52209. This reactor reverts the file named \fB/etc/important_file\fP to the contents
  52210. provided by salt each time it is modified.
  52211. .SS Reactor SLS
  52212. .sp
  52213. On your Salt master, create a file named \fB/srv/reactor/revert.sls\fP\&.
  52214. .sp
  52215. \fBNOTE:\fP
  52216. .INDENT 0.0
  52217. .INDENT 3.5
  52218. If the \fB/srv/reactor\fP directory doesn\(aqt exist, create it.
  52219. .INDENT 0.0
  52220. .INDENT 3.5
  52221. .sp
  52222. .nf
  52223. .ft C
  52224. mkdir \-p /srv/reactor
  52225. .ft P
  52226. .fi
  52227. .UNINDENT
  52228. .UNINDENT
  52229. .UNINDENT
  52230. .UNINDENT
  52231. .sp
  52232. Add the following to \fB/srv/reactor/revert.sls\fP:
  52233. .INDENT 0.0
  52234. .INDENT 3.5
  52235. .sp
  52236. .nf
  52237. .ft C
  52238. revert\-file:
  52239. local.state.apply:
  52240. \- tgt: {{ data[\(aqdata\(aq][\(aqid\(aq] }}
  52241. \- arg:
  52242. \- maintain_important_file
  52243. .ft P
  52244. .fi
  52245. .UNINDENT
  52246. .UNINDENT
  52247. .sp
  52248. \fBNOTE:\fP
  52249. .INDENT 0.0
  52250. .INDENT 3.5
  52251. In addition to \fI\%setting\fP
  52252. \fBdisable_during_state_run: True\fP for an inotify beacon whose reaction is
  52253. to modify the watched file, it is important to ensure the state applied is
  52254. also idempotent\&.
  52255. .UNINDENT
  52256. .UNINDENT
  52257. .sp
  52258. \fBNOTE:\fP
  52259. .INDENT 0.0
  52260. .INDENT 3.5
  52261. The expression \fB{{ data[\(aqdata\(aq][\(aqid\(aq] }}\fP is correct as it matches the event structure \fI\%shown above\fP\&.
  52262. .UNINDENT
  52263. .UNINDENT
  52264. .SS State SLS
  52265. .sp
  52266. Create the state sls file referenced by the reactor sls file. This state file
  52267. will be located at \fB/srv/salt/maintain_important_file.sls\fP\&.
  52268. .INDENT 0.0
  52269. .INDENT 3.5
  52270. .sp
  52271. .nf
  52272. .ft C
  52273. important_file:
  52274. file.managed:
  52275. \- name: /etc/important_file
  52276. \- contents: |
  52277. important_config: True
  52278. .ft P
  52279. .fi
  52280. .UNINDENT
  52281. .UNINDENT
  52282. .SS Master Config
  52283. .sp
  52284. Configure the master to map the inotify beacon event to the \fBrevert\fP reaction
  52285. in \fB/etc/salt/master.d/reactor.conf\fP:
  52286. .INDENT 0.0
  52287. .INDENT 3.5
  52288. .sp
  52289. .nf
  52290. .ft C
  52291. reactor:
  52292. \- salt/beacon/*/inotify//etc/important_file:
  52293. \- /srv/reactor/revert.sls
  52294. .ft P
  52295. .fi
  52296. .UNINDENT
  52297. .UNINDENT
  52298. .sp
  52299. \fBNOTE:\fP
  52300. .INDENT 0.0
  52301. .INDENT 3.5
  52302. You can have only one top level \fBreactor\fP section, so if one already
  52303. exists, add this code to the existing section. See here to learn more about reactor SLS syntax.
  52304. .UNINDENT
  52305. .UNINDENT
  52306. .SS Start the Salt Master in Debug Mode
  52307. .sp
  52308. To help with troubleshooting, start the Salt master in debug mode:
  52309. .INDENT 0.0
  52310. .INDENT 3.5
  52311. .sp
  52312. .nf
  52313. .ft C
  52314. service salt\-master stop
  52315. salt\-master \-l debug
  52316. .ft P
  52317. .fi
  52318. .UNINDENT
  52319. .UNINDENT
  52320. .sp
  52321. When debug logging is enabled, event and reactor data are displayed so you can
  52322. discover syntax and other issues.
  52323. .SS Trigger the Reactor
  52324. .sp
  52325. On your minion, make and save another change to \fB/etc/important_file\fP\&. On the
  52326. Salt master, you\(aqll see debug messages that indicate the event was received and
  52327. the \fBstate.apply\fP job was sent. When you inspect the file on the minion,
  52328. you\(aqll see that the file contents have been restored to \fBimportant_config:
  52329. True\fP\&.
  52330. .sp
  52331. All beacons are configured using a similar process of enabling the beacon,
  52332. writing a reactor SLS (and state SLS if needed), and mapping a beacon event to
  52333. the reactor SLS.
  52334. .SS Writing Beacon Plugins
  52335. .sp
  52336. Beacon plugins use the standard Salt loader system, meaning that many of the
  52337. constructs from other plugin systems holds true, such as the \fB__virtual__\fP
  52338. function.
  52339. .sp
  52340. The important function in the Beacon Plugin is the \fBbeacon\fP function. When
  52341. the beacon is configured to run, this function will be executed repeatedly by
  52342. the minion. The \fBbeacon\fP function therefore cannot block and should be as
  52343. lightweight as possible. The \fBbeacon\fP also must return a list of dicts, each
  52344. dict in the list will be translated into an event on the master.
  52345. .sp
  52346. Beacons may also choose to implement a \fBvalidate\fP function which
  52347. takes the beacon configuration as an argument and ensures that it
  52348. is valid prior to continuing. This function is called automatically
  52349. by the Salt loader when a beacon is loaded.
  52350. .sp
  52351. Please see the \fBinotify\fP beacon as an example.
  52352. .SS The \fIbeacon\fP Function
  52353. .sp
  52354. The beacons system will look for a function named \fIbeacon\fP in the module. If
  52355. this function is not present then the beacon will not be fired. This function
  52356. is called on a regular basis and defaults to being called on every iteration of
  52357. the minion, which can be tens to hundreds of times a second. This means that
  52358. the \fIbeacon\fP function cannot block and should not be CPU or IO intensive.
  52359. .sp
  52360. The beacon function will be passed in the configuration for the executed
  52361. beacon. This makes it easy to establish a flexible configuration for each
  52362. called beacon. This is also the preferred way to ingest the beacon\(aqs
  52363. configuration as it allows for the configuration to be dynamically updated
  52364. while the minion is running by configuring the beacon in the minion\(aqs pillar.
  52365. .SS The Beacon Return
  52366. .sp
  52367. The information returned from the beacon is expected to follow a predefined
  52368. structure. The returned value needs to be a list of dictionaries (standard
  52369. python dictionaries are preferred, no ordered dicts are needed).
  52370. .sp
  52371. The dictionaries represent individual events to be fired on the minion and
  52372. master event buses. Each dict is a single event. The dict can contain any
  52373. arbitrary keys but the \(aqtag\(aq key will be extracted and added to the tag of the
  52374. fired event.
  52375. .sp
  52376. The return data structure would look something like this:
  52377. .INDENT 0.0
  52378. .INDENT 3.5
  52379. .sp
  52380. .nf
  52381. .ft C
  52382. [{\(aqchanges\(aq: [\(aq/foo/bar\(aq], \(aqtag\(aq: \(aqfoo\(aq},
  52383. {\(aqchanges\(aq: [\(aq/foo/baz\(aq], \(aqtag\(aq: \(aqbar\(aq}]
  52384. .ft P
  52385. .fi
  52386. .UNINDENT
  52387. .UNINDENT
  52388. .SS Calling Execution Modules
  52389. .sp
  52390. Execution modules are still the preferred location for all work and system
  52391. interaction to happen in Salt. For this reason the \fI__salt__\fP variable is
  52392. available inside the beacon.
  52393. .sp
  52394. Please be careful when calling functions in \fI__salt__\fP, while this is the
  52395. preferred means of executing complicated routines in Salt not all of the
  52396. execution modules have been written with beacons in mind. Watch out for
  52397. execution modules that may be CPU intense or IO bound. Please feel free to add
  52398. new execution modules and functions to back specific beacons.
  52399. .SS Distributing Custom Beacons
  52400. .sp
  52401. Custom beacons can be distributed to minions via the standard methods, see
  52402. Modular Systems\&.
  52403. .SS Reactor System
  52404. .sp
  52405. Salt\(aqs Reactor system gives Salt the ability to trigger actions in response to
  52406. an event. It is a simple interface to watching Salt\(aqs event bus for event tags
  52407. that match a given pattern and then running one or more commands in response.
  52408. .sp
  52409. This system binds sls files to event tags on the master. These sls files then
  52410. define reactions. This means that the reactor system has two parts. First, the
  52411. reactor option needs to be set in the master configuration file. The reactor
  52412. option allows for event tags to be associated with sls reaction files. Second,
  52413. these reaction files use highdata (like the state system) to define reactions
  52414. to be executed.
  52415. .SS Event System
  52416. .sp
  52417. A basic understanding of the event system is required to understand reactors.
  52418. The event system is a local ZeroMQ PUB interface which fires salt events. This
  52419. event bus is an open system used for sending information notifying Salt and
  52420. other systems about operations.
  52421. .sp
  52422. The event system fires events with a very specific criteria. Every event has a
  52423. \fBtag\fP\&. Event tags allow for fast top\-level filtering of events. In addition
  52424. to the tag, each event has a data structure. This data structure is a
  52425. dictionary, which contains information about the event.
  52426. .SS Mapping Events to Reactor SLS Files
  52427. .sp
  52428. Reactor SLS files and event tags are associated in the master config file.
  52429. By default this is /etc/salt/master, or /etc/salt/master.d/reactor.conf.
  52430. .sp
  52431. New in version 2014.7.0: Added Reactor support for \fBsalt://\fP file paths.
  52432. .sp
  52433. In the master config section \(aqreactor:\(aq is a list of event tags to be matched
  52434. and each event tag has a list of reactor SLS files to be run.
  52435. .INDENT 0.0
  52436. .INDENT 3.5
  52437. .sp
  52438. .nf
  52439. .ft C
  52440. reactor: # Master config section "reactor"
  52441. \- \(aqsalt/minion/*/start\(aq: # Match tag "salt/minion/*/start"
  52442. \- /srv/reactor/start.sls # Things to do when a minion starts
  52443. \- /srv/reactor/monitor.sls # Other things to do
  52444. \- \(aqsalt/cloud/*/destroyed\(aq: # Globs can be used to match tags
  52445. \- /srv/reactor/destroy/*.sls # Globs can be used to match file names
  52446. \- \(aqmyco/custom/event/tag\(aq: # React to custom event tags
  52447. \- salt://reactor/mycustom.sls # Reactor files can come from the salt fileserver
  52448. .ft P
  52449. .fi
  52450. .UNINDENT
  52451. .UNINDENT
  52452. .sp
  52453. \fBNOTE:\fP
  52454. .INDENT 0.0
  52455. .INDENT 3.5
  52456. In the above example, \fBsalt://reactor/mycustom.sls\fP refers to the
  52457. \fBbase\fP environment. To pull this file from a different environment, use
  52458. the querystring syntax (e.g.
  52459. \fBsalt://reactor/mycustom.sls?saltenv=reactor\fP).
  52460. .UNINDENT
  52461. .UNINDENT
  52462. .sp
  52463. Reactor SLS files are similar to State and Pillar SLS files. They are by
  52464. default YAML + Jinja templates and are passed familiar context variables.
  52465. Click \fI\%here\fP for more detailed information on the
  52466. variables available in Jinja templating.
  52467. .sp
  52468. Here is the SLS for a simple reaction:
  52469. .INDENT 0.0
  52470. .INDENT 3.5
  52471. .sp
  52472. .nf
  52473. .ft C
  52474. {% if data[\(aqid\(aq] == \(aqmysql1\(aq %}
  52475. highstate_run:
  52476. local.state.apply:
  52477. \- tgt: mysql1
  52478. {% endif %}
  52479. .ft P
  52480. .fi
  52481. .UNINDENT
  52482. .UNINDENT
  52483. .sp
  52484. This simple reactor file uses Jinja to further refine the reaction to be made.
  52485. If the \fBid\fP in the event data is \fBmysql1\fP (in other words, if the name of
  52486. the minion is \fBmysql1\fP) then the following reaction is defined. The same
  52487. data structure and compiler used for the state system is used for the reactor
  52488. system. The only difference is that the data is matched up to the salt command
  52489. API and the runner system. In this example, a command is published to the
  52490. \fBmysql1\fP minion with a function of \fBstate.apply\fP, which performs a highstate\&. Similarly, a runner can be called:
  52491. .INDENT 0.0
  52492. .INDENT 3.5
  52493. .sp
  52494. .nf
  52495. .ft C
  52496. {% if data[\(aqdata\(aq][\(aqcustom_var\(aq] == \(aqrunit\(aq %}
  52497. call_runit_orch:
  52498. runner.state.orchestrate:
  52499. \- args:
  52500. \- mods: orchestrate.runit
  52501. {% endif %}
  52502. .ft P
  52503. .fi
  52504. .UNINDENT
  52505. .UNINDENT
  52506. .sp
  52507. This example will execute the state.orchestrate runner and intiate an execution
  52508. of the \fBrunit\fP orchestrator located at \fB/srv/salt/orchestrate/runit.sls\fP\&.
  52509. .SS Types of Reactions
  52510. .TS
  52511. center;
  52512. |l|l|.
  52513. _
  52514. T{
  52515. Name
  52516. T} T{
  52517. Description
  52518. T}
  52519. _
  52520. T{
  52521. \fI\%local\fP
  52522. T} T{
  52523. Runs a remote\-execution function on targeted minions
  52524. T}
  52525. _
  52526. T{
  52527. \fI\%runner\fP
  52528. T} T{
  52529. Executes a runner function
  52530. T}
  52531. _
  52532. T{
  52533. \fI\%wheel\fP
  52534. T} T{
  52535. Executes a wheel function on the master
  52536. T}
  52537. _
  52538. T{
  52539. \fI\%caller\fP
  52540. T} T{
  52541. Runs a remote\-execution function on a masterless minion
  52542. T}
  52543. _
  52544. .TE
  52545. .sp
  52546. \fBNOTE:\fP
  52547. .INDENT 0.0
  52548. .INDENT 3.5
  52549. The \fBlocal\fP and \fBcaller\fP reaction types will likely be renamed in a
  52550. future release. These reaction types were named after Salt\(aqs internal
  52551. client interfaces, and are not intuitively named. Both \fBlocal\fP and
  52552. \fBcaller\fP will continue to work in Reactor SLS files, however.
  52553. .UNINDENT
  52554. .UNINDENT
  52555. .SS Where to Put Reactor SLS Files
  52556. .sp
  52557. Reactor SLS files can come both from files local to the master, and from any of
  52558. backends enabled via the \fBfileserver_backend\fP config option. Files
  52559. placed in the Salt fileserver can be referenced using a \fBsalt://\fP URL, just
  52560. like they can in State SLS files.
  52561. .sp
  52562. It is recommended to place reactor and orchestrator SLS files in their own
  52563. uniquely\-named subdirectories such as \fBorch/\fP, \fBorchestrate/\fP, \fBreact/\fP,
  52564. \fBreactor/\fP, etc., to keep them organized.
  52565. .SS Writing Reactor SLS
  52566. .sp
  52567. The different reaction types were developed separately and have historically
  52568. had different methods for passing arguments. For the 2017.7.2 release a new,
  52569. unified configuration schema has been introduced, which applies to all reaction
  52570. types.
  52571. .sp
  52572. The old config schema will continue to be supported, and there is no plan to
  52573. deprecate it at this time.
  52574. .SS Local Reactions
  52575. .sp
  52576. A \fBlocal\fP reaction runs a remote\-execution function
  52577. on the targeted minions.
  52578. .sp
  52579. The old config schema required the positional and keyword arguments to be
  52580. manually separated by the user under \fBarg\fP and \fBkwarg\fP parameters. However,
  52581. this is not very user\-friendly, as it forces the user to distinguish which type
  52582. of argument is which, and make sure that positional arguments are ordered
  52583. properly. Therefore, the new config schema is recommended if the master is
  52584. running a supported release.
  52585. .sp
  52586. The below two examples are equivalent:
  52587. .TS
  52588. center;
  52589. |l|l|.
  52590. _
  52591. T{
  52592. Supported in 2017.7.2 and later
  52593. T} T{
  52594. Supported in all releases
  52595. T}
  52596. _
  52597. T{
  52598. .INDENT 0.0
  52599. .INDENT 3.5
  52600. .sp
  52601. .nf
  52602. .ft C
  52603. install_zsh:
  52604. local.state.single:
  52605. \- tgt: \(aqkernel:Linux\(aq
  52606. \- tgt_type: grain
  52607. \- args:
  52608. \- fun: pkg.installed
  52609. \- name: zsh
  52610. \- fromrepo: updates
  52611. .ft P
  52612. .fi
  52613. .UNINDENT
  52614. .UNINDENT
  52615. T} T{
  52616. .INDENT 0.0
  52617. .INDENT 3.5
  52618. .sp
  52619. .nf
  52620. .ft C
  52621. install_zsh:
  52622. local.state.single:
  52623. \- tgt: \(aqkernel:Linux\(aq
  52624. \- tgt_type: grain
  52625. \- arg:
  52626. \- pkg.installed
  52627. \- zsh
  52628. \- kwarg:
  52629. fromrepo: updates
  52630. .ft P
  52631. .fi
  52632. .UNINDENT
  52633. .UNINDENT
  52634. T}
  52635. _
  52636. .TE
  52637. .sp
  52638. This reaction would be equivalent to running the following Salt command:
  52639. .INDENT 0.0
  52640. .INDENT 3.5
  52641. .sp
  52642. .nf
  52643. .ft C
  52644. salt \-G \(aqkernel:Linux\(aq state.single pkg.installed name=zsh fromrepo=updates
  52645. .ft P
  52646. .fi
  52647. .UNINDENT
  52648. .UNINDENT
  52649. .sp
  52650. \fBNOTE:\fP
  52651. .INDENT 0.0
  52652. .INDENT 3.5
  52653. Any other parameters in the \fBLocalClient().cmd_async()\fP method can be passed at the same
  52654. indentation level as \fBtgt\fP\&.
  52655. .UNINDENT
  52656. .UNINDENT
  52657. .sp
  52658. \fBNOTE:\fP
  52659. .INDENT 0.0
  52660. .INDENT 3.5
  52661. \fBtgt_type\fP is only required when the target expression defined in \fBtgt\fP
  52662. uses a target type other than a minion ID glob.
  52663. .sp
  52664. The \fBtgt_type\fP argument was named \fBexpr_form\fP in releases prior to
  52665. 2017.7.0.
  52666. .UNINDENT
  52667. .UNINDENT
  52668. .SS Runner Reactions
  52669. .sp
  52670. Runner reactions execute runner functions locally on
  52671. the master.
  52672. .sp
  52673. The old config schema called for passing arguments to the reaction directly
  52674. under the name of the runner function. However, this can cause unpredictable
  52675. interactions with the Reactor system\(aqs internal arguments. It is also possible
  52676. to pass positional and keyword arguments under \fBarg\fP and \fBkwarg\fP like above
  52677. in \fI\%local reactions\fP, but as noted above this is not very
  52678. user\-friendly. Therefore, the new config schema is recommended if the master
  52679. is running a supported release.
  52680. .sp
  52681. The below two examples are equivalent:
  52682. .TS
  52683. center;
  52684. |l|l|.
  52685. _
  52686. T{
  52687. Supported in 2017.7.2 and later
  52688. T} T{
  52689. Supported in all releases
  52690. T}
  52691. _
  52692. T{
  52693. .INDENT 0.0
  52694. .INDENT 3.5
  52695. .sp
  52696. .nf
  52697. .ft C
  52698. deploy_app:
  52699. runner.state.orchestrate:
  52700. \- args:
  52701. \- mods: orchestrate.deploy_app
  52702. \- pillar:
  52703. event_tag: {{ tag }}
  52704. event_data: {{ data[\(aqdata\(aq]|json }}
  52705. .ft P
  52706. .fi
  52707. .UNINDENT
  52708. .UNINDENT
  52709. T} T{
  52710. .INDENT 0.0
  52711. .INDENT 3.5
  52712. .sp
  52713. .nf
  52714. .ft C
  52715. deploy_app:
  52716. runner.state.orchestrate:
  52717. \- mods: orchestrate.deploy_app
  52718. \- kwarg:
  52719. pillar:
  52720. event_tag: {{ tag }}
  52721. event_data: {{ data[\(aqdata\(aq]|json }}
  52722. .ft P
  52723. .fi
  52724. .UNINDENT
  52725. .UNINDENT
  52726. T}
  52727. _
  52728. .TE
  52729. .sp
  52730. Assuming that the event tag is \fBfoo\fP, and the data passed to the event is
  52731. \fB{\(aqbar\(aq: \(aqbaz\(aq}\fP, then this reaction is equivalent to running the following
  52732. Salt command:
  52733. .INDENT 0.0
  52734. .INDENT 3.5
  52735. .sp
  52736. .nf
  52737. .ft C
  52738. salt\-run state.orchestrate mods=orchestrate.deploy_app pillar=\(aq{"event_tag": "foo", "event_data": {"bar": "baz"}}\(aq
  52739. .ft P
  52740. .fi
  52741. .UNINDENT
  52742. .UNINDENT
  52743. .SS Wheel Reactions
  52744. .sp
  52745. Wheel reactions run wheel functions locally on the
  52746. master.
  52747. .sp
  52748. Like \fI\%runner reactions\fP, the old config schema called for
  52749. wheel reactions to have arguments passed directly under the name of the
  52750. wheel function (or in \fBarg\fP or \fBkwarg\fP parameters).
  52751. .sp
  52752. The below two examples are equivalent:
  52753. .TS
  52754. center;
  52755. |l|l|.
  52756. _
  52757. T{
  52758. Supported in 2017.7.2 and later
  52759. T} T{
  52760. Supported in all releases
  52761. T}
  52762. _
  52763. T{
  52764. .INDENT 0.0
  52765. .INDENT 3.5
  52766. .sp
  52767. .nf
  52768. .ft C
  52769. remove_key:
  52770. wheel.key.delete:
  52771. \- args:
  52772. \- match: {{ data[\(aqid\(aq] }}
  52773. .ft P
  52774. .fi
  52775. .UNINDENT
  52776. .UNINDENT
  52777. T} T{
  52778. .INDENT 0.0
  52779. .INDENT 3.5
  52780. .sp
  52781. .nf
  52782. .ft C
  52783. remove_key:
  52784. wheel.key.delete:
  52785. \- match: {{ data[\(aqid\(aq] }}
  52786. .ft P
  52787. .fi
  52788. .UNINDENT
  52789. .UNINDENT
  52790. T}
  52791. _
  52792. .TE
  52793. .SS Caller Reactions
  52794. .sp
  52795. Caller reactions run remote\-execution functions on a
  52796. minion daemon\(aqs Reactor system. To run a Reactor on the minion, it is necessary
  52797. to configure the \fBReactor Engine\fP in the minion
  52798. config file, and then setup your watched events in a \fBreactor\fP section in the
  52799. minion config file as well.
  52800. .sp
  52801. \fBNOTE:\fP
  52802. .INDENT 0.0
  52803. .INDENT 3.5
  52804. Masterless Minions use this Reactor
  52805. .sp
  52806. This is the only way to run the Reactor if you use masterless minions.
  52807. .UNINDENT
  52808. .UNINDENT
  52809. .sp
  52810. Both the old and new config schemas involve passing arguments under an \fBargs\fP
  52811. parameter. However, the old config schema only supports positional arguments.
  52812. Therefore, the new config schema is recommended if the masterless minion is
  52813. running a supported release.
  52814. .sp
  52815. The below two examples are equivalent:
  52816. .TS
  52817. center;
  52818. |l|l|.
  52819. _
  52820. T{
  52821. Supported in 2017.7.2 and later
  52822. T} T{
  52823. Supported in all releases
  52824. T}
  52825. _
  52826. T{
  52827. .INDENT 0.0
  52828. .INDENT 3.5
  52829. .sp
  52830. .nf
  52831. .ft C
  52832. touch_file:
  52833. caller.file.touch:
  52834. \- args:
  52835. \- name: /tmp/foo
  52836. .ft P
  52837. .fi
  52838. .UNINDENT
  52839. .UNINDENT
  52840. T} T{
  52841. .INDENT 0.0
  52842. .INDENT 3.5
  52843. .sp
  52844. .nf
  52845. .ft C
  52846. touch_file:
  52847. caller.file.touch:
  52848. \- args:
  52849. \- /tmp/foo
  52850. .ft P
  52851. .fi
  52852. .UNINDENT
  52853. .UNINDENT
  52854. T}
  52855. _
  52856. .TE
  52857. .sp
  52858. This reaction is equivalent to running the following Salt command:
  52859. .INDENT 0.0
  52860. .INDENT 3.5
  52861. .sp
  52862. .nf
  52863. .ft C
  52864. salt\-call file.touch name=/tmp/foo
  52865. .ft P
  52866. .fi
  52867. .UNINDENT
  52868. .UNINDENT
  52869. .SS Best Practices for Writing Reactor SLS Files
  52870. .sp
  52871. The Reactor works as follows:
  52872. .INDENT 0.0
  52873. .IP 1. 3
  52874. The Salt Reactor watches Salt\(aqs event bus for new events.
  52875. .IP 2. 3
  52876. Each event\(aqs tag is matched against the list of event tags configured under
  52877. the \fBreactor\fP section in the Salt Master config.
  52878. .IP 3. 3
  52879. The SLS files for any matches are rendered into a data structure that
  52880. represents one or more function calls.
  52881. .IP 4. 3
  52882. That data structure is given to a pool of worker threads for execution.
  52883. .UNINDENT
  52884. .sp
  52885. Matching and rendering Reactor SLS files is done sequentially in a single
  52886. process. For that reason, reactor SLS files should contain few individual
  52887. reactions (one, if at all possible). Also, keep in mind that reactions are
  52888. fired asynchronously (with the exception of \fI\%caller\fP) and
  52889. do \fInot\fP support requisites\&.
  52890. .sp
  52891. Complex Jinja templating that calls out to slow remote\-execution or runner functions slows down
  52892. the rendering and causes other reactions to pile up behind the current one. The
  52893. worker pool is designed to handle complex and long\-running processes like
  52894. orchestration jobs.
  52895. .sp
  52896. Therefore, when complex tasks are in order, orchestration is a natural fit. Orchestration SLS files can be more
  52897. complex, and use requisites. Performing a complex task using orchestration lets
  52898. the Reactor system fire off the orchestration job and proceed with processing
  52899. other reactions.
  52900. .SS Jinja Context
  52901. .sp
  52902. Reactor SLS files only have access to a minimal Jinja context. \fBgrains\fP and
  52903. \fBpillar\fP are \fInot\fP available. The \fBsalt\fP object is available for calling
  52904. remote\-execution or runner
  52905. functions, but it should be used sparingly and only for quick tasks for the
  52906. reasons mentioned above.
  52907. .sp
  52908. In addition to the \fBsalt\fP object, the following variables are available in
  52909. the Jinja context:
  52910. .INDENT 0.0
  52911. .IP \(bu 2
  52912. \fBtag\fP \- the tag from the event that triggered execution of the Reactor SLS
  52913. file
  52914. .IP \(bu 2
  52915. \fBdata\fP \- the event\(aqs data dictionary
  52916. .UNINDENT
  52917. .sp
  52918. The \fBdata\fP dict will contain an \fBid\fP key containing the minion ID, if the
  52919. event was fired from a minion, and a \fBdata\fP key containing the data passed to
  52920. the event.
  52921. .SS Advanced State System Capabilities
  52922. .sp
  52923. Reactor SLS files, by design, do not support requisites,
  52924. ordering, \fBonlyif\fP/\fBunless\fP conditionals and most other powerful constructs
  52925. from Salt\(aqs State system.
  52926. .sp
  52927. Complex Master\-side operations are best performed by Salt\(aqs Orchestrate system
  52928. so using the Reactor to kick off an Orchestrate run is a very common pairing.
  52929. .sp
  52930. For example:
  52931. .INDENT 0.0
  52932. .INDENT 3.5
  52933. .sp
  52934. .nf
  52935. .ft C
  52936. # /etc/salt/master.d/reactor.conf
  52937. # A custom event containing: {"foo": "Foo!", "bar: "bar*", "baz": "Baz!"}
  52938. reactor:
  52939. \- my/custom/event:
  52940. \- /srv/reactor/some_event.sls
  52941. .ft P
  52942. .fi
  52943. .UNINDENT
  52944. .UNINDENT
  52945. .INDENT 0.0
  52946. .INDENT 3.5
  52947. .sp
  52948. .nf
  52949. .ft C
  52950. # /srv/reactor/some_event.sls
  52951. invoke_orchestrate_file:
  52952. runner.state.orchestrate:
  52953. \- args:
  52954. \- mods: orchestrate.do_complex_thing
  52955. \- pillar:
  52956. event_tag: {{ tag }}
  52957. event_data: {{ data|json }}
  52958. .ft P
  52959. .fi
  52960. .UNINDENT
  52961. .UNINDENT
  52962. .INDENT 0.0
  52963. .INDENT 3.5
  52964. .sp
  52965. .nf
  52966. .ft C
  52967. # /srv/salt/orchestrate/do_complex_thing.sls
  52968. {% set tag = salt.pillar.get(\(aqevent_tag\(aq) %}
  52969. {% set data = salt.pillar.get(\(aqevent_data\(aq) %}
  52970. # Pass data from the event to a custom runner function.
  52971. # The function expects a \(aqfoo\(aq argument.
  52972. do_first_thing:
  52973. salt.runner:
  52974. \- name: custom_runner.custom_function
  52975. \- foo: {{ data.foo }}
  52976. # Wait for the runner to finish then send an execution to minions.
  52977. # Forward some data from the event down to the minion\(aqs state run.
  52978. do_second_thing:
  52979. salt.state:
  52980. \- tgt: {{ data.bar }}
  52981. \- sls:
  52982. \- do_thing_on_minion
  52983. \- kwarg:
  52984. pillar:
  52985. baz: {{ data.baz }}
  52986. \- require:
  52987. \- salt: do_first_thing
  52988. .ft P
  52989. .fi
  52990. .UNINDENT
  52991. .UNINDENT
  52992. .SS Beacons and Reactors
  52993. .sp
  52994. An event initiated by a beacon, when it arrives at the master will be wrapped
  52995. inside a second event, such that the data object containing the beacon
  52996. information will be \fBdata[\(aqdata\(aq]\fP, rather than \fBdata\fP\&.
  52997. .sp
  52998. For example, to access the \fBid\fP field of the beacon event in a reactor file,
  52999. you will need to reference \fB{{ data[\(aqdata\(aq][\(aqid\(aq] }}\fP rather than \fB{{
  53000. data[\(aqid\(aq] }}\fP as for events initiated directly on the event bus.
  53001. .sp
  53002. Similarly, the data dictionary attached to the event would be located in
  53003. \fB{{ data[\(aqdata\(aq][\(aqdata\(aq] }}\fP instead of \fB{{ data[\(aqdata\(aq] }}\fP\&.
  53004. .sp
  53005. See the beacon documentation for examples.
  53006. .SS Manually Firing an Event
  53007. .SS From the Master
  53008. .sp
  53009. Use the \fBevent.send\fP runner:
  53010. .INDENT 0.0
  53011. .INDENT 3.5
  53012. .sp
  53013. .nf
  53014. .ft C
  53015. salt\-run event.send foo \(aq{orchestrate: refresh}\(aq
  53016. .ft P
  53017. .fi
  53018. .UNINDENT
  53019. .UNINDENT
  53020. .SS From the Minion
  53021. .sp
  53022. To fire an event to the master from a minion, call \fBevent.send\fP:
  53023. .INDENT 0.0
  53024. .INDENT 3.5
  53025. .sp
  53026. .nf
  53027. .ft C
  53028. salt\-call event.send foo \(aq{orchestrate: refresh}\(aq
  53029. .ft P
  53030. .fi
  53031. .UNINDENT
  53032. .UNINDENT
  53033. .sp
  53034. To fire an event to the minion\(aqs local event bus, call \fBevent.fire\fP:
  53035. .INDENT 0.0
  53036. .INDENT 3.5
  53037. .sp
  53038. .nf
  53039. .ft C
  53040. salt\-call event.fire \(aq{orchestrate: refresh}\(aq foo
  53041. .ft P
  53042. .fi
  53043. .UNINDENT
  53044. .UNINDENT
  53045. .SS Referencing Data Passed in Events
  53046. .sp
  53047. Assuming any of the above examples, any reactor SLS files triggered by watching
  53048. the event tag \fBfoo\fP will execute with \fB{{ data[\(aqdata\(aq][\(aqorchestrate\(aq] }}\fP
  53049. equal to \fB\(aqrefresh\(aq\fP\&.
  53050. .SS Getting Information About Events
  53051. .sp
  53052. The best way to see exactly what events have been fired and what data is
  53053. available in each event is to use the \fBstate.event runner\fP\&.
  53054. .sp
  53055. \fBSEE ALSO:\fP
  53056. .INDENT 0.0
  53057. .INDENT 3.5
  53058. Common Salt Events
  53059. .UNINDENT
  53060. .UNINDENT
  53061. .sp
  53062. Example usage:
  53063. .INDENT 0.0
  53064. .INDENT 3.5
  53065. .sp
  53066. .nf
  53067. .ft C
  53068. salt\-run state.event pretty=True
  53069. .ft P
  53070. .fi
  53071. .UNINDENT
  53072. .UNINDENT
  53073. .sp
  53074. Example output:
  53075. .INDENT 0.0
  53076. .INDENT 3.5
  53077. .sp
  53078. .nf
  53079. .ft C
  53080. salt/job/20150213001905721678/new {
  53081. "_stamp": "2015\-02\-13T00:19:05.724583",
  53082. "arg": [],
  53083. "fun": "test.ping",
  53084. "jid": "20150213001905721678",
  53085. "minions": [
  53086. "jerry"
  53087. ],
  53088. "tgt": "*",
  53089. "tgt_type": "glob",
  53090. "user": "root"
  53091. }
  53092. salt/job/20150213001910749506/ret/jerry {
  53093. "_stamp": "2015\-02\-13T00:19:11.136730",
  53094. "cmd": "_return",
  53095. "fun": "saltutil.find_job",
  53096. "fun_args": [
  53097. "20150213001905721678"
  53098. ],
  53099. "id": "jerry",
  53100. "jid": "20150213001910749506",
  53101. "retcode": 0,
  53102. "return": {},
  53103. "success": true
  53104. }
  53105. .ft P
  53106. .fi
  53107. .UNINDENT
  53108. .UNINDENT
  53109. .SS Debugging the Reactor
  53110. .sp
  53111. The best window into the Reactor is to run the master in the foreground with
  53112. debug logging enabled. The output will include when the master sees the event,
  53113. what the master does in response to that event, and it will also include the
  53114. rendered SLS file (or any errors generated while rendering the SLS file).
  53115. .INDENT 0.0
  53116. .IP 1. 3
  53117. Stop the master.
  53118. .IP 2. 3
  53119. Start the master manually:
  53120. .INDENT 3.0
  53121. .INDENT 3.5
  53122. .sp
  53123. .nf
  53124. .ft C
  53125. salt\-master \-l debug
  53126. .ft P
  53127. .fi
  53128. .UNINDENT
  53129. .UNINDENT
  53130. .IP 3. 3
  53131. Look for log entries in the form:
  53132. .INDENT 3.0
  53133. .INDENT 3.5
  53134. .sp
  53135. .nf
  53136. .ft C
  53137. [DEBUG ] Gathering reactors for tag foo/bar
  53138. [DEBUG ] Compiling reactions for tag foo/bar
  53139. [DEBUG ] Rendered data from file: /path/to/the/reactor_file.sls:
  53140. <... Rendered output appears here. ...>
  53141. .ft P
  53142. .fi
  53143. .UNINDENT
  53144. .UNINDENT
  53145. .sp
  53146. The rendered output is the result of the Jinja parsing and is a good way to
  53147. view the result of referencing Jinja variables. If the result is empty then
  53148. Jinja produced an empty result and the Reactor will ignore it.
  53149. .UNINDENT
  53150. .SS Passing Event Data to Minions or Orchestration as Pillar
  53151. .sp
  53152. An interesting trick to pass data from the Reactor SLS file to
  53153. \fBstate.apply\fP is to pass it as inline
  53154. Pillar data since both functions take a keyword argument named \fBpillar\fP\&.
  53155. .sp
  53156. The following example uses Salt\(aqs Reactor to listen for the event that is fired
  53157. when the key for a new minion is accepted on the master using \fBsalt\-key\fP\&.
  53158. .sp
  53159. \fB/etc/salt/master.d/reactor.conf\fP:
  53160. .INDENT 0.0
  53161. .INDENT 3.5
  53162. .sp
  53163. .nf
  53164. .ft C
  53165. reactor:
  53166. \- \(aqsalt/key\(aq:
  53167. \- /srv/salt/haproxy/react_new_minion.sls
  53168. .ft P
  53169. .fi
  53170. .UNINDENT
  53171. .UNINDENT
  53172. .sp
  53173. The Reactor then fires a :\fBstate.apply\fP
  53174. command targeted to the HAProxy servers and passes the ID of the new minion
  53175. from the event to the state file via inline Pillar.
  53176. .sp
  53177. \fB/srv/salt/haproxy/react_new_minion.sls\fP:
  53178. .INDENT 0.0
  53179. .INDENT 3.5
  53180. .sp
  53181. .nf
  53182. .ft C
  53183. {% if data[\(aqact\(aq] == \(aqaccept\(aq and data[\(aqid\(aq].startswith(\(aqweb\(aq) %}
  53184. add_new_minion_to_pool:
  53185. local.state.apply:
  53186. \- tgt: \(aqhaproxy*\(aq
  53187. \- args:
  53188. \- mods: haproxy.refresh_pool
  53189. \- pillar:
  53190. new_minion: {{ data[\(aqid\(aq] }}
  53191. {% endif %}
  53192. .ft P
  53193. .fi
  53194. .UNINDENT
  53195. .UNINDENT
  53196. .sp
  53197. The above command is equivalent to the following command at the CLI:
  53198. .INDENT 0.0
  53199. .INDENT 3.5
  53200. .sp
  53201. .nf
  53202. .ft C
  53203. salt \(aqhaproxy*\(aq state.apply haproxy.refresh_pool pillar=\(aq{new_minion: minionid}\(aq
  53204. .ft P
  53205. .fi
  53206. .UNINDENT
  53207. .UNINDENT
  53208. .sp
  53209. This works with Orchestrate files as well:
  53210. .INDENT 0.0
  53211. .INDENT 3.5
  53212. .sp
  53213. .nf
  53214. .ft C
  53215. call_some_orchestrate_file:
  53216. runner.state.orchestrate:
  53217. \- args:
  53218. \- mods: orchestrate.some_orchestrate_file
  53219. \- pillar:
  53220. stuff: things
  53221. .ft P
  53222. .fi
  53223. .UNINDENT
  53224. .UNINDENT
  53225. .sp
  53226. Which is equivalent to the following command at the CLI:
  53227. .INDENT 0.0
  53228. .INDENT 3.5
  53229. .sp
  53230. .nf
  53231. .ft C
  53232. salt\-run state.orchestrate orchestrate.some_orchestrate_file pillar=\(aq{stuff: things}\(aq
  53233. .ft P
  53234. .fi
  53235. .UNINDENT
  53236. .UNINDENT
  53237. .sp
  53238. Finally, that data is available in the state file using the normal Pillar
  53239. lookup syntax. The following example is grabbing web server names and IP
  53240. addresses from Salt Mine\&. If this state is invoked from the
  53241. Reactor then the custom Pillar value from above will be available and the new
  53242. minion will be added to the pool but with the \fBdisabled\fP flag so that HAProxy
  53243. won\(aqt yet direct traffic to it.
  53244. .sp
  53245. \fB/srv/salt/haproxy/refresh_pool.sls\fP:
  53246. .INDENT 0.0
  53247. .INDENT 3.5
  53248. .sp
  53249. .nf
  53250. .ft C
  53251. {% set new_minion = salt[\(aqpillar.get\(aq](\(aqnew_minion\(aq) %}
  53252. listen web *:80
  53253. balance source
  53254. {% for server,ip in salt[\(aqmine.get\(aq](\(aqweb*\(aq, \(aqnetwork.interfaces\(aq, [\(aqeth0\(aq]).items() %}
  53255. {% if server == new_minion %}
  53256. server {{ server }} {{ ip }}:80 disabled
  53257. {% else %}
  53258. server {{ server }} {{ ip }}:80 check
  53259. {% endif %}
  53260. {% endfor %}
  53261. .ft P
  53262. .fi
  53263. .UNINDENT
  53264. .UNINDENT
  53265. .SS A Complete Example
  53266. .sp
  53267. In this example, we\(aqre going to assume that we have a group of servers that
  53268. will come online at random and need to have keys automatically accepted. We\(aqll
  53269. also add that we don\(aqt want all servers being automatically accepted. For this
  53270. example, we\(aqll assume that all hosts that have an id that starts with \(aqink\(aq
  53271. will be automatically accepted and have \fBstate.apply\fP executed. On top of this, we\(aqre going to add that
  53272. a host coming up that was replaced (meaning a new key) will also be accepted.
  53273. .sp
  53274. Our master configuration will be rather simple. All minions that attempte to
  53275. authenticate will match the \fBtag\fP of \fBsalt/auth\fP\&. When it comes
  53276. to the minion key being accepted, we get a more refined \fBtag\fP that
  53277. includes the minion id, which we can use for matching.
  53278. .sp
  53279. \fB/etc/salt/master.d/reactor.conf\fP:
  53280. .INDENT 0.0
  53281. .INDENT 3.5
  53282. .sp
  53283. .nf
  53284. .ft C
  53285. reactor:
  53286. \- \(aqsalt/auth\(aq:
  53287. \- /srv/reactor/auth\-pending.sls
  53288. \- \(aqsalt/minion/ink*/start\(aq:
  53289. \- /srv/reactor/auth\-complete.sls
  53290. .ft P
  53291. .fi
  53292. .UNINDENT
  53293. .UNINDENT
  53294. .sp
  53295. In this SLS file, we say that if the key was rejected we will delete the key on
  53296. the master and then also tell the master to ssh in to the minion and tell it to
  53297. restart the minion, since a minion process will die if the key is rejected.
  53298. .sp
  53299. We also say that if the key is pending and the id starts with ink we will
  53300. accept the key. A minion that is waiting on a pending key will retry
  53301. authentication every ten seconds by default.
  53302. .sp
  53303. \fB/srv/reactor/auth\-pending.sls\fP:
  53304. .INDENT 0.0
  53305. .INDENT 3.5
  53306. .sp
  53307. .nf
  53308. .ft C
  53309. {# Ink server failed to authenticate \-\- remove accepted key #}
  53310. {% if not data[\(aqresult\(aq] and data[\(aqid\(aq].startswith(\(aqink\(aq) %}
  53311. minion_remove:
  53312. wheel.key.delete:
  53313. \- args:
  53314. \- match: {{ data[\(aqid\(aq] }}
  53315. minion_rejoin:
  53316. local.cmd.run:
  53317. \- tgt: salt\-master.domain.tld
  53318. \- args:
  53319. \- cmd: ssh \-o UserKnownHostsFile=/dev/null \-o StrictHostKeyChecking=no "{{ data[\(aqid\(aq] }}" \(aqsleep 10 && /etc/init.d/salt\-minion restart\(aq
  53320. {% endif %}
  53321. {# Ink server is sending new key \-\- accept this key #}
  53322. {% if \(aqact\(aq in data and data[\(aqact\(aq] == \(aqpend\(aq and data[\(aqid\(aq].startswith(\(aqink\(aq) %}
  53323. minion_add:
  53324. wheel.key.accept:
  53325. \- args:
  53326. \- match: {{ data[\(aqid\(aq] }}
  53327. {% endif %}
  53328. .ft P
  53329. .fi
  53330. .UNINDENT
  53331. .UNINDENT
  53332. .sp
  53333. No if statements are needed here because we already limited this action to just
  53334. Ink servers in the master configuration.
  53335. .sp
  53336. \fB/srv/reactor/auth\-complete.sls\fP:
  53337. .INDENT 0.0
  53338. .INDENT 3.5
  53339. .sp
  53340. .nf
  53341. .ft C
  53342. {# When an Ink server connects, run state.apply. #}
  53343. highstate_run:
  53344. local.state.apply:
  53345. \- tgt: {{ data[\(aqid\(aq] }}
  53346. \- ret: smtp
  53347. .ft P
  53348. .fi
  53349. .UNINDENT
  53350. .UNINDENT
  53351. .sp
  53352. The above will also return the highstate result data
  53353. using the \fIsmtp_return\fP returner (use virtualname like when using from the
  53354. command line with \fI\-\-return\fP). The returner needs to be configured on the
  53355. minion for this to work. See \fBsalt.returners.smtp_return\fP documentation for that.
  53356. .SS Syncing Custom Types on Minion Start
  53357. .sp
  53358. Salt will sync all custom types (by running a \fBsaltutil.sync_all\fP) on every highstate\&. However, there is a chicken\-and\-egg issue where, on the
  53359. initial highstate, a minion will not yet have these
  53360. custom types synced when the top file is first compiled. This can be worked
  53361. around with a simple reactor which watches for \fBsalt/minion/*/start\fP events,
  53362. which each minion fires when it first starts up and connects to the master.
  53363. .sp
  53364. On the master, create \fB/srv/reactor/sync_grains.sls\fP with the following
  53365. contents:
  53366. .INDENT 0.0
  53367. .INDENT 3.5
  53368. .sp
  53369. .nf
  53370. .ft C
  53371. sync_grains:
  53372. local.saltutil.sync_grains:
  53373. \- tgt: {{ data[\(aqid\(aq] }}
  53374. .ft P
  53375. .fi
  53376. .UNINDENT
  53377. .UNINDENT
  53378. .sp
  53379. And in the master config file, add the following reactor configuration:
  53380. .INDENT 0.0
  53381. .INDENT 3.5
  53382. .sp
  53383. .nf
  53384. .ft C
  53385. reactor:
  53386. \- \(aqsalt/minion/*/start\(aq:
  53387. \- /srv/reactor/sync_grains.sls
  53388. .ft P
  53389. .fi
  53390. .UNINDENT
  53391. .UNINDENT
  53392. .sp
  53393. This will cause the master to instruct each minion to sync its custom grains
  53394. when it starts, making these grains available when the initial highstate is executed.
  53395. .sp
  53396. Other types can be synced by replacing \fBlocal.saltutil.sync_grains\fP with
  53397. \fBlocal.saltutil.sync_modules\fP, \fBlocal.saltutil.sync_all\fP, or whatever else
  53398. suits the intended use case.
  53399. .sp
  53400. Also, if it is not desirable that \fIevery\fP minion syncs on startup, the \fB*\fP
  53401. can be replaced with a different glob to narrow down the set of minions which
  53402. will match that reactor (e.g. \fBsalt/minion/appsrv*/start\fP, which would only
  53403. match minion IDs beginning with \fBappsrv\fP).
  53404. .SS Reactor Tuning for Large\-Scale Installations
  53405. .sp
  53406. The reactor uses a thread pool implementation that\(aqs contained inside
  53407. salt.utils.process.ThreadPool and It uses Python\(aqs stdlib Queue to enqueue
  53408. jobs which are picked up by standard Python threads. If the queue is full,
  53409. False is simply returned by the firing method on the thread pool.
  53410. .sp
  53411. As such, there are a few things to say about the selection of proper values
  53412. for the reactor.
  53413. .sp
  53414. For situations where it is expected that many long\-running jobs might be
  53415. executed by the reactor, \fIreactor_worker_hwm\fP should be increased or even
  53416. set to 0 to bound it only by available memory. If set to zero, a close eye
  53417. should be kept on memory consumption.
  53418. .sp
  53419. If many long\-running jobs are expected and execution concurrency and
  53420. performance are a concern, you may also increase the value for
  53421. \fIreactor_worker_threads\fP\&. This will control the number of concurrent threads
  53422. which are pulling jobs from the queue and executing them. Obviously, this
  53423. bears a relationship to the speed at which the queue itself will fill up.
  53424. The price to pay for this value is that each thread will contain a copy of
  53425. Salt code needed to perform the requested action.
  53426. .SH ORCHESTRATION
  53427. .SS Orchestrate Runner
  53428. .sp
  53429. Executing states or highstate on a minion is perfect when you want to ensure that
  53430. minion configured and running the way you want. Sometimes however you want to
  53431. configure a set of minions all at once.
  53432. .sp
  53433. For example, if you want to set up a load balancer in front of a cluster of web
  53434. servers you can ensure the load balancer is set up first, and then the same
  53435. matching configuration is applied consistently across the whole cluster.
  53436. .sp
  53437. Orchestration is the way to do this.
  53438. .SS The Orchestrate Runner
  53439. .sp
  53440. New in version 0.17.0.
  53441. .sp
  53442. \fBNOTE:\fP
  53443. .INDENT 0.0
  53444. .INDENT 3.5
  53445. Orchestrate Deprecates OverState
  53446. .sp
  53447. The Orchestrate Runner (originally called the state.sls runner) offers all
  53448. the functionality of the OverState, but with some advantages:
  53449. .INDENT 0.0
  53450. .IP \(bu 2
  53451. All requisites available in states can be
  53452. used.
  53453. .IP \(bu 2
  53454. The states/functions will also work on salt\-ssh minions.
  53455. .UNINDENT
  53456. .sp
  53457. The Orchestrate Runner replaced the OverState system in Salt 2015.8.0.
  53458. .UNINDENT
  53459. .UNINDENT
  53460. .sp
  53461. The orchestrate runner generalizes the Salt state system to a Salt master
  53462. context. Whereas the \fBstate.sls\fP, \fBstate.highstate\fP, et al. functions are
  53463. concurrently and independently executed on each Salt minion, the
  53464. \fBstate.orchestrate\fP runner is executed on the master, giving it a
  53465. master\-level view and control over requisites, such as state ordering and
  53466. conditionals. This allows for inter minion requisites, like ordering the
  53467. application of states on different minions that must not happen simultaneously,
  53468. or for halting the state run on all minions if a minion fails one of its
  53469. states.
  53470. .sp
  53471. The \fBstate.sls\fP, \fBstate.highstate\fP, et al. functions allow you to statefully
  53472. manage each minion and the \fBstate.orchestrate\fP runner allows you to
  53473. statefully manage your entire infrastructure.
  53474. .SS Writing SLS Files
  53475. .sp
  53476. Orchestrate SLS files are stored in the same location as State SLS files. This
  53477. means that both \fBfile_roots\fP and \fBgitfs_remotes\fP impact what SLS files are
  53478. available to the reactor and orchestrator.
  53479. .sp
  53480. It is recommended to keep reactor and orchestrator SLS files in their own
  53481. uniquely named subdirectories such as \fB_orch/\fP, \fBorch/\fP, \fB_orchestrate/\fP,
  53482. \fBreact/\fP, \fB_reactor/\fP, etc. This will avoid duplicate naming and will help
  53483. prevent confusion.
  53484. .SS Executing the Orchestrate Runner
  53485. .sp
  53486. The Orchestrate Runner command format is the same as for the \fBstate.sls\fP
  53487. function, except that since it is a runner, it is executed with \fBsalt\-run\fP
  53488. rather than \fBsalt\fP\&. Assuming you have a state.sls file called
  53489. \fB/srv/salt/orch/webserver.sls\fP the following command, run on the master,
  53490. will apply the states defined in that file.
  53491. .INDENT 0.0
  53492. .INDENT 3.5
  53493. .sp
  53494. .nf
  53495. .ft C
  53496. salt\-run state.orchestrate orch.webserver
  53497. .ft P
  53498. .fi
  53499. .UNINDENT
  53500. .UNINDENT
  53501. .sp
  53502. \fBNOTE:\fP
  53503. .INDENT 0.0
  53504. .INDENT 3.5
  53505. \fBstate.orch\fP is a synonym for \fBstate.orchestrate\fP
  53506. .UNINDENT
  53507. .UNINDENT
  53508. .sp
  53509. Changed in version 2014.1.1: The runner function was renamed to \fBstate.orchestrate\fP to avoid confusion
  53510. with the \fBstate.sls\fP execution function. In
  53511. versions 0.17.0 through 2014.1.0, \fBstate.sls\fP must be used.
  53512. .SS Masterless Orchestration
  53513. .sp
  53514. New in version 2016.11.0.
  53515. .sp
  53516. To support salt orchestration on masterless minions, the Orchestrate Runner is
  53517. available as an execution module. The syntax for masterless orchestration is
  53518. exactly the same, but it uses the \fBsalt\-call\fP command and the minion
  53519. configuration must contain the \fBfile_mode: local\fP option. Alternatively,
  53520. use \fBsalt\-call \-\-local\fP on the command line.
  53521. .INDENT 0.0
  53522. .INDENT 3.5
  53523. .sp
  53524. .nf
  53525. .ft C
  53526. salt\-call \-\-local state.orchestrate orch.webserver
  53527. .ft P
  53528. .fi
  53529. .UNINDENT
  53530. .UNINDENT
  53531. .sp
  53532. \fBNOTE:\fP
  53533. .INDENT 0.0
  53534. .INDENT 3.5
  53535. Masterless orchestration supports only the \fBsalt.state\fP command in an
  53536. sls file; it does not (currently) support the \fBsalt.function\fP command.
  53537. .UNINDENT
  53538. .UNINDENT
  53539. .SS Examples
  53540. .SS Function
  53541. .sp
  53542. To execute a function, use \fBsalt.function\fP:
  53543. .INDENT 0.0
  53544. .INDENT 3.5
  53545. .sp
  53546. .nf
  53547. .ft C
  53548. # /srv/salt/orch/cleanfoo.sls
  53549. cmd.run:
  53550. salt.function:
  53551. \- tgt: \(aq*\(aq
  53552. \- arg:
  53553. \- rm \-rf /tmp/foo
  53554. .ft P
  53555. .fi
  53556. .UNINDENT
  53557. .UNINDENT
  53558. .INDENT 0.0
  53559. .INDENT 3.5
  53560. .sp
  53561. .nf
  53562. .ft C
  53563. salt\-run state.orchestrate orch.cleanfoo
  53564. .ft P
  53565. .fi
  53566. .UNINDENT
  53567. .UNINDENT
  53568. .sp
  53569. If you omit the "name" argument, the ID of the state will be the default name,
  53570. or in the case of \fBsalt.function\fP, the execution module function to run. You
  53571. can specify the "name" argument to avoid conflicting IDs:
  53572. .INDENT 0.0
  53573. .INDENT 3.5
  53574. .sp
  53575. .nf
  53576. .ft C
  53577. copy_some_file:
  53578. salt.function:
  53579. \- name: file.copy
  53580. \- tgt: \(aq*\(aq
  53581. \- arg:
  53582. \- /path/to/file
  53583. \- /tmp/copy_of_file
  53584. \- kwarg:
  53585. remove_existing: true
  53586. .ft P
  53587. .fi
  53588. .UNINDENT
  53589. .UNINDENT
  53590. .SS Fail Functions
  53591. .sp
  53592. When running a remote execution function in orchestration, certain return
  53593. values for those functions may indicate failure, while the function itself
  53594. doesn\(aqt set a return code. For those circumstances, using a "fail function"
  53595. allows for a more flexible means of assessing success or failure.
  53596. .sp
  53597. A fail function can be written as part of a custom execution module\&. The function should accept one argument, and
  53598. return a boolean result. For example:
  53599. .INDENT 0.0
  53600. .INDENT 3.5
  53601. .sp
  53602. .nf
  53603. .ft C
  53604. def check_func_result(retval):
  53605. if some_condition:
  53606. return True
  53607. else:
  53608. return False
  53609. .ft P
  53610. .fi
  53611. .UNINDENT
  53612. .UNINDENT
  53613. .sp
  53614. The function can then be referenced in orchestration SLS like so:
  53615. .INDENT 0.0
  53616. .INDENT 3.5
  53617. .sp
  53618. .nf
  53619. .ft C
  53620. do_stuff:
  53621. salt.function:
  53622. \- name: modname.funcname
  53623. \- tgt: \(aq*\(aq
  53624. \- fail_function: mymod.check_func_result
  53625. .ft P
  53626. .fi
  53627. .UNINDENT
  53628. .UNINDENT
  53629. .sp
  53630. \fBIMPORTANT:\fP
  53631. .INDENT 0.0
  53632. .INDENT 3.5
  53633. Fail functions run \fIon the master\fP, so they must be synced using \fBsalt\-run
  53634. saltutil.sync_modules\fP\&.
  53635. .UNINDENT
  53636. .UNINDENT
  53637. .SS State
  53638. .sp
  53639. To execute a state, use \fBsalt.state\fP\&.
  53640. .INDENT 0.0
  53641. .INDENT 3.5
  53642. .sp
  53643. .nf
  53644. .ft C
  53645. # /srv/salt/orch/webserver.sls
  53646. install_nginx:
  53647. salt.state:
  53648. \- tgt: \(aqweb*\(aq
  53649. \- sls:
  53650. \- nginx
  53651. .ft P
  53652. .fi
  53653. .UNINDENT
  53654. .UNINDENT
  53655. .INDENT 0.0
  53656. .INDENT 3.5
  53657. .sp
  53658. .nf
  53659. .ft C
  53660. salt\-run state.orchestrate orch.webserver
  53661. .ft P
  53662. .fi
  53663. .UNINDENT
  53664. .UNINDENT
  53665. .SS Highstate
  53666. .sp
  53667. To run a highstate, set \fBhighstate: True\fP in your state config:
  53668. .INDENT 0.0
  53669. .INDENT 3.5
  53670. .sp
  53671. .nf
  53672. .ft C
  53673. # /srv/salt/orch/web_setup.sls
  53674. webserver_setup:
  53675. salt.state:
  53676. \- tgt: \(aqweb*\(aq
  53677. \- highstate: True
  53678. .ft P
  53679. .fi
  53680. .UNINDENT
  53681. .UNINDENT
  53682. .INDENT 0.0
  53683. .INDENT 3.5
  53684. .sp
  53685. .nf
  53686. .ft C
  53687. salt\-run state.orchestrate orch.web_setup
  53688. .ft P
  53689. .fi
  53690. .UNINDENT
  53691. .UNINDENT
  53692. .SS Runner
  53693. .sp
  53694. To execute another runner, use \fBsalt.runner\fP\&.
  53695. For example to use the \fBcloud.profile\fP runner in your orchestration state
  53696. additional options to replace values in the configured profile, use this:
  53697. .INDENT 0.0
  53698. .INDENT 3.5
  53699. .sp
  53700. .nf
  53701. .ft C
  53702. # /srv/salt/orch/deploy.sls
  53703. create_instance:
  53704. salt.runner:
  53705. \- name: cloud.profile
  53706. \- prof: cloud\-centos
  53707. \- provider: cloud
  53708. \- instances:
  53709. \- server1
  53710. \- opts:
  53711. minion:
  53712. master: master1
  53713. .ft P
  53714. .fi
  53715. .UNINDENT
  53716. .UNINDENT
  53717. .sp
  53718. To get a more dynamic state, use jinja variables together with
  53719. \fBinline pillar data\fP\&.
  53720. Using the same example but passing on pillar data, the state would be like
  53721. this.
  53722. .INDENT 0.0
  53723. .INDENT 3.5
  53724. .sp
  53725. .nf
  53726. .ft C
  53727. # /srv/salt/orch/deploy.sls
  53728. {% set servers = salt[\(aqpillar.get\(aq](\(aqservers\(aq, \(aqtest\(aq) %}
  53729. {% set master = salt[\(aqpillar.get\(aq](\(aqmaster\(aq, \(aqsalt\(aq) %}
  53730. create_instance:
  53731. salt.runner:
  53732. \- name: cloud.profile
  53733. \- prof: cloud\-centos
  53734. \- provider: cloud
  53735. \- instances:
  53736. \- {{ servers }}
  53737. \- opts:
  53738. minion:
  53739. master: {{ master }}
  53740. .ft P
  53741. .fi
  53742. .UNINDENT
  53743. .UNINDENT
  53744. .sp
  53745. To execute with pillar data.
  53746. .INDENT 0.0
  53747. .INDENT 3.5
  53748. .sp
  53749. .nf
  53750. .ft C
  53751. salt\-run state.orch orch.deploy pillar=\(aq{"servers": "newsystem1",
  53752. "master": "mymaster"}\(aq
  53753. .ft P
  53754. .fi
  53755. .UNINDENT
  53756. .UNINDENT
  53757. .SS Return Codes in Runner/Wheel Jobs
  53758. .sp
  53759. New in version 2018.3.0.
  53760. .sp
  53761. State (\fBsalt.state\fP) jobs are able to report failure via the state
  53762. return dictionary\&. Remote execution (\fBsalt.function\fP)
  53763. jobs are able to report failure by setting a \fBretcode\fP key in the
  53764. \fB__context__\fP dictionary. However, runner (\fBsalt.runner\fP) and wheel
  53765. (\fBsalt.wheel\fP) jobs would only report a \fBFalse\fP result when the
  53766. runner/wheel function raised an exception. As of the 2018.3.0 release, it is
  53767. now possible to set a retcode in runner and wheel functions just as you can do
  53768. in remote execution functions. Here is some example pseudocode:
  53769. .INDENT 0.0
  53770. .INDENT 3.5
  53771. .sp
  53772. .nf
  53773. .ft C
  53774. def myrunner():
  53775. ...
  53776. do stuff
  53777. ...
  53778. if some_error_condition:
  53779. __context__[\(aqretcode\(aq] = 1
  53780. return result
  53781. .ft P
  53782. .fi
  53783. .UNINDENT
  53784. .UNINDENT
  53785. .sp
  53786. This allows a custom runner/wheel function to report its failure so that
  53787. requisites can accurately tell that a job has failed.
  53788. .SS More Complex Orchestration
  53789. .sp
  53790. Many states/functions can be configured in a single file, which when combined
  53791. with the full suite of requisites, can be used
  53792. to easily configure complex orchestration tasks. Additionally, the
  53793. states/functions will be executed in the order in which they are defined,
  53794. unless prevented from doing so by any requisites, as is the default in
  53795. SLS files since 0.17.0.
  53796. .INDENT 0.0
  53797. .INDENT 3.5
  53798. .sp
  53799. .nf
  53800. .ft C
  53801. bootstrap_servers:
  53802. salt.function:
  53803. \- name: cmd.run
  53804. \- tgt: 10.0.0.0/24
  53805. \- tgt_type: ipcidr
  53806. \- arg:
  53807. \- bootstrap
  53808. storage_setup:
  53809. salt.state:
  53810. \- tgt: \(aqrole:storage\(aq
  53811. \- tgt_type: grain
  53812. \- sls: ceph
  53813. \- require:
  53814. \- salt: webserver_setup
  53815. webserver_setup:
  53816. salt.state:
  53817. \- tgt: \(aqweb*\(aq
  53818. \- highstate: True
  53819. .ft P
  53820. .fi
  53821. .UNINDENT
  53822. .UNINDENT
  53823. .sp
  53824. Given the above setup, the orchestration will be carried out as follows:
  53825. .INDENT 0.0
  53826. .IP 1. 3
  53827. The shell command \fBbootstrap\fP will be executed on all minions in the
  53828. 10.0.0.0/24 subnet.
  53829. .IP 2. 3
  53830. A Highstate will be run on all minions whose ID starts with "web", since
  53831. the \fBstorage_setup\fP state requires it.
  53832. .IP 3. 3
  53833. Finally, the \fBceph\fP SLS target will be executed on all minions which have
  53834. a grain called \fBrole\fP with a value of \fBstorage\fP\&.
  53835. .UNINDENT
  53836. .sp
  53837. \fBNOTE:\fP
  53838. .INDENT 0.0
  53839. .INDENT 3.5
  53840. Remember, salt\-run is \fIalways\fP executed on the master.
  53841. .UNINDENT
  53842. .UNINDENT
  53843. .SS Parsing Results Programmatically
  53844. .sp
  53845. Orchestration jobs return output in a specific data structure. That data
  53846. structure is represented differently depending on the outputter used. With the
  53847. default outputter for orchestration, you get a nice human\-readable output.
  53848. Assume the following orchestration SLS:
  53849. .INDENT 0.0
  53850. .INDENT 3.5
  53851. .sp
  53852. .nf
  53853. .ft C
  53854. good_state:
  53855. salt.state:
  53856. \- tgt: myminion
  53857. \- sls:
  53858. \- succeed_with_changes
  53859. bad_state:
  53860. salt.state:
  53861. \- tgt: myminion
  53862. \- sls:
  53863. \- fail_with_changes
  53864. mymod.myfunc:
  53865. salt.function:
  53866. \- tgt: myminion
  53867. mymod.myfunc_false_result:
  53868. salt.function:
  53869. \- tgt: myminion
  53870. .ft P
  53871. .fi
  53872. .UNINDENT
  53873. .UNINDENT
  53874. .sp
  53875. Running this using the default outputter would produce output which looks like
  53876. this:
  53877. .INDENT 0.0
  53878. .INDENT 3.5
  53879. .sp
  53880. .nf
  53881. .ft C
  53882. fa5944a73aa8_master:
  53883. \-\-\-\-\-\-\-\-\-\-
  53884. ID: good_state
  53885. Function: salt.state
  53886. Result: True
  53887. Comment: States ran successfully. Updating myminion.
  53888. Started: 21:08:02.681604
  53889. Duration: 265.565 ms
  53890. Changes:
  53891. myminion:
  53892. \-\-\-\-\-\-\-\-\-\-
  53893. ID: test succeed with changes
  53894. Function: test.succeed_with_changes
  53895. Result: True
  53896. Comment: Success!
  53897. Started: 21:08:02.835893
  53898. Duration: 0.375 ms
  53899. Changes:
  53900. \-\-\-\-\-\-\-\-\-\-
  53901. testing:
  53902. \-\-\-\-\-\-\-\-\-\-
  53903. new:
  53904. Something pretended to change
  53905. old:
  53906. Unchanged
  53907. Summary for myminion
  53908. \-\-\-\-\-\-\-\-\-\-\-\-
  53909. Succeeded: 1 (changed=1)
  53910. Failed: 0
  53911. \-\-\-\-\-\-\-\-\-\-\-\-
  53912. Total states run: 1
  53913. Total run time: 0.375 ms
  53914. \-\-\-\-\-\-\-\-\-\-
  53915. ID: bad_state
  53916. Function: salt.state
  53917. Result: False
  53918. Comment: Run failed on minions: myminion
  53919. Started: 21:08:02.947702
  53920. Duration: 177.01 ms
  53921. Changes:
  53922. myminion:
  53923. \-\-\-\-\-\-\-\-\-\-
  53924. ID: test fail with changes
  53925. Function: test.fail_with_changes
  53926. Result: False
  53927. Comment: Failure!
  53928. Started: 21:08:03.116634
  53929. Duration: 0.502 ms
  53930. Changes:
  53931. \-\-\-\-\-\-\-\-\-\-
  53932. testing:
  53933. \-\-\-\-\-\-\-\-\-\-
  53934. new:
  53935. Something pretended to change
  53936. old:
  53937. Unchanged
  53938. Summary for myminion
  53939. \-\-\-\-\-\-\-\-\-\-\-\-
  53940. Succeeded: 0 (changed=1)
  53941. Failed: 1
  53942. \-\-\-\-\-\-\-\-\-\-\-\-
  53943. Total states run: 1
  53944. Total run time: 0.502 ms
  53945. \-\-\-\-\-\-\-\-\-\-
  53946. ID: mymod.myfunc
  53947. Function: salt.function
  53948. Result: True
  53949. Comment: Function ran successfully. Function mymod.myfunc ran on myminion.
  53950. Started: 21:08:03.125011
  53951. Duration: 159.488 ms
  53952. Changes:
  53953. myminion:
  53954. True
  53955. \-\-\-\-\-\-\-\-\-\-
  53956. ID: mymod.myfunc_false_result
  53957. Function: salt.function
  53958. Result: False
  53959. Comment: Running function mymod.myfunc_false_result failed on minions: myminion. Function mymod.myfunc_false_result ran on myminion.
  53960. Started: 21:08:03.285148
  53961. Duration: 176.787 ms
  53962. Changes:
  53963. myminion:
  53964. False
  53965. Summary for fa5944a73aa8_master
  53966. \-\-\-\-\-\-\-\-\-\-\-\-
  53967. Succeeded: 2 (changed=4)
  53968. Failed: 2
  53969. \-\-\-\-\-\-\-\-\-\-\-\-
  53970. Total states run: 4
  53971. Total run time: 778.850 ms
  53972. .ft P
  53973. .fi
  53974. .UNINDENT
  53975. .UNINDENT
  53976. .sp
  53977. However, using the \fBjson\fP outputter, you can get the output in an easily
  53978. loadable and parsable format:
  53979. .INDENT 0.0
  53980. .INDENT 3.5
  53981. .sp
  53982. .nf
  53983. .ft C
  53984. salt\-run state.orchestrate test \-\-out=json
  53985. .ft P
  53986. .fi
  53987. .UNINDENT
  53988. .UNINDENT
  53989. .INDENT 0.0
  53990. .INDENT 3.5
  53991. .sp
  53992. .nf
  53993. .ft C
  53994. {
  53995. "outputter": "highstate",
  53996. "data": {
  53997. "fa5944a73aa8_master": {
  53998. "salt_|\-good_state_|\-good_state_|\-state": {
  53999. "comment": "States ran successfully. Updating myminion.",
  54000. "name": "good_state",
  54001. "start_time": "21:35:16.868345",
  54002. "result": true,
  54003. "duration": 267.299,
  54004. "__run_num__": 0,
  54005. "__jid__": "20171130213516897392",
  54006. "__sls__": "test",
  54007. "changes": {
  54008. "ret": {
  54009. "myminion": {
  54010. "test_|\-test succeed with changes_|\-test succeed with changes_|\-succeed_with_changes": {
  54011. "comment": "Success!",
  54012. "name": "test succeed with changes",
  54013. "start_time": "21:35:17.022592",
  54014. "result": true,
  54015. "duration": 0.362,
  54016. "__run_num__": 0,
  54017. "__sls__": "succeed_with_changes",
  54018. "changes": {
  54019. "testing": {
  54020. "new": "Something pretended to change",
  54021. "old": "Unchanged"
  54022. }
  54023. },
  54024. "__id__": "test succeed with changes"
  54025. }
  54026. }
  54027. },
  54028. "out": "highstate"
  54029. },
  54030. "__id__": "good_state"
  54031. },
  54032. "salt_|\-bad_state_|\-bad_state_|\-state": {
  54033. "comment": "Run failed on minions: test",
  54034. "name": "bad_state",
  54035. "start_time": "21:35:17.136511",
  54036. "result": false,
  54037. "duration": 197.635,
  54038. "__run_num__": 1,
  54039. "__jid__": "20171130213517202203",
  54040. "__sls__": "test",
  54041. "changes": {
  54042. "ret": {
  54043. "myminion": {
  54044. "test_|\-test fail with changes_|\-test fail with changes_|\-fail_with_changes": {
  54045. "comment": "Failure!",
  54046. "name": "test fail with changes",
  54047. "start_time": "21:35:17.326268",
  54048. "result": false,
  54049. "duration": 0.509,
  54050. "__run_num__": 0,
  54051. "__sls__": "fail_with_changes",
  54052. "changes": {
  54053. "testing": {
  54054. "new": "Something pretended to change",
  54055. "old": "Unchanged"
  54056. }
  54057. },
  54058. "__id__": "test fail with changes"
  54059. }
  54060. }
  54061. },
  54062. "out": "highstate"
  54063. },
  54064. "__id__": "bad_state"
  54065. },
  54066. "salt_|\-mymod.myfunc_|\-mymod.myfunc_|\-function": {
  54067. "comment": "Function ran successfully. Function mymod.myfunc ran on myminion.",
  54068. "name": "mymod.myfunc",
  54069. "start_time": "21:35:17.334373",
  54070. "result": true,
  54071. "duration": 151.716,
  54072. "__run_num__": 2,
  54073. "__jid__": "20171130213517361706",
  54074. "__sls__": "test",
  54075. "changes": {
  54076. "ret": {
  54077. "myminion": true
  54078. },
  54079. "out": "highstate"
  54080. },
  54081. "__id__": "mymod.myfunc"
  54082. },
  54083. "salt_|\-mymod.myfunc_false_result\-mymod.myfunc_false_result\-function": {
  54084. "comment": "Running function mymod.myfunc_false_result failed on minions: myminion. Function mymod.myfunc_false_result ran on myminion.",
  54085. "name": "mymod.myfunc_false_result",
  54086. "start_time": "21:35:17.486625",
  54087. "result": false,
  54088. "duration": 174.241,
  54089. "__run_num__": 3,
  54090. "__jid__": "20171130213517536270",
  54091. "__sls__": "test",
  54092. "changes": {
  54093. "ret": {
  54094. "myminion": false
  54095. },
  54096. "out": "highstate"
  54097. },
  54098. "__id__": "mymod.myfunc_false_result"
  54099. }
  54100. }
  54101. },
  54102. "retcode": 1
  54103. }
  54104. .ft P
  54105. .fi
  54106. .UNINDENT
  54107. .UNINDENT
  54108. .sp
  54109. The 2018.3.0 release includes a couple fixes to make parsing this data easier and
  54110. more accurate. The first is the ability to set a \fI\%return code\fP in a custom runner or wheel
  54111. function, as noted above. The second is a change to how failures are included
  54112. in the return data. Prior to the 2018.3.0 release, minions that failed a
  54113. \fBsalt.state\fP orchestration job would show up in the \fBcomment\fP field of the
  54114. return data, in a human\-readable string that was not easily parsed. They are
  54115. now included in the \fBchanges\fP dictionary alongside the minions that
  54116. succeeded. In addition, \fBsalt.function\fP jobs which failed because the
  54117. \fI\%fail function\fP returned \fBFalse\fP
  54118. used to handle their failures in the same way \fBsalt.state\fP jobs did, and this
  54119. has likewise been corrected.
  54120. .SS Running States on the Master without a Minion
  54121. .sp
  54122. The orchestrate runner can be used to execute states on the master without
  54123. using a minion. For example, assume that \fBsalt://foo.sls\fP contains the
  54124. following SLS:
  54125. .INDENT 0.0
  54126. .INDENT 3.5
  54127. .sp
  54128. .nf
  54129. .ft C
  54130. /etc/foo.conf:
  54131. file.managed:
  54132. \- source: salt://files/foo.conf
  54133. \- mode: 0600
  54134. .ft P
  54135. .fi
  54136. .UNINDENT
  54137. .UNINDENT
  54138. .sp
  54139. In this case, running \fBsalt\-run state.orchestrate foo\fP would be the
  54140. equivalent of running a \fBstate.sls foo\fP, but it would execute on the master
  54141. only, and would not require a minion daemon to be running on the master.
  54142. .sp
  54143. This is not technically orchestration, but it can be useful in certain use
  54144. cases.
  54145. .SS Limitations
  54146. .sp
  54147. Only one SLS target can be run at a time using this method, while using
  54148. \fBstate.sls\fP allows for multiple SLS files to
  54149. be passed in a comma\-separated list.
  54150. .SH SOLARIS
  54151. .sp
  54152. This section contains details on Solaris specific quirks and workarounds.
  54153. .sp
  54154. \fBNOTE:\fP
  54155. .INDENT 0.0
  54156. .INDENT 3.5
  54157. Solaris refers to both Solaris 10 compatible platforms like Solaris 10, illumos, SmartOS, OmniOS, OpenIndiana,... and Oracle Solaris 11 platforms.
  54158. .UNINDENT
  54159. .UNINDENT
  54160. .SS Solaris\-specific Behaviour
  54161. .sp
  54162. Salt is capable of managing Solaris systems, however due to various differences
  54163. between the operating systems, there are some things you need to keep in mind.
  54164. .sp
  54165. This document will contain any quirks that apply across Salt or limitations in
  54166. some modules.
  54167. .SS FQDN/UQDN
  54168. .sp
  54169. On Solaris platforms the FQDN will not always be properly detected.
  54170. If an IPv6 address is configured pythons \fB\(gasocket.getfqdn()\(ga\fP fails to return
  54171. a FQDN and returns the nodename instead. For a full breakdown see the following
  54172. issue on github: #37027
  54173. .SS Grains
  54174. .sp
  54175. Not all grains are available or some have empty or 0 as value. Mostly grains
  54176. that are depenend on hardware discovery like:
  54177. \- num_gpus
  54178. \- gpus
  54179. .sp
  54180. Also some resolver related grains like:
  54181. \- domain
  54182. \- \fI\%dns:options\fP
  54183. \- \fI\%dns:sortlist\fP
  54184. .SH SALT SSH
  54185. .SS Getting Started
  54186. .sp
  54187. Salt SSH is very easy to use, simply set up a basic roster file of the
  54188. systems to connect to and run \fBsalt\-ssh\fP commands in a similar way as
  54189. standard \fBsalt\fP commands.
  54190. .INDENT 0.0
  54191. .IP \(bu 2
  54192. Salt ssh is considered production ready in version 2014.7.0
  54193. .IP \(bu 2
  54194. Python is required on the remote system (unless using the \fB\-r\fP option to send raw ssh commands)
  54195. .IP \(bu 2
  54196. On many systems, the \fBsalt\-ssh\fP executable will be in its own package, usually named
  54197. \fBsalt\-ssh\fP
  54198. .IP \(bu 2
  54199. The Salt SSH system does not supersede the standard Salt communication
  54200. systems, it simply offers an SSH\-based alternative that does not require
  54201. ZeroMQ and a remote agent. Be aware that since all communication with Salt SSH is
  54202. executed via SSH it is substantially slower than standard Salt with ZeroMQ.
  54203. .IP \(bu 2
  54204. At the moment fileserver operations must be wrapped to ensure that the
  54205. relevant files are delivered with the \fBsalt\-ssh\fP commands.
  54206. The state module is an exception, which compiles the state run on the
  54207. master, and in the process finds all the references to \fBsalt://\fP paths and
  54208. copies those files down in the same tarball as the state run.
  54209. However, needed fileserver wrappers are still under development.
  54210. .UNINDENT
  54211. .SS Salt SSH Roster
  54212. .sp
  54213. The roster system in Salt allows for remote minions to be easily defined.
  54214. .sp
  54215. \fBNOTE:\fP
  54216. .INDENT 0.0
  54217. .INDENT 3.5
  54218. See the SSH roster docs for more details.
  54219. .UNINDENT
  54220. .UNINDENT
  54221. .sp
  54222. Simply create the roster file, the default location is \fI/etc/salt/roster\fP:
  54223. .INDENT 0.0
  54224. .INDENT 3.5
  54225. .sp
  54226. .nf
  54227. .ft C
  54228. web1: 192.168.42.1
  54229. .ft P
  54230. .fi
  54231. .UNINDENT
  54232. .UNINDENT
  54233. .sp
  54234. This is a very basic roster file where a Salt ID is being assigned to an IP
  54235. address. A more elaborate roster can be created:
  54236. .INDENT 0.0
  54237. .INDENT 3.5
  54238. .sp
  54239. .nf
  54240. .ft C
  54241. web1:
  54242. host: 192.168.42.1 # The IP addr or DNS hostname
  54243. user: fred # Remote executions will be executed as user fred
  54244. passwd: foobarbaz # The password to use for login, if omitted, keys are used
  54245. sudo: True # Whether to sudo to root, not enabled by default
  54246. web2:
  54247. host: 192.168.42.2
  54248. .ft P
  54249. .fi
  54250. .UNINDENT
  54251. .UNINDENT
  54252. .sp
  54253. \fBNOTE:\fP
  54254. .INDENT 0.0
  54255. .INDENT 3.5
  54256. sudo works only if NOPASSWD is set for user in /etc/sudoers:
  54257. \fBfred ALL=(ALL) NOPASSWD: ALL\fP
  54258. .UNINDENT
  54259. .UNINDENT
  54260. .SS Deploy ssh key for salt\-ssh
  54261. .sp
  54262. By default, salt\-ssh will generate key pairs for ssh, the default path will be
  54263. \fB/etc/salt/pki/master/ssh/salt\-ssh.rsa\fP\&. The key generation happens when you run
  54264. \fBsalt\-ssh\fP for the first time.
  54265. .sp
  54266. You can use ssh\-copy\-id, (the OpenSSH key deployment tool) to deploy keys to your servers.
  54267. .INDENT 0.0
  54268. .INDENT 3.5
  54269. .sp
  54270. .nf
  54271. .ft C
  54272. ssh\-copy\-id \-i /etc/salt/pki/master/ssh/salt\-ssh.rsa.pub user@server.demo.com
  54273. .ft P
  54274. .fi
  54275. .UNINDENT
  54276. .UNINDENT
  54277. .sp
  54278. One could also create a simple shell script, named salt\-ssh\-copy\-id.sh as follows:
  54279. .INDENT 0.0
  54280. .INDENT 3.5
  54281. .sp
  54282. .nf
  54283. .ft C
  54284. #!/bin/bash
  54285. if [ \-z $1 ]; then
  54286. echo $0 user@host.com
  54287. exit 0
  54288. fi
  54289. ssh\-copy\-id \-i /etc/salt/pki/master/ssh/salt\-ssh.rsa.pub $1
  54290. .ft P
  54291. .fi
  54292. .UNINDENT
  54293. .UNINDENT
  54294. .sp
  54295. \fBNOTE:\fP
  54296. .INDENT 0.0
  54297. .INDENT 3.5
  54298. Be certain to chmod +x salt\-ssh\-copy\-id.sh.
  54299. .UNINDENT
  54300. .UNINDENT
  54301. .INDENT 0.0
  54302. .INDENT 3.5
  54303. .sp
  54304. .nf
  54305. .ft C
  54306. \&./salt\-ssh\-copy\-id.sh user@server1.host.com
  54307. \&./salt\-ssh\-copy\-id.sh user@server2.host.com
  54308. .ft P
  54309. .fi
  54310. .UNINDENT
  54311. .UNINDENT
  54312. .sp
  54313. Once keys are successfully deployed, salt\-ssh can be used to control them.
  54314. .sp
  54315. Alternatively ssh agent forwarding can be used by setting the priv to agent\-forwarding.
  54316. .SS Calling Salt SSH
  54317. .sp
  54318. \fBNOTE:\fP
  54319. .INDENT 0.0
  54320. .INDENT 3.5
  54321. \fBsalt\-ssh\fP on RHEL/CentOS 5
  54322. .sp
  54323. The \fBsalt\-ssh\fP command requires at least python 2.6, which is not
  54324. installed by default on RHEL/CentOS 5. An easy workaround in this
  54325. situation is to use the \fB\-r\fP option to run a raw shell command that
  54326. installs python26:
  54327. .INDENT 0.0
  54328. .INDENT 3.5
  54329. .sp
  54330. .nf
  54331. .ft C
  54332. salt\-ssh centos\-5\-minion \-r \(aqyum \-y install epel\-release ; yum \-y install python26\(aq
  54333. .ft P
  54334. .fi
  54335. .UNINDENT
  54336. .UNINDENT
  54337. .UNINDENT
  54338. .UNINDENT
  54339. .sp
  54340. \fBNOTE:\fP
  54341. .INDENT 0.0
  54342. .INDENT 3.5
  54343. \fBsalt\-ssh\fP on systems with Python 3.x
  54344. .sp
  54345. Salt, before the 2017.7.0 release, does not support Python 3.x which is the
  54346. default on for example the popular 16.04 LTS release of Ubuntu. An easy
  54347. workaround for this scenario is to use the \fB\-r\fP option similar to the
  54348. example above:
  54349. .INDENT 0.0
  54350. .INDENT 3.5
  54351. .sp
  54352. .nf
  54353. .ft C
  54354. salt\-ssh ubuntu\-1604\-minion \-r \(aqapt update ; apt install \-y python\-minimal\(aq
  54355. .ft P
  54356. .fi
  54357. .UNINDENT
  54358. .UNINDENT
  54359. .UNINDENT
  54360. .UNINDENT
  54361. .sp
  54362. The \fBsalt\-ssh\fP command can be easily executed in the same way as a salt
  54363. command:
  54364. .INDENT 0.0
  54365. .INDENT 3.5
  54366. .sp
  54367. .nf
  54368. .ft C
  54369. salt\-ssh \(aq*\(aq test.version
  54370. .ft P
  54371. .fi
  54372. .UNINDENT
  54373. .UNINDENT
  54374. .sp
  54375. Commands with \fBsalt\-ssh\fP follow the same syntax as the \fBsalt\fP command.
  54376. .sp
  54377. The standard salt functions are available! The output is the same as \fBsalt\fP
  54378. and many of the same flags are available. Please see
  54379. \fI\%http://docs.saltstack.com/ref/cli/salt\-ssh.html\fP for all of the available
  54380. options.
  54381. .SS Raw Shell Calls
  54382. .sp
  54383. By default \fBsalt\-ssh\fP runs Salt execution modules on the remote system,
  54384. but \fBsalt\-ssh\fP can also execute raw shell commands:
  54385. .INDENT 0.0
  54386. .INDENT 3.5
  54387. .sp
  54388. .nf
  54389. .ft C
  54390. salt\-ssh \(aq*\(aq \-r \(aqifconfig\(aq
  54391. .ft P
  54392. .fi
  54393. .UNINDENT
  54394. .UNINDENT
  54395. .SS States Via Salt SSH
  54396. .sp
  54397. The Salt State system can also be used with \fBsalt\-ssh\fP\&. The state system
  54398. abstracts the same interface to the user in \fBsalt\-ssh\fP as it does when using
  54399. standard \fBsalt\fP\&. The intent is that Salt Formulas defined for standard
  54400. \fBsalt\fP will work seamlessly with \fBsalt\-ssh\fP and vice\-versa.
  54401. .sp
  54402. The standard Salt States walkthroughs function by simply replacing \fBsalt\fP
  54403. commands with \fBsalt\-ssh\fP\&.
  54404. .SS Targeting with Salt SSH
  54405. .sp
  54406. Due to the fact that the targeting approach differs in salt\-ssh, only glob
  54407. and regex targets are supported as of this writing, the remaining target
  54408. systems still need to be implemented.
  54409. .sp
  54410. \fBNOTE:\fP
  54411. .INDENT 0.0
  54412. .INDENT 3.5
  54413. By default, Grains are settable through \fBsalt\-ssh\fP\&. By
  54414. default, these grains will \fInot\fP be persisted across reboots.
  54415. .sp
  54416. See the "thin_dir" setting in Roster documentation
  54417. for more details.
  54418. .UNINDENT
  54419. .UNINDENT
  54420. .SS Configuring Salt SSH
  54421. .sp
  54422. Salt SSH takes its configuration from a master configuration file. Normally, this
  54423. file is in \fB/etc/salt/master\fP\&. If one wishes to use a customized configuration file,
  54424. the \fB\-c\fP option to Salt SSH facilitates passing in a directory to look inside for a
  54425. configuration file named \fBmaster\fP\&.
  54426. .SS Minion Config
  54427. .sp
  54428. New in version 2015.5.1.
  54429. .sp
  54430. Minion config options can be defined globally using the master configuration
  54431. option \fBssh_minion_opts\fP\&. It can also be defined on a per\-minion basis with
  54432. the \fBminion_opts\fP entry in the roster.
  54433. .SS Running Salt SSH as non\-root user
  54434. .sp
  54435. By default, Salt read all the configuration from /etc/salt/. If you are running
  54436. Salt SSH with a regular user you have to modify some paths or you will get
  54437. "Permission denied" messages. You have to modify two parameters: \fBpki_dir\fP
  54438. and \fBcachedir\fP\&. Those should point to a full path writable for the user.
  54439. .sp
  54440. It\(aqs recommended not to modify /etc/salt for this purpose. Create a private copy
  54441. of /etc/salt for the user and run the command with \fB\-c /new/config/path\fP\&.
  54442. .SS Define CLI Options with Saltfile
  54443. .sp
  54444. If you are commonly passing in CLI options to \fBsalt\-ssh\fP, you can create
  54445. a \fBSaltfile\fP to automatically use these options. This is common if you\(aqre
  54446. managing several different salt projects on the same server.
  54447. .sp
  54448. So you can \fBcd\fP into a directory that has a \fBSaltfile\fP with the following
  54449. YAML contents:
  54450. .INDENT 0.0
  54451. .INDENT 3.5
  54452. .sp
  54453. .nf
  54454. .ft C
  54455. salt\-ssh:
  54456. config_dir: path/to/config/dir
  54457. ssh_log_file: salt\-ssh.log
  54458. ssh_max_procs: 30
  54459. ssh_wipe: True
  54460. .ft P
  54461. .fi
  54462. .UNINDENT
  54463. .UNINDENT
  54464. .sp
  54465. Instead of having to call
  54466. \fBsalt\-ssh \-\-config\-dir=path/to/config/dir \-\-max\-procs=30 \-\-wipe \e* test.version\fP you
  54467. can call \fBsalt\-ssh \e* test.version\fP\&.
  54468. .sp
  54469. Boolean\-style options should be specified in their YAML representation.
  54470. .sp
  54471. \fBNOTE:\fP
  54472. .INDENT 0.0
  54473. .INDENT 3.5
  54474. The option keys specified must match the destination attributes for the
  54475. options specified in the parser
  54476. \fBsalt.utils.parsers.SaltSSHOptionParser\fP\&. For example, in the
  54477. case of the \fB\-\-wipe\fP command line option, its \fBdest\fP is configured to
  54478. be \fBssh_wipe\fP and thus this is what should be configured in the
  54479. \fBSaltfile\fP\&. Using the names of flags for this option, being \fBwipe:
  54480. True\fP or \fBw: True\fP, will not work.
  54481. .UNINDENT
  54482. .UNINDENT
  54483. .sp
  54484. \fBNOTE:\fP
  54485. .INDENT 0.0
  54486. .INDENT 3.5
  54487. For the \fISaltfile\fP to be automatically detected it needs to be named
  54488. \fISaltfile\fP with a capital \fIS\fP and be readable by the user running
  54489. salt\-ssh.
  54490. .UNINDENT
  54491. .UNINDENT
  54492. .sp
  54493. At last you can create \fB~/.salt/Saltfile\fP and \fBsalt\-ssh\fP
  54494. will automatically load it by default.
  54495. .SS Advanced options with salt\-ssh
  54496. .sp
  54497. Salt\(aqs ability to allow users to have custom grains and custom modules
  54498. is also applicable to using salt\-ssh. This is done through first packing
  54499. the custom grains into the thin tarball before it is deployed on the system.
  54500. .sp
  54501. For this to happen, the \fBconfig\fP file must be explicit enough to indicate
  54502. where the custom grains are located on the machine like so:
  54503. .INDENT 0.0
  54504. .INDENT 3.5
  54505. .sp
  54506. .nf
  54507. .ft C
  54508. file_client: local
  54509. file_roots:
  54510. base:
  54511. \- /home/user/.salt
  54512. \- /home/user/.salt/_states
  54513. \- /home/user/.salt/_grains
  54514. module_dirs:
  54515. \- /home/user/.salt
  54516. pillar_roots:
  54517. base:
  54518. \- /home/user/.salt/_pillar
  54519. root_dir: /tmp/.salt\-root
  54520. .ft P
  54521. .fi
  54522. .UNINDENT
  54523. .UNINDENT
  54524. .sp
  54525. It\(aqs better to be explicit rather than implicit in this situation. This will
  54526. allow urls all under \fIsalt://\fP to be resolved such as \fIsalt://_grains/custom_grain.py\fP\&.
  54527. .sp
  54528. One can confirm this action by executing a properly setup salt\-ssh minion with
  54529. \fIsalt\-ssh minion grains.items\fP\&. During this process, a \fIsaltutil.sync_all\fP is
  54530. ran to discover the thin tarball and then consumed. Output similar to this
  54531. indicates a successful sync with custom grains.
  54532. .INDENT 0.0
  54533. .INDENT 3.5
  54534. .sp
  54535. .nf
  54536. .ft C
  54537. local:
  54538. \-\-\-\-\-\-\-\-\-\-
  54539. ...
  54540. executors:
  54541. grains:
  54542. \- grains.custom_grain
  54543. log_handlers:
  54544. ...
  54545. .ft P
  54546. .fi
  54547. .UNINDENT
  54548. .UNINDENT
  54549. .sp
  54550. This is especially important when using a custom \fIfile_roots\fP that differ from
  54551. \fI/etc/salt/\fP\&.
  54552. .sp
  54553. \fBNOTE:\fP
  54554. .INDENT 0.0
  54555. .INDENT 3.5
  54556. Please see \fI\%https://docs.saltstack.com/en/latest/topics/grains/\fP for more
  54557. information on grains and custom grains.
  54558. .UNINDENT
  54559. .UNINDENT
  54560. .SS Debugging salt\-ssh
  54561. .sp
  54562. One common approach for debugging \fBsalt\-ssh\fP is to simply use the tarball that salt
  54563. ships to the remote machine and call \fBsalt\-call\fP directly.
  54564. .sp
  54565. To determine the location of \fBsalt\-call\fP, simply run \fBsalt\-ssh\fP with the \fB\-ltrace\fP
  54566. flag and look for a line containing the string, \fBSALT_ARGV\fP\&. This contains the \fBsalt\-call\fP
  54567. command that \fBsalt\-ssh\fP attempted to execute.
  54568. .sp
  54569. It is recommended that one modify this command a bit by removing the \fB\-l quiet\fP,
  54570. \fB\-\-metadata\fP and \fB\-\-output json\fP to get a better idea of what\(aqs going on the target system.
  54571. .SS Salt Rosters
  54572. .sp
  54573. Salt rosters are pluggable systems added in Salt 0.17.0 to facilitate the
  54574. \fBsalt\-ssh\fP system.
  54575. The roster system was created because \fBsalt\-ssh\fP needs a means to
  54576. identify which systems need to be targeted for execution.
  54577. .sp
  54578. \fBSEE ALSO:\fP
  54579. .INDENT 0.0
  54580. .INDENT 3.5
  54581. all\-salt.roster
  54582. .UNINDENT
  54583. .UNINDENT
  54584. .sp
  54585. \fBNOTE:\fP
  54586. .INDENT 0.0
  54587. .INDENT 3.5
  54588. The Roster System is not needed or used in standard Salt because the
  54589. master does not need to be initially aware of target systems, since the
  54590. Salt Minion checks itself into the master.
  54591. .UNINDENT
  54592. .UNINDENT
  54593. .sp
  54594. Since the roster system is pluggable, it can be easily augmented to attach to
  54595. any existing systems to gather information about what servers are presently
  54596. available and should be attached to by \fBsalt\-ssh\fP\&. By default the roster
  54597. file is located at /etc/salt/roster.
  54598. .SS How Rosters Work
  54599. .sp
  54600. The roster system compiles a data structure internally referred to as
  54601. \fBtargets\fP\&. The \fBtargets\fP is a list of target systems and attributes about how
  54602. to connect to said systems. The only requirement for a roster module in Salt
  54603. is to return the \fBtargets\fP data structure.
  54604. .SS Targets Data
  54605. .sp
  54606. The information which can be stored in a roster \fBtarget\fP is the following:
  54607. .INDENT 0.0
  54608. .INDENT 3.5
  54609. .sp
  54610. .nf
  54611. .ft C
  54612. <Salt ID>: # The id to reference the target system with
  54613. host: # The IP address or DNS name of the remote host
  54614. user: # The user to log in as
  54615. passwd: # The password to log in with
  54616. # Optional parameters
  54617. port: # The target system\(aqs ssh port number
  54618. sudo: # Boolean to run command via sudo
  54619. sudo_user: # Str: Set this to execute Salt as a sudo user other than root.
  54620. # This user must be in the same system group as the remote user
  54621. # that is used to login and is specified above. Alternatively,
  54622. # the user must be a super\-user.
  54623. tty: # Boolean: Set this option to True if sudo is also set to
  54624. # True and requiretty is also set on the target system
  54625. priv: # File path to ssh private key, defaults to salt\-ssh.rsa
  54626. # The priv can also be set to agent\-forwarding to not specify
  54627. # a key, but use ssh agent forwarding
  54628. priv_passwd: # Passphrase for ssh private key
  54629. timeout: # Number of seconds to wait for response when establishing
  54630. # an SSH connection
  54631. minion_opts: # Dictionary of minion opts
  54632. thin_dir: # The target system\(aqs storage directory for Salt
  54633. # components. Defaults to /tmp/salt\-<hash>.
  54634. cmd_umask: # umask to enforce for the salt\-call command. Should be in
  54635. # octal (so for 0o077 in YAML you would do 0077, or 63)
  54636. ssh_pre_flight: # Path to a script that will run before all other salt\-ssh
  54637. # commands. Will only run the first time when the thin dir
  54638. # does not exist, unless \-\-pre\-flight is passed to salt\-ssh
  54639. # command or ssh_run_pre_flight is set to true in the config
  54640. # Added in Sodium Release.
  54641. set_path: # Set the path environment variable, to ensure the expected python
  54642. # binary is in the salt\-ssh path, when running the command.
  54643. # Example: \(aq$PATH:/usr/local/bin/\(aq. Added in Sodium Release.
  54644. .ft P
  54645. .fi
  54646. .UNINDENT
  54647. .UNINDENT
  54648. .SS ssh_pre_flight
  54649. .sp
  54650. A Salt\-SSH roster option \fIssh_pre_flight\fP was added in the Sodium release. This enables
  54651. you to run a script before Salt\-SSH tries to run any commands. You can set this option
  54652. in the roster for a specific minion or use the \fIroster_defaults\fP to set it for all minions.
  54653. This script will only run if the thin dir is not currently on the minion. This means it will
  54654. only run on the first run of salt\-ssh or if you have recently wiped out your thin dir. If
  54655. you want to intentionally run the script again you have a couple of options:
  54656. .INDENT 0.0
  54657. .IP \(bu 2
  54658. Wipe out your thin dir by using the \-w salt\-ssh arg.
  54659. .IP \(bu 2
  54660. Set ssh_run_pre_flight to True in the config
  54661. .IP \(bu 2
  54662. Run salt\-ssh with the \-\-pre\-flight arg.
  54663. .UNINDENT
  54664. .SS Target Defaults
  54665. .sp
  54666. The \fIroster_defaults\fP dictionary in the master config is used to set the
  54667. default login variables for minions in the roster so that the same arguments do
  54668. not need to be passed with commandline arguments.
  54669. .INDENT 0.0
  54670. .INDENT 3.5
  54671. .sp
  54672. .nf
  54673. .ft C
  54674. roster_defaults:
  54675. user: daniel
  54676. sudo: True
  54677. priv: /root/.ssh/id_rsa
  54678. tty: True
  54679. .ft P
  54680. .fi
  54681. .UNINDENT
  54682. .UNINDENT
  54683. .SS thin_dir
  54684. .sp
  54685. Salt needs to upload a standalone environment to the target system, and this
  54686. defaults to /tmp/salt\-<hash>. This directory will be cleaned up per normal
  54687. systems operation.
  54688. .sp
  54689. If you need a persistent Salt environment, for instance to set persistent grains,
  54690. this value will need to be changed.
  54691. .SS SSH Ext Alternatives
  54692. .sp
  54693. In the 2019.2.0 release the \fBssh_ext_alternatives\fP feature was added.
  54694. This allows salt\-ssh to work across different python versions. You will
  54695. need to ensure you have the following:
  54696. .INDENT 0.0
  54697. .INDENT 3.5
  54698. .INDENT 0.0
  54699. .IP \(bu 2
  54700. Salt is installed, with all required dependnecies for both Python2 and Python3
  54701. .IP \(bu 2
  54702. Everything needs to be importable from the respective Python environment.
  54703. .UNINDENT
  54704. .UNINDENT
  54705. .UNINDENT
  54706. .sp
  54707. To enable using this feature you will need to edit the master configuration similar
  54708. to below:
  54709. .INDENT 0.0
  54710. .INDENT 3.5
  54711. .sp
  54712. .nf
  54713. .ft C
  54714. ssh_ext_alternatives:
  54715. 2019.2: # Namespace, can be anything.
  54716. py\-version: [2, 7] # Constraint to specific interpreter version
  54717. path: /opt/2019.2/salt # Main Salt installation directory.
  54718. dependencies: # List of dependencies and their installation paths
  54719. jinja2: /opt/jinja2
  54720. yaml: /opt/yaml
  54721. tornado: /opt/tornado
  54722. msgpack: /opt/msgpack
  54723. certifi: /opt/certifi
  54724. singledispatch: /opt/singledispatch.py
  54725. singledispatch_helpers: /opt/singledispatch_helpers.py
  54726. markupsafe: /opt/markupsafe
  54727. backports_abc: /opt/backports_abc.py
  54728. .ft P
  54729. .fi
  54730. .UNINDENT
  54731. .UNINDENT
  54732. .SS auto_detect
  54733. .sp
  54734. In the Sodium release the \fBauto_detect\fP feature was added for \fBssh_ext_alternatives\fP\&.
  54735. This allows salt\-ssh to automatically detect the path to all of your dependencies and
  54736. does not require you to define them under \fBdependencies\fP\&.
  54737. .INDENT 0.0
  54738. .INDENT 3.5
  54739. .sp
  54740. .nf
  54741. .ft C
  54742. ssh_ext_alternatives:
  54743. 2019.2: # Namespace, can be anything.
  54744. py\-version: [2, 7] # Constraint to specific interpreter version
  54745. path: /opt/2019.2/salt # Main Salt installation directory.
  54746. auto_detect: True # Auto detect dependencies
  54747. py_bin: /usr/bin/python2.7 # Python binary path used to auto detect dependencies
  54748. .ft P
  54749. .fi
  54750. .UNINDENT
  54751. .UNINDENT
  54752. .sp
  54753. If \fBpy_bin\fP is not set alongside \fBauto_detect\fP, it will attempt to auto detect
  54754. the dependnecies using the major version set in \fBpy\-version\fP\&. For example if you
  54755. have \fB[2, 7]\fP set as your \fBpy\-version\fP, it will attempt to use the binary \fBpython2\fP\&.
  54756. .sp
  54757. You can also use \fBauto_detect\fP and \fBdependencies\fP together.
  54758. .INDENT 0.0
  54759. .INDENT 3.5
  54760. .sp
  54761. .nf
  54762. .ft C
  54763. ssh_ext_alternatives:
  54764. 2019.2: # Namespace, can be anything.
  54765. py\-version: [2, 7] # Constraint to specific interpreter version
  54766. path: /opt/2019.2/salt # Main Salt installation directory.
  54767. auto_detect: True # Auto detect dependencies
  54768. py_bin: /usr/bin/python2.7 # Python binary path to auto detect dependencies
  54769. dependencies: # List of dependencies and their installation paths
  54770. jinja2: /opt/jinja2
  54771. .ft P
  54772. .fi
  54773. .UNINDENT
  54774. .UNINDENT
  54775. .sp
  54776. If a dependency is defined in the \fBdependecies\fP list \fBssh_ext_alternatives\fP will use
  54777. this dependency, instead of the path that \fBauto_detect\fP finds. For example, if you define
  54778. \fB/opt/jinja2\fP under your \fBdependencies\fP for jinja2, it will not try to autodetect the
  54779. file path to the jinja2 module, and will favor \fB/opt/jinja2\fP\&.
  54780. .SS Different Python Versions
  54781. .sp
  54782. The Sodium release removed python 2 support in Salt. Even though this python 2 support
  54783. is being dropped we have provided multiple ways to work around this with Salt\-SSH. You
  54784. can use the following options:
  54785. .INDENT 0.0
  54786. .INDENT 3.5
  54787. .INDENT 0.0
  54788. .IP \(bu 2
  54789. ssh_pre_flight
  54790. .IP \(bu 2
  54791. SSH ext alternatives
  54792. .UNINDENT
  54793. .UNINDENT
  54794. .UNINDENT
  54795. .SH THORIUM COMPLEX REACTOR
  54796. .sp
  54797. The original Salt Reactor is based on the idea of listening for a specific
  54798. event and then reacting to it. This model comes with many logical limitations,
  54799. for instance it is very difficult (and hacky) to fire a reaction based on
  54800. aggregate data or based on multiple events.
  54801. .sp
  54802. The Thorium reactor is intended to alleviate this problem in a very elegant way.
  54803. Instead of using extensive jinja routines or complex python sls files the
  54804. aggregation of data and the determination of what should run becomes isolated
  54805. to the sls data logic, makes the definitions much cleaner.
  54806. .SS Starting the Thorium Engine
  54807. .sp
  54808. To enable the thorium engine add the following configuration to the engines
  54809. section of your Salt Master or Minion configuration file and restart the daemon:
  54810. .INDENT 0.0
  54811. .INDENT 3.5
  54812. .sp
  54813. .nf
  54814. .ft C
  54815. engines:
  54816. \- thorium: {}
  54817. .ft P
  54818. .fi
  54819. .UNINDENT
  54820. .UNINDENT
  54821. .SS Thorium Modules
  54822. .sp
  54823. Because of its specialized nature, Thorium uses its own set of modules. However,
  54824. many of these modules are designed to wrap the more commonly\-used Salt
  54825. subsystems. These modules are:
  54826. .INDENT 0.0
  54827. .IP \(bu 2
  54828. local: Execution modules
  54829. .IP \(bu 2
  54830. runner: Runner modules
  54831. .IP \(bu 2
  54832. wheel: Wheel modules
  54833. .UNINDENT
  54834. .sp
  54835. There are other modules that ship with Thorium as well. Some of these will be
  54836. highlighted later in this document.
  54837. .SS Writing Thorium Formulas
  54838. .sp
  54839. Like some other Salt subsystems, Thorium uses its own directory structure. The
  54840. default location for this structure is \fB/srv/thorium/\fP, but it can be changed
  54841. using the \fBthorium_roots\fP setting in the \fBmaster\fP configuration file.
  54842. .sp
  54843. This would explicitly set the roots to the default:
  54844. .INDENT 0.0
  54845. .INDENT 3.5
  54846. .sp
  54847. .nf
  54848. .ft C
  54849. thorium_roots:
  54850. base:
  54851. \- /srv/thorium
  54852. .ft P
  54853. .fi
  54854. .UNINDENT
  54855. .UNINDENT
  54856. .sp
  54857. Example \fBthorium_roots\fP configuration:
  54858. .INDENT 0.0
  54859. .INDENT 3.5
  54860. .sp
  54861. .nf
  54862. .ft C
  54863. thorium_roots:
  54864. base:
  54865. \- /etc/salt/thorium
  54866. .ft P
  54867. .fi
  54868. .UNINDENT
  54869. .UNINDENT
  54870. .sp
  54871. It is also possible to use gitfs with Thorium,
  54872. using the \fBthoriumenv\fP or \fBthorium_top\fP settings.
  54873. .sp
  54874. Example using \fBthorium_top\fP:
  54875. .INDENT 0.0
  54876. .INDENT 3.5
  54877. .sp
  54878. .nf
  54879. .ft C
  54880. thorium_top: salt://thorium/top.sls
  54881. gitfs_provider: pygit2
  54882. gitfs_remotes:
  54883. \- git@github.com:user/repo.git:
  54884. \- name: salt\-backend
  54885. \- root: salt
  54886. \- base: master
  54887. \- git@github.com:user/repo.git:
  54888. \- name: thorium\-backend
  54889. \- root: thorium
  54890. \- base: master
  54891. \- mountpoint: salt://thorium
  54892. .ft P
  54893. .fi
  54894. .UNINDENT
  54895. .UNINDENT
  54896. .sp
  54897. \fBNOTE:\fP
  54898. .INDENT 0.0
  54899. .INDENT 3.5
  54900. When using this method don\(aqt forget to prepend the mountpoint to files served by this repo,
  54901. for example \fBtop.sls\fP:
  54902. .INDENT 0.0
  54903. .INDENT 3.5
  54904. .sp
  54905. .nf
  54906. .ft C
  54907. base:
  54908. \(aq*\(aq:
  54909. \- thorium.key_clean
  54910. .ft P
  54911. .fi
  54912. .UNINDENT
  54913. .UNINDENT
  54914. .UNINDENT
  54915. .UNINDENT
  54916. .sp
  54917. Example using \fBthoriumenv\fP:
  54918. .INDENT 0.0
  54919. .INDENT 3.5
  54920. .sp
  54921. .nf
  54922. .ft C
  54923. thoriumenv: thorium
  54924. gitfs_provider: pygit2
  54925. gitfs_remotes:
  54926. \- git@github.com:user/repo.git:
  54927. \- name: salt\-backend
  54928. \- root: salt
  54929. \- base: master
  54930. \- git@github.com:user/repo.git:
  54931. \- name: thorium\-backend
  54932. \- root: thorium
  54933. \- saltenv:
  54934. \- thorium:
  54935. \- ref: master
  54936. .ft P
  54937. .fi
  54938. .UNINDENT
  54939. .UNINDENT
  54940. .sp
  54941. \fBNOTE:\fP
  54942. .INDENT 0.0
  54943. .INDENT 3.5
  54944. When using this method all state will run under the defined environment,
  54945. for example \fBtop.sls\fP:
  54946. .INDENT 0.0
  54947. .INDENT 3.5
  54948. .sp
  54949. .nf
  54950. .ft C
  54951. thorium:
  54952. \(aq*\(aq:
  54953. \- key_clean
  54954. .ft P
  54955. .fi
  54956. .UNINDENT
  54957. .UNINDENT
  54958. .UNINDENT
  54959. .UNINDENT
  54960. .SS The Thorium top.sls File
  54961. .sp
  54962. Thorium uses its own \fBtop.sls\fP file, which follows the same convention as is
  54963. found in \fB/srv/salt/\fP:
  54964. .INDENT 0.0
  54965. .INDENT 3.5
  54966. .sp
  54967. .nf
  54968. .ft C
  54969. <srv>:
  54970. <target>:
  54971. \- <formula 1>
  54972. \- <formula 2>
  54973. \- <etc...>
  54974. .ft P
  54975. .fi
  54976. .UNINDENT
  54977. .UNINDENT
  54978. .sp
  54979. For instance, a \fBtop.sls\fP using a standard \fBbase\fP environment and a single
  54980. Thorium formula called \fBkey_clean\fP, would look like:
  54981. .INDENT 0.0
  54982. .INDENT 3.5
  54983. .sp
  54984. .nf
  54985. .ft C
  54986. base:
  54987. \(aq*\(aq:
  54988. \- key_clean
  54989. .ft P
  54990. .fi
  54991. .UNINDENT
  54992. .UNINDENT
  54993. .sp
  54994. Take note that the target in a Thorium \fBtop.sls\fP is not used; it only exists
  54995. to follow the same convention as other \fBtop.sls\fP files. Leave this set to
  54996. \fB\(aq*\(aq\fP in your own Thorium \fBtop.sls\fP\&.
  54997. .SS Thorium Formula Files
  54998. .sp
  54999. Thorium SLS files are processed by the same state compiler that processes Salt
  55000. state files. This means that features like requisites, templates, and so on are
  55001. available.
  55002. .sp
  55003. Let\(aqs take a look at an example, and then discuss each component of it. This
  55004. formula uses Thorium to detect when a minion has disappeared and then deletes
  55005. the key from the master when the minion has been gone for 60 seconds:
  55006. .INDENT 0.0
  55007. .INDENT 3.5
  55008. .sp
  55009. .nf
  55010. .ft C
  55011. statreg:
  55012. status.reg
  55013. keydel:
  55014. key.timeout:
  55015. \- delete: 60
  55016. \- require:
  55017. \- status: statreg
  55018. .ft P
  55019. .fi
  55020. .UNINDENT
  55021. .UNINDENT
  55022. .sp
  55023. There are two stanzas in this formula, whose IDs are \fBstatreg\fP and
  55024. \fBkeydel\fP\&. The first stanza, \fBstatreg\fP, tells Thorium to keep track of
  55025. minion status beacons in its \fIregister\fP\&. We\(aqll talk more about the register in
  55026. a moment.
  55027. .sp
  55028. The second stanza, \fBkeydel\fP, is the one that does the real work. It uses the
  55029. \fBkey\fP module to apply an expiration (using the \fBtimeout\fP function) to a
  55030. minion. Because \fBdelete\fP is set to \fB60\fP, this is a 60 second expiration. If
  55031. a minion does not check in at least once every 60 seconds, its key will be
  55032. deleted from the master. This particular function also allows you to use
  55033. \fBreject\fP instead of \fBdelete\fP, allowing for a minion to be rejected instead
  55034. of deleted if it does not check in within the specified time period.
  55035. .sp
  55036. There is also a \fBrequire\fP requisite in this stanza. It states that the
  55037. \fBkey.timeout\fP function will not be called unless the \fBstatus.reg\fP function
  55038. in the \fBstatreg\fP codeblock has been successfully called first.
  55039. .SS Thorium Links to Beacons
  55040. .sp
  55041. The above example was added in the 2016.11.0 release of Salt and makes use of the
  55042. \fBstatus\fP beacon also added in the 2016.11.0 release. For the above Thorium state
  55043. to function properly you will also need to enable the \fBstatus\fP beacon in the
  55044. \fBminion\fP configuration file:
  55045. .INDENT 0.0
  55046. .INDENT 3.5
  55047. .sp
  55048. .nf
  55049. .ft C
  55050. beacons:
  55051. status:
  55052. \- interval: 10
  55053. .ft P
  55054. .fi
  55055. .UNINDENT
  55056. .UNINDENT
  55057. .sp
  55058. This will cause the minion to use the status beacon to check in with the master
  55059. every 10 seconds.
  55060. .SS The Thorium Register
  55061. .sp
  55062. In order to keep track of information, Thorium uses an in\-memory register (or
  55063. rather, collection of registers) on the master. These registers are only
  55064. populated when told to by a formula, and they normally will be erased when the
  55065. master is restarted. It is possible to persist the registers to disk, but we\(aqll
  55066. get to that in a moment.
  55067. .sp
  55068. The example above uses \fBstatus.reg\fP to populate a register for you, which is
  55069. automatically used by the \fBkey.timeout\fP function. However, you can set your
  55070. own register values as well, using the \fBreg\fP module.
  55071. .sp
  55072. Because Thorium watches the event bus, the \fBreg\fP module is designed to look
  55073. for user\-specified tags, and then extract data from the payload of events that
  55074. match those tags. For instance, the following stanza will look for an event
  55075. with a tag of \fBmy/custom/event\fP:
  55076. .INDENT 0.0
  55077. .INDENT 3.5
  55078. .sp
  55079. .nf
  55080. .ft C
  55081. foo:
  55082. reg.list:
  55083. \- add: bar
  55084. \- match: my/custom/event
  55085. .ft P
  55086. .fi
  55087. .UNINDENT
  55088. .UNINDENT
  55089. .sp
  55090. When such an event is found, the data found in the payload dictionary key of
  55091. \fBbar\fP will be stored in a register called \fBfoo\fP\&. This register will store
  55092. that data in a \fBlist\fP\&. You may also use \fBreg.set\fP to add data to a \fBset()\fP
  55093. instead.
  55094. .sp
  55095. If you would like to see a copy of the register as it is stored in memory, you
  55096. can use the \fBfile.save\fP function:
  55097. .INDENT 0.0
  55098. .INDENT 3.5
  55099. .sp
  55100. .nf
  55101. .ft C
  55102. myreg:
  55103. file.save
  55104. .ft P
  55105. .fi
  55106. .UNINDENT
  55107. .UNINDENT
  55108. .sp
  55109. In this case, each time the register is updated, a copy will be saved in JSON
  55110. format at \fB/var/cache/salt/master/thorium/saves/myreg\fP\&. If you would like to
  55111. see when particular events are added to a list\-type register, you may add a
  55112. \fBstamp\fP option to \fBreg.list\fP (but not \fBreg.set\fP). With the above two
  55113. stanzas put together, this would look like:
  55114. .INDENT 0.0
  55115. .INDENT 3.5
  55116. .sp
  55117. .nf
  55118. .ft C
  55119. foo:
  55120. reg.list:
  55121. \- add: bar
  55122. \- match: my/custom/event
  55123. \- stamp: True
  55124. myreg:
  55125. file.save
  55126. .ft P
  55127. .fi
  55128. .UNINDENT
  55129. .UNINDENT
  55130. .sp
  55131. If you would like to only keep a certain number of the most recent register
  55132. entries, you may also add a \fBprune\fP option to \fBreg.list\fP (but not
  55133. \fBreg.set\fP):
  55134. .INDENT 0.0
  55135. .INDENT 3.5
  55136. .sp
  55137. .nf
  55138. .ft C
  55139. foo:
  55140. reg.list:
  55141. \- add: bar
  55142. \- match: my/custom/event
  55143. \- stamp: True
  55144. \- prune: 50
  55145. .ft P
  55146. .fi
  55147. .UNINDENT
  55148. .UNINDENT
  55149. .sp
  55150. This example will only keep the 50 most recent entries in the \fBfoo\fP register.
  55151. .SS Using Register Data
  55152. .sp
  55153. Putting data in a register is useless if you don\(aqt do anything with it. The
  55154. \fBcheck\fP module is designed to examine register data and determine whether it
  55155. matches the given parameters. For instance, the \fBcheck.contains\fP function
  55156. will return \fBTrue\fP if the given \fBvalue\fP is contained in the specified
  55157. register:
  55158. .INDENT 0.0
  55159. .INDENT 3.5
  55160. .sp
  55161. .nf
  55162. .ft C
  55163. foo:
  55164. reg.list:
  55165. \- add: bar
  55166. \- match: my/custom/event
  55167. \- stamp: True
  55168. \- prune: 50
  55169. check.contains:
  55170. \- value: somedata
  55171. .ft P
  55172. .fi
  55173. .UNINDENT
  55174. .UNINDENT
  55175. .sp
  55176. Used with a \fBrequire\fP requisite, we can call one of the wrapper modules and
  55177. perform an operation. For example:
  55178. .INDENT 0.0
  55179. .INDENT 3.5
  55180. .sp
  55181. .nf
  55182. .ft C
  55183. shell_test:
  55184. local.cmd:
  55185. \- tgt: dufresne
  55186. \- func: cmd.run
  55187. \- arg:
  55188. \- echo \(aqthorium success\(aq > /tmp/thorium.txt
  55189. \- require:
  55190. \- check: foo
  55191. .ft P
  55192. .fi
  55193. .UNINDENT
  55194. .UNINDENT
  55195. .sp
  55196. This stanza will only run if the \fBcheck.contains\fP function under the \fBfoo\fP
  55197. ID returns true (meaning the match was found).
  55198. .sp
  55199. There are a number of other functions in the \fBcheck\fP module which use
  55200. different means of comparing values:
  55201. .INDENT 0.0
  55202. .IP \(bu 2
  55203. \fBgt\fP: Check whether the register entry is greater than the given value
  55204. .IP \(bu 2
  55205. \fBgte\fP: Check whether the register entry is greater than or equal to the given value
  55206. .IP \(bu 2
  55207. \fBlt\fP: Check whether the register entry is less than the given value
  55208. .IP \(bu 2
  55209. \fBlte\fP: Check whether the register entry is less than or equal to the given value
  55210. .IP \(bu 2
  55211. \fBeq\fP: Check whether the register entry is equal to the given value
  55212. .IP \(bu 2
  55213. \fBne\fP: Check whether the register entry is not equal to the given value
  55214. .UNINDENT
  55215. .sp
  55216. There is also a function called \fBcheck.event\fP which does not examine the
  55217. register. Instead, it looks directly at an event as it is coming in on the
  55218. event bus, and returns \fBTrue\fP if that event\(aqs tag matches. For example:
  55219. .INDENT 0.0
  55220. .INDENT 3.5
  55221. .sp
  55222. .nf
  55223. .ft C
  55224. salt/foo/*/bar:
  55225. check.event
  55226. run_remote_ex:
  55227. local.cmd:
  55228. \- tgt: \(aq*\(aq
  55229. \- func: test.version
  55230. \- require:
  55231. \- check: salt/foo/*/bar
  55232. .ft P
  55233. .fi
  55234. .UNINDENT
  55235. .UNINDENT
  55236. .sp
  55237. This formula will look for an event whose tag is \fBsalt/foo/<anything>/bar\fP and
  55238. if it comes in, issue a \fBtest.version\fP to all minions.
  55239. .SS Register Persistence
  55240. .sp
  55241. It is possible to persist the register data to disk when a master is stopped
  55242. gracefully, and reload it from disk when the master starts up again. This
  55243. functionality is provided by the returner subsystem, and is enabled whenever
  55244. any returner containing a \fBload_reg\fP and a \fBsave_reg\fP function is used.
  55245. .SH SALT CLOUD
  55246. .SS Configuration
  55247. .sp
  55248. Salt Cloud provides a powerful interface to interact with cloud hosts. This
  55249. interface is tightly integrated with Salt, and new virtual machines
  55250. are automatically connected to your Salt master after creation.
  55251. .sp
  55252. Since Salt Cloud is designed to be an automated system, most configuration
  55253. is done using the following YAML configuration files:
  55254. .INDENT 0.0
  55255. .IP \(bu 2
  55256. \fB/etc/salt/cloud\fP: The main configuration file, contains global settings
  55257. that apply to all cloud hosts. See Salt Cloud Configuration\&.
  55258. .IP \(bu 2
  55259. \fB/etc/salt/cloud.providers.d/*.conf\fP: Contains settings that configure
  55260. a specific cloud host, such as credentials, region settings, and so on. Since
  55261. configuration varies significantly between each cloud host, a separate file
  55262. should be created for each cloud host. In Salt Cloud, a provider is
  55263. synonymous with a cloud host (Amazon EC2, Google Compute Engine, Rackspace,
  55264. and so on). See \fI\%Provider Specifics\fP\&.
  55265. .IP \(bu 2
  55266. \fB/etc/salt/cloud.profiles.d/*.conf\fP: Contains settings that define
  55267. a specific VM type. A profile defines the systems specs and image, and any
  55268. other settings that are specific to this VM type. Each specific VM type is
  55269. called a profile, and multiple profiles can be defined in a profile file.
  55270. Each profile references a parent provider that defines the cloud host in
  55271. which the VM is created (the provider settings are in the provider
  55272. configuration explained above). Based on your needs, you might define
  55273. different profiles for web servers, database servers, and so on. See VM
  55274. Profiles\&.
  55275. .UNINDENT
  55276. .SS Configuration Inheritance
  55277. .sp
  55278. Configuration settings are inherited in order from the cloud config =>
  55279. providers => profile.
  55280. [image]
  55281. .sp
  55282. For example, if you wanted to use the same image for
  55283. all virtual machines for a specific provider, the image name could be placed in
  55284. the provider file. This value is inherited by all profiles that use that
  55285. provider, but is overridden if a image name is defined in the profile.
  55286. .sp
  55287. Most configuration settings can be defined in any file, the main difference
  55288. being how that setting is inherited.
  55289. .SS QuickStart
  55290. .sp
  55291. The Salt Cloud Quickstart walks you through defining
  55292. a provider, a VM profile, and shows you how to create virtual machines using Salt Cloud.
  55293. .sp
  55294. Note that if you installed Salt via \fI\%Salt Bootstrap\fP, it may not have
  55295. automatically installed salt\-cloud for you. Use your distribution\(aqs package
  55296. manager to install the \fBsalt\-cloud\fP package from the same repo that you
  55297. used to install Salt. These repos will automatically be setup by Salt Bootstrap.
  55298. .sp
  55299. Alternatively, the \fB\-L\fP option can be passed to the \fI\%Salt Bootstrap\fP script when
  55300. installing Salt. The \fB\-L\fP option will install \fBsalt\-cloud\fP and the required
  55301. \fBlibcloud\fP package.
  55302. .SS Using Salt Cloud
  55303. .SS \fBsalt\-cloud\fP
  55304. .sp
  55305. Provision virtual machines in the cloud with Salt
  55306. .SS Synopsis
  55307. .INDENT 0.0
  55308. .INDENT 3.5
  55309. .sp
  55310. .nf
  55311. .ft C
  55312. salt\-cloud \-m /etc/salt/cloud.map
  55313. salt\-cloud \-m /etc/salt/cloud.map NAME
  55314. salt\-cloud \-m /etc/salt/cloud.map NAME1 NAME2
  55315. salt\-cloud \-p PROFILE NAME
  55316. salt\-cloud \-p PROFILE NAME1 NAME2 NAME3 NAME4 NAME5 NAME6
  55317. .ft P
  55318. .fi
  55319. .UNINDENT
  55320. .UNINDENT
  55321. .SS Description
  55322. .sp
  55323. Salt Cloud is the system used to provision virtual machines on various public
  55324. clouds via a cleanly controlled profile and mapping system.
  55325. .SS Options
  55326. .INDENT 0.0
  55327. .TP
  55328. .B \-\-version
  55329. Print the version of Salt that is running.
  55330. .UNINDENT
  55331. .INDENT 0.0
  55332. .TP
  55333. .B \-\-versions\-report
  55334. Show program\(aqs dependencies and version number, and then exit
  55335. .UNINDENT
  55336. .INDENT 0.0
  55337. .TP
  55338. .B \-h, \-\-help
  55339. Show the help message and exit
  55340. .UNINDENT
  55341. .INDENT 0.0
  55342. .TP
  55343. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  55344. The location of the Salt configuration directory. This directory contains
  55345. the configuration files for Salt master and minions. The default location
  55346. on most systems is \fB/etc/salt\fP\&.
  55347. .UNINDENT
  55348. .SS Execution Options
  55349. .INDENT 0.0
  55350. .TP
  55351. .B \-L LOCATION, \-\-location=LOCATION
  55352. Specify which region to connect to.
  55353. .UNINDENT
  55354. .INDENT 0.0
  55355. .TP
  55356. .B \-a ACTION, \-\-action=ACTION
  55357. Perform an action that may be specific to this cloud provider. This
  55358. argument requires one or more instance names to be specified.
  55359. .UNINDENT
  55360. .INDENT 0.0
  55361. .TP
  55362. .B \-f <FUNC\-NAME> <PROVIDER>, \-\-function=<FUNC\-NAME> <PROVIDER>
  55363. Perform an function that may be specific to this cloud provider, that does
  55364. not apply to an instance. This argument requires a provider to be specified
  55365. (i.e.: nova).
  55366. .UNINDENT
  55367. .INDENT 0.0
  55368. .TP
  55369. .B \-p PROFILE, \-\-profile=PROFILE
  55370. Select a single profile to build the named cloud VMs from. The profile must
  55371. be defined in the specified profiles file.
  55372. .UNINDENT
  55373. .INDENT 0.0
  55374. .TP
  55375. .B \-m MAP, \-\-map=MAP
  55376. Specify a map file to use. If used without any other options, this option
  55377. will ensure that all of the mapped VMs are created. If the named VM already
  55378. exists then it will be skipped.
  55379. .UNINDENT
  55380. .INDENT 0.0
  55381. .TP
  55382. .B \-H, \-\-hard
  55383. When specifying a map file, the default behavior is to ensure that all of
  55384. the VMs specified in the map file are created. If the \-\-hard option is
  55385. set, then any VMs that exist on configured cloud providers that are
  55386. not specified in the map file will be destroyed. Be advised that this can
  55387. be a destructive operation and should be used with care.
  55388. .UNINDENT
  55389. .INDENT 0.0
  55390. .TP
  55391. .B \-d, \-\-destroy
  55392. Pass in the name(s) of VMs to destroy, salt\-cloud will search the
  55393. configured cloud providers for the specified names and destroy the
  55394. VMs. Be advised that this is a destructive operation and should be used
  55395. with care. Can be used in conjunction with the \-m option to specify a map
  55396. of VMs to be deleted.
  55397. .UNINDENT
  55398. .INDENT 0.0
  55399. .TP
  55400. .B \-P, \-\-parallel
  55401. Normally when building many cloud VMs they are executed serially. The \-P
  55402. option will run each cloud vm build in a separate process allowing for
  55403. large groups of VMs to be build at once.
  55404. .sp
  55405. Be advised that some cloud provider\(aqs systems don\(aqt seem to be well suited
  55406. for this influx of vm creation. When creating large groups of VMs watch the
  55407. cloud provider carefully.
  55408. .UNINDENT
  55409. .INDENT 0.0
  55410. .TP
  55411. .B \-u, \-\-update\-bootstrap
  55412. Update salt\-bootstrap to the latest stable bootstrap release.
  55413. .UNINDENT
  55414. .INDENT 0.0
  55415. .TP
  55416. .B \-y, \-\-assume\-yes
  55417. Default yes in answer to all confirmation questions.
  55418. .UNINDENT
  55419. .INDENT 0.0
  55420. .TP
  55421. .B \-k, \-\-keep\-tmp
  55422. Do not remove files from /tmp/ after deploy.sh finishes.
  55423. .UNINDENT
  55424. .INDENT 0.0
  55425. .TP
  55426. .B \-\-show\-deploy\-args
  55427. Include the options used to deploy the minion in the data returned.
  55428. .UNINDENT
  55429. .INDENT 0.0
  55430. .TP
  55431. .B \-\-script\-args=SCRIPT_ARGS
  55432. Script arguments to be fed to the bootstrap script when deploying the VM.
  55433. .UNINDENT
  55434. .SS Query Options
  55435. .INDENT 0.0
  55436. .TP
  55437. .B \-Q, \-\-query
  55438. Execute a query and return some information about the nodes running on
  55439. configured cloud providers
  55440. .UNINDENT
  55441. .INDENT 0.0
  55442. .TP
  55443. .B \-F, \-\-full\-query
  55444. Execute a query and print out all available information about all cloud VMs.
  55445. Can be used in conjunction with \-m to display only information about the
  55446. specified map.
  55447. .UNINDENT
  55448. .INDENT 0.0
  55449. .TP
  55450. .B \-S, \-\-select\-query
  55451. Execute a query and print out selected information about all cloud VMs.
  55452. Can be used in conjunction with \-m to display only information about the
  55453. specified map.
  55454. .UNINDENT
  55455. .INDENT 0.0
  55456. .TP
  55457. .B \-\-list\-providers
  55458. Display a list of configured providers.
  55459. .UNINDENT
  55460. .INDENT 0.0
  55461. .TP
  55462. .B \-\-list\-profiles
  55463. New in version 2014.7.0.
  55464. .sp
  55465. Display a list of configured profiles. Pass in a cloud provider to view
  55466. the provider\(aqs associated profiles, such as \fBdigitalocean\fP, or pass in
  55467. \fBall\fP to list all the configured profiles.
  55468. .UNINDENT
  55469. .SS Cloud Providers Listings
  55470. .INDENT 0.0
  55471. .TP
  55472. .B \-\-list\-locations=LIST_LOCATIONS
  55473. Display a list of locations available in configured cloud providers. Pass
  55474. the cloud provider that available locations are desired on, such as "linode",
  55475. or pass "all" to list locations for all configured cloud providers
  55476. .UNINDENT
  55477. .INDENT 0.0
  55478. .TP
  55479. .B \-\-list\-images=LIST_IMAGES
  55480. Display a list of images available in configured cloud providers. Pass the
  55481. cloud provider that available images are desired on, such as "linode", or pass
  55482. "all" to list images for all configured cloud providers
  55483. .UNINDENT
  55484. .INDENT 0.0
  55485. .TP
  55486. .B \-\-list\-sizes=LIST_SIZES
  55487. Display a list of sizes available in configured cloud providers. Pass the
  55488. cloud provider that available sizes are desired on, such as "AWS", or pass
  55489. "all" to list sizes for all configured cloud providers
  55490. .UNINDENT
  55491. .SS Cloud Credentials
  55492. .INDENT 0.0
  55493. .TP
  55494. .B \-\-set\-password=<USERNAME> <PROVIDER>
  55495. Configure password for a cloud provider and save it to the keyring.
  55496. PROVIDER can be specified with or without a driver, for example:
  55497. "\-\-set\-password bob rackspace" or more specific "\-\-set\-password bob
  55498. rackspace:openstack" DEPRECATED!
  55499. .UNINDENT
  55500. .SS Output Options
  55501. .INDENT 0.0
  55502. .TP
  55503. .B \-\-out
  55504. Pass in an alternative outputter to display the return of data. This
  55505. outputter can be any of the available outputters:
  55506. .INDENT 7.0
  55507. .INDENT 3.5
  55508. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  55509. .UNINDENT
  55510. .UNINDENT
  55511. .sp
  55512. Some outputters are formatted only for data returned from specific functions.
  55513. If an outputter is used that does not support the data passed into it, then
  55514. Salt will fall back on the \fBpprint\fP outputter and display the return data
  55515. using the Python \fBpprint\fP standard library module.
  55516. .UNINDENT
  55517. .INDENT 0.0
  55518. .TP
  55519. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  55520. Print the output indented by the provided value in spaces. Negative values
  55521. disable indentation. Only applicable in outputters that support
  55522. indentation.
  55523. .UNINDENT
  55524. .INDENT 0.0
  55525. .TP
  55526. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  55527. Write the output to the specified file.
  55528. .UNINDENT
  55529. .INDENT 0.0
  55530. .TP
  55531. .B \-\-out\-file\-append, \-\-output\-file\-append
  55532. Append the output to the specified file.
  55533. .UNINDENT
  55534. .INDENT 0.0
  55535. .TP
  55536. .B \-\-no\-color
  55537. Disable all colored output
  55538. .UNINDENT
  55539. .INDENT 0.0
  55540. .TP
  55541. .B \-\-force\-color
  55542. Force colored output
  55543. .sp
  55544. \fBNOTE:\fP
  55545. .INDENT 7.0
  55546. .INDENT 3.5
  55547. When using colored output the color codes are as follows:
  55548. .sp
  55549. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  55550. changes and success and \fByellow\fP denotes a expected future change in configuration.
  55551. .UNINDENT
  55552. .UNINDENT
  55553. .UNINDENT
  55554. .INDENT 0.0
  55555. .TP
  55556. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  55557. Override the configured state_output value for minion
  55558. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  55559. \(aqfilter\(aq. Default: \(aqnone\(aq.
  55560. .UNINDENT
  55561. .INDENT 0.0
  55562. .TP
  55563. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  55564. Override the configured state_verbose value for minion
  55565. output. Set to True or False. Default: none.
  55566. .UNINDENT
  55567. .SS Examples
  55568. .sp
  55569. To create 4 VMs named web1, web2, db1, and db2 from specified profiles:
  55570. .INDENT 0.0
  55571. .INDENT 3.5
  55572. .sp
  55573. .nf
  55574. .ft C
  55575. salt\-cloud \-p fedora_rackspace web1 web2 db1 db2
  55576. .ft P
  55577. .fi
  55578. .UNINDENT
  55579. .UNINDENT
  55580. .sp
  55581. To read in a map file and create all VMs specified therein:
  55582. .INDENT 0.0
  55583. .INDENT 3.5
  55584. .sp
  55585. .nf
  55586. .ft C
  55587. salt\-cloud \-m /path/to/cloud.map
  55588. .ft P
  55589. .fi
  55590. .UNINDENT
  55591. .UNINDENT
  55592. .sp
  55593. To read in a map file and create all VMs specified therein in parallel:
  55594. .INDENT 0.0
  55595. .INDENT 3.5
  55596. .sp
  55597. .nf
  55598. .ft C
  55599. salt\-cloud \-m /path/to/cloud.map \-P
  55600. .ft P
  55601. .fi
  55602. .UNINDENT
  55603. .UNINDENT
  55604. .sp
  55605. To delete any VMs specified in the map file:
  55606. .INDENT 0.0
  55607. .INDENT 3.5
  55608. .sp
  55609. .nf
  55610. .ft C
  55611. salt\-cloud \-m /path/to/cloud.map \-d
  55612. .ft P
  55613. .fi
  55614. .UNINDENT
  55615. .UNINDENT
  55616. .sp
  55617. To delete any VMs NOT specified in the map file:
  55618. .INDENT 0.0
  55619. .INDENT 3.5
  55620. .sp
  55621. .nf
  55622. .ft C
  55623. salt\-cloud \-m /path/to/cloud.map \-H
  55624. .ft P
  55625. .fi
  55626. .UNINDENT
  55627. .UNINDENT
  55628. .sp
  55629. To display the status of all VMs specified in the map file:
  55630. .INDENT 0.0
  55631. .INDENT 3.5
  55632. .sp
  55633. .nf
  55634. .ft C
  55635. salt\-cloud \-m /path/to/cloud.map \-Q
  55636. .ft P
  55637. .fi
  55638. .UNINDENT
  55639. .UNINDENT
  55640. .SS See also
  55641. .sp
  55642. \fBsalt\-cloud(7)\fP
  55643. \fBsalt(7)\fP
  55644. \fBsalt\-master(1)\fP
  55645. \fBsalt\-minion(1)\fP
  55646. .SS Salt Cloud basic usage
  55647. .sp
  55648. Salt Cloud needs, at least, one configured
  55649. Provider
  55650. and Profile to be functional.
  55651. .SS Creating a VM
  55652. .sp
  55653. To create a VM with salt cloud, use command:
  55654. .INDENT 0.0
  55655. .INDENT 3.5
  55656. .sp
  55657. .nf
  55658. .ft C
  55659. salt\-cloud \-p <profile> name_of_vm
  55660. .ft P
  55661. .fi
  55662. .UNINDENT
  55663. .UNINDENT
  55664. .sp
  55665. Assuming there is a profile configured as following:
  55666. .INDENT 0.0
  55667. .INDENT 3.5
  55668. .sp
  55669. .nf
  55670. .ft C
  55671. fedora_rackspace:
  55672. provider: my\-rackspace\-config
  55673. image: Fedora 17
  55674. size: 256 server
  55675. script: bootstrap\-salt
  55676. .ft P
  55677. .fi
  55678. .UNINDENT
  55679. .UNINDENT
  55680. .sp
  55681. Then, the command to create new VM named \fBfedora_http_01\fP is:
  55682. .INDENT 0.0
  55683. .INDENT 3.5
  55684. .sp
  55685. .nf
  55686. .ft C
  55687. salt\-cloud \-p fedora_rackspace fedora_http_01
  55688. .ft P
  55689. .fi
  55690. .UNINDENT
  55691. .UNINDENT
  55692. .SS Destroying a VM
  55693. .sp
  55694. To destroy a created\-by\-salt\-cloud VM, use command:
  55695. .INDENT 0.0
  55696. .INDENT 3.5
  55697. .sp
  55698. .nf
  55699. .ft C
  55700. salt\-cloud \-d name_of_vm
  55701. .ft P
  55702. .fi
  55703. .UNINDENT
  55704. .UNINDENT
  55705. .sp
  55706. For example, to delete the VM created on above example, use:
  55707. .INDENT 0.0
  55708. .INDENT 3.5
  55709. .sp
  55710. .nf
  55711. .ft C
  55712. salt\-cloud \-d fedora_http_01
  55713. .ft P
  55714. .fi
  55715. .UNINDENT
  55716. .UNINDENT
  55717. .SS VM Profiles
  55718. .sp
  55719. Salt cloud designates virtual machines inside the profile configuration file.
  55720. The profile configuration file defaults to \fB/etc/salt/cloud.profiles\fP and is
  55721. a yaml configuration. The syntax for declaring profiles is simple:
  55722. .INDENT 0.0
  55723. .INDENT 3.5
  55724. .sp
  55725. .nf
  55726. .ft C
  55727. fedora_rackspace:
  55728. provider: my\-rackspace\-config
  55729. image: Fedora 17
  55730. size: 256 server
  55731. script: bootstrap\-salt
  55732. .ft P
  55733. .fi
  55734. .UNINDENT
  55735. .UNINDENT
  55736. .sp
  55737. It should be noted that the \fBscript\fP option defaults to \fBbootstrap\-salt\fP,
  55738. and does not normally need to be specified. Further examples in this document
  55739. will not show the \fBscript\fP option.
  55740. .sp
  55741. A few key pieces of information need to be declared and can change based on the
  55742. cloud provider. A number of additional parameters can also be inserted:
  55743. .INDENT 0.0
  55744. .INDENT 3.5
  55745. .sp
  55746. .nf
  55747. .ft C
  55748. centos_rackspace:
  55749. provider: my\-rackspace\-config
  55750. image: CentOS 6.2
  55751. size: 1024 server
  55752. minion:
  55753. master: salt.example.com
  55754. append_domain: webs.example.com
  55755. grains:
  55756. role: webserver
  55757. .ft P
  55758. .fi
  55759. .UNINDENT
  55760. .UNINDENT
  55761. .sp
  55762. The image must be selected from available images. Similarly, sizes must be
  55763. selected from the list of sizes. To get a list of available images and sizes
  55764. use the following command:
  55765. .INDENT 0.0
  55766. .INDENT 3.5
  55767. .sp
  55768. .nf
  55769. .ft C
  55770. salt\-cloud \-\-list\-images openstack
  55771. salt\-cloud \-\-list\-sizes openstack
  55772. .ft P
  55773. .fi
  55774. .UNINDENT
  55775. .UNINDENT
  55776. .sp
  55777. Some parameters can be specified in the main Salt cloud configuration file and
  55778. then are applied to all cloud profiles. For instance if only a single cloud
  55779. provider is being used then the provider option can be declared in the Salt
  55780. cloud configuration file.
  55781. .SS Multiple Configuration Files
  55782. .sp
  55783. In addition to \fB/etc/salt/cloud.profiles\fP, profiles can also be specified in
  55784. any file matching \fBcloud.profiles.d/*conf\fP which is a sub\-directory relative
  55785. to the profiles configuration file(with the above configuration file as an
  55786. example, \fB/etc/salt/cloud.profiles.d/*.conf\fP). This allows for more
  55787. extensible configuration, and plays nicely with various configuration
  55788. management tools as well as version control systems.
  55789. .SS Larger Example
  55790. .INDENT 0.0
  55791. .INDENT 3.5
  55792. .sp
  55793. .nf
  55794. .ft C
  55795. rhel_ec2:
  55796. provider: my\-ec2\-config
  55797. image: ami\-e565ba8c
  55798. size: t1.micro
  55799. minion:
  55800. cheese: edam
  55801. ubuntu_ec2:
  55802. provider: my\-ec2\-config
  55803. image: ami\-7e2da54e
  55804. size: t1.micro
  55805. minion:
  55806. cheese: edam
  55807. ubuntu_rackspace:
  55808. provider: my\-rackspace\-config
  55809. image: Ubuntu 12.04 LTS
  55810. size: 256 server
  55811. minion:
  55812. cheese: edam
  55813. fedora_rackspace:
  55814. provider: my\-rackspace\-config
  55815. image: Fedora 17
  55816. size: 256 server
  55817. minion:
  55818. cheese: edam
  55819. cent_linode:
  55820. provider: my\-linode\-config
  55821. image: CentOS 6.2 64bit
  55822. size: Linode 512
  55823. cent_gogrid:
  55824. provider: my\-gogrid\-config
  55825. image: 12834
  55826. size: 512MB
  55827. cent_joyent:
  55828. provider: my\-joyent\-config
  55829. image: centos\-7
  55830. size: g4\-highram\-16G
  55831. .ft P
  55832. .fi
  55833. .UNINDENT
  55834. .UNINDENT
  55835. .SS Cloud Map File
  55836. .sp
  55837. A number of options exist when creating virtual machines. They can be managed
  55838. directly from profiles and the command line execution, or a more complex map
  55839. file can be created. The map file allows for a number of virtual machines to
  55840. be created and associated with specific profiles. The map file is designed to
  55841. be run once to create these more complex scenarios using salt\-cloud.
  55842. .sp
  55843. Map files have a simple format, specify a profile and then a list of virtual
  55844. machines to make from said profile:
  55845. .INDENT 0.0
  55846. .INDENT 3.5
  55847. .sp
  55848. .nf
  55849. .ft C
  55850. fedora_small:
  55851. \- web1
  55852. \- web2
  55853. \- web3
  55854. fedora_high:
  55855. \- redis1
  55856. \- redis2
  55857. \- redis3
  55858. cent_high:
  55859. \- riak1
  55860. \- riak2
  55861. \- riak3
  55862. .ft P
  55863. .fi
  55864. .UNINDENT
  55865. .UNINDENT
  55866. .sp
  55867. This map file can then be called to roll out all of these virtual machines. Map
  55868. files are called from the salt\-cloud command with the \-m option:
  55869. .INDENT 0.0
  55870. .INDENT 3.5
  55871. .sp
  55872. .nf
  55873. .ft C
  55874. $ salt\-cloud \-m /path/to/mapfile
  55875. .ft P
  55876. .fi
  55877. .UNINDENT
  55878. .UNINDENT
  55879. .sp
  55880. Remember, that as with direct profile provisioning the \-P option can be passed
  55881. to create the virtual machines in parallel:
  55882. .INDENT 0.0
  55883. .INDENT 3.5
  55884. .sp
  55885. .nf
  55886. .ft C
  55887. $ salt\-cloud \-m /path/to/mapfile \-P
  55888. .ft P
  55889. .fi
  55890. .UNINDENT
  55891. .UNINDENT
  55892. .sp
  55893. \fBNOTE:\fP
  55894. .INDENT 0.0
  55895. .INDENT 3.5
  55896. Due to limitations in the GoGrid API, instances cannot be provisioned in parallel
  55897. with the GoGrid driver. Map files will work with GoGrid, but the \fB\-P\fP
  55898. argument should not be used on maps referencing GoGrid instances.
  55899. .UNINDENT
  55900. .UNINDENT
  55901. .sp
  55902. A map file can also be enforced to represent the total state of a cloud
  55903. deployment by using the \fB\-\-hard\fP option. When using the hard option any vms
  55904. that exist but are not specified in the map file will be destroyed:
  55905. .INDENT 0.0
  55906. .INDENT 3.5
  55907. .sp
  55908. .nf
  55909. .ft C
  55910. $ salt\-cloud \-m /path/to/mapfile \-P \-H
  55911. .ft P
  55912. .fi
  55913. .UNINDENT
  55914. .UNINDENT
  55915. .sp
  55916. Be careful with this argument, it is very dangerous! In fact, it is so
  55917. dangerous that in order to use it, you must explicitly enable it in the main
  55918. configuration file.
  55919. .INDENT 0.0
  55920. .INDENT 3.5
  55921. .sp
  55922. .nf
  55923. .ft C
  55924. enable_hard_maps: True
  55925. .ft P
  55926. .fi
  55927. .UNINDENT
  55928. .UNINDENT
  55929. .sp
  55930. A map file can include grains and minion configuration options:
  55931. .INDENT 0.0
  55932. .INDENT 3.5
  55933. .sp
  55934. .nf
  55935. .ft C
  55936. fedora_small:
  55937. \- web1:
  55938. minion:
  55939. log_level: debug
  55940. grains:
  55941. cheese: tasty
  55942. omelet: du fromage
  55943. \- web2:
  55944. minion:
  55945. log_level: warn
  55946. grains:
  55947. cheese: more tasty
  55948. omelet: with peppers
  55949. .ft P
  55950. .fi
  55951. .UNINDENT
  55952. .UNINDENT
  55953. .sp
  55954. Any top level data element from your profile may be overridden in the map file:
  55955. .INDENT 0.0
  55956. .INDENT 3.5
  55957. .sp
  55958. .nf
  55959. .ft C
  55960. fedora_small:
  55961. \- web1:
  55962. size: t2.micro
  55963. \- web2:
  55964. size: t2.nano
  55965. .ft P
  55966. .fi
  55967. .UNINDENT
  55968. .UNINDENT
  55969. .sp
  55970. As of Salt 2017.7.0, nested elements are merged, and can can be specified
  55971. individually without having to repeat the complete definition for each top
  55972. level data element. In this example a separate MAC is assigned to each VMware
  55973. instance while inheriting device parameters for for disk and network
  55974. configuration:
  55975. .INDENT 0.0
  55976. .INDENT 3.5
  55977. .sp
  55978. .nf
  55979. .ft C
  55980. nyc\-vm:
  55981. \- db1:
  55982. devices:
  55983. network:
  55984. Network Adapter 1:
  55985. mac: \(aq44:44:44:44:44:41\(aq
  55986. \- db2:
  55987. devices:
  55988. network:
  55989. Network Adapter 1:
  55990. mac: \(aq44:44:44:44:44:42\(aq
  55991. .ft P
  55992. .fi
  55993. .UNINDENT
  55994. .UNINDENT
  55995. .sp
  55996. A map file may also be used with the various query options:
  55997. .INDENT 0.0
  55998. .INDENT 3.5
  55999. .sp
  56000. .nf
  56001. .ft C
  56002. $ salt\-cloud \-m /path/to/mapfile \-Q
  56003. {\(aqec2\(aq: {\(aqweb1\(aq: {\(aqid\(aq: \(aqi\-e6aqfegb\(aq,
  56004. \(aqimage\(aq: None,
  56005. \(aqprivate_ips\(aq: [],
  56006. \(aqpublic_ips\(aq: [],
  56007. \(aqsize\(aq: None,
  56008. \(aqstate\(aq: 0}},
  56009. \(aqweb2\(aq: {\(aqAbsent\(aq}}
  56010. .ft P
  56011. .fi
  56012. .UNINDENT
  56013. .UNINDENT
  56014. .sp
  56015. \&...or with the delete option:
  56016. .INDENT 0.0
  56017. .INDENT 3.5
  56018. .sp
  56019. .nf
  56020. .ft C
  56021. $ salt\-cloud \-m /path/to/mapfile \-d
  56022. The following virtual machines are set to be destroyed:
  56023. web1
  56024. web2
  56025. Proceed? [N/y]
  56026. .ft P
  56027. .fi
  56028. .UNINDENT
  56029. .UNINDENT
  56030. .sp
  56031. \fBWARNING:\fP
  56032. .INDENT 0.0
  56033. .INDENT 3.5
  56034. Specifying Nodes with Maps on the Command Line
  56035. Specifying the name of a node or nodes with the maps options on the command
  56036. line is \fInot\fP supported. This is especially important to remember when
  56037. using \fB\-\-destroy\fP with maps; \fBsalt\-cloud\fP will ignore any arguments
  56038. passed in which are not directly relevant to the map file. \fIWhen using
  56039. \(ga\(ga\-\-destroy\(ga\(ga with a map, every node in the map file will be deleted!\fP
  56040. Maps don\(aqt provide any useful information for destroying individual nodes,
  56041. and should not be used to destroy a subset of a map.
  56042. .UNINDENT
  56043. .UNINDENT
  56044. .SS Setting up New Salt Masters
  56045. .sp
  56046. Bootstrapping a new master in the map is as simple as:
  56047. .INDENT 0.0
  56048. .INDENT 3.5
  56049. .sp
  56050. .nf
  56051. .ft C
  56052. fedora_small:
  56053. \- web1:
  56054. make_master: True
  56055. \- web2
  56056. \- web3
  56057. .ft P
  56058. .fi
  56059. .UNINDENT
  56060. .UNINDENT
  56061. .sp
  56062. Notice that \fBALL\fP bootstrapped minions from the map will answer to the newly
  56063. created salt\-master.
  56064. .sp
  56065. To make any of the bootstrapped minions answer to the bootstrapping salt\-master
  56066. as opposed to the newly created salt\-master, as an example:
  56067. .INDENT 0.0
  56068. .INDENT 3.5
  56069. .sp
  56070. .nf
  56071. .ft C
  56072. fedora_small:
  56073. \- web1:
  56074. make_master: True
  56075. minion:
  56076. master: <the local master ip address>
  56077. local_master: True
  56078. \- web2
  56079. \- web3
  56080. .ft P
  56081. .fi
  56082. .UNINDENT
  56083. .UNINDENT
  56084. .sp
  56085. The above says the minion running on the newly created salt\-master responds to
  56086. the local master, ie, the master used to bootstrap these VMs.
  56087. .sp
  56088. Another example:
  56089. .INDENT 0.0
  56090. .INDENT 3.5
  56091. .sp
  56092. .nf
  56093. .ft C
  56094. fedora_small:
  56095. \- web1:
  56096. make_master: True
  56097. \- web2
  56098. \- web3:
  56099. minion:
  56100. master: <the local master ip address>
  56101. local_master: True
  56102. .ft P
  56103. .fi
  56104. .UNINDENT
  56105. .UNINDENT
  56106. .sp
  56107. The above example makes the \fBweb3\fP minion answer to the local master, not the
  56108. newly created master.
  56109. .SS Using Direct Map Data
  56110. .sp
  56111. When using modules that access the \fBCloudClient\fP directly (notably, the
  56112. \fBcloud\fP execution and runner modules), it is possible to pass in the contents
  56113. of a map file, rather than a path to the location of the map file.
  56114. .sp
  56115. Normally when using these modules, the path to the map file is passed in using:
  56116. .INDENT 0.0
  56117. .INDENT 3.5
  56118. .sp
  56119. .nf
  56120. .ft C
  56121. salt\-run cloud.map_run /path/to/cloud.map
  56122. .ft P
  56123. .fi
  56124. .UNINDENT
  56125. .UNINDENT
  56126. .sp
  56127. To pass in the actual map data, use the \fBmap_data\fP argument:
  56128. .INDENT 0.0
  56129. .INDENT 3.5
  56130. .sp
  56131. .nf
  56132. .ft C
  56133. salt\-run cloud.map_run map_data=\(aq{"centos7": [{"saltmaster": {"minion": \e
  56134. {"transport": "tcp"}, "make_master": true, "master": {"transport": \e
  56135. "tcp"}}}, {"minion001": {"minion": {"transport": "tcp"}}}]}\(aq
  56136. .ft P
  56137. .fi
  56138. .UNINDENT
  56139. .UNINDENT
  56140. .SS Cloud Actions
  56141. .sp
  56142. Once a VM has been created, there are a number of actions that can be performed
  56143. on it. The "reboot" action can be used across all providers, but all other
  56144. actions are specific to the cloud provider. In order to perform an action, you
  56145. may specify it from the command line, including the name(s) of the VM to
  56146. perform the action on:
  56147. .INDENT 0.0
  56148. .INDENT 3.5
  56149. .sp
  56150. .nf
  56151. .ft C
  56152. $ salt\-cloud \-a reboot vm_name
  56153. $ salt\-cloud \-a reboot vm1 vm2 vm2
  56154. .ft P
  56155. .fi
  56156. .UNINDENT
  56157. .UNINDENT
  56158. .sp
  56159. Or you may specify a map which includes all VMs to perform the action on:
  56160. .INDENT 0.0
  56161. .INDENT 3.5
  56162. .sp
  56163. .nf
  56164. .ft C
  56165. $ salt\-cloud \-a reboot \-m /path/to/mapfile
  56166. .ft P
  56167. .fi
  56168. .UNINDENT
  56169. .UNINDENT
  56170. .sp
  56171. The following is an example list of actions currently supported by \fBsalt\-cloud\fP:
  56172. .INDENT 0.0
  56173. .INDENT 3.5
  56174. .sp
  56175. .nf
  56176. .ft C
  56177. all providers:
  56178. \- reboot
  56179. ec2:
  56180. \- start
  56181. \- stop
  56182. joyent:
  56183. \- stop
  56184. linode:
  56185. \- start
  56186. \- stop
  56187. .ft P
  56188. .fi
  56189. .UNINDENT
  56190. .UNINDENT
  56191. .sp
  56192. Another useful reference for viewing more \fBsalt\-cloud\fP actions is the
  56193. Salt Cloud Feature Matrix\&.
  56194. .SS Cloud Functions
  56195. .sp
  56196. Cloud functions work much the same way as cloud actions, except that they don\(aqt
  56197. perform an operation on a specific instance, and so do not need a machine name
  56198. to be specified. However, since they perform an operation on a specific cloud
  56199. provider, that provider must be specified.
  56200. .INDENT 0.0
  56201. .INDENT 3.5
  56202. .sp
  56203. .nf
  56204. .ft C
  56205. $ salt\-cloud \-f show_image ec2 image=ami\-fd20ad94
  56206. .ft P
  56207. .fi
  56208. .UNINDENT
  56209. .UNINDENT
  56210. .sp
  56211. There are three universal salt\-cloud functions that are extremely useful for
  56212. gathering information about instances on a provider basis:
  56213. .INDENT 0.0
  56214. .IP \(bu 2
  56215. \fBlist_nodes\fP: Returns some general information about the instances for the given provider.
  56216. .IP \(bu 2
  56217. \fBlist_nodes_full\fP: Returns all information about the instances for the given provider.
  56218. .IP \(bu 2
  56219. \fBlist_nodes_select\fP: Returns select information about the instances for the given provider.
  56220. .UNINDENT
  56221. .INDENT 0.0
  56222. .INDENT 3.5
  56223. .sp
  56224. .nf
  56225. .ft C
  56226. $ salt\-cloud \-f list_nodes linode
  56227. $ salt\-cloud \-f list_nodes_full linode
  56228. $ salt\-cloud \-f list_nodes_select linode
  56229. .ft P
  56230. .fi
  56231. .UNINDENT
  56232. .UNINDENT
  56233. .sp
  56234. Another useful reference for viewing \fBsalt\-cloud\fP functions is the
  56235. Salt Cloud Feature Matrix\&.
  56236. .SS Core Configuration
  56237. .SS Install Salt Cloud
  56238. .sp
  56239. Salt Cloud is now part of Salt proper. It was merged in as of
  56240. Salt version 2014.1.0\&.
  56241. .sp
  56242. On Ubuntu, install Salt Cloud by using following command:
  56243. .INDENT 0.0
  56244. .INDENT 3.5
  56245. .sp
  56246. .nf
  56247. .ft C
  56248. sudo add\-apt\-repository ppa:saltstack/salt
  56249. sudo apt\-get update
  56250. sudo apt\-get install salt\-cloud
  56251. .ft P
  56252. .fi
  56253. .UNINDENT
  56254. .UNINDENT
  56255. .sp
  56256. If using Salt Cloud on macOS, \fBcurl\-ca\-bundle\fP must be installed. Presently,
  56257. this package is not available via \fBbrew\fP, but it is available using MacPorts:
  56258. .INDENT 0.0
  56259. .INDENT 3.5
  56260. .sp
  56261. .nf
  56262. .ft C
  56263. sudo port install curl\-ca\-bundle
  56264. .ft P
  56265. .fi
  56266. .UNINDENT
  56267. .UNINDENT
  56268. .sp
  56269. Salt Cloud depends on \fBapache\-libcloud\fP\&. Libcloud can be installed via pip
  56270. with \fBpip install apache\-libcloud\fP\&.
  56271. .SS Installing Salt Cloud for development
  56272. .sp
  56273. Installing Salt for development enables Salt Cloud development as well, just
  56274. make sure \fBapache\-libcloud\fP is installed as per above paragraph.
  56275. .sp
  56276. See these instructions: Installing Salt for development\&.
  56277. .SS Core Configuration
  56278. .sp
  56279. A number of core configuration options and some options that are global to the
  56280. VM profiles can be set in the cloud configuration file. By default this file is
  56281. located at \fB/etc/salt/cloud\fP\&.
  56282. .SS Thread Pool Size
  56283. .sp
  56284. When salt cloud is operating in parallel mode via the \fB\-P\fP argument, you can
  56285. control the thread pool size by specifying the \fBpool_size\fP parameter with
  56286. a positive integer value.
  56287. .sp
  56288. By default, the thread pool size will be set to the number of VMs that salt
  56289. cloud is operating on.
  56290. .INDENT 0.0
  56291. .INDENT 3.5
  56292. .sp
  56293. .nf
  56294. .ft C
  56295. pool_size: 10
  56296. .ft P
  56297. .fi
  56298. .UNINDENT
  56299. .UNINDENT
  56300. .SS Minion Configuration
  56301. .sp
  56302. The default minion configuration is set up in this file. Minions created by
  56303. salt\-cloud derive their configuration from this file. Almost all parameters
  56304. found in Configuring the Salt Minion can be
  56305. used here.
  56306. .INDENT 0.0
  56307. .INDENT 3.5
  56308. .sp
  56309. .nf
  56310. .ft C
  56311. minion:
  56312. master: saltmaster.example.com
  56313. .ft P
  56314. .fi
  56315. .UNINDENT
  56316. .UNINDENT
  56317. .sp
  56318. In particular, this is the location to specify the location of the salt master
  56319. and its listening port, if the port is not set to the default.
  56320. .sp
  56321. Similar to most other settings, Minion configuration settings are inherited
  56322. across configuration files. For example, the master setting might be contained
  56323. in the main \fBcloud\fP configuration file as demonstrated above, but additional
  56324. settings can be placed in the provider, profile or map configuration files:
  56325. .INDENT 0.0
  56326. .INDENT 3.5
  56327. .sp
  56328. .nf
  56329. .ft C
  56330. ec2\-web:
  56331. size: t1.micro
  56332. minion:
  56333. environment: test
  56334. startup_states: sls
  56335. sls_list:
  56336. \- web
  56337. .ft P
  56338. .fi
  56339. .UNINDENT
  56340. .UNINDENT
  56341. .sp
  56342. When salt cloud creates a new minion, it can automatically add grain information
  56343. to the minion configuration file identifying the sources originally used
  56344. to define it.
  56345. .sp
  56346. The generated grain information will appear similar to:
  56347. .INDENT 0.0
  56348. .INDENT 3.5
  56349. .sp
  56350. .nf
  56351. .ft C
  56352. grains:
  56353. salt\-cloud:
  56354. driver: ec2
  56355. provider: my_ec2:ec2
  56356. profile: ec2\-web
  56357. .ft P
  56358. .fi
  56359. .UNINDENT
  56360. .UNINDENT
  56361. .sp
  56362. The generation of the salt\-cloud grain can be suppressed by the
  56363. option \fBenable_cloud_grains: \(aqFalse\(aq\fP in the cloud configuration file.
  56364. .SS Cloud Configuration Syntax
  56365. .sp
  56366. The data specific to interacting with public clouds is set up here\&.
  56367. .sp
  56368. Cloud provider configuration settings can live in several places. The first is in
  56369. \fB/etc/salt/cloud\fP:
  56370. .INDENT 0.0
  56371. .INDENT 3.5
  56372. .sp
  56373. .nf
  56374. .ft C
  56375. # /etc/salt/cloud
  56376. providers:
  56377. my\-aws\-migrated\-config:
  56378. id: HJGRYCILJLKJYG
  56379. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56380. keyname: test
  56381. securitygroup: quick\-start
  56382. private_key: /root/test.pem
  56383. driver: ec2
  56384. .ft P
  56385. .fi
  56386. .UNINDENT
  56387. .UNINDENT
  56388. .sp
  56389. Cloud provider configuration data can also be housed in \fB/etc/salt/cloud.providers\fP
  56390. or any file matching \fB/etc/salt/cloud.providers.d/*.conf\fP\&. All files in any of these
  56391. locations will be parsed for cloud provider data.
  56392. .sp
  56393. Using the example configuration above:
  56394. .INDENT 0.0
  56395. .INDENT 3.5
  56396. .sp
  56397. .nf
  56398. .ft C
  56399. # /etc/salt/cloud.providers
  56400. # or could be /etc/salt/cloud.providers.d/*.conf
  56401. my\-aws\-config:
  56402. id: HJGRYCILJLKJYG
  56403. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56404. keyname: test
  56405. securitygroup: quick\-start
  56406. private_key: /root/test.pem
  56407. driver: ec2
  56408. .ft P
  56409. .fi
  56410. .UNINDENT
  56411. .UNINDENT
  56412. .sp
  56413. \fBNOTE:\fP
  56414. .INDENT 0.0
  56415. .INDENT 3.5
  56416. Salt Cloud provider configurations within \fB/etc/cloud.provider.d/\fP should not
  56417. specify the \fBproviders\fP starting key.
  56418. .UNINDENT
  56419. .UNINDENT
  56420. .sp
  56421. It is also possible to have multiple cloud configuration blocks within the same alias block.
  56422. For example:
  56423. .INDENT 0.0
  56424. .INDENT 3.5
  56425. .sp
  56426. .nf
  56427. .ft C
  56428. production\-config:
  56429. \- id: HJGRYCILJLKJYG
  56430. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56431. keyname: test
  56432. securitygroup: quick\-start
  56433. private_key: /root/test.pem
  56434. driver: ec2
  56435. \- user: example_user
  56436. apikey: 123984bjjas87034
  56437. driver: rackspace
  56438. .ft P
  56439. .fi
  56440. .UNINDENT
  56441. .UNINDENT
  56442. .sp
  56443. However, using this configuration method requires a change with profile configuration blocks.
  56444. The provider alias needs to have the provider key value appended as in the following example:
  56445. .INDENT 0.0
  56446. .INDENT 3.5
  56447. .sp
  56448. .nf
  56449. .ft C
  56450. rhel_aws_dev:
  56451. provider: production\-config:ec2
  56452. image: ami\-e565ba8c
  56453. size: t1.micro
  56454. rhel_aws_prod:
  56455. provider: production\-config:ec2
  56456. image: ami\-e565ba8c
  56457. size: High\-CPU Extra Large Instance
  56458. database_prod:
  56459. provider: production\-config:rackspace
  56460. image: Ubuntu 12.04 LTS
  56461. size: 256 server
  56462. .ft P
  56463. .fi
  56464. .UNINDENT
  56465. .UNINDENT
  56466. .sp
  56467. Notice that because of the multiple entries, one has to be explicit about the provider alias and
  56468. name, from the above example, \fBproduction\-config: ec2\fP\&.
  56469. .sp
  56470. This data interactions with the \fBsalt\-cloud\fP binary regarding its \fB\-\-list\-location\fP,
  56471. \fB\-\-list\-images\fP, and \fB\-\-list\-sizes\fP which needs a cloud provider as an argument. The argument
  56472. used should be the configured cloud provider alias. If the provider alias has multiple entries,
  56473. \fB<provider\-alias>: <provider\-name>\fP should be used.
  56474. .sp
  56475. To allow for a more extensible configuration, \fB\-\-providers\-config\fP, which defaults to
  56476. \fB/etc/salt/cloud.providers\fP, was added to the cli parser. It allows for the providers\(aq
  56477. configuration to be added on a per\-file basis.
  56478. .SS Pillar Configuration
  56479. .sp
  56480. It is possible to configure cloud providers using pillars. This is only used when inside the cloud
  56481. module. You can setup a variable called \fBcloud\fP that contains your profile, provider, and map to
  56482. pass that information to the cloud servers instead of having to copy the full configuration to every
  56483. minion. In your pillar file, you would use something like this:
  56484. .INDENT 0.0
  56485. .INDENT 3.5
  56486. .sp
  56487. .nf
  56488. .ft C
  56489. cloud:
  56490. ssh_key_name: saltstack
  56491. ssh_key_file: /root/.ssh/id_rsa
  56492. update_cachedir: True
  56493. diff_cache_events: True
  56494. providers:
  56495. my\-openstack:
  56496. driver: openstack
  56497. region_name: ORD
  56498. cloud: mycloud
  56499. profiles:
  56500. ubuntu\-openstack:
  56501. provider: my\-openstack
  56502. size: ds512M
  56503. image: CentOS 7
  56504. script_args: git develop
  56505. maps:
  56506. my\-dev\-map:
  56507. ubuntu\-openstack:
  56508. \- dev\-test01
  56509. \- dev\-test02
  56510. \- dev\-test03
  56511. \- dev\-test04
  56512. my\-prd\-map:
  56513. ubuntu\-openstack:
  56514. \- prd\-web01
  56515. \- prd\-web02
  56516. minion:
  56517. id: custom\-minion\-id\-app1\-stack1\-frontend
  56518. grains:
  56519. roles:
  56520. \- webserver
  56521. deployment: datacenter4\-openstack
  56522. \- prod\-db01
  56523. \- prod\-db02
  56524. .ft P
  56525. .fi
  56526. .UNINDENT
  56527. .UNINDENT
  56528. .SS Cloud Configurations
  56529. .SS Scaleway
  56530. .sp
  56531. To use Salt Cloud with Scaleway, you need to get an \fBaccess key\fP and an \fBAPI token\fP\&. \fBAPI tokens\fP are unique identifiers associated with your Scaleway account.
  56532. To retrieve your \fBaccess key\fP and \fBAPI token\fP, log\-in to the Scaleway control panel, open the pull\-down menu on your account name and click on "My Credentials" link.
  56533. .sp
  56534. If you do not have \fBAPI token\fP you can create one by clicking the "Create New Token" button on the right corner.
  56535. .INDENT 0.0
  56536. .INDENT 3.5
  56537. .sp
  56538. .nf
  56539. .ft C
  56540. my\-scaleway\-config:
  56541. access_key: 15cf404d\-4560\-41b1\-9a0c\-21c3d5c4ff1f
  56542. token: a7347ec8\-5de1\-4024\-a5e3\-24b77d1ba91d
  56543. driver: scaleway
  56544. .ft P
  56545. .fi
  56546. .UNINDENT
  56547. .UNINDENT
  56548. .sp
  56549. \fBNOTE:\fP
  56550. .INDENT 0.0
  56551. .INDENT 3.5
  56552. In the cloud profile that uses this provider configuration, the syntax for the
  56553. \fBprovider\fP required field would be \fBprovider: my\-scaleway\-config\fP\&.
  56554. .UNINDENT
  56555. .UNINDENT
  56556. .SS Rackspace
  56557. .sp
  56558. Rackspace cloud requires two configuration options; a \fBuser\fP and an \fBapikey\fP:
  56559. .INDENT 0.0
  56560. .INDENT 3.5
  56561. .sp
  56562. .nf
  56563. .ft C
  56564. my\-rackspace\-config:
  56565. user: example_user
  56566. apikey: 123984bjjas87034
  56567. driver: rackspace
  56568. .ft P
  56569. .fi
  56570. .UNINDENT
  56571. .UNINDENT
  56572. .sp
  56573. \fBNOTE:\fP
  56574. .INDENT 0.0
  56575. .INDENT 3.5
  56576. In the cloud profile that uses this provider configuration, the syntax for the
  56577. \fBprovider\fP required field would be \fBprovider: my\-rackspace\-config\fP\&.
  56578. .UNINDENT
  56579. .UNINDENT
  56580. .SS Amazon AWS
  56581. .sp
  56582. A number of configuration options are required for Amazon AWS including \fBid\fP,
  56583. \fBkey\fP, \fBkeyname\fP, \fBsecuritygroup\fP, and \fBprivate_key\fP:
  56584. .INDENT 0.0
  56585. .INDENT 3.5
  56586. .sp
  56587. .nf
  56588. .ft C
  56589. my\-aws\-quick\-start:
  56590. id: HJGRYCILJLKJYG
  56591. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56592. keyname: test
  56593. securitygroup: quick\-start
  56594. private_key: /root/test.pem
  56595. driver: ec2
  56596. my\-aws\-default:
  56597. id: HJGRYCILJLKJYG
  56598. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56599. keyname: test
  56600. securitygroup: default
  56601. private_key: /root/test.pem
  56602. driver: ec2
  56603. .ft P
  56604. .fi
  56605. .UNINDENT
  56606. .UNINDENT
  56607. .sp
  56608. \fBNOTE:\fP
  56609. .INDENT 0.0
  56610. .INDENT 3.5
  56611. In the cloud profile that uses this provider configuration, the syntax for the
  56612. \fBprovider\fP required field would be either \fBprovider: my\-aws\-quick\-start\fP
  56613. or \fBprovider: my\-aws\-default\fP\&.
  56614. .UNINDENT
  56615. .UNINDENT
  56616. .SS Linode
  56617. .sp
  56618. Linode requires a single API key, but the default root password also needs to
  56619. be set:
  56620. .INDENT 0.0
  56621. .INDENT 3.5
  56622. .sp
  56623. .nf
  56624. .ft C
  56625. my\-linode\-config:
  56626. apikey: asldkgfakl;sdfjsjaslfjaklsdjf;askldjfaaklsjdfhasldsadfghdkf
  56627. password: F00barbaz
  56628. ssh_pubkey: ssh\-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKHEOLLbeXgaqRQT9NBAopVz366SdYc0KKX33vAnq+2R user@host
  56629. ssh_key_file: ~/.ssh/id_ed25519
  56630. driver: linode
  56631. .ft P
  56632. .fi
  56633. .UNINDENT
  56634. .UNINDENT
  56635. .sp
  56636. The password needs to be 8 characters and contain lowercase, uppercase, and
  56637. numbers.
  56638. .sp
  56639. \fBNOTE:\fP
  56640. .INDENT 0.0
  56641. .INDENT 3.5
  56642. In the cloud profile that uses this provider configuration, the syntax for the
  56643. \fBprovider\fP required field would be \fBprovider: my\-linode\-config\fP
  56644. .UNINDENT
  56645. .UNINDENT
  56646. .SS Joyent Cloud
  56647. .sp
  56648. The Joyent cloud requires three configuration parameters: The username and
  56649. password that are used to log into the Joyent system, as well as the location
  56650. of the private SSH key associated with the Joyent account. The SSH key is needed
  56651. to send the provisioning commands up to the freshly created virtual machine.
  56652. .INDENT 0.0
  56653. .INDENT 3.5
  56654. .sp
  56655. .nf
  56656. .ft C
  56657. my\-joyent\-config:
  56658. user: fred
  56659. password: saltybacon
  56660. private_key: /root/joyent.pem
  56661. driver: joyent
  56662. .ft P
  56663. .fi
  56664. .UNINDENT
  56665. .UNINDENT
  56666. .sp
  56667. \fBNOTE:\fP
  56668. .INDENT 0.0
  56669. .INDENT 3.5
  56670. In the cloud profile that uses this provider configuration, the syntax for the
  56671. \fBprovider\fP required field would be \fBprovider: my\-joyent\-config\fP
  56672. .UNINDENT
  56673. .UNINDENT
  56674. .SS GoGrid
  56675. .sp
  56676. To use Salt Cloud with GoGrid, log into the GoGrid web interface and create an
  56677. API key. Do this by clicking on "My Account" and then going to the API Keys
  56678. tab.
  56679. .sp
  56680. The \fBapikey\fP and the \fBsharedsecret\fP configuration parameters need to
  56681. be set in the configuration file to enable interfacing with GoGrid:
  56682. .INDENT 0.0
  56683. .INDENT 3.5
  56684. .sp
  56685. .nf
  56686. .ft C
  56687. my\-gogrid\-config:
  56688. apikey: asdff7896asdh789
  56689. sharedsecret: saltybacon
  56690. driver: gogrid
  56691. .ft P
  56692. .fi
  56693. .UNINDENT
  56694. .UNINDENT
  56695. .sp
  56696. \fBNOTE:\fP
  56697. .INDENT 0.0
  56698. .INDENT 3.5
  56699. In the cloud profile that uses this provider configuration, the syntax for the
  56700. \fBprovider\fP required field would be \fBprovider: my\-gogrid\-config\fP\&.
  56701. .UNINDENT
  56702. .UNINDENT
  56703. .SS OpenStack
  56704. .sp
  56705. Using Salt for OpenStack uses the \fIshade <https://docs.openstack.org/shade/latest/>\fP driver managed by the
  56706. openstack\-infra team.
  56707. .sp
  56708. This driver can be configured using the \fB/etc/openstack/clouds.yml\fP file with
  56709. \fIos\-client\-config <https://docs.openstack.org/os\-client\-config/latest/>\fP
  56710. .INDENT 0.0
  56711. .INDENT 3.5
  56712. .sp
  56713. .nf
  56714. .ft C
  56715. myopenstack:
  56716. driver: openstack
  56717. region_name: RegionOne
  56718. cloud: mycloud
  56719. .ft P
  56720. .fi
  56721. .UNINDENT
  56722. .UNINDENT
  56723. .sp
  56724. Or by just configuring the same auth block directly in the cloud provider config.
  56725. .INDENT 0.0
  56726. .INDENT 3.5
  56727. .sp
  56728. .nf
  56729. .ft C
  56730. myopenstack:
  56731. driver: openstack
  56732. region_name: RegionOne
  56733. auth:
  56734. username: \(aqdemo\(aq
  56735. password: secret
  56736. project_name: \(aqdemo\(aq
  56737. auth_url: \(aqhttp://openstack/identity\(aq
  56738. .ft P
  56739. .fi
  56740. .UNINDENT
  56741. .UNINDENT
  56742. .sp
  56743. Both of these methods support using the
  56744. \fIvendor <https://docs.openstack.org/os\-client\-config/latest/user/vendor\-support.html>\fP
  56745. options.
  56746. .sp
  56747. For more information, look at \fBOpenstack Cloud Driver Docs\fP
  56748. .SS DigitalOcean
  56749. .sp
  56750. Using Salt for DigitalOcean requires a \fBclient_key\fP and an \fBapi_key\fP\&. These
  56751. can be found in the DigitalOcean web interface, in the "My Settings" section,
  56752. under the API Access tab.
  56753. .INDENT 0.0
  56754. .INDENT 3.5
  56755. .sp
  56756. .nf
  56757. .ft C
  56758. my\-digitalocean\-config:
  56759. driver: digitalocean
  56760. personal_access_token: xxx
  56761. location: New York 1
  56762. .ft P
  56763. .fi
  56764. .UNINDENT
  56765. .UNINDENT
  56766. .sp
  56767. \fBNOTE:\fP
  56768. .INDENT 0.0
  56769. .INDENT 3.5
  56770. In the cloud profile that uses this provider configuration, the syntax for the
  56771. \fBprovider\fP required field would be \fBprovider: my\-digital\-ocean\-config\fP\&.
  56772. .UNINDENT
  56773. .UNINDENT
  56774. .SS Parallels
  56775. .sp
  56776. Using Salt with Parallels requires a \fBuser\fP, \fBpassword\fP and \fBURL\fP\&. These
  56777. can be obtained from your cloud provider.
  56778. .INDENT 0.0
  56779. .INDENT 3.5
  56780. .sp
  56781. .nf
  56782. .ft C
  56783. my\-parallels\-config:
  56784. user: myuser
  56785. password: xyzzy
  56786. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  56787. driver: parallels
  56788. .ft P
  56789. .fi
  56790. .UNINDENT
  56791. .UNINDENT
  56792. .sp
  56793. \fBNOTE:\fP
  56794. .INDENT 0.0
  56795. .INDENT 3.5
  56796. In the cloud profile that uses this provider configuration, the syntax for the
  56797. \fBprovider\fP required field would be \fBprovider: my\-parallels\-config\fP\&.
  56798. .UNINDENT
  56799. .UNINDENT
  56800. .SS Proxmox
  56801. .sp
  56802. Using Salt with Proxmox requires a \fBuser\fP, \fBpassword\fP, and \fBURL\fP\&. These can be
  56803. obtained from your cloud host. Both PAM and PVE users can be used.
  56804. .INDENT 0.0
  56805. .INDENT 3.5
  56806. .sp
  56807. .nf
  56808. .ft C
  56809. my\-proxmox\-config:
  56810. driver: proxmox
  56811. user: saltcloud@pve
  56812. password: xyzzy
  56813. url: your.proxmox.host
  56814. .ft P
  56815. .fi
  56816. .UNINDENT
  56817. .UNINDENT
  56818. .sp
  56819. \fBNOTE:\fP
  56820. .INDENT 0.0
  56821. .INDENT 3.5
  56822. In the cloud profile that uses this provider configuration, the syntax for the
  56823. \fBprovider\fP required field would be \fBprovider: my\-proxmox\-config\fP\&.
  56824. .UNINDENT
  56825. .UNINDENT
  56826. .SS LXC
  56827. .sp
  56828. The lxc driver uses saltify to install salt and attach the lxc container as a new lxc
  56829. minion. As soon as we can, we manage baremetal operation over SSH. You can also destroy
  56830. those containers via this driver.
  56831. .INDENT 0.0
  56832. .INDENT 3.5
  56833. .sp
  56834. .nf
  56835. .ft C
  56836. devhost10\-lxc:
  56837. target: devhost10
  56838. driver: lxc
  56839. .ft P
  56840. .fi
  56841. .UNINDENT
  56842. .UNINDENT
  56843. .sp
  56844. And in the map file:
  56845. .INDENT 0.0
  56846. .INDENT 3.5
  56847. .sp
  56848. .nf
  56849. .ft C
  56850. devhost10\-lxc:
  56851. provider: devhost10\-lxc
  56852. from_container: ubuntu
  56853. backing: lvm
  56854. sudo: True
  56855. size: 3g
  56856. ip: 10.0.3.9
  56857. minion:
  56858. master: 10.5.0.1
  56859. master_port: 4506
  56860. lxc_conf:
  56861. \- lxc.utsname: superlxc
  56862. .ft P
  56863. .fi
  56864. .UNINDENT
  56865. .UNINDENT
  56866. .sp
  56867. \fBNOTE:\fP
  56868. .INDENT 0.0
  56869. .INDENT 3.5
  56870. In the cloud profile that uses this provider configuration, the syntax for the
  56871. \fBprovider\fP required field would be \fBprovider: devhost10\-lxc\fP\&.
  56872. .UNINDENT
  56873. .UNINDENT
  56874. .SS Saltify
  56875. .sp
  56876. The Saltify driver is a new, experimental driver designed to install Salt on a remote
  56877. machine, virtual or bare metal, using SSH. This driver is useful for provisioning
  56878. machines which are already installed, but not Salted. For more information about using
  56879. this driver and for configuration examples, please see the
  56880. Getting Started with Saltify documentation.
  56881. .SS Vagrant
  56882. .sp
  56883. The Vagrant driver is a new, experimental driver for controlling a VagrantBox
  56884. virtual machine, and installing Salt on it. The target host machine must be a
  56885. working salt minion, which is controlled via the salt master using salt\-api.
  56886. For more information, see
  56887. Getting Started With Vagrant\&.
  56888. .SS Extending Profiles and Cloud Providers Configuration
  56889. .sp
  56890. As of 0.8.7, the option to extend both the profiles and cloud providers
  56891. configuration and avoid duplication was added. The extends feature works on the
  56892. current profiles configuration, but, regarding the cloud providers
  56893. configuration, \fBonly\fP works in the new syntax and respective configuration
  56894. files, i.e. \fB/etc/salt/salt/cloud.providers\fP or
  56895. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  56896. .sp
  56897. \fBNOTE:\fP
  56898. .INDENT 0.0
  56899. .INDENT 3.5
  56900. Extending cloud profiles and providers is not recursive. For example, a
  56901. profile that is extended by a second profile is possible, but the second
  56902. profile cannot be extended by a third profile.
  56903. .sp
  56904. Also, if a profile (or provider) is extending another profile and each
  56905. contains a list of values, the lists from the extending profile will
  56906. override the list from the original profile. The lists are not merged
  56907. together.
  56908. .UNINDENT
  56909. .UNINDENT
  56910. .SS Extending Profiles
  56911. .sp
  56912. Some example usage on how to use \fBextends\fP with profiles. Consider
  56913. \fB/etc/salt/salt/cloud.profiles\fP containing:
  56914. .INDENT 0.0
  56915. .INDENT 3.5
  56916. .sp
  56917. .nf
  56918. .ft C
  56919. development\-instances:
  56920. provider: my\-ec2\-config
  56921. size: t1.micro
  56922. ssh_username: ec2_user
  56923. securitygroup:
  56924. \- default
  56925. deploy: False
  56926. Amazon\-Linux\-AMI\-2012.09\-64bit:
  56927. image: ami\-54cf5c3d
  56928. extends: development\-instances
  56929. Fedora\-17:
  56930. image: ami\-08d97e61
  56931. extends: development\-instances
  56932. CentOS\-5:
  56933. provider: my\-aws\-config
  56934. image: ami\-09b61d60
  56935. extends: development\-instances
  56936. .ft P
  56937. .fi
  56938. .UNINDENT
  56939. .UNINDENT
  56940. .sp
  56941. The above configuration, once parsed would generate the following profiles
  56942. data:
  56943. .INDENT 0.0
  56944. .INDENT 3.5
  56945. .sp
  56946. .nf
  56947. .ft C
  56948. [{\(aqdeploy\(aq: False,
  56949. \(aqimage\(aq: \(aqami\-08d97e61\(aq,
  56950. \(aqprofile\(aq: \(aqFedora\-17\(aq,
  56951. \(aqprovider\(aq: \(aqmy\-ec2\-config\(aq,
  56952. \(aqsecuritygroup\(aq: [\(aqdefault\(aq],
  56953. \(aqsize\(aq: \(aqt1.micro\(aq,
  56954. \(aqssh_username\(aq: \(aqec2_user\(aq},
  56955. {\(aqdeploy\(aq: False,
  56956. \(aqimage\(aq: \(aqami\-09b61d60\(aq,
  56957. \(aqprofile\(aq: \(aqCentOS\-5\(aq,
  56958. \(aqprovider\(aq: \(aqmy\-aws\-config\(aq,
  56959. \(aqsecuritygroup\(aq: [\(aqdefault\(aq],
  56960. \(aqsize\(aq: \(aqt1.micro\(aq,
  56961. \(aqssh_username\(aq: \(aqec2_user\(aq},
  56962. {\(aqdeploy\(aq: False,
  56963. \(aqimage\(aq: \(aqami\-54cf5c3d\(aq,
  56964. \(aqprofile\(aq: \(aqAmazon\-Linux\-AMI\-2012.09\-64bit\(aq,
  56965. \(aqprovider\(aq: \(aqmy\-ec2\-config\(aq,
  56966. \(aqsecuritygroup\(aq: [\(aqdefault\(aq],
  56967. \(aqsize\(aq: \(aqt1.micro\(aq,
  56968. \(aqssh_username\(aq: \(aqec2_user\(aq},
  56969. {\(aqdeploy\(aq: False,
  56970. \(aqprofile\(aq: \(aqdevelopment\-instances\(aq,
  56971. \(aqprovider\(aq: \(aqmy\-ec2\-config\(aq,
  56972. \(aqsecuritygroup\(aq: [\(aqdefault\(aq],
  56973. \(aqsize\(aq: \(aqt1.micro\(aq,
  56974. \(aqssh_username\(aq: \(aqec2_user\(aq}]
  56975. .ft P
  56976. .fi
  56977. .UNINDENT
  56978. .UNINDENT
  56979. .sp
  56980. Pretty cool right?
  56981. .SS Extending Providers
  56982. .sp
  56983. Some example usage on how to use \fBextends\fP within the cloud providers
  56984. configuration. Consider \fB/etc/salt/salt/cloud.providers\fP containing:
  56985. .INDENT 0.0
  56986. .INDENT 3.5
  56987. .sp
  56988. .nf
  56989. .ft C
  56990. my\-develop\-envs:
  56991. \- id: HJGRYCILJLKJYG
  56992. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  56993. keyname: test
  56994. securitygroup: quick\-start
  56995. private_key: /root/test.pem
  56996. location: ap\-southeast\-1
  56997. availability_zone: ap\-southeast\-1b
  56998. driver: ec2
  56999. \- user: myuser@mycorp.com
  57000. password: mypass
  57001. ssh_key_name: mykey
  57002. ssh_key_file: \(aq/etc/salt/ibm/mykey.pem\(aq
  57003. location: Raleigh
  57004. driver: ibmsce
  57005. my\-productions\-envs:
  57006. \- extends: my\-develop\-envs:ibmsce
  57007. user: my\-production\-user@mycorp.com
  57008. location: us\-east\-1
  57009. availability_zone: us\-east\-1
  57010. .ft P
  57011. .fi
  57012. .UNINDENT
  57013. .UNINDENT
  57014. .sp
  57015. The above configuration, once parsed would generate the following providers
  57016. data:
  57017. .INDENT 0.0
  57018. .INDENT 3.5
  57019. .sp
  57020. .nf
  57021. .ft C
  57022. \(aqproviders\(aq: {
  57023. \(aqmy\-develop\-envs\(aq: [
  57024. {\(aqavailability_zone\(aq: \(aqap\-southeast\-1b\(aq,
  57025. \(aqid\(aq: \(aqHJGRYCILJLKJYG\(aq,
  57026. \(aqkey\(aq: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq,
  57027. \(aqkeyname\(aq: \(aqtest\(aq,
  57028. \(aqlocation\(aq: \(aqap\-southeast\-1\(aq,
  57029. \(aqprivate_key\(aq: \(aq/root/test.pem\(aq,
  57030. \(aqdriver\(aq: \(aqaws\(aq,
  57031. \(aqsecuritygroup\(aq: \(aqquick\-start\(aq
  57032. },
  57033. {\(aqlocation\(aq: \(aqRaleigh\(aq,
  57034. \(aqpassword\(aq: \(aqmypass\(aq,
  57035. \(aqdriver\(aq: \(aqibmsce\(aq,
  57036. \(aqssh_key_file\(aq: \(aq/etc/salt/ibm/mykey.pem\(aq,
  57037. \(aqssh_key_name\(aq: \(aqmykey\(aq,
  57038. \(aquser\(aq: \(aqmyuser@mycorp.com\(aq
  57039. }
  57040. ],
  57041. \(aqmy\-productions\-envs\(aq: [
  57042. {\(aqavailability_zone\(aq: \(aqus\-east\-1\(aq,
  57043. \(aqlocation\(aq: \(aqus\-east\-1\(aq,
  57044. \(aqpassword\(aq: \(aqmypass\(aq,
  57045. \(aqdriver\(aq: \(aqibmsce\(aq,
  57046. \(aqssh_key_file\(aq: \(aq/etc/salt/ibm/mykey.pem\(aq,
  57047. \(aqssh_key_name\(aq: \(aqmykey\(aq,
  57048. \(aquser\(aq: \(aqmy\-production\-user@mycorp.com\(aq
  57049. }
  57050. ]
  57051. }
  57052. .ft P
  57053. .fi
  57054. .UNINDENT
  57055. .UNINDENT
  57056. .SS Windows Configuration
  57057. .SS Spinning up Windows Minions
  57058. .sp
  57059. It is possible to use Salt Cloud to spin up Windows instances, and then install
  57060. Salt on them. This functionality is available on all cloud providers that are
  57061. supported by Salt Cloud. However, it may not necessarily be available on all
  57062. Windows images.
  57063. .SS Requirements
  57064. .sp
  57065. \fBNOTE:\fP
  57066. .INDENT 0.0
  57067. .INDENT 3.5
  57068. Support \fBwinexe\fP and \fBimpacket\fP has been deprecated and will be removed in
  57069. Sodium. These dependencies are replaced by \fBpypsexec\fP and \fBsmbprotocol\fP
  57070. respectivly. These are pure python alternatives that are compatible with all
  57071. supported python versions.
  57072. .UNINDENT
  57073. .UNINDENT
  57074. .sp
  57075. Salt Cloud makes use of \fIimpacket\fP and \fIwinexe\fP to set up the Windows Salt
  57076. Minion installer.
  57077. .sp
  57078. \fIimpacket\fP is usually available as either the \fIimpacket\fP or the
  57079. \fIpython\-impacket\fP package, depending on the distribution. More information on
  57080. \fIimpacket\fP can be found at the project home:
  57081. .INDENT 0.0
  57082. .IP \(bu 2
  57083. \fI\%impacket project home\fP
  57084. .UNINDENT
  57085. .sp
  57086. \fIwinexe\fP is less commonly available in distribution\-specific repositories.
  57087. However, it is currently being built for various distributions in 3rd party
  57088. channels:
  57089. .INDENT 0.0
  57090. .IP \(bu 2
  57091. \fI\%RPMs at pbone.net\fP
  57092. .UNINDENT
  57093. .INDENT 0.0
  57094. .IP \(bu 2
  57095. \fI\%openSUSE Build Service\fP
  57096. .UNINDENT
  57097. .INDENT 0.0
  57098. .IP \(bu 2
  57099. \fI\%pypsexec project home\fP
  57100. .UNINDENT
  57101. .INDENT 0.0
  57102. .IP \(bu 2
  57103. \fI\%smbprotocol project home\fP
  57104. .UNINDENT
  57105. .sp
  57106. Optionally WinRM can be used instead of \fIwinexe\fP if the python module \fIpywinrm\fP
  57107. is available and WinRM is supported on the target Windows version. Information
  57108. on pywinrm can be found at the project home:
  57109. .INDENT 0.0
  57110. .IP \(bu 2
  57111. \fI\%pywinrm project home\fP
  57112. .UNINDENT
  57113. .sp
  57114. Additionally, a copy of the Salt Minion Windows installer must be present on
  57115. the system on which Salt Cloud is running. This installer may be downloaded
  57116. from saltstack.com:
  57117. .INDENT 0.0
  57118. .IP \(bu 2
  57119. \fI\%SaltStack Download Area\fP
  57120. .UNINDENT
  57121. .SS Self Signed Certificates with WinRM
  57122. .sp
  57123. Salt\-Cloud can use versions of \fBpywinrm<=0.1.1\fP or \fBpywinrm>=0.2.1\fP\&.
  57124. .sp
  57125. For versions greater than \fI0.2.1\fP, \fBwinrm_verify_ssl\fP needs to be set to
  57126. \fIFalse\fP if the certificate is self signed and not verifiable.
  57127. .SS Firewall Settings
  57128. .sp
  57129. Because Salt Cloud makes use of \fIsmbclient\fP and \fIwinexe\fP, port 445 must be open
  57130. on the target image. This port is not generally open by default on a standard
  57131. Windows distribution, and care must be taken to use an image in which this port
  57132. is open, or the Windows firewall is disabled.
  57133. .sp
  57134. If supported by the cloud provider, a PowerShell script may be used to open up
  57135. this port automatically, using the cloud provider\(aqs \fIuserdata\fP\&. The following
  57136. script would open up port 445, and apply the changes:
  57137. .INDENT 0.0
  57138. .INDENT 3.5
  57139. .sp
  57140. .nf
  57141. .ft C
  57142. <powershell>
  57143. New\-NetFirewallRule \-Name "SMB445" \-DisplayName "SMB445" \-Protocol TCP \-LocalPort 445
  57144. Set\-Item (dir wsman:\elocalhost\eListener\e*\ePort \-Recurse).pspath 445 \-Force
  57145. Restart\-Service winrm
  57146. </powershell>
  57147. .ft P
  57148. .fi
  57149. .UNINDENT
  57150. .UNINDENT
  57151. .sp
  57152. For EC2, this script may be saved as a file, and specified in the provider or
  57153. profile configuration as \fIuserdata_file\fP\&. For instance:
  57154. .INDENT 0.0
  57155. .INDENT 3.5
  57156. .sp
  57157. .nf
  57158. .ft C
  57159. my\-ec2\-config:
  57160. # Pass userdata to the instance to be created
  57161. userdata_file: /etc/salt/windows\-firewall.ps1
  57162. .ft P
  57163. .fi
  57164. .UNINDENT
  57165. .UNINDENT
  57166. .sp
  57167. \fBNOTE:\fP
  57168. .INDENT 0.0
  57169. .INDENT 3.5
  57170. From versions 2016.11.0 and 2016.11.3, this file was passed through the
  57171. master\(aqs \fBrenderer\fP to template it. However, this caused
  57172. issues with non\-YAML data, so templating is no longer performed by default.
  57173. To template the userdata_file, add a \fBuserdata_template\fP option to the
  57174. cloud profile:
  57175. .INDENT 0.0
  57176. .INDENT 3.5
  57177. .sp
  57178. .nf
  57179. .ft C
  57180. my\-ec2\-config:
  57181. # Pass userdata to the instance to be created
  57182. userdata_file: /etc/salt/windows\-firewall.ps1
  57183. userdata_template: jinja
  57184. .ft P
  57185. .fi
  57186. .UNINDENT
  57187. .UNINDENT
  57188. .sp
  57189. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  57190. configuration will be checked for a \fBuserdata_template\fP value.
  57191. If this is not set, then no templating will be performed on the
  57192. userdata_file.
  57193. .sp
  57194. To disable templating in a cloud profile when a
  57195. \fBuserdata_template\fP has been set in the master configuration
  57196. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  57197. .INDENT 0.0
  57198. .INDENT 3.5
  57199. .sp
  57200. .nf
  57201. .ft C
  57202. my\-ec2\-config:
  57203. # Pass userdata to the instance to be created
  57204. userdata_file: /etc/salt/windows\-firewall.ps1
  57205. userdata_template: False
  57206. .ft P
  57207. .fi
  57208. .UNINDENT
  57209. .UNINDENT
  57210. .UNINDENT
  57211. .UNINDENT
  57212. .sp
  57213. If you are using WinRM on EC2 the HTTPS port for the WinRM service must also be
  57214. enabled in your userdata. By default EC2 Windows images only have insecure HTTP
  57215. enabled. To enable HTTPS and basic authentication required by pywinrm consider
  57216. the following userdata example:
  57217. .INDENT 0.0
  57218. .INDENT 3.5
  57219. .sp
  57220. .nf
  57221. .ft C
  57222. <powershell>
  57223. New\-NetFirewallRule \-Name "SMB445" \-DisplayName "SMB445" \-Protocol TCP \-LocalPort 445
  57224. New\-NetFirewallRule \-Name "WINRM5986" \-DisplayName "WINRM5986" \-Protocol TCP \-LocalPort 5986
  57225. winrm quickconfig \-q
  57226. winrm set winrm/config/winrs \(aq@{MaxMemoryPerShellMB="300"}\(aq
  57227. winrm set winrm/config \(aq@{MaxTimeoutms="1800000"}\(aq
  57228. winrm set winrm/config/service/auth \(aq@{Basic="true"}\(aq
  57229. $SourceStoreScope = \(aqLocalMachine\(aq
  57230. $SourceStorename = \(aqRemote Desktop\(aq
  57231. $SourceStore = New\-Object \-TypeName System.Security.Cryptography.X509Certificates.X509Store \-ArgumentList $SourceStorename, $SourceStoreScope
  57232. $SourceStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly)
  57233. $cert = $SourceStore.Certificates | Where\-Object \-FilterScript {
  57234. $_.subject \-like \(aq*\(aq
  57235. }
  57236. $DestStoreScope = \(aqLocalMachine\(aq
  57237. $DestStoreName = \(aqMy\(aq
  57238. $DestStore = New\-Object \-TypeName System.Security.Cryptography.X509Certificates.X509Store \-ArgumentList $DestStoreName, $DestStoreScope
  57239. $DestStore.Open([System.Security.Cryptography.X509Certificates.OpenFlags]::ReadWrite)
  57240. $DestStore.Add($cert)
  57241. $SourceStore.Close()
  57242. $DestStore.Close()
  57243. winrm create winrm/config/listener?Address=*+Transport=HTTPS \(ga@\(ga{CertificateThumbprint=\(ga"($cert.Thumbprint)\(ga"\(ga}
  57244. Restart\-Service winrm
  57245. </powershell>
  57246. .ft P
  57247. .fi
  57248. .UNINDENT
  57249. .UNINDENT
  57250. .sp
  57251. No certificate store is available by default on EC2 images and creating
  57252. one does not seem possible without an MMC (cannot be automated). To use the
  57253. default EC2 Windows images the above copies the RDP store.
  57254. .SS Configuration
  57255. .sp
  57256. Configuration is set as usual, with some extra configuration settings. The
  57257. location of the Windows installer on the machine that Salt Cloud is running on
  57258. must be specified. This may be done in any of the regular configuration files
  57259. (main, providers, profiles, maps). For example:
  57260. .sp
  57261. Setting the installer in \fB/etc/salt/cloud.providers\fP:
  57262. .INDENT 0.0
  57263. .INDENT 3.5
  57264. .sp
  57265. .nf
  57266. .ft C
  57267. my\-softlayer:
  57268. driver: softlayer
  57269. user: MYUSER1138
  57270. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  57271. minion:
  57272. master: saltmaster.example.com
  57273. win_installer: /root/Salt\-Minion\-2014.7.0\-AMD64\-Setup.exe
  57274. win_username: Administrator
  57275. win_password: letmein
  57276. smb_port: 445
  57277. .ft P
  57278. .fi
  57279. .UNINDENT
  57280. .UNINDENT
  57281. .sp
  57282. The default Windows user is \fIAdministrator\fP, and the default Windows password
  57283. is blank.
  57284. .sp
  57285. If WinRM is to be used \fBuse_winrm\fP needs to be set to \fITrue\fP\&. \fBwinrm_port\fP
  57286. can be used to specify a custom port (must be HTTPS listener). And
  57287. \fBwinrm_verify_ssl\fP can be set to \fIFalse\fP to use a self signed certificate.
  57288. .SS Auto\-Generated Passwords on EC2
  57289. .sp
  57290. On EC2, when the \fIwin_password\fP is set to \fIauto\fP, Salt Cloud will query EC2 for
  57291. an auto\-generated password. This password is expected to take at least 4 minutes
  57292. to generate, adding additional time to the deploy process.
  57293. .sp
  57294. When the EC2 API is queried for the auto\-generated password, it will be returned
  57295. in a message encrypted with the specified \fIkeyname\fP\&. This requires that the
  57296. appropriate \fIprivate_key\fP file is also specified. Such a profile configuration
  57297. might look like:
  57298. .INDENT 0.0
  57299. .INDENT 3.5
  57300. .sp
  57301. .nf
  57302. .ft C
  57303. windows\-server\-2012:
  57304. provider: my\-ec2\-config
  57305. image: ami\-c49c0dac
  57306. size: m1.small
  57307. securitygroup: windows
  57308. keyname: mykey
  57309. private_key: /root/mykey.pem
  57310. userdata_file: /etc/salt/windows\-firewall.ps1
  57311. win_installer: /root/Salt\-Minion\-2014.7.0\-AMD64\-Setup.exe
  57312. win_username: Administrator
  57313. win_password: auto
  57314. .ft P
  57315. .fi
  57316. .UNINDENT
  57317. .UNINDENT
  57318. .SS Cloud Provider Specifics
  57319. .SS Getting Started With Aliyun ECS
  57320. .sp
  57321. The Aliyun ECS (Elastic Computer Service) is one of the most popular public
  57322. cloud hosts in China. This cloud host can be used to manage aliyun
  57323. instance using salt\-cloud.
  57324. .sp
  57325. \fI\%http://www.aliyun.com/\fP
  57326. .SS Dependencies
  57327. .sp
  57328. This driver requires the Python \fBrequests\fP library to be installed.
  57329. .SS Configuration
  57330. .sp
  57331. Using Salt for Aliyun ECS requires aliyun access key id and key secret.
  57332. These can be found in the aliyun web interface, in the "User Center" section,
  57333. under "My Service" tab.
  57334. .INDENT 0.0
  57335. .INDENT 3.5
  57336. .sp
  57337. .nf
  57338. .ft C
  57339. # Note: This example is for /etc/salt/cloud.providers or any file in the
  57340. # /etc/salt/cloud.providers.d/ directory.
  57341. my\-aliyun\-config:
  57342. # aliyun Access Key ID
  57343. id: wDGEwGregedg3435gDgxd
  57344. # aliyun Access Key Secret
  57345. key: GDd45t43RDBTrkkkg43934t34qT43t4dgegerGEgg
  57346. location: cn\-qingdao
  57347. driver: aliyun
  57348. .ft P
  57349. .fi
  57350. .UNINDENT
  57351. .UNINDENT
  57352. .sp
  57353. \fBNOTE:\fP
  57354. .INDENT 0.0
  57355. .INDENT 3.5
  57356. Changed in version 2015.8.0.
  57357. .sp
  57358. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  57359. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  57360. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  57361. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  57362. to use \fBprovider\fP to refer to provider configurations that you define.
  57363. .UNINDENT
  57364. .UNINDENT
  57365. .SS Profiles
  57366. .SS Cloud Profiles
  57367. .sp
  57368. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  57369. \fB/etc/salt/cloud.profiles.d/\fP directory:
  57370. .INDENT 0.0
  57371. .INDENT 3.5
  57372. .sp
  57373. .nf
  57374. .ft C
  57375. aliyun_centos:
  57376. provider: my\-aliyun\-config
  57377. size: ecs.t1.small
  57378. location: cn\-qingdao
  57379. securitygroup: G1989096784427999
  57380. image: centos6u3_64_20G_aliaegis_20130816.vhd
  57381. .ft P
  57382. .fi
  57383. .UNINDENT
  57384. .UNINDENT
  57385. .sp
  57386. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  57387. command:
  57388. .INDENT 0.0
  57389. .INDENT 3.5
  57390. .sp
  57391. .nf
  57392. .ft C
  57393. # salt\-cloud \-\-list\-sizes my\-aliyun\-config
  57394. my\-aliyun\-config:
  57395. \-\-\-\-\-\-\-\-\-\-
  57396. aliyun:
  57397. \-\-\-\-\-\-\-\-\-\-
  57398. ecs.c1.large:
  57399. \-\-\-\-\-\-\-\-\-\-
  57400. CpuCoreCount:
  57401. 8
  57402. InstanceTypeId:
  57403. ecs.c1.large
  57404. MemorySize:
  57405. 16.0
  57406. \&...SNIP...
  57407. .ft P
  57408. .fi
  57409. .UNINDENT
  57410. .UNINDENT
  57411. .sp
  57412. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  57413. command:
  57414. .INDENT 0.0
  57415. .INDENT 3.5
  57416. .sp
  57417. .nf
  57418. .ft C
  57419. # salt\-cloud \-\-list\-images my\-aliyun\-config
  57420. my\-aliyun\-config:
  57421. \-\-\-\-\-\-\-\-\-\-
  57422. aliyun:
  57423. \-\-\-\-\-\-\-\-\-\-
  57424. centos5u8_64_20G_aliaegis_20131231.vhd:
  57425. \-\-\-\-\-\-\-\-\-\-
  57426. Architecture:
  57427. x86_64
  57428. Description:
  57429. ImageId:
  57430. centos5u8_64_20G_aliaegis_20131231.vhd
  57431. ImageName:
  57432. CentOS 5.8 64位
  57433. ImageOwnerAlias:
  57434. system
  57435. ImageVersion:
  57436. 1.0
  57437. OSName:
  57438. CentOS 5.8 64位
  57439. Platform:
  57440. CENTOS5
  57441. Size:
  57442. 20
  57443. Visibility:
  57444. public
  57445. \&...SNIP...
  57446. .ft P
  57447. .fi
  57448. .UNINDENT
  57449. .UNINDENT
  57450. .sp
  57451. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  57452. command:
  57453. .INDENT 0.0
  57454. .INDENT 3.5
  57455. .sp
  57456. .nf
  57457. .ft C
  57458. my\-aliyun\-config:
  57459. \-\-\-\-\-\-\-\-\-\-
  57460. aliyun:
  57461. \-\-\-\-\-\-\-\-\-\-
  57462. cn\-beijing:
  57463. \-\-\-\-\-\-\-\-\-\-
  57464. LocalName:
  57465. 北京
  57466. RegionId:
  57467. cn\-beijing
  57468. cn\-hangzhou:
  57469. \-\-\-\-\-\-\-\-\-\-
  57470. LocalName:
  57471. 杭州
  57472. RegionId:
  57473. cn\-hangzhou
  57474. cn\-hongkong:
  57475. \-\-\-\-\-\-\-\-\-\-
  57476. LocalName:
  57477. 香港
  57478. RegionId:
  57479. cn\-hongkong
  57480. cn\-qingdao:
  57481. \-\-\-\-\-\-\-\-\-\-
  57482. LocalName:
  57483. 青岛
  57484. RegionId:
  57485. cn\-qingdao
  57486. .ft P
  57487. .fi
  57488. .UNINDENT
  57489. .UNINDENT
  57490. .sp
  57491. Security Group can be obtained using the \fB\-f list_securitygroup\fP option
  57492. for the \fBsalt\-cloud\fP command:
  57493. .INDENT 0.0
  57494. .INDENT 3.5
  57495. .sp
  57496. .nf
  57497. .ft C
  57498. # salt\-cloud \-\-location=cn\-qingdao \-f list_securitygroup my\-aliyun\-config
  57499. my\-aliyun\-config:
  57500. \-\-\-\-\-\-\-\-\-\-
  57501. aliyun:
  57502. \-\-\-\-\-\-\-\-\-\-
  57503. G1989096784427999:
  57504. \-\-\-\-\-\-\-\-\-\-
  57505. Description:
  57506. G1989096784427999
  57507. SecurityGroupId:
  57508. G1989096784427999
  57509. .ft P
  57510. .fi
  57511. .UNINDENT
  57512. .UNINDENT
  57513. .sp
  57514. \fBNOTE:\fP
  57515. .INDENT 0.0
  57516. .INDENT 3.5
  57517. Aliyun ECS REST API documentation is available from \fI\%Aliyun ECS API\fP\&.
  57518. .UNINDENT
  57519. .UNINDENT
  57520. .SS Getting Started With Azure
  57521. .sp
  57522. New in version 2014.1.0.
  57523. .sp
  57524. Azure is a cloud service by Microsoft providing virtual machines, SQL services,
  57525. media services, and more. This document describes how to use Salt Cloud to
  57526. create a virtual machine on Azure, with Salt installed.
  57527. .sp
  57528. More information about Azure is located at \fI\%http://www.windowsazure.com/\fP\&.
  57529. .SS Dependencies
  57530. .INDENT 0.0
  57531. .IP \(bu 2
  57532. \fI\%Microsoft Azure SDK for Python\fP >= 1.0.2
  57533. .IP \(bu 2
  57534. The python\-requests library, for Python < 2.7.9.
  57535. .IP \(bu 2
  57536. A Microsoft Azure account
  57537. .IP \(bu 2
  57538. OpenSSL (to generate the certificates)
  57539. .IP \(bu 2
  57540. \fI\%Salt\fP
  57541. .UNINDENT
  57542. .SS Configuration
  57543. .sp
  57544. Set up the provider config at \fB/etc/salt/cloud.providers.d/azure.conf\fP:
  57545. .INDENT 0.0
  57546. .INDENT 3.5
  57547. .sp
  57548. .nf
  57549. .ft C
  57550. # Note: This example is for /etc/salt/cloud.providers.d/azure.conf
  57551. my\-azure\-config:
  57552. driver: azure
  57553. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  57554. certificate_path: /etc/salt/azure.pem
  57555. # Set up the location of the salt master
  57556. #
  57557. minion:
  57558. master: saltmaster.example.com
  57559. # Optional
  57560. management_host: management.core.windows.net
  57561. .ft P
  57562. .fi
  57563. .UNINDENT
  57564. .UNINDENT
  57565. .sp
  57566. The certificate used must be generated by the user. OpenSSL can be used to
  57567. create the management certificates. Two certificates are needed: a .cer file,
  57568. which is uploaded to Azure, and a .pem file, which is stored locally.
  57569. .sp
  57570. To create the .pem file, execute the following command:
  57571. .INDENT 0.0
  57572. .INDENT 3.5
  57573. .sp
  57574. .nf
  57575. .ft C
  57576. openssl req \-x509 \-nodes \-days 365 \-newkey rsa:1024 \-keyout /etc/salt/azure.pem \-out /etc/salt/azure.pem
  57577. .ft P
  57578. .fi
  57579. .UNINDENT
  57580. .UNINDENT
  57581. .sp
  57582. To create the .cer file, execute the following command:
  57583. .INDENT 0.0
  57584. .INDENT 3.5
  57585. .sp
  57586. .nf
  57587. .ft C
  57588. openssl x509 \-inform pem \-in /etc/salt/azure.pem \-outform der \-out /etc/salt/azure.cer
  57589. .ft P
  57590. .fi
  57591. .UNINDENT
  57592. .UNINDENT
  57593. .sp
  57594. After creating these files, the .cer file will need to be uploaded to
  57595. Azure via the "Upload a Management Certificate" action of the "Management Certificates"
  57596. tab within the "Settings" section of the management portal.
  57597. .sp
  57598. Optionally, a \fBmanagement_host\fP may be configured, if necessary for the region.
  57599. .sp
  57600. \fBNOTE:\fP
  57601. .INDENT 0.0
  57602. .INDENT 3.5
  57603. Changed in version 2015.8.0.
  57604. .sp
  57605. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  57606. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  57607. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  57608. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  57609. to use \fBprovider\fP to refer to provider configurations that you define.
  57610. .UNINDENT
  57611. .UNINDENT
  57612. .SS Cloud Profiles
  57613. .sp
  57614. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  57615. .INDENT 0.0
  57616. .INDENT 3.5
  57617. .sp
  57618. .nf
  57619. .ft C
  57620. azure\-ubuntu:
  57621. provider: my\-azure\-config
  57622. image: \(aqb39f27a8b8c64d52b05eac6a62ebad85__Ubuntu\-12_04_3\-LTS\-amd64\-server\-20131003\-en\-us\-30GB\(aq
  57623. size: Small
  57624. location: \(aqEast US\(aq
  57625. ssh_username: azureuser
  57626. ssh_password: verybadpass
  57627. slot: production
  57628. media_link: \(aqhttp://portalvhdabcdefghijklmn.blob.core.windows.net/vhds\(aq
  57629. virtual_network_name: azure\-virtual\-network
  57630. subnet_name: azure\-subnet
  57631. .ft P
  57632. .fi
  57633. .UNINDENT
  57634. .UNINDENT
  57635. .sp
  57636. These options are described in more detail below. Once configured, the profile
  57637. can be realized with a salt command:
  57638. .INDENT 0.0
  57639. .INDENT 3.5
  57640. .sp
  57641. .nf
  57642. .ft C
  57643. salt\-cloud \-p azure\-ubuntu newinstance
  57644. .ft P
  57645. .fi
  57646. .UNINDENT
  57647. .UNINDENT
  57648. .sp
  57649. This will create an salt minion instance named \fBnewinstance\fP in Azure. If
  57650. the command was executed on the salt\-master, its Salt key will automatically
  57651. be signed on the master.
  57652. .sp
  57653. Once the instance has been created with salt\-minion installed, connectivity to
  57654. it can be verified with Salt:
  57655. .INDENT 0.0
  57656. .INDENT 3.5
  57657. .sp
  57658. .nf
  57659. .ft C
  57660. salt newinstance test.version
  57661. .ft P
  57662. .fi
  57663. .UNINDENT
  57664. .UNINDENT
  57665. .SS Profile Options
  57666. .sp
  57667. The following options are currently available for Azure.
  57668. .SS provider
  57669. .sp
  57670. The name of the provider as configured in
  57671. \fI/etc/salt/cloud.providers.d/azure.conf\fP\&.
  57672. .SS image
  57673. .sp
  57674. The name of the image to use to create a VM. Available images can be viewed
  57675. using the following command:
  57676. .INDENT 0.0
  57677. .INDENT 3.5
  57678. .sp
  57679. .nf
  57680. .ft C
  57681. salt\-cloud \-\-list\-images my\-azure\-config
  57682. .ft P
  57683. .fi
  57684. .UNINDENT
  57685. .UNINDENT
  57686. .SS size
  57687. .sp
  57688. The name of the size to use to create a VM. Available sizes can be viewed using
  57689. the following command:
  57690. .INDENT 0.0
  57691. .INDENT 3.5
  57692. .sp
  57693. .nf
  57694. .ft C
  57695. salt\-cloud \-\-list\-sizes my\-azure\-config
  57696. .ft P
  57697. .fi
  57698. .UNINDENT
  57699. .UNINDENT
  57700. .SS location
  57701. .sp
  57702. The name of the location to create a VM in. Available locations can be viewed
  57703. using the following command:
  57704. .INDENT 0.0
  57705. .INDENT 3.5
  57706. .sp
  57707. .nf
  57708. .ft C
  57709. salt\-cloud \-\-list\-locations my\-azure\-config
  57710. .ft P
  57711. .fi
  57712. .UNINDENT
  57713. .UNINDENT
  57714. .SS affinity_group
  57715. .sp
  57716. The name of the affinity group to create a VM in. Either a \fBlocation\fP or an
  57717. \fBaffinity_group\fP may be specified, but not both. See Affinity Groups below.
  57718. .SS ssh_username
  57719. .sp
  57720. The user to use to log into the newly\-created VM to install Salt.
  57721. .SS ssh_password
  57722. .sp
  57723. The password to use to log into the newly\-created VM to install Salt.
  57724. .SS slot
  57725. .sp
  57726. The environment to which the hosted service is deployed. Valid values are
  57727. \fIstaging\fP or \fIproduction\fP\&. When set to \fIproduction\fP, the resulting URL of the
  57728. new VM will be \fI<vm_name>.cloudapp.net\fP\&. When set to \fIstaging\fP, the resulting
  57729. URL will contain a generated hash instead.
  57730. .SS media_link
  57731. .sp
  57732. This is the URL of the container that will store the disk that this VM uses.
  57733. Currently, this container must already exist. If a VM has previously been
  57734. created in the associated account, a container should already exist. In the web
  57735. interface, go into the Storage area and click one of the available storage
  57736. selections. Click the Containers link, and then copy the URL from the container
  57737. that will be used. It generally looks like:
  57738. .INDENT 0.0
  57739. .INDENT 3.5
  57740. .sp
  57741. .nf
  57742. .ft C
  57743. http://portalvhdabcdefghijklmn.blob.core.windows.net/vhds
  57744. .ft P
  57745. .fi
  57746. .UNINDENT
  57747. .UNINDENT
  57748. .SS service_name
  57749. .sp
  57750. The name of the service in which to create the VM. If this is not specified,
  57751. then a service will be created with the same name as the VM.
  57752. .SS virtual_network_name
  57753. .sp
  57754. Optional. The name of the virtual network for the VM to join. If this is not
  57755. specified, then no virtual network will be joined.
  57756. .SS subnet_name
  57757. .sp
  57758. Optional. The name of the subnet in the virtual network for the VM to join.
  57759. Requires that a \fBvirtual_network_name\fP is specified.
  57760. .SS Show Instance
  57761. .sp
  57762. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on
  57763. a single instance only. In an environment with several machines, this will save
  57764. a user from having to sort through all instance data, just to examine a single
  57765. instance.
  57766. .INDENT 0.0
  57767. .INDENT 3.5
  57768. .sp
  57769. .nf
  57770. .ft C
  57771. salt\-cloud \-a show_instance myinstance
  57772. .ft P
  57773. .fi
  57774. .UNINDENT
  57775. .UNINDENT
  57776. .SS Destroying VMs
  57777. .sp
  57778. There are certain options which can be specified in the global cloud
  57779. configuration file (usually \fB/etc/salt/cloud\fP) which affect Salt Cloud\(aqs
  57780. behavior when a VM is destroyed.
  57781. .SS cleanup_disks
  57782. .sp
  57783. New in version 2015.8.0.
  57784. .sp
  57785. Default is \fBFalse\fP\&. When set to \fBTrue\fP, Salt Cloud will wait for the VM to
  57786. be destroyed, then attempt to destroy the main disk that is associated with the
  57787. VM.
  57788. .SS cleanup_vhds
  57789. .sp
  57790. New in version 2015.8.0.
  57791. .sp
  57792. Default is \fBFalse\fP\&. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&. When
  57793. also set to \fBTrue\fP, Salt Cloud will ask Azure to delete the VHD associated
  57794. with the disk that is also destroyed.
  57795. .SS cleanup_services
  57796. .sp
  57797. New in version 2015.8.0.
  57798. .sp
  57799. Default is \fBFalse\fP\&. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&. When
  57800. also set to \fBTrue\fP, Salt Cloud will wait for the disk to be destroyed, then
  57801. attempt to remove the service that is associated with the VM. Because the disk
  57802. belongs to the service, the disk must be destroyed before the service can be.
  57803. .SS Managing Hosted Services
  57804. .sp
  57805. New in version 2015.8.0.
  57806. .sp
  57807. An account can have one or more hosted services. A hosted service is required
  57808. in order to create a VM. However, as mentioned above, if a hosted service is not
  57809. specified when a VM is created, then one will automatically be created with the
  57810. name of the name. The following functions are also available.
  57811. .SS create_service
  57812. .sp
  57813. Create a hosted service. The following options are available.
  57814. .SS name
  57815. .sp
  57816. Required. The name of the hosted service to create.
  57817. .SS label
  57818. .sp
  57819. Required. A label to apply to the hosted service.
  57820. .SS description
  57821. .sp
  57822. Optional. A longer description of the hosted service.
  57823. .SS location
  57824. .sp
  57825. Required, if \fBaffinity_group\fP is not set. The location in which to create the
  57826. hosted service. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57827. but not both.
  57828. .SS affinity_group
  57829. .sp
  57830. Required, if \fBlocation\fP is not set. The affinity group in which to create the
  57831. hosted service. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57832. but not both.
  57833. .SS extended_properties
  57834. .sp
  57835. Optional. Dictionary containing name/value pairs of hosted service properties.
  57836. You can have a maximum of 50 extended property name/value pairs. The maximum
  57837. length of the Name element is 64 characters, only alphanumeric characters and
  57838. underscores are valid in the Name, and the name must start with a letter.
  57839. The value has a maximum length of 255 characters.
  57840. .SS CLI Example
  57841. .sp
  57842. The following example illustrates creating a hosted service.
  57843. .INDENT 0.0
  57844. .INDENT 3.5
  57845. .sp
  57846. .nf
  57847. .ft C
  57848. salt\-cloud \-f create_service my\-azure name=my\-service label=my\-service location=\(aqWest US\(aq
  57849. .ft P
  57850. .fi
  57851. .UNINDENT
  57852. .UNINDENT
  57853. .SS show_service
  57854. .sp
  57855. Return details about a specific hosted service. Can also be called with
  57856. \fBget_service\fP\&.
  57857. .INDENT 0.0
  57858. .INDENT 3.5
  57859. .sp
  57860. .nf
  57861. .ft C
  57862. salt\-cloud \-f show_storage my\-azure name=my\-service
  57863. .ft P
  57864. .fi
  57865. .UNINDENT
  57866. .UNINDENT
  57867. .SS list_services
  57868. .sp
  57869. List all hosted services associates with the subscription.
  57870. .INDENT 0.0
  57871. .INDENT 3.5
  57872. .sp
  57873. .nf
  57874. .ft C
  57875. salt\-cloud \-f list_services my\-azure\-config
  57876. .ft P
  57877. .fi
  57878. .UNINDENT
  57879. .UNINDENT
  57880. .SS delete_service
  57881. .sp
  57882. Delete a specific hosted service.
  57883. .INDENT 0.0
  57884. .INDENT 3.5
  57885. .sp
  57886. .nf
  57887. .ft C
  57888. salt\-cloud \-f delete_service my\-azure name=my\-service
  57889. .ft P
  57890. .fi
  57891. .UNINDENT
  57892. .UNINDENT
  57893. .SS Managing Storage Accounts
  57894. .sp
  57895. New in version 2015.8.0.
  57896. .sp
  57897. Salt Cloud can manage storage accounts associated with the account. The
  57898. following functions are available. Deprecated marked as deprecated are marked
  57899. as such as per the SDK documentation, but are still included for completeness
  57900. with the SDK.
  57901. .SS create_storage
  57902. .sp
  57903. Create a storage account. The following options are supported.
  57904. .SS name
  57905. .sp
  57906. Required. The name of the storage account to create.
  57907. .SS label
  57908. .sp
  57909. Required. A label to apply to the storage account.
  57910. .SS description
  57911. .sp
  57912. Optional. A longer description of the storage account.
  57913. .SS location
  57914. .sp
  57915. Required, if \fBaffinity_group\fP is not set. The location in which to create the
  57916. storage account. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57917. but not both.
  57918. .SS affinity_group
  57919. .sp
  57920. Required, if \fBlocation\fP is not set. The affinity group in which to create the
  57921. storage account. Either the \fBlocation\fP or the \fBaffinity_group\fP must be set,
  57922. but not both.
  57923. .SS extended_properties
  57924. .sp
  57925. Optional. Dictionary containing name/value pairs of storage account properties.
  57926. You can have a maximum of 50 extended property name/value pairs. The maximum
  57927. length of the Name element is 64 characters, only alphanumeric characters and
  57928. underscores are valid in the Name, and the name must start with a letter. The
  57929. value has a maximum length of 255 characters.
  57930. .SS geo_replication_enabled
  57931. .sp
  57932. Deprecated. Replaced by the account_type parameter.
  57933. .SS account_type
  57934. .sp
  57935. Specifies whether the account supports locally\-redundant storage, geo\-redundant
  57936. storage, zone\-redundant storage, or read access geo\-redundant storage. Possible
  57937. values are:
  57938. .INDENT 0.0
  57939. .IP \(bu 2
  57940. Standard_LRS
  57941. .IP \(bu 2
  57942. Standard_ZRS
  57943. .IP \(bu 2
  57944. Standard_GRS
  57945. .IP \(bu 2
  57946. Standard_RAGRS
  57947. .UNINDENT
  57948. .SS CLI Example
  57949. .sp
  57950. The following example illustrates creating a storage account.
  57951. .INDENT 0.0
  57952. .INDENT 3.5
  57953. .sp
  57954. .nf
  57955. .ft C
  57956. salt\-cloud \-f create_storage my\-azure name=my\-storage label=my\-storage location=\(aqWest US\(aq
  57957. .ft P
  57958. .fi
  57959. .UNINDENT
  57960. .UNINDENT
  57961. .SS list_storage
  57962. .sp
  57963. List all storage accounts associates with the subscription.
  57964. .INDENT 0.0
  57965. .INDENT 3.5
  57966. .sp
  57967. .nf
  57968. .ft C
  57969. salt\-cloud \-f list_storage my\-azure\-config
  57970. .ft P
  57971. .fi
  57972. .UNINDENT
  57973. .UNINDENT
  57974. .SS show_storage
  57975. .sp
  57976. Return details about a specific storage account. Can also be called with
  57977. \fBget_storage\fP\&.
  57978. .INDENT 0.0
  57979. .INDENT 3.5
  57980. .sp
  57981. .nf
  57982. .ft C
  57983. salt\-cloud \-f show_storage my\-azure name=my\-storage
  57984. .ft P
  57985. .fi
  57986. .UNINDENT
  57987. .UNINDENT
  57988. .SS update_storage
  57989. .sp
  57990. Update details concerning a storage account. Any of the options available in
  57991. \fBcreate_storage\fP can be used, but the name cannot be changed.
  57992. .INDENT 0.0
  57993. .INDENT 3.5
  57994. .sp
  57995. .nf
  57996. .ft C
  57997. salt\-cloud \-f update_storage my\-azure name=my\-storage label=my\-storage
  57998. .ft P
  57999. .fi
  58000. .UNINDENT
  58001. .UNINDENT
  58002. .SS delete_storage
  58003. .sp
  58004. Delete a specific storage account.
  58005. .INDENT 0.0
  58006. .INDENT 3.5
  58007. .sp
  58008. .nf
  58009. .ft C
  58010. salt\-cloud \-f delete_storage my\-azure name=my\-storage
  58011. .ft P
  58012. .fi
  58013. .UNINDENT
  58014. .UNINDENT
  58015. .SS show_storage_keys
  58016. .sp
  58017. Returns the primary and secondary access keys for the specified storage account.
  58018. .INDENT 0.0
  58019. .INDENT 3.5
  58020. .sp
  58021. .nf
  58022. .ft C
  58023. salt\-cloud \-f show_storage_keys my\-azure name=my\-storage
  58024. .ft P
  58025. .fi
  58026. .UNINDENT
  58027. .UNINDENT
  58028. .SS regenerate_storage_keys
  58029. .sp
  58030. Regenerate storage account keys. Requires a key_type ("primary" or "secondary")
  58031. to be specified.
  58032. .INDENT 0.0
  58033. .INDENT 3.5
  58034. .sp
  58035. .nf
  58036. .ft C
  58037. salt\-cloud \-f regenerate_storage_keys my\-azure name=my\-storage key_type=primary
  58038. .ft P
  58039. .fi
  58040. .UNINDENT
  58041. .UNINDENT
  58042. .SS Managing Disks
  58043. .sp
  58044. New in version 2015.8.0.
  58045. .sp
  58046. When a VM is created, a disk will also be created for it. The following
  58047. functions are available for managing disks. Deprecated marked as deprecated are
  58048. marked as such as per the SDK documentation, but are still included for
  58049. completeness with the SDK.
  58050. .SS show_disk
  58051. .sp
  58052. Return details about a specific disk. Can also be called with \fBget_disk\fP\&.
  58053. .INDENT 0.0
  58054. .INDENT 3.5
  58055. .sp
  58056. .nf
  58057. .ft C
  58058. salt\-cloud \-f show_disk my\-azure name=my\-disk
  58059. .ft P
  58060. .fi
  58061. .UNINDENT
  58062. .UNINDENT
  58063. .SS list_disks
  58064. .sp
  58065. List all disks associates with the account.
  58066. .INDENT 0.0
  58067. .INDENT 3.5
  58068. .sp
  58069. .nf
  58070. .ft C
  58071. salt\-cloud \-f list_disks my\-azure
  58072. .ft P
  58073. .fi
  58074. .UNINDENT
  58075. .UNINDENT
  58076. .SS update_disk
  58077. .sp
  58078. Update details for a disk. The following options are available.
  58079. .SS name
  58080. .sp
  58081. Required. The name of the disk to update.
  58082. .SS has_operating_system
  58083. .sp
  58084. Deprecated.
  58085. .SS label
  58086. .sp
  58087. Required. The label for the disk.
  58088. .SS media_link
  58089. .sp
  58090. Deprecated. The location of the disk in the account, including the storage
  58091. container that it is in. This should not need to be changed.
  58092. .SS new_name
  58093. .sp
  58094. Deprecated. If renaming the disk, the new name.
  58095. .SS os
  58096. .sp
  58097. Deprecated.
  58098. .SS CLI Example
  58099. .sp
  58100. The following example illustrates updating a disk.
  58101. .INDENT 0.0
  58102. .INDENT 3.5
  58103. .sp
  58104. .nf
  58105. .ft C
  58106. salt\-cloud \-f update_disk my\-azure name=my\-disk label=my\-disk
  58107. .ft P
  58108. .fi
  58109. .UNINDENT
  58110. .UNINDENT
  58111. .SS delete_disk
  58112. .sp
  58113. Delete a specific disk.
  58114. .INDENT 0.0
  58115. .INDENT 3.5
  58116. .sp
  58117. .nf
  58118. .ft C
  58119. salt\-cloud \-f delete_disk my\-azure name=my\-disk
  58120. .ft P
  58121. .fi
  58122. .UNINDENT
  58123. .UNINDENT
  58124. .SS Managing Service Certificates
  58125. .sp
  58126. New in version 2015.8.0.
  58127. .sp
  58128. Stored at the cloud service level, these certificates are used by your deployed
  58129. services. For more information on service certificates, see the following link:
  58130. .INDENT 0.0
  58131. .IP \(bu 2
  58132. \fI\%Manage Certificates\fP
  58133. .UNINDENT
  58134. .sp
  58135. The following functions are available.
  58136. .SS list_service_certificates
  58137. .sp
  58138. List service certificates associated with the account.
  58139. .INDENT 0.0
  58140. .INDENT 3.5
  58141. .sp
  58142. .nf
  58143. .ft C
  58144. salt\-cloud \-f list_service_certificates my\-azure
  58145. .ft P
  58146. .fi
  58147. .UNINDENT
  58148. .UNINDENT
  58149. .SS show_service_certificate
  58150. .sp
  58151. Show the data for a specific service certificate associated with the account.
  58152. The \fBname\fP, \fBthumbprint\fP, and \fBthumbalgorithm\fP can be obtained from
  58153. \fBlist_service_certificates\fP\&. Can also be called with
  58154. \fBget_service_certificate\fP\&.
  58155. .INDENT 0.0
  58156. .INDENT 3.5
  58157. .sp
  58158. .nf
  58159. .ft C
  58160. salt\-cloud \-f show_service_certificate my\-azure name=my_service_certificate \e
  58161. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58162. .ft P
  58163. .fi
  58164. .UNINDENT
  58165. .UNINDENT
  58166. .SS add_service_certificate
  58167. .sp
  58168. Add a service certificate to the account. This requires that a certificate
  58169. already exists, which is then added to the account. For more information on
  58170. creating the certificate itself, see:
  58171. .INDENT 0.0
  58172. .IP \(bu 2
  58173. \fI\%Create a Service Certificate for Azure\fP
  58174. .UNINDENT
  58175. .sp
  58176. The following options are available.
  58177. .SS name
  58178. .sp
  58179. Required. The name of the hosted service that the certificate will belong to.
  58180. .SS data
  58181. .sp
  58182. Required. The base\-64 encoded form of the pfx file.
  58183. .SS certificate_format
  58184. .sp
  58185. Required. The service certificate format. The only supported value is pfx.
  58186. .SS password
  58187. .sp
  58188. The certificate password.
  58189. .INDENT 0.0
  58190. .INDENT 3.5
  58191. .sp
  58192. .nf
  58193. .ft C
  58194. salt\-cloud \-f add_service_certificate my\-azure name=my\-cert \e
  58195. data=\(aq...CERT_DATA...\(aq certificate_format=pfx password=verybadpass
  58196. .ft P
  58197. .fi
  58198. .UNINDENT
  58199. .UNINDENT
  58200. .SS delete_service_certificate
  58201. .sp
  58202. Delete a service certificate from the account. The \fBname\fP, \fBthumbprint\fP,
  58203. and \fBthumbalgorithm\fP can be obtained from \fBlist_service_certificates\fP\&.
  58204. .INDENT 0.0
  58205. .INDENT 3.5
  58206. .sp
  58207. .nf
  58208. .ft C
  58209. salt\-cloud \-f delete_service_certificate my\-azure \e
  58210. name=my_service_certificate \e
  58211. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58212. .ft P
  58213. .fi
  58214. .UNINDENT
  58215. .UNINDENT
  58216. .SS Managing Management Certificates
  58217. .sp
  58218. New in version 2015.8.0.
  58219. .sp
  58220. A Azure management certificate is an X.509 v3 certificate used to authenticate
  58221. an agent, such as Visual Studio Tools for Windows Azure or a client application
  58222. that uses the Service Management API, acting on behalf of the subscription owner
  58223. to manage subscription resources. Azure management certificates are uploaded to
  58224. Azure and stored at the subscription level. The management certificate store can
  58225. hold up to 100 certificates per subscription. These certificates are used to
  58226. authenticate your Windows Azure deployment.
  58227. .sp
  58228. For more information on management certificates, see the following link.
  58229. .INDENT 0.0
  58230. .IP \(bu 2
  58231. \fI\%Manage Certificates\fP
  58232. .UNINDENT
  58233. .sp
  58234. The following functions are available.
  58235. .SS list_management_certificates
  58236. .sp
  58237. List management certificates associated with the account.
  58238. .INDENT 0.0
  58239. .INDENT 3.5
  58240. .sp
  58241. .nf
  58242. .ft C
  58243. salt\-cloud \-f list_management_certificates my\-azure
  58244. .ft P
  58245. .fi
  58246. .UNINDENT
  58247. .UNINDENT
  58248. .SS show_management_certificate
  58249. .sp
  58250. Show the data for a specific management certificate associated with the account.
  58251. The \fBname\fP, \fBthumbprint\fP, and \fBthumbalgorithm\fP can be obtained from
  58252. \fBlist_management_certificates\fP\&. Can also be called with
  58253. \fBget_management_certificate\fP\&.
  58254. .INDENT 0.0
  58255. .INDENT 3.5
  58256. .sp
  58257. .nf
  58258. .ft C
  58259. salt\-cloud \-f show_management_certificate my\-azure name=my_management_certificate \e
  58260. thumbalgorithm=sha1 thumbprint=0123456789ABCDEF
  58261. .ft P
  58262. .fi
  58263. .UNINDENT
  58264. .UNINDENT
  58265. .SS add_management_certificate
  58266. .sp
  58267. Management certificates must have a key length of at least 2048 bits and should
  58268. reside in the Personal certificate store. When the certificate is installed on
  58269. the client, it should contain the private key of the certificate. To upload to
  58270. the certificate to the Microsoft Azure Management Portal, you must export it as
  58271. a .cer format file that does not contain the private key. For more information
  58272. on creating management certificates, see the following link:
  58273. .INDENT 0.0
  58274. .IP \(bu 2
  58275. \fI\%Create and Upload a Management Certificate for Azure\fP
  58276. .UNINDENT
  58277. .sp
  58278. The following options are available.
  58279. .SS public_key
  58280. .sp
  58281. A base64 representation of the management certificate public key.
  58282. .SS thumbprint
  58283. .sp
  58284. The thumb print that uniquely identifies the management certificate.
  58285. .SS data
  58286. .sp
  58287. The certificate\(aqs raw data in base\-64 encoded .cer format.
  58288. .INDENT 0.0
  58289. .INDENT 3.5
  58290. .sp
  58291. .nf
  58292. .ft C
  58293. salt\-cloud \-f add_management_certificate my\-azure public_key=\(aq...PUBKEY...\(aq \e
  58294. thumbprint=0123456789ABCDEF data=\(aq...CERT_DATA...\(aq
  58295. .ft P
  58296. .fi
  58297. .UNINDENT
  58298. .UNINDENT
  58299. .SS delete_management_certificate
  58300. .sp
  58301. Delete a management certificate from the account. The \fBthumbprint\fP can be
  58302. obtained from \fBlist_management_certificates\fP\&.
  58303. .INDENT 0.0
  58304. .INDENT 3.5
  58305. .sp
  58306. .nf
  58307. .ft C
  58308. salt\-cloud \-f delete_management_certificate my\-azure thumbprint=0123456789ABCDEF
  58309. .ft P
  58310. .fi
  58311. .UNINDENT
  58312. .UNINDENT
  58313. .SS Virtual Network Management
  58314. .sp
  58315. New in version 2015.8.0.
  58316. .sp
  58317. The following are functions for managing virtual networks.
  58318. .SS list_virtual_networks
  58319. .sp
  58320. List input endpoints associated with the deployment.
  58321. .INDENT 0.0
  58322. .INDENT 3.5
  58323. .sp
  58324. .nf
  58325. .ft C
  58326. salt\-cloud \-f list_virtual_networks my\-azure service=myservice deployment=mydeployment
  58327. .ft P
  58328. .fi
  58329. .UNINDENT
  58330. .UNINDENT
  58331. .SS Managing Input Endpoints
  58332. .sp
  58333. New in version 2015.8.0.
  58334. .sp
  58335. Input endpoints are used to manage port access for roles. Because endpoints
  58336. cannot be managed by the Azure Python SDK, Salt Cloud uses the API directly.
  58337. With versions of Python before 2.7.9, the \fBrequests\-python\fP package needs to
  58338. be installed in order for this to work. Additionally, the following needs to be
  58339. set in the master\(aqs configuration file:
  58340. .INDENT 0.0
  58341. .INDENT 3.5
  58342. .sp
  58343. .nf
  58344. .ft C
  58345. backend: requests
  58346. .ft P
  58347. .fi
  58348. .UNINDENT
  58349. .UNINDENT
  58350. .sp
  58351. The following functions are available.
  58352. .SS list_input_endpoints
  58353. .sp
  58354. List input endpoints associated with the deployment
  58355. .INDENT 0.0
  58356. .INDENT 3.5
  58357. .sp
  58358. .nf
  58359. .ft C
  58360. salt\-cloud \-f list_input_endpoints my\-azure service=myservice deployment=mydeployment
  58361. .ft P
  58362. .fi
  58363. .UNINDENT
  58364. .UNINDENT
  58365. .SS show_input_endpoint
  58366. .sp
  58367. Show an input endpoint associated with the deployment
  58368. .INDENT 0.0
  58369. .INDENT 3.5
  58370. .sp
  58371. .nf
  58372. .ft C
  58373. salt\-cloud \-f show_input_endpoint my\-azure service=myservice \e
  58374. deployment=mydeployment name=SSH
  58375. .ft P
  58376. .fi
  58377. .UNINDENT
  58378. .UNINDENT
  58379. .SS add_input_endpoint
  58380. .sp
  58381. Add an input endpoint to the deployment. Please note that there may be a delay
  58382. before the changes show up. The following options are available.
  58383. .SS service
  58384. .sp
  58385. Required. The name of the hosted service which the VM belongs to.
  58386. .SS deployment
  58387. .sp
  58388. Required. The name of the deployment that the VM belongs to. If the VM was
  58389. created with Salt Cloud, the deployment name probably matches the VM name.
  58390. .SS role
  58391. .sp
  58392. Required. The name of the role that the VM belongs to. If the VM was created
  58393. with Salt Cloud, the role name probably matches the VM name.
  58394. .SS name
  58395. .sp
  58396. Required. The name of the input endpoint. This typically matches the port that
  58397. the endpoint is set to. For instance, port 22 would be called SSH.
  58398. .SS port
  58399. .sp
  58400. Required. The public (Internet\-facing) port that is used for the endpoint.
  58401. .SS local_port
  58402. .sp
  58403. Optional. The private port on the VM itself that will be matched with the port.
  58404. This is typically the same as the \fBport\fP\&. If this value is not specified, it
  58405. will be copied from \fBport\fP\&.
  58406. .SS protocol
  58407. .sp
  58408. Required. Either \fBtcp\fP or \fBudp\fP\&.
  58409. .SS enable_direct_server_return
  58410. .sp
  58411. Optional. If an internal load balancer exists in the account, it can be used
  58412. with a direct server return. The default value is \fBFalse\fP\&. Please see the
  58413. following article for an explanation of this option.
  58414. .INDENT 0.0
  58415. .IP \(bu 2
  58416. \fI\%Load Balancing for Azure Infrastructure Services\fP
  58417. .UNINDENT
  58418. .SS timeout_for_tcp_idle_connection
  58419. .sp
  58420. Optional. The default value is \fB4\fP\&. Please see the following article for an
  58421. explanation of this option.
  58422. .INDENT 0.0
  58423. .IP \(bu 2
  58424. \fI\%Configurable Idle Timeout for Azure Load Balancer\fP
  58425. .UNINDENT
  58426. .SS CLI Example
  58427. .sp
  58428. The following example illustrates adding an input endpoint.
  58429. .INDENT 0.0
  58430. .INDENT 3.5
  58431. .sp
  58432. .nf
  58433. .ft C
  58434. salt\-cloud \-f add_input_endpoint my\-azure service=myservice \e
  58435. deployment=mydeployment role=myrole name=HTTP local_port=80 \e
  58436. port=80 protocol=tcp enable_direct_server_return=False \e
  58437. timeout_for_tcp_idle_connection=4
  58438. .ft P
  58439. .fi
  58440. .UNINDENT
  58441. .UNINDENT
  58442. .SS update_input_endpoint
  58443. .sp
  58444. Updates the details for a specific input endpoint. All options from
  58445. \fBadd_input_endpoint\fP are supported.
  58446. .INDENT 0.0
  58447. .INDENT 3.5
  58448. .sp
  58449. .nf
  58450. .ft C
  58451. salt\-cloud \-f update_input_endpoint my\-azure service=myservice \e
  58452. deployment=mydeployment role=myrole name=HTTP local_port=80 \e
  58453. port=80 protocol=tcp enable_direct_server_return=False \e
  58454. timeout_for_tcp_idle_connection=4
  58455. .ft P
  58456. .fi
  58457. .UNINDENT
  58458. .UNINDENT
  58459. .SS delete_input_endpoint
  58460. .sp
  58461. Delete an input endpoint from the deployment. Please note that there may be a
  58462. delay before the changes show up. The following items are required.
  58463. .SS CLI Example
  58464. .sp
  58465. The following example illustrates deleting an input endpoint.
  58466. .SS service
  58467. .sp
  58468. The name of the hosted service which the VM belongs to.
  58469. .SS deployment
  58470. .sp
  58471. The name of the deployment that the VM belongs to. If the VM was created with
  58472. Salt Cloud, the deployment name probably matches the VM name.
  58473. .SS role
  58474. .sp
  58475. The name of the role that the VM belongs to. If the VM was created with Salt
  58476. Cloud, the role name probably matches the VM name.
  58477. .SS name
  58478. .sp
  58479. The name of the input endpoint. This typically matches the port that the
  58480. endpoint is set to. For instance, port 22 would be called SSH.
  58481. .INDENT 0.0
  58482. .INDENT 3.5
  58483. .sp
  58484. .nf
  58485. .ft C
  58486. salt\-cloud \-f delete_input_endpoint my\-azure service=myservice \e
  58487. deployment=mydeployment role=myrole name=HTTP
  58488. .ft P
  58489. .fi
  58490. .UNINDENT
  58491. .UNINDENT
  58492. .SS Managing Affinity Groups
  58493. .sp
  58494. New in version 2015.8.0.
  58495. .sp
  58496. Affinity groups allow you to group your Azure services to optimize performance.
  58497. All services and VMs within an affinity group will be located in the same
  58498. region. For more information on Affinity groups, see the following link:
  58499. .INDENT 0.0
  58500. .IP \(bu 2
  58501. \fI\%Create an Affinity Group in the Management Portal\fP
  58502. .UNINDENT
  58503. .sp
  58504. The following functions are available.
  58505. .SS list_affinity_groups
  58506. .sp
  58507. List input endpoints associated with the account
  58508. .INDENT 0.0
  58509. .INDENT 3.5
  58510. .sp
  58511. .nf
  58512. .ft C
  58513. salt\-cloud \-f list_affinity_groups my\-azure
  58514. .ft P
  58515. .fi
  58516. .UNINDENT
  58517. .UNINDENT
  58518. .SS show_affinity_group
  58519. .sp
  58520. Show an affinity group associated with the account
  58521. .INDENT 0.0
  58522. .INDENT 3.5
  58523. .sp
  58524. .nf
  58525. .ft C
  58526. salt\-cloud \-f show_affinity_group my\-azure service=myservice \e
  58527. deployment=mydeployment name=SSH
  58528. .ft P
  58529. .fi
  58530. .UNINDENT
  58531. .UNINDENT
  58532. .SS create_affinity_group
  58533. .sp
  58534. Create a new affinity group. The following options are supported.
  58535. .SS name
  58536. .sp
  58537. Required. The name of the new affinity group.
  58538. .SS location
  58539. .sp
  58540. Required. The region in which the affinity group lives.
  58541. .SS label
  58542. .sp
  58543. Required. A label describing the new affinity group.
  58544. .SS description
  58545. .sp
  58546. Optional. A longer description of the affinity group.
  58547. .INDENT 0.0
  58548. .INDENT 3.5
  58549. .sp
  58550. .nf
  58551. .ft C
  58552. salt\-cloud \-f create_affinity_group my\-azure name=my_affinity_group \e
  58553. label=my\-affinity\-group location=\(aqWest US\(aq
  58554. .ft P
  58555. .fi
  58556. .UNINDENT
  58557. .UNINDENT
  58558. .SS update_affinity_group
  58559. .sp
  58560. Update an affinity group\(aqs properties
  58561. .INDENT 0.0
  58562. .INDENT 3.5
  58563. .sp
  58564. .nf
  58565. .ft C
  58566. salt\-cloud \-f update_affinity_group my\-azure name=my_group label=my_group
  58567. .ft P
  58568. .fi
  58569. .UNINDENT
  58570. .UNINDENT
  58571. .SS delete_affinity_group
  58572. .sp
  58573. Delete a specific affinity group associated with the account
  58574. .INDENT 0.0
  58575. .INDENT 3.5
  58576. .sp
  58577. .nf
  58578. .ft C
  58579. salt\-cloud \-f delete_affinity_group my\-azure name=my_affinity_group
  58580. .ft P
  58581. .fi
  58582. .UNINDENT
  58583. .UNINDENT
  58584. .SS Managing Blob Storage
  58585. .sp
  58586. New in version 2015.8.0.
  58587. .sp
  58588. Azure storage containers and their contents can be managed with Salt Cloud. This
  58589. is not as elegant as using one of the other available clients in Windows, but it
  58590. benefits Linux and Unix users, as there are fewer options available on those
  58591. platforms.
  58592. .SS Blob Storage Configuration
  58593. .sp
  58594. Blob storage must be configured differently than the standard Azure
  58595. configuration. Both a \fBstorage_account\fP and a \fBstorage_key\fP must be
  58596. specified either through the Azure provider configuration (in addition to the
  58597. other Azure configuration) or via the command line.
  58598. .INDENT 0.0
  58599. .INDENT 3.5
  58600. .sp
  58601. .nf
  58602. .ft C
  58603. storage_account: mystorage
  58604. storage_key: ffhj334fDSGFEGDFGFDewr34fwfsFSDFwe==
  58605. .ft P
  58606. .fi
  58607. .UNINDENT
  58608. .UNINDENT
  58609. .SS storage_account
  58610. .sp
  58611. This is one of the storage accounts that is available via the \fBlist_storage\fP
  58612. function.
  58613. .SS storage_key
  58614. .sp
  58615. Both a primary and a secondary \fBstorage_key\fP can be obtained by running the
  58616. \fBshow_storage_keys\fP function. Either key may be used.
  58617. .SS Blob Functions
  58618. .sp
  58619. The following functions are made available through Salt Cloud for managing
  58620. blog storage.
  58621. .SS make_blob_url
  58622. .sp
  58623. Creates the URL to access a blob
  58624. .INDENT 0.0
  58625. .INDENT 3.5
  58626. .sp
  58627. .nf
  58628. .ft C
  58629. salt\-cloud \-f make_blob_url my\-azure container=mycontainer blob=myblob
  58630. .ft P
  58631. .fi
  58632. .UNINDENT
  58633. .UNINDENT
  58634. .SS container
  58635. .sp
  58636. Name of the container.
  58637. .SS blob
  58638. .sp
  58639. Name of the blob.
  58640. .SS account
  58641. .sp
  58642. Name of the storage account. If not specified, derives the host base
  58643. from the provider configuration.
  58644. .SS protocol
  58645. .sp
  58646. Protocol to use: \(aqhttp\(aq or \(aqhttps\(aq. If not specified, derives the host
  58647. base from the provider configuration.
  58648. .SS host_base
  58649. .sp
  58650. Live host base URL. If not specified, derives the host base from the
  58651. provider configuration.
  58652. .SS list_storage_containers
  58653. .sp
  58654. List containers associated with the storage account
  58655. .INDENT 0.0
  58656. .INDENT 3.5
  58657. .sp
  58658. .nf
  58659. .ft C
  58660. salt\-cloud \-f list_storage_containers my\-azure
  58661. .ft P
  58662. .fi
  58663. .UNINDENT
  58664. .UNINDENT
  58665. .SS create_storage_container
  58666. .sp
  58667. Create a storage container
  58668. .INDENT 0.0
  58669. .INDENT 3.5
  58670. .sp
  58671. .nf
  58672. .ft C
  58673. salt\-cloud \-f create_storage_container my\-azure name=mycontainer
  58674. .ft P
  58675. .fi
  58676. .UNINDENT
  58677. .UNINDENT
  58678. .SS name
  58679. .sp
  58680. Name of container to create.
  58681. .SS meta_name_values
  58682. .sp
  58683. Optional. A dict with name_value pairs to associate with the
  58684. container as metadata. Example:{\(aqCategory\(aq:\(aqtest\(aq}
  58685. .SS blob_public_access
  58686. .sp
  58687. Optional. Possible values include: container, blob
  58688. .SS fail_on_exist
  58689. .sp
  58690. Specify whether to throw an exception when the container exists.
  58691. .SS show_storage_container
  58692. .sp
  58693. Show a container associated with the storage account
  58694. .INDENT 0.0
  58695. .INDENT 3.5
  58696. .sp
  58697. .nf
  58698. .ft C
  58699. salt\-cloud \-f show_storage_container my\-azure name=myservice
  58700. .ft P
  58701. .fi
  58702. .UNINDENT
  58703. .UNINDENT
  58704. .SS name
  58705. .sp
  58706. Name of container to show.
  58707. .SS show_storage_container_metadata
  58708. .sp
  58709. Show a storage container\(aqs metadata
  58710. .INDENT 0.0
  58711. .INDENT 3.5
  58712. .sp
  58713. .nf
  58714. .ft C
  58715. salt\-cloud \-f show_storage_container_metadata my\-azure name=myservice
  58716. .ft P
  58717. .fi
  58718. .UNINDENT
  58719. .UNINDENT
  58720. .SS name
  58721. .sp
  58722. Name of container to show.
  58723. .SS lease_id
  58724. .sp
  58725. If specified, show_storage_container_metadata only succeeds if the
  58726. container\(aqs lease is active and matches this ID.
  58727. .SS set_storage_container_metadata
  58728. .sp
  58729. Set a storage container\(aqs metadata
  58730. .INDENT 0.0
  58731. .INDENT 3.5
  58732. .sp
  58733. .nf
  58734. .ft C
  58735. salt\-cloud \-f set_storage_container my\-azure name=mycontainer \e
  58736. x_ms_meta_name_values=\(aq{"my_name": "my_value"}\(aq
  58737. .ft P
  58738. .fi
  58739. .UNINDENT
  58740. .UNINDENT
  58741. .SS name
  58742. .sp
  58743. Name of existing container.
  58744. meta_name_values
  58745. \fB\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\(ga\fP
  58746. A dict containing name, value for metadata.
  58747. Example: {\(aqcategory\(aq:\(aqtest\(aq}
  58748. lease_id
  58749. \fB\(ga\(ga\(ga\(ga\fP
  58750. If specified, set_storage_container_metadata only succeeds if the
  58751. container\(aqs lease is active and matches this ID.
  58752. .SS show_storage_container_acl
  58753. .sp
  58754. Show a storage container\(aqs acl
  58755. .INDENT 0.0
  58756. .INDENT 3.5
  58757. .sp
  58758. .nf
  58759. .ft C
  58760. salt\-cloud \-f show_storage_container_acl my\-azure name=myservice
  58761. .ft P
  58762. .fi
  58763. .UNINDENT
  58764. .UNINDENT
  58765. .SS name
  58766. .sp
  58767. Name of existing container.
  58768. .SS lease_id
  58769. .sp
  58770. If specified, show_storage_container_acl only succeeds if the
  58771. container\(aqs lease is active and matches this ID.
  58772. .SS set_storage_container_acl
  58773. .sp
  58774. Set a storage container\(aqs acl
  58775. .INDENT 0.0
  58776. .INDENT 3.5
  58777. .sp
  58778. .nf
  58779. .ft C
  58780. salt\-cloud \-f set_storage_container my\-azure name=mycontainer
  58781. .ft P
  58782. .fi
  58783. .UNINDENT
  58784. .UNINDENT
  58785. .SS name
  58786. .sp
  58787. Name of existing container.
  58788. .SS signed_identifiers
  58789. .sp
  58790. SignedIdentifers instance
  58791. .SS blob_public_access
  58792. .sp
  58793. Optional. Possible values include: container, blob
  58794. .SS lease_id
  58795. .sp
  58796. If specified, set_storage_container_acl only succeeds if the
  58797. container\(aqs lease is active and matches this ID.
  58798. .SS delete_storage_container
  58799. .sp
  58800. Delete a container associated with the storage account
  58801. .INDENT 0.0
  58802. .INDENT 3.5
  58803. .sp
  58804. .nf
  58805. .ft C
  58806. salt\-cloud \-f delete_storage_container my\-azure name=mycontainer
  58807. .ft P
  58808. .fi
  58809. .UNINDENT
  58810. .UNINDENT
  58811. .SS name
  58812. .sp
  58813. Name of container to create.
  58814. .SS fail_not_exist
  58815. .sp
  58816. Specify whether to throw an exception when the container exists.
  58817. .SS lease_id
  58818. .sp
  58819. If specified, delete_storage_container only succeeds if the
  58820. container\(aqs lease is active and matches this ID.
  58821. .SS lease_storage_container
  58822. .sp
  58823. Lease a container associated with the storage account
  58824. .INDENT 0.0
  58825. .INDENT 3.5
  58826. .sp
  58827. .nf
  58828. .ft C
  58829. salt\-cloud \-f lease_storage_container my\-azure name=mycontainer
  58830. .ft P
  58831. .fi
  58832. .UNINDENT
  58833. .UNINDENT
  58834. .SS name
  58835. .sp
  58836. Name of container to create.
  58837. .SS lease_action
  58838. .sp
  58839. Required. Possible values: acquire|renew|release|break|change
  58840. .SS lease_id
  58841. .sp
  58842. Required if the container has an active lease.
  58843. .SS lease_duration
  58844. .sp
  58845. Specifies the duration of the lease, in seconds, or negative one
  58846. (\-1) for a lease that never expires. A non\-infinite lease can be
  58847. between 15 and 60 seconds. A lease duration cannot be changed
  58848. using renew or change. For backwards compatibility, the default is
  58849. 60, and the value is only used on an acquire operation.
  58850. .SS lease_break_period
  58851. .sp
  58852. Optional. For a break operation, this is the proposed duration of
  58853. seconds that the lease should continue before it is broken, between
  58854. 0 and 60 seconds. This break period is only used if it is shorter
  58855. than the time remaining on the lease. If longer, the time remaining
  58856. on the lease is used. A new lease will not be available before the
  58857. break period has expired, but the lease may be held for longer than
  58858. the break period. If this header does not appear with a break
  58859. operation, a fixed\-duration lease breaks after the remaining lease
  58860. period elapses, and an infinite lease breaks immediately.
  58861. .SS proposed_lease_id
  58862. .sp
  58863. Optional for acquire, required for change. Proposed lease ID, in a
  58864. GUID string format.
  58865. .SS list_blobs
  58866. .sp
  58867. List blobs associated with the container
  58868. .INDENT 0.0
  58869. .INDENT 3.5
  58870. .sp
  58871. .nf
  58872. .ft C
  58873. salt\-cloud \-f list_blobs my\-azure container=mycontainer
  58874. .ft P
  58875. .fi
  58876. .UNINDENT
  58877. .UNINDENT
  58878. .SS container
  58879. .sp
  58880. The name of the storage container
  58881. .SS prefix
  58882. .sp
  58883. Optional. Filters the results to return only blobs whose names
  58884. begin with the specified prefix.
  58885. .SS marker
  58886. .sp
  58887. Optional. A string value that identifies the portion of the list
  58888. to be returned with the next list operation. The operation returns
  58889. a marker value within the response body if the list returned was
  58890. not complete. The marker value may then be used in a subsequent
  58891. call to request the next set of list items. The marker value is
  58892. opaque to the client.
  58893. .SS maxresults
  58894. .sp
  58895. Optional. Specifies the maximum number of blobs to return,
  58896. including all BlobPrefix elements. If the request does not specify
  58897. maxresults or specifies a value greater than 5,000, the server will
  58898. return up to 5,000 items. Setting maxresults to a value less than
  58899. or equal to zero results in error response code 400 (Bad Request).
  58900. .SS include
  58901. .sp
  58902. Optional. Specifies one or more datasets to include in the
  58903. response. To specify more than one of these options on the URI,
  58904. you must separate each option with a comma. Valid values are:
  58905. .INDENT 0.0
  58906. .INDENT 3.5
  58907. .sp
  58908. .nf
  58909. .ft C
  58910. snapshots:
  58911. Specifies that snapshots should be included in the
  58912. enumeration. Snapshots are listed from oldest to newest in
  58913. the response.
  58914. metadata:
  58915. Specifies that blob metadata be returned in the response.
  58916. uncommittedblobs:
  58917. Specifies that blobs for which blocks have been uploaded,
  58918. but which have not been committed using Put Block List
  58919. (REST API), be included in the response.
  58920. copy:
  58921. Version 2012\-02\-12 and newer. Specifies that metadata
  58922. related to any current or previous Copy Blob operation
  58923. should be included in the response.
  58924. .ft P
  58925. .fi
  58926. .UNINDENT
  58927. .UNINDENT
  58928. .SS delimiter
  58929. .sp
  58930. Optional. When the request includes this parameter, the operation
  58931. returns a BlobPrefix element in the response body that acts as a
  58932. placeholder for all blobs whose names begin with the same
  58933. substring up to the appearance of the delimiter character. The
  58934. delimiter may be a single character or a string.
  58935. .SS show_blob_service_properties
  58936. .sp
  58937. Show a blob\(aqs service properties
  58938. .INDENT 0.0
  58939. .INDENT 3.5
  58940. .sp
  58941. .nf
  58942. .ft C
  58943. salt\-cloud \-f show_blob_service_properties my\-azure
  58944. .ft P
  58945. .fi
  58946. .UNINDENT
  58947. .UNINDENT
  58948. .SS set_blob_service_properties
  58949. .sp
  58950. Sets the properties of a storage account\(aqs Blob service, including
  58951. Windows Azure Storage Analytics. You can also use this operation to
  58952. set the default request version for all incoming requests that do not
  58953. have a version specified.
  58954. .INDENT 0.0
  58955. .INDENT 3.5
  58956. .sp
  58957. .nf
  58958. .ft C
  58959. salt\-cloud \-f set_blob_service_properties my\-azure
  58960. .ft P
  58961. .fi
  58962. .UNINDENT
  58963. .UNINDENT
  58964. .SS properties
  58965. .sp
  58966. a StorageServiceProperties object.
  58967. .SS timeout
  58968. .sp
  58969. Optional. The timeout parameter is expressed in seconds.
  58970. .SS show_blob_properties
  58971. .sp
  58972. Returns all user\-defined metadata, standard HTTP properties, and
  58973. system properties for the blob.
  58974. .INDENT 0.0
  58975. .INDENT 3.5
  58976. .sp
  58977. .nf
  58978. .ft C
  58979. salt\-cloud \-f show_blob_properties my\-azure container=mycontainer blob=myblob
  58980. .ft P
  58981. .fi
  58982. .UNINDENT
  58983. .UNINDENT
  58984. .SS container
  58985. .sp
  58986. Name of existing container.
  58987. .SS blob
  58988. .sp
  58989. Name of existing blob.
  58990. .SS lease_id
  58991. .sp
  58992. Required if the blob has an active lease.
  58993. .SS set_blob_properties
  58994. .sp
  58995. Set a blob\(aqs properties
  58996. .INDENT 0.0
  58997. .INDENT 3.5
  58998. .sp
  58999. .nf
  59000. .ft C
  59001. salt\-cloud \-f set_blob_properties my\-azure
  59002. .ft P
  59003. .fi
  59004. .UNINDENT
  59005. .UNINDENT
  59006. .SS container
  59007. .sp
  59008. Name of existing container.
  59009. .SS blob
  59010. .sp
  59011. Name of existing blob.
  59012. .SS blob_cache_control
  59013. .sp
  59014. Optional. Modifies the cache control string for the blob.
  59015. .SS blob_content_type
  59016. .sp
  59017. Optional. Sets the blob\(aqs content type.
  59018. .SS blob_content_md5
  59019. .sp
  59020. Optional. Sets the blob\(aqs MD5 hash.
  59021. .SS blob_content_encoding
  59022. .sp
  59023. Optional. Sets the blob\(aqs content encoding.
  59024. .SS blob_content_language
  59025. .sp
  59026. Optional. Sets the blob\(aqs content language.
  59027. .SS lease_id
  59028. .sp
  59029. Required if the blob has an active lease.
  59030. .SS blob_content_disposition
  59031. .sp
  59032. Optional. Sets the blob\(aqs Content\-Disposition header.
  59033. The Content\-Disposition response header field conveys additional
  59034. information about how to process the response payload, and also can
  59035. be used to attach additional metadata. For example, if set to
  59036. attachment, it indicates that the user\-agent should not display the
  59037. response, but instead show a Save As dialog with a filename other
  59038. than the blob name specified.
  59039. .SS put_blob
  59040. .sp
  59041. Upload a blob
  59042. .INDENT 0.0
  59043. .INDENT 3.5
  59044. .sp
  59045. .nf
  59046. .ft C
  59047. salt\-cloud \-f put_blob my\-azure container=base name=top.sls blob_path=/srv/salt/top.sls
  59048. salt\-cloud \-f put_blob my\-azure container=base name=content.txt blob_content=\(aqSome content\(aq
  59049. .ft P
  59050. .fi
  59051. .UNINDENT
  59052. .UNINDENT
  59053. .SS container
  59054. .sp
  59055. Name of existing container.
  59056. .SS name
  59057. .sp
  59058. Name of existing blob.
  59059. .SS blob_path
  59060. .sp
  59061. The path on the local machine of the file to upload as a blob. Either
  59062. this or blob_content must be specified.
  59063. .SS blob_content
  59064. .sp
  59065. The actual content to be uploaded as a blob. Either this or blob_path
  59066. must me specified.
  59067. .SS cache_control
  59068. .sp
  59069. Optional. The Blob service stores this value but does not use or
  59070. modify it.
  59071. .SS content_language
  59072. .sp
  59073. Optional. Specifies the natural languages used by this resource.
  59074. .SS content_md5
  59075. .sp
  59076. Optional. An MD5 hash of the blob content. This hash is used to
  59077. verify the integrity of the blob during transport. When this header
  59078. is specified, the storage service checks the hash that has arrived
  59079. with the one that was sent. If the two hashes do not match, the
  59080. operation will fail with error code 400 (Bad Request).
  59081. .SS blob_content_type
  59082. .sp
  59083. Optional. Set the blob\(aqs content type.
  59084. .SS blob_content_encoding
  59085. .sp
  59086. Optional. Set the blob\(aqs content encoding.
  59087. .SS blob_content_language
  59088. .sp
  59089. Optional. Set the blob\(aqs content language.
  59090. .SS blob_content_md5
  59091. .sp
  59092. Optional. Set the blob\(aqs MD5 hash.
  59093. .SS blob_cache_control
  59094. .sp
  59095. Optional. Sets the blob\(aqs cache control.
  59096. .SS meta_name_values
  59097. .sp
  59098. A dict containing name, value for metadata.
  59099. .SS lease_id
  59100. .sp
  59101. Required if the blob has an active lease.
  59102. .SS get_blob
  59103. .sp
  59104. Download a blob
  59105. .INDENT 0.0
  59106. .INDENT 3.5
  59107. .sp
  59108. .nf
  59109. .ft C
  59110. salt\-cloud \-f get_blob my\-azure container=base name=top.sls local_path=/srv/salt/top.sls
  59111. salt\-cloud \-f get_blob my\-azure container=base name=content.txt return_content=True
  59112. .ft P
  59113. .fi
  59114. .UNINDENT
  59115. .UNINDENT
  59116. .SS container
  59117. .sp
  59118. Name of existing container.
  59119. .SS name
  59120. .sp
  59121. Name of existing blob.
  59122. .SS local_path
  59123. .sp
  59124. The path on the local machine to download the blob to. Either this or
  59125. return_content must be specified.
  59126. .SS return_content
  59127. .sp
  59128. Whether or not to return the content directly from the blob. If
  59129. specified, must be True or False. Either this or the local_path must
  59130. be specified.
  59131. .SS snapshot
  59132. .sp
  59133. Optional. The snapshot parameter is an opaque DateTime value that,
  59134. when present, specifies the blob snapshot to retrieve.
  59135. .SS lease_id
  59136. .sp
  59137. Required if the blob has an active lease.
  59138. .SS progress_callback
  59139. .sp
  59140. callback for progress with signature function(current, total) where
  59141. current is the number of bytes transferred so far, and total is the
  59142. size of the blob.
  59143. .SS max_connections
  59144. .sp
  59145. Maximum number of parallel connections to use when the blob size
  59146. exceeds 64MB.
  59147. Set to 1 to download the blob chunks sequentially.
  59148. Set to 2 or more to download the blob chunks in parallel. This uses
  59149. more system resources but will download faster.
  59150. .SS max_retries
  59151. .sp
  59152. Number of times to retry download of blob chunk if an error occurs.
  59153. .SS retry_wait
  59154. .sp
  59155. Sleep time in secs between retries.
  59156. .SS Getting Started With Azure ARM
  59157. .sp
  59158. New in version 2016.11.0.
  59159. .sp
  59160. Azure is a cloud service by Microsoft providing virtual machines, SQL services,
  59161. media services, and more. Azure ARM (aka, the Azure Resource Manager) is a next
  59162. generation version of the Azure portal and API. This document describes how to
  59163. use Salt Cloud to create a virtual machine on Azure ARM, with Salt installed.
  59164. .sp
  59165. More information about Azure is located at \fI\%http://www.windowsazure.com/\fP\&.
  59166. .SS Dependencies
  59167. .INDENT 0.0
  59168. .IP \(bu 2
  59169. \fI\%azure\fP >= 2.0.0rc6
  59170. .IP \(bu 2
  59171. \fI\%azure\-common\fP >= 1.1.4
  59172. .IP \(bu 2
  59173. \fI\%azure\-mgmt\fP >= 0.30.0rc6
  59174. .IP \(bu 2
  59175. \fI\%azure\-mgmt\-compute\fP >= 0.33.0
  59176. .IP \(bu 2
  59177. \fI\%azure\-mgmt\-network\fP >= 0.30.0rc6
  59178. .IP \(bu 2
  59179. \fI\%azure\-mgmt\-resource\fP >= 0.30.0
  59180. .IP \(bu 2
  59181. \fI\%azure\-mgmt\-storage\fP >= 0.30.0rc6
  59182. .IP \(bu 2
  59183. \fI\%azure\-mgmt\-web\fP >= 0.30.0rc6
  59184. .IP \(bu 2
  59185. \fI\%azure\-storage\fP >= 0.32.0
  59186. .IP \(bu 2
  59187. \fI\%msrestazure\fP >= 0.4.21
  59188. .IP \(bu 2
  59189. A Microsoft Azure account
  59190. .IP \(bu 2
  59191. \fI\%Salt\fP
  59192. .UNINDENT
  59193. .SS Installation Tips
  59194. .sp
  59195. Because the \fBazure\fP library requires the \fBcryptography\fP library, which is
  59196. compiled on\-the\-fly by \fBpip\fP, you may need to install the development tools
  59197. for your operating system.
  59198. .sp
  59199. Before you install \fBazure\fP with \fBpip\fP, you should make sure that the
  59200. required libraries are installed.
  59201. .SS Debian
  59202. .sp
  59203. For Debian and Ubuntu, the following command will ensure that the required
  59204. dependencies are installed:
  59205. .INDENT 0.0
  59206. .INDENT 3.5
  59207. .sp
  59208. .nf
  59209. .ft C
  59210. sudo apt\-get install build\-essential libssl\-dev libffi\-dev python\-dev
  59211. .ft P
  59212. .fi
  59213. .UNINDENT
  59214. .UNINDENT
  59215. .SS Red Hat
  59216. .sp
  59217. For Fedora and RHEL\-derivatives, the following command will ensure that the
  59218. required dependencies are installed:
  59219. .INDENT 0.0
  59220. .INDENT 3.5
  59221. .sp
  59222. .nf
  59223. .ft C
  59224. sudo yum install gcc libffi\-devel python\-devel openssl\-devel
  59225. .ft P
  59226. .fi
  59227. .UNINDENT
  59228. .UNINDENT
  59229. .SS Configuration
  59230. .sp
  59231. Set up the provider config at \fB/etc/salt/cloud.providers.d/azurearm.conf\fP:
  59232. .INDENT 0.0
  59233. .INDENT 3.5
  59234. .sp
  59235. .nf
  59236. .ft C
  59237. # Note: This example is for /etc/salt/cloud.providers.d/azurearm.conf
  59238. my\-azurearm\-config:
  59239. driver: azurearm
  59240. master: salt.example.com
  59241. subscription_id: 01234567\-890a\-bcde\-f012\-34567890abdc
  59242. # https://apps.dev.microsoft.com/#/appList
  59243. username: <username>@<subdomain>.onmicrosoft.com
  59244. password: verybadpass
  59245. location: westus
  59246. resource_group: my_rg
  59247. # Optional
  59248. network_resource_group: my_net_rg
  59249. cleanup_disks: True
  59250. cleanup_vhds: True
  59251. cleanup_data_disks: True
  59252. cleanup_interfaces: True
  59253. custom_data: \(aqThis is custom data\(aq
  59254. expire_publisher_cache: 604800 # 7 days
  59255. expire_offer_cache: 518400 # 6 days
  59256. expire_sku_cache: 432000 # 5 days
  59257. expire_version_cache: 345600 # 4 days
  59258. expire_group_cache: 14400 # 4 hours
  59259. expire_interface_cache: 3600 # 1 hour
  59260. expire_network_cache: 3600 # 1 hour
  59261. .ft P
  59262. .fi
  59263. .UNINDENT
  59264. .UNINDENT
  59265. .SS Cloud Profiles
  59266. .sp
  59267. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  59268. .INDENT 0.0
  59269. .INDENT 3.5
  59270. .sp
  59271. .nf
  59272. .ft C
  59273. azure\-ubuntu\-pass:
  59274. provider: my\-azure\-config
  59275. image: Canonical|UbuntuServer|14.04.5\-LTS|14.04.201612050
  59276. size: Standard_D1_v2
  59277. location: eastus
  59278. ssh_username: azureuser
  59279. ssh_password: verybadpass
  59280. azure\-ubuntu\-key:
  59281. provider: my\-azure\-config
  59282. image: Canonical|UbuntuServer|14.04.5\-LTS|14.04.201612050
  59283. size: Standard_D1_v2
  59284. location: eastus
  59285. ssh_username: azureuser
  59286. ssh_publickeyfile: /path/to/ssh_public_key.pub
  59287. azure\-win2012:
  59288. provider: my\-azure\-config
  59289. image: MicrosoftWindowsServer|WindowsServer|2012\-R2\-Datacenter|latest
  59290. size: Standard_D1_v2
  59291. location: westus
  59292. win_username: azureuser
  59293. win_password: verybadpass
  59294. .ft P
  59295. .fi
  59296. .UNINDENT
  59297. .UNINDENT
  59298. .sp
  59299. These options are described in more detail below. Once configured, the profile
  59300. can be realized with a salt command:
  59301. .INDENT 0.0
  59302. .INDENT 3.5
  59303. .sp
  59304. .nf
  59305. .ft C
  59306. salt\-cloud \-p azure\-ubuntu newinstance
  59307. .ft P
  59308. .fi
  59309. .UNINDENT
  59310. .UNINDENT
  59311. .sp
  59312. This will create an salt minion instance named \fBnewinstance\fP in Azure. If
  59313. the command was executed on the salt\-master, its Salt key will automatically
  59314. be signed on the master.
  59315. .sp
  59316. Once the instance has been created with salt\-minion installed, connectivity to
  59317. it can be verified with Salt:
  59318. .INDENT 0.0
  59319. .INDENT 3.5
  59320. .sp
  59321. .nf
  59322. .ft C
  59323. salt newinstance test.version
  59324. .ft P
  59325. .fi
  59326. .UNINDENT
  59327. .UNINDENT
  59328. .SS Profile Options
  59329. .sp
  59330. The following options are currently available for Azure ARM.
  59331. .SS provider
  59332. .sp
  59333. The name of the provider as configured in
  59334. \fI/etc/salt/cloud.providers.d/azure.conf\fP\&.
  59335. .SS image
  59336. .sp
  59337. Required. The name of the image to use to create a VM. Available images can be
  59338. viewed using the following command:
  59339. .INDENT 0.0
  59340. .INDENT 3.5
  59341. .sp
  59342. .nf
  59343. .ft C
  59344. salt\-cloud \-\-list\-images my\-azure\-config
  59345. .ft P
  59346. .fi
  59347. .UNINDENT
  59348. .UNINDENT
  59349. .sp
  59350. As you will see in \fB\-\-list\-images\fP, image names are comprised of the following
  59351. fields, separated by the pipe (\fB|\fP) character:
  59352. .INDENT 0.0
  59353. .INDENT 3.5
  59354. .sp
  59355. .nf
  59356. .ft C
  59357. publisher: For example, Canonical or MicrosoftWindowsServer
  59358. offer: For example, UbuntuServer or WindowsServer
  59359. sku: Such as 14.04.5\-LTS or 2012\-R2\-Datacenter
  59360. version: Such as 14.04.201612050 or latest
  59361. .ft P
  59362. .fi
  59363. .UNINDENT
  59364. .UNINDENT
  59365. .sp
  59366. It is possible to specify the URL or resource ID path of a custom image that you
  59367. have access to, such as:
  59368. .INDENT 0.0
  59369. .INDENT 3.5
  59370. .sp
  59371. .nf
  59372. .ft C
  59373. https://<mystorage>.blob.core.windows.net/system/Microsoft.Compute/Images/<mystorage>/template\-osDisk.01234567\-890a\-bcdef0123\-4567890abcde.vhd
  59374. .ft P
  59375. .fi
  59376. .UNINDENT
  59377. .UNINDENT
  59378. .sp
  59379. or:
  59380. .INDENT 0.0
  59381. .INDENT 3.5
  59382. .sp
  59383. .nf
  59384. .ft C
  59385. /subscriptions/XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX/resourceGroups/myRG/providers/Microsoft.Compute/images/myImage
  59386. .ft P
  59387. .fi
  59388. .UNINDENT
  59389. .UNINDENT
  59390. .SS size
  59391. .sp
  59392. Required. The name of the size to use to create a VM. Available sizes can be
  59393. viewed using the following command:
  59394. .INDENT 0.0
  59395. .INDENT 3.5
  59396. .sp
  59397. .nf
  59398. .ft C
  59399. salt\-cloud \-\-list\-sizes my\-azure\-config
  59400. .ft P
  59401. .fi
  59402. .UNINDENT
  59403. .UNINDENT
  59404. .SS location
  59405. .sp
  59406. Required. The name of the location to create a VM in. Available locations can
  59407. be viewed using the following command:
  59408. .INDENT 0.0
  59409. .INDENT 3.5
  59410. .sp
  59411. .nf
  59412. .ft C
  59413. salt\-cloud \-\-list\-locations my\-azure\-config
  59414. .ft P
  59415. .fi
  59416. .UNINDENT
  59417. .UNINDENT
  59418. .SS ssh_username
  59419. .sp
  59420. Required for Linux. The admin user to add on the instance. It is also used to log
  59421. into the newly\-created VM to install Salt.
  59422. .SS ssh_keyfile
  59423. .sp
  59424. Required if using SSH key authentication. The path on the Salt master to the SSH private
  59425. key used during the minion bootstrap process.
  59426. .SS ssh_publickeyfile
  59427. .sp
  59428. Use either \fBssh_publickeyfile\fP or \fBssh_password\fP\&. The path on the Salt master to the
  59429. SSH public key which will be pushed to the Linux VM.
  59430. .SS ssh_password
  59431. .sp
  59432. Use either \fBssh_publickeyfile\fP or \fBssh_password\fP\&. The password for the admin user on
  59433. the newly\-created Linux virtual machine.
  59434. .SS win_username
  59435. .sp
  59436. Required for Windows. The user to use to log into the newly\-created Windows VM
  59437. to install Salt.
  59438. .SS win_password
  59439. .sp
  59440. Required for Windows. The password to use to log into the newly\-created Windows
  59441. VM to install Salt.
  59442. .SS win_installer
  59443. .sp
  59444. Required for Windows. The path to the Salt installer to be uploaded.
  59445. .SS resource_group
  59446. .sp
  59447. Required. The resource group that all VM resources (VM, network interfaces,
  59448. etc) will be created in.
  59449. .SS network_resource_group
  59450. .sp
  59451. Optional. If specified, then the VM will be connected to the virtual network
  59452. in this resource group, rather than the parent resource group of the instance.
  59453. The VM interfaces and IPs will remain in the configured \fBresource_group\fP with
  59454. the VM.
  59455. .SS network
  59456. .sp
  59457. Required. The virtual network that the VM will be spun up in.
  59458. .SS subnet
  59459. .sp
  59460. Optional. The subnet inside the virtual network that the VM will be spun up in.
  59461. Default is \fBdefault\fP\&.
  59462. .SS allocate_public_ip
  59463. .sp
  59464. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, a public IP will
  59465. be created and assigned to the VM.
  59466. .SS load_balancer
  59467. .sp
  59468. Optional. The load\-balancer for the VM\(aqs network interface to join. If
  59469. specified the backend_pool option need to be set.
  59470. .SS backend_pool
  59471. .sp
  59472. Optional. Required if the load_balancer option is set. The load\-balancer\(aqs
  59473. Backend Pool the VM\(aqs network interface will join.
  59474. .SS iface_name
  59475. .sp
  59476. Optional. The name to apply to the VM\(aqs network interface. If not supplied, the
  59477. value will be set to \fB<VM name>\-iface0\fP\&.
  59478. .SS dns_servers
  59479. .sp
  59480. Optional. A \fBlist\fP of the DNS servers to configure for the network interface
  59481. (will be set on the VM by the DHCP of the VNET).
  59482. .INDENT 0.0
  59483. .INDENT 3.5
  59484. .sp
  59485. .nf
  59486. .ft C
  59487. my\-azurearm\-profile:
  59488. provider: azurearm\-provider
  59489. network: mynetwork
  59490. dns_servers:
  59491. \- 10.1.1.4
  59492. \- 10.1.1.5
  59493. .ft P
  59494. .fi
  59495. .UNINDENT
  59496. .UNINDENT
  59497. .SS availability_set
  59498. .sp
  59499. Optional. If set, the VM will be added to the specified availability set.
  59500. .SS volumes
  59501. .sp
  59502. Optional. A list of dictionaries describing data disks to attach to the
  59503. instance can be specified using this setting. The data disk dictionaries are
  59504. passed entirely to the \fI\%Azure DataDisk object\fP,
  59505. so ad\-hoc options can be handled as long as they are valid properties of the
  59506. object.
  59507. .INDENT 0.0
  59508. .INDENT 3.5
  59509. .sp
  59510. .nf
  59511. .ft C
  59512. volumes:
  59513. \- disk_size_gb: 50
  59514. caching: ReadWrite
  59515. \- disk_size_gb: 100
  59516. caching: ReadWrite
  59517. managed_disk:
  59518. storage_account_type: Standard_LRS
  59519. .ft P
  59520. .fi
  59521. .UNINDENT
  59522. .UNINDENT
  59523. .SS cleanup_disks
  59524. .sp
  59525. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, disks will be cleaned up
  59526. when the VM that they belong to is deleted.
  59527. .SS cleanup_vhds
  59528. .sp
  59529. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, VHDs will be cleaned up
  59530. when the VM and disk that they belong to are deleted. Requires \fBcleanup_disks\fP
  59531. to be set to \fBTrue\fP\&.
  59532. .SS cleanup_data_disks
  59533. .sp
  59534. Optional. Default is \fBFalse\fP\&. If set to \fBTrue\fP, data disks (non\-root
  59535. volumes) will be cleaned up whtn the VM that they are attached to is deleted.
  59536. Requires \fBcleanup_disks\fP to be set to \fBTrue\fP\&.
  59537. .SS cleanup_interfaces
  59538. .sp
  59539. Optional. Default is \fBFalse\fP\&. Normally when a VM is deleted, its associated
  59540. interfaces and IPs are retained. This is useful if you expect the deleted VM
  59541. to be recreated with the same name and network settings. If you would like
  59542. interfaces and IPs to be deleted when their associated VM is deleted, set this
  59543. to \fBTrue\fP\&.
  59544. .SS userdata
  59545. .sp
  59546. Optional. Any custom cloud data that needs to be specified. How this data is
  59547. used depends on the operating system and image that is used. For instance,
  59548. Linux images that use \fBcloud\-init\fP will import this data for use with that
  59549. program. Some Windows images will create a file with a copy of this data, and
  59550. others will ignore it. If a Windows image creates a file, then the location
  59551. will depend upon the version of Windows. This will be ignored if the
  59552. \fBuserdata_file\fP is specified.
  59553. .SS userdata_file
  59554. .sp
  59555. Optional. The path to a file to be read and submitted to Azure as user data.
  59556. How this is used depends on the operating system that is being deployed. If
  59557. used, any \fBuserdata\fP setting will be ignored.
  59558. .SS userdata_sendkeys
  59559. .sp
  59560. Optional. Set to \fBTrue\fP in order to generate salt minion keys and provide
  59561. them as variables to the userdata script when running it through the template
  59562. renderer. The keys can be referenced as \fB{{opts[\(aqpriv_key\(aq]}}\fP and
  59563. \fB{{opts[\(aqpub_key\(aq]}}\fP\&.
  59564. .SS userdata_template
  59565. .sp
  59566. Optional. Enter the renderer, such as \fBjinja\fP, to be used for the userdata
  59567. script template.
  59568. .SS wait_for_ip_timeout
  59569. .sp
  59570. Optional. Default is \fB600\fP\&. When waiting for a VM to be created, Salt Cloud
  59571. will attempt to connect to the VM\(aqs IP address until it starts responding. This
  59572. setting specifies the maximum time to wait for a response.
  59573. .SS wait_for_ip_interval
  59574. .sp
  59575. Optional. Default is \fB10\fP\&. How long to wait between attempts to connect to
  59576. the VM\(aqs IP.
  59577. .SS wait_for_ip_interval_multiplier
  59578. .sp
  59579. Optional. Default is \fB1\fP\&. Increase the interval by this multiplier after
  59580. each request; helps with throttling.
  59581. .SS expire_publisher_cache
  59582. .sp
  59583. Optional. Default is \fB604800\fP\&. When fetching image data using
  59584. \fB\-\-list\-images\fP, a number of web calls need to be made to the Azure ARM API.
  59585. This is normally very fast when performed using a VM that exists inside Azure
  59586. itself, but can be very slow when made from an external connection.
  59587. .sp
  59588. By default, the publisher data will be cached, and only updated every \fB604800\fP
  59589. seconds (7 days). If you need the publisher cache to be updated at a different
  59590. frequency, change this setting. Setting it to \fB0\fP will turn off the publisher
  59591. cache.
  59592. .SS expire_offer_cache
  59593. .sp
  59594. Optional. Default is \fB518400\fP\&. See \fBexpire_publisher_cache\fP for details on
  59595. why this exists.
  59596. .sp
  59597. By default, the offer data will be cached, and only updated every \fB518400\fP
  59598. seconds (6 days). If you need the offer cache to be updated at a different
  59599. frequency, change this setting. Setting it to \fB0\fP will turn off the publiser
  59600. cache.
  59601. .SS expire_sku_cache
  59602. .sp
  59603. Optional. Default is \fB432000\fP\&. See \fBexpire_publisher_cache\fP for details on
  59604. why this exists.
  59605. .sp
  59606. By default, the sku data will be cached, and only updated every \fB432000\fP
  59607. seconds (5 days). If you need the sku cache to be updated at a different
  59608. frequency, change this setting. Setting it to \fB0\fP will turn off the sku
  59609. cache.
  59610. .SS expire_version_cache
  59611. .sp
  59612. Optional. Default is \fB345600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59613. why this exists.
  59614. .sp
  59615. By default, the version data will be cached, and only updated every \fB345600\fP
  59616. seconds (4 days). If you need the version cache to be updated at a different
  59617. frequency, change this setting. Setting it to \fB0\fP will turn off the version
  59618. cache.
  59619. .SS expire_group_cache
  59620. .sp
  59621. Optional. Default is \fB14400\fP\&. See \fBexpire_publisher_cache\fP for details on
  59622. why this exists.
  59623. .sp
  59624. By default, the resource group data will be cached, and only updated every
  59625. \fB14400\fP seconds (4 hours). If you need the resource group cache to be updated
  59626. at a different frequency, change this setting. Setting it to \fB0\fP will turn
  59627. off the resource group cache.
  59628. .SS expire_interface_cache
  59629. .sp
  59630. Optional. Default is \fB3600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59631. why this exists.
  59632. .sp
  59633. By default, the interface data will be cached, and only updated every \fB3600\fP
  59634. seconds (1 hour). If you need the interface cache to be updated at a different
  59635. frequency, change this setting. Setting it to \fB0\fP will turn off the interface
  59636. cache.
  59637. .SS expire_network_cache
  59638. .sp
  59639. Optional. Default is \fB3600\fP\&. See \fBexpire_publisher_cache\fP for details on
  59640. why this exists.
  59641. .sp
  59642. By default, the network data will be cached, and only updated every \fB3600\fP
  59643. seconds (1 hour). If you need the network cache to be updated at a different
  59644. frequency, change this setting. Setting it to \fB0\fP will turn off the network
  59645. cache.
  59646. .SS Other Options
  59647. .sp
  59648. Other options relevant to Azure ARM.
  59649. .SS storage_account
  59650. .sp
  59651. Required for actions involving an Azure storage account.
  59652. .SS storage_key
  59653. .sp
  59654. Required for actions involving an Azure storage account.
  59655. .SS Show Instance
  59656. .sp
  59657. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on
  59658. a single instance only. In an environment with several machines, this will save
  59659. a user from having to sort through all instance data, just to examine a single
  59660. instance.
  59661. .INDENT 0.0
  59662. .INDENT 3.5
  59663. .sp
  59664. .nf
  59665. .ft C
  59666. salt\-cloud \-a show_instance myinstance
  59667. .ft P
  59668. .fi
  59669. .UNINDENT
  59670. .UNINDENT
  59671. .SS Getting Started with CloudStack
  59672. .sp
  59673. CloudStack is one the most popular cloud projects. It\(aqs an open source project
  59674. to build public and/or private clouds. You can use Salt Cloud to launch
  59675. CloudStack instances.
  59676. .SS Dependencies
  59677. .INDENT 0.0
  59678. .IP \(bu 2
  59679. Libcloud >= 0.13.2
  59680. .UNINDENT
  59681. .SS Configuration
  59682. .sp
  59683. Using Salt for CloudStack, requires an \fBAPI key\fP and a \fBsecret key\fP along with the API address endpoint information.
  59684. .INDENT 0.0
  59685. .INDENT 3.5
  59686. .sp
  59687. .nf
  59688. .ft C
  59689. # Note: This example is for /etc/salt/cloud.providers or any file in the
  59690. # /etc/salt/cloud.providers.d/ directory.
  59691. exoscale:
  59692. driver: cloudstack
  59693. host: api.exoscale.com
  59694. path: /compute
  59695. apikey: EXOAPIKEY
  59696. secretkey: EXOSECRETKEYINYOURACCOUNT
  59697. .ft P
  59698. .fi
  59699. .UNINDENT
  59700. .UNINDENT
  59701. .sp
  59702. \fBNOTE:\fP
  59703. .INDENT 0.0
  59704. .INDENT 3.5
  59705. Changed in version 2015.8.0.
  59706. .sp
  59707. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  59708. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  59709. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  59710. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  59711. to use \fBprovider\fP to refer to provider configurations that you define.
  59712. .UNINDENT
  59713. .UNINDENT
  59714. .SS Profiles
  59715. .SS Cloud Profiles
  59716. .sp
  59717. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  59718. \fB/etc/salt/cloud.profiles.d/\fP directory:
  59719. .INDENT 0.0
  59720. .INDENT 3.5
  59721. .sp
  59722. .nf
  59723. .ft C
  59724. exoscale\-ubuntu:
  59725. provider: exoscale\-config
  59726. image: Linux Ubuntu 18.04
  59727. size: Small
  59728. location: ch\-gva\-2
  59729. ssh_username: ubuntu
  59730. .ft P
  59731. .fi
  59732. .UNINDENT
  59733. .UNINDENT
  59734. .sp
  59735. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  59736. command:
  59737. .INDENT 0.0
  59738. .INDENT 3.5
  59739. .sp
  59740. .nf
  59741. .ft C
  59742. # salt\-cloud \-\-list\-locations exoscale\-config
  59743. exoscale:
  59744. \-\-\-\-\-\-\-\-\-\-
  59745. cloudstack:
  59746. \-\-\-\-\-\-\-\-\-\-
  59747. ch\-dk\-2:
  59748. \-\-\-\-\-\-\-\-\-\-
  59749. country:
  59750. Unknown
  59751. driver:
  59752. id:
  59753. 91e5e9e4\-c9ed\-4b76\-bee4\-427004b3baf9
  59754. name:
  59755. ch\-dk\-2
  59756. ch\-gva\-2:
  59757. \-\-\-\-\-\-\-\-\-\-
  59758. country:
  59759. Unknown
  59760. driver:
  59761. id:
  59762. 1128bd56\-b4d9\-4ac6\-a7b9\-c715b187ce11
  59763. name:
  59764. ch\-gva\-2
  59765. .ft P
  59766. .fi
  59767. .UNINDENT
  59768. .UNINDENT
  59769. .sp
  59770. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  59771. command:
  59772. .INDENT 0.0
  59773. .INDENT 3.5
  59774. .sp
  59775. .nf
  59776. .ft C
  59777. # salt\-cloud \-\-list\-sizes exoscale
  59778. exoscale:
  59779. \-\-\-\-\-\-\-\-\-\-
  59780. cloudstack:
  59781. \-\-\-\-\-\-\-\-\-\-
  59782. Extra\-large:
  59783. \-\-\-\-\-\-\-\-\-\-
  59784. bandwidth:
  59785. 0
  59786. disk:
  59787. 0
  59788. driver:
  59789. extra:
  59790. \-\-\-\-\-\-\-\-\-\-
  59791. cpu:
  59792. 4
  59793. get_uuid:
  59794. id:
  59795. 350dc5ea\-fe6d\-42ba\-b6c0\-efb8b75617ad
  59796. name:
  59797. Extra\-large
  59798. price:
  59799. 0
  59800. ram:
  59801. 16384
  59802. uuid:
  59803. edb4cd4ae14bbf152d451b30c4b417ab095a5bfe
  59804. \&...SNIP...
  59805. .ft P
  59806. .fi
  59807. .UNINDENT
  59808. .UNINDENT
  59809. .sp
  59810. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  59811. command:
  59812. .INDENT 0.0
  59813. .INDENT 3.5
  59814. .sp
  59815. .nf
  59816. .ft C
  59817. # salt\-cloud \-\-list\-images exoscale
  59818. exoscale:
  59819. \-\-\-\-\-\-\-\-\-\-
  59820. cloudstack:
  59821. \-\-\-\-\-\-\-\-\-\-
  59822. Linux CentOS 6.6 64\-bit:
  59823. \-\-\-\-\-\-\-\-\-\-
  59824. driver:
  59825. extra:
  59826. \-\-\-\-\-\-\-\-\-\-
  59827. displaytext:
  59828. Linux CentOS 6.6 64\-bit 10G Disk (2014\-12\-01\-bac8e0)
  59829. format:
  59830. QCOW2
  59831. hypervisor:
  59832. KVM
  59833. os:
  59834. Other PV (64\-bit)
  59835. size:
  59836. 10737418240
  59837. get_uuid:
  59838. id:
  59839. aa69ae64\-1ea9\-40af\-8824\-c2c3344e8d7c
  59840. name:
  59841. Linux CentOS 6.6 64\-bit
  59842. uuid:
  59843. f26b4f54ec8591abdb6b5feb3b58f720aa438fee
  59844. \&...SNIP...
  59845. .ft P
  59846. .fi
  59847. .UNINDENT
  59848. .UNINDENT
  59849. .SS CloudStack specific settings
  59850. .SS securitygroup
  59851. .sp
  59852. New in version 2017.7.0.
  59853. .sp
  59854. You can specify a list of security groups (by name or id) that should be
  59855. assigned to the VM:
  59856. .INDENT 0.0
  59857. .INDENT 3.5
  59858. .sp
  59859. .nf
  59860. .ft C
  59861. exoscale:
  59862. provider: cloudstack
  59863. securitygroup:
  59864. \- default
  59865. \- salt\-master
  59866. .ft P
  59867. .fi
  59868. .UNINDENT
  59869. .UNINDENT
  59870. .SS Getting Started With DigitalOcean
  59871. .sp
  59872. DigitalOcean is a public cloud host that specializes in Linux instances.
  59873. .SS Configuration
  59874. .sp
  59875. Using Salt for DigitalOcean requires a \fBpersonal_access_token\fP, an \fBssh_key_file\fP,
  59876. and at least one SSH key name in \fBssh_key_names\fP\&. More \fBssh_key_names\fP can be added
  59877. by separating each key with a comma. The \fBpersonal_access_token\fP can be found in the
  59878. DigitalOcean web interface in the "Apps & API" section. The SSH key name can be found
  59879. under the "SSH Keys" section.
  59880. .INDENT 0.0
  59881. .INDENT 3.5
  59882. .sp
  59883. .nf
  59884. .ft C
  59885. # Note: This example is for /etc/salt/cloud.providers or any file in the
  59886. # /etc/salt/cloud.providers.d/ directory.
  59887. my\-digitalocean\-config:
  59888. driver: digitalocean
  59889. personal_access_token: xxx
  59890. ssh_key_file: /path/to/ssh/key/file
  59891. ssh_key_names: my\-key\-name,my\-key\-name\-2
  59892. location: New York 1
  59893. .ft P
  59894. .fi
  59895. .UNINDENT
  59896. .UNINDENT
  59897. .sp
  59898. \fBNOTE:\fP
  59899. .INDENT 0.0
  59900. .INDENT 3.5
  59901. Changed in version 2015.8.0.
  59902. .sp
  59903. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  59904. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  59905. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  59906. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  59907. to use \fBprovider\fP to refer to provider configurations that you define.
  59908. .UNINDENT
  59909. .UNINDENT
  59910. .SS Profiles
  59911. .SS Cloud Profiles
  59912. .sp
  59913. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  59914. \fB/etc/salt/cloud.profiles.d/\fP directory:
  59915. .INDENT 0.0
  59916. .INDENT 3.5
  59917. .sp
  59918. .nf
  59919. .ft C
  59920. digitalocean\-ubuntu:
  59921. provider: my\-digitalocean\-config
  59922. image: 14.04 x64
  59923. size: 512MB
  59924. location: New York 1
  59925. private_networking: True
  59926. backups_enabled: True
  59927. ipv6: True
  59928. create_dns_record: True
  59929. userdata_file: /etc/salt/cloud.userdata.d/setup
  59930. tags:
  59931. \- tag1
  59932. \- tag2
  59933. \- tag3
  59934. .ft P
  59935. .fi
  59936. .UNINDENT
  59937. .UNINDENT
  59938. .sp
  59939. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  59940. command:
  59941. .INDENT 0.0
  59942. .INDENT 3.5
  59943. .sp
  59944. .nf
  59945. .ft C
  59946. # salt\-cloud \-\-list\-locations my\-digitalocean\-config
  59947. my\-digitalocean\-config:
  59948. \-\-\-\-\-\-\-\-\-\-
  59949. digitalocean:
  59950. \-\-\-\-\-\-\-\-\-\-
  59951. Amsterdam 1:
  59952. \-\-\-\-\-\-\-\-\-\-
  59953. available:
  59954. False
  59955. features:
  59956. [u\(aqbackups\(aq]
  59957. name:
  59958. Amsterdam 1
  59959. sizes:
  59960. []
  59961. slug:
  59962. ams1
  59963. \&...SNIP...
  59964. .ft P
  59965. .fi
  59966. .UNINDENT
  59967. .UNINDENT
  59968. .sp
  59969. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  59970. command:
  59971. .INDENT 0.0
  59972. .INDENT 3.5
  59973. .sp
  59974. .nf
  59975. .ft C
  59976. # salt\-cloud \-\-list\-sizes my\-digitalocean\-config
  59977. my\-digitalocean\-config:
  59978. \-\-\-\-\-\-\-\-\-\-
  59979. digitalocean:
  59980. \-\-\-\-\-\-\-\-\-\-
  59981. 512MB:
  59982. \-\-\-\-\-\-\-\-\-\-
  59983. cost_per_hour:
  59984. 0.00744
  59985. cost_per_month:
  59986. 5.0
  59987. cpu:
  59988. 1
  59989. disk:
  59990. 20
  59991. id:
  59992. 66
  59993. memory:
  59994. 512
  59995. name:
  59996. 512MB
  59997. slug:
  59998. None
  59999. \&...SNIP...
  60000. .ft P
  60001. .fi
  60002. .UNINDENT
  60003. .UNINDENT
  60004. .sp
  60005. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  60006. command:
  60007. .INDENT 0.0
  60008. .INDENT 3.5
  60009. .sp
  60010. .nf
  60011. .ft C
  60012. # salt\-cloud \-\-list\-images my\-digitalocean\-config
  60013. my\-digitalocean\-config:
  60014. \-\-\-\-\-\-\-\-\-\-
  60015. digitalocean:
  60016. \-\-\-\-\-\-\-\-\-\-
  60017. 10.1:
  60018. \-\-\-\-\-\-\-\-\-\-
  60019. created_at:
  60020. 2015\-01\-20T20:04:34Z
  60021. distribution:
  60022. FreeBSD
  60023. id:
  60024. 10144573
  60025. min_disk_size:
  60026. 20
  60027. name:
  60028. 10.1
  60029. public:
  60030. True
  60031. \&...SNIP...
  60032. .ft P
  60033. .fi
  60034. .UNINDENT
  60035. .UNINDENT
  60036. .SS Profile Specifics:
  60037. .SS ssh_username
  60038. .sp
  60039. If using a FreeBSD image from DigitalOcean, you\(aqll need to set the \fBssh_username\fP
  60040. setting to \fBfreebsd\fP in your profile configuration.
  60041. .INDENT 0.0
  60042. .INDENT 3.5
  60043. .sp
  60044. .nf
  60045. .ft C
  60046. digitalocean\-freebsd:
  60047. provider: my\-digitalocean\-config
  60048. image: 10.2
  60049. size: 512MB
  60050. ssh_username: freebsd
  60051. .ft P
  60052. .fi
  60053. .UNINDENT
  60054. .UNINDENT
  60055. .SS userdata_file
  60056. .sp
  60057. New in version 2016.11.6.
  60058. .sp
  60059. Use \fIuserdata_file\fP to specify the userdata file to upload for use with
  60060. cloud\-init if available.
  60061. .INDENT 0.0
  60062. .INDENT 3.5
  60063. .sp
  60064. .nf
  60065. .ft C
  60066. my\-openstack\-config:
  60067. # Pass userdata to the instance to be created
  60068. userdata_file: /etc/salt/cloud\-init/packages.yml
  60069. .ft P
  60070. .fi
  60071. .UNINDENT
  60072. .UNINDENT
  60073. .INDENT 0.0
  60074. .INDENT 3.5
  60075. .sp
  60076. .nf
  60077. .ft C
  60078. my\-do\-config:
  60079. # Pass userdata to the instance to be created
  60080. userdata_file: /etc/salt/cloud\-init/packages.yml
  60081. userdata_template: jinja
  60082. .ft P
  60083. .fi
  60084. .UNINDENT
  60085. .UNINDENT
  60086. .sp
  60087. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  60088. configuration will be checked for a \fBuserdata_template\fP value.
  60089. If this is not set, then no templating will be performed on the
  60090. userdata_file.
  60091. .sp
  60092. To disable templating in a cloud profile when a
  60093. \fBuserdata_template\fP has been set in the master configuration
  60094. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  60095. .INDENT 0.0
  60096. .INDENT 3.5
  60097. .sp
  60098. .nf
  60099. .ft C
  60100. my\-do\-config:
  60101. # Pass userdata to the instance to be created
  60102. userdata_file: /etc/salt/cloud\-init/packages.yml
  60103. userdata_template: False
  60104. .ft P
  60105. .fi
  60106. .UNINDENT
  60107. .UNINDENT
  60108. .SS Miscellaneous Information
  60109. .sp
  60110. \fBNOTE:\fP
  60111. .INDENT 0.0
  60112. .INDENT 3.5
  60113. DigitalOcean\(aqs concept of \fBApplications\fP is nothing more than a
  60114. pre\-configured instance (same as a normal Droplet). You will find examples
  60115. such \fBDocker 0.7 Ubuntu 13.04 x64\fP and \fBWordpress on Ubuntu 12.10\fP
  60116. when using the \fB\-\-list\-images\fP option. These names can be used just like
  60117. the rest of the standard instances when specifying an image in the cloud
  60118. profile configuration.
  60119. .UNINDENT
  60120. .UNINDENT
  60121. .sp
  60122. \fBNOTE:\fP
  60123. .INDENT 0.0
  60124. .INDENT 3.5
  60125. If your domain\(aqs DNS is managed with DigitalOcean, and your minion name
  60126. matches your DigitalOcean managed DNS domain, you can automatically create
  60127. A and AAA records for newly created droplets. Use \fBcreate_dns_record: True\fP
  60128. in your config to enable this. Adding \fBdelete_dns_record: True\fP to also
  60129. delete records when a droplet is destroyed is optional. Due to limitations
  60130. in salt\-cloud design, the destroy code does not have access to the VM config
  60131. data. WHETHER YOU ADD \fBcreate_dns_record: True\fP OR NOT, salt\-cloud WILL
  60132. attempt to delete your DNS records if the minion name matches. This will
  60133. prevent advertising any recycled IP addresses for destroyed minions.
  60134. .UNINDENT
  60135. .UNINDENT
  60136. .sp
  60137. \fBNOTE:\fP
  60138. .INDENT 0.0
  60139. .INDENT 3.5
  60140. If you need to perform the bootstrap using the local interface for droplets,
  60141. this can be done by setting \fBssh_interface: private\fP in your config. By
  60142. default the salt\-cloud script would run on the public interface however if firewall
  60143. is preventing the connection to the Droplet over the public interface you might need
  60144. to set this option to connect via private interface. Also, to use this feature
  60145. \fBprivate_networking: True\fP must be set in the config.
  60146. .UNINDENT
  60147. .UNINDENT
  60148. .sp
  60149. \fBNOTE:\fP
  60150. .INDENT 0.0
  60151. .INDENT 3.5
  60152. Additional documentation is available from \fI\%DigitalOcean\fP\&.
  60153. .UNINDENT
  60154. .UNINDENT
  60155. .SS Getting Started With Dimension Data Cloud
  60156. .sp
  60157. Dimension Data are a global IT Services company and form part of the NTT Group.
  60158. Dimension Data provide IT\-as\-a\-Service to customers around the globe on their
  60159. cloud platform (Compute as a Service). The CaaS service is available either on
  60160. one of the public cloud instances or as a private instance on premises.
  60161. .sp
  60162. \fI\%http://cloud.dimensiondata.com/\fP
  60163. .sp
  60164. CaaS has its own non\-standard API , SaltStack provides a wrapper on top of this
  60165. API with common methods with other IaaS solutions and Public cloud providers.
  60166. Therefore, you can use the Dimension Data module to communicate with both the
  60167. public and private clouds.
  60168. .SS Dependencies
  60169. .sp
  60170. This driver requires the Python \fBapache\-libcloud\fP and \fBnetaddr\fP library to be installed.
  60171. .SS Configuration
  60172. .sp
  60173. When you instantiate a driver you need to pass the following arguments to the
  60174. driver constructor:
  60175. .INDENT 0.0
  60176. .IP \(bu 2
  60177. \fBuser_id\fP \- Your Dimension Data Cloud username
  60178. .IP \(bu 2
  60179. \fBkey\fP \- Your Dimension Data Cloud password
  60180. .IP \(bu 2
  60181. \fBregion\fP \- The region key, one of the possible region keys
  60182. .UNINDENT
  60183. .sp
  60184. Possible regions:
  60185. .INDENT 0.0
  60186. .IP \(bu 2
  60187. \fBdd\-na\fP : Dimension Data North America (USA)
  60188. .IP \(bu 2
  60189. \fBdd\-eu\fP : Dimension Data Europe
  60190. .IP \(bu 2
  60191. \fBdd\-af\fP : Dimension Data Africa
  60192. .IP \(bu 2
  60193. \fBdd\-au\fP : Dimension Data Australia
  60194. .IP \(bu 2
  60195. \fBdd\-latam\fP : Dimension Data Latin America
  60196. .IP \(bu 2
  60197. \fBdd\-ap\fP : Dimension Data Asia Pacific
  60198. .IP \(bu 2
  60199. \fBdd\-canada\fP : Dimension Data Canada region
  60200. .UNINDENT
  60201. .INDENT 0.0
  60202. .INDENT 3.5
  60203. .sp
  60204. .nf
  60205. .ft C
  60206. # Note: This example is for /etc/salt/cloud.providers or any file in the
  60207. # /etc/salt/cloud.providers.d/ directory.
  60208. my\-dimensiondata\-config:
  60209. user_id: my_username
  60210. key: myPassword!
  60211. region: dd\-na
  60212. driver: dimensiondata
  60213. .ft P
  60214. .fi
  60215. .UNINDENT
  60216. .UNINDENT
  60217. .sp
  60218. \fBNOTE:\fP
  60219. .INDENT 0.0
  60220. .INDENT 3.5
  60221. In version 2015.8.0, the \fBprovider\fP parameter in cloud provider
  60222. definitions was renamed to \fBdriver\fP\&. This change was made to avoid
  60223. confusion with the \fBprovider\fP parameter that is used in cloud profile
  60224. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the
  60225. Salt cloud module that provides the underlying functionality to connect to
  60226. a cloud host, while cloud profiles continue to use \fBprovider\fP to refer to
  60227. provider configurations that you define.
  60228. .UNINDENT
  60229. .UNINDENT
  60230. .SS Profiles
  60231. .SS Cloud Profiles
  60232. .sp
  60233. Dimension Data images have an inbuilt size configuration, there is no list of sizes (although, if the
  60234. command \-\-list\-sizes is run a default will be returned).
  60235. .sp
  60236. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  60237. command:
  60238. .INDENT 0.0
  60239. .INDENT 3.5
  60240. .sp
  60241. .nf
  60242. .ft C
  60243. # salt\-cloud \-\-list\-images my\-dimensiondata\-config
  60244. my\-dimensiondata\-config:
  60245. \-\-\-\-\-\-\-\-\-\-
  60246. dimensiondata:
  60247. \-\-\-\-\-\-\-\-\-\-
  60248. CSfM SharePoint 2013 Trial:
  60249. \-\-\-\-\-\-\-\-\-\-
  60250. driver:
  60251. extra:
  60252. \-\-\-\-\-\-\-\-\-\-
  60253. OS_displayName:
  60254. WIN2012R2S/64
  60255. OS_type:
  60256. None
  60257. cpu:
  60258. created:
  60259. 2015\-03\-19T18:36:06.000Z
  60260. description:
  60261. Windows 2012 R2 Standard 64\-bit installed with SharePoint 2013 and Visual Studio 2013 Pro (Trial Version)
  60262. location:
  60263. memoryGb:
  60264. 12
  60265. osImageKey:
  60266. T\-WIN\-2012R2\-STD\-SP2013\-VS2013\-64\-4\-12\-100
  60267. get_uuid:
  60268. id:
  60269. 0df4677e\-d380\-4e9b\-9469\-b529ee0214c5
  60270. name:
  60271. CSfM SharePoint 2013 Trial
  60272. uuid:
  60273. 28c077f1be970ee904541407b377e3ff87a9ac69
  60274. CentOS 5 32\-bit 2 CPU:
  60275. \-\-\-\-\-\-\-\-\-\-
  60276. driver:
  60277. extra:
  60278. \-\-\-\-\-\-\-\-\-\-
  60279. OS_displayName:
  60280. CENTOS5/32
  60281. OS_type:
  60282. None
  60283. cpu:
  60284. created:
  60285. 2015\-10\-21T14:52:29.000Z
  60286. description:
  60287. CentOS Release 5.11 32\-bit
  60288. location:
  60289. memoryGb:
  60290. 4
  60291. osImageKey:
  60292. T\-CENT\-5\-32\-2\-4\-10
  60293. get_uuid:
  60294. id:
  60295. a8046bd1\-04ea\-4668\-bf32\-bf8d5540faed
  60296. name:
  60297. CentOS 5 32\-bit 2 CPU
  60298. uuid:
  60299. 4d7dd59929fed6f4228db861b609da64997773a7
  60300. \&...SNIP...
  60301. .ft P
  60302. .fi
  60303. .UNINDENT
  60304. .UNINDENT
  60305. .sp
  60306. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  60307. command:
  60308. .INDENT 0.0
  60309. .INDENT 3.5
  60310. .sp
  60311. .nf
  60312. .ft C
  60313. my\-dimensiondata\-config:
  60314. \-\-\-\-\-\-\-\-\-\-
  60315. dimensiondata:
  60316. \-\-\-\-\-\-\-\-\-\-
  60317. Australia \- Melbourne:
  60318. \-\-\-\-\-\-\-\-\-\-
  60319. country:
  60320. Australia
  60321. driver:
  60322. id:
  60323. AU2
  60324. name:
  60325. Australia \- Melbourne
  60326. Australia \- Melbourne MCP2:
  60327. \-\-\-\-\-\-\-\-\-\-
  60328. country:
  60329. Australia
  60330. driver:
  60331. id:
  60332. AU10
  60333. name:
  60334. Australia \- Melbourne MCP2
  60335. Australia \- Sydney:
  60336. \-\-\-\-\-\-\-\-\-\-
  60337. country:
  60338. Australia
  60339. driver:
  60340. id:
  60341. AU1
  60342. name:
  60343. Australia \- Sydney
  60344. Australia \- Sydney MCP2:
  60345. \-\-\-\-\-\-\-\-\-\-
  60346. country:
  60347. Australia
  60348. driver:
  60349. id:
  60350. AU9
  60351. name:
  60352. Australia \- Sydney MCP2
  60353. New Zealand:
  60354. \-\-\-\-\-\-\-\-\-\-
  60355. country:
  60356. New Zealand
  60357. driver:
  60358. id:
  60359. AU8
  60360. name:
  60361. New Zealand
  60362. New_Zealand:
  60363. \-\-\-\-\-\-\-\-\-\-
  60364. country:
  60365. New Zealand
  60366. driver:
  60367. id:
  60368. AU11
  60369. name:
  60370. New_Zealand
  60371. .ft P
  60372. .fi
  60373. .UNINDENT
  60374. .UNINDENT
  60375. .sp
  60376. \fBNOTE:\fP
  60377. .INDENT 0.0
  60378. .INDENT 3.5
  60379. Dimension Data Cloud REST API documentation is available from \fI\%Dimension Data MCP 2\fP\&.
  60380. .UNINDENT
  60381. .UNINDENT
  60382. .SS Getting Started With AWS EC2
  60383. .sp
  60384. Amazon EC2 is a very widely used public cloud platform and one of the core
  60385. platforms Salt Cloud has been built to support.
  60386. .sp
  60387. Previously, the suggested driver for AWS EC2 was the \fBaws\fP driver. This
  60388. has been deprecated in favor of the \fBec2\fP driver. Configuration using the
  60389. old \fBaws\fP driver will still function, but that driver is no longer in
  60390. active development.
  60391. .SS Dependencies
  60392. .sp
  60393. This driver requires the Python \fBrequests\fP library to be installed.
  60394. .SS Configuration
  60395. .sp
  60396. The following example illustrates some of the options that can be set. These
  60397. parameters are discussed in more detail below.
  60398. .INDENT 0.0
  60399. .INDENT 3.5
  60400. .sp
  60401. .nf
  60402. .ft C
  60403. # Note: This example is for /etc/salt/cloud.providers or any file in the
  60404. # /etc/salt/cloud.providers.d/ directory.
  60405. my\-ec2\-southeast\-public\-ips:
  60406. # Set up the location of the salt master
  60407. #
  60408. minion:
  60409. master: saltmaster.example.com
  60410. # Set up grains information, which will be common for all nodes
  60411. # using this provider
  60412. grains:
  60413. node_type: broker
  60414. release: 1.0.1
  60415. # Specify whether to use public or private IP for deploy script.
  60416. #
  60417. # Valid options are:
  60418. # private_ips \- The salt\-cloud command is run inside the EC2
  60419. # public_ips \- The salt\-cloud command is run outside of EC2
  60420. #
  60421. ssh_interface: public_ips
  60422. # Optionally configure the Windows credential validation number of
  60423. # retries and delay between retries. This defaults to 10 retries
  60424. # with a one second delay betwee retries
  60425. win_deploy_auth_retries: 10
  60426. win_deploy_auth_retry_delay: 1
  60427. # Set the EC2 access credentials (see below)
  60428. #
  60429. id: \(aquse\-instance\-role\-credentials\(aq
  60430. key: \(aquse\-instance\-role\-credentials\(aq
  60431. # If \(aqrole_arn\(aq is specified the above credentials are used to
  60432. # to assume to the role. By default, role_arn is set to None.
  60433. role_arn: arn:aws:iam::012345678910:role/SomeRoleName
  60434. # Make sure this key is owned by corresponding user (default \(aqsalt\(aq) with permissions 0400.
  60435. #
  60436. private_key: /etc/salt/my_test_key.pem
  60437. keyname: my_test_key
  60438. securitygroup: default
  60439. # Optionally configure default region
  60440. # Use salt\-cloud \-\-list\-locations <provider> to obtain valid regions
  60441. #
  60442. location: ap\-southeast\-1
  60443. availability_zone: ap\-southeast\-1b
  60444. # Configure which user to use to run the deploy script. This setting is
  60445. # dependent upon the AMI that is used to deploy. It is usually safer to
  60446. # configure this individually in a profile, than globally. Typical users
  60447. # are:
  60448. #
  60449. # Amazon Linux \-> ec2\-user
  60450. # RHEL \-> ec2\-user
  60451. # CentOS \-> ec2\-user
  60452. # Ubuntu \-> ubuntu
  60453. # Debian \-> admin
  60454. #
  60455. ssh_username: ec2\-user
  60456. # Optionally add an IAM profile
  60457. iam_profile: \(aqarn:aws:iam::123456789012:instance\-profile/ExampleInstanceProfile\(aq
  60458. driver: ec2
  60459. my\-ec2\-southeast\-private\-ips:
  60460. # Set up the location of the salt master
  60461. #
  60462. minion:
  60463. master: saltmaster.example.com
  60464. # Specify whether to use public or private IP for deploy script.
  60465. #
  60466. # Valid options are:
  60467. # private_ips \- The salt\-master is also hosted with EC2
  60468. # public_ips \- The salt\-master is hosted outside of EC2
  60469. #
  60470. ssh_interface: private_ips
  60471. # Optionally configure the Windows credential validation number of
  60472. # retries and delay between retries. This defaults to 10 retries
  60473. # with a one second delay betwee retries
  60474. win_deploy_auth_retries: 10
  60475. win_deploy_auth_retry_delay: 1
  60476. # Set the EC2 access credentials (see below)
  60477. #
  60478. id: \(aquse\-instance\-role\-credentials\(aq
  60479. key: \(aquse\-instance\-role\-credentials\(aq
  60480. # Make sure this key is owned by root with permissions 0400.
  60481. #
  60482. private_key: /etc/salt/my_test_key.pem
  60483. keyname: my_test_key
  60484. # This one should NOT be specified if VPC was not configured in AWS to be
  60485. # the default. It might cause an error message which says that network
  60486. # interfaces and an instance\-level security groups may not be specified
  60487. # on the same request.
  60488. #
  60489. securitygroup: default
  60490. # Optionally configure default region
  60491. #
  60492. location: ap\-southeast\-1
  60493. availability_zone: ap\-southeast\-1b
  60494. # Configure which user to use to run the deploy script. This setting is
  60495. # dependent upon the AMI that is used to deploy. It is usually safer to
  60496. # configure this individually in a profile, than globally. Typical users
  60497. # are:
  60498. #
  60499. # Amazon Linux \-> ec2\-user
  60500. # RHEL \-> ec2\-user
  60501. # CentOS \-> ec2\-user
  60502. # Ubuntu \-> ubuntu
  60503. #
  60504. ssh_username: ec2\-user
  60505. # Optionally add an IAM profile
  60506. iam_profile: \(aqmy other profile name\(aq
  60507. driver: ec2
  60508. .ft P
  60509. .fi
  60510. .UNINDENT
  60511. .UNINDENT
  60512. .sp
  60513. \fBNOTE:\fP
  60514. .INDENT 0.0
  60515. .INDENT 3.5
  60516. Changed in version 2015.8.0.
  60517. .sp
  60518. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  60519. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  60520. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  60521. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  60522. to use \fBprovider\fP to refer to provider configurations that you define.
  60523. .UNINDENT
  60524. .UNINDENT
  60525. .SS Access Credentials
  60526. .sp
  60527. The \fBid\fP and \fBkey\fP settings may be found in the Security Credentials area
  60528. of the AWS Account page:
  60529. .sp
  60530. \fI\%https://portal.aws.amazon.com/gp/aws/securityCredentials\fP
  60531. .sp
  60532. Both are located in the Access Credentials area of the page, under the Access
  60533. Keys tab. The \fBid\fP setting is labeled Access Key ID, and the \fBkey\fP setting
  60534. is labeled Secret Access Key.
  60535. .sp
  60536. Note: if either \fBid\fP or \fBkey\fP is set to \(aquse\-instance\-role\-credentials\(aq it is
  60537. assumed that Salt is running on an AWS instance, and the instance role
  60538. credentials will be retrieved and used. Since both the \fBid\fP and \fBkey\fP are
  60539. required parameters for the AWS ec2 provider, it is recommended to set both
  60540. to \(aquse\-instance\-role\-credentials\(aq for this functionality.
  60541. .sp
  60542. A "static" and "permanent" Access Key ID and Secret Key can be specified,
  60543. but this is not recommended. Instance role keys are rotated on a regular
  60544. basis, and are the recommended method of specifying AWS credentials.
  60545. .SS Windows Deploy Timeouts
  60546. .sp
  60547. For Windows instances, it may take longer than normal for the instance to be
  60548. ready. In these circumstances, the provider configuration can be configured
  60549. with a \fBwin_deploy_auth_retries\fP and/or a \fBwin_deploy_auth_retry_delay\fP
  60550. setting, which default to 10 retries and a one second delay between retries.
  60551. These retries and timeouts relate to validating the Administrator password
  60552. once AWS provides the credentials via the AWS API.
  60553. .SS Key Pairs
  60554. .sp
  60555. In order to create an instance with Salt installed and configured, a key pair
  60556. will need to be created. This can be done in the EC2 Management Console, in the
  60557. Key Pairs area. These key pairs are unique to a specific region. Keys in the
  60558. us\-east\-1 region can be configured at:
  60559. .sp
  60560. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-east\-1#s=KeyPairs\fP
  60561. .sp
  60562. Keys in the us\-west\-1 region can be configured at
  60563. .sp
  60564. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-west\-1#s=KeyPairs\fP
  60565. .sp
  60566. \&...and so on. When creating a key pair, the browser will prompt to download a
  60567. pem file. This file must be placed in a directory accessible by Salt Cloud,
  60568. with permissions set to either 0400 or 0600.
  60569. .SS Security Groups
  60570. .sp
  60571. An instance on EC2 needs to belong to a security group. Like key pairs, these
  60572. are unique to a specific region. These are also configured in the EC2
  60573. Management Console. Security groups for the us\-east\-1 region can be configured
  60574. at:
  60575. .sp
  60576. \fI\%https://console.aws.amazon.com/ec2/home?region=us\-east\-1#s=SecurityGroups\fP
  60577. .sp
  60578. \&...and so on.
  60579. .sp
  60580. A security group defines firewall rules which an instance will adhere to. If
  60581. the salt\-master is configured outside of EC2, the security group must open the
  60582. SSH port (usually port 22) in order for Salt Cloud to install Salt.
  60583. .SS IAM Profile
  60584. .sp
  60585. Amazon EC2 instances support the concept of an \fI\%instance profile\fP, which
  60586. is a logical container for the IAM role. At the time that you launch an EC2
  60587. instance, you can associate the instance with an instance profile, which in
  60588. turn corresponds to the IAM role. Any software that runs on the EC2 instance
  60589. is able to access AWS using the permissions associated with the IAM role.
  60590. .sp
  60591. Scaffolding the profile is a 2\-step configuration process:
  60592. .INDENT 0.0
  60593. .IP 1. 3
  60594. Configure an IAM Role from the \fI\%IAM Management Console\fP\&.
  60595. .IP 2. 3
  60596. Attach this role to a new profile. It can be done with the \fI\%AWS CLI\fP:
  60597. .INDENT 3.0
  60598. .INDENT 3.5
  60599. .INDENT 0.0
  60600. .INDENT 3.5
  60601. .sp
  60602. .nf
  60603. .ft C
  60604. > aws iam create\-instance\-profile \-\-instance\-profile\-name PROFILE_NAME
  60605. > aws iam add\-role\-to\-instance\-profile \-\-instance\-profile\-name PROFILE_NAME \-\-role\-name ROLE_NAME
  60606. .ft P
  60607. .fi
  60608. .UNINDENT
  60609. .UNINDENT
  60610. .UNINDENT
  60611. .UNINDENT
  60612. .UNINDENT
  60613. .sp
  60614. Once the profile is created, you can use the \fBPROFILE_NAME\fP to configure
  60615. your cloud profiles.
  60616. .SS Cloud Profiles
  60617. .sp
  60618. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  60619. .INDENT 0.0
  60620. .INDENT 3.5
  60621. .sp
  60622. .nf
  60623. .ft C
  60624. base_ec2_private:
  60625. provider: my\-ec2\-southeast\-private\-ips
  60626. image: ami\-e565ba8c
  60627. size: t2.micro
  60628. ssh_username: ec2\-user
  60629. base_ec2_public:
  60630. provider: my\-ec2\-southeast\-public\-ips
  60631. image: ami\-e565ba8c
  60632. size: t2.micro
  60633. ssh_username: ec2\-user
  60634. base_ec2_db:
  60635. provider: my\-ec2\-southeast\-public\-ips
  60636. image: ami\-e565ba8c
  60637. size: m1.xlarge
  60638. ssh_username: ec2\-user
  60639. volumes:
  60640. \- { size: 10, device: /dev/sdf }
  60641. \- { size: 10, device: /dev/sdg, type: io1, iops: 1000 }
  60642. \- { size: 10, device: /dev/sdh, type: io1, iops: 1000 }
  60643. \- { size: 10, device: /dev/sdi, tags: {"Environment": "production"} }
  60644. # optionally add tags to profile:
  60645. tag: {\(aqEnvironment\(aq: \(aqproduction\(aq, \(aqRole\(aq: \(aqdatabase\(aq}
  60646. # force grains to sync after install
  60647. sync_after_install: grains
  60648. base_ec2_vpc:
  60649. provider: my\-ec2\-southeast\-public\-ips
  60650. image: ami\-a73264ce
  60651. size: m1.xlarge
  60652. ssh_username: ec2\-user
  60653. script: /etc/salt/cloud.deploy.d/user_data.sh
  60654. network_interfaces:
  60655. \- DeviceIndex: 0
  60656. PrivateIpAddresses:
  60657. \- Primary: True
  60658. #auto assign public ip (not EIP)
  60659. AssociatePublicIpAddress: True
  60660. SubnetId: subnet\-813d4bbf
  60661. SecurityGroupId:
  60662. \- sg\-750af413
  60663. del_root_vol_on_destroy: True
  60664. del_all_vols_on_destroy: True
  60665. volumes:
  60666. \- { size: 10, device: /dev/sdf }
  60667. \- { size: 10, device: /dev/sdg, type: io1, iops: 1000 }
  60668. \- { size: 10, device: /dev/sdh, type: io1, iops: 1000 }
  60669. tag: {\(aqEnvironment\(aq: \(aqproduction\(aq, \(aqRole\(aq: \(aqdatabase\(aq}
  60670. sync_after_install: grains
  60671. .ft P
  60672. .fi
  60673. .UNINDENT
  60674. .UNINDENT
  60675. .sp
  60676. The profile can now be realized with a salt command:
  60677. .INDENT 0.0
  60678. .INDENT 3.5
  60679. .sp
  60680. .nf
  60681. .ft C
  60682. # salt\-cloud \-p base_ec2 ami.example.com
  60683. # salt\-cloud \-p base_ec2_public ami.example.com
  60684. # salt\-cloud \-p base_ec2_private ami.example.com
  60685. .ft P
  60686. .fi
  60687. .UNINDENT
  60688. .UNINDENT
  60689. .sp
  60690. This will create an instance named \fBami.example.com\fP in EC2. The minion that
  60691. is installed on this instance will have an \fBid\fP of \fBami.example.com\fP\&. If
  60692. the command was executed on the salt\-master, its Salt key will automatically be
  60693. signed on the master.
  60694. .sp
  60695. Once the instance has been created with salt\-minion installed, connectivity to
  60696. it can be verified with Salt:
  60697. .INDENT 0.0
  60698. .INDENT 3.5
  60699. .sp
  60700. .nf
  60701. .ft C
  60702. # salt \(aqami.example.com\(aq test.version
  60703. .ft P
  60704. .fi
  60705. .UNINDENT
  60706. .UNINDENT
  60707. .SS Required Settings
  60708. .sp
  60709. The following settings are always required for EC2:
  60710. .INDENT 0.0
  60711. .INDENT 3.5
  60712. .sp
  60713. .nf
  60714. .ft C
  60715. # Set the EC2 login data
  60716. my\-ec2\-config:
  60717. id: HJGRYCILJLKJYG
  60718. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  60719. keyname: test
  60720. securitygroup: quick\-start
  60721. private_key: /root/test.pem
  60722. driver: ec2
  60723. .ft P
  60724. .fi
  60725. .UNINDENT
  60726. .UNINDENT
  60727. .SS Optional Settings
  60728. .sp
  60729. EC2 allows a userdata file to be passed to the instance to be created. This
  60730. functionality was added to Salt in the 2015.5.0 release.
  60731. .INDENT 0.0
  60732. .INDENT 3.5
  60733. .sp
  60734. .nf
  60735. .ft C
  60736. my\-ec2\-config:
  60737. # Pass userdata to the instance to be created
  60738. userdata_file: /etc/salt/my\-userdata\-file
  60739. .ft P
  60740. .fi
  60741. .UNINDENT
  60742. .UNINDENT
  60743. .sp
  60744. \fBNOTE:\fP
  60745. .INDENT 0.0
  60746. .INDENT 3.5
  60747. From versions 2016.11.0 and 2016.11.3, this file was passed through the
  60748. master\(aqs \fBrenderer\fP to template it. However, this caused
  60749. issues with non\-YAML data, so templating is no longer performed by default.
  60750. To template the userdata_file, add a \fBuserdata_template\fP option to the
  60751. cloud profile:
  60752. .INDENT 0.0
  60753. .INDENT 3.5
  60754. .sp
  60755. .nf
  60756. .ft C
  60757. my\-ec2\-config:
  60758. # Pass userdata to the instance to be created
  60759. userdata_file: /etc/salt/my\-userdata\-file
  60760. userdata_template: jinja
  60761. .ft P
  60762. .fi
  60763. .UNINDENT
  60764. .UNINDENT
  60765. .sp
  60766. If no \fBuserdata_template\fP is set in the cloud profile, then the master
  60767. configuration will be checked for a \fBuserdata_template\fP value.
  60768. If this is not set, then no templating will be performed on the
  60769. userdata_file.
  60770. .sp
  60771. To disable templating in a cloud profile when a
  60772. \fBuserdata_template\fP has been set in the master configuration
  60773. file, simply set \fBuserdata_template\fP to \fBFalse\fP in the cloud profile:
  60774. .INDENT 0.0
  60775. .INDENT 3.5
  60776. .sp
  60777. .nf
  60778. .ft C
  60779. my\-ec2\-config:
  60780. # Pass userdata to the instance to be created
  60781. userdata_file: /etc/salt/my\-userdata\-file
  60782. userdata_template: False
  60783. .ft P
  60784. .fi
  60785. .UNINDENT
  60786. .UNINDENT
  60787. .UNINDENT
  60788. .UNINDENT
  60789. .sp
  60790. EC2 allows a location to be set for servers to be deployed in. Availability
  60791. zones exist inside regions, and may be added to increase specificity.
  60792. .INDENT 0.0
  60793. .INDENT 3.5
  60794. .sp
  60795. .nf
  60796. .ft C
  60797. my\-ec2\-config:
  60798. # Optionally configure default region
  60799. location: ap\-southeast\-1
  60800. availability_zone: ap\-southeast\-1b
  60801. .ft P
  60802. .fi
  60803. .UNINDENT
  60804. .UNINDENT
  60805. .sp
  60806. EC2 instances can have a public or private IP, or both. When an instance is
  60807. deployed, Salt Cloud needs to log into it via SSH to run the deploy script.
  60808. By default, the public IP will be used for this. If the salt\-cloud command is
  60809. run from another EC2 instance, the private IP should be used.
  60810. .INDENT 0.0
  60811. .INDENT 3.5
  60812. .sp
  60813. .nf
  60814. .ft C
  60815. my\-ec2\-config:
  60816. # Specify whether to use public or private IP for deploy script
  60817. # private_ips or public_ips
  60818. ssh_interface: public_ips
  60819. .ft P
  60820. .fi
  60821. .UNINDENT
  60822. .UNINDENT
  60823. .sp
  60824. Many EC2 instances do not allow remote access to the root user by default.
  60825. Instead, another user must be used to run the deploy script using sudo. Some
  60826. common usernames include ec2\-user (for Amazon Linux), ubuntu (for Ubuntu
  60827. instances), admin (official Debian) and bitnami (for images provided by
  60828. Bitnami).
  60829. .INDENT 0.0
  60830. .INDENT 3.5
  60831. .sp
  60832. .nf
  60833. .ft C
  60834. my\-ec2\-config:
  60835. # Configure which user to use to run the deploy script
  60836. ssh_username: ec2\-user
  60837. .ft P
  60838. .fi
  60839. .UNINDENT
  60840. .UNINDENT
  60841. .sp
  60842. Multiple usernames can be provided, in which case Salt Cloud will attempt to
  60843. guess the correct username. This is mostly useful in the main configuration
  60844. file:
  60845. .INDENT 0.0
  60846. .INDENT 3.5
  60847. .sp
  60848. .nf
  60849. .ft C
  60850. my\-ec2\-config:
  60851. ssh_username:
  60852. \- ec2\-user
  60853. \- ubuntu
  60854. \- admin
  60855. \- bitnami
  60856. .ft P
  60857. .fi
  60858. .UNINDENT
  60859. .UNINDENT
  60860. .sp
  60861. Multiple security groups can also be specified in the same fashion:
  60862. .INDENT 0.0
  60863. .INDENT 3.5
  60864. .sp
  60865. .nf
  60866. .ft C
  60867. my\-ec2\-config:
  60868. securitygroup:
  60869. \- default
  60870. \- extra
  60871. .ft P
  60872. .fi
  60873. .UNINDENT
  60874. .UNINDENT
  60875. .sp
  60876. EC2 instances can be added to an \fI\%AWS Placement Group\fP by specifying the
  60877. \fBplacementgroup\fP option:
  60878. .INDENT 0.0
  60879. .INDENT 3.5
  60880. .sp
  60881. .nf
  60882. .ft C
  60883. my\-ec2\-config:
  60884. placementgroup: my\-aws\-placement\-group
  60885. .ft P
  60886. .fi
  60887. .UNINDENT
  60888. .UNINDENT
  60889. .sp
  60890. Your instances may optionally make use of EC2 Spot Instances. The
  60891. following example will request that spot instances be used and your
  60892. maximum bid will be $0.10. Keep in mind that different spot prices
  60893. may be needed based on the current value of the various EC2 instance
  60894. sizes. You can check current and past spot instance pricing via the
  60895. EC2 API or AWS Console.
  60896. .INDENT 0.0
  60897. .INDENT 3.5
  60898. .sp
  60899. .nf
  60900. .ft C
  60901. my\-ec2\-config:
  60902. spot_config:
  60903. spot_price: 0.10
  60904. .ft P
  60905. .fi
  60906. .UNINDENT
  60907. .UNINDENT
  60908. .sp
  60909. You can optionally specify tags to apply to the EC2 spot instance request.
  60910. A spot instance request itself is an object in AWS. The following example
  60911. will set two tags on the spot instance request.
  60912. .INDENT 0.0
  60913. .INDENT 3.5
  60914. .sp
  60915. .nf
  60916. .ft C
  60917. my\-ec2\-config:
  60918. spot_config:
  60919. spot_price: 0.10
  60920. tag:
  60921. tag0: value
  60922. tag1: value
  60923. .ft P
  60924. .fi
  60925. .UNINDENT
  60926. .UNINDENT
  60927. .sp
  60928. By default, the spot instance type is set to \(aqone\-time\(aq, meaning it will
  60929. be launched and, if it\(aqs ever terminated for whatever reason, it will not
  60930. be recreated. If you would like your spot instances to be relaunched after
  60931. a termination (by you or AWS), set the \fBtype\fP to \(aqpersistent\(aq.
  60932. .sp
  60933. NOTE: Spot instances are a great way to save a bit of money, but you do
  60934. run the risk of losing your spot instances if the current price for the
  60935. instance size goes above your maximum bid.
  60936. .sp
  60937. The following parameters may be set in the cloud configuration file to
  60938. control various aspects of the spot instance launching:
  60939. .INDENT 0.0
  60940. .IP \(bu 2
  60941. \fBwait_for_spot_timeout\fP: seconds to wait before giving up on spot instance
  60942. launch (default=600)
  60943. .IP \(bu 2
  60944. \fBwait_for_spot_interval\fP: seconds to wait in between polling requests to
  60945. determine if a spot instance is available (default=30)
  60946. .IP \(bu 2
  60947. \fBwait_for_spot_interval_multiplier\fP: a multiplier to add to the interval in
  60948. between requests, which is useful if AWS is throttling your requests
  60949. (default=1)
  60950. .IP \(bu 2
  60951. \fBwait_for_spot_max_failures\fP: maximum number of failures before giving up
  60952. on launching your spot instance (default=10)
  60953. .UNINDENT
  60954. .sp
  60955. If you find that you\(aqre being throttled by AWS while polling for spot
  60956. instances, you can set the following in your core cloud configuration
  60957. file that will double the polling interval after each request to AWS.
  60958. .INDENT 0.0
  60959. .INDENT 3.5
  60960. .sp
  60961. .nf
  60962. .ft C
  60963. wait_for_spot_interval: 1
  60964. wait_for_spot_interval_multiplier: 2
  60965. .ft P
  60966. .fi
  60967. .UNINDENT
  60968. .UNINDENT
  60969. .sp
  60970. See the \fI\%AWS Spot Instances\fP documentation for more information.
  60971. .sp
  60972. Block device mappings enable you to specify additional EBS volumes or instance
  60973. store volumes when the instance is launched. This setting is also available on
  60974. each cloud profile. Note that the number of instance stores varies by instance
  60975. type. If more mappings are provided than are supported by the instance type,
  60976. mappings will be created in the order provided and additional mappings will be
  60977. ignored. Consult the \fI\%AWS documentation\fP for a listing of the available
  60978. instance stores, and device names.
  60979. .INDENT 0.0
  60980. .INDENT 3.5
  60981. .sp
  60982. .nf
  60983. .ft C
  60984. my\-ec2\-config:
  60985. block_device_mappings:
  60986. \- DeviceName: /dev/sdb
  60987. VirtualName: ephemeral0
  60988. \- DeviceName: /dev/sdc
  60989. VirtualName: ephemeral1
  60990. .ft P
  60991. .fi
  60992. .UNINDENT
  60993. .UNINDENT
  60994. .sp
  60995. You can also use block device mappings to change the size of the root device at the
  60996. provisioning time. For example, assuming the root device is \(aq/dev/sda\(aq, you can set
  60997. its size to 100G by using the following configuration.
  60998. .INDENT 0.0
  60999. .INDENT 3.5
  61000. .sp
  61001. .nf
  61002. .ft C
  61003. my\-ec2\-config:
  61004. block_device_mappings:
  61005. \- DeviceName: /dev/sda
  61006. Ebs.VolumeSize: 100
  61007. Ebs.VolumeType: gp2
  61008. Ebs.SnapshotId: dummy0
  61009. \- DeviceName: /dev/sdb
  61010. # required for devices > 2TB
  61011. Ebs.VolumeType: gp2
  61012. Ebs.VolumeSize: 3001
  61013. .ft P
  61014. .fi
  61015. .UNINDENT
  61016. .UNINDENT
  61017. .sp
  61018. Tagging of block devices can be set on a per device basis. For example, you may
  61019. have multiple devices defined in your block_device_mappings structure. You have the
  61020. option to set tags on any of one device or all of them as shown in the following
  61021. configuration.
  61022. .INDENT 0.0
  61023. .INDENT 3.5
  61024. .sp
  61025. .nf
  61026. .ft C
  61027. my\-ec2\-config:
  61028. block_device_mappings:
  61029. \- DeviceName: /dev/sda
  61030. Ebs.VolumeSize: 100
  61031. Ebs.VolumeType: gp2
  61032. tag:
  61033. tag0: myserver
  61034. tag1: value
  61035. \- DeviceName: /dev/sdb
  61036. Ebs.VolumeType: gp2
  61037. Ebs.VolumeSize: 3001
  61038. tag:
  61039. tagX: value
  61040. tagY: value
  61041. .ft P
  61042. .fi
  61043. .UNINDENT
  61044. .UNINDENT
  61045. .sp
  61046. You can configure any AWS valid tag name as shown in the above example, including
  61047. \(aqName\(aq. If you do not configure the tag \(aqName\(aq, it will be automatically created
  61048. with a value set to the virtual machine name. If you configure the tag \(aqName\(aq, the
  61049. value you configure will be used rather than defaulting to the virtual machine
  61050. name as shown in the following configuration.
  61051. .INDENT 0.0
  61052. .INDENT 3.5
  61053. .sp
  61054. .nf
  61055. .ft C
  61056. my\-ec2\-config:
  61057. block_device_mappings:
  61058. \- DeviceName: /dev/sda
  61059. Ebs.VolumeSize: 100
  61060. Ebs.VolumeType: gp2
  61061. tag:
  61062. Name: myserver
  61063. tag0: value
  61064. tag1: value
  61065. \- DeviceName: /dev/sdb
  61066. Ebs.VolumeType: gp2
  61067. Ebs.VolumeSize: 3001
  61068. tag:
  61069. Name: customvalue
  61070. tagX: value
  61071. tagY: value
  61072. .ft P
  61073. .fi
  61074. .UNINDENT
  61075. .UNINDENT
  61076. .sp
  61077. Existing EBS volumes may also be attached (not created) to your instances or
  61078. you can create new EBS volumes based on EBS snapshots. To simply attach an
  61079. existing volume use the \fBvolume_id\fP parameter.
  61080. .INDENT 0.0
  61081. .INDENT 3.5
  61082. .sp
  61083. .nf
  61084. .ft C
  61085. device: /dev/xvdj
  61086. volume_id: vol\-12345abcd
  61087. .ft P
  61088. .fi
  61089. .UNINDENT
  61090. .UNINDENT
  61091. .sp
  61092. Or, to create a volume from an EBS snapshot, use the \fBsnapshot\fP parameter.
  61093. .INDENT 0.0
  61094. .INDENT 3.5
  61095. .sp
  61096. .nf
  61097. .ft C
  61098. device: /dev/xvdj
  61099. snapshot: snap\-abcd12345
  61100. .ft P
  61101. .fi
  61102. .UNINDENT
  61103. .UNINDENT
  61104. .sp
  61105. Note that \fBvolume_id\fP will take precedence over the \fBsnapshot\fP parameter.
  61106. .sp
  61107. Tags can be set once an instance has been launched.
  61108. .INDENT 0.0
  61109. .INDENT 3.5
  61110. .sp
  61111. .nf
  61112. .ft C
  61113. my\-ec2\-config:
  61114. tag:
  61115. tag0: value
  61116. tag1: value
  61117. .ft P
  61118. .fi
  61119. .UNINDENT
  61120. .UNINDENT
  61121. .SS Setting up a Master inside EC2
  61122. .sp
  61123. Salt Cloud can configure Salt Masters as well as Minions. Use the \fBmake_master\fP setting to use
  61124. this functionality.
  61125. .INDENT 0.0
  61126. .INDENT 3.5
  61127. .sp
  61128. .nf
  61129. .ft C
  61130. my\-ec2\-config:
  61131. # Optionally install a Salt Master in addition to the Salt Minion
  61132. make_master: True
  61133. .ft P
  61134. .fi
  61135. .UNINDENT
  61136. .UNINDENT
  61137. .sp
  61138. When creating a Salt Master inside EC2 with \fBmake_master: True\fP, or when the Salt Master is already
  61139. located and configured inside EC2, by default, minions connect to the master\(aqs public IP address during
  61140. Salt Cloud\(aqs provisioning process. Depending on how your security groups are defined, the minions
  61141. may or may not be able to communicate with the master. In order to use the master\(aqs private IP in EC2
  61142. instead of the public IP, set the \fBsalt_interface\fP to \fBprivate_ips\fP\&.
  61143. .INDENT 0.0
  61144. .INDENT 3.5
  61145. .sp
  61146. .nf
  61147. .ft C
  61148. my\-ec2\-config:
  61149. # Optionally set the IP configuration to private_ips
  61150. salt_interface: private_ips
  61151. .ft P
  61152. .fi
  61153. .UNINDENT
  61154. .UNINDENT
  61155. .SS Modify EC2 Tags
  61156. .sp
  61157. One of the features of EC2 is the ability to tag resources. In fact, under the
  61158. hood, the names given to EC2 instances by salt\-cloud are actually just stored
  61159. as a tag called Name. Salt Cloud has the ability to manage these tags:
  61160. .INDENT 0.0
  61161. .INDENT 3.5
  61162. .sp
  61163. .nf
  61164. .ft C
  61165. salt\-cloud \-a get_tags mymachine
  61166. salt\-cloud \-a set_tags mymachine tag1=somestuff tag2=\(aqOther stuff\(aq
  61167. salt\-cloud \-a del_tags mymachine tag1,tag2,tag3
  61168. .ft P
  61169. .fi
  61170. .UNINDENT
  61171. .UNINDENT
  61172. .sp
  61173. It is possible to manage tags on any resource in EC2 with a Resource ID, not
  61174. just instances:
  61175. .INDENT 0.0
  61176. .INDENT 3.5
  61177. .sp
  61178. .nf
  61179. .ft C
  61180. salt\-cloud \-f get_tags my_ec2 resource_id=af5467ba
  61181. salt\-cloud \-f set_tags my_ec2 resource_id=af5467ba tag1=somestuff
  61182. salt\-cloud \-f del_tags my_ec2 resource_id=af5467ba tags=tag1,tag2,tag3
  61183. .ft P
  61184. .fi
  61185. .UNINDENT
  61186. .UNINDENT
  61187. .SS Rename EC2 Instances
  61188. .sp
  61189. As mentioned above, EC2 instances are named via a tag. However, renaming an
  61190. instance by renaming its tag will cause the salt keys to mismatch. A rename
  61191. function exists which renames both the instance, and the salt keys.
  61192. .INDENT 0.0
  61193. .INDENT 3.5
  61194. .sp
  61195. .nf
  61196. .ft C
  61197. salt\-cloud \-a rename mymachine newname=yourmachine
  61198. .ft P
  61199. .fi
  61200. .UNINDENT
  61201. .UNINDENT
  61202. .SS Rename on Destroy
  61203. .sp
  61204. When instances on EC2 are destroyed, there will be a lag between the time that
  61205. the action is sent, and the time that Amazon cleans up the instance. During
  61206. this time, the instance still retains a Name tag, which will cause a collision
  61207. if the creation of an instance with the same name is attempted before the
  61208. cleanup occurs. In order to avoid such collisions, Salt Cloud can be configured
  61209. to rename instances when they are destroyed. The new name will look something
  61210. like:
  61211. .INDENT 0.0
  61212. .INDENT 3.5
  61213. .sp
  61214. .nf
  61215. .ft C
  61216. myinstance\-DEL20f5b8ad4eb64ed88f2c428df80a1a0c
  61217. .ft P
  61218. .fi
  61219. .UNINDENT
  61220. .UNINDENT
  61221. .sp
  61222. In order to enable this, add rename_on_destroy line to the main
  61223. configuration file:
  61224. .INDENT 0.0
  61225. .INDENT 3.5
  61226. .sp
  61227. .nf
  61228. .ft C
  61229. my\-ec2\-config:
  61230. rename_on_destroy: True
  61231. .ft P
  61232. .fi
  61233. .UNINDENT
  61234. .UNINDENT
  61235. .SS Listing Images
  61236. .sp
  61237. Normally, images can be queried on a cloud provider by passing the
  61238. \fB\-\-list\-images\fP argument to Salt Cloud. This still holds true for EC2:
  61239. .INDENT 0.0
  61240. .INDENT 3.5
  61241. .sp
  61242. .nf
  61243. .ft C
  61244. salt\-cloud \-\-list\-images my\-ec2\-config
  61245. .ft P
  61246. .fi
  61247. .UNINDENT
  61248. .UNINDENT
  61249. .sp
  61250. However, the full list of images on EC2 is extremely large, and querying all of
  61251. the available images may cause Salt Cloud to behave as if frozen. Therefore,
  61252. the default behavior of this option may be modified, by adding an \fBowner\fP
  61253. argument to the provider configuration:
  61254. .INDENT 0.0
  61255. .INDENT 3.5
  61256. .sp
  61257. .nf
  61258. .ft C
  61259. owner: aws\-marketplace
  61260. .ft P
  61261. .fi
  61262. .UNINDENT
  61263. .UNINDENT
  61264. .sp
  61265. The possible values for this setting are \fBamazon\fP, \fBaws\-marketplace\fP,
  61266. \fBself\fP, \fB<AWS account ID>\fP or \fBall\fP\&. The default setting is \fBamazon\fP\&.
  61267. Take note that \fBall\fP and \fBaws\-marketplace\fP may cause Salt Cloud to appear
  61268. as if it is freezing, as it tries to handle the large amount of data.
  61269. .sp
  61270. It is also possible to perform this query using different settings without
  61271. modifying the configuration files. To do this, call the \fBavail_images\fP
  61272. function directly:
  61273. .INDENT 0.0
  61274. .INDENT 3.5
  61275. .sp
  61276. .nf
  61277. .ft C
  61278. salt\-cloud \-f avail_images my\-ec2\-config owner=aws\-marketplace
  61279. .ft P
  61280. .fi
  61281. .UNINDENT
  61282. .UNINDENT
  61283. .SS EC2 Images
  61284. .sp
  61285. The following are lists of available AMI images, generally sorted by OS. These
  61286. lists are on 3rd\-party websites, are not managed by Salt Stack in any way. They
  61287. are provided here as a reference for those who are interested, and contain no
  61288. warranty (express or implied) from anyone affiliated with Salt Stack. Most of
  61289. them have never been used, much less tested, by the Salt Stack team.
  61290. .INDENT 0.0
  61291. .IP \(bu 2
  61292. \fI\%Arch Linux\fP
  61293. .UNINDENT
  61294. .INDENT 0.0
  61295. .IP \(bu 2
  61296. \fI\%FreeBSD\fP
  61297. .UNINDENT
  61298. .INDENT 0.0
  61299. .IP \(bu 2
  61300. \fI\%Fedora\fP
  61301. .UNINDENT
  61302. .INDENT 0.0
  61303. .IP \(bu 2
  61304. \fI\%CentOS\fP
  61305. .UNINDENT
  61306. .INDENT 0.0
  61307. .IP \(bu 2
  61308. \fI\%Ubuntu\fP
  61309. .UNINDENT
  61310. .INDENT 0.0
  61311. .IP \(bu 2
  61312. \fI\%Debian\fP
  61313. .UNINDENT
  61314. .INDENT 0.0
  61315. .IP \(bu 2
  61316. \fI\%OmniOS\fP
  61317. .UNINDENT
  61318. .INDENT 0.0
  61319. .IP \(bu 2
  61320. \fI\%All Images on Amazon\fP
  61321. .UNINDENT
  61322. .sp
  61323. NOTE: If \fBimage\fP of a profile does not start with \fBami\-\fP, latest
  61324. image with that name will be used. For example, to create a CentOS 7
  61325. profile, instead of using the AMI like \fBimage: ami\-1caef165\fP, we
  61326. can use its name like \fBimage: \(aqCentOS Linux 7 x86_64 HVM EBS ENA 1803_01\(aq\fP\&.
  61327. We can also use a pattern like below to get the latest CentOS 7:
  61328. .INDENT 0.0
  61329. .INDENT 3.5
  61330. .sp
  61331. .nf
  61332. .ft C
  61333. profile\-id:
  61334. provider: provider\-name
  61335. subnetid: subnet\-XXXXXXXX
  61336. image: \(aqCentOS Linux 7 x86_64 HVM EBS *\(aq
  61337. size: m1.medium
  61338. ssh_username: centos
  61339. securitygroupid:
  61340. \- sg\-XXXXXXXX
  61341. securitygroupname:
  61342. \- AnotherSecurityGroup
  61343. \- AndThirdSecurityGroup
  61344. .ft P
  61345. .fi
  61346. .UNINDENT
  61347. .UNINDENT
  61348. .SS show_image
  61349. .sp
  61350. This is a function that describes an AMI on EC2. This will give insight as to
  61351. the defaults that will be applied to an instance using a particular AMI.
  61352. .INDENT 0.0
  61353. .INDENT 3.5
  61354. .sp
  61355. .nf
  61356. .ft C
  61357. $ salt\-cloud \-f show_image ec2 image=ami\-fd20ad94
  61358. .ft P
  61359. .fi
  61360. .UNINDENT
  61361. .UNINDENT
  61362. .SS show_instance
  61363. .sp
  61364. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  61365. single instance only. In an environment with several machines, this will save a
  61366. user from having to sort through all instance data, just to examine a single
  61367. instance.
  61368. .INDENT 0.0
  61369. .INDENT 3.5
  61370. .sp
  61371. .nf
  61372. .ft C
  61373. $ salt\-cloud \-a show_instance myinstance
  61374. .ft P
  61375. .fi
  61376. .UNINDENT
  61377. .UNINDENT
  61378. .SS ebs_optimized
  61379. .sp
  61380. This argument enables switching of the EbsOptimized setting which default
  61381. to \(aqfalse\(aq. Indicates whether the instance is optimized for EBS I/O. This
  61382. optimization provides dedicated throughput to Amazon EBS and an optimized
  61383. configuration stack to provide optimal Amazon EBS I/O performance. This
  61384. optimization isn\(aqt available with all instance types. Additional usage
  61385. charges apply when using an EBS\-optimized instance.
  61386. .sp
  61387. This setting can be added to the profile or map file for an instance.
  61388. .sp
  61389. If set to True, this setting will enable an instance to be EbsOptimized
  61390. .INDENT 0.0
  61391. .INDENT 3.5
  61392. .sp
  61393. .nf
  61394. .ft C
  61395. ebs_optimized: True
  61396. .ft P
  61397. .fi
  61398. .UNINDENT
  61399. .UNINDENT
  61400. .sp
  61401. This can also be set as a cloud provider setting in the EC2 cloud
  61402. configuration:
  61403. .INDENT 0.0
  61404. .INDENT 3.5
  61405. .sp
  61406. .nf
  61407. .ft C
  61408. my\-ec2\-config:
  61409. ebs_optimized: True
  61410. .ft P
  61411. .fi
  61412. .UNINDENT
  61413. .UNINDENT
  61414. .SS del_root_vol_on_destroy
  61415. .sp
  61416. This argument overrides the default DeleteOnTermination setting in the AMI for
  61417. the EBS root volumes for an instance. Many AMIs contain \(aqfalse\(aq as a default,
  61418. resulting in orphaned volumes in the EC2 account, which may unknowingly be
  61419. charged to the account. This setting can be added to the profile or map file
  61420. for an instance.
  61421. .sp
  61422. If set, this setting will apply to the root EBS volume
  61423. .INDENT 0.0
  61424. .INDENT 3.5
  61425. .sp
  61426. .nf
  61427. .ft C
  61428. del_root_vol_on_destroy: True
  61429. .ft P
  61430. .fi
  61431. .UNINDENT
  61432. .UNINDENT
  61433. .sp
  61434. This can also be set as a cloud provider setting in the EC2 cloud
  61435. configuration:
  61436. .INDENT 0.0
  61437. .INDENT 3.5
  61438. .sp
  61439. .nf
  61440. .ft C
  61441. my\-ec2\-config:
  61442. del_root_vol_on_destroy: True
  61443. .ft P
  61444. .fi
  61445. .UNINDENT
  61446. .UNINDENT
  61447. .SS del_all_vols_on_destroy
  61448. .sp
  61449. This argument overrides the default DeleteOnTermination setting in the AMI for
  61450. the not\-root EBS volumes for an instance. Many AMIs contain \(aqfalse\(aq as a
  61451. default, resulting in orphaned volumes in the EC2 account, which may
  61452. unknowingly be charged to the account. This setting can be added to the profile
  61453. or map file for an instance.
  61454. .sp
  61455. If set, this setting will apply to any (non\-root) volumes that were created
  61456. by salt\-cloud using the \(aqvolumes\(aq setting.
  61457. .sp
  61458. The volumes will not be deleted under the following conditions
  61459. * If a volume is detached before terminating the instance
  61460. * If a volume is created without this setting and attached to the instance
  61461. .INDENT 0.0
  61462. .INDENT 3.5
  61463. .sp
  61464. .nf
  61465. .ft C
  61466. del_all_vols_on_destroy: True
  61467. .ft P
  61468. .fi
  61469. .UNINDENT
  61470. .UNINDENT
  61471. .sp
  61472. This can also be set as a cloud provider setting in the EC2 cloud
  61473. configuration:
  61474. .INDENT 0.0
  61475. .INDENT 3.5
  61476. .sp
  61477. .nf
  61478. .ft C
  61479. my\-ec2\-config:
  61480. del_all_vols_on_destroy: True
  61481. .ft P
  61482. .fi
  61483. .UNINDENT
  61484. .UNINDENT
  61485. .sp
  61486. The setting for this may be changed on all volumes of an existing instance
  61487. using one of the following commands:
  61488. .INDENT 0.0
  61489. .INDENT 3.5
  61490. .sp
  61491. .nf
  61492. .ft C
  61493. salt\-cloud \-a delvol_on_destroy myinstance
  61494. salt\-cloud \-a keepvol_on_destroy myinstance
  61495. salt\-cloud \-a show_delvol_on_destroy myinstance
  61496. .ft P
  61497. .fi
  61498. .UNINDENT
  61499. .UNINDENT
  61500. .sp
  61501. The setting for this may be changed on a volume on an existing instance
  61502. using one of the following commands:
  61503. .INDENT 0.0
  61504. .INDENT 3.5
  61505. .sp
  61506. .nf
  61507. .ft C
  61508. salt\-cloud \-a delvol_on_destroy myinstance device=/dev/sda1
  61509. salt\-cloud \-a delvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61510. salt\-cloud \-a keepvol_on_destroy myinstance device=/dev/sda1
  61511. salt\-cloud \-a keepvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61512. salt\-cloud \-a show_delvol_on_destroy myinstance device=/dev/sda1
  61513. salt\-cloud \-a show_delvol_on_destroy myinstance volume_id=vol\-1a2b3c4d
  61514. .ft P
  61515. .fi
  61516. .UNINDENT
  61517. .UNINDENT
  61518. .SS EC2 Termination Protection
  61519. .sp
  61520. EC2 allows the user to enable and disable termination protection on a specific
  61521. instance. An instance with this protection enabled cannot be destroyed. The EC2
  61522. driver adds a show_term_protect action to the regular EC2 functionality.
  61523. .INDENT 0.0
  61524. .INDENT 3.5
  61525. .sp
  61526. .nf
  61527. .ft C
  61528. salt\-cloud \-a show_term_protect mymachine
  61529. salt\-cloud \-a enable_term_protect mymachine
  61530. salt\-cloud \-a disable_term_protect mymachine
  61531. .ft P
  61532. .fi
  61533. .UNINDENT
  61534. .UNINDENT
  61535. .SS Alternate Endpoint
  61536. .sp
  61537. Normally, EC2 endpoints are build using the region and the service_url. The
  61538. resulting endpoint would follow this pattern:
  61539. .INDENT 0.0
  61540. .INDENT 3.5
  61541. .sp
  61542. .nf
  61543. .ft C
  61544. ec2.<region>.<service_url>
  61545. .ft P
  61546. .fi
  61547. .UNINDENT
  61548. .UNINDENT
  61549. .sp
  61550. This results in an endpoint that looks like:
  61551. .INDENT 0.0
  61552. .INDENT 3.5
  61553. .sp
  61554. .nf
  61555. .ft C
  61556. ec2.us\-east\-1.amazonaws.com
  61557. .ft P
  61558. .fi
  61559. .UNINDENT
  61560. .UNINDENT
  61561. .sp
  61562. There are other projects that support an EC2 compatibility layer, which this
  61563. scheme does not account for. This can be overridden by specifying the endpoint
  61564. directly in the main cloud configuration file:
  61565. .INDENT 0.0
  61566. .INDENT 3.5
  61567. .sp
  61568. .nf
  61569. .ft C
  61570. my\-ec2\-config:
  61571. endpoint: myendpoint.example.com:1138/services/Cloud
  61572. .ft P
  61573. .fi
  61574. .UNINDENT
  61575. .UNINDENT
  61576. .SS Volume Management
  61577. .sp
  61578. The EC2 driver has several functions and actions for management of EBS volumes.
  61579. .SS Creating Volumes
  61580. .sp
  61581. A volume may be created, independent of an instance. A zone must be specified.
  61582. A size or a snapshot may be specified (in GiB). If neither is given, a default
  61583. size of 10 GiB will be used. If a snapshot is given, the size of the snapshot
  61584. will be used.
  61585. .sp
  61586. The following parameters may also be set (when providing a snapshot OR size):
  61587. .INDENT 0.0
  61588. .IP \(bu 2
  61589. \fBtype\fP: choose between standard (magnetic disk), gp2 (SSD), or io1 (provisioned IOPS).
  61590. (default=standard)
  61591. .IP \(bu 2
  61592. \fBiops\fP: the number of IOPS (only applicable to io1 volumes) (default varies on volume size)
  61593. .IP \(bu 2
  61594. \fBencrypted\fP: enable encryption on the volume (default=false)
  61595. .UNINDENT
  61596. .INDENT 0.0
  61597. .INDENT 3.5
  61598. .sp
  61599. .nf
  61600. .ft C
  61601. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b
  61602. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b size=10
  61603. salt\-cloud \-f create_volume ec2 zone=us\-east\-1b snapshot=snap12345678
  61604. salt\-cloud \-f create_volume ec2 size=10 type=standard
  61605. salt\-cloud \-f create_volume ec2 size=10 type=gp2
  61606. salt\-cloud \-f create_volume ec2 size=10 type=io1 iops=1000
  61607. .ft P
  61608. .fi
  61609. .UNINDENT
  61610. .UNINDENT
  61611. .SS Attaching Volumes
  61612. .sp
  61613. Unattached volumes may be attached to an instance. The following values are
  61614. required; name or instance_id, volume_id, and device.
  61615. .INDENT 0.0
  61616. .INDENT 3.5
  61617. .sp
  61618. .nf
  61619. .ft C
  61620. salt\-cloud \-a attach_volume myinstance volume_id=vol\-12345 device=/dev/sdb1
  61621. .ft P
  61622. .fi
  61623. .UNINDENT
  61624. .UNINDENT
  61625. .SS Show a Volume
  61626. .sp
  61627. The details about an existing volume may be retrieved.
  61628. .INDENT 0.0
  61629. .INDENT 3.5
  61630. .sp
  61631. .nf
  61632. .ft C
  61633. salt\-cloud \-a show_volume myinstance volume_id=vol\-12345
  61634. salt\-cloud \-f show_volume ec2 volume_id=vol\-12345
  61635. .ft P
  61636. .fi
  61637. .UNINDENT
  61638. .UNINDENT
  61639. .SS Detaching Volumes
  61640. .sp
  61641. An existing volume may be detached from an instance.
  61642. .INDENT 0.0
  61643. .INDENT 3.5
  61644. .sp
  61645. .nf
  61646. .ft C
  61647. salt\-cloud \-a detach_volume myinstance volume_id=vol\-12345
  61648. .ft P
  61649. .fi
  61650. .UNINDENT
  61651. .UNINDENT
  61652. .SS Deleting Volumes
  61653. .sp
  61654. A volume that is not attached to an instance may be deleted.
  61655. .INDENT 0.0
  61656. .INDENT 3.5
  61657. .sp
  61658. .nf
  61659. .ft C
  61660. salt\-cloud \-f delete_volume ec2 volume_id=vol\-12345
  61661. .ft P
  61662. .fi
  61663. .UNINDENT
  61664. .UNINDENT
  61665. .SS Managing Key Pairs
  61666. .sp
  61667. The EC2 driver has the ability to manage key pairs.
  61668. .SS Creating a Key Pair
  61669. .sp
  61670. A key pair is required in order to create an instance. When creating a key pair
  61671. with this function, the return data will contain a copy of the private key.
  61672. This private key is not stored by Amazon, will not be obtainable past this
  61673. point, and should be stored immediately.
  61674. .INDENT 0.0
  61675. .INDENT 3.5
  61676. .sp
  61677. .nf
  61678. .ft C
  61679. salt\-cloud \-f create_keypair ec2 keyname=mykeypair
  61680. .ft P
  61681. .fi
  61682. .UNINDENT
  61683. .UNINDENT
  61684. .SS Importing a Key Pair
  61685. .INDENT 0.0
  61686. .INDENT 3.5
  61687. .sp
  61688. .nf
  61689. .ft C
  61690. salt\-cloud \-f import_keypair ec2 keyname=mykeypair file=/path/to/id_rsa.pub
  61691. .ft P
  61692. .fi
  61693. .UNINDENT
  61694. .UNINDENT
  61695. .SS Show a Key Pair
  61696. .sp
  61697. This function will show the details related to a key pair, not including the
  61698. private key itself (which is not stored by Amazon).
  61699. .INDENT 0.0
  61700. .INDENT 3.5
  61701. .sp
  61702. .nf
  61703. .ft C
  61704. salt\-cloud \-f show_keypair ec2 keyname=mykeypair
  61705. .ft P
  61706. .fi
  61707. .UNINDENT
  61708. .UNINDENT
  61709. .SS Delete a Key Pair
  61710. .sp
  61711. This function removes the key pair from Amazon.
  61712. .INDENT 0.0
  61713. .INDENT 3.5
  61714. .sp
  61715. .nf
  61716. .ft C
  61717. salt\-cloud \-f delete_keypair ec2 keyname=mykeypair
  61718. .ft P
  61719. .fi
  61720. .UNINDENT
  61721. .UNINDENT
  61722. .SS Launching instances into a VPC
  61723. .SS Simple launching into a VPC
  61724. .sp
  61725. In the amazon web interface, identify the id or the name of the subnet into
  61726. which your image should be created. Then, edit your cloud.profiles file like
  61727. so:\-
  61728. .INDENT 0.0
  61729. .INDENT 3.5
  61730. .sp
  61731. .nf
  61732. .ft C
  61733. profile\-id:
  61734. provider: provider\-name
  61735. subnetid: subnet\-XXXXXXXX
  61736. image: ami\-XXXXXXXX
  61737. size: m1.medium
  61738. ssh_username: ubuntu
  61739. securitygroupid:
  61740. \- sg\-XXXXXXXX
  61741. securitygroupname:
  61742. \- AnotherSecurityGroup
  61743. \- AndThirdSecurityGroup
  61744. .ft P
  61745. .fi
  61746. .UNINDENT
  61747. .UNINDENT
  61748. .sp
  61749. Note that \(aqsubnetid\(aq takes precedence over \(aqsubnetname\(aq, but \(aqsecuritygroupid\(aq
  61750. and \(aqsecuritygroupname\(aq are merged together to generate a single list for
  61751. SecurityGroups of instances.
  61752. .SS Specifying interface properties
  61753. .sp
  61754. New in version 2014.7.0.
  61755. .sp
  61756. Launching into a VPC allows you to specify more complex configurations for
  61757. the network interfaces of your virtual machines, for example:\-
  61758. .INDENT 0.0
  61759. .INDENT 3.5
  61760. .sp
  61761. .nf
  61762. .ft C
  61763. profile\-id:
  61764. provider: provider\-name
  61765. image: ami\-XXXXXXXX
  61766. size: m1.medium
  61767. ssh_username: ubuntu
  61768. # Do not include either \(aqsubnetid\(aq, \(aqsubnetname\(aq, \(aqsecuritygroupid\(aq or
  61769. # \(aqsecuritygroupname\(aq here if you are going to manually specify
  61770. # interface configuration
  61771. #
  61772. network_interfaces:
  61773. \- DeviceIndex: 0
  61774. SubnetId: subnet\-XXXXXXXX
  61775. SecurityGroupId:
  61776. \- sg\-XXXXXXXX
  61777. # Uncomment this line if you would like to set an explicit private
  61778. # IP address for the ec2 instance
  61779. #
  61780. # PrivateIpAddress: 192.168.1.66
  61781. # Uncomment this to associate an existing Elastic IP Address with
  61782. # this network interface:
  61783. #
  61784. # associate_eip: eipalloc\-XXXXXXXX
  61785. # You can allocate more than one IP address to an interface. Use the
  61786. # \(aqip addr list\(aq command to see them.
  61787. #
  61788. # SecondaryPrivateIpAddressCount: 2
  61789. # Uncomment this to allocate a new Elastic IP Address to this
  61790. # interface (will be associated with the primary private ip address
  61791. # of the interface
  61792. #
  61793. # allocate_new_eip: True
  61794. # Uncomment this instead to allocate a new Elastic IP Address to
  61795. # both the primary private ip address and each of the secondary ones
  61796. #
  61797. allocate_new_eips: True
  61798. # Uncomment this if you\(aqre creating NAT instances. Allows an instance
  61799. # to accept IP packets with destinations other than itself.
  61800. # SourceDestCheck: False
  61801. \- DeviceIndex: 1
  61802. subnetname: XXXXXXXX\-Subnet
  61803. securitygroupname:
  61804. \- XXXXXXXX\-SecurityGroup
  61805. \- YYYYYYYY\-SecurityGroup
  61806. .ft P
  61807. .fi
  61808. .UNINDENT
  61809. .UNINDENT
  61810. .sp
  61811. Note that it is an error to assign a \(aqsubnetid\(aq, \(aqsubnetname\(aq, \(aqsecuritygroupid\(aq
  61812. or \(aqsecuritygroupname\(aq to a profile where the interfaces are manually configured
  61813. like this. These are both really properties of each network interface, not of
  61814. the machine itself.
  61815. .SS Getting Started With GoGrid
  61816. .sp
  61817. GoGrid is a public cloud host that supports Linux and Windows.
  61818. .SS Configuration
  61819. .sp
  61820. To use Salt Cloud with GoGrid log into the GoGrid web interface and create an
  61821. API key. Do this by clicking on "My Account" and then going to the API Keys
  61822. tab.
  61823. .sp
  61824. The \fBapikey\fP and the \fBsharedsecret\fP configuration parameters need to be set
  61825. in the configuration file to enable interfacing with GoGrid:
  61826. .INDENT 0.0
  61827. .INDENT 3.5
  61828. .sp
  61829. .nf
  61830. .ft C
  61831. # Note: This example is for /etc/salt/cloud.providers or any file in the
  61832. # /etc/salt/cloud.providers.d/ directory.
  61833. my\-gogrid\-config:
  61834. driver: gogrid
  61835. apikey: asdff7896asdh789
  61836. sharedsecret: saltybacon
  61837. .ft P
  61838. .fi
  61839. .UNINDENT
  61840. .UNINDENT
  61841. .sp
  61842. \fBNOTE:\fP
  61843. .INDENT 0.0
  61844. .INDENT 3.5
  61845. A Note about using Map files with GoGrid:
  61846. .sp
  61847. Due to limitations in the GoGrid API, instances cannot be provisioned in parallel
  61848. with the GoGrid driver. Map files will work with GoGrid, but the \fB\-P\fP
  61849. argument should not be used on maps referencing GoGrid instances.
  61850. .UNINDENT
  61851. .UNINDENT
  61852. .sp
  61853. \fBNOTE:\fP
  61854. .INDENT 0.0
  61855. .INDENT 3.5
  61856. Changed in version 2015.8.0.
  61857. .sp
  61858. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  61859. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  61860. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  61861. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  61862. to use \fBprovider\fP to refer to provider configurations that you define.
  61863. .UNINDENT
  61864. .UNINDENT
  61865. .SS Profiles
  61866. .SS Cloud Profiles
  61867. .sp
  61868. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  61869. \fB/etc/salt/cloud.profiles.d/\fP directory:
  61870. .INDENT 0.0
  61871. .INDENT 3.5
  61872. .sp
  61873. .nf
  61874. .ft C
  61875. gogrid_512:
  61876. provider: my\-gogrid\-config
  61877. size: 512MB
  61878. image: CentOS 6.2 (64\-bit) w/ None
  61879. .ft P
  61880. .fi
  61881. .UNINDENT
  61882. .UNINDENT
  61883. .sp
  61884. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  61885. command:
  61886. .INDENT 0.0
  61887. .INDENT 3.5
  61888. .sp
  61889. .nf
  61890. .ft C
  61891. # salt\-cloud \-\-list\-sizes my\-gogrid\-config
  61892. my\-gogrid\-config:
  61893. \-\-\-\-\-\-\-\-\-\-
  61894. gogrid:
  61895. \-\-\-\-\-\-\-\-\-\-
  61896. 512MB:
  61897. \-\-\-\-\-\-\-\-\-\-
  61898. bandwidth:
  61899. None
  61900. disk:
  61901. 30
  61902. driver:
  61903. get_uuid:
  61904. id:
  61905. 512MB
  61906. name:
  61907. 512MB
  61908. price:
  61909. 0.095
  61910. ram:
  61911. 512
  61912. uuid:
  61913. bde1e4d7c3a643536e42a35142c7caac34b060e9
  61914. \&...SNIP...
  61915. .ft P
  61916. .fi
  61917. .UNINDENT
  61918. .UNINDENT
  61919. .sp
  61920. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  61921. command:
  61922. .INDENT 0.0
  61923. .INDENT 3.5
  61924. .sp
  61925. .nf
  61926. .ft C
  61927. # salt\-cloud \-\-list\-images my\-gogrid\-config
  61928. my\-gogrid\-config:
  61929. \-\-\-\-\-\-\-\-\-\-
  61930. gogrid:
  61931. \-\-\-\-\-\-\-\-\-\-
  61932. CentOS 6.4 (64\-bit) w/ None:
  61933. \-\-\-\-\-\-\-\-\-\-
  61934. driver:
  61935. extra:
  61936. \-\-\-\-\-\-\-\-\-\-
  61937. get_uuid:
  61938. id:
  61939. 18094
  61940. name:
  61941. CentOS 6.4 (64\-bit) w/ None
  61942. uuid:
  61943. bfd4055389919e01aa6261828a96cf54c8dcc2c4
  61944. \&...SNIP...
  61945. .ft P
  61946. .fi
  61947. .UNINDENT
  61948. .UNINDENT
  61949. .SS Assigning IPs
  61950. .sp
  61951. New in version 2015.8.0.
  61952. .sp
  61953. The GoGrid API allows IP addresses to be manually assigned. Salt Cloud supports
  61954. this functionality by allowing an IP address to be specified using the
  61955. \fBassign_public_ip\fP argument. This likely makes the most sense inside a map
  61956. file, but it may also be used inside a profile.
  61957. .INDENT 0.0
  61958. .INDENT 3.5
  61959. .sp
  61960. .nf
  61961. .ft C
  61962. gogrid_512:
  61963. provider: my\-gogrid\-config
  61964. size: 512MB
  61965. image: CentOS 6.2 (64\-bit) w/ None
  61966. assign_public_ip: 11.38.257.42
  61967. .ft P
  61968. .fi
  61969. .UNINDENT
  61970. .UNINDENT
  61971. .SS Getting Started With Google Compute Engine
  61972. .sp
  61973. Google Compute Engine (GCE) is Google\-infrastructure as a service that lets you
  61974. run your large\-scale computing workloads on virtual machines. This document
  61975. covers how to use Salt Cloud to provision and manage your virtual machines
  61976. hosted within Google\(aqs infrastructure.
  61977. .sp
  61978. You can find out more about GCE and other Google Cloud Platform services
  61979. at \fI\%https://cloud.google.com\fP\&.
  61980. .SS Dependencies
  61981. .INDENT 0.0
  61982. .IP \(bu 2
  61983. LibCloud >= 1.0.0
  61984. .UNINDENT
  61985. .sp
  61986. Changed in version 2017.7.0.
  61987. .INDENT 0.0
  61988. .IP \(bu 2
  61989. A Google Cloud Platform account with Compute Engine enabled
  61990. .IP \(bu 2
  61991. A registered Service Account for authorization
  61992. .IP \(bu 2
  61993. Oh, and obviously you\(aqll need \fI\%salt\fP
  61994. .UNINDENT
  61995. .SS Google Compute Engine Setup
  61996. .INDENT 0.0
  61997. .IP 1. 3
  61998. Sign up for Google Cloud Platform
  61999. .sp
  62000. Go to \fI\%https://cloud.google.com\fP and use your Google account to sign up for
  62001. Google Cloud Platform and complete the guided instructions.
  62002. .IP 2. 3
  62003. Create a Project
  62004. .sp
  62005. Next, go to the console at \fI\%https://cloud.google.com/console\fP and create a
  62006. new Project. Make sure to select your new Project if you are not
  62007. automatically directed to the Project.
  62008. .sp
  62009. Projects are a way of grouping together related users, services, and
  62010. billing. You may opt to create multiple Projects and the remaining
  62011. instructions will need to be completed for each Project if you wish to
  62012. use GCE and Salt Cloud to manage your virtual machines.
  62013. .IP 3. 3
  62014. Enable the Google Compute Engine service
  62015. .sp
  62016. In your Project, either just click \fICompute Engine\fP to the left, or go to
  62017. the \fIAPIs & auth\fP section and \fIAPIs\fP link and enable the Google Compute
  62018. Engine service.
  62019. .IP 4. 3
  62020. Create a Service Account
  62021. .sp
  62022. To set up authorization, navigate to \fIAPIs & auth\fP section and then the
  62023. \fICredentials\fP link and click the \fICREATE NEW CLIENT ID\fP button. Select
  62024. \fIService Account\fP and click the \fICreate Client ID\fP button. This will
  62025. automatically download a \fB\&.json\fP file, which may or may not be used
  62026. in later steps, depending on your version of \fBlibcloud\fP\&.
  62027. .sp
  62028. Look for a new \fIService Account\fP section in the page and record the generated
  62029. email address for the matching key/fingerprint. The email address will be used
  62030. in the \fBservice_account_email_address\fP of the \fB/etc/salt/cloud.providers\fP
  62031. or the \fB/etc/salt/cloud.providers.d/*.conf\fP file.
  62032. .IP 5. 3
  62033. Key Format
  62034. .sp
  62035. \fBNOTE:\fP
  62036. .INDENT 3.0
  62037. .INDENT 3.5
  62038. If you are using \fBlibcloud >= 0.17.0\fP it is recommended that you use the \fBJSON
  62039. format\fP file you downloaded above and skip to the \fI\%Provider Configuration\fP section
  62040. below, using the JSON file \fBin place of \(aqNEW.pem\(aq\fP in the documentation.
  62041. .sp
  62042. If you are using an older version of libcloud or are unsure of the version you
  62043. have, please follow the instructions below to generate and format a new P12 key.
  62044. .UNINDENT
  62045. .UNINDENT
  62046. .sp
  62047. In the new \fIService Account\fP section, click \fIGenerate new P12 key\fP, which
  62048. will automatically download a \fB\&.p12\fP private key file. The \fB\&.p12\fP
  62049. private key needs to be converted to a format compatible with libcloud.
  62050. This new Google\-generated private key was encrypted using \fInotasecret\fP as
  62051. a passphrase. Use the following command and record the location of the
  62052. converted private key and record the location for use in the
  62053. \fBservice_account_private_key\fP of the \fB/etc/salt/cloud\fP file:
  62054. .INDENT 3.0
  62055. .INDENT 3.5
  62056. .sp
  62057. .nf
  62058. .ft C
  62059. openssl pkcs12 \-in ORIG.p12 \-passin pass:notasecret \e
  62060. \-nodes \-nocerts | openssl rsa \-out NEW.pem
  62061. .ft P
  62062. .fi
  62063. .UNINDENT
  62064. .UNINDENT
  62065. .UNINDENT
  62066. .SS Provider Configuration
  62067. .sp
  62068. Set up the provider cloud config at \fB/etc/salt/cloud.providers\fP or
  62069. \fB/etc/salt/cloud.providers.d/*.conf\fP:
  62070. .INDENT 0.0
  62071. .INDENT 3.5
  62072. .sp
  62073. .nf
  62074. .ft C
  62075. gce\-config:
  62076. # Set up the Project name and Service Account authorization
  62077. project: "your\-project\-id"
  62078. service_account_email_address: "123\-a5gt@developer.gserviceaccount.com"
  62079. service_account_private_key: "/path/to/your/NEW.pem"
  62080. # Set up the location of the salt master
  62081. minion:
  62082. master: saltmaster.example.com
  62083. # Set up grains information, which will be common for all nodes
  62084. # using this provider
  62085. grains:
  62086. node_type: broker
  62087. release: 1.0.1
  62088. driver: gce
  62089. .ft P
  62090. .fi
  62091. .UNINDENT
  62092. .UNINDENT
  62093. .sp
  62094. \fBNOTE:\fP
  62095. .INDENT 0.0
  62096. .INDENT 3.5
  62097. Empty strings as values for \fBservice_account_private_key\fP and \fBservice_account_email_address\fP
  62098. can be used on GCE instances. This will result in the service account assigned to the GCE instance
  62099. being used.
  62100. .UNINDENT
  62101. .UNINDENT
  62102. .sp
  62103. \fBNOTE:\fP
  62104. .INDENT 0.0
  62105. .INDENT 3.5
  62106. The value provided for \fBproject\fP must not contain underscores or spaces and
  62107. is labeled as "Project ID" on the Google Developers Console.
  62108. .UNINDENT
  62109. .UNINDENT
  62110. .sp
  62111. \fBNOTE:\fP
  62112. .INDENT 0.0
  62113. .INDENT 3.5
  62114. Changed in version 2015.8.0.
  62115. .sp
  62116. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  62117. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  62118. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  62119. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  62120. to use \fBprovider\fP to refer to provider configurations that you define.
  62121. .UNINDENT
  62122. .UNINDENT
  62123. .SS Profile Configuration
  62124. .sp
  62125. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  62126. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  62127. .INDENT 0.0
  62128. .INDENT 3.5
  62129. .sp
  62130. .nf
  62131. .ft C
  62132. my\-gce\-profile:
  62133. image: centos\-6
  62134. size: n1\-standard\-1
  62135. location: europe\-west1\-b
  62136. network: default
  62137. subnetwork: default
  62138. tags: \(aq["one", "two", "three"]\(aq
  62139. metadata: \(aq{"one": "1", "2": "two"}\(aq
  62140. use_persistent_disk: True
  62141. delete_boot_pd: False
  62142. deploy: True
  62143. make_master: False
  62144. provider: gce\-config
  62145. .ft P
  62146. .fi
  62147. .UNINDENT
  62148. .UNINDENT
  62149. .sp
  62150. The profile can be realized now with a salt command:
  62151. .INDENT 0.0
  62152. .INDENT 3.5
  62153. .sp
  62154. .nf
  62155. .ft C
  62156. salt\-cloud \-p my\-gce\-profile gce\-instance
  62157. .ft P
  62158. .fi
  62159. .UNINDENT
  62160. .UNINDENT
  62161. .sp
  62162. This will create an salt minion instance named \fBgce\-instance\fP in GCE. If
  62163. the command was executed on the salt\-master, its Salt key will automatically
  62164. be signed on the master.
  62165. .sp
  62166. Once the instance has been created with a salt\-minion installed, connectivity to
  62167. it can be verified with Salt:
  62168. .INDENT 0.0
  62169. .INDENT 3.5
  62170. .sp
  62171. .nf
  62172. .ft C
  62173. salt gce\-instance test.version
  62174. .ft P
  62175. .fi
  62176. .UNINDENT
  62177. .UNINDENT
  62178. .SS GCE Specific Settings
  62179. .sp
  62180. Consult the sample profile below for more information about GCE specific
  62181. settings. Some of them are mandatory and are properly labeled below but
  62182. typically also include a hard\-coded default.
  62183. .SS Initial Profile
  62184. .sp
  62185. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  62186. \fB/etc/salt/cloud.profiles.d/gce.conf\fP:
  62187. .INDENT 0.0
  62188. .INDENT 3.5
  62189. .sp
  62190. .nf
  62191. .ft C
  62192. my\-gce\-profile:
  62193. image: centos\-6
  62194. size: n1\-standard\-1
  62195. location: europe\-west1\-b
  62196. network: default
  62197. subnetwork: default
  62198. tags: \(aq["one", "two", "three"]\(aq
  62199. metadata: \(aq{"one": "1", "2": "two"}\(aq
  62200. use_persistent_disk: True
  62201. delete_boot_pd: False
  62202. ssh_interface: public_ips
  62203. external_ip: "ephemeral"
  62204. .ft P
  62205. .fi
  62206. .UNINDENT
  62207. .UNINDENT
  62208. .SS image
  62209. .sp
  62210. Image is used to define what Operating System image should be used
  62211. to for the instance. Examples are Debian 7 (wheezy) and CentOS 6. Required.
  62212. .SS size
  62213. .sp
  62214. A \(aqsize\(aq, in GCE terms, refers to the instance\(aqs \(aqmachine type\(aq. See
  62215. the on\-line documentation for a complete list of GCE machine types. Required.
  62216. .SS location
  62217. .sp
  62218. A \(aqlocation\(aq, in GCE terms, refers to the instance\(aqs \(aqzone\(aq. GCE
  62219. has the notion of both Regions (e.g. us\-central1, europe\-west1, etc)
  62220. and Zones (e.g. us\-central1\-a, us\-central1\-b, etc). Required.
  62221. .SS network
  62222. .sp
  62223. Use this setting to define the network resource for the instance.
  62224. All GCE projects contain a network named \(aqdefault\(aq but it\(aqs possible
  62225. to use this setting to create instances belonging to a different
  62226. network resource.
  62227. .SS subnetwork
  62228. .sp
  62229. Use this setting to define the subnetwork an instance will be created in.
  62230. This requires that the network your instance is created under has a mode of \(aqcustom\(aq or \(aqauto\(aq.
  62231. Additionally, the subnetwork your instance is created under is associated with the location you provide.
  62232. .sp
  62233. New in version 2017.7.0.
  62234. .SS tags
  62235. .sp
  62236. GCE supports instance/network tags and this setting allows you to
  62237. set custom tags. It should be a list of strings and must be
  62238. parse\-able by the python ast.literal_eval() function to convert it
  62239. to a python list.
  62240. .SS metadata
  62241. .sp
  62242. GCE supports instance metadata and this setting allows you to
  62243. set custom metadata. It should be a hash of key/value strings and
  62244. parse\-able by the python ast.literal_eval() function to convert it
  62245. to a python dictionary.
  62246. .SS use_persistent_disk
  62247. .sp
  62248. Use this setting to ensure that when new instances are created,
  62249. they will use a persistent disk to preserve data between instance
  62250. terminations and re\-creations.
  62251. .SS delete_boot_pd
  62252. .sp
  62253. In the event that you wish the boot persistent disk to be permanently
  62254. deleted when you destroy an instance, set delete_boot_pd to True.
  62255. .SS ssh_interface
  62256. .sp
  62257. New in version 2015.5.0.
  62258. .sp
  62259. Specify whether to use public or private IP for deploy script.
  62260. .sp
  62261. Valid options are:
  62262. .INDENT 0.0
  62263. .IP \(bu 2
  62264. private_ips: The salt\-master is also hosted with GCE
  62265. .IP \(bu 2
  62266. public_ips: The salt\-master is hosted outside of GCE
  62267. .UNINDENT
  62268. .SS external_ip
  62269. .sp
  62270. Per instance setting: Used a named fixed IP address to this host.
  62271. .sp
  62272. Valid options are:
  62273. .INDENT 0.0
  62274. .IP \(bu 2
  62275. ephemeral: The host will use a GCE ephemeral IP
  62276. .IP \(bu 2
  62277. None: No external IP will be configured on this host.
  62278. .UNINDENT
  62279. .sp
  62280. Optionally, pass the name of a GCE address to use a fixed IP address.
  62281. If the address does not already exist, it will be created.
  62282. .SS ex_disk_type
  62283. .sp
  62284. GCE supports two different disk types, \fBpd\-standard\fP and \fBpd\-ssd\fP\&.
  62285. The default disk type setting is \fBpd\-standard\fP\&. To specify using an SSD
  62286. disk, set \fBpd\-ssd\fP as the value.
  62287. .sp
  62288. New in version 2014.7.0.
  62289. .SS ip_forwarding
  62290. .sp
  62291. GCE instances can be enabled to use IP Forwarding. When set to \fBTrue\fP,
  62292. this options allows the instance to send/receive non\-matching src/dst
  62293. packets. Default is \fBFalse\fP\&.
  62294. .sp
  62295. New in version 2015.8.1.
  62296. .SS Profile with scopes
  62297. .sp
  62298. Scopes can be specified by setting the optional \fBex_service_accounts\fP
  62299. key in your cloud profile. The following example enables the bigquery scope.
  62300. .INDENT 0.0
  62301. .INDENT 3.5
  62302. .sp
  62303. .nf
  62304. .ft C
  62305. my\-gce\-profile:
  62306. image: centos\-6
  62307. ssh_username: salt
  62308. size: f1\-micro
  62309. location: us\-central1\-a
  62310. network: default
  62311. subnetwork: default
  62312. tags: \(aq["one", "two", "three"]\(aq
  62313. metadata: \(aq{"one": "1", "2": "two",
  62314. "sshKeys": ""}\(aq
  62315. use_persistent_disk: True
  62316. delete_boot_pd: False
  62317. deploy: False
  62318. make_master: False
  62319. provider: gce\-config
  62320. ex_service_accounts:
  62321. \- scopes:
  62322. \- bigquery
  62323. .ft P
  62324. .fi
  62325. .UNINDENT
  62326. .UNINDENT
  62327. .sp
  62328. Email can also be specified as an (optional) parameter.
  62329. .INDENT 0.0
  62330. .INDENT 3.5
  62331. .sp
  62332. .nf
  62333. .ft C
  62334. my\-gce\-profile:
  62335. \&...snip
  62336. ex_service_accounts:
  62337. \- scopes:
  62338. \- bigquery
  62339. email: default
  62340. .ft P
  62341. .fi
  62342. .UNINDENT
  62343. .UNINDENT
  62344. .sp
  62345. There can be multiple entries for scopes since \fBex\-service_accounts\fP accepts
  62346. a list of dictionaries. For more information refer to the libcloud documentation
  62347. on \fI\%specifying service account scopes\fP\&.
  62348. .SS SSH Remote Access
  62349. .sp
  62350. GCE instances do not allow remote access to the root user by default.
  62351. Instead, another user must be used to run the deploy script using sudo.
  62352. Append something like this to \fB/etc/salt/cloud.profiles\fP or
  62353. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  62354. .INDENT 0.0
  62355. .INDENT 3.5
  62356. .sp
  62357. .nf
  62358. .ft C
  62359. my\-gce\-profile:
  62360. ...
  62361. # SSH to GCE instances as gceuser
  62362. ssh_username: gceuser
  62363. # Use the local private SSH key file located here
  62364. ssh_keyfile: /etc/cloud/google_compute_engine
  62365. .ft P
  62366. .fi
  62367. .UNINDENT
  62368. .UNINDENT
  62369. .sp
  62370. If you have not already used this SSH key to login to instances in this
  62371. GCE project you will also need to add the public key to your projects
  62372. metadata at \fI\%https://cloud.google.com/console\fP\&. You could also add it via
  62373. the metadata setting too:
  62374. .INDENT 0.0
  62375. .INDENT 3.5
  62376. .sp
  62377. .nf
  62378. .ft C
  62379. my\-gce\-profile:
  62380. ...
  62381. metadata: \(aq{"one": "1", "2": "two",
  62382. "sshKeys": "gceuser:ssh\-rsa <Your SSH Public Key> gceuser@host"}\(aq
  62383. .ft P
  62384. .fi
  62385. .UNINDENT
  62386. .UNINDENT
  62387. .SS Single instance details
  62388. .sp
  62389. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  62390. single instance only. In an environment with several machines, this will save a
  62391. user from having to sort through all instance data, just to examine a single
  62392. instance.
  62393. .INDENT 0.0
  62394. .INDENT 3.5
  62395. .sp
  62396. .nf
  62397. .ft C
  62398. salt\-cloud \-a show_instance myinstance
  62399. .ft P
  62400. .fi
  62401. .UNINDENT
  62402. .UNINDENT
  62403. .SS Destroy, persistent disks, and metadata
  62404. .sp
  62405. As noted in the provider configuration, it\(aqs possible to force the boot
  62406. persistent disk to be deleted when you destroy the instance. The way that
  62407. this has been implemented is to use the instance metadata to record the
  62408. cloud profile used when creating the instance. When \fBdestroy\fP is called,
  62409. if the instance contains a \fBsalt\-cloud\-profile\fP key, it\(aqs value is used
  62410. to reference the matching profile to determine if \fBdelete_boot_pd\fP is
  62411. set to \fBTrue\fP\&.
  62412. .sp
  62413. Be aware that any GCE instances created with salt cloud will contain this
  62414. custom \fBsalt\-cloud\-profile\fP metadata entry.
  62415. .SS List various resources
  62416. .sp
  62417. It\(aqs also possible to list several GCE resources similar to what can be done
  62418. with other providers. The following commands can be used to list GCE zones
  62419. (locations), machine types (sizes), and images.
  62420. .INDENT 0.0
  62421. .INDENT 3.5
  62422. .sp
  62423. .nf
  62424. .ft C
  62425. salt\-cloud \-\-list\-locations gce
  62426. salt\-cloud \-\-list\-sizes gce
  62427. salt\-cloud \-\-list\-images gce
  62428. .ft P
  62429. .fi
  62430. .UNINDENT
  62431. .UNINDENT
  62432. .SS Persistent Disk
  62433. .sp
  62434. The Compute Engine provider provides functions via salt\-cloud to manage your
  62435. Persistent Disks. You can create and destroy disks as well as attach and
  62436. detach them from running instances.
  62437. .SS Create
  62438. .sp
  62439. When creating a disk, you can create an empty disk and specify its size (in
  62440. GB), or specify either an \(aqimage\(aq or \(aqsnapshot\(aq.
  62441. .INDENT 0.0
  62442. .INDENT 3.5
  62443. .sp
  62444. .nf
  62445. .ft C
  62446. salt\-cloud \-f create_disk gce disk_name=pd location=us\-central1\-b size=200
  62447. .ft P
  62448. .fi
  62449. .UNINDENT
  62450. .UNINDENT
  62451. .SS Delete
  62452. .sp
  62453. Deleting a disk only requires the name of the disk to delete
  62454. .INDENT 0.0
  62455. .INDENT 3.5
  62456. .sp
  62457. .nf
  62458. .ft C
  62459. salt\-cloud \-f delete_disk gce disk_name=old\-backup
  62460. .ft P
  62461. .fi
  62462. .UNINDENT
  62463. .UNINDENT
  62464. .SS Attach
  62465. .sp
  62466. Attaching a disk to an existing instance is really an \(aqaction\(aq and requires
  62467. both an instance name and disk name. It\(aqs possible to use this ation to
  62468. create bootable persistent disks if necessary. Compute Engine also supports
  62469. attaching a persistent disk in READ_ONLY mode to multiple instances at the
  62470. same time (but then cannot be attached in READ_WRITE to any instance).
  62471. .INDENT 0.0
  62472. .INDENT 3.5
  62473. .sp
  62474. .nf
  62475. .ft C
  62476. salt\-cloud \-a attach_disk myinstance disk_name=pd mode=READ_WRITE boot=yes
  62477. .ft P
  62478. .fi
  62479. .UNINDENT
  62480. .UNINDENT
  62481. .SS Detach
  62482. .sp
  62483. Detaching a disk is also an action against an instance and only requires
  62484. the name of the disk. Note that this does \fInot\fP safely sync and umount the
  62485. disk from the instance. To ensure no data loss, you must first make sure the
  62486. disk is unmounted from the instance.
  62487. .INDENT 0.0
  62488. .INDENT 3.5
  62489. .sp
  62490. .nf
  62491. .ft C
  62492. salt\-cloud \-a detach_disk myinstance disk_name=pd
  62493. .ft P
  62494. .fi
  62495. .UNINDENT
  62496. .UNINDENT
  62497. .SS Show disk
  62498. .sp
  62499. It\(aqs also possible to look up the details for an existing disk with either
  62500. a function or an action.
  62501. .INDENT 0.0
  62502. .INDENT 3.5
  62503. .sp
  62504. .nf
  62505. .ft C
  62506. salt\-cloud \-a show_disk myinstance disk_name=pd
  62507. salt\-cloud \-f show_disk gce disk_name=pd
  62508. .ft P
  62509. .fi
  62510. .UNINDENT
  62511. .UNINDENT
  62512. .SS Create snapshot
  62513. .sp
  62514. You can take a snapshot of an existing disk\(aqs content. The snapshot can then
  62515. in turn be used to create other persistent disks. Note that to prevent data
  62516. corruption, it is strongly suggested that you unmount the disk prior to
  62517. taking a snapshot. You must name the snapshot and provide the name of the
  62518. disk.
  62519. .INDENT 0.0
  62520. .INDENT 3.5
  62521. .sp
  62522. .nf
  62523. .ft C
  62524. salt\-cloud \-f create_snapshot gce name=backup\-20140226 disk_name=pd
  62525. .ft P
  62526. .fi
  62527. .UNINDENT
  62528. .UNINDENT
  62529. .SS Delete snapshot
  62530. .sp
  62531. You can delete a snapshot when it\(aqs no longer needed by specifying the name
  62532. of the snapshot.
  62533. .INDENT 0.0
  62534. .INDENT 3.5
  62535. .sp
  62536. .nf
  62537. .ft C
  62538. salt\-cloud \-f delete_snapshot gce name=backup\-20140226
  62539. .ft P
  62540. .fi
  62541. .UNINDENT
  62542. .UNINDENT
  62543. .SS Show snapshot
  62544. .sp
  62545. Use this function to look up information about the snapshot.
  62546. .INDENT 0.0
  62547. .INDENT 3.5
  62548. .sp
  62549. .nf
  62550. .ft C
  62551. salt\-cloud \-f show_snapshot gce name=backup\-20140226
  62552. .ft P
  62553. .fi
  62554. .UNINDENT
  62555. .UNINDENT
  62556. .SS Networking
  62557. .sp
  62558. Compute Engine supports multiple private networks per project. Instances
  62559. within a private network can easily communicate with each other by an
  62560. internal DNS service that resolves instance names. Instances within a private
  62561. network can also communicate with either directly without needing special
  62562. routing or firewall rules even if they span different regions/zones.
  62563. .sp
  62564. Networks also support custom firewall rules. By default, traffic between
  62565. instances on the same private network is open to all ports and protocols.
  62566. Inbound SSH traffic (port 22) is also allowed but all other inbound traffic
  62567. is blocked.
  62568. .SS Create network
  62569. .sp
  62570. New networks require a name and CIDR range if they don\(aqt have a \(aqmode\(aq.
  62571. Optionally, \(aqmode\(aq can be provided. Supported modes are \(aqauto\(aq, \(aqcustom\(aq, \(aqlegacy\(aq.
  62572. Optionally, \(aqdescription\(aq can be provided to add an extra note to your network.
  62573. New instances can be created and added to this network by setting the network name during create. It is
  62574. not possible to add/remove existing instances to a network.
  62575. .INDENT 0.0
  62576. .INDENT 3.5
  62577. .sp
  62578. .nf
  62579. .ft C
  62580. salt\-cloud \-f create_network gce name=mynet cidr=10.10.10.0/24
  62581. salt\-cloud \-f create_network gce name=mynet mode=auto description=some optional info.
  62582. .ft P
  62583. .fi
  62584. .UNINDENT
  62585. .UNINDENT
  62586. .sp
  62587. Changed in version 2017.7.0.
  62588. .SS Destroy network
  62589. .sp
  62590. Destroy a network by specifying the name. If a resource is currently using
  62591. the target network an exception will be raised.
  62592. .INDENT 0.0
  62593. .INDENT 3.5
  62594. .sp
  62595. .nf
  62596. .ft C
  62597. salt\-cloud \-f delete_network gce name=mynet
  62598. .ft P
  62599. .fi
  62600. .UNINDENT
  62601. .UNINDENT
  62602. .SS Show network
  62603. .sp
  62604. Specify the network name to view information about the network.
  62605. .INDENT 0.0
  62606. .INDENT 3.5
  62607. .sp
  62608. .nf
  62609. .ft C
  62610. salt\-cloud \-f show_network gce name=mynet
  62611. .ft P
  62612. .fi
  62613. .UNINDENT
  62614. .UNINDENT
  62615. .SS Create subnetwork
  62616. .sp
  62617. New subnetworks require a name, region, and CIDR range.
  62618. Optionally, \(aqdescription\(aq can be provided to add an extra note to your subnetwork.
  62619. New instances can be created and added to this subnetwork by setting the subnetwork name during create. It is
  62620. not possible to add/remove existing instances to a subnetwork.
  62621. .INDENT 0.0
  62622. .INDENT 3.5
  62623. .sp
  62624. .nf
  62625. .ft C
  62626. salt\-cloud \-f create_subnetwork gce name=mynet network=mynet region=us\-central1 cidr=10.0.10.0/24
  62627. salt\-cloud \-f create_subnetwork gce name=mynet network=mynet region=us\-central1 cidr=10.10.10.0/24 description=some info about my subnet.
  62628. .ft P
  62629. .fi
  62630. .UNINDENT
  62631. .UNINDENT
  62632. .sp
  62633. New in version 2017.7.0.
  62634. .SS Destroy subnetwork
  62635. .sp
  62636. Destroy a subnetwork by specifying the name and region. If a resource is currently using
  62637. the target subnetwork an exception will be raised.
  62638. .INDENT 0.0
  62639. .INDENT 3.5
  62640. .sp
  62641. .nf
  62642. .ft C
  62643. salt\-cloud \-f delete_subnetwork gce name=mynet region=us\-central1
  62644. .ft P
  62645. .fi
  62646. .UNINDENT
  62647. .UNINDENT
  62648. .sp
  62649. New in version 2017.7.0.
  62650. .SS Show subnetwork
  62651. .sp
  62652. Specify the subnetwork name to view information about the subnetwork.
  62653. .INDENT 0.0
  62654. .INDENT 3.5
  62655. .sp
  62656. .nf
  62657. .ft C
  62658. salt\-cloud \-f show_subnetwork gce name=mynet
  62659. .ft P
  62660. .fi
  62661. .UNINDENT
  62662. .UNINDENT
  62663. .sp
  62664. New in version 2017.7.0.
  62665. .SS Create address
  62666. .sp
  62667. Create a new named static IP address in a region.
  62668. .INDENT 0.0
  62669. .INDENT 3.5
  62670. .sp
  62671. .nf
  62672. .ft C
  62673. salt\-cloud \-f create_address gce name=my\-fixed\-ip region=us\-central1
  62674. .ft P
  62675. .fi
  62676. .UNINDENT
  62677. .UNINDENT
  62678. .SS Delete address
  62679. .sp
  62680. Delete an existing named fixed IP address.
  62681. .INDENT 0.0
  62682. .INDENT 3.5
  62683. .sp
  62684. .nf
  62685. .ft C
  62686. salt\-cloud \-f delete_address gce name=my\-fixed\-ip region=us\-central1
  62687. .ft P
  62688. .fi
  62689. .UNINDENT
  62690. .UNINDENT
  62691. .SS Show address
  62692. .sp
  62693. View details on a named address.
  62694. .INDENT 0.0
  62695. .INDENT 3.5
  62696. .sp
  62697. .nf
  62698. .ft C
  62699. salt\-cloud \-f show_address gce name=my\-fixed\-ip region=us\-central1
  62700. .ft P
  62701. .fi
  62702. .UNINDENT
  62703. .UNINDENT
  62704. .SS Create firewall
  62705. .sp
  62706. You\(aqll need to create custom firewall rules if you want to allow other traffic
  62707. than what is described above. For instance, if you run a web service on
  62708. your instances, you\(aqll need to explicitly allow HTTP and/or SSL traffic.
  62709. The firewall rule must have a name and it will use the \(aqdefault\(aq network
  62710. unless otherwise specified with a \(aqnetwork\(aq attribute. Firewalls also support
  62711. instance tags for source/destination
  62712. .INDENT 0.0
  62713. .INDENT 3.5
  62714. .sp
  62715. .nf
  62716. .ft C
  62717. salt\-cloud \-f create_fwrule gce name=web allow=tcp:80,tcp:443,icmp
  62718. .ft P
  62719. .fi
  62720. .UNINDENT
  62721. .UNINDENT
  62722. .SS Delete firewall
  62723. .sp
  62724. Deleting a firewall rule will prevent any previously allowed traffic for the
  62725. named firewall rule.
  62726. .INDENT 0.0
  62727. .INDENT 3.5
  62728. .sp
  62729. .nf
  62730. .ft C
  62731. salt\-cloud \-f delete_fwrule gce name=web
  62732. .ft P
  62733. .fi
  62734. .UNINDENT
  62735. .UNINDENT
  62736. .SS Show firewall
  62737. .sp
  62738. Use this function to review an existing firewall rule\(aqs information.
  62739. .INDENT 0.0
  62740. .INDENT 3.5
  62741. .sp
  62742. .nf
  62743. .ft C
  62744. salt\-cloud \-f show_fwrule gce name=web
  62745. .ft P
  62746. .fi
  62747. .UNINDENT
  62748. .UNINDENT
  62749. .SS Load Balancer
  62750. .sp
  62751. Compute Engine possess a load\-balancer feature for splitting traffic across
  62752. multiple instances. Please reference the
  62753. \fI\%documentation\fP
  62754. for a more complete description.
  62755. .sp
  62756. The load\-balancer functionality is slightly different than that described
  62757. in Google\(aqs documentation. The concept of \fITargetPool\fP and \fIForwardingRule\fP
  62758. are consolidated in salt\-cloud/libcloud. HTTP Health Checks are optional.
  62759. .SS HTTP Health Check
  62760. .sp
  62761. HTTP Health Checks can be used as a means to toggle load\-balancing across
  62762. instance members, or to detect if an HTTP site is functioning. A common
  62763. use\-case is to set up a health check URL and if you want to toggle traffic
  62764. on/off to an instance, you can temporarily have it return a non\-200 response.
  62765. A non\-200 response to the load\-balancer\(aqs health check will keep the LB from
  62766. sending any new traffic to the "down" instance. Once the instance\(aqs
  62767. health check URL beings returning 200\-responses, the LB will again start to
  62768. send traffic to it. Review Compute Engine\(aqs documentation for allowable
  62769. parameters. You can use the following salt\-cloud functions to manage your
  62770. HTTP health checks.
  62771. .INDENT 0.0
  62772. .INDENT 3.5
  62773. .sp
  62774. .nf
  62775. .ft C
  62776. salt\-cloud \-f create_hc gce name=myhc path=/ port=80
  62777. salt\-cloud \-f delete_hc gce name=myhc
  62778. salt\-cloud \-f show_hc gce name=myhc
  62779. .ft P
  62780. .fi
  62781. .UNINDENT
  62782. .UNINDENT
  62783. .SS Load\-balancer
  62784. .sp
  62785. When creating a new load\-balancer, it requires a name, region, port range,
  62786. and list of members. There are other optional parameters for protocol,
  62787. and list of health checks. Deleting or showing details about the LB only
  62788. requires the name.
  62789. .INDENT 0.0
  62790. .INDENT 3.5
  62791. .sp
  62792. .nf
  62793. .ft C
  62794. salt\-cloud \-f create_lb gce name=lb region=... ports=80 members=w1,w2,w3
  62795. salt\-cloud \-f delete_lb gce name=lb
  62796. salt\-cloud \-f show_lb gce name=lb
  62797. .ft P
  62798. .fi
  62799. .UNINDENT
  62800. .UNINDENT
  62801. .sp
  62802. You can also create a load balancer using a named fixed IP addressby specifying the name of the address.
  62803. If the address does not exist yet it will be created.
  62804. .INDENT 0.0
  62805. .INDENT 3.5
  62806. .sp
  62807. .nf
  62808. .ft C
  62809. salt\-cloud \-f create_lb gce name=my\-lb region=us\-central1 ports=234 members=s1,s2,s3 address=my\-lb\-ip
  62810. .ft P
  62811. .fi
  62812. .UNINDENT
  62813. .UNINDENT
  62814. .SS Attach and Detach LB
  62815. .sp
  62816. It is possible to attach or detach an instance from an existing load\-balancer.
  62817. Both the instance and load\-balancer must exist before using these functions.
  62818. .INDENT 0.0
  62819. .INDENT 3.5
  62820. .sp
  62821. .nf
  62822. .ft C
  62823. salt\-cloud \-f attach_lb gce name=lb member=w4
  62824. salt\-cloud \-f detach_lb gce name=lb member=oops
  62825. .ft P
  62826. .fi
  62827. .UNINDENT
  62828. .UNINDENT
  62829. .SS Getting Started With HP Cloud
  62830. .sp
  62831. HP Cloud is a major public cloud platform and uses the libcloud
  62832. \fIopenstack\fP driver. The current version of OpenStack that HP Cloud
  62833. uses is Havana. When an instance is booted, it must have a
  62834. floating IP added to it in order to connect to it and further below
  62835. you will see an example that adds context to this statement.
  62836. .SS Set up a cloud provider configuration file
  62837. .sp
  62838. To use the \fIopenstack\fP driver for HP Cloud, set up the cloud
  62839. provider configuration file as in the example shown below:
  62840. .sp
  62841. \fB/etc/salt/cloud.providers.d/hpcloud.conf\fP:
  62842. .INDENT 0.0
  62843. .INDENT 3.5
  62844. .sp
  62845. .nf
  62846. .ft C
  62847. hpcloud\-config:
  62848. # Set the location of the salt\-master
  62849. #
  62850. minion:
  62851. master: saltmaster.example.com
  62852. # Configure HP Cloud using the OpenStack plugin
  62853. #
  62854. identity_url: https://region\-b.geo\-1.identity.hpcloudsvc.com:35357/v2.0/tokens
  62855. compute_name: Compute
  62856. protocol: ipv4
  62857. # Set the compute region:
  62858. #
  62859. compute_region: region\-b.geo\-1
  62860. # Configure HP Cloud authentication credentials
  62861. #
  62862. user: myname
  62863. tenant: myname\-project1
  62864. password: xxxxxxxxx
  62865. # keys to allow connection to the instance launched
  62866. #
  62867. ssh_key_name: yourkey
  62868. ssh_key_file: /path/to/key/yourkey.priv
  62869. driver: openstack
  62870. .ft P
  62871. .fi
  62872. .UNINDENT
  62873. .UNINDENT
  62874. .sp
  62875. The subsequent example that follows is using the openstack driver.
  62876. .sp
  62877. \fBNOTE:\fP
  62878. .INDENT 0.0
  62879. .INDENT 3.5
  62880. Changed in version 2015.8.0.
  62881. .sp
  62882. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  62883. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  62884. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  62885. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  62886. to use \fBprovider\fP to refer to provider configurations that you define.
  62887. .UNINDENT
  62888. .UNINDENT
  62889. .SS Compute Region
  62890. .sp
  62891. Originally, HP Cloud, in its OpenStack Essex version (1.0), had 3
  62892. availability zones in one region, US West (region\-a.geo\-1), which
  62893. each behaved each as a region.
  62894. .sp
  62895. This has since changed, and the current OpenStack Havana version of
  62896. HP Cloud (1.1) now has simplified this and now has two regions to choose from:
  62897. .INDENT 0.0
  62898. .INDENT 3.5
  62899. .sp
  62900. .nf
  62901. .ft C
  62902. region\-a.geo\-1 \-> US West
  62903. region\-b.geo\-1 \-> US East
  62904. .ft P
  62905. .fi
  62906. .UNINDENT
  62907. .UNINDENT
  62908. .SS Authentication
  62909. .sp
  62910. The \fBuser\fP is the same user as is used to log into the HP Cloud management
  62911. UI. The \fBtenant\fP can be found in the upper left under "Project/Region/Scope".
  62912. It is often named the same as \fBuser\fP albeit with a \fB\-project1\fP appended.
  62913. The \fBpassword\fP is of course what you created your account with. The management
  62914. UI also has other information such as being able to select US East or US West.
  62915. .SS Set up a cloud profile config file
  62916. .sp
  62917. The profile shown below is a know working profile for an Ubuntu instance. The
  62918. profile configuration file is stored in the following location:
  62919. .sp
  62920. \fB/etc/salt/cloud.profiles.d/hp_ae1_ubuntu.conf\fP:
  62921. .INDENT 0.0
  62922. .INDENT 3.5
  62923. .sp
  62924. .nf
  62925. .ft C
  62926. hp_ae1_ubuntu:
  62927. provider: hp_ae1
  62928. image: 9302692b\-b787\-4b52\-a3a6\-daebb79cb498
  62929. ignore_cidr: 10.0.0.1/24
  62930. networks:
  62931. \- floating: Ext\-Net
  62932. size: standard.small
  62933. ssh_key_file: /root/keys/test.key
  62934. ssh_key_name: test
  62935. ssh_username: ubuntu
  62936. .ft P
  62937. .fi
  62938. .UNINDENT
  62939. .UNINDENT
  62940. .sp
  62941. Some important things about the example above:
  62942. .INDENT 0.0
  62943. .IP \(bu 2
  62944. The \fBimage\fP parameter can use either the image name or image ID which you can obtain by running in the example below (this case US East):
  62945. .UNINDENT
  62946. .INDENT 0.0
  62947. .INDENT 3.5
  62948. .sp
  62949. .nf
  62950. .ft C
  62951. # salt\-cloud \-\-list\-images hp_ae1
  62952. .ft P
  62953. .fi
  62954. .UNINDENT
  62955. .UNINDENT
  62956. .INDENT 0.0
  62957. .IP \(bu 2
  62958. The parameter \fBignore_cidr\fP specifies a range of addresses to ignore when trying to connect to the instance. In this case, it\(aqs the range of IP addresses used for an private IP of the instance.
  62959. .IP \(bu 2
  62960. The parameter \fBnetworks\fP is very important to include. In previous versions of Salt Cloud, this is what made it possible for salt\-cloud to be able to attach a floating IP to the instance in order to connect to the instance and set up the minion. The current version of salt\-cloud doesn\(aqt require it, though having it is of no harm either. Newer versions of salt\-cloud will use this, and without it, will attempt to find a list of floating IP addresses to use regardless.
  62961. .IP \(bu 2
  62962. The \fBssh_key_file\fP and \fBssh_key_name\fP are the keys that will make it possible to connect to the instance to set up the minion
  62963. .IP \(bu 2
  62964. The \fBssh_username\fP parameter, in this case, being that the image used will be ubuntu, will make it possible to not only log in but install the minion
  62965. .UNINDENT
  62966. .SS Launch an instance
  62967. .sp
  62968. To instantiate a machine based on this profile (example):
  62969. .INDENT 0.0
  62970. .INDENT 3.5
  62971. .sp
  62972. .nf
  62973. .ft C
  62974. # salt\-cloud \-p hp_ae1_ubuntu ubuntu_instance_1
  62975. .ft P
  62976. .fi
  62977. .UNINDENT
  62978. .UNINDENT
  62979. .sp
  62980. After several minutes, this will create an instance named ubuntu_instance_1
  62981. running in HP Cloud in the US East region and will set up the minion and then
  62982. return information about the instance once completed.
  62983. .SS Manage the instance
  62984. .sp
  62985. Once the instance has been created with salt\-minion installed, connectivity to
  62986. it can be verified with Salt:
  62987. .INDENT 0.0
  62988. .INDENT 3.5
  62989. .sp
  62990. .nf
  62991. .ft C
  62992. # salt ubuntu_instance_1 ping
  62993. .ft P
  62994. .fi
  62995. .UNINDENT
  62996. .UNINDENT
  62997. .SS SSH to the instance
  62998. .sp
  62999. Additionally, the instance can be accessed via SSH using the floating IP assigned to it
  63000. .INDENT 0.0
  63001. .INDENT 3.5
  63002. .sp
  63003. .nf
  63004. .ft C
  63005. # ssh ubuntu@<floating ip>
  63006. .ft P
  63007. .fi
  63008. .UNINDENT
  63009. .UNINDENT
  63010. .SS Using a private IP
  63011. .sp
  63012. Alternatively, in the cloud profile, using the private IP to log into the instance to set up the minion is another option, particularly if salt\-cloud is running within the cloud on an instance that is on the same network with all the other instances (minions)
  63013. .sp
  63014. The example below is a modified version of the previous example. Note the use of \fBssh_interface\fP:
  63015. .INDENT 0.0
  63016. .INDENT 3.5
  63017. .sp
  63018. .nf
  63019. .ft C
  63020. hp_ae1_ubuntu:
  63021. provider: hp_ae1
  63022. image: 9302692b\-b787\-4b52\-a3a6\-daebb79cb498
  63023. size: standard.small
  63024. ssh_key_file: /root/keys/test.key
  63025. ssh_key_name: test
  63026. ssh_username: ubuntu
  63027. ssh_interface: private_ips
  63028. .ft P
  63029. .fi
  63030. .UNINDENT
  63031. .UNINDENT
  63032. .sp
  63033. With this setup, salt\-cloud will use the private IP address to ssh into the instance and set up the salt\-minion
  63034. .SS Getting Started With Joyent
  63035. .sp
  63036. Joyent is a public cloud host that supports SmartOS, Linux, FreeBSD, and
  63037. Windows.
  63038. .SS Dependencies
  63039. .sp
  63040. This driver requires the Python \fBrequests\fP library to be installed.
  63041. .SS Configuration
  63042. .sp
  63043. The Joyent cloud requires three configuration parameters. The user name and
  63044. password that are used to log into the Joyent system, and the location of the
  63045. private ssh key associated with the Joyent account. The ssh key is needed to
  63046. send the provisioning commands up to the freshly created virtual machine.
  63047. .INDENT 0.0
  63048. .INDENT 3.5
  63049. .sp
  63050. .nf
  63051. .ft C
  63052. # Note: This example is for /etc/salt/cloud.providers or any file in the
  63053. # /etc/salt/cloud.providers.d/ directory.
  63054. my\-joyent\-config:
  63055. driver: joyent
  63056. user: fred
  63057. password: saltybacon
  63058. private_key: /root/mykey.pem
  63059. keyname: mykey
  63060. .ft P
  63061. .fi
  63062. .UNINDENT
  63063. .UNINDENT
  63064. .sp
  63065. \fBNOTE:\fP
  63066. .INDENT 0.0
  63067. .INDENT 3.5
  63068. Changed in version 2015.8.0.
  63069. .sp
  63070. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63071. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63072. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63073. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63074. to use \fBprovider\fP to refer to provider configurations that you define.
  63075. .UNINDENT
  63076. .UNINDENT
  63077. .SS Profiles
  63078. .SS Cloud Profiles
  63079. .sp
  63080. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or in the
  63081. \fB/etc/salt/cloud.profiles.d/\fP directory:
  63082. .INDENT 0.0
  63083. .INDENT 3.5
  63084. .sp
  63085. .nf
  63086. .ft C
  63087. joyent_512:
  63088. provider: my\-joyent\-config
  63089. size: g4\-highcpu\-512M
  63090. image: ubuntu\-16.04
  63091. .ft P
  63092. .fi
  63093. .UNINDENT
  63094. .UNINDENT
  63095. .sp
  63096. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  63097. command:
  63098. .INDENT 0.0
  63099. .INDENT 3.5
  63100. .sp
  63101. .nf
  63102. .ft C
  63103. # salt\-cloud \-\-list\-sizes my\-joyent\-config
  63104. my\-joyent\-config:
  63105. \-\-\-\-\-\-\-\-\-\-
  63106. joyent:
  63107. \-\-\-\-\-\-\-\-\-\-
  63108. g4\-highcpu\-512M:
  63109. \-\-\-\-\-\-\-\-\-\-
  63110. default:
  63111. False
  63112. description:
  63113. Compute Optimized 512M RAM \- 1 vCPU \- 10 GB Disk
  63114. disk:
  63115. 10240
  63116. group:
  63117. Compute Optimized
  63118. id:
  63119. 14aea8fc\-d0f8\-11e5\-bfe4\-a7458dbc6c99
  63120. lwps:
  63121. 4000
  63122. memory:
  63123. 512
  63124. name:
  63125. g4\-highcpu\-512M
  63126. swap:
  63127. 2048
  63128. vcpus:
  63129. 0
  63130. version:
  63131. 1.0.3
  63132. \&...SNIP...
  63133. .ft P
  63134. .fi
  63135. .UNINDENT
  63136. .UNINDENT
  63137. .sp
  63138. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  63139. command:
  63140. .INDENT 0.0
  63141. .INDENT 3.5
  63142. .sp
  63143. .nf
  63144. .ft C
  63145. # salt\-cloud \-\-list\-images my\-joyent\-config
  63146. my\-joyent\-config:
  63147. \-\-\-\-\-\-\-\-\-\-
  63148. joyent:
  63149. \-\-\-\-\-\-\-\-\-\-
  63150. base:
  63151. \-\-\-\-\-\-\-\-\-\-
  63152. description:
  63153. A 32\-bit SmartOS image with just essential packages
  63154. installed. Ideal for users who are comfortabl e with
  63155. setting up their own environment and tools.
  63156. files:
  63157. |_
  63158. \-\-\-\-\-\-\-\-\-\-
  63159. compression:
  63160. gzip
  63161. sha1:
  63162. b00a77408ddd9aeac85085b68b1cd22a07353956
  63163. size:
  63164. 106918297
  63165. homepage:
  63166. http://wiki.joyent.com/jpc2/Base+Instance
  63167. id:
  63168. 00aec452\-6e81\-11e4\-8474\-ebfec9a1a911
  63169. name:
  63170. base
  63171. os:
  63172. smartos
  63173. owner:
  63174. 9dce1460\-0c4c\-4417\-ab8b\-25ca478c5a78
  63175. public:
  63176. True
  63177. published_at:
  63178. 2014\-11\-17T17:41:46Z
  63179. requirements:
  63180. \-\-\-\-\-\-\-\-\-\-
  63181. state:
  63182. active
  63183. type:
  63184. smartmachine
  63185. version:
  63186. 14.3.0
  63187. \&...SNIP...
  63188. .ft P
  63189. .fi
  63190. .UNINDENT
  63191. .UNINDENT
  63192. .SS SmartDataCenter
  63193. .sp
  63194. This driver can also be used with the Joyent SmartDataCenter project. More
  63195. details can be found at:
  63196. .sp
  63197. Using SDC requires that an api_host_suffix is set. The default value for this is
  63198. \fI\&.api.joyentcloud.com\fP\&. All characters, including the leading \fI\&.\fP, should be
  63199. included:
  63200. .INDENT 0.0
  63201. .INDENT 3.5
  63202. .sp
  63203. .nf
  63204. .ft C
  63205. api_host_suffix: .api.myhostname.com
  63206. .ft P
  63207. .fi
  63208. .UNINDENT
  63209. .UNINDENT
  63210. .SS Miscellaneous Configuration
  63211. .sp
  63212. The following configuration items can be set in either \fBprovider\fP or
  63213. \fBprofile\fP configuration files.
  63214. .SS use_ssl
  63215. .sp
  63216. When set to \fBTrue\fP (the default), attach \fBhttps://\fP to any URL that does not
  63217. already have \fBhttp://\fP or \fBhttps://\fP included at the beginning. The best
  63218. practice is to leave the protocol out of the URL, and use this setting to manage
  63219. it.
  63220. .SS verify_ssl
  63221. .sp
  63222. When set to \fBTrue\fP (the default), the underlying web library will verify the
  63223. SSL certificate. This should only be set to \fBFalse\fP for debugging.\(ga
  63224. .SS Getting Started With Libvirt
  63225. .sp
  63226. Libvirt is a toolkit to interact with the virtualization capabilities of recent versions
  63227. of Linux (and other OSes). This driver Salt cloud provider is currently geared towards
  63228. libvirt with qemu\-kvm.
  63229. .sp
  63230. \fI\%https://libvirt.org/\fP
  63231. .SS Host Dependencies
  63232. .INDENT 0.0
  63233. .IP \(bu 2
  63234. libvirt >= 1.2.18 (older might work)
  63235. .UNINDENT
  63236. .SS Salt\-Cloud Dependencies
  63237. .INDENT 0.0
  63238. .IP \(bu 2
  63239. libvirt\-python
  63240. .UNINDENT
  63241. .SS Provider Configuration
  63242. .sp
  63243. For every KVM host a provider needs to be set up. The provider currently maps to one libvirt daemon (e.g. one KVM host).
  63244. .sp
  63245. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  63246. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  63247. .INDENT 0.0
  63248. .INDENT 3.5
  63249. .sp
  63250. .nf
  63251. .ft C
  63252. # Set up a provider with qemu+ssh protocol
  63253. kvm\-via\-ssh:
  63254. driver: libvirt
  63255. url: qemu+ssh://user@kvm.company.com/system?socket=/var/run/libvirt/libvirt\-sock
  63256. # Or connect to a local libvirt instance
  63257. local\-kvm:
  63258. driver: libvirt
  63259. url: qemu:///system
  63260. # work around flag for XML validation errors while cloning
  63261. validate_xml: no
  63262. .ft P
  63263. .fi
  63264. .UNINDENT
  63265. .UNINDENT
  63266. .SS Cloud Profiles
  63267. .sp
  63268. Virtual machines get cloned from so called Cloud Profiles. Profiles can be set up at \fB/etc/salt/cloud.profiles\fP or
  63269. \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  63270. .INDENT 0.0
  63271. .IP \(bu 2
  63272. Configure a profile to be used:
  63273. .UNINDENT
  63274. .INDENT 0.0
  63275. .INDENT 3.5
  63276. .sp
  63277. .nf
  63278. .ft C
  63279. centos7:
  63280. # points back at provider configuration
  63281. provider: local\-kvm
  63282. base_domain: base\-centos7\-64
  63283. ip_source: ip\-learning
  63284. ssh_username: root
  63285. password: my\-very\-secret\-password
  63286. # /tmp is mounted noexec.. do workaround
  63287. deploy_command: sh /tmp/.saltcloud/deploy.sh
  63288. script_args: \-F
  63289. # grains to add to the minion
  63290. grains:
  63291. clones\-are\-awesome: true
  63292. # override minion settings
  63293. minion:
  63294. master: 192.168.16.1
  63295. master_port: 5506
  63296. .ft P
  63297. .fi
  63298. .UNINDENT
  63299. .UNINDENT
  63300. .sp
  63301. The profile can be realized now with a salt command:
  63302. .INDENT 0.0
  63303. .INDENT 3.5
  63304. .sp
  63305. .nf
  63306. .ft C
  63307. salt\-cloud \-p centos7 my\-centos7\-clone
  63308. .ft P
  63309. .fi
  63310. .UNINDENT
  63311. .UNINDENT
  63312. .sp
  63313. This will create an instance named \fBmy\-centos7\-clone\fP on the cloud host. Also
  63314. the minion id will be set to \fBmy\-centos7\-clone\fP\&.
  63315. .sp
  63316. If the command was executed on the salt\-master, its Salt key will automatically
  63317. be accepted on the master.
  63318. .sp
  63319. Once the instance has been created with salt\-minion installed, connectivity to
  63320. it can be verified with Salt:
  63321. .INDENT 0.0
  63322. .INDENT 3.5
  63323. .sp
  63324. .nf
  63325. .ft C
  63326. salt my\-centos7\-clone test.version
  63327. .ft P
  63328. .fi
  63329. .UNINDENT
  63330. .UNINDENT
  63331. .SS Required Settings
  63332. .sp
  63333. The following settings are always required for libvirt:
  63334. .INDENT 0.0
  63335. .INDENT 3.5
  63336. .sp
  63337. .nf
  63338. .ft C
  63339. centos7:
  63340. provider: local\-kvm
  63341. # the domain to clone
  63342. base_domain: base\-centos7\-64
  63343. .ft P
  63344. .fi
  63345. .UNINDENT
  63346. .UNINDENT
  63347. .SS SSH Key Authentication
  63348. .sp
  63349. Instead of specifying a password, an authorized key can be used for the minion setup. Ensure that
  63350. the ssh user of your base image has the public key you want to use in ~/.ssh/authorized_keys. If
  63351. you want to use a non\-root user you will likely want to configure salt\-cloud to use sudo.
  63352. .sp
  63353. An example using root:
  63354. .INDENT 0.0
  63355. .INDENT 3.5
  63356. .sp
  63357. .nf
  63358. .ft C
  63359. centos7:
  63360. provider: local\-kvm
  63361. # the domain to clone
  63362. base_domain: base\-centos7\-64
  63363. ssh_username: root
  63364. private_key: /path/to/private/key
  63365. .ft P
  63366. .fi
  63367. .UNINDENT
  63368. .UNINDENT
  63369. .sp
  63370. An example using a non\-root user:
  63371. .INDENT 0.0
  63372. .INDENT 3.5
  63373. .sp
  63374. .nf
  63375. .ft C
  63376. centos7:
  63377. provider: local\-kvm
  63378. # the domain to clone
  63379. base_domain: base\-centos7\-64
  63380. ssh_username: centos
  63381. private_key: /path/to/private/key
  63382. sudo: True
  63383. sudo_password: "\-\-redacted\-\-"
  63384. .ft P
  63385. .fi
  63386. .UNINDENT
  63387. .UNINDENT
  63388. .SS Optional Settings
  63389. .INDENT 0.0
  63390. .INDENT 3.5
  63391. .sp
  63392. .nf
  63393. .ft C
  63394. centos7:
  63395. # ssh settings
  63396. # use forwarded agent instead of a local key
  63397. ssh_agent: True
  63398. ssh_port: 4910
  63399. # credentials
  63400. ssh_username: root
  63401. # password will be used for sudo if defined, use sudo_password if using ssh keys
  63402. password: my\-secret\-password
  63403. private_key: /path/to/private/key
  63404. sudo: True
  63405. sudo_password: "\-\-redacted\-\-"
  63406. # bootstrap options
  63407. deploy_command: sh /tmp/.saltcloud/deploy.sh
  63408. script_args: \-F
  63409. # minion config
  63410. grains:
  63411. sushi: more tasty
  63412. # point at the another master at another port
  63413. minion:
  63414. master: 192.168.16.1
  63415. master_port: 5506
  63416. # libvirt settings
  63417. # clone_strategy: [ quick | full ] # default is full
  63418. clone_strategy: quick
  63419. # ip_source: [ ip\-learning | qemu\-agent ] # default is ip\-learning
  63420. ip_source: qemu\-agent
  63421. # validate_xml: [ false | true ] # default is true
  63422. validate_xml: false
  63423. .ft P
  63424. .fi
  63425. .UNINDENT
  63426. .UNINDENT
  63427. .sp
  63428. The \fBclone_strategy\fP controls how the clone is done. In case of \fBfull\fP the disks
  63429. are copied creating a standalone clone. If \fBquick\fP is used the disks of the base domain
  63430. are used as backing disks for the clone. This results in nearly instantaneous clones at
  63431. the expense of slower write performance. The quick strategy has a number of requirements:
  63432. .INDENT 0.0
  63433. .IP \(bu 2
  63434. The disks must be of type qcow2
  63435. .IP \(bu 2
  63436. The base domain must be turned off
  63437. .IP \(bu 2
  63438. The base domain must not change after creating the clone
  63439. .UNINDENT
  63440. .sp
  63441. The \fBip_source\fP setting controls how the IP address of the cloned instance is determined.
  63442. When using \fBip\-learning\fP the IP is requested from libvirt. This needs a recent libvirt
  63443. version and may only work for NAT/routed networks where libvirt runs the dhcp server.
  63444. Another option is to use \fBqemu\-agent\fP this requires that the qemu\-agent is installed and
  63445. configured to run at startup in the base domain.
  63446. .sp
  63447. The \fBvalidate_xml\fP setting is available to disable xml validation by libvirt when cloning.
  63448. .sp
  63449. See also \fBsalt.cloud.clouds.libvirt\fP
  63450. .SS Getting Started With Linode
  63451. .sp
  63452. Linode is a public cloud host with a focus on Linux instances.
  63453. .sp
  63454. Starting with the 2015.8.0 release of Salt, the Linode driver uses Linode\(aqs
  63455. native REST API. There are no external dependencies required to use the
  63456. Linode driver, other than a Linode account.
  63457. .SS Provider Configuration
  63458. .sp
  63459. Linode requires a single API key, but the default root password for new
  63460. instances also needs to be set. The password needs to be eight characters
  63461. and contain lowercase, uppercase, and numbers.
  63462. .sp
  63463. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  63464. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  63465. .INDENT 0.0
  63466. .INDENT 3.5
  63467. .sp
  63468. .nf
  63469. .ft C
  63470. my\-linode\-config:
  63471. apikey: \(aqasldkgfakl;sdfjsjaslfjaklsdjf;askldjfaaklsjdfhasldsadfghdkf\(aq
  63472. password: \(aqF00barbaz\(aq
  63473. driver: linode
  63474. .ft P
  63475. .fi
  63476. .UNINDENT
  63477. .UNINDENT
  63478. .sp
  63479. \fBNOTE:\fP
  63480. .INDENT 0.0
  63481. .INDENT 3.5
  63482. Changed in version 2015.8.0.
  63483. .sp
  63484. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63485. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63486. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63487. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63488. to use \fBprovider\fP to refer to provider configurations that you define.
  63489. .UNINDENT
  63490. .UNINDENT
  63491. .SS Profile Configuration
  63492. .sp
  63493. Linode profiles require a \fBprovider\fP, \fBsize\fP, \fBimage\fP, and \fBlocation\fP\&. Set up an initial profile
  63494. at \fB/etc/salt/cloud.profiles\fP or \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  63495. .INDENT 0.0
  63496. .INDENT 3.5
  63497. .sp
  63498. .nf
  63499. .ft C
  63500. linode_1024:
  63501. provider: my\-linode\-config
  63502. size: Linode 2GB
  63503. image: CentOS 7
  63504. location: London, England, UK
  63505. .ft P
  63506. .fi
  63507. .UNINDENT
  63508. .UNINDENT
  63509. .sp
  63510. The profile can be realized now with a salt command:
  63511. .INDENT 0.0
  63512. .INDENT 3.5
  63513. .sp
  63514. .nf
  63515. .ft C
  63516. salt\-cloud \-p linode_1024 linode\-instance
  63517. .ft P
  63518. .fi
  63519. .UNINDENT
  63520. .UNINDENT
  63521. .sp
  63522. This will create an salt minion instance named \fBlinode\-instance\fP in Linode. If the command was
  63523. executed on the salt\-master, its Salt key will automatically be signed on the master.
  63524. .sp
  63525. Once the instance has been created with a salt\-minion installed, connectivity to
  63526. it can be verified with Salt:
  63527. .INDENT 0.0
  63528. .INDENT 3.5
  63529. .sp
  63530. .nf
  63531. .ft C
  63532. salt linode\-instance test.version
  63533. .ft P
  63534. .fi
  63535. .UNINDENT
  63536. .UNINDENT
  63537. .SS Listing Sizes
  63538. .sp
  63539. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  63540. command:
  63541. .INDENT 0.0
  63542. .INDENT 3.5
  63543. .sp
  63544. .nf
  63545. .ft C
  63546. # salt\-cloud \-\-list\-sizes my\-linode\-config
  63547. my\-linode\-config:
  63548. \-\-\-\-\-\-\-\-\-\-
  63549. linode:
  63550. \-\-\-\-\-\-\-\-\-\-
  63551. Linode 2GB:
  63552. \-\-\-\-\-\-\-\-\-\-
  63553. AVAIL:
  63554. \-\-\-\-\-\-\-\-\-\-
  63555. 10:
  63556. 500
  63557. 11:
  63558. 500
  63559. 2:
  63560. 500
  63561. 3:
  63562. 500
  63563. 4:
  63564. 500
  63565. 6:
  63566. 500
  63567. 7:
  63568. 500
  63569. 8:
  63570. 500
  63571. 9:
  63572. 500
  63573. CORES:
  63574. 1
  63575. DISK:
  63576. 50
  63577. HOURLY:
  63578. 0.015
  63579. LABEL:
  63580. Linode 2GB
  63581. PLANID:
  63582. 2
  63583. PRICE:
  63584. 10.0
  63585. RAM:
  63586. 2048
  63587. XFER:
  63588. 2000
  63589. \&...SNIP...
  63590. .ft P
  63591. .fi
  63592. .UNINDENT
  63593. .UNINDENT
  63594. .SS Listing Images
  63595. .sp
  63596. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  63597. command:
  63598. .INDENT 0.0
  63599. .INDENT 3.5
  63600. .sp
  63601. .nf
  63602. .ft C
  63603. # salt\-cloud \-\-list\-images my\-linode\-config
  63604. my\-linode\-config:
  63605. \-\-\-\-\-\-\-\-\-\-
  63606. linode:
  63607. \-\-\-\-\-\-\-\-\-\-
  63608. Arch Linux 2015.02:
  63609. \-\-\-\-\-\-\-\-\-\-
  63610. CREATE_DT:
  63611. 2015\-02\-20 14:17:16.0
  63612. DISTRIBUTIONID:
  63613. 138
  63614. IS64BIT:
  63615. 1
  63616. LABEL:
  63617. Arch Linux 2015.02
  63618. MINIMAGESIZE:
  63619. 800
  63620. REQUIRESPVOPSKERNEL:
  63621. 1
  63622. \&...SNIP...
  63623. .ft P
  63624. .fi
  63625. .UNINDENT
  63626. .UNINDENT
  63627. .SS Listing Locations
  63628. .sp
  63629. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  63630. command:
  63631. .INDENT 0.0
  63632. .INDENT 3.5
  63633. .sp
  63634. .nf
  63635. .ft C
  63636. # salt\-cloud \-\-list\-locations my\-linode\-config
  63637. my\-linode\-config:
  63638. \-\-\-\-\-\-\-\-\-\-
  63639. linode:
  63640. \-\-\-\-\-\-\-\-\-\-
  63641. Atlanta, GA, USA:
  63642. \-\-\-\-\-\-\-\-\-\-
  63643. ABBR:
  63644. atlanta
  63645. DATACENTERID:
  63646. 4
  63647. LOCATION:
  63648. Atlanta, GA, USA
  63649. \&...SNIP...
  63650. .ft P
  63651. .fi
  63652. .UNINDENT
  63653. .UNINDENT
  63654. .SS Linode Specific Settings
  63655. .sp
  63656. There are several options outlined below that can be added to either the Linode
  63657. provider of profile configuration files. Some options are mandatory and are
  63658. properly labeled below but typically also include a hard\-coded default.
  63659. .SS image
  63660. .sp
  63661. Image is used to define what Operating System image should be used for the
  63662. instance. Examples are \fBUbuntu 14.04 LTS\fP and \fBCentOS 7\fP\&. This option should
  63663. be specified in the profile config. Required.
  63664. .SS location
  63665. .sp
  63666. Location is used to define which Linode data center the instance will reside in.
  63667. Required.
  63668. .SS size
  63669. .sp
  63670. Size is used to define the instance\(aqs "plan type" which includes memory, storage,
  63671. and price. Required.
  63672. .SS assign_private_ip
  63673. .sp
  63674. New in version 2016.3.0.
  63675. .sp
  63676. Assigns a private IP address to a Linode when set to True. Default is False.
  63677. .SS ssh_interface
  63678. .sp
  63679. New in version 2016.3.0.
  63680. .sp
  63681. Specify whether to use a public or private IP for the deploy script. Valid options
  63682. are:
  63683. .INDENT 0.0
  63684. .IP \(bu 2
  63685. public_ips: The salt\-master is hosted outside of Linode. Default.
  63686. .IP \(bu 2
  63687. private_ips: The salt\-master is also hosted within Linode.
  63688. .UNINDENT
  63689. .sp
  63690. If specifying \fBprivate_ips\fP, the Linodes must be hosted within the same data
  63691. center and have the Network Helper enabled on your entire account. The instance
  63692. that is running the Salt\-Cloud provisioning command must also have a private IP
  63693. assigned to it.
  63694. .sp
  63695. Newer accounts created on Linode have the Network Helper setting enabled by default,
  63696. account\-wide. Legacy accounts do not have this setting enabled by default. To enable
  63697. the Network Helper on your Linode account, please see \fI\%Linode\(aqs Network Helper\fP
  63698. documentation.
  63699. .sp
  63700. If you\(aqre running into problems, be sure to restart the instance that is running
  63701. Salt Cloud after adding its own private IP address or enabling the Network
  63702. Helper.
  63703. .SS clonefrom
  63704. .sp
  63705. Setting the clonefrom option to a specified instance enables the new instance to be
  63706. cloned from the named instance instead of being created from scratch. If using the
  63707. clonefrom option, it is likely a good idea to also specify \fBscript_args: \-C\fP if a
  63708. minion is already installed on the to\-be\-cloned instance. See the \fI\%Cloning\fP section
  63709. below for more information.
  63710. .SS Cloning
  63711. .sp
  63712. To clone a Linode, add a profile with a \fBclonefrom\fP key, and a \fBscript_args: \-C\fP\&.
  63713. \fBclonefrom\fP should be the name of the Linode that is the source for the clone.
  63714. \fBscript_args: \-C\fP passes a \-C to the salt\-bootstrap script, which only configures
  63715. the minion and doesn\(aqt try to install a new copy of salt\-minion. This way the minion
  63716. gets new keys and the keys get pre\-seeded on the master, and the \fB/etc/salt/minion\fP
  63717. file has the right minion \(aqid:\(aq declaration.
  63718. .sp
  63719. Cloning requires a post 2015\-02\-01 salt\-bootstrap.
  63720. .sp
  63721. It is safest to clone a stopped machine. To stop a machine run
  63722. .INDENT 0.0
  63723. .INDENT 3.5
  63724. .sp
  63725. .nf
  63726. .ft C
  63727. salt\-cloud \-a stop machine_to_clone
  63728. .ft P
  63729. .fi
  63730. .UNINDENT
  63731. .UNINDENT
  63732. .sp
  63733. To create a new machine based on another machine, add an entry to your linode
  63734. cloud profile that looks like this:
  63735. .INDENT 0.0
  63736. .INDENT 3.5
  63737. .sp
  63738. .nf
  63739. .ft C
  63740. li\-clone:
  63741. provider: my\-linode\-config
  63742. clonefrom: machine_to_clone
  63743. script_args: \-C \-F
  63744. .ft P
  63745. .fi
  63746. .UNINDENT
  63747. .UNINDENT
  63748. .sp
  63749. Then run salt\-cloud as normal, specifying \fB\-p li\-clone\fP\&. The profile name can
  63750. be anything; It doesn\(aqt have to be \fBli\-clone\fP\&.
  63751. .sp
  63752. \fBclonefrom:\fP is the name of an existing machine in Linode from which to clone.
  63753. \fBScript_args: \-C \-F\fP is necessary to avoid re\-deploying Salt via salt\-bootstrap.
  63754. \fB\-C\fP will just re\-deploy keys so the new minion will not have a duplicate key
  63755. or minion_id on the Master, and \fB\-F\fP will force a rewrite of the Minion config
  63756. file on the new Minion. If \fB\-F\fP isn\(aqt provided, the new Minion will have the
  63757. \fBmachine_to_clone\fP\(aqs Minion ID, instead of its own Minion ID, which can cause
  63758. problems.
  63759. .sp
  63760. \fBNOTE:\fP
  63761. .INDENT 0.0
  63762. .INDENT 3.5
  63763. \fI\%Pull Request #733\fP to the salt\-bootstrap repo makes the \fB\-F\fP argument
  63764. non\-necessary. Once that change is released into a stable version of the
  63765. Bootstrap Script, the \fB\-C\fP argument will be sufficient for the \fBscript_args\fP
  63766. setting.
  63767. .UNINDENT
  63768. .UNINDENT
  63769. .sp
  63770. If the \fBmachine_to_clone\fP does not have Salt installed on it, refrain from using
  63771. the \fBscript_args: \-C \-F\fP altogether, because the new machine will need to have
  63772. Salt installed.
  63773. .SS Getting Started With LXC
  63774. .sp
  63775. The LXC module is designed to install Salt in an LXC container on a controlled
  63776. and possibly remote minion.
  63777. .sp
  63778. In other words, Salt will connect to a minion, then from that minion:
  63779. .INDENT 0.0
  63780. .IP \(bu 2
  63781. Provision and configure a container for networking access
  63782. .IP \(bu 2
  63783. Use those modules to deploy salt and re\-attach to master.
  63784. .INDENT 2.0
  63785. .INDENT 3.5
  63786. .INDENT 0.0
  63787. .IP \(bu 2
  63788. \fBlxc runner\fP
  63789. .IP \(bu 2
  63790. \fBlxc module\fP
  63791. .IP \(bu 2
  63792. \fBseed\fP
  63793. .UNINDENT
  63794. .UNINDENT
  63795. .UNINDENT
  63796. .UNINDENT
  63797. .SS Limitations
  63798. .INDENT 0.0
  63799. .IP \(bu 2
  63800. You can only act on one minion and one provider at a time.
  63801. .IP \(bu 2
  63802. Listing images must be targeted to a particular LXC provider (nothing will be
  63803. outputted with \fBall\fP)
  63804. .UNINDENT
  63805. .SS Operation
  63806. .sp
  63807. Salt\(aqs LXC support does use \fBlxc.init\fP
  63808. via the \fBlxc.cloud_init_interface\fP
  63809. and seeds the minion via \fBseed.mkconfig\fP\&.
  63810. .sp
  63811. You can provide to those lxc VMs a profile and a network profile like if
  63812. you were directly using the minion module.
  63813. .sp
  63814. Order of operation:
  63815. .INDENT 0.0
  63816. .IP \(bu 2
  63817. Create the LXC container on the desired minion (clone or template)
  63818. .IP \(bu 2
  63819. Change LXC config options (if any need to be changed)
  63820. .IP \(bu 2
  63821. Start container
  63822. .IP \(bu 2
  63823. Change base passwords if any
  63824. .IP \(bu 2
  63825. Change base DNS configuration if necessary
  63826. .IP \(bu 2
  63827. Wait for LXC container to be up and ready for ssh
  63828. .IP \(bu 2
  63829. Test SSH connection and bailout in error
  63830. .IP \(bu 2
  63831. Upload deploy script and seeds, then re\-attach the minion.
  63832. .UNINDENT
  63833. .SS Provider configuration
  63834. .sp
  63835. Here is a simple provider configuration:
  63836. .INDENT 0.0
  63837. .INDENT 3.5
  63838. .sp
  63839. .nf
  63840. .ft C
  63841. # Note: This example goes in /etc/salt/cloud.providers or any file in the
  63842. # /etc/salt/cloud.providers.d/ directory.
  63843. devhost10\-lxc:
  63844. target: devhost10
  63845. driver: lxc
  63846. .ft P
  63847. .fi
  63848. .UNINDENT
  63849. .UNINDENT
  63850. .sp
  63851. \fBNOTE:\fP
  63852. .INDENT 0.0
  63853. .INDENT 3.5
  63854. Changed in version 2015.8.0.
  63855. .sp
  63856. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  63857. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  63858. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  63859. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  63860. to use \fBprovider\fP to refer to provider configurations that you define.
  63861. .UNINDENT
  63862. .UNINDENT
  63863. .SS Profile configuration
  63864. .sp
  63865. Please read tutorial\-lxc before anything else.
  63866. And specially tutorial\-lxc\-profiles\&.
  63867. .sp
  63868. Here are the options to configure your containers:
  63869. .INDENT 0.0
  63870. .INDENT 3.5
  63871. .INDENT 0.0
  63872. .TP
  63873. .B target
  63874. Host minion id to install the lxc Container into
  63875. .TP
  63876. .B lxc_profile
  63877. Name of the profile or inline options for the LXC vm creation/cloning,
  63878. please see tutorial\-lxc\-profiles\-container\&.
  63879. .TP
  63880. .B network_profile
  63881. Name of the profile or inline options for the LXC vm network settings,
  63882. please see tutorial\-lxc\-profiles\-network\&.
  63883. .TP
  63884. .B nic_opts
  63885. Totally optional.
  63886. Per interface new\-style configuration options mappings which will
  63887. override any profile default option:
  63888. .INDENT 7.0
  63889. .INDENT 3.5
  63890. .sp
  63891. .nf
  63892. .ft C
  63893. eth0: {\(aqmac\(aq: \(aq00:16:3e:01:29:40\(aq,
  63894. \(aqgateway\(aq: None, (default)
  63895. \(aqlink\(aq: \(aqbr0\(aq, (default)
  63896. \(aqgateway\(aq: None, (default)
  63897. \(aqnetmask\(aq: \(aq\(aq, (default)
  63898. \(aqip\(aq: \(aq22.1.4.25\(aq}}
  63899. .ft P
  63900. .fi
  63901. .UNINDENT
  63902. .UNINDENT
  63903. .TP
  63904. .B password
  63905. password for root and sysadmin users
  63906. .TP
  63907. .B dnsservers
  63908. List of DNS servers to use. This is optional.
  63909. .TP
  63910. .B minion
  63911. minion configuration (see Minion Configuration in Salt Cloud)
  63912. .TP
  63913. .B bootstrap_delay
  63914. specify the time to wait (in seconds) between container creation
  63915. and salt bootstrap execution. It is useful to ensure that all essential services
  63916. have started before the bootstrap script is executed. By default there\(aqs no
  63917. wait time between container creation and bootstrap unless you are on systemd
  63918. where we wait that the system is no more in starting state.
  63919. .TP
  63920. .B bootstrap_shell
  63921. shell for bootstraping script (default: /bin/sh)
  63922. .TP
  63923. .B script
  63924. defaults to salt\-boostrap
  63925. .TP
  63926. .B script_args
  63927. arguments which are given to the bootstrap script.
  63928. the {0} placeholder will be replaced by the path which contains the
  63929. minion config and key files, eg:
  63930. .INDENT 7.0
  63931. .INDENT 3.5
  63932. .sp
  63933. .nf
  63934. .ft C
  63935. script_args="\-c {0}"
  63936. .ft P
  63937. .fi
  63938. .UNINDENT
  63939. .UNINDENT
  63940. .UNINDENT
  63941. .UNINDENT
  63942. .UNINDENT
  63943. .sp
  63944. Using profiles:
  63945. .INDENT 0.0
  63946. .INDENT 3.5
  63947. .sp
  63948. .nf
  63949. .ft C
  63950. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  63951. # /etc/salt/cloud.profiles.d/ directory.
  63952. devhost10\-lxc:
  63953. provider: devhost10\-lxc
  63954. lxc_profile: foo
  63955. network_profile: bar
  63956. minion:
  63957. master: 10.5.0.1
  63958. master_port: 4506
  63959. .ft P
  63960. .fi
  63961. .UNINDENT
  63962. .UNINDENT
  63963. .sp
  63964. Using inline profiles (eg to override the network bridge):
  63965. .INDENT 0.0
  63966. .INDENT 3.5
  63967. .sp
  63968. .nf
  63969. .ft C
  63970. devhost11\-lxc:
  63971. provider: devhost10\-lxc
  63972. lxc_profile:
  63973. clone_from: foo
  63974. network_profile:
  63975. etho:
  63976. link: lxcbr0
  63977. minion:
  63978. master: 10.5.0.1
  63979. master_port: 4506
  63980. .ft P
  63981. .fi
  63982. .UNINDENT
  63983. .UNINDENT
  63984. .sp
  63985. Using a lxc template instead of a clone:
  63986. .INDENT 0.0
  63987. .INDENT 3.5
  63988. .sp
  63989. .nf
  63990. .ft C
  63991. devhost11\-lxc:
  63992. provider: devhost10\-lxc
  63993. lxc_profile:
  63994. template: ubuntu
  63995. # options:
  63996. # release: trusty
  63997. network_profile:
  63998. etho:
  63999. link: lxcbr0
  64000. minion:
  64001. master: 10.5.0.1
  64002. master_port: 4506
  64003. .ft P
  64004. .fi
  64005. .UNINDENT
  64006. .UNINDENT
  64007. .sp
  64008. Static ip:
  64009. .INDENT 0.0
  64010. .INDENT 3.5
  64011. .sp
  64012. .nf
  64013. .ft C
  64014. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  64015. # /etc/salt/cloud.profiles.d/ directory.
  64016. devhost10\-lxc:
  64017. provider: devhost10\-lxc
  64018. nic_opts:
  64019. eth0:
  64020. ipv4: 10.0.3.9
  64021. minion:
  64022. master: 10.5.0.1
  64023. master_port: 4506
  64024. .ft P
  64025. .fi
  64026. .UNINDENT
  64027. .UNINDENT
  64028. .sp
  64029. DHCP:
  64030. .INDENT 0.0
  64031. .INDENT 3.5
  64032. .sp
  64033. .nf
  64034. .ft C
  64035. # Note: This example would go in /etc/salt/cloud.profiles or any file in the
  64036. # /etc/salt/cloud.profiles.d/ directory.
  64037. devhost10\-lxc:
  64038. provider: devhost10\-lxc
  64039. minion:
  64040. master: 10.5.0.1
  64041. master_port: 4506
  64042. .ft P
  64043. .fi
  64044. .UNINDENT
  64045. .UNINDENT
  64046. .SS Driver Support
  64047. .INDENT 0.0
  64048. .IP \(bu 2
  64049. Container creation
  64050. .IP \(bu 2
  64051. Image listing (LXC templates)
  64052. .IP \(bu 2
  64053. Running container information (IP addresses, etc.)
  64054. .UNINDENT
  64055. .SS Getting Started With 1and1
  64056. .sp
  64057. 1&1 is one of the world’s leading Web hosting providers. 1&1 currently offers
  64058. a wide range of Web hosting products, including email solutions and high\-end
  64059. servers in 10 different countries including Germany, Spain, Great Britain
  64060. and the United States. From domains to 1&1 MyWebsite to eBusiness solutions
  64061. like Cloud Hosting and Web servers for complex tasks, 1&1 is well placed to deliver
  64062. a high quality service to its customers. All 1&1 products are hosted in
  64063. 1&1‘s high\-performance, green data centers in the USA and Europe.
  64064. .SS Dependencies
  64065. .INDENT 0.0
  64066. .IP \(bu 2
  64067. 1and1 >= 1.2.0
  64068. .UNINDENT
  64069. .SS Configuration
  64070. .INDENT 0.0
  64071. .IP \(bu 2
  64072. Using the new format, set up the cloud configuration at
  64073. \fB/etc/salt/cloud.providers\fP or
  64074. \fB/etc/salt/cloud.providers.d/oneandone.conf\fP:
  64075. .UNINDENT
  64076. .INDENT 0.0
  64077. .INDENT 3.5
  64078. .sp
  64079. .nf
  64080. .ft C
  64081. my\-oneandone\-config:
  64082. driver: oneandone
  64083. # Set the location of the salt\-master
  64084. #
  64085. minion:
  64086. master: saltmaster.example.com
  64087. # Configure oneandone authentication credentials
  64088. #
  64089. api_token: <api_token>
  64090. ssh_private_key: /path/to/id_rsa
  64091. ssh_public_key: /path/to/id_rsa.pub
  64092. .ft P
  64093. .fi
  64094. .UNINDENT
  64095. .UNINDENT
  64096. .SS Authentication
  64097. .sp
  64098. The \fBapi_key\fP is used for API authorization. This token can be obtained
  64099. from the CloudPanel in the Management section below Users.
  64100. .SS Profiles
  64101. .sp
  64102. Here is an example of a profile:
  64103. .INDENT 0.0
  64104. .INDENT 3.5
  64105. .sp
  64106. .nf
  64107. .ft C
  64108. oneandone_fixed_size:
  64109. provider: my\-oneandone\-config
  64110. description: Small instance size server
  64111. fixed_instance_size: S
  64112. appliance_id: 8E3BAA98E3DFD37857810E0288DD8FBA
  64113. oneandone_custom_size:
  64114. provider: my\-oneandone\-config
  64115. description: Custom size server
  64116. vcore: 2
  64117. cores_per_processor: 2
  64118. ram: 8
  64119. appliance_id: 8E3BAA98E3DFD37857810E0288DD8FBA
  64120. hdds:
  64121. \-
  64122. is_main: true
  64123. size: 20
  64124. \-
  64125. is_main: false
  64126. size: 20
  64127. .ft P
  64128. .fi
  64129. .UNINDENT
  64130. .UNINDENT
  64131. .sp
  64132. The following list explains some of the important properties.
  64133. .INDENT 0.0
  64134. .TP
  64135. .B fixed_instance_size_id
  64136. When creating a server, either \fBfixed_instance_size_id\fP or custom hardware params
  64137. containing \fBvcore\fP, \fBcores_per_processor\fP, \fBram\fP, and \fBhdds\fP must be provided.
  64138. Can be one of the IDs listed among the output of the following command:
  64139. .UNINDENT
  64140. .INDENT 0.0
  64141. .INDENT 3.5
  64142. .sp
  64143. .nf
  64144. .ft C
  64145. salt\-cloud \-\-list\-sizes oneandone
  64146. .ft P
  64147. .fi
  64148. .UNINDENT
  64149. .UNINDENT
  64150. .INDENT 0.0
  64151. .TP
  64152. .B vcore
  64153. Total amount of processors.
  64154. .TP
  64155. .B cores_per_processor
  64156. Number of cores per processor.
  64157. .TP
  64158. .B ram
  64159. RAM memory size in GB.
  64160. .TP
  64161. .B hdds
  64162. Hard disks.
  64163. .TP
  64164. .B appliance_id
  64165. ID of the image that will be installed on server.
  64166. Can be one of the IDs listed in the output of the following command:
  64167. .UNINDENT
  64168. .INDENT 0.0
  64169. .INDENT 3.5
  64170. .sp
  64171. .nf
  64172. .ft C
  64173. salt\-cloud \-\-list\-images oneandone
  64174. .ft P
  64175. .fi
  64176. .UNINDENT
  64177. .UNINDENT
  64178. .INDENT 0.0
  64179. .TP
  64180. .B datacenter_id
  64181. ID of the datacenter where the server will be created.
  64182. Can be one of the IDs listed in the output of the following command:
  64183. .UNINDENT
  64184. .INDENT 0.0
  64185. .INDENT 3.5
  64186. .sp
  64187. .nf
  64188. .ft C
  64189. salt\-cloud \-\-list\-locations oneandone
  64190. .ft P
  64191. .fi
  64192. .UNINDENT
  64193. .UNINDENT
  64194. .INDENT 0.0
  64195. .TP
  64196. .B description
  64197. Description of the server.
  64198. .TP
  64199. .B password
  64200. Password of the server. Password must contain more than 8 characters
  64201. using uppercase letters, numbers and other special symbols.
  64202. .TP
  64203. .B power_on
  64204. Power on server after creation. Default is set to true.
  64205. .TP
  64206. .B firewall_policy_id
  64207. Firewall policy ID. If it is not provided, the server will assign
  64208. the best firewall policy, creating a new one if necessary. If the parameter
  64209. is sent with a 0 value, the server will be created with all ports blocked.
  64210. .TP
  64211. .B ip_id
  64212. IP address ID.
  64213. .TP
  64214. .B load_balancer_id
  64215. Load balancer ID.
  64216. .TP
  64217. .B monitoring_policy_id
  64218. Monitoring policy ID.
  64219. .TP
  64220. .B deploy
  64221. Set to False if Salt should not be installed on the node.
  64222. .TP
  64223. .B wait_for_timeout
  64224. The timeout to wait in seconds for provisioning resources such as servers.
  64225. The default wait_for_timeout is 15 minutes.
  64226. .TP
  64227. .B public_key_ids
  64228. List of public key IDs (ssh key).
  64229. .UNINDENT
  64230. .SS Functions
  64231. .INDENT 0.0
  64232. .IP \(bu 2
  64233. Create an SSH key
  64234. .UNINDENT
  64235. .INDENT 0.0
  64236. .INDENT 3.5
  64237. .sp
  64238. .nf
  64239. .ft C
  64240. sudo salt\-cloud \-f create_ssh_key my\-oneandone\-config name=\(aqSaltTest\(aq description=\(aqSaltTestDescription\(aq
  64241. .ft P
  64242. .fi
  64243. .UNINDENT
  64244. .UNINDENT
  64245. .INDENT 0.0
  64246. .IP \(bu 2
  64247. Create a block storage
  64248. .UNINDENT
  64249. .INDENT 0.0
  64250. .INDENT 3.5
  64251. .sp
  64252. .nf
  64253. .ft C
  64254. sudo salt\-cloud \-f create_block_storage my\-oneandone\-config name=\(aqSaltTest2\(aq description=\(aqSaltTestDescription\(aq size=50 datacenter_id=\(aq5091F6D8CBFEF9C26ACE957C652D5D49\(aq
  64255. .ft P
  64256. .fi
  64257. .UNINDENT
  64258. .UNINDENT
  64259. .sp
  64260. For more information concerning cloud profiles, see here\&.
  64261. .SS Getting Started with OpenNebula
  64262. .sp
  64263. OpenNebula is an open\-source solution for the comprehensive management of virtualized data centers to enable the mixed
  64264. use of private, public, and hybrid IaaS clouds.
  64265. .SS Dependencies
  64266. .sp
  64267. The driver requires Python\(aqs \fBlxml\fP library to be installed. It also requires an OpenNebula installation running
  64268. version \fB4.12\fP or greater.
  64269. .SS Configuration
  64270. .sp
  64271. The following example illustrates some of the options that can be set. These parameters are discussed in more detail
  64272. below.
  64273. .INDENT 0.0
  64274. .INDENT 3.5
  64275. .sp
  64276. .nf
  64277. .ft C
  64278. # Note: This example is for /etc/salt/cloud.providers or any file in the
  64279. # /etc/salt/cloud.providers.d/ directory.
  64280. my\-opennebula\-provider:
  64281. # Set up the location of the salt master
  64282. #
  64283. minion:
  64284. master: saltmaster.example.com
  64285. # Define xml_rpc setting which Salt\-Cloud uses to connect to the OpenNebula API. Required.
  64286. #
  64287. xml_rpc: http://localhost:2633/RPC2
  64288. # Define the OpenNebula access credentials. This can be the main "oneadmin" user that OpenNebula uses as the
  64289. # OpenNebula main admin, or it can be a user defined in the OpenNebula instance. Required.
  64290. #
  64291. user: oneadmin
  64292. password: JHGhgsayu32jsa
  64293. # Define the private key location that is used by OpenNebula to access new VMs. This setting is required if
  64294. # provisioning new VMs or accessing VMs previously created with the associated public key.
  64295. #
  64296. private_key: /path/to/private/key
  64297. driver: opennebula
  64298. .ft P
  64299. .fi
  64300. .UNINDENT
  64301. .UNINDENT
  64302. .SS Access Credentials
  64303. .sp
  64304. The Salt Cloud driver for OpenNebula was written using OpenNebula\(aqs native XML RPC API. Every interaction with
  64305. OpenNebula\(aqs API requires a \fBusername\fP and \fBpassword\fP to make the connection from the machine running Salt Cloud
  64306. to API running on the OpenNebula instance. Based on the access credentials passed in, OpenNebula filters the commands
  64307. that the user can perform or the information for which the user can query. For example, the images that a user can
  64308. view with a \fB\-\-list\-images\fP command are the images that the connected user and the connected user\(aqs groups can access.
  64309. .SS Key Pairs
  64310. .sp
  64311. Salt Cloud needs to be able to access a virtual machine in order to install the Salt Minion by using a public/private
  64312. key pair. The virtual machine will need to be seeded with the public key, which is laid down by the OpenNebula
  64313. template. Salt Cloud then uses the corresponding private key, provided by the \fBprivate_key\fP setting in the cloud
  64314. provider file, to SSH into the new virtual machine.
  64315. .sp
  64316. To seed the virtual machine with the public key, the public key must be added to the OpenNebula template. If using the
  64317. OpenNebula web interface, navigate to the template, then click \fBUpdate\fP\&. Click the \fBContext\fP tab. Under the
  64318. \fBNetwork & SSH\fP section, click \fBAdd SSH Contextualization\fP and paste the public key in the \fBPublic Key\fP box.
  64319. Don\(aqt forget to save your changes by clicking the green \fBUpdate\fP button.
  64320. .sp
  64321. \fBNOTE:\fP
  64322. .INDENT 0.0
  64323. .INDENT 3.5
  64324. The key pair must not have a pass\-phrase.
  64325. .UNINDENT
  64326. .UNINDENT
  64327. .SS Cloud Profiles
  64328. .sp
  64329. Set up an initial profile at either \fB/etc/salt/cloud.profiles\fP or the \fB/etc/salt/cloud.profiles.d/\fP directory.
  64330. .INDENT 0.0
  64331. .INDENT 3.5
  64332. .sp
  64333. .nf
  64334. .ft C
  64335. my\-opennebula\-profile:
  64336. provider: my\-opennebula\-provider
  64337. image: Ubuntu\-14.04
  64338. .ft P
  64339. .fi
  64340. .UNINDENT
  64341. .UNINDENT
  64342. .sp
  64343. The profile can now be realized with a salt command:
  64344. .INDENT 0.0
  64345. .INDENT 3.5
  64346. .sp
  64347. .nf
  64348. .ft C
  64349. salt\-cloud \-p my\-opennebula\-profile my\-new\-vm
  64350. .ft P
  64351. .fi
  64352. .UNINDENT
  64353. .UNINDENT
  64354. .sp
  64355. This will create a new instance named \fBmy\-new\-vm\fP in OpenNebula. The minion that is installed on this instance will
  64356. have a minion id of \fBmy\-new\-vm\fP\&. If the command was executed on the salt\-master, its Salt key will automatically be
  64357. signed on the master.
  64358. .sp
  64359. Once the instance has been created with salt\-minion installed, connectivity to it can be verified with Salt:
  64360. .INDENT 0.0
  64361. .INDENT 3.5
  64362. .sp
  64363. .nf
  64364. .ft C
  64365. salt my\-new\-vm test.version
  64366. .ft P
  64367. .fi
  64368. .UNINDENT
  64369. .UNINDENT
  64370. .sp
  64371. OpenNebula uses an image \-\-> template \-\-> virtual machine paradigm where the template draws on the image, or disk,
  64372. and virtual machines are created from templates. Because of this, there is no need to define a \fBsize\fP in the cloud
  64373. profile. The size of the virtual machine is defined in the template.
  64374. .SS Change Disk Size
  64375. .sp
  64376. You can now change the size of a VM on creation by cloning an image and expanding the size. You can accomplish this by
  64377. the following cloud profile settings below.
  64378. .INDENT 0.0
  64379. .INDENT 3.5
  64380. .sp
  64381. .nf
  64382. .ft C
  64383. my\-opennebula\-profile:
  64384. provider: my\-opennebula\-provider
  64385. image: Ubuntu\-14.04
  64386. disk:
  64387. disk0:
  64388. disk_type: clone
  64389. size: 8096
  64390. image: centos7\-base\-image\-v2
  64391. disk1:
  64392. disk_type: volatile
  64393. type: swap
  64394. size: 4096
  64395. disk2:
  64396. disk_type: volatile
  64397. size: 4096
  64398. type: fs
  64399. format: ext3
  64400. .ft P
  64401. .fi
  64402. .UNINDENT
  64403. .UNINDENT
  64404. .sp
  64405. There are currently two different disk_types a user can use: volatile and clone. Clone which is required when specifying devices
  64406. will clone an image in open nebula and will expand it to the size specified in the profile settings. By default this will clone
  64407. the image attached to the template specified in the profile but a user can add the \fIimage\fP argument under the disk definition.
  64408. .sp
  64409. For example the profile below will not use Ubuntu\-14.04 for the cloned disk image. It will use the centos7\-base\-image image:
  64410. .INDENT 0.0
  64411. .INDENT 3.5
  64412. .sp
  64413. .nf
  64414. .ft C
  64415. my\-opennebula\-profile:
  64416. provider: my\-opennebula\-provider
  64417. image: Ubuntu\-14.04
  64418. disk:
  64419. disk0:
  64420. disk_type: clone
  64421. size: 8096
  64422. image: centos7\-base\-image
  64423. .ft P
  64424. .fi
  64425. .UNINDENT
  64426. .UNINDENT
  64427. .sp
  64428. If you want to use the image attached to the template set in the profile you can simply remove the image argument as show below.
  64429. The profile below will clone the image Ubuntu\-14.04 and expand the disk to 8GB.:
  64430. .INDENT 0.0
  64431. .INDENT 3.5
  64432. .sp
  64433. .nf
  64434. .ft C
  64435. my\-opennebula\-profile:
  64436. provider: my\-opennebula\-provider
  64437. image: Ubuntu\-14.04
  64438. disk:
  64439. disk0:
  64440. disk_type: clone
  64441. size: 8096
  64442. .ft P
  64443. .fi
  64444. .UNINDENT
  64445. .UNINDENT
  64446. .sp
  64447. A user can also currently specify swap or fs disks. Below is an example of this profile setting:
  64448. .INDENT 0.0
  64449. .INDENT 3.5
  64450. .sp
  64451. .nf
  64452. .ft C
  64453. my\-opennebula\-profile:
  64454. provider: my\-opennebula\-provider
  64455. image: Ubuntu\-14.04
  64456. disk:
  64457. disk0:
  64458. disk_type: clone
  64459. size: 8096
  64460. disk1:
  64461. disk_type: volatile
  64462. type: swap
  64463. size: 4096
  64464. disk2:
  64465. disk_type: volatile
  64466. size: 4096
  64467. type: fs
  64468. format: ext3
  64469. .ft P
  64470. .fi
  64471. .UNINDENT
  64472. .UNINDENT
  64473. .sp
  64474. The example above will attach both a swap disk and a ext3 filesystem with a size of 4GB. To note if you define other disks you have
  64475. to define the image disk to clone because the template will write over the entire \(aqDISK=[]\(aq template definition on creation.
  64476. .SS Required Settings
  64477. .sp
  64478. The following settings are always required for OpenNebula:
  64479. .INDENT 0.0
  64480. .INDENT 3.5
  64481. .sp
  64482. .nf
  64483. .ft C
  64484. my\-opennebula\-config:
  64485. xml_rpc: http://localhost:26633/RPC2
  64486. user: oneadmin
  64487. password: JHGhgsayu32jsa
  64488. driver: opennebula
  64489. .ft P
  64490. .fi
  64491. .UNINDENT
  64492. .UNINDENT
  64493. .SS Required Settings for VM Deployment
  64494. .sp
  64495. The settings defined in the \fI\%Required Settings\fP section are required for all interactions with
  64496. OpenNebula. However, when deploying a virtual machine via Salt Cloud, an additional setting, \fBprivate_key\fP, is also
  64497. required:
  64498. .INDENT 0.0
  64499. .INDENT 3.5
  64500. .sp
  64501. .nf
  64502. .ft C
  64503. my\-opennebula\-config:
  64504. private_key: /path/to/private/key
  64505. .ft P
  64506. .fi
  64507. .UNINDENT
  64508. .UNINDENT
  64509. .SS Listing Images
  64510. .sp
  64511. Images can be queried on OpenNebula by passing the \fB\-\-list\-images\fP argument to Salt Cloud:
  64512. .INDENT 0.0
  64513. .INDENT 3.5
  64514. .sp
  64515. .nf
  64516. .ft C
  64517. salt\-cloud \-\-list\-images opennebula
  64518. .ft P
  64519. .fi
  64520. .UNINDENT
  64521. .UNINDENT
  64522. .SS Listing Locations
  64523. .sp
  64524. In OpenNebula, locations are defined as \fBhosts\fP\&. Locations, or "hosts", can be querried on OpenNebula by passing the
  64525. \fB\-\-list\-locations\fP argument to Salt Cloud:
  64526. .INDENT 0.0
  64527. .INDENT 3.5
  64528. .sp
  64529. .nf
  64530. .ft C
  64531. salt\-cloud \-\-list\-locations opennebula
  64532. .ft P
  64533. .fi
  64534. .UNINDENT
  64535. .UNINDENT
  64536. .SS Listing Sizes
  64537. .sp
  64538. Sizes are defined by templates in OpenNebula. As such, the \fB\-\-list\-sizes\fP call returns an empty dictionary since
  64539. there are no sizes to return.
  64540. .SS Additional OpenNebula API Functionality
  64541. .sp
  64542. The Salt Cloud driver for OpenNebula was written using OpenNebula\(aqs native XML RPC API. As such, many \fB\-\-function\fP
  64543. and \fB\-\-action\fP calls were added to the OpenNebula driver to enhance support for an OpenNebula infrastructure with
  64544. additional control from Salt Cloud. See the \fBOpenNebula function definitions\fP
  64545. for more information.
  64546. .SS Access via DNS entry instead of IP
  64547. .sp
  64548. Some OpenNebula installations do not assign IP addresses to new VMs, instead they establish the new VM\(aqs hostname based
  64549. on OpenNebula\(aqs name of the VM, and then allocate an IP out of DHCP with dynamic DNS attaching the hostname. This driver
  64550. supports this behavior by adding the entry \fIfqdn_base\fP to the driver configuration or the OpenNebula profile with a value
  64551. matching the base fully\-qualified domain. For example:
  64552. .INDENT 0.0
  64553. .INDENT 3.5
  64554. .sp
  64555. .nf
  64556. .ft C
  64557. # Note: This example is for /etc/salt/cloud.providers or any file in the
  64558. # /etc/salt/cloud.providers.d/ directory.
  64559. my\-opennebula\-provider:
  64560. [...]
  64561. fqdn_base: corp.example.com
  64562. [...]
  64563. .ft P
  64564. .fi
  64565. .UNINDENT
  64566. .UNINDENT
  64567. .SS Getting Started with Openstack
  64568. .sp
  64569. See \fBsalt.cloud.clouds.openstack\fP
  64570. .SS Getting Started With Parallels
  64571. .sp
  64572. Parallels Cloud Server is a product by Parallels that delivers a cloud hosting
  64573. solution. The PARALLELS module for Salt Cloud enables you to manage instances
  64574. hosted using PCS. Further information can be found at:
  64575. .sp
  64576. \fI\%http://www.parallels.com/products/pcs/\fP
  64577. .INDENT 0.0
  64578. .IP \(bu 2
  64579. Using the old format, set up the cloud configuration at \fB/etc/salt/cloud\fP:
  64580. .UNINDENT
  64581. .INDENT 0.0
  64582. .INDENT 3.5
  64583. .sp
  64584. .nf
  64585. .ft C
  64586. # Set up the location of the salt master
  64587. #
  64588. minion:
  64589. master: saltmaster.example.com
  64590. # Set the PARALLELS access credentials (see below)
  64591. #
  64592. PARALLELS.user: myuser
  64593. PARALLELS.password: badpass
  64594. # Set the access URL for your PARALLELS host
  64595. #
  64596. PARALLELS.url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64597. .ft P
  64598. .fi
  64599. .UNINDENT
  64600. .UNINDENT
  64601. .INDENT 0.0
  64602. .IP \(bu 2
  64603. Using the new format, set up the cloud configuration at
  64604. \fB/etc/salt/cloud.providers\fP or
  64605. \fB/etc/salt/cloud.providers.d/parallels.conf\fP:
  64606. .UNINDENT
  64607. .INDENT 0.0
  64608. .INDENT 3.5
  64609. .sp
  64610. .nf
  64611. .ft C
  64612. my\-parallels\-config:
  64613. # Set up the location of the salt master
  64614. #
  64615. minion:
  64616. master: saltmaster.example.com
  64617. # Set the PARALLELS access credentials (see below)
  64618. #
  64619. user: myuser
  64620. password: badpass
  64621. # Set the access URL for your PARALLELS provider
  64622. #
  64623. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64624. driver: parallels
  64625. .ft P
  64626. .fi
  64627. .UNINDENT
  64628. .UNINDENT
  64629. .sp
  64630. \fBNOTE:\fP
  64631. .INDENT 0.0
  64632. .INDENT 3.5
  64633. Changed in version 2015.8.0.
  64634. .sp
  64635. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  64636. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  64637. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  64638. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  64639. to use \fBprovider\fP to refer to provider configurations that you define.
  64640. .UNINDENT
  64641. .UNINDENT
  64642. .SS Access Credentials
  64643. .sp
  64644. The \fBuser\fP, \fBpassword\fP, and \fBurl\fP will be provided to you by your cloud
  64645. host. These are all required in order for the PARALLELS driver to work.
  64646. .SS Cloud Profiles
  64647. .sp
  64648. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  64649. \fB/etc/salt/cloud.profiles.d/parallels.conf\fP:
  64650. .INDENT 0.0
  64651. .INDENT 3.5
  64652. .sp
  64653. .nf
  64654. .ft C
  64655. parallels\-ubuntu:
  64656. provider: my\-parallels\-config
  64657. image: ubuntu\-12.04\-x86_64
  64658. .ft P
  64659. .fi
  64660. .UNINDENT
  64661. .UNINDENT
  64662. .sp
  64663. The profile can be realized now with a salt command:
  64664. .INDENT 0.0
  64665. .INDENT 3.5
  64666. .sp
  64667. .nf
  64668. .ft C
  64669. # salt\-cloud \-p parallels\-ubuntu myubuntu
  64670. .ft P
  64671. .fi
  64672. .UNINDENT
  64673. .UNINDENT
  64674. .sp
  64675. This will create an instance named \fBmyubuntu\fP on the cloud host. The
  64676. minion that is installed on this instance will have an \fBid\fP of \fBmyubuntu\fP\&.
  64677. If the command was executed on the salt\-master, its Salt key will automatically
  64678. be signed on the master.
  64679. .sp
  64680. Once the instance has been created with salt\-minion installed, connectivity to
  64681. it can be verified with Salt:
  64682. .INDENT 0.0
  64683. .INDENT 3.5
  64684. .sp
  64685. .nf
  64686. .ft C
  64687. # salt myubuntu test.version
  64688. .ft P
  64689. .fi
  64690. .UNINDENT
  64691. .UNINDENT
  64692. .SS Required Settings
  64693. .sp
  64694. The following settings are always required for PARALLELS:
  64695. .INDENT 0.0
  64696. .IP \(bu 2
  64697. Using the old cloud configuration format:
  64698. .UNINDENT
  64699. .INDENT 0.0
  64700. .INDENT 3.5
  64701. .sp
  64702. .nf
  64703. .ft C
  64704. PARALLELS.user: myuser
  64705. PARALLELS.password: badpass
  64706. PARALLELS.url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64707. .ft P
  64708. .fi
  64709. .UNINDENT
  64710. .UNINDENT
  64711. .INDENT 0.0
  64712. .IP \(bu 2
  64713. Using the new cloud configuration format:
  64714. .UNINDENT
  64715. .INDENT 0.0
  64716. .INDENT 3.5
  64717. .sp
  64718. .nf
  64719. .ft C
  64720. my\-parallels\-config:
  64721. user: myuser
  64722. password: badpass
  64723. url: https://api.cloud.xmission.com:4465/paci/v1.0/
  64724. driver: parallels
  64725. .ft P
  64726. .fi
  64727. .UNINDENT
  64728. .UNINDENT
  64729. .SS Optional Settings
  64730. .sp
  64731. Unlike other cloud providers in Salt Cloud, Parallels does not utilize a
  64732. \fBsize\fP setting. This is because Parallels allows the end\-user to specify a
  64733. more detailed configuration for their instances than is allowed by many other
  64734. cloud hosts. The following options are available to be used in a profile,
  64735. with their default settings listed.
  64736. .INDENT 0.0
  64737. .INDENT 3.5
  64738. .sp
  64739. .nf
  64740. .ft C
  64741. # Description of the instance. Defaults to the instance name.
  64742. desc: <instance_name>
  64743. # How many CPU cores, and how fast they are (in MHz)
  64744. cpu_number: 1
  64745. cpu_power: 1000
  64746. # How many megabytes of RAM
  64747. ram: 256
  64748. # Bandwidth available, in kbps
  64749. bandwidth: 100
  64750. # How many public IPs will be assigned to this instance
  64751. ip_num: 1
  64752. # Size of the instance disk (in GiB)
  64753. disk_size: 10
  64754. # Username and password
  64755. ssh_username: root
  64756. password: <value from PARALLELS.password>
  64757. # The name of the image, from \(ga\(gasalt\-cloud \-\-list\-images parallels\(ga\(ga
  64758. image: ubuntu\-12.04\-x86_64
  64759. .ft P
  64760. .fi
  64761. .UNINDENT
  64762. .UNINDENT
  64763. .SS Getting Started With ProfitBricks
  64764. .sp
  64765. ProfitBricks provides an enterprise\-grade Infrastructure as a Service (IaaS)
  64766. solution that can be managed through a browser\-based "Data Center Designer"
  64767. (DCD) tool or via an easy to use API. A unique feature of the ProfitBricks
  64768. platform is that it allows you to define your own settings for cores, memory,
  64769. and disk size without being tied to a particular server size.
  64770. .SS Dependencies
  64771. .INDENT 0.0
  64772. .IP \(bu 2
  64773. profitbricks >= 4.1.1
  64774. .UNINDENT
  64775. .SS Configuration
  64776. .INDENT 0.0
  64777. .IP \(bu 2
  64778. Using the new format, set up the cloud configuration at
  64779. \fB/etc/salt/cloud.providers\fP or
  64780. \fB/etc/salt/cloud.providers.d/profitbricks.conf\fP:
  64781. .UNINDENT
  64782. .INDENT 0.0
  64783. .INDENT 3.5
  64784. .sp
  64785. .nf
  64786. .ft C
  64787. my\-profitbricks\-config:
  64788. driver: profitbricks
  64789. # Set the location of the salt\-master
  64790. #
  64791. minion:
  64792. master: saltmaster.example.com
  64793. # Configure ProfitBricks authentication credentials
  64794. #
  64795. username: user@domain.com
  64796. password: 123456
  64797. # datacenter is the UUID of a pre\-existing virtual data center.
  64798. datacenter: 9e6709a0\-6bf9\-4bd6\-8692\-60349c70ce0e
  64799. # delete_volumes is forcing a deletion of all volumes attached to a server on a deletion of a server
  64800. delete_volumes: true
  64801. # Connect to public LAN ID 1.
  64802. public_lan: 1
  64803. ssh_public_key: /path/to/id_rsa.pub
  64804. ssh_private_key: /path/to/id_rsa
  64805. .ft P
  64806. .fi
  64807. .UNINDENT
  64808. .UNINDENT
  64809. .sp
  64810. \fBNOTE:\fP
  64811. .INDENT 0.0
  64812. .INDENT 3.5
  64813. Changed in version 2015.8.0.
  64814. .sp
  64815. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  64816. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  64817. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  64818. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  64819. to use \fBprovider\fP to refer to provider configurations that you define.
  64820. .UNINDENT
  64821. .UNINDENT
  64822. .SS Virtual Data Center
  64823. .sp
  64824. ProfitBricks uses the concept of Virtual Data Centers. These are logically
  64825. separated from one another and allow you to have a self\-contained environment
  64826. for all servers, volumes, networking, snapshots, and so forth.
  64827. .sp
  64828. A list of existing virtual data centers can be retrieved with the following command:
  64829. .INDENT 0.0
  64830. .INDENT 3.5
  64831. .sp
  64832. .nf
  64833. .ft C
  64834. salt\-cloud \-f list_datacenters my\-profitbricks\-config
  64835. .ft P
  64836. .fi
  64837. .UNINDENT
  64838. .UNINDENT
  64839. .sp
  64840. A new data center can be created with the following command:
  64841. .INDENT 0.0
  64842. .INDENT 3.5
  64843. .sp
  64844. .nf
  64845. .ft C
  64846. salt\-cloud \-f create_datacenter my\-profitbricks\-config name=example location=us/las description="my description"
  64847. .ft P
  64848. .fi
  64849. .UNINDENT
  64850. .UNINDENT
  64851. .SS Authentication
  64852. .sp
  64853. The \fBusername\fP and \fBpassword\fP are the same as those used to log into the
  64854. ProfitBricks "Data Center Designer".
  64855. .SS Profiles
  64856. .sp
  64857. Here is an example of a profile:
  64858. .INDENT 0.0
  64859. .INDENT 3.5
  64860. .sp
  64861. .nf
  64862. .ft C
  64863. profitbricks_staging
  64864. provider: my\-profitbricks\-config
  64865. size: Micro Instance
  64866. image_alias: \(aqubuntu:latest\(aq
  64867. # image or image_alias must be provided
  64868. # image: 2f98b678\-6e7e\-11e5\-b680\-52540066fee9
  64869. cores: 2
  64870. ram: 4096
  64871. public_lan: 1
  64872. private_lan: 2
  64873. ssh_public_key: /path/to/id_rsa.pub
  64874. ssh_private_key: /path/to/id_rsa
  64875. ssh_interface: private_lan
  64876. profitbricks_production:
  64877. provider: my\-profitbricks\-config
  64878. image: Ubuntu\-15.10\-server\-2016\-05\-01
  64879. image_password: MyPassword1
  64880. disk_type: SSD
  64881. disk_size: 40
  64882. cores: 8
  64883. cpu_family: INTEL_XEON
  64884. ram: 32768
  64885. public_lan: 1
  64886. public_ips:
  64887. \- 172.217.18.174
  64888. private_lan: 2
  64889. private_ips:
  64890. \- 192.168.100.10
  64891. public_firewall_rules:
  64892. Allow SSH:
  64893. protocol: TCP
  64894. source_ip: 1.2.3.4
  64895. port_range_start: 22
  64896. port_range_end: 22
  64897. Allow Ping:
  64898. protocol: ICMP
  64899. icmp_type: 8
  64900. ssh_public_key: /path/to/id_rsa.pub
  64901. ssh_private_key: /path/to/id_rsa
  64902. ssh_interface: private_lan
  64903. volumes:
  64904. db_data:
  64905. disk_size: 500
  64906. db_log:
  64907. disk_size: 50
  64908. disk_type: SSD
  64909. .ft P
  64910. .fi
  64911. .UNINDENT
  64912. .UNINDENT
  64913. .sp
  64914. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  64915. command:
  64916. .INDENT 0.0
  64917. .INDENT 3.5
  64918. .sp
  64919. .nf
  64920. .ft C
  64921. # salt\-cloud \-\-list\-locations my\-profitbricks\-config
  64922. .ft P
  64923. .fi
  64924. .UNINDENT
  64925. .UNINDENT
  64926. .sp
  64927. Images can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  64928. command:
  64929. .INDENT 0.0
  64930. .INDENT 3.5
  64931. .sp
  64932. .nf
  64933. .ft C
  64934. # salt\-cloud \-\-list\-images my\-profitbricks\-config
  64935. .ft P
  64936. .fi
  64937. .UNINDENT
  64938. .UNINDENT
  64939. .sp
  64940. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  64941. command:
  64942. .INDENT 0.0
  64943. .INDENT 3.5
  64944. .sp
  64945. .nf
  64946. .ft C
  64947. # salt\-cloud \-\-list\-sizes my\-profitbricks\-config
  64948. .ft P
  64949. .fi
  64950. .UNINDENT
  64951. .UNINDENT
  64952. .sp
  64953. Changed in version 2019.2.0: One or more public IP address can be reserved with the following command:
  64954. .INDENT 0.0
  64955. .INDENT 3.5
  64956. .sp
  64957. .nf
  64958. .ft C
  64959. # salt\-cloud \-f reserve_ipblock my\-profitbricks\-config location=\(aqus/ewr\(aq size=1
  64960. .ft P
  64961. .fi
  64962. .UNINDENT
  64963. .UNINDENT
  64964. .SS Profile Specifics:
  64965. .sp
  64966. The following list explains some of the important properties.
  64967. .INDENT 0.0
  64968. .IP \(bu 2
  64969. \fBsize\fP \- Can be one of the options listed in the output of the following
  64970. command:
  64971. .INDENT 2.0
  64972. .INDENT 3.5
  64973. .sp
  64974. .nf
  64975. .ft C
  64976. salt\-cloud \-\-list\-sizes my\-profitbricks\-config
  64977. .ft P
  64978. .fi
  64979. .UNINDENT
  64980. .UNINDENT
  64981. .IP \(bu 2
  64982. \fBimage\fP \- Can be one of the options listed in the output of the following
  64983. command:
  64984. .INDENT 2.0
  64985. .INDENT 3.5
  64986. .sp
  64987. .nf
  64988. .ft C
  64989. salt\-cloud \-\-list\-images my\-profitbricks\-config
  64990. .ft P
  64991. .fi
  64992. .UNINDENT
  64993. .UNINDENT
  64994. .IP \(bu 2
  64995. \fBimage_alias\fP \- Can be one of the options listed in the output of the
  64996. following command:
  64997. .INDENT 2.0
  64998. .INDENT 3.5
  64999. .sp
  65000. .nf
  65001. .ft C
  65002. salt\-cloud \-f list_images my\-profitbricks\-config
  65003. .ft P
  65004. .fi
  65005. .UNINDENT
  65006. .UNINDENT
  65007. .IP \(bu 2
  65008. \fBdisk_size\fP \- This option allows you to override the size of the disk as
  65009. defined by the size. The disk size is set in gigabytes (GB).
  65010. .IP \(bu 2
  65011. \fBdisk_type\fP \- This option allow the disk type to be set to HDD or SSD. The
  65012. default is HDD.
  65013. .sp
  65014. New in version 2019.2.0.
  65015. .IP \(bu 2
  65016. \fBimage_password\fP \- A password is set on the image for the "root" or
  65017. "Administrator" account. This field may only be set during volume creation.
  65018. Only valid with ProfitBricks supplied HDD (not ISO) images. The password must
  65019. contain at least 8 and no more than 50 characters. Only these characters are
  65020. allowed: [a\-z][A\-Z][0\-9]
  65021. .IP \(bu 2
  65022. \fBcores\fP \- This option allows you to override the number of CPU cores as
  65023. defined by the size.
  65024. .IP \(bu 2
  65025. \fBram\fP \- This option allows you to override the amount of RAM defined by the
  65026. size. The value must be a multiple of 256, e.g. 256, 512, 768, 1024, and so
  65027. forth.
  65028. .IP \(bu 2
  65029. \fBpublic_lan\fP \- This option will connect the server to the specified public
  65030. LAN. If no LAN exists, then a new public LAN will be created. The value
  65031. accepts a LAN ID (integer).
  65032. .sp
  65033. New in version 2019.2.0.
  65034. .IP \(bu 2
  65035. \fBpublic_ips\fP \- Public IPs assigned to the NIC in the public LAN.
  65036. .IP \(bu 2
  65037. \fBpublic_firewall_rules\fP \- This option allows for a list of firewall rules
  65038. assigned to the public network interface.
  65039. .INDENT 2.0
  65040. .INDENT 3.5
  65041. .sp
  65042. .nf
  65043. .ft C
  65044. Firewall Rule Name:
  65045. protocol: <protocol> (TCP, UDP, ICMP)
  65046. source_mac: <source\-mac>
  65047. source_ip: <source\-ip>
  65048. target_ip: <target\-ip>
  65049. port_range_start: <port\-range\-start>
  65050. port_range_end: <port\-range\-end>
  65051. icmp_type: <icmp\-type>
  65052. icmp_code: <icmp\-code>
  65053. .ft P
  65054. .fi
  65055. .UNINDENT
  65056. .UNINDENT
  65057. .IP \(bu 2
  65058. \fBprivate_lan\fP \- This option will connect the server to the specified
  65059. private LAN. If no LAN exists, then a new private LAN will be created. The
  65060. value accepts a LAN ID (integer).
  65061. .sp
  65062. New in version 2019.2.0.
  65063. .IP \(bu 2
  65064. \fBprivate_ips\fP \- Private IPs assigned in the private LAN. NAT setting is
  65065. ignored when this setting is active.
  65066. .IP \(bu 2
  65067. \fBprivate_firewall_rules\fP \- This option allows for a list of firewall rules
  65068. assigned to the private network interface.
  65069. .INDENT 2.0
  65070. .INDENT 3.5
  65071. .sp
  65072. .nf
  65073. .ft C
  65074. Firewall Rule Name:
  65075. protocol: <protocol> (TCP, UDP, ICMP)
  65076. source_mac: <source\-mac>
  65077. source_ip: <source\-ip>
  65078. target_ip: <target\-ip>
  65079. port_range_start: <port\-range\-start>
  65080. port_range_end: <port\-range\-end>
  65081. icmp_type: <icmp\-type>
  65082. icmp_code: <icmp\-code>
  65083. .ft P
  65084. .fi
  65085. .UNINDENT
  65086. .UNINDENT
  65087. .IP \(bu 2
  65088. \fBssh_private_key\fP \- Full path to the SSH private key file
  65089. .IP \(bu 2
  65090. \fBssh_public_key\fP \- Full path to the SSH public key file
  65091. .IP \(bu 2
  65092. \fBssh_interface\fP \- This option will use the private LAN IP for node
  65093. connections (such as as bootstrapping the node) instead of the public LAN IP.
  65094. The value accepts \(aqprivate_lan\(aq.
  65095. .IP \(bu 2
  65096. \fBcpu_family\fP \- This option allow the CPU family to be set to AMD_OPTERON or
  65097. INTEL_XEON. The default is AMD_OPTERON.
  65098. .IP \(bu 2
  65099. \fBvolumes\fP \- This option allows a list of additional volumes by name that
  65100. will be created and attached to the server. Each volume requires \(aqdisk_size\(aq
  65101. and, optionally, \(aqdisk_type\(aq. The default is HDD.
  65102. .IP \(bu 2
  65103. \fBdeploy\fP \- Set to \fBFalse\fP if Salt should not be installed on the node.
  65104. .IP \(bu 2
  65105. \fBwait_for_timeout\fP \- The timeout to wait in seconds for provisioning
  65106. resources such as servers. The default wait_for_timeout is 15 minutes.
  65107. .UNINDENT
  65108. .sp
  65109. For more information concerning cloud profiles, see here\&.
  65110. .SS Getting Started With Proxmox
  65111. .sp
  65112. Proxmox Virtual Environment is a complete server virtualization management solution,
  65113. based on OpenVZ(in Proxmox up to 3.4)/LXC(from Proxmox 4.0 and up) and full virtualization with KVM.
  65114. Further information can be found at:
  65115. .sp
  65116. \fI\%http://www.proxmox.org/\fP
  65117. .SS Dependencies
  65118. .INDENT 0.0
  65119. .IP \(bu 2
  65120. IPy >= 0.81
  65121. .IP \(bu 2
  65122. requests >= 2.2.1
  65123. .UNINDENT
  65124. .sp
  65125. Please note:
  65126. This module allows you to create OpenVZ/LXC containers and KVM VMs, but installing Salt on it will only be
  65127. done on containers rather than a KVM virtual machine.
  65128. .INDENT 0.0
  65129. .IP \(bu 2
  65130. Set up the cloud configuration at
  65131. \fB/etc/salt/cloud.providers\fP or
  65132. \fB/etc/salt/cloud.providers.d/proxmox.conf\fP:
  65133. .UNINDENT
  65134. .INDENT 0.0
  65135. .INDENT 3.5
  65136. .sp
  65137. .nf
  65138. .ft C
  65139. my\-proxmox\-config:
  65140. # Set up the location of the salt master
  65141. #
  65142. minion:
  65143. master: saltmaster.example.com
  65144. # Set the PROXMOX access credentials (see below)
  65145. #
  65146. user: myuser@pve
  65147. password: badpass
  65148. # Set the access URL for your PROXMOX host
  65149. #
  65150. url: your.proxmox.host
  65151. driver: proxmox
  65152. .ft P
  65153. .fi
  65154. .UNINDENT
  65155. .UNINDENT
  65156. .sp
  65157. \fBNOTE:\fP
  65158. .INDENT 0.0
  65159. .INDENT 3.5
  65160. Changed in version 2015.8.0.
  65161. .sp
  65162. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65163. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65164. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65165. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65166. to use \fBprovider\fP to refer to provider configurations that you define.
  65167. .UNINDENT
  65168. .UNINDENT
  65169. .SS Access Credentials
  65170. .sp
  65171. The \fBuser\fP, \fBpassword\fP, and \fBurl\fP will be provided to you by your cloud
  65172. host. These are all required in order for the PROXMOX driver to work.
  65173. .SS Cloud Profiles
  65174. .sp
  65175. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  65176. \fB/etc/salt/cloud.profiles.d/proxmox.conf\fP:
  65177. .INDENT 0.0
  65178. .IP \(bu 2
  65179. Configure a profile to be used:
  65180. .UNINDENT
  65181. .INDENT 0.0
  65182. .INDENT 3.5
  65183. .sp
  65184. .nf
  65185. .ft C
  65186. proxmox\-ubuntu:
  65187. provider: my\-proxmox\-config
  65188. image: local:vztmpl/ubuntu\-12.04\-standard_12.04\-1_amd64.tar.gz
  65189. technology: lxc
  65190. # host needs to be set to the configured name of the proxmox host
  65191. # and not the ip address or FQDN of the server
  65192. host: myvmhost
  65193. ip_address: 192.168.100.155
  65194. password: topsecret
  65195. .ft P
  65196. .fi
  65197. .UNINDENT
  65198. .UNINDENT
  65199. .sp
  65200. The profile can be realized now with a salt command:
  65201. .INDENT 0.0
  65202. .INDENT 3.5
  65203. .sp
  65204. .nf
  65205. .ft C
  65206. # salt\-cloud \-p proxmox\-ubuntu myubuntu
  65207. .ft P
  65208. .fi
  65209. .UNINDENT
  65210. .UNINDENT
  65211. .sp
  65212. This will create an instance named \fBmyubuntu\fP on the cloud host. The
  65213. minion that is installed on this instance will have a \fBhostname\fP of \fBmyubuntu\fP\&.
  65214. If the command was executed on the salt\-master, its Salt key will automatically
  65215. be signed on the master.
  65216. .sp
  65217. Once the instance has been created with salt\-minion installed, connectivity to
  65218. it can be verified with Salt:
  65219. .INDENT 0.0
  65220. .INDENT 3.5
  65221. .sp
  65222. .nf
  65223. .ft C
  65224. # salt myubuntu test.version
  65225. .ft P
  65226. .fi
  65227. .UNINDENT
  65228. .UNINDENT
  65229. .SS Required Settings
  65230. .sp
  65231. The following settings are always required for PROXMOX:
  65232. .INDENT 0.0
  65233. .IP \(bu 2
  65234. Using the new cloud configuration format:
  65235. .UNINDENT
  65236. .INDENT 0.0
  65237. .INDENT 3.5
  65238. .sp
  65239. .nf
  65240. .ft C
  65241. my\-proxmox\-config:
  65242. driver: proxmox
  65243. user: saltcloud@pve
  65244. password: xyzzy
  65245. url: your.proxmox.host
  65246. .ft P
  65247. .fi
  65248. .UNINDENT
  65249. .UNINDENT
  65250. .SS Optional Settings
  65251. .sp
  65252. Unlike other cloud providers in Salt Cloud, Proxmox does not utilize a
  65253. \fBsize\fP setting. This is because Proxmox allows the end\-user to specify a
  65254. more detailed configuration for their instances, than is allowed by many other
  65255. cloud providers. The following options are available to be used in a profile,
  65256. with their default settings listed.
  65257. .INDENT 0.0
  65258. .INDENT 3.5
  65259. .sp
  65260. .nf
  65261. .ft C
  65262. # Description of the instance.
  65263. desc: <instance_name>
  65264. # How many CPU cores, and how fast they are (in MHz)
  65265. cpus: 1
  65266. cpuunits: 1000
  65267. # How many megabytes of RAM
  65268. memory: 256
  65269. # How much swap space in MB
  65270. swap: 256
  65271. # Whether to auto boot the vm after the host reboots
  65272. onboot: 1
  65273. # Size of the instance disk (in GiB)
  65274. disk: 10
  65275. # Host to create this vm on
  65276. host: myvmhost
  65277. # Nameservers. Defaults to host
  65278. nameserver: 8.8.8.8 8.8.4.4
  65279. # Username and password
  65280. ssh_username: root
  65281. password: <value from PROXMOX.password>
  65282. # The name of the image, from \(ga\(gasalt\-cloud \-\-list\-images proxmox\(ga\(ga
  65283. image: local:vztmpl/ubuntu\-12.04\-standard_12.04\-1_amd64.tar.gz
  65284. # Whether or not to verify the SSL cert on the Proxmox host
  65285. verify_ssl: False
  65286. # Network interfaces, netX
  65287. net0: name=eth0,bridge=vmbr0,ip=dhcp
  65288. # Public key to add to /root/.ssh/authorized_keys.
  65289. pubkey: \(aqssh\-rsa AAAAB3NzaC1yc2EAAAADAQABA...\(aq
  65290. .ft P
  65291. .fi
  65292. .UNINDENT
  65293. .UNINDENT
  65294. .SS QEMU
  65295. .sp
  65296. Some functionnalities works differently if you use \(aqqemu\(aq as technology. In order to create a new VM with qemu, you need to specificy some more information.
  65297. You can also clone a qemu template which already is on your Proxmox server.
  65298. .sp
  65299. QEMU profile file (for a new VM):
  65300. .INDENT 0.0
  65301. .INDENT 3.5
  65302. .sp
  65303. .nf
  65304. .ft C
  65305. proxmox\-win7:
  65306. # Image of the new VM
  65307. image: image.iso # You can get all your available images using \(aqsalt\-cloud \-\-list\-images provider_name\(aq (Ex: \(aqsalt\-cloud \-\-list\-images my\-proxmox\-config\(aq)
  65308. # Technology used to create the VM (\(aqqemu\(aq, \(aqopenvz\(aq(on Proxmox <4.x) or \(aqlxc\(aq(on Proxmox 4.x+))
  65309. technology: qemu
  65310. # Proxmox node name
  65311. host: node_name
  65312. # Proxmox password
  65313. password: your_password
  65314. # Workaround https://github.com/saltstack/salt/issues/27821
  65315. size: \(aq\(aq
  65316. # RAM size (MB)
  65317. memory: 2048
  65318. # OS Type enum (other / wxp / w2k / w2k3 / w2k8 / wvista / win7 / win8 / l24 / l26 / solaris)
  65319. ostype: win7
  65320. # Hard disk location
  65321. sata0: <location>:<size>, format=<qcow2/vmdk/raw>, size=<size>GB #Example: local:120,format=qcow2,size=120GB
  65322. #CD/DVD Drive
  65323. ide2: <content_location>,media=cdrom #Example: local:iso/name.iso,media=cdrom
  65324. # Network Device
  65325. net0:<model>,bridge=<bridge> #Example: e1000,bridge=vmbr0
  65326. # Enable QEMU Guest Agent (0 / 1)
  65327. agent: 1
  65328. # VM name
  65329. name: Test
  65330. .ft P
  65331. .fi
  65332. .UNINDENT
  65333. .UNINDENT
  65334. .sp
  65335. More information about these parameters can be found on Proxmox API (\fI\%http://pve.proxmox.com/pve2\-api\-doc/\fP) under the \(aqPOST\(aq method of nodes/{node}/qemu
  65336. .sp
  65337. QEMU profile file (for a clone):
  65338. .INDENT 0.0
  65339. .INDENT 3.5
  65340. .sp
  65341. .nf
  65342. .ft C
  65343. proxmox\-win7:
  65344. # Enable Clone
  65345. clone: True
  65346. # New VM description
  65347. clone_description: \(aqdescription\(aq
  65348. # New VM name
  65349. clone_name: \(aqname\(aq
  65350. # New VM format (qcow2 / raw / vmdk)
  65351. clone_format: qcow2
  65352. # Full clone (1) or Link clone (0)
  65353. clone_full: 0
  65354. # VMID of Template to clone
  65355. clone_from: ID
  65356. # Technology used to create the VM (\(aqqemu\(aq or \(aqlxc\(aq)
  65357. technology: qemu
  65358. # Proxmox node name
  65359. host: node_name
  65360. # Proxmox password
  65361. password: your_password
  65362. # Workaround https://github.com/saltstack/salt/issues/27821
  65363. size: \(aq\(aq
  65364. .ft P
  65365. .fi
  65366. .UNINDENT
  65367. .UNINDENT
  65368. .sp
  65369. More information can be found on Proxmox API under the \(aqPOST\(aq method of /nodes/{node}/qemu/{vmid}/clone
  65370. .sp
  65371. \fBNOTE:\fP
  65372. .INDENT 0.0
  65373. .INDENT 3.5
  65374. The Proxmox API offers a lot more options and parameters, which are not yet
  65375. supported by this salt\-cloud \(aqoverlay\(aq. Feel free to add your contribution
  65376. by forking the github repository and modifying the following file:
  65377. \fBsalt/cloud/clouds/proxmox.py\fP
  65378. .sp
  65379. An easy way to support more parameters for VM creation would be to add the
  65380. names of the optional parameters in the \(aqcreate_nodes(vm_)\(aq function, under
  65381. the \(aqqemu\(aq technology. But it requires you to dig into the code ...
  65382. .UNINDENT
  65383. .UNINDENT
  65384. .SS Getting Started With Scaleway
  65385. .sp
  65386. Scaleway is the first IaaS host worldwide to offer an ARM based cloud. It’s the ideal platform for horizontal scaling with BareMetal SSD servers. The solution provides on demand resources: it comes with on\-demand SSD storage, movable IPs , images, security group and an Object Storage solution. \fI\%https://scaleway.com\fP
  65387. .SS Configuration
  65388. .sp
  65389. Using Salt for Scaleway, requires an \fBaccess key\fP and an \fBAPI token\fP\&. \fBAPI tokens\fP are unique identifiers associated with your Scaleway account.
  65390. To retrieve your \fBaccess key\fP and \fBAPI token\fP, log\-in to the Scaleway control panel, open the pull\-down menu on your account name and click on "My Credentials" link.
  65391. .sp
  65392. If you do not have API token you can create one by clicking the "Create New Token" button on the right corner.
  65393. .INDENT 0.0
  65394. .INDENT 3.5
  65395. .sp
  65396. .nf
  65397. .ft C
  65398. # Note: This example is for /etc/salt/cloud.providers or any file in the
  65399. # /etc/salt/cloud.providers.d/ directory.
  65400. my\-scaleway\-config:
  65401. access_key: 15cf404d\-4560\-41b1\-9a0c\-21c3d5c4ff1f
  65402. token: a7347ec8\-5de1\-4024\-a5e3\-24b77d1ba91d
  65403. driver: scaleway
  65404. .ft P
  65405. .fi
  65406. .UNINDENT
  65407. .UNINDENT
  65408. .sp
  65409. \fBNOTE:\fP
  65410. .INDENT 0.0
  65411. .INDENT 3.5
  65412. Changed in version 2015.8.0.
  65413. .sp
  65414. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65415. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65416. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65417. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65418. to use \fBprovider\fP to refer to provider configurations that you define.
  65419. .UNINDENT
  65420. .UNINDENT
  65421. .SS Profiles
  65422. .SS Cloud Profiles
  65423. .sp
  65424. Set up an initial profile at /etc/salt/cloud.profiles or in the /etc/salt/cloud.profiles.d/ directory:
  65425. .INDENT 0.0
  65426. .INDENT 3.5
  65427. .sp
  65428. .nf
  65429. .ft C
  65430. scaleway\-ubuntu:
  65431. provider: my\-scaleway\-config
  65432. image: Ubuntu Trusty (14.04 LTS)
  65433. .ft P
  65434. .fi
  65435. .UNINDENT
  65436. .UNINDENT
  65437. .sp
  65438. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP command:
  65439. .INDENT 0.0
  65440. .INDENT 3.5
  65441. .sp
  65442. .nf
  65443. .ft C
  65444. #salt\-cloud \-\-list\-images my\-scaleway\-config
  65445. my\-scaleway\-config:
  65446. \-\-\-\-\-\-\-\-\-\-
  65447. scaleway:
  65448. \-\-\-\-\-\-\-\-\-\-
  65449. 069fd876\-eb04\-44ab\-a9cd\-47e2fa3e5309:
  65450. \-\-\-\-\-\-\-\-\-\-
  65451. arch:
  65452. arm
  65453. creation_date:
  65454. 2015\-03\-12T09:35:45.764477+00:00
  65455. default_bootscript:
  65456. {u\(aqkernel\(aq: {u\(aqdtb\(aq: u\(aq\(aq, u\(aqtitle\(aq: u\(aqPimouss 3.2.34\-30\-std\(aq, u\(aqid\(aq: u\(aqcfda4308\-cd6f\-4e51\-9744\-905fc0da370f\(aq, u\(aqpath\(aq: u\(aqkernel/pimouss\-uImage\-3.2.34\-30\-std\(aq}, u\(aqtitle\(aq: u\(aq3.2.34\-std #30 (stable)\(aq, u\(aqid\(aq: u\(aqc5af0215\-2516\-4316\-befc\-5da1cfad609c\(aq, u\(aqinitrd\(aq: {u\(aqpath\(aq: u\(aqinitrd/c1\-uInitrd\(aq, u\(aqid\(aq: u\(aq1be14b1b\-e24c\-48e5\-b0b6\-7ba452e42b92\(aq, u\(aqtitle\(aq: u\(aqC1 initrd\(aq}, u\(aqbootcmdargs\(aq: {u\(aqid\(aq: u\(aqd22c4dde\-e5a4\-47ad\-abb9\-d23b54d542ff\(aq, u\(aqvalue\(aq: u\(aqip=dhcp boot=local root=/dev/nbd0 USE_XNBD=1 nbd.max_parts=8\(aq}, u\(aqorganization\(aq: u\(aq11111111\-1111\-4111\-8111\-111111111111\(aq, u\(aqpublic\(aq: True}
  65457. extra_volumes:
  65458. []
  65459. id:
  65460. 069fd876\-eb04\-44ab\-a9cd\-47e2fa3e5309
  65461. modification_date:
  65462. 2015\-04\-24T12:02:16.820256+00:00
  65463. name:
  65464. Ubuntu Vivid (15.04)
  65465. organization:
  65466. a283af0b\-d13e\-42e1\-a43f\-855ffbf281ab
  65467. public:
  65468. True
  65469. root_volume:
  65470. {u\(aqname\(aq: u\(aqdistrib\-ubuntu\-vivid\-2015\-03\-12_10:32\-snapshot\(aq, u\(aqid\(aq: u\(aqa6d02e63\-8dee\-4bce\-b627\-b21730f35a05\(aq, u\(aqvolume_type\(aq: u\(aql_ssd\(aq, u\(aqsize\(aq: 50000000000L}
  65471. \&...
  65472. .ft P
  65473. .fi
  65474. .UNINDENT
  65475. .UNINDENT
  65476. .sp
  65477. Execute a query and return all information about the nodes running on configured cloud providers using the \fB\-Q\fP option for the \fBsalt\-cloud\fP command:
  65478. .INDENT 0.0
  65479. .INDENT 3.5
  65480. .sp
  65481. .nf
  65482. .ft C
  65483. # salt\-cloud \-F
  65484. [INFO ] salt\-cloud starting
  65485. [INFO ] Starting new HTTPS connection (1): api.scaleway.com
  65486. my\-scaleway\-config:
  65487. \-\-\-\-\-\-\-\-\-\-
  65488. scaleway:
  65489. \-\-\-\-\-\-\-\-\-\-
  65490. salt\-manager:
  65491. \-\-\-\-\-\-\-\-\-\-
  65492. creation_date:
  65493. 2015\-06\-03T08:17:38.818068+00:00
  65494. hostname:
  65495. salt\-manager
  65496. \&...
  65497. .ft P
  65498. .fi
  65499. .UNINDENT
  65500. .UNINDENT
  65501. .sp
  65502. \fBNOTE:\fP
  65503. .INDENT 0.0
  65504. .INDENT 3.5
  65505. Additional documentation about Scaleway can be found at \fI\%https://www.scaleway.com/docs\fP\&.
  65506. .UNINDENT
  65507. .UNINDENT
  65508. .SS Getting Started With Saltify
  65509. .sp
  65510. The Saltify driver is a driver for installing Salt on existing
  65511. machines (virtual or bare metal).
  65512. .SS Dependencies
  65513. .sp
  65514. The Saltify driver has no external dependencies.
  65515. .SS Configuration
  65516. .sp
  65517. Because the Saltify driver does not use an actual cloud provider host, it can have a
  65518. simple provider configuration. The only thing that is required to be set is the
  65519. driver name, and any other potentially useful information, like the location of
  65520. the salt\-master:
  65521. .INDENT 0.0
  65522. .INDENT 3.5
  65523. .sp
  65524. .nf
  65525. .ft C
  65526. # Note: This example is for /etc/salt/cloud.providers file or any file in
  65527. # the /etc/salt/cloud.providers.d/ directory.
  65528. my\-saltify\-config:
  65529. minion:
  65530. master: 111.222.333.444
  65531. driver: saltify
  65532. .ft P
  65533. .fi
  65534. .UNINDENT
  65535. .UNINDENT
  65536. .sp
  65537. However, if you wish to use the more advanced capabilities of salt\-cloud, such as
  65538. rebooting, listing, and disconnecting machines, then the salt master must fill
  65539. the role usually performed by a vendor\(aqs cloud management system. The salt master
  65540. must be running on the salt\-cloud machine, and created nodes must be connected to the
  65541. master.
  65542. .sp
  65543. Additional information about which configuration options apply to which actions
  65544. can be studied in the
  65545. Saltify Module documentation
  65546. and the
  65547. Miscellaneous Salt Cloud Options
  65548. document.
  65549. .SS Profiles
  65550. .sp
  65551. Saltify requires a separate profile to be configured for each machine that
  65552. needs Salt installed [1]\&. The initial profile can be set up at
  65553. \fB/etc/salt/cloud.profiles\fP
  65554. or in the \fB/etc/salt/cloud.profiles.d/\fP directory. Each profile requires
  65555. both an \fBssh_host\fP and an \fBssh_username\fP key parameter as well as either
  65556. an \fBkey_filename\fP or a \fBpassword\fP\&.
  65557. .IP [1] 5
  65558. Unless you are using a map file to provide the unique parameters.
  65559. .sp
  65560. Profile configuration example:
  65561. .INDENT 0.0
  65562. .INDENT 3.5
  65563. .sp
  65564. .nf
  65565. .ft C
  65566. # /etc/salt/cloud.profiles.d/saltify.conf
  65567. salt\-this\-machine:
  65568. ssh_host: 12.34.56.78
  65569. ssh_username: root
  65570. key_filename: \(aq/etc/salt/mysshkey.pem\(aq
  65571. provider: my\-saltify\-config
  65572. .ft P
  65573. .fi
  65574. .UNINDENT
  65575. .UNINDENT
  65576. .sp
  65577. The machine can now be "Salted" with the following command:
  65578. .INDENT 0.0
  65579. .INDENT 3.5
  65580. .sp
  65581. .nf
  65582. .ft C
  65583. salt\-cloud \-p salt\-this\-machine my\-machine
  65584. .ft P
  65585. .fi
  65586. .UNINDENT
  65587. .UNINDENT
  65588. .sp
  65589. This will install salt on the machine specified by the cloud profile,
  65590. \fBsalt\-this\-machine\fP, and will give the machine the minion id of
  65591. \fBmy\-machine\fP\&. If the command was executed on the salt\-master, its Salt
  65592. key will automatically be accepted by the master.
  65593. .sp
  65594. Once a salt\-minion has been successfully installed on the instance, connectivity
  65595. to it can be verified with Salt:
  65596. .INDENT 0.0
  65597. .INDENT 3.5
  65598. .sp
  65599. .nf
  65600. .ft C
  65601. salt my\-machine test.version
  65602. .ft P
  65603. .fi
  65604. .UNINDENT
  65605. .UNINDENT
  65606. .SS Destroy Options
  65607. .sp
  65608. New in version 2018.3.0.
  65609. .sp
  65610. For obvious reasons, the \fBdestroy\fP action does not actually vaporize hardware.
  65611. If the salt master is connected, it can tear down parts of the client machines.
  65612. It will remove the client\(aqs key from the salt master,
  65613. and can execute the following options:
  65614. .INDENT 0.0
  65615. .INDENT 3.5
  65616. .sp
  65617. .nf
  65618. .ft C
  65619. \- remove_config_on_destroy: true
  65620. # default: true
  65621. # Deactivate salt\-minion on reboot and
  65622. # delete the minion config and key files from its "/etc/salt" directory,
  65623. # NOTE: If deactivation was unsuccessful (older Ubuntu machines) then when
  65624. # salt\-minion restarts it will automatically create a new, unwanted, set
  65625. # of key files. Use the "force_minion_config" option to replace them.
  65626. \- shutdown_on_destroy: false
  65627. # default: false
  65628. # last of all, send a "shutdown" command to the client.
  65629. .ft P
  65630. .fi
  65631. .UNINDENT
  65632. .UNINDENT
  65633. .SS Wake On LAN
  65634. .sp
  65635. New in version 2018.3.0.
  65636. .sp
  65637. In addition to connecting a hardware machine to a Salt master,
  65638. you have the option of sending a wake\-on\-LAN
  65639. \fI\%magic packet\fP
  65640. to start that machine running.
  65641. .sp
  65642. The "magic packet" must be sent by an existing salt minion which is on
  65643. the same network segment as the target machine. (Or your router
  65644. must be set up especially to route WoL packets.) Your target machine
  65645. must be set up to listen for WoL and to respond appropriately.
  65646. .sp
  65647. You must provide the Salt node id of the machine which will send
  65648. the WoL packet (parameter \fBwol_sender_node\fP), and
  65649. the hardware MAC address of the machine you intend to wake,
  65650. (parameter \fBwake_on_lan_mac\fP). If both parameters are defined,
  65651. the WoL will be sent. The cloud master will then sleep a while
  65652. (parameter \fBwol_boot_wait\fP) to give the target machine time to
  65653. boot up before we start probing its SSH port to begin deploying
  65654. Salt to it. The default sleep time is 30 seconds.
  65655. .INDENT 0.0
  65656. .INDENT 3.5
  65657. .sp
  65658. .nf
  65659. .ft C
  65660. # /etc/salt/cloud.profiles.d/saltify.conf
  65661. salt\-this\-machine:
  65662. ssh_host: 12.34.56.78
  65663. ssh_username: root
  65664. key_filename: \(aq/etc/salt/mysshkey.pem\(aq
  65665. provider: my\-saltify\-config
  65666. wake_on_lan_mac: \(aq00:e0:4c:70:2a:b2\(aq # found with ifconfig
  65667. wol_sender_node: bevymaster # its on this network segment
  65668. wol_boot_wait: 45 # seconds to sleep
  65669. .ft P
  65670. .fi
  65671. .UNINDENT
  65672. .UNINDENT
  65673. .SS Using Map Files
  65674. .sp
  65675. The settings explained in the section above may also be set in a map file. An
  65676. example of how to use the Saltify driver with a map file follows:
  65677. .INDENT 0.0
  65678. .INDENT 3.5
  65679. .sp
  65680. .nf
  65681. .ft C
  65682. # /etc/salt/saltify\-map
  65683. make_salty:
  65684. \- my\-instance\-0:
  65685. ssh_host: 12.34.56.78
  65686. ssh_username: root
  65687. password: very\-bad\-password
  65688. \- my\-instance\-1:
  65689. ssh_host: 44.33.22.11
  65690. ssh_username: root
  65691. password: another\-bad\-pass
  65692. .ft P
  65693. .fi
  65694. .UNINDENT
  65695. .UNINDENT
  65696. .sp
  65697. In this example, the names \fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP will be the
  65698. identifiers of the deployed minions.
  65699. .sp
  65700. Note: The \fBssh_host\fP directive is also used for Windows hosts, even though they do
  65701. not typically run the SSH service. It indicates IP address or host name for the target
  65702. system.
  65703. .sp
  65704. Note: When using a cloud map with the Saltify driver, the name of the profile
  65705. to use, in this case \fBmake_salty\fP, must be defined in a profile config. For
  65706. example:
  65707. .INDENT 0.0
  65708. .INDENT 3.5
  65709. .sp
  65710. .nf
  65711. .ft C
  65712. # /etc/salt/cloud.profiles.d/saltify.conf
  65713. make_salty:
  65714. provider: my\-saltify\-config
  65715. .ft P
  65716. .fi
  65717. .UNINDENT
  65718. .UNINDENT
  65719. .sp
  65720. The machines listed in the map file can now be "Salted" by applying the
  65721. following salt map command:
  65722. .INDENT 0.0
  65723. .INDENT 3.5
  65724. .sp
  65725. .nf
  65726. .ft C
  65727. salt\-cloud \-m /etc/salt/saltify\-map
  65728. .ft P
  65729. .fi
  65730. .UNINDENT
  65731. .UNINDENT
  65732. .sp
  65733. This command will install salt on the machines specified in the map and will
  65734. give each machine their minion id of \fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP,
  65735. respectively. If the command was executed on the salt\-master, its Salt key will
  65736. automatically be signed on the master.
  65737. .sp
  65738. Connectivity to the new "Salted" instances can now be verified with Salt:
  65739. .INDENT 0.0
  65740. .INDENT 3.5
  65741. .sp
  65742. .nf
  65743. .ft C
  65744. salt \(aqmy\-instance\-*\(aq test.version
  65745. .ft P
  65746. .fi
  65747. .UNINDENT
  65748. .UNINDENT
  65749. .SS Bulk Deployments
  65750. .sp
  65751. When deploying large numbers of Salt Minions using Saltify, it may be
  65752. preferable to organize the configuration in a way that duplicates data
  65753. as little as possible. For example, if a group of target systems have
  65754. the same credentials, they can be specified in the profile, rather than
  65755. in a map file.
  65756. .INDENT 0.0
  65757. .INDENT 3.5
  65758. .sp
  65759. .nf
  65760. .ft C
  65761. # /etc/salt/cloud.profiles.d/saltify.conf
  65762. make_salty:
  65763. provider: my\-saltify\-config
  65764. ssh_username: root
  65765. password: very\-bad\-password
  65766. .ft P
  65767. .fi
  65768. .UNINDENT
  65769. .UNINDENT
  65770. .INDENT 0.0
  65771. .INDENT 3.5
  65772. .sp
  65773. .nf
  65774. .ft C
  65775. # /etc/salt/saltify\-map
  65776. make_salty:
  65777. \- my\-instance\-0:
  65778. ssh_host: 12.34.56.78
  65779. \- my\-instance\-1:
  65780. ssh_host: 44.33.22.11
  65781. .ft P
  65782. .fi
  65783. .UNINDENT
  65784. .UNINDENT
  65785. .sp
  65786. If \fBssh_host\fP is not provided, its default value will be the Minion identifier
  65787. (\fBmy\-instance\-0\fP and \fBmy\-instance\-1\fP, in the example above). For deployments with
  65788. working DNS resolution, this can save a lot of redundant data in the map. Here is an
  65789. example map file using DNS names instead of IP addresses:
  65790. .INDENT 0.0
  65791. .INDENT 3.5
  65792. .sp
  65793. .nf
  65794. .ft C
  65795. # /etc/salt/saltify\-map
  65796. make_salty:
  65797. \- my\-instance\-0
  65798. \- my\-instance\-1
  65799. .ft P
  65800. .fi
  65801. .UNINDENT
  65802. .UNINDENT
  65803. .SS Credential Verification
  65804. .sp
  65805. Because the Saltify driver does not actually create VM\(aqs, unlike other
  65806. salt\-cloud drivers, it has special behaviour when the \fBdeploy\fP option is set
  65807. to \fBFalse\fP\&. When the cloud configuration specifies \fBdeploy: False\fP, the
  65808. Saltify driver will attempt to authenticate to the target node(s) and return
  65809. \fBTrue\fP for each one that succeeds. This can be useful to verify ports,
  65810. protocols, services and credentials are correctly configured before a live
  65811. deployment.
  65812. .INDENT 0.0
  65813. .TP
  65814. .B Return values:
  65815. .INDENT 7.0
  65816. .IP \(bu 2
  65817. \fBTrue\fP: Credential verification succeeded
  65818. .IP \(bu 2
  65819. \fBFalse\fP: Credential verification succeeded
  65820. .IP \(bu 2
  65821. \fBNone\fP: Credential verification was not attempted.
  65822. .UNINDENT
  65823. .UNINDENT
  65824. .SS Getting Started With SoftLayer
  65825. .sp
  65826. SoftLayer is a public cloud host, and baremetal hardware hosting service.
  65827. .SS Dependencies
  65828. .sp
  65829. The SoftLayer driver for Salt Cloud requires the softlayer package, which is
  65830. available at PyPI:
  65831. .sp
  65832. \fI\%https://pypi.org/project/SoftLayer/\fP
  65833. .sp
  65834. This package can be installed using \fBpip\fP or \fBeasy_install\fP:
  65835. .INDENT 0.0
  65836. .INDENT 3.5
  65837. .sp
  65838. .nf
  65839. .ft C
  65840. # pip install softlayer
  65841. # easy_install softlayer
  65842. .ft P
  65843. .fi
  65844. .UNINDENT
  65845. .UNINDENT
  65846. .SS Configuration
  65847. .sp
  65848. Set up the cloud config at \fB/etc/salt/cloud.providers\fP:
  65849. .INDENT 0.0
  65850. .INDENT 3.5
  65851. .sp
  65852. .nf
  65853. .ft C
  65854. # Note: These examples are for /etc/salt/cloud.providers
  65855. my\-softlayer:
  65856. # Set up the location of the salt master
  65857. minion:
  65858. master: saltmaster.example.com
  65859. # Set the SoftLayer access credentials (see below)
  65860. user: MYUSER1138
  65861. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  65862. driver: softlayer
  65863. my\-softlayer\-hw:
  65864. # Set up the location of the salt master
  65865. minion:
  65866. master: saltmaster.example.com
  65867. # Set the SoftLayer access credentials (see below)
  65868. user: MYUSER1138
  65869. apikey: \(aqe3b68aa711e6deadc62d5b76355674beef7cc3116062ddbacafe5f7e465bfdc9\(aq
  65870. driver: softlayer_hw
  65871. .ft P
  65872. .fi
  65873. .UNINDENT
  65874. .UNINDENT
  65875. .sp
  65876. \fBNOTE:\fP
  65877. .INDENT 0.0
  65878. .INDENT 3.5
  65879. Changed in version 2015.8.0.
  65880. .sp
  65881. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  65882. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  65883. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  65884. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  65885. to use \fBprovider\fP to refer to provider configurations that you define.
  65886. .UNINDENT
  65887. .UNINDENT
  65888. .SS Access Credentials
  65889. .sp
  65890. The \fBuser\fP setting is the same user as is used to log into the SoftLayer
  65891. Administration area. The \fBapikey\fP setting is found inside the Admin area after
  65892. logging in:
  65893. .INDENT 0.0
  65894. .IP \(bu 2
  65895. Hover over the \fBAccount\fP menu item.
  65896. .IP \(bu 2
  65897. Click the \fBUsers\fP link.
  65898. .IP \(bu 2
  65899. Find the \fBAPI Key\fP column and click \fBView\fP\&.
  65900. .UNINDENT
  65901. .SS Profiles
  65902. .SS Cloud Profiles
  65903. .sp
  65904. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  65905. .INDENT 0.0
  65906. .INDENT 3.5
  65907. .sp
  65908. .nf
  65909. .ft C
  65910. base_softlayer_ubuntu:
  65911. provider: my\-softlayer
  65912. image: UBUNTU_LATEST
  65913. cpu_number: 1
  65914. ram: 1024
  65915. disk_size: 100
  65916. local_disk: True
  65917. hourly_billing: True
  65918. domain: example.com
  65919. location: sjc01
  65920. # Optional
  65921. max_net_speed: 1000
  65922. private_vlan: 396
  65923. private_network: True
  65924. private_ssh: True
  65925. # Use a dedicated host instead of cloud
  65926. dedicated_host_id: 1234
  65927. # May be used _instead_of_ image
  65928. global_identifier: 320d8be5\-46c0\-dead\-cafe\-13e3c51
  65929. .ft P
  65930. .fi
  65931. .UNINDENT
  65932. .UNINDENT
  65933. .sp
  65934. Most of the above items are required; optional items are specified below.
  65935. .SS image
  65936. .sp
  65937. Images to build an instance can be found using the \fB\-\-list\-images\fP option:
  65938. .INDENT 0.0
  65939. .INDENT 3.5
  65940. .sp
  65941. .nf
  65942. .ft C
  65943. # salt\-cloud \-\-list\-images my\-softlayer
  65944. .ft P
  65945. .fi
  65946. .UNINDENT
  65947. .UNINDENT
  65948. .sp
  65949. The setting used will be labeled as \fBtemplate\fP\&.
  65950. .SS cpu_number
  65951. .sp
  65952. This is the number of CPU cores that will be used for this instance. This
  65953. number may be dependent upon the image that is used. For instance:
  65954. .INDENT 0.0
  65955. .INDENT 3.5
  65956. .sp
  65957. .nf
  65958. .ft C
  65959. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (1 \- 4 Core):
  65960. \-\-\-\-\-\-\-\-\-\-
  65961. name:
  65962. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (1 \- 4 Core)
  65963. template:
  65964. REDHAT_6_64
  65965. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (5 \- 100 Core):
  65966. \-\-\-\-\-\-\-\-\-\-
  65967. name:
  65968. Red Hat Enterprise Linux 6 \- Minimal Install (64 bit) (5 \- 100 Core)
  65969. template:
  65970. REDHAT_6_64
  65971. .ft P
  65972. .fi
  65973. .UNINDENT
  65974. .UNINDENT
  65975. .sp
  65976. Note that the template (meaning, the \fIimage\fP option) for both of these is the
  65977. same, but the names suggests how many CPU cores are supported.
  65978. .SS ram
  65979. .sp
  65980. This is the amount of memory, in megabytes, that will be allocated to this
  65981. instance.
  65982. .SS disk_size
  65983. .sp
  65984. The amount of disk space that will be allocated to this image, in gigabytes.
  65985. .INDENT 0.0
  65986. .INDENT 3.5
  65987. .sp
  65988. .nf
  65989. .ft C
  65990. base_softlayer_ubuntu:
  65991. disk_size: 100
  65992. .ft P
  65993. .fi
  65994. .UNINDENT
  65995. .UNINDENT
  65996. .SS Using Multiple Disks
  65997. .sp
  65998. New in version 2015.8.1.
  65999. .sp
  66000. SoftLayer allows up to 5 disks to be specified for a virtual machine upon
  66001. creation. Multiple disks can be specified either as a list or a comma\-delimited
  66002. string. The first \fBdisk_size\fP specified in the string or list will be the first
  66003. disk size assigned to the VM.
  66004. .sp
  66005. List Example:
  66006. .. code\-block:: yaml
  66007. .INDENT 0.0
  66008. .INDENT 3.5
  66009. .INDENT 0.0
  66010. .TP
  66011. .B base_softlayer_ubuntu:
  66012. disk_size: [\(aq100\(aq, \(aq20\(aq, \(aq20\(aq]
  66013. .UNINDENT
  66014. .UNINDENT
  66015. .UNINDENT
  66016. .sp
  66017. String Example:
  66018. .. code\-block:: yaml
  66019. .INDENT 0.0
  66020. .INDENT 3.5
  66021. .INDENT 0.0
  66022. .TP
  66023. .B base_softlayer_ubuntu:
  66024. disk_size: \(aq100, 20, 20\(aq
  66025. .UNINDENT
  66026. .UNINDENT
  66027. .UNINDENT
  66028. .SS local_disk
  66029. .sp
  66030. When true the disks for the computing instance will be provisioned on the host
  66031. which it runs, otherwise SAN disks will be provisioned.
  66032. .SS hourly_billing
  66033. .sp
  66034. When true the computing instance will be billed on hourly usage, otherwise it
  66035. will be billed on a monthly basis.
  66036. .SS domain
  66037. .sp
  66038. The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
  66039. this instance. The \fIdomain\fP setting will be used in conjunction with the
  66040. instance name to form the FQDN.
  66041. .SS use_fqdn
  66042. .sp
  66043. If set to True, the Minion will be identified by the FQDN (Fully Qualified Domain
  66044. Name) which is a result of combining the \fBdomain\fP configuration value and the
  66045. Minion name specified either via the CLI or a map file rather than only using the
  66046. short host name, or Minion ID. Default is False.
  66047. .sp
  66048. New in version 2016.3.0.
  66049. .sp
  66050. For example, if the value of \fBdomain\fP is \fBexample.com\fP and a new VM was created
  66051. via the CLI with \fBsalt\-cloud \-p base_softlayer_ubuntu my\-vm\fP, the resulting
  66052. Minion ID would be \fBmy\-vm.example.com\fP\&.
  66053. .sp
  66054. \fBNOTE:\fP
  66055. .INDENT 0.0
  66056. .INDENT 3.5
  66057. When enabling the \fBuse_fqdn\fP setting, the Minion ID will be the FQDN and will
  66058. interact with salt commands with the FQDN instead of the short hostname. However,
  66059. due to the way the SoftLayer API is constructed, some Salt Cloud functions such
  66060. as listing nodes or destroying VMs will only list the short hostname of the VM
  66061. instead of the FQDN.
  66062. .UNINDENT
  66063. .UNINDENT
  66064. .sp
  66065. Example output displaying the SoftLayer hostname quirk mentioned in the note above
  66066. (note the Minion ID is \fBmy\-vm.example.com\fP, but the VM to be destroyed is listed
  66067. with its short hostname, \fBmy\-vm\fP):
  66068. .INDENT 0.0
  66069. .INDENT 3.5
  66070. .sp
  66071. .nf
  66072. .ft C
  66073. # salt\-key \-L
  66074. Accepted Keys:
  66075. my\-vm.example.com
  66076. Denied Keys:
  66077. Unaccepted Keys:
  66078. Rejected Keys:
  66079. #
  66080. #
  66081. # salt my\-vm.example.com test.version
  66082. my\-vm.example.com:
  66083. 2018.3.4
  66084. #
  66085. #
  66086. # salt\-cloud \-d my\-vm.example.com
  66087. [INFO ] salt\-cloud starting
  66088. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
  66089. The following virtual machines are set to be destroyed:
  66090. softlayer\-config:
  66091. softlayer:
  66092. my\-vm
  66093. Proceed? [N/y] y
  66094. \&... proceeding
  66095. [INFO ] Destroying in non\-parallel mode.
  66096. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Account
  66097. [INFO ] POST https://api.softlayer.com/xmlrpc/v3.1/SoftLayer_Virtual_Guest
  66098. softlayer\-config:
  66099. \-\-\-\-\-\-\-\-\-\-
  66100. softlayer:
  66101. \-\-\-\-\-\-\-\-\-\-
  66102. my\-vm:
  66103. True
  66104. .ft P
  66105. .fi
  66106. .UNINDENT
  66107. .UNINDENT
  66108. .SS location
  66109. .sp
  66110. Images to build an instance can be found using the \fI\-\-list\-locations\fP option:
  66111. .INDENT 0.0
  66112. .INDENT 3.5
  66113. .sp
  66114. .nf
  66115. .ft C
  66116. # salt\-cloud \-\-list\-location my\-softlayer
  66117. .ft P
  66118. .fi
  66119. .UNINDENT
  66120. .UNINDENT
  66121. .SS max_net_speed
  66122. .sp
  66123. Specifies the connection speed for the instance\(aqs network components. This
  66124. setting is optional. By default, this is set to 10.
  66125. .SS post_uri
  66126. .sp
  66127. Specifies the uri location of the script to be downloaded and run after the instance
  66128. is provisioned.
  66129. .sp
  66130. New in version 2015.8.1.
  66131. .sp
  66132. Example:
  66133. .. code\-block:: yaml
  66134. .INDENT 0.0
  66135. .INDENT 3.5
  66136. .INDENT 0.0
  66137. .TP
  66138. .B base_softlayer_ubuntu:
  66139. post_uri: \(aq\fI\%https://SOMESERVERIP:8000/myscript.sh\fP\(aq
  66140. .UNINDENT
  66141. .UNINDENT
  66142. .UNINDENT
  66143. .SS public_vlan
  66144. .sp
  66145. If it is necessary for an instance to be created within a specific frontend
  66146. VLAN, the ID for that VLAN can be specified in either the provider or profile
  66147. configuration.
  66148. .sp
  66149. This ID can be queried using the \fIlist_vlans\fP function, as described below. This
  66150. setting is optional.
  66151. .sp
  66152. If this setting is set to \fINone\fP, salt\-cloud will connect to the private ip of
  66153. the server.
  66154. .sp
  66155. \fBNOTE:\fP
  66156. .INDENT 0.0
  66157. .INDENT 3.5
  66158. If this setting is not provided and the server is not built with a public
  66159. vlan, \fIprivate_ssh\fP or \fIprivate_wds\fP will need to be set to make sure that
  66160. salt\-cloud attempts to connect to the private ip.
  66161. .UNINDENT
  66162. .UNINDENT
  66163. .SS private_vlan
  66164. .sp
  66165. If it is necessary for an instance to be created within a specific backend VLAN,
  66166. the ID for that VLAN can be specified in either the provider or profile
  66167. configuration.
  66168. .sp
  66169. This ID can be queried using the \fIlist_vlans\fP function, as described below. This
  66170. setting is optional.
  66171. .SS private_network
  66172. .sp
  66173. If a server is to only be used internally, meaning it does not have a public
  66174. VLAN associated with it, this value would be set to True. This setting is
  66175. optional. The default is False.
  66176. .SS private_ssh or private_wds
  66177. .sp
  66178. Whether to run the deploy script on the server using the public IP address
  66179. or the private IP address. If set to True, Salt Cloud will attempt to SSH or
  66180. WinRM into the new server using the private IP address. The default is False.
  66181. This settiong is optional.
  66182. .SS global_identifier
  66183. .sp
  66184. When creating an instance using a custom template, this option is set to the
  66185. corresponding value obtained using the \fIlist_custom_images\fP function. This
  66186. option will not be used if an \fIimage\fP is set, and if an \fIimage\fP is not set, it
  66187. is required.
  66188. .sp
  66189. The profile can be realized now with a salt command:
  66190. .INDENT 0.0
  66191. .INDENT 3.5
  66192. .sp
  66193. .nf
  66194. .ft C
  66195. # salt\-cloud \-p base_softlayer_ubuntu myserver
  66196. .ft P
  66197. .fi
  66198. .UNINDENT
  66199. .UNINDENT
  66200. .sp
  66201. Using the above configuration, this will create \fImyserver.example.com\fP\&.
  66202. .sp
  66203. Once the instance has been created with salt\-minion installed, connectivity to
  66204. it can be verified with Salt:
  66205. .INDENT 0.0
  66206. .INDENT 3.5
  66207. .sp
  66208. .nf
  66209. .ft C
  66210. # salt \(aqmyserver.example.com\(aq test.version
  66211. .ft P
  66212. .fi
  66213. .UNINDENT
  66214. .UNINDENT
  66215. .SS Dedicated Host
  66216. .sp
  66217. Soflayer allows the creation of new VMs in a dedicated host. This means that
  66218. you can order and pay a fixed amount for a bare metal dedicated host and use
  66219. it to provision as many VMs as you can fit in there. If you want your VMs to
  66220. be launched in a dedicated host, instead of Sofltayer\(aqs cloud, set the
  66221. \fBdedicated_host_id\fP parameter in your profile.
  66222. .SS dedicated_host_id
  66223. .sp
  66224. The id of the dedicated host where the VMs should be created. If not set, VMs
  66225. will be created in Softlayer\(aqs cloud instead.
  66226. .SS Bare metal Profiles
  66227. .sp
  66228. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP:
  66229. .INDENT 0.0
  66230. .INDENT 3.5
  66231. .sp
  66232. .nf
  66233. .ft C
  66234. base_softlayer_hw_centos:
  66235. provider: my\-softlayer\-hw
  66236. # CentOS 6.0 \- Minimal Install (64 bit)
  66237. image: 13963
  66238. # 2 x 2.0 GHz Core Bare Metal Instance \- 2 GB Ram
  66239. size: 1921
  66240. # 500GB SATA II
  66241. hdd: 1267
  66242. # San Jose 01
  66243. location: 168642
  66244. domain: example.com
  66245. # Optional
  66246. vlan: 396
  66247. port_speed: 273
  66248. banwidth: 248
  66249. .ft P
  66250. .fi
  66251. .UNINDENT
  66252. .UNINDENT
  66253. .sp
  66254. Most of the above items are required; optional items are specified below.
  66255. .SS image
  66256. .sp
  66257. Images to build an instance can be found using the \fI\-\-list\-images\fP option:
  66258. .INDENT 0.0
  66259. .INDENT 3.5
  66260. .sp
  66261. .nf
  66262. .ft C
  66263. # salt\-cloud \-\-list\-images my\-softlayer\-hw
  66264. .ft P
  66265. .fi
  66266. .UNINDENT
  66267. .UNINDENT
  66268. .sp
  66269. A list of \fIid\(gas and names will be provided. The \(ganame\fP will describe the
  66270. operating system and architecture. The \fIid\fP will be the setting to be used in
  66271. the profile.
  66272. .SS size
  66273. .sp
  66274. Sizes to build an instance can be found using the \fI\-\-list\-sizes\fP option:
  66275. .INDENT 0.0
  66276. .INDENT 3.5
  66277. .sp
  66278. .nf
  66279. .ft C
  66280. # salt\-cloud \-\-list\-sizes my\-softlayer\-hw
  66281. .ft P
  66282. .fi
  66283. .UNINDENT
  66284. .UNINDENT
  66285. .sp
  66286. A list of \fIid\(gas and names will be provided. The \(ganame\fP will describe the speed
  66287. and quantity of CPU cores, and the amount of memory that the hardware will
  66288. contain. The \fIid\fP will be the setting to be used in the profile.
  66289. .SS hdd
  66290. .sp
  66291. There is currently only one size of hard disk drive (HDD) that is available for
  66292. hardware instances on SoftLayer:
  66293. .INDENT 0.0
  66294. .INDENT 3.5
  66295. .sp
  66296. .nf
  66297. .ft C
  66298. 1267: 500GB SATA II
  66299. .ft P
  66300. .fi
  66301. .UNINDENT
  66302. .UNINDENT
  66303. .sp
  66304. The \fIhdd\fP setting in the profile should be 1267. Other sizes may be
  66305. added in the future.
  66306. .SS location
  66307. .sp
  66308. Locations to build an instance can be found using the \fI\-\-list\-images\fP option:
  66309. .INDENT 0.0
  66310. .INDENT 3.5
  66311. .sp
  66312. .nf
  66313. .ft C
  66314. # salt\-cloud \-\-list\-locations my\-softlayer\-hw
  66315. .ft P
  66316. .fi
  66317. .UNINDENT
  66318. .UNINDENT
  66319. .sp
  66320. A list of IDs and names will be provided. The \fIlocation\fP will describe the
  66321. location in human terms. The \fIid\fP will be the setting to be used in the profile.
  66322. .SS domain
  66323. .sp
  66324. The domain name that will be used in the FQDN (Fully Qualified Domain Name) for
  66325. this instance. The \fIdomain\fP setting will be used in conjunction with the
  66326. instance name to form the FQDN.
  66327. .SS vlan
  66328. .sp
  66329. If it is necessary for an instance to be created within a specific VLAN, the ID
  66330. for that VLAN can be specified in either the provider or profile configuration.
  66331. .sp
  66332. This ID can be queried using the \fIlist_vlans\fP function, as described below.
  66333. .SS port_speed
  66334. .sp
  66335. Specifies the speed for the instance\(aqs network port. This setting refers to an
  66336. ID within the SoftLayer API, which sets the port speed. This setting is
  66337. optional. The default is 273, or, 100 Mbps Public & Private Networks. The
  66338. following settings are available:
  66339. .INDENT 0.0
  66340. .IP \(bu 2
  66341. 273: 100 Mbps Public & Private Networks
  66342. .IP \(bu 2
  66343. 274: 1 Gbps Public & Private Networks
  66344. .IP \(bu 2
  66345. 21509: 10 Mbps Dual Public & Private Networks (up to 20 Mbps)
  66346. .IP \(bu 2
  66347. 21513: 100 Mbps Dual Public & Private Networks (up to 200 Mbps)
  66348. .IP \(bu 2
  66349. 2314: 1 Gbps Dual Public & Private Networks (up to 2 Gbps)
  66350. .IP \(bu 2
  66351. 272: 10 Mbps Public & Private Networks
  66352. .UNINDENT
  66353. .SS bandwidth
  66354. .sp
  66355. Specifies the network bandwidth available for the instance. This setting refers
  66356. to an ID within the SoftLayer API, which sets the bandwidth. This setting is
  66357. optional. The default is 248, or, 5000 GB Bandwidth. The following settings are
  66358. available:
  66359. .INDENT 0.0
  66360. .IP \(bu 2
  66361. 248: 5000 GB Bandwidth
  66362. .IP \(bu 2
  66363. 129: 6000 GB Bandwidth
  66364. .IP \(bu 2
  66365. 130: 8000 GB Bandwidth
  66366. .IP \(bu 2
  66367. 131: 10000 GB Bandwidth
  66368. .IP \(bu 2
  66369. 36: Unlimited Bandwidth (10 Mbps Uplink)
  66370. .IP \(bu 2
  66371. 125: Unlimited Bandwidth (100 Mbps Uplink)
  66372. .UNINDENT
  66373. .SS Actions
  66374. .sp
  66375. The following actions are currently supported by the SoftLayer Salt Cloud
  66376. driver.
  66377. .SS show_instance
  66378. .sp
  66379. This action is a thin wrapper around \fI\-\-full\-query\fP, which displays details on a
  66380. single instance only. In an environment with several machines, this will save a
  66381. user from having to sort through all instance data, just to examine a single
  66382. instance.
  66383. .INDENT 0.0
  66384. .INDENT 3.5
  66385. .sp
  66386. .nf
  66387. .ft C
  66388. $ salt\-cloud \-a show_instance myinstance
  66389. .ft P
  66390. .fi
  66391. .UNINDENT
  66392. .UNINDENT
  66393. .SS Functions
  66394. .sp
  66395. The following functions are currently supported by the SoftLayer Salt Cloud
  66396. driver.
  66397. .SS list_vlans
  66398. .sp
  66399. This function lists all VLANs associated with the account, and all known data
  66400. from the SoftLayer API concerning those VLANs.
  66401. .INDENT 0.0
  66402. .INDENT 3.5
  66403. .sp
  66404. .nf
  66405. .ft C
  66406. $ salt\-cloud \-f list_vlans my\-softlayer
  66407. $ salt\-cloud \-f list_vlans my\-softlayer\-hw
  66408. .ft P
  66409. .fi
  66410. .UNINDENT
  66411. .UNINDENT
  66412. .sp
  66413. The \fIid\fP returned in this list is necessary for the \fIvlan\fP option when creating
  66414. an instance.
  66415. .SS list_custom_images
  66416. .sp
  66417. This function lists any custom templates associated with the account, that can
  66418. be used to create a new instance.
  66419. .INDENT 0.0
  66420. .INDENT 3.5
  66421. .sp
  66422. .nf
  66423. .ft C
  66424. $ salt\-cloud \-f list_custom_images my\-softlayer
  66425. .ft P
  66426. .fi
  66427. .UNINDENT
  66428. .UNINDENT
  66429. .sp
  66430. The \fIglobalIdentifier\fP returned in this list is necessary for the
  66431. \fIglobal_identifier\fP option when creating an image using a custom template.
  66432. .SS Optional Products for SoftLayer HW
  66433. .sp
  66434. The softlayer_hw driver supports the ability to add optional products, which
  66435. are supported by SoftLayer\(aqs API. These products each have an ID associated with
  66436. them, that can be passed into Salt Cloud with the \fIoptional_products\fP option:
  66437. .INDENT 0.0
  66438. .INDENT 3.5
  66439. .sp
  66440. .nf
  66441. .ft C
  66442. softlayer_hw_test:
  66443. provider: my\-softlayer\-hw
  66444. # CentOS 6.0 \- Minimal Install (64 bit)
  66445. image: 13963
  66446. # 2 x 2.0 GHz Core Bare Metal Instance \- 2 GB Ram
  66447. size: 1921
  66448. # 500GB SATA II
  66449. hdd: 1267
  66450. # San Jose 01
  66451. location: 168642
  66452. domain: example.com
  66453. optional_products:
  66454. # MySQL for Linux
  66455. \- id: 28
  66456. # Business Continuance Insurance
  66457. \- id: 104
  66458. .ft P
  66459. .fi
  66460. .UNINDENT
  66461. .UNINDENT
  66462. .sp
  66463. These values can be manually obtained by looking at the source of an order page
  66464. on the SoftLayer web interface. For convenience, many of these values are listed
  66465. here:
  66466. .SS Public Secondary IP Addresses
  66467. .INDENT 0.0
  66468. .IP \(bu 2
  66469. 22: 4 Public IP Addresses
  66470. .IP \(bu 2
  66471. 23: 8 Public IP Addresses
  66472. .UNINDENT
  66473. .SS Primary IPv6 Addresses
  66474. .INDENT 0.0
  66475. .IP \(bu 2
  66476. 17129: 1 IPv6 Address
  66477. .UNINDENT
  66478. .SS Public Static IPv6 Addresses
  66479. .INDENT 0.0
  66480. .IP \(bu 2
  66481. 1481: /64 Block Static Public IPv6 Addresses
  66482. .UNINDENT
  66483. .SS OS\-Specific Addon
  66484. .INDENT 0.0
  66485. .IP \(bu 2
  66486. 17139: XenServer Advanced for XenServer 6.x
  66487. .IP \(bu 2
  66488. 17141: XenServer Enterprise for XenServer 6.x
  66489. .IP \(bu 2
  66490. 2334: XenServer Advanced for XenServer 5.6
  66491. .IP \(bu 2
  66492. 2335: XenServer Enterprise for XenServer 5.6
  66493. .IP \(bu 2
  66494. 13915: Microsoft WebMatrix
  66495. .IP \(bu 2
  66496. 21276: VMware vCenter 5.1 Standard
  66497. .UNINDENT
  66498. .SS Control Panel Software
  66499. .INDENT 0.0
  66500. .IP \(bu 2
  66501. 121: cPanel/WHM with Fantastico and RVskin
  66502. .IP \(bu 2
  66503. 20778: Parallels Plesk Panel 11 (Linux) 100 Domain w/ Power Pack
  66504. .IP \(bu 2
  66505. 20786: Parallels Plesk Panel 11 (Windows) 100 Domain w/ Power Pack
  66506. .IP \(bu 2
  66507. 20787: Parallels Plesk Panel 11 (Linux) Unlimited Domain w/ Power Pack
  66508. .IP \(bu 2
  66509. 20792: Parallels Plesk Panel 11 (Windows) Unlimited Domain w/ Power Pack
  66510. .IP \(bu 2
  66511. 2340: Parallels Plesk Panel 10 (Linux) 100 Domain w/ Power Pack
  66512. .IP \(bu 2
  66513. 2339: Parallels Plesk Panel 10 (Linux) Unlimited Domain w/ Power Pack
  66514. .IP \(bu 2
  66515. 13704: Parallels Plesk Panel 10 (Windows) Unlimited Domain w/ Power Pack
  66516. .UNINDENT
  66517. .SS Database Software
  66518. .INDENT 0.0
  66519. .IP \(bu 2
  66520. 29: MySQL 5.0 for Windows
  66521. .IP \(bu 2
  66522. 28: MySQL for Linux
  66523. .IP \(bu 2
  66524. 21501: Riak 1.x
  66525. .IP \(bu 2
  66526. 20893: MongoDB
  66527. .IP \(bu 2
  66528. 30: Microsoft SQL Server 2005 Express
  66529. .IP \(bu 2
  66530. 92: Microsoft SQL Server 2005 Workgroup
  66531. .IP \(bu 2
  66532. 90: Microsoft SQL Server 2005 Standard
  66533. .IP \(bu 2
  66534. 94: Microsoft SQL Server 2005 Enterprise
  66535. .IP \(bu 2
  66536. 1330: Microsoft SQL Server 2008 Express
  66537. .IP \(bu 2
  66538. 1340: Microsoft SQL Server 2008 Web
  66539. .IP \(bu 2
  66540. 1337: Microsoft SQL Server 2008 Workgroup
  66541. .IP \(bu 2
  66542. 1334: Microsoft SQL Server 2008 Standard
  66543. .IP \(bu 2
  66544. 1331: Microsoft SQL Server 2008 Enterprise
  66545. .IP \(bu 2
  66546. 2179: Microsoft SQL Server 2008 Express R2
  66547. .IP \(bu 2
  66548. 2173: Microsoft SQL Server 2008 Web R2
  66549. .IP \(bu 2
  66550. 2183: Microsoft SQL Server 2008 Workgroup R2
  66551. .IP \(bu 2
  66552. 2180: Microsoft SQL Server 2008 Standard R2
  66553. .IP \(bu 2
  66554. 2176: Microsoft SQL Server 2008 Enterprise R2
  66555. .UNINDENT
  66556. .SS Anti\-Virus & Spyware Protection
  66557. .INDENT 0.0
  66558. .IP \(bu 2
  66559. 594: McAfee VirusScan Anti\-Virus \- Windows
  66560. .IP \(bu 2
  66561. 414: McAfee Total Protection \- Windows
  66562. .UNINDENT
  66563. .SS Insurance
  66564. .INDENT 0.0
  66565. .IP \(bu 2
  66566. 104: Business Continuance Insurance
  66567. .UNINDENT
  66568. .SS Monitoring
  66569. .INDENT 0.0
  66570. .IP \(bu 2
  66571. 55: Host Ping
  66572. .IP \(bu 2
  66573. 56: Host Ping and TCP Service Monitoring
  66574. .UNINDENT
  66575. .SS Notification
  66576. .INDENT 0.0
  66577. .IP \(bu 2
  66578. 57: Email and Ticket
  66579. .UNINDENT
  66580. .SS Advanced Monitoring
  66581. .INDENT 0.0
  66582. .IP \(bu 2
  66583. 2302: Monitoring Package \- Basic
  66584. .IP \(bu 2
  66585. 2303: Monitoring Package \- Advanced
  66586. .IP \(bu 2
  66587. 2304: Monitoring Package \- Premium Application
  66588. .UNINDENT
  66589. .SS Response
  66590. .INDENT 0.0
  66591. .IP \(bu 2
  66592. 58: Automated Notification
  66593. .IP \(bu 2
  66594. 59: Automated Reboot from Monitoring
  66595. .IP \(bu 2
  66596. 60: 24x7x365 NOC Monitoring, Notification, and Response
  66597. .UNINDENT
  66598. .SS Intrusion Detection & Protection
  66599. .INDENT 0.0
  66600. .IP \(bu 2
  66601. 413: McAfee Host Intrusion Protection w/Reporting
  66602. .UNINDENT
  66603. .SS Hardware & Software Firewalls
  66604. .INDENT 0.0
  66605. .IP \(bu 2
  66606. 411: APF Software Firewall for Linux
  66607. .IP \(bu 2
  66608. 894: Microsoft Windows Firewall
  66609. .IP \(bu 2
  66610. 410: 10Mbps Hardware Firewall
  66611. .IP \(bu 2
  66612. 409: 100Mbps Hardware Firewall
  66613. .IP \(bu 2
  66614. 408: 1000Mbps Hardware Firewall
  66615. .UNINDENT
  66616. .SS Getting Started With Tencent Cloud
  66617. .sp
  66618. Tencent Cloud is a secure, reliable and high\-performance cloud compute service
  66619. provided by Tencent. It is the 2nd largest Cloud Provider in China.
  66620. .SS Dependencies
  66621. .sp
  66622. The Tencent Cloud driver for Salt Cloud requires the \fBtencentcloud\-sdk\-python\fP package,
  66623. which is available at PyPI:
  66624. .sp
  66625. \fI\%https://pypi.org/project/tencentcloud\-sdk\-python/\fP
  66626. .sp
  66627. This package can be installed using \fBpip\fP or \fBeasy_install\fP:
  66628. .INDENT 0.0
  66629. .INDENT 3.5
  66630. .sp
  66631. .nf
  66632. .ft C
  66633. # pip install tencentcloud\-sdk\-python
  66634. # easy_install tencentcloud\-sdk\-python
  66635. .ft P
  66636. .fi
  66637. .UNINDENT
  66638. .UNINDENT
  66639. .SS Provider Configuration
  66640. .INDENT 0.0
  66641. .TP
  66642. .B To use this module, set up the cloud configuration at
  66643. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/*.conf\fP:
  66644. .UNINDENT
  66645. .INDENT 0.0
  66646. .INDENT 3.5
  66647. .sp
  66648. .nf
  66649. .ft C
  66650. my\-tencentcloud\-config:
  66651. driver: tencentcloud
  66652. # Tencent Cloud Secret Id
  66653. id: AKIDA64pOio9BMemkApzevX0HS169S4b750A
  66654. # Tencent Cloud Secret Key
  66655. key: 8r2xmPn0C5FDvRAlmcJimiTZKVRsk260
  66656. # Tencent Cloud Region
  66657. location: ap\-guangzhou
  66658. .ft P
  66659. .fi
  66660. .UNINDENT
  66661. .UNINDENT
  66662. .SS Configuration Parameters
  66663. .SS driver
  66664. .sp
  66665. \fBRequired\fP\&. \fBtencentcloud\fP to use this module.
  66666. .SS id
  66667. .sp
  66668. \fBRequired\fP\&. Your Tencent Cloud secret id.
  66669. .SS key
  66670. .sp
  66671. \fBRequired\fP\&. Your Tencent Cloud secret key.
  66672. .SS location
  66673. .sp
  66674. \fBOptional\fP\&. If this value is not specified, the default is \fBap\-guangzhou\fP\&.
  66675. Available locations can be found using the \fB\-\-list\-locations\fP option:
  66676. .INDENT 0.0
  66677. .INDENT 3.5
  66678. .sp
  66679. .nf
  66680. .ft C
  66681. # salt\-cloud \-\-list\-location my\-tencentcloud\-config
  66682. .ft P
  66683. .fi
  66684. .UNINDENT
  66685. .UNINDENT
  66686. .SS Profile Configuration
  66687. .sp
  66688. Tencent Cloud profiles require a \fBprovider\fP, \fBavailability_zone\fP, \fBimage\fP and \fBsize\fP\&.
  66689. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or \fB/etc/salt/cloud.profiles.d/*.conf\fP:
  66690. .INDENT 0.0
  66691. .INDENT 3.5
  66692. .sp
  66693. .nf
  66694. .ft C
  66695. tencentcloud\-guangzhou\-s1sm1:
  66696. provider: my\-tencentcloud\-config
  66697. availability_zone: ap\-guangzhou\-3
  66698. image: img\-31tjrtph
  66699. size: S1.SMALL1
  66700. allocate_public_ip: True
  66701. internet_max_bandwidth_out: 1
  66702. password: \(aq153e41ec96140152\(aq
  66703. securitygroups:
  66704. \- sg\-5e90804b
  66705. .ft P
  66706. .fi
  66707. .UNINDENT
  66708. .UNINDENT
  66709. .SS Configuration Parameters
  66710. .SS provider
  66711. .sp
  66712. \fBRequired\fP\&. Name of entry in \fBsalt/cloud.providers.d/???\fP file.
  66713. .SS availability_zone
  66714. .sp
  66715. \fBRequired\fP\&. The availability zone that the instance is located in.
  66716. Available zones can be found using the \fBlist_availability_zones\fP function:
  66717. .INDENT 0.0
  66718. .INDENT 3.5
  66719. .sp
  66720. .nf
  66721. .ft C
  66722. # salt\-cloud \-f list_availability_zones my\-tencentcloud\-config
  66723. .ft P
  66724. .fi
  66725. .UNINDENT
  66726. .UNINDENT
  66727. .SS image
  66728. .sp
  66729. \fBRequired\fP\&. The image id to use for the instance.
  66730. Available images can be found using the \fB\-\-list\-images\fP option:
  66731. .INDENT 0.0
  66732. .INDENT 3.5
  66733. .sp
  66734. .nf
  66735. .ft C
  66736. # salt\-cloud \-\-list\-images my\-tencentcloud\-config
  66737. .ft P
  66738. .fi
  66739. .UNINDENT
  66740. .UNINDENT
  66741. .SS size
  66742. .sp
  66743. \fBRequired\fP\&. Instance type for instance can be found using the \fB\-\-list\-sizes\fP option.
  66744. .INDENT 0.0
  66745. .INDENT 3.5
  66746. .sp
  66747. .nf
  66748. .ft C
  66749. # salt\-cloud \-\-list\-sizes my\-tencentcloud\-config
  66750. .ft P
  66751. .fi
  66752. .UNINDENT
  66753. .UNINDENT
  66754. .SS securitygroups
  66755. .sp
  66756. \fBOptional\fP\&. A list of security group ids to associate with.
  66757. Available security group ids can be found using the \fBlist_securitygroups\fP function:
  66758. .INDENT 0.0
  66759. .INDENT 3.5
  66760. .sp
  66761. .nf
  66762. .ft C
  66763. # salt\-cloud \-f list_securitygroups my\-tencentcloud\-config
  66764. .ft P
  66765. .fi
  66766. .UNINDENT
  66767. .UNINDENT
  66768. .sp
  66769. Multiple security groups are supported:
  66770. .INDENT 0.0
  66771. .INDENT 3.5
  66772. .sp
  66773. .nf
  66774. .ft C
  66775. tencentcloud\-guangzhou\-s1sm1:
  66776. securitygroups:
  66777. \- sg\-5e90804b
  66778. \- sg\-8kpynf2t
  66779. .ft P
  66780. .fi
  66781. .UNINDENT
  66782. .UNINDENT
  66783. .SS hostname
  66784. .sp
  66785. \fBOptional\fP\&. The hostname of the instance.
  66786. .SS instance_charge_type
  66787. .sp
  66788. \fBOptional\fP\&. The charge type of the instance. Valid values are \fBPREPAID\fP,
  66789. \fBPOSTPAID_BY_HOUR\fP and \fBSPOTPAID\fP\&. The default is \fBPOSTPAID_BY_HOUR\fP\&.
  66790. .SS instance_charge_type_prepaid_renew_flag
  66791. .sp
  66792. \fBOptional\fP\&. When enabled, the instance will be renew automatically
  66793. when it reaches the end of the prepaid tenancy.
  66794. Valid values are \fBNOTIFY_AND_AUTO_RENEW\fP, \fBNOTIFY_AND_MANUAL_RENEW\fP and \fBDISABLE_NOTIFY_AND_MANUAL_RENEW\fP\&.
  66795. .sp
  66796. \fBNOTE:\fP
  66797. .INDENT 0.0
  66798. .INDENT 3.5
  66799. This value is only used when \fBinstance_charge_type\fP is set to \fBPREPAID\fP\&.
  66800. .UNINDENT
  66801. .UNINDENT
  66802. .SS instance_charge_type_prepaid_period
  66803. .sp
  66804. \fBOptional\fP\&. The tenancy time in months of the prepaid instance,
  66805. Valid values are \fB1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 24, 36\fP\&.
  66806. .sp
  66807. \fBNOTE:\fP
  66808. .INDENT 0.0
  66809. .INDENT 3.5
  66810. This value is only used when \fBinstance_charge_type\fP is set to \fBPREPAID\fP\&.
  66811. .UNINDENT
  66812. .UNINDENT
  66813. .SS allocate_public_ip
  66814. .sp
  66815. \fBOptional\fP\&. Associate a public ip address with an instance
  66816. in a VPC or Classic. Boolean value, default is \fBfalse\fP\&.
  66817. .SS internet_max_bandwidth_out
  66818. .sp
  66819. \fBOptional\fP\&. Maximum outgoing bandwidth to the public network, measured in Mbps (Mega bits per second).
  66820. Value range: \fB[0, 100]\fP\&. If this value is not specified, the default is \fB0\fP Mbps.
  66821. .SS internet_charge_type
  66822. .sp
  66823. \fBOptional\fP\&. Internet charge type of the instance. Valid values are \fBBANDWIDTH_PREPAID\fP,
  66824. \fBTRAFFIC_POSTPAID_BY_HOUR\fP, \fBBANDWIDTH_POSTPAID_BY_HOUR\fP and \fBBANDWIDTH_PACKAGE\fP\&.
  66825. The default is \fBTRAFFIC_POSTPAID_BY_HOUR\fP\&.
  66826. .SS key_name
  66827. .sp
  66828. \fBOptional\fP\&. The key pair to use for the instance, for example \fBskey\-16jig7tx\fP\&.
  66829. .SS password
  66830. .sp
  66831. \fBOptional\fP\&. Login password for the instance.
  66832. .SS private_ip
  66833. .sp
  66834. \fBOptional\fP\&. The private ip to be assigned to this instance,
  66835. must be in the provided subnet and available.
  66836. .SS project_id
  66837. .sp
  66838. \fBOptional\fP\&. The project this instance belongs to, defaults to \fB0\fP\&.
  66839. .SS vpc_id
  66840. .sp
  66841. \fBOptional\fP\&. The id of a VPC network.
  66842. If you want to create instances in a VPC network, this parameter must be set.
  66843. .SS subnet_id
  66844. .sp
  66845. \fBOptional\fP\&. The id of a VPC subnet.
  66846. If you want to create instances in VPC network, this parameter must be set.
  66847. .SS system_disk_size
  66848. .sp
  66849. \fBOptional\fP\&. Size of the system disk.
  66850. Value range: \fB[50, 1000]\fP, and unit is \fBGB\fP\&. Default is \fB50\fP GB.
  66851. .SS system_disk_type
  66852. .sp
  66853. \fBOptional\fP\&. Type of the system disk.
  66854. Valid values are \fBCLOUD_BASIC\fP, \fBCLOUD_SSD\fP and \fBCLOUD_PREMIUM\fP, default value is \fBCLOUD_BASIC\fP\&.
  66855. .SS Actions
  66856. .sp
  66857. The following actions are supported by the Tencent Cloud Salt Cloud driver.
  66858. .SS show_instance
  66859. .sp
  66860. This action is a thin wrapper around \fB\-\-full\-query\fP, which displays details on a
  66861. single instance only. In an environment with several machines, this will save a
  66862. user from having to sort through all instance data, just to examine a single
  66863. instance.
  66864. .INDENT 0.0
  66865. .INDENT 3.5
  66866. .sp
  66867. .nf
  66868. .ft C
  66869. $ salt\-cloud \-a show_instance myinstance
  66870. .ft P
  66871. .fi
  66872. .UNINDENT
  66873. .UNINDENT
  66874. .SS show_disk
  66875. .sp
  66876. Return disk details about a specific instance.
  66877. .INDENT 0.0
  66878. .INDENT 3.5
  66879. .sp
  66880. .nf
  66881. .ft C
  66882. $ salt\-cloud \-a show_disk myinstance
  66883. .ft P
  66884. .fi
  66885. .UNINDENT
  66886. .UNINDENT
  66887. .SS destroy
  66888. .sp
  66889. Destroy a Tencent Cloud instance.
  66890. .INDENT 0.0
  66891. .INDENT 3.5
  66892. .sp
  66893. .nf
  66894. .ft C
  66895. $ salt\-cloud \-a destroy myinstance
  66896. .ft P
  66897. .fi
  66898. .UNINDENT
  66899. .UNINDENT
  66900. .SS start
  66901. .sp
  66902. Start a Tencent Cloud instance.
  66903. .INDENT 0.0
  66904. .INDENT 3.5
  66905. .sp
  66906. .nf
  66907. .ft C
  66908. $ salt\-cloud \-a start myinstance
  66909. .ft P
  66910. .fi
  66911. .UNINDENT
  66912. .UNINDENT
  66913. .SS stop
  66914. .sp
  66915. Stop a Tencent Cloud instance.
  66916. .INDENT 0.0
  66917. .INDENT 3.5
  66918. .sp
  66919. .nf
  66920. .ft C
  66921. $ salt\-cloud \-a stop myinstance
  66922. .ft P
  66923. .fi
  66924. .UNINDENT
  66925. .UNINDENT
  66926. .SS reboot
  66927. .sp
  66928. Reboot a Tencent Cloud instance.
  66929. .INDENT 0.0
  66930. .INDENT 3.5
  66931. .sp
  66932. .nf
  66933. .ft C
  66934. $ salt\-cloud \-a reboot myinstance
  66935. .ft P
  66936. .fi
  66937. .UNINDENT
  66938. .UNINDENT
  66939. .SS Functions
  66940. .sp
  66941. The following functions are currently supported by the Tencent Cloud Salt Cloud driver.
  66942. .SS list_securitygroups
  66943. .sp
  66944. Lists all Tencent Cloud security groups in current region.
  66945. .INDENT 0.0
  66946. .INDENT 3.5
  66947. .sp
  66948. .nf
  66949. .ft C
  66950. $ salt\-cloud \-f list_securitygroups my\-tencentcloud\-config
  66951. .ft P
  66952. .fi
  66953. .UNINDENT
  66954. .UNINDENT
  66955. .SS list_availability_zones
  66956. .sp
  66957. Lists all Tencent Cloud availability zones in current region.
  66958. .INDENT 0.0
  66959. .INDENT 3.5
  66960. .sp
  66961. .nf
  66962. .ft C
  66963. $ salt\-cloud \-f list_availability_zones my\-tencentcloud\-config
  66964. .ft P
  66965. .fi
  66966. .UNINDENT
  66967. .UNINDENT
  66968. .SS list_custom_images
  66969. .sp
  66970. Lists any custom images associated with the account. These images can
  66971. be used to create a new instance.
  66972. .INDENT 0.0
  66973. .INDENT 3.5
  66974. .sp
  66975. .nf
  66976. .ft C
  66977. $ salt\-cloud \-f list_custom_images my\-tencentcloud\-config
  66978. .ft P
  66979. .fi
  66980. .UNINDENT
  66981. .UNINDENT
  66982. .SS show_image
  66983. .sp
  66984. Return details about a specific image. This image can be used
  66985. to create a new instance.
  66986. .INDENT 0.0
  66987. .INDENT 3.5
  66988. .sp
  66989. .nf
  66990. .ft C
  66991. $ salt\-cloud \-f show_image tencentcloud image=img\-31tjrtph
  66992. .ft P
  66993. .fi
  66994. .UNINDENT
  66995. .UNINDENT
  66996. .SS Getting Started With Vagrant
  66997. .sp
  66998. The Vagrant driver is a new, experimental driver for spinning up a VagrantBox
  66999. virtual machine, and installing Salt on it.
  67000. .SS Dependencies
  67001. .sp
  67002. The Vagrant driver itself has no external dependencies.
  67003. .sp
  67004. The machine which will host the VagrantBox must be an already existing minion
  67005. of the cloud server\(aqs Salt master.
  67006. It must have \fI\%Vagrant\fP installed, and a Vagrant\-compatible virtual machine engine,
  67007. such as \fI\%VirtualBox\fP\&.
  67008. (Note: The Vagrant driver does not depend on the salt\-cloud VirtualBox driver in any way.)
  67009. .sp
  67010. [Caution: The version of Vagrant packaged for \fBapt install\fP in Ubuntu 16.04 will not connect a bridged
  67011. network adapter correctly. Use a version downloaded directly from the web site.]
  67012. .sp
  67013. Include the Vagrant guest editions plugin:
  67014. \fBvagrant plugin install vagrant\-vbguest\fP\&.
  67015. .SS Configuration
  67016. .sp
  67017. Configuration of the client virtual machine (using VirtualBox, VMware, etc)
  67018. will be done by Vagrant as specified in the Vagrantfile on the host machine.
  67019. .sp
  67020. Salt\-cloud will push the commands to install and provision a salt minion on
  67021. the virtual machine, so you need not (perhaps \fBshould\fP not) provision salt
  67022. in your Vagrantfile, in most cases.
  67023. .sp
  67024. If, however, your cloud master cannot open an SSH connection to the child VM,
  67025. you may \fBneed\fP to let Vagrant provision the VM with Salt, and use some other
  67026. method (such as passing a pillar dictionary to the VM) to pass the master\(aqs
  67027. IP address to the VM. The VM can then attempt to reach the salt master in the
  67028. usual way for non\-cloud minions. Specify the profile configuration argument
  67029. as \fBdeploy: False\fP to prevent the cloud master from trying.
  67030. .INDENT 0.0
  67031. .INDENT 3.5
  67032. .sp
  67033. .nf
  67034. .ft C
  67035. # Note: This example is for /etc/salt/cloud.providers file or any file in
  67036. # the /etc/salt/cloud.providers.d/ directory.
  67037. my\-vagrant\-config:
  67038. minion:
  67039. master: 111.222.333.444
  67040. provider: vagrant
  67041. .ft P
  67042. .fi
  67043. .UNINDENT
  67044. .UNINDENT
  67045. .sp
  67046. Because the Vagrant driver needs a place to store the mapping between the
  67047. node name you use for Salt commands and the Vagrantfile which controls the VM,
  67048. you must configure your salt minion as a Salt smb server.
  67049. (See \fI\%host provisioning example\fP below.)
  67050. .SS Profiles
  67051. .sp
  67052. Vagrant requires a profile to be configured for each machine that needs Salt
  67053. installed. The initial profile can be set up at \fB/etc/salt/cloud.profiles\fP
  67054. or in the \fB/etc/salt/cloud.profiles.d/\fP directory.
  67055. .sp
  67056. Each profile requires a \fBvagrantfile\fP parameter. If the Vagrantfile has
  67057. definitions for \fI\%multiple machines\fP then you need a \fBmachine\fP parameter,
  67058. .sp
  67059. Salt\-cloud uses SSH to provision the minion. There must be a routable path
  67060. from the cloud master to the VM. Usually, you will want to use
  67061. a bridged network adapter for SSH. The address may not be known until
  67062. DHCP assigns it. If \fBssh_host\fP is not defined, and \fBtarget_network\fP
  67063. is defined, the driver will attempt to read the address from the output
  67064. of an \fBifconfig\fP command. Lacking either setting,
  67065. the driver will try to use the value Vagrant returns as its \fBssh_host\fP,
  67066. which will work only if the cloud master is running somewhere on the same host.
  67067. .sp
  67068. The \fBtarget_network\fP setting should be used
  67069. to identify the IP network your bridged adapter is expected to appear on.
  67070. Use CIDR notation, like \fBtarget_network: \(aq2001:DB8::/32\(aq\fP
  67071. or \fBtarget_network: \(aq192.0.2.0/24\(aq\fP\&.
  67072. .sp
  67073. Profile configuration example:
  67074. .INDENT 0.0
  67075. .INDENT 3.5
  67076. .sp
  67077. .nf
  67078. .ft C
  67079. # /etc/salt/cloud.profiles.d/vagrant.conf
  67080. vagrant\-machine:
  67081. host: my\-vhost # the Salt id of the virtual machine\(aqs host computer.
  67082. provider: my\-vagrant\-config
  67083. cwd: /srv/machines # the path to your Vagrantfile.
  67084. vagrant_runas: my\-username # the username who defined the Vagrantbox on the host
  67085. # vagrant_up_timeout: 300 # (seconds) timeout for cmd.run of the "vagrant up" command
  67086. # vagrant_provider: \(aq\(aq # option for "vagrant up" like: "\-\-provider vmware_fusion"
  67087. # ssh_host: None # "None" means try to find the routable IP address from "ifconfig"
  67088. # ssh_username: \(aq\(aq # also required when ssh_host is used.
  67089. # target_network: None # Expected CIDR address range of your bridged network
  67090. # force_minion_config: false # Set "true" to re\-purpose an existing VM
  67091. .ft P
  67092. .fi
  67093. .UNINDENT
  67094. .UNINDENT
  67095. .sp
  67096. The machine can now be created and configured with the following command:
  67097. .INDENT 0.0
  67098. .INDENT 3.5
  67099. .sp
  67100. .nf
  67101. .ft C
  67102. salt\-cloud \-p vagrant\-machine my\-id
  67103. .ft P
  67104. .fi
  67105. .UNINDENT
  67106. .UNINDENT
  67107. .sp
  67108. This will create the machine specified by the cloud profile
  67109. \fBvagrant\-machine\fP, and will give the machine the minion id of
  67110. \fBmy\-id\fP\&. If the cloud master is also the salt\-master, its Salt
  67111. key will automatically be accepted on the master.
  67112. .sp
  67113. Once a salt\-minion has been successfully installed on the instance, connectivity
  67114. to it can be verified with Salt:
  67115. .INDENT 0.0
  67116. .INDENT 3.5
  67117. .sp
  67118. .nf
  67119. .ft C
  67120. salt my\-id test.version
  67121. .ft P
  67122. .fi
  67123. .UNINDENT
  67124. .UNINDENT
  67125. .SS Provisioning a Vagrant cloud host (example)
  67126. .sp
  67127. In order to query or control minions it created, each host
  67128. minion needs to track the Salt node names associated with
  67129. any guest virtual machines on it.
  67130. It does that using a Salt sdb database.
  67131. .sp
  67132. The Salt sdb is not configured by default. The following example shows a
  67133. simple installation.
  67134. .sp
  67135. This example assumes:
  67136. .INDENT 0.0
  67137. .IP \(bu 2
  67138. you are on a large network using the 10.x.x.x IP address space
  67139. .IP \(bu 2
  67140. your Salt master\(aqs Salt id is "bevymaster"
  67141. .IP \(bu 2
  67142. it will also be your salt\-cloud controller
  67143. .IP \(bu 2
  67144. it is at hardware address 10.124.30.7
  67145. .IP \(bu 2
  67146. it is running a recent Debian family Linux (raspbian)
  67147. .IP \(bu 2
  67148. your workstation is a Salt minion of bevymaster
  67149. .IP \(bu 2
  67150. your workstation\(aqs minion id is "my_laptop"
  67151. .IP \(bu 2
  67152. VirtualBox has been installed on "my_laptop" (apt install is okay)
  67153. .IP \(bu 2
  67154. Vagrant was installed from vagrantup.com. (not the 16.04 Ubuntu apt)
  67155. .IP \(bu 2
  67156. "my_laptop" has done "vagrant plugin install vagrant\-vbguest"
  67157. .IP \(bu 2
  67158. the VM you want to start is on "my_laptop" at "/home/my_username/Vagrantfile"
  67159. .UNINDENT
  67160. .INDENT 0.0
  67161. .INDENT 3.5
  67162. .sp
  67163. .nf
  67164. .ft C
  67165. # file /etc/salt/minion.d/vagrant_sdb.conf on host computer "my_laptop"
  67166. # \-\- this sdb database is required by the Vagrant module \-\-
  67167. vagrant_sdb_data: # The sdb database must have this name.
  67168. driver: sqlite3 # Let\(aqs use SQLite to store the data ...
  67169. database: /var/cache/salt/vagrant.sqlite # ... in this file ...
  67170. table: sdb # ... using this table name.
  67171. create_table: True # if not present
  67172. .ft P
  67173. .fi
  67174. .UNINDENT
  67175. .UNINDENT
  67176. .sp
  67177. Remember to re\-start your minion after changing its configuration files...
  67178. .INDENT 0.0
  67179. .INDENT 3.5
  67180. \fBsudo systemctl restart salt\-minion\fP
  67181. .UNINDENT
  67182. .UNINDENT
  67183. .INDENT 0.0
  67184. .INDENT 3.5
  67185. .sp
  67186. .nf
  67187. .ft C
  67188. # \-*\- mode: ruby \-*\-
  67189. # file /home/my_username/Vagrantfile on host computer "my_laptop"
  67190. BEVY = "bevy1"
  67191. DOMAIN = BEVY + ".test" # .test is an ICANN reserved non\-public TLD
  67192. # must supply a list of names to avoid Vagrant asking for interactive input
  67193. def get_good_ifc() # try to find a working Ubuntu network adapter name
  67194. addr_infos = Socket.getifaddrs
  67195. addr_infos.each do |info|
  67196. a = info.addr
  67197. if a and a.ip? and not a.ip_address.start_with?("127.")
  67198. return info.name
  67199. end
  67200. end
  67201. return "eth0" # fall back to an old reliable name
  67202. end
  67203. Vagrant.configure(2) do |config|
  67204. config.ssh.forward_agent = true # so you can use git ssh://...
  67205. # add a bridged network interface. (try to detect name, then guess MacOS names, too)
  67206. interface_guesses = [get_good_ifc(), \(aqen0: Ethernet\(aq, \(aqen1: Wi\-Fi (AirPort)\(aq]
  67207. config.vm.network "public_network", bridge: interface_guesses
  67208. if ARGV[0] == "up"
  67209. puts "Trying bridge network using interfaces: #{interface_guesses}"
  67210. end
  67211. config.vm.provision "shell", inline: "ip address", run: "always" # make user feel good
  67212. # . . . . . . . . . . . . Define machine QUAIL1 . . . . . . . . . . . . . .
  67213. config.vm.define "quail1", primary: true do |quail_config|
  67214. quail_config.vm.box = "boxesio/xenial64\-standard" # a public VMware & Virtualbox box
  67215. quail_config.vm.hostname = "quail1." + DOMAIN # supply a name in our bevy
  67216. quail_config.vm.provider "virtualbox" do |v|
  67217. v.memory = 1024 # limit memory for the virtual box
  67218. v.cpus = 1
  67219. v.linked_clone = true # make a soft copy of the base Vagrant box
  67220. v.customize ["modifyvm", :id, "\-\-natnet1", "192.168.128.0/24"] # do not use 10.x network for NAT
  67221. end
  67222. end
  67223. end
  67224. .ft P
  67225. .fi
  67226. .UNINDENT
  67227. .UNINDENT
  67228. .INDENT 0.0
  67229. .INDENT 3.5
  67230. .sp
  67231. .nf
  67232. .ft C
  67233. # file /etc/salt/cloud.profiles.d/my_vagrant_profiles.conf on bevymaster
  67234. q1:
  67235. host: my_laptop # the Salt id of your virtual machine host
  67236. machine: quail1 # a machine name in the Vagrantfile (if not primary)
  67237. vagrant_runas: my_username # owner of Vagrant box files on "my_laptop"
  67238. cwd: \(aq/home/my_username\(aq # the path (on "my_laptop") of the Vagrantfile
  67239. provider: my_vagrant_provider # name of entry in provider.conf file
  67240. target_network: \(aq10.0.0.0/8\(aq # VM external address will be somewhere here
  67241. .ft P
  67242. .fi
  67243. .UNINDENT
  67244. .UNINDENT
  67245. .INDENT 0.0
  67246. .INDENT 3.5
  67247. .sp
  67248. .nf
  67249. .ft C
  67250. # file /etc/salt/cloud.providers.d/vagrant_provider.conf on bevymaster
  67251. my_vagrant_provider:
  67252. driver: vagrant
  67253. minion:
  67254. master: 10.124.30.7 # the hard address of the master
  67255. .ft P
  67256. .fi
  67257. .UNINDENT
  67258. .UNINDENT
  67259. .SS Create and use your new Salt minion
  67260. .INDENT 0.0
  67261. .IP \(bu 2
  67262. Typing on the Salt master computer \fBbevymaster\fP, tell it to create a new minion named \fBv1\fP using profile \fBq1\fP\&...
  67263. .UNINDENT
  67264. .INDENT 0.0
  67265. .INDENT 3.5
  67266. .sp
  67267. .nf
  67268. .ft C
  67269. sudo salt\-cloud \-p q1 v1
  67270. sudo salt v1 network.ip_addrs
  67271. [ you get a list of IP addresses, including the bridged one ]
  67272. .ft P
  67273. .fi
  67274. .UNINDENT
  67275. .UNINDENT
  67276. .INDENT 0.0
  67277. .IP \(bu 2
  67278. logged in to your laptop (or some other computer known to GitHub)...
  67279. .INDENT 2.0
  67280. .INDENT 3.5
  67281. [NOTE:] if you are using MacOS, you need to type \fBssh\-add \-K\fP after each boot,
  67282. unless you use one of the methods in \fI\%this gist\fP\&.
  67283. .UNINDENT
  67284. .UNINDENT
  67285. .UNINDENT
  67286. .INDENT 0.0
  67287. .INDENT 3.5
  67288. .sp
  67289. .nf
  67290. .ft C
  67291. ssh \-A vagrant@< the bridged network address >
  67292. # [ or, if you are at /home/my_username/ on my_laptop ]
  67293. vagrant ssh quail1
  67294. .ft P
  67295. .fi
  67296. .UNINDENT
  67297. .UNINDENT
  67298. .INDENT 0.0
  67299. .IP \(bu 2
  67300. then typing on your new node "v1" (a.k.a. quail1.bevy1.test)...
  67301. .UNINDENT
  67302. .INDENT 0.0
  67303. .INDENT 3.5
  67304. .sp
  67305. .nf
  67306. .ft C
  67307. password: vagrant
  67308. # [ stuff types out ... ]
  67309. ls \-al /vagrant
  67310. # [ should be shared /home/my_username from my_laptop ]
  67311. # you can access other network facilities using the ssh authorization
  67312. # as recorded in your ~.ssh/ directory on my_laptop ...
  67313. sudo apt update
  67314. sudo apt install git
  67315. git clone ssh://git@github.com/yourID/your_project
  67316. # etc...
  67317. .ft P
  67318. .fi
  67319. .UNINDENT
  67320. .UNINDENT
  67321. .SS Getting Started with VEXXHOST
  67322. .sp
  67323. \fI\%VEXXHOST\fP is a cloud computing host which provides
  67324. \fI\%Canadian cloud computing\fP services
  67325. which are based in Monteral and use the libcloud OpenStack driver. VEXXHOST
  67326. currently runs the Havana release of OpenStack. When provisioning new
  67327. instances, they automatically get a public IP and private IP address.
  67328. Therefore, you do not need to assign a floating IP to access your instance
  67329. after it\(aqs booted.
  67330. .SS Cloud Provider Configuration
  67331. .sp
  67332. To use the \fIopenstack\fP driver for the VEXXHOST public cloud, you will need to
  67333. set up the cloud provider configuration file as in the example below:
  67334. .sp
  67335. \fB/etc/salt/cloud.providers.d/vexxhost.conf\fP:
  67336. In order to use the VEXXHOST public cloud, you will need to setup a cloud
  67337. provider configuration file as in the example below which uses the OpenStack
  67338. driver.
  67339. .INDENT 0.0
  67340. .INDENT 3.5
  67341. .sp
  67342. .nf
  67343. .ft C
  67344. my\-vexxhost\-config:
  67345. # Set the location of the salt\-master
  67346. #
  67347. minion:
  67348. master: saltmaster.example.com
  67349. # Configure VEXXHOST using the OpenStack plugin
  67350. #
  67351. identity_url: http://auth.api.thenebulacloud.com:5000/v2.0/tokens
  67352. compute_name: nova
  67353. # Set the compute region:
  67354. #
  67355. compute_region: na\-yul\-nhs1
  67356. # Configure VEXXHOST authentication credentials
  67357. #
  67358. user: your\-tenant\-id
  67359. password: your\-api\-key
  67360. tenant: your\-tenant\-name
  67361. # keys to allow connection to the instance launched
  67362. #
  67363. ssh_key_name: yourkey
  67364. ssh_key_file: /path/to/key/yourkey.priv
  67365. driver: openstack
  67366. .ft P
  67367. .fi
  67368. .UNINDENT
  67369. .UNINDENT
  67370. .sp
  67371. \fBNOTE:\fP
  67372. .INDENT 0.0
  67373. .INDENT 3.5
  67374. Changed in version 2015.8.0.
  67375. .sp
  67376. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  67377. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  67378. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  67379. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  67380. to use \fBprovider\fP to refer to provider configurations that you define.
  67381. .UNINDENT
  67382. .UNINDENT
  67383. .SS Authentication
  67384. .sp
  67385. All of the authentication fields that you need can be found by logging into
  67386. your VEXXHOST customer center. Once you\(aqve logged in, you will need to click
  67387. on "CloudConsole" and then click on "API Credentials".
  67388. .SS Cloud Profile Configuration
  67389. .sp
  67390. In order to get the correct image UUID and the instance type to use in the
  67391. cloud profile, you can run the following command respectively:
  67392. .INDENT 0.0
  67393. .INDENT 3.5
  67394. .sp
  67395. .nf
  67396. .ft C
  67397. # salt\-cloud \-\-list\-images=vexxhost\-config
  67398. # salt\-cloud \-\-list\-sizes=vexxhost\-config
  67399. .ft P
  67400. .fi
  67401. .UNINDENT
  67402. .UNINDENT
  67403. .sp
  67404. Once you have that, you can go ahead and create a new cloud profile. This
  67405. profile will build an Ubuntu 12.04 LTS \fInb.2G\fP instance.
  67406. .sp
  67407. \fB/etc/salt/cloud.profiles.d/vh_ubuntu1204_2G.conf\fP:
  67408. .INDENT 0.0
  67409. .INDENT 3.5
  67410. .sp
  67411. .nf
  67412. .ft C
  67413. vh_ubuntu1204_2G:
  67414. provider: my\-vexxhost\-config
  67415. image: 4051139f\-750d\-4d72\-8ef0\-074f2ccc7e5a
  67416. size: nb.2G
  67417. .ft P
  67418. .fi
  67419. .UNINDENT
  67420. .UNINDENT
  67421. .SS Provision an instance
  67422. .sp
  67423. To create an instance based on the sample profile that we created above, you
  67424. can run the following \fIsalt\-cloud\fP command.
  67425. .INDENT 0.0
  67426. .INDENT 3.5
  67427. .sp
  67428. .nf
  67429. .ft C
  67430. # salt\-cloud \-p vh_ubuntu1204_2G vh_instance1
  67431. .ft P
  67432. .fi
  67433. .UNINDENT
  67434. .UNINDENT
  67435. .sp
  67436. Typically, instances are provisioned in under 30 seconds on the VEXXHOST public
  67437. cloud. After the instance provisions, it will be set up a minion and then
  67438. return all the instance information once it\(aqs complete.
  67439. .sp
  67440. Once the instance has been setup, you can test connectivity to it by running
  67441. the following command:
  67442. .INDENT 0.0
  67443. .INDENT 3.5
  67444. .sp
  67445. .nf
  67446. .ft C
  67447. # salt vh_instance1 test.version
  67448. .ft P
  67449. .fi
  67450. .UNINDENT
  67451. .UNINDENT
  67452. .sp
  67453. You can now continue to provision new instances and they will all automatically
  67454. be set up as minions of the master you\(aqve defined in the configuration file.
  67455. .SS Getting Started With Virtualbox
  67456. .sp
  67457. The Virtualbox cloud module allows you to manage a \fBlocal\fP Virtualbox hypervisor. Remote hypervisors may come later on.
  67458. .SS Dependencies
  67459. .sp
  67460. The virtualbox module for Salt Cloud requires the \fI\%Virtualbox SDK\fP
  67461. which is contained in a virtualbox installation from
  67462. .sp
  67463. \fI\%https://www.virtualbox.org/wiki/Downloads\fP
  67464. .SS Configuration
  67465. .sp
  67466. The Virtualbox cloud module just needs to use the virtualbox driver for now. Virtualbox will be run as the running user.
  67467. .sp
  67468. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/virtualbox.conf\fP:
  67469. .INDENT 0.0
  67470. .INDENT 3.5
  67471. .sp
  67472. .nf
  67473. .ft C
  67474. virtualbox\-config:
  67475. driver: virtualbox
  67476. .ft P
  67477. .fi
  67478. .UNINDENT
  67479. .UNINDENT
  67480. .SS Profiles
  67481. .sp
  67482. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  67483. \fB/etc/salt/cloud.profiles.d/virtualbox.conf\fP:
  67484. .INDENT 0.0
  67485. .INDENT 3.5
  67486. .sp
  67487. .nf
  67488. .ft C
  67489. virtualbox\-test:
  67490. provider: virtualbox\-config
  67491. clonefrom: VM_to_clone_from
  67492. # Optional
  67493. power_on: True
  67494. deploy: True
  67495. ssh_username: a_username
  67496. password: a_password
  67497. sudo: a_username
  67498. sudo_password: a_password
  67499. # Example minion config
  67500. minion:
  67501. master: localhost
  67502. make_master: True
  67503. .ft P
  67504. .fi
  67505. .UNINDENT
  67506. .UNINDENT
  67507. .INDENT 0.0
  67508. .TP
  67509. \fBclonefrom\fP \fBMandatory\fP
  67510. Enter the name of the VM/template to clone from.
  67511. .UNINDENT
  67512. .sp
  67513. So far only machines can only be cloned and automatically provisioned by Salt Cloud.
  67514. .SS Provisioning
  67515. .sp
  67516. In order to provision when creating a new machine \fBpower_on\fP and \fBdeploy\fP have to be \fBTrue\fP\&.
  67517. .sp
  67518. Furthermore to connect to the VM \fBssh_username\fP and \fBpassword\fP will have to be set.
  67519. .sp
  67520. \fBsudo\fP and \fBsudo_password\fP are the credentials for getting root access in order to deploy salt
  67521. .SS Actions
  67522. .INDENT 0.0
  67523. .TP
  67524. .B \fBstart\fP
  67525. Attempt to boot a VM by name. VMs should have unique names in order to boot the correct one.
  67526. .TP
  67527. .B \fBstop\fP
  67528. Attempt to stop a VM. This is akin to a force shutdown or 5 second press.
  67529. .UNINDENT
  67530. .SS Functions
  67531. .INDENT 0.0
  67532. .TP
  67533. .B \fBshow_image\fP
  67534. Show all available information about a VM given by the \fIimage\fP parameter
  67535. .INDENT 7.0
  67536. .INDENT 3.5
  67537. .sp
  67538. .nf
  67539. .ft C
  67540. $ salt\-cloud \-f show_image virtualbox image=my_vm_name
  67541. .ft P
  67542. .fi
  67543. .UNINDENT
  67544. .UNINDENT
  67545. .UNINDENT
  67546. .SS Getting Started With VMware
  67547. .sp
  67548. New in version 2015.5.4.
  67549. .sp
  67550. \fBAuthor\fP: Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>
  67551. .sp
  67552. The VMware cloud module allows you to manage VMware ESX, ESXi, and vCenter.
  67553. .SS Dependencies
  67554. .sp
  67555. The vmware module for Salt Cloud requires the \fBpyVmomi\fP package, which is
  67556. available at PyPI:
  67557. .sp
  67558. \fI\%https://pypi.org/project/pyvmomi/\fP
  67559. .sp
  67560. This package can be installed using \fIpip\fP or \fIeasy_install\fP:
  67561. .INDENT 0.0
  67562. .INDENT 3.5
  67563. .sp
  67564. .nf
  67565. .ft C
  67566. pip install pyvmomi
  67567. easy_install pyvmomi
  67568. .ft P
  67569. .fi
  67570. .UNINDENT
  67571. .UNINDENT
  67572. .sp
  67573. \fBNOTE:\fP
  67574. .INDENT 0.0
  67575. .INDENT 3.5
  67576. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  67577. versions of Python. If using version 6.0 of pyVmomi, the machine that you
  67578. are running the proxy minion process from must have either Python 2.7.9 or
  67579. newer This is due to an upstream dependency in pyVmomi 6.0 that is not supported
  67580. in Python version 2.6 to 2.7.8. If the version of Python running the salt\-cloud
  67581. command is not in the supported range, you will need to install an earlier version
  67582. of pyVmomi. See \fI\%Issue #29537\fP for more information.
  67583. .UNINDENT
  67584. .UNINDENT
  67585. .sp
  67586. \fBNOTE:\fP
  67587. .INDENT 0.0
  67588. .INDENT 3.5
  67589. pyVmomi doesn\(aqt expose the ability to specify the locale when connecting to
  67590. VMware. This causes parsing issues when connecting to an instance of VMware
  67591. running under a non\-English locale. Until this feature is added upstream
  67592. \fI\%Issue #38402\fP contains a workaround.
  67593. .UNINDENT
  67594. .UNINDENT
  67595. .SS Configuration
  67596. .sp
  67597. The VMware cloud module needs the vCenter or ESX/ESXi URL, username and password to be
  67598. set up in the cloud configuration at
  67599. \fB/etc/salt/cloud.providers\fP or \fB/etc/salt/cloud.providers.d/vmware.conf\fP:
  67600. .INDENT 0.0
  67601. .INDENT 3.5
  67602. .sp
  67603. .nf
  67604. .ft C
  67605. my\-vmware\-config:
  67606. driver: vmware
  67607. user: \(aqDOMAIN\euser\(aq
  67608. password: \(aqverybadpass\(aq
  67609. url: \(aq10.20.30.40\(aq
  67610. vcenter01:
  67611. driver: vmware
  67612. user: \(aqDOMAIN\euser\(aq
  67613. password: \(aqverybadpass\(aq
  67614. url: \(aqvcenter01.domain.com\(aq
  67615. protocol: \(aqhttps\(aq
  67616. port: 443
  67617. vcenter02:
  67618. driver: vmware
  67619. user: \(aqDOMAIN\euser\(aq
  67620. password: \(aqverybadpass\(aq
  67621. url: \(aqvcenter02.domain.com\(aq
  67622. protocol: \(aqhttp\(aq
  67623. port: 80
  67624. esx01:
  67625. driver: vmware
  67626. user: \(aqadmin\(aq
  67627. password: \(aqverybadpass\(aq
  67628. url: \(aqesx01.domain.com\(aq
  67629. .ft P
  67630. .fi
  67631. .UNINDENT
  67632. .UNINDENT
  67633. .sp
  67634. \fBNOTE:\fP
  67635. .INDENT 0.0
  67636. .INDENT 3.5
  67637. Optionally, \fBprotocol\fP and \fBport\fP can be specified if the vCenter
  67638. server is not using the defaults. Default is \fBprotocol: https\fP and
  67639. \fBport: 443\fP\&.
  67640. .UNINDENT
  67641. .UNINDENT
  67642. .sp
  67643. \fBNOTE:\fP
  67644. .INDENT 0.0
  67645. .INDENT 3.5
  67646. Changed in version 2015.8.0.
  67647. .sp
  67648. The \fBprovider\fP parameter in cloud provider configuration was renamed to \fBdriver\fP\&.
  67649. This change was made to avoid confusion with the \fBprovider\fP parameter that is
  67650. used in cloud profile configuration. Cloud provider configuration now uses \fBdriver\fP
  67651. to refer to the salt\-cloud driver that provides the underlying functionality to
  67652. connect to a cloud provider, while cloud profile configuration continues to use
  67653. \fBprovider\fP to refer to the cloud provider configuration that you define.
  67654. .UNINDENT
  67655. .UNINDENT
  67656. .SS Profiles
  67657. .sp
  67658. Set up an initial profile at \fB/etc/salt/cloud.profiles\fP or
  67659. \fB/etc/salt/cloud.profiles.d/vmware.conf\fP:
  67660. .INDENT 0.0
  67661. .INDENT 3.5
  67662. .sp
  67663. .nf
  67664. .ft C
  67665. vmware\-centos6.5:
  67666. provider: vcenter01
  67667. clonefrom: test\-vm
  67668. ## Optional arguments
  67669. num_cpus: 4
  67670. memory: 8GB
  67671. devices:
  67672. cd:
  67673. CD/DVD drive 1:
  67674. device_type: datastore_iso_file
  67675. iso_path: "[nap004\-1] vmimages/tools\-isoimages/linux.iso"
  67676. CD/DVD drive 2:
  67677. device_type: client_device
  67678. mode: atapi
  67679. controller: IDE 2
  67680. CD/DVD drive 3:
  67681. device_type: client_device
  67682. mode: passthrough
  67683. controller: IDE 3
  67684. disk:
  67685. Hard disk 1:
  67686. size: 30
  67687. Hard disk 2:
  67688. size: 20
  67689. controller: SCSI controller 2
  67690. Hard disk 3:
  67691. size: 5
  67692. controller: SCSI controller 3
  67693. datastore: smalldiskdatastore
  67694. network:
  67695. Network adapter 1:
  67696. name: 10.20.30\-400\-Test
  67697. switch_type: standard
  67698. ip: 10.20.30.123
  67699. gateway: [10.20.30.110]
  67700. subnet_mask: 255.255.255.128
  67701. domain: example.com
  67702. Network adapter 2:
  67703. name: 10.30.40\-500\-Dev\-DHCP
  67704. adapter_type: e1000
  67705. switch_type: distributed
  67706. mac: \(aq00:16:3e:e8:19:0f\(aq
  67707. Network adapter 3:
  67708. name: 10.40.50\-600\-Prod
  67709. adapter_type: vmxnet3
  67710. switch_type: distributed
  67711. ip: 10.40.50.123
  67712. gateway: [10.40.50.110]
  67713. subnet_mask: 255.255.255.128
  67714. domain: example.com
  67715. scsi:
  67716. SCSI controller 1:
  67717. type: lsilogic
  67718. SCSI controller 2:
  67719. type: lsilogic_sas
  67720. bus_sharing: virtual
  67721. SCSI controller 3:
  67722. type: paravirtual
  67723. bus_sharing: physical
  67724. ide:
  67725. IDE 2: {}
  67726. IDE 3: {}
  67727. domain: example.com
  67728. dns_servers:
  67729. \- 123.127.255.240
  67730. \- 123.127.255.241
  67731. \- 123.127.255.242
  67732. resourcepool: Resources
  67733. cluster: Prod
  67734. datastore: HUGE\-DATASTORE\-Cluster
  67735. folder: Development
  67736. datacenter: DC1
  67737. host: c4212n\-002.domain.com
  67738. template: False
  67739. power_on: True
  67740. extra_config:
  67741. mem.hotadd: \(aqyes\(aq
  67742. guestinfo.foo: bar
  67743. guestinfo.domain: foobar.com
  67744. guestinfo.customVariable: customValue
  67745. annotation: Created by Salt\-Cloud
  67746. deploy: True
  67747. customization: True
  67748. private_key: /root/.ssh/mykey.pem
  67749. ssh_username: cloud\-user
  67750. password: veryVeryBadPassword
  67751. minion:
  67752. master: 123.127.193.105
  67753. file_map:
  67754. /path/to/local/custom/script: /path/to/remote/script
  67755. /path/to/local/file: /path/to/remote/file
  67756. /srv/salt/yum/epel.repo: /etc/yum.repos.d/epel.repo
  67757. hardware_version: 10
  67758. image: centos64Guest
  67759. #For Windows VM
  67760. win_username: Administrator
  67761. win_password: administrator
  67762. win_organization_name: ABC\-Corp
  67763. plain_text: True
  67764. win_installer: /root/Salt\-Minion\-2015.8.4\-AMD64\-Setup.exe
  67765. win_user_fullname: Windows User
  67766. .ft P
  67767. .fi
  67768. .UNINDENT
  67769. .UNINDENT
  67770. .INDENT 0.0
  67771. .TP
  67772. .B \fBprovider\fP
  67773. Enter the name that was specified when the cloud provider config was created.
  67774. .TP
  67775. .B \fBclonefrom\fP
  67776. Enter the name of the VM/template to clone from. If not specified, the VM will be created
  67777. without cloning.
  67778. .TP
  67779. .B \fBnum_cpus\fP
  67780. Enter the number of vCPUS that you want the VM/template to have. If not specified,
  67781. the current VM/template\(aqs vCPU count is used.
  67782. .TP
  67783. .B \fBcores_per_socket\fP
  67784. Enter the number of cores per vCPU that you want the VM/template to have. If not specified,
  67785. this will default to 1.
  67786. .sp
  67787. \fBNOTE:\fP
  67788. .INDENT 7.0
  67789. .INDENT 3.5
  67790. Cores per socket should be less than or equal to the total number of
  67791. vCPUs assigned to the VM/template.
  67792. .UNINDENT
  67793. .UNINDENT
  67794. .sp
  67795. New in version 2016.11.0.
  67796. .TP
  67797. .B \fBmemory\fP
  67798. Enter the memory size (in MB or GB) that you want the VM/template to have. If
  67799. not specified, the current VM/template\(aqs memory size is used. Example
  67800. \fBmemory: 8GB\fP or \fBmemory: 8192MB\fP\&.
  67801. .TP
  67802. .B \fBdevices\fP
  67803. Enter the device specifications here. Currently, the following devices can be
  67804. created or reconfigured:
  67805. .INDENT 7.0
  67806. .TP
  67807. .B cd
  67808. Enter the CD/DVD drive specification here. If the CD/DVD drive doesn\(aqt exist,
  67809. it will be created with the specified configuration. If the CD/DVD drive
  67810. already exists, it will be reconfigured with the specifications. The following
  67811. options can be specified per CD/DVD drive:
  67812. .INDENT 7.0
  67813. .TP
  67814. .B device_type
  67815. Specify how the CD/DVD drive should be used. Currently supported types are
  67816. \fBclient_device\fP and \fBdatastore_iso_file\fP\&. Default is
  67817. \fBdevice_type: client_device\fP
  67818. .TP
  67819. .B iso_path
  67820. Enter the path to the iso file present on the datastore only if
  67821. \fBdevice_type: datastore_iso_file\fP\&. The syntax to specify this is
  67822. \fBiso_path: "[datastoreName] vmimages/tools\-isoimages/linux.iso"\fP\&. This
  67823. field is ignored if \fBdevice_type: client_device\fP
  67824. .TP
  67825. .B mode
  67826. Enter the mode of connection only if \fBdevice_type: client_device\fP\&. Currently
  67827. supported modes are \fBpassthrough\fP and \fBatapi\fP\&. This field is ignored if
  67828. \fBdevice_type: datastore_iso_file\fP\&. Default is \fBmode: passthrough\fP
  67829. .TP
  67830. .B controller
  67831. Specify the IDE controller label to which this drive should be attached.
  67832. This should be specified only when creating both the specified IDE
  67833. controller as well as the CD/DVD drive at the same time.
  67834. .UNINDENT
  67835. .TP
  67836. .B disk
  67837. Enter the disk specification here. If the hard disk doesn\(aqt exist, it will
  67838. be created with the provided size. If the hard disk already exists, it will
  67839. be expanded if the provided size is greater than the current size of the disk.
  67840. .INDENT 7.0
  67841. .TP
  67842. .B size
  67843. Enter the size of disk in GB
  67844. .TP
  67845. .B thin_provision
  67846. Specifies whether the disk should be thin provisioned or not. Default is \fBthin_provision: False\fP\&.
  67847. .. versionadded:: 2016.3.0
  67848. .TP
  67849. .B eagerly_scrub
  67850. Specifies whether the disk should be rewrite with zeros during thick provisioning or not.
  67851. Default is \fBeagerly_scrub: False\fP\&.
  67852. .. versionadded:: 2018.3.0
  67853. .TP
  67854. .B controller
  67855. Specify the SCSI controller label to which this disk should be attached.
  67856. This should be specified only when creating both the specified SCSI
  67857. controller as well as the hard disk at the same time.
  67858. .TP
  67859. .B datastore
  67860. The name of a valid datastore should you wish the new disk to be in
  67861. a datastore other than the default for the VM.
  67862. .UNINDENT
  67863. .TP
  67864. .B network
  67865. Enter the network adapter specification here. If the network adapter doesn\(aqt
  67866. exist, a new network adapter will be created with the specified network name,
  67867. type and other configuration. If the network adapter already exists, it will
  67868. be reconfigured with the specifications. The following additional options can
  67869. be specified per network adapter (See example above):
  67870. .INDENT 7.0
  67871. .TP
  67872. .B name
  67873. Enter the network name you want the network adapter to be mapped to.
  67874. .TP
  67875. .B adapter_type
  67876. Enter the network adapter type you want to create. Currently supported
  67877. types are \fBvmxnet\fP, \fBvmxnet2\fP, \fBvmxnet3\fP, \fBe1000\fP and \fBe1000e\fP\&.
  67878. If no type is specified, by default \fBvmxnet3\fP will be used.
  67879. .TP
  67880. .B switch_type
  67881. Enter the type of switch to use. This decides whether to use a standard
  67882. switch network or a distributed virtual portgroup. Currently supported
  67883. types are \fBstandard\fP for standard portgroups and \fBdistributed\fP for
  67884. distributed virtual portgroups.
  67885. .TP
  67886. .B ip
  67887. Enter the static IP you want the network adapter to be mapped to. If the
  67888. network specified is DHCP enabled, you do not have to specify this.
  67889. .TP
  67890. .B gateway
  67891. Enter the gateway for the network as a list. If the network specified
  67892. is DHCP enabled, you do not have to specify this.
  67893. .TP
  67894. .B subnet_mask
  67895. Enter the subnet mask for the network. If the network specified is DHCP
  67896. enabled, you do not have to specify this.
  67897. .TP
  67898. .B domain
  67899. Enter the domain to be used with the network adapter. If the network
  67900. specified is DHCP enabled, you do not have to specify this.
  67901. .TP
  67902. .B mac
  67903. Enter the MAC for this network adapter. If not specified an address
  67904. will be selected automatically.
  67905. .UNINDENT
  67906. .TP
  67907. .B scsi
  67908. Enter the SCSI controller specification here. If the SCSI controller doesn\(aqt exist,
  67909. a new SCSI controller will be created of the specified type. If the SCSI controller
  67910. already exists, it will be reconfigured with the specifications. The following
  67911. additional options can be specified per SCSI controller:
  67912. .INDENT 7.0
  67913. .TP
  67914. .B type
  67915. Enter the SCSI controller type you want to create. Currently supported
  67916. types are \fBlsilogic\fP, \fBlsilogic_sas\fP and \fBparavirtual\fP\&. Type must
  67917. be specified when creating a new SCSI controller.
  67918. .TP
  67919. .B bus_sharing
  67920. Specify this if sharing of virtual disks between virtual machines is desired.
  67921. The following can be specified:
  67922. .INDENT 7.0
  67923. .TP
  67924. .B virtual
  67925. Virtual disks can be shared between virtual machines on the same server.
  67926. .TP
  67927. .B physical
  67928. Virtual disks can be shared between virtual machines on any server.
  67929. .TP
  67930. .B no
  67931. Virtual disks cannot be shared between virtual machines.
  67932. .UNINDENT
  67933. .UNINDENT
  67934. .TP
  67935. .B ide
  67936. Enter the IDE controller specification here. If the IDE controller doesn\(aqt exist,
  67937. a new IDE controller is created. If the IDE controller already exists,
  67938. no further changes to it are made. The IDE controller specification is
  67939. a dictionary.
  67940. .INDENT 7.0
  67941. .INDENT 3.5
  67942. .sp
  67943. .nf
  67944. .ft C
  67945. ide:
  67946. IDE 2: {}
  67947. .ft P
  67948. .fi
  67949. .UNINDENT
  67950. .UNINDENT
  67951. .UNINDENT
  67952. .TP
  67953. .B \fBdomain\fP
  67954. Enter the global domain name to be used for DNS. If not specified and if the VM name
  67955. is a FQDN, \fBdomain\fP is set to the domain from the VM name. Default is \fBlocal\fP\&.
  67956. .TP
  67957. .B \fBdns_servers\fP
  67958. Enter the list of DNS servers to use in order of priority.
  67959. .TP
  67960. .B \fBresourcepool\fP
  67961. Enter the name of the resourcepool to which the new virtual machine should be
  67962. attached. This determines what compute resources will be available to the clone.
  67963. .sp
  67964. \fBNOTE:\fP
  67965. .INDENT 7.0
  67966. .INDENT 3.5
  67967. .INDENT 0.0
  67968. .IP \(bu 2
  67969. For a clone operation from a virtual machine, it will use the same
  67970. resourcepool as the original virtual machine unless specified.
  67971. .IP \(bu 2
  67972. For a clone operation from a template to a virtual machine, specifying
  67973. either this or cluster is required. If both are specified, the resourcepool
  67974. value will be used.
  67975. .IP \(bu 2
  67976. For a clone operation to a template, this argument is ignored.
  67977. .UNINDENT
  67978. .UNINDENT
  67979. .UNINDENT
  67980. .TP
  67981. .B \fBcluster\fP
  67982. Enter the name of the cluster whose resource pool the new virtual machine should
  67983. be attached to.
  67984. .sp
  67985. \fBNOTE:\fP
  67986. .INDENT 7.0
  67987. .INDENT 3.5
  67988. .INDENT 0.0
  67989. .IP \(bu 2
  67990. For a clone operation from a virtual machine, it will use the same cluster\(aqs
  67991. resourcepool as the original virtual machine unless specified.
  67992. .IP \(bu 2
  67993. For a clone operation from a template to a virtual machine, specifying either
  67994. this or resourcepool is required. If both are specified, the resourcepool
  67995. value will be used.
  67996. .IP \(bu 2
  67997. For a clone operation to a template, this argument is ignored.
  67998. .UNINDENT
  67999. .UNINDENT
  68000. .UNINDENT
  68001. .TP
  68002. .B \fBdatastore\fP
  68003. Enter the name of the datastore or the datastore cluster where the virtual machine
  68004. should be located on physical storage. If not specified, the current datastore is
  68005. used.
  68006. .sp
  68007. \fBNOTE:\fP
  68008. .INDENT 7.0
  68009. .INDENT 3.5
  68010. .INDENT 0.0
  68011. .IP \(bu 2
  68012. If you specify a datastore cluster name, DRS Storage recommendation is
  68013. automatically applied.
  68014. .IP \(bu 2
  68015. If you specify a datastore name, DRS Storage recommendation is disabled.
  68016. .UNINDENT
  68017. .UNINDENT
  68018. .UNINDENT
  68019. .TP
  68020. .B \fBfolder\fP
  68021. Enter the name of the folder that will contain the new virtual machine.
  68022. .sp
  68023. \fBNOTE:\fP
  68024. .INDENT 7.0
  68025. .INDENT 3.5
  68026. .INDENT 0.0
  68027. .IP \(bu 2
  68028. For a clone operation from a VM/template, the new VM/template will be added
  68029. to the same folder that the original VM/template belongs to unless specified.
  68030. .IP \(bu 2
  68031. If both folder and datacenter are specified, the folder value will be used.
  68032. .UNINDENT
  68033. .UNINDENT
  68034. .UNINDENT
  68035. .TP
  68036. .B \fBdatacenter\fP
  68037. Enter the name of the datacenter that will contain the new virtual machine.
  68038. .sp
  68039. \fBNOTE:\fP
  68040. .INDENT 7.0
  68041. .INDENT 3.5
  68042. .INDENT 0.0
  68043. .IP \(bu 2
  68044. For a clone operation from a VM/template, the new VM/template will be added
  68045. to the same folder that the original VM/template belongs to unless specified.
  68046. .IP \(bu 2
  68047. If both folder and datacenter are specified, the folder value will be used.
  68048. .UNINDENT
  68049. .UNINDENT
  68050. .UNINDENT
  68051. .TP
  68052. .B \fBhost\fP
  68053. Enter the name of the target host where the virtual machine should be registered.
  68054. .sp
  68055. If not specified:
  68056. .sp
  68057. \fBNOTE:\fP
  68058. .INDENT 7.0
  68059. .INDENT 3.5
  68060. .INDENT 0.0
  68061. .IP \(bu 2
  68062. If resource pool is not specified, current host is used.
  68063. .IP \(bu 2
  68064. If resource pool is specified, and the target pool represents a stand\-alone
  68065. host, the host is used.
  68066. .IP \(bu 2
  68067. If resource pool is specified, and the target pool represents a DRS\-enabled
  68068. cluster, a host selected by DRS is used.
  68069. .IP \(bu 2
  68070. If resource pool is specified and the target pool represents a cluster without
  68071. DRS enabled, an InvalidArgument exception be thrown.
  68072. .UNINDENT
  68073. .UNINDENT
  68074. .UNINDENT
  68075. .TP
  68076. .B \fBtemplate\fP
  68077. Specifies whether the new virtual machine should be marked as a template or not.
  68078. Default is \fBtemplate: False\fP\&.
  68079. .TP
  68080. .B \fBpower_on\fP
  68081. Specifies whether the new virtual machine should be powered on or not. If
  68082. \fBtemplate: True\fP is set, this field is ignored. Default is \fBpower_on: True\fP\&.
  68083. .TP
  68084. .B \fBextra_config\fP
  68085. Specifies the additional configuration information for the virtual machine. This
  68086. describes a set of modifications to the additional options. If the key is already
  68087. present, it will be reset with the new value provided. Otherwise, a new option is
  68088. added. Keys with empty values will be removed.
  68089. .TP
  68090. .B \fBannotation\fP
  68091. User\-provided description of the virtual machine. This will store a message in the
  68092. vSphere interface, under the annotations section in the Summary view of the virtual
  68093. machine.
  68094. .TP
  68095. .B \fBdeploy\fP
  68096. Specifies if salt should be installed on the newly created VM. Default is \fBTrue\fP
  68097. so salt will be installed using the bootstrap script. If \fBtemplate: True\fP or
  68098. \fBpower_on: False\fP is set, this field is ignored and salt will not be installed.
  68099. .TP
  68100. .B \fBwait_for_ip_timeout\fP
  68101. When \fBdeploy: True\fP, this timeout determines the maximum time to wait for
  68102. VMware tools to be installed on the virtual machine. If this timeout is
  68103. reached, an attempt to determine the client\(aqs IP will be made by resolving
  68104. the VM\(aqs name. By lowering this value a salt bootstrap can be fully
  68105. automated for systems that are not built with VMware tools. Default is
  68106. \fBwait_for_ip_timeout: 1200\fP\&.
  68107. .TP
  68108. .B \fBcustomization\fP
  68109. Specify whether the new virtual machine should be customized or not. If
  68110. \fBcustomization: False\fP is set, the new virtual machine will not be customized.
  68111. Default is \fBcustomization: True\fP\&.
  68112. .TP
  68113. .B \fBprivate_key\fP
  68114. Specify the path to the private key to use to be able to ssh to the VM.
  68115. .TP
  68116. .B \fBssh_username\fP
  68117. Specify the username to use in order to ssh to the VM. Default is \fBroot\fP
  68118. .TP
  68119. .B \fBpassword\fP
  68120. Specify a password to use in order to ssh to the VM. If \fBprivate_key\fP is
  68121. specified, you do not need to specify this.
  68122. .TP
  68123. .B \fBminion\fP
  68124. Specify custom minion configuration you want the salt minion to have. A good example
  68125. would be to specify the \fBmaster\fP as the IP/DNS name of the master.
  68126. .TP
  68127. .B \fBfile_map\fP
  68128. Specify file/files you want to copy to the VM before the bootstrap script is run
  68129. and salt is installed. A good example of using this would be if you need to put
  68130. custom repo files on the server in case your server will be in a private network
  68131. and cannot reach external networks.
  68132. .TP
  68133. .B \fBhardware_version\fP
  68134. Specify the virtual hardware version for the vm/template that is supported by the
  68135. host.
  68136. .TP
  68137. .B \fBimage\fP
  68138. Specify the guest id of the VM. For a full list of supported values see the
  68139. VMware vSphere documentation:
  68140. .sp
  68141. \fI\%https://code.vmware.com/apis?pid=com.vmware.wssdk.apiref.doc&release=vsphere\-60&topic=vim.vm.GuestOsDescriptor.GuestOsIdentifier.html\fP
  68142. .sp
  68143. \fBNOTE:\fP
  68144. .INDENT 7.0
  68145. .INDENT 3.5
  68146. For a clone operation, this argument is ignored.
  68147. .UNINDENT
  68148. .UNINDENT
  68149. .TP
  68150. .B \fBwin_username\fP
  68151. Specify windows vm administrator account.
  68152. .sp
  68153. \fBNOTE:\fP
  68154. .INDENT 7.0
  68155. .INDENT 3.5
  68156. Windows template should have "administrator" account.
  68157. .UNINDENT
  68158. .UNINDENT
  68159. .TP
  68160. .B \fBwin_password\fP
  68161. Specify windows vm administrator account password.
  68162. .sp
  68163. \fBNOTE:\fP
  68164. .INDENT 7.0
  68165. .INDENT 3.5
  68166. During network configuration (if network specified), it is used to specify new administrator password for the machine.
  68167. .UNINDENT
  68168. .UNINDENT
  68169. .TP
  68170. .B \fBwin_organization_name\fP
  68171. .INDENT 7.0
  68172. .TP
  68173. .B Specify windows vm user\(aqs organization. Default organization name is Organization
  68174. VMware vSphere documentation:
  68175. .UNINDENT
  68176. .sp
  68177. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.UserData.html\fP
  68178. .TP
  68179. .B \fBwin_user_fullname\fP
  68180. .INDENT 7.0
  68181. .TP
  68182. .B Specify windows vm user\(aqs fullname. Default fullname is "Windows User"
  68183. VMware vSphere documentation:
  68184. .UNINDENT
  68185. .sp
  68186. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.UserData.html\fP
  68187. .TP
  68188. .B \fBplain_text\fP
  68189. Flag to specify whether or not the password is in plain text, rather than encrypted.
  68190. VMware vSphere documentation:
  68191. .sp
  68192. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.Password.html\fP
  68193. .TP
  68194. .B \fBwin_installer\fP
  68195. Specify windows minion client installer path
  68196. .TP
  68197. .B \fBwin_run_once\fP
  68198. Specify a list of commands to run on first login to a windows minion
  68199. .sp
  68200. \fI\%https://www.vmware.com/support/developer/vc\-sdk/visdk25pubs/ReferenceGuide/vim.vm.customization.GuiRunOnce.html\fP
  68201. .UNINDENT
  68202. .SS Cloning a VM
  68203. .sp
  68204. Cloning VMs/templates is the easiest and the preferred way to work with VMs using the VMware driver.
  68205. .sp
  68206. \fBNOTE:\fP
  68207. .INDENT 0.0
  68208. .INDENT 3.5
  68209. Cloning operations are unsupported on standalone ESXi hosts, a vCenter server will be required.
  68210. .UNINDENT
  68211. .UNINDENT
  68212. .sp
  68213. Example of a minimal profile:
  68214. .INDENT 0.0
  68215. .INDENT 3.5
  68216. .sp
  68217. .nf
  68218. .ft C
  68219. my\-minimal\-clone:
  68220. provider: vcenter01
  68221. clonefrom: \(aqtest\-vm\(aq
  68222. .ft P
  68223. .fi
  68224. .UNINDENT
  68225. .UNINDENT
  68226. .sp
  68227. When cloning a VM, all the profile configuration parameters are optional and the configuration gets inherited from the clone.
  68228. .sp
  68229. Example to add/resize a disk:
  68230. .INDENT 0.0
  68231. .INDENT 3.5
  68232. .sp
  68233. .nf
  68234. .ft C
  68235. my\-disk\-example:
  68236. provider: vcenter01
  68237. clonefrom: \(aqtest\-vm\(aq
  68238. devices:
  68239. disk:
  68240. Hard disk 1:
  68241. size: 30
  68242. .ft P
  68243. .fi
  68244. .UNINDENT
  68245. .UNINDENT
  68246. .sp
  68247. Depending on the configuration of the VM that is getting cloned, the disk in the resulting clone will differ.
  68248. .sp
  68249. \fBNOTE:\fP
  68250. .INDENT 0.0
  68251. .INDENT 3.5
  68252. .INDENT 0.0
  68253. .IP \(bu 2
  68254. If the VM has no disk named \(aqHard disk 1\(aq an empty disk with the specified size will be added to the clone.
  68255. .IP \(bu 2
  68256. If the VM has a disk named \(aqHard disk 1\(aq and the size specified is larger than the original disk, an empty disk with the specified size will be added to the clone.
  68257. .IP \(bu 2
  68258. If the VM has a disk named \(aqHard disk 1\(aq and the size specified is smaller than the original disk, an empty disk with the original size will be added to the clone.
  68259. .UNINDENT
  68260. .UNINDENT
  68261. .UNINDENT
  68262. .sp
  68263. Example to reconfigure the memory and number of vCPUs:
  68264. .INDENT 0.0
  68265. .INDENT 3.5
  68266. .sp
  68267. .nf
  68268. .ft C
  68269. my\-disk\-example:
  68270. provider: vcenter01
  68271. clonefrom: \(aqtest\-vm\(aq
  68272. memory: 16GB
  68273. num_cpus: 8
  68274. .ft P
  68275. .fi
  68276. .UNINDENT
  68277. .UNINDENT
  68278. .SS Cloning a Template
  68279. .sp
  68280. Cloning a template works similar to cloning a VM except for the fact that a resource
  68281. pool or cluster must be specified additionally in the profile.
  68282. .sp
  68283. Example of a minimal profile:
  68284. .INDENT 0.0
  68285. .INDENT 3.5
  68286. .sp
  68287. .nf
  68288. .ft C
  68289. my\-template\-clone:
  68290. provider: vcenter01
  68291. clonefrom: \(aqtest\-template\(aq
  68292. cluster: \(aqProd\(aq
  68293. .ft P
  68294. .fi
  68295. .UNINDENT
  68296. .UNINDENT
  68297. .SS Cloning from a Snapshot
  68298. .sp
  68299. New in version 2016.3.5.
  68300. .sp
  68301. Cloning from a snapshot requires that one of the
  68302. supported options be set in the cloud profile.
  68303. .sp
  68304. Supported options are \fBcreateNewChildDiskBacking\fP,
  68305. \fBmoveChildMostDiskBacking\fP, \fBmoveAllDiskBackingsAndAllowSharing\fP
  68306. and \fBmoveAllDiskBackingsAndDisallowSharing\fP\&.
  68307. .sp
  68308. Example of a minimal profile:
  68309. .INDENT 0.0
  68310. .INDENT 3.5
  68311. .sp
  68312. .nf
  68313. .ft C
  68314. my\-template\-clone:
  68315. provider: vcenter01
  68316. clonefrom: \(aqsalt_vm\(aq
  68317. snapshot:
  68318. disk_move_type: createNewChildDiskBacking
  68319. # these types are also supported
  68320. # disk_move_type: moveChildMostDiskBacking
  68321. # disk_move_type: moveAllDiskBackingsAndAllowSharing
  68322. # disk_move_type: moveAllDiskBackingsAndDisallowSharing
  68323. .ft P
  68324. .fi
  68325. .UNINDENT
  68326. .UNINDENT
  68327. .SS Creating a VM
  68328. .sp
  68329. New in version 2016.3.0.
  68330. .sp
  68331. Creating a VM from scratch means that more configuration has to be specified in the
  68332. profile because there is no place to inherit configuration from.
  68333. .sp
  68334. \fBNOTE:\fP
  68335. .INDENT 0.0
  68336. .INDENT 3.5
  68337. Unlike most cloud drivers that use prepared images, creating VMs using VMware
  68338. cloud driver needs an installation method that requires no human interaction.
  68339. For Example: preseeded ISO, kickstart URL or network PXE boot.
  68340. .UNINDENT
  68341. .UNINDENT
  68342. .sp
  68343. Example of a minimal profile:
  68344. .INDENT 0.0
  68345. .INDENT 3.5
  68346. .sp
  68347. .nf
  68348. .ft C
  68349. my\-minimal\-profile:
  68350. provider: esx01
  68351. datastore: esx01\-datastore
  68352. resourcepool: Resources
  68353. folder: vm
  68354. .ft P
  68355. .fi
  68356. .UNINDENT
  68357. .UNINDENT
  68358. .sp
  68359. \fBNOTE:\fP
  68360. .INDENT 0.0
  68361. .INDENT 3.5
  68362. The example above contains the minimum required configuration needed to create
  68363. a VM from scratch. The resulting VM will only have 1 VCPU, 32MB of RAM and will
  68364. not have any storage or networking.
  68365. .UNINDENT
  68366. .UNINDENT
  68367. .sp
  68368. Example of a complete profile:
  68369. .INDENT 0.0
  68370. .INDENT 3.5
  68371. .sp
  68372. .nf
  68373. .ft C
  68374. my\-complete\-example:
  68375. provider: esx01
  68376. datastore: esx01\-datastore
  68377. resourcepool: Resources
  68378. folder: vm
  68379. num_cpus: 2
  68380. memory: 8GB
  68381. image: debian7_64Guest
  68382. devices:
  68383. scsi:
  68384. SCSI controller 0:
  68385. type: lsilogic_sas
  68386. ide:
  68387. IDE 0: {}
  68388. IDE 1: {}
  68389. disk:
  68390. Hard disk 0:
  68391. controller: \(aqSCSI controller 0\(aq
  68392. size: 20
  68393. mode: \(aqindependent_nonpersistent\(aq
  68394. cd:
  68395. CD/DVD drive 0:
  68396. controller: \(aqIDE 0\(aq
  68397. device_type: datastore_iso_file
  68398. iso_path: \(aq[esx01\-datastore] debian\-8\-with\-preseed.iso\(aq
  68399. network:
  68400. Network adapter 0:
  68401. name: \(aqVM Network\(aq
  68402. swith_type: standard
  68403. .ft P
  68404. .fi
  68405. .UNINDENT
  68406. .UNINDENT
  68407. .sp
  68408. \fBNOTE:\fP
  68409. .INDENT 0.0
  68410. .INDENT 3.5
  68411. Depending on VMware ESX/ESXi version, an exact match for \fBimage\fP might not
  68412. be available. In such cases, the closest match to another \fBimage\fP should
  68413. be used. In the example above, a Debian 8 VM is created using the image
  68414. \fBdebian7_64Guest\fP which is for a Debian 7 guest.
  68415. .UNINDENT
  68416. .UNINDENT
  68417. .SS Specifying disk backing mode
  68418. .sp
  68419. New in version 2016.3.5.
  68420. .sp
  68421. Disk backing mode can now be specified when cloning a VM. This option
  68422. can be set in the cloud profile as shown in example below:
  68423. .INDENT 0.0
  68424. .INDENT 3.5
  68425. .sp
  68426. .nf
  68427. .ft C
  68428. my\-vm:
  68429. provider: esx01
  68430. datastore: esx01\-datastore
  68431. resourcepool: Resources
  68432. folder: vm
  68433. devices:
  68434. disk:
  68435. Hard disk 1:
  68436. mode: \(aqindependent_nonpersistent\(aq
  68437. size: 42
  68438. Hard disk 2:
  68439. mode: \(aqindependent_nonpersistent\(aq
  68440. .ft P
  68441. .fi
  68442. .UNINDENT
  68443. .UNINDENT
  68444. .SS Getting Started With Xen
  68445. .sp
  68446. The Xen cloud driver works with Citrix XenServer.
  68447. .sp
  68448. It can be used with a single XenServer or a XenServer resource pool.
  68449. .SS Setup Dependencies
  68450. .sp
  68451. This driver requires a copy of the freely available \fBXenAPI.py\fP Python module.
  68452. .sp
  68453. Information about the Xen API Python module in the XenServer SDK
  68454. can be found at \fI\%https://pypi.org/project/XenAPI/\fP
  68455. .sp
  68456. Place a copy of this module on your system. For example, it can
  68457. be placed in the \fIsite packages\fP location on your system.
  68458. .sp
  68459. The location of \fIsite packages\fP can be determined by running:
  68460. .INDENT 0.0
  68461. .INDENT 3.5
  68462. .sp
  68463. .nf
  68464. .ft C
  68465. python \-m site \-\-user\-site
  68466. .ft P
  68467. .fi
  68468. .UNINDENT
  68469. .UNINDENT
  68470. .SS Provider Configuration
  68471. .sp
  68472. Xen requires login credentials to a XenServer.
  68473. .sp
  68474. Set up the provider cloud configuration file at \fB/etc/salt/cloud.providers\fP or
  68475. \fB/etc/salt/cloud.providers.d/*.conf\fP\&.
  68476. .INDENT 0.0
  68477. .INDENT 3.5
  68478. .sp
  68479. .nf
  68480. .ft C
  68481. # /etc/salt/cloud.providers.d/myxen.conf
  68482. myxen:
  68483. driver: xen
  68484. url: https://10.0.0.120
  68485. user: root
  68486. password: p@ssw0rd
  68487. .ft P
  68488. .fi
  68489. .UNINDENT
  68490. .UNINDENT
  68491. .INDENT 0.0
  68492. .TP
  68493. .B url:
  68494. The \fBurl\fP option supports both \fBhttp\fP and \fBhttps\fP uri prefixes.
  68495. .TP
  68496. .B user:
  68497. A valid user id to login to the XenServer host.
  68498. .TP
  68499. .B password:
  68500. The associated password for the user.
  68501. .UNINDENT
  68502. .sp
  68503. \fBNOTE:\fP
  68504. .INDENT 0.0
  68505. .INDENT 3.5
  68506. Changed in version 2015.8.0.
  68507. .sp
  68508. The \fBprovider\fP parameter in cloud provider definitions was renamed to \fBdriver\fP\&. This
  68509. change was made to avoid confusion with the \fBprovider\fP parameter that is used in cloud profile
  68510. definitions. Cloud provider definitions now use \fBdriver\fP to refer to the Salt cloud module that
  68511. provides the underlying functionality to connect to a cloud host, while cloud profiles continue
  68512. to use \fBprovider\fP to refer to provider configurations that you define.
  68513. .UNINDENT
  68514. .UNINDENT
  68515. .SS Profile Configuration
  68516. .sp
  68517. Xen profiles require a \fBprovider\fP and \fBimage\fP\&.
  68518. .INDENT 0.0
  68519. .TP
  68520. .B provider:
  68521. This will be the name of your defined provider.
  68522. .TP
  68523. .B image:
  68524. The name of the VM template used to clone or copy.
  68525. .TP
  68526. .B clone:
  68527. The default behavior is to clone a template or VM. This is very fast,
  68528. but requires the source template or VM to be in the same storage
  68529. repository of the new target system. If the source and target are in
  68530. different storage repositories then you must copy the source and not
  68531. clone it by setting \fBclone: False\fP\&.
  68532. .TP
  68533. .B deploy:
  68534. The provisioning process will attempt to install the Salt minion
  68535. service on the new target system by default. This will require login
  68536. credentials for Salt cloud to login via ssh to it. The \fBuser\fP and
  68537. \fBpassword\fP options are required. If \fBdeploy\fP is set to \fBFalse\fP
  68538. then these options are not needed.
  68539. .TP
  68540. .B resource_pool:
  68541. The name of the resource pool used for this profile.
  68542. .TP
  68543. .B storage_repo:
  68544. The name of the storage repository for the target system.
  68545. .TP
  68546. .B ipv4_cidr:
  68547. If template is Windows, and running guest tools then a static
  68548. ip address can be set.
  68549. .TP
  68550. .B ipv4_gw:
  68551. If template is Windows, and running guest tools then a gateway
  68552. can be set.
  68553. .UNINDENT
  68554. .sp
  68555. Set up an initial profile
  68556. at \fB/etc/salt/cloud.profiles\fP or in the \fB/etc/salt/cloud.profiles.d/\fP directory:
  68557. .INDENT 0.0
  68558. .INDENT 3.5
  68559. .sp
  68560. .nf
  68561. .ft C
  68562. # file: /etc/salt/cloud.profiles.d/xenprofiles.conf
  68563. sles:
  68564. provider: myxen
  68565. deploy: False
  68566. image: sles12sp2\-template
  68567. suse:
  68568. user: root
  68569. password: p@ssw0rd
  68570. provider: myxen
  68571. image: opensuseleap42_2\-template
  68572. storage_repo: \(aqLocal storage\(aq
  68573. clone: False
  68574. minion:
  68575. master: 10.0.0.20
  68576. w2k12:
  68577. provider: myxen
  68578. image: w2k12svr\-template
  68579. clone: True
  68580. userdata_file: /srv/salt/win/files/windows\-firewall.ps1
  68581. win_installer: /srv/salt/win/files/Salt\-Minion\-2016.11.3\-AMD64\-Setup.exe
  68582. win_username: Administrator
  68583. win_password: p@ssw0rd
  68584. use_winrm: False
  68585. ipv4_cidr: 10.0.0.215/24
  68586. ipv4_gw: 10.0.0.1
  68587. minion:
  68588. master: 10.0.0.21
  68589. .ft P
  68590. .fi
  68591. .UNINDENT
  68592. .UNINDENT
  68593. .sp
  68594. The first example will create a clone of the sles12sp2\-template in the
  68595. same storage repository without deploying the Salt minion.
  68596. .sp
  68597. The second example will make a copy of the image and deploy a new
  68598. suse VM with the Salt minion installed.
  68599. .sp
  68600. The third example will create a clone of the Windows 2012 template
  68601. and deploy the Salt minion.
  68602. .sp
  68603. The profile can be used with a salt command:
  68604. .INDENT 0.0
  68605. .INDENT 3.5
  68606. .sp
  68607. .nf
  68608. .ft C
  68609. salt\-cloud \-p suse xenvm02
  68610. .ft P
  68611. .fi
  68612. .UNINDENT
  68613. .UNINDENT
  68614. .sp
  68615. This will create an salt minion instance named \fBxenvm02\fP in Xen. If the command was
  68616. executed on the salt\-master, its Salt key will automatically be signed on the master.
  68617. .sp
  68618. Once the instance has been created with a salt\-minion installed, connectivity to
  68619. it can be verified with Salt:
  68620. .INDENT 0.0
  68621. .INDENT 3.5
  68622. .sp
  68623. .nf
  68624. .ft C
  68625. salt xenvm02 test.version
  68626. .ft P
  68627. .fi
  68628. .UNINDENT
  68629. .UNINDENT
  68630. .SS Listing Sizes
  68631. .sp
  68632. Sizes can be obtained using the \fB\-\-list\-sizes\fP option for the \fBsalt\-cloud\fP
  68633. command:
  68634. .INDENT 0.0
  68635. .INDENT 3.5
  68636. .sp
  68637. .nf
  68638. .ft C
  68639. # salt\-cloud \-\-list\-sizes myxen
  68640. .ft P
  68641. .fi
  68642. .UNINDENT
  68643. .UNINDENT
  68644. .sp
  68645. \fBNOTE:\fP
  68646. .INDENT 0.0
  68647. .INDENT 3.5
  68648. Since size information is build in a template this command
  68649. is not implemented.
  68650. .UNINDENT
  68651. .UNINDENT
  68652. .SS Listing Images
  68653. .sp
  68654. Images can be obtained using the \fB\-\-list\-images\fP option for the \fBsalt\-cloud\fP
  68655. command:
  68656. .INDENT 0.0
  68657. .INDENT 3.5
  68658. .sp
  68659. .nf
  68660. .ft C
  68661. # salt\-cloud \-\-list\-images myxen
  68662. .ft P
  68663. .fi
  68664. .UNINDENT
  68665. .UNINDENT
  68666. .sp
  68667. This command will return a list of templates with details.
  68668. .SS Listing Locations
  68669. .sp
  68670. Locations can be obtained using the \fB\-\-list\-locations\fP option for the \fBsalt\-cloud\fP
  68671. command:
  68672. .INDENT 0.0
  68673. .INDENT 3.5
  68674. .sp
  68675. .nf
  68676. .ft C
  68677. # salt\-cloud \-\-list\-locations myxen
  68678. .ft P
  68679. .fi
  68680. .UNINDENT
  68681. .UNINDENT
  68682. .sp
  68683. Returns a list of resource pools.
  68684. .SS Miscellaneous Options
  68685. .SS Miscellaneous Salt Cloud Options
  68686. .sp
  68687. This page describes various miscellaneous options available in Salt Cloud
  68688. .SS Deploy Script Arguments
  68689. .sp
  68690. Custom deploy scripts are unlikely to need custom arguments to be passed to
  68691. them, but salt\-bootstrap has been extended quite a bit, and this may be
  68692. necessary. script_args can be specified in either the profile or the map file,
  68693. to pass arguments to the deploy script:
  68694. .INDENT 0.0
  68695. .INDENT 3.5
  68696. .sp
  68697. .nf
  68698. .ft C
  68699. ec2\-amazon:
  68700. provider: my\-ec2\-config
  68701. image: ami\-1624987f
  68702. size: t1.micro
  68703. ssh_username: ec2\-user
  68704. script: bootstrap\-salt
  68705. script_args: \-c /tmp/
  68706. .ft P
  68707. .fi
  68708. .UNINDENT
  68709. .UNINDENT
  68710. .sp
  68711. This has also been tested to work with pipes, if needed:
  68712. .INDENT 0.0
  68713. .INDENT 3.5
  68714. .sp
  68715. .nf
  68716. .ft C
  68717. script_args: \(aq| head\(aq
  68718. .ft P
  68719. .fi
  68720. .UNINDENT
  68721. .UNINDENT
  68722. .SS Selecting the File Transport
  68723. .sp
  68724. By default, Salt Cloud uses SFTP to transfer files to Linux hosts. However, if
  68725. SFTP is not available, or specific SCP functionality is needed, Salt Cloud can
  68726. be configured to use SCP instead.
  68727. .INDENT 0.0
  68728. .INDENT 3.5
  68729. .sp
  68730. .nf
  68731. .ft C
  68732. file_transport: sftp
  68733. file_transport: scp
  68734. .ft P
  68735. .fi
  68736. .UNINDENT
  68737. .UNINDENT
  68738. .SS Sync After Install
  68739. .sp
  68740. Salt allows users to create custom modules, grains, and states which can be
  68741. synchronised to minions to extend Salt with further functionality.
  68742. .sp
  68743. This option will inform Salt Cloud to synchronise your custom modules, grains,
  68744. states or all these to the minion just after it has been created. For this to
  68745. happen, the following line needs to be added to the main cloud
  68746. configuration file:
  68747. .INDENT 0.0
  68748. .INDENT 3.5
  68749. .sp
  68750. .nf
  68751. .ft C
  68752. sync_after_install: all
  68753. .ft P
  68754. .fi
  68755. .UNINDENT
  68756. .UNINDENT
  68757. .sp
  68758. The available options for this setting are:
  68759. .INDENT 0.0
  68760. .INDENT 3.5
  68761. .sp
  68762. .nf
  68763. .ft C
  68764. modules
  68765. grains
  68766. states
  68767. all
  68768. .ft P
  68769. .fi
  68770. .UNINDENT
  68771. .UNINDENT
  68772. .SS Setting Up New Salt Masters
  68773. .sp
  68774. It has become increasingly common for users to set up multi\-hierarchal
  68775. infrastructures using Salt Cloud. This sometimes involves setting up an
  68776. instance to be a master in addition to a minion. With that in mind, you can
  68777. now lay down master configuration on a machine by specifying master options
  68778. in the profile or map file.
  68779. .INDENT 0.0
  68780. .INDENT 3.5
  68781. .sp
  68782. .nf
  68783. .ft C
  68784. make_master: True
  68785. .ft P
  68786. .fi
  68787. .UNINDENT
  68788. .UNINDENT
  68789. .sp
  68790. This will cause Salt Cloud to generate master keys for the instance, and tell
  68791. salt\-bootstrap to install the salt\-master package, in addition to the
  68792. salt\-minion package.
  68793. .sp
  68794. The default master configuration is usually appropriate for most users, and
  68795. will not be changed unless specific master configuration has been added to the
  68796. profile or map:
  68797. .INDENT 0.0
  68798. .INDENT 3.5
  68799. .sp
  68800. .nf
  68801. .ft C
  68802. master:
  68803. user: root
  68804. interface: 0.0.0.0
  68805. .ft P
  68806. .fi
  68807. .UNINDENT
  68808. .UNINDENT
  68809. .SS Setting Up a Salt Syndic with Salt Cloud
  68810. .sp
  68811. In addition to \fI\%setting up new Salt Masters\fP, syndics can also be
  68812. provisioned using Salt Cloud. In order to set up a Salt Syndic via Salt Cloud,
  68813. a Salt Master needs to be installed on the new machine and a master configuration
  68814. file needs to be set up using the \fBmake_master\fP setting. This setting can be
  68815. defined either in a profile config file or in a map file:
  68816. .INDENT 0.0
  68817. .INDENT 3.5
  68818. .sp
  68819. .nf
  68820. .ft C
  68821. make_master: True
  68822. .ft P
  68823. .fi
  68824. .UNINDENT
  68825. .UNINDENT
  68826. .sp
  68827. To install the Salt Syndic, the only other specification that needs to be
  68828. configured is the \fBsyndic_master\fP key to specify the location of the master
  68829. that the syndic will be reporting to. This modification needs to be placed
  68830. in the \fBmaster\fP setting, which can be configured either in the profile,
  68831. provider, or \fB/etc/salt/cloud\fP config file:
  68832. .INDENT 0.0
  68833. .INDENT 3.5
  68834. .sp
  68835. .nf
  68836. .ft C
  68837. master:
  68838. syndic_master: 123.456.789 # may be either an IP address or a hostname
  68839. .ft P
  68840. .fi
  68841. .UNINDENT
  68842. .UNINDENT
  68843. .sp
  68844. Many other Salt Syndic configuration settings and specifications can be passed
  68845. through to the new syndic machine via the \fBmaster\fP configuration setting.
  68846. See the syndic documentation for more information.
  68847. .SS SSH Port
  68848. .sp
  68849. By default ssh port is set to port 22. If you want to use a custom port in
  68850. provider, profile, or map blocks use ssh_port option.
  68851. .sp
  68852. New in version 2015.5.0.
  68853. .INDENT 0.0
  68854. .INDENT 3.5
  68855. .sp
  68856. .nf
  68857. .ft C
  68858. ssh_port: 2222
  68859. .ft P
  68860. .fi
  68861. .UNINDENT
  68862. .UNINDENT
  68863. .SS Delete SSH Keys
  68864. .sp
  68865. When Salt Cloud deploys an instance, the SSH pub key for the instance is added
  68866. to the known_hosts file for the user that ran the salt\-cloud command. When an
  68867. instance is deployed, a cloud host generally recycles the IP address for
  68868. the instance. When Salt Cloud attempts to deploy an instance using a recycled
  68869. IP address that has previously been accessed from the same machine, the old key
  68870. in the known_hosts file will cause a conflict.
  68871. .sp
  68872. In order to mitigate this issue, Salt Cloud can be configured to remove old
  68873. keys from the known_hosts file when destroying the node. In order to do this,
  68874. the following line needs to be added to the main cloud configuration file:
  68875. .INDENT 0.0
  68876. .INDENT 3.5
  68877. .sp
  68878. .nf
  68879. .ft C
  68880. delete_sshkeys: True
  68881. .ft P
  68882. .fi
  68883. .UNINDENT
  68884. .UNINDENT
  68885. .SS Keeping /tmp/ Files
  68886. .sp
  68887. When Salt Cloud deploys an instance, it uploads temporary files to /tmp/ for
  68888. salt\-bootstrap to put in place. After the script has run, they are deleted. To
  68889. keep these files around (mostly for debugging purposes), the \-\-keep\-tmp option
  68890. can be added:
  68891. .INDENT 0.0
  68892. .INDENT 3.5
  68893. .sp
  68894. .nf
  68895. .ft C
  68896. salt\-cloud \-p myprofile mymachine \-\-keep\-tmp
  68897. .ft P
  68898. .fi
  68899. .UNINDENT
  68900. .UNINDENT
  68901. .sp
  68902. For those wondering why /tmp/ was used instead of /root/, this had to be done
  68903. for images which require the use of sudo, and therefore do not allow remote
  68904. root logins, even for file transfers (which makes /root/ unavailable).
  68905. .SS Hide Output From Minion Install
  68906. .sp
  68907. By default Salt Cloud will stream the output from the minion deploy script
  68908. directly to STDOUT. Although this can been very useful, in certain cases you
  68909. may wish to switch this off. The following config option is there to enable or
  68910. disable this output:
  68911. .INDENT 0.0
  68912. .INDENT 3.5
  68913. .sp
  68914. .nf
  68915. .ft C
  68916. display_ssh_output: False
  68917. .ft P
  68918. .fi
  68919. .UNINDENT
  68920. .UNINDENT
  68921. .SS Connection Timeout
  68922. .sp
  68923. There are several stages when deploying Salt where Salt Cloud needs to wait for
  68924. something to happen. The VM getting its IP address, the VM\(aqs SSH port is
  68925. available, etc.
  68926. .sp
  68927. If you find that the Salt Cloud defaults are not enough and your deployment
  68928. fails because Salt Cloud did not wait log enough, there are some settings you
  68929. can tweak.
  68930. .INDENT 0.0
  68931. .INDENT 3.5
  68932. .IP "Note"
  68933. .sp
  68934. All settings should be provided in lowercase
  68935. All values should be provided in seconds
  68936. .UNINDENT
  68937. .UNINDENT
  68938. .sp
  68939. You can tweak these settings globally, per cloud provider, or event per profile
  68940. definition.
  68941. .SS wait_for_ip_timeout
  68942. .sp
  68943. The amount of time Salt Cloud should wait for a VM to start and get an IP back
  68944. from the cloud host.
  68945. Default: varies by cloud provider ( between 5 and 25 minutes)
  68946. .SS wait_for_ip_interval
  68947. .sp
  68948. The amount of time Salt Cloud should sleep while querying for the VM\(aqs IP.
  68949. Default: varies by cloud provider ( between .5 and 10 seconds)
  68950. .SS ssh_connect_timeout
  68951. .sp
  68952. The amount of time Salt Cloud should wait for a successful SSH connection to
  68953. the VM.
  68954. Default: varies by cloud provider (between 5 and 15 minutes)
  68955. .SS wait_for_passwd_timeout
  68956. .sp
  68957. The amount of time until an ssh connection can be established via password or
  68958. ssh key.
  68959. Default: varies by cloud provider (mostly 15 seconds)
  68960. .SS wait_for_passwd_maxtries
  68961. .sp
  68962. The number of attempts to connect to the VM until we abandon.
  68963. Default: 15 attempts
  68964. .SS wait_for_fun_timeout
  68965. .sp
  68966. Some cloud drivers check for an available IP or a successful SSH connection
  68967. using a function, namely, SoftLayer, and SoftLayer\-HW. So, the amount of time
  68968. Salt Cloud should retry such functions before failing.
  68969. Default: 15 minutes.
  68970. .SS wait_for_spot_timeout
  68971. .sp
  68972. The amount of time Salt Cloud should wait before an EC2 Spot instance is
  68973. available. This setting is only available for the EC2 cloud driver.
  68974. Default: 10 minutes
  68975. .SS Salt Cloud Cache
  68976. .sp
  68977. Salt Cloud can maintain a cache of node data, for supported providers. The
  68978. following options manage this functionality.
  68979. .SS update_cachedir
  68980. .sp
  68981. On supported cloud providers, whether or not to maintain a cache of nodes
  68982. returned from a \-\-full\-query. The data will be stored in \fBmsgpack\fP format
  68983. under \fB<SALT_CACHEDIR>/cloud/active/<DRIVER>/<PROVIDER>/<NODE_NAME>.p\fP\&. This
  68984. setting can be True or False.
  68985. .SS diff_cache_events
  68986. .sp
  68987. When the cloud cachedir is being managed, if differences are encountered
  68988. between the data that is returned live from the cloud host and the data in
  68989. the cache, fire events which describe the changes. This setting can be True or
  68990. False.
  68991. .sp
  68992. Some of these events will contain data which describe a node. Because some of
  68993. the fields returned may contain sensitive data, the \fBcache_event_strip_fields\fP
  68994. configuration option exists to strip those fields from the event return.
  68995. .INDENT 0.0
  68996. .INDENT 3.5
  68997. .sp
  68998. .nf
  68999. .ft C
  69000. cache_event_strip_fields:
  69001. \- password
  69002. \- priv_key
  69003. .ft P
  69004. .fi
  69005. .UNINDENT
  69006. .UNINDENT
  69007. .sp
  69008. The following are events that can be fired based on this data.
  69009. .SS salt/cloud/minionid/cache_node_new
  69010. .sp
  69011. A new node was found on the cloud host which was not listed in the cloud
  69012. cachedir. A dict describing the new node will be contained in the event.
  69013. .SS salt/cloud/minionid/cache_node_missing
  69014. .sp
  69015. A node that was previously listed in the cloud cachedir is no longer available
  69016. on the cloud host.
  69017. .SS salt/cloud/minionid/cache_node_diff
  69018. .sp
  69019. One or more pieces of data in the cloud cachedir has changed on the cloud
  69020. host. A dict containing both the old and the new data will be contained in
  69021. the event.
  69022. .SS SSH Known Hosts
  69023. .sp
  69024. Normally when bootstrapping a VM, salt\-cloud will ignore the SSH host key. This
  69025. is because it does not know what the host key is before starting (because it
  69026. doesn\(aqt exist yet). If strict host key checking is turned on without the key
  69027. in the \fBknown_hosts\fP file, then the host will never be available, and cannot
  69028. be bootstrapped.
  69029. .sp
  69030. If a provider is able to determine the host key before trying to bootstrap it,
  69031. that provider\(aqs driver can add it to the \fBknown_hosts\fP file, and then turn on
  69032. strict host key checking. This can be set up in the main cloud configuration
  69033. file (normally \fB/etc/salt/cloud\fP) or in the provider\-specific configuration
  69034. file:
  69035. .INDENT 0.0
  69036. .INDENT 3.5
  69037. .sp
  69038. .nf
  69039. .ft C
  69040. known_hosts_file: /path/to/.ssh/known_hosts
  69041. .ft P
  69042. .fi
  69043. .UNINDENT
  69044. .UNINDENT
  69045. .sp
  69046. If this is not set, it will default to \fB/dev/null\fP, and strict host key
  69047. checking will be turned off.
  69048. .sp
  69049. It is highly recommended that this option is \fInot\fP set, unless the user has
  69050. verified that the provider supports this functionality, and that the image
  69051. being used is capable of providing the necessary information. At this time,
  69052. only the EC2 driver supports this functionality.
  69053. .SS SSH Agent
  69054. .sp
  69055. New in version 2015.5.0.
  69056. .sp
  69057. If the ssh key is not stored on the server salt\-cloud is being run on, set
  69058. ssh_agent, and salt\-cloud will use the forwarded ssh\-agent to authenticate.
  69059. .INDENT 0.0
  69060. .INDENT 3.5
  69061. .sp
  69062. .nf
  69063. .ft C
  69064. ssh_agent: True
  69065. .ft P
  69066. .fi
  69067. .UNINDENT
  69068. .UNINDENT
  69069. .SS File Map Upload
  69070. .sp
  69071. New in version 2014.7.0.
  69072. .sp
  69073. The \fBfile_map\fP option allows an arbitrary group of files to be uploaded to the
  69074. target system before running the deploy script. This functionality requires a
  69075. provider uses salt.utils.cloud.bootstrap(), which is currently limited to the ec2,
  69076. gce, openstack and nova drivers.
  69077. .sp
  69078. The \fBfile_map\fP can be configured globally in \fB/etc/salt/cloud\fP, or in any cloud
  69079. provider or profile file. For example, to upload an extra package or a custom deploy
  69080. script, a cloud profile using \fBfile_map\fP might look like:
  69081. .INDENT 0.0
  69082. .INDENT 3.5
  69083. .sp
  69084. .nf
  69085. .ft C
  69086. ubuntu14:
  69087. provider: ec2\-config
  69088. image: ami\-98aa1cf0
  69089. size: t1.micro
  69090. ssh_username: root
  69091. securitygroup: default
  69092. file_map:
  69093. /local/path/to/custom/script: /remote/path/to/use/custom/script
  69094. /local/path/to/package: /remote/path/to/store/package
  69095. .ft P
  69096. .fi
  69097. .UNINDENT
  69098. .UNINDENT
  69099. .SS Running Pre\-Flight Commands
  69100. .sp
  69101. New in version 2018.3.0.
  69102. .sp
  69103. To execute specified preflight shell commands on a VM before the deploy script is
  69104. run, use the \fBpreflight_cmds\fP option. These must be defined as a list in a cloud
  69105. configuration file. For example:
  69106. .INDENT 0.0
  69107. .INDENT 3.5
  69108. .sp
  69109. .nf
  69110. .ft C
  69111. my\-cloud\-profile:
  69112. provider: linode\-config
  69113. image: Ubuntu 16.04 LTS
  69114. size: Linode 2048
  69115. preflight_cmds:
  69116. \- whoami
  69117. \- echo \(aqhello world!\(aq
  69118. .ft P
  69119. .fi
  69120. .UNINDENT
  69121. .UNINDENT
  69122. .sp
  69123. These commands will run in sequence \fBbefore\fP the bootstrap script is executed.
  69124. .SS Force Minion Config
  69125. .sp
  69126. New in version 2018.3.0.
  69127. .sp
  69128. The \fBforce_minion_config\fP option requests the bootstrap process to overwrite
  69129. an existing minion configuration file and public/private key files.
  69130. Default: False
  69131. .sp
  69132. This might be important for drivers (such as \fBsaltify\fP) which are expected to
  69133. take over a connection from a former salt master.
  69134. .INDENT 0.0
  69135. .INDENT 3.5
  69136. .sp
  69137. .nf
  69138. .ft C
  69139. my_saltify_provider:
  69140. driver: saltify
  69141. force_minion_config: true
  69142. .ft P
  69143. .fi
  69144. .UNINDENT
  69145. .UNINDENT
  69146. .SS Troubleshooting Steps
  69147. .SS Troubleshooting Salt Cloud
  69148. .sp
  69149. This page describes various steps for troubleshooting problems that may arise
  69150. while using Salt Cloud.
  69151. .SS Virtual Machines Are Created, But Do Not Respond
  69152. .sp
  69153. Are TCP ports 4505 and 4506 open on the master? This is easy to overlook on new
  69154. masters. Information on how to open firewall ports on various platforms can be
  69155. found here\&.
  69156. .SS Generic Troubleshooting Steps
  69157. .sp
  69158. This section describes a set of instructions that are useful to a large number
  69159. of situations, and are likely to solve most issues that arise.
  69160. .SS Debug Mode
  69161. .sp
  69162. Frequently, running Salt Cloud in debug mode will reveal information about a
  69163. deployment which would otherwise not be obvious:
  69164. .INDENT 0.0
  69165. .INDENT 3.5
  69166. .sp
  69167. .nf
  69168. .ft C
  69169. salt\-cloud \-p myprofile myinstance \-l debug
  69170. .ft P
  69171. .fi
  69172. .UNINDENT
  69173. .UNINDENT
  69174. .sp
  69175. Keep in mind that a number of messages will appear that look at first like
  69176. errors, but are in fact intended to give developers factual information to
  69177. assist in debugging. A number of messages that appear will be for cloud
  69178. providers that you do not have configured; in these cases, the message usually
  69179. is intended to confirm that they are not configured.
  69180. .SS Salt Bootstrap
  69181. .sp
  69182. By default, Salt Cloud uses the Salt Bootstrap script to provision instances:
  69183. .sp
  69184. This script is packaged with Salt Cloud, but may be updated without updating
  69185. the Salt package:
  69186. .INDENT 0.0
  69187. .INDENT 3.5
  69188. .sp
  69189. .nf
  69190. .ft C
  69191. salt\-cloud \-u
  69192. .ft P
  69193. .fi
  69194. .UNINDENT
  69195. .UNINDENT
  69196. .SS The Bootstrap Log
  69197. .sp
  69198. If the default deploy script was used, there should be a file in the \fB/tmp/\fP
  69199. directory called \fBbootstrap\-salt.log\fP\&. This file contains the full output from
  69200. the deployment, including any errors that may have occurred.
  69201. .SS Keeping Temp Files
  69202. .sp
  69203. Salt Cloud uploads minion\-specific files to instances once they are available
  69204. via SSH, and then executes a deploy script to put them into the correct place
  69205. and install Salt. The \fB\-\-keep\-tmp\fP option will instruct Salt Cloud not to
  69206. remove those files when finished with them, so that the user may inspect them
  69207. for problems:
  69208. .INDENT 0.0
  69209. .INDENT 3.5
  69210. .sp
  69211. .nf
  69212. .ft C
  69213. salt\-cloud \-p myprofile myinstance \-\-keep\-tmp
  69214. .ft P
  69215. .fi
  69216. .UNINDENT
  69217. .UNINDENT
  69218. .sp
  69219. By default, Salt Cloud will create a directory on the target instance called
  69220. \fB/tmp/.saltcloud/\fP\&. This directory should be owned by the user that is to
  69221. execute the deploy script, and should have permissions of \fB0700\fP\&.
  69222. .sp
  69223. Most cloud hosts are configured to use \fBroot\fP as the default initial user
  69224. for deployment, and as such, this directory and all files in it should be owned
  69225. by the \fBroot\fP user.
  69226. .sp
  69227. The \fB/tmp/.saltcloud/\fP directory should the following files:
  69228. .INDENT 0.0
  69229. .IP \(bu 2
  69230. A \fBdeploy.sh\fP script. This script should have permissions of \fB0755\fP\&.
  69231. .IP \(bu 2
  69232. A \fB\&.pem\fP and \fB\&.pub\fP key named after the minion. The \fB\&.pem\fP file should
  69233. have permissions of \fB0600\fP\&. Ensure that the \fB\&.pem\fP and \fB\&.pub\fP files have
  69234. been properly copied to the \fB/etc/salt/pki/minion/\fP directory.
  69235. .IP \(bu 2
  69236. A file called \fBminion\fP\&. This file should have been copied to the
  69237. \fB/etc/salt/\fP directory.
  69238. .IP \(bu 2
  69239. Optionally, a file called \fBgrains\fP\&. This file, if present, should have been
  69240. copied to the \fB/etc/salt/\fP directory.
  69241. .UNINDENT
  69242. .SS Unprivileged Primary Users
  69243. .sp
  69244. Some cloud hosts, most notably EC2, are configured with a different primary user.
  69245. Some common examples are \fBec2\-user\fP, \fBubuntu\fP, \fBfedora\fP, and \fBbitnami\fP\&.
  69246. In these cases, the \fB/tmp/.saltcloud/\fP directory and all files in it should
  69247. be owned by this user.
  69248. .sp
  69249. Some cloud hosts, such as EC2, are configured to not require these users to
  69250. provide a password when using the \fBsudo\fP command. Because it is more secure
  69251. to require \fBsudo\fP users to provide a password, other hosts are configured
  69252. that way.
  69253. .sp
  69254. If this instance is required to provide a password, it needs to be configured
  69255. in Salt Cloud. A password for sudo to use may be added to either the provider
  69256. configuration or the profile configuration:
  69257. .INDENT 0.0
  69258. .INDENT 3.5
  69259. .sp
  69260. .nf
  69261. .ft C
  69262. sudo_password: mypassword
  69263. .ft P
  69264. .fi
  69265. .UNINDENT
  69266. .UNINDENT
  69267. .SS \fB/tmp/\fP is Mounted as \fBnoexec\fP
  69268. .sp
  69269. It is more secure to mount the \fB/tmp/\fP directory with a \fBnoexec\fP option.
  69270. This is uncommon on most cloud hosts, but very common in private
  69271. environments. To see if the \fB/tmp/\fP directory is mounted this way, run the
  69272. following command:
  69273. .INDENT 0.0
  69274. .INDENT 3.5
  69275. .sp
  69276. .nf
  69277. .ft C
  69278. mount | grep tmp
  69279. .ft P
  69280. .fi
  69281. .UNINDENT
  69282. .UNINDENT
  69283. .sp
  69284. The if the output of this command includes a line that looks like this, then
  69285. the \fB/tmp/\fP directory is mounted as \fBnoexec\fP:
  69286. .INDENT 0.0
  69287. .INDENT 3.5
  69288. .sp
  69289. .nf
  69290. .ft C
  69291. tmpfs on /tmp type tmpfs (rw,noexec)
  69292. .ft P
  69293. .fi
  69294. .UNINDENT
  69295. .UNINDENT
  69296. .sp
  69297. If this is the case, then the \fBdeploy_command\fP will need to be changed
  69298. in order to run the deploy script through the \fBsh\fP command, rather than trying
  69299. to execute it directly. This may be specified in either the provider or the
  69300. profile config:
  69301. .INDENT 0.0
  69302. .INDENT 3.5
  69303. .sp
  69304. .nf
  69305. .ft C
  69306. deploy_command: sh /tmp/.saltcloud/deploy.sh
  69307. .ft P
  69308. .fi
  69309. .UNINDENT
  69310. .UNINDENT
  69311. .sp
  69312. Please note that by default, Salt Cloud will place its files in a directory
  69313. called \fB/tmp/.saltcloud/\fP\&. This may be also be changed in the provider or
  69314. profile configuration:
  69315. .INDENT 0.0
  69316. .INDENT 3.5
  69317. .sp
  69318. .nf
  69319. .ft C
  69320. tmp_dir: /tmp/.saltcloud/
  69321. .ft P
  69322. .fi
  69323. .UNINDENT
  69324. .UNINDENT
  69325. .sp
  69326. If this directory is changed, then the \fBdeploy_command\fP need to be changed
  69327. in order to reflect the \fBtmp_dir\fP configuration.
  69328. .SS Executing the Deploy Script Manually
  69329. .sp
  69330. If all of the files needed for deployment were successfully uploaded to the
  69331. correct locations, and contain the correct permissions and ownerships, the
  69332. deploy script may be executed manually in order to check for other issues:
  69333. .INDENT 0.0
  69334. .INDENT 3.5
  69335. .sp
  69336. .nf
  69337. .ft C
  69338. cd /tmp/.saltcloud/
  69339. \&./deploy.sh
  69340. .ft P
  69341. .fi
  69342. .UNINDENT
  69343. .UNINDENT
  69344. .SS Extending Salt Cloud
  69345. .SS Writing Cloud Driver Modules
  69346. .sp
  69347. Salt Cloud runs on a module system similar to the main Salt project. The
  69348. modules inside saltcloud exist in the \fBsalt/cloud/clouds\fP directory of the
  69349. salt source.
  69350. .sp
  69351. There are two basic types of cloud modules. If a cloud host is supported by
  69352. libcloud, then using it is the fastest route to getting a module written. The
  69353. Apache Libcloud project is located at:
  69354. .sp
  69355. \fI\%http://libcloud.apache.org/\fP
  69356. .sp
  69357. Not every cloud host is supported by libcloud. Additionally, not every
  69358. feature in a supported cloud host is necessarily supported by libcloud. In
  69359. either of these cases, a module can be created which does not rely on libcloud.
  69360. .SS All Driver Modules
  69361. .sp
  69362. The following functions are required by all driver modules, whether or not they are
  69363. based on libcloud.
  69364. .SS The __virtual__() Function
  69365. .sp
  69366. This function determines whether or not to make this cloud module available
  69367. upon execution. Most often, it uses \fBget_configured_provider()\fP to determine
  69368. if the necessary configuration has been set up. It may also check for necessary
  69369. imports, to decide whether to load the module. In most cases, it will return a
  69370. \fBTrue\fP or \fBFalse\fP value. If the name of the driver used does not match the
  69371. filename, then that name should be returned instead of \fBTrue\fP\&. An example of
  69372. this may be seen in the Azure module:
  69373. .sp
  69374. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/msazure.py\fP
  69375. .SS The get_configured_provider() Function
  69376. .sp
  69377. This function uses \fBconfig.is_provider_configured()\fP to determine whether
  69378. all required information for this driver has been configured. The last value
  69379. in the list of required settings should be followed by a comma.
  69380. .SS Libcloud Based Modules
  69381. .sp
  69382. Writing a cloud module based on libcloud has two major advantages. First of all,
  69383. much of the work has already been done by the libcloud project. Second, most of
  69384. the functions necessary to Salt have already been added to the Salt Cloud
  69385. project.
  69386. .SS The create() Function
  69387. .sp
  69388. The most important function that does need to be manually written is the
  69389. \fBcreate()\fP function. This is what is used to request a virtual machine to be
  69390. created by the cloud host, wait for it to become available, and then
  69391. (optionally) log in and install Salt on it.
  69392. .sp
  69393. A good example to follow for writing a cloud driver module based on libcloud
  69394. is the module provided for Linode:
  69395. .sp
  69396. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/linode.py\fP
  69397. .sp
  69398. The basic flow of a \fBcreate()\fP function is as follows:
  69399. .INDENT 0.0
  69400. .IP \(bu 2
  69401. Send a request to the cloud host to create a virtual machine.
  69402. .IP \(bu 2
  69403. Wait for the virtual machine to become available.
  69404. .IP \(bu 2
  69405. Generate kwargs to be used to deploy Salt.
  69406. .IP \(bu 2
  69407. Log into the virtual machine and deploy Salt.
  69408. .IP \(bu 2
  69409. Return a data structure that describes the newly\-created virtual machine.
  69410. .UNINDENT
  69411. .sp
  69412. At various points throughout this function, events may be fired on the Salt
  69413. event bus. Four of these events, which are described below, are required. Other
  69414. events may be added by the user, where appropriate.
  69415. .sp
  69416. When the \fBcreate()\fP function is called, it is passed a data structure called
  69417. \fBvm_\fP\&. This dict contains a composite of information describing the virtual
  69418. machine to be created. A dict called \fB__opts__\fP is also provided by Salt,
  69419. which contains the options used to run Salt Cloud, as well as a set of
  69420. configuration and environment variables.
  69421. .sp
  69422. The first thing the \fBcreate()\fP function must do is fire an event stating that
  69423. it has started the create process. This event is tagged
  69424. \fBsalt/cloud/<vm name>/creating\fP\&. The payload contains the names of the VM,
  69425. profile, and provider.
  69426. .sp
  69427. A set of kwargs is then usually created, to describe the parameters required
  69428. by the cloud host to request the virtual machine.
  69429. .sp
  69430. An event is then fired to state that a virtual machine is about to be requested.
  69431. It is tagged as \fBsalt/cloud/<vm name>/requesting\fP\&. The payload contains most
  69432. or all of the parameters that will be sent to the cloud host. Any private
  69433. information (such as passwords) should not be sent in the event.
  69434. .sp
  69435. After a request is made, a set of deploy kwargs will be generated. These will
  69436. be used to install Salt on the target machine. Windows options are supported
  69437. at this point, and should be generated, even if the cloud host does not
  69438. currently support Windows. This will save time in the future if the host
  69439. does eventually decide to support Windows.
  69440. .sp
  69441. An event is then fired to state that the deploy process is about to begin. This
  69442. event is tagged \fBsalt/cloud/<vm name>/deploying\fP\&. The payload for the event
  69443. will contain a set of deploy kwargs, useful for debugging purposed. Any private
  69444. data, including passwords and keys (including public keys) should be stripped
  69445. from the deploy kwargs before the event is fired.
  69446. .sp
  69447. If any Windows options have been passed in, the
  69448. \fBsalt.utils.cloud.deploy_windows()\fP function will be called. Otherwise, it
  69449. will be assumed that the target is a Linux or Unix machine, and the
  69450. \fBsalt.utils.cloud.deploy_script()\fP will be called.
  69451. .sp
  69452. Both of these functions will wait for the target machine to become available,
  69453. then the necessary port to log in, then a successful login that can be used to
  69454. install Salt. Minion configuration and keys will then be uploaded to a temporary
  69455. directory on the target by the appropriate function. On a Windows target, the
  69456. Windows Minion Installer will be run in silent mode. On a Linux/Unix target, a
  69457. deploy script (\fBbootstrap\-salt.sh\fP, by default) will be run, which will
  69458. auto\-detect the operating system, and install Salt using its native package
  69459. manager. These do not need to be handled by the developer in the cloud module.
  69460. .sp
  69461. The \fBsalt.utils.cloud.validate_windows_cred()\fP function has been extended to
  69462. take the number of retries and retry_delay parameters in case a specific cloud
  69463. host has a delay between providing the Windows credentials and the
  69464. credentials being available for use. In their \fBcreate()\fP function, or as
  69465. a sub\-function called during the creation process, developers should use the
  69466. \fBwin_deploy_auth_retries\fP and \fBwin_deploy_auth_retry_delay\fP parameters from
  69467. the provider configuration to allow the end\-user the ability to customize the
  69468. number of tries and delay between tries for their particular host.
  69469. .sp
  69470. After the appropriate deploy function completes, a final event is fired
  69471. which describes the virtual machine that has just been created. This event is
  69472. tagged \fBsalt/cloud/<vm name>/created\fP\&. The payload contains the names of the
  69473. VM, profile, and provider.
  69474. .sp
  69475. Finally, a dict (queried from the provider) which describes the new virtual
  69476. machine is returned to the user. Because this data is not fired on the event
  69477. bus it can, and should, return any passwords that were returned by the cloud
  69478. host. In some cases (for example, Rackspace), this is the only time that
  69479. the password can be queried by the user; post\-creation queries may not contain
  69480. password information (depending upon the host).
  69481. .SS The libcloudfuncs Functions
  69482. .sp
  69483. A number of other functions are required for all cloud hosts. However, with
  69484. libcloud\-based modules, these are all provided for free by the libcloudfuncs
  69485. library. The following two lines set up the imports:
  69486. .INDENT 0.0
  69487. .INDENT 3.5
  69488. .sp
  69489. .nf
  69490. .ft C
  69491. from salt.cloud.libcloudfuncs import * # pylint: disable=W0614,W0401
  69492. import salt.utils.functools
  69493. .ft P
  69494. .fi
  69495. .UNINDENT
  69496. .UNINDENT
  69497. .sp
  69498. And then a series of declarations will make the necessary functions available
  69499. within the cloud module.
  69500. .INDENT 0.0
  69501. .INDENT 3.5
  69502. .sp
  69503. .nf
  69504. .ft C
  69505. get_size = salt.utils.functools.namespaced_function(get_size, globals())
  69506. get_image = salt.utils.functools.namespaced_function(get_image, globals())
  69507. avail_locations = salt.utils.functools.namespaced_function(avail_locations, globals())
  69508. avail_images = salt.utils.functools.namespaced_function(avail_images, globals())
  69509. avail_sizes = salt.utils.functools.namespaced_function(avail_sizes, globals())
  69510. script = salt.utils.functools.namespaced_function(script, globals())
  69511. destroy = salt.utils.functools.namespaced_function(destroy, globals())
  69512. list_nodes = salt.utils.functools.namespaced_function(list_nodes, globals())
  69513. list_nodes_full = salt.utils.functools.namespaced_function(list_nodes_full, globals())
  69514. list_nodes_select = salt.utils.functools.namespaced_function(list_nodes_select, globals())
  69515. show_instance = salt.utils.functools.namespaced_function(show_instance, globals())
  69516. .ft P
  69517. .fi
  69518. .UNINDENT
  69519. .UNINDENT
  69520. .sp
  69521. If necessary, these functions may be replaced by removing the appropriate
  69522. declaration line, and then adding the function as normal.
  69523. .sp
  69524. These functions are required for all cloud modules, and are described in detail
  69525. in the next section.
  69526. .SS Non\-Libcloud Based Modules
  69527. .sp
  69528. In some cases, using libcloud is not an option. This may be because libcloud has
  69529. not yet included the necessary driver itself, or it may be that the driver that
  69530. is included with libcloud does not contain all of the necessary features
  69531. required by the developer. When this is the case, some or all of the functions
  69532. in \fBlibcloudfuncs\fP may be replaced. If they are all replaced, the libcloud
  69533. imports should be absent from the Salt Cloud module.
  69534. .sp
  69535. A good example of a non\-libcloud driver is the DigitalOcean driver:
  69536. .sp
  69537. \fI\%https://github.com/saltstack/salt/tree/master/salt/cloud/clouds/digitalocean.py\fP
  69538. .SS The \fBcreate()\fP Function
  69539. .sp
  69540. The \fBcreate()\fP function must be created as described in the libcloud\-based
  69541. module documentation.
  69542. .SS The get_size() Function
  69543. .sp
  69544. This function is only necessary for libcloud\-based modules, and does not need
  69545. to exist otherwise.
  69546. .SS The get_image() Function
  69547. .sp
  69548. This function is only necessary for libcloud\-based modules, and does not need
  69549. to exist otherwise.
  69550. .SS The avail_locations() Function
  69551. .sp
  69552. This function returns a list of locations available, if the cloud host uses
  69553. multiple data centers. It is not necessary if the cloud host uses only one
  69554. data center. It is normally called using the \fB\-\-list\-locations\fP option.
  69555. .INDENT 0.0
  69556. .INDENT 3.5
  69557. .sp
  69558. .nf
  69559. .ft C
  69560. salt\-cloud \-\-list\-locations my\-cloud\-provider
  69561. .ft P
  69562. .fi
  69563. .UNINDENT
  69564. .UNINDENT
  69565. .SS The avail_images() Function
  69566. .sp
  69567. This function returns a list of images available for this cloud provider. There
  69568. are not currently any known cloud providers that do not provide this
  69569. functionality, though they may refer to images by a different name (for example,
  69570. "templates"). It is normally called using the \fB\-\-list\-images\fP option.
  69571. .INDENT 0.0
  69572. .INDENT 3.5
  69573. .sp
  69574. .nf
  69575. .ft C
  69576. salt\-cloud \-\-list\-images my\-cloud\-provider
  69577. .ft P
  69578. .fi
  69579. .UNINDENT
  69580. .UNINDENT
  69581. .SS The avail_sizes() Function
  69582. .sp
  69583. This function returns a list of sizes available for this cloud provider.
  69584. Generally, this refers to a combination of RAM, CPU, and/or disk space. This
  69585. functionality may not be present on some cloud providers. For example, the
  69586. Parallels module breaks down RAM, CPU, and disk space into separate options,
  69587. whereas in other providers, these options are baked into the image. It is
  69588. normally called using the \fB\-\-list\-sizes\fP option.
  69589. .INDENT 0.0
  69590. .INDENT 3.5
  69591. .sp
  69592. .nf
  69593. .ft C
  69594. salt\-cloud \-\-list\-sizes my\-cloud\-provider
  69595. .ft P
  69596. .fi
  69597. .UNINDENT
  69598. .UNINDENT
  69599. .SS The script() Function
  69600. .sp
  69601. This function builds the deploy script to be used on the remote machine. It is
  69602. likely to be moved into the \fBsalt.utils.cloud\fP library in the near future, as
  69603. it is very generic and can usually be copied wholesale from another module. An
  69604. excellent example is in the Azure driver.
  69605. .SS The destroy() Function
  69606. .sp
  69607. This function irreversibly destroys a virtual machine on the cloud provider.
  69608. Before doing so, it should fire an event on the Salt event bus. The tag for this
  69609. event is \fBsalt/cloud/<vm name>/destroying\fP\&. Once the virtual machine has been
  69610. destroyed, another event is fired. The tag for that event is
  69611. \fBsalt/cloud/<vm name>/destroyed\fP\&.
  69612. .sp
  69613. This function is normally called with the \fB\-d\fP options:
  69614. .INDENT 0.0
  69615. .INDENT 3.5
  69616. .sp
  69617. .nf
  69618. .ft C
  69619. salt\-cloud \-d myinstance
  69620. .ft P
  69621. .fi
  69622. .UNINDENT
  69623. .UNINDENT
  69624. .SS The list_nodes() Function
  69625. .sp
  69626. This function returns a list of nodes available on this cloud provider, using
  69627. the following fields:
  69628. .INDENT 0.0
  69629. .IP \(bu 2
  69630. id (str)
  69631. .IP \(bu 2
  69632. image (str)
  69633. .IP \(bu 2
  69634. size (str)
  69635. .IP \(bu 2
  69636. state (str)
  69637. .IP \(bu 2
  69638. private_ips (list)
  69639. .IP \(bu 2
  69640. public_ips (list)
  69641. .UNINDENT
  69642. .sp
  69643. No other fields should be returned in this function, and all of these fields
  69644. should be returned, even if empty. The private_ips and public_ips fields should
  69645. always be of a list type, even if empty, and the other fields should always be
  69646. of a str type. This function is normally called with the \fB\-Q\fP option:
  69647. .INDENT 0.0
  69648. .INDENT 3.5
  69649. .sp
  69650. .nf
  69651. .ft C
  69652. salt\-cloud \-Q
  69653. .ft P
  69654. .fi
  69655. .UNINDENT
  69656. .UNINDENT
  69657. .SS The list_nodes_full() Function
  69658. .sp
  69659. All information available about all nodes should be returned in this function.
  69660. The fields in the list_nodes() function should also be returned, even if they
  69661. would not normally be provided by the cloud provider. This is because some
  69662. functions both within Salt and 3rd party will break if an expected field is not
  69663. present. This function is normally called with the \fB\-F\fP option:
  69664. .INDENT 0.0
  69665. .INDENT 3.5
  69666. .sp
  69667. .nf
  69668. .ft C
  69669. salt\-cloud \-F
  69670. .ft P
  69671. .fi
  69672. .UNINDENT
  69673. .UNINDENT
  69674. .SS The list_nodes_select() Function
  69675. .sp
  69676. This function returns only the fields specified in the \fBquery.selection\fP
  69677. option in \fB/etc/salt/cloud\fP\&. Because this function is so generic, all of the
  69678. heavy lifting has been moved into the \fBsalt.utils.cloud\fP library.
  69679. .sp
  69680. A function to call \fBlist_nodes_select()\fP still needs to be present. In
  69681. general, the following code can be used as\-is:
  69682. .INDENT 0.0
  69683. .INDENT 3.5
  69684. .sp
  69685. .nf
  69686. .ft C
  69687. def list_nodes_select(call=None):
  69688. \(aq\(aq\(aq
  69689. Return a list of the VMs that are on the provider, with select fields
  69690. \(aq\(aq\(aq
  69691. return salt.utils.cloud.list_nodes_select(
  69692. list_nodes_full(\(aqfunction\(aq), __opts__[\(aqquery.selection\(aq], call,
  69693. )
  69694. .ft P
  69695. .fi
  69696. .UNINDENT
  69697. .UNINDENT
  69698. .sp
  69699. However, depending on the cloud provider, additional variables may be required.
  69700. For instance, some modules use a \fBconn\fP object, or may need to pass other
  69701. options into \fBlist_nodes_full()\fP\&. In this case, be sure to update the function
  69702. appropriately:
  69703. .INDENT 0.0
  69704. .INDENT 3.5
  69705. .sp
  69706. .nf
  69707. .ft C
  69708. def list_nodes_select(conn=None, call=None):
  69709. \(aq\(aq\(aq
  69710. Return a list of the VMs that are on the provider, with select fields
  69711. \(aq\(aq\(aq
  69712. if not conn:
  69713. conn = get_conn() # pylint: disable=E0602
  69714. return salt.utils.cloud.list_nodes_select(
  69715. list_nodes_full(conn, \(aqfunction\(aq),
  69716. __opts__[\(aqquery.selection\(aq],
  69717. call,
  69718. )
  69719. .ft P
  69720. .fi
  69721. .UNINDENT
  69722. .UNINDENT
  69723. .sp
  69724. This function is normally called with the \fB\-S\fP option:
  69725. .INDENT 0.0
  69726. .INDENT 3.5
  69727. .sp
  69728. .nf
  69729. .ft C
  69730. salt\-cloud \-S
  69731. .ft P
  69732. .fi
  69733. .UNINDENT
  69734. .UNINDENT
  69735. .SS The show_instance() Function
  69736. .sp
  69737. This function is used to display all of the information about a single node
  69738. that is available from the cloud provider. The simplest way to provide this is
  69739. usually to call \fBlist_nodes_full()\fP, and return just the data for the
  69740. requested node. It is normally called as an action:
  69741. .INDENT 0.0
  69742. .INDENT 3.5
  69743. .sp
  69744. .nf
  69745. .ft C
  69746. salt\-cloud \-a show_instance myinstance
  69747. .ft P
  69748. .fi
  69749. .UNINDENT
  69750. .UNINDENT
  69751. .SS Actions and Functions
  69752. .sp
  69753. Extra functionality may be added to a cloud provider in the form of an
  69754. \fB\-\-action\fP or a \fB\-\-function\fP\&. Actions are performed against a cloud
  69755. instance/virtual machine, and functions are performed against a cloud provider.
  69756. .SS Actions
  69757. .sp
  69758. Actions are calls that are performed against a specific instance or virtual
  69759. machine. The \fBshow_instance\fP action should be available in all cloud modules.
  69760. Actions are normally called with the \fB\-a\fP option:
  69761. .INDENT 0.0
  69762. .INDENT 3.5
  69763. .sp
  69764. .nf
  69765. .ft C
  69766. salt\-cloud \-a show_instance myinstance
  69767. .ft P
  69768. .fi
  69769. .UNINDENT
  69770. .UNINDENT
  69771. .sp
  69772. Actions must accept a \fBname\fP as a first argument, may optionally support any
  69773. number of kwargs as appropriate, and must accept an argument of \fBcall\fP, with
  69774. a default of \fBNone\fP\&.
  69775. .sp
  69776. Before performing any other work, an action should normally verify that it has
  69777. been called correctly. It may then perform the desired feature, and return
  69778. useful information to the user. A basic action looks like:
  69779. .INDENT 0.0
  69780. .INDENT 3.5
  69781. .sp
  69782. .nf
  69783. .ft C
  69784. def show_instance(name, call=None):
  69785. \(aq\(aq\(aq
  69786. Show the details from EC2 concerning an AMI
  69787. \(aq\(aq\(aq
  69788. if call != \(aqaction\(aq:
  69789. raise SaltCloudSystemExit(
  69790. \(aqThe show_instance action must be called with \-a or \-\-action.\(aq
  69791. )
  69792. return _get_node(name)
  69793. .ft P
  69794. .fi
  69795. .UNINDENT
  69796. .UNINDENT
  69797. .sp
  69798. Please note that generic kwargs, if used, are passed through to actions as
  69799. \fBkwargs\fP and not \fB**kwargs\fP\&. An example of this is seen in the Functions
  69800. section.
  69801. .SS Functions
  69802. .sp
  69803. Functions are called that are performed against a specific cloud provider. An
  69804. optional function that is often useful is \fBshow_image\fP, which describes an
  69805. image in detail. Functions are normally called with the \fB\-f\fP option:
  69806. .INDENT 0.0
  69807. .INDENT 3.5
  69808. .sp
  69809. .nf
  69810. .ft C
  69811. salt\-cloud \-f show_image my\-cloud\-provider image=\(aqUbuntu 13.10 64\-bit\(aq
  69812. .ft P
  69813. .fi
  69814. .UNINDENT
  69815. .UNINDENT
  69816. .sp
  69817. A function may accept any number of kwargs as appropriate, and must accept an
  69818. argument of \fBcall\fP with a default of \fBNone\fP\&.
  69819. .sp
  69820. Before performing any other work, a function should normally verify that it has
  69821. been called correctly. It may then perform the desired feature, and return
  69822. useful information to the user. A basic function looks like:
  69823. .INDENT 0.0
  69824. .INDENT 3.5
  69825. .sp
  69826. .nf
  69827. .ft C
  69828. def show_image(kwargs, call=None):
  69829. \(aq\(aq\(aq
  69830. Show the details from EC2 concerning an AMI
  69831. \(aq\(aq\(aq
  69832. if call != \(aqfunction\(aq:
  69833. raise SaltCloudSystemExit(
  69834. \(aqThe show_image action must be called with \-f or \-\-function.\(aq
  69835. )
  69836. params = {\(aqImageId.1\(aq: kwargs[\(aqimage\(aq],
  69837. \(aqAction\(aq: \(aqDescribeImages\(aq}
  69838. result = query(params)
  69839. log.info(result)
  69840. return result
  69841. .ft P
  69842. .fi
  69843. .UNINDENT
  69844. .UNINDENT
  69845. .sp
  69846. Take note that generic kwargs are passed through to functions as \fBkwargs\fP and
  69847. not \fB**kwargs\fP\&.
  69848. .SS Cloud deployment scripts
  69849. .sp
  69850. Salt Cloud works primarily by executing a script on the virtual machines as
  69851. soon as they become available. The script that is executed is referenced in the
  69852. cloud profile as the \fBscript\fP\&. In older versions, this was the \fBos\fP
  69853. argument. This was changed in 0.8.2.
  69854. .sp
  69855. A number of legacy scripts exist in the deploy directory in the saltcloud
  69856. source tree. The preferred method is currently to use the salt\-bootstrap
  69857. script. A stable version is included with each release tarball starting with
  69858. 0.8.4. The most updated version can be found at:
  69859. .sp
  69860. \fI\%https://github.com/saltstack/salt\-bootstrap\fP
  69861. .sp
  69862. Note that, somewhat counter\-intuitively, this script is referenced as
  69863. \fBbootstrap\-salt\fP in the configuration.
  69864. .sp
  69865. You can specify a deploy script in the cloud configuration file
  69866. (\fB/etc/salt/cloud\fP by default):
  69867. .INDENT 0.0
  69868. .INDENT 3.5
  69869. .sp
  69870. .nf
  69871. .ft C
  69872. script: bootstrap\-salt
  69873. .ft P
  69874. .fi
  69875. .UNINDENT
  69876. .UNINDENT
  69877. .sp
  69878. Or in a provider:
  69879. .INDENT 0.0
  69880. .INDENT 3.5
  69881. .sp
  69882. .nf
  69883. .ft C
  69884. my\-provider:
  69885. # snip...
  69886. script: bootstrap\-salt
  69887. .ft P
  69888. .fi
  69889. .UNINDENT
  69890. .UNINDENT
  69891. .sp
  69892. Or in a profile:
  69893. .INDENT 0.0
  69894. .INDENT 3.5
  69895. .sp
  69896. .nf
  69897. .ft C
  69898. my\-profile:
  69899. provider: my\-provider
  69900. # snip...
  69901. script: bootstrap\-salt
  69902. .ft P
  69903. .fi
  69904. .UNINDENT
  69905. .UNINDENT
  69906. .sp
  69907. If you do not specify a script argument in your cloud configuration file,
  69908. provider configuration or profile configuration, the "bootstrap\-salt" script
  69909. will be used by default.
  69910. .SS Other Generic Deploy Scripts
  69911. .sp
  69912. If you want to be assured of always using the latest Salt Bootstrap script,
  69913. there are a few generic templates available in the deploy directory of your
  69914. saltcloud source tree:
  69915. .INDENT 0.0
  69916. .INDENT 3.5
  69917. .sp
  69918. .nf
  69919. .ft C
  69920. curl\-bootstrap
  69921. curl\-bootstrap\-git
  69922. python\-bootstrap
  69923. wget\-bootstrap
  69924. wget\-bootstrap\-git
  69925. .ft P
  69926. .fi
  69927. .UNINDENT
  69928. .UNINDENT
  69929. .sp
  69930. These are example scripts which were designed to be customized, adapted, and
  69931. refit to meet your needs. One important use of them is to pass options to
  69932. the salt\-bootstrap script, such as updating to specific git tags.
  69933. .SS Custom Deploy Scripts
  69934. .sp
  69935. If the Salt Bootstrap script does not meet your needs, you may write your own.
  69936. The script should be written in shell and is a Jinja template. Deploy scripts
  69937. need to execute a number of functions to do a complete salt setup. These
  69938. functions include:
  69939. .INDENT 0.0
  69940. .IP 1. 3
  69941. Install the salt minion. If this can be done via system packages this method
  69942. is HIGHLY preferred.
  69943. .IP 2. 3
  69944. Add the salt minion keys before the minion is started for the first time.
  69945. The minion keys are available as strings that can be copied into place in
  69946. the Jinja template under the dict named "vm".
  69947. .IP 3. 3
  69948. Start the salt\-minion daemon and enable it at startup time.
  69949. .IP 4. 3
  69950. Set up the minion configuration file from the "minion" data available in
  69951. the Jinja template.
  69952. .UNINDENT
  69953. .sp
  69954. A good, well commented example of this process is the Fedora deployment
  69955. script:
  69956. .sp
  69957. \fI\%https://github.com/saltstack/salt/blob/master/salt/cloud/deploy/Fedora.sh\fP
  69958. .sp
  69959. A number of legacy deploy scripts are included with the release tarball. None
  69960. of them are as functional or complete as Salt Bootstrap, and are still included
  69961. for academic purposes.
  69962. .sp
  69963. Custom deploy scripts are picked up from \fB/etc/salt/cloud.deploy.d\fP by
  69964. default, but you can change the location of deploy scripts with the cloud
  69965. configuration \fBdeploy_scripts_search_path\fP\&. Additionally, if your deploy
  69966. script has the extension \fB\&.sh\fP, you can leave out the extension in your
  69967. configuration.
  69968. .sp
  69969. For example, if your custom deploy script is located in
  69970. \fB/etc/salt/cloud.deploy.d/my_deploy.sh\fP, you could specify it in a cloud
  69971. profile like this:
  69972. .INDENT 0.0
  69973. .INDENT 3.5
  69974. .sp
  69975. .nf
  69976. .ft C
  69977. my\-profile:
  69978. provider: my\-provider
  69979. # snip...
  69980. script: my_deploy
  69981. .ft P
  69982. .fi
  69983. .UNINDENT
  69984. .UNINDENT
  69985. .sp
  69986. You\(aqre also free to use the full path to the script if you like. Using full
  69987. paths, your script doesn\(aqt have to live inside \fB/etc/salt/cloud.deploy.d\fP or
  69988. whatever you\(aqve configured with \fBdeploy_scripts_search_path\fP\&.
  69989. .SS Post\-Deploy Commands
  69990. .sp
  69991. Once a minion has been deployed, it has the option to run a salt command.
  69992. Normally, this would be the \fBstate.apply\fP,
  69993. which would finish provisioning the VM. Another common option (for testing) is
  69994. to use \fBtest.version\fP\&. This is configured in the
  69995. main cloud config file:
  69996. .INDENT 0.0
  69997. .INDENT 3.5
  69998. .sp
  69999. .nf
  70000. .ft C
  70001. start_action: state.apply
  70002. .ft P
  70003. .fi
  70004. .UNINDENT
  70005. .UNINDENT
  70006. .sp
  70007. This is currently considered to be experimental functionality, and may not work
  70008. well with all cloud hosts. If you experience problems with Salt Cloud hanging
  70009. after Salt is deployed, consider using Startup States instead:
  70010. .sp
  70011. \fI\%http://docs.saltstack.com/ref/states/startup.html\fP
  70012. .SS Skipping the Deploy Script
  70013. .sp
  70014. For whatever reason, you may want to skip the deploy script altogether. This
  70015. results in a VM being spun up much faster, with absolutely no configuration.
  70016. This can be set from the command line:
  70017. .INDENT 0.0
  70018. .INDENT 3.5
  70019. .sp
  70020. .nf
  70021. .ft C
  70022. salt\-cloud \-\-no\-deploy \-p micro_aws my_instance
  70023. .ft P
  70024. .fi
  70025. .UNINDENT
  70026. .UNINDENT
  70027. .sp
  70028. Or it can be set from the main cloud config file:
  70029. .INDENT 0.0
  70030. .INDENT 3.5
  70031. .sp
  70032. .nf
  70033. .ft C
  70034. deploy: False
  70035. .ft P
  70036. .fi
  70037. .UNINDENT
  70038. .UNINDENT
  70039. .sp
  70040. Or it can be set from the provider\(aqs configuration:
  70041. .INDENT 0.0
  70042. .INDENT 3.5
  70043. .sp
  70044. .nf
  70045. .ft C
  70046. RACKSPACE.user: example_user
  70047. RACKSPACE.apikey: 123984bjjas87034
  70048. RACKSPACE.deploy: False
  70049. .ft P
  70050. .fi
  70051. .UNINDENT
  70052. .UNINDENT
  70053. .sp
  70054. Or even on the VM\(aqs profile settings:
  70055. .INDENT 0.0
  70056. .INDENT 3.5
  70057. .sp
  70058. .nf
  70059. .ft C
  70060. ubuntu_aws:
  70061. provider: my\-ec2\-config
  70062. image: ami\-7e2da54e
  70063. size: t1.micro
  70064. deploy: False
  70065. .ft P
  70066. .fi
  70067. .UNINDENT
  70068. .UNINDENT
  70069. .sp
  70070. The default for deploy is True.
  70071. .sp
  70072. In the profile, you may also set the script option to \fBNone\fP:
  70073. .INDENT 0.0
  70074. .INDENT 3.5
  70075. .sp
  70076. .nf
  70077. .ft C
  70078. script: None
  70079. .ft P
  70080. .fi
  70081. .UNINDENT
  70082. .UNINDENT
  70083. .sp
  70084. This is the slowest option, since it still uploads the None deploy script and
  70085. executes it.
  70086. .SS Updating Salt Bootstrap
  70087. .sp
  70088. Salt Bootstrap can be updated automatically with \fBsalt\-cloud\fP:
  70089. .INDENT 0.0
  70090. .INDENT 3.5
  70091. .sp
  70092. .nf
  70093. .ft C
  70094. salt\-cloud \-u
  70095. salt\-cloud \-\-update\-bootstrap
  70096. .ft P
  70097. .fi
  70098. .UNINDENT
  70099. .UNINDENT
  70100. .sp
  70101. Bear in mind that this updates to the latest \fBstable\fP version from:
  70102. .sp
  70103. \fI\%https://bootstrap.saltstack.com/stable/bootstrap\-salt.sh\fP
  70104. .sp
  70105. To update Salt Bootstrap script to the \fBdevelop\fP version, run the following
  70106. command on the Salt minion host with \fBsalt\-cloud\fP installed:
  70107. .INDENT 0.0
  70108. .INDENT 3.5
  70109. .sp
  70110. .nf
  70111. .ft C
  70112. salt\-call config.gather_bootstrap_script \(aqhttps://bootstrap.saltstack.com/develop/bootstrap\-salt.sh\(aq
  70113. .ft P
  70114. .fi
  70115. .UNINDENT
  70116. .UNINDENT
  70117. .sp
  70118. Or just download the file manually:
  70119. .INDENT 0.0
  70120. .INDENT 3.5
  70121. .sp
  70122. .nf
  70123. .ft C
  70124. curl \-L \(aqhttps://bootstrap.saltstack.com/develop\(aq > /etc/salt/cloud.deploy.d/bootstrap\-salt.sh
  70125. .ft P
  70126. .fi
  70127. .UNINDENT
  70128. .UNINDENT
  70129. .SS Keeping /tmp/ Files
  70130. .sp
  70131. When Salt Cloud deploys an instance, it uploads temporary files to /tmp/ for
  70132. salt\-bootstrap to put in place. After the script has run, they are deleted. To
  70133. keep these files around (mostly for debugging purposes), the \-\-keep\-tmp option
  70134. can be added:
  70135. .INDENT 0.0
  70136. .INDENT 3.5
  70137. .sp
  70138. .nf
  70139. .ft C
  70140. salt\-cloud \-p myprofile mymachine \-\-keep\-tmp
  70141. .ft P
  70142. .fi
  70143. .UNINDENT
  70144. .UNINDENT
  70145. .sp
  70146. For those wondering why /tmp/ was used instead of /root/, this had to be done
  70147. for images which require the use of sudo, and therefore do not allow remote
  70148. root logins, even for file transfers (which makes /root/ unavailable).
  70149. .SS Deploy Script Arguments
  70150. .sp
  70151. Custom deploy scripts are unlikely to need custom arguments to be passed to
  70152. them, but salt\-bootstrap has been extended quite a bit, and this may be
  70153. necessary. script_args can be specified in either the profile or the map file,
  70154. to pass arguments to the deploy script:
  70155. .INDENT 0.0
  70156. .INDENT 3.5
  70157. .sp
  70158. .nf
  70159. .ft C
  70160. aws\-amazon:
  70161. provider: my\-ec2\-config
  70162. image: ami\-1624987f
  70163. size: t1.micro
  70164. ssh_username: ec2\-user
  70165. script: bootstrap\-salt
  70166. script_args: \-c /tmp/
  70167. .ft P
  70168. .fi
  70169. .UNINDENT
  70170. .UNINDENT
  70171. .sp
  70172. This has also been tested to work with pipes, if needed:
  70173. .INDENT 0.0
  70174. .INDENT 3.5
  70175. .sp
  70176. .nf
  70177. .ft C
  70178. script_args: \(aq| head\(aq
  70179. .ft P
  70180. .fi
  70181. .UNINDENT
  70182. .UNINDENT
  70183. .SS Using Salt Cloud from Salt
  70184. .SS Using the Salt Modules for Cloud
  70185. .sp
  70186. In addition to the \fBsalt\-cloud\fP command, Salt Cloud can be called from Salt,
  70187. in a variety of different ways. Most users will be interested in either the
  70188. execution module or the state module, but it is also possible to call Salt Cloud
  70189. as a runner.
  70190. .sp
  70191. Because the actual work will be performed on a remote minion, the normal Salt
  70192. Cloud configuration must exist on any target minion that needs to execute a Salt
  70193. Cloud command. Because Salt Cloud now supports breaking out configuration into
  70194. individual files, the configuration is easily managed using Salt\(aqs own
  70195. \fBfile.managed\fP state function. For example, the following directories allow
  70196. this configuration to be managed easily:
  70197. .INDENT 0.0
  70198. .INDENT 3.5
  70199. .sp
  70200. .nf
  70201. .ft C
  70202. /etc/salt/cloud.providers.d/
  70203. /etc/salt/cloud.profiles.d/
  70204. .ft P
  70205. .fi
  70206. .UNINDENT
  70207. .UNINDENT
  70208. .SS Minion Keys
  70209. .sp
  70210. Keep in mind that when creating minions, Salt Cloud will create public and
  70211. private minion keys, upload them to the minion, and place the public key on the
  70212. machine that created the minion. It will \fInot\fP attempt to place any public
  70213. minion keys on the master, unless the minion which was used to create the
  70214. instance is also the Salt Master. This is because granting arbitrary minions
  70215. access to modify keys on the master is a serious security risk, and must be
  70216. avoided.
  70217. .SS Execution Module
  70218. .sp
  70219. The \fBcloud\fP module is available to use from the command line. At the moment,
  70220. almost every standard Salt Cloud feature is available to use. The following
  70221. commands are available:
  70222. .SS list_images
  70223. .sp
  70224. This command is designed to show images that are available to be used to create
  70225. an instance using Salt Cloud. In general they are used in the creation of
  70226. profiles, but may also be used to create an instance directly (see below).
  70227. Listing images requires a provider to be configured, and specified:
  70228. .INDENT 0.0
  70229. .INDENT 3.5
  70230. .sp
  70231. .nf
  70232. .ft C
  70233. salt myminion cloud.list_images my\-cloud\-provider
  70234. .ft P
  70235. .fi
  70236. .UNINDENT
  70237. .UNINDENT
  70238. .SS list_sizes
  70239. .sp
  70240. This command is designed to show sizes that are available to be used to create
  70241. an instance using Salt Cloud. In general they are used in the creation of
  70242. profiles, but may also be used to create an instance directly (see below). This
  70243. command is not available for all cloud providers; see the provider\-specific
  70244. documentation for details. Listing sizes requires a provider to be configured,
  70245. and specified:
  70246. .INDENT 0.0
  70247. .INDENT 3.5
  70248. .sp
  70249. .nf
  70250. .ft C
  70251. salt myminion cloud.list_sizes my\-cloud\-provider
  70252. .ft P
  70253. .fi
  70254. .UNINDENT
  70255. .UNINDENT
  70256. .SS list_locations
  70257. .sp
  70258. This command is designed to show locations that are available to be used to
  70259. create an instance using Salt Cloud. In general they are used in the creation of
  70260. profiles, but may also be used to create an instance directly (see below). This
  70261. command is not available for all cloud providers; see the provider\-specific
  70262. documentation for details. Listing locations requires a provider to be
  70263. configured, and specified:
  70264. .INDENT 0.0
  70265. .INDENT 3.5
  70266. .sp
  70267. .nf
  70268. .ft C
  70269. salt myminion cloud.list_locations my\-cloud\-provider
  70270. .ft P
  70271. .fi
  70272. .UNINDENT
  70273. .UNINDENT
  70274. .SS query
  70275. .sp
  70276. This command is used to query all configured cloud providers, and display all
  70277. instances associated with those accounts. By default, it will run a standard
  70278. query, returning the following fields:
  70279. .INDENT 0.0
  70280. .TP
  70281. .B \fBid\fP
  70282. The name or ID of the instance, as used by the cloud provider.
  70283. .TP
  70284. .B \fBimage\fP
  70285. The disk image that was used to create this instance.
  70286. .TP
  70287. .B \fBprivate_ips\fP
  70288. Any public IP addresses currently assigned to this instance.
  70289. .TP
  70290. .B \fBpublic_ips\fP
  70291. Any private IP addresses currently assigned to this instance.
  70292. .TP
  70293. .B \fBsize\fP
  70294. The size of the instance; can refer to RAM, CPU(s), disk space, etc.,
  70295. depending on the cloud provider.
  70296. .TP
  70297. .B \fBstate\fP
  70298. The running state of the instance; for example, \fBrunning\fP, \fBstopped\fP,
  70299. \fBpending\fP, etc. This state is dependent upon the provider.
  70300. .UNINDENT
  70301. .sp
  70302. This command may also be used to perform a full query or a select query, as
  70303. described below. The following usages are available:
  70304. .INDENT 0.0
  70305. .INDENT 3.5
  70306. .sp
  70307. .nf
  70308. .ft C
  70309. salt myminion cloud.query
  70310. salt myminion cloud.query list_nodes
  70311. salt myminion cloud.query list_nodes_full
  70312. .ft P
  70313. .fi
  70314. .UNINDENT
  70315. .UNINDENT
  70316. .SS full_query
  70317. .sp
  70318. This command behaves like the \fBquery\fP command, but lists all information
  70319. concerning each instance as provided by the cloud provider, in addition to the
  70320. fields returned by the \fBquery\fP command.
  70321. .INDENT 0.0
  70322. .INDENT 3.5
  70323. .sp
  70324. .nf
  70325. .ft C
  70326. salt myminion cloud.full_query
  70327. .ft P
  70328. .fi
  70329. .UNINDENT
  70330. .UNINDENT
  70331. .SS select_query
  70332. .sp
  70333. This command behaves like the \fBquery\fP command, but only returned select
  70334. fields as defined in the \fB/etc/salt/cloud\fP configuration file. A sample
  70335. configuration for this section of the file might look like:
  70336. .INDENT 0.0
  70337. .INDENT 3.5
  70338. .sp
  70339. .nf
  70340. .ft C
  70341. query.selection:
  70342. \- id
  70343. \- key_name
  70344. .ft P
  70345. .fi
  70346. .UNINDENT
  70347. .UNINDENT
  70348. .sp
  70349. This configuration would only return the \fBid\fP and \fBkey_name\fP fields, for
  70350. those cloud providers that support those two fields. This would be called using
  70351. the following command:
  70352. .INDENT 0.0
  70353. .INDENT 3.5
  70354. .sp
  70355. .nf
  70356. .ft C
  70357. salt myminion cloud.select_query
  70358. .ft P
  70359. .fi
  70360. .UNINDENT
  70361. .UNINDENT
  70362. .SS profile
  70363. .sp
  70364. This command is used to create an instance using a profile that is configured
  70365. on the target minion. Please note that the profile must be configured before
  70366. this command can be used with it.
  70367. .INDENT 0.0
  70368. .INDENT 3.5
  70369. .sp
  70370. .nf
  70371. .ft C
  70372. salt myminion cloud.profile ec2\-centos64\-x64 my\-new\-instance
  70373. .ft P
  70374. .fi
  70375. .UNINDENT
  70376. .UNINDENT
  70377. .sp
  70378. Please note that the execution module does \fInot\fP run in parallel mode. Using
  70379. multiple minions to create instances can effectively perform parallel instance
  70380. creation.
  70381. .SS create
  70382. .sp
  70383. This command is similar to the \fBprofile\fP command, in that it is used to create
  70384. a new instance. However, it does not require a profile to be pre\-configured.
  70385. Instead, all of the options that are normally configured in a profile are passed
  70386. directly to Salt Cloud to create the instance:
  70387. .INDENT 0.0
  70388. .INDENT 3.5
  70389. .sp
  70390. .nf
  70391. .ft C
  70392. salt myminion cloud.create my\-ec2\-config my\-new\-instance \e
  70393. image=ami\-1624987f size=\(aqt1.micro\(aq ssh_username=ec2\-user \e
  70394. securitygroup=default delvol_on_destroy=True
  70395. .ft P
  70396. .fi
  70397. .UNINDENT
  70398. .UNINDENT
  70399. .sp
  70400. Please note that the execution module does \fInot\fP run in parallel mode. Using
  70401. multiple minions to create instances can effectively perform parallel instance
  70402. creation.
  70403. .SS destroy
  70404. .sp
  70405. This command is used to destroy an instance or instances. This command will
  70406. search all configured providers and remove any instance(s) which matches the
  70407. name(s) passed in here. The results of this command are \fInon\-reversable\fP and
  70408. should be used with caution.
  70409. .INDENT 0.0
  70410. .INDENT 3.5
  70411. .sp
  70412. .nf
  70413. .ft C
  70414. salt myminion cloud.destroy myinstance
  70415. salt myminion cloud.destroy myinstance1,myinstance2
  70416. .ft P
  70417. .fi
  70418. .UNINDENT
  70419. .UNINDENT
  70420. .SS action
  70421. .sp
  70422. This command implements both the \fBaction\fP and the \fBfunction\fP commands
  70423. used in the standard \fBsalt\-cloud\fP command. If one of the standard \fBaction\fP
  70424. commands is used, an instance name must be provided. If one of the standard
  70425. \fBfunction\fP commands is used, a provider configuration must be named.
  70426. .INDENT 0.0
  70427. .INDENT 3.5
  70428. .sp
  70429. .nf
  70430. .ft C
  70431. salt myminion cloud.action start instance=myinstance
  70432. salt myminion cloud.action show_image provider=my\-ec2\-config \e
  70433. image=ami\-1624987f
  70434. .ft P
  70435. .fi
  70436. .UNINDENT
  70437. .UNINDENT
  70438. .sp
  70439. The actions available are largely dependent upon the module for the specific
  70440. cloud provider. The following actions are available for all cloud providers:
  70441. .INDENT 0.0
  70442. .TP
  70443. .B \fBlist_nodes\fP
  70444. This is a direct call to the \fBquery\fP function as described above, but is
  70445. only performed against a single cloud provider. A provider configuration
  70446. must be included.
  70447. .TP
  70448. .B \fBlist_nodes_select\fP
  70449. This is a direct call to the \fBfull_query\fP function as described above, but
  70450. is only performed against a single cloud provider. A provider configuration
  70451. must be included.
  70452. .TP
  70453. .B \fBlist_nodes_select\fP
  70454. This is a direct call to the \fBselect_query\fP function as described above,
  70455. but is only performed against a single cloud provider. A provider
  70456. configuration must be included.
  70457. .TP
  70458. .B \fBshow_instance\fP
  70459. This is a thin wrapper around \fBlist_nodes\fP, which returns the full
  70460. information about a single instance. An instance name must be provided.
  70461. .UNINDENT
  70462. .SS State Module
  70463. .sp
  70464. A subset of the execution module is available through the \fBcloud\fP state
  70465. module. Not all functions are currently included, because there is currently
  70466. insufficient code for them to perform statefully. For example, a command to
  70467. create an instance may be issued with a series of options, but those options
  70468. cannot currently be statefully managed. Additional states to manage these
  70469. options will be released at a later time.
  70470. .SS cloud.present
  70471. .sp
  70472. This state will ensure that an instance is present inside a particular cloud
  70473. provider. Any option that is normally specified in the \fBcloud.create\fP
  70474. execution module and function may be declared here, but only the actual
  70475. presence of the instance will be managed statefully.
  70476. .INDENT 0.0
  70477. .INDENT 3.5
  70478. .sp
  70479. .nf
  70480. .ft C
  70481. my\-instance\-name:
  70482. cloud.present:
  70483. \- cloud_provider: my\-ec2\-config
  70484. \- image: ami\-1624987f
  70485. \- size: \(aqt1.micro\(aq
  70486. \- ssh_username: ec2\-user
  70487. \- securitygroup: default
  70488. \- delvol_on_destroy: True
  70489. .ft P
  70490. .fi
  70491. .UNINDENT
  70492. .UNINDENT
  70493. .SS cloud.profile
  70494. .sp
  70495. This state will ensure that an instance is present inside a particular cloud
  70496. provider. This function calls the \fBcloud.profile\fP execution module and
  70497. function, but as with \fBcloud.present\fP, only the actual presence of the
  70498. instance will be managed statefully.
  70499. .INDENT 0.0
  70500. .INDENT 3.5
  70501. .sp
  70502. .nf
  70503. .ft C
  70504. my\-instance\-name:
  70505. cloud.profile:
  70506. \- profile: ec2\-centos64\-x64
  70507. .ft P
  70508. .fi
  70509. .UNINDENT
  70510. .UNINDENT
  70511. .SS cloud.absent
  70512. .sp
  70513. This state will ensure that an instance (identified by name) does not exist in
  70514. any of the cloud providers configured on the target minion. Please note that
  70515. this state is \fInon\-reversable\fP and may be considered especially destructive when
  70516. issued as a cloud state.
  70517. .INDENT 0.0
  70518. .INDENT 3.5
  70519. .sp
  70520. .nf
  70521. .ft C
  70522. my\-instance\-name:
  70523. cloud.absent
  70524. .ft P
  70525. .fi
  70526. .UNINDENT
  70527. .UNINDENT
  70528. .SS Runner Module
  70529. .sp
  70530. The \fBcloud\fP runner module is executed on the master, and performs actions
  70531. using the configuration and Salt modules on the master itself. This means that
  70532. any public minion keys will also be properly accepted by the master.
  70533. .sp
  70534. Using the functions in the runner module is no different than using those in
  70535. the execution module, outside of the behavior described in the above paragraph.
  70536. The following functions are available inside the runner:
  70537. .INDENT 0.0
  70538. .IP \(bu 2
  70539. list_images
  70540. .IP \(bu 2
  70541. list_sizes
  70542. .IP \(bu 2
  70543. list_locations
  70544. .IP \(bu 2
  70545. query
  70546. .IP \(bu 2
  70547. full_query
  70548. .IP \(bu 2
  70549. select_query
  70550. .IP \(bu 2
  70551. profile
  70552. .IP \(bu 2
  70553. destroy
  70554. .IP \(bu 2
  70555. action
  70556. .UNINDENT
  70557. .sp
  70558. Outside of the standard usage of \fBsalt\-run\fP itself, commands are executed as
  70559. usual:
  70560. .INDENT 0.0
  70561. .INDENT 3.5
  70562. .sp
  70563. .nf
  70564. .ft C
  70565. salt\-run cloud.profile ec2\-centos64\-x86_64 my\-instance\-name
  70566. .ft P
  70567. .fi
  70568. .UNINDENT
  70569. .UNINDENT
  70570. .SS CloudClient
  70571. .sp
  70572. The execution, state, and runner modules ultimately all use the CloudClient
  70573. library that ships with Salt. To use the CloudClient library locally (either on
  70574. the master or a minion), create a client object and issue a command against it:
  70575. .INDENT 0.0
  70576. .INDENT 3.5
  70577. .sp
  70578. .nf
  70579. .ft C
  70580. import salt.cloud
  70581. import pprint
  70582. client = salt.cloud.CloudClient(\(aq/etc/salt/cloud\(aq)
  70583. nodes = client.query()
  70584. pprint.pprint(nodes)
  70585. .ft P
  70586. .fi
  70587. .UNINDENT
  70588. .UNINDENT
  70589. .SS Reactor
  70590. .sp
  70591. Examples of using the reactor with Salt Cloud are available in the
  70592. \fI\%ec2\-autoscale\-reactor\fP and
  70593. \fI\%salt\-cloud\-reactor\fP formulas.
  70594. .SS Feature Comparison
  70595. .SS Feature Matrix
  70596. .sp
  70597. A number of features are available in most cloud hosts, but not all are
  70598. available everywhere. This may be because the feature isn\(aqt supported by the
  70599. cloud host itself, or it may only be that the feature has not yet been
  70600. added to Salt Cloud. In a handful of cases, it is because the feature does not
  70601. make sense for a particular cloud provider (Saltify, for instance).
  70602. .sp
  70603. This matrix shows which features are available in which cloud hosts, as far
  70604. as Salt Cloud is concerned. This is not a comprehensive list of all features
  70605. available in all cloud hosts, and should not be used to make business
  70606. decisions concerning choosing a cloud host. In most cases, adding support
  70607. for a feature to Salt Cloud requires only a little effort.
  70608. .SS Legacy Drivers
  70609. .sp
  70610. Both AWS and Rackspace are listed as "Legacy". This is because those drivers
  70611. have been replaced by other drivers, which are generally the preferred method
  70612. for working with those hosts.
  70613. .sp
  70614. The EC2 driver should be used instead of the AWS driver, when possible. The
  70615. OpenStack driver should be used instead of the Rackspace driver, unless the user
  70616. is dealing with instances in "the old cloud" in Rackspace.
  70617. .SS Note for Developers
  70618. .sp
  70619. When adding new features to a particular cloud host, please make sure to
  70620. add the feature to this table. Additionally, if you notice a feature that is not
  70621. properly listed here, pull requests to fix them is appreciated.
  70622. .SS Standard Features
  70623. .sp
  70624. These are features that are available for almost every cloud host.
  70625. .TS
  70626. center;
  70627. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  70628. _
  70629. T{
  70630. T} T{
  70631. AWS
  70632. (Legacy)
  70633. T} T{
  70634. CloudStack
  70635. T} T{
  70636. Digital
  70637. Ocean
  70638. T} T{
  70639. EC2
  70640. T} T{
  70641. GoGrid
  70642. T} T{
  70643. JoyEnt
  70644. T} T{
  70645. Linode
  70646. T} T{
  70647. OpenStack
  70648. T} T{
  70649. Parallels
  70650. T} T{
  70651. Rackspace
  70652. (Legacy)
  70653. T} T{
  70654. Saltify
  70655. T} T{
  70656. Vagrant
  70657. T} T{
  70658. Softlayer
  70659. T} T{
  70660. Softlayer
  70661. Hardware
  70662. T} T{
  70663. Aliyun
  70664. T} T{
  70665. Tencent
  70666. Cloud
  70667. T}
  70668. _
  70669. T{
  70670. Query
  70671. T} T{
  70672. Yes
  70673. T} T{
  70674. Yes
  70675. T} T{
  70676. Yes
  70677. T} T{
  70678. Yes
  70679. T} T{
  70680. Yes
  70681. T} T{
  70682. Yes
  70683. T} T{
  70684. Yes
  70685. T} T{
  70686. Yes
  70687. T} T{
  70688. Yes
  70689. T} T{
  70690. Yes
  70691. T} T{
  70692. [1]
  70693. T} T{
  70694. [1]
  70695. T} T{
  70696. Yes
  70697. T} T{
  70698. Yes
  70699. T} T{
  70700. Yes
  70701. T} T{
  70702. Yes
  70703. T}
  70704. _
  70705. T{
  70706. Full Query
  70707. T} T{
  70708. Yes
  70709. T} T{
  70710. Yes
  70711. T} T{
  70712. Yes
  70713. T} T{
  70714. Yes
  70715. T} T{
  70716. Yes
  70717. T} T{
  70718. Yes
  70719. T} T{
  70720. Yes
  70721. T} T{
  70722. Yes
  70723. T} T{
  70724. Yes
  70725. T} T{
  70726. Yes
  70727. T} T{
  70728. [1]
  70729. T} T{
  70730. [1]
  70731. T} T{
  70732. Yes
  70733. T} T{
  70734. Yes
  70735. T} T{
  70736. Yes
  70737. T} T{
  70738. Yes
  70739. T}
  70740. _
  70741. T{
  70742. Selective Query
  70743. T} T{
  70744. Yes
  70745. T} T{
  70746. Yes
  70747. T} T{
  70748. Yes
  70749. T} T{
  70750. Yes
  70751. T} T{
  70752. Yes
  70753. T} T{
  70754. Yes
  70755. T} T{
  70756. Yes
  70757. T} T{
  70758. Yes
  70759. T} T{
  70760. Yes
  70761. T} T{
  70762. Yes
  70763. T} T{
  70764. [1]
  70765. T} T{
  70766. [1]
  70767. T} T{
  70768. Yes
  70769. T} T{
  70770. Yes
  70771. T} T{
  70772. Yes
  70773. T} T{
  70774. Yes
  70775. T}
  70776. _
  70777. T{
  70778. List Sizes
  70779. T} T{
  70780. Yes
  70781. T} T{
  70782. Yes
  70783. T} T{
  70784. Yes
  70785. T} T{
  70786. Yes
  70787. T} T{
  70788. Yes
  70789. T} T{
  70790. Yes
  70791. T} T{
  70792. Yes
  70793. T} T{
  70794. Yes
  70795. T} T{
  70796. Yes
  70797. T} T{
  70798. Yes
  70799. T} T{
  70800. [2]
  70801. T} T{
  70802. [2]
  70803. T} T{
  70804. Yes
  70805. T} T{
  70806. Yes
  70807. T} T{
  70808. Yes
  70809. T} T{
  70810. Yes
  70811. T}
  70812. _
  70813. T{
  70814. List Images
  70815. T} T{
  70816. Yes
  70817. T} T{
  70818. Yes
  70819. T} T{
  70820. Yes
  70821. T} T{
  70822. Yes
  70823. T} T{
  70824. Yes
  70825. T} T{
  70826. Yes
  70827. T} T{
  70828. Yes
  70829. T} T{
  70830. Yes
  70831. T} T{
  70832. Yes
  70833. T} T{
  70834. Yes
  70835. T} T{
  70836. Yes
  70837. T} T{
  70838. Yes
  70839. T} T{
  70840. Yes
  70841. T} T{
  70842. Yes
  70843. T} T{
  70844. Yes
  70845. T} T{
  70846. Yes
  70847. T}
  70848. _
  70849. T{
  70850. List Locations
  70851. T} T{
  70852. Yes
  70853. T} T{
  70854. Yes
  70855. T} T{
  70856. Yes
  70857. T} T{
  70858. Yes
  70859. T} T{
  70860. Yes
  70861. T} T{
  70862. Yes
  70863. T} T{
  70864. Yes
  70865. T} T{
  70866. Yes
  70867. T} T{
  70868. Yes
  70869. T} T{
  70870. Yes
  70871. T} T{
  70872. [2]
  70873. T} T{
  70874. [2]
  70875. T} T{
  70876. Yes
  70877. T} T{
  70878. Yes
  70879. T} T{
  70880. Yes
  70881. T} T{
  70882. Yes
  70883. T}
  70884. _
  70885. T{
  70886. create
  70887. T} T{
  70888. Yes
  70889. T} T{
  70890. Yes
  70891. T} T{
  70892. Yes
  70893. T} T{
  70894. Yes
  70895. T} T{
  70896. Yes
  70897. T} T{
  70898. Yes
  70899. T} T{
  70900. Yes
  70901. T} T{
  70902. Yes
  70903. T} T{
  70904. Yes
  70905. T} T{
  70906. Yes
  70907. T} T{
  70908. Yes
  70909. T} T{
  70910. [1]
  70911. T} T{
  70912. Yes
  70913. T} T{
  70914. Yes
  70915. T} T{
  70916. Yes
  70917. T} T{
  70918. Yes
  70919. T}
  70920. _
  70921. T{
  70922. destroy
  70923. T} T{
  70924. Yes
  70925. T} T{
  70926. Yes
  70927. T} T{
  70928. Yes
  70929. T} T{
  70930. Yes
  70931. T} T{
  70932. Yes
  70933. T} T{
  70934. Yes
  70935. T} T{
  70936. Yes
  70937. T} T{
  70938. Yes
  70939. T} T{
  70940. Yes
  70941. T} T{
  70942. Yes
  70943. T} T{
  70944. [1]
  70945. T} T{
  70946. [1]
  70947. T} T{
  70948. Yes
  70949. T} T{
  70950. Yes
  70951. T} T{
  70952. Yes
  70953. T} T{
  70954. Yes
  70955. T}
  70956. _
  70957. .TE
  70958. .sp
  70959. [1] Yes, if salt\-api is enabled.
  70960. .sp
  70961. [2] Always returns \fI{}\fP\&.
  70962. .SS Actions
  70963. .sp
  70964. These are features that are performed on a specific instance, and require an
  70965. instance name to be passed in. For example:
  70966. .INDENT 0.0
  70967. .INDENT 3.5
  70968. .sp
  70969. .nf
  70970. .ft C
  70971. # salt\-cloud \-a attach_volume ami.example.com
  70972. .ft P
  70973. .fi
  70974. .UNINDENT
  70975. .UNINDENT
  70976. .TS
  70977. center;
  70978. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  70979. _
  70980. T{
  70981. Actions
  70982. T} T{
  70983. AWS
  70984. (Legacy)
  70985. T} T{
  70986. CloudStack
  70987. T} T{
  70988. Digital
  70989. Ocean
  70990. T} T{
  70991. EC2
  70992. T} T{
  70993. GoGrid
  70994. T} T{
  70995. JoyEnt
  70996. T} T{
  70997. Linode
  70998. T} T{
  70999. OpenStack
  71000. T} T{
  71001. Parallels
  71002. T} T{
  71003. Rackspace
  71004. (Legacy)
  71005. T} T{
  71006. .INDENT 0.0
  71007. .TP
  71008. .B Saltify&
  71009. Vagrant
  71010. .UNINDENT
  71011. T} T{
  71012. Softlayer
  71013. T} T{
  71014. Softlayer
  71015. Hardware
  71016. T} T{
  71017. Aliyun
  71018. T} T{
  71019. Tencent
  71020. Cloud
  71021. T}
  71022. _
  71023. T{
  71024. attach_volume
  71025. T} T{
  71026. T} T{
  71027. T} T{
  71028. T} T{
  71029. Yes
  71030. T} T{
  71031. T} T{
  71032. T} T{
  71033. T} T{
  71034. T} T{
  71035. T} T{
  71036. T} T{
  71037. T} T{
  71038. T} T{
  71039. T} T{
  71040. T} T{
  71041. T}
  71042. _
  71043. T{
  71044. create_attach_volumes
  71045. T} T{
  71046. Yes
  71047. T} T{
  71048. T} T{
  71049. T} T{
  71050. Yes
  71051. T} T{
  71052. T} T{
  71053. T} T{
  71054. T} T{
  71055. T} T{
  71056. T} T{
  71057. T} T{
  71058. T} T{
  71059. T} T{
  71060. T} T{
  71061. T} T{
  71062. T}
  71063. _
  71064. T{
  71065. del_tags
  71066. T} T{
  71067. Yes
  71068. T} T{
  71069. T} T{
  71070. T} T{
  71071. Yes
  71072. T} T{
  71073. T} T{
  71074. T} T{
  71075. T} T{
  71076. T} T{
  71077. T} T{
  71078. T} T{
  71079. T} T{
  71080. T} T{
  71081. T} T{
  71082. T} T{
  71083. T}
  71084. _
  71085. T{
  71086. delvol_on_destroy
  71087. T} T{
  71088. T} T{
  71089. T} T{
  71090. T} T{
  71091. Yes
  71092. T} T{
  71093. T} T{
  71094. T} T{
  71095. T} T{
  71096. T} T{
  71097. T} T{
  71098. T} T{
  71099. T} T{
  71100. T} T{
  71101. T} T{
  71102. T} T{
  71103. T}
  71104. _
  71105. T{
  71106. detach_volume
  71107. T} T{
  71108. T} T{
  71109. T} T{
  71110. T} T{
  71111. Yes
  71112. T} T{
  71113. T} T{
  71114. T} T{
  71115. T} T{
  71116. T} T{
  71117. T} T{
  71118. T} T{
  71119. T} T{
  71120. T} T{
  71121. T} T{
  71122. T} T{
  71123. T}
  71124. _
  71125. T{
  71126. disable_term_protect
  71127. T} T{
  71128. Yes
  71129. T} T{
  71130. T} T{
  71131. T} T{
  71132. Yes
  71133. T} T{
  71134. T} T{
  71135. T} T{
  71136. T} T{
  71137. T} T{
  71138. T} T{
  71139. T} T{
  71140. T} T{
  71141. T} T{
  71142. T} T{
  71143. T} T{
  71144. T}
  71145. _
  71146. T{
  71147. enable_term_protect
  71148. T} T{
  71149. Yes
  71150. T} T{
  71151. T} T{
  71152. T} T{
  71153. Yes
  71154. T} T{
  71155. T} T{
  71156. T} T{
  71157. T} T{
  71158. T} T{
  71159. T} T{
  71160. T} T{
  71161. T} T{
  71162. T} T{
  71163. T} T{
  71164. T} T{
  71165. T}
  71166. _
  71167. T{
  71168. get_tags
  71169. T} T{
  71170. Yes
  71171. T} T{
  71172. T} T{
  71173. T} T{
  71174. Yes
  71175. T} T{
  71176. T} T{
  71177. T} T{
  71178. T} T{
  71179. T} T{
  71180. T} T{
  71181. T} T{
  71182. T} T{
  71183. T} T{
  71184. T} T{
  71185. T} T{
  71186. T}
  71187. _
  71188. T{
  71189. keepvol_on_destroy
  71190. T} T{
  71191. T} T{
  71192. T} T{
  71193. T} T{
  71194. Yes
  71195. T} T{
  71196. T} T{
  71197. T} T{
  71198. T} T{
  71199. T} T{
  71200. T} T{
  71201. T} T{
  71202. T} T{
  71203. T} T{
  71204. T} T{
  71205. T} T{
  71206. T}
  71207. _
  71208. T{
  71209. list_keypairs
  71210. T} T{
  71211. T} T{
  71212. T} T{
  71213. Yes
  71214. T} T{
  71215. T} T{
  71216. T} T{
  71217. T} T{
  71218. T} T{
  71219. T} T{
  71220. T} T{
  71221. T} T{
  71222. T} T{
  71223. T} T{
  71224. T} T{
  71225. T} T{
  71226. T}
  71227. _
  71228. T{
  71229. rename
  71230. T} T{
  71231. Yes
  71232. T} T{
  71233. T} T{
  71234. T} T{
  71235. Yes
  71236. T} T{
  71237. T} T{
  71238. T} T{
  71239. T} T{
  71240. T} T{
  71241. T} T{
  71242. T} T{
  71243. T} T{
  71244. T} T{
  71245. T} T{
  71246. T} T{
  71247. T}
  71248. _
  71249. T{
  71250. set_tags
  71251. T} T{
  71252. Yes
  71253. T} T{
  71254. T} T{
  71255. T} T{
  71256. Yes
  71257. T} T{
  71258. T} T{
  71259. T} T{
  71260. T} T{
  71261. T} T{
  71262. T} T{
  71263. T} T{
  71264. T} T{
  71265. T} T{
  71266. T} T{
  71267. T} T{
  71268. T}
  71269. _
  71270. T{
  71271. show_delvol_on_destroy
  71272. T} T{
  71273. T} T{
  71274. T} T{
  71275. T} T{
  71276. Yes
  71277. T} T{
  71278. T} T{
  71279. T} T{
  71280. T} T{
  71281. T} T{
  71282. T} T{
  71283. T} T{
  71284. T} T{
  71285. T} T{
  71286. T} T{
  71287. T} T{
  71288. T}
  71289. _
  71290. T{
  71291. show_instance
  71292. T} T{
  71293. T} T{
  71294. T} T{
  71295. Yes
  71296. T} T{
  71297. Yes
  71298. T} T{
  71299. T} T{
  71300. T} T{
  71301. Yes
  71302. T} T{
  71303. T} T{
  71304. Yes
  71305. T} T{
  71306. T} T{
  71307. T} T{
  71308. Yes
  71309. T} T{
  71310. Yes
  71311. T} T{
  71312. Yes
  71313. T} T{
  71314. Yes
  71315. T}
  71316. _
  71317. T{
  71318. show_term_protect
  71319. T} T{
  71320. T} T{
  71321. T} T{
  71322. T} T{
  71323. Yes
  71324. T} T{
  71325. T} T{
  71326. T} T{
  71327. T} T{
  71328. T} T{
  71329. T} T{
  71330. T} T{
  71331. T} T{
  71332. T} T{
  71333. T} T{
  71334. T} T{
  71335. T}
  71336. _
  71337. T{
  71338. start
  71339. T} T{
  71340. Yes
  71341. T} T{
  71342. T} T{
  71343. T} T{
  71344. Yes
  71345. T} T{
  71346. T} T{
  71347. Yes
  71348. T} T{
  71349. Yes
  71350. T} T{
  71351. T} T{
  71352. Yes
  71353. T} T{
  71354. T} T{
  71355. T} T{
  71356. T} T{
  71357. T} T{
  71358. Yes
  71359. T} T{
  71360. Yes
  71361. T}
  71362. _
  71363. T{
  71364. stop
  71365. T} T{
  71366. Yes
  71367. T} T{
  71368. T} T{
  71369. T} T{
  71370. Yes
  71371. T} T{
  71372. T} T{
  71373. Yes
  71374. T} T{
  71375. Yes
  71376. T} T{
  71377. T} T{
  71378. Yes
  71379. T} T{
  71380. T} T{
  71381. T} T{
  71382. T} T{
  71383. T} T{
  71384. Yes
  71385. T} T{
  71386. Yes
  71387. T}
  71388. _
  71389. T{
  71390. take_action
  71391. T} T{
  71392. T} T{
  71393. T} T{
  71394. T} T{
  71395. T} T{
  71396. T} T{
  71397. Yes
  71398. T} T{
  71399. T} T{
  71400. T} T{
  71401. T} T{
  71402. T} T{
  71403. T} T{
  71404. T} T{
  71405. T} T{
  71406. T} T{
  71407. T}
  71408. _
  71409. .TE
  71410. .SS Functions
  71411. .sp
  71412. These are features that are performed against a specific cloud provider, and
  71413. require the name of the provider to be passed in. For example:
  71414. .INDENT 0.0
  71415. .INDENT 3.5
  71416. .sp
  71417. .nf
  71418. .ft C
  71419. # salt\-cloud \-f list_images my_digitalocean
  71420. .ft P
  71421. .fi
  71422. .UNINDENT
  71423. .UNINDENT
  71424. .TS
  71425. center;
  71426. |l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|l|.
  71427. _
  71428. T{
  71429. Functions
  71430. T} T{
  71431. AWS
  71432. (Legacy)
  71433. T} T{
  71434. CloudStack
  71435. T} T{
  71436. Digital
  71437. Ocean
  71438. T} T{
  71439. EC2
  71440. T} T{
  71441. GoGrid
  71442. T} T{
  71443. JoyEnt
  71444. T} T{
  71445. Linode
  71446. T} T{
  71447. OpenStack
  71448. T} T{
  71449. Parallels
  71450. T} T{
  71451. Rackspace
  71452. (Legacy)
  71453. T} T{
  71454. .INDENT 0.0
  71455. .TP
  71456. .B Saltify&
  71457. Vagrant
  71458. .UNINDENT
  71459. T} T{
  71460. Softlayer
  71461. T} T{
  71462. Softlayer
  71463. Hardware
  71464. T} T{
  71465. Aliyun
  71466. T} T{
  71467. Tencent
  71468. Cloud
  71469. T}
  71470. _
  71471. T{
  71472. block_device_mappings
  71473. T} T{
  71474. Yes
  71475. T} T{
  71476. T} T{
  71477. T} T{
  71478. T} T{
  71479. T} T{
  71480. T} T{
  71481. T} T{
  71482. T} T{
  71483. T} T{
  71484. T} T{
  71485. T} T{
  71486. T} T{
  71487. T} T{
  71488. T} T{
  71489. T}
  71490. _
  71491. T{
  71492. create_keypair
  71493. T} T{
  71494. T} T{
  71495. T} T{
  71496. T} T{
  71497. Yes
  71498. T} T{
  71499. T} T{
  71500. T} T{
  71501. T} T{
  71502. T} T{
  71503. T} T{
  71504. T} T{
  71505. T} T{
  71506. T} T{
  71507. T} T{
  71508. T} T{
  71509. T}
  71510. _
  71511. T{
  71512. create_volume
  71513. T} T{
  71514. T} T{
  71515. T} T{
  71516. T} T{
  71517. Yes
  71518. T} T{
  71519. T} T{
  71520. T} T{
  71521. T} T{
  71522. T} T{
  71523. T} T{
  71524. T} T{
  71525. T} T{
  71526. T} T{
  71527. T} T{
  71528. T} T{
  71529. T}
  71530. _
  71531. T{
  71532. delete_key
  71533. T} T{
  71534. T} T{
  71535. T} T{
  71536. T} T{
  71537. T} T{
  71538. T} T{
  71539. Yes
  71540. T} T{
  71541. T} T{
  71542. T} T{
  71543. T} T{
  71544. T} T{
  71545. T} T{
  71546. T} T{
  71547. T} T{
  71548. T} T{
  71549. T}
  71550. _
  71551. T{
  71552. delete_keypair
  71553. T} T{
  71554. T} T{
  71555. T} T{
  71556. T} T{
  71557. Yes
  71558. T} T{
  71559. T} T{
  71560. T} T{
  71561. T} T{
  71562. T} T{
  71563. T} T{
  71564. T} T{
  71565. T} T{
  71566. T} T{
  71567. T} T{
  71568. T} T{
  71569. T}
  71570. _
  71571. T{
  71572. delete_volume
  71573. T} T{
  71574. T} T{
  71575. T} T{
  71576. T} T{
  71577. Yes
  71578. T} T{
  71579. T} T{
  71580. T} T{
  71581. T} T{
  71582. T} T{
  71583. T} T{
  71584. T} T{
  71585. T} T{
  71586. T} T{
  71587. T} T{
  71588. T} T{
  71589. T}
  71590. _
  71591. T{
  71592. get_image
  71593. T} T{
  71594. T} T{
  71595. T} T{
  71596. Yes
  71597. T} T{
  71598. T} T{
  71599. T} T{
  71600. Yes
  71601. T} T{
  71602. T} T{
  71603. T} T{
  71604. Yes
  71605. T} T{
  71606. T} T{
  71607. T} T{
  71608. T} T{
  71609. T} T{
  71610. Yes
  71611. T} T{
  71612. T}
  71613. _
  71614. T{
  71615. get_ip
  71616. T} T{
  71617. T} T{
  71618. Yes
  71619. T} T{
  71620. T} T{
  71621. T} T{
  71622. T} T{
  71623. T} T{
  71624. T} T{
  71625. T} T{
  71626. T} T{
  71627. T} T{
  71628. T} T{
  71629. T} T{
  71630. T} T{
  71631. T} T{
  71632. T}
  71633. _
  71634. T{
  71635. get_key
  71636. T} T{
  71637. T} T{
  71638. Yes
  71639. T} T{
  71640. T} T{
  71641. T} T{
  71642. T} T{
  71643. T} T{
  71644. T} T{
  71645. T} T{
  71646. T} T{
  71647. T} T{
  71648. T} T{
  71649. T} T{
  71650. T} T{
  71651. T} T{
  71652. T}
  71653. _
  71654. T{
  71655. get_keyid
  71656. T} T{
  71657. T} T{
  71658. T} T{
  71659. Yes
  71660. T} T{
  71661. T} T{
  71662. T} T{
  71663. T} T{
  71664. T} T{
  71665. T} T{
  71666. T} T{
  71667. T} T{
  71668. T} T{
  71669. T} T{
  71670. T} T{
  71671. T} T{
  71672. T}
  71673. _
  71674. T{
  71675. get_keypair
  71676. T} T{
  71677. T} T{
  71678. Yes
  71679. T} T{
  71680. T} T{
  71681. T} T{
  71682. T} T{
  71683. T} T{
  71684. T} T{
  71685. T} T{
  71686. T} T{
  71687. T} T{
  71688. T} T{
  71689. T} T{
  71690. T} T{
  71691. T} T{
  71692. T}
  71693. _
  71694. T{
  71695. get_networkid
  71696. T} T{
  71697. T} T{
  71698. Yes
  71699. T} T{
  71700. T} T{
  71701. T} T{
  71702. T} T{
  71703. T} T{
  71704. T} T{
  71705. T} T{
  71706. T} T{
  71707. T} T{
  71708. T} T{
  71709. T} T{
  71710. T} T{
  71711. T} T{
  71712. T}
  71713. _
  71714. T{
  71715. get_node
  71716. T} T{
  71717. T} T{
  71718. T} T{
  71719. T} T{
  71720. T} T{
  71721. T} T{
  71722. Yes
  71723. T} T{
  71724. T} T{
  71725. T} T{
  71726. T} T{
  71727. T} T{
  71728. T} T{
  71729. T} T{
  71730. T} T{
  71731. T} T{
  71732. T}
  71733. _
  71734. T{
  71735. get_password
  71736. T} T{
  71737. T} T{
  71738. Yes
  71739. T} T{
  71740. T} T{
  71741. T} T{
  71742. T} T{
  71743. T} T{
  71744. T} T{
  71745. T} T{
  71746. T} T{
  71747. T} T{
  71748. T} T{
  71749. T} T{
  71750. T} T{
  71751. T} T{
  71752. T}
  71753. _
  71754. T{
  71755. get_size
  71756. T} T{
  71757. T} T{
  71758. T} T{
  71759. Yes
  71760. T} T{
  71761. T} T{
  71762. T} T{
  71763. Yes
  71764. T} T{
  71765. T} T{
  71766. T} T{
  71767. T} T{
  71768. T} T{
  71769. T} T{
  71770. T} T{
  71771. T} T{
  71772. Yes
  71773. T} T{
  71774. T}
  71775. _
  71776. T{
  71777. get_spot_config
  71778. T} T{
  71779. T} T{
  71780. T} T{
  71781. T} T{
  71782. Yes
  71783. T} T{
  71784. T} T{
  71785. T} T{
  71786. T} T{
  71787. T} T{
  71788. T} T{
  71789. T} T{
  71790. T} T{
  71791. T} T{
  71792. T} T{
  71793. T} T{
  71794. T}
  71795. _
  71796. T{
  71797. get_subnetid
  71798. T} T{
  71799. T} T{
  71800. T} T{
  71801. T} T{
  71802. Yes
  71803. T} T{
  71804. T} T{
  71805. T} T{
  71806. T} T{
  71807. T} T{
  71808. T} T{
  71809. T} T{
  71810. T} T{
  71811. T} T{
  71812. T} T{
  71813. T} T{
  71814. T}
  71815. _
  71816. T{
  71817. iam_profile
  71818. T} T{
  71819. Yes
  71820. T} T{
  71821. T} T{
  71822. T} T{
  71823. Yes
  71824. T} T{
  71825. T} T{
  71826. T} T{
  71827. T} T{
  71828. T} T{
  71829. T} T{
  71830. T} T{
  71831. T} T{
  71832. T} T{
  71833. T} T{
  71834. Yes
  71835. T} T{
  71836. T}
  71837. _
  71838. T{
  71839. import_key
  71840. T} T{
  71841. T} T{
  71842. T} T{
  71843. T} T{
  71844. T} T{
  71845. T} T{
  71846. Yes
  71847. T} T{
  71848. T} T{
  71849. T} T{
  71850. T} T{
  71851. T} T{
  71852. T} T{
  71853. T} T{
  71854. T} T{
  71855. T} T{
  71856. T}
  71857. _
  71858. T{
  71859. key_list
  71860. T} T{
  71861. T} T{
  71862. T} T{
  71863. T} T{
  71864. T} T{
  71865. T} T{
  71866. Yes
  71867. T} T{
  71868. T} T{
  71869. T} T{
  71870. T} T{
  71871. T} T{
  71872. T} T{
  71873. T} T{
  71874. T} T{
  71875. T} T{
  71876. T}
  71877. _
  71878. T{
  71879. keyname
  71880. T} T{
  71881. Yes
  71882. T} T{
  71883. T} T{
  71884. T} T{
  71885. Yes
  71886. T} T{
  71887. T} T{
  71888. T} T{
  71889. T} T{
  71890. T} T{
  71891. T} T{
  71892. T} T{
  71893. T} T{
  71894. T} T{
  71895. T} T{
  71896. T} T{
  71897. T}
  71898. _
  71899. T{
  71900. list_availability_zones
  71901. T} T{
  71902. T} T{
  71903. T} T{
  71904. T} T{
  71905. Yes
  71906. T} T{
  71907. T} T{
  71908. T} T{
  71909. T} T{
  71910. T} T{
  71911. T} T{
  71912. T} T{
  71913. T} T{
  71914. T} T{
  71915. T} T{
  71916. Yes
  71917. T} T{
  71918. Yes
  71919. T}
  71920. _
  71921. T{
  71922. list_custom_images
  71923. T} T{
  71924. T} T{
  71925. T} T{
  71926. T} T{
  71927. T} T{
  71928. T} T{
  71929. T} T{
  71930. T} T{
  71931. T} T{
  71932. T} T{
  71933. T} T{
  71934. T} T{
  71935. Yes
  71936. T} T{
  71937. T} T{
  71938. T} T{
  71939. Yes
  71940. T}
  71941. _
  71942. T{
  71943. list_keys
  71944. T} T{
  71945. T} T{
  71946. T} T{
  71947. T} T{
  71948. T} T{
  71949. T} T{
  71950. Yes
  71951. T} T{
  71952. T} T{
  71953. T} T{
  71954. T} T{
  71955. T} T{
  71956. T} T{
  71957. T} T{
  71958. T} T{
  71959. T} T{
  71960. T}
  71961. _
  71962. T{
  71963. list_nodes
  71964. T} T{
  71965. Yes
  71966. T} T{
  71967. Yes
  71968. T} T{
  71969. Yes
  71970. T} T{
  71971. Yes
  71972. T} T{
  71973. Yes
  71974. T} T{
  71975. Yes
  71976. T} T{
  71977. Yes
  71978. T} T{
  71979. Yes
  71980. T} T{
  71981. Yes
  71982. T} T{
  71983. Yes
  71984. T} T{
  71985. Yes
  71986. T} T{
  71987. Yes
  71988. T} T{
  71989. Yes
  71990. T} T{
  71991. Yes
  71992. T} T{
  71993. Yes
  71994. T}
  71995. _
  71996. T{
  71997. list_nodes_full
  71998. T} T{
  71999. Yes
  72000. T} T{
  72001. Yes
  72002. T} T{
  72003. Yes
  72004. T} T{
  72005. Yes
  72006. T} T{
  72007. Yes
  72008. T} T{
  72009. Yes
  72010. T} T{
  72011. Yes
  72012. T} T{
  72013. Yes
  72014. T} T{
  72015. Yes
  72016. T} T{
  72017. Yes
  72018. T} T{
  72019. Yes
  72020. T} T{
  72021. Yes
  72022. T} T{
  72023. Yes
  72024. T} T{
  72025. Yes
  72026. T} T{
  72027. Yes
  72028. T}
  72029. _
  72030. T{
  72031. list_nodes_select
  72032. T} T{
  72033. Yes
  72034. T} T{
  72035. Yes
  72036. T} T{
  72037. Yes
  72038. T} T{
  72039. Yes
  72040. T} T{
  72041. Yes
  72042. T} T{
  72043. Yes
  72044. T} T{
  72045. Yes
  72046. T} T{
  72047. Yes
  72048. T} T{
  72049. Yes
  72050. T} T{
  72051. Yes
  72052. T} T{
  72053. Yes
  72054. T} T{
  72055. Yes
  72056. T} T{
  72057. Yes
  72058. T} T{
  72059. Yes
  72060. T} T{
  72061. Yes
  72062. T}
  72063. _
  72064. T{
  72065. list_vlans
  72066. T} T{
  72067. T} T{
  72068. T} T{
  72069. T} T{
  72070. T} T{
  72071. T} T{
  72072. T} T{
  72073. T} T{
  72074. T} T{
  72075. T} T{
  72076. T} T{
  72077. T} T{
  72078. Yes
  72079. T} T{
  72080. Yes
  72081. T} T{
  72082. T} T{
  72083. T}
  72084. _
  72085. T{
  72086. rackconnect
  72087. T} T{
  72088. T} T{
  72089. T} T{
  72090. T} T{
  72091. T} T{
  72092. T} T{
  72093. T} T{
  72094. T} T{
  72095. Yes
  72096. T} T{
  72097. T} T{
  72098. T} T{
  72099. T} T{
  72100. T} T{
  72101. T} T{
  72102. T} T{
  72103. T}
  72104. _
  72105. T{
  72106. reboot
  72107. T} T{
  72108. T} T{
  72109. T} T{
  72110. T} T{
  72111. Yes
  72112. T} T{
  72113. T} T{
  72114. Yes
  72115. T} T{
  72116. T} T{
  72117. T} T{
  72118. T} T{
  72119. T} T{
  72120. [1]
  72121. T} T{
  72122. T} T{
  72123. T} T{
  72124. Yes
  72125. T} T{
  72126. Yes
  72127. T}
  72128. _
  72129. T{
  72130. reformat_node
  72131. T} T{
  72132. T} T{
  72133. T} T{
  72134. T} T{
  72135. T} T{
  72136. T} T{
  72137. Yes
  72138. T} T{
  72139. T} T{
  72140. T} T{
  72141. T} T{
  72142. T} T{
  72143. T} T{
  72144. T} T{
  72145. T} T{
  72146. T} T{
  72147. T}
  72148. _
  72149. T{
  72150. securitygroup
  72151. T} T{
  72152. Yes
  72153. T} T{
  72154. T} T{
  72155. T} T{
  72156. Yes
  72157. T} T{
  72158. T} T{
  72159. T} T{
  72160. T} T{
  72161. T} T{
  72162. T} T{
  72163. T} T{
  72164. T} T{
  72165. T} T{
  72166. T} T{
  72167. T} T{
  72168. T}
  72169. _
  72170. T{
  72171. securitygroupid
  72172. T} T{
  72173. T} T{
  72174. T} T{
  72175. T} T{
  72176. Yes
  72177. T} T{
  72178. T} T{
  72179. T} T{
  72180. T} T{
  72181. T} T{
  72182. T} T{
  72183. T} T{
  72184. T} T{
  72185. T} T{
  72186. T} T{
  72187. Yes
  72188. T} T{
  72189. T}
  72190. _
  72191. T{
  72192. show_image
  72193. T} T{
  72194. T} T{
  72195. T} T{
  72196. T} T{
  72197. Yes
  72198. T} T{
  72199. T} T{
  72200. T} T{
  72201. T} T{
  72202. T} T{
  72203. Yes
  72204. T} T{
  72205. T} T{
  72206. T} T{
  72207. T} T{
  72208. T} T{
  72209. Yes
  72210. T} T{
  72211. Yes
  72212. T}
  72213. _
  72214. T{
  72215. show_key
  72216. T} T{
  72217. T} T{
  72218. T} T{
  72219. T} T{
  72220. T} T{
  72221. T} T{
  72222. Yes
  72223. T} T{
  72224. T} T{
  72225. T} T{
  72226. T} T{
  72227. T} T{
  72228. T} T{
  72229. T} T{
  72230. T} T{
  72231. T} T{
  72232. T}
  72233. _
  72234. T{
  72235. show_keypair
  72236. T} T{
  72237. T} T{
  72238. T} T{
  72239. Yes
  72240. T} T{
  72241. Yes
  72242. T} T{
  72243. T} T{
  72244. T} T{
  72245. T} T{
  72246. T} T{
  72247. T} T{
  72248. T} T{
  72249. T} T{
  72250. T} T{
  72251. T} T{
  72252. T} T{
  72253. T}
  72254. _
  72255. T{
  72256. show_volume
  72257. T} T{
  72258. T} T{
  72259. T} T{
  72260. T} T{
  72261. Yes
  72262. T} T{
  72263. T} T{
  72264. T} T{
  72265. T} T{
  72266. T} T{
  72267. T} T{
  72268. T} T{
  72269. T} T{
  72270. T} T{
  72271. T} T{
  72272. T} T{
  72273. T}
  72274. _
  72275. .TE
  72276. .sp
  72277. [1] Yes, if salt\-api is enabled.
  72278. .SS Tutorials
  72279. .SS Salt Cloud Quickstart
  72280. .sp
  72281. Salt Cloud is built\-in to Salt, and the easiest way to run Salt Cloud is
  72282. directly from your Salt Master.
  72283. .sp
  72284. Note that if you installed Salt via \fI\%Salt Bootstrap\fP, it may not have
  72285. automatically installed salt\-cloud for you. Use your distribution\(aqs package
  72286. manager to install the \fBsalt\-cloud\fP package from the same repo that you
  72287. used to install Salt. These repos will automatically be setup by Salt Bootstrap.
  72288. .sp
  72289. Alternatively, the \fB\-L\fP option can be passed to the \fI\%Salt Bootstrap\fP script when
  72290. installing Salt. The \fB\-L\fP option will install \fBsalt\-cloud\fP and the required
  72291. \fBlibcloud\fP package.
  72292. .sp
  72293. This quickstart walks you through the basic steps of setting up a cloud host
  72294. and defining some virtual machines to create.
  72295. .sp
  72296. \fBNOTE:\fP
  72297. .INDENT 0.0
  72298. .INDENT 3.5
  72299. Salt Cloud has its own process and does not rely on the Salt Master,
  72300. so it can be installed on a standalone minion instead of your Salt Master.
  72301. .UNINDENT
  72302. .UNINDENT
  72303. .SS Define a Provider
  72304. .sp
  72305. The first step is to add the credentials for your cloud host. Credentials and
  72306. other settings provided by the cloud host are stored in provider configuration
  72307. files. Provider configurations contain the details needed to connect to a cloud
  72308. host such as EC2, GCE, Rackspace, etc., and any global options that you want
  72309. set on your cloud minions (such as the location of your Salt Master).
  72310. .sp
  72311. On your Salt Master, browse to \fB/etc/salt/cloud.providers.d/\fP and create
  72312. a file called \fB<provider>.conf\fP, replacing \fB<provider>\fP with
  72313. \fBec2\fP, \fBsoftlayer\fP, and so on. The name helps you identify the contents,
  72314. and is not important as long as the file ends in \fB\&.conf\fP\&.
  72315. .sp
  72316. Next, browse to the Provider specifics and
  72317. add any required settings for your cloud host to this file. Here is an example
  72318. for Amazon EC2:
  72319. .INDENT 0.0
  72320. .INDENT 3.5
  72321. .sp
  72322. .nf
  72323. .ft C
  72324. my\-ec2:
  72325. driver: ec2
  72326. # Set the EC2 access credentials (see below)
  72327. #
  72328. id: \(aqHJGRYCILJLKJYG\(aq
  72329. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  72330. # Make sure this key is owned by root with permissions 0400.
  72331. #
  72332. private_key: /etc/salt/my_test_key.pem
  72333. keyname: my_test_key
  72334. securitygroup: default
  72335. # Optional: Set up the location of the Salt Master
  72336. #
  72337. minion:
  72338. master: saltmaster.example.com
  72339. .ft P
  72340. .fi
  72341. .UNINDENT
  72342. .UNINDENT
  72343. .sp
  72344. The required configuration varies between cloud hosts so make sure you read the
  72345. provider specifics.
  72346. .SS List Cloud Provider Options
  72347. .sp
  72348. You can now query the cloud provider you configured for available locations,
  72349. images, and sizes. This information is used when you set up VM profiles.
  72350. .INDENT 0.0
  72351. .INDENT 3.5
  72352. .sp
  72353. .nf
  72354. .ft C
  72355. salt\-cloud \-\-list\-locations <provider_name> # my\-ec2 in the previous example
  72356. salt\-cloud \-\-list\-images <provider_name>
  72357. salt\-cloud \-\-list\-sizes <provider_name>
  72358. .ft P
  72359. .fi
  72360. .UNINDENT
  72361. .UNINDENT
  72362. .sp
  72363. Replace \fB<provider_name>\fP with the name of the provider configuration you defined.
  72364. .SS Create VM Profiles
  72365. .sp
  72366. On your Salt Master, browse to \fB/etc/salt/cloud.profiles.d/\fP and create
  72367. a file called \fB<profile>.conf\fP, replacing \fB<profile>\fP with
  72368. \fBec2\fP, \fBsoftlayer\fP, and so on. The file must end in \fB\&.conf\fP\&.
  72369. .sp
  72370. You can now add any custom profiles you\(aqd like to define to this file. Here are
  72371. a few examples:
  72372. .INDENT 0.0
  72373. .INDENT 3.5
  72374. .sp
  72375. .nf
  72376. .ft C
  72377. micro_ec2:
  72378. provider: my\-ec2
  72379. image: ami\-d514f291
  72380. size: t1.micro
  72381. medium_ec2:
  72382. provider: my\-ec2
  72383. image: ami\-d514f291
  72384. size: m3.medium
  72385. large_ec2:
  72386. provider: my\-ec2
  72387. image: ami\-d514f291
  72388. size: m3.large
  72389. .ft P
  72390. .fi
  72391. .UNINDENT
  72392. .UNINDENT
  72393. .sp
  72394. Notice that the \fBprovider\fP in our profile matches the provider name that we
  72395. defined? That is how Salt Cloud knows how to connect to a cloud host to
  72396. create a VM with these attributes.
  72397. .SS Create VMs
  72398. .sp
  72399. VMs are created by calling \fBsalt\-cloud\fP with the following options:
  72400. .INDENT 0.0
  72401. .INDENT 3.5
  72402. .sp
  72403. .nf
  72404. .ft C
  72405. salt\-cloud \-p <profile> <name1> <name2> ...
  72406. .ft P
  72407. .fi
  72408. .UNINDENT
  72409. .UNINDENT
  72410. .sp
  72411. For example:
  72412. .INDENT 0.0
  72413. .INDENT 3.5
  72414. .sp
  72415. .nf
  72416. .ft C
  72417. salt\-cloud \-p micro_ec2 minion1 minion2
  72418. .ft P
  72419. .fi
  72420. .UNINDENT
  72421. .UNINDENT
  72422. .SS Destroy VMs
  72423. .sp
  72424. Add a \fB\-d\fP and the minion name you provided to destroy:
  72425. .INDENT 0.0
  72426. .INDENT 3.5
  72427. .sp
  72428. .nf
  72429. .ft C
  72430. salt\-cloud \-d minion1 minion2
  72431. .ft P
  72432. .fi
  72433. .UNINDENT
  72434. .UNINDENT
  72435. .SS Query VMs
  72436. .sp
  72437. You can view details about the VMs you\(aqve created using \fB\-\-query\fP:
  72438. .INDENT 0.0
  72439. .INDENT 3.5
  72440. .sp
  72441. .nf
  72442. .ft C
  72443. salt\-cloud \-\-query
  72444. .ft P
  72445. .fi
  72446. .UNINDENT
  72447. .UNINDENT
  72448. .SS Cloud Map
  72449. .sp
  72450. Now that you know how to create and destoy individual VMs, next you should
  72451. learn how to use a cloud map to create a number of VMs at once.
  72452. .sp
  72453. Cloud maps let you define a map of your infrastructure and quickly provision
  72454. any number of VMs. On subsequent runs, any VMs that do not exist are created,
  72455. and VMs that are already configured are left unmodified.
  72456. .sp
  72457. See Cloud Map File\&.
  72458. .SS Using Salt Cloud with the Event Reactor
  72459. .sp
  72460. One of the most powerful features of the Salt framework is the Event Reactor.
  72461. As the Reactor was in development, Salt Cloud was regularly updated to take
  72462. advantage of the Reactor upon completion. As such, various aspects of both the
  72463. creation and destruction of instances with Salt Cloud fire events to the Salt
  72464. Master, which can be used by the Event Reactor.
  72465. .SS Event Structure
  72466. .sp
  72467. As of this writing, all events in Salt Cloud have a tag, which includes the ID
  72468. of the instance being managed, and a payload which describes the task that is
  72469. currently being handled. A Salt Cloud tag looks like:
  72470. .INDENT 0.0
  72471. .INDENT 3.5
  72472. .sp
  72473. .nf
  72474. .ft C
  72475. salt/cloud/<minion_id>/<task>
  72476. .ft P
  72477. .fi
  72478. .UNINDENT
  72479. .UNINDENT
  72480. .sp
  72481. For instance, the first event fired when creating an instance named \fBweb1\fP
  72482. would look like:
  72483. .INDENT 0.0
  72484. .INDENT 3.5
  72485. .sp
  72486. .nf
  72487. .ft C
  72488. salt/cloud/web1/creating
  72489. .ft P
  72490. .fi
  72491. .UNINDENT
  72492. .UNINDENT
  72493. .sp
  72494. Assuming this instance is using the \fBec2\-centos\fP profile, which is in turn
  72495. using the \fBec2\-config\fP provider, the payload for this tag would look like:
  72496. .INDENT 0.0
  72497. .INDENT 3.5
  72498. .sp
  72499. .nf
  72500. .ft C
  72501. {\(aqname\(aq: \(aqweb1\(aq,
  72502. \(aqprofile\(aq: \(aqec2\-centos\(aq,
  72503. \(aqprovider\(aq: \(aqec2\-config:ec2\(aq}
  72504. .ft P
  72505. .fi
  72506. .UNINDENT
  72507. .UNINDENT
  72508. .SS Available Events
  72509. .sp
  72510. When an instance is created in Salt Cloud, whether by map, profile, or directly
  72511. through an API, a minimum of five events are normally fired. More may be
  72512. available, depending upon the cloud provider being used. Some of the common
  72513. events are described below.
  72514. .SS salt/cloud/<minion_id>/creating
  72515. .sp
  72516. This event states simply that the process to create an instance has begun. At
  72517. this point in time, no actual work has begun. The payload for this event
  72518. includes:
  72519. .sp
  72520. name
  72521. profile
  72522. provider
  72523. .SS salt/cloud/<minion_id>/requesting
  72524. .sp
  72525. Salt Cloud is about to make a request to the cloud provider to create an
  72526. instance. At this point, all of the variables required to make the request have
  72527. been gathered, and the payload of the event will reflect those variables which
  72528. do not normally pose a security risk. What is returned here is dependent upon
  72529. the cloud provider. Some common variables are:
  72530. .sp
  72531. name
  72532. image
  72533. size
  72534. location
  72535. .SS salt/cloud/<minion_id>/querying
  72536. .sp
  72537. The instance has been successfully requested, but the necessary information to
  72538. log into the instance (such as IP address) is not yet available. This event
  72539. marks the beginning of the process to wait for this information.
  72540. .sp
  72541. The payload for this event normally only includes the \fBinstance_id\fP\&.
  72542. .SS salt/cloud/<minion_id>/waiting_for_ssh
  72543. .sp
  72544. The information required to log into the instance has been retrieved, but the
  72545. instance is not necessarily ready to be accessed. Following this event, Salt
  72546. Cloud will wait for the IP address to respond to a ping, then wait for the
  72547. specified port (usually 22) to respond to a connection, and on Linux systems,
  72548. for SSH to become available. Salt Cloud will attempt to issue the \fBdate\fP
  72549. command on the remote system, as a means to check for availability. If no
  72550. \fBssh_username\fP has been specified, a list of usernames (starting with
  72551. \fBroot\fP) will be attempted. If one or more usernames was configured for
  72552. \fBssh_username\fP, they will be added to the beginning of the list, in order.
  72553. .sp
  72554. The payload for this event normally only includes the \fBip_address\fP\&.
  72555. .SS salt/cloud/<minion_id>/deploying
  72556. .sp
  72557. The necessary port has been detected as available, and now Salt Cloud can log
  72558. into the instance, upload any files used for deployment, and run the deploy
  72559. script. Once the script has completed, Salt Cloud will log back into the
  72560. instance and remove any remaining files.
  72561. .sp
  72562. A number of variables are used to deploy instances, and the majority of these
  72563. will be available in the payload. Any keys, passwords or other sensitive data
  72564. will be scraped from the payload. Most of the variables returned will be
  72565. related to the profile or provider config, and any default values that could
  72566. have been changed in the profile or provider, but weren\(aqt.
  72567. .SS salt/cloud/<minion_id>/created
  72568. .sp
  72569. The deploy sequence has completed, and the instance is now available, Salted,
  72570. and ready for use. This event is the final task for Salt Cloud, before returning
  72571. instance information to the user and exiting.
  72572. .sp
  72573. The payload for this event contains little more than the initial \fBcreating\fP
  72574. event. This event is required in all cloud providers.
  72575. .SS Filtering Events
  72576. .sp
  72577. When creating a VM, it is possible with certain tags to filter how much
  72578. information is sent to the event bus. The tags that can be filtered on any
  72579. provider are:
  72580. .INDENT 0.0
  72581. .IP \(bu 2
  72582. \fBsalt/cloud/<minion_id>/creating\fP
  72583. .IP \(bu 2
  72584. \fBsalt/cloud/<minion_id>/requesting\fP
  72585. .IP \(bu 2
  72586. \fBsalt/cloud/<minion_id>/created\fP
  72587. .UNINDENT
  72588. .sp
  72589. Other providers may allow other tags to be filtered; when that is the case,
  72590. the documentation for that provider will contain more details.
  72591. .sp
  72592. To filter information, create a section in your \fB/etc/salt/cloud\fP file called
  72593. \fBfilter_events\fP\&. Create a section for each tag that you want to filter, using
  72594. the last segment of the tag. For instance, use \fBcreating\fP to represent
  72595. \fBsalt/cloud/<minion_id>/creating\fP:
  72596. .INDENT 0.0
  72597. .INDENT 3.5
  72598. .sp
  72599. .nf
  72600. .ft C
  72601. filter_events:
  72602. creating:
  72603. keys:
  72604. \- name
  72605. \- profile
  72606. \- provider
  72607. .ft P
  72608. .fi
  72609. .UNINDENT
  72610. .UNINDENT
  72611. .sp
  72612. Any keys listed here will be added to the default keys that are already set to
  72613. be displayed for that provider. If you wish to start with a clean slate and
  72614. only show the keys specified, add another option called \fBuse_defaults\fP and
  72615. set it to \fBFalse\fP\&.
  72616. .INDENT 0.0
  72617. .INDENT 3.5
  72618. .sp
  72619. .nf
  72620. .ft C
  72621. filter_events:
  72622. creating:
  72623. keys:
  72624. \- name
  72625. \- profile
  72626. \- provider
  72627. use_defaults: False
  72628. .ft P
  72629. .fi
  72630. .UNINDENT
  72631. .UNINDENT
  72632. .SS Configuring the Event Reactor
  72633. .sp
  72634. The Event Reactor is built into the Salt Master process, and as such is
  72635. configured via the master configuration file. Normally this will be a YAML
  72636. file located at \fB/etc/salt/master\fP\&. Additionally, master configuration items
  72637. can be stored, in YAML format, inside the \fB/etc/salt/master.d/\fP directory.
  72638. .sp
  72639. These configuration items may be stored in either location; however, they may
  72640. only be stored in one location. For organizational and security purposes, it
  72641. may be best to create a single configuration file, which contains only Event
  72642. Reactor configuration, at \fB/etc/salt/master.d/reactor\fP\&.
  72643. .sp
  72644. The Event Reactor uses a top\-level configuration item called \fBreactor\fP\&. This
  72645. block contains a list of tags to be watched for, each of which also includes a
  72646. list of \fBsls\fP files. For instance:
  72647. .INDENT 0.0
  72648. .INDENT 3.5
  72649. .sp
  72650. .nf
  72651. .ft C
  72652. reactor:
  72653. \- \(aqsalt/minion/*/start\(aq:
  72654. \- \(aq/srv/reactor/custom\-reactor.sls\(aq
  72655. \- \(aqsalt/cloud/*/created\(aq:
  72656. \- \(aq/srv/reactor/cloud\-alert.sls\(aq
  72657. \- \(aqsalt/cloud/*/destroyed\(aq:
  72658. \- \(aq/srv/reactor/cloud\-destroy\-alert.sls\(aq
  72659. .ft P
  72660. .fi
  72661. .UNINDENT
  72662. .UNINDENT
  72663. .sp
  72664. The above configuration configures reactors for three different tags: one which
  72665. is fired when a minion process has started and is available to receive commands,
  72666. one which is fired when a cloud instance has been created, and one which is
  72667. fired when a cloud instance is destroyed.
  72668. .sp
  72669. Note that each tag contains a wildcard (\fB*\fP) in it. For each of these tags,
  72670. this will normally refer to a \fBminion_id\fP\&. This is not required of event tags,
  72671. but is very common.
  72672. .SS Reactor SLS Files
  72673. .sp
  72674. Reactor \fBsls\fP files should be placed in the \fB/srv/reactor/\fP directory for
  72675. consistency between environments, but this is not currently enforced by Salt.
  72676. .sp
  72677. Reactor \fBsls\fP files follow a similar format to other \fBsls\fP files in
  72678. Salt. By default they are written in YAML and can be templated using Jinja, but
  72679. since they are processed through Salt\(aqs rendering system, any available
  72680. renderer (JSON, Mako, Cheetah, etc.) can be used.
  72681. .sp
  72682. As with other \fBsls\fP files, each stanza will start with a declaration ID,
  72683. followed by the function to run, and then any arguments for that function. For
  72684. example:
  72685. .INDENT 0.0
  72686. .INDENT 3.5
  72687. .sp
  72688. .nf
  72689. .ft C
  72690. # /srv/reactor/cloud\-alert.sls
  72691. new_instance_alert:
  72692. cmd.pagerduty.create_event:
  72693. \- tgt: alertserver
  72694. \- kwarg:
  72695. description: "New instance: {{ data[\(aqname\(aq] }}"
  72696. details: "New cloud instance created on {{ data[\(aqprovider\(aq] }}"
  72697. service_key: 1626dead5ecafe46231e968eb1be29c4
  72698. profile: my\-pagerduty\-account
  72699. .ft P
  72700. .fi
  72701. .UNINDENT
  72702. .UNINDENT
  72703. .sp
  72704. When the Event Reactor receives an event notifying it that a new instance has
  72705. been created, this \fBsls\fP will create a new incident in PagerDuty, using the
  72706. configured PagerDuty account.
  72707. .sp
  72708. The declaration ID in this example is \fBnew_instance_alert\fP\&. The function
  72709. called is \fBcmd.pagerduty.create_event\fP\&. The \fBcmd\fP portion of this function
  72710. specifies that an execution module and function will be called, in this case,
  72711. the \fBpagerduty.create_event\fP function.
  72712. .sp
  72713. Because an execution module is specified, a target (\fBtgt\fP) must be specified
  72714. on which to call the function. In this case, a minion called \fBalertserver\fP
  72715. has been used. Any arguments passed through to the function are declared in the
  72716. \fBkwarg\fP block.
  72717. .SS Example: Reactor\-Based Highstate
  72718. .sp
  72719. When Salt Cloud creates an instance, by default it will install the Salt Minion
  72720. onto the instance, along with any specified minion configuration, and
  72721. automatically accept that minion\(aqs keys on the master. One of the configuration
  72722. options that can be specified is \fBstartup_states\fP, which is commonly set to
  72723. \fBhighstate\fP\&. This will tell the minion to immediately apply a highstate, as soon as it is able to do so.
  72724. .sp
  72725. This can present a problem with some system images on some cloud hosts. For
  72726. instance, Salt Cloud can be configured to log in as either the \fBroot\fP user, or
  72727. a user with \fBsudo\fP access. While some hosts commonly use images that
  72728. lock out remote \fBroot\fP access and require a user with \fBsudo\fP privileges to
  72729. log in (notably EC2, with their \fBec2\-user\fP login), most cloud hosts fall
  72730. back to \fBroot\fP as the default login on all images, including for operating
  72731. systems (such as Ubuntu) which normally disallow remote \fBroot\fP login.
  72732. .sp
  72733. For users of these operating systems, it is understandable that a
  72734. highstate would include configuration to block
  72735. remote \fBroot\fP logins again. However, Salt Cloud may not have finished
  72736. cleaning up its deployment files by the time the minion process has started,
  72737. and kicked off a highstate run. Users have reported
  72738. errors from Salt Cloud getting locked out while trying to clean up after
  72739. itself.
  72740. .sp
  72741. The goal of a startup state may be achieved using the Event Reactor. Because a
  72742. minion fires an event when it is able to receive commands, this event can
  72743. effectively be used inside the reactor system instead. The following will point
  72744. the reactor system to the right \fBsls\fP file:
  72745. .INDENT 0.0
  72746. .INDENT 3.5
  72747. .sp
  72748. .nf
  72749. .ft C
  72750. reactor:
  72751. \- \(aqsalt/cloud/*/created\(aq:
  72752. \- \(aq/srv/reactor/startup_highstate.sls\(aq
  72753. .ft P
  72754. .fi
  72755. .UNINDENT
  72756. .UNINDENT
  72757. .sp
  72758. And the following \fBsls\fP file will start a highstate run on the target minion:
  72759. .INDENT 0.0
  72760. .INDENT 3.5
  72761. .sp
  72762. .nf
  72763. .ft C
  72764. # /srv/reactor/startup_highstate.sls
  72765. reactor_highstate:
  72766. cmd.state.apply:
  72767. \- tgt: {{ data[\(aqname\(aq] }}
  72768. .ft P
  72769. .fi
  72770. .UNINDENT
  72771. .UNINDENT
  72772. .sp
  72773. Because this event will not be fired until Salt Cloud has cleaned up after
  72774. itself, the highstate run will not step on
  72775. salt\-cloud\(aqs toes. And because every file on the minion is configurable,
  72776. including \fB/etc/salt/minion\fP, the \fBstartup_states\fP can still be configured
  72777. for future minion restarts, if desired.
  72778. .SH SALT PROXY MINION
  72779. .sp
  72780. Proxy minions are a developing Salt feature that enables controlling devices
  72781. that, for whatever reason, cannot run a standard salt\-minion. Examples include
  72782. network gear that has an API but runs a proprietary OS, devices with limited
  72783. CPU or memory, or devices that could run a minion, but for security reasons,
  72784. will not.
  72785. .sp
  72786. There are some proxy modules available, but if your device
  72787. interface is not currently supported you will most likely have to write the interface
  72788. yourself, because there are an infinite number of controllable devices. Fortunately, this
  72789. is only as difficult as the actual interface to the proxied device. Devices that have an
  72790. existing Python module (PyUSB for example) would be relatively simple to interface.
  72791. Code to control a device that has an HTML REST\-based interface should be easy. Code to
  72792. control your typical housecat would be excellent source material for a PhD thesis.
  72793. .sp
  72794. Salt proxy\-minions provide the \(aqplumbing\(aq that allows device enumeration
  72795. and discovery, control, status, remote execution, and state management.
  72796. .sp
  72797. See the Proxy Minion Walkthrough for an end\-to\-end
  72798. demonstration of a working REST\-based proxy minion.
  72799. .sp
  72800. See the Proxy Minion SSH Walkthrough for an end\-to\-end
  72801. demonstration of a working SSH proxy minion.
  72802. .sp
  72803. See Proxyminion States to configure and
  72804. run \fBsalt\-proxy\fP on a remote minion. Specify all your master side
  72805. proxy (pillar) configuration and use this state to remotely configure proxies on one
  72806. or more minions.
  72807. .sp
  72808. See Proxyminion Beacon to help
  72809. with easy configuration and management of \fBsalt\-proxy\fP processes.
  72810. .SS New in 2017.7.0
  72811. .sp
  72812. The \fBproxy_merge_grains_in_module\fP configuration variable
  72813. introduced in 2016.3, has been changed, defaulting to \fBTrue\fP\&.
  72814. .sp
  72815. The connection with the remote device is kept alive by default, when the
  72816. module implements the \fBalive\fP function and \fBproxy_keep_alive\fP
  72817. is set to \fBTrue\fP\&. The polling interval is set using the
  72818. \fBproxy_keep_alive_interval\fP option which defaults to 1 minute.
  72819. .sp
  72820. The developers are also able to use the \fBproxy_always_alive\fP,
  72821. when designing a proxy module flexible enough to open the
  72822. connection with the remote device only when required.
  72823. .SS New in 2016.11.0
  72824. .sp
  72825. Proxy minions now support configuration files with names ending in \(aq*.conf\(aq
  72826. and placed in /etc/salt/proxy.d.
  72827. .sp
  72828. Proxy minions can now be configured in /etc/salt/proxy or /etc/salt/proxy.d
  72829. instead of just pillar. Configuration format is the same as it would be in pillar.
  72830. .SS New in 2016.3
  72831. .sp
  72832. The deprecated config option \fBenumerate_proxy_minions\fP has been removed.
  72833. .sp
  72834. As mentioned in earlier documentation, the \fBadd_proxymodule_to_opts\fP
  72835. configuration variable defaults to \fBFalse\fP in this release. This means if you
  72836. have proxymodules or other code looking in \fB__opts__[\(aqproxymodule\(aq]\fP you
  72837. will need to set this variable in your \fB/etc/salt/proxy\fP file, or
  72838. modify your code to use the \fI__proxy__\fP injected variable.
  72839. .sp
  72840. The \fB__proxyenabled__\fP directive now only applies to grains and proxy modules
  72841. themselves. Standard execution modules and state modules are not prevented
  72842. from loading for proxy minions.
  72843. .sp
  72844. Enhancements in grains processing have made the \fB__proxyenabled__\fP directive
  72845. somewhat redundant in dynamic grains code. It is still required, but best
  72846. practices for the \fB__virtual__\fP function in grains files have changed. It
  72847. is now recommended that the \fB__virtual__\fP functions check to make sure
  72848. they are being loaded for the correct proxytype, example below:
  72849. .INDENT 0.0
  72850. .INDENT 3.5
  72851. .sp
  72852. .nf
  72853. .ft C
  72854. def __virtual__():
  72855. \(aq\(aq\(aq
  72856. Only work on proxy
  72857. \(aq\(aq\(aq
  72858. try:
  72859. if salt.utils.platform.is_proxy() and \e
  72860. __opts__[\(aqproxy\(aq][\(aqproxytype\(aq] == \(aqssh_sample\(aq:
  72861. return __virtualname__
  72862. except KeyError:
  72863. pass
  72864. return False
  72865. .ft P
  72866. .fi
  72867. .UNINDENT
  72868. .UNINDENT
  72869. .sp
  72870. The try/except block above exists because grains are processed very early
  72871. in the proxy minion startup process, sometimes earlier than the proxy
  72872. key in the \fB__opts__\fP dictionary is populated.
  72873. .sp
  72874. Grains are loaded so early in startup that no dunder dictionaries are
  72875. present, so \fB__proxy__\fP, \fB__salt__\fP, etc. are not available. Custom
  72876. grains located in \fB/srv/salt/_grains\fP and in the salt install grains
  72877. directory can now take a single argument, \fBproxy\fP, that is identical
  72878. to \fB__proxy__\fP\&. This enables patterns like
  72879. .INDENT 0.0
  72880. .INDENT 3.5
  72881. .sp
  72882. .nf
  72883. .ft C
  72884. def get_ip(proxy):
  72885. \(aq\(aq\(aq
  72886. Ask the remote device what IP it has
  72887. \(aq\(aq\(aq
  72888. return {\(aqip\(aq:proxy[\(aqproxymodulename.get_ip\(aq]()}
  72889. .ft P
  72890. .fi
  72891. .UNINDENT
  72892. .UNINDENT
  72893. .sp
  72894. Then the grain \fBip\fP will contain the result of calling the \fBget_ip()\fP function
  72895. in the proxymodule called \fBproxymodulename\fP\&.
  72896. .sp
  72897. Proxy modules now benefit from including a function called \fBinitialized()\fP\&. This
  72898. function should return \fBTrue\fP if the proxy\(aqs \fBinit()\fP function has been successfully
  72899. called. This is needed to make grains processing easier.
  72900. .sp
  72901. Finally, if there is a function called \fBgrains\fP in the proxymodule, it
  72902. will be executed on proxy\-minion startup and its contents will be merged with
  72903. the rest of the proxy\(aqs grains. Since older proxy\-minions might have used other
  72904. methods to call such a function and add its results to grains, this is config\-gated
  72905. by a new proxy configuration option called \fBproxy_merge_grains_in_module\fP\&. This
  72906. defaults to \fBTrue\fP in the \fB2017.7.0\fP release.
  72907. .SS New in 2015.8.2
  72908. .sp
  72909. \fIBREAKING CHANGE\fP: Adding the \fIproxymodule\fP variable to __opts__ is deprecated.
  72910. The \fIproxymodule\fP variable has been moved a new globally\-injected variable
  72911. called \fI__proxy__\fP\&. A related configuration option called
  72912. \fIadd_proxymodule_to_opts\fP has been added and defaults to \fITrue\fP\&. In the next
  72913. major release, 2016.3.0, this variable will default to False.
  72914. .sp
  72915. In the meantime, proxies that functioned under 2015.8.0 and .1 should continue
  72916. to work under 2015.8.2. You should rework your proxy code to use \fI__proxy__\fP as
  72917. soon as possible.
  72918. .sp
  72919. The \fIrest_sample\fP example proxy minion has been updated to use \fI__proxy__\fP\&.
  72920. .sp
  72921. This change was made because proxymodules are a LazyLoader object, but
  72922. LazyLoaders cannot be serialized. \fI__opts__\fP gets serialized, and so things
  72923. like \fIsaltutil.sync_all\fP and \fIstate.highstate\fP would throw exceptions.
  72924. .sp
  72925. Support has been added to Salt\(aqs loader allowing custom proxymodules
  72926. to be placed in \fBsalt://_proxy\fP\&. Proxy minions that need these modules
  72927. will need to be restarted to pick up any changes. A corresponding utility function,
  72928. \fBsaltutil.sync_proxymodules\fP, has been added to sync these modules to minions.
  72929. .sp
  72930. In addition, a salt.utils helper function called \fIis_proxy()\fP was added to make
  72931. it easier to tell when the running minion is a proxy minion. \fBNOTE: This
  72932. function was renamed to salt.utils.platform.is_proxy() for the 2018.3.0
  72933. release\fP
  72934. .SS New in 2015.8
  72935. .sp
  72936. Starting with the 2015.8 release of Salt, proxy processes are no longer forked
  72937. off from a controlling minion. Instead, they have their own script
  72938. \fBsalt\-proxy\fP which takes mostly the same arguments that the standard Salt
  72939. minion does with the addition of \fB\-\-proxyid\fP\&. This is the id that the
  72940. salt\-proxy will use to identify itself to the master. Proxy configurations are
  72941. still best kept in Pillar and their format has not changed.
  72942. .sp
  72943. This change allows for better process control and logging. Proxy processes can
  72944. now be listed with standard process management utilities (\fBps\fP from the
  72945. command line). Also, a full Salt minion is no longer required (though it is
  72946. still strongly recommended) on machines hosting proxies.
  72947. .SS Getting Started
  72948. .sp
  72949. The following diagram may be helpful in understanding the structure of a Salt
  72950. installation that includes proxy\-minions:
  72951. [image]
  72952. .sp
  72953. The key thing to remember is the left\-most section of the diagram. Salt\(aqs
  72954. nature is to have a minion connect to a master, then the master may control
  72955. the minion. However, for proxy minions, the target device cannot run a minion.
  72956. .sp
  72957. After the proxy minion is started and initiates its connection to the
  72958. device, it connects back to the salt\-master and for all intents and purposes
  72959. looks like just another minion to the Salt master.
  72960. .sp
  72961. To create support for a proxied device one needs to create four things:
  72962. .INDENT 0.0
  72963. .IP 1. 3
  72964. The \fI\%proxy_connection_module\fP (located in salt/proxy).
  72965. .IP 2. 3
  72966. The \fI\%grains support code\fP (located in salt/grains).
  72967. .IP 3. 3
  72968. Salt modules specific to the controlled
  72969. device.
  72970. .IP 4. 3
  72971. Salt states specific to the controlled device.
  72972. .UNINDENT
  72973. .SS Configuration parameters
  72974. .sp
  72975. Proxy minions require no configuration parameters in /etc/salt/master.
  72976. .sp
  72977. Salt\(aqs Pillar system is ideally suited for configuring proxy\-minions
  72978. (though they can be configured in /etc/salt/proxy as well). Proxies
  72979. can either be designated via a pillar file in pillar_roots, or through an
  72980. external pillar. External pillars afford the opportunity for interfacing with
  72981. a configuration management system, database, or other knowledgeable system that
  72982. that may already contain all the details of proxy targets. To use static files
  72983. in pillar_roots, pattern your files after the following examples, which are
  72984. based on the diagram above:
  72985. .sp
  72986. \fB/srv/pillar/top.sls\fP
  72987. .INDENT 0.0
  72988. .INDENT 3.5
  72989. .sp
  72990. .nf
  72991. .ft C
  72992. base:
  72993. net\-device1:
  72994. \- net\-device1
  72995. net\-device2:
  72996. \- net\-device2
  72997. net\-device3:
  72998. \- net\-device3
  72999. i2c\-device4:
  73000. \- i2c\-device4
  73001. i2c\-device5:
  73002. \- i2c\-device5
  73003. 433wireless\-device6:
  73004. \- 433wireless\-device6
  73005. smsgate\-device7:
  73006. \- device7
  73007. .ft P
  73008. .fi
  73009. .UNINDENT
  73010. .UNINDENT
  73011. .sp
  73012. \fB/srv/pillar/net\-device1.sls\fP
  73013. .INDENT 0.0
  73014. .INDENT 3.5
  73015. .sp
  73016. .nf
  73017. .ft C
  73018. proxy:
  73019. proxytype: networkswitch
  73020. host: 172.23.23.5
  73021. username: root
  73022. passwd: letmein
  73023. .ft P
  73024. .fi
  73025. .UNINDENT
  73026. .UNINDENT
  73027. .sp
  73028. \fB/srv/pillar/net\-device2.sls\fP
  73029. .INDENT 0.0
  73030. .INDENT 3.5
  73031. .sp
  73032. .nf
  73033. .ft C
  73034. proxy:
  73035. proxytype: networkswitch
  73036. host: 172.23.23.6
  73037. username: root
  73038. passwd: letmein
  73039. .ft P
  73040. .fi
  73041. .UNINDENT
  73042. .UNINDENT
  73043. .sp
  73044. \fB/srv/pillar/net\-device3.sls\fP
  73045. .INDENT 0.0
  73046. .INDENT 3.5
  73047. .sp
  73048. .nf
  73049. .ft C
  73050. proxy:
  73051. proxytype: networkswitch
  73052. host: 172.23.23.7
  73053. username: root
  73054. passwd: letmein
  73055. .ft P
  73056. .fi
  73057. .UNINDENT
  73058. .UNINDENT
  73059. .sp
  73060. \fB/srv/pillar/i2c\-device4.sls\fP
  73061. .INDENT 0.0
  73062. .INDENT 3.5
  73063. .sp
  73064. .nf
  73065. .ft C
  73066. proxy:
  73067. proxytype: i2c_lightshow
  73068. i2c_address: 1
  73069. .ft P
  73070. .fi
  73071. .UNINDENT
  73072. .UNINDENT
  73073. .sp
  73074. \fB/srv/pillar/i2c\-device5.sls\fP
  73075. .INDENT 0.0
  73076. .INDENT 3.5
  73077. .sp
  73078. .nf
  73079. .ft C
  73080. proxy:
  73081. proxytype: i2c_lightshow
  73082. i2c_address: 2
  73083. .ft P
  73084. .fi
  73085. .UNINDENT
  73086. .UNINDENT
  73087. .sp
  73088. \fB/srv/pillar/433wireless\-device6.sls\fP
  73089. .INDENT 0.0
  73090. .INDENT 3.5
  73091. .sp
  73092. .nf
  73093. .ft C
  73094. proxy:
  73095. proxytype: 433mhz_wireless
  73096. .ft P
  73097. .fi
  73098. .UNINDENT
  73099. .UNINDENT
  73100. .sp
  73101. \fB/srv/pillar/smsgate\-device7.sls\fP
  73102. .INDENT 0.0
  73103. .INDENT 3.5
  73104. .sp
  73105. .nf
  73106. .ft C
  73107. proxy:
  73108. proxytype: sms_serial
  73109. deventry: /dev/tty04
  73110. .ft P
  73111. .fi
  73112. .UNINDENT
  73113. .UNINDENT
  73114. .sp
  73115. Note the contents of each minioncontroller key may differ widely based on
  73116. the type of device that the proxy\-minion is managing.
  73117. .sp
  73118. In the above example
  73119. .INDENT 0.0
  73120. .IP \(bu 2
  73121. net\-devices 1, 2, and 3 are network switches that have a management
  73122. interface available at a particular IP address.
  73123. .IP \(bu 2
  73124. i2c\-devices 4 and 5 are very low\-level devices controlled over an i2c bus.
  73125. In this case the devices are physically connected to machine
  73126. \(aqminioncontroller2\(aq, and are addressable on the i2c bus at their respective
  73127. i2c addresses.
  73128. .IP \(bu 2
  73129. 433wireless\-device6 is a 433 MHz wireless transmitter, also physically connected to
  73130. minioncontroller2
  73131. .IP \(bu 2
  73132. smsgate\-device7 is an SMS gateway connected to machine minioncontroller3 via a
  73133. serial port.
  73134. .UNINDENT
  73135. .sp
  73136. Because of the way pillar works, each of the salt\-proxy processes that fork off the
  73137. proxy minions will only see the keys specific to the proxies it will be
  73138. handling.
  73139. .sp
  73140. Proxies can be configured in /etc/salt/proxy or with files in /etc/salt/proxy.d as of
  73141. Salt\(aqs 2016.11.0 release.
  73142. .sp
  73143. Also, in general, proxy\-minions are lightweight, so the machines that run them
  73144. could conceivably control a large number of devices. To run more than one proxy from
  73145. a single machine, simply start an additional proxy process with \fB\-\-proxyid\fP
  73146. set to the id to which you want the proxy to bind.
  73147. It is possible for the proxy services to be spread across
  73148. many machines if necessary, or intentionally run on machines that need to
  73149. control devices because of some physical interface (e.g. i2c and serial above).
  73150. Another reason to divide proxy services might be security. In more secure
  73151. environments only certain machines may have a network path to certain devices.
  73152. .SS Proxymodules
  73153. .sp
  73154. A proxy module encapsulates all the code necessary to interface with a device.
  73155. Proxymodules are located inside the salt.proxy module, or can be placed in
  73156. the \fB_proxy\fP directory in your file_roots (default is \fB/srv/salt/_proxy\fP\&.
  73157. At a minimum a proxymodule object must implement the following functions:
  73158. .sp
  73159. \fB__virtual__()\fP: This function performs the same duty that it does for other
  73160. types of Salt modules. Logic goes here to determine if the module can be
  73161. loaded, checking for the presence of Python modules on which the proxy depends.
  73162. Returning \fBFalse\fP will prevent the module from loading.
  73163. .sp
  73164. \fBinit(opts)\fP: Perform any initialization that the device needs. This is
  73165. a good place to bring up a persistent connection to a device, or authenticate
  73166. to create a persistent authorization token.
  73167. .sp
  73168. \fBinitialized()\fP: Returns True if \fBinit()\fP was successfully called.
  73169. .sp
  73170. \fBshutdown()\fP: Code to cleanly shut down or close a connection to
  73171. a controlled device goes here. This function must exist, but can contain only
  73172. the keyword \fBpass\fP if there is no shutdown logic required.
  73173. .sp
  73174. \fBping()\fP: While not required, it is highly recommended that this function also
  73175. be defined in the proxymodule. The code for \fBping\fP should contact the
  73176. controlled device and make sure it is really available.
  73177. .sp
  73178. \fBalive(opts)\fP: Another optional function, it is used together with the
  73179. \fBproxy_keep_alive\fP option (default: \fBTrue\fP). This function should
  73180. return a boolean value corresponding to the state of the connection.
  73181. If the connection is down, will try to restart (\fBshutdown\fP
  73182. followed by \fBinit\fP). The polling frequency is controlled using
  73183. the \fBproxy_keep_alive_interval\fP option, in minutes.
  73184. .sp
  73185. \fBgrains()\fP: Rather than including grains in /srv/salt/_grains or in
  73186. the standard install directories for grains, grains can be computed and
  73187. returned by this function. This function will be called automatically
  73188. if \fBproxy_merge_grains_in_module\fP is set to \fBTrue\fP in /etc/salt/proxy.
  73189. This variable defaults to \fBTrue\fP in the release code\-named \fI2017.7.0\fP\&.
  73190. .sp
  73191. Pre 2015.8 the proxymodule also must have an \fBid()\fP function. 2015.8 and following don\(aqt use
  73192. this function because the proxy\(aqs id is required on the command line.
  73193. .sp
  73194. Here is an example proxymodule used to interface to a \fIvery\fP simple REST
  73195. server. Code for the server is in the \fI\%salt\-contrib GitHub repository\fP\&.
  73196. .sp
  73197. This proxymodule enables "service" enumeration, starting, stopping, restarting,
  73198. and status; "package" installation, and a ping.
  73199. .INDENT 0.0
  73200. .INDENT 3.5
  73201. .sp
  73202. .nf
  73203. .ft C
  73204. # \-*\- coding: utf\-8 \-*\-
  73205. \(aq\(aq\(aq
  73206. This is a simple proxy\-minion designed to connect to and communicate with
  73207. the bottle\-based web service contained in https://github.com/saltstack/salt\-contrib/tree/master/proxyminion_rest_example
  73208. \(aq\(aq\(aq
  73209. from __future__ import absolute_import
  73210. # Import python libs
  73211. import logging
  73212. import salt.utils.http
  73213. HAS_REST_EXAMPLE = True
  73214. # This must be present or the Salt loader won\(aqt load this module
  73215. __proxyenabled__ = [\(aqrest_sample\(aq]
  73216. # Variables are scoped to this module so we can have persistent data
  73217. # across calls to fns in here.
  73218. GRAINS_CACHE = {}
  73219. DETAILS = {}
  73220. # Want logging!
  73221. log = logging.getLogger(__file__)
  73222. # This does nothing, it\(aqs here just as an example and to provide a log
  73223. # entry when the module is loaded.
  73224. def __virtual__():
  73225. \(aq\(aq\(aq
  73226. Only return if all the modules are available
  73227. \(aq\(aq\(aq
  73228. log.debug(\(aqrest_sample proxy __virtual__() called...\(aq)
  73229. return True
  73230. def _complicated_function_that_determines_if_alive():
  73231. return True
  73232. # Every proxy module needs an \(aqinit\(aq, though you can
  73233. # just put DETAILS[\(aqinitialized\(aq] = True here if nothing
  73234. # else needs to be done.
  73235. def init(opts):
  73236. log.debug(\(aqrest_sample proxy init() called...\(aq)
  73237. DETAILS[\(aqinitialized\(aq] = True
  73238. # Save the REST URL
  73239. DETAILS[\(aqurl\(aq] = opts[\(aqproxy\(aq][\(aqurl\(aq]
  73240. # Make sure the REST URL ends with a \(aq/\(aq
  73241. if not DETAILS[\(aqurl\(aq].endswith(\(aq/\(aq):
  73242. DETAILS[\(aqurl\(aq] += \(aq/\(aq
  73243. def alive(opts):
  73244. \(aq\(aq\(aq
  73245. This function returns a flag with the connection state.
  73246. It is very useful when the proxy minion establishes the communication
  73247. via a channel that requires a more elaborated keep\-alive mechanism, e.g.
  73248. NETCONF over SSH.
  73249. \(aq\(aq\(aq
  73250. log.debug(\(aqrest_sample proxy alive() called...\(aq)
  73251. return _complicated_function_that_determines_if_alive()
  73252. def initialized():
  73253. \(aq\(aq\(aq
  73254. Since grains are loaded in many different places and some of those
  73255. places occur before the proxy can be initialized, return whether
  73256. our init() function has been called
  73257. \(aq\(aq\(aq
  73258. return DETAILS.get(\(aqinitialized\(aq, False)
  73259. def grains():
  73260. \(aq\(aq\(aq
  73261. Get the grains from the proxied device
  73262. \(aq\(aq\(aq
  73263. if not DETAILS.get(\(aqgrains_cache\(aq, {}):
  73264. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqinfo\(aq, decode_type=\(aqjson\(aq, decode=True)
  73265. DETAILS[\(aqgrains_cache\(aq] = r[\(aqdict\(aq]
  73266. return DETAILS[\(aqgrains_cache\(aq]
  73267. def grains_refresh():
  73268. \(aq\(aq\(aq
  73269. Refresh the grains from the proxied device
  73270. \(aq\(aq\(aq
  73271. DETAILS[\(aqgrains_cache\(aq] = None
  73272. return grains()
  73273. def fns():
  73274. return {\(aqdetails\(aq: \(aqThis key is here because a function in \(aq
  73275. \(aqgrains/rest_sample.py called fns() here in the proxymodule.\(aq}
  73276. def service_start(name):
  73277. \(aq\(aq\(aq
  73278. Start a "service" on the REST server
  73279. \(aq\(aq\(aq
  73280. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqservice/start/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73281. return r[\(aqdict\(aq]
  73282. def service_stop(name):
  73283. \(aq\(aq\(aq
  73284. Stop a "service" on the REST server
  73285. \(aq\(aq\(aq
  73286. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqservice/stop/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73287. return r[\(aqdict\(aq]
  73288. def service_restart(name):
  73289. \(aq\(aq\(aq
  73290. Restart a "service" on the REST server
  73291. \(aq\(aq\(aq
  73292. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqservice/restart/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73293. return r[\(aqdict\(aq]
  73294. def service_list():
  73295. \(aq\(aq\(aq
  73296. List "services" on the REST server
  73297. \(aq\(aq\(aq
  73298. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqservice/list\(aq, decode_type=\(aqjson\(aq, decode=True)
  73299. return r[\(aqdict\(aq]
  73300. def service_status(name):
  73301. \(aq\(aq\(aq
  73302. Check if a service is running on the REST server
  73303. \(aq\(aq\(aq
  73304. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqservice/status/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73305. return r[\(aqdict\(aq]
  73306. def package_list():
  73307. \(aq\(aq\(aq
  73308. List "packages" installed on the REST server
  73309. \(aq\(aq\(aq
  73310. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqpackage/list\(aq, decode_type=\(aqjson\(aq, decode=True)
  73311. return r[\(aqdict\(aq]
  73312. def package_install(name, **kwargs):
  73313. \(aq\(aq\(aq
  73314. Install a "package" on the REST server
  73315. \(aq\(aq\(aq
  73316. cmd = DETAILS[\(aqurl\(aq]+\(aqpackage/install/\(aq+name
  73317. if kwargs.get(\(aqversion\(aq, False):
  73318. cmd += \(aq/\(aq+kwargs[\(aqversion\(aq]
  73319. else:
  73320. cmd += \(aq/1.0\(aq
  73321. r = salt.utils.http.query(cmd, decode_type=\(aqjson\(aq, decode=True)
  73322. return r[\(aqdict\(aq]
  73323. def fix_outage():
  73324. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqfix_outage\(aq)
  73325. return r
  73326. def uptodate(name):
  73327. \(aq\(aq\(aq
  73328. Call the REST endpoint to see if the packages on the "server" are up to date.
  73329. \(aq\(aq\(aq
  73330. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqpackage/remove/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73331. return r[\(aqdict\(aq]
  73332. def package_remove(name):
  73333. \(aq\(aq\(aq
  73334. Remove a "package" on the REST server
  73335. \(aq\(aq\(aq
  73336. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqpackage/remove/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73337. return r[\(aqdict\(aq]
  73338. def package_status(name):
  73339. \(aq\(aq\(aq
  73340. Check the installation status of a package on the REST server
  73341. \(aq\(aq\(aq
  73342. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqpackage/status/\(aq+name, decode_type=\(aqjson\(aq, decode=True)
  73343. return r[\(aqdict\(aq]
  73344. def ping():
  73345. \(aq\(aq\(aq
  73346. Is the REST server up?
  73347. \(aq\(aq\(aq
  73348. r = salt.utils.http.query(DETAILS[\(aqurl\(aq]+\(aqping\(aq, decode_type=\(aqjson\(aq, decode=True)
  73349. try:
  73350. return r[\(aqdict\(aq].get(\(aqret\(aq, False)
  73351. except Exception:
  73352. return False
  73353. def shutdown(opts):
  73354. \(aq\(aq\(aq
  73355. For this proxy shutdown is a no\-op
  73356. \(aq\(aq\(aq
  73357. log.debug(\(aqrest_sample proxy shutdown() called...\(aq)
  73358. .ft P
  73359. .fi
  73360. .UNINDENT
  73361. .UNINDENT
  73362. .sp
  73363. Grains are data about minions. Most proxied devices will have a paltry amount
  73364. of data as compared to a typical Linux server. By default, a proxy minion will
  73365. have several grains taken from the host. Salt core code requires values for \fBkernel\fP,
  73366. \fBos\fP, and \fBos_family\fP\-\-all of these are forced to be \fBproxy\fP for proxy\-minions.
  73367. .sp
  73368. To add others to your proxy minion for
  73369. a particular device, create a file in salt/grains named [proxytype].py and place
  73370. inside it the different functions that need to be run to collect the data you
  73371. are interested in. Here\(aqs an example. Note the function below called \fBproxy_functions\fP\&.
  73372. It demonstrates how a grains function can take a single argument, which will be
  73373. set to the value of \fB__proxy__\fP\&. Dunder variables are not yet injected into Salt processes
  73374. at the time grains are loaded, so this enables us to get a handle to the proxymodule so we
  73375. can cross\-call the functions therein used to communicate with the controlled device.
  73376. .sp
  73377. Note that as of 2016.3, grains values can also be calculated in a function called \fBgrains()\fP
  73378. in the proxymodule itself. This might be useful if a proxymodule author wants to keep
  73379. all the code for the proxy interface in the same place instead of splitting it between
  73380. the proxy and grains directories.
  73381. .sp
  73382. This function will only be called automatically if the configuration variable
  73383. \fBproxy_merge_grains_in_module\fP is set to True in the proxy configuration file
  73384. (default \fB/etc/salt/proxy\fP). This variable defaults to \fBTrue\fP in the
  73385. release code\-named \fI2017.7.0\fP\&.
  73386. .SS The __proxyenabled__ directive
  73387. .sp
  73388. In previous versions of Salt the \fB__proxyenabled__\fP directive controlled
  73389. loading of all Salt modules for proxies (e.g. grains, execution modules, state
  73390. modules). From 2016.3 on, the only modules that respect \fB__proxyenabled__\fP
  73391. are grains and proxy modules. These modules need to be told which proxy they
  73392. work with.
  73393. .sp
  73394. \fB__proxyenabled__\fP is a list, and can contain a single \(aq*\(aq to indicate
  73395. a grains module works with all proxies.
  73396. .sp
  73397. Example from \fBsalt/grains/rest_sample.py\fP:
  73398. .INDENT 0.0
  73399. .INDENT 3.5
  73400. .sp
  73401. .nf
  73402. .ft C
  73403. # \-*\- coding: utf\-8 \-*\-
  73404. \(aq\(aq\(aq
  73405. Generate baseline proxy minion grains
  73406. \(aq\(aq\(aq
  73407. from __future__ import absolute_import
  73408. import salt.utils.platform
  73409. __proxyenabled__ = [\(aqrest_sample\(aq]
  73410. __virtualname__ = \(aqrest_sample\(aq
  73411. def __virtual__():
  73412. try:
  73413. if salt.utils.platform.is_proxy() and __opts__[\(aqproxy\(aq][\(aqproxytype\(aq] == \(aqrest_sample\(aq:
  73414. return __virtualname__
  73415. except KeyError:
  73416. pass
  73417. return False
  73418. .ft P
  73419. .fi
  73420. .UNINDENT
  73421. .UNINDENT
  73422. .SS Salt Proxy Minion End\-to\-End Example
  73423. .sp
  73424. The following is walkthrough that documents how to run a sample REST service
  73425. and configure one or more proxy minions to talk to and control it.
  73426. .INDENT 0.0
  73427. .IP 1. 3
  73428. Ideally, create a Python virtualenv in which to run the REST service. This
  73429. is not strictly required, but without a virtualenv you will need to install
  73430. \fBbottle\fP via pip globally on your system
  73431. .IP 2. 3
  73432. Clone \fI\%https://github.com/saltstack/salt\-contrib\fP
  73433. and copy the contents of the directory \fBproxyminion_rest_example\fP
  73434. somewhere on a machine that is reachable from the machine on which you want to
  73435. run the salt\-proxy. This machine needs Python 2.7 or later.
  73436. .IP 3. 3
  73437. Install bottle version 0.12.8 via pip or easy_install
  73438. .UNINDENT
  73439. .INDENT 0.0
  73440. .INDENT 3.5
  73441. .sp
  73442. .nf
  73443. .ft C
  73444. pip install bottle==0.12.8
  73445. .ft P
  73446. .fi
  73447. .UNINDENT
  73448. .UNINDENT
  73449. .INDENT 0.0
  73450. .IP 4. 3
  73451. Run \fBpython rest.py \-\-help\fP for usage
  73452. .IP 5. 3
  73453. Start the REST API on an appropriate port and IP.
  73454. .IP 6. 3
  73455. Load the REST service\(aqs status page in your browser by going to the IP/port
  73456. combination (e.g. \fI\%http://127.0.0.1:8000\fP)
  73457. .IP 7. 3
  73458. You should see a page entitled "Salt Proxy Minion" with two sections,
  73459. one for "services" and one for "packages" and you should see a log entry in
  73460. the terminal where you started the REST process indicating that the index
  73461. page was retrieved.
  73462. .UNINDENT
  73463. [image]
  73464. .sp
  73465. Now, configure your salt\-proxy.
  73466. .INDENT 0.0
  73467. .IP 1. 3
  73468. Edit \fB/etc/salt/proxy\fP and add an entry for your master\(aqs location
  73469. .UNINDENT
  73470. .INDENT 0.0
  73471. .INDENT 3.5
  73472. .sp
  73473. .nf
  73474. .ft C
  73475. master: localhost
  73476. .ft P
  73477. .fi
  73478. .UNINDENT
  73479. .UNINDENT
  73480. .INDENT 0.0
  73481. .IP 2. 3
  73482. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73483. for your proxy (in this example we will name the proxy with the letter \(aqp\(aq
  73484. followed by the port the proxy is answering on). In your pillar topfile,
  73485. place an entry for your proxy:
  73486. .UNINDENT
  73487. .INDENT 0.0
  73488. .INDENT 3.5
  73489. .sp
  73490. .nf
  73491. .ft C
  73492. base:
  73493. \(aqp8000\(aq:
  73494. \- p8000
  73495. .ft P
  73496. .fi
  73497. .UNINDENT
  73498. .UNINDENT
  73499. .sp
  73500. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73501. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73502. .INDENT 0.0
  73503. .IP 3. 3
  73504. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73505. following contents:
  73506. .UNINDENT
  73507. .INDENT 0.0
  73508. .INDENT 3.5
  73509. .sp
  73510. .nf
  73511. .ft C
  73512. proxy:
  73513. proxytype: rest_sample
  73514. url: http://<IP your REST listens on>:port
  73515. .ft P
  73516. .fi
  73517. .UNINDENT
  73518. .UNINDENT
  73519. .sp
  73520. In other words, if your REST service is listening on port 8000 on 127.0.0.1
  73521. the \(aqurl\(aq key above should say \fBurl: http://127.0.0.1:8000\fP
  73522. .INDENT 0.0
  73523. .IP 4. 3
  73524. Make sure your salt\-master is running.
  73525. .IP 5. 3
  73526. Start the salt\-proxy in debug mode
  73527. .UNINDENT
  73528. .INDENT 0.0
  73529. .INDENT 3.5
  73530. .sp
  73531. .nf
  73532. .ft C
  73533. salt\-proxy \-\-proxyid=p8000 \-l debug
  73534. .ft P
  73535. .fi
  73536. .UNINDENT
  73537. .UNINDENT
  73538. .INDENT 0.0
  73539. .IP 6. 3
  73540. Accept your proxy\(aqs key on your salt\-master
  73541. .UNINDENT
  73542. .INDENT 0.0
  73543. .INDENT 3.5
  73544. .sp
  73545. .nf
  73546. .ft C
  73547. salt\-key \-y \-a p8000
  73548. The following keys are going to be accepted:
  73549. Unaccepted Keys:
  73550. p8000
  73551. Key for minion p8000 accepted.
  73552. .ft P
  73553. .fi
  73554. .UNINDENT
  73555. .UNINDENT
  73556. .INDENT 0.0
  73557. .IP 7. 3
  73558. Now you should be able to ping your proxy. When you ping, you should see
  73559. a log entry in the terminal where the REST service is running.
  73560. .UNINDENT
  73561. .INDENT 0.0
  73562. .INDENT 3.5
  73563. .sp
  73564. .nf
  73565. .ft C
  73566. salt p8000 test.version
  73567. .ft P
  73568. .fi
  73569. .UNINDENT
  73570. .UNINDENT
  73571. .INDENT 0.0
  73572. .IP 8. 3
  73573. The REST service implements a degenerately simple pkg and service provider as
  73574. well as a small set of grains. To "install" a package, use a standard
  73575. \fBpkg.install\fP\&. If you pass \(aq==\(aq and a verrsion number after the package
  73576. name then the service will parse that and accept that as the package\(aqs
  73577. version.
  73578. .IP 9. 3
  73579. Try running \fBsalt p8000 grains.items\fP to see what grains are available. You
  73580. can target proxies via grains if you like.
  73581. .IP 10. 3
  73582. You can also start and stop the available services (apache, redbull, and
  73583. postgresql with \fBservice.start\fP, etc.
  73584. .IP 11. 3
  73585. States can be written to target the proxy. Feel free to experiment with
  73586. them.
  73587. .UNINDENT
  73588. .SS SSH Proxymodules
  73589. .sp
  73590. See above for a general introduction to writing proxy modules.
  73591. All of the guidelines that apply to REST are the same for SSH.
  73592. This sections specifically talks about the SSH proxy module and
  73593. explains the working of the example proxy module \fBssh_sample\fP\&.
  73594. .sp
  73595. Here is a simple example proxymodule used to interface to a device over SSH.
  73596. Code for the SSH shell is in the \fI\%salt\-contrib GitHub repository\fP\&.
  73597. .sp
  73598. This proxymodule enables "package" installation.
  73599. .INDENT 0.0
  73600. .INDENT 3.5
  73601. .sp
  73602. .nf
  73603. .ft C
  73604. # \-*\- coding: utf\-8 \-*\-
  73605. \(aq\(aq\(aq
  73606. This is a simple proxy\-minion designed to connect to and communicate with
  73607. a server that exposes functionality via SSH.
  73608. This can be used as an option when the device does not provide
  73609. an api over HTTP and doesn\(aqt have the python stack to run a minion.
  73610. \(aq\(aq\(aq
  73611. from __future__ import absolute_import
  73612. # Import python libs
  73613. import salt.utils.json
  73614. import logging
  73615. # Import Salt\(aqs libs
  73616. from salt.utils.vt_helper import SSHConnection
  73617. from salt.utils.vt import TerminalException
  73618. # This must be present or the Salt loader won\(aqt load this module
  73619. __proxyenabled__ = [\(aqssh_sample\(aq]
  73620. DETAILS = {}
  73621. # Want logging!
  73622. log = logging.getLogger(__file__)
  73623. # This does nothing, it\(aqs here just as an example and to provide a log
  73624. # entry when the module is loaded.
  73625. def __virtual__():
  73626. \(aq\(aq\(aq
  73627. Only return if all the modules are available
  73628. \(aq\(aq\(aq
  73629. log.info(\(aqssh_sample proxy __virtual__() called...\(aq)
  73630. return True
  73631. def init(opts):
  73632. \(aq\(aq\(aq
  73633. Required.
  73634. Can be used to initialize the server connection.
  73635. \(aq\(aq\(aq
  73636. try:
  73637. DETAILS[\(aqserver\(aq] = SSHConnection(host=__opts__[\(aqproxy\(aq][\(aqhost\(aq],
  73638. username=__opts__[\(aqproxy\(aq][\(aqusername\(aq],
  73639. password=__opts__[\(aqproxy\(aq][\(aqpassword\(aq])
  73640. # connected to the SSH server
  73641. out, err = DETAILS[\(aqserver\(aq].sendline(\(aqhelp\(aq)
  73642. except TerminalException as e:
  73643. log.error(e)
  73644. return False
  73645. def shutdown(opts):
  73646. \(aq\(aq\(aq
  73647. Disconnect
  73648. \(aq\(aq\(aq
  73649. DETAILS[\(aqserver\(aq].close_connection()
  73650. def parse(out):
  73651. \(aq\(aq\(aq
  73652. Extract json from out.
  73653. Parameter
  73654. out: Type string. The data returned by the
  73655. ssh command.
  73656. \(aq\(aq\(aq
  73657. jsonret = []
  73658. in_json = False
  73659. for ln_ in out.split(\(aq\en\(aq):
  73660. if \(aq{\(aq in ln_:
  73661. in_json = True
  73662. if in_json:
  73663. jsonret.append(ln_)
  73664. if \(aq}\(aq in ln_:
  73665. in_json = False
  73666. return salt.utils.json.loads(\(aq\en\(aq.join(jsonret))
  73667. def package_list():
  73668. \(aq\(aq\(aq
  73669. List "packages" by executing a command via ssh
  73670. This function is called in response to the salt command
  73671. ..code\-block::bash
  73672. salt target_minion pkg.list_pkgs
  73673. \(aq\(aq\(aq
  73674. # Send the command to execute
  73675. out, err = DETAILS[\(aqserver\(aq].sendline(\(aqpkg_list\(aq)
  73676. # "scrape" the output and return the right fields as a dict
  73677. return parse(out)
  73678. def package_install(name, **kwargs):
  73679. \(aq\(aq\(aq
  73680. Install a "package" on the REST server
  73681. \(aq\(aq\(aq
  73682. cmd = \(aqpkg_install \(aq + name
  73683. if \(aqversion\(aq in kwargs:
  73684. cmd += \(aq/\(aq+kwargs[\(aqversion\(aq]
  73685. else:
  73686. cmd += \(aq/1.0\(aq
  73687. # Send the command to execute
  73688. out, err = DETAILS[\(aqserver\(aq].sendline(cmd)
  73689. # "scrape" the output and return the right fields as a dict
  73690. return parse(out)
  73691. def package_remove(name):
  73692. \(aq\(aq\(aq
  73693. Remove a "package" on the REST server
  73694. \(aq\(aq\(aq
  73695. cmd = \(aqpkg_remove \(aq + name
  73696. # Send the command to execute
  73697. out, err = DETAILS[\(aqserver\(aq].sendline(cmd)
  73698. # "scrape" the output and return the right fields as a dict
  73699. return parse(out)
  73700. .ft P
  73701. .fi
  73702. .UNINDENT
  73703. .UNINDENT
  73704. .SS Connection Setup
  73705. .sp
  73706. The \fBinit()\fP method is responsible for connection setup. It uses the \fBhost\fP, \fBusername\fP and \fBpassword\fP config variables defined in the pillar data. The \fBprompt\fP kwarg can be passed to \fBSSHConnection\fP if your SSH server\(aqs prompt differs from the example\(aqs prompt \fB(Cmd)\fP\&. Instantiating the \fBSSHConnection\fP class establishes an SSH connection to the ssh server (using Salt VT).
  73707. .SS Command execution
  73708. .sp
  73709. The \fBpackage_*\fP methods use the SSH connection (established in \fBinit()\fP) to send commands out to the SSH server. The \fBsendline()\fP method of \fBSSHConnection\fP class can be used to send commands out to the server. In the above example we send commands like \fBpkg_list\fP or \fBpkg_install\fP\&. You can send any SSH command via this utility.
  73710. .SS Output parsing
  73711. .sp
  73712. Output returned by \fBsendline()\fP is a tuple of strings representing the stdout and the stderr respectively. In the toy example shown we simply scrape the output and convert it to a python dictionary, as shown in the \fBparse\fP method. You can tailor this method to match your parsing logic.
  73713. .SS Connection teardown
  73714. .sp
  73715. The \fBshutdown\fP method is responsible for calling the \fBclose_connection()\fP method of \fBSSHConnection\fP class. This ends the SSH connection to the server.
  73716. .sp
  73717. For more information please refer to class \fI\%SSHConnection\fP\&.
  73718. .SS Salt Proxy Minion SSH End\-to\-End Example
  73719. .sp
  73720. The following is walkthrough that documents how to run a sample SSH service
  73721. and configure one or more proxy minions to talk to and control it.
  73722. .INDENT 0.0
  73723. .IP 1. 3
  73724. This walkthrough uses a custom SSH shell to provide an end to end example.
  73725. Any other shells can be used too.
  73726. .IP 2. 3
  73727. Setup the proxy command shell as shown \fI\%https://github.com/saltstack/salt\-contrib/tree/master/proxyminion_ssh_example\fP
  73728. .UNINDENT
  73729. .sp
  73730. Now, configure your salt\-proxy.
  73731. .INDENT 0.0
  73732. .IP 1. 3
  73733. Edit \fB/etc/salt/proxy\fP and add an entry for your master\(aqs location
  73734. .UNINDENT
  73735. .INDENT 0.0
  73736. .INDENT 3.5
  73737. .sp
  73738. .nf
  73739. .ft C
  73740. master: localhost
  73741. multiprocessing: False
  73742. .ft P
  73743. .fi
  73744. .UNINDENT
  73745. .UNINDENT
  73746. .INDENT 0.0
  73747. .IP 2. 3
  73748. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73749. for your proxy (in this example we will name the proxy with the letter \(aqp\(aq
  73750. followed by the port the proxy is answering on). In your pillar topfile,
  73751. place an entry for your proxy:
  73752. .UNINDENT
  73753. .INDENT 0.0
  73754. .INDENT 3.5
  73755. .sp
  73756. .nf
  73757. .ft C
  73758. base:
  73759. \(aqp8000\(aq:
  73760. \- p8000
  73761. .ft P
  73762. .fi
  73763. .UNINDENT
  73764. .UNINDENT
  73765. .sp
  73766. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73767. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73768. .INDENT 0.0
  73769. .IP 3. 3
  73770. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73771. following contents:
  73772. .UNINDENT
  73773. .INDENT 0.0
  73774. .INDENT 3.5
  73775. .sp
  73776. .nf
  73777. .ft C
  73778. proxy:
  73779. proxytype: ssh_sample
  73780. host: saltyVM
  73781. username: salt
  73782. password: badpass
  73783. .ft P
  73784. .fi
  73785. .UNINDENT
  73786. .UNINDENT
  73787. .INDENT 0.0
  73788. .IP 4. 3
  73789. Make sure your salt\-master is running.
  73790. .IP 5. 3
  73791. Start the salt\-proxy in debug mode
  73792. .UNINDENT
  73793. .INDENT 0.0
  73794. .INDENT 3.5
  73795. .sp
  73796. .nf
  73797. .ft C
  73798. salt\-proxy \-\-proxyid=p8000 \-l debug
  73799. .ft P
  73800. .fi
  73801. .UNINDENT
  73802. .UNINDENT
  73803. .INDENT 0.0
  73804. .IP 6. 3
  73805. Accept your proxy\(aqs key on your salt\-master
  73806. .UNINDENT
  73807. .INDENT 0.0
  73808. .INDENT 3.5
  73809. .sp
  73810. .nf
  73811. .ft C
  73812. salt\-key \-y \-a p8000
  73813. The following keys are going to be accepted:
  73814. Unaccepted Keys:
  73815. p8000
  73816. Key for minion p8000 accepted.
  73817. .ft P
  73818. .fi
  73819. .UNINDENT
  73820. .UNINDENT
  73821. .INDENT 0.0
  73822. .IP 7. 3
  73823. Now you should be able to run commands on your proxy.
  73824. .UNINDENT
  73825. .INDENT 0.0
  73826. .INDENT 3.5
  73827. .sp
  73828. .nf
  73829. .ft C
  73830. salt p8000 pkg.list_pkgs
  73831. .ft P
  73832. .fi
  73833. .UNINDENT
  73834. .UNINDENT
  73835. .INDENT 0.0
  73836. .IP 8. 3
  73837. The SSH shell implements a degenerately simple pkg.
  73838. To "install" a package, use a standard
  73839. \fBpkg.install\fP\&. If you pass \(aq==\(aq and a verrsion number after the package
  73840. name then the service will parse that and accept that as the package\(aqs
  73841. version.
  73842. .UNINDENT
  73843. New in version 2015.8.3.
  73844. .SS Proxy Minion Beacon
  73845. .sp
  73846. The salt proxy beacon is meant to facilitate configuring
  73847. multiple proxies on one or many minions. This should simplify
  73848. configuring and managing multiple \fBsalt\-proxy\fP processes.
  73849. .INDENT 0.0
  73850. .IP 1. 3
  73851. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73852. for your proxy (in this example we will name the proxy \(aqp8000\(aq).
  73853. In your pillar topfile, place an entry for your proxy:
  73854. .UNINDENT
  73855. .INDENT 0.0
  73856. .INDENT 3.5
  73857. .sp
  73858. .nf
  73859. .ft C
  73860. base:
  73861. \(aqp8000\(aq:
  73862. \- p8000
  73863. .ft P
  73864. .fi
  73865. .UNINDENT
  73866. .UNINDENT
  73867. .sp
  73868. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73869. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73870. .INDENT 0.0
  73871. .IP 2. 3
  73872. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73873. following contents:
  73874. .UNINDENT
  73875. .INDENT 0.0
  73876. .INDENT 3.5
  73877. .sp
  73878. .nf
  73879. .ft C
  73880. proxy:
  73881. # set proxytype for your proxymodule
  73882. proxytype: ssh_sample
  73883. host: saltyVM
  73884. username: salt
  73885. password: badpass
  73886. .ft P
  73887. .fi
  73888. .UNINDENT
  73889. .UNINDENT
  73890. .sp
  73891. This should complete the proxy setup for \fBp8000\fP
  73892. .INDENT 0.0
  73893. .IP 3. 3
  73894. \fI\%Configure\fP the \fBsalt_proxy\fP beacon
  73895. .UNINDENT
  73896. .INDENT 0.0
  73897. .INDENT 3.5
  73898. .sp
  73899. .nf
  73900. .ft C
  73901. beacons:
  73902. salt_proxy:
  73903. \- proxies:
  73904. p8000: {}
  73905. p8001: {}
  73906. .ft P
  73907. .fi
  73908. .UNINDENT
  73909. .UNINDENT
  73910. .sp
  73911. Once this beacon is configured it will automatically start the \fBsalt\-proxy\fP
  73912. process. If the \fBsalt\-proxy\fP process is terminated the beacon will
  73913. re\-start it.
  73914. .INDENT 0.0
  73915. .IP 4. 3
  73916. Accept your proxy\(aqs key on your salt\-master
  73917. .UNINDENT
  73918. .INDENT 0.0
  73919. .INDENT 3.5
  73920. .sp
  73921. .nf
  73922. .ft C
  73923. salt\-key \-y \-a p8000
  73924. The following keys are going to be accepted:
  73925. Unaccepted Keys:
  73926. p8000
  73927. Key for minion p8000 accepted.
  73928. .ft P
  73929. .fi
  73930. .UNINDENT
  73931. .UNINDENT
  73932. .INDENT 0.0
  73933. .IP 5. 3
  73934. Now you should be able to run commands on your proxy.
  73935. .UNINDENT
  73936. .INDENT 0.0
  73937. .INDENT 3.5
  73938. .sp
  73939. .nf
  73940. .ft C
  73941. salt p8000 pkg.list_pkgs
  73942. .ft P
  73943. .fi
  73944. .UNINDENT
  73945. .UNINDENT
  73946. New in version 2015.8.2.
  73947. .SS Proxy Minion States
  73948. .sp
  73949. Salt proxy state can be used to deploy, configure and run
  73950. a \fBsalt\-proxy\fP instance on your minion. Configure proxy settings
  73951. on the master side and the state configures and runs \fBsalt\-proxy\fP
  73952. on the remote end.
  73953. .INDENT 0.0
  73954. .IP 1. 3
  73955. On your salt\-master, ensure that pillar is configured properly. Select an ID
  73956. for your proxy (in this example we will name the proxy \(aqp8000\(aq).
  73957. In your pillar topfile, place an entry for your proxy:
  73958. .UNINDENT
  73959. .INDENT 0.0
  73960. .INDENT 3.5
  73961. .sp
  73962. .nf
  73963. .ft C
  73964. base:
  73965. \(aqp8000\(aq:
  73966. \- p8000
  73967. .ft P
  73968. .fi
  73969. .UNINDENT
  73970. .UNINDENT
  73971. .sp
  73972. This says that Salt\(aqs pillar should load some values for the proxy \fBp8000\fP
  73973. from the file \fB/srv/pillar/p8000.sls\fP (if you have not changed your default pillar_roots)
  73974. .INDENT 0.0
  73975. .IP 2. 3
  73976. In the pillar root for your base environment, create the \fBp8000.sls\fP file with the
  73977. following contents:
  73978. .UNINDENT
  73979. .INDENT 0.0
  73980. .INDENT 3.5
  73981. .sp
  73982. .nf
  73983. .ft C
  73984. proxy:
  73985. # set proxytype for your proxymodule
  73986. proxytype: ssh_sample
  73987. host: saltyVM
  73988. username: salt
  73989. password: badpass
  73990. .ft P
  73991. .fi
  73992. .UNINDENT
  73993. .UNINDENT
  73994. .INDENT 0.0
  73995. .IP 3. 3
  73996. Create the following state in your state tree
  73997. (let\(aqs name it salt_proxy.sls)
  73998. .UNINDENT
  73999. .INDENT 0.0
  74000. .INDENT 3.5
  74001. .sp
  74002. .nf
  74003. .ft C
  74004. salt\-proxy\-configure:
  74005. salt_proxy.configure_proxy:
  74006. \- proxyname: p8000
  74007. \- start: True # start the process if it isn\(aqt running
  74008. .ft P
  74009. .fi
  74010. .UNINDENT
  74011. .UNINDENT
  74012. .INDENT 0.0
  74013. .IP 4. 3
  74014. Make sure your salt\-master and salt\-minion are running.
  74015. .IP 5. 3
  74016. Run the state salt_proxy on the minion where you want to run \fBsalt\-proxy\fP
  74017. .UNINDENT
  74018. .sp
  74019. Example using \fBstate.sls\fP to configure and run \fBsalt\-proxy\fP
  74020. .INDENT 0.0
  74021. .INDENT 3.5
  74022. .sp
  74023. .nf
  74024. .ft C
  74025. # salt device_minion state.sls salt_proxy
  74026. .ft P
  74027. .fi
  74028. .UNINDENT
  74029. .UNINDENT
  74030. .sp
  74031. This starts salt\-proxy on \fBdevice_minion\fP
  74032. .INDENT 0.0
  74033. .IP 6. 3
  74034. Accept your proxy\(aqs key on your salt\-master
  74035. .UNINDENT
  74036. .INDENT 0.0
  74037. .INDENT 3.5
  74038. .sp
  74039. .nf
  74040. .ft C
  74041. salt\-key \-y \-a p8000
  74042. The following keys are going to be accepted:
  74043. Unaccepted Keys:
  74044. p8000
  74045. Key for minion p8000 accepted.
  74046. .ft P
  74047. .fi
  74048. .UNINDENT
  74049. .UNINDENT
  74050. .INDENT 0.0
  74051. .IP 7. 3
  74052. Now you should be able to run commands on your proxy.
  74053. .UNINDENT
  74054. .INDENT 0.0
  74055. .INDENT 3.5
  74056. .sp
  74057. .nf
  74058. .ft C
  74059. salt p8000 pkg.list_pkgs
  74060. .ft P
  74061. .fi
  74062. .UNINDENT
  74063. .UNINDENT
  74064. .SH NETWORK AUTOMATION
  74065. .sp
  74066. Network automation is a continuous process of automating the configuration,
  74067. management and operations of a computer network. Although the abstraction
  74068. could be compared with the operations on the server side, there are many particular
  74069. challenges, the most important being that a network device is traditionally
  74070. closed hardware able to run proprietary software only. In other words,
  74071. the user is not able to install the salt\-minion package directly on a
  74072. traditional network device. For these reasons, most network devices can be
  74073. controlled only remotely via proxy minions or
  74074. using the Salt SSH\&. However, there are also vendors producing
  74075. whitebox equipment (e.g. Arista, Cumulus) or others that have moved the
  74076. operating system in the container (e.g. Cisco NX\-OS, Cisco IOS\-XR),
  74077. allowing the salt\-minion to be installed directly on the platform.
  74078. .SS New in Carbon (2016.11)
  74079. .sp
  74080. The methodologies for network automation have been introduced in
  74081. 2016.11.0\&. Network
  74082. automation support is based on proxy minions.
  74083. .INDENT 0.0
  74084. .IP \(bu 2
  74085. \fBNAPALM proxy\fP
  74086. .IP \(bu 2
  74087. \fBJunos proxy\fP
  74088. .IP \(bu 2
  74089. \fBCisco NXOS\fP
  74090. .IP \(bu 2
  74091. \fBCisco NOS\fP
  74092. .UNINDENT
  74093. .SS NAPALM
  74094. .sp
  74095. NAPALM (Network Automation and Programmability Abstraction Layer with
  74096. Multivendor support) is an opensourced Python library that implements a set of
  74097. functions to interact with different router vendor devices using a unified API.
  74098. Being vendor\-agnostic simplifies operations, as the configuration and
  74099. interaction with the network device does not rely on a particular vendor.
  74100. [image]
  74101. .sp
  74102. Beginning with 2017.7.0, the NAPALM modules have been transformed so they can
  74103. run in both proxy and regular minions. That means, if the operating system
  74104. allows, the salt\-minion package can be installed directly on the network gear.
  74105. The interface between the network operating system and Salt in that case would
  74106. be the corresponding NAPALM sub\-package.
  74107. .sp
  74108. For example, if the user installs the
  74109. salt\-minion on a Arista switch, the only requirement is
  74110. \fI\%napalm\-eos\fP\&.
  74111. .sp
  74112. The following modules are available in 2017.7.0:
  74113. .INDENT 0.0
  74114. .IP \(bu 2
  74115. \fBNAPALM grains\fP
  74116. .IP \(bu 2
  74117. \fBNET execution module\fP \- Networking basic
  74118. features
  74119. .IP \(bu 2
  74120. \fBNTP execution module\fP
  74121. .IP \(bu 2
  74122. \fBBGP execution module\fP
  74123. .IP \(bu 2
  74124. \fBRoutes execution module\fP
  74125. .IP \(bu 2
  74126. \fBSNMP execution module\fP
  74127. .IP \(bu 2
  74128. \fBUsers execution module\fP
  74129. .IP \(bu 2
  74130. \fBProbes execution module\fP
  74131. .IP \(bu 2
  74132. \fBNTP peers management state\fP
  74133. .IP \(bu 2
  74134. \fBSNMP configuration management state\fP
  74135. .IP \(bu 2
  74136. \fBUsers management state\fP
  74137. .IP \(bu 2
  74138. \fBNetconfig state module\fP \- Manage the configuration
  74139. of network devices using arbitrary templates and the Salt\-specific
  74140. advanced templating methodologies.
  74141. .IP \(bu 2
  74142. \fBNetwork ACL execution module\fP \- Generate and
  74143. load ACL (firewall) configuration on network devices.
  74144. .IP \(bu 2
  74145. \fBNetwork ACL state\fP \- Manage the firewall
  74146. configuration. It only requires writing the pillar structure correctly!
  74147. .IP \(bu 2
  74148. \fBNAPALM YANG execution module\fP \- Parse,
  74149. generate and load native device configuration in a standard way,
  74150. using the OpenConfig/IETF models. This module contains also helpers for
  74151. the states.
  74152. .IP \(bu 2
  74153. \fBNAPALM YANG state module\fP \- Manage the
  74154. network device configuration according to the YANG models (OpenConfig or IETF).
  74155. .IP \(bu 2
  74156. \fBNET finder\fP \- Runner to find details easily and
  74157. fast. It\(aqs smart enough to know what you are looking for. It will search
  74158. in the details of the network interfaces, IP addresses, MAC address tables,
  74159. ARP tables and LLDP neighbors.
  74160. .IP \(bu 2
  74161. \fBBGP finder\fP \- Runner to search BGP neighbors details.
  74162. .IP \(bu 2
  74163. \fBNAPALM syslog\fP \- Engine to import events
  74164. from the napalm\-logs library into the Salt event bus. The events are based
  74165. on the syslog messages from the network devices and structured following
  74166. the OpenConfig/IETF YANG models.
  74167. .IP \(bu 2
  74168. \fBNAPALM Helpers\fP \- Generic helpers for
  74169. NAPALM\-related operations. For example, the
  74170. \fBCompliance report\fP function
  74171. can be used inside the state modules to compare the expected and the
  74172. existing configuration.
  74173. .UNINDENT
  74174. .SS Getting started
  74175. .sp
  74176. Install NAPALM \- follow the \fI\%notes\fP and check the platform\-specific \fI\%dependencies\fP\&.
  74177. .sp
  74178. Salt\(aqs Pillar system is ideally suited for configuring proxy\-minions
  74179. (though they can be configured in /etc/salt/proxy as well). Proxies
  74180. can either be designated via a pillar file in \fBpillar_roots\fP,
  74181. or through an external pillar.
  74182. External pillars afford the opportunity for interfacing with
  74183. a configuration management system, database, or other knowledgeable system
  74184. that may already contain all the details of proxy targets. To use static files
  74185. in \fBpillar_roots\fP, pattern your files after the following examples:
  74186. .sp
  74187. \fB/etc/salt/pillar/top.sls\fP
  74188. .INDENT 0.0
  74189. .INDENT 3.5
  74190. .sp
  74191. .nf
  74192. .ft C
  74193. base:
  74194. router1:
  74195. \- router1
  74196. router2:
  74197. \- router2
  74198. switch1:
  74199. \- switch1
  74200. switch2:
  74201. \- switch2
  74202. cpe1:
  74203. \- cpe1
  74204. .ft P
  74205. .fi
  74206. .UNINDENT
  74207. .UNINDENT
  74208. .sp
  74209. \fB/etc/salt/pillar/router1.sls\fP
  74210. .INDENT 0.0
  74211. .INDENT 3.5
  74212. .sp
  74213. .nf
  74214. .ft C
  74215. proxy:
  74216. proxytype: napalm
  74217. driver: junos
  74218. host: r1.bbone.as1234.net
  74219. username: my_username
  74220. password: my_password
  74221. .ft P
  74222. .fi
  74223. .UNINDENT
  74224. .UNINDENT
  74225. .sp
  74226. \fB/etc/salt/pillar/router2.sls\fP
  74227. .INDENT 0.0
  74228. .INDENT 3.5
  74229. .sp
  74230. .nf
  74231. .ft C
  74232. proxy:
  74233. proxytype: napalm
  74234. driver: iosxr
  74235. host: r2.bbone.as1234.net
  74236. username: my_username
  74237. password: my_password
  74238. optional_args:
  74239. port: 22022
  74240. .ft P
  74241. .fi
  74242. .UNINDENT
  74243. .UNINDENT
  74244. .sp
  74245. \fB/etc/salt/pillar/switch1.sls\fP
  74246. .INDENT 0.0
  74247. .INDENT 3.5
  74248. .sp
  74249. .nf
  74250. .ft C
  74251. proxy:
  74252. proxytype: napalm
  74253. driver: eos
  74254. host: sw1.bbone.as1234.net
  74255. username: my_username
  74256. password: my_password
  74257. optional_args:
  74258. enable_password: my_secret
  74259. .ft P
  74260. .fi
  74261. .UNINDENT
  74262. .UNINDENT
  74263. .sp
  74264. \fB/etc/salt/pillar/switch2.sls\fP
  74265. .INDENT 0.0
  74266. .INDENT 3.5
  74267. .sp
  74268. .nf
  74269. .ft C
  74270. proxy:
  74271. proxytype: napalm
  74272. driver: nxos
  74273. host: sw2.bbone.as1234.net
  74274. username: my_username
  74275. password: my_password
  74276. .ft P
  74277. .fi
  74278. .UNINDENT
  74279. .UNINDENT
  74280. .sp
  74281. \fB/etc/salt/pillar/cpe1.sls\fP
  74282. .INDENT 0.0
  74283. .INDENT 3.5
  74284. .sp
  74285. .nf
  74286. .ft C
  74287. proxy:
  74288. proxytype: napalm
  74289. driver: ios
  74290. host: cpe1.edge.as1234.net
  74291. username: \(aq\(aq
  74292. password: \(aq\(aq
  74293. optional_args:
  74294. use_keys: True
  74295. auto_rollback_on_error: True
  74296. .ft P
  74297. .fi
  74298. .UNINDENT
  74299. .UNINDENT
  74300. .SS CLI examples
  74301. .sp
  74302. Display the complete running configuration on \fBrouter1\fP:
  74303. .INDENT 0.0
  74304. .INDENT 3.5
  74305. .sp
  74306. .nf
  74307. .ft C
  74308. $ sudo salt \(aqrouter1\(aq net.config source=\(aqrunning\(aq
  74309. .ft P
  74310. .fi
  74311. .UNINDENT
  74312. .UNINDENT
  74313. .sp
  74314. Retrieve the NTP servers configured on all devices:
  74315. .INDENT 0.0
  74316. .INDENT 3.5
  74317. .sp
  74318. .nf
  74319. .ft C
  74320. $ sudo salt \(aq*\(aq ntp.servers
  74321. router1:
  74322. \-\-\-\-\-\-\-\-\-\-
  74323. comment:
  74324. out:
  74325. \- 1.2.3.4
  74326. result:
  74327. True
  74328. cpe1:
  74329. \-\-\-\-\-\-\-\-\-\-
  74330. comment:
  74331. out:
  74332. \- 1.2.3.4
  74333. result:
  74334. True
  74335. switch2:
  74336. \-\-\-\-\-\-\-\-\-\-
  74337. comment:
  74338. out:
  74339. \- 1.2.3.4
  74340. result:
  74341. True
  74342. router2:
  74343. \-\-\-\-\-\-\-\-\-\-
  74344. comment:
  74345. out:
  74346. \- 1.2.3.4
  74347. result:
  74348. True
  74349. switch1:
  74350. \-\-\-\-\-\-\-\-\-\-
  74351. comment:
  74352. out:
  74353. \- 1.2.3.4
  74354. result:
  74355. True
  74356. .ft P
  74357. .fi
  74358. .UNINDENT
  74359. .UNINDENT
  74360. .sp
  74361. Display the ARP tables on all Cisco devices running IOS\-XR 5.3.3:
  74362. .INDENT 0.0
  74363. .INDENT 3.5
  74364. .sp
  74365. .nf
  74366. .ft C
  74367. $ sudo salt \-G \(aqos:iosxr and version:5.3.3\(aq net.arp
  74368. .ft P
  74369. .fi
  74370. .UNINDENT
  74371. .UNINDENT
  74372. .sp
  74373. Return operational details for interfaces from Arista switches:
  74374. .INDENT 0.0
  74375. .INDENT 3.5
  74376. .sp
  74377. .nf
  74378. .ft C
  74379. $ sudo salt \-C \(aqsw* and os:eos\(aq net.interfaces
  74380. .ft P
  74381. .fi
  74382. .UNINDENT
  74383. .UNINDENT
  74384. .sp
  74385. Execute traceroute from the edge of the network:
  74386. .INDENT 0.0
  74387. .INDENT 3.5
  74388. .sp
  74389. .nf
  74390. .ft C
  74391. $ sudo salt \(aqrouter*\(aq net.traceroute 8.8.8.8 vrf=\(aqCUSTOMER1\-VRF\(aq
  74392. .ft P
  74393. .fi
  74394. .UNINDENT
  74395. .UNINDENT
  74396. .sp
  74397. Verbatim display from the CLI of Juniper routers:
  74398. .INDENT 0.0
  74399. .INDENT 3.5
  74400. .sp
  74401. .nf
  74402. .ft C
  74403. $ sudo salt \-C \(aqrouter* and G@os:junos\(aq net.cli \(aqshow version and haiku\(aq
  74404. .ft P
  74405. .fi
  74406. .UNINDENT
  74407. .UNINDENT
  74408. .sp
  74409. Retrieve the results of the RPM probes configured on Juniper MX960 routers:
  74410. .INDENT 0.0
  74411. .INDENT 3.5
  74412. .sp
  74413. .nf
  74414. .ft C
  74415. $ sudo salt \-C \(aqrouter* and G@os:junos and G@model:MX960\(aq probes.results
  74416. .ft P
  74417. .fi
  74418. .UNINDENT
  74419. .UNINDENT
  74420. .sp
  74421. Return the list of configured users on the CPEs:
  74422. .INDENT 0.0
  74423. .INDENT 3.5
  74424. .sp
  74425. .nf
  74426. .ft C
  74427. $ sudo salt \(aqcpe*\(aq users.config
  74428. .ft P
  74429. .fi
  74430. .UNINDENT
  74431. .UNINDENT
  74432. .sp
  74433. Using the \fBBGP finder\fP, return the list of BGP neighbors
  74434. that are down:
  74435. .INDENT 0.0
  74436. .INDENT 3.5
  74437. .sp
  74438. .nf
  74439. .ft C
  74440. $ sudo salt\-run bgp.neighbors up=False
  74441. .ft P
  74442. .fi
  74443. .UNINDENT
  74444. .UNINDENT
  74445. .sp
  74446. Using the \fBNET finder\fP, determine the devices containing
  74447. the pattern "PX\-1234\-LHR" in their interface description:
  74448. .INDENT 0.0
  74449. .INDENT 3.5
  74450. .sp
  74451. .nf
  74452. .ft C
  74453. $ sudo salt\-run net.find PX\-1234\-LHR
  74454. .ft P
  74455. .fi
  74456. .UNINDENT
  74457. .UNINDENT
  74458. .SS Cross\-platform configuration management example: NTP
  74459. .sp
  74460. Assuming that the user adds the following two lines under
  74461. \fBfile_roots\fP:
  74462. .INDENT 0.0
  74463. .INDENT 3.5
  74464. .sp
  74465. .nf
  74466. .ft C
  74467. file_roots:
  74468. base:
  74469. \- /etc/salt/pillar/
  74470. \- /etc/salt/templates/
  74471. \- /etc/salt/states/
  74472. .ft P
  74473. .fi
  74474. .UNINDENT
  74475. .UNINDENT
  74476. .sp
  74477. Define the list of NTP peers and servers wanted:
  74478. .sp
  74479. \fB/etc/salt/pillar/ntp.sls\fP
  74480. .INDENT 0.0
  74481. .INDENT 3.5
  74482. .sp
  74483. .nf
  74484. .ft C
  74485. ntp.servers:
  74486. \- 1.2.3.4
  74487. \- 5.6.7.8
  74488. ntp.peers:
  74489. \- 10.11.12.13
  74490. \- 14.15.16.17
  74491. .ft P
  74492. .fi
  74493. .UNINDENT
  74494. .UNINDENT
  74495. .sp
  74496. Include the new file: for example, if we want to have the same NTP servers on all
  74497. network devices, we can add the following line inside the \fBtop.sls\fP file:
  74498. .INDENT 0.0
  74499. .INDENT 3.5
  74500. .sp
  74501. .nf
  74502. .ft C
  74503. \(aq*\(aq:
  74504. \- ntp
  74505. .ft P
  74506. .fi
  74507. .UNINDENT
  74508. .UNINDENT
  74509. .sp
  74510. \fB/etc/salt/pillar/top.sls\fP
  74511. .INDENT 0.0
  74512. .INDENT 3.5
  74513. .sp
  74514. .nf
  74515. .ft C
  74516. base:
  74517. \(aq*\(aq:
  74518. \- ntp
  74519. router1:
  74520. \- router1
  74521. router2:
  74522. \- router2
  74523. switch1:
  74524. \- switch1
  74525. switch2:
  74526. \- switch2
  74527. cpe1:
  74528. \- cpe1
  74529. .ft P
  74530. .fi
  74531. .UNINDENT
  74532. .UNINDENT
  74533. .sp
  74534. Or include only where needed:
  74535. .sp
  74536. \fB/etc/salt/pillar/top.sls\fP
  74537. .INDENT 0.0
  74538. .INDENT 3.5
  74539. .sp
  74540. .nf
  74541. .ft C
  74542. base:
  74543. router1:
  74544. \- router1
  74545. \- ntp
  74546. router2:
  74547. \- router2
  74548. \- ntp
  74549. switch1:
  74550. \- switch1
  74551. switch2:
  74552. \- switch2
  74553. cpe1:
  74554. \- cpe1
  74555. .ft P
  74556. .fi
  74557. .UNINDENT
  74558. .UNINDENT
  74559. .sp
  74560. Define the cross\-vendor template:
  74561. .sp
  74562. \fB/etc/salt/templates/ntp.jinja\fP
  74563. .INDENT 0.0
  74564. .INDENT 3.5
  74565. .sp
  74566. .nf
  74567. .ft C
  74568. {%\- if grains.vendor|lower == \(aqcisco\(aq %}
  74569. no ntp
  74570. {%\- for server in servers %}
  74571. ntp server {{ server }}
  74572. {%\- endfor %}
  74573. {%\- for peer in peers %}
  74574. ntp peer {{ peer }}
  74575. {%\- endfor %}
  74576. {%\- elif grains.os|lower == \(aqjunos\(aq %}
  74577. system {
  74578. replace:
  74579. ntp {
  74580. {%\- for server in servers %}
  74581. server {{ server }};
  74582. {%\- endfor %}
  74583. {%\- for peer in peers %}
  74584. peer {{ peer }};
  74585. {%\- endfor %}
  74586. }
  74587. }
  74588. {%\- endif %}
  74589. .ft P
  74590. .fi
  74591. .UNINDENT
  74592. .UNINDENT
  74593. .sp
  74594. Define the SLS state file, making use of the
  74595. \fBNetconfig state module\fP:
  74596. .sp
  74597. \fB/etc/salt/states/router/ntp.sls\fP
  74598. .INDENT 0.0
  74599. .INDENT 3.5
  74600. .sp
  74601. .nf
  74602. .ft C
  74603. ntp_config_example:
  74604. netconfig.managed:
  74605. \- template_name: salt://ntp.jinja
  74606. \- peers: {{ pillar.get(\(aqntp.peers\(aq, []) | json }}
  74607. \- servers: {{ pillar.get(\(aqntp.servers\(aq, []) | json }}
  74608. .ft P
  74609. .fi
  74610. .UNINDENT
  74611. .UNINDENT
  74612. .sp
  74613. Run the state and assure NTP configuration consistency across your
  74614. multi\-vendor network:
  74615. .INDENT 0.0
  74616. .INDENT 3.5
  74617. .sp
  74618. .nf
  74619. .ft C
  74620. $ sudo salt \(aqrouter*\(aq state.sls router.ntp
  74621. .ft P
  74622. .fi
  74623. .UNINDENT
  74624. .UNINDENT
  74625. .sp
  74626. Besides CLI, the state can be scheduled or executed when triggered by a certain
  74627. event.
  74628. .SS JUNOS
  74629. .sp
  74630. Juniper has developed a Junos specific proxy infrastructure which allows
  74631. remote execution and configuration management of Junos devices without
  74632. having to install SaltStack on the device. The infrastructure includes:
  74633. .INDENT 0.0
  74634. .IP \(bu 2
  74635. \fBJunos proxy\fP
  74636. .IP \(bu 2
  74637. \fBJunos execution module\fP
  74638. .IP \(bu 2
  74639. \fBJunos state module\fP
  74640. .IP \(bu 2
  74641. \fBJunos syslog engine\fP
  74642. .UNINDENT
  74643. .sp
  74644. The execution and state modules are implemented using junos\-eznc (PyEZ).
  74645. Junos PyEZ is a microframework for Python that enables you to remotely manage
  74646. and automate devices running the Junos operating system.
  74647. .SS Getting started
  74648. .sp
  74649. Install PyEZ on the system which will run the Junos proxy minion.
  74650. It is required to run Junos specific modules.
  74651. .INDENT 0.0
  74652. .INDENT 3.5
  74653. .sp
  74654. .nf
  74655. .ft C
  74656. pip install junos\-eznc
  74657. .ft P
  74658. .fi
  74659. .UNINDENT
  74660. .UNINDENT
  74661. .sp
  74662. Next, set the master of the proxy minions.
  74663. .sp
  74664. \fB/etc/salt/proxy\fP
  74665. .INDENT 0.0
  74666. .INDENT 3.5
  74667. .sp
  74668. .nf
  74669. .ft C
  74670. master: <master_ip>
  74671. .ft P
  74672. .fi
  74673. .UNINDENT
  74674. .UNINDENT
  74675. .sp
  74676. Add the details of the Junos device. Device details are usually stored in
  74677. salt pillars. If the you do not wish to store credentials in the pillar,
  74678. one can setup passwordless ssh.
  74679. .sp
  74680. \fB/srv/pillar/vmx_details.sls\fP
  74681. .INDENT 0.0
  74682. .INDENT 3.5
  74683. .sp
  74684. .nf
  74685. .ft C
  74686. proxy:
  74687. proxytype: junos
  74688. host: <hostip>
  74689. username: user
  74690. passwd: secret123
  74691. .ft P
  74692. .fi
  74693. .UNINDENT
  74694. .UNINDENT
  74695. .sp
  74696. Map the pillar file to the proxy minion. This is done in the top file.
  74697. .sp
  74698. \fB/srv/pillar/top.sls\fP
  74699. .INDENT 0.0
  74700. .INDENT 3.5
  74701. .sp
  74702. .nf
  74703. .ft C
  74704. base:
  74705. vmx:
  74706. \- vmx_details
  74707. .ft P
  74708. .fi
  74709. .UNINDENT
  74710. .UNINDENT
  74711. .sp
  74712. \fBNOTE:\fP
  74713. .INDENT 0.0
  74714. .INDENT 3.5
  74715. Before starting the Junos proxy make sure that netconf is enabled on the
  74716. Junos device. This can be done by adding the following configuration on
  74717. the Junos device.
  74718. .INDENT 0.0
  74719. .INDENT 3.5
  74720. .sp
  74721. .nf
  74722. .ft C
  74723. set system services netconf ssh
  74724. .ft P
  74725. .fi
  74726. .UNINDENT
  74727. .UNINDENT
  74728. .UNINDENT
  74729. .UNINDENT
  74730. .sp
  74731. Start the salt master.
  74732. .INDENT 0.0
  74733. .INDENT 3.5
  74734. .sp
  74735. .nf
  74736. .ft C
  74737. salt\-master \-l debug
  74738. .ft P
  74739. .fi
  74740. .UNINDENT
  74741. .UNINDENT
  74742. .sp
  74743. Then start the salt proxy.
  74744. .INDENT 0.0
  74745. .INDENT 3.5
  74746. .sp
  74747. .nf
  74748. .ft C
  74749. salt\-proxy \-\-proxyid=vmx \-l debug
  74750. .ft P
  74751. .fi
  74752. .UNINDENT
  74753. .UNINDENT
  74754. .sp
  74755. Once the master and junos proxy minion have started, we can run execution
  74756. and state modules on the proxy minion. Below are few examples.
  74757. .SS CLI examples
  74758. .sp
  74759. For detailed documentation of all the junos execution modules refer:
  74760. \fBJunos execution module\fP
  74761. .sp
  74762. Display device facts.
  74763. .INDENT 0.0
  74764. .INDENT 3.5
  74765. .sp
  74766. .nf
  74767. .ft C
  74768. $ sudo salt \(aqvmx\(aq junos.facts
  74769. .ft P
  74770. .fi
  74771. .UNINDENT
  74772. .UNINDENT
  74773. .sp
  74774. Refresh the Junos facts. This function will also refresh the facts which are
  74775. stored in salt grains. (Junos proxy stores Junos facts in the salt grains)
  74776. .INDENT 0.0
  74777. .INDENT 3.5
  74778. .sp
  74779. .nf
  74780. .ft C
  74781. $ sudo salt \(aqvmx\(aq junos.facts_refresh
  74782. .ft P
  74783. .fi
  74784. .UNINDENT
  74785. .UNINDENT
  74786. .sp
  74787. Call an RPC.
  74788. .INDENT 0.0
  74789. .INDENT 3.5
  74790. .sp
  74791. .nf
  74792. .ft C
  74793. $ sudo salt \(aqvmx\(aq junos.rpc \(aqget\-interface\-information\(aq \(aq/var/log/interface\-info.txt\(aq terse=True
  74794. .ft P
  74795. .fi
  74796. .UNINDENT
  74797. .UNINDENT
  74798. .sp
  74799. Install config on the device.
  74800. .INDENT 0.0
  74801. .INDENT 3.5
  74802. .sp
  74803. .nf
  74804. .ft C
  74805. $ sudo salt \(aqvmx\(aq junos.install_config \(aqsalt://my_config.set\(aq
  74806. .ft P
  74807. .fi
  74808. .UNINDENT
  74809. .UNINDENT
  74810. .sp
  74811. Shutdown the junos device.
  74812. .INDENT 0.0
  74813. .INDENT 3.5
  74814. .sp
  74815. .nf
  74816. .ft C
  74817. $ sudo salt \(aqvmx\(aq junos.shutdown shutdown=True in_min=10
  74818. .ft P
  74819. .fi
  74820. .UNINDENT
  74821. .UNINDENT
  74822. .SS State file examples
  74823. .sp
  74824. For detailed documentation of all the junos state modules refer:
  74825. \fBJunos state module\fP
  74826. .sp
  74827. Executing an RPC on Junos device and storing the output in a file.
  74828. .sp
  74829. \fB/srv/salt/rpc.sls\fP
  74830. .INDENT 0.0
  74831. .INDENT 3.5
  74832. .sp
  74833. .nf
  74834. .ft C
  74835. get\-interface\-information:
  74836. junos:
  74837. \- rpc
  74838. \- dest: /home/user/rpc.log
  74839. \- interface_name: lo0
  74840. .ft P
  74841. .fi
  74842. .UNINDENT
  74843. .UNINDENT
  74844. .sp
  74845. Lock the junos device, load the configuration, commit it and unlock
  74846. the device.
  74847. .sp
  74848. \fB/srv/salt/load.sls\fP
  74849. .INDENT 0.0
  74850. .INDENT 3.5
  74851. .sp
  74852. .nf
  74853. .ft C
  74854. lock the config:
  74855. junos.lock
  74856. salt://configs/my_config.set:
  74857. junos:
  74858. \- install_config
  74859. \- timeout: 100
  74860. \- diffs_file: \(aqvar/log/diff\(aq
  74861. commit the changes:
  74862. junos:
  74863. \- commit
  74864. unlock the config:
  74865. junos.unlock
  74866. .ft P
  74867. .fi
  74868. .UNINDENT
  74869. .UNINDENT
  74870. .sp
  74871. According to the device personality install appropriate image on the device.
  74872. .sp
  74873. \fB/srv/salt/image_install.sls\fP
  74874. .INDENT 0.0
  74875. .INDENT 3.5
  74876. .sp
  74877. .nf
  74878. .ft C
  74879. {% if grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == MX %}
  74880. salt://images/mx_junos_image.tgz:
  74881. junos:
  74882. \- install_os
  74883. \- timeout: 100
  74884. \- reboot: True
  74885. {% elif grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == EX %}
  74886. salt://images/ex_junos_image.tgz:
  74887. junos:
  74888. \- install_os
  74889. \- timeout: 150
  74890. {% elif grains[\(aqjunos_facts\(aq][\(aqpersonality\(aq] == SRX %}
  74891. salt://images/srx_junos_image.tgz:
  74892. junos:
  74893. \- install_os
  74894. \- timeout: 150
  74895. {% endif %}
  74896. .ft P
  74897. .fi
  74898. .UNINDENT
  74899. .UNINDENT
  74900. .SS Junos Syslog Engine
  74901. .sp
  74902. \fBJunos Syslog Engine\fP is a Salt engine
  74903. which receives data from various Junos devices, extracts event information and
  74904. forwards it on the master/minion event bus. To start the engine on the salt
  74905. master, add the following configuration in the master config file.
  74906. The engine can also run on the salt minion.
  74907. .sp
  74908. \fB/etc/salt/master\fP
  74909. .INDENT 0.0
  74910. .INDENT 3.5
  74911. .sp
  74912. .nf
  74913. .ft C
  74914. engines:
  74915. \- junos_syslog:
  74916. port: xxx
  74917. .ft P
  74918. .fi
  74919. .UNINDENT
  74920. .UNINDENT
  74921. .sp
  74922. For junos_syslog engine to receive events, syslog must be set on the Junos device.
  74923. This can be done via following configuration:
  74924. .INDENT 0.0
  74925. .INDENT 3.5
  74926. .sp
  74927. .nf
  74928. .ft C
  74929. set system syslog host <ip\-of\-the\-salt\-device> port xxx any any
  74930. .ft P
  74931. .fi
  74932. .UNINDENT
  74933. .UNINDENT
  74934. .SH SALT VIRT
  74935. .sp
  74936. The Salt Virt cloud controller capability was initially added to Salt in
  74937. version 0.14.0 as an alpha technology.
  74938. .sp
  74939. The initial Salt Virt system supports core cloud operations:
  74940. .INDENT 0.0
  74941. .IP \(bu 2
  74942. Virtual machine deployment
  74943. .IP \(bu 2
  74944. Inspection of deployed VMs
  74945. .IP \(bu 2
  74946. Virtual machine migration
  74947. .IP \(bu 2
  74948. Network profiling
  74949. .IP \(bu 2
  74950. Automatic VM integration with all aspects of Salt
  74951. .IP \(bu 2
  74952. Image Pre\-seeding
  74953. .UNINDENT
  74954. .sp
  74955. Many features are currently under development to enhance the capabilities of
  74956. the Salt Virt systems.
  74957. .sp
  74958. \fBNOTE:\fP
  74959. .INDENT 0.0
  74960. .INDENT 3.5
  74961. It is noteworthy that Salt was originally developed with the intent of
  74962. using the Salt communication system as the backbone to a cloud controller.
  74963. This means that the Salt Virt system is not an afterthought, simply a
  74964. system that took the back seat to other development. The original attempt
  74965. to develop the cloud control aspects of Salt was a project called butter.
  74966. This project never took off, but was functional and proves the early
  74967. viability of Salt to be a cloud controller.
  74968. .UNINDENT
  74969. .UNINDENT
  74970. .sp
  74971. \fBWARNING:\fP
  74972. .INDENT 0.0
  74973. .INDENT 3.5
  74974. Salt Virt does not work with KVM that is running in a VM. KVM must be running
  74975. on the base hardware.
  74976. .UNINDENT
  74977. .UNINDENT
  74978. .SS Salt Virt Tutorial
  74979. .sp
  74980. A tutorial about how to get Salt Virt up and running has been added to the
  74981. tutorial section:
  74982. .sp
  74983. Cloud Controller Tutorial
  74984. .SS The Salt Virt Runner
  74985. .sp
  74986. The point of interaction with the cloud controller is the \fBvirt\fP
  74987. runner. The \fBvirt\fP runner comes with routines to execute specific
  74988. virtual machine routines.
  74989. .sp
  74990. Reference documentation for the virt runner is available with the runner
  74991. module documentation:
  74992. .sp
  74993. \fBVirt Runner Reference\fP
  74994. .SS Based on Live State Data
  74995. .sp
  74996. The Salt Virt system is based on using Salt to query live data about
  74997. hypervisors and then using the data gathered to make decisions about cloud
  74998. operations. This means that no external resources are required to run Salt
  74999. Virt, and that the information gathered about the cloud is live and accurate.
  75000. .SS Deploy from Network or Disk
  75001. .SS Virtual Machine Disk Profiles
  75002. .sp
  75003. Salt Virt allows for the disks created for deployed virtual machines
  75004. to be finely configured. The configuration is a simple data structure which is
  75005. read from the \fBconfig.option\fP function, meaning that the configuration can be
  75006. stored in the minion config file, the master config file, or the minion\(aqs
  75007. pillar.
  75008. .sp
  75009. This configuration option is called \fBvirt.disk\fP\&. The default \fBvirt.disk\fP
  75010. data structure looks like this:
  75011. .INDENT 0.0
  75012. .INDENT 3.5
  75013. .sp
  75014. .nf
  75015. .ft C
  75016. virt.disk:
  75017. default:
  75018. \- system:
  75019. size: 8192
  75020. format: qcow2
  75021. model: virtio
  75022. .ft P
  75023. .fi
  75024. .UNINDENT
  75025. .UNINDENT
  75026. .sp
  75027. \fBNOTE:\fP
  75028. .INDENT 0.0
  75029. .INDENT 3.5
  75030. The format and model does not need to be defined, Salt will
  75031. default to the optimal format used by the underlying hypervisor,
  75032. in the case of kvm this it is \fBqcow2\fP and
  75033. \fBvirtio\fP\&.
  75034. .UNINDENT
  75035. .UNINDENT
  75036. .sp
  75037. This configuration sets up a disk profile called default. The default
  75038. profile creates a single system disk on the virtual machine.
  75039. .SS Define More Profiles
  75040. .sp
  75041. Many environments will require more complex disk profiles and may require
  75042. more than one profile, this can be easily accomplished:
  75043. .INDENT 0.0
  75044. .INDENT 3.5
  75045. .sp
  75046. .nf
  75047. .ft C
  75048. virt.disk:
  75049. default:
  75050. \- system:
  75051. size: 8192
  75052. database:
  75053. \- system:
  75054. size: 8192
  75055. \- data:
  75056. size: 30720
  75057. web:
  75058. \- system:
  75059. size: 1024
  75060. \- logs:
  75061. size: 5120
  75062. .ft P
  75063. .fi
  75064. .UNINDENT
  75065. .UNINDENT
  75066. .sp
  75067. This configuration allows for one of three profiles to be selected,
  75068. allowing virtual machines to be created with different storage needs
  75069. of the deployed vm.
  75070. .SS Virtual Machine Network Profiles
  75071. .sp
  75072. Salt Virt allows for the network devices created for deployed virtual machines
  75073. to be finely configured. The configuration is a simple data structure which is
  75074. read from the \fBconfig.option\fP function, meaning that the configuration can be
  75075. stored in the minion config file, the master config file, or the minion\(aqs
  75076. pillar.
  75077. .sp
  75078. This configuration option is called \fBvirt:nic\fP\&. By default the \fBvirt:nic\fP
  75079. option is empty but defaults to a data structure which looks like this:
  75080. .INDENT 0.0
  75081. .INDENT 3.5
  75082. .sp
  75083. .nf
  75084. .ft C
  75085. virt:
  75086. nic:
  75087. default:
  75088. eth0:
  75089. bridge: br0
  75090. model: virtio
  75091. .ft P
  75092. .fi
  75093. .UNINDENT
  75094. .UNINDENT
  75095. .sp
  75096. \fBNOTE:\fP
  75097. .INDENT 0.0
  75098. .INDENT 3.5
  75099. The model does not need to be defined, Salt will default to the optimal
  75100. model used by the underlying hypervisor, in the case of kvm this model
  75101. is \fBvirtio\fP
  75102. .UNINDENT
  75103. .UNINDENT
  75104. .sp
  75105. This configuration sets up a network profile called default. The default
  75106. profile creates a single Ethernet device on the virtual machine that is bridged
  75107. to the hypervisor\(aqs \fBbr0\fP interface. This default setup does not
  75108. require setting up the \fBvirt:nic\fP configuration, and is the reason why a
  75109. default install only requires setting up the \fBbr0\fP bridge device on the
  75110. hypervisor.
  75111. .SS Define More Profiles
  75112. .sp
  75113. Many environments will require more complex network profiles and may require
  75114. more than one profile, this can be easily accomplished:
  75115. .INDENT 0.0
  75116. .INDENT 3.5
  75117. .sp
  75118. .nf
  75119. .ft C
  75120. virt:
  75121. nic:
  75122. dual:
  75123. eth0:
  75124. bridge: service_br
  75125. eth1:
  75126. bridge: storage_br
  75127. single:
  75128. eth0:
  75129. bridge: service_br
  75130. triple:
  75131. eth0:
  75132. bridge: service_br
  75133. eth1:
  75134. bridge: storage_br
  75135. eth2:
  75136. bridge: dmz_br
  75137. all:
  75138. eth0:
  75139. bridge: service_br
  75140. eth1:
  75141. bridge: storage_br
  75142. eth2:
  75143. bridge: dmz_br
  75144. eth3:
  75145. bridge: database_br
  75146. dmz:
  75147. eth0:
  75148. bridge: service_br
  75149. eth1:
  75150. bridge: dmz_br
  75151. database:
  75152. eth0:
  75153. bridge: service_br
  75154. eth1:
  75155. bridge: database_br
  75156. .ft P
  75157. .fi
  75158. .UNINDENT
  75159. .UNINDENT
  75160. .sp
  75161. This configuration allows for one of six profiles to be selected, allowing
  75162. virtual machines to be created which attach to different network depending
  75163. on the needs of the deployed vm.
  75164. .SH COMMAND LINE REFERENCE
  75165. .SS salt\-api
  75166. .SS \fBsalt\-api\fP
  75167. .sp
  75168. Start interfaces used to remotely connect to the salt master
  75169. .SS Synopsis
  75170. .INDENT 0.0
  75171. .INDENT 3.5
  75172. .sp
  75173. .nf
  75174. .ft C
  75175. salt\-api
  75176. .ft P
  75177. .fi
  75178. .UNINDENT
  75179. .UNINDENT
  75180. .SS Description
  75181. .sp
  75182. The Salt API system manages network api connectors for the Salt Master
  75183. .SS Options
  75184. .INDENT 0.0
  75185. .TP
  75186. .B \-\-version
  75187. Print the version of Salt that is running.
  75188. .UNINDENT
  75189. .INDENT 0.0
  75190. .TP
  75191. .B \-\-versions\-report
  75192. Show program\(aqs dependencies and version number, and then exit
  75193. .UNINDENT
  75194. .INDENT 0.0
  75195. .TP
  75196. .B \-h, \-\-help
  75197. Show the help message and exit
  75198. .UNINDENT
  75199. .INDENT 0.0
  75200. .TP
  75201. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75202. The location of the Salt configuration directory. This directory contains
  75203. the configuration files for Salt master and minions. The default location
  75204. on most systems is \fB/etc/salt\fP\&.
  75205. .UNINDENT
  75206. .INDENT 0.0
  75207. .TP
  75208. .B \-d, \-\-daemon
  75209. Run the salt\-api as a daemon
  75210. .UNINDENT
  75211. .INDENT 0.0
  75212. .TP
  75213. .B \-\-pid\-file=PIDFILE
  75214. Specify the location of the pidfile. Default: /var/run/salt\-api.pid
  75215. .UNINDENT
  75216. .SS Logging Options
  75217. .sp
  75218. Logging options which override any settings defined on the configuration files.
  75219. .INDENT 0.0
  75220. .TP
  75221. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75222. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75223. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75224. \fBwarning\fP\&.
  75225. .UNINDENT
  75226. .INDENT 0.0
  75227. .TP
  75228. .B \-\-log\-file=LOG_FILE
  75229. Log file path. Default: /var/log/salt/api\&.
  75230. .UNINDENT
  75231. .INDENT 0.0
  75232. .TP
  75233. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75234. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75235. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75236. \fBwarning\fP\&.
  75237. .UNINDENT
  75238. .SS See also
  75239. .sp
  75240. \fBsalt\-api(7)\fP
  75241. \fBsalt(7)\fP
  75242. \fBsalt\-master(1)\fP
  75243. .SS salt\-call
  75244. .SS \fBsalt\-call\fP
  75245. .SS Synopsis
  75246. .INDENT 0.0
  75247. .INDENT 3.5
  75248. .sp
  75249. .nf
  75250. .ft C
  75251. salt\-call [options]
  75252. .ft P
  75253. .fi
  75254. .UNINDENT
  75255. .UNINDENT
  75256. .SS Description
  75257. .sp
  75258. The salt\-call command is used to run module functions locally on a minion
  75259. instead of executing them from the master. Salt\-call is used to run a
  75260. Standalone Minion, and was originally
  75261. created for troubleshooting\&.
  75262. .sp
  75263. The Salt Master is contacted to retrieve state files and other resources
  75264. during execution unless the \fB\-\-local\fP option is specified.
  75265. .sp
  75266. \fBNOTE:\fP
  75267. .INDENT 0.0
  75268. .INDENT 3.5
  75269. \fBsalt\-call\fP commands execute from the current user\(aqs shell
  75270. context, while \fBsalt\fP commands execute from the system\(aqs default context.
  75271. .UNINDENT
  75272. .UNINDENT
  75273. .SS Options
  75274. .INDENT 0.0
  75275. .TP
  75276. .B \-\-version
  75277. Print the version of Salt that is running.
  75278. .UNINDENT
  75279. .INDENT 0.0
  75280. .TP
  75281. .B \-\-versions\-report
  75282. Show program\(aqs dependencies and version number, and then exit
  75283. .UNINDENT
  75284. .INDENT 0.0
  75285. .TP
  75286. .B \-h, \-\-help
  75287. Show the help message and exit
  75288. .UNINDENT
  75289. .INDENT 0.0
  75290. .TP
  75291. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75292. The location of the Salt configuration directory. This directory contains
  75293. the configuration files for Salt master and minions. The default location
  75294. on most systems is \fB/etc/salt\fP\&.
  75295. .UNINDENT
  75296. .INDENT 0.0
  75297. .TP
  75298. .B \-\-hard\-crash
  75299. Raise any original exception rather than exiting gracefully Default: False
  75300. .UNINDENT
  75301. .INDENT 0.0
  75302. .TP
  75303. .B \-g, \-\-grains
  75304. Return the information generated by the Salt grains
  75305. .UNINDENT
  75306. .INDENT 0.0
  75307. .TP
  75308. .B \-m MODULE_DIRS, \-\-module\-dirs=MODULE_DIRS
  75309. Specify an additional directory to pull modules from. Multiple directories
  75310. can be provided by passing \-m /\-\-module\-dirs multiple times.
  75311. .UNINDENT
  75312. .INDENT 0.0
  75313. .TP
  75314. .B \-d, \-\-doc, \-\-documentation
  75315. Return the documentation for the specified module or for all modules if
  75316. none are specified
  75317. .UNINDENT
  75318. .INDENT 0.0
  75319. .TP
  75320. .B \-\-master=MASTER
  75321. Specify the master to use. The minion must be authenticated with the
  75322. master. If this option is omitted, the master options from the minion
  75323. config will be used. If multi masters are set up the first listed master
  75324. that responds will be used.
  75325. .UNINDENT
  75326. .INDENT 0.0
  75327. .TP
  75328. .B \-\-return RETURNER
  75329. Set salt\-call to pass the return data to one or many returner interfaces.
  75330. To use many returner interfaces specify a comma delimited list of
  75331. returners.
  75332. .UNINDENT
  75333. .INDENT 0.0
  75334. .TP
  75335. .B \-\-local
  75336. Run salt\-call locally, as if there was no master running.
  75337. .UNINDENT
  75338. .INDENT 0.0
  75339. .TP
  75340. .B \-\-file\-root=FILE_ROOT
  75341. Set this directory as the base file root.
  75342. .UNINDENT
  75343. .INDENT 0.0
  75344. .TP
  75345. .B \-\-pillar\-root=PILLAR_ROOT
  75346. Set this directory as the base pillar root.
  75347. .UNINDENT
  75348. .INDENT 0.0
  75349. .TP
  75350. .B \-\-retcode\-passthrough
  75351. Exit with the salt call retcode and not the salt binary retcode
  75352. .UNINDENT
  75353. .INDENT 0.0
  75354. .TP
  75355. .B \-\-metadata
  75356. Print out the execution metadata as well as the return. This will print out
  75357. the outputter data, the return code, etc.
  75358. .UNINDENT
  75359. .INDENT 0.0
  75360. .TP
  75361. .B \-\-id=ID
  75362. Specify the minion id to use. If this option is omitted, the id option from
  75363. the minion config will be used.
  75364. .UNINDENT
  75365. .INDENT 0.0
  75366. .TP
  75367. .B \-\-skip\-grains
  75368. Do not load grains.
  75369. .UNINDENT
  75370. .INDENT 0.0
  75371. .TP
  75372. .B \-\-refresh\-grains\-cache
  75373. Force a refresh of the grains cache
  75374. .UNINDENT
  75375. .SS Logging Options
  75376. .sp
  75377. Logging options which override any settings defined on the configuration files.
  75378. .INDENT 0.0
  75379. .TP
  75380. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75381. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75382. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75383. \fBwarning\fP\&.
  75384. .UNINDENT
  75385. .INDENT 0.0
  75386. .TP
  75387. .B \-\-log\-file=LOG_FILE
  75388. Log file path. Default: /var/log/salt/minion\&.
  75389. .UNINDENT
  75390. .INDENT 0.0
  75391. .TP
  75392. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75393. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75394. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75395. \fBwarning\fP\&.
  75396. .UNINDENT
  75397. .SS Output Options
  75398. .INDENT 0.0
  75399. .TP
  75400. .B \-\-out
  75401. Pass in an alternative outputter to display the return of data. This
  75402. outputter can be any of the available outputters:
  75403. .INDENT 7.0
  75404. .INDENT 3.5
  75405. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  75406. .UNINDENT
  75407. .UNINDENT
  75408. .sp
  75409. Some outputters are formatted only for data returned from specific functions.
  75410. If an outputter is used that does not support the data passed into it, then
  75411. Salt will fall back on the \fBpprint\fP outputter and display the return data
  75412. using the Python \fBpprint\fP standard library module.
  75413. .UNINDENT
  75414. .INDENT 0.0
  75415. .TP
  75416. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  75417. Print the output indented by the provided value in spaces. Negative values
  75418. disable indentation. Only applicable in outputters that support
  75419. indentation.
  75420. .UNINDENT
  75421. .INDENT 0.0
  75422. .TP
  75423. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  75424. Write the output to the specified file.
  75425. .UNINDENT
  75426. .INDENT 0.0
  75427. .TP
  75428. .B \-\-out\-file\-append, \-\-output\-file\-append
  75429. Append the output to the specified file.
  75430. .UNINDENT
  75431. .INDENT 0.0
  75432. .TP
  75433. .B \-\-no\-color
  75434. Disable all colored output
  75435. .UNINDENT
  75436. .INDENT 0.0
  75437. .TP
  75438. .B \-\-force\-color
  75439. Force colored output
  75440. .sp
  75441. \fBNOTE:\fP
  75442. .INDENT 7.0
  75443. .INDENT 3.5
  75444. When using colored output the color codes are as follows:
  75445. .sp
  75446. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  75447. changes and success and \fByellow\fP denotes a expected future change in configuration.
  75448. .UNINDENT
  75449. .UNINDENT
  75450. .UNINDENT
  75451. .INDENT 0.0
  75452. .TP
  75453. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  75454. Override the configured state_output value for minion
  75455. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  75456. \(aqfilter\(aq. Default: \(aqnone\(aq.
  75457. .UNINDENT
  75458. .INDENT 0.0
  75459. .TP
  75460. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  75461. Override the configured state_verbose value for minion
  75462. output. Set to True or False. Default: none.
  75463. .UNINDENT
  75464. .SS See also
  75465. .sp
  75466. \fBsalt(1)\fP
  75467. \fBsalt\-master(1)\fP
  75468. \fBsalt\-minion(1)\fP
  75469. .SS salt
  75470. .SS \fBsalt\fP
  75471. .SS Synopsis
  75472. .INDENT 0.0
  75473. .INDENT 3.5
  75474. salt \(aq*\(aq [ options ] sys.doc
  75475. .sp
  75476. salt \-E \(aq.*\(aq [ options ] sys.doc cmd
  75477. .sp
  75478. salt \-G \(aqos:Arch.*\(aq [ options ] test.version
  75479. .sp
  75480. salt \-C \fI\%\(aqG@os\fP:Arch.* and webserv* or \fI\%G@kernel\fP:FreeBSD\(aq [ options ] test.version
  75481. .UNINDENT
  75482. .UNINDENT
  75483. .SS Description
  75484. .sp
  75485. Salt allows for commands to be executed across a swath of remote systems in
  75486. parallel. This means that remote systems can be both controlled and queried
  75487. with ease.
  75488. .SS Options
  75489. .INDENT 0.0
  75490. .TP
  75491. .B \-\-version
  75492. Print the version of Salt that is running.
  75493. .UNINDENT
  75494. .INDENT 0.0
  75495. .TP
  75496. .B \-\-versions\-report
  75497. Show program\(aqs dependencies and version number, and then exit
  75498. .UNINDENT
  75499. .INDENT 0.0
  75500. .TP
  75501. .B \-h, \-\-help
  75502. Show the help message and exit
  75503. .UNINDENT
  75504. .INDENT 0.0
  75505. .TP
  75506. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75507. The location of the Salt configuration directory. This directory contains
  75508. the configuration files for Salt master and minions. The default location
  75509. on most systems is \fB/etc/salt\fP\&.
  75510. .UNINDENT
  75511. .INDENT 0.0
  75512. .TP
  75513. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  75514. The timeout in seconds to wait for replies from the Salt minions. The
  75515. timeout number specifies how long the command line client will wait to
  75516. query the minions and check on running jobs. Default: 5
  75517. .UNINDENT
  75518. .INDENT 0.0
  75519. .TP
  75520. .B \-s, \-\-static
  75521. By default as of version 0.9.8 the salt command returns data to the
  75522. console as it is received from minions, but previous releases would return
  75523. data only after all data was received. Use the static option to only return
  75524. the data with a hard timeout and after all minions have returned.
  75525. Without the static option, you will get a separate JSON string per minion
  75526. which makes JSON output invalid as a whole.
  75527. .UNINDENT
  75528. .INDENT 0.0
  75529. .TP
  75530. .B \-\-async
  75531. Instead of waiting for the job to run on minions only print the job id of
  75532. the started execution and complete.
  75533. .UNINDENT
  75534. .INDENT 0.0
  75535. .TP
  75536. .B \-\-subset=SUBSET
  75537. Execute the routine on a random subset of the targeted minions. The
  75538. minions will be verified that they have the named function before
  75539. executing. The SUBSET argument is the count of the minions to target.
  75540. .UNINDENT
  75541. .INDENT 0.0
  75542. .TP
  75543. .B \-v VERBOSE, \-\-verbose
  75544. Turn on verbosity for the salt call, this will cause the salt command to
  75545. print out extra data like the job id.
  75546. .UNINDENT
  75547. .INDENT 0.0
  75548. .TP
  75549. .B \-\-hide\-timeout
  75550. Instead of showing the return data for all minions. This option
  75551. prints only the online minions which could be reached.
  75552. .UNINDENT
  75553. .INDENT 0.0
  75554. .TP
  75555. .B \-b BATCH, \-\-batch\-size=BATCH
  75556. Instead of executing on all targeted minions at once, execute on a
  75557. progressive set of minions. This option takes an argument in the form of
  75558. an explicit number of minions to execute at once, or a percentage of
  75559. minions to execute on.
  75560. .UNINDENT
  75561. .INDENT 0.0
  75562. .TP
  75563. .B \-a EAUTH, \-\-auth=EAUTH
  75564. Pass in an external authentication medium to validate against. The
  75565. credentials will be prompted for. The options are \fIauto\fP,
  75566. \fIkeystone\fP, \fIldap\fP, and \fIpam\fP\&. Can be used with the \-T
  75567. option.
  75568. .UNINDENT
  75569. .INDENT 0.0
  75570. .TP
  75571. .B \-T, \-\-make\-token
  75572. Used in conjunction with the \-a option. This creates a token that allows
  75573. for the authenticated user to send commands without needing to
  75574. re\-authenticate.
  75575. .UNINDENT
  75576. .INDENT 0.0
  75577. .TP
  75578. .B \-\-return=RETURNER
  75579. Choose an alternative returner to call on the minion, if an
  75580. alternative returner is used then the return will not come back to
  75581. the command line but will be sent to the specified return system.
  75582. The options are \fIcarbon\fP, \fIcassandra\fP, \fIcouchbase\fP, \fIcouchdb\fP,
  75583. \fIelasticsearch\fP, \fIetcd\fP, \fIhipchat\fP, \fIlocal\fP, \fIlocal_cache\fP,
  75584. \fImemcache\fP, \fImongo\fP, \fImysql\fP, \fIodbc\fP, \fIpostgres\fP, \fIredis\fP,
  75585. \fIsentry\fP, \fIslack\fP, \fIsms\fP, \fIsmtp\fP, \fIsqlite3\fP, \fIsyslog\fP, and \fIxmpp\fP\&.
  75586. .UNINDENT
  75587. .INDENT 0.0
  75588. .TP
  75589. .B \-d, \-\-doc, \-\-documentation
  75590. Return the documentation for the module functions available on the minions
  75591. .UNINDENT
  75592. .INDENT 0.0
  75593. .TP
  75594. .B \-\-args\-separator=ARGS_SEPARATOR
  75595. Set the special argument used as a delimiter between command arguments of
  75596. compound commands. This is useful when one wants to pass commas as
  75597. arguments to some of the commands in a compound command.
  75598. .UNINDENT
  75599. .SS Logging Options
  75600. .sp
  75601. Logging options which override any settings defined on the configuration files.
  75602. .INDENT 0.0
  75603. .TP
  75604. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75605. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75606. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75607. \fBwarning\fP\&.
  75608. .UNINDENT
  75609. .INDENT 0.0
  75610. .TP
  75611. .B \-\-log\-file=LOG_FILE
  75612. Log file path. Default: /var/log/salt/master\&.
  75613. .UNINDENT
  75614. .INDENT 0.0
  75615. .TP
  75616. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75617. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75618. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75619. \fBwarning\fP\&.
  75620. .UNINDENT
  75621. .SS Target Selection
  75622. .sp
  75623. The default matching that Salt utilizes is shell\-style globbing around the
  75624. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  75625. .INDENT 0.0
  75626. .TP
  75627. .B \-E, \-\-pcre
  75628. The target expression will be interpreted as a PCRE regular expression
  75629. rather than a shell glob.
  75630. .UNINDENT
  75631. .INDENT 0.0
  75632. .TP
  75633. .B \-L, \-\-list
  75634. The target expression will be interpreted as a comma\-delimited list;
  75635. example: server1.foo.bar,server2.foo.bar,example7.quo.qux
  75636. .UNINDENT
  75637. .INDENT 0.0
  75638. .TP
  75639. .B \-G, \-\-grain
  75640. The target expression matches values returned by the Salt grains system on
  75641. the minions. The target expression is in the format of \(aq<grain value>:<glob
  75642. expression>\(aq; example: \(aqos:Arch*\(aq
  75643. .sp
  75644. This was changed in version 0.9.8 to accept glob expressions instead of
  75645. regular expression. To use regular expression matching with grains, use
  75646. the \-\-grain\-pcre option.
  75647. .UNINDENT
  75648. .INDENT 0.0
  75649. .TP
  75650. .B \-\-grain\-pcre
  75651. The target expression matches values returned by the Salt grains system on
  75652. the minions. The target expression is in the format of \(aq<grain value>:<
  75653. regular expression>\(aq; example: \(aqos:Arch.*\(aq
  75654. .UNINDENT
  75655. .INDENT 0.0
  75656. .TP
  75657. .B \-N, \-\-nodegroup
  75658. Use a predefined compound target defined in the Salt master configuration
  75659. file.
  75660. .UNINDENT
  75661. .INDENT 0.0
  75662. .TP
  75663. .B \-R, \-\-range
  75664. Instead of using shell globs to evaluate the target, use a range expression
  75665. to identify targets. Range expressions look like %cluster.
  75666. .sp
  75667. Using the Range option requires that a range server is set up and the
  75668. location of the range server is referenced in the master configuration
  75669. file.
  75670. .UNINDENT
  75671. .INDENT 0.0
  75672. .TP
  75673. .B \-C, \-\-compound
  75674. Utilize many target definitions to make the call very granular. This option
  75675. takes a group of targets separated by \fBand\fP or \fBor\fP\&. The default matcher is a
  75676. glob as usual. If something other than a glob is used, preface it with the
  75677. letter denoting the type; example: \(aqwebserv* and \fI\%G@os\fP:Debian or \fI\%E@db*\fP\(aq
  75678. Make sure that the compound target is encapsulated in quotes.
  75679. .UNINDENT
  75680. .INDENT 0.0
  75681. .TP
  75682. .B \-I, \-\-pillar
  75683. Instead of using shell globs to evaluate the target, use a pillar value to
  75684. identify targets. The syntax for the target is the pillar key followed by
  75685. a glob expression: "role:production*"
  75686. .UNINDENT
  75687. .INDENT 0.0
  75688. .TP
  75689. .B \-S, \-\-ipcidr
  75690. Match based on Subnet (CIDR notation) or IPv4 address.
  75691. .UNINDENT
  75692. .SS Output Options
  75693. .INDENT 0.0
  75694. .TP
  75695. .B \-\-out
  75696. Pass in an alternative outputter to display the return of data. This
  75697. outputter can be any of the available outputters:
  75698. .INDENT 7.0
  75699. .INDENT 3.5
  75700. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  75701. .UNINDENT
  75702. .UNINDENT
  75703. .sp
  75704. Some outputters are formatted only for data returned from specific functions.
  75705. If an outputter is used that does not support the data passed into it, then
  75706. Salt will fall back on the \fBpprint\fP outputter and display the return data
  75707. using the Python \fBpprint\fP standard library module.
  75708. .UNINDENT
  75709. .INDENT 0.0
  75710. .TP
  75711. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  75712. Print the output indented by the provided value in spaces. Negative values
  75713. disable indentation. Only applicable in outputters that support
  75714. indentation.
  75715. .UNINDENT
  75716. .INDENT 0.0
  75717. .TP
  75718. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  75719. Write the output to the specified file.
  75720. .UNINDENT
  75721. .INDENT 0.0
  75722. .TP
  75723. .B \-\-out\-file\-append, \-\-output\-file\-append
  75724. Append the output to the specified file.
  75725. .UNINDENT
  75726. .INDENT 0.0
  75727. .TP
  75728. .B \-\-no\-color
  75729. Disable all colored output
  75730. .UNINDENT
  75731. .INDENT 0.0
  75732. .TP
  75733. .B \-\-force\-color
  75734. Force colored output
  75735. .sp
  75736. \fBNOTE:\fP
  75737. .INDENT 7.0
  75738. .INDENT 3.5
  75739. When using colored output the color codes are as follows:
  75740. .sp
  75741. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  75742. changes and success and \fByellow\fP denotes a expected future change in configuration.
  75743. .UNINDENT
  75744. .UNINDENT
  75745. .UNINDENT
  75746. .INDENT 0.0
  75747. .TP
  75748. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  75749. Override the configured state_output value for minion
  75750. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  75751. \(aqfilter\(aq. Default: \(aqnone\(aq.
  75752. .UNINDENT
  75753. .INDENT 0.0
  75754. .TP
  75755. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  75756. Override the configured state_verbose value for minion
  75757. output. Set to True or False. Default: none.
  75758. .UNINDENT
  75759. .sp
  75760. \fBNOTE:\fP
  75761. .INDENT 0.0
  75762. .INDENT 3.5
  75763. If using \fB\-\-out=json\fP, you will probably want \fB\-\-static\fP as well.
  75764. Without the static option, you will get a separate JSON string per minion
  75765. which makes JSON output invalid as a whole.
  75766. This is due to using an iterative outputter. So if you want to feed it
  75767. to a JSON parser, use \fB\-\-static\fP as well.
  75768. .UNINDENT
  75769. .UNINDENT
  75770. .SS See also
  75771. .sp
  75772. \fBsalt(7)\fP
  75773. \fBsalt\-master(1)\fP
  75774. \fBsalt\-minion(1)\fP
  75775. .SS salt\-cloud
  75776. .SS salt\-cp
  75777. .SS \fBsalt\-cp\fP
  75778. .sp
  75779. Copy a file or files to one or more minions
  75780. .SS Synopsis
  75781. .INDENT 0.0
  75782. .INDENT 3.5
  75783. .sp
  75784. .nf
  75785. .ft C
  75786. salt\-cp \(aq*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75787. salt\-cp \-E \(aq.*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75788. salt\-cp \-G \(aqos:Arch.*\(aq [ options ] SOURCE [SOURCE2 SOURCE3 ...] DEST
  75789. .ft P
  75790. .fi
  75791. .UNINDENT
  75792. .UNINDENT
  75793. .SS Description
  75794. .sp
  75795. salt\-cp copies files from the master to all of the Salt minions matched by the
  75796. specified target expression.
  75797. .sp
  75798. \fBNOTE:\fP
  75799. .INDENT 0.0
  75800. .INDENT 3.5
  75801. salt\-cp uses Salt\(aqs publishing mechanism. This means the privacy of the
  75802. contents of the file on the wire is completely dependent upon the transport
  75803. in use. In addition, if the master or minion is running with debug logging,
  75804. the contents of the file will be logged to disk.
  75805. .sp
  75806. In addition, this tool is less efficient than the Salt fileserver when
  75807. copying larger files. It is recommended to instead use
  75808. \fBcp.get_file\fP to copy larger files to
  75809. minions. However, this requires the file to be located within one of the
  75810. fileserver directories.
  75811. .UNINDENT
  75812. .UNINDENT
  75813. .sp
  75814. Changed in version 2016.3.7,2016.11.6,2017.7.0: Compression support added, disable with \fB\-n\fP\&. Also, if the destination
  75815. path ends in a path separator (i.e. \fB/\fP, or \fB\e\fP on Windows, the
  75816. desitination will be assumed to be a directory. Finally, recursion is now
  75817. supported, allowing for entire directories to be copied.
  75818. .sp
  75819. Changed in version 2016.11.7,2017.7.2: Reverted back to the old copy mode to preserve backward compatibility. The
  75820. new functionality added in 2016.6.6 and 2017.7.0 is now available using the
  75821. \fB\-C\fP or \fB\-\-chunked\fP CLI arguments. Note that compression, recursive
  75822. copying, and support for copying large files is only available in chunked
  75823. mode.
  75824. .SS Options
  75825. .INDENT 0.0
  75826. .TP
  75827. .B \-\-version
  75828. Print the version of Salt that is running.
  75829. .UNINDENT
  75830. .INDENT 0.0
  75831. .TP
  75832. .B \-\-versions\-report
  75833. Show program\(aqs dependencies and version number, and then exit
  75834. .UNINDENT
  75835. .INDENT 0.0
  75836. .TP
  75837. .B \-h, \-\-help
  75838. Show the help message and exit
  75839. .UNINDENT
  75840. .INDENT 0.0
  75841. .TP
  75842. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  75843. The location of the Salt configuration directory. This directory contains
  75844. the configuration files for Salt master and minions. The default location
  75845. on most systems is \fB/etc/salt\fP\&.
  75846. .UNINDENT
  75847. .INDENT 0.0
  75848. .TP
  75849. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  75850. The timeout in seconds to wait for replies from the Salt minions. The
  75851. timeout number specifies how long the command line client will wait to
  75852. query the minions and check on running jobs. Default: 5
  75853. .UNINDENT
  75854. .SS Logging Options
  75855. .sp
  75856. Logging options which override any settings defined on the configuration files.
  75857. .INDENT 0.0
  75858. .TP
  75859. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  75860. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75861. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75862. \fBwarning\fP\&.
  75863. .UNINDENT
  75864. .INDENT 0.0
  75865. .TP
  75866. .B \-\-log\-file=LOG_FILE
  75867. Log file path. Default: /var/log/salt/master\&.
  75868. .UNINDENT
  75869. .INDENT 0.0
  75870. .TP
  75871. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  75872. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  75873. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  75874. \fBwarning\fP\&.
  75875. .UNINDENT
  75876. .SS Target Selection
  75877. .sp
  75878. The default matching that Salt utilizes is shell\-style globbing around the
  75879. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  75880. .INDENT 0.0
  75881. .TP
  75882. .B \-E, \-\-pcre
  75883. The target expression will be interpreted as a PCRE regular expression
  75884. rather than a shell glob.
  75885. .UNINDENT
  75886. .INDENT 0.0
  75887. .TP
  75888. .B \-L, \-\-list
  75889. The target expression will be interpreted as a comma\-delimited list;
  75890. example: server1.foo.bar,server2.foo.bar,example7.quo.qux
  75891. .UNINDENT
  75892. .INDENT 0.0
  75893. .TP
  75894. .B \-G, \-\-grain
  75895. The target expression matches values returned by the Salt grains system on
  75896. the minions. The target expression is in the format of \(aq<grain value>:<glob
  75897. expression>\(aq; example: \(aqos:Arch*\(aq
  75898. .sp
  75899. This was changed in version 0.9.8 to accept glob expressions instead of
  75900. regular expression. To use regular expression matching with grains, use
  75901. the \-\-grain\-pcre option.
  75902. .UNINDENT
  75903. .INDENT 0.0
  75904. .TP
  75905. .B \-\-grain\-pcre
  75906. The target expression matches values returned by the Salt grains system on
  75907. the minions. The target expression is in the format of \(aq<grain value>:<
  75908. regular expression>\(aq; example: \(aqos:Arch.*\(aq
  75909. .UNINDENT
  75910. .INDENT 0.0
  75911. .TP
  75912. .B \-N, \-\-nodegroup
  75913. Use a predefined compound target defined in the Salt master configuration
  75914. file.
  75915. .UNINDENT
  75916. .INDENT 0.0
  75917. .TP
  75918. .B \-R, \-\-range
  75919. Instead of using shell globs to evaluate the target, use a range expression
  75920. to identify targets. Range expressions look like %cluster.
  75921. .sp
  75922. Using the Range option requires that a range server is set up and the
  75923. location of the range server is referenced in the master configuration
  75924. file.
  75925. .UNINDENT
  75926. .INDENT 0.0
  75927. .TP
  75928. .B \-C, \-\-chunked
  75929. Use new chunked mode to copy files. This mode supports large files, recursive
  75930. directories copying and compression.
  75931. .sp
  75932. New in version 2016.11.7,2017.7.2.
  75933. .UNINDENT
  75934. .INDENT 0.0
  75935. .TP
  75936. .B \-n, \-\-no\-compression
  75937. Disable gzip compression in chunked mode.
  75938. .sp
  75939. New in version 2016.3.7,2016.11.6,2017.7.0.
  75940. .UNINDENT
  75941. .SS See also
  75942. .sp
  75943. \fBsalt(1)\fP
  75944. \fBsalt\-master(1)\fP
  75945. \fBsalt\-minion(1)\fP
  75946. .SS salt\-extend
  75947. .SS \fBsalt\-extend\fP
  75948. .sp
  75949. A utilty to generate extensions to the Salt source\-code. This is used for :
  75950. .INDENT 0.0
  75951. .IP \(bu 2
  75952. Adding new execution modules, state modules
  75953. .IP \(bu 2
  75954. Adding unit tests to existing modules
  75955. .IP \(bu 2
  75956. Adding integration tests to existing modules
  75957. .UNINDENT
  75958. .SS Synopsis
  75959. .INDENT 0.0
  75960. .INDENT 3.5
  75961. .sp
  75962. .nf
  75963. .ft C
  75964. salt\-extend \-\-help
  75965. .ft P
  75966. .fi
  75967. .UNINDENT
  75968. .UNINDENT
  75969. .SS Description
  75970. .sp
  75971. \fBsalt\-extend\fP is a templating tool for extending SaltStack. If you\(aqre looking to add a module to
  75972. SaltStack, then the \fBsalt\-extend\fP utility can guide you through the process.
  75973. .sp
  75974. You can use Salt Extend to quickly create templated modules for adding new behaviours to some of the module subsystems within Salt.
  75975. .sp
  75976. Salt Extend takes a template directory and merges it into a SaltStack source code directory.
  75977. .sp
  75978. \fISee also\fP: Salt Extend\&.
  75979. .SS Options
  75980. .INDENT 0.0
  75981. .TP
  75982. .B \-\-extension, \-e
  75983. The extension type you want to develop, e.g. module, module_unit, state
  75984. .UNINDENT
  75985. .INDENT 0.0
  75986. .TP
  75987. .B \-\-salt\-directory, \-o
  75988. The path to the salt installation, defaults to .
  75989. .UNINDENT
  75990. .INDENT 0.0
  75991. .TP
  75992. .B \-\-name, \-n
  75993. The module name for the new module
  75994. .UNINDENT
  75995. .INDENT 0.0
  75996. .TP
  75997. .B \-\-description, \-d
  75998. A description of the new extension
  75999. .UNINDENT
  76000. .INDENT 0.0
  76001. .TP
  76002. .B \-\-no\-merge
  76003. Don\(aqt merge the new module into the Salt source directory specified by \fI\-\-salt\-directory\fP, save
  76004. to a temporary directory and print the directory path
  76005. .UNINDENT
  76006. .INDENT 0.0
  76007. .TP
  76008. .B \-\-debug
  76009. Print debug messages to stdout
  76010. .UNINDENT
  76011. .SS See also
  76012. .sp
  76013. \fBsalt\-api(1)\fP
  76014. \fBsalt\-call(1)\fP
  76015. \fBsalt\-cloud(1)\fP
  76016. \fBsalt\-cp(1)\fP
  76017. \fBsalt\-key(1)\fP
  76018. \fBsalt\-main(1)\fP
  76019. \fBsalt\-master(1)\fP
  76020. \fBsalt\-minion(1)\fP
  76021. \fBsalt\-run(1)\fP
  76022. \fBsalt\-ssh(1)\fP
  76023. \fBsalt\-syndic(1)\fP
  76024. .SS salt\-key
  76025. .SS \fBsalt\-key\fP
  76026. .SS Synopsis
  76027. .INDENT 0.0
  76028. .INDENT 3.5
  76029. .sp
  76030. .nf
  76031. .ft C
  76032. salt\-key [ options ]
  76033. .ft P
  76034. .fi
  76035. .UNINDENT
  76036. .UNINDENT
  76037. .SS Description
  76038. .sp
  76039. Salt\-key executes simple management of Salt server public keys used for
  76040. authentication.
  76041. .sp
  76042. On initial connection, a Salt minion sends its public key to the Salt
  76043. master. This key must be accepted using the \fBsalt\-key\fP command on the
  76044. Salt master.
  76045. .sp
  76046. Salt minion keys can be in one of the following states:
  76047. .INDENT 0.0
  76048. .IP \(bu 2
  76049. \fBunaccepted\fP: key is waiting to be accepted.
  76050. .IP \(bu 2
  76051. \fBaccepted\fP: key was accepted and the minion can communicate with the Salt
  76052. master.
  76053. .IP \(bu 2
  76054. \fBrejected\fP: key was rejected using the \fBsalt\-key\fP command. In
  76055. this state the minion does not receive any communication from the Salt
  76056. master.
  76057. .IP \(bu 2
  76058. \fBdenied\fP: key was rejected automatically by the Salt master.
  76059. This occurs when a minion has a duplicate ID, or when a minion was rebuilt or
  76060. had new keys generated and the previous key was not deleted from the Salt
  76061. master. In this state the minion does not receive any communication from the
  76062. Salt master.
  76063. .UNINDENT
  76064. .sp
  76065. To change the state of a minion key, use \fB\-d\fP to delete the key and then
  76066. accept or reject the key.
  76067. .SS Options
  76068. .INDENT 0.0
  76069. .TP
  76070. .B \-\-version
  76071. Print the version of Salt that is running.
  76072. .UNINDENT
  76073. .INDENT 0.0
  76074. .TP
  76075. .B \-\-versions\-report
  76076. Show program\(aqs dependencies and version number, and then exit
  76077. .UNINDENT
  76078. .INDENT 0.0
  76079. .TP
  76080. .B \-h, \-\-help
  76081. Show the help message and exit
  76082. .UNINDENT
  76083. .INDENT 0.0
  76084. .TP
  76085. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76086. The location of the Salt configuration directory. This directory contains
  76087. the configuration files for Salt master and minions. The default location
  76088. on most systems is \fB/etc/salt\fP\&.
  76089. .UNINDENT
  76090. .INDENT 0.0
  76091. .TP
  76092. .B \-u USER, \-\-user=USER
  76093. Specify user to run salt\-key
  76094. .UNINDENT
  76095. .INDENT 0.0
  76096. .TP
  76097. .B \-\-hard\-crash
  76098. Raise any original exception rather than exiting gracefully. Default is
  76099. False.
  76100. .UNINDENT
  76101. .INDENT 0.0
  76102. .TP
  76103. .B \-q, \-\-quiet
  76104. Suppress output
  76105. .UNINDENT
  76106. .INDENT 0.0
  76107. .TP
  76108. .B \-y, \-\-yes
  76109. Answer \(aqYes\(aq to all questions presented, defaults to False
  76110. .UNINDENT
  76111. .INDENT 0.0
  76112. .TP
  76113. .B \-\-rotate\-aes\-key=ROTATE_AES_KEY
  76114. Setting this to False prevents the master from refreshing the key session
  76115. when keys are deleted or rejected, this lowers the security of the key
  76116. deletion/rejection operation. Default is True.
  76117. .UNINDENT
  76118. .SS Logging Options
  76119. .sp
  76120. Logging options which override any settings defined on the configuration files.
  76121. .INDENT 0.0
  76122. .TP
  76123. .B \-\-log\-file=LOG_FILE
  76124. Log file path. Default: /var/log/salt/minion\&.
  76125. .UNINDENT
  76126. .INDENT 0.0
  76127. .TP
  76128. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76129. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76130. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76131. \fBwarning\fP\&.
  76132. .UNINDENT
  76133. .SS Output Options
  76134. .INDENT 0.0
  76135. .TP
  76136. .B \-\-out
  76137. Pass in an alternative outputter to display the return of data. This
  76138. outputter can be any of the available outputters:
  76139. .INDENT 7.0
  76140. .INDENT 3.5
  76141. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  76142. .UNINDENT
  76143. .UNINDENT
  76144. .sp
  76145. Some outputters are formatted only for data returned from specific functions.
  76146. If an outputter is used that does not support the data passed into it, then
  76147. Salt will fall back on the \fBpprint\fP outputter and display the return data
  76148. using the Python \fBpprint\fP standard library module.
  76149. .UNINDENT
  76150. .INDENT 0.0
  76151. .TP
  76152. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  76153. Print the output indented by the provided value in spaces. Negative values
  76154. disable indentation. Only applicable in outputters that support
  76155. indentation.
  76156. .UNINDENT
  76157. .INDENT 0.0
  76158. .TP
  76159. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  76160. Write the output to the specified file.
  76161. .UNINDENT
  76162. .INDENT 0.0
  76163. .TP
  76164. .B \-\-out\-file\-append, \-\-output\-file\-append
  76165. Append the output to the specified file.
  76166. .UNINDENT
  76167. .INDENT 0.0
  76168. .TP
  76169. .B \-\-no\-color
  76170. Disable all colored output
  76171. .UNINDENT
  76172. .INDENT 0.0
  76173. .TP
  76174. .B \-\-force\-color
  76175. Force colored output
  76176. .sp
  76177. \fBNOTE:\fP
  76178. .INDENT 7.0
  76179. .INDENT 3.5
  76180. When using colored output the color codes are as follows:
  76181. .sp
  76182. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  76183. changes and success and \fByellow\fP denotes a expected future change in configuration.
  76184. .UNINDENT
  76185. .UNINDENT
  76186. .UNINDENT
  76187. .INDENT 0.0
  76188. .TP
  76189. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  76190. Override the configured state_output value for minion
  76191. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  76192. \(aqfilter\(aq. Default: \(aqnone\(aq.
  76193. .UNINDENT
  76194. .INDENT 0.0
  76195. .TP
  76196. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  76197. Override the configured state_verbose value for minion
  76198. output. Set to True or False. Default: none.
  76199. .UNINDENT
  76200. .SS Actions
  76201. .INDENT 0.0
  76202. .TP
  76203. .B \-l ARG, \-\-list=ARG
  76204. List the public keys. The args \fBpre\fP, \fBun\fP, and \fBunaccepted\fP will
  76205. list unaccepted/unsigned keys. \fBacc\fP or \fBaccepted\fP will list
  76206. accepted/signed keys. \fBrej\fP or \fBrejected\fP will list rejected keys.
  76207. Finally, \fBall\fP will list all keys.
  76208. .UNINDENT
  76209. .INDENT 0.0
  76210. .TP
  76211. .B \-L, \-\-list\-all
  76212. List all public keys. (Deprecated: use \fB\-\-list all\fP)
  76213. .UNINDENT
  76214. .INDENT 0.0
  76215. .TP
  76216. .B \-a ACCEPT, \-\-accept=ACCEPT
  76217. Accept the specified public key (use \-\-include\-all to match rejected keys
  76218. in addition to pending keys). Globs are supported.
  76219. .UNINDENT
  76220. .INDENT 0.0
  76221. .TP
  76222. .B \-A, \-\-accept\-all
  76223. Accepts all pending keys.
  76224. .UNINDENT
  76225. .INDENT 0.0
  76226. .TP
  76227. .B \-r REJECT, \-\-reject=REJECT
  76228. Reject the specified public key (use \-\-include\-all to match accepted keys
  76229. in addition to pending keys). Globs are supported.
  76230. .UNINDENT
  76231. .INDENT 0.0
  76232. .TP
  76233. .B \-R, \-\-reject\-all
  76234. Rejects all pending keys.
  76235. .UNINDENT
  76236. .INDENT 0.0
  76237. .TP
  76238. .B \-\-include\-all
  76239. Include non\-pending keys when accepting/rejecting.
  76240. .UNINDENT
  76241. .INDENT 0.0
  76242. .TP
  76243. .B \-p PRINT, \-\-print=PRINT
  76244. Print the specified public key.
  76245. .UNINDENT
  76246. .INDENT 0.0
  76247. .TP
  76248. .B \-P, \-\-print\-all
  76249. Print all public keys
  76250. .UNINDENT
  76251. .INDENT 0.0
  76252. .TP
  76253. .B \-d DELETE, \-\-delete=DELETE
  76254. Delete the specified key. Globs are supported.
  76255. .UNINDENT
  76256. .INDENT 0.0
  76257. .TP
  76258. .B \-D, \-\-delete\-all
  76259. Delete all keys.
  76260. .UNINDENT
  76261. .INDENT 0.0
  76262. .TP
  76263. .B \-f FINGER, \-\-finger=FINGER
  76264. Print the specified key\(aqs fingerprint.
  76265. .UNINDENT
  76266. .INDENT 0.0
  76267. .TP
  76268. .B \-F, \-\-finger\-all
  76269. Print all keys\(aq fingerprints.
  76270. .UNINDENT
  76271. .SS Key Generation Options
  76272. .INDENT 0.0
  76273. .TP
  76274. .B \-\-gen\-keys=GEN_KEYS
  76275. Set a name to generate a keypair for use with salt
  76276. .UNINDENT
  76277. .INDENT 0.0
  76278. .TP
  76279. .B \-\-gen\-keys\-dir=GEN_KEYS_DIR
  76280. Set the directory to save the generated keypair. Only works
  76281. with \(aqgen_keys_dir\(aq option; default is the current directory.
  76282. .UNINDENT
  76283. .INDENT 0.0
  76284. .TP
  76285. .B \-\-keysize=KEYSIZE
  76286. Set the keysize for the generated key, only works with
  76287. the \(aq\-\-gen\-keys\(aq option, the key size must be 2048 or
  76288. higher, otherwise it will be rounded up to 2048. The
  76289. default is 2048.
  76290. .UNINDENT
  76291. .INDENT 0.0
  76292. .TP
  76293. .B \-\-gen\-signature
  76294. Create a signature file of the master\(aqs public\-key named
  76295. master_pubkey_signature. The signature can be sent to a minion in the
  76296. master\(aqs auth\-reply and enables the minion to verify the master\(aqs public\-key
  76297. cryptographically. This requires a new signing\-key\-pair which can be
  76298. auto\-created with the \-\-auto\-create parameter.
  76299. .UNINDENT
  76300. .INDENT 0.0
  76301. .TP
  76302. .B \-\-priv=PRIV
  76303. The private\-key file to create a signature with
  76304. .UNINDENT
  76305. .INDENT 0.0
  76306. .TP
  76307. .B \-\-signature\-path=SIGNATURE_PATH
  76308. The path where the signature file should be written
  76309. .UNINDENT
  76310. .INDENT 0.0
  76311. .TP
  76312. .B \-\-pub=PUB
  76313. The public\-key file to create a signature for
  76314. .UNINDENT
  76315. .INDENT 0.0
  76316. .TP
  76317. .B \-\-auto\-create
  76318. Auto\-create a signing key\-pair if it does not yet exist
  76319. .UNINDENT
  76320. .SS See also
  76321. .sp
  76322. \fBsalt(7)\fP
  76323. \fBsalt\-master(1)\fP
  76324. \fBsalt\-minion(1)\fP
  76325. .SS salt\-master
  76326. .SS \fBsalt\-master\fP
  76327. .sp
  76328. The Salt master daemon, used to control the Salt minions
  76329. .SS Synopsis
  76330. .INDENT 0.0
  76331. .INDENT 3.5
  76332. .sp
  76333. .nf
  76334. .ft C
  76335. salt\-master [ options ]
  76336. .ft P
  76337. .fi
  76338. .UNINDENT
  76339. .UNINDENT
  76340. .SS Description
  76341. .sp
  76342. The master daemon controls the Salt minions
  76343. .SS Options
  76344. .INDENT 0.0
  76345. .TP
  76346. .B \-\-version
  76347. Print the version of Salt that is running.
  76348. .UNINDENT
  76349. .INDENT 0.0
  76350. .TP
  76351. .B \-\-versions\-report
  76352. Show program\(aqs dependencies and version number, and then exit
  76353. .UNINDENT
  76354. .INDENT 0.0
  76355. .TP
  76356. .B \-h, \-\-help
  76357. Show the help message and exit
  76358. .UNINDENT
  76359. .INDENT 0.0
  76360. .TP
  76361. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76362. The location of the Salt configuration directory. This directory contains
  76363. the configuration files for Salt master and minions. The default location
  76364. on most systems is \fB/etc/salt\fP\&.
  76365. .UNINDENT
  76366. .INDENT 0.0
  76367. .TP
  76368. .B \-u USER, \-\-user=USER
  76369. Specify user to run salt\-master
  76370. .UNINDENT
  76371. .INDENT 0.0
  76372. .TP
  76373. .B \-d, \-\-daemon
  76374. Run salt\-master as a daemon
  76375. .UNINDENT
  76376. .INDENT 0.0
  76377. .TP
  76378. .B \-\-pid\-file PIDFILE
  76379. Specify the location of the pidfile. Default: /var/run/salt\-master\&.pid
  76380. .UNINDENT
  76381. .SS Logging Options
  76382. .sp
  76383. Logging options which override any settings defined on the configuration files.
  76384. .INDENT 0.0
  76385. .TP
  76386. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76387. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76388. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76389. \fBwarning\fP\&.
  76390. .UNINDENT
  76391. .INDENT 0.0
  76392. .TP
  76393. .B \-\-log\-file=LOG_FILE
  76394. Log file path. Default: /var/log/salt/master\&.
  76395. .UNINDENT
  76396. .INDENT 0.0
  76397. .TP
  76398. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76399. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76400. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76401. \fBwarning\fP\&.
  76402. .UNINDENT
  76403. .SS See also
  76404. .sp
  76405. \fBsalt(1)\fP
  76406. \fBsalt(7)\fP
  76407. \fBsalt\-minion(1)\fP
  76408. .SS salt\-minion
  76409. .SS \fBsalt\-minion\fP
  76410. .sp
  76411. The Salt minion daemon, receives commands from a remote Salt master.
  76412. .SS Synopsis
  76413. .INDENT 0.0
  76414. .INDENT 3.5
  76415. .sp
  76416. .nf
  76417. .ft C
  76418. salt\-minion [ options ]
  76419. .ft P
  76420. .fi
  76421. .UNINDENT
  76422. .UNINDENT
  76423. .SS Description
  76424. .sp
  76425. The Salt minion receives commands from the central Salt master and replies with
  76426. the results of said commands.
  76427. .SS Options
  76428. .INDENT 0.0
  76429. .TP
  76430. .B \-\-version
  76431. Print the version of Salt that is running.
  76432. .UNINDENT
  76433. .INDENT 0.0
  76434. .TP
  76435. .B \-\-versions\-report
  76436. Show program\(aqs dependencies and version number, and then exit
  76437. .UNINDENT
  76438. .INDENT 0.0
  76439. .TP
  76440. .B \-h, \-\-help
  76441. Show the help message and exit
  76442. .UNINDENT
  76443. .INDENT 0.0
  76444. .TP
  76445. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76446. The location of the Salt configuration directory. This directory contains
  76447. the configuration files for Salt master and minions. The default location
  76448. on most systems is \fB/etc/salt\fP\&.
  76449. .UNINDENT
  76450. .INDENT 0.0
  76451. .TP
  76452. .B \-u USER, \-\-user=USER
  76453. Specify user to run salt\-minion
  76454. .UNINDENT
  76455. .INDENT 0.0
  76456. .TP
  76457. .B \-d, \-\-daemon
  76458. Run salt\-minion as a daemon
  76459. .UNINDENT
  76460. .INDENT 0.0
  76461. .TP
  76462. .B \-\-pid\-file PIDFILE
  76463. Specify the location of the pidfile. Default: /var/run/salt\-minion\&.pid
  76464. .UNINDENT
  76465. .SS Logging Options
  76466. .sp
  76467. Logging options which override any settings defined on the configuration files.
  76468. .INDENT 0.0
  76469. .TP
  76470. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76471. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76472. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76473. \fBwarning\fP\&.
  76474. .UNINDENT
  76475. .INDENT 0.0
  76476. .TP
  76477. .B \-\-log\-file=LOG_FILE
  76478. Log file path. Default: /var/log/salt/minion\&.
  76479. .UNINDENT
  76480. .INDENT 0.0
  76481. .TP
  76482. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76483. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76484. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76485. \fBwarning\fP\&.
  76486. .UNINDENT
  76487. .SS See also
  76488. .sp
  76489. \fBsalt(1)\fP
  76490. \fBsalt(7)\fP
  76491. \fBsalt\-master(1)\fP
  76492. .SS salt\-proxy
  76493. .SS \fBsalt\-proxy\fP
  76494. .sp
  76495. Receives commands from a Salt master and proxies these commands to
  76496. devices that are unable to run a full minion.
  76497. .SS Synopsis
  76498. .INDENT 0.0
  76499. .INDENT 3.5
  76500. .sp
  76501. .nf
  76502. .ft C
  76503. salt\-proxy [ options ]
  76504. .ft P
  76505. .fi
  76506. .UNINDENT
  76507. .UNINDENT
  76508. .SS Description
  76509. .sp
  76510. The Salt proxy minion receives commands from a Salt master, transmits
  76511. appropriate commands to devices that are unable to run a minion, and replies
  76512. with the results of said commands.
  76513. .SS Options
  76514. .INDENT 0.0
  76515. .TP
  76516. .B \-\-proxyid
  76517. The minion id that this proxy will assume. This is required.
  76518. .UNINDENT
  76519. .INDENT 0.0
  76520. .TP
  76521. .B \-\-version
  76522. Print the version of Salt that is running.
  76523. .UNINDENT
  76524. .INDENT 0.0
  76525. .TP
  76526. .B \-\-versions\-report
  76527. Show program\(aqs dependencies and version number, and then exit
  76528. .UNINDENT
  76529. .INDENT 0.0
  76530. .TP
  76531. .B \-h, \-\-help
  76532. Show the help message and exit
  76533. .UNINDENT
  76534. .INDENT 0.0
  76535. .TP
  76536. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76537. The location of the Salt configuration directory. This directory
  76538. contains the configuration files for Salt master and minions.
  76539. The default location on most systems is \fB/etc/salt\fP\&.
  76540. .UNINDENT
  76541. .INDENT 0.0
  76542. .TP
  76543. .B \-u USER, \-\-user=USER
  76544. Specify user to run salt\-proxy
  76545. .UNINDENT
  76546. .INDENT 0.0
  76547. .TP
  76548. .B \-d, \-\-daemon
  76549. Run salt\-proxy as a daemon
  76550. .UNINDENT
  76551. .INDENT 0.0
  76552. .TP
  76553. .B \-\-pid\-file PIDFILE
  76554. Specify the location of the pidfile. Default: \fB/var/run/salt\-proxy\-<id>.pid\fP
  76555. .UNINDENT
  76556. .SS Logging Options
  76557. .sp
  76558. Logging options which override any settings defined on the configuration files.
  76559. .INDENT 0.0
  76560. .TP
  76561. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76562. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76563. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76564. \fBwarning\fP\&.
  76565. .UNINDENT
  76566. .INDENT 0.0
  76567. .TP
  76568. .B \-\-log\-file=LOG_FILE
  76569. Log file path. Default: /var/log/salt/minion\&.
  76570. .UNINDENT
  76571. .INDENT 0.0
  76572. .TP
  76573. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76574. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76575. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76576. \fBwarning\fP\&.
  76577. .UNINDENT
  76578. .SS See also
  76579. .sp
  76580. \fBsalt(1)\fP
  76581. \fBsalt(7)\fP
  76582. \fBsalt\-master(1)\fP
  76583. \fBsalt\-minion(1)\fP
  76584. .SS salt\-run
  76585. .SS \fBsalt\-run\fP
  76586. .sp
  76587. Execute a Salt runner
  76588. .SS Synopsis
  76589. .INDENT 0.0
  76590. .INDENT 3.5
  76591. .sp
  76592. .nf
  76593. .ft C
  76594. salt\-run RUNNER
  76595. .ft P
  76596. .fi
  76597. .UNINDENT
  76598. .UNINDENT
  76599. .SS Description
  76600. .sp
  76601. salt\-run is the frontend command for executing \fBSalt Runners\fP\&.
  76602. Salt runners are simple modules used to execute convenience functions on the
  76603. master
  76604. .SS Options
  76605. .INDENT 0.0
  76606. .TP
  76607. .B \-\-version
  76608. Print the version of Salt that is running.
  76609. .UNINDENT
  76610. .INDENT 0.0
  76611. .TP
  76612. .B \-\-versions\-report
  76613. Show program\(aqs dependencies and version number, and then exit
  76614. .UNINDENT
  76615. .INDENT 0.0
  76616. .TP
  76617. .B \-h, \-\-help
  76618. Show the help message and exit
  76619. .UNINDENT
  76620. .INDENT 0.0
  76621. .TP
  76622. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76623. The location of the Salt configuration directory. This directory contains
  76624. the configuration files for Salt master and minions. The default location
  76625. on most systems is \fB/etc/salt\fP\&.
  76626. .UNINDENT
  76627. .INDENT 0.0
  76628. .TP
  76629. .B \-t TIMEOUT, \-\-timeout=TIMEOUT
  76630. The timeout in seconds to wait for replies from the Salt minions. The
  76631. timeout number specifies how long the command line client will wait to
  76632. query the minions and check on running jobs. Default: 1
  76633. .UNINDENT
  76634. .INDENT 0.0
  76635. .TP
  76636. .B \-\-hard\-crash
  76637. Raise any original exception rather than exiting gracefully. Default is
  76638. False.
  76639. .UNINDENT
  76640. .INDENT 0.0
  76641. .TP
  76642. .B \-d, \-\-doc, \-\-documentation
  76643. Display documentation for runners, pass a module or a runner to see
  76644. documentation on only that module/runner.
  76645. .UNINDENT
  76646. .SS Logging Options
  76647. .sp
  76648. Logging options which override any settings defined on the configuration files.
  76649. .INDENT 0.0
  76650. .TP
  76651. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76652. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76653. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76654. \fBwarning\fP\&.
  76655. .UNINDENT
  76656. .INDENT 0.0
  76657. .TP
  76658. .B \-\-log\-file=LOG_FILE
  76659. Log file path. Default: /var/log/salt/master\&.
  76660. .UNINDENT
  76661. .INDENT 0.0
  76662. .TP
  76663. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76664. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76665. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76666. \fBwarning\fP\&.
  76667. .UNINDENT
  76668. .SS See also
  76669. .sp
  76670. \fBsalt(1)\fP
  76671. \fBsalt\-master(1)\fP
  76672. \fBsalt\-minion(1)\fP
  76673. .SS salt\-ssh
  76674. .SS \fBsalt\-ssh\fP
  76675. .SS Synopsis
  76676. .INDENT 0.0
  76677. .INDENT 3.5
  76678. .sp
  76679. .nf
  76680. .ft C
  76681. salt\-ssh \(aq*\(aq [ options ] sys.doc
  76682. salt\-ssh \-E \(aq.*\(aq [ options ] sys.doc cmd
  76683. .ft P
  76684. .fi
  76685. .UNINDENT
  76686. .UNINDENT
  76687. .SS Description
  76688. .sp
  76689. Salt SSH allows for salt routines to be executed using only SSH for transport
  76690. .SS Options
  76691. .INDENT 0.0
  76692. .TP
  76693. .B \-\-version
  76694. Print the version of Salt that is running.
  76695. .UNINDENT
  76696. .INDENT 0.0
  76697. .TP
  76698. .B \-\-versions\-report
  76699. Show program\(aqs dependencies and version number, and then exit
  76700. .UNINDENT
  76701. .INDENT 0.0
  76702. .TP
  76703. .B \-h, \-\-help
  76704. Show the help message and exit
  76705. .UNINDENT
  76706. .INDENT 0.0
  76707. .TP
  76708. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  76709. The location of the Salt configuration directory. This directory contains
  76710. the configuration files for Salt master and minions. The default location
  76711. on most systems is \fB/etc/salt\fP\&.
  76712. .UNINDENT
  76713. .INDENT 0.0
  76714. .TP
  76715. .B \-\-hard\-crash
  76716. Raise any original exception rather than exiting gracefully. Default: False.
  76717. .UNINDENT
  76718. .INDENT 0.0
  76719. .TP
  76720. .B \-r, \-\-raw, \-\-raw\-shell
  76721. Execute a raw shell command.
  76722. .UNINDENT
  76723. .INDENT 0.0
  76724. .TP
  76725. .B \-\-roster
  76726. Define which roster system to use, this defines if a database backend,
  76727. scanner, or custom roster system is used. Default is the flat file roster.
  76728. .UNINDENT
  76729. .INDENT 0.0
  76730. .TP
  76731. .B \-\-roster\-file
  76732. Define an alternative location for the default roster file location. The
  76733. default roster file is called \fBroster\fP and is found in the same directory
  76734. as the master config file.
  76735. .sp
  76736. New in version 2014.1.0.
  76737. .UNINDENT
  76738. .INDENT 0.0
  76739. .TP
  76740. .B \-\-refresh, \-\-refresh\-cache
  76741. Force a refresh of the master side data cache of the target\(aqs data. This
  76742. is needed if a target\(aqs grains have been changed and the auto refresh
  76743. timeframe has not been reached.
  76744. .UNINDENT
  76745. .INDENT 0.0
  76746. .TP
  76747. .B \-\-max\-procs
  76748. Set the number of concurrent minions to communicate with. This value
  76749. defines how many processes are opened up at a time to manage connections,
  76750. the more running process the faster communication should be, default
  76751. is 25.
  76752. .UNINDENT
  76753. .INDENT 0.0
  76754. .TP
  76755. .B \-\-extra\-filerefs=EXTRA_FILEREFS
  76756. Pass in extra files to include in the state tarball.
  76757. .UNINDENT
  76758. .INDENT 0.0
  76759. .TP
  76760. .B \-\-min\-extra\-modules=MIN_EXTRA_MODS
  76761. One or comma\-separated list of extra Python modulesto be included
  76762. into Minimal Salt.
  76763. .UNINDENT
  76764. .INDENT 0.0
  76765. .TP
  76766. .B \-\-thin\-extra\-modules=THIN_EXTRA_MODS
  76767. One or comma\-separated list of extra Python modulesto be included
  76768. into Thin Salt.
  76769. .UNINDENT
  76770. .INDENT 0.0
  76771. .TP
  76772. .B \-v, \-\-verbose
  76773. Turn on command verbosity, display jid.
  76774. .UNINDENT
  76775. .INDENT 0.0
  76776. .TP
  76777. .B \-s, \-\-static
  76778. Return the data from minions as a group after they all return.
  76779. .UNINDENT
  76780. .INDENT 0.0
  76781. .TP
  76782. .B \-w, \-\-wipe
  76783. Remove the deployment of the salt files when done executing.
  76784. .UNINDENT
  76785. .INDENT 0.0
  76786. .TP
  76787. .B \-W, \-\-rand\-thin\-dir
  76788. Select a random temp dir to deploy on the remote system. The dir
  76789. will be cleaned after the execution.
  76790. .UNINDENT
  76791. .INDENT 0.0
  76792. .TP
  76793. .B \-t, \-\-regen\-thin, \-\-thin
  76794. Trigger a thin tarball regeneration. This is needed if custom
  76795. grains/modules/states have been added or updated.
  76796. .UNINDENT
  76797. .INDENT 0.0
  76798. .TP
  76799. .B \-\-python2\-bin=PYTHON2_BIN
  76800. Path to a python2 binary which has salt installed.
  76801. .UNINDENT
  76802. .INDENT 0.0
  76803. .TP
  76804. .B \-\-python3\-bin=PYTHON3_BIN
  76805. Path to a python3 binary which has salt installed.
  76806. .UNINDENT
  76807. .INDENT 0.0
  76808. .TP
  76809. .B \-\-jid=JID
  76810. Pass a JID to be used instead of generating one.
  76811. .UNINDENT
  76812. .INDENT 0.0
  76813. .TP
  76814. .B \-\-pre\-flight
  76815. Run the ssh_pre_flight script defined in the roster.
  76816. By default this script will only run if the thin dir
  76817. does not exist on the target minion. This option will
  76818. force the script to run regardless of the thin dir
  76819. existing or not.
  76820. .UNINDENT
  76821. .SS Authentication Options
  76822. .INDENT 0.0
  76823. .TP
  76824. .B \-\-priv=SSH_PRIV
  76825. Specify the SSH private key file to be used for authentication.
  76826. .UNINDENT
  76827. .INDENT 0.0
  76828. .TP
  76829. .B \-\-priv\-passwd=SSH_PRIV_PASSWD
  76830. Specify the SSH private key file\(aqs passphrase if need be.
  76831. .UNINDENT
  76832. .INDENT 0.0
  76833. .TP
  76834. .B \-i, \-\-ignore\-host\-keys
  76835. By default ssh host keys are honored and connections will ask for
  76836. approval. Use this option to disable StrictHostKeyChecking.
  76837. .UNINDENT
  76838. .INDENT 0.0
  76839. .TP
  76840. .B \-\-no\-host\-keys
  76841. Fully ignores ssh host keys which by default are honored and connections
  76842. would ask for approval. Useful if the host key of a remote server has
  76843. changed and would still error with \-\-ignore\-host\-keys.
  76844. .UNINDENT
  76845. .INDENT 0.0
  76846. .TP
  76847. .B \-\-user=SSH_USER
  76848. Set the default user to attempt to use when authenticating.
  76849. .UNINDENT
  76850. .INDENT 0.0
  76851. .TP
  76852. .B \-\-passwd
  76853. Set the default password to attempt to use when authenticating.
  76854. .UNINDENT
  76855. .INDENT 0.0
  76856. .TP
  76857. .B \-\-askpass
  76858. Interactively ask for the SSH password with no echo \- avoids password
  76859. in process args and stored in history.
  76860. .UNINDENT
  76861. .INDENT 0.0
  76862. .TP
  76863. .B \-\-key\-deploy
  76864. Set this flag to attempt to deploy the authorized ssh key with all
  76865. minions. This combined with \-\-passwd can make initial deployment of keys
  76866. very fast and easy.
  76867. .UNINDENT
  76868. .INDENT 0.0
  76869. .TP
  76870. .B \-\-identities\-only
  76871. Use the only authentication identity files configured in the ssh_config
  76872. files. See IdentitiesOnly flag in man ssh_config.
  76873. .UNINDENT
  76874. .INDENT 0.0
  76875. .TP
  76876. .B \-\-sudo
  76877. Run command via sudo.
  76878. .UNINDENT
  76879. .SS Scan Roster Options
  76880. .INDENT 0.0
  76881. .TP
  76882. .B \-\-scan\-ports=SSH_SCAN_PORTS
  76883. Comma\-separated list of ports to scan in the scan roster.
  76884. .UNINDENT
  76885. .INDENT 0.0
  76886. .TP
  76887. .B \-\-scan\-timeout=SSH_SCAN_TIMEOUT
  76888. Scanning socket timeout for the scan roster.
  76889. .UNINDENT
  76890. .SS Logging Options
  76891. .sp
  76892. Logging options which override any settings defined on the configuration files.
  76893. .INDENT 0.0
  76894. .TP
  76895. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  76896. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76897. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76898. \fBwarning\fP\&.
  76899. .UNINDENT
  76900. .INDENT 0.0
  76901. .TP
  76902. .B \-\-log\-file=LOG_FILE
  76903. Log file path. Default: /var/log/salt/ssh\&.
  76904. .UNINDENT
  76905. .INDENT 0.0
  76906. .TP
  76907. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  76908. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  76909. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  76910. \fBwarning\fP\&.
  76911. .UNINDENT
  76912. .SS Target Selection
  76913. .sp
  76914. The default matching that Salt utilizes is shell\-style globbing around the
  76915. minion id. See \fI\%https://docs.python.org/2/library/fnmatch.html#module\-fnmatch\fP\&.
  76916. .INDENT 0.0
  76917. .TP
  76918. .B \-E, \-\-pcre
  76919. The target expression will be interpreted as a PCRE regular expression
  76920. rather than a shell glob.
  76921. .UNINDENT
  76922. .SS Output Options
  76923. .INDENT 0.0
  76924. .TP
  76925. .B \-\-out
  76926. Pass in an alternative outputter to display the return of data. This
  76927. outputter can be any of the available outputters:
  76928. .INDENT 7.0
  76929. .INDENT 3.5
  76930. \fBhighstate\fP, \fBjson\fP, \fBkey\fP, \fBoverstatestage\fP, \fBpprint\fP, \fBraw\fP, \fBtxt\fP, \fByaml\fP, and many others\&.
  76931. .UNINDENT
  76932. .UNINDENT
  76933. .sp
  76934. Some outputters are formatted only for data returned from specific functions.
  76935. If an outputter is used that does not support the data passed into it, then
  76936. Salt will fall back on the \fBpprint\fP outputter and display the return data
  76937. using the Python \fBpprint\fP standard library module.
  76938. .UNINDENT
  76939. .INDENT 0.0
  76940. .TP
  76941. .B \-\-out\-indent OUTPUT_INDENT, \-\-output\-indent OUTPUT_INDENT
  76942. Print the output indented by the provided value in spaces. Negative values
  76943. disable indentation. Only applicable in outputters that support
  76944. indentation.
  76945. .UNINDENT
  76946. .INDENT 0.0
  76947. .TP
  76948. .B \-\-out\-file=OUTPUT_FILE, \-\-output\-file=OUTPUT_FILE
  76949. Write the output to the specified file.
  76950. .UNINDENT
  76951. .INDENT 0.0
  76952. .TP
  76953. .B \-\-out\-file\-append, \-\-output\-file\-append
  76954. Append the output to the specified file.
  76955. .UNINDENT
  76956. .INDENT 0.0
  76957. .TP
  76958. .B \-\-no\-color
  76959. Disable all colored output
  76960. .UNINDENT
  76961. .INDENT 0.0
  76962. .TP
  76963. .B \-\-force\-color
  76964. Force colored output
  76965. .sp
  76966. \fBNOTE:\fP
  76967. .INDENT 7.0
  76968. .INDENT 3.5
  76969. When using colored output the color codes are as follows:
  76970. .sp
  76971. \fBgreen\fP denotes success, \fBred\fP denotes failure, \fBblue\fP denotes
  76972. changes and success and \fByellow\fP denotes a expected future change in configuration.
  76973. .UNINDENT
  76974. .UNINDENT
  76975. .UNINDENT
  76976. .INDENT 0.0
  76977. .TP
  76978. .B \-\-state\-output=STATE_OUTPUT, \-\-state_output=STATE_OUTPUT
  76979. Override the configured state_output value for minion
  76980. output. One of \(aqfull\(aq, \(aqterse\(aq, \(aqmixed\(aq, \(aqchanges\(aq or
  76981. \(aqfilter\(aq. Default: \(aqnone\(aq.
  76982. .UNINDENT
  76983. .INDENT 0.0
  76984. .TP
  76985. .B \-\-state\-verbose=STATE_VERBOSE, \-\-state_verbose=STATE_VERBOSE
  76986. Override the configured state_verbose value for minion
  76987. output. Set to True or False. Default: none.
  76988. .UNINDENT
  76989. .sp
  76990. \fBNOTE:\fP
  76991. .INDENT 0.0
  76992. .INDENT 3.5
  76993. If using \fB\-\-out=json\fP, you will probably want \fB\-\-static\fP as well.
  76994. Without the static option, you will get a separate JSON string per minion
  76995. which makes JSON output invalid as a whole.
  76996. This is due to using an iterative outputter. So if you want to feed it
  76997. to a JSON parser, use \fB\-\-static\fP as well.
  76998. .UNINDENT
  76999. .UNINDENT
  77000. .SS See also
  77001. .sp
  77002. \fBsalt(7)\fP
  77003. \fBsalt\-master(1)\fP
  77004. \fBsalt\-minion(1)\fP
  77005. .SS salt\-syndic
  77006. .SS \fBsalt\-syndic\fP
  77007. .sp
  77008. The Salt syndic daemon, a special minion that passes through commands from a
  77009. higher master
  77010. .SS Synopsis
  77011. .INDENT 0.0
  77012. .INDENT 3.5
  77013. .sp
  77014. .nf
  77015. .ft C
  77016. salt\-syndic [ options ]
  77017. .ft P
  77018. .fi
  77019. .UNINDENT
  77020. .UNINDENT
  77021. .SS Description
  77022. .sp
  77023. The Salt syndic daemon, a special minion that passes through commands from a
  77024. higher master.
  77025. .SS Options
  77026. .INDENT 0.0
  77027. .TP
  77028. .B \-\-version
  77029. Print the version of Salt that is running.
  77030. .UNINDENT
  77031. .INDENT 0.0
  77032. .TP
  77033. .B \-\-versions\-report
  77034. Show program\(aqs dependencies and version number, and then exit
  77035. .UNINDENT
  77036. .INDENT 0.0
  77037. .TP
  77038. .B \-h, \-\-help
  77039. Show the help message and exit
  77040. .UNINDENT
  77041. .INDENT 0.0
  77042. .TP
  77043. .B \-c CONFIG_DIR, \-\-config\-dir=CONFIG_dir
  77044. The location of the Salt configuration directory. This directory contains
  77045. the configuration files for Salt master and minions. The default location
  77046. on most systems is \fB/etc/salt\fP\&.
  77047. .UNINDENT
  77048. .INDENT 0.0
  77049. .TP
  77050. .B \-u USER, \-\-user=USER
  77051. Specify user to run salt\-syndic
  77052. .UNINDENT
  77053. .INDENT 0.0
  77054. .TP
  77055. .B \-d, \-\-daemon
  77056. Run salt\-syndic as a daemon
  77057. .UNINDENT
  77058. .INDENT 0.0
  77059. .TP
  77060. .B \-\-pid\-file PIDFILE
  77061. Specify the location of the pidfile. Default: /var/run/salt\-syndic\&.pid
  77062. .UNINDENT
  77063. .SS Logging Options
  77064. .sp
  77065. Logging options which override any settings defined on the configuration files.
  77066. .INDENT 0.0
  77067. .TP
  77068. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  77069. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77070. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77071. \fBwarning\fP\&.
  77072. .UNINDENT
  77073. .INDENT 0.0
  77074. .TP
  77075. .B \-\-log\-file=LOG_FILE
  77076. Log file path. Default: /var/log/salt/master\&.
  77077. .UNINDENT
  77078. .INDENT 0.0
  77079. .TP
  77080. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  77081. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77082. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77083. \fBwarning\fP\&.
  77084. .UNINDENT
  77085. .SS See also
  77086. .sp
  77087. \fBsalt(1)\fP
  77088. \fBsalt\-master(1)\fP
  77089. \fBsalt\-minion(1)\fP
  77090. .SS salt\-unity
  77091. .SS \fBsalt\-unity\fP
  77092. .sp
  77093. A unified invocation wrapper around other Salt CLI scripts.
  77094. .SS Synopsis
  77095. .INDENT 0.0
  77096. .INDENT 3.5
  77097. .sp
  77098. .nf
  77099. .ft C
  77100. salt\-unity salt \(aq*\(aq test.version
  77101. .ft P
  77102. .fi
  77103. .UNINDENT
  77104. .UNINDENT
  77105. .SS Description
  77106. .sp
  77107. This script takes an argument which is one of the other Salt CLI scripts and
  77108. invokes that script.
  77109. .SS Options
  77110. .SS See also
  77111. .sp
  77112. \fBsalt\-api(1)\fP
  77113. \fBsalt\-call(1)\fP
  77114. \fBsalt\-cloud(1)\fP
  77115. \fBsalt\-cp(1)\fP
  77116. \fBsalt\-key(1)\fP
  77117. \fBsalt\-main(1)\fP
  77118. \fBsalt\-master(1)\fP
  77119. \fBsalt\-minion(1)\fP
  77120. \fBsalt\-run(1)\fP
  77121. \fBsalt\-ssh(1)\fP
  77122. \fBsalt\-syndic(1)\fP
  77123. .SS spm
  77124. .SS \fBspm\fP
  77125. .sp
  77126. Salt Package Manager
  77127. .SS Synopsis
  77128. .INDENT 0.0
  77129. .INDENT 3.5
  77130. .sp
  77131. .nf
  77132. .ft C
  77133. spm <command> [<argument>]
  77134. .ft P
  77135. .fi
  77136. .UNINDENT
  77137. .UNINDENT
  77138. .SS Description
  77139. .sp
  77140. spm is the frontend command for managing Salt packages. Packages normally only
  77141. include formulas, meaning a group of SLS files that install into the
  77142. \fBfile_roots\fP on the Salt Master, but Salt modules can also be installed.
  77143. .SS Options
  77144. .INDENT 0.0
  77145. .TP
  77146. .B \-y, \-\-assume\-yes
  77147. Assume \fByes\fP instead of prompting the other whether or not to proceed
  77148. with a particular command. Default is False.
  77149. .UNINDENT
  77150. .INDENT 0.0
  77151. .TP
  77152. .B \-f, \-\-force
  77153. When presented with a course of action that spm would normally refuse to
  77154. perform, that action will be performed anyway. This is often destructive,
  77155. and should be used with caution.
  77156. .UNINDENT
  77157. .SS Logging Options
  77158. .sp
  77159. Logging options which override any settings defined on the configuration files.
  77160. .INDENT 0.0
  77161. .TP
  77162. .B \-l LOG_LEVEL, \-\-log\-level=LOG_LEVEL
  77163. Console logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77164. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77165. \fBwarning\fP\&.
  77166. .UNINDENT
  77167. .INDENT 0.0
  77168. .TP
  77169. .B \-\-log\-file=LOG_FILE
  77170. Log file path. Default: /var/log/salt/spm\&.
  77171. .UNINDENT
  77172. .INDENT 0.0
  77173. .TP
  77174. .B \-\-log\-file\-level=LOG_LEVEL_LOGFILE
  77175. Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP,
  77176. \fBdebug\fP, \fBinfo\fP, \fBwarning\fP, \fBerror\fP, \fBquiet\fP\&. Default:
  77177. \fBwarning\fP\&.
  77178. .UNINDENT
  77179. .SS Commands
  77180. .INDENT 0.0
  77181. .TP
  77182. .B update_repo
  77183. Connect to remote repositories locally configured on the system and download
  77184. their metadata.
  77185. .UNINDENT
  77186. .INDENT 0.0
  77187. .TP
  77188. .B install
  77189. Install a package from a configured SPM repository. Requires a package name.
  77190. .UNINDENT
  77191. .INDENT 0.0
  77192. .TP
  77193. .B remove
  77194. Remove an installed package from the system. Requires a package name.
  77195. .UNINDENT
  77196. .INDENT 0.0
  77197. .TP
  77198. .B info
  77199. List information about an installed package. Requires a package name.
  77200. .UNINDENT
  77201. .INDENT 0.0
  77202. .TP
  77203. .B files
  77204. List files belonging to an installed package. Requires a package name.
  77205. .UNINDENT
  77206. .INDENT 0.0
  77207. .TP
  77208. .B local
  77209. Perform one of the above options (except for remove) on a package file,
  77210. instead of on a package in a repository, or an installed package. Requires
  77211. a valid path to a local file on the system.
  77212. .UNINDENT
  77213. .INDENT 0.0
  77214. .TP
  77215. .B build
  77216. Build a package from a directory containing a FORMULA file. Requires a valid
  77217. path to a local directory on the system.
  77218. .UNINDENT
  77219. .INDENT 0.0
  77220. .TP
  77221. .B create_repo
  77222. Scan a directory for valid SPM package files and build an SPM\-METADATA file
  77223. in that directory which describes them.
  77224. .UNINDENT
  77225. .SS See also
  77226. .sp
  77227. \fBsalt(1)\fP
  77228. \fBsalt\-master(1)\fP
  77229. \fBsalt\-minion(1)\fP
  77230. .SH PILLARS
  77231. .sp
  77232. Salt includes a number of built\-in external pillars, listed at
  77233. all\-salt.pillars\&.
  77234. .sp
  77235. The below links contain documentation for the configuration options
  77236. .INDENT 0.0
  77237. .IP \(bu 2
  77238. master\-side configuration
  77239. .IP \(bu 2
  77240. minion\-side configuration
  77241. .UNINDENT
  77242. .sp
  77243. Note that some of same the configuration options from the master are present in
  77244. the minion configuration file, these are used in masterless mode.
  77245. .sp
  77246. The source for the built\-in Salt pillars can be found here:
  77247. \fI\%https://github.com/saltstack/salt/blob/master/salt/pillar\fP
  77248. .SH MASTER TOPS
  77249. .sp
  77250. Salt includes a number of built\-in subsystems to generate top file data, they
  77251. are listed at
  77252. all\-salt.tops\&.
  77253. .sp
  77254. The source for the built\-in Salt master tops can be found here:
  77255. \fI\%https://github.com/saltstack/salt/blob/master/salt/tops\fP
  77256. .SH SALT MODULE REFERENCE
  77257. .sp
  77258. This section contains a list of the Python modules that are used to extend the various subsystems within Salt.
  77259. .SS auth modules
  77260. .TS
  77261. center;
  77262. |l|l|.
  77263. _
  77264. T{
  77265. \fBauto\fP
  77266. T} T{
  77267. T}
  77268. _
  77269. T{
  77270. \fBdjango\fP
  77271. T} T{
  77272. T}
  77273. _
  77274. T{
  77275. \fBfile\fP
  77276. T} T{
  77277. T}
  77278. _
  77279. T{
  77280. \fBkeystone\fP
  77281. T} T{
  77282. T}
  77283. _
  77284. T{
  77285. \fBldap\fP
  77286. T} T{
  77287. T}
  77288. _
  77289. T{
  77290. \fBmysql\fP
  77291. T} T{
  77292. T}
  77293. _
  77294. T{
  77295. \fBpam\fP
  77296. T} T{
  77297. T}
  77298. _
  77299. T{
  77300. \fBpki\fP
  77301. T} T{
  77302. T}
  77303. _
  77304. T{
  77305. \fBrest\fP
  77306. T} T{
  77307. T}
  77308. _
  77309. T{
  77310. \fBsharedsecret\fP
  77311. T} T{
  77312. T}
  77313. _
  77314. T{
  77315. \fByubico\fP
  77316. T} T{
  77317. T}
  77318. _
  77319. .TE
  77320. .SS beacon modules
  77321. .TS
  77322. center;
  77323. |l|l|.
  77324. _
  77325. T{
  77326. \fBadb\fP
  77327. T} T{
  77328. T}
  77329. _
  77330. T{
  77331. \fBaix_account\fP
  77332. T} T{
  77333. T}
  77334. _
  77335. T{
  77336. \fBavahi_announce\fP
  77337. T} T{
  77338. T}
  77339. _
  77340. T{
  77341. \fBbonjour_announce\fP
  77342. T} T{
  77343. T}
  77344. _
  77345. T{
  77346. \fBbtmp\fP
  77347. T} T{
  77348. T}
  77349. _
  77350. T{
  77351. \fBcert_info\fP
  77352. T} T{
  77353. T}
  77354. _
  77355. T{
  77356. \fBdiskusage\fP
  77357. T} T{
  77358. T}
  77359. _
  77360. T{
  77361. \fBglxinfo\fP
  77362. T} T{
  77363. T}
  77364. _
  77365. T{
  77366. \fBhaproxy\fP
  77367. T} T{
  77368. T}
  77369. _
  77370. T{
  77371. \fBinotify\fP
  77372. T} T{
  77373. T}
  77374. _
  77375. T{
  77376. \fBjournald\fP
  77377. T} T{
  77378. T}
  77379. _
  77380. T{
  77381. \fBload\fP
  77382. T} T{
  77383. T}
  77384. _
  77385. T{
  77386. \fBlog_beacon\fP
  77387. T} T{
  77388. T}
  77389. _
  77390. T{
  77391. \fBmemusage\fP
  77392. T} T{
  77393. T}
  77394. _
  77395. T{
  77396. \fBnapalm_beacon\fP
  77397. T} T{
  77398. T}
  77399. _
  77400. T{
  77401. \fBnetwork_info\fP
  77402. T} T{
  77403. T}
  77404. _
  77405. T{
  77406. \fBnetwork_settings\fP
  77407. T} T{
  77408. T}
  77409. _
  77410. T{
  77411. \fBpkg\fP
  77412. T} T{
  77413. T}
  77414. _
  77415. T{
  77416. \fBproxy_example\fP
  77417. T} T{
  77418. T}
  77419. _
  77420. T{
  77421. \fBps\fP
  77422. T} T{
  77423. T}
  77424. _
  77425. T{
  77426. \fBsalt_proxy\fP
  77427. T} T{
  77428. T}
  77429. _
  77430. T{
  77431. \fBsensehat\fP
  77432. T} T{
  77433. T}
  77434. _
  77435. T{
  77436. \fBservice\fP
  77437. T} T{
  77438. T}
  77439. _
  77440. T{
  77441. \fBsh\fP
  77442. T} T{
  77443. T}
  77444. _
  77445. T{
  77446. \fBsmartos_imgadm\fP
  77447. T} T{
  77448. T}
  77449. _
  77450. T{
  77451. \fBsmartos_vmadm\fP
  77452. T} T{
  77453. T}
  77454. _
  77455. T{
  77456. \fBstatus\fP
  77457. T} T{
  77458. T}
  77459. _
  77460. T{
  77461. \fBtelegram_bot_msg\fP
  77462. T} T{
  77463. T}
  77464. _
  77465. T{
  77466. \fBtwilio_txt_msg\fP
  77467. T} T{
  77468. T}
  77469. _
  77470. T{
  77471. \fBwatchdog\fP
  77472. T} T{
  77473. T}
  77474. _
  77475. T{
  77476. \fBwtmp\fP
  77477. T} T{
  77478. T}
  77479. _
  77480. .TE
  77481. .SS cache modules
  77482. .TS
  77483. center;
  77484. |l|l|.
  77485. _
  77486. T{
  77487. \fBconsul\fP
  77488. T} T{
  77489. T}
  77490. _
  77491. T{
  77492. \fBetcd_cache\fP
  77493. T} T{
  77494. T}
  77495. _
  77496. T{
  77497. \fBlocalfs\fP
  77498. T} T{
  77499. T}
  77500. _
  77501. T{
  77502. \fBmysql_cache\fP
  77503. T} T{
  77504. T}
  77505. _
  77506. T{
  77507. \fBredis_cache\fP
  77508. T} T{
  77509. T}
  77510. _
  77511. .TE
  77512. .SS cloud modules
  77513. .TS
  77514. center;
  77515. |l|l|.
  77516. _
  77517. T{
  77518. \fBaliyun\fP
  77519. T} T{
  77520. T}
  77521. _
  77522. T{
  77523. \fBazurearm\fP
  77524. T} T{
  77525. T}
  77526. _
  77527. T{
  77528. \fBclc\fP
  77529. T} T{
  77530. T}
  77531. _
  77532. T{
  77533. \fBcloudstack\fP
  77534. T} T{
  77535. T}
  77536. _
  77537. T{
  77538. \fBdigitalocean\fP
  77539. T} T{
  77540. T}
  77541. _
  77542. T{
  77543. \fBdimensiondata\fP
  77544. T} T{
  77545. T}
  77546. _
  77547. T{
  77548. \fBec2\fP
  77549. T} T{
  77550. T}
  77551. _
  77552. T{
  77553. \fBgce\fP
  77554. T} T{
  77555. T}
  77556. _
  77557. T{
  77558. \fBgogrid\fP
  77559. T} T{
  77560. T}
  77561. _
  77562. T{
  77563. \fBjoyent\fP
  77564. T} T{
  77565. T}
  77566. _
  77567. T{
  77568. \fBlibvirt\fP
  77569. T} T{
  77570. T}
  77571. _
  77572. T{
  77573. \fBlinode\fP
  77574. T} T{
  77575. T}
  77576. _
  77577. T{
  77578. \fBlxc\fP
  77579. T} T{
  77580. T}
  77581. _
  77582. T{
  77583. \fBmsazure\fP
  77584. T} T{
  77585. T}
  77586. _
  77587. T{
  77588. \fBoneandone\fP
  77589. T} T{
  77590. T}
  77591. _
  77592. T{
  77593. \fBopennebula\fP
  77594. T} T{
  77595. T}
  77596. _
  77597. T{
  77598. \fBopenstack\fP
  77599. T} T{
  77600. T}
  77601. _
  77602. T{
  77603. \fBpacket\fP
  77604. T} T{
  77605. T}
  77606. _
  77607. T{
  77608. \fBparallels\fP
  77609. T} T{
  77610. T}
  77611. _
  77612. T{
  77613. \fBprofitbricks\fP
  77614. T} T{
  77615. T}
  77616. _
  77617. T{
  77618. \fBproxmox\fP
  77619. T} T{
  77620. T}
  77621. _
  77622. T{
  77623. \fBpyrax\fP
  77624. T} T{
  77625. T}
  77626. _
  77627. T{
  77628. \fBqingcloud\fP
  77629. T} T{
  77630. T}
  77631. _
  77632. T{
  77633. \fBsaltify\fP
  77634. T} T{
  77635. T}
  77636. _
  77637. T{
  77638. \fBscaleway\fP
  77639. T} T{
  77640. T}
  77641. _
  77642. T{
  77643. \fBsoftlayer\fP
  77644. T} T{
  77645. T}
  77646. _
  77647. T{
  77648. \fBsoftlayer_hw\fP
  77649. T} T{
  77650. T}
  77651. _
  77652. T{
  77653. \fBtencentcloud\fP
  77654. T} T{
  77655. T}
  77656. _
  77657. T{
  77658. \fBvagrant\fP
  77659. T} T{
  77660. T}
  77661. _
  77662. T{
  77663. \fBvirtualbox\fP
  77664. T} T{
  77665. T}
  77666. _
  77667. T{
  77668. \fBvmware\fP
  77669. T} T{
  77670. T}
  77671. _
  77672. T{
  77673. \fBvultrpy\fP
  77674. T} T{
  77675. T}
  77676. _
  77677. T{
  77678. \fBxen\fP
  77679. T} T{
  77680. T}
  77681. _
  77682. .TE
  77683. .SS engine modules
  77684. .TS
  77685. center;
  77686. |l|l|.
  77687. _
  77688. T{
  77689. \fBdocker_events\fP
  77690. T} T{
  77691. T}
  77692. _
  77693. T{
  77694. \fBfluent\fP
  77695. T} T{
  77696. T}
  77697. _
  77698. T{
  77699. \fBhttp_logstash\fP
  77700. T} T{
  77701. T}
  77702. _
  77703. T{
  77704. \fBircbot\fP
  77705. T} T{
  77706. T}
  77707. _
  77708. T{
  77709. \fBjunos_syslog\fP
  77710. T} T{
  77711. T}
  77712. _
  77713. T{
  77714. \fBlibvirt_events\fP
  77715. T} T{
  77716. T}
  77717. _
  77718. T{
  77719. \fBlogentries\fP
  77720. T} T{
  77721. T}
  77722. _
  77723. T{
  77724. \fBlogstash_engine\fP
  77725. T} T{
  77726. T}
  77727. _
  77728. T{
  77729. \fBnapalm_syslog\fP
  77730. T} T{
  77731. T}
  77732. _
  77733. T{
  77734. \fBreactor\fP
  77735. T} T{
  77736. T}
  77737. _
  77738. T{
  77739. \fBredis_sentinel\fP
  77740. T} T{
  77741. T}
  77742. _
  77743. T{
  77744. \fBscript\fP
  77745. T} T{
  77746. T}
  77747. _
  77748. T{
  77749. \fBslack\fP
  77750. T} T{
  77751. T}
  77752. _
  77753. T{
  77754. \fBsqs_events\fP
  77755. T} T{
  77756. T}
  77757. _
  77758. T{
  77759. \fBstalekey\fP
  77760. T} T{
  77761. T}
  77762. _
  77763. T{
  77764. \fI\%test\fP
  77765. T} T{
  77766. T}
  77767. _
  77768. T{
  77769. \fBthorium\fP
  77770. T} T{
  77771. T}
  77772. _
  77773. T{
  77774. \fBwebhook\fP
  77775. T} T{
  77776. T}
  77777. _
  77778. .TE
  77779. .SS executors modules
  77780. .TS
  77781. center;
  77782. |l|l|.
  77783. _
  77784. T{
  77785. \fBdirect_call\fP
  77786. T} T{
  77787. Direct call executor module
  77788. T}
  77789. _
  77790. T{
  77791. \fBdocker\fP
  77792. T} T{
  77793. Docker executor module
  77794. T}
  77795. _
  77796. T{
  77797. \fBsplay\fP
  77798. T} T{
  77799. T}
  77800. _
  77801. T{
  77802. \fBsudo\fP
  77803. T} T{
  77804. T}
  77805. _
  77806. .TE
  77807. .SS salt.executors.direct_call module
  77808. .sp
  77809. Direct call executor module
  77810. .INDENT 0.0
  77811. .TP
  77812. .B salt.executors.direct_call.execute(opts, data, func, args, kwargs)
  77813. Directly calls the given function with arguments
  77814. .UNINDENT
  77815. .SS salt.executors.docker module
  77816. .sp
  77817. Docker executor module
  77818. .sp
  77819. Used with the docker proxy minion.
  77820. .INDENT 0.0
  77821. .TP
  77822. .B salt.executors.docker.allow_missing_func(function)
  77823. Allow all calls to be passed through to docker container.
  77824. .sp
  77825. The docker call will use direct_call, which will return back if the module
  77826. was unable to be run.
  77827. .UNINDENT
  77828. .INDENT 0.0
  77829. .TP
  77830. .B salt.executors.docker.execute(opts, data, func, args, kwargs)
  77831. Directly calls the given function with arguments
  77832. .UNINDENT
  77833. .SS fileserver modules
  77834. .TS
  77835. center;
  77836. |l|l|.
  77837. _
  77838. T{
  77839. \fBazurefs\fP
  77840. T} T{
  77841. T}
  77842. _
  77843. T{
  77844. \fBgitfs\fP
  77845. T} T{
  77846. T}
  77847. _
  77848. T{
  77849. \fBhgfs\fP
  77850. T} T{
  77851. T}
  77852. _
  77853. T{
  77854. \fBminionfs\fP
  77855. T} T{
  77856. T}
  77857. _
  77858. T{
  77859. \fBroots\fP
  77860. T} T{
  77861. T}
  77862. _
  77863. T{
  77864. \fBs3fs\fP
  77865. T} T{
  77866. T}
  77867. _
  77868. T{
  77869. \fBsvnfs\fP
  77870. T} T{
  77871. T}
  77872. _
  77873. .TE
  77874. .SS grains modules
  77875. .TS
  77876. center;
  77877. |l|l|.
  77878. _
  77879. T{
  77880. \fBchronos\fP
  77881. T} T{
  77882. T}
  77883. _
  77884. T{
  77885. \fBcimc\fP
  77886. T} T{
  77887. T}
  77888. _
  77889. T{
  77890. \fBcore\fP
  77891. T} T{
  77892. T}
  77893. _
  77894. T{
  77895. \fBdisks\fP
  77896. T} T{
  77897. T}
  77898. _
  77899. T{
  77900. \fBesxi\fP
  77901. T} T{
  77902. T}
  77903. _
  77904. T{
  77905. \fBextra\fP
  77906. T} T{
  77907. T}
  77908. _
  77909. T{
  77910. \fBfibre_channel\fP
  77911. T} T{
  77912. T}
  77913. _
  77914. T{
  77915. \fBfx2\fP
  77916. T} T{
  77917. T}
  77918. _
  77919. T{
  77920. \fBiscsi\fP
  77921. T} T{
  77922. T}
  77923. _
  77924. T{
  77925. \fBjunos\fP
  77926. T} T{
  77927. Grains for junos.
  77928. T}
  77929. _
  77930. T{
  77931. \fBmarathon\fP
  77932. T} T{
  77933. T}
  77934. _
  77935. T{
  77936. \fBmdadm\fP
  77937. T} T{
  77938. T}
  77939. _
  77940. T{
  77941. \fBmdata\fP
  77942. T} T{
  77943. T}
  77944. _
  77945. T{
  77946. \fBmetadata\fP
  77947. T} T{
  77948. T}
  77949. _
  77950. T{
  77951. \fBminion_process\fP
  77952. T} T{
  77953. T}
  77954. _
  77955. T{
  77956. \fBnapalm\fP
  77957. T} T{
  77958. T}
  77959. _
  77960. T{
  77961. \fBnvme\fP
  77962. T} T{
  77963. T}
  77964. _
  77965. T{
  77966. \fBnxos\fP
  77967. T} T{
  77968. T}
  77969. _
  77970. T{
  77971. \fBopts\fP
  77972. T} T{
  77973. Simple grain to merge the opts into the grains directly if the grain_opts configuration value is set
  77974. T}
  77975. _
  77976. T{
  77977. \fBpanos\fP
  77978. T} T{
  77979. T}
  77980. _
  77981. T{
  77982. \fBpending_reboot\fP
  77983. T} T{
  77984. T}
  77985. _
  77986. T{
  77987. \fBphilips_hue\fP
  77988. T} T{
  77989. Static grains for the Philips HUE lamps
  77990. T}
  77991. _
  77992. T{
  77993. \fBrest_sample\fP
  77994. T} T{
  77995. T}
  77996. _
  77997. T{
  77998. \fBsmartos\fP
  77999. T} T{
  78000. T}
  78001. _
  78002. T{
  78003. \fBssh_sample\fP
  78004. T} T{
  78005. T}
  78006. _
  78007. T{
  78008. \fBzfs\fP
  78009. T} T{
  78010. T}
  78011. _
  78012. .TE
  78013. .SS salt.grains.junos
  78014. .sp
  78015. Grains for junos.
  78016. NOTE this is a little complicated\-\-junos can only be accessed
  78017. via salt\-proxy\-minion.Thus, some grains make sense to get them
  78018. from the minion (PYTHONPATH), but others don\(aqt (ip_interfaces)
  78019. .INDENT 0.0
  78020. .TP
  78021. .B salt.grains.junos.defaults()
  78022. .UNINDENT
  78023. .INDENT 0.0
  78024. .TP
  78025. .B salt.grains.junos.facts(proxy=None)
  78026. .UNINDENT
  78027. .INDENT 0.0
  78028. .TP
  78029. .B salt.grains.junos.os_family()
  78030. .UNINDENT
  78031. .SS salt.grains.opts
  78032. .sp
  78033. Simple grain to merge the opts into the grains directly if the grain_opts
  78034. configuration value is set
  78035. .INDENT 0.0
  78036. .TP
  78037. .B salt.grains.opts.opts()
  78038. Return the minion configuration settings
  78039. .UNINDENT
  78040. .SS salt.grains.philips_hue
  78041. .sp
  78042. Static grains for the Philips HUE lamps
  78043. .sp
  78044. New in version 2015.8.3.
  78045. .INDENT 0.0
  78046. .TP
  78047. .B salt.grains.philips_hue.kernel()
  78048. .UNINDENT
  78049. .INDENT 0.0
  78050. .TP
  78051. .B salt.grains.philips_hue.os()
  78052. .UNINDENT
  78053. .INDENT 0.0
  78054. .TP
  78055. .B salt.grains.philips_hue.os_family()
  78056. .UNINDENT
  78057. .INDENT 0.0
  78058. .TP
  78059. .B salt.grains.philips_hue.product()
  78060. .UNINDENT
  78061. .INDENT 0.0
  78062. .TP
  78063. .B salt.grains.philips_hue.vendor()
  78064. .UNINDENT
  78065. .SS execution modules
  78066. .INDENT 0.0
  78067. .INDENT 3.5
  78068. .IP "Virtual modules"
  78069. .SS salt.modules.group
  78070. .sp
  78071. \fBgroup\fP is a virtual module that is fulfilled by one of the following
  78072. modules:
  78073. .TS
  78074. center;
  78075. |l|l|.
  78076. _
  78077. T{
  78078. Execution Module
  78079. T} T{
  78080. Used for
  78081. T}
  78082. _
  78083. T{
  78084. \fBgroupadd\fP
  78085. T} T{
  78086. Linux, NetBSD, and OpenBSD systems using
  78087. \fBgroupadd(8)\fP, \fBgroupdel(8)\fP, and
  78088. \fBgroupmod(8)\fP
  78089. T}
  78090. _
  78091. T{
  78092. \fBpw_group\fP
  78093. T} T{
  78094. FreeBSD\-based OSes using \fBpw(8)\fP
  78095. T}
  78096. _
  78097. T{
  78098. \fBsolaris_group\fP
  78099. T} T{
  78100. Solaris\-based OSes using
  78101. \fBgroupadd(1M)\fP, \fBgroupdel(1M)\fP, and
  78102. \fBgroupmod(1M)\fP
  78103. T}
  78104. _
  78105. T{
  78106. \fBwin_groupadd\fP
  78107. T} T{
  78108. Windows
  78109. T}
  78110. _
  78111. .TE
  78112. .SS salt.modules.kernelpkg
  78113. .sp
  78114. \fBkernelpkg\fP is a virtual module that is fulfilled by one of the following modules:
  78115. .TS
  78116. center;
  78117. |l|l|.
  78118. _
  78119. T{
  78120. Execution Module
  78121. T} T{
  78122. Used for
  78123. T}
  78124. _
  78125. T{
  78126. \fBkernelpkg_linux_apt\fP
  78127. T} T{
  78128. Debian/Ubuntu\-based distros which use
  78129. \fBapt\-get\fP for package management
  78130. T}
  78131. _
  78132. T{
  78133. \fBkernelpkg_linux_yum\fP
  78134. T} T{
  78135. RedHat\-based distros and derivatives
  78136. using \fByum\fP or \fBdnf\fP
  78137. T}
  78138. _
  78139. .TE
  78140. .SS salt.modules.pkg
  78141. .sp
  78142. \fBpkg\fP is a virtual module that is fulfilled by one of the following modules:
  78143. .TS
  78144. center;
  78145. |l|l|.
  78146. _
  78147. T{
  78148. Execution Module
  78149. T} T{
  78150. Used for
  78151. T}
  78152. _
  78153. T{
  78154. \fBaixpkg\fP
  78155. T} T{
  78156. AIX OS using \fBinstallp\fP and \fBrpm\fP
  78157. T}
  78158. _
  78159. T{
  78160. \fBaptpkg\fP
  78161. T} T{
  78162. Debian/Ubuntu\-based distros which use
  78163. \fBapt\-get(8)\fP for package management
  78164. T}
  78165. _
  78166. T{
  78167. \fBmac_brew_pkg\fP
  78168. T} T{
  78169. Mac OS software management using
  78170. \fI\%Homebrew\fP
  78171. T}
  78172. _
  78173. T{
  78174. \fBebuildpkg\fP
  78175. T} T{
  78176. Gentoo\-based systems (utilizes the
  78177. \fBportage\fP python module as well as
  78178. \fBemerge(1)\fP)
  78179. T}
  78180. _
  78181. T{
  78182. \fBfreebsdpkg\fP
  78183. T} T{
  78184. FreeBSD\-based OSes using \fBpkg_add(1)\fP
  78185. T}
  78186. _
  78187. T{
  78188. \fBopenbsdpkg\fP
  78189. T} T{
  78190. OpenBSD\-based OSes using \fBpkg_add(1)\fP
  78191. T}
  78192. _
  78193. T{
  78194. \fBpacmanpkg\fP
  78195. T} T{
  78196. Arch Linux\-based distros using
  78197. \fBpacman(8)\fP
  78198. T}
  78199. _
  78200. T{
  78201. \fBpkgin\fP
  78202. T} T{
  78203. NetBSD\-based OSes using \fBpkgin(1)\fP
  78204. T}
  78205. _
  78206. T{
  78207. \fBpkgng\fP
  78208. T} T{
  78209. FreeBSD\-based OSes using \fBpkg(8)\fP
  78210. T}
  78211. _
  78212. T{
  78213. \fBpkgutil\fP
  78214. T} T{
  78215. Solaris\-based OSes using \fI\%OpenCSW\fP\(aqs
  78216. \fBpkgutil(1)\fP
  78217. T}
  78218. _
  78219. T{
  78220. \fBsolarispkg\fP
  78221. T} T{
  78222. Solaris\-based OSes using \fBpkgadd(1M)\fP
  78223. T}
  78224. _
  78225. T{
  78226. \fBsolarisipspkg\fP
  78227. T} T{
  78228. Solaris\-based OSes using IPS \fBpkg(1)\fP
  78229. T}
  78230. _
  78231. T{
  78232. \fBwin_pkg\fP
  78233. T} T{
  78234. Salt\(aqs Windows Package Manager
  78235. T}
  78236. _
  78237. T{
  78238. \fByumpkg\fP
  78239. T} T{
  78240. RedHat\-based distros and derivatives
  78241. using \fByum(8)\fP or \fBdnf(8)\fP
  78242. T}
  78243. _
  78244. T{
  78245. \fBzypperpkg\fP
  78246. T} T{
  78247. SUSE\-based distros using \fBzypper(8)\fP
  78248. T}
  78249. _
  78250. .TE
  78251. .SS salt.modules.service
  78252. .sp
  78253. \fBservice\fP is a virtual module that is fulfilled by one of the following
  78254. modules:
  78255. .TS
  78256. center;
  78257. |l|l|.
  78258. _
  78259. T{
  78260. Execution Module
  78261. T} T{
  78262. Used for
  78263. T}
  78264. _
  78265. T{
  78266. \fBdebian_service\fP
  78267. T} T{
  78268. Debian Wheezy and earlier
  78269. T}
  78270. _
  78271. T{
  78272. \fBfreebsdservice\fP
  78273. T} T{
  78274. FreeBSD\-based OSes using \fBservice(8)\fP
  78275. T}
  78276. _
  78277. T{
  78278. \fBgentoo_service\fP
  78279. T} T{
  78280. Gentoo Linux using \fBsysvinit\fP and
  78281. \fBrc\-update(8)\fP
  78282. T}
  78283. _
  78284. T{
  78285. \fBmac_service\fP
  78286. T} T{
  78287. Mac OS hosts using \fBlaunchctl(1)\fP
  78288. T}
  78289. _
  78290. T{
  78291. \fBnetbsdservice\fP
  78292. T} T{
  78293. NetBSD\-based OSes
  78294. T}
  78295. _
  78296. T{
  78297. \fBopenbsdservice\fP
  78298. T} T{
  78299. OpenBSD\-based OSes
  78300. T}
  78301. _
  78302. T{
  78303. \fBrh_service\fP
  78304. T} T{
  78305. RedHat\-based distros and derivatives
  78306. using \fBservice(8)\fP and
  78307. \fBchkconfig(8)\fP\&. Supports both pure
  78308. sysvinit and mixed sysvinit/upstart
  78309. systems.
  78310. T}
  78311. _
  78312. T{
  78313. \fI\%service\fP
  78314. T} T{
  78315. Fallback which simply wraps sysvinit
  78316. scripts
  78317. T}
  78318. _
  78319. T{
  78320. \fBsmf_service\fP
  78321. T} T{
  78322. Solaris\-based OSes which use SMF
  78323. T}
  78324. _
  78325. T{
  78326. \fBsystemd_service\fP
  78327. T} T{
  78328. Linux distros which use systemd
  78329. T}
  78330. _
  78331. T{
  78332. \fBupstart_service\fP
  78333. T} T{
  78334. Ubuntu\-based distros using upstart
  78335. T}
  78336. _
  78337. T{
  78338. \fBwin_service\fP
  78339. T} T{
  78340. Windows
  78341. T}
  78342. _
  78343. .TE
  78344. .SS salt.modules.shadow
  78345. .sp
  78346. \fBshadow\fP is a virtual module that is fulfilled by one of the following
  78347. modules:
  78348. .TS
  78349. center;
  78350. |l|l|.
  78351. _
  78352. T{
  78353. Execution Module
  78354. T} T{
  78355. Used for
  78356. T}
  78357. _
  78358. T{
  78359. \fBaix_shadow\fP
  78360. T} T{
  78361. AIX
  78362. T}
  78363. _
  78364. T{
  78365. \fBlinux_shadow\fP
  78366. T} T{
  78367. Linux
  78368. T}
  78369. _
  78370. T{
  78371. \fBbsd_shadow\fP
  78372. T} T{
  78373. FreeBSD, OpenBSD, NetBSD
  78374. T}
  78375. _
  78376. T{
  78377. \fBsolaris_shadow\fP
  78378. T} T{
  78379. Solaris\-based OSes
  78380. T}
  78381. _
  78382. T{
  78383. \fBwin_shadow\fP
  78384. T} T{
  78385. Windows
  78386. T}
  78387. _
  78388. .TE
  78389. .SS salt.modules.sysctl
  78390. .sp
  78391. \fBsysctl\fP is a virtual module that is fulfilled by one of the following modules:
  78392. .TS
  78393. center;
  78394. |l|l|.
  78395. _
  78396. T{
  78397. Execution Module
  78398. T} T{
  78399. Used for
  78400. T}
  78401. _
  78402. T{
  78403. \fBfreebsd_sysctl\fP
  78404. T} T{
  78405. FreeBSD
  78406. T}
  78407. _
  78408. T{
  78409. \fBlinux_sysctl\fP
  78410. T} T{
  78411. Linux
  78412. T}
  78413. _
  78414. T{
  78415. \fBmac_sysctl\fP
  78416. T} T{
  78417. macOS
  78418. T}
  78419. _
  78420. T{
  78421. \fBnetbsd_sysctl\fP
  78422. T} T{
  78423. NetBSD
  78424. T}
  78425. _
  78426. T{
  78427. \fBopenbsd_sysctl\fP
  78428. T} T{
  78429. OpenBSD
  78430. T}
  78431. _
  78432. .TE
  78433. .SS salt.modules.user
  78434. .sp
  78435. \fBuser\fP is a virtual module that is fulfilled by one of the following modules:
  78436. .TS
  78437. center;
  78438. |l|l|.
  78439. _
  78440. T{
  78441. Execution Module
  78442. T} T{
  78443. Used for
  78444. T}
  78445. _
  78446. T{
  78447. \fBuseradd\fP
  78448. T} T{
  78449. Linux, NetBSD, and OpenBSD systems using
  78450. \fBuseradd(8)\fP, \fBuserdel(8)\fP, and
  78451. \fBusermod(8)\fP
  78452. T}
  78453. _
  78454. T{
  78455. \fBpw_user\fP
  78456. T} T{
  78457. FreeBSD\-based OSes using \fBpw(8)\fP
  78458. T}
  78459. _
  78460. T{
  78461. \fBsolaris_user\fP
  78462. T} T{
  78463. Solaris\-based OSes using
  78464. \fBuseradd(1M)\fP, \fBuserdel(1M)\fP, and
  78465. \fBusermod(1M)\fP
  78466. T}
  78467. _
  78468. T{
  78469. \fBmac_user\fP
  78470. T} T{
  78471. MacOS
  78472. T}
  78473. _
  78474. T{
  78475. \fBwin_useradd\fP
  78476. T} T{
  78477. Windows
  78478. T}
  78479. _
  78480. .TE
  78481. .UNINDENT
  78482. .UNINDENT
  78483. .TS
  78484. center;
  78485. |l|l|.
  78486. _
  78487. T{
  78488. \fBacme\fP
  78489. T} T{
  78490. T}
  78491. _
  78492. T{
  78493. \fBaix_group\fP
  78494. T} T{
  78495. Manage groups on Solaris
  78496. T}
  78497. _
  78498. T{
  78499. \fBaix_shadow\fP
  78500. T} T{
  78501. Manage account locks on AIX systems
  78502. T}
  78503. _
  78504. T{
  78505. \fBaixpkg\fP
  78506. T} T{
  78507. T}
  78508. _
  78509. T{
  78510. \fBaliases\fP
  78511. T} T{
  78512. T}
  78513. _
  78514. T{
  78515. \fBalternatives\fP
  78516. T} T{
  78517. T}
  78518. _
  78519. T{
  78520. \fBansiblegate\fP
  78521. T} T{
  78522. T}
  78523. _
  78524. T{
  78525. \fBapache\fP
  78526. T} T{
  78527. T}
  78528. _
  78529. T{
  78530. \fBapcups\fP
  78531. T} T{
  78532. T}
  78533. _
  78534. T{
  78535. \fBapf\fP
  78536. T} T{
  78537. T}
  78538. _
  78539. T{
  78540. \fBapkpkg\fP
  78541. T} T{
  78542. T}
  78543. _
  78544. T{
  78545. \fBaptly\fP
  78546. T} T{
  78547. T}
  78548. _
  78549. T{
  78550. \fBaptpkg\fP
  78551. T} T{
  78552. T}
  78553. _
  78554. T{
  78555. \fBarchive\fP
  78556. T} T{
  78557. T}
  78558. _
  78559. T{
  78560. \fBarista_pyeapi\fP
  78561. T} T{
  78562. T}
  78563. _
  78564. T{
  78565. \fBartifactory\fP
  78566. T} T{
  78567. T}
  78568. _
  78569. T{
  78570. \fBat\fP
  78571. T} T{
  78572. T}
  78573. _
  78574. T{
  78575. \fBat_solaris\fP
  78576. T} T{
  78577. T}
  78578. _
  78579. T{
  78580. \fBaugeas_cfg\fP
  78581. T} T{
  78582. T}
  78583. _
  78584. T{
  78585. \fBaws_sqs\fP
  78586. T} T{
  78587. T}
  78588. _
  78589. T{
  78590. \fBazurearm_compute\fP
  78591. T} T{
  78592. Azure (ARM) Compute Execution Module
  78593. T}
  78594. _
  78595. T{
  78596. \fBazurearm_dns\fP
  78597. T} T{
  78598. Azure (ARM) DNS Execution Module
  78599. T}
  78600. _
  78601. T{
  78602. \fBazurearm_network\fP
  78603. T} T{
  78604. Azure (ARM) Network Execution Module
  78605. T}
  78606. _
  78607. T{
  78608. \fBazurearm_resource\fP
  78609. T} T{
  78610. T}
  78611. _
  78612. T{
  78613. \fBbamboohr\fP
  78614. T} T{
  78615. T}
  78616. _
  78617. T{
  78618. \fBbaredoc\fP
  78619. T} T{
  78620. T}
  78621. _
  78622. T{
  78623. \fBbcache\fP
  78624. T} T{
  78625. T}
  78626. _
  78627. T{
  78628. \fBbeacons\fP
  78629. T} T{
  78630. T}
  78631. _
  78632. T{
  78633. \fBbigip\fP
  78634. T} T{
  78635. T}
  78636. _
  78637. T{
  78638. \fBbluez_bluetooth\fP
  78639. T} T{
  78640. T}
  78641. _
  78642. T{
  78643. \fBboto3_elasticache\fP
  78644. T} T{
  78645. T}
  78646. _
  78647. T{
  78648. \fBboto3_elasticsearch\fP
  78649. T} T{
  78650. T}
  78651. _
  78652. T{
  78653. \fBboto3_route53\fP
  78654. T} T{
  78655. T}
  78656. _
  78657. T{
  78658. \fBboto3_sns\fP
  78659. T} T{
  78660. Connection module for Amazon SNS
  78661. T}
  78662. _
  78663. T{
  78664. \fBboto_apigateway\fP
  78665. T} T{
  78666. T}
  78667. _
  78668. T{
  78669. \fBboto_asg\fP
  78670. T} T{
  78671. T}
  78672. _
  78673. T{
  78674. \fBboto_cfn\fP
  78675. T} T{
  78676. Connection module for Amazon Cloud Formation
  78677. T}
  78678. _
  78679. T{
  78680. \fBboto_cloudfront\fP
  78681. T} T{
  78682. T}
  78683. _
  78684. T{
  78685. \fBboto_cloudtrail\fP
  78686. T} T{
  78687. T}
  78688. _
  78689. T{
  78690. \fBboto_cloudwatch\fP
  78691. T} T{
  78692. T}
  78693. _
  78694. T{
  78695. \fBboto_cloudwatch_event\fP
  78696. T} T{
  78697. T}
  78698. _
  78699. T{
  78700. \fBboto_cognitoidentity\fP
  78701. T} T{
  78702. T}
  78703. _
  78704. T{
  78705. \fBboto_datapipeline\fP
  78706. T} T{
  78707. Connection module for Amazon Data Pipeline
  78708. T}
  78709. _
  78710. T{
  78711. \fBboto_dynamodb\fP
  78712. T} T{
  78713. Connection module for Amazon DynamoDB
  78714. T}
  78715. _
  78716. T{
  78717. \fBboto_ec2\fP
  78718. T} T{
  78719. T}
  78720. _
  78721. T{
  78722. \fBboto_efs\fP
  78723. T} T{
  78724. Connection module for Amazon EFS
  78725. T}
  78726. _
  78727. T{
  78728. \fBboto_elasticache\fP
  78729. T} T{
  78730. T}
  78731. _
  78732. T{
  78733. \fBboto_elasticsearch_domain\fP
  78734. T} T{
  78735. T}
  78736. _
  78737. T{
  78738. \fBboto_elb\fP
  78739. T} T{
  78740. T}
  78741. _
  78742. T{
  78743. \fBboto_elbv2\fP
  78744. T} T{
  78745. Connection module for Amazon ALB
  78746. T}
  78747. _
  78748. T{
  78749. \fBboto_iam\fP
  78750. T} T{
  78751. T}
  78752. _
  78753. T{
  78754. \fBboto_iot\fP
  78755. T} T{
  78756. T}
  78757. _
  78758. T{
  78759. \fBboto_kinesis\fP
  78760. T} T{
  78761. Connection module for Amazon Kinesis
  78762. T}
  78763. _
  78764. T{
  78765. \fBboto_kms\fP
  78766. T} T{
  78767. T}
  78768. _
  78769. T{
  78770. \fBboto_lambda\fP
  78771. T} T{
  78772. T}
  78773. _
  78774. T{
  78775. \fBboto_rds\fP
  78776. T} T{
  78777. T}
  78778. _
  78779. T{
  78780. \fBboto_route53\fP
  78781. T} T{
  78782. T}
  78783. _
  78784. T{
  78785. \fBboto_s3\fP
  78786. T} T{
  78787. Connection module for Amazon S3 using boto3
  78788. T}
  78789. _
  78790. T{
  78791. \fBboto_s3_bucket\fP
  78792. T} T{
  78793. T}
  78794. _
  78795. T{
  78796. \fBboto_secgroup\fP
  78797. T} T{
  78798. T}
  78799. _
  78800. T{
  78801. \fBboto_sns\fP
  78802. T} T{
  78803. Connection module for Amazon SNS
  78804. T}
  78805. _
  78806. T{
  78807. \fBboto_sqs\fP
  78808. T} T{
  78809. T}
  78810. _
  78811. T{
  78812. \fBboto_ssm\fP
  78813. T} T{
  78814. T}
  78815. _
  78816. T{
  78817. \fBboto_vpc\fP
  78818. T} T{
  78819. T}
  78820. _
  78821. T{
  78822. \fBbower\fP
  78823. T} T{
  78824. T}
  78825. _
  78826. T{
  78827. \fBbridge\fP
  78828. T} T{
  78829. T}
  78830. _
  78831. T{
  78832. \fBbsd_shadow\fP
  78833. T} T{
  78834. T}
  78835. _
  78836. T{
  78837. \fBbtrfs\fP
  78838. T} T{
  78839. T}
  78840. _
  78841. T{
  78842. \fBcabal\fP
  78843. T} T{
  78844. T}
  78845. _
  78846. T{
  78847. \fBcapirca_acl\fP
  78848. T} T{
  78849. T}
  78850. _
  78851. T{
  78852. \fBcassandra\fP
  78853. T} T{
  78854. T}
  78855. _
  78856. T{
  78857. \fBcassandra_cql\fP
  78858. T} T{
  78859. T}
  78860. _
  78861. T{
  78862. \fBcelery\fP
  78863. T} T{
  78864. Support for scheduling celery tasks.
  78865. T}
  78866. _
  78867. T{
  78868. \fBceph\fP
  78869. T} T{
  78870. Module to provide ceph control with salt.
  78871. T}
  78872. _
  78873. T{
  78874. \fBchassis\fP
  78875. T} T{
  78876. T}
  78877. _
  78878. T{
  78879. \fBchef\fP
  78880. T} T{
  78881. T}
  78882. _
  78883. T{
  78884. \fBchocolatey\fP
  78885. T} T{
  78886. T}
  78887. _
  78888. T{
  78889. \fBchronos\fP
  78890. T} T{
  78891. T}
  78892. _
  78893. T{
  78894. \fBchroot\fP
  78895. T} T{
  78896. T}
  78897. _
  78898. T{
  78899. \fBcimc\fP
  78900. T} T{
  78901. T}
  78902. _
  78903. T{
  78904. \fBciscoconfparse_mod\fP
  78905. T} T{
  78906. Execution module for \fI\%ciscoconfparse\fP
  78907. T}
  78908. _
  78909. T{
  78910. \fBcisconso\fP
  78911. T} T{
  78912. T}
  78913. _
  78914. T{
  78915. \fBcloud\fP
  78916. T} T{
  78917. T}
  78918. _
  78919. T{
  78920. \fBcmdmod\fP
  78921. T} T{
  78922. T}
  78923. _
  78924. T{
  78925. \fBcomposer\fP
  78926. T} T{
  78927. T}
  78928. _
  78929. T{
  78930. \fBconfig\fP
  78931. T} T{
  78932. T}
  78933. _
  78934. T{
  78935. \fBconsul\fP
  78936. T} T{
  78937. T}
  78938. _
  78939. T{
  78940. \fBcontainer_resource\fP
  78941. T} T{
  78942. T}
  78943. _
  78944. T{
  78945. \fBcp\fP
  78946. T} T{
  78947. T}
  78948. _
  78949. T{
  78950. \fBcpan\fP
  78951. T} T{
  78952. T}
  78953. _
  78954. T{
  78955. \fBcron\fP
  78956. T} T{
  78957. T}
  78958. _
  78959. T{
  78960. \fBcryptdev\fP
  78961. T} T{
  78962. T}
  78963. _
  78964. T{
  78965. \fBcsf\fP
  78966. T} T{
  78967. T}
  78968. _
  78969. T{
  78970. \fBcyg\fP
  78971. T} T{
  78972. T}
  78973. _
  78974. T{
  78975. \fBdaemontools\fP
  78976. T} T{
  78977. T}
  78978. _
  78979. T{
  78980. \fBdata\fP
  78981. T} T{
  78982. T}
  78983. _
  78984. T{
  78985. \fBdatadog_api\fP
  78986. T} T{
  78987. An execution module that interacts with the Datadog API
  78988. T}
  78989. _
  78990. T{
  78991. \fBddns\fP
  78992. T} T{
  78993. T}
  78994. _
  78995. T{
  78996. \fBdeb_apache\fP
  78997. T} T{
  78998. T}
  78999. _
  79000. T{
  79001. \fBdeb_postgres\fP
  79002. T} T{
  79003. T}
  79004. _
  79005. T{
  79006. \fBdebconfmod\fP
  79007. T} T{
  79008. T}
  79009. _
  79010. T{
  79011. \fBdebian_ip\fP
  79012. T} T{
  79013. T}
  79014. _
  79015. T{
  79016. \fBdebian_service\fP
  79017. T} T{
  79018. T}
  79019. _
  79020. T{
  79021. \fBdebuild_pkgbuild\fP
  79022. T} T{
  79023. T}
  79024. _
  79025. T{
  79026. \fBdefaults\fP
  79027. T} T{
  79028. T}
  79029. _
  79030. T{
  79031. \fBdevinfo\fP
  79032. T} T{
  79033. .INDENT 0.0
  79034. .TP
  79035. .B maintainer
  79036. Alberto Planas <\fI\%aplanas@suse.com\fP>
  79037. .UNINDENT
  79038. T}
  79039. _
  79040. T{
  79041. \fBdevmap\fP
  79042. T} T{
  79043. Device\-Mapper module
  79044. T}
  79045. _
  79046. T{
  79047. \fBdig\fP
  79048. T} T{
  79049. T}
  79050. _
  79051. T{
  79052. \fBdisk\fP
  79053. T} T{
  79054. T}
  79055. _
  79056. T{
  79057. \fBdjangomod\fP
  79058. T} T{
  79059. T}
  79060. _
  79061. T{
  79062. \fBdnsmasq\fP
  79063. T} T{
  79064. T}
  79065. _
  79066. T{
  79067. \fBdnsutil\fP
  79068. T} T{
  79069. T}
  79070. _
  79071. T{
  79072. \fBdockercompose\fP
  79073. T} T{
  79074. T}
  79075. _
  79076. T{
  79077. \fBdockermod\fP
  79078. T} T{
  79079. T}
  79080. _
  79081. T{
  79082. \fBdpkg_lowpkg\fP
  79083. T} T{
  79084. T}
  79085. _
  79086. T{
  79087. \fBdrac\fP
  79088. T} T{
  79089. T}
  79090. _
  79091. T{
  79092. \fBdracr\fP
  79093. T} T{
  79094. T}
  79095. _
  79096. T{
  79097. \fBdrbd\fP
  79098. T} T{
  79099. DRBD administration module
  79100. T}
  79101. _
  79102. T{
  79103. \fBdummyproxy_pkg\fP
  79104. T} T{
  79105. T}
  79106. _
  79107. T{
  79108. \fBdummyproxy_service\fP
  79109. T} T{
  79110. T}
  79111. _
  79112. T{
  79113. \fBebuildpkg\fP
  79114. T} T{
  79115. T}
  79116. _
  79117. T{
  79118. \fBeix\fP
  79119. T} T{
  79120. T}
  79121. _
  79122. T{
  79123. \fBelasticsearch\fP
  79124. T} T{
  79125. Elasticsearch \- A distributed RESTful search and analytics server
  79126. T}
  79127. _
  79128. T{
  79129. \fBenviron\fP
  79130. T} T{
  79131. T}
  79132. _
  79133. T{
  79134. \fBeselect\fP
  79135. T} T{
  79136. T}
  79137. _
  79138. T{
  79139. \fBesxcluster\fP
  79140. T} T{
  79141. T}
  79142. _
  79143. T{
  79144. \fBesxdatacenter\fP
  79145. T} T{
  79146. T}
  79147. _
  79148. T{
  79149. \fBesxi\fP
  79150. T} T{
  79151. T}
  79152. _
  79153. T{
  79154. \fBesxvm\fP
  79155. T} T{
  79156. T}
  79157. _
  79158. T{
  79159. \fBetcd_mod\fP
  79160. T} T{
  79161. Execution module to work with etcd
  79162. T}
  79163. _
  79164. T{
  79165. \fBethtool\fP
  79166. T} T{
  79167. Module for running ethtool command
  79168. T}
  79169. _
  79170. T{
  79171. \fBevent\fP
  79172. T} T{
  79173. T}
  79174. _
  79175. T{
  79176. \fBextfs\fP
  79177. T} T{
  79178. T}
  79179. _
  79180. T{
  79181. \fBfile\fP
  79182. T} T{
  79183. T}
  79184. _
  79185. T{
  79186. \fBfirewalld\fP
  79187. T} T{
  79188. T}
  79189. _
  79190. T{
  79191. \fBfreebsd_sysctl\fP
  79192. T} T{
  79193. T}
  79194. _
  79195. T{
  79196. \fBfreebsd_update\fP
  79197. T} T{
  79198. T}
  79199. _
  79200. T{
  79201. \fBfreebsdjail\fP
  79202. T} T{
  79203. T}
  79204. _
  79205. T{
  79206. \fBfreebsdkmod\fP
  79207. T} T{
  79208. T}
  79209. _
  79210. T{
  79211. \fBfreebsdpkg\fP
  79212. T} T{
  79213. T}
  79214. _
  79215. T{
  79216. \fBfreebsdports\fP
  79217. T} T{
  79218. T}
  79219. _
  79220. T{
  79221. \fBfreebsdservice\fP
  79222. T} T{
  79223. T}
  79224. _
  79225. T{
  79226. \fBfreezer\fP
  79227. T} T{
  79228. T}
  79229. _
  79230. T{
  79231. \fBgcp_addon\fP
  79232. T} T{
  79233. A route is a rule that specifies how certain packets should be handled by the virtual network.
  79234. T}
  79235. _
  79236. T{
  79237. \fBgem\fP
  79238. T} T{
  79239. T}
  79240. _
  79241. T{
  79242. \fBgenesis\fP
  79243. T} T{
  79244. T}
  79245. _
  79246. T{
  79247. \fBgentoo_service\fP
  79248. T} T{
  79249. T}
  79250. _
  79251. T{
  79252. \fBgentoolkitmod\fP
  79253. T} T{
  79254. Support for Gentoolkit
  79255. T}
  79256. _
  79257. T{
  79258. \fBgit\fP
  79259. T} T{
  79260. T}
  79261. _
  79262. T{
  79263. \fBgithub\fP
  79264. T} T{
  79265. T}
  79266. _
  79267. T{
  79268. \fBglance\fP
  79269. T} T{
  79270. Module for handling openstack glance calls.
  79271. T}
  79272. _
  79273. T{
  79274. \fBglanceng\fP
  79275. T} T{
  79276. Glance module for interacting with OpenStack Glance
  79277. T}
  79278. _
  79279. T{
  79280. \fBglassfish\fP
  79281. T} T{
  79282. T}
  79283. _
  79284. T{
  79285. \fBglusterfs\fP
  79286. T} T{
  79287. T}
  79288. _
  79289. T{
  79290. \fBgnomedesktop\fP
  79291. T} T{
  79292. T}
  79293. _
  79294. T{
  79295. \fBgoogle_chat\fP
  79296. T} T{
  79297. Module for sending messages to google chat.
  79298. T}
  79299. _
  79300. T{
  79301. \fBgpg\fP
  79302. T} T{
  79303. T}
  79304. _
  79305. T{
  79306. \fBgrafana4\fP
  79307. T} T{
  79308. Module for working with the Grafana v4 API
  79309. T}
  79310. _
  79311. T{
  79312. \fBgrains\fP
  79313. T} T{
  79314. T}
  79315. _
  79316. T{
  79317. \fBgroupadd\fP
  79318. T} T{
  79319. T}
  79320. _
  79321. T{
  79322. \fBgrub_legacy\fP
  79323. T} T{
  79324. T}
  79325. _
  79326. T{
  79327. \fBguestfs\fP
  79328. T} T{
  79329. T}
  79330. _
  79331. T{
  79332. \fBhadoop\fP
  79333. T} T{
  79334. T}
  79335. _
  79336. T{
  79337. \fBhaproxyconn\fP
  79338. T} T{
  79339. Support for haproxy
  79340. T}
  79341. _
  79342. T{
  79343. \fBhashutil\fP
  79344. T} T{
  79345. T}
  79346. _
  79347. T{
  79348. \fBheat\fP
  79349. T} T{
  79350. T}
  79351. _
  79352. T{
  79353. \fBhelm\fP
  79354. T} T{
  79355. T}
  79356. _
  79357. T{
  79358. \fBhg\fP
  79359. T} T{
  79360. T}
  79361. _
  79362. T{
  79363. \fBhighstate_doc\fP
  79364. T} T{
  79365. T}
  79366. _
  79367. T{
  79368. \fBhosts\fP
  79369. T} T{
  79370. T}
  79371. _
  79372. T{
  79373. \fI\%http\fP
  79374. T} T{
  79375. T}
  79376. _
  79377. T{
  79378. \fBicinga2\fP
  79379. T} T{
  79380. T}
  79381. _
  79382. T{
  79383. \fBifttt\fP
  79384. T} T{
  79385. T}
  79386. _
  79387. T{
  79388. \fBilo\fP
  79389. T} T{
  79390. T}
  79391. _
  79392. T{
  79393. \fBincron\fP
  79394. T} T{
  79395. T}
  79396. _
  79397. T{
  79398. \fBinfluxdb08mod\fP
  79399. T} T{
  79400. InfluxDB \- A distributed time series database
  79401. T}
  79402. _
  79403. T{
  79404. \fBinfluxdbmod\fP
  79405. T} T{
  79406. T}
  79407. _
  79408. T{
  79409. \fBinfoblox\fP
  79410. T} T{
  79411. This module have been tested on infoblox API v1.2.1, other versions of the API are likly workable.
  79412. T}
  79413. _
  79414. T{
  79415. \fBini_manage\fP
  79416. T} T{
  79417. T}
  79418. _
  79419. T{
  79420. \fBinspectlib\fP
  79421. T} T{
  79422. T}
  79423. _
  79424. T{
  79425. \fBinspectlib.collector\fP
  79426. T} T{
  79427. T}
  79428. _
  79429. T{
  79430. \fBinspectlib.dbhandle\fP
  79431. T} T{
  79432. T}
  79433. _
  79434. T{
  79435. \fBinspectlib.entities\fP
  79436. T} T{
  79437. T}
  79438. _
  79439. T{
  79440. \fBinspectlib.exceptions\fP
  79441. T} T{
  79442. T}
  79443. _
  79444. T{
  79445. \fBinspectlib.fsdb\fP
  79446. T} T{
  79447. T}
  79448. _
  79449. T{
  79450. \fBinspectlib.kiwiproc\fP
  79451. T} T{
  79452. T}
  79453. _
  79454. T{
  79455. \fBinspectlib.query\fP
  79456. T} T{
  79457. T}
  79458. _
  79459. T{
  79460. \fBinspector\fP
  79461. T} T{
  79462. T}
  79463. _
  79464. T{
  79465. \fBintrospect\fP
  79466. T} T{
  79467. Functions to perform introspection on a minion, and return data in a format usable by Salt States
  79468. T}
  79469. _
  79470. T{
  79471. \fBiosconfig\fP
  79472. T} T{
  79473. T}
  79474. _
  79475. T{
  79476. \fBipmi\fP
  79477. T} T{
  79478. Support IPMI commands over LAN.
  79479. T}
  79480. _
  79481. T{
  79482. \fBipset\fP
  79483. T} T{
  79484. T}
  79485. _
  79486. T{
  79487. \fBiptables\fP
  79488. T} T{
  79489. T}
  79490. _
  79491. T{
  79492. \fBiwtools\fP
  79493. T} T{
  79494. T}
  79495. _
  79496. T{
  79497. \fBjboss7\fP
  79498. T} T{
  79499. T}
  79500. _
  79501. T{
  79502. \fBjboss7_cli\fP
  79503. T} T{
  79504. Module for low\-level interaction with JbossAS7 through CLI.
  79505. T}
  79506. _
  79507. T{
  79508. \fBjenkinsmod\fP
  79509. T} T{
  79510. T}
  79511. _
  79512. T{
  79513. \fBjinja\fP
  79514. T} T{
  79515. T}
  79516. _
  79517. T{
  79518. \fBjira_mod\fP
  79519. T} T{
  79520. T}
  79521. _
  79522. T{
  79523. \fBjunos\fP
  79524. T} T{
  79525. T}
  79526. _
  79527. T{
  79528. \fBk8s\fP
  79529. T} T{
  79530. T}
  79531. _
  79532. T{
  79533. \fBkapacitor\fP
  79534. T} T{
  79535. T}
  79536. _
  79537. T{
  79538. \fBkerberos\fP
  79539. T} T{
  79540. T}
  79541. _
  79542. T{
  79543. \fBkernelpkg_linux_apt\fP
  79544. T} T{
  79545. Manage Linux kernel packages on APT\-based systems
  79546. T}
  79547. _
  79548. T{
  79549. \fBkernelpkg_linux_yum\fP
  79550. T} T{
  79551. T}
  79552. _
  79553. T{
  79554. \fBkey\fP
  79555. T} T{
  79556. T}
  79557. _
  79558. T{
  79559. \fBkeyboard\fP
  79560. T} T{
  79561. T}
  79562. _
  79563. T{
  79564. \fBkeystone\fP
  79565. T} T{
  79566. T}
  79567. _
  79568. T{
  79569. \fBkeystoneng\fP
  79570. T} T{
  79571. Keystone module for interacting with OpenStack Keystone
  79572. T}
  79573. _
  79574. T{
  79575. \fBkeystore\fP
  79576. T} T{
  79577. Module to interact with keystores
  79578. T}
  79579. _
  79580. T{
  79581. \fBkmod\fP
  79582. T} T{
  79583. T}
  79584. _
  79585. T{
  79586. \fBkubeadm\fP
  79587. T} T{
  79588. T}
  79589. _
  79590. T{
  79591. \fBkubernetesmod\fP
  79592. T} T{
  79593. T}
  79594. _
  79595. T{
  79596. \fBlaunchctl_service\fP
  79597. T} T{
  79598. T}
  79599. _
  79600. T{
  79601. \fBlayman\fP
  79602. T} T{
  79603. T}
  79604. _
  79605. T{
  79606. \fBldap3\fP
  79607. T} T{
  79608. T}
  79609. _
  79610. T{
  79611. \fBldapmod\fP
  79612. T} T{
  79613. T}
  79614. _
  79615. T{
  79616. \fBlibcloud_compute\fP
  79617. T} T{
  79618. T}
  79619. _
  79620. T{
  79621. \fBlibcloud_dns\fP
  79622. T} T{
  79623. T}
  79624. _
  79625. T{
  79626. \fBlibcloud_loadbalancer\fP
  79627. T} T{
  79628. T}
  79629. _
  79630. T{
  79631. \fBlibcloud_storage\fP
  79632. T} T{
  79633. T}
  79634. _
  79635. T{
  79636. \fBlinux_acl\fP
  79637. T} T{
  79638. T}
  79639. _
  79640. T{
  79641. \fBlinux_ip\fP
  79642. T} T{
  79643. T}
  79644. _
  79645. T{
  79646. \fBlinux_lvm\fP
  79647. T} T{
  79648. T}
  79649. _
  79650. T{
  79651. \fBlinux_service\fP
  79652. T} T{
  79653. If Salt\(aqs OS detection does not identify a different virtual service module, the minion will fall back to using this basic module, which simply wraps sysvinit scripts.
  79654. T}
  79655. _
  79656. T{
  79657. \fBlinux_shadow\fP
  79658. T} T{
  79659. T}
  79660. _
  79661. T{
  79662. \fBlinux_sysctl\fP
  79663. T} T{
  79664. T}
  79665. _
  79666. T{
  79667. \fBlocalemod\fP
  79668. T} T{
  79669. T}
  79670. _
  79671. T{
  79672. \fBlocate\fP
  79673. T} T{
  79674. T}
  79675. _
  79676. T{
  79677. \fBlogadm\fP
  79678. T} T{
  79679. T}
  79680. _
  79681. T{
  79682. \fBlogmod\fP
  79683. T} T{
  79684. On\-demand logging
  79685. T}
  79686. _
  79687. T{
  79688. \fBlogrotate\fP
  79689. T} T{
  79690. T}
  79691. _
  79692. T{
  79693. \fBlvs\fP
  79694. T} T{
  79695. T}
  79696. _
  79697. T{
  79698. \fBlxc\fP
  79699. T} T{
  79700. T}
  79701. _
  79702. T{
  79703. \fBlxd\fP
  79704. T} T{
  79705. T}
  79706. _
  79707. T{
  79708. \fBmac_assistive\fP
  79709. T} T{
  79710. T}
  79711. _
  79712. T{
  79713. \fBmac_brew_pkg\fP
  79714. T} T{
  79715. T}
  79716. _
  79717. T{
  79718. \fBmac_desktop\fP
  79719. T} T{
  79720. T}
  79721. _
  79722. T{
  79723. \fBmac_group\fP
  79724. T} T{
  79725. T}
  79726. _
  79727. T{
  79728. \fBmac_keychain\fP
  79729. T} T{
  79730. T}
  79731. _
  79732. T{
  79733. \fBmac_pkgutil\fP
  79734. T} T{
  79735. T}
  79736. _
  79737. T{
  79738. \fBmac_portspkg\fP
  79739. T} T{
  79740. T}
  79741. _
  79742. T{
  79743. \fBmac_power\fP
  79744. T} T{
  79745. T}
  79746. _
  79747. T{
  79748. \fBmac_service\fP
  79749. T} T{
  79750. T}
  79751. _
  79752. T{
  79753. \fBmac_shadow\fP
  79754. T} T{
  79755. T}
  79756. _
  79757. T{
  79758. \fBmac_softwareupdate\fP
  79759. T} T{
  79760. T}
  79761. _
  79762. T{
  79763. \fBmac_sysctl\fP
  79764. T} T{
  79765. T}
  79766. _
  79767. T{
  79768. \fBmac_system\fP
  79769. T} T{
  79770. T}
  79771. _
  79772. T{
  79773. \fBmac_timezone\fP
  79774. T} T{
  79775. T}
  79776. _
  79777. T{
  79778. \fBmac_user\fP
  79779. T} T{
  79780. T}
  79781. _
  79782. T{
  79783. \fBmac_xattr\fP
  79784. T} T{
  79785. T}
  79786. _
  79787. T{
  79788. \fBmacdefaults\fP
  79789. T} T{
  79790. T}
  79791. _
  79792. T{
  79793. \fBmacpackage\fP
  79794. T} T{
  79795. T}
  79796. _
  79797. T{
  79798. \fBmakeconf\fP
  79799. T} T{
  79800. T}
  79801. _
  79802. T{
  79803. \fBmandrill\fP
  79804. T} T{
  79805. T}
  79806. _
  79807. T{
  79808. \fBmarathon\fP
  79809. T} T{
  79810. T}
  79811. _
  79812. T{
  79813. \fBmatch\fP
  79814. T} T{
  79815. T}
  79816. _
  79817. T{
  79818. \fBmattermost\fP
  79819. T} T{
  79820. T}
  79821. _
  79822. T{
  79823. \fBmdadm_raid\fP
  79824. T} T{
  79825. T}
  79826. _
  79827. T{
  79828. \fBmdata\fP
  79829. T} T{
  79830. T}
  79831. _
  79832. T{
  79833. \fBmemcached\fP
  79834. T} T{
  79835. T}
  79836. _
  79837. T{
  79838. \fBmine\fP
  79839. T} T{
  79840. T}
  79841. _
  79842. T{
  79843. \fBminion\fP
  79844. T} T{
  79845. T}
  79846. _
  79847. T{
  79848. \fBmod_random\fP
  79849. T} T{
  79850. T}
  79851. _
  79852. T{
  79853. \fBmodjk\fP
  79854. T} T{
  79855. Control Modjk via the Apache Tomcat "Status" worker (\fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP)
  79856. T}
  79857. _
  79858. T{
  79859. \fBmongodb\fP
  79860. T} T{
  79861. T}
  79862. _
  79863. T{
  79864. \fBmonit\fP
  79865. T} T{
  79866. T}
  79867. _
  79868. T{
  79869. \fBmoosefs\fP
  79870. T} T{
  79871. T}
  79872. _
  79873. T{
  79874. \fBmount\fP
  79875. T} T{
  79876. T}
  79877. _
  79878. T{
  79879. \fBmssql\fP
  79880. T} T{
  79881. T}
  79882. _
  79883. T{
  79884. \fBmsteams\fP
  79885. T} T{
  79886. T}
  79887. _
  79888. T{
  79889. \fBmunin\fP
  79890. T} T{
  79891. T}
  79892. _
  79893. T{
  79894. \fBmysql\fP
  79895. T} T{
  79896. T}
  79897. _
  79898. T{
  79899. \fBnacl\fP
  79900. T} T{
  79901. T}
  79902. _
  79903. T{
  79904. \fBnagios\fP
  79905. T} T{
  79906. Run nagios plugins/checks from salt and get the return as data.
  79907. T}
  79908. _
  79909. T{
  79910. \fBnagios_rpc\fP
  79911. T} T{
  79912. T}
  79913. _
  79914. T{
  79915. \fBnamecheap_domains\fP
  79916. T} T{
  79917. Namecheap Domain Management
  79918. T}
  79919. _
  79920. T{
  79921. \fBnamecheap_domains_dns\fP
  79922. T} T{
  79923. Namecheap DNS Management
  79924. T}
  79925. _
  79926. T{
  79927. \fBnamecheap_domains_ns\fP
  79928. T} T{
  79929. Namecheap Nameserver Management
  79930. T}
  79931. _
  79932. T{
  79933. \fBnamecheap_ssl\fP
  79934. T} T{
  79935. T}
  79936. _
  79937. T{
  79938. \fBnamecheap_users\fP
  79939. T} T{
  79940. Namecheap User Management
  79941. T}
  79942. _
  79943. T{
  79944. \fBnapalm_bgp\fP
  79945. T} T{
  79946. T}
  79947. _
  79948. T{
  79949. \fBnapalm_formula\fP
  79950. T} T{
  79951. T}
  79952. _
  79953. T{
  79954. \fBnapalm_mod\fP
  79955. T} T{
  79956. T}
  79957. _
  79958. T{
  79959. \fBnapalm_netacl\fP
  79960. T} T{
  79961. T}
  79962. _
  79963. T{
  79964. \fBnapalm_network\fP
  79965. T} T{
  79966. T}
  79967. _
  79968. T{
  79969. \fBnapalm_ntp\fP
  79970. T} T{
  79971. T}
  79972. _
  79973. T{
  79974. \fBnapalm_probes\fP
  79975. T} T{
  79976. T}
  79977. _
  79978. T{
  79979. \fBnapalm_route\fP
  79980. T} T{
  79981. T}
  79982. _
  79983. T{
  79984. \fBnapalm_snmp\fP
  79985. T} T{
  79986. T}
  79987. _
  79988. T{
  79989. \fBnapalm_users\fP
  79990. T} T{
  79991. T}
  79992. _
  79993. T{
  79994. \fBnapalm_yang_mod\fP
  79995. T} T{
  79996. T}
  79997. _
  79998. T{
  79999. \fBnetaddress\fP
  80000. T} T{
  80001. Module for getting information about network addresses.
  80002. T}
  80003. _
  80004. T{
  80005. \fBnetbox\fP
  80006. T} T{
  80007. NetBox
  80008. T}
  80009. _
  80010. T{
  80011. \fBnetbsd_sysctl\fP
  80012. T} T{
  80013. T}
  80014. _
  80015. T{
  80016. \fBnetbsdservice\fP
  80017. T} T{
  80018. The service module for NetBSD
  80019. T}
  80020. _
  80021. T{
  80022. \fBnetmiko_mod\fP
  80023. T} T{
  80024. T}
  80025. _
  80026. T{
  80027. \fBnetscaler\fP
  80028. T} T{
  80029. T}
  80030. _
  80031. T{
  80032. \fBnetwork\fP
  80033. T} T{
  80034. T}
  80035. _
  80036. T{
  80037. \fBneutron\fP
  80038. T} T{
  80039. Module for handling OpenStack Neutron calls
  80040. T}
  80041. _
  80042. T{
  80043. \fBneutronng\fP
  80044. T} T{
  80045. Neutron module for interacting with OpenStack Neutron
  80046. T}
  80047. _
  80048. T{
  80049. \fBnexus\fP
  80050. T} T{
  80051. T}
  80052. _
  80053. T{
  80054. \fBnfs3\fP
  80055. T} T{
  80056. T}
  80057. _
  80058. T{
  80059. \fBnftables\fP
  80060. T} T{
  80061. T}
  80062. _
  80063. T{
  80064. \fBnginx\fP
  80065. T} T{
  80066. T}
  80067. _
  80068. T{
  80069. \fBnilrt_ip\fP
  80070. T} T{
  80071. T}
  80072. _
  80073. T{
  80074. \fBnix\fP
  80075. T} T{
  80076. T}
  80077. _
  80078. T{
  80079. \fBnova\fP
  80080. T} T{
  80081. T}
  80082. _
  80083. T{
  80084. \fBnpm\fP
  80085. T} T{
  80086. T}
  80087. _
  80088. T{
  80089. \fBnspawn\fP
  80090. T} T{
  80091. T}
  80092. _
  80093. T{
  80094. \fBnxos\fP
  80095. T} T{
  80096. T}
  80097. _
  80098. T{
  80099. \fBnxos_api\fP
  80100. T} T{
  80101. Execution module to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  80102. T}
  80103. _
  80104. T{
  80105. \fBnxos_upgrade\fP
  80106. T} T{
  80107. Execution module to upgrade Cisco NX\-OS Switches.
  80108. T}
  80109. _
  80110. T{
  80111. \fBomapi\fP
  80112. T} T{
  80113. T}
  80114. _
  80115. T{
  80116. \fBopenbsd_sysctl\fP
  80117. T} T{
  80118. T}
  80119. _
  80120. T{
  80121. \fBopenbsdpkg\fP
  80122. T} T{
  80123. T}
  80124. _
  80125. T{
  80126. \fBopenbsdrcctl_service\fP
  80127. T} T{
  80128. T}
  80129. _
  80130. T{
  80131. \fBopenbsdservice\fP
  80132. T} T{
  80133. T}
  80134. _
  80135. T{
  80136. \fBopenscap\fP
  80137. T} T{
  80138. Module for OpenSCAP Management
  80139. T}
  80140. _
  80141. T{
  80142. \fBopenstack_config\fP
  80143. T} T{
  80144. T}
  80145. _
  80146. T{
  80147. \fBopenstack_mng\fP
  80148. T} T{
  80149. T}
  80150. _
  80151. T{
  80152. \fBopenvswitch\fP
  80153. T} T{
  80154. T}
  80155. _
  80156. T{
  80157. \fBopkg\fP
  80158. T} T{
  80159. T}
  80160. _
  80161. T{
  80162. \fBopsgenie\fP
  80163. T} T{
  80164. T}
  80165. _
  80166. T{
  80167. \fBoracle\fP
  80168. T} T{
  80169. T}
  80170. _
  80171. T{
  80172. \fBosquery\fP
  80173. T} T{
  80174. T}
  80175. _
  80176. T{
  80177. \fBout\fP
  80178. T} T{
  80179. T}
  80180. _
  80181. T{
  80182. \fBpacmanpkg\fP
  80183. T} T{
  80184. T}
  80185. _
  80186. T{
  80187. \fBpagerduty\fP
  80188. T} T{
  80189. T}
  80190. _
  80191. T{
  80192. \fBpagerduty_util\fP
  80193. T} T{
  80194. T}
  80195. _
  80196. T{
  80197. \fBpam\fP
  80198. T} T{
  80199. T}
  80200. _
  80201. T{
  80202. \fBpanos\fP
  80203. T} T{
  80204. T}
  80205. _
  80206. T{
  80207. \fBparallels\fP
  80208. T} T{
  80209. T}
  80210. _
  80211. T{
  80212. \fBparted_partition\fP
  80213. T} T{
  80214. T}
  80215. _
  80216. T{
  80217. \fBpcs\fP
  80218. T} T{
  80219. T}
  80220. _
  80221. T{
  80222. \fBpdbedit\fP
  80223. T} T{
  80224. T}
  80225. _
  80226. T{
  80227. \fBpecl\fP
  80228. T} T{
  80229. T}
  80230. _
  80231. T{
  80232. \fBpeeringdb\fP
  80233. T} T{
  80234. T}
  80235. _
  80236. T{
  80237. \fBpf\fP
  80238. T} T{
  80239. T}
  80240. _
  80241. T{
  80242. \fBphilips_hue\fP
  80243. T} T{
  80244. Philips HUE lamps module for proxy.
  80245. T}
  80246. _
  80247. T{
  80248. \fBpillar\fP
  80249. T} T{
  80250. T}
  80251. _
  80252. T{
  80253. \fBpip\fP
  80254. T} T{
  80255. T}
  80256. _
  80257. T{
  80258. \fBpkg_resource\fP
  80259. T} T{
  80260. T}
  80261. _
  80262. T{
  80263. \fBpkgin\fP
  80264. T} T{
  80265. T}
  80266. _
  80267. T{
  80268. \fBpkgng\fP
  80269. T} T{
  80270. T}
  80271. _
  80272. T{
  80273. \fI\%pkgutil\fP
  80274. T} T{
  80275. Utilities to support packages.
  80276. T}
  80277. _
  80278. T{
  80279. \fBportage_config\fP
  80280. T} T{
  80281. T}
  80282. _
  80283. T{
  80284. \fBpostfix\fP
  80285. T} T{
  80286. T}
  80287. _
  80288. T{
  80289. \fBpostgres\fP
  80290. T} T{
  80291. T}
  80292. _
  80293. T{
  80294. \fBpoudriere\fP
  80295. T} T{
  80296. T}
  80297. _
  80298. T{
  80299. \fBpowerpath\fP
  80300. T} T{
  80301. powerpath support.
  80302. T}
  80303. _
  80304. T{
  80305. \fBproxy\fP
  80306. T} T{
  80307. T}
  80308. _
  80309. T{
  80310. \fBps\fP
  80311. T} T{
  80312. T}
  80313. _
  80314. T{
  80315. \fBpublish\fP
  80316. T} T{
  80317. T}
  80318. _
  80319. T{
  80320. \fBpuppet\fP
  80321. T} T{
  80322. T}
  80323. _
  80324. T{
  80325. \fBpurefa\fP
  80326. T} T{
  80327. Management of Pure Storage FlashArray
  80328. T}
  80329. _
  80330. T{
  80331. \fBpurefb\fP
  80332. T} T{
  80333. Management of Pure Storage FlashBlade
  80334. T}
  80335. _
  80336. T{
  80337. \fBpushbullet\fP
  80338. T} T{
  80339. Module for sending messages to Pushbullet (\fI\%https://www.pushbullet.com\fP)
  80340. T}
  80341. _
  80342. T{
  80343. \fBpushover_notify\fP
  80344. T} T{
  80345. Module for sending messages to Pushover (\fI\%https://www.pushover.net\fP)
  80346. T}
  80347. _
  80348. T{
  80349. \fBpw_group\fP
  80350. T} T{
  80351. T}
  80352. _
  80353. T{
  80354. \fBpw_user\fP
  80355. T} T{
  80356. T}
  80357. _
  80358. T{
  80359. \fBpyenv\fP
  80360. T} T{
  80361. Manage python installations with pyenv.
  80362. T}
  80363. _
  80364. T{
  80365. \fBqemu_img\fP
  80366. T} T{
  80367. T}
  80368. _
  80369. T{
  80370. \fBqemu_nbd\fP
  80371. T} T{
  80372. T}
  80373. _
  80374. T{
  80375. \fBquota\fP
  80376. T} T{
  80377. T}
  80378. _
  80379. T{
  80380. \fBrabbitmq\fP
  80381. T} T{
  80382. T}
  80383. _
  80384. T{
  80385. \fBrallydev\fP
  80386. T} T{
  80387. T}
  80388. _
  80389. T{
  80390. \fBrandom_org\fP
  80391. T} T{
  80392. T}
  80393. _
  80394. T{
  80395. \fBrbac_solaris\fP
  80396. T} T{
  80397. T}
  80398. _
  80399. T{
  80400. \fBrbenv\fP
  80401. T} T{
  80402. T}
  80403. _
  80404. T{
  80405. \fBrdp\fP
  80406. T} T{
  80407. T}
  80408. _
  80409. T{
  80410. \fBredismod\fP
  80411. T} T{
  80412. T}
  80413. _
  80414. T{
  80415. \fBreg\fP
  80416. T} T{
  80417. T}
  80418. _
  80419. T{
  80420. \fBrest_pkg\fP
  80421. T} T{
  80422. T}
  80423. _
  80424. T{
  80425. \fBrest_sample_utils\fP
  80426. T} T{
  80427. Utility functions for the rest_sample
  80428. T}
  80429. _
  80430. T{
  80431. \fBrest_service\fP
  80432. T} T{
  80433. T}
  80434. _
  80435. T{
  80436. \fBrestartcheck\fP
  80437. T} T{
  80438. T}
  80439. _
  80440. T{
  80441. \fBret\fP
  80442. T} T{
  80443. T}
  80444. _
  80445. T{
  80446. \fBrh_ip\fP
  80447. T} T{
  80448. T}
  80449. _
  80450. T{
  80451. \fBrh_service\fP
  80452. T} T{
  80453. T}
  80454. _
  80455. T{
  80456. \fBriak\fP
  80457. T} T{
  80458. T}
  80459. _
  80460. T{
  80461. \fBrpm_lowpkg\fP
  80462. T} T{
  80463. T}
  80464. _
  80465. T{
  80466. \fBrpmbuild_pkgbuild\fP
  80467. T} T{
  80468. T}
  80469. _
  80470. T{
  80471. \fBrsync\fP
  80472. T} T{
  80473. T}
  80474. _
  80475. T{
  80476. \fBrunit\fP
  80477. T} T{
  80478. T}
  80479. _
  80480. T{
  80481. \fBrvm\fP
  80482. T} T{
  80483. T}
  80484. _
  80485. T{
  80486. \fBs3\fP
  80487. T} T{
  80488. Connection module for Amazon S3
  80489. T}
  80490. _
  80491. T{
  80492. \fBs6\fP
  80493. T} T{
  80494. s6 service module
  80495. T}
  80496. _
  80497. T{
  80498. \fBsalt_proxy\fP
  80499. T} T{
  80500. T}
  80501. _
  80502. T{
  80503. \fBsalt_version\fP
  80504. T} T{
  80505. Access Salt\(aqs elemental release code\-names.
  80506. T}
  80507. _
  80508. T{
  80509. \fBsaltcheck\fP
  80510. T} T{
  80511. T}
  80512. _
  80513. T{
  80514. \fBsaltcloudmod\fP
  80515. T} T{
  80516. T}
  80517. _
  80518. T{
  80519. \fBsaltutil\fP
  80520. T} T{
  80521. T}
  80522. _
  80523. T{
  80524. \fBschedule\fP
  80525. T} T{
  80526. T}
  80527. _
  80528. T{
  80529. \fBscp_mod\fP
  80530. T} T{
  80531. SCP Module
  80532. T}
  80533. _
  80534. T{
  80535. \fBscsi\fP
  80536. T} T{
  80537. T}
  80538. _
  80539. T{
  80540. \fBsdb\fP
  80541. T} T{
  80542. T}
  80543. _
  80544. T{
  80545. \fBseed\fP
  80546. T} T{
  80547. T}
  80548. _
  80549. T{
  80550. \fBselinux\fP
  80551. T} T{
  80552. T}
  80553. _
  80554. T{
  80555. \fBsensehat\fP
  80556. T} T{
  80557. Module for controlling the LED matrix or reading environment data on the SenseHat of a Raspberry Pi.
  80558. T}
  80559. _
  80560. T{
  80561. \fBsensors\fP
  80562. T} T{
  80563. T}
  80564. _
  80565. T{
  80566. \fBserverdensity_device\fP
  80567. T} T{
  80568. T}
  80569. _
  80570. T{
  80571. \fBservicenow\fP
  80572. T} T{
  80573. Module for execution of ServiceNow CI (configuration items)
  80574. T}
  80575. _
  80576. T{
  80577. \fBslack_notify\fP
  80578. T} T{
  80579. T}
  80580. _
  80581. T{
  80582. \fBslsutil\fP
  80583. T} T{
  80584. T}
  80585. _
  80586. T{
  80587. \fBsmartos_imgadm\fP
  80588. T} T{
  80589. T}
  80590. _
  80591. T{
  80592. \fBsmartos_nictagadm\fP
  80593. T} T{
  80594. T}
  80595. _
  80596. T{
  80597. \fBsmartos_virt\fP
  80598. T} T{
  80599. T}
  80600. _
  80601. T{
  80602. \fBsmartos_vmadm\fP
  80603. T} T{
  80604. T}
  80605. _
  80606. T{
  80607. \fBsmbios\fP
  80608. T} T{
  80609. T}
  80610. _
  80611. T{
  80612. \fBsmf_service\fP
  80613. T} T{
  80614. Service support for Solaris 10 and 11, should work with other systems that use SMF also.
  80615. T}
  80616. _
  80617. T{
  80618. \fBsmtp\fP
  80619. T} T{
  80620. T}
  80621. _
  80622. T{
  80623. \fBsnapper\fP
  80624. T} T{
  80625. T}
  80626. _
  80627. T{
  80628. \fBsolaris_fmadm\fP
  80629. T} T{
  80630. T}
  80631. _
  80632. T{
  80633. \fBsolaris_group\fP
  80634. T} T{
  80635. T}
  80636. _
  80637. T{
  80638. \fBsolaris_shadow\fP
  80639. T} T{
  80640. T}
  80641. _
  80642. T{
  80643. \fBsolaris_system\fP
  80644. T} T{
  80645. T}
  80646. _
  80647. T{
  80648. \fBsolaris_user\fP
  80649. T} T{
  80650. T}
  80651. _
  80652. T{
  80653. \fBsolarisipspkg\fP
  80654. T} T{
  80655. T}
  80656. _
  80657. T{
  80658. \fBsolarispkg\fP
  80659. T} T{
  80660. T}
  80661. _
  80662. T{
  80663. \fBsolr\fP
  80664. T} T{
  80665. T}
  80666. _
  80667. T{
  80668. \fBsolrcloud\fP
  80669. T} T{
  80670. T}
  80671. _
  80672. T{
  80673. \fBsplunk\fP
  80674. T} T{
  80675. Module for interop with the Splunk API
  80676. T}
  80677. _
  80678. T{
  80679. \fBsplunk_search\fP
  80680. T} T{
  80681. T}
  80682. _
  80683. T{
  80684. \fBsqlite3\fP
  80685. T} T{
  80686. Support for SQLite3
  80687. T}
  80688. _
  80689. T{
  80690. \fBssh\fP
  80691. T} T{
  80692. T}
  80693. _
  80694. T{
  80695. \fBssh_pkg\fP
  80696. T} T{
  80697. T}
  80698. _
  80699. T{
  80700. \fBssh_service\fP
  80701. T} T{
  80702. T}
  80703. _
  80704. T{
  80705. \fBstate\fP
  80706. T} T{
  80707. T}
  80708. _
  80709. T{
  80710. \fBstatus\fP
  80711. T} T{
  80712. T}
  80713. _
  80714. T{
  80715. \fBstatuspage\fP
  80716. T} T{
  80717. StatusPage
  80718. T}
  80719. _
  80720. T{
  80721. \fBsupervisord\fP
  80722. T} T{
  80723. T}
  80724. _
  80725. T{
  80726. \fBsuse_apache\fP
  80727. T} T{
  80728. T}
  80729. _
  80730. T{
  80731. \fBsvn\fP
  80732. T} T{
  80733. T}
  80734. _
  80735. T{
  80736. \fBswarm\fP
  80737. T} T{
  80738. T}
  80739. _
  80740. T{
  80741. \fBswift\fP
  80742. T} T{
  80743. T}
  80744. _
  80745. T{
  80746. \fBsysbench\fP
  80747. T} T{
  80748. T}
  80749. _
  80750. T{
  80751. \fBsysfs\fP
  80752. T} T{
  80753. T}
  80754. _
  80755. T{
  80756. \fBsyslog_ng\fP
  80757. T} T{
  80758. T}
  80759. _
  80760. T{
  80761. \fBsysmod\fP
  80762. T} T{
  80763. T}
  80764. _
  80765. T{
  80766. \fBsysrc\fP
  80767. T} T{
  80768. T}
  80769. _
  80770. T{
  80771. \fBsystem\fP
  80772. T} T{
  80773. T}
  80774. _
  80775. T{
  80776. \fBsystem_profiler\fP
  80777. T} T{
  80778. T}
  80779. _
  80780. T{
  80781. \fBsystemd_service\fP
  80782. T} T{
  80783. T}
  80784. _
  80785. T{
  80786. \fBtelegram\fP
  80787. T} T{
  80788. Module for sending messages via Telegram.
  80789. T}
  80790. _
  80791. T{
  80792. \fBtelemetry\fP
  80793. T} T{
  80794. T}
  80795. _
  80796. T{
  80797. \fBtemp\fP
  80798. T} T{
  80799. Simple module for creating temporary directories and files
  80800. T}
  80801. _
  80802. T{
  80803. \fI\%test\fP
  80804. T} T{
  80805. T}
  80806. _
  80807. T{
  80808. \fBtest_virtual\fP
  80809. T} T{
  80810. Module for running arbitrary tests with a __virtual__ function
  80811. T}
  80812. _
  80813. T{
  80814. \fBtestinframod\fP
  80815. T} T{
  80816. T}
  80817. _
  80818. T{
  80819. \fBtextfsm_mod\fP
  80820. T} T{
  80821. T}
  80822. _
  80823. T{
  80824. \fBtimezone\fP
  80825. T} T{
  80826. T}
  80827. _
  80828. T{
  80829. \fBtls\fP
  80830. T} T{
  80831. T}
  80832. _
  80833. T{
  80834. \fBtomcat\fP
  80835. T} T{
  80836. T}
  80837. _
  80838. T{
  80839. \fBtrafficserver\fP
  80840. T} T{
  80841. T}
  80842. _
  80843. T{
  80844. \fBtravisci\fP
  80845. T} T{
  80846. T}
  80847. _
  80848. T{
  80849. \fBtuned\fP
  80850. T} T{
  80851. T}
  80852. _
  80853. T{
  80854. \fBtwilio_notify\fP
  80855. T} T{
  80856. Module for notifications via Twilio
  80857. T}
  80858. _
  80859. T{
  80860. \fBudev\fP
  80861. T} T{
  80862. T}
  80863. _
  80864. T{
  80865. \fBupstart_service\fP
  80866. T} T{
  80867. T}
  80868. _
  80869. T{
  80870. \fBuptime\fP
  80871. T} T{
  80872. Wrapper around uptime API
  80873. T}
  80874. _
  80875. T{
  80876. \fBuseradd\fP
  80877. T} T{
  80878. T}
  80879. _
  80880. T{
  80881. \fBuwsgi\fP
  80882. T} T{
  80883. T}
  80884. _
  80885. T{
  80886. \fBvagrant\fP
  80887. T} T{
  80888. T}
  80889. _
  80890. T{
  80891. \fBvarnish\fP
  80892. T} T{
  80893. T}
  80894. _
  80895. T{
  80896. \fBvault\fP
  80897. T} T{
  80898. Functions to interact with Hashicorp Vault.
  80899. T}
  80900. _
  80901. T{
  80902. \fBvbox_guest\fP
  80903. T} T{
  80904. VirtualBox Guest Additions installer
  80905. T}
  80906. _
  80907. T{
  80908. \fBvboxmanage\fP
  80909. T} T{
  80910. T}
  80911. _
  80912. T{
  80913. \fBvcenter\fP
  80914. T} T{
  80915. T}
  80916. _
  80917. T{
  80918. \fBvictorops\fP
  80919. T} T{
  80920. T}
  80921. _
  80922. T{
  80923. \fBvirt\fP
  80924. T} T{
  80925. T}
  80926. _
  80927. T{
  80928. \fBvirtualenv_mod\fP
  80929. T} T{
  80930. T}
  80931. _
  80932. T{
  80933. \fBvmctl\fP
  80934. T} T{
  80935. T}
  80936. _
  80937. T{
  80938. \fBvsphere\fP
  80939. T} T{
  80940. T}
  80941. _
  80942. T{
  80943. \fBwebutil\fP
  80944. T} T{
  80945. T}
  80946. _
  80947. T{
  80948. \fBwin_auditpol\fP
  80949. T} T{
  80950. T}
  80951. _
  80952. T{
  80953. \fBwin_autoruns\fP
  80954. T} T{
  80955. T}
  80956. _
  80957. T{
  80958. \fBwin_certutil\fP
  80959. T} T{
  80960. T}
  80961. _
  80962. T{
  80963. \fBwin_dacl\fP
  80964. T} T{
  80965. T}
  80966. _
  80967. T{
  80968. \fBwin_disk\fP
  80969. T} T{
  80970. T}
  80971. _
  80972. T{
  80973. \fBwin_dism\fP
  80974. T} T{
  80975. T}
  80976. _
  80977. T{
  80978. \fBwin_dns_client\fP
  80979. T} T{
  80980. T}
  80981. _
  80982. T{
  80983. \fBwin_dsc\fP
  80984. T} T{
  80985. T}
  80986. _
  80987. T{
  80988. \fBwin_file\fP
  80989. T} T{
  80990. T}
  80991. _
  80992. T{
  80993. \fBwin_firewall\fP
  80994. T} T{
  80995. T}
  80996. _
  80997. T{
  80998. \fBwin_groupadd\fP
  80999. T} T{
  81000. T}
  81001. _
  81002. T{
  81003. \fBwin_iis\fP
  81004. T} T{
  81005. T}
  81006. _
  81007. T{
  81008. \fBwin_ip\fP
  81009. T} T{
  81010. T}
  81011. _
  81012. T{
  81013. \fBwin_lgpo\fP
  81014. T} T{
  81015. T}
  81016. _
  81017. T{
  81018. \fBwin_license\fP
  81019. T} T{
  81020. T}
  81021. _
  81022. T{
  81023. \fBwin_network\fP
  81024. T} T{
  81025. T}
  81026. _
  81027. T{
  81028. \fBwin_ntp\fP
  81029. T} T{
  81030. T}
  81031. _
  81032. T{
  81033. \fBwin_path\fP
  81034. T} T{
  81035. T}
  81036. _
  81037. T{
  81038. \fBwin_pkg\fP
  81039. T} T{
  81040. T}
  81041. _
  81042. T{
  81043. \fBwin_pki\fP
  81044. T} T{
  81045. T}
  81046. _
  81047. T{
  81048. \fBwin_powercfg\fP
  81049. T} T{
  81050. T}
  81051. _
  81052. T{
  81053. \fBwin_psget\fP
  81054. T} T{
  81055. T}
  81056. _
  81057. T{
  81058. \fBwin_servermanager\fP
  81059. T} T{
  81060. T}
  81061. _
  81062. T{
  81063. \fBwin_service\fP
  81064. T} T{
  81065. T}
  81066. _
  81067. T{
  81068. \fBwin_shadow\fP
  81069. T} T{
  81070. T}
  81071. _
  81072. T{
  81073. \fBwin_smtp_server\fP
  81074. T} T{
  81075. T}
  81076. _
  81077. T{
  81078. \fBwin_snmp\fP
  81079. T} T{
  81080. T}
  81081. _
  81082. T{
  81083. \fBwin_status\fP
  81084. T} T{
  81085. T}
  81086. _
  81087. T{
  81088. \fBwin_system\fP
  81089. T} T{
  81090. T}
  81091. _
  81092. T{
  81093. \fBwin_task\fP
  81094. T} T{
  81095. T}
  81096. _
  81097. T{
  81098. \fBwin_timezone\fP
  81099. T} T{
  81100. Module for managing timezone on Windows systems.
  81101. T}
  81102. _
  81103. T{
  81104. \fBwin_useradd\fP
  81105. T} T{
  81106. T}
  81107. _
  81108. T{
  81109. \fBwin_wua\fP
  81110. T} T{
  81111. T}
  81112. _
  81113. T{
  81114. \fBwin_wusa\fP
  81115. T} T{
  81116. T}
  81117. _
  81118. T{
  81119. \fBwinrepo\fP
  81120. T} T{
  81121. T}
  81122. _
  81123. T{
  81124. \fBwordpress\fP
  81125. T} T{
  81126. T}
  81127. _
  81128. T{
  81129. \fBx509\fP
  81130. T} T{
  81131. T}
  81132. _
  81133. T{
  81134. \fBxapi_virt\fP
  81135. T} T{
  81136. T}
  81137. _
  81138. T{
  81139. \fBxbpspkg\fP
  81140. T} T{
  81141. T}
  81142. _
  81143. T{
  81144. \fBxfs\fP
  81145. T} T{
  81146. T}
  81147. _
  81148. T{
  81149. \fBxml\fP
  81150. T} T{
  81151. XML file manager
  81152. T}
  81153. _
  81154. T{
  81155. \fBxmpp\fP
  81156. T} T{
  81157. Module for Sending Messages via XMPP (a.k.a.
  81158. T}
  81159. _
  81160. T{
  81161. \fByumpkg\fP
  81162. T} T{
  81163. T}
  81164. _
  81165. T{
  81166. \fBzabbix\fP
  81167. T} T{
  81168. T}
  81169. _
  81170. T{
  81171. \fBzcbuildout\fP
  81172. T} T{
  81173. T}
  81174. _
  81175. T{
  81176. \fBzenoss\fP
  81177. T} T{
  81178. T}
  81179. _
  81180. T{
  81181. \fBzfs\fP
  81182. T} T{
  81183. T}
  81184. _
  81185. T{
  81186. \fBzk_concurrency\fP
  81187. T} T{
  81188. Concurrency controls in zookeeper
  81189. T}
  81190. _
  81191. T{
  81192. \fBznc\fP
  81193. T} T{
  81194. T}
  81195. _
  81196. T{
  81197. \fBzoneadm\fP
  81198. T} T{
  81199. T}
  81200. _
  81201. T{
  81202. \fBzonecfg\fP
  81203. T} T{
  81204. T}
  81205. _
  81206. T{
  81207. \fBzookeeper\fP
  81208. T} T{
  81209. T}
  81210. _
  81211. T{
  81212. \fBzpool\fP
  81213. T} T{
  81214. T}
  81215. _
  81216. T{
  81217. \fBzypperpkg\fP
  81218. T} T{
  81219. T}
  81220. _
  81221. .TE
  81222. .SS salt.modules.aix_group module
  81223. .sp
  81224. Manage groups on Solaris
  81225. .sp
  81226. \fBIMPORTANT:\fP
  81227. .INDENT 0.0
  81228. .INDENT 3.5
  81229. If you feel that Salt should be using this module to manage groups on a
  81230. minion, and it is using a different module (or gives an error similar to
  81231. \fI\(aqgroup.info\(aq is not available\fP), see here\&.
  81232. .UNINDENT
  81233. .UNINDENT
  81234. .INDENT 0.0
  81235. .TP
  81236. .B salt.modules.aix_group.add(name, gid=None, system=False, root=None)
  81237. Add the specified group
  81238. .sp
  81239. CLI Example:
  81240. .INDENT 7.0
  81241. .INDENT 3.5
  81242. .sp
  81243. .nf
  81244. .ft C
  81245. salt \(aq*\(aq group.add foo 3456
  81246. .ft P
  81247. .fi
  81248. .UNINDENT
  81249. .UNINDENT
  81250. .UNINDENT
  81251. .INDENT 0.0
  81252. .TP
  81253. .B salt.modules.aix_group.adduser(name, username, root=None)
  81254. Add a user in the group.
  81255. .sp
  81256. CLI Example:
  81257. .INDENT 7.0
  81258. .INDENT 3.5
  81259. .sp
  81260. .nf
  81261. .ft C
  81262. salt \(aq*\(aq group.adduser foo bar
  81263. .ft P
  81264. .fi
  81265. .UNINDENT
  81266. .UNINDENT
  81267. .sp
  81268. Verifies if a valid username \(aqbar\(aq as a member of an existing group \(aqfoo\(aq,
  81269. if not then adds it.
  81270. .UNINDENT
  81271. .INDENT 0.0
  81272. .TP
  81273. .B salt.modules.aix_group.chgid(name, gid)
  81274. Change the gid for a named group
  81275. .sp
  81276. CLI Example:
  81277. .INDENT 7.0
  81278. .INDENT 3.5
  81279. .sp
  81280. .nf
  81281. .ft C
  81282. salt \(aq*\(aq group.chgid foo 4376
  81283. .ft P
  81284. .fi
  81285. .UNINDENT
  81286. .UNINDENT
  81287. .UNINDENT
  81288. .INDENT 0.0
  81289. .TP
  81290. .B salt.modules.aix_group.delete(name)
  81291. Remove the named group
  81292. .sp
  81293. CLI Example:
  81294. .INDENT 7.0
  81295. .INDENT 3.5
  81296. .sp
  81297. .nf
  81298. .ft C
  81299. salt \(aq*\(aq group.delete foo
  81300. .ft P
  81301. .fi
  81302. .UNINDENT
  81303. .UNINDENT
  81304. .UNINDENT
  81305. .INDENT 0.0
  81306. .TP
  81307. .B salt.modules.aix_group.deluser(name, username, root=None)
  81308. Remove a user from the group.
  81309. .sp
  81310. CLI Example:
  81311. .INDENT 7.0
  81312. .INDENT 3.5
  81313. .sp
  81314. .nf
  81315. .ft C
  81316. salt \(aq*\(aq group.deluser foo bar
  81317. .ft P
  81318. .fi
  81319. .UNINDENT
  81320. .UNINDENT
  81321. .sp
  81322. Removes a member user \(aqbar\(aq from a group \(aqfoo\(aq. If group is not present
  81323. then returns True.
  81324. .UNINDENT
  81325. .INDENT 0.0
  81326. .TP
  81327. .B salt.modules.aix_group.getent(refresh=False)
  81328. Return info on all groups
  81329. .sp
  81330. CLI Example:
  81331. .INDENT 7.0
  81332. .INDENT 3.5
  81333. .sp
  81334. .nf
  81335. .ft C
  81336. salt \(aq*\(aq group.getent
  81337. .ft P
  81338. .fi
  81339. .UNINDENT
  81340. .UNINDENT
  81341. .UNINDENT
  81342. .INDENT 0.0
  81343. .TP
  81344. .B salt.modules.aix_group.info(name)
  81345. Return information about a group
  81346. .sp
  81347. CLI Example:
  81348. .INDENT 7.0
  81349. .INDENT 3.5
  81350. .sp
  81351. .nf
  81352. .ft C
  81353. salt \(aq*\(aq group.info foo
  81354. .ft P
  81355. .fi
  81356. .UNINDENT
  81357. .UNINDENT
  81358. .UNINDENT
  81359. .INDENT 0.0
  81360. .TP
  81361. .B salt.modules.aix_group.members(name, members_list, root=None)
  81362. Replaces members of the group with a provided list.
  81363. .sp
  81364. CLI Example:
  81365. .INDENT 7.0
  81366. .INDENT 3.5
  81367. salt \(aq*\(aq group.members foo \(aquser1,user2,user3,...\(aq
  81368. .UNINDENT
  81369. .UNINDENT
  81370. .INDENT 7.0
  81371. .TP
  81372. .B Replaces a membership list for a local group \(aqfoo\(aq.
  81373. foo:x:1234:user1,user2,user3,...
  81374. .UNINDENT
  81375. .UNINDENT
  81376. .SS salt.modules.aix_shadow module
  81377. .sp
  81378. Manage account locks on AIX systems
  81379. .sp
  81380. New in version 2018.3.0.
  81381. .INDENT 0.0
  81382. .TP
  81383. .B depends
  81384. none
  81385. .UNINDENT
  81386. .INDENT 0.0
  81387. .TP
  81388. .B salt.modules.aix_shadow.locked(user)
  81389. Query for all accounts which are flagged as locked.
  81390. .sp
  81391. CLI Example:
  81392. .INDENT 7.0
  81393. .INDENT 3.5
  81394. .sp
  81395. .nf
  81396. .ft C
  81397. salt <minion_id> shadow.locked ALL
  81398. .ft P
  81399. .fi
  81400. .UNINDENT
  81401. .UNINDENT
  81402. .UNINDENT
  81403. .INDENT 0.0
  81404. .TP
  81405. .B salt.modules.aix_shadow.login_failures(user)
  81406. Query for all accounts which have 3 or more login failures.
  81407. .sp
  81408. CLI Example:
  81409. .INDENT 7.0
  81410. .INDENT 3.5
  81411. .sp
  81412. .nf
  81413. .ft C
  81414. salt <minion_id> shadow.login_failures ALL
  81415. .ft P
  81416. .fi
  81417. .UNINDENT
  81418. .UNINDENT
  81419. .UNINDENT
  81420. .INDENT 0.0
  81421. .TP
  81422. .B salt.modules.aix_shadow.unlock(user)
  81423. Unlock user for locked account
  81424. .sp
  81425. CLI Example:
  81426. .INDENT 7.0
  81427. .INDENT 3.5
  81428. .sp
  81429. .nf
  81430. .ft C
  81431. salt <minion_id> shadow.unlock user
  81432. .ft P
  81433. .fi
  81434. .UNINDENT
  81435. .UNINDENT
  81436. .UNINDENT
  81437. .SS salt.modules.azurearm_compute
  81438. .sp
  81439. Azure (ARM) Compute Execution Module
  81440. .sp
  81441. New in version 2019.2.0.
  81442. .INDENT 0.0
  81443. .TP
  81444. .B maintainer
  81445. <\fI\%devops@decisionlab.io\fP>
  81446. .TP
  81447. .B maturity
  81448. new
  81449. .TP
  81450. .B depends
  81451. .INDENT 7.0
  81452. .IP \(bu 2
  81453. \fI\%azure\fP >= 2.0.0
  81454. .IP \(bu 2
  81455. \fI\%azure\-common\fP >= 1.1.8
  81456. .IP \(bu 2
  81457. \fI\%azure\-mgmt\fP >= 1.0.0
  81458. .IP \(bu 2
  81459. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  81460. .IP \(bu 2
  81461. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  81462. .IP \(bu 2
  81463. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  81464. .IP \(bu 2
  81465. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  81466. .IP \(bu 2
  81467. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  81468. .IP \(bu 2
  81469. \fI\%azure\-storage\fP >= 0.34.3
  81470. .IP \(bu 2
  81471. \fI\%msrestazure\fP >= 0.4.21
  81472. .UNINDENT
  81473. .TP
  81474. .B platform
  81475. linux
  81476. .TP
  81477. .B configuration
  81478. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  81479. to every function in order to work properly.
  81480. .sp
  81481. Required provider parameters:
  81482. .INDENT 7.0
  81483. .TP
  81484. .B if using username and password:
  81485. .INDENT 7.0
  81486. .IP \(bu 2
  81487. \fBsubscription_id\fP
  81488. .IP \(bu 2
  81489. \fBusername\fP
  81490. .IP \(bu 2
  81491. \fBpassword\fP
  81492. .UNINDENT
  81493. .TP
  81494. .B if using a service principal:
  81495. .INDENT 7.0
  81496. .IP \(bu 2
  81497. \fBsubscription_id\fP
  81498. .IP \(bu 2
  81499. \fBtenant\fP
  81500. .IP \(bu 2
  81501. \fBclient_id\fP
  81502. .IP \(bu 2
  81503. \fBsecret\fP
  81504. .UNINDENT
  81505. .UNINDENT
  81506. .sp
  81507. Optional provider parameters:
  81508. .UNINDENT
  81509. .INDENT 0.0
  81510. .TP
  81511. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  81512. .INDENT 7.0
  81513. .TP
  81514. .B Possible values:
  81515. .INDENT 7.0
  81516. .IP \(bu 2
  81517. \fBAZURE_PUBLIC_CLOUD\fP (default)
  81518. .IP \(bu 2
  81519. \fBAZURE_CHINA_CLOUD\fP
  81520. .IP \(bu 2
  81521. \fBAZURE_US_GOV_CLOUD\fP
  81522. .IP \(bu 2
  81523. \fBAZURE_GERMAN_CLOUD\fP
  81524. .UNINDENT
  81525. .UNINDENT
  81526. .UNINDENT
  81527. .INDENT 0.0
  81528. .TP
  81529. .B salt.modules.azurearm_compute.availability_set_create_or_update(name, resource_group, **kwargs)
  81530. New in version 2019.2.0.
  81531. .sp
  81532. Create or update an availability set.
  81533. .INDENT 7.0
  81534. .TP
  81535. .B Parameters
  81536. .INDENT 7.0
  81537. .IP \(bu 2
  81538. \fBname\fP \-\- The availability set to create.
  81539. .IP \(bu 2
  81540. \fBresource_group\fP \-\- The resource group name assigned to the
  81541. availability set.
  81542. .UNINDENT
  81543. .UNINDENT
  81544. .sp
  81545. CLI Example:
  81546. .INDENT 7.0
  81547. .INDENT 3.5
  81548. .sp
  81549. .nf
  81550. .ft C
  81551. salt\-call azurearm_compute.availability_set_create_or_update testset testgroup
  81552. .ft P
  81553. .fi
  81554. .UNINDENT
  81555. .UNINDENT
  81556. .UNINDENT
  81557. .INDENT 0.0
  81558. .TP
  81559. .B salt.modules.azurearm_compute.availability_set_delete(name, resource_group, **kwargs)
  81560. New in version 2019.2.0.
  81561. .sp
  81562. Delete an availability set.
  81563. .INDENT 7.0
  81564. .TP
  81565. .B Parameters
  81566. .INDENT 7.0
  81567. .IP \(bu 2
  81568. \fBname\fP \-\- The availability set to delete.
  81569. .IP \(bu 2
  81570. \fBresource_group\fP \-\- The resource group name assigned to the
  81571. availability set.
  81572. .UNINDENT
  81573. .UNINDENT
  81574. .sp
  81575. CLI Example:
  81576. .INDENT 7.0
  81577. .INDENT 3.5
  81578. .sp
  81579. .nf
  81580. .ft C
  81581. salt\-call azurearm_compute.availability_set_delete testset testgroup
  81582. .ft P
  81583. .fi
  81584. .UNINDENT
  81585. .UNINDENT
  81586. .UNINDENT
  81587. .INDENT 0.0
  81588. .TP
  81589. .B salt.modules.azurearm_compute.availability_set_get(name, resource_group, **kwargs)
  81590. New in version 2019.2.0.
  81591. .sp
  81592. Get a dictionary representing an availability set\(aqs properties.
  81593. .INDENT 7.0
  81594. .TP
  81595. .B Parameters
  81596. .INDENT 7.0
  81597. .IP \(bu 2
  81598. \fBname\fP \-\- The availability set to get.
  81599. .IP \(bu 2
  81600. \fBresource_group\fP \-\- The resource group name assigned to the
  81601. availability set.
  81602. .UNINDENT
  81603. .UNINDENT
  81604. .sp
  81605. CLI Example:
  81606. .INDENT 7.0
  81607. .INDENT 3.5
  81608. .sp
  81609. .nf
  81610. .ft C
  81611. salt\-call azurearm_compute.availability_set_get testset testgroup
  81612. .ft P
  81613. .fi
  81614. .UNINDENT
  81615. .UNINDENT
  81616. .UNINDENT
  81617. .INDENT 0.0
  81618. .TP
  81619. .B salt.modules.azurearm_compute.availability_sets_list(resource_group, **kwargs)
  81620. New in version 2019.2.0.
  81621. .sp
  81622. List all availability sets within a resource group.
  81623. .INDENT 7.0
  81624. .TP
  81625. .B Parameters
  81626. \fBresource_group\fP \-\- The resource group name to list availability
  81627. sets within.
  81628. .UNINDENT
  81629. .sp
  81630. CLI Example:
  81631. .INDENT 7.0
  81632. .INDENT 3.5
  81633. .sp
  81634. .nf
  81635. .ft C
  81636. salt\-call azurearm_compute.availability_sets_list testgroup
  81637. .ft P
  81638. .fi
  81639. .UNINDENT
  81640. .UNINDENT
  81641. .UNINDENT
  81642. .INDENT 0.0
  81643. .TP
  81644. .B salt.modules.azurearm_compute.availability_sets_list_available_sizes(name, resource_group, **kwargs)
  81645. New in version 2019.2.0.
  81646. .sp
  81647. List all available virtual machine sizes that can be used to
  81648. to create a new virtual machine in an existing availability set.
  81649. .INDENT 7.0
  81650. .TP
  81651. .B Parameters
  81652. .INDENT 7.0
  81653. .IP \(bu 2
  81654. \fBname\fP \-\- The availability set name to list available
  81655. virtual machine sizes within.
  81656. .IP \(bu 2
  81657. \fBresource_group\fP \-\- The resource group name to list available
  81658. availability set sizes within.
  81659. .UNINDENT
  81660. .UNINDENT
  81661. .sp
  81662. CLI Example:
  81663. .INDENT 7.0
  81664. .INDENT 3.5
  81665. .sp
  81666. .nf
  81667. .ft C
  81668. salt\-call azurearm_compute.availability_sets_list_available_sizes testset testgroup
  81669. .ft P
  81670. .fi
  81671. .UNINDENT
  81672. .UNINDENT
  81673. .UNINDENT
  81674. .INDENT 0.0
  81675. .TP
  81676. .B salt.modules.azurearm_compute.virtual_machine_capture(name, destination_name, resource_group, prefix=\(aqcapture\-\(aq, overwrite=False, **kwargs)
  81677. New in version 2019.2.0.
  81678. .sp
  81679. Captures the VM by copying virtual hard disks of the VM and outputs
  81680. a template that can be used to create similar VMs.
  81681. .INDENT 7.0
  81682. .TP
  81683. .B Parameters
  81684. .INDENT 7.0
  81685. .IP \(bu 2
  81686. \fBname\fP \-\- The name of the virtual machine.
  81687. .IP \(bu 2
  81688. \fBdestination_name\fP \-\- The destination container name.
  81689. .IP \(bu 2
  81690. \fBresource_group\fP \-\- The resource group name assigned to the
  81691. virtual machine.
  81692. .IP \(bu 2
  81693. \fBprefix\fP \-\- (Default: \(aqcapture\-\(aq) The captured virtual hard disk\(aqs name prefix.
  81694. .IP \(bu 2
  81695. \fBoverwrite\fP \-\- (Default: False) Overwrite the destination disk in case of conflict.
  81696. .UNINDENT
  81697. .UNINDENT
  81698. .sp
  81699. CLI Example:
  81700. .INDENT 7.0
  81701. .INDENT 3.5
  81702. .sp
  81703. .nf
  81704. .ft C
  81705. salt\-call azurearm_compute.virtual_machine_capture testvm testcontainer testgroup
  81706. .ft P
  81707. .fi
  81708. .UNINDENT
  81709. .UNINDENT
  81710. .UNINDENT
  81711. .INDENT 0.0
  81712. .TP
  81713. .B salt.modules.azurearm_compute.virtual_machine_convert_to_managed_disks(name, resource_group, **kwargs)
  81714. New in version 2019.2.0.
  81715. .sp
  81716. Converts virtual machine disks from blob\-based to managed disks. Virtual
  81717. machine must be stop\-deallocated before invoking this operation.
  81718. .INDENT 7.0
  81719. .TP
  81720. .B Parameters
  81721. .INDENT 7.0
  81722. .IP \(bu 2
  81723. \fBname\fP \-\- The name of the virtual machine to convert.
  81724. .IP \(bu 2
  81725. \fBresource_group\fP \-\- The resource group name assigned to the
  81726. virtual machine.
  81727. .UNINDENT
  81728. .UNINDENT
  81729. .sp
  81730. CLI Example:
  81731. .INDENT 7.0
  81732. .INDENT 3.5
  81733. .sp
  81734. .nf
  81735. .ft C
  81736. salt\-call azurearm_compute.virtual_machine_convert_to_managed_disks testvm testgroup
  81737. .ft P
  81738. .fi
  81739. .UNINDENT
  81740. .UNINDENT
  81741. .UNINDENT
  81742. .INDENT 0.0
  81743. .TP
  81744. .B salt.modules.azurearm_compute.virtual_machine_deallocate(name, resource_group, **kwargs)
  81745. New in version 2019.2.0.
  81746. .sp
  81747. Power off a virtual machine and deallocate compute resources.
  81748. .INDENT 7.0
  81749. .TP
  81750. .B Parameters
  81751. .INDENT 7.0
  81752. .IP \(bu 2
  81753. \fBname\fP \-\- The name of the virtual machine to deallocate.
  81754. .IP \(bu 2
  81755. \fBresource_group\fP \-\- The resource group name assigned to the
  81756. virtual machine.
  81757. .UNINDENT
  81758. .UNINDENT
  81759. .sp
  81760. CLI Example:
  81761. .INDENT 7.0
  81762. .INDENT 3.5
  81763. .sp
  81764. .nf
  81765. .ft C
  81766. salt\-call azurearm_compute.virtual_machine_deallocate testvm testgroup
  81767. .ft P
  81768. .fi
  81769. .UNINDENT
  81770. .UNINDENT
  81771. .UNINDENT
  81772. .INDENT 0.0
  81773. .TP
  81774. .B salt.modules.azurearm_compute.virtual_machine_generalize(name, resource_group, **kwargs)
  81775. New in version 2019.2.0.
  81776. .sp
  81777. Set the state of a virtual machine to \(aqgeneralized\(aq.
  81778. .INDENT 7.0
  81779. .TP
  81780. .B Parameters
  81781. .INDENT 7.0
  81782. .IP \(bu 2
  81783. \fBname\fP \-\- The name of the virtual machine.
  81784. .IP \(bu 2
  81785. \fBresource_group\fP \-\- The resource group name assigned to the
  81786. virtual machine.
  81787. .UNINDENT
  81788. .UNINDENT
  81789. .sp
  81790. CLI Example:
  81791. .INDENT 7.0
  81792. .INDENT 3.5
  81793. .sp
  81794. .nf
  81795. .ft C
  81796. salt\-call azurearm_compute.virtual_machine_generalize testvm testgroup
  81797. .ft P
  81798. .fi
  81799. .UNINDENT
  81800. .UNINDENT
  81801. .UNINDENT
  81802. .INDENT 0.0
  81803. .TP
  81804. .B salt.modules.azurearm_compute.virtual_machine_get(name, resource_group, **kwargs)
  81805. New in version 2019.2.0.
  81806. .sp
  81807. Retrieves information about the model view or the instance view of a
  81808. virtual machine.
  81809. .INDENT 7.0
  81810. .TP
  81811. .B Parameters
  81812. .INDENT 7.0
  81813. .IP \(bu 2
  81814. \fBname\fP \-\- The name of the virtual machine.
  81815. .IP \(bu 2
  81816. \fBresource_group\fP \-\- The resource group name assigned to the
  81817. virtual machine.
  81818. .UNINDENT
  81819. .UNINDENT
  81820. .sp
  81821. CLI Example:
  81822. .INDENT 7.0
  81823. .INDENT 3.5
  81824. .sp
  81825. .nf
  81826. .ft C
  81827. salt\-call azurearm_compute.virtual_machine_get testvm testgroup
  81828. .ft P
  81829. .fi
  81830. .UNINDENT
  81831. .UNINDENT
  81832. .UNINDENT
  81833. .INDENT 0.0
  81834. .TP
  81835. .B salt.modules.azurearm_compute.virtual_machine_power_off(name, resource_group, **kwargs)
  81836. New in version 2019.2.0.
  81837. .sp
  81838. Power off (stop) a virtual machine.
  81839. .INDENT 7.0
  81840. .TP
  81841. .B Parameters
  81842. .INDENT 7.0
  81843. .IP \(bu 2
  81844. \fBname\fP \-\- The name of the virtual machine to stop.
  81845. .IP \(bu 2
  81846. \fBresource_group\fP \-\- The resource group name assigned to the
  81847. virtual machine.
  81848. .UNINDENT
  81849. .UNINDENT
  81850. .sp
  81851. CLI Example:
  81852. .INDENT 7.0
  81853. .INDENT 3.5
  81854. .sp
  81855. .nf
  81856. .ft C
  81857. salt\-call azurearm_compute.virtual_machine_power_off testvm testgroup
  81858. .ft P
  81859. .fi
  81860. .UNINDENT
  81861. .UNINDENT
  81862. .UNINDENT
  81863. .INDENT 0.0
  81864. .TP
  81865. .B salt.modules.azurearm_compute.virtual_machine_redeploy(name, resource_group, **kwargs)
  81866. New in version 2019.2.0.
  81867. .sp
  81868. Redeploy a virtual machine.
  81869. .INDENT 7.0
  81870. .TP
  81871. .B Parameters
  81872. .INDENT 7.0
  81873. .IP \(bu 2
  81874. \fBname\fP \-\- The name of the virtual machine to redeploy.
  81875. .IP \(bu 2
  81876. \fBresource_group\fP \-\- The resource group name assigned to the
  81877. virtual machine.
  81878. .UNINDENT
  81879. .UNINDENT
  81880. .sp
  81881. CLI Example:
  81882. .INDENT 7.0
  81883. .INDENT 3.5
  81884. .sp
  81885. .nf
  81886. .ft C
  81887. salt\-call azurearm_compute.virtual_machine_redeploy testvm testgroup
  81888. .ft P
  81889. .fi
  81890. .UNINDENT
  81891. .UNINDENT
  81892. .UNINDENT
  81893. .INDENT 0.0
  81894. .TP
  81895. .B salt.modules.azurearm_compute.virtual_machine_restart(name, resource_group, **kwargs)
  81896. New in version 2019.2.0.
  81897. .sp
  81898. Restart a virtual machine.
  81899. .INDENT 7.0
  81900. .TP
  81901. .B Parameters
  81902. .INDENT 7.0
  81903. .IP \(bu 2
  81904. \fBname\fP \-\- The name of the virtual machine to restart.
  81905. .IP \(bu 2
  81906. \fBresource_group\fP \-\- The resource group name assigned to the
  81907. virtual machine.
  81908. .UNINDENT
  81909. .UNINDENT
  81910. .sp
  81911. CLI Example:
  81912. .INDENT 7.0
  81913. .INDENT 3.5
  81914. .sp
  81915. .nf
  81916. .ft C
  81917. salt\-call azurearm_compute.virtual_machine_restart testvm testgroup
  81918. .ft P
  81919. .fi
  81920. .UNINDENT
  81921. .UNINDENT
  81922. .UNINDENT
  81923. .INDENT 0.0
  81924. .TP
  81925. .B salt.modules.azurearm_compute.virtual_machine_start(name, resource_group, **kwargs)
  81926. New in version 2019.2.0.
  81927. .sp
  81928. Power on (start) a virtual machine.
  81929. .INDENT 7.0
  81930. .TP
  81931. .B Parameters
  81932. .INDENT 7.0
  81933. .IP \(bu 2
  81934. \fBname\fP \-\- The name of the virtual machine to start.
  81935. .IP \(bu 2
  81936. \fBresource_group\fP \-\- The resource group name assigned to the
  81937. virtual machine.
  81938. .UNINDENT
  81939. .UNINDENT
  81940. .sp
  81941. CLI Example:
  81942. .INDENT 7.0
  81943. .INDENT 3.5
  81944. .sp
  81945. .nf
  81946. .ft C
  81947. salt\-call azurearm_compute.virtual_machine_start testvm testgroup
  81948. .ft P
  81949. .fi
  81950. .UNINDENT
  81951. .UNINDENT
  81952. .UNINDENT
  81953. .INDENT 0.0
  81954. .TP
  81955. .B salt.modules.azurearm_compute.virtual_machines_list(resource_group, **kwargs)
  81956. New in version 2019.2.0.
  81957. .sp
  81958. List all virtual machines within a resource group.
  81959. .INDENT 7.0
  81960. .TP
  81961. .B Parameters
  81962. \fBresource_group\fP \-\- The resource group name to list virtual
  81963. machines within.
  81964. .UNINDENT
  81965. .sp
  81966. CLI Example:
  81967. .INDENT 7.0
  81968. .INDENT 3.5
  81969. .sp
  81970. .nf
  81971. .ft C
  81972. salt\-call azurearm_compute.virtual_machines_list testgroup
  81973. .ft P
  81974. .fi
  81975. .UNINDENT
  81976. .UNINDENT
  81977. .UNINDENT
  81978. .INDENT 0.0
  81979. .TP
  81980. .B salt.modules.azurearm_compute.virtual_machines_list_all(**kwargs)
  81981. New in version 2019.2.0.
  81982. .sp
  81983. List all virtual machines within a subscription.
  81984. .sp
  81985. CLI Example:
  81986. .INDENT 7.0
  81987. .INDENT 3.5
  81988. .sp
  81989. .nf
  81990. .ft C
  81991. salt\-call azurearm_compute.virtual_machines_list_all
  81992. .ft P
  81993. .fi
  81994. .UNINDENT
  81995. .UNINDENT
  81996. .UNINDENT
  81997. .INDENT 0.0
  81998. .TP
  81999. .B salt.modules.azurearm_compute.virtual_machines_list_available_sizes(name, resource_group, **kwargs)
  82000. New in version 2019.2.0.
  82001. .sp
  82002. Lists all available virtual machine sizes to which the specified virtual
  82003. machine can be resized.
  82004. .INDENT 7.0
  82005. .TP
  82006. .B Parameters
  82007. .INDENT 7.0
  82008. .IP \(bu 2
  82009. \fBname\fP \-\- The name of the virtual machine.
  82010. .IP \(bu 2
  82011. \fBresource_group\fP \-\- The resource group name assigned to the
  82012. virtual machine.
  82013. .UNINDENT
  82014. .UNINDENT
  82015. .sp
  82016. CLI Example:
  82017. .INDENT 7.0
  82018. .INDENT 3.5
  82019. .sp
  82020. .nf
  82021. .ft C
  82022. salt\-call azurearm_compute.virtual_machines_list_available_sizes testvm testgroup
  82023. .ft P
  82024. .fi
  82025. .UNINDENT
  82026. .UNINDENT
  82027. .UNINDENT
  82028. .SS salt.modules.azurearm_dns module
  82029. .sp
  82030. Azure (ARM) DNS Execution Module
  82031. .sp
  82032. New in version 3000.
  82033. .INDENT 0.0
  82034. .TP
  82035. .B maintainer
  82036. <\fI\%devops@eitr.tech\fP>
  82037. .TP
  82038. .B maturity
  82039. new
  82040. .TP
  82041. .B depends
  82042. .INDENT 7.0
  82043. .IP \(bu 2
  82044. \fI\%azure\fP >= 2.0.0
  82045. .IP \(bu 2
  82046. \fI\%azure\-common\fP >= 1.1.8
  82047. .IP \(bu 2
  82048. \fI\%azure\-mgmt\fP >= 1.0.0
  82049. .IP \(bu 2
  82050. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  82051. .IP \(bu 2
  82052. \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1
  82053. .IP \(bu 2
  82054. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  82055. .IP \(bu 2
  82056. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  82057. .IP \(bu 2
  82058. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  82059. .IP \(bu 2
  82060. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  82061. .IP \(bu 2
  82062. \fI\%azure\-storage\fP >= 0.34.3
  82063. .IP \(bu 2
  82064. \fI\%msrestazure\fP >= 0.4.21
  82065. .UNINDENT
  82066. .TP
  82067. .B platform
  82068. linux
  82069. .TP
  82070. .B configuration
  82071. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  82072. to every function in order to work properly.
  82073. .UNINDENT
  82074. .sp
  82075. Required provider parameters:
  82076. .INDENT 0.0
  82077. .INDENT 3.5
  82078. if using username and password:
  82079. .INDENT 0.0
  82080. .INDENT 3.5
  82081. .INDENT 0.0
  82082. .IP \(bu 2
  82083. \fBsubscription_id\fP
  82084. .IP \(bu 2
  82085. \fBusername\fP
  82086. .IP \(bu 2
  82087. \fBpassword\fP
  82088. .UNINDENT
  82089. .UNINDENT
  82090. .UNINDENT
  82091. .sp
  82092. if using a service principal:
  82093. .INDENT 0.0
  82094. .INDENT 3.5
  82095. .INDENT 0.0
  82096. .IP \(bu 2
  82097. \fBsubscription_id\fP
  82098. .IP \(bu 2
  82099. \fBtenant\fP
  82100. .IP \(bu 2
  82101. \fBclient_id\fP
  82102. .IP \(bu 2
  82103. \fBsecret\fP
  82104. .UNINDENT
  82105. .UNINDENT
  82106. .UNINDENT
  82107. .UNINDENT
  82108. .UNINDENT
  82109. .sp
  82110. Optional provider parameters:
  82111. .INDENT 0.0
  82112. .INDENT 3.5
  82113. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  82114. .sp
  82115. Possible values:
  82116. .INDENT 0.0
  82117. .INDENT 3.5
  82118. .INDENT 0.0
  82119. .IP \(bu 2
  82120. \fBAZURE_PUBLIC_CLOUD\fP (default)
  82121. .IP \(bu 2
  82122. \fBAZURE_CHINA_CLOUD\fP
  82123. .IP \(bu 2
  82124. \fBAZURE_US_GOV_CLOUD\fP
  82125. .IP \(bu 2
  82126. \fBAZURE_GERMAN_CLOUD\fP
  82127. .UNINDENT
  82128. .UNINDENT
  82129. .UNINDENT
  82130. .UNINDENT
  82131. .UNINDENT
  82132. .INDENT 0.0
  82133. .TP
  82134. .B salt.modules.azurearm_dns.record_set_create_or_update(name, zone_name, resource_group, record_type, **kwargs)
  82135. New in version 3000.
  82136. .sp
  82137. Creates or updates a record set within a DNS zone.
  82138. .INDENT 7.0
  82139. .TP
  82140. .B Parameters
  82141. .INDENT 7.0
  82142. .IP \(bu 2
  82143. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  82144. .IP \(bu 2
  82145. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82146. .IP \(bu 2
  82147. \fBresource_group\fP \-\- The name of the resource group.
  82148. .IP \(bu 2
  82149. \fBrecord_type\fP \-\- The type of DNS record in this record set. Record sets of type SOA can be
  82150. updated but not created (they are created when the DNS zone is created).
  82151. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82152. .UNINDENT
  82153. .UNINDENT
  82154. .sp
  82155. CLI Example:
  82156. .INDENT 7.0
  82157. .INDENT 3.5
  82158. .sp
  82159. .nf
  82160. .ft C
  82161. salt\-call azurearm_dns.record_set_create_or_update myhost myzone testgroup A
  82162. arecords=\(aq[{ipv4_address: 10.0.0.1}]\(aq ttl=300
  82163. .ft P
  82164. .fi
  82165. .UNINDENT
  82166. .UNINDENT
  82167. .UNINDENT
  82168. .INDENT 0.0
  82169. .TP
  82170. .B salt.modules.azurearm_dns.record_set_delete(name, zone_name, resource_group, record_type, **kwargs)
  82171. New in version 3000.
  82172. .sp
  82173. Deletes a record set from a DNS zone. This operation cannot be undone.
  82174. .INDENT 7.0
  82175. .TP
  82176. .B Parameters
  82177. .INDENT 7.0
  82178. .IP \(bu 2
  82179. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  82180. .IP \(bu 2
  82181. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82182. .IP \(bu 2
  82183. \fBresource_group\fP \-\- The name of the resource group.
  82184. .IP \(bu 2
  82185. \fBrecord_type\fP \-\- The type of DNS record in this record set. Record sets of type SOA cannot be
  82186. deleted (they are deleted when the DNS zone is deleted).
  82187. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82188. .UNINDENT
  82189. .UNINDENT
  82190. .sp
  82191. CLI Example:
  82192. .INDENT 7.0
  82193. .INDENT 3.5
  82194. .sp
  82195. .nf
  82196. .ft C
  82197. salt\-call azurearm_dns.record_set_delete myhost myzone testgroup A
  82198. .ft P
  82199. .fi
  82200. .UNINDENT
  82201. .UNINDENT
  82202. .UNINDENT
  82203. .INDENT 0.0
  82204. .TP
  82205. .B salt.modules.azurearm_dns.record_set_get(name, zone_name, resource_group, record_type, **kwargs)
  82206. New in version 3000.
  82207. .sp
  82208. Get a dictionary representing a record set\(aqs properties.
  82209. .INDENT 7.0
  82210. .TP
  82211. .B Parameters
  82212. .INDENT 7.0
  82213. .IP \(bu 2
  82214. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  82215. .IP \(bu 2
  82216. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82217. .IP \(bu 2
  82218. \fBresource_group\fP \-\- The name of the resource group.
  82219. .IP \(bu 2
  82220. \fBrecord_type\fP \-\- The type of DNS record in this record set.
  82221. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82222. .UNINDENT
  82223. .UNINDENT
  82224. .sp
  82225. CLI Example:
  82226. .INDENT 7.0
  82227. .INDENT 3.5
  82228. .sp
  82229. .nf
  82230. .ft C
  82231. salt\-call azurearm_dns.record_set_get \(aq@\(aq myzone testgroup SOA
  82232. .ft P
  82233. .fi
  82234. .UNINDENT
  82235. .UNINDENT
  82236. .UNINDENT
  82237. .INDENT 0.0
  82238. .TP
  82239. .B salt.modules.azurearm_dns.record_sets_list_by_dns_zone(zone_name, resource_group, top=None, recordsetnamesuffix=None, **kwargs)
  82240. New in version 3000.
  82241. .sp
  82242. Lists all record sets in a DNS zone.
  82243. .INDENT 7.0
  82244. .TP
  82245. .B Parameters
  82246. .INDENT 7.0
  82247. .IP \(bu 2
  82248. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82249. .IP \(bu 2
  82250. \fBresource_group\fP \-\- The name of the resource group.
  82251. .IP \(bu 2
  82252. \fBtop\fP \-\- The maximum number of record sets to return. If not specified,
  82253. returns up to 100 record sets.
  82254. .IP \(bu 2
  82255. \fBrecordsetnamesuffix\fP \-\- The suffix label of the record set name that has
  82256. to be used to filter the record set enumerations.
  82257. .UNINDENT
  82258. .UNINDENT
  82259. .sp
  82260. CLI Example:
  82261. .INDENT 7.0
  82262. .INDENT 3.5
  82263. .sp
  82264. .nf
  82265. .ft C
  82266. salt\-call azurearm_dns.record_sets_list_by_dns_zone myzone testgroup
  82267. .ft P
  82268. .fi
  82269. .UNINDENT
  82270. .UNINDENT
  82271. .UNINDENT
  82272. .INDENT 0.0
  82273. .TP
  82274. .B salt.modules.azurearm_dns.record_sets_list_by_type(zone_name, resource_group, record_type, top=None, recordsetnamesuffix=None, **kwargs)
  82275. New in version 3000.
  82276. .sp
  82277. Lists the record sets of a specified type in a DNS zone.
  82278. .INDENT 7.0
  82279. .TP
  82280. .B Parameters
  82281. .INDENT 7.0
  82282. .IP \(bu 2
  82283. \fBzone_name\fP \-\- The name of the DNS zone (without a terminating dot).
  82284. .IP \(bu 2
  82285. \fBresource_group\fP \-\- The name of the resource group.
  82286. .IP \(bu 2
  82287. \fBrecord_type\fP \-\- The type of record sets to enumerate.
  82288. Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq, \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  82289. .IP \(bu 2
  82290. \fBtop\fP \-\- The maximum number of record sets to return. If not specified,
  82291. returns up to 100 record sets.
  82292. .IP \(bu 2
  82293. \fBrecordsetnamesuffix\fP \-\- The suffix label of the record set name that has
  82294. to be used to filter the record set enumerations.
  82295. .UNINDENT
  82296. .UNINDENT
  82297. .sp
  82298. CLI Example:
  82299. .INDENT 7.0
  82300. .INDENT 3.5
  82301. .sp
  82302. .nf
  82303. .ft C
  82304. salt\-call azurearm_dns.record_sets_list_by_type myzone testgroup SOA
  82305. .ft P
  82306. .fi
  82307. .UNINDENT
  82308. .UNINDENT
  82309. .UNINDENT
  82310. .INDENT 0.0
  82311. .TP
  82312. .B salt.modules.azurearm_dns.zone_create_or_update(name, resource_group, **kwargs)
  82313. New in version 3000.
  82314. .sp
  82315. Creates or updates a DNS zone. Does not modify DNS records within the zone.
  82316. .INDENT 7.0
  82317. .TP
  82318. .B Parameters
  82319. .INDENT 7.0
  82320. .IP \(bu 2
  82321. \fBname\fP \-\- The name of the DNS zone to create (without a terminating dot).
  82322. .IP \(bu 2
  82323. \fBresource_group\fP \-\- The name of the resource group.
  82324. .UNINDENT
  82325. .UNINDENT
  82326. .sp
  82327. CLI Example:
  82328. .INDENT 7.0
  82329. .INDENT 3.5
  82330. .sp
  82331. .nf
  82332. .ft C
  82333. salt\-call azurearm_dns.zone_create_or_update myzone testgroup
  82334. .ft P
  82335. .fi
  82336. .UNINDENT
  82337. .UNINDENT
  82338. .UNINDENT
  82339. .INDENT 0.0
  82340. .TP
  82341. .B salt.modules.azurearm_dns.zone_delete(name, resource_group, **kwargs)
  82342. New in version 3000.
  82343. .sp
  82344. Delete a DNS zone within a resource group.
  82345. .INDENT 7.0
  82346. .TP
  82347. .B Parameters
  82348. .INDENT 7.0
  82349. .IP \(bu 2
  82350. \fBname\fP \-\- The name of the DNS zone to delete.
  82351. .IP \(bu 2
  82352. \fBresource_group\fP \-\- The name of the resource group.
  82353. .UNINDENT
  82354. .UNINDENT
  82355. .sp
  82356. CLI Example:
  82357. .INDENT 7.0
  82358. .INDENT 3.5
  82359. .sp
  82360. .nf
  82361. .ft C
  82362. salt\-call azurearm_dns.zone_delete myzone testgroup
  82363. .ft P
  82364. .fi
  82365. .UNINDENT
  82366. .UNINDENT
  82367. .UNINDENT
  82368. .INDENT 0.0
  82369. .TP
  82370. .B salt.modules.azurearm_dns.zone_get(name, resource_group, **kwargs)
  82371. New in version 3000.
  82372. .sp
  82373. Get a dictionary representing a DNS zone\(aqs properties, but not the
  82374. record sets within the zone.
  82375. .INDENT 7.0
  82376. .TP
  82377. .B Parameters
  82378. .INDENT 7.0
  82379. .IP \(bu 2
  82380. \fBname\fP \-\- The DNS zone to get.
  82381. .IP \(bu 2
  82382. \fBresource_group\fP \-\- The name of the resource group.
  82383. .UNINDENT
  82384. .UNINDENT
  82385. .sp
  82386. CLI Example:
  82387. .INDENT 7.0
  82388. .INDENT 3.5
  82389. .sp
  82390. .nf
  82391. .ft C
  82392. salt\-call azurearm_dns.zone_get myzone testgroup
  82393. .ft P
  82394. .fi
  82395. .UNINDENT
  82396. .UNINDENT
  82397. .UNINDENT
  82398. .INDENT 0.0
  82399. .TP
  82400. .B salt.modules.azurearm_dns.zones_list(top=None, **kwargs)
  82401. New in version 3000.
  82402. .sp
  82403. Lists the DNS zones in all resource groups in a subscription.
  82404. .INDENT 7.0
  82405. .TP
  82406. .B Parameters
  82407. \fBtop\fP \-\- The maximum number of DNS zones to return. If not specified,
  82408. eturns up to 100 zones.
  82409. .UNINDENT
  82410. .sp
  82411. CLI Example:
  82412. .INDENT 7.0
  82413. .INDENT 3.5
  82414. .sp
  82415. .nf
  82416. .ft C
  82417. salt\-call azurearm_dns.zones_list
  82418. .ft P
  82419. .fi
  82420. .UNINDENT
  82421. .UNINDENT
  82422. .UNINDENT
  82423. .INDENT 0.0
  82424. .TP
  82425. .B salt.modules.azurearm_dns.zones_list_by_resource_group(resource_group, top=None, **kwargs)
  82426. New in version 3000.
  82427. .sp
  82428. Lists the DNS zones in a resource group.
  82429. .INDENT 7.0
  82430. .TP
  82431. .B Parameters
  82432. .INDENT 7.0
  82433. .IP \(bu 2
  82434. \fBresource_group\fP \-\- The name of the resource group.
  82435. .IP \(bu 2
  82436. \fBtop\fP \-\- The maximum number of DNS zones to return. If not specified,
  82437. returns up to 100 zones.
  82438. .UNINDENT
  82439. .UNINDENT
  82440. .sp
  82441. CLI Example:
  82442. .INDENT 7.0
  82443. .INDENT 3.5
  82444. .sp
  82445. .nf
  82446. .ft C
  82447. salt\-call azurearm_dns.zones_list_by_resource_group testgroup
  82448. .ft P
  82449. .fi
  82450. .UNINDENT
  82451. .UNINDENT
  82452. .UNINDENT
  82453. .SS salt.modules.azurearm_network
  82454. .sp
  82455. Azure (ARM) Network Execution Module
  82456. .sp
  82457. New in version 2019.2.0.
  82458. .INDENT 0.0
  82459. .TP
  82460. .B maintainer
  82461. <\fI\%devops@decisionlab.io\fP>
  82462. .TP
  82463. .B maturity
  82464. new
  82465. .TP
  82466. .B depends
  82467. .INDENT 7.0
  82468. .IP \(bu 2
  82469. \fI\%azure\fP >= 2.0.0
  82470. .IP \(bu 2
  82471. \fI\%azure\-common\fP >= 1.1.8
  82472. .IP \(bu 2
  82473. \fI\%azure\-mgmt\fP >= 1.0.0
  82474. .IP \(bu 2
  82475. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  82476. .IP \(bu 2
  82477. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  82478. .IP \(bu 2
  82479. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  82480. .IP \(bu 2
  82481. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  82482. .IP \(bu 2
  82483. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  82484. .IP \(bu 2
  82485. \fI\%azure\-storage\fP >= 0.34.3
  82486. .IP \(bu 2
  82487. \fI\%msrestazure\fP >= 0.4.21
  82488. .UNINDENT
  82489. .TP
  82490. .B platform
  82491. linux
  82492. .TP
  82493. .B configuration
  82494. This module requires Azure Resource Manager credentials to be passed as keyword arguments
  82495. to every function in order to work properly.
  82496. .sp
  82497. Required provider parameters:
  82498. .INDENT 7.0
  82499. .TP
  82500. .B if using username and password:
  82501. .INDENT 7.0
  82502. .IP \(bu 2
  82503. \fBsubscription_id\fP
  82504. .IP \(bu 2
  82505. \fBusername\fP
  82506. .IP \(bu 2
  82507. \fBpassword\fP
  82508. .UNINDENT
  82509. .TP
  82510. .B if using a service principal:
  82511. .INDENT 7.0
  82512. .IP \(bu 2
  82513. \fBsubscription_id\fP
  82514. .IP \(bu 2
  82515. \fBtenant\fP
  82516. .IP \(bu 2
  82517. \fBclient_id\fP
  82518. .IP \(bu 2
  82519. \fBsecret\fP
  82520. .UNINDENT
  82521. .UNINDENT
  82522. .sp
  82523. Optional provider parameters:
  82524. .UNINDENT
  82525. .INDENT 0.0
  82526. .TP
  82527. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud.
  82528. .INDENT 7.0
  82529. .TP
  82530. .B Possible values:
  82531. .INDENT 7.0
  82532. .IP \(bu 2
  82533. \fBAZURE_PUBLIC_CLOUD\fP (default)
  82534. .IP \(bu 2
  82535. \fBAZURE_CHINA_CLOUD\fP
  82536. .IP \(bu 2
  82537. \fBAZURE_US_GOV_CLOUD\fP
  82538. .IP \(bu 2
  82539. \fBAZURE_GERMAN_CLOUD\fP
  82540. .UNINDENT
  82541. .UNINDENT
  82542. .UNINDENT
  82543. .INDENT 0.0
  82544. .TP
  82545. .B salt.modules.azurearm_network.check_dns_name_availability(name, region, **kwargs)
  82546. New in version 2019.2.0.
  82547. .sp
  82548. Check whether a domain name in the current zone is available for use.
  82549. .INDENT 7.0
  82550. .TP
  82551. .B Parameters
  82552. .INDENT 7.0
  82553. .IP \(bu 2
  82554. \fBname\fP \-\- The DNS name to query.
  82555. .IP \(bu 2
  82556. \fBregion\fP \-\- The region to query for the DNS name in question.
  82557. .UNINDENT
  82558. .UNINDENT
  82559. .sp
  82560. CLI Example:
  82561. .INDENT 7.0
  82562. .INDENT 3.5
  82563. .sp
  82564. .nf
  82565. .ft C
  82566. salt\-call azurearm_network.check_dns_name_availability testdnsname westus
  82567. .ft P
  82568. .fi
  82569. .UNINDENT
  82570. .UNINDENT
  82571. .UNINDENT
  82572. .INDENT 0.0
  82573. .TP
  82574. .B salt.modules.azurearm_network.check_ip_address_availability(ip_address, virtual_network, resource_group, **kwargs)
  82575. New in version 2019.2.0.
  82576. .sp
  82577. Check that a private ip address is available within the specified
  82578. virtual network.
  82579. .INDENT 7.0
  82580. .TP
  82581. .B Parameters
  82582. .INDENT 7.0
  82583. .IP \(bu 2
  82584. \fBip_address\fP \-\- The ip_address to query.
  82585. .IP \(bu 2
  82586. \fBvirtual_network\fP \-\- The virtual network to query for the IP address
  82587. in question.
  82588. .IP \(bu 2
  82589. \fBresource_group\fP \-\- The resource group name assigned to the
  82590. virtual network.
  82591. .UNINDENT
  82592. .UNINDENT
  82593. .sp
  82594. CLI Example:
  82595. .INDENT 7.0
  82596. .INDENT 3.5
  82597. .sp
  82598. .nf
  82599. .ft C
  82600. salt\-call azurearm_network.check_ip_address_availability 10.0.0.4 testnet testgroup
  82601. .ft P
  82602. .fi
  82603. .UNINDENT
  82604. .UNINDENT
  82605. .UNINDENT
  82606. .INDENT 0.0
  82607. .TP
  82608. .B salt.modules.azurearm_network.default_security_rule_get(name, security_group, resource_group, **kwargs)
  82609. New in version 2019.2.0.
  82610. .sp
  82611. Get details about a default security rule within a security group.
  82612. .INDENT 7.0
  82613. .TP
  82614. .B Parameters
  82615. .INDENT 7.0
  82616. .IP \(bu 2
  82617. \fBname\fP \-\- The name of the security rule to query.
  82618. .IP \(bu 2
  82619. \fBsecurity_group\fP \-\- The network security group containing the
  82620. security rule.
  82621. .IP \(bu 2
  82622. \fBresource_group\fP \-\- The resource group name assigned to the
  82623. network security group.
  82624. .UNINDENT
  82625. .UNINDENT
  82626. .sp
  82627. CLI Example:
  82628. .INDENT 7.0
  82629. .INDENT 3.5
  82630. .sp
  82631. .nf
  82632. .ft C
  82633. salt\-call azurearm_network.default_security_rule_get DenyAllOutBound testnsg testgroup
  82634. .ft P
  82635. .fi
  82636. .UNINDENT
  82637. .UNINDENT
  82638. .UNINDENT
  82639. .INDENT 0.0
  82640. .TP
  82641. .B salt.modules.azurearm_network.default_security_rules_list(security_group, resource_group, **kwargs)
  82642. New in version 2019.2.0.
  82643. .sp
  82644. List default security rules within a security group.
  82645. .INDENT 7.0
  82646. .TP
  82647. .B Parameters
  82648. .INDENT 7.0
  82649. .IP \(bu 2
  82650. \fBsecurity_group\fP \-\- The network security group to query.
  82651. .IP \(bu 2
  82652. \fBresource_group\fP \-\- The resource group name assigned to the
  82653. network security group.
  82654. .UNINDENT
  82655. .UNINDENT
  82656. .sp
  82657. CLI Example:
  82658. .INDENT 7.0
  82659. .INDENT 3.5
  82660. .sp
  82661. .nf
  82662. .ft C
  82663. salt\-call azurearm_network.default_security_rules_list testnsg testgroup
  82664. .ft P
  82665. .fi
  82666. .UNINDENT
  82667. .UNINDENT
  82668. .UNINDENT
  82669. .INDENT 0.0
  82670. .TP
  82671. .B salt.modules.azurearm_network.get_virtual_machine_scale_set_network_interface(name, scale_set, vm_index, resource_group, **kwargs)
  82672. New in version 2019.2.0.
  82673. .sp
  82674. Get information about a specific network interface within a scale set.
  82675. .INDENT 7.0
  82676. .TP
  82677. .B Parameters
  82678. .INDENT 7.0
  82679. .IP \(bu 2
  82680. \fBname\fP \-\- The name of the network interface to query.
  82681. .IP \(bu 2
  82682. \fBscale_set\fP \-\- The name of the scale set containing the interface.
  82683. .IP \(bu 2
  82684. \fBvm_index\fP \-\- The virtual machine index.
  82685. .IP \(bu 2
  82686. \fBresource_group\fP \-\- The resource group name assigned to the
  82687. scale set.
  82688. .UNINDENT
  82689. .UNINDENT
  82690. .sp
  82691. CLI Example:
  82692. .INDENT 7.0
  82693. .INDENT 3.5
  82694. .sp
  82695. .nf
  82696. .ft C
  82697. salt\-call azurearm_network.get_virtual_machine_scale_set_network_interface test\-iface0 testset testvm testgroup
  82698. .ft P
  82699. .fi
  82700. .UNINDENT
  82701. .UNINDENT
  82702. .UNINDENT
  82703. .INDENT 0.0
  82704. .TP
  82705. .B salt.modules.azurearm_network.list_virtual_machine_scale_set_network_interfaces(scale_set, resource_group, **kwargs)
  82706. New in version 2019.2.0.
  82707. .sp
  82708. Get information about all network interfaces within a scale set.
  82709. .INDENT 7.0
  82710. .TP
  82711. .B Parameters
  82712. .INDENT 7.0
  82713. .IP \(bu 2
  82714. \fBscale_set\fP \-\- The name of the scale set to query.
  82715. .IP \(bu 2
  82716. \fBresource_group\fP \-\- The resource group name assigned to the
  82717. scale set.
  82718. .UNINDENT
  82719. .UNINDENT
  82720. .sp
  82721. CLI Example:
  82722. .INDENT 7.0
  82723. .INDENT 3.5
  82724. .sp
  82725. .nf
  82726. .ft C
  82727. salt\-call azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces testset testgroup
  82728. .ft P
  82729. .fi
  82730. .UNINDENT
  82731. .UNINDENT
  82732. .UNINDENT
  82733. .INDENT 0.0
  82734. .TP
  82735. .B salt.modules.azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces(scale_set, vm_index, resource_group, **kwargs)
  82736. New in version 2019.2.0.
  82737. .sp
  82738. Get information about all network interfaces in a specific virtual machine within a scale set.
  82739. .INDENT 7.0
  82740. .TP
  82741. .B Parameters
  82742. .INDENT 7.0
  82743. .IP \(bu 2
  82744. \fBscale_set\fP \-\- The name of the scale set to query.
  82745. .IP \(bu 2
  82746. \fBvm_index\fP \-\- The virtual machine index.
  82747. .IP \(bu 2
  82748. \fBresource_group\fP \-\- The resource group name assigned to the
  82749. scale set.
  82750. .UNINDENT
  82751. .UNINDENT
  82752. .sp
  82753. CLI Example:
  82754. .INDENT 7.0
  82755. .INDENT 3.5
  82756. .sp
  82757. .nf
  82758. .ft C
  82759. salt\-call azurearm_network.list_virtual_machine_scale_set_vm_network_interfaces testset testvm testgroup
  82760. .ft P
  82761. .fi
  82762. .UNINDENT
  82763. .UNINDENT
  82764. .UNINDENT
  82765. .INDENT 0.0
  82766. .TP
  82767. .B salt.modules.azurearm_network.load_balancer_create_or_update(name, resource_group, **kwargs)
  82768. New in version 2019.2.0.
  82769. .sp
  82770. Create or update a load balancer within a specified resource group.
  82771. .INDENT 7.0
  82772. .TP
  82773. .B Parameters
  82774. .INDENT 7.0
  82775. .IP \(bu 2
  82776. \fBname\fP \-\- The name of the load balancer to create.
  82777. .IP \(bu 2
  82778. \fBresource_group\fP \-\- The resource group name assigned to the
  82779. load balancer.
  82780. .UNINDENT
  82781. .UNINDENT
  82782. .sp
  82783. CLI Example:
  82784. .INDENT 7.0
  82785. .INDENT 3.5
  82786. .sp
  82787. .nf
  82788. .ft C
  82789. salt\-call azurearm_network.load_balancer_create_or_update testlb testgroup
  82790. .ft P
  82791. .fi
  82792. .UNINDENT
  82793. .UNINDENT
  82794. .UNINDENT
  82795. .INDENT 0.0
  82796. .TP
  82797. .B salt.modules.azurearm_network.load_balancer_delete(name, resource_group, **kwargs)
  82798. New in version 2019.2.0.
  82799. .sp
  82800. Delete a load balancer.
  82801. .INDENT 7.0
  82802. .TP
  82803. .B Parameters
  82804. .INDENT 7.0
  82805. .IP \(bu 2
  82806. \fBname\fP \-\- The name of the load balancer to delete.
  82807. .IP \(bu 2
  82808. \fBresource_group\fP \-\- The resource group name assigned to the
  82809. load balancer.
  82810. .UNINDENT
  82811. .UNINDENT
  82812. .sp
  82813. CLI Example:
  82814. .INDENT 7.0
  82815. .INDENT 3.5
  82816. .sp
  82817. .nf
  82818. .ft C
  82819. salt\-call azurearm_network.load_balancer_delete testlb testgroup
  82820. .ft P
  82821. .fi
  82822. .UNINDENT
  82823. .UNINDENT
  82824. .UNINDENT
  82825. .INDENT 0.0
  82826. .TP
  82827. .B salt.modules.azurearm_network.load_balancer_get(name, resource_group, **kwargs)
  82828. New in version 2019.2.0.
  82829. .sp
  82830. Get details about a specific load balancer.
  82831. .INDENT 7.0
  82832. .TP
  82833. .B Parameters
  82834. .INDENT 7.0
  82835. .IP \(bu 2
  82836. \fBname\fP \-\- The name of the load balancer to query.
  82837. .IP \(bu 2
  82838. \fBresource_group\fP \-\- The resource group name assigned to the
  82839. load balancer.
  82840. .UNINDENT
  82841. .UNINDENT
  82842. .sp
  82843. CLI Example:
  82844. .INDENT 7.0
  82845. .INDENT 3.5
  82846. .sp
  82847. .nf
  82848. .ft C
  82849. salt\-call azurearm_network.load_balancer_get testlb testgroup
  82850. .ft P
  82851. .fi
  82852. .UNINDENT
  82853. .UNINDENT
  82854. .UNINDENT
  82855. .INDENT 0.0
  82856. .TP
  82857. .B salt.modules.azurearm_network.load_balancers_list(resource_group, **kwargs)
  82858. New in version 2019.2.0.
  82859. .sp
  82860. List all load balancers within a resource group.
  82861. .INDENT 7.0
  82862. .TP
  82863. .B Parameters
  82864. \fBresource_group\fP \-\- The resource group name to list load balancers
  82865. within.
  82866. .UNINDENT
  82867. .sp
  82868. CLI Example:
  82869. .INDENT 7.0
  82870. .INDENT 3.5
  82871. .sp
  82872. .nf
  82873. .ft C
  82874. salt\-call azurearm_network.load_balancers_list testgroup
  82875. .ft P
  82876. .fi
  82877. .UNINDENT
  82878. .UNINDENT
  82879. .UNINDENT
  82880. .INDENT 0.0
  82881. .TP
  82882. .B salt.modules.azurearm_network.load_balancers_list_all(**kwargs)
  82883. New in version 2019.2.0.
  82884. .sp
  82885. List all load balancers within a subscription.
  82886. .sp
  82887. CLI Example:
  82888. .INDENT 7.0
  82889. .INDENT 3.5
  82890. .sp
  82891. .nf
  82892. .ft C
  82893. salt\-call azurearm_network.load_balancers_list_all
  82894. .ft P
  82895. .fi
  82896. .UNINDENT
  82897. .UNINDENT
  82898. .UNINDENT
  82899. .INDENT 0.0
  82900. .TP
  82901. .B salt.modules.azurearm_network.network_interface_create_or_update(name, ip_configurations, subnet, virtual_network, resource_group, **kwargs)
  82902. New in version 2019.2.0.
  82903. .sp
  82904. Create or update a network interface within a specified resource group.
  82905. .INDENT 7.0
  82906. .TP
  82907. .B Parameters
  82908. .INDENT 7.0
  82909. .IP \(bu 2
  82910. \fBname\fP \-\- The name of the network interface to create.
  82911. .IP \(bu 2
  82912. \fBip_configurations\fP \-\- A list of dictionaries representing valid
  82913. NetworkInterfaceIPConfiguration objects. The \(aqname\(aq key is required at
  82914. minimum. At least one IP Configuration must be present.
  82915. .IP \(bu 2
  82916. \fBsubnet\fP \-\- The name of the subnet assigned to the network interface.
  82917. .IP \(bu 2
  82918. \fBvirtual_network\fP \-\- The name of the virtual network assigned to the subnet.
  82919. .IP \(bu 2
  82920. \fBresource_group\fP \-\- The resource group name assigned to the
  82921. virtual network.
  82922. .UNINDENT
  82923. .UNINDENT
  82924. .sp
  82925. CLI Example:
  82926. .INDENT 7.0
  82927. .INDENT 3.5
  82928. .sp
  82929. .nf
  82930. .ft C
  82931. salt\-call azurearm_network.network_interface_create_or_update test\-iface0 [{\(aqname\(aq: \(aqtestipconfig1\(aq}] testsubnet testnet testgroup
  82932. .ft P
  82933. .fi
  82934. .UNINDENT
  82935. .UNINDENT
  82936. .UNINDENT
  82937. .INDENT 0.0
  82938. .TP
  82939. .B salt.modules.azurearm_network.network_interface_delete(name, resource_group, **kwargs)
  82940. New in version 2019.2.0.
  82941. .sp
  82942. Delete a network interface.
  82943. .INDENT 7.0
  82944. .TP
  82945. .B Parameters
  82946. .INDENT 7.0
  82947. .IP \(bu 2
  82948. \fBname\fP \-\- The name of the network interface to delete.
  82949. .IP \(bu 2
  82950. \fBresource_group\fP \-\- The resource group name assigned to the
  82951. network interface.
  82952. .UNINDENT
  82953. .UNINDENT
  82954. .sp
  82955. CLI Example:
  82956. .INDENT 7.0
  82957. .INDENT 3.5
  82958. .sp
  82959. .nf
  82960. .ft C
  82961. salt\-call azurearm_network.network_interface_delete test\-iface0 testgroup
  82962. .ft P
  82963. .fi
  82964. .UNINDENT
  82965. .UNINDENT
  82966. .UNINDENT
  82967. .INDENT 0.0
  82968. .TP
  82969. .B salt.modules.azurearm_network.network_interface_get(name, resource_group, **kwargs)
  82970. New in version 2019.2.0.
  82971. .sp
  82972. Get details about a specific network interface.
  82973. .INDENT 7.0
  82974. .TP
  82975. .B Parameters
  82976. .INDENT 7.0
  82977. .IP \(bu 2
  82978. \fBname\fP \-\- The name of the network interface to query.
  82979. .IP \(bu 2
  82980. \fBresource_group\fP \-\- The resource group name assigned to the
  82981. network interface.
  82982. .UNINDENT
  82983. .UNINDENT
  82984. .sp
  82985. CLI Example:
  82986. .INDENT 7.0
  82987. .INDENT 3.5
  82988. .sp
  82989. .nf
  82990. .ft C
  82991. salt\-call azurearm_network.network_interface_get test\-iface0 testgroup
  82992. .ft P
  82993. .fi
  82994. .UNINDENT
  82995. .UNINDENT
  82996. .UNINDENT
  82997. .INDENT 0.0
  82998. .TP
  82999. .B salt.modules.azurearm_network.network_interface_get_effective_route_table(name, resource_group, **kwargs)
  83000. New in version 2019.2.0.
  83001. .sp
  83002. Get all route tables for a specific network interface.
  83003. .INDENT 7.0
  83004. .TP
  83005. .B Parameters
  83006. .INDENT 7.0
  83007. .IP \(bu 2
  83008. \fBname\fP \-\- The name of the network interface to query.
  83009. .IP \(bu 2
  83010. \fBresource_group\fP \-\- The resource group name assigned to the
  83011. network interface.
  83012. .UNINDENT
  83013. .UNINDENT
  83014. .sp
  83015. CLI Example:
  83016. .INDENT 7.0
  83017. .INDENT 3.5
  83018. .sp
  83019. .nf
  83020. .ft C
  83021. salt\-call azurearm_network.network_interface_get_effective_route_table test\-iface0 testgroup
  83022. .ft P
  83023. .fi
  83024. .UNINDENT
  83025. .UNINDENT
  83026. .UNINDENT
  83027. .INDENT 0.0
  83028. .TP
  83029. .B salt.modules.azurearm_network.network_interface_list_effective_network_security_groups(name, resource_group, **kwargs)
  83030. New in version 2019.2.0.
  83031. .sp
  83032. Get all network security groups applied to a specific network interface.
  83033. .INDENT 7.0
  83034. .TP
  83035. .B Parameters
  83036. .INDENT 7.0
  83037. .IP \(bu 2
  83038. \fBname\fP \-\- The name of the network interface to query.
  83039. .IP \(bu 2
  83040. \fBresource_group\fP \-\- The resource group name assigned to the
  83041. network interface.
  83042. .UNINDENT
  83043. .UNINDENT
  83044. .sp
  83045. CLI Example:
  83046. .INDENT 7.0
  83047. .INDENT 3.5
  83048. .sp
  83049. .nf
  83050. .ft C
  83051. salt\-call azurearm_network.network_interface_list_effective_network_security_groups test\-iface0 testgroup
  83052. .ft P
  83053. .fi
  83054. .UNINDENT
  83055. .UNINDENT
  83056. .UNINDENT
  83057. .INDENT 0.0
  83058. .TP
  83059. .B salt.modules.azurearm_network.network_interfaces_list(resource_group, **kwargs)
  83060. New in version 2019.2.0.
  83061. .sp
  83062. List all network interfaces within a resource group.
  83063. .INDENT 7.0
  83064. .TP
  83065. .B Parameters
  83066. \fBresource_group\fP \-\- The resource group name to list network
  83067. interfaces within.
  83068. .UNINDENT
  83069. .sp
  83070. CLI Example:
  83071. .INDENT 7.0
  83072. .INDENT 3.5
  83073. .sp
  83074. .nf
  83075. .ft C
  83076. salt\-call azurearm_network.network_interfaces_list testgroup
  83077. .ft P
  83078. .fi
  83079. .UNINDENT
  83080. .UNINDENT
  83081. .UNINDENT
  83082. .INDENT 0.0
  83083. .TP
  83084. .B salt.modules.azurearm_network.network_interfaces_list_all(**kwargs)
  83085. New in version 2019.2.0.
  83086. .sp
  83087. List all network interfaces within a subscription.
  83088. .sp
  83089. CLI Example:
  83090. .INDENT 7.0
  83091. .INDENT 3.5
  83092. .sp
  83093. .nf
  83094. .ft C
  83095. salt\-call azurearm_network.network_interfaces_list_all
  83096. .ft P
  83097. .fi
  83098. .UNINDENT
  83099. .UNINDENT
  83100. .UNINDENT
  83101. .INDENT 0.0
  83102. .TP
  83103. .B salt.modules.azurearm_network.network_security_group_create_or_update(name, resource_group, **kwargs)
  83104. New in version 2019.2.0.
  83105. .sp
  83106. Create or update a network security group.
  83107. .INDENT 7.0
  83108. .TP
  83109. .B Parameters
  83110. .INDENT 7.0
  83111. .IP \(bu 2
  83112. \fBname\fP \-\- The name of the network security group to create.
  83113. .IP \(bu 2
  83114. \fBresource_group\fP \-\- The resource group name assigned to the
  83115. network security group.
  83116. .UNINDENT
  83117. .UNINDENT
  83118. .sp
  83119. CLI Example:
  83120. .INDENT 7.0
  83121. .INDENT 3.5
  83122. .sp
  83123. .nf
  83124. .ft C
  83125. salt\-call azurearm_network.network_security_group_create_or_update testnsg testgroup
  83126. .ft P
  83127. .fi
  83128. .UNINDENT
  83129. .UNINDENT
  83130. .UNINDENT
  83131. .INDENT 0.0
  83132. .TP
  83133. .B salt.modules.azurearm_network.network_security_group_delete(name, resource_group, **kwargs)
  83134. New in version 2019.2.0.
  83135. .sp
  83136. Delete a network security group within a resource group.
  83137. .INDENT 7.0
  83138. .TP
  83139. .B Parameters
  83140. .INDENT 7.0
  83141. .IP \(bu 2
  83142. \fBname\fP \-\- The name of the network security group to delete.
  83143. .IP \(bu 2
  83144. \fBresource_group\fP \-\- The resource group name assigned to the
  83145. network security group.
  83146. .UNINDENT
  83147. .UNINDENT
  83148. .sp
  83149. CLI Example:
  83150. .INDENT 7.0
  83151. .INDENT 3.5
  83152. .sp
  83153. .nf
  83154. .ft C
  83155. salt\-call azurearm_network.network_security_group_delete testnsg testgroup
  83156. .ft P
  83157. .fi
  83158. .UNINDENT
  83159. .UNINDENT
  83160. .UNINDENT
  83161. .INDENT 0.0
  83162. .TP
  83163. .B salt.modules.azurearm_network.network_security_group_get(name, resource_group, **kwargs)
  83164. New in version 2019.2.0.
  83165. .sp
  83166. Get details about a network security group within a resource group.
  83167. .INDENT 7.0
  83168. .TP
  83169. .B Parameters
  83170. .INDENT 7.0
  83171. .IP \(bu 2
  83172. \fBname\fP \-\- The name of the network security group to query.
  83173. .IP \(bu 2
  83174. \fBresource_group\fP \-\- The resource group name assigned to the
  83175. network security group.
  83176. .UNINDENT
  83177. .UNINDENT
  83178. .sp
  83179. CLI Example:
  83180. .INDENT 7.0
  83181. .INDENT 3.5
  83182. .sp
  83183. .nf
  83184. .ft C
  83185. salt\-call azurearm_network.network_security_group_get testnsg testgroup
  83186. .ft P
  83187. .fi
  83188. .UNINDENT
  83189. .UNINDENT
  83190. .UNINDENT
  83191. .INDENT 0.0
  83192. .TP
  83193. .B salt.modules.azurearm_network.network_security_groups_list(resource_group, **kwargs)
  83194. New in version 2019.2.0.
  83195. .sp
  83196. List all network security groups within a resource group.
  83197. .INDENT 7.0
  83198. .TP
  83199. .B Parameters
  83200. \fBresource_group\fP \-\- The resource group name to list network security groups within.
  83201. .UNINDENT
  83202. .sp
  83203. CLI Example:
  83204. .INDENT 7.0
  83205. .INDENT 3.5
  83206. .sp
  83207. .nf
  83208. .ft C
  83209. salt\-call azurearm_network.network_security_groups_list testgroup
  83210. .ft P
  83211. .fi
  83212. .UNINDENT
  83213. .UNINDENT
  83214. .UNINDENT
  83215. .INDENT 0.0
  83216. .TP
  83217. .B salt.modules.azurearm_network.network_security_groups_list_all(**kwargs)
  83218. New in version 2019.2.0.
  83219. .sp
  83220. List all network security groups within a subscription.
  83221. .sp
  83222. CLI Example:
  83223. .INDENT 7.0
  83224. .INDENT 3.5
  83225. .sp
  83226. .nf
  83227. .ft C
  83228. salt\-call azurearm_network.network_security_groups_list_all
  83229. .ft P
  83230. .fi
  83231. .UNINDENT
  83232. .UNINDENT
  83233. .UNINDENT
  83234. .INDENT 0.0
  83235. .TP
  83236. .B salt.modules.azurearm_network.public_ip_address_create_or_update(name, resource_group, **kwargs)
  83237. New in version 2019.2.0.
  83238. .sp
  83239. Create or update a public IP address within a specified resource group.
  83240. .INDENT 7.0
  83241. .TP
  83242. .B Parameters
  83243. .INDENT 7.0
  83244. .IP \(bu 2
  83245. \fBname\fP \-\- The name of the public IP address to create.
  83246. .IP \(bu 2
  83247. \fBresource_group\fP \-\- The resource group name assigned to the
  83248. public IP address.
  83249. .UNINDENT
  83250. .UNINDENT
  83251. .sp
  83252. CLI Example:
  83253. .INDENT 7.0
  83254. .INDENT 3.5
  83255. .sp
  83256. .nf
  83257. .ft C
  83258. salt\-call azurearm_network.public_ip_address_create_or_update test\-ip\-0 testgroup
  83259. .ft P
  83260. .fi
  83261. .UNINDENT
  83262. .UNINDENT
  83263. .UNINDENT
  83264. .INDENT 0.0
  83265. .TP
  83266. .B salt.modules.azurearm_network.public_ip_address_delete(name, resource_group, **kwargs)
  83267. New in version 2019.2.0.
  83268. .sp
  83269. Delete a public IP address.
  83270. .INDENT 7.0
  83271. .TP
  83272. .B Parameters
  83273. .INDENT 7.0
  83274. .IP \(bu 2
  83275. \fBname\fP \-\- The name of the public IP address to delete.
  83276. .IP \(bu 2
  83277. \fBresource_group\fP \-\- The resource group name assigned to the
  83278. public IP address.
  83279. .UNINDENT
  83280. .UNINDENT
  83281. .sp
  83282. CLI Example:
  83283. .INDENT 7.0
  83284. .INDENT 3.5
  83285. .sp
  83286. .nf
  83287. .ft C
  83288. salt\-call azurearm_network.public_ip_address_delete test\-pub\-ip testgroup
  83289. .ft P
  83290. .fi
  83291. .UNINDENT
  83292. .UNINDENT
  83293. .UNINDENT
  83294. .INDENT 0.0
  83295. .TP
  83296. .B salt.modules.azurearm_network.public_ip_address_get(name, resource_group, **kwargs)
  83297. New in version 2019.2.0.
  83298. .sp
  83299. Get details about a specific public IP address.
  83300. .INDENT 7.0
  83301. .TP
  83302. .B Parameters
  83303. .INDENT 7.0
  83304. .IP \(bu 2
  83305. \fBname\fP \-\- The name of the public IP address to query.
  83306. .IP \(bu 2
  83307. \fBresource_group\fP \-\- The resource group name assigned to the
  83308. public IP address.
  83309. .UNINDENT
  83310. .UNINDENT
  83311. .sp
  83312. CLI Example:
  83313. .INDENT 7.0
  83314. .INDENT 3.5
  83315. .sp
  83316. .nf
  83317. .ft C
  83318. salt\-call azurearm_network.public_ip_address_get test\-pub\-ip testgroup
  83319. .ft P
  83320. .fi
  83321. .UNINDENT
  83322. .UNINDENT
  83323. .UNINDENT
  83324. .INDENT 0.0
  83325. .TP
  83326. .B salt.modules.azurearm_network.public_ip_addresses_list(resource_group, **kwargs)
  83327. New in version 2019.2.0.
  83328. .sp
  83329. List all public IP addresses within a resource group.
  83330. .INDENT 7.0
  83331. .TP
  83332. .B Parameters
  83333. \fBresource_group\fP \-\- The resource group name to list public IP
  83334. addresses within.
  83335. .UNINDENT
  83336. .sp
  83337. CLI Example:
  83338. .INDENT 7.0
  83339. .INDENT 3.5
  83340. .sp
  83341. .nf
  83342. .ft C
  83343. salt\-call azurearm_network.public_ip_addresses_list testgroup
  83344. .ft P
  83345. .fi
  83346. .UNINDENT
  83347. .UNINDENT
  83348. .UNINDENT
  83349. .INDENT 0.0
  83350. .TP
  83351. .B salt.modules.azurearm_network.public_ip_addresses_list_all(**kwargs)
  83352. New in version 2019.2.0.
  83353. .sp
  83354. List all public IP addresses within a subscription.
  83355. .sp
  83356. CLI Example:
  83357. .INDENT 7.0
  83358. .INDENT 3.5
  83359. .sp
  83360. .nf
  83361. .ft C
  83362. salt\-call azurearm_network.public_ip_addresses_list_all
  83363. .ft P
  83364. .fi
  83365. .UNINDENT
  83366. .UNINDENT
  83367. .UNINDENT
  83368. .INDENT 0.0
  83369. .TP
  83370. .B salt.modules.azurearm_network.route_create_or_update(name, address_prefix, next_hop_type, route_table, resource_group, next_hop_ip_address=None, **kwargs)
  83371. New in version 2019.2.0.
  83372. .sp
  83373. Create or update a route within a specified route table.
  83374. .INDENT 7.0
  83375. .TP
  83376. .B Parameters
  83377. .INDENT 7.0
  83378. .IP \(bu 2
  83379. \fBname\fP \-\- The name of the route to create.
  83380. .IP \(bu 2
  83381. \fBaddress_prefix\fP \-\- The destination CIDR to which the route applies.
  83382. .IP \(bu 2
  83383. \fBnext_hop_type\fP \-\- The type of Azure hop the packet should be sent to. Possible values are:
  83384. \(aqVirtualNetworkGateway\(aq, \(aqVnetLocal\(aq, \(aqInternet\(aq, \(aqVirtualAppliance\(aq, and \(aqNone\(aq.
  83385. .IP \(bu 2
  83386. \fBnext_hop_ip_address\fP \-\- Optional IP address to which packets should be forwarded. Next hop
  83387. values are only allowed in routes where the next_hop_type is \(aqVirtualAppliance\(aq.
  83388. .IP \(bu 2
  83389. \fBroute_table\fP \-\- The name of the route table containing the route.
  83390. .IP \(bu 2
  83391. \fBresource_group\fP \-\- The resource group name assigned to the
  83392. route table.
  83393. .UNINDENT
  83394. .UNINDENT
  83395. .sp
  83396. CLI Example:
  83397. .INDENT 7.0
  83398. .INDENT 3.5
  83399. .sp
  83400. .nf
  83401. .ft C
  83402. salt\-call azurearm_network.route_create_or_update test\-rt \(aq10.0.0.0/8\(aq test\-rt\-table testgroup
  83403. .ft P
  83404. .fi
  83405. .UNINDENT
  83406. .UNINDENT
  83407. .UNINDENT
  83408. .INDENT 0.0
  83409. .TP
  83410. .B salt.modules.azurearm_network.route_delete(name, route_table, resource_group, **kwargs)
  83411. New in version 2019.2.0.
  83412. .sp
  83413. Delete a route from a route table.
  83414. .INDENT 7.0
  83415. .TP
  83416. .B Parameters
  83417. .INDENT 7.0
  83418. .IP \(bu 2
  83419. \fBname\fP \-\- The route to delete.
  83420. .IP \(bu 2
  83421. \fBroute_table\fP \-\- The route table containing the route.
  83422. .IP \(bu 2
  83423. \fBresource_group\fP \-\- The resource group name assigned to the
  83424. route table.
  83425. .UNINDENT
  83426. .UNINDENT
  83427. .sp
  83428. CLI Example:
  83429. .INDENT 7.0
  83430. .INDENT 3.5
  83431. .sp
  83432. .nf
  83433. .ft C
  83434. salt\-call azurearm_network.route_delete test\-rt test\-rt\-table testgroup
  83435. .ft P
  83436. .fi
  83437. .UNINDENT
  83438. .UNINDENT
  83439. .UNINDENT
  83440. .INDENT 0.0
  83441. .TP
  83442. .B salt.modules.azurearm_network.route_filter_create_or_update(name, resource_group, **kwargs)
  83443. New in version 2019.2.0.
  83444. .sp
  83445. Create or update a route filter within a specified resource group.
  83446. .INDENT 7.0
  83447. .TP
  83448. .B Parameters
  83449. .INDENT 7.0
  83450. .IP \(bu 2
  83451. \fBname\fP \-\- The name of the route filter to create.
  83452. .IP \(bu 2
  83453. \fBresource_group\fP \-\- The resource group name assigned to the
  83454. route filter.
  83455. .UNINDENT
  83456. .UNINDENT
  83457. .sp
  83458. CLI Example:
  83459. .INDENT 7.0
  83460. .INDENT 3.5
  83461. .sp
  83462. .nf
  83463. .ft C
  83464. salt\-call azurearm_network.route_filter_create_or_update test\-filter testgroup
  83465. .ft P
  83466. .fi
  83467. .UNINDENT
  83468. .UNINDENT
  83469. .UNINDENT
  83470. .INDENT 0.0
  83471. .TP
  83472. .B salt.modules.azurearm_network.route_filter_delete(name, resource_group, **kwargs)
  83473. New in version 2019.2.0.
  83474. .sp
  83475. Delete a route filter.
  83476. .INDENT 7.0
  83477. .TP
  83478. .B Parameters
  83479. .INDENT 7.0
  83480. .IP \(bu 2
  83481. \fBname\fP \-\- The name of the route filter to delete.
  83482. .IP \(bu 2
  83483. \fBresource_group\fP \-\- The resource group name assigned to the
  83484. route filter.
  83485. .UNINDENT
  83486. .UNINDENT
  83487. .sp
  83488. CLI Example:
  83489. .INDENT 7.0
  83490. .INDENT 3.5
  83491. .sp
  83492. .nf
  83493. .ft C
  83494. salt\-call azurearm_network.route_filter_delete test\-filter testgroup
  83495. .ft P
  83496. .fi
  83497. .UNINDENT
  83498. .UNINDENT
  83499. .UNINDENT
  83500. .INDENT 0.0
  83501. .TP
  83502. .B salt.modules.azurearm_network.route_filter_get(name, resource_group, **kwargs)
  83503. New in version 2019.2.0.
  83504. .sp
  83505. Get details about a specific route filter.
  83506. .INDENT 7.0
  83507. .TP
  83508. .B Parameters
  83509. .INDENT 7.0
  83510. .IP \(bu 2
  83511. \fBname\fP \-\- The name of the route table to query.
  83512. .IP \(bu 2
  83513. \fBresource_group\fP \-\- The resource group name assigned to the
  83514. route filter.
  83515. .UNINDENT
  83516. .UNINDENT
  83517. .sp
  83518. CLI Example:
  83519. .INDENT 7.0
  83520. .INDENT 3.5
  83521. .sp
  83522. .nf
  83523. .ft C
  83524. salt\-call azurearm_network.route_filter_get test\-filter testgroup
  83525. .ft P
  83526. .fi
  83527. .UNINDENT
  83528. .UNINDENT
  83529. .UNINDENT
  83530. .INDENT 0.0
  83531. .TP
  83532. .B salt.modules.azurearm_network.route_filter_rule_create_or_update(name, access, communities, route_filter, resource_group, **kwargs)
  83533. New in version 2019.2.0.
  83534. .sp
  83535. Create or update a rule within a specified route filter.
  83536. .INDENT 7.0
  83537. .TP
  83538. .B Parameters
  83539. .INDENT 7.0
  83540. .IP \(bu 2
  83541. \fBname\fP \-\- The name of the rule to create.
  83542. .IP \(bu 2
  83543. \fBaccess\fP \-\- The access type of the rule. Valid values are \(aqAllow\(aq and \(aqDeny\(aq.
  83544. .IP \(bu 2
  83545. \fBcommunities\fP \-\- A list of BGP communities to filter on.
  83546. .IP \(bu 2
  83547. \fBroute_filter\fP \-\- The name of the route filter containing the rule.
  83548. .IP \(bu 2
  83549. \fBresource_group\fP \-\- The resource group name assigned to the
  83550. route filter.
  83551. .UNINDENT
  83552. .UNINDENT
  83553. .sp
  83554. CLI Example:
  83555. .INDENT 7.0
  83556. .INDENT 3.5
  83557. .sp
  83558. .nf
  83559. .ft C
  83560. salt\-call azurearm_network.route_filter_rule_create_or_update test\-rule allow "[\(aq12076:51006\(aq]" test\-filter testgroup
  83561. .ft P
  83562. .fi
  83563. .UNINDENT
  83564. .UNINDENT
  83565. .UNINDENT
  83566. .INDENT 0.0
  83567. .TP
  83568. .B salt.modules.azurearm_network.route_filter_rule_delete(name, route_filter, resource_group, **kwargs)
  83569. New in version 2019.2.0.
  83570. .sp
  83571. Delete a route filter rule.
  83572. .INDENT 7.0
  83573. .TP
  83574. .B Parameters
  83575. .INDENT 7.0
  83576. .IP \(bu 2
  83577. \fBname\fP \-\- The route filter rule to delete.
  83578. .IP \(bu 2
  83579. \fBroute_filter\fP \-\- The route filter containing the rule.
  83580. .IP \(bu 2
  83581. \fBresource_group\fP \-\- The resource group name assigned to the
  83582. route filter.
  83583. .UNINDENT
  83584. .UNINDENT
  83585. .sp
  83586. CLI Example:
  83587. .INDENT 7.0
  83588. .INDENT 3.5
  83589. .sp
  83590. .nf
  83591. .ft C
  83592. salt\-call azurearm_network.route_filter_rule_delete test\-rule test\-filter testgroup
  83593. .ft P
  83594. .fi
  83595. .UNINDENT
  83596. .UNINDENT
  83597. .UNINDENT
  83598. .INDENT 0.0
  83599. .TP
  83600. .B salt.modules.azurearm_network.route_filter_rule_get(name, route_filter, resource_group, **kwargs)
  83601. New in version 2019.2.0.
  83602. .sp
  83603. Get details about a specific route filter rule.
  83604. .INDENT 7.0
  83605. .TP
  83606. .B Parameters
  83607. .INDENT 7.0
  83608. .IP \(bu 2
  83609. \fBname\fP \-\- The route filter rule to query.
  83610. .IP \(bu 2
  83611. \fBroute_filter\fP \-\- The route filter containing the rule.
  83612. .IP \(bu 2
  83613. \fBresource_group\fP \-\- The resource group name assigned to the
  83614. route filter.
  83615. .UNINDENT
  83616. .UNINDENT
  83617. .sp
  83618. CLI Example:
  83619. .INDENT 7.0
  83620. .INDENT 3.5
  83621. .sp
  83622. .nf
  83623. .ft C
  83624. salt\-call azurearm_network.route_filter_rule_get test\-rule test\-filter testgroup
  83625. .ft P
  83626. .fi
  83627. .UNINDENT
  83628. .UNINDENT
  83629. .UNINDENT
  83630. .INDENT 0.0
  83631. .TP
  83632. .B salt.modules.azurearm_network.route_filter_rules_list(route_filter, resource_group, **kwargs)
  83633. New in version 2019.2.0.
  83634. .sp
  83635. List all routes within a route filter.
  83636. .INDENT 7.0
  83637. .TP
  83638. .B Parameters
  83639. .INDENT 7.0
  83640. .IP \(bu 2
  83641. \fBroute_filter\fP \-\- The route filter to query.
  83642. .IP \(bu 2
  83643. \fBresource_group\fP \-\- The resource group name assigned to the
  83644. route filter.
  83645. .UNINDENT
  83646. .UNINDENT
  83647. .sp
  83648. CLI Example:
  83649. .INDENT 7.0
  83650. .INDENT 3.5
  83651. .sp
  83652. .nf
  83653. .ft C
  83654. salt\-call azurearm_network.route_filter_rules_list test\-filter testgroup
  83655. .ft P
  83656. .fi
  83657. .UNINDENT
  83658. .UNINDENT
  83659. .UNINDENT
  83660. .INDENT 0.0
  83661. .TP
  83662. .B salt.modules.azurearm_network.route_filters_list(resource_group, **kwargs)
  83663. New in version 2019.2.0.
  83664. .sp
  83665. List all route filters within a resource group.
  83666. .INDENT 7.0
  83667. .TP
  83668. .B Parameters
  83669. \fBresource_group\fP \-\- The resource group name to list route
  83670. filters within.
  83671. .UNINDENT
  83672. .sp
  83673. CLI Example:
  83674. .INDENT 7.0
  83675. .INDENT 3.5
  83676. .sp
  83677. .nf
  83678. .ft C
  83679. salt\-call azurearm_network.route_filters_list testgroup
  83680. .ft P
  83681. .fi
  83682. .UNINDENT
  83683. .UNINDENT
  83684. .UNINDENT
  83685. .INDENT 0.0
  83686. .TP
  83687. .B salt.modules.azurearm_network.route_filters_list_all(**kwargs)
  83688. New in version 2019.2.0.
  83689. .sp
  83690. List all route filters within a subscription.
  83691. .sp
  83692. CLI Example:
  83693. .INDENT 7.0
  83694. .INDENT 3.5
  83695. .sp
  83696. .nf
  83697. .ft C
  83698. salt\-call azurearm_network.route_filters_list_all
  83699. .ft P
  83700. .fi
  83701. .UNINDENT
  83702. .UNINDENT
  83703. .UNINDENT
  83704. .INDENT 0.0
  83705. .TP
  83706. .B salt.modules.azurearm_network.route_get(name, route_table, resource_group, **kwargs)
  83707. New in version 2019.2.0.
  83708. .sp
  83709. Get details about a specific route.
  83710. .INDENT 7.0
  83711. .TP
  83712. .B Parameters
  83713. .INDENT 7.0
  83714. .IP \(bu 2
  83715. \fBname\fP \-\- The route to query.
  83716. .IP \(bu 2
  83717. \fBroute_table\fP \-\- The route table containing the route.
  83718. .IP \(bu 2
  83719. \fBresource_group\fP \-\- The resource group name assigned to the
  83720. route table.
  83721. .UNINDENT
  83722. .UNINDENT
  83723. .sp
  83724. CLI Example:
  83725. .INDENT 7.0
  83726. .INDENT 3.5
  83727. .sp
  83728. .nf
  83729. .ft C
  83730. salt\-call azurearm_network.route_get test\-rt test\-rt\-table testgroup
  83731. .ft P
  83732. .fi
  83733. .UNINDENT
  83734. .UNINDENT
  83735. .UNINDENT
  83736. .INDENT 0.0
  83737. .TP
  83738. .B salt.modules.azurearm_network.route_table_create_or_update(name, resource_group, **kwargs)
  83739. New in version 2019.2.0.
  83740. .sp
  83741. Create or update a route table within a specified resource group.
  83742. .INDENT 7.0
  83743. .TP
  83744. .B Parameters
  83745. .INDENT 7.0
  83746. .IP \(bu 2
  83747. \fBname\fP \-\- The name of the route table to create.
  83748. .IP \(bu 2
  83749. \fBresource_group\fP \-\- The resource group name assigned to the
  83750. route table.
  83751. .UNINDENT
  83752. .UNINDENT
  83753. .sp
  83754. CLI Example:
  83755. .INDENT 7.0
  83756. .INDENT 3.5
  83757. .sp
  83758. .nf
  83759. .ft C
  83760. salt\-call azurearm_network.route_table_create_or_update test\-rt\-table testgroup
  83761. .ft P
  83762. .fi
  83763. .UNINDENT
  83764. .UNINDENT
  83765. .UNINDENT
  83766. .INDENT 0.0
  83767. .TP
  83768. .B salt.modules.azurearm_network.route_table_delete(name, resource_group, **kwargs)
  83769. New in version 2019.2.0.
  83770. .sp
  83771. Delete a route table.
  83772. .INDENT 7.0
  83773. .TP
  83774. .B Parameters
  83775. .INDENT 7.0
  83776. .IP \(bu 2
  83777. \fBname\fP \-\- The name of the route table to delete.
  83778. .IP \(bu 2
  83779. \fBresource_group\fP \-\- The resource group name assigned to the
  83780. route table.
  83781. .UNINDENT
  83782. .UNINDENT
  83783. .sp
  83784. CLI Example:
  83785. .INDENT 7.0
  83786. .INDENT 3.5
  83787. .sp
  83788. .nf
  83789. .ft C
  83790. salt\-call azurearm_network.route_table_delete test\-rt\-table testgroup
  83791. .ft P
  83792. .fi
  83793. .UNINDENT
  83794. .UNINDENT
  83795. .UNINDENT
  83796. .INDENT 0.0
  83797. .TP
  83798. .B salt.modules.azurearm_network.route_table_get(name, resource_group, **kwargs)
  83799. New in version 2019.2.0.
  83800. .sp
  83801. Get details about a specific route table.
  83802. .INDENT 7.0
  83803. .TP
  83804. .B Parameters
  83805. .INDENT 7.0
  83806. .IP \(bu 2
  83807. \fBname\fP \-\- The name of the route table to query.
  83808. .IP \(bu 2
  83809. \fBresource_group\fP \-\- The resource group name assigned to the
  83810. route table.
  83811. .UNINDENT
  83812. .UNINDENT
  83813. .sp
  83814. CLI Example:
  83815. .INDENT 7.0
  83816. .INDENT 3.5
  83817. .sp
  83818. .nf
  83819. .ft C
  83820. salt\-call azurearm_network.route_table_get test\-rt\-table testgroup
  83821. .ft P
  83822. .fi
  83823. .UNINDENT
  83824. .UNINDENT
  83825. .UNINDENT
  83826. .INDENT 0.0
  83827. .TP
  83828. .B salt.modules.azurearm_network.route_tables_list(resource_group, **kwargs)
  83829. New in version 2019.2.0.
  83830. .sp
  83831. List all route tables within a resource group.
  83832. .INDENT 7.0
  83833. .TP
  83834. .B Parameters
  83835. \fBresource_group\fP \-\- The resource group name to list route
  83836. tables within.
  83837. .UNINDENT
  83838. .sp
  83839. CLI Example:
  83840. .INDENT 7.0
  83841. .INDENT 3.5
  83842. .sp
  83843. .nf
  83844. .ft C
  83845. salt\-call azurearm_network.route_tables_list testgroup
  83846. .ft P
  83847. .fi
  83848. .UNINDENT
  83849. .UNINDENT
  83850. .UNINDENT
  83851. .INDENT 0.0
  83852. .TP
  83853. .B salt.modules.azurearm_network.route_tables_list_all(**kwargs)
  83854. New in version 2019.2.0.
  83855. .sp
  83856. List all route tables within a subscription.
  83857. .sp
  83858. CLI Example:
  83859. .INDENT 7.0
  83860. .INDENT 3.5
  83861. .sp
  83862. .nf
  83863. .ft C
  83864. salt\-call azurearm_network.route_tables_list_all
  83865. .ft P
  83866. .fi
  83867. .UNINDENT
  83868. .UNINDENT
  83869. .UNINDENT
  83870. .INDENT 0.0
  83871. .TP
  83872. .B salt.modules.azurearm_network.routes_list(route_table, resource_group, **kwargs)
  83873. New in version 2019.2.0.
  83874. .sp
  83875. List all routes within a route table.
  83876. .INDENT 7.0
  83877. .TP
  83878. .B Parameters
  83879. .INDENT 7.0
  83880. .IP \(bu 2
  83881. \fBroute_table\fP \-\- The route table to query.
  83882. .IP \(bu 2
  83883. \fBresource_group\fP \-\- The resource group name assigned to the
  83884. route table.
  83885. .UNINDENT
  83886. .UNINDENT
  83887. .sp
  83888. CLI Example:
  83889. .INDENT 7.0
  83890. .INDENT 3.5
  83891. .sp
  83892. .nf
  83893. .ft C
  83894. salt\-call azurearm_network.routes_list test\-rt\-table testgroup
  83895. .ft P
  83896. .fi
  83897. .UNINDENT
  83898. .UNINDENT
  83899. .UNINDENT
  83900. .INDENT 0.0
  83901. .TP
  83902. .B salt.modules.azurearm_network.security_rule_create_or_update(name, access, direction, priority, protocol, security_group, resource_group, source_address_prefix=None, destination_address_prefix=None, source_port_range=None, destination_port_range=None, source_address_prefixes=None, destination_address_prefixes=None, source_port_ranges=None, destination_port_ranges=None, **kwargs)
  83903. New in version 2019.2.0.
  83904. .sp
  83905. Create or update a security rule within a specified network security group.
  83906. .INDENT 7.0
  83907. .TP
  83908. .B Parameters
  83909. .INDENT 7.0
  83910. .IP \(bu 2
  83911. \fBname\fP \-\- The name of the security rule to create.
  83912. .IP \(bu 2
  83913. \fBaccess\fP \-\- \(aqallow\(aq or \(aqdeny\(aq
  83914. .IP \(bu 2
  83915. \fBdirection\fP \-\- \(aqinbound\(aq or \(aqoutbound\(aq
  83916. .IP \(bu 2
  83917. \fBpriority\fP \-\- Integer between 100 and 4096 used for ordering rule application.
  83918. .IP \(bu 2
  83919. \fBprotocol\fP \-\- \(aqtcp\(aq, \(aqudp\(aq, or \(aq*\(aq
  83920. .IP \(bu 2
  83921. \fBdestination_address_prefix\fP \-\- The CIDR or destination IP range. Asterix \(aq*\(aq can also be used to match all destination IPs.
  83922. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  83923. If this is an ingress rule, specifies where network traffic originates from.
  83924. .IP \(bu 2
  83925. \fBdestination_port_range\fP \-\- The destination port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  83926. can also be used to match all ports.
  83927. .IP \(bu 2
  83928. \fBsource_address_prefix\fP \-\- The CIDR or source IP range. Asterix \(aq*\(aq can also be used to match all source IPs.
  83929. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  83930. If this is an ingress rule, specifies where network traffic originates from.
  83931. .IP \(bu 2
  83932. \fBsource_port_range\fP \-\- The source port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  83933. can also be used to match all ports.
  83934. .IP \(bu 2
  83935. \fBdestination_address_prefixes\fP \-\- A list of destination_address_prefix values. This parameter overrides destination_address_prefix
  83936. and will cause any value entered there to be ignored.
  83937. .IP \(bu 2
  83938. \fBdestination_port_ranges\fP \-\- A list of destination_port_range values. This parameter overrides destination_port_range
  83939. and will cause any value entered there to be ignored.
  83940. .IP \(bu 2
  83941. \fBsource_address_prefixes\fP \-\- A list of source_address_prefix values. This parameter overrides source_address_prefix
  83942. and will cause any value entered there to be ignored.
  83943. .IP \(bu 2
  83944. \fBsource_port_ranges\fP \-\- A list of source_port_range values. This parameter overrides source_port_range
  83945. and will cause any value entered there to be ignored.
  83946. .IP \(bu 2
  83947. \fBsecurity_group\fP \-\- The network security group containing the
  83948. security rule.
  83949. .IP \(bu 2
  83950. \fBresource_group\fP \-\- The resource group name assigned to the
  83951. network security group.
  83952. .UNINDENT
  83953. .UNINDENT
  83954. .sp
  83955. CLI Example:
  83956. .INDENT 7.0
  83957. .INDENT 3.5
  83958. .sp
  83959. .nf
  83960. .ft C
  83961. salt\-call azurearm_network.security_rule_create_or_update testrule1 allow outbound 101 tcp testnsg testgroup source_address_prefix=\(aq*\(aq destination_address_prefix=internet source_port_range=\(aq*\(aq destination_port_range=\(aq1\-1024\(aq
  83962. .ft P
  83963. .fi
  83964. .UNINDENT
  83965. .UNINDENT
  83966. .UNINDENT
  83967. .INDENT 0.0
  83968. .TP
  83969. .B salt.modules.azurearm_network.security_rule_delete(security_rule, security_group, resource_group, **kwargs)
  83970. New in version 2019.2.0.
  83971. .sp
  83972. Delete a security rule within a specified security group.
  83973. .INDENT 7.0
  83974. .TP
  83975. .B Parameters
  83976. .INDENT 7.0
  83977. .IP \(bu 2
  83978. \fBname\fP \-\- The name of the security rule to delete.
  83979. .IP \(bu 2
  83980. \fBsecurity_group\fP \-\- The network security group containing the
  83981. security rule.
  83982. .IP \(bu 2
  83983. \fBresource_group\fP \-\- The resource group name assigned to the
  83984. network security group.
  83985. .UNINDENT
  83986. .UNINDENT
  83987. .sp
  83988. CLI Example:
  83989. .INDENT 7.0
  83990. .INDENT 3.5
  83991. .sp
  83992. .nf
  83993. .ft C
  83994. salt\-call azurearm_network.security_rule_delete testrule1 testnsg testgroup
  83995. .ft P
  83996. .fi
  83997. .UNINDENT
  83998. .UNINDENT
  83999. .UNINDENT
  84000. .INDENT 0.0
  84001. .TP
  84002. .B salt.modules.azurearm_network.security_rule_get(security_rule, security_group, resource_group, **kwargs)
  84003. New in version 2019.2.0.
  84004. .sp
  84005. Get a security rule within a specified network security group.
  84006. .INDENT 7.0
  84007. .TP
  84008. .B Parameters
  84009. .INDENT 7.0
  84010. .IP \(bu 2
  84011. \fBname\fP \-\- The name of the security rule to query.
  84012. .IP \(bu 2
  84013. \fBsecurity_group\fP \-\- The network security group containing the
  84014. security rule.
  84015. .IP \(bu 2
  84016. \fBresource_group\fP \-\- The resource group name assigned to the
  84017. network security group.
  84018. .UNINDENT
  84019. .UNINDENT
  84020. .sp
  84021. CLI Example:
  84022. .INDENT 7.0
  84023. .INDENT 3.5
  84024. .sp
  84025. .nf
  84026. .ft C
  84027. salt\-call azurearm_network.security_rule_get testrule1 testnsg testgroup
  84028. .ft P
  84029. .fi
  84030. .UNINDENT
  84031. .UNINDENT
  84032. .UNINDENT
  84033. .INDENT 0.0
  84034. .TP
  84035. .B salt.modules.azurearm_network.security_rules_list(security_group, resource_group, **kwargs)
  84036. New in version 2019.2.0.
  84037. .sp
  84038. List security rules within a network security group.
  84039. .INDENT 7.0
  84040. .TP
  84041. .B Parameters
  84042. .INDENT 7.0
  84043. .IP \(bu 2
  84044. \fBsecurity_group\fP \-\- The network security group to query.
  84045. .IP \(bu 2
  84046. \fBresource_group\fP \-\- The resource group name assigned to the
  84047. network security group.
  84048. .UNINDENT
  84049. .UNINDENT
  84050. .sp
  84051. CLI Example:
  84052. .INDENT 7.0
  84053. .INDENT 3.5
  84054. .sp
  84055. .nf
  84056. .ft C
  84057. salt\-call azurearm_network.security_rules_list testnsg testgroup
  84058. .ft P
  84059. .fi
  84060. .UNINDENT
  84061. .UNINDENT
  84062. .UNINDENT
  84063. .INDENT 0.0
  84064. .TP
  84065. .B salt.modules.azurearm_network.subnet_create_or_update(name, address_prefix, virtual_network, resource_group, **kwargs)
  84066. New in version 2019.2.0.
  84067. .sp
  84068. Create or update a subnet.
  84069. .INDENT 7.0
  84070. .TP
  84071. .B Parameters
  84072. .INDENT 7.0
  84073. .IP \(bu 2
  84074. \fBname\fP \-\- The name assigned to the subnet being created or updated.
  84075. .IP \(bu 2
  84076. \fBaddress_prefix\fP \-\- A valid CIDR block within the virtual network.
  84077. .IP \(bu 2
  84078. \fBvirtual_network\fP \-\- The virtual network name containing the
  84079. subnet.
  84080. .IP \(bu 2
  84081. \fBresource_group\fP \-\- The resource group name assigned to the
  84082. virtual network.
  84083. .UNINDENT
  84084. .UNINDENT
  84085. .sp
  84086. CLI Example:
  84087. .INDENT 7.0
  84088. .INDENT 3.5
  84089. .sp
  84090. .nf
  84091. .ft C
  84092. salt\-call azurearm_network.subnet_create_or_update testsubnet \(aq10.0.0.0/24\(aq testnet testgroup
  84093. .ft P
  84094. .fi
  84095. .UNINDENT
  84096. .UNINDENT
  84097. .UNINDENT
  84098. .INDENT 0.0
  84099. .TP
  84100. .B salt.modules.azurearm_network.subnet_delete(name, virtual_network, resource_group, **kwargs)
  84101. New in version 2019.2.0.
  84102. .sp
  84103. Delete a subnet.
  84104. .INDENT 7.0
  84105. .TP
  84106. .B Parameters
  84107. .INDENT 7.0
  84108. .IP \(bu 2
  84109. \fBname\fP \-\- The name of the subnet to delete.
  84110. .IP \(bu 2
  84111. \fBvirtual_network\fP \-\- The virtual network name containing the
  84112. subnet.
  84113. .IP \(bu 2
  84114. \fBresource_group\fP \-\- The resource group name assigned to the
  84115. virtual network.
  84116. .UNINDENT
  84117. .UNINDENT
  84118. .sp
  84119. CLI Example:
  84120. .INDENT 7.0
  84121. .INDENT 3.5
  84122. .sp
  84123. .nf
  84124. .ft C
  84125. salt\-call azurearm_network.subnet_delete testsubnet testnet testgroup
  84126. .ft P
  84127. .fi
  84128. .UNINDENT
  84129. .UNINDENT
  84130. .UNINDENT
  84131. .INDENT 0.0
  84132. .TP
  84133. .B salt.modules.azurearm_network.subnet_get(name, virtual_network, resource_group, **kwargs)
  84134. New in version 2019.2.0.
  84135. .sp
  84136. Get details about a specific subnet.
  84137. .INDENT 7.0
  84138. .TP
  84139. .B Parameters
  84140. .INDENT 7.0
  84141. .IP \(bu 2
  84142. \fBname\fP \-\- The name of the subnet to query.
  84143. .IP \(bu 2
  84144. \fBvirtual_network\fP \-\- The virtual network name containing the
  84145. subnet.
  84146. .IP \(bu 2
  84147. \fBresource_group\fP \-\- The resource group name assigned to the
  84148. virtual network.
  84149. .UNINDENT
  84150. .UNINDENT
  84151. .sp
  84152. CLI Example:
  84153. .INDENT 7.0
  84154. .INDENT 3.5
  84155. .sp
  84156. .nf
  84157. .ft C
  84158. salt\-call azurearm_network.subnet_get testsubnet testnet testgroup
  84159. .ft P
  84160. .fi
  84161. .UNINDENT
  84162. .UNINDENT
  84163. .UNINDENT
  84164. .INDENT 0.0
  84165. .TP
  84166. .B salt.modules.azurearm_network.subnets_list(virtual_network, resource_group, **kwargs)
  84167. New in version 2019.2.0.
  84168. .sp
  84169. List all subnets within a virtual network.
  84170. .INDENT 7.0
  84171. .TP
  84172. .B Parameters
  84173. .INDENT 7.0
  84174. .IP \(bu 2
  84175. \fBvirtual_network\fP \-\- The virtual network name to list subnets within.
  84176. .IP \(bu 2
  84177. \fBresource_group\fP \-\- The resource group name assigned to the
  84178. virtual network.
  84179. .UNINDENT
  84180. .UNINDENT
  84181. .sp
  84182. CLI Example:
  84183. .INDENT 7.0
  84184. .INDENT 3.5
  84185. .sp
  84186. .nf
  84187. .ft C
  84188. salt\-call azurearm_network.subnets_list testnet testgroup
  84189. .ft P
  84190. .fi
  84191. .UNINDENT
  84192. .UNINDENT
  84193. .UNINDENT
  84194. .INDENT 0.0
  84195. .TP
  84196. .B salt.modules.azurearm_network.usages_list(location, **kwargs)
  84197. New in version 2019.2.0.
  84198. .sp
  84199. List subscription network usage for a location.
  84200. .INDENT 7.0
  84201. .TP
  84202. .B Parameters
  84203. \fBlocation\fP \-\- The Azure location to query for network usage.
  84204. .UNINDENT
  84205. .sp
  84206. CLI Example:
  84207. .INDENT 7.0
  84208. .INDENT 3.5
  84209. .sp
  84210. .nf
  84211. .ft C
  84212. salt\-call azurearm_network.usages_list westus
  84213. .ft P
  84214. .fi
  84215. .UNINDENT
  84216. .UNINDENT
  84217. .UNINDENT
  84218. .INDENT 0.0
  84219. .TP
  84220. .B salt.modules.azurearm_network.virtual_network_create_or_update(name, address_prefixes, resource_group, **kwargs)
  84221. New in version 2019.2.0.
  84222. .sp
  84223. Create or update a virtual network.
  84224. .INDENT 7.0
  84225. .TP
  84226. .B Parameters
  84227. .INDENT 7.0
  84228. .IP \(bu 2
  84229. \fBname\fP \-\- The name assigned to the virtual network being
  84230. created or updated.
  84231. .IP \(bu 2
  84232. \fBaddress_prefixes\fP \-\- A list of CIDR blocks which can be used
  84233. by subnets within the virtual network.
  84234. .IP \(bu 2
  84235. \fBresource_group\fP \-\- The resource group name assigned to the
  84236. virtual network.
  84237. .UNINDENT
  84238. .UNINDENT
  84239. .sp
  84240. CLI Example:
  84241. .INDENT 7.0
  84242. .INDENT 3.5
  84243. .sp
  84244. .nf
  84245. .ft C
  84246. salt\-call azurearm_network.virtual_network_create_or_update testnet [\(aq10.0.0.0/16\(aq] testgroup
  84247. .ft P
  84248. .fi
  84249. .UNINDENT
  84250. .UNINDENT
  84251. .UNINDENT
  84252. .INDENT 0.0
  84253. .TP
  84254. .B salt.modules.azurearm_network.virtual_network_delete(name, resource_group, **kwargs)
  84255. New in version 2019.2.0.
  84256. .sp
  84257. Delete a virtual network.
  84258. .INDENT 7.0
  84259. .TP
  84260. .B Parameters
  84261. .INDENT 7.0
  84262. .IP \(bu 2
  84263. \fBname\fP \-\- The name of the virtual network to delete.
  84264. .IP \(bu 2
  84265. \fBresource_group\fP \-\- The resource group name assigned to the
  84266. virtual network
  84267. .UNINDENT
  84268. .UNINDENT
  84269. .sp
  84270. CLI Example:
  84271. .INDENT 7.0
  84272. .INDENT 3.5
  84273. .sp
  84274. .nf
  84275. .ft C
  84276. salt\-call azurearm_network.virtual_network_delete testnet testgroup
  84277. .ft P
  84278. .fi
  84279. .UNINDENT
  84280. .UNINDENT
  84281. .UNINDENT
  84282. .INDENT 0.0
  84283. .TP
  84284. .B salt.modules.azurearm_network.virtual_network_get(name, resource_group, **kwargs)
  84285. New in version 2019.2.0.
  84286. .sp
  84287. Get details about a specific virtual network.
  84288. .INDENT 7.0
  84289. .TP
  84290. .B Parameters
  84291. .INDENT 7.0
  84292. .IP \(bu 2
  84293. \fBname\fP \-\- The name of the virtual network to query.
  84294. .IP \(bu 2
  84295. \fBresource_group\fP \-\- The resource group name assigned to the
  84296. virtual network.
  84297. .UNINDENT
  84298. .UNINDENT
  84299. .sp
  84300. CLI Example:
  84301. .INDENT 7.0
  84302. .INDENT 3.5
  84303. .sp
  84304. .nf
  84305. .ft C
  84306. salt\-call azurearm_network.virtual_network_get testnet testgroup
  84307. .ft P
  84308. .fi
  84309. .UNINDENT
  84310. .UNINDENT
  84311. .UNINDENT
  84312. .INDENT 0.0
  84313. .TP
  84314. .B salt.modules.azurearm_network.virtual_networks_list(resource_group, **kwargs)
  84315. New in version 2019.2.0.
  84316. .sp
  84317. List all virtual networks within a resource group.
  84318. .INDENT 7.0
  84319. .TP
  84320. .B Parameters
  84321. \fBresource_group\fP \-\- The resource group name to list virtual networks
  84322. within.
  84323. .UNINDENT
  84324. .sp
  84325. CLI Example:
  84326. .INDENT 7.0
  84327. .INDENT 3.5
  84328. .sp
  84329. .nf
  84330. .ft C
  84331. salt\-call azurearm_network.virtual_networks_list testgroup
  84332. .ft P
  84333. .fi
  84334. .UNINDENT
  84335. .UNINDENT
  84336. .UNINDENT
  84337. .INDENT 0.0
  84338. .TP
  84339. .B salt.modules.azurearm_network.virtual_networks_list_all(**kwargs)
  84340. New in version 2019.2.0.
  84341. .sp
  84342. List all virtual networks within a subscription.
  84343. .sp
  84344. CLI Example:
  84345. .INDENT 7.0
  84346. .INDENT 3.5
  84347. .sp
  84348. .nf
  84349. .ft C
  84350. salt\-call azurearm_network.virtual_networks_list_all
  84351. .ft P
  84352. .fi
  84353. .UNINDENT
  84354. .UNINDENT
  84355. .UNINDENT
  84356. .SS salt.modules.boto3_sns module
  84357. .sp
  84358. Connection module for Amazon SNS
  84359. .INDENT 0.0
  84360. .TP
  84361. .B configuration
  84362. This module accepts explicit sns credentials but can also
  84363. utilize IAM roles assigned to the instance through Instance Profiles. Dynamic
  84364. credentials are then automatically obtained from AWS API and no further
  84365. configuration is necessary. More Information available at:
  84366. .INDENT 7.0
  84367. .INDENT 3.5
  84368. .sp
  84369. .nf
  84370. .ft C
  84371. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  84372. .ft P
  84373. .fi
  84374. .UNINDENT
  84375. .UNINDENT
  84376. .sp
  84377. If IAM roles are not used you need to specify them either in a pillar or
  84378. in the minion\(aqs config file:
  84379. .INDENT 7.0
  84380. .INDENT 3.5
  84381. .sp
  84382. .nf
  84383. .ft C
  84384. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  84385. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84386. .ft P
  84387. .fi
  84388. .UNINDENT
  84389. .UNINDENT
  84390. .sp
  84391. A region may also be specified in the configuration:
  84392. .INDENT 7.0
  84393. .INDENT 3.5
  84394. .sp
  84395. .nf
  84396. .ft C
  84397. sns.region: us\-east\-1
  84398. .ft P
  84399. .fi
  84400. .UNINDENT
  84401. .UNINDENT
  84402. .sp
  84403. If a region is not specified, the default is us\-east\-1.
  84404. .sp
  84405. It\(aqs also possible to specify key, keyid and region via a profile, either
  84406. as a passed in dict, or as a string to pull from pillars or minion config:
  84407. .INDENT 7.0
  84408. .INDENT 3.5
  84409. .sp
  84410. .nf
  84411. .ft C
  84412. myprofile:
  84413. keyid: GKTADJGHEIQSXMKKRBJ08H
  84414. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84415. region: us\-east\-1
  84416. .ft P
  84417. .fi
  84418. .UNINDENT
  84419. .UNINDENT
  84420. .TP
  84421. .B depends
  84422. boto3
  84423. .UNINDENT
  84424. .INDENT 0.0
  84425. .TP
  84426. .B salt.modules.boto3_sns.create_topic(Name, region=None, key=None, keyid=None, profile=None)
  84427. Create an SNS topic.
  84428. .sp
  84429. CLI example:
  84430. .INDENT 7.0
  84431. .INDENT 3.5
  84432. .sp
  84433. .nf
  84434. .ft C
  84435. salt myminion boto3_sns.create_topic mytopic region=us\-east\-1
  84436. .ft P
  84437. .fi
  84438. .UNINDENT
  84439. .UNINDENT
  84440. .UNINDENT
  84441. .INDENT 0.0
  84442. .TP
  84443. .B salt.modules.boto3_sns.delete_topic(TopicArn, region=None, key=None, keyid=None, profile=None)
  84444. Delete an SNS topic.
  84445. .sp
  84446. CLI example:
  84447. .INDENT 7.0
  84448. .INDENT 3.5
  84449. .sp
  84450. .nf
  84451. .ft C
  84452. salt myminion boto3_sns.delete_topic mytopic region=us\-east\-1
  84453. .ft P
  84454. .fi
  84455. .UNINDENT
  84456. .UNINDENT
  84457. .UNINDENT
  84458. .INDENT 0.0
  84459. .TP
  84460. .B salt.modules.boto3_sns.describe_topic(name, region=None, key=None, keyid=None, profile=None)
  84461. Returns details about a specific SNS topic, specified by name or ARN.
  84462. .sp
  84463. CLI example:
  84464. .INDENT 7.0
  84465. .INDENT 3.5
  84466. .sp
  84467. .nf
  84468. .ft C
  84469. salt my_favorite_client boto3_sns.describe_topic a_sns_topic_of_my_choice
  84470. .ft P
  84471. .fi
  84472. .UNINDENT
  84473. .UNINDENT
  84474. .UNINDENT
  84475. .INDENT 0.0
  84476. .TP
  84477. .B salt.modules.boto3_sns.get_subscription_attributes(SubscriptionArn, region=None, key=None, keyid=None, profile=None)
  84478. Returns all of the properties of a subscription.
  84479. .sp
  84480. CLI example:
  84481. .INDENT 7.0
  84482. .INDENT 3.5
  84483. .sp
  84484. .nf
  84485. .ft C
  84486. salt myminion boto3_sns.get_subscription_attributes somesubscription region=us\-west\-1
  84487. .ft P
  84488. .fi
  84489. .UNINDENT
  84490. .UNINDENT
  84491. .UNINDENT
  84492. .INDENT 0.0
  84493. .TP
  84494. .B salt.modules.boto3_sns.get_topic_attributes(TopicArn, region=None, key=None, keyid=None, profile=None)
  84495. Returns all of the properties of a topic. Topic properties returned might differ based on the
  84496. authorization of the user.
  84497. .sp
  84498. CLI example:
  84499. .INDENT 7.0
  84500. .INDENT 3.5
  84501. .sp
  84502. .nf
  84503. .ft C
  84504. salt myminion boto3_sns.get_topic_attributes someTopic region=us\-west\-1
  84505. .ft P
  84506. .fi
  84507. .UNINDENT
  84508. .UNINDENT
  84509. .UNINDENT
  84510. .INDENT 0.0
  84511. .TP
  84512. .B salt.modules.boto3_sns.list_subscriptions(region=None, key=None, keyid=None, profile=None)
  84513. Returns a list of the requester\(aqs topics
  84514. .sp
  84515. CLI example:
  84516. .INDENT 7.0
  84517. .INDENT 3.5
  84518. .sp
  84519. .nf
  84520. .ft C
  84521. salt myminion boto3_sns.list_subscriptions region=us\-east\-1
  84522. .ft P
  84523. .fi
  84524. .UNINDENT
  84525. .UNINDENT
  84526. .UNINDENT
  84527. .INDENT 0.0
  84528. .TP
  84529. .B salt.modules.boto3_sns.list_subscriptions_by_topic(TopicArn, region=None, key=None, keyid=None, profile=None)
  84530. Returns a list of the subscriptions to a specific topic
  84531. .sp
  84532. CLI example:
  84533. .INDENT 7.0
  84534. .INDENT 3.5
  84535. .sp
  84536. .nf
  84537. .ft C
  84538. salt myminion boto3_sns.list_subscriptions_by_topic mytopic region=us\-east\-1
  84539. .ft P
  84540. .fi
  84541. .UNINDENT
  84542. .UNINDENT
  84543. .UNINDENT
  84544. .INDENT 0.0
  84545. .TP
  84546. .B salt.modules.boto3_sns.list_topics(region=None, key=None, keyid=None, profile=None)
  84547. Returns a list of the requester\(aqs topics
  84548. .sp
  84549. CLI example:
  84550. .INDENT 7.0
  84551. .INDENT 3.5
  84552. .sp
  84553. .nf
  84554. .ft C
  84555. salt myminion boto3_sns.list_topics
  84556. .ft P
  84557. .fi
  84558. .UNINDENT
  84559. .UNINDENT
  84560. .UNINDENT
  84561. .INDENT 0.0
  84562. .TP
  84563. .B salt.modules.boto3_sns.set_subscription_attributes(SubscriptionArn, AttributeName, AttributeValue, region=None, key=None, keyid=None, profile=None)
  84564. Set an attribute of a subscription to a new value.
  84565. .sp
  84566. CLI example:
  84567. .INDENT 7.0
  84568. .INDENT 3.5
  84569. .sp
  84570. .nf
  84571. .ft C
  84572. salt myminion boto3_sns.set_subscription_attributes someSubscription RawMessageDelivery jsonStringValue
  84573. .ft P
  84574. .fi
  84575. .UNINDENT
  84576. .UNINDENT
  84577. .UNINDENT
  84578. .INDENT 0.0
  84579. .TP
  84580. .B salt.modules.boto3_sns.set_topic_attributes(TopicArn, AttributeName, AttributeValue, region=None, key=None, keyid=None, profile=None)
  84581. Set an attribute of a topic to a new value.
  84582. .sp
  84583. CLI example:
  84584. .INDENT 7.0
  84585. .INDENT 3.5
  84586. .sp
  84587. .nf
  84588. .ft C
  84589. salt myminion boto3_sns.set_topic_attributes someTopic DisplayName myDisplayNameValue
  84590. .ft P
  84591. .fi
  84592. .UNINDENT
  84593. .UNINDENT
  84594. .UNINDENT
  84595. .INDENT 0.0
  84596. .TP
  84597. .B salt.modules.boto3_sns.subscribe(TopicArn, Protocol, Endpoint, region=None, key=None, keyid=None, profile=None)
  84598. Subscribe to a Topic.
  84599. .sp
  84600. CLI example:
  84601. .INDENT 7.0
  84602. .INDENT 3.5
  84603. .sp
  84604. .nf
  84605. .ft C
  84606. salt myminion boto3_sns.subscribe mytopic https https://www.example.com/sns\-endpoint
  84607. .ft P
  84608. .fi
  84609. .UNINDENT
  84610. .UNINDENT
  84611. .UNINDENT
  84612. .INDENT 0.0
  84613. .TP
  84614. .B salt.modules.boto3_sns.topic_exists(name, region=None, key=None, keyid=None, profile=None)
  84615. Check to see if an SNS topic exists.
  84616. .sp
  84617. CLI example:
  84618. .INDENT 7.0
  84619. .INDENT 3.5
  84620. .sp
  84621. .nf
  84622. .ft C
  84623. salt myminion boto3_sns.topic_exists mytopic region=us\-east\-1
  84624. .ft P
  84625. .fi
  84626. .UNINDENT
  84627. .UNINDENT
  84628. .UNINDENT
  84629. .INDENT 0.0
  84630. .TP
  84631. .B salt.modules.boto3_sns.unsubscribe(SubscriptionArn, region=None, key=None, keyid=None, profile=None)
  84632. Unsubscribe a specific SubscriptionArn of a topic.
  84633. .sp
  84634. CLI Example:
  84635. .INDENT 7.0
  84636. .INDENT 3.5
  84637. .sp
  84638. .nf
  84639. .ft C
  84640. salt myminion boto3_sns.unsubscribe my_subscription_arn region=us\-east\-1
  84641. .ft P
  84642. .fi
  84643. .UNINDENT
  84644. .UNINDENT
  84645. .UNINDENT
  84646. .SS salt.modules.boto_cfn
  84647. .sp
  84648. Connection module for Amazon Cloud Formation
  84649. .sp
  84650. New in version 2015.5.0.
  84651. .INDENT 0.0
  84652. .TP
  84653. .B configuration
  84654. This module accepts explicit AWS credentials but can also utilize
  84655. IAM roles assigned to the instance through Instance Profiles. Dynamic
  84656. credentials are then automatically obtained from AWS API and no further
  84657. configuration is necessary. More Information available at:
  84658. .INDENT 7.0
  84659. .INDENT 3.5
  84660. .sp
  84661. .nf
  84662. .ft C
  84663. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  84664. .ft P
  84665. .fi
  84666. .UNINDENT
  84667. .UNINDENT
  84668. .sp
  84669. If IAM roles are not used you need to specify them either in a pillar or
  84670. in the minion\(aqs config file:
  84671. .INDENT 7.0
  84672. .INDENT 3.5
  84673. .sp
  84674. .nf
  84675. .ft C
  84676. cfn.keyid: GKTADJGHEIQSXMKKRBJ08H
  84677. cfn.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  84678. .ft P
  84679. .fi
  84680. .UNINDENT
  84681. .UNINDENT
  84682. .sp
  84683. A region may also be specified in the configuration:
  84684. .INDENT 7.0
  84685. .INDENT 3.5
  84686. .sp
  84687. .nf
  84688. .ft C
  84689. cfn.region: us\-east\-1
  84690. .ft P
  84691. .fi
  84692. .UNINDENT
  84693. .UNINDENT
  84694. .TP
  84695. .B depends
  84696. boto
  84697. .UNINDENT
  84698. .INDENT 0.0
  84699. .TP
  84700. .B salt.modules.boto_cfn.create(name, template_body=None, template_url=None, parameters=None, notification_arns=None, disable_rollback=None, timeout_in_minutes=None, capabilities=None, tags=None, on_failure=None, stack_policy_body=None, stack_policy_url=None, region=None, key=None, keyid=None, profile=None)
  84701. Create a CFN stack.
  84702. .sp
  84703. CLI Example:
  84704. .INDENT 7.0
  84705. .INDENT 3.5
  84706. .sp
  84707. .nf
  84708. .ft C
  84709. salt myminion boto_cfn.create mystack template_url=\(aqhttps://s3.amazonaws.com/bucket/template.cft\(aq region=us\-east\-1
  84710. .ft P
  84711. .fi
  84712. .UNINDENT
  84713. .UNINDENT
  84714. .UNINDENT
  84715. .INDENT 0.0
  84716. .TP
  84717. .B salt.modules.boto_cfn.delete(name, region=None, key=None, keyid=None, profile=None)
  84718. Delete a CFN stack.
  84719. .sp
  84720. CLI Example:
  84721. .INDENT 7.0
  84722. .INDENT 3.5
  84723. .sp
  84724. .nf
  84725. .ft C
  84726. salt myminion boto_cfn.delete mystack region=us\-east\-1
  84727. .ft P
  84728. .fi
  84729. .UNINDENT
  84730. .UNINDENT
  84731. .UNINDENT
  84732. .INDENT 0.0
  84733. .TP
  84734. .B salt.modules.boto_cfn.describe(name, region=None, key=None, keyid=None, profile=None)
  84735. Describe a stack.
  84736. .sp
  84737. New in version 2015.8.0.
  84738. .sp
  84739. CLI Example:
  84740. .INDENT 7.0
  84741. .INDENT 3.5
  84742. .sp
  84743. .nf
  84744. .ft C
  84745. salt myminion boto_cfn.describe mystack region=us\-east\-1
  84746. .ft P
  84747. .fi
  84748. .UNINDENT
  84749. .UNINDENT
  84750. .UNINDENT
  84751. .INDENT 0.0
  84752. .TP
  84753. .B salt.modules.boto_cfn.exists(name, region=None, key=None, keyid=None, profile=None)
  84754. Check to see if a stack exists.
  84755. .sp
  84756. CLI Example:
  84757. .INDENT 7.0
  84758. .INDENT 3.5
  84759. .sp
  84760. .nf
  84761. .ft C
  84762. salt myminion boto_cfn.exists mystack region=us\-east\-1
  84763. .ft P
  84764. .fi
  84765. .UNINDENT
  84766. .UNINDENT
  84767. .UNINDENT
  84768. .INDENT 0.0
  84769. .TP
  84770. .B salt.modules.boto_cfn.get_template(name, region=None, key=None, keyid=None, profile=None)
  84771. Check to see if attributes are set on a CFN stack.
  84772. .sp
  84773. CLI Example:
  84774. .INDENT 7.0
  84775. .INDENT 3.5
  84776. .sp
  84777. .nf
  84778. .ft C
  84779. salt myminion boto_cfn.get_template mystack
  84780. .ft P
  84781. .fi
  84782. .UNINDENT
  84783. .UNINDENT
  84784. .UNINDENT
  84785. .INDENT 0.0
  84786. .TP
  84787. .B salt.modules.boto_cfn.update_stack(name, template_body=None, template_url=None, parameters=None, notification_arns=None, disable_rollback=False, timeout_in_minutes=None, capabilities=None, tags=None, use_previous_template=None, stack_policy_during_update_body=None, stack_policy_during_update_url=None, stack_policy_body=None, stack_policy_url=None, region=None, key=None, keyid=None, profile=None)
  84788. Update a CFN stack.
  84789. .sp
  84790. New in version 2015.8.0.
  84791. .sp
  84792. CLI Example:
  84793. .INDENT 7.0
  84794. .INDENT 3.5
  84795. .sp
  84796. .nf
  84797. .ft C
  84798. salt myminion boto_cfn.update_stack mystack template_url=\(aqhttps://s3.amazonaws.com/bucket/template.cft\(aq region=us\-east\-1
  84799. .ft P
  84800. .fi
  84801. .UNINDENT
  84802. .UNINDENT
  84803. .UNINDENT
  84804. .INDENT 0.0
  84805. .TP
  84806. .B salt.modules.boto_cfn.validate_template(template_body=None, template_url=None, region=None, key=None, keyid=None, profile=None)
  84807. Validate cloudformation template
  84808. .sp
  84809. New in version 2015.8.0.
  84810. .sp
  84811. CLI Example:
  84812. .INDENT 7.0
  84813. .INDENT 3.5
  84814. .sp
  84815. .nf
  84816. .ft C
  84817. salt myminion boto_cfn.validate_template mystack\-template
  84818. .ft P
  84819. .fi
  84820. .UNINDENT
  84821. .UNINDENT
  84822. .UNINDENT
  84823. .SS salt.modules.boto_datapipeline module
  84824. .sp
  84825. Connection module for Amazon Data Pipeline
  84826. .sp
  84827. New in version 2016.3.0.
  84828. .INDENT 0.0
  84829. .TP
  84830. .B depends
  84831. boto3
  84832. .UNINDENT
  84833. .INDENT 0.0
  84834. .TP
  84835. .B salt.modules.boto_datapipeline.activate_pipeline(pipeline_id, region=None, key=None, keyid=None, profile=None)
  84836. Start processing pipeline tasks. This function is idempotent.
  84837. .sp
  84838. CLI example:
  84839. .INDENT 7.0
  84840. .INDENT 3.5
  84841. .sp
  84842. .nf
  84843. .ft C
  84844. salt myminion boto_datapipeline.activate_pipeline my_pipeline_id
  84845. .ft P
  84846. .fi
  84847. .UNINDENT
  84848. .UNINDENT
  84849. .UNINDENT
  84850. .INDENT 0.0
  84851. .TP
  84852. .B salt.modules.boto_datapipeline.create_pipeline(name, unique_id, description=u\(aq\(aq, region=None, key=None, keyid=None, profile=None)
  84853. Create a new, empty pipeline. This function is idempotent.
  84854. .sp
  84855. CLI example:
  84856. .INDENT 7.0
  84857. .INDENT 3.5
  84858. .sp
  84859. .nf
  84860. .ft C
  84861. salt myminion boto_datapipeline.create_pipeline my_name my_unique_id
  84862. .ft P
  84863. .fi
  84864. .UNINDENT
  84865. .UNINDENT
  84866. .UNINDENT
  84867. .INDENT 0.0
  84868. .TP
  84869. .B salt.modules.boto_datapipeline.delete_pipeline(pipeline_id, region=None, key=None, keyid=None, profile=None)
  84870. Delete a pipeline, its pipeline definition, and its run history. This function is idempotent.
  84871. .sp
  84872. CLI example:
  84873. .INDENT 7.0
  84874. .INDENT 3.5
  84875. .sp
  84876. .nf
  84877. .ft C
  84878. salt myminion boto_datapipeline.delete_pipeline my_pipeline_id
  84879. .ft P
  84880. .fi
  84881. .UNINDENT
  84882. .UNINDENT
  84883. .UNINDENT
  84884. .INDENT 0.0
  84885. .TP
  84886. .B salt.modules.boto_datapipeline.describe_pipelines(pipeline_ids, region=None, key=None, keyid=None, profile=None)
  84887. Retrieve metadata about one or more pipelines.
  84888. .sp
  84889. CLI example:
  84890. .INDENT 7.0
  84891. .INDENT 3.5
  84892. .sp
  84893. .nf
  84894. .ft C
  84895. salt myminion boto_datapipeline.describe_pipelines [\(aqmy_pipeline_id\(aq]
  84896. .ft P
  84897. .fi
  84898. .UNINDENT
  84899. .UNINDENT
  84900. .UNINDENT
  84901. .INDENT 0.0
  84902. .TP
  84903. .B salt.modules.boto_datapipeline.get_pipeline_definition(pipeline_id, version=u\(aqlatest\(aq, region=None, key=None, keyid=None, profile=None)
  84904. Get the definition of the specified pipeline.
  84905. .sp
  84906. CLI example:
  84907. .INDENT 7.0
  84908. .INDENT 3.5
  84909. .sp
  84910. .nf
  84911. .ft C
  84912. salt myminion boto_datapipeline.get_pipeline_definition my_pipeline_id
  84913. .ft P
  84914. .fi
  84915. .UNINDENT
  84916. .UNINDENT
  84917. .UNINDENT
  84918. .INDENT 0.0
  84919. .TP
  84920. .B salt.modules.boto_datapipeline.list_pipelines(region=None, key=None, keyid=None, profile=None)
  84921. Get a list of pipeline ids and names for all pipelines.
  84922. .sp
  84923. CLI Example:
  84924. .INDENT 7.0
  84925. .INDENT 3.5
  84926. .sp
  84927. .nf
  84928. .ft C
  84929. salt myminion boto_datapipeline.list_pipelines profile=myprofile
  84930. .ft P
  84931. .fi
  84932. .UNINDENT
  84933. .UNINDENT
  84934. .UNINDENT
  84935. .INDENT 0.0
  84936. .TP
  84937. .B salt.modules.boto_datapipeline.pipeline_id_from_name(name, region=None, key=None, keyid=None, profile=None)
  84938. Get the pipeline id, if it exists, for the given name.
  84939. .sp
  84940. CLI example:
  84941. .INDENT 7.0
  84942. .INDENT 3.5
  84943. .sp
  84944. .nf
  84945. .ft C
  84946. salt myminion boto_datapipeline.pipeline_id_from_name my_pipeline_name
  84947. .ft P
  84948. .fi
  84949. .UNINDENT
  84950. .UNINDENT
  84951. .UNINDENT
  84952. .INDENT 0.0
  84953. .TP
  84954. .B salt.modules.boto_datapipeline.put_pipeline_definition(pipeline_id, pipeline_objects, parameter_objects=None, parameter_values=None, region=None, key=None, keyid=None, profile=None)
  84955. Add tasks, schedules, and preconditions to the specified pipeline. This function is
  84956. idempotent and will replace an existing definition.
  84957. .sp
  84958. CLI example:
  84959. .INDENT 7.0
  84960. .INDENT 3.5
  84961. .sp
  84962. .nf
  84963. .ft C
  84964. salt myminion boto_datapipeline.put_pipeline_definition my_pipeline_id my_pipeline_objects
  84965. .ft P
  84966. .fi
  84967. .UNINDENT
  84968. .UNINDENT
  84969. .UNINDENT
  84970. .SS salt.modules.boto_dynamodb
  84971. .sp
  84972. Connection module for Amazon DynamoDB
  84973. .sp
  84974. New in version 2015.5.0.
  84975. .INDENT 0.0
  84976. .TP
  84977. .B configuration
  84978. This module accepts explicit DynamoDB credentials but can also
  84979. utilize IAM roles assigned to the instance through Instance Profiles.
  84980. Dynamic credentials are then automatically obtained from AWS API and no
  84981. further configuration is necessary. More Information available at:
  84982. .INDENT 7.0
  84983. .INDENT 3.5
  84984. .sp
  84985. .nf
  84986. .ft C
  84987. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  84988. .ft P
  84989. .fi
  84990. .UNINDENT
  84991. .UNINDENT
  84992. .sp
  84993. If IAM roles are not used you need to specify them either in a pillar or
  84994. in the minion\(aqs config file:
  84995. .INDENT 7.0
  84996. .INDENT 3.5
  84997. .sp
  84998. .nf
  84999. .ft C
  85000. keyid: GKTADJGHEIQSXMKKRBJ08H
  85001. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85002. .ft P
  85003. .fi
  85004. .UNINDENT
  85005. .UNINDENT
  85006. .sp
  85007. A region may also be specified in the configuration:
  85008. .INDENT 7.0
  85009. .INDENT 3.5
  85010. .sp
  85011. .nf
  85012. .ft C
  85013. region: us\-east\-1
  85014. .ft P
  85015. .fi
  85016. .UNINDENT
  85017. .UNINDENT
  85018. .sp
  85019. If a region is not specified, the default is us\-east\-1.
  85020. .sp
  85021. It\(aqs also possible to specify key, keyid and region via a profile, either
  85022. as a passed in dict, or as a string to pull from pillars or minion config:
  85023. .INDENT 7.0
  85024. .INDENT 3.5
  85025. .sp
  85026. .nf
  85027. .ft C
  85028. myprofile:
  85029. keyid: GKTADJGHEIQSXMKKRBJ08H
  85030. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85031. region: us\-east\-1
  85032. .ft P
  85033. .fi
  85034. .UNINDENT
  85035. .UNINDENT
  85036. .TP
  85037. .B depends
  85038. boto
  85039. .UNINDENT
  85040. .INDENT 0.0
  85041. .TP
  85042. .B salt.modules.boto_dynamodb.create_global_secondary_index(table_name, global_index, region=None, key=None, keyid=None, profile=None)
  85043. Creates a single global secondary index on a DynamoDB table.
  85044. .sp
  85045. CLI Example:
  85046. .. code\-block:: bash
  85047. .INDENT 7.0
  85048. .INDENT 3.5
  85049. salt myminion boto_dynamodb.create_global_secondary_index table_name /
  85050. index_name
  85051. .UNINDENT
  85052. .UNINDENT
  85053. .UNINDENT
  85054. .INDENT 0.0
  85055. .TP
  85056. .B salt.modules.boto_dynamodb.create_table(table_name, region=None, key=None, keyid=None, profile=None, read_capacity_units=None, write_capacity_units=None, hash_key=None, hash_key_data_type=None, range_key=None, range_key_data_type=None, local_indexes=None, global_indexes=None)
  85057. Creates a DynamoDB table.
  85058. .sp
  85059. CLI Example:
  85060. .INDENT 7.0
  85061. .INDENT 3.5
  85062. .sp
  85063. .nf
  85064. .ft C
  85065. salt myminion boto_dynamodb.create_table table_name /
  85066. region=us\-east\-1 /
  85067. hash_key=id /
  85068. hash_key_data_type=N /
  85069. range_key=created_at /
  85070. range_key_data_type=N /
  85071. read_capacity_units=1 /
  85072. write_capacity_units=1
  85073. .ft P
  85074. .fi
  85075. .UNINDENT
  85076. .UNINDENT
  85077. .UNINDENT
  85078. .INDENT 0.0
  85079. .TP
  85080. .B salt.modules.boto_dynamodb.delete(table_name, region=None, key=None, keyid=None, profile=None)
  85081. Delete a DynamoDB table.
  85082. .sp
  85083. CLI Example:
  85084. .INDENT 7.0
  85085. .INDENT 3.5
  85086. .sp
  85087. .nf
  85088. .ft C
  85089. salt myminion boto_dynamodb.delete table_name region=us\-east\-1
  85090. .ft P
  85091. .fi
  85092. .UNINDENT
  85093. .UNINDENT
  85094. .UNINDENT
  85095. .INDENT 0.0
  85096. .TP
  85097. .B salt.modules.boto_dynamodb.describe(table_name, region=None, key=None, keyid=None, profile=None)
  85098. Describe a DynamoDB table.
  85099. .sp
  85100. CLI example:
  85101. .INDENT 7.0
  85102. .INDENT 3.5
  85103. .sp
  85104. .nf
  85105. .ft C
  85106. salt myminion boto_dynamodb.describe table_name region=us\-east\-1
  85107. .ft P
  85108. .fi
  85109. .UNINDENT
  85110. .UNINDENT
  85111. .UNINDENT
  85112. .INDENT 0.0
  85113. .TP
  85114. .B salt.modules.boto_dynamodb.exists(table_name, region=None, key=None, keyid=None, profile=None)
  85115. Check to see if a table exists.
  85116. .sp
  85117. CLI Example:
  85118. .INDENT 7.0
  85119. .INDENT 3.5
  85120. .sp
  85121. .nf
  85122. .ft C
  85123. salt myminion boto_dynamodb.exists table_name region=us\-east\-1
  85124. .ft P
  85125. .fi
  85126. .UNINDENT
  85127. .UNINDENT
  85128. .UNINDENT
  85129. .INDENT 0.0
  85130. .TP
  85131. .B salt.modules.boto_dynamodb.extract_index(index_data, global_index=False)
  85132. Instantiates and returns an AllIndex object given a valid index
  85133. configuration
  85134. .INDENT 7.0
  85135. .TP
  85136. .B CLI Example:
  85137. salt myminion boto_dynamodb.extract_index index
  85138. .UNINDENT
  85139. .UNINDENT
  85140. .INDENT 0.0
  85141. .TP
  85142. .B salt.modules.boto_dynamodb.update(table_name, throughput=None, global_indexes=None, region=None, key=None, keyid=None, profile=None)
  85143. Update a DynamoDB table.
  85144. .sp
  85145. CLI example:
  85146. .INDENT 7.0
  85147. .INDENT 3.5
  85148. .sp
  85149. .nf
  85150. .ft C
  85151. salt myminion boto_dynamodb.update table_name region=us\-east\-1
  85152. .ft P
  85153. .fi
  85154. .UNINDENT
  85155. .UNINDENT
  85156. .UNINDENT
  85157. .INDENT 0.0
  85158. .TP
  85159. .B salt.modules.boto_dynamodb.update_global_secondary_index(table_name, global_indexes, region=None, key=None, keyid=None, profile=None)
  85160. Updates the throughput of the given global secondary indexes.
  85161. .sp
  85162. CLI Example:
  85163. .. code\-block:: bash
  85164. .INDENT 7.0
  85165. .INDENT 3.5
  85166. salt myminion boto_dynamodb.update_global_secondary_index table_name /
  85167. indexes
  85168. .UNINDENT
  85169. .UNINDENT
  85170. .UNINDENT
  85171. .SS salt.modules.boto_efs module
  85172. .sp
  85173. Connection module for Amazon EFS
  85174. .sp
  85175. New in version 2017.7.0.
  85176. .INDENT 0.0
  85177. .TP
  85178. .B configuration
  85179. This module accepts explicit EFS credentials but can also
  85180. utilize IAM roles assigned to the instance through Instance Profiles or
  85181. it can read them from the ~/.aws/credentials file or from these
  85182. environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.
  85183. Dynamic credentials are then automatically obtained from AWS API and no
  85184. further configuration is necessary. More information available at:
  85185. .INDENT 7.0
  85186. .INDENT 3.5
  85187. .sp
  85188. .nf
  85189. .ft C
  85190. http://docs.aws.amazon.com/efs/latest/ug/
  85191. access\-control\-managing\-permissions.html
  85192. http://boto3.readthedocs.io/en/latest/guide/
  85193. configuration.html#guide\-configuration
  85194. .ft P
  85195. .fi
  85196. .UNINDENT
  85197. .UNINDENT
  85198. .sp
  85199. If IAM roles are not used you need to specify them either in a pillar or
  85200. in the minion\(aqs config file
  85201. .INDENT 7.0
  85202. .INDENT 3.5
  85203. .sp
  85204. .nf
  85205. .ft C
  85206. efs.keyid: GKTADJGHEIQSXMKKRBJ08H
  85207. efs.key: askd+ghsdfjkghWupU/asdflkdfklgjsdfjajkghs
  85208. .ft P
  85209. .fi
  85210. .UNINDENT
  85211. .UNINDENT
  85212. .sp
  85213. A region may also be specified in the configuration
  85214. .INDENT 7.0
  85215. .INDENT 3.5
  85216. .sp
  85217. .nf
  85218. .ft C
  85219. efs.region: us\-east\-1
  85220. .ft P
  85221. .fi
  85222. .UNINDENT
  85223. .UNINDENT
  85224. .sp
  85225. If a region is not specified, the default is us\-east\-1.
  85226. .sp
  85227. It\(aqs also possible to speficy key, keyid, and region via a profile, either
  85228. as a passed in dict, or as a string to pull from pillars or minion config:
  85229. .INDENT 7.0
  85230. .INDENT 3.5
  85231. .sp
  85232. .nf
  85233. .ft C
  85234. myprofile:
  85235. keyid: GKTADJGHEIQSXMKKRBJ08H
  85236. key: askd+ghsdfjkghWupU/asdflkdfklgjsdfjajkghs
  85237. region: us\-east\-1
  85238. .ft P
  85239. .fi
  85240. .UNINDENT
  85241. .UNINDENT
  85242. .TP
  85243. .B depends
  85244. boto3
  85245. .UNINDENT
  85246. .INDENT 0.0
  85247. .TP
  85248. .B salt.modules.boto_efs.create_file_system(name, performance_mode=u\(aqgeneralPurpose\(aq, keyid=None, key=None, profile=None, region=None, creation_token=None, **kwargs)
  85249. Creates a new, empty file system.
  85250. .INDENT 7.0
  85251. .TP
  85252. .B name
  85253. (string) \- The name for the new file system
  85254. .TP
  85255. .B performance_mode
  85256. (string) \- The PerformanceMode of the file system. Can be either
  85257. generalPurpose or maxIO
  85258. .TP
  85259. .B creation_token
  85260. (string) \- A unique name to be used as reference when creating an EFS.
  85261. This will ensure idempotency. Set to name if not specified otherwise
  85262. .TP
  85263. .B returns
  85264. (dict) \- A dict of the data for the elastic file system
  85265. .UNINDENT
  85266. .sp
  85267. CLI Example:
  85268. .INDENT 7.0
  85269. .INDENT 3.5
  85270. .sp
  85271. .nf
  85272. .ft C
  85273. salt \(aqmy\-minion\(aq boto_efs.create_file_system efs\-name generalPurpose
  85274. .ft P
  85275. .fi
  85276. .UNINDENT
  85277. .UNINDENT
  85278. .UNINDENT
  85279. .INDENT 0.0
  85280. .TP
  85281. .B salt.modules.boto_efs.create_mount_target(filesystemid, subnetid, ipaddress=None, securitygroups=None, keyid=None, key=None, profile=None, region=None, **kwargs)
  85282. Creates a mount target for a file system.
  85283. You can then mount the file system on EC2 instances via the mount target.
  85284. .sp
  85285. You can create one mount target in each Availability Zone in your VPC.
  85286. All EC2 instances in a VPC within a given Availability Zone share a
  85287. single mount target for a given file system.
  85288. .sp
  85289. If you have multiple subnets in an Availability Zone,
  85290. you create a mount target in one of the subnets.
  85291. EC2 instances do not need to be in the same subnet as the mount target
  85292. in order to access their file system.
  85293. .INDENT 7.0
  85294. .TP
  85295. .B filesystemid
  85296. (string) \- ID of the file system for which to create the mount target.
  85297. .TP
  85298. .B subnetid
  85299. (string) \- ID of the subnet to add the mount target in.
  85300. .TP
  85301. .B ipaddress
  85302. .INDENT 7.0
  85303. .TP
  85304. .B (string) \- Valid IPv4 address within the address range
  85305. of the specified subnet.
  85306. .UNINDENT
  85307. .TP
  85308. .B securitygroups
  85309. .INDENT 7.0
  85310. .TP
  85311. .B (list[string]) \- Up to five VPC security group IDs,
  85312. of the form sg\-xxxxxxxx.
  85313. These must be for the same VPC as subnet specified.
  85314. .UNINDENT
  85315. .TP
  85316. .B returns
  85317. (dict) \- A dict of the response data
  85318. .UNINDENT
  85319. .sp
  85320. CLI Example:
  85321. .INDENT 7.0
  85322. .INDENT 3.5
  85323. .sp
  85324. .nf
  85325. .ft C
  85326. salt \(aqmy\-minion\(aq boto_efs.create_mount_target filesystemid subnetid
  85327. .ft P
  85328. .fi
  85329. .UNINDENT
  85330. .UNINDENT
  85331. .UNINDENT
  85332. .INDENT 0.0
  85333. .TP
  85334. .B salt.modules.boto_efs.create_tags(filesystemid, tags, keyid=None, key=None, profile=None, region=None, **kwargs)
  85335. Creates or overwrites tags associated with a file system.
  85336. Each tag is a key\-value pair. If a tag key specified in the request
  85337. already exists on the file system, this operation overwrites
  85338. its value with the value provided in the request.
  85339. .INDENT 7.0
  85340. .TP
  85341. .B filesystemid
  85342. (string) \- ID of the file system for whose tags will be modified.
  85343. .TP
  85344. .B tags
  85345. (dict) \- The tags to add to the file system
  85346. .UNINDENT
  85347. .sp
  85348. CLI Example:
  85349. .INDENT 7.0
  85350. .INDENT 3.5
  85351. .sp
  85352. .nf
  85353. .ft C
  85354. salt \(aqmy\-minion\(aq boto_efs.create_tags
  85355. .ft P
  85356. .fi
  85357. .UNINDENT
  85358. .UNINDENT
  85359. .UNINDENT
  85360. .INDENT 0.0
  85361. .TP
  85362. .B salt.modules.boto_efs.delete_file_system(filesystemid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85363. Deletes a file system, permanently severing access to its contents.
  85364. Upon return, the file system no longer exists and you can\(aqt access
  85365. any contents of the deleted file system. You can\(aqt delete a file system
  85366. that is in use. That is, if the file system has any mount targets,
  85367. you must first delete them.
  85368. .INDENT 7.0
  85369. .TP
  85370. .B filesystemid
  85371. (string) \- ID of the file system to delete.
  85372. .UNINDENT
  85373. .sp
  85374. CLI Example:
  85375. .INDENT 7.0
  85376. .INDENT 3.5
  85377. .sp
  85378. .nf
  85379. .ft C
  85380. salt \(aqmy\-minion\(aq boto_efs.delete_file_system filesystemid
  85381. .ft P
  85382. .fi
  85383. .UNINDENT
  85384. .UNINDENT
  85385. .UNINDENT
  85386. .INDENT 0.0
  85387. .TP
  85388. .B salt.modules.boto_efs.delete_mount_target(mounttargetid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85389. Deletes the specified mount target.
  85390. .sp
  85391. This operation forcibly breaks any mounts of the file system via the
  85392. mount target that is being deleted, which might disrupt instances or
  85393. applications using those mounts. To avoid applications getting cut off
  85394. abruptly, you might consider unmounting any mounts of the mount target,
  85395. if feasible. The operation also deletes the associated network interface.
  85396. Uncommitted writes may be lost, but breaking a mount target using this
  85397. operation does not corrupt the file system itself.
  85398. The file system you created remains.
  85399. You can mount an EC2 instance in your VPC via another mount target.
  85400. .INDENT 7.0
  85401. .TP
  85402. .B mounttargetid
  85403. (string) \- ID of the mount target to delete
  85404. .UNINDENT
  85405. .sp
  85406. CLI Example:
  85407. .INDENT 7.0
  85408. .INDENT 3.5
  85409. .sp
  85410. .nf
  85411. .ft C
  85412. salt \(aqmy\-minion\(aq boto_efs.delete_mount_target mounttargetid
  85413. .ft P
  85414. .fi
  85415. .UNINDENT
  85416. .UNINDENT
  85417. .UNINDENT
  85418. .INDENT 0.0
  85419. .TP
  85420. .B salt.modules.boto_efs.delete_tags(filesystemid, tags, keyid=None, key=None, profile=None, region=None, **kwargs)
  85421. Deletes the specified tags from a file system.
  85422. .INDENT 7.0
  85423. .TP
  85424. .B filesystemid
  85425. (string) \- ID of the file system for whose tags will be removed.
  85426. .TP
  85427. .B tags
  85428. (list[string]) \- The tag keys to delete to the file system
  85429. .UNINDENT
  85430. .sp
  85431. CLI Example:
  85432. .INDENT 7.0
  85433. .INDENT 3.5
  85434. .sp
  85435. .nf
  85436. .ft C
  85437. salt \(aqmy\-minion\(aq boto_efs.delete_tags
  85438. .ft P
  85439. .fi
  85440. .UNINDENT
  85441. .UNINDENT
  85442. .UNINDENT
  85443. .INDENT 0.0
  85444. .TP
  85445. .B salt.modules.boto_efs.get_file_systems(filesystemid=None, keyid=None, key=None, profile=None, region=None, creation_token=None, **kwargs)
  85446. Get all EFS properties or a specific instance property
  85447. if filesystemid is specified
  85448. .INDENT 7.0
  85449. .TP
  85450. .B filesystemid
  85451. (string) \- ID of the file system to retrieve properties
  85452. .TP
  85453. .B creation_token
  85454. (string) \- A unique token that identifies an EFS.
  85455. If fileysystem created via create_file_system this would
  85456. either be explictitly passed in or set to name.
  85457. You can limit your search with this.
  85458. .TP
  85459. .B returns
  85460. (list[dict]) \- list of all elastic file system properties
  85461. .UNINDENT
  85462. .sp
  85463. CLI Example:
  85464. .INDENT 7.0
  85465. .INDENT 3.5
  85466. .sp
  85467. .nf
  85468. .ft C
  85469. salt \(aqmy\-minion\(aq boto_efs.get_file_systems efs\-id
  85470. .ft P
  85471. .fi
  85472. .UNINDENT
  85473. .UNINDENT
  85474. .UNINDENT
  85475. .INDENT 0.0
  85476. .TP
  85477. .B salt.modules.boto_efs.get_mount_targets(filesystemid=None, mounttargetid=None, keyid=None, key=None, profile=None, region=None, **kwargs)
  85478. Get all the EFS mount point properties for a specific filesystemid or
  85479. the properties for a specific mounttargetid. One or the other must be
  85480. specified
  85481. .INDENT 7.0
  85482. .TP
  85483. .B filesystemid
  85484. .INDENT 7.0
  85485. .TP
  85486. .B (string) \- ID of the file system whose mount targets to list
  85487. Must be specified if mounttargetid is not
  85488. .UNINDENT
  85489. .TP
  85490. .B mounttargetid
  85491. .INDENT 7.0
  85492. .TP
  85493. .B (string) \- ID of the mount target to have its properties returned
  85494. Must be specified if filesystemid is not
  85495. .UNINDENT
  85496. .TP
  85497. .B returns
  85498. (list[dict]) \- list of all mount point properties
  85499. .UNINDENT
  85500. .sp
  85501. CLI Example:
  85502. .INDENT 7.0
  85503. .INDENT 3.5
  85504. .sp
  85505. .nf
  85506. .ft C
  85507. salt \(aqmy\-minion\(aq boto_efs.get_mount_targets
  85508. .ft P
  85509. .fi
  85510. .UNINDENT
  85511. .UNINDENT
  85512. .UNINDENT
  85513. .INDENT 0.0
  85514. .TP
  85515. .B salt.modules.boto_efs.get_tags(filesystemid, keyid=None, key=None, profile=None, region=None, **kwargs)
  85516. Return the tags associated with an EFS instance.
  85517. .INDENT 7.0
  85518. .TP
  85519. .B filesystemid
  85520. (string) \- ID of the file system whose tags to list
  85521. .TP
  85522. .B returns
  85523. (list) \- list of tags as key/value pairs
  85524. .UNINDENT
  85525. .sp
  85526. CLI Example:
  85527. .INDENT 7.0
  85528. .INDENT 3.5
  85529. .sp
  85530. .nf
  85531. .ft C
  85532. salt \(aqmy\-minion\(aq boto_efs.get_tags efs\-id
  85533. .ft P
  85534. .fi
  85535. .UNINDENT
  85536. .UNINDENT
  85537. .UNINDENT
  85538. .INDENT 0.0
  85539. .TP
  85540. .B salt.modules.boto_efs.set_security_groups(mounttargetid, securitygroup, keyid=None, key=None, profile=None, region=None, **kwargs)
  85541. Modifies the set of security groups in effect for a mount target
  85542. .INDENT 7.0
  85543. .TP
  85544. .B mounttargetid
  85545. (string) \- ID of the mount target whose security groups will be modified
  85546. .TP
  85547. .B securitygroups
  85548. (list[string]) \- list of no more than 5 VPC security group IDs.
  85549. .UNINDENT
  85550. .sp
  85551. CLI Example:
  85552. .INDENT 7.0
  85553. .INDENT 3.5
  85554. .sp
  85555. .nf
  85556. .ft C
  85557. salt \(aqmy\-minion\(aq boto_efs.set_security_groups my\-mount\-target\-id my\-sec\-group
  85558. .ft P
  85559. .fi
  85560. .UNINDENT
  85561. .UNINDENT
  85562. .UNINDENT
  85563. .SS salt.modules.boto_elbv2 module
  85564. .sp
  85565. Connection module for Amazon ALB
  85566. .sp
  85567. New in version 2017.7.0.
  85568. .INDENT 0.0
  85569. .TP
  85570. .B configuration
  85571. This module accepts explicit elb credentials but can also utilize
  85572. IAM roles assigned to the instance through Instance Profiles. Dynamic
  85573. credentials are then automatically obtained from AWS API and no further
  85574. configuration is necessary. More Information available at:
  85575. .INDENT 7.0
  85576. .INDENT 3.5
  85577. .sp
  85578. .nf
  85579. .ft C
  85580. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  85581. .ft P
  85582. .fi
  85583. .UNINDENT
  85584. .UNINDENT
  85585. .sp
  85586. If IAM roles are not used you need to specify them either in a pillar or
  85587. in the minion\(aqs config file:
  85588. .INDENT 7.0
  85589. .INDENT 3.5
  85590. .sp
  85591. .nf
  85592. .ft C
  85593. elbv2.keyid: GKTADJGHEIQSXMKKRBJ08H
  85594. elbv2.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85595. elbv2.region: us\-west\-2
  85596. .ft P
  85597. .fi
  85598. .UNINDENT
  85599. .UNINDENT
  85600. .sp
  85601. If a region is not specified, the default is us\-east\-1.
  85602. .sp
  85603. It\(aqs also possible to specify key, keyid and region via a profile, either
  85604. as a passed in dict, or as a string to pull from pillars or minion config:
  85605. .INDENT 7.0
  85606. .INDENT 3.5
  85607. .sp
  85608. .nf
  85609. .ft C
  85610. myprofile:
  85611. keyid: GKTADJGHEIQSXMKKRBJ08H
  85612. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85613. region: us\-east\-1
  85614. .ft P
  85615. .fi
  85616. .UNINDENT
  85617. .UNINDENT
  85618. .TP
  85619. .B depends
  85620. boto3
  85621. .UNINDENT
  85622. .INDENT 0.0
  85623. .TP
  85624. .B salt.modules.boto_elbv2.create_target_group(name, protocol, port, vpc_id, region=None, key=None, keyid=None, profile=None, health_check_protocol=u\(aqHTTP\(aq, health_check_port=u\(aqtraffic\-port\(aq, health_check_path=u\(aq/\(aq, health_check_interval_seconds=30, health_check_timeout_seconds=5, healthy_threshold_count=5, unhealthy_threshold_count=2)
  85625. Create target group if not present.
  85626. .INDENT 7.0
  85627. .TP
  85628. .B name
  85629. (string) \- The name of the target group.
  85630. .TP
  85631. .B protocol
  85632. (string) \- The protocol to use for routing traffic to the targets
  85633. .TP
  85634. .B port
  85635. (int) \- The port on which the targets receive traffic. This port is used unless
  85636. you specify a port override when registering the traffic.
  85637. .TP
  85638. .B vpc_id
  85639. (string) \- The identifier of the virtual private cloud (VPC).
  85640. .TP
  85641. .B health_check_protocol
  85642. (string) \- The protocol the load balancer uses when performing health check on
  85643. targets. The default is the HTTP protocol.
  85644. .TP
  85645. .B health_check_port
  85646. (string) \- The port the load balancer uses when performing health checks on
  85647. targets. The default is \(aqtraffic\-port\(aq, which indicates the port on which each
  85648. target receives traffic from the load balancer.
  85649. .TP
  85650. .B health_check_path
  85651. (string) \- The ping path that is the destination on the targets for health
  85652. checks. The default is /.
  85653. .TP
  85654. .B health_check_interval_seconds
  85655. (integer) \- The approximate amount of time, in seconds, between health checks
  85656. of an individual target. The default is 30 seconds.
  85657. .TP
  85658. .B health_check_timeout_seconds
  85659. (integer) \- The amount of time, in seconds, during which no response from a
  85660. target means a failed health check. The default is 5 seconds.
  85661. .TP
  85662. .B healthy_threshold_count
  85663. (integer) \- The number of consecutive health checks successes required before
  85664. considering an unhealthy target healthy. The default is 5.
  85665. .TP
  85666. .B unhealthy_threshold_count
  85667. (integer) \- The number of consecutive health check failures required before
  85668. considering a target unhealthy. The default is 2.
  85669. .TP
  85670. .B returns
  85671. (bool) \- True on success, False on failure.
  85672. .UNINDENT
  85673. .sp
  85674. CLI example:
  85675. .. code\-block:: bash
  85676. .INDENT 7.0
  85677. .INDENT 3.5
  85678. salt myminion boto_elbv2.create_target_group learn1give1 protocol=HTTP port=54006 vpc_id=vpc\-deadbeef
  85679. .UNINDENT
  85680. .UNINDENT
  85681. .UNINDENT
  85682. .INDENT 0.0
  85683. .TP
  85684. .B salt.modules.boto_elbv2.delete_target_group(name, region=None, key=None, keyid=None, profile=None)
  85685. Delete target group.
  85686. .INDENT 7.0
  85687. .TP
  85688. .B name
  85689. (string) \- Target Group Name or Amazon Resource Name (ARN).
  85690. .TP
  85691. .B returns
  85692. (bool) \- True on success, False on failure.
  85693. .UNINDENT
  85694. .sp
  85695. CLI example:
  85696. .INDENT 7.0
  85697. .INDENT 3.5
  85698. .sp
  85699. .nf
  85700. .ft C
  85701. salt myminion boto_elbv2.delete_target_group arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163
  85702. .ft P
  85703. .fi
  85704. .UNINDENT
  85705. .UNINDENT
  85706. .UNINDENT
  85707. .INDENT 0.0
  85708. .TP
  85709. .B salt.modules.boto_elbv2.deregister_targets(name, targets, region=None, key=None, keyid=None, profile=None)
  85710. Deregister targets to a target froup of an ALB. \fBtargets\fP is either a
  85711. instance id string or a list of instance id\(aqs.
  85712. .sp
  85713. Returns:
  85714. .INDENT 7.0
  85715. .IP \(bu 2
  85716. \fBTrue\fP: instance(s) deregistered successfully
  85717. .IP \(bu 2
  85718. \fBFalse\fP: instance(s) failed to be deregistered
  85719. .UNINDENT
  85720. .sp
  85721. CLI example:
  85722. .INDENT 7.0
  85723. .INDENT 3.5
  85724. .sp
  85725. .nf
  85726. .ft C
  85727. salt myminion boto_elbv2.deregister_targets myelb instance_id
  85728. salt myminion boto_elbv2.deregister_targets myelb "[instance_id,instance_id]"
  85729. .ft P
  85730. .fi
  85731. .UNINDENT
  85732. .UNINDENT
  85733. .UNINDENT
  85734. .INDENT 0.0
  85735. .TP
  85736. .B salt.modules.boto_elbv2.describe_target_health(name, targets=None, region=None, key=None, keyid=None, profile=None)
  85737. Get the curret health check status for targets in a target group.
  85738. .sp
  85739. CLI example:
  85740. .INDENT 7.0
  85741. .INDENT 3.5
  85742. .sp
  85743. .nf
  85744. .ft C
  85745. salt myminion boto_elbv2.describe_target_health arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163 targets=["i\-isdf23ifjf"]
  85746. .ft P
  85747. .fi
  85748. .UNINDENT
  85749. .UNINDENT
  85750. .UNINDENT
  85751. .INDENT 0.0
  85752. .TP
  85753. .B salt.modules.boto_elbv2.register_targets(name, targets, region=None, key=None, keyid=None, profile=None)
  85754. Register targets to a target froup of an ALB. \fBtargets\fP is either a
  85755. instance id string or a list of instance id\(aqs.
  85756. .sp
  85757. Returns:
  85758. .INDENT 7.0
  85759. .IP \(bu 2
  85760. \fBTrue\fP: instance(s) registered successfully
  85761. .IP \(bu 2
  85762. \fBFalse\fP: instance(s) failed to be registered
  85763. .UNINDENT
  85764. .sp
  85765. CLI example:
  85766. .INDENT 7.0
  85767. .INDENT 3.5
  85768. .sp
  85769. .nf
  85770. .ft C
  85771. salt myminion boto_elbv2.register_targets myelb instance_id
  85772. salt myminion boto_elbv2.register_targets myelb "[instance_id,instance_id]"
  85773. .ft P
  85774. .fi
  85775. .UNINDENT
  85776. .UNINDENT
  85777. .UNINDENT
  85778. .INDENT 0.0
  85779. .TP
  85780. .B salt.modules.boto_elbv2.target_group_exists(name, region=None, key=None, keyid=None, profile=None)
  85781. Check to see if an target group exists.
  85782. .sp
  85783. CLI example:
  85784. .INDENT 7.0
  85785. .INDENT 3.5
  85786. .sp
  85787. .nf
  85788. .ft C
  85789. salt myminion boto_elbv2.target_group_exists arn:aws:elasticloadbalancing:us\-west\-2:644138682826:targetgroup/learn1give1\-api/414788a16b5cf163
  85790. .ft P
  85791. .fi
  85792. .UNINDENT
  85793. .UNINDENT
  85794. .UNINDENT
  85795. .SS salt.modules.boto_kinesis module
  85796. .sp
  85797. Connection module for Amazon Kinesis
  85798. .sp
  85799. New in version 2017.7.0.
  85800. .INDENT 0.0
  85801. .TP
  85802. .B configuration
  85803. This module accepts explicit Kinesis credentials but can also
  85804. utilize IAM roles assigned to the instance trough Instance Profiles.
  85805. Dynamic credentials are then automatically obtained from AWS API and no
  85806. further configuration is necessary. More Information available at:
  85807. .INDENT 7.0
  85808. .INDENT 3.5
  85809. .sp
  85810. .nf
  85811. .ft C
  85812. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  85813. .ft P
  85814. .fi
  85815. .UNINDENT
  85816. .UNINDENT
  85817. .sp
  85818. If IAM roles are not used you need to specify them either in a pillar or
  85819. in the minion\(aqs config file:
  85820. .INDENT 7.0
  85821. .INDENT 3.5
  85822. .sp
  85823. .nf
  85824. .ft C
  85825. kinesis.keyid: GKTADJGHEIQSXMKKRBJ08H
  85826. kinesis.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85827. .ft P
  85828. .fi
  85829. .UNINDENT
  85830. .UNINDENT
  85831. .sp
  85832. A region may also be specified in the configuration:
  85833. .INDENT 7.0
  85834. .INDENT 3.5
  85835. .sp
  85836. .nf
  85837. .ft C
  85838. kinesis.region: us\-east\-1
  85839. .ft P
  85840. .fi
  85841. .UNINDENT
  85842. .UNINDENT
  85843. .sp
  85844. If a region is not specified, the default is us\-east\-1.
  85845. .sp
  85846. It\(aqs also possible to specify key, keyid and region via a profile, either
  85847. as a passed in dict, or as a string to pull from pillars or minion config:
  85848. .INDENT 7.0
  85849. .INDENT 3.5
  85850. .sp
  85851. .nf
  85852. .ft C
  85853. myprofile:
  85854. keyid: GKTADJGHEIQSXMKKRBJ08H
  85855. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  85856. region: us\-east\-1
  85857. .ft P
  85858. .fi
  85859. .UNINDENT
  85860. .UNINDENT
  85861. .TP
  85862. .B depends
  85863. boto3
  85864. .UNINDENT
  85865. .INDENT 0.0
  85866. .TP
  85867. .B salt.modules.boto_kinesis.create_stream(stream_name, num_shards, region=None, key=None, keyid=None, profile=None)
  85868. Create a stream with name stream_name and initial number of shards num_shards.
  85869. .sp
  85870. CLI example:
  85871. .INDENT 7.0
  85872. .INDENT 3.5
  85873. .sp
  85874. .nf
  85875. .ft C
  85876. salt myminion boto_kinesis.create_stream my_stream N region=us\-east\-1
  85877. .ft P
  85878. .fi
  85879. .UNINDENT
  85880. .UNINDENT
  85881. .UNINDENT
  85882. .INDENT 0.0
  85883. .TP
  85884. .B salt.modules.boto_kinesis.decrease_stream_retention_period(stream_name, retention_hours, region=None, key=None, keyid=None, profile=None)
  85885. Decrease stream retention period to retention_hours
  85886. .sp
  85887. CLI example:
  85888. .INDENT 7.0
  85889. .INDENT 3.5
  85890. .sp
  85891. .nf
  85892. .ft C
  85893. salt myminion boto_kinesis.decrease_stream_retention_period my_stream N region=us\-east\-1
  85894. .ft P
  85895. .fi
  85896. .UNINDENT
  85897. .UNINDENT
  85898. .UNINDENT
  85899. .INDENT 0.0
  85900. .TP
  85901. .B salt.modules.boto_kinesis.delete_stream(stream_name, region=None, key=None, keyid=None, profile=None)
  85902. Delete the stream with name stream_name. This cannot be undone! All data will be lost!!
  85903. .sp
  85904. CLI example:
  85905. .INDENT 7.0
  85906. .INDENT 3.5
  85907. .sp
  85908. .nf
  85909. .ft C
  85910. salt myminion boto_kinesis.delete_stream my_stream region=us\-east\-1
  85911. .ft P
  85912. .fi
  85913. .UNINDENT
  85914. .UNINDENT
  85915. .UNINDENT
  85916. .INDENT 0.0
  85917. .TP
  85918. .B salt.modules.boto_kinesis.disable_enhanced_monitoring(stream_name, metrics, region=None, key=None, keyid=None, profile=None)
  85919. Disable enhanced monitoring for the specified shard\-level metrics on stream stream_name
  85920. .sp
  85921. CLI example:
  85922. .INDENT 7.0
  85923. .INDENT 3.5
  85924. .sp
  85925. .nf
  85926. .ft C
  85927. salt myminion boto_kinesis.disable_enhanced_monitoring my_stream ["metrics", "to", "disable"] region=us\-east\-1
  85928. .ft P
  85929. .fi
  85930. .UNINDENT
  85931. .UNINDENT
  85932. .UNINDENT
  85933. .INDENT 0.0
  85934. .TP
  85935. .B salt.modules.boto_kinesis.enable_enhanced_monitoring(stream_name, metrics, region=None, key=None, keyid=None, profile=None)
  85936. Enable enhanced monitoring for the specified shard\-level metrics on stream stream_name
  85937. .sp
  85938. CLI example:
  85939. .INDENT 7.0
  85940. .INDENT 3.5
  85941. .sp
  85942. .nf
  85943. .ft C
  85944. salt myminion boto_kinesis.enable_enhanced_monitoring my_stream ["metrics", "to", "enable"] region=us\-east\-1
  85945. .ft P
  85946. .fi
  85947. .UNINDENT
  85948. .UNINDENT
  85949. .UNINDENT
  85950. .INDENT 0.0
  85951. .TP
  85952. .B salt.modules.boto_kinesis.exists(stream_name, region=None, key=None, keyid=None, profile=None)
  85953. Check if the stream exists. Returns False and the error if it does not.
  85954. .sp
  85955. CLI example:
  85956. .INDENT 7.0
  85957. .INDENT 3.5
  85958. .sp
  85959. .nf
  85960. .ft C
  85961. salt myminion boto_kinesis.exists my_stream region=us\-east\-1
  85962. .ft P
  85963. .fi
  85964. .UNINDENT
  85965. .UNINDENT
  85966. .UNINDENT
  85967. .INDENT 0.0
  85968. .TP
  85969. .B salt.modules.boto_kinesis.get_info_for_reshard(stream_details)
  85970. Collect some data: number of open shards, key range, etc.
  85971. Modifies stream_details to add a sorted list of OpenShards.
  85972. Returns (min_hash_key, max_hash_key, stream_details)
  85973. .sp
  85974. CLI example:
  85975. .INDENT 7.0
  85976. .INDENT 3.5
  85977. .sp
  85978. .nf
  85979. .ft C
  85980. salt myminion boto_kinesis.get_info_for_reshard existing_stream_details
  85981. .ft P
  85982. .fi
  85983. .UNINDENT
  85984. .UNINDENT
  85985. .UNINDENT
  85986. .INDENT 0.0
  85987. .TP
  85988. .B salt.modules.boto_kinesis.get_stream_when_active(stream_name, region=None, key=None, keyid=None, profile=None)
  85989. Get complete stream info from AWS, returning only when the stream is in the ACTIVE state.
  85990. Continues to retry when stream is updating or creating.
  85991. If the stream is deleted during retries, the loop will catch the error and break.
  85992. .sp
  85993. CLI example:
  85994. .INDENT 7.0
  85995. .INDENT 3.5
  85996. .sp
  85997. .nf
  85998. .ft C
  85999. salt myminion boto_kinesis.get_stream_when_active my_stream region=us\-east\-1
  86000. .ft P
  86001. .fi
  86002. .UNINDENT
  86003. .UNINDENT
  86004. .UNINDENT
  86005. .INDENT 0.0
  86006. .TP
  86007. .B salt.modules.boto_kinesis.increase_stream_retention_period(stream_name, retention_hours, region=None, key=None, keyid=None, profile=None)
  86008. Increase stream retention period to retention_hours
  86009. .sp
  86010. CLI example:
  86011. .INDENT 7.0
  86012. .INDENT 3.5
  86013. .sp
  86014. .nf
  86015. .ft C
  86016. salt myminion boto_kinesis.increase_stream_retention_period my_stream N region=us\-east\-1
  86017. .ft P
  86018. .fi
  86019. .UNINDENT
  86020. .UNINDENT
  86021. .UNINDENT
  86022. .INDENT 0.0
  86023. .TP
  86024. .B salt.modules.boto_kinesis.list_streams(region=None, key=None, keyid=None, profile=None)
  86025. Return a list of all streams visible to the current account
  86026. .sp
  86027. CLI example:
  86028. .INDENT 7.0
  86029. .INDENT 3.5
  86030. .sp
  86031. .nf
  86032. .ft C
  86033. salt myminion boto_kinesis.list_streams
  86034. .ft P
  86035. .fi
  86036. .UNINDENT
  86037. .UNINDENT
  86038. .UNINDENT
  86039. .INDENT 0.0
  86040. .TP
  86041. .B salt.modules.boto_kinesis.long_int(hash_key)
  86042. The hash key is a 128\-bit int, sent as a string.
  86043. It\(aqs necessary to convert to int/long for comparison operations.
  86044. This helper method handles python 2/3 incompatibility
  86045. .sp
  86046. CLI example:
  86047. .INDENT 7.0
  86048. .INDENT 3.5
  86049. .sp
  86050. .nf
  86051. .ft C
  86052. salt myminion boto_kinesis.long_int some_MD5_hash_as_string
  86053. .ft P
  86054. .fi
  86055. .UNINDENT
  86056. .UNINDENT
  86057. .INDENT 7.0
  86058. .TP
  86059. .B Returns
  86060. long object if python 2.X, int object if python 3.X
  86061. .UNINDENT
  86062. .UNINDENT
  86063. .INDENT 0.0
  86064. .TP
  86065. .B salt.modules.boto_kinesis.reshard(stream_name, desired_size, force=False, region=None, key=None, keyid=None, profile=None)
  86066. Reshard a kinesis stream. Each call to this function will wait until the stream is ACTIVE,
  86067. then make a single split or merge operation. This function decides where to split or merge
  86068. with the assumption that the ultimate goal is a balanced partition space.
  86069. .sp
  86070. For safety, user must past in force=True; otherwise, the function will dry run.
  86071. .sp
  86072. CLI example:
  86073. .INDENT 7.0
  86074. .INDENT 3.5
  86075. .sp
  86076. .nf
  86077. .ft C
  86078. salt myminion boto_kinesis.reshard my_stream N True region=us\-east\-1
  86079. .ft P
  86080. .fi
  86081. .UNINDENT
  86082. .UNINDENT
  86083. .INDENT 7.0
  86084. .TP
  86085. .B Returns
  86086. True if a split or merge was found/performed, False if nothing is needed
  86087. .UNINDENT
  86088. .UNINDENT
  86089. .SS salt.modules.boto_s3 module
  86090. .sp
  86091. Connection module for Amazon S3 using boto3
  86092. .sp
  86093. New in version 2018.3.0.
  86094. .INDENT 0.0
  86095. .TP
  86096. .B configuration
  86097. This module accepts explicit AWS credentials but can also
  86098. utilize IAM roles assigned to the instance through Instance Profiles or
  86099. it can read them from the ~/.aws/credentials file or from these
  86100. environment variables: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY.
  86101. Dynamic credentials are then automatically obtained from AWS API and no
  86102. further configuration is necessary. More information available at:
  86103. .INDENT 7.0
  86104. .INDENT 3.5
  86105. .sp
  86106. .nf
  86107. .ft C
  86108. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/
  86109. iam\-roles\-for\-amazon\-ec2.html
  86110. http://boto3.readthedocs.io/en/latest/guide/
  86111. configuration.html#guide\-configuration
  86112. .ft P
  86113. .fi
  86114. .UNINDENT
  86115. .UNINDENT
  86116. .sp
  86117. If IAM roles are not used you need to specify them either in a pillar or
  86118. in the minion\(aqs config file:
  86119. .INDENT 7.0
  86120. .INDENT 3.5
  86121. .sp
  86122. .nf
  86123. .ft C
  86124. s3.keyid: GKTADJGHEIQSXMKKRBJ08H
  86125. s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86126. .ft P
  86127. .fi
  86128. .UNINDENT
  86129. .UNINDENT
  86130. .sp
  86131. A region may also be specified in the configuration:
  86132. .INDENT 7.0
  86133. .INDENT 3.5
  86134. .sp
  86135. .nf
  86136. .ft C
  86137. s3.region: us\-east\-1
  86138. .ft P
  86139. .fi
  86140. .UNINDENT
  86141. .UNINDENT
  86142. .sp
  86143. If a region is not specified, the default is us\-east\-1.
  86144. .sp
  86145. It\(aqs also possible to specify key, keyid and region via a profile, either
  86146. as a passed in dict, or as a string to pull from pillars or minion config:
  86147. .INDENT 7.0
  86148. .INDENT 3.5
  86149. .sp
  86150. .nf
  86151. .ft C
  86152. myprofile:
  86153. keyid: GKTADJGHEIQSXMKKRBJ08H
  86154. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86155. region: us\-east\-1
  86156. .ft P
  86157. .fi
  86158. .UNINDENT
  86159. .UNINDENT
  86160. .TP
  86161. .B depends
  86162. boto3
  86163. .UNINDENT
  86164. .INDENT 0.0
  86165. .TP
  86166. .B salt.modules.boto_s3.get_object_metadata(name, extra_args=None, region=None, key=None, keyid=None, profile=None)
  86167. Get metadata about an S3 object.
  86168. Returns None if the object does not exist.
  86169. .sp
  86170. You can pass AWS SSE\-C related args and/or RequestPayer in extra_args.
  86171. .sp
  86172. CLI Example:
  86173. .INDENT 7.0
  86174. .INDENT 3.5
  86175. .sp
  86176. .nf
  86177. .ft C
  86178. salt myminion boto_s3.get_object_metadata \e
  86179. my_bucket/path/to/object \e
  86180. region=us\-east\-1 \e
  86181. key=key \e
  86182. keyid=keyid \e
  86183. profile=profile \e
  86184. .ft P
  86185. .fi
  86186. .UNINDENT
  86187. .UNINDENT
  86188. .UNINDENT
  86189. .INDENT 0.0
  86190. .TP
  86191. .B salt.modules.boto_s3.upload_file(source, name, extra_args=None, region=None, key=None, keyid=None, profile=None)
  86192. Upload a local file as an S3 object.
  86193. .sp
  86194. CLI Example:
  86195. .INDENT 7.0
  86196. .INDENT 3.5
  86197. .sp
  86198. .nf
  86199. .ft C
  86200. salt myminion boto_s3.upload_file \e
  86201. /path/to/local/file \e
  86202. my_bucket/path/to/object \e
  86203. region=us\-east\-1 \e
  86204. key=key \e
  86205. keyid=keyid \e
  86206. profile=profile \e
  86207. .ft P
  86208. .fi
  86209. .UNINDENT
  86210. .UNINDENT
  86211. .UNINDENT
  86212. .SS salt.modules.boto_sns
  86213. .sp
  86214. Connection module for Amazon SNS
  86215. .INDENT 0.0
  86216. .TP
  86217. .B configuration
  86218. This module accepts explicit sns credentials but can also
  86219. utilize IAM roles assigned to the instance through Instance Profiles. Dynamic
  86220. credentials are then automatically obtained from AWS API and no further
  86221. configuration is necessary. More Information available at:
  86222. .INDENT 7.0
  86223. .INDENT 3.5
  86224. .sp
  86225. .nf
  86226. .ft C
  86227. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html
  86228. .ft P
  86229. .fi
  86230. .UNINDENT
  86231. .UNINDENT
  86232. .sp
  86233. If IAM roles are not used you need to specify them either in a pillar or
  86234. in the minion\(aqs config file:
  86235. .INDENT 7.0
  86236. .INDENT 3.5
  86237. .sp
  86238. .nf
  86239. .ft C
  86240. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  86241. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86242. .ft P
  86243. .fi
  86244. .UNINDENT
  86245. .UNINDENT
  86246. .sp
  86247. A region may also be specified in the configuration:
  86248. .INDENT 7.0
  86249. .INDENT 3.5
  86250. .sp
  86251. .nf
  86252. .ft C
  86253. sns.region: us\-east\-1
  86254. .ft P
  86255. .fi
  86256. .UNINDENT
  86257. .UNINDENT
  86258. .sp
  86259. If a region is not specified, the default is us\-east\-1.
  86260. .sp
  86261. It\(aqs also possible to specify key, keyid and region via a profile, either
  86262. as a passed in dict, or as a string to pull from pillars or minion config:
  86263. .INDENT 7.0
  86264. .INDENT 3.5
  86265. .sp
  86266. .nf
  86267. .ft C
  86268. myprofile:
  86269. keyid: GKTADJGHEIQSXMKKRBJ08H
  86270. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  86271. region: us\-east\-1
  86272. .ft P
  86273. .fi
  86274. .UNINDENT
  86275. .UNINDENT
  86276. .TP
  86277. .B depends
  86278. boto
  86279. .UNINDENT
  86280. .INDENT 0.0
  86281. .TP
  86282. .B salt.modules.boto_sns.create(name, region=None, key=None, keyid=None, profile=None)
  86283. Create an SNS topic.
  86284. .sp
  86285. CLI example to create a topic:
  86286. .INDENT 7.0
  86287. .INDENT 3.5
  86288. .sp
  86289. .nf
  86290. .ft C
  86291. salt myminion boto_sns.create mytopic region=us\-east\-1
  86292. .ft P
  86293. .fi
  86294. .UNINDENT
  86295. .UNINDENT
  86296. .UNINDENT
  86297. .INDENT 0.0
  86298. .TP
  86299. .B salt.modules.boto_sns.delete(name, region=None, key=None, keyid=None, profile=None)
  86300. Delete an SNS topic.
  86301. .sp
  86302. CLI example to delete a topic:
  86303. .INDENT 7.0
  86304. .INDENT 3.5
  86305. .sp
  86306. .nf
  86307. .ft C
  86308. salt myminion boto_sns.delete mytopic region=us\-east\-1
  86309. .ft P
  86310. .fi
  86311. .UNINDENT
  86312. .UNINDENT
  86313. .UNINDENT
  86314. .INDENT 0.0
  86315. .TP
  86316. .B salt.modules.boto_sns.exists(name, region=None, key=None, keyid=None, profile=None)
  86317. Check to see if an SNS topic exists.
  86318. .sp
  86319. CLI example:
  86320. .INDENT 7.0
  86321. .INDENT 3.5
  86322. .sp
  86323. .nf
  86324. .ft C
  86325. salt myminion boto_sns.exists mytopic region=us\-east\-1
  86326. .ft P
  86327. .fi
  86328. .UNINDENT
  86329. .UNINDENT
  86330. .UNINDENT
  86331. .INDENT 0.0
  86332. .TP
  86333. .B salt.modules.boto_sns.get_all_subscriptions_by_topic(name, region=None, key=None, keyid=None, profile=None)
  86334. Get list of all subscriptions to a specific topic.
  86335. .sp
  86336. CLI example to delete a topic:
  86337. .INDENT 7.0
  86338. .INDENT 3.5
  86339. .sp
  86340. .nf
  86341. .ft C
  86342. salt myminion boto_sns.get_all_subscriptions_by_topic mytopic region=us\-east\-1
  86343. .ft P
  86344. .fi
  86345. .UNINDENT
  86346. .UNINDENT
  86347. .UNINDENT
  86348. .INDENT 0.0
  86349. .TP
  86350. .B salt.modules.boto_sns.get_all_topics(region=None, key=None, keyid=None, profile=None)
  86351. Returns a list of the all topics..
  86352. .sp
  86353. CLI example:
  86354. .INDENT 7.0
  86355. .INDENT 3.5
  86356. .sp
  86357. .nf
  86358. .ft C
  86359. salt myminion boto_sns.get_all_topics
  86360. .ft P
  86361. .fi
  86362. .UNINDENT
  86363. .UNINDENT
  86364. .UNINDENT
  86365. .INDENT 0.0
  86366. .TP
  86367. .B salt.modules.boto_sns.get_arn(name, region=None, key=None, keyid=None, profile=None)
  86368. Returns the full ARN for a given topic name.
  86369. .sp
  86370. CLI example:
  86371. .INDENT 7.0
  86372. .INDENT 3.5
  86373. .sp
  86374. .nf
  86375. .ft C
  86376. salt myminion boto_sns.get_arn mytopic
  86377. .ft P
  86378. .fi
  86379. .UNINDENT
  86380. .UNINDENT
  86381. .UNINDENT
  86382. .INDENT 0.0
  86383. .TP
  86384. .B salt.modules.boto_sns.subscribe(topic, protocol, endpoint, region=None, key=None, keyid=None, profile=None)
  86385. Subscribe to a Topic.
  86386. .sp
  86387. CLI example to delete a topic:
  86388. .INDENT 7.0
  86389. .INDENT 3.5
  86390. .sp
  86391. .nf
  86392. .ft C
  86393. salt myminion boto_sns.subscribe mytopic https https://www.example.com/sns\-endpoint region=us\-east\-1
  86394. .ft P
  86395. .fi
  86396. .UNINDENT
  86397. .UNINDENT
  86398. .UNINDENT
  86399. .INDENT 0.0
  86400. .TP
  86401. .B salt.modules.boto_sns.unsubscribe(topic, subscription_arn, region=None, key=None, keyid=None, profile=None)
  86402. Unsubscribe a specific SubscriptionArn of a topic.
  86403. .sp
  86404. CLI Example:
  86405. .INDENT 7.0
  86406. .INDENT 3.5
  86407. .sp
  86408. .nf
  86409. .ft C
  86410. salt myminion boto_sns.unsubscribe my_topic my_subscription_arn region=us\-east\-1
  86411. .ft P
  86412. .fi
  86413. .UNINDENT
  86414. .UNINDENT
  86415. .sp
  86416. New in version 2016.11.0.
  86417. .UNINDENT
  86418. .SS salt.modules.celery module
  86419. .sp
  86420. Support for scheduling celery tasks. The worker is independent of salt and thus can run in a different
  86421. virtualenv or on a different python version, as long as broker, backend and serializer configurations match.
  86422. Also note that celery and packages required by the celery broker, e.g. redis must be installed to load
  86423. the salt celery execution module.
  86424. .sp
  86425. \fBNOTE:\fP
  86426. .INDENT 0.0
  86427. .INDENT 3.5
  86428. A new app (and thus new connections) is created for each task execution
  86429. .UNINDENT
  86430. .UNINDENT
  86431. .INDENT 0.0
  86432. .TP
  86433. .B salt.modules.celery.run_task(task_name, args=None, kwargs=None, broker=None, backend=None, wait_for_result=False, timeout=None, propagate=True, interval=0.5, no_ack=True, raise_timeout=True, config=None)
  86434. Execute celery tasks. For celery specific parameters see celery documentation.
  86435. .sp
  86436. CLI Example:
  86437. .INDENT 7.0
  86438. .INDENT 3.5
  86439. .sp
  86440. .nf
  86441. .ft C
  86442. salt \(aq*\(aq celery.run_task tasks.sleep args=[4] broker=redis://localhost \e
  86443. backend=redis://localhost wait_for_result=true
  86444. .ft P
  86445. .fi
  86446. .UNINDENT
  86447. .UNINDENT
  86448. .INDENT 7.0
  86449. .TP
  86450. .B task_name
  86451. The task name, e.g. tasks.sleep
  86452. .TP
  86453. .B args
  86454. Task arguments as a list
  86455. .TP
  86456. .B kwargs
  86457. Task keyword arguments
  86458. .TP
  86459. .B broker
  86460. Broker for celeryapp, see celery documentation
  86461. .TP
  86462. .B backend
  86463. Result backend for celeryapp, see celery documentation
  86464. .TP
  86465. .B wait_for_result
  86466. Wait until task result is read from result backend and return result, Default: False
  86467. .TP
  86468. .B timeout
  86469. Timeout waiting for result from celery, see celery AsyncResult.get documentation
  86470. .TP
  86471. .B propagate
  86472. Propagate exceptions from celery task, see celery AsyncResult.get documentation, Default: True
  86473. .TP
  86474. .B interval
  86475. Interval to check for task result, see celery AsyncResult.get documentation, Default: 0.5
  86476. .TP
  86477. .B no_ack
  86478. see celery AsyncResult.get documentation. Default: True
  86479. .TP
  86480. .B raise_timeout
  86481. Raise timeout exception if waiting for task result times out. Default: False
  86482. .TP
  86483. .B config
  86484. Config dict for celery app, See celery documentation
  86485. .UNINDENT
  86486. .UNINDENT
  86487. .SS salt.modules.ceph module
  86488. .sp
  86489. Module to provide ceph control with salt.
  86490. .INDENT 0.0
  86491. .TP
  86492. .B depends
  86493. .INDENT 7.0
  86494. .IP \(bu 2
  86495. ceph_cfg Python module
  86496. .UNINDENT
  86497. .UNINDENT
  86498. .sp
  86499. New in version 2016.11.0.
  86500. .INDENT 0.0
  86501. .TP
  86502. .B salt.modules.ceph.ceph_version()
  86503. Get the version of ceph installed
  86504. .sp
  86505. CLI Example:
  86506. .INDENT 7.0
  86507. .INDENT 3.5
  86508. .sp
  86509. .nf
  86510. .ft C
  86511. salt \(aq*\(aq ceph.ceph_version
  86512. .ft P
  86513. .fi
  86514. .UNINDENT
  86515. .UNINDENT
  86516. .UNINDENT
  86517. .INDENT 0.0
  86518. .TP
  86519. .B salt.modules.ceph.cluster_quorum(**kwargs)
  86520. Get the cluster\(aqs quorum status
  86521. .sp
  86522. CLI Example:
  86523. .INDENT 7.0
  86524. .INDENT 3.5
  86525. .sp
  86526. .nf
  86527. .ft C
  86528. salt \(aq*\(aq ceph.cluster_quorum \e
  86529. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86530. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86531. .ft P
  86532. .fi
  86533. .UNINDENT
  86534. .UNINDENT
  86535. .INDENT 7.0
  86536. .TP
  86537. .B cluster_uuid
  86538. The cluster UUID. Defaults to value found in ceph config file.
  86539. .TP
  86540. .B cluster_name
  86541. The cluster name. Defaults to \fBceph\fP\&.
  86542. .UNINDENT
  86543. .UNINDENT
  86544. .INDENT 0.0
  86545. .TP
  86546. .B salt.modules.ceph.cluster_status(**kwargs)
  86547. Get the cluster status, including health if in quorum
  86548. .sp
  86549. CLI Example:
  86550. .INDENT 7.0
  86551. .INDENT 3.5
  86552. .sp
  86553. .nf
  86554. .ft C
  86555. salt \(aq*\(aq ceph.cluster_status \e
  86556. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86557. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86558. .ft P
  86559. .fi
  86560. .UNINDENT
  86561. .UNINDENT
  86562. .INDENT 7.0
  86563. .TP
  86564. .B cluster_uuid
  86565. The cluster UUID. Defaults to value found in ceph config file.
  86566. .TP
  86567. .B cluster_name
  86568. The cluster name. Defaults to \fBceph\fP\&.
  86569. .UNINDENT
  86570. .UNINDENT
  86571. .INDENT 0.0
  86572. .TP
  86573. .B salt.modules.ceph.keyring_auth_add(**kwargs)
  86574. Add keyring to authorized list
  86575. .sp
  86576. CLI Example:
  86577. .INDENT 7.0
  86578. .INDENT 3.5
  86579. .sp
  86580. .nf
  86581. .ft C
  86582. salt \(aq*\(aq ceph.keyring_auth_add \e
  86583. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86584. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86585. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86586. .ft P
  86587. .fi
  86588. .UNINDENT
  86589. .UNINDENT
  86590. .INDENT 7.0
  86591. .TP
  86592. .B keyring_type (required)
  86593. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86594. .TP
  86595. .B cluster_uuid
  86596. The cluster UUID. Defaults to value found in ceph config file.
  86597. .TP
  86598. .B cluster_name
  86599. The cluster name. Defaults to \fBceph\fP\&.
  86600. .UNINDENT
  86601. .UNINDENT
  86602. .INDENT 0.0
  86603. .TP
  86604. .B salt.modules.ceph.keyring_auth_del(**kwargs)
  86605. Remove keyring from authorised list
  86606. .sp
  86607. CLI Example:
  86608. .INDENT 7.0
  86609. .INDENT 3.5
  86610. .sp
  86611. .nf
  86612. .ft C
  86613. salt \(aq*\(aq ceph.keyring_osd_auth_del \e
  86614. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86615. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86616. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86617. .ft P
  86618. .fi
  86619. .UNINDENT
  86620. .UNINDENT
  86621. .INDENT 7.0
  86622. .TP
  86623. .B keyring_type (required)
  86624. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86625. .TP
  86626. .B cluster_uuid
  86627. The cluster UUID. Defaults to value found in ceph config file.
  86628. .TP
  86629. .B cluster_name
  86630. The cluster name. Defaults to \fBceph\fP\&.
  86631. .UNINDENT
  86632. .UNINDENT
  86633. .INDENT 0.0
  86634. .TP
  86635. .B salt.modules.ceph.keyring_auth_list(**kwargs)
  86636. List all cephx authorization keys
  86637. .sp
  86638. CLI Example:
  86639. .INDENT 7.0
  86640. .INDENT 3.5
  86641. .sp
  86642. .nf
  86643. .ft C
  86644. salt \(aq*\(aq ceph.keyring_auth_list \e
  86645. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86646. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86647. .ft P
  86648. .fi
  86649. .UNINDENT
  86650. .UNINDENT
  86651. .INDENT 7.0
  86652. .TP
  86653. .B cluster_name
  86654. The cluster name. Defaults to \fBceph\fP\&.
  86655. .TP
  86656. .B cluster_uuid
  86657. The cluster UUID. Defaults to value found in ceph config file.
  86658. .UNINDENT
  86659. .UNINDENT
  86660. .INDENT 0.0
  86661. .TP
  86662. .B salt.modules.ceph.keyring_create(**kwargs)
  86663. Create keyring for cluster
  86664. .sp
  86665. CLI Example:
  86666. .INDENT 7.0
  86667. .INDENT 3.5
  86668. .sp
  86669. .nf
  86670. .ft C
  86671. salt \(aq*\(aq ceph.keyring_create \e
  86672. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86673. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86674. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86675. .ft P
  86676. .fi
  86677. .UNINDENT
  86678. .UNINDENT
  86679. .INDENT 7.0
  86680. .TP
  86681. .B keyring_type (required)
  86682. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86683. .TP
  86684. .B cluster_uuid
  86685. The cluster UUID. Defaults to value found in ceph config file.
  86686. .TP
  86687. .B cluster_name
  86688. The cluster name. Defaults to \fBceph\fP\&.
  86689. .UNINDENT
  86690. .UNINDENT
  86691. .INDENT 0.0
  86692. .TP
  86693. .B salt.modules.ceph.keyring_present(**kwargs)
  86694. Returns \fBTrue\fP if the keyring is present on disk, otherwise \fBFalse\fP
  86695. .sp
  86696. CLI Example:
  86697. .INDENT 7.0
  86698. .INDENT 3.5
  86699. .sp
  86700. .nf
  86701. .ft C
  86702. salt \(aq*\(aq ceph.keyring_present \e
  86703. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86704. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86705. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86706. .ft P
  86707. .fi
  86708. .UNINDENT
  86709. .UNINDENT
  86710. .INDENT 7.0
  86711. .TP
  86712. .B keyring_type (required)
  86713. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86714. .TP
  86715. .B cluster_uuid
  86716. The cluster UUID. Defaults to value found in ceph config file.
  86717. .TP
  86718. .B cluster_name
  86719. The cluster name. Defaults to \fBceph\fP\&.
  86720. .UNINDENT
  86721. .UNINDENT
  86722. .INDENT 0.0
  86723. .TP
  86724. .B salt.modules.ceph.keyring_purge(**kwargs)
  86725. Delete keyring for cluster
  86726. .sp
  86727. CLI Example:
  86728. .INDENT 7.0
  86729. .INDENT 3.5
  86730. .sp
  86731. .nf
  86732. .ft C
  86733. salt \(aq*\(aq ceph.keyring_purge \e
  86734. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86735. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86736. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86737. .ft P
  86738. .fi
  86739. .UNINDENT
  86740. .UNINDENT
  86741. .INDENT 7.0
  86742. .TP
  86743. .B keyring_type (required)
  86744. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86745. .TP
  86746. .B cluster_uuid
  86747. The cluster UUID. Defaults to value found in ceph config file.
  86748. .TP
  86749. .B cluster_name
  86750. The cluster name. Defaults to \fBceph\fP\&.
  86751. .UNINDENT
  86752. .sp
  86753. If no ceph config file is found, this command will fail.
  86754. .UNINDENT
  86755. .INDENT 0.0
  86756. .TP
  86757. .B salt.modules.ceph.keyring_save(**kwargs)
  86758. Create save keyring locally
  86759. .sp
  86760. CLI Example:
  86761. .INDENT 7.0
  86762. .INDENT 3.5
  86763. .sp
  86764. .nf
  86765. .ft C
  86766. salt \(aq*\(aq ceph.keyring_save \e
  86767. \(aqkeyring_type\(aq=\(aqadmin\(aq \e
  86768. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86769. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86770. .ft P
  86771. .fi
  86772. .UNINDENT
  86773. .UNINDENT
  86774. .INDENT 7.0
  86775. .TP
  86776. .B keyring_type (required)
  86777. One of \fBadmin\fP, \fBmon\fP, \fBosd\fP, \fBrgw\fP, \fBmds\fP
  86778. .TP
  86779. .B cluster_uuid
  86780. The cluster UUID. Defaults to value found in ceph config file.
  86781. .TP
  86782. .B cluster_name
  86783. The cluster name. Defaults to \fBceph\fP\&.
  86784. .UNINDENT
  86785. .UNINDENT
  86786. .INDENT 0.0
  86787. .TP
  86788. .B salt.modules.ceph.mds_create(**kwargs)
  86789. Create a mds
  86790. .sp
  86791. CLI Example:
  86792. .INDENT 7.0
  86793. .INDENT 3.5
  86794. .sp
  86795. .nf
  86796. .ft C
  86797. salt \(aq*\(aq ceph.mds_create \e
  86798. \(aqname\(aq = \(aqmds.name\(aq \e
  86799. \(aqport\(aq = 1000, \e
  86800. \(aqaddr\(aq = \(aqfqdn.example.org\(aq \e
  86801. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86802. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86803. .ft P
  86804. .fi
  86805. .UNINDENT
  86806. .UNINDENT
  86807. .INDENT 7.0
  86808. .TP
  86809. .B name (required)
  86810. The MDS name (must start with \fBmds.\fP)
  86811. .TP
  86812. .B port (required)
  86813. Port to which the MDS will listen
  86814. .TP
  86815. .B addr (required)
  86816. Address or IP address for the MDS to listen
  86817. .TP
  86818. .B cluster_uuid
  86819. The cluster UUID. Defaults to value found in ceph config file.
  86820. .TP
  86821. .B cluster_name
  86822. The cluster name. Defaults to \fBceph\fP\&.
  86823. .UNINDENT
  86824. .UNINDENT
  86825. .INDENT 0.0
  86826. .TP
  86827. .B salt.modules.ceph.mds_destroy(**kwargs)
  86828. Remove a mds
  86829. .sp
  86830. CLI Example:
  86831. .INDENT 7.0
  86832. .INDENT 3.5
  86833. .sp
  86834. .nf
  86835. .ft C
  86836. salt \(aq*\(aq ceph.mds_destroy \e
  86837. \(aqname\(aq = \(aqmds.name\(aq \e
  86838. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86839. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86840. .ft P
  86841. .fi
  86842. .UNINDENT
  86843. .UNINDENT
  86844. .INDENT 7.0
  86845. .TP
  86846. .B name (required)
  86847. The MDS name (must start with \fBmds.\fP)
  86848. .TP
  86849. .B cluster_uuid
  86850. The cluster UUID. Defaults to value found in ceph config file.
  86851. .TP
  86852. .B cluster_name
  86853. The cluster name. Defaults to \fBceph\fP\&.
  86854. .UNINDENT
  86855. .UNINDENT
  86856. .INDENT 0.0
  86857. .TP
  86858. .B salt.modules.ceph.mon_active(**kwargs)
  86859. Returns \fBTrue\fP if the mon daemon is running, otherwise \fBFalse\fP
  86860. .sp
  86861. CLI Example:
  86862. .INDENT 7.0
  86863. .INDENT 3.5
  86864. .sp
  86865. .nf
  86866. .ft C
  86867. salt \(aq*\(aq ceph.mon_active \e
  86868. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86869. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86870. .ft P
  86871. .fi
  86872. .UNINDENT
  86873. .UNINDENT
  86874. .INDENT 7.0
  86875. .TP
  86876. .B cluster_uuid
  86877. The cluster UUID. Defaults to value found in ceph config file.
  86878. .TP
  86879. .B cluster_name
  86880. The cluster name. Defaults to \fBceph\fP\&.
  86881. .UNINDENT
  86882. .UNINDENT
  86883. .INDENT 0.0
  86884. .TP
  86885. .B salt.modules.ceph.mon_create(**kwargs)
  86886. Create a mon node
  86887. .sp
  86888. CLI Example:
  86889. .INDENT 7.0
  86890. .INDENT 3.5
  86891. .sp
  86892. .nf
  86893. .ft C
  86894. salt \(aq*\(aq ceph.mon_create \e
  86895. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86896. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86897. .ft P
  86898. .fi
  86899. .UNINDENT
  86900. .UNINDENT
  86901. .INDENT 7.0
  86902. .TP
  86903. .B cluster_uuid
  86904. The cluster UUID. Defaults to value found in ceph config file.
  86905. .TP
  86906. .B cluster_name
  86907. The cluster name. Defaults to \fBceph\fP\&.
  86908. .UNINDENT
  86909. .UNINDENT
  86910. .INDENT 0.0
  86911. .TP
  86912. .B salt.modules.ceph.mon_is(**kwargs)
  86913. Returns \fBTrue\fP if the target is a mon node, otherwise \fBFalse\fP
  86914. .sp
  86915. CLI Example:
  86916. .INDENT 7.0
  86917. .INDENT 3.5
  86918. .sp
  86919. .nf
  86920. .ft C
  86921. salt \(aq*\(aq ceph.mon_is \e
  86922. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86923. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86924. .ft P
  86925. .fi
  86926. .UNINDENT
  86927. .UNINDENT
  86928. .INDENT 7.0
  86929. .TP
  86930. .B cluster_name
  86931. The cluster name. Defaults to \fBceph\fP\&.
  86932. .TP
  86933. .B cluster_uuid
  86934. The cluster UUID. Defaults to value found in ceph config file.
  86935. .UNINDENT
  86936. .UNINDENT
  86937. .INDENT 0.0
  86938. .TP
  86939. .B salt.modules.ceph.mon_quorum(**kwargs)
  86940. Returns \fBTrue\fP if the mon daemon is in the quorum, otherwise \fBFalse\fP
  86941. .sp
  86942. CLI Example:
  86943. .INDENT 7.0
  86944. .INDENT 3.5
  86945. .sp
  86946. .nf
  86947. .ft C
  86948. salt \(aq*\(aq ceph.mon_quorum \e
  86949. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86950. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86951. .ft P
  86952. .fi
  86953. .UNINDENT
  86954. .UNINDENT
  86955. .INDENT 7.0
  86956. .TP
  86957. .B cluster_uuid
  86958. The cluster UUID. Defaults to value found in ceph config file.
  86959. .TP
  86960. .B cluster_name
  86961. The cluster name. Defaults to \fBceph\fP\&.
  86962. .UNINDENT
  86963. .UNINDENT
  86964. .INDENT 0.0
  86965. .TP
  86966. .B salt.modules.ceph.mon_status(**kwargs)
  86967. Get status from mon daemon
  86968. .sp
  86969. CLI Example:
  86970. .INDENT 7.0
  86971. .INDENT 3.5
  86972. .sp
  86973. .nf
  86974. .ft C
  86975. salt \(aq*\(aq ceph.mon_status \e
  86976. \(aqcluster_name\(aq=\(aqceph\(aq \e
  86977. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  86978. .ft P
  86979. .fi
  86980. .UNINDENT
  86981. .UNINDENT
  86982. .INDENT 7.0
  86983. .TP
  86984. .B cluster_uuid
  86985. The cluster UUID. Defaults to value found in ceph config file.
  86986. .TP
  86987. .B cluster_name
  86988. The cluster name. Defaults to \fBceph\fP\&.
  86989. .UNINDENT
  86990. .UNINDENT
  86991. .INDENT 0.0
  86992. .TP
  86993. .B salt.modules.ceph.osd_activate(**kwargs)
  86994. Activate an OSD
  86995. .sp
  86996. CLI Example:
  86997. .INDENT 7.0
  86998. .INDENT 3.5
  86999. .sp
  87000. .nf
  87001. .ft C
  87002. salt \(aq*\(aq ceph.osd_activate \(aqosd_dev\(aq=\(aq/dev/vdc\(aq
  87003. .ft P
  87004. .fi
  87005. .UNINDENT
  87006. .UNINDENT
  87007. .UNINDENT
  87008. .INDENT 0.0
  87009. .TP
  87010. .B salt.modules.ceph.osd_discover()
  87011. List all OSD by cluster
  87012. .sp
  87013. CLI Example:
  87014. .INDENT 7.0
  87015. .INDENT 3.5
  87016. .sp
  87017. .nf
  87018. .ft C
  87019. salt \(aq*\(aq ceph.osd_discover
  87020. .ft P
  87021. .fi
  87022. .UNINDENT
  87023. .UNINDENT
  87024. .UNINDENT
  87025. .INDENT 0.0
  87026. .TP
  87027. .B salt.modules.ceph.osd_prepare(**kwargs)
  87028. Prepare an OSD
  87029. .sp
  87030. CLI Example:
  87031. .INDENT 7.0
  87032. .INDENT 3.5
  87033. .sp
  87034. .nf
  87035. .ft C
  87036. salt \(aq*\(aq ceph.osd_prepare \(aqosd_dev\(aq=\(aq/dev/vdc\(aq \e
  87037. \(aqjournal_dev\(aq=\(aqdevice\(aq \e
  87038. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87039. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq \e
  87040. \(aqosd_fs_type\(aq=\(aqxfs\(aq \e
  87041. \(aqosd_uuid\(aq=\(aq2a143b73\-6d85\-4389\-a9e9\-b8a78d9e1e07\(aq \e
  87042. \(aqjournal_uuid\(aq=\(aq4562a5db\-ff6f\-4268\-811d\-12fd4a09ae98\(aq
  87043. .ft P
  87044. .fi
  87045. .UNINDENT
  87046. .UNINDENT
  87047. .INDENT 7.0
  87048. .TP
  87049. .B cluster_uuid
  87050. The device to store the osd data on.
  87051. .TP
  87052. .B journal_dev
  87053. The journal device. defaults to osd_dev.
  87054. .TP
  87055. .B cluster_name
  87056. The cluster name. Defaults to \fBceph\fP\&.
  87057. .TP
  87058. .B cluster_uuid
  87059. The cluster date will be added too. Defaults to the value found in local config.
  87060. .TP
  87061. .B osd_fs_type
  87062. set the file system to store OSD data with. Defaults to "xfs".
  87063. .TP
  87064. .B osd_uuid
  87065. set the OSD data UUID. If set will return if OSD with data UUID already exists.
  87066. .TP
  87067. .B journal_uuid
  87068. set the OSD journal UUID. If set will return if OSD with journal UUID already exists.
  87069. .UNINDENT
  87070. .UNINDENT
  87071. .INDENT 0.0
  87072. .TP
  87073. .B salt.modules.ceph.partition_is(dev)
  87074. Check whether a given device path is a partition or a full disk.
  87075. .sp
  87076. CLI Example:
  87077. .INDENT 7.0
  87078. .INDENT 3.5
  87079. .sp
  87080. .nf
  87081. .ft C
  87082. salt \(aq*\(aq ceph.partition_is /dev/sdc1
  87083. .ft P
  87084. .fi
  87085. .UNINDENT
  87086. .UNINDENT
  87087. .UNINDENT
  87088. .INDENT 0.0
  87089. .TP
  87090. .B salt.modules.ceph.partition_list()
  87091. List partitions by disk
  87092. .sp
  87093. CLI Example:
  87094. .INDENT 7.0
  87095. .INDENT 3.5
  87096. .sp
  87097. .nf
  87098. .ft C
  87099. salt \(aq*\(aq ceph.partition_list
  87100. .ft P
  87101. .fi
  87102. .UNINDENT
  87103. .UNINDENT
  87104. .UNINDENT
  87105. .INDENT 0.0
  87106. .TP
  87107. .B salt.modules.ceph.partition_list_journal()
  87108. List all OSD journal partitions by partition
  87109. .sp
  87110. CLI Example:
  87111. .INDENT 7.0
  87112. .INDENT 3.5
  87113. .sp
  87114. .nf
  87115. .ft C
  87116. salt \(aq*\(aq ceph.partition_list_journal
  87117. .ft P
  87118. .fi
  87119. .UNINDENT
  87120. .UNINDENT
  87121. .UNINDENT
  87122. .INDENT 0.0
  87123. .TP
  87124. .B salt.modules.ceph.partition_list_osd()
  87125. List all OSD data partitions by partition
  87126. .sp
  87127. CLI Example:
  87128. .INDENT 7.0
  87129. .INDENT 3.5
  87130. .sp
  87131. .nf
  87132. .ft C
  87133. salt \(aq*\(aq ceph.partition_list_osd
  87134. .ft P
  87135. .fi
  87136. .UNINDENT
  87137. .UNINDENT
  87138. .UNINDENT
  87139. .INDENT 0.0
  87140. .TP
  87141. .B salt.modules.ceph.pool_add(pool_name, **kwargs)
  87142. Create a pool
  87143. .sp
  87144. CLI Example:
  87145. .INDENT 7.0
  87146. .INDENT 3.5
  87147. .sp
  87148. .nf
  87149. .ft C
  87150. salt \(aq*\(aq ceph.pool_add pool_name \e
  87151. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87152. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87153. .ft P
  87154. .fi
  87155. .UNINDENT
  87156. .UNINDENT
  87157. .INDENT 7.0
  87158. .TP
  87159. .B cluster_name
  87160. The cluster name. Defaults to \fBceph\fP\&.
  87161. .TP
  87162. .B cluster_uuid
  87163. The cluster UUID. Defaults to value found in ceph config file.
  87164. .TP
  87165. .B pg_num
  87166. Default to 8
  87167. .TP
  87168. .B pgp_num
  87169. Default to pg_num
  87170. .TP
  87171. .B pool_type
  87172. can take values "replicated" or "erasure"
  87173. .TP
  87174. .B erasure_code_profile
  87175. The "erasure_code_profile"
  87176. .TP
  87177. .B crush_ruleset
  87178. The crush map rule set
  87179. .UNINDENT
  87180. .UNINDENT
  87181. .INDENT 0.0
  87182. .TP
  87183. .B salt.modules.ceph.pool_del(pool_name, **kwargs)
  87184. Delete a pool
  87185. .sp
  87186. CLI Example:
  87187. .INDENT 7.0
  87188. .INDENT 3.5
  87189. .sp
  87190. .nf
  87191. .ft C
  87192. salt \(aq*\(aq ceph.pool_del pool_name \e
  87193. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87194. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87195. .ft P
  87196. .fi
  87197. .UNINDENT
  87198. .UNINDENT
  87199. .INDENT 7.0
  87200. .TP
  87201. .B cluster_name
  87202. The cluster name. Defaults to \fBceph\fP\&.
  87203. .TP
  87204. .B cluster_uuid
  87205. The cluster UUID. Defaults to value found in ceph config file.
  87206. .UNINDENT
  87207. .UNINDENT
  87208. .INDENT 0.0
  87209. .TP
  87210. .B salt.modules.ceph.pool_list(**kwargs)
  87211. List all pools
  87212. .sp
  87213. CLI Example:
  87214. .INDENT 7.0
  87215. .INDENT 3.5
  87216. .sp
  87217. .nf
  87218. .ft C
  87219. salt \(aq*\(aq ceph.pool_list \e
  87220. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87221. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87222. .ft P
  87223. .fi
  87224. .UNINDENT
  87225. .UNINDENT
  87226. .INDENT 7.0
  87227. .TP
  87228. .B cluster_name
  87229. The cluster name. Defaults to \fBceph\fP\&.
  87230. .TP
  87231. .B cluster_uuid
  87232. The cluster UUID. Defaults to value found in ceph config file.
  87233. .UNINDENT
  87234. .UNINDENT
  87235. .INDENT 0.0
  87236. .TP
  87237. .B salt.modules.ceph.purge(**kwargs)
  87238. purge ceph configuration on the node
  87239. .sp
  87240. CLI Example:
  87241. .INDENT 7.0
  87242. .INDENT 3.5
  87243. .sp
  87244. .nf
  87245. .ft C
  87246. salt \(aq*\(aq ceph.purge \e
  87247. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87248. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87249. .ft P
  87250. .fi
  87251. .UNINDENT
  87252. .UNINDENT
  87253. .INDENT 7.0
  87254. .TP
  87255. .B cluster_name
  87256. The cluster name. Defaults to \fBceph\fP\&.
  87257. .TP
  87258. .B cluster_uuid
  87259. The cluster UUID. Defaults to value found in ceph config file.
  87260. .UNINDENT
  87261. .UNINDENT
  87262. .INDENT 0.0
  87263. .TP
  87264. .B salt.modules.ceph.rgw_create(**kwargs)
  87265. Create a rgw
  87266. .sp
  87267. CLI Example:
  87268. .INDENT 7.0
  87269. .INDENT 3.5
  87270. .sp
  87271. .nf
  87272. .ft C
  87273. salt \(aq*\(aq ceph.rgw_create \e
  87274. \(aqname\(aq = \(aqrgw.name\(aq \e
  87275. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87276. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87277. .ft P
  87278. .fi
  87279. .UNINDENT
  87280. .UNINDENT
  87281. .INDENT 7.0
  87282. .TP
  87283. .B name (required)
  87284. The RGW client name. Must start with \fBrgw.\fP
  87285. .TP
  87286. .B cluster_uuid
  87287. The cluster UUID. Defaults to value found in ceph config file.
  87288. .TP
  87289. .B cluster_name
  87290. The cluster name. Defaults to \fBceph\fP\&.
  87291. .UNINDENT
  87292. .UNINDENT
  87293. .INDENT 0.0
  87294. .TP
  87295. .B salt.modules.ceph.rgw_destroy(**kwargs)
  87296. Remove a rgw
  87297. .sp
  87298. CLI Example:
  87299. .INDENT 7.0
  87300. .INDENT 3.5
  87301. .sp
  87302. .nf
  87303. .ft C
  87304. salt \(aq*\(aq ceph.rgw_destroy \e
  87305. \(aqname\(aq = \(aqrgw.name\(aq \e
  87306. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87307. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87308. .ft P
  87309. .fi
  87310. .UNINDENT
  87311. .UNINDENT
  87312. .INDENT 7.0
  87313. .TP
  87314. .B name (required)
  87315. The RGW client name (must start with \fBrgw.\fP)
  87316. .TP
  87317. .B cluster_uuid
  87318. The cluster UUID. Defaults to value found in ceph config file.
  87319. .TP
  87320. .B cluster_name
  87321. The cluster name. Defaults to \fBceph\fP\&.
  87322. .UNINDENT
  87323. .UNINDENT
  87324. .INDENT 0.0
  87325. .TP
  87326. .B salt.modules.ceph.rgw_pools_create(**kwargs)
  87327. Create pools for rgw
  87328. .sp
  87329. CLI Example:
  87330. .INDENT 7.0
  87331. .INDENT 3.5
  87332. .sp
  87333. .nf
  87334. .ft C
  87335. salt \(aq*\(aq ceph.rgw_pools_create
  87336. .ft P
  87337. .fi
  87338. .UNINDENT
  87339. .UNINDENT
  87340. .INDENT 7.0
  87341. .TP
  87342. .B cluster_uuid
  87343. The cluster UUID. Defaults to value found in ceph config file.
  87344. .TP
  87345. .B cluster_name
  87346. The cluster name. Defaults to \fBceph\fP\&.
  87347. .UNINDENT
  87348. .UNINDENT
  87349. .INDENT 0.0
  87350. .TP
  87351. .B salt.modules.ceph.rgw_pools_missing(**kwargs)
  87352. Show pools missing for rgw
  87353. .sp
  87354. CLI Example:
  87355. .INDENT 7.0
  87356. .INDENT 3.5
  87357. .sp
  87358. .nf
  87359. .ft C
  87360. salt \(aq*\(aq ceph.rgw_pools_missing
  87361. .ft P
  87362. .fi
  87363. .UNINDENT
  87364. .UNINDENT
  87365. .INDENT 7.0
  87366. .TP
  87367. .B cluster_uuid
  87368. The cluster UUID. Defaults to value found in ceph config file.
  87369. .TP
  87370. .B cluster_name
  87371. The cluster name. Defaults to \fBceph\fP\&.
  87372. .UNINDENT
  87373. .UNINDENT
  87374. .INDENT 0.0
  87375. .TP
  87376. .B salt.modules.ceph.zap(target=None, **kwargs)
  87377. Destroy the partition table and content of a given disk.
  87378. .INDENT 7.0
  87379. .INDENT 3.5
  87380. .sp
  87381. .nf
  87382. .ft C
  87383. salt \(aq*\(aq ceph.osd_prepare \(aqdev\(aq=\(aq/dev/vdc\(aq \e
  87384. \(aqcluster_name\(aq=\(aqceph\(aq \e
  87385. \(aqcluster_uuid\(aq=\(aqcluster_uuid\(aq
  87386. .ft P
  87387. .fi
  87388. .UNINDENT
  87389. .UNINDENT
  87390. .INDENT 7.0
  87391. .TP
  87392. .B dev
  87393. The block device to format.
  87394. .TP
  87395. .B cluster_name
  87396. The cluster name. Defaults to \fBceph\fP\&.
  87397. .TP
  87398. .B cluster_uuid
  87399. The cluster UUID. Defaults to value found in ceph config file.
  87400. .UNINDENT
  87401. .UNINDENT
  87402. .SS salt.modules.ciscoconfparse_mod module
  87403. .sp
  87404. Execution module for \fI\%ciscoconfparse\fP
  87405. .sp
  87406. New in version 2019.2.0.
  87407. .sp
  87408. This module can be used for basic configuration parsing, audit or validation
  87409. for a variety of network platforms having Cisco IOS style configuration (one
  87410. space indentation), including: Cisco IOS, Cisco Nexus, Cisco IOS\-XR,
  87411. Cisco IOS\-XR, Cisco ASA, Arista EOS, Brocade, HP Switches, Dell PowerConnect
  87412. Switches, or Extreme Networks devices. In newer versions, \fBciscoconfparse\fP
  87413. provides support for brace\-delimited configuration style as well, for platforms
  87414. such as: Juniper Junos, Palo Alto, or F5 Networks.
  87415. .sp
  87416. See \fI\%http://www.pennington.net/py/ciscoconfparse/index.html\fP for further details.
  87417. .INDENT 0.0
  87418. .TP
  87419. .B depends
  87420. ciscoconfparse
  87421. .UNINDENT
  87422. .sp
  87423. This module depends on the Python library with the same name,
  87424. \fBciscoconfparse\fP \- to install execute: \fBpip install ciscoconfparse\fP\&.
  87425. .INDENT 0.0
  87426. .TP
  87427. .B salt.modules.ciscoconfparse_mod.filter_lines(config=None, config_path=None, parent_regex=None, child_regex=None, saltenv=u\(aqbase\(aq)
  87428. Return a list of detailed matches, for the configuration blocks (parent\-child
  87429. relationship) whose parent respects the regular expressions configured via
  87430. the \fBparent_regex\fP argument, and the child matches the \fBchild_regex\fP
  87431. regular expression. The result is a list of dictionaries with the following
  87432. keys:
  87433. .INDENT 7.0
  87434. .IP \(bu 2
  87435. \fBmatch\fP: a boolean value that tells whether \fBchild_regex\fP matched any
  87436. children lines.
  87437. .IP \(bu 2
  87438. \fBparent\fP: the parent line (as text).
  87439. .IP \(bu 2
  87440. \fBchild\fP: the child line (as text). If no child line matched, this field
  87441. will be \fBNone\fP\&.
  87442. .UNINDENT
  87443. .sp
  87444. Note that the return list contains the elements that matched the parent
  87445. condition, the \fBparent_regex\fP regular expression. Therefore, the \fBparent\fP
  87446. field will always have a valid value, while \fBmatch\fP and \fBchild\fP may
  87447. default to \fBFalse\fP and \fBNone\fP respectively when there is not child match.
  87448. .sp
  87449. CLI Example:
  87450. .INDENT 7.0
  87451. .INDENT 3.5
  87452. .sp
  87453. .nf
  87454. .ft C
  87455. salt \(aq*\(aq ciscoconfparse.filter_lines config_path=https://bit.ly/2mAdq7z parent_regex=\(aqGigabit\(aq child_regex=\(aqshutdown\(aq
  87456. .ft P
  87457. .fi
  87458. .UNINDENT
  87459. .UNINDENT
  87460. .sp
  87461. Example output (for the example above):
  87462. .INDENT 7.0
  87463. .INDENT 3.5
  87464. .sp
  87465. .nf
  87466. .ft C
  87467. [
  87468. {
  87469. \(aqparent\(aq: \(aqinterface GigabitEthernet1\(aq,
  87470. \(aqmatch\(aq: False,
  87471. \(aqchild\(aq: None
  87472. },
  87473. {
  87474. \(aqparent\(aq: \(aqinterface GigabitEthernet2\(aq,
  87475. \(aqmatch\(aq: True,
  87476. \(aqchild\(aq: \(aq shutdown\(aq
  87477. },
  87478. {
  87479. \(aqparent\(aq: \(aqinterface GigabitEthernet3\(aq,
  87480. \(aqmatch\(aq: True,
  87481. \(aqchild\(aq: \(aq shutdown\(aq
  87482. }
  87483. ]
  87484. .ft P
  87485. .fi
  87486. .UNINDENT
  87487. .UNINDENT
  87488. .UNINDENT
  87489. .INDENT 0.0
  87490. .TP
  87491. .B salt.modules.ciscoconfparse_mod.find_lines(config=None, config_path=None, regex=None, saltenv=u\(aqbase\(aq)
  87492. Return all the lines (as text) that match the expression in the \fBregex\fP
  87493. argument.
  87494. .INDENT 7.0
  87495. .TP
  87496. .B config
  87497. The configuration sent as text.
  87498. .sp
  87499. \fBNOTE:\fP
  87500. .INDENT 7.0
  87501. .INDENT 3.5
  87502. This argument is ignored when \fBconfig_path\fP is specified.
  87503. .UNINDENT
  87504. .UNINDENT
  87505. .TP
  87506. .B config_path
  87507. The absolute or remote path to the file with the configuration to be
  87508. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87509. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87510. .TP
  87511. .B regex
  87512. The regular expression to match the lines against.
  87513. .TP
  87514. .B saltenv: \fBbase\fP
  87515. Salt fileserver environment from which to retrieve the file. This
  87516. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87517. .UNINDENT
  87518. .sp
  87519. CLI Example:
  87520. .INDENT 7.0
  87521. .INDENT 3.5
  87522. .sp
  87523. .nf
  87524. .ft C
  87525. salt \(aq*\(aq ciscoconfparse.find_lines config_path=https://bit.ly/2mAdq7z regex=\(aqip address\(aq
  87526. .ft P
  87527. .fi
  87528. .UNINDENT
  87529. .UNINDENT
  87530. .sp
  87531. Output example:
  87532. .INDENT 7.0
  87533. .INDENT 3.5
  87534. .sp
  87535. .nf
  87536. .ft C
  87537. cisco\-ios\-router:
  87538. \- ip address dhcp
  87539. \- ip address 172.20.0.1 255.255.255.0
  87540. \- no ip address
  87541. .ft P
  87542. .fi
  87543. .UNINDENT
  87544. .UNINDENT
  87545. .UNINDENT
  87546. .INDENT 0.0
  87547. .TP
  87548. .B salt.modules.ciscoconfparse_mod.find_lines_w_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv=u\(aqbase\(aq)
  87549. Return a list of parent lines (as text) matching the regular expression
  87550. \fBparent_regex\fP that have children lines matching \fBchild_regex\fP\&.
  87551. .INDENT 7.0
  87552. .TP
  87553. .B config
  87554. The configuration sent as text.
  87555. .sp
  87556. \fBNOTE:\fP
  87557. .INDENT 7.0
  87558. .INDENT 3.5
  87559. This argument is ignored when \fBconfig_path\fP is specified.
  87560. .UNINDENT
  87561. .UNINDENT
  87562. .TP
  87563. .B config_path
  87564. The absolute or remote path to the file with the configuration to be
  87565. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87566. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87567. .TP
  87568. .B parent_regex
  87569. The regular expression to match the parent lines against.
  87570. .TP
  87571. .B child_regex
  87572. The regular expression to match the child lines against.
  87573. .TP
  87574. .B ignore_ws: \fBFalse\fP
  87575. Whether to ignore the white spaces.
  87576. .TP
  87577. .B saltenv: \fBbase\fP
  87578. Salt fileserver environment from which to retrieve the file. This
  87579. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87580. .UNINDENT
  87581. .sp
  87582. CLI Example:
  87583. .INDENT 7.0
  87584. .INDENT 3.5
  87585. .sp
  87586. .nf
  87587. .ft C
  87588. salt \(aq*\(aq ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2mAdq7z parent_line=\(aqline con\(aq child_line=\(aqstopbits\(aq
  87589. salt \(aq*\(aq ciscoconfparse.find_lines_w_child config_path=https://bit.ly/2uIRxau parent_regex=\(aqge\-(.*)\(aq child_regex=\(aqunit \ed+\(aq
  87590. .ft P
  87591. .fi
  87592. .UNINDENT
  87593. .UNINDENT
  87594. .UNINDENT
  87595. .INDENT 0.0
  87596. .TP
  87597. .B salt.modules.ciscoconfparse_mod.find_lines_wo_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv=u\(aqbase\(aq)
  87598. Return a list of parent \fBciscoconfparse.IOSCfgLine\fP lines as text, which
  87599. matched the \fBparent_regex\fP and whose children did \fInot\fP match \fBchild_regex\fP\&.
  87600. Only the parent \fBciscoconfparse.IOSCfgLine\fP text lines will be returned.
  87601. For simplicity, this method only finds oldest ancestors without immediate
  87602. children that match.
  87603. .INDENT 7.0
  87604. .TP
  87605. .B config
  87606. The configuration sent as text.
  87607. .sp
  87608. \fBNOTE:\fP
  87609. .INDENT 7.0
  87610. .INDENT 3.5
  87611. This argument is ignored when \fBconfig_path\fP is specified.
  87612. .UNINDENT
  87613. .UNINDENT
  87614. .TP
  87615. .B config_path
  87616. The absolute or remote path to the file with the configuration to be
  87617. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87618. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87619. .TP
  87620. .B parent_regex
  87621. The regular expression to match the parent lines against.
  87622. .TP
  87623. .B child_regex
  87624. The regular expression to match the child lines against.
  87625. .TP
  87626. .B ignore_ws: \fBFalse\fP
  87627. Whether to ignore the white spaces.
  87628. .TP
  87629. .B saltenv: \fBbase\fP
  87630. Salt fileserver environment from which to retrieve the file. This
  87631. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87632. .UNINDENT
  87633. .sp
  87634. CLI Example:
  87635. .INDENT 7.0
  87636. .INDENT 3.5
  87637. .sp
  87638. .nf
  87639. .ft C
  87640. salt \(aq*\(aq ciscoconfparse.find_lines_wo_child config_path=https://bit.ly/2mAdq7z parent_line=\(aqline con\(aq child_line=\(aqstopbits\(aq
  87641. .ft P
  87642. .fi
  87643. .UNINDENT
  87644. .UNINDENT
  87645. .UNINDENT
  87646. .INDENT 0.0
  87647. .TP
  87648. .B salt.modules.ciscoconfparse_mod.find_objects(config=None, config_path=None, regex=None, saltenv=u\(aqbase\(aq)
  87649. Return all the line objects that match the expression in the \fBregex\fP
  87650. argument.
  87651. .sp
  87652. \fBWARNING:\fP
  87653. .INDENT 7.0
  87654. .INDENT 3.5
  87655. This function is mostly valuable when invoked from other Salt
  87656. components (i.e., execution modules, states, templates etc.). For CLI
  87657. usage, please consider using
  87658. \fBciscoconfparse.find_lines\fP
  87659. .UNINDENT
  87660. .UNINDENT
  87661. .INDENT 7.0
  87662. .TP
  87663. .B config
  87664. The configuration sent as text.
  87665. .sp
  87666. \fBNOTE:\fP
  87667. .INDENT 7.0
  87668. .INDENT 3.5
  87669. This argument is ignored when \fBconfig_path\fP is specified.
  87670. .UNINDENT
  87671. .UNINDENT
  87672. .TP
  87673. .B config_path
  87674. The absolute or remote path to the file with the configuration to be
  87675. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87676. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87677. .TP
  87678. .B regex
  87679. The regular expression to match the lines against.
  87680. .TP
  87681. .B saltenv: \fBbase\fP
  87682. Salt fileserver environment from which to retrieve the file. This
  87683. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87684. .UNINDENT
  87685. .sp
  87686. Usage example:
  87687. .INDENT 7.0
  87688. .INDENT 3.5
  87689. .sp
  87690. .nf
  87691. .ft C
  87692. objects = __salt__[\(aqciscoconfparse.find_objects\(aq](config_path=\(aqsalt://path/to/config.txt\(aq,
  87693. regex=\(aqGigabit\(aq)
  87694. for obj in objects:
  87695. print(obj.text)
  87696. .ft P
  87697. .fi
  87698. .UNINDENT
  87699. .UNINDENT
  87700. .UNINDENT
  87701. .INDENT 0.0
  87702. .TP
  87703. .B salt.modules.ciscoconfparse_mod.find_objects_w_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv=u\(aqbase\(aq)
  87704. Parse through the children of all parent lines matching \fBparent_regex\fP,
  87705. and return a list of child objects, which matched the \fBchild_regex\fP\&.
  87706. .sp
  87707. \fBWARNING:\fP
  87708. .INDENT 7.0
  87709. .INDENT 3.5
  87710. This function is mostly valuable when invoked from other Salt
  87711. components (i.e., execution modules, states, templates etc.). For CLI
  87712. usage, please consider using
  87713. \fBciscoconfparse.find_lines_w_child\fP
  87714. .UNINDENT
  87715. .UNINDENT
  87716. .INDENT 7.0
  87717. .TP
  87718. .B config
  87719. The configuration sent as text.
  87720. .sp
  87721. \fBNOTE:\fP
  87722. .INDENT 7.0
  87723. .INDENT 3.5
  87724. This argument is ignored when \fBconfig_path\fP is specified.
  87725. .UNINDENT
  87726. .UNINDENT
  87727. .TP
  87728. .B config_path
  87729. The absolute or remote path to the file with the configuration to be
  87730. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87731. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87732. .TP
  87733. .B parent_regex
  87734. The regular expression to match the parent lines against.
  87735. .TP
  87736. .B child_regex
  87737. The regular expression to match the child lines against.
  87738. .TP
  87739. .B ignore_ws: \fBFalse\fP
  87740. Whether to ignore the white spaces.
  87741. .TP
  87742. .B saltenv: \fBbase\fP
  87743. Salt fileserver environment from which to retrieve the file. This
  87744. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87745. .UNINDENT
  87746. .sp
  87747. Usage example:
  87748. .INDENT 7.0
  87749. .INDENT 3.5
  87750. .sp
  87751. .nf
  87752. .ft C
  87753. objects = __salt__[\(aqciscoconfparse.find_objects_w_child\(aq](config_path=\(aqhttps://bit.ly/2mAdq7z\(aq,
  87754. parent_regex=\(aqline con\(aq,
  87755. child_regex=\(aqstopbits\(aq)
  87756. for obj in objects:
  87757. print(obj.text)
  87758. .ft P
  87759. .fi
  87760. .UNINDENT
  87761. .UNINDENT
  87762. .UNINDENT
  87763. .INDENT 0.0
  87764. .TP
  87765. .B salt.modules.ciscoconfparse_mod.find_objects_wo_child(config=None, config_path=None, parent_regex=None, child_regex=None, ignore_ws=False, saltenv=u\(aqbase\(aq)
  87766. Return a list of parent \fBciscoconfparse.IOSCfgLine\fP objects, which matched
  87767. the \fBparent_regex\fP and whose children did \fInot\fP match \fBchild_regex\fP\&.
  87768. Only the parent \fBciscoconfparse.IOSCfgLine\fP objects will be returned. For
  87769. simplicity, this method only finds oldest ancestors without immediate
  87770. children that match.
  87771. .sp
  87772. \fBWARNING:\fP
  87773. .INDENT 7.0
  87774. .INDENT 3.5
  87775. This function is mostly valuable when invoked from other Salt
  87776. components (i.e., execution modules, states, templates etc.). For CLI
  87777. usage, please consider using
  87778. \fBciscoconfparse.find_lines_wo_child\fP
  87779. .UNINDENT
  87780. .UNINDENT
  87781. .INDENT 7.0
  87782. .TP
  87783. .B config
  87784. The configuration sent as text.
  87785. .sp
  87786. \fBNOTE:\fP
  87787. .INDENT 7.0
  87788. .INDENT 3.5
  87789. This argument is ignored when \fBconfig_path\fP is specified.
  87790. .UNINDENT
  87791. .UNINDENT
  87792. .TP
  87793. .B config_path
  87794. The absolute or remote path to the file with the configuration to be
  87795. parsed. This argument supports the usual Salt filesystem URIs, e.g.,
  87796. \fBsalt://\fP, \fBhttps://\fP, \fBftp://\fP, \fBs3://\fP, etc.
  87797. .TP
  87798. .B parent_regex
  87799. The regular expression to match the parent lines against.
  87800. .TP
  87801. .B child_regex
  87802. The regular expression to match the child lines against.
  87803. .TP
  87804. .B ignore_ws: \fBFalse\fP
  87805. Whether to ignore the white spaces.
  87806. .TP
  87807. .B saltenv: \fBbase\fP
  87808. Salt fileserver environment from which to retrieve the file. This
  87809. argument is ignored when \fBconfig_path\fP is not a \fBsalt://\fP URL.
  87810. .UNINDENT
  87811. .sp
  87812. Usage example:
  87813. .INDENT 7.0
  87814. .INDENT 3.5
  87815. .sp
  87816. .nf
  87817. .ft C
  87818. objects = __salt__[\(aqciscoconfparse.find_objects_wo_child\(aq](config_path=\(aqhttps://bit.ly/2mAdq7z\(aq,
  87819. parent_regex=\(aqline con\(aq,
  87820. child_regex=\(aqstopbits\(aq)
  87821. for obj in objects:
  87822. print(obj.text)
  87823. .ft P
  87824. .fi
  87825. .UNINDENT
  87826. .UNINDENT
  87827. .UNINDENT
  87828. .SS salt.modules.datadog_api
  87829. .sp
  87830. An execution module that interacts with the Datadog API
  87831. .sp
  87832. The following parameters are required for all functions.
  87833. .INDENT 0.0
  87834. .TP
  87835. .B api_key
  87836. The datadog API key
  87837. .TP
  87838. .B app_key
  87839. The datadog application key
  87840. .UNINDENT
  87841. .sp
  87842. Full argument reference is available on the Datadog API reference page
  87843. \fI\%https://docs.datadoghq.com/api/\fP
  87844. .INDENT 0.0
  87845. .TP
  87846. .B salt.modules.datadog_api.cancel_downtime(api_key=None, app_key=None, scope=None, id=None)
  87847. Cancel a downtime by id or by scope.
  87848. .sp
  87849. CLI Example:
  87850. .INDENT 7.0
  87851. .INDENT 3.5
  87852. .sp
  87853. .nf
  87854. .ft C
  87855. salt\-call datadog.cancel_downtime scope=\(aqhost:app01\(aq \e
  87856. api_key=\(aq0123456789\(aq \e
  87857. app_key=\(aq9876543210\(aq\(ga
  87858. .ft P
  87859. .fi
  87860. .UNINDENT
  87861. .UNINDENT
  87862. .sp
  87863. Arguments \- Either scope or id is required.
  87864. .INDENT 7.0
  87865. .TP
  87866. .B Parameters
  87867. .INDENT 7.0
  87868. .IP \(bu 2
  87869. \fBid\fP \-\- The downtime ID
  87870. .IP \(bu 2
  87871. \fBscope\fP \-\- The downtime scope
  87872. .UNINDENT
  87873. .UNINDENT
  87874. .UNINDENT
  87875. .INDENT 0.0
  87876. .TP
  87877. .B salt.modules.datadog_api.post_event(api_key=None, app_key=None, title=None, text=None, date_happened=None, priority=None, host=None, tags=None, alert_type=None, aggregation_key=None, source_type_name=None)
  87878. Post an event to the Datadog stream.
  87879. .sp
  87880. CLI Example
  87881. .INDENT 7.0
  87882. .INDENT 3.5
  87883. .sp
  87884. .nf
  87885. .ft C
  87886. salt\-call datadog.post_event api_key=\(aq0123456789\(aq \e
  87887. app_key=\(aq9876543210\(aq \e
  87888. title=\(aqSalt Highstate\(aq \e
  87889. text="Salt highstate was run on $(salt\-call grains.get id)" \e
  87890. tags=\(aq["service:salt", "event:highstate"]\(aq
  87891. .ft P
  87892. .fi
  87893. .UNINDENT
  87894. .UNINDENT
  87895. .sp
  87896. Required arguments
  87897. .INDENT 7.0
  87898. .TP
  87899. .B Parameters
  87900. .INDENT 7.0
  87901. .IP \(bu 2
  87902. \fBtitle\fP \-\- The event title. Limited to 100 characters.
  87903. .IP \(bu 2
  87904. \fBtext\fP \-\- The body of the event. Limited to 4000 characters. The text
  87905. supports markdown.
  87906. .UNINDENT
  87907. .UNINDENT
  87908. .sp
  87909. Optional arguments
  87910. .INDENT 7.0
  87911. .TP
  87912. .B Parameters
  87913. .INDENT 7.0
  87914. .IP \(bu 2
  87915. \fBdate_happened\fP \-\- POSIX timestamp of the event.
  87916. .IP \(bu 2
  87917. \fBpriority\fP \-\- The priority of the event (\(aqnormal\(aq or \(aqlow\(aq).
  87918. .IP \(bu 2
  87919. \fBhost\fP \-\- Host name to associate with the event.
  87920. .IP \(bu 2
  87921. \fBtags\fP \-\- A list of tags to apply to the event.
  87922. .IP \(bu 2
  87923. \fBalert_type\fP \-\- "error", "warning", "info" or "success".
  87924. .IP \(bu 2
  87925. \fBaggregation_key\fP \-\- An arbitrary string to use for aggregation,
  87926. max length of 100 characters.
  87927. .IP \(bu 2
  87928. \fBsource_type_name\fP \-\- The type of event being posted.
  87929. .UNINDENT
  87930. .UNINDENT
  87931. .UNINDENT
  87932. .INDENT 0.0
  87933. .TP
  87934. .B salt.modules.datadog_api.schedule_downtime(scope, api_key=None, app_key=None, monitor_id=None, start=None, end=None, message=None, recurrence=None, timezone=None, test=False)
  87935. Schedule downtime for a scope of monitors.
  87936. .sp
  87937. CLI Example:
  87938. .INDENT 7.0
  87939. .INDENT 3.5
  87940. .sp
  87941. .nf
  87942. .ft C
  87943. salt\-call datadog.schedule_downtime \(aqhost:app2\(aq \e
  87944. stop=$(date \-\-date=\(aq30 minutes\(aq +%s) \e
  87945. app_key=\(aq0123456789\(aq \e
  87946. api_key=\(aq9876543210\(aq
  87947. .ft P
  87948. .fi
  87949. .UNINDENT
  87950. .UNINDENT
  87951. .sp
  87952. Optional arguments
  87953. .INDENT 7.0
  87954. .TP
  87955. .B Parameters
  87956. .INDENT 7.0
  87957. .IP \(bu 2
  87958. \fBmonitor_id\fP \-\- The ID of the monitor
  87959. .IP \(bu 2
  87960. \fBstart\fP \-\- Start time in seconds since the epoch
  87961. .IP \(bu 2
  87962. \fBend\fP \-\- End time in seconds since the epoch
  87963. .IP \(bu 2
  87964. \fBmessage\fP \-\- A message to send in a notification for this downtime
  87965. .IP \(bu 2
  87966. \fBrecurrence\fP \-\- Repeat this downtime periodically
  87967. .IP \(bu 2
  87968. \fBtimezone\fP \-\- Specify the timezone
  87969. .UNINDENT
  87970. .UNINDENT
  87971. .UNINDENT
  87972. .SS salt.modules.devinfo
  87973. .INDENT 0.0
  87974. .TP
  87975. .B maintainer
  87976. Alberto Planas <\fI\%aplanas@suse.com\fP>
  87977. .TP
  87978. .B maturity
  87979. new
  87980. .TP
  87981. .B depends
  87982. None
  87983. .TP
  87984. .B platform
  87985. Linux
  87986. .UNINDENT
  87987. .INDENT 0.0
  87988. .TP
  87989. .B salt.modules.devinfo.filter_(udev_in=None, udev_ex=None)
  87990. Returns a list of devices, filtered under udev keys.
  87991. .INDENT 7.0
  87992. .TP
  87993. .B udev_in
  87994. A dictionary of key:values that are expected in the device
  87995. udev information
  87996. .TP
  87997. .B udev_ex
  87998. A dictionary of key:values that are not expected in the device
  87999. udev information (excluded)
  88000. .UNINDENT
  88001. .sp
  88002. The key is a lower case string, joined by dots, that represent a
  88003. path in the udev information dictionary. For example, \(aqe.id_bus\(aq
  88004. will represent the udev entry \fIudev[\(aqE\(aq][\(aqID_BUS\(aq]\fP
  88005. .sp
  88006. If the udev entry is a list, the algorithm will check that at
  88007. least one item match one item of the value of the parameters.
  88008. .sp
  88009. Returns list of devices that match \fIudev_in\fP and do not match
  88010. \fIudev_ex\fP\&.
  88011. .sp
  88012. CLI Example:
  88013. .INDENT 7.0
  88014. .INDENT 3.5
  88015. .sp
  88016. .nf
  88017. .ft C
  88018. salt \(aq*\(aq devinfo.filter udev_in=\(aq{"e.id_bus": "ata"}\(aq
  88019. .ft P
  88020. .fi
  88021. .UNINDENT
  88022. .UNINDENT
  88023. .UNINDENT
  88024. .INDENT 0.0
  88025. .TP
  88026. .B salt.modules.devinfo.hwinfo(items=None, short=True, listmd=False, devices=None)
  88027. Probe for hardware
  88028. .INDENT 7.0
  88029. .TP
  88030. .B items
  88031. List of hardware items to inspect. Default [\(aqbios\(aq, \(aqcpu\(aq, \(aqdisk\(aq,
  88032. \(aqmemory\(aq, \(aqnetwork\(aq, \(aqpartition\(aq]
  88033. .TP
  88034. .B short
  88035. Show only a summary. Default True.
  88036. .TP
  88037. .B listmd
  88038. Report RAID devices. Default False.
  88039. .TP
  88040. .B devices
  88041. List of devices to show information from. Default None.
  88042. .UNINDENT
  88043. .sp
  88044. CLI Example:
  88045. .INDENT 7.0
  88046. .INDENT 3.5
  88047. .sp
  88048. .nf
  88049. .ft C
  88050. salt \(aq*\(aq devinfo.hwinfo
  88051. salt \(aq*\(aq devinfo.hwinfo items=\(aq["disk"]\(aq short=no
  88052. salt \(aq*\(aq devinfo.hwinfo items=\(aq["disk"]\(aq short=no devices=\(aq["/dev/sda"]\(aq
  88053. salt \(aq*\(aq devinfo.hwinfo devices=/dev/sda
  88054. .ft P
  88055. .fi
  88056. .UNINDENT
  88057. .UNINDENT
  88058. .UNINDENT
  88059. .SS salt.modules.devmap
  88060. .sp
  88061. Device\-Mapper module
  88062. .INDENT 0.0
  88063. .TP
  88064. .B salt.modules.devmap.multipath_flush(device)
  88065. Device\-Mapper Multipath flush
  88066. .sp
  88067. CLI Example:
  88068. .INDENT 7.0
  88069. .INDENT 3.5
  88070. .sp
  88071. .nf
  88072. .ft C
  88073. salt \(aq*\(aq devmap.multipath_flush mpath1
  88074. .ft P
  88075. .fi
  88076. .UNINDENT
  88077. .UNINDENT
  88078. .UNINDENT
  88079. .INDENT 0.0
  88080. .TP
  88081. .B salt.modules.devmap.multipath_list()
  88082. Device\-Mapper Multipath list
  88083. .sp
  88084. CLI Example:
  88085. .INDENT 7.0
  88086. .INDENT 3.5
  88087. .sp
  88088. .nf
  88089. .ft C
  88090. salt \(aq*\(aq devmap.multipath_list
  88091. .ft P
  88092. .fi
  88093. .UNINDENT
  88094. .UNINDENT
  88095. .UNINDENT
  88096. .SS salt.modules.drbd
  88097. .sp
  88098. DRBD administration module
  88099. .INDENT 0.0
  88100. .TP
  88101. .B salt.modules.drbd.overview()
  88102. Show status of the DRBD devices, support two nodes only.
  88103. drbd\-overview is removed since drbd\-utils\-9.6.0,
  88104. use status instead.
  88105. .sp
  88106. CLI Example:
  88107. .INDENT 7.0
  88108. .INDENT 3.5
  88109. .sp
  88110. .nf
  88111. .ft C
  88112. salt \(aq*\(aq drbd.overview
  88113. .ft P
  88114. .fi
  88115. .UNINDENT
  88116. .UNINDENT
  88117. .UNINDENT
  88118. .INDENT 0.0
  88119. .TP
  88120. .B salt.modules.drbd.status(name=u\(aqall\(aq)
  88121. Using drbdadm to show status of the DRBD devices,
  88122. available in the latest drbd9.
  88123. Support multiple nodes, multiple volumes.
  88124. .INDENT 7.0
  88125. .TP
  88126. .B Parameters
  88127. \fBname\fP (\fI\%str\fP) \-\- Resource name.
  88128. .TP
  88129. .B Returns
  88130. drbd status of resource.
  88131. .TP
  88132. .B Return type
  88133. \fI\%list\fP(\fI\%dict\fP(res))
  88134. .UNINDENT
  88135. .sp
  88136. CLI Example:
  88137. .INDENT 7.0
  88138. .INDENT 3.5
  88139. .sp
  88140. .nf
  88141. .ft C
  88142. salt \(aq*\(aq drbd.status
  88143. salt \(aq*\(aq drbd.status name=<resource name>
  88144. .ft P
  88145. .fi
  88146. .UNINDENT
  88147. .UNINDENT
  88148. .UNINDENT
  88149. .SS salt.modules.elasticsearch
  88150. .sp
  88151. Elasticsearch \- A distributed RESTful search and analytics server
  88152. .sp
  88153. Module to provide Elasticsearch compatibility to Salt
  88154. (compatible with Elasticsearch version 1.5.2+)
  88155. .sp
  88156. New in version 2015.8.0.
  88157. .INDENT 0.0
  88158. .TP
  88159. .B depends
  88160. \fI\%elasticsearch\-py\fP
  88161. .TP
  88162. .B configuration
  88163. This module accepts connection configuration details either as
  88164. parameters or as configuration settings in /etc/salt/minion on the relevant
  88165. minions:
  88166. .INDENT 7.0
  88167. .INDENT 3.5
  88168. .sp
  88169. .nf
  88170. .ft C
  88171. elasticsearch:
  88172. host: \(aq10.10.10.100:9200\(aq
  88173. elasticsearch\-cluster:
  88174. hosts:
  88175. \- \(aq10.10.10.100:9200\(aq
  88176. \- \(aq10.10.10.101:9200\(aq
  88177. \- \(aq10.10.10.102:9200\(aq
  88178. elasticsearch\-extra:
  88179. hosts:
  88180. \- \(aq10.10.10.100:9200\(aq
  88181. use_ssl: True
  88182. verify_certs: True
  88183. ca_certs: /path/to/custom_ca_bundle.pem
  88184. number_of_shards: 1
  88185. number_of_replicas: 0
  88186. functions_blacklist:
  88187. \- \(aqsaltutil.find_job\(aq
  88188. \- \(aqpillar.items\(aq
  88189. \- \(aqgrains.items\(aq
  88190. proxies:
  88191. \- http: http://proxy:3128
  88192. \- https: http://proxy:1080
  88193. .ft P
  88194. .fi
  88195. .UNINDENT
  88196. .UNINDENT
  88197. .sp
  88198. When specifying proxies the requests backend will be used and the \(aqproxies\(aq
  88199. data structure is passed as\-is to that module.
  88200. .sp
  88201. This data can also be passed into pillar. Options passed into opts will
  88202. overwrite options passed into pillar.
  88203. .sp
  88204. Some functionality might be limited by elasticsearch\-py and Elasticsearch server versions.
  88205. .UNINDENT
  88206. .INDENT 0.0
  88207. .TP
  88208. .B salt.modules.elasticsearch.alias_create(indices, alias, hosts=None, body=None, profile=None, source=None)
  88209. Create an alias for a specific index/indices
  88210. .INDENT 7.0
  88211. .TP
  88212. .B indices
  88213. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88214. .TP
  88215. .B alias
  88216. Alias name
  88217. .TP
  88218. .B body
  88219. Optional definition such as routing or filter as defined in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-aliases.html\fP
  88220. .TP
  88221. .B source
  88222. URL of file specifying optional definition such as routing or filter. Cannot be used in combination with \fBbody\fP\&.
  88223. .UNINDENT
  88224. .sp
  88225. CLI example:
  88226. .INDENT 7.0
  88227. .INDENT 3.5
  88228. .sp
  88229. .nf
  88230. .ft C
  88231. salt myminion elasticsearch.alias_create testindex_v1 testindex
  88232. .ft P
  88233. .fi
  88234. .UNINDENT
  88235. .UNINDENT
  88236. .UNINDENT
  88237. .INDENT 0.0
  88238. .TP
  88239. .B salt.modules.elasticsearch.alias_delete(indices, aliases, hosts=None, body=None, profile=None, source=None)
  88240. Delete an alias of an index
  88241. .INDENT 7.0
  88242. .TP
  88243. .B indices
  88244. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88245. .TP
  88246. .B aliases
  88247. Alias names separated by comma
  88248. .UNINDENT
  88249. .sp
  88250. CLI example:
  88251. .INDENT 7.0
  88252. .INDENT 3.5
  88253. .sp
  88254. .nf
  88255. .ft C
  88256. salt myminion elasticsearch.alias_delete testindex_v1 testindex
  88257. .ft P
  88258. .fi
  88259. .UNINDENT
  88260. .UNINDENT
  88261. .UNINDENT
  88262. .INDENT 0.0
  88263. .TP
  88264. .B salt.modules.elasticsearch.alias_exists(aliases, indices=None, hosts=None, profile=None)
  88265. Return a boolean indicating whether given alias exists
  88266. .INDENT 7.0
  88267. .TP
  88268. .B indices
  88269. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88270. .TP
  88271. .B aliases
  88272. Alias names separated by comma
  88273. .UNINDENT
  88274. .sp
  88275. CLI example:
  88276. .INDENT 7.0
  88277. .INDENT 3.5
  88278. .sp
  88279. .nf
  88280. .ft C
  88281. salt myminion elasticsearch.alias_exists None testindex
  88282. .ft P
  88283. .fi
  88284. .UNINDENT
  88285. .UNINDENT
  88286. .UNINDENT
  88287. .INDENT 0.0
  88288. .TP
  88289. .B salt.modules.elasticsearch.alias_get(indices=None, aliases=None, hosts=None, profile=None)
  88290. Check for the existence of an alias and if it exists, return it
  88291. .INDENT 7.0
  88292. .TP
  88293. .B indices
  88294. Single or multiple indices separated by comma, use _all to perform the operation on all indices.
  88295. .TP
  88296. .B aliases
  88297. Alias names separated by comma
  88298. .UNINDENT
  88299. .sp
  88300. CLI example:
  88301. .INDENT 7.0
  88302. .INDENT 3.5
  88303. .sp
  88304. .nf
  88305. .ft C
  88306. salt myminion elasticsearch.alias_get testindex
  88307. .ft P
  88308. .fi
  88309. .UNINDENT
  88310. .UNINDENT
  88311. .UNINDENT
  88312. .INDENT 0.0
  88313. .TP
  88314. .B salt.modules.elasticsearch.cluster_get_settings(flat_settings=False, include_defaults=False, hosts=None, profile=None)
  88315. New in version 3000.
  88316. .sp
  88317. Return Elasticsearch cluster settings.
  88318. .INDENT 7.0
  88319. .TP
  88320. .B flat_settings
  88321. Return settings in flat format.
  88322. .TP
  88323. .B include_defaults
  88324. Whether to return all default clusters setting.
  88325. .UNINDENT
  88326. .sp
  88327. CLI example:
  88328. .INDENT 7.0
  88329. .INDENT 3.5
  88330. .sp
  88331. .nf
  88332. .ft C
  88333. salt myminion elasticsearch.cluster_get_settings
  88334. .ft P
  88335. .fi
  88336. .UNINDENT
  88337. .UNINDENT
  88338. .UNINDENT
  88339. .INDENT 0.0
  88340. .TP
  88341. .B salt.modules.elasticsearch.cluster_health(index=None, level=u\(aqcluster\(aq, local=False, hosts=None, profile=None)
  88342. New in version 2017.7.0.
  88343. .sp
  88344. Return Elasticsearch cluster health.
  88345. .INDENT 7.0
  88346. .TP
  88347. .B index
  88348. Limit the information returned to a specific index
  88349. .TP
  88350. .B level
  88351. Specify the level of detail for returned information, default \(aqcluster\(aq, valid choices are: \(aqcluster\(aq, \(aqindices\(aq, \(aqshards\(aq
  88352. .TP
  88353. .B local
  88354. Return local information, do not retrieve the state from master node
  88355. .UNINDENT
  88356. .sp
  88357. CLI example:
  88358. .INDENT 7.0
  88359. .INDENT 3.5
  88360. .sp
  88361. .nf
  88362. .ft C
  88363. salt myminion elasticsearch.cluster_health
  88364. .ft P
  88365. .fi
  88366. .UNINDENT
  88367. .UNINDENT
  88368. .UNINDENT
  88369. .INDENT 0.0
  88370. .TP
  88371. .B salt.modules.elasticsearch.cluster_put_settings(body=None, flat_settings=False, hosts=None, profile=None)
  88372. New in version 3000.
  88373. .sp
  88374. Set Elasticsearch cluster settings.
  88375. .INDENT 7.0
  88376. .TP
  88377. .B body
  88378. The settings to be updated. Can be either \(aqtransient\(aq or \(aqpersistent\(aq (survives cluster restart)
  88379. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/cluster\-update\-settings.html\fP
  88380. .TP
  88381. .B flat_settings
  88382. Return settings in flat format.
  88383. .UNINDENT
  88384. .sp
  88385. CLI example:
  88386. .INDENT 7.0
  88387. .INDENT 3.5
  88388. .sp
  88389. .nf
  88390. .ft C
  88391. salt myminion elasticsearch.cluster_put_settings \(aq{"persistent": {"indices.recovery.max_bytes_per_sec": "50mb"}}\(aq
  88392. salt myminion elasticsearch.cluster_put_settings \(aq{"transient": {"indices.recovery.max_bytes_per_sec": "50mb"}}\(aq
  88393. .ft P
  88394. .fi
  88395. .UNINDENT
  88396. .UNINDENT
  88397. .UNINDENT
  88398. .INDENT 0.0
  88399. .TP
  88400. .B salt.modules.elasticsearch.cluster_stats(nodes=None, hosts=None, profile=None)
  88401. New in version 2017.7.0.
  88402. .sp
  88403. Return Elasticsearch cluster stats.
  88404. .INDENT 7.0
  88405. .TP
  88406. .B nodes
  88407. List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
  88408. .UNINDENT
  88409. .sp
  88410. CLI example:
  88411. .INDENT 7.0
  88412. .INDENT 3.5
  88413. .sp
  88414. .nf
  88415. .ft C
  88416. salt myminion elasticsearch.cluster_stats
  88417. .ft P
  88418. .fi
  88419. .UNINDENT
  88420. .UNINDENT
  88421. .UNINDENT
  88422. .INDENT 0.0
  88423. .TP
  88424. .B salt.modules.elasticsearch.document_create(index, doc_type, body=None, id=None, hosts=None, profile=None, source=None)
  88425. Create a document in a specified index
  88426. .INDENT 7.0
  88427. .TP
  88428. .B index
  88429. Index name where the document should reside
  88430. .TP
  88431. .B doc_type
  88432. Type of the document
  88433. .TP
  88434. .B body
  88435. Document to store
  88436. .TP
  88437. .B source
  88438. URL of file specifying document to store. Cannot be used in combination with \fBbody\fP\&.
  88439. .TP
  88440. .B id
  88441. Optional unique document identifier for specified doc_type (empty for random)
  88442. .UNINDENT
  88443. .sp
  88444. CLI example:
  88445. .INDENT 7.0
  88446. .INDENT 3.5
  88447. .sp
  88448. .nf
  88449. .ft C
  88450. salt myminion elasticsearch.document_create testindex doctype1 \(aq{}\(aq
  88451. .ft P
  88452. .fi
  88453. .UNINDENT
  88454. .UNINDENT
  88455. .UNINDENT
  88456. .INDENT 0.0
  88457. .TP
  88458. .B salt.modules.elasticsearch.document_delete(index, doc_type, id, hosts=None, profile=None)
  88459. Delete a document from an index
  88460. .INDENT 7.0
  88461. .TP
  88462. .B index
  88463. Index name where the document resides
  88464. .TP
  88465. .B doc_type
  88466. Type of the document
  88467. .TP
  88468. .B id
  88469. Document identifier
  88470. .UNINDENT
  88471. .sp
  88472. CLI example:
  88473. .INDENT 7.0
  88474. .INDENT 3.5
  88475. .sp
  88476. .nf
  88477. .ft C
  88478. salt myminion elasticsearch.document_delete testindex doctype1 AUx\-384m0Bug_8U80wQZ
  88479. .ft P
  88480. .fi
  88481. .UNINDENT
  88482. .UNINDENT
  88483. .UNINDENT
  88484. .INDENT 0.0
  88485. .TP
  88486. .B salt.modules.elasticsearch.document_exists(index, id, doc_type=u\(aq_all\(aq, hosts=None, profile=None)
  88487. Return a boolean indicating whether given document exists
  88488. .INDENT 7.0
  88489. .TP
  88490. .B index
  88491. Index name where the document resides
  88492. .TP
  88493. .B id
  88494. Document identifier
  88495. .TP
  88496. .B doc_type
  88497. Type of the document, use _all to fetch the first document matching the ID across all types
  88498. .UNINDENT
  88499. .sp
  88500. CLI example:
  88501. .INDENT 7.0
  88502. .INDENT 3.5
  88503. .sp
  88504. .nf
  88505. .ft C
  88506. salt myminion elasticsearch.document_exists testindex AUx\-384m0Bug_8U80wQZ
  88507. .ft P
  88508. .fi
  88509. .UNINDENT
  88510. .UNINDENT
  88511. .UNINDENT
  88512. .INDENT 0.0
  88513. .TP
  88514. .B salt.modules.elasticsearch.document_get(index, id, doc_type=u\(aq_all\(aq, hosts=None, profile=None)
  88515. Check for the existence of a document and if it exists, return it
  88516. .INDENT 7.0
  88517. .TP
  88518. .B index
  88519. Index name where the document resides
  88520. .TP
  88521. .B id
  88522. Document identifier
  88523. .TP
  88524. .B doc_type
  88525. Type of the document, use _all to fetch the first document matching the ID across all types
  88526. .UNINDENT
  88527. .sp
  88528. CLI example:
  88529. .INDENT 7.0
  88530. .INDENT 3.5
  88531. .sp
  88532. .nf
  88533. .ft C
  88534. salt myminion elasticsearch.document_get testindex AUx\-384m0Bug_8U80wQZ
  88535. .ft P
  88536. .fi
  88537. .UNINDENT
  88538. .UNINDENT
  88539. .UNINDENT
  88540. .INDENT 0.0
  88541. .TP
  88542. .B salt.modules.elasticsearch.flush_synced(hosts=None, profile=None, **kwargs)
  88543. New in version 3000.
  88544. .sp
  88545. Perform a normal flush, then add a generated unique marker (sync_id) to all shards.
  88546. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-synced\-flush.html\fP
  88547. .INDENT 7.0
  88548. .TP
  88549. .B index
  88550. (Optional, string) A comma\-separated list of index names; use _all or empty string for all indices. Defaults to \(aq_all\(aq.
  88551. .TP
  88552. .B ignore_unavailable
  88553. (Optional, boolean) If true, missing or closed indices are not included in the response. Defaults to false.
  88554. .TP
  88555. .B allow_no_indices
  88556. (Optional, boolean) If true, the request does not return an error if a wildcard expression or _all value retrieves only missing or closed indices.
  88557. This parameter also applies to index aliases that point to a missing or closed index.
  88558. .TP
  88559. .B expand_wildcards
  88560. (Optional, string) Controls what kind of indices that wildcard expressions can expand to.
  88561. .sp
  88562. Valid values are:
  88563. .INDENT 7.0
  88564. .INDENT 3.5
  88565. .sp
  88566. .nf
  88567. .ft C
  88568. all \- Expand to open and closed indices.
  88569. open \- Expand only to open indices.
  88570. closed \- Expand only to closed indices.
  88571. none \- Wildcard expressions are not accepted.
  88572. .ft P
  88573. .fi
  88574. .UNINDENT
  88575. .UNINDENT
  88576. .UNINDENT
  88577. .sp
  88578. The defaults settings for the above parameters depend on the API being used.
  88579. .sp
  88580. CLI example:
  88581. .INDENT 7.0
  88582. .INDENT 3.5
  88583. .sp
  88584. .nf
  88585. .ft C
  88586. salt myminion elasticsearch.flush_synced index=\(aqindex1,index2\(aq ignore_unavailable=True allow_no_indices=True expand_wildcards=\(aqall\(aq
  88587. .ft P
  88588. .fi
  88589. .UNINDENT
  88590. .UNINDENT
  88591. .UNINDENT
  88592. .INDENT 0.0
  88593. .TP
  88594. .B salt.modules.elasticsearch.index_close(index, allow_no_indices=True, expand_wildcards=u\(aqopen\(aq, ignore_unavailable=True, hosts=None, profile=None)
  88595. New in version 2017.7.0.
  88596. .sp
  88597. Close specified index.
  88598. .INDENT 7.0
  88599. .TP
  88600. .B index
  88601. Index to be closed
  88602. .TP
  88603. .B allow_no_indices
  88604. Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
  88605. .TP
  88606. .B expand_wildcards
  88607. Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘open’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88608. .TP
  88609. .B ignore_unavailable
  88610. Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88611. .UNINDENT
  88612. .sp
  88613. CLI example:
  88614. .INDENT 7.0
  88615. .INDENT 3.5
  88616. .sp
  88617. .nf
  88618. .ft C
  88619. salt myminion elasticsearch.index_close testindex
  88620. .ft P
  88621. .fi
  88622. .UNINDENT
  88623. .UNINDENT
  88624. .UNINDENT
  88625. .INDENT 0.0
  88626. .TP
  88627. .B salt.modules.elasticsearch.index_create(index, body=None, hosts=None, profile=None, source=None)
  88628. Create an index
  88629. .INDENT 7.0
  88630. .TP
  88631. .B index
  88632. Index name
  88633. .TP
  88634. .B body
  88635. Index definition, such as settings and mappings as defined in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-create\-index.html\fP
  88636. .TP
  88637. .B source
  88638. URL to file specifying index definition. Cannot be used in combination with \fBbody\fP\&.
  88639. .UNINDENT
  88640. .sp
  88641. CLI example:
  88642. .INDENT 7.0
  88643. .INDENT 3.5
  88644. .sp
  88645. .nf
  88646. .ft C
  88647. salt myminion elasticsearch.index_create testindex
  88648. salt myminion elasticsearch.index_create testindex2 \(aq{"settings" : {"index" : {"number_of_shards" : 3, "number_of_replicas" : 2}}}\(aq
  88649. .ft P
  88650. .fi
  88651. .UNINDENT
  88652. .UNINDENT
  88653. .UNINDENT
  88654. .INDENT 0.0
  88655. .TP
  88656. .B salt.modules.elasticsearch.index_delete(index, hosts=None, profile=None)
  88657. Delete an index
  88658. .INDENT 7.0
  88659. .TP
  88660. .B index
  88661. Index name
  88662. .UNINDENT
  88663. .sp
  88664. CLI example:
  88665. .INDENT 7.0
  88666. .INDENT 3.5
  88667. .sp
  88668. .nf
  88669. .ft C
  88670. salt myminion elasticsearch.index_delete testindex
  88671. .ft P
  88672. .fi
  88673. .UNINDENT
  88674. .UNINDENT
  88675. .UNINDENT
  88676. .INDENT 0.0
  88677. .TP
  88678. .B salt.modules.elasticsearch.index_exists(index, hosts=None, profile=None)
  88679. Return a boolean indicating whether given index exists
  88680. .INDENT 7.0
  88681. .TP
  88682. .B index
  88683. Index name
  88684. .UNINDENT
  88685. .sp
  88686. CLI example:
  88687. .INDENT 7.0
  88688. .INDENT 3.5
  88689. .sp
  88690. .nf
  88691. .ft C
  88692. salt myminion elasticsearch.index_exists testindex
  88693. .ft P
  88694. .fi
  88695. .UNINDENT
  88696. .UNINDENT
  88697. .UNINDENT
  88698. .INDENT 0.0
  88699. .TP
  88700. .B salt.modules.elasticsearch.index_get(index, hosts=None, profile=None)
  88701. Check for the existence of an index and if it exists, return it
  88702. .INDENT 7.0
  88703. .TP
  88704. .B index
  88705. Index name
  88706. .UNINDENT
  88707. .sp
  88708. CLI example:
  88709. .INDENT 7.0
  88710. .INDENT 3.5
  88711. .sp
  88712. .nf
  88713. .ft C
  88714. salt myminion elasticsearch.index_get testindex
  88715. .ft P
  88716. .fi
  88717. .UNINDENT
  88718. .UNINDENT
  88719. .UNINDENT
  88720. .INDENT 0.0
  88721. .TP
  88722. .B salt.modules.elasticsearch.index_get_settings(hosts=None, profile=None, **kwargs)
  88723. New in version 3000.
  88724. .sp
  88725. Check for the existence of an index and if it exists, return its settings
  88726. \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-get\-settings.html\fP
  88727. .INDENT 7.0
  88728. .TP
  88729. .B index
  88730. (Optional, string) A comma\-separated list of index names; use _all or empty string for all indices. Defaults to \(aq_all\(aq.
  88731. .TP
  88732. .B name
  88733. (Optional, string) The name of the settings that should be included
  88734. .TP
  88735. .B allow_no_indices
  88736. (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices.
  88737. (This includes _all string or when no indices have been specified)
  88738. .TP
  88739. .B expand_wildcards
  88740. (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both.
  88741. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88742. .TP
  88743. .B flat_settings
  88744. (Optional, boolean) Return settings in flat format
  88745. .TP
  88746. .B ignore_unavailable
  88747. (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88748. .TP
  88749. .B include_defaults
  88750. (Optional, boolean) Whether to return all default setting for each of the indices.
  88751. .TP
  88752. .B local
  88753. (Optional, boolean) Return local information, do not retrieve the state from master node
  88754. .UNINDENT
  88755. .sp
  88756. The defaults settings for the above parameters depend on the API version being used.
  88757. .sp
  88758. CLI example:
  88759. .INDENT 7.0
  88760. .INDENT 3.5
  88761. .sp
  88762. .nf
  88763. .ft C
  88764. salt myminion elasticsearch.index_get_settings index=testindex
  88765. .ft P
  88766. .fi
  88767. .UNINDENT
  88768. .UNINDENT
  88769. .UNINDENT
  88770. .INDENT 0.0
  88771. .TP
  88772. .B salt.modules.elasticsearch.index_open(index, allow_no_indices=True, expand_wildcards=u\(aqclosed\(aq, ignore_unavailable=True, hosts=None, profile=None)
  88773. New in version 2017.7.0.
  88774. .sp
  88775. Open specified index.
  88776. .INDENT 7.0
  88777. .TP
  88778. .B index
  88779. Index to be opened
  88780. .TP
  88781. .B allow_no_indices
  88782. Whether to ignore if a wildcard indices expression resolves into no concrete indices. (This includes _all string or when no indices have been specified)
  88783. .TP
  88784. .B expand_wildcards
  88785. Whether to expand wildcard expression to concrete indices that are open, closed or both., default ‘closed’, valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88786. .TP
  88787. .B ignore_unavailable
  88788. Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88789. .UNINDENT
  88790. .sp
  88791. CLI example:
  88792. .INDENT 7.0
  88793. .INDENT 3.5
  88794. .sp
  88795. .nf
  88796. .ft C
  88797. salt myminion elasticsearch.index_open testindex
  88798. .ft P
  88799. .fi
  88800. .UNINDENT
  88801. .UNINDENT
  88802. .UNINDENT
  88803. .INDENT 0.0
  88804. .TP
  88805. .B salt.modules.elasticsearch.index_put_settings(body=None, hosts=None, profile=None, source=None, **kwargs)
  88806. New in version 3000.
  88807. .sp
  88808. Update existing index settings
  88809. \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-update\-settings.html\fP
  88810. .INDENT 7.0
  88811. .TP
  88812. .B body
  88813. The index settings to be updated.
  88814. .TP
  88815. .B source
  88816. URL to file specifying index definition. Cannot be used in combination with \fBbody\fP\&.
  88817. .TP
  88818. .B index
  88819. (Optional, string) A comma\-separated list of index names; use _all or empty string to perform the operation on all indices
  88820. .TP
  88821. .B allow_no_indices
  88822. (Optional, boolean) Whether to ignore if a wildcard indices expression resolves into no concrete indices.
  88823. (This includes _all string or when no indices have been specified)
  88824. .TP
  88825. .B expand_wildcards
  88826. (Optional, string) Whether to expand wildcard expression to concrete indices that are open, closed or both.
  88827. Valid choices are: ‘open’, ‘closed’, ‘none’, ‘all’
  88828. .TP
  88829. .B flat_settings
  88830. (Optional, boolean) Return settings in flat format (default: false)
  88831. .TP
  88832. .B ignore_unavailable
  88833. (Optional, boolean) Whether specified concrete indices should be ignored when unavailable (missing or closed)
  88834. .TP
  88835. .B master_timeout
  88836. (Optional, time units) Explicit operation timeout for connection to master node
  88837. .TP
  88838. .B preserve_existing
  88839. (Optional, boolean) Whether to update existing settings. If set to true existing settings on an index remain unchanged, the default is false
  88840. .UNINDENT
  88841. .sp
  88842. The defaults settings for the above parameters depend on the API version being used.
  88843. .INDENT 7.0
  88844. .TP
  88845. .B \&..note::
  88846. Elasticsearch time units can be found here:
  88847. \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/common\-options.html#time\-units\fP
  88848. .UNINDENT
  88849. .sp
  88850. CLI example:
  88851. .INDENT 7.0
  88852. .INDENT 3.5
  88853. .sp
  88854. .nf
  88855. .ft C
  88856. salt myminion elasticsearch.index_put_settings index=testindex body=\(aq{"settings" : {"index" : {"number_of_replicas" : 2}}}\(aq
  88857. .ft P
  88858. .fi
  88859. .UNINDENT
  88860. .UNINDENT
  88861. .UNINDENT
  88862. .INDENT 0.0
  88863. .TP
  88864. .B salt.modules.elasticsearch.index_template_create(name, body=None, hosts=None, profile=None, source=None)
  88865. Create an index template
  88866. .INDENT 7.0
  88867. .TP
  88868. .B name
  88869. Index template name
  88870. .TP
  88871. .B body
  88872. Template definition as specified in \fI\%http://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-templates.html\fP
  88873. .TP
  88874. .B source
  88875. URL to file specifying template definition. Cannot be used in combination with \fBbody\fP\&.
  88876. .UNINDENT
  88877. .sp
  88878. CLI example:
  88879. .INDENT 7.0
  88880. .INDENT 3.5
  88881. .sp
  88882. .nf
  88883. .ft C
  88884. salt myminion elasticsearch.index_template_create testindex_templ \(aq{ "template": "logstash\-*", "order": 1, "settings": { "number_of_shards": 1 } }\(aq
  88885. .ft P
  88886. .fi
  88887. .UNINDENT
  88888. .UNINDENT
  88889. .UNINDENT
  88890. .INDENT 0.0
  88891. .TP
  88892. .B salt.modules.elasticsearch.index_template_delete(name, hosts=None, profile=None)
  88893. Delete an index template (type) along with its data
  88894. .INDENT 7.0
  88895. .TP
  88896. .B name
  88897. Index template name
  88898. .UNINDENT
  88899. .sp
  88900. CLI example:
  88901. .INDENT 7.0
  88902. .INDENT 3.5
  88903. .sp
  88904. .nf
  88905. .ft C
  88906. salt myminion elasticsearch.index_template_delete testindex_templ user
  88907. .ft P
  88908. .fi
  88909. .UNINDENT
  88910. .UNINDENT
  88911. .UNINDENT
  88912. .INDENT 0.0
  88913. .TP
  88914. .B salt.modules.elasticsearch.index_template_exists(name, hosts=None, profile=None)
  88915. Return a boolean indicating whether given index template exists
  88916. .INDENT 7.0
  88917. .TP
  88918. .B name
  88919. Index template name
  88920. .UNINDENT
  88921. .sp
  88922. CLI example:
  88923. .INDENT 7.0
  88924. .INDENT 3.5
  88925. .sp
  88926. .nf
  88927. .ft C
  88928. salt myminion elasticsearch.index_template_exists testindex_templ
  88929. .ft P
  88930. .fi
  88931. .UNINDENT
  88932. .UNINDENT
  88933. .UNINDENT
  88934. .INDENT 0.0
  88935. .TP
  88936. .B salt.modules.elasticsearch.index_template_get(name, hosts=None, profile=None)
  88937. Retrieve template definition of index or index/type
  88938. .INDENT 7.0
  88939. .TP
  88940. .B name
  88941. Index template name
  88942. .UNINDENT
  88943. .sp
  88944. CLI example:
  88945. .INDENT 7.0
  88946. .INDENT 3.5
  88947. .sp
  88948. .nf
  88949. .ft C
  88950. salt myminion elasticsearch.index_template_get testindex_templ
  88951. .ft P
  88952. .fi
  88953. .UNINDENT
  88954. .UNINDENT
  88955. .UNINDENT
  88956. .INDENT 0.0
  88957. .TP
  88958. .B salt.modules.elasticsearch.info(hosts=None, profile=None)
  88959. New in version 2017.7.0.
  88960. .sp
  88961. Return Elasticsearch information.
  88962. .sp
  88963. CLI example:
  88964. .INDENT 7.0
  88965. .INDENT 3.5
  88966. .sp
  88967. .nf
  88968. .ft C
  88969. salt myminion elasticsearch.info
  88970. salt myminion elasticsearch.info profile=elasticsearch\-extra
  88971. .ft P
  88972. .fi
  88973. .UNINDENT
  88974. .UNINDENT
  88975. .UNINDENT
  88976. .INDENT 0.0
  88977. .TP
  88978. .B salt.modules.elasticsearch.mapping_create(index, doc_type, body=None, hosts=None, profile=None, source=None)
  88979. Create a mapping in a given index
  88980. .INDENT 7.0
  88981. .TP
  88982. .B index
  88983. Index for the mapping
  88984. .TP
  88985. .B doc_type
  88986. Name of the document type
  88987. .TP
  88988. .B body
  88989. Mapping definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-put\-mapping.html\fP
  88990. .TP
  88991. .B source
  88992. URL to file specifying mapping definition. Cannot be used in combination with \fBbody\fP\&.
  88993. .UNINDENT
  88994. .sp
  88995. CLI example:
  88996. .INDENT 7.0
  88997. .INDENT 3.5
  88998. .sp
  88999. .nf
  89000. .ft C
  89001. salt myminion elasticsearch.mapping_create testindex user \(aq{ "user" : { "properties" : { "message" : {"type" : "string", "store" : true } } } }\(aq
  89002. .ft P
  89003. .fi
  89004. .UNINDENT
  89005. .UNINDENT
  89006. .UNINDENT
  89007. .INDENT 0.0
  89008. .TP
  89009. .B salt.modules.elasticsearch.mapping_delete(index, doc_type, hosts=None, profile=None)
  89010. Delete a mapping (type) along with its data. As of Elasticsearch 5.0 this is no longer available.
  89011. .INDENT 7.0
  89012. .TP
  89013. .B index
  89014. Index for the mapping
  89015. .TP
  89016. .B doc_type
  89017. Name of the document type
  89018. .UNINDENT
  89019. .sp
  89020. CLI example:
  89021. .INDENT 7.0
  89022. .INDENT 3.5
  89023. .sp
  89024. .nf
  89025. .ft C
  89026. salt myminion elasticsearch.mapping_delete testindex user
  89027. .ft P
  89028. .fi
  89029. .UNINDENT
  89030. .UNINDENT
  89031. .UNINDENT
  89032. .INDENT 0.0
  89033. .TP
  89034. .B salt.modules.elasticsearch.mapping_get(index, doc_type, hosts=None, profile=None)
  89035. Retrieve mapping definition of index or index/type
  89036. .INDENT 7.0
  89037. .TP
  89038. .B index
  89039. Index for the mapping
  89040. .TP
  89041. .B doc_type
  89042. Name of the document type
  89043. .UNINDENT
  89044. .sp
  89045. CLI example:
  89046. .INDENT 7.0
  89047. .INDENT 3.5
  89048. .sp
  89049. .nf
  89050. .ft C
  89051. salt myminion elasticsearch.mapping_get testindex user
  89052. .ft P
  89053. .fi
  89054. .UNINDENT
  89055. .UNINDENT
  89056. .UNINDENT
  89057. .INDENT 0.0
  89058. .TP
  89059. .B salt.modules.elasticsearch.node_info(nodes=None, flat_settings=False, hosts=None, profile=None)
  89060. New in version 2017.7.0.
  89061. .sp
  89062. Return Elasticsearch node information.
  89063. .INDENT 7.0
  89064. .TP
  89065. .B nodes
  89066. List of cluster nodes (id or name) to display stats for. Use _local for connected node, empty for all
  89067. .TP
  89068. .B flat_settings
  89069. Flatten settings keys
  89070. .UNINDENT
  89071. .sp
  89072. CLI example:
  89073. .INDENT 7.0
  89074. .INDENT 3.5
  89075. .sp
  89076. .nf
  89077. .ft C
  89078. salt myminion elasticsearch.node_info flat_settings=True
  89079. .ft P
  89080. .fi
  89081. .UNINDENT
  89082. .UNINDENT
  89083. .UNINDENT
  89084. .INDENT 0.0
  89085. .TP
  89086. .B salt.modules.elasticsearch.ping(allow_failure=False, hosts=None, profile=None)
  89087. New in version 2017.7.0.
  89088. .sp
  89089. Test connection to Elasticsearch instance. This method does not fail if not explicitly specified.
  89090. .INDENT 7.0
  89091. .TP
  89092. .B allow_failure
  89093. Throw exception if ping fails
  89094. .UNINDENT
  89095. .sp
  89096. CLI example:
  89097. .INDENT 7.0
  89098. .INDENT 3.5
  89099. .sp
  89100. .nf
  89101. .ft C
  89102. salt myminion elasticsearch.ping allow_failure=True
  89103. salt myminion elasticsearch.ping profile=elasticsearch\-extra
  89104. .ft P
  89105. .fi
  89106. .UNINDENT
  89107. .UNINDENT
  89108. .UNINDENT
  89109. .INDENT 0.0
  89110. .TP
  89111. .B salt.modules.elasticsearch.pipeline_create(id, body, hosts=None, profile=None)
  89112. New in version 2017.7.0.
  89113. .sp
  89114. Create Ingest pipeline by supplied definition. Available since Elasticsearch 5.0.
  89115. .INDENT 7.0
  89116. .TP
  89117. .B id
  89118. Pipeline id
  89119. .TP
  89120. .B body
  89121. Pipeline definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html\fP
  89122. .UNINDENT
  89123. .sp
  89124. CLI example:
  89125. .INDENT 7.0
  89126. .INDENT 3.5
  89127. .sp
  89128. .nf
  89129. .ft C
  89130. salt myminion elasticsearch.pipeline_create mypipeline \(aq{"description": "my custom pipeline", "processors": [{"set" : {"field": "collector_timestamp_millis", "value": "{{_ingest.timestamp}}"}}]}\(aq
  89131. .ft P
  89132. .fi
  89133. .UNINDENT
  89134. .UNINDENT
  89135. .UNINDENT
  89136. .INDENT 0.0
  89137. .TP
  89138. .B salt.modules.elasticsearch.pipeline_delete(id, hosts=None, profile=None)
  89139. New in version 2017.7.0.
  89140. .sp
  89141. Delete Ingest pipeline. Available since Elasticsearch 5.0.
  89142. .INDENT 7.0
  89143. .TP
  89144. .B id
  89145. Pipeline id
  89146. .UNINDENT
  89147. .sp
  89148. CLI example:
  89149. .INDENT 7.0
  89150. .INDENT 3.5
  89151. .sp
  89152. .nf
  89153. .ft C
  89154. salt myminion elasticsearch.pipeline_delete mypipeline
  89155. .ft P
  89156. .fi
  89157. .UNINDENT
  89158. .UNINDENT
  89159. .UNINDENT
  89160. .INDENT 0.0
  89161. .TP
  89162. .B salt.modules.elasticsearch.pipeline_get(id, hosts=None, profile=None)
  89163. New in version 2017.7.0.
  89164. .sp
  89165. Retrieve Ingest pipeline definition. Available since Elasticsearch 5.0.
  89166. .INDENT 7.0
  89167. .TP
  89168. .B id
  89169. Pipeline id
  89170. .UNINDENT
  89171. .sp
  89172. CLI example:
  89173. .INDENT 7.0
  89174. .INDENT 3.5
  89175. .sp
  89176. .nf
  89177. .ft C
  89178. salt myminion elasticsearch.pipeline_get mypipeline
  89179. .ft P
  89180. .fi
  89181. .UNINDENT
  89182. .UNINDENT
  89183. .UNINDENT
  89184. .INDENT 0.0
  89185. .TP
  89186. .B salt.modules.elasticsearch.pipeline_simulate(id, body, verbose=False, hosts=None, profile=None)
  89187. New in version 2017.7.0.
  89188. .sp
  89189. Simulate existing Ingest pipeline on provided data. Available since Elasticsearch 5.0.
  89190. .INDENT 7.0
  89191. .TP
  89192. .B id
  89193. Pipeline id
  89194. .TP
  89195. .B body
  89196. Pipeline definition as specified in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/master/pipeline.html\fP
  89197. .TP
  89198. .B verbose
  89199. Specify if the output should be more verbose
  89200. .UNINDENT
  89201. .sp
  89202. CLI example:
  89203. .INDENT 7.0
  89204. .INDENT 3.5
  89205. .sp
  89206. .nf
  89207. .ft C
  89208. salt myminion elasticsearch.pipeline_simulate mypipeline \(aq{"docs":[{"_index":"index","_type":"type","_id":"id","_source":{"foo":"bar"}},{"_index":"index","_type":"type","_id":"id","_source":{"foo":"rab"}}]}\(aq verbose=True
  89209. .ft P
  89210. .fi
  89211. .UNINDENT
  89212. .UNINDENT
  89213. .UNINDENT
  89214. .INDENT 0.0
  89215. .TP
  89216. .B salt.modules.elasticsearch.repository_create(name, body, hosts=None, profile=None)
  89217. New in version 2017.7.0.
  89218. .sp
  89219. Create repository for storing snapshots. Note that shared repository paths have to be specified in path.repo Elasticsearch configuration option.
  89220. .INDENT 7.0
  89221. .TP
  89222. .B name
  89223. Repository name
  89224. .TP
  89225. .B body
  89226. Repository definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89227. .UNINDENT
  89228. .sp
  89229. CLI example:
  89230. .INDENT 7.0
  89231. .INDENT 3.5
  89232. .sp
  89233. .nf
  89234. .ft C
  89235. salt myminion elasticsearch.repository_create testrepo \(aq{"type":"fs","settings":{"location":"/tmp/test","compress":true}}\(aq
  89236. .ft P
  89237. .fi
  89238. .UNINDENT
  89239. .UNINDENT
  89240. .UNINDENT
  89241. .INDENT 0.0
  89242. .TP
  89243. .B salt.modules.elasticsearch.repository_delete(name, hosts=None, profile=None)
  89244. New in version 2017.7.0.
  89245. .sp
  89246. Delete existing repository.
  89247. .INDENT 7.0
  89248. .TP
  89249. .B name
  89250. Repository name
  89251. .UNINDENT
  89252. .sp
  89253. CLI example:
  89254. .INDENT 7.0
  89255. .INDENT 3.5
  89256. .sp
  89257. .nf
  89258. .ft C
  89259. salt myminion elasticsearch.repository_delete testrepo
  89260. .ft P
  89261. .fi
  89262. .UNINDENT
  89263. .UNINDENT
  89264. .UNINDENT
  89265. .INDENT 0.0
  89266. .TP
  89267. .B salt.modules.elasticsearch.repository_get(name, local=False, hosts=None, profile=None)
  89268. New in version 2017.7.0.
  89269. .sp
  89270. Get existing repository details.
  89271. .INDENT 7.0
  89272. .TP
  89273. .B name
  89274. Repository name
  89275. .TP
  89276. .B local
  89277. Retrieve only local information, default is false
  89278. .UNINDENT
  89279. .sp
  89280. CLI example:
  89281. .INDENT 7.0
  89282. .INDENT 3.5
  89283. .sp
  89284. .nf
  89285. .ft C
  89286. salt myminion elasticsearch.repository_get testrepo
  89287. .ft P
  89288. .fi
  89289. .UNINDENT
  89290. .UNINDENT
  89291. .UNINDENT
  89292. .INDENT 0.0
  89293. .TP
  89294. .B salt.modules.elasticsearch.repository_verify(name, hosts=None, profile=None)
  89295. New in version 2017.7.0.
  89296. .sp
  89297. Obtain list of cluster nodes which successfully verified this repository.
  89298. .INDENT 7.0
  89299. .TP
  89300. .B name
  89301. Repository name
  89302. .UNINDENT
  89303. .sp
  89304. CLI example:
  89305. .INDENT 7.0
  89306. .INDENT 3.5
  89307. .sp
  89308. .nf
  89309. .ft C
  89310. salt myminion elasticsearch.repository_verify testrepo
  89311. .ft P
  89312. .fi
  89313. .UNINDENT
  89314. .UNINDENT
  89315. .UNINDENT
  89316. .INDENT 0.0
  89317. .TP
  89318. .B salt.modules.elasticsearch.search_template_create(id, body, hosts=None, profile=None)
  89319. New in version 2017.7.0.
  89320. .sp
  89321. Create search template by supplied definition
  89322. .INDENT 7.0
  89323. .TP
  89324. .B id
  89325. Template ID
  89326. .TP
  89327. .B body
  89328. Search template definition
  89329. .UNINDENT
  89330. .sp
  89331. CLI example:
  89332. .INDENT 7.0
  89333. .INDENT 3.5
  89334. .sp
  89335. .nf
  89336. .ft C
  89337. salt myminion elasticsearch.search_template_create mytemplate \(aq{"template":{"query":{"match":{"title":"{{query_string}}"}}}}\(aq
  89338. .ft P
  89339. .fi
  89340. .UNINDENT
  89341. .UNINDENT
  89342. .UNINDENT
  89343. .INDENT 0.0
  89344. .TP
  89345. .B salt.modules.elasticsearch.search_template_delete(id, hosts=None, profile=None)
  89346. New in version 2017.7.0.
  89347. .sp
  89348. Delete existing search template definition.
  89349. .INDENT 7.0
  89350. .TP
  89351. .B id
  89352. Template ID
  89353. .UNINDENT
  89354. .sp
  89355. CLI example:
  89356. .INDENT 7.0
  89357. .INDENT 3.5
  89358. .sp
  89359. .nf
  89360. .ft C
  89361. salt myminion elasticsearch.search_template_delete mytemplate
  89362. .ft P
  89363. .fi
  89364. .UNINDENT
  89365. .UNINDENT
  89366. .UNINDENT
  89367. .INDENT 0.0
  89368. .TP
  89369. .B salt.modules.elasticsearch.search_template_get(id, hosts=None, profile=None)
  89370. New in version 2017.7.0.
  89371. .sp
  89372. Obtain existing search template definition.
  89373. .INDENT 7.0
  89374. .TP
  89375. .B id
  89376. Template ID
  89377. .UNINDENT
  89378. .sp
  89379. CLI example:
  89380. .INDENT 7.0
  89381. .INDENT 3.5
  89382. .sp
  89383. .nf
  89384. .ft C
  89385. salt myminion elasticsearch.search_template_get mytemplate
  89386. .ft P
  89387. .fi
  89388. .UNINDENT
  89389. .UNINDENT
  89390. .UNINDENT
  89391. .INDENT 0.0
  89392. .TP
  89393. .B salt.modules.elasticsearch.snapshot_create(repository, snapshot, body=None, hosts=None, profile=None)
  89394. New in version 2017.7.0.
  89395. .sp
  89396. Create snapshot in specified repository by supplied definition.
  89397. .INDENT 7.0
  89398. .TP
  89399. .B repository
  89400. Repository name
  89401. .TP
  89402. .B snapshot
  89403. Snapshot name
  89404. .TP
  89405. .B body
  89406. Snapshot definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89407. .UNINDENT
  89408. .sp
  89409. CLI example:
  89410. .INDENT 7.0
  89411. .INDENT 3.5
  89412. .sp
  89413. .nf
  89414. .ft C
  89415. salt myminion elasticsearch.snapshot_create testrepo testsnapshot \(aq{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":false}\(aq
  89416. .ft P
  89417. .fi
  89418. .UNINDENT
  89419. .UNINDENT
  89420. .UNINDENT
  89421. .INDENT 0.0
  89422. .TP
  89423. .B salt.modules.elasticsearch.snapshot_delete(repository, snapshot, hosts=None, profile=None)
  89424. New in version 2017.7.0.
  89425. .sp
  89426. Delete snapshot from specified repository.
  89427. .INDENT 7.0
  89428. .TP
  89429. .B repository
  89430. Repository name
  89431. .TP
  89432. .B snapshot
  89433. Snapshot name
  89434. .UNINDENT
  89435. .sp
  89436. CLI example:
  89437. .INDENT 7.0
  89438. .INDENT 3.5
  89439. .sp
  89440. .nf
  89441. .ft C
  89442. salt myminion elasticsearch.snapshot_delete testrepo testsnapshot
  89443. .ft P
  89444. .fi
  89445. .UNINDENT
  89446. .UNINDENT
  89447. .UNINDENT
  89448. .INDENT 0.0
  89449. .TP
  89450. .B salt.modules.elasticsearch.snapshot_get(repository, snapshot, ignore_unavailable=False, hosts=None, profile=None)
  89451. New in version 2017.7.0.
  89452. .sp
  89453. Obtain snapshot residing in specified repository.
  89454. .INDENT 7.0
  89455. .TP
  89456. .B repository
  89457. Repository name
  89458. .TP
  89459. .B snapshot
  89460. Snapshot name, use _all to obtain all snapshots in specified repository
  89461. .TP
  89462. .B ignore_unavailable
  89463. Ignore unavailable snapshots
  89464. .UNINDENT
  89465. .sp
  89466. CLI example:
  89467. .INDENT 7.0
  89468. .INDENT 3.5
  89469. .sp
  89470. .nf
  89471. .ft C
  89472. salt myminion elasticsearch.snapshot_get testrepo testsnapshot
  89473. .ft P
  89474. .fi
  89475. .UNINDENT
  89476. .UNINDENT
  89477. .UNINDENT
  89478. .INDENT 0.0
  89479. .TP
  89480. .B salt.modules.elasticsearch.snapshot_restore(repository, snapshot, body=None, hosts=None, profile=None)
  89481. New in version 2017.7.0.
  89482. .sp
  89483. Restore existing snapshot in specified repository by supplied definition.
  89484. .INDENT 7.0
  89485. .TP
  89486. .B repository
  89487. Repository name
  89488. .TP
  89489. .B snapshot
  89490. Snapshot name
  89491. .TP
  89492. .B body
  89493. Restore definition as in \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/modules\-snapshots.html\fP
  89494. .UNINDENT
  89495. .sp
  89496. CLI example:
  89497. .INDENT 7.0
  89498. .INDENT 3.5
  89499. .sp
  89500. .nf
  89501. .ft C
  89502. salt myminion elasticsearch.snapshot_restore testrepo testsnapshot \(aq{"indices":"index_1,index_2","ignore_unavailable":true,"include_global_state":true}\(aq
  89503. .ft P
  89504. .fi
  89505. .UNINDENT
  89506. .UNINDENT
  89507. .UNINDENT
  89508. .INDENT 0.0
  89509. .TP
  89510. .B salt.modules.elasticsearch.snapshot_status(repository=None, snapshot=None, ignore_unavailable=False, hosts=None, profile=None)
  89511. New in version 2017.7.0.
  89512. .sp
  89513. Obtain status of all currently running snapshots.
  89514. .INDENT 7.0
  89515. .TP
  89516. .B repository
  89517. Particular repository to look for snapshots
  89518. .TP
  89519. .B snapshot
  89520. Snapshot name
  89521. .TP
  89522. .B ignore_unavailable
  89523. Ignore unavailable snapshots
  89524. .UNINDENT
  89525. .sp
  89526. CLI example:
  89527. .INDENT 7.0
  89528. .INDENT 3.5
  89529. .sp
  89530. .nf
  89531. .ft C
  89532. salt myminion elasticsearch.snapshot_status ignore_unavailable=True
  89533. .ft P
  89534. .fi
  89535. .UNINDENT
  89536. .UNINDENT
  89537. .UNINDENT
  89538. .SS salt.modules.etcd_mod
  89539. .sp
  89540. Execution module to work with etcd
  89541. .INDENT 0.0
  89542. .TP
  89543. .B depends
  89544. .INDENT 7.0
  89545. .IP \(bu 2
  89546. python\-etcd
  89547. .UNINDENT
  89548. .UNINDENT
  89549. .SS Configuration
  89550. .sp
  89551. To work with an etcd server you must configure an etcd profile. The etcd config
  89552. can be set in either the Salt Minion configuration file or in pillar:
  89553. .INDENT 0.0
  89554. .INDENT 3.5
  89555. .sp
  89556. .nf
  89557. .ft C
  89558. my_etd_config:
  89559. etcd.host: 127.0.0.1
  89560. etcd.port: 4001
  89561. .ft P
  89562. .fi
  89563. .UNINDENT
  89564. .UNINDENT
  89565. .sp
  89566. It is technically possible to configure etcd without using a profile, but this
  89567. is not considered to be a best practice, especially when multiple etcd servers
  89568. or clusters are available.
  89569. .INDENT 0.0
  89570. .INDENT 3.5
  89571. .sp
  89572. .nf
  89573. .ft C
  89574. etcd.host: 127.0.0.1
  89575. etcd.port: 4001
  89576. .ft P
  89577. .fi
  89578. .UNINDENT
  89579. .UNINDENT
  89580. .sp
  89581. \fBNOTE:\fP
  89582. .INDENT 0.0
  89583. .INDENT 3.5
  89584. The etcd configuration can also be set in the Salt Master config file,
  89585. but in order to use any etcd configurations defined in the Salt Master
  89586. config, the \fBpillar_opts\fP must be set to \fBTrue\fP\&.
  89587. .sp
  89588. Be aware that setting \fBpillar_opts\fP to \fBTrue\fP has security implications
  89589. as this makes all master configuration settings available in all minion\(aqs
  89590. pillars.
  89591. .UNINDENT
  89592. .UNINDENT
  89593. .INDENT 0.0
  89594. .TP
  89595. .B salt.modules.etcd_mod.get_(key, recurse=False, profile=None, **kwargs)
  89596. New in version 2014.7.0.
  89597. .sp
  89598. Get a value from etcd, by direct path. Returns None on failure.
  89599. .sp
  89600. CLI Examples:
  89601. .INDENT 7.0
  89602. .INDENT 3.5
  89603. .sp
  89604. .nf
  89605. .ft C
  89606. salt myminion etcd.get /path/to/key
  89607. salt myminion etcd.get /path/to/key profile=my_etcd_config
  89608. salt myminion etcd.get /path/to/key recurse=True profile=my_etcd_config
  89609. salt myminion etcd.get /path/to/key host=127.0.0.1 port=2379
  89610. .ft P
  89611. .fi
  89612. .UNINDENT
  89613. .UNINDENT
  89614. .UNINDENT
  89615. .INDENT 0.0
  89616. .TP
  89617. .B salt.modules.etcd_mod.ls_(path=u\(aq/\(aq, profile=None, **kwargs)
  89618. New in version 2014.7.0.
  89619. .sp
  89620. Return all keys and dirs inside a specific path. Returns an empty dict on
  89621. failure.
  89622. .sp
  89623. CLI Example:
  89624. .INDENT 7.0
  89625. .INDENT 3.5
  89626. .sp
  89627. .nf
  89628. .ft C
  89629. salt myminion etcd.ls /path/to/dir/
  89630. salt myminion etcd.ls /path/to/dir/ profile=my_etcd_config
  89631. salt myminion etcd.ls /path/to/dir/ host=127.0.0.1 port=2379
  89632. .ft P
  89633. .fi
  89634. .UNINDENT
  89635. .UNINDENT
  89636. .UNINDENT
  89637. .INDENT 0.0
  89638. .TP
  89639. .B salt.modules.etcd_mod.rm_(key, recurse=False, profile=None, **kwargs)
  89640. New in version 2014.7.0.
  89641. .sp
  89642. Delete a key from etcd. Returns True if the key was deleted, False if it was
  89643. not and None if there was a failure.
  89644. .sp
  89645. CLI Example:
  89646. .INDENT 7.0
  89647. .INDENT 3.5
  89648. .sp
  89649. .nf
  89650. .ft C
  89651. salt myminion etcd.rm /path/to/key
  89652. salt myminion etcd.rm /path/to/key profile=my_etcd_config
  89653. salt myminion etcd.rm /path/to/key host=127.0.0.1 port=2379
  89654. salt myminion etcd.rm /path/to/dir recurse=True profile=my_etcd_config
  89655. .ft P
  89656. .fi
  89657. .UNINDENT
  89658. .UNINDENT
  89659. .UNINDENT
  89660. .INDENT 0.0
  89661. .TP
  89662. .B salt.modules.etcd_mod.set_(key, value, profile=None, ttl=None, directory=False, **kwargs)
  89663. New in version 2014.7.0.
  89664. .sp
  89665. Set a key in etcd by direct path. Optionally, create a directory
  89666. or set a TTL on the key. Returns None on failure.
  89667. .sp
  89668. CLI Example:
  89669. .INDENT 7.0
  89670. .INDENT 3.5
  89671. .sp
  89672. .nf
  89673. .ft C
  89674. salt myminion etcd.set /path/to/key value
  89675. salt myminion etcd.set /path/to/key value profile=my_etcd_config
  89676. salt myminion etcd.set /path/to/key value host=127.0.0.1 port=2379
  89677. salt myminion etcd.set /path/to/dir \(aq\(aq directory=True
  89678. salt myminion etcd.set /path/to/key value ttl=5
  89679. .ft P
  89680. .fi
  89681. .UNINDENT
  89682. .UNINDENT
  89683. .UNINDENT
  89684. .INDENT 0.0
  89685. .TP
  89686. .B salt.modules.etcd_mod.tree(path=u\(aq/\(aq, profile=None, **kwargs)
  89687. New in version 2014.7.0.
  89688. .sp
  89689. Recurse through etcd and return all values. Returns None on failure.
  89690. .sp
  89691. CLI Example:
  89692. .INDENT 7.0
  89693. .INDENT 3.5
  89694. .sp
  89695. .nf
  89696. .ft C
  89697. salt myminion etcd.tree
  89698. salt myminion etcd.tree profile=my_etcd_config
  89699. salt myminion etcd.tree host=127.0.0.1 port=2379
  89700. salt myminion etcd.tree /path/to/keys profile=my_etcd_config
  89701. .ft P
  89702. .fi
  89703. .UNINDENT
  89704. .UNINDENT
  89705. .UNINDENT
  89706. .INDENT 0.0
  89707. .TP
  89708. .B salt.modules.etcd_mod.update(fields, path=u\(aq\(aq, profile=None, **kwargs)
  89709. New in version 2016.3.0.
  89710. .sp
  89711. Sets a dictionary of values in one call. Useful for large updates
  89712. in syndic environments. The dictionary can contain a mix of formats
  89713. such as:
  89714. .INDENT 7.0
  89715. .INDENT 3.5
  89716. .sp
  89717. .nf
  89718. .ft C
  89719. {
  89720. \(aq/some/example/key\(aq: \(aqbar\(aq,
  89721. \(aq/another/example/key\(aq: \(aqbaz\(aq
  89722. }
  89723. .ft P
  89724. .fi
  89725. .UNINDENT
  89726. .UNINDENT
  89727. .sp
  89728. Or it may be a straight dictionary, which will be flattened to look
  89729. like the above format:
  89730. .INDENT 7.0
  89731. .INDENT 3.5
  89732. .sp
  89733. .nf
  89734. .ft C
  89735. {
  89736. \(aqsome\(aq: {
  89737. \(aqexample\(aq: {
  89738. \(aqkey\(aq: \(aqbar\(aq
  89739. }
  89740. },
  89741. \(aqanother\(aq: {
  89742. \(aqexample\(aq: {
  89743. \(aqkey\(aq: \(aqbaz\(aq
  89744. }
  89745. }
  89746. }
  89747. .ft P
  89748. .fi
  89749. .UNINDENT
  89750. .UNINDENT
  89751. .sp
  89752. You can even mix the two formats and it will be flattened to the first
  89753. format. Leading and trailing \(aq/\(aq will be removed.
  89754. .sp
  89755. Empty directories can be created by setting the value of the key to an
  89756. empty dictionary.
  89757. .sp
  89758. The \(aqpath\(aq parameter will optionally set the root of the path to use.
  89759. .sp
  89760. CLI Example:
  89761. .INDENT 7.0
  89762. .INDENT 3.5
  89763. .sp
  89764. .nf
  89765. .ft C
  89766. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}"
  89767. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" profile=my_etcd_config
  89768. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" host=127.0.0.1 port=2379
  89769. salt myminion etcd.update "{\(aq/path/to/key\(aq: \(aqbaz\(aq, \(aq/another/key\(aq: \(aqbar\(aq}" path=\(aq/some/root\(aq
  89770. .ft P
  89771. .fi
  89772. .UNINDENT
  89773. .UNINDENT
  89774. .UNINDENT
  89775. .INDENT 0.0
  89776. .TP
  89777. .B salt.modules.etcd_mod.watch(key, recurse=False, profile=None, timeout=0, index=None, **kwargs)
  89778. New in version 2016.3.0.
  89779. .sp
  89780. Makes a best effort to watch for a key or tree change in etcd.
  89781. Returns a dict containing the new key value ( or None if the key was
  89782. deleted ), the modifiedIndex of the key, whether the key changed or
  89783. not, the path to the key that changed and whether it is a directory or not.
  89784. .sp
  89785. If something catastrophic happens, returns {}
  89786. .sp
  89787. CLI Example:
  89788. .INDENT 7.0
  89789. .INDENT 3.5
  89790. .sp
  89791. .nf
  89792. .ft C
  89793. salt myminion etcd.watch /path/to/key
  89794. salt myminion etcd.watch /path/to/key timeout=10
  89795. salt myminion etcd.watch /patch/to/key profile=my_etcd_config index=10
  89796. salt myminion etcd.watch /patch/to/key host=127.0.0.1 port=2379
  89797. .ft P
  89798. .fi
  89799. .UNINDENT
  89800. .UNINDENT
  89801. .UNINDENT
  89802. .SS salt.modules.ethtool module
  89803. .sp
  89804. Module for running ethtool command
  89805. .sp
  89806. New in version 2016.3.0.
  89807. .INDENT 0.0
  89808. .TP
  89809. .B codeauthor
  89810. Krzysztof Pawlowski <\fI\%msciciel@msciciel.eu\fP>
  89811. .TP
  89812. .B maturity
  89813. new
  89814. .TP
  89815. .B depends
  89816. python\-ethtool
  89817. .TP
  89818. .B platform
  89819. linux
  89820. .UNINDENT
  89821. .INDENT 0.0
  89822. .TP
  89823. .B salt.modules.ethtool.set_coalesce(devname, **kwargs)
  89824. Changes the coalescing settings of the specified network device
  89825. .sp
  89826. CLI Example:
  89827. .INDENT 7.0
  89828. .INDENT 3.5
  89829. .sp
  89830. .nf
  89831. .ft C
  89832. salt \(aq*\(aq ethtool.set_coalesce <devname> [adaptive_rx=on|off] [adaptive_tx=on|off] [rx_usecs=N] [rx_frames=N]
  89833. [rx_usecs_irq=N] [rx_frames_irq=N] [tx_usecs=N] [tx_frames=N] [tx_usecs_irq=N] [tx_frames_irq=N]
  89834. [stats_block_usecs=N] [pkt_rate_low=N] [rx_usecs_low=N] [rx_frames_low=N] [tx_usecs_low=N] [tx_frames_low=N]
  89835. [pkt_rate_high=N] [rx_usecs_high=N] [rx_frames_high=N] [tx_usecs_high=N] [tx_frames_high=N]
  89836. [sample_interval=N]
  89837. .ft P
  89838. .fi
  89839. .UNINDENT
  89840. .UNINDENT
  89841. .UNINDENT
  89842. .INDENT 0.0
  89843. .TP
  89844. .B salt.modules.ethtool.set_offload(devname, **kwargs)
  89845. Changes the offload parameters and other features of the specified network device
  89846. .sp
  89847. CLI Example:
  89848. .INDENT 7.0
  89849. .INDENT 3.5
  89850. .sp
  89851. .nf
  89852. .ft C
  89853. salt \(aq*\(aq ethtool.set_offload <devname> tcp_segmentation_offload=on
  89854. .ft P
  89855. .fi
  89856. .UNINDENT
  89857. .UNINDENT
  89858. .UNINDENT
  89859. .INDENT 0.0
  89860. .TP
  89861. .B salt.modules.ethtool.set_ring(devname, **kwargs)
  89862. Changes the rx/tx ring parameters of the specified network device
  89863. .sp
  89864. CLI Example:
  89865. .INDENT 7.0
  89866. .INDENT 3.5
  89867. .sp
  89868. .nf
  89869. .ft C
  89870. salt \(aq*\(aq ethtool.set_ring <devname> [rx=N] [rx_mini=N] [rx_jumbo=N] [tx=N]
  89871. .ft P
  89872. .fi
  89873. .UNINDENT
  89874. .UNINDENT
  89875. .UNINDENT
  89876. .INDENT 0.0
  89877. .TP
  89878. .B salt.modules.ethtool.show_coalesce(devname)
  89879. Queries the specified network device for coalescing information
  89880. .sp
  89881. CLI Example:
  89882. .INDENT 7.0
  89883. .INDENT 3.5
  89884. .sp
  89885. .nf
  89886. .ft C
  89887. salt \(aq*\(aq ethtool.show_coalesce <devname>
  89888. .ft P
  89889. .fi
  89890. .UNINDENT
  89891. .UNINDENT
  89892. .UNINDENT
  89893. .INDENT 0.0
  89894. .TP
  89895. .B salt.modules.ethtool.show_driver(devname)
  89896. Queries the specified network device for associated driver information
  89897. .sp
  89898. CLI Example:
  89899. .INDENT 7.0
  89900. .INDENT 3.5
  89901. .sp
  89902. .nf
  89903. .ft C
  89904. salt \(aq*\(aq ethtool.show_driver <devname>
  89905. .ft P
  89906. .fi
  89907. .UNINDENT
  89908. .UNINDENT
  89909. .UNINDENT
  89910. .INDENT 0.0
  89911. .TP
  89912. .B salt.modules.ethtool.show_offload(devname)
  89913. Queries the specified network device for the state of protocol offload and other features
  89914. .sp
  89915. CLI Example:
  89916. .INDENT 7.0
  89917. .INDENT 3.5
  89918. .sp
  89919. .nf
  89920. .ft C
  89921. salt \(aq*\(aq ethtool.show_offload <devname>
  89922. .ft P
  89923. .fi
  89924. .UNINDENT
  89925. .UNINDENT
  89926. .UNINDENT
  89927. .INDENT 0.0
  89928. .TP
  89929. .B salt.modules.ethtool.show_ring(devname)
  89930. Queries the specified network device for rx/tx ring parameter information
  89931. .sp
  89932. CLI Example:
  89933. .INDENT 7.0
  89934. .INDENT 3.5
  89935. .sp
  89936. .nf
  89937. .ft C
  89938. salt \(aq*\(aq ethtool.show_ring <devname>
  89939. .ft P
  89940. .fi
  89941. .UNINDENT
  89942. .UNINDENT
  89943. .UNINDENT
  89944. .SS salt.modules.gcp_addon module
  89945. .sp
  89946. A route is a rule that specifies how certain packets should be handled by the
  89947. virtual network. Routes are associated with virtual machine instances by tag,
  89948. and the set of routes for a particular VM is called its routing table.
  89949. For each packet leaving a virtual machine, the system searches that machine\(aqs
  89950. routing table for a single best matching route.
  89951. .sp
  89952. New in version 2018.3.0.
  89953. .sp
  89954. This module will create a route to send traffic destined to the Internet
  89955. through your gateway instance.
  89956. .INDENT 0.0
  89957. .TP
  89958. .B codeauthor
  89959. \fIPratik Bandarkar <pratik.bandarkar@gmail.com>\fP
  89960. .TP
  89961. .B maturity
  89962. new
  89963. .TP
  89964. .B depends
  89965. google\-api\-python\-client
  89966. .TP
  89967. .B platform
  89968. Linux
  89969. .UNINDENT
  89970. .INDENT 0.0
  89971. .TP
  89972. .B salt.modules.gcp_addon.route_create(credential_file=None, project_id=None, name=None, dest_range=None, next_hop_instance=None, instance_zone=None, tags=None, network=None, priority=None)
  89973. Create a route to send traffic destined to the Internet through your
  89974. gateway instance
  89975. .INDENT 7.0
  89976. .TP
  89977. .B credential_file
  89978. string
  89979. File location of application default credential. For more information,
  89980. refer: \fI\%https://developers.google.com/identity/protocols/application\-default\-credentials\fP
  89981. .TP
  89982. .B project_id
  89983. string
  89984. Project ID where instance and network resides.
  89985. .TP
  89986. .B name
  89987. string
  89988. name of the route to create
  89989. .TP
  89990. .B next_hop_instance
  89991. string
  89992. the name of an instance that should handle traffic matching this route.
  89993. .TP
  89994. .B instance_zone
  89995. string
  89996. zone where instance("next_hop_instance") resides
  89997. .TP
  89998. .B network
  89999. string
  90000. Specifies the network to which the route will be applied.
  90001. .TP
  90002. .B dest_range
  90003. string
  90004. The destination range of outgoing packets that the route will apply to.
  90005. .TP
  90006. .B tags
  90007. list
  90008. (optional) Identifies the set of instances that this route will apply to.
  90009. .TP
  90010. .B priority
  90011. int
  90012. (optional) Specifies the priority of this route relative to other routes.
  90013. default=1000
  90014. .UNINDENT
  90015. .sp
  90016. CLI Example:
  90017. .INDENT 7.0
  90018. .TP
  90019. .B salt \(aqsalt\-master.novalocal\(aq gcp.route_create
  90020. credential_file=/root/secret_key.json
  90021. project_id=cp100\-170315
  90022. name=derby\-db\-route1
  90023. next_hop_instance=instance\-1
  90024. instance_zone=us\-central1\-a
  90025. network=default
  90026. dest_range=0.0.0.0/0
  90027. tags=[\(aqno\-ip\(aq]
  90028. priority=700
  90029. .UNINDENT
  90030. .sp
  90031. In above example, the instances which are having tag "no\-ip" will route the
  90032. packet to instance "instance\-1"(if packet is intended to other network)
  90033. .UNINDENT
  90034. .SS salt.modules.gentoolkitmod
  90035. .sp
  90036. Support for Gentoolkit
  90037. .INDENT 0.0
  90038. .TP
  90039. .B salt.modules.gentoolkitmod.eclean_dist(destructive=False, package_names=False, size_limit=0, time_limit=0, fetch_restricted=False, exclude_file=u\(aq/etc/eclean/distfiles.exclude\(aq)
  90040. Clean obsolete portage sources
  90041. .INDENT 7.0
  90042. .TP
  90043. .B destructive
  90044. Only keep minimum for reinstallation
  90045. .TP
  90046. .B package_names
  90047. Protect all versions of installed packages. Only meaningful if used
  90048. with destructive=True
  90049. .TP
  90050. .B size_limit <size>
  90051. Don\(aqt delete distfiles bigger than <size>.
  90052. <size> is a size specification: "10M" is "ten megabytes",
  90053. "200K" is "two hundreds kilobytes", etc. Units are: G, M, K and B.
  90054. .TP
  90055. .B time_limit <time>
  90056. Don\(aqt delete distfiles files modified since <time>
  90057. <time> is an amount of time: "1y" is "one year", "2w" is
  90058. "two weeks", etc. Units are: y (years), m (months), w (weeks),
  90059. d (days) and h (hours).
  90060. .TP
  90061. .B fetch_restricted
  90062. Protect fetch\-restricted files. Only meaningful if used with
  90063. destructive=True
  90064. .TP
  90065. .B exclude_file
  90066. Path to exclusion file. Default is /etc/eclean/distfiles.exclude
  90067. This is the same default eclean\-dist uses. Use None if this file
  90068. exists and you want to ignore.
  90069. .UNINDENT
  90070. .sp
  90071. Returns a dict containing the cleaned, saved, and deprecated dists:
  90072. .INDENT 7.0
  90073. .INDENT 3.5
  90074. .sp
  90075. .nf
  90076. .ft C
  90077. {\(aqcleaned\(aq: {<dist file>: <size>},
  90078. \(aqdeprecated\(aq: {<package>: <dist file>},
  90079. \(aqsaved\(aq: {<package>: <dist file>},
  90080. \(aqtotal_cleaned\(aq: <size>}
  90081. .ft P
  90082. .fi
  90083. .UNINDENT
  90084. .UNINDENT
  90085. .sp
  90086. CLI Example:
  90087. .INDENT 7.0
  90088. .INDENT 3.5
  90089. .sp
  90090. .nf
  90091. .ft C
  90092. salt \(aq*\(aq gentoolkit.eclean_dist destructive=True
  90093. .ft P
  90094. .fi
  90095. .UNINDENT
  90096. .UNINDENT
  90097. .UNINDENT
  90098. .INDENT 0.0
  90099. .TP
  90100. .B salt.modules.gentoolkitmod.eclean_pkg(destructive=False, package_names=False, time_limit=0, exclude_file=u\(aq/etc/eclean/packages.exclude\(aq)
  90101. Clean obsolete binary packages
  90102. .INDENT 7.0
  90103. .TP
  90104. .B destructive
  90105. Only keep minimum for reinstallation
  90106. .TP
  90107. .B package_names
  90108. Protect all versions of installed packages. Only meaningful if used
  90109. with destructive=True
  90110. .TP
  90111. .B time_limit <time>
  90112. Don\(aqt delete distfiles files modified since <time>
  90113. <time> is an amount of time: "1y" is "one year", "2w" is
  90114. "two weeks", etc. Units are: y (years), m (months), w (weeks),
  90115. d (days) and h (hours).
  90116. .TP
  90117. .B exclude_file
  90118. Path to exclusion file. Default is /etc/eclean/packages.exclude
  90119. This is the same default eclean\-pkg uses. Use None if this file
  90120. exists and you want to ignore.
  90121. .UNINDENT
  90122. .sp
  90123. Returns a dict containing the cleaned binary packages:
  90124. .INDENT 7.0
  90125. .INDENT 3.5
  90126. .sp
  90127. .nf
  90128. .ft C
  90129. {\(aqcleaned\(aq: {<dist file>: <size>},
  90130. \(aqtotal_cleaned\(aq: <size>}
  90131. .ft P
  90132. .fi
  90133. .UNINDENT
  90134. .UNINDENT
  90135. .sp
  90136. CLI Example:
  90137. .INDENT 7.0
  90138. .INDENT 3.5
  90139. .sp
  90140. .nf
  90141. .ft C
  90142. salt \(aq*\(aq gentoolkit.eclean_pkg destructive=True
  90143. .ft P
  90144. .fi
  90145. .UNINDENT
  90146. .UNINDENT
  90147. .UNINDENT
  90148. .INDENT 0.0
  90149. .TP
  90150. .B salt.modules.gentoolkitmod.glsa_check_list(glsa_list)
  90151. List the status of Gentoo Linux Security Advisories
  90152. .INDENT 7.0
  90153. .TP
  90154. .B glsa_list
  90155. can contain an arbitrary number of GLSA ids, filenames
  90156. containing GLSAs or the special identifiers \(aqall\(aq and \(aqaffected\(aq
  90157. .UNINDENT
  90158. .sp
  90159. Returns a dict containing glsa ids with a description, status, and CVEs:
  90160. .INDENT 7.0
  90161. .INDENT 3.5
  90162. .sp
  90163. .nf
  90164. .ft C
  90165. {<glsa_id>: {\(aqdescription\(aq: <glsa_description>,
  90166. \(aqstatus\(aq: <glsa status>,
  90167. \(aqCVEs\(aq: [<list of CVEs>]}}
  90168. .ft P
  90169. .fi
  90170. .UNINDENT
  90171. .UNINDENT
  90172. .sp
  90173. CLI Example:
  90174. .INDENT 7.0
  90175. .INDENT 3.5
  90176. .sp
  90177. .nf
  90178. .ft C
  90179. salt \(aq*\(aq gentoolkit.glsa_check_list \(aqaffected\(aq
  90180. .ft P
  90181. .fi
  90182. .UNINDENT
  90183. .UNINDENT
  90184. .UNINDENT
  90185. .INDENT 0.0
  90186. .TP
  90187. .B salt.modules.gentoolkitmod.revdep_rebuild(lib=None)
  90188. Fix up broken reverse dependencies
  90189. .INDENT 7.0
  90190. .TP
  90191. .B lib
  90192. Search for reverse dependencies for a particular library rather
  90193. than every library on the system. It can be a full path to a
  90194. library or basic regular expression.
  90195. .UNINDENT
  90196. .sp
  90197. CLI Example:
  90198. .INDENT 7.0
  90199. .INDENT 3.5
  90200. .sp
  90201. .nf
  90202. .ft C
  90203. salt \(aq*\(aq gentoolkit.revdep_rebuild
  90204. .ft P
  90205. .fi
  90206. .UNINDENT
  90207. .UNINDENT
  90208. .UNINDENT
  90209. .SS salt.modules.glance
  90210. .sp
  90211. Module for handling openstack glance calls.
  90212. .INDENT 0.0
  90213. .TP
  90214. .B optdepends
  90215. .INDENT 7.0
  90216. .IP \(bu 2
  90217. glanceclient Python adapter
  90218. .UNINDENT
  90219. .TP
  90220. .B configuration
  90221. This module is not usable until the following are specified
  90222. either in a pillar or in the minion\(aqs config file:
  90223. .INDENT 7.0
  90224. .INDENT 3.5
  90225. .sp
  90226. .nf
  90227. .ft C
  90228. keystone.user: admin
  90229. keystone.password: verybadpass
  90230. keystone.tenant: admin
  90231. keystone.insecure: False #(optional)
  90232. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  90233. .ft P
  90234. .fi
  90235. .UNINDENT
  90236. .UNINDENT
  90237. .sp
  90238. If configuration for multiple openstack accounts is required, they can be
  90239. set up as different configuration profiles:
  90240. For example:
  90241. .INDENT 7.0
  90242. .INDENT 3.5
  90243. .sp
  90244. .nf
  90245. .ft C
  90246. openstack1:
  90247. keystone.user: admin
  90248. keystone.password: verybadpass
  90249. keystone.tenant: admin
  90250. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  90251. openstack2:
  90252. keystone.user: admin
  90253. keystone.password: verybadpass
  90254. keystone.tenant: admin
  90255. keystone.auth_url: \(aqhttp://127.0.0.2:5000/v2.0/\(aq
  90256. .ft P
  90257. .fi
  90258. .UNINDENT
  90259. .UNINDENT
  90260. .sp
  90261. With this configuration in place, any of the glance functions can
  90262. make use of a configuration profile by declaring it explicitly.
  90263. For example:
  90264. .INDENT 7.0
  90265. .INDENT 3.5
  90266. .sp
  90267. .nf
  90268. .ft C
  90269. salt \(aq*\(aq glance.image_list profile=openstack1
  90270. .ft P
  90271. .fi
  90272. .UNINDENT
  90273. .UNINDENT
  90274. .UNINDENT
  90275. .INDENT 0.0
  90276. .TP
  90277. .B salt.modules.glance.image_create(name, location=None, profile=None, visibility=None, container_format=u\(aqbare\(aq, disk_format=u\(aqraw\(aq, protected=None)
  90278. Create an image (glance image\-create)
  90279. .sp
  90280. CLI Example, old format:
  90281. .INDENT 7.0
  90282. .INDENT 3.5
  90283. .sp
  90284. .nf
  90285. .ft C
  90286. salt \(aq*\(aq glance.image_create name=f16\-jeos \e
  90287. disk_format=qcow2 container_format=ovf
  90288. .ft P
  90289. .fi
  90290. .UNINDENT
  90291. .UNINDENT
  90292. .sp
  90293. CLI Example, new format resembling Glance API v2:
  90294. .INDENT 7.0
  90295. .INDENT 3.5
  90296. .sp
  90297. .nf
  90298. .ft C
  90299. salt \(aq*\(aq glance.image_create name=f16\-jeos visibility=public \e
  90300. disk_format=qcow2 container_format=ovf
  90301. .ft P
  90302. .fi
  90303. .UNINDENT
  90304. .UNINDENT
  90305. .sp
  90306. The parameter \(aqvisibility\(aq defaults to \(aqpublic\(aq if not specified.
  90307. .UNINDENT
  90308. .INDENT 0.0
  90309. .TP
  90310. .B salt.modules.glance.image_delete(id=None, name=None, profile=None)
  90311. Delete an image (glance image\-delete)
  90312. .sp
  90313. CLI Examples:
  90314. .INDENT 7.0
  90315. .INDENT 3.5
  90316. .sp
  90317. .nf
  90318. .ft C
  90319. salt \(aq*\(aq glance.image_delete c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90320. salt \(aq*\(aq glance.image_delete id=c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90321. salt \(aq*\(aq glance.image_delete name=f16\-jeos
  90322. .ft P
  90323. .fi
  90324. .UNINDENT
  90325. .UNINDENT
  90326. .UNINDENT
  90327. .INDENT 0.0
  90328. .TP
  90329. .B salt.modules.glance.image_list(id=None, profile=None, name=None)
  90330. Return a list of available images (glance image\-list)
  90331. .sp
  90332. CLI Example:
  90333. .INDENT 7.0
  90334. .INDENT 3.5
  90335. .sp
  90336. .nf
  90337. .ft C
  90338. salt \(aq*\(aq glance.image_list
  90339. .ft P
  90340. .fi
  90341. .UNINDENT
  90342. .UNINDENT
  90343. .UNINDENT
  90344. .INDENT 0.0
  90345. .TP
  90346. .B salt.modules.glance.image_schema(profile=None)
  90347. Returns names and descriptions of the schema "image"\(aqs
  90348. properties for this profile\(aqs instance of glance
  90349. .sp
  90350. CLI Example:
  90351. .INDENT 7.0
  90352. .INDENT 3.5
  90353. .sp
  90354. .nf
  90355. .ft C
  90356. salt \(aq*\(aq glance.image_schema
  90357. .ft P
  90358. .fi
  90359. .UNINDENT
  90360. .UNINDENT
  90361. .UNINDENT
  90362. .INDENT 0.0
  90363. .TP
  90364. .B salt.modules.glance.image_show(id=None, name=None, profile=None)
  90365. Return details about a specific image (glance image\-show)
  90366. .sp
  90367. CLI Example:
  90368. .INDENT 7.0
  90369. .INDENT 3.5
  90370. .sp
  90371. .nf
  90372. .ft C
  90373. salt \(aq*\(aq glance.image_show
  90374. .ft P
  90375. .fi
  90376. .UNINDENT
  90377. .UNINDENT
  90378. .UNINDENT
  90379. .INDENT 0.0
  90380. .TP
  90381. .B salt.modules.glance.image_update(id=None, name=None, profile=None, **kwargs)
  90382. Update properties of given image.
  90383. Known to work for:
  90384. \- min_ram (in MB)
  90385. \- protected (bool)
  90386. \- visibility (\(aqpublic\(aq or \(aqprivate\(aq)
  90387. .sp
  90388. CLI Example:
  90389. .INDENT 7.0
  90390. .INDENT 3.5
  90391. .sp
  90392. .nf
  90393. .ft C
  90394. salt \(aq*\(aq glance.image_update id=c2eb2eb0\-53e1\-4a80\-b990\-8ec887eae7df
  90395. salt \(aq*\(aq glance.image_update name=f16\-jeos
  90396. .ft P
  90397. .fi
  90398. .UNINDENT
  90399. .UNINDENT
  90400. .UNINDENT
  90401. .INDENT 0.0
  90402. .TP
  90403. .B salt.modules.glance.schema_get(name, profile=None)
  90404. .INDENT 7.0
  90405. .TP
  90406. .B Known valid names of schemas are:
  90407. .INDENT 7.0
  90408. .IP \(bu 2
  90409. image
  90410. .IP \(bu 2
  90411. images
  90412. .IP \(bu 2
  90413. member
  90414. .IP \(bu 2
  90415. members
  90416. .UNINDENT
  90417. .UNINDENT
  90418. .sp
  90419. CLI Example:
  90420. .INDENT 7.0
  90421. .INDENT 3.5
  90422. .sp
  90423. .nf
  90424. .ft C
  90425. salt \(aq*\(aq glance.schema_get name=f16\-jeos
  90426. .ft P
  90427. .fi
  90428. .UNINDENT
  90429. .UNINDENT
  90430. .UNINDENT
  90431. .SS salt.modules.glanceng
  90432. .sp
  90433. Glance module for interacting with OpenStack Glance
  90434. .sp
  90435. New in version 2018.3.0.
  90436. .sp
  90437. :depends:shade
  90438. .sp
  90439. Example configuration
  90440. .INDENT 0.0
  90441. .INDENT 3.5
  90442. .sp
  90443. .nf
  90444. .ft C
  90445. glance:
  90446. cloud: default
  90447. .ft P
  90448. .fi
  90449. .UNINDENT
  90450. .UNINDENT
  90451. .INDENT 0.0
  90452. .INDENT 3.5
  90453. .sp
  90454. .nf
  90455. .ft C
  90456. glance:
  90457. auth:
  90458. username: admin
  90459. password: password123
  90460. user_domain_name: mydomain
  90461. project_name: myproject
  90462. project_domain_name: myproject
  90463. auth_url: https://example.org:5000/v3
  90464. identity_api_version: 3
  90465. .ft P
  90466. .fi
  90467. .UNINDENT
  90468. .UNINDENT
  90469. .INDENT 0.0
  90470. .TP
  90471. .B salt.modules.glanceng.compare_changes(obj, **kwargs)
  90472. Compare two dicts returning only keys that exist in the first dict and are
  90473. different in the second one
  90474. .UNINDENT
  90475. .INDENT 0.0
  90476. .TP
  90477. .B salt.modules.glanceng.get_openstack_cloud(auth=None)
  90478. Return an openstack_cloud
  90479. .UNINDENT
  90480. .INDENT 0.0
  90481. .TP
  90482. .B salt.modules.glanceng.get_operator_cloud(auth=None)
  90483. Return an operator_cloud
  90484. .UNINDENT
  90485. .INDENT 0.0
  90486. .TP
  90487. .B salt.modules.glanceng.image_create(auth=None, **kwargs)
  90488. Create an image
  90489. .sp
  90490. CLI Example:
  90491. .INDENT 7.0
  90492. .INDENT 3.5
  90493. .sp
  90494. .nf
  90495. .ft C
  90496. salt \(aq*\(aq glanceng.image_create name=cirros file=cirros.raw disk_format=raw
  90497. salt \(aq*\(aq glanceng.image_create name=cirros file=cirros.raw disk_format=raw hw_scsi_model=virtio\-scsi hw_disk_bus=scsi
  90498. .ft P
  90499. .fi
  90500. .UNINDENT
  90501. .UNINDENT
  90502. .UNINDENT
  90503. .INDENT 0.0
  90504. .TP
  90505. .B salt.modules.glanceng.image_delete(auth=None, **kwargs)
  90506. Delete an image
  90507. .sp
  90508. CLI Example:
  90509. .INDENT 7.0
  90510. .INDENT 3.5
  90511. .sp
  90512. .nf
  90513. .ft C
  90514. salt \(aq*\(aq glanceng.image_delete name=image1
  90515. salt \(aq*\(aq glanceng.image_delete name=0e4febc2a5ab4f2c8f374b054162506d
  90516. .ft P
  90517. .fi
  90518. .UNINDENT
  90519. .UNINDENT
  90520. .UNINDENT
  90521. .INDENT 0.0
  90522. .TP
  90523. .B salt.modules.glanceng.image_get(auth=None, **kwargs)
  90524. Get a single image
  90525. .sp
  90526. CLI Example:
  90527. .INDENT 7.0
  90528. .INDENT 3.5
  90529. .sp
  90530. .nf
  90531. .ft C
  90532. salt \(aq*\(aq glanceng.image_get name=image1
  90533. salt \(aq*\(aq glanceng.image_get name=0e4febc2a5ab4f2c8f374b054162506d
  90534. .ft P
  90535. .fi
  90536. .UNINDENT
  90537. .UNINDENT
  90538. .UNINDENT
  90539. .INDENT 0.0
  90540. .TP
  90541. .B salt.modules.glanceng.image_list(auth=None, **kwargs)
  90542. List images
  90543. .sp
  90544. CLI Example:
  90545. .INDENT 7.0
  90546. .INDENT 3.5
  90547. .sp
  90548. .nf
  90549. .ft C
  90550. salt \(aq*\(aq glanceng.image_list
  90551. salt \(aq*\(aq glanceng.image_list
  90552. .ft P
  90553. .fi
  90554. .UNINDENT
  90555. .UNINDENT
  90556. .UNINDENT
  90557. .INDENT 0.0
  90558. .TP
  90559. .B salt.modules.glanceng.image_search(auth=None, **kwargs)
  90560. Search for images
  90561. .sp
  90562. CLI Example:
  90563. .INDENT 7.0
  90564. .INDENT 3.5
  90565. .sp
  90566. .nf
  90567. .ft C
  90568. salt \(aq*\(aq glanceng.image_search name=image1
  90569. salt \(aq*\(aq glanceng.image_search
  90570. .ft P
  90571. .fi
  90572. .UNINDENT
  90573. .UNINDENT
  90574. .UNINDENT
  90575. .INDENT 0.0
  90576. .TP
  90577. .B salt.modules.glanceng.setup_clouds(auth=None)
  90578. Call functions to create Shade cloud objects in __context__ to take
  90579. advantage of Shade\(aqs in\-memory caching across several states
  90580. .UNINDENT
  90581. .INDENT 0.0
  90582. .TP
  90583. .B salt.modules.glanceng.update_image_properties(auth=None, **kwargs)
  90584. Update properties for an image
  90585. .sp
  90586. CLI Example:
  90587. .INDENT 7.0
  90588. .INDENT 3.5
  90589. .sp
  90590. .nf
  90591. .ft C
  90592. salt \(aq*\(aq glanceng.update_image_properties name=image1 hw_scsi_model=virtio\-scsi hw_disk_bus=scsi
  90593. salt \(aq*\(aq glanceng.update_image_properties name=0e4febc2a5ab4f2c8f374b054162506d min_ram=1024
  90594. .ft P
  90595. .fi
  90596. .UNINDENT
  90597. .UNINDENT
  90598. .UNINDENT
  90599. .SS salt.modules.google_chat
  90600. .sp
  90601. Module for sending messages to google chat.
  90602. .sp
  90603. New in version 2019.2.0.
  90604. .sp
  90605. To use this module you need to configure a webhook in the google chat room
  90606. where you would like the message to be sent, see:
  90607. .INDENT 0.0
  90608. .INDENT 3.5
  90609. \fI\%https://developers.google.com/hangouts/chat/how\-tos/webhooks\fP
  90610. .UNINDENT
  90611. .UNINDENT
  90612. .INDENT 0.0
  90613. .TP
  90614. .B salt.modules.google_chat.send_message(url, message)
  90615. Send a message to the google chat room specified in the webhook url.
  90616. .INDENT 7.0
  90617. .INDENT 3.5
  90618. .sp
  90619. .nf
  90620. .ft C
  90621. salt \(aq*\(aq google_chat.send_message "https://chat.googleapis.com/v1/spaces/example_space/messages?key=example_key" "This is a test message"
  90622. .ft P
  90623. .fi
  90624. .UNINDENT
  90625. .UNINDENT
  90626. .UNINDENT
  90627. .SS salt.modules.grafana4 module
  90628. .sp
  90629. Module for working with the Grafana v4 API
  90630. .sp
  90631. New in version 2017.7.0.
  90632. .INDENT 0.0
  90633. .TP
  90634. .B depends
  90635. requests
  90636. .TP
  90637. .B configuration
  90638. This module requires a configuration profile to be configured
  90639. in the minion config, minion pillar, or master config.
  90640. The module will use the \(aqgrafana\(aq key by default, if defined.
  90641. .sp
  90642. For example:
  90643. .INDENT 7.0
  90644. .INDENT 3.5
  90645. .sp
  90646. .nf
  90647. .ft C
  90648. grafana:
  90649. grafana_url: http://grafana.localhost
  90650. grafana_user: admin
  90651. grafana_password: admin
  90652. grafana_timeout: 3
  90653. .ft P
  90654. .fi
  90655. .UNINDENT
  90656. .UNINDENT
  90657. .UNINDENT
  90658. .INDENT 0.0
  90659. .TP
  90660. .B salt.modules.grafana4.create_datasource(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90661. Create a new datasource in an organisation.
  90662. .INDENT 7.0
  90663. .TP
  90664. .B name
  90665. Name of the data source.
  90666. .TP
  90667. .B type
  90668. Type of the datasource (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  90669. .TP
  90670. .B access
  90671. Use proxy or direct.
  90672. .TP
  90673. .B url
  90674. The URL to the data source API.
  90675. .TP
  90676. .B user
  90677. Optional \- user to authenticate with the data source.
  90678. .TP
  90679. .B password
  90680. Optional \- password to authenticate with the data source.
  90681. .TP
  90682. .B database
  90683. Optional \- database to use with the data source.
  90684. .TP
  90685. .B basicAuth
  90686. Optional \- set to True to use HTTP basic auth to authenticate with the
  90687. data source.
  90688. .TP
  90689. .B basicAuthUser
  90690. Optional \- HTTP basic auth username.
  90691. .TP
  90692. .B basicAuthPassword
  90693. Optional \- HTTP basic auth password.
  90694. .TP
  90695. .B jsonData
  90696. Optional \- additional json data to post (eg. "timeInterval").
  90697. .TP
  90698. .B isDefault
  90699. Optional \- set data source as default.
  90700. .TP
  90701. .B withCredentials
  90702. Optional \- Whether credentials such as cookies or auth headers should
  90703. be sent with cross\-site requests.
  90704. .TP
  90705. .B typeLogoUrl
  90706. Optional \- Logo to use for this datasource.
  90707. .TP
  90708. .B orgname
  90709. Name of the organization in which the data source should be created.
  90710. .TP
  90711. .B profile
  90712. Configuration profile used to connect to the Grafana instance.
  90713. Default is \(aqgrafana\(aq.
  90714. .UNINDENT
  90715. .sp
  90716. CLI Example:
  90717. .INDENT 7.0
  90718. .INDENT 3.5
  90719. .sp
  90720. .nf
  90721. .ft C
  90722. salt \(aq*\(aq grafana4.create_datasource
  90723. .ft P
  90724. .fi
  90725. .UNINDENT
  90726. .UNINDENT
  90727. .UNINDENT
  90728. .INDENT 0.0
  90729. .TP
  90730. .B salt.modules.grafana4.create_org(profile=u\(aqgrafana\(aq, **kwargs)
  90731. Create a new organization.
  90732. .INDENT 7.0
  90733. .TP
  90734. .B name
  90735. Name of the organization.
  90736. .TP
  90737. .B profile
  90738. Configuration profile used to connect to the Grafana instance.
  90739. Default is \(aqgrafana\(aq.
  90740. .UNINDENT
  90741. .sp
  90742. CLI Example:
  90743. .INDENT 7.0
  90744. .INDENT 3.5
  90745. .sp
  90746. .nf
  90747. .ft C
  90748. salt \(aq*\(aq grafana4.create_org <name>
  90749. .ft P
  90750. .fi
  90751. .UNINDENT
  90752. .UNINDENT
  90753. .UNINDENT
  90754. .INDENT 0.0
  90755. .TP
  90756. .B salt.modules.grafana4.create_org_user(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90757. Add user to the organization.
  90758. .INDENT 7.0
  90759. .TP
  90760. .B loginOrEmail
  90761. Login or email of the user.
  90762. .TP
  90763. .B role
  90764. .INDENT 7.0
  90765. .TP
  90766. .B Role of the user for this organization. Should be one of:
  90767. .INDENT 7.0
  90768. .IP \(bu 2
  90769. Admin
  90770. .IP \(bu 2
  90771. Editor
  90772. .IP \(bu 2
  90773. Read Only Editor
  90774. .IP \(bu 2
  90775. Viewer
  90776. .UNINDENT
  90777. .UNINDENT
  90778. .TP
  90779. .B orgname
  90780. Name of the organization in which users are added.
  90781. .TP
  90782. .B profile
  90783. Configuration profile used to connect to the Grafana instance.
  90784. Default is \(aqgrafana\(aq.
  90785. .UNINDENT
  90786. .sp
  90787. CLI Example:
  90788. .INDENT 7.0
  90789. .INDENT 3.5
  90790. .sp
  90791. .nf
  90792. .ft C
  90793. salt \(aq*\(aq grafana4.create_org_user <orgname> loginOrEmail=<loginOrEmail> role=<role>
  90794. .ft P
  90795. .fi
  90796. .UNINDENT
  90797. .UNINDENT
  90798. .UNINDENT
  90799. .INDENT 0.0
  90800. .TP
  90801. .B salt.modules.grafana4.create_update_dashboard(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  90802. Create or update a dashboard.
  90803. .INDENT 7.0
  90804. .TP
  90805. .B dashboard
  90806. A dict that defines the dashboard to create/update.
  90807. .TP
  90808. .B overwrite
  90809. Whether the dashboard should be overwritten if already existing.
  90810. .TP
  90811. .B orgname
  90812. Name of the organization.
  90813. .TP
  90814. .B profile
  90815. Configuration profile used to connect to the Grafana instance.
  90816. Default is \(aqgrafana\(aq.
  90817. .UNINDENT
  90818. .sp
  90819. CLI Example:
  90820. .INDENT 7.0
  90821. .INDENT 3.5
  90822. .sp
  90823. .nf
  90824. .ft C
  90825. salt \(aq*\(aq grafana4.create_update_dashboard dashboard=<dashboard> overwrite=True orgname=<orgname>
  90826. .ft P
  90827. .fi
  90828. .UNINDENT
  90829. .UNINDENT
  90830. .UNINDENT
  90831. .INDENT 0.0
  90832. .TP
  90833. .B salt.modules.grafana4.create_user(profile=u\(aqgrafana\(aq, **kwargs)
  90834. Create a new user.
  90835. .INDENT 7.0
  90836. .TP
  90837. .B login
  90838. Login of the new user.
  90839. .TP
  90840. .B password
  90841. Password of the new user.
  90842. .TP
  90843. .B email
  90844. Email of the new user.
  90845. .TP
  90846. .B name
  90847. Optional \- Full name of the new user.
  90848. .TP
  90849. .B profile
  90850. Configuration profile used to connect to the Grafana instance.
  90851. Default is \(aqgrafana\(aq.
  90852. .UNINDENT
  90853. .sp
  90854. CLI Example:
  90855. .INDENT 7.0
  90856. .INDENT 3.5
  90857. .sp
  90858. .nf
  90859. .ft C
  90860. salt \(aq*\(aq grafana4.create_user login=<login> password=<password> email=<email>
  90861. .ft P
  90862. .fi
  90863. .UNINDENT
  90864. .UNINDENT
  90865. .UNINDENT
  90866. .INDENT 0.0
  90867. .TP
  90868. .B salt.modules.grafana4.delete_dashboard(slug, orgname=None, profile=u\(aqgrafana\(aq)
  90869. Delete a dashboard.
  90870. .INDENT 7.0
  90871. .TP
  90872. .B slug
  90873. Slug (name) of the dashboard.
  90874. .TP
  90875. .B orgname
  90876. Name of the organization.
  90877. .TP
  90878. .B profile
  90879. Configuration profile used to connect to the Grafana instance.
  90880. Default is \(aqgrafana\(aq.
  90881. .UNINDENT
  90882. .sp
  90883. CLI Example:
  90884. .INDENT 7.0
  90885. .INDENT 3.5
  90886. .sp
  90887. .nf
  90888. .ft C
  90889. salt \(aq*\(aq grafana4.delete_dashboard <slug>
  90890. .ft P
  90891. .fi
  90892. .UNINDENT
  90893. .UNINDENT
  90894. .UNINDENT
  90895. .INDENT 0.0
  90896. .TP
  90897. .B salt.modules.grafana4.delete_datasource(datasourceid, orgname=None, profile=u\(aqgrafana\(aq)
  90898. Delete a datasource.
  90899. .INDENT 7.0
  90900. .TP
  90901. .B datasourceid
  90902. Id of the datasource.
  90903. .TP
  90904. .B profile
  90905. Configuration profile used to connect to the Grafana instance.
  90906. Default is \(aqgrafana\(aq.
  90907. .UNINDENT
  90908. .sp
  90909. CLI Example:
  90910. .INDENT 7.0
  90911. .INDENT 3.5
  90912. .sp
  90913. .nf
  90914. .ft C
  90915. salt \(aq*\(aq grafana4.delete_datasource <datasource_id>
  90916. .ft P
  90917. .fi
  90918. .UNINDENT
  90919. .UNINDENT
  90920. .UNINDENT
  90921. .INDENT 0.0
  90922. .TP
  90923. .B salt.modules.grafana4.delete_org(orgid, profile=u\(aqgrafana\(aq)
  90924. Delete an organization.
  90925. .INDENT 7.0
  90926. .TP
  90927. .B orgid
  90928. Id of the organization.
  90929. .TP
  90930. .B profile
  90931. Configuration profile used to connect to the Grafana instance.
  90932. Default is \(aqgrafana\(aq.
  90933. .UNINDENT
  90934. .sp
  90935. CLI Example:
  90936. .INDENT 7.0
  90937. .INDENT 3.5
  90938. .sp
  90939. .nf
  90940. .ft C
  90941. salt \(aq*\(aq grafana4.delete_org <org_id>
  90942. .ft P
  90943. .fi
  90944. .UNINDENT
  90945. .UNINDENT
  90946. .UNINDENT
  90947. .INDENT 0.0
  90948. .TP
  90949. .B salt.modules.grafana4.delete_org_user(userid, orgname=None, profile=u\(aqgrafana\(aq)
  90950. Remove user from the organization.
  90951. .INDENT 7.0
  90952. .TP
  90953. .B userid
  90954. Id of the user.
  90955. .TP
  90956. .B orgname
  90957. Name of the organization in which users are updated.
  90958. .TP
  90959. .B profile
  90960. Configuration profile used to connect to the Grafana instance.
  90961. Default is \(aqgrafana\(aq.
  90962. .UNINDENT
  90963. .sp
  90964. CLI Example:
  90965. .INDENT 7.0
  90966. .INDENT 3.5
  90967. .sp
  90968. .nf
  90969. .ft C
  90970. salt \(aq*\(aq grafana4.delete_org_user <user_id> <orgname>
  90971. .ft P
  90972. .fi
  90973. .UNINDENT
  90974. .UNINDENT
  90975. .UNINDENT
  90976. .INDENT 0.0
  90977. .TP
  90978. .B salt.modules.grafana4.delete_user(userid, profile=u\(aqgrafana\(aq)
  90979. Delete a user.
  90980. .INDENT 7.0
  90981. .TP
  90982. .B userid
  90983. Id of the user.
  90984. .TP
  90985. .B profile
  90986. Configuration profile used to connect to the Grafana instance.
  90987. Default is \(aqgrafana\(aq.
  90988. .UNINDENT
  90989. .sp
  90990. CLI Example:
  90991. .INDENT 7.0
  90992. .INDENT 3.5
  90993. .sp
  90994. .nf
  90995. .ft C
  90996. salt \(aq*\(aq grafana4.delete_user <user_id>
  90997. .ft P
  90998. .fi
  90999. .UNINDENT
  91000. .UNINDENT
  91001. .UNINDENT
  91002. .INDENT 0.0
  91003. .TP
  91004. .B salt.modules.grafana4.delete_user_org(userid, orgid, profile=u\(aqgrafana\(aq)
  91005. Remove a user from an organization.
  91006. .INDENT 7.0
  91007. .TP
  91008. .B userid
  91009. Id of the user.
  91010. .TP
  91011. .B orgid
  91012. Id of the organization.
  91013. .TP
  91014. .B profile
  91015. Configuration profile used to connect to the Grafana instance.
  91016. Default is \(aqgrafana\(aq.
  91017. .UNINDENT
  91018. .sp
  91019. CLI Example:
  91020. .INDENT 7.0
  91021. .INDENT 3.5
  91022. .sp
  91023. .nf
  91024. .ft C
  91025. salt \(aq*\(aq grafana4.delete_user_org <user_id> <org_id>
  91026. .ft P
  91027. .fi
  91028. .UNINDENT
  91029. .UNINDENT
  91030. .UNINDENT
  91031. .INDENT 0.0
  91032. .TP
  91033. .B salt.modules.grafana4.get_dashboard(slug, orgname=None, profile=u\(aqgrafana\(aq)
  91034. Get a dashboard.
  91035. .INDENT 7.0
  91036. .TP
  91037. .B slug
  91038. Slug (name) of the dashboard.
  91039. .TP
  91040. .B orgname
  91041. Name of the organization.
  91042. .TP
  91043. .B profile
  91044. Configuration profile used to connect to the Grafana instance.
  91045. Default is \(aqgrafana\(aq.
  91046. .UNINDENT
  91047. .sp
  91048. CLI Example:
  91049. .INDENT 7.0
  91050. .INDENT 3.5
  91051. .sp
  91052. .nf
  91053. .ft C
  91054. salt \(aq*\(aq grafana4.get_dashboard <slug>
  91055. .ft P
  91056. .fi
  91057. .UNINDENT
  91058. .UNINDENT
  91059. .UNINDENT
  91060. .INDENT 0.0
  91061. .TP
  91062. .B salt.modules.grafana4.get_datasource(name, orgname=None, profile=u\(aqgrafana\(aq)
  91063. Show a single datasource in an organisation.
  91064. .INDENT 7.0
  91065. .TP
  91066. .B name
  91067. Name of the datasource.
  91068. .TP
  91069. .B orgname
  91070. Name of the organization.
  91071. .TP
  91072. .B profile
  91073. Configuration profile used to connect to the Grafana instance.
  91074. Default is \(aqgrafana\(aq.
  91075. .UNINDENT
  91076. .sp
  91077. CLI Example:
  91078. .INDENT 7.0
  91079. .INDENT 3.5
  91080. .sp
  91081. .nf
  91082. .ft C
  91083. salt \(aq*\(aq grafana4.get_datasource <name> <orgname>
  91084. .ft P
  91085. .fi
  91086. .UNINDENT
  91087. .UNINDENT
  91088. .UNINDENT
  91089. .INDENT 0.0
  91090. .TP
  91091. .B salt.modules.grafana4.get_datasources(orgname=None, profile=u\(aqgrafana\(aq)
  91092. List all datasources in an organisation.
  91093. .INDENT 7.0
  91094. .TP
  91095. .B orgname
  91096. Name of the organization.
  91097. .TP
  91098. .B profile
  91099. Configuration profile used to connect to the Grafana instance.
  91100. Default is \(aqgrafana\(aq.
  91101. .UNINDENT
  91102. .sp
  91103. CLI Example:
  91104. .INDENT 7.0
  91105. .INDENT 3.5
  91106. .sp
  91107. .nf
  91108. .ft C
  91109. salt \(aq*\(aq grafana4.get_datasources <orgname>
  91110. .ft P
  91111. .fi
  91112. .UNINDENT
  91113. .UNINDENT
  91114. .UNINDENT
  91115. .INDENT 0.0
  91116. .TP
  91117. .B salt.modules.grafana4.get_org(name, profile=u\(aqgrafana\(aq)
  91118. Show a single organization.
  91119. .INDENT 7.0
  91120. .TP
  91121. .B name
  91122. Name of the organization.
  91123. .TP
  91124. .B profile
  91125. Configuration profile used to connect to the Grafana instance.
  91126. Default is \(aqgrafana\(aq.
  91127. .UNINDENT
  91128. .sp
  91129. CLI Example:
  91130. .INDENT 7.0
  91131. .INDENT 3.5
  91132. .sp
  91133. .nf
  91134. .ft C
  91135. salt \(aq*\(aq grafana4.get_org <name>
  91136. .ft P
  91137. .fi
  91138. .UNINDENT
  91139. .UNINDENT
  91140. .UNINDENT
  91141. .INDENT 0.0
  91142. .TP
  91143. .B salt.modules.grafana4.get_org_address(orgname=None, profile=u\(aqgrafana\(aq)
  91144. Get the organization address.
  91145. .INDENT 7.0
  91146. .TP
  91147. .B orgname
  91148. Name of the organization in which users are updated.
  91149. .TP
  91150. .B profile
  91151. Configuration profile used to connect to the Grafana instance.
  91152. Default is \(aqgrafana\(aq.
  91153. .UNINDENT
  91154. .sp
  91155. CLI Example:
  91156. .INDENT 7.0
  91157. .INDENT 3.5
  91158. .sp
  91159. .nf
  91160. .ft C
  91161. salt \(aq*\(aq grafana4.get_org_address <orgname>
  91162. .ft P
  91163. .fi
  91164. .UNINDENT
  91165. .UNINDENT
  91166. .UNINDENT
  91167. .INDENT 0.0
  91168. .TP
  91169. .B salt.modules.grafana4.get_org_prefs(orgname=None, profile=u\(aqgrafana\(aq)
  91170. Get the organization preferences.
  91171. .INDENT 7.0
  91172. .TP
  91173. .B orgname
  91174. Name of the organization in which users are updated.
  91175. .TP
  91176. .B profile
  91177. Configuration profile used to connect to the Grafana instance.
  91178. Default is \(aqgrafana\(aq.
  91179. .UNINDENT
  91180. .sp
  91181. CLI Example:
  91182. .INDENT 7.0
  91183. .INDENT 3.5
  91184. .sp
  91185. .nf
  91186. .ft C
  91187. salt \(aq*\(aq grafana4.get_org_prefs <orgname>
  91188. .ft P
  91189. .fi
  91190. .UNINDENT
  91191. .UNINDENT
  91192. .UNINDENT
  91193. .INDENT 0.0
  91194. .TP
  91195. .B salt.modules.grafana4.get_org_users(orgname=None, profile=u\(aqgrafana\(aq)
  91196. Get the list of users that belong to the organization.
  91197. .INDENT 7.0
  91198. .TP
  91199. .B orgname
  91200. Name of the organization.
  91201. .TP
  91202. .B profile
  91203. Configuration profile used to connect to the Grafana instance.
  91204. Default is \(aqgrafana\(aq.
  91205. .UNINDENT
  91206. .sp
  91207. CLI Example:
  91208. .INDENT 7.0
  91209. .INDENT 3.5
  91210. .sp
  91211. .nf
  91212. .ft C
  91213. salt \(aq*\(aq grafana4.get_org_users <orgname>
  91214. .ft P
  91215. .fi
  91216. .UNINDENT
  91217. .UNINDENT
  91218. .UNINDENT
  91219. .INDENT 0.0
  91220. .TP
  91221. .B salt.modules.grafana4.get_orgs(profile=u\(aqgrafana\(aq)
  91222. List all organizations.
  91223. .INDENT 7.0
  91224. .TP
  91225. .B profile
  91226. Configuration profile used to connect to the Grafana instance.
  91227. Default is \(aqgrafana\(aq.
  91228. .UNINDENT
  91229. .sp
  91230. CLI Example:
  91231. .INDENT 7.0
  91232. .INDENT 3.5
  91233. .sp
  91234. .nf
  91235. .ft C
  91236. salt \(aq*\(aq grafana4.get_orgs
  91237. .ft P
  91238. .fi
  91239. .UNINDENT
  91240. .UNINDENT
  91241. .UNINDENT
  91242. .INDENT 0.0
  91243. .TP
  91244. .B salt.modules.grafana4.get_user(login, profile=u\(aqgrafana\(aq)
  91245. Show a single user.
  91246. .INDENT 7.0
  91247. .TP
  91248. .B login
  91249. Login of the user.
  91250. .TP
  91251. .B profile
  91252. Configuration profile used to connect to the Grafana instance.
  91253. Default is \(aqgrafana\(aq.
  91254. .UNINDENT
  91255. .sp
  91256. CLI Example:
  91257. .INDENT 7.0
  91258. .INDENT 3.5
  91259. .sp
  91260. .nf
  91261. .ft C
  91262. salt \(aq*\(aq grafana4.get_user <login>
  91263. .ft P
  91264. .fi
  91265. .UNINDENT
  91266. .UNINDENT
  91267. .UNINDENT
  91268. .INDENT 0.0
  91269. .TP
  91270. .B salt.modules.grafana4.get_user_data(userid, profile=u\(aqgrafana\(aq)
  91271. Get user data.
  91272. .INDENT 7.0
  91273. .TP
  91274. .B userid
  91275. Id of the user.
  91276. .TP
  91277. .B profile
  91278. Configuration profile used to connect to the Grafana instance.
  91279. Default is \(aqgrafana\(aq.
  91280. .UNINDENT
  91281. .sp
  91282. CLI Example:
  91283. .INDENT 7.0
  91284. .INDENT 3.5
  91285. .sp
  91286. .nf
  91287. .ft C
  91288. salt \(aq*\(aq grafana4.get_user_data <user_id>
  91289. .ft P
  91290. .fi
  91291. .UNINDENT
  91292. .UNINDENT
  91293. .UNINDENT
  91294. .INDENT 0.0
  91295. .TP
  91296. .B salt.modules.grafana4.get_user_orgs(userid, profile=u\(aqgrafana\(aq)
  91297. Get the list of organisations a user belong to.
  91298. .INDENT 7.0
  91299. .TP
  91300. .B userid
  91301. Id of the user.
  91302. .TP
  91303. .B profile
  91304. Configuration profile used to connect to the Grafana instance.
  91305. Default is \(aqgrafana\(aq.
  91306. .UNINDENT
  91307. .sp
  91308. CLI Example:
  91309. .INDENT 7.0
  91310. .INDENT 3.5
  91311. .sp
  91312. .nf
  91313. .ft C
  91314. salt \(aq*\(aq grafana4.get_user_orgs <user_id>
  91315. .ft P
  91316. .fi
  91317. .UNINDENT
  91318. .UNINDENT
  91319. .UNINDENT
  91320. .INDENT 0.0
  91321. .TP
  91322. .B salt.modules.grafana4.get_users(profile=u\(aqgrafana\(aq)
  91323. List all users.
  91324. .INDENT 7.0
  91325. .TP
  91326. .B profile
  91327. Configuration profile used to connect to the Grafana instance.
  91328. Default is \(aqgrafana\(aq.
  91329. .UNINDENT
  91330. .sp
  91331. CLI Example:
  91332. .INDENT 7.0
  91333. .INDENT 3.5
  91334. .sp
  91335. .nf
  91336. .ft C
  91337. salt \(aq*\(aq grafana4.get_users
  91338. .ft P
  91339. .fi
  91340. .UNINDENT
  91341. .UNINDENT
  91342. .UNINDENT
  91343. .INDENT 0.0
  91344. .TP
  91345. .B salt.modules.grafana4.switch_org(orgname, profile=u\(aqgrafana\(aq)
  91346. Switch the current organization.
  91347. .INDENT 7.0
  91348. .TP
  91349. .B name
  91350. Name of the organization to switch to.
  91351. .TP
  91352. .B profile
  91353. Configuration profile used to connect to the Grafana instance.
  91354. Default is \(aqgrafana\(aq.
  91355. .UNINDENT
  91356. .sp
  91357. CLI Example:
  91358. .INDENT 7.0
  91359. .INDENT 3.5
  91360. .sp
  91361. .nf
  91362. .ft C
  91363. salt \(aq*\(aq grafana4.switch_org <name>
  91364. .ft P
  91365. .fi
  91366. .UNINDENT
  91367. .UNINDENT
  91368. .UNINDENT
  91369. .INDENT 0.0
  91370. .TP
  91371. .B salt.modules.grafana4.update_datasource(datasourceid, orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91372. Update a datasource.
  91373. .INDENT 7.0
  91374. .TP
  91375. .B datasourceid
  91376. Id of the datasource.
  91377. .TP
  91378. .B name
  91379. Name of the data source.
  91380. .TP
  91381. .B type
  91382. Type of the datasource (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  91383. .TP
  91384. .B access
  91385. Use proxy or direct.
  91386. .TP
  91387. .B url
  91388. The URL to the data source API.
  91389. .TP
  91390. .B user
  91391. Optional \- user to authenticate with the data source.
  91392. .TP
  91393. .B password
  91394. Optional \- password to authenticate with the data source.
  91395. .TP
  91396. .B database
  91397. Optional \- database to use with the data source.
  91398. .TP
  91399. .B basicAuth
  91400. Optional \- set to True to use HTTP basic auth to authenticate with the
  91401. data source.
  91402. .TP
  91403. .B basicAuthUser
  91404. Optional \- HTTP basic auth username.
  91405. .TP
  91406. .B basicAuthPassword
  91407. Optional \- HTTP basic auth password.
  91408. .TP
  91409. .B jsonData
  91410. Optional \- additional json data to post (eg. "timeInterval").
  91411. .TP
  91412. .B isDefault
  91413. Optional \- set data source as default.
  91414. .TP
  91415. .B withCredentials
  91416. Optional \- Whether credentials such as cookies or auth headers should
  91417. be sent with cross\-site requests.
  91418. .TP
  91419. .B typeLogoUrl
  91420. Optional \- Logo to use for this datasource.
  91421. .TP
  91422. .B profile
  91423. Configuration profile used to connect to the Grafana instance.
  91424. Default is \(aqgrafana\(aq.
  91425. .UNINDENT
  91426. .sp
  91427. CLI Example:
  91428. .INDENT 7.0
  91429. .INDENT 3.5
  91430. .sp
  91431. .nf
  91432. .ft C
  91433. salt \(aq*\(aq grafana4.update_datasource <datasourceid>
  91434. .ft P
  91435. .fi
  91436. .UNINDENT
  91437. .UNINDENT
  91438. .UNINDENT
  91439. .INDENT 0.0
  91440. .TP
  91441. .B salt.modules.grafana4.update_org(orgid, profile=u\(aqgrafana\(aq, **kwargs)
  91442. Update an existing organization.
  91443. .INDENT 7.0
  91444. .TP
  91445. .B orgid
  91446. Id of the organization.
  91447. .TP
  91448. .B name
  91449. New name of the organization.
  91450. .TP
  91451. .B profile
  91452. Configuration profile used to connect to the Grafana instance.
  91453. Default is \(aqgrafana\(aq.
  91454. .UNINDENT
  91455. .sp
  91456. CLI Example:
  91457. .INDENT 7.0
  91458. .INDENT 3.5
  91459. .sp
  91460. .nf
  91461. .ft C
  91462. salt \(aq*\(aq grafana4.update_org <org_id> name=<name>
  91463. .ft P
  91464. .fi
  91465. .UNINDENT
  91466. .UNINDENT
  91467. .UNINDENT
  91468. .INDENT 0.0
  91469. .TP
  91470. .B salt.modules.grafana4.update_org_address(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91471. Update the organization address.
  91472. .INDENT 7.0
  91473. .TP
  91474. .B orgname
  91475. Name of the organization in which users are updated.
  91476. .TP
  91477. .B address1
  91478. Optional \- address1 of the org.
  91479. .TP
  91480. .B address2
  91481. Optional \- address2 of the org.
  91482. .TP
  91483. .B city
  91484. Optional \- city of the org.
  91485. .TP
  91486. .B zip_code
  91487. Optional \- zip_code of the org.
  91488. .TP
  91489. .B state
  91490. Optional \- state of the org.
  91491. .TP
  91492. .B country
  91493. Optional \- country of the org.
  91494. .TP
  91495. .B profile
  91496. Configuration profile used to connect to the Grafana instance.
  91497. Default is \(aqgrafana\(aq.
  91498. .UNINDENT
  91499. .sp
  91500. CLI Example:
  91501. .INDENT 7.0
  91502. .INDENT 3.5
  91503. .sp
  91504. .nf
  91505. .ft C
  91506. salt \(aq*\(aq grafana4.update_org_address <orgname> country=<country>
  91507. .ft P
  91508. .fi
  91509. .UNINDENT
  91510. .UNINDENT
  91511. .UNINDENT
  91512. .INDENT 0.0
  91513. .TP
  91514. .B salt.modules.grafana4.update_org_prefs(orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91515. Update the organization preferences.
  91516. .INDENT 7.0
  91517. .TP
  91518. .B orgname
  91519. Name of the organization in which users are updated.
  91520. .TP
  91521. .B theme
  91522. Selected theme for the org.
  91523. .TP
  91524. .B homeDashboardId
  91525. Home dashboard for the org.
  91526. .TP
  91527. .B timezone
  91528. Timezone for the org (one of: "browser", "utc", or "").
  91529. .TP
  91530. .B profile
  91531. Configuration profile used to connect to the Grafana instance.
  91532. Default is \(aqgrafana\(aq.
  91533. .UNINDENT
  91534. .sp
  91535. CLI Example:
  91536. .INDENT 7.0
  91537. .INDENT 3.5
  91538. .sp
  91539. .nf
  91540. .ft C
  91541. salt \(aq*\(aq grafana4.update_org_prefs <orgname> theme=<theme> timezone=<timezone>
  91542. .ft P
  91543. .fi
  91544. .UNINDENT
  91545. .UNINDENT
  91546. .UNINDENT
  91547. .INDENT 0.0
  91548. .TP
  91549. .B salt.modules.grafana4.update_org_user(userid, orgname=None, profile=u\(aqgrafana\(aq, **kwargs)
  91550. Update user role in the organization.
  91551. .INDENT 7.0
  91552. .TP
  91553. .B userid
  91554. Id of the user.
  91555. .TP
  91556. .B loginOrEmail
  91557. Login or email of the user.
  91558. .TP
  91559. .B role
  91560. .INDENT 7.0
  91561. .TP
  91562. .B Role of the user for this organization. Should be one of:
  91563. .INDENT 7.0
  91564. .IP \(bu 2
  91565. Admin
  91566. .IP \(bu 2
  91567. Editor
  91568. .IP \(bu 2
  91569. Read Only Editor
  91570. .IP \(bu 2
  91571. Viewer
  91572. .UNINDENT
  91573. .UNINDENT
  91574. .TP
  91575. .B orgname
  91576. Name of the organization in which users are updated.
  91577. .TP
  91578. .B profile
  91579. Configuration profile used to connect to the Grafana instance.
  91580. Default is \(aqgrafana\(aq.
  91581. .UNINDENT
  91582. .sp
  91583. CLI Example:
  91584. .INDENT 7.0
  91585. .INDENT 3.5
  91586. .sp
  91587. .nf
  91588. .ft C
  91589. salt \(aq*\(aq grafana4.update_org_user <user_id> <orgname> loginOrEmail=<loginOrEmail> role=<role>
  91590. .ft P
  91591. .fi
  91592. .UNINDENT
  91593. .UNINDENT
  91594. .UNINDENT
  91595. .INDENT 0.0
  91596. .TP
  91597. .B salt.modules.grafana4.update_user(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91598. Update an existing user.
  91599. .INDENT 7.0
  91600. .TP
  91601. .B userid
  91602. Id of the user.
  91603. .TP
  91604. .B login
  91605. Optional \- Login of the user.
  91606. .TP
  91607. .B email
  91608. Optional \- Email of the user.
  91609. .TP
  91610. .B name
  91611. Optional \- Full name of the user.
  91612. .TP
  91613. .B profile
  91614. Configuration profile used to connect to the Grafana instance.
  91615. Default is \(aqgrafana\(aq.
  91616. .UNINDENT
  91617. .sp
  91618. CLI Example:
  91619. .INDENT 7.0
  91620. .INDENT 3.5
  91621. .sp
  91622. .nf
  91623. .ft C
  91624. salt \(aq*\(aq grafana4.update_user <user_id> login=<login> email=<email>
  91625. .ft P
  91626. .fi
  91627. .UNINDENT
  91628. .UNINDENT
  91629. .UNINDENT
  91630. .INDENT 0.0
  91631. .TP
  91632. .B salt.modules.grafana4.update_user_password(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91633. Update a user password.
  91634. .INDENT 7.0
  91635. .TP
  91636. .B userid
  91637. Id of the user.
  91638. .TP
  91639. .B password
  91640. New password of the user.
  91641. .TP
  91642. .B profile
  91643. Configuration profile used to connect to the Grafana instance.
  91644. Default is \(aqgrafana\(aq.
  91645. .UNINDENT
  91646. .sp
  91647. CLI Example:
  91648. .INDENT 7.0
  91649. .INDENT 3.5
  91650. .sp
  91651. .nf
  91652. .ft C
  91653. salt \(aq*\(aq grafana4.update_user_password <user_id> password=<password>
  91654. .ft P
  91655. .fi
  91656. .UNINDENT
  91657. .UNINDENT
  91658. .UNINDENT
  91659. .INDENT 0.0
  91660. .TP
  91661. .B salt.modules.grafana4.update_user_permissions(userid, profile=u\(aqgrafana\(aq, **kwargs)
  91662. Update a user password.
  91663. .INDENT 7.0
  91664. .TP
  91665. .B userid
  91666. Id of the user.
  91667. .TP
  91668. .B isGrafanaAdmin
  91669. Whether user is a Grafana admin.
  91670. .TP
  91671. .B profile
  91672. Configuration profile used to connect to the Grafana instance.
  91673. Default is \(aqgrafana\(aq.
  91674. .UNINDENT
  91675. .sp
  91676. CLI Example:
  91677. .INDENT 7.0
  91678. .INDENT 3.5
  91679. .sp
  91680. .nf
  91681. .ft C
  91682. salt \(aq*\(aq grafana4.update_user_permissions <user_id> isGrafanaAdmin=<true|false>
  91683. .ft P
  91684. .fi
  91685. .UNINDENT
  91686. .UNINDENT
  91687. .UNINDENT
  91688. .SS salt.modules.haproxyconn
  91689. .sp
  91690. Support for haproxy
  91691. .sp
  91692. New in version 2014.7.0.
  91693. .INDENT 0.0
  91694. .TP
  91695. .B salt.modules.haproxyconn.disable_server(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91696. Disable server in haproxy.
  91697. .INDENT 7.0
  91698. .TP
  91699. .B name
  91700. Server to disable
  91701. .TP
  91702. .B backend
  91703. haproxy backend, or all backends if "*" is supplied
  91704. .TP
  91705. .B socket
  91706. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91707. .UNINDENT
  91708. .sp
  91709. CLI Example:
  91710. .INDENT 7.0
  91711. .INDENT 3.5
  91712. .sp
  91713. .nf
  91714. .ft C
  91715. salt \(aq*\(aq haproxy.disable_server db1.example.com mysql
  91716. .ft P
  91717. .fi
  91718. .UNINDENT
  91719. .UNINDENT
  91720. .UNINDENT
  91721. .INDENT 0.0
  91722. .TP
  91723. .B salt.modules.haproxyconn.enable_server(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91724. Enable Server in haproxy
  91725. .INDENT 7.0
  91726. .TP
  91727. .B name
  91728. Server to enable
  91729. .TP
  91730. .B backend
  91731. haproxy backend, or all backends if "*" is supplied
  91732. .TP
  91733. .B socket
  91734. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91735. .UNINDENT
  91736. .sp
  91737. CLI Example:
  91738. .INDENT 7.0
  91739. .INDENT 3.5
  91740. .sp
  91741. .nf
  91742. .ft C
  91743. salt \(aq*\(aq haproxy.enable_server web1.example.com www
  91744. .ft P
  91745. .fi
  91746. .UNINDENT
  91747. .UNINDENT
  91748. .UNINDENT
  91749. .INDENT 0.0
  91750. .TP
  91751. .B salt.modules.haproxyconn.get_backend(backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91752. Receive information about a specific backend.
  91753. .INDENT 7.0
  91754. .TP
  91755. .B backend
  91756. haproxy backend
  91757. .TP
  91758. .B socket
  91759. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91760. .UNINDENT
  91761. .sp
  91762. CLI Example:
  91763. .INDENT 7.0
  91764. .INDENT 3.5
  91765. .sp
  91766. .nf
  91767. .ft C
  91768. salt \(aq*\(aq haproxy.get_backend mysql
  91769. .ft P
  91770. .fi
  91771. .UNINDENT
  91772. .UNINDENT
  91773. .UNINDENT
  91774. .INDENT 0.0
  91775. .TP
  91776. .B salt.modules.haproxyconn.get_sessions(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91777. New in version 2016.11.0.
  91778. .sp
  91779. Get number of current sessions on server in backend (scur)
  91780. .INDENT 7.0
  91781. .TP
  91782. .B name
  91783. Server name
  91784. .TP
  91785. .B backend
  91786. haproxy backend
  91787. .TP
  91788. .B socket
  91789. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91790. .UNINDENT
  91791. .sp
  91792. CLI Example:
  91793. .INDENT 7.0
  91794. .INDENT 3.5
  91795. .sp
  91796. .nf
  91797. .ft C
  91798. salt \(aq*\(aq haproxy.get_sessions web1.example.com www
  91799. .ft P
  91800. .fi
  91801. .UNINDENT
  91802. .UNINDENT
  91803. .UNINDENT
  91804. .INDENT 0.0
  91805. .TP
  91806. .B salt.modules.haproxyconn.get_weight(name, backend, socket=u\(aq/var/run/haproxy.sock\(aq)
  91807. Get server weight
  91808. .INDENT 7.0
  91809. .TP
  91810. .B name
  91811. Server name
  91812. .TP
  91813. .B backend
  91814. haproxy backend
  91815. .TP
  91816. .B socket
  91817. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91818. .UNINDENT
  91819. .sp
  91820. CLI Example:
  91821. .INDENT 7.0
  91822. .INDENT 3.5
  91823. .sp
  91824. .nf
  91825. .ft C
  91826. salt \(aq*\(aq haproxy.get_weight web1.example.com www
  91827. .ft P
  91828. .fi
  91829. .UNINDENT
  91830. .UNINDENT
  91831. .UNINDENT
  91832. .INDENT 0.0
  91833. .TP
  91834. .B salt.modules.haproxyconn.list_backends(servers=True, socket=u\(aq/var/run/haproxy.sock\(aq)
  91835. List HaProxy Backends
  91836. .INDENT 7.0
  91837. .TP
  91838. .B socket
  91839. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91840. .TP
  91841. .B servers
  91842. list backends with servers
  91843. .UNINDENT
  91844. .sp
  91845. CLI Example:
  91846. .INDENT 7.0
  91847. .INDENT 3.5
  91848. .sp
  91849. .nf
  91850. .ft C
  91851. salt \(aq*\(aq haproxy.list_backends
  91852. .ft P
  91853. .fi
  91854. .UNINDENT
  91855. .UNINDENT
  91856. .UNINDENT
  91857. .INDENT 0.0
  91858. .TP
  91859. .B salt.modules.haproxyconn.list_frontends(socket=u\(aq/var/run/haproxy.sock\(aq)
  91860. List HaProxy frontends
  91861. .INDENT 7.0
  91862. .TP
  91863. .B socket
  91864. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91865. .UNINDENT
  91866. .sp
  91867. CLI Example:
  91868. .INDENT 7.0
  91869. .INDENT 3.5
  91870. .sp
  91871. .nf
  91872. .ft C
  91873. salt \(aq*\(aq haproxy.list_frontends
  91874. .ft P
  91875. .fi
  91876. .UNINDENT
  91877. .UNINDENT
  91878. .UNINDENT
  91879. .INDENT 0.0
  91880. .TP
  91881. .B salt.modules.haproxyconn.list_servers(backend, socket=u\(aq/var/run/haproxy.sock\(aq, objectify=False)
  91882. List servers in haproxy backend.
  91883. .INDENT 7.0
  91884. .TP
  91885. .B backend
  91886. haproxy backend
  91887. .TP
  91888. .B socket
  91889. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91890. .UNINDENT
  91891. .sp
  91892. CLI Example:
  91893. .INDENT 7.0
  91894. .INDENT 3.5
  91895. .sp
  91896. .nf
  91897. .ft C
  91898. salt \(aq*\(aq haproxy.list_servers mysql
  91899. .ft P
  91900. .fi
  91901. .UNINDENT
  91902. .UNINDENT
  91903. .UNINDENT
  91904. .INDENT 0.0
  91905. .TP
  91906. .B salt.modules.haproxyconn.set_state(name, backend, state, socket=u\(aq/var/run/haproxy.sock\(aq)
  91907. Force a server\(aqs administrative state to a new state. This can be useful to
  91908. disable load balancing and/or any traffic to a server. Setting the state to
  91909. "ready" puts the server in normal mode, and the command is the equivalent of
  91910. the "enable server" command. Setting the state to "maint" disables any traffic
  91911. to the server as well as any health checks. This is the equivalent of the
  91912. "disable server" command. Setting the mode to "drain" only removes the server
  91913. from load balancing but still allows it to be checked and to accept new
  91914. persistent connections. Changes are propagated to tracking servers if any.
  91915. .INDENT 7.0
  91916. .TP
  91917. .B name
  91918. Server name
  91919. .TP
  91920. .B backend
  91921. haproxy backend
  91922. .TP
  91923. .B state
  91924. A string of the state to set. Must be \(aqready\(aq, \(aqdrain\(aq, or \(aqmaint\(aq
  91925. .TP
  91926. .B socket
  91927. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91928. .UNINDENT
  91929. .sp
  91930. CLI Example:
  91931. .INDENT 7.0
  91932. .INDENT 3.5
  91933. .sp
  91934. .nf
  91935. .ft C
  91936. salt \(aq*\(aq haproxy.set_state my_proxy_server my_backend ready
  91937. .ft P
  91938. .fi
  91939. .UNINDENT
  91940. .UNINDENT
  91941. .UNINDENT
  91942. .INDENT 0.0
  91943. .TP
  91944. .B salt.modules.haproxyconn.set_weight(name, backend, weight=0, socket=u\(aq/var/run/haproxy.sock\(aq)
  91945. Set server weight
  91946. .INDENT 7.0
  91947. .TP
  91948. .B name
  91949. Server name
  91950. .TP
  91951. .B backend
  91952. haproxy backend
  91953. .TP
  91954. .B weight
  91955. Server Weight
  91956. .TP
  91957. .B socket
  91958. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91959. .UNINDENT
  91960. .sp
  91961. CLI Example:
  91962. .INDENT 7.0
  91963. .INDENT 3.5
  91964. .sp
  91965. .nf
  91966. .ft C
  91967. salt \(aq*\(aq haproxy.set_weight web1.example.com www 13
  91968. .ft P
  91969. .fi
  91970. .UNINDENT
  91971. .UNINDENT
  91972. .UNINDENT
  91973. .INDENT 0.0
  91974. .TP
  91975. .B salt.modules.haproxyconn.show_backends(socket=u\(aq/var/run/haproxy.sock\(aq)
  91976. Show HaProxy Backends
  91977. .INDENT 7.0
  91978. .TP
  91979. .B socket
  91980. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  91981. .UNINDENT
  91982. .sp
  91983. CLI Example:
  91984. .INDENT 7.0
  91985. .INDENT 3.5
  91986. .sp
  91987. .nf
  91988. .ft C
  91989. salt \(aq*\(aq haproxy.show_backends
  91990. .ft P
  91991. .fi
  91992. .UNINDENT
  91993. .UNINDENT
  91994. .UNINDENT
  91995. .INDENT 0.0
  91996. .TP
  91997. .B salt.modules.haproxyconn.show_frontends(socket=u\(aq/var/run/haproxy.sock\(aq)
  91998. Show HaProxy frontends
  91999. .INDENT 7.0
  92000. .TP
  92001. .B socket
  92002. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92003. .UNINDENT
  92004. .sp
  92005. CLI Example:
  92006. .INDENT 7.0
  92007. .INDENT 3.5
  92008. .sp
  92009. .nf
  92010. .ft C
  92011. salt \(aq*\(aq haproxy.show_frontends
  92012. .ft P
  92013. .fi
  92014. .UNINDENT
  92015. .UNINDENT
  92016. .UNINDENT
  92017. .INDENT 0.0
  92018. .TP
  92019. .B salt.modules.haproxyconn.wait_state(backend, server, value=u\(aqup\(aq, timeout=300, socket=u\(aq/var/run/haproxy.sock\(aq)
  92020. Wait for a specific server state
  92021. .INDENT 7.0
  92022. .TP
  92023. .B backend
  92024. haproxy backend
  92025. .TP
  92026. .B server
  92027. targeted server
  92028. .TP
  92029. .B value
  92030. state value
  92031. .TP
  92032. .B timeout
  92033. timeout before giving up state value, default 5 min
  92034. .TP
  92035. .B socket
  92036. haproxy stats socket, default \fB/var/run/haproxy.sock\fP
  92037. .UNINDENT
  92038. .sp
  92039. CLI Example:
  92040. .INDENT 7.0
  92041. .INDENT 3.5
  92042. .sp
  92043. .nf
  92044. .ft C
  92045. salt \(aq*\(aq haproxy.wait_state mysql server01 up 60
  92046. .ft P
  92047. .fi
  92048. .UNINDENT
  92049. .UNINDENT
  92050. .UNINDENT
  92051. .SS salt.modules.influxdb08mod
  92052. .sp
  92053. InfluxDB \- A distributed time series database
  92054. .sp
  92055. Module to provide InfluxDB compatibility to Salt (compatible with InfluxDB
  92056. version 0.5\-0.8)
  92057. .sp
  92058. New in version 2014.7.0.
  92059. .INDENT 0.0
  92060. .TP
  92061. .B depends
  92062. .INDENT 7.0
  92063. .IP \(bu 2
  92064. influxdb Python module (>= 1.0.0)
  92065. .UNINDENT
  92066. .TP
  92067. .B configuration
  92068. This module accepts connection configuration details either as
  92069. parameters or as configuration settings in /etc/salt/minion on the relevant
  92070. minions:
  92071. .INDENT 7.0
  92072. .INDENT 3.5
  92073. .sp
  92074. .nf
  92075. .ft C
  92076. influxdb08.host: \(aqlocalhost\(aq
  92077. influxdb08.port: 8086
  92078. influxdb08.user: \(aqroot\(aq
  92079. influxdb08.password: \(aqroot\(aq
  92080. .ft P
  92081. .fi
  92082. .UNINDENT
  92083. .UNINDENT
  92084. .sp
  92085. This data can also be passed into pillar. Options passed into opts will
  92086. overwrite options passed into pillar.
  92087. .UNINDENT
  92088. .INDENT 0.0
  92089. .TP
  92090. .B salt.modules.influxdb08mod.db_create(name, user=None, password=None, host=None, port=None)
  92091. Create a database
  92092. .INDENT 7.0
  92093. .TP
  92094. .B name
  92095. Database name to create
  92096. .TP
  92097. .B user
  92098. The user to connect as
  92099. .TP
  92100. .B password
  92101. The password of the user
  92102. .TP
  92103. .B host
  92104. The host to connect to
  92105. .TP
  92106. .B port
  92107. The port to connect to
  92108. .UNINDENT
  92109. .sp
  92110. CLI Example:
  92111. .INDENT 7.0
  92112. .INDENT 3.5
  92113. .sp
  92114. .nf
  92115. .ft C
  92116. salt \(aq*\(aq influxdb08.db_create <name>
  92117. salt \(aq*\(aq influxdb08.db_create <name> <user> <password> <host> <port>
  92118. .ft P
  92119. .fi
  92120. .UNINDENT
  92121. .UNINDENT
  92122. .UNINDENT
  92123. .INDENT 0.0
  92124. .TP
  92125. .B salt.modules.influxdb08mod.db_exists(name, user=None, password=None, host=None, port=None)
  92126. Checks if a database exists in Influxdb
  92127. .INDENT 7.0
  92128. .TP
  92129. .B name
  92130. Database name to create
  92131. .TP
  92132. .B user
  92133. The user to connect as
  92134. .TP
  92135. .B password
  92136. The password of the user
  92137. .TP
  92138. .B host
  92139. The host to connect to
  92140. .TP
  92141. .B port
  92142. The port to connect to
  92143. .UNINDENT
  92144. .sp
  92145. CLI Example:
  92146. .INDENT 7.0
  92147. .INDENT 3.5
  92148. .sp
  92149. .nf
  92150. .ft C
  92151. salt \(aq*\(aq influxdb08.db_exists <name>
  92152. salt \(aq*\(aq influxdb08.db_exists <name> <user> <password> <host> <port>
  92153. .ft P
  92154. .fi
  92155. .UNINDENT
  92156. .UNINDENT
  92157. .UNINDENT
  92158. .INDENT 0.0
  92159. .TP
  92160. .B salt.modules.influxdb08mod.db_list(user=None, password=None, host=None, port=None)
  92161. List all InfluxDB databases
  92162. .INDENT 7.0
  92163. .TP
  92164. .B user
  92165. The user to connect as
  92166. .TP
  92167. .B password
  92168. The password of the user
  92169. .TP
  92170. .B host
  92171. The host to connect to
  92172. .TP
  92173. .B port
  92174. The port to connect to
  92175. .UNINDENT
  92176. .sp
  92177. CLI Example:
  92178. .INDENT 7.0
  92179. .INDENT 3.5
  92180. .sp
  92181. .nf
  92182. .ft C
  92183. salt \(aq*\(aq influxdb08.db_list
  92184. salt \(aq*\(aq influxdb08.db_list <user> <password> <host> <port>
  92185. .ft P
  92186. .fi
  92187. .UNINDENT
  92188. .UNINDENT
  92189. .UNINDENT
  92190. .INDENT 0.0
  92191. .TP
  92192. .B salt.modules.influxdb08mod.db_remove(name, user=None, password=None, host=None, port=None)
  92193. Remove a database
  92194. .INDENT 7.0
  92195. .TP
  92196. .B name
  92197. Database name to remove
  92198. .TP
  92199. .B user
  92200. The user to connect as
  92201. .TP
  92202. .B password
  92203. The password of the user
  92204. .TP
  92205. .B host
  92206. The host to connect to
  92207. .TP
  92208. .B port
  92209. The port to connect to
  92210. .UNINDENT
  92211. .sp
  92212. CLI Example:
  92213. .INDENT 7.0
  92214. .INDENT 3.5
  92215. .sp
  92216. .nf
  92217. .ft C
  92218. salt \(aq*\(aq influxdb08.db_remove <name>
  92219. salt \(aq*\(aq influxdb08.db_remove <name> <user> <password> <host> <port>
  92220. .ft P
  92221. .fi
  92222. .UNINDENT
  92223. .UNINDENT
  92224. .UNINDENT
  92225. .INDENT 0.0
  92226. .TP
  92227. .B salt.modules.influxdb08mod.login_test(name, password, database=None, host=None, port=None)
  92228. Checks if a credential pair can log in at all.
  92229. .sp
  92230. If a database is specified: it will check for database user existence.
  92231. If a database is not specified: it will check for cluster admin existence.
  92232. .INDENT 7.0
  92233. .TP
  92234. .B name
  92235. The user to connect as
  92236. .TP
  92237. .B password
  92238. The password of the user
  92239. .TP
  92240. .B database
  92241. The database to try to log in to
  92242. .TP
  92243. .B host
  92244. The host to connect to
  92245. .TP
  92246. .B port
  92247. The port to connect to
  92248. .UNINDENT
  92249. .sp
  92250. CLI Example:
  92251. .INDENT 7.0
  92252. .INDENT 3.5
  92253. .sp
  92254. .nf
  92255. .ft C
  92256. salt \(aq*\(aq influxdb08.login_test <name>
  92257. salt \(aq*\(aq influxdb08.login_test <name> <database>
  92258. salt \(aq*\(aq influxdb08.login_test <name> <database> <user> <password> <host> <port>
  92259. .ft P
  92260. .fi
  92261. .UNINDENT
  92262. .UNINDENT
  92263. .UNINDENT
  92264. .INDENT 0.0
  92265. .TP
  92266. .B salt.modules.influxdb08mod.query(database, query, time_precision=u\(aqs\(aq, chunked=False, user=None, password=None, host=None, port=None)
  92267. Querying data
  92268. .INDENT 7.0
  92269. .TP
  92270. .B database
  92271. The database to query
  92272. .TP
  92273. .B query
  92274. Query to be executed
  92275. .TP
  92276. .B time_precision
  92277. Time precision to use (\(aqs\(aq, \(aqm\(aq, or \(aqu\(aq)
  92278. .TP
  92279. .B chunked
  92280. Whether is chunked or not
  92281. .TP
  92282. .B user
  92283. The user to connect as
  92284. .TP
  92285. .B password
  92286. The password of the user
  92287. .TP
  92288. .B host
  92289. The host to connect to
  92290. .TP
  92291. .B port
  92292. The port to connect to
  92293. .UNINDENT
  92294. .sp
  92295. CLI Example:
  92296. .INDENT 7.0
  92297. .INDENT 3.5
  92298. .sp
  92299. .nf
  92300. .ft C
  92301. salt \(aq*\(aq influxdb08.query <database> <query>
  92302. salt \(aq*\(aq influxdb08.query <database> <query> <time_precision> <chunked> <user> <password> <host> <port>
  92303. .ft P
  92304. .fi
  92305. .UNINDENT
  92306. .UNINDENT
  92307. .UNINDENT
  92308. .INDENT 0.0
  92309. .TP
  92310. .B salt.modules.influxdb08mod.retention_policy_add(database, name, duration, replication, default=False, user=None, password=None, host=None, port=None)
  92311. Add a retention policy.
  92312. .INDENT 7.0
  92313. .TP
  92314. .B database
  92315. The database to operate on.
  92316. .TP
  92317. .B name
  92318. Name of the policy to modify.
  92319. .TP
  92320. .B duration
  92321. How long InfluxDB keeps the data.
  92322. .TP
  92323. .B replication
  92324. How many copies of the data are stored in the cluster.
  92325. .TP
  92326. .B default
  92327. Whether this policy should be the default or not. Default is False.
  92328. .UNINDENT
  92329. .sp
  92330. CLI Example:
  92331. .INDENT 7.0
  92332. .INDENT 3.5
  92333. .sp
  92334. .nf
  92335. .ft C
  92336. salt \(aq*\(aq influxdb.retention_policy_add metrics default 1d 1
  92337. .ft P
  92338. .fi
  92339. .UNINDENT
  92340. .UNINDENT
  92341. .UNINDENT
  92342. .INDENT 0.0
  92343. .TP
  92344. .B salt.modules.influxdb08mod.retention_policy_alter(database, name, duration, replication, default=False, user=None, password=None, host=None, port=None)
  92345. Modify an existing retention policy.
  92346. .INDENT 7.0
  92347. .TP
  92348. .B database
  92349. The database to operate on.
  92350. .TP
  92351. .B name
  92352. Name of the policy to modify.
  92353. .TP
  92354. .B duration
  92355. How long InfluxDB keeps the data.
  92356. .TP
  92357. .B replication
  92358. How many copies of the data are stored in the cluster.
  92359. .TP
  92360. .B default
  92361. Whether this policy should be the default or not. Default is False.
  92362. .UNINDENT
  92363. .sp
  92364. CLI Example:
  92365. .INDENT 7.0
  92366. .INDENT 3.5
  92367. .sp
  92368. .nf
  92369. .ft C
  92370. salt \(aq*\(aq influxdb08.retention_policy_modify metrics default 1d 1
  92371. .ft P
  92372. .fi
  92373. .UNINDENT
  92374. .UNINDENT
  92375. .UNINDENT
  92376. .INDENT 0.0
  92377. .TP
  92378. .B salt.modules.influxdb08mod.retention_policy_exists(database, name, user=None, password=None, host=None, port=None)
  92379. Check if a retention policy exists.
  92380. .INDENT 7.0
  92381. .TP
  92382. .B database
  92383. The database to operate on.
  92384. .TP
  92385. .B name
  92386. Name of the policy to modify.
  92387. .UNINDENT
  92388. .sp
  92389. CLI Example:
  92390. .INDENT 7.0
  92391. .INDENT 3.5
  92392. .sp
  92393. .nf
  92394. .ft C
  92395. salt \(aq*\(aq influxdb08.retention_policy_exists metrics default
  92396. .ft P
  92397. .fi
  92398. .UNINDENT
  92399. .UNINDENT
  92400. .UNINDENT
  92401. .INDENT 0.0
  92402. .TP
  92403. .B salt.modules.influxdb08mod.retention_policy_get(database, name, user=None, password=None, host=None, port=None)
  92404. Get an existing retention policy.
  92405. .INDENT 7.0
  92406. .TP
  92407. .B database
  92408. The database to operate on.
  92409. .TP
  92410. .B name
  92411. Name of the policy to modify.
  92412. .UNINDENT
  92413. .sp
  92414. CLI Example:
  92415. .INDENT 7.0
  92416. .INDENT 3.5
  92417. .sp
  92418. .nf
  92419. .ft C
  92420. salt \(aq*\(aq influxdb08.retention_policy_get metrics default
  92421. .ft P
  92422. .fi
  92423. .UNINDENT
  92424. .UNINDENT
  92425. .UNINDENT
  92426. .INDENT 0.0
  92427. .TP
  92428. .B salt.modules.influxdb08mod.user_chpass(name, passwd, database=None, user=None, password=None, host=None, port=None)
  92429. Change password for a cluster admin or a database user.
  92430. .sp
  92431. If a database is specified: it will update database user password.
  92432. If a database is not specified: it will update cluster admin password.
  92433. .INDENT 7.0
  92434. .TP
  92435. .B name
  92436. User name for whom to change the password
  92437. .TP
  92438. .B passwd
  92439. New password
  92440. .TP
  92441. .B database
  92442. The database on which to operate
  92443. .TP
  92444. .B user
  92445. The user to connect as
  92446. .TP
  92447. .B password
  92448. The password of the user
  92449. .TP
  92450. .B host
  92451. The host to connect to
  92452. .TP
  92453. .B port
  92454. The port to connect to
  92455. .UNINDENT
  92456. .sp
  92457. CLI Example:
  92458. .INDENT 7.0
  92459. .INDENT 3.5
  92460. .sp
  92461. .nf
  92462. .ft C
  92463. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd>
  92464. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd> <database>
  92465. salt \(aq*\(aq influxdb08.user_chpass <name> <passwd> <database> <user> <password> <host> <port>
  92466. .ft P
  92467. .fi
  92468. .UNINDENT
  92469. .UNINDENT
  92470. .UNINDENT
  92471. .INDENT 0.0
  92472. .TP
  92473. .B salt.modules.influxdb08mod.user_create(name, passwd, database=None, user=None, password=None, host=None, port=None)
  92474. Create a cluster admin or a database user.
  92475. .sp
  92476. If a database is specified: it will create database user.
  92477. If a database is not specified: it will create a cluster admin.
  92478. .INDENT 7.0
  92479. .TP
  92480. .B name
  92481. User name for the new user to create
  92482. .TP
  92483. .B passwd
  92484. Password for the new user to create
  92485. .TP
  92486. .B database
  92487. The database to create the user in
  92488. .TP
  92489. .B user
  92490. The user to connect as
  92491. .TP
  92492. .B password
  92493. The password of the user
  92494. .TP
  92495. .B host
  92496. The host to connect to
  92497. .TP
  92498. .B port
  92499. The port to connect to
  92500. .UNINDENT
  92501. .sp
  92502. CLI Example:
  92503. .INDENT 7.0
  92504. .INDENT 3.5
  92505. .sp
  92506. .nf
  92507. .ft C
  92508. salt \(aq*\(aq influxdb08.user_create <name> <passwd>
  92509. salt \(aq*\(aq influxdb08.user_create <name> <passwd> <database>
  92510. salt \(aq*\(aq influxdb08.user_create <name> <passwd> <database> <user> <password> <host> <port>
  92511. .ft P
  92512. .fi
  92513. .UNINDENT
  92514. .UNINDENT
  92515. .UNINDENT
  92516. .INDENT 0.0
  92517. .TP
  92518. .B salt.modules.influxdb08mod.user_exists(name, database=None, user=None, password=None, host=None, port=None)
  92519. Checks if a cluster admin or database user exists.
  92520. .sp
  92521. If a database is specified: it will check for database user existence.
  92522. If a database is not specified: it will check for cluster admin existence.
  92523. .INDENT 7.0
  92524. .TP
  92525. .B name
  92526. User name
  92527. .TP
  92528. .B database
  92529. The database to check for the user to exist
  92530. .TP
  92531. .B user
  92532. The user to connect as
  92533. .TP
  92534. .B password
  92535. The password of the user
  92536. .TP
  92537. .B host
  92538. The host to connect to
  92539. .TP
  92540. .B port
  92541. The port to connect to
  92542. .UNINDENT
  92543. .sp
  92544. CLI Example:
  92545. .INDENT 7.0
  92546. .INDENT 3.5
  92547. .sp
  92548. .nf
  92549. .ft C
  92550. salt \(aq*\(aq influxdb08.user_exists <name>
  92551. salt \(aq*\(aq influxdb08.user_exists <name> <database>
  92552. salt \(aq*\(aq influxdb08.user_exists <name> <database> <user> <password> <host> <port>
  92553. .ft P
  92554. .fi
  92555. .UNINDENT
  92556. .UNINDENT
  92557. .UNINDENT
  92558. .INDENT 0.0
  92559. .TP
  92560. .B salt.modules.influxdb08mod.user_list(database=None, user=None, password=None, host=None, port=None)
  92561. List cluster admins or database users.
  92562. .sp
  92563. If a database is specified: it will return database users list.
  92564. If a database is not specified: it will return cluster admins list.
  92565. .INDENT 7.0
  92566. .TP
  92567. .B database
  92568. The database to list the users from
  92569. .TP
  92570. .B user
  92571. The user to connect as
  92572. .TP
  92573. .B password
  92574. The password of the user
  92575. .TP
  92576. .B host
  92577. The host to connect to
  92578. .TP
  92579. .B port
  92580. The port to connect to
  92581. .UNINDENT
  92582. .sp
  92583. CLI Example:
  92584. .INDENT 7.0
  92585. .INDENT 3.5
  92586. .sp
  92587. .nf
  92588. .ft C
  92589. salt \(aq*\(aq influxdb08.user_list
  92590. salt \(aq*\(aq influxdb08.user_list <database>
  92591. salt \(aq*\(aq influxdb08.user_list <database> <user> <password> <host> <port>
  92592. .ft P
  92593. .fi
  92594. .UNINDENT
  92595. .UNINDENT
  92596. .UNINDENT
  92597. .INDENT 0.0
  92598. .TP
  92599. .B salt.modules.influxdb08mod.user_remove(name, database=None, user=None, password=None, host=None, port=None)
  92600. Remove a cluster admin or a database user.
  92601. .sp
  92602. If a database is specified: it will remove the database user.
  92603. If a database is not specified: it will remove the cluster admin.
  92604. .INDENT 7.0
  92605. .TP
  92606. .B name
  92607. User name to remove
  92608. .TP
  92609. .B database
  92610. The database to remove the user from
  92611. .TP
  92612. .B user
  92613. User name for the new user to delete
  92614. .TP
  92615. .B user
  92616. The user to connect as
  92617. .TP
  92618. .B password
  92619. The password of the user
  92620. .TP
  92621. .B host
  92622. The host to connect to
  92623. .TP
  92624. .B port
  92625. The port to connect to
  92626. .UNINDENT
  92627. .sp
  92628. CLI Example:
  92629. .INDENT 7.0
  92630. .INDENT 3.5
  92631. .sp
  92632. .nf
  92633. .ft C
  92634. salt \(aq*\(aq influxdb08.user_remove <name>
  92635. salt \(aq*\(aq influxdb08.user_remove <name> <database>
  92636. salt \(aq*\(aq influxdb08.user_remove <name> <database> <user> <password> <host> <port>
  92637. .ft P
  92638. .fi
  92639. .UNINDENT
  92640. .UNINDENT
  92641. .UNINDENT
  92642. .SS salt.modules.infoblox
  92643. .sp
  92644. This module have been tested on infoblox API v1.2.1,
  92645. other versions of the API are likly workable.
  92646. .INDENT 0.0
  92647. .TP
  92648. .B depends
  92649. libinfoblox, \fI\%https://github.com/steverweber/libinfoblox\fP
  92650. .sp
  92651. libinfoblox can be installed using \fIpip install libinfoblox\fP
  92652. .UNINDENT
  92653. .sp
  92654. API documents can be found on your infoblox server at:
  92655. .INDENT 0.0
  92656. .INDENT 3.5
  92657. \fI\%https://INFOBLOX/wapidoc\fP
  92658. .UNINDENT
  92659. .UNINDENT
  92660. .INDENT 0.0
  92661. .TP
  92662. .B configuration
  92663. The following configuration defaults can be
  92664. defined (pillar or config files \(aq/etc/salt/master.d/infoblox.conf\(aq):
  92665. .INDENT 7.0
  92666. .INDENT 3.5
  92667. .sp
  92668. .nf
  92669. .ft C
  92670. infoblox.config:
  92671. api_sslverify: True
  92672. api_url: \(aqhttps://INFOBLOX/wapi/v1.2.1\(aq
  92673. api_user: \(aqusername\(aq
  92674. api_key: \(aqpassword\(aq
  92675. .ft P
  92676. .fi
  92677. .UNINDENT
  92678. .UNINDENT
  92679. .sp
  92680. Many of the functions accept \fIapi_opts\fP to override the API config.
  92681. .INDENT 7.0
  92682. .INDENT 3.5
  92683. .sp
  92684. .nf
  92685. .ft C
  92686. salt\-call infoblox.get_host name=my.host.com api_url: \(aqhttps://INFOBLOX/wapi/v1.2.1\(aq api_user=admin api_key=passs
  92687. .ft P
  92688. .fi
  92689. .UNINDENT
  92690. .UNINDENT
  92691. .UNINDENT
  92692. .INDENT 0.0
  92693. .TP
  92694. .B salt.modules.infoblox.create_a(data, **api_opts)
  92695. Create A record.
  92696. .sp
  92697. This is a helper function to \fIcreate_object\fP\&.
  92698. See your infoblox API for full \fIdata\fP format.
  92699. .sp
  92700. CLI Example:
  92701. .INDENT 7.0
  92702. .INDENT 3.5
  92703. .sp
  92704. .nf
  92705. .ft C
  92706. salt\-call infoblox.create_a data =
  92707. name: \(aqfastlinux.math.example.ca\(aq
  92708. ipv4addr: \(aq127.0.0.1\(aq
  92709. view: External
  92710. .ft P
  92711. .fi
  92712. .UNINDENT
  92713. .UNINDENT
  92714. .UNINDENT
  92715. .INDENT 0.0
  92716. .TP
  92717. .B salt.modules.infoblox.create_cname(data, **api_opts)
  92718. Create a cname record.
  92719. .sp
  92720. CLI Example:
  92721. .INDENT 7.0
  92722. .INDENT 3.5
  92723. .sp
  92724. .nf
  92725. .ft C
  92726. salt\-call infoblox.create_cname data={ "comment": "cname to example server", "name": "example.example.com", "zone": "example.com", "view": "Internal", "canonical": "example\-ha\-0.example.com" }
  92727. .ft P
  92728. .fi
  92729. .UNINDENT
  92730. .UNINDENT
  92731. .UNINDENT
  92732. .INDENT 0.0
  92733. .TP
  92734. .B salt.modules.infoblox.create_host(data, **api_opts)
  92735. Add host record
  92736. .sp
  92737. Avoid race conditions, use func:nextavailableip for ipv[4,6]addrs:
  92738. .INDENT 7.0
  92739. .IP \(bu 2
  92740. func:nextavailableip:network/ZG54dfgsrDFEFfsfsLzA:10.0.0.0/8/default
  92741. .IP \(bu 2
  92742. func:nextavailableip:10.0.0.0/8
  92743. .IP \(bu 2
  92744. func:nextavailableip:10.0.0.0/8,external
  92745. .IP \(bu 2
  92746. func:nextavailableip:10.0.0.3\-10.0.0.10
  92747. .UNINDENT
  92748. .sp
  92749. See your infoblox API for full \fIdata\fP format.
  92750. .sp
  92751. CLI Example:
  92752. .INDENT 7.0
  92753. .INDENT 3.5
  92754. .sp
  92755. .nf
  92756. .ft C
  92757. salt\-call infoblox.create_host data =
  92758. {\(aqname\(aq: \(aqhostname.example.ca\(aq,
  92759. \(aqaliases\(aq: [\(aqhostname.math.example.ca\(aq],
  92760. \(aqextattrs\(aq: [{\(aqBusiness Contact\(aq: {\(aqvalue\(aq: \(aqexample@example.ca\(aq}},
  92761. {\(aqPol8 Classification\(aq: {\(aqvalue\(aq: \(aqRestricted\(aq}},
  92762. {\(aqPrimary OU\(aq: {\(aqvalue\(aq: \(aqCS\(aq}},
  92763. {\(aqTechnical Contact\(aq: {\(aqvalue\(aq: \(aqexample@example.ca\(aq}}],
  92764. \(aqipv4addrs\(aq: [{\(aqconfigure_for_dhcp\(aq: True,
  92765. \(aqipv4addr\(aq: \(aqfunc:nextavailableip:129.97.139.0/24\(aq,
  92766. \(aqmac\(aq: \(aq00:50:56:84:6e:ae\(aq}],
  92767. \(aqipv6addrs\(aq: [], }
  92768. .ft P
  92769. .fi
  92770. .UNINDENT
  92771. .UNINDENT
  92772. .UNINDENT
  92773. .INDENT 0.0
  92774. .TP
  92775. .B salt.modules.infoblox.create_ipv4_range(data, **api_opts)
  92776. Create a ipv4 range
  92777. .sp
  92778. This is a helper function to \fIcreate_object\fP
  92779. See your infoblox API for full \fIdata\fP format.
  92780. .sp
  92781. CLI Example:
  92782. .INDENT 7.0
  92783. .INDENT 3.5
  92784. .sp
  92785. .nf
  92786. .ft C
  92787. salt\-call infoblox.create_ipv4_range data={
  92788. start_addr: \(aq129.97.150.160\(aq,
  92789. end_addr: \(aq129.97.150.170\(aq}
  92790. .ft P
  92791. .fi
  92792. .UNINDENT
  92793. .UNINDENT
  92794. .UNINDENT
  92795. .INDENT 0.0
  92796. .TP
  92797. .B salt.modules.infoblox.create_object(object_type, data, **api_opts)
  92798. Create raw infoblox object. This is a low level api call.
  92799. .sp
  92800. CLI Example:
  92801. .INDENT 7.0
  92802. .INDENT 3.5
  92803. .sp
  92804. .nf
  92805. .ft C
  92806. salt\-call infoblox.update_object object_type=record:host data={}
  92807. .ft P
  92808. .fi
  92809. .UNINDENT
  92810. .UNINDENT
  92811. .UNINDENT
  92812. .INDENT 0.0
  92813. .TP
  92814. .B salt.modules.infoblox.delete_a(name=None, ipv4addr=None, allow_array=False, **api_opts)
  92815. Delete A record
  92816. .sp
  92817. If the A record is used as a round robin you can set \fBallow_array=True\fP to
  92818. delete all records for the hostname.
  92819. .sp
  92820. CLI Examples:
  92821. .INDENT 7.0
  92822. .INDENT 3.5
  92823. .sp
  92824. .nf
  92825. .ft C
  92826. salt\-call infoblox.delete_a name=abc.example.com
  92827. salt\-call infoblox.delete_a ipv4addr=192.168.3.5
  92828. salt\-call infoblox.delete_a name=acname.example.com allow_array=True
  92829. .ft P
  92830. .fi
  92831. .UNINDENT
  92832. .UNINDENT
  92833. .UNINDENT
  92834. .INDENT 0.0
  92835. .TP
  92836. .B salt.modules.infoblox.delete_cname(name=None, canonical=None, **api_opts)
  92837. Delete CNAME. This is a helper call to delete_object.
  92838. .sp
  92839. If record is not found, return True
  92840. .sp
  92841. CLI Examples:
  92842. .INDENT 7.0
  92843. .INDENT 3.5
  92844. .sp
  92845. .nf
  92846. .ft C
  92847. salt\-call infoblox.delete_cname name=example.example.com
  92848. salt\-call infoblox.delete_cname canonical=example\-ha\-0.example.com
  92849. .ft P
  92850. .fi
  92851. .UNINDENT
  92852. .UNINDENT
  92853. .UNINDENT
  92854. .INDENT 0.0
  92855. .TP
  92856. .B salt.modules.infoblox.delete_host(name=None, mac=None, ipv4addr=None, **api_opts)
  92857. Delete host
  92858. .sp
  92859. CLI Example:
  92860. .INDENT 7.0
  92861. .INDENT 3.5
  92862. .sp
  92863. .nf
  92864. .ft C
  92865. salt\-call infoblox.delete_host name=example.domain.com
  92866. salt\-call infoblox.delete_host ipv4addr=123.123.122.12
  92867. salt\-call infoblox.delete_host ipv4addr=123.123.122.12 mac=00:50:56:84:6e:ae
  92868. .ft P
  92869. .fi
  92870. .UNINDENT
  92871. .UNINDENT
  92872. .UNINDENT
  92873. .INDENT 0.0
  92874. .TP
  92875. .B salt.modules.infoblox.delete_ipv4_range(start_addr=None, end_addr=None, **api_opts)
  92876. Delete ip range.
  92877. .sp
  92878. CLI Example:
  92879. .INDENT 7.0
  92880. .INDENT 3.5
  92881. .sp
  92882. .nf
  92883. .ft C
  92884. salt\-call infoblox.delete_ipv4_range start_addr=123.123.122.12
  92885. .ft P
  92886. .fi
  92887. .UNINDENT
  92888. .UNINDENT
  92889. .UNINDENT
  92890. .INDENT 0.0
  92891. .TP
  92892. .B salt.modules.infoblox.delete_object(objref, **api_opts)
  92893. Delete infoblox object. This is a low level api call.
  92894. .sp
  92895. CLI Example:
  92896. .INDENT 7.0
  92897. .INDENT 3.5
  92898. .sp
  92899. .nf
  92900. .ft C
  92901. salt\-call infoblox.delete_object objref=[ref_of_object]
  92902. .ft P
  92903. .fi
  92904. .UNINDENT
  92905. .UNINDENT
  92906. .UNINDENT
  92907. .INDENT 0.0
  92908. .TP
  92909. .B salt.modules.infoblox.diff_objects(obja, objb)
  92910. Diff two complex infoblox objects.
  92911. This is used from salt states to detect changes in objects.
  92912. .sp
  92913. Using \fBfunc:nextavailableip\fP will not cause a diff if the ipaddress is in
  92914. range
  92915. .UNINDENT
  92916. .INDENT 0.0
  92917. .TP
  92918. .B salt.modules.infoblox.get_a(name=None, ipv4addr=None, allow_array=True, **api_opts)
  92919. Get A record
  92920. .sp
  92921. CLI Examples:
  92922. .INDENT 7.0
  92923. .INDENT 3.5
  92924. .sp
  92925. .nf
  92926. .ft C
  92927. salt\-call infoblox.get_a name=abc.example.com
  92928. salt\-call infoblox.get_a ipv4addr=192.168.3.5
  92929. .ft P
  92930. .fi
  92931. .UNINDENT
  92932. .UNINDENT
  92933. .UNINDENT
  92934. .INDENT 0.0
  92935. .TP
  92936. .B salt.modules.infoblox.get_cname(name=None, canonical=None, return_fields=None, **api_opts)
  92937. Get CNAME information.
  92938. .sp
  92939. CLI Examples:
  92940. .INDENT 7.0
  92941. .INDENT 3.5
  92942. .sp
  92943. .nf
  92944. .ft C
  92945. salt\-call infoblox.get_cname name=example.example.com
  92946. salt\-call infoblox.get_cname canonical=example\-ha\-0.example.com
  92947. .ft P
  92948. .fi
  92949. .UNINDENT
  92950. .UNINDENT
  92951. .UNINDENT
  92952. .INDENT 0.0
  92953. .TP
  92954. .B salt.modules.infoblox.get_host(name=None, ipv4addr=None, mac=None, return_fields=None, **api_opts)
  92955. Get host information
  92956. .sp
  92957. CLI Examples:
  92958. .INDENT 7.0
  92959. .INDENT 3.5
  92960. .sp
  92961. .nf
  92962. .ft C
  92963. salt\-call infoblox.get_host hostname.domain.ca
  92964. salt\-call infoblox.get_host ipv4addr=123.123.122.12
  92965. salt\-call infoblox.get_host mac=00:50:56:84:6e:ae
  92966. .ft P
  92967. .fi
  92968. .UNINDENT
  92969. .UNINDENT
  92970. .UNINDENT
  92971. .INDENT 0.0
  92972. .TP
  92973. .B salt.modules.infoblox.get_host_advanced(name=None, ipv4addr=None, mac=None, **api_opts)
  92974. Get all host information
  92975. .sp
  92976. CLI Example:
  92977. .INDENT 7.0
  92978. .INDENT 3.5
  92979. .sp
  92980. .nf
  92981. .ft C
  92982. salt\-call infoblox.get_host_advanced hostname.domain.ca
  92983. .ft P
  92984. .fi
  92985. .UNINDENT
  92986. .UNINDENT
  92987. .UNINDENT
  92988. .INDENT 0.0
  92989. .TP
  92990. .B salt.modules.infoblox.get_host_domainname(name, domains=None, **api_opts)
  92991. Get host domain name
  92992. .sp
  92993. If no domains are passed, the hostname is checked for a zone in infoblox,
  92994. if no zone split on first dot.
  92995. .sp
  92996. If domains are provided, the best match out of the list is returned.
  92997. .sp
  92998. If none are found the return is None
  92999. .sp
  93000. dots at end of names are ignored.
  93001. .sp
  93002. CLI Example:
  93003. .INDENT 7.0
  93004. .INDENT 3.5
  93005. .sp
  93006. .nf
  93007. .ft C
  93008. salt\-call uwl.get_host_domainname name=localhost.t.domain.com domains=[\(aqdomain.com\(aq, \(aqt.domain.com.\(aq]
  93009. # returns: t.domain.com
  93010. .ft P
  93011. .fi
  93012. .UNINDENT
  93013. .UNINDENT
  93014. .UNINDENT
  93015. .INDENT 0.0
  93016. .TP
  93017. .B salt.modules.infoblox.get_host_hostname(name, domains=None, **api_opts)
  93018. Get hostname
  93019. .sp
  93020. If no domains are passed, the hostname is checked for a zone in infoblox,
  93021. if no zone split on first dot.
  93022. .sp
  93023. If domains are provided, the best match out of the list is truncated from
  93024. the fqdn leaving the hostname.
  93025. .sp
  93026. If no matching domains are found the fqdn is returned.
  93027. .sp
  93028. dots at end of names are ignored.
  93029. .sp
  93030. CLI Examples:
  93031. .INDENT 7.0
  93032. .INDENT 3.5
  93033. .sp
  93034. .nf
  93035. .ft C
  93036. salt\-call infoblox.get_host_hostname fqdn=localhost.xxx.t.domain.com domains="[\(aqdomain.com\(aq, \(aqt.domain.com\(aq]"
  93037. #returns: localhost.xxx
  93038. salt\-call infoblox.get_host_hostname fqdn=localhost.xxx.t.domain.com
  93039. #returns: localhost
  93040. .ft P
  93041. .fi
  93042. .UNINDENT
  93043. .UNINDENT
  93044. .UNINDENT
  93045. .INDENT 0.0
  93046. .TP
  93047. .B salt.modules.infoblox.get_host_ipv4(name=None, mac=None, allow_array=False, **api_opts)
  93048. Get ipv4 address from host record.
  93049. .sp
  93050. Use \fIallow_array\fP to return possible multiple values.
  93051. .sp
  93052. CLI Examples:
  93053. .INDENT 7.0
  93054. .INDENT 3.5
  93055. .sp
  93056. .nf
  93057. .ft C
  93058. salt\-call infoblox.get_host_ipv4 host=localhost.domain.com
  93059. salt\-call infoblox.get_host_ipv4 mac=00:50:56:84:6e:ae
  93060. .ft P
  93061. .fi
  93062. .UNINDENT
  93063. .UNINDENT
  93064. .UNINDENT
  93065. .INDENT 0.0
  93066. .TP
  93067. .B salt.modules.infoblox.get_host_ipv4addr_info(ipv4addr=None, mac=None, discovered_data=None, return_fields=None, **api_opts)
  93068. Get host ipv4addr information
  93069. .sp
  93070. CLI Examples:
  93071. .INDENT 7.0
  93072. .INDENT 3.5
  93073. .sp
  93074. .nf
  93075. .ft C
  93076. salt\-call infoblox.get_ipv4addr ipv4addr=123.123.122.12
  93077. salt\-call infoblox.get_ipv4addr mac=00:50:56:84:6e:ae
  93078. salt\-call infoblox.get_ipv4addr mac=00:50:56:84:6e:ae return_fields=host return_fields=\(aqmac,host,configure_for_dhcp,ipv4addr\(aq
  93079. .ft P
  93080. .fi
  93081. .UNINDENT
  93082. .UNINDENT
  93083. .UNINDENT
  93084. .INDENT 0.0
  93085. .TP
  93086. .B salt.modules.infoblox.get_host_ipv6addr_info(ipv6addr=None, mac=None, discovered_data=None, return_fields=None, **api_opts)
  93087. Get host ipv6addr information
  93088. .sp
  93089. CLI Example:
  93090. .INDENT 7.0
  93091. .INDENT 3.5
  93092. .sp
  93093. .nf
  93094. .ft C
  93095. salt\-call infoblox.get_host_ipv6addr_info ipv6addr=2001:db8:85a3:8d3:1349:8a2e:370:7348
  93096. .ft P
  93097. .fi
  93098. .UNINDENT
  93099. .UNINDENT
  93100. .UNINDENT
  93101. .INDENT 0.0
  93102. .TP
  93103. .B salt.modules.infoblox.get_host_mac(name=None, allow_array=False, **api_opts)
  93104. Get mac address from host record.
  93105. .sp
  93106. Use \fIallow_array\fP to return possible multiple values.
  93107. .sp
  93108. CLI Example:
  93109. .INDENT 7.0
  93110. .INDENT 3.5
  93111. .sp
  93112. .nf
  93113. .ft C
  93114. salt\-call infoblox.get_host_mac host=localhost.domain.com
  93115. .ft P
  93116. .fi
  93117. .UNINDENT
  93118. .UNINDENT
  93119. .UNINDENT
  93120. .INDENT 0.0
  93121. .TP
  93122. .B salt.modules.infoblox.get_ipv4_range(start_addr=None, end_addr=None, return_fields=None, **api_opts)
  93123. Get ip range
  93124. .sp
  93125. CLI Example:
  93126. .INDENT 7.0
  93127. .INDENT 3.5
  93128. .sp
  93129. .nf
  93130. .ft C
  93131. salt\-call infoblox.get_ipv4_range start_addr=123.123.122.12
  93132. .ft P
  93133. .fi
  93134. .UNINDENT
  93135. .UNINDENT
  93136. .UNINDENT
  93137. .INDENT 0.0
  93138. .TP
  93139. .B salt.modules.infoblox.get_network(ipv4addr=None, network=None, return_fields=None, **api_opts)
  93140. Get list of all networks. This is helpful when looking up subnets to use
  93141. with func:nextavailableip
  93142. .sp
  93143. This call is offen slow and not cached!
  93144. .sp
  93145. some return_fields
  93146. comment,network,network_view,ddns_domainname,disable,enable_ddns
  93147. .sp
  93148. CLI Example:
  93149. .INDENT 7.0
  93150. .INDENT 3.5
  93151. .sp
  93152. .nf
  93153. .ft C
  93154. salt\-call infoblox.get_network
  93155. .ft P
  93156. .fi
  93157. .UNINDENT
  93158. .UNINDENT
  93159. .UNINDENT
  93160. .INDENT 0.0
  93161. .TP
  93162. .B salt.modules.infoblox.get_object(objref, data=None, return_fields=None, max_results=None, ensure_none_or_one_result=False, **api_opts)
  93163. Get raw infoblox object. This is a low level api call.
  93164. .sp
  93165. CLI Example:
  93166. .INDENT 7.0
  93167. .INDENT 3.5
  93168. .sp
  93169. .nf
  93170. .ft C
  93171. salt\-call infoblox.get_object objref=[_ref of object]
  93172. .ft P
  93173. .fi
  93174. .UNINDENT
  93175. .UNINDENT
  93176. .UNINDENT
  93177. .INDENT 0.0
  93178. .TP
  93179. .B salt.modules.infoblox.is_ipaddr_in_ipfunc_range(ipaddr, ipfunc)
  93180. Return true if the ipaddress is in the range of the nextavailableip function
  93181. .sp
  93182. CLI Example:
  93183. .INDENT 7.0
  93184. .INDENT 3.5
  93185. .sp
  93186. .nf
  93187. .ft C
  93188. salt\-call infoblox.is_ipaddr_in_ipfunc_range ipaddr="10.0.2.2" ipfunc="func:nextavailableip:10.0.0.0/8"
  93189. .ft P
  93190. .fi
  93191. .UNINDENT
  93192. .UNINDENT
  93193. .UNINDENT
  93194. .INDENT 0.0
  93195. .TP
  93196. .B salt.modules.infoblox.update_cname(name, data, **api_opts)
  93197. Update CNAME. This is a helper call to update_object.
  93198. .sp
  93199. Find a CNAME \fB_ref\fP then call update_object with the record data.
  93200. .sp
  93201. CLI Example:
  93202. .INDENT 7.0
  93203. .INDENT 3.5
  93204. .sp
  93205. .nf
  93206. .ft C
  93207. salt\-call infoblox.update_cname name=example.example.com data="{
  93208. \(aqcanonical\(aq:\(aqexample\-ha\-0.example.com\(aq,
  93209. \(aquse_ttl\(aq:true,
  93210. \(aqttl\(aq:200,
  93211. \(aqcomment\(aq:\(aqSalt managed CNAME\(aq}"
  93212. .ft P
  93213. .fi
  93214. .UNINDENT
  93215. .UNINDENT
  93216. .UNINDENT
  93217. .INDENT 0.0
  93218. .TP
  93219. .B salt.modules.infoblox.update_host(name, data, **api_opts)
  93220. Update host record. This is a helper call to update_object.
  93221. .sp
  93222. Find a hosts \fB_ref\fP then call update_object with the record data.
  93223. .sp
  93224. CLI Example:
  93225. .INDENT 7.0
  93226. .INDENT 3.5
  93227. .sp
  93228. .nf
  93229. .ft C
  93230. salt\-call infoblox.update_host name=fqdn data={}
  93231. .ft P
  93232. .fi
  93233. .UNINDENT
  93234. .UNINDENT
  93235. .UNINDENT
  93236. .INDENT 0.0
  93237. .TP
  93238. .B salt.modules.infoblox.update_object(objref, data, **api_opts)
  93239. Update raw infoblox object. This is a low level api call.
  93240. .sp
  93241. CLI Example:
  93242. .INDENT 7.0
  93243. .INDENT 3.5
  93244. .sp
  93245. .nf
  93246. .ft C
  93247. salt\-call infoblox.update_object objref=[ref_of_object] data={}
  93248. .ft P
  93249. .fi
  93250. .UNINDENT
  93251. .UNINDENT
  93252. .UNINDENT
  93253. .SS salt.modules.introspect
  93254. .sp
  93255. Functions to perform introspection on a minion, and return data in a format
  93256. usable by Salt States
  93257. .INDENT 0.0
  93258. .TP
  93259. .B salt.modules.introspect.enabled_service_owners()
  93260. Return which packages own each of the services that are currently enabled.
  93261. .sp
  93262. CLI Example:
  93263. .INDENT 7.0
  93264. .INDENT 3.5
  93265. salt myminion introspect.enabled_service_owners
  93266. .UNINDENT
  93267. .UNINDENT
  93268. .UNINDENT
  93269. .INDENT 0.0
  93270. .TP
  93271. .B salt.modules.introspect.running_service_owners(exclude=(u\(aq/dev\(aq, u\(aq/home\(aq, u\(aq/media\(aq, u\(aq/proc\(aq, u\(aq/run\(aq, u\(aq/sys/\(aq, u\(aq/tmp\(aq, u\(aq/var\(aq))
  93272. Determine which packages own the currently running services. By default,
  93273. excludes files whose full path starts with \fB/dev\fP, \fB/home\fP, \fB/media\fP,
  93274. \fB/proc\fP, \fB/run\fP, \fB/sys\fP, \fB/tmp\fP and \fB/var\fP\&. This can be
  93275. overridden by passing in a new list to \fBexclude\fP\&.
  93276. .sp
  93277. CLI Example:
  93278. .INDENT 7.0
  93279. .INDENT 3.5
  93280. salt myminion introspect.running_service_owners
  93281. .UNINDENT
  93282. .UNINDENT
  93283. .UNINDENT
  93284. .INDENT 0.0
  93285. .TP
  93286. .B salt.modules.introspect.service_highstate(requires=True)
  93287. Return running and enabled services in a highstate structure. By default
  93288. also returns package dependencies for those services, which means that
  93289. package definitions must be created outside this function. To drop the
  93290. package dependencies, set \fBrequires\fP to False.
  93291. .sp
  93292. CLI Example:
  93293. .INDENT 7.0
  93294. .INDENT 3.5
  93295. salt myminion introspect.service_highstate
  93296. salt myminion introspect.service_highstate requires=False
  93297. .UNINDENT
  93298. .UNINDENT
  93299. .UNINDENT
  93300. .SS salt.modules.ipmi
  93301. .sp
  93302. Support IPMI commands over LAN. This module does not talk to the local
  93303. systems hardware through IPMI drivers. It uses a python module \fIpyghmi\fP\&.
  93304. .INDENT 0.0
  93305. .TP
  93306. .B depends
  93307. Python module pyghmi.
  93308. You can install pyghmi using pip:
  93309. .INDENT 7.0
  93310. .INDENT 3.5
  93311. .sp
  93312. .nf
  93313. .ft C
  93314. pip install pyghmi
  93315. .ft P
  93316. .fi
  93317. .UNINDENT
  93318. .UNINDENT
  93319. .TP
  93320. .B configuration
  93321. The following configuration defaults can be
  93322. define (pillar or config files):
  93323. .INDENT 7.0
  93324. .INDENT 3.5
  93325. .sp
  93326. .nf
  93327. .ft C
  93328. ipmi.config:
  93329. api_host: 127.0.0.1
  93330. api_user: admin
  93331. api_pass: apassword
  93332. api_port: 623
  93333. api_kg: None
  93334. .ft P
  93335. .fi
  93336. .UNINDENT
  93337. .UNINDENT
  93338. .sp
  93339. Usage can override the config defaults:
  93340. .INDENT 7.0
  93341. .INDENT 3.5
  93342. .sp
  93343. .nf
  93344. .ft C
  93345. salt\-call ipmi.get_user api_host=myipmienabled.system
  93346. api_user=admin api_pass=pass
  93347. uid=1
  93348. .ft P
  93349. .fi
  93350. .UNINDENT
  93351. .UNINDENT
  93352. .UNINDENT
  93353. .INDENT 0.0
  93354. .TP
  93355. .B salt.modules.ipmi.create_user(uid, name, password, channel=14, callback=False, link_auth=True, ipmi_msg=True, privilege_level=u\(aqadministrator\(aq, **kwargs)
  93356. create/ensure a user is created with provided settings.
  93357. .INDENT 7.0
  93358. .TP
  93359. .B Parameters
  93360. .INDENT 7.0
  93361. .IP \(bu 2
  93362. \fBprivilege_level\fP \-\- User Privilege Limit. (Determines the maximum privilege level that
  93363. the user is allowed to switch to on the specified channel.)
  93364. * callback
  93365. * user
  93366. * operator
  93367. * administrator
  93368. * proprietary
  93369. * no_access
  93370. .IP \(bu 2
  93371. \fBkwargs\fP \-\- .INDENT 2.0
  93372. .IP \(bu 2
  93373. api_host=127.0.0.1
  93374. .IP \(bu 2
  93375. api_user=admin
  93376. .IP \(bu 2
  93377. api_pass=example
  93378. .IP \(bu 2
  93379. api_port=623
  93380. .IP \(bu 2
  93381. api_kg=None
  93382. .UNINDENT
  93383. .UNINDENT
  93384. .UNINDENT
  93385. .sp
  93386. CLI Examples:
  93387. .INDENT 7.0
  93388. .INDENT 3.5
  93389. .sp
  93390. .nf
  93391. .ft C
  93392. salt\-call ipmi.create_user uid=2 name=steverweber api_host=172.168.0.7 api_pass=nevertell
  93393. .ft P
  93394. .fi
  93395. .UNINDENT
  93396. .UNINDENT
  93397. .UNINDENT
  93398. .INDENT 0.0
  93399. .TP
  93400. .B salt.modules.ipmi.fast_connect_test(**kwargs)
  93401. Returns True if connection success.
  93402. This uses an aggressive timeout value!
  93403. .INDENT 7.0
  93404. .TP
  93405. .B Parameters
  93406. \fBkwargs\fP \-\- .INDENT 7.0
  93407. .IP \(bu 2
  93408. api_host=127.0.0.1
  93409. .IP \(bu 2
  93410. api_user=admin
  93411. .IP \(bu 2
  93412. api_pass=example
  93413. .IP \(bu 2
  93414. api_port=623
  93415. .IP \(bu 2
  93416. api_kg=None
  93417. .UNINDENT
  93418. .UNINDENT
  93419. .sp
  93420. CLI Examples:
  93421. .INDENT 7.0
  93422. .INDENT 3.5
  93423. .sp
  93424. .nf
  93425. .ft C
  93426. salt\-call ipmi.fast_connect_test api_host=172.168.0.9
  93427. .ft P
  93428. .fi
  93429. .UNINDENT
  93430. .UNINDENT
  93431. .UNINDENT
  93432. .INDENT 0.0
  93433. .TP
  93434. .B salt.modules.ipmi.get_bootdev(**kwargs)
  93435. Get current boot device override information.
  93436. .sp
  93437. Provides the current requested boot device. Be aware that not all IPMI
  93438. devices support this. Even in BMCs that claim to, occasionally the
  93439. BIOS or UEFI fail to honor it. This is usually only applicable to the
  93440. next reboot.
  93441. .INDENT 7.0
  93442. .TP
  93443. .B Parameters
  93444. \fBkwargs\fP \-\- .INDENT 7.0
  93445. .IP \(bu 2
  93446. api_host=127.0.0.1
  93447. .IP \(bu 2
  93448. api_user=admin
  93449. .IP \(bu 2
  93450. api_pass=example
  93451. .IP \(bu 2
  93452. api_port=623
  93453. .IP \(bu 2
  93454. api_kg=None
  93455. .UNINDENT
  93456. .UNINDENT
  93457. .sp
  93458. CLI Example:
  93459. .INDENT 7.0
  93460. .INDENT 3.5
  93461. .sp
  93462. .nf
  93463. .ft C
  93464. salt\-call ipmi.get_bootdev api_host=127.0.0.1 api_user=admin api_pass=pass
  93465. .ft P
  93466. .fi
  93467. .UNINDENT
  93468. .UNINDENT
  93469. .UNINDENT
  93470. .INDENT 0.0
  93471. .TP
  93472. .B salt.modules.ipmi.get_channel_access(channel=14, read_mode=u\(aqnon_volatile\(aq, **kwargs)
  93473. :param kwargs:api_host=\(aq127.0.0.1\(aq api_user=\(aqadmin\(aq api_pass=\(aqexample\(aq api_port=623
  93474. .INDENT 7.0
  93475. .TP
  93476. .B Parameters
  93477. .INDENT 7.0
  93478. .IP \(bu 2
  93479. \fBchannel\fP \-\- number [1:7]
  93480. .IP \(bu 2
  93481. \fBread_mode\fP \-\- .INDENT 2.0
  93482. .IP \(bu 2
  93483. non_volatile = get non\-volatile Channel Access
  93484. .IP \(bu 2
  93485. volatile = get present volatile (active) setting of Channel Access
  93486. .UNINDENT
  93487. .IP \(bu 2
  93488. \fBkwargs\fP \-\- .INDENT 2.0
  93489. .IP \(bu 2
  93490. api_host=127.0.0.1
  93491. .IP \(bu 2
  93492. api_user=admin
  93493. .IP \(bu 2
  93494. api_pass=example
  93495. .IP \(bu 2
  93496. api_port=623
  93497. .IP \(bu 2
  93498. api_kg=None
  93499. .UNINDENT
  93500. .UNINDENT
  93501. .UNINDENT
  93502. .sp
  93503. Return Data
  93504. .INDENT 7.0
  93505. .INDENT 3.5
  93506. A Python dict with the following keys/values:
  93507. .INDENT 0.0
  93508. .INDENT 3.5
  93509. .sp
  93510. .nf
  93511. .ft C
  93512. {
  93513. alerting:
  93514. per_msg_auth:
  93515. user_level_auth:
  93516. access_mode:{ (ONE OF)
  93517. 0: \(aqdisabled\(aq,
  93518. 1: \(aqpre_boot\(aq,
  93519. 2: \(aqalways\(aq,
  93520. 3: \(aqshared\(aq
  93521. }
  93522. privilege_level: { (ONE OF)
  93523. 1: \(aqcallback\(aq,
  93524. 2: \(aquser\(aq,
  93525. 3: \(aqoperator\(aq,
  93526. 4: \(aqadministrator\(aq,
  93527. 5: \(aqproprietary\(aq,
  93528. }
  93529. }
  93530. .ft P
  93531. .fi
  93532. .UNINDENT
  93533. .UNINDENT
  93534. .UNINDENT
  93535. .UNINDENT
  93536. .sp
  93537. CLI Examples:
  93538. .INDENT 7.0
  93539. .INDENT 3.5
  93540. .sp
  93541. .nf
  93542. .ft C
  93543. salt\-call ipmi.get_channel_access channel=1
  93544. .ft P
  93545. .fi
  93546. .UNINDENT
  93547. .UNINDENT
  93548. .UNINDENT
  93549. .INDENT 0.0
  93550. .TP
  93551. .B salt.modules.ipmi.get_channel_info(channel=14, **kwargs)
  93552. Get channel info
  93553. .INDENT 7.0
  93554. .TP
  93555. .B Parameters
  93556. .INDENT 7.0
  93557. .IP \(bu 2
  93558. \fBchannel\fP \-\- number [1:7]
  93559. .IP \(bu 2
  93560. \fBkwargs\fP \-\- .INDENT 2.0
  93561. .IP \(bu 2
  93562. api_host=127.0.0.1
  93563. .IP \(bu 2
  93564. api_user=admin
  93565. .IP \(bu 2
  93566. api_pass=example
  93567. .IP \(bu 2
  93568. api_port=623
  93569. .IP \(bu 2
  93570. api_kg=None
  93571. .UNINDENT
  93572. .UNINDENT
  93573. .UNINDENT
  93574. .INDENT 7.0
  93575. .TP
  93576. .B Return Data
  93577. channel session supports
  93578. .INDENT 7.0
  93579. .INDENT 3.5
  93580. .sp
  93581. .nf
  93582. .ft C
  93583. \- no_session: channel is session\-less
  93584. \- single: channel is single\-session
  93585. \- multi: channel is multi\-session
  93586. \- auto: channel is session\-based (channel could alternate between
  93587. single\- and multi\-session operation, as can occur with a
  93588. serial/modem channel that supports connection mode auto\-detect)
  93589. .ft P
  93590. .fi
  93591. .UNINDENT
  93592. .UNINDENT
  93593. .UNINDENT
  93594. .sp
  93595. CLI Examples:
  93596. .INDENT 7.0
  93597. .INDENT 3.5
  93598. .sp
  93599. .nf
  93600. .ft C
  93601. salt\-call ipmi.get_channel_info
  93602. .ft P
  93603. .fi
  93604. .UNINDENT
  93605. .UNINDENT
  93606. .UNINDENT
  93607. .INDENT 0.0
  93608. .TP
  93609. .B salt.modules.ipmi.get_channel_max_user_count(channel=14, **kwargs)
  93610. Get max users in channel
  93611. .INDENT 7.0
  93612. .TP
  93613. .B Parameters
  93614. .INDENT 7.0
  93615. .IP \(bu 2
  93616. \fBchannel\fP \-\- number [1:7]
  93617. .IP \(bu 2
  93618. \fBkwargs\fP \-\- .INDENT 2.0
  93619. .IP \(bu 2
  93620. api_host=127.0.0.1
  93621. .IP \(bu 2
  93622. api_user=admin
  93623. .IP \(bu 2
  93624. api_pass=example
  93625. .IP \(bu 2
  93626. api_port=623
  93627. .IP \(bu 2
  93628. api_kg=None
  93629. .UNINDENT
  93630. .UNINDENT
  93631. .TP
  93632. .B Returns
  93633. int \-\- often 16
  93634. .UNINDENT
  93635. .sp
  93636. CLI Examples:
  93637. .INDENT 7.0
  93638. .INDENT 3.5
  93639. .sp
  93640. .nf
  93641. .ft C
  93642. salt\-call ipmi.get_channel_max_user_count
  93643. .ft P
  93644. .fi
  93645. .UNINDENT
  93646. .UNINDENT
  93647. .UNINDENT
  93648. .INDENT 0.0
  93649. .TP
  93650. .B salt.modules.ipmi.get_health(**kwargs)
  93651. Get Summarize health
  93652. .sp
  93653. This provides a summary of the health of the managed system.
  93654. It additionally provides an iterable list of reasons for
  93655. warning, critical, or failed assessments.
  93656. .sp
  93657. good health: {\(aqbadreadings\(aq: [], \(aqhealth\(aq: 0}
  93658. .INDENT 7.0
  93659. .TP
  93660. .B Parameters
  93661. \fBkwargs\fP \-\- .INDENT 7.0
  93662. .IP \(bu 2
  93663. api_host=127.0.0.1
  93664. .IP \(bu 2
  93665. api_user=admin
  93666. .IP \(bu 2
  93667. api_pass=example
  93668. .IP \(bu 2
  93669. api_port=623
  93670. .IP \(bu 2
  93671. api_kg=None
  93672. .UNINDENT
  93673. .UNINDENT
  93674. .sp
  93675. CLI Example:
  93676. .INDENT 7.0
  93677. .INDENT 3.5
  93678. .sp
  93679. .nf
  93680. .ft C
  93681. salt\-call ipmi.get_health api_host=127.0.0.1 api_user=admin api_pass=pass
  93682. .ft P
  93683. .fi
  93684. .UNINDENT
  93685. .UNINDENT
  93686. .UNINDENT
  93687. .INDENT 0.0
  93688. .TP
  93689. .B salt.modules.ipmi.get_power(**kwargs)
  93690. Get current power state
  93691. .sp
  93692. The response, if successful, should contain \(aqpowerstate\(aq key and
  93693. either \(aqon\(aq or \(aqoff\(aq to indicate current state.
  93694. .INDENT 7.0
  93695. .TP
  93696. .B Parameters
  93697. \fBkwargs\fP \-\- .INDENT 7.0
  93698. .IP \(bu 2
  93699. api_host=127.0.0.1
  93700. .IP \(bu 2
  93701. api_user=admin
  93702. .IP \(bu 2
  93703. api_pass=example
  93704. .IP \(bu 2
  93705. api_port=623
  93706. .IP \(bu 2
  93707. api_kg=None
  93708. .UNINDENT
  93709. .UNINDENT
  93710. .sp
  93711. CLI Example:
  93712. .INDENT 7.0
  93713. .INDENT 3.5
  93714. .sp
  93715. .nf
  93716. .ft C
  93717. salt\-call ipmi.get_power api_host=127.0.0.1 api_user=admin api_pass=pass
  93718. .ft P
  93719. .fi
  93720. .UNINDENT
  93721. .UNINDENT
  93722. .UNINDENT
  93723. .INDENT 0.0
  93724. .TP
  93725. .B salt.modules.ipmi.get_sensor_data(**kwargs)
  93726. Get sensor readings
  93727. .sp
  93728. Iterates sensor reading objects
  93729. .INDENT 7.0
  93730. .TP
  93731. .B Parameters
  93732. \fBkwargs\fP \-\- .INDENT 7.0
  93733. .IP \(bu 2
  93734. api_host=127.0.0.1
  93735. .IP \(bu 2
  93736. api_user=admin
  93737. .IP \(bu 2
  93738. api_pass=example
  93739. .IP \(bu 2
  93740. api_port=623
  93741. .IP \(bu 2
  93742. api_kg=None
  93743. .UNINDENT
  93744. .UNINDENT
  93745. .sp
  93746. CLI Example:
  93747. .INDENT 7.0
  93748. .INDENT 3.5
  93749. .sp
  93750. .nf
  93751. .ft C
  93752. salt\-call ipmi.get_sensor_data api_host=127.0.0.1 api_user=admin api_pass=pass
  93753. .ft P
  93754. .fi
  93755. .UNINDENT
  93756. .UNINDENT
  93757. .UNINDENT
  93758. .INDENT 0.0
  93759. .TP
  93760. .B salt.modules.ipmi.get_user(uid, channel=14, **kwargs)
  93761. Get user from uid and access on channel
  93762. .INDENT 7.0
  93763. .TP
  93764. .B Parameters
  93765. .INDENT 7.0
  93766. .IP \(bu 2
  93767. \fBuid\fP \-\- user number [1:16]
  93768. .IP \(bu 2
  93769. \fBchannel\fP \-\- number [1:7]
  93770. .IP \(bu 2
  93771. \fBkwargs\fP \-\- .INDENT 2.0
  93772. .IP \(bu 2
  93773. api_host=127.0.0.1
  93774. .IP \(bu 2
  93775. api_user=admin
  93776. .IP \(bu 2
  93777. api_pass=example
  93778. .IP \(bu 2
  93779. api_port=623
  93780. .IP \(bu 2
  93781. api_kg=None
  93782. .UNINDENT
  93783. .UNINDENT
  93784. .UNINDENT
  93785. .sp
  93786. Return Data
  93787. .INDENT 7.0
  93788. .INDENT 3.5
  93789. .sp
  93790. .nf
  93791. .ft C
  93792. name: (str)
  93793. uid: (int)
  93794. channel: (int)
  93795. access:
  93796. \- callback (bool)
  93797. \- link_auth (bool)
  93798. \- ipmi_msg (bool)
  93799. \- privilege_level: (str)[callback, user, operatorm administrator,
  93800. proprietary, no_access]
  93801. .ft P
  93802. .fi
  93803. .UNINDENT
  93804. .UNINDENT
  93805. .sp
  93806. CLI Examples:
  93807. .INDENT 7.0
  93808. .INDENT 3.5
  93809. .sp
  93810. .nf
  93811. .ft C
  93812. salt\-call ipmi.get_user uid=2
  93813. .ft P
  93814. .fi
  93815. .UNINDENT
  93816. .UNINDENT
  93817. .UNINDENT
  93818. .INDENT 0.0
  93819. .TP
  93820. .B salt.modules.ipmi.get_user_access(uid, channel=14, **kwargs)
  93821. Get user access
  93822. .INDENT 7.0
  93823. .TP
  93824. .B Parameters
  93825. .INDENT 7.0
  93826. .IP \(bu 2
  93827. \fBuid\fP \-\- user number [1:16]
  93828. .IP \(bu 2
  93829. \fBchannel\fP \-\- number [1:7]
  93830. .IP \(bu 2
  93831. \fBkwargs\fP \-\- .INDENT 2.0
  93832. .IP \(bu 2
  93833. api_host=127.0.0.1
  93834. .IP \(bu 2
  93835. api_user=admin
  93836. .IP \(bu 2
  93837. api_pass=example
  93838. .IP \(bu 2
  93839. api_port=623
  93840. .IP \(bu 2
  93841. api_kg=None
  93842. .UNINDENT
  93843. .UNINDENT
  93844. .UNINDENT
  93845. .sp
  93846. Return Data
  93847. .INDENT 7.0
  93848. .INDENT 3.5
  93849. .sp
  93850. .nf
  93851. .ft C
  93852. channel_info:
  93853. \- max_user_count = maximum number of user IDs on this channel
  93854. \- enabled_users = count of User ID slots presently in use
  93855. \- users_with_fixed_names = count of user IDs with fixed names
  93856. access:
  93857. \- callback
  93858. \- link_auth
  93859. \- ipmi_msg
  93860. \- privilege_level: [reserved, callback, user, operator
  93861. administrator, proprietary, no_access]
  93862. .ft P
  93863. .fi
  93864. .UNINDENT
  93865. .UNINDENT
  93866. .sp
  93867. CLI Examples:
  93868. .INDENT 7.0
  93869. .INDENT 3.5
  93870. .sp
  93871. .nf
  93872. .ft C
  93873. salt\-call ipmi.get_user_access uid=2
  93874. .ft P
  93875. .fi
  93876. .UNINDENT
  93877. .UNINDENT
  93878. .UNINDENT
  93879. .INDENT 0.0
  93880. .TP
  93881. .B salt.modules.ipmi.get_user_name(uid, return_none_on_error=True, **kwargs)
  93882. Get user name
  93883. .INDENT 7.0
  93884. .TP
  93885. .B Parameters
  93886. .INDENT 7.0
  93887. .IP \(bu 2
  93888. \fBuid\fP \-\- user number [1:16]
  93889. .IP \(bu 2
  93890. \fBreturn_none_on_error\fP \-\- return None on error
  93891. .IP \(bu 2
  93892. \fBkwargs\fP \-\- .INDENT 2.0
  93893. .IP \(bu 2
  93894. api_host=127.0.0.1
  93895. .IP \(bu 2
  93896. api_user=admin
  93897. .IP \(bu 2
  93898. api_pass=example
  93899. .IP \(bu 2
  93900. api_port=623
  93901. .IP \(bu 2
  93902. api_kg=None
  93903. .UNINDENT
  93904. .UNINDENT
  93905. .UNINDENT
  93906. .sp
  93907. CLI Examples:
  93908. .INDENT 7.0
  93909. .INDENT 3.5
  93910. .sp
  93911. .nf
  93912. .ft C
  93913. salt\-call ipmi.get_user_name uid=2
  93914. .ft P
  93915. .fi
  93916. .UNINDENT
  93917. .UNINDENT
  93918. .UNINDENT
  93919. .INDENT 0.0
  93920. .TP
  93921. .B salt.modules.ipmi.get_users(channel=14, **kwargs)
  93922. get list of users and access information
  93923. .INDENT 7.0
  93924. .TP
  93925. .B Parameters
  93926. .INDENT 7.0
  93927. .IP \(bu 2
  93928. \fBchannel\fP \-\- number [1:7]
  93929. .IP \(bu 2
  93930. \fBkwargs\fP \-\- .INDENT 2.0
  93931. .IP \(bu 2
  93932. api_host=127.0.0.1
  93933. .IP \(bu 2
  93934. api_user=admin
  93935. .IP \(bu 2
  93936. api_pass=example
  93937. .IP \(bu 2
  93938. api_port=623
  93939. .IP \(bu 2
  93940. api_kg=None
  93941. .UNINDENT
  93942. .UNINDENT
  93943. .TP
  93944. .B Returns
  93945. .INDENT 7.0
  93946. .IP \(bu 2
  93947. name: (str)
  93948. .IP \(bu 2
  93949. uid: (int)
  93950. .IP \(bu 2
  93951. channel: (int)
  93952. .IP \(bu 2
  93953. .INDENT 2.0
  93954. .TP
  93955. .B access:
  93956. .INDENT 7.0
  93957. .IP \(bu 2
  93958. callback (bool)
  93959. .IP \(bu 2
  93960. link_auth (bool)
  93961. .IP \(bu 2
  93962. ipmi_msg (bool)
  93963. .IP \(bu 2
  93964. privilege_level: (str)[callback, user, operatorm administrator,
  93965. proprietary, no_access]
  93966. .UNINDENT
  93967. .UNINDENT
  93968. .UNINDENT
  93969. .UNINDENT
  93970. .sp
  93971. CLI Examples:
  93972. .INDENT 7.0
  93973. .INDENT 3.5
  93974. .sp
  93975. .nf
  93976. .ft C
  93977. salt\-call ipmi.get_users api_host=172.168.0.7
  93978. .ft P
  93979. .fi
  93980. .UNINDENT
  93981. .UNINDENT
  93982. .UNINDENT
  93983. .INDENT 0.0
  93984. .TP
  93985. .B salt.modules.ipmi.raw_command(netfn, command, bridge_request=None, data=(), retry=True, delay_xmit=None, **kwargs)
  93986. Send raw ipmi command
  93987. .sp
  93988. This allows arbitrary IPMI bytes to be issued. This is commonly used
  93989. for certain vendor specific commands.
  93990. .INDENT 7.0
  93991. .TP
  93992. .B Parameters
  93993. .INDENT 7.0
  93994. .IP \(bu 2
  93995. \fBnetfn\fP \-\- Net function number
  93996. .IP \(bu 2
  93997. \fBcommand\fP \-\- Command value
  93998. .IP \(bu 2
  93999. \fBbridge_request\fP \-\- The target slave address and channel number for
  94000. the bridge request.
  94001. .IP \(bu 2
  94002. \fBdata\fP \-\- Command data as a tuple or list
  94003. .IP \(bu 2
  94004. \fBkwargs\fP \-\- .INDENT 2.0
  94005. .IP \(bu 2
  94006. api_host=127.0.0.1
  94007. .IP \(bu 2
  94008. api_user=admin
  94009. .IP \(bu 2
  94010. api_pass=example
  94011. .IP \(bu 2
  94012. api_port=623
  94013. .IP \(bu 2
  94014. api_kg=None
  94015. .UNINDENT
  94016. .UNINDENT
  94017. .TP
  94018. .B Returns
  94019. dict \-\- The response from IPMI device
  94020. .UNINDENT
  94021. .sp
  94022. CLI Examples:
  94023. .INDENT 7.0
  94024. .INDENT 3.5
  94025. .sp
  94026. .nf
  94027. .ft C
  94028. salt\-call ipmi.raw_command netfn=0x06 command=0x46 data=[0x02]
  94029. # this will return the name of the user with id 2 in bytes
  94030. .ft P
  94031. .fi
  94032. .UNINDENT
  94033. .UNINDENT
  94034. .UNINDENT
  94035. .INDENT 0.0
  94036. .TP
  94037. .B salt.modules.ipmi.set_bootdev(bootdev=u\(aqdefault\(aq, persist=False, uefiboot=False, **kwargs)
  94038. Set boot device to use on next reboot
  94039. .INDENT 7.0
  94040. .TP
  94041. .B Parameters
  94042. .INDENT 7.0
  94043. .IP \(bu 2
  94044. \fBbootdev\fP \-\- .INDENT 2.0
  94045. .IP \(bu 2
  94046. network: Request network boot
  94047. .IP \(bu 2
  94048. hd: Boot from hard drive
  94049. .IP \(bu 2
  94050. safe: Boot from hard drive, requesting \(aqsafe mode\(aq
  94051. .IP \(bu 2
  94052. optical: boot from CD/DVD/BD drive
  94053. .IP \(bu 2
  94054. setup: Boot into setup utility
  94055. .IP \(bu 2
  94056. default: remove any IPMI directed boot device
  94057. request
  94058. .UNINDENT
  94059. .IP \(bu 2
  94060. \fBpersist\fP \-\- If true, ask that system firmware use this device
  94061. beyond next boot. Be aware many systems do not honor
  94062. this
  94063. .IP \(bu 2
  94064. \fBuefiboot\fP \-\- If true, request UEFI boot explicitly. Strictly
  94065. speaking, the spec suggests that if not set, the system
  94066. should BIOS boot and offers no "don\(aqt care" option.
  94067. In practice, this flag not being set does not preclude
  94068. UEFI boot on any system I\(aqve encountered.
  94069. .IP \(bu 2
  94070. \fBkwargs\fP \-\- .INDENT 2.0
  94071. .IP \(bu 2
  94072. api_host=127.0.0.1
  94073. .IP \(bu 2
  94074. api_user=admin
  94075. .IP \(bu 2
  94076. api_pass=example
  94077. .IP \(bu 2
  94078. api_port=623
  94079. .IP \(bu 2
  94080. api_kg=None
  94081. .UNINDENT
  94082. .UNINDENT
  94083. .TP
  94084. .B Returns
  94085. dict or True \-\- If callback is not provided, the response
  94086. .UNINDENT
  94087. .sp
  94088. CLI Examples:
  94089. .INDENT 7.0
  94090. .INDENT 3.5
  94091. .sp
  94092. .nf
  94093. .ft C
  94094. salt\-call ipmi.set_bootdev bootdev=network persist=True
  94095. .ft P
  94096. .fi
  94097. .UNINDENT
  94098. .UNINDENT
  94099. .UNINDENT
  94100. .INDENT 0.0
  94101. .TP
  94102. .B salt.modules.ipmi.set_channel_access(channel=14, access_update_mode=u\(aqnon_volatile\(aq, alerting=False, per_msg_auth=False, user_level_auth=False, access_mode=u\(aqalways\(aq, privilege_update_mode=u\(aqnon_volatile\(aq, privilege_level=u\(aqadministrator\(aq, **kwargs)
  94103. Set channel access
  94104. .INDENT 7.0
  94105. .TP
  94106. .B Parameters
  94107. .INDENT 7.0
  94108. .IP \(bu 2
  94109. \fBchannel\fP \-\- number [1:7]
  94110. .IP \(bu 2
  94111. \fBaccess_update_mode\fP \-\- .INDENT 2.0
  94112. .IP \(bu 2
  94113. \(aqdont_change\(aq = don\(aqt set or change Channel Access
  94114. .IP \(bu 2
  94115. \(aqnon_volatile\(aq = set non\-volatile Channel Access
  94116. .IP \(bu 2
  94117. \(aqvolatile\(aq = set volatile (active) setting of Channel Access
  94118. .UNINDENT
  94119. .IP \(bu 2
  94120. \fBalerting\fP \-\-
  94121. .sp
  94122. PEF Alerting Enable/Disable
  94123. .INDENT 2.0
  94124. .IP \(bu 2
  94125. True = enable PEF Alerting
  94126. .IP \(bu 2
  94127. False = disable PEF Alerting on this channel
  94128. (Alert Immediate command can still be used to generate alerts)
  94129. .UNINDENT
  94130. .IP \(bu 2
  94131. \fBper_msg_auth\fP \-\-
  94132. .sp
  94133. Per\-message Authentication
  94134. .INDENT 2.0
  94135. .IP \(bu 2
  94136. True = enable
  94137. .IP \(bu 2
  94138. False = disable Per\-message Authentication. [Authentication required to
  94139. activate any session on this channel, but authentication not
  94140. used on subsequent packets for the session.]
  94141. .UNINDENT
  94142. .IP \(bu 2
  94143. \fBuser_level_auth\fP \-\-
  94144. .sp
  94145. User Level Authentication Enable/Disable
  94146. .INDENT 2.0
  94147. .IP \(bu 2
  94148. True = enable User Level Authentication. All User Level commands are
  94149. to be authenticated per the Authentication Type that was
  94150. negotiated when the session was activated.
  94151. .IP \(bu 2
  94152. False = disable User Level Authentication. Allow User Level commands to
  94153. be executed without being authenticated.
  94154. If the option to disable User Level Command authentication is
  94155. accepted, the BMC will accept packets with Authentication Type
  94156. set to None if they contain user level commands.
  94157. For outgoing packets, the BMC returns responses with the same
  94158. Authentication Type that was used for the request.
  94159. .UNINDENT
  94160. .IP \(bu 2
  94161. \fBaccess_mode\fP \-\-
  94162. .sp
  94163. Access Mode for IPMI messaging (PEF Alerting is enabled/disabled
  94164. separately from IPMI messaging)
  94165. .INDENT 2.0
  94166. .IP \(bu 2
  94167. disabled = disabled for IPMI messaging
  94168. .IP \(bu 2
  94169. pre_boot = pre\-boot only channel only available when system is
  94170. in a powered down state or in BIOS prior to start of boot.
  94171. .IP \(bu 2
  94172. always = channel always available regardless of system mode.
  94173. BIOS typically dedicates the serial connection to the BMC.
  94174. .IP \(bu 2
  94175. shared = same as always available, but BIOS typically leaves the
  94176. serial port available for software use.
  94177. .UNINDENT
  94178. .IP \(bu 2
  94179. \fBprivilege_update_mode\fP \-\-
  94180. .sp
  94181. Channel Privilege Level Limit. This value sets the maximum privilege
  94182. level that can be accepted on the specified channel.
  94183. .INDENT 2.0
  94184. .IP \(bu 2
  94185. dont_change = don\(aqt set or change channel Privilege Level Limit
  94186. .IP \(bu 2
  94187. non_volatile = non\-volatile Privilege Level Limit according
  94188. .IP \(bu 2
  94189. volatile = volatile setting of Privilege Level Limit
  94190. .UNINDENT
  94191. .IP \(bu 2
  94192. \fBprivilege_level\fP \-\-
  94193. .sp
  94194. Channel Privilege Level Limit
  94195. .INDENT 2.0
  94196. .IP \(bu 2
  94197. reserved = unused
  94198. .IP \(bu 2
  94199. callback
  94200. .IP \(bu 2
  94201. user
  94202. .IP \(bu 2
  94203. operator
  94204. .IP \(bu 2
  94205. administrator
  94206. .IP \(bu 2
  94207. proprietary = used by OEM
  94208. .UNINDENT
  94209. .IP \(bu 2
  94210. \fBkwargs\fP \-\- .INDENT 2.0
  94211. .IP \(bu 2
  94212. api_host=127.0.0.1
  94213. .IP \(bu 2
  94214. api_user=admin
  94215. .IP \(bu 2
  94216. api_pass=example
  94217. .IP \(bu 2
  94218. api_port=623
  94219. .IP \(bu 2
  94220. api_kg=None
  94221. .UNINDENT
  94222. .UNINDENT
  94223. .UNINDENT
  94224. .sp
  94225. CLI Examples:
  94226. .INDENT 7.0
  94227. .INDENT 3.5
  94228. .sp
  94229. .nf
  94230. .ft C
  94231. salt\-call ipmi.set_channel_access privilege_level=\(aqadministrator\(aq
  94232. .ft P
  94233. .fi
  94234. .UNINDENT
  94235. .UNINDENT
  94236. .UNINDENT
  94237. .INDENT 0.0
  94238. .TP
  94239. .B salt.modules.ipmi.set_identify(on=True, duration=600, **kwargs)
  94240. Request identify light
  94241. .sp
  94242. Request the identify light to turn off, on for a duration,
  94243. or on indefinitely. Other than error exceptions,
  94244. .INDENT 7.0
  94245. .TP
  94246. .B Parameters
  94247. .INDENT 7.0
  94248. .IP \(bu 2
  94249. \fBon\fP \-\- Set to True to force on or False to force off
  94250. .IP \(bu 2
  94251. \fBduration\fP \-\- Set if wanting to request turn on for a duration
  94252. in seconds, None = indefinitely.
  94253. .IP \(bu 2
  94254. \fBkwargs\fP \-\- .INDENT 2.0
  94255. .IP \(bu 2
  94256. api_host=127.0.0.1
  94257. .IP \(bu 2
  94258. api_user=admin
  94259. .IP \(bu 2
  94260. api_pass=example
  94261. .IP \(bu 2
  94262. api_port=623
  94263. .IP \(bu 2
  94264. api_kg=None
  94265. .UNINDENT
  94266. .UNINDENT
  94267. .UNINDENT
  94268. .sp
  94269. CLI Examples:
  94270. .INDENT 7.0
  94271. .INDENT 3.5
  94272. .sp
  94273. .nf
  94274. .ft C
  94275. salt\-call ipmi.set_identify
  94276. .ft P
  94277. .fi
  94278. .UNINDENT
  94279. .UNINDENT
  94280. .UNINDENT
  94281. .INDENT 0.0
  94282. .TP
  94283. .B salt.modules.ipmi.set_power(state=u\(aqpower_on\(aq, wait=True, **kwargs)
  94284. Request power state change
  94285. .INDENT 7.0
  94286. .TP
  94287. .B Parameters
  94288. .INDENT 7.0
  94289. .IP \(bu 2
  94290. \fBname\fP \-\- .INDENT 2.0
  94291. .IP \(bu 2
  94292. power_on \-\- system turn on
  94293. .IP \(bu 2
  94294. power_off \-\- system turn off (without waiting for OS)
  94295. .IP \(bu 2
  94296. shutdown \-\- request OS proper shutdown
  94297. .IP \(bu 2
  94298. reset \-\- reset (without waiting for OS)
  94299. .IP \(bu 2
  94300. boot \-\- If system is off, then \(aqon\(aq, else \(aqreset\(aq
  94301. .UNINDENT
  94302. .IP \(bu 2
  94303. \fBensure\fP \-\- If (bool True), do not return until system actually completes
  94304. requested state change for 300 seconds.
  94305. If a non\-zero (int), adjust the wait time to the
  94306. requested number of seconds
  94307. .IP \(bu 2
  94308. \fBkwargs\fP \-\- .INDENT 2.0
  94309. .IP \(bu 2
  94310. api_host=127.0.0.1
  94311. .IP \(bu 2
  94312. api_user=admin
  94313. .IP \(bu 2
  94314. api_pass=example
  94315. .IP \(bu 2
  94316. api_port=623
  94317. .IP \(bu 2
  94318. api_kg=None
  94319. .UNINDENT
  94320. .UNINDENT
  94321. .TP
  94322. .B Returns
  94323. dict \-\- A dict describing the response retrieved
  94324. .UNINDENT
  94325. .sp
  94326. CLI Examples:
  94327. .INDENT 7.0
  94328. .INDENT 3.5
  94329. .sp
  94330. .nf
  94331. .ft C
  94332. salt\-call ipmi.set_power state=shutdown wait=True
  94333. .ft P
  94334. .fi
  94335. .UNINDENT
  94336. .UNINDENT
  94337. .UNINDENT
  94338. .INDENT 0.0
  94339. .TP
  94340. .B salt.modules.ipmi.set_user_access(uid, channel=14, callback=True, link_auth=True, ipmi_msg=True, privilege_level=u\(aqadministrator\(aq, **kwargs)
  94341. Set user access
  94342. .INDENT 7.0
  94343. .TP
  94344. .B Parameters
  94345. .INDENT 7.0
  94346. .IP \(bu 2
  94347. \fBuid\fP \-\- user number [1:16]
  94348. .IP \(bu 2
  94349. \fBchannel\fP \-\- number [1:7]
  94350. .IP \(bu 2
  94351. \fBcallback\fP \-\-
  94352. .sp
  94353. User Restricted to Callback
  94354. .INDENT 2.0
  94355. .IP \(bu 2
  94356. False = User Privilege Limit is determined by the User Privilege Limit
  94357. parameter, below, for both callback and non\-callback connections.
  94358. .IP \(bu 2
  94359. True = User Privilege Limit is determined by the User Privilege Limit
  94360. parameter for callback connections, but is restricted to Callback
  94361. level for non\-callback connections. Thus, a user can only initiate
  94362. a Callback when they \(aqcall in\(aq to the BMC, but once the callback
  94363. connection has been made, the user could potentially establish a
  94364. session as an Operator.
  94365. .UNINDENT
  94366. .IP \(bu 2
  94367. \fBlink_auth\fP \-\- User Link authentication enable/disable (used to enable
  94368. whether this user\(aqs name and password information will be used for link
  94369. authentication, e.g. PPP CHAP) for the given channel. Link
  94370. authentication itself is a global setting for the channel and is
  94371. enabled/disabled via the serial/modem configuration parameters.
  94372. .IP \(bu 2
  94373. \fBipmi_msg\fP \-\- User IPMI Messaging: (used to enable/disable whether
  94374. this user\(aqs name and password information will be used for IPMI
  94375. Messaging. In this case, \(aqIPMI Messaging\(aq refers to the ability to
  94376. execute generic IPMI commands that are not associated with a
  94377. particular payload type. For example, if IPMI Messaging is disabled for
  94378. a user, but that user is enabled for activating the SOL
  94379. payload type, then IPMI commands associated with SOL and session
  94380. management, such as Get SOL Configuration Parameters and Close Session
  94381. are available, but generic IPMI commands such as Get SEL Time are
  94382. unavailable.)
  94383. .IP \(bu 2
  94384. \fBprivilege_level\fP \-\-
  94385. .sp
  94386. User Privilege Limit. (Determines the maximum privilege level that the
  94387. user is allowed to switch to on the specified channel.)
  94388. .INDENT 2.0
  94389. .IP \(bu 2
  94390. callback
  94391. .IP \(bu 2
  94392. user
  94393. .IP \(bu 2
  94394. operator
  94395. .IP \(bu 2
  94396. administrator
  94397. .IP \(bu 2
  94398. proprietary
  94399. .IP \(bu 2
  94400. no_access
  94401. .UNINDENT
  94402. .IP \(bu 2
  94403. \fBkwargs\fP \-\- .INDENT 2.0
  94404. .IP \(bu 2
  94405. api_host=127.0.0.1
  94406. .IP \(bu 2
  94407. api_user=admin
  94408. .IP \(bu 2
  94409. api_pass=example
  94410. .IP \(bu 2
  94411. api_port=623
  94412. .IP \(bu 2
  94413. api_kg=None
  94414. .UNINDENT
  94415. .UNINDENT
  94416. .UNINDENT
  94417. .sp
  94418. CLI Examples:
  94419. .INDENT 7.0
  94420. .INDENT 3.5
  94421. .sp
  94422. .nf
  94423. .ft C
  94424. salt\-call ipmi.set_user_access uid=2 privilege_level=\(aqoperator\(aq
  94425. .ft P
  94426. .fi
  94427. .UNINDENT
  94428. .UNINDENT
  94429. .UNINDENT
  94430. .INDENT 0.0
  94431. .TP
  94432. .B salt.modules.ipmi.set_user_name(uid, name, **kwargs)
  94433. Set user name
  94434. .INDENT 7.0
  94435. .TP
  94436. .B Parameters
  94437. .INDENT 7.0
  94438. .IP \(bu 2
  94439. \fBuid\fP \-\- user number [1:16]
  94440. .IP \(bu 2
  94441. \fBname\fP \-\- username (limit of 16bytes)
  94442. .IP \(bu 2
  94443. \fBkwargs\fP \-\- .INDENT 2.0
  94444. .IP \(bu 2
  94445. api_host=127.0.0.1
  94446. .IP \(bu 2
  94447. api_user=admin
  94448. .IP \(bu 2
  94449. api_pass=example
  94450. .IP \(bu 2
  94451. api_port=623
  94452. .IP \(bu 2
  94453. api_kg=None
  94454. .UNINDENT
  94455. .UNINDENT
  94456. .UNINDENT
  94457. .sp
  94458. CLI Examples:
  94459. .INDENT 7.0
  94460. .INDENT 3.5
  94461. .sp
  94462. .nf
  94463. .ft C
  94464. salt\-call ipmi.set_user_name uid=2 name=\(aqsteverweber\(aq
  94465. .ft P
  94466. .fi
  94467. .UNINDENT
  94468. .UNINDENT
  94469. .UNINDENT
  94470. .INDENT 0.0
  94471. .TP
  94472. .B salt.modules.ipmi.set_user_password(uid, mode=u\(aqset_password\(aq, password=None, **kwargs)
  94473. Set user password and (modes)
  94474. .INDENT 7.0
  94475. .TP
  94476. .B Parameters
  94477. .INDENT 7.0
  94478. .IP \(bu 2
  94479. \fBuid\fP \-\- id number of user. see: get_names_uid()[\(aqname\(aq]
  94480. .IP \(bu 2
  94481. \fBmode\fP \-\- .INDENT 2.0
  94482. .IP \(bu 2
  94483. disable = disable user connections
  94484. .IP \(bu 2
  94485. enable = enable user connections
  94486. .IP \(bu 2
  94487. set_password = set or ensure password
  94488. .IP \(bu 2
  94489. test_password = test password is correct
  94490. .UNINDENT
  94491. .IP \(bu 2
  94492. \fBpassword\fP \-\- max 16 char string
  94493. (optional when mode is [disable or enable])
  94494. .IP \(bu 2
  94495. \fBkwargs\fP \-\- .INDENT 2.0
  94496. .IP \(bu 2
  94497. api_host=127.0.0.1
  94498. .IP \(bu 2
  94499. api_user=admin
  94500. .IP \(bu 2
  94501. api_pass=example
  94502. .IP \(bu 2
  94503. api_port=623
  94504. .IP \(bu 2
  94505. api_kg=None
  94506. .UNINDENT
  94507. .UNINDENT
  94508. .TP
  94509. .B Returns
  94510. True on success
  94511. when mode = test_password, return False on bad password
  94512. .UNINDENT
  94513. .sp
  94514. CLI Example:
  94515. .INDENT 7.0
  94516. .INDENT 3.5
  94517. .sp
  94518. .nf
  94519. .ft C
  94520. salt\-call ipmi.set_user_password api_host=127.0.0.1 api_user=admin api_pass=pass
  94521. uid=1 password=newPass
  94522. salt\-call ipmi.set_user_password uid=1 mode=enable
  94523. .ft P
  94524. .fi
  94525. .UNINDENT
  94526. .UNINDENT
  94527. .UNINDENT
  94528. .INDENT 0.0
  94529. .TP
  94530. .B salt.modules.ipmi.user_delete(uid, channel=14, **kwargs)
  94531. Delete user (helper)
  94532. .INDENT 7.0
  94533. .TP
  94534. .B Parameters
  94535. .INDENT 7.0
  94536. .IP \(bu 2
  94537. \fBuid\fP \-\- user number [1:16]
  94538. .IP \(bu 2
  94539. \fBchannel\fP \-\- number [1:7]
  94540. .IP \(bu 2
  94541. \fBkwargs\fP \-\- .INDENT 2.0
  94542. .IP \(bu 2
  94543. api_host=127.0.0.1
  94544. .IP \(bu 2
  94545. api_user=admin
  94546. .IP \(bu 2
  94547. api_pass=example
  94548. .IP \(bu 2
  94549. api_port=623
  94550. .IP \(bu 2
  94551. api_kg=None
  94552. .UNINDENT
  94553. .UNINDENT
  94554. .UNINDENT
  94555. .sp
  94556. CLI Examples:
  94557. .INDENT 7.0
  94558. .INDENT 3.5
  94559. .sp
  94560. .nf
  94561. .ft C
  94562. salt\-call ipmi.user_delete uid=2
  94563. .ft P
  94564. .fi
  94565. .UNINDENT
  94566. .UNINDENT
  94567. .UNINDENT
  94568. .SS salt.modules.jboss7_cli
  94569. .sp
  94570. Module for low\-level interaction with JbossAS7 through CLI.
  94571. .sp
  94572. This module exposes two ways of interaction with the CLI, either through commands or operations.
  94573. .sp
  94574. \fBNOTE:\fP
  94575. .INDENT 0.0
  94576. .INDENT 3.5
  94577. Following JBoss documentation (\fI\%https://developer.jboss.org/wiki/CommandLineInterface\fP):
  94578. "Operations are considered a low level but comprehensive way to manage the AS controller, i.e. if it can\(aqt be done with operations it can\(aqt be done in any other way.
  94579. Commands, on the other hand, are more user\-friendly in syntax,
  94580. although most of them still translate into operation requests and some of them even into a few
  94581. composite operation requests, i.e. commands also simplify some management operations from the user\(aqs point of view."
  94582. .UNINDENT
  94583. .UNINDENT
  94584. .sp
  94585. The difference between calling a command or operation is in handling the result.
  94586. Commands return a zero return code if operation is successful or return non\-zero return code and
  94587. print an error to standard output in plain text, in case of an error.
  94588. .sp
  94589. Operations return a json\-like structure, that contain more information about the result.
  94590. In case of a failure, they also return a specific return code. This module parses the output from the operations and
  94591. returns it as a dictionary so that an execution of an operation can then be verified against specific errors.
  94592. .INDENT 0.0
  94593. .TP
  94594. .B In order to run each function, jboss_config dictionary with the following properties must be passed:
  94595. .INDENT 7.0
  94596. .IP \(bu 2
  94597. cli_path: the path to jboss\-cli script, for example: \(aq/opt/jboss/jboss\-7.0/bin/jboss\-cli.sh\(aq
  94598. .IP \(bu 2
  94599. controller: the IP address and port of controller, for example: 10.11.12.13:9999
  94600. .IP \(bu 2
  94601. cli_user: username to connect to jboss administration console if necessary
  94602. .IP \(bu 2
  94603. cli_password: password to connect to jboss administration console if necessary
  94604. .UNINDENT
  94605. .UNINDENT
  94606. .sp
  94607. Example:
  94608. .INDENT 0.0
  94609. .INDENT 3.5
  94610. .sp
  94611. .nf
  94612. .ft C
  94613. jboss_config:
  94614. cli_path: \(aq/opt/jboss/jboss\-7.0/bin/jboss\-cli.sh\(aq
  94615. controller: 10.11.12.13:9999
  94616. cli_user: \(aqjbossadm\(aq
  94617. cli_password: \(aqjbossadm\(aq
  94618. .ft P
  94619. .fi
  94620. .UNINDENT
  94621. .UNINDENT
  94622. .INDENT 0.0
  94623. .TP
  94624. .B salt.modules.jboss7_cli.run_command(jboss_config, command, fail_on_error=True)
  94625. Execute a command against jboss instance through the CLI interface.
  94626. .INDENT 7.0
  94627. .TP
  94628. .B jboss_config
  94629. Configuration dictionary with properties specified above.
  94630. .TP
  94631. .B command
  94632. Command to execute against jboss instance
  94633. .TP
  94634. .B fail_on_error (default=True)
  94635. Is true, raise CommandExecutionError exception if execution fails.
  94636. If false, \(aqsuccess\(aq property of the returned dictionary is set to False
  94637. .UNINDENT
  94638. .sp
  94639. CLI Example:
  94640. .INDENT 7.0
  94641. .INDENT 3.5
  94642. .sp
  94643. .nf
  94644. .ft C
  94645. salt \(aq*\(aq jboss7_cli.run_command \(aq{"cli_path": "integration.modules.sysmod.SysModuleTest.test_valid_docs", "controller": "10.11.12.13:9999", "cli_user": "jbossadm", "cli_password": "jbossadm"}\(aq my_command
  94646. .ft P
  94647. .fi
  94648. .UNINDENT
  94649. .UNINDENT
  94650. .UNINDENT
  94651. .INDENT 0.0
  94652. .TP
  94653. .B salt.modules.jboss7_cli.run_operation(jboss_config, operation, fail_on_error=True, retries=1)
  94654. Execute an operation against jboss instance through the CLI interface.
  94655. .INDENT 7.0
  94656. .TP
  94657. .B jboss_config
  94658. Configuration dictionary with properties specified above.
  94659. .TP
  94660. .B operation
  94661. An operation to execute against jboss instance
  94662. .TP
  94663. .B fail_on_error (default=True)
  94664. Is true, raise CommandExecutionError exception if execution fails.
  94665. If false, \(aqsuccess\(aq property of the returned dictionary is set to False
  94666. .TP
  94667. .B retries:
  94668. Number of retries in case of "JBAS012144: Could not connect to remote" error.
  94669. .UNINDENT
  94670. .sp
  94671. CLI Example:
  94672. .INDENT 7.0
  94673. .INDENT 3.5
  94674. .sp
  94675. .nf
  94676. .ft C
  94677. salt \(aq*\(aq jboss7_cli.run_operation \(aq{"cli_path": "integration.modules.sysmod.SysModuleTest.test_valid_docs", "controller": "10.11.12.13:9999", "cli_user": "jbossadm", "cli_password": "jbossadm"}\(aq my_operation
  94678. .ft P
  94679. .fi
  94680. .UNINDENT
  94681. .UNINDENT
  94682. .UNINDENT
  94683. .SS salt.modules.kernelpkg_linux_apt
  94684. .sp
  94685. Manage Linux kernel packages on APT\-based systems
  94686. .INDENT 0.0
  94687. .TP
  94688. .B salt.modules.kernelpkg_linux_apt.active()
  94689. Return the version of the running kernel.
  94690. .sp
  94691. CLI Example:
  94692. .INDENT 7.0
  94693. .INDENT 3.5
  94694. .sp
  94695. .nf
  94696. .ft C
  94697. salt \(aq*\(aq kernelpkg.active
  94698. .ft P
  94699. .fi
  94700. .UNINDENT
  94701. .UNINDENT
  94702. .UNINDENT
  94703. .INDENT 0.0
  94704. .TP
  94705. .B salt.modules.kernelpkg_linux_apt.cleanup(keep_latest=True)
  94706. Remove all unused kernel packages from the system.
  94707. .INDENT 7.0
  94708. .TP
  94709. .B keep_latest
  94710. True
  94711. In the event that the active kernel is not the latest one installed, setting this to True
  94712. will retain the latest kernel package, in addition to the active one. If False, all kernel
  94713. packages other than the active one will be removed.
  94714. .UNINDENT
  94715. .sp
  94716. CLI Example:
  94717. .INDENT 7.0
  94718. .INDENT 3.5
  94719. .sp
  94720. .nf
  94721. .ft C
  94722. salt \(aq*\(aq kernelpkg.cleanup
  94723. .ft P
  94724. .fi
  94725. .UNINDENT
  94726. .UNINDENT
  94727. .UNINDENT
  94728. .INDENT 0.0
  94729. .TP
  94730. .B salt.modules.kernelpkg_linux_apt.latest_available()
  94731. Return the version of the latest kernel from the package repositories.
  94732. .sp
  94733. CLI Example:
  94734. .INDENT 7.0
  94735. .INDENT 3.5
  94736. .sp
  94737. .nf
  94738. .ft C
  94739. salt \(aq*\(aq kernelpkg.latest_available
  94740. .ft P
  94741. .fi
  94742. .UNINDENT
  94743. .UNINDENT
  94744. .UNINDENT
  94745. .INDENT 0.0
  94746. .TP
  94747. .B salt.modules.kernelpkg_linux_apt.latest_installed()
  94748. Return the version of the latest installed kernel.
  94749. .sp
  94750. CLI Example:
  94751. .INDENT 7.0
  94752. .INDENT 3.5
  94753. .sp
  94754. .nf
  94755. .ft C
  94756. salt \(aq*\(aq kernelpkg.latest_installed
  94757. .ft P
  94758. .fi
  94759. .UNINDENT
  94760. .UNINDENT
  94761. .sp
  94762. \fBNOTE:\fP
  94763. .INDENT 7.0
  94764. .INDENT 3.5
  94765. This function may not return the same value as
  94766. \fI\%active()\fP if a new kernel
  94767. has been installed and the system has not yet been rebooted.
  94768. The \fI\%needs_reboot()\fP function
  94769. exists to detect this condition.
  94770. .UNINDENT
  94771. .UNINDENT
  94772. .UNINDENT
  94773. .INDENT 0.0
  94774. .TP
  94775. .B salt.modules.kernelpkg_linux_apt.list_installed()
  94776. Return a list of all installed kernels.
  94777. .sp
  94778. CLI Example:
  94779. .INDENT 7.0
  94780. .INDENT 3.5
  94781. .sp
  94782. .nf
  94783. .ft C
  94784. salt \(aq*\(aq kernelpkg.list_installed
  94785. .ft P
  94786. .fi
  94787. .UNINDENT
  94788. .UNINDENT
  94789. .UNINDENT
  94790. .INDENT 0.0
  94791. .TP
  94792. .B salt.modules.kernelpkg_linux_apt.needs_reboot()
  94793. Detect if a new kernel version has been installed but is not running.
  94794. Returns True if a new kernel is installed, False otherwise.
  94795. .sp
  94796. CLI Example:
  94797. .INDENT 7.0
  94798. .INDENT 3.5
  94799. .sp
  94800. .nf
  94801. .ft C
  94802. salt \(aq*\(aq kernelpkg.needs_reboot
  94803. .ft P
  94804. .fi
  94805. .UNINDENT
  94806. .UNINDENT
  94807. .UNINDENT
  94808. .INDENT 0.0
  94809. .TP
  94810. .B salt.modules.kernelpkg_linux_apt.remove(release)
  94811. Remove a specific version of the kernel.
  94812. .INDENT 7.0
  94813. .TP
  94814. .B release
  94815. The release number of an installed kernel. This must be the entire release
  94816. number as returned by \fI\%list_installed()\fP,
  94817. not the package name.
  94818. .UNINDENT
  94819. .sp
  94820. CLI Example:
  94821. .INDENT 7.0
  94822. .INDENT 3.5
  94823. .sp
  94824. .nf
  94825. .ft C
  94826. salt \(aq*\(aq kernelpkg.remove 4.4.0\-70\-generic
  94827. .ft P
  94828. .fi
  94829. .UNINDENT
  94830. .UNINDENT
  94831. .UNINDENT
  94832. .INDENT 0.0
  94833. .TP
  94834. .B salt.modules.kernelpkg_linux_apt.upgrade(reboot=False, at_time=None)
  94835. Upgrade the kernel and optionally reboot the system.
  94836. .INDENT 7.0
  94837. .TP
  94838. .B reboot
  94839. False
  94840. Request a reboot if a new kernel is available.
  94841. .TP
  94842. .B at_time
  94843. immediate
  94844. Schedule the reboot at some point in the future. This argument
  94845. is ignored if \fBreboot=False\fP\&. See
  94846. \fBreboot()\fP for more details
  94847. on this argument.
  94848. .UNINDENT
  94849. .sp
  94850. CLI Example:
  94851. .INDENT 7.0
  94852. .INDENT 3.5
  94853. .sp
  94854. .nf
  94855. .ft C
  94856. salt \(aq*\(aq kernelpkg.upgrade
  94857. salt \(aq*\(aq kernelpkg.upgrade reboot=True at_time=1
  94858. .ft P
  94859. .fi
  94860. .UNINDENT
  94861. .UNINDENT
  94862. .sp
  94863. \fBNOTE:\fP
  94864. .INDENT 7.0
  94865. .INDENT 3.5
  94866. An immediate reboot often shuts down the system before the minion has a
  94867. chance to return, resulting in errors. A minimal delay (1 minute) is
  94868. useful to ensure the result is delivered to the master.
  94869. .UNINDENT
  94870. .UNINDENT
  94871. .UNINDENT
  94872. .INDENT 0.0
  94873. .TP
  94874. .B salt.modules.kernelpkg_linux_apt.upgrade_available()
  94875. Detect if a new kernel version is available in the repositories.
  94876. Returns True if a new kernel is available, False otherwise.
  94877. .sp
  94878. CLI Example:
  94879. .INDENT 7.0
  94880. .INDENT 3.5
  94881. .sp
  94882. .nf
  94883. .ft C
  94884. salt \(aq*\(aq kernelpkg.upgrade_available
  94885. .ft P
  94886. .fi
  94887. .UNINDENT
  94888. .UNINDENT
  94889. .UNINDENT
  94890. .SS salt.modules.keystoneng
  94891. .sp
  94892. Keystone module for interacting with OpenStack Keystone
  94893. .sp
  94894. New in version 2018.3.0.
  94895. .sp
  94896. :depends:shade
  94897. .sp
  94898. Example configuration
  94899. .INDENT 0.0
  94900. .INDENT 3.5
  94901. .sp
  94902. .nf
  94903. .ft C
  94904. keystone:
  94905. cloud: default
  94906. .ft P
  94907. .fi
  94908. .UNINDENT
  94909. .UNINDENT
  94910. .INDENT 0.0
  94911. .INDENT 3.5
  94912. .sp
  94913. .nf
  94914. .ft C
  94915. keystone:
  94916. auth:
  94917. username: admin
  94918. password: password123
  94919. user_domain_name: mydomain
  94920. project_name: myproject
  94921. project_domain_name: myproject
  94922. auth_url: https://example.org:5000/v3
  94923. identity_api_version: 3
  94924. .ft P
  94925. .fi
  94926. .UNINDENT
  94927. .UNINDENT
  94928. .INDENT 0.0
  94929. .TP
  94930. .B salt.modules.keystoneng.compare_changes(obj, **kwargs)
  94931. Compare two dicts returning only keys that exist in the first dict and are
  94932. different in the second one
  94933. .UNINDENT
  94934. .INDENT 0.0
  94935. .TP
  94936. .B salt.modules.keystoneng.domain_create(auth=None, **kwargs)
  94937. Create a domain
  94938. .sp
  94939. CLI Example:
  94940. .INDENT 7.0
  94941. .INDENT 3.5
  94942. .sp
  94943. .nf
  94944. .ft C
  94945. salt \(aq*\(aq keystoneng.domain_create name=domain1
  94946. .ft P
  94947. .fi
  94948. .UNINDENT
  94949. .UNINDENT
  94950. .UNINDENT
  94951. .INDENT 0.0
  94952. .TP
  94953. .B salt.modules.keystoneng.domain_delete(auth=None, **kwargs)
  94954. Delete a domain
  94955. .sp
  94956. CLI Example:
  94957. .INDENT 7.0
  94958. .INDENT 3.5
  94959. .sp
  94960. .nf
  94961. .ft C
  94962. salt \(aq*\(aq keystoneng.domain_delete name=domain1
  94963. salt \(aq*\(aq keystoneng.domain_delete name=b62e76fbeeff4e8fb77073f591cf211e
  94964. .ft P
  94965. .fi
  94966. .UNINDENT
  94967. .UNINDENT
  94968. .UNINDENT
  94969. .INDENT 0.0
  94970. .TP
  94971. .B salt.modules.keystoneng.domain_get(auth=None, **kwargs)
  94972. Get a single domain
  94973. .sp
  94974. CLI Example:
  94975. .INDENT 7.0
  94976. .INDENT 3.5
  94977. .sp
  94978. .nf
  94979. .ft C
  94980. salt \(aq*\(aq keystoneng.domain_get name=domain1
  94981. salt \(aq*\(aq keystoneng.domain_get name=b62e76fbeeff4e8fb77073f591cf211e
  94982. .ft P
  94983. .fi
  94984. .UNINDENT
  94985. .UNINDENT
  94986. .UNINDENT
  94987. .INDENT 0.0
  94988. .TP
  94989. .B salt.modules.keystoneng.domain_list(auth=None, **kwargs)
  94990. List domains
  94991. .sp
  94992. CLI Example:
  94993. .INDENT 7.0
  94994. .INDENT 3.5
  94995. .sp
  94996. .nf
  94997. .ft C
  94998. salt \(aq*\(aq keystoneng.domain_list
  94999. .ft P
  95000. .fi
  95001. .UNINDENT
  95002. .UNINDENT
  95003. .UNINDENT
  95004. .INDENT 0.0
  95005. .TP
  95006. .B salt.modules.keystoneng.domain_search(auth=None, **kwargs)
  95007. Search domains
  95008. .sp
  95009. CLI Example:
  95010. .INDENT 7.0
  95011. .INDENT 3.5
  95012. .sp
  95013. .nf
  95014. .ft C
  95015. salt \(aq*\(aq keystoneng.domain_search
  95016. salt \(aq*\(aq keystoneng.domain_search name=domain1
  95017. .ft P
  95018. .fi
  95019. .UNINDENT
  95020. .UNINDENT
  95021. .UNINDENT
  95022. .INDENT 0.0
  95023. .TP
  95024. .B salt.modules.keystoneng.domain_update(auth=None, **kwargs)
  95025. Update a domain
  95026. .sp
  95027. CLI Example:
  95028. .INDENT 7.0
  95029. .INDENT 3.5
  95030. .sp
  95031. .nf
  95032. .ft C
  95033. salt \(aq*\(aq keystoneng.domain_update name=domain1 new_name=newdomain
  95034. salt \(aq*\(aq keystoneng.domain_update name=domain1 enabled=True description=\(aqnew description\(aq
  95035. .ft P
  95036. .fi
  95037. .UNINDENT
  95038. .UNINDENT
  95039. .UNINDENT
  95040. .INDENT 0.0
  95041. .TP
  95042. .B salt.modules.keystoneng.endpoint_create(auth=None, **kwargs)
  95043. Create an endpoint
  95044. .sp
  95045. CLI Example:
  95046. .INDENT 7.0
  95047. .INDENT 3.5
  95048. .sp
  95049. .nf
  95050. .ft C
  95051. salt \(aq*\(aq keystoneng.endpoint_create interface=admin service=glance url=https://example.org:9292
  95052. salt \(aq*\(aq keystoneng.endpoint_create interface=public service=glance region=RegionOne url=https://example.org:9292
  95053. salt \(aq*\(aq keystoneng.endpoint_create interface=admin service=glance url=https://example.org:9292 enabled=True
  95054. .ft P
  95055. .fi
  95056. .UNINDENT
  95057. .UNINDENT
  95058. .UNINDENT
  95059. .INDENT 0.0
  95060. .TP
  95061. .B salt.modules.keystoneng.endpoint_delete(auth=None, **kwargs)
  95062. Delete an endpoint
  95063. .sp
  95064. CLI Example:
  95065. .INDENT 7.0
  95066. .INDENT 3.5
  95067. .sp
  95068. .nf
  95069. .ft C
  95070. salt \(aq*\(aq keystoneng.endpoint_delete id=3bee4bd8c2b040ee966adfda1f0bfca9
  95071. .ft P
  95072. .fi
  95073. .UNINDENT
  95074. .UNINDENT
  95075. .UNINDENT
  95076. .INDENT 0.0
  95077. .TP
  95078. .B salt.modules.keystoneng.endpoint_get(auth=None, **kwargs)
  95079. Get a single endpoint
  95080. .sp
  95081. CLI Example:
  95082. .INDENT 7.0
  95083. .INDENT 3.5
  95084. .sp
  95085. .nf
  95086. .ft C
  95087. salt \(aq*\(aq keystoneng.endpoint_get id=02cffaa173b2460f98e40eda3748dae5
  95088. .ft P
  95089. .fi
  95090. .UNINDENT
  95091. .UNINDENT
  95092. .UNINDENT
  95093. .INDENT 0.0
  95094. .TP
  95095. .B salt.modules.keystoneng.endpoint_list(auth=None, **kwargs)
  95096. List endpoints
  95097. .sp
  95098. CLI Example:
  95099. .INDENT 7.0
  95100. .INDENT 3.5
  95101. .sp
  95102. .nf
  95103. .ft C
  95104. salt \(aq*\(aq keystoneng.endpoint_list
  95105. .ft P
  95106. .fi
  95107. .UNINDENT
  95108. .UNINDENT
  95109. .UNINDENT
  95110. .INDENT 0.0
  95111. .TP
  95112. .B salt.modules.keystoneng.endpoint_search(auth=None, **kwargs)
  95113. Search endpoints
  95114. .sp
  95115. CLI Example:
  95116. .INDENT 7.0
  95117. .INDENT 3.5
  95118. .sp
  95119. .nf
  95120. .ft C
  95121. salt \(aq*\(aq keystoneng.endpoint_search
  95122. salt \(aq*\(aq keystoneng.endpoint_search id=02cffaa173b2460f98e40eda3748dae5
  95123. .ft P
  95124. .fi
  95125. .UNINDENT
  95126. .UNINDENT
  95127. .UNINDENT
  95128. .INDENT 0.0
  95129. .TP
  95130. .B salt.modules.keystoneng.endpoint_update(auth=None, **kwargs)
  95131. Update an endpoint
  95132. .sp
  95133. CLI Example:
  95134. .INDENT 7.0
  95135. .INDENT 3.5
  95136. .sp
  95137. .nf
  95138. .ft C
  95139. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 interface=public enabled=False
  95140. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 region=newregion
  95141. salt \(aq*\(aq keystoneng.endpoint_update endpoint_id=4f961ad09d2d48948896bbe7c6a79717 service_name_or_id=glance url=https://example.org:9292
  95142. .ft P
  95143. .fi
  95144. .UNINDENT
  95145. .UNINDENT
  95146. .UNINDENT
  95147. .INDENT 0.0
  95148. .TP
  95149. .B salt.modules.keystoneng.get_entity(ent_type, **kwargs)
  95150. Attempt to query Keystone for more information about an entity
  95151. .UNINDENT
  95152. .INDENT 0.0
  95153. .TP
  95154. .B salt.modules.keystoneng.get_openstack_cloud(auth=None)
  95155. Return an openstack_cloud
  95156. .UNINDENT
  95157. .INDENT 0.0
  95158. .TP
  95159. .B salt.modules.keystoneng.get_operator_cloud(auth=None)
  95160. Return an operator_cloud
  95161. .UNINDENT
  95162. .INDENT 0.0
  95163. .TP
  95164. .B salt.modules.keystoneng.group_create(auth=None, **kwargs)
  95165. Create a group
  95166. .sp
  95167. CLI Example:
  95168. .INDENT 7.0
  95169. .INDENT 3.5
  95170. .sp
  95171. .nf
  95172. .ft C
  95173. salt \(aq*\(aq keystoneng.group_create name=group1
  95174. salt \(aq*\(aq keystoneng.group_create name=group2 domain=domain1 description=\(aqmy group2\(aq
  95175. .ft P
  95176. .fi
  95177. .UNINDENT
  95178. .UNINDENT
  95179. .UNINDENT
  95180. .INDENT 0.0
  95181. .TP
  95182. .B salt.modules.keystoneng.group_delete(auth=None, **kwargs)
  95183. Delete a group
  95184. .sp
  95185. CLI Example:
  95186. .INDENT 7.0
  95187. .INDENT 3.5
  95188. .sp
  95189. .nf
  95190. .ft C
  95191. salt \(aq*\(aq keystoneng.group_delete name=group1
  95192. salt \(aq*\(aq keystoneng.group_delete name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95193. salt \(aq*\(aq keystoneng.group_delete name=0e4febc2a5ab4f2c8f374b054162506d
  95194. .ft P
  95195. .fi
  95196. .UNINDENT
  95197. .UNINDENT
  95198. .UNINDENT
  95199. .INDENT 0.0
  95200. .TP
  95201. .B salt.modules.keystoneng.group_get(auth=None, **kwargs)
  95202. Get a single group
  95203. .sp
  95204. CLI Example:
  95205. .INDENT 7.0
  95206. .INDENT 3.5
  95207. .sp
  95208. .nf
  95209. .ft C
  95210. salt \(aq*\(aq keystoneng.group_get name=group1
  95211. salt \(aq*\(aq keystoneng.group_get name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95212. salt \(aq*\(aq keystoneng.group_get name=0e4febc2a5ab4f2c8f374b054162506d
  95213. .ft P
  95214. .fi
  95215. .UNINDENT
  95216. .UNINDENT
  95217. .UNINDENT
  95218. .INDENT 0.0
  95219. .TP
  95220. .B salt.modules.keystoneng.group_list(auth=None, **kwargs)
  95221. List groups
  95222. .sp
  95223. CLI Example:
  95224. .INDENT 7.0
  95225. .INDENT 3.5
  95226. .sp
  95227. .nf
  95228. .ft C
  95229. salt \(aq*\(aq keystoneng.group_list
  95230. salt \(aq*\(aq keystoneng.group_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95231. .ft P
  95232. .fi
  95233. .UNINDENT
  95234. .UNINDENT
  95235. .UNINDENT
  95236. .INDENT 0.0
  95237. .TP
  95238. .B salt.modules.keystoneng.group_search(auth=None, **kwargs)
  95239. Search for groups
  95240. .sp
  95241. CLI Example:
  95242. .INDENT 7.0
  95243. .INDENT 3.5
  95244. .sp
  95245. .nf
  95246. .ft C
  95247. salt \(aq*\(aq keystoneng.group_search name=group1
  95248. salt \(aq*\(aq keystoneng.group_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95249. .ft P
  95250. .fi
  95251. .UNINDENT
  95252. .UNINDENT
  95253. .UNINDENT
  95254. .INDENT 0.0
  95255. .TP
  95256. .B salt.modules.keystoneng.group_update(auth=None, **kwargs)
  95257. Update a group
  95258. .sp
  95259. CLI Example:
  95260. .INDENT 7.0
  95261. .INDENT 3.5
  95262. .sp
  95263. .nf
  95264. .ft C
  95265. salt \(aq*\(aq keystoneng.group_update name=group1 description=\(aqnew description\(aq
  95266. salt \(aq*\(aq keystoneng.group_create name=group2 domain_id=b62e76fbeeff4e8fb77073f591cf211e new_name=newgroupname
  95267. salt \(aq*\(aq keystoneng.group_create name=0e4febc2a5ab4f2c8f374b054162506d new_name=newgroupname
  95268. .ft P
  95269. .fi
  95270. .UNINDENT
  95271. .UNINDENT
  95272. .UNINDENT
  95273. .INDENT 0.0
  95274. .TP
  95275. .B salt.modules.keystoneng.project_create(auth=None, **kwargs)
  95276. Create a project
  95277. .sp
  95278. CLI Example:
  95279. .INDENT 7.0
  95280. .INDENT 3.5
  95281. .sp
  95282. .nf
  95283. .ft C
  95284. salt \(aq*\(aq keystoneng.project_create name=project1
  95285. salt \(aq*\(aq keystoneng.project_create name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95286. salt \(aq*\(aq keystoneng.project_create name=project3 enabled=False description=\(aqmy project3\(aq
  95287. .ft P
  95288. .fi
  95289. .UNINDENT
  95290. .UNINDENT
  95291. .UNINDENT
  95292. .INDENT 0.0
  95293. .TP
  95294. .B salt.modules.keystoneng.project_delete(auth=None, **kwargs)
  95295. Delete a project
  95296. .sp
  95297. CLI Example:
  95298. .INDENT 7.0
  95299. .INDENT 3.5
  95300. .sp
  95301. .nf
  95302. .ft C
  95303. salt \(aq*\(aq keystoneng.project_delete name=project1
  95304. salt \(aq*\(aq keystoneng.project_delete name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95305. salt \(aq*\(aq keystoneng.project_delete name=f315afcf12f24ad88c92b936c38f2d5a
  95306. .ft P
  95307. .fi
  95308. .UNINDENT
  95309. .UNINDENT
  95310. .UNINDENT
  95311. .INDENT 0.0
  95312. .TP
  95313. .B salt.modules.keystoneng.project_get(auth=None, **kwargs)
  95314. Get a single project
  95315. .sp
  95316. CLI Example:
  95317. .INDENT 7.0
  95318. .INDENT 3.5
  95319. .sp
  95320. .nf
  95321. .ft C
  95322. salt \(aq*\(aq keystoneng.project_get name=project1
  95323. salt \(aq*\(aq keystoneng.project_get name=project2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95324. salt \(aq*\(aq keystoneng.project_get name=f315afcf12f24ad88c92b936c38f2d5a
  95325. .ft P
  95326. .fi
  95327. .UNINDENT
  95328. .UNINDENT
  95329. .UNINDENT
  95330. .INDENT 0.0
  95331. .TP
  95332. .B salt.modules.keystoneng.project_list(auth=None, **kwargs)
  95333. List projects
  95334. .sp
  95335. CLI Example:
  95336. .INDENT 7.0
  95337. .INDENT 3.5
  95338. .sp
  95339. .nf
  95340. .ft C
  95341. salt \(aq*\(aq keystoneng.project_list
  95342. salt \(aq*\(aq keystoneng.project_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95343. .ft P
  95344. .fi
  95345. .UNINDENT
  95346. .UNINDENT
  95347. .UNINDENT
  95348. .INDENT 0.0
  95349. .TP
  95350. .B salt.modules.keystoneng.project_search(auth=None, **kwargs)
  95351. Search projects
  95352. .sp
  95353. CLI Example:
  95354. .INDENT 7.0
  95355. .INDENT 3.5
  95356. .sp
  95357. .nf
  95358. .ft C
  95359. salt \(aq*\(aq keystoneng.project_search
  95360. salt \(aq*\(aq keystoneng.project_search name=project1
  95361. salt \(aq*\(aq keystoneng.project_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95362. .ft P
  95363. .fi
  95364. .UNINDENT
  95365. .UNINDENT
  95366. .UNINDENT
  95367. .INDENT 0.0
  95368. .TP
  95369. .B salt.modules.keystoneng.project_update(auth=None, **kwargs)
  95370. Update a project
  95371. .sp
  95372. CLI Example:
  95373. .INDENT 7.0
  95374. .INDENT 3.5
  95375. .sp
  95376. .nf
  95377. .ft C
  95378. salt \(aq*\(aq keystoneng.project_update name=project1 new_name=newproject
  95379. salt \(aq*\(aq keystoneng.project_update name=project2 enabled=False description=\(aqnew description\(aq
  95380. .ft P
  95381. .fi
  95382. .UNINDENT
  95383. .UNINDENT
  95384. .UNINDENT
  95385. .INDENT 0.0
  95386. .TP
  95387. .B salt.modules.keystoneng.role_assignment_list(auth=None, **kwargs)
  95388. List role assignments
  95389. .sp
  95390. CLI Example:
  95391. .INDENT 7.0
  95392. .INDENT 3.5
  95393. .sp
  95394. .nf
  95395. .ft C
  95396. salt \(aq*\(aq keystoneng.role_assignment_list
  95397. .ft P
  95398. .fi
  95399. .UNINDENT
  95400. .UNINDENT
  95401. .UNINDENT
  95402. .INDENT 0.0
  95403. .TP
  95404. .B salt.modules.keystoneng.role_create(auth=None, **kwargs)
  95405. Create a role
  95406. .sp
  95407. CLI Example:
  95408. .INDENT 7.0
  95409. .INDENT 3.5
  95410. .sp
  95411. .nf
  95412. .ft C
  95413. salt \(aq*\(aq keystoneng.role_create name=role1
  95414. salt \(aq*\(aq keystoneng.role_create name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95415. .ft P
  95416. .fi
  95417. .UNINDENT
  95418. .UNINDENT
  95419. .UNINDENT
  95420. .INDENT 0.0
  95421. .TP
  95422. .B salt.modules.keystoneng.role_delete(auth=None, **kwargs)
  95423. Delete a role
  95424. .sp
  95425. CLI Example:
  95426. .INDENT 7.0
  95427. .INDENT 3.5
  95428. .sp
  95429. .nf
  95430. .ft C
  95431. salt \(aq*\(aq keystoneng.role_delete name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95432. salt \(aq*\(aq keystoneng.role_delete name=1eb6edd5525e4ac39af571adee673559
  95433. .ft P
  95434. .fi
  95435. .UNINDENT
  95436. .UNINDENT
  95437. .UNINDENT
  95438. .INDENT 0.0
  95439. .TP
  95440. .B salt.modules.keystoneng.role_get(auth=None, **kwargs)
  95441. Get a single role
  95442. .sp
  95443. CLI Example:
  95444. .INDENT 7.0
  95445. .INDENT 3.5
  95446. .sp
  95447. .nf
  95448. .ft C
  95449. salt \(aq*\(aq keystoneng.role_get name=role1
  95450. salt \(aq*\(aq keystoneng.role_get name=role1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95451. salt \(aq*\(aq keystoneng.role_get name=1eb6edd5525e4ac39af571adee673559
  95452. .ft P
  95453. .fi
  95454. .UNINDENT
  95455. .UNINDENT
  95456. .UNINDENT
  95457. .INDENT 0.0
  95458. .TP
  95459. .B salt.modules.keystoneng.role_grant(auth=None, **kwargs)
  95460. Grant a role in a project/domain to a user/group
  95461. .sp
  95462. CLI Example:
  95463. .INDENT 7.0
  95464. .INDENT 3.5
  95465. .sp
  95466. .nf
  95467. .ft C
  95468. salt \(aq*\(aq keystoneng.role_grant name=role1 user=user1 project=project1
  95469. salt \(aq*\(aq keystoneng.role_grant name=ddbe3e0ed74e4c7f8027bad4af03339d group=user1 project=project1 domain=domain1
  95470. salt \(aq*\(aq keystoneng.role_grant name=ddbe3e0ed74e4c7f8027bad4af03339d group=19573afd5e4241d8b65c42215bae9704 project=1dcac318a83b4610b7a7f7ba01465548
  95471. .ft P
  95472. .fi
  95473. .UNINDENT
  95474. .UNINDENT
  95475. .UNINDENT
  95476. .INDENT 0.0
  95477. .TP
  95478. .B salt.modules.keystoneng.role_list(auth=None, **kwargs)
  95479. List roles
  95480. .sp
  95481. CLI Example:
  95482. .INDENT 7.0
  95483. .INDENT 3.5
  95484. .sp
  95485. .nf
  95486. .ft C
  95487. salt \(aq*\(aq keystoneng.role_list
  95488. salt \(aq*\(aq keystoneng.role_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95489. .ft P
  95490. .fi
  95491. .UNINDENT
  95492. .UNINDENT
  95493. .UNINDENT
  95494. .INDENT 0.0
  95495. .TP
  95496. .B salt.modules.keystoneng.role_revoke(auth=None, **kwargs)
  95497. Grant a role in a project/domain to a user/group
  95498. .sp
  95499. CLI Example:
  95500. .INDENT 7.0
  95501. .INDENT 3.5
  95502. .sp
  95503. .nf
  95504. .ft C
  95505. salt \(aq*\(aq keystoneng.role_revoke name=role1 user=user1 project=project1
  95506. salt \(aq*\(aq keystoneng.role_revoke name=ddbe3e0ed74e4c7f8027bad4af03339d group=user1 project=project1 domain=domain1
  95507. salt \(aq*\(aq keystoneng.role_revoke name=ddbe3e0ed74e4c7f8027bad4af03339d group=19573afd5e4241d8b65c42215bae9704 project=1dcac318a83b4610b7a7f7ba01465548
  95508. .ft P
  95509. .fi
  95510. .UNINDENT
  95511. .UNINDENT
  95512. .UNINDENT
  95513. .INDENT 0.0
  95514. .TP
  95515. .B salt.modules.keystoneng.role_search(auth=None, **kwargs)
  95516. Search roles
  95517. .sp
  95518. CLI Example:
  95519. .INDENT 7.0
  95520. .INDENT 3.5
  95521. .sp
  95522. .nf
  95523. .ft C
  95524. salt \(aq*\(aq keystoneng.role_search
  95525. salt \(aq*\(aq keystoneng.role_search name=role1
  95526. salt \(aq*\(aq keystoneng.role_search domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95527. .ft P
  95528. .fi
  95529. .UNINDENT
  95530. .UNINDENT
  95531. .UNINDENT
  95532. .INDENT 0.0
  95533. .TP
  95534. .B salt.modules.keystoneng.role_update(auth=None, **kwargs)
  95535. Update a role
  95536. .sp
  95537. CLI Example:
  95538. .INDENT 7.0
  95539. .INDENT 3.5
  95540. .sp
  95541. .nf
  95542. .ft C
  95543. salt \(aq*\(aq keystoneng.role_update name=role1 new_name=newrole
  95544. salt \(aq*\(aq keystoneng.role_update name=1eb6edd5525e4ac39af571adee673559 new_name=newrole
  95545. .ft P
  95546. .fi
  95547. .UNINDENT
  95548. .UNINDENT
  95549. .UNINDENT
  95550. .INDENT 0.0
  95551. .TP
  95552. .B salt.modules.keystoneng.service_create(auth=None, **kwargs)
  95553. Create a service
  95554. .sp
  95555. CLI Example:
  95556. .INDENT 7.0
  95557. .INDENT 3.5
  95558. .sp
  95559. .nf
  95560. .ft C
  95561. salt \(aq*\(aq keystoneng.service_create name=glance type=image
  95562. salt \(aq*\(aq keystoneng.service_create name=glance type=image description="Image"
  95563. .ft P
  95564. .fi
  95565. .UNINDENT
  95566. .UNINDENT
  95567. .UNINDENT
  95568. .INDENT 0.0
  95569. .TP
  95570. .B salt.modules.keystoneng.service_delete(auth=None, **kwargs)
  95571. Delete a service
  95572. .sp
  95573. CLI Example:
  95574. .INDENT 7.0
  95575. .INDENT 3.5
  95576. .sp
  95577. .nf
  95578. .ft C
  95579. salt \(aq*\(aq keystoneng.service_delete name=glance
  95580. salt \(aq*\(aq keystoneng.service_delete name=39cc1327cdf744ab815331554430e8ec
  95581. .ft P
  95582. .fi
  95583. .UNINDENT
  95584. .UNINDENT
  95585. .UNINDENT
  95586. .INDENT 0.0
  95587. .TP
  95588. .B salt.modules.keystoneng.service_get(auth=None, **kwargs)
  95589. Get a single service
  95590. .sp
  95591. CLI Example:
  95592. .INDENT 7.0
  95593. .INDENT 3.5
  95594. .sp
  95595. .nf
  95596. .ft C
  95597. salt \(aq*\(aq keystoneng.service_get name=glance
  95598. salt \(aq*\(aq keystoneng.service_get name=75a5804638944b3ab54f7fbfcec2305a
  95599. .ft P
  95600. .fi
  95601. .UNINDENT
  95602. .UNINDENT
  95603. .UNINDENT
  95604. .INDENT 0.0
  95605. .TP
  95606. .B salt.modules.keystoneng.service_list(auth=None, **kwargs)
  95607. List services
  95608. .sp
  95609. CLI Example:
  95610. .INDENT 7.0
  95611. .INDENT 3.5
  95612. .sp
  95613. .nf
  95614. .ft C
  95615. salt \(aq*\(aq keystoneng.service_list
  95616. .ft P
  95617. .fi
  95618. .UNINDENT
  95619. .UNINDENT
  95620. .UNINDENT
  95621. .INDENT 0.0
  95622. .TP
  95623. .B salt.modules.keystoneng.service_search(auth=None, **kwargs)
  95624. Search services
  95625. .sp
  95626. CLI Example:
  95627. .INDENT 7.0
  95628. .INDENT 3.5
  95629. .sp
  95630. .nf
  95631. .ft C
  95632. salt \(aq*\(aq keystoneng.service_search
  95633. salt \(aq*\(aq keystoneng.service_search name=glance
  95634. salt \(aq*\(aq keystoneng.service_search name=135f0403f8e544dc9008c6739ecda860
  95635. .ft P
  95636. .fi
  95637. .UNINDENT
  95638. .UNINDENT
  95639. .UNINDENT
  95640. .INDENT 0.0
  95641. .TP
  95642. .B salt.modules.keystoneng.service_update(auth=None, **kwargs)
  95643. Update a service
  95644. .sp
  95645. CLI Example:
  95646. .INDENT 7.0
  95647. .INDENT 3.5
  95648. .sp
  95649. .nf
  95650. .ft C
  95651. salt \(aq*\(aq keystoneng.service_update name=cinder type=volumev2
  95652. salt \(aq*\(aq keystoneng.service_update name=cinder description=\(aqnew description\(aq
  95653. salt \(aq*\(aq keystoneng.service_update name=ab4d35e269f147b3ae2d849f77f5c88f enabled=False
  95654. .ft P
  95655. .fi
  95656. .UNINDENT
  95657. .UNINDENT
  95658. .UNINDENT
  95659. .INDENT 0.0
  95660. .TP
  95661. .B salt.modules.keystoneng.setup_clouds(auth=None)
  95662. Call functions to create Shade cloud objects in __context__ to take
  95663. advantage of Shade\(aqs in\-memory caching across several states
  95664. .UNINDENT
  95665. .INDENT 0.0
  95666. .TP
  95667. .B salt.modules.keystoneng.user_create(auth=None, **kwargs)
  95668. Create a user
  95669. .sp
  95670. CLI Example:
  95671. .INDENT 7.0
  95672. .INDENT 3.5
  95673. .sp
  95674. .nf
  95675. .ft C
  95676. salt \(aq*\(aq keystoneng.user_create name=user1
  95677. salt \(aq*\(aq keystoneng.user_create name=user2 password=1234 enabled=False
  95678. salt \(aq*\(aq keystoneng.user_create name=user3 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95679. .ft P
  95680. .fi
  95681. .UNINDENT
  95682. .UNINDENT
  95683. .UNINDENT
  95684. .INDENT 0.0
  95685. .TP
  95686. .B salt.modules.keystoneng.user_delete(auth=None, **kwargs)
  95687. Delete a user
  95688. .sp
  95689. CLI Example:
  95690. .INDENT 7.0
  95691. .INDENT 3.5
  95692. .sp
  95693. .nf
  95694. .ft C
  95695. salt \(aq*\(aq keystoneng.user_delete name=user1
  95696. salt \(aq*\(aq keystoneng.user_delete name=user2 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95697. salt \(aq*\(aq keystoneng.user_delete name=a42cbbfa1e894e839fd0f584d22e321f
  95698. .ft P
  95699. .fi
  95700. .UNINDENT
  95701. .UNINDENT
  95702. .UNINDENT
  95703. .INDENT 0.0
  95704. .TP
  95705. .B salt.modules.keystoneng.user_get(auth=None, **kwargs)
  95706. Get a single user
  95707. .sp
  95708. CLI Example:
  95709. .INDENT 7.0
  95710. .INDENT 3.5
  95711. .sp
  95712. .nf
  95713. .ft C
  95714. salt \(aq*\(aq keystoneng.user_get name=user1
  95715. salt \(aq*\(aq keystoneng.user_get name=user1 domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95716. salt \(aq*\(aq keystoneng.user_get name=02cffaa173b2460f98e40eda3748dae5
  95717. .ft P
  95718. .fi
  95719. .UNINDENT
  95720. .UNINDENT
  95721. .UNINDENT
  95722. .INDENT 0.0
  95723. .TP
  95724. .B salt.modules.keystoneng.user_list(auth=None, **kwargs)
  95725. List users
  95726. .sp
  95727. CLI Example:
  95728. .INDENT 7.0
  95729. .INDENT 3.5
  95730. .sp
  95731. .nf
  95732. .ft C
  95733. salt \(aq*\(aq keystoneng.user_list
  95734. salt \(aq*\(aq keystoneng.user_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95735. .ft P
  95736. .fi
  95737. .UNINDENT
  95738. .UNINDENT
  95739. .UNINDENT
  95740. .INDENT 0.0
  95741. .TP
  95742. .B salt.modules.keystoneng.user_search(auth=None, **kwargs)
  95743. List users
  95744. .sp
  95745. CLI Example:
  95746. .INDENT 7.0
  95747. .INDENT 3.5
  95748. .sp
  95749. .nf
  95750. .ft C
  95751. salt \(aq*\(aq keystoneng.user_list
  95752. salt \(aq*\(aq keystoneng.user_list domain_id=b62e76fbeeff4e8fb77073f591cf211e
  95753. .ft P
  95754. .fi
  95755. .UNINDENT
  95756. .UNINDENT
  95757. .UNINDENT
  95758. .INDENT 0.0
  95759. .TP
  95760. .B salt.modules.keystoneng.user_update(auth=None, **kwargs)
  95761. Update a user
  95762. .sp
  95763. CLI Example:
  95764. .INDENT 7.0
  95765. .INDENT 3.5
  95766. .sp
  95767. .nf
  95768. .ft C
  95769. salt \(aq*\(aq keystoneng.user_update name=user1 enabled=False description=\(aqnew description\(aq
  95770. salt \(aq*\(aq keystoneng.user_update name=user1 new_name=newuser
  95771. .ft P
  95772. .fi
  95773. .UNINDENT
  95774. .UNINDENT
  95775. .UNINDENT
  95776. .SS salt.modules.keystore
  95777. .sp
  95778. Module to interact with keystores
  95779. .INDENT 0.0
  95780. .TP
  95781. .B salt.modules.keystore.add(name, keystore, passphrase, certificate, private_key=None)
  95782. Adds certificates to an existing keystore or creates a new one if necesssary.
  95783. .INDENT 7.0
  95784. .TP
  95785. .B Parameters
  95786. .INDENT 7.0
  95787. .IP \(bu 2
  95788. \fBname\fP \-\- alias for the certificate
  95789. .IP \(bu 2
  95790. \fBkeystore\fP \-\- The path to the keystore file to query
  95791. .IP \(bu 2
  95792. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  95793. .IP \(bu 2
  95794. \fBcertificate\fP \-\- The PEM public certificate to add to keystore. Can be a string for file.
  95795. .IP \(bu 2
  95796. \fBprivate_key\fP \-\- (Optional for TrustedCert) The PEM private key to add to the keystore
  95797. .UNINDENT
  95798. .UNINDENT
  95799. .sp
  95800. CLI Example:
  95801. .INDENT 7.0
  95802. .INDENT 3.5
  95803. .sp
  95804. .nf
  95805. .ft C
  95806. salt \(aq*\(aq keystore.add aliasname /tmp/test.store changeit /tmp/testcert.crt
  95807. salt \(aq*\(aq keystore.add aliasname /tmp/test.store changeit certificate="\-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-SIb...BM=\-\-\-\-\-END CERTIFICATE\-\-\-\-\-"
  95808. salt \(aq*\(aq keystore.add keyname /tmp/test.store changeit /tmp/512.cert private_key=/tmp/512.key
  95809. .ft P
  95810. .fi
  95811. .UNINDENT
  95812. .UNINDENT
  95813. .UNINDENT
  95814. .INDENT 0.0
  95815. .TP
  95816. .B salt.modules.keystore.list(keystore, passphrase, alias=None, return_cert=False)
  95817. Lists certificates in a keytool managed keystore.
  95818. .INDENT 7.0
  95819. .TP
  95820. .B Parameters
  95821. .INDENT 7.0
  95822. .IP \(bu 2
  95823. \fBkeystore\fP \-\- The path to the keystore file to query
  95824. .IP \(bu 2
  95825. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  95826. .IP \(bu 2
  95827. \fBalias\fP \-\- (Optional) If found, displays details on only this key
  95828. .IP \(bu 2
  95829. \fBreturn_certs\fP \-\- (Optional) Also return certificate PEM.
  95830. .UNINDENT
  95831. .UNINDENT
  95832. .sp
  95833. \fBWARNING:\fP
  95834. .INDENT 7.0
  95835. .INDENT 3.5
  95836. There are security implications for using return_cert to return decrypted certificates.
  95837. .UNINDENT
  95838. .UNINDENT
  95839. .sp
  95840. CLI Example:
  95841. .INDENT 7.0
  95842. .INDENT 3.5
  95843. .sp
  95844. .nf
  95845. .ft C
  95846. salt \(aq*\(aq keystore.list /usr/lib/jvm/java\-8/jre/lib/security/cacerts changeit
  95847. salt \(aq*\(aq keystore.list /usr/lib/jvm/java\-8/jre/lib/security/cacerts changeit debian:verisign_\-_g5.pem
  95848. .ft P
  95849. .fi
  95850. .UNINDENT
  95851. .UNINDENT
  95852. .UNINDENT
  95853. .INDENT 0.0
  95854. .TP
  95855. .B salt.modules.keystore.remove(name, keystore, passphrase)
  95856. Removes a certificate from an existing keystore.
  95857. Returns True if remove was successful, otherwise False
  95858. .INDENT 7.0
  95859. .TP
  95860. .B Parameters
  95861. .INDENT 7.0
  95862. .IP \(bu 2
  95863. \fBname\fP \-\- alias for the certificate
  95864. .IP \(bu 2
  95865. \fBkeystore\fP \-\- The path to the keystore file to query
  95866. .IP \(bu 2
  95867. \fBpassphrase\fP \-\- The passphrase to use to decode the keystore
  95868. .UNINDENT
  95869. .UNINDENT
  95870. .sp
  95871. CLI Example:
  95872. .INDENT 7.0
  95873. .INDENT 3.5
  95874. .sp
  95875. .nf
  95876. .ft C
  95877. salt \(aq*\(aq keystore.remove aliasname /tmp/test.store changeit
  95878. .ft P
  95879. .fi
  95880. .UNINDENT
  95881. .UNINDENT
  95882. .UNINDENT
  95883. .SS salt.modules.linux_service
  95884. .sp
  95885. If Salt\(aqs OS detection does not identify a different virtual service module, the minion will fall back to using this basic module, which simply wraps sysvinit scripts.
  95886. .INDENT 0.0
  95887. .TP
  95888. .B salt.modules.linux_service.available(name)
  95889. Returns \fBTrue\fP if the specified service is available, otherwise returns
  95890. \fBFalse\fP\&.
  95891. .sp
  95892. CLI Example:
  95893. .INDENT 7.0
  95894. .INDENT 3.5
  95895. .sp
  95896. .nf
  95897. .ft C
  95898. salt \(aq*\(aq service.available sshd
  95899. .ft P
  95900. .fi
  95901. .UNINDENT
  95902. .UNINDENT
  95903. .UNINDENT
  95904. .INDENT 0.0
  95905. .TP
  95906. .B salt.modules.linux_service.get_all()
  95907. Return a list of all available services
  95908. .sp
  95909. CLI Example:
  95910. .INDENT 7.0
  95911. .INDENT 3.5
  95912. .sp
  95913. .nf
  95914. .ft C
  95915. salt \(aq*\(aq service.get_all
  95916. .ft P
  95917. .fi
  95918. .UNINDENT
  95919. .UNINDENT
  95920. .UNINDENT
  95921. .INDENT 0.0
  95922. .TP
  95923. .B salt.modules.linux_service.missing(name)
  95924. The inverse of service.available.
  95925. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  95926. \fBFalse\fP\&.
  95927. .sp
  95928. CLI Example:
  95929. .INDENT 7.0
  95930. .INDENT 3.5
  95931. .sp
  95932. .nf
  95933. .ft C
  95934. salt \(aq*\(aq service.missing sshd
  95935. .ft P
  95936. .fi
  95937. .UNINDENT
  95938. .UNINDENT
  95939. .UNINDENT
  95940. .INDENT 0.0
  95941. .TP
  95942. .B salt.modules.linux_service.reload_(name)
  95943. Refreshes config files by calling service reload. Does not perform a full
  95944. restart.
  95945. .sp
  95946. CLI Example:
  95947. .INDENT 7.0
  95948. .INDENT 3.5
  95949. .sp
  95950. .nf
  95951. .ft C
  95952. salt \(aq*\(aq service.reload <service name>
  95953. .ft P
  95954. .fi
  95955. .UNINDENT
  95956. .UNINDENT
  95957. .UNINDENT
  95958. .INDENT 0.0
  95959. .TP
  95960. .B salt.modules.linux_service.restart(name)
  95961. Restart the specified service
  95962. .sp
  95963. CLI Example:
  95964. .INDENT 7.0
  95965. .INDENT 3.5
  95966. .sp
  95967. .nf
  95968. .ft C
  95969. salt \(aq*\(aq service.restart <service name>
  95970. .ft P
  95971. .fi
  95972. .UNINDENT
  95973. .UNINDENT
  95974. .UNINDENT
  95975. .INDENT 0.0
  95976. .TP
  95977. .B salt.modules.linux_service.run(name, action)
  95978. Run the specified service with an action.
  95979. .sp
  95980. New in version 2015.8.1.
  95981. .INDENT 7.0
  95982. .TP
  95983. .B name
  95984. Service name.
  95985. .TP
  95986. .B action
  95987. Action name (like start, stop, reload, restart).
  95988. .UNINDENT
  95989. .sp
  95990. CLI Example:
  95991. .INDENT 7.0
  95992. .INDENT 3.5
  95993. .sp
  95994. .nf
  95995. .ft C
  95996. salt \(aq*\(aq service.run apache2 reload
  95997. salt \(aq*\(aq service.run postgresql initdb
  95998. .ft P
  95999. .fi
  96000. .UNINDENT
  96001. .UNINDENT
  96002. .UNINDENT
  96003. .INDENT 0.0
  96004. .TP
  96005. .B salt.modules.linux_service.start(name)
  96006. Start the specified service
  96007. .sp
  96008. CLI Example:
  96009. .INDENT 7.0
  96010. .INDENT 3.5
  96011. .sp
  96012. .nf
  96013. .ft C
  96014. salt \(aq*\(aq service.start <service name>
  96015. .ft P
  96016. .fi
  96017. .UNINDENT
  96018. .UNINDENT
  96019. .UNINDENT
  96020. .INDENT 0.0
  96021. .TP
  96022. .B salt.modules.linux_service.status(name, sig=None)
  96023. Return the status for a service.
  96024. If the name contains globbing, a dict mapping service name to PID or empty
  96025. string is returned.
  96026. .sp
  96027. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  96028. .INDENT 7.0
  96029. .TP
  96030. .B Parameters
  96031. .INDENT 7.0
  96032. .IP \(bu 2
  96033. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  96034. .IP \(bu 2
  96035. \fBsig\fP (\fI\%str\fP) \-\- Signature to use to find the service via ps
  96036. .UNINDENT
  96037. .TP
  96038. .B Returns
  96039. PID if running, empty otherwise
  96040. dict: Maps service name to PID if running, empty string otherwise
  96041. .TP
  96042. .B Return type
  96043. string
  96044. .UNINDENT
  96045. .sp
  96046. CLI Example:
  96047. .INDENT 7.0
  96048. .INDENT 3.5
  96049. .sp
  96050. .nf
  96051. .ft C
  96052. salt \(aq*\(aq service.status <service name> [service signature]
  96053. .ft P
  96054. .fi
  96055. .UNINDENT
  96056. .UNINDENT
  96057. .UNINDENT
  96058. .INDENT 0.0
  96059. .TP
  96060. .B salt.modules.linux_service.stop(name)
  96061. Stop the specified service
  96062. .sp
  96063. CLI Example:
  96064. .INDENT 7.0
  96065. .INDENT 3.5
  96066. .sp
  96067. .nf
  96068. .ft C
  96069. salt \(aq*\(aq service.stop <service name>
  96070. .ft P
  96071. .fi
  96072. .UNINDENT
  96073. .UNINDENT
  96074. .UNINDENT
  96075. .SS salt.modules.logmod module
  96076. .SS On\-demand logging
  96077. .sp
  96078. New in version 2017.7.0.
  96079. .sp
  96080. The sole purpose of this module is logging messages in the (proxy) minion.
  96081. It comes very handy when debugging complex Jinja templates, for example:
  96082. .INDENT 0.0
  96083. .INDENT 3.5
  96084. .sp
  96085. .nf
  96086. .ft C
  96087. {%\- for var in range(10) %}
  96088. {%\- do salt.log.info(var) \-%}
  96089. {%\- endfor %}
  96090. .ft P
  96091. .fi
  96092. .UNINDENT
  96093. .UNINDENT
  96094. .sp
  96095. CLI Example:
  96096. .INDENT 0.0
  96097. .INDENT 3.5
  96098. .sp
  96099. .nf
  96100. .ft C
  96101. salt \(aq*\(aq log.error "Please don\(aqt do that, this module is not for CLI use!"
  96102. .ft P
  96103. .fi
  96104. .UNINDENT
  96105. .UNINDENT
  96106. .INDENT 0.0
  96107. .TP
  96108. .B salt.modules.logmod.critical(message)
  96109. Log message at level CRITICAL.
  96110. .UNINDENT
  96111. .INDENT 0.0
  96112. .TP
  96113. .B salt.modules.logmod.debug(message)
  96114. Log message at level DEBUG.
  96115. .UNINDENT
  96116. .INDENT 0.0
  96117. .TP
  96118. .B salt.modules.logmod.error(message)
  96119. Log message at level ERROR.
  96120. .UNINDENT
  96121. .INDENT 0.0
  96122. .TP
  96123. .B salt.modules.logmod.exception(message)
  96124. Log message at level EXCEPTION.
  96125. .UNINDENT
  96126. .INDENT 0.0
  96127. .TP
  96128. .B salt.modules.logmod.info(message)
  96129. Log message at level INFO.
  96130. .UNINDENT
  96131. .INDENT 0.0
  96132. .TP
  96133. .B salt.modules.logmod.warning(message)
  96134. Log message at level WARNING.
  96135. .UNINDENT
  96136. .SS salt.modules.modjk
  96137. .sp
  96138. Control Modjk via the Apache Tomcat "Status" worker
  96139. (\fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP)
  96140. .sp
  96141. Below is an example of the configuration needed for this module. This
  96142. configuration data can be placed either in grains or pillar\&.
  96143. .sp
  96144. If using grains, this can be accomplished statically or via a grain module\&.
  96145. .sp
  96146. If using pillar, the yaml configuration can be placed directly into a pillar
  96147. SLS file, making this both the easier and more dynamic method of configuring
  96148. this module.
  96149. .INDENT 0.0
  96150. .INDENT 3.5
  96151. .sp
  96152. .nf
  96153. .ft C
  96154. modjk:
  96155. default:
  96156. url: http://localhost/jkstatus
  96157. user: modjk
  96158. pass: secret
  96159. realm: authentication realm for digest passwords
  96160. timeout: 5
  96161. otherVhost:
  96162. url: http://otherVhost/jkstatus
  96163. user: modjk
  96164. pass: secret2
  96165. realm: authentication realm2 for digest passwords
  96166. timeout: 600
  96167. .ft P
  96168. .fi
  96169. .UNINDENT
  96170. .UNINDENT
  96171. .INDENT 0.0
  96172. .TP
  96173. .B salt.modules.modjk.bulk_activate(workers, lbn, profile=u\(aqdefault\(aq)
  96174. Activate all the given workers in the specific load balancer
  96175. .sp
  96176. CLI Examples:
  96177. .INDENT 7.0
  96178. .INDENT 3.5
  96179. .sp
  96180. .nf
  96181. .ft C
  96182. salt \(aq*\(aq modjk.bulk_activate node1,node2,node3 loadbalancer1
  96183. salt \(aq*\(aq modjk.bulk_activate node1,node2,node3 loadbalancer1 other\-profile
  96184. salt \(aq*\(aq modjk.bulk_activate ["node1","node2","node3"] loadbalancer1
  96185. salt \(aq*\(aq modjk.bulk_activate ["node1","node2","node3"] loadbalancer1 other\-profile
  96186. .ft P
  96187. .fi
  96188. .UNINDENT
  96189. .UNINDENT
  96190. .UNINDENT
  96191. .INDENT 0.0
  96192. .TP
  96193. .B salt.modules.modjk.bulk_disable(workers, lbn, profile=u\(aqdefault\(aq)
  96194. Disable all the given workers in the specific load balancer
  96195. .sp
  96196. CLI Examples:
  96197. .INDENT 7.0
  96198. .INDENT 3.5
  96199. .sp
  96200. .nf
  96201. .ft C
  96202. salt \(aq*\(aq modjk.bulk_disable node1,node2,node3 loadbalancer1
  96203. salt \(aq*\(aq modjk.bulk_disable node1,node2,node3 loadbalancer1 other\-profile
  96204. salt \(aq*\(aq modjk.bulk_disable ["node1","node2","node3"] loadbalancer1
  96205. salt \(aq*\(aq modjk.bulk_disable ["node1","node2","node3"] loadbalancer1 other\-profile
  96206. .ft P
  96207. .fi
  96208. .UNINDENT
  96209. .UNINDENT
  96210. .UNINDENT
  96211. .INDENT 0.0
  96212. .TP
  96213. .B salt.modules.modjk.bulk_recover(workers, lbn, profile=u\(aqdefault\(aq)
  96214. Recover all the given workers in the specific load balancer
  96215. .sp
  96216. CLI Examples:
  96217. .INDENT 7.0
  96218. .INDENT 3.5
  96219. .sp
  96220. .nf
  96221. .ft C
  96222. salt \(aq*\(aq modjk.bulk_recover node1,node2,node3 loadbalancer1
  96223. salt \(aq*\(aq modjk.bulk_recover node1,node2,node3 loadbalancer1 other\-profile
  96224. salt \(aq*\(aq modjk.bulk_recover ["node1","node2","node3"] loadbalancer1
  96225. salt \(aq*\(aq modjk.bulk_recover ["node1","node2","node3"] loadbalancer1 other\-profile
  96226. .ft P
  96227. .fi
  96228. .UNINDENT
  96229. .UNINDENT
  96230. .UNINDENT
  96231. .INDENT 0.0
  96232. .TP
  96233. .B salt.modules.modjk.bulk_stop(workers, lbn, profile=u\(aqdefault\(aq)
  96234. Stop all the given workers in the specific load balancer
  96235. .sp
  96236. CLI Examples:
  96237. .INDENT 7.0
  96238. .INDENT 3.5
  96239. .sp
  96240. .nf
  96241. .ft C
  96242. salt \(aq*\(aq modjk.bulk_stop node1,node2,node3 loadbalancer1
  96243. salt \(aq*\(aq modjk.bulk_stop node1,node2,node3 loadbalancer1 other\-profile
  96244. salt \(aq*\(aq modjk.bulk_stop ["node1","node2","node3"] loadbalancer1
  96245. salt \(aq*\(aq modjk.bulk_stop ["node1","node2","node3"] loadbalancer1 other\-profile
  96246. .ft P
  96247. .fi
  96248. .UNINDENT
  96249. .UNINDENT
  96250. .UNINDENT
  96251. .INDENT 0.0
  96252. .TP
  96253. .B salt.modules.modjk.dump_config(profile=u\(aqdefault\(aq)
  96254. Dump the original configuration that was loaded from disk
  96255. .sp
  96256. CLI Examples:
  96257. .INDENT 7.0
  96258. .INDENT 3.5
  96259. .sp
  96260. .nf
  96261. .ft C
  96262. salt \(aq*\(aq modjk.dump_config
  96263. salt \(aq*\(aq modjk.dump_config other\-profile
  96264. .ft P
  96265. .fi
  96266. .UNINDENT
  96267. .UNINDENT
  96268. .UNINDENT
  96269. .INDENT 0.0
  96270. .TP
  96271. .B salt.modules.modjk.get_running(profile=u\(aqdefault\(aq)
  96272. Get the current running config (not from disk)
  96273. .sp
  96274. CLI Examples:
  96275. .INDENT 7.0
  96276. .INDENT 3.5
  96277. .sp
  96278. .nf
  96279. .ft C
  96280. salt \(aq*\(aq modjk.get_running
  96281. salt \(aq*\(aq modjk.get_running other\-profile
  96282. .ft P
  96283. .fi
  96284. .UNINDENT
  96285. .UNINDENT
  96286. .UNINDENT
  96287. .INDENT 0.0
  96288. .TP
  96289. .B salt.modules.modjk.lb_edit(lbn, settings, profile=u\(aqdefault\(aq)
  96290. Edit the loadbalancer settings
  96291. .sp
  96292. Note: \fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP
  96293. Data Parameters for the standard Update Action
  96294. .sp
  96295. CLI Examples:
  96296. .INDENT 7.0
  96297. .INDENT 3.5
  96298. .sp
  96299. .nf
  96300. .ft C
  96301. salt \(aq*\(aq modjk.lb_edit loadbalancer1 "{\(aqvlr\(aq: 1, \(aqvlt\(aq: 60}"
  96302. salt \(aq*\(aq modjk.lb_edit loadbalancer1 "{\(aqvlr\(aq: 1, \(aqvlt\(aq: 60}" other\-profile
  96303. .ft P
  96304. .fi
  96305. .UNINDENT
  96306. .UNINDENT
  96307. .UNINDENT
  96308. .INDENT 0.0
  96309. .TP
  96310. .B salt.modules.modjk.list_configured_members(lbn, profile=u\(aqdefault\(aq)
  96311. Return a list of member workers from the configuration files
  96312. .sp
  96313. CLI Examples:
  96314. .INDENT 7.0
  96315. .INDENT 3.5
  96316. .sp
  96317. .nf
  96318. .ft C
  96319. salt \(aq*\(aq modjk.list_configured_members loadbalancer1
  96320. salt \(aq*\(aq modjk.list_configured_members loadbalancer1 other\-profile
  96321. .ft P
  96322. .fi
  96323. .UNINDENT
  96324. .UNINDENT
  96325. .UNINDENT
  96326. .INDENT 0.0
  96327. .TP
  96328. .B salt.modules.modjk.recover_all(lbn, profile=u\(aqdefault\(aq)
  96329. Set the all the workers in lbn to recover and activate them if they are not
  96330. .sp
  96331. CLI Examples:
  96332. .INDENT 7.0
  96333. .INDENT 3.5
  96334. .sp
  96335. .nf
  96336. .ft C
  96337. salt \(aq*\(aq modjk.recover_all loadbalancer1
  96338. salt \(aq*\(aq modjk.recover_all loadbalancer1 other\-profile
  96339. .ft P
  96340. .fi
  96341. .UNINDENT
  96342. .UNINDENT
  96343. .UNINDENT
  96344. .INDENT 0.0
  96345. .TP
  96346. .B salt.modules.modjk.reset_stats(lbn, profile=u\(aqdefault\(aq)
  96347. Reset all runtime statistics for the load balancer
  96348. .sp
  96349. CLI Examples:
  96350. .INDENT 7.0
  96351. .INDENT 3.5
  96352. .sp
  96353. .nf
  96354. .ft C
  96355. salt \(aq*\(aq modjk.reset_stats loadbalancer1
  96356. salt \(aq*\(aq modjk.reset_stats loadbalancer1 other\-profile
  96357. .ft P
  96358. .fi
  96359. .UNINDENT
  96360. .UNINDENT
  96361. .UNINDENT
  96362. .INDENT 0.0
  96363. .TP
  96364. .B salt.modules.modjk.version(profile=u\(aqdefault\(aq)
  96365. Return the modjk version
  96366. .sp
  96367. CLI Examples:
  96368. .INDENT 7.0
  96369. .INDENT 3.5
  96370. .sp
  96371. .nf
  96372. .ft C
  96373. salt \(aq*\(aq modjk.version
  96374. salt \(aq*\(aq modjk.version other\-profile
  96375. .ft P
  96376. .fi
  96377. .UNINDENT
  96378. .UNINDENT
  96379. .UNINDENT
  96380. .INDENT 0.0
  96381. .TP
  96382. .B salt.modules.modjk.worker_activate(worker, lbn, profile=u\(aqdefault\(aq)
  96383. Set the worker to activate state in the lbn load balancer
  96384. .sp
  96385. CLI Examples:
  96386. .INDENT 7.0
  96387. .INDENT 3.5
  96388. .sp
  96389. .nf
  96390. .ft C
  96391. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1
  96392. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1 other\-profile
  96393. .ft P
  96394. .fi
  96395. .UNINDENT
  96396. .UNINDENT
  96397. .UNINDENT
  96398. .INDENT 0.0
  96399. .TP
  96400. .B salt.modules.modjk.worker_disable(worker, lbn, profile=u\(aqdefault\(aq)
  96401. Set the worker to disable state in the lbn load balancer
  96402. .sp
  96403. CLI Examples:
  96404. .INDENT 7.0
  96405. .INDENT 3.5
  96406. .sp
  96407. .nf
  96408. .ft C
  96409. salt \(aq*\(aq modjk.worker_disable node1 loadbalancer1
  96410. salt \(aq*\(aq modjk.worker_disable node1 loadbalancer1 other\-profile
  96411. .ft P
  96412. .fi
  96413. .UNINDENT
  96414. .UNINDENT
  96415. .UNINDENT
  96416. .INDENT 0.0
  96417. .TP
  96418. .B salt.modules.modjk.worker_edit(worker, lbn, settings, profile=u\(aqdefault\(aq)
  96419. Edit the worker settings
  96420. .sp
  96421. Note: \fI\%http://tomcat.apache.org/connectors\-doc/reference/status.html\fP
  96422. Data Parameters for the standard Update Action
  96423. .sp
  96424. CLI Examples:
  96425. .INDENT 7.0
  96426. .INDENT 3.5
  96427. .sp
  96428. .nf
  96429. .ft C
  96430. salt \(aq*\(aq modjk.worker_edit node1 loadbalancer1 "{\(aqvwf\(aq: 500, \(aqvwd\(aq: 60}"
  96431. salt \(aq*\(aq modjk.worker_edit node1 loadbalancer1 "{\(aqvwf\(aq: 500, \(aqvwd\(aq: 60}" other\-profile
  96432. .ft P
  96433. .fi
  96434. .UNINDENT
  96435. .UNINDENT
  96436. .UNINDENT
  96437. .INDENT 0.0
  96438. .TP
  96439. .B salt.modules.modjk.worker_recover(worker, lbn, profile=u\(aqdefault\(aq)
  96440. Set the worker to recover
  96441. this module will fail if it is in OK state
  96442. .sp
  96443. CLI Examples:
  96444. .INDENT 7.0
  96445. .INDENT 3.5
  96446. .sp
  96447. .nf
  96448. .ft C
  96449. salt \(aq*\(aq modjk.worker_recover node1 loadbalancer1
  96450. salt \(aq*\(aq modjk.worker_recover node1 loadbalancer1 other\-profile
  96451. .ft P
  96452. .fi
  96453. .UNINDENT
  96454. .UNINDENT
  96455. .UNINDENT
  96456. .INDENT 0.0
  96457. .TP
  96458. .B salt.modules.modjk.worker_status(worker, profile=u\(aqdefault\(aq)
  96459. Return the state of the worker
  96460. .sp
  96461. CLI Examples:
  96462. .INDENT 7.0
  96463. .INDENT 3.5
  96464. .sp
  96465. .nf
  96466. .ft C
  96467. salt \(aq*\(aq modjk.worker_status node1
  96468. salt \(aq*\(aq modjk.worker_status node1 other\-profile
  96469. .ft P
  96470. .fi
  96471. .UNINDENT
  96472. .UNINDENT
  96473. .UNINDENT
  96474. .INDENT 0.0
  96475. .TP
  96476. .B salt.modules.modjk.worker_stop(worker, lbn, profile=u\(aqdefault\(aq)
  96477. Set the worker to stopped state in the lbn load balancer
  96478. .sp
  96479. CLI Examples:
  96480. .INDENT 7.0
  96481. .INDENT 3.5
  96482. .sp
  96483. .nf
  96484. .ft C
  96485. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1
  96486. salt \(aq*\(aq modjk.worker_activate node1 loadbalancer1 other\-profile
  96487. .ft P
  96488. .fi
  96489. .UNINDENT
  96490. .UNINDENT
  96491. .UNINDENT
  96492. .INDENT 0.0
  96493. .TP
  96494. .B salt.modules.modjk.workers(profile=u\(aqdefault\(aq)
  96495. Return a list of member workers and their status
  96496. .sp
  96497. CLI Examples:
  96498. .INDENT 7.0
  96499. .INDENT 3.5
  96500. .sp
  96501. .nf
  96502. .ft C
  96503. salt \(aq*\(aq modjk.workers
  96504. salt \(aq*\(aq modjk.workers other\-profile
  96505. .ft P
  96506. .fi
  96507. .UNINDENT
  96508. .UNINDENT
  96509. .UNINDENT
  96510. .SS salt.modules.nagios
  96511. .sp
  96512. Run nagios plugins/checks from salt and get the return as data.
  96513. .INDENT 0.0
  96514. .TP
  96515. .B salt.modules.nagios.list_plugins()
  96516. List all the nagios plugins
  96517. .sp
  96518. CLI Example:
  96519. .INDENT 7.0
  96520. .INDENT 3.5
  96521. .sp
  96522. .nf
  96523. .ft C
  96524. salt \(aq*\(aq nagios.list_plugins
  96525. .ft P
  96526. .fi
  96527. .UNINDENT
  96528. .UNINDENT
  96529. .UNINDENT
  96530. .INDENT 0.0
  96531. .TP
  96532. .B salt.modules.nagios.retcode(plugin, args=u\(aq\(aq, key_name=None)
  96533. Run one nagios plugin and return retcode of the execution
  96534. .UNINDENT
  96535. .INDENT 0.0
  96536. .TP
  96537. .B salt.modules.nagios.retcode_pillar(pillar_name)
  96538. Run one or more nagios plugins from pillar data and get the result of cmd.retcode
  96539. The pillar have to be in this format:
  96540. .INDENT 7.0
  96541. .INDENT 3.5
  96542. .sp
  96543. .nf
  96544. .ft C
  96545. \-\-\-\-\-\-
  96546. webserver:
  96547. Ping_google:
  96548. \- check_icmp: 8.8.8.8
  96549. \- check_icmp: google.com
  96550. Load:
  96551. \- check_load: \-w 0.8 \-c 1
  96552. APT:
  96553. \- check_apt
  96554. \-\-\-\-\-\-\-
  96555. .ft P
  96556. .fi
  96557. .UNINDENT
  96558. .UNINDENT
  96559. .sp
  96560. webserver is the role to check, the next keys are the group and the items
  96561. the check with the arguments if needed
  96562. .sp
  96563. You must to group different checks(one o more) and always it will return
  96564. the highest value of all the checks
  96565. .sp
  96566. CLI Example:
  96567. .INDENT 7.0
  96568. .INDENT 3.5
  96569. .sp
  96570. .nf
  96571. .ft C
  96572. salt \(aq*\(aq nagios.retcode webserver
  96573. .ft P
  96574. .fi
  96575. .UNINDENT
  96576. .UNINDENT
  96577. .UNINDENT
  96578. .INDENT 0.0
  96579. .TP
  96580. .B salt.modules.nagios.run(plugin, args=u\(aq\(aq)
  96581. Run nagios plugin and return all the data execution with cmd.run
  96582. .sp
  96583. CLI Example:
  96584. .INDENT 7.0
  96585. .INDENT 3.5
  96586. .sp
  96587. .nf
  96588. .ft C
  96589. salt \(aq*\(aq nagios.run check_apt
  96590. salt \(aq*\(aq nagios.run check_icmp \(aq8.8.8.8\(aq
  96591. .ft P
  96592. .fi
  96593. .UNINDENT
  96594. .UNINDENT
  96595. .UNINDENT
  96596. .INDENT 0.0
  96597. .TP
  96598. .B salt.modules.nagios.run_all(plugin, args=u\(aq\(aq)
  96599. Run nagios plugin and return all the data execution with cmd.run_all
  96600. .UNINDENT
  96601. .INDENT 0.0
  96602. .TP
  96603. .B salt.modules.nagios.run_all_pillar(pillar_name)
  96604. Run one or more nagios plugins from pillar data and get the result of cmd.run_all
  96605. The pillar have to be in this format:
  96606. .INDENT 7.0
  96607. .INDENT 3.5
  96608. .sp
  96609. .nf
  96610. .ft C
  96611. \-\-\-\-\-\-
  96612. webserver:
  96613. Ping_google:
  96614. \- check_icmp: 8.8.8.8
  96615. \- check_icmp: google.com
  96616. Load:
  96617. \- check_load: \-w 0.8 \-c 1
  96618. APT:
  96619. \- check_apt
  96620. \-\-\-\-\-\-\-
  96621. .ft P
  96622. .fi
  96623. .UNINDENT
  96624. .UNINDENT
  96625. .sp
  96626. webserver is the role to check, the next keys are the group and the items
  96627. the check with the arguments if needed
  96628. .sp
  96629. You have to group different checks in a group
  96630. .sp
  96631. CLI Example:
  96632. .INDENT 7.0
  96633. .INDENT 3.5
  96634. .sp
  96635. .nf
  96636. .ft C
  96637. salt \(aq*\(aq nagios.run webserver
  96638. .ft P
  96639. .fi
  96640. .UNINDENT
  96641. .UNINDENT
  96642. .UNINDENT
  96643. .INDENT 0.0
  96644. .TP
  96645. .B salt.modules.nagios.run_pillar(pillar_name)
  96646. Run one or more nagios plugins from pillar data and get the result of cmd.run
  96647. The pillar have to be in this format:
  96648. .INDENT 7.0
  96649. .INDENT 3.5
  96650. .sp
  96651. .nf
  96652. .ft C
  96653. \-\-\-\-\-\-
  96654. webserver:
  96655. Ping_google:
  96656. \- check_icmp: 8.8.8.8
  96657. \- check_icmp: google.com
  96658. Load:
  96659. \- check_load: \-w 0.8 \-c 1
  96660. APT:
  96661. \- check_apt
  96662. \-\-\-\-\-\-\-
  96663. .ft P
  96664. .fi
  96665. .UNINDENT
  96666. .UNINDENT
  96667. .sp
  96668. webserver is the role to check, the next keys are the group and the items
  96669. the check with the arguments if needed
  96670. .sp
  96671. You have to group different checks in a group
  96672. .sp
  96673. CLI Example:
  96674. .INDENT 7.0
  96675. .INDENT 3.5
  96676. .sp
  96677. .nf
  96678. .ft C
  96679. salt \(aq*\(aq nagios.run webserver
  96680. .ft P
  96681. .fi
  96682. .UNINDENT
  96683. .UNINDENT
  96684. .UNINDENT
  96685. .SS salt.modules.namecheap_domains module
  96686. .sp
  96687. Namecheap Domain Management
  96688. .sp
  96689. New in version 2017.7.0.
  96690. .SS Prerequisites
  96691. .sp
  96692. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  96693. API.
  96694. .SS Configuration
  96695. .sp
  96696. The Namecheap username, API key and URL should be set in the minion configuration
  96697. file, or in the Pillar data.
  96698. .INDENT 0.0
  96699. .INDENT 3.5
  96700. .sp
  96701. .nf
  96702. .ft C
  96703. namecheap.name: companyname
  96704. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  96705. namecheap.client_ip: 162.155.30.172
  96706. #Real url
  96707. namecheap.url: https://api.namecheap.com/xml.response
  96708. #Sandbox url
  96709. #namecheap.url: https://api.sandbox.namecheap.xml.response
  96710. .ft P
  96711. .fi
  96712. .UNINDENT
  96713. .UNINDENT
  96714. .INDENT 0.0
  96715. .TP
  96716. .B salt.modules.namecheap_domains.check(*domains_to_check)
  96717. Checks the availability of domains
  96718. .INDENT 7.0
  96719. .TP
  96720. .B domains_to_check
  96721. array of strings List of domains to check
  96722. .UNINDENT
  96723. .sp
  96724. Returns a dictionary mapping the each domain name to a boolean denoting
  96725. whether or not it is available.
  96726. .sp
  96727. CLI Example:
  96728. .INDENT 7.0
  96729. .INDENT 3.5
  96730. .sp
  96731. .nf
  96732. .ft C
  96733. salt \(aqmy\-minion\(aq namecheap_domains.check domain\-to\-check
  96734. .ft P
  96735. .fi
  96736. .UNINDENT
  96737. .UNINDENT
  96738. .UNINDENT
  96739. .INDENT 0.0
  96740. .TP
  96741. .B salt.modules.namecheap_domains.create(domain_name, years, **kwargs)
  96742. Try to register the specified domain name
  96743. .INDENT 7.0
  96744. .TP
  96745. .B domain_name
  96746. The domain name to be registered
  96747. .TP
  96748. .B years
  96749. Number of years to register
  96750. .UNINDENT
  96751. .sp
  96752. Returns the following information:
  96753. .INDENT 7.0
  96754. .IP \(bu 2
  96755. Whether or not the domain was renewed successfully
  96756. .IP \(bu 2
  96757. Whether or not WhoisGuard is enabled
  96758. .IP \(bu 2
  96759. Whether or not registration is instant
  96760. .IP \(bu 2
  96761. The amount charged for registration
  96762. .IP \(bu 2
  96763. The domain ID
  96764. .IP \(bu 2
  96765. The order ID
  96766. .IP \(bu 2
  96767. The transaction ID
  96768. .UNINDENT
  96769. .sp
  96770. CLI Example:
  96771. .INDENT 7.0
  96772. .INDENT 3.5
  96773. .sp
  96774. .nf
  96775. .ft C
  96776. salt \(aqmy\-minion\(aq namecheap_domains.create my\-domain\-name 2
  96777. .ft P
  96778. .fi
  96779. .UNINDENT
  96780. .UNINDENT
  96781. .UNINDENT
  96782. .INDENT 0.0
  96783. .TP
  96784. .B salt.modules.namecheap_domains.get_info(domain_name)
  96785. Returns information about the requested domain
  96786. .sp
  96787. returns a dictionary of information about the domain_name
  96788. .INDENT 7.0
  96789. .TP
  96790. .B domain_name
  96791. string Domain name to get information about
  96792. .UNINDENT
  96793. .sp
  96794. CLI Example:
  96795. .INDENT 7.0
  96796. .INDENT 3.5
  96797. .sp
  96798. .nf
  96799. .ft C
  96800. salt \(aqmy\-minion\(aq namecheap_domains.get_info my\-domain\-name
  96801. .ft P
  96802. .fi
  96803. .UNINDENT
  96804. .UNINDENT
  96805. .UNINDENT
  96806. .INDENT 0.0
  96807. .TP
  96808. .B salt.modules.namecheap_domains.get_list(list_type=None, search_term=None, page=None, page_size=None, sort_by=None)
  96809. Returns a list of domains for the particular user as a list of objects
  96810. offset by \fBpage\fP length of \fBpage_size\fP
  96811. .INDENT 7.0
  96812. .TP
  96813. .B list_type
  96814. ALL
  96815. One of \fBALL\fP, \fBEXPIRING\fP, \fBEXPIRED\fP
  96816. .TP
  96817. .B search_term
  96818. Keyword to look for on the domain list
  96819. .TP
  96820. .B page
  96821. 1
  96822. Number of result page to return
  96823. .TP
  96824. .B page_size
  96825. 20
  96826. Number of domains to be listed per page (minimum: \fB10\fP, maximum:
  96827. \fB100\fP)
  96828. .TP
  96829. .B sort_by
  96830. One of \fBNAME\fP, \fBNAME_DESC\fP, \fBEXPIREDATE\fP, \fBEXPIREDATE_DESC\fP,
  96831. \fBCREATEDATE\fP, or \fBCREATEDATE_DESC\fP
  96832. .UNINDENT
  96833. .sp
  96834. CLI Example:
  96835. .INDENT 7.0
  96836. .INDENT 3.5
  96837. .sp
  96838. .nf
  96839. .ft C
  96840. salt \(aqmy\-minion\(aq namecheap_domains.get_list
  96841. .ft P
  96842. .fi
  96843. .UNINDENT
  96844. .UNINDENT
  96845. .UNINDENT
  96846. .INDENT 0.0
  96847. .TP
  96848. .B salt.modules.namecheap_domains.get_tld_list()
  96849. Returns a list of TLDs as objects
  96850. .sp
  96851. CLI Example:
  96852. .INDENT 7.0
  96853. .INDENT 3.5
  96854. .sp
  96855. .nf
  96856. .ft C
  96857. salt \(aqmy\-minion\(aq namecheap_domains.get_tld_list
  96858. .ft P
  96859. .fi
  96860. .UNINDENT
  96861. .UNINDENT
  96862. .UNINDENT
  96863. .INDENT 0.0
  96864. .TP
  96865. .B salt.modules.namecheap_domains.reactivate(domain_name)
  96866. Try to reactivate the expired domain name
  96867. .sp
  96868. Returns the following information:
  96869. .INDENT 7.0
  96870. .IP \(bu 2
  96871. Whether or not the domain was reactivated successfully
  96872. .IP \(bu 2
  96873. The amount charged for reactivation
  96874. .IP \(bu 2
  96875. The order ID
  96876. .IP \(bu 2
  96877. The transaction ID
  96878. .UNINDENT
  96879. .sp
  96880. CLI Example:
  96881. .INDENT 7.0
  96882. .INDENT 3.5
  96883. .sp
  96884. .nf
  96885. .ft C
  96886. salt \(aqmy\-minion\(aq namecheap_domains.reactivate my\-domain\-name
  96887. .ft P
  96888. .fi
  96889. .UNINDENT
  96890. .UNINDENT
  96891. .UNINDENT
  96892. .INDENT 0.0
  96893. .TP
  96894. .B salt.modules.namecheap_domains.renew(domain_name, years, promotion_code=None)
  96895. Try to renew the specified expiring domain name for a specified number of years
  96896. .INDENT 7.0
  96897. .TP
  96898. .B domain_name
  96899. The domain name to be renewed
  96900. .TP
  96901. .B years
  96902. Number of years to renew
  96903. .UNINDENT
  96904. .sp
  96905. Returns the following information:
  96906. .INDENT 7.0
  96907. .IP \(bu 2
  96908. Whether or not the domain was renewed successfully
  96909. .IP \(bu 2
  96910. The domain ID
  96911. .IP \(bu 2
  96912. The order ID
  96913. .IP \(bu 2
  96914. The transaction ID
  96915. .IP \(bu 2
  96916. The amount charged for renewal
  96917. .UNINDENT
  96918. .sp
  96919. CLI Example:
  96920. .INDENT 7.0
  96921. .INDENT 3.5
  96922. .sp
  96923. .nf
  96924. .ft C
  96925. salt \(aqmy\-minion\(aq namecheap_domains.renew my\-domain\-name 5
  96926. .ft P
  96927. .fi
  96928. .UNINDENT
  96929. .UNINDENT
  96930. .UNINDENT
  96931. .SS salt.modules.namecheap_domains_dns
  96932. .sp
  96933. Namecheap DNS Management
  96934. .sp
  96935. New in version 2017.7.0.
  96936. .SS Prerequisites
  96937. .sp
  96938. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  96939. API.
  96940. .SS Configuration
  96941. .sp
  96942. The Namecheap username, API key and URL should be set in the minion configuration
  96943. file, or in the Pillar data.
  96944. .INDENT 0.0
  96945. .INDENT 3.5
  96946. .sp
  96947. .nf
  96948. .ft C
  96949. namecheap.name: companyname
  96950. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  96951. namecheap.client_ip: 162.155.30.172
  96952. #Real url
  96953. namecheap.url: https://api.namecheap.com/xml.response
  96954. #Sandbox url
  96955. #namecheap.url: https://api.sandbox.namecheap.xml.response
  96956. .ft P
  96957. .fi
  96958. .UNINDENT
  96959. .UNINDENT
  96960. .INDENT 0.0
  96961. .TP
  96962. .B salt.modules.namecheap_domains_dns.get_hosts(sld, tld)
  96963. Retrieves DNS host record settings for the requested domain.
  96964. .sp
  96965. returns a dictionary of information about the requested domain
  96966. .INDENT 7.0
  96967. .TP
  96968. .B sld
  96969. SLD of the domain name
  96970. .TP
  96971. .B tld
  96972. TLD of the domain name
  96973. .UNINDENT
  96974. .sp
  96975. CLI Example:
  96976. .INDENT 7.0
  96977. .INDENT 3.5
  96978. .sp
  96979. .nf
  96980. .ft C
  96981. salt \(aqmy\-minion\(aq namecheap_domains_dns.get_hosts sld tld
  96982. .ft P
  96983. .fi
  96984. .UNINDENT
  96985. .UNINDENT
  96986. .UNINDENT
  96987. .INDENT 0.0
  96988. .TP
  96989. .B salt.modules.namecheap_domains_dns.get_list(sld, tld)
  96990. Gets a list of DNS servers associated with the requested domain.
  96991. .sp
  96992. returns a dictionary of information about requested domain
  96993. .INDENT 7.0
  96994. .TP
  96995. .B sld
  96996. SLD of the domain name
  96997. .TP
  96998. .B tld
  96999. TLD of the domain name
  97000. .UNINDENT
  97001. .sp
  97002. CLI Example:
  97003. .INDENT 7.0
  97004. .INDENT 3.5
  97005. .sp
  97006. .nf
  97007. .ft C
  97008. salt \(aqmy\-minion\(aq namecheap_domains_dns.get_list sld tld
  97009. .ft P
  97010. .fi
  97011. .UNINDENT
  97012. .UNINDENT
  97013. .UNINDENT
  97014. .INDENT 0.0
  97015. .TP
  97016. .B salt.modules.namecheap_domains_dns.set_custom(sld, tld, nameservers)
  97017. Sets domain to use custom DNS servers.
  97018. .sp
  97019. returns True if the custom nameservers were set successfully
  97020. .INDENT 7.0
  97021. .TP
  97022. .B sld
  97023. SLD of the domain name
  97024. .TP
  97025. .B tld
  97026. TLD of the domain name
  97027. .TP
  97028. .B nameservers
  97029. array of strings List of nameservers to be associated with this domain
  97030. .UNINDENT
  97031. .sp
  97032. CLI Example:
  97033. .INDENT 7.0
  97034. .INDENT 3.5
  97035. .sp
  97036. .nf
  97037. .ft C
  97038. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_custom sld tld nameserver
  97039. .ft P
  97040. .fi
  97041. .UNINDENT
  97042. .UNINDENT
  97043. .UNINDENT
  97044. .INDENT 0.0
  97045. .TP
  97046. .B salt.modules.namecheap_domains_dns.set_default(sld, tld)
  97047. Sets domain to use namecheap default DNS servers. Required for free
  97048. services like Host record management, URL forwarding, email forwarding,
  97049. dynamic DNS and other value added services.
  97050. .INDENT 7.0
  97051. .TP
  97052. .B sld
  97053. SLD of the domain name
  97054. .TP
  97055. .B tld
  97056. TLD of the domain name
  97057. .UNINDENT
  97058. .sp
  97059. Returns \fBTrue\fP if the domain was successfully pointed at the default DNS
  97060. servers.
  97061. .sp
  97062. CLI Example:
  97063. .INDENT 7.0
  97064. .INDENT 3.5
  97065. .sp
  97066. .nf
  97067. .ft C
  97068. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_default sld tld
  97069. .ft P
  97070. .fi
  97071. .UNINDENT
  97072. .UNINDENT
  97073. .UNINDENT
  97074. .INDENT 0.0
  97075. .TP
  97076. .B salt.modules.namecheap_domains_dns.set_hosts(sld, tld, hosts)
  97077. Sets DNS host records settings for the requested domain.
  97078. .sp
  97079. returns True if the host records were set successfully
  97080. .INDENT 7.0
  97081. .TP
  97082. .B sld
  97083. SLD of the domain name
  97084. .TP
  97085. .B tld
  97086. TLD of the domain name
  97087. .TP
  97088. .B hosts
  97089. Must be passed as a list of Python dictionaries, with each dictionary
  97090. containing the following keys:
  97091. .INDENT 7.0
  97092. .IP \(bu 2
  97093. \fBhostname\fP
  97094. .IP \(bu 2
  97095. \fBrecordtype\fP \- One of \fBA\fP, \fBAAAA\fP, \fBCNAME\fP, \fBMX\fP, \fBMXE\fP,
  97096. \fBTXT\fP, \fBURL\fP, \fBURL301\fP, or \fBFRAME\fP
  97097. .IP \(bu 2
  97098. \fBaddress\fP \- URL or IP address
  97099. .IP \(bu 2
  97100. \fBttl\fP \- An integer between 60 and 60000 (default: \fB1800\fP)
  97101. .UNINDENT
  97102. .sp
  97103. Additionally, the \fBmxpref\fP key can be present, but must be accompanied
  97104. by an \fBemailtype\fP key.
  97105. .UNINDENT
  97106. .sp
  97107. CLI Example:
  97108. .INDENT 7.0
  97109. .INDENT 3.5
  97110. .sp
  97111. .nf
  97112. .ft C
  97113. salt \(aqmy\-minion\(aq namecheap_domains_dns.set_hosts sld tld hosts
  97114. .ft P
  97115. .fi
  97116. .UNINDENT
  97117. .UNINDENT
  97118. .UNINDENT
  97119. .SS salt.modules.namecheap_domains_ns
  97120. .sp
  97121. Namecheap Nameserver Management
  97122. .sp
  97123. New in version 2017.7.0.
  97124. .SS Prerequisites
  97125. .sp
  97126. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  97127. API.
  97128. .SS Configuration
  97129. .sp
  97130. The Namecheap username, API key and URL should be set in the minion configuration
  97131. file, or in the Pillar data.
  97132. .INDENT 0.0
  97133. .INDENT 3.5
  97134. .sp
  97135. .nf
  97136. .ft C
  97137. namecheap.name: companyname
  97138. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  97139. namecheap.client_ip: 162.155.30.172
  97140. #Real url
  97141. namecheap.url: https://api.namecheap.com/xml.response
  97142. #Sandbox url
  97143. #namecheap.url: https://api.sandbox.namecheap.xml.response
  97144. .ft P
  97145. .fi
  97146. .UNINDENT
  97147. .UNINDENT
  97148. .INDENT 0.0
  97149. .TP
  97150. .B salt.modules.namecheap_domains_ns.create(sld, tld, nameserver, ip)
  97151. Creates a new nameserver. Returns \fBTrue\fP if the nameserver was created
  97152. successfully.
  97153. .INDENT 7.0
  97154. .TP
  97155. .B sld
  97156. SLD of the domain name
  97157. .TP
  97158. .B tld
  97159. TLD of the domain name
  97160. .TP
  97161. .B nameserver
  97162. Nameserver to create
  97163. .TP
  97164. .B ip
  97165. Nameserver IP address
  97166. .UNINDENT
  97167. .sp
  97168. CLI Example:
  97169. .INDENT 7.0
  97170. .INDENT 3.5
  97171. .sp
  97172. .nf
  97173. .ft C
  97174. salt \(aq*\(aq namecheap_domains_ns.create sld tld nameserver ip
  97175. .ft P
  97176. .fi
  97177. .UNINDENT
  97178. .UNINDENT
  97179. .UNINDENT
  97180. .INDENT 0.0
  97181. .TP
  97182. .B salt.modules.namecheap_domains_ns.delete(sld, tld, nameserver)
  97183. Deletes a nameserver. Returns \fBTrue\fP if the nameserver was deleted
  97184. successfully
  97185. .INDENT 7.0
  97186. .TP
  97187. .B sld
  97188. SLD of the domain name
  97189. .TP
  97190. .B tld
  97191. TLD of the domain name
  97192. .TP
  97193. .B nameserver
  97194. Nameserver to delete
  97195. .UNINDENT
  97196. .sp
  97197. CLI Example:
  97198. .INDENT 7.0
  97199. .INDENT 3.5
  97200. .sp
  97201. .nf
  97202. .ft C
  97203. salt \(aq*\(aq namecheap_domains_ns.delete sld tld nameserver
  97204. .ft P
  97205. .fi
  97206. .UNINDENT
  97207. .UNINDENT
  97208. .UNINDENT
  97209. .INDENT 0.0
  97210. .TP
  97211. .B salt.modules.namecheap_domains_ns.get_info(sld, tld, nameserver)
  97212. Retrieves information about a registered nameserver. Returns the following
  97213. information:
  97214. .INDENT 7.0
  97215. .IP \(bu 2
  97216. IP Address set for the nameserver
  97217. .IP \(bu 2
  97218. Domain name which was queried
  97219. .IP \(bu 2
  97220. A list of nameservers and their statuses
  97221. .UNINDENT
  97222. .INDENT 7.0
  97223. .TP
  97224. .B sld
  97225. SLD of the domain name
  97226. .TP
  97227. .B tld
  97228. TLD of the domain name
  97229. .TP
  97230. .B nameserver
  97231. Nameserver to retrieve
  97232. .UNINDENT
  97233. .sp
  97234. CLI Example:
  97235. .INDENT 7.0
  97236. .INDENT 3.5
  97237. .sp
  97238. .nf
  97239. .ft C
  97240. salt \(aq*\(aq namecheap_domains_ns.get_info sld tld nameserver
  97241. .ft P
  97242. .fi
  97243. .UNINDENT
  97244. .UNINDENT
  97245. .UNINDENT
  97246. .INDENT 0.0
  97247. .TP
  97248. .B salt.modules.namecheap_domains_ns.update(sld, tld, nameserver, old_ip, new_ip)
  97249. Deletes a nameserver. Returns \fBTrue\fP if the nameserver was updated
  97250. successfully.
  97251. .INDENT 7.0
  97252. .TP
  97253. .B sld
  97254. SLD of the domain name
  97255. .TP
  97256. .B tld
  97257. TLD of the domain name
  97258. .TP
  97259. .B nameserver
  97260. Nameserver to create
  97261. .TP
  97262. .B old_ip
  97263. Current ip address
  97264. .TP
  97265. .B new_ip
  97266. New ip address
  97267. .UNINDENT
  97268. .sp
  97269. CLI Example:
  97270. .INDENT 7.0
  97271. .INDENT 3.5
  97272. .sp
  97273. .nf
  97274. .ft C
  97275. salt \(aq*\(aq namecheap_domains_ns.update sld tld nameserver old_ip new_ip
  97276. .ft P
  97277. .fi
  97278. .UNINDENT
  97279. .UNINDENT
  97280. .UNINDENT
  97281. .SS salt.modules.namecheap_users module
  97282. .sp
  97283. Namecheap User Management
  97284. .sp
  97285. New in version 2017.7.0.
  97286. .SS Prerequisites
  97287. .sp
  97288. This module uses the \fBrequests\fP Python module to communicate to the namecheap
  97289. API.
  97290. .SS Configuration
  97291. .sp
  97292. The Namecheap username, API key and URL should be set in the minion configuration
  97293. file, or in the Pillar data.
  97294. .INDENT 0.0
  97295. .INDENT 3.5
  97296. .sp
  97297. .nf
  97298. .ft C
  97299. namecheap.name: companyname
  97300. namecheap.key: a1b2c3d4e5f67a8b9c0d1e2f3
  97301. namecheap.client_ip: 162.155.30.172
  97302. #Real url
  97303. namecheap.url: https://api.namecheap.com/xml.response
  97304. #Sandbox url
  97305. #namecheap.url: https://api.sandbox.namecheap.xml.response
  97306. .ft P
  97307. .fi
  97308. .UNINDENT
  97309. .UNINDENT
  97310. .INDENT 0.0
  97311. .TP
  97312. .B salt.modules.namecheap_users.check_balances(minimum=100)
  97313. Checks if the provided minimum value is present in the user\(aqs account.
  97314. .sp
  97315. Returns a boolean. Returns \fBFalse\fP if the user\(aqs account balance is less
  97316. than the provided minimum or \fBTrue\fP if greater than the minimum.
  97317. .INDENT 7.0
  97318. .TP
  97319. .B minimum
  97320. 100
  97321. The value to check
  97322. .UNINDENT
  97323. .sp
  97324. CLI Example:
  97325. .INDENT 7.0
  97326. .INDENT 3.5
  97327. .sp
  97328. .nf
  97329. .ft C
  97330. salt \(aqmy\-minion\(aq namecheap_users.check_balances
  97331. salt \(aqmy\-minion\(aq namecheap_users.check_balances minimum=150
  97332. .ft P
  97333. .fi
  97334. .UNINDENT
  97335. .UNINDENT
  97336. .UNINDENT
  97337. .INDENT 0.0
  97338. .TP
  97339. .B salt.modules.namecheap_users.get_balances()
  97340. Gets information about fund in the user\(aqs account. This method returns the
  97341. following information: Available Balance, Account Balance, Earned Amount,
  97342. Withdrawable Amount and Funds Required for AutoRenew.
  97343. .sp
  97344. \fBNOTE:\fP
  97345. .INDENT 7.0
  97346. .INDENT 3.5
  97347. If a domain setup with automatic renewal is expiring within the next 90
  97348. days, the FundsRequiredForAutoRenew attribute shows the amount needed
  97349. in your Namecheap account to complete auto renewal.
  97350. .UNINDENT
  97351. .UNINDENT
  97352. .sp
  97353. CLI Example:
  97354. .INDENT 7.0
  97355. .INDENT 3.5
  97356. .sp
  97357. .nf
  97358. .ft C
  97359. salt \(aqmy\-minion\(aq namecheap_users.get_balances
  97360. .ft P
  97361. .fi
  97362. .UNINDENT
  97363. .UNINDENT
  97364. .UNINDENT
  97365. .SS salt.modules.netaddress
  97366. .sp
  97367. Module for getting information about network addresses.
  97368. .sp
  97369. New in version 2016.3.0.
  97370. .INDENT 0.0
  97371. .TP
  97372. .B depends
  97373. netaddr
  97374. .UNINDENT
  97375. .INDENT 0.0
  97376. .TP
  97377. .B salt.modules.netaddress.cidr_broadcast(cidr)
  97378. Get the broadcast address associated with a CIDR address.
  97379. .sp
  97380. CLI example:
  97381. .INDENT 7.0
  97382. .INDENT 3.5
  97383. .sp
  97384. .nf
  97385. .ft C
  97386. salt myminion netaddress.cidr_netmask 192.168.0.0/20
  97387. .ft P
  97388. .fi
  97389. .UNINDENT
  97390. .UNINDENT
  97391. .UNINDENT
  97392. .INDENT 0.0
  97393. .TP
  97394. .B salt.modules.netaddress.cidr_netmask(cidr)
  97395. Get the netmask address associated with a CIDR address.
  97396. .sp
  97397. CLI example:
  97398. .INDENT 7.0
  97399. .INDENT 3.5
  97400. .sp
  97401. .nf
  97402. .ft C
  97403. salt myminion netaddress.cidr_netmask 192.168.0.0/20
  97404. .ft P
  97405. .fi
  97406. .UNINDENT
  97407. .UNINDENT
  97408. .UNINDENT
  97409. .INDENT 0.0
  97410. .TP
  97411. .B salt.modules.netaddress.list_cidr_ips(cidr)
  97412. Get a list of IP addresses from a CIDR.
  97413. .sp
  97414. CLI example:
  97415. .INDENT 7.0
  97416. .INDENT 3.5
  97417. .sp
  97418. .nf
  97419. .ft C
  97420. salt myminion netaddress.list_cidr_ips 192.168.0.0/20
  97421. .ft P
  97422. .fi
  97423. .UNINDENT
  97424. .UNINDENT
  97425. .UNINDENT
  97426. .INDENT 0.0
  97427. .TP
  97428. .B salt.modules.netaddress.list_cidr_ips_ipv6(cidr)
  97429. Get a list of IPv6 addresses from a CIDR.
  97430. .sp
  97431. CLI example:
  97432. .INDENT 7.0
  97433. .INDENT 3.5
  97434. .sp
  97435. .nf
  97436. .ft C
  97437. salt myminion netaddress.list_cidr_ips_ipv6 192.168.0.0/20
  97438. .ft P
  97439. .fi
  97440. .UNINDENT
  97441. .UNINDENT
  97442. .UNINDENT
  97443. .SS salt.modules.netbox module
  97444. .SS NetBox
  97445. .sp
  97446. Module to query NetBox
  97447. .INDENT 0.0
  97448. .TP
  97449. .B codeauthor
  97450. Zach Moody <\fI\%zmoody@do.co\fP>
  97451. .TP
  97452. .B maturity
  97453. new
  97454. .TP
  97455. .B depends
  97456. pynetbox
  97457. .UNINDENT
  97458. .sp
  97459. The following config should be in the minion config file. In order to
  97460. work with \fBsecrets\fP you should provide a token and path to your
  97461. private key file:
  97462. .INDENT 0.0
  97463. .INDENT 3.5
  97464. .sp
  97465. .nf
  97466. .ft C
  97467. netbox:
  97468. url: <NETBOX_URL>
  97469. token: <NETBOX_USERNAME_API_TOKEN (OPTIONAL)>
  97470. keyfile: </PATH/TO/NETBOX/KEY (OPTIONAL)>
  97471. .ft P
  97472. .fi
  97473. .UNINDENT
  97474. .UNINDENT
  97475. .sp
  97476. New in version 2018.3.0.
  97477. .INDENT 0.0
  97478. .TP
  97479. .B salt.modules.netbox.create_circuit(name, provider_id, circuit_type, description=None)
  97480. New in version 2019.2.0.
  97481. .sp
  97482. Create a new Netbox circuit
  97483. .INDENT 7.0
  97484. .TP
  97485. .B name
  97486. Name of the circuit
  97487. .TP
  97488. .B provider_id
  97489. The netbox id of the circuit provider
  97490. .TP
  97491. .B circuit_type
  97492. The name of the circuit type
  97493. .TP
  97494. .B asn
  97495. The ASN of the circuit provider
  97496. .TP
  97497. .B description
  97498. The description of the circuit
  97499. .UNINDENT
  97500. .sp
  97501. CLI Example:
  97502. .INDENT 7.0
  97503. .INDENT 3.5
  97504. .sp
  97505. .nf
  97506. .ft C
  97507. salt myminion netbox.create_circuit NEW_CIRCUIT_01 Telia Transit 1299 "New Telia circuit"
  97508. .ft P
  97509. .fi
  97510. .UNINDENT
  97511. .UNINDENT
  97512. .UNINDENT
  97513. .INDENT 0.0
  97514. .TP
  97515. .B salt.modules.netbox.create_circuit_provider(name, asn=None)
  97516. New in version 2019.2.0.
  97517. .sp
  97518. Create a new Netbox circuit provider
  97519. .INDENT 7.0
  97520. .TP
  97521. .B name
  97522. The name of the circuit provider
  97523. .TP
  97524. .B asn
  97525. The ASN of the circuit provider
  97526. .UNINDENT
  97527. .sp
  97528. CLI Example:
  97529. .INDENT 7.0
  97530. .INDENT 3.5
  97531. .sp
  97532. .nf
  97533. .ft C
  97534. salt myminion netbox.create_circuit_provider Telia 1299
  97535. .ft P
  97536. .fi
  97537. .UNINDENT
  97538. .UNINDENT
  97539. .UNINDENT
  97540. .INDENT 0.0
  97541. .TP
  97542. .B salt.modules.netbox.create_circuit_termination(circuit, interface, device, speed, xconnect_id=None, term_side=u\(aqA\(aq)
  97543. New in version 2019.2.0.
  97544. .sp
  97545. Terminate a circuit on an interface
  97546. .INDENT 7.0
  97547. .TP
  97548. .B circuit
  97549. The name of the circuit
  97550. .TP
  97551. .B interface
  97552. The name of the interface to terminate on
  97553. .TP
  97554. .B device
  97555. The name of the device the interface belongs to
  97556. .TP
  97557. .B speed
  97558. The speed of the circuit, in Kbps
  97559. .TP
  97560. .B xconnect_id
  97561. The cross\-connect identifier
  97562. .TP
  97563. .B term_side
  97564. The side of the circuit termination
  97565. .UNINDENT
  97566. .sp
  97567. CLI Example:
  97568. .INDENT 7.0
  97569. .INDENT 3.5
  97570. .sp
  97571. .nf
  97572. .ft C
  97573. salt myminion netbox.create_circuit_termination NEW_CIRCUIT_01 xe\-0/0/1 myminion 10000 xconnect_id=XCON01
  97574. .ft P
  97575. .fi
  97576. .UNINDENT
  97577. .UNINDENT
  97578. .UNINDENT
  97579. .INDENT 0.0
  97580. .TP
  97581. .B salt.modules.netbox.create_circuit_type(name)
  97582. New in version 2019.2.0.
  97583. .sp
  97584. Create a new Netbox circuit type.
  97585. .INDENT 7.0
  97586. .TP
  97587. .B name
  97588. The name of the circuit type
  97589. .UNINDENT
  97590. .sp
  97591. CLI Example:
  97592. .INDENT 7.0
  97593. .INDENT 3.5
  97594. .sp
  97595. .nf
  97596. .ft C
  97597. salt myminion netbox.create_circuit_type Transit
  97598. .ft P
  97599. .fi
  97600. .UNINDENT
  97601. .UNINDENT
  97602. .UNINDENT
  97603. .INDENT 0.0
  97604. .TP
  97605. .B salt.modules.netbox.create_device(name, role, model, manufacturer, site)
  97606. New in version 2019.2.0.
  97607. .sp
  97608. Create a new device with a name, role, model, manufacturer and site.
  97609. All these components need to be already in Netbox.
  97610. .INDENT 7.0
  97611. .TP
  97612. .B name
  97613. The name of the device, e.g., \fBedge_router\fP
  97614. .TP
  97615. .B role
  97616. String of device role, e.g., \fBrouter\fP
  97617. .TP
  97618. .B model
  97619. String of device model, e.g., \fBMX480\fP
  97620. .TP
  97621. .B manufacturer
  97622. String of device manufacturer, e.g., \fBJuniper\fP
  97623. .TP
  97624. .B site
  97625. String of device site, e.g., \fBBRU\fP
  97626. .UNINDENT
  97627. .sp
  97628. CLI Example:
  97629. .INDENT 7.0
  97630. .INDENT 3.5
  97631. .sp
  97632. .nf
  97633. .ft C
  97634. salt myminion netbox.create_device edge_router router MX480 Juniper BRU
  97635. .ft P
  97636. .fi
  97637. .UNINDENT
  97638. .UNINDENT
  97639. .UNINDENT
  97640. .INDENT 0.0
  97641. .TP
  97642. .B salt.modules.netbox.create_device_role(role, color)
  97643. New in version 2019.2.0.
  97644. .sp
  97645. Create a device role
  97646. .INDENT 7.0
  97647. .TP
  97648. .B role
  97649. String of device role, e.g., \fBrouter\fP
  97650. .UNINDENT
  97651. .sp
  97652. CLI Example:
  97653. .INDENT 7.0
  97654. .INDENT 3.5
  97655. .sp
  97656. .nf
  97657. .ft C
  97658. salt myminion netbox.create_device_role router
  97659. .ft P
  97660. .fi
  97661. .UNINDENT
  97662. .UNINDENT
  97663. .UNINDENT
  97664. .INDENT 0.0
  97665. .TP
  97666. .B salt.modules.netbox.create_device_type(model, manufacturer)
  97667. New in version 2019.2.0.
  97668. .sp
  97669. Create a device type. If the manufacturer doesn\(aqt exist, create a new manufacturer.
  97670. .INDENT 7.0
  97671. .TP
  97672. .B model
  97673. String of device model, e.g., \fBMX480\fP
  97674. .TP
  97675. .B manufacturer
  97676. String of device manufacturer, e.g., \fBJuniper\fP
  97677. .UNINDENT
  97678. .sp
  97679. CLI Example:
  97680. .INDENT 7.0
  97681. .INDENT 3.5
  97682. .sp
  97683. .nf
  97684. .ft C
  97685. salt myminion netbox.create_device_type MX480 Juniper
  97686. .ft P
  97687. .fi
  97688. .UNINDENT
  97689. .UNINDENT
  97690. .UNINDENT
  97691. .INDENT 0.0
  97692. .TP
  97693. .B salt.modules.netbox.create_interface(device_name, interface_name, mac_address=None, description=None, enabled=None, lag=None, lag_parent=None, form_factor=None)
  97694. New in version 2019.2.0.
  97695. .sp
  97696. Attach an interface to a device. If not all arguments are provided,
  97697. they will default to Netbox defaults.
  97698. .INDENT 7.0
  97699. .TP
  97700. .B device_name
  97701. The name of the device, e.g., \fBedge_router\fP
  97702. .TP
  97703. .B interface_name
  97704. The name of the interface, e.g., \fBTenGigE0/0/0/0\fP
  97705. .TP
  97706. .B mac_address
  97707. String of mac address, e.g., \fB50:87:89:73:92:C8\fP
  97708. .TP
  97709. .B description
  97710. String of interface description, e.g., \fBNTT\fP
  97711. .TP
  97712. .B enabled
  97713. String of boolean interface status, e.g., \fBTrue\fP
  97714. .TP
  97715. .B lag:
  97716. Boolean of interface lag status, e.g., \fBTrue\fP
  97717. .TP
  97718. .B lag_parent
  97719. String of interface lag parent name, e.g., \fBae13\fP
  97720. .TP
  97721. .B form_factor
  97722. Integer of form factor id, obtained through _choices API endpoint, e.g., \fB200\fP
  97723. .UNINDENT
  97724. .sp
  97725. CLI Example:
  97726. .INDENT 7.0
  97727. .INDENT 3.5
  97728. .sp
  97729. .nf
  97730. .ft C
  97731. salt myminion netbox.create_interface edge_router ae13 description="Core uplink"
  97732. .ft P
  97733. .fi
  97734. .UNINDENT
  97735. .UNINDENT
  97736. .UNINDENT
  97737. .INDENT 0.0
  97738. .TP
  97739. .B salt.modules.netbox.create_interface_connection(interface_a, interface_b)
  97740. New in version 2019.2.0.
  97741. .sp
  97742. Create an interface connection between 2 interfaces
  97743. .INDENT 7.0
  97744. .TP
  97745. .B interface_a
  97746. Interface id for Side A
  97747. .TP
  97748. .B interface_b
  97749. Interface id for Side B
  97750. .UNINDENT
  97751. .sp
  97752. CLI Example:
  97753. .INDENT 7.0
  97754. .INDENT 3.5
  97755. .sp
  97756. .nf
  97757. .ft C
  97758. salt myminion netbox.create_interface_connection 123 456
  97759. .ft P
  97760. .fi
  97761. .UNINDENT
  97762. .UNINDENT
  97763. .UNINDENT
  97764. .INDENT 0.0
  97765. .TP
  97766. .B salt.modules.netbox.create_inventory_item(device_name, item_name, manufacturer_name=None, serial=u\(aq\(aq, part_id=u\(aq\(aq, description=u\(aq\(aq)
  97767. New in version 2019.2.0.
  97768. .sp
  97769. Add an inventory item to an existing device.
  97770. .INDENT 7.0
  97771. .TP
  97772. .B device_name
  97773. The name of the device, e.g., \fBedge_router\fP\&.
  97774. .TP
  97775. .B item_name
  97776. String of inventory item name, e.g., \fBTransceiver\fP\&.
  97777. .TP
  97778. .B manufacturer_name
  97779. String of inventory item manufacturer, e.g., \fBFiberstore\fP\&.
  97780. .TP
  97781. .B serial
  97782. String of inventory item serial, e.g., \fBFS1238931\fP\&.
  97783. .TP
  97784. .B part_id
  97785. String of inventory item part id, e.g., \fB740\-01234\fP\&.
  97786. .TP
  97787. .B description
  97788. String of inventory item description, e.g., \fBSFP+\-10G\-LR\fP\&.
  97789. .UNINDENT
  97790. .sp
  97791. CLI Example:
  97792. .INDENT 7.0
  97793. .INDENT 3.5
  97794. .sp
  97795. .nf
  97796. .ft C
  97797. salt myminion netbox.create_inventory_item edge_router Transceiver part_id=740\-01234
  97798. .ft P
  97799. .fi
  97800. .UNINDENT
  97801. .UNINDENT
  97802. .UNINDENT
  97803. .INDENT 0.0
  97804. .TP
  97805. .B salt.modules.netbox.create_ipaddress(ip_address, family, device=None, interface=None)
  97806. New in version 2019.2.0.
  97807. .sp
  97808. Add an IP address, and optionally attach it to an interface.
  97809. .INDENT 7.0
  97810. .TP
  97811. .B ip_address
  97812. The IP address and CIDR, e.g., \fB192.168.1.1/24\fP
  97813. .TP
  97814. .B family
  97815. Integer of IP family, e.g., \fB4\fP
  97816. .TP
  97817. .B device
  97818. The name of the device to attach IP to, e.g., \fBedge_router\fP
  97819. .TP
  97820. .B interface
  97821. The name of the interface to attach IP to, e.g., \fBae13\fP
  97822. .UNINDENT
  97823. .sp
  97824. CLI Example:
  97825. .INDENT 7.0
  97826. .INDENT 3.5
  97827. .sp
  97828. .nf
  97829. .ft C
  97830. salt myminion netbox.create_ipaddress 192.168.1.1/24 4 device=edge_router interface=ae13
  97831. .ft P
  97832. .fi
  97833. .UNINDENT
  97834. .UNINDENT
  97835. .UNINDENT
  97836. .INDENT 0.0
  97837. .TP
  97838. .B salt.modules.netbox.create_manufacturer(name)
  97839. New in version 2019.2.0.
  97840. .sp
  97841. Create a device manufacturer.
  97842. .INDENT 7.0
  97843. .TP
  97844. .B name
  97845. The name of the manufacturer, e.g., \fBJuniper\fP
  97846. .UNINDENT
  97847. .sp
  97848. CLI Example:
  97849. .INDENT 7.0
  97850. .INDENT 3.5
  97851. .sp
  97852. .nf
  97853. .ft C
  97854. salt myminion netbox.create_manufacturer Juniper
  97855. .ft P
  97856. .fi
  97857. .UNINDENT
  97858. .UNINDENT
  97859. .UNINDENT
  97860. .INDENT 0.0
  97861. .TP
  97862. .B salt.modules.netbox.create_platform(platform)
  97863. New in version 2019.2.0.
  97864. .sp
  97865. Create a new device platform
  97866. .INDENT 7.0
  97867. .TP
  97868. .B platform
  97869. String of device platform, e.g., \fBjunos\fP
  97870. .UNINDENT
  97871. .sp
  97872. CLI Example:
  97873. .INDENT 7.0
  97874. .INDENT 3.5
  97875. .sp
  97876. .nf
  97877. .ft C
  97878. salt myminion netbox.create_platform junos
  97879. .ft P
  97880. .fi
  97881. .UNINDENT
  97882. .UNINDENT
  97883. .UNINDENT
  97884. .INDENT 0.0
  97885. .TP
  97886. .B salt.modules.netbox.create_site(site)
  97887. New in version 2019.2.0.
  97888. .sp
  97889. Create a new device site
  97890. .INDENT 7.0
  97891. .TP
  97892. .B site
  97893. String of device site, e.g., \fBBRU\fP
  97894. .UNINDENT
  97895. .sp
  97896. CLI Example:
  97897. .INDENT 7.0
  97898. .INDENT 3.5
  97899. .sp
  97900. .nf
  97901. .ft C
  97902. salt myminion netbox.create_site BRU
  97903. .ft P
  97904. .fi
  97905. .UNINDENT
  97906. .UNINDENT
  97907. .UNINDENT
  97908. .INDENT 0.0
  97909. .TP
  97910. .B salt.modules.netbox.delete_interface(device_name, interface_name)
  97911. New in version 2019.2.0.
  97912. .sp
  97913. Delete an interface from a device.
  97914. .INDENT 7.0
  97915. .TP
  97916. .B device_name
  97917. The name of the device, e.g., \fBedge_router\fP\&.
  97918. .TP
  97919. .B interface_name
  97920. The name of the interface, e.g., \fBae13\fP
  97921. .UNINDENT
  97922. .sp
  97923. CLI Example:
  97924. .INDENT 7.0
  97925. .INDENT 3.5
  97926. .sp
  97927. .nf
  97928. .ft C
  97929. salt myminion netbox.delete_interface edge_router ae13
  97930. .ft P
  97931. .fi
  97932. .UNINDENT
  97933. .UNINDENT
  97934. .UNINDENT
  97935. .INDENT 0.0
  97936. .TP
  97937. .B salt.modules.netbox.delete_inventory_item(item_id)
  97938. New in version 2019.2.0.
  97939. .sp
  97940. Remove an item from a devices inventory. Identified by the netbox id
  97941. .INDENT 7.0
  97942. .TP
  97943. .B item_id
  97944. Integer of item to be deleted
  97945. .UNINDENT
  97946. .sp
  97947. CLI Example:
  97948. .INDENT 7.0
  97949. .INDENT 3.5
  97950. .sp
  97951. .nf
  97952. .ft C
  97953. salt myminion netbox.delete_inventory_item 1354
  97954. .ft P
  97955. .fi
  97956. .UNINDENT
  97957. .UNINDENT
  97958. .UNINDENT
  97959. .INDENT 0.0
  97960. .TP
  97961. .B salt.modules.netbox.delete_ipaddress(ipaddr_id)
  97962. New in version 2019.2.0.
  97963. .sp
  97964. Delete an IP address. IP addresses in Netbox are a combination of address
  97965. and the interface it is assigned to.
  97966. .INDENT 7.0
  97967. .TP
  97968. .B id
  97969. The Netbox id for the IP address.
  97970. .UNINDENT
  97971. .sp
  97972. CLI Example:
  97973. .INDENT 7.0
  97974. .INDENT 3.5
  97975. .sp
  97976. .nf
  97977. .ft C
  97978. salt myminion netbox.delete_ipaddress 9002
  97979. .ft P
  97980. .fi
  97981. .UNINDENT
  97982. .UNINDENT
  97983. .UNINDENT
  97984. .INDENT 0.0
  97985. .TP
  97986. .B salt.modules.netbox.filter_(app, endpoint, **kwargs)
  97987. Get a list of items from NetBox.
  97988. .INDENT 7.0
  97989. .TP
  97990. .B app
  97991. String of netbox app, e.g., \fBdcim\fP, \fBcircuits\fP, \fBipam\fP
  97992. .TP
  97993. .B endpoint
  97994. String of app endpoint, e.g., \fBsites\fP, \fBregions\fP, \fBdevices\fP
  97995. .TP
  97996. .B kwargs
  97997. Optional arguments that can be used to filter.
  97998. All filter keywords are available in Netbox,
  97999. which can be found by surfing to the corresponding API endpoint,
  98000. and clicking Filters. e.g., \fBrole=router\fP
  98001. .UNINDENT
  98002. .sp
  98003. Returns a list of dictionaries
  98004. .INDENT 7.0
  98005. .INDENT 3.5
  98006. .sp
  98007. .nf
  98008. .ft C
  98009. salt myminion netbox.filter dcim devices status=1 role=router
  98010. .ft P
  98011. .fi
  98012. .UNINDENT
  98013. .UNINDENT
  98014. .UNINDENT
  98015. .INDENT 0.0
  98016. .TP
  98017. .B salt.modules.netbox.get_(app, endpoint, id=None, **kwargs)
  98018. Get a single item from NetBox.
  98019. .INDENT 7.0
  98020. .TP
  98021. .B app
  98022. String of netbox app, e.g., \fBdcim\fP, \fBcircuits\fP, \fBipam\fP
  98023. .TP
  98024. .B endpoint
  98025. String of app endpoint, e.g., \fBsites\fP, \fBregions\fP, \fBdevices\fP
  98026. .UNINDENT
  98027. .sp
  98028. Returns a single dictionary
  98029. .sp
  98030. To get an item based on ID.
  98031. .INDENT 7.0
  98032. .INDENT 3.5
  98033. .sp
  98034. .nf
  98035. .ft C
  98036. salt myminion netbox.get dcim devices id=123
  98037. .ft P
  98038. .fi
  98039. .UNINDENT
  98040. .UNINDENT
  98041. .sp
  98042. Or using named arguments that correspond with accepted filters on
  98043. the NetBox endpoint.
  98044. .INDENT 7.0
  98045. .INDENT 3.5
  98046. .sp
  98047. .nf
  98048. .ft C
  98049. salt myminion netbox.get dcim devices name=my\-router
  98050. .ft P
  98051. .fi
  98052. .UNINDENT
  98053. .UNINDENT
  98054. .UNINDENT
  98055. .INDENT 0.0
  98056. .TP
  98057. .B salt.modules.netbox.get_circuit_provider(name, asn=None)
  98058. New in version 2019.2.0.
  98059. .sp
  98060. Get a circuit provider with a given name and optional ASN.
  98061. .INDENT 7.0
  98062. .TP
  98063. .B name
  98064. The name of the circuit provider
  98065. .TP
  98066. .B asn
  98067. The ASN of the circuit provider
  98068. .UNINDENT
  98069. .sp
  98070. CLI Example:
  98071. .INDENT 7.0
  98072. .INDENT 3.5
  98073. .sp
  98074. .nf
  98075. .ft C
  98076. salt myminion netbox.get_circuit_provider Telia 1299
  98077. .ft P
  98078. .fi
  98079. .UNINDENT
  98080. .UNINDENT
  98081. .UNINDENT
  98082. .INDENT 0.0
  98083. .TP
  98084. .B salt.modules.netbox.get_interfaces(device_name=None, **kwargs)
  98085. New in version 2019.2.0.
  98086. .sp
  98087. Returns interfaces for a specific device using arbitrary netbox filters
  98088. .INDENT 7.0
  98089. .TP
  98090. .B device_name
  98091. The name of the device, e.g., \fBedge_router\fP
  98092. .TP
  98093. .B kwargs
  98094. Optional arguments to be used for filtering
  98095. .UNINDENT
  98096. .sp
  98097. CLI Example:
  98098. .INDENT 7.0
  98099. .INDENT 3.5
  98100. .sp
  98101. .nf
  98102. .ft C
  98103. salt myminion netbox.get_interfaces edge_router name="et\-0/0/5"
  98104. .ft P
  98105. .fi
  98106. .UNINDENT
  98107. .UNINDENT
  98108. .UNINDENT
  98109. .INDENT 0.0
  98110. .TP
  98111. .B salt.modules.netbox.get_ipaddresses(device_name=None, **kwargs)
  98112. New in version 2019.2.0.
  98113. .sp
  98114. Filters for an IP address using specified filters
  98115. .INDENT 7.0
  98116. .TP
  98117. .B device_name
  98118. The name of the device to check for the IP address
  98119. .TP
  98120. .B kwargs
  98121. Optional arguments that can be used to filter, e.g., \fBfamily=4\fP
  98122. .UNINDENT
  98123. .sp
  98124. CLI Example:
  98125. .INDENT 7.0
  98126. .INDENT 3.5
  98127. .sp
  98128. .nf
  98129. .ft C
  98130. salt myminion netbox.get_ipaddresses device_name family=4
  98131. .ft P
  98132. .fi
  98133. .UNINDENT
  98134. .UNINDENT
  98135. .UNINDENT
  98136. .INDENT 0.0
  98137. .TP
  98138. .B salt.modules.netbox.make_interface_child(device_name, interface_name, parent_name)
  98139. New in version 2019.2.0.
  98140. .sp
  98141. Set an interface as part of a LAG.
  98142. .INDENT 7.0
  98143. .TP
  98144. .B device_name
  98145. The name of the device, e.g., \fBedge_router\fP\&.
  98146. .TP
  98147. .B interface_name
  98148. The name of the interface to be attached to LAG, e.g., \fBxe\-1/0/2\fP\&.
  98149. .TP
  98150. .B parent_name
  98151. The name of the LAG interface, e.g., \fBae13\fP\&.
  98152. .UNINDENT
  98153. .sp
  98154. CLI Example:
  98155. .INDENT 7.0
  98156. .INDENT 3.5
  98157. .sp
  98158. .nf
  98159. .ft C
  98160. salt myminion netbox.make_interface_child xe\-1/0/2 ae13
  98161. .ft P
  98162. .fi
  98163. .UNINDENT
  98164. .UNINDENT
  98165. .UNINDENT
  98166. .INDENT 0.0
  98167. .TP
  98168. .B salt.modules.netbox.make_interface_lag(device_name, interface_name)
  98169. New in version 2019.2.0.
  98170. .sp
  98171. Update an interface to be a LAG.
  98172. .INDENT 7.0
  98173. .TP
  98174. .B device_name
  98175. The name of the device, e.g., \fBedge_router\fP\&.
  98176. .TP
  98177. .B interface_name
  98178. The name of the interface, e.g., \fBae13\fP\&.
  98179. .UNINDENT
  98180. .sp
  98181. CLI Example:
  98182. .INDENT 7.0
  98183. .INDENT 3.5
  98184. .sp
  98185. .nf
  98186. .ft C
  98187. salt myminion netbox.make_interface_lag edge_router ae13
  98188. .ft P
  98189. .fi
  98190. .UNINDENT
  98191. .UNINDENT
  98192. .UNINDENT
  98193. .INDENT 0.0
  98194. .TP
  98195. .B salt.modules.netbox.openconfig_interfaces(device_name=None)
  98196. New in version 2019.2.0.
  98197. .sp
  98198. Return a dictionary structured as standardised in the
  98199. \fI\%openconfig\-interfaces\fP
  98200. YANG model, containing physical and configuration data available in Netbox,
  98201. e.g., IP addresses, MTU, enabled / disabled, etc.
  98202. .INDENT 7.0
  98203. .TP
  98204. .B device_name: \fBNone\fP
  98205. The name of the device to query the interface data for. If not provided,
  98206. will use the Minion ID.
  98207. .UNINDENT
  98208. .sp
  98209. CLI Example:
  98210. .INDENT 7.0
  98211. .INDENT 3.5
  98212. .sp
  98213. .nf
  98214. .ft C
  98215. salt \(aq*\(aq netbox.openconfig_interfaces
  98216. salt \(aq*\(aq netbox.openconfig_interfaces device_name=cr1.thn.lon
  98217. .ft P
  98218. .fi
  98219. .UNINDENT
  98220. .UNINDENT
  98221. .UNINDENT
  98222. .INDENT 0.0
  98223. .TP
  98224. .B salt.modules.netbox.openconfig_lacp(device_name=None)
  98225. New in version 2019.2.0.
  98226. .sp
  98227. Return a dictionary structured as standardised in the
  98228. \fI\%openconfig\-lacp\fP
  98229. YANG model, with configuration data for Link Aggregation Control Protocol
  98230. (LACP) for aggregate interfaces.
  98231. .sp
  98232. \fBNOTE:\fP
  98233. .INDENT 7.0
  98234. .INDENT 3.5
  98235. The \fBinterval\fP and \fBlacp_mode\fP keys have the values set as \fBSLOW\fP
  98236. and \fBACTIVE\fP respectively, as this data is not currently available
  98237. in Netbox, therefore defaulting to the values defined in the standard.
  98238. See \fI\%interval\fP
  98239. and \fI\%lacp\-mode\fP
  98240. for further details.
  98241. .UNINDENT
  98242. .UNINDENT
  98243. .INDENT 7.0
  98244. .TP
  98245. .B device_name: \fBNone\fP
  98246. The name of the device to query the LACP information for. If not provided,
  98247. will use the Minion ID.
  98248. .UNINDENT
  98249. .sp
  98250. CLI Example:
  98251. .INDENT 7.0
  98252. .INDENT 3.5
  98253. .sp
  98254. .nf
  98255. .ft C
  98256. salt \(aq*\(aq netbox.openconfig_lacp
  98257. salt \(aq*\(aq netbox.openconfig_lacp device_name=cr1.thn.lon
  98258. .ft P
  98259. .fi
  98260. .UNINDENT
  98261. .UNINDENT
  98262. .UNINDENT
  98263. .INDENT 0.0
  98264. .TP
  98265. .B salt.modules.netbox.slugify(value)
  98266. \(aq
  98267. Slugify given value.
  98268. Credit to Djangoproject \fI\%https://docs.djangoproject.com/en/2.0/_modules/django/utils/text/#slugify\fP
  98269. .UNINDENT
  98270. .INDENT 0.0
  98271. .TP
  98272. .B salt.modules.netbox.update_device(name, **kwargs)
  98273. New in version 2019.2.0.
  98274. .sp
  98275. Add attributes to an existing device, identified by name.
  98276. .INDENT 7.0
  98277. .TP
  98278. .B name
  98279. The name of the device, e.g., \fBedge_router\fP
  98280. .TP
  98281. .B kwargs
  98282. Arguments to change in device, e.g., \fBserial=JN2932930\fP
  98283. .UNINDENT
  98284. .sp
  98285. CLI Example:
  98286. .INDENT 7.0
  98287. .INDENT 3.5
  98288. .sp
  98289. .nf
  98290. .ft C
  98291. salt myminion netbox.update_device edge_router serial=JN2932920
  98292. .ft P
  98293. .fi
  98294. .UNINDENT
  98295. .UNINDENT
  98296. .UNINDENT
  98297. .INDENT 0.0
  98298. .TP
  98299. .B salt.modules.netbox.update_interface(device_name, interface_name, **kwargs)
  98300. New in version 2019.2.0.
  98301. .sp
  98302. Update an existing interface with new attributes.
  98303. .INDENT 7.0
  98304. .TP
  98305. .B device_name
  98306. The name of the device, e.g., \fBedge_router\fP
  98307. .TP
  98308. .B interface_name
  98309. The name of the interface, e.g., \fBae13\fP
  98310. .TP
  98311. .B kwargs
  98312. Arguments to change in interface, e.g., \fBmac_address=50:87:69:53:32:D0\fP
  98313. .UNINDENT
  98314. .sp
  98315. CLI Example:
  98316. .INDENT 7.0
  98317. .INDENT 3.5
  98318. .sp
  98319. .nf
  98320. .ft C
  98321. salt myminion netbox.update_interface edge_router ae13 mac_address=50:87:69:53:32:D0
  98322. .ft P
  98323. .fi
  98324. .UNINDENT
  98325. .UNINDENT
  98326. .UNINDENT
  98327. .SS salt.modules.netbsdservice
  98328. .sp
  98329. The service module for NetBSD
  98330. .sp
  98331. \fBIMPORTANT:\fP
  98332. .INDENT 0.0
  98333. .INDENT 3.5
  98334. If you feel that Salt should be using this module to manage services on a
  98335. minion, and it is using a different module (or gives an error similar to
  98336. \fI\(aqservice.start\(aq is not available\fP), see here\&.
  98337. .UNINDENT
  98338. .UNINDENT
  98339. .INDENT 0.0
  98340. .TP
  98341. .B salt.modules.netbsdservice.available(name)
  98342. Returns \fBTrue\fP if the specified service is available, otherwise returns
  98343. \fBFalse\fP\&.
  98344. .sp
  98345. CLI Example:
  98346. .INDENT 7.0
  98347. .INDENT 3.5
  98348. .sp
  98349. .nf
  98350. .ft C
  98351. salt \(aq*\(aq service.available sshd
  98352. .ft P
  98353. .fi
  98354. .UNINDENT
  98355. .UNINDENT
  98356. .UNINDENT
  98357. .INDENT 0.0
  98358. .TP
  98359. .B salt.modules.netbsdservice.disable(name, **kwargs)
  98360. Disable the named service to start at boot
  98361. .sp
  98362. CLI Example:
  98363. .INDENT 7.0
  98364. .INDENT 3.5
  98365. .sp
  98366. .nf
  98367. .ft C
  98368. salt \(aq*\(aq service.disable <service name>
  98369. .ft P
  98370. .fi
  98371. .UNINDENT
  98372. .UNINDENT
  98373. .UNINDENT
  98374. .INDENT 0.0
  98375. .TP
  98376. .B salt.modules.netbsdservice.disabled(name)
  98377. Return True if the named service is enabled, false otherwise
  98378. .sp
  98379. CLI Example:
  98380. .INDENT 7.0
  98381. .INDENT 3.5
  98382. .sp
  98383. .nf
  98384. .ft C
  98385. salt \(aq*\(aq service.disabled <service name>
  98386. .ft P
  98387. .fi
  98388. .UNINDENT
  98389. .UNINDENT
  98390. .UNINDENT
  98391. .INDENT 0.0
  98392. .TP
  98393. .B salt.modules.netbsdservice.enable(name, **kwargs)
  98394. Enable the named service to start at boot
  98395. .sp
  98396. CLI Example:
  98397. .INDENT 7.0
  98398. .INDENT 3.5
  98399. .sp
  98400. .nf
  98401. .ft C
  98402. salt \(aq*\(aq service.enable <service name>
  98403. .ft P
  98404. .fi
  98405. .UNINDENT
  98406. .UNINDENT
  98407. .UNINDENT
  98408. .INDENT 0.0
  98409. .TP
  98410. .B salt.modules.netbsdservice.enabled(name, **kwargs)
  98411. Return True if the named service is enabled, false otherwise
  98412. .sp
  98413. CLI Example:
  98414. .INDENT 7.0
  98415. .INDENT 3.5
  98416. .sp
  98417. .nf
  98418. .ft C
  98419. salt \(aq*\(aq service.enabled <service name>
  98420. .ft P
  98421. .fi
  98422. .UNINDENT
  98423. .UNINDENT
  98424. .UNINDENT
  98425. .INDENT 0.0
  98426. .TP
  98427. .B salt.modules.netbsdservice.force_reload(name)
  98428. Force\-reload the named service
  98429. .sp
  98430. CLI Example:
  98431. .INDENT 7.0
  98432. .INDENT 3.5
  98433. .sp
  98434. .nf
  98435. .ft C
  98436. salt \(aq*\(aq service.force_reload <service name>
  98437. .ft P
  98438. .fi
  98439. .UNINDENT
  98440. .UNINDENT
  98441. .UNINDENT
  98442. .INDENT 0.0
  98443. .TP
  98444. .B salt.modules.netbsdservice.get_all()
  98445. Return all available boot services
  98446. .sp
  98447. CLI Example:
  98448. .INDENT 7.0
  98449. .INDENT 3.5
  98450. .sp
  98451. .nf
  98452. .ft C
  98453. salt \(aq*\(aq service.get_all
  98454. .ft P
  98455. .fi
  98456. .UNINDENT
  98457. .UNINDENT
  98458. .UNINDENT
  98459. .INDENT 0.0
  98460. .TP
  98461. .B salt.modules.netbsdservice.get_disabled()
  98462. Return a set of services that are installed but disabled
  98463. .sp
  98464. CLI Example:
  98465. .INDENT 7.0
  98466. .INDENT 3.5
  98467. .sp
  98468. .nf
  98469. .ft C
  98470. salt \(aq*\(aq service.get_disabled
  98471. .ft P
  98472. .fi
  98473. .UNINDENT
  98474. .UNINDENT
  98475. .UNINDENT
  98476. .INDENT 0.0
  98477. .TP
  98478. .B salt.modules.netbsdservice.get_enabled()
  98479. Return a list of service that are enabled on boot
  98480. .sp
  98481. CLI Example:
  98482. .INDENT 7.0
  98483. .INDENT 3.5
  98484. .sp
  98485. .nf
  98486. .ft C
  98487. salt \(aq*\(aq service.get_enabled
  98488. .ft P
  98489. .fi
  98490. .UNINDENT
  98491. .UNINDENT
  98492. .UNINDENT
  98493. .INDENT 0.0
  98494. .TP
  98495. .B salt.modules.netbsdservice.missing(name)
  98496. The inverse of service.available.
  98497. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  98498. \fBFalse\fP\&.
  98499. .sp
  98500. CLI Example:
  98501. .INDENT 7.0
  98502. .INDENT 3.5
  98503. .sp
  98504. .nf
  98505. .ft C
  98506. salt \(aq*\(aq service.missing sshd
  98507. .ft P
  98508. .fi
  98509. .UNINDENT
  98510. .UNINDENT
  98511. .UNINDENT
  98512. .INDENT 0.0
  98513. .TP
  98514. .B salt.modules.netbsdservice.reload_(name)
  98515. Reload the named service
  98516. .sp
  98517. CLI Example:
  98518. .INDENT 7.0
  98519. .INDENT 3.5
  98520. .sp
  98521. .nf
  98522. .ft C
  98523. salt \(aq*\(aq service.reload <service name>
  98524. .ft P
  98525. .fi
  98526. .UNINDENT
  98527. .UNINDENT
  98528. .UNINDENT
  98529. .INDENT 0.0
  98530. .TP
  98531. .B salt.modules.netbsdservice.restart(name)
  98532. Restart the named service
  98533. .sp
  98534. CLI Example:
  98535. .INDENT 7.0
  98536. .INDENT 3.5
  98537. .sp
  98538. .nf
  98539. .ft C
  98540. salt \(aq*\(aq service.restart <service name>
  98541. .ft P
  98542. .fi
  98543. .UNINDENT
  98544. .UNINDENT
  98545. .UNINDENT
  98546. .INDENT 0.0
  98547. .TP
  98548. .B salt.modules.netbsdservice.start(name)
  98549. Start the specified service
  98550. .sp
  98551. CLI Example:
  98552. .INDENT 7.0
  98553. .INDENT 3.5
  98554. .sp
  98555. .nf
  98556. .ft C
  98557. salt \(aq*\(aq service.start <service name>
  98558. .ft P
  98559. .fi
  98560. .UNINDENT
  98561. .UNINDENT
  98562. .UNINDENT
  98563. .INDENT 0.0
  98564. .TP
  98565. .B salt.modules.netbsdservice.status(name, sig=None)
  98566. Return the status for a service.
  98567. If the name contains globbing, a dict mapping service name to True/False
  98568. values is returned.
  98569. .sp
  98570. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  98571. .INDENT 7.0
  98572. .TP
  98573. .B Parameters
  98574. .INDENT 7.0
  98575. .IP \(bu 2
  98576. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  98577. .IP \(bu 2
  98578. \fBsig\fP (\fI\%str\fP) \-\- Signature to use to find the service via ps
  98579. .UNINDENT
  98580. .TP
  98581. .B Returns
  98582. True if running, False otherwise
  98583. dict: Maps service name to True if running, False otherwise
  98584. .TP
  98585. .B Return type
  98586. \fI\%bool\fP
  98587. .UNINDENT
  98588. .sp
  98589. CLI Example:
  98590. .INDENT 7.0
  98591. .INDENT 3.5
  98592. .sp
  98593. .nf
  98594. .ft C
  98595. salt \(aq*\(aq service.status <service name> [service signature]
  98596. .ft P
  98597. .fi
  98598. .UNINDENT
  98599. .UNINDENT
  98600. .UNINDENT
  98601. .INDENT 0.0
  98602. .TP
  98603. .B salt.modules.netbsdservice.stop(name)
  98604. Stop the specified service
  98605. .sp
  98606. CLI Example:
  98607. .INDENT 7.0
  98608. .INDENT 3.5
  98609. .sp
  98610. .nf
  98611. .ft C
  98612. salt \(aq*\(aq service.stop <service name>
  98613. .ft P
  98614. .fi
  98615. .UNINDENT
  98616. .UNINDENT
  98617. .UNINDENT
  98618. .SS salt.modules.neutron
  98619. .sp
  98620. Module for handling OpenStack Neutron calls
  98621. .INDENT 0.0
  98622. .TP
  98623. .B depends
  98624. .INDENT 7.0
  98625. .IP \(bu 2
  98626. neutronclient Python module
  98627. .UNINDENT
  98628. .TP
  98629. .B configuration
  98630. This module is not usable until the user, password, tenant, and
  98631. auth URL are specified either in a pillar or in the minion\(aqs config file.
  98632. For example:
  98633. .INDENT 7.0
  98634. .INDENT 3.5
  98635. .sp
  98636. .nf
  98637. .ft C
  98638. keystone.user: \(aqadmin\(aq
  98639. keystone.password: \(aqpassword\(aq
  98640. keystone.tenant: \(aqadmin\(aq
  98641. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  98642. keystone.region_name: \(aqRegionOne\(aq
  98643. keystone.service_type: \(aqnetwork\(aq
  98644. .ft P
  98645. .fi
  98646. .UNINDENT
  98647. .UNINDENT
  98648. .sp
  98649. If configuration for multiple OpenStack accounts is required, they can be
  98650. set up as different configuration profiles:
  98651. For example:
  98652. .INDENT 7.0
  98653. .INDENT 3.5
  98654. .sp
  98655. .nf
  98656. .ft C
  98657. openstack1:
  98658. keystone.user: \(aqadmin\(aq
  98659. keystone.password: \(aqpassword\(aq
  98660. keystone.tenant: \(aqadmin\(aq
  98661. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v2.0/\(aq
  98662. keystone.region_name: \(aqRegionOne\(aq
  98663. keystone.service_type: \(aqnetwork\(aq
  98664. openstack2:
  98665. keystone.user: \(aqadmin\(aq
  98666. keystone.password: \(aqpassword\(aq
  98667. keystone.tenant: \(aqadmin\(aq
  98668. keystone.auth_url: \(aqhttp://127.0.0.2:5000/v2.0/\(aq
  98669. keystone.region_name: \(aqRegionOne\(aq
  98670. keystone.service_type: \(aqnetwork\(aq
  98671. .ft P
  98672. .fi
  98673. .UNINDENT
  98674. .UNINDENT
  98675. .sp
  98676. With this configuration in place, any of the neutron functions
  98677. can make use of a configuration profile by declaring it explicitly.
  98678. For example:
  98679. .INDENT 7.0
  98680. .INDENT 3.5
  98681. .sp
  98682. .nf
  98683. .ft C
  98684. salt \(aq*\(aq neutron.network_list profile=openstack1
  98685. .ft P
  98686. .fi
  98687. .UNINDENT
  98688. .UNINDENT
  98689. .sp
  98690. To use keystoneauth1 instead of keystoneclient, include the \fIuse_keystoneauth\fP
  98691. option in the pillar or minion config.
  98692. .sp
  98693. \fBNOTE:\fP
  98694. .INDENT 7.0
  98695. .INDENT 3.5
  98696. this is required to use keystone v3 as for authentication.
  98697. .UNINDENT
  98698. .UNINDENT
  98699. .INDENT 7.0
  98700. .INDENT 3.5
  98701. .sp
  98702. .nf
  98703. .ft C
  98704. keystone.user: admin
  98705. keystone.password: verybadpass
  98706. keystone.tenant: admin
  98707. keystone.auth_url: \(aqhttp://127.0.0.1:5000/v3/\(aq
  98708. keystone.region_name: \(aqRegionOne\(aq
  98709. keystone.service_type: \(aqnetwork\(aq
  98710. keystone.use_keystoneauth: true
  98711. keystone.verify: \(aq/path/to/custom/certs/ca\-bundle.crt\(aq
  98712. .ft P
  98713. .fi
  98714. .UNINDENT
  98715. .UNINDENT
  98716. .sp
  98717. Note: by default the neutron module will attempt to verify its connection
  98718. utilizing the system certificates. If you need to verify against another bundle
  98719. of CA certificates or want to skip verification altogether you will need to
  98720. specify the \fIverify\fP option. You can specify True or False to verify (or not)
  98721. against system certificates, a path to a bundle or CA certs to check against, or
  98722. None to allow keystoneauth to search for the certificates on its own.(defaults to True)
  98723. .UNINDENT
  98724. .INDENT 0.0
  98725. .TP
  98726. .B salt.modules.neutron.add_gateway_router(router, ext_network, profile=None)
  98727. Adds an external network gateway to the specified router
  98728. .sp
  98729. CLI Example:
  98730. .INDENT 7.0
  98731. .INDENT 3.5
  98732. .sp
  98733. .nf
  98734. .ft C
  98735. salt \(aq*\(aq neutron.add_gateway_router router\-name ext\-network\-name
  98736. .ft P
  98737. .fi
  98738. .UNINDENT
  98739. .UNINDENT
  98740. .INDENT 7.0
  98741. .TP
  98742. .B Parameters
  98743. .INDENT 7.0
  98744. .IP \(bu 2
  98745. \fBrouter\fP \-\- ID or name of the router
  98746. .IP \(bu 2
  98747. \fBext_network\fP \-\- ID or name of the external network the gateway
  98748. .IP \(bu 2
  98749. \fBprofile\fP \-\- Profile to build on (Optional)
  98750. .UNINDENT
  98751. .TP
  98752. .B Returns
  98753. Added Gateway router information
  98754. .UNINDENT
  98755. .UNINDENT
  98756. .INDENT 0.0
  98757. .TP
  98758. .B salt.modules.neutron.add_interface_router(router, subnet, profile=None)
  98759. Adds an internal network interface to the specified router
  98760. .sp
  98761. CLI Example:
  98762. .INDENT 7.0
  98763. .INDENT 3.5
  98764. .sp
  98765. .nf
  98766. .ft C
  98767. salt \(aq*\(aq neutron.add_interface_router router\-name subnet\-name
  98768. .ft P
  98769. .fi
  98770. .UNINDENT
  98771. .UNINDENT
  98772. .INDENT 7.0
  98773. .TP
  98774. .B Parameters
  98775. .INDENT 7.0
  98776. .IP \(bu 2
  98777. \fBrouter\fP \-\- ID or name of the router
  98778. .IP \(bu 2
  98779. \fBsubnet\fP \-\- ID or name of the subnet
  98780. .IP \(bu 2
  98781. \fBprofile\fP \-\- Profile to build on (Optional)
  98782. .UNINDENT
  98783. .TP
  98784. .B Returns
  98785. Added interface information
  98786. .UNINDENT
  98787. .UNINDENT
  98788. .INDENT 0.0
  98789. .TP
  98790. .B salt.modules.neutron.create_firewall_rule(protocol, action, profile=None, **kwargs)
  98791. Creates a new firewall rule
  98792. .sp
  98793. CLI Example:
  98794. .INDENT 7.0
  98795. .INDENT 3.5
  98796. .sp
  98797. .nf
  98798. .ft C
  98799. salt \(aq*\(aq neutron.create_firewall_rule protocol action
  98800. tenant_id=TENANT_ID name=NAME description=DESCRIPTION ip_version=IP_VERSION
  98801. source_ip_address=SOURCE_IP_ADDRESS destination_ip_address=DESTINATION_IP_ADDRESS source_port=SOURCE_PORT
  98802. destination_port=DESTINATION_PORT shared=SHARED enabled=ENABLED
  98803. .ft P
  98804. .fi
  98805. .UNINDENT
  98806. .UNINDENT
  98807. .INDENT 7.0
  98808. .TP
  98809. .B Parameters
  98810. .INDENT 7.0
  98811. .IP \(bu 2
  98812. \fBprotocol\fP \-\- Protocol for the firewall rule, choose "tcp","udp","icmp" or "None".
  98813. .IP \(bu 2
  98814. \fBaction\fP \-\- Action for the firewall rule, choose "allow" or "deny".
  98815. .IP \(bu 2
  98816. \fBtenant_id\fP \-\- The owner tenant ID. (Optional)
  98817. .IP \(bu 2
  98818. \fBname\fP \-\- Name for the firewall rule. (Optional)
  98819. .IP \(bu 2
  98820. \fBdescription\fP \-\- Description for the firewall rule. (Optional)
  98821. .IP \(bu 2
  98822. \fBip_version\fP \-\- IP protocol version, default: 4. (Optional)
  98823. .IP \(bu 2
  98824. \fBsource_ip_address\fP \-\- Source IP address or subnet. (Optional)
  98825. .IP \(bu 2
  98826. \fBdestination_ip_address\fP \-\- Destination IP address or subnet. (Optional)
  98827. .IP \(bu 2
  98828. \fBsource_port\fP \-\- Source port (integer in [1, 65535] or range in a:b). (Optional)
  98829. .IP \(bu 2
  98830. \fBdestination_port\fP \-\- Destination port (integer in [1, 65535] or range in a:b). (Optional)
  98831. .IP \(bu 2
  98832. \fBshared\fP \-\- Set shared to True, default: False. (Optional)
  98833. .IP \(bu 2
  98834. \fBenabled\fP \-\- To enable this rule, default: True. (Optional)
  98835. .UNINDENT
  98836. .UNINDENT
  98837. .UNINDENT
  98838. .INDENT 0.0
  98839. .TP
  98840. .B salt.modules.neutron.create_floatingip(floating_network, port=None, profile=None)
  98841. Creates a new floatingIP
  98842. .sp
  98843. CLI Example:
  98844. .INDENT 7.0
  98845. .INDENT 3.5
  98846. .sp
  98847. .nf
  98848. .ft C
  98849. salt \(aq*\(aq neutron.create_floatingip network\-name port\-name
  98850. .ft P
  98851. .fi
  98852. .UNINDENT
  98853. .UNINDENT
  98854. .INDENT 7.0
  98855. .TP
  98856. .B Parameters
  98857. .INDENT 7.0
  98858. .IP \(bu 2
  98859. \fBfloating_network\fP \-\- Network name or ID to allocate floatingIP from
  98860. .IP \(bu 2
  98861. \fBport\fP \-\- Of the port to be associated with the floatingIP (Optional)
  98862. .IP \(bu 2
  98863. \fBprofile\fP \-\- Profile to build on (Optional)
  98864. .UNINDENT
  98865. .TP
  98866. .B Returns
  98867. Created floatingIP information
  98868. .UNINDENT
  98869. .UNINDENT
  98870. .INDENT 0.0
  98871. .TP
  98872. .B salt.modules.neutron.create_ikepolicy(name, profile=None, **kwargs)
  98873. Creates a new IKEPolicy
  98874. .sp
  98875. CLI Example:
  98876. .INDENT 7.0
  98877. .INDENT 3.5
  98878. .sp
  98879. .nf
  98880. .ft C
  98881. salt \(aq*\(aq neutron.create_ikepolicy ikepolicy\-name
  98882. phase1_negotiation_mode=main auth_algorithm=sha1
  98883. encryption_algorithm=aes\-128 pfs=group5
  98884. .ft P
  98885. .fi
  98886. .UNINDENT
  98887. .UNINDENT
  98888. .INDENT 7.0
  98889. .TP
  98890. .B Parameters
  98891. .INDENT 7.0
  98892. .IP \(bu 2
  98893. \fBname\fP \-\- Name of the IKE policy
  98894. .IP \(bu 2
  98895. \fBphase1_negotiation_mode\fP \-\- IKE Phase1 negotiation mode in lowercase,
  98896. default: main (Optional)
  98897. .IP \(bu 2
  98898. \fBauth_algorithm\fP \-\- Authentication algorithm in lowercase,
  98899. default: sha1 (Optional)
  98900. .IP \(bu 2
  98901. \fBencryption_algorithm\fP \-\- Encryption algorithm in lowercase.
  98902. default:aes\-128 (Optional)
  98903. .IP \(bu 2
  98904. \fBpfs\fP \-\- Prefect Forward Security in lowercase,
  98905. default: group5 (Optional)
  98906. .IP \(bu 2
  98907. \fBunits\fP \-\- IKE lifetime attribute. default: seconds (Optional)
  98908. .IP \(bu 2
  98909. \fBvalue\fP \-\- IKE lifetime attribute. default: 3600 (Optional)
  98910. .IP \(bu 2
  98911. \fBike_version\fP \-\- IKE version in lowercase, default: v1 (Optional)
  98912. .IP \(bu 2
  98913. \fBprofile\fP \-\- Profile to build on (Optional)
  98914. .IP \(bu 2
  98915. \fBkwargs\fP \-\-
  98916. .UNINDENT
  98917. .TP
  98918. .B Returns
  98919. Created IKE policy information
  98920. .UNINDENT
  98921. .UNINDENT
  98922. .INDENT 0.0
  98923. .TP
  98924. .B salt.modules.neutron.create_ipsec_site_connection(name, ipsecpolicy, ikepolicy, vpnservice, peer_cidrs, peer_address, peer_id, psk, admin_state_up=True, profile=None, **kwargs)
  98925. Creates a new IPsecSiteConnection
  98926. .sp
  98927. CLI Example:
  98928. .INDENT 7.0
  98929. .INDENT 3.5
  98930. .sp
  98931. .nf
  98932. .ft C
  98933. salt \(aq*\(aq neutron.show_ipsec_site_connection connection\-name
  98934. ipsec\-policy\-name ikepolicy\-name vpnservice\-name
  98935. 192.168.XXX.XXX/24 192.168.XXX.XXX 192.168.XXX.XXX secret
  98936. .ft P
  98937. .fi
  98938. .UNINDENT
  98939. .UNINDENT
  98940. .INDENT 7.0
  98941. .TP
  98942. .B Parameters
  98943. .INDENT 7.0
  98944. .IP \(bu 2
  98945. \fBname\fP \-\- Set friendly name for the connection
  98946. .IP \(bu 2
  98947. \fBipsecpolicy\fP \-\- IPSec policy ID or name associated with this connection
  98948. .IP \(bu 2
  98949. \fBikepolicy\fP \-\- IKE policy ID or name associated with this connection
  98950. .IP \(bu 2
  98951. \fBvpnservice\fP \-\- VPN service instance ID or name associated with
  98952. this connection
  98953. .IP \(bu 2
  98954. \fBpeer_cidrs\fP \-\- Remote subnet(s) in CIDR format
  98955. .IP \(bu 2
  98956. \fBpeer_address\fP \-\- Peer gateway public IPv4/IPv6 address or FQDN
  98957. .IP \(bu 2
  98958. \fBpeer_id\fP \-\- Peer router identity for authentication
  98959. Can be IPv4/IPv6 address, e\-mail address, key id, or FQDN
  98960. .IP \(bu 2
  98961. \fBpsk\fP \-\- Pre\-shared key string
  98962. .IP \(bu 2
  98963. \fBinitiator\fP \-\- Initiator state in lowercase, default:bi\-directional
  98964. .IP \(bu 2
  98965. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  98966. default: True (Optional)
  98967. .IP \(bu 2
  98968. \fBmtu\fP \-\- size for the connection, default:1500 (Optional)
  98969. .IP \(bu 2
  98970. \fBdpd_action\fP \-\- Dead Peer Detection attribute: hold/clear/disabled/
  98971. restart/restart\-by\-peer (Optional)
  98972. .IP \(bu 2
  98973. \fBdpd_interval\fP \-\- Dead Peer Detection attribute (Optional)
  98974. .IP \(bu 2
  98975. \fBdpd_timeout\fP \-\- Dead Peer Detection attribute (Optional)
  98976. .IP \(bu 2
  98977. \fBprofile\fP \-\- Profile to build on (Optional)
  98978. .UNINDENT
  98979. .TP
  98980. .B Returns
  98981. Created IPSec site connection information
  98982. .UNINDENT
  98983. .UNINDENT
  98984. .INDENT 0.0
  98985. .TP
  98986. .B salt.modules.neutron.create_ipsecpolicy(name, profile=None, **kwargs)
  98987. Creates a new IPsecPolicy
  98988. .sp
  98989. CLI Example:
  98990. .INDENT 7.0
  98991. .INDENT 3.5
  98992. .sp
  98993. .nf
  98994. .ft C
  98995. salt \(aq*\(aq neutron.create_ipsecpolicy ipsecpolicy\-name
  98996. transform_protocol=esp auth_algorithm=sha1
  98997. encapsulation_mode=tunnel encryption_algorithm=aes\-128
  98998. .ft P
  98999. .fi
  99000. .UNINDENT
  99001. .UNINDENT
  99002. .INDENT 7.0
  99003. .TP
  99004. .B Parameters
  99005. .INDENT 7.0
  99006. .IP \(bu 2
  99007. \fBname\fP \-\- Name of the IPSec policy
  99008. .IP \(bu 2
  99009. \fBtransform_protocol\fP \-\- Transform protocol in lowercase,
  99010. default: esp (Optional)
  99011. .IP \(bu 2
  99012. \fBauth_algorithm\fP \-\- Authentication algorithm in lowercase,
  99013. default: sha1 (Optional)
  99014. .IP \(bu 2
  99015. \fBencapsulation_mode\fP \-\- Encapsulation mode in lowercase,
  99016. default: tunnel (Optional)
  99017. .IP \(bu 2
  99018. \fBencryption_algorithm\fP \-\- Encryption algorithm in lowercase,
  99019. default:aes\-128 (Optional)
  99020. .IP \(bu 2
  99021. \fBpfs\fP \-\- Prefect Forward Security in lowercase,
  99022. default: group5 (Optional)
  99023. .IP \(bu 2
  99024. \fBunits\fP \-\- IPSec lifetime attribute. default: seconds (Optional)
  99025. .IP \(bu 2
  99026. \fBvalue\fP \-\- IPSec lifetime attribute. default: 3600 (Optional)
  99027. .IP \(bu 2
  99028. \fBprofile\fP \-\- Profile to build on (Optional)
  99029. .UNINDENT
  99030. .TP
  99031. .B Returns
  99032. Created IPSec policy information
  99033. .UNINDENT
  99034. .UNINDENT
  99035. .INDENT 0.0
  99036. .TP
  99037. .B salt.modules.neutron.create_network(name, router_ext=None, admin_state_up=True, network_type=None, physical_network=None, segmentation_id=None, shared=None, profile=None)
  99038. Creates a new network
  99039. .sp
  99040. CLI Example:
  99041. .INDENT 7.0
  99042. .INDENT 3.5
  99043. .sp
  99044. .nf
  99045. .ft C
  99046. salt \(aq*\(aq neutron.create_network network\-name
  99047. salt \(aq*\(aq neutron.create_network network\-name profile=openstack1
  99048. .ft P
  99049. .fi
  99050. .UNINDENT
  99051. .UNINDENT
  99052. .INDENT 7.0
  99053. .TP
  99054. .B Parameters
  99055. .INDENT 7.0
  99056. .IP \(bu 2
  99057. \fBname\fP \-\- Name of network to create
  99058. .IP \(bu 2
  99059. \fBadmin_state_up\fP \-\- should the state of the network be up?
  99060. default: True (Optional)
  99061. .IP \(bu 2
  99062. \fBrouter_ext\fP \-\- True then if create the external network (Optional)
  99063. .IP \(bu 2
  99064. \fBnetwork_type\fP \-\- the Type of network that the provider is such as GRE, VXLAN, VLAN, FLAT, or LOCAL (Optional)
  99065. .IP \(bu 2
  99066. \fBphysical_network\fP \-\- the name of the physical network as neutron knows it (Optional)
  99067. .IP \(bu 2
  99068. \fBsegmentation_id\fP \-\- the vlan id or GRE id (Optional)
  99069. .IP \(bu 2
  99070. \fBshared\fP \-\- is the network shared or not (Optional)
  99071. .IP \(bu 2
  99072. \fBprofile\fP \-\- Profile to build on (Optional)
  99073. .UNINDENT
  99074. .TP
  99075. .B Returns
  99076. Created network information
  99077. .UNINDENT
  99078. .UNINDENT
  99079. .INDENT 0.0
  99080. .TP
  99081. .B salt.modules.neutron.create_port(name, network, device_id=None, admin_state_up=True, profile=None)
  99082. Creates a new port
  99083. .sp
  99084. CLI Example:
  99085. .INDENT 7.0
  99086. .INDENT 3.5
  99087. .sp
  99088. .nf
  99089. .ft C
  99090. salt \(aq*\(aq neutron.create_port network\-name port\-name
  99091. .ft P
  99092. .fi
  99093. .UNINDENT
  99094. .UNINDENT
  99095. .INDENT 7.0
  99096. .TP
  99097. .B Parameters
  99098. .INDENT 7.0
  99099. .IP \(bu 2
  99100. \fBname\fP \-\- Name of port to create
  99101. .IP \(bu 2
  99102. \fBnetwork\fP \-\- Network name or ID
  99103. .IP \(bu 2
  99104. \fBdevice_id\fP \-\- ID of device (Optional)
  99105. .IP \(bu 2
  99106. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99107. default: true (Optional)
  99108. .IP \(bu 2
  99109. \fBprofile\fP \-\- Profile to build on (Optional)
  99110. .UNINDENT
  99111. .TP
  99112. .B Returns
  99113. Created port information
  99114. .UNINDENT
  99115. .UNINDENT
  99116. .INDENT 0.0
  99117. .TP
  99118. .B salt.modules.neutron.create_router(name, ext_network=None, admin_state_up=True, profile=None)
  99119. Creates a new router
  99120. .sp
  99121. CLI Example:
  99122. .INDENT 7.0
  99123. .INDENT 3.5
  99124. .sp
  99125. .nf
  99126. .ft C
  99127. salt \(aq*\(aq neutron.create_router new\-router\-name
  99128. .ft P
  99129. .fi
  99130. .UNINDENT
  99131. .UNINDENT
  99132. .INDENT 7.0
  99133. .TP
  99134. .B Parameters
  99135. .INDENT 7.0
  99136. .IP \(bu 2
  99137. \fBname\fP \-\- Name of router to create (must be first)
  99138. .IP \(bu 2
  99139. \fBext_network\fP \-\- ID or name of the external for the gateway (Optional)
  99140. .IP \(bu 2
  99141. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99142. default:true (Optional)
  99143. .IP \(bu 2
  99144. \fBprofile\fP \-\- Profile to build on (Optional)
  99145. .UNINDENT
  99146. .TP
  99147. .B Returns
  99148. Created router information
  99149. .UNINDENT
  99150. .UNINDENT
  99151. .INDENT 0.0
  99152. .TP
  99153. .B salt.modules.neutron.create_security_group(name=None, description=None, profile=None)
  99154. Creates a new security group
  99155. .sp
  99156. CLI Example:
  99157. .INDENT 7.0
  99158. .INDENT 3.5
  99159. .sp
  99160. .nf
  99161. .ft C
  99162. salt \(aq*\(aq neutron.create_security_group security\-group\-name description=\(aqSecurity group for servers\(aq
  99163. .ft P
  99164. .fi
  99165. .UNINDENT
  99166. .UNINDENT
  99167. .INDENT 7.0
  99168. .TP
  99169. .B Parameters
  99170. .INDENT 7.0
  99171. .IP \(bu 2
  99172. \fBname\fP \-\- Name of security group (Optional)
  99173. .IP \(bu 2
  99174. \fBdescription\fP \-\- Description of security group (Optional)
  99175. .IP \(bu 2
  99176. \fBprofile\fP \-\- Profile to build on (Optional)
  99177. .UNINDENT
  99178. .TP
  99179. .B Returns
  99180. Created security group information
  99181. .UNINDENT
  99182. .UNINDENT
  99183. .INDENT 0.0
  99184. .TP
  99185. .B salt.modules.neutron.create_security_group_rule(security_group, remote_group_id=None, direction=u\(aqingress\(aq, protocol=None, port_range_min=None, port_range_max=None, ethertype=u\(aqIPv4\(aq, profile=None)
  99186. Creates a new security group rule
  99187. .sp
  99188. CLI Example:
  99189. .INDENT 7.0
  99190. .INDENT 3.5
  99191. .sp
  99192. .nf
  99193. .ft C
  99194. salt \(aq*\(aq neutron.show_security_group_rule security\-group\-rule\-id
  99195. .ft P
  99196. .fi
  99197. .UNINDENT
  99198. .UNINDENT
  99199. .INDENT 7.0
  99200. .TP
  99201. .B Parameters
  99202. .INDENT 7.0
  99203. .IP \(bu 2
  99204. \fBsecurity_group\fP \-\- Security group name or ID to add rule
  99205. .IP \(bu 2
  99206. \fBremote_group_id\fP \-\- Remote security group name or ID to
  99207. apply rule (Optional)
  99208. .IP \(bu 2
  99209. \fBdirection\fP \-\- Direction of traffic: ingress/egress,
  99210. default: ingress (Optional)
  99211. .IP \(bu 2
  99212. \fBprotocol\fP \-\- Protocol of packet: null/icmp/tcp/udp,
  99213. default: null (Optional)
  99214. .IP \(bu 2
  99215. \fBport_range_min\fP \-\- Starting port range (Optional)
  99216. .IP \(bu 2
  99217. \fBport_range_max\fP \-\- Ending port range (Optional)
  99218. .IP \(bu 2
  99219. \fBethertype\fP \-\- IPv4/IPv6, default: IPv4 (Optional)
  99220. .IP \(bu 2
  99221. \fBprofile\fP \-\- Profile to build on (Optional)
  99222. .UNINDENT
  99223. .TP
  99224. .B Returns
  99225. Created security group rule information
  99226. .UNINDENT
  99227. .UNINDENT
  99228. .INDENT 0.0
  99229. .TP
  99230. .B salt.modules.neutron.create_subnet(network, cidr, name=None, ip_version=4, profile=None)
  99231. Creates a new subnet
  99232. .sp
  99233. CLI Example:
  99234. .INDENT 7.0
  99235. .INDENT 3.5
  99236. .sp
  99237. .nf
  99238. .ft C
  99239. salt \(aq*\(aq neutron.create_subnet network\-name 192.168.1.0/24
  99240. .ft P
  99241. .fi
  99242. .UNINDENT
  99243. .UNINDENT
  99244. .INDENT 7.0
  99245. .TP
  99246. .B Parameters
  99247. .INDENT 7.0
  99248. .IP \(bu 2
  99249. \fBnetwork\fP \-\- Network ID or name this subnet belongs to
  99250. .IP \(bu 2
  99251. \fBcidr\fP \-\- CIDR of subnet to create (Ex. \(aq192.168.1.0/24\(aq)
  99252. .IP \(bu 2
  99253. \fBname\fP \-\- Name of the subnet to create (Optional)
  99254. .IP \(bu 2
  99255. \fBip_version\fP \-\- Version to use, default is 4(IPv4) (Optional)
  99256. .IP \(bu 2
  99257. \fBprofile\fP \-\- Profile to build on (Optional)
  99258. .UNINDENT
  99259. .TP
  99260. .B Returns
  99261. Created subnet information
  99262. .UNINDENT
  99263. .UNINDENT
  99264. .INDENT 0.0
  99265. .TP
  99266. .B salt.modules.neutron.create_vpnservice(subnet, router, name, admin_state_up=True, profile=None)
  99267. Creates a new VPN service
  99268. .sp
  99269. CLI Example:
  99270. .INDENT 7.0
  99271. .INDENT 3.5
  99272. .sp
  99273. .nf
  99274. .ft C
  99275. salt \(aq*\(aq neutron.create_vpnservice router\-name name
  99276. .ft P
  99277. .fi
  99278. .UNINDENT
  99279. .UNINDENT
  99280. .INDENT 7.0
  99281. .TP
  99282. .B Parameters
  99283. .INDENT 7.0
  99284. .IP \(bu 2
  99285. \fBsubnet\fP \-\- Subnet unique identifier for the VPN service deployment
  99286. .IP \(bu 2
  99287. \fBrouter\fP \-\- Router unique identifier for the VPN service
  99288. .IP \(bu 2
  99289. \fBname\fP \-\- Set a name for the VPN service
  99290. .IP \(bu 2
  99291. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  99292. default:True (Optional)
  99293. .IP \(bu 2
  99294. \fBprofile\fP \-\- Profile to build on (Optional)
  99295. .UNINDENT
  99296. .TP
  99297. .B Returns
  99298. Created VPN service information
  99299. .UNINDENT
  99300. .UNINDENT
  99301. .INDENT 0.0
  99302. .TP
  99303. .B salt.modules.neutron.delete_firewall_rule(firewall_rule, profile=None)
  99304. Deletes the specified firewall_rule
  99305. .sp
  99306. CLI Example:
  99307. .INDENT 7.0
  99308. .INDENT 3.5
  99309. .sp
  99310. .nf
  99311. .ft C
  99312. salt \(aq*\(aq neutron.delete_firewall_rule firewall\-rule
  99313. .ft P
  99314. .fi
  99315. .UNINDENT
  99316. .UNINDENT
  99317. .INDENT 7.0
  99318. .TP
  99319. .B Parameters
  99320. .INDENT 7.0
  99321. .IP \(bu 2
  99322. \fBfirewall_rule\fP \-\- ID or name of firewall rule to delete
  99323. .IP \(bu 2
  99324. \fBprofile\fP \-\- Profile to build on (Optional)
  99325. .UNINDENT
  99326. .TP
  99327. .B Returns
  99328. True(Succeed) or False
  99329. .UNINDENT
  99330. .UNINDENT
  99331. .INDENT 0.0
  99332. .TP
  99333. .B salt.modules.neutron.delete_floatingip(floatingip_id, profile=None)
  99334. Deletes the specified floating IP
  99335. .sp
  99336. CLI Example:
  99337. .INDENT 7.0
  99338. .INDENT 3.5
  99339. .sp
  99340. .nf
  99341. .ft C
  99342. salt \(aq*\(aq neutron.delete_floatingip floatingip\-id
  99343. .ft P
  99344. .fi
  99345. .UNINDENT
  99346. .UNINDENT
  99347. .INDENT 7.0
  99348. .TP
  99349. .B Parameters
  99350. .INDENT 7.0
  99351. .IP \(bu 2
  99352. \fBfloatingip_id\fP \-\- ID of floatingIP to delete
  99353. .IP \(bu 2
  99354. \fBprofile\fP \-\- Profile to build on (Optional)
  99355. .UNINDENT
  99356. .TP
  99357. .B Returns
  99358. True(Succeed) or False
  99359. .UNINDENT
  99360. .UNINDENT
  99361. .INDENT 0.0
  99362. .TP
  99363. .B salt.modules.neutron.delete_ikepolicy(ikepolicy, profile=None)
  99364. Deletes the specified IKEPolicy
  99365. .sp
  99366. CLI Example:
  99367. .INDENT 7.0
  99368. .INDENT 3.5
  99369. .sp
  99370. .nf
  99371. .ft C
  99372. salt \(aq*\(aq neutron.delete_ikepolicy ikepolicy\-name
  99373. .ft P
  99374. .fi
  99375. .UNINDENT
  99376. .UNINDENT
  99377. .INDENT 7.0
  99378. .TP
  99379. .B Parameters
  99380. .INDENT 7.0
  99381. .IP \(bu 2
  99382. \fBikepolicy\fP \-\- ID or name of IKE policy to delete
  99383. .IP \(bu 2
  99384. \fBprofile\fP \-\- Profile to build on (Optional)
  99385. .UNINDENT
  99386. .TP
  99387. .B Returns
  99388. True(Succeed) or False
  99389. .UNINDENT
  99390. .UNINDENT
  99391. .INDENT 0.0
  99392. .TP
  99393. .B salt.modules.neutron.delete_ipsec_site_connection(ipsec_site_connection, profile=None)
  99394. Deletes the specified IPsecSiteConnection
  99395. .sp
  99396. CLI Example:
  99397. .INDENT 7.0
  99398. .INDENT 3.5
  99399. .sp
  99400. .nf
  99401. .ft C
  99402. salt \(aq*\(aq neutron.delete_ipsec_site_connection connection\-name
  99403. .ft P
  99404. .fi
  99405. .UNINDENT
  99406. .UNINDENT
  99407. .INDENT 7.0
  99408. .TP
  99409. .B Parameters
  99410. .INDENT 7.0
  99411. .IP \(bu 2
  99412. \fBipsec_site_connection\fP \-\- ID or name of ipsec site connection to delete
  99413. .IP \(bu 2
  99414. \fBprofile\fP \-\- Profile to build on (Optional)
  99415. .UNINDENT
  99416. .TP
  99417. .B Returns
  99418. True(Succeed) or False
  99419. .UNINDENT
  99420. .UNINDENT
  99421. .INDENT 0.0
  99422. .TP
  99423. .B salt.modules.neutron.delete_ipsecpolicy(ipsecpolicy, profile=None)
  99424. Deletes the specified IPsecPolicy
  99425. .sp
  99426. CLI Example:
  99427. .INDENT 7.0
  99428. .INDENT 3.5
  99429. .sp
  99430. .nf
  99431. .ft C
  99432. salt \(aq*\(aq neutron.delete_ipsecpolicy ipsecpolicy\-name
  99433. .ft P
  99434. .fi
  99435. .UNINDENT
  99436. .UNINDENT
  99437. .INDENT 7.0
  99438. .TP
  99439. .B Parameters
  99440. .INDENT 7.0
  99441. .IP \(bu 2
  99442. \fBipsecpolicy\fP \-\- ID or name of IPSec policy to delete
  99443. .IP \(bu 2
  99444. \fBprofile\fP \-\- Profile to build on (Optional)
  99445. .UNINDENT
  99446. .TP
  99447. .B Returns
  99448. True(Succeed) or False
  99449. .UNINDENT
  99450. .UNINDENT
  99451. .INDENT 0.0
  99452. .TP
  99453. .B salt.modules.neutron.delete_network(network, profile=None)
  99454. Deletes the specified network
  99455. .sp
  99456. CLI Example:
  99457. .INDENT 7.0
  99458. .INDENT 3.5
  99459. .sp
  99460. .nf
  99461. .ft C
  99462. salt \(aq*\(aq neutron.delete_network network\-name
  99463. salt \(aq*\(aq neutron.delete_network network\-name profile=openstack1
  99464. .ft P
  99465. .fi
  99466. .UNINDENT
  99467. .UNINDENT
  99468. .INDENT 7.0
  99469. .TP
  99470. .B Parameters
  99471. .INDENT 7.0
  99472. .IP \(bu 2
  99473. \fBnetwork\fP \-\- ID or name of network to delete
  99474. .IP \(bu 2
  99475. \fBprofile\fP \-\- Profile to build on (Optional)
  99476. .UNINDENT
  99477. .TP
  99478. .B Returns
  99479. True(Succeed) or False
  99480. .UNINDENT
  99481. .UNINDENT
  99482. .INDENT 0.0
  99483. .TP
  99484. .B salt.modules.neutron.delete_port(port, profile=None)
  99485. Deletes the specified port
  99486. .sp
  99487. CLI Example:
  99488. .INDENT 7.0
  99489. .INDENT 3.5
  99490. .sp
  99491. .nf
  99492. .ft C
  99493. salt \(aq*\(aq neutron.delete_network port\-name
  99494. salt \(aq*\(aq neutron.delete_network port\-name profile=openstack1
  99495. .ft P
  99496. .fi
  99497. .UNINDENT
  99498. .UNINDENT
  99499. .INDENT 7.0
  99500. .TP
  99501. .B Parameters
  99502. .INDENT 7.0
  99503. .IP \(bu 2
  99504. \fBport\fP \-\- port name or ID
  99505. .IP \(bu 2
  99506. \fBprofile\fP \-\- Profile to build on (Optional)
  99507. .UNINDENT
  99508. .TP
  99509. .B Returns
  99510. True(Succeed) or False
  99511. .UNINDENT
  99512. .UNINDENT
  99513. .INDENT 0.0
  99514. .TP
  99515. .B salt.modules.neutron.delete_quota(tenant_id, profile=None)
  99516. Delete the specified tenant\(aqs quota value
  99517. .sp
  99518. CLI Example:
  99519. .INDENT 7.0
  99520. .INDENT 3.5
  99521. .sp
  99522. .nf
  99523. .ft C
  99524. salt \(aq*\(aq neutron.update_quota tenant\-id
  99525. salt \(aq*\(aq neutron.update_quota tenant\-id profile=openstack1
  99526. .ft P
  99527. .fi
  99528. .UNINDENT
  99529. .UNINDENT
  99530. .INDENT 7.0
  99531. .TP
  99532. .B Parameters
  99533. .INDENT 7.0
  99534. .IP \(bu 2
  99535. \fBtenant_id\fP \-\- ID of tenant to quota delete
  99536. .IP \(bu 2
  99537. \fBprofile\fP \-\- Profile to build on (Optional)
  99538. .UNINDENT
  99539. .TP
  99540. .B Returns
  99541. True(Delete succeed) or False(Delete failed)
  99542. .UNINDENT
  99543. .UNINDENT
  99544. .INDENT 0.0
  99545. .TP
  99546. .B salt.modules.neutron.delete_router(router, profile=None)
  99547. Delete the specified router
  99548. .sp
  99549. CLI Example:
  99550. .INDENT 7.0
  99551. .INDENT 3.5
  99552. .sp
  99553. .nf
  99554. .ft C
  99555. salt \(aq*\(aq neutron.delete_router router\-name
  99556. .ft P
  99557. .fi
  99558. .UNINDENT
  99559. .UNINDENT
  99560. .INDENT 7.0
  99561. .TP
  99562. .B Parameters
  99563. .INDENT 7.0
  99564. .IP \(bu 2
  99565. \fBrouter\fP \-\- ID or name of router to delete
  99566. .IP \(bu 2
  99567. \fBprofile\fP \-\- Profile to build on (Optional)
  99568. .UNINDENT
  99569. .TP
  99570. .B Returns
  99571. True(Succeed) or False
  99572. .UNINDENT
  99573. .UNINDENT
  99574. .INDENT 0.0
  99575. .TP
  99576. .B salt.modules.neutron.delete_security_group(security_group, profile=None)
  99577. Deletes the specified security group
  99578. .sp
  99579. CLI Example:
  99580. .INDENT 7.0
  99581. .INDENT 3.5
  99582. .sp
  99583. .nf
  99584. .ft C
  99585. salt \(aq*\(aq neutron.delete_security_group security\-group\-name
  99586. .ft P
  99587. .fi
  99588. .UNINDENT
  99589. .UNINDENT
  99590. .INDENT 7.0
  99591. .TP
  99592. .B Parameters
  99593. .INDENT 7.0
  99594. .IP \(bu 2
  99595. \fBsecurity_group\fP \-\- ID or name of security group to delete
  99596. .IP \(bu 2
  99597. \fBprofile\fP \-\- Profile to build on (Optional)
  99598. .UNINDENT
  99599. .TP
  99600. .B Returns
  99601. True(Succeed) or False
  99602. .UNINDENT
  99603. .UNINDENT
  99604. .INDENT 0.0
  99605. .TP
  99606. .B salt.modules.neutron.delete_security_group_rule(security_group_rule_id, profile=None)
  99607. Deletes the specified security group rule
  99608. .sp
  99609. CLI Example:
  99610. .INDENT 7.0
  99611. .INDENT 3.5
  99612. .sp
  99613. .nf
  99614. .ft C
  99615. salt \(aq*\(aq neutron.delete_security_group_rule security\-group\-rule\-id
  99616. .ft P
  99617. .fi
  99618. .UNINDENT
  99619. .UNINDENT
  99620. .INDENT 7.0
  99621. .TP
  99622. .B Parameters
  99623. .INDENT 7.0
  99624. .IP \(bu 2
  99625. \fBsecurity_group_rule_id\fP \-\- ID of security group rule to delete
  99626. .IP \(bu 2
  99627. \fBprofile\fP \-\- Profile to build on (Optional)
  99628. .UNINDENT
  99629. .TP
  99630. .B Returns
  99631. True(Succeed) or False
  99632. .UNINDENT
  99633. .UNINDENT
  99634. .INDENT 0.0
  99635. .TP
  99636. .B salt.modules.neutron.delete_subnet(subnet, profile=None)
  99637. Deletes the specified subnet
  99638. .sp
  99639. CLI Example:
  99640. .INDENT 7.0
  99641. .INDENT 3.5
  99642. .sp
  99643. .nf
  99644. .ft C
  99645. salt \(aq*\(aq neutron.delete_subnet subnet\-name
  99646. salt \(aq*\(aq neutron.delete_subnet subnet\-name profile=openstack1
  99647. .ft P
  99648. .fi
  99649. .UNINDENT
  99650. .UNINDENT
  99651. .INDENT 7.0
  99652. .TP
  99653. .B Parameters
  99654. .INDENT 7.0
  99655. .IP \(bu 2
  99656. \fBsubnet\fP \-\- ID or name of subnet to delete
  99657. .IP \(bu 2
  99658. \fBprofile\fP \-\- Profile to build on (Optional)
  99659. .UNINDENT
  99660. .TP
  99661. .B Returns
  99662. True(Succeed) or False
  99663. .UNINDENT
  99664. .UNINDENT
  99665. .INDENT 0.0
  99666. .TP
  99667. .B salt.modules.neutron.delete_vpnservice(vpnservice, profile=None)
  99668. Deletes the specified VPN service
  99669. .sp
  99670. CLI Example:
  99671. .INDENT 7.0
  99672. .INDENT 3.5
  99673. .sp
  99674. .nf
  99675. .ft C
  99676. salt \(aq*\(aq neutron.delete_vpnservice vpnservice\-name
  99677. .ft P
  99678. .fi
  99679. .UNINDENT
  99680. .UNINDENT
  99681. .INDENT 7.0
  99682. .TP
  99683. .B Parameters
  99684. .INDENT 7.0
  99685. .IP \(bu 2
  99686. \fBvpnservice\fP \-\- ID or name of vpn service to delete
  99687. .IP \(bu 2
  99688. \fBprofile\fP \-\- Profile to build on (Optional)
  99689. .UNINDENT
  99690. .TP
  99691. .B Returns
  99692. True(Succeed) or False
  99693. .UNINDENT
  99694. .UNINDENT
  99695. .INDENT 0.0
  99696. .TP
  99697. .B salt.modules.neutron.get_quotas_tenant(profile=None)
  99698. Fetches tenant info in server\(aqs context for following quota operation
  99699. .sp
  99700. CLI Example:
  99701. .INDENT 7.0
  99702. .INDENT 3.5
  99703. .sp
  99704. .nf
  99705. .ft C
  99706. salt \(aq*\(aq neutron.get_quotas_tenant
  99707. salt \(aq*\(aq neutron.get_quotas_tenant profile=openstack1
  99708. .ft P
  99709. .fi
  99710. .UNINDENT
  99711. .UNINDENT
  99712. .INDENT 7.0
  99713. .TP
  99714. .B Parameters
  99715. \fBprofile\fP \-\- Profile to build on (Optional)
  99716. .TP
  99717. .B Returns
  99718. Quotas information
  99719. .UNINDENT
  99720. .UNINDENT
  99721. .INDENT 0.0
  99722. .TP
  99723. .B salt.modules.neutron.list_agents(profile=None)
  99724. List agents.
  99725. .sp
  99726. CLI Example:
  99727. .INDENT 7.0
  99728. .INDENT 3.5
  99729. .sp
  99730. .nf
  99731. .ft C
  99732. salt \(aq*\(aq neutron.list_agents
  99733. .ft P
  99734. .fi
  99735. .UNINDENT
  99736. .UNINDENT
  99737. .INDENT 7.0
  99738. .TP
  99739. .B Parameters
  99740. \fBprofile\fP \-\- Profile to build on (Optional)
  99741. .TP
  99742. .B Returns
  99743. agents message.
  99744. .UNINDENT
  99745. .UNINDENT
  99746. .INDENT 0.0
  99747. .TP
  99748. .B salt.modules.neutron.list_extensions(profile=None)
  99749. Fetches a list of all extensions on server side
  99750. .sp
  99751. CLI Example:
  99752. .INDENT 7.0
  99753. .INDENT 3.5
  99754. .sp
  99755. .nf
  99756. .ft C
  99757. salt \(aq*\(aq neutron.list_extensions
  99758. salt \(aq*\(aq neutron.list_extensions profile=openstack1
  99759. .ft P
  99760. .fi
  99761. .UNINDENT
  99762. .UNINDENT
  99763. .INDENT 7.0
  99764. .TP
  99765. .B Parameters
  99766. \fBprofile\fP \-\- Profile to build on (Optional)
  99767. .TP
  99768. .B Returns
  99769. List of extensions
  99770. .UNINDENT
  99771. .UNINDENT
  99772. .INDENT 0.0
  99773. .TP
  99774. .B salt.modules.neutron.list_firewall_rules(profile=None)
  99775. Fetches a list of all firewall rules for a tenant
  99776. CLI Example:
  99777. .INDENT 7.0
  99778. .INDENT 3.5
  99779. .sp
  99780. .nf
  99781. .ft C
  99782. salt \(aq*\(aq neutron.list_firewall_rules
  99783. .ft P
  99784. .fi
  99785. .UNINDENT
  99786. .UNINDENT
  99787. .INDENT 7.0
  99788. .TP
  99789. .B Parameters
  99790. \fBprofile\fP \-\- Profile to build on (Optional)
  99791. .TP
  99792. .B Returns
  99793. List of firewall rules
  99794. .UNINDENT
  99795. .UNINDENT
  99796. .INDENT 0.0
  99797. .TP
  99798. .B salt.modules.neutron.list_firewalls(profile=None)
  99799. Fetches a list of all firewalls for a tenant
  99800. CLI Example:
  99801. .INDENT 7.0
  99802. .INDENT 3.5
  99803. .sp
  99804. .nf
  99805. .ft C
  99806. salt \(aq*\(aq neutron.list_firewalls
  99807. .ft P
  99808. .fi
  99809. .UNINDENT
  99810. .UNINDENT
  99811. .INDENT 7.0
  99812. .TP
  99813. .B Parameters
  99814. \fBprofile\fP \-\- Profile to build on (Optional)
  99815. .TP
  99816. .B Returns
  99817. List of firewalls
  99818. .UNINDENT
  99819. .UNINDENT
  99820. .INDENT 0.0
  99821. .TP
  99822. .B salt.modules.neutron.list_floatingips(profile=None)
  99823. Fetch a list of all floatingIPs for a tenant
  99824. .sp
  99825. CLI Example:
  99826. .INDENT 7.0
  99827. .INDENT 3.5
  99828. .sp
  99829. .nf
  99830. .ft C
  99831. salt \(aq*\(aq neutron.list_floatingips
  99832. salt \(aq*\(aq neutron.list_floatingips profile=openstack1
  99833. .ft P
  99834. .fi
  99835. .UNINDENT
  99836. .UNINDENT
  99837. .INDENT 7.0
  99838. .TP
  99839. .B Parameters
  99840. \fBprofile\fP \-\- Profile to build on (Optional)
  99841. .TP
  99842. .B Returns
  99843. List of floatingIP
  99844. .UNINDENT
  99845. .UNINDENT
  99846. .INDENT 0.0
  99847. .TP
  99848. .B salt.modules.neutron.list_ikepolicies(profile=None)
  99849. Fetches a list of all configured IKEPolicies for a tenant
  99850. .sp
  99851. CLI Example:
  99852. .INDENT 7.0
  99853. .INDENT 3.5
  99854. .sp
  99855. .nf
  99856. .ft C
  99857. salt \(aq*\(aq neutron.list_ikepolicies
  99858. salt \(aq*\(aq neutron.list_ikepolicies profile=openstack1
  99859. .ft P
  99860. .fi
  99861. .UNINDENT
  99862. .UNINDENT
  99863. .INDENT 7.0
  99864. .TP
  99865. .B Parameters
  99866. \fBprofile\fP \-\- Profile to build on (Optional)
  99867. .TP
  99868. .B Returns
  99869. List of IKE policy
  99870. .UNINDENT
  99871. .UNINDENT
  99872. .INDENT 0.0
  99873. .TP
  99874. .B salt.modules.neutron.list_ipsec_site_connections(profile=None)
  99875. Fetches all configured IPsec Site Connections for a tenant
  99876. .sp
  99877. CLI Example:
  99878. .INDENT 7.0
  99879. .INDENT 3.5
  99880. .sp
  99881. .nf
  99882. .ft C
  99883. salt \(aq*\(aq neutron.list_ipsec_site_connections
  99884. salt \(aq*\(aq neutron.list_ipsec_site_connections profile=openstack1
  99885. .ft P
  99886. .fi
  99887. .UNINDENT
  99888. .UNINDENT
  99889. .INDENT 7.0
  99890. .TP
  99891. .B Parameters
  99892. \fBprofile\fP \-\- Profile to build on (Optional)
  99893. .TP
  99894. .B Returns
  99895. List of IPSec site connection
  99896. .UNINDENT
  99897. .UNINDENT
  99898. .INDENT 0.0
  99899. .TP
  99900. .B salt.modules.neutron.list_ipsecpolicies(profile=None)
  99901. Fetches a list of all configured IPsecPolicies for a tenant
  99902. .sp
  99903. CLI Example:
  99904. .INDENT 7.0
  99905. .INDENT 3.5
  99906. .sp
  99907. .nf
  99908. .ft C
  99909. salt \(aq*\(aq neutron.list_ipsecpolicies ipsecpolicy\-name
  99910. salt \(aq*\(aq neutron.list_ipsecpolicies ipsecpolicy\-name profile=openstack1
  99911. .ft P
  99912. .fi
  99913. .UNINDENT
  99914. .UNINDENT
  99915. .INDENT 7.0
  99916. .TP
  99917. .B Parameters
  99918. \fBprofile\fP \-\- Profile to build on (Optional)
  99919. .TP
  99920. .B Returns
  99921. List of IPSec policy
  99922. .UNINDENT
  99923. .UNINDENT
  99924. .INDENT 0.0
  99925. .TP
  99926. .B salt.modules.neutron.list_l3_agent_hosting_routers(router, profile=None)
  99927. List L3 agents hosting a router.
  99928. .sp
  99929. CLI Example:
  99930. .INDENT 7.0
  99931. .INDENT 3.5
  99932. .sp
  99933. .nf
  99934. .ft C
  99935. salt \(aq*\(aq neutron.list_l3_agent_hosting_routers router
  99936. .ft P
  99937. .fi
  99938. .UNINDENT
  99939. .UNINDENT
  99940. .sp
  99941. :param router:router name or ID to query.
  99942. :param profile: Profile to build on (Optional)
  99943. :return: L3 agents message.
  99944. .UNINDENT
  99945. .INDENT 0.0
  99946. .TP
  99947. .B salt.modules.neutron.list_networks(profile=None)
  99948. Fetches a list of all networks for a tenant
  99949. .sp
  99950. CLI Example:
  99951. .INDENT 7.0
  99952. .INDENT 3.5
  99953. .sp
  99954. .nf
  99955. .ft C
  99956. salt \(aq*\(aq neutron.list_networks
  99957. salt \(aq*\(aq neutron.list_networks profile=openstack1
  99958. .ft P
  99959. .fi
  99960. .UNINDENT
  99961. .UNINDENT
  99962. .INDENT 7.0
  99963. .TP
  99964. .B Parameters
  99965. \fBprofile\fP \-\- Profile to build on (Optional)
  99966. .TP
  99967. .B Returns
  99968. List of network
  99969. .UNINDENT
  99970. .UNINDENT
  99971. .INDENT 0.0
  99972. .TP
  99973. .B salt.modules.neutron.list_ports(profile=None)
  99974. Fetches a list of all networks for a tenant
  99975. .sp
  99976. CLI Example:
  99977. .INDENT 7.0
  99978. .INDENT 3.5
  99979. .sp
  99980. .nf
  99981. .ft C
  99982. salt \(aq*\(aq neutron.list_ports
  99983. salt \(aq*\(aq neutron.list_ports profile=openstack1
  99984. .ft P
  99985. .fi
  99986. .UNINDENT
  99987. .UNINDENT
  99988. .INDENT 7.0
  99989. .TP
  99990. .B Parameters
  99991. \fBprofile\fP \-\- Profile to build on (Optional)
  99992. .TP
  99993. .B Returns
  99994. List of port
  99995. .UNINDENT
  99996. .UNINDENT
  99997. .INDENT 0.0
  99998. .TP
  99999. .B salt.modules.neutron.list_quotas(profile=None)
  100000. Fetches all tenants quotas
  100001. .sp
  100002. CLI Example:
  100003. .INDENT 7.0
  100004. .INDENT 3.5
  100005. .sp
  100006. .nf
  100007. .ft C
  100008. salt \(aq*\(aq neutron.list_quotas
  100009. salt \(aq*\(aq neutron.list_quotas profile=openstack1
  100010. .ft P
  100011. .fi
  100012. .UNINDENT
  100013. .UNINDENT
  100014. .INDENT 7.0
  100015. .TP
  100016. .B Parameters
  100017. \fBprofile\fP \-\- Profile to build on (Optional)
  100018. .TP
  100019. .B Returns
  100020. List of quotas
  100021. .UNINDENT
  100022. .UNINDENT
  100023. .INDENT 0.0
  100024. .TP
  100025. .B salt.modules.neutron.list_routers(profile=None)
  100026. Fetches a list of all routers for a tenant
  100027. .sp
  100028. CLI Example:
  100029. .INDENT 7.0
  100030. .INDENT 3.5
  100031. .sp
  100032. .nf
  100033. .ft C
  100034. salt \(aq*\(aq neutron.list_routers
  100035. salt \(aq*\(aq neutron.list_routers profile=openstack1
  100036. .ft P
  100037. .fi
  100038. .UNINDENT
  100039. .UNINDENT
  100040. .INDENT 7.0
  100041. .TP
  100042. .B Parameters
  100043. \fBprofile\fP \-\- Profile to build on (Optional)
  100044. .TP
  100045. .B Returns
  100046. List of router
  100047. .UNINDENT
  100048. .UNINDENT
  100049. .INDENT 0.0
  100050. .TP
  100051. .B salt.modules.neutron.list_security_group_rules(profile=None)
  100052. Fetches a list of all security group rules for a tenant
  100053. .sp
  100054. CLI Example:
  100055. .INDENT 7.0
  100056. .INDENT 3.5
  100057. .sp
  100058. .nf
  100059. .ft C
  100060. salt \(aq*\(aq neutron.list_security_group_rules
  100061. salt \(aq*\(aq neutron.list_security_group_rules profile=openstack1
  100062. .ft P
  100063. .fi
  100064. .UNINDENT
  100065. .UNINDENT
  100066. .INDENT 7.0
  100067. .TP
  100068. .B Parameters
  100069. \fBprofile\fP \-\- Profile to build on (Optional)
  100070. .TP
  100071. .B Returns
  100072. List of security group rule
  100073. .UNINDENT
  100074. .UNINDENT
  100075. .INDENT 0.0
  100076. .TP
  100077. .B salt.modules.neutron.list_security_groups(profile=None)
  100078. Fetches a list of all security groups for a tenant
  100079. .sp
  100080. CLI Example:
  100081. .INDENT 7.0
  100082. .INDENT 3.5
  100083. .sp
  100084. .nf
  100085. .ft C
  100086. salt \(aq*\(aq neutron.list_security_groups
  100087. salt \(aq*\(aq neutron.list_security_groups profile=openstack1
  100088. .ft P
  100089. .fi
  100090. .UNINDENT
  100091. .UNINDENT
  100092. .INDENT 7.0
  100093. .TP
  100094. .B Parameters
  100095. \fBprofile\fP \-\- Profile to build on (Optional)
  100096. .TP
  100097. .B Returns
  100098. List of security group
  100099. .UNINDENT
  100100. .UNINDENT
  100101. .INDENT 0.0
  100102. .TP
  100103. .B salt.modules.neutron.list_subnets(profile=None)
  100104. Fetches a list of all networks for a tenant
  100105. .sp
  100106. CLI Example:
  100107. .INDENT 7.0
  100108. .INDENT 3.5
  100109. .sp
  100110. .nf
  100111. .ft C
  100112. salt \(aq*\(aq neutron.list_subnets
  100113. salt \(aq*\(aq neutron.list_subnets profile=openstack1
  100114. .ft P
  100115. .fi
  100116. .UNINDENT
  100117. .UNINDENT
  100118. .INDENT 7.0
  100119. .TP
  100120. .B Parameters
  100121. \fBprofile\fP \-\- Profile to build on (Optional)
  100122. .TP
  100123. .B Returns
  100124. List of subnet
  100125. .UNINDENT
  100126. .UNINDENT
  100127. .INDENT 0.0
  100128. .TP
  100129. .B salt.modules.neutron.list_vpnservices(retrieve_all=True, profile=None, **kwargs)
  100130. Fetches a list of all configured VPN services for a tenant
  100131. .sp
  100132. CLI Example:
  100133. .INDENT 7.0
  100134. .INDENT 3.5
  100135. .sp
  100136. .nf
  100137. .ft C
  100138. salt \(aq*\(aq neutron.list_vpnservices
  100139. .ft P
  100140. .fi
  100141. .UNINDENT
  100142. .UNINDENT
  100143. .INDENT 7.0
  100144. .TP
  100145. .B Parameters
  100146. .INDENT 7.0
  100147. .IP \(bu 2
  100148. \fBretrieve_all\fP \-\- True or False, default: True (Optional)
  100149. .IP \(bu 2
  100150. \fBprofile\fP \-\- Profile to build on (Optional)
  100151. .UNINDENT
  100152. .TP
  100153. .B Returns
  100154. List of VPN service
  100155. .UNINDENT
  100156. .UNINDENT
  100157. .INDENT 0.0
  100158. .TP
  100159. .B salt.modules.neutron.remove_gateway_router(router, profile=None)
  100160. Removes an external network gateway from the specified router
  100161. .sp
  100162. CLI Example:
  100163. .INDENT 7.0
  100164. .INDENT 3.5
  100165. .sp
  100166. .nf
  100167. .ft C
  100168. salt \(aq*\(aq neutron.remove_gateway_router router\-name
  100169. .ft P
  100170. .fi
  100171. .UNINDENT
  100172. .UNINDENT
  100173. .INDENT 7.0
  100174. .TP
  100175. .B Parameters
  100176. .INDENT 7.0
  100177. .IP \(bu 2
  100178. \fBrouter\fP \-\- ID or name of router
  100179. .IP \(bu 2
  100180. \fBprofile\fP \-\- Profile to build on (Optional)
  100181. .UNINDENT
  100182. .TP
  100183. .B Returns
  100184. True(Succeed) or False
  100185. .UNINDENT
  100186. .UNINDENT
  100187. .INDENT 0.0
  100188. .TP
  100189. .B salt.modules.neutron.remove_interface_router(router, subnet, profile=None)
  100190. Removes an internal network interface from the specified router
  100191. .sp
  100192. CLI Example:
  100193. .INDENT 7.0
  100194. .INDENT 3.5
  100195. .sp
  100196. .nf
  100197. .ft C
  100198. salt \(aq*\(aq neutron.remove_interface_router router\-name subnet\-name
  100199. .ft P
  100200. .fi
  100201. .UNINDENT
  100202. .UNINDENT
  100203. .INDENT 7.0
  100204. .TP
  100205. .B Parameters
  100206. .INDENT 7.0
  100207. .IP \(bu 2
  100208. \fBrouter\fP \-\- ID or name of the router
  100209. .IP \(bu 2
  100210. \fBsubnet\fP \-\- ID or name of the subnet
  100211. .IP \(bu 2
  100212. \fBprofile\fP \-\- Profile to build on (Optional)
  100213. .UNINDENT
  100214. .TP
  100215. .B Returns
  100216. True(Succeed) or False
  100217. .UNINDENT
  100218. .UNINDENT
  100219. .INDENT 0.0
  100220. .TP
  100221. .B salt.modules.neutron.show_firewall(firewall, profile=None)
  100222. Fetches information of a specific firewall rule
  100223. .sp
  100224. CLI Example:
  100225. .INDENT 7.0
  100226. .INDENT 3.5
  100227. .sp
  100228. .nf
  100229. .ft C
  100230. salt \(aq*\(aq neutron.show_firewall firewall
  100231. .ft P
  100232. .fi
  100233. .UNINDENT
  100234. .UNINDENT
  100235. .INDENT 7.0
  100236. .TP
  100237. .B Parameters
  100238. .INDENT 7.0
  100239. .IP \(bu 2
  100240. \fBfirewall\fP \-\- ID or name of firewall to look up
  100241. .IP \(bu 2
  100242. \fBprofile\fP \-\- Profile to build on (Optional)
  100243. .UNINDENT
  100244. .TP
  100245. .B Returns
  100246. firewall information
  100247. .UNINDENT
  100248. .UNINDENT
  100249. .INDENT 0.0
  100250. .TP
  100251. .B salt.modules.neutron.show_firewall_rule(firewall_rule, profile=None)
  100252. Fetches information of a specific firewall rule
  100253. .sp
  100254. CLI Example:
  100255. .INDENT 7.0
  100256. .INDENT 3.5
  100257. .sp
  100258. .nf
  100259. .ft C
  100260. salt \(aq*\(aq neutron.show_firewall_rule firewall\-rule\-name
  100261. .ft P
  100262. .fi
  100263. .UNINDENT
  100264. .UNINDENT
  100265. .INDENT 7.0
  100266. .TP
  100267. .B Parameters
  100268. .INDENT 7.0
  100269. .IP \(bu 2
  100270. \fBipsecpolicy\fP \-\- ID or name of firewall rule to look up
  100271. .IP \(bu 2
  100272. \fBprofile\fP \-\- Profile to build on (Optional)
  100273. .UNINDENT
  100274. .TP
  100275. .B Returns
  100276. firewall rule information
  100277. .UNINDENT
  100278. .UNINDENT
  100279. .INDENT 0.0
  100280. .TP
  100281. .B salt.modules.neutron.show_floatingip(floatingip_id, profile=None)
  100282. Fetches information of a certain floatingIP
  100283. .sp
  100284. CLI Example:
  100285. .INDENT 7.0
  100286. .INDENT 3.5
  100287. .sp
  100288. .nf
  100289. .ft C
  100290. salt \(aq*\(aq neutron.show_floatingip floatingip\-id
  100291. .ft P
  100292. .fi
  100293. .UNINDENT
  100294. .UNINDENT
  100295. .INDENT 7.0
  100296. .TP
  100297. .B Parameters
  100298. .INDENT 7.0
  100299. .IP \(bu 2
  100300. \fBfloatingip_id\fP \-\- ID of floatingIP to look up
  100301. .IP \(bu 2
  100302. \fBprofile\fP \-\- Profile to build on (Optional)
  100303. .UNINDENT
  100304. .TP
  100305. .B Returns
  100306. Floating IP information
  100307. .UNINDENT
  100308. .UNINDENT
  100309. .INDENT 0.0
  100310. .TP
  100311. .B salt.modules.neutron.show_ikepolicy(ikepolicy, profile=None)
  100312. Fetches information of a specific IKEPolicy
  100313. .sp
  100314. CLI Example:
  100315. .INDENT 7.0
  100316. .INDENT 3.5
  100317. .sp
  100318. .nf
  100319. .ft C
  100320. salt \(aq*\(aq neutron.show_ikepolicy ikepolicy\-name
  100321. .ft P
  100322. .fi
  100323. .UNINDENT
  100324. .UNINDENT
  100325. .INDENT 7.0
  100326. .TP
  100327. .B Parameters
  100328. .INDENT 7.0
  100329. .IP \(bu 2
  100330. \fBikepolicy\fP \-\- ID or name of ikepolicy to look up
  100331. .IP \(bu 2
  100332. \fBprofile\fP \-\- Profile to build on (Optional)
  100333. .UNINDENT
  100334. .TP
  100335. .B Returns
  100336. IKE policy information
  100337. .UNINDENT
  100338. .UNINDENT
  100339. .INDENT 0.0
  100340. .TP
  100341. .B salt.modules.neutron.show_ipsec_site_connection(ipsec_site_connection, profile=None)
  100342. Fetches information of a specific IPsecSiteConnection
  100343. .sp
  100344. CLI Example:
  100345. .INDENT 7.0
  100346. .INDENT 3.5
  100347. .sp
  100348. .nf
  100349. .ft C
  100350. salt \(aq*\(aq neutron.show_ipsec_site_connection connection\-name
  100351. .ft P
  100352. .fi
  100353. .UNINDENT
  100354. .UNINDENT
  100355. .INDENT 7.0
  100356. .TP
  100357. .B Parameters
  100358. .INDENT 7.0
  100359. .IP \(bu 2
  100360. \fBipsec_site_connection\fP \-\- ID or name of ipsec site connection
  100361. to look up
  100362. .IP \(bu 2
  100363. \fBprofile\fP \-\- Profile to build on (Optional)
  100364. .UNINDENT
  100365. .TP
  100366. .B Returns
  100367. IPSec site connection information
  100368. .UNINDENT
  100369. .UNINDENT
  100370. .INDENT 0.0
  100371. .TP
  100372. .B salt.modules.neutron.show_ipsecpolicy(ipsecpolicy, profile=None)
  100373. Fetches information of a specific IPsecPolicy
  100374. .sp
  100375. CLI Example:
  100376. .INDENT 7.0
  100377. .INDENT 3.5
  100378. .sp
  100379. .nf
  100380. .ft C
  100381. salt \(aq*\(aq neutron.show_ipsecpolicy ipsecpolicy\-name
  100382. .ft P
  100383. .fi
  100384. .UNINDENT
  100385. .UNINDENT
  100386. .INDENT 7.0
  100387. .TP
  100388. .B Parameters
  100389. .INDENT 7.0
  100390. .IP \(bu 2
  100391. \fBipsecpolicy\fP \-\- ID or name of IPSec policy to look up
  100392. .IP \(bu 2
  100393. \fBprofile\fP \-\- Profile to build on (Optional)
  100394. .UNINDENT
  100395. .TP
  100396. .B Returns
  100397. IPSec policy information
  100398. .UNINDENT
  100399. .UNINDENT
  100400. .INDENT 0.0
  100401. .TP
  100402. .B salt.modules.neutron.show_network(network, profile=None)
  100403. Fetches information of a certain network
  100404. .sp
  100405. CLI Example:
  100406. .INDENT 7.0
  100407. .INDENT 3.5
  100408. .sp
  100409. .nf
  100410. .ft C
  100411. salt \(aq*\(aq neutron.show_network network\-name
  100412. salt \(aq*\(aq neutron.show_network network\-name profile=openstack1
  100413. .ft P
  100414. .fi
  100415. .UNINDENT
  100416. .UNINDENT
  100417. .INDENT 7.0
  100418. .TP
  100419. .B Parameters
  100420. .INDENT 7.0
  100421. .IP \(bu 2
  100422. \fBnetwork\fP \-\- ID or name of network to look up
  100423. .IP \(bu 2
  100424. \fBprofile\fP \-\- Profile to build on (Optional)
  100425. .UNINDENT
  100426. .TP
  100427. .B Returns
  100428. Network information
  100429. .UNINDENT
  100430. .UNINDENT
  100431. .INDENT 0.0
  100432. .TP
  100433. .B salt.modules.neutron.show_port(port, profile=None)
  100434. Fetches information of a certain port
  100435. .sp
  100436. CLI Example:
  100437. .INDENT 7.0
  100438. .INDENT 3.5
  100439. .sp
  100440. .nf
  100441. .ft C
  100442. salt \(aq*\(aq neutron.show_port port\-id
  100443. salt \(aq*\(aq neutron.show_port port\-id profile=openstack1
  100444. .ft P
  100445. .fi
  100446. .UNINDENT
  100447. .UNINDENT
  100448. .INDENT 7.0
  100449. .TP
  100450. .B Parameters
  100451. .INDENT 7.0
  100452. .IP \(bu 2
  100453. \fBport\fP \-\- ID or name of port to look up
  100454. .IP \(bu 2
  100455. \fBprofile\fP \-\- Profile to build on (Optional)
  100456. .UNINDENT
  100457. .TP
  100458. .B Returns
  100459. Port information
  100460. .UNINDENT
  100461. .UNINDENT
  100462. .INDENT 0.0
  100463. .TP
  100464. .B salt.modules.neutron.show_quota(tenant_id, profile=None)
  100465. Fetches information of a certain tenant\(aqs quotas
  100466. .sp
  100467. CLI Example:
  100468. .INDENT 7.0
  100469. .INDENT 3.5
  100470. .sp
  100471. .nf
  100472. .ft C
  100473. salt \(aq*\(aq neutron.show_quota tenant\-id
  100474. salt \(aq*\(aq neutron.show_quota tenant\-id profile=openstack1
  100475. .ft P
  100476. .fi
  100477. .UNINDENT
  100478. .UNINDENT
  100479. .INDENT 7.0
  100480. .TP
  100481. .B Parameters
  100482. .INDENT 7.0
  100483. .IP \(bu 2
  100484. \fBtenant_id\fP \-\- ID of tenant
  100485. .IP \(bu 2
  100486. \fBprofile\fP \-\- Profile to build on (Optional)
  100487. .UNINDENT
  100488. .TP
  100489. .B Returns
  100490. Quota information
  100491. .UNINDENT
  100492. .UNINDENT
  100493. .INDENT 0.0
  100494. .TP
  100495. .B salt.modules.neutron.show_router(router, profile=None)
  100496. Fetches information of a certain router
  100497. .sp
  100498. CLI Example:
  100499. .INDENT 7.0
  100500. .INDENT 3.5
  100501. .sp
  100502. .nf
  100503. .ft C
  100504. salt \(aq*\(aq neutron.show_router router\-name
  100505. .ft P
  100506. .fi
  100507. .UNINDENT
  100508. .UNINDENT
  100509. .INDENT 7.0
  100510. .TP
  100511. .B Parameters
  100512. .INDENT 7.0
  100513. .IP \(bu 2
  100514. \fBrouter\fP \-\- ID or name of router to look up
  100515. .IP \(bu 2
  100516. \fBprofile\fP \-\- Profile to build on (Optional)
  100517. .UNINDENT
  100518. .TP
  100519. .B Returns
  100520. Router information
  100521. .UNINDENT
  100522. .UNINDENT
  100523. .INDENT 0.0
  100524. .TP
  100525. .B salt.modules.neutron.show_security_group(security_group, profile=None)
  100526. Fetches information of a certain security group
  100527. .sp
  100528. CLI Example:
  100529. .INDENT 7.0
  100530. .INDENT 3.5
  100531. .sp
  100532. .nf
  100533. .ft C
  100534. salt \(aq*\(aq neutron.show_security_group security\-group\-name
  100535. .ft P
  100536. .fi
  100537. .UNINDENT
  100538. .UNINDENT
  100539. .INDENT 7.0
  100540. .TP
  100541. .B Parameters
  100542. .INDENT 7.0
  100543. .IP \(bu 2
  100544. \fBsecurity_group\fP \-\- ID or name of security group to look up
  100545. .IP \(bu 2
  100546. \fBprofile\fP \-\- Profile to build on (Optional)
  100547. .UNINDENT
  100548. .TP
  100549. .B Returns
  100550. Security group information
  100551. .UNINDENT
  100552. .UNINDENT
  100553. .INDENT 0.0
  100554. .TP
  100555. .B salt.modules.neutron.show_security_group_rule(security_group_rule_id, profile=None)
  100556. Fetches information of a certain security group rule
  100557. .sp
  100558. CLI Example:
  100559. .INDENT 7.0
  100560. .INDENT 3.5
  100561. .sp
  100562. .nf
  100563. .ft C
  100564. salt \(aq*\(aq neutron.show_security_group_rule security\-group\-rule\-id
  100565. .ft P
  100566. .fi
  100567. .UNINDENT
  100568. .UNINDENT
  100569. .INDENT 7.0
  100570. .TP
  100571. .B Parameters
  100572. .INDENT 7.0
  100573. .IP \(bu 2
  100574. \fBsecurity_group_rule_id\fP \-\- ID of security group rule to look up
  100575. .IP \(bu 2
  100576. \fBprofile\fP \-\- Profile to build on (Optional)
  100577. .UNINDENT
  100578. .TP
  100579. .B Returns
  100580. Security group rule information
  100581. .UNINDENT
  100582. .UNINDENT
  100583. .INDENT 0.0
  100584. .TP
  100585. .B salt.modules.neutron.show_subnet(subnet, profile=None)
  100586. Fetches information of a certain subnet
  100587. .sp
  100588. CLI Example:
  100589. .INDENT 7.0
  100590. .INDENT 3.5
  100591. .sp
  100592. .nf
  100593. .ft C
  100594. salt \(aq*\(aq neutron.show_subnet subnet\-name
  100595. .ft P
  100596. .fi
  100597. .UNINDENT
  100598. .UNINDENT
  100599. .INDENT 7.0
  100600. .TP
  100601. .B Parameters
  100602. .INDENT 7.0
  100603. .IP \(bu 2
  100604. \fBsubnet\fP \-\- ID or name of subnet to look up
  100605. .IP \(bu 2
  100606. \fBprofile\fP \-\- Profile to build on (Optional)
  100607. .UNINDENT
  100608. .TP
  100609. .B Returns
  100610. Subnet information
  100611. .UNINDENT
  100612. .UNINDENT
  100613. .INDENT 0.0
  100614. .TP
  100615. .B salt.modules.neutron.show_vpnservice(vpnservice, profile=None, **kwargs)
  100616. Fetches information of a specific VPN service
  100617. .sp
  100618. CLI Example:
  100619. .INDENT 7.0
  100620. .INDENT 3.5
  100621. .sp
  100622. .nf
  100623. .ft C
  100624. salt \(aq*\(aq neutron.show_vpnservice vpnservice\-name
  100625. .ft P
  100626. .fi
  100627. .UNINDENT
  100628. .UNINDENT
  100629. .INDENT 7.0
  100630. .TP
  100631. .B Parameters
  100632. .INDENT 7.0
  100633. .IP \(bu 2
  100634. \fBvpnservice\fP \-\- ID or name of vpn service to look up
  100635. .IP \(bu 2
  100636. \fBprofile\fP \-\- Profile to build on (Optional)
  100637. .UNINDENT
  100638. .TP
  100639. .B Returns
  100640. VPN service information
  100641. .UNINDENT
  100642. .UNINDENT
  100643. .INDENT 0.0
  100644. .TP
  100645. .B salt.modules.neutron.update_firewall_rule(firewall_rule, protocol=None, action=None, name=None, description=None, ip_version=None, source_ip_address=None, destination_ip_address=None, source_port=None, destination_port=None, shared=None, enabled=None, profile=None)
  100646. Update a firewall rule
  100647. .sp
  100648. CLI Example:
  100649. .INDENT 7.0
  100650. .INDENT 3.5
  100651. .sp
  100652. .nf
  100653. .ft C
  100654. salt \(aq*\(aq neutron.update_firewall_rule firewall_rule protocol=PROTOCOL action=ACTION
  100655. name=NAME description=DESCRIPTION ip_version=IP_VERSION
  100656. source_ip_address=SOURCE_IP_ADDRESS destination_ip_address=DESTINATION_IP_ADDRESS
  100657. source_port=SOURCE_PORT destination_port=DESTINATION_PORT shared=SHARED enabled=ENABLED
  100658. .ft P
  100659. .fi
  100660. .UNINDENT
  100661. .UNINDENT
  100662. .INDENT 7.0
  100663. .TP
  100664. .B Parameters
  100665. .INDENT 7.0
  100666. .IP \(bu 2
  100667. \fBfirewall_rule\fP \-\- ID or name of firewall rule to update.
  100668. .IP \(bu 2
  100669. \fBprotocol\fP \-\- Protocol for the firewall rule, choose "tcp","udp","icmp" or "None". (Optional)
  100670. .IP \(bu 2
  100671. \fBaction\fP \-\- Action for the firewall rule, choose "allow" or "deny". (Optional)
  100672. .IP \(bu 2
  100673. \fBname\fP \-\- Name for the firewall rule. (Optional)
  100674. .IP \(bu 2
  100675. \fBdescription\fP \-\- Description for the firewall rule. (Optional)
  100676. .IP \(bu 2
  100677. \fBip_version\fP \-\- IP protocol version, default: 4. (Optional)
  100678. .IP \(bu 2
  100679. \fBsource_ip_address\fP \-\- Source IP address or subnet. (Optional)
  100680. .IP \(bu 2
  100681. \fBdestination_ip_address\fP \-\- Destination IP address or subnet. (Optional)
  100682. .IP \(bu 2
  100683. \fBsource_port\fP \-\- Source port (integer in [1, 65535] or range in a:b). (Optional)
  100684. .IP \(bu 2
  100685. \fBdestination_port\fP \-\- Destination port (integer in [1, 65535] or range in a:b). (Optional)
  100686. .IP \(bu 2
  100687. \fBshared\fP \-\- Set shared to True, default: False. (Optional)
  100688. .IP \(bu 2
  100689. \fBenabled\fP \-\- To enable this rule, default: True. (Optional)
  100690. .IP \(bu 2
  100691. \fBprofile\fP \-\- Profile to build on (Optional)
  100692. .UNINDENT
  100693. .UNINDENT
  100694. .UNINDENT
  100695. .INDENT 0.0
  100696. .TP
  100697. .B salt.modules.neutron.update_floatingip(floatingip_id, port=None, profile=None)
  100698. Updates a floatingIP
  100699. .sp
  100700. CLI Example:
  100701. .INDENT 7.0
  100702. .INDENT 3.5
  100703. .sp
  100704. .nf
  100705. .ft C
  100706. salt \(aq*\(aq neutron.update_floatingip network\-name port\-name
  100707. .ft P
  100708. .fi
  100709. .UNINDENT
  100710. .UNINDENT
  100711. .INDENT 7.0
  100712. .TP
  100713. .B Parameters
  100714. .INDENT 7.0
  100715. .IP \(bu 2
  100716. \fBfloatingip_id\fP \-\- ID of floatingIP
  100717. .IP \(bu 2
  100718. \fBport\fP \-\- ID or name of port, to associate floatingip to \fINone\fP or do
  100719. not specify to disassociate the floatingip (Optional)
  100720. .IP \(bu 2
  100721. \fBprofile\fP \-\- Profile to build on (Optional)
  100722. .UNINDENT
  100723. .TP
  100724. .B Returns
  100725. Value of updated floating IP information
  100726. .UNINDENT
  100727. .UNINDENT
  100728. .INDENT 0.0
  100729. .TP
  100730. .B salt.modules.neutron.update_network(network, name, profile=None)
  100731. Updates a network
  100732. .sp
  100733. CLI Example:
  100734. .INDENT 7.0
  100735. .INDENT 3.5
  100736. .sp
  100737. .nf
  100738. .ft C
  100739. salt \(aq*\(aq neutron.update_network network\-name new\-network\-name
  100740. .ft P
  100741. .fi
  100742. .UNINDENT
  100743. .UNINDENT
  100744. .INDENT 7.0
  100745. .TP
  100746. .B Parameters
  100747. .INDENT 7.0
  100748. .IP \(bu 2
  100749. \fBnetwork\fP \-\- ID or name of network to update
  100750. .IP \(bu 2
  100751. \fBname\fP \-\- Name of this network
  100752. .IP \(bu 2
  100753. \fBprofile\fP \-\- Profile to build on (Optional)
  100754. .UNINDENT
  100755. .TP
  100756. .B Returns
  100757. Value of updated network information
  100758. .UNINDENT
  100759. .UNINDENT
  100760. .INDENT 0.0
  100761. .TP
  100762. .B salt.modules.neutron.update_port(port, name, admin_state_up=True, profile=None)
  100763. Updates a port
  100764. .sp
  100765. CLI Example:
  100766. .INDENT 7.0
  100767. .INDENT 3.5
  100768. .sp
  100769. .nf
  100770. .ft C
  100771. salt \(aq*\(aq neutron.update_port port\-name network\-name new\-port\-name
  100772. .ft P
  100773. .fi
  100774. .UNINDENT
  100775. .UNINDENT
  100776. .INDENT 7.0
  100777. .TP
  100778. .B Parameters
  100779. .INDENT 7.0
  100780. .IP \(bu 2
  100781. \fBport\fP \-\- Port name or ID
  100782. .IP \(bu 2
  100783. \fBname\fP \-\- Name of this port
  100784. .IP \(bu 2
  100785. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  100786. default: true (Optional)
  100787. .IP \(bu 2
  100788. \fBprofile\fP \-\- Profile to build on (Optional)
  100789. .UNINDENT
  100790. .TP
  100791. .B Returns
  100792. Value of updated port information
  100793. .UNINDENT
  100794. .UNINDENT
  100795. .INDENT 0.0
  100796. .TP
  100797. .B salt.modules.neutron.update_quota(tenant_id, subnet=None, router=None, network=None, floatingip=None, port=None, security_group=None, security_group_rule=None, profile=None)
  100798. Update a tenant\(aqs quota
  100799. .sp
  100800. CLI Example:
  100801. .INDENT 7.0
  100802. .INDENT 3.5
  100803. .sp
  100804. .nf
  100805. .ft C
  100806. salt \(aq*\(aq neutron.update_quota tenant\-id subnet=40 router=50
  100807. network=10 floatingip=30 port=30
  100808. .ft P
  100809. .fi
  100810. .UNINDENT
  100811. .UNINDENT
  100812. .INDENT 7.0
  100813. .TP
  100814. .B Parameters
  100815. .INDENT 7.0
  100816. .IP \(bu 2
  100817. \fBtenant_id\fP \-\- ID of tenant
  100818. .IP \(bu 2
  100819. \fBsubnet\fP \-\- Value of subnet quota (Optional)
  100820. .IP \(bu 2
  100821. \fBrouter\fP \-\- Value of router quota (Optional)
  100822. .IP \(bu 2
  100823. \fBnetwork\fP \-\- Value of network quota (Optional)
  100824. .IP \(bu 2
  100825. \fBfloatingip\fP \-\- Value of floatingip quota (Optional)
  100826. .IP \(bu 2
  100827. \fBport\fP \-\- Value of port quota (Optional)
  100828. .IP \(bu 2
  100829. \fBsecurity_group\fP \-\- Value of security group (Optional)
  100830. .IP \(bu 2
  100831. \fBsecurity_group_rule\fP \-\- Value of security group rule (Optional)
  100832. .IP \(bu 2
  100833. \fBprofile\fP \-\- Profile to build on (Optional)
  100834. .UNINDENT
  100835. .TP
  100836. .B Returns
  100837. Value of updated quota
  100838. .UNINDENT
  100839. .UNINDENT
  100840. .INDENT 0.0
  100841. .TP
  100842. .B salt.modules.neutron.update_router(router, name=None, admin_state_up=None, profile=None, **kwargs)
  100843. Updates a router
  100844. .sp
  100845. CLI Example:
  100846. .INDENT 7.0
  100847. .INDENT 3.5
  100848. .sp
  100849. .nf
  100850. .ft C
  100851. salt \(aq*\(aq neutron.update_router router_id name=new\-router\-name
  100852. admin_state_up=True
  100853. .ft P
  100854. .fi
  100855. .UNINDENT
  100856. .UNINDENT
  100857. .INDENT 7.0
  100858. .TP
  100859. .B Parameters
  100860. .INDENT 7.0
  100861. .IP \(bu 2
  100862. \fBrouter\fP \-\- ID or name of router to update
  100863. .IP \(bu 2
  100864. \fBname\fP \-\- Name of this router
  100865. .IP \(bu 2
  100866. \fBext_network\fP \-\- ID or name of the external for the gateway (Optional)
  100867. .IP \(bu 2
  100868. \fBadmin_state_up\fP \-\- Set admin state up to true or false,
  100869. default: true (Optional)
  100870. .IP \(bu 2
  100871. \fBprofile\fP \-\- Profile to build on (Optional)
  100872. .IP \(bu 2
  100873. \fBkwargs\fP \-\-
  100874. .UNINDENT
  100875. .TP
  100876. .B Returns
  100877. Value of updated router information
  100878. .UNINDENT
  100879. .UNINDENT
  100880. .INDENT 0.0
  100881. .TP
  100882. .B salt.modules.neutron.update_security_group(security_group, name=None, description=None, profile=None)
  100883. Updates a security group
  100884. .sp
  100885. CLI Example:
  100886. .INDENT 7.0
  100887. .INDENT 3.5
  100888. .sp
  100889. .nf
  100890. .ft C
  100891. salt \(aq*\(aq neutron.update_security_group security\-group\-name new\-security\-group\-name
  100892. .ft P
  100893. .fi
  100894. .UNINDENT
  100895. .UNINDENT
  100896. .INDENT 7.0
  100897. .TP
  100898. .B Parameters
  100899. .INDENT 7.0
  100900. .IP \(bu 2
  100901. \fBsecurity_group\fP \-\- ID or name of security group to update
  100902. .IP \(bu 2
  100903. \fBname\fP \-\- Name of this security group (Optional)
  100904. .IP \(bu 2
  100905. \fBdescription\fP \-\- Description of security group (Optional)
  100906. .IP \(bu 2
  100907. \fBprofile\fP \-\- Profile to build on (Optional)
  100908. .UNINDENT
  100909. .TP
  100910. .B Returns
  100911. Value of updated security group information
  100912. .UNINDENT
  100913. .UNINDENT
  100914. .INDENT 0.0
  100915. .TP
  100916. .B salt.modules.neutron.update_subnet(subnet, name, profile=None)
  100917. Updates a subnet
  100918. .sp
  100919. CLI Example:
  100920. .INDENT 7.0
  100921. .INDENT 3.5
  100922. .sp
  100923. .nf
  100924. .ft C
  100925. salt \(aq*\(aq neutron.update_subnet subnet\-name new\-subnet\-name
  100926. .ft P
  100927. .fi
  100928. .UNINDENT
  100929. .UNINDENT
  100930. .INDENT 7.0
  100931. .TP
  100932. .B Parameters
  100933. .INDENT 7.0
  100934. .IP \(bu 2
  100935. \fBsubnet\fP \-\- ID or name of subnet to update
  100936. .IP \(bu 2
  100937. \fBname\fP \-\- Name of this subnet
  100938. .IP \(bu 2
  100939. \fBprofile\fP \-\- Profile to build on (Optional)
  100940. .UNINDENT
  100941. .TP
  100942. .B Returns
  100943. Value of updated subnet information
  100944. .UNINDENT
  100945. .UNINDENT
  100946. .INDENT 0.0
  100947. .TP
  100948. .B salt.modules.neutron.update_vpnservice(vpnservice, desc, profile=None)
  100949. Updates a VPN service
  100950. .sp
  100951. CLI Example:
  100952. .INDENT 7.0
  100953. .INDENT 3.5
  100954. .sp
  100955. .nf
  100956. .ft C
  100957. salt \(aq*\(aq neutron.update_vpnservice vpnservice\-name desc=\(aqVPN Service1\(aq
  100958. .ft P
  100959. .fi
  100960. .UNINDENT
  100961. .UNINDENT
  100962. .INDENT 7.0
  100963. .TP
  100964. .B Parameters
  100965. .INDENT 7.0
  100966. .IP \(bu 2
  100967. \fBvpnservice\fP \-\- ID or name of vpn service to update
  100968. .IP \(bu 2
  100969. \fBdesc\fP \-\- Set a description for the VPN service
  100970. .IP \(bu 2
  100971. \fBprofile\fP \-\- Profile to build on (Optional)
  100972. .UNINDENT
  100973. .TP
  100974. .B Returns
  100975. Value of updated VPN service information
  100976. .UNINDENT
  100977. .UNINDENT
  100978. .SS salt.modules.neutronng
  100979. .sp
  100980. Neutron module for interacting with OpenStack Neutron
  100981. .sp
  100982. New in version 2018.3.0.
  100983. .sp
  100984. :depends:shade
  100985. .sp
  100986. Example configuration
  100987. .INDENT 0.0
  100988. .INDENT 3.5
  100989. .sp
  100990. .nf
  100991. .ft C
  100992. neutron:
  100993. cloud: default
  100994. .ft P
  100995. .fi
  100996. .UNINDENT
  100997. .UNINDENT
  100998. .INDENT 0.0
  100999. .INDENT 3.5
  101000. .sp
  101001. .nf
  101002. .ft C
  101003. neutron:
  101004. auth:
  101005. username: admin
  101006. password: password123
  101007. user_domain_name: mydomain
  101008. project_name: myproject
  101009. project_domain_name: myproject
  101010. auth_url: https://example.org:5000/v3
  101011. identity_api_version: 3
  101012. .ft P
  101013. .fi
  101014. .UNINDENT
  101015. .UNINDENT
  101016. .INDENT 0.0
  101017. .TP
  101018. .B salt.modules.neutronng.compare_changes(obj, **kwargs)
  101019. Compare two dicts returning only keys that exist in the first dict and are
  101020. different in the second one
  101021. .UNINDENT
  101022. .INDENT 0.0
  101023. .TP
  101024. .B salt.modules.neutronng.get_openstack_cloud(auth=None)
  101025. Return an openstack_cloud
  101026. .UNINDENT
  101027. .INDENT 0.0
  101028. .TP
  101029. .B salt.modules.neutronng.get_operator_cloud(auth=None)
  101030. Return an operator_cloud
  101031. .UNINDENT
  101032. .INDENT 0.0
  101033. .TP
  101034. .B salt.modules.neutronng.list_networks(auth=None, **kwargs)
  101035. List networks
  101036. .INDENT 7.0
  101037. .TP
  101038. .B filters
  101039. A Python dictionary of filter conditions to push down
  101040. .UNINDENT
  101041. .sp
  101042. CLI Example:
  101043. .INDENT 7.0
  101044. .INDENT 3.5
  101045. .sp
  101046. .nf
  101047. .ft C
  101048. salt \(aq*\(aq neutronng.list_networks
  101049. salt \(aq*\(aq neutronng.list_networks filters=\(aq{"tenant_id": "1dcac318a83b4610b7a7f7ba01465548"}\(aq
  101050. .ft P
  101051. .fi
  101052. .UNINDENT
  101053. .UNINDENT
  101054. .UNINDENT
  101055. .INDENT 0.0
  101056. .TP
  101057. .B salt.modules.neutronng.list_subnets(auth=None, **kwargs)
  101058. List subnets
  101059. .INDENT 7.0
  101060. .TP
  101061. .B filters
  101062. A Python dictionary of filter conditions to push down
  101063. .UNINDENT
  101064. .sp
  101065. CLI Example:
  101066. .INDENT 7.0
  101067. .INDENT 3.5
  101068. .sp
  101069. .nf
  101070. .ft C
  101071. salt \(aq*\(aq neutronng.list_subnets
  101072. salt \(aq*\(aq neutronng.list_subnets filters=\(aq{"tenant_id": "1dcac318a83b4610b7a7f7ba01465548"}\(aq
  101073. .ft P
  101074. .fi
  101075. .UNINDENT
  101076. .UNINDENT
  101077. .UNINDENT
  101078. .INDENT 0.0
  101079. .TP
  101080. .B salt.modules.neutronng.network_create(auth=None, **kwargs)
  101081. Create a network
  101082. .INDENT 7.0
  101083. .TP
  101084. .B name
  101085. Name of the network being created
  101086. .TP
  101087. .B shared
  101088. False
  101089. If \fBTrue\fP, set the network as shared
  101090. .TP
  101091. .B admin_state_up
  101092. True
  101093. If \fBTrue\fP, Set the network administrative state to "up"
  101094. .TP
  101095. .B external
  101096. False
  101097. Control whether or not this network is externally accessible
  101098. .TP
  101099. .B provider
  101100. An optional Python dictionary of network provider options
  101101. .TP
  101102. .B project_id
  101103. The project ID on which this network will be created
  101104. .UNINDENT
  101105. .sp
  101106. CLI Example:
  101107. .INDENT 7.0
  101108. .INDENT 3.5
  101109. .sp
  101110. .nf
  101111. .ft C
  101112. salt \(aq*\(aq neutronng.network_create name=network2 shared=True admin_state_up=True external=True
  101113. salt \(aq*\(aq neutronng.network_create name=network3 provider=\(aq{"network_type": "vlan", "segmentation_id": "4010", "physical_network": "provider"}\(aq project_id=1dcac318a83b4610b7a7f7ba01465548
  101114. .ft P
  101115. .fi
  101116. .UNINDENT
  101117. .UNINDENT
  101118. .UNINDENT
  101119. .INDENT 0.0
  101120. .TP
  101121. .B salt.modules.neutronng.network_delete(auth=None, **kwargs)
  101122. Delete a network
  101123. .INDENT 7.0
  101124. .TP
  101125. .B name_or_id
  101126. Name or ID of the network being deleted
  101127. .UNINDENT
  101128. .sp
  101129. CLI Example:
  101130. .INDENT 7.0
  101131. .INDENT 3.5
  101132. .sp
  101133. .nf
  101134. .ft C
  101135. salt \(aq*\(aq neutronng.network_delete name_or_id=network1
  101136. salt \(aq*\(aq neutronng.network_delete name_or_id=1dcac318a83b4610b7a7f7ba01465548
  101137. .ft P
  101138. .fi
  101139. .UNINDENT
  101140. .UNINDENT
  101141. .UNINDENT
  101142. .INDENT 0.0
  101143. .TP
  101144. .B salt.modules.neutronng.network_get(auth=None, **kwargs)
  101145. Get a single network
  101146. .INDENT 7.0
  101147. .TP
  101148. .B filters
  101149. A Python dictionary of filter conditions to push down
  101150. .UNINDENT
  101151. .sp
  101152. CLI Example:
  101153. .INDENT 7.0
  101154. .INDENT 3.5
  101155. .sp
  101156. .nf
  101157. .ft C
  101158. salt \(aq*\(aq neutronng.network_get name=XLB4
  101159. .ft P
  101160. .fi
  101161. .UNINDENT
  101162. .UNINDENT
  101163. .UNINDENT
  101164. .INDENT 0.0
  101165. .TP
  101166. .B salt.modules.neutronng.security_group_create(auth=None, **kwargs)
  101167. Create a security group. Use security_group_get to create default.
  101168. .INDENT 7.0
  101169. .TP
  101170. .B project_id
  101171. The project ID on which this security group will be created
  101172. .UNINDENT
  101173. .sp
  101174. CLI Example:
  101175. .INDENT 7.0
  101176. .INDENT 3.5
  101177. .sp
  101178. .nf
  101179. .ft C
  101180. salt \(aq*\(aq neutronng.security_group_create name=secgroup1 description="Very secure security group"
  101181. salt \(aq*\(aq neutronng.security_group_create name=secgroup1 description="Very secure security group" project_id=1dcac318a83b4610b7a7f7ba01465548
  101182. .ft P
  101183. .fi
  101184. .UNINDENT
  101185. .UNINDENT
  101186. .UNINDENT
  101187. .INDENT 0.0
  101188. .TP
  101189. .B salt.modules.neutronng.security_group_delete(auth=None, **kwargs)
  101190. Delete a security group
  101191. .INDENT 7.0
  101192. .TP
  101193. .B name_or_id
  101194. The name or unique ID of the security group
  101195. .UNINDENT
  101196. .sp
  101197. CLI Example:
  101198. .INDENT 7.0
  101199. .INDENT 3.5
  101200. .sp
  101201. .nf
  101202. .ft C
  101203. salt \(aq*\(aq neutronng.security_group_delete name_or_id=secgroup1
  101204. .ft P
  101205. .fi
  101206. .UNINDENT
  101207. .UNINDENT
  101208. .UNINDENT
  101209. .INDENT 0.0
  101210. .TP
  101211. .B salt.modules.neutronng.security_group_get(auth=None, **kwargs)
  101212. Get a single security group. This will create a default security group
  101213. if one does not exist yet for a particular project id.
  101214. .INDENT 7.0
  101215. .TP
  101216. .B filters
  101217. A Python dictionary of filter conditions to push down
  101218. .UNINDENT
  101219. .sp
  101220. CLI Example:
  101221. .INDENT 7.0
  101222. .INDENT 3.5
  101223. .sp
  101224. .nf
  101225. .ft C
  101226. salt \(aq*\(aq neutronng.security_group_get name=1dcac318a83b4610b7a7f7ba01465548
  101227. salt \(aq*\(aq neutronng.security_group_get name=default filters=\(aq{"tenant_id":"2e778bb64ca64a199eb526b5958d8710"}\(aq
  101228. .ft P
  101229. .fi
  101230. .UNINDENT
  101231. .UNINDENT
  101232. .UNINDENT
  101233. .INDENT 0.0
  101234. .TP
  101235. .B salt.modules.neutronng.security_group_rule_create(auth=None, **kwargs)
  101236. Create a rule in a security group
  101237. .INDENT 7.0
  101238. .TP
  101239. .B secgroup_name_or_id
  101240. The security group name or ID to associate with this security group
  101241. rule. If a non\-unique group name is given, an exception is raised.
  101242. .TP
  101243. .B port_range_min
  101244. The minimum port number in the range that is matched by the security
  101245. group rule. If the protocol is TCP or UDP, this value must be less than
  101246. or equal to the port_range_max attribute value. If nova is used by the
  101247. cloud provider for security groups, then a value of None will be
  101248. transformed to \-1.
  101249. .TP
  101250. .B port_range_max
  101251. The maximum port number in the range that is matched by the security
  101252. group rule. The port_range_min attribute constrains the port_range_max
  101253. attribute. If nova is used by the cloud provider for security groups,
  101254. then a value of None will be transformed to \-1.
  101255. .TP
  101256. .B protocol
  101257. The protocol that is matched by the security group rule. Valid values
  101258. are \fBNone\fP, \fBtcp\fP, \fBudp\fP, and \fBicmp\fP\&.
  101259. .TP
  101260. .B remote_ip_prefix
  101261. The remote IP prefix to be associated with this security group rule.
  101262. This attribute matches the specified IP prefix as the source IP address
  101263. of the IP packet.
  101264. .TP
  101265. .B remote_group_id
  101266. The remote group ID to be associated with this security group rule
  101267. .TP
  101268. .B direction
  101269. Either \fBingress\fP or \fBegress\fP; the direction in which the security
  101270. group rule is applied. For a compute instance, an ingress security
  101271. group rule is applied to incoming (ingress) traffic for that instance.
  101272. An egress rule is applied to traffic leaving the instance
  101273. .TP
  101274. .B ethertype
  101275. Must be IPv4 or IPv6, and addresses represented in CIDR must match the
  101276. ingress or egress rules
  101277. .TP
  101278. .B project_id
  101279. Specify the project ID this security group will be created on
  101280. (admin\-only)
  101281. .UNINDENT
  101282. .sp
  101283. CLI Example:
  101284. .INDENT 7.0
  101285. .INDENT 3.5
  101286. .sp
  101287. .nf
  101288. .ft C
  101289. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=secgroup1
  101290. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=secgroup2 port_range_min=8080 port_range_max=8080 direction=\(aqegress\(aq
  101291. salt \(aq*\(aq neutronng.security_group_rule_create secgroup_name_or_id=c0e1d1ce\-7296\-405e\-919d\-1c08217be529 protocol=icmp project_id=1dcac318a83b4610b7a7f7ba01465548
  101292. .ft P
  101293. .fi
  101294. .UNINDENT
  101295. .UNINDENT
  101296. .UNINDENT
  101297. .INDENT 0.0
  101298. .TP
  101299. .B salt.modules.neutronng.security_group_rule_delete(auth=None, **kwargs)
  101300. Delete a security group
  101301. .INDENT 7.0
  101302. .TP
  101303. .B name_or_id
  101304. The unique ID of the security group rule
  101305. .UNINDENT
  101306. .sp
  101307. CLI Example:
  101308. .INDENT 7.0
  101309. .INDENT 3.5
  101310. .sp
  101311. .nf
  101312. .ft C
  101313. salt \(aq*\(aq neutronng.security_group_rule_delete name_or_id=1dcac318a83b4610b7a7f7ba01465548
  101314. .ft P
  101315. .fi
  101316. .UNINDENT
  101317. .UNINDENT
  101318. .UNINDENT
  101319. .INDENT 0.0
  101320. .TP
  101321. .B salt.modules.neutronng.security_group_update(secgroup=None, auth=None, **kwargs)
  101322. Update a security group
  101323. .INDENT 7.0
  101324. .TP
  101325. .B secgroup
  101326. Name, ID or Raw Object of the security group to update
  101327. .TP
  101328. .B name
  101329. New name for the security group
  101330. .TP
  101331. .B description
  101332. New description for the security group
  101333. .UNINDENT
  101334. .sp
  101335. CLI Example:
  101336. .INDENT 7.0
  101337. .INDENT 3.5
  101338. .sp
  101339. .nf
  101340. .ft C
  101341. salt \(aq*\(aq neutronng.security_group_update secgroup=secgroup1 description="Very secure security group"
  101342. salt \(aq*\(aq neutronng.security_group_update secgroup=secgroup1 description="Very secure security group" project_id=1dcac318a83b4610b7a7f7ba01465548
  101343. .ft P
  101344. .fi
  101345. .UNINDENT
  101346. .UNINDENT
  101347. .UNINDENT
  101348. .INDENT 0.0
  101349. .TP
  101350. .B salt.modules.neutronng.setup_clouds(auth=None)
  101351. Call functions to create Shade cloud objects in __context__ to take
  101352. advantage of Shade\(aqs in\-memory caching across several states
  101353. .UNINDENT
  101354. .INDENT 0.0
  101355. .TP
  101356. .B salt.modules.neutronng.subnet_create(auth=None, **kwargs)
  101357. Create a subnet
  101358. .INDENT 7.0
  101359. .TP
  101360. .B network_name_or_id
  101361. The unique name or ID of the attached network. If a non\-unique name is
  101362. supplied, an exception is raised.
  101363. .TP
  101364. .B cidr
  101365. The CIDR
  101366. .TP
  101367. .B ip_version
  101368. The IP version, which is 4 or 6.
  101369. .TP
  101370. .B enable_dhcp
  101371. False
  101372. Set to \fBTrue\fP if DHCP is enabled and \fBFalse\fP if disabled
  101373. .TP
  101374. .B subnet_name
  101375. The name of the subnet
  101376. .TP
  101377. .B tenant_id
  101378. The ID of the tenant who owns the network. Only administrative users
  101379. can specify a tenant ID other than their own.
  101380. .TP
  101381. .B allocation_pools
  101382. A list of dictionaries of the start and end addresses for the
  101383. allocation pools.
  101384. .TP
  101385. .B gateway_ip
  101386. The gateway IP address. When you specify both \fBallocation_pools\fP and
  101387. \fBgateway_ip\fP, you must ensure that the gateway IP does not overlap
  101388. with the specified allocation pools.
  101389. .TP
  101390. .B disable_gateway_ip
  101391. False
  101392. Set to \fBTrue\fP if gateway IP address is disabled and \fBFalse\fP if
  101393. enabled. It is not allowed with \fBgateway_ip\fP\&.
  101394. .TP
  101395. .B dns_nameservers
  101396. A list of DNS name servers for the subnet
  101397. .TP
  101398. .B host_routes
  101399. A list of host route dictionaries for the subnet
  101400. .TP
  101401. .B ipv6_ra_mode
  101402. IPv6 Router Advertisement mode. Valid values are \fBdhcpv6\-stateful\fP,
  101403. \fBdhcpv6\-stateless\fP, or \fBslaac\fP\&.
  101404. .TP
  101405. .B ipv6_address_mode
  101406. IPv6 address mode. Valid values are \fBdhcpv6\-stateful\fP,
  101407. \fBdhcpv6\-stateless\fP, or \fBslaac\fP\&.
  101408. .TP
  101409. .B use_default_subnetpool
  101410. If \fBTrue\fP, use the default subnetpool for \fBip_version\fP to obtain a
  101411. CIDR. It is required to pass \fBNone\fP to the \fBcidr\fP argument when
  101412. enabling this option.
  101413. .UNINDENT
  101414. .sp
  101415. CLI Example:
  101416. .INDENT 7.0
  101417. .INDENT 3.5
  101418. .sp
  101419. .nf
  101420. .ft C
  101421. salt \(aq*\(aq neutronng.subnet_create network_name_or_id=network1
  101422. subnet_name=subnet1
  101423. salt \(aq*\(aq neutronng.subnet_create subnet_name=subnet2 network_name_or_id=network2 enable_dhcp=True allocation_pools=\(aq[{"start": "192.168.199.2", "end": "192.168.199.254"}]\(aq gateway_ip=\(aq192.168.199.1\(aq cidr=192.168.199.0/24
  101424. salt \(aq*\(aq neutronng.subnet_create network_name_or_id=network1 subnet_name=subnet1 dns_nameservers=\(aq["8.8.8.8", "8.8.8.7"]\(aq
  101425. .ft P
  101426. .fi
  101427. .UNINDENT
  101428. .UNINDENT
  101429. .UNINDENT
  101430. .INDENT 0.0
  101431. .TP
  101432. .B salt.modules.neutronng.subnet_delete(auth=None, **kwargs)
  101433. Delete a subnet
  101434. .INDENT 7.0
  101435. .TP
  101436. .B name
  101437. Name or ID of the subnet to update
  101438. .UNINDENT
  101439. .sp
  101440. CLI Example:
  101441. .INDENT 7.0
  101442. .INDENT 3.5
  101443. .sp
  101444. .nf
  101445. .ft C
  101446. salt \(aq*\(aq neutronng.subnet_delete name=subnet1
  101447. salt \(aq*\(aq neutronng.subnet_delete name=1dcac318a83b4610b7a7f7ba01465548
  101448. .ft P
  101449. .fi
  101450. .UNINDENT
  101451. .UNINDENT
  101452. .UNINDENT
  101453. .INDENT 0.0
  101454. .TP
  101455. .B salt.modules.neutronng.subnet_get(auth=None, **kwargs)
  101456. Get a single subnet
  101457. .INDENT 7.0
  101458. .TP
  101459. .B filters
  101460. A Python dictionary of filter conditions to push down
  101461. .UNINDENT
  101462. .sp
  101463. CLI Example:
  101464. .INDENT 7.0
  101465. .INDENT 3.5
  101466. .sp
  101467. .nf
  101468. .ft C
  101469. salt \(aq*\(aq neutronng.subnet_get name=subnet1
  101470. .ft P
  101471. .fi
  101472. .UNINDENT
  101473. .UNINDENT
  101474. .UNINDENT
  101475. .INDENT 0.0
  101476. .TP
  101477. .B salt.modules.neutronng.subnet_update(auth=None, **kwargs)
  101478. Update a subnet
  101479. .INDENT 7.0
  101480. .TP
  101481. .B name_or_id
  101482. Name or ID of the subnet to update
  101483. .TP
  101484. .B subnet_name
  101485. The new name of the subnet
  101486. .TP
  101487. .B enable_dhcp
  101488. Set to \fBTrue\fP if DHCP is enabled and \fBFalse\fP if disabled
  101489. .TP
  101490. .B gateway_ip
  101491. The gateway IP address. When you specify both allocation_pools and
  101492. gateway_ip, you must ensure that the gateway IP does not overlap with
  101493. the specified allocation pools.
  101494. .TP
  101495. .B disable_gateway_ip
  101496. False
  101497. Set to \fBTrue\fP if gateway IP address is disabled and False if enabled.
  101498. It is not allowed with \fBgateway_ip\fP\&.
  101499. .TP
  101500. .B allocation_pools
  101501. A list of dictionaries of the start and end addresses for the
  101502. allocation pools.
  101503. .TP
  101504. .B dns_nameservers
  101505. A list of DNS name servers for the subnet
  101506. .TP
  101507. .B host_routes
  101508. A list of host route dictionaries for the subnet
  101509. .UNINDENT
  101510. .INDENT 7.0
  101511. .INDENT 3.5
  101512. .sp
  101513. .nf
  101514. .ft C
  101515. salt \(aq*\(aq neutronng.subnet_update name=subnet1 subnet_name=subnet2
  101516. salt \(aq*\(aq neutronng.subnet_update name=subnet1 dns_nameservers=\(aq["8.8.8.8", "8.8.8.7"]\(aq
  101517. .ft P
  101518. .fi
  101519. .UNINDENT
  101520. .UNINDENT
  101521. .UNINDENT
  101522. .SS salt.modules.nxos_api module
  101523. .sp
  101524. Execution module to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  101525. .sp
  101526. New in version 2019.2.0.
  101527. .sp
  101528. Execution module used to interface the interaction with a remote or local Nexus
  101529. switch whether we\(aqre running in a Proxy Minion or regular Minion (or regular
  101530. Minion running directly on the Nexus switch).
  101531. .INDENT 0.0
  101532. .TP
  101533. .B codeauthor
  101534. Mircea Ulinic <\fI\%ping@mirceaulinic.net\fP>
  101535. .TP
  101536. .B maturity
  101537. new
  101538. .TP
  101539. .B platform
  101540. any
  101541. .UNINDENT
  101542. .sp
  101543. \fBNOTE:\fP
  101544. .INDENT 0.0
  101545. .INDENT 3.5
  101546. To be able to use this module you need to enable to NX\-API on your switch,
  101547. by executing \fBfeature nxapi\fP in configuration mode.
  101548. .sp
  101549. Configuration example:
  101550. .INDENT 0.0
  101551. .INDENT 3.5
  101552. .sp
  101553. .nf
  101554. .ft C
  101555. switch# conf t
  101556. switch(config)# feature nxapi
  101557. .ft P
  101558. .fi
  101559. .UNINDENT
  101560. .UNINDENT
  101561. .sp
  101562. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  101563. .sp
  101564. Output example:
  101565. .INDENT 0.0
  101566. .INDENT 3.5
  101567. .sp
  101568. .nf
  101569. .ft C
  101570. switch# show nxapi
  101571. nxapi enabled
  101572. HTTPS Listen on port 443
  101573. .ft P
  101574. .fi
  101575. .UNINDENT
  101576. .UNINDENT
  101577. .UNINDENT
  101578. .UNINDENT
  101579. .sp
  101580. \fBNOTE:\fP
  101581. .INDENT 0.0
  101582. .INDENT 3.5
  101583. NX\-API requires modern NXOS distributions, typically at least 7.0 depending
  101584. on the hardware. Due to reliability reasons it is recommended to run the
  101585. most recent version.
  101586. .sp
  101587. Check \fI\%https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus7000/sw/programmability/guide/b_Cisco_Nexus_7000_Series_NX\-OS_Programmability_Guide/b_Cisco_Nexus_7000_Series_NX\-OS_Programmability_Guide_chapter_0101.html\fP
  101588. for more details.
  101589. .UNINDENT
  101590. .UNINDENT
  101591. .SS Usage
  101592. .sp
  101593. This module can equally be used via the \fBnxos_api\fP
  101594. Proxy module or directly from an arbitrary (Proxy) Minion that is running on a
  101595. machine having access to the network device API. Given that there are no
  101596. external dependencies, this module can very well used when using the regular
  101597. Salt Minion directly installed on the switch.
  101598. .sp
  101599. When running outside of the \fBnxos_api Proxy\fP
  101600. (i.e., from another Proxy Minion type, or regular Minion), the NX\-API connection
  101601. arguments can be either specified from the CLI when executing the command, or
  101602. in a configuration block under the \fBnxos_api\fP key in the configuration opts
  101603. (i.e., (Proxy) Minion configuration file), or Pillar. The module supports these
  101604. simultaneously. These fields are the exact same supported by the \fBnxos_api\fP
  101605. Proxy Module:
  101606. .INDENT 0.0
  101607. .TP
  101608. .B transport: \fBhttps\fP
  101609. Specifies the type of connection transport to use. Valid values for the
  101610. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101611. .TP
  101612. .B host: \fBlocalhost\fP
  101613. The IP address or DNS host name of the connection device.
  101614. .TP
  101615. .B username: \fBadmin\fP
  101616. The username to pass to the device to authenticate the NX\-API connection.
  101617. .TP
  101618. .B password
  101619. The password to pass to the device to authenticate the NX\-API connection.
  101620. .TP
  101621. .B port
  101622. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101623. not specified, the default value is automatically determined by the
  101624. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101625. .TP
  101626. .B timeout: \fB60\fP
  101627. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101628. .TP
  101629. .B verify: \fBTrue\fP
  101630. Either a boolean, in which case it controls whether we verify the NX\-API
  101631. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101632. to use. Defaults to \fBTrue\fP\&.
  101633. .sp
  101634. When there is no certificate configuration on the device and this option is
  101635. set as \fBTrue\fP (default), the commands will fail with the following error:
  101636. \fBSSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)\fP\&.
  101637. In this case, you either need to configure a proper certificate on the
  101638. device (\fIrecommended\fP), or bypass the checks setting this argument as \fBFalse\fP
  101639. with all the security risks considered.
  101640. .sp
  101641. Check \fI\%https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3000/sw/programmability/6_x/b_Cisco_Nexus_3000_Series_NX\-OS_Programmability_Guide/b_Cisco_Nexus_3000_Series_NX\-OS_Programmability_Guide_chapter_01.html\fP
  101642. to see how to properly configure the certificate.
  101643. .UNINDENT
  101644. .sp
  101645. Example (when not running in a \fBnxos_api\fP Proxy Minion):
  101646. .INDENT 0.0
  101647. .INDENT 3.5
  101648. .sp
  101649. .nf
  101650. .ft C
  101651. nxos_api:
  101652. username: test
  101653. password: test
  101654. .ft P
  101655. .fi
  101656. .UNINDENT
  101657. .UNINDENT
  101658. .sp
  101659. In case the \fBusername\fP and \fBpassword\fP are the same on any device you are
  101660. targeting, the block above (besides other parameters specific to your
  101661. environment you might need) should suffice to be able to execute commands from
  101662. outside a \fBnxos_api\fP Proxy, e.g.:
  101663. .INDENT 0.0
  101664. .INDENT 3.5
  101665. .sp
  101666. .nf
  101667. .ft C
  101668. salt\-call \-\-local nxos_api.show \(aqshow lldp neighbors\(aq raw_text
  101669. # The command above is available when running in a regular Minion where Salt is installed
  101670. salt \(aq*\(aq nxos_api.show \(aqshow version\(aq raw_text=False
  101671. .ft P
  101672. .fi
  101673. .UNINDENT
  101674. .UNINDENT
  101675. .sp
  101676. \fBNOTE:\fP
  101677. .INDENT 0.0
  101678. .INDENT 3.5
  101679. Remember that the above applies only when not running in a \fBnxos_api\fP Proxy
  101680. Minion. If you want to use the \fBnxos_api Proxy\fP,
  101681. please follow the documentation notes for a proper setup.
  101682. .UNINDENT
  101683. .UNINDENT
  101684. .INDENT 0.0
  101685. .TP
  101686. .B salt.modules.nxos_api.config(commands=None, config_file=None, template_engine=u\(aqjinja\(aq, context=None, defaults=None, saltenv=u\(aqbase\(aq, **kwargs)
  101687. Configures the Nexus switch with the specified commands.
  101688. .sp
  101689. This method is used to send configuration commands to the switch. It
  101690. will take either a string or a list and prepend the necessary commands
  101691. to put the session into config mode.
  101692. .sp
  101693. \fBWARNING:\fP
  101694. .INDENT 7.0
  101695. .INDENT 3.5
  101696. All the commands will be applied directly into the running\-config.
  101697. .UNINDENT
  101698. .UNINDENT
  101699. .INDENT 7.0
  101700. .TP
  101701. .B config_file
  101702. The source file with the configuration commands to be sent to the
  101703. device.
  101704. .sp
  101705. The file can also be a template that can be rendered using the template
  101706. engine of choice.
  101707. .sp
  101708. This can be specified using the absolute path to the file, or using one
  101709. of the following URL schemes:
  101710. .INDENT 7.0
  101711. .IP \(bu 2
  101712. \fBsalt://\fP, to fetch the file from the Salt fileserver.
  101713. .IP \(bu 2
  101714. \fBhttp://\fP or \fBhttps://\fP
  101715. .IP \(bu 2
  101716. \fBftp://\fP
  101717. .IP \(bu 2
  101718. \fBs3://\fP
  101719. .IP \(bu 2
  101720. \fBswift://\fP
  101721. .UNINDENT
  101722. .TP
  101723. .B commands
  101724. The commands to send to the switch in config mode. If the commands
  101725. argument is a string it will be cast to a list.
  101726. The list of commands will also be prepended with the necessary commands
  101727. to put the session in config mode.
  101728. .sp
  101729. \fBNOTE:\fP
  101730. .INDENT 7.0
  101731. .INDENT 3.5
  101732. This argument is ignored when \fBconfig_file\fP is specified.
  101733. .UNINDENT
  101734. .UNINDENT
  101735. .TP
  101736. .B template_engine: \fBjinja\fP
  101737. The template engine to use when rendering the source file. Default:
  101738. \fBjinja\fP\&. To simply fetch the file without attempting to render, set
  101739. this argument to \fBNone\fP\&.
  101740. .TP
  101741. .B context
  101742. Variables to add to the template context.
  101743. .TP
  101744. .B defaults
  101745. Default values of the context_dict.
  101746. .TP
  101747. .B transport: \fBhttps\fP
  101748. Specifies the type of connection transport to use. Valid values for the
  101749. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101750. .TP
  101751. .B host: \fBlocalhost\fP
  101752. The IP address or DNS host name of the connection device.
  101753. .TP
  101754. .B username: \fBadmin\fP
  101755. The username to pass to the device to authenticate the NX\-API connection.
  101756. .TP
  101757. .B password
  101758. The password to pass to the device to authenticate the NX\-API connection.
  101759. .TP
  101760. .B port
  101761. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101762. not specified, the default value is automatically determined by the
  101763. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101764. .TP
  101765. .B timeout: \fB60\fP
  101766. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101767. .TP
  101768. .B verify: \fBTrue\fP
  101769. Either a boolean, in which case it controls whether we verify the NX\-API
  101770. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101771. to use. Defaults to \fBTrue\fP\&.
  101772. .UNINDENT
  101773. .sp
  101774. CLI Example:
  101775. .INDENT 7.0
  101776. .INDENT 3.5
  101777. .sp
  101778. .nf
  101779. .ft C
  101780. salt \(aq*\(aq nxos_api.config commands="[\(aqspanning\-tree mode mstp\(aq]"
  101781. salt \(aq*\(aq nxos_api.config config_file=salt://config.txt
  101782. salt \(aq*\(aq nxos_api.config config_file=https://bit.ly/2LGLcDy context="{\(aqservers\(aq: [\(aq1.2.3.4\(aq]}"
  101783. .ft P
  101784. .fi
  101785. .UNINDENT
  101786. .UNINDENT
  101787. .UNINDENT
  101788. .INDENT 0.0
  101789. .TP
  101790. .B salt.modules.nxos_api.rpc(commands, method=u\(aqcli\(aq, **kwargs)
  101791. Execute an arbitrary RPC request via the Nexus API.
  101792. .INDENT 7.0
  101793. .TP
  101794. .B commands
  101795. The commands to be executed.
  101796. .TP
  101797. .B method: \fBcli\fP
  101798. The type of the response, i.e., raw text (\fBcli_ascii\fP) or structured
  101799. document (\fBcli\fP). Defaults to \fBcli\fP (structured data).
  101800. .TP
  101801. .B transport: \fBhttps\fP
  101802. Specifies the type of connection transport to use. Valid values for the
  101803. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101804. .TP
  101805. .B host: \fBlocalhost\fP
  101806. The IP address or DNS host name of the connection device.
  101807. .TP
  101808. .B username: \fBadmin\fP
  101809. The username to pass to the device to authenticate the NX\-API connection.
  101810. .TP
  101811. .B password
  101812. The password to pass to the device to authenticate the NX\-API connection.
  101813. .TP
  101814. .B port
  101815. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101816. not specified, the default value is automatically determined by the
  101817. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101818. .TP
  101819. .B timeout: \fB60\fP
  101820. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101821. .TP
  101822. .B verify: \fBTrue\fP
  101823. Either a boolean, in which case it controls whether we verify the NX\-API
  101824. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101825. to use. Defaults to \fBTrue\fP\&.
  101826. .UNINDENT
  101827. .sp
  101828. CLI Example:
  101829. .INDENT 7.0
  101830. .INDENT 3.5
  101831. .sp
  101832. .nf
  101833. .ft C
  101834. salt\-call \-\-local nxps_api.rpc \(aqshow version\(aq
  101835. .ft P
  101836. .fi
  101837. .UNINDENT
  101838. .UNINDENT
  101839. .UNINDENT
  101840. .INDENT 0.0
  101841. .TP
  101842. .B salt.modules.nxos_api.show(commands, raw_text=True, **kwargs)
  101843. Execute one or more show (non\-configuration) commands.
  101844. .INDENT 7.0
  101845. .TP
  101846. .B commands
  101847. The commands to be executed.
  101848. .TP
  101849. .B raw_text: \fBTrue\fP
  101850. Whether to return raw text or structured data.
  101851. .TP
  101852. .B transport: \fBhttps\fP
  101853. Specifies the type of connection transport to use. Valid values for the
  101854. connection are \fBhttp\fP, and \fBhttps\fP\&.
  101855. .TP
  101856. .B host: \fBlocalhost\fP
  101857. The IP address or DNS host name of the connection device.
  101858. .TP
  101859. .B username: \fBadmin\fP
  101860. The username to pass to the device to authenticate the NX\-API connection.
  101861. .TP
  101862. .B password
  101863. The password to pass to the device to authenticate the NX\-API connection.
  101864. .TP
  101865. .B port
  101866. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  101867. not specified, the default value is automatically determined by the
  101868. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  101869. .TP
  101870. .B timeout: \fB60\fP
  101871. Time in seconds to wait for the device to respond. Default: 60 seconds.
  101872. .TP
  101873. .B verify: \fBTrue\fP
  101874. Either a boolean, in which case it controls whether we verify the NX\-API
  101875. TLS certificate, or a string, in which case it must be a path to a CA bundle
  101876. to use. Defaults to \fBTrue\fP\&.
  101877. .UNINDENT
  101878. .sp
  101879. CLI Example:
  101880. .INDENT 7.0
  101881. .INDENT 3.5
  101882. .sp
  101883. .nf
  101884. .ft C
  101885. salt\-call \-\-local nxos_api.show \(aqshow version\(aq
  101886. salt \(aq*\(aq nxos_api.show \(aqshow bgp sessions\(aq \(aqshow processes\(aq raw_text=False
  101887. salt \(aqregular\-minion\(aq nxos_api.show \(aqshow interfaces\(aq host=sw01.example.com username=test password=test
  101888. .ft P
  101889. .fi
  101890. .UNINDENT
  101891. .UNINDENT
  101892. .UNINDENT
  101893. .SS salt.modules.nxos_upgrade module
  101894. .sp
  101895. Execution module to upgrade Cisco NX\-OS Switches.
  101896. .sp
  101897. New in version xxxx.xx.x.
  101898. .INDENT 0.0
  101899. .TP
  101900. .B This module supports execution using a Proxy Minion or Native Minion:
  101901. .INDENT 7.0
  101902. .IP 1. 3
  101903. Proxy Minion: Connect over SSH or NX\-API HTTP(S).
  101904. See \fBsalt.proxy.nxos\fP for proxy minion setup details.
  101905. .IP 2. 3
  101906. Native Minion: Connect over NX\-API Unix Domain Socket (UDS).
  101907. Install the minion inside the GuestShell running on the NX\-OS device.
  101908. .UNINDENT
  101909. .UNINDENT
  101910. .INDENT 0.0
  101911. .TP
  101912. .B maturity
  101913. new
  101914. .TP
  101915. .B platform
  101916. nxos
  101917. .TP
  101918. .B codeauthor
  101919. Michael G Wiebe
  101920. .UNINDENT
  101921. .sp
  101922. \fBNOTE:\fP
  101923. .INDENT 0.0
  101924. .INDENT 3.5
  101925. To use this module over remote NX\-API the feature must be enabled on the
  101926. NX\-OS device by executing \fBfeature nxapi\fP in configuration mode.
  101927. .sp
  101928. This is not required for NX\-API over UDS.
  101929. .sp
  101930. Configuration example:
  101931. .INDENT 0.0
  101932. .INDENT 3.5
  101933. .sp
  101934. .nf
  101935. .ft C
  101936. switch# conf t
  101937. switch(config)# feature nxapi
  101938. .ft P
  101939. .fi
  101940. .UNINDENT
  101941. .UNINDENT
  101942. .sp
  101943. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  101944. .sp
  101945. Output example:
  101946. .INDENT 0.0
  101947. .INDENT 3.5
  101948. .sp
  101949. .nf
  101950. .ft C
  101951. switch# show nxapi
  101952. nxapi enabled
  101953. HTTPS Listen on port 443
  101954. .ft P
  101955. .fi
  101956. .UNINDENT
  101957. .UNINDENT
  101958. .UNINDENT
  101959. .UNINDENT
  101960. .INDENT 0.0
  101961. .TP
  101962. .B salt.modules.nxos_upgrade.check_upgrade_impact(system_image, kickstart_image=None, issu=True, **kwargs)
  101963. Display upgrade impact information without actually upgrading the device.
  101964. .INDENT 7.0
  101965. .TP
  101966. .B system_image (Mandatory Option)
  101967. Path on bootflash: to system image upgrade file.
  101968. .TP
  101969. .B kickstart_image
  101970. Path on bootflash: to kickstart image upgrade file.
  101971. (Not required if using combined system/kickstart image file)
  101972. Default: None
  101973. .TP
  101974. .B issu
  101975. In Service Software Upgrade (non\-disruptive). When True,
  101976. the upgrade will abort if issu is not possible.
  101977. When False: Force (disruptive) Upgrade/Downgrade.
  101978. Default: True
  101979. .TP
  101980. .B timeout
  101981. Timeout in seconds for long running \(aqinstall all\(aq impact command.
  101982. Default: 900
  101983. .TP
  101984. .B error_pattern
  101985. Use the option to pass in a regular expression to search for in the
  101986. output of the \(aqinstall all impact\(aq command that indicates an error
  101987. has occurred. This option is only used when proxy minion connection
  101988. type is ssh and otherwise ignored.
  101989. .UNINDENT
  101990. .INDENT 7.0
  101991. .INDENT 3.5
  101992. .sp
  101993. .nf
  101994. .ft C
  101995. salt \(aqn9k\(aq nxos.check_upgrade_impact system_image=nxos.9.2.1.bin
  101996. salt \(aqn7k\(aq nxos.check_upgrade_impact system_image=n7000\-s2\-dk9.8.1.1.bin \e
  101997. kickstart_image=n7000\-s2\-kickstart.8.1.1.bin issu=False
  101998. .ft P
  101999. .fi
  102000. .UNINDENT
  102001. .UNINDENT
  102002. .UNINDENT
  102003. .INDENT 0.0
  102004. .TP
  102005. .B salt.modules.nxos_upgrade.upgrade(system_image, kickstart_image=None, issu=True, **kwargs)
  102006. Upgrade NX\-OS switch.
  102007. .INDENT 7.0
  102008. .TP
  102009. .B system_image (Mandatory Option)
  102010. Path on bootflash: to system image upgrade file.
  102011. .TP
  102012. .B kickstart_image
  102013. Path on bootflash: to kickstart image upgrade file.
  102014. (Not required if using combined system/kickstart image file)
  102015. Default: None
  102016. .TP
  102017. .B issu
  102018. Set this option to True when an In Service Software Upgrade or
  102019. non\-disruptive upgrade is required. The upgrade will abort if issu is
  102020. not possible.
  102021. Default: True
  102022. .TP
  102023. .B timeout
  102024. Timeout in seconds for long running \(aqinstall all\(aq upgrade command.
  102025. Default: 900
  102026. .TP
  102027. .B error_pattern
  102028. Use the option to pass in a regular expression to search for in the
  102029. output of the \(aqinstall all upgrade command that indicates an error
  102030. has occurred. This option is only used when proxy minion connection
  102031. type is ssh and otherwise ignored.
  102032. .UNINDENT
  102033. .INDENT 7.0
  102034. .INDENT 3.5
  102035. .sp
  102036. .nf
  102037. .ft C
  102038. salt \(aqn9k\(aq nxos.upgrade system_image=nxos.9.2.1.bin
  102039. salt \(aqn7k\(aq nxos.upgrade system_image=n7000\-s2\-dk9.8.1.1.bin \e
  102040. kickstart_image=n7000\-s2\-kickstart.8.1.1.bin issu=False
  102041. .ft P
  102042. .fi
  102043. .UNINDENT
  102044. .UNINDENT
  102045. .UNINDENT
  102046. .SS salt.modules.openscap module
  102047. .sp
  102048. Module for OpenSCAP Management
  102049. .INDENT 0.0
  102050. .TP
  102051. .B salt.modules.openscap.xccdf(params)
  102052. Run \fBoscap xccdf\fP commands on minions.
  102053. It uses cp.push_dir to upload the generated files to the salt master
  102054. in the master\(aqs minion files cachedir
  102055. (defaults to \fB/var/cache/salt/master/minions/minion\-id/files\fP)
  102056. .sp
  102057. It needs \fBfile_recv\fP set to \fBTrue\fP in the master configuration file.
  102058. .sp
  102059. CLI Example:
  102060. .INDENT 7.0
  102061. .INDENT 3.5
  102062. .sp
  102063. .nf
  102064. .ft C
  102065. salt \(aq*\(aq openscap.xccdf "eval \-\-profile Default /usr/share/openscap/scap\-yast2sec\-xccdf.xml"
  102066. .ft P
  102067. .fi
  102068. .UNINDENT
  102069. .UNINDENT
  102070. .UNINDENT
  102071. .SS salt.modules.philips_hue module
  102072. .sp
  102073. Philips HUE lamps module for proxy.
  102074. .sp
  102075. New in version 2015.8.3.
  102076. .SS salt.modules.powerpath
  102077. .sp
  102078. powerpath support.
  102079. .sp
  102080. Assumes RedHat
  102081. .INDENT 0.0
  102082. .TP
  102083. .B salt.modules.powerpath.add_license(key)
  102084. Add a license
  102085. .UNINDENT
  102086. .INDENT 0.0
  102087. .TP
  102088. .B salt.modules.powerpath.has_powerpath()
  102089. .UNINDENT
  102090. .INDENT 0.0
  102091. .TP
  102092. .B salt.modules.powerpath.list_licenses()
  102093. returns a list of applied powerpath license keys
  102094. .UNINDENT
  102095. .INDENT 0.0
  102096. .TP
  102097. .B salt.modules.powerpath.remove_license(key)
  102098. Remove a license
  102099. .UNINDENT
  102100. .SS salt.modules.purefa
  102101. .sp
  102102. Management of Pure Storage FlashArray
  102103. .SS Installation Prerequisites
  102104. .INDENT 0.0
  102105. .IP \(bu 2
  102106. You will need the \fBpurestorage\fP python package in your python installation
  102107. path that is running salt.
  102108. .INDENT 2.0
  102109. .INDENT 3.5
  102110. .sp
  102111. .nf
  102112. .ft C
  102113. pip install purestorage
  102114. .ft P
  102115. .fi
  102116. .UNINDENT
  102117. .UNINDENT
  102118. .IP \(bu 2
  102119. Configure Pure Storage FlashArray authentication. Use one of the following
  102120. three methods.
  102121. .INDENT 2.0
  102122. .IP 1. 3
  102123. From the minion config
  102124. .UNINDENT
  102125. .INDENT 2.0
  102126. .INDENT 3.5
  102127. .sp
  102128. .nf
  102129. .ft C
  102130. pure_tags:
  102131. fa:
  102132. san_ip: management vip or hostname for the FlashArray
  102133. api_token: A valid api token for the FlashArray being managed
  102134. .ft P
  102135. .fi
  102136. .UNINDENT
  102137. .UNINDENT
  102138. .INDENT 2.0
  102139. .IP 2. 3
  102140. From environment (PUREFA_IP and PUREFA_API)
  102141. .IP 3. 3
  102142. From the pillar (PUREFA_IP and PUREFA_API)
  102143. .UNINDENT
  102144. .UNINDENT
  102145. .INDENT 0.0
  102146. .TP
  102147. .B maintainer
  102148. Simon Dodsley (\fI\%simon@purestorage.com\fP)
  102149. .TP
  102150. .B maturity
  102151. new
  102152. .TP
  102153. .B requires
  102154. purestorage
  102155. .TP
  102156. .B platform
  102157. all
  102158. .UNINDENT
  102159. .sp
  102160. New in version 2018.3.0.
  102161. .INDENT 0.0
  102162. .TP
  102163. .B salt.modules.purefa.hg_create(name, host=None, volume=None)
  102164. Create a hostgroup on a Pure Storage FlashArray.
  102165. .sp
  102166. Will return False if hostgroup already exists, or if
  102167. named host or volume do not exist.
  102168. .sp
  102169. New in version 2018.3.0.
  102170. .INDENT 7.0
  102171. .TP
  102172. .B name
  102173. string
  102174. name of hostgroup (truncated to 63 characters)
  102175. .TP
  102176. .B host
  102177. string
  102178. name of host to add to hostgroup
  102179. .TP
  102180. .B volume
  102181. string
  102182. name of volume to add to hostgroup
  102183. .UNINDENT
  102184. .sp
  102185. CLI Example:
  102186. .INDENT 7.0
  102187. .INDENT 3.5
  102188. .sp
  102189. .nf
  102190. .ft C
  102191. salt \(aq*\(aq purefa.hg_create foo host=bar volume=vol
  102192. .ft P
  102193. .fi
  102194. .UNINDENT
  102195. .UNINDENT
  102196. .UNINDENT
  102197. .INDENT 0.0
  102198. .TP
  102199. .B salt.modules.purefa.hg_delete(name)
  102200. Delete a hostgroup on a Pure Storage FlashArray (removes all volumes and hosts).
  102201. .sp
  102202. Will return False is hostgroup is already in a deleted state.
  102203. .sp
  102204. New in version 2018.3.0.
  102205. .INDENT 7.0
  102206. .TP
  102207. .B name
  102208. string
  102209. name of hostgroup
  102210. .UNINDENT
  102211. .sp
  102212. CLI Example:
  102213. .INDENT 7.0
  102214. .INDENT 3.5
  102215. .sp
  102216. .nf
  102217. .ft C
  102218. salt \(aq*\(aq purefa.hg_delete foo
  102219. .ft P
  102220. .fi
  102221. .UNINDENT
  102222. .UNINDENT
  102223. .UNINDENT
  102224. .INDENT 0.0
  102225. .TP
  102226. .B salt.modules.purefa.hg_remove(name, volume=None, host=None)
  102227. Remove a host and/or volume from a hostgroup on a Pure Storage FlashArray.
  102228. .sp
  102229. Will return False is hostgroup does not exist, or named host or volume are
  102230. not in the hostgroup.
  102231. .sp
  102232. New in version 2018.3.0.
  102233. .INDENT 7.0
  102234. .TP
  102235. .B name
  102236. string
  102237. name of hostgroup
  102238. .TP
  102239. .B volume
  102240. string
  102241. name of volume to remove from hostgroup
  102242. .TP
  102243. .B host
  102244. string
  102245. name of host to remove from hostgroup
  102246. .UNINDENT
  102247. .sp
  102248. CLI Example:
  102249. .INDENT 7.0
  102250. .INDENT 3.5
  102251. .sp
  102252. .nf
  102253. .ft C
  102254. salt \(aq*\(aq purefa.hg_remove foo volume=test host=bar
  102255. .ft P
  102256. .fi
  102257. .UNINDENT
  102258. .UNINDENT
  102259. .UNINDENT
  102260. .INDENT 0.0
  102261. .TP
  102262. .B salt.modules.purefa.hg_update(name, host=None, volume=None)
  102263. Adds entries to a hostgroup on a Pure Storage FlashArray.
  102264. .sp
  102265. Will return False is hostgroup doesn\(aqt exist, or host
  102266. or volume do not exist.
  102267. .sp
  102268. New in version 2018.3.0.
  102269. .INDENT 7.0
  102270. .TP
  102271. .B name
  102272. string
  102273. name of hostgroup
  102274. .TP
  102275. .B host
  102276. string
  102277. name of host to add to hostgroup
  102278. .TP
  102279. .B volume
  102280. string
  102281. name of volume to add to hostgroup
  102282. .UNINDENT
  102283. .sp
  102284. CLI Example:
  102285. .INDENT 7.0
  102286. .INDENT 3.5
  102287. .sp
  102288. .nf
  102289. .ft C
  102290. salt \(aq*\(aq purefa.hg_update foo host=bar volume=vol
  102291. .ft P
  102292. .fi
  102293. .UNINDENT
  102294. .UNINDENT
  102295. .UNINDENT
  102296. .INDENT 0.0
  102297. .TP
  102298. .B salt.modules.purefa.host_create(name, iqn=None, wwn=None)
  102299. Add a host on a Pure Storage FlashArray.
  102300. .sp
  102301. Will return False if host already exists, or the iSCSI or
  102302. Fibre Channel parameters are not in a valid format.
  102303. See Pure Storage FlashArray documentation.
  102304. .sp
  102305. New in version 2018.3.0.
  102306. .INDENT 7.0
  102307. .TP
  102308. .B name
  102309. string
  102310. name of host (truncated to 63 characters)
  102311. .TP
  102312. .B iqn
  102313. string
  102314. iSCSI IQN of host
  102315. .TP
  102316. .B wwn
  102317. string
  102318. Fibre Channel WWN of host
  102319. .UNINDENT
  102320. .sp
  102321. CLI Example:
  102322. .INDENT 7.0
  102323. .INDENT 3.5
  102324. .sp
  102325. .nf
  102326. .ft C
  102327. salt \(aq*\(aq purefa.host_create foo iqn=\(aq<Valid iSCSI IQN>\(aq wwn=\(aq<Valid WWN>\(aq
  102328. .ft P
  102329. .fi
  102330. .UNINDENT
  102331. .UNINDENT
  102332. .UNINDENT
  102333. .INDENT 0.0
  102334. .TP
  102335. .B salt.modules.purefa.host_delete(name)
  102336. Delete a host on a Pure Storage FlashArray (detaches all volumes).
  102337. .sp
  102338. Will return False if the host doesn\(aqt exist.
  102339. .sp
  102340. New in version 2018.3.0.
  102341. .INDENT 7.0
  102342. .TP
  102343. .B name
  102344. string
  102345. name of host
  102346. .UNINDENT
  102347. .sp
  102348. CLI Example:
  102349. .INDENT 7.0
  102350. .INDENT 3.5
  102351. .sp
  102352. .nf
  102353. .ft C
  102354. salt \(aq*\(aq purefa.host_delete foo
  102355. .ft P
  102356. .fi
  102357. .UNINDENT
  102358. .UNINDENT
  102359. .UNINDENT
  102360. .INDENT 0.0
  102361. .TP
  102362. .B salt.modules.purefa.host_update(name, iqn=None, wwn=None)
  102363. Update a hosts port definitions on a Pure Storage FlashArray.
  102364. .sp
  102365. Will return False if new port definitions are already in use
  102366. by another host, or are not in a valid format.
  102367. See Pure Storage FlashArray documentation.
  102368. .sp
  102369. New in version 2018.3.0.
  102370. .INDENT 7.0
  102371. .TP
  102372. .B name
  102373. string
  102374. name of host
  102375. .TP
  102376. .B iqn
  102377. string
  102378. Additional iSCSI IQN of host
  102379. .TP
  102380. .B wwn
  102381. string
  102382. Additional Fibre Channel WWN of host
  102383. .UNINDENT
  102384. .sp
  102385. CLI Example:
  102386. .INDENT 7.0
  102387. .INDENT 3.5
  102388. .sp
  102389. .nf
  102390. .ft C
  102391. salt \(aq*\(aq purefa.host_update foo iqn=\(aq<Valid iSCSI IQN>\(aq wwn=\(aq<Valid WWN>\(aq
  102392. .ft P
  102393. .fi
  102394. .UNINDENT
  102395. .UNINDENT
  102396. .UNINDENT
  102397. .INDENT 0.0
  102398. .TP
  102399. .B salt.modules.purefa.pg_create(name, hostgroup=None, host=None, volume=None, enabled=True)
  102400. Create a protection group on a Pure Storage FlashArray.
  102401. .INDENT 7.0
  102402. .TP
  102403. .B Will return False is the following cases:
  102404. .INDENT 7.0
  102405. .IP \(bu 2
  102406. Protection Grop already exists
  102407. .IP \(bu 2
  102408. Protection Group in a deleted state
  102409. .IP \(bu 2
  102410. More than one type is specified \- protection groups are for only
  102411. hostgroups, hosts or volumes
  102412. .IP \(bu 2
  102413. Named type for protection group does not exist
  102414. .UNINDENT
  102415. .UNINDENT
  102416. .sp
  102417. New in version 2018.3.0.
  102418. .INDENT 7.0
  102419. .TP
  102420. .B name
  102421. string
  102422. name of protection group
  102423. .TP
  102424. .B hostgroup
  102425. string
  102426. name of hostgroup to add to protection group
  102427. .TP
  102428. .B host
  102429. string
  102430. name of host to add to protection group
  102431. .TP
  102432. .B volume
  102433. string
  102434. name of volume to add to protection group
  102435. .UNINDENT
  102436. .sp
  102437. CLI Example:
  102438. .INDENT 7.0
  102439. .INDENT 3.5
  102440. .sp
  102441. .nf
  102442. .ft C
  102443. salt \(aq*\(aq purefa.pg_create foo [hostgroup=foo | host=bar | volume=vol] enabled=[true | false]
  102444. .ft P
  102445. .fi
  102446. .UNINDENT
  102447. .UNINDENT
  102448. .UNINDENT
  102449. .INDENT 0.0
  102450. .TP
  102451. .B salt.modules.purefa.pg_delete(name, eradicate=False)
  102452. Delete a protecton group on a Pure Storage FlashArray.
  102453. .sp
  102454. Will return False if protection group is already in a deleted state.
  102455. .sp
  102456. New in version 2018.3.0.
  102457. .INDENT 7.0
  102458. .TP
  102459. .B name
  102460. string
  102461. name of protection group
  102462. .UNINDENT
  102463. .sp
  102464. CLI Example:
  102465. .INDENT 7.0
  102466. .INDENT 3.5
  102467. .sp
  102468. .nf
  102469. .ft C
  102470. salt \(aq*\(aq purefa.pg_delete foo
  102471. .ft P
  102472. .fi
  102473. .UNINDENT
  102474. .UNINDENT
  102475. .UNINDENT
  102476. .INDENT 0.0
  102477. .TP
  102478. .B salt.modules.purefa.pg_eradicate(name)
  102479. Eradicate a deleted protecton group on a Pure Storage FlashArray.
  102480. .sp
  102481. Will return False if protection group is not in a deleted state.
  102482. .sp
  102483. New in version 2018.3.0.
  102484. .INDENT 7.0
  102485. .TP
  102486. .B name
  102487. string
  102488. name of protection group
  102489. .UNINDENT
  102490. .sp
  102491. CLI Example:
  102492. .INDENT 7.0
  102493. .INDENT 3.5
  102494. .sp
  102495. .nf
  102496. .ft C
  102497. salt \(aq*\(aq purefa.pg_eradicate foo
  102498. .ft P
  102499. .fi
  102500. .UNINDENT
  102501. .UNINDENT
  102502. .UNINDENT
  102503. .INDENT 0.0
  102504. .TP
  102505. .B salt.modules.purefa.pg_remove(name, hostgroup=None, host=None, volume=None)
  102506. Remove a hostgroup, host or volume from a protection group on a Pure Storage FlashArray.
  102507. .INDENT 7.0
  102508. .TP
  102509. .B Will return False in the following cases:
  102510. .INDENT 7.0
  102511. .IP \(bu 2
  102512. Protection group does not exist
  102513. .IP \(bu 2
  102514. Specified type is not currently associated with the protection group
  102515. .UNINDENT
  102516. .UNINDENT
  102517. .sp
  102518. New in version 2018.3.0.
  102519. .INDENT 7.0
  102520. .TP
  102521. .B name
  102522. string
  102523. name of hostgroup
  102524. .TP
  102525. .B hostgroup
  102526. string
  102527. name of hostgroup to remove from protection group
  102528. .TP
  102529. .B host
  102530. string
  102531. name of host to remove from hostgroup
  102532. .TP
  102533. .B volume
  102534. string
  102535. name of volume to remove from hostgroup
  102536. .UNINDENT
  102537. .sp
  102538. CLI Example:
  102539. .INDENT 7.0
  102540. .INDENT 3.5
  102541. .sp
  102542. .nf
  102543. .ft C
  102544. salt \(aq*\(aq purefa.pg_remove foo [hostgroup=bar | host=test | volume=bar]
  102545. .ft P
  102546. .fi
  102547. .UNINDENT
  102548. .UNINDENT
  102549. .UNINDENT
  102550. .INDENT 0.0
  102551. .TP
  102552. .B salt.modules.purefa.pg_update(name, hostgroup=None, host=None, volume=None)
  102553. Update a protection group on a Pure Storage FlashArray.
  102554. .INDENT 7.0
  102555. .TP
  102556. .B Will return False in the following cases:
  102557. .INDENT 7.0
  102558. .IP \(bu 2
  102559. Protection group does not exist
  102560. .IP \(bu 2
  102561. Incorrect type selected for current protection group type
  102562. .IP \(bu 2
  102563. Specified type does not exist
  102564. .UNINDENT
  102565. .UNINDENT
  102566. .sp
  102567. New in version 2018.3.0.
  102568. .INDENT 7.0
  102569. .TP
  102570. .B name
  102571. string
  102572. name of protection group
  102573. .TP
  102574. .B hostgroup
  102575. string
  102576. name of hostgroup to add to protection group
  102577. .TP
  102578. .B host
  102579. string
  102580. name of host to add to protection group
  102581. .TP
  102582. .B volume
  102583. string
  102584. name of volume to add to protection group
  102585. .UNINDENT
  102586. .sp
  102587. CLI Example:
  102588. .INDENT 7.0
  102589. .INDENT 3.5
  102590. .sp
  102591. .nf
  102592. .ft C
  102593. salt \(aq*\(aq purefa.pg_update foo [hostgroup=foo | host=bar | volume=vol]
  102594. .ft P
  102595. .fi
  102596. .UNINDENT
  102597. .UNINDENT
  102598. .UNINDENT
  102599. .INDENT 0.0
  102600. .TP
  102601. .B salt.modules.purefa.snap_create(name, suffix=None)
  102602. Create a volume snapshot on a Pure Storage FlashArray.
  102603. .sp
  102604. Will return False is volume selected to snap does not exist.
  102605. .sp
  102606. New in version 2018.3.0.
  102607. .INDENT 7.0
  102608. .TP
  102609. .B name
  102610. string
  102611. name of volume to snapshot
  102612. .TP
  102613. .B suffix
  102614. string
  102615. if specificed forces snapshot name suffix. If not specified defaults to timestamp.
  102616. .UNINDENT
  102617. .sp
  102618. CLI Example:
  102619. .INDENT 7.0
  102620. .INDENT 3.5
  102621. .sp
  102622. .nf
  102623. .ft C
  102624. salt \(aq*\(aq purefa.snap_create foo
  102625. salt \(aq*\(aq purefa.snap_create foo suffix=bar
  102626. .ft P
  102627. .fi
  102628. .UNINDENT
  102629. .UNINDENT
  102630. .UNINDENT
  102631. .INDENT 0.0
  102632. .TP
  102633. .B salt.modules.purefa.snap_delete(name, suffix=None, eradicate=False)
  102634. Delete a volume snapshot on a Pure Storage FlashArray.
  102635. .sp
  102636. Will return False if selected snapshot does not exist.
  102637. .sp
  102638. New in version 2018.3.0.
  102639. .INDENT 7.0
  102640. .TP
  102641. .B name
  102642. string
  102643. name of volume
  102644. .TP
  102645. .B suffix
  102646. string
  102647. name of snapshot
  102648. .TP
  102649. .B eradicate
  102650. boolean
  102651. Eradicate snapshot after deletion if True. Default is False
  102652. .UNINDENT
  102653. .sp
  102654. CLI Example:
  102655. .INDENT 7.0
  102656. .INDENT 3.5
  102657. .sp
  102658. .nf
  102659. .ft C
  102660. salt \(aq*\(aq purefa.snap_delete foo suffix=snap eradicate=True
  102661. .ft P
  102662. .fi
  102663. .UNINDENT
  102664. .UNINDENT
  102665. .UNINDENT
  102666. .INDENT 0.0
  102667. .TP
  102668. .B salt.modules.purefa.snap_eradicate(name, suffix=None)
  102669. Eradicate a deleted volume snapshot on a Pure Storage FlashArray.
  102670. .sp
  102671. Will return False if snapshot is not in a deleted state.
  102672. .sp
  102673. New in version 2018.3.0.
  102674. .INDENT 7.0
  102675. .TP
  102676. .B name
  102677. string
  102678. name of volume
  102679. .TP
  102680. .B suffix
  102681. string
  102682. name of snapshot
  102683. .UNINDENT
  102684. .sp
  102685. CLI Example:
  102686. .INDENT 7.0
  102687. .INDENT 3.5
  102688. .sp
  102689. .nf
  102690. .ft C
  102691. salt \(aq*\(aq purefa.snap_eradicate foo suffix=snap
  102692. .ft P
  102693. .fi
  102694. .UNINDENT
  102695. .UNINDENT
  102696. .UNINDENT
  102697. .INDENT 0.0
  102698. .TP
  102699. .B salt.modules.purefa.snap_volume_create(name, target, overwrite=False)
  102700. Create R/W volume from snapshot on a Pure Storage FlashArray.
  102701. .sp
  102702. Will return False if target volume already exists and
  102703. overwrite is not specified, or selected snapshot doesn\(aqt exist.
  102704. .sp
  102705. New in version 2018.3.0.
  102706. .INDENT 7.0
  102707. .TP
  102708. .B name
  102709. string
  102710. name of volume snapshot
  102711. .TP
  102712. .B target
  102713. string
  102714. name of clone volume
  102715. .TP
  102716. .B overwrite
  102717. boolean
  102718. overwrite clone if already exists (default: False)
  102719. .UNINDENT
  102720. .sp
  102721. CLI Example:
  102722. .INDENT 7.0
  102723. .INDENT 3.5
  102724. .sp
  102725. .nf
  102726. .ft C
  102727. salt \(aq*\(aq purefa.snap_volume_create foo.bar clone overwrite=True
  102728. .ft P
  102729. .fi
  102730. .UNINDENT
  102731. .UNINDENT
  102732. .UNINDENT
  102733. .INDENT 0.0
  102734. .TP
  102735. .B salt.modules.purefa.volume_attach(name, host)
  102736. Attach a volume to a host on a Pure Storage FlashArray.
  102737. .sp
  102738. Host and volume must exist or else will return False.
  102739. .sp
  102740. New in version 2018.3.0.
  102741. .INDENT 7.0
  102742. .TP
  102743. .B name
  102744. string
  102745. name of volume
  102746. .TP
  102747. .B host
  102748. string
  102749. name of host
  102750. .UNINDENT
  102751. .sp
  102752. CLI Example:
  102753. .INDENT 7.0
  102754. .INDENT 3.5
  102755. .sp
  102756. .nf
  102757. .ft C
  102758. salt \(aq*\(aq purefa.volume_attach foo bar
  102759. .ft P
  102760. .fi
  102761. .UNINDENT
  102762. .UNINDENT
  102763. .UNINDENT
  102764. .INDENT 0.0
  102765. .TP
  102766. .B salt.modules.purefa.volume_clone(name, target, overwrite=False)
  102767. Clone an existing volume on a Pure Storage FlashArray.
  102768. .sp
  102769. Will return False if source volume doesn\(aqt exist, or
  102770. target volume already exists and overwrite not specified.
  102771. .sp
  102772. New in version 2018.3.0.
  102773. .INDENT 7.0
  102774. .TP
  102775. .B name
  102776. string
  102777. name of volume
  102778. .TP
  102779. .B target
  102780. string
  102781. name of clone volume
  102782. .TP
  102783. .B overwrite
  102784. boolean
  102785. overwrite clone if already exists (default: False)
  102786. .UNINDENT
  102787. .sp
  102788. CLI Example:
  102789. .INDENT 7.0
  102790. .INDENT 3.5
  102791. .sp
  102792. .nf
  102793. .ft C
  102794. salt \(aq*\(aq purefa.volume_clone foo bar overwrite=True
  102795. .ft P
  102796. .fi
  102797. .UNINDENT
  102798. .UNINDENT
  102799. .UNINDENT
  102800. .INDENT 0.0
  102801. .TP
  102802. .B salt.modules.purefa.volume_create(name, size=None)
  102803. Create a volume on a Pure Storage FlashArray.
  102804. .sp
  102805. Will return False if volume already exists.
  102806. .sp
  102807. New in version 2018.3.0.
  102808. .INDENT 7.0
  102809. .TP
  102810. .B name
  102811. string
  102812. name of volume (truncated to 63 characters)
  102813. .TP
  102814. .B size
  102815. string
  102816. if specificed capacity of volume. If not specified default to 1G.
  102817. Refer to Pure Storage documentation for formatting rules.
  102818. .UNINDENT
  102819. .sp
  102820. CLI Example:
  102821. .INDENT 7.0
  102822. .INDENT 3.5
  102823. .sp
  102824. .nf
  102825. .ft C
  102826. salt \(aq*\(aq purefa.volume_create foo
  102827. salt \(aq*\(aq purefa.volume_create foo size=10T
  102828. .ft P
  102829. .fi
  102830. .UNINDENT
  102831. .UNINDENT
  102832. .UNINDENT
  102833. .INDENT 0.0
  102834. .TP
  102835. .B salt.modules.purefa.volume_delete(name, eradicate=False)
  102836. Delete a volume on a Pure Storage FlashArray.
  102837. .sp
  102838. Will return False if volume doesn\(aqt exist is already in a deleted state.
  102839. .sp
  102840. New in version 2018.3.0.
  102841. .INDENT 7.0
  102842. .TP
  102843. .B name
  102844. string
  102845. name of volume
  102846. .TP
  102847. .B eradicate
  102848. boolean
  102849. Eradicate volume after deletion if True. Default is False
  102850. .UNINDENT
  102851. .sp
  102852. CLI Example:
  102853. .INDENT 7.0
  102854. .INDENT 3.5
  102855. .sp
  102856. .nf
  102857. .ft C
  102858. salt \(aq*\(aq purefa.volume_delete foo eradicate=True
  102859. .ft P
  102860. .fi
  102861. .UNINDENT
  102862. .UNINDENT
  102863. .UNINDENT
  102864. .INDENT 0.0
  102865. .TP
  102866. .B salt.modules.purefa.volume_detach(name, host)
  102867. Detach a volume from a host on a Pure Storage FlashArray.
  102868. .sp
  102869. Will return False if either host or volume do not exist, or
  102870. if selected volume isn\(aqt already connected to the host.
  102871. .sp
  102872. New in version 2018.3.0.
  102873. .INDENT 7.0
  102874. .TP
  102875. .B name
  102876. string
  102877. name of volume
  102878. .TP
  102879. .B host
  102880. string
  102881. name of host
  102882. .UNINDENT
  102883. .sp
  102884. CLI Example:
  102885. .INDENT 7.0
  102886. .INDENT 3.5
  102887. .sp
  102888. .nf
  102889. .ft C
  102890. salt \(aq*\(aq purefa.volume_detach foo bar
  102891. .ft P
  102892. .fi
  102893. .UNINDENT
  102894. .UNINDENT
  102895. .UNINDENT
  102896. .INDENT 0.0
  102897. .TP
  102898. .B salt.modules.purefa.volume_eradicate(name)
  102899. Eradicate a deleted volume on a Pure Storage FlashArray.
  102900. .sp
  102901. Will return False is volume is not in a deleted state.
  102902. .sp
  102903. New in version 2018.3.0.
  102904. .INDENT 7.0
  102905. .TP
  102906. .B name
  102907. string
  102908. name of volume
  102909. .UNINDENT
  102910. .sp
  102911. CLI Example:
  102912. .INDENT 7.0
  102913. .INDENT 3.5
  102914. .sp
  102915. .nf
  102916. .ft C
  102917. salt \(aq*\(aq purefa.volume_eradicate foo
  102918. .ft P
  102919. .fi
  102920. .UNINDENT
  102921. .UNINDENT
  102922. .UNINDENT
  102923. .INDENT 0.0
  102924. .TP
  102925. .B salt.modules.purefa.volume_extend(name, size)
  102926. Extend an existing volume on a Pure Storage FlashArray.
  102927. .sp
  102928. Will return False if new size is less than or equal to existing size.
  102929. .sp
  102930. New in version 2018.3.0.
  102931. .INDENT 7.0
  102932. .TP
  102933. .B name
  102934. string
  102935. name of volume
  102936. .TP
  102937. .B size
  102938. string
  102939. New capacity of volume.
  102940. Refer to Pure Storage documentation for formatting rules.
  102941. .UNINDENT
  102942. .sp
  102943. CLI Example:
  102944. .INDENT 7.0
  102945. .INDENT 3.5
  102946. .sp
  102947. .nf
  102948. .ft C
  102949. salt \(aq*\(aq purefa.volume_extend foo 10T
  102950. .ft P
  102951. .fi
  102952. .UNINDENT
  102953. .UNINDENT
  102954. .UNINDENT
  102955. .SS salt.modules.purefb
  102956. .sp
  102957. Management of Pure Storage FlashBlade
  102958. .SS Installation Prerequisites
  102959. .INDENT 0.0
  102960. .IP \(bu 2
  102961. You will need the \fBpurity_fb\fP python package in your python installation
  102962. path that is running salt.
  102963. .INDENT 2.0
  102964. .INDENT 3.5
  102965. .sp
  102966. .nf
  102967. .ft C
  102968. pip install purity_fb
  102969. .ft P
  102970. .fi
  102971. .UNINDENT
  102972. .UNINDENT
  102973. .IP \(bu 2
  102974. Configure Pure Storage FlashBlade authentication. Use one of the following
  102975. three methods.
  102976. .INDENT 2.0
  102977. .IP 1. 3
  102978. From the minion config
  102979. .UNINDENT
  102980. .INDENT 2.0
  102981. .INDENT 3.5
  102982. .sp
  102983. .nf
  102984. .ft C
  102985. pure_tags:
  102986. fb:
  102987. san_ip: management vip or hostname for the FlashBlade
  102988. api_token: A valid api token for the FlashBlade being managed
  102989. .ft P
  102990. .fi
  102991. .UNINDENT
  102992. .UNINDENT
  102993. .INDENT 2.0
  102994. .IP 2. 3
  102995. From environment (PUREFB_IP and PUREFB_API)
  102996. .IP 3. 3
  102997. From the pillar (PUREFB_IP and PUREFB_API)
  102998. .UNINDENT
  102999. .UNINDENT
  103000. .INDENT 0.0
  103001. .TP
  103002. .B maintainer
  103003. Simon Dodsley (\fI\%simon@purestorage.com\fP)
  103004. .TP
  103005. .B maturity
  103006. new
  103007. .TP
  103008. .B requires
  103009. purity_fb
  103010. .TP
  103011. .B platform
  103012. all
  103013. .UNINDENT
  103014. .sp
  103015. New in version 2019.2.0.
  103016. .INDENT 0.0
  103017. .TP
  103018. .B salt.modules.purefb.fs_create(name, size=None, proto=u\(aqNFS\(aq, nfs_rules=u\(aq*(rw, no_root_squash)\(aq, snapshot=False)
  103019. Create a filesystem on a Pure Storage FlashBlade.
  103020. .sp
  103021. Will return False if filesystem already exists.
  103022. .sp
  103023. New in version 2019.2.0.
  103024. .INDENT 7.0
  103025. .TP
  103026. .B name
  103027. string
  103028. name of filesystem (truncated to 63 characters)
  103029. .TP
  103030. .B proto
  103031. string
  103032. (Optional) Sharing protocol (NFS, CIFS or HTTP). If not specified default is NFS
  103033. .TP
  103034. .B snapshot: boolean
  103035. (Optional) Are snapshots enabled on the filesystem. Default is False
  103036. .TP
  103037. .B nfs_rules
  103038. string
  103039. (Optional) export rules for NFS. If not specified default is
  103040. \fB*(rw,no_root_squash)\fP\&. Refer to Pure Storage documentation for
  103041. formatting rules.
  103042. .TP
  103043. .B size
  103044. string
  103045. if specified capacity of filesystem. If not specified default to 32G.
  103046. Refer to Pure Storage documentation for formatting rules.
  103047. .UNINDENT
  103048. .sp
  103049. CLI Example:
  103050. .INDENT 7.0
  103051. .INDENT 3.5
  103052. .sp
  103053. .nf
  103054. .ft C
  103055. salt \(aq*\(aq purefb.fs_create foo proto=CIFS
  103056. salt \(aq*\(aq purefb.fs_create foo size=10T
  103057. .ft P
  103058. .fi
  103059. .UNINDENT
  103060. .UNINDENT
  103061. .UNINDENT
  103062. .INDENT 0.0
  103063. .TP
  103064. .B salt.modules.purefb.fs_delete(name, eradicate=False)
  103065. Delete a share on a Pure Storage FlashBlade.
  103066. .sp
  103067. Will return False if filesystem doesn\(aqt exist or is already in a deleted state.
  103068. .sp
  103069. New in version 2019.2.0.
  103070. .INDENT 7.0
  103071. .TP
  103072. .B name
  103073. string
  103074. name of filesystem
  103075. .TP
  103076. .B eradicate
  103077. boolean
  103078. (Optional) Eradicate filesystem after deletion if True. Default is False
  103079. .UNINDENT
  103080. .sp
  103081. CLI Example:
  103082. .INDENT 7.0
  103083. .INDENT 3.5
  103084. .sp
  103085. .nf
  103086. .ft C
  103087. salt \(aq*\(aq purefb.fs_delete foo eradicate=True
  103088. .ft P
  103089. .fi
  103090. .UNINDENT
  103091. .UNINDENT
  103092. .UNINDENT
  103093. .INDENT 0.0
  103094. .TP
  103095. .B salt.modules.purefb.fs_eradicate(name)
  103096. Eradicate a deleted filesystem on a Pure Storage FlashBlade.
  103097. .sp
  103098. Will return False is filesystem is not in a deleted state.
  103099. .sp
  103100. New in version 2019.2.0.
  103101. .INDENT 7.0
  103102. .TP
  103103. .B name
  103104. string
  103105. name of filesystem
  103106. .UNINDENT
  103107. .sp
  103108. CLI Example:
  103109. .INDENT 7.0
  103110. .INDENT 3.5
  103111. .sp
  103112. .nf
  103113. .ft C
  103114. salt \(aq*\(aq purefb.fs_eradicate foo
  103115. .ft P
  103116. .fi
  103117. .UNINDENT
  103118. .UNINDENT
  103119. .UNINDENT
  103120. .INDENT 0.0
  103121. .TP
  103122. .B salt.modules.purefb.fs_extend(name, size)
  103123. Resize an existing filesystem on a Pure Storage FlashBlade.
  103124. .sp
  103125. Will return False if new size is less than or equal to existing size.
  103126. .sp
  103127. New in version 2019.2.0.
  103128. .INDENT 7.0
  103129. .TP
  103130. .B name
  103131. string
  103132. name of filesystem
  103133. .TP
  103134. .B size
  103135. string
  103136. New capacity of filesystem.
  103137. Refer to Pure Storage documentation for formatting rules.
  103138. .UNINDENT
  103139. .sp
  103140. CLI Example:
  103141. .INDENT 7.0
  103142. .INDENT 3.5
  103143. .sp
  103144. .nf
  103145. .ft C
  103146. salt \(aq*\(aq purefb.fs_extend foo 10T
  103147. .ft P
  103148. .fi
  103149. .UNINDENT
  103150. .UNINDENT
  103151. .UNINDENT
  103152. .INDENT 0.0
  103153. .TP
  103154. .B salt.modules.purefb.fs_update(name, rules, snapshot=False)
  103155. Update filesystem on a Pure Storage FlashBlade.
  103156. .sp
  103157. Allows for change of NFS export rules and enabling/disabled
  103158. of snapshotting capability.
  103159. .sp
  103160. New in version 2019.2.0.
  103161. .INDENT 7.0
  103162. .TP
  103163. .B name
  103164. string
  103165. name of filesystem
  103166. .TP
  103167. .B rules
  103168. string
  103169. NFS export rules for filesystem
  103170. Refer to Pure Storage documentation for formatting rules.
  103171. .TP
  103172. .B snapshot: boolean
  103173. (Optional) Enable/Disable snapshots on the filesystem. Default is False
  103174. .UNINDENT
  103175. .sp
  103176. CLI Example:
  103177. .INDENT 7.0
  103178. .INDENT 3.5
  103179. .sp
  103180. .nf
  103181. .ft C
  103182. salt \(aq*\(aq purefb.fs_nfs_update foo rules=\(aq10.234.112.23(ro), 10.234.112.24(rw)\(aq snapshot=True
  103183. .ft P
  103184. .fi
  103185. .UNINDENT
  103186. .UNINDENT
  103187. .UNINDENT
  103188. .INDENT 0.0
  103189. .TP
  103190. .B salt.modules.purefb.snap_create(name, suffix=None)
  103191. Create a filesystem snapshot on a Pure Storage FlashBlade.
  103192. .sp
  103193. Will return False if filesystem selected to snap does not exist.
  103194. .sp
  103195. New in version 2019.2.0.
  103196. .INDENT 7.0
  103197. .TP
  103198. .B name
  103199. string
  103200. name of filesystem to snapshot
  103201. .TP
  103202. .B suffix
  103203. string
  103204. if specificed forces snapshot name suffix. If not specified defaults to timestamp.
  103205. .UNINDENT
  103206. .sp
  103207. CLI Example:
  103208. .INDENT 7.0
  103209. .INDENT 3.5
  103210. .sp
  103211. .nf
  103212. .ft C
  103213. salt \(aq*\(aq purefb.snap_create foo
  103214. salt \(aq*\(aq purefb.snap_create foo suffix=bar
  103215. .ft P
  103216. .fi
  103217. .UNINDENT
  103218. .UNINDENT
  103219. .UNINDENT
  103220. .INDENT 0.0
  103221. .TP
  103222. .B salt.modules.purefb.snap_delete(name, suffix=None, eradicate=False)
  103223. Delete a filesystem snapshot on a Pure Storage FlashBlade.
  103224. .sp
  103225. Will return False if selected snapshot does not exist.
  103226. .sp
  103227. New in version 2019.2.0.
  103228. .INDENT 7.0
  103229. .TP
  103230. .B name
  103231. string
  103232. name of filesystem
  103233. .TP
  103234. .B suffix
  103235. string
  103236. name of snapshot
  103237. .TP
  103238. .B eradicate
  103239. boolean
  103240. Eradicate snapshot after deletion if True. Default is False
  103241. .UNINDENT
  103242. .sp
  103243. CLI Example:
  103244. .INDENT 7.0
  103245. .INDENT 3.5
  103246. .sp
  103247. .nf
  103248. .ft C
  103249. salt \(aq*\(aq purefb.snap_delete foo suffix=snap eradicate=True
  103250. .ft P
  103251. .fi
  103252. .UNINDENT
  103253. .UNINDENT
  103254. .UNINDENT
  103255. .INDENT 0.0
  103256. .TP
  103257. .B salt.modules.purefb.snap_eradicate(name, suffix=None)
  103258. Eradicate a deleted filesystem snapshot on a Pure Storage FlashBlade.
  103259. .sp
  103260. Will return False if snapshot is not in a deleted state.
  103261. .sp
  103262. New in version 2019.2.0.
  103263. .INDENT 7.0
  103264. .TP
  103265. .B name
  103266. string
  103267. name of filesystem
  103268. .TP
  103269. .B suffix
  103270. string
  103271. name of snapshot
  103272. .UNINDENT
  103273. .sp
  103274. CLI Example:
  103275. .INDENT 7.0
  103276. .INDENT 3.5
  103277. .sp
  103278. .nf
  103279. .ft C
  103280. salt \(aq*\(aq purefb.snap_eradicate foo suffix=snap
  103281. .ft P
  103282. .fi
  103283. .UNINDENT
  103284. .UNINDENT
  103285. .UNINDENT
  103286. .SS salt.modules.pushbullet module
  103287. .sp
  103288. Module for sending messages to Pushbullet (\fI\%https://www.pushbullet.com\fP)
  103289. .sp
  103290. New in version 2015.8.0.
  103291. .sp
  103292. Requires an \fBapi_key\fP in \fB/etc/salt/minion\fP:
  103293. .INDENT 0.0
  103294. .INDENT 3.5
  103295. .sp
  103296. .nf
  103297. .ft C
  103298. pushbullet:
  103299. api_key: \(aqABC123abc123ABC123abc123ABC123ab\(aq
  103300. .ft P
  103301. .fi
  103302. .UNINDENT
  103303. .UNINDENT
  103304. .sp
  103305. For example:
  103306. .INDENT 0.0
  103307. .INDENT 3.5
  103308. .sp
  103309. .nf
  103310. .ft C
  103311. pushbullet:
  103312. device: "Chrome"
  103313. title: "Example push message"
  103314. body: "Message body."
  103315. .ft P
  103316. .fi
  103317. .UNINDENT
  103318. .UNINDENT
  103319. .INDENT 0.0
  103320. .TP
  103321. .B salt.modules.pushbullet.push_note(device=None, title=None, body=None)
  103322. Pushing a text note.
  103323. .INDENT 7.0
  103324. .TP
  103325. .B Parameters
  103326. .INDENT 7.0
  103327. .IP \(bu 2
  103328. \fBdevice\fP \-\- Pushbullet target device
  103329. .IP \(bu 2
  103330. \fBtitle\fP \-\- Note title
  103331. .IP \(bu 2
  103332. \fBbody\fP \-\- Note body
  103333. .UNINDENT
  103334. .TP
  103335. .B Returns
  103336. Boolean if message was sent successfully.
  103337. .UNINDENT
  103338. .sp
  103339. CLI Example:
  103340. .INDENT 7.0
  103341. .INDENT 3.5
  103342. .sp
  103343. .nf
  103344. .ft C
  103345. salt "*" pushbullet.push_note device="Chrome" title="Example title" body="Example body."
  103346. .ft P
  103347. .fi
  103348. .UNINDENT
  103349. .UNINDENT
  103350. .UNINDENT
  103351. .SS salt.modules.pushover_notify
  103352. .sp
  103353. Module for sending messages to Pushover (\fI\%https://www.pushover.net\fP)
  103354. .sp
  103355. New in version 2016.3.0.
  103356. .INDENT 0.0
  103357. .TP
  103358. .B configuration
  103359. This module can be used by either passing an api key and version
  103360. directly or by specifying both in a configuration profile in the salt
  103361. master/minion config.
  103362. .sp
  103363. For example:
  103364. .INDENT 7.0
  103365. .INDENT 3.5
  103366. .sp
  103367. .nf
  103368. .ft C
  103369. pushover:
  103370. token: abAHuZyCLtdH8P4zhmFZmgUHUsv1ei8
  103371. .ft P
  103372. .fi
  103373. .UNINDENT
  103374. .UNINDENT
  103375. .UNINDENT
  103376. .INDENT 0.0
  103377. .TP
  103378. .B salt.modules.pushover_notify.post_message(user=None, device=None, message=None, title=None, priority=None, expire=None, retry=None, sound=None, api_version=1, token=None)
  103379. Send a message to a Pushover user or group.
  103380. .INDENT 7.0
  103381. .TP
  103382. .B Parameters
  103383. .INDENT 7.0
  103384. .IP \(bu 2
  103385. \fBuser\fP \-\- The user or group to send to, must be key of user or group not email address.
  103386. .IP \(bu 2
  103387. \fBmessage\fP \-\- The message to send to the PushOver user or group.
  103388. .IP \(bu 2
  103389. \fBtitle\fP \-\- Specify who the message is from.
  103390. .IP \(bu 2
  103391. \fBpriority\fP \-\- The priority of the message, defaults to 0.
  103392. .IP \(bu 2
  103393. \fBexpire\fP \-\- The message should expire after N number of seconds.
  103394. .IP \(bu 2
  103395. \fBretry\fP \-\- The number of times the message should be retried.
  103396. .IP \(bu 2
  103397. \fBsound\fP \-\- The sound to associate with the message.
  103398. .IP \(bu 2
  103399. \fBapi_version\fP \-\- The PushOver API version, if not specified in the configuration.
  103400. .IP \(bu 2
  103401. \fBtoken\fP \-\- The PushOver token, if not specified in the configuration.
  103402. .UNINDENT
  103403. .TP
  103404. .B Returns
  103405. Boolean if message was sent successfully.
  103406. .UNINDENT
  103407. .sp
  103408. CLI Example:
  103409. .INDENT 7.0
  103410. .INDENT 3.5
  103411. .sp
  103412. .nf
  103413. .ft C
  103414. salt \(aq*\(aq pushover.post_message user=\(aqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\(aq title=\(aqMessage from Salt\(aq message=\(aqBuild is done\(aq
  103415. salt \(aq*\(aq pushover.post_message user=\(aqxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\(aq title=\(aqMessage from Salt\(aq message=\(aqBuild is done\(aq priority=\(aq2\(aq expire=\(aq720\(aq retry=\(aq5\(aq
  103416. .ft P
  103417. .fi
  103418. .UNINDENT
  103419. .UNINDENT
  103420. .UNINDENT
  103421. .SS salt.modules.pyenv
  103422. .sp
  103423. Manage python installations with pyenv.
  103424. .sp
  103425. \fBNOTE:\fP
  103426. .INDENT 0.0
  103427. .INDENT 3.5
  103428. Git needs to be installed and available via PATH if pyenv is to be
  103429. installed automatically by the module.
  103430. .UNINDENT
  103431. .UNINDENT
  103432. .sp
  103433. New in version v2014.04.
  103434. .INDENT 0.0
  103435. .TP
  103436. .B salt.modules.pyenv.default(python=None, runas=None)
  103437. Returns or sets the currently defined default python.
  103438. .INDENT 7.0
  103439. .TP
  103440. .B python=None
  103441. The version to set as the default. Should match one of the versions
  103442. listed by \fI\%pyenv.versions\fP\&. Leave
  103443. blank to return the current default.
  103444. .UNINDENT
  103445. .sp
  103446. CLI Example:
  103447. .INDENT 7.0
  103448. .INDENT 3.5
  103449. .sp
  103450. .nf
  103451. .ft C
  103452. salt \(aq*\(aq pyenv.default
  103453. salt \(aq*\(aq pyenv.default 2.0.0\-p0
  103454. .ft P
  103455. .fi
  103456. .UNINDENT
  103457. .UNINDENT
  103458. .UNINDENT
  103459. .INDENT 0.0
  103460. .TP
  103461. .B salt.modules.pyenv.do(cmdline=None, runas=None)
  103462. Execute a python command with pyenv\(aqs shims from the user or the system.
  103463. .sp
  103464. CLI Example:
  103465. .INDENT 7.0
  103466. .INDENT 3.5
  103467. .sp
  103468. .nf
  103469. .ft C
  103470. salt \(aq*\(aq pyenv.do \(aqgem list bundler\(aq
  103471. salt \(aq*\(aq pyenv.do \(aqgem list bundler\(aq deploy
  103472. .ft P
  103473. .fi
  103474. .UNINDENT
  103475. .UNINDENT
  103476. .UNINDENT
  103477. .INDENT 0.0
  103478. .TP
  103479. .B salt.modules.pyenv.do_with_python(python, cmdline, runas=None)
  103480. Execute a python command with pyenv\(aqs shims using a specific python version.
  103481. .sp
  103482. CLI Example:
  103483. .INDENT 7.0
  103484. .INDENT 3.5
  103485. .sp
  103486. .nf
  103487. .ft C
  103488. salt \(aq*\(aq pyenv.do_with_python 2.0.0\-p0 \(aqgem list bundler\(aq
  103489. salt \(aq*\(aq pyenv.do_with_python 2.0.0\-p0 \(aqgem list bundler\(aq deploy
  103490. .ft P
  103491. .fi
  103492. .UNINDENT
  103493. .UNINDENT
  103494. .UNINDENT
  103495. .INDENT 0.0
  103496. .TP
  103497. .B salt.modules.pyenv.install(runas=None, path=None)
  103498. Install pyenv systemwide
  103499. .sp
  103500. CLI Example:
  103501. .INDENT 7.0
  103502. .INDENT 3.5
  103503. .sp
  103504. .nf
  103505. .ft C
  103506. salt \(aq*\(aq pyenv.install
  103507. .ft P
  103508. .fi
  103509. .UNINDENT
  103510. .UNINDENT
  103511. .UNINDENT
  103512. .INDENT 0.0
  103513. .TP
  103514. .B salt.modules.pyenv.install_python(python, runas=None)
  103515. Install a python implementation.
  103516. .INDENT 7.0
  103517. .TP
  103518. .B python
  103519. The version of python to install, should match one of the
  103520. versions listed by pyenv.list
  103521. .UNINDENT
  103522. .sp
  103523. CLI Example:
  103524. .INDENT 7.0
  103525. .INDENT 3.5
  103526. .sp
  103527. .nf
  103528. .ft C
  103529. salt \(aq*\(aq pyenv.install_python 2.0.0\-p0
  103530. .ft P
  103531. .fi
  103532. .UNINDENT
  103533. .UNINDENT
  103534. .UNINDENT
  103535. .INDENT 0.0
  103536. .TP
  103537. .B salt.modules.pyenv.is_installed(runas=None)
  103538. Check if pyenv is installed.
  103539. .sp
  103540. CLI Example:
  103541. .INDENT 7.0
  103542. .INDENT 3.5
  103543. .sp
  103544. .nf
  103545. .ft C
  103546. salt \(aq*\(aq pyenv.is_installed
  103547. .ft P
  103548. .fi
  103549. .UNINDENT
  103550. .UNINDENT
  103551. .UNINDENT
  103552. .INDENT 0.0
  103553. .TP
  103554. .B salt.modules.pyenv.list_(runas=None)
  103555. List the installable versions of python.
  103556. .sp
  103557. CLI Example:
  103558. .INDENT 7.0
  103559. .INDENT 3.5
  103560. .sp
  103561. .nf
  103562. .ft C
  103563. salt \(aq*\(aq pyenv.list
  103564. .ft P
  103565. .fi
  103566. .UNINDENT
  103567. .UNINDENT
  103568. .UNINDENT
  103569. .INDENT 0.0
  103570. .TP
  103571. .B salt.modules.pyenv.rehash(runas=None)
  103572. Run pyenv rehash to update the installed shims.
  103573. .sp
  103574. CLI Example:
  103575. .INDENT 7.0
  103576. .INDENT 3.5
  103577. .sp
  103578. .nf
  103579. .ft C
  103580. salt \(aq*\(aq pyenv.rehash
  103581. .ft P
  103582. .fi
  103583. .UNINDENT
  103584. .UNINDENT
  103585. .UNINDENT
  103586. .INDENT 0.0
  103587. .TP
  103588. .B salt.modules.pyenv.uninstall_python(python, runas=None)
  103589. Uninstall a python implementation.
  103590. .INDENT 7.0
  103591. .TP
  103592. .B python
  103593. The version of python to uninstall. Should match one of the versions
  103594. listed by \fI\%pyenv.versions\fP
  103595. .UNINDENT
  103596. .sp
  103597. CLI Example:
  103598. .INDENT 7.0
  103599. .INDENT 3.5
  103600. .sp
  103601. .nf
  103602. .ft C
  103603. salt \(aq*\(aq pyenv.uninstall_python 2.0.0\-p0
  103604. .ft P
  103605. .fi
  103606. .UNINDENT
  103607. .UNINDENT
  103608. .UNINDENT
  103609. .INDENT 0.0
  103610. .TP
  103611. .B salt.modules.pyenv.update(runas=None, path=None)
  103612. Updates the current versions of pyenv and python\-Build
  103613. .sp
  103614. CLI Example:
  103615. .INDENT 7.0
  103616. .INDENT 3.5
  103617. .sp
  103618. .nf
  103619. .ft C
  103620. salt \(aq*\(aq pyenv.update
  103621. .ft P
  103622. .fi
  103623. .UNINDENT
  103624. .UNINDENT
  103625. .UNINDENT
  103626. .INDENT 0.0
  103627. .TP
  103628. .B salt.modules.pyenv.versions(runas=None)
  103629. List the installed versions of python.
  103630. .sp
  103631. CLI Example:
  103632. .INDENT 7.0
  103633. .INDENT 3.5
  103634. .sp
  103635. .nf
  103636. .ft C
  103637. salt \(aq*\(aq pyenv.versions
  103638. .ft P
  103639. .fi
  103640. .UNINDENT
  103641. .UNINDENT
  103642. .UNINDENT
  103643. .SS salt.modules.rest_sample_utils module
  103644. .sp
  103645. Utility functions for the rest_sample
  103646. .INDENT 0.0
  103647. .TP
  103648. .B salt.modules.rest_sample_utils.fix_outage()
  103649. "Fix" the outage
  103650. .sp
  103651. CLI Example:
  103652. .INDENT 7.0
  103653. .INDENT 3.5
  103654. .sp
  103655. .nf
  103656. .ft C
  103657. salt \(aqrest\-sample\-proxy\(aq rest_sample.fix_outage
  103658. .ft P
  103659. .fi
  103660. .UNINDENT
  103661. .UNINDENT
  103662. .UNINDENT
  103663. .INDENT 0.0
  103664. .TP
  103665. .B salt.modules.rest_sample_utils.get_test_string()
  103666. Helper function to test cross\-calling to the __proxy__ dunder.
  103667. .sp
  103668. CLI Example:
  103669. .INDENT 7.0
  103670. .INDENT 3.5
  103671. .sp
  103672. .nf
  103673. .ft C
  103674. salt \(aqrest\-sample\-proxy\(aq rest_sample.get_test_string
  103675. .ft P
  103676. .fi
  103677. .UNINDENT
  103678. .UNINDENT
  103679. .UNINDENT
  103680. .SS salt.modules.s3
  103681. .sp
  103682. Connection module for Amazon S3
  103683. .INDENT 0.0
  103684. .TP
  103685. .B configuration
  103686. This module accepts explicit s3 credentials but can also utilize
  103687. IAM roles assigned to the instance through Instance Profiles. Dynamic
  103688. credentials are then automatically obtained from AWS API and no further
  103689. configuration is necessary. More Information available at:
  103690. .INDENT 7.0
  103691. .INDENT 3.5
  103692. \fI\%http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam\-roles\-for\-amazon\-ec2.html\fP
  103693. .UNINDENT
  103694. .UNINDENT
  103695. .sp
  103696. If IAM roles are not used you need to specify them either in a pillar or
  103697. in the minion\(aqs config file:
  103698. .INDENT 7.0
  103699. .INDENT 3.5
  103700. .sp
  103701. .nf
  103702. .ft C
  103703. s3.keyid: GKTADJGHEIQSXMKKRBJ08H
  103704. s3.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  103705. .ft P
  103706. .fi
  103707. .UNINDENT
  103708. .UNINDENT
  103709. .sp
  103710. \fBWARNING:\fP
  103711. .INDENT 7.0
  103712. .INDENT 3.5
  103713. This is literally the pillar key \fBs3.keyid\fP or the config option \fBs3.keyid\fP,
  103714. not:
  103715. .INDENT 0.0
  103716. .INDENT 3.5
  103717. .sp
  103718. .nf
  103719. .ft C
  103720. s3:
  103721. keyid: blah
  103722. .ft P
  103723. .fi
  103724. .UNINDENT
  103725. .UNINDENT
  103726. .UNINDENT
  103727. .UNINDENT
  103728. .sp
  103729. A \fBservice_url\fP may also be specified in the configuration:
  103730. .INDENT 7.0
  103731. .INDENT 3.5
  103732. .sp
  103733. .nf
  103734. .ft C
  103735. s3.service_url: s3.amazonaws.com
  103736. .ft P
  103737. .fi
  103738. .UNINDENT
  103739. .UNINDENT
  103740. .sp
  103741. A \fBrole_arn\fP may also be specified in the configuration:
  103742. .INDENT 7.0
  103743. .INDENT 3.5
  103744. .sp
  103745. .nf
  103746. .ft C
  103747. s3.role_arn: arn:aws:iam::111111111111:role/my\-role\-to\-assume
  103748. .ft P
  103749. .fi
  103750. .UNINDENT
  103751. .UNINDENT
  103752. .sp
  103753. If a \fBservice_url\fP is not specified, the default is \fBs3.amazonaws.com\fP\&. This
  103754. may appear in various documentation as an "endpoint". A comprehensive list
  103755. for Amazon S3 may be found at:
  103756. .INDENT 7.0
  103757. .INDENT 3.5
  103758. \fI\%http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region\fP
  103759. .UNINDENT
  103760. .UNINDENT
  103761. .sp
  103762. The \fBservice_url\fP will form the basis for the final endpoint that is used to
  103763. query the service.
  103764. .sp
  103765. Path style can be enabled:
  103766. .INDENT 7.0
  103767. .INDENT 3.5
  103768. .sp
  103769. .nf
  103770. .ft C
  103771. s3.path_style: True
  103772. .ft P
  103773. .fi
  103774. .UNINDENT
  103775. .UNINDENT
  103776. .sp
  103777. This can be useful if you need to use Salt with a proxy for a S3 compatible storage.
  103778. .sp
  103779. You can use either HTTPS protocol or HTTP protocol:
  103780. .INDENT 7.0
  103781. .INDENT 3.5
  103782. .sp
  103783. .nf
  103784. .ft C
  103785. s3.https_enable: True
  103786. .ft P
  103787. .fi
  103788. .UNINDENT
  103789. .UNINDENT
  103790. .sp
  103791. SSL verification may also be turned off in the configuration:
  103792. .INDENT 7.0
  103793. .INDENT 3.5
  103794. .sp
  103795. .nf
  103796. .ft C
  103797. s3.verify_ssl: False
  103798. .ft P
  103799. .fi
  103800. .UNINDENT
  103801. .UNINDENT
  103802. .sp
  103803. This is required if using S3 bucket names that contain a period, as
  103804. these will not match Amazon\(aqs S3 wildcard certificates. Certificate
  103805. verification is enabled by default.
  103806. .sp
  103807. AWS region may be specified in the configuration:
  103808. .INDENT 7.0
  103809. .INDENT 3.5
  103810. .sp
  103811. .nf
  103812. .ft C
  103813. s3.location: eu\-central\-1
  103814. .ft P
  103815. .fi
  103816. .UNINDENT
  103817. .UNINDENT
  103818. .sp
  103819. Default is \fBus\-east\-1\fP\&.
  103820. .sp
  103821. This module should be usable to query other S3\-like services, such as
  103822. Eucalyptus.
  103823. .UNINDENT
  103824. .INDENT 0.0
  103825. .TP
  103826. .B depends
  103827. requests
  103828. .UNINDENT
  103829. .INDENT 0.0
  103830. .TP
  103831. .B salt.modules.s3.delete(bucket, path=None, action=None, key=None, keyid=None, service_url=None, verify_ssl=None, kms_keyid=None, location=None, role_arn=None, path_style=None, https_enable=None)
  103832. Delete a bucket, or delete an object from a bucket.
  103833. .sp
  103834. CLI Example to delete a bucket:
  103835. .INDENT 7.0
  103836. .INDENT 3.5
  103837. .sp
  103838. .nf
  103839. .ft C
  103840. salt myminion s3.delete mybucket
  103841. .ft P
  103842. .fi
  103843. .UNINDENT
  103844. .UNINDENT
  103845. .sp
  103846. CLI Example to delete an object from a bucket:
  103847. .INDENT 7.0
  103848. .INDENT 3.5
  103849. .sp
  103850. .nf
  103851. .ft C
  103852. salt myminion s3.delete mybucket remoteobject
  103853. .ft P
  103854. .fi
  103855. .UNINDENT
  103856. .UNINDENT
  103857. .UNINDENT
  103858. .INDENT 0.0
  103859. .TP
  103860. .B salt.modules.s3.get(bucket=u\(aq\(aq, path=u\(aq\(aq, return_bin=False, action=None, local_file=None, key=None, keyid=None, service_url=None, verify_ssl=None, kms_keyid=None, location=None, role_arn=None, path_style=None, https_enable=None)
  103861. List the contents of a bucket, or return an object from a bucket. Set
  103862. return_bin to True in order to retrieve an object wholesale. Otherwise,
  103863. Salt will attempt to parse an XML response.
  103864. .sp
  103865. CLI Example to list buckets:
  103866. .INDENT 7.0
  103867. .INDENT 3.5
  103868. salt myminion s3.get
  103869. .UNINDENT
  103870. .UNINDENT
  103871. .sp
  103872. CLI Example to list the contents of a bucket:
  103873. .INDENT 7.0
  103874. .INDENT 3.5
  103875. salt myminion s3.get mybucket
  103876. .UNINDENT
  103877. .UNINDENT
  103878. .sp
  103879. CLI Example to return the binary contents of an object:
  103880. .INDENT 7.0
  103881. .INDENT 3.5
  103882. salt myminion s3.get mybucket myfile.png return_bin=True
  103883. .UNINDENT
  103884. .UNINDENT
  103885. .sp
  103886. CLI Example to save the binary contents of an object to a local file:
  103887. .INDENT 7.0
  103888. .INDENT 3.5
  103889. salt myminion s3.get mybucket myfile.png local_file=/tmp/myfile.png
  103890. .UNINDENT
  103891. .UNINDENT
  103892. .sp
  103893. It is also possible to perform an action on a bucket. Currently, S3
  103894. supports the following actions:
  103895. .INDENT 7.0
  103896. .INDENT 3.5
  103897. .sp
  103898. .nf
  103899. .ft C
  103900. acl
  103901. cors
  103902. lifecycle
  103903. policy
  103904. location
  103905. logging
  103906. notification
  103907. tagging
  103908. versions
  103909. requestPayment
  103910. versioning
  103911. website
  103912. .ft P
  103913. .fi
  103914. .UNINDENT
  103915. .UNINDENT
  103916. .sp
  103917. To perform an action on a bucket:
  103918. .INDENT 7.0
  103919. .INDENT 3.5
  103920. salt myminion s3.get mybucket myfile.png action=acl
  103921. .UNINDENT
  103922. .UNINDENT
  103923. .UNINDENT
  103924. .INDENT 0.0
  103925. .TP
  103926. .B salt.modules.s3.head(bucket, path=u\(aq\(aq, key=None, keyid=None, service_url=None, verify_ssl=None, kms_keyid=None, location=None, role_arn=None, path_style=None, https_enable=None)
  103927. Return the metadata for a bucket, or an object in a bucket.
  103928. .sp
  103929. CLI Examples:
  103930. .INDENT 7.0
  103931. .INDENT 3.5
  103932. salt myminion s3.head mybucket
  103933. salt myminion s3.head mybucket myfile.png
  103934. .UNINDENT
  103935. .UNINDENT
  103936. .UNINDENT
  103937. .INDENT 0.0
  103938. .TP
  103939. .B salt.modules.s3.put(bucket, path=None, return_bin=False, action=None, local_file=None, key=None, keyid=None, service_url=None, verify_ssl=None, kms_keyid=None, location=None, role_arn=None, path_style=None, https_enable=None)
  103940. Create a new bucket, or upload an object to a bucket.
  103941. .sp
  103942. CLI Example to create a bucket:
  103943. .INDENT 7.0
  103944. .INDENT 3.5
  103945. salt myminion s3.put mybucket
  103946. .UNINDENT
  103947. .UNINDENT
  103948. .sp
  103949. CLI Example to upload an object to a bucket:
  103950. .INDENT 7.0
  103951. .INDENT 3.5
  103952. salt myminion s3.put mybucket remotepath local_file=/path/to/file
  103953. .UNINDENT
  103954. .UNINDENT
  103955. .UNINDENT
  103956. .SS salt.modules.s6 module
  103957. .sp
  103958. s6 service module
  103959. .sp
  103960. This module is compatible with the \fBservice\fP states,
  103961. so it can be used to maintain services using the \fBprovider\fP argument:
  103962. .INDENT 0.0
  103963. .INDENT 3.5
  103964. .sp
  103965. .nf
  103966. .ft C
  103967. myservice:
  103968. service:
  103969. \- running
  103970. \- provider: s6
  103971. .ft P
  103972. .fi
  103973. .UNINDENT
  103974. .UNINDENT
  103975. .sp
  103976. Note that the \fBenabled\fP argument is not available with this provider.
  103977. .INDENT 0.0
  103978. .TP
  103979. .B codeauthor
  103980. Marek Skrobacki <\fI\%skrobul@skrobul.com\fP>
  103981. .UNINDENT
  103982. .INDENT 0.0
  103983. .TP
  103984. .B salt.modules.s6.available(name)
  103985. Returns \fBTrue\fP if the specified service is available, otherwise returns
  103986. \fBFalse\fP\&.
  103987. .sp
  103988. CLI Example:
  103989. .INDENT 7.0
  103990. .INDENT 3.5
  103991. .sp
  103992. .nf
  103993. .ft C
  103994. salt \(aq*\(aq s6.available foo
  103995. .ft P
  103996. .fi
  103997. .UNINDENT
  103998. .UNINDENT
  103999. .UNINDENT
  104000. .INDENT 0.0
  104001. .TP
  104002. .B salt.modules.s6.full_restart(name)
  104003. Calls s6.restart() function
  104004. .sp
  104005. CLI Example:
  104006. .INDENT 7.0
  104007. .INDENT 3.5
  104008. .sp
  104009. .nf
  104010. .ft C
  104011. salt \(aq*\(aq s6.full_restart <service name>
  104012. .ft P
  104013. .fi
  104014. .UNINDENT
  104015. .UNINDENT
  104016. .UNINDENT
  104017. .INDENT 0.0
  104018. .TP
  104019. .B salt.modules.s6.get_all()
  104020. Return a list of all available services
  104021. .sp
  104022. CLI Example:
  104023. .INDENT 7.0
  104024. .INDENT 3.5
  104025. .sp
  104026. .nf
  104027. .ft C
  104028. salt \(aq*\(aq s6.get_all
  104029. .ft P
  104030. .fi
  104031. .UNINDENT
  104032. .UNINDENT
  104033. .UNINDENT
  104034. .INDENT 0.0
  104035. .TP
  104036. .B salt.modules.s6.missing(name)
  104037. The inverse of s6.available.
  104038. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  104039. \fBFalse\fP\&.
  104040. .sp
  104041. CLI Example:
  104042. .INDENT 7.0
  104043. .INDENT 3.5
  104044. .sp
  104045. .nf
  104046. .ft C
  104047. salt \(aq*\(aq s6.missing foo
  104048. .ft P
  104049. .fi
  104050. .UNINDENT
  104051. .UNINDENT
  104052. .UNINDENT
  104053. .INDENT 0.0
  104054. .TP
  104055. .B salt.modules.s6.reload_(name)
  104056. Send a HUP to service via s6
  104057. .sp
  104058. CLI Example:
  104059. .INDENT 7.0
  104060. .INDENT 3.5
  104061. .sp
  104062. .nf
  104063. .ft C
  104064. salt \(aq*\(aq s6.reload <service name>
  104065. .ft P
  104066. .fi
  104067. .UNINDENT
  104068. .UNINDENT
  104069. .UNINDENT
  104070. .INDENT 0.0
  104071. .TP
  104072. .B salt.modules.s6.restart(name)
  104073. Restart service via s6. This will stop/start service
  104074. .sp
  104075. CLI Example:
  104076. .INDENT 7.0
  104077. .INDENT 3.5
  104078. .sp
  104079. .nf
  104080. .ft C
  104081. salt \(aq*\(aq s6.restart <service name>
  104082. .ft P
  104083. .fi
  104084. .UNINDENT
  104085. .UNINDENT
  104086. .UNINDENT
  104087. .INDENT 0.0
  104088. .TP
  104089. .B salt.modules.s6.start(name)
  104090. Starts service via s6
  104091. .sp
  104092. CLI Example:
  104093. .INDENT 7.0
  104094. .INDENT 3.5
  104095. .sp
  104096. .nf
  104097. .ft C
  104098. salt \(aq*\(aq s6.start <service name>
  104099. .ft P
  104100. .fi
  104101. .UNINDENT
  104102. .UNINDENT
  104103. .UNINDENT
  104104. .INDENT 0.0
  104105. .TP
  104106. .B salt.modules.s6.status(name, sig=None)
  104107. Return the status for a service via s6, return pid if running
  104108. .sp
  104109. CLI Example:
  104110. .INDENT 7.0
  104111. .INDENT 3.5
  104112. .sp
  104113. .nf
  104114. .ft C
  104115. salt \(aq*\(aq s6.status <service name>
  104116. .ft P
  104117. .fi
  104118. .UNINDENT
  104119. .UNINDENT
  104120. .UNINDENT
  104121. .INDENT 0.0
  104122. .TP
  104123. .B salt.modules.s6.stop(name)
  104124. Stops service via s6
  104125. .sp
  104126. CLI Example:
  104127. .INDENT 7.0
  104128. .INDENT 3.5
  104129. .sp
  104130. .nf
  104131. .ft C
  104132. salt \(aq*\(aq s6.stop <service name>
  104133. .ft P
  104134. .fi
  104135. .UNINDENT
  104136. .UNINDENT
  104137. .UNINDENT
  104138. .INDENT 0.0
  104139. .TP
  104140. .B salt.modules.s6.term(name)
  104141. Send a TERM to service via s6
  104142. .sp
  104143. CLI Example:
  104144. .INDENT 7.0
  104145. .INDENT 3.5
  104146. .sp
  104147. .nf
  104148. .ft C
  104149. salt \(aq*\(aq s6.term <service name>
  104150. .ft P
  104151. .fi
  104152. .UNINDENT
  104153. .UNINDENT
  104154. .UNINDENT
  104155. .SS salt.modules.salt_version
  104156. .sp
  104157. Access Salt\(aqs elemental release code\-names.
  104158. .sp
  104159. New in version 3000.
  104160. .sp
  104161. Salt\(aqs feature release schedule is based on the Periodic Table, as described
  104162. in the Version Numbers documentation.
  104163. .sp
  104164. When a feature was added (or removed) in a specific release, it can be
  104165. difficult to build out future\-proof functionality that is dependent on
  104166. a naming scheme that moves.
  104167. .sp
  104168. For example, a state syntax needs to change to support an option that will be
  104169. removed in the future, but there are many Minion versions in use across an
  104170. infrastructure. It would be handy to use some Jinja syntax to check for these
  104171. instances to perform one state syntax over another.
  104172. .sp
  104173. A simple example might be something like the following:
  104174. .INDENT 0.0
  104175. .INDENT 3.5
  104176. .sp
  104177. .nf
  104178. .ft C
  104179. {# a boolean check #}
  104180. {% set option_deprecated = salt[\(aqsalt_version.less_than\(aq]("Sodium") %}
  104181. {% if option_deprecated %}
  104182. <use old syntax>
  104183. {% else %}
  104184. <use new syntax>
  104185. {% endif %}
  104186. .ft P
  104187. .fi
  104188. .UNINDENT
  104189. .UNINDENT
  104190. .INDENT 0.0
  104191. .TP
  104192. .B salt.modules.salt_version.equal(name)
  104193. Returns a boolean (True) if the minion\(aqs current version
  104194. code name matches the named version.
  104195. .INDENT 7.0
  104196. .TP
  104197. .B name
  104198. The release code name to check the version against.
  104199. .UNINDENT
  104200. .sp
  104201. CLI Example:
  104202. .INDENT 7.0
  104203. .INDENT 3.5
  104204. .sp
  104205. .nf
  104206. .ft C
  104207. salt \(aq*\(aq salt_version.equal \(aqOxygen\(aq
  104208. .ft P
  104209. .fi
  104210. .UNINDENT
  104211. .UNINDENT
  104212. .UNINDENT
  104213. .INDENT 0.0
  104214. .TP
  104215. .B salt.modules.salt_version.get_release_number(name)
  104216. Returns the release number of a given release code name in a
  104217. \fBMAJOR.PATCH\fP format.
  104218. .sp
  104219. If the release name has not been given an assigned release number, the
  104220. function returns a string. If the release cannot be found, it returns
  104221. \fBNone\fP\&.
  104222. .INDENT 7.0
  104223. .TP
  104224. .B name
  104225. The release code name for which to find a release number.
  104226. .UNINDENT
  104227. .sp
  104228. CLI Example:
  104229. .INDENT 7.0
  104230. .INDENT 3.5
  104231. .sp
  104232. .nf
  104233. .ft C
  104234. salt \(aq*\(aq salt_version.get_release_number \(aqOxygen\(aq
  104235. .ft P
  104236. .fi
  104237. .UNINDENT
  104238. .UNINDENT
  104239. .UNINDENT
  104240. .INDENT 0.0
  104241. .TP
  104242. .B salt.modules.salt_version.greater_than(name)
  104243. Returns a boolean (True) if the minion\(aqs current
  104244. version code name is greater than the named version.
  104245. .INDENT 7.0
  104246. .TP
  104247. .B name
  104248. The release code name to check the version against.
  104249. .UNINDENT
  104250. .sp
  104251. CLI Example:
  104252. .INDENT 7.0
  104253. .INDENT 3.5
  104254. .sp
  104255. .nf
  104256. .ft C
  104257. salt \(aq*\(aq salt_version.greater_than \(aqSodium\(aq
  104258. .ft P
  104259. .fi
  104260. .UNINDENT
  104261. .UNINDENT
  104262. .UNINDENT
  104263. .INDENT 0.0
  104264. .TP
  104265. .B salt.modules.salt_version.less_than(name)
  104266. Returns a boolean (True) if the minion\(aqs current
  104267. version code name is less than the named version.
  104268. .INDENT 7.0
  104269. .TP
  104270. .B name
  104271. The release code name to check the version against.
  104272. .UNINDENT
  104273. .sp
  104274. CLI Example:
  104275. .INDENT 7.0
  104276. .INDENT 3.5
  104277. .sp
  104278. .nf
  104279. .ft C
  104280. salt \(aq*\(aq salt_version.less_than \(aqSodium\(aq
  104281. .ft P
  104282. .fi
  104283. .UNINDENT
  104284. .UNINDENT
  104285. .UNINDENT
  104286. .SS salt.modules.scp module
  104287. .SS SCP Module
  104288. .sp
  104289. New in version 2019.2.0.
  104290. .sp
  104291. Module to copy files via \fI\%SCP\fP
  104292. .INDENT 0.0
  104293. .TP
  104294. .B salt.modules.scp_mod.get(remote_path, local_path=u\(aq\(aq, recursive=False, preserve_times=False, **kwargs)
  104295. Transfer files and directories from remote host to the localhost of the
  104296. Minion.
  104297. .INDENT 7.0
  104298. .TP
  104299. .B remote_path
  104300. Path to retrieve from remote host. Since this is evaluated by scp on the
  104301. remote host, shell wildcards and environment variables may be used.
  104302. .TP
  104303. .B recursive: \fBFalse\fP
  104304. Transfer files and directories recursively.
  104305. .TP
  104306. .B preserve_times: \fBFalse\fP
  104307. Preserve \fBmtime\fP and \fBatime\fP of transferred files and directories.
  104308. .TP
  104309. .B hostname
  104310. The hostname of the remote device.
  104311. .TP
  104312. .B port: \fB22\fP
  104313. The port of the remote device.
  104314. .TP
  104315. .B username
  104316. The username required for SSH authentication on the device.
  104317. .TP
  104318. .B password
  104319. Used for password authentication. It is also used for private key
  104320. decryption if \fBpassphrase\fP is not given.
  104321. .TP
  104322. .B passphrase
  104323. Used for decrypting private keys.
  104324. .TP
  104325. .B pkey
  104326. An optional private key to use for authentication.
  104327. .TP
  104328. .B key_filename
  104329. The filename, or list of filenames, of optional private key(s) and/or
  104330. certificates to try for authentication.
  104331. .TP
  104332. .B timeout
  104333. An optional timeout (in seconds) for the TCP connect.
  104334. .TP
  104335. .B socket_timeout: \fB10\fP
  104336. The channel socket timeout in seconds.
  104337. .TP
  104338. .B buff_size: \fB16384\fP
  104339. The size of the SCP send buffer.
  104340. .TP
  104341. .B allow_agent: \fBTrue\fP
  104342. Set to \fBFalse\fP to disable connecting to the SSH agent.
  104343. .TP
  104344. .B look_for_keys: \fBTrue\fP
  104345. Set to \fBFalse\fP to disable searching for discoverable private key
  104346. files in \fB~/.ssh/\fP
  104347. .TP
  104348. .B banner_timeout
  104349. An optional timeout (in seconds) to wait for the SSH banner to be
  104350. presented.
  104351. .TP
  104352. .B auth_timeout
  104353. An optional timeout (in seconds) to wait for an authentication
  104354. response.
  104355. .TP
  104356. .B auto_add_policy: \fBFalse\fP
  104357. Automatically add the host to the \fBknown_hosts\fP\&.
  104358. .UNINDENT
  104359. .sp
  104360. CLI Example:
  104361. .INDENT 7.0
  104362. .INDENT 3.5
  104363. .sp
  104364. .nf
  104365. .ft C
  104366. salt \(aq*\(aq scp.get /var/tmp/file /tmp/file hostname=10.10.10.1 auto_add_policy=True
  104367. .ft P
  104368. .fi
  104369. .UNINDENT
  104370. .UNINDENT
  104371. .UNINDENT
  104372. .INDENT 0.0
  104373. .TP
  104374. .B salt.modules.scp_mod.put(files, remote_path=None, recursive=False, preserve_times=False, saltenv=u\(aqbase\(aq, **kwargs)
  104375. Transfer files and directories to remote host.
  104376. .INDENT 7.0
  104377. .TP
  104378. .B files
  104379. A single path or a list of paths to be transferred.
  104380. .TP
  104381. .B remote_path
  104382. The path on the remote device where to store the files.
  104383. .TP
  104384. .B recursive: \fBTrue\fP
  104385. Transfer files and directories recursively.
  104386. .TP
  104387. .B preserve_times: \fBFalse\fP
  104388. Preserve \fBmtime\fP and \fBatime\fP of transferred files and directories.
  104389. .TP
  104390. .B hostname
  104391. The hostname of the remote device.
  104392. .TP
  104393. .B port: \fB22\fP
  104394. The port of the remote device.
  104395. .TP
  104396. .B username
  104397. The username required for SSH authentication on the device.
  104398. .TP
  104399. .B password
  104400. Used for password authentication. It is also used for private key
  104401. decryption if \fBpassphrase\fP is not given.
  104402. .TP
  104403. .B passphrase
  104404. Used for decrypting private keys.
  104405. .TP
  104406. .B pkey
  104407. An optional private key to use for authentication.
  104408. .TP
  104409. .B key_filename
  104410. The filename, or list of filenames, of optional private key(s) and/or
  104411. certificates to try for authentication.
  104412. .TP
  104413. .B timeout
  104414. An optional timeout (in seconds) for the TCP connect.
  104415. .TP
  104416. .B socket_timeout: \fB10\fP
  104417. The channel socket timeout in seconds.
  104418. .TP
  104419. .B buff_size: \fB16384\fP
  104420. The size of the SCP send buffer.
  104421. .TP
  104422. .B allow_agent: \fBTrue\fP
  104423. Set to \fBFalse\fP to disable connecting to the SSH agent.
  104424. .TP
  104425. .B look_for_keys: \fBTrue\fP
  104426. Set to \fBFalse\fP to disable searching for discoverable private key
  104427. files in \fB~/.ssh/\fP
  104428. .TP
  104429. .B banner_timeout
  104430. An optional timeout (in seconds) to wait for the SSH banner to be
  104431. presented.
  104432. .TP
  104433. .B auth_timeout
  104434. An optional timeout (in seconds) to wait for an authentication
  104435. response.
  104436. .TP
  104437. .B auto_add_policy: \fBFalse\fP
  104438. Automatically add the host to the \fBknown_hosts\fP\&.
  104439. .UNINDENT
  104440. .sp
  104441. CLI Example:
  104442. .INDENT 7.0
  104443. .INDENT 3.5
  104444. .sp
  104445. .nf
  104446. .ft C
  104447. salt \(aq*\(aq scp.put /path/to/file /var/tmp/file hostname=server1 auto_add_policy=True
  104448. .ft P
  104449. .fi
  104450. .UNINDENT
  104451. .UNINDENT
  104452. .UNINDENT
  104453. .SS salt.modules.sensehat
  104454. .sp
  104455. Module for controlling the LED matrix or reading environment data on the SenseHat of a Raspberry Pi.
  104456. .sp
  104457. New in version 2017.7.0.
  104458. .INDENT 0.0
  104459. .TP
  104460. .B maintainer
  104461. Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>, Joachim Werner <\fI\%joe@suse.com\fP>
  104462. .TP
  104463. .B maturity
  104464. new
  104465. .TP
  104466. .B depends
  104467. sense_hat Python module
  104468. .UNINDENT
  104469. .sp
  104470. The rotation of the Pi can be specified in a pillar.
  104471. This is useful if the Pi is used upside down or sideways to correct the orientation of the image being shown.
  104472. .sp
  104473. Example:
  104474. .INDENT 0.0
  104475. .INDENT 3.5
  104476. .sp
  104477. .nf
  104478. .ft C
  104479. sensehat:
  104480. rotation: 90
  104481. .ft P
  104482. .fi
  104483. .UNINDENT
  104484. .UNINDENT
  104485. .INDENT 0.0
  104486. .TP
  104487. .B salt.modules.sensehat.clear(color=None)
  104488. Sets the LED matrix to a single color or turns all LEDs off.
  104489. .sp
  104490. CLI Example:
  104491. .INDENT 7.0
  104492. .INDENT 3.5
  104493. .sp
  104494. .nf
  104495. .ft C
  104496. salt \(aqraspberry\(aq sensehat.clear
  104497. salt \(aqraspberry\(aq sensehat.clear \(aq[255, 0, 0]\(aq
  104498. .ft P
  104499. .fi
  104500. .UNINDENT
  104501. .UNINDENT
  104502. .UNINDENT
  104503. .INDENT 0.0
  104504. .TP
  104505. .B salt.modules.sensehat.get_humidity()
  104506. Get the percentage of relative humidity from the humidity sensor.
  104507. .UNINDENT
  104508. .INDENT 0.0
  104509. .TP
  104510. .B salt.modules.sensehat.get_pixel(x, y)
  104511. Returns the color of a single pixel on the LED matrix.
  104512. .INDENT 7.0
  104513. .TP
  104514. .B x
  104515. The x coordinate of the pixel. Ranges from 0 on the left to 7 on the right.
  104516. .TP
  104517. .B y
  104518. The y coordinate of the pixel. Ranges from 0 at the top to 7 at the bottom.
  104519. .UNINDENT
  104520. .sp
  104521. \fBNOTE:\fP
  104522. .INDENT 7.0
  104523. .INDENT 3.5
  104524. Please read the note for \fBget_pixels\fP
  104525. .UNINDENT
  104526. .UNINDENT
  104527. .UNINDENT
  104528. .INDENT 0.0
  104529. .TP
  104530. .B salt.modules.sensehat.get_pixels()
  104531. Returns a list of 64 smaller lists of \fB[R, G, B]\fP pixels representing the
  104532. the currently displayed image on the LED matrix.
  104533. .sp
  104534. \fBNOTE:\fP
  104535. .INDENT 7.0
  104536. .INDENT 3.5
  104537. When using \fBset_pixels\fP the pixel values can sometimes change when
  104538. you read them again using \fBget_pixels\fP\&. This is because we specify each
  104539. pixel element as 8 bit numbers (0 to 255) but when they\(aqre passed into the
  104540. Linux frame buffer for the LED matrix the numbers are bit shifted down
  104541. to fit into RGB 565. 5 bits for red, 6 bits for green and 5 bits for blue.
  104542. The loss of binary precision when performing this conversion
  104543. (3 bits lost for red, 2 for green and 3 for blue) accounts for the
  104544. discrepancies you see.
  104545. .sp
  104546. The \fBget_pixels\fP method provides an accurate representation of how the
  104547. pixels end up in frame buffer memory after you have called \fBset_pixels\fP\&.
  104548. .UNINDENT
  104549. .UNINDENT
  104550. .UNINDENT
  104551. .INDENT 0.0
  104552. .TP
  104553. .B salt.modules.sensehat.get_pressure()
  104554. Gets the current pressure in Millibars from the pressure sensor.
  104555. .UNINDENT
  104556. .INDENT 0.0
  104557. .TP
  104558. .B salt.modules.sensehat.get_temperature()
  104559. Gets the temperature in degrees Celsius from the humidity sensor.
  104560. Equivalent to calling \fBget_temperature_from_humidity\fP\&.
  104561. .sp
  104562. If you get strange results try using \fBget_temperature_from_pressure\fP\&.
  104563. .UNINDENT
  104564. .INDENT 0.0
  104565. .TP
  104566. .B salt.modules.sensehat.get_temperature_from_humidity()
  104567. Gets the temperature in degrees Celsius from the humidity sensor.
  104568. .UNINDENT
  104569. .INDENT 0.0
  104570. .TP
  104571. .B salt.modules.sensehat.get_temperature_from_pressure()
  104572. Gets the temperature in degrees Celsius from the pressure sensor.
  104573. .UNINDENT
  104574. .INDENT 0.0
  104575. .TP
  104576. .B salt.modules.sensehat.low_light(low_light=True)
  104577. Sets the LED matrix to low light mode. Useful in a dark environment.
  104578. .sp
  104579. CLI Example:
  104580. .INDENT 7.0
  104581. .INDENT 3.5
  104582. .sp
  104583. .nf
  104584. .ft C
  104585. salt \(aqraspberry\(aq sensehat.low_light
  104586. salt \(aqraspberry\(aq sensehat.low_light False
  104587. .ft P
  104588. .fi
  104589. .UNINDENT
  104590. .UNINDENT
  104591. .UNINDENT
  104592. .INDENT 0.0
  104593. .TP
  104594. .B salt.modules.sensehat.set_pixel(x, y, color)
  104595. Sets a single pixel on the LED matrix to a specified color.
  104596. .INDENT 7.0
  104597. .TP
  104598. .B x
  104599. The x coordinate of the pixel. Ranges from 0 on the left to 7 on the right.
  104600. .TP
  104601. .B y
  104602. The y coordinate of the pixel. Ranges from 0 at the top to 7 at the bottom.
  104603. .TP
  104604. .B color
  104605. The new color of the pixel as a list of \fB[R, G, B]\fP values.
  104606. .UNINDENT
  104607. .sp
  104608. CLI Example:
  104609. .INDENT 7.0
  104610. .INDENT 3.5
  104611. .sp
  104612. .nf
  104613. .ft C
  104614. salt \(aqraspberry\(aq sensehat.set_pixel 0 0 \(aq[255, 0, 0]\(aq
  104615. .ft P
  104616. .fi
  104617. .UNINDENT
  104618. .UNINDENT
  104619. .UNINDENT
  104620. .INDENT 0.0
  104621. .TP
  104622. .B salt.modules.sensehat.set_pixels(pixels)
  104623. Sets the entire LED matrix based on a list of 64 pixel values
  104624. .INDENT 7.0
  104625. .TP
  104626. .B pixels
  104627. A list of 64 \fB[R, G, B]\fP color values.
  104628. .UNINDENT
  104629. .UNINDENT
  104630. .INDENT 0.0
  104631. .TP
  104632. .B salt.modules.sensehat.show_image(image)
  104633. Displays an 8 x 8 image on the LED matrix.
  104634. .INDENT 7.0
  104635. .TP
  104636. .B image
  104637. The path to the image to display. The image must be 8 x 8 pixels in size.
  104638. .UNINDENT
  104639. .sp
  104640. CLI Example:
  104641. .INDENT 7.0
  104642. .INDENT 3.5
  104643. .sp
  104644. .nf
  104645. .ft C
  104646. salt \(aqraspberry\(aq sensehat.show_image /tmp/my_image.png
  104647. .ft P
  104648. .fi
  104649. .UNINDENT
  104650. .UNINDENT
  104651. .UNINDENT
  104652. .INDENT 0.0
  104653. .TP
  104654. .B salt.modules.sensehat.show_letter(letter, text_color=None, back_color=None)
  104655. Displays a single letter on the LED matrix.
  104656. .INDENT 7.0
  104657. .TP
  104658. .B letter
  104659. The letter to display
  104660. .TP
  104661. .B text_color
  104662. The color in which the letter is shown. Defaults to \(aq[255, 255, 255]\(aq (white).
  104663. .TP
  104664. .B back_color
  104665. The background color of the display. Defaults to \(aq[0, 0, 0]\(aq (black).
  104666. .UNINDENT
  104667. .sp
  104668. CLI Example:
  104669. .INDENT 7.0
  104670. .INDENT 3.5
  104671. .sp
  104672. .nf
  104673. .ft C
  104674. salt \(aqraspberry\(aq sensehat.show_letter O
  104675. salt \(aqraspberry\(aq sensehat.show_letter X \(aq[255, 0, 0]\(aq
  104676. salt \(aqraspberry\(aq sensehat.show_letter B \(aq[0, 0, 255]\(aq \(aq[255, 255, 0]\(aq
  104677. .ft P
  104678. .fi
  104679. .UNINDENT
  104680. .UNINDENT
  104681. .UNINDENT
  104682. .INDENT 0.0
  104683. .TP
  104684. .B salt.modules.sensehat.show_message(message, msg_type=None, text_color=None, back_color=None, scroll_speed=0.1)
  104685. Displays a message on the LED matrix.
  104686. .INDENT 7.0
  104687. .TP
  104688. .B message
  104689. The message to display
  104690. .TP
  104691. .B msg_type
  104692. The type of the message. Changes the appearance of the message.
  104693. .sp
  104694. Available types are:
  104695. .INDENT 7.0
  104696. .INDENT 3.5
  104697. .sp
  104698. .nf
  104699. .ft C
  104700. error: red text
  104701. warning: orange text
  104702. success: green text
  104703. info: blue text
  104704. .ft P
  104705. .fi
  104706. .UNINDENT
  104707. .UNINDENT
  104708. .TP
  104709. .B scroll_speed
  104710. The speed at which the message moves over the LED matrix.
  104711. This value represents the time paused for between shifting the text
  104712. to the left by one column of pixels. Defaults to \(aq0.1\(aq.
  104713. .TP
  104714. .B text_color
  104715. The color in which the message is shown. Defaults to \(aq[255, 255, 255]\(aq (white).
  104716. .TP
  104717. .B back_color
  104718. The background color of the display. Defaults to \(aq[0, 0, 0]\(aq (black).
  104719. .UNINDENT
  104720. .sp
  104721. CLI Example:
  104722. .INDENT 7.0
  104723. .INDENT 3.5
  104724. .sp
  104725. .nf
  104726. .ft C
  104727. salt \(aqraspberry\(aq sensehat.show_message \(aqStatus ok\(aq
  104728. salt \(aqraspberry\(aq sensehat.show_message \(aqSomething went wrong\(aq error
  104729. salt \(aqraspberry\(aq sensehat.show_message \(aqRed\(aq text_color=\(aq[255, 0, 0]\(aq
  104730. salt \(aqraspberry\(aq sensehat.show_message \(aqHello world\(aq None \(aq[0, 0, 255]\(aq \(aq[255, 255, 0]\(aq 0.2
  104731. .ft P
  104732. .fi
  104733. .UNINDENT
  104734. .UNINDENT
  104735. .UNINDENT
  104736. .SS salt.modules.servicenow module
  104737. .sp
  104738. Module for execution of ServiceNow CI (configuration items)
  104739. .sp
  104740. New in version 2016.11.0.
  104741. .INDENT 0.0
  104742. .TP
  104743. .B depends
  104744. servicenow_rest python module
  104745. .TP
  104746. .B configuration
  104747. Configure this module by specifying the name of a configuration
  104748. profile in the minion config, minion pillar, or master config. The module
  104749. will use the \(aqservicenow\(aq key by default, if defined.
  104750. .sp
  104751. For example:
  104752. .INDENT 7.0
  104753. .INDENT 3.5
  104754. .sp
  104755. .nf
  104756. .ft C
  104757. servicenow:
  104758. instance_name: \(aq\(aq
  104759. username: \(aq\(aq
  104760. password: \(aq\(aq
  104761. .ft P
  104762. .fi
  104763. .UNINDENT
  104764. .UNINDENT
  104765. .UNINDENT
  104766. .INDENT 0.0
  104767. .TP
  104768. .B salt.modules.servicenow.delete_record(table, sys_id)
  104769. Delete an existing record
  104770. .INDENT 7.0
  104771. .TP
  104772. .B Parameters
  104773. .INDENT 7.0
  104774. .IP \(bu 2
  104775. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104776. .IP \(bu 2
  104777. \fBsys_id\fP (\fBstr\fP) \-\- The unique ID of the record
  104778. .UNINDENT
  104779. .UNINDENT
  104780. .sp
  104781. CLI Example:
  104782. .INDENT 7.0
  104783. .INDENT 3.5
  104784. .sp
  104785. .nf
  104786. .ft C
  104787. salt myminion servicenow.delete_record sys_computer 2134566
  104788. .ft P
  104789. .fi
  104790. .UNINDENT
  104791. .UNINDENT
  104792. .UNINDENT
  104793. .INDENT 0.0
  104794. .TP
  104795. .B salt.modules.servicenow.non_structured_query(table, query=None, **kwargs)
  104796. Run a non\-structed (not a dict) query on a servicenow table.
  104797. See \fI\%http://wiki.servicenow.com/index.php?title=Encoded_Query_Strings#gsc.tab=0\fP
  104798. for help on constructing a non\-structured query string.
  104799. .INDENT 7.0
  104800. .TP
  104801. .B Parameters
  104802. .INDENT 7.0
  104803. .IP \(bu 2
  104804. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104805. .IP \(bu 2
  104806. \fBquery\fP (\fBstr\fP) \-\- The query to run (or use keyword arguments to filter data)
  104807. .UNINDENT
  104808. .UNINDENT
  104809. .sp
  104810. CLI Example:
  104811. .INDENT 7.0
  104812. .INDENT 3.5
  104813. .sp
  104814. .nf
  104815. .ft C
  104816. salt myminion servicenow.non_structured_query sys_computer \(aqrole=web\(aq
  104817. salt myminion servicenow.non_structured_query sys_computer role=web type=computer
  104818. .ft P
  104819. .fi
  104820. .UNINDENT
  104821. .UNINDENT
  104822. .UNINDENT
  104823. .INDENT 0.0
  104824. .TP
  104825. .B salt.modules.servicenow.set_change_request_state(change_id, state=u\(aqapproved\(aq)
  104826. Set the approval state of a change request/record
  104827. .INDENT 7.0
  104828. .TP
  104829. .B Parameters
  104830. .INDENT 7.0
  104831. .IP \(bu 2
  104832. \fBchange_id\fP (\fBstr\fP) \-\- The ID of the change request, e.g. CHG123545
  104833. .IP \(bu 2
  104834. \fBstate\fP (\fBstr\fP) \-\- The target state, e.g. approved
  104835. .UNINDENT
  104836. .UNINDENT
  104837. .sp
  104838. CLI Example:
  104839. .INDENT 7.0
  104840. .INDENT 3.5
  104841. .sp
  104842. .nf
  104843. .ft C
  104844. salt myminion servicenow.set_change_request_state CHG000123 declined
  104845. salt myminion servicenow.set_change_request_state CHG000123 approved
  104846. .ft P
  104847. .fi
  104848. .UNINDENT
  104849. .UNINDENT
  104850. .UNINDENT
  104851. .INDENT 0.0
  104852. .TP
  104853. .B salt.modules.servicenow.update_record_field(table, sys_id, field, value)
  104854. Update the value of a record\(aqs field in a servicenow table
  104855. .INDENT 7.0
  104856. .TP
  104857. .B Parameters
  104858. .INDENT 7.0
  104859. .IP \(bu 2
  104860. \fBtable\fP (\fBstr\fP) \-\- The table name, e.g. sys_user
  104861. .IP \(bu 2
  104862. \fBsys_id\fP (\fBstr\fP) \-\- The unique ID of the record
  104863. .IP \(bu 2
  104864. \fBfield\fP (\fBstr\fP) \-\- The new value
  104865. .IP \(bu 2
  104866. \fBvalue\fP (\fBstr\fP) \-\- The new value
  104867. .UNINDENT
  104868. .UNINDENT
  104869. .sp
  104870. CLI Example:
  104871. .INDENT 7.0
  104872. .INDENT 3.5
  104873. .sp
  104874. .nf
  104875. .ft C
  104876. salt myminion servicenow.update_record_field sys_user 2348234 first_name jimmy
  104877. .ft P
  104878. .fi
  104879. .UNINDENT
  104880. .UNINDENT
  104881. .UNINDENT
  104882. .SS salt.modules.smf_service
  104883. .sp
  104884. Service support for Solaris 10 and 11, should work with other systems
  104885. that use SMF also. (e.g. SmartOS)
  104886. .sp
  104887. \fBIMPORTANT:\fP
  104888. .INDENT 0.0
  104889. .INDENT 3.5
  104890. If you feel that Salt should be using this module to manage services on a
  104891. minion, and it is using a different module (or gives an error similar to
  104892. \fI\(aqservice.start\(aq is not available\fP), see here\&.
  104893. .UNINDENT
  104894. .UNINDENT
  104895. .INDENT 0.0
  104896. .TP
  104897. .B salt.modules.smf_service.available(name)
  104898. Returns \fBTrue\fP if the specified service is available, otherwise returns
  104899. \fBFalse\fP\&.
  104900. .sp
  104901. We look up the name with the svcs command to get back the FMRI
  104902. This allows users to use simpler service names
  104903. .sp
  104904. CLI Example:
  104905. .INDENT 7.0
  104906. .INDENT 3.5
  104907. .sp
  104908. .nf
  104909. .ft C
  104910. salt \(aq*\(aq service.available net\-snmp
  104911. .ft P
  104912. .fi
  104913. .UNINDENT
  104914. .UNINDENT
  104915. .UNINDENT
  104916. .INDENT 0.0
  104917. .TP
  104918. .B salt.modules.smf_service.disable(name, **kwargs)
  104919. Disable the named service to start at boot
  104920. .sp
  104921. CLI Example:
  104922. .INDENT 7.0
  104923. .INDENT 3.5
  104924. .sp
  104925. .nf
  104926. .ft C
  104927. salt \(aq*\(aq service.disable <service name>
  104928. .ft P
  104929. .fi
  104930. .UNINDENT
  104931. .UNINDENT
  104932. .UNINDENT
  104933. .INDENT 0.0
  104934. .TP
  104935. .B salt.modules.smf_service.disabled(name)
  104936. Check to see if the named service is disabled to start on boot
  104937. .sp
  104938. CLI Example:
  104939. .INDENT 7.0
  104940. .INDENT 3.5
  104941. .sp
  104942. .nf
  104943. .ft C
  104944. salt \(aq*\(aq service.disabled <service name>
  104945. .ft P
  104946. .fi
  104947. .UNINDENT
  104948. .UNINDENT
  104949. .UNINDENT
  104950. .INDENT 0.0
  104951. .TP
  104952. .B salt.modules.smf_service.enable(name, **kwargs)
  104953. Enable the named service to start at boot
  104954. .sp
  104955. CLI Example:
  104956. .INDENT 7.0
  104957. .INDENT 3.5
  104958. .sp
  104959. .nf
  104960. .ft C
  104961. salt \(aq*\(aq service.enable <service name>
  104962. .ft P
  104963. .fi
  104964. .UNINDENT
  104965. .UNINDENT
  104966. .UNINDENT
  104967. .INDENT 0.0
  104968. .TP
  104969. .B salt.modules.smf_service.enabled(name, **kwargs)
  104970. Check to see if the named service is enabled to start on boot
  104971. .sp
  104972. CLI Example:
  104973. .INDENT 7.0
  104974. .INDENT 3.5
  104975. .sp
  104976. .nf
  104977. .ft C
  104978. salt \(aq*\(aq service.enabled <service name>
  104979. .ft P
  104980. .fi
  104981. .UNINDENT
  104982. .UNINDENT
  104983. .UNINDENT
  104984. .INDENT 0.0
  104985. .TP
  104986. .B salt.modules.smf_service.get_all()
  104987. Return all installed services
  104988. .sp
  104989. CLI Example:
  104990. .INDENT 7.0
  104991. .INDENT 3.5
  104992. .sp
  104993. .nf
  104994. .ft C
  104995. salt \(aq*\(aq service.get_all
  104996. .ft P
  104997. .fi
  104998. .UNINDENT
  104999. .UNINDENT
  105000. .UNINDENT
  105001. .INDENT 0.0
  105002. .TP
  105003. .B salt.modules.smf_service.get_disabled()
  105004. Return the disabled services
  105005. .sp
  105006. CLI Example:
  105007. .INDENT 7.0
  105008. .INDENT 3.5
  105009. .sp
  105010. .nf
  105011. .ft C
  105012. salt \(aq*\(aq service.get_disabled
  105013. .ft P
  105014. .fi
  105015. .UNINDENT
  105016. .UNINDENT
  105017. .UNINDENT
  105018. .INDENT 0.0
  105019. .TP
  105020. .B salt.modules.smf_service.get_enabled()
  105021. Return the enabled services
  105022. .sp
  105023. CLI Example:
  105024. .INDENT 7.0
  105025. .INDENT 3.5
  105026. .sp
  105027. .nf
  105028. .ft C
  105029. salt \(aq*\(aq service.get_enabled
  105030. .ft P
  105031. .fi
  105032. .UNINDENT
  105033. .UNINDENT
  105034. .UNINDENT
  105035. .INDENT 0.0
  105036. .TP
  105037. .B salt.modules.smf_service.get_running()
  105038. Return the running services
  105039. .sp
  105040. CLI Example:
  105041. .INDENT 7.0
  105042. .INDENT 3.5
  105043. .sp
  105044. .nf
  105045. .ft C
  105046. salt \(aq*\(aq service.get_running
  105047. .ft P
  105048. .fi
  105049. .UNINDENT
  105050. .UNINDENT
  105051. .UNINDENT
  105052. .INDENT 0.0
  105053. .TP
  105054. .B salt.modules.smf_service.get_stopped()
  105055. Return the stopped services
  105056. .sp
  105057. CLI Example:
  105058. .INDENT 7.0
  105059. .INDENT 3.5
  105060. .sp
  105061. .nf
  105062. .ft C
  105063. salt \(aq*\(aq service.get_stopped
  105064. .ft P
  105065. .fi
  105066. .UNINDENT
  105067. .UNINDENT
  105068. .UNINDENT
  105069. .INDENT 0.0
  105070. .TP
  105071. .B salt.modules.smf_service.missing(name)
  105072. The inverse of service.available.
  105073. Returns \fBTrue\fP if the specified service is not available, otherwise returns
  105074. \fBFalse\fP\&.
  105075. .sp
  105076. CLI Example:
  105077. .INDENT 7.0
  105078. .INDENT 3.5
  105079. .sp
  105080. .nf
  105081. .ft C
  105082. salt \(aq*\(aq service.missing net\-snmp
  105083. .ft P
  105084. .fi
  105085. .UNINDENT
  105086. .UNINDENT
  105087. .UNINDENT
  105088. .INDENT 0.0
  105089. .TP
  105090. .B salt.modules.smf_service.reload_(name)
  105091. Reload the named service
  105092. .sp
  105093. CLI Example:
  105094. .INDENT 7.0
  105095. .INDENT 3.5
  105096. .sp
  105097. .nf
  105098. .ft C
  105099. salt \(aq*\(aq service.reload <service name>
  105100. .ft P
  105101. .fi
  105102. .UNINDENT
  105103. .UNINDENT
  105104. .UNINDENT
  105105. .INDENT 0.0
  105106. .TP
  105107. .B salt.modules.smf_service.restart(name)
  105108. Restart the named service
  105109. .sp
  105110. CLI Example:
  105111. .INDENT 7.0
  105112. .INDENT 3.5
  105113. .sp
  105114. .nf
  105115. .ft C
  105116. salt \(aq*\(aq service.restart <service name>
  105117. .ft P
  105118. .fi
  105119. .UNINDENT
  105120. .UNINDENT
  105121. .UNINDENT
  105122. .INDENT 0.0
  105123. .TP
  105124. .B salt.modules.smf_service.start(name)
  105125. Start the specified service
  105126. .sp
  105127. CLI Example:
  105128. .INDENT 7.0
  105129. .INDENT 3.5
  105130. .sp
  105131. .nf
  105132. .ft C
  105133. salt \(aq*\(aq service.start <service name>
  105134. .ft P
  105135. .fi
  105136. .UNINDENT
  105137. .UNINDENT
  105138. .UNINDENT
  105139. .INDENT 0.0
  105140. .TP
  105141. .B salt.modules.smf_service.status(name, sig=None)
  105142. Return the status for a service.
  105143. If the name contains globbing, a dict mapping service name to True/False
  105144. values is returned.
  105145. .sp
  105146. Changed in version 2018.3.0: The service name can now be a glob (e.g. \fBsalt*\fP)
  105147. .INDENT 7.0
  105148. .TP
  105149. .B Parameters
  105150. .INDENT 7.0
  105151. .IP \(bu 2
  105152. \fBname\fP (\fI\%str\fP) \-\- The name of the service to check
  105153. .IP \(bu 2
  105154. \fBsig\fP (\fI\%str\fP) \-\- Not implemented
  105155. .UNINDENT
  105156. .TP
  105157. .B Returns
  105158. True if running, False otherwise
  105159. dict: Maps service name to True if running, False otherwise
  105160. .TP
  105161. .B Return type
  105162. \fI\%bool\fP
  105163. .UNINDENT
  105164. .sp
  105165. CLI Example:
  105166. .INDENT 7.0
  105167. .INDENT 3.5
  105168. .sp
  105169. .nf
  105170. .ft C
  105171. salt \(aq*\(aq service.status <service name>
  105172. .ft P
  105173. .fi
  105174. .UNINDENT
  105175. .UNINDENT
  105176. .UNINDENT
  105177. .INDENT 0.0
  105178. .TP
  105179. .B salt.modules.smf_service.stop(name)
  105180. Stop the specified service
  105181. .sp
  105182. CLI Example:
  105183. .INDENT 7.0
  105184. .INDENT 3.5
  105185. .sp
  105186. .nf
  105187. .ft C
  105188. salt \(aq*\(aq service.stop <service name>
  105189. .ft P
  105190. .fi
  105191. .UNINDENT
  105192. .UNINDENT
  105193. .UNINDENT
  105194. .SS salt.modules.splunk
  105195. .sp
  105196. Module for interop with the Splunk API
  105197. .sp
  105198. New in version 2016.3.0..
  105199. .INDENT 0.0
  105200. .TP
  105201. .B depends
  105202. .INDENT 7.0
  105203. .IP \(bu 2
  105204. splunk\-sdk python module
  105205. .UNINDENT
  105206. .TP
  105207. .B configuration
  105208. Configure this module by specifying the name of a configuration
  105209. profile in the minion config, minion pillar, or master config. The module
  105210. will use the \(aqsplunk\(aq key by default, if defined.
  105211. .sp
  105212. For example:
  105213. .INDENT 7.0
  105214. .INDENT 3.5
  105215. .sp
  105216. .nf
  105217. .ft C
  105218. splunk:
  105219. username: alice
  105220. password: abc123
  105221. host: example.splunkcloud.com
  105222. port: 8080
  105223. .ft P
  105224. .fi
  105225. .UNINDENT
  105226. .UNINDENT
  105227. .UNINDENT
  105228. .INDENT 0.0
  105229. .TP
  105230. .B salt.modules.splunk.create_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105231. create a splunk user by name/email
  105232. .sp
  105233. CLI Example:
  105234. .INDENT 7.0
  105235. .INDENT 3.5
  105236. salt myminion splunk.create_user \fI\%user@example.com\fP roles=[\(aquser\(aq] realname="Test User" name=testuser
  105237. .UNINDENT
  105238. .UNINDENT
  105239. .UNINDENT
  105240. .INDENT 0.0
  105241. .TP
  105242. .B salt.modules.splunk.delete_user(email, profile=u\(aqsplunk\(aq)
  105243. Delete a splunk user by email
  105244. .sp
  105245. CLI Example:
  105246. .INDENT 7.0
  105247. .INDENT 3.5
  105248. salt myminion splunk_user.delete \fI\%\(aquser@example.com\fP\(aq
  105249. .UNINDENT
  105250. .UNINDENT
  105251. .UNINDENT
  105252. .INDENT 0.0
  105253. .TP
  105254. .B salt.modules.splunk.get_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105255. Get a splunk user by name/email
  105256. .sp
  105257. CLI Example:
  105258. .INDENT 7.0
  105259. .INDENT 3.5
  105260. salt myminion splunk.get_user \fI\%\(aquser@example.com\fP\(aq user_details=false
  105261. salt myminion splunk.get_user \fI\%\(aquser@example.com\fP\(aq user_details=true
  105262. .UNINDENT
  105263. .UNINDENT
  105264. .UNINDENT
  105265. .INDENT 0.0
  105266. .TP
  105267. .B salt.modules.splunk.list_users(profile=u\(aqsplunk\(aq)
  105268. List all users in the splunk DB
  105269. .sp
  105270. CLI Example:
  105271. .INDENT 7.0
  105272. .INDENT 3.5
  105273. salt myminion splunk.list_users
  105274. .UNINDENT
  105275. .UNINDENT
  105276. .UNINDENT
  105277. .INDENT 0.0
  105278. .TP
  105279. .B salt.modules.splunk.update_user(email, profile=u\(aqsplunk\(aq, **kwargs)
  105280. Create a splunk user by email
  105281. .sp
  105282. CLI Example:
  105283. .INDENT 7.0
  105284. .INDENT 3.5
  105285. salt myminion splunk.update_user \fI\%example@domain.com\fP roles=[\(aquser\(aq] realname="Test User"
  105286. .UNINDENT
  105287. .UNINDENT
  105288. .UNINDENT
  105289. .SS salt.modules.sqlite3
  105290. .sp
  105291. Support for SQLite3
  105292. .INDENT 0.0
  105293. .TP
  105294. .B salt.modules.sqlite3.fetch(db=None, sql=None)
  105295. Retrieve data from an sqlite3 db (returns all rows, be careful!)
  105296. .sp
  105297. CLI Example:
  105298. .INDENT 7.0
  105299. .INDENT 3.5
  105300. .sp
  105301. .nf
  105302. .ft C
  105303. salt \(aq*\(aq sqlite3.fetch /root/test.db \(aqSELECT * FROM test;\(aq
  105304. .ft P
  105305. .fi
  105306. .UNINDENT
  105307. .UNINDENT
  105308. .UNINDENT
  105309. .INDENT 0.0
  105310. .TP
  105311. .B salt.modules.sqlite3.indexes(db=None)
  105312. Show all indices in the database, for people with poor spelling skills
  105313. .sp
  105314. CLI Example:
  105315. .INDENT 7.0
  105316. .INDENT 3.5
  105317. .sp
  105318. .nf
  105319. .ft C
  105320. salt \(aq*\(aq sqlite3.indexes /root/test.db
  105321. .ft P
  105322. .fi
  105323. .UNINDENT
  105324. .UNINDENT
  105325. .UNINDENT
  105326. .INDENT 0.0
  105327. .TP
  105328. .B salt.modules.sqlite3.indices(db=None)
  105329. Show all indices in the database
  105330. .sp
  105331. CLI Example:
  105332. .INDENT 7.0
  105333. .INDENT 3.5
  105334. .sp
  105335. .nf
  105336. .ft C
  105337. salt \(aq*\(aq sqlite3.indices /root/test.db
  105338. .ft P
  105339. .fi
  105340. .UNINDENT
  105341. .UNINDENT
  105342. .UNINDENT
  105343. .INDENT 0.0
  105344. .TP
  105345. .B salt.modules.sqlite3.modify(db=None, sql=None)
  105346. Issue an SQL query to sqlite3 (with no return data), usually used
  105347. to modify the database in some way (insert, delete, create, etc)
  105348. .sp
  105349. CLI Example:
  105350. .INDENT 7.0
  105351. .INDENT 3.5
  105352. .sp
  105353. .nf
  105354. .ft C
  105355. salt \(aq*\(aq sqlite3.modify /root/test.db \(aqCREATE TABLE test(id INT, testdata TEXT);\(aq
  105356. .ft P
  105357. .fi
  105358. .UNINDENT
  105359. .UNINDENT
  105360. .UNINDENT
  105361. .INDENT 0.0
  105362. .TP
  105363. .B salt.modules.sqlite3.sqlite_version()
  105364. Return version of sqlite
  105365. .sp
  105366. CLI Example:
  105367. .INDENT 7.0
  105368. .INDENT 3.5
  105369. .sp
  105370. .nf
  105371. .ft C
  105372. salt \(aq*\(aq sqlite3.sqlite_version
  105373. .ft P
  105374. .fi
  105375. .UNINDENT
  105376. .UNINDENT
  105377. .UNINDENT
  105378. .INDENT 0.0
  105379. .TP
  105380. .B salt.modules.sqlite3.tables(db=None)
  105381. Show all tables in the database
  105382. .sp
  105383. CLI Example:
  105384. .INDENT 7.0
  105385. .INDENT 3.5
  105386. .sp
  105387. .nf
  105388. .ft C
  105389. salt \(aq*\(aq sqlite3.tables /root/test.db
  105390. .ft P
  105391. .fi
  105392. .UNINDENT
  105393. .UNINDENT
  105394. .UNINDENT
  105395. .INDENT 0.0
  105396. .TP
  105397. .B salt.modules.sqlite3.version()
  105398. Return version of pysqlite
  105399. .sp
  105400. CLI Example:
  105401. .INDENT 7.0
  105402. .INDENT 3.5
  105403. .sp
  105404. .nf
  105405. .ft C
  105406. salt \(aq*\(aq sqlite3.version
  105407. .ft P
  105408. .fi
  105409. .UNINDENT
  105410. .UNINDENT
  105411. .UNINDENT
  105412. .SS salt.modules.statuspage
  105413. .SS StatusPage
  105414. .sp
  105415. Handle requests for the \fI\%StatusPage\fP \fI\%API\fP\&.
  105416. .sp
  105417. In the minion configuration file, the following block is required:
  105418. .INDENT 0.0
  105419. .INDENT 3.5
  105420. .sp
  105421. .nf
  105422. .ft C
  105423. statuspage:
  105424. api_key: <API_KEY>
  105425. page_id: <PAGE_ID>
  105426. .ft P
  105427. .fi
  105428. .UNINDENT
  105429. .UNINDENT
  105430. .sp
  105431. New in version 2017.7.0.
  105432. .INDENT 0.0
  105433. .TP
  105434. .B salt.modules.statuspage.create(endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  105435. Insert a new entry under a specific endpoint.
  105436. .INDENT 7.0
  105437. .TP
  105438. .B endpoint: incidents
  105439. Insert under this specific endpoint.
  105440. .TP
  105441. .B page_id
  105442. Page ID. Can also be specified in the config file.
  105443. .TP
  105444. .B api_key
  105445. API key. Can also be specified in the config file.
  105446. .TP
  105447. .B api_version: 1
  105448. API version. Can also be specified in the config file.
  105449. .TP
  105450. .B api_url
  105451. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105452. .UNINDENT
  105453. .sp
  105454. CLI Example:
  105455. .INDENT 7.0
  105456. .INDENT 3.5
  105457. .sp
  105458. .nf
  105459. .ft C
  105460. salt \(aqminion\(aq statuspage.create endpoint=\(aqcomponents\(aq name=\(aqmy component\(aq group_id=\(aq993vgplshj12\(aq
  105461. .ft P
  105462. .fi
  105463. .UNINDENT
  105464. .UNINDENT
  105465. .sp
  105466. Example output:
  105467. .INDENT 7.0
  105468. .INDENT 3.5
  105469. .sp
  105470. .nf
  105471. .ft C
  105472. minion:
  105473. \-\-\-\-\-\-\-\-\-\-
  105474. comment:
  105475. out:
  105476. \-\-\-\-\-\-\-\-\-\-
  105477. created_at:
  105478. 2017\-01\-05T19:35:27.135Z
  105479. description:
  105480. None
  105481. group_id:
  105482. 993vgplshj12
  105483. id:
  105484. mjkmtt5lhdgc
  105485. name:
  105486. my component
  105487. page_id:
  105488. ksdhgfyiuhaa
  105489. position:
  105490. 7
  105491. status:
  105492. operational
  105493. updated_at:
  105494. 2017\-01\-05T19:35:27.135Z
  105495. result:
  105496. True
  105497. .ft P
  105498. .fi
  105499. .UNINDENT
  105500. .UNINDENT
  105501. .UNINDENT
  105502. .INDENT 0.0
  105503. .TP
  105504. .B salt.modules.statuspage.delete(endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None)
  105505. Remove an entry from an endpoint.
  105506. .INDENT 7.0
  105507. .TP
  105508. .B endpoint: incidents
  105509. Request a specific endpoint.
  105510. .TP
  105511. .B page_id
  105512. Page ID. Can also be specified in the config file.
  105513. .TP
  105514. .B api_key
  105515. API key. Can also be specified in the config file.
  105516. .TP
  105517. .B api_version: 1
  105518. API version. Can also be specified in the config file.
  105519. .TP
  105520. .B api_url
  105521. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105522. .UNINDENT
  105523. .sp
  105524. CLI Example:
  105525. .INDENT 7.0
  105526. .INDENT 3.5
  105527. .sp
  105528. .nf
  105529. .ft C
  105530. salt \(aqminion\(aq statuspage.delete endpoint=\(aqcomponents\(aq id=\(aqftgks51sfs2d\(aq
  105531. .ft P
  105532. .fi
  105533. .UNINDENT
  105534. .UNINDENT
  105535. .sp
  105536. Example output:
  105537. .INDENT 7.0
  105538. .INDENT 3.5
  105539. .sp
  105540. .nf
  105541. .ft C
  105542. minion:
  105543. \-\-\-\-\-\-\-\-\-\-
  105544. comment:
  105545. out:
  105546. None
  105547. result:
  105548. True
  105549. .ft P
  105550. .fi
  105551. .UNINDENT
  105552. .UNINDENT
  105553. .UNINDENT
  105554. .INDENT 0.0
  105555. .TP
  105556. .B salt.modules.statuspage.retrieve(endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None)
  105557. Retrieve a specific endpoint from the Statuspage API.
  105558. .INDENT 7.0
  105559. .TP
  105560. .B endpoint: incidents
  105561. Request a specific endpoint.
  105562. .TP
  105563. .B page_id
  105564. Page ID. Can also be specified in the config file.
  105565. .TP
  105566. .B api_key
  105567. API key. Can also be specified in the config file.
  105568. .TP
  105569. .B api_version: 1
  105570. API version. Can also be specified in the config file.
  105571. .TP
  105572. .B api_url
  105573. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105574. .UNINDENT
  105575. .sp
  105576. CLI Example:
  105577. .INDENT 7.0
  105578. .INDENT 3.5
  105579. .sp
  105580. .nf
  105581. .ft C
  105582. salt \(aqminion\(aq statuspage.retrieve components
  105583. .ft P
  105584. .fi
  105585. .UNINDENT
  105586. .UNINDENT
  105587. .sp
  105588. Example output:
  105589. .INDENT 7.0
  105590. .INDENT 3.5
  105591. .sp
  105592. .nf
  105593. .ft C
  105594. minion:
  105595. \-\-\-\-\-\-\-\-\-\-
  105596. comment:
  105597. out:
  105598. |_
  105599. \-\-\-\-\-\-\-\-\-\-
  105600. backfilled:
  105601. False
  105602. created_at:
  105603. 2015\-01\-26T20:25:02.702Z
  105604. id:
  105605. kh2qwjbheqdc36
  105606. impact:
  105607. major
  105608. impact_override:
  105609. None
  105610. incident_updates:
  105611. |_
  105612. \-\-\-\-\-\-\-\-\-\-
  105613. affected_components:
  105614. None
  105615. body:
  105616. We are currently investigating this issue.
  105617. created_at:
  105618. 2015\-01\-26T20:25:02.849Z
  105619. display_at:
  105620. 2015\-01\-26T20:25:02.849Z
  105621. id:
  105622. zvx7xz2z5skr
  105623. incident_id:
  105624. kh2qwjbheqdc36
  105625. status:
  105626. investigating
  105627. twitter_updated_at:
  105628. None
  105629. updated_at:
  105630. 2015\-01\-26T20:25:02.849Z
  105631. wants_twitter_update:
  105632. False
  105633. monitoring_at:
  105634. None
  105635. name:
  105636. just testing some stuff
  105637. page_id:
  105638. ksdhgfyiuhaa
  105639. postmortem_body:
  105640. None
  105641. postmortem_body_last_updated_at:
  105642. None
  105643. postmortem_ignored:
  105644. False
  105645. postmortem_notified_subscribers:
  105646. False
  105647. postmortem_notified_twitter:
  105648. False
  105649. postmortem_published_at:
  105650. None
  105651. resolved_at:
  105652. None
  105653. scheduled_auto_completed:
  105654. False
  105655. scheduled_auto_in_progress:
  105656. False
  105657. scheduled_for:
  105658. None
  105659. scheduled_remind_prior:
  105660. False
  105661. scheduled_reminded_at:
  105662. None
  105663. scheduled_until:
  105664. None
  105665. shortlink:
  105666. http://stspg.io/voY
  105667. status:
  105668. investigating
  105669. updated_at:
  105670. 2015\-01\-26T20:25:13.379Z
  105671. result:
  105672. True
  105673. .ft P
  105674. .fi
  105675. .UNINDENT
  105676. .UNINDENT
  105677. .UNINDENT
  105678. .INDENT 0.0
  105679. .TP
  105680. .B salt.modules.statuspage.update(endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  105681. Update attribute(s) of a specific endpoint.
  105682. .INDENT 7.0
  105683. .TP
  105684. .B id
  105685. The unique ID of the enpoint entry.
  105686. .TP
  105687. .B endpoint: incidents
  105688. Endpoint name.
  105689. .TP
  105690. .B page_id
  105691. Page ID. Can also be specified in the config file.
  105692. .TP
  105693. .B api_key
  105694. API key. Can also be specified in the config file.
  105695. .TP
  105696. .B api_version: 1
  105697. API version. Can also be specified in the config file.
  105698. .TP
  105699. .B api_url
  105700. Custom API URL in case the user has a StatusPage service running in a custom environment.
  105701. .UNINDENT
  105702. .sp
  105703. CLI Example:
  105704. .INDENT 7.0
  105705. .INDENT 3.5
  105706. .sp
  105707. .nf
  105708. .ft C
  105709. salt \(aqminion\(aq statuspage.update id=dz959yz2nd4l status=resolved
  105710. .ft P
  105711. .fi
  105712. .UNINDENT
  105713. .UNINDENT
  105714. .sp
  105715. Example output:
  105716. .INDENT 7.0
  105717. .INDENT 3.5
  105718. .sp
  105719. .nf
  105720. .ft C
  105721. minion:
  105722. \-\-\-\-\-\-\-\-\-\-
  105723. comment:
  105724. out:
  105725. \-\-\-\-\-\-\-\-\-\-
  105726. created_at:
  105727. 2017\-01\-03T15:25:30.718Z
  105728. description:
  105729. None
  105730. group_id:
  105731. 993vgplshj12
  105732. id:
  105733. dz959yz2nd4l
  105734. name:
  105735. Management Portal
  105736. page_id:
  105737. xzwjjdw87vpf
  105738. position:
  105739. 11
  105740. status:
  105741. resolved
  105742. updated_at:
  105743. 2017\-01\-05T15:34:27.676Z
  105744. result:
  105745. True
  105746. .ft P
  105747. .fi
  105748. .UNINDENT
  105749. .UNINDENT
  105750. .UNINDENT
  105751. .SS salt.modules.telegram
  105752. .sp
  105753. Module for sending messages via Telegram.
  105754. .INDENT 0.0
  105755. .TP
  105756. .B configuration
  105757. In order to send a message via the Telegram, certain
  105758. configuration is required in /etc/salt/minion on the relevant minions or
  105759. in the pillar. Some sample configs might look like:
  105760. .INDENT 7.0
  105761. .INDENT 3.5
  105762. .sp
  105763. .nf
  105764. .ft C
  105765. telegram.chat_id: \(aq123456789\(aq
  105766. telegram.token: \(aq00000000:xxxxxxxxxxxxxxxxxxxxxxxx\(aq
  105767. .ft P
  105768. .fi
  105769. .UNINDENT
  105770. .UNINDENT
  105771. .UNINDENT
  105772. .INDENT 0.0
  105773. .TP
  105774. .B salt.modules.telegram.post_message(message, chat_id=None, token=None)
  105775. Send a message to a Telegram chat.
  105776. .INDENT 7.0
  105777. .TP
  105778. .B Parameters
  105779. .INDENT 7.0
  105780. .IP \(bu 2
  105781. \fBmessage\fP \-\- The message to send to the Telegram chat.
  105782. .IP \(bu 2
  105783. \fBchat_id\fP \-\- (optional) The Telegram chat id.
  105784. .IP \(bu 2
  105785. \fBtoken\fP \-\- (optional) The Telegram API token.
  105786. .UNINDENT
  105787. .TP
  105788. .B Returns
  105789. Boolean if message was sent successfully.
  105790. .UNINDENT
  105791. .sp
  105792. CLI Example:
  105793. .INDENT 7.0
  105794. .INDENT 3.5
  105795. .sp
  105796. .nf
  105797. .ft C
  105798. salt \(aq*\(aq telegram.post_message message="Hello Telegram!"
  105799. .ft P
  105800. .fi
  105801. .UNINDENT
  105802. .UNINDENT
  105803. .UNINDENT
  105804. .SS salt.modules.temp
  105805. .sp
  105806. Simple module for creating temporary directories and files
  105807. .sp
  105808. This is a thin wrapper around Pythons tempfile module
  105809. .sp
  105810. New in version 2015.8.0.
  105811. .INDENT 0.0
  105812. .TP
  105813. .B salt.modules.temp.dir(suffix=u\(aq\(aq, prefix=u\(aqtmp\(aq, parent=None)
  105814. Create a temporary directory
  105815. .sp
  105816. CLI Example:
  105817. .INDENT 7.0
  105818. .INDENT 3.5
  105819. .sp
  105820. .nf
  105821. .ft C
  105822. salt \(aq*\(aq temp.dir
  105823. salt \(aq*\(aq temp.dir prefix=\(aqmytemp\-\(aq parent=\(aq/var/run/\(aq
  105824. .ft P
  105825. .fi
  105826. .UNINDENT
  105827. .UNINDENT
  105828. .UNINDENT
  105829. .INDENT 0.0
  105830. .TP
  105831. .B salt.modules.temp.file(suffix=u\(aq\(aq, prefix=u\(aqtmp\(aq, parent=None)
  105832. Create a temporary file
  105833. .sp
  105834. CLI Example:
  105835. .INDENT 7.0
  105836. .INDENT 3.5
  105837. .sp
  105838. .nf
  105839. .ft C
  105840. salt \(aq*\(aq temp.file
  105841. salt \(aq*\(aq temp.file prefix=\(aqmytemp\-\(aq parent=\(aq/var/run/\(aq
  105842. .ft P
  105843. .fi
  105844. .UNINDENT
  105845. .UNINDENT
  105846. .UNINDENT
  105847. .SS salt.modules.test_virtual
  105848. .sp
  105849. Module for running arbitrary tests with a __virtual__ function
  105850. .INDENT 0.0
  105851. .TP
  105852. .B salt.modules.test_virtual.ping()
  105853. .UNINDENT
  105854. .SS salt.modules.twilio_notify
  105855. .sp
  105856. Module for notifications via Twilio
  105857. .sp
  105858. New in version 2014.7.0.
  105859. .INDENT 0.0
  105860. .TP
  105861. .B depends
  105862. .INDENT 7.0
  105863. .IP \(bu 2
  105864. twilio python module
  105865. .UNINDENT
  105866. .TP
  105867. .B configuration
  105868. Configure this module by specifying the name of a configuration
  105869. profile in the minion config, minion pillar, or master config (with \fBpillar_opts\fP set to True).
  105870. .sp
  105871. For example:
  105872. .INDENT 7.0
  105873. .INDENT 3.5
  105874. .sp
  105875. .nf
  105876. .ft C
  105877. my\-twilio\-account:
  105878. twilio.account_sid: AC32a3c83990934481addd5ce1659f04d2
  105879. twilio.auth_token: mytoken
  105880. .ft P
  105881. .fi
  105882. .UNINDENT
  105883. .UNINDENT
  105884. .UNINDENT
  105885. .INDENT 0.0
  105886. .TP
  105887. .B salt.modules.twilio_notify.send_sms(profile, body, to, from_)
  105888. Send an sms
  105889. .sp
  105890. CLI Example:
  105891. .INDENT 7.0
  105892. .INDENT 3.5
  105893. twilio.send_sms my\-twilio\-account \(aqTest sms\(aq \(aq+18019999999\(aq \(aq+18011111111\(aq
  105894. .UNINDENT
  105895. .UNINDENT
  105896. .UNINDENT
  105897. .SS salt.modules.uptime
  105898. .SS Wrapper around uptime API
  105899. .INDENT 0.0
  105900. .TP
  105901. .B salt.modules.uptime.check_exists(name)
  105902. Check if a given URL is in being monitored by uptime
  105903. .sp
  105904. CLI Example:
  105905. .INDENT 7.0
  105906. .INDENT 3.5
  105907. .sp
  105908. .nf
  105909. .ft C
  105910. salt \(aq*\(aq uptime.check_exists http://example.org
  105911. .ft P
  105912. .fi
  105913. .UNINDENT
  105914. .UNINDENT
  105915. .UNINDENT
  105916. .INDENT 0.0
  105917. .TP
  105918. .B salt.modules.uptime.checks_list()
  105919. List URL checked by uptime
  105920. .sp
  105921. CLI Example:
  105922. .INDENT 7.0
  105923. .INDENT 3.5
  105924. .sp
  105925. .nf
  105926. .ft C
  105927. salt \(aq*\(aq uptime.checks_list
  105928. .ft P
  105929. .fi
  105930. .UNINDENT
  105931. .UNINDENT
  105932. .UNINDENT
  105933. .INDENT 0.0
  105934. .TP
  105935. .B salt.modules.uptime.create(name, **params)
  105936. Create a check on a given URL.
  105937. .sp
  105938. Additional parameters can be used and are passed to API (for
  105939. example interval, maxTime, etc). See the documentation
  105940. \fI\%https://github.com/fzaninotto/uptime\fP for a full list of the
  105941. parameters.
  105942. .sp
  105943. CLI Example:
  105944. .INDENT 7.0
  105945. .INDENT 3.5
  105946. .sp
  105947. .nf
  105948. .ft C
  105949. salt \(aq*\(aq uptime.create http://example.org
  105950. .ft P
  105951. .fi
  105952. .UNINDENT
  105953. .UNINDENT
  105954. .UNINDENT
  105955. .INDENT 0.0
  105956. .TP
  105957. .B salt.modules.uptime.delete(name)
  105958. Delete a check on a given URL
  105959. .sp
  105960. CLI Example:
  105961. .INDENT 7.0
  105962. .INDENT 3.5
  105963. .sp
  105964. .nf
  105965. .ft C
  105966. salt \(aq*\(aq uptime.delete http://example.org
  105967. .ft P
  105968. .fi
  105969. .UNINDENT
  105970. .UNINDENT
  105971. .UNINDENT
  105972. .SS salt.modules.vault module
  105973. .sp
  105974. Functions to interact with Hashicorp Vault.
  105975. .INDENT 0.0
  105976. .TP
  105977. .B maintainer
  105978. SaltStack
  105979. .TP
  105980. .B maturity
  105981. new
  105982. .TP
  105983. .B platform
  105984. all
  105985. .TP
  105986. .B note
  105987. If you see the following error, you\(aqll need to upgrade \fBrequests\fP to at least 2.4.2
  105988. .UNINDENT
  105989. .INDENT 0.0
  105990. .INDENT 3.5
  105991. .sp
  105992. .nf
  105993. .ft C
  105994. <timestamp> [salt.pillar][CRITICAL][14337] Pillar render error: Failed to load ext_pillar vault: {\(aqerror\(aq: "request() got an unexpected keyword argument \(aqjson\(aq"}
  105995. .ft P
  105996. .fi
  105997. .UNINDENT
  105998. .UNINDENT
  105999. .INDENT 0.0
  106000. .TP
  106001. .B configuration
  106002. The salt\-master must be configured to allow peer\-runner
  106003. configuration, as well as configuration for the module.
  106004. .sp
  106005. Add this segment to the master configuration file, or
  106006. /etc/salt/master.d/vault.conf:
  106007. .INDENT 7.0
  106008. .INDENT 3.5
  106009. .sp
  106010. .nf
  106011. .ft C
  106012. vault:
  106013. url: https://vault.service.domain:8200
  106014. verify: /etc/ssl/certs/ca\-certificates.crt
  106015. role_name: minion_role
  106016. auth:
  106017. method: approle
  106018. role_id: 11111111\-2222\-3333\-4444\-1111111111111
  106019. secret_id: 11111111\-1111\-1111\-1111\-1111111111111
  106020. policies:
  106021. \- saltstack/minions
  106022. \- saltstack/minion/{minion}
  106023. .. more policies
  106024. keys:
  106025. \- n63/TbrQuL3xaIW7ZZpuXj/tIfnK1/MbVxO4vT3wYD2A
  106026. \- S9OwCvMRhErEA4NVVELYBs6w/Me6+urgUr24xGK44Uy3
  106027. \- F1j4b7JKq850NS6Kboiy5laJ0xY8dWJvB3fcwA+SraYl
  106028. \- 1cYtvjKJNDVam9c7HNqJUfINk4PYyAXIpjkpN/sIuzPv
  106029. \- 3pPK5X6vGtwLhNOFv1U2elahECz3HpRUfNXJFYLw6lid
  106030. .ft P
  106031. .fi
  106032. .UNINDENT
  106033. .UNINDENT
  106034. .INDENT 7.0
  106035. .TP
  106036. .B url
  106037. Url to your Vault installation. Required.
  106038. .TP
  106039. .B verify
  106040. For details please see
  106041. \fI\%http://docs.python\-requests.org/en/master/user/advanced/#ssl\-cert\-verification\fP
  106042. .sp
  106043. New in version 2018.3.0.
  106044. .TP
  106045. .B role_name
  106046. Role name for minion tokens created. If omitted, minion tokens will be
  106047. created without any role, thus being able to inherit any master token
  106048. policy (including token creation capabilities). Optional.
  106049. .sp
  106050. For details please see:
  106051. \fI\%https://www.vaultproject.io/api/auth/token/index.html#create\-token\fP
  106052. .sp
  106053. Example configuration:
  106054. \fI\%https://www.nomadproject.io/docs/vault\-integration/index.html#vault\-token\-role\-configuration\fP
  106055. .TP
  106056. .B auth
  106057. Currently only token and approle auth types are supported. Required.
  106058. .sp
  106059. Approle is the preferred way to authenticate with Vault as it provide
  106060. some advanced options to control authentication process.
  106061. Please visit Vault documentation for more info:
  106062. \fI\%https://www.vaultproject.io/docs/auth/approle.html\fP
  106063. .sp
  106064. The token must be able to create tokens with the policies that should be
  106065. assigned to minions.
  106066. You can still use the token auth via a OS environment variable via this
  106067. config example:
  106068. .INDENT 7.0
  106069. .INDENT 3.5
  106070. .sp
  106071. .nf
  106072. .ft C
  106073. vault:
  106074. url: https://vault.service.domain:8200
  106075. auth:
  106076. method: token
  106077. token: sdb://osenv/VAULT_TOKEN
  106078. osenv:
  106079. driver: env
  106080. .ft P
  106081. .fi
  106082. .UNINDENT
  106083. .UNINDENT
  106084. .sp
  106085. And then export the VAULT_TOKEN variable in your OS:
  106086. .INDENT 7.0
  106087. .INDENT 3.5
  106088. .sp
  106089. .nf
  106090. .ft C
  106091. export VAULT_TOKEN=11111111\-1111\-1111\-1111\-1111111111111
  106092. .ft P
  106093. .fi
  106094. .UNINDENT
  106095. .UNINDENT
  106096. .sp
  106097. Configuration keys \fBuses\fP or \fBttl\fP may also be specified under \fBauth\fP
  106098. to configure the tokens generated on behalf of minions to be reused for the
  106099. defined number of uses or length of time in seconds. These settings may also be configured
  106100. on the minion when \fBallow_minion_override\fP is set to \fBTrue\fP in the master
  106101. config.
  106102. .sp
  106103. Defining \fBuses\fP will cause the salt master to generate a token with that number of uses rather
  106104. than a single use token. This multi\-use token will be cached on the minion. The type of minion
  106105. cache can be specified with \fBtoken_backend: session\fP or \fBtoken_backend: disk\fP\&. The value of
  106106. \fBsession\fP is the default, and will store the vault information in memory only for that session.
  106107. The value of \fBdisk\fP will write to an on disk file, and persist between state runs (most
  106108. helpful for multi\-use tokens).
  106109. .INDENT 7.0
  106110. .INDENT 3.5
  106111. .sp
  106112. .nf
  106113. .ft C
  106114. vault:
  106115. auth:
  106116. method: token
  106117. token: xxxxxx
  106118. uses: 10
  106119. ttl: 43200
  106120. allow_minion_override: True
  106121. token_backend: disk
  106122. .. versionchanged:: Sodium
  106123. .ft P
  106124. .fi
  106125. .UNINDENT
  106126. .UNINDENT
  106127. .TP
  106128. .B policies
  106129. Policies that are assigned to minions when requesting a token. These can
  106130. either be static, eg saltstack/minions, or templated with grain values,
  106131. eg, \fBmy\-policies/{grains[os]}\fP\&. \fB{minion}\fP is shorthand for grains[id],
  106132. \fBsaltstack/minion/{minion}\fP\&. .
  106133. .sp
  106134. If a template contains a grain which evaluates to a list, it will be
  106135. expanded into multiple policies. For example, given the template
  106136. \fBsaltstack/by\-role/{grains[roles]}\fP, and a minion having these grains:
  106137. .INDENT 7.0
  106138. .INDENT 3.5
  106139. .sp
  106140. .nf
  106141. .ft C
  106142. grains:
  106143. roles:
  106144. \- web
  106145. \- database
  106146. .ft P
  106147. .fi
  106148. .UNINDENT
  106149. .UNINDENT
  106150. .sp
  106151. The minion will have the policies \fBsaltstack/by\-role/web\fP and
  106152. \fBsaltstack/by\-role/database\fP\&.
  106153. .sp
  106154. Optional. If policies is not configured, \fBsaltstack/minions\fP and
  106155. \fBsaltstack/{minion}\fP are used as defaults.
  106156. .sp
  106157. \fBNOTE:\fP
  106158. .INDENT 7.0
  106159. .INDENT 3.5
  106160. list members which do not have simple string representations,
  106161. such as dictionaries or objects, do not work and will
  106162. throw an exception. Strings and numbers are examples of
  106163. types which work well.
  106164. .UNINDENT
  106165. .UNINDENT
  106166. .TP
  106167. .B keys
  106168. List of keys to use to unseal vault server with the vault.unseal runner.
  106169. .UNINDENT
  106170. .sp
  106171. Add this segment to the master configuration file, or
  106172. /etc/salt/master.d/peer_run.conf:
  106173. .INDENT 7.0
  106174. .INDENT 3.5
  106175. .sp
  106176. .nf
  106177. .ft C
  106178. peer_run:
  106179. .*:
  106180. \- vault.generate_token
  106181. .ft P
  106182. .fi
  106183. .UNINDENT
  106184. .UNINDENT
  106185. .UNINDENT
  106186. .INDENT 0.0
  106187. .TP
  106188. .B salt.modules.vault.clear_token_cache()
  106189. Changed in version 3001.
  106190. .sp
  106191. Delete minion Vault token cache file
  106192. .sp
  106193. CLI Example:
  106194. .INDENT 7.0
  106195. .INDENT 3.5
  106196. .sp
  106197. .nf
  106198. .ft C
  106199. salt \(aq*\(aq vault.clear_token_cache
  106200. .ft P
  106201. .fi
  106202. .UNINDENT
  106203. .UNINDENT
  106204. .UNINDENT
  106205. .INDENT 0.0
  106206. .TP
  106207. .B salt.modules.vault.delete_secret(path)
  106208. Delete secret at the path in vault. The vault policy used must allow this.
  106209. .sp
  106210. CLI Example:
  106211. .INDENT 7.0
  106212. .INDENT 3.5
  106213. .sp
  106214. .nf
  106215. .ft C
  106216. salt \(aq*\(aq vault.delete_secret "secret/my/secret"
  106217. .ft P
  106218. .fi
  106219. .UNINDENT
  106220. .UNINDENT
  106221. .UNINDENT
  106222. .INDENT 0.0
  106223. .TP
  106224. .B salt.modules.vault.destroy_secret(path, *args)
  106225. New in version Sodium.
  106226. .sp
  106227. Destory specified secret version at the path in vault. The vault policy
  106228. used must allow this. Only supported on Vault KV version 2
  106229. .sp
  106230. CLI Example:
  106231. .INDENT 7.0
  106232. .INDENT 3.5
  106233. .sp
  106234. .nf
  106235. .ft C
  106236. salt \(aq*\(aq vault.destroy_secret "secret/my/secret" 1 2
  106237. .ft P
  106238. .fi
  106239. .UNINDENT
  106240. .UNINDENT
  106241. .UNINDENT
  106242. .INDENT 0.0
  106243. .TP
  106244. .B salt.modules.vault.list_secrets(path, default=<class \(aqsalt.exceptions.CommandExecutionError\(aq>)
  106245. Changed in version 3001: The \fBdefault\fP argument has been added. When the path or path/key
  106246. combination is not found, an exception will be raised, unless a default
  106247. is provided.
  106248. .sp
  106249. List secret keys at the path in vault. The vault policy used must allow this.
  106250. The path should end with a trailing slash.
  106251. .sp
  106252. CLI Example:
  106253. .INDENT 7.0
  106254. .INDENT 3.5
  106255. .sp
  106256. .nf
  106257. .ft C
  106258. salt \(aq*\(aq vault.list_secrets "secret/my/"
  106259. .ft P
  106260. .fi
  106261. .UNINDENT
  106262. .UNINDENT
  106263. .UNINDENT
  106264. .INDENT 0.0
  106265. .TP
  106266. .B salt.modules.vault.read_secret(path, key=None, metadata=False, default=<class \(aqsalt.exceptions.CommandExecutionError\(aq>)
  106267. Changed in version 3001: The \fBdefault\fP argument has been added. When the path or path/key
  106268. combination is not found, an exception will be raised, unless a default
  106269. is provided.
  106270. .sp
  106271. Return the value of key at path in vault, or entire secret
  106272. .INDENT 7.0
  106273. .TP
  106274. .B Parameters
  106275. \fBmetadata\fP \-\-
  106276. .sp
  106277. Optional \- If using KV v2 backend, display full results, including metadata
  106278. .sp
  106279. New in version Sodium.
  106280. .UNINDENT
  106281. .sp
  106282. Jinja Example:
  106283. .INDENT 7.0
  106284. .INDENT 3.5
  106285. .sp
  106286. .nf
  106287. .ft C
  106288. my\-secret: {{ salt[\(aqvault\(aq].read_secret(\(aqsecret/my/secret\(aq, \(aqsome\-key\(aq) }}
  106289. {{ salt[\(aqvault\(aq].read_secret(\(aq/secret/my/secret\(aq, \(aqsome\-key\(aq, metadata=True)[\(aqdata\(aq] }}
  106290. .ft P
  106291. .fi
  106292. .UNINDENT
  106293. .UNINDENT
  106294. .INDENT 7.0
  106295. .INDENT 3.5
  106296. .sp
  106297. .nf
  106298. .ft C
  106299. {% set supersecret = salt[\(aqvault\(aq].read_secret(\(aqsecret/my/secret\(aq) %}
  106300. secrets:
  106301. first: {{ supersecret.first }}
  106302. second: {{ supersecret.second }}
  106303. .ft P
  106304. .fi
  106305. .UNINDENT
  106306. .UNINDENT
  106307. .UNINDENT
  106308. .INDENT 0.0
  106309. .TP
  106310. .B salt.modules.vault.write_raw(path, raw)
  106311. Set raw data at the path in vault. The vault policy used must allow this.
  106312. .sp
  106313. CLI Example:
  106314. .INDENT 7.0
  106315. .INDENT 3.5
  106316. .sp
  106317. .nf
  106318. .ft C
  106319. salt \(aq*\(aq vault.write_raw "secret/my/secret" \(aq{"user":"foo","password": "bar"}\(aq
  106320. .ft P
  106321. .fi
  106322. .UNINDENT
  106323. .UNINDENT
  106324. .UNINDENT
  106325. .INDENT 0.0
  106326. .TP
  106327. .B salt.modules.vault.write_secret(path, **kwargs)
  106328. Set secret at the path in vault. The vault policy used must allow this.
  106329. .sp
  106330. CLI Example:
  106331. .INDENT 7.0
  106332. .INDENT 3.5
  106333. .sp
  106334. .nf
  106335. .ft C
  106336. salt \(aq*\(aq vault.write_secret "secret/my/secret" user="foo" password="bar"
  106337. .ft P
  106338. .fi
  106339. .UNINDENT
  106340. .UNINDENT
  106341. .UNINDENT
  106342. .SS salt.modules.vbox_guest
  106343. .sp
  106344. VirtualBox Guest Additions installer
  106345. .INDENT 0.0
  106346. .TP
  106347. .B salt.modules.vbox_guest.additions_install(*args, **kwargs)
  106348. Install VirtualBox Guest Additions. Uses the CD, connected by VirtualBox.
  106349. .sp
  106350. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  106351. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  106352. .sp
  106353. See \fI\%https://www.virtualbox.org/manual/ch04.html#idp52733088\fP for more details.
  106354. .sp
  106355. CLI Example:
  106356. .INDENT 7.0
  106357. .INDENT 3.5
  106358. .sp
  106359. .nf
  106360. .ft C
  106361. salt \(aq*\(aq vbox_guest.additions_install
  106362. salt \(aq*\(aq vbox_guest.additions_install reboot=True
  106363. salt \(aq*\(aq vbox_guest.additions_install upgrade_os=True
  106364. .ft P
  106365. .fi
  106366. .UNINDENT
  106367. .UNINDENT
  106368. .INDENT 7.0
  106369. .TP
  106370. .B Parameters
  106371. .INDENT 7.0
  106372. .IP \(bu 2
  106373. \fBreboot\fP (\fI\%bool\fP) \-\- reboot computer to complete installation
  106374. .IP \(bu 2
  106375. \fBupgrade_os\fP (\fI\%bool\fP) \-\- upgrade OS (to ensure the latests version of kernel and developer tools are installed)
  106376. .UNINDENT
  106377. .TP
  106378. .B Returns
  106379. version of VirtualBox Guest Additions or string with error
  106380. .UNINDENT
  106381. .UNINDENT
  106382. .INDENT 0.0
  106383. .TP
  106384. .B salt.modules.vbox_guest.additions_mount()
  106385. Mount VirtualBox Guest Additions CD to the temp directory.
  106386. .sp
  106387. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  106388. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  106389. .sp
  106390. CLI Example:
  106391. .INDENT 7.0
  106392. .INDENT 3.5
  106393. .sp
  106394. .nf
  106395. .ft C
  106396. salt \(aq*\(aq vbox_guest.additions_mount
  106397. .ft P
  106398. .fi
  106399. .UNINDENT
  106400. .UNINDENT
  106401. .INDENT 7.0
  106402. .TP
  106403. .B Returns
  106404. True or OSError exception
  106405. .UNINDENT
  106406. .UNINDENT
  106407. .INDENT 0.0
  106408. .TP
  106409. .B salt.modules.vbox_guest.additions_remove(**kwargs)
  106410. Remove VirtualBox Guest Additions.
  106411. .sp
  106412. Firstly it tries to uninstall itself by executing
  106413. \(aq/opt/VBoxGuestAdditions\-VERSION/uninstall.run uninstall\(aq.
  106414. It uses the CD, connected by VirtualBox if it failes.
  106415. .sp
  106416. CLI Example:
  106417. .INDENT 7.0
  106418. .INDENT 3.5
  106419. .sp
  106420. .nf
  106421. .ft C
  106422. salt \(aq*\(aq vbox_guest.additions_remove
  106423. salt \(aq*\(aq vbox_guest.additions_remove force=True
  106424. .ft P
  106425. .fi
  106426. .UNINDENT
  106427. .UNINDENT
  106428. .INDENT 7.0
  106429. .TP
  106430. .B Parameters
  106431. \fBforce\fP (\fI\%bool\fP) \-\- force VirtualBox Guest Additions removing
  106432. .TP
  106433. .B Returns
  106434. True if VirtualBox Guest Additions were removed successfully else False
  106435. .UNINDENT
  106436. .UNINDENT
  106437. .INDENT 0.0
  106438. .TP
  106439. .B salt.modules.vbox_guest.additions_umount(mount_point)
  106440. Unmount VirtualBox Guest Additions CD from the temp directory.
  106441. .sp
  106442. CLI Example:
  106443. .INDENT 7.0
  106444. .INDENT 3.5
  106445. .sp
  106446. .nf
  106447. .ft C
  106448. salt \(aq*\(aq vbox_guest.additions_umount
  106449. .ft P
  106450. .fi
  106451. .UNINDENT
  106452. .UNINDENT
  106453. .INDENT 7.0
  106454. .TP
  106455. .B Parameters
  106456. \fBmount_point\fP \-\- directory VirtualBox Guest Additions is mounted to
  106457. .TP
  106458. .B Returns
  106459. True or an string with error
  106460. .UNINDENT
  106461. .UNINDENT
  106462. .INDENT 0.0
  106463. .TP
  106464. .B salt.modules.vbox_guest.additions_version()
  106465. Check VirtualBox Guest Additions version.
  106466. .sp
  106467. CLI Example:
  106468. .INDENT 7.0
  106469. .INDENT 3.5
  106470. .sp
  106471. .nf
  106472. .ft C
  106473. salt \(aq*\(aq vbox_guest.additions_version
  106474. .ft P
  106475. .fi
  106476. .UNINDENT
  106477. .UNINDENT
  106478. .INDENT 7.0
  106479. .TP
  106480. .B Returns
  106481. version of VirtualBox Guest Additions or False if they are not installed
  106482. .UNINDENT
  106483. .UNINDENT
  106484. .INDENT 0.0
  106485. .TP
  106486. .B salt.modules.vbox_guest.grant_access_to_shared_folders_to(name, users=None)
  106487. Grant access to auto\-mounted shared folders to the users.
  106488. .sp
  106489. User is specified by its name. To grant access for several users use argument \fIusers\fP\&.
  106490. Access will be denied to the users not listed in \fIusers\fP argument.
  106491. .sp
  106492. See \fI\%https://www.virtualbox.org/manual/ch04.html#sf_mount_auto\fP for more details.
  106493. .sp
  106494. CLI Example:
  106495. .INDENT 7.0
  106496. .INDENT 3.5
  106497. .sp
  106498. .nf
  106499. .ft C
  106500. salt \(aq*\(aq vbox_guest.grant_access_to_shared_folders_to fred
  106501. salt \(aq*\(aq vbox_guest.grant_access_to_shared_folders_to users [\(aqfred\(aq, \(aqroman\(aq]
  106502. .ft P
  106503. .fi
  106504. .UNINDENT
  106505. .UNINDENT
  106506. .INDENT 7.0
  106507. .TP
  106508. .B Parameters
  106509. .INDENT 7.0
  106510. .IP \(bu 2
  106511. \fBname\fP (\fI\%str\fP) \-\- name of the user to grant access to auto\-mounted shared folders to
  106512. .IP \(bu 2
  106513. \fBusers\fP (\fIlist of str\fP) \-\- list of names of users to grant access to auto\-mounted shared folders to (if specified, \fIname\fP will not be taken into account)
  106514. .UNINDENT
  106515. .TP
  106516. .B Returns
  106517. list of users who have access to auto\-mounted shared folders
  106518. .UNINDENT
  106519. .UNINDENT
  106520. .INDENT 0.0
  106521. .TP
  106522. .B salt.modules.vbox_guest.list_shared_folders_users()
  106523. List users who have access to auto\-mounted shared folders.
  106524. .sp
  106525. See \fI\%https://www.virtualbox.org/manual/ch04.html#sf_mount_auto\fP for more details.
  106526. .sp
  106527. CLI Example:
  106528. .INDENT 7.0
  106529. .INDENT 3.5
  106530. .sp
  106531. .nf
  106532. .ft C
  106533. salt \(aq*\(aq vbox_guest.list_shared_folders_users
  106534. .ft P
  106535. .fi
  106536. .UNINDENT
  106537. .UNINDENT
  106538. .INDENT 7.0
  106539. .TP
  106540. .B Returns
  106541. list of users who have access to auto\-mounted shared folders
  106542. .UNINDENT
  106543. .UNINDENT
  106544. .SS salt.modules.win_timezone
  106545. .sp
  106546. Module for managing timezone on Windows systems.
  106547. .INDENT 0.0
  106548. .TP
  106549. .B class salt.modules.win_timezone.TzMapper(unix_to_win)
  106550. .INDENT 7.0
  106551. .TP
  106552. .B add(k, v)
  106553. .UNINDENT
  106554. .INDENT 7.0
  106555. .TP
  106556. .B get_unix(key, default=None)
  106557. .UNINDENT
  106558. .INDENT 7.0
  106559. .TP
  106560. .B get_win(key, default=None)
  106561. .UNINDENT
  106562. .INDENT 7.0
  106563. .TP
  106564. .B list_unix()
  106565. .UNINDENT
  106566. .INDENT 7.0
  106567. .TP
  106568. .B list_win()
  106569. .UNINDENT
  106570. .INDENT 7.0
  106571. .TP
  106572. .B remove(k)
  106573. .UNINDENT
  106574. .UNINDENT
  106575. .INDENT 0.0
  106576. .TP
  106577. .B salt.modules.win_timezone.get_hwclock()
  106578. Get current hardware clock setting (UTC or localtime)
  106579. .sp
  106580. \fBNOTE:\fP
  106581. .INDENT 7.0
  106582. .INDENT 3.5
  106583. The hardware clock is always local time on Windows so this will always
  106584. return "localtime"
  106585. .UNINDENT
  106586. .UNINDENT
  106587. .sp
  106588. CLI Example:
  106589. .INDENT 7.0
  106590. .INDENT 3.5
  106591. .sp
  106592. .nf
  106593. .ft C
  106594. salt \(aq*\(aq timezone.get_hwclock
  106595. .ft P
  106596. .fi
  106597. .UNINDENT
  106598. .UNINDENT
  106599. .UNINDENT
  106600. .INDENT 0.0
  106601. .TP
  106602. .B salt.modules.win_timezone.get_offset()
  106603. Get current numeric timezone offset from UTC (i.e. \-0700)
  106604. .INDENT 7.0
  106605. .TP
  106606. .B Returns
  106607. Offset from UTC
  106608. .TP
  106609. .B Return type
  106610. \fI\%str\fP
  106611. .UNINDENT
  106612. .sp
  106613. CLI Example:
  106614. .INDENT 7.0
  106615. .INDENT 3.5
  106616. .sp
  106617. .nf
  106618. .ft C
  106619. salt \(aq*\(aq timezone.get_offset
  106620. .ft P
  106621. .fi
  106622. .UNINDENT
  106623. .UNINDENT
  106624. .UNINDENT
  106625. .INDENT 0.0
  106626. .TP
  106627. .B salt.modules.win_timezone.get_zone()
  106628. Get current timezone (i.e. America/Denver)
  106629. .INDENT 7.0
  106630. .TP
  106631. .B Returns
  106632. Timezone in unix format
  106633. .TP
  106634. .B Return type
  106635. \fI\%str\fP
  106636. .TP
  106637. .B Raises
  106638. \fBCommandExecutionError\fP \-\- If timezone could not be gathered
  106639. .UNINDENT
  106640. .sp
  106641. CLI Example:
  106642. .INDENT 7.0
  106643. .INDENT 3.5
  106644. .sp
  106645. .nf
  106646. .ft C
  106647. salt \(aq*\(aq timezone.get_zone
  106648. .ft P
  106649. .fi
  106650. .UNINDENT
  106651. .UNINDENT
  106652. .UNINDENT
  106653. .INDENT 0.0
  106654. .TP
  106655. .B salt.modules.win_timezone.get_zonecode()
  106656. Get current timezone (i.e. PST, MDT, etc)
  106657. .INDENT 7.0
  106658. .TP
  106659. .B Returns
  106660. An abbreviated timezone code
  106661. .TP
  106662. .B Return type
  106663. \fI\%str\fP
  106664. .UNINDENT
  106665. .sp
  106666. CLI Example:
  106667. .INDENT 7.0
  106668. .INDENT 3.5
  106669. .sp
  106670. .nf
  106671. .ft C
  106672. salt \(aq*\(aq timezone.get_zonecode
  106673. .ft P
  106674. .fi
  106675. .UNINDENT
  106676. .UNINDENT
  106677. .UNINDENT
  106678. .INDENT 0.0
  106679. .TP
  106680. .B salt.modules.win_timezone.list(unix_style=True)
  106681. Return a list of Timezones that this module supports. These can be in either
  106682. Unix or Windows format.
  106683. .sp
  106684. New in version 2018.3.3.
  106685. .INDENT 7.0
  106686. .TP
  106687. .B Parameters
  106688. \fBunix_style\fP (\fI\%bool\fP) \-\- \fBTrue\fP returns Unix\-style timezones. \fBFalse\fP returns
  106689. Windows\-style timezones. Default is \fBTrue\fP
  106690. .TP
  106691. .B Returns
  106692. A list of supported timezones
  106693. .TP
  106694. .B Return type
  106695. \fI\%list\fP
  106696. .UNINDENT
  106697. .sp
  106698. CLI Example:
  106699. .INDENT 7.0
  106700. .INDENT 3.5
  106701. .sp
  106702. .nf
  106703. .ft C
  106704. # Unix\-style timezones
  106705. salt \(aq*\(aq timezone.list
  106706. # Windows\-style timezones
  106707. salt \(aq*\(aq timezone.list unix_style=False
  106708. .ft P
  106709. .fi
  106710. .UNINDENT
  106711. .UNINDENT
  106712. .UNINDENT
  106713. .INDENT 0.0
  106714. .TP
  106715. .B salt.modules.win_timezone.set_hwclock(clock)
  106716. Sets the hardware clock to be either UTC or localtime
  106717. .sp
  106718. \fBNOTE:\fP
  106719. .INDENT 7.0
  106720. .INDENT 3.5
  106721. The hardware clock is always local time on Windows so this will always
  106722. return \fBFalse\fP
  106723. .UNINDENT
  106724. .UNINDENT
  106725. .sp
  106726. CLI Example:
  106727. .INDENT 7.0
  106728. .INDENT 3.5
  106729. .sp
  106730. .nf
  106731. .ft C
  106732. salt \(aq*\(aq timezone.set_hwclock UTC
  106733. .ft P
  106734. .fi
  106735. .UNINDENT
  106736. .UNINDENT
  106737. .UNINDENT
  106738. .INDENT 0.0
  106739. .TP
  106740. .B salt.modules.win_timezone.set_zone(timezone)
  106741. Sets the timezone using the tzutil.
  106742. .INDENT 7.0
  106743. .TP
  106744. .B Parameters
  106745. \fBtimezone\fP (\fI\%str\fP) \-\- A valid timezone
  106746. .TP
  106747. .B Returns
  106748. \fBTrue\fP if successful, otherwise \fBFalse\fP
  106749. .TP
  106750. .B Return type
  106751. \fI\%bool\fP
  106752. .TP
  106753. .B Raises
  106754. \fBCommandExecutionError\fP \-\- If invalid timezone is passed
  106755. .UNINDENT
  106756. .sp
  106757. CLI Example:
  106758. .INDENT 7.0
  106759. .INDENT 3.5
  106760. .sp
  106761. .nf
  106762. .ft C
  106763. salt \(aq*\(aq timezone.set_zone \(aqAmerica/Denver\(aq
  106764. .ft P
  106765. .fi
  106766. .UNINDENT
  106767. .UNINDENT
  106768. .UNINDENT
  106769. .INDENT 0.0
  106770. .TP
  106771. .B salt.modules.win_timezone.zone_compare(timezone)
  106772. Compares the given timezone with the machine timezone. Mostly useful for
  106773. running state checks.
  106774. .INDENT 7.0
  106775. .TP
  106776. .B Parameters
  106777. \fBtimezone\fP (\fI\%str\fP) \-\- The timezone to compare. This can be in Windows or Unix format. Can
  106778. be any of the values returned by the \fBtimezone.list\fP function
  106779. .TP
  106780. .B Returns
  106781. \fBTrue\fP if they match, otherwise \fBFalse\fP
  106782. .TP
  106783. .B Return type
  106784. \fI\%bool\fP
  106785. .UNINDENT
  106786. .sp
  106787. Example:
  106788. .INDENT 7.0
  106789. .INDENT 3.5
  106790. .sp
  106791. .nf
  106792. .ft C
  106793. salt \(aq*\(aq timezone.zone_compare \(aqAmerica/Denver\(aq
  106794. .ft P
  106795. .fi
  106796. .UNINDENT
  106797. .UNINDENT
  106798. .UNINDENT
  106799. .SS salt.modules.xml
  106800. .sp
  106801. XML file manager
  106802. .sp
  106803. New in version 3000.
  106804. .INDENT 0.0
  106805. .TP
  106806. .B salt.modules.xml.get_attribute(file, element)
  106807. Return the attributes of the matched xpath element.
  106808. .sp
  106809. CLI Example:
  106810. .INDENT 7.0
  106811. .INDENT 3.5
  106812. .sp
  106813. .nf
  106814. .ft C
  106815. salt \(aq*\(aq xml.get_attribute /tmp/test.xml ".//element[@id=\(aq3\(aq]"
  106816. .ft P
  106817. .fi
  106818. .UNINDENT
  106819. .UNINDENT
  106820. .UNINDENT
  106821. .INDENT 0.0
  106822. .TP
  106823. .B salt.modules.xml.get_value(file, element)
  106824. Returns the value of the matched xpath element
  106825. .sp
  106826. CLI Example:
  106827. .INDENT 7.0
  106828. .INDENT 3.5
  106829. .sp
  106830. .nf
  106831. .ft C
  106832. salt \(aq*\(aq xml.get_value /tmp/test.xml ".//element"
  106833. .ft P
  106834. .fi
  106835. .UNINDENT
  106836. .UNINDENT
  106837. .UNINDENT
  106838. .INDENT 0.0
  106839. .TP
  106840. .B salt.modules.xml.set_attribute(file, element, key, value)
  106841. Set the requested attribute key and value for matched xpath element.
  106842. .sp
  106843. CLI Example:
  106844. .INDENT 7.0
  106845. .INDENT 3.5
  106846. .sp
  106847. .nf
  106848. .ft C
  106849. salt \(aq*\(aq xml.set_attribute /tmp/test.xml ".//element[@id=\(aq3\(aq]" editedby "gal"
  106850. .ft P
  106851. .fi
  106852. .UNINDENT
  106853. .UNINDENT
  106854. .UNINDENT
  106855. .INDENT 0.0
  106856. .TP
  106857. .B salt.modules.xml.set_value(file, element, value)
  106858. Sets the value of the matched xpath element
  106859. .sp
  106860. CLI Example:
  106861. .INDENT 7.0
  106862. .INDENT 3.5
  106863. .sp
  106864. .nf
  106865. .ft C
  106866. salt \(aq*\(aq xml.set_value /tmp/test.xml ".//element" "new value"
  106867. .ft P
  106868. .fi
  106869. .UNINDENT
  106870. .UNINDENT
  106871. .UNINDENT
  106872. .SS salt.modules.xmpp
  106873. .sp
  106874. Module for Sending Messages via XMPP (a.k.a. Jabber)
  106875. .sp
  106876. New in version 2014.1.0.
  106877. .INDENT 0.0
  106878. .TP
  106879. .B depends
  106880. .INDENT 7.0
  106881. .IP \(bu 2
  106882. sleekxmpp>=1.3.1
  106883. .IP \(bu 2
  106884. pyasn1
  106885. .IP \(bu 2
  106886. pyasn1\-modules
  106887. .IP \(bu 2
  106888. dnspython
  106889. .UNINDENT
  106890. .TP
  106891. .B configuration
  106892. This module can be used by either passing a jid and password
  106893. directly to send_message, or by specifying the name of a configuration
  106894. profile in the minion config, minion pillar, or master config.
  106895. .sp
  106896. For example:
  106897. .INDENT 7.0
  106898. .INDENT 3.5
  106899. .sp
  106900. .nf
  106901. .ft C
  106902. my\-xmpp\-login:
  106903. xmpp.jid: myuser@jabber.example.org/resourcename
  106904. xmpp.password: verybadpass
  106905. .ft P
  106906. .fi
  106907. .UNINDENT
  106908. .UNINDENT
  106909. .sp
  106910. The resourcename refers to the resource that is using this account. It is
  106911. user\-definable, and optional. The following configurations are both valid:
  106912. .INDENT 7.0
  106913. .INDENT 3.5
  106914. .sp
  106915. .nf
  106916. .ft C
  106917. my\-xmpp\-login:
  106918. xmpp.jid: myuser@jabber.example.org/salt
  106919. xmpp.password: verybadpass
  106920. my\-xmpp\-login:
  106921. xmpp.jid: myuser@jabber.example.org
  106922. xmpp.password: verybadpass
  106923. .ft P
  106924. .fi
  106925. .UNINDENT
  106926. .UNINDENT
  106927. .UNINDENT
  106928. .INDENT 0.0
  106929. .TP
  106930. .B class salt.modules.xmpp.SendMsgBot(jid, password, recipient, msg)
  106931. .INDENT 7.0
  106932. .TP
  106933. .B classmethod create_multi(jid, password, msg, recipients=None, rooms=None, nick=u\(aqSaltStack Bot\(aq)
  106934. Alternate constructor that accept multiple recipients and rooms
  106935. .UNINDENT
  106936. .INDENT 7.0
  106937. .TP
  106938. .B start(event)
  106939. .UNINDENT
  106940. .UNINDENT
  106941. .INDENT 0.0
  106942. .TP
  106943. .B class salt.modules.xmpp.SleekXMPPMUC(name=\(aq\(aq)
  106944. .INDENT 7.0
  106945. .TP
  106946. .B filter(record)
  106947. Determine if the specified record is to be logged.
  106948. .sp
  106949. Is the specified record to be logged? Returns 0 for no, nonzero for
  106950. yes. If deemed appropriate, the record may be modified in\-place.
  106951. .UNINDENT
  106952. .UNINDENT
  106953. .INDENT 0.0
  106954. .TP
  106955. .B salt.modules.xmpp.send_msg(recipient, message, jid=None, password=None, profile=None)
  106956. Send a message to an XMPP recipient. Designed for use in states.
  106957. .sp
  106958. CLI Examples:
  106959. .INDENT 7.0
  106960. .INDENT 3.5
  106961. .sp
  106962. .nf
  106963. .ft C
  106964. xmpp.send_msg \(aqadmins@xmpp.example.com\(aq \(aqThis is a salt module test\(aq profile=\(aqmy\-xmpp\-account\(aq
  106965. xmpp.send_msg \(aqadmins@xmpp.example.com\(aq \(aqThis is a salt module test\(aq jid=\(aqmyuser@xmpp.example.com/salt\(aq password=\(aqverybadpass\(aq
  106966. .ft P
  106967. .fi
  106968. .UNINDENT
  106969. .UNINDENT
  106970. .UNINDENT
  106971. .INDENT 0.0
  106972. .TP
  106973. .B salt.modules.xmpp.send_msg_multi(message, recipients=None, rooms=None, jid=None, password=None, nick=u\(aqSaltStack Bot\(aq, profile=None)
  106974. Send a message to an XMPP recipient, support send message to
  106975. multiple recipients or chat room.
  106976. .sp
  106977. CLI Examples:
  106978. .INDENT 7.0
  106979. .INDENT 3.5
  106980. .sp
  106981. .nf
  106982. .ft C
  106983. xmpp.send_msg recipients=[\(aqadmins@xmpp.example.com\(aq] rooms=[\(aqsecret@conference.xmpp.example.com\(aq] \(aqThis is a salt module test\(aq profile=\(aqmy\-xmpp\-account\(aq
  106984. xmpp.send_msg recipients=[\(aqadmins@xmpp.example.com\(aq] rooms=[\(aqsecret@conference.xmpp.example.com\(aq] \(aqThis is a salt module test\(aq jid=\(aqmyuser@xmpp.example.com/salt\(aq password=\(aqverybadpass\(aq
  106985. .ft P
  106986. .fi
  106987. .UNINDENT
  106988. .UNINDENT
  106989. .UNINDENT
  106990. .SS salt.modules.zk_concurrency
  106991. .SS Concurrency controls in zookeeper
  106992. .INDENT 0.0
  106993. .TP
  106994. .B depends
  106995. kazoo
  106996. .TP
  106997. .B configuration
  106998. See \fBsalt.modules.zookeeper\fP for setup instructions.
  106999. .UNINDENT
  107000. .sp
  107001. This module allows you to acquire and release a slot. This is primarily useful
  107002. for ensureing that no more than N hosts take a specific action at once. This can
  107003. also be used to coordinate between masters.
  107004. .INDENT 0.0
  107005. .TP
  107006. .B salt.modules.zk_concurrency.lock(path, zk_hosts=None, identifier=None, max_concurrency=1, timeout=None, ephemeral_lease=False, force=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  107007. Get lock (with optional timeout)
  107008. .INDENT 7.0
  107009. .TP
  107010. .B path
  107011. The path in zookeeper where the lock is
  107012. .TP
  107013. .B zk_hosts
  107014. zookeeper connect string
  107015. .TP
  107016. .B identifier
  107017. Name to identify this minion, if unspecified defaults to the hostname
  107018. .TP
  107019. .B max_concurrency
  107020. Maximum number of lock holders
  107021. .TP
  107022. .B timeout
  107023. timeout to wait for the lock. A None timeout will block forever
  107024. .TP
  107025. .B ephemeral_lease
  107026. Whether the locks in zookeper should be ephemeral
  107027. .TP
  107028. .B force
  107029. Forcibly acquire the lock regardless of available slots
  107030. .UNINDENT
  107031. .sp
  107032. Example:
  107033. .INDENT 7.0
  107034. .INDENT 3.5
  107035. .sp
  107036. .nf
  107037. .ft C
  107038. salt minion zk_concurrency.lock /lock/path host1:1234,host2:1234
  107039. .ft P
  107040. .fi
  107041. .UNINDENT
  107042. .UNINDENT
  107043. .UNINDENT
  107044. .INDENT 0.0
  107045. .TP
  107046. .B salt.modules.zk_concurrency.lock_holders(path, zk_hosts=None, identifier=None, max_concurrency=1, timeout=None, ephemeral_lease=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  107047. Return an un\-ordered list of lock holders
  107048. .INDENT 7.0
  107049. .TP
  107050. .B path
  107051. The path in zookeeper where the lock is
  107052. .TP
  107053. .B zk_hosts
  107054. zookeeper connect string
  107055. .TP
  107056. .B identifier
  107057. Name to identify this minion, if unspecified defaults to hostname
  107058. .TP
  107059. .B max_concurrency
  107060. Maximum number of lock holders
  107061. .TP
  107062. .B timeout
  107063. timeout to wait for the lock. A None timeout will block forever
  107064. .TP
  107065. .B ephemeral_lease
  107066. Whether the locks in zookeper should be ephemeral
  107067. .UNINDENT
  107068. .sp
  107069. Example:
  107070. .INDENT 7.0
  107071. .INDENT 3.5
  107072. .sp
  107073. .nf
  107074. .ft C
  107075. salt minion zk_concurrency.lock_holders /lock/path host1:1234,host2:1234
  107076. .ft P
  107077. .fi
  107078. .UNINDENT
  107079. .UNINDENT
  107080. .UNINDENT
  107081. .INDENT 0.0
  107082. .TP
  107083. .B salt.modules.zk_concurrency.party_members(path, zk_hosts=None, min_nodes=1, blocking=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  107084. Get the List of identifiers in a particular party, optionally waiting for the
  107085. specified minimum number of nodes (min_nodes) to appear
  107086. .INDENT 7.0
  107087. .TP
  107088. .B path
  107089. The path in zookeeper where the lock is
  107090. .TP
  107091. .B zk_hosts
  107092. zookeeper connect string
  107093. .TP
  107094. .B min_nodes
  107095. The minimum number of nodes expected to be present in the party
  107096. .TP
  107097. .B blocking
  107098. The boolean indicating if we need to block until min_nodes are available
  107099. .UNINDENT
  107100. .sp
  107101. Example:
  107102. .INDENT 7.0
  107103. .INDENT 3.5
  107104. .sp
  107105. .nf
  107106. .ft C
  107107. salt minion zk_concurrency.party_members /lock/path host1:1234,host2:1234
  107108. salt minion zk_concurrency.party_members /lock/path host1:1234,host2:1234 min_nodes=3 blocking=True
  107109. .ft P
  107110. .fi
  107111. .UNINDENT
  107112. .UNINDENT
  107113. .UNINDENT
  107114. .INDENT 0.0
  107115. .TP
  107116. .B salt.modules.zk_concurrency.unlock(path, zk_hosts=None, identifier=None, max_concurrency=1, ephemeral_lease=False, scheme=None, profile=None, username=None, password=None, default_acl=None)
  107117. Remove lease from semaphore
  107118. .INDENT 7.0
  107119. .TP
  107120. .B path
  107121. The path in zookeeper where the lock is
  107122. .TP
  107123. .B zk_hosts
  107124. zookeeper connect string
  107125. .TP
  107126. .B identifier
  107127. Name to identify this minion, if unspecified defaults to hostname
  107128. .TP
  107129. .B max_concurrency
  107130. Maximum number of lock holders
  107131. .TP
  107132. .B timeout
  107133. timeout to wait for the lock. A None timeout will block forever
  107134. .TP
  107135. .B ephemeral_lease
  107136. Whether the locks in zookeper should be ephemeral
  107137. .UNINDENT
  107138. .sp
  107139. Example:
  107140. .INDENT 7.0
  107141. .INDENT 3.5
  107142. .sp
  107143. .nf
  107144. .ft C
  107145. salt minion zk_concurrency.unlock /lock/path host1:1234,host2:1234
  107146. .ft P
  107147. .fi
  107148. .UNINDENT
  107149. .UNINDENT
  107150. .UNINDENT
  107151. .SS netapi modules
  107152. .TS
  107153. center;
  107154. |l|l|.
  107155. _
  107156. T{
  107157. \fBrest_cherrypy\fP
  107158. T} T{
  107159. T}
  107160. _
  107161. T{
  107162. \fBrest_tornado\fP
  107163. T} T{
  107164. T}
  107165. _
  107166. T{
  107167. \fBrest_wsgi\fP
  107168. T} T{
  107169. T}
  107170. _
  107171. .TE
  107172. .SS output modules
  107173. .sp
  107174. Follow one of the below links for further information and examples
  107175. .TS
  107176. center;
  107177. |l|l|.
  107178. _
  107179. T{
  107180. \fBdson\fP
  107181. T} T{
  107182. T}
  107183. _
  107184. T{
  107185. \fBhighstate\fP
  107186. T} T{
  107187. T}
  107188. _
  107189. T{
  107190. \fBjson_out\fP
  107191. T} T{
  107192. T}
  107193. _
  107194. T{
  107195. \fBkey\fP
  107196. T} T{
  107197. T}
  107198. _
  107199. T{
  107200. \fBnested\fP
  107201. T} T{
  107202. T}
  107203. _
  107204. T{
  107205. \fBnewline_values_only\fP
  107206. T} T{
  107207. T}
  107208. _
  107209. T{
  107210. \fBno_out_quiet\fP
  107211. T} T{
  107212. T}
  107213. _
  107214. T{
  107215. \fBno_return\fP
  107216. T} T{
  107217. T}
  107218. _
  107219. T{
  107220. \fBoverstatestage\fP
  107221. T} T{
  107222. T}
  107223. _
  107224. T{
  107225. \fBpony\fP
  107226. T} T{
  107227. T}
  107228. _
  107229. T{
  107230. \fBpprint_out\fP
  107231. T} T{
  107232. T}
  107233. _
  107234. T{
  107235. \fI\%profile\fP
  107236. T} T{
  107237. Class for profiling Python code.
  107238. T}
  107239. _
  107240. T{
  107241. \fBprogress\fP
  107242. T} T{
  107243. T}
  107244. _
  107245. T{
  107246. \fBraw\fP
  107247. T} T{
  107248. T}
  107249. _
  107250. T{
  107251. \fBtable_out\fP
  107252. T} T{
  107253. T}
  107254. _
  107255. T{
  107256. \fBtxt\fP
  107257. T} T{
  107258. T}
  107259. _
  107260. T{
  107261. \fBvirt_query\fP
  107262. T} T{
  107263. T}
  107264. _
  107265. T{
  107266. \fByaml_out\fP
  107267. T} T{
  107268. T}
  107269. _
  107270. .TE
  107271. .SS pillar modules
  107272. .TS
  107273. center;
  107274. |l|l|.
  107275. _
  107276. T{
  107277. \fBazureblob\fP
  107278. T} T{
  107279. T}
  107280. _
  107281. T{
  107282. \fBcmd_json\fP
  107283. T} T{
  107284. T}
  107285. _
  107286. T{
  107287. \fBcmd_yaml\fP
  107288. T} T{
  107289. T}
  107290. _
  107291. T{
  107292. \fBcmd_yamlex\fP
  107293. T} T{
  107294. T}
  107295. _
  107296. T{
  107297. \fBcobbler\fP
  107298. T} T{
  107299. T}
  107300. _
  107301. T{
  107302. \fBconfidant\fP
  107303. T} T{
  107304. T}
  107305. _
  107306. T{
  107307. \fBconsul_pillar\fP
  107308. T} T{
  107309. T}
  107310. _
  107311. T{
  107312. \fBcsvpillar\fP
  107313. T} T{
  107314. T}
  107315. _
  107316. T{
  107317. \fBdigicert\fP
  107318. T} T{
  107319. T}
  107320. _
  107321. T{
  107322. \fBdjango_orm\fP
  107323. T} T{
  107324. T}
  107325. _
  107326. T{
  107327. \fBec2_pillar\fP
  107328. T} T{
  107329. T}
  107330. _
  107331. T{
  107332. \fBetcd_pillar\fP
  107333. T} T{
  107334. T}
  107335. _
  107336. T{
  107337. \fBextra_minion_data_in_pillar\fP
  107338. T} T{
  107339. T}
  107340. _
  107341. T{
  107342. \fBfile_tree\fP
  107343. T} T{
  107344. T}
  107345. _
  107346. T{
  107347. \fBforeman\fP
  107348. T} T{
  107349. T}
  107350. _
  107351. T{
  107352. \fBgit_pillar\fP
  107353. T} T{
  107354. T}
  107355. _
  107356. T{
  107357. \fBgpg\fP
  107358. T} T{
  107359. T}
  107360. _
  107361. T{
  107362. \fBhg_pillar\fP
  107363. T} T{
  107364. T}
  107365. _
  107366. T{
  107367. \fBhiera\fP
  107368. T} T{
  107369. T}
  107370. _
  107371. T{
  107372. \fBhttp_json\fP
  107373. T} T{
  107374. T}
  107375. _
  107376. T{
  107377. \fBhttp_yaml\fP
  107378. T} T{
  107379. T}
  107380. _
  107381. T{
  107382. \fBlibvirt\fP
  107383. T} T{
  107384. T}
  107385. _
  107386. T{
  107387. \fBmakostack\fP
  107388. T} T{
  107389. T}
  107390. _
  107391. T{
  107392. \fBmongo\fP
  107393. T} T{
  107394. T}
  107395. _
  107396. T{
  107397. \fBmysql\fP
  107398. T} T{
  107399. T}
  107400. _
  107401. T{
  107402. \fBnacl\fP
  107403. T} T{
  107404. T}
  107405. _
  107406. T{
  107407. \fBnetbox\fP
  107408. T} T{
  107409. T}
  107410. _
  107411. T{
  107412. \fBneutron\fP
  107413. T} T{
  107414. T}
  107415. _
  107416. T{
  107417. \fBnodegroups\fP
  107418. T} T{
  107419. T}
  107420. _
  107421. T{
  107422. \fBpepa\fP
  107423. T} T{
  107424. T}
  107425. _
  107426. T{
  107427. \fBpillar_ldap\fP
  107428. T} T{
  107429. T}
  107430. _
  107431. T{
  107432. \fBpostgres\fP
  107433. T} T{
  107434. T}
  107435. _
  107436. T{
  107437. \fBpuppet\fP
  107438. T} T{
  107439. T}
  107440. _
  107441. T{
  107442. \fBreclass_adapter\fP
  107443. T} T{
  107444. T}
  107445. _
  107446. T{
  107447. \fBredismod\fP
  107448. T} T{
  107449. T}
  107450. _
  107451. T{
  107452. \fBrethinkdb_pillar\fP
  107453. T} T{
  107454. T}
  107455. _
  107456. T{
  107457. \fBs3\fP
  107458. T} T{
  107459. T}
  107460. _
  107461. T{
  107462. \fBsaltclass\fP
  107463. T} T{
  107464. T}
  107465. _
  107466. T{
  107467. \fBsql_base\fP
  107468. T} T{
  107469. T}
  107470. _
  107471. T{
  107472. \fBsqlcipher\fP
  107473. T} T{
  107474. T}
  107475. _
  107476. T{
  107477. \fI\%sqlite3\fP
  107478. T} T{
  107479. T}
  107480. _
  107481. T{
  107482. \fBstack\fP
  107483. T} T{
  107484. T}
  107485. _
  107486. T{
  107487. \fBsvn_pillar\fP
  107488. T} T{
  107489. T}
  107490. _
  107491. T{
  107492. \fBvarstack_pillar\fP
  107493. T} T{
  107494. T}
  107495. _
  107496. T{
  107497. \fBvault\fP
  107498. T} T{
  107499. T}
  107500. _
  107501. T{
  107502. \fBvenafi\fP
  107503. T} T{
  107504. T}
  107505. _
  107506. T{
  107507. \fBvirtkey\fP
  107508. T} T{
  107509. T}
  107510. _
  107511. T{
  107512. \fBvmware_pillar\fP
  107513. T} T{
  107514. T}
  107515. _
  107516. .TE
  107517. .SS proxy modules
  107518. .TS
  107519. center;
  107520. |l|l|.
  107521. _
  107522. T{
  107523. \fBarista_pyeapi\fP
  107524. T} T{
  107525. T}
  107526. _
  107527. T{
  107528. \fBchronos\fP
  107529. T} T{
  107530. T}
  107531. _
  107532. T{
  107533. \fBcimc\fP
  107534. T} T{
  107535. Proxy Minion interface module for managing Cisco Integrated Management Controller devices
  107536. T}
  107537. _
  107538. T{
  107539. \fBcisconso\fP
  107540. T} T{
  107541. Proxy Minion interface module for managing (practically) any network device with Cisco Network Services Orchestrator (Cisco NSO).
  107542. T}
  107543. _
  107544. T{
  107545. \fBdocker\fP
  107546. T} T{
  107547. Docker Proxy Minion
  107548. T}
  107549. _
  107550. T{
  107551. \fBdummy\fP
  107552. T} T{
  107553. T}
  107554. _
  107555. T{
  107556. \fBesxcluster\fP
  107557. T} T{
  107558. T}
  107559. _
  107560. T{
  107561. \fBesxdatacenter\fP
  107562. T} T{
  107563. T}
  107564. _
  107565. T{
  107566. \fBesxi\fP
  107567. T} T{
  107568. T}
  107569. _
  107570. T{
  107571. \fBesxvm\fP
  107572. T} T{
  107573. T}
  107574. _
  107575. T{
  107576. \fBfx2\fP
  107577. T} T{
  107578. T}
  107579. _
  107580. T{
  107581. \fBjunos\fP
  107582. T} T{
  107583. Interface with a Junos device via proxy\-minion.
  107584. T}
  107585. _
  107586. T{
  107587. \fBmarathon\fP
  107588. T} T{
  107589. T}
  107590. _
  107591. T{
  107592. \fBnapalm\fP
  107593. T} T{
  107594. T}
  107595. _
  107596. T{
  107597. \fBnetmiko_px\fP
  107598. T} T{
  107599. T}
  107600. _
  107601. T{
  107602. \fBnxos\fP
  107603. T} T{
  107604. T}
  107605. _
  107606. T{
  107607. \fBnxos_api\fP
  107608. T} T{
  107609. Proxy Minion to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  107610. T}
  107611. _
  107612. T{
  107613. \fBpanos\fP
  107614. T} T{
  107615. Proxy Minion interface module for managing Palo Alto firewall devices
  107616. T}
  107617. _
  107618. T{
  107619. \fBphilips_hue\fP
  107620. T} T{
  107621. T}
  107622. _
  107623. T{
  107624. \fBrest_sample\fP
  107625. T} T{
  107626. T}
  107627. _
  107628. T{
  107629. \fBssh_sample\fP
  107630. T} T{
  107631. T}
  107632. _
  107633. T{
  107634. \fBvcenter\fP
  107635. T} T{
  107636. T}
  107637. _
  107638. .TE
  107639. .SS salt.proxy.cimc module
  107640. .SS Proxy Minion interface module for managing Cisco Integrated Management Controller devices
  107641. .sp
  107642. New in version 2018.3.0.
  107643. .INDENT 0.0
  107644. .TP
  107645. .B codeauthor
  107646. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  107647. .TP
  107648. .B maturity
  107649. new
  107650. .TP
  107651. .B depends
  107652. none
  107653. .TP
  107654. .B platform
  107655. unix
  107656. .UNINDENT
  107657. .sp
  107658. This proxy minion enables Cisco Integrated Management Controller devices (hereafter referred to
  107659. as simply \(aqcimc\(aq devices to be treated individually like a Salt Minion.
  107660. .sp
  107661. The cimc proxy leverages the XML API functionality on the Cisco Integrated Management Controller.
  107662. The Salt proxy must have access to the cimc on HTTPS (tcp/443).
  107663. .sp
  107664. More in\-depth conceptual reading on Proxy Minions can be found in the
  107665. Proxy Minion section of Salt\(aqs
  107666. documentation.
  107667. .SS Configuration
  107668. .sp
  107669. To use this integration proxy module, please configure the following:
  107670. .SS Pillar
  107671. .sp
  107672. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  107673. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  107674. the ID.
  107675. .INDENT 0.0
  107676. .INDENT 3.5
  107677. .sp
  107678. .nf
  107679. .ft C
  107680. proxy:
  107681. proxytype: cimc
  107682. host: <ip or dns name of cimc host>
  107683. username: <cimc username>
  107684. password: <cimc password>
  107685. .ft P
  107686. .fi
  107687. .UNINDENT
  107688. .UNINDENT
  107689. .SS proxytype
  107690. .sp
  107691. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  107692. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  107693. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  107694. own proxy module, for example). To use this cimc Proxy Module, set this to
  107695. \fBcimc\fP\&.
  107696. .SS host
  107697. .sp
  107698. The location, or ip/dns, of the cimc host. Required.
  107699. .SS username
  107700. .sp
  107701. The username used to login to the cimc host. Required.
  107702. .SS password
  107703. .sp
  107704. The password used to login to the cimc host. Required.
  107705. .INDENT 0.0
  107706. .TP
  107707. .B salt.proxy.cimc.get_config_resolver_class(cid=None, hierarchical=False)
  107708. The configResolveClass method returns requested managed object in a given class.
  107709. .UNINDENT
  107710. .INDENT 0.0
  107711. .TP
  107712. .B salt.proxy.cimc.grains()
  107713. Get the grains from the proxied device
  107714. .UNINDENT
  107715. .INDENT 0.0
  107716. .TP
  107717. .B salt.proxy.cimc.grains_refresh()
  107718. Refresh the grains from the proxied device
  107719. .UNINDENT
  107720. .INDENT 0.0
  107721. .TP
  107722. .B salt.proxy.cimc.init(opts)
  107723. This function gets called when the proxy starts up.
  107724. .UNINDENT
  107725. .INDENT 0.0
  107726. .TP
  107727. .B salt.proxy.cimc.initialized()
  107728. Since grains are loaded in many different places and some of those
  107729. places occur before the proxy can be initialized, return whether
  107730. our init() function has been called
  107731. .UNINDENT
  107732. .INDENT 0.0
  107733. .TP
  107734. .B salt.proxy.cimc.logon()
  107735. Logs into the cimc device and returns the session cookie.
  107736. .UNINDENT
  107737. .INDENT 0.0
  107738. .TP
  107739. .B salt.proxy.cimc.logout(cookie=None)
  107740. Closes the session with the device.
  107741. .UNINDENT
  107742. .INDENT 0.0
  107743. .TP
  107744. .B salt.proxy.cimc.ping()
  107745. Returns true if the device is reachable, else false.
  107746. .UNINDENT
  107747. .INDENT 0.0
  107748. .TP
  107749. .B salt.proxy.cimc.prepare_return(x)
  107750. Converts the etree to dict
  107751. .UNINDENT
  107752. .INDENT 0.0
  107753. .TP
  107754. .B salt.proxy.cimc.set_config_modify(dn=None, inconfig=None, hierarchical=False)
  107755. The configConfMo method configures the specified managed object in a single subtree (for example, DN).
  107756. .UNINDENT
  107757. .INDENT 0.0
  107758. .TP
  107759. .B salt.proxy.cimc.shutdown()
  107760. Shutdown the connection to the proxy device. For this proxy,
  107761. shutdown is a no\-op.
  107762. .UNINDENT
  107763. .SS salt.proxy.cisconso
  107764. .sp
  107765. Proxy Minion interface module for managing (practically) any network device with
  107766. Cisco Network Services Orchestrator (Cisco NSO). Cisco NSO uses a series of
  107767. remote polling
  107768. agents, APIs and SSH commands to fetch network configuration and represent
  107769. it in a data model.
  107770. PyNSO, the Python module used by this proxy minion does the task of converting
  107771. native Python dictionaries
  107772. into NETCONF/YANG syntax that the REST API for Cisco NSO can then use to set
  107773. the configuration of the target
  107774. network device.
  107775. .INDENT 0.0
  107776. .TP
  107777. .B Supported devices:
  107778. .INDENT 7.0
  107779. .IP \(bu 2
  107780. A10 AX Series
  107781. .IP \(bu 2
  107782. Arista 7150 Series
  107783. .IP \(bu 2
  107784. Ciena 3000, 5000, ESM
  107785. .IP \(bu 2
  107786. H3c S5800 Series
  107787. .IP \(bu 2
  107788. Overture 1400, 2200, 5000, 5100, 6000
  107789. .IP \(bu 2
  107790. Accedian MetroNID
  107791. .IP \(bu 2
  107792. Avaya ERS 4000, SR8000, VSP 9000
  107793. .IP \(bu 2
  107794. .INDENT 2.0
  107795. .TP
  107796. .B Cisco: APIC\-DC, ASA, IOS, IOS XE, IOS XR, er, ME\-4600, NX OS,
  107797. Prime Network Registrar, Quantum, StarOS, UCS ManagWSA
  107798. .UNINDENT
  107799. .IP \(bu 2
  107800. Huawei: NE40E, quidway series, Enterprise Network Simulation Framework
  107801. .IP \(bu 2
  107802. PaloAlto PA\-2000, PA\-3000, Virtualized Firewalls
  107803. .IP \(bu 2
  107804. Adtran 900 Series
  107805. .IP \(bu 2
  107806. Brocade ADX, MLX, Netiron, Vyatta
  107807. .IP \(bu 2
  107808. Dell Force 10 Networking S\-Series
  107809. .IP \(bu 2
  107810. Infinera DTN\-X Multi\-Terabit Packet Optical Network Platform
  107811. .IP \(bu 2
  107812. Pulsecom SuperG
  107813. .IP \(bu 2
  107814. Adva 150CC Series
  107815. .IP \(bu 2
  107816. CableLabs Converged Cable Access Platform
  107817. .IP \(bu 2
  107818. Ericsson EFN324 Series, SE family
  107819. .IP \(bu 2
  107820. Juniper: Contrail, EX, M, MX, QFX, SRX, Virtual SRX
  107821. .IP \(bu 2
  107822. Quagga Routing Software
  107823. .IP \(bu 2
  107824. Affirmed Networks
  107825. .IP \(bu 2
  107826. Citrix Netscaler
  107827. .IP \(bu 2
  107828. F5 BIG\-IP
  107829. .IP \(bu 2
  107830. NEC iPasolink
  107831. .IP \(bu 2
  107832. Riverbed Steelhead Series
  107833. .IP \(bu 2
  107834. Alcatel\-Lucent 7XXX, SAM
  107835. .IP \(bu 2
  107836. Clavister
  107837. .IP \(bu 2
  107838. Fortinet
  107839. .IP \(bu 2
  107840. Nominum DCS
  107841. .IP \(bu 2
  107842. Sonus SBC 5000 Series
  107843. .IP \(bu 2
  107844. Allied Telesys
  107845. .IP \(bu 2
  107846. Open vSwitch
  107847. .UNINDENT
  107848. .UNINDENT
  107849. .sp
  107850. New in version 2016.11.0.
  107851. .INDENT 0.0
  107852. .TP
  107853. .B codeauthor
  107854. \fIAnthony Shaw <anthony.shaw@dimensiondata.com>\fP
  107855. .UNINDENT
  107856. .sp
  107857. This proxy minion enables a consistent interface to fetch, control and maintain
  107858. the configuration of network devices via a NETCONF\-compliant control plane.
  107859. Cisco Network Services Orchestrator.
  107860. .sp
  107861. More in\-depth conceptual reading on Proxy Minions can be found in the
  107862. Proxy Minion section of Salt\(aqs
  107863. documentation.
  107864. .SS Dependencies
  107865. .INDENT 0.0
  107866. .IP \(bu 2
  107867. pynso Python module
  107868. .UNINDENT
  107869. .SS PyNSO
  107870. .sp
  107871. PyNSO can be installed via pip:
  107872. .INDENT 0.0
  107873. .INDENT 3.5
  107874. .sp
  107875. .nf
  107876. .ft C
  107877. pip install pynso
  107878. .ft P
  107879. .fi
  107880. .UNINDENT
  107881. .UNINDENT
  107882. .SS Configuration
  107883. .sp
  107884. To use this integration proxy module, please configure the following:
  107885. .SS Pillar
  107886. .sp
  107887. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  107888. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  107889. the ID. At a minimum for communication with the NSO host, the pillar should
  107890. look like this:
  107891. .INDENT 0.0
  107892. .INDENT 3.5
  107893. .sp
  107894. .nf
  107895. .ft C
  107896. proxy:
  107897. proxytype: cisconso
  107898. host: <ip or dns name of host>
  107899. port: 8080
  107900. use_ssl: false
  107901. username: <username>
  107902. password: password
  107903. .ft P
  107904. .fi
  107905. .UNINDENT
  107906. .UNINDENT
  107907. .SS proxytype
  107908. .sp
  107909. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  107910. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  107911. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  107912. own proxy module, for example). To use this Cisco NSO Proxy Module, set this to
  107913. \fBcisconso\fP\&.
  107914. .SS host
  107915. .sp
  107916. The location, or IP/dns, of the Cisco NSO API host. Required.
  107917. .SS username
  107918. .sp
  107919. The username used to login to the Cisco NSO host, such as \fBadmin\fP\&. Required.
  107920. .SS passwords
  107921. .sp
  107922. The password for the given user. Required.
  107923. .SS use_ssl
  107924. .sp
  107925. Whether to use HTTPS messaging to speak to the API.
  107926. .SS port
  107927. .sp
  107928. The port that the Cisco NSO API is running on, 8080 by default
  107929. .SS Salt Proxy
  107930. .sp
  107931. After your pillar is in place, you can test the proxy. The proxy can run on
  107932. any machine that has network connectivity to your Salt Master and to the
  107933. Cisco NSO host in question. SaltStack recommends that the machine running the
  107934. salt\-proxy process also run a regular minion, though it is not strictly
  107935. necessary.
  107936. .sp
  107937. On the machine that will run the proxy, make sure
  107938. there is an \fB/etc/salt/proxy\fP
  107939. file with at least the following in it:
  107940. .INDENT 0.0
  107941. .INDENT 3.5
  107942. .sp
  107943. .nf
  107944. .ft C
  107945. master: <ip or hostname of salt\-master>
  107946. .ft P
  107947. .fi
  107948. .UNINDENT
  107949. .UNINDENT
  107950. .sp
  107951. You can then start the salt\-proxy process with:
  107952. .INDENT 0.0
  107953. .INDENT 3.5
  107954. .sp
  107955. .nf
  107956. .ft C
  107957. salt\-proxy \-\-proxyid <id you want to give the host>
  107958. .ft P
  107959. .fi
  107960. .UNINDENT
  107961. .UNINDENT
  107962. .sp
  107963. You may want to add \fB\-l debug\fP to run the above in the foreground in
  107964. debug mode just to make sure everything is OK.
  107965. .sp
  107966. Next, accept the key for the proxy on your salt\-master, just like you
  107967. would for a regular minion:
  107968. .INDENT 0.0
  107969. .INDENT 3.5
  107970. .sp
  107971. .nf
  107972. .ft C
  107973. salt\-key \-a <id you gave the cisconso host>
  107974. .ft P
  107975. .fi
  107976. .UNINDENT
  107977. .UNINDENT
  107978. .sp
  107979. You can confirm that the pillar data is in place for the proxy:
  107980. .INDENT 0.0
  107981. .INDENT 3.5
  107982. .sp
  107983. .nf
  107984. .ft C
  107985. salt <id> pillar.items
  107986. .ft P
  107987. .fi
  107988. .UNINDENT
  107989. .UNINDENT
  107990. .sp
  107991. And now you should be able to ping the Cisco NSO host to make sure it is
  107992. responding:
  107993. .INDENT 0.0
  107994. .INDENT 3.5
  107995. .sp
  107996. .nf
  107997. .ft C
  107998. salt <id> test.ping
  107999. .ft P
  108000. .fi
  108001. .UNINDENT
  108002. .UNINDENT
  108003. .INDENT 0.0
  108004. .TP
  108005. .B salt.proxy.cisconso.apply_rollback(datastore, name)
  108006. Apply a system rollback
  108007. .INDENT 7.0
  108008. .TP
  108009. .B Parameters
  108010. .INDENT 7.0
  108011. .IP \(bu 2
  108012. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108013. One of the NETCONF store IETF types
  108014. .IP \(bu 2
  108015. \fBname\fP (\fBstr\fP) \-\- an ID of the rollback to restore
  108016. .UNINDENT
  108017. .UNINDENT
  108018. .UNINDENT
  108019. .INDENT 0.0
  108020. .TP
  108021. .B salt.proxy.cisconso.get_data(datastore, path)
  108022. Get the configuration of the device tree at the given path
  108023. .INDENT 7.0
  108024. .TP
  108025. .B Parameters
  108026. .INDENT 7.0
  108027. .IP \(bu 2
  108028. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108029. One of the NETCONF store IETF types
  108030. .IP \(bu 2
  108031. \fBpath\fP (\fBlist\fP of \fBstr\fP OR \fBtuple\fP) \-\- The device path, a list of element names in order,
  108032. comma separated
  108033. .UNINDENT
  108034. .TP
  108035. .B Returns
  108036. The network configuration at that tree
  108037. .TP
  108038. .B Return type
  108039. \fBdict\fP
  108040. .UNINDENT
  108041. .INDENT 7.0
  108042. .INDENT 3.5
  108043. .sp
  108044. .nf
  108045. .ft C
  108046. salt cisco\-nso cisconso.get_data devices
  108047. .ft P
  108048. .fi
  108049. .UNINDENT
  108050. .UNINDENT
  108051. .UNINDENT
  108052. .INDENT 0.0
  108053. .TP
  108054. .B salt.proxy.cisconso.get_rollback(name)
  108055. Get the backup of stored a configuration rollback
  108056. .INDENT 7.0
  108057. .TP
  108058. .B Parameters
  108059. \fBname\fP (\fBstr\fP) \-\- Typically an ID of the backup
  108060. .TP
  108061. .B Return type
  108062. \fBstr\fP
  108063. .TP
  108064. .B Returns
  108065. the contents of the rollback snapshot
  108066. .UNINDENT
  108067. .UNINDENT
  108068. .INDENT 0.0
  108069. .TP
  108070. .B salt.proxy.cisconso.get_rollbacks()
  108071. Get a list of stored configuration rollbacks
  108072. .UNINDENT
  108073. .INDENT 0.0
  108074. .TP
  108075. .B salt.proxy.cisconso.grains()
  108076. Get the grains from the proxy device.
  108077. .UNINDENT
  108078. .INDENT 0.0
  108079. .TP
  108080. .B salt.proxy.cisconso.init(opts)
  108081. .UNINDENT
  108082. .INDENT 0.0
  108083. .TP
  108084. .B salt.proxy.cisconso.ping()
  108085. Check to see if the host is responding. Returns False if the host didn\(aqt
  108086. respond, True otherwise.
  108087. .sp
  108088. CLI Example:
  108089. .INDENT 7.0
  108090. .INDENT 3.5
  108091. .sp
  108092. .nf
  108093. .ft C
  108094. salt cisco\-nso test.ping
  108095. .ft P
  108096. .fi
  108097. .UNINDENT
  108098. .UNINDENT
  108099. .UNINDENT
  108100. .INDENT 0.0
  108101. .TP
  108102. .B salt.proxy.cisconso.set_data_value(datastore, path, data)
  108103. Get a data entry in a datastore
  108104. .INDENT 7.0
  108105. .TP
  108106. .B Parameters
  108107. .INDENT 7.0
  108108. .IP \(bu 2
  108109. \fBdatastore\fP (\fBDatastoreType\fP (\fBstr\fP enum).) \-\- The datastore, e.g. running, operational.
  108110. One of the NETCONF store IETF types
  108111. .IP \(bu 2
  108112. \fBpath\fP (\fBlist\fP of \fBstr\fP OR \fBtuple\fP) \-\- The device path to set the value at,
  108113. a list of element names in order, comma separated
  108114. .IP \(bu 2
  108115. \fBdata\fP (\fBdict\fP) \-\- The new value at the given path
  108116. .UNINDENT
  108117. .TP
  108118. .B Return type
  108119. \fBbool\fP
  108120. .TP
  108121. .B Returns
  108122. \fBTrue\fP if successful, otherwise error.
  108123. .UNINDENT
  108124. .UNINDENT
  108125. .INDENT 0.0
  108126. .TP
  108127. .B salt.proxy.cisconso.shutdown()
  108128. Shutdown the connection to the proxy device. For this proxy,
  108129. shutdown is a no\-op.
  108130. .UNINDENT
  108131. .SS salt.proxy.docker module
  108132. .sp
  108133. Docker Proxy Minion
  108134. .INDENT 0.0
  108135. .TP
  108136. .B depends
  108137. docker
  108138. .UNINDENT
  108139. .sp
  108140. This proxy minion is just a shim to the docker executor, which will use the
  108141. \fBdocker.call\fP for everything except
  108142. state runs.
  108143. .sp
  108144. To configure the proxy minion:
  108145. .INDENT 0.0
  108146. .INDENT 3.5
  108147. .sp
  108148. .nf
  108149. .ft C
  108150. proxy:
  108151. proxytype: docker
  108152. name: festive_leakey
  108153. .ft P
  108154. .fi
  108155. .UNINDENT
  108156. .UNINDENT
  108157. .sp
  108158. It is also possible to just name the proxy minion the same name as the
  108159. container, and use grains to configure the proxy minion:
  108160. .INDENT 0.0
  108161. .INDENT 3.5
  108162. .sp
  108163. .nf
  108164. .ft C
  108165. proxy:
  108166. proxytype: docker
  108167. name: {{grains[\(aqid\(aq]}}
  108168. .ft P
  108169. .fi
  108170. .UNINDENT
  108171. .UNINDENT
  108172. .sp
  108173. name
  108174. .INDENT 0.0
  108175. .INDENT 3.5
  108176. Name of the docker container
  108177. .UNINDENT
  108178. .UNINDENT
  108179. .INDENT 0.0
  108180. .TP
  108181. .B salt.proxy.docker.init(opts)
  108182. Always initialize
  108183. .UNINDENT
  108184. .INDENT 0.0
  108185. .TP
  108186. .B salt.proxy.docker.initialized()
  108187. This should always be initialized
  108188. .UNINDENT
  108189. .INDENT 0.0
  108190. .TP
  108191. .B salt.proxy.docker.module_executors()
  108192. List of module executors to use for this Proxy Minion
  108193. .UNINDENT
  108194. .INDENT 0.0
  108195. .TP
  108196. .B salt.proxy.docker.shutdown(opts)
  108197. Nothing needs to be done to shutdown
  108198. .UNINDENT
  108199. .SS salt.proxy.junos
  108200. .sp
  108201. Interface with a Junos device via proxy\-minion. To connect to a junos device via junos proxy, specify the host information in the pillar in \(aq/srv/pillar/details.sls\(aq
  108202. .INDENT 0.0
  108203. .INDENT 3.5
  108204. .sp
  108205. .nf
  108206. .ft C
  108207. proxy:
  108208. proxytype: junos
  108209. host: <ip or dns name of host>
  108210. username: <username>
  108211. port: 830
  108212. password: <secret>
  108213. .ft P
  108214. .fi
  108215. .UNINDENT
  108216. .UNINDENT
  108217. .sp
  108218. In \(aq/srv/pillar/top.sls\(aq map the device details with the proxy name.
  108219. .INDENT 0.0
  108220. .INDENT 3.5
  108221. .sp
  108222. .nf
  108223. .ft C
  108224. base:
  108225. \(aqvmx\(aq:
  108226. \- details
  108227. .ft P
  108228. .fi
  108229. .UNINDENT
  108230. .UNINDENT
  108231. .sp
  108232. After storing the device information in the pillar, configure the proxy in \(aq/etc/salt/proxy\(aq
  108233. .INDENT 0.0
  108234. .INDENT 3.5
  108235. .sp
  108236. .nf
  108237. .ft C
  108238. master: <ip or hostname of salt\-master>
  108239. .ft P
  108240. .fi
  108241. .UNINDENT
  108242. .UNINDENT
  108243. .sp
  108244. Run the salt proxy via the following command:
  108245. .INDENT 0.0
  108246. .INDENT 3.5
  108247. .sp
  108248. .nf
  108249. .ft C
  108250. salt\-proxy \-\-proxyid=vmx
  108251. .ft P
  108252. .fi
  108253. .UNINDENT
  108254. .UNINDENT
  108255. .INDENT 0.0
  108256. .TP
  108257. .B salt.proxy.junos.alive(opts)
  108258. Validate and return the connection status with the remote device.
  108259. .sp
  108260. New in version 2018.3.0.
  108261. .UNINDENT
  108262. .INDENT 0.0
  108263. .TP
  108264. .B salt.proxy.junos.conn()
  108265. .UNINDENT
  108266. .INDENT 0.0
  108267. .TP
  108268. .B salt.proxy.junos.get_serialized_facts()
  108269. .UNINDENT
  108270. .INDENT 0.0
  108271. .TP
  108272. .B salt.proxy.junos.init(opts)
  108273. Open the connection to the Junos device, login, and bind to the
  108274. Resource class
  108275. .UNINDENT
  108276. .INDENT 0.0
  108277. .TP
  108278. .B salt.proxy.junos.initialized()
  108279. .UNINDENT
  108280. .INDENT 0.0
  108281. .TP
  108282. .B salt.proxy.junos.ping()
  108283. Ping? Pong!
  108284. .UNINDENT
  108285. .INDENT 0.0
  108286. .TP
  108287. .B salt.proxy.junos.proxytype()
  108288. Returns the name of this proxy
  108289. .UNINDENT
  108290. .INDENT 0.0
  108291. .TP
  108292. .B salt.proxy.junos.shutdown(opts)
  108293. This is called when the proxy\-minion is exiting to make sure the
  108294. connection to the device is closed cleanly.
  108295. .UNINDENT
  108296. .SS salt.proxy.nxos_api module
  108297. .sp
  108298. Proxy Minion to manage Cisco Nexus Switches (NX\-OS) over the NX\-API
  108299. .sp
  108300. New in version 2019.2.0.
  108301. .sp
  108302. Proxy module for managing Cisco Nexus switches via the NX\-API.
  108303. .INDENT 0.0
  108304. .TP
  108305. .B codeauthor
  108306. Mircea Ulinic <\fI\%ping@mirceaulinic.net\fP>
  108307. .TP
  108308. .B maturity
  108309. new
  108310. .TP
  108311. .B platform
  108312. any
  108313. .UNINDENT
  108314. .SS Usage
  108315. .sp
  108316. \fBNOTE:\fP
  108317. .INDENT 0.0
  108318. .INDENT 3.5
  108319. To be able to use this module you need to enable to NX\-API on your switch,
  108320. by executing \fBfeature nxapi\fP in configuration mode.
  108321. .sp
  108322. Configuration example:
  108323. .INDENT 0.0
  108324. .INDENT 3.5
  108325. .sp
  108326. .nf
  108327. .ft C
  108328. switch# conf t
  108329. switch(config)# feature nxapi
  108330. .ft P
  108331. .fi
  108332. .UNINDENT
  108333. .UNINDENT
  108334. .sp
  108335. To check that NX\-API is properly enabled, execute \fBshow nxapi\fP\&.
  108336. .sp
  108337. Output example:
  108338. .INDENT 0.0
  108339. .INDENT 3.5
  108340. .sp
  108341. .nf
  108342. .ft C
  108343. switch# show nxapi
  108344. nxapi enabled
  108345. HTTPS Listen on port 443
  108346. .ft P
  108347. .fi
  108348. .UNINDENT
  108349. .UNINDENT
  108350. .UNINDENT
  108351. .UNINDENT
  108352. .sp
  108353. \fBNOTE:\fP
  108354. .INDENT 0.0
  108355. .INDENT 3.5
  108356. NX\-API requires modern NXOS distributions, typically at least 7.0 depending
  108357. on the hardware. Due to reliability reasons it is recommended to run the
  108358. most recent version.
  108359. .sp
  108360. Check \fI\%https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus7000/sw/programmability/guide/b_Cisco_Nexus_7000_Series_NX\-OS_Programmability_Guide/b_Cisco_Nexus_7000_Series_NX\-OS_Programmability_Guide_chapter_0101.html\fP
  108361. for more details.
  108362. .UNINDENT
  108363. .UNINDENT
  108364. .SS Pillar
  108365. .sp
  108366. The \fBnxos_api\fP proxy configuration requires the following parameters in order
  108367. to connect to the network switch:
  108368. .INDENT 0.0
  108369. .TP
  108370. .B transport: \fBhttps\fP
  108371. Specifies the type of connection transport to use. Valid values for the
  108372. connection are \fBhttp\fP, and \fBhttps\fP\&.
  108373. .TP
  108374. .B host: \fBlocalhost\fP
  108375. The IP address or DNS host name of the connection device.
  108376. .TP
  108377. .B username: \fBadmin\fP
  108378. The username to pass to the device to authenticate the NX\-API connection.
  108379. .TP
  108380. .B password
  108381. The password to pass to the device to authenticate the NX\-API connection.
  108382. .TP
  108383. .B port
  108384. The TCP port of the endpoint for the NX\-API connection. If this keyword is
  108385. not specified, the default value is automatically determined by the
  108386. transport type (\fB80\fP for \fBhttp\fP, or \fB443\fP for \fBhttps\fP).
  108387. .TP
  108388. .B timeout: \fB60\fP
  108389. Time in seconds to wait for the device to respond. Default: 60 seconds.
  108390. .TP
  108391. .B verify: \fBTrue\fP
  108392. Either a boolean, in which case it controls whether we verify the NX\-API
  108393. TLS certificate, or a string, in which case it must be a path to a CA bundle
  108394. to use. Defaults to \fBTrue\fP\&.
  108395. .sp
  108396. When there is no certificate configuration on the device and this option is
  108397. set as \fBTrue\fP (default), the commands will fail with the following error:
  108398. \fBSSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)\fP\&.
  108399. In this case, you either need to configure a proper certificate on the
  108400. device (\fIrecommended\fP), or bypass the checks setting this argument as \fBFalse\fP
  108401. with all the security risks considered.
  108402. .sp
  108403. Check \fI\%https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus3000/sw/programmability/6_x/b_Cisco_Nexus_3000_Series_NX\-OS_Programmability_Guide/b_Cisco_Nexus_3000_Series_NX\-OS_Programmability_Guide_chapter_01.html\fP
  108404. to see how to properly configure the certificate.
  108405. .UNINDENT
  108406. .sp
  108407. All the arguments may be optional, depending on your setup.
  108408. .SS Proxy Pillar Example
  108409. .INDENT 0.0
  108410. .INDENT 3.5
  108411. .sp
  108412. .nf
  108413. .ft C
  108414. proxy:
  108415. proxytype: nxos_api
  108416. host: switch1.example.com
  108417. username: example
  108418. password: example
  108419. .ft P
  108420. .fi
  108421. .UNINDENT
  108422. .UNINDENT
  108423. .INDENT 0.0
  108424. .TP
  108425. .B salt.proxy.nxos_api.get_conn_args()
  108426. Returns the connection arguments of the Proxy Minion.
  108427. .UNINDENT
  108428. .INDENT 0.0
  108429. .TP
  108430. .B salt.proxy.nxos_api.init(opts)
  108431. Open the connection to the Nexsu switch over the NX\-API.
  108432. .sp
  108433. As the communication is HTTP based, there is no connection to maintain,
  108434. however, in order to test the connectivity and make sure we are able to
  108435. bring up this Minion, we are executing a very simple command (\fBshow clock\fP)
  108436. which doesn\(aqt come with much overhead and it\(aqs sufficient to confirm we are
  108437. indeed able to connect to the NX\-API endpoint as configured.
  108438. .UNINDENT
  108439. .INDENT 0.0
  108440. .TP
  108441. .B salt.proxy.nxos_api.initialized()
  108442. Connection finished initializing?
  108443. .UNINDENT
  108444. .INDENT 0.0
  108445. .TP
  108446. .B salt.proxy.nxos_api.ping()
  108447. Connection open successfully?
  108448. .UNINDENT
  108449. .INDENT 0.0
  108450. .TP
  108451. .B salt.proxy.nxos_api.rpc(commands, method=u\(aqcli\(aq, **kwargs)
  108452. Executes an RPC request over the NX\-API.
  108453. .UNINDENT
  108454. .INDENT 0.0
  108455. .TP
  108456. .B salt.proxy.nxos_api.shutdown(opts)
  108457. Closes connection with the device.
  108458. .UNINDENT
  108459. .SS salt.proxy.panos module
  108460. .SS Proxy Minion interface module for managing Palo Alto firewall devices
  108461. .sp
  108462. New in version 2018.3.0.
  108463. .INDENT 0.0
  108464. .TP
  108465. .B codeauthor
  108466. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  108467. .TP
  108468. .B maturity
  108469. new
  108470. .TP
  108471. .B depends
  108472. none
  108473. .TP
  108474. .B platform
  108475. unix
  108476. .UNINDENT
  108477. .sp
  108478. This proxy minion enables Palo Alto firewalls (hereafter referred to
  108479. as simply \(aqpanos\(aq) to be treated individually like a Salt Minion.
  108480. .sp
  108481. The panos proxy leverages the XML API functionality on the Palo Alto
  108482. firewall. The Salt proxy must have access to the Palo Alto firewall on
  108483. HTTPS (tcp/443).
  108484. .sp
  108485. More in\-depth conceptual reading on Proxy Minions can be found in the
  108486. Proxy Minion section of Salt\(aqs
  108487. documentation.
  108488. .SS Configuration
  108489. .sp
  108490. To use this integration proxy module, please configure the following:
  108491. .SS Pillar
  108492. .sp
  108493. Proxy minions get their configuration from Salt\(aqs Pillar. Every proxy must
  108494. have a stanza in Pillar and a reference in the Pillar top\-file that matches
  108495. the ID. There are four connection options available for the panos proxy module.
  108496. .INDENT 0.0
  108497. .IP \(bu 2
  108498. Direct Device (Password)
  108499. .IP \(bu 2
  108500. Direct Device (API Key)
  108501. .IP \(bu 2
  108502. Panorama Pass\-Through (Password)
  108503. .IP \(bu 2
  108504. Panorama Pass\-Through (API Key)
  108505. .UNINDENT
  108506. .SS Direct Device (Password)
  108507. .sp
  108508. The direct device configuration configures the proxy to connect directly to
  108509. the device with username and password.
  108510. .INDENT 0.0
  108511. .INDENT 3.5
  108512. .sp
  108513. .nf
  108514. .ft C
  108515. proxy:
  108516. proxytype: panos
  108517. host: <ip or dns name of panos host>
  108518. username: <panos username>
  108519. password: <panos password>
  108520. .ft P
  108521. .fi
  108522. .UNINDENT
  108523. .UNINDENT
  108524. .SS proxytype
  108525. .sp
  108526. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108527. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108528. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108529. own proxy module, for example). To use this panos Proxy Module, set this to
  108530. \fBpanos\fP\&.
  108531. .SS host
  108532. .sp
  108533. The location, or ip/dns, of the panos host. Required.
  108534. .SS username
  108535. .sp
  108536. The username used to login to the panos host. Required.
  108537. .SS password
  108538. .sp
  108539. The password used to login to the panos host. Required.
  108540. .SS Direct Device (API Key)
  108541. .sp
  108542. Palo Alto devices allow for access to the XML API with a generated \(aqAPI key\(aq_
  108543. instead of username and password.
  108544. .INDENT 0.0
  108545. .INDENT 3.5
  108546. .sp
  108547. .nf
  108548. .ft C
  108549. proxy:
  108550. proxytype: panos
  108551. host: <ip or dns name of panos host>
  108552. apikey: <panos generated api key>
  108553. .ft P
  108554. .fi
  108555. .UNINDENT
  108556. .UNINDENT
  108557. .SS proxytype
  108558. .sp
  108559. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108560. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108561. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108562. own proxy module, for example). To use this panos Proxy Module, set this to
  108563. \fBpanos\fP\&.
  108564. .SS host
  108565. .sp
  108566. The location, or ip/dns, of the panos host. Required.
  108567. .SS apikey
  108568. .sp
  108569. The generated XML API key for the panos host. Required.
  108570. .SS Panorama Pass\-Through (Password)
  108571. .sp
  108572. The Panorama pass\-through method sends all connections through the Panorama
  108573. management system. It passes the connections to the appropriate device using
  108574. the serial number of the Palo Alto firewall.
  108575. .sp
  108576. This option will reduce the number of connections that must be present for the
  108577. proxy server. It will only require a connection to the Panorama server.
  108578. .sp
  108579. The username and password will be for authentication to the Panorama server,
  108580. not the panos device.
  108581. .INDENT 0.0
  108582. .INDENT 3.5
  108583. .sp
  108584. .nf
  108585. .ft C
  108586. proxy:
  108587. proxytype: panos
  108588. serial: <serial number of panos host>
  108589. host: <ip or dns name of the panorama server>
  108590. username: <panorama server username>
  108591. password: <panorama server password>
  108592. .ft P
  108593. .fi
  108594. .UNINDENT
  108595. .UNINDENT
  108596. .SS proxytype
  108597. .sp
  108598. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108599. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108600. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108601. own proxy module, for example). To use this panos Proxy Module, set this to
  108602. \fBpanos\fP\&.
  108603. .SS serial
  108604. .sp
  108605. The serial number of the panos host. Required.
  108606. .SS host
  108607. .sp
  108608. The location, or ip/dns, of the Panorama server. Required.
  108609. .SS username
  108610. .sp
  108611. The username used to login to the Panorama server. Required.
  108612. .SS password
  108613. .sp
  108614. The password used to login to the Panorama server. Required.
  108615. .SS Panorama Pass\-Through (API Key)
  108616. .sp
  108617. The Panorama server can also utilize a generated \(aqAPI key\(aq_ for authentication.
  108618. .INDENT 0.0
  108619. .INDENT 3.5
  108620. .sp
  108621. .nf
  108622. .ft C
  108623. proxy:
  108624. proxytype: panos
  108625. serial: <serial number of panos host>
  108626. host: <ip or dns name of the panorama server>
  108627. apikey: <panos generated api key>
  108628. .ft P
  108629. .fi
  108630. .UNINDENT
  108631. .UNINDENT
  108632. .SS proxytype
  108633. .sp
  108634. The \fBproxytype\fP key and value pair is critical, as it tells Salt which
  108635. interface to load from the \fBproxy\fP directory in Salt\(aqs install hierarchy,
  108636. or from \fB/srv/salt/_proxy\fP on the Salt Master (if you have created your
  108637. own proxy module, for example). To use this panos Proxy Module, set this to
  108638. \fBpanos\fP\&.
  108639. .SS serial
  108640. .sp
  108641. The serial number of the panos host. Required.
  108642. .SS host
  108643. .sp
  108644. The location, or ip/dns, of the Panorama server. Required.
  108645. .SS apikey
  108646. .sp
  108647. The generated XML API key for the Panorama server. Required.
  108648. .INDENT 0.0
  108649. .TP
  108650. .B salt.proxy.panos.call(payload=None)
  108651. This function captures the query string and sends it to the Palo Alto device.
  108652. .UNINDENT
  108653. .INDENT 0.0
  108654. .TP
  108655. .B salt.proxy.panos.grains()
  108656. Get the grains from the proxied device
  108657. .UNINDENT
  108658. .INDENT 0.0
  108659. .TP
  108660. .B salt.proxy.panos.grains_refresh()
  108661. Refresh the grains from the proxied device
  108662. .UNINDENT
  108663. .INDENT 0.0
  108664. .TP
  108665. .B salt.proxy.panos.init(opts)
  108666. This function gets called when the proxy starts up. For
  108667. panos devices, a determination is made on the connection type
  108668. and the appropriate connection details that must be cached.
  108669. .UNINDENT
  108670. .INDENT 0.0
  108671. .TP
  108672. .B salt.proxy.panos.initialized()
  108673. Since grains are loaded in many different places and some of those
  108674. places occur before the proxy can be initialized, return whether
  108675. our init() function has been called
  108676. .UNINDENT
  108677. .INDENT 0.0
  108678. .TP
  108679. .B salt.proxy.panos.is_required_version(required_version=u\(aq0.0.0\(aq)
  108680. Because different versions of Palo Alto support different command sets, this function
  108681. will return true if the current version of Palo Alto supports the required command.
  108682. .UNINDENT
  108683. .INDENT 0.0
  108684. .TP
  108685. .B salt.proxy.panos.ping()
  108686. Returns true if the device is reachable, else false.
  108687. .UNINDENT
  108688. .INDENT 0.0
  108689. .TP
  108690. .B salt.proxy.panos.shutdown()
  108691. Shutdown the connection to the proxy device. For this proxy,
  108692. shutdown is a no\-op.
  108693. .UNINDENT
  108694. .SS queue modules
  108695. .TS
  108696. center;
  108697. |l|l|.
  108698. _
  108699. T{
  108700. \fBpgjsonb_queue\fP
  108701. T} T{
  108702. T}
  108703. _
  108704. T{
  108705. \fBsqlite_queue\fP
  108706. T} T{
  108707. T}
  108708. _
  108709. .TE
  108710. .SS roster modules
  108711. .TS
  108712. center;
  108713. |l|l|.
  108714. _
  108715. T{
  108716. \fBansible\fP
  108717. T} T{
  108718. T}
  108719. _
  108720. T{
  108721. \fBcache\fP
  108722. T} T{
  108723. T}
  108724. _
  108725. T{
  108726. \fBcloud\fP
  108727. T} T{
  108728. T}
  108729. _
  108730. T{
  108731. \fBclustershell\fP
  108732. T} T{
  108733. T}
  108734. _
  108735. T{
  108736. \fBflat\fP
  108737. T} T{
  108738. T}
  108739. _
  108740. T{
  108741. \fI\%range\fP
  108742. T} T{
  108743. T}
  108744. _
  108745. T{
  108746. \fBscan\fP
  108747. T} T{
  108748. T}
  108749. _
  108750. T{
  108751. \fBsshconfig\fP
  108752. T} T{
  108753. T}
  108754. _
  108755. T{
  108756. \fBterraform\fP
  108757. T} T{
  108758. T}
  108759. _
  108760. .TE
  108761. .SS runner modules
  108762. .TS
  108763. center;
  108764. |l|l|.
  108765. _
  108766. T{
  108767. \fBasam\fP
  108768. T} T{
  108769. Novell ASAM Runner
  108770. T}
  108771. _
  108772. T{
  108773. \fBauth\fP
  108774. T} T{
  108775. T}
  108776. _
  108777. T{
  108778. \fBbgp\fP
  108779. T} T{
  108780. T}
  108781. _
  108782. T{
  108783. \fBcache\fP
  108784. T} T{
  108785. T}
  108786. _
  108787. T{
  108788. \fBcloud\fP
  108789. T} T{
  108790. T}
  108791. _
  108792. T{
  108793. \fBconfig\fP
  108794. T} T{
  108795. T}
  108796. _
  108797. T{
  108798. \fBddns\fP
  108799. T} T{
  108800. T}
  108801. _
  108802. T{
  108803. \fBdigicertapi\fP
  108804. T} T{
  108805. T}
  108806. _
  108807. T{
  108808. \fBdoc\fP
  108809. T} T{
  108810. T}
  108811. _
  108812. T{
  108813. \fBdrac\fP
  108814. T} T{
  108815. Manage Dell DRAC from the Master
  108816. T}
  108817. _
  108818. T{
  108819. \fBerror\fP
  108820. T} T{
  108821. T}
  108822. _
  108823. T{
  108824. \fBevent\fP
  108825. T} T{
  108826. T}
  108827. _
  108828. T{
  108829. \fBf5\fP
  108830. T} T{
  108831. Runner to provide F5 Load Balancer functionality
  108832. T}
  108833. _
  108834. T{
  108835. \fBfileserver\fP
  108836. T} T{
  108837. T}
  108838. _
  108839. T{
  108840. \fBgit_pillar\fP
  108841. T} T{
  108842. T}
  108843. _
  108844. T{
  108845. \fI\%http\fP
  108846. T} T{
  108847. T}
  108848. _
  108849. T{
  108850. \fBjobs\fP
  108851. T} T{
  108852. T}
  108853. _
  108854. T{
  108855. \fBlaunchd\fP
  108856. T} T{
  108857. Manage launchd plist files
  108858. T}
  108859. _
  108860. T{
  108861. \fBlxc\fP
  108862. T} T{
  108863. T}
  108864. _
  108865. T{
  108866. \fBmanage\fP
  108867. T} T{
  108868. T}
  108869. _
  108870. T{
  108871. \fBmattermost\fP
  108872. T} T{
  108873. T}
  108874. _
  108875. T{
  108876. \fBmine\fP
  108877. T} T{
  108878. T}
  108879. _
  108880. T{
  108881. \fBnacl\fP
  108882. T} T{
  108883. T}
  108884. _
  108885. T{
  108886. \fBnet\fP
  108887. T} T{
  108888. T}
  108889. _
  108890. T{
  108891. \fBnetwork\fP
  108892. T} T{
  108893. T}
  108894. _
  108895. T{
  108896. \fBpagerduty\fP
  108897. T} T{
  108898. T}
  108899. _
  108900. T{
  108901. \fBpillar\fP
  108902. T} T{
  108903. T}
  108904. _
  108905. T{
  108906. \fBpkg\fP
  108907. T} T{
  108908. T}
  108909. _
  108910. T{
  108911. \fI\%queue\fP
  108912. T} T{
  108913. T}
  108914. _
  108915. T{
  108916. \fBreactor\fP
  108917. T} T{
  108918. T}
  108919. _
  108920. T{
  108921. \fBsalt\fP
  108922. T} T{
  108923. Salt package
  108924. T}
  108925. _
  108926. T{
  108927. \fBsaltutil\fP
  108928. T} T{
  108929. T}
  108930. _
  108931. T{
  108932. \fBsdb\fP
  108933. T} T{
  108934. T}
  108935. _
  108936. T{
  108937. \fBsmartos_vmadm\fP
  108938. T} T{
  108939. T}
  108940. _
  108941. T{
  108942. \fBspacewalk\fP
  108943. T} T{
  108944. Spacewalk Runner
  108945. T}
  108946. _
  108947. T{
  108948. \fBssh\fP
  108949. T} T{
  108950. T}
  108951. _
  108952. T{
  108953. \fBstate\fP
  108954. T} T{
  108955. T}
  108956. _
  108957. T{
  108958. \fBsurvey\fP
  108959. T} T{
  108960. T}
  108961. _
  108962. T{
  108963. \fBtest\fP
  108964. T} T{
  108965. This runner is used only for test purposes and servers no production purpose
  108966. T}
  108967. _
  108968. T{
  108969. \fBthin\fP
  108970. T} T{
  108971. T}
  108972. _
  108973. T{
  108974. \fBvault\fP
  108975. T} T{
  108976. T}
  108977. _
  108978. T{
  108979. \fBvenafiapi\fP
  108980. T} T{
  108981. T}
  108982. _
  108983. T{
  108984. \fBvirt\fP
  108985. T} T{
  108986. T}
  108987. _
  108988. T{
  108989. \fBvistara\fP
  108990. T} T{
  108991. T}
  108992. _
  108993. T{
  108994. \fBwinrepo\fP
  108995. T} T{
  108996. T}
  108997. _
  108998. .TE
  108999. .SS salt.runners.asam
  109000. .SS Novell ASAM Runner
  109001. .sp
  109002. New in version Beryllium.
  109003. .sp
  109004. Runner to interact with Novell ASAM Fan\-Out Driver
  109005. .INDENT 0.0
  109006. .TP
  109007. .B codeauthor
  109008. Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>
  109009. .UNINDENT
  109010. .sp
  109011. To use this runner, set up the Novell Fan\-Out Driver URL, username and password in the
  109012. master configuration at \fB/etc/salt/master\fP or \fB/etc/salt/master.d/asam.conf\fP:
  109013. .INDENT 0.0
  109014. .INDENT 3.5
  109015. .sp
  109016. .nf
  109017. .ft C
  109018. asam:
  109019. prov1.domain.com
  109020. username: "testuser"
  109021. password: "verybadpass"
  109022. prov2.domain.com
  109023. username: "testuser"
  109024. password: "verybadpass"
  109025. .ft P
  109026. .fi
  109027. .UNINDENT
  109028. .UNINDENT
  109029. .sp
  109030. \fBNOTE:\fP
  109031. .INDENT 0.0
  109032. .INDENT 3.5
  109033. Optionally, \fBprotocol\fP and \fBport\fP can be specified if the Fan\-Out Driver server
  109034. is not using the defaults. Default is \fBprotocol: https\fP and \fBport: 3451\fP\&.
  109035. .UNINDENT
  109036. .UNINDENT
  109037. .INDENT 0.0
  109038. .TP
  109039. .B salt.runners.asam.add_platform(name, platform_set, server_url)
  109040. To add an ASAM platform using the specified ASAM platform set on the Novell
  109041. Fan\-Out Driver
  109042. .sp
  109043. CLI Example:
  109044. .INDENT 7.0
  109045. .INDENT 3.5
  109046. .sp
  109047. .nf
  109048. .ft C
  109049. salt\-run asam.add_platform my\-test\-vm test\-platform\-set prov1.domain.com
  109050. .ft P
  109051. .fi
  109052. .UNINDENT
  109053. .UNINDENT
  109054. .UNINDENT
  109055. .INDENT 0.0
  109056. .TP
  109057. .B salt.runners.asam.list_platform_sets(server_url)
  109058. To list all ASAM platform sets present on the Novell Fan\-Out Driver
  109059. .sp
  109060. CLI Example:
  109061. .INDENT 7.0
  109062. .INDENT 3.5
  109063. .sp
  109064. .nf
  109065. .ft C
  109066. salt\-run asam.list_platform_sets prov1.domain.com
  109067. .ft P
  109068. .fi
  109069. .UNINDENT
  109070. .UNINDENT
  109071. .UNINDENT
  109072. .INDENT 0.0
  109073. .TP
  109074. .B salt.runners.asam.list_platforms(server_url)
  109075. To list all ASAM platforms present on the Novell Fan\-Out Driver
  109076. .sp
  109077. CLI Example:
  109078. .INDENT 7.0
  109079. .INDENT 3.5
  109080. .sp
  109081. .nf
  109082. .ft C
  109083. salt\-run asam.list_platforms prov1.domain.com
  109084. .ft P
  109085. .fi
  109086. .UNINDENT
  109087. .UNINDENT
  109088. .UNINDENT
  109089. .INDENT 0.0
  109090. .TP
  109091. .B salt.runners.asam.remove_platform(name, server_url)
  109092. To remove specified ASAM platform from the Novell Fan\-Out Driver
  109093. .sp
  109094. CLI Example:
  109095. .INDENT 7.0
  109096. .INDENT 3.5
  109097. .sp
  109098. .nf
  109099. .ft C
  109100. salt\-run asam.remove_platform my\-test\-vm prov1.domain.com
  109101. .ft P
  109102. .fi
  109103. .UNINDENT
  109104. .UNINDENT
  109105. .UNINDENT
  109106. .SS salt.runners.drac
  109107. .sp
  109108. Manage Dell DRAC from the Master
  109109. .sp
  109110. The login credentials need to be configured in the Salt master
  109111. configuration file.
  109112. .INDENT 0.0
  109113. .INDENT 3.5
  109114. .sp
  109115. .nf
  109116. .ft C
  109117. drac:
  109118. username: admin
  109119. password: secret
  109120. .ft P
  109121. .fi
  109122. .UNINDENT
  109123. .UNINDENT
  109124. .INDENT 0.0
  109125. .TP
  109126. .B salt.runners.drac.poweroff(hostname, timeout=20, username=None, password=None)
  109127. Power server off
  109128. .sp
  109129. CLI Example:
  109130. .INDENT 7.0
  109131. .INDENT 3.5
  109132. .sp
  109133. .nf
  109134. .ft C
  109135. salt\-run drac.poweroff example.com
  109136. .ft P
  109137. .fi
  109138. .UNINDENT
  109139. .UNINDENT
  109140. .UNINDENT
  109141. .INDENT 0.0
  109142. .TP
  109143. .B salt.runners.drac.poweron(hostname, timeout=20, username=None, password=None)
  109144. Power server on
  109145. .sp
  109146. CLI Example:
  109147. .INDENT 7.0
  109148. .INDENT 3.5
  109149. .sp
  109150. .nf
  109151. .ft C
  109152. salt\-run drac.poweron example.com
  109153. .ft P
  109154. .fi
  109155. .UNINDENT
  109156. .UNINDENT
  109157. .UNINDENT
  109158. .INDENT 0.0
  109159. .TP
  109160. .B salt.runners.drac.pxe(hostname, timeout=20, username=None, password=None)
  109161. Connect to the Dell DRAC and have the boot order set to PXE
  109162. and power cycle the system to PXE boot
  109163. .sp
  109164. CLI Example:
  109165. .INDENT 7.0
  109166. .INDENT 3.5
  109167. .sp
  109168. .nf
  109169. .ft C
  109170. salt\-run drac.pxe example.com
  109171. .ft P
  109172. .fi
  109173. .UNINDENT
  109174. .UNINDENT
  109175. .UNINDENT
  109176. .INDENT 0.0
  109177. .TP
  109178. .B salt.runners.drac.reboot(hostname, timeout=20, username=None, password=None)
  109179. Reboot a server using the Dell DRAC
  109180. .sp
  109181. CLI Example:
  109182. .INDENT 7.0
  109183. .INDENT 3.5
  109184. .sp
  109185. .nf
  109186. .ft C
  109187. salt\-run drac.reboot example.com
  109188. .ft P
  109189. .fi
  109190. .UNINDENT
  109191. .UNINDENT
  109192. .UNINDENT
  109193. .INDENT 0.0
  109194. .TP
  109195. .B salt.runners.drac.version(hostname, timeout=20, username=None, password=None)
  109196. Display the version of DRAC
  109197. .sp
  109198. CLI Example:
  109199. .INDENT 7.0
  109200. .INDENT 3.5
  109201. .sp
  109202. .nf
  109203. .ft C
  109204. salt\-run drac.version example.com
  109205. .ft P
  109206. .fi
  109207. .UNINDENT
  109208. .UNINDENT
  109209. .UNINDENT
  109210. .SS salt.runners.f5
  109211. .sp
  109212. Runner to provide F5 Load Balancer functionality
  109213. .INDENT 0.0
  109214. .TP
  109215. .B depends
  109216. .INDENT 7.0
  109217. .IP \(bu 2
  109218. pycontrol Python module
  109219. .UNINDENT
  109220. .TP
  109221. .B configuration
  109222. In order to connect to a F5 Load Balancer, you must specify
  109223. in the Salt master configuration the currently available load balancers
  109224. .INDENT 7.0
  109225. .INDENT 3.5
  109226. .sp
  109227. .nf
  109228. .ft C
  109229. load_balancers:
  109230. bigip1.example.com:
  109231. username: admin
  109232. password: secret
  109233. bigip2.example.com:
  109234. username: admin
  109235. password: secret
  109236. .ft P
  109237. .fi
  109238. .UNINDENT
  109239. .UNINDENT
  109240. .UNINDENT
  109241. .INDENT 0.0
  109242. .TP
  109243. .B class salt.runners.f5.F5Mgmt(lb, username, password)
  109244. .INDENT 7.0
  109245. .TP
  109246. .B add_pool_member(name, port, pool_name)
  109247. Add a node to a pool
  109248. .UNINDENT
  109249. .INDENT 7.0
  109250. .TP
  109251. .B check_member_pool(member, pool_name)
  109252. Check a pool member exists in a specific pool
  109253. .UNINDENT
  109254. .INDENT 7.0
  109255. .TP
  109256. .B check_pool(name)
  109257. Check to see if a pool exists
  109258. .UNINDENT
  109259. .INDENT 7.0
  109260. .TP
  109261. .B check_virtualserver(name)
  109262. Check to see if a virtual server exists
  109263. .UNINDENT
  109264. .INDENT 7.0
  109265. .TP
  109266. .B create_pool(name, method=u\(aqROUND_ROBIN\(aq)
  109267. Create a pool on the F5 load balancer
  109268. .UNINDENT
  109269. .INDENT 7.0
  109270. .TP
  109271. .B create_vs(name, ip, port, protocol, profile, pool_name)
  109272. Create a virtual server
  109273. .UNINDENT
  109274. .INDENT 7.0
  109275. .TP
  109276. .B lbmethods()
  109277. List all the load balancer methods
  109278. .UNINDENT
  109279. .UNINDENT
  109280. .INDENT 0.0
  109281. .TP
  109282. .B salt.runners.f5.add_pool_member(lb, name, port, pool_name)
  109283. Add a node to a pool
  109284. .sp
  109285. CLI Examples:
  109286. .INDENT 7.0
  109287. .INDENT 3.5
  109288. .sp
  109289. .nf
  109290. .ft C
  109291. salt\-run f5.add_pool_member load_balancer 10.0.0.1 80 my_pool
  109292. .ft P
  109293. .fi
  109294. .UNINDENT
  109295. .UNINDENT
  109296. .UNINDENT
  109297. .INDENT 0.0
  109298. .TP
  109299. .B salt.runners.f5.check_member_pool(lb, member, pool_name)
  109300. Check a pool member exists in a specific pool
  109301. .sp
  109302. CLI Examples:
  109303. .INDENT 7.0
  109304. .INDENT 3.5
  109305. .sp
  109306. .nf
  109307. .ft C
  109308. salt\-run f5.check_member_pool load_balancer 10.0.0.1 my_pool
  109309. .ft P
  109310. .fi
  109311. .UNINDENT
  109312. .UNINDENT
  109313. .UNINDENT
  109314. .INDENT 0.0
  109315. .TP
  109316. .B salt.runners.f5.check_pool(lb, name)
  109317. Check to see if a pool exists
  109318. .sp
  109319. CLI Examples:
  109320. .INDENT 7.0
  109321. .INDENT 3.5
  109322. .sp
  109323. .nf
  109324. .ft C
  109325. salt\-run f5.check_pool load_balancer pool_name
  109326. .ft P
  109327. .fi
  109328. .UNINDENT
  109329. .UNINDENT
  109330. .UNINDENT
  109331. .INDENT 0.0
  109332. .TP
  109333. .B salt.runners.f5.check_virtualserver(lb, name)
  109334. Check to see if a virtual server exists
  109335. .sp
  109336. CLI Examples:
  109337. .INDENT 7.0
  109338. .INDENT 3.5
  109339. .sp
  109340. .nf
  109341. .ft C
  109342. salt\-run f5.check_virtualserver load_balancer virtual_server
  109343. .ft P
  109344. .fi
  109345. .UNINDENT
  109346. .UNINDENT
  109347. .UNINDENT
  109348. .INDENT 0.0
  109349. .TP
  109350. .B salt.runners.f5.create_pool(lb, name, method=u\(aqROUND_ROBIN\(aq)
  109351. Create a pool on the F5 load balancer
  109352. .sp
  109353. CLI Examples:
  109354. .INDENT 7.0
  109355. .INDENT 3.5
  109356. .sp
  109357. .nf
  109358. .ft C
  109359. salt\-run f5.create_pool load_balancer pool_name loadbalance_method
  109360. salt\-run f5.create_pool load_balancer my_pool ROUND_ROBIN
  109361. .ft P
  109362. .fi
  109363. .UNINDENT
  109364. .UNINDENT
  109365. .UNINDENT
  109366. .INDENT 0.0
  109367. .TP
  109368. .B salt.runners.f5.create_vs(lb, name, ip, port, protocol, profile, pool_name)
  109369. Create a virtual server
  109370. .sp
  109371. CLI Examples:
  109372. .INDENT 7.0
  109373. .INDENT 3.5
  109374. .sp
  109375. .nf
  109376. .ft C
  109377. salt\-run f5.create_vs lbalancer vs_name 10.0.0.1 80 tcp http poolname
  109378. .ft P
  109379. .fi
  109380. .UNINDENT
  109381. .UNINDENT
  109382. .UNINDENT
  109383. .SS salt.runners.launchd
  109384. .sp
  109385. Manage launchd plist files
  109386. .INDENT 0.0
  109387. .TP
  109388. .B salt.runners.launchd.write_launchd_plist(program)
  109389. Write a launchd plist for managing salt\-master or salt\-minion
  109390. .sp
  109391. CLI Example:
  109392. .INDENT 7.0
  109393. .INDENT 3.5
  109394. .sp
  109395. .nf
  109396. .ft C
  109397. salt\-run launchd.write_launchd_plist salt\-master
  109398. .ft P
  109399. .fi
  109400. .UNINDENT
  109401. .UNINDENT
  109402. .UNINDENT
  109403. .SS salt.runners.spacewalk
  109404. .SS Spacewalk Runner
  109405. .sp
  109406. New in version 2016.3.0.
  109407. .sp
  109408. Runner to interact with Spacewalk using Spacewalk API
  109409. .INDENT 0.0
  109410. .TP
  109411. .B codeauthor
  109412. Nitin Madhok <\fI\%nmadhok@clemson.edu\fP>, Joachim Werner <\fI\%joe@suse.com\fP>, Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>
  109413. .TP
  109414. .B maintainer
  109415. Benedikt Werner <\fI\%1benediktwerner@gmail.com\fP>
  109416. .UNINDENT
  109417. .sp
  109418. To use this runner, set up the Spacewalk URL, username and password in the
  109419. master configuration at \fB/etc/salt/master\fP or \fB/etc/salt/master.d/spacewalk.conf\fP:
  109420. .INDENT 0.0
  109421. .INDENT 3.5
  109422. .sp
  109423. .nf
  109424. .ft C
  109425. spacewalk:
  109426. spacewalk01.domain.com:
  109427. username: \(aqtestuser\(aq
  109428. password: \(aqverybadpass\(aq
  109429. spacewalk02.domain.com:
  109430. username: \(aqtestuser\(aq
  109431. password: \(aqverybadpass\(aq
  109432. .ft P
  109433. .fi
  109434. .UNINDENT
  109435. .UNINDENT
  109436. .sp
  109437. \fBNOTE:\fP
  109438. .INDENT 0.0
  109439. .INDENT 3.5
  109440. Optionally, \fBprotocol\fP can be specified if the spacewalk server is
  109441. not using the defaults. Default is \fBprotocol: https\fP\&.
  109442. .UNINDENT
  109443. .UNINDENT
  109444. .INDENT 0.0
  109445. .TP
  109446. .B salt.runners.spacewalk.addGroupsToKey(server, activation_key, groups)
  109447. Add server groups to a activation key
  109448. .sp
  109449. CLI Example:
  109450. .INDENT 7.0
  109451. .INDENT 3.5
  109452. .sp
  109453. .nf
  109454. .ft C
  109455. salt\-run spacewalk.addGroupsToKey spacewalk01.domain.com 1\-my\-key \(aq[group1, group2]\(aq
  109456. .ft P
  109457. .fi
  109458. .UNINDENT
  109459. .UNINDENT
  109460. .UNINDENT
  109461. .INDENT 0.0
  109462. .TP
  109463. .B salt.runners.spacewalk.api(server, command, *args, **kwargs)
  109464. Call the Spacewalk xmlrpc api.
  109465. .sp
  109466. CLI Example:
  109467. .INDENT 7.0
  109468. .INDENT 3.5
  109469. .sp
  109470. .nf
  109471. .ft C
  109472. salt\-run spacewalk.api spacewalk01.domain.com systemgroup.create MyGroup Description
  109473. salt\-run spacewalk.api spacewalk01.domain.com systemgroup.create arguments=\(aq["MyGroup", "Description"]\(aq
  109474. .ft P
  109475. .fi
  109476. .UNINDENT
  109477. .UNINDENT
  109478. .sp
  109479. State Example:
  109480. .INDENT 7.0
  109481. .INDENT 3.5
  109482. .sp
  109483. .nf
  109484. .ft C
  109485. create_group:
  109486. salt.runner:
  109487. \- name: spacewalk.api
  109488. \- server: spacewalk01.domain.com
  109489. \- command: systemgroup.create
  109490. \- arguments:
  109491. \- MyGroup
  109492. \- Description
  109493. .ft P
  109494. .fi
  109495. .UNINDENT
  109496. .UNINDENT
  109497. .UNINDENT
  109498. .INDENT 0.0
  109499. .TP
  109500. .B salt.runners.spacewalk.deleteAllActivationKeys(server)
  109501. Delete all activation keys from Spacewalk
  109502. .sp
  109503. CLI Example:
  109504. .INDENT 7.0
  109505. .INDENT 3.5
  109506. .sp
  109507. .nf
  109508. .ft C
  109509. salt\-run spacewalk.deleteAllActivationKeys spacewalk01.domain.com
  109510. .ft P
  109511. .fi
  109512. .UNINDENT
  109513. .UNINDENT
  109514. .UNINDENT
  109515. .INDENT 0.0
  109516. .TP
  109517. .B salt.runners.spacewalk.deleteAllGroups(server)
  109518. Delete all server groups from Spacewalk
  109519. .UNINDENT
  109520. .INDENT 0.0
  109521. .TP
  109522. .B salt.runners.spacewalk.deleteAllSystems(server)
  109523. Delete all systems from Spacewalk
  109524. .sp
  109525. CLI Example:
  109526. .INDENT 7.0
  109527. .INDENT 3.5
  109528. .sp
  109529. .nf
  109530. .ft C
  109531. salt\-run spacewalk.deleteAllSystems spacewalk01.domain.com
  109532. .ft P
  109533. .fi
  109534. .UNINDENT
  109535. .UNINDENT
  109536. .UNINDENT
  109537. .INDENT 0.0
  109538. .TP
  109539. .B salt.runners.spacewalk.unregister(name, server_url)
  109540. Unregister specified server from Spacewalk
  109541. .sp
  109542. CLI Example:
  109543. .INDENT 7.0
  109544. .INDENT 3.5
  109545. .sp
  109546. .nf
  109547. .ft C
  109548. salt\-run spacewalk.unregister my\-test\-vm spacewalk01.domain.com
  109549. .ft P
  109550. .fi
  109551. .UNINDENT
  109552. .UNINDENT
  109553. .UNINDENT
  109554. .SS salt.runners.test
  109555. .sp
  109556. This runner is used only for test purposes and servers no production purpose
  109557. .INDENT 0.0
  109558. .TP
  109559. .B salt.runners.test.arg(*args, **kwargs)
  109560. Output the given args and kwargs
  109561. .sp
  109562. Kwargs will be filtered for \(aqprivate\(aq keynames.
  109563. .UNINDENT
  109564. .INDENT 0.0
  109565. .TP
  109566. .B salt.runners.test.get_opts()
  109567. New in version 2018.3.0.
  109568. .sp
  109569. Return the configuration options of the master.
  109570. .sp
  109571. CLI Example:
  109572. .INDENT 7.0
  109573. .INDENT 3.5
  109574. .sp
  109575. .nf
  109576. .ft C
  109577. salt\-run test.get_opts
  109578. .ft P
  109579. .fi
  109580. .UNINDENT
  109581. .UNINDENT
  109582. .UNINDENT
  109583. .INDENT 0.0
  109584. .TP
  109585. .B salt.runners.test.metasyntactic(locality=u\(aqus\(aq)
  109586. Return common metasyntactic variables for the given locality
  109587. .UNINDENT
  109588. .INDENT 0.0
  109589. .TP
  109590. .B salt.runners.test.raw_arg(*args, **kwargs)
  109591. Output the given args and kwargs
  109592. .UNINDENT
  109593. .INDENT 0.0
  109594. .TP
  109595. .B salt.runners.test.sleep(s_time=10)
  109596. Sleep t seconds, then return True
  109597. .UNINDENT
  109598. .INDENT 0.0
  109599. .TP
  109600. .B salt.runners.test.stdout_print()
  109601. Print \(aqfoo\(aq and return \(aqbar\(aq
  109602. .UNINDENT
  109603. .INDENT 0.0
  109604. .TP
  109605. .B salt.runners.test.stream()
  109606. Return True
  109607. .UNINDENT
  109608. .SS sdb modules
  109609. .TS
  109610. center;
  109611. |l|l|.
  109612. _
  109613. T{
  109614. \fBcache\fP
  109615. T} T{
  109616. T}
  109617. _
  109618. T{
  109619. \fBconfidant\fP
  109620. T} T{
  109621. An SDB module for getting credentials from confidant.
  109622. T}
  109623. _
  109624. T{
  109625. \fBconsul\fP
  109626. T} T{
  109627. Consul sdb Module
  109628. T}
  109629. _
  109630. T{
  109631. \fBcouchdb\fP
  109632. T} T{
  109633. T}
  109634. _
  109635. T{
  109636. \fBenv\fP
  109637. T} T{
  109638. Environment sdb Module
  109639. T}
  109640. _
  109641. T{
  109642. \fBetcd_db\fP
  109643. T} T{
  109644. etcd Database Module
  109645. T}
  109646. _
  109647. T{
  109648. \fBkeyring_db\fP
  109649. T} T{
  109650. Keyring Database Module
  109651. T}
  109652. _
  109653. T{
  109654. \fBmemcached\fP
  109655. T} T{
  109656. Memcached sdb Module
  109657. T}
  109658. _
  109659. T{
  109660. \fBredis_sdb\fP
  109661. T} T{
  109662. Redis SDB module
  109663. T}
  109664. _
  109665. T{
  109666. \fBrest\fP
  109667. T} T{
  109668. T}
  109669. _
  109670. T{
  109671. \fBsqlite3\fP
  109672. T} T{
  109673. SQLite sdb Module
  109674. T}
  109675. _
  109676. T{
  109677. \fBtism\fP
  109678. T} T{
  109679. T}
  109680. _
  109681. T{
  109682. \fBvault\fP
  109683. T} T{
  109684. Vault SDB Module
  109685. T}
  109686. _
  109687. T{
  109688. \fByaml\fP
  109689. T} T{
  109690. T}
  109691. _
  109692. .TE
  109693. .SS salt.sdb.confidant
  109694. .sp
  109695. An SDB module for getting credentials from confidant.
  109696. .SS Configuring the Confidant module
  109697. .sp
  109698. The module can be configured via sdb in the minion config:
  109699. .INDENT 0.0
  109700. .INDENT 3.5
  109701. .sp
  109702. .nf
  109703. .ft C
  109704. confidant:
  109705. driver: confidant
  109706. # The URL of the confidant web service
  109707. url: \(aqhttps://confidant\-production.example.com\(aq
  109708. # The context to use for KMS authentication
  109709. auth_context:
  109710. from: example\-production\-iad
  109711. to: confidant\-production\-iad
  109712. user_type: service
  109713. # The KMS master key to use for authentication
  109714. auth_key: "alias/authnz"
  109715. # Cache file for KMS auth token
  109716. token_cache_file: /run/confidant/confidant_token
  109717. # The duration of the validity of a token, in minutes
  109718. token_duration: 60
  109719. # key, keyid and region can be defined in the profile, but it\(aqs generally
  109720. # best to use IAM roles or environment variables for AWS auth.
  109721. keyid: 98nh9h9h908h09kjjk
  109722. key: jhf908gyeghehe0he0g8h9u0j0n0n09hj09h0
  109723. region: us\-east\-1
  109724. .ft P
  109725. .fi
  109726. .UNINDENT
  109727. .UNINDENT
  109728. .INDENT 0.0
  109729. .TP
  109730. .B depends
  109731. confidant\-common, confidant\-client
  109732. .UNINDENT
  109733. .SS Module Documentation
  109734. .INDENT 0.0
  109735. .TP
  109736. .B salt.sdb.confidant.get(key, profile=None)
  109737. Read pillar data from Confidant via its API.
  109738. .sp
  109739. CLI Example:
  109740. .INDENT 7.0
  109741. .INDENT 3.5
  109742. salt myminion sdb.get \(aqsdb://confidant/credentials\(aq
  109743. .UNINDENT
  109744. .UNINDENT
  109745. .sp
  109746. Valid keys are: credentials, credentials_metadata, result. credentials
  109747. returns a dict of joined credential_pairs, credentials_metadata returns a
  109748. dict of metadata relevant to the credentials mapped to the confidant
  109749. service, and result returns a bool that can be used to determine if the sdb
  109750. call succeeded or failed to fetch credentials from confidant (or from local
  109751. cache). If result is false, the data in credentials or credentials_metadata
  109752. can\(aqt be trusted.
  109753. .UNINDENT
  109754. .SS salt.sdb.consul module
  109755. .sp
  109756. Consul sdb Module
  109757. .INDENT 0.0
  109758. .TP
  109759. .B maintainer
  109760. SaltStack
  109761. .TP
  109762. .B maturity
  109763. New
  109764. .TP
  109765. .B platform
  109766. all
  109767. .UNINDENT
  109768. .sp
  109769. This module allows access to Consul using an \fBsdb://\fP URI
  109770. .sp
  109771. Like all sdb modules, the Consul module requires a configuration profile to
  109772. be configured in either the minion or master configuration file. This profile
  109773. requires very little. For example:
  109774. .INDENT 0.0
  109775. .INDENT 3.5
  109776. .sp
  109777. .nf
  109778. .ft C
  109779. myconsul:
  109780. driver: consul
  109781. host: 127.0.0.1
  109782. port: 8500
  109783. token: b6376760\-a8bb\-edd5\-fcda\-33bc13bfc556
  109784. scheme: http
  109785. consistency: default
  109786. dc: dev
  109787. verify: True
  109788. .ft P
  109789. .fi
  109790. .UNINDENT
  109791. .UNINDENT
  109792. .sp
  109793. The \fBdriver\fP refers to the Consul module, all other options are optional.
  109794. For option details see: \fI\%https://python\-consul.readthedocs.io/en/latest/#consul\fP
  109795. .INDENT 0.0
  109796. .TP
  109797. .B salt.sdb.consul.get(key, profile=None)
  109798. .UNINDENT
  109799. .INDENT 0.0
  109800. .TP
  109801. .B salt.sdb.consul.get_conn(profile)
  109802. Return a client object for accessing consul
  109803. .UNINDENT
  109804. .INDENT 0.0
  109805. .TP
  109806. .B salt.sdb.consul.set_(key, value, profile=None)
  109807. .UNINDENT
  109808. .SS salt.sdb.env module
  109809. .sp
  109810. Environment sdb Module
  109811. .INDENT 0.0
  109812. .TP
  109813. .B maintainer
  109814. SaltStack
  109815. .TP
  109816. .B maturity
  109817. New
  109818. .TP
  109819. .B depends
  109820. None
  109821. .TP
  109822. .B platform
  109823. all
  109824. .UNINDENT
  109825. .sp
  109826. This module allows access to environment variables using an \fBsdb://\fP URI.
  109827. .sp
  109828. Example configuration for this module:
  109829. .INDENT 0.0
  109830. .INDENT 3.5
  109831. .sp
  109832. .nf
  109833. .ft C
  109834. osenv:
  109835. driver: env
  109836. .ft P
  109837. .fi
  109838. .UNINDENT
  109839. .UNINDENT
  109840. .SS WARNING:
  109841. .sp
  109842. OS environment variables will be available
  109843. to read via SDB.
  109844. Please make sure you don\(aqt have any sensitive data
  109845. in your environment variables!!
  109846. .sp
  109847. Example usage of sdb env module:
  109848. .INDENT 0.0
  109849. .INDENT 3.5
  109850. .sp
  109851. .nf
  109852. .ft C
  109853. set some env var:
  109854. cmd.run:
  109855. \- name: echo {{ salt[\(aqsdb.set\(aq](\(aqsdb://osenv/foo\(aq, \(aqbar\(aq) }}
  109856. \- order: 1
  109857. {% if salt[\(aqsdb.get\(aq](\(aqsdb://osenv/foo\(aq) == \(aqbar\(aq %}
  109858. always\-changes\-and\-succeeds:
  109859. test.succeed_with_changes:
  109860. \- name: foo
  109861. {% else %}
  109862. always\-changes\-and\-fails:
  109863. test.fail_with_changes:
  109864. \- name: foo
  109865. {% endif %}
  109866. .ft P
  109867. .fi
  109868. .UNINDENT
  109869. .UNINDENT
  109870. .sp
  109871. The above example will return success.
  109872. .sp
  109873. The \fBenv\fP sdb module can also be used with salt cloud.
  109874. Assuming you have exported the environment variable named
  109875. \fBcompute\fP (and have \fBosenv\fP defined).
  109876. The example below will look for the salt cloud config key \fBcompute_name\fP
  109877. in the environment:
  109878. .INDENT 0.0
  109879. .INDENT 3.5
  109880. .sp
  109881. .nf
  109882. .ft C
  109883. my\-openstack\-config:
  109884. compute_name: sdb://osenv/compute
  109885. ..snip
  109886. .ft P
  109887. .fi
  109888. .UNINDENT
  109889. .UNINDENT
  109890. .INDENT 0.0
  109891. .TP
  109892. .B salt.sdb.env.get(key, profile=None)
  109893. Get a value
  109894. .UNINDENT
  109895. .INDENT 0.0
  109896. .TP
  109897. .B salt.sdb.env.set_(key, value, profile=None)
  109898. Set a key/value pair
  109899. .UNINDENT
  109900. .SS salt.sdb.etcd_db
  109901. .sp
  109902. etcd Database Module
  109903. .INDENT 0.0
  109904. .TP
  109905. .B maintainer
  109906. SaltStack
  109907. .TP
  109908. .B maturity
  109909. New
  109910. .TP
  109911. .B depends
  109912. python\-etcd
  109913. .TP
  109914. .B platform
  109915. all
  109916. .UNINDENT
  109917. .sp
  109918. New in version 2015.5.0.
  109919. .sp
  109920. This module allows access to the etcd database using an \fBsdb://\fP URI. This
  109921. package is located at \fBhttps://pypi.python.org/pypi/python\-etcd\fP\&.
  109922. .sp
  109923. Like all sdb modules, the etcd module requires a configuration profile to
  109924. be configured in either the minion or master configuration file. This profile
  109925. requires very little. In the example:
  109926. .INDENT 0.0
  109927. .INDENT 3.5
  109928. .sp
  109929. .nf
  109930. .ft C
  109931. myetcd:
  109932. driver: etcd
  109933. etcd.host: 127.0.0.1
  109934. etcd.port: 2379
  109935. .ft P
  109936. .fi
  109937. .UNINDENT
  109938. .UNINDENT
  109939. .sp
  109940. The \fBdriver\fP refers to the etcd module, \fBetcd.host\fP refers to the host that
  109941. is hosting the etcd database and \fBetcd.port\fP refers to the port on that host.
  109942. .INDENT 0.0
  109943. .INDENT 3.5
  109944. .sp
  109945. .nf
  109946. .ft C
  109947. password: sdb://myetcd/mypassword
  109948. .ft P
  109949. .fi
  109950. .UNINDENT
  109951. .UNINDENT
  109952. .INDENT 0.0
  109953. .TP
  109954. .B salt.sdb.etcd_db.delete(key, service=None, profile=None)
  109955. Get a value from the etcd service
  109956. .UNINDENT
  109957. .INDENT 0.0
  109958. .TP
  109959. .B salt.sdb.etcd_db.get(key, service=None, profile=None)
  109960. Get a value from the etcd service
  109961. .UNINDENT
  109962. .INDENT 0.0
  109963. .TP
  109964. .B salt.sdb.etcd_db.set_(key, value, service=None, profile=None)
  109965. Set a key/value pair in the etcd service
  109966. .UNINDENT
  109967. .SS salt.sdb.keyring_db
  109968. .sp
  109969. Keyring Database Module
  109970. .INDENT 0.0
  109971. .TP
  109972. .B maintainer
  109973. SaltStack
  109974. .TP
  109975. .B maturity
  109976. New
  109977. .TP
  109978. .B depends
  109979. keyring
  109980. .TP
  109981. .B platform
  109982. all
  109983. .UNINDENT
  109984. .sp
  109985. This module allows access to the keyring package using an \fBsdb://\fP URI. This
  109986. package is located at \fBhttps://pypi.python.org/pypi/keyring\fP\&.
  109987. .sp
  109988. Care must be taken when using keyring. Not all keyend backends are supported on
  109989. all operating systems. Also, many backends require an agent to be running in
  109990. order to work. For instance, the "Secret Service" backend requires a compatible
  109991. agent such as \fBgnome\-keyring\-daemon\fP or \fBkwallet\fP to be running. The
  109992. keyczar backend does not seem to enjoy the benefits of an agent, and so using
  109993. it will require either that the password is typed in manually (which is
  109994. unreasonable for the salt\-minion and salt\-master daemons, especially in
  109995. production) or an agent is written for it.
  109996. .sp
  109997. Like all sdb modules, the keyring module requires a configuration profile to
  109998. be configured in either the minion or master configuration file. This profile
  109999. requires very little. In the example:
  110000. .INDENT 0.0
  110001. .INDENT 3.5
  110002. .sp
  110003. .nf
  110004. .ft C
  110005. mykeyring:
  110006. driver: keyring
  110007. service: system
  110008. .ft P
  110009. .fi
  110010. .UNINDENT
  110011. .UNINDENT
  110012. .sp
  110013. The \fBdriver\fP refers to the keyring module, \fBservice\fP refers to the service
  110014. that will be used inside of keyring (which may be likened unto a database
  110015. table) and \fBmykeyring\fP refers to the name that will appear in the URI:
  110016. .INDENT 0.0
  110017. .INDENT 3.5
  110018. .sp
  110019. .nf
  110020. .ft C
  110021. password: sdb://mykeyring/mypassword
  110022. .ft P
  110023. .fi
  110024. .UNINDENT
  110025. .UNINDENT
  110026. .sp
  110027. The underlying backend configuration must be configured via keyring itself. For
  110028. examples and documentation, see keyring:
  110029. .sp
  110030. \fI\%https://pypi.python.org/pypi/keyring\fP
  110031. .sp
  110032. New in version 2014.1.4.
  110033. .INDENT 0.0
  110034. .TP
  110035. .B salt.sdb.keyring_db.get(key, service=None, profile=None)
  110036. Get a value from a keyring service
  110037. .UNINDENT
  110038. .INDENT 0.0
  110039. .TP
  110040. .B salt.sdb.keyring_db.set_(key, value, service=None, profile=None)
  110041. Set a key/value pair in a keyring service
  110042. .UNINDENT
  110043. .SS salt.sdb.memcached
  110044. .sp
  110045. Memcached sdb Module
  110046. .INDENT 0.0
  110047. .TP
  110048. .B maintainer
  110049. SaltStack
  110050. .TP
  110051. .B maturity
  110052. New
  110053. .TP
  110054. .B depends
  110055. python\-memcached
  110056. .TP
  110057. .B platform
  110058. all
  110059. .UNINDENT
  110060. .sp
  110061. This module allows access to memcached using an \fBsdb://\fP URI. This
  110062. package is located at \fBhttps://pypi.python.org/pypi/python\-memcached\fP\&.
  110063. .sp
  110064. Like all sdb modules, the memcached module requires a configuration profile to
  110065. be configured in either the minion or master configuration file. This profile
  110066. requires very little. In the example:
  110067. .INDENT 0.0
  110068. .INDENT 3.5
  110069. .sp
  110070. .nf
  110071. .ft C
  110072. mymemcache:
  110073. driver: memcached
  110074. memcached.host: localhost
  110075. memcached.port: 11211
  110076. .ft P
  110077. .fi
  110078. .UNINDENT
  110079. .UNINDENT
  110080. .sp
  110081. The \fBdriver\fP refers to the memcached module, \fBhost\fP and \fBport\fP the
  110082. memcached server to connect to (defaults to \fBlocalhost\fP and \fB11211\fP,
  110083. and \fBmymemcached\fP refers to the name that will appear in the URI:
  110084. .INDENT 0.0
  110085. .INDENT 3.5
  110086. .sp
  110087. .nf
  110088. .ft C
  110089. password: sdb://mymemcached/mykey
  110090. .ft P
  110091. .fi
  110092. .UNINDENT
  110093. .UNINDENT
  110094. .INDENT 0.0
  110095. .TP
  110096. .B salt.sdb.memcached.get(key, profile=None)
  110097. Get a value from memcached
  110098. .UNINDENT
  110099. .INDENT 0.0
  110100. .TP
  110101. .B salt.sdb.memcached.set_(key, value, profile=None)
  110102. Set a key/value pair in memcached
  110103. .UNINDENT
  110104. .SS salt.sdb.redis_sdb module
  110105. .SS Redis SDB module
  110106. .INDENT 0.0
  110107. .INDENT 3.5
  110108. New in version 2019.2.0.
  110109. .UNINDENT
  110110. .UNINDENT
  110111. .sp
  110112. This module allows access to Redis using an \fBsdb://\fP URI.
  110113. .sp
  110114. Like all SDB modules, the Redis module requires a configuration profile to
  110115. be configured in either the minion or master configuration file. This profile
  110116. requires very little. For example:
  110117. .INDENT 0.0
  110118. .INDENT 3.5
  110119. .sp
  110120. .nf
  110121. .ft C
  110122. sdb_redis:
  110123. driver: redis
  110124. host: 127.0.0.1
  110125. port: 6379
  110126. password: pass
  110127. db: 1
  110128. .ft P
  110129. .fi
  110130. .UNINDENT
  110131. .UNINDENT
  110132. .sp
  110133. The \fBdriver\fP refers to the Redis module, all other options are optional.
  110134. For option details see: \fI\%https://redis\-py.readthedocs.io/en/latest/\fP\&.
  110135. .INDENT 0.0
  110136. .TP
  110137. .B salt.sdb.redis_sdb.delete(key, profile=None)
  110138. Delete a key from the Redis SDB.
  110139. .UNINDENT
  110140. .INDENT 0.0
  110141. .TP
  110142. .B salt.sdb.redis_sdb.get(key, profile=None)
  110143. Get a value from the Redis SDB.
  110144. .UNINDENT
  110145. .INDENT 0.0
  110146. .TP
  110147. .B salt.sdb.redis_sdb.set_(key, value, profile=None)
  110148. Set a value into the Redis SDB.
  110149. .UNINDENT
  110150. .SS salt.sdb.sqlite3
  110151. .sp
  110152. SQLite sdb Module
  110153. .INDENT 0.0
  110154. .TP
  110155. .B maintainer
  110156. SaltStack
  110157. .TP
  110158. .B maturity
  110159. New
  110160. .TP
  110161. .B platform
  110162. all
  110163. .UNINDENT
  110164. .sp
  110165. This module allows access to sqlite3 using an \fBsdb://\fP URI
  110166. .sp
  110167. Like all sdb modules, the sqlite3 module requires a configuration profile to
  110168. be configured in either the minion or master configuration file. This profile
  110169. requires very little. For example:
  110170. .INDENT 0.0
  110171. .INDENT 3.5
  110172. .sp
  110173. .nf
  110174. .ft C
  110175. mysqlite:
  110176. driver: sqlite3
  110177. database: /tmp/sdb.sqlite
  110178. table: sdb
  110179. create_table: True
  110180. .ft P
  110181. .fi
  110182. .UNINDENT
  110183. .UNINDENT
  110184. .sp
  110185. The \fBdriver\fP refers to the sqlite3 module, \fBdatabase\fP refers to the sqlite3
  110186. database file. \fBtable\fP is the table within the db that will hold keys and
  110187. values (defaults to \fBsdb\fP). The database and table will be created if they
  110188. do not exist.
  110189. .SS Advanced Usage:
  110190. .sp
  110191. Instead of a table name, it is possible to provide custom SQL statements to
  110192. create the table(s) and get and set values.
  110193. .INDENT 0.0
  110194. .INDENT 3.5
  110195. .sp
  110196. .nf
  110197. .ft C
  110198. myadvanced
  110199. driver: sqlite3
  110200. database: /tmp/sdb\-advanced.sqlite
  110201. create_statements:
  110202. \- "CREATE TABLE advanced (a text, b text, c blob, d blob)"
  110203. \- "CREATE INDEX myidx ON advanced (a)"
  110204. get_query: "SELECT d FROM advanced WHERE a=:key"
  110205. set_query: "INSERT OR REPLACE INTO advanced (a, d) VALUES (:key, :value)"
  110206. .ft P
  110207. .fi
  110208. .UNINDENT
  110209. .UNINDENT
  110210. .INDENT 0.0
  110211. .TP
  110212. .B salt.sdb.sqlite3.get(key, profile=None)
  110213. Get a value from sqlite3
  110214. .UNINDENT
  110215. .INDENT 0.0
  110216. .TP
  110217. .B salt.sdb.sqlite3.set_(key, value, profile=None)
  110218. Set a key/value pair in sqlite3
  110219. .UNINDENT
  110220. .SS salt.sdb.vault module
  110221. .sp
  110222. Vault SDB Module
  110223. .INDENT 0.0
  110224. .TP
  110225. .B maintainer
  110226. SaltStack
  110227. .TP
  110228. .B maturity
  110229. New
  110230. .TP
  110231. .B platform
  110232. all
  110233. .UNINDENT
  110234. .sp
  110235. New in version 2016.11.0.
  110236. .sp
  110237. This module allows access to Hashicorp Vault using an \fBsdb://\fP URI.
  110238. .sp
  110239. Base configuration instructions are documented in the execution module docs.
  110240. Below are noted extra configuration required for the sdb module, but the base
  110241. configuration must also be completed.
  110242. .sp
  110243. Like all sdb modules, the vault module requires a configuration profile to
  110244. be configured in either the minion configuration file or a pillar. This profile
  110245. requires only setting the \fBdriver\fP parameter to \fBvault\fP:
  110246. .INDENT 0.0
  110247. .INDENT 3.5
  110248. .sp
  110249. .nf
  110250. .ft C
  110251. myvault:
  110252. driver: vault
  110253. .ft P
  110254. .fi
  110255. .UNINDENT
  110256. .UNINDENT
  110257. .sp
  110258. Once configured you can access data using a URL such as:
  110259. .INDENT 0.0
  110260. .INDENT 3.5
  110261. .sp
  110262. .nf
  110263. .ft C
  110264. password: sdb://myvault/secret/passwords/mypassword
  110265. .ft P
  110266. .fi
  110267. .UNINDENT
  110268. .UNINDENT
  110269. .sp
  110270. In this URL, \fBmyvault\fP refers to the configuration profile,
  110271. \fBsecret/passwords\fP is the path where the data resides, and \fBmypassword\fP is
  110272. the key of the data to return.
  110273. .sp
  110274. The above URI is analogous to running the following vault command:
  110275. .INDENT 0.0
  110276. .INDENT 3.5
  110277. .sp
  110278. .nf
  110279. .ft C
  110280. $ vault read \-field=mypassword secret/passwords
  110281. .ft P
  110282. .fi
  110283. .UNINDENT
  110284. .UNINDENT
  110285. .INDENT 0.0
  110286. .TP
  110287. .B salt.sdb.vault.get(key, profile=None)
  110288. Get a value from the vault service
  110289. .UNINDENT
  110290. .INDENT 0.0
  110291. .TP
  110292. .B salt.sdb.vault.set_(key, value, profile=None)
  110293. Set a key/value pair in the vault service
  110294. .UNINDENT
  110295. .SS serializer modules
  110296. .TS
  110297. center;
  110298. |l|l|.
  110299. _
  110300. T{
  110301. \fBconfigparser\fP
  110302. T} T{
  110303. salt.serializers.configparser
  110304. T}
  110305. _
  110306. T{
  110307. \fI\%json\fP
  110308. T} T{
  110309. JSON (JavaScript Object Notation) <\fI\%http://json.org\fP> is a subset of JavaScript syntax (ECMA\-262 3rd edition) used as a lightweight data interchange format.
  110310. T}
  110311. _
  110312. T{
  110313. \fBmsgpack\fP
  110314. T} T{
  110315. salt.serializers.msgpack
  110316. T}
  110317. _
  110318. T{
  110319. \fBplist\fP
  110320. T} T{
  110321. salt.serializers.plist
  110322. T}
  110323. _
  110324. T{
  110325. \fBpython\fP
  110326. T} T{
  110327. T}
  110328. _
  110329. T{
  110330. \fBtoml\fP
  110331. T} T{
  110332. salt.serializers.toml
  110333. T}
  110334. _
  110335. T{
  110336. \fByaml\fP
  110337. T} T{
  110338. T}
  110339. _
  110340. T{
  110341. \fByamlex\fP
  110342. T} T{
  110343. T}
  110344. _
  110345. .TE
  110346. .SS salt.serializers.configparser module
  110347. .SS salt.serializers.configparser
  110348. .sp
  110349. New in version 2016.3.0.
  110350. .sp
  110351. Implements a configparser serializer.
  110352. .INDENT 0.0
  110353. .TP
  110354. .B salt.serializers.configparser.deserialize(stream_or_string, **options)
  110355. Deserialize any string or stream like object into a Python data structure.
  110356. .INDENT 7.0
  110357. .TP
  110358. .B Parameters
  110359. .INDENT 7.0
  110360. .IP \(bu 2
  110361. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110362. .IP \(bu 2
  110363. \fBoptions\fP \-\- options given to lower configparser module.
  110364. .UNINDENT
  110365. .UNINDENT
  110366. .UNINDENT
  110367. .INDENT 0.0
  110368. .TP
  110369. .B salt.serializers.configparser.serialize(obj, **options)
  110370. Serialize Python data to a configparser formatted string or file.
  110371. .INDENT 7.0
  110372. .TP
  110373. .B Parameters
  110374. .INDENT 7.0
  110375. .IP \(bu 2
  110376. \fBobj\fP \-\- the data structure to serialize
  110377. .IP \(bu 2
  110378. \fBoptions\fP \-\- options given to lower configparser module.
  110379. .UNINDENT
  110380. .UNINDENT
  110381. .UNINDENT
  110382. .SS salt.serializers.msgpack
  110383. .SS salt.serializers.msgpack
  110384. .sp
  110385. Implements MsgPack serializer.
  110386. .INDENT 0.0
  110387. .TP
  110388. .B salt.serializers.msgpack.deserialize(stream_or_string, **options)
  110389. Deserialize any string of stream like object into a Python data structure.
  110390. .INDENT 7.0
  110391. .TP
  110392. .B Parameters
  110393. .INDENT 7.0
  110394. .IP \(bu 2
  110395. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110396. .IP \(bu 2
  110397. \fBoptions\fP \-\- options given to lower msgpack module.
  110398. .UNINDENT
  110399. .UNINDENT
  110400. .UNINDENT
  110401. .INDENT 0.0
  110402. .TP
  110403. .B salt.serializers.msgpack.serialize(obj, **options)
  110404. Serialize Python data to MsgPack.
  110405. .INDENT 7.0
  110406. .TP
  110407. .B Parameters
  110408. .INDENT 7.0
  110409. .IP \(bu 2
  110410. \fBobj\fP \-\- the data structure to serialize
  110411. .IP \(bu 2
  110412. \fBoptions\fP \-\- options given to lower msgpack module.
  110413. .UNINDENT
  110414. .UNINDENT
  110415. .UNINDENT
  110416. .SS salt.serializers.plist
  110417. .SS salt.serializers.plist
  110418. .sp
  110419. New in version 3001.
  110420. .sp
  110421. Implements plist serializer.
  110422. .sp
  110423. Wrapper around plistlib.
  110424. .INDENT 0.0
  110425. .TP
  110426. .B salt.serializers.plist.deserialize(stream_or_string, **options)
  110427. Deserialize any string or stream like object into a Python data structure.
  110428. .INDENT 7.0
  110429. .TP
  110430. .B Parameters
  110431. .INDENT 7.0
  110432. .IP \(bu 2
  110433. \fBstream_or_string\fP \-\- stream or string to deserialize.
  110434. .IP \(bu 2
  110435. \fBoptions\fP \-\- options given to lower plist module.
  110436. .UNINDENT
  110437. .TP
  110438. .B Returns
  110439. Deserialized data structure.
  110440. .UNINDENT
  110441. .UNINDENT
  110442. .INDENT 0.0
  110443. .TP
  110444. .B salt.serializers.plist.serialize(value, **options)
  110445. Serialize Python data to plist. To create a binary plist pass
  110446. \fBfmt: FMT_BINARY\fP as an option.
  110447. .INDENT 7.0
  110448. .TP
  110449. .B Parameters
  110450. .INDENT 7.0
  110451. .IP \(bu 2
  110452. \fBobj\fP \-\- the data structure to serialize
  110453. .IP \(bu 2
  110454. \fBoptions\fP \-\- options given to lower plist module.
  110455. .UNINDENT
  110456. .TP
  110457. .B Returns
  110458. bytes of serialized plist.
  110459. .UNINDENT
  110460. .UNINDENT
  110461. .SS salt.serializers.toml
  110462. .SS salt.serializers.toml
  110463. .sp
  110464. Implements TOML serializer.
  110465. .sp
  110466. It\(aqs just a wrapper around pytoml module.
  110467. .INDENT 0.0
  110468. .TP
  110469. .B salt.serializers.toml.deserialize(stream_or_string, **options)
  110470. Deserialize from TOML into Python data structure.
  110471. .INDENT 7.0
  110472. .TP
  110473. .B Parameters
  110474. .INDENT 7.0
  110475. .IP \(bu 2
  110476. \fBstream_or_string\fP \-\- toml stream or string to deserialize.
  110477. .IP \(bu 2
  110478. \fBoptions\fP \-\- options given to lower pytoml module.
  110479. .UNINDENT
  110480. .UNINDENT
  110481. .UNINDENT
  110482. .INDENT 0.0
  110483. .TP
  110484. .B salt.serializers.toml.serialize(obj, **options)
  110485. Serialize Python data to TOML.
  110486. .INDENT 7.0
  110487. .TP
  110488. .B Parameters
  110489. .INDENT 7.0
  110490. .IP \(bu 2
  110491. \fBobj\fP \-\- the data structure to serialize.
  110492. .IP \(bu 2
  110493. \fBoptions\fP \-\- options given to lower pytoml module.
  110494. .UNINDENT
  110495. .UNINDENT
  110496. .UNINDENT
  110497. .SS state modules
  110498. .TS
  110499. center;
  110500. |l|l|.
  110501. _
  110502. T{
  110503. \fBacme\fP
  110504. T} T{
  110505. T}
  110506. _
  110507. T{
  110508. \fBalias\fP
  110509. T} T{
  110510. Configuration of email aliases
  110511. T}
  110512. _
  110513. T{
  110514. \fBalternatives\fP
  110515. T} T{
  110516. Configuration of the alternatives system
  110517. T}
  110518. _
  110519. T{
  110520. \fBansiblegate\fP
  110521. T} T{
  110522. T}
  110523. _
  110524. T{
  110525. \fBapache\fP
  110526. T} T{
  110527. T}
  110528. _
  110529. T{
  110530. \fBapache_conf\fP
  110531. T} T{
  110532. T}
  110533. _
  110534. T{
  110535. \fBapache_module\fP
  110536. T} T{
  110537. Manage Apache Modules
  110538. T}
  110539. _
  110540. T{
  110541. \fBapache_site\fP
  110542. T} T{
  110543. Manage Apache Sites
  110544. T}
  110545. _
  110546. T{
  110547. \fBaptpkg\fP
  110548. T} T{
  110549. T}
  110550. _
  110551. T{
  110552. \fBarchive\fP
  110553. T} T{
  110554. T}
  110555. _
  110556. T{
  110557. \fBartifactory\fP
  110558. T} T{
  110559. This state downloads artifacts from artifactory.
  110560. T}
  110561. _
  110562. T{
  110563. \fBat\fP
  110564. T} T{
  110565. Configuration disposable regularly scheduled tasks for at.
  110566. T}
  110567. _
  110568. T{
  110569. \fBaugeas\fP
  110570. T} T{
  110571. T}
  110572. _
  110573. T{
  110574. \fBaws_sqs\fP
  110575. T} T{
  110576. Manage SQS Queues
  110577. T}
  110578. _
  110579. T{
  110580. \fBazurearm_compute\fP
  110581. T} T{
  110582. Azure (ARM) Compute State Module
  110583. T}
  110584. _
  110585. T{
  110586. \fBazurearm_dns\fP
  110587. T} T{
  110588. Azure (ARM) DNS State Module
  110589. T}
  110590. _
  110591. T{
  110592. \fBazurearm_network\fP
  110593. T} T{
  110594. Azure (ARM) Network State Module
  110595. T}
  110596. _
  110597. T{
  110598. \fBazurearm_resource\fP
  110599. T} T{
  110600. T}
  110601. _
  110602. T{
  110603. \fBbeacon\fP
  110604. T} T{
  110605. Management of the Salt beacons
  110606. T}
  110607. _
  110608. T{
  110609. \fBbigip\fP
  110610. T} T{
  110611. T}
  110612. _
  110613. T{
  110614. \fBblockdev\fP
  110615. T} T{
  110616. T}
  110617. _
  110618. T{
  110619. \fBboto3_elasticache\fP
  110620. T} T{
  110621. Manage Elasticache with boto3
  110622. T}
  110623. _
  110624. T{
  110625. \fBboto3_elasticsearch\fP
  110626. T} T{
  110627. T}
  110628. _
  110629. T{
  110630. \fBboto3_route53\fP
  110631. T} T{
  110632. T}
  110633. _
  110634. T{
  110635. \fBboto3_sns\fP
  110636. T} T{
  110637. T}
  110638. _
  110639. T{
  110640. \fBboto_apigateway\fP
  110641. T} T{
  110642. T}
  110643. _
  110644. T{
  110645. \fBboto_asg\fP
  110646. T} T{
  110647. T}
  110648. _
  110649. T{
  110650. \fBboto_cfn\fP
  110651. T} T{
  110652. T}
  110653. _
  110654. T{
  110655. \fBboto_cloudfront\fP
  110656. T} T{
  110657. Manage CloudFront distributions
  110658. T}
  110659. _
  110660. T{
  110661. \fBboto_cloudtrail\fP
  110662. T} T{
  110663. T}
  110664. _
  110665. T{
  110666. \fBboto_cloudwatch_alarm\fP
  110667. T} T{
  110668. T}
  110669. _
  110670. T{
  110671. \fBboto_cloudwatch_event\fP
  110672. T} T{
  110673. T}
  110674. _
  110675. T{
  110676. \fBboto_cognitoidentity\fP
  110677. T} T{
  110678. Manage CognitoIdentity Functions
  110679. T}
  110680. _
  110681. T{
  110682. \fBboto_datapipeline\fP
  110683. T} T{
  110684. T}
  110685. _
  110686. T{
  110687. \fBboto_dynamodb\fP
  110688. T} T{
  110689. T}
  110690. _
  110691. T{
  110692. \fBboto_ec2\fP
  110693. T} T{
  110694. T}
  110695. _
  110696. T{
  110697. \fBboto_elasticache\fP
  110698. T} T{
  110699. Manage Elasticache
  110700. T}
  110701. _
  110702. T{
  110703. \fBboto_elasticsearch_domain\fP
  110704. T} T{
  110705. T}
  110706. _
  110707. T{
  110708. \fBboto_elb\fP
  110709. T} T{
  110710. T}
  110711. _
  110712. T{
  110713. \fBboto_elbv2\fP
  110714. T} T{
  110715. Manage AWS Application Load Balancer
  110716. T}
  110717. _
  110718. T{
  110719. \fBboto_iam\fP
  110720. T} T{
  110721. T}
  110722. _
  110723. T{
  110724. \fBboto_iam_role\fP
  110725. T} T{
  110726. T}
  110727. _
  110728. T{
  110729. \fBboto_iot\fP
  110730. T} T{
  110731. T}
  110732. _
  110733. T{
  110734. \fBboto_kinesis\fP
  110735. T} T{
  110736. Manage Kinesis Streams
  110737. T}
  110738. _
  110739. T{
  110740. \fBboto_kms\fP
  110741. T} T{
  110742. T}
  110743. _
  110744. T{
  110745. \fBboto_lambda\fP
  110746. T} T{
  110747. T}
  110748. _
  110749. T{
  110750. \fBboto_lc\fP
  110751. T} T{
  110752. Manage Launch Configurations
  110753. T}
  110754. _
  110755. T{
  110756. \fBboto_rds\fP
  110757. T} T{
  110758. T}
  110759. _
  110760. T{
  110761. \fBboto_route53\fP
  110762. T} T{
  110763. T}
  110764. _
  110765. T{
  110766. \fBboto_s3\fP
  110767. T} T{
  110768. T}
  110769. _
  110770. T{
  110771. \fBboto_s3_bucket\fP
  110772. T} T{
  110773. T}
  110774. _
  110775. T{
  110776. \fBboto_secgroup\fP
  110777. T} T{
  110778. T}
  110779. _
  110780. T{
  110781. \fBboto_sns\fP
  110782. T} T{
  110783. Manage SNS Topics
  110784. T}
  110785. _
  110786. T{
  110787. \fBboto_sqs\fP
  110788. T} T{
  110789. T}
  110790. _
  110791. T{
  110792. \fBboto_vpc\fP
  110793. T} T{
  110794. T}
  110795. _
  110796. T{
  110797. \fBbower\fP
  110798. T} T{
  110799. Installation of Bower Packages
  110800. T}
  110801. _
  110802. T{
  110803. \fBbtrfs\fP
  110804. T} T{
  110805. .INDENT 0.0
  110806. .TP
  110807. .B maintainer
  110808. Alberto Planas <\fI\%aplanas@suse.com\fP>
  110809. .UNINDENT
  110810. T}
  110811. _
  110812. T{
  110813. \fBcabal\fP
  110814. T} T{
  110815. T}
  110816. _
  110817. T{
  110818. \fBceph\fP
  110819. T} T{
  110820. T}
  110821. _
  110822. T{
  110823. \fBchef\fP
  110824. T} T{
  110825. Execute Chef client runs
  110826. T}
  110827. _
  110828. T{
  110829. \fBchocolatey\fP
  110830. T} T{
  110831. T}
  110832. _
  110833. T{
  110834. \fBchronos_job\fP
  110835. T} T{
  110836. Configure Chronos jobs via a salt proxy.
  110837. T}
  110838. _
  110839. T{
  110840. \fBcimc\fP
  110841. T} T{
  110842. A state module to manage Cisco UCS chassis devices.
  110843. T}
  110844. _
  110845. T{
  110846. \fBcisconso\fP
  110847. T} T{
  110848. T}
  110849. _
  110850. T{
  110851. \fBcloud\fP
  110852. T} T{
  110853. T}
  110854. _
  110855. T{
  110856. \fI\%cmd\fP
  110857. T} T{
  110858. A generic class to build line\-oriented command interpreters.
  110859. T}
  110860. _
  110861. T{
  110862. \fBcomposer\fP
  110863. T} T{
  110864. Installation of Composer Packages
  110865. T}
  110866. _
  110867. T{
  110868. \fBcron\fP
  110869. T} T{
  110870. T}
  110871. _
  110872. T{
  110873. \fBcryptdev\fP
  110874. T} T{
  110875. Opening of Encrypted Devices
  110876. T}
  110877. _
  110878. T{
  110879. \fBcsf\fP
  110880. T} T{
  110881. CSF Ip tables management
  110882. T}
  110883. _
  110884. T{
  110885. \fBcyg\fP
  110886. T} T{
  110887. Installation of Cygwin packages.
  110888. T}
  110889. _
  110890. T{
  110891. \fBddns\fP
  110892. T} T{
  110893. Dynamic DNS updates
  110894. T}
  110895. _
  110896. T{
  110897. \fBdebconfmod\fP
  110898. T} T{
  110899. Management of debconf selections
  110900. T}
  110901. _
  110902. T{
  110903. \fBdellchassis\fP
  110904. T} T{
  110905. Manage chassis via Salt Proxies.
  110906. T}
  110907. _
  110908. T{
  110909. \fBdisk\fP
  110910. T} T{
  110911. Disk monitoring state
  110912. T}
  110913. _
  110914. T{
  110915. \fBdocker_container\fP
  110916. T} T{
  110917. T}
  110918. _
  110919. T{
  110920. \fBdocker_image\fP
  110921. T} T{
  110922. T}
  110923. _
  110924. T{
  110925. \fBdocker_network\fP
  110926. T} T{
  110927. T}
  110928. _
  110929. T{
  110930. \fBdocker_volume\fP
  110931. T} T{
  110932. T}
  110933. _
  110934. T{
  110935. \fBdrac\fP
  110936. T} T{
  110937. T}
  110938. _
  110939. T{
  110940. \fBdvs\fP
  110941. T} T{
  110942. Manage VMware distributed virtual switches (DVSs) and their distributed virtual portgroups (DVportgroups).
  110943. T}
  110944. _
  110945. T{
  110946. \fBelasticsearch\fP
  110947. T} T{
  110948. T}
  110949. _
  110950. T{
  110951. \fBelasticsearch_index\fP
  110952. T} T{
  110953. State module to manage Elasticsearch indices
  110954. T}
  110955. _
  110956. T{
  110957. \fBelasticsearch_index_template\fP
  110958. T} T{
  110959. State module to manage Elasticsearch index templates
  110960. T}
  110961. _
  110962. T{
  110963. \fBenviron\fP
  110964. T} T{
  110965. T}
  110966. _
  110967. T{
  110968. \fBeselect\fP
  110969. T} T{
  110970. Management of Gentoo configuration using eselect
  110971. T}
  110972. _
  110973. T{
  110974. \fBesxcluster\fP
  110975. T} T{
  110976. T}
  110977. _
  110978. T{
  110979. \fBesxdatacenter\fP
  110980. T} T{
  110981. Salt states to create and manage VMware vSphere datacenters (datacenters).
  110982. T}
  110983. _
  110984. T{
  110985. \fBesxi\fP
  110986. T} T{
  110987. T}
  110988. _
  110989. T{
  110990. \fBesxvm\fP
  110991. T} T{
  110992. T}
  110993. _
  110994. T{
  110995. \fBetcd_mod\fP
  110996. T} T{
  110997. Manage etcd Keys
  110998. T}
  110999. _
  111000. T{
  111001. \fBethtool\fP
  111002. T} T{
  111003. Configuration of network device
  111004. T}
  111005. _
  111006. T{
  111007. \fBevent\fP
  111008. T} T{
  111009. T}
  111010. _
  111011. T{
  111012. \fBfile\fP
  111013. T} T{
  111014. T}
  111015. _
  111016. T{
  111017. \fBfirewall\fP
  111018. T} T{
  111019. State to check firewall configurations
  111020. T}
  111021. _
  111022. T{
  111023. \fBfirewalld\fP
  111024. T} T{
  111025. T}
  111026. _
  111027. T{
  111028. \fBgem\fP
  111029. T} T{
  111030. Installation of Ruby modules packaged as gems
  111031. T}
  111032. _
  111033. T{
  111034. \fBgit\fP
  111035. T} T{
  111036. T}
  111037. _
  111038. T{
  111039. \fBgithub\fP
  111040. T} T{
  111041. Github User State Module
  111042. T}
  111043. _
  111044. T{
  111045. \fBglance\fP
  111046. T} T{
  111047. Managing Images in OpenStack Glance
  111048. T}
  111049. _
  111050. T{
  111051. \fBglance_image\fP
  111052. T} T{
  111053. Management of OpenStack Glance Images
  111054. T}
  111055. _
  111056. T{
  111057. \fBglassfish\fP
  111058. T} T{
  111059. Manage Glassfish/Payara server ..
  111060. T}
  111061. _
  111062. T{
  111063. \fBglusterfs\fP
  111064. T} T{
  111065. T}
  111066. _
  111067. T{
  111068. \fBgnomedesktop\fP
  111069. T} T{
  111070. Configuration of the GNOME desktop
  111071. T}
  111072. _
  111073. T{
  111074. \fBgpg\fP
  111075. T} T{
  111076. Management of the GPG keychains
  111077. T}
  111078. _
  111079. T{
  111080. \fBgrafana\fP
  111081. T} T{
  111082. T}
  111083. _
  111084. T{
  111085. \fBgrafana4_dashboard\fP
  111086. T} T{
  111087. T}
  111088. _
  111089. T{
  111090. \fBgrafana4_datasource\fP
  111091. T} T{
  111092. T}
  111093. _
  111094. T{
  111095. \fBgrafana4_org\fP
  111096. T} T{
  111097. T}
  111098. _
  111099. T{
  111100. \fBgrafana4_user\fP
  111101. T} T{
  111102. T}
  111103. _
  111104. T{
  111105. \fBgrafana_dashboard\fP
  111106. T} T{
  111107. T}
  111108. _
  111109. T{
  111110. \fBgrafana_datasource\fP
  111111. T} T{
  111112. Manage Grafana v2.0 data sources
  111113. T}
  111114. _
  111115. T{
  111116. \fBgrains\fP
  111117. T} T{
  111118. Manage grains on the minion
  111119. T}
  111120. _
  111121. T{
  111122. \fBgroup\fP
  111123. T} T{
  111124. T}
  111125. _
  111126. T{
  111127. \fBheat\fP
  111128. T} T{
  111129. T}
  111130. _
  111131. T{
  111132. \fBhelm\fP
  111133. T} T{
  111134. T}
  111135. _
  111136. T{
  111137. \fBhg\fP
  111138. T} T{
  111139. T}
  111140. _
  111141. T{
  111142. \fBhighstate_doc\fP
  111143. T} T{
  111144. To be used with processors in module \fIhighstate_doc\fP\&.
  111145. T}
  111146. _
  111147. T{
  111148. \fBhost\fP
  111149. T} T{
  111150. T}
  111151. _
  111152. T{
  111153. \fBhttp\fP
  111154. T} T{
  111155. HTTP monitoring states
  111156. T}
  111157. _
  111158. T{
  111159. \fBicinga2\fP
  111160. T} T{
  111161. T}
  111162. _
  111163. T{
  111164. \fBifttt\fP
  111165. T} T{
  111166. Trigger an event in IFTTT
  111167. T}
  111168. _
  111169. T{
  111170. \fBincron\fP
  111171. T} T{
  111172. Management of incron, the inotify cron
  111173. T}
  111174. _
  111175. T{
  111176. \fBinfluxdb08_database\fP
  111177. T} T{
  111178. Management of Influxdb 0.8 databases
  111179. T}
  111180. _
  111181. T{
  111182. \fBinfluxdb08_user\fP
  111183. T} T{
  111184. Management of InfluxDB 0.8 users
  111185. T}
  111186. _
  111187. T{
  111188. \fBinfluxdb_continuous_query\fP
  111189. T} T{
  111190. Management of Influxdb continuous queries
  111191. T}
  111192. _
  111193. T{
  111194. \fBinfluxdb_database\fP
  111195. T} T{
  111196. Management of Influxdb databases
  111197. T}
  111198. _
  111199. T{
  111200. \fBinfluxdb_retention_policy\fP
  111201. T} T{
  111202. Management of Influxdb retention policies
  111203. T}
  111204. _
  111205. T{
  111206. \fBinfluxdb_user\fP
  111207. T} T{
  111208. Management of InfluxDB users
  111209. T}
  111210. _
  111211. T{
  111212. \fBinfoblox_a\fP
  111213. T} T{
  111214. Infoblox A record management.
  111215. T}
  111216. _
  111217. T{
  111218. \fBinfoblox_cname\fP
  111219. T} T{
  111220. Infoblox CNAME management.
  111221. T}
  111222. _
  111223. T{
  111224. \fBinfoblox_host_record\fP
  111225. T} T{
  111226. Infoblox host record management.
  111227. T}
  111228. _
  111229. T{
  111230. \fBinfoblox_range\fP
  111231. T} T{
  111232. Infoblox host record management.
  111233. T}
  111234. _
  111235. T{
  111236. \fBini_manage\fP
  111237. T} T{
  111238. T}
  111239. _
  111240. T{
  111241. \fBipmi\fP
  111242. T} T{
  111243. Manage IPMI devices over LAN
  111244. T}
  111245. _
  111246. T{
  111247. \fBipset\fP
  111248. T} T{
  111249. Management of ipsets
  111250. T}
  111251. _
  111252. T{
  111253. \fBiptables\fP
  111254. T} T{
  111255. T}
  111256. _
  111257. T{
  111258. \fBjboss7\fP
  111259. T} T{
  111260. T}
  111261. _
  111262. T{
  111263. \fBjenkins\fP
  111264. T} T{
  111265. T}
  111266. _
  111267. T{
  111268. \fBjunos\fP
  111269. T} T{
  111270. State modules to interact with Junos devices.
  111271. T}
  111272. _
  111273. T{
  111274. \fBkapacitor\fP
  111275. T} T{
  111276. T}
  111277. _
  111278. T{
  111279. \fBkernelpkg\fP
  111280. T} T{
  111281. Manage kernel packages and active kernel version
  111282. T}
  111283. _
  111284. T{
  111285. \fBkeyboard\fP
  111286. T} T{
  111287. Management of keyboard layouts
  111288. T}
  111289. _
  111290. T{
  111291. \fBkeystone\fP
  111292. T} T{
  111293. Management of Keystone users
  111294. T}
  111295. _
  111296. T{
  111297. \fBkeystone_domain\fP
  111298. T} T{
  111299. Management of OpenStack Keystone Domains
  111300. T}
  111301. _
  111302. T{
  111303. \fBkeystone_endpoint\fP
  111304. T} T{
  111305. Management of OpenStack Keystone Endpoints
  111306. T}
  111307. _
  111308. T{
  111309. \fBkeystone_group\fP
  111310. T} T{
  111311. Management of OpenStack Keystone Groups
  111312. T}
  111313. _
  111314. T{
  111315. \fBkeystone_project\fP
  111316. T} T{
  111317. Management of OpenStack Keystone Projects
  111318. T}
  111319. _
  111320. T{
  111321. \fBkeystone_role\fP
  111322. T} T{
  111323. Management of OpenStack Keystone Roles
  111324. T}
  111325. _
  111326. T{
  111327. \fBkeystone_role_grant\fP
  111328. T} T{
  111329. Management of OpenStack Keystone Role Grants
  111330. T}
  111331. _
  111332. T{
  111333. \fBkeystone_service\fP
  111334. T} T{
  111335. Management of OpenStack Keystone Services
  111336. T}
  111337. _
  111338. T{
  111339. \fBkeystone_user\fP
  111340. T} T{
  111341. Management of OpenStack Keystone Users
  111342. T}
  111343. _
  111344. T{
  111345. \fBkeystore\fP
  111346. T} T{
  111347. State management of a java keystore
  111348. T}
  111349. _
  111350. T{
  111351. \fBkmod\fP
  111352. T} T{
  111353. Loading and unloading of kernel modules
  111354. T}
  111355. _
  111356. T{
  111357. \fBkubernetes\fP
  111358. T} T{
  111359. Manage kubernetes resources as salt states
  111360. T}
  111361. _
  111362. T{
  111363. \fBlayman\fP
  111364. T} T{
  111365. Management of Gentoo Overlays using layman
  111366. T}
  111367. _
  111368. T{
  111369. \fBldap\fP
  111370. T} T{
  111371. T}
  111372. _
  111373. T{
  111374. \fBlibcloud_dns\fP
  111375. T} T{
  111376. T}
  111377. _
  111378. T{
  111379. \fBlibcloud_loadbalancer\fP
  111380. T} T{
  111381. T}
  111382. _
  111383. T{
  111384. \fBlibcloud_storage\fP
  111385. T} T{
  111386. T}
  111387. _
  111388. T{
  111389. \fBlinux_acl\fP
  111390. T} T{
  111391. T}
  111392. _
  111393. T{
  111394. \fBlocale\fP
  111395. T} T{
  111396. Management of languages/locales
  111397. T}
  111398. _
  111399. T{
  111400. \fBlogadm\fP
  111401. T} T{
  111402. T}
  111403. _
  111404. T{
  111405. \fBlogrotate\fP
  111406. T} T{
  111407. Module for managing logrotate.
  111408. T}
  111409. _
  111410. T{
  111411. \fBloop\fP
  111412. T} T{
  111413. Loop state
  111414. T}
  111415. _
  111416. T{
  111417. \fBlvm\fP
  111418. T} T{
  111419. T}
  111420. _
  111421. T{
  111422. \fBlvs_server\fP
  111423. T} T{
  111424. Management of LVS (Linux Virtual Server) Real Server
  111425. T}
  111426. _
  111427. T{
  111428. \fBlvs_service\fP
  111429. T} T{
  111430. Management of LVS (Linux Virtual Server) Service
  111431. T}
  111432. _
  111433. T{
  111434. \fBlxc\fP
  111435. T} T{
  111436. Manage Linux Containers
  111437. T}
  111438. _
  111439. T{
  111440. \fBlxd\fP
  111441. T} T{
  111442. Manage LXD profiles.
  111443. T}
  111444. _
  111445. T{
  111446. \fBlxd_container\fP
  111447. T} T{
  111448. Manage LXD containers.
  111449. T}
  111450. _
  111451. T{
  111452. \fBlxd_image\fP
  111453. T} T{
  111454. Manage LXD images.
  111455. T}
  111456. _
  111457. T{
  111458. \fBlxd_profile\fP
  111459. T} T{
  111460. Manage LXD profiles.
  111461. T}
  111462. _
  111463. T{
  111464. \fBmac_assistive\fP
  111465. T} T{
  111466. T}
  111467. _
  111468. T{
  111469. \fBmac_keychain\fP
  111470. T} T{
  111471. T}
  111472. _
  111473. T{
  111474. \fBmac_xattr\fP
  111475. T} T{
  111476. Allows you to manage extended attributes on files or directories
  111477. T}
  111478. _
  111479. T{
  111480. \fBmacdefaults\fP
  111481. T} T{
  111482. T}
  111483. _
  111484. T{
  111485. \fBmacpackage\fP
  111486. T} T{
  111487. T}
  111488. _
  111489. T{
  111490. \fBmakeconf\fP
  111491. T} T{
  111492. Management of Gentoo make.conf
  111493. T}
  111494. _
  111495. T{
  111496. \fBmarathon_app\fP
  111497. T} T{
  111498. Configure Marathon apps via a salt proxy.
  111499. T}
  111500. _
  111501. T{
  111502. \fBmdadm_raid\fP
  111503. T} T{
  111504. T}
  111505. _
  111506. T{
  111507. \fBmemcached\fP
  111508. T} T{
  111509. T}
  111510. _
  111511. T{
  111512. \fBmodjk\fP
  111513. T} T{
  111514. State to control Apache modjk
  111515. T}
  111516. _
  111517. T{
  111518. \fBmodjk_worker\fP
  111519. T} T{
  111520. Manage modjk workers
  111521. T}
  111522. _
  111523. T{
  111524. \fBmodule\fP
  111525. T} T{
  111526. T}
  111527. _
  111528. T{
  111529. \fBmongodb_database\fP
  111530. T} T{
  111531. Management of MongoDB Databases
  111532. T}
  111533. _
  111534. T{
  111535. \fBmongodb_user\fP
  111536. T} T{
  111537. Management of MongoDB Users
  111538. T}
  111539. _
  111540. T{
  111541. \fBmonit\fP
  111542. T} T{
  111543. Monit state
  111544. T}
  111545. _
  111546. T{
  111547. \fBmount\fP
  111548. T} T{
  111549. Mounting of filesystems
  111550. T}
  111551. _
  111552. T{
  111553. \fBmssql_database\fP
  111554. T} T{
  111555. Management of Microsoft SQLServer Databases
  111556. T}
  111557. _
  111558. T{
  111559. \fBmssql_login\fP
  111560. T} T{
  111561. Management of Microsoft SQLServer Logins
  111562. T}
  111563. _
  111564. T{
  111565. \fBmssql_role\fP
  111566. T} T{
  111567. Management of Microsoft SQLServer Databases
  111568. T}
  111569. _
  111570. T{
  111571. \fBmssql_user\fP
  111572. T} T{
  111573. Management of Microsoft SQLServer Users
  111574. T}
  111575. _
  111576. T{
  111577. \fBmsteams\fP
  111578. T} T{
  111579. Send a message card to Microsoft Teams
  111580. T}
  111581. _
  111582. T{
  111583. \fBmysql_database\fP
  111584. T} T{
  111585. Management of MySQL databases (schemas)
  111586. T}
  111587. _
  111588. T{
  111589. \fBmysql_grants\fP
  111590. T} T{
  111591. Management of MySQL grants (user permissions)
  111592. T}
  111593. _
  111594. T{
  111595. \fBmysql_query\fP
  111596. T} T{
  111597. T}
  111598. _
  111599. T{
  111600. \fBmysql_user\fP
  111601. T} T{
  111602. T}
  111603. _
  111604. T{
  111605. \fBnet_napalm_yang\fP
  111606. T} T{
  111607. T}
  111608. _
  111609. T{
  111610. \fBnetacl\fP
  111611. T} T{
  111612. T}
  111613. _
  111614. T{
  111615. \fBnetconfig\fP
  111616. T} T{
  111617. T}
  111618. _
  111619. T{
  111620. \fBnetntp\fP
  111621. T} T{
  111622. T}
  111623. _
  111624. T{
  111625. \fBnetsnmp\fP
  111626. T} T{
  111627. T}
  111628. _
  111629. T{
  111630. \fBnetusers\fP
  111631. T} T{
  111632. T}
  111633. _
  111634. T{
  111635. \fBnetwork\fP
  111636. T} T{
  111637. T}
  111638. _
  111639. T{
  111640. \fBneutron_network\fP
  111641. T} T{
  111642. Management of OpenStack Neutron Networks
  111643. T}
  111644. _
  111645. T{
  111646. \fBneutron_secgroup\fP
  111647. T} T{
  111648. Management of OpenStack Neutron Security Groups
  111649. T}
  111650. _
  111651. T{
  111652. \fBneutron_secgroup_rule\fP
  111653. T} T{
  111654. Management of OpenStack Neutron Security Group Rules
  111655. T}
  111656. _
  111657. T{
  111658. \fBneutron_subnet\fP
  111659. T} T{
  111660. Management of OpenStack Neutron Subnets
  111661. T}
  111662. _
  111663. T{
  111664. \fBnexus\fP
  111665. T} T{
  111666. This state downloads artifacts from Nexus 3.x.
  111667. T}
  111668. _
  111669. T{
  111670. \fBnfs_export\fP
  111671. T} T{
  111672. T}
  111673. _
  111674. T{
  111675. \fBnftables\fP
  111676. T} T{
  111677. T}
  111678. _
  111679. T{
  111680. \fBnpm\fP
  111681. T} T{
  111682. Installation of NPM Packages
  111683. T}
  111684. _
  111685. T{
  111686. \fBntp\fP
  111687. T} T{
  111688. T}
  111689. _
  111690. T{
  111691. \fBnxos\fP
  111692. T} T{
  111693. State module for Cisco NX\-OS Switch Proxy and Native minions
  111694. T}
  111695. _
  111696. T{
  111697. \fBnxos_upgrade\fP
  111698. T} T{
  111699. Manage NX\-OS System Image Upgrades.
  111700. T}
  111701. _
  111702. T{
  111703. \fBopenstack_config\fP
  111704. T} T{
  111705. Manage OpenStack configuration file settings.
  111706. T}
  111707. _
  111708. T{
  111709. \fBopenvswitch_bridge\fP
  111710. T} T{
  111711. Management of Open vSwitch bridges.
  111712. T}
  111713. _
  111714. T{
  111715. \fBopenvswitch_port\fP
  111716. T} T{
  111717. Management of Open vSwitch ports.
  111718. T}
  111719. _
  111720. T{
  111721. \fBopsgenie\fP
  111722. T} T{
  111723. Create/Close an alert in OpsGenie
  111724. T}
  111725. _
  111726. T{
  111727. \fBpagerduty\fP
  111728. T} T{
  111729. Create an Event in PagerDuty
  111730. T}
  111731. _
  111732. T{
  111733. \fBpagerduty_escalation_policy\fP
  111734. T} T{
  111735. Manage PagerDuty escalation policies.
  111736. T}
  111737. _
  111738. T{
  111739. \fBpagerduty_schedule\fP
  111740. T} T{
  111741. Manage PagerDuty schedules.
  111742. T}
  111743. _
  111744. T{
  111745. \fBpagerduty_service\fP
  111746. T} T{
  111747. Manage PagerDuty services
  111748. T}
  111749. _
  111750. T{
  111751. \fBpagerduty_user\fP
  111752. T} T{
  111753. Manage PagerDuty users.
  111754. T}
  111755. _
  111756. T{
  111757. \fBpanos\fP
  111758. T} T{
  111759. A state module to manage Palo Alto network devices.
  111760. T}
  111761. _
  111762. T{
  111763. \fBpbm\fP
  111764. T} T{
  111765. T}
  111766. _
  111767. T{
  111768. \fBpcs\fP
  111769. T} T{
  111770. T}
  111771. _
  111772. T{
  111773. \fBpdbedit\fP
  111774. T} T{
  111775. T}
  111776. _
  111777. T{
  111778. \fBpecl\fP
  111779. T} T{
  111780. Installation of PHP Extensions Using pecl
  111781. T}
  111782. _
  111783. T{
  111784. \fBpip_state\fP
  111785. T} T{
  111786. T}
  111787. _
  111788. T{
  111789. \fBpkg\fP
  111790. T} T{
  111791. T}
  111792. _
  111793. T{
  111794. \fBpkgbuild\fP
  111795. T} T{
  111796. The pkgbuild state is the front of Salt package building backend.
  111797. T}
  111798. _
  111799. T{
  111800. \fBpkgng\fP
  111801. T} T{
  111802. Manage package remote repo using FreeBSD pkgng
  111803. T}
  111804. _
  111805. T{
  111806. \fBpkgrepo\fP
  111807. T} T{
  111808. T}
  111809. _
  111810. T{
  111811. \fBportage_config\fP
  111812. T} T{
  111813. Management of Portage package configuration on Gentoo
  111814. T}
  111815. _
  111816. T{
  111817. \fBports\fP
  111818. T} T{
  111819. T}
  111820. _
  111821. T{
  111822. \fBpostgres_cluster\fP
  111823. T} T{
  111824. Management of PostgreSQL clusters
  111825. T}
  111826. _
  111827. T{
  111828. \fBpostgres_database\fP
  111829. T} T{
  111830. Management of PostgreSQL databases
  111831. T}
  111832. _
  111833. T{
  111834. \fBpostgres_extension\fP
  111835. T} T{
  111836. T}
  111837. _
  111838. T{
  111839. \fBpostgres_group\fP
  111840. T} T{
  111841. T}
  111842. _
  111843. T{
  111844. \fBpostgres_initdb\fP
  111845. T} T{
  111846. Initialization of PostgreSQL data directory
  111847. T}
  111848. _
  111849. T{
  111850. \fBpostgres_language\fP
  111851. T} T{
  111852. Management of PostgreSQL languages
  111853. T}
  111854. _
  111855. T{
  111856. \fBpostgres_privileges\fP
  111857. T} T{
  111858. Management of PostgreSQL Privileges
  111859. T}
  111860. _
  111861. T{
  111862. \fBpostgres_schema\fP
  111863. T} T{
  111864. Management of PostgreSQL schemas
  111865. T}
  111866. _
  111867. T{
  111868. \fBpostgres_tablespace\fP
  111869. T} T{
  111870. T}
  111871. _
  111872. T{
  111873. \fBpostgres_user\fP
  111874. T} T{
  111875. T}
  111876. _
  111877. T{
  111878. \fBpowerpath\fP
  111879. T} T{
  111880. Powerpath configuration support
  111881. T}
  111882. _
  111883. T{
  111884. \fBprobes\fP
  111885. T} T{
  111886. T}
  111887. _
  111888. T{
  111889. \fBprocess\fP
  111890. T} T{
  111891. Process Management
  111892. T}
  111893. _
  111894. T{
  111895. \fBproxy\fP
  111896. T} T{
  111897. T}
  111898. _
  111899. T{
  111900. \fBpushover\fP
  111901. T} T{
  111902. Send a message to PushOver
  111903. T}
  111904. _
  111905. T{
  111906. \fBpyenv\fP
  111907. T} T{
  111908. Managing python installations with pyenv
  111909. T}
  111910. _
  111911. T{
  111912. \fBpyrax_queues\fP
  111913. T} T{
  111914. Manage Rackspace Queues
  111915. T}
  111916. _
  111917. T{
  111918. \fBquota\fP
  111919. T} T{
  111920. Management of POSIX Quotas
  111921. T}
  111922. _
  111923. T{
  111924. \fBrabbitmq_cluster\fP
  111925. T} T{
  111926. T}
  111927. _
  111928. T{
  111929. \fBrabbitmq_plugin\fP
  111930. T} T{
  111931. Manage RabbitMQ Plugins
  111932. T}
  111933. _
  111934. T{
  111935. \fBrabbitmq_policy\fP
  111936. T} T{
  111937. T}
  111938. _
  111939. T{
  111940. \fBrabbitmq_upstream\fP
  111941. T} T{
  111942. T}
  111943. _
  111944. T{
  111945. \fBrabbitmq_user\fP
  111946. T} T{
  111947. T}
  111948. _
  111949. T{
  111950. \fBrabbitmq_vhost\fP
  111951. T} T{
  111952. T}
  111953. _
  111954. T{
  111955. \fBrbac_solaris\fP
  111956. T} T{
  111957. Management of Solaris RBAC
  111958. T}
  111959. _
  111960. T{
  111961. \fBrbenv\fP
  111962. T} T{
  111963. Managing Ruby installations with rbenv
  111964. T}
  111965. _
  111966. T{
  111967. \fBrdp\fP
  111968. T} T{
  111969. Manage RDP Service on Windows servers
  111970. T}
  111971. _
  111972. T{
  111973. \fBredismod\fP
  111974. T} T{
  111975. Management of Redis server
  111976. T}
  111977. _
  111978. T{
  111979. \fBreg\fP
  111980. T} T{
  111981. T}
  111982. _
  111983. T{
  111984. \fBrsync\fP
  111985. T} T{
  111986. T}
  111987. _
  111988. T{
  111989. \fBrvm\fP
  111990. T} T{
  111991. Managing Ruby installations and gemsets with Ruby Version Manager (RVM)
  111992. T}
  111993. _
  111994. T{
  111995. \fBsalt_proxy\fP
  111996. T} T{
  111997. Salt proxy state
  111998. T}
  111999. _
  112000. T{
  112001. \fBsaltmod\fP
  112002. T} T{
  112003. T}
  112004. _
  112005. T{
  112006. \fBsaltutil\fP
  112007. T} T{
  112008. Saltutil State
  112009. T}
  112010. _
  112011. T{
  112012. \fBschedule\fP
  112013. T} T{
  112014. Management of the Salt scheduler
  112015. T}
  112016. _
  112017. T{
  112018. \fBselinux\fP
  112019. T} T{
  112020. Management of SELinux rules
  112021. T}
  112022. _
  112023. T{
  112024. \fBserverdensity_device\fP
  112025. T} T{
  112026. T}
  112027. _
  112028. T{
  112029. \fBservice\fP
  112030. T} T{
  112031. T}
  112032. _
  112033. T{
  112034. \fBslack\fP
  112035. T} T{
  112036. Send a message to Slack
  112037. T}
  112038. _
  112039. T{
  112040. \fBsmartos\fP
  112041. T} T{
  112042. T}
  112043. _
  112044. T{
  112045. \fBsmtp\fP
  112046. T} T{
  112047. Sending Messages via SMTP
  112048. T}
  112049. _
  112050. T{
  112051. \fBsnapper\fP
  112052. T} T{
  112053. Managing implicit state and baselines using snapshots
  112054. T}
  112055. _
  112056. T{
  112057. \fBsolrcloud\fP
  112058. T} T{
  112059. T}
  112060. _
  112061. T{
  112062. \fBsplunk\fP
  112063. T} T{
  112064. Splunk User State Module
  112065. T}
  112066. _
  112067. T{
  112068. \fBsplunk_search\fP
  112069. T} T{
  112070. Splunk Search State Module
  112071. T}
  112072. _
  112073. T{
  112074. \fBsqlite3\fP
  112075. T} T{
  112076. Management of SQLite3 databases
  112077. T}
  112078. _
  112079. T{
  112080. \fBssh_auth\fP
  112081. T} T{
  112082. Control of entries in SSH authorized_key files
  112083. T}
  112084. _
  112085. T{
  112086. \fBssh_known_hosts\fP
  112087. T} T{
  112088. T}
  112089. _
  112090. T{
  112091. \fBstateconf\fP
  112092. T} T{
  112093. Stateconf System
  112094. T}
  112095. _
  112096. T{
  112097. \fBstatus\fP
  112098. T} T{
  112099. Minion status monitoring
  112100. T}
  112101. _
  112102. T{
  112103. \fBstatuspage\fP
  112104. T} T{
  112105. StatusPage
  112106. T}
  112107. _
  112108. T{
  112109. \fBsupervisord\fP
  112110. T} T{
  112111. Interaction with the Supervisor daemon
  112112. T}
  112113. _
  112114. T{
  112115. \fBsvn\fP
  112116. T} T{
  112117. T}
  112118. _
  112119. T{
  112120. \fBsysctl\fP
  112121. T} T{
  112122. Configuration of the kernel using sysctl
  112123. T}
  112124. _
  112125. T{
  112126. \fBsyslog_ng\fP
  112127. T} T{
  112128. State module for syslog_ng
  112129. T}
  112130. _
  112131. T{
  112132. \fBsysrc\fP
  112133. T} T{
  112134. State to work with sysrc
  112135. T}
  112136. _
  112137. T{
  112138. \fBtelemetry_alert\fP
  112139. T} T{
  112140. Manage Telemetry alert configurations
  112141. T}
  112142. _
  112143. T{
  112144. \fI\%test\fP
  112145. T} T{
  112146. T}
  112147. _
  112148. T{
  112149. \fBtestinframod\fP
  112150. T} T{
  112151. T}
  112152. _
  112153. T{
  112154. \fBtimezone\fP
  112155. T} T{
  112156. Management of timezones
  112157. T}
  112158. _
  112159. T{
  112160. \fBtls\fP
  112161. T} T{
  112162. Enforce state for SSL/TLS
  112163. T}
  112164. _
  112165. T{
  112166. \fBtomcat\fP
  112167. T} T{
  112168. Manage Apache Tomcat web applications
  112169. T}
  112170. _
  112171. T{
  112172. \fBtrafficserver\fP
  112173. T} T{
  112174. Control Apache Traffic Server
  112175. T}
  112176. _
  112177. T{
  112178. \fBtuned\fP
  112179. T} T{
  112180. Interface to Red Hat tuned\-adm module
  112181. T}
  112182. _
  112183. T{
  112184. \fBuptime\fP
  112185. T} T{
  112186. Monitor Web Server with Uptime
  112187. T}
  112188. _
  112189. T{
  112190. \fBuser\fP
  112191. T} T{
  112192. T}
  112193. _
  112194. T{
  112195. \fBvagrant\fP
  112196. T} T{
  112197. T}
  112198. _
  112199. T{
  112200. \fBvault\fP
  112201. T} T{
  112202. States for managing Hashicorp Vault.
  112203. T}
  112204. _
  112205. T{
  112206. \fBvbox_guest\fP
  112207. T} T{
  112208. VirtualBox Guest Additions installer state
  112209. T}
  112210. _
  112211. T{
  112212. \fBvictorops\fP
  112213. T} T{
  112214. Create an Event in VictorOps
  112215. T}
  112216. _
  112217. T{
  112218. \fBvirt\fP
  112219. T} T{
  112220. T}
  112221. _
  112222. T{
  112223. \fBvirtualenv_mod\fP
  112224. T} T{
  112225. T}
  112226. _
  112227. T{
  112228. \fBwebutil\fP
  112229. T} T{
  112230. T}
  112231. _
  112232. T{
  112233. \fBwin_certutil\fP
  112234. T} T{
  112235. T}
  112236. _
  112237. T{
  112238. \fBwin_dacl\fP
  112239. T} T{
  112240. Windows Object Access Control Lists
  112241. T}
  112242. _
  112243. T{
  112244. \fBwin_dism\fP
  112245. T} T{
  112246. T}
  112247. _
  112248. T{
  112249. \fBwin_dns_client\fP
  112250. T} T{
  112251. Module for configuring DNS Client on Windows systems
  112252. T}
  112253. _
  112254. T{
  112255. \fBwin_firewall\fP
  112256. T} T{
  112257. State for configuring Windows Firewall
  112258. T}
  112259. _
  112260. T{
  112261. \fBwin_iis\fP
  112262. T} T{
  112263. Microsoft IIS site management
  112264. T}
  112265. _
  112266. T{
  112267. \fBwin_lgpo\fP
  112268. T} T{
  112269. T}
  112270. _
  112271. T{
  112272. \fBwin_license\fP
  112273. T} T{
  112274. T}
  112275. _
  112276. T{
  112277. \fBwin_network\fP
  112278. T} T{
  112279. T}
  112280. _
  112281. T{
  112282. \fBwin_path\fP
  112283. T} T{
  112284. T}
  112285. _
  112286. T{
  112287. \fBwin_pki\fP
  112288. T} T{
  112289. Microsoft certificate management via the Pki PowerShell module.
  112290. T}
  112291. _
  112292. T{
  112293. \fBwin_powercfg\fP
  112294. T} T{
  112295. T}
  112296. _
  112297. T{
  112298. \fBwin_servermanager\fP
  112299. T} T{
  112300. T}
  112301. _
  112302. T{
  112303. \fBwin_smtp_server\fP
  112304. T} T{
  112305. T}
  112306. _
  112307. T{
  112308. \fBwin_snmp\fP
  112309. T} T{
  112310. Module for managing SNMP service settings on Windows servers.
  112311. T}
  112312. _
  112313. T{
  112314. \fBwin_system\fP
  112315. T} T{
  112316. T}
  112317. _
  112318. T{
  112319. \fBwin_wua\fP
  112320. T} T{
  112321. T}
  112322. _
  112323. T{
  112324. \fBwin_wusa\fP
  112325. T} T{
  112326. T}
  112327. _
  112328. T{
  112329. \fBwinrepo\fP
  112330. T} T{
  112331. T}
  112332. _
  112333. T{
  112334. \fBwordpress\fP
  112335. T} T{
  112336. This state module is used to manage Wordpress installations
  112337. T}
  112338. _
  112339. T{
  112340. \fBx509\fP
  112341. T} T{
  112342. Manage X509 Certificates
  112343. T}
  112344. _
  112345. T{
  112346. \fBxml\fP
  112347. T} T{
  112348. XML Manager
  112349. T}
  112350. _
  112351. T{
  112352. \fBxmpp\fP
  112353. T} T{
  112354. Sending Messages over XMPP
  112355. T}
  112356. _
  112357. T{
  112358. \fBzabbix_action\fP
  112359. T} T{
  112360. New in version 2017.7.
  112361. T}
  112362. _
  112363. T{
  112364. \fBzabbix_host\fP
  112365. T} T{
  112366. T}
  112367. _
  112368. T{
  112369. \fBzabbix_hostgroup\fP
  112370. T} T{
  112371. Management of Zabbix host groups.
  112372. T}
  112373. _
  112374. T{
  112375. \fBzabbix_mediatype\fP
  112376. T} T{
  112377. Management of Zabbix mediatypes.
  112378. T}
  112379. _
  112380. T{
  112381. \fBzabbix_template\fP
  112382. T} T{
  112383. New in version 2017.7.
  112384. T}
  112385. _
  112386. T{
  112387. \fBzabbix_user\fP
  112388. T} T{
  112389. T}
  112390. _
  112391. T{
  112392. \fBzabbix_usergroup\fP
  112393. T} T{
  112394. Management of Zabbix user groups.
  112395. T}
  112396. _
  112397. T{
  112398. \fBzabbix_usermacro\fP
  112399. T} T{
  112400. Management of Zabbix usermacros.
  112401. T}
  112402. _
  112403. T{
  112404. \fBzabbix_valuemap\fP
  112405. T} T{
  112406. New in version 2017.7.
  112407. T}
  112408. _
  112409. T{
  112410. \fBzcbuildout\fP
  112411. T} T{
  112412. Management of zc.buildout
  112413. T}
  112414. _
  112415. T{
  112416. \fBzenoss\fP
  112417. T} T{
  112418. State to manage monitoring in Zenoss.
  112419. T}
  112420. _
  112421. T{
  112422. \fBzfs\fP
  112423. T} T{
  112424. T}
  112425. _
  112426. T{
  112427. \fBzk_concurrency\fP
  112428. T} T{
  112429. Control concurrency of steps within state execution using zookeeper
  112430. T}
  112431. _
  112432. T{
  112433. \fBzone\fP
  112434. T} T{
  112435. T}
  112436. _
  112437. T{
  112438. \fBzookeeper\fP
  112439. T} T{
  112440. .INDENT 0.0
  112441. .TP
  112442. .B depends
  112443. kazoo
  112444. .UNINDENT
  112445. T}
  112446. _
  112447. T{
  112448. \fBzpool\fP
  112449. T} T{
  112450. T}
  112451. _
  112452. .TE
  112453. .SS salt.states.alias
  112454. .sp
  112455. Configuration of email aliases
  112456. .sp
  112457. The mail aliases file can be managed to contain definitions for specific email
  112458. aliases:
  112459. .INDENT 0.0
  112460. .INDENT 3.5
  112461. .sp
  112462. .nf
  112463. .ft C
  112464. username:
  112465. alias.present:
  112466. \- target: user@example.com
  112467. .ft P
  112468. .fi
  112469. .UNINDENT
  112470. .UNINDENT
  112471. .INDENT 0.0
  112472. .INDENT 3.5
  112473. .sp
  112474. .nf
  112475. .ft C
  112476. thomas:
  112477. alias.present:
  112478. \- target: thomas@example.com
  112479. .ft P
  112480. .fi
  112481. .UNINDENT
  112482. .UNINDENT
  112483. .sp
  112484. The default alias file is set to \fB/etc/aliases\fP, as defined in Salt\(aqs
  112485. \fBconfig execution module\fP\&. To change the alias
  112486. file from the default location, set the following in your minion config:
  112487. .INDENT 0.0
  112488. .INDENT 3.5
  112489. .sp
  112490. .nf
  112491. .ft C
  112492. aliases.file: /my/alias/file
  112493. .ft P
  112494. .fi
  112495. .UNINDENT
  112496. .UNINDENT
  112497. .INDENT 0.0
  112498. .TP
  112499. .B salt.states.alias.absent(name)
  112500. Ensure that the named alias is absent
  112501. .INDENT 7.0
  112502. .TP
  112503. .B name
  112504. The alias to remove
  112505. .UNINDENT
  112506. .UNINDENT
  112507. .INDENT 0.0
  112508. .TP
  112509. .B salt.states.alias.present(name, target)
  112510. Ensures that the named alias is present with the given target or list of
  112511. targets. If the alias exists but the target differs from the previous
  112512. entry, the target(s) will be overwritten. If the alias does not exist, the
  112513. alias will be created.
  112514. .INDENT 7.0
  112515. .TP
  112516. .B name
  112517. The local user/address to assign an alias to
  112518. .TP
  112519. .B target
  112520. The forwarding address
  112521. .UNINDENT
  112522. .UNINDENT
  112523. .SS salt.states.alternatives
  112524. .sp
  112525. Configuration of the alternatives system
  112526. .sp
  112527. Control the alternatives system
  112528. .INDENT 0.0
  112529. .INDENT 3.5
  112530. .sp
  112531. .nf
  112532. .ft C
  112533. {% set my_hadoop_conf = \(aq/opt/hadoop/conf\(aq %}
  112534. {{ my_hadoop_conf }}:
  112535. file.directory
  112536. hadoop\-0.20\-conf:
  112537. alternatives.install:
  112538. \- name: hadoop\-0.20\-conf
  112539. \- link: /etc/hadoop\-0.20/conf
  112540. \- path: {{ my_hadoop_conf }}
  112541. \- priority: 30
  112542. \- require:
  112543. \- file: {{ my_hadoop_conf }}
  112544. hadoop\-0.20\-conf:
  112545. alternatives.remove:
  112546. \- name: hadoop\-0.20\-conf
  112547. \- path: {{ my_hadoop_conf }}
  112548. .ft P
  112549. .fi
  112550. .UNINDENT
  112551. .UNINDENT
  112552. .INDENT 0.0
  112553. .TP
  112554. .B salt.states.alternatives.auto(name)
  112555. New in version 0.17.0.
  112556. .sp
  112557. Instruct alternatives to use the highest priority
  112558. path for <name>
  112559. .INDENT 7.0
  112560. .TP
  112561. .B name
  112562. is the master name for this link group
  112563. (e.g. pager)
  112564. .UNINDENT
  112565. .UNINDENT
  112566. .INDENT 0.0
  112567. .TP
  112568. .B salt.states.alternatives.install(name, link, path, priority)
  112569. Install new alternative for defined <name>
  112570. .INDENT 7.0
  112571. .TP
  112572. .B name
  112573. is the master name for this link group
  112574. (e.g. pager)
  112575. .TP
  112576. .B link
  112577. is the symlink pointing to /etc/alternatives/<name>.
  112578. (e.g. /usr/bin/pager)
  112579. .TP
  112580. .B path
  112581. is the location of the new alternative target.
  112582. NB: This file / directory must already exist.
  112583. (e.g. /usr/bin/less)
  112584. .TP
  112585. .B priority
  112586. is an integer; options with higher numbers have higher priority in
  112587. automatic mode.
  112588. .UNINDENT
  112589. .UNINDENT
  112590. .INDENT 0.0
  112591. .TP
  112592. .B salt.states.alternatives.remove(name, path)
  112593. Removes installed alternative for defined <name> and <path>
  112594. or fallback to default alternative, if some defined before.
  112595. .INDENT 7.0
  112596. .TP
  112597. .B name
  112598. is the master name for this link group
  112599. (e.g. pager)
  112600. .TP
  112601. .B path
  112602. is the location of one of the alternative target files.
  112603. (e.g. /usr/bin/less)
  112604. .UNINDENT
  112605. .UNINDENT
  112606. .INDENT 0.0
  112607. .TP
  112608. .B salt.states.alternatives.set_(name, path)
  112609. New in version 0.17.0.
  112610. .sp
  112611. Sets alternative for <name> to <path>, if <path> is defined
  112612. as an alternative for <name>.
  112613. .INDENT 7.0
  112614. .TP
  112615. .B name
  112616. is the master name for this link group
  112617. (e.g. pager)
  112618. .TP
  112619. .B path
  112620. is the location of one of the alternative target files.
  112621. (e.g. /usr/bin/less)
  112622. .UNINDENT
  112623. .INDENT 7.0
  112624. .INDENT 3.5
  112625. .sp
  112626. .nf
  112627. .ft C
  112628. foo:
  112629. alternatives.set:
  112630. \- path: /usr/bin/foo\-2.0
  112631. .ft P
  112632. .fi
  112633. .UNINDENT
  112634. .UNINDENT
  112635. .UNINDENT
  112636. .SS salt.states.apache_module
  112637. .sp
  112638. Manage Apache Modules
  112639. .sp
  112640. New in version 2014.7.0.
  112641. .sp
  112642. Enable and disable apache modules.
  112643. .INDENT 0.0
  112644. .INDENT 3.5
  112645. .sp
  112646. .nf
  112647. .ft C
  112648. Enable cgi module:
  112649. apache_module.enabled:
  112650. \- name: cgi
  112651. Disable cgi module:
  112652. apache_module.disabled:
  112653. \- name: cgi
  112654. .ft P
  112655. .fi
  112656. .UNINDENT
  112657. .UNINDENT
  112658. .INDENT 0.0
  112659. .TP
  112660. .B salt.states.apache_module.disabled(name)
  112661. Ensure an Apache module is disabled.
  112662. .sp
  112663. New in version 2016.3.0.
  112664. .INDENT 7.0
  112665. .TP
  112666. .B name
  112667. Name of the Apache module
  112668. .UNINDENT
  112669. .UNINDENT
  112670. .INDENT 0.0
  112671. .TP
  112672. .B salt.states.apache_module.enabled(name)
  112673. Ensure an Apache module is enabled.
  112674. .sp
  112675. New in version 2016.3.0.
  112676. .INDENT 7.0
  112677. .TP
  112678. .B name
  112679. Name of the Apache module
  112680. .UNINDENT
  112681. .UNINDENT
  112682. .SS salt.states.apache_site module
  112683. .sp
  112684. Manage Apache Sites
  112685. .sp
  112686. New in version 2016.3.0.
  112687. .sp
  112688. Enable and disable apache sites.
  112689. .INDENT 0.0
  112690. .INDENT 3.5
  112691. .sp
  112692. .nf
  112693. .ft C
  112694. Enable default site:
  112695. apache_site.enabled:
  112696. \- name: default
  112697. Disable default site:
  112698. apache_site.disabled:
  112699. \- name: default
  112700. .ft P
  112701. .fi
  112702. .UNINDENT
  112703. .UNINDENT
  112704. .INDENT 0.0
  112705. .TP
  112706. .B salt.states.apache_site.disabled(name)
  112707. Ensure an Apache site is disabled.
  112708. .INDENT 7.0
  112709. .TP
  112710. .B name
  112711. Name of the Apache site
  112712. .UNINDENT
  112713. .UNINDENT
  112714. .INDENT 0.0
  112715. .TP
  112716. .B salt.states.apache_site.enabled(name)
  112717. Ensure an Apache site is enabled.
  112718. .INDENT 7.0
  112719. .TP
  112720. .B name
  112721. Name of the Apache site
  112722. .UNINDENT
  112723. .UNINDENT
  112724. .SS salt.states.artifactory
  112725. .sp
  112726. This state downloads artifacts from artifactory.
  112727. .INDENT 0.0
  112728. .TP
  112729. .B salt.states.artifactory.downloaded(name, artifact, target_dir=u\(aq/tmp\(aq, target_file=None, use_literal_group_id=False)
  112730. Ensures that the artifact from artifactory exists at given location. If it doesn\(aqt exist, then
  112731. it will be downloaded. If it already exists then the checksum of existing file is checked against checksum
  112732. in artifactory. If it is different then the step will fail.
  112733. .INDENT 7.0
  112734. .TP
  112735. .B artifact
  112736. Details of the artifact to be downloaded from artifactory. Various options are:
  112737. .INDENT 7.0
  112738. .IP \(bu 2
  112739. artifactory_url: URL of the artifactory instance
  112740. .IP \(bu 2
  112741. repository: Repository in artifactory
  112742. .IP \(bu 2
  112743. artifact_id: Artifact ID
  112744. .IP \(bu 2
  112745. group_id: Group ID
  112746. .IP \(bu 2
  112747. packaging: Packaging
  112748. .IP \(bu 2
  112749. classifier: Classifier
  112750. .. versionadded:: 2015.8.0
  112751. .IP \(bu 2
  112752. .INDENT 2.0
  112753. .TP
  112754. .B version: Version
  112755. One of the following:
  112756. \- Version to download
  112757. \- \fBlatest\fP \- Download the latest release of this artifact
  112758. \- \fBlatest_snapshot\fP \- Download the latest snapshot for this artifact
  112759. .UNINDENT
  112760. .IP \(bu 2
  112761. username: Artifactory username
  112762. .. versionadded:: 2015.8.0
  112763. .IP \(bu 2
  112764. password: Artifactory password
  112765. .. versionadded:: 2015.8.0
  112766. .UNINDENT
  112767. .TP
  112768. .B target_dir
  112769. Directory where the artifact should be downloaded. By default it is downloaded to /tmp directory.
  112770. .TP
  112771. .B target_file
  112772. Target file to download artifact to. By default file name is resolved by artifactory.
  112773. .UNINDENT
  112774. .sp
  112775. An example to download an artifact to a specific file:
  112776. .INDENT 7.0
  112777. .INDENT 3.5
  112778. .sp
  112779. .nf
  112780. .ft C
  112781. jboss_module_downloaded:
  112782. artifactory.downloaded:
  112783. \- artifact:
  112784. artifactory_url: http://artifactory.intranet.example.com/artifactory
  112785. repository: \(aqlibs\-release\-local\(aq
  112786. artifact_id: \(aqmodule\(aq
  112787. group_id: \(aqcom.company.module\(aq
  112788. packaging: \(aqjar\(aq
  112789. classifier: \(aqsources\(aq
  112790. version: \(aq1.0\(aq
  112791. \- target_file: /opt/jboss7/modules/com/company/lib/module.jar
  112792. .ft P
  112793. .fi
  112794. .UNINDENT
  112795. .UNINDENT
  112796. .sp
  112797. Download artifact to the folder (automatically resolves file name):
  112798. .INDENT 7.0
  112799. .INDENT 3.5
  112800. .sp
  112801. .nf
  112802. .ft C
  112803. jboss_module_downloaded:
  112804. artifactory.downloaded:
  112805. \- artifact:
  112806. artifactory_url: http://artifactory.intranet.example.com/artifactory
  112807. repository: \(aqlibs\-release\-local\(aq
  112808. artifact_id: \(aqmodule\(aq
  112809. group_id: \(aqcom.company.module\(aq
  112810. packaging: \(aqjar\(aq
  112811. classifier: \(aqsources\(aq
  112812. version: \(aq1.0\(aq
  112813. \- target_dir: /opt/jboss7/modules/com/company/lib
  112814. .ft P
  112815. .fi
  112816. .UNINDENT
  112817. .UNINDENT
  112818. .UNINDENT
  112819. .SS salt.states.at
  112820. .SS Configuration disposable regularly scheduled tasks for at.
  112821. .sp
  112822. The at state can be add disposable regularly scheduled tasks for your system.
  112823. .INDENT 0.0
  112824. .TP
  112825. .B salt.states.at.absent(name, jobid=None, **kwargs)
  112826. Changed in version 2017.7.0.
  112827. .sp
  112828. Remove a job from queue
  112829. .INDENT 7.0
  112830. .TP
  112831. .B jobid: string|int
  112832. Specific jobid to remove
  112833. .TP
  112834. .B tag
  112835. string
  112836. Job\(aqs tag
  112837. .TP
  112838. .B runas
  112839. string
  112840. Runs user\-specified jobs
  112841. .TP
  112842. .B kwargs
  112843. Addition kwargs can be provided to filter jobs.
  112844. See output of \fIat.jobcheck\fP for more.
  112845. .UNINDENT
  112846. .INDENT 7.0
  112847. .INDENT 3.5
  112848. .sp
  112849. .nf
  112850. .ft C
  112851. example1:
  112852. at.absent:
  112853. .ft P
  112854. .fi
  112855. .UNINDENT
  112856. .UNINDENT
  112857. .sp
  112858. \fBWARNING:\fP
  112859. .INDENT 7.0
  112860. .INDENT 3.5
  112861. this will remove all jobs!
  112862. .UNINDENT
  112863. .UNINDENT
  112864. .INDENT 7.0
  112865. .INDENT 3.5
  112866. .sp
  112867. .nf
  112868. .ft C
  112869. example2:
  112870. at.absent:
  112871. \- year: 13
  112872. .ft P
  112873. .fi
  112874. .UNINDENT
  112875. .UNINDENT
  112876. .INDENT 7.0
  112877. .INDENT 3.5
  112878. .sp
  112879. .nf
  112880. .ft C
  112881. example3:
  112882. at.absent:
  112883. \- tag: rose
  112884. .ft P
  112885. .fi
  112886. .UNINDENT
  112887. .UNINDENT
  112888. .INDENT 7.0
  112889. .INDENT 3.5
  112890. .sp
  112891. .nf
  112892. .ft C
  112893. example4:
  112894. at.absent:
  112895. \- tag: rose
  112896. \- day: 13
  112897. \- hour: 16
  112898. .ft P
  112899. .fi
  112900. .UNINDENT
  112901. .UNINDENT
  112902. .INDENT 7.0
  112903. .INDENT 3.5
  112904. .sp
  112905. .nf
  112906. .ft C
  112907. example5:
  112908. at.absent:
  112909. \- jobid: 4
  112910. .ft P
  112911. .fi
  112912. .UNINDENT
  112913. .UNINDENT
  112914. .UNINDENT
  112915. .INDENT 0.0
  112916. .TP
  112917. .B salt.states.at.mod_watch(name, **kwargs)
  112918. The at watcher, called to invoke the watch command.
  112919. .sp
  112920. \fBNOTE:\fP
  112921. .INDENT 7.0
  112922. .INDENT 3.5
  112923. This state exists to support special handling of the \fBwatch\fP
  112924. requisite\&. It should not be called directly.
  112925. .sp
  112926. Parameters for this function should be set by the state being triggered.
  112927. .UNINDENT
  112928. .UNINDENT
  112929. .INDENT 7.0
  112930. .TP
  112931. .B name
  112932. The name of the atjob
  112933. .UNINDENT
  112934. .UNINDENT
  112935. .INDENT 0.0
  112936. .TP
  112937. .B salt.states.at.present(name, timespec, tag=None, user=None, job=None, unique_tag=False)
  112938. Changed in version 2017.7.0.
  112939. .sp
  112940. Add a job to queue.
  112941. .INDENT 7.0
  112942. .TP
  112943. .B job
  112944. string
  112945. Command to run.
  112946. .TP
  112947. .B timespec
  112948. string
  112949. The \(aqtimespec\(aq follows the format documented in the at(1) manpage.
  112950. .TP
  112951. .B tag
  112952. string
  112953. Make a tag for the job.
  112954. .TP
  112955. .B user
  112956. string
  112957. The user to run the at job
  112958. .. versionadded:: 2014.1.4
  112959. .TP
  112960. .B unique_tag
  112961. boolean
  112962. If set to True job will not be added if a job with the tag exists.
  112963. .. versionadded:: 2017.7.0
  112964. .UNINDENT
  112965. .INDENT 7.0
  112966. .INDENT 3.5
  112967. .sp
  112968. .nf
  112969. .ft C
  112970. rose:
  112971. at.present:
  112972. \- job: \(aqecho "I love saltstack" > love\(aq
  112973. \- timespec: \(aq9:09 11/09/13\(aq
  112974. \- tag: love
  112975. \- user: jam
  112976. .ft P
  112977. .fi
  112978. .UNINDENT
  112979. .UNINDENT
  112980. .UNINDENT
  112981. .INDENT 0.0
  112982. .TP
  112983. .B salt.states.at.watch(name, timespec, tag=None, user=None, job=None, unique_tag=False)
  112984. New in version 2017.7.0.
  112985. .sp
  112986. Add an at job if trigger by watch
  112987. .INDENT 7.0
  112988. .TP
  112989. .B job
  112990. string
  112991. Command to run.
  112992. .TP
  112993. .B timespec
  112994. string
  112995. The \(aqtimespec\(aq follows the format documented in the at(1) manpage.
  112996. .TP
  112997. .B tag
  112998. string
  112999. Make a tag for the job.
  113000. .TP
  113001. .B user
  113002. string
  113003. The user to run the at job
  113004. .. versionadded:: 2014.1.4
  113005. .TP
  113006. .B unique_tag
  113007. boolean
  113008. If set to True job will not be added if a job with the tag exists.
  113009. .. versionadded:: 2017.7.0
  113010. .UNINDENT
  113011. .INDENT 7.0
  113012. .INDENT 3.5
  113013. .sp
  113014. .nf
  113015. .ft C
  113016. minion_restart:
  113017. at.watch:
  113018. \- job: \(aqsalt\-call \-\-local service.restart salt\-minion\(aq
  113019. \- timespec: \(aqnow +1 min\(aq
  113020. \- tag: minion_restart
  113021. \- unique_tag: trye
  113022. \- watch:
  113023. \- file: /etc/salt/minion
  113024. .ft P
  113025. .fi
  113026. .UNINDENT
  113027. .UNINDENT
  113028. .UNINDENT
  113029. .SS salt.states.aws_sqs
  113030. .sp
  113031. Manage SQS Queues
  113032. .sp
  113033. Create and destroy SQS queues. Be aware that this interacts with Amazon\(aqs
  113034. services, and so may incur charges.
  113035. .sp
  113036. This module uses the awscli tool provided by Amazon. This can be downloaded
  113037. from pip. Also check the documentation for awscli for configuration
  113038. information.
  113039. .INDENT 0.0
  113040. .INDENT 3.5
  113041. .sp
  113042. .nf
  113043. .ft C
  113044. myqueue:
  113045. aws_sqs.exists:
  113046. \- region: eu\-west\-1
  113047. .ft P
  113048. .fi
  113049. .UNINDENT
  113050. .UNINDENT
  113051. .INDENT 0.0
  113052. .TP
  113053. .B salt.states.aws_sqs.absent(name, region, user=None, opts=False)
  113054. Remove the named SQS queue if it exists.
  113055. .INDENT 7.0
  113056. .TP
  113057. .B name
  113058. Name of the SQS queue.
  113059. .TP
  113060. .B region
  113061. Region to remove the queue from
  113062. .TP
  113063. .B user
  113064. Name of the user performing the SQS operations
  113065. .TP
  113066. .B opts
  113067. Include additional arguments and options to the aws command line
  113068. .UNINDENT
  113069. .UNINDENT
  113070. .INDENT 0.0
  113071. .TP
  113072. .B salt.states.aws_sqs.exists(name, region, user=None, opts=False)
  113073. Ensure the SQS queue exists.
  113074. .INDENT 7.0
  113075. .TP
  113076. .B name
  113077. Name of the SQS queue.
  113078. .TP
  113079. .B region
  113080. Region to create the queue
  113081. .TP
  113082. .B user
  113083. Name of the user performing the SQS operations
  113084. .TP
  113085. .B opts
  113086. Include additional arguments and options to the aws command line
  113087. .UNINDENT
  113088. .UNINDENT
  113089. .SS salt.states.azurearm_compute
  113090. .sp
  113091. Azure (ARM) Compute State Module
  113092. .sp
  113093. New in version 2019.2.0.
  113094. .INDENT 0.0
  113095. .TP
  113096. .B maintainer
  113097. <\fI\%devops@decisionlab.io\fP>
  113098. .TP
  113099. .B maturity
  113100. new
  113101. .TP
  113102. .B depends
  113103. .INDENT 7.0
  113104. .IP \(bu 2
  113105. \fI\%azure\fP >= 2.0.0
  113106. .IP \(bu 2
  113107. \fI\%azure\-common\fP >= 1.1.8
  113108. .IP \(bu 2
  113109. \fI\%azure\-mgmt\fP >= 1.0.0
  113110. .IP \(bu 2
  113111. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113112. .IP \(bu 2
  113113. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113114. .IP \(bu 2
  113115. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113116. .IP \(bu 2
  113117. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113118. .IP \(bu 2
  113119. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113120. .IP \(bu 2
  113121. \fI\%azure\-storage\fP >= 0.34.3
  113122. .IP \(bu 2
  113123. \fI\%msrestazure\fP >= 0.4.21
  113124. .UNINDENT
  113125. .TP
  113126. .B platform
  113127. linux
  113128. .TP
  113129. .B configuration
  113130. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113131. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113132. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113133. .sp
  113134. Required provider parameters:
  113135. .INDENT 7.0
  113136. .TP
  113137. .B if using username and password:
  113138. .INDENT 7.0
  113139. .IP \(bu 2
  113140. \fBsubscription_id\fP
  113141. .IP \(bu 2
  113142. \fBusername\fP
  113143. .IP \(bu 2
  113144. \fBpassword\fP
  113145. .UNINDENT
  113146. .TP
  113147. .B if using a service principal:
  113148. .INDENT 7.0
  113149. .IP \(bu 2
  113150. \fBsubscription_id\fP
  113151. .IP \(bu 2
  113152. \fBtenant\fP
  113153. .IP \(bu 2
  113154. \fBclient_id\fP
  113155. .IP \(bu 2
  113156. \fBsecret\fP
  113157. .UNINDENT
  113158. .UNINDENT
  113159. .sp
  113160. Optional provider parameters:
  113161. .INDENT 7.0
  113162. .TP
  113163. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113164. .INDENT 7.0
  113165. .IP \(bu 2
  113166. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113167. .IP \(bu 2
  113168. \fBAZURE_CHINA_CLOUD\fP
  113169. .IP \(bu 2
  113170. \fBAZURE_US_GOV_CLOUD\fP
  113171. .IP \(bu 2
  113172. \fBAZURE_GERMAN_CLOUD\fP
  113173. .UNINDENT
  113174. .UNINDENT
  113175. .sp
  113176. Example Pillar for Azure Resource Manager authentication:
  113177. .INDENT 7.0
  113178. .INDENT 3.5
  113179. .sp
  113180. .nf
  113181. .ft C
  113182. azurearm:
  113183. user_pass_auth:
  113184. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113185. username: fletch
  113186. password: 123pass
  113187. mysubscription:
  113188. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113189. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113190. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113191. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113192. cloud_environment: AZURE_PUBLIC_CLOUD
  113193. .ft P
  113194. .fi
  113195. .UNINDENT
  113196. .UNINDENT
  113197. .sp
  113198. Example states using Azure Resource Manager authentication:
  113199. .INDENT 7.0
  113200. .INDENT 3.5
  113201. .sp
  113202. .nf
  113203. .ft C
  113204. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113205. Ensure availability set exists:
  113206. azurearm_compute.availability_set_present:
  113207. \- name: my_avail_set
  113208. \- resource_group: my_rg
  113209. \- virtual_machines:
  113210. \- my_vm1
  113211. \- my_vm2
  113212. \- tags:
  113213. how_awesome: very
  113214. contact_name: Elmer Fudd Gantry
  113215. \- connection_auth: {{ profile }}
  113216. Ensure availability set is absent:
  113217. azurearm_compute.availability_set_absent:
  113218. \- name: other_avail_set
  113219. \- resource_group: my_rg
  113220. \- connection_auth: {{ profile }}
  113221. .ft P
  113222. .fi
  113223. .UNINDENT
  113224. .UNINDENT
  113225. .UNINDENT
  113226. .INDENT 0.0
  113227. .TP
  113228. .B salt.states.azurearm_compute.availability_set_absent(name, resource_group, connection_auth=None)
  113229. New in version 2019.2.0.
  113230. .sp
  113231. Ensure an availability set does not exist in a resource group.
  113232. .INDENT 7.0
  113233. .TP
  113234. .B Parameters
  113235. .INDENT 7.0
  113236. .IP \(bu 2
  113237. \fBname\fP \-\- Name of the availability set.
  113238. .IP \(bu 2
  113239. \fBresource_group\fP \-\- Name of the resource group containing the availability set.
  113240. .IP \(bu 2
  113241. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113242. Azure Resource Manager API.
  113243. .UNINDENT
  113244. .UNINDENT
  113245. .UNINDENT
  113246. .INDENT 0.0
  113247. .TP
  113248. .B salt.states.azurearm_compute.availability_set_present(name, resource_group, tags=None, platform_update_domain_count=None, platform_fault_domain_count=None, virtual_machines=None, sku=None, connection_auth=None, **kwargs)
  113249. New in version 2019.2.0.
  113250. .sp
  113251. Ensure an availability set exists.
  113252. .INDENT 7.0
  113253. .TP
  113254. .B Parameters
  113255. .INDENT 7.0
  113256. .IP \(bu 2
  113257. \fBname\fP \-\- Name of the availability set.
  113258. .IP \(bu 2
  113259. \fBresource_group\fP \-\- The resource group assigned to the availability set.
  113260. .IP \(bu 2
  113261. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the availability set object.
  113262. .IP \(bu 2
  113263. \fBplatform_update_domain_count\fP \-\- An optional parameter which indicates groups of virtual machines and underlying physical hardware that can be
  113264. rebooted at the same time.
  113265. .IP \(bu 2
  113266. \fBplatform_fault_domain_count\fP \-\- An optional parameter which defines the group of virtual machines that share a common power source and network
  113267. switch.
  113268. .IP \(bu 2
  113269. \fBvirtual_machines\fP \-\- A list of names of existing virtual machines to be included in the availability set.
  113270. .IP \(bu 2
  113271. \fBsku\fP \-\- The availability set SKU, which specifies whether the availability set is managed or not. Possible values are
  113272. \(aqAligned\(aq or \(aqClassic\(aq. An \(aqAligned\(aq availability set is managed, \(aqClassic\(aq is not.
  113273. .IP \(bu 2
  113274. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113275. Azure Resource Manager API.
  113276. .UNINDENT
  113277. .UNINDENT
  113278. .sp
  113279. Example usage:
  113280. .INDENT 7.0
  113281. .INDENT 3.5
  113282. .sp
  113283. .nf
  113284. .ft C
  113285. Ensure availability set exists:
  113286. azurearm_compute.availability_set_present:
  113287. \- name: aset1
  113288. \- resource_group: group1
  113289. \- platform_update_domain_count: 5
  113290. \- platform_fault_domain_count: 3
  113291. \- sku: aligned
  113292. \- tags:
  113293. contact_name: Elmer Fudd Gantry
  113294. \- connection_auth: {{ profile }}
  113295. \- require:
  113296. \- azurearm_resource: Ensure resource group exists
  113297. .ft P
  113298. .fi
  113299. .UNINDENT
  113300. .UNINDENT
  113301. .UNINDENT
  113302. .SS salt.states.azurearm_dns module
  113303. .sp
  113304. Azure (ARM) DNS State Module
  113305. .sp
  113306. New in version 3000.
  113307. .INDENT 0.0
  113308. .TP
  113309. .B maintainer
  113310. <\fI\%devops@eitr.tech\fP>
  113311. .TP
  113312. .B maturity
  113313. new
  113314. .TP
  113315. .B depends
  113316. .INDENT 7.0
  113317. .IP \(bu 2
  113318. \fI\%azure\fP >= 2.0.0
  113319. .IP \(bu 2
  113320. \fI\%azure\-common\fP >= 1.1.8
  113321. .IP \(bu 2
  113322. \fI\%azure\-mgmt\fP >= 1.0.0
  113323. .IP \(bu 2
  113324. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113325. .IP \(bu 2
  113326. \fI\%azure\-mgmt\-dns\fP >= 1.0.1
  113327. .IP \(bu 2
  113328. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113329. .IP \(bu 2
  113330. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113331. .IP \(bu 2
  113332. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113333. .IP \(bu 2
  113334. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113335. .IP \(bu 2
  113336. \fI\%azure\-storage\fP >= 0.34.3
  113337. .IP \(bu 2
  113338. \fI\%msrestazure\fP >= 0.4.21
  113339. .UNINDENT
  113340. .TP
  113341. .B platform
  113342. linux
  113343. .TP
  113344. .B configuration
  113345. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113346. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113347. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113348. .UNINDENT
  113349. .sp
  113350. Required provider parameters:
  113351. .INDENT 0.0
  113352. .INDENT 3.5
  113353. if using username and password:
  113354. .INDENT 0.0
  113355. .INDENT 3.5
  113356. .INDENT 0.0
  113357. .IP \(bu 2
  113358. \fBsubscription_id\fP
  113359. .IP \(bu 2
  113360. \fBusername\fP
  113361. .IP \(bu 2
  113362. \fBpassword\fP
  113363. .UNINDENT
  113364. .UNINDENT
  113365. .UNINDENT
  113366. .sp
  113367. if using a service principal:
  113368. .INDENT 0.0
  113369. .INDENT 3.5
  113370. .INDENT 0.0
  113371. .IP \(bu 2
  113372. \fBsubscription_id\fP
  113373. .IP \(bu 2
  113374. \fBtenant\fP
  113375. .IP \(bu 2
  113376. \fBclient_id\fP
  113377. .IP \(bu 2
  113378. \fBsecret\fP
  113379. .UNINDENT
  113380. .UNINDENT
  113381. .UNINDENT
  113382. .UNINDENT
  113383. .UNINDENT
  113384. .sp
  113385. Optional provider parameters:
  113386. .INDENT 0.0
  113387. .INDENT 3.5
  113388. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113389. .sp
  113390. Possible values:
  113391. .INDENT 0.0
  113392. .INDENT 3.5
  113393. .INDENT 0.0
  113394. .IP \(bu 2
  113395. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113396. .IP \(bu 2
  113397. \fBAZURE_CHINA_CLOUD\fP
  113398. .IP \(bu 2
  113399. \fBAZURE_US_GOV_CLOUD\fP
  113400. .IP \(bu 2
  113401. \fBAZURE_GERMAN_CLOUD\fP
  113402. .UNINDENT
  113403. .UNINDENT
  113404. .UNINDENT
  113405. .sp
  113406. Example Pillar for Azure Resource Manager authentication:
  113407. .INDENT 0.0
  113408. .INDENT 3.5
  113409. .sp
  113410. .nf
  113411. .ft C
  113412. azurearm:
  113413. user_pass_auth:
  113414. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113415. username: fletch
  113416. password: 123pass
  113417. mysubscription:
  113418. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113419. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113420. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113421. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113422. cloud_environment: AZURE_PUBLIC_CLOUD
  113423. .ft P
  113424. .fi
  113425. .UNINDENT
  113426. .UNINDENT
  113427. .sp
  113428. Example states using Azure Resource Manager authentication:
  113429. .INDENT 0.0
  113430. .INDENT 3.5
  113431. .sp
  113432. .nf
  113433. .ft C
  113434. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113435. Ensure DNS zone exists:
  113436. azurearm_dns.zone_present:
  113437. \- name: contoso.com
  113438. \- resource_group: my_rg
  113439. \- tags:
  113440. how_awesome: very
  113441. contact_name: Elmer Fudd Gantry
  113442. \- connection_auth: {{ profile }}
  113443. Ensure DNS record set exists:
  113444. azurearm_dns.record_set_present:
  113445. \- name: web
  113446. \- zone_name: contoso.com
  113447. \- resource_group: my_rg
  113448. \- record_type: A
  113449. \- ttl: 300
  113450. \- arecords:
  113451. \- ipv4_address: 10.0.0.1
  113452. \- tags:
  113453. how_awesome: very
  113454. contact_name: Elmer Fudd Gantry
  113455. \- connection_auth: {{ profile }}
  113456. Ensure DNS record set is absent:
  113457. azurearm_dns.record_set_absent:
  113458. \- name: web
  113459. \- zone_name: contoso.com
  113460. \- resource_group: my_rg
  113461. \- record_type: A
  113462. \- connection_auth: {{ profile }}
  113463. Ensure DNS zone is absent:
  113464. azurearm_dns.zone_absent:
  113465. \- name: contoso.com
  113466. \- resource_group: my_rg
  113467. \- connection_auth: {{ profile }}
  113468. .ft P
  113469. .fi
  113470. .UNINDENT
  113471. .UNINDENT
  113472. .UNINDENT
  113473. .UNINDENT
  113474. .INDENT 0.0
  113475. .TP
  113476. .B salt.states.azurearm_dns.record_set_absent(name, zone_name, resource_group, connection_auth=None)
  113477. New in version 3000.
  113478. .sp
  113479. Ensure a record set does not exist in the DNS zone.
  113480. .INDENT 7.0
  113481. .TP
  113482. .B Parameters
  113483. .INDENT 7.0
  113484. .IP \(bu 2
  113485. \fBname\fP \-\- Name of the record set.
  113486. .IP \(bu 2
  113487. \fBzone_name\fP \-\- Name of the DNS zone.
  113488. .IP \(bu 2
  113489. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113490. .IP \(bu 2
  113491. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113492. Azure Resource Manager API.
  113493. .UNINDENT
  113494. .UNINDENT
  113495. .UNINDENT
  113496. .INDENT 0.0
  113497. .TP
  113498. .B salt.states.azurearm_dns.record_set_present(name, zone_name, resource_group, record_type, if_match=None, if_none_match=None, etag=None, metadata=None, ttl=None, arecords=None, aaaa_records=None, mx_records=None, ns_records=None, ptr_records=None, srv_records=None, txt_records=None, cname_record=None, soa_record=None, caa_records=None, connection_auth=None, **kwargs)
  113499. New in version 3000.
  113500. .sp
  113501. Ensure a record set exists in a DNS zone.
  113502. .INDENT 7.0
  113503. .TP
  113504. .B Parameters
  113505. .INDENT 7.0
  113506. .IP \(bu 2
  113507. \fBname\fP \-\- The name of the record set, relative to the name of the zone.
  113508. .IP \(bu 2
  113509. \fBzone_name\fP \-\- Name of the DNS zone (without a terminating dot).
  113510. .IP \(bu 2
  113511. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113512. .IP \(bu 2
  113513. \fBrecord_type\fP \-\- The type of DNS record in this record set. Record sets of type SOA can be updated but not created
  113514. (they are created when the DNS zone is created). Possible values include: \(aqA\(aq, \(aqAAAA\(aq, \(aqCAA\(aq, \(aqCNAME\(aq,
  113515. \(aqMX\(aq, \(aqNS\(aq, \(aqPTR\(aq, \(aqSOA\(aq, \(aqSRV\(aq, \(aqTXT\(aq
  113516. .IP \(bu 2
  113517. \fBif_match\fP \-\- The etag of the record set. Omit this value to always overwrite the current record set. Specify the last\-seen
  113518. etag value to prevent accidentally overwritting any concurrent changes.
  113519. .IP \(bu 2
  113520. \fBif_none_match\fP \-\- Set to \(aq*\(aq to allow a new record set to be created, but to prevent updating an existing record set. Other values
  113521. will be ignored.
  113522. .IP \(bu 2
  113523. \fBetag\fP \-\- The etag of the record set. \fI\%Etags\fP are
  113524. used to handle concurrent changes to the same resource safely.
  113525. .IP \(bu 2
  113526. \fBmetadata\fP \-\- A dictionary of strings can be passed as tag metadata to the record set object.
  113527. .IP \(bu 2
  113528. \fBttl\fP \-\- The TTL (time\-to\-live) of the records in the record set. Required when specifying record information.
  113529. .IP \(bu 2
  113530. \fBarecords\fP \-\- The list of A records in the record set. View the
  113531. \fI\%Azure SDK documentation\fP
  113532. to create a list of dictionaries representing the record objects.
  113533. .IP \(bu 2
  113534. \fBaaaa_records\fP \-\- The list of AAAA records in the record set. View the
  113535. \fI\%Azure SDK documentation\fP
  113536. to create a list of dictionaries representing the record objects.
  113537. .IP \(bu 2
  113538. \fBmx_records\fP \-\- The list of MX records in the record set. View the
  113539. \fI\%Azure SDK documentation\fP
  113540. to create a list of dictionaries representing the record objects.
  113541. .IP \(bu 2
  113542. \fBns_records\fP \-\- The list of NS records in the record set. View the
  113543. \fI\%Azure SDK documentation\fP
  113544. to create a list of dictionaries representing the record objects.
  113545. .IP \(bu 2
  113546. \fBptr_records\fP \-\- The list of PTR records in the record set. View the
  113547. \fI\%Azure SDK documentation\fP
  113548. to create a list of dictionaries representing the record objects.
  113549. .IP \(bu 2
  113550. \fBsrv_records\fP \-\- The list of SRV records in the record set. View the
  113551. \fI\%Azure SDK documentation\fP
  113552. to create a list of dictionaries representing the record objects.
  113553. .IP \(bu 2
  113554. \fBtxt_records\fP \-\- The list of TXT records in the record set. View the
  113555. \fI\%Azure SDK documentation\fP
  113556. to create a list of dictionaries representing the record objects.
  113557. .IP \(bu 2
  113558. \fBcname_record\fP \-\- The CNAME record in the record set. View the
  113559. \fI\%Azure SDK documentation\fP
  113560. to create a dictionary representing the record object.
  113561. .IP \(bu 2
  113562. \fBsoa_record\fP \-\- The SOA record in the record set. View the
  113563. \fI\%Azure SDK documentation\fP
  113564. to create a dictionary representing the record object.
  113565. .IP \(bu 2
  113566. \fBcaa_records\fP \-\- The list of CAA records in the record set. View the
  113567. \fI\%Azure SDK documentation\fP
  113568. to create a list of dictionaries representing the record objects.
  113569. .IP \(bu 2
  113570. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113571. Azure Resource Manager API.
  113572. .UNINDENT
  113573. .UNINDENT
  113574. .sp
  113575. Example usage:
  113576. .INDENT 7.0
  113577. .INDENT 3.5
  113578. .sp
  113579. .nf
  113580. .ft C
  113581. Ensure record set exists:
  113582. azurearm_dns.record_set_present:
  113583. \- name: web
  113584. \- zone_name: contoso.com
  113585. \- resource_group: my_rg
  113586. \- record_type: A
  113587. \- ttl: 300
  113588. \- arecords:
  113589. \- ipv4_address: 10.0.0.1
  113590. \- metadata:
  113591. how_awesome: very
  113592. contact_name: Elmer Fudd Gantry
  113593. \- connection_auth: {{ profile }}
  113594. .ft P
  113595. .fi
  113596. .UNINDENT
  113597. .UNINDENT
  113598. .UNINDENT
  113599. .INDENT 0.0
  113600. .TP
  113601. .B salt.states.azurearm_dns.zone_absent(name, resource_group, connection_auth=None)
  113602. New in version 3000.
  113603. .sp
  113604. Ensure a DNS zone does not exist in the resource group.
  113605. .INDENT 7.0
  113606. .TP
  113607. .B Parameters
  113608. .INDENT 7.0
  113609. .IP \(bu 2
  113610. \fBname\fP \-\- Name of the DNS zone.
  113611. .IP \(bu 2
  113612. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113613. .IP \(bu 2
  113614. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113615. Azure Resource Manager API.
  113616. .UNINDENT
  113617. .UNINDENT
  113618. .UNINDENT
  113619. .INDENT 0.0
  113620. .TP
  113621. .B salt.states.azurearm_dns.zone_present(name, resource_group, etag=None, if_match=None, if_none_match=None, registration_virtual_networks=None, resolution_virtual_networks=None, tags=None, zone_type=\(aqPublic\(aq, connection_auth=None, **kwargs)
  113622. New in version 3000.
  113623. .sp
  113624. Ensure a DNS zone exists.
  113625. .INDENT 7.0
  113626. .TP
  113627. .B Parameters
  113628. .INDENT 7.0
  113629. .IP \(bu 2
  113630. \fBname\fP \-\- Name of the DNS zone (without a terminating dot).
  113631. .IP \(bu 2
  113632. \fBresource_group\fP \-\- The resource group assigned to the DNS zone.
  113633. .IP \(bu 2
  113634. \fBetag\fP \-\- The etag of the zone. \fI\%Etags\fP are used
  113635. to handle concurrent changes to the same resource safely.
  113636. .IP \(bu 2
  113637. \fBif_match\fP \-\- The etag of the DNS zone. Omit this value to always overwrite the current zone. Specify the last\-seen etag
  113638. value to prevent accidentally overwritting any concurrent changes.
  113639. .IP \(bu 2
  113640. \fBif_none_match\fP \-\- Set to \(aq*\(aq to allow a new DNS zone to be created, but to prevent updating an existing zone. Other values will
  113641. be ignored.
  113642. .IP \(bu 2
  113643. \fBregistration_virtual_networks\fP \-\-
  113644. .sp
  113645. A list of references to virtual networks that register hostnames in this DNS zone. This is only when zone_type
  113646. is Private. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113647. .IP \(bu 2
  113648. \fBresolution_virtual_networks\fP \-\-
  113649. .sp
  113650. A list of references to virtual networks that resolve records in this DNS zone. This is only when zone_type is
  113651. Private. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113652. .IP \(bu 2
  113653. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the DNS zone object.
  113654. .IP \(bu 2
  113655. \fBzone_type\fP \-\- .INDENT 2.0
  113656. .TP
  113657. .B The type of this DNS zone (Public or Private). Possible values include: \(aqPublic\(aq, \(aqPrivate\(aq. Default value: \(aqPublic\(aq
  113658. (requires \fI\%azure\-mgmt\-dns\fP >= 2.0.0rc1)
  113659. .UNINDENT
  113660. .IP \(bu 2
  113661. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113662. Azure Resource Manager API.
  113663. .UNINDENT
  113664. .UNINDENT
  113665. .sp
  113666. Example usage:
  113667. .INDENT 7.0
  113668. .INDENT 3.5
  113669. .sp
  113670. .nf
  113671. .ft C
  113672. Ensure DNS zone exists:
  113673. azurearm_dns.zone_present:
  113674. \- name: contoso.com
  113675. \- resource_group: my_rg
  113676. \- zone_type: Private
  113677. \- registration_virtual_networks:
  113678. \- /subscriptions/{{ sub }}/resourceGroups/my_rg/providers/Microsoft.Network/virtualNetworks/test_vnet
  113679. \- tags:
  113680. how_awesome: very
  113681. contact_name: Elmer Fudd Gantry
  113682. \- connection_auth: {{ profile }}
  113683. .ft P
  113684. .fi
  113685. .UNINDENT
  113686. .UNINDENT
  113687. .UNINDENT
  113688. .SS salt.states.azurearm_network
  113689. .sp
  113690. Azure (ARM) Network State Module
  113691. .sp
  113692. New in version 2019.2.0.
  113693. .INDENT 0.0
  113694. .TP
  113695. .B maintainer
  113696. <\fI\%devops@decisionlab.io\fP>
  113697. .TP
  113698. .B maturity
  113699. new
  113700. .TP
  113701. .B depends
  113702. .INDENT 7.0
  113703. .IP \(bu 2
  113704. \fI\%azure\fP >= 2.0.0
  113705. .IP \(bu 2
  113706. \fI\%azure\-common\fP >= 1.1.8
  113707. .IP \(bu 2
  113708. \fI\%azure\-mgmt\fP >= 1.0.0
  113709. .IP \(bu 2
  113710. \fI\%azure\-mgmt\-compute\fP >= 1.0.0
  113711. .IP \(bu 2
  113712. \fI\%azure\-mgmt\-network\fP >= 1.7.1
  113713. .IP \(bu 2
  113714. \fI\%azure\-mgmt\-resource\fP >= 1.1.0
  113715. .IP \(bu 2
  113716. \fI\%azure\-mgmt\-storage\fP >= 1.0.0
  113717. .IP \(bu 2
  113718. \fI\%azure\-mgmt\-web\fP >= 0.32.0
  113719. .IP \(bu 2
  113720. \fI\%azure\-storage\fP >= 0.34.3
  113721. .IP \(bu 2
  113722. \fI\%msrestazure\fP >= 0.4.21
  113723. .UNINDENT
  113724. .TP
  113725. .B platform
  113726. linux
  113727. .TP
  113728. .B configuration
  113729. This module requires Azure Resource Manager credentials to be passed as a dictionary of
  113730. keyword arguments to the \fBconnection_auth\fP parameter in order to work properly. Since the authentication
  113731. parameters are sensitive, it\(aqs recommended to pass them to the states via pillar.
  113732. .sp
  113733. Required provider parameters:
  113734. .INDENT 7.0
  113735. .TP
  113736. .B if using username and password:
  113737. .INDENT 7.0
  113738. .IP \(bu 2
  113739. \fBsubscription_id\fP
  113740. .IP \(bu 2
  113741. \fBusername\fP
  113742. .IP \(bu 2
  113743. \fBpassword\fP
  113744. .UNINDENT
  113745. .TP
  113746. .B if using a service principal:
  113747. .INDENT 7.0
  113748. .IP \(bu 2
  113749. \fBsubscription_id\fP
  113750. .IP \(bu 2
  113751. \fBtenant\fP
  113752. .IP \(bu 2
  113753. \fBclient_id\fP
  113754. .IP \(bu 2
  113755. \fBsecret\fP
  113756. .UNINDENT
  113757. .UNINDENT
  113758. .sp
  113759. Optional provider parameters:
  113760. .INDENT 7.0
  113761. .TP
  113762. \fBcloud_environment\fP: Used to point the cloud driver to different API endpoints, such as Azure GovCloud. Possible values:
  113763. .INDENT 7.0
  113764. .IP \(bu 2
  113765. \fBAZURE_PUBLIC_CLOUD\fP (default)
  113766. .IP \(bu 2
  113767. \fBAZURE_CHINA_CLOUD\fP
  113768. .IP \(bu 2
  113769. \fBAZURE_US_GOV_CLOUD\fP
  113770. .IP \(bu 2
  113771. \fBAZURE_GERMAN_CLOUD\fP
  113772. .UNINDENT
  113773. .UNINDENT
  113774. .sp
  113775. Example Pillar for Azure Resource Manager authentication:
  113776. .INDENT 7.0
  113777. .INDENT 3.5
  113778. .sp
  113779. .nf
  113780. .ft C
  113781. azurearm:
  113782. user_pass_auth:
  113783. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113784. username: fletch
  113785. password: 123pass
  113786. mysubscription:
  113787. subscription_id: 3287abc8\-f98a\-c678\-3bde\-326766fd3617
  113788. tenant: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113789. client_id: ABCDEFAB\-1234\-ABCD\-1234\-ABCDEFABCDEF
  113790. secret: XXXXXXXXXXXXXXXXXXXXXXXX
  113791. cloud_environment: AZURE_PUBLIC_CLOUD
  113792. .ft P
  113793. .fi
  113794. .UNINDENT
  113795. .UNINDENT
  113796. .sp
  113797. Example states using Azure Resource Manager authentication:
  113798. .INDENT 7.0
  113799. .INDENT 3.5
  113800. .sp
  113801. .nf
  113802. .ft C
  113803. {% set profile = salt[\(aqpillar.get\(aq](\(aqazurearm:mysubscription\(aq) %}
  113804. Ensure virtual network exists:
  113805. azurearm_network.virtual_network_present:
  113806. \- name: my_vnet
  113807. \- resource_group: my_rg
  113808. \- address_prefixes:
  113809. \- \(aq10.0.0.0/8\(aq
  113810. \- \(aq192.168.0.0/16\(aq
  113811. \- dns_servers:
  113812. \- \(aq8.8.8.8\(aq
  113813. \- tags:
  113814. how_awesome: very
  113815. contact_name: Elmer Fudd Gantry
  113816. \- connection_auth: {{ profile }}
  113817. Ensure virtual network is absent:
  113818. azurearm_network.virtual_network_absent:
  113819. \- name: other_vnet
  113820. \- resource_group: my_rg
  113821. \- connection_auth: {{ profile }}
  113822. .ft P
  113823. .fi
  113824. .UNINDENT
  113825. .UNINDENT
  113826. .UNINDENT
  113827. .INDENT 0.0
  113828. .TP
  113829. .B salt.states.azurearm_network.load_balancer_absent(name, resource_group, connection_auth=None)
  113830. New in version 2019.2.0.
  113831. .sp
  113832. Ensure a load balancer does not exist in the resource group.
  113833. .INDENT 7.0
  113834. .TP
  113835. .B Parameters
  113836. .INDENT 7.0
  113837. .IP \(bu 2
  113838. \fBname\fP \-\- Name of the load balancer.
  113839. .IP \(bu 2
  113840. \fBresource_group\fP \-\- The resource group assigned to the load balancer.
  113841. .IP \(bu 2
  113842. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  113843. Azure Resource Manager API.
  113844. .UNINDENT
  113845. .UNINDENT
  113846. .UNINDENT
  113847. .INDENT 0.0
  113848. .TP
  113849. .B salt.states.azurearm_network.load_balancer_present(name, resource_group, sku=None, frontend_ip_configurations=None, backend_address_pools=None, load_balancing_rules=None, probes=None, inbound_nat_rules=None, inbound_nat_pools=None, outbound_nat_rules=None, tags=None, connection_auth=None, **kwargs)
  113850. New in version 2019.2.0.
  113851. .sp
  113852. Ensure a load balancer exists.
  113853. .INDENT 7.0
  113854. .TP
  113855. .B Parameters
  113856. .INDENT 7.0
  113857. .IP \(bu 2
  113858. \fBname\fP \-\- Name of the load balancer.
  113859. .IP \(bu 2
  113860. \fBresource_group\fP \-\- The resource group assigned to the load balancer.
  113861. .IP \(bu 2
  113862. \fBsku\fP \-\- The load balancer SKU, which can be \(aqBasic\(aq or \(aqStandard\(aq.
  113863. .IP \(bu 2
  113864. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the load balancer object.
  113865. .IP \(bu 2
  113866. \fBfrontend_ip_configurations\fP \-\-
  113867. .sp
  113868. An optional list of dictionaries representing valid FrontendIPConfiguration objects. A frontend IP
  113869. configuration can be either private (using private IP address and subnet parameters) or public (using a
  113870. reference to a public IP address object). Valid parameters are:
  113871. .INDENT 2.0
  113872. .IP \(bu 2
  113873. \fBname\fP: The name of the resource that is unique within a resource group.
  113874. .IP \(bu 2
  113875. \fBprivate_ip_address\fP: The private IP address of the IP configuration. Required if
  113876. \(aqprivate_ip_allocation_method\(aq is \(aqStatic\(aq.
  113877. .IP \(bu 2
  113878. \fBprivate_ip_allocation_method\fP: The Private IP allocation method. Possible values are: \(aqStatic\(aq and
  113879. \(aqDynamic\(aq.
  113880. .IP \(bu 2
  113881. \fBsubnet\fP: Name of an existing subnet inside of which the frontend IP will reside.
  113882. .IP \(bu 2
  113883. \fBpublic_ip_address\fP: Name of an existing public IP address which will be assigned to the frontend IP object.
  113884. .UNINDENT
  113885. .IP \(bu 2
  113886. \fBbackend_address_pools\fP \-\- An optional list of dictionaries representing valid BackendAddressPool objects. Only the \(aqname\(aq parameter is
  113887. valid for a BackendAddressPool dictionary. All other parameters are read\-only references from other objects
  113888. linking to the backend address pool. Inbound traffic is randomly load balanced across IPs in the backend IPs.
  113889. .IP \(bu 2
  113890. \fBprobes\fP \-\-
  113891. .sp
  113892. An optional list of dictionaries representing valid Probe objects. Valid parameters are:
  113893. .INDENT 2.0
  113894. .IP \(bu 2
  113895. \fBname\fP: The name of the resource that is unique within a resource group.
  113896. .IP \(bu 2
  113897. \fBprotocol\fP: The protocol of the endpoint. Possible values are \(aqHttp\(aq or \(aqTcp\(aq. If \(aqTcp\(aq is specified, a
  113898. received ACK is required for the probe to be successful. If \(aqHttp\(aq is specified, a 200 OK response from the
  113899. specified URI is required for the probe to be successful.
  113900. .IP \(bu 2
  113901. \fBport\fP: The port for communicating the probe. Possible values range from 1 to 65535, inclusive.
  113902. .IP \(bu 2
  113903. \fBinterval_in_seconds\fP: The interval, in seconds, for how frequently to probe the endpoint for health status.
  113904. Typically, the interval is slightly less than half the allocated timeout period (in seconds) which allows two
  113905. full probes before taking the instance out of rotation. The default value is 15, the minimum value is 5.
  113906. .IP \(bu 2
  113907. \fBnumber_of_probes\fP: The number of probes where if no response, will result in stopping further traffic from
  113908. being delivered to the endpoint. This values allows endpoints to be taken out of rotation faster or slower
  113909. than the typical times used in Azure.
  113910. .IP \(bu 2
  113911. \fBrequest_path\fP: The URI used for requesting health status from the VM. Path is required if a protocol is
  113912. set to \(aqHttp\(aq. Otherwise, it is not allowed. There is no default value.
  113913. .UNINDENT
  113914. .IP \(bu 2
  113915. \fBload_balancing_rules\fP \-\-
  113916. .sp
  113917. An optional list of dictionaries representing valid LoadBalancingRule objects. Valid parameters are:
  113918. .INDENT 2.0
  113919. .IP \(bu 2
  113920. \fBname\fP: The name of the resource that is unique within a resource group.
  113921. .IP \(bu 2
  113922. \fBload_distribution\fP: The load distribution policy for this rule. Possible values are \(aqDefault\(aq, \(aqSourceIP\(aq,
  113923. and \(aqSourceIPProtocol\(aq.
  113924. .IP \(bu 2
  113925. \fBfrontend_port\fP: The port for the external endpoint. Port numbers for each rule must be unique within the
  113926. Load Balancer. Acceptable values are between 0 and 65534. Note that value 0 enables \(aqAny Port\(aq.
  113927. .IP \(bu 2
  113928. \fBbackend_port\fP: The port used for internal connections on the endpoint. Acceptable values are between 0 and
  113929. 65535. Note that value 0 enables \(aqAny Port\(aq.
  113930. .IP \(bu 2
  113931. \fBidle_timeout_in_minutes\fP: The timeout for the TCP idle connection. The value can be set between 4 and 30
  113932. minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
  113933. .IP \(bu 2
  113934. \fBenable_floating_ip\fP: Configures a virtual machine\(aqs endpoint for the floating IP capability required
  113935. to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn
  113936. Availability Groups in SQL server. This setting can\(aqt be changed after you create the endpoint.
  113937. .IP \(bu 2
  113938. \fBdisable_outbound_snat\fP: Configures SNAT for the VMs in the backend pool to use the public IP address
  113939. specified in the frontend of the load balancing rule.
  113940. .IP \(bu 2
  113941. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the load balancing rule
  113942. object.
  113943. .IP \(bu 2
  113944. \fBbackend_address_pool\fP: Name of the backend address pool object used by the load balancing rule object.
  113945. Inbound traffic is randomly load balanced across IPs in the backend IPs.
  113946. .IP \(bu 2
  113947. \fBprobe\fP: Name of the probe object used by the load balancing rule object.
  113948. .UNINDENT
  113949. .IP \(bu 2
  113950. \fBinbound_nat_rules\fP \-\-
  113951. .sp
  113952. An optional list of dictionaries representing valid InboundNatRule objects. Defining inbound NAT rules on your
  113953. load balancer is mutually exclusive with defining an inbound NAT pool. Inbound NAT pools are referenced from
  113954. virtual machine scale sets. NICs that are associated with individual virtual machines cannot reference an
  113955. Inbound NAT pool. They have to reference individual inbound NAT rules. Valid parameters are:
  113956. .INDENT 2.0
  113957. .IP \(bu 2
  113958. \fBname\fP: The name of the resource that is unique within a resource group.
  113959. .IP \(bu 2
  113960. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the inbound NAT rule
  113961. object.
  113962. .IP \(bu 2
  113963. \fBprotocol\fP: Possible values include \(aqUdp\(aq, \(aqTcp\(aq, or \(aqAll\(aq.
  113964. .IP \(bu 2
  113965. \fBfrontend_port\fP: The port for the external endpoint. Port numbers for each rule must be unique within the
  113966. Load Balancer. Acceptable values range from 1 to 65534.
  113967. .IP \(bu 2
  113968. \fBbackend_port\fP: The port used for the internal endpoint. Acceptable values range from 1 to 65535.
  113969. .IP \(bu 2
  113970. \fBidle_timeout_in_minutes\fP: The timeout for the TCP idle connection. The value can be set between 4 and 30
  113971. minutes. The default value is 4 minutes. This element is only used when the protocol is set to TCP.
  113972. .IP \(bu 2
  113973. \fBenable_floating_ip\fP: Configures a virtual machine\(aqs endpoint for the floating IP capability required
  113974. to configure a SQL AlwaysOn Availability Group. This setting is required when using the SQL AlwaysOn
  113975. Availability Groups in SQL server. This setting can\(aqt be changed after you create the endpoint.
  113976. .UNINDENT
  113977. .IP \(bu 2
  113978. \fBinbound_nat_pools\fP \-\-
  113979. .sp
  113980. An optional list of dictionaries representing valid InboundNatPool objects. They define an external port range
  113981. for inbound NAT to a single backend port on NICs associated with a load balancer. Inbound NAT rules are created
  113982. automatically for each NIC associated with the Load Balancer using an external port from this range. Defining an
  113983. Inbound NAT pool on your Load Balancer is mutually exclusive with defining inbound NAT rules. Inbound NAT pools
  113984. are referenced from virtual machine scale sets. NICs that are associated with individual virtual machines cannot
  113985. reference an inbound NAT pool. They have to reference individual inbound NAT rules. Valid parameters are:
  113986. .INDENT 2.0
  113987. .IP \(bu 2
  113988. \fBname\fP: The name of the resource that is unique within a resource group.
  113989. .IP \(bu 2
  113990. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the inbound NAT pool
  113991. object.
  113992. .IP \(bu 2
  113993. \fBprotocol\fP: Possible values include \(aqUdp\(aq, \(aqTcp\(aq, or \(aqAll\(aq.
  113994. .IP \(bu 2
  113995. \fBfrontend_port_range_start\fP: The first port number in the range of external ports that will be used to
  113996. provide Inbound NAT to NICs associated with a load balancer. Acceptable values range between 1 and 65534.
  113997. .IP \(bu 2
  113998. \fBfrontend_port_range_end\fP: The last port number in the range of external ports that will be used to
  113999. provide Inbound NAT to NICs associated with a load balancer. Acceptable values range between 1 and 65535.
  114000. .IP \(bu 2
  114001. \fBbackend_port\fP: The port used for internal connections to the endpoint. Acceptable values are between 1 and
  114002. 65535.
  114003. .UNINDENT
  114004. .IP \(bu 2
  114005. \fBoutbound_nat_rules\fP \-\-
  114006. .sp
  114007. An optional list of dictionaries representing valid OutboundNatRule objects. Valid parameters are:
  114008. .INDENT 2.0
  114009. .IP \(bu 2
  114010. \fBname\fP: The name of the resource that is unique within a resource group.
  114011. .IP \(bu 2
  114012. \fBfrontend_ip_configuration\fP: Name of the frontend IP configuration object used by the outbound NAT rule
  114013. object.
  114014. .IP \(bu 2
  114015. \fBbackend_address_pool\fP: Name of the backend address pool object used by the outbound NAT rule object.
  114016. Outbound traffic is randomly load balanced across IPs in the backend IPs.
  114017. .IP \(bu 2
  114018. \fBallocated_outbound_ports\fP: The number of outbound ports to be used for NAT.
  114019. .UNINDENT
  114020. .IP \(bu 2
  114021. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114022. Azure Resource Manager API.
  114023. .UNINDENT
  114024. .UNINDENT
  114025. .sp
  114026. Example usage:
  114027. .INDENT 7.0
  114028. .INDENT 3.5
  114029. .sp
  114030. .nf
  114031. .ft C
  114032. Ensure load balancer exists:
  114033. azurearm_network.load_balancer_present:
  114034. \- name: lb1
  114035. \- resource_group: group1
  114036. \- location: eastus
  114037. \- frontend_ip_configurations:
  114038. \- name: lb1_feip1
  114039. public_ip_address: pub_ip1
  114040. \- backend_address_pools:
  114041. \- name: lb1_bepool1
  114042. \- probes:
  114043. \- name: lb1_webprobe1
  114044. protocol: tcp
  114045. port: 80
  114046. interval_in_seconds: 5
  114047. number_of_probes: 2
  114048. \- load_balancing_rules:
  114049. \- name: lb1_webprobe1
  114050. protocol: tcp
  114051. frontend_port: 80
  114052. backend_port: 80
  114053. idle_timeout_in_minutes: 4
  114054. frontend_ip_configuration: lb1_feip1
  114055. backend_address_pool: lb1_bepool1
  114056. probe: lb1_webprobe1
  114057. \- tags:
  114058. contact_name: Elmer Fudd Gantry
  114059. \- connection_auth: {{ profile }}
  114060. \- require:
  114061. \- azurearm_resource: Ensure resource group exists
  114062. \- azurearm_network: Ensure public IP exists
  114063. .ft P
  114064. .fi
  114065. .UNINDENT
  114066. .UNINDENT
  114067. .UNINDENT
  114068. .INDENT 0.0
  114069. .TP
  114070. .B salt.states.azurearm_network.network_interface_absent(name, resource_group, connection_auth=None)
  114071. New in version 2019.2.0.
  114072. .sp
  114073. Ensure a network interface does not exist in the resource group.
  114074. .INDENT 7.0
  114075. .TP
  114076. .B Parameters
  114077. .INDENT 7.0
  114078. .IP \(bu 2
  114079. \fBname\fP \-\- Name of the network interface.
  114080. .IP \(bu 2
  114081. \fBresource_group\fP \-\- The resource group assigned to the network interface.
  114082. .IP \(bu 2
  114083. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114084. Azure Resource Manager API.
  114085. .UNINDENT
  114086. .UNINDENT
  114087. .UNINDENT
  114088. .INDENT 0.0
  114089. .TP
  114090. .B salt.states.azurearm_network.network_interface_present(name, ip_configurations, subnet, virtual_network, resource_group, tags=None, virtual_machine=None, network_security_group=None, dns_settings=None, mac_address=None, primary=None, enable_accelerated_networking=None, enable_ip_forwarding=None, connection_auth=None, **kwargs)
  114091. New in version 2019.2.0.
  114092. .sp
  114093. Ensure a network interface exists.
  114094. .INDENT 7.0
  114095. .TP
  114096. .B Parameters
  114097. .INDENT 7.0
  114098. .IP \(bu 2
  114099. \fBname\fP \-\- Name of the network interface.
  114100. .IP \(bu 2
  114101. \fBip_configurations\fP \-\- A list of dictionaries representing valid NetworkInterfaceIPConfiguration objects. The \(aqname\(aq key is required at
  114102. minimum. At least one IP Configuration must be present.
  114103. .IP \(bu 2
  114104. \fBsubnet\fP \-\- Name of the existing subnet assigned to the network interface.
  114105. .IP \(bu 2
  114106. \fBvirtual_network\fP \-\- Name of the existing virtual network containing the subnet.
  114107. .IP \(bu 2
  114108. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114109. .IP \(bu 2
  114110. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the network interface object.
  114111. .IP \(bu 2
  114112. \fBnetwork_security_group\fP \-\- The name of the existing network security group to assign to the network interface.
  114113. .IP \(bu 2
  114114. \fBvirtual_machine\fP \-\- The name of the existing virtual machine to assign to the network interface.
  114115. .IP \(bu 2
  114116. \fBdns_settings\fP \-\-
  114117. .sp
  114118. An optional dictionary representing a valid NetworkInterfaceDnsSettings object. Valid parameters are:
  114119. .INDENT 2.0
  114120. .IP \(bu 2
  114121. \fBdns_servers\fP: List of DNS server IP addresses. Use \(aqAzureProvidedDNS\(aq to switch to Azure provided DNS
  114122. resolution. \(aqAzureProvidedDNS\(aq value cannot be combined with other IPs, it must be the only value in
  114123. dns_servers collection.
  114124. .IP \(bu 2
  114125. \fBinternal_dns_name_label\fP: Relative DNS name for this NIC used for internal communications between VMs in
  114126. the same virtual network.
  114127. .IP \(bu 2
  114128. \fBinternal_fqdn\fP: Fully qualified DNS name supporting internal communications between VMs in the same virtual
  114129. network.
  114130. .IP \(bu 2
  114131. \fBinternal_domain_name_suffix\fP: Even if internal_dns_name_label is not specified, a DNS entry is created for
  114132. the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of
  114133. internal_domain_name_suffix.
  114134. .UNINDENT
  114135. .IP \(bu 2
  114136. \fBmac_address\fP \-\- Optional string containing the MAC address of the network interface.
  114137. .IP \(bu 2
  114138. \fBprimary\fP \-\- Optional boolean allowing the interface to be set as the primary network interface on a virtual machine
  114139. with multiple interfaces attached.
  114140. .IP \(bu 2
  114141. \fBenable_accelerated_networking\fP \-\- Optional boolean indicating whether accelerated networking should be enabled for the interface.
  114142. .IP \(bu 2
  114143. \fBenable_ip_forwarding\fP \-\- Optional boolean indicating whether IP forwarding should be enabled for the interface.
  114144. .IP \(bu 2
  114145. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114146. Azure Resource Manager API.
  114147. .UNINDENT
  114148. .UNINDENT
  114149. .sp
  114150. Example usage:
  114151. .INDENT 7.0
  114152. .INDENT 3.5
  114153. .sp
  114154. .nf
  114155. .ft C
  114156. Ensure network interface exists:
  114157. azurearm_network.network_interface_present:
  114158. \- name: iface1
  114159. \- subnet: vnet1_sn1
  114160. \- virtual_network: vnet1
  114161. \- resource_group: group1
  114162. \- ip_configurations:
  114163. \- name: iface1_ipc1
  114164. public_ip_address: pub_ip2
  114165. \- dns_settings:
  114166. internal_dns_name_label: decisionlab\-int\-test\-label
  114167. \- primary: True
  114168. \- enable_accelerated_networking: True
  114169. \- enable_ip_forwarding: False
  114170. \- network_security_group: nsg1
  114171. \- connection_auth: {{ profile }}
  114172. \- require:
  114173. \- azurearm_network: Ensure subnet exists
  114174. \- azurearm_network: Ensure network security group exists
  114175. \- azurearm_network: Ensure another public IP exists
  114176. .ft P
  114177. .fi
  114178. .UNINDENT
  114179. .UNINDENT
  114180. .UNINDENT
  114181. .INDENT 0.0
  114182. .TP
  114183. .B salt.states.azurearm_network.network_security_group_absent(name, resource_group, connection_auth=None)
  114184. New in version 2019.2.0.
  114185. .sp
  114186. Ensure a network security group does not exist in the resource group.
  114187. .INDENT 7.0
  114188. .TP
  114189. .B Parameters
  114190. .INDENT 7.0
  114191. .IP \(bu 2
  114192. \fBname\fP \-\- Name of the network security group.
  114193. .IP \(bu 2
  114194. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114195. .IP \(bu 2
  114196. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114197. Azure Resource Manager API.
  114198. .UNINDENT
  114199. .UNINDENT
  114200. .UNINDENT
  114201. .INDENT 0.0
  114202. .TP
  114203. .B salt.states.azurearm_network.network_security_group_present(name, resource_group, tags=None, security_rules=None, connection_auth=None, **kwargs)
  114204. New in version 2019.2.0.
  114205. .sp
  114206. Ensure a network security group exists.
  114207. .INDENT 7.0
  114208. .TP
  114209. .B Parameters
  114210. .INDENT 7.0
  114211. .IP \(bu 2
  114212. \fBname\fP \-\- Name of the network security group.
  114213. .IP \(bu 2
  114214. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114215. .IP \(bu 2
  114216. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the network security group object.
  114217. .IP \(bu 2
  114218. \fBsecurity_rules\fP \-\- An optional list of dictionaries representing valid SecurityRule objects. See the
  114219. documentation for the security_rule_present state or security_rule_create_or_update execution module
  114220. for more information on required and optional parameters for security rules. The rules are only
  114221. managed if this parameter is present. When this parameter is absent, implemented rules will not be removed,
  114222. and will merely become unmanaged.
  114223. .IP \(bu 2
  114224. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114225. Azure Resource Manager API.
  114226. .UNINDENT
  114227. .UNINDENT
  114228. .sp
  114229. Example usage:
  114230. .INDENT 7.0
  114231. .INDENT 3.5
  114232. .sp
  114233. .nf
  114234. .ft C
  114235. Ensure network security group exists:
  114236. azurearm_network.network_security_group_present:
  114237. \- name: nsg1
  114238. \- resource_group: group1
  114239. \- security_rules:
  114240. \- name: nsg1_rule1
  114241. priority: 100
  114242. protocol: tcp
  114243. access: allow
  114244. direction: outbound
  114245. source_address_prefix: virtualnetwork
  114246. destination_address_prefix: internet
  114247. source_port_range: \(aq*\(aq
  114248. destination_port_range: \(aq*\(aq
  114249. \- name: nsg1_rule2
  114250. priority: 101
  114251. protocol: tcp
  114252. access: allow
  114253. direction: inbound
  114254. source_address_prefix: internet
  114255. destination_address_prefix: virtualnetwork
  114256. source_port_range: \(aq*\(aq
  114257. destination_port_ranges:
  114258. \- \(aq80\(aq
  114259. \- \(aq443\(aq
  114260. \- tags:
  114261. contact_name: Elmer Fudd Gantry
  114262. \- connection_auth: {{ profile }}
  114263. \- require:
  114264. \- azurearm_resource: Ensure resource group exists
  114265. .ft P
  114266. .fi
  114267. .UNINDENT
  114268. .UNINDENT
  114269. .UNINDENT
  114270. .INDENT 0.0
  114271. .TP
  114272. .B salt.states.azurearm_network.public_ip_address_absent(name, resource_group, connection_auth=None)
  114273. New in version 2019.2.0.
  114274. .sp
  114275. Ensure a public IP address does not exist in the resource group.
  114276. .INDENT 7.0
  114277. .TP
  114278. .B Parameters
  114279. .INDENT 7.0
  114280. .IP \(bu 2
  114281. \fBname\fP \-\- Name of the public IP address.
  114282. .IP \(bu 2
  114283. \fBresource_group\fP \-\- The resource group assigned to the public IP address.
  114284. .IP \(bu 2
  114285. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114286. Azure Resource Manager API.
  114287. .UNINDENT
  114288. .UNINDENT
  114289. .UNINDENT
  114290. .INDENT 0.0
  114291. .TP
  114292. .B salt.states.azurearm_network.public_ip_address_present(name, resource_group, tags=None, sku=None, public_ip_allocation_method=None, public_ip_address_version=None, dns_settings=None, idle_timeout_in_minutes=None, connection_auth=None, **kwargs)
  114293. New in version 2019.2.0.
  114294. .sp
  114295. Ensure a public IP address exists.
  114296. .INDENT 7.0
  114297. .TP
  114298. .B Parameters
  114299. .INDENT 7.0
  114300. .IP \(bu 2
  114301. \fBname\fP \-\- Name of the public IP address.
  114302. .IP \(bu 2
  114303. \fBresource_group\fP \-\- The resource group assigned to the public IP address.
  114304. .IP \(bu 2
  114305. \fBdns_settings\fP \-\- An optional dictionary representing a valid PublicIPAddressDnsSettings object. Parameters include
  114306. \(aqdomain_name_label\(aq and \(aqreverse_fqdn\(aq, which accept strings. The \(aqdomain_name_label\(aq parameter is concatenated
  114307. with the regionalized DNS zone make up the fully qualified domain name associated with the public IP address.
  114308. If a domain name label is specified, an A DNS record is created for the public IP in the Microsoft Azure DNS
  114309. system. The \(aqreverse_fqdn\(aq parameter is a user\-visible, fully qualified domain name that resolves to this public
  114310. IP address. If the reverse FQDN is specified, then a PTR DNS record is created pointing from the IP address in
  114311. the in\-addr.arpa domain to the reverse FQDN.
  114312. .IP \(bu 2
  114313. \fBsku\fP \-\- The public IP address SKU, which can be \(aqBasic\(aq or \(aqStandard\(aq.
  114314. .IP \(bu 2
  114315. \fBpublic_ip_allocation_method\fP \-\- The public IP allocation method. Possible values are: \(aqStatic\(aq and \(aqDynamic\(aq.
  114316. .IP \(bu 2
  114317. \fBpublic_ip_address_version\fP \-\- The public IP address version. Possible values are: \(aqIPv4\(aq and \(aqIPv6\(aq.
  114318. .IP \(bu 2
  114319. \fBidle_timeout_in_minutes\fP \-\- An integer representing the idle timeout of the public IP address.
  114320. .IP \(bu 2
  114321. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the public IP address object.
  114322. .IP \(bu 2
  114323. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114324. Azure Resource Manager API.
  114325. .UNINDENT
  114326. .UNINDENT
  114327. .sp
  114328. Example usage:
  114329. .INDENT 7.0
  114330. .INDENT 3.5
  114331. .sp
  114332. .nf
  114333. .ft C
  114334. Ensure public IP exists:
  114335. azurearm_network.public_ip_address_present:
  114336. \- name: pub_ip1
  114337. \- resource_group: group1
  114338. \- dns_settings:
  114339. domain_name_label: decisionlab\-ext\-test\-label
  114340. \- sku: basic
  114341. \- public_ip_allocation_method: static
  114342. \- public_ip_address_version: ipv4
  114343. \- idle_timeout_in_minutes: 4
  114344. \- tags:
  114345. contact_name: Elmer Fudd Gantry
  114346. \- connection_auth: {{ profile }}
  114347. \- require:
  114348. \- azurearm_resource: Ensure resource group exists
  114349. .ft P
  114350. .fi
  114351. .UNINDENT
  114352. .UNINDENT
  114353. .UNINDENT
  114354. .INDENT 0.0
  114355. .TP
  114356. .B salt.states.azurearm_network.route_absent(name, route_table, resource_group, connection_auth=None)
  114357. New in version 2019.2.0.
  114358. .sp
  114359. Ensure a route table does not exist in the resource group.
  114360. .INDENT 7.0
  114361. .TP
  114362. .B Parameters
  114363. .INDENT 7.0
  114364. .IP \(bu 2
  114365. \fBname\fP \-\- Name of the route table.
  114366. .IP \(bu 2
  114367. \fBroute_table\fP \-\- The name of the existing route table containing the route.
  114368. .IP \(bu 2
  114369. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114370. .IP \(bu 2
  114371. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114372. Azure Resource Manager API.
  114373. .UNINDENT
  114374. .UNINDENT
  114375. .UNINDENT
  114376. .INDENT 0.0
  114377. .TP
  114378. .B salt.states.azurearm_network.route_present(name, address_prefix, next_hop_type, route_table, resource_group, next_hop_ip_address=None, connection_auth=None, **kwargs)
  114379. New in version 2019.2.0.
  114380. .sp
  114381. Ensure a route exists within a route table.
  114382. .INDENT 7.0
  114383. .TP
  114384. .B Parameters
  114385. .INDENT 7.0
  114386. .IP \(bu 2
  114387. \fBname\fP \-\- Name of the route.
  114388. .IP \(bu 2
  114389. \fBaddress_prefix\fP \-\- The destination CIDR to which the route applies.
  114390. .IP \(bu 2
  114391. \fBnext_hop_type\fP \-\- The type of Azure hop the packet should be sent to. Possible values are: \(aqVirtualNetworkGateway\(aq, \(aqVnetLocal\(aq,
  114392. \(aqInternet\(aq, \(aqVirtualAppliance\(aq, and \(aqNone\(aq.
  114393. .IP \(bu 2
  114394. \fBnext_hop_ip_address\fP \-\- The IP address packets should be forwarded to. Next hop values are only allowed in routes where the next hop
  114395. type is \(aqVirtualAppliance\(aq.
  114396. .IP \(bu 2
  114397. \fBroute_table\fP \-\- The name of the existing route table which will contain the route.
  114398. .IP \(bu 2
  114399. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114400. .IP \(bu 2
  114401. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114402. Azure Resource Manager API.
  114403. .UNINDENT
  114404. .UNINDENT
  114405. .sp
  114406. Example usage:
  114407. .INDENT 7.0
  114408. .INDENT 3.5
  114409. .sp
  114410. .nf
  114411. .ft C
  114412. Ensure route exists:
  114413. azurearm_network.route_present:
  114414. \- name: rt1_route2
  114415. \- route_table: rt1
  114416. \- resource_group: group1
  114417. \- address_prefix: \(aq192.168.0.0/16\(aq
  114418. \- next_hop_type: vnetlocal
  114419. \- connection_auth: {{ profile }}
  114420. \- require:
  114421. \- azurearm_network: Ensure route table exists
  114422. .ft P
  114423. .fi
  114424. .UNINDENT
  114425. .UNINDENT
  114426. .UNINDENT
  114427. .INDENT 0.0
  114428. .TP
  114429. .B salt.states.azurearm_network.route_table_absent(name, resource_group, connection_auth=None)
  114430. New in version 2019.2.0.
  114431. .sp
  114432. Ensure a route table does not exist in the resource group.
  114433. .INDENT 7.0
  114434. .TP
  114435. .B Parameters
  114436. .INDENT 7.0
  114437. .IP \(bu 2
  114438. \fBname\fP \-\- Name of the route table.
  114439. .IP \(bu 2
  114440. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114441. .IP \(bu 2
  114442. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114443. Azure Resource Manager API.
  114444. .UNINDENT
  114445. .UNINDENT
  114446. .UNINDENT
  114447. .INDENT 0.0
  114448. .TP
  114449. .B salt.states.azurearm_network.route_table_present(name, resource_group, tags=None, routes=None, disable_bgp_route_propagation=None, connection_auth=None, **kwargs)
  114450. New in version 2019.2.0.
  114451. .sp
  114452. Ensure a route table exists.
  114453. .INDENT 7.0
  114454. .TP
  114455. .B Parameters
  114456. .INDENT 7.0
  114457. .IP \(bu 2
  114458. \fBname\fP \-\- Name of the route table.
  114459. .IP \(bu 2
  114460. \fBresource_group\fP \-\- The resource group assigned to the route table.
  114461. .IP \(bu 2
  114462. \fBroutes\fP \-\- An optional list of dictionaries representing valid Route objects contained within a route table. See the
  114463. documentation for the route_present state or route_create_or_update execution module for more information on
  114464. required and optional parameters for routes. The routes are only managed if this parameter is present. When this
  114465. parameter is absent, implemented routes will not be removed, and will merely become unmanaged.
  114466. .IP \(bu 2
  114467. \fBdisable_bgp_route_propagation\fP \-\- An optional boolean parameter setting whether to disable the routes learned by BGP on the route table.
  114468. .IP \(bu 2
  114469. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the route table object.
  114470. .IP \(bu 2
  114471. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114472. Azure Resource Manager API.
  114473. .UNINDENT
  114474. .UNINDENT
  114475. .sp
  114476. Example usage:
  114477. .INDENT 7.0
  114478. .INDENT 3.5
  114479. .sp
  114480. .nf
  114481. .ft C
  114482. Ensure route table exists:
  114483. azurearm_network.route_table_present:
  114484. \- name: rt1
  114485. \- resource_group: group1
  114486. \- routes:
  114487. \- name: rt1_route1
  114488. address_prefix: \(aq0.0.0.0/0\(aq
  114489. next_hop_type: internet
  114490. \- name: rt1_route2
  114491. address_prefix: \(aq192.168.0.0/16\(aq
  114492. next_hop_type: vnetlocal
  114493. \- tags:
  114494. contact_name: Elmer Fudd Gantry
  114495. \- connection_auth: {{ profile }}
  114496. \- require:
  114497. \- azurearm_resource: Ensure resource group exists
  114498. .ft P
  114499. .fi
  114500. .UNINDENT
  114501. .UNINDENT
  114502. .UNINDENT
  114503. .INDENT 0.0
  114504. .TP
  114505. .B salt.states.azurearm_network.security_rule_absent(name, security_group, resource_group, connection_auth=None)
  114506. New in version 2019.2.0.
  114507. .sp
  114508. Ensure a security rule does not exist in the network security group.
  114509. .INDENT 7.0
  114510. .TP
  114511. .B Parameters
  114512. .INDENT 7.0
  114513. .IP \(bu 2
  114514. \fBname\fP \-\- Name of the security rule.
  114515. .IP \(bu 2
  114516. \fBsecurity_group\fP \-\- The network security group containing the security rule.
  114517. .IP \(bu 2
  114518. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114519. .IP \(bu 2
  114520. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114521. Azure Resource Manager API.
  114522. .UNINDENT
  114523. .UNINDENT
  114524. .UNINDENT
  114525. .INDENT 0.0
  114526. .TP
  114527. .B salt.states.azurearm_network.security_rule_present(name, access, direction, priority, protocol, security_group, resource_group, destination_address_prefix=None, destination_port_range=None, source_address_prefix=None, source_port_range=None, description=None, destination_address_prefixes=None, destination_port_ranges=None, source_address_prefixes=None, source_port_ranges=None, connection_auth=None, **kwargs)
  114528. New in version 2019.2.0.
  114529. .sp
  114530. Ensure a security rule exists.
  114531. .INDENT 7.0
  114532. .TP
  114533. .B Parameters
  114534. .INDENT 7.0
  114535. .IP \(bu 2
  114536. \fBname\fP \-\- Name of the security rule.
  114537. .IP \(bu 2
  114538. \fBaccess\fP \-\- \(aqallow\(aq or \(aqdeny\(aq
  114539. .IP \(bu 2
  114540. \fBdirection\fP \-\- \(aqinbound\(aq or \(aqoutbound\(aq
  114541. .IP \(bu 2
  114542. \fBpriority\fP \-\- Integer between 100 and 4096 used for ordering rule application.
  114543. .IP \(bu 2
  114544. \fBprotocol\fP \-\- \(aqtcp\(aq, \(aqudp\(aq, or \(aq*\(aq
  114545. .IP \(bu 2
  114546. \fBsecurity_group\fP \-\- The name of the existing network security group to contain the security rule.
  114547. .IP \(bu 2
  114548. \fBresource_group\fP \-\- The resource group assigned to the network security group.
  114549. .IP \(bu 2
  114550. \fBdescription\fP \-\- Optional description of the security rule.
  114551. .IP \(bu 2
  114552. \fBdestination_address_prefix\fP \-\- The CIDR or destination IP range. Asterix \(aq*\(aq can also be used to match all destination IPs.
  114553. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  114554. If this is an ingress rule, specifies where network traffic originates from.
  114555. .IP \(bu 2
  114556. \fBdestination_port_range\fP \-\- The destination port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  114557. can also be used to match all ports.
  114558. .IP \(bu 2
  114559. \fBsource_address_prefix\fP \-\- The CIDR or source IP range. Asterix \(aq*\(aq can also be used to match all source IPs.
  114560. Default tags such as \(aqVirtualNetwork\(aq, \(aqAzureLoadBalancer\(aq and \(aqInternet\(aq can also be used.
  114561. If this is an ingress rule, specifies where network traffic originates from.
  114562. .IP \(bu 2
  114563. \fBsource_port_range\fP \-\- The source port or range. Integer or range between 0 and 65535. Asterix \(aq*\(aq
  114564. can also be used to match all ports.
  114565. .IP \(bu 2
  114566. \fBdestination_address_prefixes\fP \-\- A list of destination_address_prefix values. This parameter overrides destination_address_prefix
  114567. and will cause any value entered there to be ignored.
  114568. .IP \(bu 2
  114569. \fBdestination_port_ranges\fP \-\- A list of destination_port_range values. This parameter overrides destination_port_range
  114570. and will cause any value entered there to be ignored.
  114571. .IP \(bu 2
  114572. \fBsource_address_prefixes\fP \-\- A list of source_address_prefix values. This parameter overrides source_address_prefix
  114573. and will cause any value entered there to be ignored.
  114574. .IP \(bu 2
  114575. \fBsource_port_ranges\fP \-\- A list of source_port_range values. This parameter overrides source_port_range
  114576. and will cause any value entered there to be ignored.
  114577. .IP \(bu 2
  114578. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114579. Azure Resource Manager API.
  114580. .UNINDENT
  114581. .UNINDENT
  114582. .sp
  114583. Example usage:
  114584. .INDENT 7.0
  114585. .INDENT 3.5
  114586. .sp
  114587. .nf
  114588. .ft C
  114589. Ensure security rule exists:
  114590. azurearm_network.security_rule_present:
  114591. \- name: nsg1_rule2
  114592. \- security_group: nsg1
  114593. \- resource_group: group1
  114594. \- priority: 101
  114595. \- protocol: tcp
  114596. \- access: allow
  114597. \- direction: inbound
  114598. \- source_address_prefix: internet
  114599. \- destination_address_prefix: virtualnetwork
  114600. \- source_port_range: \(aq*\(aq
  114601. \- destination_port_ranges:
  114602. \- \(aq80\(aq
  114603. \- \(aq443\(aq
  114604. \- connection_auth: {{ profile }}
  114605. \- require:
  114606. \- azurearm_network: Ensure network security group exists
  114607. .ft P
  114608. .fi
  114609. .UNINDENT
  114610. .UNINDENT
  114611. .UNINDENT
  114612. .INDENT 0.0
  114613. .TP
  114614. .B salt.states.azurearm_network.subnet_absent(name, virtual_network, resource_group, connection_auth=None)
  114615. New in version 2019.2.0.
  114616. .sp
  114617. Ensure a virtual network does not exist in the virtual network.
  114618. .INDENT 7.0
  114619. .TP
  114620. .B Parameters
  114621. .INDENT 7.0
  114622. .IP \(bu 2
  114623. \fBname\fP \-\- Name of the subnet.
  114624. .IP \(bu 2
  114625. \fBvirtual_network\fP \-\- Name of the existing virtual network containing the subnet.
  114626. .IP \(bu 2
  114627. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114628. .IP \(bu 2
  114629. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114630. Azure Resource Manager API.
  114631. .UNINDENT
  114632. .UNINDENT
  114633. .UNINDENT
  114634. .INDENT 0.0
  114635. .TP
  114636. .B salt.states.azurearm_network.subnet_present(name, address_prefix, virtual_network, resource_group, security_group=None, route_table=None, connection_auth=None, **kwargs)
  114637. New in version 2019.2.0.
  114638. .sp
  114639. Ensure a subnet exists.
  114640. .INDENT 7.0
  114641. .TP
  114642. .B Parameters
  114643. .INDENT 7.0
  114644. .IP \(bu 2
  114645. \fBname\fP \-\- Name of the subnet.
  114646. .IP \(bu 2
  114647. \fBaddress_prefix\fP \-\- A CIDR block used by the subnet within the virtual network.
  114648. .IP \(bu 2
  114649. \fBvirtual_network\fP \-\- Name of the existing virtual network to contain the subnet.
  114650. .IP \(bu 2
  114651. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114652. .IP \(bu 2
  114653. \fBsecurity_group\fP \-\- The name of the existing network security group to assign to the subnet.
  114654. .IP \(bu 2
  114655. \fBroute_table\fP \-\- The name of the existing route table to assign to the subnet.
  114656. .IP \(bu 2
  114657. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114658. Azure Resource Manager API.
  114659. .UNINDENT
  114660. .UNINDENT
  114661. .sp
  114662. Example usage:
  114663. .INDENT 7.0
  114664. .INDENT 3.5
  114665. .sp
  114666. .nf
  114667. .ft C
  114668. Ensure subnet exists:
  114669. azurearm_network.subnet_present:
  114670. \- name: vnet1_sn1
  114671. \- virtual_network: vnet1
  114672. \- resource_group: group1
  114673. \- address_prefix: \(aq192.168.1.0/24\(aq
  114674. \- security_group: nsg1
  114675. \- route_table: rt1
  114676. \- connection_auth: {{ profile }}
  114677. \- require:
  114678. \- azurearm_network: Ensure virtual network exists
  114679. \- azurearm_network: Ensure network security group exists
  114680. \- azurearm_network: Ensure route table exists
  114681. .ft P
  114682. .fi
  114683. .UNINDENT
  114684. .UNINDENT
  114685. .UNINDENT
  114686. .INDENT 0.0
  114687. .TP
  114688. .B salt.states.azurearm_network.virtual_network_absent(name, resource_group, connection_auth=None)
  114689. New in version 2019.2.0.
  114690. .sp
  114691. Ensure a virtual network does not exist in the resource group.
  114692. .INDENT 7.0
  114693. .TP
  114694. .B Parameters
  114695. .INDENT 7.0
  114696. .IP \(bu 2
  114697. \fBname\fP \-\- Name of the virtual network.
  114698. .IP \(bu 2
  114699. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114700. .IP \(bu 2
  114701. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114702. Azure Resource Manager API.
  114703. .UNINDENT
  114704. .UNINDENT
  114705. .UNINDENT
  114706. .INDENT 0.0
  114707. .TP
  114708. .B salt.states.azurearm_network.virtual_network_present(name, address_prefixes, resource_group, dns_servers=None, tags=None, connection_auth=None, **kwargs)
  114709. New in version 2019.2.0.
  114710. .sp
  114711. Ensure a virtual network exists.
  114712. .INDENT 7.0
  114713. .TP
  114714. .B Parameters
  114715. .INDENT 7.0
  114716. .IP \(bu 2
  114717. \fBname\fP \-\- Name of the virtual network.
  114718. .IP \(bu 2
  114719. \fBresource_group\fP \-\- The resource group assigned to the virtual network.
  114720. .IP \(bu 2
  114721. \fBaddress_prefixes\fP \-\- A list of CIDR blocks which can be used by subnets within the virtual network.
  114722. .IP \(bu 2
  114723. \fBdns_servers\fP \-\- A list of DNS server addresses.
  114724. .IP \(bu 2
  114725. \fBtags\fP \-\- A dictionary of strings can be passed as tag metadata to the virtual network object.
  114726. .IP \(bu 2
  114727. \fBconnection_auth\fP \-\- A dict with subscription and authentication parameters to be used in connecting to the
  114728. Azure Resource Manager API.
  114729. .UNINDENT
  114730. .UNINDENT
  114731. .sp
  114732. Example usage:
  114733. .INDENT 7.0
  114734. .INDENT 3.5
  114735. .sp
  114736. .nf
  114737. .ft C
  114738. Ensure virtual network exists:
  114739. azurearm_network.virtual_network_present:
  114740. \- name: vnet1
  114741. \- resource_group: group1
  114742. \- address_prefixes:
  114743. \- \(aq10.0.0.0/8\(aq
  114744. \- \(aq192.168.0.0/16\(aq
  114745. \- dns_servers:
  114746. \- \(aq8.8.8.8\(aq
  114747. \- tags:
  114748. contact_name: Elmer Fudd Gantry
  114749. \- connection_auth: {{ profile }}
  114750. \- require:
  114751. \- azurearm_resource: Ensure resource group exists
  114752. .ft P
  114753. .fi
  114754. .UNINDENT
  114755. .UNINDENT
  114756. .UNINDENT
  114757. .SS salt.states.beacon
  114758. .SS Management of the Salt beacons
  114759. .sp
  114760. New in version 2015.8.0.
  114761. .INDENT 0.0
  114762. .INDENT 3.5
  114763. .sp
  114764. .nf
  114765. .ft C
  114766. ps:
  114767. beacon.present:
  114768. \- save: True
  114769. \- enable: False
  114770. \- services:
  114771. salt\-master: running
  114772. apache2: stopped
  114773. sh:
  114774. beacon.present: []
  114775. load:
  114776. beacon.present:
  114777. \- averages:
  114778. 1m:
  114779. \- 0.0
  114780. \- 2.0
  114781. 5m:
  114782. \- 0.0
  114783. \- 1.5
  114784. 15m:
  114785. \- 0.1
  114786. \- 1.0
  114787. \&.. versionadded:: 3000
  114788. Beginning in the 3000 release, multiple copies of a beacon can be configured
  114789. using the \(ga\(gabeacon_module\(ga\(ga parameter.
  114790. inotify_infs:
  114791. beacon.present:
  114792. \- save: True
  114793. \- enable: True
  114794. \- files:
  114795. /etc/infs.conf:
  114796. mask:
  114797. \- create
  114798. \- delete
  114799. \- modify
  114800. recurse: True
  114801. auto_add: True
  114802. \- interval: 10
  114803. \- beacon_module: inotify
  114804. \- disable_during_state_run: True
  114805. inotify_ntp:
  114806. beacon.present:
  114807. \- save: True
  114808. \- enable: True
  114809. \- files:
  114810. /etc/ntp.conf:
  114811. mask:
  114812. \- create
  114813. \- delete
  114814. \- modify
  114815. recurse: True
  114816. auto_add: True
  114817. \- interval: 10
  114818. \- beacon_module: inotify
  114819. \- disable_during_state_run: True
  114820. .ft P
  114821. .fi
  114822. .UNINDENT
  114823. .UNINDENT
  114824. .INDENT 0.0
  114825. .TP
  114826. .B salt.states.beacon.absent(name, save=False, **kwargs)
  114827. Ensure beacon is absent.
  114828. .INDENT 7.0
  114829. .TP
  114830. .B name
  114831. The name of the beacon that is ensured absent.
  114832. .TP
  114833. .B save
  114834. True/False, if True the beacons.conf file be updated too. Default is False.
  114835. .UNINDENT
  114836. .sp
  114837. Example:
  114838. .INDENT 7.0
  114839. .INDENT 3.5
  114840. .sp
  114841. .nf
  114842. .ft C
  114843. remove_beacon:
  114844. beacon.absent:
  114845. \- name: ps
  114846. \- save: True
  114847. .ft P
  114848. .fi
  114849. .UNINDENT
  114850. .UNINDENT
  114851. .UNINDENT
  114852. .INDENT 0.0
  114853. .TP
  114854. .B salt.states.beacon.disabled(name, **kwargs)
  114855. Disable a beacon.
  114856. .INDENT 7.0
  114857. .TP
  114858. .B name
  114859. The name of the beacon to disable.
  114860. .UNINDENT
  114861. .sp
  114862. Example:
  114863. .INDENT 7.0
  114864. .INDENT 3.5
  114865. .sp
  114866. .nf
  114867. .ft C
  114868. disable_beacon:
  114869. beacon.disabled:
  114870. \- name: psp
  114871. .ft P
  114872. .fi
  114873. .UNINDENT
  114874. .UNINDENT
  114875. .UNINDENT
  114876. .INDENT 0.0
  114877. .TP
  114878. .B salt.states.beacon.enabled(name, **kwargs)
  114879. Enable a beacon.
  114880. .INDENT 7.0
  114881. .TP
  114882. .B name
  114883. The name of the beacon to enable.
  114884. .UNINDENT
  114885. .sp
  114886. Example:
  114887. .INDENT 7.0
  114888. .INDENT 3.5
  114889. .sp
  114890. .nf
  114891. .ft C
  114892. enable_beacon:
  114893. beacon.enabled:
  114894. \- name: ps
  114895. .ft P
  114896. .fi
  114897. .UNINDENT
  114898. .UNINDENT
  114899. .UNINDENT
  114900. .INDENT 0.0
  114901. .TP
  114902. .B salt.states.beacon.present(name, save=False, **kwargs)
  114903. Ensure beacon is configured with the included beacon data.
  114904. .INDENT 7.0
  114905. .TP
  114906. .B name
  114907. The name of the beacon to ensure is configured.
  114908. .TP
  114909. .B save
  114910. True/False, if True the beacons.conf file be updated too. Default is False.
  114911. .UNINDENT
  114912. .sp
  114913. Example:
  114914. .INDENT 7.0
  114915. .INDENT 3.5
  114916. .sp
  114917. .nf
  114918. .ft C
  114919. ps_beacon:
  114920. beacon.present:
  114921. \- name: ps
  114922. \- save: True
  114923. \- enable: False
  114924. \- services:
  114925. salt\-master: running
  114926. apache2: stopped
  114927. .ft P
  114928. .fi
  114929. .UNINDENT
  114930. .UNINDENT
  114931. .UNINDENT
  114932. .SS salt.states.boto3_elasticache module
  114933. .SS Manage Elasticache with boto3
  114934. .sp
  114935. New in version 2017.7.0.
  114936. .sp
  114937. Create, destroy and update Elasticache clusters. Be aware that this interacts
  114938. with Amazon\(aqs services, and so may incur charges.
  114939. .sp
  114940. This module uses boto3 behind the scenes \- as a result it inherits any limitations
  114941. it boto3\(aqs implementation of the AWS API. It is also designed to as directly as
  114942. possible leverage boto3\(aqs parameter naming and semantics. This allows one to use
  114943. \fI\%http://boto3.readthedocs.io/en/latest/reference/services/elasticache.html\fP as an
  114944. excellent source for details too involved to reiterate here.
  114945. .sp
  114946. Note: This module is designed to be transparent ("intentionally ignorant" is the
  114947. phrase I used to describe it to my boss) to new AWS / boto options \- since all
  114948. AWS API params are passed directly through both the state and executions modules,
  114949. any new args to existing functions which become available after this documentation
  114950. is written should work immediately.
  114951. .sp
  114952. Brand new API calls, of course, would still require new functions to be added :)
  114953. .sp
  114954. This module accepts explicit elasticache credentials but can also utilize IAM
  114955. roles assigned to the instance through Instance Profiles. Dynamic credentials are
  114956. then automatically obtained from AWS API and no further configuration is necessary.
  114957. More information is available
  114958. \fI\%here\fP\&.
  114959. .sp
  114960. If IAM roles are not used you need to specify them either in a pillar file or
  114961. in the minion\(aqs config file:
  114962. .INDENT 0.0
  114963. .INDENT 3.5
  114964. .sp
  114965. .nf
  114966. .ft C
  114967. elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
  114968. elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  114969. .ft P
  114970. .fi
  114971. .UNINDENT
  114972. .UNINDENT
  114973. .sp
  114974. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  114975. passed in as a dict, or as a string to pull from pillars or minion config:
  114976. .INDENT 0.0
  114977. .INDENT 3.5
  114978. .sp
  114979. .nf
  114980. .ft C
  114981. myprofile:
  114982. keyid: GKTADJGHEIQSXMKKRBJ08H
  114983. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  114984. region: us\-east\-1
  114985. .ft P
  114986. .fi
  114987. .UNINDENT
  114988. .UNINDENT
  114989. .INDENT 0.0
  114990. .INDENT 3.5
  114991. .sp
  114992. .nf
  114993. .ft C
  114994. Ensure myelasticache exists:
  114995. boto3_elasticache.present:
  114996. \- name: myelasticache
  114997. \- engine: redis
  114998. \- cache_node_type: cache.t1.micro
  114999. \- num_cache_nodes: 1
  115000. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115001. \- region: us\-east\-1
  115002. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  115003. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115004. .ft P
  115005. .fi
  115006. .UNINDENT
  115007. .UNINDENT
  115008. .INDENT 0.0
  115009. .INDENT 3.5
  115010. .sp
  115011. .nf
  115012. .ft C
  115013. # Using a profile from pillars
  115014. Ensure myelasticache exists:
  115015. boto3_elasticache.present:
  115016. \- name: myelasticache
  115017. \- engine: redis
  115018. \- cache_node_type: cache.t1.micro
  115019. \- num_cache_nodes: 1
  115020. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115021. \- region: us\-east\-1
  115022. \- profile: myprofile
  115023. .ft P
  115024. .fi
  115025. .UNINDENT
  115026. .UNINDENT
  115027. .INDENT 0.0
  115028. .INDENT 3.5
  115029. .sp
  115030. .nf
  115031. .ft C
  115032. # Passing in a profile
  115033. Ensure myelasticache exists:
  115034. boto3_elasticache.present:
  115035. \- name: myelasticache
  115036. \- engine: redis
  115037. \- cache_node_type: cache.t1.micro
  115038. \- num_cache_nodes: 1
  115039. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  115040. \- region: us\-east\-1
  115041. \- profile:
  115042. keyid: GKTADJGHEIQSXMKKRBJ08H
  115043. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115044. .ft P
  115045. .fi
  115046. .UNINDENT
  115047. .UNINDENT
  115048. .INDENT 0.0
  115049. .TP
  115050. .B salt.states.boto3_elasticache.cache_cluster_absent(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)
  115051. Ensure a given cache cluster is deleted.
  115052. .INDENT 7.0
  115053. .TP
  115054. .B name
  115055. Name of the cache cluster.
  115056. .TP
  115057. .B wait
  115058. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115059. resource is in the desired state. Zero meaning to return success or failure immediately
  115060. of course. Note that waiting for the cluster to become available is generally the
  115061. better course, as failure to do so will often lead to subsequent failures when managing
  115062. dependent resources.
  115063. .TP
  115064. .B CacheClusterId
  115065. The node group (shard) identifier.
  115066. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115067. .TP
  115068. .B FinalSnapshotIdentifier
  115069. The user\-supplied name of a final cache cluster snapshot. This is the unique name
  115070. that identifies the snapshot. ElastiCache creates the snapshot, and then deletes the
  115071. cache cluster immediately afterward.
  115072. .TP
  115073. .B region
  115074. Region to connect to.
  115075. .TP
  115076. .B key
  115077. Secret key to be used.
  115078. .TP
  115079. .B keyid
  115080. Access key to be used.
  115081. .TP
  115082. .B profile
  115083. A dict with region, key and keyid, or a pillar key (string)
  115084. that contains a dict with region, key and keyid.
  115085. .UNINDENT
  115086. .UNINDENT
  115087. .INDENT 0.0
  115088. .TP
  115089. .B salt.states.boto3_elasticache.cache_cluster_present(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)
  115090. Ensure a given cache cluster exists.
  115091. .INDENT 7.0
  115092. .TP
  115093. .B name
  115094. Name of the cache cluster (cache cluster id).
  115095. .TP
  115096. .B wait
  115097. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115098. resource is in the desired state. Zero meaning to return success or failure immediately
  115099. of course. Note that waiting for the cluster to become available is generally the
  115100. better course, as failure to do so will often lead to subsequent failures when managing
  115101. dependent resources.
  115102. .TP
  115103. .B security_groups
  115104. One or more VPC security groups (names and/or IDs) associated with the cache cluster.
  115105. .sp
  115106. \fBNOTE:\fP
  115107. .INDENT 7.0
  115108. .INDENT 3.5
  115109. This is additive with any sec groups provided via the
  115110. SecurityGroupIds parameter below. Use this parameter ONLY when you
  115111. are creating a cluster in a VPC.
  115112. .UNINDENT
  115113. .UNINDENT
  115114. .TP
  115115. .B CacheClusterId
  115116. The node group (shard) identifier. This parameter is stored as a lowercase string.
  115117. .sp
  115118. Constraints:
  115119. .INDENT 7.0
  115120. .IP \(bu 2
  115121. A name must contain from 1 to 20 alphanumeric characters or hyphens.
  115122. .IP \(bu 2
  115123. The first character must be a letter.
  115124. .IP \(bu 2
  115125. A name cannot end with a hyphen or contain two consecutive hyphens.
  115126. .UNINDENT
  115127. .sp
  115128. \fBNOTE:\fP
  115129. .INDENT 7.0
  115130. .INDENT 3.5
  115131. In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs
  115132. not provided.
  115133. .UNINDENT
  115134. .UNINDENT
  115135. .TP
  115136. .B ReplicationGroupId
  115137. The ID of the replication group to which this cache cluster should belong. If this
  115138. parameter is specified, the cache cluster is added to the specified replication
  115139. group as a read replica; otherwise, the cache cluster is a standalone primary that
  115140. is not part of any replication group. If the specified replication group is
  115141. Multi\-AZ enabled and the Availability Zone is not specified, the cache cluster is
  115142. created in Availability Zones that provide the best spread of read replicas across
  115143. Availability Zones.
  115144. .TP
  115145. .B AZMode
  115146. Specifies whether the nodes in this Memcached cluster are created in a single
  115147. Availability Zone or created across multiple Availability Zones in the cluster\(aqs
  115148. region. If the AZMode and PreferredAvailabilityZones are not specified,
  115149. ElastiCache assumes single\-az mode.
  115150. .sp
  115151. \fBNOTE:\fP
  115152. .INDENT 7.0
  115153. .INDENT 3.5
  115154. This parameter is ONLY supported for Memcached cache clusters.
  115155. .UNINDENT
  115156. .UNINDENT
  115157. .TP
  115158. .B PreferredAvailabilityZone
  115159. The EC2 Availability Zone in which the cache cluster is created. All nodes
  115160. belonging to this Memcached cache cluster are placed in the preferred Availability
  115161. Zone. If you want to create your nodes across multiple Availability Zones, use
  115162. PreferredAvailabilityZones.
  115163. .sp
  115164. Default: System chosen Availability Zone.
  115165. .TP
  115166. .B PreferredAvailabilityZones
  115167. A list of the Availability Zones in which cache nodes are created. The order of
  115168. the zones in the list is not important. The number of Availability Zones listed
  115169. must equal the value of NumCacheNodes. If you want all the nodes in the same
  115170. Availability Zone, use PreferredAvailabilityZone instead, or repeat the
  115171. Availability Zone multiple times in the list.
  115172. .sp
  115173. Default: System chosen Availability Zones.
  115174. .sp
  115175. \fBNOTE:\fP
  115176. .INDENT 7.0
  115177. .INDENT 3.5
  115178. This option is ONLY supported on Memcached.
  115179. .sp
  115180. If you are creating your cache cluster in an Amazon VPC
  115181. (recommended) you can only locate nodes in Availability Zones that
  115182. are associated with the subnets in the selected subnet group.
  115183. .UNINDENT
  115184. .UNINDENT
  115185. .TP
  115186. .B NumCacheNodes
  115187. The initial (integer) number of cache nodes that the cache cluster has.
  115188. .sp
  115189. \fBNOTE:\fP
  115190. .INDENT 7.0
  115191. .INDENT 3.5
  115192. For clusters running Redis, this value must be 1.
  115193. .sp
  115194. For clusters running Memcached, this value must be between 1 and 20.
  115195. .UNINDENT
  115196. .UNINDENT
  115197. .TP
  115198. .B CacheNodeType
  115199. The compute and memory capacity of the nodes in the node group (shard).
  115200. Valid node types (and pricing for them) are exhaustively described at
  115201. \fI\%https://aws.amazon.com/elasticache/pricing/\fP
  115202. .sp
  115203. \fBNOTE:\fP
  115204. .INDENT 7.0
  115205. .INDENT 3.5
  115206. .INDENT 0.0
  115207. .INDENT 3.5
  115208. All T2 instances must be created in a VPC
  115209. .UNINDENT
  115210. .UNINDENT
  115211. .sp
  115212. Redis backup/restore is not supported for Redis (cluster mode
  115213. disabled) T1 and T2 instances. Backup/restore is supported on Redis
  115214. (cluster mode enabled) T2 instances.
  115215. .sp
  115216. Redis Append\-only files (AOF) functionality is not supported for T1
  115217. or T2 instances.
  115218. .UNINDENT
  115219. .UNINDENT
  115220. .TP
  115221. .B Engine
  115222. The name of the cache engine to be used for this cache cluster. Valid values for
  115223. this parameter are: memcached | redis
  115224. .TP
  115225. .B EngineVersion
  115226. The version number of the cache engine to be used for this cache cluster. To view
  115227. the supported cache engine versions, use the DescribeCacheEngineVersions operation.
  115228. .sp
  115229. \fBNOTE:\fP
  115230. .INDENT 7.0
  115231. .INDENT 3.5
  115232. You can upgrade to a newer engine version but you cannot downgrade
  115233. to an earlier engine version. If you want to use an earlier engine
  115234. version, you must delete the existing cache cluster or replication
  115235. group and create it anew with the earlier engine version.
  115236. .UNINDENT
  115237. .UNINDENT
  115238. .TP
  115239. .B CacheParameterGroupName
  115240. The name of the parameter group to associate with this cache cluster. If this
  115241. argument is omitted, the default parameter group for the specified engine is used.
  115242. You cannot use any parameter group which has cluster\-enabled=\(aqyes\(aq when creating
  115243. a cluster.
  115244. .TP
  115245. .B CacheSubnetGroupName
  115246. The name of the Cache Subnet Group to be used for the cache cluster. Use this
  115247. parameter ONLY when you are creating a cache cluster within a VPC.
  115248. .sp
  115249. \fBNOTE:\fP
  115250. .INDENT 7.0
  115251. .INDENT 3.5
  115252. If you\(aqre going to launch your cluster in an Amazon VPC, you need
  115253. to create a subnet group before you start creating a cluster.
  115254. .UNINDENT
  115255. .UNINDENT
  115256. .TP
  115257. .B CacheSecurityGroupNames
  115258. A list of Cache Security Group names to associate with this cache cluster. Use
  115259. this parameter ONLY when you are creating a cache cluster outside of a VPC.
  115260. .TP
  115261. .B SecurityGroupIds
  115262. One or more VPC security groups associated with the cache cluster. Use this
  115263. parameter ONLY when you are creating a cache cluster within a VPC.
  115264. .TP
  115265. .B Tags
  115266. A list of tags to be added to this resource. Note that due to shortcomings in the
  115267. AWS API for Elasticache, these can only be set during resource creation \- later
  115268. modification is not (currently) supported.
  115269. .TP
  115270. .B SnapshotArns
  115271. A single\-element string list containing an Amazon Resource Name (ARN) that
  115272. uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot
  115273. file is used to populate the node group (shard). The Amazon S3 object name in
  115274. the ARN cannot contain any commas.
  115275. .sp
  115276. \fBNOTE:\fP
  115277. .INDENT 7.0
  115278. .INDENT 3.5
  115279. This parameter is ONLY valid if the Engine parameter is redis.
  115280. .UNINDENT
  115281. .UNINDENT
  115282. .TP
  115283. .B SnapshotName
  115284. The name of a Redis snapshot from which to restore data into the new node group
  115285. (shard). The snapshot status changes to restoring while the new node group (shard)
  115286. is being created.
  115287. .sp
  115288. \fBNOTE:\fP
  115289. .INDENT 7.0
  115290. .INDENT 3.5
  115291. This parameter is ONLY valid if the Engine parameter is redis.
  115292. .UNINDENT
  115293. .UNINDENT
  115294. .TP
  115295. .B PreferredMaintenanceWindow
  115296. Specifies the weekly time range during which maintenance on the cache cluster is
  115297. permitted. It is specified as a range in the format ddd:hh24:mi\-ddd:hh24:mi
  115298. (24H Clock UTC). The minimum maintenance window is a 60 minute period.
  115299. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
  115300. .sp
  115301. Example: sun:23:00\-mon:01:30
  115302. .TP
  115303. .B Port
  115304. The port number on which each of the cache nodes accepts connections.
  115305. .sp
  115306. Default: 6379
  115307. .TP
  115308. .B NotificationTopicArn
  115309. The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS)
  115310. topic to which notifications are sent.
  115311. .sp
  115312. \fBNOTE:\fP
  115313. .INDENT 7.0
  115314. .INDENT 3.5
  115315. The Amazon SNS topic owner must be the same as the cache cluster
  115316. owner.
  115317. .UNINDENT
  115318. .UNINDENT
  115319. .TP
  115320. .B AutoMinorVersionUpgrade
  115321. This (boolean) parameter is currently disabled.
  115322. .TP
  115323. .B SnapshotRetentionLimit
  115324. The number of days for which ElastiCache retains automatic snapshots before
  115325. deleting them.
  115326. .sp
  115327. Default: 0 (i.e., automatic backups are disabled for this cache cluster).
  115328. .sp
  115329. \fBNOTE:\fP
  115330. .INDENT 7.0
  115331. .INDENT 3.5
  115332. This parameter is ONLY valid if the Engine parameter is redis.
  115333. .UNINDENT
  115334. .UNINDENT
  115335. .TP
  115336. .B SnapshotWindow
  115337. The daily time range (in UTC) during which ElastiCache begins taking a daily
  115338. snapshot of your node group (shard). If you do not specify this parameter,
  115339. ElastiCache automatically chooses an appropriate time range.
  115340. .sp
  115341. Example: 05:00\-09:00
  115342. .sp
  115343. \fBNOTE:\fP
  115344. .INDENT 7.0
  115345. .INDENT 3.5
  115346. This parameter is ONLY valid if the Engine parameter is redis.
  115347. .UNINDENT
  115348. .UNINDENT
  115349. .TP
  115350. .B AuthToken
  115351. The password used to access a password protected server.
  115352. .sp
  115353. Password constraints:
  115354. .INDENT 7.0
  115355. .IP \(bu 2
  115356. Must be only printable ASCII characters.
  115357. .IP \(bu 2
  115358. Must be at least 16 characters and no more than 128 characters in length.
  115359. .IP \(bu 2
  115360. Cannot contain any of the following characters: \(aq/\(aq, \(aq"\(aq, or "@".
  115361. .UNINDENT
  115362. .TP
  115363. .B CacheNodeIdsToRemove
  115364. A list of cache node IDs to be removed. A node ID is a numeric identifier (0001, 0002,
  115365. etc.). This parameter is only valid when NumCacheNodes is less than the existing number of
  115366. cache nodes. The number of cache node IDs supplied in this parameter must match the
  115367. difference between the existing number of cache nodes in the cluster or pending cache nodes,
  115368. whichever is greater, and the value of NumCacheNodes in the request.
  115369. .TP
  115370. .B NewAvailabilityZones
  115371. The list of Availability Zones where the new Memcached cache nodes are created.
  115372. This parameter is only valid when NumCacheNodes in the request is greater than the sum of
  115373. the number of active cache nodes and the number of cache nodes pending creation (which may
  115374. be zero). The number of Availability Zones supplied in this list must match the cache nodes
  115375. being added in this request.
  115376. Note: This option is only supported on Memcached clusters.
  115377. .TP
  115378. .B NotificationTopicStatus
  115379. The status of the SNS notification topic. Notifications are sent only if the status is active.
  115380. .sp
  115381. Valid values: active | inactive
  115382. .TP
  115383. .B region
  115384. Region to connect to.
  115385. .TP
  115386. .B key
  115387. Secret key to be used.
  115388. .TP
  115389. .B keyid
  115390. Access key to be used.
  115391. .TP
  115392. .B profile
  115393. A dict with region, key and keyid, or a pillar key (string) that
  115394. contains a dict with region, key and keyid.
  115395. .UNINDENT
  115396. .UNINDENT
  115397. .INDENT 0.0
  115398. .TP
  115399. .B salt.states.boto3_elasticache.cache_subnet_group_absent(name, region=None, key=None, keyid=None, profile=None, **args)
  115400. Ensure a given cache subnet group is deleted.
  115401. .INDENT 7.0
  115402. .TP
  115403. .B name
  115404. Name of the cache subnet group.
  115405. .TP
  115406. .B CacheSubnetGroupName
  115407. A name for the cache subnet group.
  115408. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115409. .TP
  115410. .B region
  115411. Region to connect to.
  115412. .TP
  115413. .B key
  115414. Secret key to be used.
  115415. .TP
  115416. .B keyid
  115417. Access key to be used.
  115418. .TP
  115419. .B profile
  115420. A dict with region, key and keyid, or a pillar key (string)
  115421. that contains a dict with region, key and keyid.
  115422. .UNINDENT
  115423. .UNINDENT
  115424. .INDENT 0.0
  115425. .TP
  115426. .B salt.states.boto3_elasticache.cache_subnet_group_present(name, subnets=None, region=None, key=None, keyid=None, profile=None, **args)
  115427. Ensure cache subnet group exists.
  115428. .INDENT 7.0
  115429. .TP
  115430. .B name
  115431. A name for the cache subnet group. This value is stored as a lowercase string.
  115432. Constraints: Must contain no more than 255 alphanumeric characters or hyphens.
  115433. .TP
  115434. .B subnets
  115435. A list of VPC subnets (IDs, Names, or a mix) for the cache subnet group.
  115436. .TP
  115437. .B CacheSubnetGroupName
  115438. A name for the cache subnet group. This value is stored as a lowercase string.
  115439. Constraints: Must contain no more than 255 alphanumeric characters or hyphens.
  115440. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115441. .TP
  115442. .B CacheSubnetGroupDescription
  115443. A description for the cache subnet group.
  115444. .TP
  115445. .B SubnetIds
  115446. A list of VPC subnet IDs for the cache subnet group. This is ADDITIVE with \(aqsubnets\(aq above.
  115447. .TP
  115448. .B region
  115449. Region to connect to.
  115450. .TP
  115451. .B key
  115452. Secret key to be used.
  115453. .TP
  115454. .B keyid
  115455. Access key to be used.
  115456. .TP
  115457. .B profile
  115458. A dict with region, key and keyid, or a pillar key (string) that
  115459. contains a dict with region, key and keyid.
  115460. .UNINDENT
  115461. .UNINDENT
  115462. .INDENT 0.0
  115463. .TP
  115464. .B salt.states.boto3_elasticache.replication_group_absent(name, wait=600, region=None, key=None, keyid=None, profile=None, **args)
  115465. Ensure a given replication group is deleted.
  115466. .INDENT 7.0
  115467. .TP
  115468. .B name
  115469. Name of the replication group.
  115470. .TP
  115471. .B wait
  115472. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115473. resource is in the desired state. Zero meaning to return success or failure immediately
  115474. of course. Note that waiting for the cluster to become available is generally the
  115475. better course, as failure to do so will often lead to subsequent failures when managing
  115476. dependent resources.
  115477. .TP
  115478. .B ReplicationGroupId
  115479. The replication group identifier.
  115480. Note: In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs not provided.
  115481. .TP
  115482. .B RetainPrimaryCluster
  115483. If set to true, all of the read replicas are deleted, but the primary node is retained.
  115484. .TP
  115485. .B FinalSnapshotIdentifier
  115486. The name of a final node group (shard) snapshot. ElastiCache creates the snapshot from
  115487. the primary node in the cluster, rather than one of the replicas; this is to ensure that
  115488. it captures the freshest data. After the final snapshot is taken, the replication group is
  115489. immediately deleted.
  115490. .TP
  115491. .B region
  115492. Region to connect to.
  115493. .TP
  115494. .B key
  115495. Secret key to be used.
  115496. .TP
  115497. .B keyid
  115498. Access key to be used.
  115499. .TP
  115500. .B profile
  115501. A dict with region, key and keyid, or a pillar key (string)
  115502. that contains a dict with region, key and keyid.
  115503. .UNINDENT
  115504. .UNINDENT
  115505. .INDENT 0.0
  115506. .TP
  115507. .B salt.states.boto3_elasticache.replication_group_present(name, wait=900, security_groups=None, region=None, key=None, keyid=None, profile=None, **args)
  115508. Ensure a replication group exists and is in the given state.
  115509. .INDENT 7.0
  115510. .TP
  115511. .B name
  115512. Name of replication group
  115513. .TP
  115514. .B wait
  115515. Integer describing how long, in seconds, to wait for confirmation from AWS that the
  115516. resource is in the desired state. Zero meaning to return success or failure immediately
  115517. of course. Note that waiting for the cluster to become available is generally the
  115518. better course, as failure to do so will often lead to subsequent failures when managing
  115519. dependent resources.
  115520. .TP
  115521. .B security_groups
  115522. One or more VPC security groups (names and/or IDs) associated with the cache cluster.
  115523. .sp
  115524. \fBNOTE:\fP
  115525. .INDENT 7.0
  115526. .INDENT 3.5
  115527. This is additive with any sec groups provided via the
  115528. SecurityGroupIds parameter below. Use this parameter ONLY when you
  115529. are creating a cluster in a VPC.
  115530. .UNINDENT
  115531. .UNINDENT
  115532. .TP
  115533. .B ReplicationGroupId
  115534. The replication group identifier. This parameter is stored as a lowercase string.
  115535. .sp
  115536. Constraints:
  115537. .INDENT 7.0
  115538. .IP \(bu 2
  115539. A name must contain from 1 to 20 alphanumeric characters or hyphens.
  115540. .IP \(bu 2
  115541. The first character must be a letter.
  115542. .IP \(bu 2
  115543. A name cannot end with a hyphen or contain two consecutive hyphens.
  115544. .UNINDENT
  115545. .sp
  115546. \fBNOTE:\fP
  115547. .INDENT 7.0
  115548. .INDENT 3.5
  115549. In general this parameter is not needed, as \(aqname\(aq is used if it\(aqs
  115550. not provided.
  115551. .UNINDENT
  115552. .UNINDENT
  115553. .TP
  115554. .B ReplicationGroupDescription
  115555. A user\-created description for the replication group.
  115556. .TP
  115557. .B PrimaryClusterId
  115558. The identifier of the cache cluster that serves as the primary for this replication group.
  115559. This cache cluster must already exist and have a status of available. This parameter is
  115560. not required if NumCacheClusters, NumNodeGroups, or ReplicasPerNodeGroup is specified.
  115561. .TP
  115562. .B AutomaticFailoverEnabled
  115563. Specifies whether a read\-only replica is automatically promoted to read/write primary if
  115564. the existing primary fails. If true, Multi\-AZ is enabled for this replication group. If
  115565. false, Multi\-AZ is disabled for this replication group.
  115566. .sp
  115567. Default: False
  115568. .sp
  115569. \fBNOTE:\fP
  115570. .INDENT 7.0
  115571. .INDENT 3.5
  115572. AutomaticFailoverEnabled must be enabled for Redis (cluster mode
  115573. enabled) replication groups.
  115574. .sp
  115575. ElastiCache Multi\-AZ replication groups is not supported on:
  115576. .INDENT 0.0
  115577. .IP \(bu 2
  115578. Redis versions earlier than 2.8.6.
  115579. .IP \(bu 2
  115580. Redis (cluster mode disabled): T1 and T2 node types.
  115581. .IP \(bu 2
  115582. Redis (cluster mode enabled): T2 node types.
  115583. .UNINDENT
  115584. .UNINDENT
  115585. .UNINDENT
  115586. .TP
  115587. .B NumCacheClusters
  115588. The number of clusters this replication group initially has. This parameter is not used
  115589. if there is more than one node group (shard). You should use ReplicasPerNodeGroup instead.
  115590. If Multi\-AZ is enabled , the value of this parameter must be at least 2. The maximum
  115591. permitted value for NumCacheClusters is 6 (primary plus 5 replicas).
  115592. .TP
  115593. .B PreferredCacheClusterAZs
  115594. A list of EC2 Availability Zones in which the replication group\(aqs cache clusters are
  115595. created. The order of the Availability Zones in the list is the order in which clusters
  115596. are allocated. The primary cluster is created in the first AZ in the list. This parameter
  115597. is not used if there is more than one node group (shard). You should use
  115598. NodeGroupConfiguration instead. The number of Availability Zones listed must equal the
  115599. value of NumCacheClusters.
  115600. .sp
  115601. Default: System chosen Availability Zones.
  115602. .sp
  115603. \fBNOTE:\fP
  115604. .INDENT 7.0
  115605. .INDENT 3.5
  115606. If you are creating your replication group in an Amazon VPC
  115607. (recommended), you can only locate cache clusters in Availability
  115608. Zones associated with the subnets in the selected subnet group.
  115609. .UNINDENT
  115610. .UNINDENT
  115611. .TP
  115612. .B NumNodeGroups
  115613. An optional parameter that specifies the number of node groups (shards)
  115614. for this Redis (cluster mode enabled) replication group. For Redis
  115615. (cluster mode disabled) either omit this parameter or set it to 1.
  115616. .sp
  115617. Default: 1
  115618. .TP
  115619. .B ReplicasPerNodeGroup
  115620. An optional parameter that specifies the number of replica nodes in
  115621. each node group (shard). Valid values are: 0 to 5
  115622. .TP
  115623. .B NodeGroupConfiguration
  115624. A list of node group (shard) configuration options. Each node group (shard) configuration
  115625. has the following: Slots, PrimaryAvailabilityZone, ReplicaAvailabilityZones, ReplicaCount.
  115626. If you\(aqre creating a Redis (cluster mode disabled) or a Redis (cluster mode enabled)
  115627. replication group, you can use this parameter to configure one node group (shard) or you
  115628. can omit this parameter. For fiddly details of the expected data layout of this param, see
  115629. \fI\%http://boto3.readthedocs.io/en/latest/reference/services/elasticache.html\fP?#ElastiCache.Client.create_replication_group
  115630. .TP
  115631. .B CacheNodeType
  115632. The compute and memory capacity of the nodes in the node group (shard).
  115633. See \fI\%https://aws.amazon.com/elasticache/pricing/\fP for current sizing, prices, and constraints.
  115634. .TP
  115635. .B Engine
  115636. The name of the cache engine to be used for the cache clusters in this replication group.
  115637. .TP
  115638. .B EngineVersion
  115639. The version number of the cache engine to be used for the cache clusters in this replication
  115640. group. To view the supported cache engine versions, use the DescribeCacheEngineVersions
  115641. operation.
  115642. .sp
  115643. \fBNOTE:\fP
  115644. .INDENT 7.0
  115645. .INDENT 3.5
  115646. You can upgrade to a newer engine version but you cannot downgrade
  115647. to an earlier engine version. If you want to use an earlier engine
  115648. version, you must delete the existing cache cluster or replication
  115649. group and create it anew with the earlier engine version.
  115650. .UNINDENT
  115651. .UNINDENT
  115652. .TP
  115653. .B CacheParameterGroupName
  115654. The name of the parameter group to associate with this replication group. If this argument
  115655. is omitted, the default cache parameter group for the specified engine is used.
  115656. .sp
  115657. \fBNOTE:\fP
  115658. .INDENT 7.0
  115659. .INDENT 3.5
  115660. If you are running Redis version 3.2.4 or later, only one node
  115661. group (shard), and want to use a default parameter group, we
  115662. recommend that you specify the parameter group by name.
  115663. .sp
  115664. To create a Redis (cluster mode disabled) replication group, use
  115665. CacheParameterGroupName=default.redis3.2
  115666. .sp
  115667. To create a Redis (cluster mode enabled) replication group, use
  115668. CacheParameterGroupName=default.redis3.2.cluster.on
  115669. .UNINDENT
  115670. .UNINDENT
  115671. .TP
  115672. .B CacheSubnetGroupName
  115673. The name of the cache subnet group to be used for the replication group.
  115674. .sp
  115675. \fBNOTE:\fP
  115676. .INDENT 7.0
  115677. .INDENT 3.5
  115678. If you\(aqre going to launch your cluster in an Amazon VPC, you need
  115679. to create a s group before you start creating a cluster. For more
  115680. information, see Subnets and Subnet Groups.
  115681. .UNINDENT
  115682. .UNINDENT
  115683. .TP
  115684. .B CacheSecurityGroupNames
  115685. A list of cache security group names to associate with this replication group.
  115686. .TP
  115687. .B SecurityGroupIds
  115688. One or more Amazon VPC security groups associated with this replication group. Use this
  115689. parameter only when you are creating a replication group in an VPC.
  115690. .TP
  115691. .B Tags
  115692. A list of tags to be added to this resource. Note that due to shortcomings in the
  115693. AWS API for Elasticache, these can only be set during resource creation \- later
  115694. modification is not (currently) supported.
  115695. .TP
  115696. .B SnapshotArns
  115697. A list of ARNs that uniquely identify the Redis RDB snapshot files stored in Amazon S3.
  115698. These snapshot files are used to populate the replication group. The Amazon S3 object name
  115699. in the ARN cannot contain any commas. The list must match the number of node groups (shards)
  115700. in the replication group, which means you cannot repartition.
  115701. .sp
  115702. \fBNOTE:\fP
  115703. .INDENT 7.0
  115704. .INDENT 3.5
  115705. This parameter is only valid if the Engine parameter is redis.
  115706. .UNINDENT
  115707. .UNINDENT
  115708. .TP
  115709. .B SnapshotName
  115710. The name of a snapshot from which to restore data into the new replication group. The
  115711. snapshot status changes to restoring while the new replication group is being created.
  115712. Note: This parameter is only valid if the Engine parameter is redis.
  115713. .TP
  115714. .B PreferredMaintenanceWindow
  115715. Specifies the weekly time range during which maintenance on the cluster is performed. It is
  115716. specified as a range in the format ddd:hh24:mi\-ddd:hh24:mi (24H Clock UTC). The minimum
  115717. maintenance window is a 60 minute period.
  115718. Valid values for ddd are: sun, mon, tue, wed, thu, fri, sat
  115719. .sp
  115720. Example: sun:23:00\-mon:01:30
  115721. .TP
  115722. .B Port
  115723. The port number on which each member of the replication group accepts connections.
  115724. .TP
  115725. .B NotificationTopicArn
  115726. The ARN of an SNS topic to which notifications are sent.
  115727. .sp
  115728. \fBNOTE:\fP
  115729. .INDENT 7.0
  115730. .INDENT 3.5
  115731. The SNS topic owner must be the same as the cache cluster owner.
  115732. .UNINDENT
  115733. .UNINDENT
  115734. .TP
  115735. .B AutoMinorVersionUpgrade
  115736. This parameter is currently disabled.
  115737. .TP
  115738. .B SnapshotRetentionLimit
  115739. The number of days for which ElastiCache will retain automatic snapshots before deleting
  115740. them.
  115741. .sp
  115742. Default: 0 (that is, automatic backups are disabled for this cache cluster).
  115743. .sp
  115744. \fBNOTE:\fP
  115745. .INDENT 7.0
  115746. .INDENT 3.5
  115747. This parameter is only valid if the Engine parameter is redis.
  115748. .UNINDENT
  115749. .UNINDENT
  115750. .TP
  115751. .B SnapshotWindow
  115752. The daily time range (in UTC) during which ElastiCache begins taking a daily snapshot of
  115753. your node group (shard). If you do not specify this parameter, ElastiCache automatically
  115754. chooses an appropriate time range.
  115755. .sp
  115756. Example: 05:00\-09:00
  115757. .sp
  115758. \fBNOTE:\fP
  115759. .INDENT 7.0
  115760. .INDENT 3.5
  115761. This parameter is only valid if the Engine parameter is redis.
  115762. .UNINDENT
  115763. .UNINDENT
  115764. .TP
  115765. .B AuthToken
  115766. The password used to access a password protected server.
  115767. Password constraints:
  115768. .INDENT 7.0
  115769. .IP \(bu 2
  115770. Must be only printable ASCII characters.
  115771. .IP \(bu 2
  115772. Must be at least 16 characters and no more than 128 characters in length.
  115773. .IP \(bu 2
  115774. Cannot contain any of the following characters: \(aq/\(aq, \(aq"\(aq, or "@".
  115775. .UNINDENT
  115776. .TP
  115777. .B SnapshottingClusterId
  115778. The cache cluster ID that is used as the daily snapshot source for the replication group.
  115779. .TP
  115780. .B NotificationTopicStatus
  115781. The status of the SNS notification topic. Notifications are sent only if the status is active.
  115782. Valid values: active | inactive
  115783. .TP
  115784. .B region
  115785. Region to connect to.
  115786. .TP
  115787. .B key
  115788. Secret key to be used.
  115789. .TP
  115790. .B keyid
  115791. Access key to be used.
  115792. .TP
  115793. .B profile
  115794. A dict with region, key and keyid, or a pillar key (string)
  115795. that contains a dict with region, key and keyid.
  115796. .UNINDENT
  115797. .UNINDENT
  115798. .SS salt.states.boto_cloudfront
  115799. .sp
  115800. Manage CloudFront distributions
  115801. .sp
  115802. New in version 2018.3.0.
  115803. .sp
  115804. Create, update and destroy CloudFront distributions.
  115805. .sp
  115806. This module accepts explicit AWS credentials but can also utilize
  115807. IAM roles assigned to the instance through Instance Profiles.
  115808. Dynamic credentials are then automatically obtained from AWS API
  115809. and no further configuration is necessary.
  115810. More information available \fI\%here\fP\&.
  115811. .sp
  115812. If IAM roles are not used you need to specify them,
  115813. either in a pillar file or in the minion\(aqs config file:
  115814. .INDENT 0.0
  115815. .INDENT 3.5
  115816. .sp
  115817. .nf
  115818. .ft C
  115819. cloudfront.keyid: GKTADJGHEIQSXMKKRBJ08H
  115820. cloudfront.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115821. .ft P
  115822. .fi
  115823. .UNINDENT
  115824. .UNINDENT
  115825. .sp
  115826. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP, and \fBregion\fP via a profile,
  115827. either passed in as a dict, or a string to pull from pillars or minion config:
  115828. .INDENT 0.0
  115829. .INDENT 3.5
  115830. .sp
  115831. .nf
  115832. .ft C
  115833. myprofile:
  115834. keyid: GKTADJGHEIQSXMKKRBJ08H
  115835. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115836. region: us\-east\-1
  115837. .ft P
  115838. .fi
  115839. .UNINDENT
  115840. .UNINDENT
  115841. .INDENT 0.0
  115842. .INDENT 3.5
  115843. .sp
  115844. .nf
  115845. .ft C
  115846. aws:
  115847. region:
  115848. us\-east\-1:
  115849. profile:
  115850. keyid: GKTADJGHEIQSXMKKRBJ08H
  115851. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115852. region: us\-east\-1
  115853. .ft P
  115854. .fi
  115855. .UNINDENT
  115856. .UNINDENT
  115857. .INDENT 0.0
  115858. .TP
  115859. .B depends
  115860. boto3
  115861. .UNINDENT
  115862. .INDENT 0.0
  115863. .TP
  115864. .B salt.states.boto_cloudfront.present(name, config, tags, region=None, key=None, keyid=None, profile=None)
  115865. Ensure the CloudFront distribution is present.
  115866. .INDENT 7.0
  115867. .TP
  115868. .B name (string)
  115869. Name of the CloudFront distribution
  115870. .TP
  115871. .B config (dict)
  115872. Configuration for the distribution
  115873. .TP
  115874. .B tags (dict)
  115875. Tags to associate with the distribution
  115876. .TP
  115877. .B region (string)
  115878. Region to connect to
  115879. .TP
  115880. .B key (string)
  115881. Secret key to use
  115882. .TP
  115883. .B keyid (string)
  115884. Access key to use
  115885. .TP
  115886. .B profile (dict or string)
  115887. A dict with region, key, and keyid,
  115888. or a pillar key (string) that contains such a dict.
  115889. .UNINDENT
  115890. .sp
  115891. Example:
  115892. .INDENT 7.0
  115893. .INDENT 3.5
  115894. .sp
  115895. .nf
  115896. .ft C
  115897. Manage my_distribution CloudFront distribution:
  115898. boto_cloudfront.present:
  115899. \- name: my_distribution
  115900. \- config:
  115901. Comment: \(aqpartial config shown, most parameters elided\(aq
  115902. Enabled: True
  115903. \- tags:
  115904. testing_key: testing_value
  115905. .ft P
  115906. .fi
  115907. .UNINDENT
  115908. .UNINDENT
  115909. .UNINDENT
  115910. .SS salt.states.boto_cognitoidentity module
  115911. .SS Manage CognitoIdentity Functions
  115912. .sp
  115913. New in version 2016.11.0.
  115914. .sp
  115915. Create and destroy CognitoIdentity identity pools. Be aware that this interacts with
  115916. Amazon\(aqs services, and so may incur charges.
  115917. .sp
  115918. This module uses \fBboto3\fP, which can be installed via package, or pip.
  115919. .sp
  115920. This module accepts explicit vpc credentials but can also utilize
  115921. IAM roles assigned to the instance through Instance Profiles. Dynamic
  115922. credentials are then automatically obtained from AWS API and no further
  115923. configuration is necessary. More information available \fI\%here\fP\&.
  115924. .sp
  115925. If IAM roles are not used you need to specify them either in a pillar file or
  115926. in the minion\(aqs config file:
  115927. .INDENT 0.0
  115928. .INDENT 3.5
  115929. .sp
  115930. .nf
  115931. .ft C
  115932. vpc.keyid: GKTADJGHEIQSXMKKRBJ08H
  115933. vpc.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115934. .ft P
  115935. .fi
  115936. .UNINDENT
  115937. .UNINDENT
  115938. .sp
  115939. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile,
  115940. either passed in as a dict, or as a string to pull from pillars or minion
  115941. config:
  115942. .INDENT 0.0
  115943. .INDENT 3.5
  115944. .sp
  115945. .nf
  115946. .ft C
  115947. myprofile:
  115948. keyid: GKTADJGHEIQSXMKKRBJ08H
  115949. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115950. region: us\-east\-1
  115951. .ft P
  115952. .fi
  115953. .UNINDENT
  115954. .UNINDENT
  115955. .INDENT 0.0
  115956. .INDENT 3.5
  115957. .sp
  115958. .nf
  115959. .ft C
  115960. Ensure function exists:
  115961. boto_cognitoidentity.pool_present:
  115962. \- PoolName: my_identity_pool
  115963. \- region: us\-east\-1
  115964. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  115965. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  115966. .ft P
  115967. .fi
  115968. .UNINDENT
  115969. .UNINDENT
  115970. .INDENT 0.0
  115971. .TP
  115972. .B salt.states.boto_cognitoidentity.pool_absent(name, IdentityPoolName, RemoveAllMatched=False, region=None, key=None, keyid=None, profile=None)
  115973. Ensure cognito identity pool with passed properties is absent.
  115974. .INDENT 7.0
  115975. .TP
  115976. .B name
  115977. The name of the state definition.
  115978. .TP
  115979. .B IdentityPoolName
  115980. Name of the Cognito Identity Pool. Please note that this may
  115981. match multiple pools with the same given name, in which case,
  115982. all will be removed.
  115983. .TP
  115984. .B RemoveAllMatched
  115985. If True, all identity pools with the matching IdentityPoolName
  115986. will be removed. If False and there are more than one identity pool
  115987. with the matching IdentityPoolName, no action will be taken. If False
  115988. and there is only one identity pool with the matching IdentityPoolName,
  115989. the identity pool will be removed.
  115990. .TP
  115991. .B region
  115992. Region to connect to.
  115993. .TP
  115994. .B key
  115995. Secret key to be used.
  115996. .TP
  115997. .B keyid
  115998. Access key to be used.
  115999. .TP
  116000. .B profile
  116001. A dict with region, key and keyid, or a pillar key (string) that
  116002. contains a dict with region, key and keyid.
  116003. .UNINDENT
  116004. .UNINDENT
  116005. .INDENT 0.0
  116006. .TP
  116007. .B salt.states.boto_cognitoidentity.pool_present(name, IdentityPoolName, AuthenticatedRole, AllowUnauthenticatedIdentities=False, UnauthenticatedRole=None, SupportedLoginProviders=None, DeveloperProviderName=None, OpenIdConnectProviderARNs=None, region=None, key=None, keyid=None, profile=None)
  116008. Ensure Cognito Identity Pool exists.
  116009. .INDENT 7.0
  116010. .TP
  116011. .B name
  116012. The name of the state definition
  116013. .TP
  116014. .B IdentityPoolName
  116015. Name of the Cognito Identity Pool
  116016. .TP
  116017. .B AuthenticatedRole
  116018. An IAM role name or ARN that will be associated with temporary AWS
  116019. credentials for an authenticated cognito identity.
  116020. .TP
  116021. .B AllowUnauthenticatedIdentities
  116022. Whether to allow anonymous user identities
  116023. .TP
  116024. .B UnauthenticatedRole
  116025. An IAM role name or ARN that will be associated with anonymous
  116026. user identities
  116027. .TP
  116028. .B SupportedLoginProviders
  116029. A dictionary or pillar that contains key:value pairs mapping provider
  116030. names to provider app IDs.
  116031. .TP
  116032. .B DeveloperProviderName
  116033. A string which is the domain by which Cognito will refer to your users.
  116034. This name acts as a placeholder that allows your backend and the Cognito
  116035. service to communicate about the developer provider. Once you have set a
  116036. developer provider name, you cannot change it. Please take care in setting
  116037. this parameter.
  116038. .TP
  116039. .B OpenIdConnectProviderARNs
  116040. A list or pillar name that contains a list of OpenID Connect provider ARNs.
  116041. .TP
  116042. .B region
  116043. Region to connect to.
  116044. .TP
  116045. .B key
  116046. Secret key to be used.
  116047. .TP
  116048. .B keyid
  116049. Access key to be used.
  116050. .TP
  116051. .B profile
  116052. A dict with region, key and keyid, or a pillar key (string) that
  116053. contains a dict with region, key and keyid.
  116054. .UNINDENT
  116055. .UNINDENT
  116056. .SS salt.states.boto_elasticache
  116057. .SS Manage Elasticache
  116058. .sp
  116059. New in version 2014.7.0.
  116060. .sp
  116061. Create, destroy and update Elasticache clusters. Be aware that this interacts
  116062. with Amazon\(aqs services, and so may incur charges.
  116063. .sp
  116064. Note: This module currently only supports creation and deletion of
  116065. elasticache resources and will not modify clusters when their configuration
  116066. changes in your state files.
  116067. .sp
  116068. This module uses \fBboto\fP, which can be installed via package, or pip.
  116069. .sp
  116070. This module accepts explicit elasticache credentials but can also utilize
  116071. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116072. credentials are then automatically obtained from AWS API and no further
  116073. configuration is necessary. More information available \fI\%here\fP\&.
  116074. .sp
  116075. If IAM roles are not used you need to specify them either in a pillar file or
  116076. in the minion\(aqs config file:
  116077. .INDENT 0.0
  116078. .INDENT 3.5
  116079. .sp
  116080. .nf
  116081. .ft C
  116082. elasticache.keyid: GKTADJGHEIQSXMKKRBJ08H
  116083. elasticache.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116084. .ft P
  116085. .fi
  116086. .UNINDENT
  116087. .UNINDENT
  116088. .sp
  116089. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116090. passed in as a dict, or as a string to pull from pillars or minion config:
  116091. .INDENT 0.0
  116092. .INDENT 3.5
  116093. .sp
  116094. .nf
  116095. .ft C
  116096. myprofile:
  116097. keyid: GKTADJGHEIQSXMKKRBJ08H
  116098. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116099. region: us\-east\-1
  116100. .ft P
  116101. .fi
  116102. .UNINDENT
  116103. .UNINDENT
  116104. .INDENT 0.0
  116105. .INDENT 3.5
  116106. .sp
  116107. .nf
  116108. .ft C
  116109. Ensure myelasticache exists:
  116110. boto_elasticache.present:
  116111. \- name: myelasticache
  116112. \- engine: redis
  116113. \- cache_node_type: cache.t1.micro
  116114. \- num_cache_nodes: 1
  116115. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116116. \- region: us\-east\-1
  116117. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116118. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116119. # Using a profile from pillars
  116120. Ensure myelasticache exists:
  116121. boto_elasticache.present:
  116122. \- name: myelasticache
  116123. \- engine: redis
  116124. \- cache_node_type: cache.t1.micro
  116125. \- num_cache_nodes: 1
  116126. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116127. \- region: us\-east\-1
  116128. \- profile: myprofile
  116129. # Passing in a profile
  116130. Ensure myelasticache exists:
  116131. boto_elasticache.present:
  116132. \- name: myelasticache
  116133. \- engine: redis
  116134. \- cache_node_type: cache.t1.micro
  116135. \- num_cache_nodes: 1
  116136. \- notification_topic_arn: arn:aws:sns:us\-east\-1:879879:my\-sns\-topic
  116137. \- region: us\-east\-1
  116138. \- profile:
  116139. keyid: GKTADJGHEIQSXMKKRBJ08H
  116140. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116141. .ft P
  116142. .fi
  116143. .UNINDENT
  116144. .UNINDENT
  116145. .INDENT 0.0
  116146. .TP
  116147. .B salt.states.boto_elasticache.absent(name, wait=True, region=None, key=None, keyid=None, profile=None)
  116148. Ensure the named elasticache cluster is deleted.
  116149. .INDENT 7.0
  116150. .TP
  116151. .B name
  116152. Name of the cache cluster.
  116153. .TP
  116154. .B wait
  116155. Boolean. Wait for confirmation from boto that the cluster is in the
  116156. deleting state.
  116157. .TP
  116158. .B region
  116159. Region to connect to.
  116160. .TP
  116161. .B key
  116162. Secret key to be used.
  116163. .TP
  116164. .B keyid
  116165. Access key to be used.
  116166. .TP
  116167. .B profile
  116168. A dict with region, key and keyid, or a pillar key (string)
  116169. that contains a dict with region, key and keyid.
  116170. .UNINDENT
  116171. .UNINDENT
  116172. .INDENT 0.0
  116173. .TP
  116174. .B salt.states.boto_elasticache.cache_cluster_absent(*args, **kwargs)
  116175. .UNINDENT
  116176. .INDENT 0.0
  116177. .TP
  116178. .B salt.states.boto_elasticache.cache_cluster_present(*args, **kwargs)
  116179. .UNINDENT
  116180. .INDENT 0.0
  116181. .TP
  116182. .B salt.states.boto_elasticache.creategroup(name, primary_cluster_id, replication_group_description, wait=None, region=None, key=None, keyid=None, profile=None)
  116183. Ensure the a replication group is create.
  116184. .INDENT 7.0
  116185. .TP
  116186. .B name
  116187. Name of replication group
  116188. .TP
  116189. .B wait
  116190. Waits for the group to be available
  116191. .TP
  116192. .B primary_cluster_id
  116193. Name of the master cache node
  116194. .TP
  116195. .B replication_group_description
  116196. Description for the group
  116197. .TP
  116198. .B region
  116199. Region to connect to.
  116200. .TP
  116201. .B key
  116202. Secret key to be used.
  116203. .TP
  116204. .B keyid
  116205. Access key to be used.
  116206. .TP
  116207. .B profile
  116208. A dict with region, key and keyid, or a pillar key (string)
  116209. that contains a dict with region, key and keyid.
  116210. .UNINDENT
  116211. .UNINDENT
  116212. .INDENT 0.0
  116213. .TP
  116214. .B salt.states.boto_elasticache.present(name, engine=None, cache_node_type=None, num_cache_nodes=None, preferred_availability_zone=None, port=None, cache_parameter_group_name=None, cache_security_group_names=None, replication_group_id=None, auto_minor_version_upgrade=True, security_group_ids=None, cache_subnet_group_name=None, engine_version=None, notification_topic_arn=None, preferred_maintenance_window=None, wait=None, region=None, key=None, keyid=None, profile=None)
  116215. Ensure the cache cluster exists.
  116216. .INDENT 7.0
  116217. .TP
  116218. .B name
  116219. Name of the cache cluster (cache cluster id).
  116220. .TP
  116221. .B engine
  116222. The name of the cache engine to be used for this cache cluster. Valid
  116223. values are memcached or redis.
  116224. .TP
  116225. .B cache_node_type
  116226. The compute and memory capacity of the nodes in the cache cluster.
  116227. cache.t1.micro, cache.m1.small, etc. See: \fI\%https://boto.readthedocs.io/en/latest/ref/elasticache.html#boto.elasticache.layer1.ElastiCacheConnection.create_cache_cluster\fP
  116228. .TP
  116229. .B num_cache_nodes
  116230. The number of cache nodes that the cache cluster will have.
  116231. .TP
  116232. .B preferred_availability_zone
  116233. The EC2 Availability Zone in which the cache cluster will be created.
  116234. All cache nodes belonging to a cache cluster are placed in the
  116235. preferred availability zone.
  116236. .TP
  116237. .B port
  116238. The port number on which each of the cache nodes will accept
  116239. connections.
  116240. .TP
  116241. .B cache_parameter_group_name
  116242. The name of the cache parameter group to associate with this cache
  116243. cluster. If this argument is omitted, the default cache parameter group
  116244. for the specified engine will be used.
  116245. .TP
  116246. .B cache_security_group_names
  116247. A list of cache security group names to associate with this cache
  116248. cluster. Use this parameter only when you are creating a cluster
  116249. outside of a VPC.
  116250. .TP
  116251. .B replication_group_id
  116252. The replication group to which this cache cluster should belong. If
  116253. this parameter is specified, the cache cluster will be added to the
  116254. specified replication group as a read replica; otherwise, the cache
  116255. cluster will be a standalone primary that is not part of any
  116256. replication group.
  116257. .TP
  116258. .B auto_minor_version_upgrade
  116259. Determines whether minor engine upgrades will be applied automatically
  116260. to the cache cluster during the maintenance window. A value of True
  116261. allows these upgrades to occur; False disables automatic upgrades.
  116262. .TP
  116263. .B security_group_ids
  116264. One or more VPC security groups associated with the cache cluster. Use
  116265. this parameter only when you are creating a cluster in a VPC.
  116266. .TP
  116267. .B cache_subnet_group_name
  116268. The name of the cache subnet group to be used for the cache cluster.
  116269. Use this parameter only when you are creating a cluster in a VPC.
  116270. .TP
  116271. .B engine_version
  116272. The version number of the cache engine to be used for this cluster.
  116273. .TP
  116274. .B notification_topic_arn
  116275. The Amazon Resource Name (ARN) of the Amazon Simple Notification
  116276. Service (SNS) topic to which notifications will be sent. The Amazon SNS
  116277. topic owner must be the same as the cache cluster owner.
  116278. .TP
  116279. .B preferred_maintenance_window
  116280. The weekly time range (in UTC) during which system maintenance can
  116281. occur. Example: sun:05:00\-sun:09:00
  116282. .TP
  116283. .B wait
  116284. Boolean. Wait for confirmation from boto that the cluster is in the
  116285. available state.
  116286. .TP
  116287. .B region
  116288. Region to connect to.
  116289. .TP
  116290. .B key
  116291. Secret key to be used.
  116292. .TP
  116293. .B keyid
  116294. Access key to be used.
  116295. .TP
  116296. .B profile
  116297. A dict with region, key and keyid, or a pillar key (string)
  116298. that contains a dict with region, key and keyid.
  116299. .UNINDENT
  116300. .UNINDENT
  116301. .INDENT 0.0
  116302. .TP
  116303. .B salt.states.boto_elasticache.replication_group_absent(name, tags=None, region=None, key=None, keyid=None, profile=None)
  116304. .UNINDENT
  116305. .INDENT 0.0
  116306. .TP
  116307. .B salt.states.boto_elasticache.replication_group_present(*args, **kwargs)
  116308. .UNINDENT
  116309. .INDENT 0.0
  116310. .TP
  116311. .B salt.states.boto_elasticache.subnet_group_absent(name, tags=None, region=None, key=None, keyid=None, profile=None)
  116312. .UNINDENT
  116313. .INDENT 0.0
  116314. .TP
  116315. .B salt.states.boto_elasticache.subnet_group_present(name, subnet_ids=None, subnet_names=None, description=None, tags=None, region=None, key=None, keyid=None, profile=None)
  116316. Ensure ElastiCache subnet group exists.
  116317. .sp
  116318. New in version 2015.8.0.
  116319. .INDENT 7.0
  116320. .TP
  116321. .B name
  116322. The name for the ElastiCache subnet group. This value is stored as a lowercase string.
  116323. .TP
  116324. .B subnet_ids
  116325. A list of VPC subnet IDs for the cache subnet group. Exclusive with subnet_names.
  116326. .TP
  116327. .B subnet_names
  116328. A list of VPC subnet names for the cache subnet group. Exclusive with subnet_ids.
  116329. .TP
  116330. .B description
  116331. Subnet group description.
  116332. .TP
  116333. .B tags
  116334. A list of tags.
  116335. .TP
  116336. .B region
  116337. Region to connect to.
  116338. .TP
  116339. .B key
  116340. Secret key to be used.
  116341. .TP
  116342. .B keyid
  116343. Access key to be used.
  116344. .TP
  116345. .B profile
  116346. A dict with region, key and keyid, or a pillar key (string) that
  116347. contains a dict with region, key and keyid.
  116348. .UNINDENT
  116349. .UNINDENT
  116350. .SS salt.states.boto_elbv2 module
  116351. .sp
  116352. Manage AWS Application Load Balancer
  116353. .sp
  116354. New in version 2017.7.0.
  116355. .sp
  116356. Add and remove targets from an ALB target group.
  116357. .sp
  116358. This module uses \fBboto3\fP, which can be installed via package, or pip.
  116359. .sp
  116360. This module accepts explicit alb credentials but can also utilize
  116361. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116362. credentials are then automatically obtained from AWS API and no further
  116363. configuration is necessary. More information available \fI\%here\fP\&.
  116364. .sp
  116365. If IAM roles are not used you need to specify them either in a pillar file or
  116366. in the minion\(aqs config file:
  116367. .INDENT 0.0
  116368. .INDENT 3.5
  116369. .sp
  116370. .nf
  116371. .ft C
  116372. elbv2.keyid: GKTADJGHEIQSXMKKRBJ08H
  116373. elbv2.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116374. elbv2.region: us\-west\-2
  116375. .ft P
  116376. .fi
  116377. .UNINDENT
  116378. .UNINDENT
  116379. .sp
  116380. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116381. passed in as a dict, or as a string to pull from pillars or minion config:
  116382. .INDENT 0.0
  116383. .INDENT 3.5
  116384. .sp
  116385. .nf
  116386. .ft C
  116387. myprofile:
  116388. keyid: GKTADJGHEIQSXMKKRBJ08H
  116389. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116390. region: us\-east\-1
  116391. .ft P
  116392. .fi
  116393. .UNINDENT
  116394. .UNINDENT
  116395. .INDENT 0.0
  116396. .TP
  116397. .B salt.states.boto_elbv2.create_target_group(name, protocol, port, vpc_id, region=None, key=None, keyid=None, profile=None, health_check_protocol=u\(aqHTTP\(aq, health_check_port=u\(aqtraffic\-port\(aq, health_check_path=u\(aq/\(aq, health_check_interval_seconds=30, health_check_timeout_seconds=5, healthy_threshold_count=5, unhealthy_threshold_count=2, **kwargs)
  116398. New in version 2017.11.0.
  116399. .sp
  116400. Create target group if not present.
  116401. .INDENT 7.0
  116402. .TP
  116403. .B name
  116404. (string) \- The name of the target group.
  116405. .TP
  116406. .B protocol
  116407. (string) \- The protocol to use for routing traffic to the targets
  116408. .TP
  116409. .B port
  116410. (int) \- The port on which the targets receive traffic. This port is used unless
  116411. you specify a port override when registering the traffic.
  116412. .TP
  116413. .B vpc_id
  116414. (string) \- The identifier of the virtual private cloud (VPC).
  116415. .TP
  116416. .B health_check_protocol
  116417. (string) \- The protocol the load balancer uses when performing health check on
  116418. targets. The default is the HTTP protocol.
  116419. .TP
  116420. .B health_check_port
  116421. (string) \- The port the load balancer uses when performing health checks on
  116422. targets. The default is \(aqtraffic\-port\(aq, which indicates the port on which each
  116423. target receives traffic from the load balancer.
  116424. .TP
  116425. .B health_check_path
  116426. (string) \- The ping path that is the destination on the targets for health
  116427. checks. The default is /.
  116428. .TP
  116429. .B health_check_interval_seconds
  116430. (integer) \- The approximate amount of time, in seconds, between health checks
  116431. of an individual target. The default is 30 seconds.
  116432. .TP
  116433. .B health_check_timeout_seconds
  116434. (integer) \- The amount of time, in seconds, during which no response from a
  116435. target means a failed health check. The default is 5 seconds.
  116436. .TP
  116437. .B healthy_threshold_count
  116438. (integer) \- The number of consecutive health checks successes required before
  116439. considering an unhealthy target healthy. The default is 5.
  116440. .TP
  116441. .B unhealthy_threshold_count
  116442. (integer) \- The number of consecutive health check failures required before
  116443. considering a target unhealthy. The default is 2.
  116444. .TP
  116445. .B returns
  116446. (bool) \- True on success, False on failure.
  116447. .UNINDENT
  116448. .sp
  116449. CLI example:
  116450. .. code\-block:: yaml
  116451. .INDENT 7.0
  116452. .INDENT 3.5
  116453. .INDENT 0.0
  116454. .TP
  116455. .B create\-target:
  116456. .INDENT 7.0
  116457. .TP
  116458. .B boto_elb2.create_targets_group:
  116459. .INDENT 7.0
  116460. .IP \(bu 2
  116461. name: myALB
  116462. .IP \(bu 2
  116463. protocol: https
  116464. .IP \(bu 2
  116465. port: 443
  116466. .IP \(bu 2
  116467. vpc_id: myVPC
  116468. .UNINDENT
  116469. .UNINDENT
  116470. .UNINDENT
  116471. .UNINDENT
  116472. .UNINDENT
  116473. .UNINDENT
  116474. .INDENT 0.0
  116475. .TP
  116476. .B salt.states.boto_elbv2.delete_target_group(name, region=None, key=None, keyid=None, profile=None)
  116477. Delete target group.
  116478. .INDENT 7.0
  116479. .TP
  116480. .B name
  116481. (string) \- The Amazon Resource Name (ARN) of the resource.
  116482. .TP
  116483. .B returns
  116484. (bool) \- True on success, False on failure.
  116485. .UNINDENT
  116486. .sp
  116487. CLI example:
  116488. .INDENT 7.0
  116489. .INDENT 3.5
  116490. .sp
  116491. .nf
  116492. .ft C
  116493. check\-target:
  116494. boto_elb2.delete_targets_group:
  116495. \- name: myALB
  116496. \- protocol: https
  116497. \- port: 443
  116498. \- vpc_id: myVPC
  116499. .ft P
  116500. .fi
  116501. .UNINDENT
  116502. .UNINDENT
  116503. .UNINDENT
  116504. .INDENT 0.0
  116505. .TP
  116506. .B salt.states.boto_elbv2.targets_deregistered(name, targets, region=None, key=None, keyid=None, profile=None, **kwargs)
  116507. Remove targets to an Application Load Balancer target group.
  116508. .INDENT 7.0
  116509. .TP
  116510. .B name
  116511. The ARN of the Application Load Balancer Target Group to remove targets from.
  116512. .TP
  116513. .B targets
  116514. A list of target IDs or a string of a single target registered to the target group to be removed
  116515. .UNINDENT
  116516. .sp
  116517. New in version Unknown.
  116518. .INDENT 7.0
  116519. .INDENT 3.5
  116520. .sp
  116521. .nf
  116522. .ft C
  116523. remove\-targets:
  116524. boto_elb.targets_deregistered:
  116525. \- name: arn:myloadbalancer
  116526. \- targets:
  116527. \- instance\-id1
  116528. \- instance\-id2
  116529. .ft P
  116530. .fi
  116531. .UNINDENT
  116532. .UNINDENT
  116533. .UNINDENT
  116534. .INDENT 0.0
  116535. .TP
  116536. .B salt.states.boto_elbv2.targets_registered(name, targets, region=None, key=None, keyid=None, profile=None, **kwargs)
  116537. New in version 2017.7.0.
  116538. .sp
  116539. Add targets to an Application Load Balancer target group. This state will not remove targets.
  116540. .INDENT 7.0
  116541. .TP
  116542. .B name
  116543. The ARN of the Application Load Balancer Target Group to add targets to.
  116544. .TP
  116545. .B targets
  116546. A list of target IDs or a string of a single target that this target group should
  116547. distribute traffic to.
  116548. .UNINDENT
  116549. .INDENT 7.0
  116550. .INDENT 3.5
  116551. .sp
  116552. .nf
  116553. .ft C
  116554. add\-targets:
  116555. boto_elb.targets_registered:
  116556. \- name: arn:myloadbalancer
  116557. \- targets:
  116558. \- instance\-id1
  116559. \- instance\-id2
  116560. .ft P
  116561. .fi
  116562. .UNINDENT
  116563. .UNINDENT
  116564. .UNINDENT
  116565. .SS salt.states.boto_kinesis module
  116566. .SS Manage Kinesis Streams
  116567. .sp
  116568. New in version 2017.7.0.
  116569. .sp
  116570. Create and destroy Kinesis streams. Be aware that this interacts with Amazon\(aqs
  116571. services, and so may incur charges.
  116572. .sp
  116573. This module uses \fBboto3\fP, which can be installed via package, or pip.
  116574. .sp
  116575. This module accepts explicit Kinesis credentials but can also utilize
  116576. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116577. credentials are then automatically obtained from AWS API and no further
  116578. configuration is necessary. More information available \fI\%here\fP\&.
  116579. .sp
  116580. If IAM roles are not used you need to specify them either in a pillar file or
  116581. in the minion\(aqs config file:
  116582. .INDENT 0.0
  116583. .INDENT 3.5
  116584. .sp
  116585. .nf
  116586. .ft C
  116587. keyid: GKTADJGHEIQSXMKKRBJ08H
  116588. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116589. region: us\-east\-1
  116590. .ft P
  116591. .fi
  116592. .UNINDENT
  116593. .UNINDENT
  116594. .sp
  116595. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a
  116596. profile, either passed in as a dict, or as a string to pull from
  116597. pillars or minion config:
  116598. .INDENT 0.0
  116599. .INDENT 3.5
  116600. .sp
  116601. .nf
  116602. .ft C
  116603. myprofile:
  116604. keyid: GKTADJGHEIQSXMKKRBJ08H
  116605. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116606. region: us\-east\-1
  116607. .ft P
  116608. .fi
  116609. .UNINDENT
  116610. .UNINDENT
  116611. .INDENT 0.0
  116612. .INDENT 3.5
  116613. .sp
  116614. .nf
  116615. .ft C
  116616. Ensure Kinesis stream does not exist:
  116617. boto_kinesis.absent:
  116618. \- name: new_stream
  116619. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116620. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116621. \- region: us\-east\-1
  116622. Ensure Kinesis stream exists:
  116623. boto_kinesis.present:
  116624. \- name: new_stream
  116625. \- retention_hours: 168
  116626. \- enhanced_monitoring: [\(aqALL\(aq]
  116627. \- num_shards: 2
  116628. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116629. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116630. \- region: us\-east\-1
  116631. .ft P
  116632. .fi
  116633. .UNINDENT
  116634. .UNINDENT
  116635. .INDENT 0.0
  116636. .TP
  116637. .B salt.states.boto_kinesis.absent(name, region=None, key=None, keyid=None, profile=None)
  116638. Delete the kinesis stream, if it exists.
  116639. .INDENT 7.0
  116640. .TP
  116641. .B name (string)
  116642. Stream name
  116643. .TP
  116644. .B region (string)
  116645. Region to connect to.
  116646. .TP
  116647. .B key (string)
  116648. Secret key to be used.
  116649. .TP
  116650. .B keyid (string)
  116651. Access key to be used.
  116652. .TP
  116653. .B profile (dict)
  116654. A dict with region, key and keyid, or a pillar key (string)
  116655. that contains a dict with region, key and keyid.
  116656. .UNINDENT
  116657. .UNINDENT
  116658. .INDENT 0.0
  116659. .TP
  116660. .B salt.states.boto_kinesis.present(name, retention_hours=None, enhanced_monitoring=None, num_shards=None, do_reshard=True, region=None, key=None, keyid=None, profile=None)
  116661. Ensure the kinesis stream is properly configured and scaled.
  116662. .INDENT 7.0
  116663. .TP
  116664. .B name (string)
  116665. Stream name
  116666. .TP
  116667. .B retention_hours (int)
  116668. Retain data for this many hours.
  116669. AWS allows minimum 24 hours, maximum 168 hours.
  116670. .TP
  116671. .B enhanced_monitoring (list of string)
  116672. Turn on enhanced monitoring for the specified shard\-level metrics.
  116673. Pass in [\(aqALL\(aq] or True for all metrics, [] or False for no metrics.
  116674. Turn on individual metrics by passing in a list: [\(aqIncomingBytes\(aq, \(aqOutgoingBytes\(aq]
  116675. Note that if only some metrics are supplied, the remaining metrics will be turned off.
  116676. .TP
  116677. .B num_shards (int)
  116678. Reshard stream (if necessary) to this number of shards
  116679. !!!!! Resharding is expensive! Each split or merge can take up to 30 seconds,
  116680. and the reshard method balances the partition space evenly.
  116681. Resharding from N to N+1 can require 2N operations.
  116682. Resharding is much faster with powers of 2 (e.g. 2^N to 2^N+1) !!!!!
  116683. .TP
  116684. .B do_reshard (boolean)
  116685. If set to False, this script will NEVER reshard the stream,
  116686. regardless of other input. Useful for testing.
  116687. .TP
  116688. .B region (string)
  116689. Region to connect to.
  116690. .TP
  116691. .B key (string)
  116692. Secret key to be used.
  116693. .TP
  116694. .B keyid (string)
  116695. Access key to be used.
  116696. .TP
  116697. .B profile (dict)
  116698. A dict with region, key and keyid, or a pillar key (string)
  116699. that contains a dict with region, key and keyid.
  116700. .UNINDENT
  116701. .UNINDENT
  116702. .SS salt.states.boto_lc
  116703. .sp
  116704. Manage Launch Configurations
  116705. .sp
  116706. New in version 2014.7.0.
  116707. .sp
  116708. Create and destroy Launch Configurations. Be aware that this interacts with
  116709. Amazon\(aqs services, and so may incur charges.
  116710. .sp
  116711. A limitation of this module is that you can not modify launch configurations
  116712. once they have been created. If a launch configuration with the specified name
  116713. exists, this module will always report success, even if the specified
  116714. configuration doesn\(aqt match. This is due to a limitation in Amazon\(aqs launch
  116715. configuration API, as it only allows launch configurations to be created and
  116716. deleted.
  116717. .sp
  116718. Also note that a launch configuration that\(aqs in use by an autoscale group can
  116719. not be deleted until the autoscale group is no longer using it. This may affect
  116720. the way in which you want to order your states.
  116721. .sp
  116722. This module uses \fBboto\fP, which can be installed via package, or pip.
  116723. .sp
  116724. This module accepts explicit autoscale credentials but can also utilize
  116725. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116726. credentials are then automatically obtained from AWS API and no further
  116727. configuration is necessary. More information available \fI\%here\fP\&.
  116728. .sp
  116729. If IAM roles are not used you need to specify them either in a pillar file or
  116730. in the minion\(aqs config file:
  116731. .INDENT 0.0
  116732. .INDENT 3.5
  116733. .sp
  116734. .nf
  116735. .ft C
  116736. asg.keyid: GKTADJGHEIQSXMKKRBJ08H
  116737. asg.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116738. .ft P
  116739. .fi
  116740. .UNINDENT
  116741. .UNINDENT
  116742. .sp
  116743. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116744. passed in as a dict, or as a string to pull from pillars or minion config:
  116745. .INDENT 0.0
  116746. .INDENT 3.5
  116747. .sp
  116748. .nf
  116749. .ft C
  116750. myprofile:
  116751. keyid: GKTADJGHEIQSXMKKRBJ08H
  116752. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116753. region: us\-east\-1
  116754. .ft P
  116755. .fi
  116756. .UNINDENT
  116757. .UNINDENT
  116758. .sp
  116759. Credential information is shared with autoscale groups as launch configurations
  116760. and autoscale groups are completely dependent on each other.
  116761. .INDENT 0.0
  116762. .INDENT 3.5
  116763. .sp
  116764. .nf
  116765. .ft C
  116766. Ensure mylc exists:
  116767. boto_lc.present:
  116768. \- name: mylc
  116769. \- image_id: ami\-0b9c9f62
  116770. \- key_name: mykey
  116771. \- security_groups:
  116772. \- mygroup
  116773. \- instance_type: m1.small
  116774. \- instance_monitoring: true
  116775. \- block_device_mappings:
  116776. \- \(aq/dev/sda1\(aq:
  116777. size: 20
  116778. volume_type: \(aqio1\(aq
  116779. iops: 220
  116780. delete_on_termination: true
  116781. \- cloud_init:
  116782. boothooks:
  116783. \(aqdisable\-master.sh\(aq: |
  116784. #!/bin/bash
  116785. echo "manual" > /etc/init/salt\-master.override
  116786. scripts:
  116787. \(aqrun_salt.sh\(aq: |
  116788. #!/bin/bash
  116789. add\-apt\-repository \-y ppa:saltstack/salt
  116790. apt\-get update
  116791. apt\-get install \-y salt\-minion
  116792. salt\-call state.highstate
  116793. \- region: us\-east\-1
  116794. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  116795. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116796. # Using a profile from pillars.
  116797. Ensure mylc exists:
  116798. boto_lc.present:
  116799. \- name: mylc
  116800. \- image_id: ami\-0b9c9f62
  116801. \- profile: myprofile
  116802. # Passing in a profile.
  116803. Ensure mylc exists:
  116804. boto_lc.present:
  116805. \- name: mylc
  116806. \- image_id: ami\-0b9c9f62
  116807. \- profile:
  116808. keyid: GKTADJGHEIQSXMKKRBJ08H
  116809. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116810. region: us\-east\-1
  116811. .ft P
  116812. .fi
  116813. .UNINDENT
  116814. .UNINDENT
  116815. .INDENT 0.0
  116816. .TP
  116817. .B salt.states.boto_lc.absent(name, region=None, key=None, keyid=None, profile=None)
  116818. Ensure the named launch configuration is deleted.
  116819. .INDENT 7.0
  116820. .TP
  116821. .B name
  116822. Name of the launch configuration.
  116823. .TP
  116824. .B region
  116825. The region to connect to.
  116826. .TP
  116827. .B key
  116828. Secret key to be used.
  116829. .TP
  116830. .B keyid
  116831. Access key to be used.
  116832. .TP
  116833. .B profile
  116834. A dict with region, key and keyid, or a pillar key (string)
  116835. that contains a dict with region, key and keyid.
  116836. .UNINDENT
  116837. .UNINDENT
  116838. .INDENT 0.0
  116839. .TP
  116840. .B salt.states.boto_lc.present(name, image_id, key_name=None, vpc_id=None, vpc_name=None, security_groups=None, user_data=None, cloud_init=None, instance_type=u\(aqm1.small\(aq, kernel_id=None, ramdisk_id=None, block_device_mappings=None, delete_on_termination=None, instance_monitoring=False, spot_price=None, instance_profile_name=None, ebs_optimized=False, associate_public_ip_address=None, region=None, key=None, keyid=None, profile=None)
  116841. Ensure the launch configuration exists.
  116842. .INDENT 7.0
  116843. .TP
  116844. .B name
  116845. Name of the launch configuration.
  116846. .TP
  116847. .B image_id
  116848. AMI to use for instances. AMI must exist or creation of the launch
  116849. configuration will fail.
  116850. .TP
  116851. .B key_name
  116852. Name of the EC2 key pair to use for instances. Key must exist or
  116853. creation of the launch configuration will fail.
  116854. .TP
  116855. .B vpc_id
  116856. The VPC id where the security groups are defined. Only necessary when
  116857. using named security groups that exist outside of the default VPC.
  116858. Mutually exclusive with vpc_name.
  116859. .TP
  116860. .B vpc_name
  116861. Name of the VPC where the security groups are defined. Only Necessary
  116862. when using named security groups that exist outside of the default VPC.
  116863. Mutually exclusive with vpc_id.
  116864. .TP
  116865. .B security_groups
  116866. List of Names or security group id’s of the security groups with which
  116867. to associate the EC2 instances or VPC instances, respectively. Security
  116868. groups must exist, or creation of the launch configuration will fail.
  116869. .TP
  116870. .B user_data
  116871. The user data available to launched EC2 instances.
  116872. .TP
  116873. .B cloud_init
  116874. A dict of cloud_init configuration. Currently supported keys:
  116875. boothooks, scripts and cloud\-config.
  116876. Mutually exclusive with user_data.
  116877. .TP
  116878. .B instance_type
  116879. The instance type. ex: m1.small.
  116880. .TP
  116881. .B kernel_id
  116882. The kernel id for the instance.
  116883. .TP
  116884. .B ramdisk_id
  116885. The RAM disk ID for the instance.
  116886. .TP
  116887. .B block_device_mappings
  116888. A dict of block device mappings that contains a dict
  116889. with volume_type, delete_on_termination, iops, size, encrypted,
  116890. snapshot_id.
  116891. .INDENT 7.0
  116892. .TP
  116893. .B volume_type
  116894. Indicates what volume type to use. Valid values are standard, io1, gp2.
  116895. Default is standard.
  116896. .TP
  116897. .B delete_on_termination
  116898. Whether the volume should be explicitly marked for deletion when its instance is
  116899. terminated (True), or left around (False). If not provided, or None is explicitly passed,
  116900. the default AWS behaviour is used, which is True for ROOT volumes of instances, and
  116901. False for all others.
  116902. .TP
  116903. .B iops
  116904. For Provisioned IOPS (SSD) volumes only. The number of I/O operations per
  116905. second (IOPS) to provision for the volume.
  116906. .TP
  116907. .B size
  116908. Desired volume size (in GiB).
  116909. .TP
  116910. .B encrypted
  116911. Indicates whether the volume should be encrypted. Encrypted EBS volumes must
  116912. be attached to instances that support Amazon EBS encryption. Volumes that are
  116913. created from encrypted snapshots are automatically encrypted. There is no way
  116914. to create an encrypted volume from an unencrypted snapshot or an unencrypted
  116915. volume from an encrypted snapshot.
  116916. .UNINDENT
  116917. .TP
  116918. .B instance_monitoring
  116919. Whether instances in group are launched with detailed monitoring.
  116920. .TP
  116921. .B spot_price
  116922. The spot price you are bidding. Only applies if you are building an
  116923. autoscaling group with spot instances.
  116924. .TP
  116925. .B instance_profile_name
  116926. The name or the Amazon Resource Name (ARN) of the instance profile
  116927. associated with the IAM role for the instance. Instance profile must
  116928. exist or the creation of the launch configuration will fail.
  116929. .TP
  116930. .B ebs_optimized
  116931. Specifies whether the instance is optimized for EBS I/O (true) or not
  116932. (false).
  116933. .TP
  116934. .B associate_public_ip_address
  116935. Used for Auto Scaling groups that launch instances into an Amazon
  116936. Virtual Private Cloud. Specifies whether to assign a public IP address
  116937. to each instance launched in a Amazon VPC.
  116938. .TP
  116939. .B region
  116940. The region to connect to.
  116941. .TP
  116942. .B key
  116943. Secret key to be used.
  116944. .TP
  116945. .B keyid
  116946. Access key to be used.
  116947. .TP
  116948. .B profile
  116949. A dict with region, key and keyid, or a pillar key (string)
  116950. that contains a dict with region, key and keyid.
  116951. .UNINDENT
  116952. .UNINDENT
  116953. .SS salt.states.boto_sns
  116954. .sp
  116955. Manage SNS Topics
  116956. .sp
  116957. Create and destroy SNS topics. Be aware that this interacts with Amazon\(aqs
  116958. services, and so may incur charges.
  116959. .sp
  116960. This module uses \fBboto\fP, which can be installed via package, or pip.
  116961. .sp
  116962. This module accepts explicit AWS credentials but can also utilize
  116963. IAM roles assigned to the instance through Instance Profiles. Dynamic
  116964. credentials are then automatically obtained from AWS API and no further
  116965. configuration is necessary. More information available \fI\%here\fP\&.
  116966. .sp
  116967. If IAM roles are not used you need to specify them either in a pillar file or
  116968. in the minion\(aqs config file:
  116969. .INDENT 0.0
  116970. .INDENT 3.5
  116971. .sp
  116972. .nf
  116973. .ft C
  116974. sns.keyid: GKTADJGHEIQSXMKKRBJ08H
  116975. sns.key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116976. .ft P
  116977. .fi
  116978. .UNINDENT
  116979. .UNINDENT
  116980. .sp
  116981. It\(aqs also possible to specify \fBkey\fP, \fBkeyid\fP and \fBregion\fP via a profile, either
  116982. passed in as a dict, or as a string to pull from pillars or minion config:
  116983. .INDENT 0.0
  116984. .INDENT 3.5
  116985. .sp
  116986. .nf
  116987. .ft C
  116988. myprofile:
  116989. keyid: GKTADJGHEIQSXMKKRBJ08H
  116990. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  116991. region: us\-east\-1
  116992. .ft P
  116993. .fi
  116994. .UNINDENT
  116995. .UNINDENT
  116996. .INDENT 0.0
  116997. .INDENT 3.5
  116998. .sp
  116999. .nf
  117000. .ft C
  117001. mytopic:
  117002. boto_sns.present:
  117003. \- region: us\-east\-1
  117004. \- keyid: GKTADJGHEIQSXMKKRBJ08H
  117005. \- key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117006. # Using a profile from pillars
  117007. mytopic:
  117008. boto_sns.present:
  117009. \- region: us\-east\-1
  117010. \- profile: mysnsprofile
  117011. # Passing in a profile
  117012. mytopic:
  117013. boto_sns.present:
  117014. \- region: us\-east\-1
  117015. \- profile:
  117016. keyid: GKTADJGHEIQSXMKKRBJ08H
  117017. key: askdjghsdfjkghWupUjasdflkdfklgjsdfjajkghs
  117018. .ft P
  117019. .fi
  117020. .UNINDENT
  117021. .UNINDENT
  117022. .INDENT 0.0
  117023. .TP
  117024. .B salt.states.boto_sns.absent(name, region=None, key=None, keyid=None, profile=None, unsubscribe=False)
  117025. Ensure the named sns topic is deleted.
  117026. .INDENT 7.0
  117027. .TP
  117028. .B name
  117029. Name of the SNS topic.
  117030. .TP
  117031. .B region
  117032. Region to connect to.
  117033. .TP
  117034. .B key
  117035. Secret key to be used.
  117036. .TP
  117037. .B keyid
  117038. Access key to be used.
  117039. .TP
  117040. .B profile
  117041. A dict with region, key and keyid, or a pillar key (string)
  117042. that contains a dict with region, key and keyid.
  117043. .TP
  117044. .B unsubscribe
  117045. If True, unsubscribe all subcriptions to the SNS topic before
  117046. deleting the SNS topic
  117047. .sp
  117048. New in version 2016.11.0.
  117049. .UNINDENT
  117050. .UNINDENT
  117051. .INDENT 0.0
  117052. .TP
  117053. .B salt.states.boto_sns.present(name, subscriptions=None, region=None, key=None, keyid=None, profile=None)
  117054. Ensure the SNS topic exists.
  117055. .INDENT 7.0
  117056. .TP
  117057. .B name
  117058. Name of the SNS topic.
  117059. .TP
  117060. .B subscriptions
  117061. List of SNS subscriptions.
  117062. .sp
  117063. Each subscription is a dictionary with a protocol and endpoint key:
  117064. .INDENT 7.0
  117065. .INDENT 3.5
  117066. .sp
  117067. .nf
  117068. .ft C
  117069. [
  117070. {\(aqprotocol\(aq: \(aqhttps\(aq, \(aqendpoint\(aq: \(aqhttps://www.example.com/sns\-endpoint\(aq},
  117071. {\(aqprotocol\(aq: \(aqsqs\(aq, \(aqendpoint\(aq: \(aqarn:aws:sqs:us\-west\-2:123456789012:MyQueue\(aq}
  117072. ]
  117073. .ft P
  117074. .fi
  117075. .UNINDENT
  117076. .UNINDENT
  117077. .TP
  117078. .B region
  117079. Region to connect to.
  117080. .TP
  117081. .B key
  117082. Secret key to be used.
  117083. .TP
  117084. .B keyid
  117085. Access key to be used.
  117086. .TP
  117087. .B profile
  117088. A dict with region, key and keyid, or a pillar key (string)
  117089. that contains a dict with region, key and keyid.
  117090. .UNINDENT
  117091. .UNINDENT
  117092. .SS salt.states.bower
  117093. .SS Installation of Bower Packages
  117094. .sp
  117095. These states manage the installed packages using Bower.
  117096. Note that npm, git and bower must be installed for these states to be
  117097. available, so bower states should include requisites to pkg.installed states
  117098. for the packages which provide npm and git (simply \fBnpm\fP and \fBgit\fP in most
  117099. cases), and npm.installed state for the package which provides bower.
  117100. .sp
  117101. Example:
  117102. .INDENT 0.0
  117103. .INDENT 3.5
  117104. .sp
  117105. .nf
  117106. .ft C
  117107. npm:
  117108. pkg.installed
  117109. git:
  117110. pkg.installed
  117111. bower:
  117112. npm.installed
  117113. require:
  117114. \- pkg: npm
  117115. \- pkg: git
  117116. underscore:
  117117. bower.installed:
  117118. \- dir: /path/to/project
  117119. \- require:
  117120. \- npm: bower
  117121. .ft P
  117122. .fi
  117123. .UNINDENT
  117124. .UNINDENT
  117125. .INDENT 0.0
  117126. .TP
  117127. .B salt.states.bower.bootstrap(name, user=None)
  117128. Bootstraps a frontend distribution.
  117129. .sp
  117130. Will execute \(aqbower install\(aq on the specified directory.
  117131. .INDENT 7.0
  117132. .TP
  117133. .B user
  117134. The user to run Bower with
  117135. .UNINDENT
  117136. .UNINDENT
  117137. .INDENT 0.0
  117138. .TP
  117139. .B salt.states.bower.installed(name, dir, pkgs=None, user=None, env=None)
  117140. Verify that the given package is installed and is at the correct version
  117141. (if specified).
  117142. .INDENT 7.0
  117143. .INDENT 3.5
  117144. .sp
  117145. .nf
  117146. .ft C
  117147. underscore:
  117148. bower.installed:
  117149. \- dir: /path/to/project
  117150. \- user: someuser
  117151. jquery#2.0:
  117152. bower.installed:
  117153. \- dir: /path/to/project
  117154. .ft P
  117155. .fi
  117156. .UNINDENT
  117157. .UNINDENT
  117158. .INDENT 7.0
  117159. .TP
  117160. .B name
  117161. The package to install
  117162. .TP
  117163. .B dir
  117164. The target directory in which to install the package
  117165. .TP
  117166. .B pkgs
  117167. A list of packages to install with a single Bower invocation;
  117168. specifying this argument will ignore the \fBname\fP argument
  117169. .TP
  117170. .B user
  117171. The user to run Bower with
  117172. .TP
  117173. .B env
  117174. A list of environment variables to be set prior to execution. The
  117175. format is the same as the \fBcmd.run\fP\&.
  117176. state function.
  117177. .UNINDENT
  117178. .UNINDENT
  117179. .INDENT 0.0
  117180. .TP
  117181. .B salt.states.bower.pruned(name, user=None, env=None)
  117182. New in version 2017.7.0.
  117183. .sp
  117184. Cleans up local bower_components directory.
  117185. .sp
  117186. Will execute \(aqbower prune\(aq on the specified directory (param: name)
  117187. .INDENT 7.0
  117188. .TP
  117189. .B user
  117190. The user to run Bower with
  117191. .UNINDENT
  117192. .UNINDENT
  117193. .INDENT 0.0
  117194. .TP
  117195. .B salt.states.bower.removed(name, dir, user=None)
  117196. Verify that the given package is not installed.
  117197. .INDENT 7.0
  117198. .TP
  117199. .B dir
  117200. The target directory in which to install the package
  117201. .TP
  117202. .B user
  117203. The user to run Bower with
  117204. .UNINDENT
  117205. .UNINDENT
  117206. .SS salt.states.btrfs
  117207. .INDENT 0.0
  117208. .TP
  117209. .B maintainer
  117210. Alberto Planas <\fI\%aplanas@suse.com\fP>
  117211. .TP
  117212. .B maturity
  117213. new
  117214. .TP
  117215. .B depends
  117216. None
  117217. .TP
  117218. .B platform
  117219. Linux
  117220. .UNINDENT
  117221. .INDENT 0.0
  117222. .TP
  117223. .B salt.states.btrfs.properties(*args, **kwargs)
  117224. Makes sure that a list of properties are set in a subvolume, file
  117225. or device.
  117226. .INDENT 7.0
  117227. .TP
  117228. .B name
  117229. Name of the object to change
  117230. .TP
  117231. .B device
  117232. Device where the object lives, if None, the device will be in
  117233. name
  117234. .TP
  117235. .B use_default
  117236. If True, this subvolume will be resolved to the default
  117237. subvolume assigned during the create operation
  117238. .TP
  117239. .B properties
  117240. Dictionary of properties
  117241. .UNINDENT
  117242. .sp
  117243. Valid properties are \(aqro\(aq, \(aqlabel\(aq or \(aqcompression\(aq. Check the
  117244. documentation to see where those properties are valid for each
  117245. object.
  117246. .UNINDENT
  117247. .INDENT 0.0
  117248. .TP
  117249. .B salt.states.btrfs.subvolume_created(*args, **kwargs)
  117250. Makes sure that a btrfs subvolume is present.
  117251. .INDENT 7.0
  117252. .TP
  117253. .B name
  117254. Name of the subvolume to add
  117255. .TP
  117256. .B device
  117257. Device where to create the subvolume
  117258. .TP
  117259. .B qgroupids
  117260. Add the newly created subcolume to a qgroup. This parameter
  117261. is a list
  117262. .TP
  117263. .B set_default
  117264. If True, this new subvolume will be set as default when
  117265. mounted, unless subvol option in mount is used
  117266. .TP
  117267. .B copy_on_write
  117268. If false, set the subvolume with chattr +C
  117269. .TP
  117270. .B force_set_default
  117271. If false and the subvolume is already present, it will not
  117272. force it as default if \fBset_default\fP is True
  117273. .UNINDENT
  117274. .UNINDENT
  117275. .INDENT 0.0
  117276. .TP
  117277. .B salt.states.btrfs.subvolume_deleted(*args, **kwargs)
  117278. Makes sure that a btrfs subvolume is removed.
  117279. .INDENT 7.0
  117280. .TP
  117281. .B name
  117282. Name of the subvolume to remove
  117283. .TP
  117284. .B device
  117285. Device where to remove the subvolume
  117286. .TP
  117287. .B commit
  117288. Wait until the transaction is over
  117289. .UNINDENT
  117290. .UNINDENT
  117291. .SS salt.states.chef
  117292. .SS Execute Chef client runs
  117293. .sp
  117294. Run chef\-client or chef\-solo
  117295. .INDENT 0.0
  117296. .INDENT 3.5
  117297. .sp
  117298. .nf
  117299. .ft C
  117300. my\-chef\-run:
  117301. chef.client:
  117302. \- override\-runlist: \(aqdemo1,demo2\(aq
  117303. \- server: \(aqhttps://chef.domain.com\(aq
  117304. default\-chef\-run:
  117305. chef.client: []
  117306. my\-solo\-run:
  117307. chef.solo:
  117308. \- environment: dev
  117309. .ft P
  117310. .fi
  117311. .UNINDENT
  117312. .UNINDENT
  117313. .INDENT 0.0
  117314. .TP
  117315. .B salt.states.chef.client(name, **kwargs)
  117316. .INDENT 7.0
  117317. .TP
  117318. .B name
  117319. Unique identifier for the state. Does not affect the Chef run.
  117320. .TP
  117321. .B server
  117322. The chef server URL
  117323. .TP
  117324. .B client_key
  117325. Set the client key file location
  117326. .TP
  117327. .B config
  117328. The configuration file to use
  117329. .TP
  117330. .B config\-file\-jail
  117331. Directory under which config files are allowed to be loaded
  117332. (no client.rb or knife.rb outside this path will be loaded).
  117333. .TP
  117334. .B environment
  117335. Set the Chef Environment on the node
  117336. .TP
  117337. .B group
  117338. Group to set privilege to
  117339. .TP
  117340. .B json\-attributes
  117341. Load attributes from a JSON file or URL
  117342. .TP
  117343. .B localmode
  117344. Point chef\-client at local repository if True
  117345. .TP
  117346. .B log_level
  117347. Set the log level (debug, info, warn, error, fatal)
  117348. .TP
  117349. .B logfile
  117350. Set the log file location
  117351. .TP
  117352. .B node\-name
  117353. The node name for this client
  117354. .TP
  117355. .B override\-runlist
  117356. Replace current run list with specified items for a single run
  117357. .TP
  117358. .B pid
  117359. Set the PID file location, defaults to /tmp/chef\-client.pid
  117360. .TP
  117361. .B run\-lock\-timeout
  117362. Set maximum duration to wait for another client run to finish,
  117363. default is indefinitely.
  117364. .TP
  117365. .B runlist
  117366. Permanently replace current run list with specified items
  117367. .TP
  117368. .B user
  117369. User to set privilege to
  117370. .TP
  117371. .B validation_key
  117372. Set the validation key file location, used for registering new clients
  117373. .UNINDENT
  117374. .UNINDENT
  117375. .INDENT 0.0
  117376. .TP
  117377. .B salt.states.chef.solo(name, **kwargs)
  117378. .INDENT 7.0
  117379. .TP
  117380. .B name
  117381. Unique identifier for the state. Does not affect the Chef run.
  117382. .TP
  117383. .B config
  117384. The configuration file to use
  117385. .TP
  117386. .B environment
  117387. Set the Chef Environment on the node
  117388. .TP
  117389. .B group
  117390. Group to set privilege to
  117391. .TP
  117392. .B json\-attributes
  117393. Load attributes from a JSON file or URL
  117394. .TP
  117395. .B log_level
  117396. Set the log level (debug, info, warn, error, fatal)
  117397. .TP
  117398. .B logfile
  117399. Set the log file location
  117400. .TP
  117401. .B node\-name
  117402. The node name for this client
  117403. .TP
  117404. .B override\-runlist
  117405. Replace current run list with specified items for a single run
  117406. .TP
  117407. .B recipe\-url
  117408. Pull down a remote gzipped tarball of recipes and untar it to
  117409. the cookbook cache
  117410. .TP
  117411. .B run\-lock\-timeout
  117412. Set maximum duration to wait for another client run to finish,
  117413. default is indefinitely.
  117414. .TP
  117415. .B user
  117416. User to set privilege to
  117417. .UNINDENT
  117418. .UNINDENT
  117419. .SS salt.states.chronos_job module
  117420. .sp
  117421. Configure Chronos jobs via a salt proxy.
  117422. .INDENT 0.0
  117423. .INDENT 3.5
  117424. .sp
  117425. .nf
  117426. .ft C
  117427. my_job:
  117428. chronos_job.config:
  117429. \- config:
  117430. schedule: "R//PT2S"
  117431. command: "echo \(aqhi\(aq"
  117432. owner: "me@example.com"
  117433. .ft P
  117434. .fi
  117435. .UNINDENT
  117436. .UNINDENT
  117437. .sp
  117438. New in version 2015.8.2.
  117439. .INDENT 0.0
  117440. .TP
  117441. .B salt.states.chronos_job.absent(name)
  117442. Ensure that the chronos job with the given name is not present.
  117443. .INDENT 7.0
  117444. .TP
  117445. .B Parameters
  117446. \fBname\fP \-\- The app name
  117447. .TP
  117448. .B Returns
  117449. A standard Salt changes dictionary
  117450. .UNINDENT
  117451. .UNINDENT
  117452. .INDENT 0.0
  117453. .TP
  117454. .B salt.states.chronos_job.config(name, config)
  117455. Ensure that the chronos job with the given name is present and is configured
  117456. to match the given config values.
  117457. .INDENT 7.0
  117458. .TP
  117459. .B Parameters
  117460. .INDENT 7.0
  117461. .IP \(bu 2
  117462. \fBname\fP \-\- The job name
  117463. .IP \(bu 2
  117464. \fBconfig\fP \-\- The configuration to apply (dict)
  117465. .UNINDENT
  117466. .TP
  117467. .B Returns
  117468. A standard Salt changes dictionary
  117469. .UNINDENT
  117470. .UNINDENT
  117471. .SS salt.states.cimc
  117472. .sp
  117473. A state module to manage Cisco UCS chassis devices.
  117474. .INDENT 0.0
  117475. .TP
  117476. .B codeauthor
  117477. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  117478. .TP
  117479. .B maturity
  117480. new
  117481. .TP
  117482. .B depends
  117483. none
  117484. .TP
  117485. .B platform
  117486. unix
  117487. .UNINDENT
  117488. .SS About
  117489. .sp
  117490. This state module was designed to handle connections to a Cisco Unified Computing System (UCS) chassis. This module
  117491. relies on the CIMC proxy module to interface with the device.
  117492. .sp
  117493. \fBSEE ALSO:\fP
  117494. .INDENT 0.0
  117495. .INDENT 3.5
  117496. \fBCIMC Proxy Module\fP
  117497. .UNINDENT
  117498. .UNINDENT
  117499. .INDENT 0.0
  117500. .TP
  117501. .B salt.states.cimc.hostname(name, hostname=None)
  117502. Ensures that the hostname is set to the specified value.
  117503. .sp
  117504. New in version 2019.2.0.
  117505. .sp
  117506. name: The name of the module function to execute.
  117507. .sp
  117508. hostname(str): The hostname of the server.
  117509. .sp
  117510. SLS Example:
  117511. .INDENT 7.0
  117512. .INDENT 3.5
  117513. .sp
  117514. .nf
  117515. .ft C
  117516. set_name:
  117517. cimc.hostname:
  117518. \- hostname: foobar
  117519. .ft P
  117520. .fi
  117521. .UNINDENT
  117522. .UNINDENT
  117523. .UNINDENT
  117524. .INDENT 0.0
  117525. .TP
  117526. .B salt.states.cimc.logging_levels(name, remote=None, local=None)
  117527. Ensures that the logging levels are set on the device. The logging levels
  117528. must match the following options: emergency, alert, critical, error, warning,
  117529. notice, informational, debug.
  117530. .sp
  117531. New in version 2019.2.0.
  117532. .sp
  117533. name: The name of the module function to execute.
  117534. .sp
  117535. remote(str): The logging level for SYSLOG logs.
  117536. .sp
  117537. local(str): The logging level for the local device.
  117538. .sp
  117539. SLS Example:
  117540. .INDENT 7.0
  117541. .INDENT 3.5
  117542. .sp
  117543. .nf
  117544. .ft C
  117545. logging_levels:
  117546. cimc.logging_levels:
  117547. \- remote: informational
  117548. \- local: notice
  117549. .ft P
  117550. .fi
  117551. .UNINDENT
  117552. .UNINDENT
  117553. .UNINDENT
  117554. .INDENT 0.0
  117555. .TP
  117556. .B salt.states.cimc.ntp(name, servers)
  117557. Ensures that the NTP servers are configured. Servers are provided as an individual string or list format. Only four
  117558. NTP servers will be reviewed. Any entries past four will be ignored.
  117559. .sp
  117560. name: The name of the module function to execute.
  117561. .sp
  117562. servers(str, list): The IP address or FQDN of the NTP servers.
  117563. .sp
  117564. SLS Example:
  117565. .INDENT 7.0
  117566. .INDENT 3.5
  117567. .sp
  117568. .nf
  117569. .ft C
  117570. ntp_configuration_list:
  117571. cimc.ntp:
  117572. \- servers:
  117573. \- foo.bar.com
  117574. \- 10.10.10.10
  117575. ntp_configuration_str:
  117576. cimc.ntp:
  117577. \- servers: foo.bar.com
  117578. .ft P
  117579. .fi
  117580. .UNINDENT
  117581. .UNINDENT
  117582. .UNINDENT
  117583. .INDENT 0.0
  117584. .TP
  117585. .B salt.states.cimc.power_configuration(name, policy=None, delayType=None, delayValue=None)
  117586. Ensures that the power configuration is configured on the system. This is
  117587. only available on some C\-Series servers.
  117588. .sp
  117589. New in version 2019.2.0.
  117590. .sp
  117591. name: The name of the module function to execute.
  117592. .sp
  117593. policy(str): The action to be taken when chassis power is restored after
  117594. an unexpected power loss. This can be one of the following:
  117595. .INDENT 7.0
  117596. .INDENT 3.5
  117597. reset: The server is allowed to boot up normally when power is
  117598. restored. The server can restart immediately or, optionally, after a
  117599. fixed or random delay.
  117600. .sp
  117601. stay\-off: The server remains off until it is manually restarted.
  117602. .sp
  117603. last\-state: The server restarts and the system attempts to restore
  117604. any processes that were running before power was lost.
  117605. .UNINDENT
  117606. .UNINDENT
  117607. .sp
  117608. delayType(str): If the selected policy is reset, the restart can be
  117609. delayed with this option. This can be one of the following:
  117610. .INDENT 7.0
  117611. .INDENT 3.5
  117612. fixed: The server restarts after a fixed delay.
  117613. .sp
  117614. random: The server restarts after a random delay.
  117615. .UNINDENT
  117616. .UNINDENT
  117617. .sp
  117618. delayValue(int): If a fixed delay is selected, once chassis power is
  117619. restored and the Cisco IMC has finished rebooting, the system waits for
  117620. the specified number of seconds before restarting the server. Enter an
  117621. integer between 0 and 240.
  117622. .sp
  117623. SLS Example:
  117624. .INDENT 7.0
  117625. .INDENT 3.5
  117626. .sp
  117627. .nf
  117628. .ft C
  117629. reset_power:
  117630. cimc.power_configuration:
  117631. \- policy: reset
  117632. \- delayType: fixed
  117633. \- delayValue: 0
  117634. power_off:
  117635. cimc.power_configuration:
  117636. \- policy: stay\-off
  117637. .ft P
  117638. .fi
  117639. .UNINDENT
  117640. .UNINDENT
  117641. .UNINDENT
  117642. .INDENT 0.0
  117643. .TP
  117644. .B salt.states.cimc.syslog(name, primary=None, secondary=None)
  117645. Ensures that the syslog servers are set to the specified values. A value of None will be ignored.
  117646. .sp
  117647. name: The name of the module function to execute.
  117648. .sp
  117649. primary(str): The IP address or FQDN of the primary syslog server.
  117650. .sp
  117651. secondary(str): The IP address or FQDN of the secondary syslog server.
  117652. .sp
  117653. SLS Example:
  117654. .INDENT 7.0
  117655. .INDENT 3.5
  117656. .sp
  117657. .nf
  117658. .ft C
  117659. syslog_configuration:
  117660. cimc.syslog:
  117661. \- primary: 10.10.10.10
  117662. \- secondary: foo.bar.com
  117663. .ft P
  117664. .fi
  117665. .UNINDENT
  117666. .UNINDENT
  117667. .UNINDENT
  117668. .INDENT 0.0
  117669. .TP
  117670. .B salt.states.cimc.user(name, id=u\(aq\(aq, user=u\(aq\(aq, priv=u\(aq\(aq, password=u\(aq\(aq, status=u\(aqactive\(aq)
  117671. Ensures that a user is configured on the device. Due to being unable to
  117672. verify the user password. This is a forced operation.
  117673. .sp
  117674. New in version 2019.2.0.
  117675. .sp
  117676. name: The name of the module function to execute.
  117677. .sp
  117678. id(int): The user ID slot on the device.
  117679. .sp
  117680. user(str): The username of the user.
  117681. .sp
  117682. priv(str): The privilege level of the user.
  117683. .sp
  117684. password(str): The password of the user.
  117685. .sp
  117686. status(str): The status of the user. Can be either active or inactive.
  117687. .sp
  117688. SLS Example:
  117689. .INDENT 7.0
  117690. .INDENT 3.5
  117691. .sp
  117692. .nf
  117693. .ft C
  117694. user_configuration:
  117695. cimc.user:
  117696. \- id: 11
  117697. \- user: foo
  117698. \- priv: admin
  117699. \- password: mypassword
  117700. \- status: active
  117701. .ft P
  117702. .fi
  117703. .UNINDENT
  117704. .UNINDENT
  117705. .UNINDENT
  117706. .SS salt.states.composer
  117707. .SS Installation of Composer Packages
  117708. .sp
  117709. These states manage the installed packages for composer for PHP. Note that
  117710. either composer is installed and accessible via a bin directory or you can pass
  117711. the location of composer in the state.
  117712. .INDENT 0.0
  117713. .INDENT 3.5
  117714. .sp
  117715. .nf
  117716. .ft C
  117717. get\-composer:
  117718. cmd.run:
  117719. \- name: \(aqCURL=\(gawhich curl\(ga; $CURL \-sS https://getcomposer.org/installer | php\(aq
  117720. \- unless: test \-f /usr/local/bin/composer
  117721. \- cwd: /root/
  117722. install\-composer:
  117723. cmd.wait:
  117724. \- name: mv /root/composer.phar /usr/local/bin/composer
  117725. \- cwd: /root/
  117726. \- watch:
  117727. \- cmd: get\-composer
  117728. /path/to/project:
  117729. composer.installed:
  117730. \- no_dev: true
  117731. \- require:
  117732. \- cmd: install\-composer
  117733. # Without composer installed in your PATH
  117734. # Note: composer.phar must be executable for state to work properly
  117735. /path/to/project:
  117736. composer.installed:
  117737. \- composer: /path/to/composer.phar
  117738. \- php: /usr/local/bin/php
  117739. \- no_dev: true
  117740. .ft P
  117741. .fi
  117742. .UNINDENT
  117743. .UNINDENT
  117744. .INDENT 0.0
  117745. .TP
  117746. .B salt.states.composer.installed(name, composer=None, php=None, user=None, prefer_source=None, prefer_dist=None, no_scripts=None, no_plugins=None, optimize=None, no_dev=None, quiet=False, composer_home=u\(aq/root\(aq, always_check=True, env=None)
  117747. Verify that the correct versions of composer dependencies are present.
  117748. .INDENT 7.0
  117749. .TP
  117750. .B name
  117751. Directory location of the \fBcomposer.json\fP file.
  117752. .TP
  117753. .B composer
  117754. Location of the \fBcomposer.phar\fP file. If not set composer will
  117755. just execute \fBcomposer\fP as if it is installed globally.
  117756. (i.e. \fB/path/to/composer.phar\fP)
  117757. .TP
  117758. .B php
  117759. Location of the php executable to use with composer.
  117760. (i.e. \fB/usr/bin/php\fP)
  117761. .TP
  117762. .B user
  117763. Which system user to run composer as.
  117764. .sp
  117765. New in version 2014.1.4.
  117766. .TP
  117767. .B prefer_source
  117768. \fB\-\-prefer\-source\fP option of composer.
  117769. .TP
  117770. .B prefer_dist
  117771. \fB\-\-prefer\-dist\fP option of composer.
  117772. .TP
  117773. .B no_scripts
  117774. \fB\-\-no\-scripts\fP option of composer.
  117775. .TP
  117776. .B no_plugins
  117777. \fB\-\-no\-plugins\fP option of composer.
  117778. .TP
  117779. .B optimize
  117780. \fB\-\-optimize\-autoloader\fP option of composer. Recommended for production.
  117781. .TP
  117782. .B no_dev
  117783. \fB\-\-no\-dev\fP option for composer. Recommended for production.
  117784. .TP
  117785. .B quiet
  117786. \fB\-\-quiet\fP option for composer. Whether or not to return output from composer.
  117787. .TP
  117788. .B composer_home
  117789. \fB$COMPOSER_HOME\fP environment variable
  117790. .TP
  117791. .B always_check
  117792. If \fBTrue\fP, \fIalways\fP run \fBcomposer install\fP in the directory. This is the
  117793. default behavior. If \fBFalse\fP, only run \fBcomposer install\fP if there is no
  117794. vendor directory present.
  117795. .TP
  117796. .B env
  117797. A list of environment variables to be set prior to execution.
  117798. .UNINDENT
  117799. .UNINDENT
  117800. .INDENT 0.0
  117801. .TP
  117802. .B salt.states.composer.update(name, composer=None, php=None, user=None, prefer_source=None, prefer_dist=None, no_scripts=None, no_plugins=None, optimize=None, no_dev=None, quiet=False, composer_home=u\(aq/root\(aq, env=None)
  117803. Composer update the directory to ensure we have the latest versions
  117804. of all project dependencies.
  117805. .INDENT 7.0
  117806. .TP
  117807. .B name
  117808. Directory location of the \fBcomposer.json\fP file.
  117809. .TP
  117810. .B composer
  117811. Location of the \fBcomposer.phar\fP file. If not set composer will
  117812. just execute \fBcomposer\fP as if it is installed globally.
  117813. (i.e. /path/to/composer.phar)
  117814. .TP
  117815. .B php
  117816. Location of the php executable to use with composer.
  117817. (i.e. \fB/usr/bin/php\fP)
  117818. .TP
  117819. .B user
  117820. Which system user to run composer as.
  117821. .sp
  117822. New in version 2014.1.4.
  117823. .TP
  117824. .B prefer_source
  117825. \fB\-\-prefer\-source\fP option of composer.
  117826. .TP
  117827. .B prefer_dist
  117828. \fB\-\-prefer\-dist\fP option of composer.
  117829. .TP
  117830. .B no_scripts
  117831. \fB\-\-no\-scripts\fP option of composer.
  117832. .TP
  117833. .B no_plugins
  117834. \fB\-\-no\-plugins\fP option of composer.
  117835. .TP
  117836. .B optimize
  117837. \fB\-\-optimize\-autoloader\fP option of composer. Recommended for production.
  117838. .TP
  117839. .B no_dev
  117840. \fB\-\-no\-dev\fP option for composer. Recommended for production.
  117841. .TP
  117842. .B quiet
  117843. \fB\-\-quiet\fP option for composer. Whether or not to return output from composer.
  117844. .TP
  117845. .B composer_home
  117846. \fB$COMPOSER_HOME\fP environment variable
  117847. .TP
  117848. .B env
  117849. A list of environment variables to be set prior to execution.
  117850. .UNINDENT
  117851. .UNINDENT
  117852. .SS salt.states.cryptdev module
  117853. .SS Opening of Encrypted Devices
  117854. .sp
  117855. Ensure that an encrypted device is mapped with the \fImapped\fP function:
  117856. .INDENT 0.0
  117857. .INDENT 3.5
  117858. .sp
  117859. .nf
  117860. .ft C
  117861. mappedname:
  117862. cryptdev.mapped:
  117863. \- device: /dev/sdb1
  117864. \- keyfile: /etc/keyfile.key
  117865. \- opts:
  117866. \- size=256
  117867. swap:
  117868. crypted.mapped:
  117869. \- device: /dev/sdx4
  117870. \- keyfile: /dev/urandom
  117871. \- opts: swap,cipher=aes\-cbc\-essiv:sha256,size=256
  117872. mappedbyuuid:
  117873. crypted.mapped:
  117874. \- device: UUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314
  117875. \- keyfile: /etc/keyfile.key
  117876. \- config: /etc/alternate\-crypttab
  117877. .ft P
  117878. .fi
  117879. .UNINDENT
  117880. .UNINDENT
  117881. .sp
  117882. New in version 2018.3.0.
  117883. .INDENT 0.0
  117884. .TP
  117885. .B salt.states.cryptdev.mapped(name, device, keyfile=None, opts=None, config=u\(aq/etc/crypttab\(aq, persist=True, immediate=False, match_on=u\(aqname\(aq)
  117886. Verify that a device is mapped
  117887. .INDENT 7.0
  117888. .TP
  117889. .B name
  117890. The name under which the device is to be mapped
  117891. .TP
  117892. .B device
  117893. The device name, typically the device node, such as \fB/dev/sdb1\fP
  117894. or \fBUUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314\fP\&.
  117895. .TP
  117896. .B keyfile
  117897. Either \fBNone\fP if the password is to be entered manually on boot, or
  117898. an absolute path to a keyfile. If the password is to be asked
  117899. interactively, the mapping cannot be performed with \fBimmediate=True\fP\&.
  117900. .TP
  117901. .B opts
  117902. A list object of options or a comma delimited list
  117903. .TP
  117904. .B config
  117905. Set an alternative location for the crypttab, if the map is persistent,
  117906. Default is \fB/etc/crypttab\fP
  117907. .TP
  117908. .B persist
  117909. Set if the map should be saved in the crypttab, Default is \fBTrue\fP
  117910. .TP
  117911. .B immediate
  117912. Set if the device mapping should be executed immediately. Requires that
  117913. the keyfile not be \fBNone\fP, because the password cannot be asked
  117914. interactively. Note that options are not passed through on the initial
  117915. mapping. Default is \fBFalse\fP\&.
  117916. .TP
  117917. .B match_on
  117918. A name or list of crypttab properties on which this state should be applied.
  117919. Default is \fBname\fP, meaning that the line is matched only by the name
  117920. parameter. If the desired configuration requires two devices mapped to
  117921. the same name, supply a list of parameters to match on.
  117922. .UNINDENT
  117923. .UNINDENT
  117924. .INDENT 0.0
  117925. .TP
  117926. .B salt.states.cryptdev.unmapped(name, config=u\(aq/etc/crypttab\(aq, persist=True, immediate=False)
  117927. Ensure that a device is unmapped
  117928. .INDENT 7.0
  117929. .TP
  117930. .B name
  117931. The name to ensure is not mapped
  117932. .TP
  117933. .B config
  117934. Set an alternative location for the crypttab, if the map is persistent,
  117935. Default is \fB/etc/crypttab\fP
  117936. .TP
  117937. .B persist
  117938. Set if the map should be removed from the crypttab. Default is \fBTrue\fP
  117939. .TP
  117940. .B immediate
  117941. Set if the device should be unmapped immediately. Default is \fBFalse\fP\&.
  117942. .UNINDENT
  117943. .UNINDENT
  117944. .SS salt.states.csf module
  117945. .SS CSF Ip tables management
  117946. .INDENT 0.0
  117947. .TP
  117948. .B depends
  117949. .INDENT 7.0
  117950. .IP \(bu 2
  117951. csf utility
  117952. .UNINDENT
  117953. .TP
  117954. .B configuration
  117955. See \fI\%http://download.configserver.com/csf/install.txt\fP
  117956. for setup instructions.
  117957. .UNINDENT
  117958. .INDENT 0.0
  117959. .INDENT 3.5
  117960. .sp
  117961. .nf
  117962. .ft C
  117963. Simply allow/deny rules:
  117964. csf.rule_present:
  117965. ip: 1.2.3.4
  117966. method: allow
  117967. .ft P
  117968. .fi
  117969. .UNINDENT
  117970. .UNINDENT
  117971. .INDENT 0.0
  117972. .TP
  117973. .B salt.states.csf.nics_skip(name, nics, ipv6)
  117974. Alias for \fI\%csf.nics_skipped\fP
  117975. .UNINDENT
  117976. .INDENT 0.0
  117977. .TP
  117978. .B salt.states.csf.nics_skipped(name, nics, ipv6=False)
  117979. .INDENT 7.0
  117980. .TP
  117981. .B name
  117982. Meaningless arg, but required for state.
  117983. .TP
  117984. .B nics
  117985. A list of nics to skip.
  117986. .TP
  117987. .B ipv6
  117988. Boolean. Set to true if you want to skip
  117989. the ipv6 interface. Default false (ipv4).
  117990. .UNINDENT
  117991. .UNINDENT
  117992. .INDENT 0.0
  117993. .TP
  117994. .B salt.states.csf.option_present(name, value, reload=False)
  117995. Ensure the state of a particular option/setting in csf.
  117996. .INDENT 7.0
  117997. .TP
  117998. .B name
  117999. The option name in csf.conf
  118000. .TP
  118001. .B value
  118002. The value it should be set to.
  118003. .TP
  118004. .B reload
  118005. Boolean. If set to true, csf will be reloaded after.
  118006. .UNINDENT
  118007. .UNINDENT
  118008. .INDENT 0.0
  118009. .TP
  118010. .B salt.states.csf.ports_open(name, ports, proto=u\(aqtcp\(aq, direction=u\(aqin\(aq)
  118011. Ensure ports are open for a protocol, in a direction.
  118012. e.g. \- proto=\(aqtcp\(aq, direction=\(aqin\(aq would set the values
  118013. for TCP_IN in the csf.conf file.
  118014. .INDENT 7.0
  118015. .TP
  118016. .B ports
  118017. A list of ports that should be open.
  118018. .TP
  118019. .B proto
  118020. The protocol. May be one of \(aqtcp\(aq, \(aqudp\(aq,
  118021. \(aqtcp6\(aq, or \(aqudp6\(aq.
  118022. .TP
  118023. .B direction
  118024. Choose \(aqin\(aq, \(aqout\(aq, or both to indicate the port
  118025. should be opened for inbound traffic, outbound
  118026. traffic, or both.
  118027. .UNINDENT
  118028. .UNINDENT
  118029. .INDENT 0.0
  118030. .TP
  118031. .B salt.states.csf.rule_absent(name, method, port=None, proto=u\(aqtcp\(aq, direction=u\(aqin\(aq, port_origin=u\(aqd\(aq, ip_origin=u\(aqs\(aq, ttl=None, reload=False)
  118032. Ensure iptable is not present.
  118033. .INDENT 7.0
  118034. .TP
  118035. .B name
  118036. The ip address or CIDR for the rule.
  118037. .TP
  118038. .B method
  118039. The type of rule. Either \(aqallow\(aq or \(aqdeny\(aq.
  118040. .TP
  118041. .B port
  118042. Optional port to be open or closed for the
  118043. iptables rule.
  118044. .TP
  118045. .B proto
  118046. The protocol. Either \(aqtcp\(aq, \(aqudp\(aq.
  118047. Only applicable if port is specified.
  118048. .TP
  118049. .B direction
  118050. The diretion of traffic to apply the rule to.
  118051. Either \(aqin\(aq, or \(aqout\(aq. Only applicable if
  118052. port is specified.
  118053. .TP
  118054. .B port_origin
  118055. Specifies either the source or destination
  118056. port is relevant for this rule. Only applicable
  118057. if port is specified. Either \(aqs\(aq, or \(aqd\(aq.
  118058. .TP
  118059. .B ip_origin
  118060. Specifies whether the ip in this rule refers to
  118061. the source or destination ip. Either \(aqs\(aq, or
  118062. \(aqd\(aq. Only applicable if port is specified.
  118063. .TP
  118064. .B ttl
  118065. How long the rule should exist. If supplied,
  118066. \fIcsf.tempallow()\fP or csf.tempdeny()\(ga are used.
  118067. .TP
  118068. .B reload
  118069. Reload the csf service after applying this rule.
  118070. Default false.
  118071. .UNINDENT
  118072. .UNINDENT
  118073. .INDENT 0.0
  118074. .TP
  118075. .B salt.states.csf.rule_present(name, method, port=None, proto=u\(aqtcp\(aq, direction=u\(aqin\(aq, port_origin=u\(aqd\(aq, ip_origin=u\(aqs\(aq, ttl=None, comment=u\(aq\(aq, reload=False)
  118076. Ensure iptable rule exists.
  118077. .INDENT 7.0
  118078. .TP
  118079. .B name
  118080. The ip address or CIDR for the rule.
  118081. .TP
  118082. .B method
  118083. The type of rule. Either \(aqallow\(aq or \(aqdeny\(aq.
  118084. .TP
  118085. .B port
  118086. Optional port to be open or closed for the
  118087. iptables rule.
  118088. .TP
  118089. .B proto
  118090. The protocol. Either \(aqtcp\(aq, or \(aqudp\(aq.
  118091. Only applicable if port is specified.
  118092. .TP
  118093. .B direction
  118094. The diretion of traffic to apply the rule to.
  118095. Either \(aqin\(aq, or \(aqout\(aq. Only applicable if
  118096. port is specified.
  118097. .TP
  118098. .B port_origin
  118099. Specifies either the source or destination
  118100. port is relevant for this rule. Only applicable
  118101. if port is specified. Either \(aqs\(aq, or \(aqd\(aq.
  118102. .TP
  118103. .B ip_origin
  118104. Specifies whether the ip in this rule refers to
  118105. the source or destination ip. Either \(aqs\(aq, or
  118106. \(aqd\(aq. Only applicable if port is specified.
  118107. .TP
  118108. .B ttl
  118109. How long the rule should exist. If supplied,
  118110. \fIcsf.tempallow()\fP or csf.tempdeny()\(ga are used.
  118111. .TP
  118112. .B comment
  118113. An optional comment to appear after the rule
  118114. as a #comment .
  118115. .TP
  118116. .B reload
  118117. Reload the csf service after applying this rule.
  118118. Default false.
  118119. .UNINDENT
  118120. .UNINDENT
  118121. .INDENT 0.0
  118122. .TP
  118123. .B salt.states.csf.testing_off(name, reload=False)
  118124. Ensure testing mode is enabled in csf.
  118125. .INDENT 7.0
  118126. .TP
  118127. .B reload
  118128. Reload CSF after changing the testing status.
  118129. Default false.
  118130. .UNINDENT
  118131. .UNINDENT
  118132. .INDENT 0.0
  118133. .TP
  118134. .B salt.states.csf.testing_on(name, reload=False)
  118135. Ensure testing mode is enabled in csf.
  118136. .INDENT 7.0
  118137. .TP
  118138. .B reload
  118139. Reload CSF after changing the testing status.
  118140. Default false.
  118141. .UNINDENT
  118142. .UNINDENT
  118143. .SS salt.states.cyg
  118144. .sp
  118145. Installation of Cygwin packages.
  118146. .sp
  118147. A state module to manage cygwin packages. Packages can be installed
  118148. or removed.
  118149. .INDENT 0.0
  118150. .INDENT 3.5
  118151. .sp
  118152. .nf
  118153. .ft C
  118154. dos2unix:
  118155. cyg.installed
  118156. .ft P
  118157. .fi
  118158. .UNINDENT
  118159. .UNINDENT
  118160. .INDENT 0.0
  118161. .TP
  118162. .B class salt.states.cyg.DictDiffer(current_dict, past_dict)
  118163. Calculate the difference between two dictionaries.
  118164. .INDENT 7.0
  118165. .IP 1. 3
  118166. items added
  118167. .IP 2. 3
  118168. items removed
  118169. .IP 3. 3
  118170. keys same in both but changed values
  118171. .IP 4. 3
  118172. keys same in both and unchanged values
  118173. .UNINDENT
  118174. .INDENT 7.0
  118175. .TP
  118176. .B added()
  118177. Return a set of additions to past_dict.
  118178. .UNINDENT
  118179. .INDENT 7.0
  118180. .TP
  118181. .B changed()
  118182. Return a set of the keys with changed values.
  118183. .UNINDENT
  118184. .INDENT 7.0
  118185. .TP
  118186. .B removed()
  118187. Return a set of things removed from past_dict.
  118188. .UNINDENT
  118189. .INDENT 7.0
  118190. .TP
  118191. .B same()
  118192. True if the two dicts are the same.
  118193. .UNINDENT
  118194. .INDENT 7.0
  118195. .TP
  118196. .B unchanged()
  118197. Return a set of the keys with unchanged values.
  118198. .UNINDENT
  118199. .UNINDENT
  118200. .INDENT 0.0
  118201. .TP
  118202. .B salt.states.cyg.installed(name, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118203. Make sure that a package is installed.
  118204. .INDENT 7.0
  118205. .TP
  118206. .B name
  118207. The name of the package to install
  118208. .TP
  118209. .B cyg_arch
  118210. x86_64
  118211. The cygwin architecture to install the package into.
  118212. Current options are x86 and x86_64
  118213. .TP
  118214. .B mirrors
  118215. None
  118216. List of mirrors to check.
  118217. None will use a default mirror (kernel.org)
  118218. .UNINDENT
  118219. .sp
  118220. CLI Example:
  118221. .INDENT 7.0
  118222. .INDENT 3.5
  118223. .sp
  118224. .nf
  118225. .ft C
  118226. rsync:
  118227. cyg.installed:
  118228. \- mirrors:
  118229. \- http://mirror/without/public/key: ""
  118230. \- http://mirror/with/public/key: http://url/of/public/key
  118231. .ft P
  118232. .fi
  118233. .UNINDENT
  118234. .UNINDENT
  118235. .UNINDENT
  118236. .INDENT 0.0
  118237. .TP
  118238. .B salt.states.cyg.removed(name, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118239. Make sure that a package is not installed.
  118240. .INDENT 7.0
  118241. .TP
  118242. .B name
  118243. The name of the package to uninstall
  118244. .TP
  118245. .B cyg_arch
  118246. x86_64
  118247. The cygwin architecture to remove the package from.
  118248. Current options are x86 and x86_64
  118249. .TP
  118250. .B mirrors
  118251. None
  118252. List of mirrors to check.
  118253. None will use a default mirror (kernel.org)
  118254. .UNINDENT
  118255. .sp
  118256. CLI Example:
  118257. .INDENT 7.0
  118258. .INDENT 3.5
  118259. .sp
  118260. .nf
  118261. .ft C
  118262. rsync:
  118263. cyg.removed:
  118264. \- mirrors:
  118265. \- http://mirror/without/public/key: ""
  118266. \- http://mirror/with/public/key: http://url/of/public/key
  118267. .ft P
  118268. .fi
  118269. .UNINDENT
  118270. .UNINDENT
  118271. .UNINDENT
  118272. .INDENT 0.0
  118273. .TP
  118274. .B salt.states.cyg.updated(name=None, cyg_arch=u\(aqx86_64\(aq, mirrors=None)
  118275. Make sure all packages are up to date.
  118276. .INDENT 7.0
  118277. .TP
  118278. .B name
  118279. None
  118280. No affect, salt fails poorly without the arg available
  118281. .TP
  118282. .B cyg_arch
  118283. x86_64
  118284. The cygwin architecture to update.
  118285. Current options are x86 and x86_64
  118286. .TP
  118287. .B mirrors
  118288. None
  118289. List of mirrors to check.
  118290. None will use a default mirror (kernel.org)
  118291. .UNINDENT
  118292. .sp
  118293. CLI Example:
  118294. .INDENT 7.0
  118295. .INDENT 3.5
  118296. .sp
  118297. .nf
  118298. .ft C
  118299. rsync:
  118300. cyg.updated:
  118301. \- mirrors:
  118302. \- http://mirror/without/public/key: ""
  118303. \- http://mirror/with/public/key: http://url/of/public/key
  118304. .ft P
  118305. .fi
  118306. .UNINDENT
  118307. .UNINDENT
  118308. .UNINDENT
  118309. .SS salt.states.ddns
  118310. .SS Dynamic DNS updates
  118311. .sp
  118312. Ensure a DNS record is present or absent utilizing RFC 2136
  118313. type dynamic updates.
  118314. .INDENT 0.0
  118315. .TP
  118316. .B depends
  118317. .INDENT 7.0
  118318. .IP \(bu 2
  118319. \fI\%dnspython\fP
  118320. .UNINDENT
  118321. .UNINDENT
  118322. .sp
  118323. \fBNOTE:\fP
  118324. .INDENT 0.0
  118325. .INDENT 3.5
  118326. The \fBdnspython\fP module is required when managing DDNS using a TSIG key.
  118327. If you are not using a TSIG key, DDNS is allowed by ACLs based on IP
  118328. address and the \fBdnspython\fP module is not required.
  118329. .UNINDENT
  118330. .UNINDENT
  118331. .sp
  118332. Example:
  118333. .INDENT 0.0
  118334. .INDENT 3.5
  118335. .sp
  118336. .nf
  118337. .ft C
  118338. webserver:
  118339. ddns.present:
  118340. \- zone: example.com
  118341. \- ttl: 60
  118342. \- data: 111.222.333.444
  118343. \- nameserver: 123.234.345.456
  118344. \- keyfile: /srv/salt/dnspy_tsig_key.txt
  118345. .ft P
  118346. .fi
  118347. .UNINDENT
  118348. .UNINDENT
  118349. .INDENT 0.0
  118350. .TP
  118351. .B salt.states.ddns.absent(name, zone, data=None, rdtype=None, **kwargs)
  118352. Ensures that the named DNS record is absent.
  118353. .INDENT 7.0
  118354. .TP
  118355. .B name
  118356. The host portion of the DNS record, e.g., \(aqwebserver\(aq. Name and zone
  118357. are concatenated when the entry is created unless name includes a
  118358. trailing dot, so make sure that information is not duplicated in these
  118359. two arguments.
  118360. .TP
  118361. .B zone
  118362. The zone to check
  118363. .TP
  118364. .B data
  118365. Data for the DNS record. E.g., the IP address for an A record. If omitted,
  118366. all records matching name (and rdtype, if provided) will be purged.
  118367. .TP
  118368. .B rdtype
  118369. DNS resource type. If omitted, all types will be purged.
  118370. .TP
  118371. .B \fB**kwargs\fP
  118372. Additional arguments the ddns.update function may need (e.g.
  118373. nameserver, keyfile, keyname). Note that the nsupdate key file can’t
  118374. be reused by this function, the keyfile and other arguments must
  118375. follow the \fI\%dnspython\fP spec.
  118376. .UNINDENT
  118377. .UNINDENT
  118378. .INDENT 0.0
  118379. .TP
  118380. .B salt.states.ddns.present(name, zone, ttl, data, rdtype=u\(aqA\(aq, **kwargs)
  118381. Ensures that the named DNS record is present with the given ttl.
  118382. .INDENT 7.0
  118383. .TP
  118384. .B name
  118385. The host portion of the DNS record, e.g., \(aqwebserver\(aq. Name and zone
  118386. are concatenated when the entry is created unless name includes a
  118387. trailing dot, so make sure that information is not duplicated in these
  118388. two arguments.
  118389. .TP
  118390. .B zone
  118391. The zone to check/update
  118392. .TP
  118393. .B ttl
  118394. TTL for the record
  118395. .TP
  118396. .B data
  118397. Data for the DNS record. E.g., the IP address for an A record.
  118398. .TP
  118399. .B rdtype
  118400. DNS resource type. Default \(aqA\(aq.
  118401. .TP
  118402. .B \fB**kwargs\fP
  118403. Additional arguments the ddns.update function may need (e.g.
  118404. nameserver, keyfile, keyname). Note that the nsupdate key file can’t
  118405. be reused by this function, the keyfile and other arguments must
  118406. follow the \fI\%dnspython\fP spec.
  118407. .UNINDENT
  118408. .UNINDENT
  118409. .SS salt.states.debconfmod
  118410. .SS Management of debconf selections
  118411. .INDENT 0.0
  118412. .TP
  118413. .B depends
  118414. .INDENT 7.0
  118415. .IP \(bu 2
  118416. debconf\-utils package
  118417. .UNINDENT
  118418. .UNINDENT
  118419. .sp
  118420. The debconfmod state module manages the enforcement of debconf selections,
  118421. this state can set those selections prior to package installation.
  118422. .SS Available Functions
  118423. .sp
  118424. The debconfmod state has two functions, the \fBset\fP and \fBset_file\fP functions
  118425. .INDENT 0.0
  118426. .TP
  118427. .B set
  118428. Set debconf selections from the state itself
  118429. .TP
  118430. .B set_file
  118431. Set debconf selections from a file
  118432. .UNINDENT
  118433. .INDENT 0.0
  118434. .INDENT 3.5
  118435. .sp
  118436. .nf
  118437. .ft C
  118438. nullmailer\-debconf:
  118439. debconf.set:
  118440. \- name: nullmailer
  118441. \- data:
  118442. \(aqshared/mailname\(aq: {\(aqtype\(aq: \(aqstring\(aq, \(aqvalue\(aq: \(aqserver.domain.tld\(aq}
  118443. \(aqnullmailer/relayhost\(aq: {\(aqtype\(aq: \(aqstring\(aq, \(aqvalue\(aq: \(aqmail.domain.tld\(aq}
  118444. ferm\-debconf:
  118445. debconf.set:
  118446. \- name: ferm
  118447. \- data:
  118448. \(aqferm/enable\(aq: {\(aqtype\(aq: \(aqboolean\(aq, \(aqvalue\(aq: True}
  118449. .ft P
  118450. .fi
  118451. .UNINDENT
  118452. .UNINDENT
  118453. .sp
  118454. \fBNOTE:\fP
  118455. .INDENT 0.0
  118456. .INDENT 3.5
  118457. Due to how PyYAML imports nested dicts (see here),
  118458. the values in the \fBdata\fP dict must be indented four spaces instead of two.
  118459. .UNINDENT
  118460. .UNINDENT
  118461. .sp
  118462. If you\(aqre setting debconf values that requires \fIdpkg\-reconfigure\fP, you can use
  118463. the \fBonchanges\fP requisite to reconfigure your package:
  118464. .INDENT 0.0
  118465. .INDENT 3.5
  118466. .sp
  118467. .nf
  118468. .ft C
  118469. set\-default\-shell:
  118470. debconf.set:
  118471. \- name: dash
  118472. \- data:
  118473. \(aqdash/sh\(aq: {\(aqtype\(aq: \(aqboolean\(aq, \(aqvalue\(aq: false}
  118474. reconfigure\-dash:
  118475. cmd.run:
  118476. \- name: dpkg\-reconfigure \-f noninteractive dash
  118477. \- onchanges:
  118478. \- debconf: set\-default\-shell
  118479. .ft P
  118480. .fi
  118481. .UNINDENT
  118482. .UNINDENT
  118483. .sp
  118484. Every time the \fBset\-default\-shell\fP state changes, the \fBreconfigure\-dash\fP
  118485. state will also run.
  118486. .sp
  118487. \fBNOTE:\fP
  118488. .INDENT 0.0
  118489. .INDENT 3.5
  118490. For boolean types, the value should be \fBtrue\fP or \fBfalse\fP, not
  118491. \fB\(aqtrue\(aq\fP or \fB\(aqfalse\(aq\fP\&.
  118492. .UNINDENT
  118493. .UNINDENT
  118494. .INDENT 0.0
  118495. .TP
  118496. .B salt.states.debconfmod.set(name, data, **kwargs)
  118497. Set debconf selections
  118498. .INDENT 7.0
  118499. .INDENT 3.5
  118500. .sp
  118501. .nf
  118502. .ft C
  118503. <state_id>:
  118504. debconf.set:
  118505. \- name: <name>
  118506. \- data:
  118507. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118508. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118509. <state_id>:
  118510. debconf.set:
  118511. \- name: <name>
  118512. \- data:
  118513. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118514. <question>: {\(aqtype\(aq: <type>, \(aqvalue\(aq: <value>}
  118515. .ft P
  118516. .fi
  118517. .UNINDENT
  118518. .UNINDENT
  118519. .INDENT 7.0
  118520. .TP
  118521. .B name:
  118522. The package name to set answers for.
  118523. .TP
  118524. .B data:
  118525. A set of questions/answers for debconf. Note that everything under
  118526. this must be indented twice.
  118527. .TP
  118528. .B question:
  118529. The question the is being pre\-answered
  118530. .TP
  118531. .B type:
  118532. The type of question that is being asked (string, boolean, select, etc.)
  118533. .TP
  118534. .B value:
  118535. The answer to the question
  118536. .UNINDENT
  118537. .UNINDENT
  118538. .INDENT 0.0
  118539. .TP
  118540. .B salt.states.debconfmod.set_file(name, source, template=None, context=None, defaults=None, **kwargs)
  118541. Set debconf selections from a file or a template
  118542. .INDENT 7.0
  118543. .INDENT 3.5
  118544. .sp
  118545. .nf
  118546. .ft C
  118547. <state_id>:
  118548. debconf.set_file:
  118549. \- source: salt://pathto/pkg.selections
  118550. <state_id>:
  118551. debconf.set_file:
  118552. \- source: salt://pathto/pkg.selections?saltenv=myenvironment
  118553. <state_id>:
  118554. debconf.set_file:
  118555. \- source: salt://pathto/pkg.selections.jinja2
  118556. \- template: jinja
  118557. \- context:
  118558. some_value: "false"
  118559. .ft P
  118560. .fi
  118561. .UNINDENT
  118562. .UNINDENT
  118563. .INDENT 7.0
  118564. .TP
  118565. .B source:
  118566. The location of the file containing the package selections
  118567. .TP
  118568. .B template
  118569. If this setting is applied then the named templating engine will be
  118570. used to render the package selections file, currently jinja, mako, and
  118571. wempy are supported
  118572. .TP
  118573. .B context
  118574. Overrides default context variables passed to the template.
  118575. .TP
  118576. .B defaults
  118577. Default context passed to the template.
  118578. .UNINDENT
  118579. .UNINDENT
  118580. .SS salt.states.dellchassis
  118581. .sp
  118582. Manage chassis via Salt Proxies.
  118583. .sp
  118584. New in version 2015.8.2.
  118585. .sp
  118586. Below is an example state that sets basic parameters:
  118587. .INDENT 0.0
  118588. .INDENT 3.5
  118589. .sp
  118590. .nf
  118591. .ft C
  118592. my\-dell\-chassis:
  118593. dellchassis.chassis:
  118594. \- chassis_name: my\-dell\-chassis
  118595. \- datacenter: dc\-1\-us
  118596. \- location: my\-location
  118597. \- mode: 2
  118598. \- idrac_launch: 1
  118599. \- slot_names:
  118600. \- server\-1: my\-slot\-name
  118601. \- server\-2: my\-other\-slot\-name
  118602. \- blade_power_states:
  118603. \- server\-1: on
  118604. \- server\-2: off
  118605. \- server\-3: powercycle
  118606. .ft P
  118607. .fi
  118608. .UNINDENT
  118609. .UNINDENT
  118610. .sp
  118611. However, it is possible to place the entire set of chassis configuration
  118612. data in pillar. Here\(aqs an example pillar structure:
  118613. .INDENT 0.0
  118614. .INDENT 3.5
  118615. .sp
  118616. .nf
  118617. .ft C
  118618. proxy:
  118619. host: 10.27.20.18
  118620. admin_username: root
  118621. fallback_admin_username: root
  118622. passwords:
  118623. \- super\-secret
  118624. \- old\-secret
  118625. proxytype: fx2
  118626. chassis:
  118627. name: fx2\-1
  118628. username: root
  118629. password: saltstack1
  118630. datacenter: london
  118631. location: rack\-1\-shelf\-3
  118632. management_mode: 2
  118633. idrac_launch: 0
  118634. slot_names:
  118635. \- \(aqserver\-1\(aq: blade1
  118636. \- \(aqserver\-2\(aq: blade2
  118637. servers:
  118638. server\-1:
  118639. idrac_password: saltstack1
  118640. ipmi_over_lan: True
  118641. ip: 172.17.17.132
  118642. netmask: 255.255.0.0
  118643. gateway: 172.17.17.1
  118644. server\-2:
  118645. idrac_password: saltstack1
  118646. ipmi_over_lan: True
  118647. ip: 172.17.17.2
  118648. netmask: 255.255.0.0
  118649. gateway: 172.17.17.1
  118650. server\-3:
  118651. idrac_password: saltstack1
  118652. ipmi_over_lan: True
  118653. ip: 172.17.17.20
  118654. netmask: 255.255.0.0
  118655. gateway: 172.17.17.1
  118656. server\-4:
  118657. idrac_password: saltstack1
  118658. ipmi_over_lan: True
  118659. ip: 172.17.17.2
  118660. netmask: 255.255.0.0
  118661. gateway: 172.17.17.1
  118662. switches:
  118663. switch\-1:
  118664. ip: 192.168.1.2
  118665. netmask: 255.255.255.0
  118666. gateway: 192.168.1.1
  118667. snmp: nonpublic
  118668. password: saltstack1
  118669. switch\-2:
  118670. ip: 192.168.1.3
  118671. netmask: 255.255.255.0
  118672. gateway: 192.168.1.1
  118673. snmp: nonpublic
  118674. password: saltstack1
  118675. .ft P
  118676. .fi
  118677. .UNINDENT
  118678. .UNINDENT
  118679. .sp
  118680. And to go with it, here\(aqs an example state that pulls the data from the
  118681. pillar stated above:
  118682. .INDENT 0.0
  118683. .INDENT 3.5
  118684. .sp
  118685. .nf
  118686. .ft C
  118687. {% set details = pillar.get(\(aqproxy:chassis\(aq, {}) %}
  118688. standup\-step1:
  118689. dellchassis.chassis:
  118690. \- name: {{ details[\(aqname\(aq] }}
  118691. \- location: {{ details[\(aqlocation\(aq] }}
  118692. \- mode: {{ details[\(aqmanagement_mode\(aq] }}
  118693. \- idrac_launch: {{ details[\(aqidrac_launch\(aq] }}
  118694. \- slot_names:
  118695. {% for entry details[\(aqslot_names\(aq] %}
  118696. \- {{ next(iter(entry)) }}: {{ entry[next(iter(entry))] }}
  118697. {% endfor %}
  118698. blade_powercycle:
  118699. dellchassis.chassis:
  118700. \- blade_power_states:
  118701. \- server\-1: powercycle
  118702. \- server\-2: powercycle
  118703. \- server\-3: powercycle
  118704. \- server\-4: powercycle
  118705. # Set idrac_passwords for blades. racadm needs them to be called \(aqserver\-x\(aq
  118706. {% for k, v in details[\(aqservers\(aq].iteritems() %}
  118707. {{ k }}:
  118708. dellchassis.blade_idrac:
  118709. \- idrac_password: {{ v[\(aqidrac_password\(aq] }}
  118710. {% endfor %}
  118711. # Set management ip addresses, passwords, and snmp strings for switches
  118712. {% for k, v in details[\(aqswitches\(aq].iteritems() %}
  118713. {{ k }}\-switch\-setup:
  118714. dellchassis.switch:
  118715. \- name: {{ k }}
  118716. \- ip: {{ v[\(aqip\(aq] }}
  118717. \- netmask: {{ v[\(aqnetmask\(aq] }}
  118718. \- gateway: {{ v[\(aqgateway\(aq] }}
  118719. \- password: {{ v[\(aqpassword\(aq] }}
  118720. \- snmp: {{ v[\(aqsnmp\(aq] }}
  118721. {% endfor %}
  118722. .ft P
  118723. .fi
  118724. .UNINDENT
  118725. .UNINDENT
  118726. .sp
  118727. \fBNOTE:\fP
  118728. .INDENT 0.0
  118729. .INDENT 3.5
  118730. This state module relies on the dracr.py execution module, which runs racadm commands on
  118731. the chassis, blades, etc. The racadm command runs very slowly and, depending on your state,
  118732. the proxy minion return might timeout before the racadm commands have completed. If you
  118733. are repeatedly seeing minions timeout after state calls, please use the \fB\-t\fP CLI argument
  118734. to increase the timeout variable.
  118735. .sp
  118736. For example:
  118737. .INDENT 0.0
  118738. .INDENT 3.5
  118739. .sp
  118740. .nf
  118741. .ft C
  118742. salt \(aq*\(aq state.sls my\-dell\-chasis\-state\-name \-t 60
  118743. .ft P
  118744. .fi
  118745. .UNINDENT
  118746. .UNINDENT
  118747. .UNINDENT
  118748. .UNINDENT
  118749. .sp
  118750. \fBNOTE:\fP
  118751. .INDENT 0.0
  118752. .INDENT 3.5
  118753. The Dell CMC units perform adequately but many iDRACs are \fBexcruciatingly\fP
  118754. slow. Some functions can take minutes to execute.
  118755. .UNINDENT
  118756. .UNINDENT
  118757. .INDENT 0.0
  118758. .TP
  118759. .B salt.states.dellchassis.blade_idrac(name, idrac_password=None, idrac_ipmi=None, idrac_ip=None, idrac_netmask=None, idrac_gateway=None, idrac_dnsname=None, idrac_dhcp=None)
  118760. Set parameters for iDRAC in a blade.
  118761. .INDENT 7.0
  118762. .TP
  118763. .B Parameters
  118764. .INDENT 7.0
  118765. .IP \(bu 2
  118766. \fBidrac_password\fP \-\- Password to use to connect to the iDRACs directly
  118767. (idrac_ipmi and idrac_dnsname must be set directly on the iDRAC. They
  118768. can\(aqt be set through the CMC. If this password is present, use it
  118769. instead of the CMC password)
  118770. .IP \(bu 2
  118771. \fBidrac_ipmi\fP \-\- Enable/Disable IPMI over LAN
  118772. .IP \(bu 2
  118773. \fBidrac_ip\fP \-\- Set IP address for iDRAC
  118774. .IP \(bu 2
  118775. \fBidrac_netmask\fP \-\- Set netmask for iDRAC
  118776. .IP \(bu 2
  118777. \fBidrac_gateway\fP \-\- Set gateway for iDRAC
  118778. .IP \(bu 2
  118779. \fBidrac_dhcp\fP \-\- Turn on DHCP for iDRAC (True turns on, False does
  118780. nothing becaause setting a static IP will disable DHCP).
  118781. .UNINDENT
  118782. .TP
  118783. .B Returns
  118784. A standard Salt changes dictionary
  118785. .UNINDENT
  118786. .sp
  118787. NOTE: If any of the IP address settings is configured, all of ip, netmask,
  118788. and gateway must be present
  118789. .UNINDENT
  118790. .INDENT 0.0
  118791. .TP
  118792. .B salt.states.dellchassis.chassis(name, chassis_name=None, password=None, datacenter=None, location=None, mode=None, idrac_launch=None, slot_names=None, blade_power_states=None)
  118793. Manage a Dell Chassis.
  118794. .INDENT 7.0
  118795. .TP
  118796. .B chassis_name
  118797. The name of the chassis.
  118798. .TP
  118799. .B datacenter
  118800. The datacenter in which the chassis is located
  118801. .TP
  118802. .B location
  118803. The location of the chassis.
  118804. .TP
  118805. .B password
  118806. Password for the chassis. Note: If this password is set for the chassis,
  118807. the current implementation of this state will set this password both on
  118808. the chassis and the iDrac passwords on any configured blades. If the
  118809. password for the blades should be distinct, they should be set separately
  118810. with the blade_idrac function.
  118811. .TP
  118812. .B mode
  118813. The management mode of the chassis. Viable options are:
  118814. .INDENT 7.0
  118815. .IP \(bu 2
  118816. 0: None
  118817. .IP \(bu 2
  118818. 1: Monitor
  118819. .IP \(bu 2
  118820. 2: Manage and Monitor
  118821. .UNINDENT
  118822. .TP
  118823. .B idrac_launch
  118824. The iDRAC launch method of the chassis. Viable options are:
  118825. .INDENT 7.0
  118826. .IP \(bu 2
  118827. 0: Disabled (launch iDRAC using IP address)
  118828. .IP \(bu 2
  118829. 1: Enabled (launch iDRAC using DNS name)
  118830. .UNINDENT
  118831. .TP
  118832. .B slot_names
  118833. The names of the slots, provided as a list identified by
  118834. their slot numbers.
  118835. .TP
  118836. .B blade_power_states
  118837. The power states of a blade server, provided as a list and
  118838. identified by their server numbers. Viable options are:
  118839. .INDENT 7.0
  118840. .INDENT 3.5
  118841. .INDENT 0.0
  118842. .IP \(bu 2
  118843. on: Ensure the blade server is powered on.
  118844. .IP \(bu 2
  118845. off: Ensure the blade server is powered off.
  118846. .IP \(bu 2
  118847. powercycle: Power cycle the blade server.
  118848. .UNINDENT
  118849. .UNINDENT
  118850. .UNINDENT
  118851. .UNINDENT
  118852. .sp
  118853. Example:
  118854. .INDENT 7.0
  118855. .INDENT 3.5
  118856. .sp
  118857. .nf
  118858. .ft C
  118859. my\-dell\-chassis:
  118860. dellchassis.chassis:
  118861. \- chassis_name: my\-dell\-chassis
  118862. \- location: my\-location
  118863. \- datacenter: london
  118864. \- mode: 2
  118865. \- idrac_launch: 1
  118866. \- slot_names:
  118867. \- 1: my\-slot\-name
  118868. \- 2: my\-other\-slot\-name
  118869. \- blade_power_states:
  118870. \- server\-1: on
  118871. \- server\-2: off
  118872. \- server\-3: powercycle
  118873. .ft P
  118874. .fi
  118875. .UNINDENT
  118876. .UNINDENT
  118877. .UNINDENT
  118878. .INDENT 0.0
  118879. .TP
  118880. .B salt.states.dellchassis.firmware_update(hosts=None, directory=u\(aq\(aq)
  118881. .INDENT 7.0
  118882. .INDENT 3.5
  118883. State to update the firmware on host
  118884. using the \fBracadm\fP command
  118885. .INDENT 0.0
  118886. .TP
  118887. .B firmwarefile
  118888. filename (string) starting with \fBsalt://\fP
  118889. .TP
  118890. .B host
  118891. string representing the hostname
  118892. supplied to the \fBracadm\fP command
  118893. .TP
  118894. .B directory
  118895. Directory name where firmwarefile
  118896. will be downloaded
  118897. .UNINDENT
  118898. .UNINDENT
  118899. .UNINDENT
  118900. .INDENT 7.0
  118901. .INDENT 3.5
  118902. .sp
  118903. .nf
  118904. .ft C
  118905. dell\-chassis\-firmware\-update:
  118906. dellchassis.firmware_update:
  118907. hosts:
  118908. cmc:
  118909. salt://firmware_cmc.exe
  118910. server\-1:
  118911. salt://firmware.exe
  118912. directory: /opt/firmwares
  118913. .ft P
  118914. .fi
  118915. .UNINDENT
  118916. .UNINDENT
  118917. .UNINDENT
  118918. .INDENT 0.0
  118919. .TP
  118920. .B salt.states.dellchassis.switch(name, ip=None, netmask=None, gateway=None, dhcp=None, password=None, snmp=None)
  118921. Manage switches in a Dell Chassis.
  118922. .INDENT 7.0
  118923. .TP
  118924. .B name
  118925. The switch designation (e.g. switch\-1, switch\-2)
  118926. .TP
  118927. .B ip
  118928. The Static IP Address of the switch
  118929. .TP
  118930. .B netmask
  118931. The netmask for the static IP
  118932. .TP
  118933. .B gateway
  118934. The gateway for the static IP
  118935. .TP
  118936. .B dhcp
  118937. True: Enable DHCP
  118938. False: Do not change DHCP setup
  118939. (disabling DHCP is automatic when a static IP is set)
  118940. .TP
  118941. .B password
  118942. The access (root) password for the switch
  118943. .TP
  118944. .B snmp
  118945. The SNMP community string for the switch
  118946. .UNINDENT
  118947. .sp
  118948. Example:
  118949. .INDENT 7.0
  118950. .INDENT 3.5
  118951. .sp
  118952. .nf
  118953. .ft C
  118954. my\-dell\-chassis:
  118955. dellchassis.switch:
  118956. \- switch: switch\-1
  118957. \- ip: 192.168.1.1
  118958. \- netmask: 255.255.255.0
  118959. \- gateway: 192.168.1.254
  118960. \- dhcp: True
  118961. \- password: secret
  118962. \- snmp: public
  118963. .ft P
  118964. .fi
  118965. .UNINDENT
  118966. .UNINDENT
  118967. .UNINDENT
  118968. .SS salt.states.disk
  118969. .sp
  118970. Disk monitoring state
  118971. .sp
  118972. Monitor the state of disk resources.
  118973. .sp
  118974. The \fBdisk.status\fP function can be used to report that the used space of a
  118975. filesystem is within the specified limits.
  118976. .INDENT 0.0
  118977. .INDENT 3.5
  118978. .sp
  118979. .nf
  118980. .ft C
  118981. used_space:
  118982. disk.status:
  118983. \- name: /dev/xda1
  118984. \- maximum: 79%
  118985. \- minimum: 11%
  118986. .ft P
  118987. .fi
  118988. .UNINDENT
  118989. .UNINDENT
  118990. .sp
  118991. It can be used with an \fBonfail\fP requisite, for example, to take additional
  118992. action in response to or in preparation for other states.
  118993. .INDENT 0.0
  118994. .INDENT 3.5
  118995. .sp
  118996. .nf
  118997. .ft C
  118998. storage_threshold:
  118999. disk.status:
  119000. \- name: /dev/xda1
  119001. \- maximum: 97%
  119002. clear_cache:
  119003. cmd.run:
  119004. \- name: rm \-r /var/cache/app
  119005. \- onfail:
  119006. \- disk: storage_threshold
  119007. .ft P
  119008. .fi
  119009. .UNINDENT
  119010. .UNINDENT
  119011. .sp
  119012. To use kilobytes (KB) for \fBminimum\fP and \fBmaximum\fP rather than percents,
  119013. specify the \fBabsolute\fP flag:
  119014. .INDENT 0.0
  119015. .INDENT 3.5
  119016. .sp
  119017. .nf
  119018. .ft C
  119019. used_space:
  119020. disk.status:
  119021. \- name: /dev/xda1
  119022. \- minimum: 1024 KB
  119023. \- maximum: 1048576 KB
  119024. \- absolute: True
  119025. .ft P
  119026. .fi
  119027. .UNINDENT
  119028. .UNINDENT
  119029. .INDENT 0.0
  119030. .TP
  119031. .B salt.states.disk.status(name, maximum=None, minimum=None, absolute=False, free=False)
  119032. Return the current disk usage stats for the named mount point
  119033. .INDENT 7.0
  119034. .TP
  119035. .B name
  119036. Disk mount or directory for which to check used space
  119037. .TP
  119038. .B maximum
  119039. The maximum disk utilization
  119040. .TP
  119041. .B minimum
  119042. The minimum disk utilization
  119043. .TP
  119044. .B absolute
  119045. By default, the utilization is measured in percentage. Set
  119046. the \fIabsolute\fP flag to use kilobytes.
  119047. .sp
  119048. New in version 2016.11.0.
  119049. .TP
  119050. .B free
  119051. By default, \fIminimum\fP & \fImaximum\fP refer to the amount of used space.
  119052. Set to \fITrue\fP to evaluate the free space instead.
  119053. .UNINDENT
  119054. .UNINDENT
  119055. .SS salt.states.dvs module
  119056. .sp
  119057. Manage VMware distributed virtual switches (DVSs) and their distributed virtual
  119058. portgroups (DVportgroups).
  119059. .INDENT 0.0
  119060. .TP
  119061. .B codeauthor
  119062. \fIAlexandru Bleotu <alexandru.bleotu@morganstaley.com>\fP
  119063. .UNINDENT
  119064. Examples
  119065. .sp
  119066. Several settings can be changed for DVSs and DVporgroups. Here are two examples
  119067. covering all of the settings. Fewer settings can be used
  119068. .SS DVS
  119069. .INDENT 0.0
  119070. .INDENT 3.5
  119071. .sp
  119072. .nf
  119073. .ft C
  119074. \(aqname\(aq: \(aqdvs1\(aq,
  119075. \(aqmax_mtu\(aq: 1000,
  119076. \(aquplink_names\(aq: [
  119077. \(aqdvUplink1\(aq,
  119078. \(aqdvUplink2\(aq,
  119079. \(aqdvUplink3\(aq
  119080. ],
  119081. \(aqcapability\(aq: {
  119082. \(aqportgroup_operation_supported\(aq: false,
  119083. \(aqoperation_supported\(aq: true,
  119084. \(aqport_operation_supported\(aq: false
  119085. },
  119086. \(aqlacp_api_version\(aq: \(aqmultipleLag\(aq,
  119087. \(aqcontact_email\(aq: \(aqfoo@email.com\(aq,
  119088. \(aqproduct_info\(aq: {
  119089. \(aqversion\(aq:
  119090. \(aq6.0.0\(aq,
  119091. \(aqvendor\(aq:
  119092. \(aqVMware,
  119093. Inc.\(aq,
  119094. \(aqname\(aq:
  119095. \(aqDVS\(aq
  119096. },
  119097. \(aqnetwork_resource_management_enabled\(aq: true,
  119098. \(aqcontact_name\(aq: \(aqme@email.com\(aq,
  119099. \(aqinfrastructure_traffic_resource_pools\(aq: [
  119100. {
  119101. \(aqreservation\(aq: 0,
  119102. \(aqlimit\(aq: 1000,
  119103. \(aqshare_level\(aq: \(aqhigh\(aq,
  119104. \(aqkey\(aq: \(aqmanagement\(aq,
  119105. \(aqnum_shares\(aq: 100
  119106. },
  119107. {
  119108. \(aqreservation\(aq: 0,
  119109. \(aqlimit\(aq: \-1,
  119110. \(aqshare_level\(aq: \(aqnormal\(aq,
  119111. \(aqkey\(aq: \(aqfaultTolerance\(aq,
  119112. \(aqnum_shares\(aq: 50
  119113. },
  119114. {
  119115. \(aqreservation\(aq: 0,
  119116. \(aqlimit\(aq: 32000,
  119117. \(aqshare_level\(aq: \(aqnormal\(aq,
  119118. \(aqkey\(aq: \(aqvmotion\(aq,
  119119. \(aqnum_shares\(aq: 50
  119120. },
  119121. {
  119122. \(aqreservation\(aq: 10000,
  119123. \(aqlimit\(aq: \-1,
  119124. \(aqshare_level\(aq: \(aqnormal\(aq,
  119125. \(aqkey\(aq: \(aqvirtualMachine\(aq,
  119126. \(aqnum_shares\(aq: 50
  119127. },
  119128. {
  119129. \(aqreservation\(aq: 0,
  119130. \(aqlimit\(aq: \-1,
  119131. \(aqshare_level\(aq: \(aqcustom\(aq,
  119132. \(aqkey\(aq: \(aqiSCSI\(aq,
  119133. \(aqnum_shares\(aq: 75
  119134. },
  119135. {
  119136. \(aqreservation\(aq: 0,
  119137. \(aqlimit\(aq: \-1,
  119138. \(aqshare_level\(aq: \(aqnormal\(aq,
  119139. \(aqkey\(aq: \(aqnfs\(aq,
  119140. \(aqnum_shares\(aq: 50
  119141. },
  119142. {
  119143. \(aqreservation\(aq: 0,
  119144. \(aqlimit\(aq: \-1,
  119145. \(aqshare_level\(aq: \(aqnormal\(aq,
  119146. \(aqkey\(aq: \(aqhbr\(aq,
  119147. \(aqnum_shares\(aq: 50
  119148. },
  119149. {
  119150. \(aqreservation\(aq: 8750,
  119151. \(aqlimit\(aq: 15000,
  119152. \(aqshare_level\(aq: \(aqhigh\(aq,
  119153. \(aqkey\(aq: \(aqvsan\(aq,
  119154. \(aqnum_shares\(aq: 100
  119155. },
  119156. {
  119157. \(aqreservation\(aq: 0,
  119158. \(aqlimit\(aq: \-1,
  119159. \(aqshare_level\(aq: \(aqnormal\(aq,
  119160. \(aqkey\(aq: \(aqvdp\(aq,
  119161. \(aqnum_shares\(aq: 50
  119162. }
  119163. ],
  119164. \(aqlink_discovery_protocol\(aq: {
  119165. \(aqoperation\(aq:
  119166. \(aqlisten\(aq,
  119167. \(aqprotocol\(aq:
  119168. \(aqcdp\(aq
  119169. },
  119170. \(aqnetwork_resource_control_version\(aq: \(aqversion3\(aq,
  119171. \(aqdescription\(aq: \(aqManaged by Salt. Random settings.\(aq
  119172. .ft P
  119173. .fi
  119174. .UNINDENT
  119175. .UNINDENT
  119176. .sp
  119177. Note: The mandatory attribute is: \fBname\fP\&.
  119178. .SS Portgroup
  119179. .INDENT 0.0
  119180. .INDENT 3.5
  119181. .sp
  119182. .nf
  119183. .ft C
  119184. \(aqsecurity_policy\(aq: {
  119185. \(aqallow_promiscuous\(aq: true,
  119186. \(aqmac_changes\(aq: false,
  119187. \(aqforged_transmits\(aq: true
  119188. },
  119189. \(aqname\(aq: \(aqvmotion\-v702\(aq,
  119190. \(aqout_shaping\(aq: {
  119191. \(aqenabled\(aq: true,
  119192. \(aqaverage_bandwidth\(aq: 1500,
  119193. \(aqburst_size\(aq: 4096,
  119194. \(aqpeak_bandwidth\(aq: 1500
  119195. },
  119196. \(aqnum_ports\(aq: 128,
  119197. \(aqteaming\(aq: {
  119198. \(aqport_order\(aq: {
  119199. \(aqactive\(aq: [
  119200. \(aqdvUplink2\(aq
  119201. ],
  119202. \(aqstandby\(aq: [
  119203. \(aqdvUplink1\(aq
  119204. ]
  119205. },
  119206. \(aqnotify_switches\(aq: false,
  119207. \(aqreverse_policy\(aq: true,
  119208. \(aqrolling_order\(aq: false,
  119209. \(aqpolicy\(aq: \(aqfailover_explicit\(aq,
  119210. \(aqfailure_criteria\(aq: {
  119211. \(aqcheck_error_percent\(aq: true,
  119212. \(aqfull_duplex\(aq: false,
  119213. \(aqcheck_duplex\(aq: false,
  119214. \(aqpercentage\(aq: 50,
  119215. \(aqcheck_speed\(aq: \(aqminimum\(aq,
  119216. \(aqspeed\(aq: 20,
  119217. \(aqcheck_beacon\(aq: true
  119218. }
  119219. },
  119220. \(aqtype\(aq: \(aqearlyBinding\(aq,
  119221. \(aqvlan_id\(aq: 100,
  119222. \(aqdescription\(aq: \(aqManaged by Salt. Random settings.\(aq
  119223. .ft P
  119224. .fi
  119225. .UNINDENT
  119226. .UNINDENT
  119227. .sp
  119228. Note: The mandatory attributes are: \fBname\fP, \fBtype\fP\&.
  119229. .SS Dependencies
  119230. .INDENT 0.0
  119231. .IP \(bu 2
  119232. pyVmomi Python Module
  119233. .UNINDENT
  119234. .SS pyVmomi
  119235. .sp
  119236. PyVmomi can be installed via pip:
  119237. .INDENT 0.0
  119238. .INDENT 3.5
  119239. .sp
  119240. .nf
  119241. .ft C
  119242. pip install pyVmomi
  119243. .ft P
  119244. .fi
  119245. .UNINDENT
  119246. .UNINDENT
  119247. .sp
  119248. \fBNOTE:\fP
  119249. .INDENT 0.0
  119250. .INDENT 3.5
  119251. Version 6.0 of pyVmomi has some problems with SSL error handling on certain
  119252. versions of Python. If using version 6.0 of pyVmomi, Python 2.7.9,
  119253. or newer must be present. This is due to an upstream dependency
  119254. in pyVmomi 6.0 that is not supported in Python versions 2.7 to 2.7.8. If the
  119255. version of Python is not in the supported range, you will need to install an
  119256. earlier version of pyVmomi. See \fI\%Issue #29537\fP for more information.
  119257. .UNINDENT
  119258. .UNINDENT
  119259. .sp
  119260. Based on the note above, to install an earlier version of pyVmomi than the
  119261. version currently listed in PyPi, run the following:
  119262. .INDENT 0.0
  119263. .INDENT 3.5
  119264. .sp
  119265. .nf
  119266. .ft C
  119267. pip install pyVmomi==5.5.0.2014.1.1
  119268. .ft P
  119269. .fi
  119270. .UNINDENT
  119271. .UNINDENT
  119272. .sp
  119273. The 5.5.0.2014.1.1 is a known stable version that this original ESXi State
  119274. Module was developed against.
  119275. .INDENT 0.0
  119276. .TP
  119277. .B salt.states.dvs.dvs_configured(name, dvs)
  119278. Configures a DVS.
  119279. .sp
  119280. Creates a new DVS, if it doesn\(aqt exist in the provided datacenter or
  119281. reconfigures it if configured differently.
  119282. .INDENT 7.0
  119283. .TP
  119284. .B dvs
  119285. DVS dict representations (see module sysdocs)
  119286. .UNINDENT
  119287. .UNINDENT
  119288. .INDENT 0.0
  119289. .TP
  119290. .B salt.states.dvs.portgroups_configured(name, dvs, portgroups)
  119291. Configures portgroups on a DVS.
  119292. .sp
  119293. Creates/updates/removes portgroups in a provided DVS
  119294. .INDENT 7.0
  119295. .TP
  119296. .B dvs
  119297. Name of the DVS
  119298. .TP
  119299. .B portgroups
  119300. Portgroup dict representations (see module sysdocs)
  119301. .UNINDENT
  119302. .UNINDENT
  119303. .INDENT 0.0
  119304. .TP
  119305. .B salt.states.dvs.uplink_portgroup_configured(name, dvs, uplink_portgroup)
  119306. Configures the uplink portgroup on a DVS. The state assumes there is only
  119307. one uplink portgroup.
  119308. .INDENT 7.0
  119309. .TP
  119310. .B dvs
  119311. Name of the DVS
  119312. .TP
  119313. .B upling_portgroup
  119314. Uplink portgroup dict representations (see module sysdocs)
  119315. .UNINDENT
  119316. .UNINDENT
  119317. .SS salt.states.elasticsearch_index
  119318. .sp
  119319. State module to manage Elasticsearch indices
  119320. .sp
  119321. New in version 2015.8.0.
  119322. .sp
  119323. Deprecated since version 2017.7.0: Use elasticsearch state instead
  119324. .INDENT 0.0
  119325. .TP
  119326. .B salt.states.elasticsearch_index.absent(name)
  119327. Ensure that the named index is absent.
  119328. .INDENT 7.0
  119329. .TP
  119330. .B name
  119331. Name of the index to remove
  119332. .UNINDENT
  119333. .UNINDENT
  119334. .INDENT 0.0
  119335. .TP
  119336. .B salt.states.elasticsearch_index.present(name, definition=None)
  119337. New in version 2015.8.0.
  119338. .sp
  119339. Changed in version 2017.3.0: Marked \fBdefinition\fP as optional.
  119340. .sp
  119341. Ensure that the named index is present.
  119342. .INDENT 7.0
  119343. .TP
  119344. .B name
  119345. Name of the index to add
  119346. .TP
  119347. .B definition
  119348. Optional dict for creation parameters as per \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-create\-index.html\fP
  119349. .UNINDENT
  119350. .sp
  119351. \fBExample:\fP
  119352. .INDENT 7.0
  119353. .INDENT 3.5
  119354. .sp
  119355. .nf
  119356. .ft C
  119357. # Default settings
  119358. mytestindex:
  119359. elasticsearch_index.present
  119360. # Extra settings
  119361. mytestindex2:
  119362. elasticsearch_index.present:
  119363. \- definition:
  119364. settings:
  119365. index:
  119366. number_of_shards: 10
  119367. .ft P
  119368. .fi
  119369. .UNINDENT
  119370. .UNINDENT
  119371. .UNINDENT
  119372. .SS salt.states.elasticsearch_index_template
  119373. .sp
  119374. State module to manage Elasticsearch index templates
  119375. .sp
  119376. New in version 2015.8.0.
  119377. .sp
  119378. Deprecated since version 2017.7.0: Use elasticsearch state instead
  119379. .INDENT 0.0
  119380. .TP
  119381. .B salt.states.elasticsearch_index_template.absent(name)
  119382. Ensure that the named index template is absent.
  119383. .INDENT 7.0
  119384. .TP
  119385. .B name
  119386. Name of the index to remove
  119387. .UNINDENT
  119388. .UNINDENT
  119389. .INDENT 0.0
  119390. .TP
  119391. .B salt.states.elasticsearch_index_template.present(name, definition)
  119392. New in version 2015.8.0.
  119393. .sp
  119394. Changed in version 2017.3.0: Marked \fBdefinition\fP as required.
  119395. .sp
  119396. Ensure that the named index templat eis present.
  119397. .INDENT 7.0
  119398. .TP
  119399. .B name
  119400. Name of the index to add
  119401. .TP
  119402. .B definition
  119403. Required dict for creation parameters as per \fI\%https://www.elastic.co/guide/en/elasticsearch/reference/current/indices\-templates.html\fP
  119404. .UNINDENT
  119405. .sp
  119406. \fBExample:\fP
  119407. .INDENT 7.0
  119408. .INDENT 3.5
  119409. .sp
  119410. .nf
  119411. .ft C
  119412. mytestindex2_template:
  119413. elasticsearch_index_template.present:
  119414. \- definition:
  119415. template: logstash\-*
  119416. order: 1
  119417. settings:
  119418. number_of_shards: 1
  119419. .ft P
  119420. .fi
  119421. .UNINDENT
  119422. .UNINDENT
  119423. .UNINDENT
  119424. .SS salt.states.eselect
  119425. .SS Management of Gentoo configuration using eselect
  119426. .sp
  119427. A state module to manage Gentoo configuration via eselect
  119428. .INDENT 0.0
  119429. .TP
  119430. .B salt.states.eselect.set_(name, target, module_parameter=None, action_parameter=None)
  119431. Verify that the given module is set to the given target
  119432. .INDENT 7.0
  119433. .TP
  119434. .B name
  119435. The name of the module
  119436. .TP
  119437. .B target
  119438. The target to be set for this module
  119439. .TP
  119440. .B module_parameter
  119441. additional params passed to the defined module
  119442. .TP
  119443. .B action_parameter
  119444. additional params passed to the defined action
  119445. .UNINDENT
  119446. .INDENT 7.0
  119447. .INDENT 3.5
  119448. .sp
  119449. .nf
  119450. .ft C
  119451. profile:
  119452. eselect.set:
  119453. \- target: hardened/linux/amd64
  119454. .ft P
  119455. .fi
  119456. .UNINDENT
  119457. .UNINDENT
  119458. .UNINDENT
  119459. .SS salt.states.esxdatacenter module
  119460. .sp
  119461. Salt states to create and manage VMware vSphere datacenters (datacenters).
  119462. .INDENT 0.0
  119463. .TP
  119464. .B codeauthor
  119465. \fIAlexandru Bleotu <alexandru.bleotu@morganstaley.com>\fP
  119466. .UNINDENT
  119467. .SS Dependencies
  119468. .INDENT 0.0
  119469. .IP \(bu 2
  119470. pyVmomi Python Module
  119471. .UNINDENT
  119472. .SS States
  119473. .SS datacenter_configured
  119474. .sp
  119475. Makes sure a datacenter exists and is correctly configured.
  119476. .sp
  119477. If the state is run by an \fBesxdatacenter\fP minion, the name of the datacenter
  119478. is retrieved from the proxy details, otherwise the datacenter has the same name
  119479. as the state.
  119480. .sp
  119481. Supported proxies: esxdatacenter
  119482. .sp
  119483. Example:
  119484. .sp
  119485. 1. Make sure that a datacenter named \fBtarget_dc\fP exists on the vCenter, using a
  119486. \fBesxdatacenter\fP proxy:
  119487. .sp
  119488. Proxy minion configuration (connects passthrough to the vCenter):
  119489. .INDENT 0.0
  119490. .INDENT 3.5
  119491. .sp
  119492. .nf
  119493. .ft C
  119494. proxy:
  119495. proxytype: esxdatacenter
  119496. datacenter: target_dc
  119497. vcenter: vcenter.fake.com
  119498. mechanism: sspi
  119499. domain: fake.com
  119500. principal: host
  119501. .ft P
  119502. .fi
  119503. .UNINDENT
  119504. .UNINDENT
  119505. .sp
  119506. State configuration:
  119507. .INDENT 0.0
  119508. .INDENT 3.5
  119509. .sp
  119510. .nf
  119511. .ft C
  119512. datacenter_state:
  119513. esxdatacenter.datacenter_configured
  119514. .ft P
  119515. .fi
  119516. .UNINDENT
  119517. .UNINDENT
  119518. .INDENT 0.0
  119519. .TP
  119520. .B salt.states.esxdatacenter.datacenter_configured(name)
  119521. Makes sure a datacenter exists.
  119522. .sp
  119523. If the state is run by an \fBesxdatacenter\fP minion, the name of the
  119524. datacenter is retrieved from the proxy details, otherwise the datacenter
  119525. has the same name as the state.
  119526. .sp
  119527. Supported proxies: esxdatacenter
  119528. .INDENT 7.0
  119529. .TP
  119530. .B name:
  119531. Datacenter name. Ignored if the proxytype is \fBesxdatacenter\fP\&.
  119532. .UNINDENT
  119533. .UNINDENT
  119534. .SS salt.states.etcd_mod
  119535. .SS Manage etcd Keys
  119536. .sp
  119537. New in version 2015.8.0.
  119538. .INDENT 0.0
  119539. .TP
  119540. .B depends
  119541. .INDENT 7.0
  119542. .IP \(bu 2
  119543. python\-etcd
  119544. .UNINDENT
  119545. .UNINDENT
  119546. .sp
  119547. This state module supports setting and removing keys from etcd.
  119548. .SS Configuration
  119549. .sp
  119550. To work with an etcd server you must configure an etcd profile. The etcd config
  119551. can be set in either the Salt Minion configuration file or in pillar:
  119552. .INDENT 0.0
  119553. .INDENT 3.5
  119554. .sp
  119555. .nf
  119556. .ft C
  119557. my_etd_config:
  119558. etcd.host: 127.0.0.1
  119559. etcd.port: 4001
  119560. .ft P
  119561. .fi
  119562. .UNINDENT
  119563. .UNINDENT
  119564. .sp
  119565. It is technically possible to configure etcd without using a profile, but this
  119566. is not considered to be a best practice, especially when multiple etcd servers
  119567. or clusters are available.
  119568. .INDENT 0.0
  119569. .INDENT 3.5
  119570. .sp
  119571. .nf
  119572. .ft C
  119573. etcd.host: 127.0.0.1
  119574. etcd.port: 4001
  119575. .ft P
  119576. .fi
  119577. .UNINDENT
  119578. .UNINDENT
  119579. .sp
  119580. \fBNOTE:\fP
  119581. .INDENT 0.0
  119582. .INDENT 3.5
  119583. The etcd configuration can also be set in the Salt Master config file,
  119584. but in order to use any etcd configurations defined in the Salt Master
  119585. config, the \fBpillar_opts\fP must be set to \fBTrue\fP\&.
  119586. .sp
  119587. Be aware that setting \fBpillar_opts\fP to \fBTrue\fP has security implications
  119588. as this makes all master configuration settings available in all minion\(aqs
  119589. pillars.
  119590. .UNINDENT
  119591. .UNINDENT
  119592. .sp
  119593. Etcd profile configuration can be overridden using following arguments: \fBhost\fP,
  119594. \fBport\fP, \fBusername\fP, \fBpassword\fP, \fBca\fP, \fBclient_key\fP and \fBclient_cert\fP\&.
  119595. .INDENT 0.0
  119596. .INDENT 3.5
  119597. .sp
  119598. .nf
  119599. .ft C
  119600. my\-value:
  119601. etcd.set:
  119602. \- name: /path/to/key
  119603. \- value: value
  119604. \- host: 127.0.0.1
  119605. \- port: 2379
  119606. \- username: user
  119607. \- password: pass
  119608. .ft P
  119609. .fi
  119610. .UNINDENT
  119611. .UNINDENT
  119612. .SS Available Functions
  119613. .INDENT 0.0
  119614. .IP \(bu 2
  119615. \fBset\fP
  119616. .sp
  119617. This will set a value to a key in etcd. Changes will be returned if the key
  119618. has been created or the value of the key has been updated. This
  119619. means you can watch these states for changes.
  119620. .INDENT 2.0
  119621. .INDENT 3.5
  119622. .sp
  119623. .nf
  119624. .ft C
  119625. /foo/bar/baz:
  119626. etcd.set:
  119627. \- value: foo
  119628. \- profile: my_etcd_config
  119629. .ft P
  119630. .fi
  119631. .UNINDENT
  119632. .UNINDENT
  119633. .IP \(bu 2
  119634. \fBwait_set\fP
  119635. .sp
  119636. Performs the same functionality as \fBset\fP but only if a watch requisite is \fBTrue\fP\&.
  119637. .INDENT 2.0
  119638. .INDENT 3.5
  119639. .sp
  119640. .nf
  119641. .ft C
  119642. /some/file.txt:
  119643. file.managed:
  119644. \- source: salt://file.txt
  119645. /foo/bar/baz:
  119646. etcd.wait_set:
  119647. \- value: foo
  119648. \- profile: my_etcd_config
  119649. \- watch:
  119650. \- file: /some/file.txt
  119651. .ft P
  119652. .fi
  119653. .UNINDENT
  119654. .UNINDENT
  119655. .IP \(bu 2
  119656. \fBrm\fP
  119657. .sp
  119658. This will delete a key from etcd. If the key exists then changes will be
  119659. returned and thus you can watch for changes on the state, if the key does
  119660. not exist then no changes will occur.
  119661. .INDENT 2.0
  119662. .INDENT 3.5
  119663. .sp
  119664. .nf
  119665. .ft C
  119666. /foo/bar/baz:
  119667. etcd.rm:
  119668. \- profile: my_etcd_config
  119669. .ft P
  119670. .fi
  119671. .UNINDENT
  119672. .UNINDENT
  119673. .IP \(bu 2
  119674. \fBwait_rm\fP
  119675. .sp
  119676. Performs the same functionality as \fBrm\fP but only if a watch requisite is \fBTrue\fP\&.
  119677. .INDENT 2.0
  119678. .INDENT 3.5
  119679. .sp
  119680. .nf
  119681. .ft C
  119682. /some/file.txt:
  119683. file.managed:
  119684. \- source: salt://file.txt
  119685. /foo/bar/baz:
  119686. etcd.wait_rm:
  119687. \- profile: my_etcd_config
  119688. \- watch:
  119689. \- file: /some/file.txt
  119690. .ft P
  119691. .fi
  119692. .UNINDENT
  119693. .UNINDENT
  119694. .UNINDENT
  119695. .INDENT 0.0
  119696. .TP
  119697. .B salt.states.etcd_mod.directory(name, profile=None, **kwargs)
  119698. Create a directory in etcd.
  119699. .INDENT 7.0
  119700. .TP
  119701. .B name
  119702. The etcd directory name, for example: \fB/foo/bar/baz\fP\&.
  119703. .TP
  119704. .B profile
  119705. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119706. been defined in the Salt Master config.
  119707. .INDENT 7.0
  119708. .INDENT 3.5
  119709. .sp
  119710. .nf
  119711. .ft C
  119712. my_etd_config:
  119713. etcd.host: 127.0.0.1
  119714. etcd.port: 4001
  119715. .ft P
  119716. .fi
  119717. .UNINDENT
  119718. .UNINDENT
  119719. .UNINDENT
  119720. .UNINDENT
  119721. .INDENT 0.0
  119722. .TP
  119723. .B salt.states.etcd_mod.mod_watch(name, **kwargs)
  119724. The etcd watcher, called to invoke the watch command.
  119725. When called, execute a etcd function based on a watch call requisite.
  119726. .sp
  119727. \fBNOTE:\fP
  119728. .INDENT 7.0
  119729. .INDENT 3.5
  119730. This state exists to support special handling of the \fBwatch\fP
  119731. requisite\&. It should not be called directly.
  119732. .sp
  119733. Parameters for this function should be set by the state being triggered.
  119734. .UNINDENT
  119735. .UNINDENT
  119736. .UNINDENT
  119737. .INDENT 0.0
  119738. .TP
  119739. .B salt.states.etcd_mod.rm(name, recurse=False, profile=None, **kwargs)
  119740. Deletes a key from etcd
  119741. .INDENT 7.0
  119742. .TP
  119743. .B name
  119744. The etcd key name to remove, for example \fB/foo/bar/baz\fP\&.
  119745. .TP
  119746. .B recurse
  119747. Optional, defaults to \fBFalse\fP\&. If \fBTrue\fP performs a recursive delete.
  119748. .TP
  119749. .B profile
  119750. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119751. been defined in the Salt Master config.
  119752. .INDENT 7.0
  119753. .INDENT 3.5
  119754. .sp
  119755. .nf
  119756. .ft C
  119757. my_etd_config:
  119758. etcd.host: 127.0.0.1
  119759. etcd.port: 4001
  119760. .ft P
  119761. .fi
  119762. .UNINDENT
  119763. .UNINDENT
  119764. .UNINDENT
  119765. .UNINDENT
  119766. .INDENT 0.0
  119767. .TP
  119768. .B salt.states.etcd_mod.set_(name, value, profile=None, **kwargs)
  119769. Set a key in etcd
  119770. .INDENT 7.0
  119771. .TP
  119772. .B name
  119773. The etcd key name, for example: \fB/foo/bar/baz\fP\&.
  119774. .TP
  119775. .B value
  119776. The value the key should contain.
  119777. .TP
  119778. .B profile
  119779. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119780. been defined in the Salt Master config.
  119781. .INDENT 7.0
  119782. .INDENT 3.5
  119783. .sp
  119784. .nf
  119785. .ft C
  119786. my_etd_config:
  119787. etcd.host: 127.0.0.1
  119788. etcd.port: 4001
  119789. .ft P
  119790. .fi
  119791. .UNINDENT
  119792. .UNINDENT
  119793. .UNINDENT
  119794. .UNINDENT
  119795. .INDENT 0.0
  119796. .TP
  119797. .B salt.states.etcd_mod.wait_rm(name, recurse=False, profile=None, **kwargs)
  119798. Deletes a key from etcd only if the watch statement calls it.
  119799. This function is also aliased as \fBwait_rm\fP\&.
  119800. .INDENT 7.0
  119801. .TP
  119802. .B name
  119803. The etcd key name to remove, for example \fB/foo/bar/baz\fP\&.
  119804. .TP
  119805. .B recurse
  119806. Optional, defaults to \fBFalse\fP\&. If \fBTrue\fP performs a recursive
  119807. delete, see: \fI\%https://python\-etcd.readthedocs.io/en/latest/#delete\-a\-key\fP\&.
  119808. .TP
  119809. .B profile
  119810. Optional, defaults to \fBNone\fP\&. Sets the etcd profile to use which has
  119811. been defined in the Salt Master config.
  119812. .INDENT 7.0
  119813. .INDENT 3.5
  119814. .sp
  119815. .nf
  119816. .ft C
  119817. my_etd_config:
  119818. etcd.host: 127.0.0.1
  119819. etcd.port: 4001
  119820. .ft P
  119821. .fi
  119822. .UNINDENT
  119823. .UNINDENT
  119824. .UNINDENT
  119825. .UNINDENT
  119826. .INDENT 0.0
  119827. .TP
  119828. .B salt.states.etcd_mod.wait_set(name, value, profile=None, **kwargs)
  119829. Set a key in etcd only if the watch statement calls it. This function is
  119830. also aliased as \fBwait_set\fP\&.
  119831. .INDENT 7.0
  119832. .TP
  119833. .B name
  119834. The etcd key name, for example: \fB/foo/bar/baz\fP\&.
  119835. .TP
  119836. .B value
  119837. The value the key should contain.
  119838. .TP
  119839. .B profile
  119840. The etcd profile to use that has been configured on the Salt Master,
  119841. this is optional and defaults to \fBNone\fP\&.
  119842. .INDENT 7.0
  119843. .INDENT 3.5
  119844. .sp
  119845. .nf
  119846. .ft C
  119847. my_etd_config:
  119848. etcd.host: 127.0.0.1
  119849. etcd.port: 4001
  119850. .ft P
  119851. .fi
  119852. .UNINDENT
  119853. .UNINDENT
  119854. .UNINDENT
  119855. .UNINDENT
  119856. .SS salt.states.ethtool module
  119857. .sp
  119858. Configuration of network device
  119859. .sp
  119860. New in version 2016.11.0.
  119861. .INDENT 0.0
  119862. .TP
  119863. .B codeauthor
  119864. Krzysztof Pawlowski <\fI\%msciciel@msciciel.eu\fP>
  119865. .TP
  119866. .B maturity
  119867. new
  119868. .TP
  119869. .B depends
  119870. python\-ethtool
  119871. .TP
  119872. .B platform
  119873. linux
  119874. .UNINDENT
  119875. .INDENT 0.0
  119876. .INDENT 3.5
  119877. .sp
  119878. .nf
  119879. .ft C
  119880. eth0:
  119881. ethtool.coalesce:
  119882. \- name: eth0
  119883. \- rx_usecs: 24
  119884. \- tx_usecs: 48
  119885. eth0:
  119886. ethtool.ring:
  119887. \- name: eth0
  119888. \- rx: 1024
  119889. \- tx: 1024
  119890. eth0:
  119891. ethtool.offload:
  119892. \- name: eth0
  119893. \- tcp_segmentation_offload: on
  119894. .ft P
  119895. .fi
  119896. .UNINDENT
  119897. .UNINDENT
  119898. .INDENT 0.0
  119899. .TP
  119900. .B salt.states.ethtool.coalesce(name, **kwargs)
  119901. Manage coalescing settings of network device
  119902. .INDENT 7.0
  119903. .TP
  119904. .B name
  119905. Interface name to apply coalescing settings
  119906. .UNINDENT
  119907. .INDENT 7.0
  119908. .INDENT 3.5
  119909. .sp
  119910. .nf
  119911. .ft C
  119912. eth0:
  119913. ethtool.coalesce:
  119914. \- name: eth0
  119915. \- adaptive_rx: on
  119916. \- adaptive_tx: on
  119917. \- rx_usecs: 24
  119918. \- rx_frame: 0
  119919. \- rx_usecs_irq: 0
  119920. \- rx_frames_irq: 0
  119921. \- tx_usecs: 48
  119922. \- tx_frames: 0
  119923. \- tx_usecs_irq: 0
  119924. \- tx_frames_irq: 0
  119925. \- stats_block_usecs: 0
  119926. \- pkt_rate_low: 0
  119927. \- rx_usecs_low: 0
  119928. \- rx_frames_low: 0
  119929. \- tx_usecs_low: 0
  119930. \- tx_frames_low: 0
  119931. \- pkt_rate_high: 0
  119932. \- rx_usecs_high: 0
  119933. \- rx_frames_high: 0
  119934. \- tx_usecs_high: 0
  119935. \- tx_frames_high: 0
  119936. \- sample_interval: 0
  119937. .ft P
  119938. .fi
  119939. .UNINDENT
  119940. .UNINDENT
  119941. .UNINDENT
  119942. .INDENT 0.0
  119943. .TP
  119944. .B salt.states.ethtool.offload(name, **kwargs)
  119945. Manage protocol offload and other features of network device
  119946. .INDENT 7.0
  119947. .TP
  119948. .B name
  119949. Interface name to apply coalescing settings
  119950. .UNINDENT
  119951. .INDENT 7.0
  119952. .INDENT 3.5
  119953. .sp
  119954. .nf
  119955. .ft C
  119956. eth0:
  119957. ethtool.offload:
  119958. \- name: eth0
  119959. \- tcp_segmentation_offload: on
  119960. .ft P
  119961. .fi
  119962. .UNINDENT
  119963. .UNINDENT
  119964. .UNINDENT
  119965. .INDENT 0.0
  119966. .TP
  119967. .B salt.states.ethtool.ring(name, **kwargs)
  119968. Manage rx/tx ring parameters of network device
  119969. .sp
  119970. Use \(aqmax\(aq word to set with factory maximum
  119971. .INDENT 7.0
  119972. .TP
  119973. .B name
  119974. Interface name to apply ring parameters
  119975. .UNINDENT
  119976. .INDENT 7.0
  119977. .INDENT 3.5
  119978. .sp
  119979. .nf
  119980. .ft C
  119981. eth0:
  119982. ethtool.ring:
  119983. \- name: eth0
  119984. \- rx: 1024
  119985. \- rx_mini: 0
  119986. \- rx_jumbo: 0
  119987. \- tx: max
  119988. .ft P
  119989. .fi
  119990. .UNINDENT
  119991. .UNINDENT
  119992. .UNINDENT
  119993. .SS salt.states.firewall module
  119994. .sp
  119995. State to check firewall configurations
  119996. .sp
  119997. New in version 2016.3.0.
  119998. .INDENT 0.0
  119999. .TP
  120000. .B salt.states.firewall.check(name, port=None, **kwargs)
  120001. Checks if there is an open connection from the minion to the defined
  120002. host on a specific port.
  120003. .INDENT 7.0
  120004. .TP
  120005. .B name
  120006. host name or ip address to test connection to
  120007. .TP
  120008. .B port
  120009. The port to test the connection on
  120010. .TP
  120011. .B kwargs
  120012. .INDENT 7.0
  120013. .TP
  120014. .B Additional parameters, parameters allowed are:
  120015. proto (tcp or udp)
  120016. family (ipv4 or ipv6)
  120017. timeout
  120018. .UNINDENT
  120019. .UNINDENT
  120020. .INDENT 7.0
  120021. .INDENT 3.5
  120022. .sp
  120023. .nf
  120024. .ft C
  120025. testgoogle:
  120026. firewall.check:
  120027. \- name: \(aqgoogle.com\(aq
  120028. \- port: 80
  120029. \- proto: \(aqtcp\(aq
  120030. .ft P
  120031. .fi
  120032. .UNINDENT
  120033. .UNINDENT
  120034. .UNINDENT
  120035. .SS salt.states.gem
  120036. .SS Installation of Ruby modules packaged as gems
  120037. .sp
  120038. A state module to manage rubygems. Gems can be set up to be installed
  120039. or removed. This module will use RVM or rbenv if they are installed. In that case,
  120040. you can specify what ruby version and gemset to target.
  120041. .INDENT 0.0
  120042. .INDENT 3.5
  120043. .sp
  120044. .nf
  120045. .ft C
  120046. addressable:
  120047. gem.installed:
  120048. \- user: rvm
  120049. \- ruby: jruby@jgemset
  120050. .ft P
  120051. .fi
  120052. .UNINDENT
  120053. .UNINDENT
  120054. .INDENT 0.0
  120055. .TP
  120056. .B salt.states.gem.installed(name, ruby=None, gem_bin=None, user=None, version=None, rdoc=False, ri=False, pre_releases=False, proxy=None, source=None)
  120057. Make sure that a gem is installed.
  120058. .INDENT 7.0
  120059. .TP
  120060. .B name
  120061. The name of the gem to install
  120062. .TP
  120063. .B ruby: None
  120064. Only for RVM or rbenv installations: the ruby version and gemset to
  120065. target.
  120066. .TP
  120067. .B gem_bin: None
  120068. Custom \fBgem\fP command to run instead of the default.
  120069. Use this to install gems to a non\-default ruby install. If you are
  120070. using rvm or rbenv use the ruby argument instead.
  120071. .TP
  120072. .B user: None
  120073. The user under which to run the \fBgem\fP command
  120074. .sp
  120075. New in version 0.17.0.
  120076. .TP
  120077. .B version
  120078. None
  120079. Specify the version to install for the gem.
  120080. Doesn\(aqt play nice with multiple gems at once
  120081. .TP
  120082. .B rdoc
  120083. False
  120084. Generate RDoc documentation for the gem(s).
  120085. .TP
  120086. .B ri
  120087. False
  120088. Generate RI documentation for the gem(s).
  120089. .TP
  120090. .B pre_releases
  120091. False
  120092. Install pre\-release version of gem(s) if available.
  120093. .TP
  120094. .B proxy
  120095. None
  120096. Use the specified HTTP proxy server for all outgoing traffic.
  120097. Format: \fI\%http://hostname[:port\fP]
  120098. .TP
  120099. .B source
  120100. None
  120101. Use the specified HTTP gem source server to download gem.
  120102. Format: \fI\%http://hostname[:port\fP]
  120103. .UNINDENT
  120104. .UNINDENT
  120105. .INDENT 0.0
  120106. .TP
  120107. .B salt.states.gem.removed(name, ruby=None, user=None, gem_bin=None)
  120108. Make sure that a gem is not installed.
  120109. .INDENT 7.0
  120110. .TP
  120111. .B name
  120112. The name of the gem to uninstall
  120113. .TP
  120114. .B gem_bin
  120115. None
  120116. Full path to \fBgem\fP binary to use.
  120117. .TP
  120118. .B ruby
  120119. None
  120120. If RVM or rbenv are installed, the ruby version and gemset to use.
  120121. Ignored if \fBgem_bin\fP is specified.
  120122. .TP
  120123. .B user: None
  120124. The user under which to run the \fBgem\fP command
  120125. .sp
  120126. New in version 0.17.0.
  120127. .UNINDENT
  120128. .UNINDENT
  120129. .INDENT 0.0
  120130. .TP
  120131. .B salt.states.gem.sources_add(name, ruby=None, user=None)
  120132. Make sure that a gem source is added.
  120133. .INDENT 7.0
  120134. .TP
  120135. .B name
  120136. The URL of the gem source to be added
  120137. .TP
  120138. .B ruby: None
  120139. For RVM or rbenv installations: the ruby version and gemset to target.
  120140. .TP
  120141. .B user: None
  120142. The user under which to run the \fBgem\fP command
  120143. .sp
  120144. New in version 0.17.0.
  120145. .UNINDENT
  120146. .UNINDENT
  120147. .INDENT 0.0
  120148. .TP
  120149. .B salt.states.gem.sources_remove(name, ruby=None, user=None)
  120150. Make sure that a gem source is removed.
  120151. .INDENT 7.0
  120152. .TP
  120153. .B name
  120154. The URL of the gem source to be removed
  120155. .TP
  120156. .B ruby: None
  120157. For RVM or rbenv installations: the ruby version and gemset to target.
  120158. .TP
  120159. .B user: None
  120160. The user under which to run the \fBgem\fP command
  120161. .sp
  120162. New in version 0.17.0.
  120163. .UNINDENT
  120164. .UNINDENT
  120165. .SS salt.states.github module
  120166. .sp
  120167. Github User State Module
  120168. .sp
  120169. New in version 2016.3.0..
  120170. .sp
  120171. This state is used to ensure presence of users in the Organization.
  120172. .INDENT 0.0
  120173. .INDENT 3.5
  120174. .sp
  120175. .nf
  120176. .ft C
  120177. ensure user test is present in github:
  120178. github.present:
  120179. \- name: \(aqExample TestUser1\(aq
  120180. \- email: example@domain.com
  120181. \- username: \(aqgitexample\(aq
  120182. .ft P
  120183. .fi
  120184. .UNINDENT
  120185. .UNINDENT
  120186. .INDENT 0.0
  120187. .TP
  120188. .B salt.states.github.absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120189. Ensure a github user is absent
  120190. .INDENT 7.0
  120191. .INDENT 3.5
  120192. .sp
  120193. .nf
  120194. .ft C
  120195. ensure user test is absent in github:
  120196. github.absent:
  120197. \- name: \(aqExample TestUser1\(aq
  120198. \- email: example@domain.com
  120199. \- username: \(aqgitexample\(aq
  120200. .ft P
  120201. .fi
  120202. .UNINDENT
  120203. .UNINDENT
  120204. .sp
  120205. The following parameters are required:
  120206. .INDENT 7.0
  120207. .TP
  120208. .B name
  120209. Github handle of the user in organization
  120210. .UNINDENT
  120211. .UNINDENT
  120212. .INDENT 0.0
  120213. .TP
  120214. .B salt.states.github.present(name, profile=u\(aqgithub\(aq, **kwargs)
  120215. Ensure a user is present
  120216. .INDENT 7.0
  120217. .INDENT 3.5
  120218. .sp
  120219. .nf
  120220. .ft C
  120221. ensure user test is present in github:
  120222. github.present:
  120223. \- name: \(aqgitexample\(aq
  120224. .ft P
  120225. .fi
  120226. .UNINDENT
  120227. .UNINDENT
  120228. .sp
  120229. The following parameters are required:
  120230. .INDENT 7.0
  120231. .TP
  120232. .B name
  120233. This is the github handle of the user in the organization
  120234. .UNINDENT
  120235. .UNINDENT
  120236. .INDENT 0.0
  120237. .TP
  120238. .B salt.states.github.repo_absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120239. Ensure a repo is absent.
  120240. .sp
  120241. Example:
  120242. .INDENT 7.0
  120243. .INDENT 3.5
  120244. .sp
  120245. .nf
  120246. .ft C
  120247. ensure repo test is absent in github:
  120248. github.repo_absent:
  120249. \- name: \(aqtest\(aq
  120250. .ft P
  120251. .fi
  120252. .UNINDENT
  120253. .UNINDENT
  120254. .sp
  120255. The following parameters are required:
  120256. .INDENT 7.0
  120257. .TP
  120258. .B name
  120259. This is the name of the repository in the organization.
  120260. .UNINDENT
  120261. .sp
  120262. New in version 2016.11.0.
  120263. .UNINDENT
  120264. .INDENT 0.0
  120265. .TP
  120266. .B salt.states.github.repo_present(name, description=None, homepage=None, private=None, has_issues=None, has_wiki=None, has_downloads=None, auto_init=False, gitignore_template=None, license_template=None, teams=None, profile=u\(aqgithub\(aq, **kwargs)
  120267. Ensure a repository is present
  120268. .INDENT 7.0
  120269. .TP
  120270. .B name
  120271. This is the name of the repository.
  120272. .TP
  120273. .B description
  120274. The description of the repository.
  120275. .TP
  120276. .B homepage
  120277. The URL with more information about the repository.
  120278. .TP
  120279. .B private
  120280. The visiblity of the repository. Note that private repositories require
  120281. a paid GitHub account.
  120282. .TP
  120283. .B has_issues
  120284. Whether to enable issues for this repository.
  120285. .TP
  120286. .B has_wiki
  120287. Whether to enable the wiki for this repository.
  120288. .TP
  120289. .B has_downloads
  120290. Whether to enable downloads for this repository.
  120291. .TP
  120292. .B auto_init
  120293. Whether to create an initial commit with an empty README.
  120294. .TP
  120295. .B gitignore_template
  120296. The desired language or platform for a .gitignore, e.g "Haskell".
  120297. .TP
  120298. .B license_template
  120299. The desired LICENSE template to apply, e.g "mit" or "mozilla".
  120300. .TP
  120301. .B teams
  120302. The teams for which this repo should belong to, specified as a dict of
  120303. team name to permission (\(aqpull\(aq, \(aqpush\(aq or \(aqadmin\(aq).
  120304. .sp
  120305. New in version 2017.7.0.
  120306. .UNINDENT
  120307. .sp
  120308. Example:
  120309. .INDENT 7.0
  120310. .INDENT 3.5
  120311. .sp
  120312. .nf
  120313. .ft C
  120314. Ensure repo my\-repo is present in github:
  120315. github.repo_present:
  120316. \- name: \(aqmy\-repo\(aq
  120317. \- description: \(aqMy very important repository\(aq
  120318. .ft P
  120319. .fi
  120320. .UNINDENT
  120321. .UNINDENT
  120322. .sp
  120323. New in version 2016.11.0.
  120324. .UNINDENT
  120325. .INDENT 0.0
  120326. .TP
  120327. .B salt.states.github.team_absent(name, profile=u\(aqgithub\(aq, **kwargs)
  120328. Ensure a team is absent.
  120329. .sp
  120330. Example:
  120331. .INDENT 7.0
  120332. .INDENT 3.5
  120333. .sp
  120334. .nf
  120335. .ft C
  120336. ensure team test is present in github:
  120337. github.team_absent:
  120338. \- name: \(aqtest\(aq
  120339. .ft P
  120340. .fi
  120341. .UNINDENT
  120342. .UNINDENT
  120343. .sp
  120344. The following parameters are required:
  120345. .INDENT 7.0
  120346. .TP
  120347. .B name
  120348. This is the name of the team in the organization.
  120349. .UNINDENT
  120350. .sp
  120351. New in version 2016.11.0.
  120352. .UNINDENT
  120353. .INDENT 0.0
  120354. .TP
  120355. .B salt.states.github.team_present(name, description=None, repo_names=None, privacy=u\(aqsecret\(aq, permission=u\(aqpull\(aq, members=None, enforce_mfa=False, no_mfa_grace_seconds=0, profile=u\(aqgithub\(aq, **kwargs)
  120356. Ensure a team is present
  120357. .INDENT 7.0
  120358. .TP
  120359. .B name
  120360. This is the name of the team in the organization.
  120361. .TP
  120362. .B description
  120363. The description of the team.
  120364. .TP
  120365. .B repo_names
  120366. The names of repositories to add the team to.
  120367. .TP
  120368. .B privacy
  120369. The level of privacy for the team, can be \(aqsecret\(aq or \(aqclosed\(aq. Defaults
  120370. to secret.
  120371. .TP
  120372. .B permission
  120373. The default permission for new repositories added to the team, can be
  120374. \(aqpull\(aq, \(aqpush\(aq or \(aqadmin\(aq. Defaults to pull.
  120375. .TP
  120376. .B members
  120377. The members belonging to the team, specified as a dict of member name to
  120378. optional configuration. Options include \(aqenforce_mfa_from\(aq and \(aqmfa_exempt\(aq.
  120379. .TP
  120380. .B enforce_mfa
  120381. Whether to enforce MFA requirements on members of the team. If True then
  120382. all members without \fImfa_exempt: True\fP configured will be removed from
  120383. the team. Note that \fIno_mfa_grace_seconds\fP may be set to allow members
  120384. a grace period.
  120385. .TP
  120386. .B no_mfa_grace_seconds
  120387. The number of seconds of grace time that a member will have to enable MFA
  120388. before being removed from the team. The grace period will begin from
  120389. \fIenforce_mfa_from\fP on the member configuration, which defaults to
  120390. 1970/01/01.
  120391. .UNINDENT
  120392. .sp
  120393. Example:
  120394. .INDENT 7.0
  120395. .INDENT 3.5
  120396. .sp
  120397. .nf
  120398. .ft C
  120399. Ensure team test is present in github:
  120400. github.team_present:
  120401. \- name: \(aqtest\(aq
  120402. \- members:
  120403. user1: {}
  120404. user2: {}
  120405. Ensure team test_mfa is present in github:
  120406. github.team_present:
  120407. \- name: \(aqtest_mfa\(aq
  120408. \- members:
  120409. user1:
  120410. enforce_mfa_from: 2016/06/15
  120411. \- enforce_mfa: True
  120412. .ft P
  120413. .fi
  120414. .UNINDENT
  120415. .UNINDENT
  120416. .sp
  120417. New in version 2016.11.0.
  120418. .UNINDENT
  120419. .SS salt.states.glance
  120420. .SS Managing Images in OpenStack Glance
  120421. .INDENT 0.0
  120422. .TP
  120423. .B salt.states.glance.image_present(name, visibility=u\(aqpublic\(aq, protected=None, checksum=None, location=None, disk_format=u\(aqraw\(aq, wait_for=None, timeout=30)
  120424. Checks if given image is present with properties
  120425. set as specified.
  120426. .sp
  120427. An image should got through the stages \(aqqueued\(aq, \(aqsaving\(aq
  120428. before becoming \(aqactive\(aq. The attribute \(aqchecksum\(aq can
  120429. only be checked once the image is active.
  120430. If you don\(aqt specify \(aqwait_for\(aq but \(aqchecksum\(aq the function
  120431. will wait for the image to become active before comparing
  120432. checksums. If you don\(aqt specify checksum either the function
  120433. will return when the image reached \(aqsaving\(aq.
  120434. The default timeout for both is 30 seconds.
  120435. .INDENT 7.0
  120436. .TP
  120437. .B Supported properties:
  120438. .INDENT 7.0
  120439. .IP \(bu 2
  120440. visibility (\(aqpublic\(aq or \(aqprivate\(aq)
  120441. .IP \(bu 2
  120442. protected (bool)
  120443. .IP \(bu 2
  120444. checksum (string, md5sum)
  120445. .IP \(bu 2
  120446. location (URL, to copy from)
  120447. .IP \(bu 2
  120448. disk_format (\(aqraw\(aq (default), \(aqvhd\(aq, \(aqvhdx\(aq, \(aqvmdk\(aq, \(aqvdi\(aq, \(aqiso\(aq,
  120449. \(aqqcow2\(aq, \(aqaki\(aq, \(aqari\(aq or \(aqami\(aq)
  120450. .UNINDENT
  120451. .UNINDENT
  120452. .UNINDENT
  120453. .SS salt.states.glance_image
  120454. .SS Management of OpenStack Glance Images
  120455. .sp
  120456. New in version 2018.3.0.
  120457. .INDENT 0.0
  120458. .TP
  120459. .B depends
  120460. shade
  120461. .TP
  120462. .B configuration
  120463. see \fBsalt.modules.glanceng\fP for setup instructions
  120464. .UNINDENT
  120465. .sp
  120466. Example States
  120467. .INDENT 0.0
  120468. .INDENT 3.5
  120469. .sp
  120470. .nf
  120471. .ft C
  120472. create image:
  120473. glance_image.present:
  120474. \- name: cirros
  120475. \- filename: cirros.raw
  120476. \- image_format: raw
  120477. delete image:
  120478. glance_image.absent:
  120479. \- name: cirros
  120480. .ft P
  120481. .fi
  120482. .UNINDENT
  120483. .UNINDENT
  120484. .INDENT 0.0
  120485. .TP
  120486. .B salt.states.glance_image.absent(name, auth=None)
  120487. Ensure image does not exist
  120488. .INDENT 7.0
  120489. .TP
  120490. .B name
  120491. Name of the image
  120492. .UNINDENT
  120493. .UNINDENT
  120494. .INDENT 0.0
  120495. .TP
  120496. .B salt.states.glance_image.present(name, auth=None, **kwargs)
  120497. Ensure image exists and is up\-to\-date
  120498. .INDENT 7.0
  120499. .TP
  120500. .B name
  120501. Name of the image
  120502. .TP
  120503. .B enabled
  120504. Boolean to control if image is enabled
  120505. .TP
  120506. .B description
  120507. An arbitrary description of the image
  120508. .UNINDENT
  120509. .UNINDENT
  120510. .SS salt.states.glassfish module
  120511. .sp
  120512. Manage Glassfish/Payara server
  120513. .. versionadded:: Carbon
  120514. .sp
  120515. Management of glassfish using its RESTful API
  120516. You can setup connection parameters like this
  120517. .INDENT 0.0
  120518. .INDENT 3.5
  120519. .sp
  120520. .nf
  120521. .ft C
  120522. \- server:
  120523. \- ssl: true
  120524. \- url: localhost
  120525. \- port: 4848
  120526. \- user: admin
  120527. \- password: changeit
  120528. .ft P
  120529. .fi
  120530. .UNINDENT
  120531. .UNINDENT
  120532. .INDENT 0.0
  120533. .TP
  120534. .B salt.states.glassfish.connection_factory_absent(name, both=True, server=None)
  120535. Ensures the transaction factory is absent.
  120536. .INDENT 7.0
  120537. .TP
  120538. .B name
  120539. Name of the connection factory
  120540. .TP
  120541. .B both
  120542. Delete both the pool and the resource, defaults to \fBtrue\fP
  120543. .UNINDENT
  120544. .UNINDENT
  120545. .INDENT 0.0
  120546. .TP
  120547. .B salt.states.glassfish.connection_factory_present(name, restype=u\(aqconnection_factory\(aq, description=u\(aq\(aq, enabled=True, min_size=1, max_size=250, resize_quantity=2, idle_timeout=300, wait_timeout=60, reconnect_on_failure=False, transaction_support=u\(aq\(aq, connection_validation=False, server=None)
  120548. Ensures that the Connection Factory is present
  120549. .INDENT 7.0
  120550. .TP
  120551. .B name
  120552. Name of the connection factory
  120553. .TP
  120554. .B restype
  120555. Type of the connection factory, can be either \fBconnection_factory\fP,
  120556. \fBqueue_connection_factory\(ga or \(ga\(gatopic_connection_factory\fP,
  120557. defaults to \fBconnection_factory\fP
  120558. .TP
  120559. .B description
  120560. Description of the connection factory
  120561. .TP
  120562. .B enabled
  120563. Is the connection factory enabled? defaults to \fBtrue\fP
  120564. .TP
  120565. .B min_size
  120566. Minimum and initial number of connections in the pool, defaults to \fB1\fP
  120567. .TP
  120568. .B max_size
  120569. Maximum number of connections that can be created in the pool, defaults to \fB250\fP
  120570. .TP
  120571. .B resize_quantity
  120572. Number of connections to be removed when idle_timeout expires, defaults to \fB2\fP
  120573. .TP
  120574. .B idle_timeout
  120575. Maximum time a connection can remain idle in the pool, in seconds, defaults to \fB300\fP
  120576. .TP
  120577. .B wait_timeout
  120578. Maximum time a caller can wait before timeout, in seconds, defaults to \fB60\fP
  120579. .TP
  120580. .B reconnect_on_failure
  120581. Close all connections and reconnect on failure (or reconnect only when used), defaults to \fBfalse\fP
  120582. .TP
  120583. .B transaction_support
  120584. Level of transaction support, can be either \fBXATransaction\fP, \fBLocalTransaction\fP or \fBNoTransaction\fP
  120585. .TP
  120586. .B connection_validation
  120587. Connection validation is required, defaults to \fBfalse\fP
  120588. .UNINDENT
  120589. .UNINDENT
  120590. .INDENT 0.0
  120591. .TP
  120592. .B salt.states.glassfish.destination_absent(name, server=None)
  120593. Ensures that the JMS Destination doesn\(aqt exists
  120594. .INDENT 7.0
  120595. .TP
  120596. .B name
  120597. Name of the JMS Destination
  120598. .UNINDENT
  120599. .UNINDENT
  120600. .INDENT 0.0
  120601. .TP
  120602. .B salt.states.glassfish.destination_present(name, physical, restype=u\(aqqueue\(aq, description=u\(aq\(aq, enabled=True, server=None)
  120603. Ensures that the JMS Destination Resource (queue or topic) is present
  120604. .INDENT 7.0
  120605. .TP
  120606. .B name
  120607. The JMS Queue/Topic name
  120608. .TP
  120609. .B physical
  120610. The Physical destination name
  120611. .TP
  120612. .B restype
  120613. The JMS Destination resource type, either \fBqueue\fP or \fBtopic\fP, defaults is \fBqueue\fP
  120614. .TP
  120615. .B description
  120616. A description of the resource
  120617. .TP
  120618. .B enabled
  120619. Defaults to \fBTrue\fP
  120620. .UNINDENT
  120621. .UNINDENT
  120622. .INDENT 0.0
  120623. .TP
  120624. .B salt.states.glassfish.jdbc_datasource_absent(name, both=True, server=None)
  120625. Ensures the JDBC Datasource doesn\(aqt exists
  120626. .INDENT 7.0
  120627. .TP
  120628. .B name
  120629. Name of the datasource
  120630. .TP
  120631. .B both
  120632. Delete both the pool and the resource, defaults to \fBtrue\fP
  120633. .UNINDENT
  120634. .UNINDENT
  120635. .INDENT 0.0
  120636. .TP
  120637. .B salt.states.glassfish.jdbc_datasource_present(name, description=u\(aq\(aq, enabled=True, restype=u\(aqdatasource\(aq, vendor=u\(aqmysql\(aq, sql_url=u\(aq\(aq, sql_user=u\(aq\(aq, sql_password=u\(aq\(aq, min_size=8, max_size=32, resize_quantity=2, idle_timeout=300, wait_timeout=60, non_transactional=False, transaction_isolation=u\(aq\(aq, isolation_guaranteed=True, server=None)
  120638. Ensures that the JDBC Datasource exists
  120639. .INDENT 7.0
  120640. .TP
  120641. .B name
  120642. Name of the datasource
  120643. .TP
  120644. .B description
  120645. Description of the datasource
  120646. .TP
  120647. .B enabled
  120648. Is the datasource enabled? defaults to \fBtrue\fP
  120649. .TP
  120650. .B restype
  120651. Resource type, can be \fBdatasource\fP, \fBxa_datasource\fP,
  120652. \fBconnection_pool_datasource\fP or \fBdriver\fP, defaults to \fBdatasource\fP
  120653. .TP
  120654. .B vendor
  120655. SQL Server type, currently supports \fBmysql\fP,
  120656. \fBpostgresql\fP and \fBmssql\fP, defaults to \fBmysql\fP
  120657. .TP
  120658. .B sql_url
  120659. URL of the server in jdbc form
  120660. .TP
  120661. .B sql_user
  120662. Username for the server
  120663. .TP
  120664. .B sql_password
  120665. Password for that username
  120666. .TP
  120667. .B min_size
  120668. Minimum and initial number of connections in the pool, defaults to \fB8\fP
  120669. .TP
  120670. .B max_size
  120671. Maximum number of connections that can be created in the pool, defaults to \fB32\fP
  120672. .TP
  120673. .B resize_quantity
  120674. Number of connections to be removed when idle_timeout expires, defaults to \fB2\fP
  120675. .TP
  120676. .B idle_timeout
  120677. Maximum time a connection can remain idle in the pool, in seconds, defaults to \fB300\fP
  120678. .TP
  120679. .B wait_timeout
  120680. Maximum time a caller can wait before timeout, in seconds, defaults to \fB60\fP
  120681. .TP
  120682. .B non_transactional
  120683. Return non\-transactional connections
  120684. .TP
  120685. .B transaction_isolation
  120686. Defaults to the JDBC driver default
  120687. .TP
  120688. .B isolation_guaranteed
  120689. All connections use the same isolation level
  120690. .UNINDENT
  120691. .UNINDENT
  120692. .INDENT 0.0
  120693. .TP
  120694. .B salt.states.glassfish.system_properties_absent(name, server=None)
  120695. Ensures that the system property doesn\(aqt exists
  120696. .INDENT 7.0
  120697. .TP
  120698. .B name
  120699. Name of the system property
  120700. .UNINDENT
  120701. .UNINDENT
  120702. .INDENT 0.0
  120703. .TP
  120704. .B salt.states.glassfish.system_properties_present(server=None, **kwargs)
  120705. Ensures that the system properties are present
  120706. .INDENT 7.0
  120707. .TP
  120708. .B properties
  120709. The system properties
  120710. .UNINDENT
  120711. .UNINDENT
  120712. .SS salt.states.gnomedesktop
  120713. .SS Configuration of the GNOME desktop
  120714. .sp
  120715. Control the GNOME settings
  120716. .INDENT 0.0
  120717. .INDENT 3.5
  120718. .sp
  120719. .nf
  120720. .ft C
  120721. localdesktop_wm_prefs:
  120722. gnomedesktop.wm_preferences:
  120723. \- user: username
  120724. \- audible_bell: false
  120725. \- action_double_click_titlebar: \(aqtoggle\-maximize\(aq
  120726. \- visual_bell: true
  120727. \- num_workspaces: 6
  120728. localdesktop_lockdown:
  120729. gnomedesktop.desktop_lockdown:
  120730. \- user: username
  120731. \- disable_user_switching: true
  120732. localdesktop_interface:
  120733. gnomedesktop.desktop_interface:
  120734. \- user: username
  120735. \- clock_show_date: true
  120736. \- clock_format: 12h
  120737. .ft P
  120738. .fi
  120739. .UNINDENT
  120740. .UNINDENT
  120741. .INDENT 0.0
  120742. .TP
  120743. .B salt.states.gnomedesktop.desktop_interface(name, user=None, automatic_mnemonics=None, buttons_have_icons=None, can_change_accels=None, clock_format=None, clock_show_date=None, clock_show_seconds=None, cursor_blink=None, cursor_blink_time=None, cursor_blink_timeout=None, cursor_size=None, cursor_theme=None, document_font_name=None, enable_animations=None, font_name=None, gtk_color_palette=None, gtk_color_scheme=None, gtk_im_module=None, gtk_im_preedit_style=None, gtk_im_status_style=None, gtk_key_theme=None, gtk_theme=None, gtk_timeout_initial=None, gtk_timeout_repeat=None, icon_theme=None, menubar_accel=None, menubar_detachable=None, menus_have_icons=None, menus_have_tearoff=None, monospace_font_name=None, show_input_method_menu=None, show_unicode_menu=None, text_scaling_factor=None, toolbar_detachable=None, toolbar_icons_size=None, toolbar_style=None, toolkit_accessibility=None, **kwargs)
  120744. desktop_interface: sets values in the org.gnome.desktop.interface schema
  120745. .UNINDENT
  120746. .INDENT 0.0
  120747. .TP
  120748. .B salt.states.gnomedesktop.desktop_lockdown(name, user=None, disable_application_handlers=None, disable_command_line=None, disable_lock_screen=None, disable_log_out=None, disable_print_setup=None, disable_printing=None, disable_save_to_disk=None, disable_user_switching=None, user_administration_disabled=None, **kwargs)
  120749. desktop_lockdown: sets values in the org.gnome.desktop.lockdown schema
  120750. .UNINDENT
  120751. .INDENT 0.0
  120752. .TP
  120753. .B salt.states.gnomedesktop.wm_preferences(name, user=None, action_double_click_titlebar=None, action_middle_click_titlebar=None, action_right_click_titlebar=None, application_based=None, audible_bell=None, auto_raise=None, auto_raise_delay=None, button_layout=None, disable_workarounds=None, focus_mode=None, focus_new_windows=None, mouse_button_modifier=None, num_workspaces=None, raise_on_click=None, resize_with_right_button=None, theme=None, titlebar_font=None, titlebar_uses_system_font=None, visual_bell=None, visual_bell_type=None, workspace_names=None, **kwargs)
  120754. wm_preferences: sets values in the org.gnome.desktop.wm.preferences schema
  120755. .UNINDENT
  120756. .SS salt.states.gpg module
  120757. .SS Management of the GPG keychains
  120758. .sp
  120759. New in version 2016.3.0.
  120760. .INDENT 0.0
  120761. .TP
  120762. .B salt.states.gpg.absent(name, keys=None, user=None, gnupghome=None, **kwargs)
  120763. Ensure GPG public key is absent in keychain
  120764. .INDENT 7.0
  120765. .TP
  120766. .B name
  120767. The unique name or keyid for the GPG public key.
  120768. .TP
  120769. .B keys
  120770. The keyId or keyIds to add to the GPG keychain.
  120771. .TP
  120772. .B user
  120773. Remove GPG keys from the specified user\(aqs keychain
  120774. .TP
  120775. .B gnupghome
  120776. Override GNUPG Home directory
  120777. .UNINDENT
  120778. .UNINDENT
  120779. .INDENT 0.0
  120780. .TP
  120781. .B salt.states.gpg.present(name, keys=None, user=None, keyserver=None, gnupghome=None, trust=None, **kwargs)
  120782. Ensure GPG public key is present in keychain
  120783. .INDENT 7.0
  120784. .TP
  120785. .B name
  120786. The unique name or keyid for the GPG public key.
  120787. .TP
  120788. .B keys
  120789. The keyId or keyIds to add to the GPG keychain.
  120790. .TP
  120791. .B user
  120792. Add GPG keys to the specified user\(aqs keychain
  120793. .TP
  120794. .B keyserver
  120795. The keyserver to retrieve the keys from.
  120796. .TP
  120797. .B gnupghome
  120798. Override GNUPG Home directory
  120799. .TP
  120800. .B trust
  120801. Trust level for the key in the keychain,
  120802. ignored by default. Valid trust levels:
  120803. expired, unknown, not_trusted, marginally,
  120804. fully, ultimately
  120805. .UNINDENT
  120806. .UNINDENT
  120807. .SS salt.states.grafana_datasource module
  120808. .sp
  120809. Manage Grafana v2.0 data sources
  120810. .sp
  120811. New in version 2016.3.0.
  120812. .INDENT 0.0
  120813. .INDENT 3.5
  120814. .sp
  120815. .nf
  120816. .ft C
  120817. grafana:
  120818. grafana_timeout: 3
  120819. grafana_token: qwertyuiop
  120820. grafana_url: \(aqhttps://url.com\(aq
  120821. .ft P
  120822. .fi
  120823. .UNINDENT
  120824. .UNINDENT
  120825. .INDENT 0.0
  120826. .INDENT 3.5
  120827. .sp
  120828. .nf
  120829. .ft C
  120830. Ensure influxdb data source is present:
  120831. grafana_datasource.present:
  120832. \- name: influxdb
  120833. \- type: influxdb
  120834. \- url: http://localhost:8086
  120835. \- access: proxy
  120836. \- basic_auth: true
  120837. \- basic_auth_user: myuser
  120838. \- basic_auth_password: mypass
  120839. \- is_default: true
  120840. .ft P
  120841. .fi
  120842. .UNINDENT
  120843. .UNINDENT
  120844. .INDENT 0.0
  120845. .TP
  120846. .B salt.states.grafana_datasource.absent(name, profile=u\(aqgrafana\(aq)
  120847. Ensure that a data source is present.
  120848. .INDENT 7.0
  120849. .TP
  120850. .B name
  120851. Name of the data source to remove.
  120852. .UNINDENT
  120853. .UNINDENT
  120854. .INDENT 0.0
  120855. .TP
  120856. .B salt.states.grafana_datasource.present(name, type, url, access=u\(aqproxy\(aq, user=u\(aq\(aq, password=u\(aq\(aq, database=u\(aq\(aq, basic_auth=False, basic_auth_user=u\(aq\(aq, basic_auth_password=u\(aq\(aq, is_default=False, json_data=None, profile=u\(aqgrafana\(aq)
  120857. Ensure that a data source is present.
  120858. .INDENT 7.0
  120859. .TP
  120860. .B name
  120861. Name of the data source.
  120862. .TP
  120863. .B type
  120864. Which type of data source it is (\(aqgraphite\(aq, \(aqinfluxdb\(aq etc.).
  120865. .TP
  120866. .B url
  120867. The URL to the data source API.
  120868. .TP
  120869. .B user
  120870. Optional \- user to authenticate with the data source
  120871. .TP
  120872. .B password
  120873. Optional \- password to authenticate with the data source
  120874. .TP
  120875. .B basic_auth
  120876. Optional \- set to True to use HTTP basic auth to authenticate with the
  120877. data source.
  120878. .TP
  120879. .B basic_auth_user
  120880. Optional \- HTTP basic auth username.
  120881. .TP
  120882. .B basic_auth_password
  120883. Optional \- HTTP basic auth password.
  120884. .TP
  120885. .B is_default
  120886. Default: False
  120887. .UNINDENT
  120888. .UNINDENT
  120889. .SS salt.states.grains
  120890. .SS Manage grains on the minion
  120891. .sp
  120892. This state allows for grains to be set.
  120893. .sp
  120894. Grains set or altered with this module are stored in the \(aqgrains\(aq
  120895. file on the minions, By default, this file is located at: \fB/etc/salt/grains\fP
  120896. .sp
  120897. \fBNOTE:\fP
  120898. .INDENT 0.0
  120899. .INDENT 3.5
  120900. This does \fBNOT\fP override any grains set in the minion config file.
  120901. .UNINDENT
  120902. .UNINDENT
  120903. .INDENT 0.0
  120904. .TP
  120905. .B salt.states.grains.absent(name, destructive=False, delimiter=\(aq:\(aq, force=False)
  120906. New in version 2014.7.0.
  120907. .sp
  120908. Delete a grain from the grains config file
  120909. .INDENT 7.0
  120910. .TP
  120911. .B name
  120912. The grain name
  120913. .TP
  120914. .B destructive
  120915. If destructive is True, delete the entire grain. If
  120916. destructive is False, set the grain\(aqs value to None. Defaults to False.
  120917. .TP
  120918. .B force
  120919. If force is True, the existing grain will be overwritten
  120920. regardless of its existing or provided value type. Defaults to False
  120921. .sp
  120922. New in version v2015.8.2.
  120923. .TP
  120924. .B delimiter
  120925. A delimiter different from the default can be provided.
  120926. .sp
  120927. New in version v2015.8.2.
  120928. .UNINDENT
  120929. .sp
  120930. Changed in version v2015.8.2.
  120931. .sp
  120932. This state now support nested grains and complex values. It is also more
  120933. conservative: if a grain has a value that is a list or a dict, it will
  120934. not be removed unless the \fIforce\fP parameter is True.
  120935. .INDENT 7.0
  120936. .INDENT 3.5
  120937. .sp
  120938. .nf
  120939. .ft C
  120940. grain_name:
  120941. grains.absent
  120942. .ft P
  120943. .fi
  120944. .UNINDENT
  120945. .UNINDENT
  120946. .UNINDENT
  120947. .INDENT 0.0
  120948. .TP
  120949. .B salt.states.grains.append(name, value, convert=False, delimiter=\(aq:\(aq)
  120950. New in version 2014.7.0.
  120951. .sp
  120952. Append a value to a list in the grains config file. The grain that is being
  120953. appended to (name) must exist before the new value can be added.
  120954. .INDENT 7.0
  120955. .TP
  120956. .B name
  120957. The grain name
  120958. .TP
  120959. .B value
  120960. The value to append
  120961. .TP
  120962. .B convert
  120963. If convert is True, convert non\-list contents into a list.
  120964. If convert is False and the grain contains non\-list contents, an error
  120965. is given. Defaults to False.
  120966. .TP
  120967. .B delimiter
  120968. A delimiter different from the default can be provided.
  120969. .sp
  120970. New in version v2015.8.2.
  120971. .UNINDENT
  120972. .INDENT 7.0
  120973. .INDENT 3.5
  120974. .sp
  120975. .nf
  120976. .ft C
  120977. grain_name:
  120978. grains.append:
  120979. \- value: to_be_appended
  120980. .ft P
  120981. .fi
  120982. .UNINDENT
  120983. .UNINDENT
  120984. .UNINDENT
  120985. .INDENT 0.0
  120986. .TP
  120987. .B salt.states.grains.exists(name, delimiter=\(aq:\(aq)
  120988. Ensure that a grain is set
  120989. .INDENT 7.0
  120990. .TP
  120991. .B name
  120992. The grain name
  120993. .TP
  120994. .B delimiter
  120995. A delimiter different from the default can be provided.
  120996. .UNINDENT
  120997. .sp
  120998. Check whether a grain exists. Does not attempt to check or set the value.
  120999. .UNINDENT
  121000. .INDENT 0.0
  121001. .TP
  121002. .B salt.states.grains.list_absent(name, value, delimiter=\(aq:\(aq)
  121003. Delete a value from a grain formed as a list.
  121004. .sp
  121005. New in version 2014.1.0.
  121006. .INDENT 7.0
  121007. .TP
  121008. .B name
  121009. The grain name.
  121010. .TP
  121011. .B value
  121012. The value to delete from the grain list.
  121013. .TP
  121014. .B delimiter
  121015. A delimiter different from the default \fB:\fP can be provided.
  121016. .sp
  121017. New in version v2015.8.2.
  121018. .UNINDENT
  121019. .sp
  121020. The grain should be \fI\%list type\fP
  121021. .INDENT 7.0
  121022. .INDENT 3.5
  121023. .sp
  121024. .nf
  121025. .ft C
  121026. roles:
  121027. grains.list_absent:
  121028. \- value: db
  121029. .ft P
  121030. .fi
  121031. .UNINDENT
  121032. .UNINDENT
  121033. .sp
  121034. For multiple grains, the syntax looks like:
  121035. .INDENT 7.0
  121036. .INDENT 3.5
  121037. .sp
  121038. .nf
  121039. .ft C
  121040. roles:
  121041. grains.list_absent:
  121042. \- value:
  121043. \- web
  121044. \- dev
  121045. .ft P
  121046. .fi
  121047. .UNINDENT
  121048. .UNINDENT
  121049. .UNINDENT
  121050. .INDENT 0.0
  121051. .TP
  121052. .B salt.states.grains.list_present(name, value, delimiter=\(aq:\(aq)
  121053. New in version 2014.1.0.
  121054. .sp
  121055. Ensure the value is present in the list\-type grain. Note: If the grain that is
  121056. provided in \fBname\fP is not present on the system, this new grain will be created
  121057. with the corresponding provided value.
  121058. .INDENT 7.0
  121059. .TP
  121060. .B name
  121061. The grain name.
  121062. .TP
  121063. .B value
  121064. The value is present in the list type grain.
  121065. .TP
  121066. .B delimiter
  121067. A delimiter different from the default \fB:\fP can be provided.
  121068. .sp
  121069. New in version v2015.8.2.
  121070. .UNINDENT
  121071. .sp
  121072. The grain should be \fI\%list type\fP
  121073. .INDENT 7.0
  121074. .INDENT 3.5
  121075. .sp
  121076. .nf
  121077. .ft C
  121078. roles:
  121079. grains.list_present:
  121080. \- value: web
  121081. .ft P
  121082. .fi
  121083. .UNINDENT
  121084. .UNINDENT
  121085. .sp
  121086. For multiple grains, the syntax looks like:
  121087. .INDENT 7.0
  121088. .INDENT 3.5
  121089. .sp
  121090. .nf
  121091. .ft C
  121092. roles:
  121093. grains.list_present:
  121094. \- value:
  121095. \- web
  121096. \- dev
  121097. .ft P
  121098. .fi
  121099. .UNINDENT
  121100. .UNINDENT
  121101. .UNINDENT
  121102. .INDENT 0.0
  121103. .TP
  121104. .B salt.states.grains.make_hashable(list_grain, result=None)
  121105. Ensure that a list grain is hashable.
  121106. .INDENT 7.0
  121107. .TP
  121108. .B list_grain
  121109. The list grain that should be hashable
  121110. .TP
  121111. .B result
  121112. This function is recursive, so it must be possible to use a
  121113. sublist as parameter to the function. Should not be used by a caller
  121114. outside of the function.
  121115. .UNINDENT
  121116. .sp
  121117. Make it possible to compare two list grains to each other if the list
  121118. contains complex objects.
  121119. .UNINDENT
  121120. .INDENT 0.0
  121121. .TP
  121122. .B salt.states.grains.present(name, value, delimiter=\(aq:\(aq, force=False)
  121123. Ensure that a grain is set
  121124. .sp
  121125. Changed in version v2015.8.2.
  121126. .INDENT 7.0
  121127. .TP
  121128. .B name
  121129. The grain name
  121130. .TP
  121131. .B value
  121132. The value to set on the grain
  121133. .TP
  121134. .B force
  121135. If force is True, the existing grain will be overwritten
  121136. regardless of its existing or provided value type. Defaults to False
  121137. .sp
  121138. New in version v2015.8.2.
  121139. .TP
  121140. .B delimiter
  121141. A delimiter different from the default can be provided.
  121142. .sp
  121143. New in version v2015.8.2.
  121144. .UNINDENT
  121145. .sp
  121146. It is now capable to set a grain to a complex value (ie. lists and dicts)
  121147. and supports nested grains as well.
  121148. .sp
  121149. If the grain does not yet exist, a new grain is set to the given value. For
  121150. a nested grain, the necessary keys are created if they don\(aqt exist. If
  121151. a given key is an existing value, it will be converted, but an existing value
  121152. different from the given key will fail the state.
  121153. .sp
  121154. If the grain with the given name exists, its value is updated to the new
  121155. value unless its existing or provided value is complex (list or dict). Use
  121156. \fIforce: True\fP to overwrite.
  121157. .INDENT 7.0
  121158. .INDENT 3.5
  121159. .sp
  121160. .nf
  121161. .ft C
  121162. cheese:
  121163. grains.present:
  121164. \- value: edam
  121165. nested_grain_with_complex_value:
  121166. grains.present:
  121167. \- name: icinga:Apache SSL
  121168. \- value:
  121169. \- command: check_https
  121170. \- params: \-H localhost \-p 443 \-S
  121171. with,a,custom,delimiter:
  121172. grains.present:
  121173. \- value: yay
  121174. \- delimiter: \(aq,\(aq
  121175. .ft P
  121176. .fi
  121177. .UNINDENT
  121178. .UNINDENT
  121179. .UNINDENT
  121180. .SS salt.states.helm module
  121181. .INDENT 0.0
  121182. .TP
  121183. .B salt.states.helm.release_absent(name, namespace=None, flags=None, kvflags=None)
  121184. Make sure the release name is absent.
  121185. .INDENT 7.0
  121186. .TP
  121187. .B name
  121188. (string) The release name to uninstall.
  121189. .TP
  121190. .B namespace
  121191. (string) The namespace scope for this request.
  121192. .TP
  121193. .B flags
  121194. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121195. .TP
  121196. .B kvflags
  121197. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121198. .UNINDENT
  121199. .sp
  121200. Example:
  121201. .INDENT 7.0
  121202. .INDENT 3.5
  121203. .sp
  121204. .nf
  121205. .ft C
  121206. helm_release_is_absent:
  121207. helm.release_absent:
  121208. \- name: release_name
  121209. # In dry\-run mode.
  121210. helm_release_is_absent_dry\-run:
  121211. helm.release_absent:
  121212. \- name: release_name
  121213. \- flags:
  121214. \- dry\-run
  121215. .ft P
  121216. .fi
  121217. .UNINDENT
  121218. .UNINDENT
  121219. .UNINDENT
  121220. .INDENT 0.0
  121221. .TP
  121222. .B salt.states.helm.release_present(name, chart, values=None, version=None, namespace=None, set=None, flags=None, kvflags=None)
  121223. Make sure the release name is present.
  121224. .INDENT 7.0
  121225. .TP
  121226. .B name
  121227. (string) The release name to install.
  121228. .TP
  121229. .B chart
  121230. (string) The chart to install.
  121231. .TP
  121232. .B values
  121233. (string) Absolute path to the values.yaml file.
  121234. .TP
  121235. .B version
  121236. (string) The exact chart version to install. If this is not specified, the latest version is installed.
  121237. .TP
  121238. .B namespace
  121239. (string) The namespace scope for this request.
  121240. .TP
  121241. .B set
  121242. (string or list) Set a values on the command line.
  121243. .TP
  121244. .B flags
  121245. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121246. .TP
  121247. .B kvflags
  121248. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121249. .UNINDENT
  121250. .sp
  121251. Example:
  121252. .INDENT 7.0
  121253. .INDENT 3.5
  121254. .sp
  121255. .nf
  121256. .ft C
  121257. helm_release_is_present:
  121258. helm.release_present:
  121259. \- name: release_name
  121260. \- chart: repo/chart
  121261. # In dry\-run mode.
  121262. helm_release_is_present_dry\-run:
  121263. helm.release_present:
  121264. \- name: release_name
  121265. \- chart: repo/chart
  121266. \- flags:
  121267. \- dry\-run
  121268. # With values.yaml file.
  121269. helm_release_is_present_values:
  121270. helm.release_present:
  121271. \- name: release_name
  121272. \- chart: repo/chart
  121273. \- kvflags:
  121274. values: /path/to/values.yaml
  121275. .ft P
  121276. .fi
  121277. .UNINDENT
  121278. .UNINDENT
  121279. .UNINDENT
  121280. .INDENT 0.0
  121281. .TP
  121282. .B salt.states.helm.repo_managed(name, present=None, absent=None, prune=False, repo_update=False, namespace=None, flags=None, kvflags=None)
  121283. Make sure the repository is updated.
  121284. .INDENT 7.0
  121285. .TP
  121286. .B name
  121287. (string) Not used.
  121288. .TP
  121289. .B present
  121290. (list) List of repository to be present. It\(aqs a list of dict: [{\(aqname\(aq: \(aqlocal_name\(aq, \(aqurl\(aq: \(aqrepository_url\(aq}]
  121291. .TP
  121292. .B absent
  121293. (list) List of local name repository to be absent.
  121294. .TP
  121295. .B prune
  121296. (boolean \- default: False) If True, all repository already present but not in the present list would be removed.
  121297. .TP
  121298. .B repo_update
  121299. (boolean \- default: False) If True, the Helm repository is updated after a repository add or remove.
  121300. .TP
  121301. .B namespace
  121302. (string) The namespace scope for this request.
  121303. .TP
  121304. .B flags
  121305. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121306. .TP
  121307. .B kvflags
  121308. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121309. .UNINDENT
  121310. .sp
  121311. Example:
  121312. .INDENT 7.0
  121313. .INDENT 3.5
  121314. .sp
  121315. .nf
  121316. .ft C
  121317. helm_repository_is_managed:
  121318. helm.repo_managed:
  121319. \- present:
  121320. \- name: local_name_1
  121321. url: repository_url
  121322. \- absent:
  121323. \- local_name_2
  121324. .ft P
  121325. .fi
  121326. .UNINDENT
  121327. .UNINDENT
  121328. .UNINDENT
  121329. .INDENT 0.0
  121330. .TP
  121331. .B salt.states.helm.repo_updated(name, namespace=None, flags=None, kvflags=None)
  121332. Make sure the repository is updated.
  121333. To execute after a repository changes.
  121334. .INDENT 7.0
  121335. .TP
  121336. .B name
  121337. (string) Not used.
  121338. .TP
  121339. .B namespace
  121340. (string) The namespace scope for this request.
  121341. .TP
  121342. .B flags
  121343. (list) Flags in argument of the command without values. ex: [\(aqhelp\(aq, \(aq\-\-help\(aq]
  121344. .TP
  121345. .B kvflags
  121346. (dict) Flags in argument of the command with values. ex: {\(aqv\(aq: 2, \(aq\-\-v\(aq: 4}
  121347. .UNINDENT
  121348. .sp
  121349. Example:
  121350. .INDENT 7.0
  121351. .INDENT 3.5
  121352. .sp
  121353. .nf
  121354. .ft C
  121355. helm_repository_is_updated:
  121356. helm.repo_updated
  121357. .ft P
  121358. .fi
  121359. .UNINDENT
  121360. .UNINDENT
  121361. .UNINDENT
  121362. .SS salt.states.highstate_doc module
  121363. .sp
  121364. To be used with processors in module \fIhighstate_doc\fP\&.
  121365. .INDENT 0.0
  121366. .TP
  121367. .B salt.states.highstate_doc.note(name, source=None, contents=None, **kwargs)
  121368. Add content to a document generated using \fIhighstate_doc.render\fP\&.
  121369. .sp
  121370. This state does not preform any tasks on the host. It only is used in highstate_doc lowstate processors
  121371. to include extra documents.
  121372. .INDENT 7.0
  121373. .INDENT 3.5
  121374. .sp
  121375. .nf
  121376. .ft C
  121377. {{sls}} example note:
  121378. highstate_doc.note:
  121379. \- name: example note
  121380. \- require_in:
  121381. \- pkg: somepackage
  121382. \- contents: |
  121383. example \(gahighstate_doc.note\(ga
  121384. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  121385. This state does not do anything to the system! It is only used by a \(gaprocessor\(ga
  121386. you can use \(garequisites\(ga and \(gaorder\(ga to move your docs around the rendered file.
  121387. .. this message appare above the \(gapkg: somepackage\(ga state.
  121388. \- source: salt://{{tpldir}}/also_include_a_file.md
  121389. {{sls}} extra help:
  121390. highstate_doc.note:
  121391. \- name: example
  121392. \- order: 0
  121393. \- source: salt://{{tpldir}}/HELP.md
  121394. .ft P
  121395. .fi
  121396. .UNINDENT
  121397. .UNINDENT
  121398. .UNINDENT
  121399. .SS salt.states.http
  121400. .sp
  121401. HTTP monitoring states
  121402. .sp
  121403. Perform an HTTP query and statefully return the result
  121404. .sp
  121405. New in version 2015.5.0.
  121406. .INDENT 0.0
  121407. .TP
  121408. .B salt.states.http.query(name, match=None, match_type=u\(aqstring\(aq, status=None, status_type=u\(aqstring\(aq, wait_for=None, **kwargs)
  121409. Perform an HTTP query and statefully return the result
  121410. .sp
  121411. Passes through all the parameters described in the
  121412. \fButils.http.query function\fP:
  121413. .INDENT 7.0
  121414. .TP
  121415. .B name
  121416. The name of the query.
  121417. .TP
  121418. .B match
  121419. Specifies a pattern to look for in the return text. By default, this will
  121420. perform a string comparison of looking for the value of match in the return
  121421. text.
  121422. .TP
  121423. .B match_type
  121424. Specifies the type of pattern matching to use on match. Default is \fBstring\fP, but
  121425. can also be set to \fBpcre\fP to use regular expression matching if a more
  121426. complex pattern matching is required.
  121427. .sp
  121428. \fBNOTE:\fP
  121429. .INDENT 7.0
  121430. .INDENT 3.5
  121431. Despite the name of \fBmatch_type\fP for this argument, this setting
  121432. actually uses Python\(aqs \fBre.search()\fP function rather than Python\(aqs
  121433. \fBre.match()\fP function.
  121434. .UNINDENT
  121435. .UNINDENT
  121436. .TP
  121437. .B status
  121438. The status code for a URL for which to be checked. Can be used instead of
  121439. or in addition to the \fBmatch\fP setting. This can be passed as an individual status code
  121440. or a list of status codes.
  121441. .TP
  121442. .B status_type
  121443. Specifies the type of pattern matching to use for status. Default is \fBstring\fP, but
  121444. can also be set to \fBpcre\fP to use regular expression matching if a more
  121445. complex pattern matching is required. Additionally, if a list of strings representing
  121446. statuses is given, the type \fBlist\fP can be used.
  121447. .sp
  121448. New in version 3000.
  121449. .sp
  121450. \fBNOTE:\fP
  121451. .INDENT 7.0
  121452. .INDENT 3.5
  121453. Despite the name of \fBmatch_type\fP for this argument, this setting
  121454. actually uses Python\(aqs \fBre.search()\fP function rather than Python\(aqs
  121455. \fBre.match()\fP function.
  121456. .UNINDENT
  121457. .UNINDENT
  121458. .UNINDENT
  121459. .sp
  121460. If both \fBmatch\fP and \fBstatus\fP options are set, both settings will be checked.
  121461. However, note that if only one option is \fBTrue\fP and the other is \fBFalse\fP,
  121462. then \fBFalse\fP will be returned. If this case is reached, the comments in the
  121463. return data will contain troubleshooting information.
  121464. .sp
  121465. For more information about the \fBhttp.query\fP state, refer to the
  121466. HTTP Tutorial\&.
  121467. .INDENT 7.0
  121468. .INDENT 3.5
  121469. .sp
  121470. .nf
  121471. .ft C
  121472. query_example:
  121473. http.query:
  121474. \- name: \(aqhttp://example.com/\(aq
  121475. \- status: 200
  121476. query_example2:
  121477. http.query:
  121478. \- name: \(aqhttp://example.com/\(aq
  121479. \- status:
  121480. \- 200
  121481. \- 201
  121482. \- status_type: list
  121483. .ft P
  121484. .fi
  121485. .UNINDENT
  121486. .UNINDENT
  121487. .UNINDENT
  121488. .INDENT 0.0
  121489. .TP
  121490. .B salt.states.http.wait_for_successful_query(name, wait_for=300, **kwargs)
  121491. Like query but, repeat and wait until match/match_type or status is fulfilled. State returns result from last
  121492. query state in case of success or if no successful query was made within wait_for timeout.
  121493. .INDENT 7.0
  121494. .TP
  121495. .B name
  121496. The name of the query.
  121497. .TP
  121498. .B wait_for
  121499. Total time to wait for requests that succeed.
  121500. .TP
  121501. .B request_interval
  121502. Optional interval to delay requests by N seconds to reduce the number of requests sent.
  121503. .UNINDENT
  121504. .sp
  121505. \fBNOTE:\fP
  121506. .INDENT 7.0
  121507. .INDENT 3.5
  121508. All other arguments are passed to the http.query state.
  121509. .UNINDENT
  121510. .UNINDENT
  121511. .UNINDENT
  121512. .SS salt.states.ifttt
  121513. .SS Trigger an event in IFTTT
  121514. .sp
  121515. This state is useful for trigging events in IFTTT.
  121516. .sp
  121517. New in version 2015.8.0.
  121518. .INDENT 0.0
  121519. .INDENT 3.5
  121520. .sp
  121521. .nf
  121522. .ft C
  121523. ifttt\-event:
  121524. ifttt.trigger_event:
  121525. \- event: TestEvent
  121526. \- value1: \(aqThis state was executed successfully.\(aq
  121527. \- value2: \(aqAnother value we can send.\(aq
  121528. \- value3: \(aqA third value we can send.\(aq
  121529. .ft P
  121530. .fi
  121531. .UNINDENT
  121532. .UNINDENT
  121533. .sp
  121534. The api key can be specified in the master or minion configuration like below:
  121535. .. code\-block:: yaml
  121536. .INDENT 0.0
  121537. .INDENT 3.5
  121538. .INDENT 0.0
  121539. .TP
  121540. .B ifttt:
  121541. secret_key: bzMRb\-KKIAaNOwKEEw792J7Eb\-B3z7muhdhYblJn4V6
  121542. .UNINDENT
  121543. .UNINDENT
  121544. .UNINDENT
  121545. .INDENT 0.0
  121546. .TP
  121547. .B salt.states.ifttt.trigger_event(name, event, value1=None, value2=None, value3=None)
  121548. Trigger an event in IFTTT
  121549. .INDENT 7.0
  121550. .INDENT 3.5
  121551. .sp
  121552. .nf
  121553. .ft C
  121554. ifttt\-event:
  121555. ifttt.trigger_event:
  121556. \- event: TestEvent
  121557. \- value1: \(aqA value that we want to send.\(aq
  121558. \- value2: \(aqA second value that we want to send.\(aq
  121559. \- value3: \(aqA third value that we want to send.\(aq
  121560. .ft P
  121561. .fi
  121562. .UNINDENT
  121563. .UNINDENT
  121564. .sp
  121565. The following parameters are required:
  121566. .INDENT 7.0
  121567. .TP
  121568. .B name
  121569. The unique name for this event.
  121570. .TP
  121571. .B event
  121572. The name of the event to trigger in IFTTT.
  121573. .UNINDENT
  121574. .sp
  121575. The following parameters are optional:
  121576. .INDENT 7.0
  121577. .TP
  121578. .B value1
  121579. One of the values that we can send to IFTT.
  121580. .TP
  121581. .B value2
  121582. One of the values that we can send to IFTT.
  121583. .TP
  121584. .B value3
  121585. One of the values that we can send to IFTT.
  121586. .UNINDENT
  121587. .UNINDENT
  121588. .SS salt.states.incron
  121589. .SS Management of incron, the inotify cron
  121590. .sp
  121591. The incron state module allows for user incrontabs to be cleanly managed.
  121592. .sp
  121593. Incron declarations require a number of parameters. The parameters needed
  121594. to be declared: \fBpath\fP, \fBmask\fP, and \fBcmd\fP\&. The \fBuser\fP whose incrontab is to be edited
  121595. also needs to be defined.
  121596. .sp
  121597. When making changes to an existing incron job, the \fBpath\fP declaration is the unique
  121598. factor, so if an existing cron that looks like this:
  121599. .INDENT 0.0
  121600. .INDENT 3.5
  121601. .sp
  121602. .nf
  121603. .ft C
  121604. Watch for modifications in /home/user:
  121605. incron.present:
  121606. \- user: root
  121607. \- path: /home/user
  121608. \- mask:
  121609. \- IN_MODIFY
  121610. \- cmd: \(aqecho "$$ $@"\(aq
  121611. .ft P
  121612. .fi
  121613. .UNINDENT
  121614. .UNINDENT
  121615. .sp
  121616. Is changed to this:
  121617. .INDENT 0.0
  121618. .INDENT 3.5
  121619. .sp
  121620. .nf
  121621. .ft C
  121622. Watch for modifications and access in /home/user:
  121623. incron.present:
  121624. \- user: root
  121625. \- path: /home/user
  121626. \- mask:
  121627. \- IN_MODIFY
  121628. \- IN_ACCESS
  121629. \- cmd: \(aqecho "$$ $@"\(aq
  121630. .ft P
  121631. .fi
  121632. .UNINDENT
  121633. .UNINDENT
  121634. .sp
  121635. Then the existing cron will be updated, but if the cron command is changed,
  121636. then a new cron job will be added to the user\(aqs crontab.
  121637. .sp
  121638. New in version 0.17.0.
  121639. .INDENT 0.0
  121640. .TP
  121641. .B salt.states.incron.absent(name, path, mask, cmd, user=u\(aqroot\(aq)
  121642. Verifies that the specified incron job is absent for the specified user; only
  121643. the name is matched when removing a incron job.
  121644. .INDENT 7.0
  121645. .TP
  121646. .B name
  121647. Unique comment describing the entry
  121648. .TP
  121649. .B path
  121650. The path that should be watched
  121651. .TP
  121652. .B user
  121653. The name of the user who\(aqs crontab needs to be modified, defaults to
  121654. the root user
  121655. .TP
  121656. .B mask
  121657. The mask of events that should be monitored for
  121658. .TP
  121659. .B cmd
  121660. The cmd that should be executed
  121661. .UNINDENT
  121662. .UNINDENT
  121663. .INDENT 0.0
  121664. .TP
  121665. .B salt.states.incron.present(name, path, mask, cmd, user=u\(aqroot\(aq)
  121666. Verifies that the specified incron job is present for the specified user.
  121667. For more advanced information about what exactly can be set in the cron
  121668. timing parameters, check your incron system\(aqs documentation. Most Unix\-like
  121669. systems\(aq incron documentation can be found via the incrontab man page:
  121670. \fBman 5 incrontab\fP\&.
  121671. .INDENT 7.0
  121672. .TP
  121673. .B name
  121674. Unique comment describing the entry
  121675. .TP
  121676. .B path
  121677. The path that should be watched
  121678. .TP
  121679. .B user
  121680. The name of the user who\(aqs crontab needs to be modified, defaults to
  121681. the root user
  121682. .TP
  121683. .B mask
  121684. The mask of events that should be monitored for
  121685. .TP
  121686. .B cmd
  121687. The cmd that should be executed
  121688. .UNINDENT
  121689. .UNINDENT
  121690. .SS salt.states.influxdb08_database module
  121691. .SS Management of Influxdb 0.8 databases
  121692. .sp
  121693. (compatible with InfluxDB version 0.5\-0.8)
  121694. .sp
  121695. New in version 2014.7.0.
  121696. .INDENT 0.0
  121697. .TP
  121698. .B salt.states.influxdb08_database.absent(name, user=None, password=None, host=None, port=None)
  121699. Ensure that the named database is absent
  121700. .INDENT 7.0
  121701. .TP
  121702. .B name
  121703. The name of the database to remove
  121704. .TP
  121705. .B user
  121706. The user to connect as (must be able to remove the database)
  121707. .TP
  121708. .B password
  121709. The password of the user
  121710. .TP
  121711. .B host
  121712. The host to connect to
  121713. .TP
  121714. .B port
  121715. The port to connect to
  121716. .UNINDENT
  121717. .UNINDENT
  121718. .INDENT 0.0
  121719. .TP
  121720. .B salt.states.influxdb08_database.present(name, user=None, password=None, host=None, port=None)
  121721. Ensure that the named database is present
  121722. .INDENT 7.0
  121723. .TP
  121724. .B name
  121725. The name of the database to create
  121726. .TP
  121727. .B user
  121728. The user to connect as (must be able to remove the database)
  121729. .TP
  121730. .B password
  121731. The password of the user
  121732. .TP
  121733. .B host
  121734. The host to connect to
  121735. .TP
  121736. .B port
  121737. The port to connect to
  121738. .UNINDENT
  121739. .UNINDENT
  121740. .SS salt.states.influxdb08_user module
  121741. .SS Management of InfluxDB 0.8 users
  121742. .sp
  121743. (compatible with InfluxDB version 0.5\-0.8)
  121744. .sp
  121745. New in version 2014.7.0.
  121746. .INDENT 0.0
  121747. .TP
  121748. .B salt.states.influxdb08_user.absent(name, database=None, user=None, password=None, host=None, port=None)
  121749. Ensure that the named cluster admin or database user is absent.
  121750. .INDENT 7.0
  121751. .TP
  121752. .B name
  121753. The name of the user to remove
  121754. .TP
  121755. .B database
  121756. The database to remove the user from
  121757. .TP
  121758. .B user
  121759. The user to connect as (must be able to remove the user)
  121760. .TP
  121761. .B password
  121762. The password of the user
  121763. .TP
  121764. .B host
  121765. The host to connect to
  121766. .TP
  121767. .B port
  121768. The port to connect to
  121769. .UNINDENT
  121770. .UNINDENT
  121771. .INDENT 0.0
  121772. .TP
  121773. .B salt.states.influxdb08_user.present(name, passwd, database=None, user=None, password=None, host=None, port=None)
  121774. Ensure that the cluster admin or database user is present.
  121775. .INDENT 7.0
  121776. .TP
  121777. .B name
  121778. The name of the user to manage
  121779. .TP
  121780. .B passwd
  121781. The password of the user
  121782. .TP
  121783. .B database
  121784. The database to create the user in
  121785. .TP
  121786. .B user
  121787. The user to connect as (must be able to create the user)
  121788. .TP
  121789. .B password
  121790. The password of the user
  121791. .TP
  121792. .B host
  121793. The host to connect to
  121794. .TP
  121795. .B port
  121796. The port to connect to
  121797. .UNINDENT
  121798. .UNINDENT
  121799. .SS salt.states.influxdb_continuous_query module
  121800. .SS Management of Influxdb continuous queries
  121801. .sp
  121802. New in version 2017.7.0.
  121803. .sp
  121804. (compatible with InfluxDB version 0.9+)
  121805. .INDENT 0.0
  121806. .TP
  121807. .B salt.states.influxdb_continuous_query.absent(name, database, **client_args)
  121808. Ensure that given continuous query is absent.
  121809. .INDENT 7.0
  121810. .TP
  121811. .B name
  121812. Name of the continuous query to remove.
  121813. .TP
  121814. .B database
  121815. Name of the database that the continuous query was defined on.
  121816. .UNINDENT
  121817. .UNINDENT
  121818. .INDENT 0.0
  121819. .TP
  121820. .B salt.states.influxdb_continuous_query.present(name, database, query, resample_time=None, coverage_period=None, **client_args)
  121821. Ensure that given continuous query is present.
  121822. .INDENT 7.0
  121823. .TP
  121824. .B name
  121825. Name of the continuous query to create.
  121826. .TP
  121827. .B database
  121828. Database to create continuous query on.
  121829. .TP
  121830. .B query
  121831. The query content
  121832. .TP
  121833. .B resample_time
  121834. None
  121835. Duration between continuous query resampling.
  121836. .TP
  121837. .B coverage_period
  121838. None
  121839. Duration specifying time period per sample.
  121840. .UNINDENT
  121841. .UNINDENT
  121842. .SS salt.states.influxdb_database
  121843. .SS Management of Influxdb databases
  121844. .sp
  121845. (compatible with InfluxDB version 0.9+)
  121846. .INDENT 0.0
  121847. .TP
  121848. .B salt.states.influxdb_database.absent(name, **client_args)
  121849. Ensure that given database is absent.
  121850. .INDENT 7.0
  121851. .TP
  121852. .B name
  121853. Name of the database to remove.
  121854. .UNINDENT
  121855. .UNINDENT
  121856. .INDENT 0.0
  121857. .TP
  121858. .B salt.states.influxdb_database.present(name, **client_args)
  121859. Ensure that given database is present.
  121860. .INDENT 7.0
  121861. .TP
  121862. .B name
  121863. Name of the database to create.
  121864. .UNINDENT
  121865. .UNINDENT
  121866. .SS salt.states.influxdb_retention_policy module
  121867. .SS Management of Influxdb retention policies
  121868. .sp
  121869. New in version 2017.7.0.
  121870. .sp
  121871. (compatible with InfluxDB version 0.9+)
  121872. .INDENT 0.0
  121873. .TP
  121874. .B salt.states.influxdb_retention_policy.absent(name, database, **client_args)
  121875. Ensure that given retention policy is absent.
  121876. .INDENT 7.0
  121877. .TP
  121878. .B name
  121879. Name of the retention policy to remove.
  121880. .TP
  121881. .B database
  121882. Name of the database that the retention policy was defined on.
  121883. .UNINDENT
  121884. .UNINDENT
  121885. .INDENT 0.0
  121886. .TP
  121887. .B salt.states.influxdb_retention_policy.convert_duration(duration)
  121888. Convert the a duration string into XXhYYmZZs format
  121889. .INDENT 7.0
  121890. .TP
  121891. .B duration
  121892. Duration to convert
  121893. .TP
  121894. .B Returns: duration_string
  121895. String representation of duration in XXhYYmZZs format
  121896. .UNINDENT
  121897. .UNINDENT
  121898. .INDENT 0.0
  121899. .TP
  121900. .B salt.states.influxdb_retention_policy.present(name, database, duration=u\(aq7d\(aq, replication=1, default=False, **client_args)
  121901. Ensure that given retention policy is present.
  121902. .INDENT 7.0
  121903. .TP
  121904. .B name
  121905. Name of the retention policy to create.
  121906. .TP
  121907. .B database
  121908. Database to create retention policy on.
  121909. .UNINDENT
  121910. .UNINDENT
  121911. .SS salt.states.influxdb_user
  121912. .SS Management of InfluxDB users
  121913. .sp
  121914. (compatible with InfluxDB version 0.9+)
  121915. .INDENT 0.0
  121916. .TP
  121917. .B salt.states.influxdb_user.absent(name, **client_args)
  121918. Ensure that given user is absent.
  121919. .INDENT 7.0
  121920. .TP
  121921. .B name
  121922. The name of the user to manage
  121923. .UNINDENT
  121924. .UNINDENT
  121925. .INDENT 0.0
  121926. .TP
  121927. .B salt.states.influxdb_user.present(name, passwd, admin=False, grants=None, **client_args)
  121928. Ensure that given user is present.
  121929. .INDENT 7.0
  121930. .TP
  121931. .B name
  121932. Name of the user to manage
  121933. .TP
  121934. .B passwd
  121935. Password of the user
  121936. .TP
  121937. .B admin
  121938. False
  121939. Whether the user should have cluster administration
  121940. privileges or not.
  121941. .TP
  121942. .B grants
  121943. Optional \- Dict of database:privilege items associated with
  121944. the user. Example:
  121945. .INDENT 7.0
  121946. .TP
  121947. .B grants:
  121948. foo_db: read
  121949. bar_db: all
  121950. .UNINDENT
  121951. .UNINDENT
  121952. .sp
  121953. \fBExample:\fP
  121954. .INDENT 7.0
  121955. .INDENT 3.5
  121956. .sp
  121957. .nf
  121958. .ft C
  121959. example user present in influxdb:
  121960. influxdb_user.present:
  121961. \- name: example
  121962. \- passwd: somepassword
  121963. \- admin: False
  121964. \- grants:
  121965. foo_db: read
  121966. bar_db: all
  121967. .ft P
  121968. .fi
  121969. .UNINDENT
  121970. .UNINDENT
  121971. .UNINDENT
  121972. .SS salt.states.infoblox_a
  121973. .sp
  121974. Infoblox A record management.
  121975. .sp
  121976. functions accept api_opts:
  121977. .INDENT 0.0
  121978. .INDENT 3.5
  121979. api_verifyssl: verify SSL [default to True or pillar value]
  121980. api_url: server to connect to [default to pillar value]
  121981. api_username: [default to pillar value]
  121982. api_password: [default to pillar value]
  121983. .UNINDENT
  121984. .UNINDENT
  121985. .INDENT 0.0
  121986. .TP
  121987. .B salt.states.infoblox_a.absent(name=None, ipv4addr=None, **api_opts)
  121988. Ensure infoblox A record is removed.
  121989. .sp
  121990. State example:
  121991. .INDENT 7.0
  121992. .INDENT 3.5
  121993. .sp
  121994. .nf
  121995. .ft C
  121996. infoblox_a.absent:
  121997. \- name: example\-ha\-0.domain.com
  121998. infoblox_a.absent:
  121999. \- name:
  122000. \- ipv4addr: 127.0.23.23
  122001. .ft P
  122002. .fi
  122003. .UNINDENT
  122004. .UNINDENT
  122005. .UNINDENT
  122006. .INDENT 0.0
  122007. .TP
  122008. .B salt.states.infoblox_a.present(name=None, ipv4addr=None, data=None, ensure_data=True, **api_opts)
  122009. Ensure infoblox A record.
  122010. .sp
  122011. When you wish to update a hostname ensure \fIname\fP is set to the hostname
  122012. of the current record. You can give a new name in the \fIdata.name\fP\&.
  122013. .sp
  122014. State example:
  122015. .INDENT 7.0
  122016. .INDENT 3.5
  122017. .sp
  122018. .nf
  122019. .ft C
  122020. infoblox_a.present:
  122021. \- name: example\-ha\-0.domain.com
  122022. \- data:
  122023. name: example\-ha\-0.domain.com
  122024. ipv4addr: 123.0.31.2
  122025. view: Internal
  122026. .ft P
  122027. .fi
  122028. .UNINDENT
  122029. .UNINDENT
  122030. .UNINDENT
  122031. .SS salt.states.infoblox_cname
  122032. .sp
  122033. Infoblox CNAME management.
  122034. .sp
  122035. functions accept api_opts:
  122036. .INDENT 0.0
  122037. .INDENT 3.5
  122038. api_verifyssl: verify SSL [default to True or pillar value]
  122039. api_url: server to connect to [default to pillar value]
  122040. api_username: [default to pillar value]
  122041. api_password: [default to pillar value]
  122042. .UNINDENT
  122043. .UNINDENT
  122044. .INDENT 0.0
  122045. .TP
  122046. .B salt.states.infoblox_cname.absent(name=None, canonical=None, **api_opts)
  122047. Ensure the CNAME with the given name or canonical name is removed
  122048. .UNINDENT
  122049. .INDENT 0.0
  122050. .TP
  122051. .B salt.states.infoblox_cname.present(name=None, data=None, ensure_data=True, **api_opts)
  122052. Ensure the CNAME with the given data is present.
  122053. .INDENT 7.0
  122054. .TP
  122055. .B name
  122056. CNAME of record
  122057. .TP
  122058. .B data
  122059. raw CNAME api data see: \fI\%https://INFOBLOX/wapidoc\fP
  122060. .UNINDENT
  122061. .sp
  122062. State example:
  122063. .INDENT 7.0
  122064. .INDENT 3.5
  122065. .sp
  122066. .nf
  122067. .ft C
  122068. infoblox_cname.present:
  122069. \- name: example\-ha\-0.domain.com
  122070. \- data:
  122071. name: example\-ha\-0.domain.com
  122072. canonical: example.domain.com
  122073. zone: example.com
  122074. view: Internal
  122075. comment: Example comment
  122076. infoblox_cname.present:
  122077. \- name: example\-ha\-0.domain.com
  122078. \- data:
  122079. name: example\-ha\-0.domain.com
  122080. canonical: example.domain.com
  122081. zone: example.com
  122082. view: Internal
  122083. comment: Example comment
  122084. \- api_url: https://INFOBLOX/wapi/v1.2.1
  122085. \- api_username: username
  122086. \- api_password: passwd
  122087. .ft P
  122088. .fi
  122089. .UNINDENT
  122090. .UNINDENT
  122091. .UNINDENT
  122092. .SS salt.states.infoblox_host_record
  122093. .sp
  122094. Infoblox host record management.
  122095. .sp
  122096. functions accept api_opts:
  122097. .INDENT 0.0
  122098. .INDENT 3.5
  122099. api_verifyssl: verify SSL [default to True or pillar value]
  122100. api_url: server to connect to [default to pillar value]
  122101. api_username: [default to pillar value]
  122102. api_password: [default to pillar value]
  122103. .UNINDENT
  122104. .UNINDENT
  122105. .INDENT 0.0
  122106. .TP
  122107. .B salt.states.infoblox_host_record.absent(name=None, ipv4addr=None, mac=None, **api_opts)
  122108. Ensure the host with the given Name ipv4addr or mac is removed.
  122109. .sp
  122110. State example:
  122111. .INDENT 7.0
  122112. .INDENT 3.5
  122113. .sp
  122114. .nf
  122115. .ft C
  122116. infoblox_host_record.absent:
  122117. \- name: hostname.of.record.to.remove
  122118. infoblox_host_record.absent:
  122119. \- name:
  122120. \- ipv4addr: 192.168.0.1
  122121. infoblox_host_record.absent:
  122122. \- name:
  122123. \- mac: 12:02:12:31:23:43
  122124. .ft P
  122125. .fi
  122126. .UNINDENT
  122127. .UNINDENT
  122128. .UNINDENT
  122129. .INDENT 0.0
  122130. .TP
  122131. .B salt.states.infoblox_host_record.present(name=None, data=None, ensure_data=True, **api_opts)
  122132. This will ensure that a host with the provided name exists.
  122133. This will try to ensure that the state of the host matches the given data
  122134. If the host is not found then one will be created.
  122135. .sp
  122136. When trying to update a hostname ensure \fIname\fP is set to the hostname
  122137. of the current record. You can give a new name in the \fIdata.name\fP\&.
  122138. .INDENT 7.0
  122139. .TP
  122140. .B Avoid race conditions, use func:nextavailableip:
  122141. .INDENT 7.0
  122142. .IP \(bu 2
  122143. func:nextavailableip:network/ZG54dfgsrDFEFfsfsLzA:10.0.0.0/8/default
  122144. .IP \(bu 2
  122145. func:nextavailableip:10.0.0.0/8
  122146. .IP \(bu 2
  122147. func:nextavailableip:10.0.0.0/8,externalconfigure_for_dns
  122148. .IP \(bu 2
  122149. func:nextavailableip:10.0.0.3\-10.0.0.10
  122150. .UNINDENT
  122151. .UNINDENT
  122152. .sp
  122153. State Example:
  122154. .INDENT 7.0
  122155. .INDENT 3.5
  122156. .sp
  122157. .nf
  122158. .ft C
  122159. # this would update \(gaoriginal_hostname.example.ca\(ga to changed \(gadata\(ga.
  122160. infoblox_host_record.present:
  122161. \- name: original_hostname.example.ca
  122162. \- data: {\(aqnamhostname.example.cae\(aq: \(aqhostname.example.ca\(aq,
  122163. \(aqaliases\(aq: [\(aqhostname.math.example.ca\(aq],
  122164. \(aqextattrs\(aq: [{\(aqBusiness Contact\(aq: {\(aqvalue\(aq: \(aqEXAMPLE@example.ca\(aq}}],
  122165. \(aqipv4addrs\(aq: [{\(aqconfigure_for_dhcp\(aq: True,
  122166. \(aqipv4addr\(aq: \(aqfunc:nextavailableip:129.97.139.0/24\(aq,
  122167. \(aqmac\(aq: \(aq00:50:56:84:6e:ae\(aq}],
  122168. \(aqipv6addrs\(aq: [], }
  122169. .ft P
  122170. .fi
  122171. .UNINDENT
  122172. .UNINDENT
  122173. .UNINDENT
  122174. .SS salt.states.infoblox_range
  122175. .sp
  122176. Infoblox host record management.
  122177. .sp
  122178. functions accept api_opts:
  122179. .INDENT 0.0
  122180. .INDENT 3.5
  122181. api_verifyssl: verify SSL [default to True or pillar value]
  122182. api_url: server to connect to [default to pillar value]
  122183. api_username: [default to pillar value]
  122184. api_password: [default to pillar value]
  122185. .UNINDENT
  122186. .UNINDENT
  122187. .INDENT 0.0
  122188. .TP
  122189. .B salt.states.infoblox_range.absent(name=None, start_addr=None, end_addr=None, data=None, **api_opts)
  122190. Ensure the range is removed
  122191. .sp
  122192. Supplying the end of the range is optional.
  122193. .sp
  122194. State example:
  122195. .INDENT 7.0
  122196. .INDENT 3.5
  122197. .sp
  122198. .nf
  122199. .ft C
  122200. infoblox_range.absent:
  122201. \- name: \(aqvlan10\(aq
  122202. infoblox_range.absent:
  122203. \- name:
  122204. \- start_addr: 127.0.1.20
  122205. .ft P
  122206. .fi
  122207. .UNINDENT
  122208. .UNINDENT
  122209. .UNINDENT
  122210. .INDENT 0.0
  122211. .TP
  122212. .B salt.states.infoblox_range.present(name=None, start_addr=None, end_addr=None, data=None, **api_opts)
  122213. Ensure range record is present.
  122214. .INDENT 7.0
  122215. .TP
  122216. .B infoblox_range.present:
  122217. start_addr: \(aq129.97.150.160\(aq,
  122218. end_addr: \(aq129.97.150.170\(aq,
  122219. .UNINDENT
  122220. .sp
  122221. Verbose state example:
  122222. .INDENT 7.0
  122223. .INDENT 3.5
  122224. .sp
  122225. .nf
  122226. .ft C
  122227. infoblox_range.present:
  122228. data: {
  122229. \(aqalways_update_dns\(aq: False,
  122230. \(aqauthority\(aq: False,
  122231. \(aqcomment\(aq: \(aqrange of IP addresses used for salt.. was used for ghost images deployment\(aq,
  122232. \(aqddns_generate_hostname\(aq: True,
  122233. \(aqdeny_all_clients\(aq: False,
  122234. \(aqdeny_bootp\(aq: False,
  122235. \(aqdisable\(aq: False,
  122236. \(aqemail_list\(aq: [],
  122237. \(aqenable_ddns\(aq: False,
  122238. \(aqenable_dhcp_thresholds\(aq: False,
  122239. \(aqenable_email_warnings\(aq: False,
  122240. \(aqenable_ifmap_publishing\(aq: False,
  122241. \(aqenable_snmp_warnings\(aq: False,
  122242. \(aqend_addr\(aq: \(aq129.97.150.169\(aq,
  122243. \(aqexclude\(aq: [],
  122244. \(aqextattrs\(aq: {},
  122245. \(aqfingerprint_filter_rules\(aq: [],
  122246. \(aqhigh_water_mark\(aq: 95,
  122247. \(aqhigh_water_mark_reset\(aq: 85,
  122248. \(aqignore_dhcp_option_list_request\(aq: False,
  122249. \(aqlease_scavenge_time\(aq: \-1,
  122250. \(aqlogic_filter_rules\(aq: [],
  122251. \(aqlow_water_mark\(aq: 0,
  122252. \(aqlow_water_mark_reset\(aq: 10,
  122253. \(aqmac_filter_rules\(aq: [],
  122254. \(aqmember\(aq: {\(aq_struct\(aq: \(aqdhcpmember\(aq,
  122255. \(aqipv4addr\(aq: \(aq129.97.128.9\(aq,
  122256. \(aqname\(aq: \(aqcn\-dhcp\-mc.example.ca\(aq},
  122257. \(aqms_options\(aq: [],
  122258. \(aqnac_filter_rules\(aq: [],
  122259. \(aqname\(aq: \(aqghost\-range\(aq,
  122260. \(aqnetwork\(aq: \(aq129.97.150.0/24\(aq,
  122261. \(aqnetwork_view\(aq: \(aqdefault\(aq,
  122262. \(aqoption_filter_rules\(aq: [],
  122263. \(aqoptions\(aq: [{\(aqname\(aq: \(aqdhcp\-lease\-time\(aq,
  122264. \(aqnum\(aq: 51,
  122265. \(aquse_option\(aq: False,
  122266. \(aqvalue\(aq: \(aq43200\(aq,
  122267. \(aqvendor_class\(aq: \(aqDHCP\(aq}],
  122268. \(aqrecycle_leases\(aq: True,
  122269. \(aqrelay_agent_filter_rules\(aq: [],
  122270. \(aqserver_association_type\(aq: \(aqMEMBER\(aq,
  122271. \(aqstart_addr\(aq: \(aq129.97.150.160\(aq,
  122272. \(aqupdate_dns_on_lease_renewal\(aq: False,
  122273. \(aquse_authority\(aq: False,
  122274. \(aquse_bootfile\(aq: False,
  122275. \(aquse_bootserver\(aq: False,
  122276. \(aquse_ddns_domainname\(aq: False,
  122277. \(aquse_ddns_generate_hostname\(aq: True,
  122278. \(aquse_deny_bootp\(aq: False,
  122279. \(aquse_email_list\(aq: False,
  122280. \(aquse_enable_ddns\(aq: False,
  122281. \(aquse_enable_dhcp_thresholds\(aq: False,
  122282. \(aquse_enable_ifmap_publishing\(aq: False,
  122283. \(aquse_ignore_dhcp_option_list_request\(aq: False,
  122284. \(aquse_known_clients\(aq: False,
  122285. \(aquse_lease_scavenge_time\(aq: False,
  122286. \(aquse_nextserver\(aq: False,
  122287. \(aquse_options\(aq: False,
  122288. \(aquse_recycle_leases\(aq: False,
  122289. \(aquse_unknown_clients\(aq: False,
  122290. \(aquse_update_dns_on_lease_renewal\(aq: False
  122291. }
  122292. .ft P
  122293. .fi
  122294. .UNINDENT
  122295. .UNINDENT
  122296. .UNINDENT
  122297. .SS salt.states.ipmi
  122298. .SS Manage IPMI devices over LAN
  122299. .sp
  122300. The following configuration defaults can be defined in the
  122301. minion, master config or pillar:
  122302. .INDENT 0.0
  122303. .INDENT 3.5
  122304. .sp
  122305. .nf
  122306. .ft C
  122307. ipmi.config:
  122308. api_host: 127.0.0.1
  122309. api_user: admin
  122310. api_pass: apassword
  122311. api_port: 623
  122312. api_kg: None
  122313. .ft P
  122314. .fi
  122315. .UNINDENT
  122316. .UNINDENT
  122317. .sp
  122318. Every call can override the config defaults:
  122319. .INDENT 0.0
  122320. .INDENT 3.5
  122321. .sp
  122322. .nf
  122323. .ft C
  122324. ensure myipmi system is set to network boot:
  122325. ipmi.boot_device:
  122326. \- name: network
  122327. \- api_host: myipmi.hostname.com
  122328. \- api_user: root
  122329. \- api_pass: apassword
  122330. \- api_kg: None
  122331. ensure myipmi system is powered on:
  122332. ipmi.power:
  122333. \- name: boot
  122334. \- api_host: myipmi.hostname.com
  122335. \- api_user: root
  122336. \- api_pass: apassword
  122337. .ft P
  122338. .fi
  122339. .UNINDENT
  122340. .UNINDENT
  122341. .INDENT 0.0
  122342. .TP
  122343. .B salt.states.ipmi.boot_device(name=u\(aqdefault\(aq, **kwargs)
  122344. Request power state change
  122345. .INDENT 7.0
  122346. .TP
  122347. .B name = \fBdefault\fP
  122348. .INDENT 7.0
  122349. .IP \(bu 2
  122350. network \-\- Request network boot
  122351. .IP \(bu 2
  122352. hd \-\- Boot from hard drive
  122353. .IP \(bu 2
  122354. safe \-\- Boot from hard drive, requesting \(aqsafe mode\(aq
  122355. .IP \(bu 2
  122356. optical \-\- boot from CD/DVD/BD drive
  122357. .IP \(bu 2
  122358. setup \-\- Boot into setup utility
  122359. .IP \(bu 2
  122360. default \-\- remove any IPMI directed boot device request
  122361. .UNINDENT
  122362. .TP
  122363. .B kwargs
  122364. .INDENT 7.0
  122365. .IP \(bu 2
  122366. api_host=localhost
  122367. .IP \(bu 2
  122368. api_user=admin
  122369. .IP \(bu 2
  122370. api_pass=
  122371. .IP \(bu 2
  122372. api_port=623
  122373. .IP \(bu 2
  122374. api_kg=None
  122375. .UNINDENT
  122376. .UNINDENT
  122377. .UNINDENT
  122378. .INDENT 0.0
  122379. .TP
  122380. .B salt.states.ipmi.power(name=u\(aqpower_on\(aq, wait=300, **kwargs)
  122381. Request power state change
  122382. .INDENT 7.0
  122383. .TP
  122384. .B name
  122385. .INDENT 7.0
  122386. .TP
  122387. .B Ensure power state one of:
  122388. .INDENT 7.0
  122389. .IP \(bu 2
  122390. power_on \-\- system turn on
  122391. .IP \(bu 2
  122392. power_off \-\- system turn off (without waiting for OS)
  122393. .IP \(bu 2
  122394. shutdown \-\- request OS proper shutdown
  122395. .IP \(bu 2
  122396. reset \-\- reset (without waiting for OS)
  122397. .IP \(bu 2
  122398. boot \-\- If system is off, then \(aqon\(aq, else \(aqreset\(aq
  122399. .UNINDENT
  122400. .UNINDENT
  122401. .TP
  122402. .B wait
  122403. wait X seconds for the job to complete before forcing.
  122404. (defaults to 300 seconds)
  122405. .TP
  122406. .B kwargs
  122407. .INDENT 7.0
  122408. .IP \(bu 2
  122409. api_host=localhost
  122410. .IP \(bu 2
  122411. api_user=admin
  122412. .IP \(bu 2
  122413. api_pass=
  122414. .IP \(bu 2
  122415. api_port=623
  122416. .IP \(bu 2
  122417. api_kg=None
  122418. .UNINDENT
  122419. .UNINDENT
  122420. .UNINDENT
  122421. .INDENT 0.0
  122422. .TP
  122423. .B salt.states.ipmi.user_absent(name, channel=14, **kwargs)
  122424. Remove user
  122425. Delete all user (uid) records having the matching name.
  122426. .INDENT 7.0
  122427. .TP
  122428. .B name
  122429. string name of user to delete
  122430. .TP
  122431. .B channel
  122432. channel to remove user access from defaults to 14 for auto.
  122433. .TP
  122434. .B kwargs
  122435. .INDENT 7.0
  122436. .IP \(bu 2
  122437. api_host=localhost
  122438. .IP \(bu 2
  122439. api_user=admin
  122440. .IP \(bu 2
  122441. api_pass=
  122442. .IP \(bu 2
  122443. api_port=623
  122444. .IP \(bu 2
  122445. api_kg=None
  122446. .UNINDENT
  122447. .UNINDENT
  122448. .UNINDENT
  122449. .INDENT 0.0
  122450. .TP
  122451. .B salt.states.ipmi.user_present(name, uid, password, channel=14, callback=False, link_auth=True, ipmi_msg=True, privilege_level=u\(aqadministrator\(aq, **kwargs)
  122452. Ensure IPMI user and user privileges.
  122453. .INDENT 7.0
  122454. .TP
  122455. .B name
  122456. name of user (limit 16 bytes)
  122457. .TP
  122458. .B uid
  122459. user id number (1 to 7)
  122460. .TP
  122461. .B password
  122462. user password (limit 16 bytes)
  122463. .TP
  122464. .B channel
  122465. ipmi channel defaults to 14 for auto
  122466. .TP
  122467. .B callback
  122468. User Restricted to Callback
  122469. .INDENT 7.0
  122470. .TP
  122471. .B False = User Privilege Limit is determined by the User Privilege Limit
  122472. parameter privilege_level, for both callback and non\-callback connections.
  122473. .TP
  122474. .B True = User Privilege Limit is determined by the privilege_level
  122475. parameter for callback connections, but is restricted to Callback
  122476. level for non\-callback connections. Thus, a user can only initiate
  122477. a Callback when they \(aqcall in\(aq to the BMC, but once the callback
  122478. connection has been made, the user could potentially establish a
  122479. session as an Operator.
  122480. .UNINDENT
  122481. .TP
  122482. .B link_auth
  122483. User Link authentication
  122484. True/False
  122485. user name and password information will be used for link
  122486. authentication, e.g. PPP CHAP) for the given channel. Link
  122487. authentication itself is a global setting for the channel and is
  122488. enabled/disabled via the serial/modem configuration parameters.
  122489. .TP
  122490. .B ipmi_msg
  122491. User IPMI Messaging
  122492. True/False
  122493. user name and password information will be used for IPMI
  122494. Messaging. In this case, \(aqIPMI Messaging\(aq refers to the ability to
  122495. execute generic IPMI commands that are not associated with a
  122496. particular payload type. For example, if IPMI Messaging is disabled for
  122497. a user, but that user is enabled for activating the SOL
  122498. payload type, then IPMI commands associated with SOL and session
  122499. management, such as Get SOL Configuration Parameters and Close Session
  122500. are available, but generic IPMI commands such as Get SEL Time are
  122501. unavailable.)
  122502. ipmi_msg
  122503. .TP
  122504. .B privilege_level
  122505. .INDENT 7.0
  122506. .IP \(bu 2
  122507. callback
  122508. .IP \(bu 2
  122509. user
  122510. .IP \(bu 2
  122511. operator
  122512. .IP \(bu 2
  122513. administrator
  122514. .IP \(bu 2
  122515. proprietary
  122516. .IP \(bu 2
  122517. no_access
  122518. .UNINDENT
  122519. .TP
  122520. .B kwargs
  122521. .INDENT 7.0
  122522. .IP \(bu 2
  122523. api_host=localhost
  122524. .IP \(bu 2
  122525. api_user=admin
  122526. .IP \(bu 2
  122527. api_pass=
  122528. .IP \(bu 2
  122529. api_port=623
  122530. .IP \(bu 2
  122531. api_kg=None
  122532. .UNINDENT
  122533. .UNINDENT
  122534. .UNINDENT
  122535. .SS salt.states.ipset
  122536. .SS Management of ipsets
  122537. .sp
  122538. This is an ipset\-specific module designed to manage IPSets for use
  122539. in IPTables Firewalls.
  122540. .INDENT 0.0
  122541. .INDENT 3.5
  122542. .sp
  122543. .nf
  122544. .ft C
  122545. setname:
  122546. ipset.set_present:
  122547. \- set_type: bitmap:ip
  122548. \- range: 192.168.0.0/16
  122549. \- comment: True
  122550. setname:
  122551. ipset.set_absent:
  122552. \- set_type: bitmap:ip
  122553. \- range: 192.168.0.0/16
  122554. \- comment: True
  122555. setname_entries:
  122556. ipset.present:
  122557. \- set_name: setname
  122558. \- entry: 192.168.0.3
  122559. \- comment: Hello
  122560. \- require:
  122561. \- ipset: baz
  122562. setname_entries:
  122563. ipset.present:
  122564. \- set_name: setname
  122565. \- entry:
  122566. \- 192.168.0.3
  122567. \- 192.168.1.3
  122568. \- comment: Hello
  122569. \- require:
  122570. \- ipset: baz
  122571. setname_entries:
  122572. ipset.absent:
  122573. \- set_name: setname
  122574. \- entry:
  122575. \- 192.168.0.3
  122576. \- 192.168.1.3
  122577. \- comment: Hello
  122578. \- require:
  122579. \- ipset: baz
  122580. setname:
  122581. ipset.flush:
  122582. .ft P
  122583. .fi
  122584. .UNINDENT
  122585. .UNINDENT
  122586. .INDENT 0.0
  122587. .TP
  122588. .B salt.states.ipset.absent(name, entry=None, entries=None, family=u\(aqipv4\(aq, **kwargs)
  122589. New in version 2014.7.0.
  122590. .sp
  122591. Remove a entry or entries from a chain
  122592. .INDENT 7.0
  122593. .TP
  122594. .B name
  122595. A user\-defined name to call this entry by in another part of a state or
  122596. formula. This should not be an actual entry.
  122597. .TP
  122598. .B family
  122599. Network family, ipv4 or ipv6.
  122600. .UNINDENT
  122601. .UNINDENT
  122602. .INDENT 0.0
  122603. .TP
  122604. .B salt.states.ipset.flush(name, family=u\(aqipv4\(aq, **kwargs)
  122605. New in version 2014.7.0.
  122606. .sp
  122607. Flush current ipset set
  122608. .INDENT 7.0
  122609. .TP
  122610. .B family
  122611. Networking family, either ipv4 or ipv6
  122612. .UNINDENT
  122613. .UNINDENT
  122614. .INDENT 0.0
  122615. .TP
  122616. .B salt.states.ipset.present(name, entry=None, family=u\(aqipv4\(aq, **kwargs)
  122617. New in version 2014.7.0.
  122618. .sp
  122619. Append a entry to a set
  122620. .INDENT 7.0
  122621. .TP
  122622. .B name
  122623. A user\-defined name to call this entry by in another part of a state or
  122624. formula. This should not be an actual entry.
  122625. .TP
  122626. .B entry
  122627. A single entry to add to a set or a list of entries to add to a set
  122628. .TP
  122629. .B family
  122630. Network family, ipv4 or ipv6.
  122631. .UNINDENT
  122632. .UNINDENT
  122633. .INDENT 0.0
  122634. .TP
  122635. .B salt.states.ipset.set_absent(name, family=u\(aqipv4\(aq, **kwargs)
  122636. New in version 2014.7.0.
  122637. .sp
  122638. Verify the set is absent.
  122639. .INDENT 7.0
  122640. .TP
  122641. .B family
  122642. Networking family, either ipv4 or ipv6
  122643. .UNINDENT
  122644. .UNINDENT
  122645. .INDENT 0.0
  122646. .TP
  122647. .B salt.states.ipset.set_present(name, set_type, family=u\(aqipv4\(aq, **kwargs)
  122648. New in version 2014.7.0.
  122649. .sp
  122650. Verify the set exists.
  122651. .INDENT 7.0
  122652. .TP
  122653. .B name
  122654. A user\-defined set name.
  122655. .TP
  122656. .B set_type
  122657. The type for the set.
  122658. .TP
  122659. .B family
  122660. Networking family, either ipv4 or ipv6
  122661. .UNINDENT
  122662. .UNINDENT
  122663. .SS salt.states.junos module
  122664. .SS State modules to interact with Junos devices.
  122665. .INDENT 0.0
  122666. .TP
  122667. .B maturity
  122668. new
  122669. .TP
  122670. .B dependencies
  122671. junos\-eznc, jxmlease
  122672. .UNINDENT
  122673. .sp
  122674. \fBNOTE:\fP
  122675. .INDENT 0.0
  122676. .INDENT 3.5
  122677. Those who wish to use junos\-eznc (PyEZ) version >= 2.1.0, must
  122678. use the latest salt code from github until the next release.
  122679. .UNINDENT
  122680. .UNINDENT
  122681. .sp
  122682. Refer to \fBjunos\fP for information on connecting to junos proxy.
  122683. .INDENT 0.0
  122684. .TP
  122685. .B salt.states.junos.cli(*args, **kwargs)
  122686. Executes the CLI commands and reuturns the text output.
  122687. .INDENT 7.0
  122688. .INDENT 3.5
  122689. .sp
  122690. .nf
  122691. .ft C
  122692. show version:
  122693. junos.cli:
  122694. \- format: xml
  122695. get software version of device:
  122696. junos.cli:
  122697. \- name: show version
  122698. \- format: text
  122699. \- dest: /home/user/show_version.log
  122700. .ft P
  122701. .fi
  122702. .UNINDENT
  122703. .UNINDENT
  122704. .INDENT 7.0
  122705. .TP
  122706. .B Parameters
  122707. .INDENT 7.0
  122708. .IP \(bu 2
  122709. \fBRequired\fP \-\- .INDENT 2.0
  122710. .IP \(bu 2
  122711. name:
  122712. The command that need to be executed on Junos CLI.
  122713. .UNINDENT
  122714. .IP \(bu 2
  122715. \fBOptional\fP \-\- .INDENT 2.0
  122716. .IP \(bu 2
  122717. .INDENT 2.0
  122718. .TP
  122719. .B kwargs: Keyworded arguments which can be provided like\-
  122720. .INDENT 7.0
  122721. .IP \(bu 2
  122722. format:
  122723. Format in which to get the CLI output. (text or xml, default = \(aqtext\(aq)
  122724. .IP \(bu 2
  122725. timeout:
  122726. Set NETCONF RPC timeout. Can be used for commands which
  122727. take a while to execute. (default = 30 seconds)
  122728. .IP \(bu 2
  122729. dest:
  122730. The destination file where the CLI output can be stored. (default = None)
  122731. .UNINDENT
  122732. .UNINDENT
  122733. .UNINDENT
  122734. .UNINDENT
  122735. .UNINDENT
  122736. .UNINDENT
  122737. .INDENT 0.0
  122738. .TP
  122739. .B salt.states.junos.commit(*args, **kwargs)
  122740. Commits the changes loaded into the candidate configuration.
  122741. .INDENT 7.0
  122742. .INDENT 3.5
  122743. .sp
  122744. .nf
  122745. .ft C
  122746. commit the changes:
  122747. junos.commit:
  122748. \- confirm: 10
  122749. .ft P
  122750. .fi
  122751. .UNINDENT
  122752. .UNINDENT
  122753. .INDENT 7.0
  122754. .TP
  122755. .B Parameters
  122756. \fBOptional\fP \-\- .INDENT 7.0
  122757. .IP \(bu 2
  122758. .INDENT 2.0
  122759. .TP
  122760. .B kwargs: Keyworded arguments which can be provided like\-
  122761. .INDENT 7.0
  122762. .IP \(bu 2
  122763. timeout:
  122764. Set NETCONF RPC timeout. Can be used for commands which take a while to execute. (default = 30 seconds)
  122765. .IP \(bu 2
  122766. comment:
  122767. Provide a comment to the commit. (default = None)
  122768. .IP \(bu 2
  122769. confirm:
  122770. Provide time in minutes for commit confirmation. If this option is specified, the commit will be rollbacked in the given time unless the commit is confirmed.
  122771. .IP \(bu 2
  122772. sync:
  122773. On dual control plane systems, requests that the candidate configuration on one control plane be copied to the other control plane,checked for correct syntax, and committed on both Routing Engines. (default = False)
  122774. .IP \(bu 2
  122775. force_sync:
  122776. On dual control plane systems, force the candidate configuration
  122777. on one control plane to be copied to the other control plane.
  122778. .IP \(bu 2
  122779. full:
  122780. When set to True requires all the daemons to check and evaluate the new configuration.
  122781. .IP \(bu 2
  122782. detail:
  122783. When true return commit detail.
  122784. .UNINDENT
  122785. .UNINDENT
  122786. .UNINDENT
  122787. .UNINDENT
  122788. .UNINDENT
  122789. .INDENT 0.0
  122790. .TP
  122791. .B salt.states.junos.commit_check(*args, **kwargs)
  122792. Perform a commit check on the configuration.
  122793. .INDENT 7.0
  122794. .INDENT 3.5
  122795. .sp
  122796. .nf
  122797. .ft C
  122798. perform commit check:
  122799. junos.commit_check
  122800. .ft P
  122801. .fi
  122802. .UNINDENT
  122803. .UNINDENT
  122804. .UNINDENT
  122805. .INDENT 0.0
  122806. .TP
  122807. .B salt.states.junos.diff(*args, **kwargs)
  122808. Changed in version Sodium.
  122809. .sp
  122810. Gets the difference between the candidate and the current configuration.
  122811. .INDENT 7.0
  122812. .INDENT 3.5
  122813. .sp
  122814. .nf
  122815. .ft C
  122816. get the diff:
  122817. junos.diff:
  122818. \- d_id: 10
  122819. .ft P
  122820. .fi
  122821. .UNINDENT
  122822. .UNINDENT
  122823. .INDENT 7.0
  122824. .TP
  122825. .B Parameters
  122826. \fBOptional\fP \-\- .INDENT 7.0
  122827. .IP \(bu 2
  122828. d_id:
  122829. The rollback diff id (d_id) value [0\-49]. (default = 0)
  122830. .UNINDENT
  122831. .UNINDENT
  122832. .UNINDENT
  122833. .INDENT 0.0
  122834. .TP
  122835. .B salt.states.junos.file_copy(*args, **kwargs)
  122836. Copies the file from the local device to the junos device.
  122837. .INDENT 7.0
  122838. .INDENT 3.5
  122839. .sp
  122840. .nf
  122841. .ft C
  122842. /home/m2/info.txt:
  122843. junos.file_copy:
  122844. \- dest: info_copy.txt
  122845. .ft P
  122846. .fi
  122847. .UNINDENT
  122848. .UNINDENT
  122849. .INDENT 7.0
  122850. .TP
  122851. .B Parameters
  122852. \fBRequired\fP \-\- .INDENT 7.0
  122853. .IP \(bu 2
  122854. src:
  122855. The sorce path where the file is kept.
  122856. .IP \(bu 2
  122857. dest:
  122858. The destination path where the file will be copied.
  122859. .UNINDENT
  122860. .UNINDENT
  122861. .UNINDENT
  122862. .INDENT 0.0
  122863. .TP
  122864. .B salt.states.junos.get_table(*args, **kwargs)
  122865. New in version Sodium.
  122866. .sp
  122867. Retrieve data from a Junos device using Tables/Views
  122868. .INDENT 7.0
  122869. .INDENT 3.5
  122870. .sp
  122871. .nf
  122872. .ft C
  122873. get route details:
  122874. junos.get_table:
  122875. \- table: RouteTable
  122876. \- table_file: routes.yml
  122877. get interface details:
  122878. junos.get_table:
  122879. \- table: EthPortTable
  122880. \- table_file: ethport.yml
  122881. \- table_args:
  122882. interface_name: ge\-0/0/0
  122883. .ft P
  122884. .fi
  122885. .UNINDENT
  122886. .UNINDENT
  122887. .INDENT 7.0
  122888. .TP
  122889. .B name (required)
  122890. task definition
  122891. .TP
  122892. .B table (required)
  122893. Name of PyEZ Table
  122894. .TP
  122895. .B file
  122896. YAML file that has the table specified in table parameter
  122897. .TP
  122898. .B path:
  122899. Path of location of the YAML file.
  122900. defaults to op directory in jnpr.junos.op
  122901. .TP
  122902. .B target:
  122903. if command need to run on FPC, can specify fpc target
  122904. .TP
  122905. .B key:
  122906. To overwrite key provided in YAML
  122907. .TP
  122908. .B key_items:
  122909. To select only given key items
  122910. .TP
  122911. .B filters:
  122912. To select only filter for the dictionary from columns
  122913. .TP
  122914. .B template_args:
  122915. key/value pair which should render Jinja template command
  122916. .UNINDENT
  122917. .UNINDENT
  122918. .INDENT 0.0
  122919. .TP
  122920. .B salt.states.junos.install_config(*args, **kwargs)
  122921. Loads and commits the configuration provided.
  122922. .INDENT 7.0
  122923. .INDENT 3.5
  122924. .sp
  122925. .nf
  122926. .ft C
  122927. Install the mentioned config:
  122928. junos.install_config:
  122929. \- name: salt://configs/interface.set
  122930. \- timeout: 100
  122931. \- diffs_file: \(aq/var/log/diff\(aq
  122932. .ft P
  122933. .fi
  122934. .UNINDENT
  122935. .UNINDENT
  122936. .INDENT 7.0
  122937. .INDENT 3.5
  122938. .sp
  122939. .nf
  122940. .ft C
  122941. Install the mentioned config:
  122942. junos.install_config:
  122943. \- path: salt://configs/interface.set
  122944. \- timeout: 100
  122945. \- template_vars:
  122946. interface_name: lo0
  122947. description: Creating interface via SaltStack.
  122948. .ft P
  122949. .fi
  122950. .UNINDENT
  122951. .UNINDENT
  122952. .INDENT 7.0
  122953. .TP
  122954. .B name
  122955. Path where the configuration/template file is present. If the file has
  122956. a \fB*.conf\fP extension, the content is treated as text format. If the
  122957. file has a \fB*.xml\fP extension, the content is treated as XML format. If
  122958. the file has a \fB*.set\fP extension, the content is treated as Junos OS
  122959. \fBset\fP commands
  122960. .TP
  122961. .B template_vars
  122962. The dictionary of data for the jinja variables present in the jinja
  122963. template
  122964. .TP
  122965. .B timeout
  122966. 30
  122967. Set NETCONF RPC timeout. Can be used for commands which take a while to
  122968. execute.
  122969. .TP
  122970. .B overwrite
  122971. False
  122972. Set to \fBTrue\fP if you want this file is to completely replace the
  122973. configuration file. Sets action to override
  122974. .sp
  122975. \fBNOTE:\fP
  122976. .INDENT 7.0
  122977. .INDENT 3.5
  122978. This option cannot be used if \fBformat\fP is "set".
  122979. .UNINDENT
  122980. .UNINDENT
  122981. .TP
  122982. .B merge
  122983. False
  122984. If set to \fBTrue\fP will set the load\-config action to merge.
  122985. the default load\-config action is \(aqreplace\(aq for xml/json/text config
  122986. .TP
  122987. .B comment
  122988. Provide a comment to the commit. (default = None)
  122989. .TP
  122990. .B confirm
  122991. Provide time in minutes for commit confirmation. If this option is
  122992. specified, the commit will be rolled back in the given time unless the
  122993. commit is confirmed.
  122994. .TP
  122995. .B diffs_file
  122996. Path to the file where the diff (difference in old configuration and the
  122997. committed configuration) will be stored.
  122998. .sp
  122999. \fBNOTE:\fP
  123000. .INDENT 7.0
  123001. .INDENT 3.5
  123002. The file will be stored on the proxy minion. To push the files to the
  123003. master use \fBcp.push\fP\&.
  123004. .UNINDENT
  123005. .UNINDENT
  123006. .UNINDENT
  123007. .UNINDENT
  123008. .INDENT 0.0
  123009. .TP
  123010. .B salt.states.junos.install_os(*args, **kwargs)
  123011. Installs the given image on the device. After the installation is complete
  123012. the device is rebooted, if reboot=True is given as a keyworded argument.
  123013. .INDENT 7.0
  123014. .INDENT 3.5
  123015. .sp
  123016. .nf
  123017. .ft C
  123018. salt://images/junos_image.tgz:
  123019. junos.install_os:
  123020. \- timeout: 100
  123021. \- reboot: True
  123022. .ft P
  123023. .fi
  123024. .UNINDENT
  123025. .UNINDENT
  123026. .INDENT 7.0
  123027. .TP
  123028. .B Parameters
  123029. .INDENT 7.0
  123030. .IP \(bu 2
  123031. \fBRequired\fP \-\- .INDENT 2.0
  123032. .IP \(bu 2
  123033. path:
  123034. Path where the image file is present on the pro xy minion.
  123035. .UNINDENT
  123036. .IP \(bu 2
  123037. \fBOptional\fP \-\- .INDENT 2.0
  123038. .IP \(bu 2
  123039. .INDENT 2.0
  123040. .TP
  123041. .B kwargs: keyworded arguments to be given such as timeout, reboot etc
  123042. .INDENT 7.0
  123043. .IP \(bu 2
  123044. timeout:
  123045. Set NETCONF RPC timeout. Can be used to RPCs which
  123046. take a while to execute. (default = 30 seconds)
  123047. .IP \(bu 2
  123048. reboot:
  123049. Whether to reboot after installation (default = False)
  123050. .IP \(bu 2
  123051. no_copy:
  123052. When True the software package will not be SCP’d to the device. (default = False)
  123053. .UNINDENT
  123054. .UNINDENT
  123055. .UNINDENT
  123056. .UNINDENT
  123057. .UNINDENT
  123058. .UNINDENT
  123059. .INDENT 0.0
  123060. .TP
  123061. .B salt.states.junos.load(*args, **kwargs)
  123062. Loads the configuration provided onto the junos device.
  123063. .INDENT 7.0
  123064. .INDENT 3.5
  123065. .sp
  123066. .nf
  123067. .ft C
  123068. Install the mentioned config:
  123069. junos.load:
  123070. \- name: salt://configs/interface.set
  123071. .ft P
  123072. .fi
  123073. .UNINDENT
  123074. .UNINDENT
  123075. .INDENT 7.0
  123076. .INDENT 3.5
  123077. .sp
  123078. .nf
  123079. .ft C
  123080. Install the mentioned config:
  123081. junos.load:
  123082. \- name: salt://configs/interface.set
  123083. \- template_vars:
  123084. interface_name: lo0
  123085. description: Creating interface via SaltStack.
  123086. .ft P
  123087. .fi
  123088. .UNINDENT
  123089. .UNINDENT
  123090. .sp
  123091. Sample template:
  123092. .INDENT 7.0
  123093. .INDENT 3.5
  123094. .sp
  123095. .nf
  123096. .ft C
  123097. set interfaces {{ interface_name }} unit 0
  123098. .ft P
  123099. .fi
  123100. .UNINDENT
  123101. .UNINDENT
  123102. .INDENT 7.0
  123103. .TP
  123104. .B name
  123105. Path where the configuration/template file is present. If the file has
  123106. a \fB*.conf\fP extension, the content is treated as text format. If the
  123107. file has a \fB*.xml\fP extension, the content is treated as XML format. If
  123108. the file has a \fB*.set\fP extension, the content is treated as Junos OS
  123109. \fBset\fP commands.
  123110. .TP
  123111. .B overwrite
  123112. False
  123113. Set to \fBTrue\fP if you want this file is to completely replace the
  123114. configuration file.
  123115. .sp
  123116. \fBNOTE:\fP
  123117. .INDENT 7.0
  123118. .INDENT 3.5
  123119. This option cannot be used if \fBformat\fP is "set".
  123120. .UNINDENT
  123121. .UNINDENT
  123122. .TP
  123123. .B merge
  123124. False
  123125. If set to \fBTrue\fP will set the load\-config action to merge.
  123126. the default load\-config action is \(aqreplace\(aq for xml/json/text config
  123127. .TP
  123128. .B update
  123129. False
  123130. Compare a complete loaded configuration against the candidate
  123131. configuration. For each hierarchy level or configuration object that is
  123132. different in the two configurations, the version in the loaded
  123133. configuration replaces the version in the candidate configuration. When
  123134. the configuration is later committed, only system processes that are
  123135. affected by the changed configuration elements parse the new
  123136. configuration. This action is supported from PyEZ 2.1 (default = False)
  123137. .TP
  123138. .B template_vars
  123139. Variables to be passed into the template processing engine in addition
  123140. to those present in __pillar__, __opts__, __grains__, etc.
  123141. You may reference these variables in your template like so:
  123142. {{ template_vars["var_name"] }}
  123143. .UNINDENT
  123144. .UNINDENT
  123145. .INDENT 0.0
  123146. .TP
  123147. .B salt.states.junos.lock(*args, **kwargs)
  123148. Attempts an exclusive lock on the candidate configuration. This
  123149. is a non\-blocking call.
  123150. .sp
  123151. \fBNOTE:\fP
  123152. .INDENT 7.0
  123153. .INDENT 3.5
  123154. Any user who wishes to use lock, must necessarily unlock the
  123155. configuration too. Ensure \fI\%unlock\fP
  123156. is called in the same orchestration run in which the lock is called.
  123157. .UNINDENT
  123158. .UNINDENT
  123159. .INDENT 7.0
  123160. .INDENT 3.5
  123161. .sp
  123162. .nf
  123163. .ft C
  123164. lock the config:
  123165. junos.lock
  123166. .ft P
  123167. .fi
  123168. .UNINDENT
  123169. .UNINDENT
  123170. .UNINDENT
  123171. .INDENT 0.0
  123172. .TP
  123173. .B salt.states.junos.resultdecorator(function)
  123174. .UNINDENT
  123175. .INDENT 0.0
  123176. .TP
  123177. .B salt.states.junos.rollback(*args, **kwargs)
  123178. Rollbacks the committed changes.
  123179. .INDENT 7.0
  123180. .INDENT 3.5
  123181. .sp
  123182. .nf
  123183. .ft C
  123184. rollback the changes:
  123185. junos.rollback:
  123186. \- id: 5
  123187. .ft P
  123188. .fi
  123189. .UNINDENT
  123190. .UNINDENT
  123191. .INDENT 7.0
  123192. .TP
  123193. .B Parameters
  123194. \fBOptional\fP \-\- .INDENT 7.0
  123195. .IP \(bu 2
  123196. id:
  123197. The rollback id value [0\-49]. (default = 0)
  123198. .IP \(bu 2
  123199. .INDENT 2.0
  123200. .TP
  123201. .B kwargs: Keyworded arguments which can be provided like\-
  123202. .INDENT 7.0
  123203. .IP \(bu 2
  123204. timeout:
  123205. Set NETCONF RPC timeout. Can be used for commands which
  123206. take a while to execute. (default = 30 seconds)
  123207. .IP \(bu 2
  123208. comment:
  123209. Provide a comment to the commit. (default = None)
  123210. .IP \(bu 2
  123211. confirm:
  123212. Provide time in minutes for commit confirmation. If this option is specified, the commit will be rollbacked in the given time unless the commit is confirmed.
  123213. .IP \(bu 2
  123214. diffs_file:
  123215. Path to the file where any diffs will be written. (default = None)
  123216. .UNINDENT
  123217. .UNINDENT
  123218. .UNINDENT
  123219. .UNINDENT
  123220. .UNINDENT
  123221. .INDENT 0.0
  123222. .TP
  123223. .B salt.states.junos.rpc(*args, **kwargs)
  123224. Executes the given rpc. The returned data can be stored in a file
  123225. by specifying the destination path with dest as an argument
  123226. .INDENT 7.0
  123227. .INDENT 3.5
  123228. .sp
  123229. .nf
  123230. .ft C
  123231. get\-interface\-information:
  123232. junos.rpc:
  123233. \- dest: /home/user/rpc.log
  123234. \- interface_name: lo0
  123235. fetch interface information with terse:
  123236. junos.rpc:
  123237. \- name: get\-interface\-information
  123238. \- terse: True
  123239. .ft P
  123240. .fi
  123241. .UNINDENT
  123242. .UNINDENT
  123243. .INDENT 7.0
  123244. .TP
  123245. .B Parameters
  123246. .INDENT 7.0
  123247. .IP \(bu 2
  123248. \fBRequired\fP \-\- .INDENT 2.0
  123249. .IP \(bu 2
  123250. name:
  123251. The rpc to be executed. (default = None)
  123252. .UNINDENT
  123253. .IP \(bu 2
  123254. \fBOptional\fP \-\- .INDENT 2.0
  123255. .IP \(bu 2
  123256. dest:
  123257. Destination file where the rpc output is stored. (default = None)
  123258. Note that the file will be stored on the proxy minion. To push the
  123259. files to the master use the salt\(aqs following execution module: \fBcp.push\fP
  123260. .IP \(bu 2
  123261. format:
  123262. The format in which the rpc reply must be stored in file specified in the dest
  123263. (used only when dest is specified) (default = xml)
  123264. .IP \(bu 2
  123265. .INDENT 2.0
  123266. .TP
  123267. .B kwargs: keyworded arguments taken by rpc call like\-
  123268. .INDENT 7.0
  123269. .IP \(bu 2
  123270. timeout: 30
  123271. Set NETCONF RPC timeout. Can be used for commands which
  123272. take a while to execute. (default= 30 seconds)
  123273. .IP \(bu 2
  123274. filter:
  123275. Only to be used with \(aqget\-config\(aq rpc to get specific configuration.
  123276. .IP \(bu 2
  123277. terse:
  123278. Amount of information you want.
  123279. .IP \(bu 2
  123280. interface_name:
  123281. Name of the interface whose information you want.
  123282. .UNINDENT
  123283. .UNINDENT
  123284. .UNINDENT
  123285. .UNINDENT
  123286. .UNINDENT
  123287. .UNINDENT
  123288. .INDENT 0.0
  123289. .TP
  123290. .B salt.states.junos.set_hostname(*args, **kwargs)
  123291. Changes the hostname of the device.
  123292. .INDENT 7.0
  123293. .INDENT 3.5
  123294. .sp
  123295. .nf
  123296. .ft C
  123297. device_name:
  123298. junos.set_hostname:
  123299. \- comment: "Host\-name set via saltstack."
  123300. .ft P
  123301. .fi
  123302. .UNINDENT
  123303. .UNINDENT
  123304. .INDENT 7.0
  123305. .TP
  123306. .B Parameters
  123307. .INDENT 7.0
  123308. .IP \(bu 2
  123309. \fBRequired\fP \-\- .INDENT 2.0
  123310. .IP \(bu 2
  123311. hostname: The name to be set. (default = None)
  123312. .UNINDENT
  123313. .IP \(bu 2
  123314. \fBOptional\fP \-\- .INDENT 2.0
  123315. .IP \(bu 2
  123316. .INDENT 2.0
  123317. .TP
  123318. .B kwargs: Keyworded arguments which can be provided like\-
  123319. .INDENT 7.0
  123320. .IP \(bu 2
  123321. timeout:
  123322. Set NETCONF RPC timeout. Can be used for commands
  123323. which take a while to execute. (default = 30 seconds)
  123324. .IP \(bu 2
  123325. comment:
  123326. Provide a comment to the commit. (default = None)
  123327. .IP \(bu 2
  123328. confirm:
  123329. Provide time in minutes for commit confirmation. If this option is specified, the commit will be rollbacked in the given time unless the commit is confirmed.
  123330. .UNINDENT
  123331. .UNINDENT
  123332. .UNINDENT
  123333. .UNINDENT
  123334. .UNINDENT
  123335. .UNINDENT
  123336. .INDENT 0.0
  123337. .TP
  123338. .B salt.states.junos.shutdown(*args, **kwargs)
  123339. Shuts down the device.
  123340. .INDENT 7.0
  123341. .INDENT 3.5
  123342. .sp
  123343. .nf
  123344. .ft C
  123345. shut the device:
  123346. junos.shutdown:
  123347. \- in_min: 10
  123348. .ft P
  123349. .fi
  123350. .UNINDENT
  123351. .UNINDENT
  123352. .INDENT 7.0
  123353. .TP
  123354. .B Parameters
  123355. \fBOptional\fP \-\- .INDENT 7.0
  123356. .IP \(bu 2
  123357. .INDENT 2.0
  123358. .TP
  123359. .B kwargs:
  123360. .INDENT 7.0
  123361. .IP \(bu 2
  123362. reboot:
  123363. Whether to reboot instead of shutdown. (default=False)
  123364. .IP \(bu 2
  123365. at:
  123366. Specify time for reboot. (To be used only if reboot=yes)
  123367. .IP \(bu 2
  123368. in_min:
  123369. Specify delay in minutes for shutdown
  123370. .UNINDENT
  123371. .UNINDENT
  123372. .UNINDENT
  123373. .UNINDENT
  123374. .UNINDENT
  123375. .INDENT 0.0
  123376. .TP
  123377. .B salt.states.junos.unlock(*args, **kwargs)
  123378. Unlocks the candidate configuration.
  123379. .INDENT 7.0
  123380. .INDENT 3.5
  123381. .sp
  123382. .nf
  123383. .ft C
  123384. unlock the config:
  123385. junos.unlock
  123386. .ft P
  123387. .fi
  123388. .UNINDENT
  123389. .UNINDENT
  123390. .UNINDENT
  123391. .INDENT 0.0
  123392. .TP
  123393. .B salt.states.junos.zeroize(*args, **kwargs)
  123394. Resets the device to default factory settings.
  123395. .INDENT 7.0
  123396. .INDENT 3.5
  123397. .sp
  123398. .nf
  123399. .ft C
  123400. reset my device:
  123401. junos.zeroize
  123402. .ft P
  123403. .fi
  123404. .UNINDENT
  123405. .UNINDENT
  123406. .sp
  123407. name: can be anything
  123408. .UNINDENT
  123409. .SS salt.states.kernelpkg
  123410. .SS Manage kernel packages and active kernel version
  123411. .sp
  123412. Example state to install the latest kernel from package repositories:
  123413. .INDENT 0.0
  123414. .INDENT 3.5
  123415. .sp
  123416. .nf
  123417. .ft C
  123418. install\-latest\-kernel:
  123419. kernelpkg.latest_installed: []
  123420. .ft P
  123421. .fi
  123422. .UNINDENT
  123423. .UNINDENT
  123424. .sp
  123425. Example state to boot the system if a new kernel has been installed:
  123426. .INDENT 0.0
  123427. .INDENT 3.5
  123428. .sp
  123429. .nf
  123430. .ft C
  123431. boot\-latest\-kernel:
  123432. kernelpkg.latest_active:
  123433. \- at_time: 1
  123434. .ft P
  123435. .fi
  123436. .UNINDENT
  123437. .UNINDENT
  123438. .sp
  123439. Example state chaining the install and reboot operations:
  123440. .INDENT 0.0
  123441. .INDENT 3.5
  123442. .sp
  123443. .nf
  123444. .ft C
  123445. install\-latest\-kernel:
  123446. kernelpkg.latest_installed: []
  123447. boot\-latest\-kernel:
  123448. kernelpkg.latest_active:
  123449. \- at_time: 1
  123450. \- onchanges:
  123451. \- kernelpkg: install\-latest\-kernel
  123452. .ft P
  123453. .fi
  123454. .UNINDENT
  123455. .UNINDENT
  123456. .sp
  123457. Chaining can also be achieved using wait/listen requisites:
  123458. .INDENT 0.0
  123459. .INDENT 3.5
  123460. .sp
  123461. .nf
  123462. .ft C
  123463. install\-latest\-kernel:
  123464. kernel.latest_installed: []
  123465. boot\-latest\-kernel:
  123466. kernel.latest_wait:
  123467. \- at_time: 1
  123468. \- listen:
  123469. \- kernel: install\-latest\-kernel
  123470. .ft P
  123471. .fi
  123472. .UNINDENT
  123473. .UNINDENT
  123474. .INDENT 0.0
  123475. .TP
  123476. .B salt.states.kernelpkg.latest_active(name, at_time=None, **kwargs)
  123477. Initiate a reboot if the running kernel is not the latest one installed.
  123478. .sp
  123479. \fBNOTE:\fP
  123480. .INDENT 7.0
  123481. .INDENT 3.5
  123482. This state does not install any patches. It only compares the running
  123483. kernel version number to other kernel versions also installed in the
  123484. system. If the running version is not the latest one installed, this
  123485. state will reboot the system.
  123486. .sp
  123487. See \fBkernelpkg.upgrade\fP and
  123488. \fI\%latest_installed()\fP
  123489. for ways to install new kernel packages.
  123490. .sp
  123491. This module does not attempt to understand or manage boot loader configurations
  123492. it is possible to have a new kernel installed, but a boot loader configuration
  123493. that will never activate it. For this reason, it would not be advisable to
  123494. schedule this state to run automatically.
  123495. .sp
  123496. Because this state function may cause the system to reboot, it may be preferable
  123497. to move it to the very end of the state run.
  123498. See \fI\%latest_wait()\fP
  123499. for a waitable state that can be called with the \fIlisten\fP requesite.
  123500. .UNINDENT
  123501. .UNINDENT
  123502. .INDENT 7.0
  123503. .TP
  123504. .B name
  123505. Arbitrary name for the state. Does not affect behavior.
  123506. .TP
  123507. .B at_time
  123508. The wait time in minutes before the system will be rebooted.
  123509. .UNINDENT
  123510. .UNINDENT
  123511. .INDENT 0.0
  123512. .TP
  123513. .B salt.states.kernelpkg.latest_installed(name, **kwargs)
  123514. Ensure that the latest version of the kernel available in the
  123515. repositories is installed.
  123516. .sp
  123517. \fBNOTE:\fP
  123518. .INDENT 7.0
  123519. .INDENT 3.5
  123520. This state only installs the kernel, but does not activate it.
  123521. The new kernel should become active at the next reboot.
  123522. See \fBkernelpkg.needs_reboot\fP for details on
  123523. how to detect this condition, and \fI\%latest_active()\fP
  123524. to initiale a reboot when needed.
  123525. .UNINDENT
  123526. .UNINDENT
  123527. .INDENT 7.0
  123528. .TP
  123529. .B name
  123530. Arbitrary name for the state. Does not affect behavior.
  123531. .UNINDENT
  123532. .UNINDENT
  123533. .INDENT 0.0
  123534. .TP
  123535. .B salt.states.kernelpkg.latest_wait(name, at_time=None, **kwargs)
  123536. Initiate a reboot if the running kernel is not the latest one installed. This is the
  123537. waitable version of \fI\%latest_active()\fP and
  123538. will not take any action unless triggered by a watch or listen requesite.
  123539. .sp
  123540. \fBNOTE:\fP
  123541. .INDENT 7.0
  123542. .INDENT 3.5
  123543. Because this state function may cause the system to reboot, it may be preferable
  123544. to move it to the very end of the state run using \fIlisten\fP or \fIlisten_in\fP requisites.
  123545. .INDENT 0.0
  123546. .INDENT 3.5
  123547. .sp
  123548. .nf
  123549. .ft C
  123550. system\-up\-to\-date:
  123551. pkg.uptodate:
  123552. \- refresh: true
  123553. boot\-latest\-kernel:
  123554. kernelpkg.latest_wait:
  123555. \- at_time: 1
  123556. \- listen:
  123557. \- pkg: system\-up\-to\-date
  123558. .ft P
  123559. .fi
  123560. .UNINDENT
  123561. .UNINDENT
  123562. .UNINDENT
  123563. .UNINDENT
  123564. .INDENT 7.0
  123565. .TP
  123566. .B name
  123567. Arbitrary name for the state. Does not affect behavior.
  123568. .TP
  123569. .B at_time
  123570. The wait time in minutes before the system will be rebooted.
  123571. .UNINDENT
  123572. .UNINDENT
  123573. .INDENT 0.0
  123574. .TP
  123575. .B salt.states.kernelpkg.mod_watch(name, sfun, **kwargs)
  123576. Execute a kernelpkg state based on a watch or listen call
  123577. .UNINDENT
  123578. .SS salt.states.keyboard
  123579. .SS Management of keyboard layouts
  123580. .sp
  123581. The keyboard layout can be managed for the system:
  123582. .INDENT 0.0
  123583. .INDENT 3.5
  123584. .sp
  123585. .nf
  123586. .ft C
  123587. us:
  123588. keyboard.system
  123589. .ft P
  123590. .fi
  123591. .UNINDENT
  123592. .UNINDENT
  123593. .sp
  123594. Or it can be managed for XOrg:
  123595. .INDENT 0.0
  123596. .INDENT 3.5
  123597. .sp
  123598. .nf
  123599. .ft C
  123600. us:
  123601. keyboard.xorg
  123602. .ft P
  123603. .fi
  123604. .UNINDENT
  123605. .UNINDENT
  123606. .INDENT 0.0
  123607. .TP
  123608. .B salt.states.keyboard.system(name)
  123609. Set the keyboard layout for the system
  123610. .INDENT 7.0
  123611. .TP
  123612. .B name
  123613. The keyboard layout to use
  123614. .UNINDENT
  123615. .UNINDENT
  123616. .INDENT 0.0
  123617. .TP
  123618. .B salt.states.keyboard.xorg(name)
  123619. Set the keyboard layout for XOrg
  123620. .INDENT 7.0
  123621. .TP
  123622. .B layout
  123623. The keyboard layout to use
  123624. .UNINDENT
  123625. .UNINDENT
  123626. .SS salt.states.keystone
  123627. .SS Management of Keystone users
  123628. .INDENT 0.0
  123629. .TP
  123630. .B depends
  123631. .INDENT 7.0
  123632. .IP \(bu 2
  123633. keystoneclient Python module
  123634. .UNINDENT
  123635. .TP
  123636. .B configuration
  123637. See \fBsalt.modules.keystone\fP for setup instructions.
  123638. .UNINDENT
  123639. .INDENT 0.0
  123640. .INDENT 3.5
  123641. .sp
  123642. .nf
  123643. .ft C
  123644. Keystone tenants:
  123645. keystone.tenant_present:
  123646. \- names:
  123647. \- admin
  123648. \- demo
  123649. \- service
  123650. Keystone roles:
  123651. keystone.role_present:
  123652. \- names:
  123653. \- admin
  123654. \- Member
  123655. admin:
  123656. keystone.user_present:
  123657. \- password: R00T_4CC3SS
  123658. \- email: admin@domain.com
  123659. \- roles:
  123660. admin: # tenants
  123661. \- admin # roles
  123662. service:
  123663. \- admin
  123664. \- Member
  123665. \- require:
  123666. \- keystone: Keystone tenants
  123667. \- keystone: Keystone roles
  123668. nova:
  123669. keystone.user_present:
  123670. \- password: \(aq$up3rn0v4\(aq
  123671. \- email: nova@domain.com
  123672. \- tenant: service
  123673. \- roles:
  123674. service:
  123675. \- admin
  123676. \- require:
  123677. \- keystone: Keystone tenants
  123678. \- keystone: Keystone roles
  123679. demo:
  123680. keystone.user_present:
  123681. \- password: \(aqd3m0n$trati0n\(aq
  123682. \- email: demo@domain.com
  123683. \- tenant: demo
  123684. \- roles:
  123685. demo:
  123686. \- Member
  123687. \- require:
  123688. \- keystone: Keystone tenants
  123689. \- keystone: Keystone roles
  123690. nova service:
  123691. keystone.service_present:
  123692. \- name: nova
  123693. \- service_type: compute
  123694. \- description: OpenStack Compute Service
  123695. .ft P
  123696. .fi
  123697. .UNINDENT
  123698. .UNINDENT
  123699. .INDENT 0.0
  123700. .TP
  123701. .B salt.states.keystone.endpoint_absent(name, region=None, profile=None, interface=None, **connection_args)
  123702. Ensure that the endpoint for a service doesn\(aqt exist in Keystone catalog
  123703. .INDENT 7.0
  123704. .TP
  123705. .B name
  123706. The name of the service whose endpoints should not exist
  123707. .TP
  123708. .B region (optional)
  123709. The region of the endpoint. Defaults to \fBRegionOne\fP\&.
  123710. .TP
  123711. .B interface
  123712. The interface type, which describes the visibility
  123713. of the endpoint. (for V3 API)
  123714. .UNINDENT
  123715. .UNINDENT
  123716. .INDENT 0.0
  123717. .TP
  123718. .B salt.states.keystone.endpoint_present(name, publicurl=None, internalurl=None, adminurl=None, region=None, profile=None, url=None, interface=None, **connection_args)
  123719. Ensure the specified endpoints exists for service
  123720. .INDENT 7.0
  123721. .TP
  123722. .B name
  123723. The Service name
  123724. .TP
  123725. .B publicurl
  123726. The public url of service endpoint (for V2 API)
  123727. .TP
  123728. .B internalurl
  123729. The internal url of service endpoint (for V2 API)
  123730. .TP
  123731. .B adminurl
  123732. The admin url of the service endpoint (for V2 API)
  123733. .TP
  123734. .B region
  123735. The region of the endpoint
  123736. .TP
  123737. .B url
  123738. The endpoint URL (for V3 API)
  123739. .TP
  123740. .B interface
  123741. The interface type, which describes the visibility
  123742. of the endpoint. (for V3 API)
  123743. .UNINDENT
  123744. .UNINDENT
  123745. .INDENT 0.0
  123746. .TP
  123747. .B salt.states.keystone.project_absent(name, profile=None, **connection_args)
  123748. Ensure that the keystone project is absent.
  123749. Alias for tenant_absent from V2 API to fulfill
  123750. V3 API naming convention.
  123751. .sp
  123752. New in version 2016.11.0.
  123753. .INDENT 7.0
  123754. .TP
  123755. .B name
  123756. The name of the project that should not exist
  123757. .UNINDENT
  123758. .INDENT 7.0
  123759. .INDENT 3.5
  123760. .sp
  123761. .nf
  123762. .ft C
  123763. delete_nova:
  123764. keystone.project_absent:
  123765. \- name: nova
  123766. .ft P
  123767. .fi
  123768. .UNINDENT
  123769. .UNINDENT
  123770. .UNINDENT
  123771. .INDENT 0.0
  123772. .TP
  123773. .B salt.states.keystone.project_present(name, description=None, enabled=True, profile=None, **connection_args)
  123774. Ensures that the keystone project exists
  123775. Alias for tenant_present from V2 API to fulfill
  123776. V3 API naming convention.
  123777. .sp
  123778. New in version 2016.11.0.
  123779. .INDENT 7.0
  123780. .TP
  123781. .B name
  123782. The name of the project to manage
  123783. .TP
  123784. .B description
  123785. The description to use for this project
  123786. .TP
  123787. .B enabled
  123788. Availability state for this project
  123789. .UNINDENT
  123790. .INDENT 7.0
  123791. .INDENT 3.5
  123792. .sp
  123793. .nf
  123794. .ft C
  123795. nova:
  123796. keystone.project_present:
  123797. \- enabled: True
  123798. \- description: \(aqNova Compute Service\(aq
  123799. .ft P
  123800. .fi
  123801. .UNINDENT
  123802. .UNINDENT
  123803. .UNINDENT
  123804. .INDENT 0.0
  123805. .TP
  123806. .B salt.states.keystone.role_absent(name, profile=None, **connection_args)
  123807. Ensure that the keystone role is absent.
  123808. .INDENT 7.0
  123809. .TP
  123810. .B name
  123811. The name of the role that should not exist
  123812. .UNINDENT
  123813. .UNINDENT
  123814. .INDENT 0.0
  123815. .TP
  123816. .B salt.states.keystone.role_present(name, profile=None, **connection_args)
  123817. \(aq
  123818. Ensures that the keystone role exists
  123819. .INDENT 7.0
  123820. .TP
  123821. .B name
  123822. The name of the role that should be present
  123823. .UNINDENT
  123824. .UNINDENT
  123825. .INDENT 0.0
  123826. .TP
  123827. .B salt.states.keystone.service_absent(name, profile=None, **connection_args)
  123828. Ensure that the service doesn\(aqt exist in Keystone catalog
  123829. .INDENT 7.0
  123830. .TP
  123831. .B name
  123832. The name of the service that should not exist
  123833. .UNINDENT
  123834. .UNINDENT
  123835. .INDENT 0.0
  123836. .TP
  123837. .B salt.states.keystone.service_present(name, service_type, description=None, profile=None, **connection_args)
  123838. Ensure service present in Keystone catalog
  123839. .INDENT 7.0
  123840. .TP
  123841. .B name
  123842. The name of the service
  123843. .TP
  123844. .B service_type
  123845. The type of Openstack Service
  123846. .TP
  123847. .B description (optional)
  123848. Description of the service
  123849. .UNINDENT
  123850. .UNINDENT
  123851. .INDENT 0.0
  123852. .TP
  123853. .B salt.states.keystone.tenant_absent(name, profile=None, **connection_args)
  123854. Ensure that the keystone tenant is absent.
  123855. .INDENT 7.0
  123856. .TP
  123857. .B name
  123858. The name of the tenant that should not exist
  123859. .UNINDENT
  123860. .UNINDENT
  123861. .INDENT 0.0
  123862. .TP
  123863. .B salt.states.keystone.tenant_present(name, description=None, enabled=True, profile=None, **connection_args)
  123864. Ensures that the keystone tenant exists
  123865. .INDENT 7.0
  123866. .TP
  123867. .B name
  123868. The name of the tenant to manage
  123869. .TP
  123870. .B description
  123871. The description to use for this tenant
  123872. .TP
  123873. .B enabled
  123874. Availability state for this tenant
  123875. .UNINDENT
  123876. .UNINDENT
  123877. .INDENT 0.0
  123878. .TP
  123879. .B salt.states.keystone.user_absent(name, profile=None, **connection_args)
  123880. Ensure that the keystone user is absent.
  123881. .INDENT 7.0
  123882. .TP
  123883. .B name
  123884. The name of the user that should not exist
  123885. .UNINDENT
  123886. .UNINDENT
  123887. .INDENT 0.0
  123888. .TP
  123889. .B salt.states.keystone.user_present(name, password, email, tenant=None, enabled=True, roles=None, profile=None, password_reset=True, project=None, **connection_args)
  123890. Ensure that the keystone user is present with the specified properties.
  123891. .INDENT 7.0
  123892. .TP
  123893. .B name
  123894. The name of the user to manage
  123895. .TP
  123896. .B password
  123897. The password to use for this user.
  123898. .sp
  123899. \fBNOTE:\fP
  123900. .INDENT 7.0
  123901. .INDENT 3.5
  123902. If the user already exists and a different password was set for
  123903. the user than the one specified here, the password for the user
  123904. will be updated. Please set the \fBpassword_reset\fP option to
  123905. \fBFalse\fP if this is not the desired behavior.
  123906. .UNINDENT
  123907. .UNINDENT
  123908. .TP
  123909. .B password_reset
  123910. Whether or not to reset password after initial set. Defaults to
  123911. \fBTrue\fP\&.
  123912. .TP
  123913. .B email
  123914. The email address for this user
  123915. .TP
  123916. .B tenant
  123917. The tenant (name) for this user
  123918. .TP
  123919. .B project
  123920. The project (name) for this user (overrides tenant in api v3)
  123921. .TP
  123922. .B enabled
  123923. Availability state for this user
  123924. .TP
  123925. .B roles
  123926. The roles the user should have under given tenants.
  123927. Passed as a dictionary mapping tenant names to a list
  123928. of roles in this tenant, i.e.:
  123929. .INDENT 7.0
  123930. .INDENT 3.5
  123931. .sp
  123932. .nf
  123933. .ft C
  123934. roles:
  123935. admin: # tenant
  123936. \- admin # role
  123937. service:
  123938. \- admin
  123939. \- Member
  123940. .ft P
  123941. .fi
  123942. .UNINDENT
  123943. .UNINDENT
  123944. .UNINDENT
  123945. .UNINDENT
  123946. .SS salt.states.keystone_domain
  123947. .SS Management of OpenStack Keystone Domains
  123948. .sp
  123949. New in version 2018.3.0.
  123950. .INDENT 0.0
  123951. .TP
  123952. .B depends
  123953. shade
  123954. .TP
  123955. .B configuration
  123956. see \fBsalt.modules.keystoneng\fP for setup instructions
  123957. .UNINDENT
  123958. .sp
  123959. Example States
  123960. .INDENT 0.0
  123961. .INDENT 3.5
  123962. .sp
  123963. .nf
  123964. .ft C
  123965. create domain:
  123966. keystone_domain.present:
  123967. \- name: domain1
  123968. create domain with optional params:
  123969. keystone_domain.present:
  123970. \- name: domain1
  123971. \- enabled: False
  123972. \- description: \(aqmy domain\(aq
  123973. delete domain:
  123974. keystone_domain.absent:
  123975. \- name: domain1
  123976. .ft P
  123977. .fi
  123978. .UNINDENT
  123979. .UNINDENT
  123980. .INDENT 0.0
  123981. .TP
  123982. .B salt.states.keystone_domain.absent(name, auth=None)
  123983. Ensure domain does not exist
  123984. .INDENT 7.0
  123985. .TP
  123986. .B name
  123987. Name of the domain
  123988. .UNINDENT
  123989. .UNINDENT
  123990. .INDENT 0.0
  123991. .TP
  123992. .B salt.states.keystone_domain.present(name, auth=None, **kwargs)
  123993. Ensure domain exists and is up\-to\-date
  123994. .INDENT 7.0
  123995. .TP
  123996. .B name
  123997. Name of the domain
  123998. .TP
  123999. .B enabled
  124000. Boolean to control if domain is enabled
  124001. .TP
  124002. .B description
  124003. An arbitrary description of the domain
  124004. .UNINDENT
  124005. .UNINDENT
  124006. .SS salt.states.keystone_endpoint
  124007. .SS Management of OpenStack Keystone Endpoints
  124008. .sp
  124009. New in version 2018.3.0.
  124010. .INDENT 0.0
  124011. .TP
  124012. .B depends
  124013. shade
  124014. .TP
  124015. .B configuration
  124016. see \fBsalt.modules.keystoneng\fP for setup instructions
  124017. .UNINDENT
  124018. .sp
  124019. Example States
  124020. .INDENT 0.0
  124021. .INDENT 3.5
  124022. .sp
  124023. .nf
  124024. .ft C
  124025. create endpoint:
  124026. keystone_endpoint.present:
  124027. \- name: public
  124028. \- url: https://example.org:9292
  124029. \- region: RegionOne
  124030. \- service_name: glance
  124031. destroy endpoint:
  124032. keystone_endpoint.absent:
  124033. \- name: public
  124034. \- url: https://example.org:9292
  124035. \- region: RegionOne
  124036. \- service_name: glance
  124037. create multiple endpoints:
  124038. keystone_endpoint.absent:
  124039. \- names:
  124040. \- public
  124041. \- admin
  124042. \- internal
  124043. \- url: https://example.org:9292
  124044. \- region: RegionOne
  124045. \- service_name: glance
  124046. .ft P
  124047. .fi
  124048. .UNINDENT
  124049. .UNINDENT
  124050. .INDENT 0.0
  124051. .TP
  124052. .B salt.states.keystone_endpoint.absent(name, service_name, auth=None, **kwargs)
  124053. Ensure an endpoint does not exists
  124054. .INDENT 7.0
  124055. .TP
  124056. .B name
  124057. Interface name
  124058. .TP
  124059. .B url
  124060. URL of the endpoint
  124061. .TP
  124062. .B service_name
  124063. Service name or ID
  124064. .TP
  124065. .B region
  124066. The region name to assign the endpoint
  124067. .UNINDENT
  124068. .UNINDENT
  124069. .INDENT 0.0
  124070. .TP
  124071. .B salt.states.keystone_endpoint.present(name, service_name, auth=None, **kwargs)
  124072. Ensure an endpoint exists and is up\-to\-date
  124073. .INDENT 7.0
  124074. .TP
  124075. .B name
  124076. Interface name
  124077. .TP
  124078. .B url
  124079. URL of the endpoint
  124080. .TP
  124081. .B service_name
  124082. Service name or ID
  124083. .TP
  124084. .B region
  124085. The region name to assign the endpoint
  124086. .TP
  124087. .B enabled
  124088. Boolean to control if endpoint is enabled
  124089. .UNINDENT
  124090. .UNINDENT
  124091. .SS salt.states.keystone_group
  124092. .SS Management of OpenStack Keystone Groups
  124093. .sp
  124094. New in version 2018.3.0.
  124095. .INDENT 0.0
  124096. .TP
  124097. .B depends
  124098. shade
  124099. .TP
  124100. .B configuration
  124101. see \fBsalt.modules.keystoneng\fP for setup instructions
  124102. .UNINDENT
  124103. .sp
  124104. Example States
  124105. .INDENT 0.0
  124106. .INDENT 3.5
  124107. .sp
  124108. .nf
  124109. .ft C
  124110. create group:
  124111. keystone_group.present:
  124112. \- name: group1
  124113. delete group:
  124114. keystone_group.absent:
  124115. \- name: group1
  124116. create group with optional params:
  124117. keystone_group.present:
  124118. \- name: group1
  124119. \- domain: domain1
  124120. \- description: \(aqmy group\(aq
  124121. .ft P
  124122. .fi
  124123. .UNINDENT
  124124. .UNINDENT
  124125. .INDENT 0.0
  124126. .TP
  124127. .B salt.states.keystone_group.absent(name, auth=None, **kwargs)
  124128. Ensure group does not exist
  124129. .INDENT 7.0
  124130. .TP
  124131. .B name
  124132. Name of the group
  124133. .TP
  124134. .B domain
  124135. The name or id of the domain
  124136. .UNINDENT
  124137. .UNINDENT
  124138. .INDENT 0.0
  124139. .TP
  124140. .B salt.states.keystone_group.present(name, auth=None, **kwargs)
  124141. Ensure an group exists and is up\-to\-date
  124142. .INDENT 7.0
  124143. .TP
  124144. .B name
  124145. Name of the group
  124146. .TP
  124147. .B domain
  124148. The name or id of the domain
  124149. .TP
  124150. .B description
  124151. An arbitrary description of the group
  124152. .UNINDENT
  124153. .UNINDENT
  124154. .SS salt.states.keystone_project
  124155. .SS Management of OpenStack Keystone Projects
  124156. .sp
  124157. New in version 2018.3.0.
  124158. .INDENT 0.0
  124159. .TP
  124160. .B depends
  124161. shade
  124162. .TP
  124163. .B configuration
  124164. see \fBsalt.modules.keystoneng\fP for setup instructions
  124165. .UNINDENT
  124166. .sp
  124167. Example States
  124168. .INDENT 0.0
  124169. .INDENT 3.5
  124170. .sp
  124171. .nf
  124172. .ft C
  124173. create project:
  124174. keystone_project.present:
  124175. \- name: project1
  124176. delete project:
  124177. keystone_project.absent:
  124178. \- name: project1
  124179. create project with optional params:
  124180. keystone_project.present:
  124181. \- name: project1
  124182. \- domain: domain1
  124183. \- enabled: False
  124184. \- description: \(aqmy project\(aq
  124185. .ft P
  124186. .fi
  124187. .UNINDENT
  124188. .UNINDENT
  124189. .INDENT 0.0
  124190. .TP
  124191. .B salt.states.keystone_project.absent(name, auth=None, **kwargs)
  124192. Ensure a project does not exists
  124193. .INDENT 7.0
  124194. .TP
  124195. .B name
  124196. Name of the project
  124197. .TP
  124198. .B domain
  124199. The name or id of the domain
  124200. .UNINDENT
  124201. .UNINDENT
  124202. .INDENT 0.0
  124203. .TP
  124204. .B salt.states.keystone_project.present(name, auth=None, **kwargs)
  124205. Ensure a project exists and is up\-to\-date
  124206. .INDENT 7.0
  124207. .TP
  124208. .B name
  124209. Name of the project
  124210. .TP
  124211. .B domain
  124212. The name or id of the domain
  124213. .TP
  124214. .B description
  124215. An arbitrary description of the project
  124216. .UNINDENT
  124217. .UNINDENT
  124218. .SS salt.states.keystone_role
  124219. .SS Management of OpenStack Keystone Roles
  124220. .sp
  124221. New in version 2018.3.0.
  124222. .INDENT 0.0
  124223. .TP
  124224. .B depends
  124225. shade
  124226. .TP
  124227. .B configuration
  124228. see \fBsalt.modules.keystoneng\fP for setup instructions
  124229. .UNINDENT
  124230. .sp
  124231. Example States
  124232. .INDENT 0.0
  124233. .INDENT 3.5
  124234. .sp
  124235. .nf
  124236. .ft C
  124237. create role:
  124238. keystone_role.present:
  124239. \- name: role1
  124240. delete role:
  124241. keystone_role.absent:
  124242. \- name: role1
  124243. create role with optional params:
  124244. keystone_role.present:
  124245. \- name: role1
  124246. \- description: \(aqmy group\(aq
  124247. .ft P
  124248. .fi
  124249. .UNINDENT
  124250. .UNINDENT
  124251. .INDENT 0.0
  124252. .TP
  124253. .B salt.states.keystone_role.absent(name, auth=None, **kwargs)
  124254. Ensure role does not exist
  124255. .INDENT 7.0
  124256. .TP
  124257. .B name
  124258. Name of the role
  124259. .UNINDENT
  124260. .UNINDENT
  124261. .INDENT 0.0
  124262. .TP
  124263. .B salt.states.keystone_role.present(name, auth=None, **kwargs)
  124264. Ensure an role exists
  124265. .INDENT 7.0
  124266. .TP
  124267. .B name
  124268. Name of the role
  124269. .TP
  124270. .B description
  124271. An arbitrary description of the role
  124272. .UNINDENT
  124273. .UNINDENT
  124274. .SS salt.states.keystone_role_grant
  124275. .SS Management of OpenStack Keystone Role Grants
  124276. .sp
  124277. New in version 2018.3.0.
  124278. .INDENT 0.0
  124279. .TP
  124280. .B depends
  124281. shade
  124282. .TP
  124283. .B configuration
  124284. see \fBsalt.modules.keystoneng\fP for setup instructions
  124285. .UNINDENT
  124286. .sp
  124287. Example States
  124288. .INDENT 0.0
  124289. .INDENT 3.5
  124290. .sp
  124291. .nf
  124292. .ft C
  124293. create group:
  124294. keystone_group.present:
  124295. \- name: group1
  124296. delete group:
  124297. keystone_group.absent:
  124298. \- name: group1
  124299. create group with optional params:
  124300. keystone_group.present:
  124301. \- name: group1
  124302. \- domain: domain1
  124303. \- description: \(aqmy group\(aq
  124304. .ft P
  124305. .fi
  124306. .UNINDENT
  124307. .UNINDENT
  124308. .INDENT 0.0
  124309. .TP
  124310. .B salt.states.keystone_role_grant.absent(name, auth=None, **kwargs)
  124311. .UNINDENT
  124312. .INDENT 0.0
  124313. .TP
  124314. .B salt.states.keystone_role_grant.present(name, auth=None, **kwargs)
  124315. .UNINDENT
  124316. .SS salt.states.keystone_service
  124317. .SS Management of OpenStack Keystone Services
  124318. .sp
  124319. New in version 2018.3.0.
  124320. .INDENT 0.0
  124321. .TP
  124322. .B depends
  124323. shade
  124324. .TP
  124325. .B configuration
  124326. see \fBsalt.modules.keystoneng\fP for setup instructions
  124327. .UNINDENT
  124328. .sp
  124329. Example States
  124330. .INDENT 0.0
  124331. .INDENT 3.5
  124332. .sp
  124333. .nf
  124334. .ft C
  124335. create service:
  124336. keystone_service.present:
  124337. \- name: glance
  124338. \- type: image
  124339. delete service:
  124340. keystone_service.absent:
  124341. \- name: glance
  124342. create service with optional params:
  124343. keystone_service.present:
  124344. \- name: glance
  124345. \- type: image
  124346. \- enabled: False
  124347. \- description: \(aqOpenStack Image\(aq
  124348. .ft P
  124349. .fi
  124350. .UNINDENT
  124351. .UNINDENT
  124352. .INDENT 0.0
  124353. .TP
  124354. .B salt.states.keystone_service.absent(name, auth=None)
  124355. Ensure service does not exist
  124356. .INDENT 7.0
  124357. .TP
  124358. .B name
  124359. Name of the service
  124360. .UNINDENT
  124361. .UNINDENT
  124362. .INDENT 0.0
  124363. .TP
  124364. .B salt.states.keystone_service.present(name, auth=None, **kwargs)
  124365. Ensure an service exists and is up\-to\-date
  124366. .INDENT 7.0
  124367. .TP
  124368. .B name
  124369. Name of the group
  124370. .TP
  124371. .B type
  124372. Service type
  124373. .TP
  124374. .B enabled
  124375. Boolean to control if service is enabled
  124376. .TP
  124377. .B description
  124378. An arbitrary description of the service
  124379. .UNINDENT
  124380. .UNINDENT
  124381. .SS salt.states.keystone_user
  124382. .SS Management of OpenStack Keystone Users
  124383. .sp
  124384. New in version 2018.3.0.
  124385. .INDENT 0.0
  124386. .TP
  124387. .B depends
  124388. shade
  124389. .TP
  124390. .B configuration
  124391. see \fBsalt.modules.keystoneng\fP for setup instructions
  124392. .UNINDENT
  124393. .sp
  124394. Example States
  124395. .INDENT 0.0
  124396. .INDENT 3.5
  124397. .sp
  124398. .nf
  124399. .ft C
  124400. create user:
  124401. keystone_user.present:
  124402. \- name: user1
  124403. delete user:
  124404. keystone_user.absent:
  124405. \- name: user1
  124406. create user with optional params:
  124407. keystone_user.present:
  124408. \- name: user1
  124409. \- domain: domain1
  124410. \- enabled: False
  124411. \- password: password123
  124412. \- email: "user1@example.org"
  124413. \- description: \(aqmy user\(aq
  124414. .ft P
  124415. .fi
  124416. .UNINDENT
  124417. .UNINDENT
  124418. .INDENT 0.0
  124419. .TP
  124420. .B salt.states.keystone_user.absent(name, auth=None, **kwargs)
  124421. Ensure user does not exists
  124422. .INDENT 7.0
  124423. .TP
  124424. .B name
  124425. Name of the user
  124426. .TP
  124427. .B domain
  124428. The name or id of the domain
  124429. .UNINDENT
  124430. .UNINDENT
  124431. .INDENT 0.0
  124432. .TP
  124433. .B salt.states.keystone_user.present(name, auth=None, **kwargs)
  124434. Ensure domain exists and is up\-to\-date
  124435. .INDENT 7.0
  124436. .TP
  124437. .B name
  124438. Name of the domain
  124439. .TP
  124440. .B domain
  124441. The name or id of the domain
  124442. .TP
  124443. .B enabled
  124444. Boolean to control if domain is enabled
  124445. .TP
  124446. .B description
  124447. An arbitrary description of the domain
  124448. .TP
  124449. .B password
  124450. The user password
  124451. .TP
  124452. .B email
  124453. The users email address
  124454. .UNINDENT
  124455. .UNINDENT
  124456. .SS salt.states.keystore
  124457. .sp
  124458. State management of a java keystore
  124459. .INDENT 0.0
  124460. .TP
  124461. .B salt.states.keystore.managed(name, passphrase, entries, force_remove=False)
  124462. Create or manage a java keystore.
  124463. .INDENT 7.0
  124464. .TP
  124465. .B name
  124466. The path to the keystore file
  124467. .TP
  124468. .B passphrase
  124469. The password to the keystore
  124470. .TP
  124471. .B entries
  124472. A list containing an alias, certificate, and optional private_key.
  124473. The certificate and private_key can be a file or a string
  124474. .INDENT 7.0
  124475. .INDENT 3.5
  124476. .sp
  124477. .nf
  124478. .ft C
  124479. \- entries:
  124480. \- alias: hostname2
  124481. certificate: /path/to/cert.crt
  124482. private_key: /path/to/key.key
  124483. \- alias: stringhost
  124484. certificate: |
  124485. \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-
  124486. MIICEjCCAXsCAg36MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG
  124487. ...
  124488. 2VguKv4SWjRFoRkIfIlHX0qVviMhSlNy2ioFLy7JcPZb+v3ftDGywUqcBiVDoea0
  124489. \-\-\-\-\-END CERTIFICATE\-\-\-\-\-
  124490. .ft P
  124491. .fi
  124492. .UNINDENT
  124493. .UNINDENT
  124494. .TP
  124495. .B force_remove
  124496. If True will cause the state to remove any entries found in the keystore which are not
  124497. defined in the state. The default is False.
  124498. .UNINDENT
  124499. .sp
  124500. Example
  124501. .INDENT 7.0
  124502. .INDENT 3.5
  124503. .sp
  124504. .nf
  124505. .ft C
  124506. define_keystore:
  124507. keystore.managed:
  124508. \- name: /path/to/keystore
  124509. \- passphrase: changeit
  124510. \- force_remove: True
  124511. \- entries:
  124512. \- alias: hostname1
  124513. certificate: /path/to/cert.crt
  124514. \- alias: remotehost
  124515. certificate: /path/to/cert2.crt
  124516. private_key: /path/to/key2.key
  124517. \- alias: pillarhost
  124518. certificate: {{ salt.pillar.get(\(aqpath:to:cert\(aq) }}
  124519. .ft P
  124520. .fi
  124521. .UNINDENT
  124522. .UNINDENT
  124523. .UNINDENT
  124524. .SS salt.states.kmod
  124525. .SS Loading and unloading of kernel modules
  124526. .sp
  124527. The Kernel modules on a system can be managed cleanly with the kmod state
  124528. module:
  124529. .INDENT 0.0
  124530. .INDENT 3.5
  124531. .sp
  124532. .nf
  124533. .ft C
  124534. add_kvm:
  124535. kmod.present:
  124536. \- name: kvm_amd
  124537. remove_beep:
  124538. kmod.absent:
  124539. \- name: pcspkr
  124540. .ft P
  124541. .fi
  124542. .UNINDENT
  124543. .UNINDENT
  124544. .sp
  124545. Multiple modules can be specified for both kmod.present and kmod.absent.
  124546. .INDENT 0.0
  124547. .INDENT 3.5
  124548. .sp
  124549. .nf
  124550. .ft C
  124551. add_sound:
  124552. kmod.present:
  124553. \- mods:
  124554. \- snd_hda_codec_hdmi
  124555. \- snd_hda_codec
  124556. \- snd_hwdep
  124557. \- snd_hda_core
  124558. \- snd_pcm
  124559. \- snd_timer
  124560. \- snd
  124561. .ft P
  124562. .fi
  124563. .UNINDENT
  124564. .UNINDENT
  124565. .INDENT 0.0
  124566. .TP
  124567. .B salt.states.kmod.absent(name, persist=False, comment=True, mods=None)
  124568. Verify that the named kernel module is not loaded
  124569. .INDENT 7.0
  124570. .TP
  124571. .B name
  124572. The name of the kernel module to verify is not loaded
  124573. .TP
  124574. .B persist
  124575. Remove module from \fB/etc/modules\fP
  124576. .TP
  124577. .B comment
  124578. Comment out module in \fB/etc/modules\fP rather than remove it
  124579. .TP
  124580. .B mods
  124581. A list of modules to verify are unloaded. If this argument is used,
  124582. the \fBname\fP argument, although still required, is not used, and
  124583. becomes a placeholder
  124584. .sp
  124585. New in version 2016.3.0.
  124586. .UNINDENT
  124587. .UNINDENT
  124588. .INDENT 0.0
  124589. .TP
  124590. .B salt.states.kmod.present(name, persist=False, mods=None)
  124591. Ensure that the specified kernel module is loaded
  124592. .INDENT 7.0
  124593. .TP
  124594. .B name
  124595. The name of the kernel module to verify is loaded
  124596. .TP
  124597. .B persist
  124598. Also add module to \fB/etc/modules\fP
  124599. .TP
  124600. .B mods
  124601. A list of modules to verify are loaded. If this argument is used, the
  124602. \fBname\fP argument, although still required, is not used, and becomes a
  124603. placeholder
  124604. .sp
  124605. New in version 2016.3.0.
  124606. .UNINDENT
  124607. .UNINDENT
  124608. .SS salt.states.kubernetes
  124609. .SS Manage kubernetes resources as salt states
  124610. .sp
  124611. NOTE: This module requires the proper pillar values set. See
  124612. salt.modules.kubernetesmod for more information.
  124613. .sp
  124614. \fBWARNING:\fP
  124615. .INDENT 0.0
  124616. .INDENT 3.5
  124617. Configuration options will change in 2019.2.0.
  124618. .UNINDENT
  124619. .UNINDENT
  124620. .sp
  124621. The kubernetes module is used to manage different kubernetes resources.
  124622. .INDENT 0.0
  124623. .INDENT 3.5
  124624. .sp
  124625. .nf
  124626. .ft C
  124627. my\-nginx:
  124628. kubernetes.deployment_present:
  124629. \- namespace: default
  124630. metadata:
  124631. app: frontend
  124632. spec:
  124633. replicas: 1
  124634. template:
  124635. metadata:
  124636. labels:
  124637. run: my\-nginx
  124638. spec:
  124639. containers:
  124640. \- name: my\-nginx
  124641. image: nginx
  124642. ports:
  124643. \- containerPort: 80
  124644. my\-mariadb:
  124645. kubernetes.deployment_absent:
  124646. \- namespace: default
  124647. # kubernetes deployment as specified inside of
  124648. # a file containing the definition of the the
  124649. # deployment using the official kubernetes format
  124650. redis\-master\-deployment:
  124651. kubernetes.deployment_present:
  124652. \- name: redis\-master
  124653. \- source: salt://k8s/redis\-master\-deployment.yml
  124654. require:
  124655. \- pip: kubernetes\-python\-module
  124656. # kubernetes service as specified inside of
  124657. # a file containing the definition of the the
  124658. # service using the official kubernetes format
  124659. redis\-master\-service:
  124660. kubernetes.service_present:
  124661. \- name: redis\-master
  124662. \- source: salt://k8s/redis\-master\-service.yml
  124663. require:
  124664. \- kubernetes.deployment_present: redis\-master
  124665. # kubernetes deployment as specified inside of
  124666. # a file containing the definition of the the
  124667. # deployment using the official kubernetes format
  124668. # plus some jinja directives
  124669. nginx\-source\-template:
  124670. kubernetes.deployment_present:
  124671. \- source: salt://k8s/nginx.yml.jinja
  124672. \- template: jinja
  124673. require:
  124674. \- pip: kubernetes\-python\-module
  124675. # Kubernetes secret
  124676. k8s\-secret:
  124677. kubernetes.secret_present:
  124678. \- name: top\-secret
  124679. data:
  124680. key1: value1
  124681. key2: value2
  124682. key3: value3
  124683. .ft P
  124684. .fi
  124685. .UNINDENT
  124686. .UNINDENT
  124687. .INDENT 0.0
  124688. .TP
  124689. .B salt.states.kubernetes.configmap_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124690. Ensures that the named configmap is absent from the given namespace.
  124691. .INDENT 7.0
  124692. .TP
  124693. .B name
  124694. The name of the configmap
  124695. .TP
  124696. .B namespace
  124697. The namespace holding the configmap. The \(aqdefault\(aq one is going to be
  124698. used unless a different one is specified.
  124699. .UNINDENT
  124700. .UNINDENT
  124701. .INDENT 0.0
  124702. .TP
  124703. .B salt.states.kubernetes.configmap_present(name, namespace=\(aqdefault\(aq, data=None, source=None, template=None, **kwargs)
  124704. Ensures that the named configmap is present inside of the specified namespace
  124705. with the given data.
  124706. If the configmap exists it will be replaced.
  124707. .INDENT 7.0
  124708. .TP
  124709. .B name
  124710. The name of the configmap.
  124711. .TP
  124712. .B namespace
  124713. The namespace holding the configmap. The \(aqdefault\(aq one is going to be
  124714. used unless a different one is specified.
  124715. .TP
  124716. .B data
  124717. The dictionary holding the configmaps.
  124718. .TP
  124719. .B source
  124720. A file containing the data of the configmap in plain format.
  124721. .TP
  124722. .B template
  124723. Template engine to be used to render the source file.
  124724. .UNINDENT
  124725. .UNINDENT
  124726. .INDENT 0.0
  124727. .TP
  124728. .B salt.states.kubernetes.deployment_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124729. Ensures that the named deployment is absent from the given namespace.
  124730. .INDENT 7.0
  124731. .TP
  124732. .B name
  124733. The name of the deployment
  124734. .TP
  124735. .B namespace
  124736. The name of the namespace
  124737. .UNINDENT
  124738. .UNINDENT
  124739. .INDENT 0.0
  124740. .TP
  124741. .B salt.states.kubernetes.deployment_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  124742. Ensures that the named deployment is present inside of the specified
  124743. namespace with the given metadata and spec.
  124744. If the deployment exists it will be replaced.
  124745. .INDENT 7.0
  124746. .TP
  124747. .B name
  124748. The name of the deployment.
  124749. .TP
  124750. .B namespace
  124751. The namespace holding the deployment. The \(aqdefault\(aq one is going to be
  124752. used unless a different one is specified.
  124753. .TP
  124754. .B metadata
  124755. The metadata of the deployment object.
  124756. .TP
  124757. .B spec
  124758. The spec of the deployment object.
  124759. .TP
  124760. .B source
  124761. A file containing the definition of the deployment (metadata and
  124762. spec) in the official kubernetes format.
  124763. .TP
  124764. .B template
  124765. Template engine to be used to render the source file.
  124766. .UNINDENT
  124767. .UNINDENT
  124768. .INDENT 0.0
  124769. .TP
  124770. .B salt.states.kubernetes.namespace_absent(name, **kwargs)
  124771. Ensures that the named namespace is absent.
  124772. .INDENT 7.0
  124773. .TP
  124774. .B name
  124775. The name of the namespace
  124776. .UNINDENT
  124777. .UNINDENT
  124778. .INDENT 0.0
  124779. .TP
  124780. .B salt.states.kubernetes.namespace_present(name, **kwargs)
  124781. Ensures that the named namespace is present.
  124782. .INDENT 7.0
  124783. .TP
  124784. .B name
  124785. The name of the namespace.
  124786. .UNINDENT
  124787. .UNINDENT
  124788. .INDENT 0.0
  124789. .TP
  124790. .B salt.states.kubernetes.node_label_absent(name, node, **kwargs)
  124791. Ensures that the named label is absent from the node.
  124792. .INDENT 7.0
  124793. .TP
  124794. .B name
  124795. The name of the label
  124796. .TP
  124797. .B node
  124798. The name of the node
  124799. .UNINDENT
  124800. .UNINDENT
  124801. .INDENT 0.0
  124802. .TP
  124803. .B salt.states.kubernetes.node_label_folder_absent(name, node, **kwargs)
  124804. Ensures the label folder doesn\(aqt exist on the specified node.
  124805. .INDENT 7.0
  124806. .TP
  124807. .B name
  124808. The name of label folder
  124809. .TP
  124810. .B node
  124811. The name of the node
  124812. .UNINDENT
  124813. .UNINDENT
  124814. .INDENT 0.0
  124815. .TP
  124816. .B salt.states.kubernetes.node_label_present(name, node, value, **kwargs)
  124817. Ensures that the named label is set on the named node
  124818. with the given value.
  124819. If the label exists it will be replaced.
  124820. .INDENT 7.0
  124821. .TP
  124822. .B name
  124823. The name of the label.
  124824. .TP
  124825. .B value
  124826. Value of the label.
  124827. .TP
  124828. .B node
  124829. Node to change.
  124830. .UNINDENT
  124831. .UNINDENT
  124832. .INDENT 0.0
  124833. .TP
  124834. .B salt.states.kubernetes.pod_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124835. Ensures that the named pod is absent from the given namespace.
  124836. .INDENT 7.0
  124837. .TP
  124838. .B name
  124839. The name of the pod
  124840. .TP
  124841. .B namespace
  124842. The name of the namespace
  124843. .UNINDENT
  124844. .UNINDENT
  124845. .INDENT 0.0
  124846. .TP
  124847. .B salt.states.kubernetes.pod_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  124848. Ensures that the named pod is present inside of the specified
  124849. namespace with the given metadata and spec.
  124850. If the pod exists it will be replaced.
  124851. .INDENT 7.0
  124852. .TP
  124853. .B name
  124854. The name of the pod.
  124855. .TP
  124856. .B namespace
  124857. The namespace holding the pod. The \(aqdefault\(aq one is going to be
  124858. used unless a different one is specified.
  124859. .TP
  124860. .B metadata
  124861. The metadata of the pod object.
  124862. .TP
  124863. .B spec
  124864. The spec of the pod object.
  124865. .TP
  124866. .B source
  124867. A file containing the definition of the pod (metadata and
  124868. spec) in the official kubernetes format.
  124869. .TP
  124870. .B template
  124871. Template engine to be used to render the source file.
  124872. .UNINDENT
  124873. .UNINDENT
  124874. .INDENT 0.0
  124875. .TP
  124876. .B salt.states.kubernetes.secret_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124877. Ensures that the named secret is absent from the given namespace.
  124878. .INDENT 7.0
  124879. .TP
  124880. .B name
  124881. The name of the secret
  124882. .TP
  124883. .B namespace
  124884. The name of the namespace
  124885. .UNINDENT
  124886. .UNINDENT
  124887. .INDENT 0.0
  124888. .TP
  124889. .B salt.states.kubernetes.secret_present(name, namespace=\(aqdefault\(aq, data=None, source=None, template=None, **kwargs)
  124890. Ensures that the named secret is present inside of the specified namespace
  124891. with the given data.
  124892. If the secret exists it will be replaced.
  124893. .INDENT 7.0
  124894. .TP
  124895. .B name
  124896. The name of the secret.
  124897. .TP
  124898. .B namespace
  124899. The namespace holding the secret. The \(aqdefault\(aq one is going to be
  124900. used unless a different one is specified.
  124901. .TP
  124902. .B data
  124903. The dictionary holding the secrets.
  124904. .TP
  124905. .B source
  124906. A file containing the data of the secret in plain format.
  124907. .TP
  124908. .B template
  124909. Template engine to be used to render the source file.
  124910. .UNINDENT
  124911. .UNINDENT
  124912. .INDENT 0.0
  124913. .TP
  124914. .B salt.states.kubernetes.service_absent(name, namespace=\(aqdefault\(aq, **kwargs)
  124915. Ensures that the named service is absent from the given namespace.
  124916. .INDENT 7.0
  124917. .TP
  124918. .B name
  124919. The name of the service
  124920. .TP
  124921. .B namespace
  124922. The name of the namespace
  124923. .UNINDENT
  124924. .UNINDENT
  124925. .INDENT 0.0
  124926. .TP
  124927. .B salt.states.kubernetes.service_present(name, namespace=\(aqdefault\(aq, metadata=None, spec=None, source=\(aq\(aq, template=\(aq\(aq, **kwargs)
  124928. Ensures that the named service is present inside of the specified namespace
  124929. with the given metadata and spec.
  124930. If the deployment exists it will be replaced.
  124931. .INDENT 7.0
  124932. .TP
  124933. .B name
  124934. The name of the service.
  124935. .TP
  124936. .B namespace
  124937. The namespace holding the service. The \(aqdefault\(aq one is going to be
  124938. used unless a different one is specified.
  124939. .TP
  124940. .B metadata
  124941. The metadata of the service object.
  124942. .TP
  124943. .B spec
  124944. The spec of the service object.
  124945. .TP
  124946. .B source
  124947. A file containing the definition of the service (metadata and
  124948. spec) in the official kubernetes format.
  124949. .TP
  124950. .B template
  124951. Template engine to be used to render the source file.
  124952. .UNINDENT
  124953. .UNINDENT
  124954. .SS salt.states.layman
  124955. .SS Management of Gentoo Overlays using layman
  124956. .sp
  124957. A state module to manage Gentoo package overlays via layman
  124958. .INDENT 0.0
  124959. .INDENT 3.5
  124960. .sp
  124961. .nf
  124962. .ft C
  124963. sunrise:
  124964. layman.present
  124965. .ft P
  124966. .fi
  124967. .UNINDENT
  124968. .UNINDENT
  124969. .INDENT 0.0
  124970. .TP
  124971. .B salt.states.layman.absent(name)
  124972. Verify that the overlay is absent
  124973. .INDENT 7.0
  124974. .TP
  124975. .B name
  124976. The name of the overlay to delete
  124977. .UNINDENT
  124978. .UNINDENT
  124979. .INDENT 0.0
  124980. .TP
  124981. .B salt.states.layman.present(name)
  124982. Verify that the overlay is present
  124983. .INDENT 7.0
  124984. .TP
  124985. .B name
  124986. The name of the overlay to add
  124987. .UNINDENT
  124988. .UNINDENT
  124989. .SS salt.states.locale
  124990. .SS Management of languages/locales
  124991. .sp
  124992. Manage the available locales and the system default:
  124993. .INDENT 0.0
  124994. .INDENT 3.5
  124995. .sp
  124996. .nf
  124997. .ft C
  124998. us_locale:
  124999. locale.present:
  125000. \- name: en_US.UTF\-8
  125001. default_locale:
  125002. locale.system:
  125003. \- name: en_US.UTF\-8
  125004. \- require:
  125005. \- locale: us_locale
  125006. .ft P
  125007. .fi
  125008. .UNINDENT
  125009. .UNINDENT
  125010. .INDENT 0.0
  125011. .TP
  125012. .B salt.states.locale.present(name)
  125013. Generate a locale if it is not present
  125014. .sp
  125015. New in version 2014.7.0.
  125016. .INDENT 7.0
  125017. .TP
  125018. .B name
  125019. The name of the locale to be present. Some distributions require the
  125020. charmap to be specified as part of the locale at this point.
  125021. .UNINDENT
  125022. .UNINDENT
  125023. .INDENT 0.0
  125024. .TP
  125025. .B salt.states.locale.system(name)
  125026. Set the locale for the system
  125027. .INDENT 7.0
  125028. .TP
  125029. .B name
  125030. The name of the locale to use
  125031. .UNINDENT
  125032. .UNINDENT
  125033. .SS salt.states.logrotate module
  125034. .sp
  125035. Module for managing logrotate.
  125036. .sp
  125037. New in version 2017.7.0.
  125038. .INDENT 0.0
  125039. .TP
  125040. .B salt.states.logrotate.set_(name, key, value, setting=None, conf_file=u\(aq/etc/logrotate.conf\(aq)
  125041. Set a new value for a specific configuration line.
  125042. .INDENT 7.0
  125043. .TP
  125044. .B Parameters
  125045. .INDENT 7.0
  125046. .IP \(bu 2
  125047. \fBkey\fP (\fI\%str\fP) \-\- The command or block to configure.
  125048. .IP \(bu 2
  125049. \fBvalue\fP (\fI\%str\fP) \-\- The command value or command of the block specified by the key parameter.
  125050. .IP \(bu 2
  125051. \fBsetting\fP (\fI\%str\fP) \-\- The command value for the command specified by the value parameter.
  125052. .IP \(bu 2
  125053. \fBconf_file\fP (\fI\%str\fP) \-\- The logrotate configuration file.
  125054. .UNINDENT
  125055. .UNINDENT
  125056. .sp
  125057. Example of usage with only the required arguments:
  125058. .INDENT 7.0
  125059. .INDENT 3.5
  125060. .sp
  125061. .nf
  125062. .ft C
  125063. logrotate\-rotate:
  125064. logrotate.set:
  125065. \- key: rotate
  125066. \- value: 2
  125067. .ft P
  125068. .fi
  125069. .UNINDENT
  125070. .UNINDENT
  125071. .sp
  125072. Example of usage specifying all available arguments:
  125073. .INDENT 7.0
  125074. .INDENT 3.5
  125075. .sp
  125076. .nf
  125077. .ft C
  125078. logrotate\-wtmp\-rotate:
  125079. logrotate.set:
  125080. \- key: /var/log/wtmp
  125081. \- value: rotate
  125082. \- setting: 2
  125083. \- conf_file: /etc/logrotate.conf
  125084. .ft P
  125085. .fi
  125086. .UNINDENT
  125087. .UNINDENT
  125088. .UNINDENT
  125089. .SS salt.states.loop module
  125090. .sp
  125091. Loop state
  125092. .sp
  125093. Allows for looping over execution modules.
  125094. .sp
  125095. New in version 2017.7.0.
  125096. .sp
  125097. In both examples below, the execution module function \fBboto_elb.get_instance_health\fP
  125098. returns a list of dicts. The condition checks the \fBstate\fP\-key of the first dict
  125099. in the returned list and compares its value to the string \fIInService\fP\&.
  125100. .INDENT 0.0
  125101. .INDENT 3.5
  125102. .sp
  125103. .nf
  125104. .ft C
  125105. wait_for_service_to_be_healthy:
  125106. loop.until:
  125107. \- name: boto_elb.get_instance_health
  125108. \- condition: m_ret[0][\(aqstate\(aq] == \(aqInService\(aq
  125109. \- period: 5
  125110. \- timeout: 20
  125111. \- m_args:
  125112. \- {{ elb }}
  125113. \- m_kwargs:
  125114. keyid: {{ access_key }}
  125115. key: {{ secret_key }}
  125116. instances: "{{ instance }}"
  125117. .ft P
  125118. .fi
  125119. .UNINDENT
  125120. .UNINDENT
  125121. .sp
  125122. \fBWARNING:\fP
  125123. .INDENT 0.0
  125124. .INDENT 3.5
  125125. This state allows arbitrary python code to be executed through the condition
  125126. parameter which is literally evaluated within the state. Please use caution.
  125127. .UNINDENT
  125128. .UNINDENT
  125129. .sp
  125130. Changed in version 3000.
  125131. .sp
  125132. A version that does not use eval is now available. It uses either the python \fBoperator\fP
  125133. to compare the result of the function called in \fBname\fP, which can be one of the
  125134. following: lt, le, eq (default), ne, ge, gt.
  125135. Alternatively, \fIcompare_operator\fP can be filled with a function from an execution
  125136. module in \fB__salt__\fP or \fB__utils__\fP like the example below.
  125137. The function \fBdata.subdict_match\fP checks if the
  125138. \fBexpected\fP expression matches the data returned by calling the \fBname\fP function
  125139. (with passed \fBargs\fP and \fBkwargs\fP).
  125140. .INDENT 0.0
  125141. .INDENT 3.5
  125142. .sp
  125143. .nf
  125144. .ft C
  125145. Wait for service to be healthy:
  125146. loop.until_no_eval:
  125147. \- name: boto_elb.get_instance_health
  125148. \- expected: \(aq0:state:InService\(aq
  125149. \- compare_operator: data.subdict_match
  125150. \- period: 5
  125151. \- timeout: 20
  125152. \- args:
  125153. \- {{ elb }}
  125154. \- kwargs:
  125155. keyid: {{ access_key }}
  125156. key: {{ secret_key }}
  125157. instances: "{{ instance }}"
  125158. .ft P
  125159. .fi
  125160. .UNINDENT
  125161. .UNINDENT
  125162. .INDENT 0.0
  125163. .TP
  125164. .B salt.states.loop.until(name, m_args=None, m_kwargs=None, condition=None, period=1, timeout=60)
  125165. Loop over an execution module until a condition is met.
  125166. .INDENT 7.0
  125167. .TP
  125168. .B Parameters
  125169. .INDENT 7.0
  125170. .IP \(bu 2
  125171. \fBname\fP (\fI\%str\fP) \-\- The name of the execution module
  125172. .IP \(bu 2
  125173. \fBm_args\fP (\fI\%list\fP) \-\- The execution module\(aqs positional arguments
  125174. .IP \(bu 2
  125175. \fBm_kwargs\fP (\fI\%dict\fP) \-\- The execution module\(aqs keyword arguments
  125176. .IP \(bu 2
  125177. \fBcondition\fP (\fI\%str\fP) \-\- The condition which must be met for the loop to break.
  125178. This should contain \fBm_ret\fP which is the return from the execution module.
  125179. .IP \(bu 2
  125180. \fBperiod\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- The number of seconds to wait between executions
  125181. .IP \(bu 2
  125182. \fBtimeout\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- The timeout in seconds
  125183. .UNINDENT
  125184. .UNINDENT
  125185. .UNINDENT
  125186. .INDENT 0.0
  125187. .TP
  125188. .B salt.states.loop.until_no_eval(name, expected, compare_operator=u\(aqeq\(aq, timeout=60, period=1, init_wait=0, args=None, kwargs=None)
  125189. Generic waiter state that waits for a specific salt function to produce an
  125190. expected result.
  125191. The state fails if the function does not exist or raises an exception,
  125192. or does not produce the expected result within the allotted retries.
  125193. .INDENT 7.0
  125194. .TP
  125195. .B Parameters
  125196. .INDENT 7.0
  125197. .IP \(bu 2
  125198. \fBname\fP (\fI\%str\fP) \-\- Name of the module.function to call
  125199. .IP \(bu 2
  125200. \fBexpected\fP \-\- Expected return value. This can be almost anything.
  125201. .IP \(bu 2
  125202. \fBcompare_operator\fP (\fI\%str\fP) \-\- Operator to use to compare the result of the
  125203. module.function call with the expected value. This can be anything present
  125204. in __salt__ or __utils__. Will be called with 2 args: result, expected.
  125205. .IP \(bu 2
  125206. \fBtimeout\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Abort after this amount of seconds (excluding init_wait).
  125207. .IP \(bu 2
  125208. \fBperiod\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Time (in seconds) to wait between attempts.
  125209. .IP \(bu 2
  125210. \fBinit_wait\fP (\fI\%int\fP\fI or \fP\fI\%float\fP) \-\- Time (in seconds) to wait before trying anything.
  125211. .IP \(bu 2
  125212. \fBargs\fP (\fI\%list\fP) \-\- args to pass to the salt module.function.
  125213. .IP \(bu 2
  125214. \fBkwargs\fP (\fI\%dict\fP) \-\- kwargs to pass to the salt module.function.
  125215. .UNINDENT
  125216. .UNINDENT
  125217. .sp
  125218. New in version 3000.
  125219. .UNINDENT
  125220. .SS salt.states.lvs_server
  125221. .SS Management of LVS (Linux Virtual Server) Real Server
  125222. .INDENT 0.0
  125223. .TP
  125224. .B salt.states.lvs_server.absent(name, protocol=None, service_address=None, server_address=None)
  125225. Ensure the LVS Real Server in specified service is absent.
  125226. .INDENT 7.0
  125227. .TP
  125228. .B name
  125229. The name of the LVS server.
  125230. .TP
  125231. .B protocol
  125232. The service protocol(only support \fBtcp\fP, \fBudp\fP and \fBfwmark\fP service).
  125233. .TP
  125234. .B service_address
  125235. The LVS service address.
  125236. .TP
  125237. .B server_address
  125238. The LVS real server address.
  125239. .UNINDENT
  125240. .UNINDENT
  125241. .INDENT 0.0
  125242. .TP
  125243. .B salt.states.lvs_server.present(name, protocol=None, service_address=None, server_address=None, packet_forward_method=u\(aqdr\(aq, weight=1)
  125244. Ensure that the named service is present.
  125245. .INDENT 7.0
  125246. .TP
  125247. .B name
  125248. The LVS server name
  125249. .TP
  125250. .B protocol
  125251. The service protocol
  125252. .TP
  125253. .B service_address
  125254. The LVS service address
  125255. .TP
  125256. .B server_address
  125257. The real server address.
  125258. .TP
  125259. .B packet_forward_method
  125260. The LVS packet forwarding method(\fBdr\fP for direct routing, \fBtunnel\fP for tunneling, \fBnat\fP for network access translation).
  125261. .TP
  125262. .B weight
  125263. The capacity of a server relative to the others in the pool.
  125264. .UNINDENT
  125265. .INDENT 7.0
  125266. .INDENT 3.5
  125267. .sp
  125268. .nf
  125269. .ft C
  125270. lvsrs:
  125271. lvs_server.present:
  125272. \- protocol: tcp
  125273. \- service_address: 1.1.1.1:80
  125274. \- server_address: 192.168.0.11:8080
  125275. \- packet_forward_method: dr
  125276. \- weight: 10
  125277. .ft P
  125278. .fi
  125279. .UNINDENT
  125280. .UNINDENT
  125281. .UNINDENT
  125282. .SS salt.states.lvs_service
  125283. .SS Management of LVS (Linux Virtual Server) Service
  125284. .INDENT 0.0
  125285. .TP
  125286. .B salt.states.lvs_service.absent(name, protocol=None, service_address=None)
  125287. Ensure the LVS service is absent.
  125288. .INDENT 7.0
  125289. .TP
  125290. .B name
  125291. The name of the LVS service
  125292. .TP
  125293. .B protocol
  125294. The service protocol
  125295. .TP
  125296. .B service_address
  125297. The LVS service address
  125298. .UNINDENT
  125299. .UNINDENT
  125300. .INDENT 0.0
  125301. .TP
  125302. .B salt.states.lvs_service.present(name, protocol=None, service_address=None, scheduler=u\(aqwlc\(aq)
  125303. Ensure that the named service is present.
  125304. .INDENT 7.0
  125305. .TP
  125306. .B name
  125307. The LVS service name
  125308. .TP
  125309. .B protocol
  125310. The service protocol
  125311. .TP
  125312. .B service_address
  125313. The LVS service address
  125314. .TP
  125315. .B scheduler
  125316. Algorithm for allocating TCP connections and UDP datagrams to real servers.
  125317. .UNINDENT
  125318. .INDENT 7.0
  125319. .INDENT 3.5
  125320. .sp
  125321. .nf
  125322. .ft C
  125323. lvstest:
  125324. lvs_service.present:
  125325. \- service_address: 1.1.1.1:80
  125326. \- protocol: tcp
  125327. \- scheduler: rr
  125328. .ft P
  125329. .fi
  125330. .UNINDENT
  125331. .UNINDENT
  125332. .UNINDENT
  125333. .SS salt.states.lxc
  125334. .SS Manage Linux Containers
  125335. .INDENT 0.0
  125336. .TP
  125337. .B salt.states.lxc.absent(name, stop=False, path=None)
  125338. Ensure a container is not present, destroying it if present
  125339. .INDENT 7.0
  125340. .TP
  125341. .B name
  125342. Name of the container to destroy
  125343. .TP
  125344. .B stop
  125345. stop before destroying
  125346. default: false
  125347. .sp
  125348. New in version 2015.5.2.
  125349. .TP
  125350. .B path
  125351. path to the container parent
  125352. default: /var/lib/lxc (system default)
  125353. .sp
  125354. New in version 2015.8.0.
  125355. .UNINDENT
  125356. .INDENT 7.0
  125357. .INDENT 3.5
  125358. .sp
  125359. .nf
  125360. .ft C
  125361. web01:
  125362. lxc.absent
  125363. .ft P
  125364. .fi
  125365. .UNINDENT
  125366. .UNINDENT
  125367. .UNINDENT
  125368. .INDENT 0.0
  125369. .TP
  125370. .B salt.states.lxc.edited_conf(name, lxc_conf=None, lxc_conf_unset=None)
  125371. .sp
  125372. \fBWARNING:\fP
  125373. .INDENT 7.0
  125374. .INDENT 3.5
  125375. This state is unsuitable for setting parameters that appear more than
  125376. once in an LXC config file, or parameters which must appear in a
  125377. certain order (such as when configuring more than one network
  125378. interface).
  125379. .sp
  125380. \fI\%Issue #35523\fP was opened to track the addition of a suitable replacement
  125381. or fix.
  125382. .UNINDENT
  125383. .UNINDENT
  125384. .sp
  125385. Edit LXC configuration options
  125386. .sp
  125387. Deprecated since version 2015.5.0.
  125388. .INDENT 7.0
  125389. .TP
  125390. .B path
  125391. path to the container parent
  125392. default: /var/lib/lxc (system default)
  125393. .sp
  125394. New in version 2015.8.0.
  125395. .UNINDENT
  125396. .INDENT 7.0
  125397. .INDENT 3.5
  125398. .sp
  125399. .nf
  125400. .ft C
  125401. setconf:
  125402. lxc.edited_conf:
  125403. \- name: ubuntu
  125404. \- lxc_conf:
  125405. \- network.ipv4.ip: 10.0.3.6
  125406. \- lxc_conf_unset:
  125407. \- lxc.utsname
  125408. .ft P
  125409. .fi
  125410. .UNINDENT
  125411. .UNINDENT
  125412. .UNINDENT
  125413. .INDENT 0.0
  125414. .TP
  125415. .B salt.states.lxc.frozen(name, start=True, path=None)
  125416. New in version 2015.5.0.
  125417. .sp
  125418. Ensure that a container is frozen
  125419. .sp
  125420. \fBNOTE:\fP
  125421. .INDENT 7.0
  125422. .INDENT 3.5
  125423. This state does not enforce the existence of the named container, it
  125424. just freezes the container if it is running. To ensure that the named
  125425. container exists, use \fI\%lxc.present\fP\&.
  125426. .UNINDENT
  125427. .UNINDENT
  125428. .INDENT 7.0
  125429. .TP
  125430. .B name
  125431. The name of the container
  125432. .TP
  125433. .B path
  125434. path to the container parent
  125435. default: /var/lib/lxc (system default)
  125436. .sp
  125437. New in version 2015.8.0.
  125438. .TP
  125439. .B start
  125440. True
  125441. Start container first, if necessary. If \fBFalse\fP, then this state will
  125442. fail if the container is not running.
  125443. .UNINDENT
  125444. .INDENT 7.0
  125445. .INDENT 3.5
  125446. .sp
  125447. .nf
  125448. .ft C
  125449. web01:
  125450. lxc.frozen
  125451. web02:
  125452. lxc.frozen:
  125453. \- start: False
  125454. .ft P
  125455. .fi
  125456. .UNINDENT
  125457. .UNINDENT
  125458. .UNINDENT
  125459. .INDENT 0.0
  125460. .TP
  125461. .B salt.states.lxc.present(name, running=None, clone_from=None, snapshot=False, profile=None, network_profile=None, template=None, options=None, image=None, config=None, fstype=None, size=None, backing=None, vgname=None, lvname=None, thinpool=None, path=None)
  125462. Changed in version 2015.8.0: The \fBlxc.created\fP state has been renamed
  125463. to \fBlxc.present\fP, and the \fBlxc.cloned\fP
  125464. state has been merged into this state.
  125465. .sp
  125466. Create the named container if it does not exist
  125467. .INDENT 7.0
  125468. .TP
  125469. .B name
  125470. The name of the container to be created
  125471. .TP
  125472. .B path
  125473. path to the container parent
  125474. default: /var/lib/lxc (system default)
  125475. .sp
  125476. New in version 2015.8.0.
  125477. .TP
  125478. .B running
  125479. False.INDENT 7.0
  125480. .IP \(bu 2
  125481. If \fBTrue\fP, ensure that the container is running
  125482. .IP \(bu 2
  125483. If \fBFalse\fP, ensure that the container is stopped
  125484. .IP \(bu 2
  125485. If \fBNone\fP, do nothing with regards to the running state of the
  125486. container
  125487. .UNINDENT
  125488. .sp
  125489. New in version 2015.8.0.
  125490. .TP
  125491. .B clone_from
  125492. Create named container as a clone of the specified container
  125493. .TP
  125494. .B snapshot
  125495. False
  125496. Use Copy On Write snapshots (LVM). Only supported with \fBclone_from\fP\&.
  125497. .TP
  125498. .B profile
  125499. Profile to use in container creation (see the LXC Tutorial for more information). Values in a
  125500. profile will be overridden by the parameters listed below.
  125501. .TP
  125502. .B network_profile
  125503. Network Profile to use in container creation
  125504. (see the LXC Tutorial
  125505. for more information). Values in a profile will be overridden by
  125506. the parameters listed below.
  125507. .sp
  125508. New in version 2015.5.2.
  125509. .UNINDENT
  125510. .sp
  125511. \fBContainer Creation Arguments\fP
  125512. .INDENT 7.0
  125513. .TP
  125514. .B template
  125515. The template to use. For example, \fBubuntu\fP or \fBfedora\fP\&.
  125516. For a full list of available templates, check out
  125517. the \fBlxc.templates\fP function.
  125518. .sp
  125519. Conflicts with the \fBimage\fP argument.
  125520. .sp
  125521. \fBNOTE:\fP
  125522. .INDENT 7.0
  125523. .INDENT 3.5
  125524. The \fBdownload\fP template requires the following three parameters
  125525. to be defined in \fBoptions\fP:
  125526. .INDENT 0.0
  125527. .IP \(bu 2
  125528. \fBdist\fP \- The name of the distribution
  125529. .IP \(bu 2
  125530. \fBrelease\fP \- Release name/version
  125531. .IP \(bu 2
  125532. \fBarch\fP \- Architecture of the container
  125533. .UNINDENT
  125534. .sp
  125535. The available images can be listed using the \fBlxc.images\fP function.
  125536. .UNINDENT
  125537. .UNINDENT
  125538. .UNINDENT
  125539. .sp
  125540. options
  125541. .INDENT 7.0
  125542. .INDENT 3.5
  125543. New in version 2015.5.0.
  125544. .sp
  125545. Template\-specific options to pass to the lxc\-create command. These
  125546. correspond to the long options (ones beginning with two dashes) that
  125547. the template script accepts. For example:
  125548. .INDENT 0.0
  125549. .INDENT 3.5
  125550. .sp
  125551. .nf
  125552. .ft C
  125553. web01:
  125554. lxc.present:
  125555. \- template: download
  125556. \- options:
  125557. dist: centos
  125558. release: 6
  125559. arch: amd64
  125560. .ft P
  125561. .fi
  125562. .UNINDENT
  125563. .UNINDENT
  125564. .sp
  125565. Remember to double\-indent the options, due to how PyYAML works\&.
  125566. .sp
  125567. For available template options, refer to the lxc template scripts
  125568. which are usually located under \fB/usr/share/lxc/templates\fP,
  125569. or run \fBlxc\-create \-t <template> \-h\fP\&.
  125570. .UNINDENT
  125571. .UNINDENT
  125572. .INDENT 7.0
  125573. .TP
  125574. .B image
  125575. A tar archive to use as the rootfs for the container. Conflicts with
  125576. the \fBtemplate\fP argument.
  125577. .TP
  125578. .B backing
  125579. The type of storage to use. Set to \fBlvm\fP to use an LVM group.
  125580. Defaults to filesystem within /var/lib/lxc.
  125581. .TP
  125582. .B fstype
  125583. Filesystem type to use on LVM logical volume
  125584. .TP
  125585. .B size
  125586. Size of the volume to create. Only applicable if \fBbacking\fP is set to
  125587. \fBlvm\fP\&.
  125588. .TP
  125589. .B vgname
  125590. lxc
  125591. Name of the LVM volume group in which to create the volume for this
  125592. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125593. .TP
  125594. .B lvname
  125595. Name of the LVM logical volume in which to create the volume for this
  125596. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125597. .TP
  125598. .B thinpool
  125599. Name of a pool volume that will be used for thin\-provisioning this
  125600. container. Only applicable if \fBbacking\fP is set to \fBlvm\fP\&.
  125601. .UNINDENT
  125602. .UNINDENT
  125603. .INDENT 0.0
  125604. .TP
  125605. .B salt.states.lxc.running(name, restart=False, path=None)
  125606. Changed in version 2015.5.0: The \fBlxc.started\fP state has been renamed
  125607. to \fBlxc.running\fP
  125608. .sp
  125609. Ensure that a container is running
  125610. .sp
  125611. \fBNOTE:\fP
  125612. .INDENT 7.0
  125613. .INDENT 3.5
  125614. This state does not enforce the existence of the named container, it
  125615. just starts the container if it is not running. To ensure that the
  125616. named container exists, use \fI\%lxc.present\fP\&.
  125617. .UNINDENT
  125618. .UNINDENT
  125619. .INDENT 7.0
  125620. .TP
  125621. .B name
  125622. The name of the container
  125623. .TP
  125624. .B path
  125625. path to the container parent
  125626. default: /var/lib/lxc (system default)
  125627. .sp
  125628. New in version 2015.8.0.
  125629. .TP
  125630. .B restart
  125631. False
  125632. Restart container if it is already running
  125633. .UNINDENT
  125634. .INDENT 7.0
  125635. .INDENT 3.5
  125636. .sp
  125637. .nf
  125638. .ft C
  125639. web01:
  125640. lxc.running
  125641. web02:
  125642. lxc.running:
  125643. \- restart: True
  125644. .ft P
  125645. .fi
  125646. .UNINDENT
  125647. .UNINDENT
  125648. .UNINDENT
  125649. .INDENT 0.0
  125650. .TP
  125651. .B salt.states.lxc.set_pass(name, **kwargs)
  125652. Deprecated since version 2015.5.0.
  125653. .sp
  125654. This state function has been disabled, as it did not conform to design
  125655. guidelines. Specifically, due to the fact that \fBlxc.set_password\fP uses \fBchpasswd(8)\fP to set the password,
  125656. there was no method to make this action idempotent (in other words, the
  125657. password would be changed every time). This makes this state redundant,
  125658. since the following state will do the same thing:
  125659. .INDENT 7.0
  125660. .INDENT 3.5
  125661. .sp
  125662. .nf
  125663. .ft C
  125664. setpass:
  125665. module.run:
  125666. \- name: set_pass
  125667. \- m_name: root
  125668. \- password: secret
  125669. .ft P
  125670. .fi
  125671. .UNINDENT
  125672. .UNINDENT
  125673. .UNINDENT
  125674. .INDENT 0.0
  125675. .TP
  125676. .B salt.states.lxc.stopped(name, kill=False, path=None)
  125677. Ensure that a container is stopped
  125678. .sp
  125679. \fBNOTE:\fP
  125680. .INDENT 7.0
  125681. .INDENT 3.5
  125682. This state does not enforce the existence of the named container, it
  125683. just stops the container if it running or frozen. To ensure that the
  125684. named container exists, use \fI\%lxc.present\fP, or use the \fI\%lxc.absent\fP state to ensure that the container does not
  125685. exist.
  125686. .UNINDENT
  125687. .UNINDENT
  125688. .INDENT 7.0
  125689. .TP
  125690. .B name
  125691. The name of the container
  125692. .TP
  125693. .B path
  125694. path to the container parent
  125695. default: /var/lib/lxc (system default)
  125696. .sp
  125697. New in version 2015.8.0.
  125698. .TP
  125699. .B kill
  125700. False
  125701. Do not wait for the container to stop, kill all tasks in the container.
  125702. Older LXC versions will stop containers like this irrespective of this
  125703. argument.
  125704. .sp
  125705. New in version 2015.5.0.
  125706. .UNINDENT
  125707. .INDENT 7.0
  125708. .INDENT 3.5
  125709. .sp
  125710. .nf
  125711. .ft C
  125712. web01:
  125713. lxc.stopped
  125714. .ft P
  125715. .fi
  125716. .UNINDENT
  125717. .UNINDENT
  125718. .UNINDENT
  125719. .SS salt.states.lxd module
  125720. .sp
  125721. Manage LXD profiles.
  125722. .sp
  125723. New in version 2019.2.0.
  125724. .INDENT 0.0
  125725. .TP
  125726. .B maintainer
  125727. René Jochum <\fI\%rene@jochums.at\fP>
  125728. .TP
  125729. .B maturity
  125730. new
  125731. .TP
  125732. .B depends
  125733. python\-pylxd
  125734. .TP
  125735. .B platform
  125736. Linux
  125737. .UNINDENT
  125738. .INDENT 0.0
  125739. .TP
  125740. .B salt.states.lxd.authenticate(name, remote_addr, password, cert, key, verify_cert=True)
  125741. Authenticate with a remote peer.
  125742. .INDENT 7.0
  125743. .TP
  125744. .B remote_addr :
  125745. An URL to a remote Server, you also have to give cert and key if you
  125746. provide remote_addr!
  125747. .INDENT 7.0
  125748. .TP
  125749. .B Examples:
  125750. \fI\%https://myserver.lan:8443\fP
  125751. /var/lib/mysocket.sock
  125752. .UNINDENT
  125753. .TP
  125754. .B password :
  125755. The PaSsW0rD
  125756. .TP
  125757. .B cert :
  125758. PEM Formatted SSL Zertifikate.
  125759. .INDENT 7.0
  125760. .TP
  125761. .B Examples:
  125762. /root/.config/lxc/client.crt
  125763. .UNINDENT
  125764. .TP
  125765. .B key :
  125766. PEM Formatted SSL Key.
  125767. .INDENT 7.0
  125768. .TP
  125769. .B Examples:
  125770. /root/.config/lxc/client.key
  125771. .UNINDENT
  125772. .TP
  125773. .B verify_cert
  125774. True
  125775. Wherever to verify the cert, this is by default True
  125776. but in the most cases you want to set it off as LXD
  125777. normally uses self\-signed certificates.
  125778. .TP
  125779. .B name:
  125780. Ignore this. This is just here for salt.
  125781. .UNINDENT
  125782. .UNINDENT
  125783. .INDENT 0.0
  125784. .TP
  125785. .B salt.states.lxd.config_managed(name, value, force_password=False)
  125786. Manage a LXD Server config setting.
  125787. .INDENT 7.0
  125788. .TP
  125789. .B name :
  125790. The name of the config key.
  125791. .TP
  125792. .B value :
  125793. Its value.
  125794. .TP
  125795. .B force_password
  125796. False
  125797. Set this to True if you want to set the password on every run.
  125798. .sp
  125799. As we can\(aqt retrieve the password from LXD we can\(aqt check
  125800. if the current one is the same as the given one.
  125801. .UNINDENT
  125802. .UNINDENT
  125803. .INDENT 0.0
  125804. .TP
  125805. .B salt.states.lxd.init(name, storage_backend=u\(aqdir\(aq, trust_password=None, network_address=None, network_port=None, storage_create_device=None, storage_create_loop=None, storage_pool=None, done_file=u\(aq%SALT_CONFIG_DIR%/lxd_initialized\(aq)
  125806. Initializes the LXD Daemon, as LXD doesn\(aqt tell if its initialized
  125807. we touch the done_file and check if it exist.
  125808. .sp
  125809. This can only be called once per host unless you remove the done_file.
  125810. .INDENT 7.0
  125811. .TP
  125812. .B name :
  125813. Ignore this. This is just here for salt.
  125814. .TP
  125815. .B storage_backend :
  125816. Storage backend to use (zfs or dir, default: dir)
  125817. .TP
  125818. .B trust_password :
  125819. Password required to add new clients
  125820. .TP
  125821. .B network_address
  125822. None
  125823. Address to bind LXD to (default: none)
  125824. .TP
  125825. .B network_port
  125826. None
  125827. Port to bind LXD to (Default: 8443)
  125828. .TP
  125829. .B storage_create_device
  125830. None
  125831. Setup device based storage using this DEVICE
  125832. .TP
  125833. .B storage_create_loop
  125834. None
  125835. Setup loop based storage with this SIZE in GB
  125836. .TP
  125837. .B storage_pool
  125838. None
  125839. Storage pool to use or create
  125840. .TP
  125841. .B done_file :
  125842. Path where we check that this method has been called,
  125843. as it can run only once and there\(aqs currently no way
  125844. to ask LXD if init has been called.
  125845. .UNINDENT
  125846. .UNINDENT
  125847. .SS salt.states.lxd_container module
  125848. .sp
  125849. Manage LXD containers.
  125850. .sp
  125851. New in version 2019.2.0.
  125852. .INDENT 0.0
  125853. .TP
  125854. .B maintainer
  125855. René Jochum <\fI\%rene@jochums.at\fP>
  125856. .TP
  125857. .B maturity
  125858. new
  125859. .TP
  125860. .B depends
  125861. python\-pylxd
  125862. .TP
  125863. .B platform
  125864. Linux
  125865. .UNINDENT
  125866. .INDENT 0.0
  125867. .TP
  125868. .B salt.states.lxd_container.absent(name, stop=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  125869. Ensure a LXD container is not present, destroying it if present
  125870. .INDENT 7.0
  125871. .TP
  125872. .B name :
  125873. The name of the container to destroy
  125874. .TP
  125875. .B stop :
  125876. stop before destroying
  125877. default: false
  125878. .TP
  125879. .B remote_addr :
  125880. An URL to a remote Server, you also have to give cert and key if you
  125881. provide remote_addr!
  125882. .INDENT 7.0
  125883. .TP
  125884. .B Examples:
  125885. \fI\%https://myserver.lan:8443\fP
  125886. /var/lib/mysocket.sock
  125887. .UNINDENT
  125888. .TP
  125889. .B cert :
  125890. PEM Formatted SSL Zertifikate.
  125891. .INDENT 7.0
  125892. .TP
  125893. .B Examples:
  125894. ~/.config/lxc/client.crt
  125895. .UNINDENT
  125896. .TP
  125897. .B key :
  125898. PEM Formatted SSL Key.
  125899. .INDENT 7.0
  125900. .TP
  125901. .B Examples:
  125902. ~/.config/lxc/client.key
  125903. .UNINDENT
  125904. .TP
  125905. .B verify_cert
  125906. True
  125907. Wherever to verify the cert, this is by default True
  125908. but in the most cases you want to set it off as LXD
  125909. normally uses self\-signed certificates.
  125910. .UNINDENT
  125911. .UNINDENT
  125912. .INDENT 0.0
  125913. .TP
  125914. .B salt.states.lxd_container.frozen(name, start=True, remote_addr=None, cert=None, key=None, verify_cert=True)
  125915. Ensure a LXD container is frozen, start and freeze it if start is true
  125916. .INDENT 7.0
  125917. .TP
  125918. .B name :
  125919. The name of the container to freeze
  125920. .TP
  125921. .B start :
  125922. start and freeze it
  125923. .TP
  125924. .B remote_addr :
  125925. An URL to a remote Server, you also have to give cert and key if you
  125926. provide remote_addr!
  125927. .INDENT 7.0
  125928. .TP
  125929. .B Examples:
  125930. \fI\%https://myserver.lan:8443\fP
  125931. /var/lib/mysocket.sock
  125932. .UNINDENT
  125933. .TP
  125934. .B cert :
  125935. PEM Formatted SSL Zertifikate.
  125936. .INDENT 7.0
  125937. .TP
  125938. .B Examples:
  125939. ~/.config/lxc/client.crt
  125940. .UNINDENT
  125941. .TP
  125942. .B key :
  125943. PEM Formatted SSL Key.
  125944. .INDENT 7.0
  125945. .TP
  125946. .B Examples:
  125947. ~/.config/lxc/client.key
  125948. .UNINDENT
  125949. .TP
  125950. .B verify_cert
  125951. True
  125952. Wherever to verify the cert, this is by default True
  125953. but in the most cases you want to set it off as LXD
  125954. normally uses self\-signed certificates.
  125955. .UNINDENT
  125956. .UNINDENT
  125957. .INDENT 0.0
  125958. .TP
  125959. .B salt.states.lxd_container.migrated(name, remote_addr, cert, key, verify_cert, src_remote_addr, stop_and_start=False, src_cert=None, src_key=None, src_verify_cert=None)
  125960. Ensure a container is migrated to another host
  125961. .sp
  125962. If the container is running, it either must be shut down
  125963. first (use stop_and_start=True) or criu must be installed
  125964. on the source and destination machines.
  125965. .sp
  125966. For this operation both certs need to be authenticated,
  125967. use \fBlxd.authenticate <salt.states.lxd.authenticate\fP
  125968. to authenticate your cert(s).
  125969. .INDENT 7.0
  125970. .TP
  125971. .B name :
  125972. The container to migrate
  125973. .TP
  125974. .B remote_addr :
  125975. An URL to the destination remote Server
  125976. .INDENT 7.0
  125977. .TP
  125978. .B Examples:
  125979. \fI\%https://myserver.lan:8443\fP
  125980. /var/lib/mysocket.sock
  125981. .UNINDENT
  125982. .TP
  125983. .B cert :
  125984. PEM Formatted SSL Zertifikate.
  125985. .INDENT 7.0
  125986. .TP
  125987. .B Examples:
  125988. ~/.config/lxc/client.crt
  125989. .UNINDENT
  125990. .TP
  125991. .B key :
  125992. PEM Formatted SSL Key.
  125993. .INDENT 7.0
  125994. .TP
  125995. .B Examples:
  125996. ~/.config/lxc/client.key
  125997. .UNINDENT
  125998. .TP
  125999. .B verify_cert
  126000. True
  126001. Wherever to verify the cert, this is by default True
  126002. but in the most cases you want to set it off as LXD
  126003. normally uses self\-signed certificates.
  126004. .TP
  126005. .B src_remote_addr :
  126006. An URL to the source remote Server
  126007. .INDENT 7.0
  126008. .TP
  126009. .B Examples:
  126010. \fI\%https://myserver.lan:8443\fP
  126011. /var/lib/mysocket.sock
  126012. .UNINDENT
  126013. .TP
  126014. .B stop_and_start:
  126015. Stop before migrating and start after
  126016. .TP
  126017. .B src_cert :
  126018. PEM Formatted SSL Zertifikate, if None we copy "cert"
  126019. .INDENT 7.0
  126020. .TP
  126021. .B Examples:
  126022. ~/.config/lxc/client.crt
  126023. .UNINDENT
  126024. .TP
  126025. .B src_key :
  126026. PEM Formatted SSL Key, if None we copy "key"
  126027. .INDENT 7.0
  126028. .TP
  126029. .B Examples:
  126030. ~/.config/lxc/client.key
  126031. .UNINDENT
  126032. .TP
  126033. .B src_verify_cert :
  126034. Wherever to verify the cert, if None we copy "verify_cert"
  126035. .UNINDENT
  126036. .UNINDENT
  126037. .INDENT 0.0
  126038. .TP
  126039. .B salt.states.lxd_container.present(name, running=None, source=None, profiles=None, config=None, devices=None, architecture=u\(aqx86_64\(aq, ephemeral=False, restart_on_change=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126040. Create the named container if it does not exist
  126041. .INDENT 7.0
  126042. .TP
  126043. .B name
  126044. The name of the container to be created
  126045. .TP
  126046. .B running
  126047. None.INDENT 7.0
  126048. .IP \(bu 2
  126049. If \fBTrue\fP, ensure that the container is running
  126050. .IP \(bu 2
  126051. If \fBFalse\fP, ensure that the container is stopped
  126052. .IP \(bu 2
  126053. If \fBNone\fP, do nothing with regards to the running state of the
  126054. container
  126055. .UNINDENT
  126056. .TP
  126057. .B source
  126058. None
  126059. Can be either a string containing an image alias:
  126060. .INDENT 7.0
  126061. .INDENT 3.5
  126062. .sp
  126063. .nf
  126064. .ft C
  126065. "xenial/amd64"
  126066. .ft P
  126067. .fi
  126068. .UNINDENT
  126069. .UNINDENT
  126070. .sp
  126071. or an dict with type "image" with alias:
  126072. .INDENT 7.0
  126073. .INDENT 3.5
  126074. .sp
  126075. .nf
  126076. .ft C
  126077. {"type": "image",
  126078. "alias": "xenial/amd64"}
  126079. .ft P
  126080. .fi
  126081. .UNINDENT
  126082. .UNINDENT
  126083. .sp
  126084. or image with "fingerprint":
  126085. .INDENT 7.0
  126086. .INDENT 3.5
  126087. .sp
  126088. .nf
  126089. .ft C
  126090. {"type": "image",
  126091. "fingerprint": "SHA\-256"}
  126092. .ft P
  126093. .fi
  126094. .UNINDENT
  126095. .UNINDENT
  126096. .sp
  126097. or image with "properties":
  126098. .INDENT 7.0
  126099. .INDENT 3.5
  126100. .sp
  126101. .nf
  126102. .ft C
  126103. {"type": "image",
  126104. "properties": {
  126105. "os": "ubuntu",
  126106. "release": "14.04",
  126107. "architecture": "x86_64"
  126108. }}
  126109. .ft P
  126110. .fi
  126111. .UNINDENT
  126112. .UNINDENT
  126113. .sp
  126114. or none:
  126115. .INDENT 7.0
  126116. .INDENT 3.5
  126117. .sp
  126118. .nf
  126119. .ft C
  126120. {"type": "none"}
  126121. .ft P
  126122. .fi
  126123. .UNINDENT
  126124. .UNINDENT
  126125. .sp
  126126. or copy:
  126127. .INDENT 7.0
  126128. .INDENT 3.5
  126129. .sp
  126130. .nf
  126131. .ft C
  126132. {"type": "copy",
  126133. "source": "my\-old\-container"}
  126134. .ft P
  126135. .fi
  126136. .UNINDENT
  126137. .UNINDENT
  126138. .TP
  126139. .B profiles
  126140. [\(aqdefault\(aq]
  126141. List of profiles to apply on this container
  126142. .TP
  126143. .B config :
  126144. A config dict or None (None = unset).
  126145. .sp
  126146. Can also be a list:
  126147. .INDENT 7.0
  126148. .INDENT 3.5
  126149. .sp
  126150. .nf
  126151. .ft C
  126152. [{\(aqkey\(aq: \(aqboot.autostart\(aq, \(aqvalue\(aq: 1},
  126153. {\(aqkey\(aq: \(aqsecurity.privileged\(aq, \(aqvalue\(aq: \(aq1\(aq}]
  126154. .ft P
  126155. .fi
  126156. .UNINDENT
  126157. .UNINDENT
  126158. .TP
  126159. .B devices :
  126160. A device dict or None (None = unset).
  126161. .TP
  126162. .B architecture
  126163. \(aqx86_64\(aq
  126164. Can be one of the following:
  126165. .INDENT 7.0
  126166. .IP \(bu 2
  126167. unknown
  126168. .IP \(bu 2
  126169. i686
  126170. .IP \(bu 2
  126171. x86_64
  126172. .IP \(bu 2
  126173. armv7l
  126174. .IP \(bu 2
  126175. aarch64
  126176. .IP \(bu 2
  126177. ppc
  126178. .IP \(bu 2
  126179. ppc64
  126180. .IP \(bu 2
  126181. ppc64le
  126182. .IP \(bu 2
  126183. s390x
  126184. .UNINDENT
  126185. .TP
  126186. .B ephemeral
  126187. False
  126188. Destroy this container after stop?
  126189. .TP
  126190. .B restart_on_change
  126191. False
  126192. Restart the container when we detect changes on the config or
  126193. its devices?
  126194. .TP
  126195. .B remote_addr :
  126196. An URL to a remote Server, you also have to give cert and key if you
  126197. provide remote_addr!
  126198. .INDENT 7.0
  126199. .TP
  126200. .B Examples:
  126201. \fI\%https://myserver.lan:8443\fP
  126202. /var/lib/mysocket.sock
  126203. .UNINDENT
  126204. .TP
  126205. .B cert :
  126206. PEM Formatted SSL Zertifikate.
  126207. .INDENT 7.0
  126208. .TP
  126209. .B Examples:
  126210. ~/.config/lxc/client.crt
  126211. .UNINDENT
  126212. .TP
  126213. .B key :
  126214. PEM Formatted SSL Key.
  126215. .INDENT 7.0
  126216. .TP
  126217. .B Examples:
  126218. ~/.config/lxc/client.key
  126219. .UNINDENT
  126220. .TP
  126221. .B verify_cert
  126222. True
  126223. Wherever to verify the cert, this is by default True
  126224. but in the most cases you want to set it off as LXD
  126225. normally uses self\-signed certificates.
  126226. .UNINDENT
  126227. .UNINDENT
  126228. .INDENT 0.0
  126229. .TP
  126230. .B salt.states.lxd_container.running(name, restart=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126231. Ensure a LXD container is running and restart it if restart is True
  126232. .INDENT 7.0
  126233. .TP
  126234. .B name :
  126235. The name of the container to start/restart.
  126236. .TP
  126237. .B restart :
  126238. restart the container if it is already started.
  126239. .TP
  126240. .B remote_addr :
  126241. An URL to a remote Server, you also have to give cert and key if you
  126242. provide remote_addr!
  126243. .INDENT 7.0
  126244. .TP
  126245. .B Examples:
  126246. \fI\%https://myserver.lan:8443\fP
  126247. /var/lib/mysocket.sock
  126248. .UNINDENT
  126249. .TP
  126250. .B cert :
  126251. PEM Formatted SSL Zertifikate.
  126252. .INDENT 7.0
  126253. .TP
  126254. .B Examples:
  126255. ~/.config/lxc/client.crt
  126256. .UNINDENT
  126257. .TP
  126258. .B key :
  126259. PEM Formatted SSL Key.
  126260. .INDENT 7.0
  126261. .TP
  126262. .B Examples:
  126263. ~/.config/lxc/client.key
  126264. .UNINDENT
  126265. .TP
  126266. .B verify_cert
  126267. True
  126268. Wherever to verify the cert, this is by default True
  126269. but in the most cases you want to set it off as LXD
  126270. normally uses self\-signed certificates.
  126271. .UNINDENT
  126272. .UNINDENT
  126273. .INDENT 0.0
  126274. .TP
  126275. .B salt.states.lxd_container.stopped(name, kill=False, remote_addr=None, cert=None, key=None, verify_cert=True)
  126276. Ensure a LXD container is stopped, kill it if kill is true else stop it
  126277. .INDENT 7.0
  126278. .TP
  126279. .B name :
  126280. The name of the container to stop
  126281. .TP
  126282. .B kill :
  126283. kill if true
  126284. .TP
  126285. .B remote_addr :
  126286. An URL to a remote Server, you also have to give cert and key if you
  126287. provide remote_addr!
  126288. .INDENT 7.0
  126289. .TP
  126290. .B Examples:
  126291. \fI\%https://myserver.lan:8443\fP
  126292. /var/lib/mysocket.sock
  126293. .UNINDENT
  126294. .TP
  126295. .B cert :
  126296. PEM Formatted SSL Zertifikate.
  126297. .INDENT 7.0
  126298. .TP
  126299. .B Examples:
  126300. ~/.config/lxc/client.crt
  126301. .UNINDENT
  126302. .TP
  126303. .B key :
  126304. PEM Formatted SSL Key.
  126305. .INDENT 7.0
  126306. .TP
  126307. .B Examples:
  126308. ~/.config/lxc/client.key
  126309. .UNINDENT
  126310. .TP
  126311. .B verify_cert
  126312. True
  126313. Wherever to verify the cert, this is by default True
  126314. but in the most cases you want to set it off as LXD
  126315. normally uses self\-signed certificates.
  126316. .UNINDENT
  126317. .UNINDENT
  126318. .SS salt.states.lxd_image module
  126319. .sp
  126320. Manage LXD images.
  126321. .sp
  126322. New in version 2019.2.0.
  126323. .INDENT 0.0
  126324. .TP
  126325. .B maintainer
  126326. René Jochum <\fI\%rene@jochums.at\fP>
  126327. .TP
  126328. .B maturity
  126329. new
  126330. .TP
  126331. .B depends
  126332. python\-pylxd
  126333. .TP
  126334. .B platform
  126335. Linux
  126336. .UNINDENT
  126337. .INDENT 0.0
  126338. .TP
  126339. .B salt.states.lxd_image.absent(name, remote_addr=None, cert=None, key=None, verify_cert=True)
  126340. .INDENT 7.0
  126341. .TP
  126342. .B name :
  126343. An alias or fingerprint of the image to check and delete.
  126344. .TP
  126345. .B remote_addr :
  126346. An URL to a remote Server, you also have to give cert and key if you
  126347. provide remote_addr!
  126348. .INDENT 7.0
  126349. .TP
  126350. .B Examples:
  126351. \fI\%https://myserver.lan:8443\fP
  126352. /var/lib/mysocket.sock
  126353. .UNINDENT
  126354. .TP
  126355. .B cert :
  126356. PEM Formatted SSL Zertifikate.
  126357. .INDENT 7.0
  126358. .TP
  126359. .B Examples:
  126360. ~/.config/lxc/client.crt
  126361. .UNINDENT
  126362. .TP
  126363. .B key :
  126364. PEM Formatted SSL Key.
  126365. .INDENT 7.0
  126366. .TP
  126367. .B Examples:
  126368. ~/.config/lxc/client.key
  126369. .UNINDENT
  126370. .TP
  126371. .B verify_cert
  126372. True
  126373. Wherever to verify the cert, this is by default True
  126374. but in the most cases you want to set it off as LXD
  126375. normally uses self\-signed certificates.
  126376. .UNINDENT
  126377. .UNINDENT
  126378. .INDENT 0.0
  126379. .TP
  126380. .B salt.states.lxd_image.present(name, source, aliases=None, public=None, auto_update=None, remote_addr=None, cert=None, key=None, verify_cert=True)
  126381. Ensure an image exists, copy it else from source
  126382. .INDENT 7.0
  126383. .TP
  126384. .B name :
  126385. An alias of the image, this is used to check if the image exists and
  126386. it will be added as alias to the image on copy/create.
  126387. .TP
  126388. .B source :
  126389. Source dict.
  126390. .sp
  126391. For an LXD to LXD copy:
  126392. .INDENT 7.0
  126393. .INDENT 3.5
  126394. .sp
  126395. .nf
  126396. .ft C
  126397. source:
  126398. type: lxd
  126399. name: ubuntu/xenial/amd64 # This can also be a fingerprint.
  126400. remote_addr: https://images.linuxcontainers.org:8443
  126401. cert: ~/.config/lxd/client.crt
  126402. key: ~/.config/lxd/client.key
  126403. verify_cert: False
  126404. .ft P
  126405. .fi
  126406. .UNINDENT
  126407. .UNINDENT
  126408. .sp
  126409. From file:
  126410. .INDENT 7.0
  126411. .INDENT 3.5
  126412. .sp
  126413. .nf
  126414. .ft C
  126415. source:
  126416. type: file
  126417. filename: salt://lxd/files/busybox.tar.xz
  126418. saltenv: base
  126419. .ft P
  126420. .fi
  126421. .UNINDENT
  126422. .UNINDENT
  126423. .sp
  126424. From simplestreams:
  126425. .INDENT 7.0
  126426. .INDENT 3.5
  126427. .sp
  126428. .nf
  126429. .ft C
  126430. source:
  126431. type: simplestreams
  126432. server: https://cloud\-images.ubuntu.com/releases
  126433. name: xenial/amd64
  126434. .ft P
  126435. .fi
  126436. .UNINDENT
  126437. .UNINDENT
  126438. .sp
  126439. From an URL:
  126440. .INDENT 7.0
  126441. .INDENT 3.5
  126442. .sp
  126443. .nf
  126444. .ft C
  126445. source:
  126446. type: url
  126447. url: https://dl.stgraber.org/lxd
  126448. .ft P
  126449. .fi
  126450. .UNINDENT
  126451. .UNINDENT
  126452. .TP
  126453. .B aliases :
  126454. List of aliases to append, can be empty.
  126455. .TP
  126456. .B public :
  126457. .INDENT 7.0
  126458. .TP
  126459. .B Make this image public available on this instance?
  126460. None on source_type LXD means copy source
  126461. None on source_type file means False
  126462. .UNINDENT
  126463. .TP
  126464. .B auto_update :
  126465. .INDENT 7.0
  126466. .TP
  126467. .B Try to auto\-update from the original source?
  126468. None on source_type LXD means copy source
  126469. source_type file does not have auto\-update.
  126470. .UNINDENT
  126471. .TP
  126472. .B remote_addr :
  126473. An URL to a remote Server, you also have to give cert and key if you
  126474. provide remote_addr!
  126475. .INDENT 7.0
  126476. .TP
  126477. .B Examples:
  126478. \fI\%https://myserver.lan:8443\fP
  126479. /var/lib/mysocket.sock
  126480. .UNINDENT
  126481. .TP
  126482. .B cert :
  126483. PEM Formatted SSL Zertifikate.
  126484. .INDENT 7.0
  126485. .TP
  126486. .B Examples:
  126487. ~/.config/lxc/client.crt
  126488. .UNINDENT
  126489. .TP
  126490. .B key :
  126491. PEM Formatted SSL Key.
  126492. .INDENT 7.0
  126493. .TP
  126494. .B Examples:
  126495. ~/.config/lxc/client.key
  126496. .UNINDENT
  126497. .TP
  126498. .B verify_cert
  126499. True
  126500. Wherever to verify the cert, this is by default True
  126501. but in the most cases you want to set it off as LXD
  126502. normally uses self\-signed certificates.
  126503. .UNINDENT
  126504. .UNINDENT
  126505. .SS salt.states.lxd_profile module
  126506. .sp
  126507. Manage LXD profiles.
  126508. .sp
  126509. New in version 2019.2.0.
  126510. .INDENT 0.0
  126511. .TP
  126512. .B maintainer
  126513. René Jochum <\fI\%rene@jochums.at\fP>
  126514. .TP
  126515. .B maturity
  126516. new
  126517. .TP
  126518. .B depends
  126519. python\-pylxd
  126520. .TP
  126521. .B platform
  126522. Linux
  126523. .UNINDENT
  126524. .INDENT 0.0
  126525. .TP
  126526. .B salt.states.lxd_profile.absent(name, remote_addr=None, cert=None, key=None, verify_cert=True)
  126527. Ensure a LXD profile is not present, removing it if present.
  126528. .INDENT 7.0
  126529. .TP
  126530. .B name :
  126531. The name of the profile to remove.
  126532. .TP
  126533. .B remote_addr :
  126534. An URL to a remote Server, you also have to give cert and key if you
  126535. provide remote_addr!
  126536. .INDENT 7.0
  126537. .TP
  126538. .B Examples:
  126539. \fI\%https://myserver.lan:8443\fP
  126540. /var/lib/mysocket.sock
  126541. .UNINDENT
  126542. .TP
  126543. .B cert :
  126544. PEM Formatted SSL Zertifikate.
  126545. .INDENT 7.0
  126546. .TP
  126547. .B Examples:
  126548. ~/.config/lxc/client.crt
  126549. .UNINDENT
  126550. .TP
  126551. .B key :
  126552. PEM Formatted SSL Key.
  126553. .INDENT 7.0
  126554. .TP
  126555. .B Examples:
  126556. ~/.config/lxc/client.key
  126557. .UNINDENT
  126558. .TP
  126559. .B verify_cert
  126560. True
  126561. Wherever to verify the cert, this is by default True
  126562. but in the most cases you want to set it off as LXD
  126563. normally uses self\-signed certificates.
  126564. .UNINDENT
  126565. .sp
  126566. See the \fIrequests\-docs\fP for the SSL stuff.
  126567. .UNINDENT
  126568. .INDENT 0.0
  126569. .TP
  126570. .B salt.states.lxd_profile.present(name, description=None, config=None, devices=None, remote_addr=None, cert=None, key=None, verify_cert=True)
  126571. Creates or updates LXD profiles
  126572. .INDENT 7.0
  126573. .TP
  126574. .B name :
  126575. The name of the profile to create/update
  126576. .TP
  126577. .B description :
  126578. A description string
  126579. .TP
  126580. .B config :
  126581. A config dict or None (None = unset).
  126582. .INDENT 7.0
  126583. .TP
  126584. .B Can also be a list:
  126585. .INDENT 7.0
  126586. .TP
  126587. .B [{\(aqkey\(aq: \(aqboot.autostart\(aq, \(aqvalue\(aq: 1},
  126588. {\(aqkey\(aq: \(aqsecurity.privileged\(aq, \(aqvalue\(aq: \(aq1\(aq}]
  126589. .UNINDENT
  126590. .UNINDENT
  126591. .TP
  126592. .B devices :
  126593. A device dict or None (None = unset).
  126594. .TP
  126595. .B remote_addr :
  126596. An URL to a remote Server, you also have to give cert and key if you
  126597. provide remote_addr!
  126598. .INDENT 7.0
  126599. .TP
  126600. .B Examples:
  126601. \fI\%https://myserver.lan:8443\fP
  126602. /var/lib/mysocket.sock
  126603. .UNINDENT
  126604. .TP
  126605. .B cert :
  126606. PEM Formatted SSL Zertifikate.
  126607. .INDENT 7.0
  126608. .TP
  126609. .B Examples:
  126610. ~/.config/lxc/client.crt
  126611. .UNINDENT
  126612. .TP
  126613. .B key :
  126614. PEM Formatted SSL Key.
  126615. .INDENT 7.0
  126616. .TP
  126617. .B Examples:
  126618. ~/.config/lxc/client.key
  126619. .UNINDENT
  126620. .TP
  126621. .B verify_cert
  126622. True
  126623. Wherever to verify the cert, this is by default True
  126624. but in the most cases you want to set it off as LXD
  126625. normally uses self\-signed certificates.
  126626. .UNINDENT
  126627. .sp
  126628. See the \fI\%lxd\-docs\fP for the details about the config and devices dicts.
  126629. See the \fIrequests\-docs\fP for the SSL stuff.
  126630. .UNINDENT
  126631. .SS salt.states.mac_xattr module
  126632. .SS Allows you to manage extended attributes on files or directories
  126633. .sp
  126634. Install, enable and disable assistive access on macOS minions
  126635. .INDENT 0.0
  126636. .INDENT 3.5
  126637. .sp
  126638. .nf
  126639. .ft C
  126640. /path/to/file:
  126641. xattr.exists:
  126642. \- attributes:
  126643. \- com.file.attr=test
  126644. \- com.apple.quarantine=0x00001111
  126645. .ft P
  126646. .fi
  126647. .UNINDENT
  126648. .UNINDENT
  126649. .INDENT 0.0
  126650. .TP
  126651. .B salt.states.mac_xattr.delete(name, attributes)
  126652. Make sure the given attributes are deleted from the file/directory
  126653. .INDENT 7.0
  126654. .TP
  126655. .B name
  126656. The path to the file/directory
  126657. .TP
  126658. .B attributes
  126659. The attributes that should be removed from the file/directory, this is accepted as
  126660. an array.
  126661. .UNINDENT
  126662. .UNINDENT
  126663. .INDENT 0.0
  126664. .TP
  126665. .B salt.states.mac_xattr.exists(name, attributes)
  126666. Make sure the given attributes exist on the file/directory
  126667. .INDENT 7.0
  126668. .TP
  126669. .B name
  126670. The path to the file/directory
  126671. .TP
  126672. .B attributes
  126673. The attributes that should exist on the file/directory, this is accepted as
  126674. an array, with key and value split with an equals sign, if you want to specify
  126675. a hex value then add 0x to the beginning of the value.
  126676. .UNINDENT
  126677. .UNINDENT
  126678. .SS salt.states.makeconf
  126679. .SS Management of Gentoo make.conf
  126680. .sp
  126681. A state module to manage Gentoo\(aqs \fBmake.conf\fP file
  126682. .INDENT 0.0
  126683. .INDENT 3.5
  126684. .sp
  126685. .nf
  126686. .ft C
  126687. makeopts:
  126688. makeconf.present:
  126689. \- value: \(aq\-j3\(aq
  126690. .ft P
  126691. .fi
  126692. .UNINDENT
  126693. .UNINDENT
  126694. .INDENT 0.0
  126695. .TP
  126696. .B salt.states.makeconf.absent(name)
  126697. Verify that the variable is not in the \fBmake.conf\fP\&.
  126698. .INDENT 7.0
  126699. .TP
  126700. .B name
  126701. The variable name. This will automatically be converted to upper
  126702. case since variables in \fBmake.conf\fP are in upper case
  126703. .UNINDENT
  126704. .UNINDENT
  126705. .INDENT 0.0
  126706. .TP
  126707. .B salt.states.makeconf.present(name, value=None, contains=None, excludes=None)
  126708. Verify that the variable is in the \fBmake.conf\fP and has the provided
  126709. settings. If value is set, contains and excludes will be ignored.
  126710. .INDENT 7.0
  126711. .TP
  126712. .B name
  126713. The variable name. This will automatically be converted to upper
  126714. case since variables in \fBmake.conf\fP are in upper case
  126715. .TP
  126716. .B value
  126717. Enforce that the value of the variable is set to the provided value
  126718. .TP
  126719. .B contains
  126720. Enforce that the value of the variable contains the provided value
  126721. .TP
  126722. .B excludes
  126723. Enforce that the value of the variable does not contain the provided
  126724. value.
  126725. .UNINDENT
  126726. .UNINDENT
  126727. .SS salt.states.marathon_app module
  126728. .sp
  126729. Configure Marathon apps via a salt proxy.
  126730. .INDENT 0.0
  126731. .INDENT 3.5
  126732. .sp
  126733. .nf
  126734. .ft C
  126735. my_app:
  126736. marathon_app.config:
  126737. \- config:
  126738. cmd: "while [ true ] ; do echo \(aqHello Marathon\(aq ; sleep 5 ; done"
  126739. cpus: 0.1
  126740. mem: 10
  126741. instances: 3
  126742. .ft P
  126743. .fi
  126744. .UNINDENT
  126745. .UNINDENT
  126746. .sp
  126747. New in version 2015.8.2.
  126748. .INDENT 0.0
  126749. .TP
  126750. .B salt.states.marathon_app.absent(name)
  126751. Ensure that the marathon app with the given id is not present.
  126752. .INDENT 7.0
  126753. .TP
  126754. .B Parameters
  126755. \fBname\fP \-\- The app name/id
  126756. .TP
  126757. .B Returns
  126758. A standard Salt changes dictionary
  126759. .UNINDENT
  126760. .UNINDENT
  126761. .INDENT 0.0
  126762. .TP
  126763. .B salt.states.marathon_app.config(name, config)
  126764. Ensure that the marathon app with the given id is present and is configured
  126765. to match the given config values.
  126766. .INDENT 7.0
  126767. .TP
  126768. .B Parameters
  126769. .INDENT 7.0
  126770. .IP \(bu 2
  126771. \fBname\fP \-\- The app name/id
  126772. .IP \(bu 2
  126773. \fBconfig\fP \-\- The configuration to apply (dict)
  126774. .UNINDENT
  126775. .TP
  126776. .B Returns
  126777. A standard Salt changes dictionary
  126778. .UNINDENT
  126779. .UNINDENT
  126780. .INDENT 0.0
  126781. .TP
  126782. .B salt.states.marathon_app.running(name, restart=False, force=True)
  126783. Ensure that the marathon app with the given id is present and restart if set.
  126784. .INDENT 7.0
  126785. .TP
  126786. .B Parameters
  126787. .INDENT 7.0
  126788. .IP \(bu 2
  126789. \fBname\fP \-\- The app name/id
  126790. .IP \(bu 2
  126791. \fBrestart\fP \-\- Restart the app
  126792. .IP \(bu 2
  126793. \fBforce\fP \-\- Override the current deployment
  126794. .UNINDENT
  126795. .TP
  126796. .B Returns
  126797. A standard Salt changes dictionary
  126798. .UNINDENT
  126799. .UNINDENT
  126800. .SS salt.states.modjk
  126801. .sp
  126802. State to control Apache modjk
  126803. .INDENT 0.0
  126804. .TP
  126805. .B salt.states.modjk.worker_activated(name, workers=None, profile=u\(aqdefault\(aq)
  126806. Activate all the workers in the modjk load balancer
  126807. .sp
  126808. Example:
  126809. .INDENT 7.0
  126810. .INDENT 3.5
  126811. .sp
  126812. .nf
  126813. .ft C
  126814. loadbalancer:
  126815. modjk.worker_activated:
  126816. \- workers:
  126817. \- app1
  126818. \- app2
  126819. .ft P
  126820. .fi
  126821. .UNINDENT
  126822. .UNINDENT
  126823. .UNINDENT
  126824. .INDENT 0.0
  126825. .TP
  126826. .B salt.states.modjk.worker_disabled(name, workers=None, profile=u\(aqdefault\(aq)
  126827. Disable all the workers in the modjk load balancer
  126828. .sp
  126829. Example:
  126830. .INDENT 7.0
  126831. .INDENT 3.5
  126832. .sp
  126833. .nf
  126834. .ft C
  126835. loadbalancer:
  126836. modjk.worker_disabled:
  126837. \- workers:
  126838. \- app1
  126839. \- app2
  126840. .ft P
  126841. .fi
  126842. .UNINDENT
  126843. .UNINDENT
  126844. .UNINDENT
  126845. .INDENT 0.0
  126846. .TP
  126847. .B salt.states.modjk.worker_recover(name, workers=None, profile=u\(aqdefault\(aq)
  126848. Recover all the workers in the modjk load balancer
  126849. .sp
  126850. Example:
  126851. .INDENT 7.0
  126852. .INDENT 3.5
  126853. .sp
  126854. .nf
  126855. .ft C
  126856. loadbalancer:
  126857. modjk.worker_recover:
  126858. \- workers:
  126859. \- app1
  126860. \- app2
  126861. .ft P
  126862. .fi
  126863. .UNINDENT
  126864. .UNINDENT
  126865. .UNINDENT
  126866. .INDENT 0.0
  126867. .TP
  126868. .B salt.states.modjk.worker_stopped(name, workers=None, profile=u\(aqdefault\(aq)
  126869. Stop all the workers in the modjk load balancer
  126870. .sp
  126871. Example:
  126872. .INDENT 7.0
  126873. .INDENT 3.5
  126874. .sp
  126875. .nf
  126876. .ft C
  126877. loadbalancer:
  126878. modjk.worker_stopped:
  126879. \- workers:
  126880. \- app1
  126881. \- app2
  126882. .ft P
  126883. .fi
  126884. .UNINDENT
  126885. .UNINDENT
  126886. .UNINDENT
  126887. .SS salt.states.modjk_worker
  126888. .SS Manage modjk workers
  126889. .sp
  126890. Send commands to a \fBmodjk\fP load balancer via the peer system.
  126891. .sp
  126892. This module can be used with the prereq
  126893. requisite to remove/add the worker from the load balancer before
  126894. deploying/restarting service.
  126895. .sp
  126896. Mandatory Settings:
  126897. .INDENT 0.0
  126898. .IP \(bu 2
  126899. The minion needs to have permission to publish the \fBmodjk.*\fP
  126900. functions (see here for information on configuring
  126901. peer publishing permissions)
  126902. .IP \(bu 2
  126903. The modjk load balancer must be configured as stated in the \fBmodjk\fP
  126904. execution module \fBdocumentation\fP
  126905. .UNINDENT
  126906. .INDENT 0.0
  126907. .TP
  126908. .B salt.states.modjk_worker.activate(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  126909. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  126910. releases must use \fBexpr_form\fP\&.
  126911. .sp
  126912. Activate the named worker from the lbn load balancers at the targeted
  126913. minions
  126914. .sp
  126915. Example:
  126916. .INDENT 7.0
  126917. .INDENT 3.5
  126918. .sp
  126919. .nf
  126920. .ft C
  126921. disable\-before\-deploy:
  126922. modjk_worker.activate:
  126923. \- name: {{ grains[\(aqid\(aq] }}
  126924. \- lbn: application
  126925. \- target: \(aqroles:balancer\(aq
  126926. \- tgt_type: grain
  126927. .ft P
  126928. .fi
  126929. .UNINDENT
  126930. .UNINDENT
  126931. .UNINDENT
  126932. .INDENT 0.0
  126933. .TP
  126934. .B salt.states.modjk_worker.disable(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  126935. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  126936. releases must use \fBexpr_form\fP\&.
  126937. .sp
  126938. Disable the named worker from the lbn load balancers at the targeted
  126939. minions. The worker will get traffic only for current sessions and won\(aqt
  126940. get new ones.
  126941. .sp
  126942. Example:
  126943. .INDENT 7.0
  126944. .INDENT 3.5
  126945. .sp
  126946. .nf
  126947. .ft C
  126948. disable\-before\-deploy:
  126949. modjk_worker.disable:
  126950. \- name: {{ grains[\(aqid\(aq] }}
  126951. \- lbn: application
  126952. \- target: \(aqroles:balancer\(aq
  126953. \- tgt_type: grain
  126954. .ft P
  126955. .fi
  126956. .UNINDENT
  126957. .UNINDENT
  126958. .UNINDENT
  126959. .INDENT 0.0
  126960. .TP
  126961. .B salt.states.modjk_worker.stop(name, lbn, target, profile=u\(aqdefault\(aq, tgt_type=u\(aqglob\(aq)
  126962. Changed in version 2017.7.0: The \fBexpr_form\fP argument has been renamed to \fBtgt_type\fP, earlier
  126963. releases must use \fBexpr_form\fP\&.
  126964. .sp
  126965. Stop the named worker from the lbn load balancers at the targeted minions
  126966. The worker won\(aqt get any traffic from the lbn
  126967. .sp
  126968. Example:
  126969. .INDENT 7.0
  126970. .INDENT 3.5
  126971. .sp
  126972. .nf
  126973. .ft C
  126974. disable\-before\-deploy:
  126975. modjk_worker.stop:
  126976. \- name: {{ grains[\(aqid\(aq] }}
  126977. \- lbn: application
  126978. \- target: \(aqroles:balancer\(aq
  126979. \- tgt_type: grain
  126980. .ft P
  126981. .fi
  126982. .UNINDENT
  126983. .UNINDENT
  126984. .UNINDENT
  126985. .SS salt.states.mongodb_database
  126986. .SS Management of MongoDB Databases
  126987. .INDENT 0.0
  126988. .TP
  126989. .B depends
  126990. .INDENT 7.0
  126991. .IP \(bu 2
  126992. pymongo Python module
  126993. .UNINDENT
  126994. .UNINDENT
  126995. .sp
  126996. Only deletion is supported, creation doesn\(aqt make sense and can be done using
  126997. \fBmongodb_user.present\fP\&.
  126998. .INDENT 0.0
  126999. .TP
  127000. .B salt.states.mongodb_database.absent(name, user=None, password=None, host=None, port=None, authdb=None)
  127001. Ensure that the named database is absent. Note that creation doesn\(aqt make
  127002. sense in MongoDB.
  127003. .INDENT 7.0
  127004. .TP
  127005. .B name
  127006. The name of the database to remove
  127007. .TP
  127008. .B user
  127009. The user to connect as (must be able to create the user)
  127010. .TP
  127011. .B password
  127012. The password of the user
  127013. .TP
  127014. .B host
  127015. The host to connect to
  127016. .TP
  127017. .B port
  127018. The port to connect to
  127019. .TP
  127020. .B authdb
  127021. The database in which to authenticate
  127022. .UNINDENT
  127023. .UNINDENT
  127024. .SS salt.states.mongodb_user
  127025. .SS Management of MongoDB Users
  127026. .INDENT 0.0
  127027. .TP
  127028. .B depends
  127029. .INDENT 7.0
  127030. .IP \(bu 2
  127031. pymongo Python module
  127032. .UNINDENT
  127033. .UNINDENT
  127034. .INDENT 0.0
  127035. .TP
  127036. .B salt.states.mongodb_user.absent(name, user=None, password=None, host=None, port=None, database=u\(aqadmin\(aq, authdb=None)
  127037. Ensure that the named user is absent
  127038. .INDENT 7.0
  127039. .TP
  127040. .B name
  127041. The name of the user to remove
  127042. .TP
  127043. .B user
  127044. MongoDB user with sufficient privilege to create the user
  127045. .TP
  127046. .B password
  127047. Password for the admin user specified by the \fBuser\fP parameter
  127048. .TP
  127049. .B host
  127050. The hostname/IP address of the MongoDB server
  127051. .TP
  127052. .B port
  127053. The port on which MongoDB is listening
  127054. .TP
  127055. .B database
  127056. The database from which to remove the user specified by the \fBname\fP
  127057. parameter
  127058. .TP
  127059. .B authdb
  127060. The database in which to authenticate
  127061. .UNINDENT
  127062. .UNINDENT
  127063. .INDENT 0.0
  127064. .TP
  127065. .B salt.states.mongodb_user.present(name, passwd, database=u\(aqadmin\(aq, user=None, password=None, host=u\(aqlocalhost\(aq, port=27017, authdb=None, roles=None)
  127066. Ensure that the user is present with the specified properties
  127067. .INDENT 7.0
  127068. .TP
  127069. .B name
  127070. The name of the user to manage
  127071. .TP
  127072. .B passwd
  127073. The password of the user to manage
  127074. .TP
  127075. .B user
  127076. MongoDB user with sufficient privilege to create the user
  127077. .TP
  127078. .B password
  127079. Password for the admin user specified with the \fBuser\fP parameter
  127080. .TP
  127081. .B host
  127082. The hostname/IP address of the MongoDB server
  127083. .TP
  127084. .B port
  127085. The port on which MongoDB is listening
  127086. .TP
  127087. .B database
  127088. The database in which to create the user
  127089. .sp
  127090. \fBNOTE:\fP
  127091. .INDENT 7.0
  127092. .INDENT 3.5
  127093. If the database doesn\(aqt exist, it will be created.
  127094. .UNINDENT
  127095. .UNINDENT
  127096. .TP
  127097. .B authdb
  127098. The database in which to authenticate
  127099. .TP
  127100. .B roles
  127101. The roles assigned to user specified with the \fBname\fP parameter
  127102. .UNINDENT
  127103. .sp
  127104. Example:
  127105. .INDENT 7.0
  127106. .INDENT 3.5
  127107. .sp
  127108. .nf
  127109. .ft C
  127110. mongouser\-myapp:
  127111. mongodb_user.present:
  127112. \- name: myapp
  127113. \- passwd: password\-of\-myapp
  127114. \- database: admin
  127115. # Connect as admin:sekrit
  127116. \- user: admin
  127117. \- password: sekrit
  127118. \- roles:
  127119. \- readWrite
  127120. \- userAdmin
  127121. \- dbOwner
  127122. .ft P
  127123. .fi
  127124. .UNINDENT
  127125. .UNINDENT
  127126. .UNINDENT
  127127. .SS salt.states.monit
  127128. .SS Monit state
  127129. .sp
  127130. Manage monit states
  127131. .INDENT 0.0
  127132. .INDENT 3.5
  127133. .sp
  127134. .nf
  127135. .ft C
  127136. monit_enable_service_monitoring:
  127137. monit.monitor:
  127138. \- name: service
  127139. monit_disable_service_monitoring:
  127140. monit.unmonitor:
  127141. \- name: service
  127142. .ft P
  127143. .fi
  127144. .UNINDENT
  127145. .UNINDENT
  127146. .sp
  127147. \fBNOTE:\fP
  127148. .INDENT 0.0
  127149. .INDENT 3.5
  127150. Use of these states require that the \fBmonit\fP
  127151. execution module is available.
  127152. .UNINDENT
  127153. .UNINDENT
  127154. .INDENT 0.0
  127155. .TP
  127156. .B salt.states.monit.monitor(name)
  127157. Get the summary from module monit and try to see if service is
  127158. being monitored. If not then monitor the service.
  127159. .UNINDENT
  127160. .INDENT 0.0
  127161. .TP
  127162. .B salt.states.monit.unmonitor(name)
  127163. Get the summary from module monit and try to see if service is
  127164. being monitored. If it is then stop monitoring the service.
  127165. .UNINDENT
  127166. .SS salt.states.mount
  127167. .SS Mounting of filesystems
  127168. .sp
  127169. Mount any type of mountable filesystem with the mounted function:
  127170. .INDENT 0.0
  127171. .INDENT 3.5
  127172. .sp
  127173. .nf
  127174. .ft C
  127175. /mnt/sdb:
  127176. mount.mounted:
  127177. \- device: /dev/sdb1
  127178. \- fstype: ext4
  127179. \- mkmnt: True
  127180. \- opts:
  127181. \- defaults
  127182. /srv/bigdata:
  127183. mount.mounted:
  127184. \- device: UUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314
  127185. \- fstype: xfs
  127186. \- opts: nobootwait,noatime,nodiratime,nobarrier,logbufs=8
  127187. \- dump: 0
  127188. \- pass_num: 2
  127189. \- persist: True
  127190. \- mkmnt: True
  127191. /var/lib/bigdata:
  127192. mount.mounted:
  127193. \- device: /srv/bigdata
  127194. \- fstype: none
  127195. \- opts: bind
  127196. \- dump: 0
  127197. \- pass_num: 0
  127198. \- persist: True
  127199. \- mkmnt: True
  127200. .ft P
  127201. .fi
  127202. .UNINDENT
  127203. .UNINDENT
  127204. .INDENT 0.0
  127205. .TP
  127206. .B salt.states.mount.fstab_absent(name, fs_file, mount_by=None, config=u\(aq/etc/fstab\(aq)
  127207. Makes sure that a fstab mount point is absent.
  127208. .INDENT 7.0
  127209. .TP
  127210. .B name
  127211. The name of block device. Can be any valid fs_spec value.
  127212. .TP
  127213. .B fs_file
  127214. Mount point (target) for the filesystem.
  127215. .TP
  127216. .B mount_by
  127217. Select the final value for fs_spec. Can be [\fBNone\fP,
  127218. \fBdevice\fP, \fBlabel\fP, \fBuuid\fP, \fBpartlabel\fP,
  127219. \fBpartuuid\fP]. If \fBNone\fP, the value for fs_spect will be the
  127220. parameter \fBname\fP, in other case will search the correct
  127221. value based on the device name. For example, for \fBuuid\fP, the
  127222. value for fs_spec will be of type \(aqUUID=xxx\(aq instead of the
  127223. device name set in \fBname\fP\&.
  127224. .TP
  127225. .B config
  127226. Place where the fstab file lives
  127227. .UNINDENT
  127228. .UNINDENT
  127229. .INDENT 0.0
  127230. .TP
  127231. .B salt.states.mount.fstab_present(name, fs_file, fs_vfstype, fs_mntops=u\(aqdefaults\(aq, fs_freq=0, fs_passno=0, mount_by=None, config=u\(aq/etc/fstab\(aq, mount=True, match_on=u\(aqauto\(aq, not_change=False)
  127232. Makes sure that a fstab mount point is present.
  127233. .INDENT 7.0
  127234. .TP
  127235. .B name
  127236. The name of block device. Can be any valid fs_spec value.
  127237. .TP
  127238. .B fs_file
  127239. Mount point (target) for the filesystem.
  127240. .TP
  127241. .B fs_vfstype
  127242. The type of the filesystem (e.g. ext4, xfs, btrfs, ...)
  127243. .TP
  127244. .B fs_mntops
  127245. The mount options associated with the filesystem. Default is
  127246. \fBdefaults\fP\&.
  127247. .TP
  127248. .B fs_freq
  127249. Field is used by dump to determine which fs need to be
  127250. dumped. Default is \fB0\fP
  127251. .TP
  127252. .B fs_passno
  127253. Field is used by fsck to determine the order in which
  127254. filesystem checks are done at boot time. Default is \fB0\fP
  127255. .TP
  127256. .B mount_by
  127257. Select the final value for fs_spec. Can be [\fBNone\fP,
  127258. \fBdevice\fP, \fBlabel\fP, \fBuuid\fP, \fBpartlabel\fP,
  127259. \fBpartuuid\fP]. If \fBNone\fP, the value for fs_spect will be the
  127260. parameter \fBname\fP, in other case will search the correct
  127261. value based on the device name. For example, for \fBuuid\fP, the
  127262. value for fs_spec will be of type \(aqUUID=xxx\(aq instead of the
  127263. device name set in \fBname\fP\&.
  127264. .TP
  127265. .B config
  127266. Place where the fstab file lives. Default is \fB/etc/fstab\fP
  127267. .TP
  127268. .B mount
  127269. Set if the mount should be mounted immediately. Default is
  127270. \fBTrue\fP
  127271. .TP
  127272. .B match_on
  127273. A name or list of fstab properties on which this state should
  127274. be applied. Default is \fBauto\fP, a special value indicating
  127275. to guess based on fstype. In general, \fBauto\fP matches on
  127276. name for recognized special devices and device otherwise.
  127277. .TP
  127278. .B not_change
  127279. By default, if the entry is found in the fstab file but is
  127280. different from the expected content (like different options),
  127281. the entry will be replaced with the correct content. If this
  127282. parameter is set to \fBTrue\fP and the line is found, the
  127283. original content will be preserved.
  127284. .UNINDENT
  127285. .UNINDENT
  127286. .INDENT 0.0
  127287. .TP
  127288. .B salt.states.mount.mod_watch(name, user=None, **kwargs)
  127289. The mounted watcher, called to invoke the watch command.
  127290. .sp
  127291. \fBNOTE:\fP
  127292. .INDENT 7.0
  127293. .INDENT 3.5
  127294. This state exists to support special handling of the \fBwatch\fP
  127295. requisite\&. It should not be called directly.
  127296. .sp
  127297. Parameters for this function should be set by the state being triggered.
  127298. .UNINDENT
  127299. .UNINDENT
  127300. .INDENT 7.0
  127301. .TP
  127302. .B name
  127303. The name of the mount point
  127304. .UNINDENT
  127305. .UNINDENT
  127306. .INDENT 0.0
  127307. .TP
  127308. .B salt.states.mount.mounted(name, device, fstype, mkmnt=False, opts=u\(aqdefaults\(aq, dump=0, pass_num=0, config=u\(aq/etc/fstab\(aq, persist=True, mount=True, user=None, match_on=u\(aqauto\(aq, device_name_regex=None, extra_mount_invisible_options=None, extra_mount_invisible_keys=None, extra_mount_ignore_fs_keys=None, extra_mount_translate_options=None, hidden_opts=None, **kwargs)
  127309. Verify that a device is mounted
  127310. .INDENT 7.0
  127311. .TP
  127312. .B name
  127313. The path to the location where the device is to be mounted
  127314. .TP
  127315. .B device
  127316. The device name, typically the device node, such as \fB/dev/sdb1\fP
  127317. or \fBUUID=066e0200\-2867\-4ebe\-b9e6\-f30026ca2314\fP or \fBLABEL=DATA\fP
  127318. .TP
  127319. .B fstype
  127320. The filesystem type, this will be \fBxfs\fP, \fBext2/3/4\fP in the case of classic
  127321. filesystems, \fBfuse\fP in the case of fuse mounts, and \fBnfs\fP in the case of nfs mounts
  127322. .TP
  127323. .B mkmnt
  127324. If the mount point is not present then the state will fail, set \fBmkmnt: True\fP
  127325. to create the mount point if it is otherwise not present
  127326. .TP
  127327. .B opts
  127328. A list object of options or a comma delimited list
  127329. .TP
  127330. .B dump
  127331. The dump value to be passed into the fstab, Default is \fB0\fP
  127332. .TP
  127333. .B pass_num
  127334. The pass value to be passed into the fstab, Default is \fB0\fP
  127335. .TP
  127336. .B config
  127337. Set an alternative location for the fstab, Default is \fB/etc/fstab\fP
  127338. .TP
  127339. .B persist
  127340. Set if the mount should be saved in the fstab, Default is \fBTrue\fP
  127341. .TP
  127342. .B mount
  127343. Set if the mount should be mounted immediately, Default is \fBTrue\fP
  127344. .TP
  127345. .B user
  127346. The account used to execute the mount; this defaults to the user salt is
  127347. running as on the minion
  127348. .TP
  127349. .B match_on
  127350. A name or list of fstab properties on which this state should be applied.
  127351. Default is \fBauto\fP, a special value indicating to guess based on fstype.
  127352. In general, \fBauto\fP matches on name for recognized special devices and
  127353. device otherwise.
  127354. .TP
  127355. .B device_name_regex
  127356. A list of device exact names or regular expressions which should
  127357. not force a remount. For example, glusterfs may be mounted with a
  127358. comma\-separated list of servers in fstab, but the /proc/self/mountinfo
  127359. will show only the first available server.
  127360. .INDENT 7.0
  127361. .INDENT 3.5
  127362. .sp
  127363. .nf
  127364. .ft C
  127365. {% set glusterfs_ip_list = [\(aq10.0.0.1\(aq, \(aq10.0.0.2\(aq, \(aq10.0.0.3\(aq] %}
  127366. mount glusterfs volume:
  127367. mount.mounted:
  127368. \- name: /mnt/glusterfs_mount_point
  127369. \- device: {{ glusterfs_ip_list|join(\(aq,\(aq) }}:/volume_name
  127370. \- fstype: glusterfs
  127371. \- opts: _netdev,rw,defaults,direct\-io\-mode=disable
  127372. \- mkmnt: True
  127373. \- persist: True
  127374. \- dump: 0
  127375. \- pass_num: 0
  127376. \- device_name_regex:
  127377. \- ({{ glusterfs_ip_list|join(\(aq|\(aq) }}):/volume_name
  127378. .ft P
  127379. .fi
  127380. .UNINDENT
  127381. .UNINDENT
  127382. .sp
  127383. New in version 2016.11.0.
  127384. .TP
  127385. .B extra_mount_invisible_options
  127386. A list of extra options that are not visible through the
  127387. \fB/proc/self/mountinfo\fP interface.
  127388. .sp
  127389. If a option is not visible through this interface it will always remount
  127390. the device. This option extends the builtin \fBmount_invisible_options\fP
  127391. list.
  127392. .TP
  127393. .B extra_mount_invisible_keys
  127394. A list of extra key options that are not visible through the
  127395. \fB/proc/self/mountinfo\fP interface.
  127396. .sp
  127397. If a key option is not visible through this interface it will always
  127398. remount the device. This option extends the builtin
  127399. \fBmount_invisible_keys\fP list.
  127400. .sp
  127401. A good example for a key option is the password option:
  127402. .INDENT 7.0
  127403. .INDENT 3.5
  127404. .sp
  127405. .nf
  127406. .ft C
  127407. password=badsecret
  127408. .ft P
  127409. .fi
  127410. .UNINDENT
  127411. .UNINDENT
  127412. .TP
  127413. .B extra_mount_ignore_fs_keys
  127414. A dict of filesystem options which should not force a remount. This will update
  127415. the internal dictionary. The dict should look like this:
  127416. .INDENT 7.0
  127417. .INDENT 3.5
  127418. .sp
  127419. .nf
  127420. .ft C
  127421. {
  127422. \(aqramfs\(aq: [\(aqsize\(aq]
  127423. }
  127424. .ft P
  127425. .fi
  127426. .UNINDENT
  127427. .UNINDENT
  127428. .TP
  127429. .B extra_mount_translate_options
  127430. A dict of mount options that gets translated when mounted. To prevent a remount
  127431. add additional options to the default dictionary. This will update the internal
  127432. dictionary. The dictionary should look like this:
  127433. .INDENT 7.0
  127434. .INDENT 3.5
  127435. .sp
  127436. .nf
  127437. .ft C
  127438. {
  127439. \(aqtcp\(aq: \(aqproto=tcp\(aq,
  127440. \(aqudp\(aq: \(aqproto=udp\(aq
  127441. }
  127442. .ft P
  127443. .fi
  127444. .UNINDENT
  127445. .UNINDENT
  127446. .TP
  127447. .B hidden_opts
  127448. A list of mount options that will be ignored when considering a remount
  127449. as part of the state application
  127450. .sp
  127451. New in version 2015.8.2.
  127452. .UNINDENT
  127453. .UNINDENT
  127454. .INDENT 0.0
  127455. .TP
  127456. .B salt.states.mount.swap(name, persist=True, config=u\(aq/etc/fstab\(aq)
  127457. Activates a swap device
  127458. .INDENT 7.0
  127459. .INDENT 3.5
  127460. .sp
  127461. .nf
  127462. .ft C
  127463. /root/swapfile:
  127464. mount.swap
  127465. .ft P
  127466. .fi
  127467. .UNINDENT
  127468. .UNINDENT
  127469. .sp
  127470. \fBNOTE:\fP
  127471. .INDENT 7.0
  127472. .INDENT 3.5
  127473. \fBswap\fP does not currently support LABEL
  127474. .UNINDENT
  127475. .UNINDENT
  127476. .UNINDENT
  127477. .INDENT 0.0
  127478. .TP
  127479. .B salt.states.mount.unmounted(name, device=None, config=u\(aq/etc/fstab\(aq, persist=False, user=None, **kwargs)
  127480. New in version 0.17.0.
  127481. .sp
  127482. Verify that a device is not mounted
  127483. .INDENT 7.0
  127484. .TP
  127485. .B name
  127486. The path to the location where the device is to be unmounted from
  127487. .TP
  127488. .B device
  127489. The device to be unmounted. This is optional because the device could
  127490. be mounted in multiple places.
  127491. .sp
  127492. New in version 2015.5.0.
  127493. .TP
  127494. .B config
  127495. Set an alternative location for the fstab, Default is \fB/etc/fstab\fP
  127496. .TP
  127497. .B persist
  127498. Set if the mount should be purged from the fstab, Default is \fBFalse\fP
  127499. .TP
  127500. .B user
  127501. The user to own the mount; this defaults to the user salt is
  127502. running as on the minion
  127503. .UNINDENT
  127504. .UNINDENT
  127505. .SS salt.states.mssql_database module
  127506. .SS Management of Microsoft SQLServer Databases
  127507. .sp
  127508. The mssql_database module is used to create
  127509. and manage SQL Server Databases
  127510. .INDENT 0.0
  127511. .INDENT 3.5
  127512. .sp
  127513. .nf
  127514. .ft C
  127515. yolo:
  127516. mssql_database.present
  127517. .ft P
  127518. .fi
  127519. .UNINDENT
  127520. .UNINDENT
  127521. .INDENT 0.0
  127522. .TP
  127523. .B salt.states.mssql_database.absent(name, **kwargs)
  127524. Ensure that the named database is absent
  127525. .INDENT 7.0
  127526. .TP
  127527. .B name
  127528. The name of the database to remove
  127529. .UNINDENT
  127530. .UNINDENT
  127531. .INDENT 0.0
  127532. .TP
  127533. .B salt.states.mssql_database.present(name, containment=u\(aqNONE\(aq, options=None, **kwargs)
  127534. Ensure that the named database is present with the specified options
  127535. .INDENT 7.0
  127536. .TP
  127537. .B name
  127538. The name of the database to manage
  127539. .TP
  127540. .B containment
  127541. Defaults to NONE
  127542. .TP
  127543. .B options
  127544. Can be a list of strings, a dictionary, or a list of dictionaries
  127545. .UNINDENT
  127546. .UNINDENT
  127547. .SS salt.states.mssql_login module
  127548. .SS Management of Microsoft SQLServer Logins
  127549. .sp
  127550. The mssql_login module is used to create
  127551. and manage SQL Server Logins
  127552. .INDENT 0.0
  127553. .INDENT 3.5
  127554. .sp
  127555. .nf
  127556. .ft C
  127557. frank:
  127558. mssql_login.present
  127559. \- domain: mydomain
  127560. .ft P
  127561. .fi
  127562. .UNINDENT
  127563. .UNINDENT
  127564. .INDENT 0.0
  127565. .TP
  127566. .B salt.states.mssql_login.absent(name, **kwargs)
  127567. Ensure that the named login is absent
  127568. .INDENT 7.0
  127569. .TP
  127570. .B name
  127571. The name of the login to remove
  127572. .UNINDENT
  127573. .UNINDENT
  127574. .INDENT 0.0
  127575. .TP
  127576. .B salt.states.mssql_login.present(name, password=None, domain=None, server_roles=None, options=None, **kwargs)
  127577. Checks existence of the named login.
  127578. If not present, creates the login with the specified roles and options.
  127579. .INDENT 7.0
  127580. .TP
  127581. .B name
  127582. The name of the login to manage
  127583. .TP
  127584. .B password
  127585. Creates a SQL Server authentication login
  127586. Since hashed passwords are varbinary values, if the
  127587. new_login_password is \(aqlong\(aq, it will be considered
  127588. to be HASHED.
  127589. .TP
  127590. .B domain
  127591. Creates a Windows authentication login.
  127592. Needs to be NetBIOS domain or hostname
  127593. .TP
  127594. .B server_roles
  127595. Add this login to all the server roles in the list
  127596. .TP
  127597. .B options
  127598. Can be a list of strings, a dictionary, or a list of dictionaries
  127599. .UNINDENT
  127600. .UNINDENT
  127601. .SS salt.states.mssql_role module
  127602. .SS Management of Microsoft SQLServer Databases
  127603. .sp
  127604. The mssql_role module is used to create
  127605. and manage SQL Server Roles
  127606. .INDENT 0.0
  127607. .INDENT 3.5
  127608. .sp
  127609. .nf
  127610. .ft C
  127611. yolo:
  127612. mssql_role.present
  127613. .ft P
  127614. .fi
  127615. .UNINDENT
  127616. .UNINDENT
  127617. .INDENT 0.0
  127618. .TP
  127619. .B salt.states.mssql_role.absent(name, **kwargs)
  127620. Ensure that the named database is absent
  127621. .INDENT 7.0
  127622. .TP
  127623. .B name
  127624. The name of the database to remove
  127625. .UNINDENT
  127626. .UNINDENT
  127627. .INDENT 0.0
  127628. .TP
  127629. .B salt.states.mssql_role.present(name, owner=None, grants=None, **kwargs)
  127630. Ensure that the named database is present with the specified options
  127631. .INDENT 7.0
  127632. .TP
  127633. .B name
  127634. The name of the database to manage
  127635. .TP
  127636. .B owner
  127637. Adds owner using AUTHORIZATION option
  127638. .TP
  127639. .B Grants
  127640. Can only be a list of strings
  127641. .UNINDENT
  127642. .UNINDENT
  127643. .SS salt.states.mssql_user module
  127644. .SS Management of Microsoft SQLServer Users
  127645. .sp
  127646. The mssql_user module is used to create
  127647. and manage SQL Server Users
  127648. .INDENT 0.0
  127649. .INDENT 3.5
  127650. .sp
  127651. .nf
  127652. .ft C
  127653. frank:
  127654. mssql_user.present:
  127655. \- database: yolo
  127656. .ft P
  127657. .fi
  127658. .UNINDENT
  127659. .UNINDENT
  127660. .INDENT 0.0
  127661. .TP
  127662. .B salt.states.mssql_user.absent(name, **kwargs)
  127663. Ensure that the named user is absent
  127664. .INDENT 7.0
  127665. .TP
  127666. .B name
  127667. The username of the user to remove
  127668. .UNINDENT
  127669. .UNINDENT
  127670. .INDENT 0.0
  127671. .TP
  127672. .B salt.states.mssql_user.present(name, login=None, domain=None, database=None, roles=None, options=None, **kwargs)
  127673. Checks existence of the named user.
  127674. If not present, creates the user with the specified roles and options.
  127675. .INDENT 7.0
  127676. .TP
  127677. .B name
  127678. The name of the user to manage
  127679. .TP
  127680. .B login
  127681. If not specified, will be created WITHOUT LOGIN
  127682. .TP
  127683. .B domain
  127684. Creates a Windows authentication user.
  127685. Needs to be NetBIOS domain or hostname
  127686. .TP
  127687. .B database
  127688. The database of the user (not the login)
  127689. .TP
  127690. .B roles
  127691. Add this user to all the roles in the list
  127692. .TP
  127693. .B options
  127694. Can be a list of strings, a dictionary, or a list of dictionaries
  127695. .UNINDENT
  127696. .UNINDENT
  127697. .SS salt.states.msteams module
  127698. .SS Send a message card to Microsoft Teams
  127699. .sp
  127700. This state is useful for sending messages to Teams during state runs.
  127701. .sp
  127702. New in version 2017.7.0.
  127703. .INDENT 0.0
  127704. .INDENT 3.5
  127705. .sp
  127706. .nf
  127707. .ft C
  127708. teams\-message:
  127709. msteams.post_card:
  127710. \- message: \(aqThis state was executed successfully.\(aq
  127711. \- hook_url: https://outlook.office.com/webhook/837
  127712. .ft P
  127713. .fi
  127714. .UNINDENT
  127715. .UNINDENT
  127716. .sp
  127717. The hook_url can be specified in the master or minion configuration like below:
  127718. .INDENT 0.0
  127719. .INDENT 3.5
  127720. .sp
  127721. .nf
  127722. .ft C
  127723. msteams:
  127724. hook_url: https://outlook.office.com/webhook/837
  127725. .ft P
  127726. .fi
  127727. .UNINDENT
  127728. .UNINDENT
  127729. .INDENT 0.0
  127730. .TP
  127731. .B salt.states.msteams.post_card(name, message, hook_url=None, title=None, theme_color=None)
  127732. Send a message to a Microsft Teams channel
  127733. .INDENT 7.0
  127734. .INDENT 3.5
  127735. .sp
  127736. .nf
  127737. .ft C
  127738. send\-msteams\-message:
  127739. msteams.post_card:
  127740. \- message: \(aqThis state was executed successfully.\(aq
  127741. \- hook_url: https://outlook.office.com/webhook/837
  127742. .ft P
  127743. .fi
  127744. .UNINDENT
  127745. .UNINDENT
  127746. .sp
  127747. The following parameters are required:
  127748. .INDENT 7.0
  127749. .TP
  127750. .B message
  127751. The message that is to be sent to the MS Teams channel.
  127752. .UNINDENT
  127753. .sp
  127754. The following parameters are optional:
  127755. .INDENT 7.0
  127756. .TP
  127757. .B hook_url
  127758. The webhook URL given configured in Teams interface,
  127759. if not specified in the configuration options of master or minion.
  127760. .TP
  127761. .B title
  127762. The title for the card posted to the channel
  127763. .TP
  127764. .B theme_color
  127765. A hex code for the desired highlight color
  127766. .UNINDENT
  127767. .UNINDENT
  127768. .SS salt.states.mysql_database
  127769. .SS Management of MySQL databases (schemas)
  127770. .INDENT 0.0
  127771. .TP
  127772. .B depends
  127773. .INDENT 7.0
  127774. .IP \(bu 2
  127775. MySQLdb Python module
  127776. .UNINDENT
  127777. .TP
  127778. .B configuration
  127779. See \fBsalt.modules.mysql\fP for setup instructions.
  127780. .UNINDENT
  127781. .sp
  127782. The mysql_database module is used to create and manage MySQL databases.
  127783. Databases can be set as either absent or present.
  127784. .INDENT 0.0
  127785. .INDENT 3.5
  127786. .sp
  127787. .nf
  127788. .ft C
  127789. frank:
  127790. mysql_database.present
  127791. .ft P
  127792. .fi
  127793. .UNINDENT
  127794. .UNINDENT
  127795. .INDENT 0.0
  127796. .TP
  127797. .B salt.states.mysql_database.absent(name, **connection_args)
  127798. Ensure that the named database is absent
  127799. .INDENT 7.0
  127800. .TP
  127801. .B name
  127802. The name of the database to remove
  127803. .UNINDENT
  127804. .UNINDENT
  127805. .INDENT 0.0
  127806. .TP
  127807. .B salt.states.mysql_database.present(name, character_set=None, collate=None, **connection_args)
  127808. Ensure that the named database is present with the specified properties
  127809. .INDENT 7.0
  127810. .TP
  127811. .B name
  127812. The name of the database to manage
  127813. .UNINDENT
  127814. .UNINDENT
  127815. .SS salt.states.mysql_grants
  127816. .SS Management of MySQL grants (user permissions)
  127817. .INDENT 0.0
  127818. .TP
  127819. .B depends
  127820. .INDENT 7.0
  127821. .IP \(bu 2
  127822. MySQLdb Python module
  127823. .UNINDENT
  127824. .TP
  127825. .B configuration
  127826. See \fBsalt.modules.mysql\fP for setup instructions.
  127827. .UNINDENT
  127828. .sp
  127829. The mysql_grants module is used to grant and revoke MySQL permissions.
  127830. .sp
  127831. The \fBname\fP you pass in purely symbolic and does not have anything to do
  127832. with the grant itself.
  127833. .sp
  127834. The \fBdatabase\fP parameter needs to specify a \(aqpriv_level\(aq in the same
  127835. specification as defined in the MySQL documentation:
  127836. .INDENT 0.0
  127837. .IP \(bu 2
  127838. *
  127839. .IP \(bu 2
  127840. *.*
  127841. .IP \(bu 2
  127842. db_name.*
  127843. .IP \(bu 2
  127844. db_name.tbl_name
  127845. .IP \(bu 2
  127846. etc...
  127847. .UNINDENT
  127848. .sp
  127849. This state is not able to set password for the permission from the
  127850. specified host. See \fBsalt.states.mysql_user\fP for further
  127851. instructions.
  127852. .INDENT 0.0
  127853. .INDENT 3.5
  127854. .sp
  127855. .nf
  127856. .ft C
  127857. frank_exampledb:
  127858. mysql_grants.present:
  127859. \- grant: select,insert,update
  127860. \- database: exampledb.*
  127861. \- user: frank
  127862. \- host: localhost
  127863. frank_otherdb:
  127864. mysql_grants.present:
  127865. \- grant: all privileges
  127866. \- database: otherdb.*
  127867. \- user: frank
  127868. restricted_singletable:
  127869. mysql_grants.present:
  127870. \- grant: select
  127871. \- database: somedb.sometable
  127872. \- user: joe
  127873. .ft P
  127874. .fi
  127875. .UNINDENT
  127876. .UNINDENT
  127877. .INDENT 0.0
  127878. .TP
  127879. .B salt.states.mysql_grants.absent(name, grant=None, database=None, user=None, host=u\(aqlocalhost\(aq, grant_option=False, escape=True, **connection_args)
  127880. Ensure that the grant is absent
  127881. .INDENT 7.0
  127882. .TP
  127883. .B name
  127884. The name (key) of the grant to add
  127885. .TP
  127886. .B grant
  127887. The grant priv_type (i.e. select,insert,update OR all privileges)
  127888. .TP
  127889. .B database
  127890. The database priv_level (i.e. db.tbl OR db.*)
  127891. .TP
  127892. .B user
  127893. The user to apply the grant to
  127894. .TP
  127895. .B host
  127896. The network/host that the grant should apply to
  127897. .UNINDENT
  127898. .UNINDENT
  127899. .INDENT 0.0
  127900. .TP
  127901. .B salt.states.mysql_grants.present(name, grant=None, database=None, user=None, host=u\(aqlocalhost\(aq, grant_option=False, escape=True, revoke_first=False, ssl_option=False, **connection_args)
  127902. Ensure that the grant is present with the specified properties
  127903. .INDENT 7.0
  127904. .TP
  127905. .B name
  127906. The name (key) of the grant to add
  127907. .TP
  127908. .B grant
  127909. The grant priv_type (i.e. select,insert,update OR all privileges)
  127910. .TP
  127911. .B database
  127912. The database priv_level (i.e. db.tbl OR db.*)
  127913. .TP
  127914. .B user
  127915. The user to apply the grant to
  127916. .TP
  127917. .B host
  127918. The network/host that the grant should apply to
  127919. .TP
  127920. .B grant_option
  127921. Adds the WITH GRANT OPTION to the defined grant. Default is \fBFalse\fP
  127922. .TP
  127923. .B escape
  127924. Defines if the database value gets escaped or not. Default is \fBTrue\fP
  127925. .TP
  127926. .B revoke_first
  127927. By default, MySQL will not do anything if you issue a command to grant
  127928. privileges that are more restrictive than what\(aqs already in place. This
  127929. effectively means that you cannot downgrade permissions without first
  127930. revoking permissions applied to a db.table/user pair first.
  127931. .sp
  127932. To have Salt forcibly revoke perms before applying a new grant, enable
  127933. the \(aqrevoke_first options.
  127934. .sp
  127935. WARNING: This will \fIremove\fP permissions for a database before attempting
  127936. to apply new permissions. There is no guarantee that new permissions
  127937. will be applied correctly which can leave your database security in an
  127938. unknown and potentially dangerous state.
  127939. Use with caution!
  127940. .sp
  127941. Default is \fBFalse\fP
  127942. .TP
  127943. .B ssl_option
  127944. Adds the specified ssl options for the connecting user as requirements for
  127945. this grant. Value is a list of single\-element dicts corresponding to the
  127946. list of ssl options to use.
  127947. .sp
  127948. Possible key/value pairings for the dicts in the value:
  127949. .INDENT 7.0
  127950. .INDENT 3.5
  127951. .sp
  127952. .nf
  127953. .ft C
  127954. \- SSL: True
  127955. \- X509: True
  127956. \- SUBJECT: <subject>
  127957. \- ISSUER: <issuer>
  127958. \- CIPHER: <cipher>
  127959. .ft P
  127960. .fi
  127961. .UNINDENT
  127962. .UNINDENT
  127963. .sp
  127964. The non\-boolean ssl options take a string as their values, which should
  127965. be an appropriate value as specified by the MySQL documentation for these
  127966. options.
  127967. .sp
  127968. Default is \fBFalse\fP (no ssl options will be used)
  127969. .UNINDENT
  127970. .UNINDENT
  127971. .SS salt.states.neutron_network
  127972. .SS Management of OpenStack Neutron Networks
  127973. .sp
  127974. New in version 2018.3.0.
  127975. .INDENT 0.0
  127976. .TP
  127977. .B depends
  127978. shade
  127979. .TP
  127980. .B configuration
  127981. see \fBsalt.modules.neutronng\fP for setup instructions
  127982. .UNINDENT
  127983. .sp
  127984. Example States
  127985. .INDENT 0.0
  127986. .INDENT 3.5
  127987. .sp
  127988. .nf
  127989. .ft C
  127990. create network:
  127991. neutron_network.present:
  127992. \- name: network1
  127993. delete network:
  127994. neutron_network.absent:
  127995. \- name: network1
  127996. create network with optional params:
  127997. neutron_network.present:
  127998. \- name: network1
  127999. \- vlan: 200
  128000. \- shared: False
  128001. \- external: False
  128002. \- project: project1
  128003. .ft P
  128004. .fi
  128005. .UNINDENT
  128006. .UNINDENT
  128007. .INDENT 0.0
  128008. .TP
  128009. .B salt.states.neutron_network.absent(name, auth=None, **kwargs)
  128010. Ensure a network does not exists
  128011. .INDENT 7.0
  128012. .TP
  128013. .B name
  128014. Name of the network
  128015. .UNINDENT
  128016. .UNINDENT
  128017. .INDENT 0.0
  128018. .TP
  128019. .B salt.states.neutron_network.present(name, auth=None, **kwargs)
  128020. Ensure a network exists and is up\-to\-date
  128021. .INDENT 7.0
  128022. .TP
  128023. .B name
  128024. Name of the network
  128025. .TP
  128026. .B provider
  128027. A dict of network provider options.
  128028. .TP
  128029. .B shared
  128030. Set the network as shared.
  128031. .TP
  128032. .B external
  128033. Whether this network is externally accessible.
  128034. .TP
  128035. .B admin_state_up
  128036. Set the network administrative state to up.
  128037. .TP
  128038. .B vlan
  128039. Vlan ID. Alias for provider
  128040. .INDENT 7.0
  128041. .IP \(bu 2
  128042. physical_network: provider
  128043. .IP \(bu 2
  128044. network_type: vlan
  128045. .IP \(bu 2
  128046. segmentation_id: (vlan id)
  128047. .UNINDENT
  128048. .UNINDENT
  128049. .UNINDENT
  128050. .SS salt.states.neutron_secgroup
  128051. .SS Management of OpenStack Neutron Security Groups
  128052. .sp
  128053. New in version 2018.3.0.
  128054. .INDENT 0.0
  128055. .TP
  128056. .B depends
  128057. shade
  128058. .TP
  128059. .B configuration
  128060. see \fBsalt.modules.neutronng\fP for setup instructions
  128061. .UNINDENT
  128062. .sp
  128063. Example States
  128064. .INDENT 0.0
  128065. .INDENT 3.5
  128066. .sp
  128067. .nf
  128068. .ft C
  128069. create security group;
  128070. neutron_secgroup.present:
  128071. \- name: security_group1
  128072. \- description: "Very Secure Security Group"
  128073. delete security group:
  128074. neutron_secgroup.absent:
  128075. \- name_or_id: security_group1
  128076. \- project_name: Project1
  128077. create security group with optional params:
  128078. neutron_secgroup.present:
  128079. \- name: security_group1
  128080. \- description: "Very Secure Security Group"
  128081. \- project_id: 1dcac318a83b4610b7a7f7ba01465548
  128082. create security group with optional params:
  128083. neutron_secgroup.present:
  128084. \- name: security_group1
  128085. \- description: "Very Secure Security Group"
  128086. \- project_name: Project1
  128087. .ft P
  128088. .fi
  128089. .UNINDENT
  128090. .UNINDENT
  128091. .INDENT 0.0
  128092. .TP
  128093. .B salt.states.neutron_secgroup.absent(name, auth=None, **kwargs)
  128094. Ensure a security group does not exist
  128095. .INDENT 7.0
  128096. .TP
  128097. .B name
  128098. Name of the security group
  128099. .UNINDENT
  128100. .UNINDENT
  128101. .INDENT 0.0
  128102. .TP
  128103. .B salt.states.neutron_secgroup.present(name, auth=None, **kwargs)
  128104. Ensure a security group exists.
  128105. .sp
  128106. You can supply either project_name or project_id.
  128107. .sp
  128108. Creating a default security group will not show up as a change;
  128109. it gets created through the lookup process.
  128110. .INDENT 7.0
  128111. .TP
  128112. .B name
  128113. Name of the security group
  128114. .TP
  128115. .B description
  128116. Description of the security group
  128117. .TP
  128118. .B project_name
  128119. Name of Project
  128120. .TP
  128121. .B project_id
  128122. ID of Project
  128123. .UNINDENT
  128124. .UNINDENT
  128125. .SS salt.states.neutron_secgroup_rule
  128126. .SS Management of OpenStack Neutron Security Group Rules
  128127. .sp
  128128. New in version 2018.3.0.
  128129. .INDENT 0.0
  128130. .TP
  128131. .B depends
  128132. shade
  128133. .TP
  128134. .B configuration
  128135. see \fBsalt.modules.neutronng\fP for setup instructions
  128136. .UNINDENT
  128137. .sp
  128138. Example States
  128139. .INDENT 0.0
  128140. .INDENT 3.5
  128141. .sp
  128142. .nf
  128143. .ft C
  128144. create security group rule:
  128145. neutron_secgroup_rule.present:
  128146. \- name: security_group1
  128147. \- project_name: Project1
  128148. \- protocol: icmp
  128149. delete security group:
  128150. neutron_secgroup_rule.absent:
  128151. \- name_or_id: security_group1
  128152. create security group with optional params:
  128153. neutron_secgroup_rule.present:
  128154. \- name: security_group1
  128155. \- description: "Very Secure Security Group"
  128156. \- project_id: 1dcac318a83b4610b7a7f7ba01465548
  128157. .ft P
  128158. .fi
  128159. .UNINDENT
  128160. .UNINDENT
  128161. .INDENT 0.0
  128162. .TP
  128163. .B salt.states.neutron_secgroup_rule.absent(name, auth=None, **kwargs)
  128164. Ensure a security group rule does not exist
  128165. .INDENT 7.0
  128166. .TP
  128167. .B name
  128168. name or id of the security group rule to delete
  128169. .TP
  128170. .B rule_id
  128171. uuid of the rule to delete
  128172. .TP
  128173. .B project_id
  128174. id of project to delete rule from
  128175. .UNINDENT
  128176. .UNINDENT
  128177. .INDENT 0.0
  128178. .TP
  128179. .B salt.states.neutron_secgroup_rule.present(name, auth=None, **kwargs)
  128180. Ensure a security group rule exists
  128181. .INDENT 7.0
  128182. .TP
  128183. .B defaults: port_range_min=None, port_range_max=None, protocol=None,
  128184. remote_ip_prefix=None, remote_group_id=None, direction=\(aqingress\(aq,
  128185. ethertype=\(aqIPv4\(aq, project_id=None
  128186. .TP
  128187. .B name
  128188. Name of the security group to associate with this rule
  128189. .TP
  128190. .B project_name
  128191. Name of the project associated with the security group
  128192. .TP
  128193. .B protocol
  128194. The protocol that is matched by the security group rule.
  128195. Valid values are None, tcp, udp, and icmp.
  128196. .UNINDENT
  128197. .UNINDENT
  128198. .SS salt.states.neutron_subnet
  128199. .SS Management of OpenStack Neutron Subnets
  128200. .sp
  128201. New in version 2018.3.0.
  128202. .INDENT 0.0
  128203. .TP
  128204. .B depends
  128205. shade
  128206. .TP
  128207. .B configuration
  128208. see \fBsalt.modules.neutronng\fP for setup instructions
  128209. .UNINDENT
  128210. .sp
  128211. Example States
  128212. .INDENT 0.0
  128213. .INDENT 3.5
  128214. .sp
  128215. .nf
  128216. .ft C
  128217. create subnet:
  128218. neutron_subnet.present:
  128219. \- name: subnet1
  128220. \- network_name_or_id: network1
  128221. \- cidr: 192.168.199.0/24
  128222. delete subnet:
  128223. neutron_subnet.absent:
  128224. \- name: subnet2
  128225. create subnet with optional params:
  128226. neutron_subnet.present:
  128227. \- name: subnet1
  128228. \- network_name_or_id: network1
  128229. \- enable_dhcp: True
  128230. \- cidr: 192.168.199.0/24
  128231. \- allocation_pools:
  128232. \- start: 192.168.199.5
  128233. end: 192.168.199.250
  128234. \- host_routes:
  128235. \- destination: 192.168..0.0/24
  128236. nexthop: 192.168.0.1
  128237. \- gateway_ip: 192.168.199.1
  128238. \- dns_nameservers:
  128239. \- 8.8.8.8
  128240. \- 8.8.8.7
  128241. create ipv6 subnet:
  128242. neutron_subnet.present:
  128243. \- name: v6subnet1
  128244. \- network_name_or_id: network1
  128245. \- ip_version: 6
  128246. .ft P
  128247. .fi
  128248. .UNINDENT
  128249. .UNINDENT
  128250. .INDENT 0.0
  128251. .TP
  128252. .B salt.states.neutron_subnet.absent(name, auth=None)
  128253. Ensure a subnet does not exists
  128254. .INDENT 7.0
  128255. .TP
  128256. .B name
  128257. Name of the subnet
  128258. .UNINDENT
  128259. .UNINDENT
  128260. .INDENT 0.0
  128261. .TP
  128262. .B salt.states.neutron_subnet.present(name, auth=None, **kwargs)
  128263. Ensure a subnet exists and is up\-to\-date
  128264. .INDENT 7.0
  128265. .TP
  128266. .B name
  128267. Name of the subnet
  128268. .TP
  128269. .B network_name_or_id
  128270. The unique name or ID of the attached network.
  128271. If a non\-unique name is supplied, an exception is raised.
  128272. .TP
  128273. .B allocation_pools
  128274. A list of dictionaries of the start and end addresses
  128275. for the allocation pools
  128276. .TP
  128277. .B gateway_ip
  128278. The gateway IP address.
  128279. .TP
  128280. .B dns_nameservers
  128281. A list of DNS name servers for the subnet.
  128282. .TP
  128283. .B host_routes
  128284. A list of host route dictionaries for the subnet.
  128285. .TP
  128286. .B ipv6_ra_mode
  128287. IPv6 Router Advertisement mode.
  128288. Valid values are: ‘dhcpv6\-stateful’, ‘dhcpv6\-stateless’, or ‘slaac’.
  128289. .TP
  128290. .B ipv6_address_mode
  128291. IPv6 address mode.
  128292. Valid values are: ‘dhcpv6\-stateful’, ‘dhcpv6\-stateless’, or ‘slaac’.
  128293. .UNINDENT
  128294. .UNINDENT
  128295. .SS salt.states.nexus module
  128296. .sp
  128297. This state downloads artifacts from Nexus 3.x.
  128298. .sp
  128299. New in version 2018.3.0.
  128300. .INDENT 0.0
  128301. .TP
  128302. .B salt.states.nexus.downloaded(name, artifact, target_dir=u\(aq/tmp\(aq, target_file=None)
  128303. Ensures that the artifact from nexus exists at given location. If it doesn\(aqt exist, then
  128304. it will be downloaded. If it already exists then the checksum of existing file is checked
  128305. against checksum in nexus. If it is different then the step will fail.
  128306. .INDENT 7.0
  128307. .TP
  128308. .B artifact
  128309. Details of the artifact to be downloaded from nexus. Various options are:
  128310. .INDENT 7.0
  128311. .IP \(bu 2
  128312. nexus_url: URL of the nexus instance
  128313. .IP \(bu 2
  128314. repository: Repository in nexus
  128315. .IP \(bu 2
  128316. artifact_id: Artifact ID
  128317. .IP \(bu 2
  128318. group_id: Group ID
  128319. .IP \(bu 2
  128320. packaging: Packaging
  128321. .IP \(bu 2
  128322. classifier: Classifier
  128323. .IP \(bu 2
  128324. .INDENT 2.0
  128325. .TP
  128326. .B version: Version
  128327. One of the following:
  128328. \- Version to download
  128329. \- \fBlatest\fP \- Download the latest release of this artifact
  128330. \- \fBlatest_snapshot\fP \- Download the latest snapshot for this artifact
  128331. .UNINDENT
  128332. .IP \(bu 2
  128333. username: nexus username
  128334. .IP \(bu 2
  128335. password: nexus password
  128336. .UNINDENT
  128337. .TP
  128338. .B target_dir
  128339. Directory where the artifact should be downloaded. By default it is downloaded to /tmp directory.
  128340. .TP
  128341. .B target_file
  128342. Target file to download artifact to. By default file name is resolved by nexus.
  128343. .UNINDENT
  128344. .sp
  128345. An example to download an artifact to a specific file:
  128346. .INDENT 7.0
  128347. .INDENT 3.5
  128348. .sp
  128349. .nf
  128350. .ft C
  128351. jboss_module_downloaded:
  128352. nexus.downloaded:
  128353. \- artifact:
  128354. nexus_url: http://nexus.intranet.example.com/repository
  128355. repository: \(aqlibs\-release\-local\(aq
  128356. artifact_id: \(aqmodule\(aq
  128357. group_id: \(aqcom.company.module\(aq
  128358. packaging: \(aqjar\(aq
  128359. classifier: \(aqsources\(aq
  128360. version: \(aq1.0\(aq
  128361. \- target_file: /opt/jboss7/modules/com/company/lib/module.jar
  128362. .ft P
  128363. .fi
  128364. .UNINDENT
  128365. .UNINDENT
  128366. .sp
  128367. Download artifact to the folder (automatically resolves file name):
  128368. .INDENT 7.0
  128369. .INDENT 3.5
  128370. .sp
  128371. .nf
  128372. .ft C
  128373. maven_artifact_downloaded:
  128374. nexus.downloaded:
  128375. \- artifact:
  128376. nexus_url: http://nexus.intranet.example.com/repository
  128377. repository: \(aqmaven\-releases\(aq
  128378. artifact_id: \(aqmodule\(aq
  128379. group_id: \(aqcom.company.module\(aq
  128380. packaging: \(aqzip\(aq
  128381. classifier: \(aqdist\(aq
  128382. version: \(aq1.0\(aq
  128383. \- target_dir: /opt/maven/modules/com/company/release
  128384. .ft P
  128385. .fi
  128386. .UNINDENT
  128387. .UNINDENT
  128388. .UNINDENT
  128389. .SS salt.states.npm
  128390. .SS Installation of NPM Packages
  128391. .sp
  128392. These states manage the installed packages for node.js using the Node Package
  128393. Manager (npm). Note that npm must be installed for these states to be
  128394. available, so npm states should include a requisite to a pkg.installed state
  128395. for the package which provides npm (simply \fBnpm\fP in most cases). Example:
  128396. .INDENT 0.0
  128397. .INDENT 3.5
  128398. .sp
  128399. .nf
  128400. .ft C
  128401. npm:
  128402. pkg.installed
  128403. yaml:
  128404. npm.installed:
  128405. \- require:
  128406. \- pkg: npm
  128407. .ft P
  128408. .fi
  128409. .UNINDENT
  128410. .UNINDENT
  128411. .INDENT 0.0
  128412. .TP
  128413. .B salt.states.npm.bootstrap(name, user=None, silent=True)
  128414. Bootstraps a node.js application.
  128415. .sp
  128416. Will execute \(aqnpm install \-\-json\(aq on the specified directory.
  128417. .INDENT 7.0
  128418. .TP
  128419. .B user
  128420. The user to run NPM with
  128421. .sp
  128422. New in version 0.17.0.
  128423. .UNINDENT
  128424. .UNINDENT
  128425. .INDENT 0.0
  128426. .TP
  128427. .B salt.states.npm.cache_cleaned(name=None, user=None, force=False)
  128428. Ensure that the given package is not cached.
  128429. .sp
  128430. If no package is specified, this ensures the entire cache is cleared.
  128431. .INDENT 7.0
  128432. .TP
  128433. .B name
  128434. The name of the package to remove from the cache, or None for all packages
  128435. .TP
  128436. .B user
  128437. The user to run NPM with
  128438. .TP
  128439. .B force
  128440. Force cleaning of cache. Required for npm@5 and greater
  128441. .sp
  128442. New in version 2016.11.6.
  128443. .UNINDENT
  128444. .UNINDENT
  128445. .INDENT 0.0
  128446. .TP
  128447. .B salt.states.npm.installed(name, pkgs=None, dir=None, user=None, force_reinstall=False, registry=None, env=None)
  128448. Verify that the given package is installed and is at the correct version
  128449. (if specified).
  128450. .INDENT 7.0
  128451. .INDENT 3.5
  128452. .sp
  128453. .nf
  128454. .ft C
  128455. coffee\-script:
  128456. npm.installed:
  128457. \- user: someuser
  128458. coffee\-script@1.0.1:
  128459. npm.installed: []
  128460. .ft P
  128461. .fi
  128462. .UNINDENT
  128463. .UNINDENT
  128464. .INDENT 7.0
  128465. .TP
  128466. .B name
  128467. The package to install
  128468. .sp
  128469. Changed in version 2014.7.2: This parameter is no longer lowercased by salt so that
  128470. case\-sensitive NPM package names will work.
  128471. .TP
  128472. .B pkgs
  128473. A list of packages to install with a single npm invocation; specifying
  128474. this argument will ignore the \fBname\fP argument
  128475. .sp
  128476. New in version 2014.7.0.
  128477. .TP
  128478. .B dir
  128479. The target directory in which to install the package, or None for
  128480. global installation
  128481. .TP
  128482. .B user
  128483. The user to run NPM with
  128484. .sp
  128485. New in version 0.17.0.
  128486. .TP
  128487. .B registry
  128488. The NPM registry from which to install the package
  128489. .sp
  128490. New in version 2014.7.0.
  128491. .TP
  128492. .B env
  128493. A list of environment variables to be set prior to execution. The
  128494. format is the same as the \fBcmd.run\fP\&.
  128495. state function.
  128496. .sp
  128497. New in version 2014.7.0.
  128498. .TP
  128499. .B force_reinstall
  128500. Install the package even if it is already installed
  128501. .UNINDENT
  128502. .UNINDENT
  128503. .INDENT 0.0
  128504. .TP
  128505. .B salt.states.npm.removed(name, dir=None, user=None)
  128506. Verify that the given package is not installed.
  128507. .INDENT 7.0
  128508. .TP
  128509. .B dir
  128510. The target directory in which to install the package, or None for
  128511. global installation
  128512. .TP
  128513. .B user
  128514. The user to run NPM with
  128515. .sp
  128516. New in version 0.17.0.
  128517. .UNINDENT
  128518. .UNINDENT
  128519. .SS salt.states.nxos module
  128520. .sp
  128521. State module for Cisco NX\-OS Switch Proxy and Native minions
  128522. .sp
  128523. For documentation on setting up the nxos proxy minion look in the documentation
  128524. for \fBsalt.proxy.nxos\fP\&.
  128525. .INDENT 0.0
  128526. .TP
  128527. .B salt.states.nxos.config_absent(name)
  128528. Ensure a specific configuration line does not exist in the running config
  128529. .INDENT 7.0
  128530. .TP
  128531. .B name
  128532. config line to remove
  128533. .UNINDENT
  128534. .sp
  128535. Examples:
  128536. .INDENT 7.0
  128537. .INDENT 3.5
  128538. .sp
  128539. .nf
  128540. .ft C
  128541. add snmp group:
  128542. nxos.config_absent:
  128543. \- names:
  128544. \- snmp\-server community randoSNMPstringHERE group network\-operator
  128545. \- snmp\-server community AnotherRandomSNMPSTring group network\-admin
  128546. .ft P
  128547. .fi
  128548. .UNINDENT
  128549. .UNINDENT
  128550. .sp
  128551. \fBNOTE:\fP
  128552. .INDENT 7.0
  128553. .INDENT 3.5
  128554. For certain cases extra lines could be removed based on dependencies.
  128555. In this example, included after the example for config_present, the
  128556. ACLs would be removed because they depend on the existence of the
  128557. group.
  128558. .UNINDENT
  128559. .UNINDENT
  128560. .UNINDENT
  128561. .INDENT 0.0
  128562. .TP
  128563. .B salt.states.nxos.config_present(name)
  128564. Ensure a specific configuration line exists in the running config
  128565. .INDENT 7.0
  128566. .TP
  128567. .B name
  128568. config line to set
  128569. .UNINDENT
  128570. .sp
  128571. Examples:
  128572. .INDENT 7.0
  128573. .INDENT 3.5
  128574. .sp
  128575. .nf
  128576. .ft C
  128577. add snmp group:
  128578. nxos.config_present:
  128579. \- names:
  128580. \- snmp\-server community randoSNMPstringHERE group network\-operator
  128581. \- snmp\-server community AnotherRandomSNMPSTring group network\-admin
  128582. add snmp acl:
  128583. nxos.config_present:
  128584. \- names:
  128585. \- snmp\-server community randoSNMPstringHERE use\-acl snmp\-acl\-ro
  128586. \- snmp\-server community AnotherRandomSNMPSTring use\-acl snmp\-acl\-rw
  128587. .ft P
  128588. .fi
  128589. .UNINDENT
  128590. .UNINDENT
  128591. .UNINDENT
  128592. .INDENT 0.0
  128593. .TP
  128594. .B salt.states.nxos.replace(name, repl, full_match=False)
  128595. Replace all instances of a string or full line in the running config
  128596. .INDENT 7.0
  128597. .TP
  128598. .B name
  128599. String to replace
  128600. .TP
  128601. .B repl
  128602. The replacement text
  128603. .TP
  128604. .B full_match
  128605. Whether \fIname\fP will match the full line or only a subset of the line.
  128606. Defaults to False. When False, .* is added around \fIname\fP for matching
  128607. in the \fIshow run\fP config.
  128608. .UNINDENT
  128609. .sp
  128610. Examples:
  128611. .INDENT 7.0
  128612. .INDENT 3.5
  128613. .sp
  128614. .nf
  128615. .ft C
  128616. replace snmp string:
  128617. nxos.replace:
  128618. \- name: randoSNMPstringHERE
  128619. \- repl: NEWrandoSNMPstringHERE
  128620. replace full snmp string:
  128621. nxos.replace:
  128622. \- name: ^snmp\-server community randoSNMPstringHERE group network\-operator$
  128623. \- repl: snmp\-server community NEWrandoSNMPstringHERE group network\-operator
  128624. \- full_match: True
  128625. .ft P
  128626. .fi
  128627. .UNINDENT
  128628. .UNINDENT
  128629. .sp
  128630. \fBNOTE:\fP
  128631. .INDENT 7.0
  128632. .INDENT 3.5
  128633. The first example will replace the SNMP string on both the group and
  128634. the ACL, so you will not lose the ACL setting. Because the second is
  128635. an exact match of the line, when the group is removed, the ACL is
  128636. removed, but not readded, because it was not matched.
  128637. .UNINDENT
  128638. .UNINDENT
  128639. .UNINDENT
  128640. .INDENT 0.0
  128641. .TP
  128642. .B salt.states.nxos.user_absent(name)
  128643. Ensure a user is not present
  128644. .INDENT 7.0
  128645. .TP
  128646. .B name
  128647. username to remove if it exists
  128648. .UNINDENT
  128649. .sp
  128650. Examples:
  128651. .INDENT 7.0
  128652. .INDENT 3.5
  128653. .sp
  128654. .nf
  128655. .ft C
  128656. delete:
  128657. nxos.user_absent:
  128658. \- name: daniel
  128659. .ft P
  128660. .fi
  128661. .UNINDENT
  128662. .UNINDENT
  128663. .UNINDENT
  128664. .INDENT 0.0
  128665. .TP
  128666. .B salt.states.nxos.user_present(name, password=None, roles=None, encrypted=False, crypt_salt=None, algorithm=u\(aqsha256\(aq)
  128667. Ensure a user is present with the specified groups
  128668. .INDENT 7.0
  128669. .TP
  128670. .B name
  128671. Name of user
  128672. .TP
  128673. .B password
  128674. Encrypted or Plain Text password for user
  128675. .TP
  128676. .B roles
  128677. List of roles the user should be assigned. Any roles not in this list will be removed
  128678. .TP
  128679. .B encrypted
  128680. Whether the password is encrypted already or not. Defaults to False
  128681. .TP
  128682. .B crypt_salt
  128683. Salt to use when encrypting the password. Default is None (salt is
  128684. randomly generated for unhashed passwords)
  128685. .TP
  128686. .B algorithm
  128687. Algorithm to use for hashing password. Defaults to sha256.
  128688. Accepts md5, blowfish, sha256, sha512
  128689. .UNINDENT
  128690. .sp
  128691. Examples:
  128692. .INDENT 7.0
  128693. .INDENT 3.5
  128694. .sp
  128695. .nf
  128696. .ft C
  128697. create:
  128698. nxos.user_present:
  128699. \- name: daniel
  128700. \- roles:
  128701. \- vdc\-admin
  128702. set_password:
  128703. nxos.user_present:
  128704. \- name: daniel
  128705. \- password: admin
  128706. \- roles:
  128707. \- network\-admin
  128708. update:
  128709. nxos.user_present:
  128710. \- name: daniel
  128711. \- password: AiN9jaoP
  128712. \- roles:
  128713. \- network\-admin
  128714. \- vdc\-admin
  128715. .ft P
  128716. .fi
  128717. .UNINDENT
  128718. .UNINDENT
  128719. .UNINDENT
  128720. .SS salt.states.nxos_upgrade module
  128721. .sp
  128722. Manage NX\-OS System Image Upgrades.
  128723. .INDENT 0.0
  128724. .TP
  128725. .B maturity
  128726. new
  128727. .TP
  128728. .B platform
  128729. nxos
  128730. .TP
  128731. .B codeauthor
  128732. Michael G Wiebe
  128733. .UNINDENT
  128734. .sp
  128735. For documentation on setting up the nxos proxy minion look in the documentation
  128736. for \fBsalt.proxy.nxos\fP\&.
  128737. .INDENT 0.0
  128738. .TP
  128739. .B salt.states.nxos_upgrade.image_running(name, system_image, kickstart_image=None, issu=True, **kwargs)
  128740. Ensure the NX\-OS system image is running on the device.
  128741. .INDENT 7.0
  128742. .TP
  128743. .B name
  128744. Name of the salt state task
  128745. .TP
  128746. .B system_image
  128747. Name of the system image file on bootflash:
  128748. .TP
  128749. .B kickstart_image
  128750. Name of the kickstart image file on bootflash:
  128751. This is not needed if the system_image is a combined system and
  128752. kickstart image
  128753. Default: None
  128754. .TP
  128755. .B issu
  128756. Ensure the correct system is running on the device using an in service
  128757. software upgrade, or force a disruptive upgrade by setting the option
  128758. to False.
  128759. Default: False
  128760. .TP
  128761. .B timeout
  128762. Timeout in seconds for long running \(aqinstall all\(aq upgrade command.
  128763. Default: 900
  128764. .UNINDENT
  128765. .sp
  128766. Examples:
  128767. .INDENT 7.0
  128768. .INDENT 3.5
  128769. .sp
  128770. .nf
  128771. .ft C
  128772. upgrade_software_image_n9k:
  128773. nxos.image_running:
  128774. \- name: Ensure nxos.7.0.3.I7.5a.bin is running
  128775. \- system_image: nxos.7.0.3.I7.5a.bin
  128776. \- issu: True
  128777. upgrade_software_image_n7k:
  128778. nxos.image_running:
  128779. \- name: Ensure n7000\-s2\-kickstart.8.0.1.bin is running
  128780. \- kickstart_image: n7000\-s2\-kickstart.8.0.1.bin
  128781. \- system_image: n7000\-s2\-dk9.8.0.1.bin
  128782. \- issu: False
  128783. .ft P
  128784. .fi
  128785. .UNINDENT
  128786. .UNINDENT
  128787. .UNINDENT
  128788. .SS salt.states.openstack_config
  128789. .sp
  128790. Manage OpenStack configuration file settings.
  128791. .INDENT 0.0
  128792. .TP
  128793. .B maintainer
  128794. Jeffrey C. Ollie <\fI\%jeff@ocjtech.us\fP>
  128795. .TP
  128796. .B maturity
  128797. new
  128798. .TP
  128799. .B depends
  128800. .TP
  128801. .B platform
  128802. linux
  128803. .UNINDENT
  128804. .INDENT 0.0
  128805. .TP
  128806. .B salt.states.openstack_config.absent(name, filename, section, parameter=None)
  128807. Ensure a value is not set in an OpenStack configuration file.
  128808. .INDENT 7.0
  128809. .TP
  128810. .B filename
  128811. The full path to the configuration file
  128812. .TP
  128813. .B section
  128814. The section in which the parameter will be set
  128815. .TP
  128816. .B parameter (optional)
  128817. The parameter to change. If the parameter is not supplied, the name will be used as the parameter.
  128818. .UNINDENT
  128819. .UNINDENT
  128820. .INDENT 0.0
  128821. .TP
  128822. .B salt.states.openstack_config.present(name, filename, section, value, parameter=None)
  128823. Ensure a value is set in an OpenStack configuration file.
  128824. .INDENT 7.0
  128825. .TP
  128826. .B filename
  128827. The full path to the configuration file
  128828. .TP
  128829. .B section
  128830. The section in which the parameter will be set
  128831. .TP
  128832. .B parameter (optional)
  128833. The parameter to change. If the parameter is not supplied, the name will be used as the parameter.
  128834. .TP
  128835. .B value
  128836. The value to set
  128837. .UNINDENT
  128838. .UNINDENT
  128839. .SS salt.states.openvswitch_bridge module
  128840. .sp
  128841. Management of Open vSwitch bridges.
  128842. .INDENT 0.0
  128843. .TP
  128844. .B salt.states.openvswitch_bridge.absent(name)
  128845. Ensures that the named bridge does not exist, eventually deletes it.
  128846. .INDENT 7.0
  128847. .TP
  128848. .B Parameters
  128849. \fBname\fP \-\- The name of the bridge.
  128850. .UNINDENT
  128851. .UNINDENT
  128852. .INDENT 0.0
  128853. .TP
  128854. .B salt.states.openvswitch_bridge.present(name)
  128855. Ensures that the named bridge exists, eventually creates it.
  128856. .INDENT 7.0
  128857. .TP
  128858. .B Parameters
  128859. \fBname\fP \-\- The name of the bridge.
  128860. .UNINDENT
  128861. .UNINDENT
  128862. .SS salt.states.openvswitch_port module
  128863. .sp
  128864. Management of Open vSwitch ports.
  128865. .INDENT 0.0
  128866. .TP
  128867. .B salt.states.openvswitch_port.absent(name, bridge=None)
  128868. Ensures that the named port exists on bridge, eventually deletes it.
  128869. If bridge is not set, port is removed from whatever bridge contains it.
  128870. .INDENT 7.0
  128871. .TP
  128872. .B Parameters
  128873. .INDENT 7.0
  128874. .IP \(bu 2
  128875. \fBname\fP \-\- The name of the port.
  128876. .IP \(bu 2
  128877. \fBbridge\fP \-\- The name of the bridge.
  128878. .UNINDENT
  128879. .UNINDENT
  128880. .UNINDENT
  128881. .INDENT 0.0
  128882. .TP
  128883. .B salt.states.openvswitch_port.present(name, bridge, tunnel_type=None, id=None, remote=None, dst_port=None, internal=False)
  128884. Ensures that the named port exists on bridge, eventually creates it.
  128885. .INDENT 7.0
  128886. .TP
  128887. .B Parameters
  128888. .INDENT 7.0
  128889. .IP \(bu 2
  128890. \fBname\fP \-\- The name of the port.
  128891. .IP \(bu 2
  128892. \fBbridge\fP \-\- The name of the bridge.
  128893. .IP \(bu 2
  128894. \fBtunnel_type\fP \-\- Optional type of interface to create, currently supports: vlan, vxlan and gre.
  128895. .IP \(bu 2
  128896. \fBid\fP \-\- Optional tunnel\(aqs key.
  128897. .IP \(bu 2
  128898. \fBremote\fP \-\- Remote endpoint\(aqs IP address.
  128899. .IP \(bu 2
  128900. \fBdst_port\fP \-\- Port to use when creating tunnelport in the switch.
  128901. .IP \(bu 2
  128902. \fBinternal\fP \-\- Create an internal port if one does not exist
  128903. .UNINDENT
  128904. .UNINDENT
  128905. .UNINDENT
  128906. .SS salt.states.opsgenie
  128907. .SS Create/Close an alert in OpsGenie
  128908. .sp
  128909. New in version 2018.3.0.
  128910. .sp
  128911. This state is useful for creating or closing alerts in OpsGenie
  128912. during state runs.
  128913. .INDENT 0.0
  128914. .INDENT 3.5
  128915. .sp
  128916. .nf
  128917. .ft C
  128918. used_space:
  128919. disk.status:
  128920. \- name: /
  128921. \- maximum: 79%
  128922. \- minimum: 20%
  128923. opsgenie_create_action_sender:
  128924. opsgenie.create_alert:
  128925. \- api_key: XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX
  128926. \- reason: \(aqDisk capacity is out of designated range.\(aq
  128927. \- name: disk.status
  128928. \- onfail:
  128929. \- disk: used_space
  128930. opsgenie_close_action_sender:
  128931. opsgenie.close_alert:
  128932. \- api_key: XXXXXXXX\-XXXX\-XXXX\-XXXX\-XXXXXXXXXXXX
  128933. \- name: disk.status
  128934. \- require:
  128935. \- disk: used_space
  128936. .ft P
  128937. .fi
  128938. .UNINDENT
  128939. .UNINDENT
  128940. .INDENT 0.0
  128941. .TP
  128942. .B salt.states.opsgenie.close_alert(name=None, api_key=None, reason=u\(aqConditions are met.\(aq, action_type=u\(aqClose\(aq)
  128943. Close an alert in OpsGenie. It\(aqs a wrapper function for create_alert.
  128944. Example usage with Salt\(aqs requisites and other global state arguments
  128945. could be found above.
  128946. .sp
  128947. Required Parameters:
  128948. .INDENT 7.0
  128949. .TP
  128950. .B name
  128951. It will be used as alert\(aqs alias. If you want to use the close
  128952. functionality you must provide name field for both states like
  128953. in above case.
  128954. .UNINDENT
  128955. .sp
  128956. Optional Parameters:
  128957. .INDENT 7.0
  128958. .TP
  128959. .B api_key
  128960. It\(aqs the API Key you\(aqve copied while adding integration in OpsGenie.
  128961. .TP
  128962. .B reason
  128963. It will be used as alert\(aqs default message in OpsGenie.
  128964. .TP
  128965. .B action_type
  128966. OpsGenie supports the default values Create/Close for action_type.
  128967. You can customize this field with OpsGenie\(aqs custom actions for
  128968. other purposes like adding notes or acknowledging alerts.
  128969. .UNINDENT
  128970. .UNINDENT
  128971. .INDENT 0.0
  128972. .TP
  128973. .B salt.states.opsgenie.create_alert(name=None, api_key=None, reason=None, action_type=u\(aqCreate\(aq)
  128974. Create an alert in OpsGenie. Example usage with Salt\(aqs requisites and other
  128975. global state arguments could be found above.
  128976. .sp
  128977. Required Parameters:
  128978. .INDENT 7.0
  128979. .TP
  128980. .B api_key
  128981. It\(aqs the API Key you\(aqve copied while adding integration in OpsGenie.
  128982. .TP
  128983. .B reason
  128984. It will be used as alert\(aqs default message in OpsGenie.
  128985. .UNINDENT
  128986. .sp
  128987. Optional Parameters:
  128988. .INDENT 7.0
  128989. .TP
  128990. .B name
  128991. It will be used as alert\(aqs alias. If you want to use the close
  128992. functionality you must provide name field for both states like
  128993. in above case.
  128994. .TP
  128995. .B action_type
  128996. OpsGenie supports the default values Create/Close for action_type.
  128997. You can customize this field with OpsGenie\(aqs custom actions for
  128998. other purposes like adding notes or acknowledging alerts.
  128999. .UNINDENT
  129000. .UNINDENT
  129001. .SS salt.states.pagerduty
  129002. .SS Create an Event in PagerDuty
  129003. .sp
  129004. New in version 2014.1.0.
  129005. .sp
  129006. This state is useful for creating events on the PagerDuty service during state
  129007. runs.
  129008. .INDENT 0.0
  129009. .INDENT 3.5
  129010. .sp
  129011. .nf
  129012. .ft C
  129013. server\-warning\-message:
  129014. pagerduty.create_event:
  129015. \- name: \(aqThis is a server warning message\(aq
  129016. \- details: \(aqThis is a much more detailed message\(aq
  129017. \- service_key: 9abcd123456789efabcde362783cdbaf
  129018. \- profile: my\-pagerduty\-account
  129019. .ft P
  129020. .fi
  129021. .UNINDENT
  129022. .UNINDENT
  129023. .INDENT 0.0
  129024. .TP
  129025. .B salt.states.pagerduty.create_event(name, details, service_key, profile)
  129026. Create an event on the PagerDuty service
  129027. .INDENT 7.0
  129028. .INDENT 3.5
  129029. .sp
  129030. .nf
  129031. .ft C
  129032. server\-warning\-message:
  129033. pagerduty.create_event:
  129034. \- name: \(aqThis is a server warning message\(aq
  129035. \- details: \(aqThis is a much more detailed message\(aq
  129036. \- service_key: 9abcd123456789efabcde362783cdbaf
  129037. \- profile: my\-pagerduty\-account
  129038. .ft P
  129039. .fi
  129040. .UNINDENT
  129041. .UNINDENT
  129042. .sp
  129043. The following parameters are required:
  129044. .INDENT 7.0
  129045. .TP
  129046. .B name
  129047. This is a short description of the event.
  129048. .TP
  129049. .B details
  129050. This can be a more detailed description of the event.
  129051. .TP
  129052. .B service_key
  129053. This key can be found by using pagerduty.list_services.
  129054. .TP
  129055. .B profile
  129056. This refers to the configuration profile to use to connect to the
  129057. PagerDuty service.
  129058. .UNINDENT
  129059. .UNINDENT
  129060. .SS salt.states.pagerduty_escalation_policy
  129061. .sp
  129062. Manage PagerDuty escalation policies.
  129063. .sp
  129064. Schedules and users can be referenced by pagerduty ID, or by name, or by email address.
  129065. .sp
  129066. For example:
  129067. .INDENT 0.0
  129068. .INDENT 3.5
  129069. .sp
  129070. .nf
  129071. .ft C
  129072. ensure test escalation policy:
  129073. pagerduty_escalation_policy.present:
  129074. \- name: bruce test escalation policy
  129075. \- escalation_rules:
  129076. \- targets:
  129077. \- type: schedule
  129078. id: \(aqbruce test schedule level1\(aq
  129079. \- type: user
  129080. id: \(aqBruce Sherrod\(aq
  129081. escalation_delay_in_minutes: 15
  129082. \- targets:
  129083. \- type: schedule
  129084. id: \(aqbruce test schedule level2\(aq
  129085. escalation_delay_in_minutes: 15
  129086. \- targets:
  129087. \- type: user
  129088. id: \(aqBruce TestUser1\(aq
  129089. \- type: user
  129090. id: \(aqBruce TestUser2\(aq
  129091. \- type: user
  129092. id: \(aqBruce TestUser3\(aq
  129093. \- type: user
  129094. id: \(aqbruce+test4@lyft.com\(aq
  129095. escalation_delay_in_minutes: 15
  129096. .ft P
  129097. .fi
  129098. .UNINDENT
  129099. .UNINDENT
  129100. .INDENT 0.0
  129101. .TP
  129102. .B salt.states.pagerduty_escalation_policy.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129103. Ensure that a PagerDuty escalation policy does not exist.
  129104. Accepts all the arguments that pagerduty_escalation_policy.present accepts;
  129105. but ignores all arguments except the name.
  129106. .sp
  129107. Name can be the escalation policy id or the escalation policy name.
  129108. .UNINDENT
  129109. .INDENT 0.0
  129110. .TP
  129111. .B salt.states.pagerduty_escalation_policy.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129112. Ensure that a pagerduty escalation policy exists. Will create or update as needed.
  129113. .sp
  129114. This method accepts as args everything defined in
  129115. \fI\%https://developer.pagerduty.com/documentation/rest/escalation_policies/create\fP\&.
  129116. In addition, user and schedule id\(aqs will be translated from name (or email address)
  129117. into PagerDuty unique ids. For example:
  129118. .INDENT 7.0
  129119. .INDENT 3.5
  129120. .sp
  129121. .nf
  129122. .ft C
  129123. .ft P
  129124. .fi
  129125. .UNINDENT
  129126. .UNINDENT
  129127. .INDENT 7.0
  129128. .TP
  129129. .B pagerduty_escalation_policy.present:
  129130. .INDENT 7.0
  129131. .IP \(bu 2
  129132. name: bruce test escalation policy
  129133. .IP \(bu 2
  129134. .INDENT 2.0
  129135. .TP
  129136. .B escalation_rules:
  129137. .INDENT 7.0
  129138. .IP \(bu 2
  129139. .INDENT 2.0
  129140. .TP
  129141. .B targets:
  129142. .INDENT 7.0
  129143. .IP \(bu 2
  129144. type: schedule
  129145. id: \(aqbruce test schedule level1\(aq
  129146. .IP \(bu 2
  129147. type: user
  129148. id: \(aqBruce Sherrod\(aq
  129149. .UNINDENT
  129150. .UNINDENT
  129151. .UNINDENT
  129152. .UNINDENT
  129153. .UNINDENT
  129154. .UNINDENT
  129155. .sp
  129156. In this example, \(aqBruce Sherrod\(aq will be looked up and replaced with the
  129157. PagerDuty id (usually a 7 digit all\-caps string, e.g. PX6GQL7)
  129158. .UNINDENT
  129159. .SS salt.states.pagerduty_schedule
  129160. .sp
  129161. Manage PagerDuty schedules.
  129162. .sp
  129163. Example:
  129164. .INDENT 0.0
  129165. .INDENT 3.5
  129166. .sp
  129167. .nf
  129168. .ft C
  129169. ensure test schedule:
  129170. pagerduty_schedule.present:
  129171. \- name: \(aqbruce test schedule level1\(aq
  129172. \- schedule:
  129173. name: \(aqbruce test schedule level1\(aq
  129174. time_zone: \(aqPacific Time (US & Canada)\(aq
  129175. schedule_layers:
  129176. \- name: \(aqSchedule Layer 1\(aq
  129177. start: \(aq2015\-01\-01T00:00:00\(aq
  129178. users:
  129179. \- user:
  129180. \(aqid\(aq: \(aqBruce TestUser1\(aq
  129181. member_order: 1
  129182. \- user:
  129183. \(aqid\(aq: \(aqBruce TestUser2\(aq
  129184. member_order: 2
  129185. \- user:
  129186. \(aqid\(aq: \(aqbruce+test3@lyft.com\(aq
  129187. member_order: 3
  129188. \- user:
  129189. \(aqid\(aq: \(aqbruce+test4@lyft.com\(aq
  129190. member_order: 4
  129191. rotation_virtual_start: \(aq2015\-01\-01T00:00:00\(aq
  129192. priority: 1
  129193. rotation_turn_length_seconds: 604800
  129194. .ft P
  129195. .fi
  129196. .UNINDENT
  129197. .UNINDENT
  129198. .INDENT 0.0
  129199. .TP
  129200. .B salt.states.pagerduty_schedule.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129201. Ensure that a pagerduty schedule does not exist.
  129202. Name can be pagerduty schedule id or pagerduty schedule name.
  129203. .UNINDENT
  129204. .INDENT 0.0
  129205. .TP
  129206. .B salt.states.pagerduty_schedule.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129207. Ensure that a pagerduty schedule exists.
  129208. This method accepts as args everything defined in
  129209. \fI\%https://developer.pagerduty.com/documentation/rest/schedules/create\fP\&.
  129210. This means that most arguments are in a dict called "schedule."
  129211. .sp
  129212. User id\(aqs can be pagerduty id, or name, or email address.
  129213. .UNINDENT
  129214. .SS salt.states.pagerduty_service
  129215. .sp
  129216. Manage PagerDuty services
  129217. .sp
  129218. Escalation policies can be referenced by pagerduty ID or by namea.
  129219. .sp
  129220. For example:
  129221. .INDENT 0.0
  129222. .INDENT 3.5
  129223. .sp
  129224. .nf
  129225. .ft C
  129226. ensure test service
  129227. pagerduty_service.present:
  129228. \- name: \(aqmy service\(aq
  129229. \- escalation_policy_id: \(aqmy escalation policy\(aq
  129230. \- type: nagios
  129231. .ft P
  129232. .fi
  129233. .UNINDENT
  129234. .UNINDENT
  129235. .INDENT 0.0
  129236. .TP
  129237. .B salt.states.pagerduty_service.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129238. Ensure a pagerduty service does not exist.
  129239. Name can be the service name or pagerduty service id.
  129240. .UNINDENT
  129241. .INDENT 0.0
  129242. .TP
  129243. .B salt.states.pagerduty_service.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129244. Ensure pagerduty service exists.
  129245. This method accepts as arguments everything defined in
  129246. \fI\%https://developer.pagerduty.com/documentation/rest/services/create\fP
  129247. .sp
  129248. Note that many arguments are mutually exclusive, depending on the "type" argument.
  129249. .sp
  129250. Examples:
  129251. .INDENT 7.0
  129252. .INDENT 3.5
  129253. .sp
  129254. .nf
  129255. .ft C
  129256. # create a PagerDuty email service at test\-email@DOMAIN.pagerduty.com
  129257. ensure generic email service exists:
  129258. pagerduty_service.present:
  129259. \- name: my email service
  129260. \- service:
  129261. description: "email service controlled by salt"
  129262. escalation_policy_id: "my escalation policy"
  129263. type: "generic_email"
  129264. service_key: "test\-email"
  129265. .ft P
  129266. .fi
  129267. .UNINDENT
  129268. .UNINDENT
  129269. .INDENT 7.0
  129270. .INDENT 3.5
  129271. .sp
  129272. .nf
  129273. .ft C
  129274. # create a pagerduty service using cloudwatch integration
  129275. ensure my cloudwatch service exists:
  129276. pagerduty_service.present:
  129277. \- name: my cloudwatch service
  129278. \- service:
  129279. escalation_policy_id: "my escalation policy"
  129280. type: aws_cloudwatch
  129281. description: "my cloudwatch service controlled by salt"
  129282. .ft P
  129283. .fi
  129284. .UNINDENT
  129285. .UNINDENT
  129286. .UNINDENT
  129287. .SS salt.states.pagerduty_user
  129288. .sp
  129289. Manage PagerDuty users.
  129290. Example.INDENT 0.0
  129291. .INDENT 3.5
  129292. .sp
  129293. .nf
  129294. .ft C
  129295. .ft P
  129296. .fi
  129297. .UNINDENT
  129298. .UNINDENT
  129299. .INDENT 0.0
  129300. .TP
  129301. .B ensure bruce test user 1:
  129302. .INDENT 7.0
  129303. .TP
  129304. .B pagerduty.user_present:
  129305. .INDENT 7.0
  129306. .IP \(bu 2
  129307. name: \(aqBruce TestUser1\(aq
  129308. .IP \(bu 2
  129309. email: \fI\%bruce+test1@lyft.com\fP
  129310. .IP \(bu 2
  129311. requester_id: P1GV5NT
  129312. .UNINDENT
  129313. .UNINDENT
  129314. .UNINDENT
  129315. .INDENT 0.0
  129316. .TP
  129317. .B salt.states.pagerduty_user.absent(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129318. Ensure pagerduty user does not exist.
  129319. Name can be pagerduty id, email address, or user name.
  129320. .UNINDENT
  129321. .INDENT 0.0
  129322. .TP
  129323. .B salt.states.pagerduty_user.present(profile=u\(aqpagerduty\(aq, subdomain=None, api_key=None, **kwargs)
  129324. Ensure pagerduty user exists.
  129325. Arguments match those supported by
  129326. \fI\%https://developer.pagerduty.com/documentation/rest/users/create\fP\&.
  129327. .UNINDENT
  129328. .SS salt.states.panos
  129329. .sp
  129330. A state module to manage Palo Alto network devices.
  129331. .INDENT 0.0
  129332. .TP
  129333. .B codeauthor
  129334. \fBSpencer Ervin <spencer_ervin@hotmail.com>\fP
  129335. .TP
  129336. .B maturity
  129337. new
  129338. .TP
  129339. .B depends
  129340. none
  129341. .TP
  129342. .B platform
  129343. unix
  129344. .UNINDENT
  129345. .SS About
  129346. .sp
  129347. This state module was designed to handle connections to a Palo Alto based
  129348. firewall. This module relies on the Palo Alto proxy module to interface with the devices.
  129349. .sp
  129350. This state module is designed to give extreme flexibility in the control over XPATH values on the PANOS device. It
  129351. exposes the core XML API commands and allows state modules to chain complex XPATH commands.
  129352. .sp
  129353. Below is an example of how to construct a security rule and move to the top of the policy. This will take a config
  129354. lock to prevent execution during the operation, then remove the lock. After the XPATH has been deployed, it will
  129355. commit to the device.
  129356. .INDENT 0.0
  129357. .INDENT 3.5
  129358. .sp
  129359. .nf
  129360. .ft C
  129361. panos/takelock:
  129362. panos.add_config_lock
  129363. panos/service_tcp_22:
  129364. panos.set_config:
  129365. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/service
  129366. \- value: <entry name=\(aqtcp\-22\(aq><protocol><tcp><port>22</port></tcp></protocol></entry>
  129367. \- commit: False
  129368. panos/create_rule1:
  129369. panos.set_config:
  129370. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules
  129371. \- value: \(aq
  129372. <entry name="rule1">
  129373. <from><member>trust</member></from>
  129374. <to><member>untrust</member></to>
  129375. <source><member>10.0.0.1</member></source>
  129376. <destination><member>10.0.1.1</member></destination>
  129377. <service><member>tcp\-22</member></service>
  129378. <application><member>any</member></application>
  129379. <action>allow</action>
  129380. <disabled>no</disabled>
  129381. </entry>\(aq
  129382. \- commit: False
  129383. panos/moveruletop:
  129384. panos.move_config:
  129385. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129386. \- where: top
  129387. \- commit: False
  129388. panos/removelock:
  129389. panos.remove_config_lock
  129390. panos/commit:
  129391. panos.commit_config
  129392. .ft P
  129393. .fi
  129394. .UNINDENT
  129395. .UNINDENT
  129396. .SS Version Specific Configurations
  129397. .sp
  129398. Palo Alto devices running different versions will have different supported features and different command structures. In
  129399. order to account for this, the proxy module can be leveraged to check if the panos device is at a specific revision
  129400. level.
  129401. .sp
  129402. The proxy[\(aqpanos.is_required_version\(aq] method will check if a panos device is currently running a version equal or
  129403. greater than the passed version. For example, proxy[\(aqpanos.is_required_version\(aq](\(aq7.0.0\(aq) would match both 7.1.0 and
  129404. 8.0.0.
  129405. .INDENT 0.0
  129406. .INDENT 3.5
  129407. .sp
  129408. .nf
  129409. .ft C
  129410. {% if proxy[\(aqpanos.is_required_version\(aq](\(aq8.0.0\(aq) %}
  129411. panos/deviceconfig/system/motd\-and\-banner:
  129412. panos.set_config:
  129413. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/deviceconfig/system/motd\-and\-banner
  129414. \- value: |
  129415. <banner\-header>BANNER TEXT</banner\-header>
  129416. <banner\-header\-color>color2</banner\-header\-color>
  129417. <banner\-header\-text\-color>color18</banner\-header\-text\-color>
  129418. <banner\-header\-footer\-match>yes</banner\-header\-footer\-match>
  129419. \- commit: False
  129420. {% endif %}
  129421. .ft P
  129422. .fi
  129423. .UNINDENT
  129424. .UNINDENT
  129425. .sp
  129426. \fBSEE ALSO:\fP
  129427. .INDENT 0.0
  129428. .INDENT 3.5
  129429. \fBPalo Alto Proxy Module\fP
  129430. .UNINDENT
  129431. .UNINDENT
  129432. .INDENT 0.0
  129433. .TP
  129434. .B salt.states.panos.add_config_lock(name)
  129435. Prevent other users from changing configuration until the lock is released.
  129436. .sp
  129437. name: The name of the module function to execute.
  129438. .sp
  129439. SLS Example:
  129440. .INDENT 7.0
  129441. .INDENT 3.5
  129442. .sp
  129443. .nf
  129444. .ft C
  129445. panos/takelock:
  129446. panos.add_config_lock
  129447. .ft P
  129448. .fi
  129449. .UNINDENT
  129450. .UNINDENT
  129451. .UNINDENT
  129452. .INDENT 0.0
  129453. .TP
  129454. .B salt.states.panos.address_exists(name, addressname=None, vsys=1, ipnetmask=None, iprange=None, fqdn=None, description=None, commit=False)
  129455. Ensures that an address object exists in the configured state. If it does not exist or is not configured with the
  129456. specified attributes, it will be adjusted to match the specified values.
  129457. .sp
  129458. This module will only process a single address type (ip\-netmask, ip\-range, or fqdn). It will process the specified
  129459. value if the following order: ip\-netmask, ip\-range, fqdn. For proper execution, only specify a single address
  129460. type.
  129461. .sp
  129462. name: The name of the module function to execute.
  129463. .sp
  129464. addressname(str): The name of the address object. The name is case\-sensitive and can have up to 31 characters,
  129465. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  129466. Panorama, unique within its device group and any ancestor or descendant device groups.
  129467. .sp
  129468. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129469. .sp
  129470. ipnetmask(str): The IPv4 or IPv6 address or IP address range using the format ip_address/mask or ip_address where
  129471. the mask is the number of significant binary digits used for the network portion of the address. Ideally, for IPv6,
  129472. you specify only the network portion, not the host portion.
  129473. .sp
  129474. iprange(str): A range of addresses using the format ip_address–ip_address where both addresses can be IPv4 or both
  129475. can be IPv6.
  129476. .sp
  129477. fqdn(str): A fully qualified domain name format. The FQDN initially resolves at commit time. Entries are
  129478. subsequently refreshed when the firewall performs a check every 30 minutes; all changes in the IP address for the
  129479. entries are picked up at the refresh cycle.
  129480. .sp
  129481. description(str): A description for the policy (up to 255 characters).
  129482. .sp
  129483. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129484. .sp
  129485. SLS Example:
  129486. .INDENT 7.0
  129487. .INDENT 3.5
  129488. .sp
  129489. .nf
  129490. .ft C
  129491. panos/address/h\-10.10.10.10:
  129492. panos.address_exists:
  129493. \- addressname: h\-10.10.10.10
  129494. \- vsys: 1
  129495. \- ipnetmask: 10.10.10.10
  129496. \- commit: False
  129497. panos/address/10.0.0.1\-10.0.0.50:
  129498. panos.address_exists:
  129499. \- addressname: r\-10.0.0.1\-10.0.0.50
  129500. \- vsys: 1
  129501. \- iprange: 10.0.0.1\-10.0.0.50
  129502. \- commit: False
  129503. panos/address/foo.bar.com:
  129504. panos.address_exists:
  129505. \- addressname: foo.bar.com
  129506. \- vsys: 1
  129507. \- fqdn: foo.bar.com
  129508. \- description: My fqdn object
  129509. \- commit: False
  129510. .ft P
  129511. .fi
  129512. .UNINDENT
  129513. .UNINDENT
  129514. .UNINDENT
  129515. .INDENT 0.0
  129516. .TP
  129517. .B salt.states.panos.address_group_exists(name, groupname=None, vsys=1, members=None, description=None, commit=False)
  129518. Ensures that an address group object exists in the configured state. If it does not exist or is not configured with
  129519. the specified attributes, it will be adjusted to match the specified values.
  129520. .sp
  129521. This module will enforce group membership. If a group exists and contains members this state does not include,
  129522. those members will be removed and replaced with the specified members in the state.
  129523. .sp
  129524. name: The name of the module function to execute.
  129525. .sp
  129526. groupname(str): The name of the address group object. The name is case\-sensitive and can have up to 31 characters,
  129527. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  129528. Panorama, unique within its device group and any ancestor or descendant device groups.
  129529. .sp
  129530. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129531. .sp
  129532. members(str, list): The members of the address group. These must be valid address objects or address groups on the
  129533. system that already exist prior to the execution of this state.
  129534. .sp
  129535. description(str): A description for the policy (up to 255 characters).
  129536. .sp
  129537. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129538. .sp
  129539. SLS Example:
  129540. .INDENT 7.0
  129541. .INDENT 3.5
  129542. .sp
  129543. .nf
  129544. .ft C
  129545. panos/address\-group/my\-group:
  129546. panos.address_group_exists:
  129547. \- groupname: my\-group
  129548. \- vsys: 1
  129549. \- members:
  129550. \- my\-address\-object
  129551. \- my\-other\-address\-group
  129552. \- description: A group that needs to exist
  129553. \- commit: False
  129554. .ft P
  129555. .fi
  129556. .UNINDENT
  129557. .UNINDENT
  129558. .UNINDENT
  129559. .INDENT 0.0
  129560. .TP
  129561. .B salt.states.panos.clone_config(name, xpath=None, newname=None, commit=False)
  129562. Clone a specific XPATH and set it to a new name.
  129563. .sp
  129564. name: The name of the module function to execute.
  129565. .sp
  129566. xpath(str): The XPATH of the configuration API tree to clone.
  129567. .sp
  129568. newname(str): The new name of the XPATH clone.
  129569. .sp
  129570. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129571. .sp
  129572. SLS Example:
  129573. .INDENT 7.0
  129574. .INDENT 3.5
  129575. .sp
  129576. .nf
  129577. .ft C
  129578. panos/clonerule:
  129579. panos.clone_config:
  129580. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules&from=/config/devices/
  129581. entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129582. \- value: rule2
  129583. \- commit: True
  129584. .ft P
  129585. .fi
  129586. .UNINDENT
  129587. .UNINDENT
  129588. .UNINDENT
  129589. .INDENT 0.0
  129590. .TP
  129591. .B salt.states.panos.commit_config(name)
  129592. Commits the candidate configuration to the running configuration.
  129593. .sp
  129594. name: The name of the module function to execute.
  129595. .sp
  129596. SLS Example:
  129597. .INDENT 7.0
  129598. .INDENT 3.5
  129599. .sp
  129600. .nf
  129601. .ft C
  129602. panos/commit:
  129603. panos.commit_config
  129604. .ft P
  129605. .fi
  129606. .UNINDENT
  129607. .UNINDENT
  129608. .UNINDENT
  129609. .INDENT 0.0
  129610. .TP
  129611. .B salt.states.panos.delete_config(name, xpath=None, commit=False)
  129612. Deletes a Palo Alto XPATH to a specific value.
  129613. .sp
  129614. Use the xpath parameter to specify the location of the object to be deleted.
  129615. .sp
  129616. name: The name of the module function to execute.
  129617. .sp
  129618. xpath(str): The XPATH of the configuration API tree to control.
  129619. .sp
  129620. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129621. .sp
  129622. SLS Example:
  129623. .INDENT 7.0
  129624. .INDENT 3.5
  129625. .sp
  129626. .nf
  129627. .ft C
  129628. panos/deletegroup:
  129629. panos.delete_config:
  129630. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address\-group/entry[@name=\(aqtest\(aq]
  129631. \- commit: True
  129632. .ft P
  129633. .fi
  129634. .UNINDENT
  129635. .UNINDENT
  129636. .UNINDENT
  129637. .INDENT 0.0
  129638. .TP
  129639. .B salt.states.panos.download_software(name, version=None, synch=False, check=False)
  129640. Ensures that a software version is downloaded.
  129641. .sp
  129642. name: The name of the module function to execute.
  129643. .sp
  129644. version(str): The software version to check. If this version is not already downloaded, it will attempt to download
  129645. the file from Palo Alto.
  129646. .sp
  129647. synch(bool): If true, after downloading the file it will be synched to its peer.
  129648. .sp
  129649. check(bool): If true, the PANOS device will first attempt to pull the most recent software inventory list from Palo
  129650. Alto.
  129651. .sp
  129652. SLS Example:
  129653. .INDENT 7.0
  129654. .INDENT 3.5
  129655. .sp
  129656. .nf
  129657. .ft C
  129658. panos/version8.0.0:
  129659. panos.download_software:
  129660. \- version: 8.0.0
  129661. \- synch: False
  129662. \- check: True
  129663. .ft P
  129664. .fi
  129665. .UNINDENT
  129666. .UNINDENT
  129667. .UNINDENT
  129668. .INDENT 0.0
  129669. .TP
  129670. .B salt.states.panos.edit_config(name, xpath=None, value=None, commit=False)
  129671. Edits a Palo Alto XPATH to a specific value. This will always overwrite the existing value, even if it is not
  129672. changed.
  129673. .sp
  129674. You can replace an existing object hierarchy at a specified location in the configuration with a new value. Use
  129675. the xpath parameter to specify the location of the object, including the node to be replaced.
  129676. .sp
  129677. This is the recommended state to enforce configurations on a xpath.
  129678. .sp
  129679. name: The name of the module function to execute.
  129680. .sp
  129681. xpath(str): The XPATH of the configuration API tree to control.
  129682. .sp
  129683. value(str): The XML value to edit. This must be a child to the XPATH.
  129684. .sp
  129685. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129686. .sp
  129687. SLS Example:
  129688. .INDENT 7.0
  129689. .INDENT 3.5
  129690. .sp
  129691. .nf
  129692. .ft C
  129693. panos/addressgroup:
  129694. panos.edit_config:
  129695. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address\-group/entry[@name=\(aqtest\(aq]
  129696. \- value: <static><entry name=\(aqtest\(aq><member>abc</member><member>xyz</member></entry></static>
  129697. \- commit: True
  129698. .ft P
  129699. .fi
  129700. .UNINDENT
  129701. .UNINDENT
  129702. .UNINDENT
  129703. .INDENT 0.0
  129704. .TP
  129705. .B salt.states.panos.move_config(name, xpath=None, where=None, dst=None, commit=False)
  129706. Moves a XPATH value to a new location.
  129707. .sp
  129708. Use the xpath parameter to specify the location of the object to be moved, the where parameter to
  129709. specify type of move, and dst parameter to specify the destination path.
  129710. .sp
  129711. name: The name of the module function to execute.
  129712. .sp
  129713. xpath(str): The XPATH of the configuration API tree to move.
  129714. .sp
  129715. where(str): The type of move to execute. Valid options are after, before, top, bottom. The after and before
  129716. options will require the dst option to specify the destination of the action. The top action will move the
  129717. XPATH to the top of its structure. The botoom action will move the XPATH to the bottom of its structure.
  129718. .sp
  129719. dst(str): Optional. Specifies the destination to utilize for a move action. This is ignored for the top
  129720. or bottom action.
  129721. .sp
  129722. commit(bool): If true the firewall will commit the changes, if false do not commit changes. If the operation is
  129723. not successful, it will not commit.
  129724. .sp
  129725. SLS Example:
  129726. .INDENT 7.0
  129727. .INDENT 3.5
  129728. .sp
  129729. .nf
  129730. .ft C
  129731. panos/moveruletop:
  129732. panos.move_config:
  129733. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129734. \- where: top
  129735. \- commit: True
  129736. panos/moveruleafter:
  129737. panos.move_config:
  129738. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/rulebase/security/rules/entry[@name=\(aqrule1\(aq]
  129739. \- where: after
  129740. \- dst: rule2
  129741. \- commit: True
  129742. .ft P
  129743. .fi
  129744. .UNINDENT
  129745. .UNINDENT
  129746. .UNINDENT
  129747. .INDENT 0.0
  129748. .TP
  129749. .B salt.states.panos.remove_config_lock(name)
  129750. Release config lock previously held.
  129751. .sp
  129752. name: The name of the module function to execute.
  129753. .sp
  129754. SLS Example:
  129755. .INDENT 7.0
  129756. .INDENT 3.5
  129757. .sp
  129758. .nf
  129759. .ft C
  129760. panos/takelock:
  129761. panos.remove_config_lock
  129762. .ft P
  129763. .fi
  129764. .UNINDENT
  129765. .UNINDENT
  129766. .UNINDENT
  129767. .INDENT 0.0
  129768. .TP
  129769. .B salt.states.panos.rename_config(name, xpath=None, newname=None, commit=False)
  129770. Rename a Palo Alto XPATH to a specific value. This will always rename the value even if a change is not needed.
  129771. .sp
  129772. name: The name of the module function to execute.
  129773. .sp
  129774. xpath(str): The XPATH of the configuration API tree to control.
  129775. .sp
  129776. newname(str): The new name of the XPATH value.
  129777. .sp
  129778. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129779. .sp
  129780. SLS Example:
  129781. .INDENT 7.0
  129782. .INDENT 3.5
  129783. .sp
  129784. .nf
  129785. .ft C
  129786. panos/renamegroup:
  129787. panos.rename_config:
  129788. \- xpath: /config/devices/entry/vsys/entry[@name=\(aqvsys1\(aq]/address/entry[@name=\(aqold_address\(aq]
  129789. \- value: new_address
  129790. \- commit: True
  129791. .ft P
  129792. .fi
  129793. .UNINDENT
  129794. .UNINDENT
  129795. .UNINDENT
  129796. .INDENT 0.0
  129797. .TP
  129798. .B salt.states.panos.security_rule_exists(name, rulename=None, vsys=\(aq1\(aq, action=None, disabled=None, sourcezone=None, destinationzone=None, source=None, destination=None, application=None, service=None, description=None, logsetting=None, logstart=None, logend=None, negatesource=None, negatedestination=None, profilegroup=None, datafilter=None, fileblock=None, spyware=None, urlfilter=None, virus=None, vulnerability=None, wildfire=None, move=None, movetarget=None, commit=False)
  129799. Ensures that a security rule exists on the device. Also, ensure that all configurations are set appropriately.
  129800. .sp
  129801. This method will create the rule if it does not exist. If the rule does exist, it will ensure that the
  129802. configurations are set appropriately.
  129803. .sp
  129804. If the rule does not exist and is created, any value that is not provided will be provided as the default.
  129805. The action, to, from, source, destination, application, and service fields are mandatory and must be provided.
  129806. .sp
  129807. This will enforce the exact match of the rule. For example, if the rule is currently configured with the log\-end
  129808. option, but this option is not specified in the state method, it will be removed and reset to the system default.
  129809. .sp
  129810. It is strongly recommended to specify all options to ensure proper operation.
  129811. .sp
  129812. When defining the profile group settings, the device can only support either a profile group or individual settings.
  129813. If both are specified, the profile group will be preferred and the individual settings are ignored. If neither are
  129814. specified, the value will be set to system default of none.
  129815. .sp
  129816. name: The name of the module function to execute.
  129817. .sp
  129818. rulename(str): The name of the security rule. The name is case\-sensitive and can have up to 31 characters, which
  129819. can be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on Panorama,
  129820. unique within its device group and any ancestor or descendant device groups.
  129821. .sp
  129822. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129823. .sp
  129824. action(str): The action that the security rule will enforce. Valid options are: allow, deny, drop, reset\-client,
  129825. reset\-server, reset\-both.
  129826. .sp
  129827. disabled(bool): Controls if the rule is disabled. Set \(aqTrue\(aq to disable and \(aqFalse\(aq to enable.
  129828. .sp
  129829. sourcezone(str, list): The source zone(s). The value \(aqany\(aq will match all zones.
  129830. .sp
  129831. destinationzone(str, list): The destination zone(s). The value \(aqany\(aq will match all zones.
  129832. .sp
  129833. source(str, list): The source address(es). The value \(aqany\(aq will match all addresses.
  129834. .sp
  129835. destination(str, list): The destination address(es). The value \(aqany\(aq will match all addresses.
  129836. .sp
  129837. application(str, list): The application(s) matched. The value \(aqany\(aq will match all applications.
  129838. .sp
  129839. service(str, list): The service(s) matched. The value \(aqany\(aq will match all services. The value
  129840. \(aqapplication\-default\(aq will match based upon the application defined ports.
  129841. .sp
  129842. description(str): A description for the policy (up to 255 characters).
  129843. .sp
  129844. logsetting(str): The name of a valid log forwarding profile.
  129845. .sp
  129846. logstart(bool): Generates a traffic log entry for the start of a session (disabled by default).
  129847. .sp
  129848. logend(bool): Generates a traffic log entry for the end of a session (enabled by default).
  129849. .sp
  129850. negatesource(bool): Match all but the specified source addresses.
  129851. .sp
  129852. negatedestination(bool): Match all but the specified destination addresses.
  129853. .sp
  129854. profilegroup(str): A valid profile group name.
  129855. .sp
  129856. datafilter(str): A valid data filter profile name. Ignored with the profilegroup option set.
  129857. .sp
  129858. fileblock(str): A valid file blocking profile name. Ignored with the profilegroup option set.
  129859. .sp
  129860. spyware(str): A valid spyware profile name. Ignored with the profilegroup option set.
  129861. .sp
  129862. urlfilter(str): A valid URL filtering profile name. Ignored with the profilegroup option set.
  129863. .sp
  129864. virus(str): A valid virus profile name. Ignored with the profilegroup option set.
  129865. .sp
  129866. vulnerability(str): A valid vulnerability profile name. Ignored with the profilegroup option set.
  129867. .sp
  129868. wildfire(str): A valid vulnerability profile name. Ignored with the profilegroup option set.
  129869. .sp
  129870. move(str): An optional argument that ensure the rule is moved to a specific location. Valid options are \(aqtop\(aq,
  129871. \(aqbottom\(aq, \(aqbefore\(aq, or \(aqafter\(aq. The \(aqbefore\(aq and \(aqafter\(aq options require the use of the \(aqmovetarget\(aq argument
  129872. to define the location of the move request.
  129873. .sp
  129874. movetarget(str): An optional argument that defines the target of the move operation if the move argument is
  129875. set to \(aqbefore\(aq or \(aqafter\(aq.
  129876. .sp
  129877. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129878. .sp
  129879. SLS Example:
  129880. .INDENT 7.0
  129881. .INDENT 3.5
  129882. .sp
  129883. .nf
  129884. .ft C
  129885. panos/rulebase/security/rule01:
  129886. panos.security_rule_exists:
  129887. \- rulename: rule01
  129888. \- vsys: 1
  129889. \- action: allow
  129890. \- disabled: False
  129891. \- sourcezone: untrust
  129892. \- destinationzone: trust
  129893. \- source:
  129894. \- 10.10.10.0/24
  129895. \- 1.1.1.1
  129896. \- destination:
  129897. \- 2.2.2.2\-2.2.2.4
  129898. \- application:
  129899. \- any
  129900. \- service:
  129901. \- tcp\-25
  129902. \- description: My test security rule
  129903. \- logsetting: logprofile
  129904. \- logstart: False
  129905. \- logend: True
  129906. \- negatesource: False
  129907. \- negatedestination: False
  129908. \- profilegroup: myprofilegroup
  129909. \- move: top
  129910. \- commit: False
  129911. panos/rulebase/security/rule01:
  129912. panos.security_rule_exists:
  129913. \- rulename: rule01
  129914. \- vsys: 1
  129915. \- action: allow
  129916. \- disabled: False
  129917. \- sourcezone: untrust
  129918. \- destinationzone: trust
  129919. \- source:
  129920. \- 10.10.10.0/24
  129921. \- 1.1.1.1
  129922. \- destination:
  129923. \- 2.2.2.2\-2.2.2.4
  129924. \- application:
  129925. \- any
  129926. \- service:
  129927. \- tcp\-25
  129928. \- description: My test security rule
  129929. \- logsetting: logprofile
  129930. \- logstart: False
  129931. \- logend: False
  129932. \- datafilter: foobar
  129933. \- fileblock: foobar
  129934. \- spyware: foobar
  129935. \- urlfilter: foobar
  129936. \- virus: foobar
  129937. \- vulnerability: foobar
  129938. \- wildfire: foobar
  129939. \- move: after
  129940. \- movetarget: rule02
  129941. \- commit: False
  129942. .ft P
  129943. .fi
  129944. .UNINDENT
  129945. .UNINDENT
  129946. .UNINDENT
  129947. .INDENT 0.0
  129948. .TP
  129949. .B salt.states.panos.service_exists(name, servicename=None, vsys=1, protocol=None, port=None, description=None, commit=False)
  129950. Ensures that a service object exists in the configured state. If it does not exist or is not configured with the
  129951. specified attributes, it will be adjusted to match the specified values.
  129952. .sp
  129953. name: The name of the module function to execute.
  129954. .sp
  129955. servicename(str): The name of the security object. The name is case\-sensitive and can have up to 31 characters,
  129956. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  129957. Panorama, unique within its device group and any ancestor or descendant device groups.
  129958. .sp
  129959. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  129960. .sp
  129961. protocol(str): The protocol that is used by the service object. The only valid options are tcp and udp.
  129962. .sp
  129963. port(str): The port number that is used by the service object. This can be specified as a single integer or a
  129964. valid range of ports.
  129965. .sp
  129966. description(str): A description for the policy (up to 255 characters).
  129967. .sp
  129968. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  129969. .sp
  129970. SLS Example:
  129971. .INDENT 7.0
  129972. .INDENT 3.5
  129973. .sp
  129974. .nf
  129975. .ft C
  129976. panos/service/tcp\-80:
  129977. panos.service_exists:
  129978. \- servicename: tcp\-80
  129979. \- vsys: 1
  129980. \- protocol: tcp
  129981. \- port: 80
  129982. \- description: Hypertext Transfer Protocol
  129983. \- commit: False
  129984. panos/service/udp\-500\-550:
  129985. panos.service_exists:
  129986. \- servicename: udp\-500\-550
  129987. \- vsys: 3
  129988. \- protocol: udp
  129989. \- port: 500\-550
  129990. \- commit: False
  129991. .ft P
  129992. .fi
  129993. .UNINDENT
  129994. .UNINDENT
  129995. .UNINDENT
  129996. .INDENT 0.0
  129997. .TP
  129998. .B salt.states.panos.service_group_exists(name, groupname=None, vsys=1, members=None, description=None, commit=False)
  129999. Ensures that a service group object exists in the configured state. If it does not exist or is not configured with
  130000. the specified attributes, it will be adjusted to match the specified values.
  130001. .sp
  130002. This module will enforce group membership. If a group exists and contains members this state does not include,
  130003. those members will be removed and replaced with the specified members in the state.
  130004. .sp
  130005. name: The name of the module function to execute.
  130006. .sp
  130007. groupname(str): The name of the service group object. The name is case\-sensitive and can have up to 31 characters,
  130008. which an be letters, numbers, spaces, hyphens, and underscores. The name must be unique on a firewall and, on
  130009. Panorama, unique within its device group and any ancestor or descendant device groups.
  130010. .sp
  130011. vsys(str): The string representation of the VSYS ID. Defaults to VSYS 1.
  130012. .sp
  130013. members(str, list): The members of the service group. These must be valid service objects or service groups on the
  130014. system that already exist prior to the execution of this state.
  130015. .sp
  130016. description(str): A description for the policy (up to 255 characters).
  130017. .sp
  130018. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130019. .sp
  130020. SLS Example:
  130021. .INDENT 7.0
  130022. .INDENT 3.5
  130023. .sp
  130024. .nf
  130025. .ft C
  130026. panos/service\-group/my\-group:
  130027. panos.service_group_exists:
  130028. \- groupname: my\-group
  130029. \- vsys: 1
  130030. \- members:
  130031. \- tcp\-80
  130032. \- custom\-port\-group
  130033. \- description: A group that needs to exist
  130034. \- commit: False
  130035. .ft P
  130036. .fi
  130037. .UNINDENT
  130038. .UNINDENT
  130039. .UNINDENT
  130040. .INDENT 0.0
  130041. .TP
  130042. .B salt.states.panos.set_config(name, xpath=None, value=None, commit=False)
  130043. Sets a Palo Alto XPATH to a specific value. This will always overwrite the existing value, even if it is not
  130044. changed.
  130045. .sp
  130046. You can add or create a new object at a specified location in the configuration hierarchy. Use the xpath parameter
  130047. to specify the location of the object in the configuration
  130048. .sp
  130049. name: The name of the module function to execute.
  130050. .sp
  130051. xpath(str): The XPATH of the configuration API tree to control.
  130052. .sp
  130053. value(str): The XML value to set. This must be a child to the XPATH.
  130054. .sp
  130055. commit(bool): If true the firewall will commit the changes, if false do not commit changes.
  130056. .sp
  130057. SLS Example:
  130058. .INDENT 7.0
  130059. .INDENT 3.5
  130060. .sp
  130061. .nf
  130062. .ft C
  130063. panos/hostname:
  130064. panos.set_config:
  130065. \- xpath: /config/devices/entry[@name=\(aqlocalhost.localdomain\(aq]/deviceconfig/system
  130066. \- value: <hostname>foobar</hostname>
  130067. \- commit: True
  130068. .ft P
  130069. .fi
  130070. .UNINDENT
  130071. .UNINDENT
  130072. .UNINDENT
  130073. .SS salt.states.pecl
  130074. .SS Installation of PHP Extensions Using pecl
  130075. .sp
  130076. These states manage the installed pecl extensions. Note that php\-pear must be
  130077. installed for these states to be available, so pecl states should include a
  130078. requisite to a pkg.installed state for the package which provides pecl
  130079. (\fBphp\-pear\fP in most cases). Example:
  130080. .INDENT 0.0
  130081. .INDENT 3.5
  130082. .sp
  130083. .nf
  130084. .ft C
  130085. php\-pear:
  130086. pkg.installed
  130087. mongo:
  130088. pecl.installed:
  130089. \- require:
  130090. \- pkg: php\-pear
  130091. .ft P
  130092. .fi
  130093. .UNINDENT
  130094. .UNINDENT
  130095. .INDENT 0.0
  130096. .TP
  130097. .B salt.states.pecl.installed(name, version=None, defaults=False, force=False, preferred_state=u\(aqstable\(aq)
  130098. New in version 0.17.0.
  130099. .sp
  130100. Make sure that a pecl extension is installed.
  130101. .INDENT 7.0
  130102. .TP
  130103. .B name
  130104. The pecl extension name to install
  130105. .TP
  130106. .B version
  130107. The pecl extension version to install. This option may be
  130108. ignored to install the latest stable version.
  130109. .TP
  130110. .B defaults
  130111. Use default answers for extensions such as pecl_http which ask
  130112. questions before installation. Without this option, the pecl.installed
  130113. state will hang indefinitely when trying to install these extensions.
  130114. .TP
  130115. .B force
  130116. Whether to force the installed version or not
  130117. .TP
  130118. .B preferred_state
  130119. The pecl extension state to install
  130120. .UNINDENT
  130121. .UNINDENT
  130122. .INDENT 0.0
  130123. .TP
  130124. .B salt.states.pecl.removed(name)
  130125. Make sure that a pecl extension is not installed.
  130126. .INDENT 7.0
  130127. .TP
  130128. .B name
  130129. The pecl extension name to uninstall
  130130. .UNINDENT
  130131. .UNINDENT
  130132. .SS salt.states.pkgbuild
  130133. .sp
  130134. The pkgbuild state is the front of Salt package building backend. It
  130135. automatically builds DEB and RPM packages from specified sources
  130136. .sp
  130137. New in version 2015.8.0.
  130138. .INDENT 0.0
  130139. .INDENT 3.5
  130140. .sp
  130141. .nf
  130142. .ft C
  130143. salt_2015.5.2:
  130144. pkgbuild.built:
  130145. \- runas: thatch
  130146. \- results:
  130147. \- salt\-2015.5.2\-2.el7.centos.noarch.rpm
  130148. \- salt\-api\-2015.5.2\-2.el7.centos.noarch.rpm
  130149. \- salt\-cloud\-2015.5.2\-2.el7.centos.noarch.rpm
  130150. \- salt\-master\-2015.5.2\-2.el7.centos.noarch.rpm
  130151. \- salt\-minion\-2015.5.2\-2.el7.centos.noarch.rpm
  130152. \- salt\-ssh\-2015.5.2\-2.el7.centos.noarch.rpm
  130153. \- salt\-syndic\-2015.5.2\-2.el7.centos.noarch.rpm
  130154. \- dest_dir: /tmp/pkg
  130155. \- spec: salt://pkg/salt/spec/salt.spec
  130156. \- template: jinja
  130157. \- deps:
  130158. \- salt://pkg/salt/sources/required_dependency.rpm
  130159. \- tgt: epel\-7\-x86_64
  130160. \- sources:
  130161. \- salt://pkg/salt/sources/logrotate.salt
  130162. \- salt://pkg/salt/sources/README.fedora
  130163. \- salt://pkg/salt/sources/salt\-2015.5.2.tar.gz
  130164. \- salt://pkg/salt/sources/salt\-2015.5.2\-tests.patch
  130165. \- salt://pkg/salt/sources/salt\-api
  130166. \- salt://pkg/salt/sources/salt\-api.service
  130167. \- salt://pkg/salt/sources/salt\-master
  130168. \- salt://pkg/salt/sources/salt\-master.service
  130169. \- salt://pkg/salt/sources/salt\-minion
  130170. \- salt://pkg/salt/sources/salt\-minion.service
  130171. \- salt://pkg/salt/sources/saltpkg.sls
  130172. \- salt://pkg/salt/sources/salt\-syndic
  130173. \- salt://pkg/salt/sources/salt\-syndic.service
  130174. \- salt://pkg/salt/sources/SaltTesting\-2015.5.8.tar.gz
  130175. /tmp/pkg:
  130176. pkgbuild.repo
  130177. .ft P
  130178. .fi
  130179. .UNINDENT
  130180. .UNINDENT
  130181. .INDENT 0.0
  130182. .TP
  130183. .B salt.states.pkgbuild.built(name, runas, dest_dir, spec, sources, tgt, template=None, deps=None, env=None, results=None, force=False, saltenv=\(aqbase\(aq, log_dir=\(aq/var/log/salt/pkgbuild\(aq)
  130184. Ensure that the named package is built and exists in the named directory
  130185. .INDENT 7.0
  130186. .TP
  130187. .B name
  130188. The name to track the build, the name value is otherwise unused
  130189. .TP
  130190. .B runas
  130191. The user to run the build process as
  130192. .TP
  130193. .B dest_dir
  130194. The directory on the minion to place the built package(s)
  130195. .TP
  130196. .B spec
  130197. The location of the spec file (used for rpms)
  130198. .TP
  130199. .B sources
  130200. The list of package sources
  130201. .TP
  130202. .B tgt
  130203. The target platform to run the build on
  130204. .TP
  130205. .B template
  130206. Run the spec file through a templating engine
  130207. .sp
  130208. Changed in version 2015.8.2: This argument is now optional, allowing for no templating engine to
  130209. be used if none is desired.
  130210. .TP
  130211. .B deps
  130212. Packages required to ensure that the named package is built
  130213. can be hosted on either the salt master server or on an HTTP
  130214. or FTP server. Both HTTPS and HTTP are supported as well as
  130215. downloading directly from Amazon S3 compatible URLs with both
  130216. pre\-configured and automatic IAM credentials
  130217. .TP
  130218. .B env
  130219. A dictionary of environment variables to be set prior to execution.
  130220. Example:
  130221. .INDENT 7.0
  130222. .INDENT 3.5
  130223. .sp
  130224. .nf
  130225. .ft C
  130226. \- env:
  130227. DEB_BUILD_OPTIONS: \(aqnocheck\(aq
  130228. .ft P
  130229. .fi
  130230. .UNINDENT
  130231. .UNINDENT
  130232. .sp
  130233. \fBWARNING:\fP
  130234. .INDENT 7.0
  130235. .INDENT 3.5
  130236. The above illustrates a common PyYAML pitfall, that \fByes\fP,
  130237. \fBno\fP, \fBon\fP, \fBoff\fP, \fBtrue\fP, and \fBfalse\fP are all loaded as
  130238. boolean \fBTrue\fP and \fBFalse\fP values, and must be enclosed in
  130239. quotes to be used as strings. More info on this (and other) PyYAML
  130240. idiosyncrasies can be found here\&.
  130241. .UNINDENT
  130242. .UNINDENT
  130243. .TP
  130244. .B results
  130245. The names of the expected rpms that will be built
  130246. .TP
  130247. .B force
  130248. False
  130249. If \fBTrue\fP, packages will be built even if they already exist in the
  130250. \fBdest_dir\fP\&. This is useful when building a package for continuous or
  130251. nightly package builds.
  130252. .sp
  130253. New in version 2015.8.2.
  130254. .TP
  130255. .B saltenv
  130256. The saltenv to use for files downloaded from the salt filesever
  130257. .TP
  130258. .B log_dir
  130259. /var/log/salt/rpmbuild
  130260. Root directory for log files created from the build. Logs will be
  130261. organized by package name, version, OS release, and CPU architecture
  130262. under this directory.
  130263. .sp
  130264. New in version 2015.8.2.
  130265. .UNINDENT
  130266. .UNINDENT
  130267. .INDENT 0.0
  130268. .TP
  130269. .B salt.states.pkgbuild.repo(name, keyid=None, env=None, use_passphrase=False, gnupghome=\(aq/etc/salt/gpgkeys\(aq, runas=\(aqbuilder\(aq, timeout=15.0)
  130270. Make a package repository and optionally sign it and packages present
  130271. .sp
  130272. The name is directory to turn into a repo. This state is best used
  130273. with onchanges linked to your package building states.
  130274. .INDENT 7.0
  130275. .TP
  130276. .B name
  130277. The directory to find packages that will be in the repository
  130278. .TP
  130279. .B keyid
  130280. Changed in version 2016.3.0.
  130281. .sp
  130282. Optional Key ID to use in signing packages and repository.
  130283. Utilizes Public and Private keys associated with keyid which have
  130284. been loaded into the minion\(aqs Pillar data.
  130285. .sp
  130286. For example, contents from a Pillar data file with named Public
  130287. and Private keys as follows:
  130288. .INDENT 7.0
  130289. .INDENT 3.5
  130290. .sp
  130291. .nf
  130292. .ft C
  130293. gpg_pkg_priv_key: |
  130294. \-\-\-\-\-BEGIN PGP PRIVATE KEY BLOCK\-\-\-\-\-
  130295. Version: GnuPG v1
  130296. lQO+BFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b
  130297. w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc
  130298. .
  130299. .
  130300. Ebe+8JCQTwqSXPRTzXmy/b5WXDeM79CkLWvuGpXFor76D+ECMRPv/rawukEcNptn
  130301. R5OmgHqvydEnO4pWbn8JzQO9YX/Us0SMHBVzLC8eIi5ZIopzalvX
  130302. =JvW8
  130303. \-\-\-\-\-END PGP PRIVATE KEY BLOCK\-\-\-\-\-
  130304. gpg_pkg_priv_keyname: gpg_pkg_key.pem
  130305. gpg_pkg_pub_key: |
  130306. \-\-\-\-\-BEGIN PGP PUBLIC KEY BLOCK\-\-\-\-\-
  130307. Version: GnuPG v1
  130308. mQENBFciIfQBCADAPCtzx7I5Rl32escCMZsPzaEKWe7bIX1em4KCKkBoX47IG54b
  130309. w82PCE8Y1jF/9Uk2m3RKVWp3YcLlc7Ap3gj6VO4ysvVz28UbnhPxsIkOlf2cq8qc
  130310. .
  130311. .
  130312. bYP7t5iwJmQzRMyFInYRt77wkJBPCpJc9FPNebL9vlZcN4zv0KQta+4alcWivvoP
  130313. 4QIxE+/+trC6QRw2m2dHk6aAeq/J0Sc7ilZufwnNA71hf9SzRIwcFXMsLx4iLlki
  130314. inNqW9c=
  130315. =s1CX
  130316. \-\-\-\-\-END PGP PUBLIC KEY BLOCK\-\-\-\-\-
  130317. gpg_pkg_pub_keyname: gpg_pkg_key.pub
  130318. .ft P
  130319. .fi
  130320. .UNINDENT
  130321. .UNINDENT
  130322. .TP
  130323. .B env
  130324. Changed in version 2016.3.0.
  130325. .sp
  130326. A dictionary of environment variables to be utilized in creating the
  130327. repository. Example:
  130328. .INDENT 7.0
  130329. .INDENT 3.5
  130330. .sp
  130331. .nf
  130332. .ft C
  130333. \- env:
  130334. OPTIONS: \(aqask\-passphrase\(aq
  130335. .ft P
  130336. .fi
  130337. .UNINDENT
  130338. .UNINDENT
  130339. .sp
  130340. \fBWARNING:\fP
  130341. .INDENT 7.0
  130342. .INDENT 3.5
  130343. The above illustrates a common \fBPyYAML\fP pitfall, that \fByes\fP,
  130344. \fBno\fP, \fBon\fP, \fBoff\fP, \fBtrue\fP, and \fBfalse\fP are all loaded as
  130345. boolean \fBTrue\fP and \fBFalse\fP values, and must be enclosed in
  130346. quotes to be used as strings. More info on this (and other)
  130347. \fBPyYAML\fP idiosyncrasies can be found here\&.
  130348. .sp
  130349. Use of \fBOPTIONS\fP on some platforms, for example:
  130350. \fBask\-passphrase\fP, will require \fBgpg\-agent\fP or similar to cache
  130351. passphrases.
  130352. .UNINDENT
  130353. .UNINDENT
  130354. .sp
  130355. \fBNOTE:\fP
  130356. .INDENT 7.0
  130357. .INDENT 3.5
  130358. This parameter is not used for making \fByum\fP repositories.
  130359. .UNINDENT
  130360. .UNINDENT
  130361. .TP
  130362. .B use_passphrase
  130363. False
  130364. New in version 2016.3.0.
  130365. .sp
  130366. Use a passphrase with the signing key presented in \fBkeyid\fP\&.
  130367. Passphrase is received from Pillar data which could be passed on the
  130368. command line with \fBpillar\fP parameter. For example:
  130369. .INDENT 7.0
  130370. .INDENT 3.5
  130371. .sp
  130372. .nf
  130373. .ft C
  130374. pillar=\(aq{ "gpg_passphrase" : "my_passphrase" }\(aq
  130375. .ft P
  130376. .fi
  130377. .UNINDENT
  130378. .UNINDENT
  130379. .TP
  130380. .B gnupghome
  130381. /etc/salt/gpgkeys
  130382. New in version 2016.3.0.
  130383. .sp
  130384. Location where GPG related files are stored, used with \(aqkeyid\(aq
  130385. .TP
  130386. .B runas
  130387. builder
  130388. New in version 2016.3.0.
  130389. .sp
  130390. User to create the repository as, and optionally sign packages.
  130391. .sp
  130392. \fBNOTE:\fP
  130393. .INDENT 7.0
  130394. .INDENT 3.5
  130395. Ensure the user has correct permissions to any files and
  130396. directories which are to be utilized.
  130397. .UNINDENT
  130398. .UNINDENT
  130399. .TP
  130400. .B timeout
  130401. 15.0
  130402. New in version 2016.3.4.
  130403. .sp
  130404. Timeout in seconds to wait for the prompt for inputting the passphrase.
  130405. .UNINDENT
  130406. .UNINDENT
  130407. .SS salt.states.pkgng
  130408. .SS Manage package remote repo using FreeBSD pkgng
  130409. .sp
  130410. Salt can manage the URL pkgng pulls packages from.
  130411. ATM the state and module are small so use cases are
  130412. typically rather simple:
  130413. .INDENT 0.0
  130414. .INDENT 3.5
  130415. .sp
  130416. .nf
  130417. .ft C
  130418. pkgng_clients:
  130419. pkgng.update_packaging_site:
  130420. \- name: "http://192.168.0.2"
  130421. .ft P
  130422. .fi
  130423. .UNINDENT
  130424. .UNINDENT
  130425. .INDENT 0.0
  130426. .TP
  130427. .B salt.states.pkgng.update_packaging_site(name)
  130428. .UNINDENT
  130429. .SS salt.states.portage_config
  130430. .SS Management of Portage package configuration on Gentoo
  130431. .sp
  130432. A state module to manage Portage configuration on Gentoo
  130433. .INDENT 0.0
  130434. .INDENT 3.5
  130435. .sp
  130436. .nf
  130437. .ft C
  130438. salt:
  130439. portage_config.flags:
  130440. \- use:
  130441. \- openssl
  130442. .ft P
  130443. .fi
  130444. .UNINDENT
  130445. .UNINDENT
  130446. .INDENT 0.0
  130447. .TP
  130448. .B salt.states.portage_config.flags(name, use=None, accept_keywords=None, env=None, license=None, properties=None, unmask=False, mask=False)
  130449. Enforce the given flags on the given package or \fBDEPEND\fP atom.
  130450. .sp
  130451. \fBWARNING:\fP
  130452. .INDENT 7.0
  130453. .INDENT 3.5
  130454. In most cases, the affected package(s) need to be rebuilt in
  130455. order to apply the changes.
  130456. .UNINDENT
  130457. .UNINDENT
  130458. .INDENT 7.0
  130459. .TP
  130460. .B name
  130461. The name of the package or its DEPEND atom
  130462. .TP
  130463. .B use
  130464. A list of \fBUSE\fP flags
  130465. .TP
  130466. .B accept_keywords
  130467. A list of keywords to accept. \fB~ARCH\fP means current host arch, and will
  130468. be translated into a line without keywords
  130469. .TP
  130470. .B env
  130471. A list of environment files
  130472. .TP
  130473. .B license
  130474. A list of accepted licenses
  130475. .TP
  130476. .B properties
  130477. A list of additional properties
  130478. .TP
  130479. .B unmask
  130480. A boolean to unmask the package
  130481. .TP
  130482. .B mask
  130483. A boolean to mask the package
  130484. .UNINDENT
  130485. .UNINDENT
  130486. .SS salt.states.postgres_cluster module
  130487. .SS Management of PostgreSQL clusters
  130488. .sp
  130489. The postgres_cluster state module is used to manage PostgreSQL clusters.
  130490. Clusters can be set as either absent or present
  130491. .INDENT 0.0
  130492. .INDENT 3.5
  130493. .sp
  130494. .nf
  130495. .ft C
  130496. create cluster 9.3 main:
  130497. postgres_cluster.present:
  130498. \- name: \(aqmain\(aq
  130499. \- version: \(aq9.3\(aq
  130500. .ft P
  130501. .fi
  130502. .UNINDENT
  130503. .UNINDENT
  130504. .INDENT 0.0
  130505. .TP
  130506. .B salt.states.postgres_cluster.absent(version, name)
  130507. Ensure that the named cluster is absent
  130508. .INDENT 7.0
  130509. .TP
  130510. .B version
  130511. Version of the postgresql server of the cluster to remove
  130512. .TP
  130513. .B name
  130514. The name of the cluster to remove
  130515. .sp
  130516. New in version 2015.XX.
  130517. .UNINDENT
  130518. .UNINDENT
  130519. .INDENT 0.0
  130520. .TP
  130521. .B salt.states.postgres_cluster.present(version, name, port=None, encoding=None, locale=None, datadir=None, allow_group_access=None, data_checksums=None, wal_segsize=None)
  130522. Ensure that the named cluster is present with the specified properties.
  130523. For more information about all of these options see man pg_createcluster(1)
  130524. .INDENT 7.0
  130525. .TP
  130526. .B version
  130527. Version of the postgresql cluster
  130528. .TP
  130529. .B name
  130530. The name of the cluster
  130531. .TP
  130532. .B port
  130533. Cluster port
  130534. .TP
  130535. .B encoding
  130536. The character encoding scheme to be used in this database
  130537. .TP
  130538. .B locale
  130539. Locale with which to create cluster
  130540. .TP
  130541. .B datadir
  130542. Where the cluster is stored
  130543. .TP
  130544. .B allow_group_access
  130545. Allows users in the same group as the cluster owner to read all cluster files created by initdb
  130546. .TP
  130547. .B data_checksums
  130548. Use checksums on data pages
  130549. .TP
  130550. .B wal_segsize
  130551. Set the WAL segment size, in megabytes
  130552. .sp
  130553. New in version 2015.XX.
  130554. .UNINDENT
  130555. .UNINDENT
  130556. .SS salt.states.postgres_database
  130557. .SS Management of PostgreSQL databases
  130558. .sp
  130559. The postgres_database module is used to create and manage Postgres databases.
  130560. Databases can be set as either absent or present
  130561. .INDENT 0.0
  130562. .INDENT 3.5
  130563. .sp
  130564. .nf
  130565. .ft C
  130566. frank:
  130567. postgres_database.present
  130568. .ft P
  130569. .fi
  130570. .UNINDENT
  130571. .UNINDENT
  130572. .INDENT 0.0
  130573. .TP
  130574. .B salt.states.postgres_database.absent(name, user=None, maintenance_db=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130575. Ensure that the named database is absent
  130576. .INDENT 7.0
  130577. .TP
  130578. .B name
  130579. The name of the database to remove
  130580. .TP
  130581. .B db_user
  130582. database username if different from config or default
  130583. .TP
  130584. .B db_password
  130585. user password if any password for a specified user
  130586. .TP
  130587. .B db_host
  130588. Database host if different from config or default
  130589. .TP
  130590. .B db_port
  130591. Database port if different from config or default
  130592. .TP
  130593. .B user
  130594. System user all operations should be performed on behalf of
  130595. .sp
  130596. New in version 0.17.0.
  130597. .UNINDENT
  130598. .UNINDENT
  130599. .INDENT 0.0
  130600. .TP
  130601. .B salt.states.postgres_database.present(name, tablespace=None, encoding=None, lc_collate=None, lc_ctype=None, owner=None, owner_recurse=False, template=None, user=None, maintenance_db=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130602. Ensure that the named database is present with the specified properties.
  130603. For more information about all of these options see man createdb(1)
  130604. .INDENT 7.0
  130605. .TP
  130606. .B name
  130607. The name of the database to manage
  130608. .TP
  130609. .B tablespace
  130610. Default tablespace for the database
  130611. .TP
  130612. .B encoding
  130613. The character encoding scheme to be used in this database
  130614. .TP
  130615. .B lc_collate
  130616. The LC_COLLATE setting to be used in this database
  130617. .TP
  130618. .B lc_ctype
  130619. The LC_CTYPE setting to be used in this database
  130620. .TP
  130621. .B owner
  130622. The username of the database owner
  130623. .TP
  130624. .B owner_recurse
  130625. Recurse owner change to all relations in the database
  130626. .TP
  130627. .B template
  130628. The template database from which to build this database
  130629. .TP
  130630. .B user
  130631. System user all operations should be performed on behalf of
  130632. .TP
  130633. .B db_user
  130634. database username if different from config or default
  130635. .TP
  130636. .B db_password
  130637. user password if any password for a specified user
  130638. .TP
  130639. .B db_host
  130640. Database host if different from config or default
  130641. .TP
  130642. .B db_port
  130643. Database port if different from config or default
  130644. .sp
  130645. New in version 0.17.0.
  130646. .UNINDENT
  130647. .UNINDENT
  130648. .SS salt.states.postgres_initdb
  130649. .SS Initialization of PostgreSQL data directory
  130650. .sp
  130651. The postgres_initdb module is used to initialize the postgresql
  130652. data directory.
  130653. .sp
  130654. New in version 2016.3.0.
  130655. .INDENT 0.0
  130656. .INDENT 3.5
  130657. .sp
  130658. .nf
  130659. .ft C
  130660. pgsql\-data\-dir:
  130661. postgres_initdb.present:
  130662. \- name: /var/lib/pgsql/data
  130663. \- auth: password
  130664. \- user: postgres
  130665. \- password: strong_password
  130666. \- encoding: UTF8
  130667. \- locale: C
  130668. \- runas: postgres
  130669. \- allow_group_access: True
  130670. \- data_checksums: True
  130671. \- wal_segsize: 32
  130672. .ft P
  130673. .fi
  130674. .UNINDENT
  130675. .UNINDENT
  130676. .INDENT 0.0
  130677. .TP
  130678. .B salt.states.postgres_initdb.present(name, user=None, password=None, auth=u\(aqpassword\(aq, encoding=u\(aqUTF8\(aq, locale=None, runas=None, waldir=None, checksums=False)
  130679. Initialize the PostgreSQL data directory
  130680. .INDENT 7.0
  130681. .TP
  130682. .B name
  130683. The name of the directory to initialize
  130684. .TP
  130685. .B user
  130686. The database superuser name
  130687. .TP
  130688. .B password
  130689. The password to set for the postgres user
  130690. .TP
  130691. .B auth
  130692. The default authentication method for local connections
  130693. .TP
  130694. .B encoding
  130695. The default encoding for new databases
  130696. .TP
  130697. .B locale
  130698. The default locale for new databases
  130699. .TP
  130700. .B waldir
  130701. The transaction log (WAL) directory (default is to keep WAL
  130702. inside the data directory)
  130703. .sp
  130704. New in version 2019.2.0.
  130705. .TP
  130706. .B checksums
  130707. If True, the cluster will be created with data page checksums.
  130708. .sp
  130709. \fBNOTE:\fP
  130710. .INDENT 7.0
  130711. .INDENT 3.5
  130712. Data page checksums are supported since PostgreSQL 9.3.
  130713. .UNINDENT
  130714. .UNINDENT
  130715. .sp
  130716. New in version 2019.2.0.
  130717. .TP
  130718. .B runas
  130719. The system user the operation should be performed on behalf of
  130720. .UNINDENT
  130721. .UNINDENT
  130722. .SS salt.states.postgres_language
  130723. .SS Management of PostgreSQL languages
  130724. .sp
  130725. The postgres_language module is used to create and manage Postgres languages.
  130726. Languages can be set as either absent or present
  130727. .sp
  130728. New in version 2016.3.0.
  130729. .INDENT 0.0
  130730. .INDENT 3.5
  130731. .sp
  130732. .nf
  130733. .ft C
  130734. plpgsql:
  130735. postgres_language.present:
  130736. \- maintenance_db: testdb
  130737. .ft P
  130738. .fi
  130739. .UNINDENT
  130740. .UNINDENT
  130741. .INDENT 0.0
  130742. .INDENT 3.5
  130743. .sp
  130744. .nf
  130745. .ft C
  130746. plpgsql:
  130747. postgres_language.absent:
  130748. \- maintenance_db: testdb
  130749. .ft P
  130750. .fi
  130751. .UNINDENT
  130752. .UNINDENT
  130753. .INDENT 0.0
  130754. .TP
  130755. .B salt.states.postgres_language.absent(name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130756. Ensure that a named language is absent in the specified
  130757. database.
  130758. .INDENT 7.0
  130759. .TP
  130760. .B name
  130761. The name of the language to remove
  130762. .TP
  130763. .B maintenance_db
  130764. The name of the database in which the language is to be installed
  130765. .TP
  130766. .B user
  130767. System user all operations should be performed on behalf of
  130768. .TP
  130769. .B db_user
  130770. database username if different from config or default
  130771. .TP
  130772. .B db_password
  130773. user password if any password for a specified user
  130774. .TP
  130775. .B db_host
  130776. Database host if different from config or default
  130777. .TP
  130778. .B db_port
  130779. Database port if different from config or default
  130780. .UNINDENT
  130781. .UNINDENT
  130782. .INDENT 0.0
  130783. .TP
  130784. .B salt.states.postgres_language.present(name, maintenance_db, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130785. Ensure that a named language is present in the specified
  130786. database.
  130787. .INDENT 7.0
  130788. .TP
  130789. .B name
  130790. The name of the language to install
  130791. .TP
  130792. .B maintenance_db
  130793. The name of the database in which the language is to be installed
  130794. .TP
  130795. .B user
  130796. System user all operations should be performed on behalf of
  130797. .TP
  130798. .B db_user
  130799. database username if different from config or default
  130800. .TP
  130801. .B db_password
  130802. user password if any password for a specified user
  130803. .TP
  130804. .B db_host
  130805. Database host if different from config or default
  130806. .TP
  130807. .B db_port
  130808. Database port if different from config or default
  130809. .UNINDENT
  130810. .UNINDENT
  130811. .SS salt.states.postgres_privileges
  130812. .SS Management of PostgreSQL Privileges
  130813. .sp
  130814. The postgres_privileges module is used to manage Postgres privileges.
  130815. Privileges can be set as either absent or present.
  130816. .sp
  130817. Privileges can be set on the following database object types:
  130818. .INDENT 0.0
  130819. .IP \(bu 2
  130820. database
  130821. .IP \(bu 2
  130822. schema
  130823. .IP \(bu 2
  130824. tablespace
  130825. .IP \(bu 2
  130826. table
  130827. .IP \(bu 2
  130828. sequence
  130829. .IP \(bu 2
  130830. language
  130831. .IP \(bu 2
  130832. group
  130833. .UNINDENT
  130834. .sp
  130835. Setting the grant option is supported as well.
  130836. .sp
  130837. New in version 2016.3.0.
  130838. .INDENT 0.0
  130839. .INDENT 3.5
  130840. .sp
  130841. .nf
  130842. .ft C
  130843. baruwa:
  130844. postgres_privileges.present:
  130845. \- object_name: awl
  130846. \- object_type: table
  130847. \- privileges:
  130848. \- SELECT
  130849. \- INSERT
  130850. \- DELETE
  130851. \- grant_option: False
  130852. \- prepend: public
  130853. \- maintenance_db: testdb
  130854. .ft P
  130855. .fi
  130856. .UNINDENT
  130857. .UNINDENT
  130858. .INDENT 0.0
  130859. .INDENT 3.5
  130860. .sp
  130861. .nf
  130862. .ft C
  130863. andrew:
  130864. postgres_privileges.present:
  130865. \- object_name: admins
  130866. \- object_type: group
  130867. \- grant_option: False
  130868. \- maintenance_db: testdb
  130869. .ft P
  130870. .fi
  130871. .UNINDENT
  130872. .UNINDENT
  130873. .INDENT 0.0
  130874. .INDENT 3.5
  130875. .sp
  130876. .nf
  130877. .ft C
  130878. baruwa:
  130879. postgres_privileges.absent:
  130880. \- object_name: awl
  130881. \- object_type: table
  130882. \- privileges:
  130883. \- SELECT
  130884. \- INSERT
  130885. \- DELETE
  130886. \- prepend: public
  130887. \- maintenance_db: testdb
  130888. .ft P
  130889. .fi
  130890. .UNINDENT
  130891. .UNINDENT
  130892. .INDENT 0.0
  130893. .INDENT 3.5
  130894. .sp
  130895. .nf
  130896. .ft C
  130897. andrew:
  130898. postgres_privileges.absent:
  130899. \- object_name: admins
  130900. \- object_type: group
  130901. \- maintenance_db: testdb
  130902. .ft P
  130903. .fi
  130904. .UNINDENT
  130905. .UNINDENT
  130906. .INDENT 0.0
  130907. .TP
  130908. .B salt.states.postgres_privileges.absent(name, object_name, object_type, privileges=None, prepend=u\(aqpublic\(aq, maintenance_db=None, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  130909. Revoke the requested privilege(s) on the specificed object(s)
  130910. .INDENT 7.0
  130911. .TP
  130912. .B name
  130913. Name of the role whose privileges should be revoked
  130914. .TP
  130915. .B object_name
  130916. Name of the object on which the revoke is to be performed
  130917. .TP
  130918. .B object_type
  130919. The object type, which can be one of the following:
  130920. .INDENT 7.0
  130921. .IP \(bu 2
  130922. table
  130923. .IP \(bu 2
  130924. sequence
  130925. .IP \(bu 2
  130926. schema
  130927. .IP \(bu 2
  130928. tablespace
  130929. .IP \(bu 2
  130930. language
  130931. .IP \(bu 2
  130932. database
  130933. .IP \(bu 2
  130934. group
  130935. .IP \(bu 2
  130936. function
  130937. .UNINDENT
  130938. .sp
  130939. View permissions should specify \fIobject_type: table\fP\&.
  130940. .TP
  130941. .B privileges
  130942. Comma separated list of privileges to revoke, from the list below:
  130943. .INDENT 7.0
  130944. .IP \(bu 2
  130945. INSERT
  130946. .IP \(bu 2
  130947. CREATE
  130948. .IP \(bu 2
  130949. TRUNCATE
  130950. .IP \(bu 2
  130951. CONNECT
  130952. .IP \(bu 2
  130953. TRIGGER
  130954. .IP \(bu 2
  130955. SELECT
  130956. .IP \(bu 2
  130957. USAGE
  130958. .IP \(bu 2
  130959. TEMPORARY
  130960. .IP \(bu 2
  130961. UPDATE
  130962. .IP \(bu 2
  130963. EXECUTE
  130964. .IP \(bu 2
  130965. REFERENCES
  130966. .IP \(bu 2
  130967. DELETE
  130968. .IP \(bu 2
  130969. ALL
  130970. .UNINDENT
  130971. .INDENT 7.0
  130972. .TP
  130973. .B note
  130974. privileges should not be set when revoking group membership
  130975. .UNINDENT
  130976. .TP
  130977. .B prepend
  130978. Table and Sequence object types live under a schema so this should be
  130979. provided if the object is not under the default \fIpublic\fP schema
  130980. .TP
  130981. .B maintenance_db
  130982. The name of the database in which the language is to be installed
  130983. .TP
  130984. .B user
  130985. System user all operations should be performed on behalf of
  130986. .TP
  130987. .B db_user
  130988. database username if different from config or default
  130989. .TP
  130990. .B db_password
  130991. user password if any password for a specified user
  130992. .TP
  130993. .B db_host
  130994. Database host if different from config or default
  130995. .TP
  130996. .B db_port
  130997. Database port if different from config or default
  130998. .UNINDENT
  130999. .UNINDENT
  131000. .INDENT 0.0
  131001. .TP
  131002. .B salt.states.postgres_privileges.present(name, object_name, object_type, privileges=None, grant_option=None, prepend=u\(aqpublic\(aq, maintenance_db=None, user=None, db_password=None, db_host=None, db_port=None, db_user=None)
  131003. Grant the requested privilege(s) on the specified object to a role
  131004. .INDENT 7.0
  131005. .TP
  131006. .B name
  131007. Name of the role to which privileges should be granted
  131008. .TP
  131009. .B object_name
  131010. Name of the object on which the grant is to be performed.
  131011. \(aqALL\(aq may be used for objects of type \(aqtable\(aq or \(aqsequence\(aq.
  131012. .TP
  131013. .B object_type
  131014. The object type, which can be one of the following:
  131015. .INDENT 7.0
  131016. .IP \(bu 2
  131017. table
  131018. .IP \(bu 2
  131019. sequence
  131020. .IP \(bu 2
  131021. schema
  131022. .IP \(bu 2
  131023. tablespace
  131024. .IP \(bu 2
  131025. language
  131026. .IP \(bu 2
  131027. database
  131028. .IP \(bu 2
  131029. group
  131030. .IP \(bu 2
  131031. function
  131032. .UNINDENT
  131033. .sp
  131034. View permissions should specify \fIobject_type: table\fP\&.
  131035. .TP
  131036. .B privileges
  131037. List of privileges to grant, from the list below:
  131038. .INDENT 7.0
  131039. .IP \(bu 2
  131040. INSERT
  131041. .IP \(bu 2
  131042. CREATE
  131043. .IP \(bu 2
  131044. TRUNCATE
  131045. .IP \(bu 2
  131046. CONNECT
  131047. .IP \(bu 2
  131048. TRIGGER
  131049. .IP \(bu 2
  131050. SELECT
  131051. .IP \(bu 2
  131052. USAGE
  131053. .IP \(bu 2
  131054. TEMPORARY
  131055. .IP \(bu 2
  131056. UPDATE
  131057. .IP \(bu 2
  131058. EXECUTE
  131059. .IP \(bu 2
  131060. REFERENCES
  131061. .IP \(bu 2
  131062. DELETE
  131063. .IP \(bu 2
  131064. ALL
  131065. .UNINDENT
  131066. .INDENT 7.0
  131067. .TP
  131068. .B note
  131069. privileges should not be set when granting group membership
  131070. .UNINDENT
  131071. .TP
  131072. .B grant_option
  131073. If grant_option is set to True, the recipient of the privilege can
  131074. in turn grant it to others
  131075. .TP
  131076. .B prepend
  131077. Table and Sequence object types live under a schema so this should be
  131078. provided if the object is not under the default \fIpublic\fP schema
  131079. .TP
  131080. .B maintenance_db
  131081. The name of the database in which the language is to be installed
  131082. .TP
  131083. .B user
  131084. System user all operations should be performed on behalf of
  131085. .TP
  131086. .B db_user
  131087. database username if different from config or default
  131088. .TP
  131089. .B db_password
  131090. user password if any password for a specified user
  131091. .TP
  131092. .B db_host
  131093. Database host if different from config or default
  131094. .TP
  131095. .B db_port
  131096. Database port if different from config or default
  131097. .UNINDENT
  131098. .UNINDENT
  131099. .SS salt.states.postgres_schema
  131100. .SS Management of PostgreSQL schemas
  131101. .sp
  131102. The postgres_schemas module is used to create and manage Postgres schemas.
  131103. .INDENT 0.0
  131104. .INDENT 3.5
  131105. .sp
  131106. .nf
  131107. .ft C
  131108. public:
  131109. postgres_schema.present \(aqdbname\(aq \(aqname\(aq
  131110. .ft P
  131111. .fi
  131112. .UNINDENT
  131113. .UNINDENT
  131114. .INDENT 0.0
  131115. .TP
  131116. .B salt.states.postgres_schema.absent(dbname, name, user=None, db_user=None, db_password=None, db_host=None, db_port=None)
  131117. Ensure that the named schema is absent.
  131118. .INDENT 7.0
  131119. .TP
  131120. .B dbname
  131121. The database\(aqs name will work on
  131122. .TP
  131123. .B name
  131124. The name of the schema to remove
  131125. .TP
  131126. .B user
  131127. system user all operations should be performed on behalf of
  131128. .TP
  131129. .B db_user
  131130. database username if different from config or default
  131131. .TP
  131132. .B db_password
  131133. user password if any password for a specified user
  131134. .TP
  131135. .B db_host
  131136. Database host if different from config or default
  131137. .TP
  131138. .B db_port
  131139. Database port if different from config or default
  131140. .UNINDENT
  131141. .UNINDENT
  131142. .INDENT 0.0
  131143. .TP
  131144. .B salt.states.postgres_schema.present(dbname, name, owner=None, user=None, db_user=None, db_password=None, db_host=None, db_port=None)
  131145. Ensure that the named schema is present in the database.
  131146. .INDENT 7.0
  131147. .TP
  131148. .B dbname
  131149. The database\(aqs name will work on
  131150. .TP
  131151. .B name
  131152. The name of the schema to manage
  131153. .TP
  131154. .B user
  131155. system user all operations should be performed on behalf of
  131156. .TP
  131157. .B db_user
  131158. database username if different from config or default
  131159. .TP
  131160. .B db_password
  131161. user password if any password for a specified user
  131162. .TP
  131163. .B db_host
  131164. Database host if different from config or default
  131165. .TP
  131166. .B db_port
  131167. Database port if different from config or default
  131168. .UNINDENT
  131169. .UNINDENT
  131170. .SS salt.states.powerpath
  131171. .SS Powerpath configuration support
  131172. .sp
  131173. Allows configuration of EMC Powerpath. Currently
  131174. only addition/deletion of licenses is supported.
  131175. .INDENT 0.0
  131176. .INDENT 3.5
  131177. .sp
  131178. .nf
  131179. .ft C
  131180. key:
  131181. powerpath.license_present: []
  131182. .ft P
  131183. .fi
  131184. .UNINDENT
  131185. .UNINDENT
  131186. .INDENT 0.0
  131187. .TP
  131188. .B salt.states.powerpath.license_absent(name)
  131189. Ensures that the specified PowerPath license key is absent
  131190. on the host.
  131191. .INDENT 7.0
  131192. .TP
  131193. .B name
  131194. The license key to ensure is absent
  131195. .UNINDENT
  131196. .UNINDENT
  131197. .INDENT 0.0
  131198. .TP
  131199. .B salt.states.powerpath.license_present(name)
  131200. Ensures that the specified PowerPath license key is present
  131201. on the host.
  131202. .INDENT 7.0
  131203. .TP
  131204. .B name
  131205. The license key to ensure is present
  131206. .UNINDENT
  131207. .UNINDENT
  131208. .SS salt.states.process
  131209. .SS Process Management
  131210. .sp
  131211. Ensure a process matching a given pattern is absent.
  131212. .INDENT 0.0
  131213. .INDENT 3.5
  131214. .sp
  131215. .nf
  131216. .ft C
  131217. httpd\-absent:
  131218. process.absent:
  131219. \- name: apache2
  131220. .ft P
  131221. .fi
  131222. .UNINDENT
  131223. .UNINDENT
  131224. .INDENT 0.0
  131225. .TP
  131226. .B salt.states.process.absent(name, user=None, signal=None)
  131227. Ensures that the named command is not running.
  131228. .INDENT 7.0
  131229. .TP
  131230. .B name
  131231. The pattern to match.
  131232. .TP
  131233. .B user
  131234. The user to which the process belongs
  131235. .TP
  131236. .B signal
  131237. Signal to send to the process(es).
  131238. .UNINDENT
  131239. .UNINDENT
  131240. .SS salt.states.pushover
  131241. .SS Send a message to PushOver
  131242. .sp
  131243. This state is useful for sending messages to PushOver during state runs.
  131244. .sp
  131245. New in version 2015.5.0.
  131246. .INDENT 0.0
  131247. .INDENT 3.5
  131248. .sp
  131249. .nf
  131250. .ft C
  131251. pushover\-message:
  131252. pushover.post_message:
  131253. \- user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131254. \- token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131255. \- title: Salt Returner
  131256. \- device: phone
  131257. \- priority: \-1
  131258. \- expire: 3600
  131259. \- retry: 5
  131260. \- message: \(aqThis state was executed successfully.\(aq
  131261. .ft P
  131262. .fi
  131263. .UNINDENT
  131264. .UNINDENT
  131265. .sp
  131266. The api key can be specified in the master or minion configuration like below:
  131267. .. code\-block:: yaml
  131268. .INDENT 0.0
  131269. .INDENT 3.5
  131270. .INDENT 0.0
  131271. .TP
  131272. .B pushover:
  131273. token: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  131274. .UNINDENT
  131275. .UNINDENT
  131276. .UNINDENT
  131277. .INDENT 0.0
  131278. .TP
  131279. .B salt.states.pushover.post_message(name, user=None, device=None, message=None, title=None, priority=None, expire=None, retry=None, sound=None, api_version=1, token=None)
  131280. Send a message to a PushOver channel.
  131281. .INDENT 7.0
  131282. .INDENT 3.5
  131283. .sp
  131284. .nf
  131285. .ft C
  131286. pushover\-message:
  131287. pushover.post_message:
  131288. \- user: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131289. \- token: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  131290. \- title: Salt Returner
  131291. \- device: phone
  131292. \- priority: \-1
  131293. \- expire: 3600
  131294. \- retry: 5
  131295. .ft P
  131296. .fi
  131297. .UNINDENT
  131298. .UNINDENT
  131299. .sp
  131300. The following parameters are required:
  131301. .INDENT 7.0
  131302. .TP
  131303. .B name
  131304. The unique name for this event.
  131305. .TP
  131306. .B user
  131307. The user or group of users to send the message to. Must be ID of user, not name
  131308. or email address.
  131309. .TP
  131310. .B message
  131311. The message that is to be sent to the PushOver channel.
  131312. .UNINDENT
  131313. .sp
  131314. The following parameters are optional:
  131315. .INDENT 7.0
  131316. .TP
  131317. .B title
  131318. The title to use for the message.
  131319. .TP
  131320. .B device
  131321. The device for the user to send the message to.
  131322. .TP
  131323. .B priority
  131324. The priority for the message.
  131325. .TP
  131326. .B expire
  131327. The message should expire after specified amount of seconds.
  131328. .TP
  131329. .B retry
  131330. The message should be resent this many times.
  131331. .TP
  131332. .B token
  131333. The token for PushOver to use for authentication,
  131334. if not specified in the configuration options of master or minion.
  131335. .UNINDENT
  131336. .UNINDENT
  131337. .SS salt.states.pyenv
  131338. .SS Managing python installations with pyenv
  131339. .sp
  131340. This module is used to install and manage python installations with pyenv.
  131341. Different versions of python can be installed, and uninstalled. pyenv will
  131342. be installed automatically the first time it is needed and can be updated
  131343. later. This module will \fInot\fP automatically install packages which pyenv
  131344. will need to compile the versions of python.
  131345. .sp
  131346. If pyenv is run as the root user then it will be installed to /usr/local/pyenv,
  131347. otherwise it will be installed to the users ~/.pyenv directory. To make
  131348. pyenv available in the shell you may need to add the pyenv/shims and pyenv/bin
  131349. directories to the users PATH. If you are installing as root and want other
  131350. users to be able to access pyenv then you will need to add pyenv_ROOT to
  131351. their environment.
  131352. .sp
  131353. This is how a state configuration could look like:
  131354. .INDENT 0.0
  131355. .INDENT 3.5
  131356. .sp
  131357. .nf
  131358. .ft C
  131359. pyenv\-deps:
  131360. pkg.installed:
  131361. \- pkgs:
  131362. \- make
  131363. \- build\-essential
  131364. \- libssl\-dev
  131365. \- zlib1g\-dev
  131366. \- libbz2\-dev
  131367. \- libreadline\-dev
  131368. \- libsqlite3\-dev
  131369. \- wget
  131370. \- curl
  131371. \- llvm
  131372. python\-2.6:
  131373. pyenv.absent:
  131374. \- require:
  131375. \- pkg: pyenv\-deps
  131376. python\-2.7.6:
  131377. pyenv.installed:
  131378. \- default: True
  131379. \- require:
  131380. \- pkg: pyenv\-deps
  131381. .ft P
  131382. .fi
  131383. .UNINDENT
  131384. .UNINDENT
  131385. .sp
  131386. \fBNOTE:\fP
  131387. .INDENT 0.0
  131388. .INDENT 3.5
  131389. Git needs to be installed and available via PATH if pyenv is to be
  131390. installed automatically by the module.
  131391. .UNINDENT
  131392. .UNINDENT
  131393. .INDENT 0.0
  131394. .TP
  131395. .B salt.states.pyenv.absent(name, user=None)
  131396. Verify that the specified python is not installed with pyenv. pyenv
  131397. is installed if necessary.
  131398. .INDENT 7.0
  131399. .TP
  131400. .B name
  131401. The version of python to uninstall
  131402. .TP
  131403. .B user: None
  131404. The user to run pyenv as.
  131405. .sp
  131406. New in version 0.17.0.
  131407. .UNINDENT
  131408. .sp
  131409. New in version 0.16.0.
  131410. .UNINDENT
  131411. .INDENT 0.0
  131412. .TP
  131413. .B salt.states.pyenv.install_pyenv(name, user=None)
  131414. Install pyenv if not installed. Allows you to require pyenv be installed
  131415. prior to installing the plugins. Useful if you want to install pyenv
  131416. plugins via the git or file modules and need them installed before
  131417. installing any rubies.
  131418. .sp
  131419. Use the pyenv.root configuration option to set the path for pyenv if you
  131420. want a system wide install that is not in a user home dir.
  131421. .INDENT 7.0
  131422. .TP
  131423. .B user: None
  131424. The user to run pyenv as.
  131425. .UNINDENT
  131426. .UNINDENT
  131427. .INDENT 0.0
  131428. .TP
  131429. .B salt.states.pyenv.installed(name, default=False, user=None)
  131430. Verify that the specified python is installed with pyenv. pyenv is
  131431. installed if necessary.
  131432. .INDENT 7.0
  131433. .TP
  131434. .B name
  131435. The version of python to install
  131436. .TP
  131437. .B default
  131438. False
  131439. Whether to make this python the default.
  131440. .TP
  131441. .B user: None
  131442. The user to run pyenv as.
  131443. .sp
  131444. New in version 0.17.0.
  131445. .UNINDENT
  131446. .sp
  131447. New in version 0.16.0.
  131448. .UNINDENT
  131449. .SS salt.states.pyrax_queues
  131450. .SS Manage Rackspace Queues
  131451. .sp
  131452. New in version 2015.5.0.
  131453. .sp
  131454. Create and destroy Rackspace queues. Be aware that this interacts with
  131455. Rackspace\(aqs services, and so may incur charges.
  131456. .sp
  131457. This module uses \fBpyrax\fP, which can be installed via package, or pip.
  131458. This module is greatly inspired by boto_* modules from SaltStack code source.
  131459. .INDENT 0.0
  131460. .INDENT 3.5
  131461. .sp
  131462. .nf
  131463. .ft C
  131464. myqueue:
  131465. pyrax_queues.present:
  131466. \- provider: my\-pyrax
  131467. myqueue:
  131468. pyrax_queues.absent:
  131469. \- provider: my\-pyrax
  131470. .ft P
  131471. .fi
  131472. .UNINDENT
  131473. .UNINDENT
  131474. .INDENT 0.0
  131475. .TP
  131476. .B salt.states.pyrax_queues.absent(name, provider)
  131477. Ensure the named Rackspace queue is deleted.
  131478. .INDENT 7.0
  131479. .TP
  131480. .B name
  131481. Name of the Rackspace queue.
  131482. .TP
  131483. .B provider
  131484. Salt Cloud provider
  131485. .UNINDENT
  131486. .UNINDENT
  131487. .INDENT 0.0
  131488. .TP
  131489. .B salt.states.pyrax_queues.present(name, provider)
  131490. Ensure the RackSpace queue exists.
  131491. .INDENT 7.0
  131492. .TP
  131493. .B name
  131494. Name of the Rackspace queue.
  131495. .TP
  131496. .B provider
  131497. Salt Cloud Provider
  131498. .UNINDENT
  131499. .UNINDENT
  131500. .SS salt.states.quota
  131501. .SS Management of POSIX Quotas
  131502. .sp
  131503. The quota can be managed for the system:
  131504. .INDENT 0.0
  131505. .INDENT 3.5
  131506. .sp
  131507. .nf
  131508. .ft C
  131509. /:
  131510. quota.mode:
  131511. mode: off
  131512. quotatype: user
  131513. .ft P
  131514. .fi
  131515. .UNINDENT
  131516. .UNINDENT
  131517. .INDENT 0.0
  131518. .TP
  131519. .B salt.states.quota.mode(name, mode, quotatype)
  131520. Set the quota for the system
  131521. .INDENT 7.0
  131522. .TP
  131523. .B name
  131524. The filesystem to set the quota mode on
  131525. .TP
  131526. .B mode
  131527. Whether the quota system is on or off
  131528. .TP
  131529. .B quotatype
  131530. Must be \fBuser\fP or \fBgroup\fP
  131531. .UNINDENT
  131532. .UNINDENT
  131533. .SS salt.states.rabbitmq_plugin
  131534. .SS Manage RabbitMQ Plugins
  131535. .sp
  131536. New in version 2014.1.0.
  131537. .sp
  131538. Example:
  131539. .INDENT 0.0
  131540. .INDENT 3.5
  131541. .sp
  131542. .nf
  131543. .ft C
  131544. some_plugin:
  131545. rabbitmq_plugin.enabled: []
  131546. .ft P
  131547. .fi
  131548. .UNINDENT
  131549. .UNINDENT
  131550. .INDENT 0.0
  131551. .TP
  131552. .B salt.states.rabbitmq_plugin.disabled(name, runas=None)
  131553. Ensure the RabbitMQ plugin is disabled.
  131554. .INDENT 7.0
  131555. .TP
  131556. .B name
  131557. The name of the plugin
  131558. .TP
  131559. .B runas
  131560. The user to run the rabbitmq\-plugin command as
  131561. .UNINDENT
  131562. .UNINDENT
  131563. .INDENT 0.0
  131564. .TP
  131565. .B salt.states.rabbitmq_plugin.enabled(name, runas=None)
  131566. Ensure the RabbitMQ plugin is enabled.
  131567. .INDENT 7.0
  131568. .TP
  131569. .B name
  131570. The name of the plugin
  131571. .TP
  131572. .B runas
  131573. The user to run the rabbitmq\-plugin command as
  131574. .UNINDENT
  131575. .UNINDENT
  131576. .SS salt.states.rbac_solaris
  131577. .sp
  131578. Management of Solaris RBAC
  131579. .INDENT 0.0
  131580. .TP
  131581. .B maintainer
  131582. Jorge Schrauwen <\fI\%sjorge@blackdot.be\fP>
  131583. .TP
  131584. .B maturity
  131585. new
  131586. .TP
  131587. .B depends
  131588. rbac_solaris,solaris_user
  131589. .TP
  131590. .B platform
  131591. solaris,illumos
  131592. .UNINDENT
  131593. .sp
  131594. New in version 2016.11.0.
  131595. .INDENT 0.0
  131596. .INDENT 3.5
  131597. .sp
  131598. .nf
  131599. .ft C
  131600. sjorge:
  131601. rbac.managed:
  131602. \- roles:
  131603. \- netcfg
  131604. \- profiles:
  131605. \- System Power
  131606. \- authorizations:
  131607. \- solaris.audit.*
  131608. .ft P
  131609. .fi
  131610. .UNINDENT
  131611. .UNINDENT
  131612. .INDENT 0.0
  131613. .TP
  131614. .B salt.states.rbac_solaris.managed(name, roles=None, profiles=None, authorizations=None)
  131615. Manage RBAC properties for user
  131616. .INDENT 7.0
  131617. .TP
  131618. .B name
  131619. string
  131620. username
  131621. .TP
  131622. .B roles
  131623. list
  131624. list of roles for user
  131625. .TP
  131626. .B profiles
  131627. list
  131628. list of profiles for user
  131629. .TP
  131630. .B authorizations
  131631. list
  131632. list of authorizations for user
  131633. .UNINDENT
  131634. .sp
  131635. \fBWARNING:\fP
  131636. .INDENT 7.0
  131637. .INDENT 3.5
  131638. All existing roles, profiles and authorizations will be replaced!
  131639. An empty list will remove everything.
  131640. .sp
  131641. Set the property to \fINone\fP to not manage it.
  131642. .UNINDENT
  131643. .UNINDENT
  131644. .UNINDENT
  131645. .SS salt.states.rbenv
  131646. .SS Managing Ruby installations with rbenv
  131647. .sp
  131648. This module is used to install and manage ruby installations with rbenv and the
  131649. ruby\-build plugin. Different versions of ruby can be installed, and uninstalled.
  131650. Rbenv will be installed automatically the first time it is needed and can be
  131651. updated later. This module will \fInot\fP automatically install packages which rbenv
  131652. will need to compile the versions of ruby. If your version of ruby fails to
  131653. install, refer to the ruby\-build documentation to verify you are not missing any
  131654. dependencies: \fI\%https://github.com/rbenv/ruby\-build/wiki\fP
  131655. .sp
  131656. If rbenv is run as the root user then it will be installed to /usr/local/rbenv,
  131657. otherwise it will be installed to the users ~/.rbenv directory. To make
  131658. rbenv available in the shell you may need to add the rbenv/shims and rbenv/bin
  131659. directories to the users PATH. If you are installing as root and want other
  131660. users to be able to access rbenv then you will need to add RBENV_ROOT to
  131661. their environment.
  131662. .sp
  131663. The following state configuration demonstrates how to install Ruby 1.9.x
  131664. and 2.x using rbenv on Ubuntu/Debian:
  131665. .INDENT 0.0
  131666. .INDENT 3.5
  131667. .sp
  131668. .nf
  131669. .ft C
  131670. rbenv\-deps:
  131671. pkg.installed:
  131672. \- names:
  131673. \- bash
  131674. \- git
  131675. \- openssl
  131676. \- libssl\-dev
  131677. \- make
  131678. \- curl
  131679. \- autoconf
  131680. \- bison
  131681. \- build\-essential
  131682. \- libffi\-dev
  131683. \- libyaml\-dev
  131684. \- libreadline6\-dev
  131685. \- zlib1g\-dev
  131686. \- libncurses5\-dev
  131687. ruby\-1.9.3\-p429:
  131688. rbenv.absent:
  131689. \- require:
  131690. \- pkg: rbenv\-deps
  131691. ruby\-2.0.0\-p598:
  131692. rbenv.installed:
  131693. \- default: True
  131694. \- require:
  131695. \- pkg: rbenv\-deps
  131696. .ft P
  131697. .fi
  131698. .UNINDENT
  131699. .UNINDENT
  131700. .INDENT 0.0
  131701. .TP
  131702. .B salt.states.rbenv.absent(name, user=None)
  131703. Verify that the specified ruby is not installed with rbenv. Rbenv
  131704. is installed if necessary.
  131705. .INDENT 7.0
  131706. .TP
  131707. .B name
  131708. The version of ruby to uninstall
  131709. .TP
  131710. .B user: None
  131711. The user to run rbenv as.
  131712. .sp
  131713. New in version 0.17.0.
  131714. .UNINDENT
  131715. .sp
  131716. New in version 0.16.0.
  131717. .UNINDENT
  131718. .INDENT 0.0
  131719. .TP
  131720. .B salt.states.rbenv.install_rbenv(name, user=None)
  131721. Install rbenv if not installed. Allows you to require rbenv be installed
  131722. prior to installing the plugins. Useful if you want to install rbenv
  131723. plugins via the git or file modules and need them installed before
  131724. installing any rubies.
  131725. .sp
  131726. Use the rbenv.root configuration option to set the path for rbenv if you
  131727. want a system wide install that is not in a user home dir.
  131728. .INDENT 7.0
  131729. .TP
  131730. .B user: None
  131731. The user to run rbenv as.
  131732. .UNINDENT
  131733. .UNINDENT
  131734. .INDENT 0.0
  131735. .TP
  131736. .B salt.states.rbenv.installed(name, default=False, user=None)
  131737. Verify that the specified ruby is installed with rbenv. Rbenv is
  131738. installed if necessary.
  131739. .INDENT 7.0
  131740. .TP
  131741. .B name
  131742. The version of ruby to install
  131743. .TP
  131744. .B default
  131745. False
  131746. Whether to make this ruby the default.
  131747. .TP
  131748. .B user: None
  131749. The user to run rbenv as.
  131750. .sp
  131751. New in version 0.17.0.
  131752. .UNINDENT
  131753. .sp
  131754. New in version 0.16.0.
  131755. .UNINDENT
  131756. .SS salt.states.rdp
  131757. .sp
  131758. Manage RDP Service on Windows servers
  131759. .INDENT 0.0
  131760. .TP
  131761. .B salt.states.rdp.disabled(name)
  131762. Disable the RDP service
  131763. .UNINDENT
  131764. .INDENT 0.0
  131765. .TP
  131766. .B salt.states.rdp.enabled(name)
  131767. Enable the RDP service and make sure access to the RDP
  131768. port is allowed in the firewall configuration
  131769. .UNINDENT
  131770. .SS salt.states.redismod
  131771. .SS Management of Redis server
  131772. .sp
  131773. New in version 2014.7.0.
  131774. .INDENT 0.0
  131775. .TP
  131776. .B depends
  131777. .INDENT 7.0
  131778. .IP \(bu 2
  131779. redis Python module
  131780. .UNINDENT
  131781. .TP
  131782. .B configuration
  131783. See \fBsalt.modules.redis\fP for setup instructions.
  131784. .UNINDENT
  131785. .INDENT 0.0
  131786. .INDENT 3.5
  131787. .sp
  131788. .nf
  131789. .ft C
  131790. key_in_redis:
  131791. redis.string:
  131792. \- value: string data
  131793. .ft P
  131794. .fi
  131795. .UNINDENT
  131796. .UNINDENT
  131797. .sp
  131798. The redis server information specified in the minion config file can be
  131799. overridden in states using the following arguments: \fBhost\fP, \fBpost\fP, \fBdb\fP,
  131800. \fBpassword\fP\&.
  131801. .INDENT 0.0
  131802. .INDENT 3.5
  131803. .sp
  131804. .nf
  131805. .ft C
  131806. key_in_redis:
  131807. redis.string:
  131808. \- value: string data
  131809. \- host: localhost
  131810. \- port: 6379
  131811. \- db: 0
  131812. \- password: somuchkittycat
  131813. .ft P
  131814. .fi
  131815. .UNINDENT
  131816. .UNINDENT
  131817. .INDENT 0.0
  131818. .TP
  131819. .B salt.states.redismod.absent(name, keys=None, **connection_args)
  131820. Ensure key absent from redis
  131821. .INDENT 7.0
  131822. .TP
  131823. .B name
  131824. Key to ensure absent from redis
  131825. .TP
  131826. .B keys
  131827. list of keys to ensure absent, name will be ignored if this is used
  131828. .UNINDENT
  131829. .UNINDENT
  131830. .INDENT 0.0
  131831. .TP
  131832. .B salt.states.redismod.slaveof(name, sentinel_host=None, sentinel_port=None, sentinel_password=None, **connection_args)
  131833. Set this redis instance as a slave.
  131834. .INDENT 7.0
  131835. .TP
  131836. .B name
  131837. Master to make this a slave of
  131838. .TP
  131839. .B sentinel_host
  131840. Ip of the sentinel to check for the master
  131841. .TP
  131842. .B sentinel_port
  131843. Port of the sentinel to check for the master
  131844. .UNINDENT
  131845. .UNINDENT
  131846. .INDENT 0.0
  131847. .TP
  131848. .B salt.states.redismod.string(name, value, expire=None, expireat=None, **connection_args)
  131849. Ensure that the key exists in redis with the value specified
  131850. .INDENT 7.0
  131851. .TP
  131852. .B name
  131853. Redis key to manage
  131854. .TP
  131855. .B value
  131856. Data to persist in key
  131857. .TP
  131858. .B expire
  131859. Sets time to live for key in seconds
  131860. .TP
  131861. .B expireat
  131862. Sets expiration time for key via UNIX timestamp, overrides \fIexpire\fP
  131863. .UNINDENT
  131864. .UNINDENT
  131865. .SS salt.states.rvm
  131866. .SS Managing Ruby installations and gemsets with Ruby Version Manager (RVM)
  131867. .sp
  131868. This module is used to install and manage ruby installations and
  131869. gemsets with RVM, the Ruby Version Manager. Different versions of ruby
  131870. can be installed and gemsets created. RVM itself will be installed
  131871. automatically if it\(aqs not present. This module will not automatically
  131872. install packages that RVM depends on or ones that are needed to build
  131873. ruby. If you want to run RVM as an unprivileged user (recommended) you
  131874. will have to create this user yourself. This is how a state
  131875. configuration could look like:
  131876. .INDENT 0.0
  131877. .INDENT 3.5
  131878. .sp
  131879. .nf
  131880. .ft C
  131881. rvm:
  131882. group.present: []
  131883. user.present:
  131884. \- gid: rvm
  131885. \- home: /home/rvm
  131886. \- require:
  131887. \- group: rvm
  131888. rvm\-deps:
  131889. pkg.installed:
  131890. \- pkgs:
  131891. \- bash
  131892. \- coreutils
  131893. \- gzip
  131894. \- bzip2
  131895. \- gawk
  131896. \- sed
  131897. \- curl
  131898. \- git\-core
  131899. \- subversion
  131900. mri\-deps:
  131901. pkg.installed:
  131902. \- pkgs:
  131903. \- build\-essential
  131904. \- openssl
  131905. \- libreadline6
  131906. \- libreadline6\-dev
  131907. \- curl
  131908. \- git\-core
  131909. \- zlib1g
  131910. \- zlib1g\-dev
  131911. \- libssl\-dev
  131912. \- libyaml\-dev
  131913. \- libsqlite3\-0
  131914. \- libsqlite3\-dev
  131915. \- sqlite3
  131916. \- libxml2\-dev
  131917. \- libxslt1\-dev
  131918. \- autoconf
  131919. \- libc6\-dev
  131920. \- libncurses5\-dev
  131921. \- automake
  131922. \- libtool
  131923. \- bison
  131924. \- subversion
  131925. \- ruby
  131926. jruby\-deps:
  131927. pkg.installed:
  131928. \- pkgs:
  131929. \- curl
  131930. \- g++
  131931. \- openjdk\-6\-jre\-headless
  131932. ruby\-1.9.2:
  131933. rvm.installed:
  131934. \- default: True
  131935. \- user: rvm
  131936. \- require:
  131937. \- pkg: rvm\-deps
  131938. \- pkg: mri\-deps
  131939. \- user: rvm
  131940. jruby:
  131941. rvm.installed:
  131942. \- user: rvm
  131943. \- require:
  131944. \- pkg: rvm\-deps
  131945. \- pkg: jruby\-deps
  131946. \- user: rvm
  131947. jgemset:
  131948. rvm.gemset_present:
  131949. \- ruby: jruby
  131950. \- user: rvm
  131951. \- require:
  131952. \- rvm: jruby
  131953. mygemset:
  131954. rvm.gemset_present:
  131955. \- ruby: ruby\-1.9.2
  131956. \- user: rvm
  131957. \- require:
  131958. \- rvm: ruby\-1.9.2
  131959. .ft P
  131960. .fi
  131961. .UNINDENT
  131962. .UNINDENT
  131963. .INDENT 0.0
  131964. .TP
  131965. .B salt.states.rvm.gemset_present(name, ruby=u\(aqdefault\(aq, user=None)
  131966. Verify that the gemset is present.
  131967. .INDENT 7.0
  131968. .TP
  131969. .B name
  131970. The name of the gemset.
  131971. .TP
  131972. .B ruby: default
  131973. The ruby version this gemset belongs to.
  131974. .TP
  131975. .B user: None
  131976. The user to run rvm as.
  131977. .sp
  131978. New in version 0.17.0.
  131979. .UNINDENT
  131980. .UNINDENT
  131981. .INDENT 0.0
  131982. .TP
  131983. .B salt.states.rvm.installed(name, default=False, user=None, opts=None, env=None)
  131984. Verify that the specified ruby is installed with RVM. RVM is
  131985. installed when necessary.
  131986. .INDENT 7.0
  131987. .TP
  131988. .B name
  131989. The version of ruby to install
  131990. .TP
  131991. .B default
  131992. False
  131993. Whether to make this ruby the default.
  131994. .TP
  131995. .B user: None
  131996. The user to run rvm as.
  131997. .TP
  131998. .B env: None
  131999. A list of environment variables to set (ie, RUBY_CONFIGURE_OPTS)
  132000. .TP
  132001. .B opts: None
  132002. A list of option flags to pass to RVM (ie \-C, \-\-patch)
  132003. .sp
  132004. New in version 0.17.0.
  132005. .UNINDENT
  132006. .UNINDENT
  132007. .SS salt.states.salt_proxy module
  132008. .sp
  132009. Salt proxy state
  132010. .sp
  132011. New in version 2015.8.2.
  132012. .sp
  132013. State to deploy and run salt\-proxy processes
  132014. on a minion.
  132015. .sp
  132016. Set up pillar data for your proxies per the documentation.
  132017. .sp
  132018. Run the state as below
  132019. .sp
  132020. \&..code\-block:: yaml
  132021. .INDENT 0.0
  132022. .INDENT 3.5
  132023. .INDENT 0.0
  132024. .TP
  132025. .B salt\-proxy\-configure:
  132026. .INDENT 7.0
  132027. .TP
  132028. .B salt_proxy.configure_proxy:
  132029. .INDENT 7.0
  132030. .IP \(bu 2
  132031. proxyname: p8000
  132032. .IP \(bu 2
  132033. start: True
  132034. .UNINDENT
  132035. .UNINDENT
  132036. .UNINDENT
  132037. .UNINDENT
  132038. .UNINDENT
  132039. .sp
  132040. This state will configure the salt proxy settings
  132041. within /etc/salt/proxy (if /etc/salt/proxy doesn\(aqt exists)
  132042. and start the salt\-proxy process (default true),
  132043. if it isn\(aqt already running.
  132044. .INDENT 0.0
  132045. .TP
  132046. .B salt.states.salt_proxy.configure_proxy(name, proxyname=u\(aqp8000\(aq, start=True)
  132047. Create the salt proxy file and start the proxy process
  132048. if required
  132049. .INDENT 7.0
  132050. .TP
  132051. .B Parameters
  132052. .INDENT 7.0
  132053. .IP \(bu 2
  132054. \fBname\fP \-\- The name of this state
  132055. .IP \(bu 2
  132056. \fBproxyname\fP \-\- Name to be used for this proxy (should match entries in pillar)
  132057. .IP \(bu 2
  132058. \fBstart\fP \-\- Boolean indicating if the process should be started
  132059. .UNINDENT
  132060. .UNINDENT
  132061. .sp
  132062. Example:
  132063. .sp
  132064. \&..code\-block:: yaml
  132065. .INDENT 7.0
  132066. .INDENT 3.5
  132067. .INDENT 0.0
  132068. .TP
  132069. .B salt\-proxy\-configure:
  132070. .INDENT 7.0
  132071. .TP
  132072. .B salt_proxy.configure_proxy:
  132073. .INDENT 7.0
  132074. .IP \(bu 2
  132075. proxyname: p8000
  132076. .IP \(bu 2
  132077. start: True
  132078. .UNINDENT
  132079. .UNINDENT
  132080. .UNINDENT
  132081. .UNINDENT
  132082. .UNINDENT
  132083. .UNINDENT
  132084. .SS salt.states.saltutil
  132085. .SS Saltutil State
  132086. .sp
  132087. This state wraps the saltutil execution modules to make them easier to run
  132088. from a states. Rather than needing to to use \fBmodule.run\fP this state allows for
  132089. improved change detection.
  132090. .INDENT 0.0
  132091. .INDENT 3.5
  132092. .UNINDENT
  132093. .UNINDENT
  132094. .INDENT 0.0
  132095. .TP
  132096. .B salt.states.saltutil.sync_all(name, **kwargs)
  132097. Performs the same task as saltutil.sync_all module
  132098. See \fBsaltutil module for full list of options\fP
  132099. .INDENT 7.0
  132100. .INDENT 3.5
  132101. .sp
  132102. .nf
  132103. .ft C
  132104. sync_everything:
  132105. saltutil.sync_all:
  132106. \- refresh: True
  132107. .ft P
  132108. .fi
  132109. .UNINDENT
  132110. .UNINDENT
  132111. .UNINDENT
  132112. .INDENT 0.0
  132113. .TP
  132114. .B salt.states.saltutil.sync_beacons(name, **kwargs)
  132115. Performs the same task as saltutil.sync_beacons module
  132116. See \fBsaltutil module for full list of options\fP
  132117. .INDENT 7.0
  132118. .INDENT 3.5
  132119. .sp
  132120. .nf
  132121. .ft C
  132122. sync_everything:
  132123. saltutil.sync_beacons:
  132124. \- refresh: True
  132125. .ft P
  132126. .fi
  132127. .UNINDENT
  132128. .UNINDENT
  132129. .UNINDENT
  132130. .INDENT 0.0
  132131. .TP
  132132. .B salt.states.saltutil.sync_clouds(name, **kwargs)
  132133. Performs the same task as saltutil.sync_clouds module
  132134. See \fBsaltutil module for full list of options\fP
  132135. .INDENT 7.0
  132136. .INDENT 3.5
  132137. .sp
  132138. .nf
  132139. .ft C
  132140. sync_everything:
  132141. saltutil.sync_clouds:
  132142. \- refresh: True
  132143. .ft P
  132144. .fi
  132145. .UNINDENT
  132146. .UNINDENT
  132147. .UNINDENT
  132148. .INDENT 0.0
  132149. .TP
  132150. .B salt.states.saltutil.sync_engines(name, **kwargs)
  132151. Performs the same task as saltutil.sync_engines module
  132152. See \fBsaltutil module for full list of options\fP
  132153. .INDENT 7.0
  132154. .INDENT 3.5
  132155. .sp
  132156. .nf
  132157. .ft C
  132158. sync_everything:
  132159. saltutil.sync_engines:
  132160. \- refresh: True
  132161. .ft P
  132162. .fi
  132163. .UNINDENT
  132164. .UNINDENT
  132165. .UNINDENT
  132166. .INDENT 0.0
  132167. .TP
  132168. .B salt.states.saltutil.sync_executors(name, **kwargs)
  132169. Performs the same task as saltutil.sync_executors module
  132170. See \fBsaltutil module for full list of options\fP
  132171. .INDENT 7.0
  132172. .INDENT 3.5
  132173. .sp
  132174. .nf
  132175. .ft C
  132176. sync_everything:
  132177. saltutil.sync_executors:
  132178. \- refresh: True
  132179. .ft P
  132180. .fi
  132181. .UNINDENT
  132182. .UNINDENT
  132183. .UNINDENT
  132184. .INDENT 0.0
  132185. .TP
  132186. .B salt.states.saltutil.sync_grains(name, **kwargs)
  132187. Performs the same task as saltutil.sync_grains module
  132188. See \fBsaltutil module for full list of options\fP
  132189. .INDENT 7.0
  132190. .INDENT 3.5
  132191. .sp
  132192. .nf
  132193. .ft C
  132194. sync_everything:
  132195. saltutil.sync_grains:
  132196. \- refresh: True
  132197. .ft P
  132198. .fi
  132199. .UNINDENT
  132200. .UNINDENT
  132201. .UNINDENT
  132202. .INDENT 0.0
  132203. .TP
  132204. .B salt.states.saltutil.sync_log_handlers(name, **kwargs)
  132205. Performs the same task as saltutil.sync_log_handlers module
  132206. See \fBsaltutil module for full list of options\fP
  132207. .INDENT 7.0
  132208. .INDENT 3.5
  132209. .sp
  132210. .nf
  132211. .ft C
  132212. sync_everything:
  132213. saltutil.sync_log_handlers:
  132214. \- refresh: True
  132215. .ft P
  132216. .fi
  132217. .UNINDENT
  132218. .UNINDENT
  132219. .UNINDENT
  132220. .INDENT 0.0
  132221. .TP
  132222. .B salt.states.saltutil.sync_matchers(name, **kwargs)
  132223. Performs the same task as saltutil.sync_matchers module
  132224. See \fBsaltutil module for full list of options\fP
  132225. .INDENT 7.0
  132226. .INDENT 3.5
  132227. .sp
  132228. .nf
  132229. .ft C
  132230. sync_everything:
  132231. saltutil.sync_matchers:
  132232. \- refresh: True
  132233. .ft P
  132234. .fi
  132235. .UNINDENT
  132236. .UNINDENT
  132237. .UNINDENT
  132238. .INDENT 0.0
  132239. .TP
  132240. .B salt.states.saltutil.sync_modules(name, **kwargs)
  132241. Performs the same task as saltutil.sync_modules module
  132242. See \fBsaltutil module for full list of options\fP
  132243. .INDENT 7.0
  132244. .INDENT 3.5
  132245. .sp
  132246. .nf
  132247. .ft C
  132248. sync_everything:
  132249. saltutil.sync_modules:
  132250. \- refresh: True
  132251. .ft P
  132252. .fi
  132253. .UNINDENT
  132254. .UNINDENT
  132255. .UNINDENT
  132256. .INDENT 0.0
  132257. .TP
  132258. .B salt.states.saltutil.sync_output(name, **kwargs)
  132259. Performs the same task as saltutil.sync_output module
  132260. See \fBsaltutil module for full list of options\fP
  132261. .INDENT 7.0
  132262. .INDENT 3.5
  132263. .sp
  132264. .nf
  132265. .ft C
  132266. sync_everything:
  132267. saltutil.sync_output:
  132268. \- refresh: True
  132269. .ft P
  132270. .fi
  132271. .UNINDENT
  132272. .UNINDENT
  132273. .UNINDENT
  132274. .INDENT 0.0
  132275. .TP
  132276. .B salt.states.saltutil.sync_outputters(name, **kwargs)
  132277. Performs the same task as saltutil.sync_outputters module
  132278. See \fBsaltutil module for full list of options\fP
  132279. .INDENT 7.0
  132280. .INDENT 3.5
  132281. .sp
  132282. .nf
  132283. .ft C
  132284. sync_everything:
  132285. saltutil.sync_outputters:
  132286. \- refresh: True
  132287. .ft P
  132288. .fi
  132289. .UNINDENT
  132290. .UNINDENT
  132291. .UNINDENT
  132292. .INDENT 0.0
  132293. .TP
  132294. .B salt.states.saltutil.sync_pillar(name, **kwargs)
  132295. Performs the same task as saltutil.sync_pillar module
  132296. See \fBsaltutil module for full list of options\fP
  132297. .INDENT 7.0
  132298. .INDENT 3.5
  132299. .sp
  132300. .nf
  132301. .ft C
  132302. sync_everything:
  132303. saltutil.sync_pillar:
  132304. \- refresh: True
  132305. .ft P
  132306. .fi
  132307. .UNINDENT
  132308. .UNINDENT
  132309. .UNINDENT
  132310. .INDENT 0.0
  132311. .TP
  132312. .B salt.states.saltutil.sync_proxymodules(name, **kwargs)
  132313. Performs the same task as saltutil.sync_proxymodules module
  132314. See \fBsaltutil module for full list of options\fP
  132315. .INDENT 7.0
  132316. .INDENT 3.5
  132317. .sp
  132318. .nf
  132319. .ft C
  132320. sync_everything:
  132321. saltutil.sync_proxymodules:
  132322. \- refresh: True
  132323. .ft P
  132324. .fi
  132325. .UNINDENT
  132326. .UNINDENT
  132327. .UNINDENT
  132328. .INDENT 0.0
  132329. .TP
  132330. .B salt.states.saltutil.sync_renderers(name, **kwargs)
  132331. Performs the same task as saltutil.sync_renderers module
  132332. See \fBsaltutil module for full list of options\fP
  132333. .INDENT 7.0
  132334. .INDENT 3.5
  132335. .sp
  132336. .nf
  132337. .ft C
  132338. sync_everything:
  132339. saltutil.sync_renderers:
  132340. \- refresh: True
  132341. .ft P
  132342. .fi
  132343. .UNINDENT
  132344. .UNINDENT
  132345. .UNINDENT
  132346. .INDENT 0.0
  132347. .TP
  132348. .B salt.states.saltutil.sync_returners(name, **kwargs)
  132349. Performs the same task as saltutil.sync_returners module
  132350. See \fBsaltutil module for full list of options\fP
  132351. .INDENT 7.0
  132352. .INDENT 3.5
  132353. .sp
  132354. .nf
  132355. .ft C
  132356. sync_everything:
  132357. saltutil.sync_returners:
  132358. \- refresh: True
  132359. .ft P
  132360. .fi
  132361. .UNINDENT
  132362. .UNINDENT
  132363. .UNINDENT
  132364. .INDENT 0.0
  132365. .TP
  132366. .B salt.states.saltutil.sync_sdb(name, **kwargs)
  132367. Performs the same task as saltutil.sync_sdb module
  132368. See \fBsaltutil module for full list of options\fP
  132369. .INDENT 7.0
  132370. .INDENT 3.5
  132371. .sp
  132372. .nf
  132373. .ft C
  132374. sync_everything:
  132375. saltutil.sync_sdb:
  132376. \- refresh: True
  132377. .ft P
  132378. .fi
  132379. .UNINDENT
  132380. .UNINDENT
  132381. .UNINDENT
  132382. .INDENT 0.0
  132383. .TP
  132384. .B salt.states.saltutil.sync_serializers(name, **kwargs)
  132385. Performs the same task as saltutil.sync_serializers module
  132386. See \fBsaltutil module for full list of options\fP
  132387. .INDENT 7.0
  132388. .INDENT 3.5
  132389. .sp
  132390. .nf
  132391. .ft C
  132392. sync_everything:
  132393. saltutil.sync_serializers:
  132394. \- refresh: True
  132395. .ft P
  132396. .fi
  132397. .UNINDENT
  132398. .UNINDENT
  132399. .UNINDENT
  132400. .INDENT 0.0
  132401. .TP
  132402. .B salt.states.saltutil.sync_states(name, **kwargs)
  132403. Performs the same task as saltutil.sync_states module
  132404. See \fBsaltutil module for full list of options\fP
  132405. .INDENT 7.0
  132406. .INDENT 3.5
  132407. .sp
  132408. .nf
  132409. .ft C
  132410. sync_everything:
  132411. saltutil.sync_states:
  132412. \- refresh: True
  132413. .ft P
  132414. .fi
  132415. .UNINDENT
  132416. .UNINDENT
  132417. .UNINDENT
  132418. .INDENT 0.0
  132419. .TP
  132420. .B salt.states.saltutil.sync_thorium(name, **kwargs)
  132421. Performs the same task as saltutil.sync_thorium module
  132422. See \fBsaltutil module for full list of options\fP
  132423. .INDENT 7.0
  132424. .INDENT 3.5
  132425. .sp
  132426. .nf
  132427. .ft C
  132428. sync_everything:
  132429. saltutil.sync_thorium:
  132430. \- refresh: True
  132431. .ft P
  132432. .fi
  132433. .UNINDENT
  132434. .UNINDENT
  132435. .UNINDENT
  132436. .INDENT 0.0
  132437. .TP
  132438. .B salt.states.saltutil.sync_utils(name, **kwargs)
  132439. Performs the same task as saltutil.sync_utils module
  132440. See \fBsaltutil module for full list of options\fP
  132441. .INDENT 7.0
  132442. .INDENT 3.5
  132443. .sp
  132444. .nf
  132445. .ft C
  132446. sync_everything:
  132447. saltutil.sync_utils:
  132448. \- refresh: True
  132449. .ft P
  132450. .fi
  132451. .UNINDENT
  132452. .UNINDENT
  132453. .UNINDENT
  132454. .SS salt.states.schedule
  132455. .SS Management of the Salt scheduler
  132456. .INDENT 0.0
  132457. .INDENT 3.5
  132458. .sp
  132459. .nf
  132460. .ft C
  132461. job3:
  132462. schedule.present:
  132463. \- function: test.ping
  132464. \- seconds: 3600
  132465. \- splay: 10
  132466. This will schedule the command: test.ping every 3600 seconds
  132467. (every hour) splaying the time between 0 and 10 seconds
  132468. job2:
  132469. schedule.present:
  132470. \- function: test.ping
  132471. \- seconds: 15
  132472. \- splay:
  132473. start: 10
  132474. end: 20
  132475. This will schedule the command: test.ping every 15 seconds
  132476. splaying the time between 10 and 20 seconds
  132477. job1:
  132478. schedule.present:
  132479. \- function: state.sls
  132480. \- job_args:
  132481. \- httpd
  132482. \- job_kwargs:
  132483. test: True
  132484. \- when:
  132485. \- Monday 5:00pm
  132486. \- Tuesday 3:00pm
  132487. \- Wednesday 5:00pm
  132488. \- Thursday 3:00pm
  132489. \- Friday 5:00pm
  132490. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132491. Wednesday and Friday, and 3pm on Tuesday and Thursday. Requires that
  132492. python\-dateutil is installed on the minion.
  132493. job1:
  132494. schedule.present:
  132495. \- function: state.sls
  132496. \- job_args:
  132497. \- httpd
  132498. \- job_kwargs:
  132499. test: True
  132500. \- cron: \(aq*/5 * * * *\(aq
  132501. Scheduled jobs can also be specified using the format used by cron. This will
  132502. schedule the command: state.sls httpd test=True to run every 5 minutes. Requires
  132503. that python\-croniter is installed on the minion.
  132504. job1:
  132505. schedule.present:
  132506. \- function: state.sls
  132507. \- job_args:
  132508. \- httpd
  132509. \- job_kwargs:
  132510. test: True
  132511. \- when:
  132512. \- Monday 5:00pm
  132513. \- Tuesday 3:00pm
  132514. \- Wednesday 5:00pm
  132515. \- Thursday 3:00pm
  132516. \- Friday 5:00pm
  132517. \- returner: xmpp
  132518. \- return_config: xmpp_state_run
  132519. \- return_kwargs:
  132520. recipient: user@domain.com
  132521. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132522. Wednesday and Friday, and 3pm on Tuesday and Thursday. Using the xmpp returner
  132523. to return the results of the scheduled job, with the alternative configuration
  132524. options found in the xmpp_state_run section.
  132525. job1:
  132526. schedule.present:
  132527. \- function: state.sls
  132528. \- job_args:
  132529. \- httpd
  132530. \- job_kwargs:
  132531. test: True
  132532. \- hours: 1
  132533. \- skip_during_range:
  132534. \- start: 2pm
  132535. \- end: 3pm
  132536. \- run_after_skip_range: True
  132537. This will schedule the command: state.sls httpd test=True at 5pm on Monday,
  132538. Wednesday and Friday, and 3pm on Tuesday and Thursday. Requires that
  132539. python\-dateutil is installed on the minion.
  132540. .ft P
  132541. .fi
  132542. .UNINDENT
  132543. .UNINDENT
  132544. .INDENT 0.0
  132545. .TP
  132546. .B salt.states.schedule.absent(name, **kwargs)
  132547. Ensure a job is absent from the schedule
  132548. .INDENT 7.0
  132549. .TP
  132550. .B name
  132551. The unique name that is given to the scheduled job.
  132552. .TP
  132553. .B persist
  132554. Whether the job should persist between minion restarts, defaults to True.
  132555. .UNINDENT
  132556. .UNINDENT
  132557. .INDENT 0.0
  132558. .TP
  132559. .B salt.states.schedule.disabled(name, **kwargs)
  132560. Ensure a job is disabled in the schedule
  132561. .INDENT 7.0
  132562. .TP
  132563. .B name
  132564. The unique name that is given to the scheduled job.
  132565. .TP
  132566. .B persist
  132567. Whether the job should persist between minion restarts, defaults to True.
  132568. .UNINDENT
  132569. .UNINDENT
  132570. .INDENT 0.0
  132571. .TP
  132572. .B salt.states.schedule.enabled(name, **kwargs)
  132573. Ensure a job is enabled in the schedule
  132574. .INDENT 7.0
  132575. .TP
  132576. .B name
  132577. The unique name that is given to the scheduled job.
  132578. .TP
  132579. .B persist
  132580. Whether the job should persist between minion restarts, defaults to True.
  132581. .UNINDENT
  132582. .UNINDENT
  132583. .INDENT 0.0
  132584. .TP
  132585. .B salt.states.schedule.present(name, **kwargs)
  132586. Ensure a job is present in the schedule
  132587. .INDENT 7.0
  132588. .TP
  132589. .B name
  132590. The unique name that is given to the scheduled job.
  132591. .TP
  132592. .B seconds
  132593. The scheduled job will be executed after the specified
  132594. number of seconds have passed.
  132595. .TP
  132596. .B minutes
  132597. The scheduled job will be executed after the specified
  132598. number of minutes have passed.
  132599. .TP
  132600. .B hours
  132601. The scheduled job will be executed after the specified
  132602. number of hours have passed.
  132603. .TP
  132604. .B days
  132605. The scheduled job will be executed after the specified
  132606. number of days have passed.
  132607. .TP
  132608. .B when
  132609. This will schedule the job at the specified time(s).
  132610. The when parameter must be a single value or a dictionary
  132611. with the date string(s) using the dateutil format.
  132612. Requires python\-dateutil.
  132613. .TP
  132614. .B cron
  132615. This will schedule the job at the specified time(s)
  132616. using the crontab format.
  132617. Requires python\-croniter.
  132618. .TP
  132619. .B run_on_start
  132620. Whether the job will run when Salt minion starts, or the job will be
  132621. skipped \fBonce\fP and run at the next scheduled run. Value should be a
  132622. boolean.
  132623. .TP
  132624. .B function
  132625. The function that should be executed by the scheduled job.
  132626. .TP
  132627. .B job_args
  132628. The arguments that will be used by the scheduled job.
  132629. .TP
  132630. .B job_kwargs
  132631. The keyword arguments that will be used by the scheduled job.
  132632. .TP
  132633. .B maxrunning
  132634. Ensure that there are no more than N copies of a particular job running.
  132635. .TP
  132636. .B jid_include
  132637. Include the job into the job cache.
  132638. .TP
  132639. .B splay
  132640. The amount of time in seconds to splay a scheduled job.
  132641. Can be specified as a single value in seconds or as a dictionary
  132642. range with \(aqstart\(aq and \(aqend\(aq values.
  132643. .TP
  132644. .B range
  132645. This will schedule the command within the range specified.
  132646. The range parameter must be a dictionary with the date strings
  132647. using the dateutil format. Requires python\-dateutil.
  132648. .TP
  132649. .B once
  132650. This will schedule a job to run once on the specified date.
  132651. .TP
  132652. .B once_fmt
  132653. The default date format is ISO 8601 but can be overridden by
  132654. also specifying the \fBonce_fmt\fP option.
  132655. .TP
  132656. .B enabled
  132657. Whether the job should be enabled or disabled. Value should be a boolean.
  132658. .TP
  132659. .B return_job
  132660. Whether to return information to the Salt master upon job completion.
  132661. .TP
  132662. .B metadata
  132663. Using the metadata parameter special values can be associated with
  132664. a scheduled job. These values are not used in the execution of the job,
  132665. but can be used to search for specific jobs later if combined with the
  132666. return_job parameter. The metadata parameter must be specified as a
  132667. dictionary, othewise it will be ignored.
  132668. .TP
  132669. .B returner
  132670. The returner to use to return the results of the scheduled job.
  132671. .TP
  132672. .B return_config
  132673. The alternative configuration to use for returner configuration options.
  132674. .TP
  132675. .B return_kwargs
  132676. Any individual returner configuration items to override. Should be passed
  132677. as a dictionary.
  132678. .TP
  132679. .B persist
  132680. Whether the job should persist between minion restarts, defaults to True.
  132681. .TP
  132682. .B skip_during_range
  132683. This will ensure that the scheduled command does not run within the
  132684. range specified. The range parameter must be a dictionary with the
  132685. date strings using the dateutil format. Requires python\-dateutil.
  132686. .TP
  132687. .B run_after_skip_range
  132688. Whether the job should run immediately after the skip_during_range time
  132689. period ends.
  132690. .UNINDENT
  132691. .UNINDENT
  132692. .SS salt.states.selinux
  132693. .SS Management of SELinux rules
  132694. .sp
  132695. If SELinux is available for the running system, the mode can be managed and
  132696. booleans can be set.
  132697. .INDENT 0.0
  132698. .INDENT 3.5
  132699. .sp
  132700. .nf
  132701. .ft C
  132702. enforcing:
  132703. selinux.mode
  132704. samba_create_home_dirs:
  132705. selinux.boolean:
  132706. \- value: True
  132707. \- persist: True
  132708. nginx:
  132709. selinux.module:
  132710. \- enabled: False
  132711. .ft P
  132712. .fi
  132713. .UNINDENT
  132714. .UNINDENT
  132715. .sp
  132716. \fBNOTE:\fP
  132717. .INDENT 0.0
  132718. .INDENT 3.5
  132719. Use of these states require that the \fBselinux\fP
  132720. execution module is available.
  132721. .UNINDENT
  132722. .UNINDENT
  132723. .INDENT 0.0
  132724. .TP
  132725. .B salt.states.selinux.boolean(name, value, persist=False)
  132726. Set up an SELinux boolean
  132727. .INDENT 7.0
  132728. .TP
  132729. .B name
  132730. The name of the boolean to set
  132731. .TP
  132732. .B value
  132733. The value to set on the boolean
  132734. .TP
  132735. .B persist
  132736. Defaults to False, set persist to true to make the boolean apply on a
  132737. reboot
  132738. .UNINDENT
  132739. .UNINDENT
  132740. .INDENT 0.0
  132741. .TP
  132742. .B salt.states.selinux.fcontext_policy_absent(name, filetype=u\(aqa\(aq, sel_type=None, sel_user=None, sel_level=None)
  132743. New in version 2017.7.0.
  132744. .sp
  132745. Makes sure an SELinux file context policy for a given filespec
  132746. (name), filetype and SELinux context type is absent.
  132747. .INDENT 7.0
  132748. .TP
  132749. .B name
  132750. filespec of the file or directory. Regex syntax is allowed.
  132751. .TP
  132752. .B filetype
  132753. The SELinux filetype specification. Use one of [a, f, d, c, b,
  132754. s, l, p]. See also \fIman semanage\-fcontext\fP\&. Defaults to \(aqa\(aq
  132755. (all files).
  132756. .TP
  132757. .B sel_type
  132758. The SELinux context type. There are many.
  132759. .TP
  132760. .B sel_user
  132761. The SELinux user.
  132762. .TP
  132763. .B sel_level
  132764. The SELinux MLS range.
  132765. .UNINDENT
  132766. .UNINDENT
  132767. .INDENT 0.0
  132768. .TP
  132769. .B salt.states.selinux.fcontext_policy_applied(name, recursive=False)
  132770. New in version 2017.7.0.
  132771. .sp
  132772. Checks and makes sure the SELinux policies for a given filespec are
  132773. applied.
  132774. .UNINDENT
  132775. .INDENT 0.0
  132776. .TP
  132777. .B salt.states.selinux.fcontext_policy_present(name, sel_type, filetype=u\(aqa\(aq, sel_user=None, sel_level=None)
  132778. New in version 2017.7.0.
  132779. .sp
  132780. Makes sure a SELinux policy for a given filespec (name), filetype
  132781. and SELinux context type is present.
  132782. .INDENT 7.0
  132783. .TP
  132784. .B name
  132785. filespec of the file or directory. Regex syntax is allowed.
  132786. .TP
  132787. .B sel_type
  132788. SELinux context type. There are many.
  132789. .TP
  132790. .B filetype
  132791. The SELinux filetype specification. Use one of [a, f, d, c, b,
  132792. s, l, p]. See also \fIman semanage\-fcontext\fP\&. Defaults to \(aqa\(aq
  132793. (all files).
  132794. .TP
  132795. .B sel_user
  132796. The SELinux user.
  132797. .TP
  132798. .B sel_level
  132799. The SELinux MLS range.
  132800. .UNINDENT
  132801. .UNINDENT
  132802. .INDENT 0.0
  132803. .TP
  132804. .B salt.states.selinux.mode(name)
  132805. Verifies the mode SELinux is running in, can be set to enforcing,
  132806. permissive, or disabled
  132807. .sp
  132808. \fBNOTE:\fP
  132809. .INDENT 7.0
  132810. .INDENT 3.5
  132811. A change to or from disabled mode requires a system reboot. You will
  132812. need to perform this yourself.
  132813. .UNINDENT
  132814. .UNINDENT
  132815. .INDENT 7.0
  132816. .TP
  132817. .B name
  132818. The mode to run SELinux in, permissive, enforcing, or disabled.
  132819. .UNINDENT
  132820. .UNINDENT
  132821. .INDENT 0.0
  132822. .TP
  132823. .B salt.states.selinux.module(name, module_state=u\(aqEnabled\(aq, version=u\(aqany\(aq, **opts)
  132824. Enable/Disable and optionally force a specific version for an SELinux module
  132825. .INDENT 7.0
  132826. .TP
  132827. .B name
  132828. The name of the module to control
  132829. .TP
  132830. .B module_state
  132831. Should the module be enabled or disabled?
  132832. .TP
  132833. .B version
  132834. Defaults to no preference, set to a specified value if required.
  132835. Currently can only alert if the version is incorrect.
  132836. .TP
  132837. .B install
  132838. Setting to True installs module
  132839. .TP
  132840. .B source
  132841. Points to module source file, used only when install is True
  132842. .TP
  132843. .B remove
  132844. Setting to True removes module
  132845. .UNINDENT
  132846. .sp
  132847. New in version 2016.3.0.
  132848. .UNINDENT
  132849. .INDENT 0.0
  132850. .TP
  132851. .B salt.states.selinux.module_install(name)
  132852. Installs custom SELinux module from given file
  132853. .INDENT 7.0
  132854. .TP
  132855. .B name
  132856. Path to file with module to install
  132857. .UNINDENT
  132858. .sp
  132859. New in version 2016.11.6.
  132860. .UNINDENT
  132861. .INDENT 0.0
  132862. .TP
  132863. .B salt.states.selinux.module_remove(name)
  132864. Removes SELinux module
  132865. .INDENT 7.0
  132866. .TP
  132867. .B name
  132868. The name of the module to remove
  132869. .UNINDENT
  132870. .sp
  132871. New in version 2016.11.6.
  132872. .UNINDENT
  132873. .INDENT 0.0
  132874. .TP
  132875. .B salt.states.selinux.port_policy_absent(name, sel_type=None, protocol=None, port=None)
  132876. New in version 2019.2.0.
  132877. .sp
  132878. Makes sure an SELinux port policy for a given port, protocol and SELinux context type is absent.
  132879. .INDENT 7.0
  132880. .TP
  132881. .B name
  132882. The protocol and port spec. Can be formatted as \fB(tcp|udp)/(port|port\-range)\fP\&.
  132883. .TP
  132884. .B sel_type
  132885. The SELinux Type. Optional; can be used in determining if policy is present,
  132886. ignored by \fBsemanage port \-\-delete\fP\&.
  132887. .TP
  132888. .B protocol
  132889. The protocol for the port, \fBtcp\fP or \fBudp\fP\&. Required if name is not formatted.
  132890. .TP
  132891. .B port
  132892. The port or port range. Required if name is not formatted.
  132893. .UNINDENT
  132894. .UNINDENT
  132895. .INDENT 0.0
  132896. .TP
  132897. .B salt.states.selinux.port_policy_present(name, sel_type, protocol=None, port=None, sel_range=None)
  132898. New in version 2019.2.0.
  132899. .sp
  132900. Makes sure an SELinux port policy for a given port, protocol and SELinux context type is present.
  132901. .INDENT 7.0
  132902. .TP
  132903. .B name
  132904. The protocol and port spec. Can be formatted as \fB(tcp|udp)/(port|port\-range)\fP\&.
  132905. .TP
  132906. .B sel_type
  132907. The SELinux Type.
  132908. .TP
  132909. .B protocol
  132910. The protocol for the port, \fBtcp\fP or \fBudp\fP\&. Required if name is not formatted.
  132911. .TP
  132912. .B port
  132913. The port or port range. Required if name is not formatted.
  132914. .TP
  132915. .B sel_range
  132916. The SELinux MLS/MCS Security Range.
  132917. .UNINDENT
  132918. .UNINDENT
  132919. .SS salt.states.slack
  132920. .SS Send a message to Slack
  132921. .sp
  132922. This state is useful for sending messages to Slack during state runs.
  132923. .sp
  132924. New in version 2015.5.0.
  132925. .INDENT 0.0
  132926. .INDENT 3.5
  132927. .sp
  132928. .nf
  132929. .ft C
  132930. slack\-message:
  132931. slack.post_message:
  132932. \- channel: \(aq#general\(aq
  132933. \- from_name: SuperAdmin
  132934. \- message: \(aqThis state was executed successfully.\(aq
  132935. \- api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  132936. .ft P
  132937. .fi
  132938. .UNINDENT
  132939. .UNINDENT
  132940. .sp
  132941. The api key can be specified in the master or minion configuration like below:
  132942. .INDENT 0.0
  132943. .INDENT 3.5
  132944. .sp
  132945. .nf
  132946. .ft C
  132947. slack:
  132948. api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  132949. .ft P
  132950. .fi
  132951. .UNINDENT
  132952. .UNINDENT
  132953. .INDENT 0.0
  132954. .TP
  132955. .B salt.states.slack.post_message(name, **kwargs)
  132956. Send a message to a Slack channel.
  132957. .INDENT 7.0
  132958. .INDENT 3.5
  132959. .sp
  132960. .nf
  132961. .ft C
  132962. slack\-message:
  132963. slack.post_message:
  132964. \- channel: \(aq#general\(aq
  132965. \- from_name: SuperAdmin
  132966. \- message: \(aqThis state was executed successfully.\(aq
  132967. \- api_key: peWcBiMOS9HrZG15peWcBiMOS9HrZG15
  132968. .ft P
  132969. .fi
  132970. .UNINDENT
  132971. .UNINDENT
  132972. .sp
  132973. The following parameters are required:
  132974. .INDENT 7.0
  132975. .TP
  132976. .B api_key parameters:
  132977. .INDENT 7.0
  132978. .TP
  132979. .B name
  132980. The unique name for this event.
  132981. .TP
  132982. .B channel
  132983. The channel to send the message to. Can either be the ID or the name.
  132984. .TP
  132985. .B from_name
  132986. The name of that is to be shown in the "from" field.
  132987. .TP
  132988. .B message
  132989. The message that is to be sent to the Slack channel.
  132990. .UNINDENT
  132991. .sp
  132992. The following parameters are optional:
  132993. .INDENT 7.0
  132994. .TP
  132995. .B api_key
  132996. The api key for Slack to use for authentication,
  132997. if not specified in the configuration options of master or minion.
  132998. .TP
  132999. .B icon
  133000. URL to an image to use as the icon for this message
  133001. .UNINDENT
  133002. .TP
  133003. .B webhook parameters:
  133004. .INDENT 7.0
  133005. .TP
  133006. .B name
  133007. The unique name for this event.
  133008. .TP
  133009. .B message
  133010. The message that is to be sent to the Slack channel.
  133011. .TP
  133012. .B color
  133013. The color of border of left side
  133014. .TP
  133015. .B short
  133016. An optional flag indicating whether the value is short
  133017. enough to be displayed side\-by\-side with other values.
  133018. .TP
  133019. .B webhook
  133020. The identifier of WebHook (URL or token).
  133021. .TP
  133022. .B channel
  133023. The channel to use instead of the WebHook default.
  133024. .TP
  133025. .B username
  133026. Username to use instead of WebHook default.
  133027. .TP
  133028. .B icon_emoji
  133029. Icon to use instead of WebHook default.
  133030. .UNINDENT
  133031. .UNINDENT
  133032. .UNINDENT
  133033. .SS salt.states.smtp
  133034. .SS Sending Messages via SMTP
  133035. .sp
  133036. New in version 2014.7.0.
  133037. .sp
  133038. This state is useful for firing messages during state runs, using the SMTP
  133039. protocol
  133040. .INDENT 0.0
  133041. .INDENT 3.5
  133042. .sp
  133043. .nf
  133044. .ft C
  133045. server\-warning\-message:
  133046. smtp.send_msg:
  133047. \- name: \(aqThis is a server warning message\(aq
  133048. \- profile: my\-smtp\-account
  133049. \- recipient: admins@example.com
  133050. .ft P
  133051. .fi
  133052. .UNINDENT
  133053. .UNINDENT
  133054. .INDENT 0.0
  133055. .TP
  133056. .B salt.states.smtp.send_msg(name, recipient, subject, sender=None, profile=None, use_ssl=u\(aqTrue\(aq, attachments=None)
  133057. Send a message via SMTP
  133058. .INDENT 7.0
  133059. .INDENT 3.5
  133060. .sp
  133061. .nf
  133062. .ft C
  133063. server\-warning\-message:
  133064. smtp.send_msg:
  133065. \- name: \(aqThis is a server warning message\(aq
  133066. \- profile: my\-smtp\-account
  133067. \- subject: \(aqMessage from Salt\(aq
  133068. \- recipient: admin@example.com
  133069. \- sender: admin@example.com
  133070. \- use_ssl: True
  133071. \- attachments:
  133072. \- /var/log/syslog
  133073. \- /var/log/messages
  133074. .ft P
  133075. .fi
  133076. .UNINDENT
  133077. .UNINDENT
  133078. .INDENT 7.0
  133079. .TP
  133080. .B name
  133081. The message to send via SMTP
  133082. .UNINDENT
  133083. .UNINDENT
  133084. .SS salt.states.snapper module
  133085. .SS Managing implicit state and baselines using snapshots
  133086. .sp
  133087. New in version 2016.11.0.
  133088. .sp
  133089. Salt can manage state against explicitly defined state, for example
  133090. if your minion state is defined by:
  133091. .INDENT 0.0
  133092. .INDENT 3.5
  133093. .sp
  133094. .nf
  133095. .ft C
  133096. /etc/config_file:
  133097. file.managed:
  133098. \- source: salt://configs/myconfig
  133099. .ft P
  133100. .fi
  133101. .UNINDENT
  133102. .UNINDENT
  133103. .sp
  133104. If someone modifies this file, the next application of the highstate will
  133105. allow the admin to correct this deviation and the file will be corrected.
  133106. .sp
  133107. Now, what happens if somebody creates a file \fB/etc/new_config_file\fP and
  133108. deletes \fB/etc/important_config_file\fP? Unless you have a explicit rule, this
  133109. change will go unnoticed.
  133110. .sp
  133111. The snapper state module allows you to manage state implicitly, in addition
  133112. to explicit rules, in order to define a baseline and iterate with explicit
  133113. rules as they show that they work in production.
  133114. .sp
  133115. The workflow is: once you have a working and audited system, you would create
  133116. your baseline snapshot (eg. with \fBsalt tgt snapper.create_snapshot\fP) and
  133117. define in your state this baseline using the identifier of the snapshot
  133118. (in this case: 20):
  133119. .INDENT 0.0
  133120. .INDENT 3.5
  133121. .sp
  133122. .nf
  133123. .ft C
  133124. my_baseline:
  133125. snapper.baseline_snapshot:
  133126. \- number: 20
  133127. \- include_diff: False
  133128. \- ignore:
  133129. \- /var/log
  133130. \- /var/cache
  133131. .ft P
  133132. .fi
  133133. .UNINDENT
  133134. .UNINDENT
  133135. .sp
  133136. Baseline snapshots can be also referenced by tag. Most recent baseline snapshot
  133137. is used in case of multiple snapshots with the same tag:
  133138. .INDENT 0.0
  133139. .INDENT 3.5
  133140. .INDENT 0.0
  133141. .TP
  133142. .B my_baseline_external_storage:
  133143. .INDENT 7.0
  133144. .TP
  133145. .B snapper.baseline_snapshot:
  133146. .INDENT 7.0
  133147. .IP \(bu 2
  133148. tag: my_custom_baseline_tag
  133149. .IP \(bu 2
  133150. config: external
  133151. .IP \(bu 2
  133152. ignore:
  133153. \- /mnt/tmp_files/
  133154. .UNINDENT
  133155. .UNINDENT
  133156. .UNINDENT
  133157. .UNINDENT
  133158. .UNINDENT
  133159. .sp
  133160. If you have this state, and you haven\(aqt done changes to the system since the
  133161. snapshot, and you add a user, the state will show you the changes (including
  133162. full diffs) to \fB/etc/passwd\fP, \fB/etc/shadow\fP, etc if you call it
  133163. with \fBtest=True\fP and will undo all changes if you call it without.
  133164. .sp
  133165. This allows you to add more explicit state knowing that you are starting from a
  133166. very well defined state, and that you can audit any change that is not part
  133167. of your explicit configuration.
  133168. .sp
  133169. So after you made this your state, you decided to introduce a change in your
  133170. configuration:
  133171. .INDENT 0.0
  133172. .INDENT 3.5
  133173. .sp
  133174. .nf
  133175. .ft C
  133176. my_baseline:
  133177. snapper.baseline_snapshot:
  133178. \- number: 20
  133179. \- ignore:
  133180. \- /var/log
  133181. \- /var/cache
  133182. hosts_entry:
  133183. file.blockreplace:
  133184. \- name: /etc/hosts
  133185. \- content: \(aqFirst line of content\(aq
  133186. \- append_if_not_found: True
  133187. .ft P
  133188. .fi
  133189. .UNINDENT
  133190. .UNINDENT
  133191. .sp
  133192. The change in \fB/etc/hosts\fP will be done after any other change that deviates
  133193. from the specified snapshot are reverted. This could be for example,
  133194. modifications to the \fB/etc/passwd\fP file or changes in the \fB/etc/hosts\fP
  133195. that could render your the \fBhosts_entry\fP rule void or dangerous.
  133196. .sp
  133197. Once you take a new snapshot and you update the baseline snapshot number to
  133198. include the change in \fB/etc/hosts\fP the \fBhosts_entry\fP rule will basically
  133199. do nothing. You are free to leave it there for documentation, to ensure that
  133200. the change is made in case the snapshot is wrong, but if you remove anything
  133201. that comes after the \fBsnapper.baseline_snapshot\fP as it will have no effect;
  133202. by the moment the state is evaluated, the baseline state was already applied
  133203. and include this change.
  133204. .sp
  133205. \fBWARNING:\fP
  133206. .INDENT 0.0
  133207. .INDENT 3.5
  133208. Make sure you specify the baseline state before other rules, otherwise
  133209. the baseline state will revert all changes if they are not present in
  133210. the snapshot.
  133211. .UNINDENT
  133212. .UNINDENT
  133213. .sp
  133214. \fBWARNING:\fP
  133215. .INDENT 0.0
  133216. .INDENT 3.5
  133217. Do not specify more than one baseline rule as only the last one will
  133218. affect the result.
  133219. .UNINDENT
  133220. .UNINDENT
  133221. .INDENT 0.0
  133222. .TP
  133223. .B codeauthor
  133224. Duncan Mac\-Vicar P. <\fI\%dmacvicar@suse.de\fP>
  133225. .TP
  133226. .B codeauthor
  133227. Pablo Suárez Hernández <\fI\%psuarezhernandez@suse.de\fP>
  133228. .TP
  133229. .B maturity
  133230. new
  133231. .TP
  133232. .B platform
  133233. Linux
  133234. .UNINDENT
  133235. .INDENT 0.0
  133236. .TP
  133237. .B salt.states.snapper.baseline_snapshot(name, number=None, tag=None, include_diff=True, config=u\(aqroot\(aq, ignore=None)
  133238. Enforces that no file is modified comparing against a previously
  133239. defined snapshot identified by number.
  133240. .INDENT 7.0
  133241. .TP
  133242. .B number
  133243. Number of selected baseline snapshot.
  133244. .TP
  133245. .B tag
  133246. Tag of the selected baseline snapshot. Most recent baseline baseline
  133247. snapshot is used in case of multiple snapshots with the same tag.
  133248. (\fItag\fP and \fInumber\fP cannot be used at the same time)
  133249. .TP
  133250. .B include_diff
  133251. Include a diff in the response (Default: True)
  133252. .TP
  133253. .B config
  133254. Snapper config name (Default: root)
  133255. .TP
  133256. .B ignore
  133257. List of files to ignore. (Default: None)
  133258. .UNINDENT
  133259. .UNINDENT
  133260. .SS salt.states.splunk
  133261. .sp
  133262. Splunk User State Module
  133263. .sp
  133264. New in version 2016.3.0..
  133265. .sp
  133266. This state is used to ensure presence of users in splunk.
  133267. .INDENT 0.0
  133268. .INDENT 3.5
  133269. .sp
  133270. .nf
  133271. .ft C
  133272. ensure example test user 1:
  133273. splunk.present:
  133274. \- name: \(aqExample TestUser1\(aq
  133275. \- email: example@domain.com
  133276. .ft P
  133277. .fi
  133278. .UNINDENT
  133279. .UNINDENT
  133280. .INDENT 0.0
  133281. .TP
  133282. .B salt.states.splunk.absent(email, profile=u\(aqsplunk\(aq, **kwargs)
  133283. Ensure a splunk user is absent
  133284. .INDENT 7.0
  133285. .INDENT 3.5
  133286. .sp
  133287. .nf
  133288. .ft C
  133289. ensure example test user 1:
  133290. splunk.absent:
  133291. \- email: \(aqexample@domain.com\(aq
  133292. \- name: \(aqexampleuser\(aq
  133293. .ft P
  133294. .fi
  133295. .UNINDENT
  133296. .UNINDENT
  133297. .sp
  133298. The following parameters are required:
  133299. .INDENT 7.0
  133300. .TP
  133301. .B email
  133302. This is the email of the user in splunk
  133303. .TP
  133304. .B name
  133305. This is the splunk username used to identify the user.
  133306. .UNINDENT
  133307. .UNINDENT
  133308. .INDENT 0.0
  133309. .TP
  133310. .B salt.states.splunk.present(email, profile=u\(aqsplunk\(aq, **kwargs)
  133311. Ensure a user is present
  133312. .INDENT 7.0
  133313. .INDENT 3.5
  133314. .sp
  133315. .nf
  133316. .ft C
  133317. ensure example test user 1:
  133318. splunk.user_present:
  133319. \- realname: \(aqExample TestUser1\(aq
  133320. \- name: \(aqexampleuser\(aq
  133321. \- email: \(aqexample@domain.com\(aq
  133322. \- roles: [\(aquser\(aq]
  133323. .ft P
  133324. .fi
  133325. .UNINDENT
  133326. .UNINDENT
  133327. .sp
  133328. The following parameters are required:
  133329. .INDENT 7.0
  133330. .TP
  133331. .B email
  133332. This is the email of the user in splunk
  133333. .UNINDENT
  133334. .UNINDENT
  133335. .SS salt.states.splunk_search
  133336. .sp
  133337. Splunk Search State Module
  133338. .sp
  133339. New in version 2015.5.0.
  133340. .sp
  133341. This state is used to ensure presence of splunk searches.
  133342. .INDENT 0.0
  133343. .INDENT 3.5
  133344. .sp
  133345. .nf
  133346. .ft C
  133347. server\-warning\-message:
  133348. splunk_search.present:
  133349. \- name: This is the splunk search name
  133350. \- search: index=main sourcetype=
  133351. .ft P
  133352. .fi
  133353. .UNINDENT
  133354. .UNINDENT
  133355. .INDENT 0.0
  133356. .TP
  133357. .B salt.states.splunk_search.absent(name, profile=u\(aqsplunk\(aq)
  133358. Ensure a search is absent
  133359. .INDENT 7.0
  133360. .INDENT 3.5
  133361. .sp
  133362. .nf
  133363. .ft C
  133364. API Error Search:
  133365. splunk_search.absent
  133366. .ft P
  133367. .fi
  133368. .UNINDENT
  133369. .UNINDENT
  133370. .sp
  133371. The following parameters are required:
  133372. .INDENT 7.0
  133373. .TP
  133374. .B name
  133375. This is the name of the search in splunk
  133376. .UNINDENT
  133377. .UNINDENT
  133378. .INDENT 0.0
  133379. .TP
  133380. .B salt.states.splunk_search.present(name, profile=u\(aqsplunk\(aq, **kwargs)
  133381. Ensure a search is present
  133382. .INDENT 7.0
  133383. .INDENT 3.5
  133384. .sp
  133385. .nf
  133386. .ft C
  133387. API Error Search:
  133388. splunk_search.present:
  133389. search: index=main sourcetype=blah
  133390. template: alert_5min
  133391. .ft P
  133392. .fi
  133393. .UNINDENT
  133394. .UNINDENT
  133395. .sp
  133396. The following parameters are required:
  133397. .INDENT 7.0
  133398. .TP
  133399. .B name
  133400. This is the name of the search in splunk
  133401. .UNINDENT
  133402. .UNINDENT
  133403. .SS salt.states.sqlite3
  133404. .SS Management of SQLite3 databases
  133405. .sp
  133406. New in version 2016.3.0.
  133407. .INDENT 0.0
  133408. .TP
  133409. .B depends
  133410. .INDENT 7.0
  133411. .IP \(bu 2
  133412. SQLite3 Python Module
  133413. .UNINDENT
  133414. .TP
  133415. .B configuration
  133416. See \fBsalt.modules.sqlite3\fP for setup instructions
  133417. .UNINDENT
  133418. .sp
  133419. The sqlite3 module is used to create and manage sqlite3 databases
  133420. and execute queries
  133421. .sp
  133422. Here is an example of creating a table using sql statements:
  133423. .INDENT 0.0
  133424. .INDENT 3.5
  133425. .sp
  133426. .nf
  133427. .ft C
  133428. users:
  133429. sqlite3.table_present:
  133430. \- db: /var/www/data/app.sqlite
  133431. \- schema: CREATE TABLE \(gausers\(ga (\(gausername\(ga TEXT COLLATE NOCASE UNIQUE NOT NULL, \(gapassword\(ga BLOB NOT NULL, \(gasalt\(ga BLOB NOT NULL, \(galast_login\(ga INT)
  133432. .ft P
  133433. .fi
  133434. .UNINDENT
  133435. .UNINDENT
  133436. .sp
  133437. Here is an example of creating a table using yaml/jinja instead of sql:
  133438. .INDENT 0.0
  133439. .INDENT 3.5
  133440. .sp
  133441. .nf
  133442. .ft C
  133443. users:
  133444. sqlite3.table_present:
  133445. \- db: /var/www/app.sqlite
  133446. \- schema:
  133447. \- email TEXT COLLATE NOCASE UNIQUE NOT NULL
  133448. \- firstname TEXT NOT NULL
  133449. \- lastname TEXT NOT NULL
  133450. \- company TEXT NOT NULL
  133451. \- password BLOB NOT NULL
  133452. \- salt BLOB NOT NULL
  133453. .ft P
  133454. .fi
  133455. .UNINDENT
  133456. .UNINDENT
  133457. .sp
  133458. Here is an example of making sure a table is absent:
  133459. .INDENT 0.0
  133460. .INDENT 3.5
  133461. .sp
  133462. .nf
  133463. .ft C
  133464. badservers:
  133465. sqlite3.table_absent:
  133466. \- db: /var/www/data/users.sqlite
  133467. .ft P
  133468. .fi
  133469. .UNINDENT
  133470. .UNINDENT
  133471. .sp
  133472. Sometimes you would to have specific data in tables to be used by other services
  133473. Here is an example of making sure rows with specific data exist:
  133474. .INDENT 0.0
  133475. .INDENT 3.5
  133476. .sp
  133477. .nf
  133478. .ft C
  133479. user_john_doe_xyz:
  133480. sqlite3.row_present:
  133481. \- db: /var/www/app.sqlite
  133482. \- table: users
  133483. \- where_sql: email=\(aqjohn.doe@companyxyz.com\(aq
  133484. \- data:
  133485. email: john.doe@companyxyz.com
  133486. lastname: doe
  133487. firstname: john
  133488. company: companyxyz.com
  133489. password: abcdef012934125
  133490. salt: abcdef012934125
  133491. \- require:
  133492. \- sqlite3: users
  133493. .ft P
  133494. .fi
  133495. .UNINDENT
  133496. .UNINDENT
  133497. .sp
  133498. Here is an example of removing a row from a table:
  133499. .INDENT 0.0
  133500. .INDENT 3.5
  133501. .sp
  133502. .nf
  133503. .ft C
  133504. user_john_doe_abc:
  133505. sqlite3.row_absent:
  133506. \- db: /var/www/app.sqlite
  133507. \- table: users
  133508. \- where_sql: email="john.doe@companyabc.com"
  133509. \- require:
  133510. \- sqlite3: users
  133511. .ft P
  133512. .fi
  133513. .UNINDENT
  133514. .UNINDENT
  133515. .sp
  133516. Note that there is no explicit state to perform random queries, however, this
  133517. can be approximated with sqlite3\(aqs module functions and module.run:
  133518. .INDENT 0.0
  133519. .INDENT 3.5
  133520. .sp
  133521. .nf
  133522. .ft C
  133523. zone\-delete:
  133524. module.run:
  133525. \- name: sqlite3.modify
  133526. \- db: {{ db }}
  133527. \- sql: "DELETE FROM records WHERE id > {{ count[0] }} AND domain_id = {{ domain_id }}"
  133528. \- watch:
  133529. \- sqlite3: zone\-insert\-12
  133530. .ft P
  133531. .fi
  133532. .UNINDENT
  133533. .UNINDENT
  133534. .INDENT 0.0
  133535. .TP
  133536. .B salt.states.sqlite3.row_absent(name, db, table, where_sql, where_args=None)
  133537. Makes sure the specified row is absent in db. If multiple rows
  133538. match where_sql, then the state will fail.
  133539. .INDENT 7.0
  133540. .TP
  133541. .B name
  133542. Only used as the unique ID
  133543. .TP
  133544. .B db
  133545. The database file name
  133546. .TP
  133547. .B table
  133548. The table name to check
  133549. .TP
  133550. .B where_sql
  133551. The sql to select the row to check
  133552. .TP
  133553. .B where_args
  133554. The list parameters to substitute in where_sql
  133555. .UNINDENT
  133556. .UNINDENT
  133557. .INDENT 0.0
  133558. .TP
  133559. .B salt.states.sqlite3.row_present(name, db, table, data, where_sql, where_args=None, update=False)
  133560. Checks to make sure the given row exists. If row exists and update is True
  133561. then row will be updated with data. Otherwise it will leave existing
  133562. row unmodified and check it against data. If the existing data
  133563. doesn\(aqt match data_check the state will fail. If the row doesn\(aqt
  133564. exist then it will insert data into the table. If more than one
  133565. row matches, then the state will fail.
  133566. .INDENT 7.0
  133567. .TP
  133568. .B name
  133569. Only used as the unique ID
  133570. .TP
  133571. .B db
  133572. The database file name
  133573. .TP
  133574. .B table
  133575. The table name to check the data
  133576. .TP
  133577. .B data
  133578. The dictionary of key/value pairs to check against if
  133579. row exists, insert into the table if it doesn\(aqt
  133580. .TP
  133581. .B where_sql
  133582. The sql to select the row to check
  133583. .TP
  133584. .B where_args
  133585. The list parameters to substitute in where_sql
  133586. .TP
  133587. .B update
  133588. True will replace the existing row with data
  133589. When False and the row exists and data does not equal
  133590. the row data then the state will fail
  133591. .UNINDENT
  133592. .UNINDENT
  133593. .INDENT 0.0
  133594. .TP
  133595. .B salt.states.sqlite3.table_absent(name, db)
  133596. Make sure the specified table does not exist
  133597. .INDENT 7.0
  133598. .TP
  133599. .B name
  133600. The name of the table
  133601. .TP
  133602. .B db
  133603. The name of the database file
  133604. .UNINDENT
  133605. .UNINDENT
  133606. .INDENT 0.0
  133607. .TP
  133608. .B salt.states.sqlite3.table_present(name, db, schema, force=False)
  133609. Make sure the specified table exists with the specified schema
  133610. .INDENT 7.0
  133611. .TP
  133612. .B name
  133613. The name of the table
  133614. .TP
  133615. .B db
  133616. The name of the database file
  133617. .TP
  133618. .B schema
  133619. The dictionary containing the schema information
  133620. .TP
  133621. .B force
  133622. If the name of the table exists and force is set to False,
  133623. the state will fail. If force is set to True, the existing
  133624. table will be replaced with the new table
  133625. .UNINDENT
  133626. .UNINDENT
  133627. .SS salt.states.ssh_auth
  133628. .SS Control of entries in SSH authorized_key files
  133629. .sp
  133630. The information stored in a user\(aqs SSH authorized key file can be easily
  133631. controlled via the ssh_auth state. Defaults can be set by the enc, options,
  133632. and comment keys. These defaults can be overridden by including them in the
  133633. name.
  133634. .sp
  133635. Since the YAML specification limits the length of simple keys to 1024
  133636. characters, and since SSH keys are often longer than that, you may have
  133637. to use a YAML \(aqexplicit key\(aq, as demonstrated in the second example below.
  133638. .INDENT 0.0
  133639. .INDENT 3.5
  133640. .sp
  133641. .nf
  133642. .ft C
  133643. AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==:
  133644. ssh_auth.present:
  133645. \- user: root
  133646. \- enc: ssh\-dss
  133647. ? AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==...
  133648. :
  133649. ssh_auth.present:
  133650. \- user: root
  133651. \- enc: ssh\-dss
  133652. thatch:
  133653. ssh_auth.present:
  133654. \- user: root
  133655. \- source: salt://ssh_keys/thatch.id_rsa.pub
  133656. \- config: \(aq%h/.ssh/authorized_keys\(aq
  133657. sshkeys:
  133658. ssh_auth.present:
  133659. \- user: root
  133660. \- enc: ssh\-rsa
  133661. \- options:
  133662. \- option1="value1"
  133663. \- option2="value2 flag2"
  133664. \- comment: myuser
  133665. \- names:
  133666. \- AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==
  133667. \- ssh\-dss AAAAB3NzaCL0sQ9fJ5bYTEyY== user@domain
  133668. \- option3="value3" ssh\-dss AAAAB3NzaC1kcQ9J5bYTEyY== other@testdomain
  133669. \- AAAAB3NzaC1kcQ9fJFF435bYTEyY== newcomment
  133670. sshkeys:
  133671. ssh_auth.manage:
  133672. \- user: root
  133673. \- enc: ssh\-rsa
  133674. \- options:
  133675. \- option1="value1"
  133676. \- option2="value2 flag2"
  133677. \- comment: myuser
  133678. \- ssh_keys:
  133679. \- AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyY==
  133680. \- ssh\-dss AAAAB3NzaCL0sQ9fJ5bYTEyY== user@domain
  133681. \- option3="value3" ssh\-dss AAAAB3NzaC1kcQ9J5bYTEyY== other@testdomain
  133682. \- AAAAB3NzaC1kcQ9fJFF435bYTEyY== newcomment
  133683. .ft P
  133684. .fi
  133685. .UNINDENT
  133686. .UNINDENT
  133687. .INDENT 0.0
  133688. .TP
  133689. .B salt.states.ssh_auth.absent(name, user, enc=u\(aqssh\-rsa\(aq, comment=u\(aq\(aq, source=u\(aq\(aq, options=None, config=u\(aq.ssh/authorized_keys\(aq, fingerprint_hash_type=None)
  133690. Verifies that the specified SSH key is absent
  133691. .INDENT 7.0
  133692. .TP
  133693. .B name
  133694. The SSH key to manage
  133695. .TP
  133696. .B user
  133697. The user who owns the SSH authorized keys file to modify
  133698. .TP
  133699. .B enc
  133700. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133701. or ssh\-dss
  133702. .TP
  133703. .B comment
  133704. The comment to be placed with the SSH public key
  133705. .TP
  133706. .B options
  133707. The options passed to the key, pass a list object
  133708. .TP
  133709. .B source
  133710. The source file for the key(s). Can contain any number of public keys,
  133711. in standard "authorized_keys" format. If this is set, comment, enc and
  133712. options will be ignored.
  133713. .sp
  133714. New in version 2015.8.0.
  133715. .TP
  133716. .B config
  133717. The location of the authorized keys file relative to the user\(aqs home
  133718. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133719. %h for username and home path supported.
  133720. .TP
  133721. .B fingerprint_hash_type
  133722. The public key fingerprint hash type that the public key fingerprint
  133723. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133724. .sp
  133725. New in version 2016.11.7.
  133726. .UNINDENT
  133727. .UNINDENT
  133728. .INDENT 0.0
  133729. .TP
  133730. .B salt.states.ssh_auth.manage(name, ssh_keys, user, enc=u\(aqssh\-rsa\(aq, comment=u\(aq\(aq, source=u\(aq\(aq, options=None, config=u\(aq.ssh/authorized_keys\(aq, fingerprint_hash_type=None, **kwargs)
  133731. New in version 3000.
  133732. .sp
  133733. Ensures that only the specified ssh_keys are present for the specified user
  133734. .INDENT 7.0
  133735. .TP
  133736. .B ssh_keys
  133737. The SSH key to manage
  133738. .TP
  133739. .B user
  133740. The user who owns the SSH authorized keys file to modify
  133741. .TP
  133742. .B enc
  133743. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133744. or ssh\-dss
  133745. .TP
  133746. .B comment
  133747. The comment to be placed with the SSH public key
  133748. .TP
  133749. .B source
  133750. The source file for the key(s). Can contain any number of public keys,
  133751. in standard "authorized_keys" format. If this is set, comment and enc
  133752. will be ignored.
  133753. .UNINDENT
  133754. .sp
  133755. \fBNOTE:\fP
  133756. .INDENT 7.0
  133757. .INDENT 3.5
  133758. The source file must contain keys in the format \fB<enc> <key>
  133759. <comment>\fP\&. If you have generated a keypair using PuTTYgen, then you
  133760. will need to do the following to retrieve an OpenSSH\-compatible public
  133761. key.
  133762. .INDENT 0.0
  133763. .IP 1. 3
  133764. In PuTTYgen, click \fBLoad\fP, and select the \fIprivate\fP key file (not
  133765. the public key), and click \fBOpen\fP\&.
  133766. .IP 2. 3
  133767. Copy the public key from the box labeled \fBPublic key for pasting
  133768. into OpenSSH authorized_keys file\fP\&.
  133769. .IP 3. 3
  133770. Paste it into a new file.
  133771. .UNINDENT
  133772. .UNINDENT
  133773. .UNINDENT
  133774. .INDENT 7.0
  133775. .TP
  133776. .B options
  133777. The options passed to the keys, pass a list object
  133778. .TP
  133779. .B config
  133780. The location of the authorized keys file relative to the user\(aqs home
  133781. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133782. %h for username and home path supported.
  133783. .TP
  133784. .B fingerprint_hash_type
  133785. The public key fingerprint hash type that the public key fingerprint
  133786. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133787. .UNINDENT
  133788. .UNINDENT
  133789. .INDENT 0.0
  133790. .TP
  133791. .B salt.states.ssh_auth.present(name, user, enc=u\(aqssh\-rsa\(aq, comment=u\(aq\(aq, source=u\(aq\(aq, options=None, config=u\(aq.ssh/authorized_keys\(aq, fingerprint_hash_type=None, **kwargs)
  133792. Verifies that the specified SSH key is present for the specified user
  133793. .INDENT 7.0
  133794. .TP
  133795. .B name
  133796. The SSH key to manage
  133797. .TP
  133798. .B user
  133799. The user who owns the SSH authorized keys file to modify
  133800. .TP
  133801. .B enc
  133802. Defines what type of key is being used; can be ed25519, ecdsa, ssh\-rsa
  133803. or ssh\-dss
  133804. .TP
  133805. .B comment
  133806. The comment to be placed with the SSH public key
  133807. .TP
  133808. .B source
  133809. The source file for the key(s). Can contain any number of public keys,
  133810. in standard "authorized_keys" format. If this is set, comment and enc
  133811. will be ignored.
  133812. .UNINDENT
  133813. .sp
  133814. \fBNOTE:\fP
  133815. .INDENT 7.0
  133816. .INDENT 3.5
  133817. The source file must contain keys in the format \fB<enc> <key>
  133818. <comment>\fP\&. If you have generated a keypair using PuTTYgen, then you
  133819. will need to do the following to retrieve an OpenSSH\-compatible public
  133820. key.
  133821. .INDENT 0.0
  133822. .IP 1. 3
  133823. In PuTTYgen, click \fBLoad\fP, and select the \fIprivate\fP key file (not
  133824. the public key), and click \fBOpen\fP\&.
  133825. .IP 2. 3
  133826. Copy the public key from the box labeled \fBPublic key for pasting
  133827. into OpenSSH authorized_keys file\fP\&.
  133828. .IP 3. 3
  133829. Paste it into a new file.
  133830. .UNINDENT
  133831. .UNINDENT
  133832. .UNINDENT
  133833. .INDENT 7.0
  133834. .TP
  133835. .B options
  133836. The options passed to the key, pass a list object
  133837. .TP
  133838. .B config
  133839. The location of the authorized keys file relative to the user\(aqs home
  133840. directory, defaults to ".ssh/authorized_keys". Token expansion %u and
  133841. %h for username and home path supported.
  133842. .TP
  133843. .B fingerprint_hash_type
  133844. The public key fingerprint hash type that the public key fingerprint
  133845. was originally hashed with. This defaults to \fBsha256\fP if not specified.
  133846. .UNINDENT
  133847. .UNINDENT
  133848. .SS salt.states.stateconf
  133849. .SS Stateconf System
  133850. .sp
  133851. The stateconf system is intended for use only with the stateconf renderer. This
  133852. State module presents the set function. This function does not execute any
  133853. functionality, but is used to interact with the stateconf renderer.
  133854. .INDENT 0.0
  133855. .TP
  133856. .B salt.states.stateconf.context(name, **kwargs)
  133857. No\-op state to support state config via the stateconf renderer.
  133858. .UNINDENT
  133859. .INDENT 0.0
  133860. .TP
  133861. .B salt.states.stateconf.set(name, **kwargs)
  133862. No\-op state to support state config via the stateconf renderer.
  133863. .UNINDENT
  133864. .SS salt.states.status
  133865. .sp
  133866. Minion status monitoring
  133867. .sp
  133868. Maps to the \fIstatus\fP execution module.
  133869. .INDENT 0.0
  133870. .TP
  133871. .B salt.states.status.loadavg(name, maximum=None, minimum=None)
  133872. Return the current load average for the specified minion. Available values
  133873. for name are \fI1\-min\fP, \fI5\-min\fP and \fI15\-min\fP\&. \fIminimum\fP and \fImaximum\fP values
  133874. should be passed in as strings.
  133875. .UNINDENT
  133876. .INDENT 0.0
  133877. .TP
  133878. .B salt.states.status.process(name)
  133879. Return whether the specified signature is found in the process tree. This
  133880. differs slightly from the services states, in that it may refer to a
  133881. process that is not managed via the init system.
  133882. .UNINDENT
  133883. .SS salt.states.statuspage
  133884. .SS StatusPage
  133885. .sp
  133886. Manage the \fI\%StatusPage\fP configuration.
  133887. .sp
  133888. In the minion configuration file, the following block is required:
  133889. .INDENT 0.0
  133890. .INDENT 3.5
  133891. .sp
  133892. .nf
  133893. .ft C
  133894. statuspage:
  133895. api_key: <API_KEY>
  133896. page_id: <PAGE_ID>
  133897. .ft P
  133898. .fi
  133899. .UNINDENT
  133900. .UNINDENT
  133901. .sp
  133902. New in version 2017.7.0.
  133903. .INDENT 0.0
  133904. .TP
  133905. .B salt.states.statuspage.create(name, endpoint=u\(aqincidents\(aq, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  133906. Insert a new entry under a specific endpoint.
  133907. .INDENT 7.0
  133908. .TP
  133909. .B endpoint: incidents
  133910. Insert under this specific endpoint.
  133911. .TP
  133912. .B page_id
  133913. Page ID. Can also be specified in the config file.
  133914. .TP
  133915. .B api_key
  133916. API key. Can also be specified in the config file.
  133917. .TP
  133918. .B api_version: 1
  133919. API version. Can also be specified in the config file.
  133920. .TP
  133921. .B api_url
  133922. Custom API URL in case the user has a StatusPage service running in a custom environment.
  133923. .TP
  133924. .B kwargs
  133925. Other params.
  133926. .UNINDENT
  133927. .sp
  133928. SLS Example:
  133929. .INDENT 7.0
  133930. .INDENT 3.5
  133931. .sp
  133932. .nf
  133933. .ft C
  133934. create\-my\-component:
  133935. statuspage.create:
  133936. \- endpoint: components
  133937. \- name: my component
  133938. \- group_id: 993vgplshj12
  133939. .ft P
  133940. .fi
  133941. .UNINDENT
  133942. .UNINDENT
  133943. .UNINDENT
  133944. .INDENT 0.0
  133945. .TP
  133946. .B salt.states.statuspage.delete(name, endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None)
  133947. Remove an entry from an endpoint.
  133948. .INDENT 7.0
  133949. .TP
  133950. .B endpoint: incidents
  133951. Request a specific endpoint.
  133952. .TP
  133953. .B page_id
  133954. Page ID. Can also be specified in the config file.
  133955. .TP
  133956. .B api_key
  133957. API key. Can also be specified in the config file.
  133958. .TP
  133959. .B api_version: 1
  133960. API version. Can also be specified in the config file.
  133961. .TP
  133962. .B api_url
  133963. Custom API URL in case the user has a StatusPage service running in a custom environment.
  133964. .UNINDENT
  133965. .sp
  133966. SLS Example:
  133967. .INDENT 7.0
  133968. .INDENT 3.5
  133969. .sp
  133970. .nf
  133971. .ft C
  133972. delete\-my\-component:
  133973. statuspage.delete:
  133974. \- endpoint: components
  133975. \- id: ftgks51sfs2d
  133976. .ft P
  133977. .fi
  133978. .UNINDENT
  133979. .UNINDENT
  133980. .UNINDENT
  133981. .INDENT 0.0
  133982. .TP
  133983. .B salt.states.statuspage.managed(name, config, api_url=None, page_id=None, api_key=None, api_version=None, pace=1, allow_empty=False)
  133984. Manage the StatusPage configuration.
  133985. .INDENT 7.0
  133986. .TP
  133987. .B config
  133988. Dictionary with the expected configuration of the StatusPage.
  133989. The main level keys of this dictionary represent the endpoint name.
  133990. If a certain endpoint does not exist in this structure, it will be ignored / not configured.
  133991. .TP
  133992. .B page_id
  133993. Page ID. Can also be specified in the config file.
  133994. .TP
  133995. .B api_key
  133996. API key. Can also be specified in the config file.
  133997. .TP
  133998. .B api_version: 1
  133999. API version. Can also be specified in the config file.
  134000. .TP
  134001. .B api_url
  134002. Custom API URL in case the user has a StatusPage service running in a custom environment.
  134003. .TP
  134004. .B pace: 1
  134005. Max requests per second allowed by the API.
  134006. .TP
  134007. .B allow_empty: False
  134008. Allow empty config.
  134009. .UNINDENT
  134010. .sp
  134011. SLS example:
  134012. .INDENT 7.0
  134013. .INDENT 3.5
  134014. .sp
  134015. .nf
  134016. .ft C
  134017. my\-statuspage\-config:
  134018. statuspage.managed:
  134019. \- config:
  134020. components:
  134021. \- name: component1
  134022. group_id: uy4g37rf
  134023. \- name: component2
  134024. group_id: 3n4uyu4gf
  134025. incidents:
  134026. \- name: incident1
  134027. status: resolved
  134028. impact: major
  134029. backfilled: false
  134030. \- name: incident2
  134031. status: investigating
  134032. impact: minor
  134033. .ft P
  134034. .fi
  134035. .UNINDENT
  134036. .UNINDENT
  134037. .UNINDENT
  134038. .INDENT 0.0
  134039. .TP
  134040. .B salt.states.statuspage.update(name, endpoint=u\(aqincidents\(aq, id=None, api_url=None, page_id=None, api_key=None, api_version=None, **kwargs)
  134041. Update attribute(s) of a specific endpoint.
  134042. .INDENT 7.0
  134043. .TP
  134044. .B id
  134045. The unique ID of the enpoint entry.
  134046. .TP
  134047. .B endpoint: incidents
  134048. Endpoint name.
  134049. .TP
  134050. .B page_id
  134051. Page ID. Can also be specified in the config file.
  134052. .TP
  134053. .B api_key
  134054. API key. Can also be specified in the config file.
  134055. .TP
  134056. .B api_version: 1
  134057. API version. Can also be specified in the config file.
  134058. .TP
  134059. .B api_url
  134060. Custom API URL in case the user has a StatusPage service running in a custom environment.
  134061. .UNINDENT
  134062. .sp
  134063. SLS Example:
  134064. .INDENT 7.0
  134065. .INDENT 3.5
  134066. .sp
  134067. .nf
  134068. .ft C
  134069. update\-my\-incident:
  134070. statuspage.update:
  134071. \- id: dz959yz2nd4l
  134072. \- status: resolved
  134073. .ft P
  134074. .fi
  134075. .UNINDENT
  134076. .UNINDENT
  134077. .UNINDENT
  134078. .SS salt.states.supervisord
  134079. .SS Interaction with the Supervisor daemon
  134080. .INDENT 0.0
  134081. .INDENT 3.5
  134082. .sp
  134083. .nf
  134084. .ft C
  134085. wsgi_server:
  134086. supervisord.running:
  134087. \- require:
  134088. \- pkg: supervisor
  134089. \- watch:
  134090. \- file: /etc/nginx/sites\-enabled/wsgi_server.conf
  134091. .ft P
  134092. .fi
  134093. .UNINDENT
  134094. .UNINDENT
  134095. .INDENT 0.0
  134096. .TP
  134097. .B salt.states.supervisord.dead(name, user=None, conf_file=None, bin_env=None, **kwargs)
  134098. Ensure the named service is dead (not running).
  134099. .INDENT 7.0
  134100. .TP
  134101. .B name
  134102. Service name as defined in the supervisor configuration file
  134103. .TP
  134104. .B user
  134105. Name of the user to run the supervisorctl command
  134106. .sp
  134107. New in version 0.17.0.
  134108. .TP
  134109. .B conf_file
  134110. path to supervisorctl config file
  134111. .TP
  134112. .B bin_env
  134113. path to supervisorctl bin or path to virtualenv with supervisor
  134114. installed
  134115. .UNINDENT
  134116. .UNINDENT
  134117. .INDENT 0.0
  134118. .TP
  134119. .B salt.states.supervisord.mod_watch(name, restart=True, update=False, user=None, conf_file=None, bin_env=None, **kwargs)
  134120. The supervisord watcher, called to invoke the watch command.
  134121. Always restart on watch
  134122. .sp
  134123. \fBNOTE:\fP
  134124. .INDENT 7.0
  134125. .INDENT 3.5
  134126. This state exists to support special handling of the \fBwatch\fP
  134127. requisite\&. It should not be called directly.
  134128. .sp
  134129. Parameters for this function should be set by the state being triggered.
  134130. .UNINDENT
  134131. .UNINDENT
  134132. .UNINDENT
  134133. .INDENT 0.0
  134134. .TP
  134135. .B salt.states.supervisord.running(name, restart=False, update=False, user=None, conf_file=None, bin_env=None, **kwargs)
  134136. Ensure the named service is running.
  134137. .INDENT 7.0
  134138. .TP
  134139. .B name
  134140. Service name as defined in the supervisor configuration file
  134141. .TP
  134142. .B restart
  134143. Whether to force a restart
  134144. .TP
  134145. .B update
  134146. Whether to update the supervisor configuration.
  134147. .TP
  134148. .B user
  134149. Name of the user to run the supervisorctl command
  134150. .sp
  134151. New in version 0.17.0.
  134152. .TP
  134153. .B conf_file
  134154. path to supervisorctl config file
  134155. .TP
  134156. .B bin_env
  134157. path to supervisorctl bin or path to virtualenv with supervisor
  134158. installed
  134159. .UNINDENT
  134160. .UNINDENT
  134161. .SS salt.states.sysctl
  134162. .SS Configuration of the kernel using sysctl
  134163. .sp
  134164. Control the kernel sysctl system.
  134165. .INDENT 0.0
  134166. .INDENT 3.5
  134167. .sp
  134168. .nf
  134169. .ft C
  134170. vm.swappiness:
  134171. sysctl.present:
  134172. \- value: 20
  134173. .ft P
  134174. .fi
  134175. .UNINDENT
  134176. .UNINDENT
  134177. .INDENT 0.0
  134178. .TP
  134179. .B salt.states.sysctl.present(name, value, config=None, ignore=False)
  134180. Ensure that the named sysctl value is set in memory and persisted to the
  134181. named configuration file. The default sysctl configuration file is
  134182. /etc/sysctl.conf
  134183. .INDENT 7.0
  134184. .TP
  134185. .B name
  134186. The name of the sysctl value to edit
  134187. .TP
  134188. .B value
  134189. The sysctl value to apply
  134190. .TP
  134191. .B config
  134192. The location of the sysctl configuration file. If not specified, the
  134193. proper location will be detected based on platform.
  134194. .TP
  134195. .B ignore
  134196. \&..versionadded:: neon
  134197. .sp
  134198. Adds \-\-ignore to sysctl commands. This suppresses errors in environments
  134199. where sysctl settings may have been disabled in kernel boot configuration.
  134200. Defaults to False
  134201. .UNINDENT
  134202. .UNINDENT
  134203. .SS salt.states.syslog_ng
  134204. .SS State module for syslog_ng
  134205. .INDENT 0.0
  134206. .TP
  134207. .B maintainer
  134208. Tibor Benke <\fI\%btibi@sch.bme.hu\fP>
  134209. .TP
  134210. .B maturity
  134211. new
  134212. .TP
  134213. .B depends
  134214. cmd, ps, syslog_ng
  134215. .TP
  134216. .B platform
  134217. all
  134218. .UNINDENT
  134219. .INDENT 0.0
  134220. .TP
  134221. .B Users can generate syslog\-ng configuration files from YAML format or use
  134222. plain ones and reload, start, or stop their syslog\-ng by using this module.
  134223. .UNINDENT
  134224. .SS Details
  134225. .sp
  134226. The service module is not available on all system, so this module includes
  134227. \fI\%syslog_ng.reloaded\fP,
  134228. \fI\%syslog_ng.stopped\fP,
  134229. and \fI\%syslog_ng.started\fP functions.
  134230. If the service module is available on the computers, users should use that.
  134231. .sp
  134232. Users can generate syslog\-ng configuration with
  134233. \fI\%syslog_ng.config\fP function.
  134234. For more information see syslog\-ng state usage\&.
  134235. .SS Syslog\-ng configuration file format
  134236. .sp
  134237. The syntax of a configuration snippet in syslog\-ng.conf:
  134238. .INDENT 0.0
  134239. .INDENT 3.5
  134240. .INDENT 0.0
  134241. .INDENT 3.5
  134242. object_type object_id {<options>};
  134243. .UNINDENT
  134244. .UNINDENT
  134245. .UNINDENT
  134246. .UNINDENT
  134247. .sp
  134248. These constructions are also called statements. There are options inside of them:
  134249. .INDENT 0.0
  134250. .INDENT 3.5
  134251. .INDENT 0.0
  134252. .INDENT 3.5
  134253. option(parameter1, parameter2); option2(parameter1, parameter2);
  134254. .UNINDENT
  134255. .UNINDENT
  134256. .UNINDENT
  134257. .UNINDENT
  134258. .sp
  134259. You can find more information about syslog\-ng\(aqs configuration syntax in the
  134260. Syslog\-ng Admin guide:
  134261. \fI\%http://www.balabit.com/sites/default/files/documents/syslog\-ng\-ose\-3.5\-guides/en/syslog\-ng\-ose\-v3.5\-guide\-admin/html\-single/index.html#syslog\-ng.conf.5\fP
  134262. .INDENT 0.0
  134263. .TP
  134264. .B salt.states.syslog_ng.config(name, config, write=True)
  134265. Builds syslog\-ng configuration.
  134266. .sp
  134267. name : the id of the Salt document
  134268. config : the parsed YAML code
  134269. write : if True, it writes the config into the configuration file,
  134270. otherwise just returns it
  134271. .UNINDENT
  134272. .INDENT 0.0
  134273. .TP
  134274. .B salt.states.syslog_ng.reloaded(name)
  134275. Reloads syslog\-ng.
  134276. .UNINDENT
  134277. .INDENT 0.0
  134278. .TP
  134279. .B salt.states.syslog_ng.started(name=None, user=None, group=None, chroot=None, caps=None, no_caps=False, pidfile=None, enable_core=False, fd_limit=None, verbose=False, debug=False, trace=False, yydebug=False, persist_file=None, control=None, worker_threads=None, *args, **kwargs)
  134280. Ensures, that syslog\-ng is started via the given parameters.
  134281. .sp
  134282. Users shouldn\(aqt use this function, if the service module is available on
  134283. their system.
  134284. .UNINDENT
  134285. .INDENT 0.0
  134286. .TP
  134287. .B salt.states.syslog_ng.stopped(name=None)
  134288. Kills syslog\-ng.
  134289. .UNINDENT
  134290. .SS salt.states.sysrc
  134291. .sp
  134292. State to work with sysrc
  134293. .INDENT 0.0
  134294. .TP
  134295. .B salt.states.sysrc.absent(name, **kwargs)
  134296. Ensure a sysrc variable is absent.
  134297. .INDENT 7.0
  134298. .TP
  134299. .B name
  134300. The variable name to set
  134301. .TP
  134302. .B file
  134303. (optional) The rc file to add the variable to.
  134304. .TP
  134305. .B jail
  134306. (option) the name or JID of the jail to set the value in.
  134307. .UNINDENT
  134308. .UNINDENT
  134309. .INDENT 0.0
  134310. .TP
  134311. .B salt.states.sysrc.managed(name, value, **kwargs)
  134312. Ensure a sysrc variable is set to a specific value.
  134313. .INDENT 7.0
  134314. .TP
  134315. .B name
  134316. The variable name to set
  134317. .TP
  134318. .B value
  134319. Value to set the variable to
  134320. .TP
  134321. .B file
  134322. (optional) The rc file to add the variable to.
  134323. .TP
  134324. .B jail
  134325. (option) the name or JID of the jail to set the value in.
  134326. .UNINDENT
  134327. .sp
  134328. Example:
  134329. .INDENT 7.0
  134330. .INDENT 3.5
  134331. .sp
  134332. .nf
  134333. .ft C
  134334. syslogd:
  134335. sysrc.managed:
  134336. \- name: syslogd_flags
  134337. \- value: \-ss
  134338. .ft P
  134339. .fi
  134340. .UNINDENT
  134341. .UNINDENT
  134342. .UNINDENT
  134343. .SS salt.states.telemetry_alert
  134344. .SS Manage Telemetry alert configurations
  134345. .sp
  134346. New in version 2016.3.0.
  134347. .sp
  134348. Create, Update and destroy Mongo Telemetry alert configurations.
  134349. .sp
  134350. This module uses requests, which can be installed via package, or pip.
  134351. .sp
  134352. This module accepts explicit credential (telemetry api key)
  134353. or can also read api key credentials from a pillar.
  134354. Example:
  134355. .INDENT 0.0
  134356. .INDENT 3.5
  134357. .sp
  134358. .nf
  134359. .ft C
  134360. ensure telemetry alert X is defined on deployment Y:
  134361. telemetry_alert.present:
  134362. \- deployment_id: "rs\-XXXXXX"
  134363. \- metric_name: "testMetric"
  134364. \- alert_config:
  134365. max: 1
  134366. filter: SERVER_ROLE_MONGOD_PRIMARY
  134367. escalate_to: "example@pagerduty.com"
  134368. \- name: "**MANAGED BY ORCA DO NOT EDIT BY HAND** manages alarm on testMetric"
  134369. .ft P
  134370. .fi
  134371. .UNINDENT
  134372. .UNINDENT
  134373. .INDENT 0.0
  134374. .TP
  134375. .B salt.states.telemetry_alert.absent(name, deployment_id, metric_name, api_key=None, profile=u\(aqtelemetry\(aq)
  134376. Ensure the telemetry alert config is deleted
  134377. .INDENT 7.0
  134378. .TP
  134379. .B name
  134380. An optional description of the alarms (not currently supported by telemetry API)
  134381. .TP
  134382. .B deployment_id
  134383. Specifies the ID of the root deployment resource
  134384. (replica set cluster or sharded cluster) to which this alert definition is attached
  134385. .TP
  134386. .B metric_name
  134387. Specifies the unique ID of the metric to whose values these thresholds will be applied
  134388. .TP
  134389. .B api_key
  134390. Telemetry api key for the user
  134391. .TP
  134392. .B profile
  134393. A dict with telemetry config data. If present, will be used instead of
  134394. api_key.
  134395. .UNINDENT
  134396. .UNINDENT
  134397. .INDENT 0.0
  134398. .TP
  134399. .B salt.states.telemetry_alert.present(name, deployment_id, metric_name, alert_config, api_key=None, profile=u\(aqtelemetry\(aq)
  134400. Ensure the telemetry alert exists.
  134401. .INDENT 7.0
  134402. .TP
  134403. .B name
  134404. An optional description of the alarm (not currently supported by telemetry API)
  134405. .TP
  134406. .B deployment_id
  134407. Specifies the ID of the root deployment resource
  134408. (replica set cluster or sharded cluster) to which this alert definition is attached
  134409. .TP
  134410. .B metric_name
  134411. Specifies the unique ID of the metric to whose values these thresholds will be applied
  134412. .TP
  134413. .B alert_config: Is a list of dictionaries where each dict contains the following fields:
  134414. .INDENT 7.0
  134415. .TP
  134416. .B filter
  134417. By default the alert will apply to the deployment and all its constituent resources.
  134418. If the alert only applies to a subset of those resources, a filter may be specified to narrow this scope.
  134419. .TP
  134420. .B min
  134421. the smallest "ok" value the metric may take on; if missing or null, no minimum is enforced.
  134422. .TP
  134423. .B max
  134424. the largest "ok" value the metric may take on; if missing or null, no maximum is enforced.
  134425. .TP
  134426. .B notify_all
  134427. Used to indicate if you want to alert both onCallEngineer and apiNotifications
  134428. .UNINDENT
  134429. .TP
  134430. .B api_key
  134431. Telemetry api key for the user
  134432. .TP
  134433. .B profile
  134434. A dict of telemetry config information. If present, will be used instead of
  134435. api_key.
  134436. .UNINDENT
  134437. .UNINDENT
  134438. .SS salt.states.timezone
  134439. .SS Management of timezones
  134440. .sp
  134441. The timezone can be managed for the system:
  134442. .INDENT 0.0
  134443. .INDENT 3.5
  134444. .sp
  134445. .nf
  134446. .ft C
  134447. America/Denver:
  134448. timezone.system
  134449. .ft P
  134450. .fi
  134451. .UNINDENT
  134452. .UNINDENT
  134453. .sp
  134454. The system and the hardware clock are not necessarily set to the same time.
  134455. By default, the hardware clock is set to localtime, meaning it is set to the
  134456. same time as the system clock. If \fIutc\fP is set to True, then the hardware clock
  134457. will be set to UTC, and the system clock will be an offset of that.
  134458. .INDENT 0.0
  134459. .INDENT 3.5
  134460. .sp
  134461. .nf
  134462. .ft C
  134463. America/Denver:
  134464. timezone.system:
  134465. \- utc: True
  134466. .ft P
  134467. .fi
  134468. .UNINDENT
  134469. .UNINDENT
  134470. .sp
  134471. The Ubuntu community documentation contains an explanation of this setting, as
  134472. it applies to systems that dual\-boot with Windows. This is explained in greater
  134473. detail \fI\%here\fP\&.
  134474. .INDENT 0.0
  134475. .TP
  134476. .B salt.states.timezone.system(name, utc=True)
  134477. Set the timezone for the system.
  134478. .INDENT 7.0
  134479. .TP
  134480. .B name
  134481. The name of the timezone to use (e.g.: America/Denver)
  134482. .TP
  134483. .B utc
  134484. Whether or not to set the hardware clock to UTC (default is True)
  134485. .UNINDENT
  134486. .UNINDENT
  134487. .SS salt.states.tls
  134488. .SS Enforce state for SSL/TLS
  134489. .INDENT 0.0
  134490. .TP
  134491. .B salt.states.tls.valid_certificate(name, weeks=0, days=0, hours=0, minutes=0, seconds=0)
  134492. Verify that a TLS certificate is valid now and (optionally) will be valid
  134493. for the time specified through weeks, days, hours, minutes, and seconds.
  134494. .UNINDENT
  134495. .SS salt.states.tomcat
  134496. .SS Manage Apache Tomcat web applications
  134497. .sp
  134498. \fBNOTE:\fP
  134499. .INDENT 0.0
  134500. .INDENT 3.5
  134501. This state requires the Tomcat Manager webapp to be installed and running.
  134502. .UNINDENT
  134503. .UNINDENT
  134504. .sp
  134505. The following grains/pillars must be set for communication with Tomcat Manager
  134506. to work:
  134507. .INDENT 0.0
  134508. .INDENT 3.5
  134509. .sp
  134510. .nf
  134511. .ft C
  134512. tomcat\-manager:
  134513. user: \(aqtomcat\-manager\(aq
  134514. passwd: \(aqPassw0rd\(aq
  134515. .ft P
  134516. .fi
  134517. .UNINDENT
  134518. .UNINDENT
  134519. .SS Configuring Tomcat Manager
  134520. .sp
  134521. To manage webapps via the Tomcat Manager, you\(aqll need to configure
  134522. a valid user in the file \fBconf/tomcat\-users.xml\fP\&.
  134523. .sp
  134524. conf/tomcat\-users.xml
  134525. .INDENT 0.0
  134526. .INDENT 3.5
  134527. .sp
  134528. .nf
  134529. .ft C
  134530. <?xml version=\(aq1.0\(aq encoding=\(aqutf\-8\(aq?>
  134531. <tomcat\-users>
  134532. <role rolename="manager\-script"/>
  134533. <user username="tomcat\-manager" password="Passw0rd" roles="manager\-script"/>
  134534. </tomcat\-users>
  134535. .ft P
  134536. .fi
  134537. .UNINDENT
  134538. .UNINDENT
  134539. Notes.INDENT 0.0
  134540. .IP \(bu 2
  134541. Using multiple versions (aka. parallel deployments) on the same context
  134542. path is not supported.
  134543. .IP \(bu 2
  134544. More information about the Tomcat Manager:
  134545. \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/manager\-howto.html\fP
  134546. .IP \(bu 2
  134547. If you use only this module for deployments you might want to restrict
  134548. access to the manager so it\(aqs only accessible via localhost.
  134549. For more info: \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/manager\-howto.html#Configuring_Manager_Application_Access\fP
  134550. .IP \(bu 2
  134551. .INDENT 2.0
  134552. .TP
  134553. .B Last tested on:
  134554. .INDENT 7.0
  134555. .TP
  134556. .B Tomcat Version:
  134557. Apache Tomcat/7.0.54
  134558. .TP
  134559. .B JVM Vendor:
  134560. Oracle Corporation
  134561. .TP
  134562. .B JVM Version:
  134563. 1.8.0_101\-b13
  134564. .TP
  134565. .B OS Architecture:
  134566. amd64
  134567. .TP
  134568. .B OS Name:
  134569. Linux
  134570. .TP
  134571. .B OS Version:
  134572. 3.10.0\-327.22.2.el7.x86_64
  134573. .UNINDENT
  134574. .UNINDENT
  134575. .UNINDENT
  134576. .INDENT 0.0
  134577. .TP
  134578. .B salt.states.tomcat.mod_watch(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134579. The tomcat watcher, called to invoke the watch command.
  134580. When called, it will reload the webapp in question
  134581. .sp
  134582. \fBNOTE:\fP
  134583. .INDENT 7.0
  134584. .INDENT 3.5
  134585. This state exists to support special handling of the \fBwatch\fP
  134586. requisite\&. It should not be called directly.
  134587. .sp
  134588. Parameters for this function should be set by the state being triggered.
  134589. .UNINDENT
  134590. .UNINDENT
  134591. .UNINDENT
  134592. .INDENT 0.0
  134593. .TP
  134594. .B salt.states.tomcat.undeployed(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134595. Enforce that the WAR will be undeployed from the server
  134596. .INDENT 7.0
  134597. .TP
  134598. .B name
  134599. The context path to undeploy.
  134600. .TP
  134601. .B url
  134602. \fI\%http://localhost:8080/manager\fP
  134603. The URL of the server with the Tomcat Manager webapp.
  134604. .TP
  134605. .B timeout
  134606. 180
  134607. Timeout for HTTP request to the Tomcat Manager.
  134608. .UNINDENT
  134609. .sp
  134610. Example:
  134611. .INDENT 7.0
  134612. .INDENT 3.5
  134613. .sp
  134614. .nf
  134615. .ft C
  134616. jenkins:
  134617. tomcat.undeployed:
  134618. \- name: /ran
  134619. \- require:
  134620. \- service: application\-service
  134621. .ft P
  134622. .fi
  134623. .UNINDENT
  134624. .UNINDENT
  134625. .UNINDENT
  134626. .INDENT 0.0
  134627. .TP
  134628. .B salt.states.tomcat.wait(name, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180)
  134629. Wait for the Tomcat Manager to load.
  134630. .sp
  134631. Notice that if tomcat is not running we won\(aqt wait for it start and the
  134632. state will fail. This state can be required in the tomcat.war_deployed
  134633. state to make sure tomcat is running and that the manager is running as
  134634. well and ready for deployment.
  134635. .INDENT 7.0
  134636. .TP
  134637. .B url
  134638. \fI\%http://localhost:8080/manager\fP
  134639. The URL of the server with the Tomcat Manager webapp.
  134640. .TP
  134641. .B timeout
  134642. 180
  134643. Timeout for HTTP request to the Tomcat Manager.
  134644. .UNINDENT
  134645. .sp
  134646. Example:
  134647. .INDENT 7.0
  134648. .INDENT 3.5
  134649. .sp
  134650. .nf
  134651. .ft C
  134652. tomcat\-service:
  134653. service.running:
  134654. \- name: tomcat
  134655. \- enable: True
  134656. wait\-for\-tomcatmanager:
  134657. tomcat.wait:
  134658. \- timeout: 300
  134659. \- require:
  134660. \- service: tomcat\-service
  134661. jenkins:
  134662. tomcat.war_deployed:
  134663. \- name: /ran
  134664. \- war: salt://jenkins\-1.2.4.war
  134665. \- require:
  134666. \- tomcat: wait\-for\-tomcatmanager
  134667. .ft P
  134668. .fi
  134669. .UNINDENT
  134670. .UNINDENT
  134671. .UNINDENT
  134672. .INDENT 0.0
  134673. .TP
  134674. .B salt.states.tomcat.war_deployed(name, war, force=False, url=u\(aqhttp://localhost:8080/manager\(aq, timeout=180, temp_war_location=None, version=True)
  134675. Enforce that the WAR will be deployed and started in the context path,
  134676. while making use of WAR versions in the filename.
  134677. .sp
  134678. \fBNOTE:\fP
  134679. .INDENT 7.0
  134680. .INDENT 3.5
  134681. For more info about Tomcats file paths and context naming, please see
  134682. \fI\%http://tomcat.apache.org/tomcat\-7.0\-doc/config/context.html#Naming\fP
  134683. .UNINDENT
  134684. .UNINDENT
  134685. .INDENT 7.0
  134686. .TP
  134687. .B name
  134688. The context path to deploy (incl. forward slash) the WAR to.
  134689. .TP
  134690. .B war
  134691. Absolute path to WAR file (should be accessible by the user running
  134692. Tomcat) or a path supported by the \fBsalt.modules.cp.get_url\fP function.
  134693. .TP
  134694. .B force
  134695. False
  134696. Force deployment even if the version strings are the same.
  134697. Disabled by default.
  134698. .TP
  134699. .B url
  134700. \fI\%http://localhost:8080/manager\fP
  134701. The URL of the Tomcat Web Application Manager.
  134702. .TP
  134703. .B timeout
  134704. 180
  134705. Timeout for HTTP requests to the Tomcat Manager.
  134706. .TP
  134707. .B temp_war_location
  134708. None
  134709. Use another location to temporarily copy the WAR file to.
  134710. By default the system\(aqs temp directory is used.
  134711. .TP
  134712. .B version
  134713. \(aq\(aq
  134714. Specify the WAR version. If this argument is provided, it overrides
  134715. the version encoded in the WAR file name, if one is present.
  134716. .sp
  134717. New in version 2015.8.6.
  134718. .sp
  134719. Use \fBFalse\fP or blank value to prevent guessing the version and keeping it blank.
  134720. .sp
  134721. New in version 2016.11.0.
  134722. .UNINDENT
  134723. .sp
  134724. Example:
  134725. .INDENT 7.0
  134726. .INDENT 3.5
  134727. .sp
  134728. .nf
  134729. .ft C
  134730. jenkins:
  134731. tomcat.war_deployed:
  134732. \- name: /salt\-powered\-jenkins
  134733. \- war: salt://jenkins\-1.2.4.war
  134734. \- require:
  134735. \- service: application\-service
  134736. .ft P
  134737. .fi
  134738. .UNINDENT
  134739. .UNINDENT
  134740. .sp
  134741. \fBNOTE:\fP
  134742. .INDENT 7.0
  134743. .INDENT 3.5
  134744. Be aware that in the above example the WAR \fBjenkins\-1.2.4.war\fP will
  134745. be deployed to the context path \fBsalt\-powered\-jenkins##1.2.4\fP\&. To avoid this
  134746. either specify a version yourself, or set version to \fBFalse\fP\&.
  134747. .UNINDENT
  134748. .UNINDENT
  134749. .UNINDENT
  134750. .SS salt.states.trafficserver
  134751. .SS Control Apache Traffic Server
  134752. .sp
  134753. New in version 2015.8.0.
  134754. .INDENT 0.0
  134755. .TP
  134756. .B salt.states.trafficserver.bounce_cluster(name)
  134757. Bounce all Traffic Server nodes in the cluster. Bouncing Traffic Server
  134758. shuts down and immediately restarts Traffic Server, node\-by\-node.
  134759. .INDENT 7.0
  134760. .INDENT 3.5
  134761. .sp
  134762. .nf
  134763. .ft C
  134764. bounce_ats_cluster:
  134765. trafficserver.bounce_cluster
  134766. .ft P
  134767. .fi
  134768. .UNINDENT
  134769. .UNINDENT
  134770. .UNINDENT
  134771. .INDENT 0.0
  134772. .TP
  134773. .B salt.states.trafficserver.bounce_local(name, drain=False)
  134774. Bounce Traffic Server on the local node. Bouncing Traffic Server shuts down
  134775. and immediately restarts the Traffic Server node.
  134776. .sp
  134777. This option modifies the behavior of traffic_line \-b and traffic_line \-L
  134778. such that traffic_server is not shut down until the number of active client
  134779. connections drops to the number given by the
  134780. proxy.config.restart.active_client_threshold configuration variable.
  134781. .INDENT 7.0
  134782. .INDENT 3.5
  134783. .sp
  134784. .nf
  134785. .ft C
  134786. bounce_ats_local:
  134787. trafficserver.bounce_local
  134788. bounce_ats_local:
  134789. trafficserver.bounce_local
  134790. \- drain: True
  134791. .ft P
  134792. .fi
  134793. .UNINDENT
  134794. .UNINDENT
  134795. .UNINDENT
  134796. .INDENT 0.0
  134797. .TP
  134798. .B salt.states.trafficserver.clear_cluster(name)
  134799. Clears accumulated statistics on all nodes in the cluster.
  134800. .INDENT 7.0
  134801. .INDENT 3.5
  134802. .sp
  134803. .nf
  134804. .ft C
  134805. clear_ats_cluster:
  134806. trafficserver.clear_cluster
  134807. .ft P
  134808. .fi
  134809. .UNINDENT
  134810. .UNINDENT
  134811. .UNINDENT
  134812. .INDENT 0.0
  134813. .TP
  134814. .B salt.states.trafficserver.clear_node(name)
  134815. Clears accumulated statistics on the local node.
  134816. .INDENT 7.0
  134817. .INDENT 3.5
  134818. .sp
  134819. .nf
  134820. .ft C
  134821. clear_ats_node:
  134822. trafficserver.clear_node
  134823. .ft P
  134824. .fi
  134825. .UNINDENT
  134826. .UNINDENT
  134827. .UNINDENT
  134828. .INDENT 0.0
  134829. .TP
  134830. .B salt.states.trafficserver.config(name, value)
  134831. Set Traffic Server configuration variable values.
  134832. .INDENT 7.0
  134833. .INDENT 3.5
  134834. .sp
  134835. .nf
  134836. .ft C
  134837. proxy.config.proxy_name:
  134838. trafficserver.config:
  134839. \- value: cdn.site.domain.tld
  134840. OR
  134841. traffic_server_setting:
  134842. trafficserver.config:
  134843. \- name: proxy.config.proxy_name
  134844. \- value: cdn.site.domain.tld
  134845. .ft P
  134846. .fi
  134847. .UNINDENT
  134848. .UNINDENT
  134849. .UNINDENT
  134850. .INDENT 0.0
  134851. .TP
  134852. .B salt.states.trafficserver.offline(name, path)
  134853. Mark a cache storage device as offline. The storage is identified by a path
  134854. which must match exactly a path specified in storage.config. This removes
  134855. the storage from the cache and redirects requests that would have used this
  134856. storage to other storage. This has exactly the same effect as a disk
  134857. failure for that storage. This does not persist across restarts of the
  134858. traffic_server process.
  134859. .INDENT 7.0
  134860. .INDENT 3.5
  134861. .sp
  134862. .nf
  134863. .ft C
  134864. offline_ats_path:
  134865. trafficserver.offline:
  134866. \- path: /path/to/cache
  134867. .ft P
  134868. .fi
  134869. .UNINDENT
  134870. .UNINDENT
  134871. .UNINDENT
  134872. .INDENT 0.0
  134873. .TP
  134874. .B salt.states.trafficserver.refresh(name)
  134875. Initiate a Traffic Server configuration file reread. Use this command to
  134876. update the running configuration after any configuration file modification.
  134877. .sp
  134878. The timestamp of the last reconfiguration event (in seconds since epoch) is
  134879. published in the proxy.node.config.reconfigure_time metric.
  134880. .INDENT 7.0
  134881. .INDENT 3.5
  134882. .sp
  134883. .nf
  134884. .ft C
  134885. refresh_ats:
  134886. trafficserver.refresh
  134887. .ft P
  134888. .fi
  134889. .UNINDENT
  134890. .UNINDENT
  134891. .UNINDENT
  134892. .INDENT 0.0
  134893. .TP
  134894. .B salt.states.trafficserver.restart_cluster(name)
  134895. Restart the traffic_manager process and the traffic_server process on all
  134896. the nodes in a cluster.
  134897. .INDENT 7.0
  134898. .INDENT 3.5
  134899. .sp
  134900. .nf
  134901. .ft C
  134902. restart_ats_cluster:
  134903. trafficserver.restart_cluster
  134904. .ft P
  134905. .fi
  134906. .UNINDENT
  134907. .UNINDENT
  134908. .UNINDENT
  134909. .INDENT 0.0
  134910. .TP
  134911. .B salt.states.trafficserver.restart_local(name, drain=False)
  134912. Restart the traffic_manager and traffic_server processes on the local node.
  134913. .sp
  134914. This option modifies the behavior of traffic_line \-b and traffic_line \-L
  134915. such that traffic_server is not shut down until the number of active client
  134916. connections drops to the number given by the
  134917. proxy.config.restart.active_client_threshold configuration variable.
  134918. .INDENT 7.0
  134919. .INDENT 3.5
  134920. .sp
  134921. .nf
  134922. .ft C
  134923. restart_ats_local:
  134924. trafficserver.restart_local
  134925. restart_ats_local_drain:
  134926. trafficserver.restart_local
  134927. \- drain: True
  134928. .ft P
  134929. .fi
  134930. .UNINDENT
  134931. .UNINDENT
  134932. .UNINDENT
  134933. .INDENT 0.0
  134934. .TP
  134935. .B salt.states.trafficserver.shutdown(name)
  134936. Shut down Traffic Server on the local node.
  134937. .INDENT 7.0
  134938. .INDENT 3.5
  134939. .sp
  134940. .nf
  134941. .ft C
  134942. shutdown_ats:
  134943. trafficserver.shutdown
  134944. .ft P
  134945. .fi
  134946. .UNINDENT
  134947. .UNINDENT
  134948. .UNINDENT
  134949. .INDENT 0.0
  134950. .TP
  134951. .B salt.states.trafficserver.startup(name)
  134952. Start Traffic Server on the local node.
  134953. .INDENT 7.0
  134954. .INDENT 3.5
  134955. .sp
  134956. .nf
  134957. .ft C
  134958. startup_ats:
  134959. trafficserver.startup
  134960. .ft P
  134961. .fi
  134962. .UNINDENT
  134963. .UNINDENT
  134964. .UNINDENT
  134965. .INDENT 0.0
  134966. .TP
  134967. .B salt.states.trafficserver.zero_cluster(name)
  134968. Reset performance statistics to zero across the cluster.
  134969. .INDENT 7.0
  134970. .INDENT 3.5
  134971. .sp
  134972. .nf
  134973. .ft C
  134974. zero_ats_cluster:
  134975. trafficserver.zero_cluster
  134976. .ft P
  134977. .fi
  134978. .UNINDENT
  134979. .UNINDENT
  134980. .UNINDENT
  134981. .INDENT 0.0
  134982. .TP
  134983. .B salt.states.trafficserver.zero_node(name)
  134984. Reset performance statistics to zero on the local node.
  134985. .INDENT 7.0
  134986. .INDENT 3.5
  134987. .sp
  134988. .nf
  134989. .ft C
  134990. zero_ats_node:
  134991. trafficserver.zero_node
  134992. .ft P
  134993. .fi
  134994. .UNINDENT
  134995. .UNINDENT
  134996. .UNINDENT
  134997. .SS salt.states.tuned
  134998. .sp
  134999. Interface to Red Hat tuned\-adm module
  135000. .INDENT 0.0
  135001. .TP
  135002. .B maintainer
  135003. Syed Ali <\fI\%alicsyed@gmail.com\fP>
  135004. .TP
  135005. .B maturity
  135006. new
  135007. .TP
  135008. .B depends
  135009. cmd.run
  135010. .TP
  135011. .B platform
  135012. Linux
  135013. .UNINDENT
  135014. .INDENT 0.0
  135015. .TP
  135016. .B salt.states.tuned.off(name=None)
  135017. Turns \(aqtuned\(aq off.
  135018. Example tuned.sls file for turning tuned off:
  135019. .INDENT 7.0
  135020. .TP
  135021. .B tuned:
  135022. tuned.off: []
  135023. .TP
  135024. .B To see a valid list of states call execution module:
  135025. \fBtuned.list\fP
  135026. .UNINDENT
  135027. .UNINDENT
  135028. .INDENT 0.0
  135029. .TP
  135030. .B salt.states.tuned.profile(name)
  135031. This state module allows you to modify system tuned parameters
  135032. .sp
  135033. Example tuned.sls file to set profile to virtual\-guest
  135034. .INDENT 7.0
  135035. .TP
  135036. .B tuned:
  135037. .INDENT 7.0
  135038. .TP
  135039. .B tuned:
  135040. .INDENT 7.0
  135041. .IP \(bu 2
  135042. profile
  135043. .IP \(bu 2
  135044. name: virtual\-guest
  135045. .UNINDENT
  135046. .UNINDENT
  135047. .TP
  135048. .B name
  135049. tuned profile name to set the system to
  135050. .TP
  135051. .B To see a valid list of states call execution module:
  135052. \fBtuned.list\fP
  135053. .UNINDENT
  135054. .UNINDENT
  135055. .SS salt.states.uptime
  135056. .SS Monitor Web Server with Uptime
  135057. .sp
  135058. \fI\%Uptime\fP is an open source
  135059. remote monitoring application using Node.js, MongoDB, and Twitter
  135060. Bootstrap.
  135061. .sp
  135062. \fBWARNING:\fP
  135063. .INDENT 0.0
  135064. .INDENT 3.5
  135065. This state module is beta. It might be changed later to include
  135066. more or less automation.
  135067. .UNINDENT
  135068. .UNINDENT
  135069. .sp
  135070. \fBNOTE:\fP
  135071. .INDENT 0.0
  135072. .INDENT 3.5
  135073. This state module requires a pillar to specify the location of
  135074. your uptime install
  135075. .INDENT 0.0
  135076. .INDENT 3.5
  135077. .sp
  135078. .nf
  135079. .ft C
  135080. uptime:
  135081. application_url: "http://uptime\-url.example.org"
  135082. .ft P
  135083. .fi
  135084. .UNINDENT
  135085. .UNINDENT
  135086. .UNINDENT
  135087. .UNINDENT
  135088. .sp
  135089. Example:
  135090. .INDENT 0.0
  135091. .INDENT 3.5
  135092. .sp
  135093. .nf
  135094. .ft C
  135095. url:
  135096. uptime.monitored
  135097. url/sitemap.xml:
  135098. uptime.monitored:
  135099. \- polling: 600 # every hour
  135100. .ft P
  135101. .fi
  135102. .UNINDENT
  135103. .UNINDENT
  135104. .INDENT 0.0
  135105. .TP
  135106. .B salt.states.uptime.monitored(name, **params)
  135107. Makes sure an URL is monitored by uptime. Checks if URL is already
  135108. monitored, and if not, adds it.
  135109. .UNINDENT
  135110. .SS salt.states.vault module
  135111. .sp
  135112. States for managing Hashicorp Vault.
  135113. Currently handles policies. Configuration instructions are documented in the execution module docs.
  135114. .INDENT 0.0
  135115. .TP
  135116. .B maintainer
  135117. SaltStack
  135118. .TP
  135119. .B maturity
  135120. new
  135121. .TP
  135122. .B platform
  135123. all
  135124. .UNINDENT
  135125. .sp
  135126. New in version 2017.7.0.
  135127. .INDENT 0.0
  135128. .TP
  135129. .B salt.states.vault.policy_present(name, rules)
  135130. Ensure a Vault policy with the given name and rules is present.
  135131. .INDENT 7.0
  135132. .TP
  135133. .B name
  135134. The name of the policy
  135135. .TP
  135136. .B rules
  135137. Rules formatted as in\-line HCL
  135138. .UNINDENT
  135139. .INDENT 7.0
  135140. .INDENT 3.5
  135141. .sp
  135142. .nf
  135143. .ft C
  135144. demo\-policy:
  135145. vault.policy_present:
  135146. \- name: foo/bar
  135147. \- rules: |
  135148. path "secret/top\-secret/*" {
  135149. policy = "deny"
  135150. }
  135151. path "secret/not\-very\-secret/*" {
  135152. policy = "write"
  135153. }
  135154. .ft P
  135155. .fi
  135156. .UNINDENT
  135157. .UNINDENT
  135158. .UNINDENT
  135159. .SS salt.states.vbox_guest
  135160. .sp
  135161. VirtualBox Guest Additions installer state
  135162. .INDENT 0.0
  135163. .TP
  135164. .B salt.states.vbox_guest.additions_installed(name, reboot=False, upgrade_os=False)
  135165. Ensure that the VirtualBox Guest Additions are installed. Uses the CD,
  135166. connected by VirtualBox.
  135167. .INDENT 7.0
  135168. .TP
  135169. .B name
  135170. The name has no functional value and is only used as a tracking
  135171. reference.
  135172. .TP
  135173. .B reboot
  135174. False
  135175. Restart OS to complete installation.
  135176. .TP
  135177. .B upgrade_os
  135178. False
  135179. Upgrade OS (to ensure the latests version of kernel and developer tools
  135180. installed).
  135181. .UNINDENT
  135182. .UNINDENT
  135183. .INDENT 0.0
  135184. .TP
  135185. .B salt.states.vbox_guest.additions_removed(name, force=False)
  135186. Ensure that the VirtualBox Guest Additions are removed. Uses the CD,
  135187. connected by VirtualBox.
  135188. .sp
  135189. To connect VirtualBox Guest Additions via VirtualBox graphical interface
  135190. press \(aqHost+D\(aq (\(aqHost\(aq is usually \(aqRight Ctrl\(aq).
  135191. .INDENT 7.0
  135192. .TP
  135193. .B name
  135194. The name has no functional value and is only used as a tracking
  135195. reference.
  135196. .TP
  135197. .B force
  135198. Force VirtualBox Guest Additions removing.
  135199. .UNINDENT
  135200. .UNINDENT
  135201. .INDENT 0.0
  135202. .TP
  135203. .B salt.states.vbox_guest.grant_access_to_shared_folders_to(name, users=None)
  135204. Grant access to auto\-mounted shared folders to the users.
  135205. .sp
  135206. User is specified by its name. To grant access for several users use
  135207. argument \fIusers\fP\&.
  135208. .INDENT 7.0
  135209. .TP
  135210. .B name
  135211. Name of the user to grant access to auto\-mounted shared folders to.
  135212. .TP
  135213. .B users
  135214. List of names of users to grant access to auto\-mounted shared folders to.
  135215. If specified, \fIname\fP will not be taken into account.
  135216. .UNINDENT
  135217. .UNINDENT
  135218. .SS salt.states.victorops
  135219. .SS Create an Event in VictorOps
  135220. .sp
  135221. New in version 2015.8.0.
  135222. .sp
  135223. This state is useful for creating events on the
  135224. VictorOps service during state runs.
  135225. .INDENT 0.0
  135226. .INDENT 3.5
  135227. .sp
  135228. .nf
  135229. .ft C
  135230. webserver\-warning\-message:
  135231. victorops.create_event:
  135232. \- message_type: \(aqCRITICAL\(aq
  135233. \- entity_id: \(aqwebserver/diskspace\(aq
  135234. \- state_message: \(aqWebserver diskspace is low.\(aq
  135235. .ft P
  135236. .fi
  135237. .UNINDENT
  135238. .UNINDENT
  135239. .INDENT 0.0
  135240. .TP
  135241. .B salt.states.victorops.create_event(name, message_type, routing_key=u\(aqeveryone\(aq, **kwargs)
  135242. Create an event on the VictorOps service
  135243. .INDENT 7.0
  135244. .INDENT 3.5
  135245. .sp
  135246. .nf
  135247. .ft C
  135248. webserver\-warning\-message:
  135249. victorops.create_event:
  135250. \- message_type: \(aqCRITICAL\(aq
  135251. \- entity_id: \(aqwebserver/diskspace\(aq
  135252. \- state_message: \(aqWebserver diskspace is low.\(aq
  135253. database\-server\-warning\-message:
  135254. victorops.create_event:
  135255. \- message_type: \(aqWARNING\(aq
  135256. \- entity_id: \(aqdb_server/load\(aq
  135257. \- state_message: \(aqDatabase Server load is high.\(aq
  135258. \- entity_is_host: True
  135259. \- entity_display_name: \(aqdbdserver.example.com\(aq
  135260. .ft P
  135261. .fi
  135262. .UNINDENT
  135263. .UNINDENT
  135264. .sp
  135265. The following parameters are required:
  135266. .INDENT 7.0
  135267. .TP
  135268. .B name
  135269. This is a short description of the event.
  135270. .TP
  135271. .B message_type
  135272. One of the following values: INFO, WARNING, ACKNOWLEDGEMENT, CRITICAL, RECOVERY.
  135273. .UNINDENT
  135274. .sp
  135275. The following parameters are optional:
  135276. .INDENT 7.0
  135277. .INDENT 3.5
  135278. .INDENT 0.0
  135279. .TP
  135280. .B routing_key
  135281. The key for where messages should be routed. By default, sent to \(aqeveryone\(aq route.
  135282. .TP
  135283. .B entity_id
  135284. The name of alerting entity. If not provided, a random name will be assigned.
  135285. .TP
  135286. .B timestamp
  135287. Timestamp of the alert in seconds since epoch. Defaults to the time the alert is received at VictorOps.
  135288. .TP
  135289. .B timestamp_fmt
  135290. The date format for the timestamp parameter. Defaults to \(aq\(aq%Y\-%m\-%dT%H:%M:%S\(aq.
  135291. .TP
  135292. .B state_start_time
  135293. The time this entity entered its current state (seconds since epoch). Defaults to the time alert is received.
  135294. .TP
  135295. .B state_start_time_fmt
  135296. The date format for the timestamp parameter. Defaults to \(aq%Y\-%m\-%dT%H:%M:%S\(aq.
  135297. .TP
  135298. .B state_message
  135299. Any additional status information from the alert item.
  135300. .TP
  135301. .B entity_is_host
  135302. Used within VictorOps to select the appropriate display format for the incident.
  135303. .TP
  135304. .B entity_display_name
  135305. Used within VictorOps to display a human\-readable name for the entity.
  135306. .TP
  135307. .B ack_message
  135308. A user entered comment for the acknowledgment.
  135309. .TP
  135310. .B ack_author
  135311. The user that acknowledged the incident.
  135312. .UNINDENT
  135313. .UNINDENT
  135314. .UNINDENT
  135315. .UNINDENT
  135316. .SS salt.states.win_dacl
  135317. .sp
  135318. Windows Object Access Control Lists
  135319. .INDENT 0.0
  135320. .TP
  135321. .B Ensure an ACL is present
  135322. .INDENT 7.0
  135323. .TP
  135324. .B parameters:
  135325. name \- the path of the object
  135326. objectType \- Registry/File/Directory
  135327. user \- user account or SID for the ace
  135328. permission \- permission for the ace (see module win_acl for available permissions for each objectType)
  135329. acetype \- Allow/Deny
  135330. propagation \- how the ACL should apply to child objects (see module win_acl for available propagation types)
  135331. .UNINDENT
  135332. .INDENT 7.0
  135333. .INDENT 3.5
  135334. .sp
  135335. .nf
  135336. .ft C
  135337. addAcl:
  135338. win_dacl.present:
  135339. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135340. \- objectType: Registry
  135341. \- user: FakeUser
  135342. \- permission: FullControl
  135343. \- acetype: ALLOW
  135344. \- propagation: KEY&SUBKEYS
  135345. .ft P
  135346. .fi
  135347. .UNINDENT
  135348. .UNINDENT
  135349. .TP
  135350. .B Ensure an ACL does not exist
  135351. .INDENT 7.0
  135352. .TP
  135353. .B parameters:
  135354. name \- the path of the object
  135355. objectType \- Registry/File/Directory
  135356. user \- user account or SID for the ace
  135357. permission \- permission for the ace (see module win_acl for available permissions for each objectType)
  135358. acetype \- Allow/Deny
  135359. propagation \- how the ACL should apply to child objects (see module win_acl for available propagation types)
  135360. .UNINDENT
  135361. .INDENT 7.0
  135362. .INDENT 3.5
  135363. .sp
  135364. .nf
  135365. .ft C
  135366. removeAcl:
  135367. win_dacl.absent:
  135368. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135369. \- objectType: Registry
  135370. \- user: FakeUser
  135371. \- permission: FulLControl
  135372. \- acetype: ALLOW
  135373. \- propagation: KEY&SUBKEYS
  135374. .ft P
  135375. .fi
  135376. .UNINDENT
  135377. .UNINDENT
  135378. .TP
  135379. .B Ensure an object is inheriting permissions
  135380. .INDENT 7.0
  135381. .TP
  135382. .B parameters:
  135383. name \- the path of the object
  135384. objectType \- Registry/File/Directory
  135385. clear_existing_acl \- True/False \- when inheritance is enabled, should the existing ACL be kept or cleared out
  135386. .UNINDENT
  135387. .INDENT 7.0
  135388. .INDENT 3.5
  135389. .sp
  135390. .nf
  135391. .ft C
  135392. eInherit:
  135393. win_dacl.enableinheritance:
  135394. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135395. \- objectType: Registry
  135396. \- clear_existing_acl: True
  135397. .ft P
  135398. .fi
  135399. .UNINDENT
  135400. .UNINDENT
  135401. .TP
  135402. .B Ensure an object is not inheriting permissions
  135403. .INDENT 7.0
  135404. .TP
  135405. .B parameters:
  135406. name \- the path of the object
  135407. objectType \- Registry/File/Directory
  135408. copy_inherited_acl \- True/False \- if inheritance is enabled, should the inherited permissions be copied to the ACL when inheritance is disabled
  135409. .UNINDENT
  135410. .INDENT 7.0
  135411. .INDENT 3.5
  135412. .sp
  135413. .nf
  135414. .ft C
  135415. dInherit:
  135416. win_dacl.disableinheritance:
  135417. \- name: HKEY_LOCAL_MACHINE\eSOFTWARE\emykey
  135418. \- objectType: Registry
  135419. \- copy_inherited_acl: False
  135420. .ft P
  135421. .fi
  135422. .UNINDENT
  135423. .UNINDENT
  135424. .UNINDENT
  135425. .INDENT 0.0
  135426. .TP
  135427. .B salt.states.win_dacl.absent(name, objectType, user, permission, acetype, propagation)
  135428. Ensure an ACL does not exist
  135429. .UNINDENT
  135430. .INDENT 0.0
  135431. .TP
  135432. .B salt.states.win_dacl.disinherit(name, objectType, copy_inherited_acl=True)
  135433. Ensure an object is not inheriting ACLs from its parent
  135434. .UNINDENT
  135435. .INDENT 0.0
  135436. .TP
  135437. .B salt.states.win_dacl.inherit(name, objectType, clear_existing_acl=False)
  135438. Ensure an object is inheriting ACLs from its parent
  135439. .UNINDENT
  135440. .INDENT 0.0
  135441. .TP
  135442. .B salt.states.win_dacl.present(name, objectType, user, permission, acetype, propagation)
  135443. Ensure an ACE is present
  135444. .UNINDENT
  135445. .SS salt.states.win_dns_client
  135446. .sp
  135447. Module for configuring DNS Client on Windows systems
  135448. .INDENT 0.0
  135449. .TP
  135450. .B salt.states.win_dns_client.dns_dhcp(name, interface=u\(aqLocal Area Connection\(aq)
  135451. Configure the DNS server list from DHCP Server
  135452. .UNINDENT
  135453. .INDENT 0.0
  135454. .TP
  135455. .B salt.states.win_dns_client.dns_exists(name, servers=None, interface=u\(aqLocal Area Connection\(aq, replace=False)
  135456. Configure the DNS server list in the specified interface
  135457. .sp
  135458. Example:
  135459. .INDENT 7.0
  135460. .INDENT 3.5
  135461. .sp
  135462. .nf
  135463. .ft C
  135464. config_dns_servers:
  135465. win_dns_client.dns_exists:
  135466. \- replace: True #remove any servers not in the "servers" list, default is False
  135467. \- servers:
  135468. \- 8.8.8.8
  135469. \- 8.8.8.9
  135470. .ft P
  135471. .fi
  135472. .UNINDENT
  135473. .UNINDENT
  135474. .UNINDENT
  135475. .INDENT 0.0
  135476. .TP
  135477. .B salt.states.win_dns_client.primary_suffix(name, suffix=None, updates=False)
  135478. New in version 2014.7.0.
  135479. .sp
  135480. Configure the global primary DNS suffix of a DHCP client.
  135481. .INDENT 7.0
  135482. .TP
  135483. .B suffix
  135484. None
  135485. The suffix which is advertised for this client when acquiring a DHCP lease
  135486. When none is set, the explicitly configured DNS suffix will be removed.
  135487. .TP
  135488. .B updates
  135489. False
  135490. Allow syncing the DNS suffix with the AD domain when the client\(aqs AD domain membership changes
  135491. .UNINDENT
  135492. .INDENT 7.0
  135493. .INDENT 3.5
  135494. .sp
  135495. .nf
  135496. .ft C
  135497. primary_dns_suffix:
  135498. win_dns_client.primary_suffix:
  135499. \- suffix: sub.domain.tld
  135500. \- updates: True
  135501. .ft P
  135502. .fi
  135503. .UNINDENT
  135504. .UNINDENT
  135505. .UNINDENT
  135506. .SS salt.states.win_firewall
  135507. .sp
  135508. State for configuring Windows Firewall
  135509. .INDENT 0.0
  135510. .TP
  135511. .B salt.states.win_firewall.add_rule(name, localport, protocol=u\(aqtcp\(aq, action=u\(aqallow\(aq, dir=u\(aqin\(aq, remoteip=u\(aqany\(aq)
  135512. Add a new inbound or outbound rule to the firewall policy
  135513. .INDENT 7.0
  135514. .TP
  135515. .B Parameters
  135516. .INDENT 7.0
  135517. .IP \(bu 2
  135518. \fBname\fP (\fI\%str\fP) \-\- The name of the rule. Must be unique and cannot be "all".
  135519. Required.
  135520. .IP \(bu 2
  135521. \fBlocalport\fP (\fI\%int\fP) \-\- The port the rule applies to. Must be a number between
  135522. 0 and 65535. Can be a range. Can specify multiple ports separated by
  135523. commas. Required.
  135524. .IP \(bu 2
  135525. \fBprotocol\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135526. .sp
  135527. The protocol. Can be any of the following:
  135528. .INDENT 2.0
  135529. .IP \(bu 2
  135530. A number between 0 and 255
  135531. .IP \(bu 2
  135532. icmpv4
  135533. .IP \(bu 2
  135534. icmpv6
  135535. .IP \(bu 2
  135536. tcp
  135537. .IP \(bu 2
  135538. udp
  135539. .IP \(bu 2
  135540. any
  135541. .UNINDENT
  135542. .IP \(bu 2
  135543. \fBaction\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135544. .sp
  135545. The action the rule performs. Can be any of the
  135546. following:
  135547. .INDENT 2.0
  135548. .IP \(bu 2
  135549. allow
  135550. .IP \(bu 2
  135551. block
  135552. .IP \(bu 2
  135553. bypass
  135554. .UNINDENT
  135555. .IP \(bu 2
  135556. \fBdir\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\- The direction. Can be \fBin\fP or \fBout\fP\&.
  135557. .IP \(bu 2
  135558. \fBremoteip\fP (\fIOptional\fP\fI [\fP\fI\%str\fP\fI]\fP) \-\-
  135559. .sp
  135560. The remote IP. Can be any of the following:
  135561. .INDENT 2.0
  135562. .IP \(bu 2
  135563. any
  135564. .IP \(bu 2
  135565. localsubnet
  135566. .IP \(bu 2
  135567. dns
  135568. .IP \(bu 2
  135569. dhcp
  135570. .IP \(bu 2
  135571. wins
  135572. .IP \(bu 2
  135573. defaultgateway
  135574. .IP \(bu 2
  135575. Any valid IPv4 address (192.168.0.12)
  135576. .IP \(bu 2
  135577. Any valid IPv6 address (2002:9b3b:1a31:4:208:74ff:fe39:6c43)
  135578. .IP \(bu 2
  135579. Any valid subnet (192.168.1.0/24)
  135580. .IP \(bu 2
  135581. Any valid range of IP addresses (192.168.0.1\-192.168.0.12)
  135582. .IP \(bu 2
  135583. A list of valid IP addresses
  135584. .UNINDENT
  135585. .sp
  135586. Can be combinations of the above separated by commas.
  135587. .sp
  135588. New in version 2016.11.6.
  135589. .UNINDENT
  135590. .UNINDENT
  135591. .sp
  135592. Example:
  135593. .INDENT 7.0
  135594. .INDENT 3.5
  135595. .sp
  135596. .nf
  135597. .ft C
  135598. open_smb_port:
  135599. win_firewall.add_rule:
  135600. \- name: SMB (445)
  135601. \- localport: 445
  135602. \- protocol: tcp
  135603. \- action: allow
  135604. .ft P
  135605. .fi
  135606. .UNINDENT
  135607. .UNINDENT
  135608. .UNINDENT
  135609. .INDENT 0.0
  135610. .TP
  135611. .B salt.states.win_firewall.disabled(name=u\(aqallprofiles\(aq)
  135612. Disable all the firewall profiles (Windows only)
  135613. .INDENT 7.0
  135614. .TP
  135615. .B Parameters
  135616. \fBprofile\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135617. .sp
  135618. The name of the profile to disable. Default is
  135619. \fBallprofiles\fP\&. Valid options are:
  135620. .INDENT 7.0
  135621. .IP \(bu 2
  135622. allprofiles
  135623. .IP \(bu 2
  135624. domainprofile
  135625. .IP \(bu 2
  135626. privateprofile
  135627. .IP \(bu 2
  135628. publicprofile
  135629. .UNINDENT
  135630. .UNINDENT
  135631. .sp
  135632. Example:
  135633. .INDENT 7.0
  135634. .INDENT 3.5
  135635. .sp
  135636. .nf
  135637. .ft C
  135638. # To disable the domain profile
  135639. disable_domain:
  135640. win_firewall.disabled:
  135641. \- name: domainprofile
  135642. # To disable all profiles
  135643. disable_all:
  135644. win_firewall.disabled:
  135645. \- name: allprofiles
  135646. .ft P
  135647. .fi
  135648. .UNINDENT
  135649. .UNINDENT
  135650. .UNINDENT
  135651. .INDENT 0.0
  135652. .TP
  135653. .B salt.states.win_firewall.enabled(name=u\(aqallprofiles\(aq)
  135654. Enable all the firewall profiles (Windows only)
  135655. .INDENT 7.0
  135656. .TP
  135657. .B Parameters
  135658. \fBprofile\fP (\fIOptional\fP\fI[\fP\fI\%str\fP\fI]\fP) \-\-
  135659. .sp
  135660. The name of the profile to enable. Default is
  135661. \fBallprofiles\fP\&. Valid options are:
  135662. .INDENT 7.0
  135663. .IP \(bu 2
  135664. allprofiles
  135665. .IP \(bu 2
  135666. domainprofile
  135667. .IP \(bu 2
  135668. privateprofile
  135669. .IP \(bu 2
  135670. publicprofile
  135671. .UNINDENT
  135672. .UNINDENT
  135673. .sp
  135674. Example:
  135675. .INDENT 7.0
  135676. .INDENT 3.5
  135677. .sp
  135678. .nf
  135679. .ft C
  135680. # To enable the domain profile
  135681. enable_domain:
  135682. win_firewall.enabled:
  135683. \- name: domainprofile
  135684. # To enable all profiles
  135685. enable_all:
  135686. win_firewall.enabled:
  135687. \- name: allprofiles
  135688. .ft P
  135689. .fi
  135690. .UNINDENT
  135691. .UNINDENT
  135692. .UNINDENT
  135693. .SS salt.states.win_iis module
  135694. .sp
  135695. Microsoft IIS site management
  135696. .sp
  135697. This module provides the ability to add/remove websites and application pools
  135698. from Microsoft IIS.
  135699. .sp
  135700. New in version 2016.3.0.
  135701. .INDENT 0.0
  135702. .TP
  135703. .B salt.states.win_iis.container_setting(name, container, settings=None)
  135704. Set the value of the setting for an IIS container.
  135705. .INDENT 7.0
  135706. .TP
  135707. .B Parameters
  135708. .INDENT 7.0
  135709. .IP \(bu 2
  135710. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS container.
  135711. .IP \(bu 2
  135712. \fBcontainer\fP (\fI\%str\fP) \-\- The type of IIS container. The container types are:
  135713. AppPools, Sites, SslBindings
  135714. .IP \(bu 2
  135715. \fBsettings\fP (\fI\%str\fP) \-\- A dictionary of the setting names and their values.
  135716. Example of usage for the \fBAppPools\fP container:
  135717. .UNINDENT
  135718. .UNINDENT
  135719. .INDENT 7.0
  135720. .INDENT 3.5
  135721. .sp
  135722. .nf
  135723. .ft C
  135724. site0\-apppool\-setting:
  135725. win_iis.container_setting:
  135726. \- name: site0
  135727. \- container: AppPools
  135728. \- settings:
  135729. managedPipelineMode: Integrated
  135730. processModel.maxProcesses: 1
  135731. processModel.userName: TestUser
  135732. processModel.password: TestPassword
  135733. processModel.identityType: SpecificUser
  135734. .ft P
  135735. .fi
  135736. .UNINDENT
  135737. .UNINDENT
  135738. .sp
  135739. Example of usage for the \fBSites\fP container:
  135740. .INDENT 7.0
  135741. .INDENT 3.5
  135742. .sp
  135743. .nf
  135744. .ft C
  135745. site0\-site\-setting:
  135746. win_iis.container_setting:
  135747. \- name: site0
  135748. \- container: Sites
  135749. \- settings:
  135750. logFile.logFormat: W3C
  135751. logFile.period: Daily
  135752. limits.maxUrlSegments: 32
  135753. .ft P
  135754. .fi
  135755. .UNINDENT
  135756. .UNINDENT
  135757. .UNINDENT
  135758. .INDENT 0.0
  135759. .TP
  135760. .B salt.states.win_iis.create_app(name, site, sourcepath, apppool=None)
  135761. Create an IIS application.
  135762. .INDENT 7.0
  135763. .TP
  135764. .B Parameters
  135765. .INDENT 7.0
  135766. .IP \(bu 2
  135767. \fBname\fP (\fI\%str\fP) \-\- The IIS application.
  135768. .IP \(bu 2
  135769. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135770. .IP \(bu 2
  135771. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path.
  135772. .IP \(bu 2
  135773. \fBapppool\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  135774. .UNINDENT
  135775. .UNINDENT
  135776. .sp
  135777. Example of usage with only the required arguments:
  135778. .INDENT 7.0
  135779. .INDENT 3.5
  135780. .sp
  135781. .nf
  135782. .ft C
  135783. site0\-v1\-app:
  135784. win_iis.create_app:
  135785. \- name: v1
  135786. \- site: site0
  135787. \- sourcepath: C:\einetpub\esite0\ev1
  135788. .ft P
  135789. .fi
  135790. .UNINDENT
  135791. .UNINDENT
  135792. .sp
  135793. Example of usage specifying all available arguments:
  135794. .INDENT 7.0
  135795. .INDENT 3.5
  135796. .sp
  135797. .nf
  135798. .ft C
  135799. site0\-v1\-app:
  135800. win_iis.create_app:
  135801. \- name: v1
  135802. \- site: site0
  135803. \- sourcepath: C:\einetpub\esite0\ev1
  135804. \- apppool: site0
  135805. .ft P
  135806. .fi
  135807. .UNINDENT
  135808. .UNINDENT
  135809. .UNINDENT
  135810. .INDENT 0.0
  135811. .TP
  135812. .B salt.states.win_iis.create_apppool(name)
  135813. Create an IIS application pool.
  135814. .INDENT 7.0
  135815. .TP
  135816. .B Parameters
  135817. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  135818. .UNINDENT
  135819. .sp
  135820. Usage:
  135821. .INDENT 7.0
  135822. .INDENT 3.5
  135823. .sp
  135824. .nf
  135825. .ft C
  135826. site0\-apppool:
  135827. win_iis.create_apppool:
  135828. \- name: site0
  135829. .ft P
  135830. .fi
  135831. .UNINDENT
  135832. .UNINDENT
  135833. .UNINDENT
  135834. .INDENT 0.0
  135835. .TP
  135836. .B salt.states.win_iis.create_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=80, protocol=u\(aqhttp\(aq, sslflags=0)
  135837. Create an IIS binding.
  135838. .INDENT 7.0
  135839. .TP
  135840. .B Parameters
  135841. .INDENT 7.0
  135842. .IP \(bu 2
  135843. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135844. .IP \(bu 2
  135845. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  135846. .IP \(bu 2
  135847. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  135848. .IP \(bu 2
  135849. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  135850. .IP \(bu 2
  135851. \fBprotocol\fP (\fI\%str\fP) \-\- The application protocol of the binding.
  135852. .IP \(bu 2
  135853. \fBsslflags\fP (\fI\%str\fP) \-\- The flags representing certificate type and storage of the binding.
  135854. .UNINDENT
  135855. .UNINDENT
  135856. .sp
  135857. Example of usage with only the required arguments:
  135858. .INDENT 7.0
  135859. .INDENT 3.5
  135860. .sp
  135861. .nf
  135862. .ft C
  135863. site0\-https\-binding:
  135864. win_iis.create_binding:
  135865. \- site: site0
  135866. .ft P
  135867. .fi
  135868. .UNINDENT
  135869. .UNINDENT
  135870. .sp
  135871. Example of usage specifying all available arguments:
  135872. .INDENT 7.0
  135873. .INDENT 3.5
  135874. .sp
  135875. .nf
  135876. .ft C
  135877. site0\-https\-binding:
  135878. win_iis.create_binding:
  135879. \- site: site0
  135880. \- hostheader: site0.local
  135881. \- ipaddress: \(aq*\(aq
  135882. \- port: 443
  135883. \- protocol: https
  135884. \- sslflags: 0
  135885. .ft P
  135886. .fi
  135887. .UNINDENT
  135888. .UNINDENT
  135889. .UNINDENT
  135890. .INDENT 0.0
  135891. .TP
  135892. .B salt.states.win_iis.create_cert_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=443, sslflags=0)
  135893. Assign a certificate to an IIS binding.
  135894. .INDENT 7.0
  135895. .TP
  135896. .B Parameters
  135897. .INDENT 7.0
  135898. .IP \(bu 2
  135899. \fBname\fP (\fI\%str\fP) \-\- The thumbprint of the certificate.
  135900. .IP \(bu 2
  135901. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135902. .IP \(bu 2
  135903. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  135904. .IP \(bu 2
  135905. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  135906. .IP \(bu 2
  135907. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  135908. .IP \(bu 2
  135909. \fBsslflags\fP (\fI\%str\fP) \-\- Flags representing certificate type and certificate storage of the binding.
  135910. .UNINDENT
  135911. .UNINDENT
  135912. .sp
  135913. Example of usage with only the required arguments:
  135914. .INDENT 7.0
  135915. .INDENT 3.5
  135916. .sp
  135917. .nf
  135918. .ft C
  135919. site0\-cert\-binding:
  135920. win_iis.create_cert_binding:
  135921. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  135922. \- site: site0
  135923. .ft P
  135924. .fi
  135925. .UNINDENT
  135926. .UNINDENT
  135927. .sp
  135928. Example of usage specifying all available arguments:
  135929. .INDENT 7.0
  135930. .INDENT 3.5
  135931. .sp
  135932. .nf
  135933. .ft C
  135934. site0\-cert\-binding:
  135935. win_iis.create_cert_binding:
  135936. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  135937. \- site: site0
  135938. \- hostheader: site0.local
  135939. \- ipaddress: 192.168.1.199
  135940. \- port: 443
  135941. \- sslflags: 1
  135942. .ft P
  135943. .fi
  135944. .UNINDENT
  135945. .UNINDENT
  135946. .sp
  135947. New in version 2016.11.0.
  135948. .UNINDENT
  135949. .INDENT 0.0
  135950. .TP
  135951. .B salt.states.win_iis.create_vdir(name, site, sourcepath, app=u\(aq/\(aq)
  135952. Create an IIS virtual directory.
  135953. .INDENT 7.0
  135954. .TP
  135955. .B Parameters
  135956. .INDENT 7.0
  135957. .IP \(bu 2
  135958. \fBname\fP (\fI\%str\fP) \-\- The virtual directory name.
  135959. .IP \(bu 2
  135960. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  135961. .IP \(bu 2
  135962. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path.
  135963. .IP \(bu 2
  135964. \fBapp\fP (\fI\%str\fP) \-\- The IIS application.
  135965. .UNINDENT
  135966. .UNINDENT
  135967. .sp
  135968. Example of usage with only the required arguments:
  135969. .INDENT 7.0
  135970. .INDENT 3.5
  135971. .sp
  135972. .nf
  135973. .ft C
  135974. site0\-foo\-vdir:
  135975. win_iis.create_vdir:
  135976. \- name: foo
  135977. \- site: site0
  135978. \- sourcepath: C:\einetpub\evdirs\efoo
  135979. .ft P
  135980. .fi
  135981. .UNINDENT
  135982. .UNINDENT
  135983. .sp
  135984. Example of usage specifying all available arguments:
  135985. .INDENT 7.0
  135986. .INDENT 3.5
  135987. .sp
  135988. .nf
  135989. .ft C
  135990. site0\-foo\-vdir:
  135991. win_iis.create_vdir:
  135992. \- name: foo
  135993. \- site: site0
  135994. \- sourcepath: C:\einetpub\evdirs\efoo
  135995. \- app: v1
  135996. .ft P
  135997. .fi
  135998. .UNINDENT
  135999. .UNINDENT
  136000. .UNINDENT
  136001. .INDENT 0.0
  136002. .TP
  136003. .B salt.states.win_iis.deployed(name, sourcepath, apppool=u\(aq\(aq, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=80, protocol=u\(aqhttp\(aq)
  136004. Ensure the website has been deployed.
  136005. .INDENT 7.0
  136006. .TP
  136007. .B Parameters
  136008. .INDENT 7.0
  136009. .IP \(bu 2
  136010. \fBname\fP (\fI\%str\fP) \-\- The IIS site name.
  136011. .IP \(bu 2
  136012. \fBsourcepath\fP (\fI\%str\fP) \-\- The physical path of the IIS site.
  136013. .IP \(bu 2
  136014. \fBapppool\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  136015. .IP \(bu 2
  136016. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136017. .IP \(bu 2
  136018. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136019. .IP \(bu 2
  136020. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136021. .IP \(bu 2
  136022. \fBprotocol\fP (\fI\%str\fP) \-\- The application protocol of the binding.
  136023. .UNINDENT
  136024. .UNINDENT
  136025. .sp
  136026. Example of usage with only the required arguments. This will default to using the default application pool
  136027. assigned by IIS:
  136028. .INDENT 7.0
  136029. .INDENT 3.5
  136030. .sp
  136031. .nf
  136032. .ft C
  136033. site0\-deployed:
  136034. win_iis.deployed:
  136035. \- name: site0
  136036. \- sourcepath: C:\einetpub\esite0
  136037. .ft P
  136038. .fi
  136039. .UNINDENT
  136040. .UNINDENT
  136041. .sp
  136042. Example of usage specifying all available arguments:
  136043. .INDENT 7.0
  136044. .INDENT 3.5
  136045. .sp
  136046. .nf
  136047. .ft C
  136048. site0\-deployed:
  136049. win_iis.deployed:
  136050. \- name: site0
  136051. \- sourcepath: C:\einetpub\esite0
  136052. \- apppool: site0
  136053. \- hostheader: site0.local
  136054. \- ipaddress: \(aq*\(aq
  136055. \- port: 443
  136056. \- protocol: https
  136057. .ft P
  136058. .fi
  136059. .UNINDENT
  136060. .UNINDENT
  136061. .UNINDENT
  136062. .INDENT 0.0
  136063. .TP
  136064. .B salt.states.win_iis.remove_app(name, site)
  136065. Remove an IIS application.
  136066. .INDENT 7.0
  136067. .TP
  136068. .B Parameters
  136069. .INDENT 7.0
  136070. .IP \(bu 2
  136071. \fBname\fP (\fI\%str\fP) \-\- The application name.
  136072. .IP \(bu 2
  136073. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136074. .UNINDENT
  136075. .UNINDENT
  136076. .sp
  136077. Usage:
  136078. .INDENT 7.0
  136079. .INDENT 3.5
  136080. .sp
  136081. .nf
  136082. .ft C
  136083. site0\-v1\-app\-remove:
  136084. win_iis.remove_app:
  136085. \- name: v1
  136086. \- site: site0
  136087. .ft P
  136088. .fi
  136089. .UNINDENT
  136090. .UNINDENT
  136091. .UNINDENT
  136092. .INDENT 0.0
  136093. .TP
  136094. .B salt.states.win_iis.remove_apppool(name)
  136095. Remove an IIS application pool.
  136096. .INDENT 7.0
  136097. .TP
  136098. .B Parameters
  136099. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS application pool.
  136100. .UNINDENT
  136101. .sp
  136102. Usage:
  136103. .INDENT 7.0
  136104. .INDENT 3.5
  136105. .sp
  136106. .nf
  136107. .ft C
  136108. defaultapppool\-remove:
  136109. win_iis.remove_apppool:
  136110. \- name: DefaultAppPool
  136111. .ft P
  136112. .fi
  136113. .UNINDENT
  136114. .UNINDENT
  136115. .UNINDENT
  136116. .INDENT 0.0
  136117. .TP
  136118. .B salt.states.win_iis.remove_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=80)
  136119. Remove an IIS binding.
  136120. .INDENT 7.0
  136121. .TP
  136122. .B Parameters
  136123. .INDENT 7.0
  136124. .IP \(bu 2
  136125. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136126. .IP \(bu 2
  136127. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136128. .IP \(bu 2
  136129. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136130. .IP \(bu 2
  136131. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136132. .UNINDENT
  136133. .UNINDENT
  136134. .sp
  136135. Example of usage with only the required arguments:
  136136. .INDENT 7.0
  136137. .INDENT 3.5
  136138. .sp
  136139. .nf
  136140. .ft C
  136141. site0\-https\-binding\-remove:
  136142. win_iis.remove_binding:
  136143. \- site: site0
  136144. .ft P
  136145. .fi
  136146. .UNINDENT
  136147. .UNINDENT
  136148. .sp
  136149. Example of usage specifying all available arguments:
  136150. .INDENT 7.0
  136151. .INDENT 3.5
  136152. .sp
  136153. .nf
  136154. .ft C
  136155. site0\-https\-binding\-remove:
  136156. win_iis.remove_binding:
  136157. \- site: site0
  136158. \- hostheader: site0.local
  136159. \- ipaddress: \(aq*\(aq
  136160. \- port: 443
  136161. .ft P
  136162. .fi
  136163. .UNINDENT
  136164. .UNINDENT
  136165. .UNINDENT
  136166. .INDENT 0.0
  136167. .TP
  136168. .B salt.states.win_iis.remove_cert_binding(name, site, hostheader=u\(aq\(aq, ipaddress=u\(aq*\(aq, port=443)
  136169. Remove a certificate from an IIS binding.
  136170. .INDENT 7.0
  136171. .TP
  136172. .B Parameters
  136173. .INDENT 7.0
  136174. .IP \(bu 2
  136175. \fBname\fP (\fI\%str\fP) \-\- The thumbprint of the certificate.
  136176. .IP \(bu 2
  136177. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136178. .IP \(bu 2
  136179. \fBhostheader\fP (\fI\%str\fP) \-\- The host header of the binding.
  136180. .IP \(bu 2
  136181. \fBipaddress\fP (\fI\%str\fP) \-\- The IP address of the binding.
  136182. .IP \(bu 2
  136183. \fBport\fP (\fI\%str\fP) \-\- The TCP port of the binding.
  136184. .UNINDENT
  136185. .UNINDENT
  136186. .sp
  136187. Example of usage with only the required arguments:
  136188. .INDENT 7.0
  136189. .INDENT 3.5
  136190. .sp
  136191. .nf
  136192. .ft C
  136193. site0\-cert\-binding\-remove:
  136194. win_iis.remove_cert_binding:
  136195. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136196. \- site: site0
  136197. .ft P
  136198. .fi
  136199. .UNINDENT
  136200. .UNINDENT
  136201. .sp
  136202. Example of usage specifying all available arguments:
  136203. .INDENT 7.0
  136204. .INDENT 3.5
  136205. .sp
  136206. .nf
  136207. .ft C
  136208. site0\-cert\-binding\-remove:
  136209. win_iis.remove_cert_binding:
  136210. \- name: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136211. \- site: site0
  136212. \- hostheader: site0.local
  136213. \- ipaddress: 192.168.1.199
  136214. \- port: 443
  136215. .ft P
  136216. .fi
  136217. .UNINDENT
  136218. .UNINDENT
  136219. .sp
  136220. New in version 2016.11.0.
  136221. .UNINDENT
  136222. .INDENT 0.0
  136223. .TP
  136224. .B salt.states.win_iis.remove_site(name)
  136225. Delete a website from IIS.
  136226. .INDENT 7.0
  136227. .TP
  136228. .B Parameters
  136229. \fBname\fP (\fI\%str\fP) \-\- The IIS site name.
  136230. .UNINDENT
  136231. .sp
  136232. Usage:
  136233. .INDENT 7.0
  136234. .INDENT 3.5
  136235. .sp
  136236. .nf
  136237. .ft C
  136238. defaultwebsite\-remove:
  136239. win_iis.remove_site:
  136240. \- name: Default Web Site
  136241. .ft P
  136242. .fi
  136243. .UNINDENT
  136244. .UNINDENT
  136245. .UNINDENT
  136246. .INDENT 0.0
  136247. .TP
  136248. .B salt.states.win_iis.remove_vdir(name, site, app=u\(aq/\(aq)
  136249. Remove an IIS virtual directory.
  136250. .INDENT 7.0
  136251. .TP
  136252. .B Parameters
  136253. .INDENT 7.0
  136254. .IP \(bu 2
  136255. \fBname\fP (\fI\%str\fP) \-\- The virtual directory name.
  136256. .IP \(bu 2
  136257. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136258. .IP \(bu 2
  136259. \fBapp\fP (\fI\%str\fP) \-\- The IIS application.
  136260. .UNINDENT
  136261. .UNINDENT
  136262. .sp
  136263. Example of usage with only the required arguments:
  136264. .INDENT 7.0
  136265. .INDENT 3.5
  136266. .sp
  136267. .nf
  136268. .ft C
  136269. site0\-foo\-vdir\-remove:
  136270. win_iis.remove_vdir:
  136271. \- name: foo
  136272. \- site: site0
  136273. .ft P
  136274. .fi
  136275. .UNINDENT
  136276. .UNINDENT
  136277. .sp
  136278. Example of usage specifying all available arguments:
  136279. .INDENT 7.0
  136280. .INDENT 3.5
  136281. .sp
  136282. .nf
  136283. .ft C
  136284. site0\-foo\-vdir\-remove:
  136285. win_iis.remove_vdir:
  136286. \- name: foo
  136287. \- site: site0
  136288. \- app: v1
  136289. .ft P
  136290. .fi
  136291. .UNINDENT
  136292. .UNINDENT
  136293. .UNINDENT
  136294. .INDENT 0.0
  136295. .TP
  136296. .B salt.states.win_iis.set_app(name, site, settings=None)
  136297. New in version 2017.7.0.
  136298. .sp
  136299. Set the value of the setting for an IIS web application.
  136300. .sp
  136301. \fBNOTE:\fP
  136302. .INDENT 7.0
  136303. .INDENT 3.5
  136304. This function only configures existing app. Params are case sensitive.
  136305. .UNINDENT
  136306. .UNINDENT
  136307. .INDENT 7.0
  136308. .TP
  136309. .B Parameters
  136310. .INDENT 7.0
  136311. .IP \(bu 2
  136312. \fBname\fP (\fI\%str\fP) \-\- The IIS application.
  136313. .IP \(bu 2
  136314. \fBsite\fP (\fI\%str\fP) \-\- The IIS site name.
  136315. .IP \(bu 2
  136316. \fBsettings\fP (\fI\%str\fP) \-\- A dictionary of the setting names and their values.
  136317. .UNINDENT
  136318. .UNINDENT
  136319. .sp
  136320. Available settings:
  136321. .INDENT 7.0
  136322. .IP \(bu 2
  136323. \fBphysicalPath\fP \- The physical path of the webapp
  136324. .IP \(bu 2
  136325. \fBapplicationPool\fP \- The application pool for the webapp
  136326. .IP \(bu 2
  136327. \fBuserName\fP "connectAs" user
  136328. .IP \(bu 2
  136329. \fBpassword\fP "connectAs" password for user
  136330. .UNINDENT
  136331. .INDENT 7.0
  136332. .TP
  136333. .B Return type
  136334. \fI\%bool\fP
  136335. .UNINDENT
  136336. .sp
  136337. Example of usage:
  136338. .INDENT 7.0
  136339. .INDENT 3.5
  136340. .sp
  136341. .nf
  136342. .ft C
  136343. site0\-webapp\-setting:
  136344. win_iis.set_app:
  136345. \- name: app0
  136346. \- site: Default Web Site
  136347. \- settings:
  136348. userName: domain\e\euser
  136349. password: pass
  136350. physicalPath: c:\einetpub\ewwwroot
  136351. applicationPool: appPool0
  136352. .ft P
  136353. .fi
  136354. .UNINDENT
  136355. .UNINDENT
  136356. .UNINDENT
  136357. .INDENT 0.0
  136358. .TP
  136359. .B salt.states.win_iis.webconfiguration_settings(name, settings=None)
  136360. Set the value of webconfiguration settings.
  136361. .INDENT 7.0
  136362. .TP
  136363. .B Parameters
  136364. .INDENT 7.0
  136365. .IP \(bu 2
  136366. \fBname\fP (\fI\%str\fP) \-\- The name of the IIS PSPath containing the settings.
  136367. Possible PSPaths are :
  136368. MACHINE, MACHINE/WEBROOT, IIS:, IIS:Sitessitename, ...
  136369. .IP \(bu 2
  136370. \fBsettings\fP (\fI\%dict\fP) \-\- Dictionaries of dictionaries.
  136371. You can match a specific item in a collection with this syntax inside a key:
  136372. \(aqCollection[{name: site0}].logFile.directory\(aq
  136373. .UNINDENT
  136374. .UNINDENT
  136375. .sp
  136376. Example of usage for the \fBMACHINE/WEBROOT\fP PSPath:
  136377. .INDENT 7.0
  136378. .INDENT 3.5
  136379. .sp
  136380. .nf
  136381. .ft C
  136382. MACHINE\-WEBROOT\-level\-security:
  136383. win_iis.webconfiguration_settings:
  136384. \- name: \(aqMACHINE/WEBROOT\(aq
  136385. \- settings:
  136386. system.web/authentication/forms:
  136387. requireSSL: True
  136388. protection: "All"
  136389. credentials.passwordFormat: "SHA1"
  136390. system.web/httpCookies:
  136391. httpOnlyCookies: True
  136392. .ft P
  136393. .fi
  136394. .UNINDENT
  136395. .UNINDENT
  136396. .sp
  136397. Example of usage for the \fBIIS:\eSites\esite0\fP PSPath:
  136398. .INDENT 7.0
  136399. .INDENT 3.5
  136400. .sp
  136401. .nf
  136402. .ft C
  136403. site0\-IIS\-Sites\-level\-security:
  136404. win_iis.webconfiguration_settings:
  136405. \- name: \(aqIIS:\eSites\esite0\(aq
  136406. \- settings:
  136407. system.webServer/httpErrors:
  136408. errorMode: "DetailedLocalOnly"
  136409. system.webServer/security/requestFiltering:
  136410. allowDoubleEscaping: False
  136411. verbs.Collection:
  136412. \- verb: TRACE
  136413. allowed: False
  136414. fileExtensions.allowUnlisted: False
  136415. .ft P
  136416. .fi
  136417. .UNINDENT
  136418. .UNINDENT
  136419. .sp
  136420. Example of usage for the \fBIIS:\e\fP PSPath with a collection matching:
  136421. .INDENT 7.0
  136422. .INDENT 3.5
  136423. .sp
  136424. .nf
  136425. .ft C
  136426. site0\-IIS\-level\-security:
  136427. win_iis.webconfiguration_settings:
  136428. \- name: \(aqIIS:\e\(aq
  136429. \- settings:
  136430. system.applicationHost/sites:
  136431. \(aqCollection[{name: site0}].logFile.directory\(aq: \(aqC:\elogs\eiis\esite0\(aq
  136432. .ft P
  136433. .fi
  136434. .UNINDENT
  136435. .UNINDENT
  136436. .UNINDENT
  136437. .SS salt.states.win_pki module
  136438. .sp
  136439. Microsoft certificate management via the Pki PowerShell module.
  136440. .INDENT 0.0
  136441. .TP
  136442. .B platform
  136443. Windows
  136444. .UNINDENT
  136445. .sp
  136446. New in version 2016.11.0.
  136447. .INDENT 0.0
  136448. .TP
  136449. .B salt.states.win_pki.import_cert(name, cert_format=u\(aqcer\(aq, context=u\(aqLocalMachine\(aq, store=u\(aqMy\(aq, exportable=True, password=u\(aq\(aq, saltenv=u\(aqbase\(aq)
  136450. Import the certificate file into the given certificate store.
  136451. .INDENT 7.0
  136452. .TP
  136453. .B Parameters
  136454. .INDENT 7.0
  136455. .IP \(bu 2
  136456. \fBname\fP (\fI\%str\fP) \-\- The path of the certificate file to import.
  136457. .IP \(bu 2
  136458. \fBcert_format\fP (\fI\%str\fP) \-\- The certificate format. Specify \(aqcer\(aq for X.509, or \(aqpfx\(aq for PKCS #12.
  136459. .IP \(bu 2
  136460. \fBcontext\fP (\fI\%str\fP) \-\- The name of the certificate store location context.
  136461. .IP \(bu 2
  136462. \fBstore\fP (\fI\%str\fP) \-\- The name of the certificate store.
  136463. .IP \(bu 2
  136464. \fBexportable\fP (\fI\%bool\fP) \-\- Mark the certificate as exportable. Only applicable to pfx format.
  136465. .IP \(bu 2
  136466. \fBpassword\fP (\fI\%str\fP) \-\- The password of the certificate. Only applicable to pfx format.
  136467. .IP \(bu 2
  136468. \fBsaltenv\fP (\fI\%str\fP) \-\- The environment the file resides in.
  136469. .UNINDENT
  136470. .UNINDENT
  136471. .sp
  136472. Example of usage with only the required arguments:
  136473. .INDENT 7.0
  136474. .INDENT 3.5
  136475. .sp
  136476. .nf
  136477. .ft C
  136478. site0\-cert\-imported:
  136479. win_pki.import_cert:
  136480. \- name: salt://win/webserver/certs/site0.cer
  136481. .ft P
  136482. .fi
  136483. .UNINDENT
  136484. .UNINDENT
  136485. .sp
  136486. Example of usage specifying all available arguments:
  136487. .INDENT 7.0
  136488. .INDENT 3.5
  136489. .sp
  136490. .nf
  136491. .ft C
  136492. site0\-cert\-imported:
  136493. win_pki.import_cert:
  136494. \- name: salt://win/webserver/certs/site0.pfx
  136495. \- cert_format: pfx
  136496. \- context: LocalMachine
  136497. \- store: My
  136498. \- exportable: True
  136499. \- password: TestPassword
  136500. \- saltenv: base
  136501. .ft P
  136502. .fi
  136503. .UNINDENT
  136504. .UNINDENT
  136505. .UNINDENT
  136506. .INDENT 0.0
  136507. .TP
  136508. .B salt.states.win_pki.remove_cert(name, thumbprint, context=u\(aqLocalMachine\(aq, store=u\(aqMy\(aq)
  136509. Remove the certificate from the given certificate store.
  136510. .INDENT 7.0
  136511. .TP
  136512. .B Parameters
  136513. .INDENT 7.0
  136514. .IP \(bu 2
  136515. \fBthumbprint\fP (\fI\%str\fP) \-\- The thumbprint value of the target certificate.
  136516. .IP \(bu 2
  136517. \fBcontext\fP (\fI\%str\fP) \-\- The name of the certificate store location context.
  136518. .IP \(bu 2
  136519. \fBstore\fP (\fI\%str\fP) \-\- The name of the certificate store.
  136520. .UNINDENT
  136521. .UNINDENT
  136522. .sp
  136523. Example of usage with only the required arguments:
  136524. .INDENT 7.0
  136525. .INDENT 3.5
  136526. .sp
  136527. .nf
  136528. .ft C
  136529. site0\-cert\-removed:
  136530. win_pki.remove_cert:
  136531. \- thumbprint: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136532. .ft P
  136533. .fi
  136534. .UNINDENT
  136535. .UNINDENT
  136536. .sp
  136537. Example of usage specifying all available arguments:
  136538. .INDENT 7.0
  136539. .INDENT 3.5
  136540. .sp
  136541. .nf
  136542. .ft C
  136543. site0\-cert\-removed:
  136544. win_pki.remove_cert:
  136545. \- thumbprint: 9988776655443322111000AAABBBCCCDDDEEEFFF
  136546. \- context: LocalMachine
  136547. \- store: My
  136548. .ft P
  136549. .fi
  136550. .UNINDENT
  136551. .UNINDENT
  136552. .UNINDENT
  136553. .SS salt.states.win_snmp module
  136554. .sp
  136555. Module for managing SNMP service settings on Windows servers.
  136556. .INDENT 0.0
  136557. .TP
  136558. .B salt.states.win_snmp.agent_settings(name, contact, location, services=None)
  136559. Manage the SNMP sysContact, sysLocation, and sysServices settings.
  136560. .INDENT 7.0
  136561. .TP
  136562. .B Parameters
  136563. .INDENT 7.0
  136564. .IP \(bu 2
  136565. \fBcontact\fP (\fI\%str\fP) \-\- The SNMP contact.
  136566. .IP \(bu 2
  136567. \fBlocation\fP (\fI\%str\fP) \-\- The SNMP location.
  136568. .IP \(bu 2
  136569. \fBservices\fP (\fI\%str\fP) \-\- A list of selected services.
  136570. .UNINDENT
  136571. .UNINDENT
  136572. .sp
  136573. Example of usage:
  136574. .INDENT 7.0
  136575. .INDENT 3.5
  136576. .sp
  136577. .nf
  136578. .ft C
  136579. snmp\-agent\-settings:
  136580. win_snmp.agent_settings:
  136581. \- contact: Test Contact
  136582. \- location: Test Location
  136583. \- services:
  136584. \- Physical
  136585. \- Internet
  136586. .ft P
  136587. .fi
  136588. .UNINDENT
  136589. .UNINDENT
  136590. .UNINDENT
  136591. .INDENT 0.0
  136592. .TP
  136593. .B salt.states.win_snmp.auth_traps_enabled(name, status=True)
  136594. Manage the sending of authentication traps.
  136595. .INDENT 7.0
  136596. .TP
  136597. .B Parameters
  136598. \fBstatus\fP (\fI\%bool\fP) \-\- The enabled status.
  136599. .UNINDENT
  136600. .sp
  136601. Example of usage:
  136602. .INDENT 7.0
  136603. .INDENT 3.5
  136604. .sp
  136605. .nf
  136606. .ft C
  136607. snmp\-auth\-traps:
  136608. win_snmp.auth_traps_enabled:
  136609. \- status: True
  136610. .ft P
  136611. .fi
  136612. .UNINDENT
  136613. .UNINDENT
  136614. .UNINDENT
  136615. .INDENT 0.0
  136616. .TP
  136617. .B salt.states.win_snmp.community_names(name, communities=None)
  136618. Manage the SNMP accepted community names and their permissions.
  136619. .INDENT 7.0
  136620. .TP
  136621. .B Parameters
  136622. \fBcommunities\fP (\fI\%str\fP) \-\- A dictionary of SNMP communities and permissions.
  136623. .UNINDENT
  136624. .sp
  136625. Example of usage:
  136626. .INDENT 7.0
  136627. .INDENT 3.5
  136628. .sp
  136629. .nf
  136630. .ft C
  136631. snmp\-community\-names:
  136632. win_snmp.community_names:
  136633. \- communities:
  136634. TestCommunity: Read Only
  136635. OtherCommunity: Read Write
  136636. .ft P
  136637. .fi
  136638. .UNINDENT
  136639. .UNINDENT
  136640. .UNINDENT
  136641. .SS salt.states.wordpress module
  136642. .sp
  136643. This state module is used to manage Wordpress installations
  136644. .INDENT 0.0
  136645. .TP
  136646. .B depends
  136647. wp binary from \fI\%http://wp\-cli.org/\fP
  136648. .UNINDENT
  136649. .INDENT 0.0
  136650. .TP
  136651. .B salt.states.wordpress.activated(name, path, user)
  136652. Activate wordpress plugins
  136653. .INDENT 7.0
  136654. .TP
  136655. .B name
  136656. name of plugin to activate
  136657. .TP
  136658. .B path
  136659. path to wordpress installation
  136660. .TP
  136661. .B user
  136662. user who should own the files in the wordpress installation
  136663. .UNINDENT
  136664. .INDENT 7.0
  136665. .INDENT 3.5
  136666. .sp
  136667. .nf
  136668. .ft C
  136669. HyperDB:
  136670. wordpress.activated:
  136671. \- path: /var/www/html
  136672. \- user: apache
  136673. .ft P
  136674. .fi
  136675. .UNINDENT
  136676. .UNINDENT
  136677. .UNINDENT
  136678. .INDENT 0.0
  136679. .TP
  136680. .B salt.states.wordpress.deactivated(name, path, user)
  136681. Deactivate wordpress plugins
  136682. .INDENT 7.0
  136683. .TP
  136684. .B name
  136685. name of plugin to deactivate
  136686. .TP
  136687. .B path
  136688. path to wordpress installation
  136689. .TP
  136690. .B user
  136691. user who should own the files in the wordpress installation
  136692. .UNINDENT
  136693. .INDENT 7.0
  136694. .INDENT 3.5
  136695. .sp
  136696. .nf
  136697. .ft C
  136698. HyperDB:
  136699. wordpress.deactivated:
  136700. \- path: /var/www/html
  136701. \- user: apache
  136702. .ft P
  136703. .fi
  136704. .UNINDENT
  136705. .UNINDENT
  136706. .UNINDENT
  136707. .INDENT 0.0
  136708. .TP
  136709. .B salt.states.wordpress.installed(name, user, admin_user, admin_password, admin_email, title, url)
  136710. Run the initial setup of wordpress
  136711. .INDENT 7.0
  136712. .TP
  136713. .B name
  136714. path to the wordpress installation
  136715. .TP
  136716. .B user
  136717. user that owns the files for the wordpress installation
  136718. .TP
  136719. .B admin_user
  136720. username for wordpress website administrator user
  136721. .TP
  136722. .B admin_password
  136723. password for wordpress website administrator user
  136724. .TP
  136725. .B admin_email
  136726. email for wordpress website administrator user
  136727. .TP
  136728. .B title
  136729. title for the wordpress website
  136730. .TP
  136731. .B url
  136732. url for the wordpress website
  136733. .UNINDENT
  136734. .INDENT 7.0
  136735. .INDENT 3.5
  136736. .sp
  136737. .nf
  136738. .ft C
  136739. /var/www/html:
  136740. wordpress.installed:
  136741. \- title: Daniel\(aqs Awesome Blog
  136742. \- user: apache
  136743. \- admin_user: dwallace
  136744. \- admin_email: dwallace@example.com
  136745. \- admin_password: password123
  136746. \- url: https://blog.dwallace.com
  136747. .ft P
  136748. .fi
  136749. .UNINDENT
  136750. .UNINDENT
  136751. .UNINDENT
  136752. .SS salt.states.x509
  136753. .sp
  136754. Manage X509 Certificates
  136755. .sp
  136756. New in version 2015.8.0.
  136757. .INDENT 0.0
  136758. .TP
  136759. .B depends
  136760. M2Crypto
  136761. .UNINDENT
  136762. .sp
  136763. This module can enable managing a complete PKI infrastructure including creating private keys, CAs,
  136764. certificates and CRLs. It includes the ability to generate a private key on a server, and have the
  136765. corresponding public key sent to a remote CA to create a CA signed certificate. This can be done in
  136766. a secure manner, where private keys are always generated locally and never moved across the network.
  136767. .sp
  136768. Here is a simple example scenario. In this example \fBca\fP is the ca server,
  136769. and \fBwww\fP is a web server that needs a certificate signed by \fBca\fP\&.
  136770. .sp
  136771. For remote signing, peers must be permitted to remotely call the
  136772. \fBsign_remote_certificate\fP function.
  136773. .sp
  136774. /etc/salt/master.d/peer.conf
  136775. .INDENT 0.0
  136776. .INDENT 3.5
  136777. .sp
  136778. .nf
  136779. .ft C
  136780. peer:
  136781. .*:
  136782. \- sign_remote_certificate
  136783. .ft P
  136784. .fi
  136785. .UNINDENT
  136786. .UNINDENT
  136787. .sp
  136788. /srv/salt/top.sls
  136789. .INDENT 0.0
  136790. .INDENT 3.5
  136791. .sp
  136792. .nf
  136793. .ft C
  136794. base:
  136795. \(aq*\(aq:
  136796. \- cert
  136797. \(aqca\(aq:
  136798. \- ca
  136799. \(aqwww\(aq:
  136800. \- www
  136801. .ft P
  136802. .fi
  136803. .UNINDENT
  136804. .UNINDENT
  136805. .sp
  136806. This state creates the CA key, certificate and signing policy. It also publishes the certificate to
  136807. the mine where it can be easily retrieved by other minions.
  136808. .sp
  136809. /srv/salt/ca.sls
  136810. .INDENT 0.0
  136811. .INDENT 3.5
  136812. .sp
  136813. .nf
  136814. .ft C
  136815. salt\-minion:
  136816. service.running:
  136817. \- enable: True
  136818. \- watch:
  136819. \- file: /etc/salt/minion.d/x509.conf
  136820. /etc/salt/minion.d/x509.conf:
  136821. file.managed:
  136822. \- source: salt://x509.conf
  136823. /etc/pki:
  136824. file.directory
  136825. /etc/pki/issued_certs:
  136826. file.directory
  136827. /etc/pki/ca.crt:
  136828. x509.private_key_managed:
  136829. \- name: /etc/pki/ca.key
  136830. \- bits: 4096
  136831. \- backup: True
  136832. /etc/pki/ca.crt:
  136833. x509.certificate_managed:
  136834. \- signing_private_key: /etc/pki/ca.key
  136835. \- CN: ca.example.com
  136836. \- C: US
  136837. \- ST: Utah
  136838. \- L: Salt Lake City
  136839. \- basicConstraints: "critical CA:true"
  136840. \- keyUsage: "critical cRLSign, keyCertSign"
  136841. \- subjectKeyIdentifier: hash
  136842. \- authorityKeyIdentifier: keyid,issuer:always
  136843. \- days_valid: 3650
  136844. \- days_remaining: 0
  136845. \- backup: True
  136846. \- require:
  136847. \- file: /etc/pki
  136848. .ft P
  136849. .fi
  136850. .UNINDENT
  136851. .UNINDENT
  136852. .sp
  136853. The signing policy defines properties that override any property requested or included in a CRL. It also
  136854. can define a restricted list of minions which are allowed to remotely invoke this signing policy.
  136855. .sp
  136856. /srv/salt/x509.conf
  136857. .INDENT 0.0
  136858. .INDENT 3.5
  136859. .sp
  136860. .nf
  136861. .ft C
  136862. mine_functions:
  136863. x509.get_pem_entries: [/etc/pki/ca.crt]
  136864. x509_signing_policies:
  136865. www:
  136866. \- minions: \(aqwww\(aq
  136867. \- signing_private_key: /etc/pki/ca.key
  136868. \- signing_cert: /etc/pki/ca.crt
  136869. \- C: US
  136870. \- ST: Utah
  136871. \- L: Salt Lake City
  136872. \- basicConstraints: "critical CA:false"
  136873. \- keyUsage: "critical keyEncipherment"
  136874. \- subjectKeyIdentifier: hash
  136875. \- authorityKeyIdentifier: keyid,issuer:always
  136876. \- days_valid: 90
  136877. \- copypath: /etc/pki/issued_certs/
  136878. .ft P
  136879. .fi
  136880. .UNINDENT
  136881. .UNINDENT
  136882. .sp
  136883. This state will instruct all minions to trust certificates signed by our new CA.
  136884. Using Jinja to strip newlines from the text avoids dealing with newlines in the rendered YAML,
  136885. and the \fBsign_remote_certificate\fP state will
  136886. handle properly formatting the text before writing the output.
  136887. .sp
  136888. /srv/salt/cert.sls
  136889. .INDENT 0.0
  136890. .INDENT 3.5
  136891. .sp
  136892. .nf
  136893. .ft C
  136894. /usr/local/share/ca\-certificates:
  136895. file.directory
  136896. /usr/local/share/ca\-certificates/intca.crt:
  136897. x509.pem_managed:
  136898. \- text: {{ salt[\(aqmine.get\(aq](\(aqca\(aq, \(aqx509.get_pem_entries\(aq)[\(aqca\(aq][\(aq/etc/pki/ca.crt\(aq]|replace(\(aq\en\(aq, \(aq\(aq) }}
  136899. .ft P
  136900. .fi
  136901. .UNINDENT
  136902. .UNINDENT
  136903. .sp
  136904. This state creates a private key then requests a certificate signed by ca according to the www policy.
  136905. .sp
  136906. /srv/salt/www.sls
  136907. .INDENT 0.0
  136908. .INDENT 3.5
  136909. .sp
  136910. .nf
  136911. .ft C
  136912. /etc/pki/www.crt:
  136913. x509.private_key_managed:
  136914. \- name: /etc/pki/www.key
  136915. \- bits: 4096
  136916. \- backup: True
  136917. /etc/pki/www.crt:
  136918. x509.certificate_managed:
  136919. \- ca_server: ca
  136920. \- signing_policy: www
  136921. \- public_key: /etc/pki/www.key
  136922. \- CN: www.example.com
  136923. \- days_remaining: 30
  136924. \- backup: True
  136925. .ft P
  136926. .fi
  136927. .UNINDENT
  136928. .UNINDENT
  136929. .sp
  136930. This other state creates a private key then requests a certificate signed by ca
  136931. according to the www policy but adds a strict date range for the certificate to
  136932. be considered valid.
  136933. .sp
  136934. /srv/salt/www\-time\-limited.sls
  136935. .INDENT 0.0
  136936. .INDENT 3.5
  136937. .sp
  136938. .nf
  136939. .ft C
  136940. /etc/pki/www\-time\-limited.crt:
  136941. x509.certificate_managed:
  136942. \- ca_server: ca
  136943. \- signing_policy: www
  136944. \- public_key: /etc/pki/www\-time\-limited.key
  136945. \- CN: www.example.com
  136946. \- not_before: 2019\-05\-05 00:00:00
  136947. \- not_after: 2020\-05\-05 14:30:00
  136948. \- backup: True
  136949. .ft P
  136950. .fi
  136951. .UNINDENT
  136952. .UNINDENT
  136953. .INDENT 0.0
  136954. .TP
  136955. .B salt.states.x509.certificate_managed(name, days_remaining=90, append_certs=None, managed_private_key=None, **kwargs)
  136956. Manage a Certificate
  136957. .INDENT 7.0
  136958. .TP
  136959. .B name
  136960. Path to the certificate
  136961. .TP
  136962. .B days_remaining
  136963. 90
  136964. Recreate the certificate if the number of days remaining on it
  136965. are less than this number. The value should be less than
  136966. \fBdays_valid\fP, otherwise the certificate will be recreated
  136967. every time the state is run. A value of 0 disables automatic
  136968. renewal.
  136969. .TP
  136970. .B append_certs:
  136971. A list of certificates to be appended to the managed file.
  136972. They must be valid PEM files, otherwise an error will be thrown.
  136973. .TP
  136974. .B managed_private_key:
  136975. Has no effect since v2016.11 and will be removed in Salt Aluminium.
  136976. Use a separate x509.private_key_managed call instead.
  136977. .TP
  136978. .B kwargs:
  136979. Any arguments supported by \fBx509.create_certificate\fP or \fBfile.managed\fP are supported.
  136980. .TP
  136981. .B not_before:
  136982. Initial validity date for the certificate. This date must be specified
  136983. in the format \(aq%Y\-%m\-%d %H:%M:%S\(aq.
  136984. .sp
  136985. New in version Sodium.
  136986. .TP
  136987. .B not_after:
  136988. Final validity date for the certificate. This date must be specified in
  136989. the format \(aq%Y\-%m\-%d %H:%M:%S\(aq.
  136990. .sp
  136991. New in version Sodium.
  136992. .UNINDENT
  136993. .sp
  136994. Examples:
  136995. .INDENT 7.0
  136996. .INDENT 3.5
  136997. .sp
  136998. .nf
  136999. .ft C
  137000. /etc/pki/ca.crt:
  137001. x509.certificate_managed:
  137002. \- signing_private_key: /etc/pki/ca.key
  137003. \- CN: ca.example.com
  137004. \- C: US
  137005. \- ST: Utah
  137006. \- L: Salt Lake City
  137007. \- basicConstraints: "critical CA:true"
  137008. \- keyUsage: "critical cRLSign, keyCertSign"
  137009. \- subjectKeyIdentifier: hash
  137010. \- authorityKeyIdentifier: keyid,issuer:always
  137011. \- days_valid: 3650
  137012. \- days_remaining: 0
  137013. \- backup: True
  137014. .ft P
  137015. .fi
  137016. .UNINDENT
  137017. .UNINDENT
  137018. .INDENT 7.0
  137019. .INDENT 3.5
  137020. .sp
  137021. .nf
  137022. .ft C
  137023. /etc/ssl/www.crt:
  137024. x509.certificate_managed:
  137025. \- ca_server: pki
  137026. \- signing_policy: www
  137027. \- public_key: /etc/ssl/www.key
  137028. \- CN: www.example.com
  137029. \- days_valid: 90
  137030. \- days_remaining: 30
  137031. \- backup: True
  137032. .ft P
  137033. .fi
  137034. .UNINDENT
  137035. .UNINDENT
  137036. .UNINDENT
  137037. .INDENT 0.0
  137038. .TP
  137039. .B salt.states.x509.crl_managed(name, signing_private_key, signing_private_key_passphrase=None, signing_cert=None, revoked=None, days_valid=100, digest=u\(aq\(aq, days_remaining=30, include_expired=False, **kwargs)
  137040. Manage a Certificate Revocation List
  137041. .INDENT 7.0
  137042. .TP
  137043. .B name
  137044. Path to the certificate
  137045. .TP
  137046. .B signing_private_key
  137047. The private key that will be used to sign the CRL. This is
  137048. usually your CA\(aqs private key.
  137049. .TP
  137050. .B signing_private_key_passphrase
  137051. Passphrase to decrypt the private key.
  137052. .TP
  137053. .B signing_cert
  137054. The certificate of the authority that will be used to sign the CRL.
  137055. This is usually your CA\(aqs certificate.
  137056. .TP
  137057. .B revoked
  137058. A list of certificates to revoke. Must include either a serial number or a
  137059. the certificate itself. Can optionally include the revocation date and
  137060. notAfter date from the certificate. See example below for details.
  137061. .TP
  137062. .B days_valid
  137063. 100
  137064. The number of days the certificate should be valid for.
  137065. .TP
  137066. .B digest
  137067. The digest to use for signing the CRL. This has no effect on versions
  137068. of pyOpenSSL less than 0.14.
  137069. .TP
  137070. .B days_remaining
  137071. 30
  137072. The CRL should be automatically recreated if there are less than
  137073. \fBdays_remaining\fP days until the CRL expires. Set to 0 to disable
  137074. automatic renewal.
  137075. .TP
  137076. .B include_expired
  137077. False
  137078. If \fBTrue\fP, include expired certificates in the CRL.
  137079. .TP
  137080. .B kwargs
  137081. Any arguments supported by \fBfile.managed\fP are supported.
  137082. .UNINDENT
  137083. .sp
  137084. Example:
  137085. .INDENT 7.0
  137086. .INDENT 3.5
  137087. .sp
  137088. .nf
  137089. .ft C
  137090. /etc/pki/ca.crl:
  137091. x509.crl_managed:
  137092. \- signing_private_key: /etc/pki/myca.key
  137093. \- signing_cert: /etc/pki/myca.crt
  137094. \- revoked:
  137095. \- compromized_Web_key:
  137096. \- certificate: /etc/pki/certs/badweb.crt
  137097. \- revocation_date: 2015\-03\-01 00:00:00
  137098. \- reason: keyCompromise
  137099. \- terminated_vpn_user:
  137100. \- serial_number: D6:D2:DC:D8:4D:5C:C0:F4
  137101. \- not_after: 2016\-01\-01 00:00:00
  137102. \- revocation_date: 2015\-02\-25 00:00:00
  137103. \- reason: cessationOfOperation
  137104. .ft P
  137105. .fi
  137106. .UNINDENT
  137107. .UNINDENT
  137108. .UNINDENT
  137109. .INDENT 0.0
  137110. .TP
  137111. .B salt.states.x509.csr_managed(name, **kwargs)
  137112. Manage a Certificate Signing Request
  137113. .INDENT 7.0
  137114. .TP
  137115. .B name:
  137116. Path to the CSR
  137117. .TP
  137118. .B properties:
  137119. The properties to be added to the certificate request, including items like subject, extensions
  137120. and public key. See above for valid properties.
  137121. .TP
  137122. .B kwargs:
  137123. Any arguments supported by \fBfile.managed\fP are supported.
  137124. .UNINDENT
  137125. .sp
  137126. Example:
  137127. .INDENT 7.0
  137128. .INDENT 3.5
  137129. .sp
  137130. .nf
  137131. .ft C
  137132. /etc/pki/mycert.csr:
  137133. x509.csr_managed:
  137134. \- private_key: /etc/pki/mycert.key
  137135. \- CN: www.example.com
  137136. \- C: US
  137137. \- ST: Utah
  137138. \- L: Salt Lake City
  137139. \- keyUsage: \(aqcritical dataEncipherment\(aq
  137140. .ft P
  137141. .fi
  137142. .UNINDENT
  137143. .UNINDENT
  137144. .UNINDENT
  137145. .INDENT 0.0
  137146. .TP
  137147. .B salt.states.x509.pem_managed(name, text, backup=False, **kwargs)
  137148. Manage the contents of a PEM file directly with the content in text, ensuring correct formatting.
  137149. .INDENT 7.0
  137150. .TP
  137151. .B name:
  137152. The path to the file to manage
  137153. .TP
  137154. .B text:
  137155. The PEM formatted text to write.
  137156. .TP
  137157. .B kwargs:
  137158. Any arguments supported by \fBfile.managed\fP are supported.
  137159. .UNINDENT
  137160. .UNINDENT
  137161. .INDENT 0.0
  137162. .TP
  137163. .B salt.states.x509.private_key_managed(name, bits=2048, passphrase=None, cipher=u\(aqaes_128_cbc\(aq, new=False, overwrite=False, verbose=True, **kwargs)
  137164. Manage a private key\(aqs existence.
  137165. .INDENT 7.0
  137166. .TP
  137167. .B name:
  137168. Path to the private key
  137169. .TP
  137170. .B bits:
  137171. Key length in bits. Default 2048.
  137172. .TP
  137173. .B passphrase:
  137174. Passphrase for encrypting the private key.
  137175. .TP
  137176. .B cipher:
  137177. Cipher for encrypting the private key.
  137178. .TP
  137179. .B new:
  137180. Always create a new key. Defaults to \fBFalse\fP\&.
  137181. Combining new with \fBprereq\fP
  137182. can allow key rotation whenever a new certificate is generated.
  137183. .TP
  137184. .B overwrite:
  137185. Overwrite an existing private key if the provided passphrase cannot decrypt it.
  137186. .TP
  137187. .B verbose:
  137188. Provide visual feedback on stdout, dots while key is generated.
  137189. Default is True.
  137190. .sp
  137191. New in version 2016.11.0.
  137192. .TP
  137193. .B kwargs:
  137194. Any kwargs supported by file.managed are supported.
  137195. .UNINDENT
  137196. .sp
  137197. Example:
  137198. .sp
  137199. The JINJA templating in this example ensures a private key is generated if the file doesn\(aqt exist
  137200. and that a new private key is generated whenever the certificate that uses it is to be renewed.
  137201. .INDENT 7.0
  137202. .INDENT 3.5
  137203. .sp
  137204. .nf
  137205. .ft C
  137206. /etc/pki/www.key:
  137207. x509.private_key_managed:
  137208. \- bits: 4096
  137209. \- new: True
  137210. {% if salt[\(aqfile.file_exists\(aq](\(aq/etc/pki/www.key\(aq) \-%}
  137211. \- prereq:
  137212. \- x509: /etc/pki/www.crt
  137213. {%\- endif %}
  137214. .ft P
  137215. .fi
  137216. .UNINDENT
  137217. .UNINDENT
  137218. .UNINDENT
  137219. .SS salt.states.xml
  137220. .SS XML Manager
  137221. .sp
  137222. State management of XML files
  137223. .INDENT 0.0
  137224. .TP
  137225. .B salt.states.xml.value_present(name, xpath, value, **kwargs)
  137226. New in version 3000.
  137227. .sp
  137228. Manages a given XML file
  137229. .INDENT 7.0
  137230. .TP
  137231. .B name
  137232. string
  137233. The location of the XML file to manage, as an absolute path.
  137234. .TP
  137235. .B xpath
  137236. string
  137237. xpath location to manage
  137238. .TP
  137239. .B value
  137240. string
  137241. value to ensure present
  137242. .UNINDENT
  137243. .INDENT 7.0
  137244. .INDENT 3.5
  137245. .sp
  137246. .nf
  137247. .ft C
  137248. ensure_value_true:
  137249. xml.value_present:
  137250. \- name: /tmp/test.xml
  137251. \- xpath: .//playwright[@id=\(aq1\(aq]
  137252. \- value: William Shakespeare
  137253. .ft P
  137254. .fi
  137255. .UNINDENT
  137256. .UNINDENT
  137257. .UNINDENT
  137258. .SS salt.states.xmpp
  137259. .SS Sending Messages over XMPP
  137260. .sp
  137261. New in version 2014.1.0.
  137262. .sp
  137263. This state is useful for firing messages during state runs, using the XMPP
  137264. protocol
  137265. .INDENT 0.0
  137266. .INDENT 3.5
  137267. .sp
  137268. .nf
  137269. .ft C
  137270. server\-warning\-message:
  137271. xmpp.send_msg:
  137272. \- name: \(aqThis is a server warning message\(aq
  137273. \- profile: my\-xmpp\-account
  137274. \- recipient: admins@xmpp.example.com/salt
  137275. .ft P
  137276. .fi
  137277. .UNINDENT
  137278. .UNINDENT
  137279. .INDENT 0.0
  137280. .TP
  137281. .B salt.states.xmpp.send_msg(name, recipient, profile)
  137282. Send a message to an XMPP user
  137283. .INDENT 7.0
  137284. .INDENT 3.5
  137285. .sp
  137286. .nf
  137287. .ft C
  137288. server\-warning\-message:
  137289. xmpp.send_msg:
  137290. \- name: \(aqThis is a server warning message\(aq
  137291. \- profile: my\-xmpp\-account
  137292. \- recipient: admins@xmpp.example.com/salt
  137293. .ft P
  137294. .fi
  137295. .UNINDENT
  137296. .UNINDENT
  137297. .INDENT 7.0
  137298. .TP
  137299. .B name
  137300. The message to send to the XMPP user
  137301. .UNINDENT
  137302. .UNINDENT
  137303. .INDENT 0.0
  137304. .TP
  137305. .B salt.states.xmpp.send_msg_multi(name, profile, recipients=None, rooms=None)
  137306. Send a message to an list of recipients or rooms
  137307. .INDENT 7.0
  137308. .INDENT 3.5
  137309. .sp
  137310. .nf
  137311. .ft C
  137312. server\-warning\-message:
  137313. xmpp.send_msg:
  137314. \- name: \(aqThis is a server warning message\(aq
  137315. \- profile: my\-xmpp\-account
  137316. \- recipients:
  137317. \- admins@xmpp.example.com/salt
  137318. \- rooms:
  137319. \- qa@conference.xmpp.example.com
  137320. .ft P
  137321. .fi
  137322. .UNINDENT
  137323. .UNINDENT
  137324. .INDENT 7.0
  137325. .TP
  137326. .B name
  137327. The message to send to the XMPP user
  137328. .UNINDENT
  137329. .UNINDENT
  137330. .SS salt.states.zabbix_action
  137331. .sp
  137332. New in version 2017.7.
  137333. .sp
  137334. Management of Zabbix Action object over Zabbix API.
  137335. .INDENT 0.0
  137336. .TP
  137337. .B codeauthor
  137338. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  137339. .UNINDENT
  137340. .INDENT 0.0
  137341. .TP
  137342. .B salt.states.zabbix_action.absent(name, **kwargs)
  137343. Makes the Zabbix Action to be absent (either does not exist or delete it).
  137344. .INDENT 7.0
  137345. .TP
  137346. .B Parameters
  137347. .INDENT 7.0
  137348. .IP \(bu 2
  137349. \fBname\fP \-\- Zabbix Action name
  137350. .IP \(bu 2
  137351. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137352. .IP \(bu 2
  137353. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137354. .IP \(bu 2
  137355. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137356. .UNINDENT
  137357. .UNINDENT
  137358. .INDENT 7.0
  137359. .INDENT 3.5
  137360. .sp
  137361. .nf
  137362. .ft C
  137363. zabbix\-action\-absent:
  137364. zabbix_action.absent:
  137365. \- name: Action name
  137366. .ft P
  137367. .fi
  137368. .UNINDENT
  137369. .UNINDENT
  137370. .UNINDENT
  137371. .INDENT 0.0
  137372. .TP
  137373. .B salt.states.zabbix_action.present(name, params, **kwargs)
  137374. Creates Zabbix Action object or if differs update it according defined parameters
  137375. .INDENT 7.0
  137376. .TP
  137377. .B Parameters
  137378. .INDENT 7.0
  137379. .IP \(bu 2
  137380. \fBname\fP \-\- Zabbix Action name
  137381. .IP \(bu 2
  137382. \fBparams\fP \-\- Definition of the Zabbix Action
  137383. .IP \(bu 2
  137384. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137385. .IP \(bu 2
  137386. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137387. .IP \(bu 2
  137388. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137389. .UNINDENT
  137390. .UNINDENT
  137391. .sp
  137392. If there is a need to get a value from current zabbix online (e.g. id of a hostgroup you want to put a discovered
  137393. system into), put a dictionary with two keys "query_object" and "query_name" instead of the value.
  137394. In this example we want to get object id of hostgroup named "Virtual machines" and "Databases".
  137395. .INDENT 7.0
  137396. .INDENT 3.5
  137397. .sp
  137398. .nf
  137399. .ft C
  137400. zabbix\-action\-present:
  137401. zabbix_action.present:
  137402. \- name: VMs
  137403. \- params:
  137404. eventsource: 2
  137405. status: 0
  137406. filter:
  137407. evaltype: 2
  137408. conditions:
  137409. \- conditiontype: 24
  137410. operator: 2
  137411. value: \(aqvirtual\(aq
  137412. \- conditiontype: 24
  137413. operator: 2
  137414. value: \(aqkvm\(aq
  137415. operations:
  137416. \- operationtype: 2
  137417. \- operationtype: 4
  137418. opgroup:
  137419. \- groupid:
  137420. query_object: hostgroup
  137421. query_name: Virtual machines
  137422. \- groupid:
  137423. query_object: hostgroup
  137424. query_name: Databases
  137425. .ft P
  137426. .fi
  137427. .UNINDENT
  137428. .UNINDENT
  137429. .UNINDENT
  137430. .SS salt.states.zabbix_hostgroup module
  137431. .sp
  137432. Management of Zabbix host groups.
  137433. .INDENT 0.0
  137434. .TP
  137435. .B codeauthor
  137436. Jiri Kotlin <\fI\%jiri.kotlin@ultimum.io\fP>
  137437. .UNINDENT
  137438. .INDENT 0.0
  137439. .TP
  137440. .B salt.states.zabbix_hostgroup.absent(name, **kwargs)
  137441. Ensures that the host group does not exist, eventually delete host group.
  137442. .sp
  137443. New in version 2016.3.0.
  137444. .INDENT 7.0
  137445. .TP
  137446. .B Parameters
  137447. .INDENT 7.0
  137448. .IP \(bu 2
  137449. \fBname\fP \-\- name of the host group
  137450. .IP \(bu 2
  137451. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137452. .IP \(bu 2
  137453. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137454. .IP \(bu 2
  137455. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137456. .UNINDENT
  137457. .UNINDENT
  137458. .INDENT 7.0
  137459. .INDENT 3.5
  137460. .sp
  137461. .nf
  137462. .ft C
  137463. delete_testing_host_group:
  137464. zabbix_hostgroup.absent:
  137465. \- name: \(aqMy hostgroup name\(aq
  137466. .ft P
  137467. .fi
  137468. .UNINDENT
  137469. .UNINDENT
  137470. .UNINDENT
  137471. .INDENT 0.0
  137472. .TP
  137473. .B salt.states.zabbix_hostgroup.present(name, **kwargs)
  137474. Ensures that the host group exists, eventually creates new host group.
  137475. .sp
  137476. New in version 2016.3.0.
  137477. .INDENT 7.0
  137478. .TP
  137479. .B Parameters
  137480. .INDENT 7.0
  137481. .IP \(bu 2
  137482. \fBname\fP \-\- name of the host group
  137483. .IP \(bu 2
  137484. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137485. .IP \(bu 2
  137486. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137487. .IP \(bu 2
  137488. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137489. .UNINDENT
  137490. .UNINDENT
  137491. .INDENT 7.0
  137492. .INDENT 3.5
  137493. .sp
  137494. .nf
  137495. .ft C
  137496. create_testing_host_group:
  137497. zabbix_hostgroup.present:
  137498. \- name: \(aqMy hostgroup name\(aq
  137499. .ft P
  137500. .fi
  137501. .UNINDENT
  137502. .UNINDENT
  137503. .UNINDENT
  137504. .SS salt.states.zabbix_mediatype module
  137505. .sp
  137506. Management of Zabbix mediatypes.
  137507. .INDENT 0.0
  137508. .TP
  137509. .B codeauthor
  137510. Raymond Kuiper <\fI\%qix@the\-wired.net\fP>
  137511. .UNINDENT
  137512. .INDENT 0.0
  137513. .TP
  137514. .B salt.states.zabbix_mediatype.absent(name, **kwargs)
  137515. Ensures that the mediatype does not exist, eventually deletes the mediatype.
  137516. .INDENT 7.0
  137517. .TP
  137518. .B Parameters
  137519. .INDENT 7.0
  137520. .IP \(bu 2
  137521. \fBname\fP \-\- name of the mediatype
  137522. .IP \(bu 2
  137523. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137524. .IP \(bu 2
  137525. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137526. .IP \(bu 2
  137527. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137528. .UNINDENT
  137529. .UNINDENT
  137530. .INDENT 7.0
  137531. .INDENT 3.5
  137532. .sp
  137533. .nf
  137534. .ft C
  137535. delete_mediatype:
  137536. zabbix_mediatype.absent:
  137537. \- name: \(aqEmail\(aq
  137538. .ft P
  137539. .fi
  137540. .UNINDENT
  137541. .UNINDENT
  137542. .UNINDENT
  137543. .INDENT 0.0
  137544. .TP
  137545. .B salt.states.zabbix_mediatype.present(name, mediatype, **kwargs)
  137546. Creates new mediatype.
  137547. NOTE: This function accepts all standard mediatype properties: keyword argument names differ depending on your
  137548. zabbix version, see:
  137549. \fI\%https://www.zabbix.com/documentation/3.0/manual/api/reference/host/object#host_inventory\fP
  137550. .INDENT 7.0
  137551. .TP
  137552. .B Parameters
  137553. .INDENT 7.0
  137554. .IP \(bu 2
  137555. \fBname\fP \-\- name of the mediatype
  137556. .IP \(bu 2
  137557. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137558. .IP \(bu 2
  137559. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137560. .IP \(bu 2
  137561. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137562. .UNINDENT
  137563. .UNINDENT
  137564. .INDENT 7.0
  137565. .INDENT 3.5
  137566. .sp
  137567. .nf
  137568. .ft C
  137569. make_new_mediatype:
  137570. zabbix_mediatype.present:
  137571. \- name: \(aqEmail\(aq
  137572. \- mediatype: 0
  137573. \- smtp_server: smtp.example.com
  137574. \- smtp_hello: zabbix.example.com
  137575. \- smtp_email: zabbix@example.com
  137576. .ft P
  137577. .fi
  137578. .UNINDENT
  137579. .UNINDENT
  137580. .UNINDENT
  137581. .SS salt.states.zabbix_template
  137582. .sp
  137583. New in version 2017.7.
  137584. .sp
  137585. Management of Zabbix Template object over Zabbix API.
  137586. .INDENT 0.0
  137587. .TP
  137588. .B codeauthor
  137589. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  137590. .UNINDENT
  137591. .INDENT 0.0
  137592. .TP
  137593. .B salt.states.zabbix_template.absent(name, **kwargs)
  137594. Makes the Zabbix Template to be absent (either does not exist or delete it).
  137595. .INDENT 7.0
  137596. .TP
  137597. .B Parameters
  137598. .INDENT 7.0
  137599. .IP \(bu 2
  137600. \fBname\fP \-\- Zabbix Template name
  137601. .IP \(bu 2
  137602. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137603. .IP \(bu 2
  137604. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137605. .IP \(bu 2
  137606. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137607. .UNINDENT
  137608. .UNINDENT
  137609. .INDENT 7.0
  137610. .INDENT 3.5
  137611. .sp
  137612. .nf
  137613. .ft C
  137614. zabbix\-template\-absent:
  137615. zabbix_template.absent:
  137616. \- name: Ceph OSD
  137617. .ft P
  137618. .fi
  137619. .UNINDENT
  137620. .UNINDENT
  137621. .UNINDENT
  137622. .INDENT 0.0
  137623. .TP
  137624. .B salt.states.zabbix_template.is_present(name, **kwargs)
  137625. Check if Zabbix Template already exists.
  137626. .INDENT 7.0
  137627. .TP
  137628. .B Parameters
  137629. .INDENT 7.0
  137630. .IP \(bu 2
  137631. \fBname\fP \-\- Zabbix Template name
  137632. .IP \(bu 2
  137633. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137634. .IP \(bu 2
  137635. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137636. .IP \(bu 2
  137637. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137638. .UNINDENT
  137639. .UNINDENT
  137640. .INDENT 7.0
  137641. .INDENT 3.5
  137642. .sp
  137643. .nf
  137644. .ft C
  137645. does_zabbix\-template\-exist:
  137646. zabbix_template.is_present:
  137647. \- name: Template OS Linux
  137648. .ft P
  137649. .fi
  137650. .UNINDENT
  137651. .UNINDENT
  137652. .UNINDENT
  137653. .INDENT 0.0
  137654. .TP
  137655. .B salt.states.zabbix_template.present(name, params, static_host_list=True, **kwargs)
  137656. Creates Zabbix Template object or if differs update it according defined parameters. See Zabbix API documentation.
  137657. .sp
  137658. Zabbix API version: >3.0
  137659. .INDENT 7.0
  137660. .TP
  137661. .B Parameters
  137662. .INDENT 7.0
  137663. .IP \(bu 2
  137664. \fBname\fP \-\- Zabbix Template name
  137665. .IP \(bu 2
  137666. \fBparams\fP \-\- Additional parameters according to Zabbix API documentation
  137667. .IP \(bu 2
  137668. \fBstatic_host_list\fP \-\- If hosts assigned to the template are controlled
  137669. only by this state or can be also assigned externally
  137670. .IP \(bu 2
  137671. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137672. .IP \(bu 2
  137673. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137674. .IP \(bu 2
  137675. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137676. .UNINDENT
  137677. .UNINDENT
  137678. .sp
  137679. \fBNOTE:\fP
  137680. .INDENT 7.0
  137681. .INDENT 3.5
  137682. If there is a need to get a value from current zabbix online (e.g. ids of host groups you want the template
  137683. to be associated with), put a dictionary with two keys "query_object" and "query_name" instead of the value.
  137684. In this example we want to create template named "Testing Template", assign it to hostgroup Templates,
  137685. link it to two ceph nodes and create a macro.
  137686. .UNINDENT
  137687. .UNINDENT
  137688. .sp
  137689. \fBNOTE:\fP
  137690. .INDENT 7.0
  137691. .INDENT 3.5
  137692. IMPORTANT NOTE:
  137693. Objects (except for template name) are identified by name (or by other key in some exceptional cases)
  137694. so changing name of object means deleting old one and creating new one with new ID !!!
  137695. .UNINDENT
  137696. .UNINDENT
  137697. .sp
  137698. \fBNOTE:\fP
  137699. .INDENT 7.0
  137700. .INDENT 3.5
  137701. .INDENT 0.0
  137702. .TP
  137703. .B NOT SUPPORTED FEATURES:
  137704. .INDENT 7.0
  137705. .IP \(bu 2
  137706. linked templates
  137707. .IP \(bu 2
  137708. trigger dependencies
  137709. .IP \(bu 2
  137710. groups and group prototypes for host prototypes
  137711. .UNINDENT
  137712. .UNINDENT
  137713. .UNINDENT
  137714. .UNINDENT
  137715. .sp
  137716. SLS Example:
  137717. .INDENT 7.0
  137718. .INDENT 3.5
  137719. .sp
  137720. .nf
  137721. .ft C
  137722. zabbix\-template\-present:
  137723. zabbix_template.present:
  137724. \- name: Testing Template
  137725. # Do not touch existing assigned hosts
  137726. # True will detach all other hosts than defined here
  137727. \- static_host_list: False
  137728. \- params:
  137729. description: Template for Ceph nodes
  137730. groups:
  137731. # groups must already exist
  137732. # template must be at least in one hostgroup
  137733. \- groupid:
  137734. query_object: hostgroup
  137735. query_name: Templates
  137736. macros:
  137737. \- macro: "{$CEPH_CLUSTER_NAME}"
  137738. value: ceph
  137739. hosts:
  137740. # hosts must already exist
  137741. \- hostid:
  137742. query_object: host
  137743. query_name: ceph\-osd\-01
  137744. \- hostid:
  137745. query_object: host
  137746. query_name: ceph\-osd\-02
  137747. # templates:
  137748. # Linked templates \- not supported by state module but can be linked manually (will not be touched)
  137749. applications:
  137750. \- name: Ceph OSD
  137751. items:
  137752. \- name: Ceph OSD avg fill item
  137753. key_: ceph.osd_avg_fill
  137754. type: 2
  137755. value_type: 0
  137756. delay: 60
  137757. units: \(aq%\(aq
  137758. description: \(aqAverage fill of OSD\(aq
  137759. applications:
  137760. \- applicationid:
  137761. query_object: application
  137762. query_name: Ceph OSD
  137763. triggers:
  137764. \- description: "Ceph OSD filled more that 90%"
  137765. expression: "{{\(aq{\(aq}}Testing Template:ceph.osd_avg_fill.last(){{\(aq}\(aq}}>90"
  137766. priority: 4
  137767. discoveries:
  137768. \- name: Mounted filesystem discovery
  137769. key_: vfs.fs.discovery
  137770. type: 0
  137771. delay: 60
  137772. itemprototypes:
  137773. \- name: Free disk space on {{\(aq{#\(aq}}FSNAME}
  137774. key_: vfs.fs.size[{{\(aq{#\(aq}}FSNAME},free]
  137775. type: 0
  137776. value_type: 3
  137777. delay: 60
  137778. applications:
  137779. \- applicationid:
  137780. query_object: application
  137781. query_name: Ceph OSD
  137782. triggerprototypes:
  137783. \- description: "Free disk space is less than 20% on volume {{\(aq{#\(aq}}FSNAME{{\(aq}\(aq}}"
  137784. expression: "{{\(aq{\(aq}}Testing Template:vfs.fs.size[{{\(aq{#\(aq}}FSNAME},free].last(){{\(aq}\(aq}}<20"
  137785. graphs:
  137786. \- name: Ceph OSD avg fill graph
  137787. width: 900
  137788. height: 200
  137789. graphtype: 0
  137790. gitems:
  137791. \- color: F63100
  137792. itemid:
  137793. query_object: item
  137794. query_name: Ceph OSD avg fill item
  137795. screens:
  137796. \- name: Ceph
  137797. hsize: 1
  137798. vsize: 1
  137799. screenitems:
  137800. \- x: 0
  137801. y: 0
  137802. resourcetype: 0
  137803. resourceid:
  137804. query_object: graph
  137805. query_name: Ceph OSD avg fill graph
  137806. .ft P
  137807. .fi
  137808. .UNINDENT
  137809. .UNINDENT
  137810. .UNINDENT
  137811. .SS salt.states.zabbix_usergroup module
  137812. .sp
  137813. Management of Zabbix user groups.
  137814. .INDENT 0.0
  137815. .TP
  137816. .B codeauthor
  137817. Jiri Kotlin <\fI\%jiri.kotlin@ultimum.io\fP>
  137818. .UNINDENT
  137819. .INDENT 0.0
  137820. .TP
  137821. .B salt.states.zabbix_usergroup.absent(name, **kwargs)
  137822. Ensures that the user group does not exist, eventually delete user group.
  137823. .sp
  137824. New in version 2016.3.0.
  137825. .INDENT 7.0
  137826. .TP
  137827. .B Parameters
  137828. .INDENT 7.0
  137829. .IP \(bu 2
  137830. \fBname\fP \-\- name of the user group
  137831. .IP \(bu 2
  137832. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137833. .IP \(bu 2
  137834. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137835. .IP \(bu 2
  137836. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137837. .UNINDENT
  137838. .UNINDENT
  137839. .INDENT 7.0
  137840. .INDENT 3.5
  137841. .sp
  137842. .nf
  137843. .ft C
  137844. delete_thai_monks_usrgrp:
  137845. zabbix_usergroup.absent:
  137846. \- name: \(aqThai monks\(aq
  137847. .ft P
  137848. .fi
  137849. .UNINDENT
  137850. .UNINDENT
  137851. .UNINDENT
  137852. .INDENT 0.0
  137853. .TP
  137854. .B salt.states.zabbix_usergroup.present(name, **kwargs)
  137855. Creates new user group.
  137856. NOTE: This function accepts all standard user group properties: keyword argument names differ depending on your
  137857. zabbix version, see:
  137858. \fI\%https://www.zabbix.com/documentation/2.0/manual/appendix/api/usergroup/definitions#user_group\fP
  137859. .sp
  137860. New in version 2016.3.0.
  137861. .INDENT 7.0
  137862. .TP
  137863. .B Parameters
  137864. .INDENT 7.0
  137865. .IP \(bu 2
  137866. \fBname\fP \-\- name of the user group
  137867. .IP \(bu 2
  137868. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137869. .IP \(bu 2
  137870. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137871. .IP \(bu 2
  137872. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137873. .UNINDENT
  137874. .UNINDENT
  137875. .INDENT 7.0
  137876. .INDENT 3.5
  137877. .sp
  137878. .nf
  137879. .ft C
  137880. make_new_thai_monks_usergroup:
  137881. zabbix_usergroup.present:
  137882. \- name: \(aqThai monks\(aq
  137883. \- gui_access: 1
  137884. \- debug_mode: 0
  137885. \- users_status: 0
  137886. .ft P
  137887. .fi
  137888. .UNINDENT
  137889. .UNINDENT
  137890. .UNINDENT
  137891. .SS salt.states.zabbix_usermacro module
  137892. .sp
  137893. Management of Zabbix usermacros.
  137894. :codeauthor: Raymond Kuiper <\fI\%qix@the\-wired.net\fP>
  137895. .INDENT 0.0
  137896. .TP
  137897. .B salt.states.zabbix_usermacro.absent(name, hostid=None, **kwargs)
  137898. Ensures that the mediatype does not exist, eventually deletes the mediatype.
  137899. .INDENT 7.0
  137900. .TP
  137901. .B Parameters
  137902. .INDENT 7.0
  137903. .IP \(bu 2
  137904. \fBname\fP \-\- name of the usermacro
  137905. .IP \(bu 2
  137906. \fBhostid\fP \-\- id\(aqs of the hosts to apply the usermacro on, if missing a global usermacro is assumed.
  137907. .IP \(bu 2
  137908. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137909. .IP \(bu 2
  137910. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137911. .IP \(bu 2
  137912. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137913. .UNINDENT
  137914. .UNINDENT
  137915. .INDENT 7.0
  137916. .INDENT 3.5
  137917. .sp
  137918. .nf
  137919. .ft C
  137920. delete_usermacro:
  137921. zabbix_usermacro.absent:
  137922. \- name: \(aq{$SNMP_COMMUNITY}\(aq
  137923. .ft P
  137924. .fi
  137925. .UNINDENT
  137926. .UNINDENT
  137927. .UNINDENT
  137928. .INDENT 0.0
  137929. .TP
  137930. .B salt.states.zabbix_usermacro.present(name, value, hostid=None, **kwargs)
  137931. Creates a new usermacro.
  137932. .INDENT 7.0
  137933. .TP
  137934. .B Parameters
  137935. .INDENT 7.0
  137936. .IP \(bu 2
  137937. \fBname\fP \-\- name of the usermacro
  137938. .IP \(bu 2
  137939. \fBvalue\fP \-\- value of the usermacro
  137940. .IP \(bu 2
  137941. \fBhostid\fP \-\- id\(aqs of the hosts to apply the usermacro on, if missing a global usermacro is assumed.
  137942. .IP \(bu 2
  137943. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137944. .IP \(bu 2
  137945. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137946. .IP \(bu 2
  137947. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137948. .UNINDENT
  137949. .UNINDENT
  137950. .INDENT 7.0
  137951. .INDENT 3.5
  137952. .sp
  137953. .nf
  137954. .ft C
  137955. override host usermacro:
  137956. zabbix_usermacro.present:
  137957. \- name: \(aq{$SNMP_COMMUNITY}\(aq\(aq
  137958. \- value: \(aqpublic\(aq
  137959. \- hostid: 21
  137960. .ft P
  137961. .fi
  137962. .UNINDENT
  137963. .UNINDENT
  137964. .UNINDENT
  137965. .SS salt.states.zabbix_valuemap
  137966. .sp
  137967. New in version 2017.7.
  137968. .sp
  137969. Management of Zabbix Valuemap object over Zabbix API.
  137970. .INDENT 0.0
  137971. .TP
  137972. .B codeauthor
  137973. Jakub Sliva <\fI\%jakub.sliva@ultimum.io\fP>
  137974. .UNINDENT
  137975. .INDENT 0.0
  137976. .TP
  137977. .B salt.states.zabbix_valuemap.absent(name, **kwargs)
  137978. Makes the Zabbix Value map to be absent (either does not exist or delete it).
  137979. .INDENT 7.0
  137980. .TP
  137981. .B Parameters
  137982. .INDENT 7.0
  137983. .IP \(bu 2
  137984. \fBname\fP \-\- Zabbix Value map name
  137985. .IP \(bu 2
  137986. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  137987. .IP \(bu 2
  137988. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  137989. .IP \(bu 2
  137990. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  137991. .UNINDENT
  137992. .UNINDENT
  137993. .INDENT 7.0
  137994. .INDENT 3.5
  137995. .sp
  137996. .nf
  137997. .ft C
  137998. zabbix\-valuemap\-absent:
  137999. zabbix_valuemap.absent:
  138000. \- name: Value map name
  138001. .ft P
  138002. .fi
  138003. .UNINDENT
  138004. .UNINDENT
  138005. .UNINDENT
  138006. .INDENT 0.0
  138007. .TP
  138008. .B salt.states.zabbix_valuemap.present(name, params, **kwargs)
  138009. Creates Zabbix Value map object or if differs update it according defined parameters
  138010. .INDENT 7.0
  138011. .TP
  138012. .B Parameters
  138013. .INDENT 7.0
  138014. .IP \(bu 2
  138015. \fBname\fP \-\- Zabbix Value map name
  138016. .IP \(bu 2
  138017. \fBparams\fP \-\- Definition of the Zabbix Value map
  138018. .IP \(bu 2
  138019. \fB_connection_user\fP \-\- Optional \- zabbix user (can also be set in opts or pillar, see module\(aqs docstring)
  138020. .IP \(bu 2
  138021. \fB_connection_password\fP \-\- Optional \- zabbix password (can also be set in opts or pillar, see module\(aqs docstring)
  138022. .IP \(bu 2
  138023. \fB_connection_url\fP \-\- Optional \- url of zabbix frontend (can also be set in opts, pillar, see module\(aqs docstring)
  138024. .UNINDENT
  138025. .UNINDENT
  138026. .INDENT 7.0
  138027. .INDENT 3.5
  138028. .sp
  138029. .nf
  138030. .ft C
  138031. zabbix\-valuemap\-present:
  138032. zabbix_valuemap.present:
  138033. \- name: Number mapping
  138034. \- params:
  138035. mappings:
  138036. \- value: 1
  138037. newvalue: one
  138038. \- value: 2
  138039. newvalue: two
  138040. .ft P
  138041. .fi
  138042. .UNINDENT
  138043. .UNINDENT
  138044. .UNINDENT
  138045. .SS salt.states.zcbuildout
  138046. .SS Management of zc.buildout
  138047. .sp
  138048. This module is inspired from minitage\(aqs buildout maker
  138049. (\fI\%https://github.com/minitage/minitage/blob/master/src/minitage/core/makers/buildout.py\fP)
  138050. .sp
  138051. New in version 2016.3.0.
  138052. .sp
  138053. \fBNOTE:\fP
  138054. .INDENT 0.0
  138055. .INDENT 3.5
  138056. This state module is beta; the API is subject to change and no promise
  138057. as to performance or functionality is yet present
  138058. .UNINDENT
  138059. .UNINDENT
  138060. .SS Available Functions
  138061. .INDENT 0.0
  138062. .IP \(bu 2
  138063. built
  138064. .INDENT 2.0
  138065. .INDENT 3.5
  138066. .sp
  138067. .nf
  138068. .ft C
  138069. installed1
  138070. buildout.installed:
  138071. \- name: /path/to/buildout
  138072. installed2
  138073. buildout.installed:
  138074. \- name: /path/to/buildout
  138075. \- parts:
  138076. \- a
  138077. \- b
  138078. \- python: /path/to/pythonpath/bin/python
  138079. \- unless: /bin/test_something_installed
  138080. \- onlyif: /bin/test_else_installed
  138081. .ft P
  138082. .fi
  138083. .UNINDENT
  138084. .UNINDENT
  138085. .UNINDENT
  138086. .INDENT 0.0
  138087. .TP
  138088. .B salt.states.zcbuildout.installed(name, config=u\(aqbuildout.cfg\(aq, quiet=False, parts=None, user=None, env=(), buildout_ver=None, test_release=False, distribute=None, new_st=None, offline=False, newest=False, python=\(aq/usr/bin/python\(aq, debug=False, verbose=False, unless=None, onlyif=None, use_vt=False, loglevel=u\(aqdebug\(aq, **kwargs)
  138089. Install buildout in a specific directory
  138090. .sp
  138091. It is a thin wrapper to modules.buildout.buildout
  138092. .INDENT 7.0
  138093. .TP
  138094. .B name
  138095. directory to execute in
  138096. .UNINDENT
  138097. .sp
  138098. quiet
  138099. .INDENT 7.0
  138100. .INDENT 3.5
  138101. do not output console & logs
  138102. .UNINDENT
  138103. .UNINDENT
  138104. .INDENT 7.0
  138105. .TP
  138106. .B config
  138107. buildout config to use (default: buildout.cfg)
  138108. .TP
  138109. .B parts
  138110. specific buildout parts to run
  138111. .TP
  138112. .B user
  138113. user used to run buildout as
  138114. .sp
  138115. New in version 2014.1.4.
  138116. .TP
  138117. .B env
  138118. environment variables to set when running
  138119. .TP
  138120. .B buildout_ver
  138121. force a specific buildout version (1 | 2)
  138122. .TP
  138123. .B test_release
  138124. buildout accept test release
  138125. .TP
  138126. .B new_st
  138127. Forcing use of setuptools >= 0.7
  138128. .TP
  138129. .B distribute
  138130. use distribute over setuptools if possible
  138131. .TP
  138132. .B offline
  138133. does buildout run offline
  138134. .TP
  138135. .B python
  138136. python to use
  138137. .TP
  138138. .B debug
  138139. run buildout with \-D debug flag
  138140. .TP
  138141. .B onlyif
  138142. Only execute cmd if statement on the host return 0
  138143. .TP
  138144. .B unless
  138145. Do not execute cmd if statement on the host return 0
  138146. .TP
  138147. .B newest
  138148. run buildout in newest mode
  138149. .TP
  138150. .B verbose
  138151. run buildout in verbose mode (\-vvvvv)
  138152. .TP
  138153. .B use_vt
  138154. Use the new salt VT to stream output [experimental]
  138155. .TP
  138156. .B loglevel
  138157. loglevel for buildout commands
  138158. .UNINDENT
  138159. .UNINDENT
  138160. .SS salt.states.zenoss
  138161. .sp
  138162. State to manage monitoring in Zenoss.
  138163. .sp
  138164. New in version 2016.3.0.
  138165. .sp
  138166. This state module depends on the \(aqzenoss\(aq Salt execution module.
  138167. .sp
  138168. Allows for setting a state of minions in Zenoss using the Zenoss API. Currently Zenoss 4.x and 5.x are supported.
  138169. .INDENT 0.0
  138170. .INDENT 3.5
  138171. .sp
  138172. .nf
  138173. .ft C
  138174. enable_monitoring:
  138175. zenoss.monitored:
  138176. \- name: web01.example.com
  138177. \- device_class: /Servers/Linux
  138178. \- collector: localhost
  138179. \- prod_state: 1000
  138180. .ft P
  138181. .fi
  138182. .UNINDENT
  138183. .UNINDENT
  138184. .INDENT 0.0
  138185. .TP
  138186. .B salt.states.zenoss.monitored(name, device_class=None, collector=u\(aqlocalhost\(aq, prod_state=None)
  138187. Ensure a device is monitored. The \(aqname\(aq given will be used for Zenoss device name and should be resolvable.
  138188. .INDENT 7.0
  138189. .INDENT 3.5
  138190. .sp
  138191. .nf
  138192. .ft C
  138193. enable_monitoring:
  138194. zenoss.monitored:
  138195. \- name: web01.example.com
  138196. \- device_class: /Servers/Linux
  138197. \- collector: localhost
  138198. \- prod_state: 1000
  138199. .ft P
  138200. .fi
  138201. .UNINDENT
  138202. .UNINDENT
  138203. .UNINDENT
  138204. .SS salt.states.zk_concurrency
  138205. .SS Control concurrency of steps within state execution using zookeeper
  138206. .INDENT 0.0
  138207. .TP
  138208. .B depends
  138209. kazoo
  138210. .TP
  138211. .B configuration
  138212. See \fBsalt.modules.zookeeper\fP for setup instructions.
  138213. .UNINDENT
  138214. .sp
  138215. This module allows you to "wrap" a state\(aqs execution with concurrency control.
  138216. This is useful to protect against all hosts executing highstate simultaneously
  138217. if your services don\(aqt all HUP restart. The common way of protecting against this
  138218. is to run in batch mode, but that doesn\(aqt protect from another person running
  138219. the same batch command (and thereby having 2x the number of nodes deploying at once).
  138220. .sp
  138221. This module will bock while acquiring a slot, meaning that however the command gets
  138222. called it will coordinate with zookeeper to ensure that no more than max_concurrency
  138223. steps are executing with a single path.
  138224. .INDENT 0.0
  138225. .INDENT 3.5
  138226. .sp
  138227. .nf
  138228. .ft C
  138229. acquire_lock:
  138230. zk_concurrency.lock:
  138231. \- name: /trafficeserver
  138232. \- zk_hosts: \(aqzookeeper:2181\(aq
  138233. \- max_concurrency: 4
  138234. \- prereq:
  138235. \- service: trafficserver
  138236. trafficserver:
  138237. service.running:
  138238. \- watch:
  138239. \- file: /etc/trafficserver/records.config
  138240. /etc/trafficserver/records.config:
  138241. file.managed:
  138242. \- source: salt://records.config
  138243. release_lock:
  138244. zk_concurrency.unlock:
  138245. \- name: /trafficserver
  138246. \- require:
  138247. \- service: trafficserver
  138248. .ft P
  138249. .fi
  138250. .UNINDENT
  138251. .UNINDENT
  138252. .sp
  138253. This example would allow the file state to change, but would limit the
  138254. concurrency of the trafficserver service restart to 4.
  138255. .INDENT 0.0
  138256. .TP
  138257. .B salt.states.zk_concurrency.lock(name, zk_hosts=None, identifier=None, max_concurrency=1, timeout=None, ephemeral_lease=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  138258. Block state execution until you are able to get the lock (or hit the timeout)
  138259. .UNINDENT
  138260. .INDENT 0.0
  138261. .TP
  138262. .B salt.states.zk_concurrency.min_party(name, zk_hosts, min_nodes, blocking=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  138263. Ensure that there are \fImin_nodes\fP in the party at \fIname\fP, optionally blocking if not available.
  138264. .UNINDENT
  138265. .INDENT 0.0
  138266. .TP
  138267. .B salt.states.zk_concurrency.unlock(name, zk_hosts=None, identifier=None, max_concurrency=1, ephemeral_lease=False, profile=None, scheme=None, username=None, password=None, default_acl=None)
  138268. Remove lease from semaphore.
  138269. .UNINDENT
  138270. .SS salt.states.zookeeper
  138271. .INDENT 0.0
  138272. .TP
  138273. .B depends
  138274. kazoo
  138275. .TP
  138276. .B configuration
  138277. See \fBsalt.modules.zookeeper\fP for setup instructions.
  138278. .UNINDENT
  138279. .SS ACLS
  138280. .sp
  138281. For more information about acls, please checkout the kazoo documentation.
  138282. .sp
  138283. \fI\%http://kazoo.readthedocs.io/en/latest/api/security.html#kazoo.security.make_digest_acl\fP
  138284. .sp
  138285. The following options can be included in the acl dictionary:
  138286. .INDENT 0.0
  138287. .INDENT 3.5
  138288. .INDENT 0.0
  138289. .TP
  138290. .B param username
  138291. Username to use for the ACL.
  138292. .TP
  138293. .B param password
  138294. A plain\-text password to hash.
  138295. .TP
  138296. .B param write
  138297. Write permission.
  138298. .TP
  138299. .B type write
  138300. bool
  138301. .TP
  138302. .B param create
  138303. Create permission.
  138304. .TP
  138305. .B type create
  138306. bool
  138307. .TP
  138308. .B param delete
  138309. Delete permission.
  138310. .TP
  138311. .B type delete
  138312. bool
  138313. .TP
  138314. .B param admin
  138315. Admin permission.
  138316. .TP
  138317. .B type admin
  138318. bool
  138319. .TP
  138320. .B param all
  138321. All permissions.
  138322. .TP
  138323. .B type all
  138324. bool
  138325. .UNINDENT
  138326. .UNINDENT
  138327. .UNINDENT
  138328. .INDENT 0.0
  138329. .TP
  138330. .B salt.states.zookeeper.absent(name, version=\-1, recursive=False, profile=None, hosts=None, scheme=None, username=None, password=None, default_acl=None)
  138331. Make sure znode is absent
  138332. .INDENT 7.0
  138333. .TP
  138334. .B name
  138335. path to znode
  138336. .TP
  138337. .B version
  138338. Specify the version which should be deleted
  138339. Default: \-1 (always match)
  138340. .TP
  138341. .B recursive
  138342. Boolean to indicate if children should be recursively deleted
  138343. Default: False
  138344. .TP
  138345. .B profile
  138346. Configured Zookeeper profile to authenticate with (Default: None)
  138347. .TP
  138348. .B hosts
  138349. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138350. .TP
  138351. .B scheme
  138352. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138353. .TP
  138354. .B username
  138355. Username to authenticate (Default: None)
  138356. .TP
  138357. .B password
  138358. Password to authenticate (Default: None)
  138359. .TP
  138360. .B default_acl
  138361. Default acls to assign if a node is created in this connection (Default: None)
  138362. .UNINDENT
  138363. .INDENT 7.0
  138364. .INDENT 3.5
  138365. .sp
  138366. .nf
  138367. .ft C
  138368. delete znode:
  138369. zookeeper.absent:
  138370. \- name: /test
  138371. \- recursive: True
  138372. .ft P
  138373. .fi
  138374. .UNINDENT
  138375. .UNINDENT
  138376. .UNINDENT
  138377. .INDENT 0.0
  138378. .TP
  138379. .B salt.states.zookeeper.acls(name, acls, version=\-1, profile=None, hosts=None, scheme=None, username=None, password=None, default_acl=None)
  138380. Update acls on a znode
  138381. .INDENT 7.0
  138382. .TP
  138383. .B name
  138384. path to znode
  138385. .TP
  138386. .B acls
  138387. list of acl dictionaries to set on znode
  138388. .TP
  138389. .B version
  138390. Specify the version which should be deleted
  138391. Default: \-1 (always match)
  138392. .TP
  138393. .B profile
  138394. Configured Zookeeper profile to authenticate with (Default: None)
  138395. .TP
  138396. .B hosts
  138397. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138398. .TP
  138399. .B scheme
  138400. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138401. .TP
  138402. .B username
  138403. Username to authenticate (Default: None)
  138404. .TP
  138405. .B password
  138406. Password to authenticate (Default: None)
  138407. .TP
  138408. .B default_acl
  138409. Default acls to assign if a node is created in this connection (Default: None)
  138410. .UNINDENT
  138411. .INDENT 7.0
  138412. .INDENT 3.5
  138413. .sp
  138414. .nf
  138415. .ft C
  138416. update acls:
  138417. zookeeper.acls:
  138418. \- name: /test/name
  138419. \- acls:
  138420. \- username: daniel
  138421. password: test
  138422. all: True
  138423. \- username: gtmanfred
  138424. password: test
  138425. all: True
  138426. .ft P
  138427. .fi
  138428. .UNINDENT
  138429. .UNINDENT
  138430. .UNINDENT
  138431. .INDENT 0.0
  138432. .TP
  138433. .B salt.states.zookeeper.present(name, value, acls=None, ephemeral=False, sequence=False, makepath=False, version=\-1, profile=None, hosts=None, scheme=None, username=None, password=None, default_acl=None)
  138434. Make sure znode is present in the correct state with the correct acls
  138435. .INDENT 7.0
  138436. .TP
  138437. .B name
  138438. path to znode
  138439. .TP
  138440. .B value
  138441. value znode should be set to
  138442. .TP
  138443. .B acls
  138444. list of acl dictionaries to set on znode (make sure the ones salt is connected with are included)
  138445. Default: None
  138446. .TP
  138447. .B ephemeral
  138448. Boolean to indicate if ephemeral znode should be created
  138449. Default: False
  138450. .TP
  138451. .B sequence
  138452. Boolean to indicate if znode path is suffixed with a unique index
  138453. Default: False
  138454. .TP
  138455. .B makepath
  138456. Boolean to indicate if the parent paths should be created
  138457. Default: False
  138458. .TP
  138459. .B version
  138460. For updating, specify the version which should be updated
  138461. Default: \-1 (always match)
  138462. .TP
  138463. .B profile
  138464. Configured Zookeeper profile to authenticate with (Default: None)
  138465. .TP
  138466. .B hosts
  138467. Lists of Zookeeper Hosts (Default: \(aq127.0.0.1:2181)
  138468. .TP
  138469. .B scheme
  138470. Scheme to authenticate with (Default: \(aqdigest\(aq)
  138471. .TP
  138472. .B username
  138473. Username to authenticate (Default: None)
  138474. .TP
  138475. .B password
  138476. Password to authenticate (Default: None)
  138477. .TP
  138478. .B default_acl
  138479. Default acls to assign if a node is created in this connection (Default: None)
  138480. .UNINDENT
  138481. .INDENT 7.0
  138482. .INDENT 3.5
  138483. .sp
  138484. .nf
  138485. .ft C
  138486. add znode:
  138487. zookeeper.present:
  138488. \- name: /test/name
  138489. \- value: gtmanfred
  138490. \- makepath: True
  138491. update znode:
  138492. zookeeper.present:
  138493. \- name: /test/name
  138494. \- value: daniel
  138495. \- acls:
  138496. \- username: daniel
  138497. password: test
  138498. read: true
  138499. \- username: gtmanfred
  138500. password: test
  138501. read: true
  138502. write: true
  138503. create: true
  138504. delete: true
  138505. admin: true
  138506. \- makepath: True
  138507. .ft P
  138508. .fi
  138509. .UNINDENT
  138510. .UNINDENT
  138511. .UNINDENT
  138512. .SS thorium modules
  138513. .TS
  138514. center;
  138515. |l|l|.
  138516. _
  138517. T{
  138518. \fBcalc\fP
  138519. T} T{
  138520. T}
  138521. _
  138522. T{
  138523. \fBcheck\fP
  138524. T} T{
  138525. T}
  138526. _
  138527. T{
  138528. \fBfile\fP
  138529. T} T{
  138530. T}
  138531. _
  138532. T{
  138533. \fBkey\fP
  138534. T} T{
  138535. T}
  138536. _
  138537. T{
  138538. \fBlocal\fP
  138539. T} T{
  138540. T}
  138541. _
  138542. T{
  138543. \fBreg\fP
  138544. T} T{
  138545. T}
  138546. _
  138547. T{
  138548. \fBrunner\fP
  138549. T} T{
  138550. T}
  138551. _
  138552. T{
  138553. \fBstatus\fP
  138554. T} T{
  138555. T}
  138556. _
  138557. T{
  138558. \fBtimer\fP
  138559. T} T{
  138560. T}
  138561. _
  138562. T{
  138563. \fBwheel\fP
  138564. T} T{
  138565. T}
  138566. _
  138567. .TE
  138568. .SS token modules
  138569. .TS
  138570. center;
  138571. |l|l|.
  138572. _
  138573. T{
  138574. \fBlocalfs\fP
  138575. T} T{
  138576. T}
  138577. _
  138578. T{
  138579. \fBrediscluster\fP
  138580. T} T{
  138581. T}
  138582. _
  138583. .TE
  138584. .SS master tops modules
  138585. .TS
  138586. center;
  138587. |l|l|.
  138588. _
  138589. T{
  138590. \fBcobbler\fP
  138591. T} T{
  138592. Cobbler Tops
  138593. T}
  138594. _
  138595. T{
  138596. \fBext_nodes\fP
  138597. T} T{
  138598. T}
  138599. _
  138600. T{
  138601. \fBmongo\fP
  138602. T} T{
  138603. Read tops data from a mongodb collection
  138604. T}
  138605. _
  138606. T{
  138607. \fBreclass_adapter\fP
  138608. T} T{
  138609. Read tops data from a reclass database
  138610. T}
  138611. _
  138612. T{
  138613. \fBsaltclass\fP
  138614. T} T{
  138615. T}
  138616. _
  138617. T{
  138618. \fBvarstack_top\fP
  138619. T} T{
  138620. Use \fI\%Varstack\fP to provide tops data
  138621. T}
  138622. _
  138623. .TE
  138624. .SS salt.tops.cobbler
  138625. .SS Cobbler Tops
  138626. .sp
  138627. Cobbler Tops is a master tops subsystem used to look up mapping information
  138628. from Cobbler via its API. The same cobbler.* parameters are used for both
  138629. the Cobbler tops and Cobbler pillar modules.
  138630. .INDENT 0.0
  138631. .INDENT 3.5
  138632. .sp
  138633. .nf
  138634. .ft C
  138635. master_tops:
  138636. cobbler: {}
  138637. cobbler.url: https://example.com/cobbler_api #default is http://localhost/cobbler_api
  138638. cobbler.user: username # default is no username
  138639. cobbler.password: password # default is no password
  138640. .ft P
  138641. .fi
  138642. .UNINDENT
  138643. .UNINDENT
  138644. .SS Module Documentation
  138645. .INDENT 0.0
  138646. .TP
  138647. .B salt.tops.cobbler.top(**kwargs)
  138648. Look up top data in Cobbler for a minion.
  138649. .UNINDENT
  138650. .SS salt.tops.mongo
  138651. .sp
  138652. Read tops data from a mongodb collection
  138653. .sp
  138654. This module will load tops data from a mongo collection. It uses the node\(aqs id
  138655. for lookups.
  138656. .SS Salt Master Mongo Configuration
  138657. .sp
  138658. The module shares the same base mongo connection variables as
  138659. \fBsalt.returners.mongo_return\fP\&. These variables go in your master
  138660. config file.
  138661. .INDENT 0.0
  138662. .INDENT 3.5
  138663. .INDENT 0.0
  138664. .IP \(bu 2
  138665. \fBmongo.db\fP \- The mongo database to connect to. Defaults to \fB\(aqsalt\(aq\fP\&.
  138666. .IP \(bu 2
  138667. \fBmongo.host\fP \- The mongo host to connect to. Supports replica sets by
  138668. specifying all hosts in the set, comma\-delimited. Defaults to \fB\(aqsalt\(aq\fP\&.
  138669. .IP \(bu 2
  138670. \fBmongo.port\fP \- The port that the mongo database is running on. Defaults
  138671. to \fB27017\fP\&.
  138672. .IP \(bu 2
  138673. \fBmongo.user\fP \- The username for connecting to mongo. Only required if
  138674. you are using mongo authentication. Defaults to \fB\(aq\(aq\fP\&.
  138675. .IP \(bu 2
  138676. \fBmongo.password\fP \- The password for connecting to mongo. Only required
  138677. if you are using mongo authentication. Defaults to \fB\(aq\(aq\fP\&.
  138678. .UNINDENT
  138679. .UNINDENT
  138680. .UNINDENT
  138681. .SS Configuring the Mongo Tops Subsystem
  138682. .INDENT 0.0
  138683. .INDENT 3.5
  138684. .sp
  138685. .nf
  138686. .ft C
  138687. master_tops:
  138688. mongo:
  138689. collection: tops
  138690. id_field: _id
  138691. re_replace: ""
  138692. re_pattern: \e.example\e.com
  138693. states_field: states
  138694. environment_field: environment
  138695. .ft P
  138696. .fi
  138697. .UNINDENT
  138698. .UNINDENT
  138699. .SS Module Documentation
  138700. .INDENT 0.0
  138701. .TP
  138702. .B salt.tops.mongo.top(**kwargs)
  138703. Connect to a mongo database and read per\-node tops data.
  138704. .INDENT 7.0
  138705. .TP
  138706. .B Parameters
  138707. .INDENT 7.0
  138708. .IP \(bu 2
  138709. \fBcollection\fP (\fI*\fP) \-\- The mongodb collection to read data from. Defaults to
  138710. \fB\(aqtops\(aq\fP\&.
  138711. .IP \(bu 2
  138712. \fBid_field\fP (\fI*\fP) \-\- The field in the collection that represents an individual
  138713. minion id. Defaults to \fB\(aq_id\(aq\fP\&.
  138714. .IP \(bu 2
  138715. \fBre_pattern\fP (\fI*\fP) \-\- If your naming convention in the collection is shorter
  138716. than the minion id, you can use this to trim the name.
  138717. \fIre_pattern\fP will be used to match the name, and \fIre_replace\fP will
  138718. be used to replace it. Backrefs are supported as they are in the
  138719. Python standard library. If \fBNone\fP, no mangling of the name will
  138720. be performed \- the collection will be searched with the entire
  138721. minion id. Defaults to \fBNone\fP\&.
  138722. .IP \(bu 2
  138723. \fBre_replace\fP (\fI*\fP) \-\- Use as the replacement value in node ids matched with
  138724. \fIre_pattern\fP\&. Defaults to \(aq\(aq. Feel free to use backreferences here.
  138725. .IP \(bu 2
  138726. \fBstates_field\fP (\fI*\fP) \-\- The name of the field providing a list of states.
  138727. .IP \(bu 2
  138728. \fBenvironment_field\fP (\fI*\fP) \-\- The name of the field providing the environment.
  138729. Defaults to \fBenvironment\fP\&.
  138730. .UNINDENT
  138731. .UNINDENT
  138732. .UNINDENT
  138733. .SS salt.tops.reclass_adapter
  138734. .sp
  138735. Read tops data from a reclass database
  138736. .sp
  138737. This master_tops plugin provides access to
  138738. the \fBreclass\fP database, such that state information (top data) are retrieved
  138739. from \fBreclass\fP\&.
  138740. .sp
  138741. You can find more information about \fBreclass\fP at
  138742. \fI\%http://reclass.pantsfullofunix.net\fP\&.
  138743. .sp
  138744. To use the plugin, add it to the \fBmaster_tops\fP list in the Salt master config
  138745. and tell \fBreclass\fP by way of a few options how and where to find the
  138746. inventory:
  138747. .INDENT 0.0
  138748. .INDENT 3.5
  138749. .sp
  138750. .nf
  138751. .ft C
  138752. master_tops:
  138753. reclass:
  138754. storage_type: yaml_fs
  138755. inventory_base_uri: /srv/salt
  138756. .ft P
  138757. .fi
  138758. .UNINDENT
  138759. .UNINDENT
  138760. .sp
  138761. This would cause \fBreclass\fP to read the inventory from YAML files in
  138762. \fB/srv/salt/nodes\fP and \fB/srv/salt/classes\fP\&.
  138763. .sp
  138764. If you are also using \fBreclass\fP as \fBext_pillar\fP plugin, and you want to
  138765. avoid having to specify the same information for both, use YAML anchors (take
  138766. note of the differing data types for \fBext_pillar\fP and \fBmaster_tops\fP):
  138767. .INDENT 0.0
  138768. .INDENT 3.5
  138769. .sp
  138770. .nf
  138771. .ft C
  138772. reclass: &reclass
  138773. storage_type: yaml_fs
  138774. inventory_base_uri: /srv/salt
  138775. reclass_source_path: ~/code/reclass
  138776. ext_pillar:
  138777. \- reclass: *reclass
  138778. master_tops:
  138779. reclass: *reclass
  138780. .ft P
  138781. .fi
  138782. .UNINDENT
  138783. .UNINDENT
  138784. .sp
  138785. If you want to run reclass from source, rather than installing it, you can
  138786. either let the master know via the \fBPYTHONPATH\fP environment variable, or by
  138787. setting the configuration option, like in the example above.
  138788. .INDENT 0.0
  138789. .TP
  138790. .B salt.tops.reclass_adapter.top(**kwargs)
  138791. Query \fBreclass\fP for the top data (states of the minions).
  138792. .UNINDENT
  138793. .SS salt.tops.varstack_top
  138794. .sp
  138795. Use \fI\%Varstack\fP to provide tops data
  138796. .sp
  138797. This master_tops plugin provides access to
  138798. the \fBvarstack\fP hierarchical yaml files, so you can user \fBvarstack\fP as a full
  138799. \fBexternal node classifier\fP and
  138800. store state information (top data) in it.
  138801. .SS Configuring Varstack
  138802. .sp
  138803. To use varstack as a master top external node classifier, install varstack
  138804. as documented. Then, add to your master\(aqs configuration:
  138805. .INDENT 0.0
  138806. .INDENT 3.5
  138807. .sp
  138808. .nf
  138809. .ft C
  138810. master_tops:
  138811. varstack: /path/to/the/config/file/varstack.yaml
  138812. .ft P
  138813. .fi
  138814. .UNINDENT
  138815. .UNINDENT
  138816. .sp
  138817. Varstack will then use /path/to/the/config/file/varstack.yaml (usually
  138818. /etc/varstack.yaml) to determine which configuration
  138819. data to return as adapter information. From there you can take a look at the
  138820. \fI\%README\fP of
  138821. varstack to learn how this file is evaluated. The ENC part will just return
  138822. the \(aqstates\(aq dictionary for the node.
  138823. .sp
  138824. Ie, if my.fqdn.yaml file contains:
  138825. .INDENT 0.0
  138826. .INDENT 3.5
  138827. .sp
  138828. .nf
  138829. .ft C
  138830. \-\-\-
  138831. states:
  138832. \- sudo
  138833. \- openssh
  138834. \- apache
  138835. \- salt.minion
  138836. .ft P
  138837. .fi
  138838. .UNINDENT
  138839. .UNINDENT
  138840. .sp
  138841. these will be returned as {\(aqbase\(aq: [\(aqsudo\(aq, \(aqopenssh\(aq, \(aqapache\(aq, \(aqsalt.minion\(aq]} and
  138842. managed by salt as if given from a top.sls file.
  138843. .INDENT 0.0
  138844. .TP
  138845. .B salt.tops.varstack_top.top(**kwargs)
  138846. Query \fBvarstack\fP for the top data (states of the minions).
  138847. .UNINDENT
  138848. .SS wheel modules
  138849. .TS
  138850. center;
  138851. |l|l|.
  138852. _
  138853. T{
  138854. \fBconfig\fP
  138855. T} T{
  138856. T}
  138857. _
  138858. T{
  138859. \fBerror\fP
  138860. T} T{
  138861. T}
  138862. _
  138863. T{
  138864. \fBfile_roots\fP
  138865. T} T{
  138866. T}
  138867. _
  138868. T{
  138869. \fBkey\fP
  138870. T} T{
  138871. T}
  138872. _
  138873. T{
  138874. \fBminions\fP
  138875. T} T{
  138876. T}
  138877. _
  138878. T{
  138879. \fBpillar_roots\fP
  138880. T} T{
  138881. T}
  138882. _
  138883. .TE
  138884. .SH APIS
  138885. .SS Python client API
  138886. .sp
  138887. Salt provides several entry points for interfacing with Python applications.
  138888. These entry points are often referred to as \fB*Client()\fP APIs. Each client
  138889. accesses different parts of Salt, either from the master or from a minion. Each
  138890. client is detailed below.
  138891. .sp
  138892. \fBSEE ALSO:\fP
  138893. .INDENT 0.0
  138894. .INDENT 3.5
  138895. There are many ways to access Salt programmatically.
  138896. .sp
  138897. Salt can be used from CLI scripts as well as via a REST interface.
  138898. .sp
  138899. See Salt\(aqs outputter system to retrieve structured
  138900. data from Salt as JSON, or as shell\-friendly text, or many other formats.
  138901. .sp
  138902. See the \fBstate.event\fP runner to utilize
  138903. Salt\(aqs event bus from shell scripts.
  138904. .sp
  138905. Salt\(aqs \fI\%netapi module\fP provides access to Salt externally via a REST interface.
  138906. Review the \fI\%netapi module\fP documentation for more information.
  138907. .UNINDENT
  138908. .UNINDENT
  138909. .SS Salt\(aqs \fBopts\fP dictionary
  138910. .sp
  138911. Some clients require access to Salt\(aqs \fBopts\fP dictionary. (The dictionary
  138912. representation of the master or
  138913. minion config files.)
  138914. .sp
  138915. A common pattern for fetching the \fBopts\fP dictionary is to defer to
  138916. environment variables if they exist or otherwise fetch the config from the
  138917. default location.
  138918. .SS Salt\(aqs Loader Interface
  138919. .sp
  138920. Modules in the Salt ecosystem are loaded into memory using a custom loader
  138921. system. This allows modules to have conditional requirements (OS, OS version,
  138922. installed libraries, etc) and allows Salt to inject special variables
  138923. (\fB__salt__\fP, \fB__opts__\fP, etc).
  138924. .sp
  138925. Most modules can be manually loaded. This is often useful in third\-party Python
  138926. apps or when writing tests. However some modules require and expect a full,
  138927. running Salt system underneath. Notably modules that facilitate
  138928. master\-to\-minion communication such as the \fBmine\fP,
  138929. \fBpublish\fP, and \fBpeer\fP execution
  138930. modules. The error \fBKeyError: \(aqmaster_uri\(aq\fP is a likely indicator for this
  138931. situation. In those instances use the \fBCaller\fP class
  138932. to execute those modules instead.
  138933. .sp
  138934. Each module type has a corresponding loader function.
  138935. .SS Salt\(aqs Client Interfaces
  138936. .SS LocalClient
  138937. .SS Salt Caller
  138938. .SS Salt Proxy Caller
  138939. .SS RunnerClient
  138940. .SS WheelClient
  138941. .SS CloudClient
  138942. .SS SSHClient
  138943. .SS \fBnetapi\fP modules
  138944. .SS Introduction to netapi modules
  138945. .sp
  138946. netapi modules provide API\-centric access to Salt. Usually externally\-facing
  138947. services such as REST or WebSockets, XMPP, XMLRPC, etc.
  138948. .sp
  138949. In general netapi modules bind to a port and start a service. They are
  138950. purposefully open\-ended. A single module can be configured to run as well as
  138951. multiple modules simultaneously.
  138952. .sp
  138953. netapi modules are enabled by adding configuration to your Salt Master config
  138954. file and then starting the \fBsalt\-api\fP daemon. Check the docs for each
  138955. module to see external requirements and configuration settings.
  138956. .sp
  138957. Communication with Salt and Salt satellite projects is done using Salt\(aqs own
  138958. Python API\&. A list of available client interfaces is below.
  138959. .INDENT 0.0
  138960. .INDENT 3.5
  138961. .IP "salt\-api"
  138962. .sp
  138963. Prior to Salt\(aqs 2014.7.0 release, netapi modules lived in the separate sister
  138964. projected \fBsalt\-api\fP\&. That project has been merged into the main Salt
  138965. project.
  138966. .UNINDENT
  138967. .UNINDENT
  138968. .sp
  138969. \fBSEE ALSO:\fP
  138970. .INDENT 0.0
  138971. .INDENT 3.5
  138972. The full list of netapi modules
  138973. .UNINDENT
  138974. .UNINDENT
  138975. .SS Client interfaces
  138976. .sp
  138977. Salt\(aqs client interfaces expose executing functions by crafting a dictionary of
  138978. values that are mapped to function arguments. This allows calling functions
  138979. simply by creating a data structure. (And this is exactly how much of Salt\(aqs
  138980. own internals work!)
  138981. .SS Writing netapi modules
  138982. .sp
  138983. \fBnetapi\fP modules, put simply, bind a port and start a service.
  138984. They are purposefully open\-ended and can be used to present a variety of
  138985. external interfaces to Salt, and even present multiple interfaces at once.
  138986. .sp
  138987. \fBSEE ALSO:\fP
  138988. .INDENT 0.0
  138989. .INDENT 3.5
  138990. The full list of netapi modules
  138991. .UNINDENT
  138992. .UNINDENT
  138993. .SS Configuration
  138994. .sp
  138995. All \fBnetapi\fP configuration is done in the Salt master
  138996. config and takes a form similar to the following:
  138997. .INDENT 0.0
  138998. .INDENT 3.5
  138999. .sp
  139000. .nf
  139001. .ft C
  139002. rest_cherrypy:
  139003. port: 8000
  139004. debug: True
  139005. ssl_crt: /etc/pki/tls/certs/localhost.crt
  139006. ssl_key: /etc/pki/tls/certs/localhost.key
  139007. .ft P
  139008. .fi
  139009. .UNINDENT
  139010. .UNINDENT
  139011. .SS The \fB__virtual__\fP function
  139012. .sp
  139013. Like all module types in Salt, \fBnetapi\fP modules go through
  139014. Salt\(aqs loader interface to determine if they should be loaded into memory and
  139015. then executed.
  139016. .sp
  139017. The \fB__virtual__\fP function in the module makes this determination and should
  139018. return \fBFalse\fP or a string that will serve as the name of the module. If the
  139019. module raises an \fBImportError\fP or any other errors, it will not be loaded.
  139020. .SS The \fBstart\fP function
  139021. .sp
  139022. The \fBstart()\fP function will be called for each \fBnetapi\fP
  139023. module that is loaded. This function should contain the server loop that
  139024. actually starts the service. This is started in a multiprocess.
  139025. .SS Multiple instances
  139026. .sp
  139027. New in version 2016.11.0.
  139028. .sp
  139029. \fBrest_cherrypy\fP and \fBrest_tornado\fP
  139030. support running multiple instances by copying and renaming entire directory
  139031. of those. To start the copied multiple \fBnetapi\fP modules, add
  139032. configuration blocks for the copied \fBnetapi\fP modules in the
  139033. Salt Master config. The name of each added configuration block must match
  139034. with the name of each directory of the copied \fBnetapi\fP module.
  139035. .SS Inline documentation
  139036. .sp
  139037. As with the rest of Salt, it is a best\-practice to include liberal inline
  139038. documentation in the form of a module docstring and docstrings on any classes,
  139039. methods, and functions in your \fBnetapi\fP module.
  139040. .SS Loader “magic” methods
  139041. .sp
  139042. The loader makes the \fB__opts__\fP data structure available to any function in
  139043. a \fBnetapi\fP module.
  139044. .SH ARCHITECTURE
  139045. .sp
  139046. If you are used to configuration management tools that require you to plan
  139047. down to the last detail before you install anything, you are probably wondering
  139048. why this section doesn\(aqt appear before the installation instructions. With
  139049. Salt, you can switch to a high availability architecture at any time, and add
  139050. additional components to scale your deployment as you go.
  139051. .sp
  139052. Since a single Salt master can manage thousands of systems, we usually
  139053. recommend that you start by deploying a single Salt master, and then modifying
  139054. your deployment as needed for redundancy, geographical distribution, and scale.
  139055. .SS High Availability Features in Salt
  139056. .sp
  139057. Salt supports several features for high availability and fault tolerance.
  139058. Brief documentation for these features is listed alongside their configuration
  139059. parameters in Configuration file examples\&.
  139060. .SS Multimaster
  139061. .sp
  139062. Salt minions can connect to multiple masters at one time by configuring the
  139063. \fImaster\fP configuration parameter as a YAML list of all the available masters. By
  139064. default, all masters are "hot", meaning that any master can direct commands to
  139065. the Salt infrastructure.
  139066. .sp
  139067. In a multimaster configuration, each master must have the same cryptographic
  139068. keys, and minion keys must be accepted on all masters separately. The contents
  139069. of file_roots and pillar_roots need to be kept in sync with processes external
  139070. to Salt as well
  139071. .sp
  139072. A tutorial on setting up multimaster with "hot" masters is here:
  139073. .sp
  139074. Multimaster Tutorial
  139075. .SS Multimaster with Failover
  139076. .sp
  139077. Changing the \fBmaster_type\fP parameter from \fBstr\fP to \fBfailover\fP will cause
  139078. minions to connect to the first responding master in the list of masters. Every
  139079. \fBmaster_alive_interval\fP seconds the minions will check to make
  139080. sure the current master is still responding. If the master does not respond,
  139081. the minion will attempt to connect to the next master in the list. If the
  139082. minion runs out of masters, the list will be recycled in case dead masters have
  139083. been restored. Note that \fBmaster_alive_interval\fP must be present
  139084. in the minion configuration, or else the recurring job to check master status
  139085. will not get scheduled.
  139086. .sp
  139087. Failover can be combined with PKI\-style encrypted keys, but PKI is NOT
  139088. REQUIRED to use failover.
  139089. .sp
  139090. Multimaster with PKI and Failover is discussed in
  139091. this tutorial
  139092. .sp
  139093. \fBmaster_type: failover\fP can be combined with \fBmaster_shuffle: True\fP
  139094. to spread minion connections across all masters (one master per
  139095. minion, not each minion connecting to all masters). Adding Salt Syndics
  139096. into the mix makes it possible to create a load\-balanced Salt infrastructure.
  139097. If a master fails, minions will notice and select another master from the
  139098. available list.
  139099. .SS Syndic
  139100. .sp
  139101. Salt\(aqs Syndic feature is a way to create differing infrastructure
  139102. topologies. It is not strictly an HA feature, but can be treated as such.
  139103. .sp
  139104. With the syndic, a Salt infrastructure can be partitioned in such a way that
  139105. certain masters control certain segments of the infrastructure, and "Master
  139106. of Masters" nodes can control multiple segments underneath them.
  139107. .sp
  139108. Syndics are covered in depth in Salt Syndic\&.
  139109. .SS Syndic with Multimaster
  139110. .sp
  139111. New in version 2015.5.0.
  139112. .sp
  139113. Syndic with Multimaster lets you connect a syndic to multiple masters to provide
  139114. an additional layer of redundancy in a syndic configuration.
  139115. .sp
  139116. Syndics are covered in depth in Salt Syndic\&.
  139117. .SS Salt Syndic
  139118. .sp
  139119. The most basic or typical Salt topology consists of a single Master node
  139120. controlling a group of Minion nodes. An intermediate node type, called Syndic,
  139121. when used offers greater structural flexibility and scalability in the
  139122. construction of Salt topologies than topologies constructed only out of Master
  139123. and Minion node types.
  139124. .sp
  139125. A Syndic node can be thought of as a special passthrough Minion node. A Syndic
  139126. node consists of a \fBsalt\-syndic\fP daemon and a \fBsalt\-master\fP daemon running
  139127. on the same system. The \fBsalt\-master\fP daemon running on the Syndic node
  139128. controls a group of lower level Minion nodes and the \fBsalt\-syndic\fP daemon
  139129. connects higher level Master node, sometimes called a Master of Masters.
  139130. .sp
  139131. The \fBsalt\-syndic\fP daemon relays publications and events between the Master
  139132. node and the local \fBsalt\-master\fP daemon. This gives the Master node control
  139133. over the Minion nodes attached to the \fBsalt\-master\fP daemon running on the
  139134. Syndic node.
  139135. .SS Configuring the Syndic
  139136. .sp
  139137. To setup a Salt Syndic you need to tell the Syndic node and its Master node
  139138. about each other. If your Master node is located at \fB10.10.0.1\fP, then your
  139139. configurations would be:
  139140. .sp
  139141. On the Syndic node:
  139142. .INDENT 0.0
  139143. .INDENT 3.5
  139144. .sp
  139145. .nf
  139146. .ft C
  139147. # /etc/salt/master
  139148. syndic_master: 10.10.0.1 # may be either an IP address or a hostname
  139149. .ft P
  139150. .fi
  139151. .UNINDENT
  139152. .UNINDENT
  139153. .INDENT 0.0
  139154. .INDENT 3.5
  139155. .sp
  139156. .nf
  139157. .ft C
  139158. # /etc/salt/minion
  139159. # id is shared by the salt\-syndic daemon and a possible salt\-minion daemon
  139160. # on the Syndic node
  139161. id: my_syndic
  139162. .ft P
  139163. .fi
  139164. .UNINDENT
  139165. .UNINDENT
  139166. .sp
  139167. On the Master node:
  139168. .INDENT 0.0
  139169. .INDENT 3.5
  139170. .sp
  139171. .nf
  139172. .ft C
  139173. # /etc/salt/master
  139174. order_masters: True
  139175. .ft P
  139176. .fi
  139177. .UNINDENT
  139178. .UNINDENT
  139179. .sp
  139180. The \fBsyndic_master\fP option tells the Syndic node where to find the
  139181. Master node in the same way that the \fBmaster\fP option tells a
  139182. Minion node where to find a Master node.
  139183. .sp
  139184. The \fBid\fP option is used by the \fBsalt\-syndic\fP daemon to identify
  139185. with the Master node and if unset will default to the hostname or IP address of
  139186. the Syndic just as with a Minion.
  139187. .sp
  139188. The \fBorder_masters\fP option configures the Master node to send
  139189. extra information with its publications that is needed by Syndic nodes
  139190. connected directly to it.
  139191. .sp
  139192. \fBNOTE:\fP
  139193. .INDENT 0.0
  139194. .INDENT 3.5
  139195. Each Syndic must provide its own \fBfile_roots\fP directory. Files will not
  139196. be automatically transferred from the Master node.
  139197. .UNINDENT
  139198. .UNINDENT
  139199. .SS Configuring the Syndic with Multimaster
  139200. .sp
  139201. New in version 2015.5.0.
  139202. .sp
  139203. Syndic with Multimaster lets you connect a syndic to multiple masters to provide
  139204. an additional layer of redundancy in a syndic configuration.
  139205. .sp
  139206. Higher level masters should first be configured in a multimaster configuration.
  139207. See Multimaster Tutorial\&.
  139208. .sp
  139209. On the syndic, the \fBsyndic_master\fP option is populated with
  139210. a list of the higher level masters.
  139211. .sp
  139212. Since each syndic is connected to each master, jobs sent from any master are
  139213. forwarded to minions that are connected to each syndic. If the \fBmaster_id\fP value
  139214. is set in the master config on the higher level masters, job results are returned
  139215. to the master that originated the request in a best effort fashion. Events/jobs
  139216. without a \fBmaster_id\fP are returned to any available master.
  139217. .SS Running the Syndic
  139218. .sp
  139219. The \fBsalt\-syndic\fP daemon is a separate process that needs to be started in
  139220. addition to the \fBsalt\-master\fP daemon running on the Syndic node. Starting
  139221. the \fBsalt\-syndic\fP daemon is the same as starting the other Salt daemons.
  139222. .sp
  139223. The Master node in many ways sees the Syndic as an ordinary Minion node. In
  139224. particular, the Master will need to accept the Syndic\(aqs Minion key as it would
  139225. for any other Minion.
  139226. .sp
  139227. On the Syndic node:
  139228. .INDENT 0.0
  139229. .INDENT 3.5
  139230. .sp
  139231. .nf
  139232. .ft C
  139233. # salt\-syndic
  139234. or
  139235. # service salt\-syndic start
  139236. .ft P
  139237. .fi
  139238. .UNINDENT
  139239. .UNINDENT
  139240. .sp
  139241. On the Master node:
  139242. .INDENT 0.0
  139243. .INDENT 3.5
  139244. .sp
  139245. .nf
  139246. .ft C
  139247. # salt\-key \-a my_syndic
  139248. .ft P
  139249. .fi
  139250. .UNINDENT
  139251. .UNINDENT
  139252. .sp
  139253. The Master node will now be able to control the Minion nodes connected to the
  139254. Syndic. Only the Syndic key will be listed in the Master node\(aqs key registry
  139255. but this also means that key activity between the Syndic\(aqs Minions and the
  139256. Syndic does not encumber the Master node. In this way, the Syndic\(aqs key on the
  139257. Master node can be thought of as a placeholder for the keys of all the Minion
  139258. and Syndic nodes beneath it, giving the Master node a clear, high level
  139259. structural view on the Salt cluster.
  139260. .sp
  139261. On the Master node:
  139262. .INDENT 0.0
  139263. .INDENT 3.5
  139264. .sp
  139265. .nf
  139266. .ft C
  139267. # salt\-key \-L
  139268. Accepted Keys:
  139269. my_syndic
  139270. Denied Keys:
  139271. Unaccepted Keys:
  139272. Rejected Keys:
  139273. # salt \(aq*\(aq test.version
  139274. minion_1:
  139275. 2018.3.4
  139276. minion_2:
  139277. 2018.3.4
  139278. minion_4:
  139279. 2018.3.4
  139280. minion_3:
  139281. 2018.3.4
  139282. .ft P
  139283. .fi
  139284. .UNINDENT
  139285. .UNINDENT
  139286. .SS Topology
  139287. .sp
  139288. A Master node (a node which is itself not a Syndic to another higher level
  139289. Master node) must run a \fBsalt\-master\fP daemon and optionally a \fBsalt\-minion\fP
  139290. daemon.
  139291. .sp
  139292. A Syndic node must run \fBsalt\-syndic\fP and \fBsalt\-master\fP daemons and
  139293. optionally a \fBsalt\-minion\fP daemon.
  139294. .sp
  139295. A Minion node must run a \fBsalt\-minion\fP daemon.
  139296. .sp
  139297. When a \fBsalt\-master\fP daemon issues a command, it will be received by the
  139298. Syndic and Minion nodes directly connected to it. A Minion node will process
  139299. the command in the way it ordinarily would. On a Syndic node, the
  139300. \fBsalt\-syndic\fP daemon will relay the command to the \fBsalt\-master\fP daemon
  139301. running on the Syndic node, which then propagates the command to the Minions
  139302. and Syndics connected to it.
  139303. .sp
  139304. When events and job return data are generated by \fBsalt\-minion\fP daemons, they
  139305. are aggregated by the \fBsalt\-master\fP daemon they are connected to, which
  139306. \fBsalt\-master\fP daemon then relays the data back through its \fBsalt\-syndic\fP
  139307. daemon until the data reaches the Master or Syndic node that issued the command.
  139308. .SS Syndic wait
  139309. .sp
  139310. \fBsyndic_wait\fP is a master configuration file setting that specifies the number of
  139311. seconds the Salt client should wait for additional syndics to check in with their
  139312. lists of expected minions before giving up. This value defaults to \fB5\fP seconds.
  139313. .sp
  139314. The \fBsyndic_wait\fP setting is necessary because the higher\-level master does not
  139315. have a way of knowing which minions are below the syndics. The higher\-level master
  139316. has its own list of expected minions and the masters below them have their own lists
  139317. as well, so the Salt client does not how long to wait for all returns. The
  139318. \fBsyndic_wait\fP option allows time for all minions to return to the Salt client.
  139319. .sp
  139320. \fBNOTE:\fP
  139321. .INDENT 0.0
  139322. .INDENT 3.5
  139323. To reduce the amount of time the CLI waits for Minions to respond, install
  139324. a Minion on the Syndic or tune the value of the \fBsyndic_wait\fP
  139325. configuration.
  139326. .UNINDENT
  139327. .UNINDENT
  139328. .sp
  139329. While it is possible to run a Syndic without a Minion installed on the same
  139330. system, it is recommended, for a faster CLI response time, to do so. Without a
  139331. Minion installed on the Syndic node, the timeout value of \fBsyndic_wait\fP
  139332. increases significantly \- about three\-fold. With a Minion installed on the
  139333. Syndic, the CLI timeout resides at the value defined in \fBsyndic_wait\fP\&.
  139334. .sp
  139335. \fBNOTE:\fP
  139336. .INDENT 0.0
  139337. .INDENT 3.5
  139338. If you have a very large infrastructure or many layers of Syndics, you may
  139339. find that the CLI doesn\(aqt wait long enough for the Syndics to return their
  139340. events. If you think this is the case, you can set the
  139341. \fBsyndic_wait\fP value in the Master configs on the Master or
  139342. Syndic nodes from which commands are executed. The default value is \fB5\fP,
  139343. and should work for the majority of deployments.
  139344. .UNINDENT
  139345. .UNINDENT
  139346. .sp
  139347. In order for a Master or Syndic node to return information from Minions that
  139348. are below their Syndics, the CLI requires a short wait time in order to allow
  139349. the Syndics to gather responses from their Minions. This value is defined in
  139350. the \fBsyndic_wait\fP config option and has a default of five seconds.
  139351. .SS Syndic config options
  139352. .sp
  139353. These are the options that can be used to configure a Syndic node. Note that
  139354. other than \fBid\fP, Syndic config options are placed in the Master config on the
  139355. Syndic node.
  139356. .INDENT 0.0
  139357. .INDENT 3.5
  139358. .INDENT 0.0
  139359. .IP \(bu 2
  139360. \fBid\fP: Syndic id (shared by the \fBsalt\-syndic\fP daemon with a
  139361. potential \fBsalt\-minion\fP daemon on the same system)
  139362. .IP \(bu 2
  139363. \fBsyndic_master\fP: Master node IP address or hostname
  139364. .IP \(bu 2
  139365. \fBsyndic_master_port\fP: Master node ret_port
  139366. .IP \(bu 2
  139367. \fBsyndic_log_file\fP: path to the logfile (absolute or not)
  139368. .IP \(bu 2
  139369. \fBsyndic_pidfile\fP: path to the pidfile (absolute or not)
  139370. .IP \(bu 2
  139371. \fBsyndic_wait\fP: time in seconds to wait on returns from this syndic
  139372. .UNINDENT
  139373. .UNINDENT
  139374. .UNINDENT
  139375. .SS Minion Data Cache
  139376. .sp
  139377. Beginning with Salt 2016.11.0, the Pluggable Minion Data Cache
  139378. was introduced. The minion data cache contains the Salt Mine data, minion grains, and minion
  139379. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  139380. module, but other external data stores can be used instead.
  139381. .sp
  139382. Using a pluggable minion cache modules allows for the data stored on a Salt Master about
  139383. Salt Minions to be replicated on other Salt Masters the Minion is connected to. Please see
  139384. the Minion Data Cache documentation for more information and configuration
  139385. examples.
  139386. .SH MINION DATA CACHE
  139387. .sp
  139388. New in version 2016.11.0.
  139389. .sp
  139390. The Minion data cache contains the Salt Mine data, minion grains and minion
  139391. pillar information cached on the Salt Master. By default, Salt uses the \fBlocalfs\fP cache
  139392. module to save the data in a \fBmsgpack\fP file on the Salt Master.
  139393. .SS Pluggable Data Cache
  139394. .sp
  139395. While the default Minion data cache is the \fBlocalfs\fP cache, other external
  139396. data stores can also be used to store this data such as the \fBconsul\fP module.
  139397. To configure a Salt Master to use a different data store, the \fBcache\fP
  139398. setting needs to be established:
  139399. .INDENT 0.0
  139400. .INDENT 3.5
  139401. .sp
  139402. .nf
  139403. .ft C
  139404. cache: consul
  139405. .ft P
  139406. .fi
  139407. .UNINDENT
  139408. .UNINDENT
  139409. .sp
  139410. The pluggable data cache streamlines using various Salt topologies such as a
  139411. Multi\-Master or Salt Syndics configuration
  139412. by allowing the data stored on the Salt Master about a Salt Minion to be available to
  139413. other Salt Syndics or Salt Masters that a Salt Minion is connected to.
  139414. .sp
  139415. Additional minion data cache modules can be easily created by modeling the custom data
  139416. store after one of the existing cache modules.
  139417. .sp
  139418. See cache modules for a current list.
  139419. .SS Configuring the Minion Data Cache
  139420. .sp
  139421. The default \fBlocalfs\fP Minion data cache module doesn\(aqt require any
  139422. configuration. External data cache modules with external data stores such as
  139423. Consul require a configuration setting in the master config.
  139424. .sp
  139425. Here\(aqs an example config for Consul:
  139426. .INDENT 0.0
  139427. .INDENT 3.5
  139428. .sp
  139429. .nf
  139430. .ft C
  139431. consul.host: 127.0.0.1
  139432. consul.port: 8500
  139433. consul.token: None
  139434. consul.scheme: http
  139435. consul.consistency: default
  139436. consul.dc: dc1
  139437. consul.verify: True
  139438. cache: consul
  139439. .ft P
  139440. .fi
  139441. .UNINDENT
  139442. .UNINDENT
  139443. .SH SLOTS
  139444. .sp
  139445. New in version 2018.3.0.
  139446. .sp
  139447. Changed in version 3000.
  139448. .sp
  139449. \fBNOTE:\fP
  139450. .INDENT 0.0
  139451. .INDENT 3.5
  139452. This functionality is under development and could be changed in the
  139453. future releases
  139454. .UNINDENT
  139455. .UNINDENT
  139456. .sp
  139457. Many times it is useful to store the results of a command during the course of
  139458. an execution. Salt Slots are designed to allow you to store this information and
  139459. use it later during the highstate or other job
  139460. execution.
  139461. .sp
  139462. Slots extend the state syntax and allows you to do things right before the
  139463. state function is executed. So you can make a decision in the last moment right
  139464. before a state is executed.
  139465. .SS Execution functions
  139466. .sp
  139467. \fBNOTE:\fP
  139468. .INDENT 0.0
  139469. .INDENT 3.5
  139470. Using execution modules return data as a state values is a first step
  139471. of Slots development. Other functionality is under development.
  139472. .UNINDENT
  139473. .UNINDENT
  139474. .sp
  139475. Slots allow you to use the return from a remote\-execution function as an
  139476. argument value in states.
  139477. .sp
  139478. Slot syntax looks close to the simple python function call.
  139479. .INDENT 0.0
  139480. .INDENT 3.5
  139481. .sp
  139482. .nf
  139483. .ft C
  139484. __slot__:salt:<module>.<function>(<args>, ..., <kwargs...>, ...)
  139485. .ft P
  139486. .fi
  139487. .UNINDENT
  139488. .UNINDENT
  139489. .sp
  139490. For the 3000 release, this syntax has been updated to support parsing functions
  139491. which return dictionaries and for appending text to the slot result.
  139492. .INDENT 0.0
  139493. .INDENT 3.5
  139494. .sp
  139495. .nf
  139496. .ft C
  139497. __slot__:salt:<module>.<function>(<args>..., <kwargs...>, ...).dictionary ~ append
  139498. .ft P
  139499. .fi
  139500. .UNINDENT
  139501. .UNINDENT
  139502. .sp
  139503. There are some specifics in the syntax coming from the execution functions
  139504. nature and a desire to simplify the user experience. First one is that you
  139505. don\(aqt need to quote the strings passed to the slots functions. The second one
  139506. is that all arguments handled as strings.
  139507. .sp
  139508. Here is a simple example:
  139509. .INDENT 0.0
  139510. .INDENT 3.5
  139511. .sp
  139512. .nf
  139513. .ft C
  139514. copy\-some\-file:
  139515. file.copy:
  139516. \- name: __slot__:salt:test.echo(text=/tmp/some_file)
  139517. \- source: __slot__:salt:test.echo(/etc/hosts)
  139518. .ft P
  139519. .fi
  139520. .UNINDENT
  139521. .UNINDENT
  139522. .sp
  139523. This will execute the \fBtest.echo\fP execution
  139524. functions right before calling the state. The functions in the example will
  139525. return \fI/tmp/some_file\fP and \fI/etc/hosts\fP strings that will be used as a target
  139526. and source arguments in the state function \fIfile.copy\fP\&.
  139527. .sp
  139528. Here is an example of result parsing and appending:
  139529. .INDENT 0.0
  139530. .INDENT 3.5
  139531. .sp
  139532. .nf
  139533. .ft C
  139534. file\-in\-user\-home:
  139535. file.copy:
  139536. \- name: __slot__:salt:user.info(someuser).home ~ /subdirectory
  139537. \- source: salt://somefile
  139538. .ft P
  139539. .fi
  139540. .UNINDENT
  139541. .UNINDENT
  139542. .SH WINDOWS
  139543. .sp
  139544. This section contains details on the Windows Package Manager, and specific information you need
  139545. to use Salt on Windows.
  139546. .SS Windows Software Repository
  139547. .sp
  139548. \fBNOTE:\fP
  139549. .INDENT 0.0
  139550. .INDENT 3.5
  139551. In 2015.8.0 and later, the Windows Software Repository cache is compiled on
  139552. the Salt Minion, which enables pillar, grains and other things to be
  139553. available during compilation time. To support this new functionality,
  139554. a next\-generation (ng) package repository was created. See the
  139555. \fI\%Changes in Version 2015.8.0\fP for details.
  139556. .UNINDENT
  139557. .UNINDENT
  139558. .sp
  139559. The SaltStack Windows Software Repository provides a package manager and software
  139560. repository similar to what is provided by yum and apt on Linux. This repository
  139561. enables the installation of software using the installers on remote Windows
  139562. systems.
  139563. .sp
  139564. In many senses, the operation is similar to that of
  139565. the other package managers salt is aware of:
  139566. .INDENT 0.0
  139567. .IP \(bu 2
  139568. the \fBpkg.installed\fP and similar states work on Windows.
  139569. .IP \(bu 2
  139570. the \fBpkg.install\fP and similar module functions work on Windows.
  139571. .UNINDENT
  139572. .sp
  139573. High level differences to yum and apt are:
  139574. .INDENT 0.0
  139575. .IP \(bu 2
  139576. The repository metadata (SLS files) is hosted through either salt or
  139577. git.
  139578. .IP \(bu 2
  139579. Packages can be downloaded from within the salt repository, a git
  139580. repository or from HTTP(S) or FTP URLs.
  139581. .IP \(bu 2
  139582. No dependencies are managed. Dependencies between packages needs to
  139583. be managed manually.
  139584. .UNINDENT
  139585. .sp
  139586. Requirements:
  139587. .INDENT 0.0
  139588. .IP \(bu 2
  139589. GitPython 0.3 or later, or pygit2 0.20.3 with libgit 0.20.0 or later installed
  139590. on your Salt master. The Windows package definitions are downloaded
  139591. and updated using Git.
  139592. .UNINDENT
  139593. .SS Configuration
  139594. .SS Populate the Repository
  139595. .sp
  139596. The SLS files used to install Windows packages are not distributed by default with
  139597. Salt. Run the following command to initialize the repository on your Salt
  139598. master:
  139599. .INDENT 0.0
  139600. .INDENT 3.5
  139601. .sp
  139602. .nf
  139603. .ft C
  139604. salt\-run winrepo.update_git_repos
  139605. .ft P
  139606. .fi
  139607. .UNINDENT
  139608. .UNINDENT
  139609. .SS Sync Repo to Windows Minions
  139610. .sp
  139611. Run \fBpkg.refresh_db\fP on each of your Windows minions to synchronize
  139612. the package repository.
  139613. .INDENT 0.0
  139614. .INDENT 3.5
  139615. .sp
  139616. .nf
  139617. .ft C
  139618. salt \-G \(aqos:windows\(aq pkg.refresh_db
  139619. .ft P
  139620. .fi
  139621. .UNINDENT
  139622. .UNINDENT
  139623. .sp
  139624. \fBNOTE:\fP
  139625. .INDENT 0.0
  139626. .INDENT 3.5
  139627. Use \fBpkg.refresh_db\fP from 2016.11 when developing new Windows package
  139628. definitions to check for errors in the definitions against one or more
  139629. Windows minions.
  139630. .UNINDENT
  139631. .UNINDENT
  139632. .SS Install Windows Software
  139633. .sp
  139634. After completing the configuration steps, you are ready to manage software on your
  139635. Windows minions.
  139636. .SS Show Installed Packages
  139637. .INDENT 0.0
  139638. .INDENT 3.5
  139639. .sp
  139640. .nf
  139641. .ft C
  139642. salt \-G \(aqos:windows\(aq pkg.list_pkgs
  139643. .ft P
  139644. .fi
  139645. .UNINDENT
  139646. .UNINDENT
  139647. .SS Install a Package
  139648. .sp
  139649. You can query the available version of a package using the Salt pkg module.
  139650. .INDENT 0.0
  139651. .INDENT 3.5
  139652. .sp
  139653. .nf
  139654. .ft C
  139655. salt winminion pkg.list_available firefox
  139656. winminion:
  139657. \- 15.0.1
  139658. \- 16.0.2
  139659. \- 17.0.1
  139660. .ft P
  139661. .fi
  139662. .UNINDENT
  139663. .UNINDENT
  139664. .sp
  139665. As you can see, there are three versions of Firefox available for installation.
  139666. You can refer a software package by its \fBname\fP or its \fBfull_name\fP surround
  139667. by single quotes.
  139668. .INDENT 0.0
  139669. .INDENT 3.5
  139670. .sp
  139671. .nf
  139672. .ft C
  139673. salt winminion pkg.install \(aqfirefox\(aq
  139674. .ft P
  139675. .fi
  139676. .UNINDENT
  139677. .UNINDENT
  139678. .sp
  139679. The above line will install the latest version of Firefox.
  139680. .INDENT 0.0
  139681. .INDENT 3.5
  139682. .sp
  139683. .nf
  139684. .ft C
  139685. salt winminion pkg.install \(aqfirefox\(aq version=16.0.2
  139686. .ft P
  139687. .fi
  139688. .UNINDENT
  139689. .UNINDENT
  139690. .sp
  139691. The above line will install version 16.0.2 of Firefox.
  139692. .sp
  139693. If a different version of the package is already installed it will be replaced
  139694. with the version in the winrepo (only if the package itself supports live
  139695. updating).
  139696. .sp
  139697. You can also specify the full name:
  139698. .INDENT 0.0
  139699. .INDENT 3.5
  139700. .sp
  139701. .nf
  139702. .ft C
  139703. salt winminion pkg.install \(aqMozilla Firefox 17.0.1 (x86 en\-US)\(aq
  139704. .ft P
  139705. .fi
  139706. .UNINDENT
  139707. .UNINDENT
  139708. .SS Uninstall Windows Software
  139709. .sp
  139710. Uninstall software using the pkg module:
  139711. .INDENT 0.0
  139712. .INDENT 3.5
  139713. .sp
  139714. .nf
  139715. .ft C
  139716. salt winminion pkg.remove firefox
  139717. salt winminion pkg.purge firefox
  139718. .ft P
  139719. .fi
  139720. .UNINDENT
  139721. .UNINDENT
  139722. .sp
  139723. \fBNOTE:\fP
  139724. .INDENT 0.0
  139725. .INDENT 3.5
  139726. \fBpkg.purge\fP just executes \fBpkg.remove\fP on Windows. At some point in the
  139727. future \fBpkg.purge\fP may direct the installer to remove all configs and
  139728. settings for software packages that support that option.
  139729. .UNINDENT
  139730. .UNINDENT
  139731. .SS Repository Location
  139732. .sp
  139733. Salt maintains a repository of SLS files to install a large number of Windows
  139734. packages:
  139735. .INDENT 0.0
  139736. .IP \(bu 2
  139737. 2015.8.0 and later minions: \fI\%https://github.com/saltstack/salt\-winrepo\-ng\fP
  139738. .IP \(bu 2
  139739. Earlier releases: \fI\%https://github.com/saltstack/salt\-winrepo\fP
  139740. .UNINDENT
  139741. .sp
  139742. By default, these repositories are mirrored to \fB/srv/salt/win/repo\-ng\fP
  139743. and \fB/srv/salt/win/repo\fP\&.
  139744. .sp
  139745. This location can be changed in the master config file by setting the
  139746. \fBwinrepo_dir_ng\fP and \fBwinrepo_dir\fP options.
  139747. .SS Maintaining Windows Repo Definitions in Git Repositories
  139748. .sp
  139749. Windows software package definitions can be hosted in one or more Git
  139750. repositories. The default repositories are hosted on GitHub by SaltStack. These
  139751. include software definition files for various open source software projects.
  139752. These software definition files are \fB\&.sls\fP files. There are two default
  139753. repositories: \fBsalt\-winrepo\fP and \fBsalt\-winrepo\-ng\fP\&. \fBsalt\-winrepo\fP
  139754. contains software definition files for older minions (older than 2015.8.0).
  139755. \fBsalt\-winrepo\-ng\fP is for newer minions (2015.8.0 and newer).
  139756. .sp
  139757. Each software definition file contains all the information salt needs to install
  139758. that software on a minion including the HTTP or FTP locations of the installer
  139759. files, required command\-line switches for silent install, etc. Anyone is welcome
  139760. to send a pull request to this repo to add new package definitions. The repos
  139761. can be browsed here:
  139762. \fI\%salt\-winrepo\fP
  139763. \fI\%salt\-winrepo\-ng\fP
  139764. .sp
  139765. \fBNOTE:\fP
  139766. .INDENT 0.0
  139767. .INDENT 3.5
  139768. The newer software definition files are run through the salt\(aqs parser which
  139769. allows for the use of jinja.
  139770. .UNINDENT
  139771. .UNINDENT
  139772. .sp
  139773. Configure which git repositories the master can search for package definitions
  139774. by modifying or extending the \fBwinrepo_remotes\fP and
  139775. \fBwinrepo_remotes_ng\fP options.
  139776. .sp
  139777. \fBIMPORTANT:\fP
  139778. .INDENT 0.0
  139779. .INDENT 3.5
  139780. \fBwinrepo_remotes\fP was called \fBwin_gitrepos\fP in Salt versions earlier
  139781. than 2015.8.0
  139782. .UNINDENT
  139783. .UNINDENT
  139784. .sp
  139785. Package definitions are pulled down from the online git repository by running the
  139786. \fBwinrepo.update_git_repos\fP runner.
  139787. This command is run on the master:
  139788. .INDENT 0.0
  139789. .INDENT 3.5
  139790. .sp
  139791. .nf
  139792. .ft C
  139793. salt\-run winrepo.update_git_repos
  139794. .ft P
  139795. .fi
  139796. .UNINDENT
  139797. .UNINDENT
  139798. .sp
  139799. This will pull down the software definition files for older minions
  139800. (\fBsalt\-winrepo\fP) and new minions (\fBsalt\-winrepo\-ng\fP). They are stored in the
  139801. \fBfile_roots\fP under \fBwin/repo/salt\-winrepo\fP and
  139802. \fBwin/repo\-ng/salt\-winrepo\-ng\fP respectively.
  139803. .sp
  139804. \fBIMPORTANT:\fP
  139805. .INDENT 0.0
  139806. .INDENT 3.5
  139807. If you have customized software definition files that aren\(aqt maintained in a
  139808. repository, those should be stored under \fBwin/repo\fP for older minions and
  139809. \fBwin/repo\-ng\fP for newer minions. The reason for this is that the contents
  139810. of \fBwin/repo/salt\-winrepo\fP and \fBwin/repo\-ng/salt\-winrepo\-ng\fP are wiped
  139811. out every time you run a \fBwinrepo.update_git_repos\fP\&.
  139812. .sp
  139813. Additionally, when you run \fBwinrepo.genrepo\fP and \fBpkg.refresh_db\fP the
  139814. entire contents under \fBwin/repo\fP and \fBwin/repo\-ng\fP, to include all
  139815. subdirectories, are used to create the meta database file.
  139816. .UNINDENT
  139817. .UNINDENT
  139818. .sp
  139819. The next step (if you have older minions) is to create the meta database file for the
  139820. repo (\fBwinrepo.p\fP). This is done by running the
  139821. \fBwinrepo.genrepo\fP runner. This is also run
  139822. on the master:
  139823. .INDENT 0.0
  139824. .INDENT 3.5
  139825. .sp
  139826. .nf
  139827. .ft C
  139828. salt\-run winrepo.genrepo
  139829. .ft P
  139830. .fi
  139831. .UNINDENT
  139832. .UNINDENT
  139833. .sp
  139834. \fBNOTE:\fP
  139835. .INDENT 0.0
  139836. .INDENT 3.5
  139837. If you have only 2015.8.0 and newer minions, you no longer need to run
  139838. \fBsalt\-run winrepo.genrepo\fP on the master.
  139839. .UNINDENT
  139840. .UNINDENT
  139841. .sp
  139842. Finally, you need to refresh the minion database by running the
  139843. \fBpkg.refresh_db\fP command. This is run
  139844. on the master as well:
  139845. .INDENT 0.0
  139846. .INDENT 3.5
  139847. .sp
  139848. .nf
  139849. .ft C
  139850. salt \(aq*\(aq pkg.refresh_db
  139851. .ft P
  139852. .fi
  139853. .UNINDENT
  139854. .UNINDENT
  139855. .sp
  139856. On older minions (older than 2015.8.0) this will copy the winrepo.p file down to
  139857. the minion. On newer minions (2015.8.0 and newer) this will copy all the
  139858. software definition files (.sls) down to the minion and then create the meta
  139859. database file (\fBwinrepo.p\fP) locally. The reason this is done locally is because the
  139860. jinja needs to be parsed using the minion\(aqs grains.
  139861. .sp
  139862. \fBIMPORTANT:\fP
  139863. .INDENT 0.0
  139864. .INDENT 3.5
  139865. Every time you modify the software definition files on the master, either by
  139866. running \fBsalt\-run winrepo.update_git_repos\fP, modifying existing files, or
  139867. by creating your own, you need to refresh the database on your minions. For
  139868. older minions, that means running \fBsalt\-run winrepo.genrepo\fP and then
  139869. \fBsalt \(aq*\(aq pkg.refresh_db\fP\&. For newer minions (2015.8.0 and newer) it is
  139870. just \fBsalt \(aq*\(aq pkg.refresh_db\fP\&.
  139871. .UNINDENT
  139872. .UNINDENT
  139873. .sp
  139874. \fBNOTE:\fP
  139875. .INDENT 0.0
  139876. .INDENT 3.5
  139877. If the \fBwinrepo.genrepo\fP or the \fBpkg.refresh_db\fP fails, it is likely a
  139878. problem with the jinja in one of the software definition files. This will
  139879. cause the operations to stop. You\(aqll need to fix the syntax in order for the
  139880. meta database file to be created successfully.
  139881. .UNINDENT
  139882. .UNINDENT
  139883. .sp
  139884. To disable one of the repos, set it to an empty list \fB[]\fP in the master
  139885. config. For example, to disable \fBwinrepo_remotes\fP set the following
  139886. in the master config file:
  139887. .INDENT 0.0
  139888. .INDENT 3.5
  139889. .sp
  139890. .nf
  139891. .ft C
  139892. winrepo_remotes: []
  139893. .ft P
  139894. .fi
  139895. .UNINDENT
  139896. .UNINDENT
  139897. .SS Creating a Package Definition SLS File
  139898. .sp
  139899. The package definition file is a YAML file that contains all the information
  139900. needed to install a piece of software using salt. It defines information about
  139901. the package to include version, full name, flags required for the installer and
  139902. uninstaller, whether or not to use the Windows task scheduler to install the
  139903. package, where to find the installation package, etc.
  139904. .sp
  139905. Take a look at this example for Firefox:
  139906. .INDENT 0.0
  139907. .INDENT 3.5
  139908. .sp
  139909. .nf
  139910. .ft C
  139911. firefox:
  139912. \(aq17.0.1\(aq:
  139913. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 17.0.1.exe\(aq
  139914. full_name: Mozilla Firefox 17.0.1 (x86 en\-US)
  139915. locale: en_US
  139916. reboot: False
  139917. install_flags: \(aq\-ms\(aq
  139918. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  139919. uninstall_flags: \(aq/S\(aq
  139920. \(aq16.0.2\(aq:
  139921. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 16.0.2.exe\(aq
  139922. full_name: Mozilla Firefox 16.0.2 (x86 en\-US)
  139923. locale: en_US
  139924. reboot: False
  139925. install_flags: \(aq\-ms\(aq
  139926. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  139927. uninstall_flags: \(aq/S\(aq
  139928. \(aq15.0.1\(aq:
  139929. installer: \(aqsalt://win/repo/firefox/English/Firefox Setup 15.0.1.exe\(aq
  139930. full_name: Mozilla Firefox 15.0.1 (x86 en\-US)
  139931. locale: en_US
  139932. reboot: False
  139933. install_flags: \(aq\-ms\(aq
  139934. uninstaller: \(aq%ProgramFiles(x86)%/Mozilla Firefox/uninstall/helper.exe\(aq
  139935. uninstall_flags: \(aq/S\(aq
  139936. .ft P
  139937. .fi
  139938. .UNINDENT
  139939. .UNINDENT
  139940. .sp
  139941. Each software definition file begins with a package name for the software. As in
  139942. the example above \fBfirefox\fP\&. The next line is indented two spaces and contains
  139943. the version to be defined. As in the example above, a software definition file
  139944. can define multiple versions for the same piece of software. The lines following
  139945. the version are indented two more spaces and contain all the information needed
  139946. to install that package.
  139947. .sp
  139948. \fBWARNING:\fP
  139949. .INDENT 0.0
  139950. .INDENT 3.5
  139951. The package name and the \fBfull_name\fP must be unique to all other packages
  139952. in the software repository.
  139953. .UNINDENT
  139954. .UNINDENT
  139955. .sp
  139956. The version line is the version for the package to be installed. It is used when
  139957. you need to install a specific version of a piece of software.
  139958. .sp
  139959. \fBWARNING:\fP
  139960. .INDENT 0.0
  139961. .INDENT 3.5
  139962. The version must be enclosed in quotes, otherwise the YAML parser will
  139963. remove trailing zeros.
  139964. .UNINDENT
  139965. .UNINDENT
  139966. .sp
  139967. \fBNOTE:\fP
  139968. .INDENT 0.0
  139969. .INDENT 3.5
  139970. There are unique situations where previous versions are unavailable. Take
  139971. Google Chrome for example. There is only one URL provided for a standalone
  139972. installation of Google Chrome.
  139973. .sp
  139974. (\fI\%https://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\fP)
  139975. .sp
  139976. When a new version is released, the URL just points to the new version. To
  139977. handle situations such as these, set the version to \fIlatest\fP\&. Salt will
  139978. install the version of Chrome at the URL and report that version. Here\(aqs an
  139979. example:
  139980. .UNINDENT
  139981. .UNINDENT
  139982. .INDENT 0.0
  139983. .INDENT 3.5
  139984. .sp
  139985. .nf
  139986. .ft C
  139987. chrome:
  139988. latest:
  139989. full_name: \(aqGoogle Chrome\(aq
  139990. installer: \(aqhttps://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\(aq
  139991. install_flags: \(aq/qn /norestart\(aq
  139992. uninstaller: \(aqhttps://dl.google.com/edgedl/chrome/install/GoogleChromeStandaloneEnterprise.msi\(aq
  139993. uninstall_flags: \(aq/qn /norestart\(aq
  139994. msiexec: True
  139995. locale: en_US
  139996. reboot: False
  139997. .ft P
  139998. .fi
  139999. .UNINDENT
  140000. .UNINDENT
  140001. .sp
  140002. Available parameters are as follows:
  140003. .INDENT 0.0
  140004. .TP
  140005. .B param str full_name
  140006. The Full Name for the software as shown in "Programs and Features" in the
  140007. control panel. You can also get this information by installing the package
  140008. manually and then running \fBpkg.list_pkgs\fP\&. Here\(aqs an example of the output
  140009. from \fBpkg.list_pkgs\fP:
  140010. .INDENT 7.0
  140011. .INDENT 3.5
  140012. .sp
  140013. .nf
  140014. .ft C
  140015. salt \(aqtest\-2008\(aq pkg.list_pkgs
  140016. test\-2008
  140017. \-\-\-\-\-\-\-\-\-\-
  140018. 7\-Zip 9.20 (x64 edition):
  140019. 9.20.00.0
  140020. Microsoft .NET Framework 4 Client Profile:
  140021. 4.0.30319,4.0.30319
  140022. Microsoft .NET Framework 4 Extended:
  140023. 4.0.30319,4.0.30319
  140024. Microsoft Visual C++ 2008 Redistributable \- x64 9.0.21022:
  140025. 9.0.21022
  140026. Mozilla Firefox 17.0.1 (x86 en\-US):
  140027. 17.0.1
  140028. Mozilla Maintenance Service:
  140029. 17.0.1
  140030. NSClient++ (x64):
  140031. 0.3.8.76
  140032. Notepad++:
  140033. 6.4.2
  140034. Salt Minion 0.16.0:
  140035. 0.16.0
  140036. .ft P
  140037. .fi
  140038. .UNINDENT
  140039. .UNINDENT
  140040. .sp
  140041. Notice the Full Name for Firefox: \fBMozilla Firefox 17.0.0 (x86 en\-US)\fP\&.
  140042. That\(aqs exactly what\(aqs in the \fBfull_name\fP parameter in the software
  140043. definition file.
  140044. .sp
  140045. If any of the software installed on the machine matches one of the software
  140046. definition files in the repository, the full_name will be automatically
  140047. renamed to the package name. The example below shows the \fBpkg.list_pkgs\fP
  140048. for a machine that already has Mozilla Firefox 17.0.1 installed.
  140049. .INDENT 7.0
  140050. .INDENT 3.5
  140051. .sp
  140052. .nf
  140053. .ft C
  140054. test\-2008:
  140055. \-\-\-\-\-\-\-\-\-\-
  140056. 7zip:
  140057. 9.20.00.0
  140058. Microsoft .NET Framework 4 Client Profile:
  140059. 4.0.30319,4.0.30319
  140060. Microsoft .NET Framework 4 Extended:
  140061. 4.0.30319,4.0.30319
  140062. Microsoft Visual C++ 2008 Redistributable \- x64 9.0.21022:
  140063. 9.0.21022
  140064. Mozilla Maintenance Service:
  140065. 17.0.1
  140066. Notepad++:
  140067. 6.4.2
  140068. Salt Minion 0.16.0:
  140069. 0.16.0
  140070. firefox:
  140071. 17.0.1
  140072. nsclient:
  140073. 0.3.9.328
  140074. .ft P
  140075. .fi
  140076. .UNINDENT
  140077. .UNINDENT
  140078. .sp
  140079. \fBIMPORTANT:\fP
  140080. .INDENT 7.0
  140081. .INDENT 3.5
  140082. The version number and \fBfull_name\fP need to match the output from
  140083. \fBpkg.list_pkgs\fP so that the status can be verified when running a
  140084. highstate.
  140085. .UNINDENT
  140086. .UNINDENT
  140087. .sp
  140088. \fBNOTE:\fP
  140089. .INDENT 7.0
  140090. .INDENT 3.5
  140091. It is still possible to successfully install packages using
  140092. \fBpkg.install\fP, even if the \fBfull_name\fP or the version number don\(aqt
  140093. match. However, this can make troubleshooting issues difficult, so be
  140094. careful.
  140095. .UNINDENT
  140096. .UNINDENT
  140097. .sp
  140098. \fBTIP:\fP
  140099. .INDENT 7.0
  140100. .INDENT 3.5
  140101. To force salt to display the full name when there\(aqs already an existing
  140102. package definition file on the system, you can pass a bogus \fBsaltenv\fP
  140103. parameter to the command like so: \fBpkg.list_pkgs saltenv=NotARealEnv\fP
  140104. .UNINDENT
  140105. .UNINDENT
  140106. .TP
  140107. .B param str installer
  140108. The path to the \fB\&.exe\fP or \fB\&.msi\fP to use to install the package. This can
  140109. be a path or a URL. If it is a URL or a salt path (\fBsalt://\fP), the package
  140110. will be cached locally and then executed. If it is a path to a file on disk
  140111. or a file share, it will be executed directly.
  140112. .sp
  140113. \fBNOTE:\fP
  140114. .INDENT 7.0
  140115. .INDENT 3.5
  140116. If storing software in the same location as the winrepo it is best
  140117. practice to place each installer in its own directory rather than the
  140118. root of winrepo. Then you can place your package definition file in the
  140119. same directory. It is best practice to name the file \fBinit.sls\fP\&. This
  140120. will be picked up by \fBpkg.refresh_db\fP and processed properly.
  140121. .UNINDENT
  140122. .UNINDENT
  140123. .TP
  140124. .B param str install_flags
  140125. Any flags that need to be passed to the installer to make it perform a
  140126. silent install. These can often be found by adding \fB/?\fP or \fB/h\fP when
  140127. running the installer from the command\-line. A great resource for finding
  140128. these silent install flags can be found on the WPKG project\(aqs \fI\%wiki\fP:
  140129. .sp
  140130. \fBWARNING:\fP
  140131. .INDENT 7.0
  140132. .INDENT 3.5
  140133. Salt will not return if the installer is waiting for user input so it is
  140134. imperative that the software package being installed has the ability to
  140135. install silently.
  140136. .UNINDENT
  140137. .UNINDENT
  140138. .TP
  140139. .B param str uninstaller
  140140. The path to the program used to uninstall this software. This can be the
  140141. path to the same \fIexe\fP or \fImsi\fP used to install the software. It can also be
  140142. a GUID. You can find this value in the registry under the following keys:
  140143. .INDENT 7.0
  140144. .INDENT 3.5
  140145. .INDENT 0.0
  140146. .IP \(bu 2
  140147. Software\eMicrosoft\eWindows\eCurrentVersion\eUninstall
  140148. .IP \(bu 2
  140149. Software\eWOW6432Node\eMicrosoft\eWindows\eCurrentVersion\eUninstall
  140150. .UNINDENT
  140151. .UNINDENT
  140152. .UNINDENT
  140153. .TP
  140154. .B param str uninstall_flags
  140155. Any flags that need to be passed to the uninstaller to make it perform a
  140156. silent uninstall. These can often be found by adding \fB/?\fP or \fB/h\fP when
  140157. running the uninstaller from the command\-line. A great resource for finding
  140158. these silent install flags can be found on the WPKG project\(aqs \fI\%wiki\fP:
  140159. .sp
  140160. \fBWARNING:\fP
  140161. .INDENT 7.0
  140162. .INDENT 3.5
  140163. Salt will not return if the uninstaller is waiting for user input so it
  140164. is imperative that the software package being uninstalled has the
  140165. ability to uninstall silently.
  140166. .UNINDENT
  140167. .UNINDENT
  140168. .sp
  140169. Here are some examples of installer and uninstaller settings:
  140170. .INDENT 7.0
  140171. .INDENT 3.5
  140172. .sp
  140173. .nf
  140174. .ft C
  140175. 7zip:
  140176. \(aq9.20.00.0\(aq:
  140177. installer: salt://win/repo/7zip/7z920\-x64.msi
  140178. full_name: 7\-Zip 9.20 (x64 edition)
  140179. reboot: False
  140180. install_flags: \(aq/qn /norestart\(aq
  140181. msiexec: True
  140182. uninstaller: \(aq{23170F69\-40C1\-2702\-0920\-000001000000}\(aq
  140183. uninstall_flags: \(aq/qn /norestart\(aq
  140184. .ft P
  140185. .fi
  140186. .UNINDENT
  140187. .UNINDENT
  140188. .sp
  140189. Alternatively the \fBuninstaller\fP can also simply repeat the URL of an msi
  140190. file:
  140191. .INDENT 7.0
  140192. .INDENT 3.5
  140193. .sp
  140194. .nf
  140195. .ft C
  140196. 7zip:
  140197. \(aq9.20.00.0\(aq:
  140198. installer: salt://win/repo/7zip/7z920\-x64.msi
  140199. full_name: 7\-Zip 9.20 (x64 edition)
  140200. reboot: False
  140201. install_flags: \(aq/qn /norestart\(aq
  140202. msiexec: True
  140203. uninstaller: salt://win/repo/7zip/7z920\-x64.msi
  140204. uninstall_flags: \(aq/qn /norestart\(aq
  140205. .ft P
  140206. .fi
  140207. .UNINDENT
  140208. .UNINDENT
  140209. .TP
  140210. .B param msiexec
  140211. This tells salt to use \fBmsiexec /i\fP to install the package and
  140212. \fBmsiexec /x\fP to uninstall. This is for \fB\&.msi\fP installations. Possible
  140213. options are: True, False or the path to \fBmsiexec.exe\fP on your system
  140214. .INDENT 7.0
  140215. .INDENT 3.5
  140216. .sp
  140217. .nf
  140218. .ft C
  140219. 7zip:
  140220. \(aq9.20.00.0\(aq:
  140221. installer: salt://win/repo/7zip/7z920\-x64.msi
  140222. full_name: 7\-Zip 9.20 (x64 edition)
  140223. reboot: False
  140224. install_flags: \(aq/qn /norestart\(aq
  140225. msiexec: \(aqC:\eWindows\eSystem32\emsiexec.exe\(aq
  140226. uninstaller: salt://win/repo/7zip/7z920\-x64.msi
  140227. uninstall_flags: \(aq/qn /norestart\(aq
  140228. .ft P
  140229. .fi
  140230. .UNINDENT
  140231. .UNINDENT
  140232. .TP
  140233. .B param bool allusers
  140234. This parameter is specific to \fB\&.msi\fP installations. It tells \fBmsiexec\fP
  140235. to install the software for all users. The default is \fBTrue\fP\&.
  140236. .TP
  140237. .B param bool cache_dir
  140238. If \fBTrue\fP and the installer URL begins with \fBsalt://\fP, the entire
  140239. directory where the installer resides will be recursively cached. This is
  140240. useful for installers that depend on other files in the same directory for
  140241. installation.
  140242. .sp
  140243. \fBWARNING:\fP
  140244. .INDENT 7.0
  140245. .INDENT 3.5
  140246. Be aware that all files and directories in the same location as the
  140247. installer file will be copied down to the minion. If you place your
  140248. installer file in the root of winrepo (\fB/srv/salt/win/repo\-ng\fP) and
  140249. \fBcache_dir: True\fP the entire contents of winrepo will be cached to
  140250. the minion. Therefore, it is best practice to place your installer files
  140251. in a subdirectory if they are to be stored in winrepo.
  140252. .UNINDENT
  140253. .UNINDENT
  140254. .TP
  140255. .B param str cache_file
  140256. When the installer URL begins with \fBsalt://\fP, this indicates a single file
  140257. to copy down for use with the installer. It is copied to the same location
  140258. as the installer. Use this over \fBcache_dir\fP if there are many files in the
  140259. directory and you only need a specific file and don\(aqt want to cache
  140260. additional files that may reside in the installer directory.
  140261. .sp
  140262. Here\(aqs an example for a software package that has dependent files:
  140263. .INDENT 7.0
  140264. .INDENT 3.5
  140265. .sp
  140266. .nf
  140267. .ft C
  140268. sqlexpress:
  140269. \(aq12.0.2000.8\(aq:
  140270. installer: \(aqsalt://win/repo/sqlexpress/setup.exe\(aq
  140271. full_name: Microsoft SQL Server 2014 Setup (English)
  140272. reboot: False
  140273. install_flags: \(aq/ACTION=install /IACCEPTSQLSERVERLICENSETERMS /Q\(aq
  140274. cache_dir: True
  140275. .ft P
  140276. .fi
  140277. .UNINDENT
  140278. .UNINDENT
  140279. .TP
  140280. .B param bool use_scheduler
  140281. If \fBTrue\fP, Windows will use the task scheduler to run the installation.
  140282. This is useful for running the Salt installation itself as the installation
  140283. process kills any currently running instances of Salt.
  140284. .TP
  140285. .B param str source_hash
  140286. This tells Salt to compare a hash sum of the installer to the provided hash
  140287. sum before execution. The value can be formatted as
  140288. \fB<hash_algorithm>=<hash_sum>\fP, or it can be a URI to a file containing the
  140289. hash sum.
  140290. .sp
  140291. For a list of supported algorithms, see the \fI\%hashlib documentation\fP\&.
  140292. .sp
  140293. Here\(aqs an example of source_hash usage:
  140294. .INDENT 7.0
  140295. .INDENT 3.5
  140296. .sp
  140297. .nf
  140298. .ft C
  140299. messageanalyzer:
  140300. \(aq4.0.7551.0\(aq:
  140301. full_name: \(aqMicrosoft Message Analyzer\(aq
  140302. installer: \(aqsalt://win/repo/messageanalyzer/MessageAnalyzer64.msi\(aq
  140303. install_flags: \(aq/quiet /norestart\(aq
  140304. uninstaller: \(aq{1CC02C23\-8FCD\-487E\-860C\-311EC0A0C933}\(aq
  140305. uninstall_flags: \(aq/quiet /norestart\(aq
  140306. msiexec: True
  140307. source_hash: \(aqsha1=62875ff451f13b10a8ff988f2943e76a4735d3d4\(aq
  140308. .ft P
  140309. .fi
  140310. .UNINDENT
  140311. .UNINDENT
  140312. .TP
  140313. .B param bool reboot
  140314. Not implemented
  140315. .TP
  140316. .B param str locale
  140317. Not implemented
  140318. .UNINDENT
  140319. .sp
  140320. Examples can be found at \fI\%https://github.com/saltstack/salt\-winrepo\-ng\fP
  140321. .SS Managing Windows Software on a Standalone Windows Minion
  140322. .sp
  140323. The Windows Package Repository functions similar in a standalone environment,
  140324. with a few differences in the configuration.
  140325. .sp
  140326. To replace the winrepo runner that is used on the Salt master, an \fBexecution module\fP exists to provide the same functionality to standalone
  140327. minions. The functions are named the same as the ones in the runner, and are
  140328. used in the same way; the only difference is that \fBsalt\-call\fP is used instead
  140329. of \fBsalt\-run\fP:
  140330. .INDENT 0.0
  140331. .INDENT 3.5
  140332. .sp
  140333. .nf
  140334. .ft C
  140335. salt\-call winrepo.update_git_repos
  140336. salt\-call winrepo.genrepo
  140337. salt\-call pkg.refresh_db
  140338. .ft P
  140339. .fi
  140340. .UNINDENT
  140341. .UNINDENT
  140342. .sp
  140343. After executing the previous commands the repository on the standalone system
  140344. is ready to use.
  140345. .SS Custom Location for Repository SLS Files
  140346. .sp
  140347. If \fBfile_roots\fP has not been modified in the minion
  140348. configuration, then no additional configuration needs to be added to the
  140349. minion configuration. The \fBwinrepo.genrepo\fP function from the \fBwinrepo\fP execution module will by default look for the
  140350. filename specified by \fBwinrepo_cachefile\fP within
  140351. \fBC:\esalt\esrv\esalt\ewin\erepo\fP\&.
  140352. .sp
  140353. If the \fBfile_roots\fP parameter has been modified, then
  140354. \fBwinrepo_dir\fP must be modified to fall within that path, at the
  140355. proper relative path. For example, if the \fBbase\fP environment in
  140356. \fBfile_roots\fP points to \fBD:\efoo\fP, and
  140357. \fBwinrepo_source_dir\fP is \fBsalt://win/repo\fP, then
  140358. \fBwinrepo_dir\fP must be set to \fBD:\efoo\ewin\erepo\fP to ensure that
  140359. \fBwinrepo.genrepo\fP puts the cachefile
  140360. into right location.
  140361. .SS Configuration options for Minions 2015.8.0 and later
  140362. .sp
  140363. On newer minions (2015.8.0 and later), the \fBwinrepo_source_dir\fP
  140364. config parameter (default: \fBsalt://win/repo\-ng\fP) controls where
  140365. \fBpkg.refresh_db\fP looks for the software
  140366. definition files that will be downloaded to the minion and used to generate the
  140367. local database file (\fBwinrepo.p\fP).
  140368. .sp
  140369. Software package definitions are automatically refreshed if stale after
  140370. \fBwinrepo_cache_expire_max\fP\&. Running a highstate normal forces the
  140371. refresh of the package definition and generation of the meta database, unless
  140372. the meta database is younger than \fBwinrepo_cache_expire_max\fP\&.
  140373. Refreshing the package definitions can take some time, these options were
  140374. introduced to allow more control of when it occurs.
  140375. .sp
  140376. It\(aqs important use \fBpkg.refresh_db\fP
  140377. to check for errors and ensure the latest package definition is on any minion
  140378. your testing new definitions on.
  140379. .SS Configuration options for Minions before 2015.8.0
  140380. .sp
  140381. On older minions (before 2015.8.0), the \fBwinrepo_source_dir\fP
  140382. config parameter (default: \fBsalt://win/repo\fP) controls where
  140383. \fBpkg.refresh_db\fP looks for the cachefile
  140384. (default: \fBwinrepo.p\fP). This means that the default location for the winrepo
  140385. cachefile would be \fBsalt://win/repo/winrepo.p\fP\&. Both :conf_minion:
  140386. winrepo_source_dir\(ga and \fBwinrepo_cachefile\fP can be adjusted to
  140387. match the actual location of this file on the Salt fileserver.
  140388. .sp
  140389. If connected to a master, the minion will by default look for the winrepo
  140390. cachefile (the file generated by the \fBwinrepo.genrepo runner\fP) at \fBsalt://win/repo/winrepo.p\fP\&. If the
  140391. cachefile is in a different path on the salt fileserver, then
  140392. \fBwin_repo_cachefile\fP will need to be updated to reflect the proper
  140393. location.
  140394. .SS Changes in Version 2015.8.0
  140395. .sp
  140396. Git repository management for the Windows Software Repository has changed
  140397. in version 2015.8.0, and several master/minion config parameters have been
  140398. renamed to make their naming more consistent with each other.
  140399. .sp
  140400. For a list of the winrepo config options, see here for master config options, and here for configuration options for masterless Windows
  140401. minions.
  140402. .sp
  140403. On the master, the \fBwinrepo.update_git_repos\fP runner has been updated to use either
  140404. \fI\%pygit2\fP or \fI\%GitPython\fP to checkout the git repositories containing repo data. If
  140405. \fI\%pygit2\fP or \fI\%GitPython\fP is installed, existing winrepo git checkouts should be
  140406. removed after upgrading to 2015.8.0, to allow them to be checked out again by
  140407. running \fBwinrepo.update_git_repos\fP\&.
  140408. .sp
  140409. If neither \fI\%GitPython\fP nor \fI\%pygit2\fP are installed, then Salt will fall back to
  140410. the pre\-existing behavior for \fBwinrepo.update_git_repos\fP, and a warning will be logged in the
  140411. master log.
  140412. .sp
  140413. \fBNOTE:\fP
  140414. .INDENT 0.0
  140415. .INDENT 3.5
  140416. Standalone Windows minions do not support the new \fI\%GitPython\fP/\fI\%pygit2\fP
  140417. functionality, and will instead use the \fBgit.latest\fP state to keep repositories up\-to\-date. More
  140418. information on how to use the Windows Software Repo on a standalone minion
  140419. can be found \fI\%here\fP\&.
  140420. .UNINDENT
  140421. .UNINDENT
  140422. .SS Config Parameters Renamed
  140423. .sp
  140424. Many of the legacy winrepo configuration parameters have changed in version 2015.8.0
  140425. to make the naming more consistent. The old parameter names will still work,
  140426. but a warning will be logged indicating that the old name is deprecated.
  140427. .sp
  140428. Below are the parameters which have changed for version 2015.8.0:
  140429. .SS Master Config
  140430. .TS
  140431. center;
  140432. |l|l|.
  140433. _
  140434. T{
  140435. Old Name
  140436. T} T{
  140437. New Name
  140438. T}
  140439. _
  140440. T{
  140441. win_repo
  140442. T} T{
  140443. \fBwinrepo_dir\fP
  140444. T}
  140445. _
  140446. T{
  140447. win_repo_mastercachefile
  140448. T} T{
  140449. \fBwinrepo_cachefile\fP
  140450. T}
  140451. _
  140452. T{
  140453. win_gitrepos
  140454. T} T{
  140455. \fBwinrepo_remotes\fP
  140456. T}
  140457. _
  140458. .TE
  140459. .sp
  140460. \fBNOTE:\fP
  140461. .INDENT 0.0
  140462. .INDENT 3.5
  140463. \fBwinrepo_cachefile\fP is no longer used by 2015.8.0 and later minions, and
  140464. the \fBwinrepo_dir\fP setting is replaced by \fBwinrepo_dir_ng\fP for 2015.8.0
  140465. and later minions.
  140466. .UNINDENT
  140467. .UNINDENT
  140468. .sp
  140469. See here for detailed information on all
  140470. master config options for the Windows Repo.
  140471. .SS Minion Config
  140472. .TS
  140473. center;
  140474. |l|l|.
  140475. _
  140476. T{
  140477. Old Name
  140478. T} T{
  140479. New Name
  140480. T}
  140481. _
  140482. T{
  140483. win_repo
  140484. T} T{
  140485. \fBwinrepo_dir\fP
  140486. T}
  140487. _
  140488. T{
  140489. win_repo_cachefile
  140490. T} T{
  140491. \fBwinrepo_cachefile\fP
  140492. T}
  140493. _
  140494. T{
  140495. win_gitrepos
  140496. T} T{
  140497. \fBwinrepo_remotes\fP
  140498. T}
  140499. _
  140500. .TE
  140501. .sp
  140502. See here for detailed information on all
  140503. minion config options for the Windows Repo.
  140504. .SS \fI\%pygit2\fP/\fI\%GitPython\fP Support for Maintaining Git Repos
  140505. .sp
  140506. The \fBwinrepo.update_git_repos\fP
  140507. runner (and the corresponding \fBremote execution function\fP for standalone minions) now makes use
  140508. of the same underlying code used by the Git Fileserver Backend and \fBGit External Pillar\fP to
  140509. maintain and update its local clones of git repositories. If a compatible
  140510. version of either \fI\%pygit2\fP (0.20.3 and later) or \fI\%GitPython\fP (0.3.0 or later) is
  140511. installed, then Salt will use it instead of the old method (which invokes the
  140512. \fBgit.latest\fP state).
  140513. .sp
  140514. \fBNOTE:\fP
  140515. .INDENT 0.0
  140516. .INDENT 3.5
  140517. If compatible versions of both \fI\%pygit2\fP and \fI\%GitPython\fP are installed, then
  140518. Salt will prefer \fI\%pygit2\fP, to override this behavior use the
  140519. \fBwinrepo_provider\fP configuration parameter:
  140520. .INDENT 0.0
  140521. .INDENT 3.5
  140522. .sp
  140523. .nf
  140524. .ft C
  140525. winrepo_provider: gitpython
  140526. .ft P
  140527. .fi
  140528. .UNINDENT
  140529. .UNINDENT
  140530. .sp
  140531. The \fBwinrepo execution module\fP (discussed
  140532. above in the \fI\%Managing Windows Software on a Standalone Windows Minion\fP section) does not yet officially support the new
  140533. \fI\%pygit2\fP/\fI\%GitPython\fP functionality, but if either \fI\%pygit2\fP or \fI\%GitPython\fP is
  140534. installed into Salt\(aqs bundled Python then it \fIshould\fP work. However, it
  140535. should be considered experimental at this time.
  140536. .UNINDENT
  140537. .UNINDENT
  140538. .sp
  140539. To minimize potential issues, it is a good idea to remove any winrepo git
  140540. repositories that were checked out by the old (pre\-2015.8.0) winrepo code when
  140541. upgrading the master to 2015.8.0 or later, and run
  140542. \fBwinrepo.update_git_repos\fP to
  140543. clone them anew after the master is started.
  140544. .sp
  140545. Additional added features include the ability to access authenticated git
  140546. repositories (\fBNOTE:\fP \fI\%pygit2\fP only), and to set per\-remote config settings.
  140547. An example of this would be the following:
  140548. .INDENT 0.0
  140549. .INDENT 3.5
  140550. .sp
  140551. .nf
  140552. .ft C
  140553. winrepo_remotes:
  140554. \- https://github.com/saltstack/salt\-winrepo.git
  140555. \- git@github.com:myuser/myrepo.git:
  140556. \- pubkey: /path/to/key.pub
  140557. \- privkey: /path/to/key
  140558. \- passphrase: myaw3s0m3pa$$phr4$3
  140559. \- https://github.com/myuser/privaterepo.git:
  140560. \- user: mygithubuser
  140561. \- password: CorrectHorseBatteryStaple
  140562. .ft P
  140563. .fi
  140564. .UNINDENT
  140565. .UNINDENT
  140566. .sp
  140567. \fBNOTE:\fP
  140568. .INDENT 0.0
  140569. .INDENT 3.5
  140570. Per\-remote configuration settings work in the same fashion as they do in
  140571. gitfs, with global parameters being overridden by their per\-remote
  140572. counterparts (for instance, setting \fBwinrepo_passphrase\fP would
  140573. set a global passphrase for winrepo that would apply to all SSH\-based
  140574. remotes, unless overridden by a \fBpassphrase\fP per\-remote parameter).
  140575. .sp
  140576. See here for more a more in\-depth
  140577. explanation of how per\-remote configuration works in gitfs, the same
  140578. principles apply to winrepo.
  140579. .UNINDENT
  140580. .UNINDENT
  140581. .sp
  140582. There are a couple other changes in how Salt manages git repos using
  140583. \fI\%pygit2\fP/\fI\%GitPython\fP\&. First of all, a \fBclean\fP argument has been added to the
  140584. \fBwinrepo.update_git_repos\fP
  140585. runner, which (if set to \fBTrue\fP) will tell the runner to dispose of
  140586. directories under the \fBwinrepo_dir\fP which are not explicitly
  140587. configured. This prevents the need to manually remove these directories when a
  140588. repo is removed from the config file. To clean these old directories, just pass
  140589. \fBclean=True\fP, like so:
  140590. .INDENT 0.0
  140591. .INDENT 3.5
  140592. .sp
  140593. .nf
  140594. .ft C
  140595. salt\-run winrepo.update_git_repos clean=True
  140596. .ft P
  140597. .fi
  140598. .UNINDENT
  140599. .UNINDENT
  140600. .sp
  140601. However, if a mix of git and non\-git Windows Repo definition files are being
  140602. used, then this should \fInot\fP be used, as it will remove the directories
  140603. containing non\-git definitions.
  140604. .sp
  140605. The other major change is that collisions between repo names are now detected,
  140606. and the \fBwinrepo.update_git_repos\fP runner will not proceed if any are
  140607. detected. Consider the following configuration:
  140608. .INDENT 0.0
  140609. .INDENT 3.5
  140610. .sp
  140611. .nf
  140612. .ft C
  140613. winrepo_remotes:
  140614. \- https://foo.com/bar/baz.git
  140615. \- https://mydomain.tld/baz.git
  140616. \- https://github.com/foobar/baz
  140617. .ft P
  140618. .fi
  140619. .UNINDENT
  140620. .UNINDENT
  140621. .sp
  140622. The \fBwinrepo.update_git_repos\fP
  140623. runner will refuse to update repos here, as all three of these repos would be
  140624. checked out to the same directory. To work around this, a per\-remote parameter
  140625. called \fBname\fP can be used to resolve these conflicts:
  140626. .INDENT 0.0
  140627. .INDENT 3.5
  140628. .sp
  140629. .nf
  140630. .ft C
  140631. winrepo_remotes:
  140632. \- https://foo.com/bar/baz.git
  140633. \- https://mydomain.tld/baz.git:
  140634. \- name: baz_junior
  140635. \- https://github.com/foobar/baz:
  140636. \- name: baz_the_third
  140637. .ft P
  140638. .fi
  140639. .UNINDENT
  140640. .UNINDENT
  140641. .SS Troubleshooting
  140642. .SS Incorrect name/version
  140643. .sp
  140644. If the package seems to install properly, but salt reports a failure then it is
  140645. likely you have a version or \fBfull_name\fP mismatch.
  140646. .sp
  140647. Check the exact \fBfull_name\fP and version used by the package. Use
  140648. \fBpkg.list_pkgs\fP to check that the names and version exactly match what is
  140649. installed.
  140650. .SS Changes to sls files not being picked up
  140651. .sp
  140652. Ensure you have (re)generated the repository cache file (for older minions) and
  140653. then updated the repository cache on the relevant minions:
  140654. .INDENT 0.0
  140655. .INDENT 3.5
  140656. .sp
  140657. .nf
  140658. .ft C
  140659. salt\-run winrepo.genrepo
  140660. salt winminion pkg.refresh_db
  140661. .ft P
  140662. .fi
  140663. .UNINDENT
  140664. .UNINDENT
  140665. .SS Packages management under Windows 2003
  140666. .sp
  140667. On Windows server 2003, you need to install optional Windows component "wmi
  140668. Windows installer provider" to have full list of installed packages. If you
  140669. don\(aqt have this, salt\-minion can\(aqt report some installed software.
  140670. .SS How Success and Failure are Reported
  140671. .sp
  140672. The install state/module function of the Windows package manager works roughly
  140673. as follows:
  140674. .INDENT 0.0
  140675. .IP 1. 3
  140676. Execute \fBpkg.list_pkgs\fP and store the result
  140677. .IP 2. 3
  140678. Check if any action needs to be taken. (i.e. compare required package
  140679. and version against \fBpkg.list_pkgs\fP results)
  140680. .IP 3. 3
  140681. If so, run the installer command.
  140682. .IP 4. 3
  140683. Execute \fBpkg.list_pkgs\fP and compare to the result stored from
  140684. before installation.
  140685. .IP 5. 3
  140686. Success/Failure/Changes will be reported based on the differences
  140687. between the original and final \fBpkg.list_pkgs\fP results.
  140688. .UNINDENT
  140689. .sp
  140690. If there are any problems in using the package manager it is likely due to the
  140691. data in your sls files not matching the difference between the pre and post
  140692. \fBpkg.list_pkgs\fP results.
  140693. .SS Windows\-specific Behaviour
  140694. .sp
  140695. Salt is capable of managing Windows systems, however due to various differences
  140696. between the operating systems, there are some things you need to keep in mind.
  140697. .sp
  140698. This document will contain any quirks that apply across Salt or generally across
  140699. multiple module functions. Any Windows\-specific behavior for particular module
  140700. functions will be documented in the module function documentation. Therefore
  140701. this document should be read in conjunction with the module function
  140702. documentation.
  140703. .SS Group parameter for files
  140704. .sp
  140705. Salt was originally written for managing Unix\-based systems, and therefore the
  140706. file module functions were designed around that security model. Rather than
  140707. trying to shoehorn that model on to Windows, Salt ignores these parameters and
  140708. makes non\-applicable module functions unavailable instead.
  140709. .sp
  140710. One of the commonly ignored parameters is the \fBgroup\fP parameter for managing
  140711. files. Under Windows, while files do have a \(aqprimary group\(aq property, this is
  140712. rarely used. It generally has no bearing on permissions unless intentionally
  140713. configured and is most commonly used to provide Unix compatibility (e.g.
  140714. Services For Unix, NFS services).
  140715. .sp
  140716. Because of this, any file module functions that typically require a group, do
  140717. not under Windows. Attempts to directly use file module functions that operate
  140718. on the group (e.g. \fBfile.chgrp\fP) will return a pseudo\-value and cause a log
  140719. message to appear. No group parameters will be acted on.
  140720. .sp
  140721. If you do want to access and change the \(aqprimary group\(aq property and understand
  140722. the implications, use the \fBfile.get_pgid\fP or \fBfile.get_pgroup\fP functions or
  140723. the \fBpgroup\fP parameter on the \fBfile.chown\fP module function.
  140724. .SS Dealing with case\-insensitive but case\-preserving names
  140725. .sp
  140726. Windows is case\-insensitive, but however preserves the case of names and it is
  140727. this preserved form that is returned from system functions. This causes some
  140728. issues with Salt because it assumes case\-sensitive names. These issues
  140729. generally occur in the state functions and can cause bizarre looking errors.
  140730. .sp
  140731. To avoid such issues, always pretend Windows is case\-sensitive and use the right
  140732. case for names, e.g. specify \fBuser=Administrator\fP instead of
  140733. \fBuser=administrator\fP\&.
  140734. .sp
  140735. Follow \fI\%issue #11801\fP for any changes to this behavior.
  140736. .SS Dealing with various username forms
  140737. .sp
  140738. Salt does not understand the various forms that Windows usernames can come in,
  140739. e.g. username, mydomain\eusername, \fI\%username@mydomain.tld\fP can all refer to the
  140740. same user. In fact, Salt generally only considers the raw username value, i.e.
  140741. the username without the domain or host information.
  140742. .sp
  140743. Using these alternative forms will likely confuse Salt and cause odd errors to
  140744. happen. Use only the raw username value in the correct case to avoid problems.
  140745. .sp
  140746. Follow \fI\%issue #11801\fP for any changes to this behavior.
  140747. .SS Specifying the None group
  140748. .sp
  140749. Each Windows system has built\-in _None_ group. This is the default \(aqprimary
  140750. group\(aq for files for users not on a domain environment.
  140751. .sp
  140752. Unfortunately, the word _None_ has special meaning in Python \- it is a special
  140753. value indicating \(aqnothing\(aq, similar to \fBnull\fP or \fBnil\fP in other languages.
  140754. .sp
  140755. To specify the None group, it must be specified in quotes, e.g.
  140756. \fB\&./salt \(aq*\(aq file.chpgrp C:\epath\eto\efile "\(aqNone\(aq"\fP\&.
  140757. .SS Symbolic link loops
  140758. .sp
  140759. Under Windows, if any symbolic link loops are detected or if there are too many
  140760. levels of symlinks (defaults to 64), an error is always raised.
  140761. .sp
  140762. For some functions, this behavior is different to the behavior on Unix
  140763. platforms. In general, avoid symlink loops on either platform.
  140764. .SH DEVELOPING SALT
  140765. .SS Overview
  140766. .sp
  140767. In its most typical use, Salt is a software application in which clients,
  140768. called "minions" can be commanded and controlled from a central command server
  140769. called a "master".
  140770. .sp
  140771. Commands are normally issued to the minions (via the master) by calling a
  140772. client script simply called, \(aqsalt\(aq.
  140773. .sp
  140774. Salt features a pluggable transport system to issue commands from a master to
  140775. minions. The default transport is ZeroMQ.
  140776. .SS Salt Client
  140777. .SS Overview
  140778. .sp
  140779. The salt client is run on the same machine as the Salt Master and communicates
  140780. with the salt\-master to issue commands and to receive the results and display
  140781. them to the user.
  140782. .sp
  140783. The primary abstraction for the salt client is called \(aqLocalClient\(aq.
  140784. .sp
  140785. When LocalClient wants to publish a command to minions, it connects to the
  140786. master by issuing a request to the master\(aqs ReqServer (TCP: 4506)
  140787. .sp
  140788. The LocalClient system listens to responses for its requests by listening to
  140789. the master event bus publisher (master_event_pub.ipc).
  140790. .SS Salt Master
  140791. .SS Overview
  140792. .sp
  140793. The salt\-master daemon runs on the designated Salt master and performs
  140794. functions such as authenticating minions, sending, and receiving requests
  140795. from connected minions and sending and receiving requests and replies to the
  140796. \(aqsalt\(aq CLI.
  140797. .SS Moving Pieces
  140798. .sp
  140799. When a Salt master starts up, a number of processes are started, all of which
  140800. are called \(aqsalt\-master\(aq in a process\-list but have various role categories.
  140801. .sp
  140802. Among those categories are:
  140803. .INDENT 0.0
  140804. .INDENT 3.5
  140805. .INDENT 0.0
  140806. .IP \(bu 2
  140807. Publisher
  140808. .IP \(bu 2
  140809. EventPublisher
  140810. .IP \(bu 2
  140811. MWorker
  140812. .UNINDENT
  140813. .UNINDENT
  140814. .UNINDENT
  140815. .SS Publisher
  140816. .sp
  140817. The Publisher process is responsible for sending commands over the designated
  140818. transport to connected minions. The Publisher is bound to the following:
  140819. .INDENT 0.0
  140820. .INDENT 3.5
  140821. .INDENT 0.0
  140822. .IP \(bu 2
  140823. TCP: port 4505
  140824. .IP \(bu 2
  140825. IPC: publish_pull.ipc
  140826. .UNINDENT
  140827. .UNINDENT
  140828. .UNINDENT
  140829. .sp
  140830. Each salt minion establishes a connection to the master Publisher.
  140831. .SS EventPublisher
  140832. .sp
  140833. The EventPublisher publishes master events out to any event listeners. It is
  140834. bound to the following:
  140835. .INDENT 0.0
  140836. .INDENT 3.5
  140837. .INDENT 0.0
  140838. .IP \(bu 2
  140839. IPC: master_event_pull.ipc
  140840. .IP \(bu 2
  140841. IPC: master_event_pub.ipc
  140842. .UNINDENT
  140843. .UNINDENT
  140844. .UNINDENT
  140845. .SS MWorker
  140846. .sp
  140847. Worker processes manage the back\-end operations for the Salt Master.
  140848. .sp
  140849. The number of workers is equivalent to the number of \(aqworker_threads\(aq
  140850. specified in the master configuration and is always at least one.
  140851. .sp
  140852. Workers are bound to the following:
  140853. .INDENT 0.0
  140854. .INDENT 3.5
  140855. .INDENT 0.0
  140856. .IP \(bu 2
  140857. IPC: workers.ipc
  140858. .UNINDENT
  140859. .UNINDENT
  140860. .UNINDENT
  140861. .SS ReqServer
  140862. .sp
  140863. The Salt request server takes requests and distributes them to available MWorker
  140864. processes for processing. It also receives replies back from minions.
  140865. .INDENT 0.0
  140866. .TP
  140867. .B The ReqServer is bound to the following:
  140868. .INDENT 7.0
  140869. .IP \(bu 2
  140870. TCP: 4506
  140871. .IP \(bu 2
  140872. IPC: workers.ipc
  140873. .UNINDENT
  140874. .UNINDENT
  140875. .sp
  140876. Each salt minion establishes a connection to the master ReqServer.
  140877. .SS Job Flow
  140878. .sp
  140879. The Salt master works by always publishing commands to all connected minions
  140880. and the minions decide if the command is meant for them by checking themselves
  140881. against the command target.
  140882. .sp
  140883. The typical lifecycle of a salt job from the perspective of the master
  140884. might be as follows:
  140885. .INDENT 0.0
  140886. .IP 1. 4
  140887. A command is issued on the CLI. For example, \(aqsalt my_minion test.version\(aq.
  140888. .IP 2. 4
  140889. The \(aqsalt\(aq command uses LocalClient to generate a request to the salt master
  140890. by connecting to the ReqServer on \fI\%TCP:4506\fP and issuing the job.
  140891. .IP 3. 4
  140892. The salt\-master ReqServer sees the request and passes it to an available
  140893. MWorker over workers.ipc.
  140894. .IP 4. 4
  140895. A worker picks up the request and handles it. First, it checks to ensure
  140896. that the requested user has permissions to issue the command. Then, it sends
  140897. the publish command to all connected minions. For the curious, this happens
  140898. in ClearFuncs.publish().
  140899. .IP 5. 4
  140900. The worker announces on the master event bus that it is about to publish a
  140901. job to connected minions. This happens by placing the event on the master
  140902. event bus (master_event_pull.ipc) where the EventPublisher picks it up and
  140903. distributes it to all connected event listeners on master_event_pub.ipc.
  140904. .IP 6. 4
  140905. The message to the minions is encrypted and sent to the Publisher via IPC on
  140906. publish_pull.ipc.
  140907. .IP 7. 4
  140908. Connected minions have a TCP session established with the Publisher on TCP
  140909. port 4505 where they await commands. When the Publisher receives the job
  140910. over publish_pull, it sends the jobs across the wire to the minions for
  140911. processing.
  140912. .IP 8. 4
  140913. After the minions receive the request, they decrypt it and perform any
  140914. requested work, if they determine that they are targeted to do so.
  140915. .IP 9. 4
  140916. When the minion is ready to respond, it publishes the result of its job back
  140917. to the master by sending the encrypted result back to the master on TCP 4506
  140918. where it is again picked up by the ReqServer and forwarded to an available
  140919. MWorker for processing. (Again, this happens by passing this message across
  140920. workers.ipc to an available worker.)
  140921. .IP 10. 4
  140922. When the MWorker receives the job it decrypts it and fires an event onto
  140923. the master event bus (master_event_pull.ipc). (Again for the curious, this
  140924. happens in AESFuncs._return().
  140925. .IP 11. 4
  140926. The EventPublisher sees this event and re\-publishes it on the bus to all
  140927. connected listeners of the master event bus (on master_event_pub.ipc). This
  140928. is where the LocalClient has been waiting, listening to the event bus for
  140929. minion replies. It gathers the job and stores the result.
  140930. .IP 12. 4
  140931. When all targeted minions have replied or the timeout has been exceeded,
  140932. the salt client displays the results of the job to the user on the CLI.
  140933. .UNINDENT
  140934. .SS Salt Minion
  140935. .SS Overview
  140936. .sp
  140937. The salt\-minion is a single process that sits on machines to be managed by
  140938. Salt. It can either operate as a stand\-alone daemon which accepts commands
  140939. locally via \(aqsalt\-call\(aq or it can connect back to a master and receive commands
  140940. remotely.
  140941. .sp
  140942. When starting up, salt minions connect \fIback\fP to a master defined in the minion
  140943. config file. They connect to two ports on the master:
  140944. .INDENT 0.0
  140945. .INDENT 3.5
  140946. .INDENT 0.0
  140947. .IP \(bu 2
  140948. .INDENT 2.0
  140949. .TP
  140950. .B TCP: 4505
  140951. This is the connection to the master Publisher. It is on this port that
  140952. the minion receives jobs from the master.
  140953. .UNINDENT
  140954. .IP \(bu 2
  140955. .INDENT 2.0
  140956. .TP
  140957. .B TCP: 4506
  140958. This is the connection to the master ReqServer. It is on this port that
  140959. the minion sends job results back to the master.
  140960. .UNINDENT
  140961. .UNINDENT
  140962. .UNINDENT
  140963. .UNINDENT
  140964. .SS Event System
  140965. .sp
  140966. Similar to the master, a salt\-minion has its own event system that operates
  140967. over IPC by default. The minion event system operates on a push/pull system
  140968. with IPC files at minion_event_<unique_id>_pub.ipc and
  140969. minion_event_<unique_id>_pull.ipc.
  140970. .sp
  140971. The astute reader might ask why have an event bus at all with a single\-process
  140972. daemon. The answer is that the salt\-minion may fork other processes as required
  140973. to do the work without blocking the main salt\-minion process and this
  140974. necessitates a mechanism by which those processes can communicate with each
  140975. other. Secondarily, this provides a bus by which any user with sufficient
  140976. permissions can read or write to the bus as a common interface with the salt
  140977. minion.
  140978. .SS Minion Job Flow
  140979. .sp
  140980. When a salt minion starts up, it attempts to connect to the Publisher and the
  140981. ReqServer on the salt master. It then attempts to authenticate and once the
  140982. minion has successfully authenticated, it simply listens for jobs.
  140983. .sp
  140984. Jobs normally come either come from the \(aqsalt\-call\(aq script run by a local user
  140985. on the salt minion or they can come directly from a master.
  140986. .sp
  140987. The job flow on a minion, coming from the master via a \(aqsalt\(aq command is as
  140988. follows:
  140989. .sp
  140990. 1) A master publishes a job that is received by a minion as outlined by the
  140991. master\(aqs job flow above.
  140992. 2) The minion is polling its receive socket that\(aqs connected to the master
  140993. Publisher (TCP 4505 on master). When it detects an incoming message, it picks it
  140994. up from the socket and decrypts it.
  140995. 3) A new minion process or thread is created and provided with the contents of the
  140996. decrypted message. The _thread_return() method is provided with the contents of
  140997. the received message.
  140998. 4) The new minion thread is created. The _thread_return() function starts up
  140999. and actually calls out to the requested function contained in the job.
  141000. 5) The requested function runs and returns a result. [Still in thread.]
  141001. 6) The result of the function that\(aqs run is encrypted and returned to the
  141002. master\(aqs ReqServer (TCP 4506 on master). [Still in thread.]
  141003. 7) Thread exits. Because the main thread was only blocked for the time that it
  141004. took to initialize the worker thread, many other requests could have been
  141005. received and processed during this time.
  141006. .SS A Note on ClearFuncs vs. AESFuncs
  141007. .sp
  141008. A common source of confusion is determining when messages are passed in the
  141009. clear and when they are passed using encryption. There are two rules governing
  141010. this behaviour:
  141011. .sp
  141012. 1) ClearFuncs is used for intra\-master communication and during the initial
  141013. authentication handshake between a minion and master during the key exchange.
  141014. 2) AESFuncs is used everywhere else.
  141015. .SS Changelog
  141016. .sp
  141017. With the addition of \fI\%SEP 01\fP the \fI\%keepachangelog\fP format was introduced into
  141018. our CHANGELOG.md file. The Salt project is using the \fI\%towncrier\fP tool to manage
  141019. the CHANGELOG.md file. The reason this tool was added to manage the changelog
  141020. was because we were previously managing the file manually and it would cause
  141021. many merge conflicts. This tool allows us to add changelog entries into separate
  141022. files and before a release we simply need to run \fBtowncrier \-\-version=<version>\fP
  141023. for it to compile the changelog correctly.
  141024. .SS How do I add a changelog entry
  141025. .sp
  141026. To add a changelog entry you will need to add a file in the \fIchangelog\fP directory.
  141027. The file name should follow the syntax \fB<issue #>.<type>\fP\&.
  141028. .sp
  141029. The types are in alignment with keepachangelog:
  141030. .INDENT 0.0
  141031. .INDENT 3.5
  141032. .INDENT 0.0
  141033. .TP
  141034. .B removed:
  141035. any features that have been removed
  141036. .TP
  141037. .B deprecated:
  141038. any features that will soon be removed
  141039. .TP
  141040. .B changed:
  141041. any changes in current existing features
  141042. .TP
  141043. .B fixed:
  141044. any bug fixes
  141045. .TP
  141046. .B added:
  141047. any new features added
  141048. .UNINDENT
  141049. .UNINDENT
  141050. .UNINDENT
  141051. .sp
  141052. For example if you are fixing a bug for issue number #1234 your filename would
  141053. look like this: changelog/1234.fixed. The contents of the file should contain
  141054. a summary of what you are fixing. If there is a legitimate reason to not include
  141055. an issue number with a given contribution you can add the PR number as the file
  141056. name (\fB<PR #>.<type>\fP).
  141057. .sp
  141058. If your PR does not align with any of the types, then you do not need to add a
  141059. changelog entry.
  141060. .SS How to generate the changelog
  141061. .sp
  141062. This step is only used when we need to generate the changelog right before releasing.
  141063. You should NOT run towncrier on your PR, unless you are preparing the final PR
  141064. to update the changelog before a release.
  141065. .sp
  141066. You can run the \fItowncrier\fP tool directly or you can use nox to help run the command
  141067. and ensure towncrier is installed in a virtual environment. The instructions below
  141068. will detail both approaches.
  141069. .sp
  141070. If you want to see what output towncrier will produce before generating the change log
  141071. you can run towncrier in draft mode:
  141072. .INDENT 0.0
  141073. .INDENT 3.5
  141074. .sp
  141075. .nf
  141076. .ft C
  141077. towncrier \-\-draft \-\-version=3001
  141078. .ft P
  141079. .fi
  141080. .UNINDENT
  141081. .UNINDENT
  141082. .INDENT 0.0
  141083. .INDENT 3.5
  141084. .sp
  141085. .nf
  141086. .ft C
  141087. nox \-e \(aqchangelog(draft=True)\(aq \-\- 3000.1
  141088. .ft P
  141089. .fi
  141090. .UNINDENT
  141091. .UNINDENT
  141092. .sp
  141093. Version will need to be set to whichever version we are about to release. Once you are
  141094. confident the draft output looks correct you can now generate the changelog by running:
  141095. .INDENT 0.0
  141096. .INDENT 3.5
  141097. .sp
  141098. .nf
  141099. .ft C
  141100. towncrier \-\-version=3001
  141101. .ft P
  141102. .fi
  141103. .UNINDENT
  141104. .UNINDENT
  141105. .INDENT 0.0
  141106. .INDENT 3.5
  141107. .sp
  141108. .nf
  141109. .ft C
  141110. nox \-e \(aqchangelog(draft=False)\(aq \-\- 3000.1
  141111. .ft P
  141112. .fi
  141113. .UNINDENT
  141114. .UNINDENT
  141115. .sp
  141116. After this is run towncrier will automatically remove all the files in the changelog directory.
  141117. .SS Contributing
  141118. .sp
  141119. There is a great need for contributions to Salt and patches are welcome! The
  141120. goal here is to make contributions clear, make sure there is a trail for where
  141121. the code has come from, and most importantly, to give credit where credit is
  141122. due!
  141123. .sp
  141124. There are a number of ways to contribute to Salt development, including (but
  141125. not limited to):
  141126. .INDENT 0.0
  141127. .IP \(bu 2
  141128. filing well\-written bug reports
  141129. .IP \(bu 2
  141130. enhancing the documentation
  141131. .IP \(bu 2
  141132. providing workarounds, patches, and other code without tests
  141133. .IP \(bu 2
  141134. engaging in constructive discussion
  141135. .IP \(bu 2
  141136. helping out in \fI\%#salt on Freenode\fP,
  141137. the \fI\%Community Slack\fP,
  141138. the \fI\%salt\-users\fP mailing list,
  141139. a \fI\%SaltStack meetup\fP,
  141140. or \fI\%Server Fault\fP\&.
  141141. .IP \(bu 2
  141142. telling others about problems you solved with Salt
  141143. .UNINDENT
  141144. .sp
  141145. If this or other Salt documentation is unclear, please review Writing
  141146. Salt Documentation\&. PRs are welcome!
  141147. .SS Quickstart
  141148. .sp
  141149. If you just want to get started before reading the rest of this guide, you can
  141150. get the process started by running the following:
  141151. .INDENT 0.0
  141152. .INDENT 3.5
  141153. .sp
  141154. .nf
  141155. .ft C
  141156. python3 \-m pip install \-\-user pre\-commit
  141157. git clone \-\-origin upstream https://github.com/saltstack/salt.git
  141158. cd salt
  141159. pre\-commit install
  141160. .ft P
  141161. .fi
  141162. .UNINDENT
  141163. .UNINDENT
  141164. .sp
  141165. While those commands are running, finish reading the rest of this guide.
  141166. .SS Pre\-commit
  141167. .sp
  141168. To reduce friction during the development process, SaltStack uses \fI\%pre\-commit\fP\&. This tool adds pre\-commit hooks to git to automate several
  141169. processes that used to be manual. Rather than having to remember to run several
  141170. different tools before you commit, you only have to run \fBgit commit\fP, and you
  141171. will be notified about style and lint issues before you ever open a PR.
  141172. .sp
  141173. \fBWARNING:\fP
  141174. .INDENT 0.0
  141175. .INDENT 3.5
  141176. Currently there is an issue with the pip\-tools\-compile pre\-commit hook on windows.
  141177. The details around this issue are included here:
  141178. \fI\%https://github.com/saltstack/salt/issues/56642\fP\&.
  141179. Please ensure you export \fBSKIP=pip\-tools\-compile\fP to skip pip\-tools\-compile.
  141180. .UNINDENT
  141181. .UNINDENT
  141182. .SS Salt Coding Style
  141183. .sp
  141184. After the 3000 release, SaltStack is \fI\%joining the ranks\fP of projects
  141185. in adopting the \fI\%Black code formatter\fP in order to ease the adoption
  141186. of a unified code formatting style.
  141187. .sp
  141188. Where Black is silent, SaltStack has its own coding style guide that informs
  141189. contributors on various style points. Please review the Salt Coding Style documentation for information about Salt\(aqs particular coding
  141190. patterns.
  141191. .sp
  141192. Within the Salt Coding Style documentation, there is a
  141193. section about running Salt\(aqs \fB\&.testing.pylintrc\fP file. SaltStack recommends
  141194. running the \fB\&.testing.pylintrc\fP file on any files you are changing with your
  141195. code contribution before submitting a pull request to Salt\(aqs repository.
  141196. .sp
  141197. If you\(aqve installed \fBpre\-commit\fP, this will automatically happen before each
  141198. commit. Otherwise, see the Linting documentation
  141199. for more information.
  141200. .SS Copyright Headers
  141201. .sp
  141202. Copyright headers are not needed for files in the Salt project. Files that have
  141203. existing copyright headers should be considered legacy and not an example to
  141204. follow.
  141205. .SS New Features
  141206. .sp
  141207. Feature requests through Salt go through a multi\-stage process.
  141208. .sp
  141209. All features are added to major releases only. Salt does not accept
  141210. feature additions in bug\-fix branches. Therefore, all feature work
  141211. is done exclusively in the develop branch.
  141212. .sp
  141213. To formally propose a new feature, the proposal must take the form
  141214. of an RFC. To create an RFC, copy the template file found in the rfcs/
  141215. directory of the Salt codebase and fill the outline with the reasoning
  141216. for the new feature and with implementation details.
  141217. .sp
  141218. Upon submitting the written RFC via a pull\-request, it will be reviewed
  141219. by the core development team as well as the community. Once discussed
  141220. and agreed upon, the RFC may be merged.
  141221. .sp
  141222. A merged RFC indicates that a feature has been accepted and will be
  141223. added to an upcoming release of Salt.
  141224. .SS Sending a GitHub pull request
  141225. .sp
  141226. Sending pull requests on GitHub is the preferred method for receiving
  141227. contributions. The workflow advice below mirrors \fI\%GitHub\(aqs own guide\fP and is well worth reading.
  141228. .INDENT 0.0
  141229. .IP 1. 3
  141230. \fI\%Fork saltstack/salt\fP on GitHub.
  141231. .IP 2. 3
  141232. Make a local clone of your fork. (Skip this step if you followed
  141233. the Quickstart)
  141234. .INDENT 3.0
  141235. .INDENT 3.5
  141236. .sp
  141237. .nf
  141238. .ft C
  141239. git clone git@github.com:my\-account/salt.git
  141240. cd salt
  141241. .ft P
  141242. .fi
  141243. .UNINDENT
  141244. .UNINDENT
  141245. .IP 3. 3
  141246. Add \fI\%saltstack/salt\fP as a git remote.
  141247. .INDENT 3.0
  141248. .INDENT 3.5
  141249. .sp
  141250. .nf
  141251. .ft C
  141252. git remote add upstream https://github.com/saltstack/salt.git
  141253. .ft P
  141254. .fi
  141255. .UNINDENT
  141256. .UNINDENT
  141257. .sp
  141258. If you followed the Quickstart, you\(aqll add your own remote instead
  141259. .INDENT 3.0
  141260. .INDENT 3.5
  141261. .sp
  141262. .nf
  141263. .ft C
  141264. git remote add my\-account git@github.com:my\-account/salt.git
  141265. .ft P
  141266. .fi
  141267. .UNINDENT
  141268. .UNINDENT
  141269. .IP 4. 3
  141270. Create a new branch in your clone.
  141271. .sp
  141272. \fBNOTE:\fP
  141273. .INDENT 3.0
  141274. .INDENT 3.5
  141275. A branch should have one purpose. For example, "Fix bug X," or "Add
  141276. feature Y". Multiple unrelated fixes and/or features should be
  141277. isolated into separate branches.
  141278. .UNINDENT
  141279. .UNINDENT
  141280. .INDENT 3.0
  141281. .INDENT 3.5
  141282. .sp
  141283. .nf
  141284. .ft C
  141285. git fetch upstream
  141286. git checkout \-b fix\-broken\-thing upstream/master
  141287. .ft P
  141288. .fi
  141289. .UNINDENT
  141290. .UNINDENT
  141291. .IP 5. 3
  141292. Edit and commit changes to your branch.
  141293. .INDENT 3.0
  141294. .INDENT 3.5
  141295. .sp
  141296. .nf
  141297. .ft C
  141298. vim path/to/file1 path/to/file2 tests/test_file1.py tests/test_file2.py
  141299. git diff
  141300. git add path/to/file1 path/to/file2
  141301. git commit
  141302. .ft P
  141303. .fi
  141304. .UNINDENT
  141305. .UNINDENT
  141306. .sp
  141307. Write a short, descriptive commit title and a longer commit message if
  141308. necessary. Use an imperative style for the title.
  141309. .sp
  141310. GOOD
  141311. .INDENT 3.0
  141312. .INDENT 3.5
  141313. .sp
  141314. .nf
  141315. .ft C
  141316. Fix broken things in file1 and file2
  141317. Fixes #31337
  141318. We needed to make this change because the underlying dependency
  141319. changed. Now this uses the up\-to\-date API.
  141320. # Please enter the commit message for your changes. Lines starting
  141321. # with \(aq#\(aq will be ignored, and an empty message aborts the commit.
  141322. # On branch fix\-broken\-thing
  141323. # Changes to be committed:
  141324. # modified: path/to/file1
  141325. # modified: path/to/file2
  141326. .ft P
  141327. .fi
  141328. .UNINDENT
  141329. .UNINDENT
  141330. .sp
  141331. BAD
  141332. .INDENT 3.0
  141333. .INDENT 3.5
  141334. .sp
  141335. .nf
  141336. .ft C
  141337. Fixes broken things
  141338. # Please enter the commit message for your changes. Lines starting
  141339. # with \(aq#\(aq will be ignored, and an empty message aborts the commit.
  141340. # On branch fix\-broken\-thing
  141341. # Changes to be committed:
  141342. # modified: path/to/file1
  141343. # modified: path/to/file2
  141344. .ft P
  141345. .fi
  141346. .UNINDENT
  141347. .UNINDENT
  141348. .sp
  141349. Taking a few moments to explain \fIwhy\fP you made a change will save time
  141350. and effort in the future when others come to investigate a change. A
  141351. clear explanation of why something changed can help future developers
  141352. avoid introducing bugs, or breaking an edge case.
  141353. .sp
  141354. \fBNOTE:\fP
  141355. .INDENT 3.0
  141356. .INDENT 3.5
  141357. If your change fixes a bug or implements a feature already filed in the
  141358. \fI\%issue tracker\fP, be sure to
  141359. \fI\%reference the issue\fP
  141360. number in the commit message body.
  141361. .UNINDENT
  141362. .UNINDENT
  141363. .sp
  141364. If you get stuck, there are many introductory Git resources on
  141365. \fI\%https://help.github.com/en\fP\&.
  141366. .IP 6. 3
  141367. Push your locally\-committed changes to your GitHub fork.
  141368. .INDENT 3.0
  141369. .INDENT 3.5
  141370. .sp
  141371. .nf
  141372. .ft C
  141373. git push \-u origin fix\-broken\-thing
  141374. .ft P
  141375. .fi
  141376. .UNINDENT
  141377. .UNINDENT
  141378. .sp
  141379. or
  141380. .INDENT 3.0
  141381. .INDENT 3.5
  141382. .sp
  141383. .nf
  141384. .ft C
  141385. git push \-u origin add\-cool\-feature
  141386. .ft P
  141387. .fi
  141388. .UNINDENT
  141389. .UNINDENT
  141390. .sp
  141391. \fBNOTE:\fP
  141392. .INDENT 3.0
  141393. .INDENT 3.5
  141394. You may want to rebase before pushing to work out any potential
  141395. conflicts:
  141396. .INDENT 0.0
  141397. .INDENT 3.5
  141398. .sp
  141399. .nf
  141400. .ft C
  141401. git fetch upstream
  141402. git rebase upstream/master fix\-broken\-thing
  141403. git push \-u origin fix\-broken\-thing
  141404. .ft P
  141405. .fi
  141406. .UNINDENT
  141407. .UNINDENT
  141408. .sp
  141409. If you do rebase, and the push is rejected with a
  141410. \fB(non\-fast\-forward)\fP comment, then run \fBgit status\fP\&. You will
  141411. likely see a message about the branches diverging:
  141412. .INDENT 0.0
  141413. .INDENT 3.5
  141414. .sp
  141415. .nf
  141416. .ft C
  141417. On branch fix\-broken\-thing
  141418. Your branch and \(aqorigin/fix\-broken\-thing\(aq have diverged,
  141419. and have 1 and 2 different commits each, respectively.
  141420. (use "git pull" to merge the remote branch into yours)
  141421. nothing to commit, working tree clean
  141422. .ft P
  141423. .fi
  141424. .UNINDENT
  141425. .UNINDENT
  141426. .sp
  141427. Do \fBNOT\fP perform a \fBgit pull\fP or \fBgit merge\fP here. Instead, add
  141428. \fB\-\-force\-with\-lease\fP to the end of the \fBgit push\fP command to get the changes
  141429. pushed to your fork. Pulling or merging, while they will resolve the
  141430. non\-fast\-forward issue, will likely add extra commits to the pull
  141431. request which were not part of your changes.
  141432. .UNINDENT
  141433. .UNINDENT
  141434. .IP 7. 3
  141435. Find the branch on your GitHub salt fork.
  141436. .sp
  141437. \fI\%https://github.com/my\-account/salt/branches/fix\-broken\-thing\fP
  141438. .IP 8. 3
  141439. Open a new pull request.
  141440. .sp
  141441. Click on \fBPull Request\fP on the right near the top of the page,
  141442. .sp
  141443. \fI\%https://github.com/my\-account/salt/pull/new/fix\-broken\-thing\fP
  141444. .INDENT 3.0
  141445. .IP 1. 3
  141446. Choose \fBmaster\fP as the base Salt branch.
  141447. .IP 2. 3
  141448. Review that the proposed changes are what you expect.
  141449. .IP 3. 3
  141450. Write a descriptive comment. If you added good information to your git
  141451. commit message, they will already be present here. Include links to
  141452. related issues (e.g. \(aqFixes #31337.\(aq) in the comment field.
  141453. .IP 4. 3
  141454. Click \fBCreate pull request\fP\&.
  141455. .UNINDENT
  141456. .IP 9. 3
  141457. Salt project members will review your pull request and automated tests will
  141458. run on it.
  141459. .sp
  141460. If you recognize any test failures as being related to your proposed
  141461. changes or if a reviewer asks for modifications:
  141462. .INDENT 3.0
  141463. .IP 1. 3
  141464. Make the new changes in your local clone on the same local branch.
  141465. .IP 2. 3
  141466. Push the branch to GitHub again using the same commands as before.
  141467. .IP 3. 3
  141468. New and updated commits will be added to the pull request automatically.
  141469. .IP 4. 3
  141470. Feel free to add a comment to the discussion.
  141471. .UNINDENT
  141472. .UNINDENT
  141473. .sp
  141474. \fBNOTE:\fP
  141475. .INDENT 0.0
  141476. .INDENT 3.5
  141477. Jenkins
  141478. .sp
  141479. Pull request against \fI\%saltstack/salt\fP are automatically tested on a
  141480. variety of operating systems and configurations. On average these tests
  141481. take a couple of hours. Depending on your GitHub notification settings
  141482. you may also receive an email message about the test results.
  141483. .sp
  141484. Test progress and results can be found at \fI\%https://jenkinsci.saltstack.com/\fP\&.
  141485. .UNINDENT
  141486. .UNINDENT
  141487. .SS Salt\(aqs Branch Topology
  141488. .sp
  141489. Salt will only have one active branch \- \fBmaster\fP\&.
  141490. This will include bug fixes, features and CVE “Common Vulnerabilities and Exposures”.
  141491. .sp
  141492. The release will be cut from the master when the time comes for a new release,
  141493. which should be every 3 to 4 months.
  141494. .sp
  141495. To be able to merge code:
  141496. .INDENT 0.0
  141497. .INDENT 3.5
  141498. .INDENT 0.0
  141499. .IP 1. 3
  141500. The code must have a well\-written test.
  141501. Note that you are only expected to write tests for what you did, not the whole modules or function.
  141502. .IP 2. 3
  141503. All tests must pass.
  141504. .UNINDENT
  141505. .UNINDENT
  141506. .UNINDENT
  141507. .sp
  141508. The SaltStack employee that reviews your pull request might request changes or deny the pull request for various reasons.
  141509. .sp
  141510. Salt uses a typical branch strategy \- \fBmaster\fP is the next expected release.
  141511. Code should only make it to \fBmaster\fP once it\(aqs production ready. This means
  141512. that typical changes (fixes, features) should have accompanying tests.
  141513. .SS Closing GitHub issues from commits
  141514. .sp
  141515. SaltStack encourages using \fI\%the magic keywords to close a GitHub issue\fP\&. These should appear in the commit message text
  141516. directly.
  141517. .SS Release Naming Convention
  141518. .sp
  141519. A new convention will start when Salt releases Salt 3000.
  141520. Every new release name will increment by one ‘Salt last_release_number + 1’.
  141521. .sp
  141522. This naming convention is very different from past releases, which was \(aqYYYY.MM.PATCH\(aq.
  141523. .SS Handling CVE
  141524. .sp
  141525. If a CVE is discovered, Salt will create a new release that \fBonly\fP contains the tests and patch for the CVE.
  141526. This method should improve the upgrade process by reducing the chances of breaking something.
  141527. .SS Backporting Pull Requests
  141528. .sp
  141529. On rare occasions, a serious bug will be found in the middle of a release
  141530. cycle. These bugs will require a point release. Contributors should still
  141531. submit fixes directly to \fBmaster\fP, but they should also call attention to the
  141532. fact that it addresses a critical issue and will need to be back\-ported.
  141533. .SS Keeping Salt Forks in Sync
  141534. .sp
  141535. Salt advances quickly. It is therefore critical to pull upstream changes from
  141536. upstream into your fork on a regular basis. Nothing is worse than putting hard
  141537. work into a pull request only to see bunches of merge conflicts because it has
  141538. diverged too far from upstream.
  141539. .sp
  141540. \fBSEE ALSO:\fP
  141541. .INDENT 0.0
  141542. .INDENT 3.5
  141543. \fI\%GitHub Fork a Repo Guide\fP
  141544. .UNINDENT
  141545. .UNINDENT
  141546. .sp
  141547. The following assumes \fBorigin\fP is the name of your fork and \fBupstream\fP is
  141548. the name of the main \fI\%saltstack/salt\fP repository.
  141549. .INDENT 0.0
  141550. .IP 1. 3
  141551. View existing remotes.
  141552. .INDENT 3.0
  141553. .INDENT 3.5
  141554. .sp
  141555. .nf
  141556. .ft C
  141557. git remote \-v
  141558. .ft P
  141559. .fi
  141560. .UNINDENT
  141561. .UNINDENT
  141562. .IP 2. 3
  141563. Add the \fBupstream\fP remote.
  141564. .INDENT 3.0
  141565. .INDENT 3.5
  141566. .sp
  141567. .nf
  141568. .ft C
  141569. # For ssh github
  141570. git remote add upstream git@github.com:saltstack/salt.git
  141571. # For https github
  141572. git remote add upstream https://github.com/saltstack/salt.git
  141573. .ft P
  141574. .fi
  141575. .UNINDENT
  141576. .UNINDENT
  141577. .IP 3. 3
  141578. Pull upstream changes into your clone.
  141579. .INDENT 3.0
  141580. .INDENT 3.5
  141581. .sp
  141582. .nf
  141583. .ft C
  141584. git fetch upstream
  141585. .ft P
  141586. .fi
  141587. .UNINDENT
  141588. .UNINDENT
  141589. .IP 4. 3
  141590. Update your copy of the \fBmaster\fP branch.
  141591. .INDENT 3.0
  141592. .INDENT 3.5
  141593. .sp
  141594. .nf
  141595. .ft C
  141596. git checkout master
  141597. git merge \-\-ff\-only upstream/master
  141598. .ft P
  141599. .fi
  141600. .UNINDENT
  141601. .UNINDENT
  141602. .sp
  141603. If Git complains that a fast\-forward merge is not possible, you have local
  141604. commits.
  141605. .INDENT 3.0
  141606. .IP \(bu 2
  141607. Run \fBgit pull \-\-rebase origin master\fP to rebase your changes on top of
  141608. the upstream changes.
  141609. .IP \(bu 2
  141610. Or, run \fBgit branch <branch\-name>\fP to create a new branch with your
  141611. commits. You will then need to reset your \fBmaster\fP branch before
  141612. updating it with the changes from upstream.
  141613. .UNINDENT
  141614. .sp
  141615. If Git complains that local files will be overwritten, you have changes to
  141616. files in your working directory. Run \fBgit status\fP to see the files in
  141617. question.
  141618. .IP 5. 3
  141619. Update your fork.
  141620. .INDENT 3.0
  141621. .INDENT 3.5
  141622. .sp
  141623. .nf
  141624. .ft C
  141625. git push origin master
  141626. .ft P
  141627. .fi
  141628. .UNINDENT
  141629. .UNINDENT
  141630. .IP 6. 3
  141631. Repeat the previous two steps for any other branches you work with, such as
  141632. the current release branch.
  141633. .UNINDENT
  141634. .SS Posting patches to the mailing list
  141635. .sp
  141636. Patches will also be accepted by email. Format patches using \fI\%git
  141637. format\-patch\fP and send them to the \fI\%salt\-users\fP mailing list. The contributor
  141638. will then get credit for the patch, and the Salt community will have an archive
  141639. of the patch and a place for discussion.
  141640. .SS Issue and Pull Request Labeling System
  141641. .sp
  141642. SaltStack uses several labeling schemes to help facilitate code contributions
  141643. and bug resolution. See the Labels and Milestones documentation for more information.
  141644. .SS Mentionbot
  141645. .sp
  141646. SaltStack runs a mention\-bot which notifies contributors who might be able
  141647. to help review incoming pull\-requests based on their past contribution to
  141648. files which are being changed.
  141649. .sp
  141650. If you do not wish to receive these notifications, please add your GitHub
  141651. handle to the blacklist line in the \fB\&.mention\-bot\fP file located in the
  141652. root of the Salt repository.
  141653. .SS Bootstrap Script Changes
  141654. .sp
  141655. Salt\(aqs Bootstrap Script, known as \fI\%bootstrap\-salt.sh\fP in the Salt repo, has its own
  141656. repository, contributing guidelines, and release cadence.
  141657. .sp
  141658. All changes to the Bootstrap Script should be made to \fI\%salt\-bootstrap repo\fP\&. Any
  141659. pull requests made to the \fI\%bootstrap\-salt.sh\fP file in the Salt repository will be
  141660. automatically overwritten upon the next stable release of the Bootstrap Script.
  141661. .sp
  141662. For more information on the release process or how to contribute to the Bootstrap
  141663. Script, see the Bootstrap Script\(aqs \fI\%Contributing Guidelines\fP\&.
  141664. .SS Deprecating Code
  141665. .sp
  141666. Salt should remain backwards compatible, though sometimes, this backwards
  141667. compatibility needs to be broken because a specific feature and/or solution is
  141668. no longer necessary or required. At first one might think, let me change this
  141669. code, it seems that it\(aqs not used anywhere else so it should be safe to remove.
  141670. Then, once there\(aqs a new release, users complain about functionality which was
  141671. removed and they where using it, etc. This should, at all costs, be avoided,
  141672. and, in these cases, \fIthat\fP specific code should be deprecated.
  141673. .sp
  141674. In order to give users enough time to migrate from the old code behavior to the
  141675. new behavior, the deprecation time frame should be carefully determined based
  141676. on the significance and complexity of the changes required by the user.
  141677. .sp
  141678. Salt feature releases are based on the Periodic Table. Any new features going
  141679. into the develop branch will be named after the next element in the Periodic
  141680. Table. For example, Beryllium was the feature release name of the develop
  141681. branch before the 2015.8 branch was tagged. At that point in time, any new
  141682. features going into the develop branch after 2015.8 was branched were part of
  141683. the Boron feature release.
  141684. .sp
  141685. A deprecation warning should be in place for at least two major releases before
  141686. the deprecated code and its accompanying deprecation warning are removed. More
  141687. time should be given for more complex changes. For example, if the current
  141688. release under development is \fBSodium\fP, the deprecated code and associated
  141689. warnings should remain in place and warn for at least \fBAluminum\fP\&.
  141690. .sp
  141691. To help in this deprecation task, salt provides
  141692. \fBsalt.utils.versions.warn_until\fP\&. The
  141693. idea behind this helper function is to show the deprecation warning to the user
  141694. until salt reaches the provided version. Once that provided version is equaled
  141695. \fBsalt.utils.versions.warn_until\fP will
  141696. raise a \fI\%RuntimeError\fP making salt stop its execution. This stoppage is
  141697. unpleasant and will remind the developer that the deprecation limit has been
  141698. reached and that the code can then be safely removed.
  141699. .sp
  141700. Consider the following example:
  141701. .INDENT 0.0
  141702. .INDENT 3.5
  141703. .sp
  141704. .nf
  141705. .ft C
  141706. def some_function(bar=False, foo=None):
  141707. if foo is not None:
  141708. salt.utils.versions.warn_until(
  141709. \(aqAluminum\(aq,
  141710. \(aqThe \e\(aqfoo\e\(aq argument has been deprecated and its \(aq
  141711. \(aqfunctionality removed, as such, its usage is no longer \(aq
  141712. \(aqrequired.\(aq
  141713. )
  141714. .ft P
  141715. .fi
  141716. .UNINDENT
  141717. .UNINDENT
  141718. .sp
  141719. Development begins on the \fBAluminum\fP release when the \fBMagnesium\fP branch is
  141720. forked from the develop branch. Once this occurs, all uses of the
  141721. \fBwarn_until\fP function targeting \fBAluminum\fP, along with the code they are
  141722. warning about should be removed from the code.
  141723. .SS Installing Salt for development
  141724. .sp
  141725. Clone the repository using:
  141726. .INDENT 0.0
  141727. .INDENT 3.5
  141728. .sp
  141729. .nf
  141730. .ft C
  141731. git clone https://github.com/saltstack/salt
  141732. .ft P
  141733. .fi
  141734. .UNINDENT
  141735. .UNINDENT
  141736. .sp
  141737. \fBNOTE:\fP
  141738. .INDENT 0.0
  141739. .INDENT 3.5
  141740. tags
  141741. .sp
  141742. Just cloning the repository is enough to work with Salt and make
  141743. contributions. However, fetching additional tags from git is required to
  141744. have Salt report the correct version for itself. To do this, first
  141745. add the git repository as an upstream source:
  141746. .INDENT 0.0
  141747. .INDENT 3.5
  141748. .sp
  141749. .nf
  141750. .ft C
  141751. git remote add upstream https://github.com/saltstack/salt
  141752. .ft P
  141753. .fi
  141754. .UNINDENT
  141755. .UNINDENT
  141756. .sp
  141757. Fetching tags is done with the git \(aqfetch\(aq utility:
  141758. .INDENT 0.0
  141759. .INDENT 3.5
  141760. .sp
  141761. .nf
  141762. .ft C
  141763. git fetch \-\-tags upstream
  141764. .ft P
  141765. .fi
  141766. .UNINDENT
  141767. .UNINDENT
  141768. .UNINDENT
  141769. .UNINDENT
  141770. .sp
  141771. Create a new \fI\%virtualenv\fP:
  141772. .INDENT 0.0
  141773. .INDENT 3.5
  141774. .sp
  141775. .nf
  141776. .ft C
  141777. virtualenv /path/to/your/virtualenv
  141778. .ft P
  141779. .fi
  141780. .UNINDENT
  141781. .UNINDENT
  141782. .sp
  141783. Avoid making your \fI\%virtualenv path too long\fP\&.
  141784. .sp
  141785. On Arch Linux, where Python 3 is the default installation of Python, use
  141786. the \fBvirtualenv2\fP command instead of \fBvirtualenv\fP\&.
  141787. .sp
  141788. On Gentoo you must use \fB\-\-system\-site\-packages\fP to enable pkg and portage_config
  141789. functionality
  141790. .sp
  141791. \fBNOTE:\fP
  141792. .INDENT 0.0
  141793. .INDENT 3.5
  141794. Using system Python modules in the virtualenv
  141795. .sp
  141796. To use already\-installed python modules in virtualenv (instead of having pip
  141797. download and compile new ones), run \fBvirtualenv \-\-system\-site\-packages\fP
  141798. Using this method eliminates the requirement to install the salt dependencies
  141799. again, although it does assume that the listed modules are all installed in the
  141800. system PYTHONPATH at the time of virtualenv creation.
  141801. .UNINDENT
  141802. .UNINDENT
  141803. .sp
  141804. \fBNOTE:\fP
  141805. .INDENT 0.0
  141806. .INDENT 3.5
  141807. Python development package
  141808. .sp
  141809. Be sure to install python devel package in order to install required Python
  141810. modules. In Debian/Ubuntu run \fBsudo apt\-get install \-y python\-dev\fP\&. In RedHat
  141811. based system install \fBpython\-devel\fP
  141812. .UNINDENT
  141813. .UNINDENT
  141814. .sp
  141815. Activate the virtualenv:
  141816. .INDENT 0.0
  141817. .INDENT 3.5
  141818. .sp
  141819. .nf
  141820. .ft C
  141821. source /path/to/your/virtualenv/bin/activate
  141822. .ft P
  141823. .fi
  141824. .UNINDENT
  141825. .UNINDENT
  141826. .sp
  141827. Install Salt (and dependencies) into the virtualenv:
  141828. .INDENT 0.0
  141829. .INDENT 3.5
  141830. .sp
  141831. .nf
  141832. .ft C
  141833. pip install pyzmq PyYAML pycrypto msgpack\-python jinja2 psutil futures tornado
  141834. pip install \-e ./salt # the path to the salt git clone from above
  141835. .ft P
  141836. .fi
  141837. .UNINDENT
  141838. .UNINDENT
  141839. .sp
  141840. \fBNOTE:\fP
  141841. .INDENT 0.0
  141842. .INDENT 3.5
  141843. Installing psutil
  141844. .sp
  141845. Python header files are required to build this module, otherwise the pip
  141846. install will fail. If your distribution separates binaries and headers into
  141847. separate packages, make sure that you have the headers installed. In most
  141848. Linux distributions which split the headers into their own package, this
  141849. can be done by installing the \fBpython\-dev\fP or \fBpython\-devel\fP package.
  141850. For other platforms, the package will likely be similarly named.
  141851. .UNINDENT
  141852. .UNINDENT
  141853. .sp
  141854. \fBNOTE:\fP
  141855. .INDENT 0.0
  141856. .INDENT 3.5
  141857. Installing dependencies on macOS.
  141858. .sp
  141859. You can install needed dependencies on macOS using homebrew or macports.
  141860. See macOS Installation
  141861. .UNINDENT
  141862. .UNINDENT
  141863. .sp
  141864. \fBWARNING:\fP
  141865. .INDENT 0.0
  141866. .INDENT 3.5
  141867. Installing on RedHat\-based Distros
  141868. .sp
  141869. If installing from pip (or from source using \fBsetup.py install\fP), be
  141870. advised that the \fByum\-utils\fP package is needed for Salt to manage
  141871. packages on RedHat\-based systems.
  141872. .UNINDENT
  141873. .UNINDENT
  141874. .SS Running a self\-contained development version
  141875. .sp
  141876. During development it is easiest to be able to run the Salt master and minion
  141877. that are installed in the virtualenv you created above, and also to have all
  141878. the configuration, log, and cache files contained in the virtualenv as well.
  141879. .sp
  141880. The \fB/path/to/your/virtualenv\fP referenced multiple times below is also
  141881. available in the variable \fB$VIRTUAL_ENV\fP once the virtual environment is
  141882. activated.
  141883. .sp
  141884. Copy the master and minion config files into your virtualenv:
  141885. .INDENT 0.0
  141886. .INDENT 3.5
  141887. .sp
  141888. .nf
  141889. .ft C
  141890. mkdir \-p /path/to/your/virtualenv/etc/salt/pki/{master,minion}
  141891. cp ./salt/conf/master ./salt/conf/minion /path/to/your/virtualenv/etc/salt/
  141892. .ft P
  141893. .fi
  141894. .UNINDENT
  141895. .UNINDENT
  141896. .sp
  141897. Edit the master config file:
  141898. .INDENT 0.0
  141899. .IP 1. 3
  141900. Uncomment and change the \fBuser: root\fP value to your own user.
  141901. .IP 2. 3
  141902. Uncomment and change the \fBroot_dir: /\fP value to point to
  141903. \fB/path/to/your/virtualenv\fP\&.
  141904. .IP 3. 3
  141905. Uncomment and change the \fBpki_dir: /etc/salt/pki/master\fP value to point to
  141906. \fB/path/to/your/virtualenv/etc/salt/pki/master\fP
  141907. .IP 4. 3
  141908. If you are running version 0.11.1 or older, uncomment, and change the
  141909. \fBpidfile: /var/run/salt\-master.pid\fP value to point to
  141910. \fB/path/to/your/virtualenv/salt\-master.pid\fP\&.
  141911. .IP 5. 3
  141912. If you are also running a non\-development version of Salt you will have to
  141913. change the \fBpublish_port\fP and \fBret_port\fP values as well.
  141914. .UNINDENT
  141915. .sp
  141916. Edit the minion config file:
  141917. .INDENT 0.0
  141918. .IP 1. 3
  141919. Repeat the edits you made in the master config for the \fBuser\fP and
  141920. \fBroot_dir\fP values as well as any port changes.
  141921. .IP 2. 3
  141922. Uncomment and change the \fBpki_dir: /etc/salt/pki/minion\fP value to point to
  141923. \fB/path/to/your/virtualenv/etc/salt/pki/minion\fP
  141924. .IP 3. 3
  141925. If you are running version 0.11.1 or older, uncomment, and change the
  141926. \fBpidfile: /var/run/salt\-minion.pid\fP value to point to
  141927. \fB/path/to/your/virtualenv/salt\-minion.pid\fP\&.
  141928. .IP 4. 3
  141929. Uncomment and change the \fBmaster: salt\fP value to point at \fBlocalhost\fP\&.
  141930. .IP 5. 3
  141931. Uncomment and change the \fBid:\fP value to something descriptive like
  141932. "saltdev". This isn\(aqt strictly necessary but it will serve as a reminder of
  141933. which Salt installation you are working with.
  141934. .IP 6. 3
  141935. If you changed the \fBret_port\fP value in the master config because you are
  141936. also running a non\-development version of Salt, then you will have to
  141937. change the \fBmaster_port\fP value in the minion config to match.
  141938. .UNINDENT
  141939. .sp
  141940. \fBNOTE:\fP
  141941. .INDENT 0.0
  141942. .INDENT 3.5
  141943. Using \fIsalt\-call\fP with a Standalone Minion
  141944. .sp
  141945. If you plan to run \fIsalt\-call\fP with this self\-contained development
  141946. environment in a masterless setup, you should invoke \fIsalt\-call\fP with
  141947. \fB\-c /path/to/your/virtualenv/etc/salt\fP so that salt can find the minion
  141948. config file. Without the \fB\-c\fP option, Salt finds its config files in
  141949. \fI/etc/salt\fP\&.
  141950. .UNINDENT
  141951. .UNINDENT
  141952. .sp
  141953. Start the master and minion, accept the minion\(aqs key, and verify your local Salt
  141954. installation is working:
  141955. .INDENT 0.0
  141956. .INDENT 3.5
  141957. .sp
  141958. .nf
  141959. .ft C
  141960. cd /path/to/your/virtualenv
  141961. salt\-master \-c ./etc/salt \-d
  141962. salt\-minion \-c ./etc/salt \-d
  141963. salt\-key \-c ./etc/salt \-L
  141964. salt\-key \-c ./etc/salt \-A
  141965. salt \-c ./etc/salt \(aq*\(aq test.version
  141966. .ft P
  141967. .fi
  141968. .UNINDENT
  141969. .UNINDENT
  141970. .sp
  141971. Running the master and minion in debug mode can be helpful when developing. To
  141972. do this, add \fB\-l debug\fP to the calls to \fBsalt\-master\fP and \fBsalt\-minion\fP\&.
  141973. If you would like to log to the console instead of to the log file, remove the
  141974. \fB\-d\fP\&.
  141975. .sp
  141976. \fBNOTE:\fP
  141977. .INDENT 0.0
  141978. .INDENT 3.5
  141979. Too long socket path?
  141980. .sp
  141981. Once the minion starts, you may see an error like the following:
  141982. .INDENT 0.0
  141983. .INDENT 3.5
  141984. .sp
  141985. .nf
  141986. .ft C
  141987. zmq.core.error.ZMQError: ipc path "/path/to/your/virtualenv/
  141988. var/run/salt/minion/minion_event_7824dcbcfd7a8f6755939af70b96249f_pub.ipc"
  141989. is longer than 107 characters (sizeof(sockaddr_un.sun_path)).
  141990. .ft P
  141991. .fi
  141992. .UNINDENT
  141993. .UNINDENT
  141994. .sp
  141995. This means that the path to the socket the minion is using is too long. This is
  141996. a system limitation, so the only workaround is to reduce the length of this
  141997. path. This can be done in a couple different ways:
  141998. .INDENT 0.0
  141999. .IP 1. 3
  142000. Create your virtualenv in a path that is short enough.
  142001. .IP 2. 3
  142002. Edit the \fBsock_dir\fP minion config variable and reduce its
  142003. length. Remember that this path is relative to the value you set in
  142004. \fBroot_dir\fP\&.
  142005. .UNINDENT
  142006. .sp
  142007. \fBNOTE:\fP The socket path is limited to 107 characters on Solaris and Linux,
  142008. and 103 characters on BSD\-based systems.
  142009. .UNINDENT
  142010. .UNINDENT
  142011. .sp
  142012. \fBNOTE:\fP
  142013. .INDENT 0.0
  142014. .INDENT 3.5
  142015. File descriptor limits
  142016. .sp
  142017. Ensure that the system open file limit is raised to at least 2047:
  142018. .INDENT 0.0
  142019. .INDENT 3.5
  142020. .sp
  142021. .nf
  142022. .ft C
  142023. # check your current limit
  142024. ulimit \-n
  142025. # raise the limit. persists only until reboot
  142026. # use \(aqlimit descriptors 2047\(aq for c\-shell
  142027. ulimit \-n 2047
  142028. .ft P
  142029. .fi
  142030. .UNINDENT
  142031. .UNINDENT
  142032. .sp
  142033. To set file descriptors on macOS, refer to the macOS Installation instructions.
  142034. .UNINDENT
  142035. .UNINDENT
  142036. .SS Changing Default Paths
  142037. .sp
  142038. Instead of updating your configuration files to point to the new root directory
  142039. and having to pass the new configuration directory path to all of Salt\(aqs CLI
  142040. tools, you can explicitly tweak the default system paths that Salt expects:
  142041. .INDENT 0.0
  142042. .INDENT 3.5
  142043. .sp
  142044. .nf
  142045. .ft C
  142046. GENERATE_SALT_SYSPATHS=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142047. \-e ./salt # the path to the salt git clone from above
  142048. .ft P
  142049. .fi
  142050. .UNINDENT
  142051. .UNINDENT
  142052. .sp
  142053. You can now call all of Salt\(aqs CLI tools without explicitly passing the configuration directory.
  142054. .SS Additional Options
  142055. .sp
  142056. If you want to distribute your virtualenv, you probably don\(aqt want to include
  142057. Salt\(aqs clone \fB\&.git/\fP directory, and, without it, Salt won\(aqt report the
  142058. accurate version. You can tell \fBsetup.py\fP to generate the hardcoded version
  142059. information which is distributable:
  142060. .INDENT 0.0
  142061. .INDENT 3.5
  142062. .sp
  142063. .nf
  142064. .ft C
  142065. GENERATE_SALT_SYSPATHS=1 WRITE_SALT_VERSION=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142066. \-e ./salt # the path to the salt git clone from above
  142067. .ft P
  142068. .fi
  142069. .UNINDENT
  142070. .UNINDENT
  142071. .sp
  142072. Instead of passing those two environmental variables, you can just pass a
  142073. single one which will trigger the other two:
  142074. .INDENT 0.0
  142075. .INDENT 3.5
  142076. .sp
  142077. .nf
  142078. .ft C
  142079. MIMIC_SALT_INSTALL=1 pip install \-\-global\-option=\(aq\-\-salt\-root\-dir=/path/to/your/virtualenv/\(aq \e
  142080. \-e ./salt # the path to the salt git clone from above
  142081. .ft P
  142082. .fi
  142083. .UNINDENT
  142084. .UNINDENT
  142085. .sp
  142086. This last one will grant you an editable salt installation with hardcoded
  142087. system paths and version information.
  142088. .SS Installing Salt from the Python Package Index
  142089. .sp
  142090. If you are installing using \fBeasy_install\fP, you will need to define a
  142091. \fBUSE_SETUPTOOLS\fP environment variable, otherwise dependencies will not
  142092. be installed:
  142093. .INDENT 0.0
  142094. .INDENT 3.5
  142095. .sp
  142096. .nf
  142097. .ft C
  142098. USE_SETUPTOOLS=1 easy_install salt
  142099. .ft P
  142100. .fi
  142101. .UNINDENT
  142102. .UNINDENT
  142103. .SS Editing and previewing the documentation
  142104. .sp
  142105. You need \fBsphinx\-build\fP command to build the docs. In Debian/Ubuntu this is
  142106. provided in the \fBpython\-sphinx\fP package. Sphinx can also be installed
  142107. to a virtualenv using pip:
  142108. .INDENT 0.0
  142109. .INDENT 3.5
  142110. .sp
  142111. .nf
  142112. .ft C
  142113. pip install Sphinx==1.3.1
  142114. .ft P
  142115. .fi
  142116. .UNINDENT
  142117. .UNINDENT
  142118. .sp
  142119. Change to salt documentation directory, then:
  142120. .INDENT 0.0
  142121. .INDENT 3.5
  142122. .sp
  142123. .nf
  142124. .ft C
  142125. cd doc; make html
  142126. .ft P
  142127. .fi
  142128. .UNINDENT
  142129. .UNINDENT
  142130. .INDENT 0.0
  142131. .IP \(bu 2
  142132. This will build the HTML docs. Run \fBmake\fP without any arguments to see the
  142133. available make targets, which include \fBhtml\fP, \fBman\fP, and
  142134. \fBtext\fP\&.
  142135. .IP \(bu 2
  142136. The docs then are built within the \fBdocs/_build/\fP folder. To update
  142137. the docs after making changes, run \fBmake\fP again.
  142138. .IP \(bu 2
  142139. The docs use \fI\%reStructuredText\fP
  142140. for markup.
  142141. See a live demo at \fI\%http://rst.ninjs.org/\fP\&.
  142142. .IP \(bu 2
  142143. The help information on each module or state is culled from the python code
  142144. that runs for that piece. Find them in \fBsalt/modules/\fP or \fBsalt/states/\fP\&.
  142145. .IP \(bu 2
  142146. To build the docs on Arch Linux, the \fBpython2\-sphinx\fP package is
  142147. required. Additionally, it is necessary to tell \fBmake\fP where to find
  142148. the proper \fBsphinx\-build\fP binary, like so:
  142149. .UNINDENT
  142150. .INDENT 0.0
  142151. .INDENT 3.5
  142152. .sp
  142153. .nf
  142154. .ft C
  142155. make SPHINXBUILD=sphinx\-build2 html
  142156. .ft P
  142157. .fi
  142158. .UNINDENT
  142159. .UNINDENT
  142160. .INDENT 0.0
  142161. .IP \(bu 2
  142162. To build the docs on RHEL/CentOS 6, the \fBpython\-sphinx10\fP package
  142163. must be installed from EPEL, and the following make command must be used:
  142164. .UNINDENT
  142165. .INDENT 0.0
  142166. .INDENT 3.5
  142167. .sp
  142168. .nf
  142169. .ft C
  142170. make SPHINXBUILD=sphinx\-build html
  142171. .ft P
  142172. .fi
  142173. .UNINDENT
  142174. .UNINDENT
  142175. .sp
  142176. Once you\(aqve updated the documentation, you can run the following command to
  142177. launch a simple Python HTTP server to see your changes:
  142178. .INDENT 0.0
  142179. .INDENT 3.5
  142180. .sp
  142181. .nf
  142182. .ft C
  142183. cd _build/html; python \-m SimpleHTTPServer
  142184. .ft P
  142185. .fi
  142186. .UNINDENT
  142187. .UNINDENT
  142188. .SS Running unit and integration tests
  142189. .sp
  142190. Run the test suite with following command:
  142191. .INDENT 0.0
  142192. .INDENT 3.5
  142193. .sp
  142194. .nf
  142195. .ft C
  142196. \&./setup.py test
  142197. .ft P
  142198. .fi
  142199. .UNINDENT
  142200. .UNINDENT
  142201. .sp
  142202. See here for more information regarding the test suite.
  142203. .SS Issue and Pull Request Labeling System
  142204. .sp
  142205. SaltStack uses several labeling schemes to help facilitate code contributions
  142206. and bug resolution. See the Labels and Milestones documentation for more information.
  142207. .SS GitHub Labels and Milestones
  142208. .sp
  142209. SaltStack uses several label categories, as well as milestones, to triage
  142210. incoming issues and pull requests in the GitHub issue tracker. Labels are used
  142211. to sort issues by type, priority, severity, status, functional area, functional
  142212. group, and targeted release and pull requests by status, functional area,
  142213. functional group, type of change, and test status. Milestones are used to
  142214. indicate whether an issue is fully triaged or is scheduled to be fixed by
  142215. SaltStack in an upcoming sprint.
  142216. .SS Milestones
  142217. .sp
  142218. All issues are assigned to a milestone, whereas pull requests are almost never
  142219. assigned to a milestone as the mean lifetime of pull requests is short enough
  142220. that there is no need to track them temporally.
  142221. .sp
  142222. SaltStack uses milestones to indicate which issues are blocked on submitter or
  142223. upstream actions, are approved, or are scheduled to be fixed or implemented in
  142224. an upcoming sprint. If an issue is not attached to a sprint milestone, you are
  142225. welcome to work on it at your own desire and convenience. If it is attached to
  142226. a sprint milestone and you have already begun working on it or have a solution
  142227. in mind or have other ideas related to the issue, you are encouraged to
  142228. coordinate with the assignee via the GitHub issue tracker to create the best
  142229. possible solution or implementation.
  142230. .INDENT 0.0
  142231. .IP \(bu 2
  142232. \fBApproved\fP \- The issue has been validated and has all necessary information.
  142233. .IP \(bu 2
  142234. \fBBlocked\fP \- The issue is waiting on actions by parties outside of
  142235. SaltStack, such as receiving more information from the submitter or
  142236. resolution of an upstream issue. This milestone is usually applied in
  142237. conjunction with the labels \fBInfo Needed\fP, \fBQuestion\fP,
  142238. \fBExpected Behavior\fP, \fBWon\(aqt Fix For Now\fP, or \fBUpstream Bug\fP\&.
  142239. .UNINDENT
  142240. .SS Labels
  142241. .sp
  142242. Labels are used to sort and describe issues and pull requests. Some labels are
  142243. usually reserved for one or the other, though most labels may be applied to
  142244. both.
  142245. .sp
  142246. New issues will receive at least one label and a milestone, and new pull
  142247. requests will receive at least one label. Except for the \fI\%functional area\fP and \fI\%functional group\fP
  142248. label categories, issues will generally receive only up to one label per
  142249. category.
  142250. .SS Type
  142251. .sp
  142252. Issues are categorized into one of several types. Type labels are almost never
  142253. used for pull requests. GitHub treats pull requests like issues in many ways,
  142254. so a pull request could be considered an issue with an implicit \fBPull
  142255. Request\fP type label applied.
  142256. .INDENT 0.0
  142257. .IP \(bu 2
  142258. \fBFeature\fP \- The issue is a request for new functionality including changes,
  142259. enhancements, refactors, etc.
  142260. .IP \(bu 2
  142261. \fBBug\fP \- The issue documents broken, incorrect, or confusing behavior. This
  142262. label is always accompanied by a \fI\%severity label\fP\&.
  142263. .IP \(bu 2
  142264. \fBDuplicate\fP \- The issue is a duplicate of another feature request or bug
  142265. report.
  142266. .IP \(bu 2
  142267. \fBUpstream Bug\fP \- The issue is a result of an upstream issue.
  142268. .IP \(bu 2
  142269. \fBQuestion\fP \- The issue is more of a question than a request for new
  142270. features or a report of broken features, but can sometimes lead to further
  142271. discussion or changes of confusing or incongruous behavior or documentation.
  142272. .IP \(bu 2
  142273. \fBExpected Behavior\fP \- The issue is a bug report of intended functionality.
  142274. .UNINDENT
  142275. .SS Priority
  142276. .sp
  142277. An issue\(aqs priority is relative to its \fI\%functional area\fP\&. If a bug report, for example, about \fBgitfs\fP
  142278. indicates that all users of \fBgitfs\fP will encounter this bug, then a \fBP1\fP
  142279. label will be applied, even though users who are not using \fBgitfs\fP will not
  142280. encounter the bug. If a feature is requested by many users, it may be given a
  142281. high priority.
  142282. .INDENT 0.0
  142283. .IP \(bu 2
  142284. \fBP1\fP \- The issue will be seen by all users.
  142285. .IP \(bu 2
  142286. \fBP2\fP \- The issue will be seen by most users.
  142287. .IP \(bu 2
  142288. \fBP3\fP \- The issue will be seen by about half of users.
  142289. .IP \(bu 2
  142290. \fBP4\fP \- The issue will not be seen by most users. Usually the issue is a
  142291. very specific use case or corner case.
  142292. .UNINDENT
  142293. .SS Severity
  142294. .sp
  142295. Severity labels are almost always only applied to issues labeled \fBBug\fP\&.
  142296. .INDENT 0.0
  142297. .IP \(bu 2
  142298. \fBBlocker\fP \- The issue is blocking an impending release.
  142299. .IP \(bu 2
  142300. \fBCritical\fP \- The issue causes data loss, crashes or hangs salt processes,
  142301. makes the system unresponsive, etc.
  142302. .IP \(bu 2
  142303. \fBHigh Severity\fP \- The issue reports incorrect functionality, bad
  142304. functionality, a confusing user experience, etc.
  142305. .IP \(bu 2
  142306. \fBMedium Severity\fP \- The issue reports cosmetic items, formatting, spelling,
  142307. colors, etc.
  142308. .UNINDENT
  142309. .SS Functional Area
  142310. .sp
  142311. Many major components of Salt have corresponding GitHub labels. These labels
  142312. are applied to all issues and pull requests as is reasonably appropriate. They
  142313. are useful in organizing issues and pull requests according to the source code
  142314. relevant to issues or the source code changed by pull requests.
  142315. .INDENT 0.0
  142316. .IP \(bu 2
  142317. \fBExecution Module\fP
  142318. .IP \(bu 2
  142319. \fBFile Servers\fP
  142320. .IP \(bu 2
  142321. \fBGrains\fP
  142322. .IP \(bu 2
  142323. \fBMulti\-Master\fP
  142324. .IP \(bu 2
  142325. \fBPackaging\fP Related to packaging of Salt, not Salt\(aqs support for package management.
  142326. .IP \(bu 2
  142327. \fBPillar\fP
  142328. .IP \(bu 2
  142329. \fBRAET\fP
  142330. .IP \(bu 2
  142331. \fBReturners\fP
  142332. .IP \(bu 2
  142333. \fBRunners\fP
  142334. .IP \(bu 2
  142335. \fBSPM\fP
  142336. .IP \(bu 2
  142337. \fBSalt\-API\fP
  142338. .IP \(bu 2
  142339. \fBSalt\-Cloud\fP
  142340. .IP \(bu 2
  142341. \fBSalt\-SSH\fP
  142342. .IP \(bu 2
  142343. \fBSalt\-Syndic\fP
  142344. .IP \(bu 2
  142345. \fBState Module\fP
  142346. .IP \(bu 2
  142347. \fBTests\fP
  142348. .IP \(bu 2
  142349. \fBTransport\fP
  142350. .IP \(bu 2
  142351. \fBWindows\fP
  142352. .IP \(bu 2
  142353. \fBZMQ\fP
  142354. .UNINDENT
  142355. .SS Functional Group
  142356. .sp
  142357. These labels sort issues and pull requests according to the internal SaltStack
  142358. engineering teams.
  142359. .INDENT 0.0
  142360. .IP \(bu 2
  142361. \fBCore\fP \- The issue or pull request relates to code that is central or
  142362. existential to Salt itself.
  142363. .IP \(bu 2
  142364. \fBPlatform\fP \- The issue or pull request relates to support and integration
  142365. with various platforms like traditional operating systems as well as
  142366. containers, platform\-based utilities like filesystems, command schedulers,
  142367. etc., and system\-based applications like webservers, databases, etc.
  142368. .IP \(bu 2
  142369. \fBRIoT\fP \- The issue or pull request relates to support and integration with
  142370. various abstract systems like cloud providers, hypervisors, API\-based
  142371. services, etc.
  142372. .IP \(bu 2
  142373. \fBConsole\fP \- The issue or pull request relates to the SaltStack enterprise
  142374. console.
  142375. .IP \(bu 2
  142376. \fBDocumentation\fP \- The issue or pull request relates to documentation.
  142377. .UNINDENT
  142378. .SS Status
  142379. .sp
  142380. Status labels are used to define and track the state of issues and pull
  142381. requests. Not all potential statuses correspond to a label, but some statuses
  142382. are common enough that labels have been created for them. If an issue has not
  142383. been moved beyond the \fBBlocked\fP milestone, it is very likely that it will
  142384. only have a status label.
  142385. .INDENT 0.0
  142386. .IP \(bu 2
  142387. \fBBugfix \- back\-port\fP The pull request needs to be back\-ported to an older
  142388. release branch. This is done by recreating the pull request against that branch. Once the back\-port is
  142389. completed, this label is replaced with a \fBBugfix \- [Done] back\-ported\fP
  142390. label. Normally, new features should go into the develop and bug fixes into
  142391. the oldest supported release branch, see here\&.
  142392. .IP \(bu 2
  142393. \fBBugfix \- [Done] back\-ported\fP \- The pull request has been back\-ported to an
  142394. older branch.
  142395. .IP \(bu 2
  142396. \fBCannot Reproduce\fP \- The issue is a bug and has been reviewed by a
  142397. SaltStack engineer, but it cannot be replicated with the provided information
  142398. and context. Those involved with the bug will need to work through
  142399. additional ideas until the bug can be isolated and verified.
  142400. .IP \(bu 2
  142401. \fBConfirmed\fP \- The issue is a bug and has been confirmed by a SaltStack
  142402. engineer, who often documents a minimal working example that reproduces the
  142403. bug.
  142404. .IP \(bu 2
  142405. \fBFixed Pending Verification\fP \- The issue is a bug and has been fixed by one
  142406. or more pull requests, which should link to the issue. Closure of the issue
  142407. is contingent upon confirmation of resolution from the submitter. If the
  142408. submitter reports a negative confirmation, this label is removed. If no
  142409. response is given after a few weeks, then the issue will be assumed fixed and
  142410. closed.
  142411. .IP \(bu 2
  142412. \fBInfo Needed\fP \- The issue needs more information before it can be verified
  142413. and resolved. For a feature request this may include a description of the
  142414. use cases. Almost all bug reports need to include at least the versions of
  142415. salt and its dependencies, the system type and version, commands used, debug
  142416. logs, error messages, and relevant configs.
  142417. .IP \(bu 2
  142418. \fBPending Changes\fP \- The pull request needs additional changes before it can
  142419. be merged.
  142420. .IP \(bu 2
  142421. \fBPending Discussion\fP \- The issue or pull request needs more discussion
  142422. before it can be closed or merged. The status of the issue or pull request
  142423. is not clear or apparent enough for definite action to be taken, or
  142424. additional input from SaltStack, the submitter, or another party has been
  142425. requested.
  142426. .sp
  142427. If the issue is not a pull request, once the discussion has arrived at a
  142428. cogent conclusion, this label will be removed and the issue will be accepted.
  142429. If it is a pull request, the results of the discussion may require additional
  142430. changes and thus, a \fBPending Changes\fP label.
  142431. .IP \(bu 2
  142432. \fBWon\(aqt Fix for Now\fP \- The issue is legitimate, but it is not something the
  142433. SaltStack team is currently able or willing to fix or implement. Issues
  142434. having this label may be revisited in the future.
  142435. .UNINDENT
  142436. .SS Type of Change
  142437. .sp
  142438. Every pull request should receive a change label. These labels measure the
  142439. quantity of change as well as the significance of the change. The amount of
  142440. change and the importance of the code area changed are considered, but often
  142441. the depth of secondary code review required and the potential repercussions of
  142442. the change may also advise the label choice.
  142443. .sp
  142444. Core code areas include: state compiler, crypto engine, master and minion and
  142445. syndic daemons, transport, pillar rendering, loader, transport layer, event
  142446. system, salt.utils, client, cli, logging, netapi, runner engine, templating
  142447. engine, top file compilation, file client, file server, mine, salt\-ssh, test
  142448. runner, etc.
  142449. .sp
  142450. Non\-core code usually constitutes the specific set of plugins for each of the
  142451. several plugin layers of Salt: execution modules, states, runners, returners,
  142452. clouds, etc.
  142453. .INDENT 0.0
  142454. .IP \(bu 2
  142455. \fBMinor Change\fP
  142456. .INDENT 2.0
  142457. .IP \(bu 2
  142458. Less than 64 lines changed, or
  142459. .IP \(bu 2
  142460. Less than 8 core lines changed
  142461. .UNINDENT
  142462. .IP \(bu 2
  142463. \fBMedium Change\fP
  142464. .INDENT 2.0
  142465. .IP \(bu 2
  142466. Less than 256 lines changed, or
  142467. .IP \(bu 2
  142468. Less than 64 core lines changed
  142469. .UNINDENT
  142470. .IP \(bu 2
  142471. \fBMaster Change\fP
  142472. .INDENT 2.0
  142473. .IP \(bu 2
  142474. More than 256 lines changed, or
  142475. .IP \(bu 2
  142476. More than 64 core lines changed
  142477. .UNINDENT
  142478. .IP \(bu 2
  142479. \fBExpert Change\fP
  142480. .INDENT 2.0
  142481. .IP \(bu 2
  142482. Needs specialized, in\-depth review
  142483. .UNINDENT
  142484. .UNINDENT
  142485. .SS Test Status
  142486. .sp
  142487. These labels relate to the status of the automated tests that run on pull
  142488. requests. If the tests on a pull request fail and are not overridden by one of
  142489. these labels, the pull request submitter needs to update the code and/or tests
  142490. so that the tests pass and the pull request can be merged.
  142491. .INDENT 0.0
  142492. .IP \(bu 2
  142493. \fBLint\fP \- The pull request has passed all tests except for the code lint
  142494. checker.
  142495. .IP \(bu 2
  142496. \fBTests Passed\fP \- The pull request has passed all tests even though some
  142497. test results are negative. Sometimes the automated testing infrastructure
  142498. will encounter internal errors unrelated to the code change in the pull
  142499. request that cause test runs to fail. These errors can be caused by cloud
  142500. host and network issues and also Jenkins issues like erroneously accumulating
  142501. workspace artifacts, resource exhaustion, and bugs that arise from long
  142502. running Jenkins processes.
  142503. .UNINDENT
  142504. .SS Other
  142505. .sp
  142506. These labels indicate miscellaneous issue types or statuses that are common or
  142507. important enough to be tracked and sorted with labels.
  142508. .INDENT 0.0
  142509. .IP \(bu 2
  142510. \fBAwesome\fP \- The pull request implements an especially well crafted
  142511. solution, or a very difficult but necessary change.
  142512. .IP \(bu 2
  142513. \fBHelp Wanted\fP \- The issue appears to have a simple solution. Issues having
  142514. this label should be a good starting place for new contributors to Salt.
  142515. .IP \(bu 2
  142516. \fBNeeds Testcase\fP \- The issue or pull request relates to a feature that
  142517. needs test coverage. The pull request containing the tests should reference
  142518. the issue or pull request having this label, whereupon the label should be
  142519. removed.
  142520. .IP \(bu 2
  142521. \fBRegression\fP \- The issue is a bug that breaks functionality known to work
  142522. in previous releases.
  142523. .IP \(bu 2
  142524. \fBStory\fP \- The issue is used by a SaltStack engineer to track progress on
  142525. multiple related issues in a single place.
  142526. .IP \(bu 2
  142527. \fBStretch\fP \- The issue is an optional goal for the current sprint but may
  142528. not be delivered.
  142529. .IP \(bu 2
  142530. \fBZD\fP \- The issue is related to a Zendesk customer support ticket.
  142531. .IP \(bu 2
  142532. \fB<Release>\fP \- The issue is scheduled to be implemented by \fB<Release>\fP\&.
  142533. See here for a discussion of Salt\(aqs release
  142534. codenames.
  142535. .UNINDENT
  142536. .SS Logging Internals
  142537. .sp
  142538. TODO
  142539. .SS Package Providers
  142540. .sp
  142541. This page contains guidelines for writing package providers.
  142542. .SS Package Functions
  142543. .sp
  142544. One of the most important features of Salt is package management. There is no
  142545. shortage of package managers, so in the interest of providing a consistent
  142546. experience in \fBpkg\fP states, there are certain functions
  142547. that should be present in a package provider. Note that these are subject to
  142548. change as new features are added or existing features are enhanced.
  142549. .SS list_pkgs
  142550. .sp
  142551. This function should declare an empty dict, and then add packages to it by
  142552. calling \fBpkg_resource.add_pkg\fP, like
  142553. so:
  142554. .INDENT 0.0
  142555. .INDENT 3.5
  142556. .sp
  142557. .nf
  142558. .ft C
  142559. __salt__[\(aqpkg_resource.add_pkg\(aq](ret, name, version)
  142560. .ft P
  142561. .fi
  142562. .UNINDENT
  142563. .UNINDENT
  142564. .sp
  142565. The last thing that should be done before returning is to execute
  142566. \fBpkg_resource.sort_pkglist\fP\&. This
  142567. function does not presently do anything to the return dict, but will be used in
  142568. future versions of Salt.
  142569. .INDENT 0.0
  142570. .INDENT 3.5
  142571. .sp
  142572. .nf
  142573. .ft C
  142574. __salt__[\(aqpkg_resource.sort_pkglist\(aq](ret)
  142575. .ft P
  142576. .fi
  142577. .UNINDENT
  142578. .UNINDENT
  142579. .sp
  142580. \fBlist_pkgs\fP returns a dictionary of installed packages, with the keys being
  142581. the package names and the values being the version installed. Example return
  142582. data:
  142583. .INDENT 0.0
  142584. .INDENT 3.5
  142585. .sp
  142586. .nf
  142587. .ft C
  142588. {\(aqfoo\(aq: \(aq1.2.3\-4\(aq,
  142589. \(aqbar\(aq: \(aq5.6.7\-8\(aq}
  142590. .ft P
  142591. .fi
  142592. .UNINDENT
  142593. .UNINDENT
  142594. .SS latest_version
  142595. .sp
  142596. Accepts an arbitrary number of arguments. Each argument is a package name. The
  142597. return value for a package will be an empty string if the package is not found
  142598. or if the package is up\-to\-date. The only case in which a non\-empty string is
  142599. returned is if the package is available for new installation (i.e. not already
  142600. installed) or if there is an upgrade available.
  142601. .sp
  142602. If only one argument was passed, this function return a string, otherwise a
  142603. dict of name/version pairs is returned.
  142604. .sp
  142605. This function must also accept \fB**kwargs\fP, in order to receive the
  142606. \fBfromrepo\fP and \fBrepo\fP keyword arguments from pkg states. Where supported,
  142607. these arguments should be used to find the install/upgrade candidate in the
  142608. specified repository. The \fBfromrepo\fP kwarg takes precedence over \fBrepo\fP, so
  142609. if both of those kwargs are present, the repository specified in \fBfromrepo\fP
  142610. should be used. However, if \fBrepo\fP is used instead of \fBfromrepo\fP, it should
  142611. still work, to preserve backwards compatibility with older versions of Salt.
  142612. .SS version
  142613. .sp
  142614. Like \fBlatest_version\fP, accepts an arbitrary number of arguments and
  142615. returns a string if a single package name was passed, or a dict of name/value
  142616. pairs if more than one was passed. The only difference is that the return
  142617. values are the currently\-installed versions of whatever packages are passed. If
  142618. the package is not installed, an empty string is returned for that package.
  142619. .SS upgrade_available
  142620. .sp
  142621. Deprecated and destined to be removed. For now, should just do the following:
  142622. .INDENT 0.0
  142623. .INDENT 3.5
  142624. .sp
  142625. .nf
  142626. .ft C
  142627. return __salt__[\(aqpkg.latest_version\(aq](name) != \(aq\(aq
  142628. .ft P
  142629. .fi
  142630. .UNINDENT
  142631. .UNINDENT
  142632. .SS install
  142633. .sp
  142634. The following arguments are required and should default to \fBNone\fP:
  142635. .INDENT 0.0
  142636. .IP 1. 3
  142637. name (for single\-package pkg states)
  142638. .IP 2. 3
  142639. pkgs (for multiple\-package pkg states)
  142640. .IP 3. 3
  142641. sources (for binary package file installation)
  142642. .UNINDENT
  142643. .sp
  142644. The first thing that this function should do is call
  142645. \fBpkg_resource.parse_targets\fP
  142646. (see below). This function will convert the SLS input into a more easily parsed
  142647. data structure.
  142648. \fBpkg_resource.parse_targets\fP may
  142649. need to be modified to support your new package provider, as it does things
  142650. like parsing package metadata which cannot be done for every package management
  142651. system.
  142652. .INDENT 0.0
  142653. .INDENT 3.5
  142654. .sp
  142655. .nf
  142656. .ft C
  142657. pkg_params, pkg_type = __salt__[\(aqpkg_resource.parse_targets\(aq](name,
  142658. pkgs,
  142659. sources)
  142660. .ft P
  142661. .fi
  142662. .UNINDENT
  142663. .UNINDENT
  142664. .sp
  142665. Two values will be returned to the \fBinstall\fP function. The first of
  142666. them will be a dictionary. The keys of this dictionary will be package names,
  142667. though the values will differ depending on what kind of installation is being
  142668. done:
  142669. .INDENT 0.0
  142670. .IP \(bu 2
  142671. If \fBname\fP was provided (and \fBpkgs\fP was not), then there will
  142672. be a single key in the dictionary, and its value will be \fBNone\fP\&. Once the
  142673. data has been returned, if the \fBversion\fP keyword argument was
  142674. provided, then it should replace the \fBNone\fP value in the dictionary.
  142675. .IP \(bu 2
  142676. If \fBpkgs\fP was provided, then \fBname\fP is ignored, and the
  142677. dictionary will contain one entry for each package in the \fBpkgs\fP
  142678. list. The values in the dictionary will be \fBNone\fP if a version was not
  142679. specified for the package, and the desired version if specified. See the
  142680. \fBMultiple Package Installation Options\fP section of the
  142681. \fBpkg.installed\fP state for more info.
  142682. .IP \(bu 2
  142683. If \fBsources\fP was provided, then \fBname\fP is ignored, and the
  142684. dictionary values will be the path/URI for the package.
  142685. .UNINDENT
  142686. .sp
  142687. The second return value will be a string with two possible values:
  142688. \fBrepository\fP or \fBfile\fP\&. The \fBinstall\fP function can use this value
  142689. (if necessary) to build the proper command to install the targeted package(s).
  142690. .sp
  142691. Both before and after the installing the target(s), you should run
  142692. \fBlist_pkgs\fP to obtain a list of the installed packages. You should then
  142693. return the output of \fBsalt.utils.data.compare_dicts()\fP:
  142694. .INDENT 0.0
  142695. .INDENT 3.5
  142696. .sp
  142697. .nf
  142698. .ft C
  142699. return salt.utils.data.compare_dicts(old, new)
  142700. .ft P
  142701. .fi
  142702. .UNINDENT
  142703. .UNINDENT
  142704. .SS remove
  142705. .sp
  142706. Removes the passed package and return a list of the packages removed.
  142707. .SS Package Repo Functions
  142708. .sp
  142709. There are some functions provided by \fBpkg\fP which are specific to package
  142710. repositories, and not to packages themselves. When writing modules for new
  142711. package managers, these functions should be made available as stated below, in
  142712. order to provide compatibility with the \fBpkgrepo\fP state.
  142713. .sp
  142714. All repo functions should accept a basedir option, which defines which
  142715. directory repository configuration should be found in. The default for this
  142716. is dictated by the repo manager that is being used, and rarely needs to be
  142717. changed.
  142718. .INDENT 0.0
  142719. .INDENT 3.5
  142720. .sp
  142721. .nf
  142722. .ft C
  142723. basedir = \(aq/etc/yum.repos.d\(aq
  142724. __salt__[\(aqpkg.list_repos\(aq](basedir)
  142725. .ft P
  142726. .fi
  142727. .UNINDENT
  142728. .UNINDENT
  142729. .SS list_repos
  142730. .sp
  142731. Lists the repositories that are currently configured on this system.
  142732. .INDENT 0.0
  142733. .INDENT 3.5
  142734. .sp
  142735. .nf
  142736. .ft C
  142737. __salt__[\(aqpkg.list_repos\(aq]()
  142738. .ft P
  142739. .fi
  142740. .UNINDENT
  142741. .UNINDENT
  142742. .sp
  142743. Returns a dictionary, in the following format:
  142744. .INDENT 0.0
  142745. .INDENT 3.5
  142746. .sp
  142747. .nf
  142748. .ft C
  142749. {\(aqreponame\(aq: \(aqconfig_key_1\(aq: \(aqconfig value 1\(aq,
  142750. \(aqconfig_key_2\(aq: \(aqconfig value 2\(aq,
  142751. \(aqconfig_key_3\(aq: [\(aqlist item 1 (when appropriate)\(aq,
  142752. \(aqlist item 2 (when appropriate)]}
  142753. .ft P
  142754. .fi
  142755. .UNINDENT
  142756. .UNINDENT
  142757. .SS get_repo
  142758. .sp
  142759. Displays all local configuration for a specific repository.
  142760. .INDENT 0.0
  142761. .INDENT 3.5
  142762. .sp
  142763. .nf
  142764. .ft C
  142765. __salt__[\(aqpkg.get_repo\(aq](repo=\(aqmyrepo\(aq)
  142766. .ft P
  142767. .fi
  142768. .UNINDENT
  142769. .UNINDENT
  142770. .sp
  142771. The information is formatted in much the same way as list_repos, but is
  142772. specific to only one repo.
  142773. .INDENT 0.0
  142774. .INDENT 3.5
  142775. .sp
  142776. .nf
  142777. .ft C
  142778. {\(aqconfig_key_1\(aq: \(aqconfig value 1\(aq,
  142779. \(aqconfig_key_2\(aq: \(aqconfig value 2\(aq,
  142780. \(aqconfig_key_3\(aq: [\(aqlist item 1 (when appropriate)\(aq,
  142781. \(aqlist item 2 (when appropriate)]}
  142782. .ft P
  142783. .fi
  142784. .UNINDENT
  142785. .UNINDENT
  142786. .SS del_repo
  142787. .sp
  142788. Removes the local configuration for a specific repository. Requires a \fIrepo\fP
  142789. argument, which must match the locally configured name. This function returns
  142790. a string, which informs the user as to whether or not the operation was a
  142791. success.
  142792. .INDENT 0.0
  142793. .INDENT 3.5
  142794. .sp
  142795. .nf
  142796. .ft C
  142797. __salt__[\(aqpkg.del_repo\(aq](repo=\(aqmyrepo\(aq)
  142798. .ft P
  142799. .fi
  142800. .UNINDENT
  142801. .UNINDENT
  142802. .SS mod_repo
  142803. .sp
  142804. Modify the local configuration for one or more option for a configured repo.
  142805. This is also the way to create new repository configuration on the local
  142806. system; if a repo is specified which does not yet exist, it will be created.
  142807. .sp
  142808. The options specified for this function are specific to the system; please
  142809. refer to the documentation for your specific repo manager for specifics.
  142810. .INDENT 0.0
  142811. .INDENT 3.5
  142812. .sp
  142813. .nf
  142814. .ft C
  142815. __salt__[\(aqpkg.mod_repo\(aq](repo=\(aqmyrepo\(aq, url=\(aqhttp://myurl.com/repo\(aq)
  142816. .ft P
  142817. .fi
  142818. .UNINDENT
  142819. .UNINDENT
  142820. .SS Low\-Package Functions
  142821. .sp
  142822. In general, the standard package functions as describes above will meet your
  142823. needs. These functions use the system\(aqs native repo manager (for instance,
  142824. yum or the apt tools). In most cases, the repo manager is actually separate
  142825. from the package manager. For instance, yum is usually a front\-end for rpm, and
  142826. apt is usually a front\-end for dpkg. When possible, the package functions that
  142827. use those package managers directly should do so through the low package
  142828. functions.
  142829. .sp
  142830. It is normal and sane for \fBpkg\fP to make calls to \fBlowpkgs\fP, but \fBlowpkg\fP
  142831. must never make calls to \fBpkg\fP\&. This is affects functions which are required
  142832. by both \fBpkg\fP and \fBlowpkg\fP, but the technique in \fBpkg\fP is more performant
  142833. than what is available to \fBlowpkg\fP\&. When this is the case, the \fBlowpkg\fP
  142834. function that requires that technique must still use the \fBlowpkg\fP version.
  142835. .SS list_pkgs
  142836. .sp
  142837. Returns a dict of packages installed, including the package name and version.
  142838. Can accept a list of packages; if none are specified, then all installed
  142839. packages will be listed.
  142840. .INDENT 0.0
  142841. .INDENT 3.5
  142842. .sp
  142843. .nf
  142844. .ft C
  142845. installed = __salt__[\(aqlowpkg.list_pkgs\(aq](\(aqfoo\(aq, \(aqbar\(aq)
  142846. .ft P
  142847. .fi
  142848. .UNINDENT
  142849. .UNINDENT
  142850. .sp
  142851. Example output:
  142852. .INDENT 0.0
  142853. .INDENT 3.5
  142854. .sp
  142855. .nf
  142856. .ft C
  142857. {\(aqfoo\(aq: \(aq1.2.3\-4\(aq,
  142858. \(aqbar\(aq: \(aq5.6.7\-8\(aq}
  142859. .ft P
  142860. .fi
  142861. .UNINDENT
  142862. .UNINDENT
  142863. .SS verify
  142864. .sp
  142865. Many (but not all) package management systems provide a way to verify that the
  142866. files installed by the package manager have or have not changed. This function
  142867. accepts a list of packages; if none are specified, all packages will be
  142868. included.
  142869. .INDENT 0.0
  142870. .INDENT 3.5
  142871. .sp
  142872. .nf
  142873. .ft C
  142874. installed = __salt__[\(aqlowpkg.verify\(aq](\(aqhttpd\(aq)
  142875. .ft P
  142876. .fi
  142877. .UNINDENT
  142878. .UNINDENT
  142879. .sp
  142880. Example output:
  142881. .INDENT 0.0
  142882. .INDENT 3.5
  142883. .sp
  142884. .nf
  142885. .ft C
  142886. {\(aq/etc/httpd/conf/httpd.conf\(aq: {\(aqmismatch\(aq: [\(aqsize\(aq, \(aqmd5sum\(aq, \(aqmtime\(aq],
  142887. \(aqtype\(aq: \(aqconfig\(aq}}
  142888. .ft P
  142889. .fi
  142890. .UNINDENT
  142891. .UNINDENT
  142892. .SS file_list
  142893. .sp
  142894. Lists all of the files installed by all packages specified. If not packages are
  142895. specified, then all files for all known packages are returned.
  142896. .INDENT 0.0
  142897. .INDENT 3.5
  142898. .sp
  142899. .nf
  142900. .ft C
  142901. installed = __salt__[\(aqlowpkg.file_list\(aq](\(aqhttpd\(aq, \(aqapache\(aq)
  142902. .ft P
  142903. .fi
  142904. .UNINDENT
  142905. .UNINDENT
  142906. .sp
  142907. This function does not return which files belong to which packages; all files
  142908. are returned as one giant list (hence the \fIfile_list\fP function name. However,
  142909. This information is still returned inside of a dict, so that it can provide
  142910. any errors to the user in a sane manner.
  142911. .INDENT 0.0
  142912. .INDENT 3.5
  142913. .sp
  142914. .nf
  142915. .ft C
  142916. {\(aqerrors\(aq: [\(aqpackage apache is not installed\(aq],
  142917. \(aqfiles\(aq: [\(aq/etc/httpd\(aq,
  142918. \(aq/etc/httpd/conf\(aq,
  142919. \(aq/etc/httpd/conf.d\(aq,
  142920. \(aq...SNIP...\(aq]}
  142921. .ft P
  142922. .fi
  142923. .UNINDENT
  142924. .UNINDENT
  142925. .SS file_dict
  142926. .sp
  142927. Lists all of the files installed by all packages specified. If not packages are
  142928. specified, then all files for all known packages are returned.
  142929. .INDENT 0.0
  142930. .INDENT 3.5
  142931. .sp
  142932. .nf
  142933. .ft C
  142934. installed = __salt__[\(aqlowpkg.file_dict\(aq](\(aqhttpd\(aq, \(aqapache\(aq, \(aqkernel\(aq)
  142935. .ft P
  142936. .fi
  142937. .UNINDENT
  142938. .UNINDENT
  142939. .sp
  142940. Unlike \fIfile_list\fP, this function will break down which files belong to which
  142941. packages. It will also return errors in the same manner as \fIfile_list\fP\&.
  142942. .INDENT 0.0
  142943. .INDENT 3.5
  142944. .sp
  142945. .nf
  142946. .ft C
  142947. {\(aqerrors\(aq: [\(aqpackage apache is not installed\(aq],
  142948. \(aqpackages\(aq: {\(aqhttpd\(aq: [\(aq/etc/httpd\(aq,
  142949. \(aq/etc/httpd/conf\(aq,
  142950. \(aq...SNIP...\(aq],
  142951. \(aqkernel\(aq: [\(aq/boot/.vmlinuz\-2.6.32\-279.el6.x86_64.hmac\(aq,
  142952. \(aq/boot/System.map\-2.6.32\-279.el6.x86_64\(aq,
  142953. \(aq...SNIP...\(aq]}}
  142954. .ft P
  142955. .fi
  142956. .UNINDENT
  142957. .UNINDENT
  142958. .SS Pull Requests
  142959. .sp
  142960. Salt is a large software project with many developers working together. We
  142961. encourage all Salt users to contribute new features, bug fixes and
  142962. documentation fixes. For those who haven\(aqt contributed to a large software
  142963. project before we encourage you to consider the following questions when
  142964. preparing a pull request.
  142965. .sp
  142966. This isn\(aqt an exhaustive list and these aren\(aqt necessarily hard and fast rules,
  142967. but these are things we consider when reviewing a pull request.
  142968. .INDENT 0.0
  142969. .IP \(bu 2
  142970. Does this change work on all platforms? In cases where it does not, is an
  142971. appropriate and easy\-to\-understand reason presented to the user? Is it
  142972. documented as\-such? Have we thought about all the possible ways this code
  142973. might be used and accounted as best we can for them?
  142974. .IP \(bu 2
  142975. Will this code work on versions of all Python we support? Will it work on
  142976. future versions?
  142977. .IP \(bu 2
  142978. Are Python reserved keywords used? Are variables named in a way that will
  142979. make it easy for the next person to understand what\(aqs going on?
  142980. .IP \(bu 2
  142981. Does this code present a security risk in any way? What is the worst possible
  142982. thing that an attacker could do with this code? If dangerous cases are
  142983. possible, is it appropriate to document them? If so, has this been done?
  142984. Would this change pass muster with a professional security audit? Is it
  142985. obvious to a person using this code what the risks are?
  142986. .IP \(bu 2
  142987. Is it readable? Does it conform to our \fI\%style guide\fP? Is the code documented
  142988. such that the next person who comes along will be able to read and understand
  142989. it? Most especially, are edge\-cases documented to avoid regressions? Will it
  142990. be immediately evident to the next person who comes along why this change was
  142991. made?
  142992. .UNINDENT
  142993. .INDENT 0.0
  142994. .IP \(bu 2
  142995. If appropriate, has the person who wrote the code which is being modified
  142996. been notified and included in the process?
  142997. .IP \(bu 2
  142998. What are the performance implications of this change? Is there a more
  142999. efficient way to structure the logic and if so, does making the change
  143000. balance itself against readability in a sensible way? Do the performance
  143001. characteristics of the code change based on the way it is being invoked
  143002. (i.e., through an API or various command\-line tools.) Will it be easy to
  143003. profile this change if it might be a problem?
  143004. .IP \(bu 2
  143005. Are caveats considered and documented in the change?
  143006. .IP \(bu 2
  143007. Will the code scale? More critically, will it scale in \fIboth\fP directions?
  143008. Salt runs in data\-centers and on Raspberry Pi installations in the Sahara. It
  143009. needs to work on big servers and tiny devices.
  143010. .IP \(bu 2
  143011. Is appropriate documentation written both in public\-facing docs and in\-line?
  143012. How will the user know how to use this? What will they do if it doesn\(aqt work
  143013. as expected? Is this something a new user will understand? Can a user know
  143014. all they need to about this functionality by reading the public docs?
  143015. .IP \(bu 2
  143016. Is this a change in behavior? If so, is it in the appropriate branch? Are
  143017. deprecation warnings necessary? Have those changes been fully documented?
  143018. Have we fully thought through what implications a change in behavior might
  143019. have?
  143020. .IP \(bu 2
  143021. How has the code been tested? If appropriate are there automated tests which
  143022. cover this? Is it likely to regress? If so, how has the potential of that
  143023. regression been mitigated? What is the plan for ensuring that this code works
  143024. going forward?
  143025. .IP \(bu 2
  143026. If it\(aqs asynchronous code, what is the potential for a race condition?
  143027. .IP \(bu 2
  143028. Is this code an original work? If it\(aqs borrowed from another project or found
  143029. online are the appropriate licensing/attribution considerations handled?
  143030. .IP \(bu 2
  143031. Is the reason for the change fully explained in the PR? If not for review,
  143032. this is necessary so that somebody in the future can go back and figure out
  143033. why it was necessary.
  143034. .IP \(bu 2
  143035. Is the intended behavior of the change clear? How will that behavior be known
  143036. to future contributors and to users?
  143037. .IP \(bu 2
  143038. Does this code handle errors in a reasonable way? Have we gone back through
  143039. the stack as much as possible to make sure that an error cannot be raised
  143040. that we do not account for? Are errors tested for as well as proper
  143041. functionality?
  143042. .IP \(bu 2
  143043. If the code relies on external libraries, do we properly handle old versions
  143044. of them? Do we require a specific version and if so is this version check
  143045. implemented? Is the library available on the same platforms that module in
  143046. question claims to support? If the code was written and tested against a
  143047. particular library, have we documented that fact?
  143048. .IP \(bu 2
  143049. Can this code freeze/hang/crash a running daemon? Can it stall a state run?
  143050. Are there infinite loops? Are appropriate timeouts implemented?
  143051. .IP \(bu 2
  143052. Is the function interface well documented? If argument types can not be
  143053. inferred by introspection, are they documented?
  143054. .IP \(bu 2
  143055. Are resources such as file\-handles cleaned\-up after they are used?
  143056. .IP \(bu 2
  143057. Is it possible that a reference\-cycle exists between objects that will leak
  143058. memory?
  143059. .IP \(bu 2
  143060. Has the code been linted and does it pass all tests?
  143061. .IP \(bu 2
  143062. Does the change fully address the problem or is it limited to a small surface
  143063. area? By this, I mean that it should be clear that the submitter has looked
  143064. for other cases in the function or module where the given case might also be
  143065. addressed. If additional changes are necessary are they documented in the
  143066. code as a FIXME or the PR and in Github as an issue to be tracked?
  143067. .IP \(bu 2
  143068. Will the code throw errors/warnings/stacktraces to the console during normal
  143069. operation?
  143070. .IP \(bu 2
  143071. Has all the debugging been removed?
  143072. .IP \(bu 2
  143073. Does the code log any sensitive data? Does it show sensitive data in process
  143074. lists? Does it store sensitive data to disk and if so, does it do so in a
  143075. secure manner? Are there potential race conditions in between writing the
  143076. data to disk and setting the appropriate permissions?
  143077. .IP \(bu 2
  143078. Is it clear from the solution that the problem is well\-understood? How can
  143079. somebody who has never seen the problem feel confident that this proposed
  143080. change is the best one?
  143081. .IP \(bu 2
  143082. What\(aqs hard\-coded that might not need to be? Are we making sensible decisions
  143083. for the user and allowing them to tune and change things where appropriate?
  143084. .IP \(bu 2
  143085. Are utility functions used where appropriate? Does this change re\-implement
  143086. something we already have code for?
  143087. .IP \(bu 2
  143088. Is the right thing being fixed? There are cases where it\(aqs appropriate to fix
  143089. a test and cases where it\(aqs appropriate to fix the code that\(aqs under test.
  143090. Which is best for the user? Is this change a shortcut or a solution that will
  143091. be solid in the months and years to come?
  143092. .IP \(bu 2
  143093. How will this code react to changes elsewhere in the code base? What is it
  143094. coupled to and have we fully thought through how best to present a coherent
  143095. interface to consumers of a given function or method?
  143096. .IP \(bu 2
  143097. Does this PR try to fix too many bugs/problems at once?
  143098. .IP \(bu 2
  143099. Should this be split into multiple PRs to make them easier to test and reason
  143100. about?
  143101. .UNINDENT
  143102. .SS Pull Request Requirements
  143103. .sp
  143104. The following outlines what is required before a pull request can be merged into
  143105. the salt project. For each of these requirements, an exception can be made
  143106. that requires 3 approvals before merge. The exceptions are detailed more below.
  143107. .SS All PR requirements
  143108. .INDENT 0.0
  143109. .INDENT 3.5
  143110. .INDENT 0.0
  143111. .IP \(bu 2
  143112. Approval Required: approval review from core team member OR 1 approval review
  143113. from captain of working group
  143114. .IP \(bu 2
  143115. Cannot merge your own PR until 1 reviewer approves from defined list above that
  143116. is not the author.
  143117. .IP \(bu 2
  143118. All Tests Pass
  143119. .UNINDENT
  143120. .UNINDENT
  143121. .UNINDENT
  143122. .SS Bug Fix PR requirements
  143123. .INDENT 0.0
  143124. .INDENT 3.5
  143125. .INDENT 0.0
  143126. .IP \(bu 2
  143127. Test Coverage: regression test written to cover bug fix. Contributors only need
  143128. to write test coverage for their specific changes.
  143129. .IP \(bu 2
  143130. Point to the issue the PR is resolving. If there is not an issue one will need
  143131. to be created.
  143132. .UNINDENT
  143133. .UNINDENT
  143134. .UNINDENT
  143135. .SS Feature PR requirements
  143136. .INDENT 0.0
  143137. .INDENT 3.5
  143138. .INDENT 0.0
  143139. .IP \(bu 2
  143140. Test Coverage: tests written to cover new feature. Contributors only need to write
  143141. test coverage for their specific changes.
  143142. .IP \(bu 2
  143143. Release Notes: Add note in release notes of new feature for relative release.
  143144. .IP \(bu 2
  143145. Add .. versionadded:: <release> to module\(aqs documentation. If you are not certain
  143146. which release your fix will be included in you can include TBD and the PR reviewer
  143147. will let you know the correct name of the release you need to update to the versionadded.
  143148. .UNINDENT
  143149. .UNINDENT
  143150. .UNINDENT
  143151. .SS Exceptions to all requirements
  143152. .sp
  143153. As previously stated, all of the above requirements can be bypassed with 3 approvals.
  143154. PR\(aqs that do not require tests include:
  143155. .INDENT 0.0
  143156. .INDENT 3.5
  143157. .INDENT 0.0
  143158. .IP \(bu 2
  143159. documentation
  143160. .IP \(bu 2
  143161. cosmetic changes (for example changing from log.debug to log.trace)
  143162. .IP \(bu 2
  143163. fixing tests
  143164. .IP \(bu 2
  143165. pylint
  143166. .IP \(bu 2
  143167. changes outside of the salt directory
  143168. .UNINDENT
  143169. .UNINDENT
  143170. .UNINDENT
  143171. .SS Reporting Bugs
  143172. .sp
  143173. Salt uses GitHub to track open issues and feature requests.
  143174. .sp
  143175. To file a bug, please navigate to the \fI\%new issue page for the Salt project\fP\&.
  143176. .sp
  143177. In an issue report, please include the following information:
  143178. .INDENT 0.0
  143179. .INDENT 3.5
  143180. .INDENT 0.0
  143181. .IP \(bu 2
  143182. The output of \fBsalt \-\-versions\-report\fP from the relevant machines. This
  143183. can also be gathered remotely by using \fBsalt <my_tgt>
  143184. test.versions_report\fP\&.
  143185. .IP \(bu 2
  143186. A description of the problem including steps taken to cause the issue to
  143187. occur and the expected behaviour.
  143188. .IP \(bu 2
  143189. Any steps taken to attempt to remediate the problem.
  143190. .IP \(bu 2
  143191. Any configuration options set in a configuration file that may be relevant.
  143192. .IP \(bu 2
  143193. A reproduceable test case. This may be as simple as an SLS file that
  143194. illustrates a problem or it may be a link to a repository that contains a
  143195. number of SLS files that can be used together to re\-produce a problem. If
  143196. the problem is transitory, any information that can be used to try and
  143197. reproduce the problem is helpful.
  143198. .IP \(bu 2
  143199. [Optional] The output of each salt component (master/minion/CLI) running
  143200. with the \fB\-ldebug\fP flag set.
  143201. .UNINDENT
  143202. .sp
  143203. \fBNOTE:\fP
  143204. .INDENT 0.0
  143205. .INDENT 3.5
  143206. Please be certain to scrub any logs or SLS files for sensitive data!
  143207. .UNINDENT
  143208. .UNINDENT
  143209. .UNINDENT
  143210. .UNINDENT
  143211. .SS Salt Topology
  143212. .sp
  143213. Salt is based on a powerful, asynchronous, network topology using ZeroMQ. Many
  143214. ZeroMQ systems are in place to enable communication. The central idea is to
  143215. have the fastest communication possible.
  143216. .SS Servers
  143217. .sp
  143218. The Salt Master runs 2 network services. First is the ZeroMQ PUB system. This
  143219. service by default runs on port \fB4505\fP and can be configured via the
  143220. \fBpublish_port\fP option in the master configuration.
  143221. .sp
  143222. Second is the ZeroMQ REP system. This is a separate interface used for all
  143223. bi\-directional communication with minions. By default this system binds to
  143224. port \fB4506\fP and can be configured via the \fBret_port\fP option in the master.
  143225. .SS PUB/SUB
  143226. .sp
  143227. The commands sent out via the salt client are broadcast out to the minions via
  143228. ZeroMQ PUB/SUB. This is done by allowing the minions to maintain a connection
  143229. back to the Salt Master and then all connections are informed to download the
  143230. command data at once. The command data is kept extremely small (usually less
  143231. than 1K) so it is not a burden on the network.
  143232. .SS Return
  143233. .sp
  143234. The PUB/SUB system is a one way communication, so once a publish is sent out
  143235. the PUB interface on the master has no further communication with the minion.
  143236. The minion, after running the command, then sends the command\(aqs return data
  143237. back to the master via the \fBret_port\fP\&.
  143238. .SS Developing Salt Tutorial
  143239. .sp
  143240. This tutorial assumes you have:
  143241. .INDENT 0.0
  143242. .IP \(bu 2
  143243. a web browser
  143244. .IP \(bu 2
  143245. a GitHub account (\fB<my_account>\fP)
  143246. .IP \(bu 2
  143247. a command line (CLI)
  143248. .IP \(bu 2
  143249. git
  143250. .IP \(bu 2
  143251. a text editor
  143252. .UNINDENT
  143253. .SS Fork
  143254. .sp
  143255. In your browser, navigate to the \fBsaltstack/salt\fP \fI\%GitHub repository\fP\&.
  143256. .sp
  143257. Click on \fBFork\fP (\fI\%https://github.com/saltstack/salt/#fork\-destination\-box\fP).
  143258. .sp
  143259. \fBNOTE:\fP
  143260. .INDENT 0.0
  143261. .INDENT 3.5
  143262. If you have more than one GitHub presence, for example if you are a member
  143263. of a team, GitHub will ask you into which area to clone Salt. If you don\(aqt
  143264. know where, then select your personal GitHub account.
  143265. .UNINDENT
  143266. .UNINDENT
  143267. .SS Clone
  143268. .sp
  143269. In your CLI, navigate to the directory into which you want clone the Salt
  143270. codebase and submit the following command:
  143271. .INDENT 0.0
  143272. .INDENT 3.5
  143273. .sp
  143274. .nf
  143275. .ft C
  143276. $ git clone https://github.com/<my_account>/salt.git
  143277. .ft P
  143278. .fi
  143279. .UNINDENT
  143280. .UNINDENT
  143281. .sp
  143282. where \fB<my_account>\fP is the name of your GitHub account. After the clone has
  143283. completed, add SaltStack as a second remote and fetch any changes from
  143284. \fBupstream\fP\&.
  143285. .INDENT 0.0
  143286. .INDENT 3.5
  143287. .sp
  143288. .nf
  143289. .ft C
  143290. $ cd salt
  143291. $ git remote add upstream https://github.com/saltstack/salt.git
  143292. $ git fetch upstream
  143293. .ft P
  143294. .fi
  143295. .UNINDENT
  143296. .UNINDENT
  143297. .sp
  143298. For this tutorial, we will be working off from the \fBmaster\fP branch, which is
  143299. the default branch for the SaltStack GitHub project. This branch needs to
  143300. track \fBupstream/master\fP so that we will get all upstream changes when they
  143301. happen.
  143302. .INDENT 0.0
  143303. .INDENT 3.5
  143304. .sp
  143305. .nf
  143306. .ft C
  143307. $ git checkout master
  143308. $ git branch \-\-set\-upstream\-to upstream/master
  143309. .ft P
  143310. .fi
  143311. .UNINDENT
  143312. .UNINDENT
  143313. .SS Fetch
  143314. .sp
  143315. Fetch any \fBupstream\fP changes on the \fBmaster\fP branch and sync them to your
  143316. local copy of the branch with a single command:
  143317. .INDENT 0.0
  143318. .INDENT 3.5
  143319. .sp
  143320. .nf
  143321. .ft C
  143322. $ git pull \-\-rebase
  143323. .ft P
  143324. .fi
  143325. .UNINDENT
  143326. .UNINDENT
  143327. .sp
  143328. \fBNOTE:\fP
  143329. .INDENT 0.0
  143330. .INDENT 3.5
  143331. For an explanation on \fBpull\fP vs \fBpull \-\-rebase\fP and other excellent
  143332. points, see \fI\%this article\fP by
  143333. Mislav Marohnić.
  143334. .UNINDENT
  143335. .UNINDENT
  143336. .SS Branch
  143337. .sp
  143338. Now we are ready to get to work. Consult the \fI\%sprint beginner bug list\fP
  143339. and select an execution module whose \fB__virtual__\fP function needs to be
  143340. updated. I\(aqll select the \fBalternatives\fP module.
  143341. .sp
  143342. Create a new branch off from \fBmaster\fP\&. Be sure to name it something short
  143343. and descriptive.
  143344. .INDENT 0.0
  143345. .INDENT 3.5
  143346. .sp
  143347. .nf
  143348. .ft C
  143349. $ git checkout \-b virt_ret
  143350. .ft P
  143351. .fi
  143352. .UNINDENT
  143353. .UNINDENT
  143354. .SS Edit
  143355. .sp
  143356. Edit the file you have selected, and verify that the changes are correct.
  143357. .INDENT 0.0
  143358. .INDENT 3.5
  143359. .sp
  143360. .nf
  143361. .ft C
  143362. $ vim salt/modules/alternatives.py
  143363. $ git diff
  143364. .ft P
  143365. .fi
  143366. .UNINDENT
  143367. .UNINDENT
  143368. .INDENT 0.0
  143369. .INDENT 3.5
  143370. .sp
  143371. .nf
  143372. .ft C
  143373. diff \-\-git a/salt/modules/alternatives.py b/salt/modules/alternatives.py
  143374. index 1653e5f..30c0a59 100644
  143375. \-\-\- a/salt/modules/alternatives.py
  143376. +++ b/salt/modules/alternatives.py
  143377. @@ \-30,7 +30,7 @@ def __virtual__():
  143378. \(aq\(aq\(aq
  143379. if os.path.isdir(\(aq/etc/alternatives\(aq):
  143380. return True
  143381. \- return False
  143382. + return (False, \(aqCannot load alternatives module: /etc/alternatives dir not found\(aq)
  143383. def _get_cmd():
  143384. .ft P
  143385. .fi
  143386. .UNINDENT
  143387. .UNINDENT
  143388. .SS Commit
  143389. .sp
  143390. Stage and commit the changes. Write a descriptive commit summary, but try to
  143391. keep it less than 50 characters. Review your commit.
  143392. .INDENT 0.0
  143393. .INDENT 3.5
  143394. .sp
  143395. .nf
  143396. .ft C
  143397. $ git add salt/modules/alternatives.py
  143398. $ git commit \-m \(aqmodules.alternatives: __virtual__ return err msg\(aq
  143399. $ git show
  143400. .ft P
  143401. .fi
  143402. .UNINDENT
  143403. .UNINDENT
  143404. .sp
  143405. \fBNOTE:\fP
  143406. .INDENT 0.0
  143407. .INDENT 3.5
  143408. If you need more room to describe the changes in your commit, run \fBgit
  143409. commit\fP (without the \fB\-m\fP, message, option) and you will be presented
  143410. with an editor. The first line is the commit summary and should still be
  143411. 50 characters or less. The following paragraphs you create are free form
  143412. and will be preserved as part of the commit.
  143413. .UNINDENT
  143414. .UNINDENT
  143415. .SS Push
  143416. .sp
  143417. Push your branch to your GitHub account. You will likely need to enter your
  143418. GitHub username and password.
  143419. .INDENT 0.0
  143420. .INDENT 3.5
  143421. .sp
  143422. .nf
  143423. .ft C
  143424. $ git push origin virt_ret
  143425. Username for \(aqhttps://github.com\(aq: <my_account>
  143426. Password for \(aqhttps://<my_account>@github.com\(aq:
  143427. .ft P
  143428. .fi
  143429. .UNINDENT
  143430. .UNINDENT
  143431. .sp
  143432. \fBNOTE:\fP
  143433. .INDENT 0.0
  143434. .INDENT 3.5
  143435. If authentication over https does not work, you can alternatively setup
  143436. \fI\%ssh keys\fP\&. Once
  143437. you have done this, you may need add the keys to your git repository
  143438. configuration
  143439. .INDENT 0.0
  143440. .INDENT 3.5
  143441. .sp
  143442. .nf
  143443. .ft C
  143444. $ git config ssh.key ~/.ssh/<key_name>
  143445. .ft P
  143446. .fi
  143447. .UNINDENT
  143448. .UNINDENT
  143449. .sp
  143450. where \fB<key_name>\fP is the file name of the private key you created.
  143451. .UNINDENT
  143452. .UNINDENT
  143453. .SS Merge
  143454. .sp
  143455. In your browser, navigate to the \fI\%new pull request\fP page on the \fBsaltstack/salt\fP
  143456. GitHub repository and click on \fBcompare across forks\fP\&. Select
  143457. \fB<my_account>\fP from the list of head forks and the branch you are wanting to
  143458. merge into \fBmaster\fP (\fBvirt_ret\fP in this case).
  143459. .sp
  143460. When you have finished reviewing the changes, click \fBCreate pull request\fP\&.
  143461. .sp
  143462. If your pull request contains only a single commit, the title and comment will
  143463. be taken from that commit\(aqs summary and message, otherwise the branch name is
  143464. used for the title. Edit these fields as necessary and click \fBCreate pull
  143465. request\fP\&.
  143466. .sp
  143467. \fBNOTE:\fP
  143468. .INDENT 0.0
  143469. .INDENT 3.5
  143470. Although these instructions seem to be the official pull request procedure
  143471. on github\(aqs website, here are two alternative methods that are simpler.
  143472. .INDENT 0.0
  143473. .IP \(bu 2
  143474. If you navigate to your clone of salt,
  143475. \fBhttps://github.com/<my_account>/salt\fP, depending on how old your
  143476. branch is or how recently you pushed updates on it, you may be presented
  143477. with a button to create a pull request with your branch.
  143478. .IP \(bu 2
  143479. I find it easiest to edit the following URL:
  143480. .sp
  143481. \fBhttps://github.com/saltstack/salt/compare/master...<my_account>:virt_ret\fP
  143482. .UNINDENT
  143483. .UNINDENT
  143484. .UNINDENT
  143485. .SS Resources
  143486. .sp
  143487. GitHub offers many great tutorials on various aspects of the git\- and
  143488. GitHub\-centric development workflow:
  143489. .sp
  143490. \fI\%https://help.github.com/\fP
  143491. .sp
  143492. There are many topics covered by the Salt Developer documentation:
  143493. .sp
  143494. \fI\%https://docs.saltstack.com/en/latest/topics/development/index.html\fP
  143495. .sp
  143496. The contributing documentation presents more details on specific contributing
  143497. topics:
  143498. .sp
  143499. \fI\%https://docs.saltstack.com/en/latest/topics/development/contributing.html\fP
  143500. .SS Modular Systems
  143501. .sp
  143502. When first working with Salt, it is not always clear where all of the modular
  143503. components are and what they do. Salt comes loaded with more modular systems
  143504. than many users are aware of, making Salt very easy to extend in many places.
  143505. .sp
  143506. The most commonly used modular systems are execution modules and states. But
  143507. the modular systems extend well beyond the more easily exposed components
  143508. and are often added to Salt to make the complete system more flexible.
  143509. .SS Developing New Modules
  143510. .SS Interactive Debugging
  143511. .sp
  143512. Sometimes debugging with \fBprint()\fP and extra logs sprinkled everywhere is not
  143513. the best strategy.
  143514. .sp
  143515. IPython is a helpful debug tool that has an interactive python environment
  143516. which can be embedded in python programs.
  143517. .sp
  143518. First the system will require IPython to be installed.
  143519. .INDENT 0.0
  143520. .INDENT 3.5
  143521. .sp
  143522. .nf
  143523. .ft C
  143524. # Debian
  143525. apt\-get install ipython
  143526. # Arch Linux
  143527. pacman \-Syu ipython2
  143528. # RHEL/CentOS (via EPEL)
  143529. yum install python\-ipython
  143530. .ft P
  143531. .fi
  143532. .UNINDENT
  143533. .UNINDENT
  143534. .sp
  143535. Now, in the troubling python module, add the following line at a location where
  143536. the debugger should be started:
  143537. .INDENT 0.0
  143538. .INDENT 3.5
  143539. .sp
  143540. .nf
  143541. .ft C
  143542. test = \(aqtest123\(aq
  143543. import IPython; IPython.embed_kernel()
  143544. .ft P
  143545. .fi
  143546. .UNINDENT
  143547. .UNINDENT
  143548. .sp
  143549. After running a Salt command that hits that line, the following will show up in
  143550. the log file:
  143551. .INDENT 0.0
  143552. .INDENT 3.5
  143553. .sp
  143554. .nf
  143555. .ft C
  143556. [CRITICAL] To connect another client to this kernel, use:
  143557. [IPKernelApp] \-\-existing kernel\-31271.json
  143558. .ft P
  143559. .fi
  143560. .UNINDENT
  143561. .UNINDENT
  143562. .sp
  143563. Now on the system that invoked \fBembed_kernel\fP, run the following command from
  143564. a shell:
  143565. .INDENT 0.0
  143566. .INDENT 3.5
  143567. .sp
  143568. .nf
  143569. .ft C
  143570. # NOTE: use ipython2 instead of ipython for Arch Linux
  143571. ipython console \-\-existing
  143572. .ft P
  143573. .fi
  143574. .UNINDENT
  143575. .UNINDENT
  143576. .sp
  143577. This provides a console that has access to all the vars and functions, and even
  143578. supports tab\-completion.
  143579. .INDENT 0.0
  143580. .INDENT 3.5
  143581. .sp
  143582. .nf
  143583. .ft C
  143584. print(test)
  143585. test123
  143586. .ft P
  143587. .fi
  143588. .UNINDENT
  143589. .UNINDENT
  143590. .sp
  143591. To exit IPython and continue running Salt, press \fBCtrl\-d\fP to logout.
  143592. .SS Special Module Contents
  143593. .sp
  143594. These are things that may be defined by the module to influence various things.
  143595. .SS __virtual__
  143596. .SS __virtual_aliases__
  143597. .SS __virtualname__
  143598. .SS __init__
  143599. .sp
  143600. Called before \fB__virtual__()\fP
  143601. .SS __proxyenabled__
  143602. .sp
  143603. grains and proxy modules
  143604. .sp
  143605. __proxyenabled__ as a list containing the names of the proxy types that the module supports.
  143606. .SS __load__
  143607. .SS __func_alias__
  143608. .SS __outputter__
  143609. .SS Dunder Dictionaries
  143610. .sp
  143611. Salt provides several special "dunder" dictionaries as a convenience for Salt
  143612. development. These include \fB__opts__\fP, \fB__context__\fP, \fB__salt__\fP, and
  143613. others. This document will describe each dictionary and detail where they exist
  143614. and what information and/or functionality they provide.
  143615. .sp
  143616. The following dunder dictionaries are always defined, but may be empty
  143617. .INDENT 0.0
  143618. .IP \(bu 2
  143619. \fB__context__\fP
  143620. .IP \(bu 2
  143621. \fB__grains__\fP
  143622. .IP \(bu 2
  143623. \fB__pillar__\fP
  143624. .IP \(bu 2
  143625. \fB__opts__\fP
  143626. .UNINDENT
  143627. .SS __opts__
  143628. .sp
  143629. Defined in: All modules
  143630. .sp
  143631. The \fB__opts__\fP dictionary contains all of the options passed in the
  143632. configuration file for the master or minion.
  143633. .sp
  143634. \fBNOTE:\fP
  143635. .INDENT 0.0
  143636. .INDENT 3.5
  143637. In many places in salt, instead of pulling raw data from the __opts__
  143638. dict, configuration data should be pulled from the salt \fIget\fP functions
  143639. such as config.get, aka \- \fB__salt__[\(aqconfig.get\(aq](\(aqfoo:bar\(aq)\fP
  143640. The \fIget\fP functions also allow for dict traversal via the \fI:\fP delimiter.
  143641. Consider using get functions whenever using \fB__opts__\fP or \fB__pillar__\fP
  143642. and \fB__grains__\fP (when using grains for configuration data)
  143643. .UNINDENT
  143644. .UNINDENT
  143645. .sp
  143646. The configuration file data made available in the \fB__opts__\fP dictionary is the
  143647. configuration data relative to the running daemon. If the modules are loaded and
  143648. executed by the master, then the master configuration data is available, if the
  143649. modules are executed by the minion, then the minion configuration is
  143650. available. Any additional information passed into the respective configuration
  143651. files is made available
  143652. .SS __salt__
  143653. .sp
  143654. Defined in: Auth, Beacons, Engines, Execution, Executors, Outputters, Pillars,
  143655. Proxies, Renderers, Returners, Runners, SDB, SSH Wrappers, State, Thorium
  143656. .sp
  143657. \fB__salt__\fP contains the execution module functions. This allows for all
  143658. functions to be called as they have been set up by the salt loader.
  143659. .INDENT 0.0
  143660. .INDENT 3.5
  143661. .sp
  143662. .nf
  143663. .ft C
  143664. __salt__[\(aqcmd.run\(aq](\(aqfdisk \-l\(aq)
  143665. __salt__[\(aqnetwork.ip_addrs\(aq]()
  143666. .ft P
  143667. .fi
  143668. .UNINDENT
  143669. .UNINDENT
  143670. .sp
  143671. \fBNOTE:\fP
  143672. .INDENT 0.0
  143673. .INDENT 3.5
  143674. When used in runners or outputters, \fB__salt__\fP references other
  143675. runner/outputter modules, and not execution modules.
  143676. .UNINDENT
  143677. .UNINDENT
  143678. .SS __grains__
  143679. .sp
  143680. Filled in for: Execution, Pillar, Renderer, Returner, SSH Wrapper, State.
  143681. .sp
  143682. The \fB__grains__\fP dictionary contains the grains data generated by the minion
  143683. that is currently being worked with. In execution modules, state modules and
  143684. returners this is the grains of the minion running the calls, when generating
  143685. the external pillar the \fB__grains__\fP is the grains data from the minion that
  143686. the pillar is being generated for.
  143687. .sp
  143688. While \fB__grains__\fP is defined for every module, it\(aqs only filled in for some.
  143689. .SS __pillar__
  143690. .sp
  143691. Filled in for: Execution, Renderer, Returner, SSH Wrapper, State
  143692. .sp
  143693. The \fB__pillar__\fP dictionary contains the pillar for the respective minion.
  143694. .sp
  143695. While \fB__pillar__\fP is defined for every module, it\(aqs only filled in for some.
  143696. .SS __ext_pillar__
  143697. .sp
  143698. Filled in for: Pillar
  143699. .sp
  143700. The \fB__ext_pillar__\fP dictionary contains the external pillar modules.
  143701. .SS __context__
  143702. .sp
  143703. During a state run the \fB__context__\fP dictionary persists across all states
  143704. that are run and then is destroyed when the state ends.
  143705. .sp
  143706. When running an execution module \fB__context__\fP persists across all module
  143707. executions until the modules are refreshed; such as when
  143708. \fBsaltutil.sync_all\fP or
  143709. \fBstate.apply\fP are executed.
  143710. .sp
  143711. A great place to see how to use \fB__context__\fP is in the cp.py module in
  143712. salt/modules/cp.py. The fileclient authenticates with the master when it is
  143713. instantiated and then is used to copy files to the minion. Rather than create a
  143714. new fileclient for each file that is to be copied down, one instance of the
  143715. fileclient is instantiated in the \fB__context__\fP dictionary and is reused for
  143716. each file. Here is an example from salt/modules/cp.py:
  143717. .INDENT 0.0
  143718. .INDENT 3.5
  143719. .sp
  143720. .nf
  143721. .ft C
  143722. if not \(aqcp.fileclient\(aq in __context__:
  143723. __context__[\(aqcp.fileclient\(aq] = salt.fileclient.get_file_client(__opts__)
  143724. .ft P
  143725. .fi
  143726. .UNINDENT
  143727. .UNINDENT
  143728. .sp
  143729. \fBNOTE:\fP
  143730. .INDENT 0.0
  143731. .INDENT 3.5
  143732. Because __context__ may or may not have been destroyed, always be
  143733. sure to check for the existence of the key in __context__ and
  143734. generate the key before using it.
  143735. .UNINDENT
  143736. .UNINDENT
  143737. .SS __utils__
  143738. .sp
  143739. Defined in: Cloud, Engine, Execution, File Server, Grain, Pillar, Proxy, Roster, Runner, SDB, State
  143740. .SS __proxy__
  143741. .sp
  143742. Defined in: Beacon, Engine, Execution, Executor, Proxy, Renderer, Returner, State, Util
  143743. .SS __runner__
  143744. .sp
  143745. Defined in: Engine, Roster, Thorium
  143746. .sp
  143747. \fBNOTE:\fP
  143748. .INDENT 0.0
  143749. .INDENT 3.5
  143750. When used in engines, it should be called __runners__ (plural)
  143751. .UNINDENT
  143752. .UNINDENT
  143753. .SS __executors__
  143754. .sp
  143755. Defined in: Executor
  143756. .SS __ret__
  143757. .sp
  143758. Defined in: Proxy
  143759. .SS __thorium__
  143760. .sp
  143761. Defined in: Thorium
  143762. .SS __states__
  143763. .sp
  143764. Defined in: Renderers, State
  143765. .SS __serializers__
  143766. .sp
  143767. Defined in: State
  143768. .SS __sdb__
  143769. .sp
  143770. Defined in: SDB
  143771. .SS Additional Globals
  143772. .sp
  143773. Defined for: Runners, Execution Modules, Wheels
  143774. .INDENT 0.0
  143775. .IP \(bu 2
  143776. \fB__jid__\fP: The job ID
  143777. .IP \(bu 2
  143778. \fB__user__\fP: The user
  143779. .IP \(bu 2
  143780. \fB__tag__\fP: The jid tag
  143781. .IP \(bu 2
  143782. \fB__jid_event__\fP: A \fBsalt.utils.event.NamespacedEvent\fP\&.
  143783. .UNINDENT
  143784. .sp
  143785. \fBNamespacedEvent\fP defines a single
  143786. method \fBfire_event\fP, that takes data and tag. The Runner docs has examples.
  143787. .SS Configuration Options
  143788. .sp
  143789. A number of configuration options can affect the load process. This is a quick
  143790. list of them:
  143791. .INDENT 0.0
  143792. .IP \(bu 2
  143793. \fBautoload_dynamic_modules\fP (\fBMinion\fP)
  143794. .IP \(bu 2
  143795. \fBcython_enable\fP (\fBMinion\fP, \fBMaster\fP)
  143796. .IP \(bu 2
  143797. \fBdisable_modules\fP (\fBMinion\fP)
  143798. .IP \(bu 2
  143799. \fBdisable_returners\fP (\fBMinion\fP)
  143800. .IP \(bu 2
  143801. \fBenable_zip_modules\fP (\fBMinion\fP)
  143802. .IP \(bu 2
  143803. \fBextension_modules\fP (\fBMaster\fP)
  143804. .IP \(bu 2
  143805. \fBextmod_whitelist\fP (\fBMinion\fP, \fBMaster\fP)
  143806. .IP \(bu 2
  143807. \fBextmod_blacklist\fP (\fBMinion\fP, \fBMaster\fP)
  143808. .IP \(bu 2
  143809. \fBwhitelist_modules\fP (\fBMinion\fP)
  143810. .IP \(bu 2
  143811. \fBgrains_dirs\fP (\fBMinion\fP)
  143812. .IP \(bu 2
  143813. \fBmodule_dirs\fP (\fBMinion\fP, \fBMaster\fP)
  143814. .IP \(bu 2
  143815. \fBoutputter_dirs\fP (\fBMinion\fP, \fBMaster\fP)
  143816. .IP \(bu 2
  143817. \fBproviders\fP (\fBMinion\fP)
  143818. .IP \(bu 2
  143819. \fBrender_dirs\fP (\fBMinion\fP)
  143820. .IP \(bu 2
  143821. \fBreturner_dirs\fP (\fBMinion\fP)
  143822. .IP \(bu 2
  143823. \fBrunner_dirs\fP (\fBMaster\fP)
  143824. .IP \(bu 2
  143825. \fBstates_dirs\fP (\fBMinion\fP)
  143826. .IP \(bu 2
  143827. \fButils_dirs\fP (\fBMinion\fP)
  143828. .UNINDENT
  143829. .SS Loading Modules
  143830. .sp
  143831. Modules come primarily from several sources:
  143832. .INDENT 0.0
  143833. .IP \(bu 2
  143834. The Salt package itself
  143835. .IP \(bu 2
  143836. The Salt File Server
  143837. .IP \(bu 2
  143838. The extmods directory
  143839. .IP \(bu 2
  143840. Secondary packages installed
  143841. .UNINDENT
  143842. .sp
  143843. Using one source to override another is not supported.
  143844. .SS The Salt Package
  143845. .sp
  143846. Salt itself ships with a large number of modules. These are part of the Salt
  143847. package itself and don\(aqt require the user to do anything to use them. (Although
  143848. a number of them have additional dependencies and/or configuration.)
  143849. .SS The Salt File Server
  143850. .sp
  143851. The user may add modules by simply placing them in special directories in their
  143852. fileserver\&.
  143853. .sp
  143854. The name of the directory inside of the file server is the directory name
  143855. prepended by underscore, such as:
  143856. .INDENT 0.0
  143857. .IP \(bu 2
  143858. \fB_grains\fP
  143859. .IP \(bu 2
  143860. \fB_modules\fP
  143861. .IP \(bu 2
  143862. \fB_states\fP
  143863. .UNINDENT
  143864. .sp
  143865. Modules must be synced before they can be used. This can happen a few ways,
  143866. discussed below.
  143867. .sp
  143868. \fBNOTE:\fP
  143869. .INDENT 0.0
  143870. .INDENT 3.5
  143871. Using saltenvs besides \fBbase\fP may not work in all contexts.
  143872. .UNINDENT
  143873. .UNINDENT
  143874. .SS Sync Via States
  143875. .sp
  143876. The minion configuration contains an option \fBautoload_dynamic_modules\fP
  143877. which defaults to \fBTrue\fP\&. This option makes the state system refresh all
  143878. dynamic modules when states are run. To disable this behavior set
  143879. \fBautoload_dynamic_modules\fP to \fBFalse\fP in the minion config.
  143880. .sp
  143881. When dynamic modules are autoloaded via states, only the modules defined in the
  143882. same saltenvs as the states currently being run.
  143883. .SS Sync Via the saltutil Module
  143884. .sp
  143885. The saltutil module has a number of functions that can be used to sync all
  143886. or specific dynamic modules. The \fBsaltutil.sync_*\fP
  143887. \fBexecution functions\fP and
  143888. \fBrunner functions\fP can be used to sync modules
  143889. to minions and the master, respectively.
  143890. .SS The extmods Directory
  143891. .sp
  143892. Any files places in the directory set by \fBextension_modules\fP settings
  143893. (\fBminion\fP,
  143894. \fBmaster\fP, default
  143895. \fB/var/cache/salt/*/extmods\fP) can also be loaded as modules. Note that these
  143896. directories are also used by the \fBsaltutil.sync_*\fP functions (mentioned
  143897. above) and files may be overwritten.
  143898. .SS Secondary Packages
  143899. .sp
  143900. Third\-party packages may also add modules to Salt if they are installed in the
  143901. same system and Python environment as the Salt Minion or Master.
  143902. .sp
  143903. This is done via setuptools entry points:
  143904. .INDENT 0.0
  143905. .INDENT 3.5
  143906. .sp
  143907. .nf
  143908. .ft C
  143909. setup(
  143910. # ...
  143911. entry_points={
  143912. \(aqsalt.loader\(aq: [
  143913. \(aqmodule_dirs=spirofs.loader:module\(aq,
  143914. ],
  143915. },
  143916. # ...
  143917. )
  143918. .ft P
  143919. .fi
  143920. .UNINDENT
  143921. .UNINDENT
  143922. .sp
  143923. Note that these are not synced from the Salt Master to the Minions. They must be
  143924. installed independently on each Minion.
  143925. .SS Module Types
  143926. .sp
  143927. The specific names used by each loading method above are as follows. See sections below
  143928. for a short summary of each of these systems.
  143929. .TS
  143930. center;
  143931. |l|l|l|l|.
  143932. _
  143933. T{
  143934. Module Type
  143935. T} T{
  143936. Salt Package Name
  143937. T} T{
  143938. FS/Directory Name
  143939. T} T{
  143940. Entry Point
  143941. T}
  143942. _
  143943. T{
  143944. Auth
  143945. T} T{
  143946. \fBsalt.auth\fP (index)
  143947. T} T{
  143948. \fBauth\fP [1]
  143949. T} T{
  143950. \fBauth_dirs\fP
  143951. T}
  143952. _
  143953. T{
  143954. Beacon
  143955. T} T{
  143956. \fBsalt.beacons\fP (index)
  143957. T} T{
  143958. \fBbeacons\fP
  143959. T} T{
  143960. \fBbeacons_dirs\fP
  143961. T}
  143962. _
  143963. T{
  143964. Cache
  143965. T} T{
  143966. \fBsalt.cache\fP (index)
  143967. T} T{
  143968. \fBcache\fP
  143969. T} T{
  143970. \fBcache_dirs\fP
  143971. T}
  143972. _
  143973. T{
  143974. Cloud
  143975. T} T{
  143976. \fBsalt.cloud.clouds\fP (index)
  143977. T} T{
  143978. \fBclouds\fP
  143979. T} T{
  143980. \fBcloud_dirs\fP
  143981. T}
  143982. _
  143983. T{
  143984. Engine
  143985. T} T{
  143986. \fBsalt.engines\fP (index)
  143987. T} T{
  143988. \fBengines\fP
  143989. T} T{
  143990. \fBengines_dirs\fP
  143991. T}
  143992. _
  143993. T{
  143994. Execution
  143995. T} T{
  143996. \fBsalt.modules\fP (index)
  143997. T} T{
  143998. \fBmodules\fP
  143999. T} T{
  144000. \fBmodule_dirs\fP
  144001. T}
  144002. _
  144003. T{
  144004. Executor
  144005. T} T{
  144006. \fBsalt.executors\fP (index)
  144007. T} T{
  144008. \fBexecutors\fP
  144009. T} T{
  144010. \fBexecutor_dirs\fP
  144011. T}
  144012. _
  144013. T{
  144014. File Server
  144015. T} T{
  144016. \fBsalt.fileserver\fP (index)
  144017. T} T{
  144018. \fBfileserver\fP
  144019. T} T{
  144020. \fBfileserver_dirs\fP
  144021. T}
  144022. _
  144023. T{
  144024. Grain
  144025. T} T{
  144026. \fBsalt.grains\fP (index)
  144027. T} T{
  144028. \fBgrains\fP
  144029. T} T{
  144030. \fBgrains_dirs\fP
  144031. T}
  144032. _
  144033. T{
  144034. Log Handler
  144035. T} T{
  144036. \fBsalt.log.handlers\fP (index)
  144037. T} T{
  144038. \fBlog_handlers\fP
  144039. T} T{
  144040. \fBlog_handlers_dirs\fP
  144041. T}
  144042. _
  144043. T{
  144044. Matcher
  144045. T} T{
  144046. \fBsalt.matchers\fP
  144047. T} T{
  144048. \fBmatchers\fP
  144049. T} T{
  144050. \fBmatchers_dirs\fP
  144051. T}
  144052. _
  144053. T{
  144054. Metaproxy
  144055. T} T{
  144056. \fBsalt.metaproxy\fP
  144057. T} T{
  144058. \fBmetaproxy\fP [1]
  144059. T} T{
  144060. \fBmetaproxy_dirs\fP
  144061. T}
  144062. _
  144063. T{
  144064. Net API
  144065. T} T{
  144066. \fBsalt.netapi\fP (index)
  144067. T} T{
  144068. \fBnetapi\fP [1]
  144069. T} T{
  144070. \fBnetapi_dirs\fP
  144071. T}
  144072. _
  144073. T{
  144074. Outputter
  144075. T} T{
  144076. \fBsalt.output\fP (index)
  144077. T} T{
  144078. \fBoutput\fP
  144079. T} T{
  144080. \fBoutputter_dirs\fP
  144081. T}
  144082. _
  144083. T{
  144084. Pillar
  144085. T} T{
  144086. \fBsalt.pillar\fP (index)
  144087. T} T{
  144088. \fBpillar\fP
  144089. T} T{
  144090. \fBpillar_dirs\fP
  144091. T}
  144092. _
  144093. T{
  144094. Proxy
  144095. T} T{
  144096. \fBsalt.proxy\fP (index)
  144097. T} T{
  144098. \fBproxy\fP
  144099. T} T{
  144100. \fBproxy_dirs\fP
  144101. T}
  144102. _
  144103. T{
  144104. Queue
  144105. T} T{
  144106. \fBsalt.queues\fP (index)
  144107. T} T{
  144108. \fBqueues\fP
  144109. T} T{
  144110. \fBqueue_dirs\fP
  144111. T}
  144112. _
  144113. T{
  144114. Renderer
  144115. T} T{
  144116. \fBsalt.renderers\fP (index)
  144117. T} T{
  144118. \fBrenderers\fP
  144119. T} T{
  144120. \fBrender_dirs\fP
  144121. T}
  144122. _
  144123. T{
  144124. Returner
  144125. T} T{
  144126. \fBsalt.returners\fP (index)
  144127. T} T{
  144128. \fBreturners\fP
  144129. T} T{
  144130. \fBreturner_dirs\fP
  144131. T}
  144132. _
  144133. T{
  144134. Roster
  144135. T} T{
  144136. \fBsalt.roster\fP (index)
  144137. T} T{
  144138. \fBroster\fP
  144139. T} T{
  144140. \fBroster_dirs\fP
  144141. T}
  144142. _
  144143. T{
  144144. Runner
  144145. T} T{
  144146. \fBsalt.runners\fP (index)
  144147. T} T{
  144148. \fBrunners\fP
  144149. T} T{
  144150. \fBrunner_dirs\fP
  144151. T}
  144152. _
  144153. T{
  144154. SDB
  144155. T} T{
  144156. \fBsalt.sdb\fP (index)
  144157. T} T{
  144158. \fBsdb\fP
  144159. T} T{
  144160. \fBsdb_dirs\fP
  144161. T}
  144162. _
  144163. T{
  144164. Serializer
  144165. T} T{
  144166. \fBsalt.serializers\fP (index)
  144167. T} T{
  144168. \fBserializers\fP [1]
  144169. T} T{
  144170. \fBserializers_dirs\fP
  144171. T}
  144172. _
  144173. T{
  144174. SPM pkgdb
  144175. T} T{
  144176. \fBsalt.spm.pkgdb\fP
  144177. T} T{
  144178. \fBpkgdb\fP [1]
  144179. T} T{
  144180. \fBpkgdb_dirs\fP
  144181. T}
  144182. _
  144183. T{
  144184. SPM pkgfiles
  144185. T} T{
  144186. \fBsalt.spm.pkgfiles\fP
  144187. T} T{
  144188. \fBpkgfiles\fP [1]
  144189. T} T{
  144190. \fBpkgfiles_dirs\fP
  144191. T}
  144192. _
  144193. T{
  144194. SSH Wrapper
  144195. T} T{
  144196. \fBsalt.client.ssh.wrapper\fP
  144197. T} T{
  144198. \fBwrapper\fP [1]
  144199. T} T{
  144200. \fBwrapper_dirs\fP
  144201. T}
  144202. _
  144203. T{
  144204. State
  144205. T} T{
  144206. \fBsalt.states\fP (index)
  144207. T} T{
  144208. \fBstates\fP
  144209. T} T{
  144210. \fBstates_dirs\fP
  144211. T}
  144212. _
  144213. T{
  144214. Thorium
  144215. T} T{
  144216. \fBsalt.thorium\fP (index)
  144217. T} T{
  144218. \fBthorium\fP
  144219. T} T{
  144220. \fBthorium_dirs\fP
  144221. T}
  144222. _
  144223. T{
  144224. Tokens
  144225. T} T{
  144226. \fBsalt.tokens\fP
  144227. T} T{
  144228. \fBtokens\fP
  144229. T} T{
  144230. \fBtokens_dirs\fP
  144231. T}
  144232. _
  144233. T{
  144234. Top
  144235. T} T{
  144236. \fBsalt.tops\fP (index)
  144237. T} T{
  144238. \fBtops\fP
  144239. T} T{
  144240. \fBtop_dirs\fP
  144241. T}
  144242. _
  144243. T{
  144244. Util
  144245. T} T{
  144246. \fBsalt.utils\fP
  144247. T} T{
  144248. \fButils\fP
  144249. T} T{
  144250. \fButils_dirs\fP
  144251. T}
  144252. _
  144253. T{
  144254. Wheel
  144255. T} T{
  144256. \fBsalt.wheels\fP (index)
  144257. T} T{
  144258. \fBwheel\fP
  144259. T} T{
  144260. \fBwheel_dirs\fP
  144261. T}
  144262. _
  144263. .TE
  144264. .IP [1] 5
  144265. These modules cannot be loaded from the Salt File Server.
  144266. .sp
  144267. \fBNOTE:\fP
  144268. .INDENT 0.0
  144269. .INDENT 3.5
  144270. While it is possible to import modules directly with the import statement,
  144271. it is strongly recommended that the appropriate
  144272. dunder dictionary is used to access them
  144273. instead. This is because a number of factors affect module names, module
  144274. selection, and module overloading.
  144275. .UNINDENT
  144276. .UNINDENT
  144277. .SS Auth
  144278. .sp
  144279. The auth module system allows for external authentication routines to be easily
  144280. added into Salt. The \fIauth\fP function needs to be implemented to satisfy the
  144281. requirements of an auth module. Use the \fBpam\fP module as an example.
  144282. .sp
  144283. See External Authentication System for more about
  144284. authentication in Salt.
  144285. .SS Beacon
  144286. .INDENT 0.0
  144287. .IP \(bu 2
  144288. Writing Beacons
  144289. .UNINDENT
  144290. .sp
  144291. Beacons are polled by the Salt event loop to monitor non\-salt processes. See
  144292. Beacons for more information about the beacon system.
  144293. .SS Cache
  144294. .sp
  144295. The minion cache is used by the master to store various information about
  144296. minions. See Minion Data Cache for more information.
  144297. .SS Cloud
  144298. .sp
  144299. Cloud modules are backend implementations used by Salt Cloud\&.
  144300. .SS Engine
  144301. .sp
  144302. Engines are open\-ended services managed by the Salt daemon (both master and
  144303. minion). They may interact with event loop, call other modules, or a variety of
  144304. non\-salt tasks. See Salt Engines for complete details.
  144305. .SS Execution
  144306. .sp
  144307. Execution modules make up the core of the functionality used by Salt to
  144308. interact with client systems. The execution modules create the core system
  144309. management library used by all Salt systems, including states, which
  144310. interact with minion systems.
  144311. .sp
  144312. Execution modules are completely open ended in their execution. They can
  144313. be used to do anything required on a minion, from installing packages to
  144314. detecting information about the system. The only restraint in execution
  144315. modules is that the defined functions always return a JSON serializable
  144316. object.
  144317. .SS Executor
  144318. .sp
  144319. Executors control how execution modules get called. The default is to just call
  144320. them, but this can be customized.
  144321. .SS File Server
  144322. .sp
  144323. The file server module system is used to create file server backends used by the
  144324. Salt Master. These modules need to implement the functions used in the
  144325. fileserver subsystem. Use the \fBgitfs\fP module as an example.
  144326. .sp
  144327. See File Server Backends for more information.
  144328. .SS Grains
  144329. .INDENT 0.0
  144330. .IP \(bu 2
  144331. writing\-grains
  144332. .UNINDENT
  144333. .sp
  144334. Grain modules define extra routines to populate grains data. All defined
  144335. public functions will be executed and MUST return a Python dict object. The
  144336. dict keys will be added to the grains made available to the minion.
  144337. .sp
  144338. See Grains for more.
  144339. .SS Log Handler
  144340. .sp
  144341. Log handlers allows the logs from salt (master or minion) to be sent to log
  144342. aggregation systems.
  144343. .SS Matcher
  144344. .sp
  144345. Matcher modules are used to define the minion targeting expressions\&.
  144346. For now, it is only possible to override the existing matchers
  144347. (the required CLI plumbing for custom matchers is not implemented yet).
  144348. .SS Metaproxy
  144349. .sp
  144350. Metaproxy is an abstraction layer above the existing proxy minion. It enables
  144351. adding different types of proxy minions that can still load existing proxymodules.
  144352. .SS Net API
  144353. .sp
  144354. Net API modules are the actual server implementation used by Salt API.
  144355. .SS Output
  144356. .sp
  144357. The output modules supply the outputter system with routines to display data
  144358. in the terminal. These modules are very simple and only require the \fIoutput\fP
  144359. function to execute. The default system outputter is the \fBnested\fP module.
  144360. .SS Pillar
  144361. .SS External Pillars
  144362. .sp
  144363. Salt provides a mechanism for generating pillar data by calling external
  144364. pillar interfaces. This document will describe an outline of an ext_pillar
  144365. module.
  144366. .SS Location
  144367. .sp
  144368. Salt expects to find your \fBext_pillar\fP module in the same location where it
  144369. looks for other python modules. If the \fBextension_modules\fP option in your
  144370. Salt master configuration is set, Salt will look for a \fBpillar\fP directory
  144371. under there and load all the modules it finds. Otherwise, it will look in
  144372. your Python site\-packages \fBsalt/pillar\fP directory.
  144373. .SS Configuration
  144374. .sp
  144375. The external pillars that are called when a minion refreshes its pillars is
  144376. controlled by the \fBext_pillar\fP option in the Salt master configuration. You
  144377. can pass a single argument, a list of arguments or a dictionary of arguments
  144378. to your pillar:
  144379. .INDENT 0.0
  144380. .INDENT 3.5
  144381. .sp
  144382. .nf
  144383. .ft C
  144384. ext_pillar:
  144385. \- example_a: some argument
  144386. \- example_b:
  144387. \- argumentA
  144388. \- argumentB
  144389. \- example_c:
  144390. keyA: valueA
  144391. keyB: valueB
  144392. .ft P
  144393. .fi
  144394. .UNINDENT
  144395. .UNINDENT
  144396. .SS The Module
  144397. .SS Imports and Logging
  144398. .sp
  144399. Import modules your external pillar module needs. You should first include
  144400. generic modules that come with stock Python:
  144401. .INDENT 0.0
  144402. .INDENT 3.5
  144403. .sp
  144404. .nf
  144405. .ft C
  144406. import logging
  144407. .ft P
  144408. .fi
  144409. .UNINDENT
  144410. .UNINDENT
  144411. .sp
  144412. And then start logging. This is an idiomatic way of setting up logging in Salt:
  144413. .INDENT 0.0
  144414. .INDENT 3.5
  144415. .sp
  144416. .nf
  144417. .ft C
  144418. log = logging.getLogger(__name__)
  144419. .ft P
  144420. .fi
  144421. .UNINDENT
  144422. .UNINDENT
  144423. .sp
  144424. Finally, load modules that are specific to what you are doing. You should catch
  144425. import errors and set a flag that the \fB__virtual__\fP function can use later.
  144426. .INDENT 0.0
  144427. .INDENT 3.5
  144428. .sp
  144429. .nf
  144430. .ft C
  144431. try:
  144432. import weird_thing
  144433. EXAMPLE_A_LOADED = True
  144434. except ImportError:
  144435. EXAMPLE_A_LOADED = False
  144436. .ft P
  144437. .fi
  144438. .UNINDENT
  144439. .UNINDENT
  144440. .SS Options
  144441. .sp
  144442. If you define an \fB__opts__\fP dictionary, it will be merged into the
  144443. \fB__opts__\fP dictionary handed to the \fBext_pillar\fP function later. This is a
  144444. good place to put default configuration items. The convention is to name
  144445. things \fBmodulename.option\fP\&.
  144446. .INDENT 0.0
  144447. .INDENT 3.5
  144448. .sp
  144449. .nf
  144450. .ft C
  144451. __opts__ = { \(aqexample_a.someconfig\(aq: 137 }
  144452. .ft P
  144453. .fi
  144454. .UNINDENT
  144455. .UNINDENT
  144456. .SS Initialization
  144457. .sp
  144458. If you define an \fB__init__\fP function, it will be called with the following
  144459. signature:
  144460. .INDENT 0.0
  144461. .INDENT 3.5
  144462. .sp
  144463. .nf
  144464. .ft C
  144465. def __init__( __opts__ ):
  144466. # Do init work here
  144467. .ft P
  144468. .fi
  144469. .UNINDENT
  144470. .UNINDENT
  144471. .sp
  144472. \fBNote\fP: The \fB__init__\fP function is ran every time a particular minion causes
  144473. the external pillar to be called, so don\(aqt put heavy initialization code here.
  144474. The \fB__init__\fP functionality is a side\-effect of the Salt loader, so it may
  144475. not be as useful in pillars as it is in other Salt items.
  144476. .SS __virtual__
  144477. .sp
  144478. If you define a \fB__virtual__\fP function, you can control whether or not this
  144479. module is visible. If it returns \fBFalse\fP then Salt ignores this module. If
  144480. it returns a string, then that string will be how Salt identifies this external
  144481. pillar in its \fBext_pillar\fP configuration. If you\(aqre not renaming the module,
  144482. simply return \fBTrue\fP in the \fB__virtual__\fP function, which is the same as if
  144483. this function did not exist, then, the name Salt\(aqs \fBext_pillar\fP will use to
  144484. identify this module is its conventional name in Python.
  144485. .sp
  144486. This is useful to write modules that can be installed on all Salt masters, but
  144487. will only be visible if a particular piece of software your module requires is
  144488. installed.
  144489. .INDENT 0.0
  144490. .INDENT 3.5
  144491. .sp
  144492. .nf
  144493. .ft C
  144494. # This external pillar will be known as \(gaexample_a\(ga
  144495. def __virtual__():
  144496. if EXAMPLE_A_LOADED:
  144497. return True
  144498. return False
  144499. .ft P
  144500. .fi
  144501. .UNINDENT
  144502. .UNINDENT
  144503. .INDENT 0.0
  144504. .INDENT 3.5
  144505. .sp
  144506. .nf
  144507. .ft C
  144508. # This external pillar will be known as \(gasomething_else\(ga
  144509. __virtualname__ = \(aqsomething_else\(aq
  144510. def __virtual__():
  144511. if EXAMPLE_A_LOADED:
  144512. return __virtualname__
  144513. return False
  144514. .ft P
  144515. .fi
  144516. .UNINDENT
  144517. .UNINDENT
  144518. .SS ext_pillar
  144519. .sp
  144520. This is where the real work of an external pillar is done. If this module is
  144521. active and has a function called \fBext_pillar\fP, whenever a minion updates its
  144522. pillar this function is called.
  144523. .sp
  144524. How it is called depends on how it is configured in the Salt master
  144525. configuration. The first argument is always the current pillar dictionary, this
  144526. contains pillar items that have already been added, starting with the data from
  144527. \fBpillar_roots\fP, and then from any already\-ran external pillars.
  144528. .sp
  144529. Using our example above:
  144530. .INDENT 0.0
  144531. .INDENT 3.5
  144532. .sp
  144533. .nf
  144534. .ft C
  144535. ext_pillar( id, pillar, \(aqsome argument\(aq ) # example_a
  144536. ext_pillar( id, pillar, \(aqargumentA\(aq, \(aqargumentB\(aq ) # example_b
  144537. ext_pillar( id, pillar, keyA=\(aqvalueA\(aq, keyB=\(aqvalueB\(aq ) # example_c
  144538. .ft P
  144539. .fi
  144540. .UNINDENT
  144541. .UNINDENT
  144542. .sp
  144543. In the \fBexample_a\fP case, \fBpillar\fP will contain the items from the
  144544. \fBpillar_roots\fP, in \fBexample_b\fP \fBpillar\fP will contain that plus the items
  144545. added by \fBexample_a\fP, and in \fBexample_c\fP \fBpillar\fP will contain that plus
  144546. the items added by \fBexample_b\fP\&. In all three cases, \fBid\fP will contain the
  144547. ID of the minion making the pillar request.
  144548. .sp
  144549. This function should return a dictionary, the contents of which are merged in
  144550. with all of the other pillars and returned to the minion. \fBNote\fP: this function
  144551. is called once for each minion that fetches its pillar data.
  144552. .INDENT 0.0
  144553. .INDENT 3.5
  144554. .sp
  144555. .nf
  144556. .ft C
  144557. def ext_pillar( minion_id, pillar, *args, **kwargs ):
  144558. my_pillar = {\(aqexternal_pillar\(aq: {}}
  144559. my_pillar[\(aqexternal_pillar\(aq] = get_external_pillar_dictionary()
  144560. return my_pillar
  144561. .ft P
  144562. .fi
  144563. .UNINDENT
  144564. .UNINDENT
  144565. .sp
  144566. You can call pillar with the dictionary\(aqs top name to retrieve its data.
  144567. From above example, \(aqexternal_pillar\(aq is the top dictionary name. Therefore:
  144568. .INDENT 0.0
  144569. .INDENT 3.5
  144570. .sp
  144571. .nf
  144572. .ft C
  144573. salt \(aq*\(aq pillar.get external_pillar
  144574. .ft P
  144575. .fi
  144576. .UNINDENT
  144577. .UNINDENT
  144578. .sp
  144579. You shouldn\(aqt just add items to \fBpillar\fP and return that, since that will
  144580. cause Salt to merge data that already exists. Rather, just return the items
  144581. you are adding or changing. You could, however, use \fBpillar\fP in your module
  144582. to make some decision based on pillar data that already exists.
  144583. .sp
  144584. This function has access to some useful globals:
  144585. .INDENT 0.0
  144586. .TP
  144587. .B __opts__
  144588. A dictionary of mostly Salt configuration options. If you had an
  144589. \fB__opts__\fP dictionary defined in your module, those values will be
  144590. included.
  144591. .TP
  144592. .B __salt__
  144593. A dictionary of Salt module functions, useful so you don\(aqt have to
  144594. duplicate functions that already exist. E.g.
  144595. \fB__salt__[\(aqcmd.run\(aq]( \(aqls \-l\(aq )\fP \fBNote\fP, runs on the \fImaster\fP
  144596. .TP
  144597. .B __grains__
  144598. A dictionary of the grains of the minion making this pillar call.
  144599. .UNINDENT
  144600. .SS Example configuration
  144601. .sp
  144602. As an example, if you wanted to add external pillar via the \fBcmd_json\fP
  144603. external pillar, add something like this to your master config:
  144604. .INDENT 0.0
  144605. .INDENT 3.5
  144606. .sp
  144607. .nf
  144608. .ft C
  144609. ext_pillar:
  144610. \- cmd_json: \(aqecho {\e"arg\e":\e"value\e"}\(aq
  144611. .ft P
  144612. .fi
  144613. .UNINDENT
  144614. .UNINDENT
  144615. .SS Reminder
  144616. .sp
  144617. Just as with traditional pillars, external pillars must be refreshed in order for
  144618. minions to see any fresh data:
  144619. .INDENT 0.0
  144620. .INDENT 3.5
  144621. .sp
  144622. .nf
  144623. .ft C
  144624. salt \(aq*\(aq saltutil.refresh_pillar
  144625. .ft P
  144626. .fi
  144627. .UNINDENT
  144628. .UNINDENT
  144629. .sp
  144630. Used to define optional external pillar systems. The pillar generated via
  144631. the filesystem pillar is passed into external pillars. This is commonly used
  144632. as a bridge to database data for pillar, but is also the backend to the libvirt
  144633. state used to generate and sign libvirt certificates on the fly.
  144634. .SS Proxy
  144635. .sp
  144636. Proxy Minions are a way to manage devices that cannot run
  144637. a full minion directly.
  144638. .SS Renderers
  144639. .sp
  144640. Renderers are the system used to render sls files into salt highdata for the
  144641. state compiler. They can be as simple as the \fBpy\fP renderer and as complex as
  144642. \fBstateconf\fP and \fBpydsl\fP\&.
  144643. .SS Returners
  144644. .sp
  144645. Returners are used to send data from minions to external sources, commonly
  144646. databases. A full returner will implement all routines to be supported as an
  144647. external job cache. Use the \fBredis\fP returner as an example.
  144648. .SS Roster
  144649. .sp
  144650. The Roster system is used by Salt SSH to enumerate devices.
  144651. .SS Runners
  144652. .sp
  144653. Runners are purely master\-side execution sequences.
  144654. .SS SDB
  144655. .INDENT 0.0
  144656. .IP \(bu 2
  144657. Writing SDB Modules
  144658. .UNINDENT
  144659. .sp
  144660. SDB is a way to store data that\(aqs not associated with a minion. See
  144661. Storing Data in Other Databases\&.
  144662. .SS Serializer
  144663. .sp
  144664. Primarily used with \fBfile.serialize\fP\&.
  144665. .SS State
  144666. .sp
  144667. State modules are used to define the state interfaces used by Salt States.
  144668. These modules are restrictive in that they must follow a number of rules to
  144669. function properly.
  144670. .sp
  144671. \fBNOTE:\fP
  144672. .INDENT 0.0
  144673. .INDENT 3.5
  144674. State modules define the available routines in sls files. If calling
  144675. an execution module directly is desired, take a look at the \fImodule\fP
  144676. state.
  144677. .UNINDENT
  144678. .UNINDENT
  144679. .SS SPM pkgdb
  144680. .INDENT 0.0
  144681. .IP \(bu 2
  144682. SPM Development Guide: Package Database
  144683. .UNINDENT
  144684. .sp
  144685. pkgdb modules provides storage backends to the package database.
  144686. .SS SPM pkgfiles
  144687. .INDENT 0.0
  144688. .IP \(bu 2
  144689. SPM Development Guide: Package Database
  144690. .UNINDENT
  144691. .sp
  144692. pkgfiles modules handle the actual installation.
  144693. .SS SSH Wrapper
  144694. .SS SSH Wrapper
  144695. .SS Salt\-SSH Background
  144696. .sp
  144697. Salt\-SSH works by creating a tar ball of salt, a bunch of python modules, and a generated
  144698. short minion config. It then copies this onto the destination host over ssh, then
  144699. uses that host\(aqs local python install to run \fBsalt\-client \-\-local\fP with any requested modules.
  144700. It does not automatically copy over states or cache files and since it is uses a local file_client,
  144701. modules that rely on \fBcp.cache*\fP functionality do not work.
  144702. .SS SSH Wrapper modules
  144703. .sp
  144704. To support cp modules or other functionality which might not otherwise work in the remote environment,
  144705. a wrapper module can be created. These modules are run from the salt\-master initiating the salt\-ssh
  144706. command and can include logic to support the needed functionality. SSH Wrapper modules are located in
  144707. /salt/client/ssh/wrapper/ and are named the same as the execution module being extended. Any functions
  144708. defined inside of the wrapper module are called from the \fBsalt\-ssh module.function argument\fP
  144709. command rather than executing on the minion.
  144710. .SS State Module example
  144711. .sp
  144712. Running salt states on an salt\-ssh minion, obviously requires the state files themselves. To support this,
  144713. a state module wrapper script exists at salt/client/ssh/wrapper/state.py, and includes standard state
  144714. functions like \fBapply\fP, \fBsls\fP,
  144715. and \fBhighstate\fP\&. When executing \fBsalt\-ssh minion state.highstate\fP,
  144716. these wrapper functions are used and include the logic to walk the low_state output for that minion to
  144717. determine files used, gather needed files, tar them together, transfer the tar file to the minion over
  144718. ssh, and run a state on the ssh minion. This state then extracts the tar file, applies the needed states
  144719. and data, and cleans up the transferred files.
  144720. .SS Wrapper Handling
  144721. .sp
  144722. From the wrapper script any invocations of \fB__salt__[\(aqsome.module\(aq]()\fP do not run on the master
  144723. which is running the wrapper, but instead magically are invoked on the minion over ssh.
  144724. Should the function being called exist in the wrapper, the wrapper function will be
  144725. used instead.
  144726. .sp
  144727. One way of supporting this workflow may be to create a wrapper function which performs the needed file
  144728. copy operations. Now that files are resident on the ssh minion, the next step is to run the original
  144729. execution module function. But since that function name was already overridden by the wrapper, a
  144730. function alias can be created in the original execution module, which can then be called from the
  144731. wrapper.
  144732. .SS Example
  144733. .sp
  144734. The saltcheck module needs sls and tst files on the minion to function. The invocation of
  144735. \fBsaltcheck.run_state_tests\fP is run from
  144736. the wrapper module, and is responsible for performing the needed file copy. The
  144737. \fBsaltcheck\fP execution module includes an alias line of
  144738. \fBrun_state_tests_ssh = salt.utils.functools.alias_function(run_state_tests, \(aqrun_state_tests_ssh\(aq)\fP
  144739. which creates an alias of \fBrun_state_tests\fP with the name \fBrun_state_tests_ssh\fP\&. At the end of
  144740. the \fBrun_state_tests\fP function in the wrapper module, it then calls
  144741. \fB__salt__[\(aqsaltcheck.run_state_tests_ssh\(aq]()\fP\&. Since this function does not exist in the wrapper script,
  144742. the call is made on the remote minion, which then having the needed files, runs as expected.
  144743. .sp
  144744. Replacement execution modules for Salt SSH\&.
  144745. .SS Thorium
  144746. .sp
  144747. Modules for use in the Thorium event reactor.
  144748. .SS Tokens
  144749. .sp
  144750. Token stores for External Authentication\&. See the
  144751. \fBsalt.tokens\fP docstring for details.
  144752. .sp
  144753. \fBNOTE:\fP
  144754. .INDENT 0.0
  144755. .INDENT 3.5
  144756. The runner to load tokens modules is
  144757. \fBsaltutil.sync_eauth_tokens\fP\&.
  144758. .UNINDENT
  144759. .UNINDENT
  144760. .SS Tops
  144761. .sp
  144762. Tops modules are used to convert external data sources into top file data for
  144763. the state system.
  144764. .SS Util
  144765. .sp
  144766. Just utility modules to use with other modules via \fB__utils__\fP (see
  144767. Dunder Dictionaries).
  144768. .SS Wheel
  144769. .sp
  144770. The wheel system is used to manage master side management routines. These
  144771. routines are primarily intended for the API to enable master configuration.
  144772. .SS Salt Extend
  144773. .sp
  144774. \fBsalt\-extend\fP is a templating tool for extending SaltStack. If you\(aqre looking to add a module to
  144775. SaltStack, then the \fBsalt\-extend\fP utility can guide you through the process.
  144776. .sp
  144777. You can use Salt Extend to quickly create templated modules for adding new behaviours to some of the module subsystems within Salt.
  144778. .sp
  144779. Salt Extend takes a template directory and merges it into a SaltStack source code directory.
  144780. .SS Command line usage
  144781. .sp
  144782. \fISee\fP salt\-extend
  144783. .SS Choosing a template
  144784. .sp
  144785. The following templates are available:
  144786. .SS module
  144787. .sp
  144788. Creates a new execution module within salt/modules/{{module_name}}.py
  144789. .SS module_unit
  144790. .sp
  144791. Creates a new execution module unit test suite within tests/unit/modules/test_{{module_name}}.py
  144792. .SS state
  144793. .sp
  144794. Creates a new state module within salt/states/{{module_name}}.py
  144795. .SS state_unit
  144796. .sp
  144797. Creates a new state module unit test suite within tests/unit/states/test_{{module_name}}.py
  144798. .SS Adding templates
  144799. .INDENT 0.0
  144800. .IP 1. 3
  144801. Create a directory under <src>/templates
  144802. .IP 2. 3
  144803. Create a file \fBtemplate.yml\fP containing properties for
  144804. .UNINDENT
  144805. .INDENT 0.0
  144806. .INDENT 3.5
  144807. .INDENT 0.0
  144808. .IP \(bu 2
  144809. \fBdescription\fP \- a description of the template
  144810. .IP \(bu 2
  144811. \fBquestions\fP \- a collection of additional questions to ask the user, the name of the item will
  144812. be used as the key in the context dictionary within the jinja template.
  144813. .INDENT 2.0
  144814. .IP \(bu 2
  144815. \fBquestion\fP \- The question to ask the user, as a string
  144816. .IP \(bu 2
  144817. \fBdefault\fP \- (optional) the default value, can contain Jinja2 template syntax and has access to the default context properties
  144818. .UNINDENT
  144819. .UNINDENT
  144820. .UNINDENT
  144821. .UNINDENT
  144822. .SS Example template.yml
  144823. .INDENT 0.0
  144824. .INDENT 3.5
  144825. .sp
  144826. .nf
  144827. .ft C
  144828. description: "Execution module"
  144829. questions:
  144830. depending_libraries:
  144831. question: "What libraries does this module depend upon?"
  144832. virtual_name:
  144833. question: "What module virtual name to use?"
  144834. default: "{{module_name}}"
  144835. .ft P
  144836. .fi
  144837. .UNINDENT
  144838. .UNINDENT
  144839. .INDENT 0.0
  144840. .IP 3. 3
  144841. Create the files within <src>/templates/<your template> to match the target
  144842. .UNINDENT
  144843. .sp
  144844. \fBNOTE:\fP
  144845. .INDENT 0.0
  144846. .INDENT 3.5
  144847. File names can contain Jinja 2 template syntax, e.g. \fI\(aq{{module_name}}.py}}\(aq\fP
  144848. .UNINDENT
  144849. .UNINDENT
  144850. .SS Example file in the template directory
  144851. .INDENT 0.0
  144852. .INDENT 3.5
  144853. .sp
  144854. .nf
  144855. .ft C
  144856. print(\(aqHello {{module_name}}\(aq)
  144857. __virtual__ = \(aq{{__virtual_name__}}\(aq
  144858. .ft P
  144859. .fi
  144860. .UNINDENT
  144861. .UNINDENT
  144862. .SS Default context properties
  144863. .sp
  144864. The default context provides the following properties
  144865. .INDENT 0.0
  144866. .IP \(bu 2
  144867. \fBdescription\fP \- A description of the template
  144868. .IP \(bu 2
  144869. \fBshort_description\fP \- A short description of the module as entered by the user
  144870. .IP \(bu 2
  144871. \fBversion\fP \- The version name of the next release
  144872. .IP \(bu 2
  144873. \fBmodule_name\fP \- The module name as entered by the user
  144874. .IP \(bu 2
  144875. \fBrelease_date\fP \- The current date in the format \fIYYYY\-MM\-DD\fP
  144876. .IP \(bu 2
  144877. \fByear\fP \- The current year in the format \fIYYYY\fP
  144878. .UNINDENT
  144879. .sp
  144880. As well as any additional properties entered from the questions section of \fBtemplate.yml\fP
  144881. .SS API
  144882. .SS salt.utils.extend module
  144883. .SS Salt\(aqs Test Suite
  144884. .sp
  144885. Salt comes with a powerful integration and unit test suite allowing for
  144886. the fully automated run of integration and/or unit tests from a single
  144887. interface.
  144888. .sp
  144889. To learn the basics of how Salt\(aqs test suite works, be sure to check
  144890. out the Salt\(aqs Test Suite: An Introduction
  144891. tutorial.
  144892. .SS Test Directory Structure
  144893. .sp
  144894. Salt\(aqs test suite is located in the \fBtests\fP directory in the root of
  144895. Salt\(aqs codebase. The test suite is divided into two main groups:
  144896. .INDENT 0.0
  144897. .IP \(bu 2
  144898. Integration Tests
  144899. .IP \(bu 2
  144900. Unit Tests
  144901. .UNINDENT
  144902. .sp
  144903. Within each of these groups, the directory structure roughly mirrors the
  144904. structure of Salt\(aqs own codebase. Notice that there are directories for
  144905. \fBstates\fP, \fBmodules\fP, \fBrunners\fP, \fBoutput\fP, and more in each testing
  144906. group.
  144907. .sp
  144908. The files that are housed in the \fBmodules\fP directory of either the unit
  144909. or the integration testing factions contain respective integration or unit
  144910. test files for Salt execution modules.
  144911. .sp
  144912. \fBNOTE:\fP
  144913. .INDENT 0.0
  144914. .INDENT 3.5
  144915. Salt\(aqs test framework provides for the option to only run tests which
  144916. correspond to a given file (or set of files), via the \fB\-\-from\-filenames\fP
  144917. argument to \fBruntests.py\fP:
  144918. .INDENT 0.0
  144919. .INDENT 3.5
  144920. .sp
  144921. .nf
  144922. .ft C
  144923. python /path/to/runtests.py \-\-from\-filenames=salt/modules/foo.py
  144924. .ft P
  144925. .fi
  144926. .UNINDENT
  144927. .UNINDENT
  144928. .sp
  144929. Therefore, where possible, test files should be named to match the source
  144930. files they are testing. For example, when writing tests for
  144931. \fBsalt/modules/foo.py\fP, unit tests should go into
  144932. \fBtests/unit/modules/test_foo.py\fP, and integration tests should go into
  144933. \fBtests/integration/modules/test_foo.py\fP\&.
  144934. .sp
  144935. However, integration tests are organized differently from unit tests, and
  144936. this may not always be plausible. In these cases, to ensure that the proper
  144937. tests are run for these files, they must be mapped in
  144938. \fI\%tests/filename_map.yml\fP\&.
  144939. .sp
  144940. The filename map is used to supplement the test framework\(aqs filename
  144941. matching logic. This allows one to ensure that states correspnding to an
  144942. execution module are also tested when \fB\-\-from\-filenames\fP includes that
  144943. execution module. It can also be used for those cases where the path to a
  144944. test file doesn\(aqt correspond directly to the file which is being tested
  144945. (e.g. the \fBshell\fP, \fBspm\fP, and \fBssh\fP integration tests, among others).
  144946. Both glob expressions and regular expressions are permitted in the filename
  144947. map.
  144948. .sp
  144949. \fBIMPORTANT:\fP
  144950. .INDENT 0.0
  144951. .INDENT 3.5
  144952. Test modules which don\(aqt map directly to the source file they are
  144953. testing (using the naming convention described above), \fBmust\fP be
  144954. added to the \fBignore\fP tuple in \fBtests/unit/test_module_names.py\fP,
  144955. in the \fBtest_module_name_source_match\fP function. This unit test
  144956. ensures that we maintain the naming convention for test files.
  144957. .UNINDENT
  144958. .UNINDENT
  144959. .UNINDENT
  144960. .UNINDENT
  144961. .SS Integration Tests
  144962. .sp
  144963. The Integration section of Salt\(aqs test suite start up a number of Salt
  144964. daemons to test functionality in a live environment. These daemons
  144965. include two Salt Masters, one Syndic, and two Minions. This allows the
  144966. Syndic interface to be tested and Master/Minion communication to be
  144967. verified. All of the integration tests are executed as live Salt commands
  144968. sent through the started daemons.
  144969. .sp
  144970. Integration tests are particularly good at testing modules, states, and
  144971. shell commands, among other segments of Salt\(aqs ecosystem. By utilizing
  144972. the integration test daemons, integration tests are easy to write. They
  144973. are also SaltStack\(aqs generally preferred method of adding new tests.
  144974. .sp
  144975. The discussion in the Integration vs. Unit
  144976. section of the testing tutorial is
  144977. beneficial in learning why you might want to write integration tests
  144978. vs. unit tests. Both testing arenas add value to Salt\(aqs test suite and
  144979. you should consider adding both types of tests if possible and appropriate
  144980. when contributing to Salt.
  144981. .INDENT 0.0
  144982. .IP \(bu 2
  144983. Integration Test Documentation
  144984. .UNINDENT
  144985. .SS Unit Tests
  144986. .sp
  144987. Unit tests do not spin up any Salt daemons, but instead find their value
  144988. in testing singular implementations of individual functions. Instead of
  144989. testing against specific interactions, unit tests should be used to test
  144990. a function\(aqs logic as well as any \fBreturn\fP or \fBraises\fP statements.
  144991. Unit tests also rely heavily on mocking external resources.
  144992. .sp
  144993. The discussion in the Integration vs. Unit
  144994. section of the testing tutorial is useful
  144995. in determining when you should consider writing unit tests instead of,
  144996. or in addition to, integration tests when contributing to Salt.
  144997. .INDENT 0.0
  144998. .IP \(bu 2
  144999. Unit Test Documentation
  145000. .UNINDENT
  145001. .SS Running The Tests
  145002. .sp
  145003. There are requirements, in addition to Salt\(aqs requirements, which
  145004. need to be installed in order to run the test suite. Install one of
  145005. the lines below, depending on the relevant Python version:
  145006. .INDENT 0.0
  145007. .INDENT 3.5
  145008. .sp
  145009. .nf
  145010. .ft C
  145011. pip install \-r requirements/dev_python27.txt
  145012. pip install \-r requirements/dev_python34.txt
  145013. .ft P
  145014. .fi
  145015. .UNINDENT
  145016. .UNINDENT
  145017. .sp
  145018. To be able to run integration tests which utilizes ZeroMQ transport, you also
  145019. need to install additional requirements for it. Make sure you have installed
  145020. the C/C++ compiler and development libraries and header files needed for your
  145021. Python version.
  145022. .sp
  145023. This is an example for RedHat\-based operating systems:
  145024. .INDENT 0.0
  145025. .INDENT 3.5
  145026. .sp
  145027. .nf
  145028. .ft C
  145029. yum install gcc gcc\-c++ python\-devel
  145030. pip install \-r requirements/zeromq.txt
  145031. .ft P
  145032. .fi
  145033. .UNINDENT
  145034. .UNINDENT
  145035. .sp
  145036. On Debian, Ubuntu or their derivatives run the following commands:
  145037. .INDENT 0.0
  145038. .INDENT 3.5
  145039. .sp
  145040. .nf
  145041. .ft C
  145042. apt\-get install build\-essential python\-dev
  145043. pip install \-r requirements/zeromq.txt
  145044. .ft P
  145045. .fi
  145046. .UNINDENT
  145047. .UNINDENT
  145048. .sp
  145049. This will install the latest \fBpycrypto\fP and \fBpyzmq\fP (with bundled
  145050. \fBlibzmq\fP) Python modules required for running integration tests suite.
  145051. .sp
  145052. Once all requirements are installed, use \fBruntests.py\fP script to run all of
  145053. the tests included in Salt\(aqs test suite:
  145054. .INDENT 0.0
  145055. .INDENT 3.5
  145056. .sp
  145057. .nf
  145058. .ft C
  145059. python tests/runtests.py
  145060. .ft P
  145061. .fi
  145062. .UNINDENT
  145063. .UNINDENT
  145064. .sp
  145065. For more information about options you can pass the test runner, see the
  145066. \fB\-\-help\fP option:
  145067. .INDENT 0.0
  145068. .INDENT 3.5
  145069. .sp
  145070. .nf
  145071. .ft C
  145072. python tests/runtests.py \-\-help
  145073. .ft P
  145074. .fi
  145075. .UNINDENT
  145076. .UNINDENT
  145077. .sp
  145078. An alternative way of invoking the test suite is available in \fBsetup.py\fP:
  145079. .INDENT 0.0
  145080. .INDENT 3.5
  145081. .sp
  145082. .nf
  145083. .ft C
  145084. \&./setup.py test
  145085. .ft P
  145086. .fi
  145087. .UNINDENT
  145088. .UNINDENT
  145089. .SS Running Test Subsections
  145090. .sp
  145091. Instead of running the entire test suite all at once, which can take a long time,
  145092. there are several ways to run only specific groups of tests or individual tests:
  145093. .INDENT 0.0
  145094. .IP \(bu 2
  145095. Run \fI\%unit tests only\fP: \fBpython tests/runtests.py \-\-unit\-tests\fP
  145096. .IP \(bu 2
  145097. Run unit and integration tests for states: \fBpython tests/runtests.py \-\-state\fP
  145098. .IP \(bu 2
  145099. Run integration tests for an individual module: \fBpython tests/runtests.py \-n integration.modules.virt\fP
  145100. .IP \(bu 2
  145101. Run unit tests for an individual module: \fBpython tests/runtests.py \-n unit.modules.virt_test\fP
  145102. .IP \(bu 2
  145103. Run an individual test by using the class and test name (this example is for the
  145104. \fBtest_default_kvm_profile\fP test in the \fBintegration.module.virt\fP):
  145105. \fBpython tests/runtests.py \-n integration.module.virt.VirtTest.test_default_kvm_profile\fP
  145106. .UNINDENT
  145107. .sp
  145108. For more specific examples of how to run various test subsections or individual
  145109. tests, please see the Test Selection Options
  145110. documentation or the Running Specific Tests
  145111. section of the Salt\(aqs Test Suite: An Introduction
  145112. tutorial.
  145113. .SS Running Unit Tests Without Integration Test Daemons
  145114. .sp
  145115. Since the unit tests do not require a master or minion to execute, it is often useful to be able to
  145116. run unit tests individually, or as a whole group, without having to start up the integration testing
  145117. daemons. Starting up the master, minion, and syndic daemons takes a lot of time before the tests can
  145118. even start running and is unnecessary to run unit tests. To run unit tests without invoking the
  145119. integration test daemons, simply run the \fBruntests.py\fP script with \fB\-\-unit\fP argument:
  145120. .INDENT 0.0
  145121. .INDENT 3.5
  145122. .sp
  145123. .nf
  145124. .ft C
  145125. python tests/runtests.py \-\-unit
  145126. .ft P
  145127. .fi
  145128. .UNINDENT
  145129. .UNINDENT
  145130. .sp
  145131. All of the other options to run individual tests, entire classes of tests, or
  145132. entire test modules still apply.
  145133. .SS Running Destructive Integration Tests
  145134. .sp
  145135. Salt is used to change the settings and behavior of systems. In order to
  145136. effectively test Salt\(aqs functionality, some integration tests are written to
  145137. make actual changes to the underlying system. These tests are referred to as
  145138. "destructive tests". Some examples of destructive tests are changes may be
  145139. testing the addition of a user or installing packages. By default,
  145140. destructive tests are disabled and will be skipped.
  145141. .sp
  145142. Generally, destructive tests should clean up after themselves by attempting to
  145143. restore the system to its original state. For instance, if a new user is created
  145144. during a test, the user should be deleted after the related test(s) have
  145145. completed. However, no guarantees are made that test clean\-up will complete
  145146. successfully. Therefore, running destructive tests should be done with caution.
  145147. .sp
  145148. \fBNOTE:\fP
  145149. .INDENT 0.0
  145150. .INDENT 3.5
  145151. Running destructive tests will change the underlying system.
  145152. Use caution when running destructive tests.
  145153. .UNINDENT
  145154. .UNINDENT
  145155. .sp
  145156. To run tests marked as destructive, set the \fB\-\-run\-destructive\fP flag:
  145157. .INDENT 0.0
  145158. .INDENT 3.5
  145159. .sp
  145160. .nf
  145161. .ft C
  145162. python tests/runtests.py \-\-run\-destructive
  145163. .ft P
  145164. .fi
  145165. .UNINDENT
  145166. .UNINDENT
  145167. .SS Running Cloud Provider Tests
  145168. .sp
  145169. Salt\(aqs testing suite also includes integration tests to assess the successful
  145170. creation and deletion of cloud instances using Salt\-Cloud for
  145171. providers supported by Salt\-Cloud.
  145172. .sp
  145173. The cloud provider tests are off by default and run on sample configuration files
  145174. provided in \fBtests/integration/files/conf/cloud.providers.d/\fP\&. In order to run
  145175. the cloud provider tests, valid credentials, which differ per provider, must be
  145176. supplied. Each credential item that must be supplied is indicated by an empty
  145177. string value and should be edited by the user before running the tests. For
  145178. example, DigitalOcean requires a client key and an api key to operate. Therefore,
  145179. the default cloud provider configuration file for DigitalOcean looks like this:
  145180. .INDENT 0.0
  145181. .INDENT 3.5
  145182. .sp
  145183. .nf
  145184. .ft C
  145185. digitalocean\-config:
  145186. driver: digitalocean
  145187. client_key: \(aq\(aq
  145188. api_key: \(aq\(aq
  145189. location: New York 1
  145190. .ft P
  145191. .fi
  145192. .UNINDENT
  145193. .UNINDENT
  145194. .sp
  145195. As indicated by the empty string values, the \fBclient_key\fP and the \fBapi_key\fP
  145196. must be provided:
  145197. .INDENT 0.0
  145198. .INDENT 3.5
  145199. .sp
  145200. .nf
  145201. .ft C
  145202. digitalocean\-config:
  145203. driver: digitalocean
  145204. client_key: wFGEwgregeqw3435gDger
  145205. api_key: GDE43t43REGTrkilg43934t34qT43t4dgegerGEgg
  145206. location: New York 1
  145207. .ft P
  145208. .fi
  145209. .UNINDENT
  145210. .UNINDENT
  145211. .sp
  145212. \fBNOTE:\fP
  145213. .INDENT 0.0
  145214. .INDENT 3.5
  145215. When providing credential information in cloud provider configuration files,
  145216. do not include the single quotes.
  145217. .UNINDENT
  145218. .UNINDENT
  145219. .sp
  145220. Once all of the valid credentials for the cloud provider have been supplied, the
  145221. cloud provider tests can be run by setting the \fB\-\-cloud\-provider\-tests\fP flag:
  145222. .INDENT 0.0
  145223. .INDENT 3.5
  145224. .sp
  145225. .nf
  145226. .ft C
  145227. \&./tests/runtests.py \-\-cloud\-provider\-tests
  145228. .ft P
  145229. .fi
  145230. .UNINDENT
  145231. .UNINDENT
  145232. .SS Running The Tests In A Docker Container
  145233. .sp
  145234. The test suite can be executed under a \fI\%docker\fP container using the
  145235. \fB\-\-docked\fP option flag. The \fI\%docker\fP container must be properly configured
  145236. on the system invoking the tests and the container must have access to the
  145237. internet.
  145238. .sp
  145239. Here\(aqs a simple usage example:
  145240. .INDENT 0.0
  145241. .INDENT 3.5
  145242. .sp
  145243. .nf
  145244. .ft C
  145245. python tests/runtests.py \-\-docked=ubuntu\-12.04 \-v
  145246. .ft P
  145247. .fi
  145248. .UNINDENT
  145249. .UNINDENT
  145250. .sp
  145251. The full \fI\%docker\fP container repository can also be provided:
  145252. .INDENT 0.0
  145253. .INDENT 3.5
  145254. .sp
  145255. .nf
  145256. .ft C
  145257. python tests/runtests.py \-\-docked=salttest/ubuntu\-12.04 \-v
  145258. .ft P
  145259. .fi
  145260. .UNINDENT
  145261. .UNINDENT
  145262. .sp
  145263. The SaltStack team is creating some containers which will have the necessary
  145264. dependencies pre\-installed. Running the test suite on a container allows
  145265. destructive tests to run without making changes to the main system. It also
  145266. enables the test suite to run under a different distribution than the one
  145267. the main system is currently using.
  145268. .sp
  145269. The current list of test suite images is on Salt\(aqs \fI\%docker repository\fP\&.
  145270. .sp
  145271. Custom \fI\%docker\fP containers can be provided by submitting a pull request
  145272. against Salt\(aqs \fI\%docker Salt test containers\fP repository.
  145273. .SS Automated Test Runs
  145274. .sp
  145275. SaltStack maintains a Jenkins server to allow for the execution of tests
  145276. across supported platforms. The tests executed from Salt\(aqs Jenkins server
  145277. create fresh virtual machines for each test run, then execute destructive
  145278. tests on the new, clean virtual machine.
  145279. .sp
  145280. SaltStack\(aqs Jenkins server continuously runs the entire test suite,
  145281. including destructive tests, on an array of various supported operating
  145282. systems throughout the day. Each actively supported branch of Salt\(aqs
  145283. repository runs the tests located in the respective branch\(aqs code. Each set
  145284. of branch tests also includes a pylint run. These branch tests help ensure
  145285. the viability of Salt code at any given point in time as pull requests
  145286. are merged into branches throughout the day.
  145287. .sp
  145288. In addition to branch tests, SaltStack\(aqs Jenkins server also runs tests
  145289. on pull requests. These pull request tests include a smaller set of
  145290. virtual machines that run on the branch tests. The pull request tests,
  145291. like the branch tests, include a pylint test as well.
  145292. .sp
  145293. When a pull request is submitted to Salt\(aqs repository on GitHub, the suite
  145294. of pull request tests are started by Jenkins. These tests are used to
  145295. gauge the pull request\(aqs viability to merge into Salt\(aqs codebase. If these
  145296. initial tests pass, the pull request can then merged into the Salt branch
  145297. by one of Salt\(aqs core developers, pending their discretion. If the initial
  145298. tests fail, core developers may request changes to the pull request. If the
  145299. failure is unrelated to the changes in question, core developers may merge
  145300. the pull request despite the initial failure.
  145301. .sp
  145302. As soon as the pull request is merged, the changes will be added to the
  145303. next branch test run on Jenkins.
  145304. .sp
  145305. For a full list of currently running test environments, go to
  145306. \fI\%https://jenkinsci.saltstack.com\fP\&.
  145307. .SS Using Salt\-Cloud on Jenkins
  145308. .sp
  145309. For testing Salt on Jenkins, SaltStack uses Salt\-Cloud to
  145310. spin up virtual machines. The script using Salt\-Cloud to accomplish this is
  145311. open source and can be found here: \fI\%https://github.com/saltstack/salt/blob/master/tests/jenkins.py\fP
  145312. .SS Writing Tests
  145313. .sp
  145314. The salt testing infrastructure is divided into two classes of tests,
  145315. integration tests and unit tests. These terms may be defined differently in
  145316. other contexts, but for Salt they are defined this way:
  145317. .INDENT 0.0
  145318. .IP \(bu 2
  145319. Unit Test: Tests which validate isolated code blocks and do not require
  145320. external interfaces such as \fBsalt\-call\fP or any of the salt daemons.
  145321. .IP \(bu 2
  145322. Integration Test: Tests which validate externally accessible features.
  145323. .UNINDENT
  145324. .sp
  145325. Salt testing uses unittest2 from the python standard library and MagicMock.
  145326. .INDENT 0.0
  145327. .IP \(bu 2
  145328. Writing integration tests
  145329. .IP \(bu 2
  145330. Writing unit tests
  145331. .UNINDENT
  145332. .SS Naming Conventions
  145333. .sp
  145334. Any function in either integration test files or unit test files that is doing
  145335. the actual testing, such as functions containing assertions, must start with
  145336. \fBtest_\fP:
  145337. .INDENT 0.0
  145338. .INDENT 3.5
  145339. .sp
  145340. .nf
  145341. .ft C
  145342. def test_user_present(self):
  145343. .ft P
  145344. .fi
  145345. .UNINDENT
  145346. .UNINDENT
  145347. .sp
  145348. When functions in test files are not prepended with \fBtest_\fP, the function
  145349. acts as a normal, helper function and is not run as a test by the test suite.
  145350. .SS Submitting New Tests
  145351. .sp
  145352. Which branch of the Salt codebase should new tests be written against? The location
  145353. of where new tests should be submitted depends largely on the reason you\(aqre writing
  145354. the tests.
  145355. .SS Tests for New Features
  145356. .sp
  145357. If you are adding new functionality to Salt, please write the tests for this new
  145358. feature in the same pull request as the new feature. New features should always be
  145359. submitted to the \fBmaster\fP branch.
  145360. .sp
  145361. If you have already submitted the new feature, but did not write tests in the original
  145362. pull request that has already been merged, please feel free to submit a new pull
  145363. request containing tests. If the feature was recently added to Salt\(aqs \fBmaster\fP
  145364. branch, then the tests should be added there as well. However, if the feature was
  145365. added to \fBmaster\fP some time ago and is already present in one or more release
  145366. branches, please refer to the \fI\%Tests for Entire Files or Functions\fP section below
  145367. for more details about where to submit tests for functions or files that do not
  145368. already have tests.
  145369. .SS Tests to Accompany a Bugfix
  145370. .sp
  145371. If you are writing tests for code that fixes a bug in Salt, please write the test
  145372. in the same pull request as the bugfix. If you\(aqre unsure of where to submit your
  145373. bugfix and accompanying test, please review the
  145374. Which Salt Branch? documentation in Salt\(aqs
  145375. Contributing guide.
  145376. .SS Tests for Entire Files or Functions
  145377. .sp
  145378. Sometimes entire files in Salt are completely untested. If you are writing tests for
  145379. a file that doesn\(aqt have any tests written for it, write your test against the
  145380. earliest supported release branch that contains the file or function you\(aqre testing.
  145381. .sp
  145382. Once your tests are submitted in a pull request and is merged into the branch in
  145383. question, the tests you wrote will be merged\-forward by SaltStack core engineers and
  145384. the new tests will propagate to the newer release branches. That way the tests you
  145385. wrote will apply to all current and relevant release branches, and not just the \fBmaster\fP
  145386. branch, for example. This methodology will help protect against regressions on older
  145387. files in Salt\(aqs codebase.
  145388. .sp
  145389. There may be times when the tests you write against an older branch fail in the
  145390. merge\-forward process because functionality has changed in newer release branches.
  145391. In these cases, a Salt core developer may reach out to you for advice on the tests in
  145392. question if the path forward is unclear.
  145393. .sp
  145394. \fBNOTE:\fP
  145395. .INDENT 0.0
  145396. .INDENT 3.5
  145397. If tests are written against a file in an older release branch and then merged forward,
  145398. there may be new functionality in the file that is present in the new release branch
  145399. that is untested.It would be wise to see if new functionality could use additional
  145400. testing once the test file has propagated to newer release branches.
  145401. .UNINDENT
  145402. .UNINDENT
  145403. .SS Test Helpers
  145404. .sp
  145405. Several Salt\-specific helpers are available. A full list is available by inspecting
  145406. functions exported in \fItests.support.helpers\fP\&.
  145407. .sp
  145408. \fI@expensiveTest\fP \-\- Designates a test which typically requires a relatively costly
  145409. external resource, like a cloud virtual machine. This decorator is not normally
  145410. used by developers outside of the Salt core team.
  145411. .sp
  145412. \fI@destructiveTest\fP \-\- Marks a test as potentially destructive. It will not be run
  145413. by the test runner unless the \fB\-run\-destructive\fP test is expressly passed.
  145414. .sp
  145415. \fI@requires_network\fP \-\- Requires a network connection for the test to operate
  145416. successfully. If a network connection is not detected, the test will not run.
  145417. .sp
  145418. \fI@requires_salt_modules\fP \-\- Requires all the modules in a list of modules in
  145419. order for the test to be executed. Otherwise, the test is skipped.
  145420. .sp
  145421. \fI@requires_system_grains\fP \-\- Loads and passes the grains on the system as an
  145422. keyword argument to the test function with the name \fIgrains\fP\&.
  145423. .sp
  145424. \fI@skip_if_binaries_missing([\(aqlist\(aq, \(aqof\(aq, \(aqbinaries\(aq])\fP \-\- If called from inside a test,
  145425. the test will be skipped if the binaries are not all present on the system.
  145426. .sp
  145427. \fI@skip_if_not_root\fP \-\- If the test is not executed as root, it will be skipped.
  145428. .sp
  145429. \fI@with_system_user\fP \-\- Creates and optionally destroys a system user within a test case.
  145430. See implementation details in \fItests.support.helpers\fP for details.
  145431. .sp
  145432. \fI@with_system_group\fP \-\- Creates and optionally destroys a system group within a test case.
  145433. See implementation details in \fItests.support.helpers\fP for details.
  145434. .sp
  145435. \fI@with_system_user_and_group\fP \-\- Creates and optionally destroys a system user and group
  145436. within a test case. See implementation details in \fItests.support.helpers\fP for details.
  145437. .SS Integration Tests
  145438. .sp
  145439. The Salt integration tests come with a number of classes and methods which
  145440. allow for components to be easily tested. These classes are generally inherited
  145441. from and provide specific methods for hooking into the running integration test
  145442. environment created by the integration tests.
  145443. .sp
  145444. It is noteworthy that since integration tests validate against a running
  145445. environment that they are generally the preferred means to write tests.
  145446. .sp
  145447. The integration system is all located under \fBtests/integration\fP in the Salt
  145448. source tree. Each directory within \fBtests/integration\fP corresponds to a
  145449. directory in Salt\(aqs tree structure. For example, the integration tests for the
  145450. \fBtest.py\fP Salt module that is located in \fBsalt/modules\fP should also be
  145451. named \fBtest.py\fP and reside in \fBtests/integration/modules\fP\&.
  145452. .SS Preparing to Write Integration Tests
  145453. .sp
  145454. This guide assumes that your Salt development environment is already configured
  145455. and that you have a basic understanding of contributing to the Salt codebase.
  145456. If you\(aqre unfamiliar with either of these topics, please refer to the
  145457. Installing Salt for Development and the
  145458. Contributing pages, respectively.
  145459. .sp
  145460. This documentation also assumes that you have an understanding of how to
  145461. run Salt\(aqs test suite, including running the
  145462. test subsections, and running a single
  145463. integration test file, class, or individual test.
  145464. .SS Best Practices
  145465. .sp
  145466. Integration tests should be written to the following specifications.
  145467. .SS What to Test?
  145468. .sp
  145469. Since integration tests are used to validate against a running Salt environment,
  145470. integration tests should be written with the Salt components, and their various
  145471. interactions, in mind.
  145472. .INDENT 0.0
  145473. .IP \(bu 2
  145474. Isolate testing functionality. Don\(aqt rely on the pass or failure of other,
  145475. separate tests.
  145476. .IP \(bu 2
  145477. Individual tests should test against a single behavior.
  145478. .IP \(bu 2
  145479. Since it occasionally takes some effort to "set up" an individual test, it may
  145480. be necessary to call several functions within a single test. However, be sure
  145481. that once the work has been done to set up a test, make sure you are clear
  145482. about the functionality that is being tested.
  145483. .UNINDENT
  145484. .SS Naming Conventions
  145485. .sp
  145486. Test names and docstrings should indicate what functionality is being tested.
  145487. Test functions are named \fBtest_<fcn>_<test\-name>\fP where \fB<fcn>\fP is the
  145488. function being tested and \fB<test\-name>\fP describes the behavior being tested.
  145489. .sp
  145490. In order for integration tests to get picked up during a run of the test suite,
  145491. each individual test must be prepended with the \fBtest_\fP naming syntax, as
  145492. described above.
  145493. .sp
  145494. If a function does not start with \fBtest_\fP, then the function acts as a "normal"
  145495. function and is not considered a testing function. It will not be included in the
  145496. test run or testing output.
  145497. .SS The setUp and tearDown Functions
  145498. .sp
  145499. There are two special functions that can be utilized in the integration side of
  145500. Salt\(aqs test suite: \fBsetUp\fP and \fBtearDown\fP\&. While these functions are not
  145501. required in all test files, there are many examples in Salt\(aqs integration
  145502. test suite illustrating the broad usefulness of each function.
  145503. .sp
  145504. The \fBsetUp\fP function is used to set up any repetitive or useful tasks that the
  145505. tests in a test class need before running. For example, any of the \fBmac_*\fP
  145506. integration tests should only run on macOS machines. The \fBsetUp\fP function can
  145507. be used to test for the presence of the \fBDarwin\fP kernel. If the \fBDarwin\fP
  145508. kernel is not present, then the test should be skipped.
  145509. .INDENT 0.0
  145510. .INDENT 3.5
  145511. .sp
  145512. .nf
  145513. .ft C
  145514. def setUp(self):
  145515. \(aq\(aq\(aq
  145516. Sets up test requirements
  145517. \(aq\(aq\(aq
  145518. os_grain = self.run_function(\(aqgrains.item\(aq, [\(aqkernel\(aq])
  145519. if os_grain[\(aqkernel\(aq] not in \(aqDarwin\(aq:
  145520. self.skipTest(
  145521. \(aqTest not applicable to \e\(aq{kernel}\e\(aq kernel\(aq.format(
  145522. **os_grain
  145523. )
  145524. )
  145525. .ft P
  145526. .fi
  145527. .UNINDENT
  145528. .UNINDENT
  145529. .sp
  145530. The \fBsetUp\fP function can be used for many things. The above code snippet is
  145531. only one example. Another example might be to ensure that a particular setting
  145532. is present before running tests that would require the setting.
  145533. .sp
  145534. The \fBtearDown\fP function is used to clean up after any tests. This function is
  145535. useful for restoring any settings that might have been changed during the test
  145536. run.
  145537. .sp
  145538. \fBNOTE:\fP
  145539. .INDENT 0.0
  145540. .INDENT 3.5
  145541. The \fBsetUp\fP and \fBtearDown\fP functions run before and after each test
  145542. in the test class that the \fBsetUp\fP and \fBtearDown\fP functions are defined.
  145543. .UNINDENT
  145544. .UNINDENT
  145545. .sp
  145546. Be sure to read the \fI\%Destructive vs Non\-Destructive Tests\fP section when
  145547. using any kind of destructive functions that might alter the system running the
  145548. test suite in either the \fBsetUp\fP or \fBtearDown\fP function definitions.
  145549. .SS Testing Order
  145550. .sp
  145551. The test functions within a test class do not run in the order they were defined,
  145552. but instead run in lexicographical order.
  145553. .sp
  145554. Note that if any \fBsetUp\fP or \fBtearDown\fP functions are defined in the class,
  145555. those functions will run before (for \fBsetUp\fP) or after (for \fBtearDown\fP) each
  145556. test case.
  145557. .SS Integration Classes
  145558. .sp
  145559. The integration classes are located in \fBtests/integration/__init__.py\fP and
  145560. can be extended therein. There are four classes available to extend:
  145561. .INDENT 0.0
  145562. .IP \(bu 2
  145563. \fI\%ModuleCase\fP
  145564. .IP \(bu 2
  145565. \fI\%ShellCase\fP
  145566. .IP \(bu 2
  145567. \fI\%SSHCase\fP
  145568. .IP \(bu 2
  145569. \fI\%SyndicCase\fP
  145570. .UNINDENT
  145571. .SS ModuleCase
  145572. .sp
  145573. Used to define executions run via the master to minions and to call
  145574. single modules and states. The available testing functions are:
  145575. .SS run_function
  145576. .sp
  145577. Run a single salt function and condition the return down to match the
  145578. behavior of the raw function call. This will run the command and only
  145579. return the results from a single minion to verify.
  145580. .SS run_state
  145581. .sp
  145582. Run the state.single command and return the state return structure.
  145583. .SS minion_run
  145584. .sp
  145585. Run a single salt function on the \(aqminion\(aq target and condition the
  145586. return down to match the behavior of the raw function call.
  145587. .SS ShellCase
  145588. .sp
  145589. Shell out to the scripts which ship with Salt. The testing functions are:
  145590. .SS run_cp
  145591. .sp
  145592. Execute salt\-cp. Pass in the argument string as it would be
  145593. passed on the command line.
  145594. .SS run_call
  145595. .sp
  145596. Execute salt\-call, pass in the argument string as it would be
  145597. passed on the command line.
  145598. .SS run_cloud
  145599. .sp
  145600. Execute the salt\-cloud command. Pass in the argument string as
  145601. it would be passed on the command line.
  145602. .SS run_key
  145603. .sp
  145604. Execute the salt\-key command. Pass in the argument string as it
  145605. would be passed on the command line.
  145606. .SS run_run
  145607. .sp
  145608. Execute the salt\-run command. Pass in the argument string as it
  145609. would be passed on the command line.
  145610. .SS run_run_plus
  145611. .sp
  145612. Execute the runner function the and return the return data and output in a dict
  145613. .SS run_salt
  145614. .sp
  145615. Execute the salt command. Pass in the argument string as it would be
  145616. passed on the command line.
  145617. .SS run_script
  145618. .sp
  145619. Execute a salt script with the given argument string.
  145620. .SS run_ssh
  145621. .sp
  145622. Execute the salt\-ssh. Pass in the argument string as it would be
  145623. passed on the command line.
  145624. .SS SSHCase
  145625. .sp
  145626. Used to execute remote commands via salt\-ssh. The available methods are
  145627. as follows:
  145628. .SS run_function
  145629. .sp
  145630. Run a single salt function via salt\-ssh and condition the return down to
  145631. match the behavior of the raw function call. This will run the command
  145632. and only return the results from a single minion to verify.
  145633. .SS SyndicCase
  145634. .sp
  145635. Used to execute remote commands via a syndic and is only used to verify
  145636. the capabilities of the Salt Syndic. The available methods are as follows:
  145637. .SS run_function
  145638. .sp
  145639. Run a single salt function and condition the return down to match the
  145640. behavior of the raw function call. This will run the command and only
  145641. return the results from a single minion to verify.
  145642. .SS Examples
  145643. .sp
  145644. The following sections define simple integration tests present in Salt\(aqs
  145645. integration test suite for each type of testing class.
  145646. .SS Module Example via ModuleCase Class
  145647. .sp
  145648. Import the integration module, this module is already added to the python path
  145649. by the test execution. Inherit from the \fBintegration.ModuleCase\fP class.
  145650. .sp
  145651. Now the workhorse method \fBrun_function\fP can be used to test a module:
  145652. .INDENT 0.0
  145653. .INDENT 3.5
  145654. .sp
  145655. .nf
  145656. .ft C
  145657. import os
  145658. import tests.integration as integration
  145659. class TestModuleTest(integration.ModuleCase):
  145660. \(aq\(aq\(aq
  145661. Validate the test module
  145662. \(aq\(aq\(aq
  145663. def test_ping(self):
  145664. \(aq\(aq\(aq
  145665. test.ping
  145666. \(aq\(aq\(aq
  145667. self.assertTrue(self.run_function(\(aqtest.ping\(aq))
  145668. def test_echo(self):
  145669. \(aq\(aq\(aq
  145670. test.echo
  145671. \(aq\(aq\(aq
  145672. self.assertEqual(self.run_function(\(aqtest.echo\(aq, [\(aqtext\(aq]), \(aqtext\(aq)
  145673. .ft P
  145674. .fi
  145675. .UNINDENT
  145676. .UNINDENT
  145677. .sp
  145678. The fist example illustrates the testing master issuing a \fBtest.ping\fP call
  145679. to a testing minion. The test asserts that the minion returned with a \fBTrue\fP
  145680. value to the master from the \fBtest.ping\fP call.
  145681. .sp
  145682. The second example similarly verifies that the minion executed the
  145683. \fBtest.echo\fP command with the \fBtext\fP argument. The \fBassertEqual\fP call
  145684. maintains that the minion ran the function and returned the data as expected
  145685. to the master.
  145686. .SS Shell Example via ShellCase
  145687. .sp
  145688. Validating the shell commands can be done via shell tests:
  145689. .INDENT 0.0
  145690. .INDENT 3.5
  145691. .sp
  145692. .nf
  145693. .ft C
  145694. import sys
  145695. import shutil
  145696. import tempfile
  145697. import tests.integration as integration
  145698. class KeyTest(integration.ShellCase):
  145699. \(aq\(aq\(aq
  145700. Test salt\-key script
  145701. \(aq\(aq\(aq
  145702. _call_binary_ = \(aqsalt\-key\(aq
  145703. def test_list(self):
  145704. \(aq\(aq\(aq
  145705. test salt\-key \-L
  145706. \(aq\(aq\(aq
  145707. data = self.run_key(\(aq\-L\(aq)
  145708. expect = [
  145709. \(aqUnaccepted Keys:\(aq,
  145710. \(aqAccepted Keys:\(aq,
  145711. \(aqminion\(aq,
  145712. \(aqsub_minion\(aq,
  145713. \(aqRejected:\(aq, \(aq\(aq]
  145714. self.assertEqual(data, expect)
  145715. .ft P
  145716. .fi
  145717. .UNINDENT
  145718. .UNINDENT
  145719. .sp
  145720. This example verifies that the \fBsalt\-key\fP command executes and returns as
  145721. expected by making use of the \fBrun_key\fP method.
  145722. .SS SSH Example via SSHCase
  145723. .sp
  145724. Testing salt\-ssh functionality can be done using the SSHCase test class:
  145725. .INDENT 0.0
  145726. .INDENT 3.5
  145727. .sp
  145728. .nf
  145729. .ft C
  145730. import tests.integration as integration
  145731. class SSHGrainsTest(integration.SSHCase):
  145732. \(aq\(aq\(aq
  145733. Test salt\-ssh grains functionality
  145734. Depend on proper environment set by integration.SSHCase class
  145735. \(aq\(aq\(aq
  145736. def test_grains_id(self):
  145737. \(aq\(aq\(aq
  145738. Test salt\-ssh grains id work for localhost.
  145739. \(aq\(aq\(aq
  145740. cmd = self.run_function(\(aqgrains.get\(aq, [\(aqid\(aq])
  145741. self.assertEqual(cmd, \(aqlocalhost\(aq)
  145742. .ft P
  145743. .fi
  145744. .UNINDENT
  145745. .UNINDENT
  145746. .SS Testing Event System via SaltMinionEventAssertsMixin
  145747. .sp
  145748. The fundamentially asynchronous nature of Salt makes testing the event system a challenge.
  145749. The \fBSaltMinionEventAssertsMixin\fP provides a facility for testing that events were received
  145750. on a minion event bus.
  145751. .INDENT 0.0
  145752. .INDENT 3.5
  145753. .sp
  145754. .nf
  145755. .ft C
  145756. import tests.integration as integration
  145757. import salt.utils.event
  145758. class TestEvent(integration.SaltEventAssertsMixin):
  145759. \(aq\(aq\(aq
  145760. Example test of firing an event and receiving it
  145761. \(aq\(aq\(aq
  145762. def test_event(self):
  145763. e = salt.utils.event.get_event(\(aqminion\(aq, sock_dir=self.minion_opts[\(aqsock_dir\(aq], opts=self.minion_opts)
  145764. e.fire_event({\(aqa\(aq: \(aqb\(aq}, \(aq/test_event\(aq)
  145765. self.assertMinionEventReceived({\(aqa\(aq: \(aqb\(aq})
  145766. .ft P
  145767. .fi
  145768. .UNINDENT
  145769. .UNINDENT
  145770. .SS Syndic Example via SyndicCase
  145771. .sp
  145772. Testing Salt\(aqs Syndic can be done via the SyndicCase test class:
  145773. .INDENT 0.0
  145774. .INDENT 3.5
  145775. .sp
  145776. .nf
  145777. .ft C
  145778. import tests.integration as integration
  145779. class TestSyndic(integration.SyndicCase):
  145780. \(aq\(aq\(aq
  145781. Validate the syndic interface by testing the test module
  145782. \(aq\(aq\(aq
  145783. def test_ping(self):
  145784. \(aq\(aq\(aq
  145785. test.ping
  145786. \(aq\(aq\(aq
  145787. self.assertTrue(self.run_function(\(aqtest.ping\(aq))
  145788. .ft P
  145789. .fi
  145790. .UNINDENT
  145791. .UNINDENT
  145792. .sp
  145793. This example verifies that a \fBtest.ping\fP command is issued from the testing
  145794. master, is passed through to the testing syndic, down to the minion, and back
  145795. up again by using the \fBrun_function\fP located with in the \fBSyndicCase\fP test
  145796. class.
  145797. .SS Integration Test Files
  145798. .sp
  145799. Since using Salt largely involves configuring states, editing files, and changing
  145800. system data, the integration test suite contains a directory named \fBfiles\fP to
  145801. aid in testing functions that require files. Various Salt integration tests use
  145802. these example files to test against instead of altering system files and data.
  145803. .sp
  145804. Each directory within \fBtests/integration/files\fP contain files that accomplish
  145805. different tasks, based on the needs of the integration tests using those files.
  145806. For example, \fBtests/integration/files/ssh\fP is used to bootstrap the test runner
  145807. for salt\-ssh testing, while \fBtests/integration/files/pillar\fP contains files
  145808. storing data needed to test various pillar functions.
  145809. .sp
  145810. The \fBtests/integration/files\fP directory also includes an integration state tree.
  145811. The integration state tree can be found at \fBtests/integration/files/file/base\fP\&.
  145812. .sp
  145813. The following example demonstrates how integration files can be used with ModuleCase
  145814. to test states:
  145815. .INDENT 0.0
  145816. .INDENT 3.5
  145817. .sp
  145818. .nf
  145819. .ft C
  145820. # Import python libs
  145821. from __future__ import absolute_import
  145822. import os
  145823. import shutil
  145824. # Import Salt Testing libs
  145825. from tests.support.case import ModuleCase
  145826. from tests.support.paths import FILES, TMP
  145827. from tests.support.mixins import SaltReturnAssertsMixin
  145828. # Import salt libs
  145829. import salt.utils.files
  145830. HFILE = os.path.join(TMP, \(aqhosts\(aq)
  145831. class HostTest(ModuleCase, SaltReturnAssertsMixin):
  145832. \(aq\(aq\(aq
  145833. Validate the host state
  145834. \(aq\(aq\(aq
  145835. def setUp(self):
  145836. shutil.copyfile(os.path.join(FILES, \(aqhosts\(aq), HFILE)
  145837. super(HostTest, self).setUp()
  145838. def tearDown(self):
  145839. if os.path.exists(HFILE):
  145840. os.remove(HFILE)
  145841. super(HostTest, self).tearDown()
  145842. def test_present(self):
  145843. \(aq\(aq\(aq
  145844. host.present
  145845. \(aq\(aq\(aq
  145846. name = \(aqspam.bacon\(aq
  145847. ip = \(aq10.10.10.10\(aq
  145848. ret = self.run_state(\(aqhost.present\(aq, name=name, ip=ip)
  145849. self.assertSaltTrueReturn(ret)
  145850. with salt.utils.files.fopen(HFILE) as fp_:
  145851. output = fp_.read()
  145852. self.assertIn(\(aq{0}\et\et{1}\(aq.format(ip, name), output)
  145853. .ft P
  145854. .fi
  145855. .UNINDENT
  145856. .UNINDENT
  145857. .sp
  145858. To access the integration files, a variable named \fBFILES\fP points to the
  145859. \fBtests/integration/files\fP directory. This is where the referenced
  145860. \fBhost.present\fP sls file resides.
  145861. .sp
  145862. In addition to the static files in the integration state tree, the location
  145863. \fBTMP\fP can also be used to store temporary files that the test system
  145864. will clean up when the execution finishes.
  145865. .SS Destructive vs Non\-Destructive Tests
  145866. .sp
  145867. Since Salt is used to change the settings and behavior of systems, one testing
  145868. approach is to run tests that make actual changes to the underlying system. This
  145869. is where the concept of destructive integration tests comes into play. Tests can
  145870. be written to alter the system they are running on. This capability is what fills
  145871. in the gap needed to properly test aspects of system management like package
  145872. installation.
  145873. .sp
  145874. Any test that changes the underlying system in any way, such as creating or
  145875. deleting users, installing packages, or changing permissions should include the
  145876. \fB@destructive\fP decorator to signal system changes and should be written with
  145877. care. System changes executed within a destructive test should also be restored
  145878. once the related tests have completed. For example, if a new user is created to
  145879. test a module, the same user should be removed after the test is completed to
  145880. maintain system integrity.
  145881. .sp
  145882. To write a destructive test, import, and use the destructiveTest decorator for
  145883. the test method:
  145884. .INDENT 0.0
  145885. .INDENT 3.5
  145886. .sp
  145887. .nf
  145888. .ft C
  145889. import tests.integration as integration
  145890. from tests.support.helpers import destructiveTest, skip_if_not_root
  145891. class DestructiveExampleModuleTest(integration.ModuleCase):
  145892. \(aq\(aq\(aq
  145893. Demonstrate a destructive test
  145894. \(aq\(aq\(aq
  145895. @destructiveTest
  145896. @skip_if_not_root
  145897. def test_user_not_present(self):
  145898. \(aq\(aq\(aq
  145899. This is a DESTRUCTIVE TEST it creates a new user on the minion.
  145900. And then destroys that user.
  145901. \(aq\(aq\(aq
  145902. ret = self.run_state(\(aquser.present\(aq, name=\(aqsalt_test\(aq)
  145903. self.assertSaltTrueReturn(ret)
  145904. ret = self.run_state(\(aquser.absent\(aq, name=\(aqsalt_test\(aq)
  145905. self.assertSaltTrueReturn(ret)
  145906. .ft P
  145907. .fi
  145908. .UNINDENT
  145909. .UNINDENT
  145910. .SS Cloud Provider Tests
  145911. .sp
  145912. Cloud provider integration tests are used to assess Salt\-Cloud\(aqs
  145913. ability to create and destroy cloud instances for various supported cloud providers.
  145914. Cloud provider tests inherit from the ShellCase Integration Class.
  145915. .sp
  145916. Any new cloud provider test files should be added to the \fBtests/integration/cloud/providers/\fP
  145917. directory. Each cloud provider test file also requires a sample cloud profile and cloud
  145918. provider configuration file in the integration test file directory located at
  145919. \fBtests/integration/files/conf/cloud.*.d/\fP\&.
  145920. .sp
  145921. The following is an example of the default profile configuration file for Digital
  145922. Ocean, located at: \fBtests/integration/files/conf/cloud.profiles.d/digitalocean.conf\fP:
  145923. .INDENT 0.0
  145924. .INDENT 3.5
  145925. .sp
  145926. .nf
  145927. .ft C
  145928. digitalocean\-test:
  145929. provider: digitalocean\-config
  145930. image: Ubuntu 14.04 x64
  145931. size: 512MB
  145932. .ft P
  145933. .fi
  145934. .UNINDENT
  145935. .UNINDENT
  145936. .sp
  145937. Each cloud provider requires different configuration credentials. Therefore, sensitive
  145938. information such as API keys or passwords should be omitted from the cloud provider
  145939. configuration file and replaced with an empty string. The necessary credentials can
  145940. be provided by the user by editing the provider configuration file before running the
  145941. tests.
  145942. .sp
  145943. The following is an example of the default provider configuration file for Digital
  145944. Ocean, located at: \fBtests/integration/files/conf/cloud.providers.d/digitalocean.conf\fP:
  145945. .INDENT 0.0
  145946. .INDENT 3.5
  145947. .sp
  145948. .nf
  145949. .ft C
  145950. digitalocean\-config:
  145951. driver: digitalocean
  145952. client_key: \(aq\(aq
  145953. api_key: \(aq\(aq
  145954. location: New York 1
  145955. .ft P
  145956. .fi
  145957. .UNINDENT
  145958. .UNINDENT
  145959. .sp
  145960. In addition to providing the necessary cloud profile and provider files in the integration
  145961. test suite file structure, appropriate checks for if the configuration files exist and
  145962. contain valid information are also required in the test class\(aqs \fBsetUp\fP function:
  145963. .INDENT 0.0
  145964. .INDENT 3.5
  145965. .sp
  145966. .nf
  145967. .ft C
  145968. from tests.support.case import ShellCase
  145969. from tests.support.paths import FILES
  145970. class LinodeTest(ShellCase):
  145971. \(aq\(aq\(aq
  145972. Integration tests for the Linode cloud provider in Salt\-Cloud
  145973. \(aq\(aq\(aq
  145974. def setUp(self):
  145975. \(aq\(aq\(aq
  145976. Sets up the test requirements
  145977. \(aq\(aq\(aq
  145978. super(LinodeTest, self).setUp()
  145979. # check if appropriate cloud provider and profile files are present
  145980. profile_str = \(aqlinode\-config:\(aq
  145981. provider = \(aqlinode\(aq
  145982. providers = self.run_cloud(\(aq\-\-list\-providers\(aq)
  145983. if profile_str not in providers:
  145984. self.skipTest(
  145985. \(aqConfiguration file for {0} was not found. Check {0}.conf files \(aq
  145986. \(aqin tests/integration/files/conf/cloud.*.d/ to run these tests.\(aq
  145987. .format(provider)
  145988. )
  145989. # check if apikey and password are present
  145990. path = os.path.join(FILES,
  145991. \(aqconf\(aq,
  145992. \(aqcloud.providers.d\(aq,
  145993. provider + \(aq.conf\(aq)
  145994. config = cloud_providers_config(path)
  145995. api = config[\(aqlinode\-config\(aq][\(aqlinode\(aq][\(aqapikey\(aq]
  145996. password = config[\(aqlinode\-config\(aq][\(aqlinode\(aq][\(aqpassword\(aq]
  145997. if api == \(aq\(aq or password == \(aq\(aq:
  145998. self.skipTest(
  145999. \(aqAn api key and password must be provided to run these tests. Check \(aq
  146000. \(aqtests/integration/files/conf/cloud.providers.d/{0}.conf\(aq.format(
  146001. provider
  146002. )
  146003. )
  146004. .ft P
  146005. .fi
  146006. .UNINDENT
  146007. .UNINDENT
  146008. .sp
  146009. Repeatedly creating and destroying instances on cloud providers can be costly.
  146010. Therefore, cloud provider tests are off by default and do not run automatically. To
  146011. run the cloud provider tests, the \fB\-\-cloud\-provider\-tests\fP flag must be provided:
  146012. .INDENT 0.0
  146013. .INDENT 3.5
  146014. .sp
  146015. .nf
  146016. .ft C
  146017. \&./tests/runtests.py \-\-cloud\-provider\-tests
  146018. .ft P
  146019. .fi
  146020. .UNINDENT
  146021. .UNINDENT
  146022. .sp
  146023. Since cloud provider tests do not run automatically, all provider tests must be
  146024. preceded with the \fB@expensiveTest\fP decorator. The expensive test decorator is
  146025. necessary because it signals to the test suite that the
  146026. \fB\-\-cloud\-provider\-tests\fP flag is required to run the cloud provider tests.
  146027. .sp
  146028. To write a cloud provider test, import, and use the expensiveTest decorator for
  146029. the test function:
  146030. .INDENT 0.0
  146031. .INDENT 3.5
  146032. .sp
  146033. .nf
  146034. .ft C
  146035. from tests.support.helpers import expensiveTest
  146036. @expensiveTest
  146037. def test_instance(self):
  146038. \(aq\(aq\(aq
  146039. Test creating an instance on Linode
  146040. \(aq\(aq\(aq
  146041. name = \(aqlinode\-testing\(aq
  146042. # create the instance
  146043. instance = self.run_cloud(\(aq\-p linode\-test {0}\(aq.format(name))
  146044. str = \(aq {0}\(aq.format(name)
  146045. # check if instance with salt installed returned as expected
  146046. try:
  146047. self.assertIn(str, instance)
  146048. except AssertionError:
  146049. self.run_cloud(\(aq\-d {0} \-\-assume\-yes\(aq.format(name))
  146050. raise
  146051. # delete the instance
  146052. delete = self.run_cloud(\(aq\-d {0} \-\-assume\-yes\(aq.format(name))
  146053. str = \(aq True\(aq
  146054. try:
  146055. self.assertIn(str, delete)
  146056. except AssertionError:
  146057. raise
  146058. .ft P
  146059. .fi
  146060. .UNINDENT
  146061. .UNINDENT
  146062. .SS Adding New Directories
  146063. .sp
  146064. If the corresponding Salt directory does not exist within
  146065. \fBtests/integration\fP, the new directory must be created along with the
  146066. appropriate test file to maintain Salt\(aqs testing directory structure.
  146067. .sp
  146068. In order for Salt\(aqs test suite to recognize tests within the newly
  146069. created directory, options to run the new integration tests must be added to
  146070. \fBtests/runtests.py\fP\&. Examples of the necessary options that must be added
  146071. can be found here: \fI\%https://github.com/saltstack/salt/blob/master/tests/runtests.py\fP\&. The functions that need to be
  146072. edited are \fBsetup_additional_options\fP, \fBvalidate_options\fP, and
  146073. \fBrun_integration_tests\fP\&.
  146074. .SS Writing Unit Tests
  146075. .SS Introduction
  146076. .sp
  146077. Like many software projects, Salt has two broad\-based testing approaches \-\-
  146078. integration testing and unit testing. While integration testing focuses on the
  146079. interaction between components in a sandboxed environment, unit testing focuses
  146080. on the singular implementation of individual functions.
  146081. .sp
  146082. Unit tests should be used specifically to test a function\(aqs logic. Unit tests
  146083. rely on mocking external resources.
  146084. .sp
  146085. While unit tests are good for ensuring consistent results, they are most
  146086. useful when they do not require more than a few mocks. Effort should be
  146087. made to mock as many external resources as possible. This effort is encouraged,
  146088. but not required. Sometimes the isolation provided by completely mocking the
  146089. external dependencies is not worth the effort of mocking those dependencies.
  146090. .sp
  146091. In these cases, requiring an external library to be installed on the
  146092. system before running the test file is a useful way to strike this balance.
  146093. For example, the unit tests for the MySQL execution module require the
  146094. presence of the MySQL python bindings on the system running the test file
  146095. before proceeding to run the tests.
  146096. .sp
  146097. Overly detailed mocking can also result in decreased test readability and
  146098. brittleness as the tests are more likely to fail when the code or its
  146099. dependencies legitimately change. In these cases, it is better to add
  146100. dependencies to the test runner dependency state.
  146101. .SS Preparing to Write a Unit Test
  146102. .sp
  146103. This guide assumes that your Salt development environment is already configured
  146104. and that you have a basic understanding of contributing to the Salt codebase.
  146105. If you\(aqre unfamiliar with either of these topics, please refer to the
  146106. Installing Salt for Development and the
  146107. Contributing pages, respectively.
  146108. .sp
  146109. This documentation also assumes that you have an understanding of how to
  146110. run Salt\(aqs test suite, including running the
  146111. unit test subsection, running the unit tests
  146112. without testing daemons to speed up
  146113. development wait times, and running a unit test file, class, or individual test.
  146114. .SS Best Practices
  146115. .sp
  146116. Unit tests should be written to the following specifications.
  146117. .SS What to Test?
  146118. .sp
  146119. Since unit testing focuses on the singular implementation of individual functions,
  146120. unit tests should be used specifically to test a function\(aqs logic. The following
  146121. guidelines should be followed when writing unit tests for Salt\(aqs test suite:
  146122. .INDENT 0.0
  146123. .IP \(bu 2
  146124. Each \fBraise\fP and \fBreturn\fP statement needs to be independently tested.
  146125. .IP \(bu 2
  146126. Isolate testing functionality. Don\(aqt rely on the pass or failure of other,
  146127. separate tests.
  146128. .IP \(bu 2
  146129. Test functions should contain only one assertion.
  146130. .IP \(bu 2
  146131. Many Salt execution modules are merely wrappers for distribution\-specific
  146132. functionality. If there isn\(aqt any logic present in a simple execution module,
  146133. consider writing an integration test instead of
  146134. heavily mocking a call to an external dependency.
  146135. .UNINDENT
  146136. .SS Mocking Test Data
  146137. .sp
  146138. A reasonable effort needs to be made to mock external resources used in the
  146139. code being tested, such as APIs, function calls, external data either
  146140. globally available or passed in through function arguments, file data, etc.
  146141. .INDENT 0.0
  146142. .IP \(bu 2
  146143. Test functions should contain only one assertion and all necessary mock code
  146144. and data for that assertion.
  146145. .IP \(bu 2
  146146. External resources should be mocked in order to "block all of the exits". If a
  146147. test function fails because something in an external library wasn\(aqt mocked
  146148. properly (or at all), this test is not addressing all of the "exits" a function
  146149. may experience. We want the Salt code and logic to be tested, specifically.
  146150. .IP \(bu 2
  146151. Consider the fragility and longevity of a test. If the test is so tightly coupled
  146152. to the code being tested, this makes a test unnecessarily fragile.
  146153. .IP \(bu 2
  146154. Make sure you are not mocking the function to be tested so vigorously that the
  146155. test return merely tests the mocked output. The test should always be testing
  146156. a function\(aqs logic.
  146157. .UNINDENT
  146158. .SS Mocking Loader Modules
  146159. .sp
  146160. Salt loader modules use a series of globally available dunder variables,
  146161. \fB__salt__\fP, \fB__opts__\fP, \fB__pillar__\fP, etc. To facilitate testing these
  146162. modules a mixin class was created, \fBLoaderModuleMockMixin\fP which can be found
  146163. in \fBtests/support/mixins.py\fP\&. The reason for the existence of this class is
  146164. because historically one would add these dunder
  146165. variables directly on the imported module. This, however, introduces unexpected
  146166. behavior when running the full test suite since those attributes would not be
  146167. removed once we were done testing the module and would therefore leak to other
  146168. modules being tested with unpredictable results. This is the kind of work that
  146169. should be deferred to mock, and that\(aqs exactly what this mixin class does.
  146170. .sp
  146171. As an example, if one needs to specify some options which should be available
  146172. to the module being tested one should do:
  146173. .INDENT 0.0
  146174. .INDENT 3.5
  146175. .sp
  146176. .nf
  146177. .ft C
  146178. import salt.modules.somemodule as somemodule
  146179. class SomeModuleTest(TestCase, LoaderModuleMockMixin):
  146180. def setup_loader_modules(self):
  146181. return {
  146182. somemodule: {
  146183. \(aq__opts__\(aq: {\(aqtest\(aq: True}
  146184. }
  146185. }
  146186. .ft P
  146187. .fi
  146188. .UNINDENT
  146189. .UNINDENT
  146190. .sp
  146191. Consider this more extensive example from
  146192. \fBtests/unit/modules/test_libcloud_dns.py\fP:
  146193. .INDENT 0.0
  146194. .INDENT 3.5
  146195. .sp
  146196. .nf
  146197. .ft C
  146198. # Import Python Libs
  146199. from __future__ import absolute_import
  146200. # Import Salt Testing Libs
  146201. from tests.support.mixins import LoaderModuleMockMixin
  146202. from tests.support.unit import TestCase
  146203. from tests.support.mock import (
  146204. patch,
  146205. MagicMock,
  146206. )
  146207. import salt.modules.libcloud_dns as libcloud_dns
  146208. class MockDNSDriver(object):
  146209. def __init__(self):
  146210. pass
  146211. def get_mock_driver():
  146212. return MockDNSDriver()
  146213. @patch(\(aqsalt.modules.libcloud_dns._get_driver\(aq,
  146214. MagicMock(return_value=MockDNSDriver()))
  146215. class LibcloudDnsModuleTestCase(TestCase, LoaderModuleMockMixin):
  146216. def setup_loader_modules(self):
  146217. module_globals = {
  146218. \(aq__salt__\(aq: {
  146219. \(aqconfig.option\(aq: MagicMock(return_value={
  146220. \(aqtest\(aq: {
  146221. \(aqdriver\(aq: \(aqtest\(aq,
  146222. \(aqkey\(aq: \(aq2orgk34kgk34g\(aq
  146223. }
  146224. })
  146225. }
  146226. }
  146227. if libcloud_dns.HAS_LIBCLOUD is False:
  146228. module_globals[\(aqsys.modules\(aq] = {\(aqlibcloud\(aq: MagicMock()}
  146229. return {libcloud_dns: module_globals}
  146230. .ft P
  146231. .fi
  146232. .UNINDENT
  146233. .UNINDENT
  146234. .sp
  146235. What happens in the above example is we mock a call to
  146236. \fI__salt__[\(aqconfig.option\(aq]\fP to return the configuration needed for the
  146237. execution of the tests. Additionally, if the \fBlibcloud\fP library is not
  146238. available, since that\(aqs not actually part of what\(aqs being tested, we mocked that
  146239. import by patching \fBsys.modules\fP when tests are running.
  146240. .SS Mocking Filehandles
  146241. .sp
  146242. \fBNOTE:\fP
  146243. .INDENT 0.0
  146244. .INDENT 3.5
  146245. This documentation applies to the 2018.3 release cycle and newer. The
  146246. extended functionality for \fBmock_open\fP described below does not exist in
  146247. the 2017.7 and older release branches.
  146248. .UNINDENT
  146249. .UNINDENT
  146250. .sp
  146251. Opening files in Salt is done using \fBsalt.utils.files.fopen()\fP\&. When testing
  146252. code that reads from files, the \fBmock_open\fP helper can be used to mock
  146253. filehandles. Note that is not the same \fBmock_open\fP as
  146254. \fI\%unittest.mock.mock_open()\fP from the Python standard library, but rather
  146255. a separate implementation which has additional functionality.
  146256. .INDENT 0.0
  146257. .INDENT 3.5
  146258. .sp
  146259. .nf
  146260. .ft C
  146261. from tests.support.unit import TestCase
  146262. from tests.support.mock import (
  146263. patch
  146264. mock_open,
  146265. )
  146266. import salt.modules.mymod as mymod
  146267. class MyAwesomeTestCase(TestCase):
  146268. def test_something(self):
  146269. fopen_mock = mock_open(read_data=\(aqfoo\enbar\enbaz\en\(aq)
  146270. with patch(\(aqsalt.utils.files.fopen\(aq, fopen_mock):
  146271. result = mymod.myfunc()
  146272. assert result is True
  146273. .ft P
  146274. .fi
  146275. .UNINDENT
  146276. .UNINDENT
  146277. .sp
  146278. This will force any filehandle opened to mimic a filehandle which, when read,
  146279. produces the specified contents.
  146280. .sp
  146281. \fBIMPORTANT:\fP
  146282. .INDENT 0.0
  146283. .INDENT 3.5
  146284. \fBString Types\fP
  146285. .sp
  146286. When running tests on Python 2, \fBmock_open\fP will convert any \fBunicode\fP
  146287. types to \fBstr\fP types to more closely reproduce Python 2 behavior (file
  146288. reads are always \fBstr\fP types in Python 2, irrespective of mode).
  146289. .sp
  146290. However, when configuring your read_data, make sure that you are using
  146291. bytestrings (e.g. \fBb\(aqfoo\enbar\enbaz\en\(aq\fP) when the code you are testing is
  146292. opening a file for binary reading, otherwise the tests will fail on Python
  146293. 3. The mocked filehandles produced by \fBmock_open\fP will raise a
  146294. \fI\%TypeError\fP if you attempt to read a bytestring when opening for
  146295. non\-binary reading, and similarly will not let you read a string when
  146296. opening a file for binary reading. They will also not permit bytestrings to
  146297. be "written" if the mocked filehandle was opened for non\-binary writing,
  146298. and vice\-versa when opened for non\-binary writing. These enhancements force
  146299. test writers to write more accurate tests.
  146300. .UNINDENT
  146301. .UNINDENT
  146302. .SS More Complex Scenarios
  146303. .SS Multiple File Paths
  146304. .sp
  146305. What happens when the code being tested reads from more than one file? For
  146306. those cases, you can pass \fBread_data\fP as a dictionary:
  146307. .INDENT 0.0
  146308. .INDENT 3.5
  146309. .sp
  146310. .nf
  146311. .ft C
  146312. import textwrap
  146313. from tests.support.unit import TestCase
  146314. from tests.support.mock import (
  146315. patch
  146316. mock_open,
  146317. )
  146318. import salt.modules.mymod as mymod
  146319. class MyAwesomeTestCase(TestCase):
  146320. def test_something(self):
  146321. contents = {
  146322. \(aq/etc/foo.conf\(aq: textwrap.dedent(\(aq\(aq\(aq\e
  146323. foo
  146324. bar
  146325. baz
  146326. \(aq\(aq\(aq),
  146327. \(aq/etc/b*.conf\(aq: textwrap.dedent(\(aq\(aq\(aq\e
  146328. one
  146329. two
  146330. three
  146331. \(aq\(aq\(aq),
  146332. }
  146333. fopen_mock = mock_open(read_data=contents)
  146334. with patch(\(aqsalt.utils.files.fopen\(aq, fopen_mock):
  146335. result = mymod.myfunc()
  146336. assert result is True
  146337. .ft P
  146338. .fi
  146339. .UNINDENT
  146340. .UNINDENT
  146341. .sp
  146342. This would make \fBsalt.utils.files.fopen()\fP produce filehandles with different
  146343. contents depending on which file was being opened by the code being tested.
  146344. \fB/etc/foo.conf\fP and any file matching the pattern \fB/etc/b*.conf\fP would
  146345. work, while opening any other path would result in a
  146346. \fI\%FileNotFoundError\fP being raised (in Python 2, an \fBIOError\fP).
  146347. .sp
  146348. Since file patterns are supported, it is possible to use a pattern of \fB\(aq*\(aq\fP
  146349. to define a fallback if no other patterns match the filename being opened. The
  146350. below two \fBmock_open\fP calls would produce identical results:
  146351. .INDENT 0.0
  146352. .INDENT 3.5
  146353. .sp
  146354. .nf
  146355. .ft C
  146356. mock_open(read_data=\(aqfoo\en\(aq)
  146357. mock_open(read_data={\(aq*\(aq: \(aqfoo\en\(aq})
  146358. .ft P
  146359. .fi
  146360. .UNINDENT
  146361. .UNINDENT
  146362. .sp
  146363. \fBNOTE:\fP
  146364. .INDENT 0.0
  146365. .INDENT 3.5
  146366. Take care when specifying the \fBread_data\fP as a dictionary, in cases where
  146367. the patterns overlap (e.g. when both \fB/etc/b*.conf\fP and \fB/etc/bar.conf\fP
  146368. are in the \fBread_data\fP). Dictionary iteration order will determine which
  146369. pattern is attempted first, second, etc., with the exception of \fB*\fP which
  146370. is used when no other pattern matches. If your test case calls for
  146371. specifying overlapping patterns, and you are not running Python 3.6 or
  146372. newer, then an \fBOrderedDict\fP can be used to ensure matching is handled in
  146373. the desired way:
  146374. .INDENT 0.0
  146375. .INDENT 3.5
  146376. .sp
  146377. .nf
  146378. .ft C
  146379. contents = OrderedDict()
  146380. contents[\(aq/etc/bar.conf\(aq] = \(aqfoo\enbar\enbaz\en\(aq
  146381. contents[\(aq/etc/b*.conf\(aq] = IOError(errno.EACCES, \(aqPermission denied\(aq)
  146382. contents[\(aq*\(aq] = \(aqThis is a fallback for files not beginning with "/etc/b"\en\(aq
  146383. fopen_mock = mock_open(read_data=contents)
  146384. .ft P
  146385. .fi
  146386. .UNINDENT
  146387. .UNINDENT
  146388. .UNINDENT
  146389. .UNINDENT
  146390. .SS Raising Exceptions
  146391. .sp
  146392. Instead of a string, an exception can also be used as the \fBread_data\fP:
  146393. .INDENT 0.0
  146394. .INDENT 3.5
  146395. .sp
  146396. .nf
  146397. .ft C
  146398. import errno
  146399. from tests.support.unit import TestCase
  146400. from tests.support.mock import (
  146401. patch
  146402. mock_open,
  146403. )
  146404. import salt.modules.mymod as mymod
  146405. class MyAwesomeTestCase(TestCase):
  146406. def test_something(self):
  146407. exc = IOError(errno.EACCES, \(aqPermission denied\(aq)
  146408. fopen_mock = mock_open(read_data=exc)
  146409. with patch(\(aqsalt.utils.files.fopen\(aq, fopen_mock):
  146410. mymod.myfunc()
  146411. .ft P
  146412. .fi
  146413. .UNINDENT
  146414. .UNINDENT
  146415. .sp
  146416. The above example would raise the specified exception when any file is opened.
  146417. The expectation would be that \fBmymod.myfunc()\fP would gracefully handle the
  146418. IOError, so a failure to do that would result in it being raised and causing
  146419. the test to fail.
  146420. .SS Multiple File Contents
  146421. .sp
  146422. For cases in which a file is being read more than once, and it is necessary to
  146423. test a function\(aqs behavior based on what the file looks like the second (or
  146424. third, etc.) time it is read, just specify the contents for that file as a
  146425. list. Each time the file is opened, \fBmock_open\fP will cycle through the list
  146426. and produce a mocked filehandle with the specified contents. For example:
  146427. .INDENT 0.0
  146428. .INDENT 3.5
  146429. .sp
  146430. .nf
  146431. .ft C
  146432. import errno
  146433. import textwrap
  146434. from tests.support.unit import TestCase
  146435. from tests.support.mock import (
  146436. patch
  146437. mock_open,
  146438. )
  146439. import salt.modules.mymod as mymod
  146440. class MyAwesomeTestCase(TestCase):
  146441. def test_something(self):
  146442. contents = {
  146443. \(aq/etc/foo.conf\(aq: [
  146444. textwrap.dedent(\(aq\(aq\(aq\e
  146445. foo
  146446. bar
  146447. \(aq\(aq\(aq),
  146448. textwrap.dedent(\(aq\(aq\(aq\e
  146449. foo
  146450. bar
  146451. baz
  146452. \(aq\(aq\(aq),
  146453. ],
  146454. \(aq/etc/b*.conf\(aq: [
  146455. IOError(errno.ENOENT, \(aqNo such file or directory\(aq),
  146456. textwrap.dedent(\(aq\(aq\(aq\e
  146457. one
  146458. two
  146459. three
  146460. \(aq\(aq\(aq),
  146461. ],
  146462. }
  146463. fopen_mock = mock_open(read_data=contents)
  146464. with patch(\(aqsalt.utils.files.fopen\(aq, fopen_mock):
  146465. result = mymod.myfunc()
  146466. assert result is True
  146467. .ft P
  146468. .fi
  146469. .UNINDENT
  146470. .UNINDENT
  146471. .sp
  146472. Using this example, the first time \fB/etc/foo.conf\fP is opened, it will
  146473. simulate a file with the first string in the list as its contents, while the
  146474. second time it is opened, the simulated file\(aqs contents will be the second
  146475. string in the list.
  146476. .sp
  146477. If no more items remain in the list, then attempting to open the file will
  146478. raise a \fI\%RuntimeError\fP\&. In the example above, if \fB/etc/foo.conf\fP were
  146479. to be opened a third time, a \fI\%RuntimeError\fP would be raised.
  146480. .sp
  146481. Note that exceptions can also be mixed in with strings when using this
  146482. technique. In the above example, if \fB/etc/bar.conf\fP were to be opened twice,
  146483. the first time would simulate the file not existing, while the second time
  146484. would simulate a file with string defined in the second element of the list.
  146485. .sp
  146486. \fBNOTE:\fP
  146487. .INDENT 0.0
  146488. .INDENT 3.5
  146489. Notice that the second path in the \fBcontents\fP dictionary above
  146490. (\fB/etc/b*.conf\fP) contains an asterisk. The items in the list are cycled
  146491. through for each match of a given pattern (\fInot\fP separately for each
  146492. individual file path), so this means that only two files matching that
  146493. pattern could be opened before the next one would raise a
  146494. \fI\%RuntimeError\fP\&.
  146495. .UNINDENT
  146496. .UNINDENT
  146497. .SS Accessing the Mocked Filehandles in a Test
  146498. .sp
  146499. \fBNOTE:\fP
  146500. .INDENT 0.0
  146501. .INDENT 3.5
  146502. The code for the \fBMockOpen\fP, \fBMockCall\fP, and \fBMockFH\fP classes
  146503. (referenced below) can be found in \fBtests/support/mock.py\fP\&. There are
  146504. extensive unit tests for them located in \fBtests/unit/test_mock.py\fP\&.
  146505. .UNINDENT
  146506. .UNINDENT
  146507. .sp
  146508. The above examples simply show how to mock \fBsalt.utils.files.fopen()\fP to
  146509. simulate files with the contents you desire, but you can also access the mocked
  146510. filehandles (and more), and use them to craft assertions in your tests. To do
  146511. so, just add an \fBas\fP clause to the end of the \fBpatch\fP statement:
  146512. .INDENT 0.0
  146513. .INDENT 3.5
  146514. .sp
  146515. .nf
  146516. .ft C
  146517. fopen_mock = mock_open(read_data=\(aqfoo\enbar\enbaz\en\(aq)
  146518. with patch(\(aqsalt.utils.files.fopen\(aq, fopen_mock) as m_open:
  146519. # do testing here
  146520. ...
  146521. ...
  146522. .ft P
  146523. .fi
  146524. .UNINDENT
  146525. .UNINDENT
  146526. .sp
  146527. When doing this, \fBm_open\fP will be a \fBMockOpen\fP instance. It will contain
  146528. several useful attributes:
  146529. .INDENT 0.0
  146530. .IP \(bu 2
  146531. \fBread_data\fP \- A dictionary containing the \fBread_data\fP passed when
  146532. \fBmock_open\fP was invoked. In the event that \fI\%multiple file paths\fP are not used, then this will be a
  146533. dictionary mapping \fB*\fP to the \fBread_data\fP passed to \fBmock_open\fP\&.
  146534. .IP \(bu 2
  146535. \fBcall_count\fP \- An integer representing how many times
  146536. \fBsalt.utils.files.fopen()\fP was called to open a file.
  146537. .IP \(bu 2
  146538. \fBcalls\fP \- A list of \fBMockCall\fP objects. A \fBMockCall\fP object is a simple
  146539. class which stores the arguments passed to it, making the positional
  146540. arguments available via its \fBargs\fP attribute, and the keyword arguments
  146541. available via its \fBkwargs\fP attribute.
  146542. .INDENT 2.0
  146543. .INDENT 3.5
  146544. .sp
  146545. .nf
  146546. .ft C
  146547. from tests.support.unit import TestCase
  146548. from tests.support.mock import (
  146549. patch
  146550. mock_open,
  146551. MockCall,
  146552. )
  146553. import salt.modules.mymod as mymod
  146554. class MyAwesomeTestCase(TestCase):
  146555. def test_something(self):
  146556. with patch(\(aqsalt.utils.files.fopen\(aq, mock_open(read_data=b\(aqfoo\en\(aq)) as m_open:
  146557. mymod.myfunc()
  146558. # Assert that only two opens attempted
  146559. assert m_open.call_count == 2
  146560. # Assert that only /etc/foo.conf was opened
  146561. assert all(call.args[0] == \(aq/etc/foo.conf\(aq for call in m_open.calls)
  146562. # Asser that the first open was for binary read, and the
  146563. # second was for binary write.
  146564. assert m_open.calls == [
  146565. MockCall(\(aq/etc/foo.conf\(aq, \(aqrb\(aq),
  146566. MockCall(\(aq/etc/foo.conf\(aq, \(aqwb\(aq),
  146567. ]
  146568. .ft P
  146569. .fi
  146570. .UNINDENT
  146571. .UNINDENT
  146572. .sp
  146573. Note that \fBMockCall\fP is imported from \fBtests.support.mock\fP in the above
  146574. example. Also, the second assert above is redundant since it is covered in
  146575. the final assert, but both are included simply as an example.
  146576. .IP \(bu 2
  146577. \fBfilehandles\fP \- A dictionary mapping the unique file paths opened, to lists
  146578. of \fBMockFH\fP objects. Each open creates a unique \fBMockFH\fP object. Each
  146579. \fBMockFH\fP object itself has a number of useful attributes:
  146580. .INDENT 2.0
  146581. .IP \(bu 2
  146582. \fBfilename\fP \- The path to the file which was opened using
  146583. \fBsalt.utils.files.fopen()\fP
  146584. .IP \(bu 2
  146585. \fBcall\fP \- A \fBMockCall\fP object representing the arguments passed to
  146586. \fBsalt.utils.files.fopen()\fP\&. Note that this \fBMockCall\fP is also available
  146587. in the parent \fBMockOpen\fP instance\(aqs \fBcalls\fP list.
  146588. .IP \(bu 2
  146589. The following methods are mocked using \fI\%unittest.mock.Mock\fP
  146590. objects, and Mock\(aqs built\-in asserts (as well as the call data) can be used
  146591. as you would with any other Mock object:
  146592. .INDENT 2.0
  146593. .IP \(bu 2
  146594. \fB\&.read()\fP
  146595. .IP \(bu 2
  146596. \fB\&.readlines()\fP
  146597. .IP \(bu 2
  146598. \fB\&.readline()\fP
  146599. .IP \(bu 2
  146600. \fB\&.close()\fP
  146601. .IP \(bu 2
  146602. \fB\&.write()\fP
  146603. .IP \(bu 2
  146604. \fB\&.writelines()\fP
  146605. .IP \(bu 2
  146606. \fB\&.seek()\fP
  146607. .UNINDENT
  146608. .IP \(bu 2
  146609. The read functions (\fB\&.read()\fP, \fB\&.readlines()\fP, \fB\&.readline()\fP) all
  146610. work as expected, as does iterating through the file line by line (i.e.
  146611. \fBfor line in fh:\fP).
  146612. .IP \(bu 2
  146613. The \fB\&.tell()\fP method is also implemented in such a way that it updates
  146614. after each time the mocked filehandle is read, and will report the correct
  146615. position. The one caveat here is that \fB\&.seek()\fP doesn\(aqt actually work
  146616. (it\(aqs simply mocked), and will not change the position. Additionally,
  146617. neither \fB\&.write()\fP or \fB\&.writelines()\fP will modify the mocked
  146618. filehandle\(aqs contents.
  146619. .IP \(bu 2
  146620. The attributes \fB\&.write_calls\fP and \fB\&.writelines_calls\fP (no parenthesis)
  146621. are available as shorthands and correspond to lists containing the contents
  146622. passed for all calls to \fB\&.write()\fP and \fB\&.writelines()\fP, respectively.
  146623. .UNINDENT
  146624. .UNINDENT
  146625. .SS Examples
  146626. .INDENT 0.0
  146627. .INDENT 3.5
  146628. .sp
  146629. .nf
  146630. .ft C
  146631. with patch(\(aqsalt.utils.files.fopen\(aq, mock_open(read_data=contents)) as m_open:
  146632. # Run the code you are unit testing
  146633. mymod.myfunc()
  146634. # Check that only the expected file was opened, and that it was opened
  146635. # only once.
  146636. assert m_open.call_count == 1
  146637. assert list(m_open.filehandles) == [\(aq/etc/foo.conf\(aq]
  146638. # "opens" will be a list of all the mocked filehandles opened
  146639. opens = m_open.filehandles[\(aq/etc/foo.conf\(aq]
  146640. # Check that we wrote the expected lines ("expected" here is assumed to
  146641. # be a list of strings)
  146642. assert opens[0].write_calls == expected
  146643. .ft P
  146644. .fi
  146645. .UNINDENT
  146646. .UNINDENT
  146647. .INDENT 0.0
  146648. .INDENT 3.5
  146649. .sp
  146650. .nf
  146651. .ft C
  146652. with patch(\(aqsalt.utils.files.fopen\(aq, mock_open(read_data=contents)) as m_open:
  146653. # Run the code you are unit testing
  146654. mymod.myfunc()
  146655. # Check that .readlines() was called (remember, it\(aqs a Mock)
  146656. m_open.filehandles[\(aq/etc/foo.conf\(aq][0].readlines.assert_called()
  146657. .ft P
  146658. .fi
  146659. .UNINDENT
  146660. .UNINDENT
  146661. .INDENT 0.0
  146662. .INDENT 3.5
  146663. .sp
  146664. .nf
  146665. .ft C
  146666. with patch(\(aqsalt.utils.files.fopen\(aq, mock_open(read_data=contents)) as m_open:
  146667. # Run the code you are unit testing
  146668. mymod.myfunc()
  146669. # Check that we read the file and also wrote to it
  146670. m_open.filehandles[\(aq/etc/foo.conf\(aq][0].read.assert_called_once()
  146671. m_open.filehandles[\(aq/etc/foo.conf\(aq][1].writelines.assert_called_once()
  146672. .ft P
  146673. .fi
  146674. .UNINDENT
  146675. .UNINDENT
  146676. .SS Naming Conventions
  146677. .sp
  146678. Test names and docstrings should indicate what functionality is being tested.
  146679. Test functions are named \fBtest_<fcn>_<test\-name>\fP where \fB<fcn>\fP is the function
  146680. being tested and \fB<test\-name>\fP describes the \fBraise\fP or \fBreturn\fP being tested.
  146681. .sp
  146682. Unit tests for \fBsalt/.../<module>.py\fP are contained in a file called
  146683. \fBtests/unit/.../test_<module>.py\fP, e.g. the tests for \fBsalt/modules/fib.py\fP
  146684. are in \fBtests/unit/modules/test_fib.py\fP\&.
  146685. .sp
  146686. In order for unit tests to get picked up during a run of the unit test suite, each
  146687. unit test file must be prefixed with \fBtest_\fP and each individual test must be
  146688. prepended with the \fBtest_\fP naming syntax, as described above.
  146689. .sp
  146690. If a function does not start with \fBtest_\fP, then the function acts as a "normal"
  146691. function and is not considered a testing function. It will not be included in the
  146692. test run or testing output. The same principle applies to unit test files that
  146693. do not have the \fBtest_*.py\fP naming syntax. This test file naming convention
  146694. is how the test runner recognizes that a test file contains unit tests.
  146695. .SS Imports
  146696. .sp
  146697. Most commonly, the following imports are necessary to create a unit test:
  146698. .INDENT 0.0
  146699. .INDENT 3.5
  146700. .sp
  146701. .nf
  146702. .ft C
  146703. from tests.support.unit import TestCase
  146704. .ft P
  146705. .fi
  146706. .UNINDENT
  146707. .UNINDENT
  146708. .sp
  146709. If you need mock support to your tests, please also import:
  146710. .INDENT 0.0
  146711. .INDENT 3.5
  146712. .sp
  146713. .nf
  146714. .ft C
  146715. from tests.support.mock import MagicMock, patch, call
  146716. .ft P
  146717. .fi
  146718. .UNINDENT
  146719. .UNINDENT
  146720. .SS Evaluating Truth
  146721. .sp
  146722. A longer discussion on the types of assertions one can make can be found by
  146723. reading \fI\%Python\(aqs documentation on unit testing\fP\&.
  146724. .SS Tests Using Mock Objects
  146725. .sp
  146726. In many cases, the purpose of a Salt module is to interact with some external
  146727. system, whether it be to control a database, manipulate files on a filesystem
  146728. or something else. In these varied cases, it\(aqs necessary to design a unit test
  146729. which can test the function whilst replacing functions which might actually
  146730. call out to external systems. One might think of this as "blocking the exits"
  146731. for code under tests and redirecting the calls to external systems with our own
  146732. code which produces known results during the duration of the test.
  146733. .sp
  146734. To achieve this behavior, Salt makes heavy use of the \fI\%MagicMock package\fP\&.
  146735. .sp
  146736. To understand how one might integrate Mock into writing a unit test for Salt,
  146737. let\(aqs imagine a scenario in which we\(aqre testing an execution module that\(aqs
  146738. designed to operate on a database. Furthermore, let\(aqs imagine two separate
  146739. methods, here presented in pseduo\-code in an imaginary execution module called
  146740. \(aqdb.py\(aq.
  146741. .INDENT 0.0
  146742. .INDENT 3.5
  146743. .sp
  146744. .nf
  146745. .ft C
  146746. def create_user(username):
  146747. qry = \(aqCREATE USER {0}\(aq.format(username)
  146748. execute_query(qry)
  146749. def execute_query(qry):
  146750. # Connect to a database and actually do the query...
  146751. .ft P
  146752. .fi
  146753. .UNINDENT
  146754. .UNINDENT
  146755. .sp
  146756. Here, let\(aqs imagine that we want to create a unit test for the \fIcreate_user\fP
  146757. function. In doing so, we want to avoid any calls out to an external system and
  146758. so while we are running our unit tests, we want to replace the actual
  146759. interaction with a database with a function that can capture the parameters
  146760. sent to it and return pre\-defined values. Therefore, our task is clear \-\- to
  146761. write a unit test which tests the functionality of \fIcreate_user\fP while also
  146762. replacing \(aqexecute_query\(aq with a mocked function.
  146763. .sp
  146764. To begin, we set up the skeleton of our class much like we did before, but with
  146765. additional imports for MagicMock:
  146766. .INDENT 0.0
  146767. .INDENT 3.5
  146768. .sp
  146769. .nf
  146770. .ft C
  146771. # Import Salt Testing libs
  146772. from tests.support.unit import TestCase
  146773. # Import Salt execution module to test
  146774. from salt.modules import db
  146775. # Import Mock libraries
  146776. from tests.support.mock import MagicMock, patch, call
  146777. # Create test case class and inherit from Salt\(aqs customized TestCase
  146778. # Skip this test case if we don\(aqt have access to mock!
  146779. class DbTestCase(TestCase):
  146780. def test_create_user(self):
  146781. # First, we replace \(aqexecute_query\(aq with our own mock function
  146782. with patch.object(db, \(aqexecute_query\(aq, MagicMock()) as db_exq:
  146783. # Now that the exits are blocked, we can run the function under test.
  146784. db.create_user(\(aqtestuser\(aq)
  146785. # We could now query our mock object to see which calls were made
  146786. # to it.
  146787. ## print db_exq.mock_calls
  146788. # Construct a call object that simulates the way we expected
  146789. # execute_query to have been called.
  146790. expected_call = call(\(aqCREATE USER testuser\(aq)
  146791. # Compare the expected call with the list of actual calls. The
  146792. # test will succeed or fail depending on the output of this
  146793. # assertion.
  146794. db_exq.assert_has_calls(expected_call)
  146795. .ft P
  146796. .fi
  146797. .UNINDENT
  146798. .UNINDENT
  146799. .SS Modifying \fB__salt__\fP In Place
  146800. .sp
  146801. At times, it becomes necessary to make modifications to a module\(aqs view of
  146802. functions in its own \fB__salt__\fP dictionary. Luckily, this process is quite
  146803. easy.
  146804. .sp
  146805. Below is an example that uses MagicMock\(aqs \fBpatch\fP functionality to insert a
  146806. function into \fB__salt__\fP that\(aqs actually a MagicMock instance.
  146807. .INDENT 0.0
  146808. .INDENT 3.5
  146809. .sp
  146810. .nf
  146811. .ft C
  146812. def show_patch(self):
  146813. with patch.dict(my_module.__salt__,
  146814. {\(aqfunction.to_replace\(aq: MagicMock()}):
  146815. # From this scope, carry on with testing, with a modified __salt__!
  146816. .ft P
  146817. .fi
  146818. .UNINDENT
  146819. .UNINDENT
  146820. .SS A Simple Example
  146821. .sp
  146822. Let\(aqs assume that we\(aqre testing a very basic function in an imaginary Salt
  146823. execution module. Given a module called \fBfib.py\fP that has a function called
  146824. \fBcalculate(num_of_results)\fP, which given a \fBnum_of_results\fP, produces a list of
  146825. sequential Fibonacci numbers of that length.
  146826. .sp
  146827. A unit test to test this function might be commonly placed in a file called
  146828. \fBtests/unit/modules/test_fib.py\fP\&. The convention is to place unit tests for
  146829. Salt execution modules in \fBtest/unit/modules/\fP and to name the tests module
  146830. prefixed with \fBtest_*.py\fP\&.
  146831. .sp
  146832. Tests are grouped around test cases, which are logically grouped sets of tests
  146833. against a piece of functionality in the tested software. Test cases are created
  146834. as Python classes in the unit test module. To return to our example, here\(aqs how
  146835. we might write the skeleton for testing \fBfib.py\fP:
  146836. .INDENT 0.0
  146837. .INDENT 3.5
  146838. .sp
  146839. .nf
  146840. .ft C
  146841. # Import Salt Testing libs
  146842. from tests.support.unit import TestCase
  146843. # Import Salt execution module to test
  146844. import salt.modules.fib as fib
  146845. # Create test case class and inherit from Salt\(aqs customized TestCase
  146846. class FibTestCase(TestCase):
  146847. \(aq\(aq\(aq
  146848. This class contains a set of functions that test salt.modules.fib.
  146849. \(aq\(aq\(aq
  146850. def test_fib(self):
  146851. \(aq\(aq\(aq
  146852. To create a unit test, we should prefix the name with \(gatest_\(aq so
  146853. that it\(aqs recognized by the test runner.
  146854. \(aq\(aq\(aq
  146855. fib_five = (0, 1, 1, 2, 3)
  146856. self.assertEqual(fib.calculate(5), fib_five)
  146857. .ft P
  146858. .fi
  146859. .UNINDENT
  146860. .UNINDENT
  146861. .sp
  146862. At this point, the test can now be run, either individually or as a part of a
  146863. full run of the test runner. To ease development, a single test can be
  146864. executed:
  146865. .INDENT 0.0
  146866. .INDENT 3.5
  146867. .sp
  146868. .nf
  146869. .ft C
  146870. tests/runtests.py \-v \-n unit.modules.test_fib
  146871. .ft P
  146872. .fi
  146873. .UNINDENT
  146874. .UNINDENT
  146875. .sp
  146876. This will report the status of the test: success, failure, or error. The
  146877. \fB\-v\fP flag increases output verbosity.
  146878. .INDENT 0.0
  146879. .INDENT 3.5
  146880. .sp
  146881. .nf
  146882. .ft C
  146883. tests/runtests.py \-n unit.modules.test_fib \-v
  146884. .ft P
  146885. .fi
  146886. .UNINDENT
  146887. .UNINDENT
  146888. .sp
  146889. To review the results of a particular run, take a note of the log location
  146890. given in the output for each test:
  146891. .INDENT 0.0
  146892. .INDENT 3.5
  146893. .sp
  146894. .nf
  146895. .ft C
  146896. Logging tests on /var/folders/nl/d809xbq577l3qrbj3ymtpbq80000gn/T/salt\-runtests.log
  146897. .ft P
  146898. .fi
  146899. .UNINDENT
  146900. .UNINDENT
  146901. .SS A More Complete Example
  146902. .sp
  146903. Consider the following function from salt/modules/linux_sysctl.py.
  146904. .INDENT 0.0
  146905. .INDENT 3.5
  146906. .sp
  146907. .nf
  146908. .ft C
  146909. def get(name):
  146910. \(aq\(aq\(aq
  146911. Return a single sysctl parameter for this minion
  146912. CLI Example:
  146913. .. code\-block:: bash
  146914. salt \(aq*\(aq sysctl.get net.ipv4.ip_forward
  146915. \(aq\(aq\(aq
  146916. cmd = \(aqsysctl \-n {0}\(aq.format(name)
  146917. out = __salt__[\(aqcmd.run\(aq](cmd)
  146918. return out
  146919. .ft P
  146920. .fi
  146921. .UNINDENT
  146922. .UNINDENT
  146923. .sp
  146924. This function is very simple, comprising only four source lines of code and
  146925. having only one return statement, so we know only one test is needed. There
  146926. are also two inputs to the function, the \fBname\fP function argument and the call
  146927. to \fB__salt__[\(aqcmd.run\(aq]()\fP, both of which need to be appropriately mocked.
  146928. .sp
  146929. Mocking a function parameter is straightforward, whereas mocking a function
  146930. call will require, in this case, the use of MagicMock. For added isolation, we
  146931. will also redefine the \fB__salt__\fP dictionary such that it only contains
  146932. \fB\(aqcmd.run\(aq\fP\&.
  146933. .INDENT 0.0
  146934. .INDENT 3.5
  146935. .sp
  146936. .nf
  146937. .ft C
  146938. # Import Salt Libs
  146939. import salt.modules.linux_sysictl as linux_sysctl
  146940. # Import Salt Testing Libs
  146941. from tests.support.mixins import LoaderModuleMockMixin
  146942. from tests.support.unit import TestCase
  146943. from tests.support.mock import (
  146944. MagicMock,
  146945. patch,
  146946. )
  146947. class LinuxSysctlTestCase(TestCase, LoaderModuleMockMixin):
  146948. \(aq\(aq\(aq
  146949. TestCase for salt.modules.linux_sysctl module
  146950. \(aq\(aq\(aq
  146951. def test_get(self):
  146952. \(aq\(aq\(aq
  146953. Tests the return of get function
  146954. \(aq\(aq\(aq
  146955. mock_cmd = MagicMock(return_value=1)
  146956. with patch.dict(linux_sysctl.__salt__, {\(aqcmd.run\(aq: mock_cmd}):
  146957. self.assertEqual(linux_sysctl.get(\(aqnet.ipv4.ip_forward\(aq), 1)
  146958. .ft P
  146959. .fi
  146960. .UNINDENT
  146961. .UNINDENT
  146962. .sp
  146963. Since \fBget()\fP has only one raise or return statement and that statement is a
  146964. success condition, the test function is simply named \fBtest_get()\fP\&. As
  146965. described, the single function call parameter, \fBname\fP is mocked with
  146966. \fBnet.ipv4.ip_forward\fP and \fB__salt__[\(aqcmd.run\(aq]\fP is replaced by a MagicMock
  146967. function object. We are only interested in the return value of
  146968. \fB__salt__[\(aqcmd.run\(aq]\fP, which MagicMock allows us by specifying via
  146969. \fBreturn_value=1\fP\&. Finally, the test itself tests for equality between the
  146970. return value of \fBget()\fP and the expected return of \fB1\fP\&. This assertion is
  146971. expected to succeed because \fBget()\fP will determine its return value from
  146972. \fB__salt__[\(aqcmd.run\(aq]\fP, which we have mocked to return \fB1\fP\&.
  146973. .SS A Complex Example
  146974. .sp
  146975. Now consider the \fBassign()\fP function from the same
  146976. salt/modules/linux_sysctl.py source file.
  146977. .INDENT 0.0
  146978. .INDENT 3.5
  146979. .sp
  146980. .nf
  146981. .ft C
  146982. def assign(name, value):
  146983. \(aq\(aq\(aq
  146984. Assign a single sysctl parameter for this minion
  146985. CLI Example:
  146986. .. code\-block:: bash
  146987. salt \(aq*\(aq sysctl.assign net.ipv4.ip_forward 1
  146988. \(aq\(aq\(aq
  146989. value = str(value)
  146990. sysctl_file = \(aq/proc/sys/{0}\(aq.format(name.replace(\(aq.\(aq, \(aq/\(aq))
  146991. if not os.path.exists(sysctl_file):
  146992. raise CommandExecutionError(\(aqsysctl {0} does not exist\(aq.format(name))
  146993. ret = {}
  146994. cmd = \(aqsysctl \-w {0}="{1}"\(aq.format(name, value)
  146995. data = __salt__[\(aqcmd.run_all\(aq](cmd)
  146996. out = data[\(aqstdout\(aq]
  146997. err = data[\(aqstderr\(aq]
  146998. # Example:
  146999. # # sysctl \-w net.ipv4.tcp_rmem="4096 87380 16777216"
  147000. # net.ipv4.tcp_rmem = 4096 87380 16777216
  147001. regex = re.compile(r\(aq^{0}\es+=\es+{1}$\(aq.format(re.escape(name),
  147002. re.escape(value)))
  147003. if not regex.match(out) or \(aqInvalid argument\(aq in str(err):
  147004. if data[\(aqretcode\(aq] != 0 and err:
  147005. error = err
  147006. else:
  147007. error = out
  147008. raise CommandExecutionError(\(aqsysctl \-w failed: {0}\(aq.format(error))
  147009. new_name, new_value = out.split(\(aq = \(aq, 1)
  147010. ret[new_name] = new_value
  147011. return ret
  147012. .ft P
  147013. .fi
  147014. .UNINDENT
  147015. .UNINDENT
  147016. .sp
  147017. This function contains two raise statements and one return statement, so we
  147018. know that we will need (at least) three tests. It has two function arguments
  147019. and many references to non\-builtin functions. In the tests below you will see
  147020. that MagicMock\(aqs \fBpatch()\fP method may be used as a context manager or as a
  147021. decorator. When patching the salt dunders however, please use the context
  147022. manager approach.
  147023. .sp
  147024. There are three test functions, one for each raise and return statement in the
  147025. source function. Each function is self\-contained and contains all and only the
  147026. mocks and data needed to test the raise or return statement it is concerned
  147027. with.
  147028. .INDENT 0.0
  147029. .INDENT 3.5
  147030. .sp
  147031. .nf
  147032. .ft C
  147033. # Import Salt Libs
  147034. import salt.modules.linux_sysctl as linux_sysctl
  147035. from salt.exceptions import CommandExecutionError
  147036. # Import Salt Testing Libs
  147037. from tests.support.mixins import LoaderModuleMockMixin
  147038. from tests.support.unit import TestCase
  147039. from tests.support.mock import (
  147040. MagicMock,
  147041. patch,
  147042. )
  147043. class LinuxSysctlTestCase(TestCase, LoaderModuleMockMixin):
  147044. \(aq\(aq\(aq
  147045. TestCase for salt.modules.linux_sysctl module
  147046. \(aq\(aq\(aq
  147047. @patch(\(aqos.path.exists\(aq, MagicMock(return_value=False))
  147048. def test_assign_proc_sys_failed(self):
  147049. \(aq\(aq\(aq
  147050. Tests if /proc/sys/<kernel\-subsystem> exists or not
  147051. \(aq\(aq\(aq
  147052. cmd = {\(aqpid\(aq: 1337, \(aqretcode\(aq: 0, \(aqstderr\(aq: \(aq\(aq,
  147053. \(aqstdout\(aq: \(aqnet.ipv4.ip_forward = 1\(aq}
  147054. mock_cmd = MagicMock(return_value=cmd)
  147055. with patch.dict(linux_sysctl.__salt__, {\(aqcmd.run_all\(aq: mock_cmd}):
  147056. self.assertRaises(CommandExecutionError,
  147057. linux_sysctl.assign,
  147058. \(aqnet.ipv4.ip_forward\(aq, 1)
  147059. @patch(\(aqos.path.exists\(aq, MagicMock(return_value=True))
  147060. def test_assign_cmd_failed(self):
  147061. \(aq\(aq\(aq
  147062. Tests if the assignment was successful or not
  147063. \(aq\(aq\(aq
  147064. cmd = {\(aqpid\(aq: 1337, \(aqretcode\(aq: 0, \(aqstderr\(aq:
  147065. \(aqsysctl: setting key "net.ipv4.ip_forward": Invalid argument\(aq,
  147066. \(aqstdout\(aq: \(aqnet.ipv4.ip_forward = backward\(aq}
  147067. mock_cmd = MagicMock(return_value=cmd)
  147068. with patch.dict(linux_sysctl.__salt__, {\(aqcmd.run_all\(aq: mock_cmd}):
  147069. self.assertRaises(CommandExecutionError,
  147070. linux_sysctl.assign,
  147071. \(aqnet.ipv4.ip_forward\(aq, \(aqbackward\(aq)
  147072. @patch(\(aqos.path.exists\(aq, MagicMock(return_value=True))
  147073. def test_assign_success(self):
  147074. \(aq\(aq\(aq
  147075. Tests the return of successful assign function
  147076. \(aq\(aq\(aq
  147077. cmd = {\(aqpid\(aq: 1337, \(aqretcode\(aq: 0, \(aqstderr\(aq: \(aq\(aq,
  147078. \(aqstdout\(aq: \(aqnet.ipv4.ip_forward = 1\(aq}
  147079. ret = {\(aqnet.ipv4.ip_forward\(aq: \(aq1\(aq}
  147080. mock_cmd = MagicMock(return_value=cmd)
  147081. with patch.dict(linux_sysctl.__salt__, {\(aqcmd.run_all\(aq: mock_cmd}):
  147082. self.assertEqual(linux_sysctl.assign(
  147083. \(aqnet.ipv4.ip_forward\(aq, 1), ret)
  147084. .ft P
  147085. .fi
  147086. .UNINDENT
  147087. .UNINDENT
  147088. .SS SaltStack Git Policy
  147089. .sp
  147090. The SaltStack team follows a git policy to maintain stability and consistency
  147091. with the repository.
  147092. .sp
  147093. The git policy has been developed to encourage contributions and make contributing
  147094. to Salt as easy as possible. Code contributors to SaltStack projects DO NOT NEED
  147095. TO READ THIS DOCUMENT, because all contributions come into SaltStack via a single
  147096. gateway to make it as easy as possible for contributors to give us code.
  147097. .sp
  147098. The primary rule of git management in SaltStack is to make life easy on
  147099. contributors and developers to send in code. Simplicity is always a goal!
  147100. .SS New Code Entry
  147101. .sp
  147102. All new SaltStack code should be submitted against either the \fBdevelop\fP branch
  147103. or a point release branch, depending on the nature of the submission. Please see
  147104. the Which Salt Branch? section of Salt\(aqs
  147105. Contributing documentation or the Release Branching
  147106. section below for more information.
  147107. .SS Release Branching
  147108. .sp
  147109. SaltStack maintains two types of releases, \fBFeature Releases\fP and
  147110. \fBPoint Releases\fP (also commonly referred to as \fBBugfix Releases\fP\&. A
  147111. feature release is managed by incrementing the first or second release point
  147112. number, so 2015.5.5 \-> 2015.8.0 signifies a feature release
  147113. and 2015.8.0 \-> 2015.8.1 signifies a point release.
  147114. .SS Feature Release Branching
  147115. .sp
  147116. Each feature release is maintained in a dedicated git branch derived from the
  147117. last applicable release commit on develop. All file changes relevant to the
  147118. feature release will be completed in the develop branch prior to the creation
  147119. of the feature release branch. The feature release branch will be named after
  147120. the relevant numbers to the feature release, which constitute the first two
  147121. numbers. This means that the release branch for the 2015.8.0 series is named
  147122. 2015.8.
  147123. .sp
  147124. A feature release branch is created with the following command:
  147125. .INDENT 0.0
  147126. .INDENT 3.5
  147127. .sp
  147128. .nf
  147129. .ft C
  147130. # git checkout \-b 2015.8 # From the develop branch
  147131. # git push origin 2015.8
  147132. .ft P
  147133. .fi
  147134. .UNINDENT
  147135. .UNINDENT
  147136. .SS Point Releases
  147137. .sp
  147138. Each point release is derived from its parent release branch. Constructing point
  147139. releases is a critical aspect of Salt development and is managed by members of
  147140. the core development team. Point releases comprise bug and security fixes. Bug
  147141. fixes can be made against a point release branch in one of two ways: the bug
  147142. fix can be submitted directly against the point release branch, or an attempt
  147143. can be made to back\-port the fix to the point release branch.
  147144. .sp
  147145. Bug fixes should be made against the earliest supported release branch on which
  147146. the bug is present. The Salt development team regularly merges older point
  147147. release branches forward into newer point release branches. That way, the bug
  147148. fixes that are submitted to older release branches can cascade up through all
  147149. related release branches.
  147150. .sp
  147151. For more information, please see the Which Salt Branch?
  147152. section of Salt\(aqs Contributing documentation.
  147153. .sp
  147154. Generally point releases are made every 2 months or if there is a security fix
  147155. they can be made sooner.
  147156. .sp
  147157. The point release is designated by branching (ex 2019.2.1) and then tagging (v2019.2.1)
  147158. from that newly created release branch when its determined the release is stable.
  147159. From the tag point a new source tarball is generated and published to PyPI,
  147160. and a release announcement is made.
  147161. .SS Salt Conventions
  147162. .SS Writing Salt Documentation
  147163. .sp
  147164. Salt\(aqs documentation is built using the \fI\%Sphinx\fP documentation system. It can
  147165. be built in a large variety of output formats including HTML, PDF, ePub, and
  147166. manpage.
  147167. .sp
  147168. All the documentation is contained in the main Salt repository. Speaking
  147169. broadly, most of the narrative documentation is contained within the
  147170. \fI\%https://github.com/saltstack/salt/blob/master/doc\fP subdirectory and most of the reference and API documentation is
  147171. written inline with Salt\(aqs Python code and extracted using a Sphinx extension.
  147172. .SS Style
  147173. .sp
  147174. The Salt project recommends the \fI\%IEEE style guide\fP as a general reference for
  147175. writing guidelines. Those guidelines are not strictly enforced but rather serve
  147176. as an excellent resource for technical writing questions. The \fI\%NCBI style
  147177. guide\fP is another very approachable resource.
  147178. .SS Point\-of\-view
  147179. .sp
  147180. Use third\-person perspective and avoid "I", "we", "you" forms of address.
  147181. Identify the addressee specifically e.g., "users should", "the compiler does",
  147182. etc.
  147183. .SS Active voice
  147184. .sp
  147185. Use active voice and present\-tense. Avoid filler words.
  147186. .SS Title capitalization
  147187. .sp
  147188. Document titles and section titles within a page should follow normal sentence
  147189. capitalization rules. Words that are capitalized as part of a regular sentence
  147190. should be capitalized in a title and otherwise left as lowercase. Punctuation
  147191. can be omitted unless it aids the intent of the title (e.g., exclamation points
  147192. or question marks).
  147193. .sp
  147194. For example:
  147195. .INDENT 0.0
  147196. .INDENT 3.5
  147197. .sp
  147198. .nf
  147199. .ft C
  147200. This is a main heading
  147201. ======================
  147202. Paragraph.
  147203. This is an exciting sub\-heading!
  147204. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  147205. Paragraph.
  147206. .ft P
  147207. .fi
  147208. .UNINDENT
  147209. .UNINDENT
  147210. .SS Serial Commas
  147211. .sp
  147212. According to Wikipedia: In English punctuation, a serial comma or series comma
  147213. (also called Oxford comma and Harvard comma) is a comma placed immediately
  147214. before the coordinating conjunction (usually "and", "or", or "nor") in a series of
  147215. three or more terms. For example, a list of three countries might be punctuated
  147216. either as "France, Italy, and Spain" (with the serial comma), or as "France,
  147217. Italy and Spain" (without the serial comma)."
  147218. .sp
  147219. When writing a list that includes three or more items, the serial comma should
  147220. always be used.
  147221. .SS Documenting modules
  147222. .sp
  147223. Documentation for Salt\(aqs various module types is inline in the code. During the
  147224. documentation build process it is extracted and formatted into the final HTML,
  147225. PDF, etc format.
  147226. .SS Inline documentation
  147227. .sp
  147228. Python has special multi\-line strings called docstrings as the first element in
  147229. a function or class. These strings allow documentation to live alongside the
  147230. code and can contain special formatting. For example:
  147231. .INDENT 0.0
  147232. .INDENT 3.5
  147233. .sp
  147234. .nf
  147235. .ft C
  147236. def my_function(value):
  147237. \(aq\(aq\(aq
  147238. Upper\-case the given value
  147239. Usage:
  147240. .. code\-block:: python
  147241. val = \(aqa string\(aq
  147242. new_val = myfunction(val)
  147243. print(new_val) # \(aqA STRING\(aq
  147244. :param value: a string
  147245. :return: a copy of \(ga\(gavalue\(ga\(ga that has been upper\-cased
  147246. \(aq\(aq\(aq
  147247. return value.upper()
  147248. .ft P
  147249. .fi
  147250. .UNINDENT
  147251. .UNINDENT
  147252. .SS Specify a release for additions or changes
  147253. .sp
  147254. New functions or changes to existing functions should include a marker that
  147255. denotes what Salt release will be affected. For example:
  147256. .INDENT 0.0
  147257. .INDENT 3.5
  147258. .sp
  147259. .nf
  147260. .ft C
  147261. def my_function(value):
  147262. \(aq\(aq\(aq
  147263. Upper\-case the given value
  147264. .. versionadded:: 2014.7.0
  147265. <...snip...>
  147266. \(aq\(aq\(aq
  147267. return value.upper()
  147268. .ft P
  147269. .fi
  147270. .UNINDENT
  147271. .UNINDENT
  147272. .sp
  147273. For changes to a function:
  147274. .INDENT 0.0
  147275. .INDENT 3.5
  147276. .sp
  147277. .nf
  147278. .ft C
  147279. def my_function(value, strip=False):
  147280. \(aq\(aq\(aq
  147281. Upper\-case the given value
  147282. .. versionchanged:: 2016.3.0
  147283. Added a flag to also strip whitespace from the string.
  147284. <...snip...>
  147285. \(aq\(aq\(aq
  147286. if strip:
  147287. return value.upper().strip()
  147288. return value.upper()
  147289. .ft P
  147290. .fi
  147291. .UNINDENT
  147292. .UNINDENT
  147293. .SS Adding module documentation to the index
  147294. .sp
  147295. Each module type has an index listing all modules of that type. For example:
  147296. all\-salt.modules, all\-salt.states, all\-salt.renderers\&.
  147297. New modules must be added to the index manually.
  147298. .INDENT 0.0
  147299. .IP 1. 3
  147300. Edit the file for the module type:
  147301. \fI\%execution modules\fP,
  147302. \fI\%state modules\fP,
  147303. \fI\%renderer modules\fP, etc.
  147304. .IP 2. 3
  147305. Add the new module to the alphebetized list.
  147306. .IP 3. 3
  147307. \fI\%Build the documentation\fP which will generate an \fB\&.rst\fP
  147308. file for the new module in the same directory as the \fBindex.rst\fP\&.
  147309. .IP 4. 3
  147310. Commit the changes to \fBindex.rst\fP and the new \fB\&.rst\fP file and send a
  147311. pull request.
  147312. .UNINDENT
  147313. .SS Cross\-references
  147314. .sp
  147315. The Sphinx documentation system contains a wide variety of cross\-referencing
  147316. capabilities.
  147317. .SS Glossary entries
  147318. .sp
  147319. Link to glossary entries using the \fI\%term role\fP\&. A
  147320. cross\-reference should be added the first time a Salt\-specific term is used in
  147321. a document.
  147322. .INDENT 0.0
  147323. .INDENT 3.5
  147324. .sp
  147325. .nf
  147326. .ft C
  147327. A common way to encapsulate master\-side functionality is by writing a
  147328. custom :term:\(gaRunner Function\(ga. Custom Runner Functions are easy to write.
  147329. .ft P
  147330. .fi
  147331. .UNINDENT
  147332. .UNINDENT
  147333. .SS Index entries
  147334. .sp
  147335. Sphinx automatically generates many kinds of index entries, but it is
  147336. occasionally useful to manually add items to the index.
  147337. .sp
  147338. One method is to use the \fI\%index directive\fP above the document or section that
  147339. should appear in the index.
  147340. .INDENT 0.0
  147341. .INDENT 3.5
  147342. .sp
  147343. .nf
  147344. .ft C
  147345. \&.. index:: ! Event, event bus, event system
  147346. see: Reactor; Event
  147347. .ft P
  147348. .fi
  147349. .UNINDENT
  147350. .UNINDENT
  147351. .sp
  147352. Another method is to use the \fI\%index role\fP inline with the text that should
  147353. appear in the index. The index entry is created and the target text is left
  147354. otherwise intact.
  147355. .INDENT 0.0
  147356. .INDENT 3.5
  147357. .sp
  147358. .nf
  147359. .ft C
  147360. Information about the :index:\(gaSalt Reactor\(ga
  147361. \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
  147362. Paragraph.
  147363. .ft P
  147364. .fi
  147365. .UNINDENT
  147366. .UNINDENT
  147367. .SS Documents and sections
  147368. .sp
  147369. Each document should contain a unique top\-level label of the form:
  147370. .INDENT 0.0
  147371. .INDENT 3.5
  147372. .sp
  147373. .nf
  147374. .ft C
  147375. \&.. _my\-page:
  147376. My page
  147377. =======
  147378. Paragraph.
  147379. .ft P
  147380. .fi
  147381. .UNINDENT
  147382. .UNINDENT
  147383. .sp
  147384. Unique labels can be linked using the \fI\%ref role\fP\&. This allows cross\-references
  147385. to survive document renames or movement.
  147386. .INDENT 0.0
  147387. .INDENT 3.5
  147388. .sp
  147389. .nf
  147390. .ft C
  147391. For more information see :ref:\(gamy\-page\(ga.
  147392. .ft P
  147393. .fi
  147394. .UNINDENT
  147395. .UNINDENT
  147396. .sp
  147397. Note, the \fB:doc:\fP role should \fInot\fP be used to link documents together.
  147398. .SS Modules
  147399. .sp
  147400. Cross\-references to Salt modules can be added using Sphinx\(aqs Python domain
  147401. roles. For example, to create a link to the \fBtest.ping\fP function:
  147402. .INDENT 0.0
  147403. .INDENT 3.5
  147404. .sp
  147405. .nf
  147406. .ft C
  147407. A useful execution module to test active communication with a minion is the
  147408. :py:func:\(gatest.ping <salt.modules.test.ping>\(ga function.
  147409. .ft P
  147410. .fi
  147411. .UNINDENT
  147412. .UNINDENT
  147413. .sp
  147414. Salt modules can be referenced as well:
  147415. .INDENT 0.0
  147416. .INDENT 3.5
  147417. .sp
  147418. .nf
  147419. .ft C
  147420. The :py:mod:\(gatest module <salt.modules.test>\(ga contains many useful
  147421. functions for inspecting an active Salt connection.
  147422. .ft P
  147423. .fi
  147424. .UNINDENT
  147425. .UNINDENT
  147426. .sp
  147427. The same syntax works for all modules types:
  147428. .INDENT 0.0
  147429. .INDENT 3.5
  147430. .sp
  147431. .nf
  147432. .ft C
  147433. One of the workhorse state module functions in Salt is the
  147434. :py:func:\(gafile.managed <salt.states.file.managed>\(ga function.
  147435. .ft P
  147436. .fi
  147437. .UNINDENT
  147438. .UNINDENT
  147439. .SS Settings
  147440. .sp
  147441. Individual settings in the Salt Master or Salt Minion configuration files are
  147442. cross\-referenced using two custom roles, \fBconf_master\fP, and \fBconf_minion\fP\&.
  147443. .INDENT 0.0
  147444. .INDENT 3.5
  147445. .sp
  147446. .nf
  147447. .ft C
  147448. The :conf_minion:\(gaminion ID <id>\(ga setting is a unique identifier for a
  147449. single minion.
  147450. .ft P
  147451. .fi
  147452. .UNINDENT
  147453. .UNINDENT
  147454. .SS Documentation Changes and Fixes
  147455. .sp
  147456. Documentation changes and fixes should be made against the earliest supported
  147457. release branch that the update applies to. The practice of updating a release
  147458. branch instead of making all documentation changes against Salt\(aqs main, default
  147459. branch, \fBmaster\fP, is necessary in order for the docs to be as up\-to\-date as
  147460. possible when the docs are built.
  147461. .sp
  147462. The workflow mentioned above is also in line with the recommendations outlined
  147463. in Salt\(aqs contributing page. You can read more about how to choose where
  147464. to submit documentation fixes by reading the which\-salt\-branch section.
  147465. .sp
  147466. For an explanation of how to submit changes against various branches, see the
  147467. github\-pull\-request section. Specifically, see the section describing
  147468. how to \fBCreate a new branch\fP and the steps that follow.
  147469. .SS Building the documentation
  147470. .INDENT 0.0
  147471. .IP 1. 3
  147472. Install Sphinx using a system package manager or pip. The package name is
  147473. often of the form \fBpython\-sphinx\fP\&. There are no other dependencies.
  147474. .IP 2. 3
  147475. Build the documentation using the provided Makefile or \fB\&.bat\fP file on
  147476. Windows.
  147477. .INDENT 3.0
  147478. .INDENT 3.5
  147479. .sp
  147480. .nf
  147481. .ft C
  147482. cd /path/to/salt/doc
  147483. make html
  147484. .ft P
  147485. .fi
  147486. .UNINDENT
  147487. .UNINDENT
  147488. .IP 3. 3
  147489. The generated documentation will be written to the \fBdoc/_build/<format>\fP
  147490. directory.
  147491. .IP 4. 3
  147492. A useful method of viewing the HTML documentation locally is to start
  147493. Python\(aqs built\-in HTTP server:
  147494. .sp
  147495. Python 3:
  147496. .INDENT 3.0
  147497. .INDENT 3.5
  147498. .sp
  147499. .nf
  147500. .ft C
  147501. cd /path/to/salt/doc/_build/html
  147502. python3 \-m http.server
  147503. .ft P
  147504. .fi
  147505. .UNINDENT
  147506. .UNINDENT
  147507. .sp
  147508. Python 2:
  147509. .INDENT 3.0
  147510. .INDENT 3.5
  147511. .sp
  147512. .nf
  147513. .ft C
  147514. cd /path/to/salt/doc/_build/html
  147515. python \-m SimpleHTTPServer
  147516. .ft P
  147517. .fi
  147518. .UNINDENT
  147519. .UNINDENT
  147520. .sp
  147521. Then pull up the documentation in a web browser at \fI\%http://localhost:8000/\fP\&.
  147522. .UNINDENT
  147523. .SS Salt Formulas
  147524. .sp
  147525. Formulas are pre\-written Salt States. They are as open\-ended as Salt States
  147526. themselves and can be used for tasks such as installing a package, configuring,
  147527. and starting a service, setting up users or permissions, and many other common
  147528. tasks.
  147529. .sp
  147530. All official Salt Formulas are found as separate Git repositories in the
  147531. "saltstack\-formulas" organization on GitHub:
  147532. .sp
  147533. \fI\%https://github.com/saltstack\-formulas\fP
  147534. .sp
  147535. As a simple example, to install the popular Apache web server (using the normal
  147536. defaults for the underlying distro) simply include the
  147537. \fI\%apache\-formula\fP from a top file:
  147538. .INDENT 0.0
  147539. .INDENT 3.5
  147540. .sp
  147541. .nf
  147542. .ft C
  147543. base:
  147544. \(aqweb*\(aq:
  147545. \- apache
  147546. .ft P
  147547. .fi
  147548. .UNINDENT
  147549. .UNINDENT
  147550. .SS Installation
  147551. .sp
  147552. Each Salt Formula is an individual Git repository designed as a drop\-in
  147553. addition to an existing Salt State tree. Formulas can be installed in the
  147554. following ways.
  147555. .SS Adding a Formula as a GitFS remote
  147556. .sp
  147557. One design goal of Salt\(aqs GitFS fileserver backend was to facilitate reusable
  147558. States. GitFS is a quick and natural way to use Formulas.
  147559. .INDENT 0.0
  147560. .IP 1. 3
  147561. Install any necessary dependencies and configure GitFS\&.
  147562. .IP 2. 3
  147563. Add one or more Formula repository URLs as remotes in the
  147564. \fBgitfs_remotes\fP list in the Salt Master configuration file:
  147565. .INDENT 3.0
  147566. .INDENT 3.5
  147567. .sp
  147568. .nf
  147569. .ft C
  147570. gitfs_remotes:
  147571. \- https://github.com/saltstack\-formulas/apache\-formula
  147572. \- https://github.com/saltstack\-formulas/memcached\-formula
  147573. .ft P
  147574. .fi
  147575. .UNINDENT
  147576. .UNINDENT
  147577. .sp
  147578. \fBWe strongly recommend forking a formula repository\fP into your own GitHub
  147579. account to avoid unexpected changes to your infrastructure.
  147580. .sp
  147581. Many Salt Formulas are highly active repositories so pull new changes with
  147582. care. Plus any additions you make to your fork can be easily sent back
  147583. upstream with a quick pull request!
  147584. .IP 3. 3
  147585. Restart the Salt master.
  147586. .UNINDENT
  147587. .sp
  147588. Beginning with the 2018.3.0 release, using formulas with GitFS is now much more
  147589. convenient for deployments which use many different fileserver environments
  147590. (i.e. saltenvs). Using the all_saltenvs
  147591. parameter, files from a single git branch/tag will appear in all environments.
  147592. See here for more information on this feature.
  147593. .SS Adding a Formula directory manually
  147594. .sp
  147595. Formulas are simply directories that can be copied onto the local file system
  147596. by using Git to clone the repository or by downloading and expanding a tarball
  147597. or zip file of the repository. The directory structure is designed to work with
  147598. \fBfile_roots\fP in the Salt master configuration.
  147599. .INDENT 0.0
  147600. .IP 1. 3
  147601. Clone or download the repository into a directory:
  147602. .INDENT 3.0
  147603. .INDENT 3.5
  147604. .sp
  147605. .nf
  147606. .ft C
  147607. mkdir \-p /srv/formulas
  147608. cd /srv/formulas
  147609. git clone https://github.com/saltstack\-formulas/apache\-formula.git
  147610. # or
  147611. mkdir \-p /srv/formulas
  147612. cd /srv/formulas
  147613. wget https://github.com/saltstack\-formulas/apache\-formula/archive/master.tar.gz
  147614. tar xf apache\-formula\-master.tar.gz
  147615. .ft P
  147616. .fi
  147617. .UNINDENT
  147618. .UNINDENT
  147619. .IP 2. 3
  147620. Add the new directory to \fBfile_roots\fP:
  147621. .INDENT 3.0
  147622. .INDENT 3.5
  147623. .sp
  147624. .nf
  147625. .ft C
  147626. file_roots:
  147627. base:
  147628. \- /srv/salt
  147629. \- /srv/formulas/apache\-formula
  147630. .ft P
  147631. .fi
  147632. .UNINDENT
  147633. .UNINDENT
  147634. .IP 3. 3
  147635. Restart the Salt Master.
  147636. .UNINDENT
  147637. .SS Usage
  147638. .sp
  147639. Each Formula is intended to be immediately usable with sane defaults without
  147640. any additional configuration. Many formulas are also configurable by including
  147641. data in Pillar; see the \fBpillar.example\fP file in each Formula repository
  147642. for available options.
  147643. .SS Including a Formula in an existing State tree
  147644. .sp
  147645. Formula may be included in an existing \fBsls\fP file. This is often useful when
  147646. a state you are writing needs to \fBrequire\fP or \fBextend\fP a state defined in
  147647. the formula.
  147648. .sp
  147649. Here is an example of a state that uses the \fI\%epel\-formula\fP in a
  147650. \fBrequire\fP declaration which directs Salt to not install the \fBpython26\fP
  147651. package until after the EPEL repository has also been installed:
  147652. .INDENT 0.0
  147653. .INDENT 3.5
  147654. .sp
  147655. .nf
  147656. .ft C
  147657. include:
  147658. \- epel
  147659. python26:
  147660. pkg.installed:
  147661. \- require:
  147662. \- pkg: epel
  147663. .ft P
  147664. .fi
  147665. .UNINDENT
  147666. .UNINDENT
  147667. .SS Including a Formula from a Top File
  147668. .sp
  147669. Some Formula perform completely standalone installations that are not
  147670. referenced from other state files. It is usually cleanest to include these
  147671. Formula directly from a Top File.
  147672. .sp
  147673. For example the easiest way to set up an OpenStack deployment on a single
  147674. machine is to include the \fI\%openstack\-standalone\-formula\fP directly from
  147675. a \fBtop.sls\fP file:
  147676. .INDENT 0.0
  147677. .INDENT 3.5
  147678. .sp
  147679. .nf
  147680. .ft C
  147681. base:
  147682. \(aqmyopenstackmaster\(aq:
  147683. \- openstack
  147684. .ft P
  147685. .fi
  147686. .UNINDENT
  147687. .UNINDENT
  147688. .sp
  147689. Quickly deploying OpenStack across several dedicated machines could also be
  147690. done directly from a Top File and may look something like this:
  147691. .INDENT 0.0
  147692. .INDENT 3.5
  147693. .sp
  147694. .nf
  147695. .ft C
  147696. base:
  147697. \(aqcontroller\(aq:
  147698. \- openstack.horizon
  147699. \- openstack.keystone
  147700. \(aqhyper\-*\(aq:
  147701. \- openstack.nova
  147702. \- openstack.glance
  147703. \(aqstorage\-*\(aq:
  147704. \- openstack.swift
  147705. .ft P
  147706. .fi
  147707. .UNINDENT
  147708. .UNINDENT
  147709. .SS Configuring Formula using Pillar
  147710. .sp
  147711. Salt Formulas are designed to work out of the box with no additional
  147712. configuration. However, many Formula support additional configuration and
  147713. customization through Pillar\&. Examples of available options can
  147714. be found in a file named \fBpillar.example\fP in the root directory of each
  147715. Formula repository.
  147716. .SS Using Formula with your own states
  147717. .sp
  147718. Remember that Formula are regular Salt States and can be used with all Salt\(aqs
  147719. normal state mechanisms. Formula can be required from other States with
  147720. requisites\-require declarations, they can be modified using \fBextend\fP,
  147721. they can made to watch other states with requisites\-watch\-in\&.
  147722. .sp
  147723. The following example uses the stock \fI\%apache\-formula\fP alongside a
  147724. custom state to create a vhost on a Debian/Ubuntu system and to reload the
  147725. Apache service whenever the vhost is changed.
  147726. .INDENT 0.0
  147727. .INDENT 3.5
  147728. .sp
  147729. .nf
  147730. .ft C
  147731. # Include the stock, upstream apache formula.
  147732. include:
  147733. \- apache
  147734. # Use the watch_in requisite to cause the apache service state to reload
  147735. # apache whenever the my\-example\-com\-vhost state changes.
  147736. my\-example\-com\-vhost:
  147737. file:
  147738. \- managed
  147739. \- name: /etc/apache2/sites\-available/my\-example\-com
  147740. \- watch_in:
  147741. \- service: apache
  147742. .ft P
  147743. .fi
  147744. .UNINDENT
  147745. .UNINDENT
  147746. .sp
  147747. Don\(aqt be shy to read through the source for each Formula!
  147748. .SS Reporting problems & making additions
  147749. .sp
  147750. Each Formula is a separate repository on GitHub. If you encounter a bug with a
  147751. Formula please file an issue in the respective repository! Send fixes and
  147752. additions as a pull request. Add tips and tricks to the repository wiki.
  147753. .SS Writing Formulas
  147754. .sp
  147755. Each Formula is a separate repository in the \fI\%saltstack\-formulas\fP organization
  147756. on GitHub.
  147757. .SS Get involved creating new Formulas
  147758. .sp
  147759. The best way to create new Formula repositories for now is to create a
  147760. repository in your own account on GitHub and notify a SaltStack employee when
  147761. it is ready. We will add you to the Contributors team on the
  147762. \fI\%saltstack\-formulas\fP organization and help you transfer the repository over.
  147763. Ping a SaltStack employee on IRC (\fB#salt\fP on Freenode), join the
  147764. \fB#formulas\fP channel on the \fI\%salt\-slack\fP (bridged to \fB#saltstack\-formulas\fP
  147765. on Freenode) or send an email to the \fI\%salt\-users\fP mailing list. Note that the
  147766. IRC logs are available at \fI\%https://freenode.logbot.info/salt\fP and
  147767. \fI\%https://freenode.logbot.info/saltstack\-formulas\fP respectively.
  147768. .sp
  147769. There are a lot of repositories in that organization! Team members can manage
  147770. which repositories they are subscribed to on GitHub\(aqs watching page:
  147771. \fI\%https://github.com/watching\fP\&.
  147772. .sp
  147773. Members of the Contributors team are welcome to participate in reviewing pull
  147774. requests across the Organization. Some repositories will have regular
  147775. contributors and some repositories will not. As you get involved in a
  147776. repository be sure to communicate with any other contributors there on pull
  147777. requests that are large or have breaking changes.
  147778. .sp
  147779. In general it is best to have another Contributor review and merge any pull
  147780. requests that you open. Feel free to \fI\%at\-mention\fP other regular contributors
  147781. to a repository and request a review. However, there are a lot of formula
  147782. repositories so if a repository does not yet have regular contributors or if
  147783. your pull request has stayed open for more than a couple days feel free to
  147784. "selfie\-merge" your own pull request.
  147785. .SS Style
  147786. .sp
  147787. Maintainability, readability, and reusability are all marks of a good Salt sls
  147788. file. This section contains several suggestions and examples.
  147789. .INDENT 0.0
  147790. .INDENT 3.5
  147791. .sp
  147792. .nf
  147793. .ft C
  147794. # Deploy the stable master branch unless version overridden by passing
  147795. # Pillar at the CLI or via the Reactor.
  147796. deploy_myapp:
  147797. git.latest:
  147798. \- name: git@github.com/myco/myapp.git
  147799. \- version: {{ salt.pillar.get(\(aqmyapp:version\(aq, \(aqmaster\(aq) }}
  147800. .ft P
  147801. .fi
  147802. .UNINDENT
  147803. .UNINDENT
  147804. .SS Use a descriptive State ID
  147805. .sp
  147806. The ID of a state is used as a unique identifier that may be referenced via
  147807. other states in requisites\&. It must be unique across the
  147808. whole state tree (it is a key in a dictionary, after
  147809. all).
  147810. .sp
  147811. In addition a state ID should be descriptive and serve as a high\-level hint of
  147812. what it will do, or manage, or change. For example, \fBdeploy_webapp\fP, or
  147813. \fBapache\fP, or \fBreload_firewall\fP\&.
  147814. .SS Use \fBmodule.function\fP notation
  147815. .sp
  147816. So\-called "short\-declaration" notation is preferred for referencing state
  147817. modules and state functions. It provides a consistent pattern of
  147818. \fBmodule.function\fP shared between Salt States, the Reactor, Salt
  147819. Mine, the Scheduler, as well as with the CLI.
  147820. .INDENT 0.0
  147821. .INDENT 3.5
  147822. .sp
  147823. .nf
  147824. .ft C
  147825. # Do
  147826. apache:
  147827. pkg.installed:
  147828. \- name: httpd
  147829. # Don\(aqt
  147830. apache:
  147831. pkg:
  147832. \- installed
  147833. \- name: httpd
  147834. .ft P
  147835. .fi
  147836. .UNINDENT
  147837. .UNINDENT
  147838. .sp
  147839. Salt\(aqs state compiler will transform "short\-decs" into the longer format
  147840. when compiling the human\-friendly highstate structure into the
  147841. machine\-friendly lowstate structure\&.
  147842. .SS Specify the \fBname\fP parameter
  147843. .sp
  147844. Use a unique and permanent identifier for the state ID and reserve \fBname\fP for
  147845. data with variability.
  147846. .sp
  147847. The name declaration is a required parameter for all
  147848. state functions. The state ID will implicitly be used as \fBname\fP if it is not
  147849. explicitly set in the state.
  147850. .sp
  147851. In many state functions the \fBname\fP parameter is used for data that varies
  147852. such as OS\-specific package names, OS\-specific file system paths, repository
  147853. addresses, etc. Any time the ID of a state changes all references to that ID
  147854. must also be changed. Use a permanent ID when writing a state the first time to
  147855. future\-proof that state and allow for easier refactors down the road.
  147856. .SS Comment state files
  147857. .sp
  147858. YAML allows comments at varying indentation levels. It is a good practice to
  147859. comment state files. Use vertical whitespace to visually separate different
  147860. concepts or actions.
  147861. .INDENT 0.0
  147862. .INDENT 3.5
  147863. .sp
  147864. .nf
  147865. .ft C
  147866. # Start with a high\-level description of the current sls file.
  147867. # Explain the scope of what it will do or manage.
  147868. # Comment individual states as necessary.
  147869. update_a_config_file:
  147870. # Provide details on why an unusual choice was made. For example:
  147871. #
  147872. # This template is fetched from a third\-party and does not fit our
  147873. # company norm of using Jinja. This must be processed using Mako.
  147874. file.managed:
  147875. \- name: /path/to/file.cfg
  147876. \- source: salt://path/to/file.cfg.template
  147877. \- template: mako
  147878. # Provide a description or explanation that did not fit within the state
  147879. # ID. For example:
  147880. #
  147881. # Update the application\(aqs last\-deployed timestamp.
  147882. # This is a workaround until Bob configures Jenkins to automate RPM
  147883. # builds of the app.
  147884. cmd.run:
  147885. # FIXME: Joe needs this to run on Windows by next quarter. Switch these
  147886. # from shell commands to Salt\(aqs file.managed and file.replace state
  147887. # modules.
  147888. \- name: |
  147889. touch /path/to/file_last_updated
  147890. sed \-e \(aqs/foo/bar/g\(aq /path/to/file_environment
  147891. \- onchanges:
  147892. \- file: a_config_file
  147893. .ft P
  147894. .fi
  147895. .UNINDENT
  147896. .UNINDENT
  147897. .sp
  147898. Be careful to use Jinja comments for commenting Jinja code and YAML comments
  147899. for commenting YAML code.
  147900. .INDENT 0.0
  147901. .INDENT 3.5
  147902. .sp
  147903. .nf
  147904. .ft C
  147905. # BAD EXAMPLE
  147906. # The Jinja in this YAML comment is still executed!
  147907. # {% set apache_is_installed = \(aqapache\(aq in salt.pkg.list_pkgs() %}
  147908. # GOOD EXAMPLE
  147909. # The Jinja in this Jinja comment will not be executed.
  147910. {# {% set apache_is_installed = \(aqapache\(aq in salt.pkg.list_pkgs() %} #}
  147911. .ft P
  147912. .fi
  147913. .UNINDENT
  147914. .UNINDENT
  147915. .SS Easy on the Jinja!
  147916. .sp
  147917. Jinja templating provides vast flexibility and power when building Salt sls
  147918. files. It can also create an unmaintainable tangle of logic and data. Speaking
  147919. broadly, Jinja is best used when kept apart from the states (as much as is
  147920. possible).
  147921. .sp
  147922. Below are guidelines and examples of how Jinja can be used effectively.
  147923. .SS Know the evaluation and execution order
  147924. .sp
  147925. High\-level knowledge of how Salt states are compiled and run is useful when
  147926. writing states.
  147927. .sp
  147928. The default \fBrenderer\fP setting in Salt is Jinja piped to YAML.
  147929. Each is a separate step. Each step is not aware of the previous or following
  147930. step. Jinja is not YAML aware, YAML is not Jinja aware; they cannot share
  147931. variables or interact.
  147932. .INDENT 0.0
  147933. .IP \(bu 2
  147934. Whatever the Jinja step produces must be valid YAML.
  147935. .IP \(bu 2
  147936. Whatever the YAML step produces must be a valid highstate data
  147937. structure\&. (This is also true of the final step
  147938. for any of the alternate renderers in Salt.)
  147939. .IP \(bu 2
  147940. Highstate can be thought of as a human\-friendly data structure; easy to write
  147941. and easy to read.
  147942. .IP \(bu 2
  147943. Salt\(aqs state compiler validates the highstate and
  147944. compiles it to low state.
  147945. .IP \(bu 2
  147946. Low state can be thought of as a machine\-friendly data structure. It is a
  147947. list of dictionaries that each map directly to a function call.
  147948. .IP \(bu 2
  147949. Salt\(aqs state system finally starts and executes on each "chunk" in the low
  147950. state. Remember that requisites are evaluated at runtime.
  147951. .IP \(bu 2
  147952. The return for each function call is added to the "running" dictionary which
  147953. is the final output at the end of the state run.
  147954. .UNINDENT
  147955. .sp
  147956. The full evaluation and execution order:
  147957. .INDENT 0.0
  147958. .INDENT 3.5
  147959. .sp
  147960. .nf
  147961. .ft C
  147962. Jinja \-> YAML \-> Highstate \-> low state \-> execution
  147963. .ft P
  147964. .fi
  147965. .UNINDENT
  147966. .UNINDENT
  147967. .SS Avoid changing the underlying system with Jinja
  147968. .sp
  147969. Avoid calling commands from Jinja that change the underlying system. Commands
  147970. run via Jinja do not respect Salt\(aqs dry\-run mode (\fBtest=True\fP)! This is
  147971. usually in conflict with the idempotent nature of Salt states unless the
  147972. command being run is also idempotent.
  147973. .SS Inspect the local system
  147974. .sp
  147975. A common use for Jinja in Salt states is to gather information about the
  147976. underlying system. The \fBgrains\fP dictionary available in the Jinja context is
  147977. a great example of common data points that Salt itself has already gathered.
  147978. Less common values are often found by running commands. For example:
  147979. .INDENT 0.0
  147980. .INDENT 3.5
  147981. .sp
  147982. .nf
  147983. .ft C
  147984. {% set is_selinux_enabled = salt.cmd.run(\(aqsestatus\(aq) == \(aq1\(aq %}
  147985. .ft P
  147986. .fi
  147987. .UNINDENT
  147988. .UNINDENT
  147989. .sp
  147990. This is usually best done with a variable assignment in order to separate the
  147991. data from the state that will make use of the data.
  147992. .SS Gather external data
  147993. .sp
  147994. One of the most common uses for Jinja is to pull external data into the state
  147995. file. External data can come from anywhere like API calls or database queries,
  147996. but it most commonly comes from flat files on the file system or Pillar data
  147997. from the Salt Master. For example:
  147998. .INDENT 0.0
  147999. .INDENT 3.5
  148000. .sp
  148001. .nf
  148002. .ft C
  148003. {% set some_data = salt.pillar.get(\(aqsome_data\(aq, {\(aqsane default\(aq: True}) %}
  148004. {# or #}
  148005. {% import_yaml \(aqpath/to/file.yaml\(aq as some_data %}
  148006. {# or #}
  148007. {% import_json \(aqpath/to/file.json\(aq as some_data %}
  148008. {# or #}
  148009. {% import_text \(aqpath/to/ssh_key.pub\(aq as ssh_pub_key %}
  148010. {# or #}
  148011. {% from \(aqpath/to/other_file.jinja\(aq import some_data with context %}
  148012. .ft P
  148013. .fi
  148014. .UNINDENT
  148015. .UNINDENT
  148016. .sp
  148017. This is usually best done with a variable assignment in order to separate the
  148018. data from the state that will make use of the data.
  148019. .SS Light conditionals and looping
  148020. .sp
  148021. Jinja is extremely powerful for programmatically generating Salt states. It is
  148022. also easy to overuse. As a rule of thumb, if it is hard to read it will be hard
  148023. to maintain!
  148024. .sp
  148025. Separate Jinja control\-flow statements from the states as much as is possible
  148026. to create readable states. Limit Jinja within states to simple variable
  148027. lookups.
  148028. .sp
  148029. Below is a simple example of a readable loop:
  148030. .INDENT 0.0
  148031. .INDENT 3.5
  148032. .sp
  148033. .nf
  148034. .ft C
  148035. {% for user in salt.pillar.get(\(aqlist_of_users\(aq, []) %}
  148036. {# Ensure unique state IDs when looping. #}
  148037. {{ user.name }}\-{{ loop.index }}:
  148038. user.present:
  148039. \- name: {{ user.name }}
  148040. \- shell: {{ user.shell }}
  148041. {% endfor %}
  148042. .ft P
  148043. .fi
  148044. .UNINDENT
  148045. .UNINDENT
  148046. .sp
  148047. Avoid putting a Jinja conditionals within Salt states where possible.
  148048. Readability suffers and the correct YAML indentation is difficult to see in the
  148049. surrounding visual noise. Parametrization (discussed below) and variables are
  148050. both useful techniques to avoid this. For example:
  148051. .INDENT 0.0
  148052. .INDENT 3.5
  148053. .sp
  148054. .nf
  148055. .ft C
  148056. {# \-\-\-\- Bad example \-\-\-\- #}
  148057. apache:
  148058. pkg.installed:
  148059. {% if grains.os_family == \(aqRedHat\(aq %}
  148060. \- name: httpd
  148061. {% elif grains.os_family == \(aqDebian\(aq %}
  148062. \- name: apache2
  148063. {% endif %}
  148064. {# \-\-\-\- Better example \-\-\-\- #}
  148065. {% if grains.os_family == \(aqRedHat\(aq %}
  148066. {% set name = \(aqhttpd\(aq %}
  148067. {% elif grains.os_family == \(aqDebian\(aq %}
  148068. {% set name = \(aqapache2\(aq %}
  148069. {% endif %}
  148070. apache:
  148071. pkg.installed:
  148072. \- name: {{ name }}
  148073. {# \-\-\-\- Good example \-\-\-\- #}
  148074. {% set name = {
  148075. \(aqRedHat\(aq: \(aqhttpd\(aq,
  148076. \(aqDebian\(aq: \(aqapache2\(aq,
  148077. }.get(grains.os_family) %}
  148078. apache:
  148079. pkg.installed:
  148080. \- name: {{ name }}
  148081. .ft P
  148082. .fi
  148083. .UNINDENT
  148084. .UNINDENT
  148085. .sp
  148086. Dictionaries are useful to effectively "namespace" a collection of variables.
  148087. This is useful with parametrization (discussed below). Dictionaries are also
  148088. easily combined and merged. And they can be directly serialized into YAML which
  148089. is often easier than trying to create valid YAML through templating. For
  148090. example:
  148091. .INDENT 0.0
  148092. .INDENT 3.5
  148093. .sp
  148094. .nf
  148095. .ft C
  148096. {# \-\-\-\- Bad example \-\-\-\- #}
  148097. haproxy_conf:
  148098. file.managed:
  148099. \- name: /etc/haproxy/haproxy.cfg
  148100. \- template: jinja
  148101. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148102. \- source: salt://haproxy/external_haproxy.cfg
  148103. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148104. \- source: salt://haproxy/internal_haproxy.cfg
  148105. {% endif %}
  148106. \- context:
  148107. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148108. ssl_termination: True
  148109. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148110. ssl_termination: False
  148111. {% endif %}
  148112. {# \-\-\-\- Better example \-\-\-\- #}
  148113. {% load_yaml as haproxy_defaults %}
  148114. common_settings:
  148115. bind_port: 80
  148116. internal_loadbalancer:
  148117. source: salt://haproxy/internal_haproxy.cfg
  148118. settings:
  148119. bind_port: 8080
  148120. ssl_termination: False
  148121. external_loadbalancer:
  148122. source: salt://haproxy/external_haproxy.cfg
  148123. settings:
  148124. ssl_termination: True
  148125. {% endload %}
  148126. {% if \(aqexternal_loadbalancer\(aq in grains.roles %}
  148127. {% set haproxy = haproxy_defaults[\(aqexternal_loadbalancer\(aq] %}
  148128. {% elif \(aqinternal_loadbalancer\(aq in grains.roles %}
  148129. {% set haproxy = haproxy_defaults[\(aqinternal_loadbalancer\(aq] %}
  148130. {% endif %}
  148131. {% do haproxy.settings.update(haproxy_defaults.common_settings) %}
  148132. haproxy_conf:
  148133. file.managed:
  148134. \- name: /etc/haproxy/haproxy.cfg
  148135. \- template: jinja
  148136. \- source: {{ haproxy.source }}
  148137. \- context: {{ haproxy.settings | yaml() }}
  148138. .ft P
  148139. .fi
  148140. .UNINDENT
  148141. .UNINDENT
  148142. .sp
  148143. There is still room for improvement in the above example. For example,
  148144. extracting into an external file or replacing the if\-elif conditional with a
  148145. function call to filter the correct data more succinctly. However, the state
  148146. itself is simple and legible, the data is separate and also simple and legible.
  148147. And those suggested improvements can be made at some future date without
  148148. altering the state at all!
  148149. .SS Avoid heavy logic and programming
  148150. .sp
  148151. Jinja is not Python. It was made by Python programmers and shares many
  148152. semantics and some syntax but it does not allow for abitrary Python function
  148153. calls or Python imports. Jinja is a fast and efficient templating language but
  148154. the syntax can be verbose and visually noisy.
  148155. .sp
  148156. Once Jinja use within an sls file becomes slightly complicated \-\- long chains
  148157. of if\-elif\-elif\-else statements, nested conditionals, complicated dictionary
  148158. merges, wanting to use sets \-\- instead consider using a different Salt
  148159. renderer, such as the Python renderer. As a rule of thumb, if it is hard to
  148160. read it will be hard to maintain \-\- switch to a format that is easier to read.
  148161. .sp
  148162. Using alternate renderers is very simple to do using Salt\(aqs "she\-bang" syntax
  148163. at the top of the file. The Python renderer must simply return the correct
  148164. highstate data structure\&. The following
  148165. example is a state tree of two sls files, one simple and one complicated.
  148166. .sp
  148167. \fB/srv/salt/top.sls\fP:
  148168. .INDENT 0.0
  148169. .INDENT 3.5
  148170. .sp
  148171. .nf
  148172. .ft C
  148173. base:
  148174. \(aq*\(aq:
  148175. \- common_configuration
  148176. \- roles_configuration
  148177. .ft P
  148178. .fi
  148179. .UNINDENT
  148180. .UNINDENT
  148181. .sp
  148182. \fB/srv/salt/common_configuration.sls\fP:
  148183. .INDENT 0.0
  148184. .INDENT 3.5
  148185. .sp
  148186. .nf
  148187. .ft C
  148188. common_users:
  148189. user.present:
  148190. \- names:
  148191. \- larry
  148192. \- curly
  148193. \- moe
  148194. .ft P
  148195. .fi
  148196. .UNINDENT
  148197. .UNINDENT
  148198. .sp
  148199. \fB/srv/salt/roles_configuration\fP:
  148200. .INDENT 0.0
  148201. .INDENT 3.5
  148202. .sp
  148203. .nf
  148204. .ft C
  148205. #!py
  148206. def run():
  148207. list_of_roles = set()
  148208. # This example has the minion id in the form \(aqweb\-03\-dev\(aq.
  148209. # Easily access the grains dictionary:
  148210. try:
  148211. app, instance_number, environment = __grains__[\(aqid\(aq].split(\(aq\-\(aq)
  148212. instance_number = int(instance_number)
  148213. except ValueError:
  148214. app, instance_number, environment = [\(aqUnknown\(aq, 0, \(aqdev\(aq]
  148215. list_of_roles.add(app)
  148216. if app == \(aqweb\(aq and environment == \(aqdev\(aq:
  148217. list_of_roles.add(\(aqprimary\(aq)
  148218. list_of_roles.add(\(aqsecondary\(aq)
  148219. elif app == \(aqweb\(aq and environment == \(aqstaging\(aq:
  148220. if instance_number == 0:
  148221. list_of_roles.add(\(aqprimary\(aq)
  148222. else:
  148223. list_of_roles.add(\(aqsecondary\(aq)
  148224. # Easily cross\-call Salt execution modules:
  148225. if __salt__[\(aqmyutils.query_valid_ec2_instance\(aq]():
  148226. list_of_roles.add(\(aqis_ec2_instance\(aq)
  148227. return {
  148228. \(aqset_roles_grains\(aq: {
  148229. \(aqgrains.present\(aq: [
  148230. {\(aqname\(aq: \(aqroles\(aq},
  148231. {\(aqvalue\(aq: list(list_of_roles)},
  148232. ],
  148233. },
  148234. }
  148235. .ft P
  148236. .fi
  148237. .UNINDENT
  148238. .UNINDENT
  148239. .SS Jinja Macros
  148240. .sp
  148241. In Salt sls files Jinja macros are useful for one thing and one thing only:
  148242. creating mini templates that can be reused and rendered on demand. Do not fall
  148243. into the trap of thinking of macros as functions; Jinja is not Python (see
  148244. above).
  148245. .sp
  148246. Macros are useful for creating reusable, parameterized states. For example:
  148247. .INDENT 0.0
  148248. .INDENT 3.5
  148249. .sp
  148250. .nf
  148251. .ft C
  148252. {% macro user_state(state_id, user_name, shell=\(aq/bin/bash\(aq, groups=[]) %}
  148253. {{ state_id }}:
  148254. user.present:
  148255. \- name: {{ user_name }}
  148256. \- shell: {{ shell }}
  148257. \- groups: {{ groups | json() }}
  148258. {% endmacro %}
  148259. {% for user_info in salt.pillar.get(\(aqmy_users\(aq, []) %}
  148260. {{ user_state(\(aquser_number_\(aq ~ loop.index, **user_info) }}
  148261. {% endfor %}
  148262. .ft P
  148263. .fi
  148264. .UNINDENT
  148265. .UNINDENT
  148266. .sp
  148267. Macros are also useful for creating one\-off "serializers" that can accept a
  148268. data structure and write that out as a domain\-specific configuration file. For
  148269. example, the following macro could be used to write a php.ini config file:
  148270. .sp
  148271. \fB/srv/salt/php.sls\fP:
  148272. .INDENT 0.0
  148273. .INDENT 3.5
  148274. .sp
  148275. .nf
  148276. .ft C
  148277. php_ini:
  148278. file.managed:
  148279. \- name: /etc/php.ini
  148280. \- source: salt://php.ini.tmpl
  148281. \- template: jinja
  148282. \- context:
  148283. php_ini_settings: {{ salt.pillar.get(\(aqphp_ini\(aq, {}) | json() }}
  148284. .ft P
  148285. .fi
  148286. .UNINDENT
  148287. .UNINDENT
  148288. .sp
  148289. \fB/srv/pillar/php.sls\fP:
  148290. .INDENT 0.0
  148291. .INDENT 3.5
  148292. .sp
  148293. .nf
  148294. .ft C
  148295. php_ini:
  148296. PHP:
  148297. engine: \(aqOn\(aq
  148298. short_open_tag: \(aqOff\(aq
  148299. error_reporting: \(aqE_ALL & ~E_DEPRECATED & ~E_STRICT\(aq
  148300. .ft P
  148301. .fi
  148302. .UNINDENT
  148303. .UNINDENT
  148304. .sp
  148305. \fB/srv/salt/php.ini.tmpl\fP:
  148306. .INDENT 0.0
  148307. .INDENT 3.5
  148308. .sp
  148309. .nf
  148310. .ft C
  148311. {% macro php_ini_serializer(data) %}
  148312. {% for section_name, name_val_pairs in data.items() %}
  148313. [{{ section_name }}]
  148314. {% for name, val in name_val_pairs.items() \-%}
  148315. {{ name }} = "{{ val }}"
  148316. {% endfor %}
  148317. {% endfor %}
  148318. {% endmacro %}
  148319. ; File managed by Salt at <{{ source }}>.
  148320. ; Your changes will be overwritten.
  148321. {{ php_ini_serializer(php_ini_settings) }}
  148322. .ft P
  148323. .fi
  148324. .UNINDENT
  148325. .UNINDENT
  148326. .SS Abstracting static defaults into a lookup table
  148327. .sp
  148328. Separate data that a state uses from the state itself to increases the
  148329. flexibility and reusability of a state.
  148330. .sp
  148331. An obvious and common example of this is platform\-specific package names and
  148332. file system paths. Another example is sane defaults for an application, or
  148333. common settings within a company or organization. Organizing such data as a
  148334. dictionary (aka hash map, lookup table, associative array) often provides a
  148335. lightweight namespacing and allows for quick and easy lookups. In addition,
  148336. using a dictionary allows for easily merging and overriding static values
  148337. within a lookup table with dynamic values fetched from Pillar.
  148338. .sp
  148339. A strong convention in Salt Formulas is to place platform\-specific data, such
  148340. as package names and file system paths, into a file named \fBmap.jinja\fP
  148341. that is placed alongside the state files.
  148342. .sp
  148343. The following is an example from the MySQL Formula.
  148344. The \fBgrains.filter_by\fP function
  148345. performs a lookup on that table using the \fBos_family\fP grain (by default).
  148346. .sp
  148347. The result is that the \fBmysql\fP variable is assigned to a \fIsubset\fP of
  148348. the lookup table for the current platform. This allows states to reference, for
  148349. example, the name of a package without worrying about the underlying OS. The
  148350. syntax for referencing a value is a normal dictionary lookup in Jinja, such as
  148351. \fB{{ mysql[\(aqservice\(aq] }}\fP or the shorthand \fB{{ mysql.service }}\fP\&.
  148352. .sp
  148353. \fBmap.jinja\fP:
  148354. .INDENT 0.0
  148355. .INDENT 3.5
  148356. .sp
  148357. .nf
  148358. .ft C
  148359. {% set mysql = salt[\(aqgrains.filter_by\(aq]({
  148360. \(aqDebian\(aq: {
  148361. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148362. \(aqclient\(aq: \(aqmysql\-client\(aq,
  148363. \(aqservice\(aq: \(aqmysql\(aq,
  148364. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148365. \(aqpython\(aq: \(aqpython\-mysqldb\(aq,
  148366. },
  148367. \(aqRedHat\(aq: {
  148368. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148369. \(aqclient\(aq: \(aqmysql\(aq,
  148370. \(aqservice\(aq: \(aqmysqld\(aq,
  148371. \(aqconfig\(aq: \(aq/etc/my.cnf\(aq,
  148372. \(aqpython\(aq: \(aqMySQL\-python\(aq,
  148373. },
  148374. \(aqGentoo\(aq: {
  148375. \(aqserver\(aq: \(aqdev\-db/mysql\(aq,
  148376. \(aqclient\(aq: \(aqdev\-db/mysql\(aq,
  148377. \(aqservice\(aq: \(aqmysql\(aq,
  148378. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148379. \(aqpython\(aq: \(aqdev\-python/mysql\-python\(aq,
  148380. },
  148381. }, merge=salt[\(aqpillar.get\(aq](\(aqmysql:lookup\(aq)) %}
  148382. .ft P
  148383. .fi
  148384. .UNINDENT
  148385. .UNINDENT
  148386. .sp
  148387. Values defined in the map file can be fetched for the current platform in any
  148388. state file using the following syntax:
  148389. .INDENT 0.0
  148390. .INDENT 3.5
  148391. .sp
  148392. .nf
  148393. .ft C
  148394. {% from "mysql/map.jinja" import mysql with context %}
  148395. mysql\-server:
  148396. pkg.installed:
  148397. \- name: {{ mysql.server }}
  148398. service.running:
  148399. \- name: {{ mysql.service }}
  148400. .ft P
  148401. .fi
  148402. .UNINDENT
  148403. .UNINDENT
  148404. .SS Organizing Pillar data
  148405. .sp
  148406. It is considered a best practice to make formulas expect \fBall\fP
  148407. formula\-related parameters to be placed under second\-level \fBlookup\fP key,
  148408. within a main namespace designated for holding data for particular
  148409. service/software/etc, managed by the formula:
  148410. .INDENT 0.0
  148411. .INDENT 3.5
  148412. .sp
  148413. .nf
  148414. .ft C
  148415. mysql:
  148416. lookup:
  148417. version: 5.7.11
  148418. .ft P
  148419. .fi
  148420. .UNINDENT
  148421. .UNINDENT
  148422. .SS Collecting common values
  148423. .sp
  148424. Common values can be collected into a \fIbase\fP dictionary. This
  148425. minimizes repetition of identical values in each of the
  148426. \fBlookup_dict\fP sub\-dictionaries. Now only the values that are
  148427. different from the base must be specified by the alternates:
  148428. .sp
  148429. \fBmap.jinja\fP:
  148430. .INDENT 0.0
  148431. .INDENT 3.5
  148432. .sp
  148433. .nf
  148434. .ft C
  148435. {% set mysql = salt[\(aqgrains.filter_by\(aq]({
  148436. \(aqdefault\(aq: {
  148437. \(aqserver\(aq: \(aqmysql\-server\(aq,
  148438. \(aqclient\(aq: \(aqmysql\-client\(aq,
  148439. \(aqservice\(aq: \(aqmysql\(aq,
  148440. \(aqconfig\(aq: \(aq/etc/mysql/my.cnf\(aq,
  148441. \(aqpython\(aq: \(aqpython\-mysqldb\(aq,
  148442. },
  148443. \(aqDebian\(aq: {
  148444. },
  148445. \(aqRedHat\(aq: {
  148446. \(aqclient\(aq: \(aqmysql\(aq,
  148447. \(aqservice\(aq: \(aqmysqld\(aq,
  148448. \(aqconfig\(aq: \(aq/etc/my.cnf\(aq,
  148449. \(aqpython\(aq: \(aqMySQL\-python\(aq,
  148450. },
  148451. \(aqGentoo\(aq: {
  148452. \(aqserver\(aq: \(aqdev\-db/mysql\(aq,
  148453. \(aqclient\(aq: \(aqdev\-db/mysql\(aq,
  148454. \(aqpython\(aq: \(aqdev\-python/mysql\-python\(aq,
  148455. },
  148456. },
  148457. merge=salt[\(aqpillar.get\(aq](\(aqmysql:lookup\(aq), base=\(aqdefault\(aq) %}
  148458. .ft P
  148459. .fi
  148460. .UNINDENT
  148461. .UNINDENT
  148462. .SS Overriding values in the lookup table
  148463. .sp
  148464. Allow static values within lookup tables to be overridden. This is a simple
  148465. pattern which once again increases flexibility and reusability for state files.
  148466. .sp
  148467. The \fBmerge\fP argument in \fBfilter_by\fP
  148468. specifies the location of a dictionary in Pillar that can be used to override
  148469. values returned from the lookup table. If the value exists in Pillar it will
  148470. take precedence.
  148471. .sp
  148472. This is useful when software or configuration files is installed to
  148473. non\-standard locations or on unsupported platforms. For example, the following
  148474. Pillar would replace the \fBconfig\fP value from the call above.
  148475. .INDENT 0.0
  148476. .INDENT 3.5
  148477. .sp
  148478. .nf
  148479. .ft C
  148480. mysql:
  148481. lookup:
  148482. config: /usr/local/etc/mysql/my.cnf
  148483. .ft P
  148484. .fi
  148485. .UNINDENT
  148486. .UNINDENT
  148487. .sp
  148488. \fBNOTE:\fP
  148489. .INDENT 0.0
  148490. .INDENT 3.5
  148491. Protecting Expansion of Content with Special Characters
  148492. .sp
  148493. When templating keep in mind that YAML does have special characters for
  148494. quoting, flows, and other special structure and content. When a Jinja
  148495. substitution may have special characters that will be incorrectly parsed by
  148496. YAML care must be taken. It is a good policy to use the \fByaml_encode\fP or
  148497. the \fByaml_dquote\fP Jinja filters:
  148498. .INDENT 0.0
  148499. .INDENT 3.5
  148500. .sp
  148501. .nf
  148502. .ft C
  148503. {%\- set foo = 7.7 %}
  148504. {%\- set bar = none %}
  148505. {%\- set baz = true %}
  148506. {%\- set zap = \(aqThe word of the day is "salty".\(aq %}
  148507. {%\- set zip = \(aq"The quick brown fox . . ."\(aq %}
  148508. foo: {{ foo|yaml_encode }}
  148509. bar: {{ bar|yaml_encode }}
  148510. baz: {{ baz|yaml_encode }}
  148511. zap: {{ zap|yaml_encode }}
  148512. zip: {{ zip|yaml_dquote }}
  148513. .ft P
  148514. .fi
  148515. .UNINDENT
  148516. .UNINDENT
  148517. .sp
  148518. The above will be rendered as below:
  148519. .INDENT 0.0
  148520. .INDENT 3.5
  148521. .sp
  148522. .nf
  148523. .ft C
  148524. foo: 7.7
  148525. bar: null
  148526. baz: true
  148527. zap: "The word of the day is \e"salty\e"."
  148528. zip: "\e"The quick brown fox . . .\e""
  148529. .ft P
  148530. .fi
  148531. .UNINDENT
  148532. .UNINDENT
  148533. .UNINDENT
  148534. .UNINDENT
  148535. .sp
  148536. The \fBfilter_by\fP function performs a
  148537. simple dictionary lookup but also allows for fetching data from Pillar and
  148538. overriding data stored in the lookup table. That same workflow can be easily
  148539. performed without using \fBfilter_by\fP; other dictionaries besides data from
  148540. Pillar can also be used.
  148541. .INDENT 0.0
  148542. .INDENT 3.5
  148543. .sp
  148544. .nf
  148545. .ft C
  148546. {% set lookup_table = {...} %}
  148547. {% do lookup_table.update(salt.pillar.get(\(aqmy:custom:data\(aq)) %}
  148548. .ft P
  148549. .fi
  148550. .UNINDENT
  148551. .UNINDENT
  148552. .SS When to use lookup tables
  148553. .sp
  148554. The \fBmap.jinja\fP file is only a convention within Salt Formulas. This greater
  148555. pattern is useful for a wide variety of data in a wide variety of workflows.
  148556. This pattern is not limited to pulling data from a single file or data source.
  148557. This pattern is useful in States, Pillar and the Reactor, for example.
  148558. .sp
  148559. Working with a data structure instead of, say, a config file allows the data to
  148560. be cobbled together from multiple sources (local files, remote Pillar, database
  148561. queries, etc), combined, overridden, and searched.
  148562. .sp
  148563. Below are a few examples of what lookup tables may be useful for and how they
  148564. may be used and represented.
  148565. .SS Platform\-specific information
  148566. .sp
  148567. An obvious pattern and one used heavily in Salt Formulas is extracting
  148568. platform\-specific information such as package names and file system paths in
  148569. a file named \fBmap.jinja\fP\&. The pattern is explained in detail above.
  148570. .SS Sane defaults
  148571. .sp
  148572. Application settings can be a good fit for this pattern. Store default
  148573. settings along with the states themselves and keep overrides and sensitive
  148574. settings in Pillar. Combine both into a single dictionary and then write the
  148575. application config or settings file.
  148576. .sp
  148577. The example below stores most of the Apache Tomcat \fBserver.xml\fP file
  148578. alongside the Tomcat states and then allows values to be updated or augmented
  148579. via Pillar. (This example uses the BadgerFish format for transforming JSON to
  148580. XML.)
  148581. .sp
  148582. \fB/srv/salt/tomcat/defaults.yaml\fP:
  148583. .INDENT 0.0
  148584. .INDENT 3.5
  148585. .sp
  148586. .nf
  148587. .ft C
  148588. Server:
  148589. \(aq@port\(aq: \(aq8005\(aq
  148590. \(aq@shutdown\(aq: SHUTDOWN
  148591. GlobalNamingResources:
  148592. Resource:
  148593. \(aq@auth\(aq: Container
  148594. \(aq@description\(aq: User database that can be updated and saved
  148595. \(aq@factory\(aq: org.apache.catalina.users.MemoryUserDatabaseFactory
  148596. \(aq@name\(aq: UserDatabase
  148597. \(aq@pathname\(aq: conf/tomcat\-users.xml
  148598. \(aq@type\(aq: org.apache.catalina.UserDatabase
  148599. # <...snip...>
  148600. .ft P
  148601. .fi
  148602. .UNINDENT
  148603. .UNINDENT
  148604. .sp
  148605. \fB/srv/pillar/tomcat.sls\fP:
  148606. .INDENT 0.0
  148607. .INDENT 3.5
  148608. .sp
  148609. .nf
  148610. .ft C
  148611. appX:
  148612. server_xml_overrides:
  148613. Server:
  148614. Service:
  148615. \(aq@name\(aq: Catalina
  148616. Connector:
  148617. \(aq@port\(aq: \(aq8009\(aq
  148618. \(aq@protocol\(aq: AJP/1.3
  148619. \(aq@redirectPort\(aq: \(aq8443\(aq
  148620. # <...snip...>
  148621. .ft P
  148622. .fi
  148623. .UNINDENT
  148624. .UNINDENT
  148625. .sp
  148626. \fB/srv/salt/tomcat/server_xml.sls\fP:
  148627. .INDENT 0.0
  148628. .INDENT 3.5
  148629. .sp
  148630. .nf
  148631. .ft C
  148632. {% import_yaml \(aqtomcat/defaults.yaml\(aq as server_xml_defaults %}
  148633. {% set server_xml_final_values = salt.pillar.get(
  148634. \(aqappX:server_xml_overrides\(aq,
  148635. default=server_xml_defaults,
  148636. merge=True)
  148637. %}
  148638. appX_server_xml:
  148639. file.serialize:
  148640. \- name: /etc/tomcat/server.xml
  148641. \- dataset: {{ server_xml_final_values | json() }}
  148642. \- formatter: xml_badgerfish
  148643. .ft P
  148644. .fi
  148645. .UNINDENT
  148646. .UNINDENT
  148647. .sp
  148648. The \fBfile.serialize\fP state can provide a
  148649. shorthand for creating some files from data structures. There are also many
  148650. examples within Salt Formulas of creating one\-off "serializers" (often as Jinja
  148651. macros) that reformat a data structure to a specific config file format. For
  148652. example, look at the\(gaNginx vhosts\(ga_ states or the \fI\%php.ini\fP file template.
  148653. .SS Environment specific information
  148654. .sp
  148655. A single state can be reused when it is parameterized as described in the
  148656. section below, by separating the data the state will use from the state that
  148657. performs the work. This can be the difference between deploying \fIApplication X\fP
  148658. and \fIApplication Y\fP, or the difference between production and development. For
  148659. example:
  148660. .sp
  148661. \fB/srv/salt/app/deploy.sls\fP:
  148662. .INDENT 0.0
  148663. .INDENT 3.5
  148664. .sp
  148665. .nf
  148666. .ft C
  148667. {# Load the map file. #}
  148668. {% import_yaml \(aqapp/defaults.yaml\(aq as app_defaults %}
  148669. {# Extract the relevant subset for the app configured on the current
  148670. machine (configured via a grain in this example). #}
  148671. {% app = app_defaults.get(salt.grains.get(\(aqrole\(aq)) %}
  148672. {# Allow values from Pillar to (optionally) update values from the lookup
  148673. table. #}
  148674. {% do app_defaults.update(salt.pillar.get(\(aqmyapp\(aq, {})) %}
  148675. deploy_application:
  148676. git.latest:
  148677. \- name: {{ app.repo_url }}
  148678. \- version: {{ app.version }}
  148679. \- target: {{ app.deploy_dir }}
  148680. myco/myapp/deployed:
  148681. event.send:
  148682. \- data:
  148683. version: {{ app.version }}
  148684. \- onchanges:
  148685. \- git: deploy_application
  148686. .ft P
  148687. .fi
  148688. .UNINDENT
  148689. .UNINDENT
  148690. .sp
  148691. \fB/srv/salt/app/defaults.yaml\fP:
  148692. .INDENT 0.0
  148693. .INDENT 3.5
  148694. .sp
  148695. .nf
  148696. .ft C
  148697. appX:
  148698. repo_url: git@github.com/myco/appX.git
  148699. target: /var/www/appX
  148700. version: master
  148701. appY:
  148702. repo_url: git@github.com/myco/appY.git
  148703. target: /var/www/appY
  148704. version: v1.2.3.4
  148705. .ft P
  148706. .fi
  148707. .UNINDENT
  148708. .UNINDENT
  148709. .SS Single\-purpose SLS files
  148710. .sp
  148711. Each sls file in a Formula should strive to do a single thing. This increases
  148712. the reusability of this file by keeping unrelated tasks from getting coupled
  148713. together.
  148714. .sp
  148715. As an example, the base Apache formula should only install the Apache httpd
  148716. server and start the httpd service. This is the basic, expected behavior when
  148717. installing Apache. It should not perform additional changes such as set the
  148718. Apache configuration file or create vhosts.
  148719. .sp
  148720. If a formula is single\-purpose as in the example above, other formulas, and
  148721. also other states can \fBinclude\fP and use that formula with requisites
  148722. without also including undesirable or unintended side\-effects.
  148723. .sp
  148724. The following is a best\-practice example for a reusable Apache formula. (This
  148725. skips platform\-specific options for brevity. See the full
  148726. \fI\%apache\-formula\fP for more.)
  148727. .INDENT 0.0
  148728. .INDENT 3.5
  148729. .sp
  148730. .nf
  148731. .ft C
  148732. # apache/init.sls
  148733. apache:
  148734. pkg.installed:
  148735. [...]
  148736. service.running:
  148737. [...]
  148738. # apache/mod_wsgi.sls
  148739. include:
  148740. \- apache
  148741. mod_wsgi:
  148742. pkg.installed:
  148743. [...]
  148744. \- require:
  148745. \- pkg: apache
  148746. # apache/conf.sls
  148747. include:
  148748. \- apache
  148749. apache_conf:
  148750. file.managed:
  148751. [...]
  148752. \- watch_in:
  148753. \- service: apache
  148754. .ft P
  148755. .fi
  148756. .UNINDENT
  148757. .UNINDENT
  148758. .sp
  148759. To illustrate a bad example, say the above Apache formula installed Apache and
  148760. also created a default vhost. The mod_wsgi state would not be able to include
  148761. the Apache formula to create that dependency tree without also installing the
  148762. unneeded default vhost.
  148763. .sp
  148764. \fI\%Formulas should be reusable\fP\&. Avoid coupling
  148765. unrelated actions together.
  148766. .SS Parameterization
  148767. .sp
  148768. \fIParameterization is a key feature of Salt Formulas\fP and also for Salt
  148769. States. Parameterization allows a single Formula to be reused across many
  148770. operating systems; to be reused across production, development, or staging
  148771. environments; and to be reused by many people all with varying goals.
  148772. .sp
  148773. Writing states, specifying ordering and dependencies is the part that takes the
  148774. longest to write and to test. Filling those states out with data such as users
  148775. or package names or file locations is the easy part. How many users, what those
  148776. users are named, or where the files live are all implementation details that
  148777. \fBshould be parameterized\fP\&. This separation between a state and the data that
  148778. populates a state creates a reusable formula.
  148779. .sp
  148780. In the example below the data that populates the state can come from anywhere
  148781. \-\- it can be hard\-coded at the top of the state, it can come from an external
  148782. file, it can come from Pillar, it can come from an execution function call, or
  148783. it can come from a database query. The state itself doesn\(aqt change regardless
  148784. of where the data comes from. Production data will vary from development data
  148785. will vary from data from one company to another, however the state itself stays
  148786. the same.
  148787. .INDENT 0.0
  148788. .INDENT 3.5
  148789. .sp
  148790. .nf
  148791. .ft C
  148792. {% set user_list = [
  148793. {\(aqname\(aq: \(aqlarry\(aq, \(aqshell\(aq: \(aqbash\(aq},
  148794. {\(aqname\(aq: \(aqcurly\(aq, \(aqshell\(aq: \(aqbash\(aq},
  148795. {\(aqname\(aq: \(aqmoe\(aq, \(aqshell\(aq: \(aqzsh\(aq},
  148796. ] %}
  148797. {# or #}
  148798. {% set user_list = salt[\(aqpillar.get\(aq](\(aquser_list\(aq) %}
  148799. {# or #}
  148800. {% load_json "default_users.json" as user_list %}
  148801. {# or #}
  148802. {% set user_list = salt[\(aqacme_utils.get_user_list\(aq]() %}
  148803. {% for user in list_list %}
  148804. {{ user.name }}:
  148805. user.present:
  148806. \- name: {{ user.name }}
  148807. \- shell: {{ user.shell }}
  148808. {% endfor %}
  148809. .ft P
  148810. .fi
  148811. .UNINDENT
  148812. .UNINDENT
  148813. .SS Configuration
  148814. .sp
  148815. Formulas should strive to use the defaults of the underlying platform, followed
  148816. by defaults from the upstream project, followed by sane defaults for the
  148817. formula itself.
  148818. .sp
  148819. As an example, a formula to install Apache \fBshould not\fP change the default
  148820. Apache configuration file installed by the OS package. However, the Apache
  148821. formula \fBshould\fP include a state to change or override the default
  148822. configuration file.
  148823. .SS Pillar overrides
  148824. .sp
  148825. Pillar lookups must use the safe \fBget()\fP
  148826. and must provide a default value. Create local variables using the Jinja
  148827. \fBset\fP construct to increase readability and to avoid potentially hundreds or
  148828. thousands of function calls across a large state tree.
  148829. .INDENT 0.0
  148830. .INDENT 3.5
  148831. .sp
  148832. .nf
  148833. .ft C
  148834. {% from "apache/map.jinja" import apache with context %}
  148835. {% set settings = salt[\(aqpillar.get\(aq](\(aqapache\(aq, {}) %}
  148836. mod_status:
  148837. file.managed:
  148838. \- name: {{ apache.conf_dir }}
  148839. \- source: {{ settings.get(\(aqmod_status_conf\(aq, \(aqsalt://apache/mod_status.conf\(aq) }}
  148840. \- template: {{ settings.get(\(aqtemplate_engine\(aq, \(aqjinja\(aq) }}
  148841. .ft P
  148842. .fi
  148843. .UNINDENT
  148844. .UNINDENT
  148845. .sp
  148846. Any default values used in the Formula must also be documented in the
  148847. \fBpillar.example\fP file in the root of the repository. Comments should be
  148848. used liberally to explain the intent of each configuration value. In addition,
  148849. users should be able copy\-and\-paste the contents of this file into their own
  148850. Pillar to make any desired changes.
  148851. .SS Scripting
  148852. .sp
  148853. Remember that both State files and Pillar files can easily call out to Salt
  148854. execution modules and have access to all the system
  148855. grains as well.
  148856. .INDENT 0.0
  148857. .INDENT 3.5
  148858. .sp
  148859. .nf
  148860. .ft C
  148861. {% if \(aq/storage\(aq in salt[\(aqmount.active\(aq]() %}
  148862. /usr/local/etc/myfile.conf:
  148863. file:
  148864. \- symlink
  148865. \- target: /storage/myfile.conf
  148866. {% endif %}
  148867. .ft P
  148868. .fi
  148869. .UNINDENT
  148870. .UNINDENT
  148871. .sp
  148872. Jinja macros to encapsulate logic or conditionals are discouraged in favor of
  148873. writing custom execution modules in Python.
  148874. .SS Repository structure
  148875. .sp
  148876. A basic Formula repository should have the following layout:
  148877. .INDENT 0.0
  148878. .INDENT 3.5
  148879. .sp
  148880. .nf
  148881. .ft C
  148882. foo\-formula
  148883. |\-\- foo/
  148884. | |\-\- map.jinja
  148885. | |\-\- init.sls
  148886. | \(ga\-\- bar.sls
  148887. |\-\- CHANGELOG.rst
  148888. |\-\- LICENSE
  148889. |\-\- pillar.example
  148890. |\-\- README.rst
  148891. \(ga\-\- VERSION
  148892. .ft P
  148893. .fi
  148894. .UNINDENT
  148895. .UNINDENT
  148896. .sp
  148897. \fBSEE ALSO:\fP
  148898. .INDENT 0.0
  148899. .INDENT 3.5
  148900. \fI\%template\-formula\fP
  148901. .sp
  148902. The \fI\%template\-formula\fP repository has a pre\-built layout that
  148903. serves as the basic structure for a new formula repository. Just copy the
  148904. files from there and edit them.
  148905. .UNINDENT
  148906. .UNINDENT
  148907. .SS \fBREADME.rst\fP
  148908. .sp
  148909. The README should detail each available \fB\&.sls\fP file by explaining what it
  148910. does, whether it has any dependencies on other formulas, whether it has a
  148911. target platform, and any other installation or usage instructions or tips.
  148912. .sp
  148913. A sample skeleton for the \fBREADME.rst\fP file:
  148914. .INDENT 0.0
  148915. .INDENT 3.5
  148916. .sp
  148917. .nf
  148918. .ft C
  148919. ===
  148920. foo
  148921. ===
  148922. Install and configure the FOO service.
  148923. **NOTE**
  148924. See the full \(gaSalt Formulas installation and usage instructions
  148925. <https://docs.saltstack.com/en/latest/topics/development/conventions/formulas.html>\(ga_.
  148926. Available states
  148927. ================
  148928. \&.. contents::
  148929. :local:
  148930. \(ga\(gafoo\(ga\(ga
  148931. \-\-\-\-\-\-\-
  148932. Install the \(ga\(gafoo\(ga\(ga package and enable the service.
  148933. \(ga\(gafoo.bar\(ga\(ga
  148934. \-\-\-\-\-\-\-\-\-\-\-
  148935. Install the \(ga\(gabar\(ga\(ga package.
  148936. .ft P
  148937. .fi
  148938. .UNINDENT
  148939. .UNINDENT
  148940. .SS \fBCHANGELOG.rst\fP
  148941. .sp
  148942. The \fBCHANGELOG.rst\fP file should detail the individual versions, their
  148943. release date and a set of bullet points for each version highlighting the
  148944. overall changes in a given version of the formula.
  148945. .sp
  148946. A sample skeleton for the \fICHANGELOG.rst\fP file:
  148947. .sp
  148948. \fBCHANGELOG.rst\fP:
  148949. .INDENT 0.0
  148950. .INDENT 3.5
  148951. .sp
  148952. .nf
  148953. .ft C
  148954. foo formula
  148955. ===========
  148956. 0.0.2 (2013\-01\-01)
  148957. \- Re\-organized formula file layout
  148958. \- Fixed filename used for upstart logger template
  148959. \- Allow for pillar message to have default if none specified
  148960. .ft P
  148961. .fi
  148962. .UNINDENT
  148963. .UNINDENT
  148964. .SS Versioning
  148965. .sp
  148966. Formula are versioned according to Semantic Versioning, \fI\%https://semver.org/\fP\&.
  148967. .sp
  148968. \fBNOTE:\fP
  148969. .INDENT 0.0
  148970. .INDENT 3.5
  148971. Given a version number MAJOR.MINOR.PATCH, increment the:
  148972. .INDENT 0.0
  148973. .IP 1. 3
  148974. MAJOR version when you make incompatible API changes,
  148975. .IP 2. 3
  148976. MINOR version when you add functionality in a backwards\-compatible manner, and
  148977. .IP 3. 3
  148978. PATCH version when you make backwards\-compatible bug fixes.
  148979. .UNINDENT
  148980. .sp
  148981. Additional labels for pre\-release and build metadata are available as extensions
  148982. to the MAJOR.MINOR.PATCH format.
  148983. .UNINDENT
  148984. .UNINDENT
  148985. .sp
  148986. Formula versions are tracked using Git tags as well as the \fBVERSION\fP file
  148987. in the formula repository. The \fBVERSION\fP file should contain the currently
  148988. released version of the particular formula.
  148989. .SS Testing Formulas
  148990. .sp
  148991. A smoke\-test for invalid Jinja, invalid YAML, or an invalid Salt state
  148992. structure can be performed by with the \fBstate.show_sls\fP function:
  148993. .INDENT 0.0
  148994. .INDENT 3.5
  148995. .sp
  148996. .nf
  148997. .ft C
  148998. salt \(aq*\(aq state.show_sls apache
  148999. .ft P
  149000. .fi
  149001. .UNINDENT
  149002. .UNINDENT
  149003. .sp
  149004. Salt Formulas can then be tested by running each \fB\&.sls\fP file via
  149005. \fBstate.apply\fP and checking the output for
  149006. the success or failure of each state in the Formula. This should be done for
  149007. each supported platform.
  149008. .SS SaltStack Packaging Guide
  149009. .sp
  149010. Since Salt provides a powerful toolkit for system management and automation,
  149011. the package can be spit into a number of sub\-tools. While packaging Salt as
  149012. a single package containing all components is perfectly acceptable, the split
  149013. packages should follow this convention.
  149014. .SS Patching Salt For Distributions
  149015. .sp
  149016. The occasion may arise where Salt source and default configurations may need
  149017. to be patched. It is preferable if Salt is only patched to include platform
  149018. specific additions or to fix release time bugs. It is preferable that
  149019. configuration settings and operations remain in the default state, as changes
  149020. here lowers the user experience for users moving across distributions.
  149021. .sp
  149022. In the event where a packager finds a need to change the default configuration
  149023. it is advised to add the files to the master.d or minion.d directories.
  149024. .SS Source Files
  149025. .sp
  149026. Release packages should always be built from the source tarball distributed via
  149027. pypi. Release packages should \fINEVER\fP use a git checkout as the source for
  149028. distribution.
  149029. .SS Single Package
  149030. .sp
  149031. Shipping Salt as a single package, where the minion, master, and all tools are
  149032. together is perfectly acceptable and practiced by distributions such as
  149033. FreeBSD.
  149034. .SS Split Package
  149035. .sp
  149036. Salt Should always be split in a standard way, with standard dependencies, this lowers
  149037. cross distribution confusion about what components are going to be shipped with
  149038. specific packages. These packages can be defined from the Salt Source as of
  149039. Salt 2014.1.0:
  149040. .SS Salt Common
  149041. .sp
  149042. The \fIsalt\-common\fP or \fIsalt\fP package should contain the files provided by the
  149043. salt python package, or all files distributed from the \fBsalt/\fP directory in
  149044. the source distribution packages. The documentation contained under the
  149045. \fBdoc/\fP directory can be a part of this package but splitting out a doc
  149046. package is preferred.
  149047. Since salt\-call is the entry point to utilize the libs and is useful for all
  149048. salt packages it is included in the salt\-common package.
  149049. .SS Name
  149050. .INDENT 0.0
  149051. .IP \(bu 2
  149052. \fIsalt\fP OR \fIsalt\-common\fP
  149053. .UNINDENT
  149054. .SS Files
  149055. .INDENT 0.0
  149056. .IP \(bu 2
  149057. \fIsalt/*\fP
  149058. .IP \(bu 2
  149059. \fIman/salt.7\fP
  149060. .IP \(bu 2
  149061. \fIscripts/salt\-call\fP
  149062. .IP \(bu 2
  149063. \fItests/*\fP
  149064. .IP \(bu 2
  149065. \fIman/salt\-call.1\fP
  149066. .UNINDENT
  149067. .SS Depends
  149068. .INDENT 0.0
  149069. .IP \(bu 2
  149070. \fIPython 2.6\-2.7\fP
  149071. .IP \(bu 2
  149072. \fIPyYAML\fP
  149073. .IP \(bu 2
  149074. \fIJinja2\fP
  149075. .UNINDENT
  149076. .SS Salt Master
  149077. .sp
  149078. The \fIsalt\-master\fP package contains the applicable scripts, related man
  149079. pages and init information for the given platform.
  149080. .SS Name
  149081. .INDENT 0.0
  149082. .IP \(bu 2
  149083. \fIsalt\-master\fP
  149084. .UNINDENT
  149085. .SS Files
  149086. .INDENT 0.0
  149087. .IP \(bu 2
  149088. \fIscripts/salt\-master\fP
  149089. .IP \(bu 2
  149090. \fIscripts/salt\fP
  149091. .IP \(bu 2
  149092. \fIscripts/salt\-run\fP
  149093. .IP \(bu 2
  149094. \fIscripts/salt\-key\fP
  149095. .IP \(bu 2
  149096. \fIscripts/salt\-cp\fP
  149097. .IP \(bu 2
  149098. \fIpkg/<master init data>\fP
  149099. .IP \(bu 2
  149100. \fIman/salt.1\fP
  149101. .IP \(bu 2
  149102. \fIman/salt\-master.1\fP
  149103. .IP \(bu 2
  149104. \fIman/salt\-run.1\fP
  149105. .IP \(bu 2
  149106. \fIman/salt\-key.1\fP
  149107. .IP \(bu 2
  149108. \fIman/salt\-cp.1\fP
  149109. .IP \(bu 2
  149110. \fIconf/master\fP
  149111. .UNINDENT
  149112. .SS Depends
  149113. .INDENT 0.0
  149114. .IP \(bu 2
  149115. \fISalt Common\fP
  149116. .IP \(bu 2
  149117. \fIZeroMQ\fP >= 3.2
  149118. .IP \(bu 2
  149119. \fIPyZMQ\fP >= 2.10
  149120. .IP \(bu 2
  149121. \fIPyCrypto\fP
  149122. .IP \(bu 2
  149123. \fIM2Crypto\fP
  149124. .IP \(bu 2
  149125. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149126. .UNINDENT
  149127. .SS Salt Syndic
  149128. .sp
  149129. The Salt Syndic package can be rolled completely into the Salt Master package.
  149130. Platforms which start services as part of the package deployment need to
  149131. maintain a separate \fIsalt\-syndic\fP package (primarily Debian based platforms).
  149132. .sp
  149133. The Syndic may optionally not depend on the anything more than the Salt Master since
  149134. the master will bring in all needed dependencies, but fall back to the platform
  149135. specific packaging guidelines.
  149136. .SS Name
  149137. .INDENT 0.0
  149138. .IP \(bu 2
  149139. \fIsalt\-syndic\fP
  149140. .UNINDENT
  149141. .SS Files
  149142. .INDENT 0.0
  149143. .IP \(bu 2
  149144. \fIscripts/salt\-syndic\fP
  149145. .IP \(bu 2
  149146. \fIpkg/<syndic init data>\fP
  149147. .IP \(bu 2
  149148. \fIman/salt\-syndic.1\fP
  149149. .UNINDENT
  149150. .SS Depends
  149151. .INDENT 0.0
  149152. .IP \(bu 2
  149153. \fISalt Common\fP
  149154. .IP \(bu 2
  149155. \fISalt Master\fP
  149156. .IP \(bu 2
  149157. \fIZeroMQ\fP >= 3.2
  149158. .IP \(bu 2
  149159. \fIPyZMQ\fP >= 2.10
  149160. .IP \(bu 2
  149161. \fIPyCrypto\fP
  149162. .IP \(bu 2
  149163. \fIM2Crypto\fP
  149164. .IP \(bu 2
  149165. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149166. .UNINDENT
  149167. .SS Salt Minion
  149168. .sp
  149169. The Minion is a standalone package and should not be split beyond the
  149170. \fIsalt\-minion\fP and \fIsalt\-common\fP packages.
  149171. .SS Name
  149172. .INDENT 0.0
  149173. .IP \(bu 2
  149174. \fIsalt\-minion\fP
  149175. .UNINDENT
  149176. .SS Files
  149177. .INDENT 0.0
  149178. .IP \(bu 2
  149179. \fIscripts/salt\-minion\fP
  149180. .IP \(bu 2
  149181. \fIpkg/<minion init data>\fP
  149182. .IP \(bu 2
  149183. \fIman/salt\-minion.1\fP
  149184. .IP \(bu 2
  149185. \fIconf/minion\fP
  149186. .UNINDENT
  149187. .SS Depends
  149188. .INDENT 0.0
  149189. .IP \(bu 2
  149190. \fISalt Common\fP
  149191. .IP \(bu 2
  149192. \fIZeroMQ\fP >= 3.2
  149193. .IP \(bu 2
  149194. \fIPyZMQ\fP >= 2.10
  149195. .IP \(bu 2
  149196. \fIPyCrypto\fP
  149197. .IP \(bu 2
  149198. \fIM2Crypto\fP
  149199. .IP \(bu 2
  149200. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149201. .UNINDENT
  149202. .SS Salt SSH
  149203. .sp
  149204. Since Salt SSH does not require the same dependencies as the minion and master, it
  149205. should be split out.
  149206. .SS Name
  149207. .INDENT 0.0
  149208. .IP \(bu 2
  149209. \fIsalt\-ssh\fP
  149210. .UNINDENT
  149211. .SS Files
  149212. .INDENT 0.0
  149213. .IP \(bu 2
  149214. \fIscripts/salt\-ssh\fP
  149215. .IP \(bu 2
  149216. \fIman/salt\-ssh.1\fP
  149217. .IP \(bu 2
  149218. \fIconf/cloud*\fP
  149219. .UNINDENT
  149220. .SS Depends
  149221. .INDENT 0.0
  149222. .IP \(bu 2
  149223. \fISalt Common\fP
  149224. .IP \(bu 2
  149225. \fIPython MessagePack\fP (Messagepack C lib, or msgpack\-pure)
  149226. .UNINDENT
  149227. .SS Salt Cloud
  149228. .sp
  149229. As of Salt 2014.1.0 Salt Cloud is included in the same repo as Salt. This
  149230. can be split out into a separate package or it can be included in the
  149231. salt\-master package.
  149232. .SS Name
  149233. .INDENT 0.0
  149234. .IP \(bu 2
  149235. \fIsalt\-cloud\fP
  149236. .UNINDENT
  149237. .SS Files
  149238. .INDENT 0.0
  149239. .IP \(bu 2
  149240. \fIscripts/salt\-cloud\fP
  149241. .IP \(bu 2
  149242. \fIman/salt\-cloud.1\fP
  149243. .UNINDENT
  149244. .SS Depends
  149245. .INDENT 0.0
  149246. .IP \(bu 2
  149247. \fISalt Common\fP
  149248. .IP \(bu 2
  149249. \fIapache libcloud\fP >= 0.14.0
  149250. .UNINDENT
  149251. .SS Salt Doc
  149252. .sp
  149253. The documentation package is very distribution optional. A completely split
  149254. package will split out the documentation, but some platform conventions do not
  149255. prefer this.
  149256. If the documentation is not split out, it should be included with the
  149257. \fISalt Common\fP package.
  149258. .SS Name
  149259. .INDENT 0.0
  149260. .IP \(bu 2
  149261. \fIsalt\-doc\fP
  149262. .UNINDENT
  149263. .SS Files
  149264. .INDENT 0.0
  149265. .IP \(bu 2
  149266. \fIdoc/*\fP
  149267. .UNINDENT
  149268. .SS Optional Depends
  149269. .INDENT 0.0
  149270. .IP \(bu 2
  149271. \fISalt Common\fP
  149272. .IP \(bu 2
  149273. \fIPython Sphinx\fP
  149274. .IP \(bu 2
  149275. \fIMake\fP
  149276. .UNINDENT
  149277. .SS Salt Release Process
  149278. .sp
  149279. The goal for Salt projects is to cut a new feature release every three to
  149280. four months. This document outlines the process for these releases, and the
  149281. subsequent bug fix releases which follow.
  149282. .SS Feature Release Process
  149283. .sp
  149284. When a new release is ready to be cut, the person responsible for cutting the
  149285. release will follow the following steps (written using the 3000 release as an
  149286. example):
  149287. .INDENT 0.0
  149288. .IP 1. 4
  149289. Create first public draft of release notes with major features.
  149290. .IP 2. 4
  149291. Remove any deprecations for the upcoming release.
  149292. .IP 3. 4
  149293. Ensure all required features are merged.
  149294. .IP 4. 4
  149295. Create issue to start the process of deprecating for the next feature release.
  149296. .IP 5. 4
  149297. Run through a manual test run based off of the head of the feature branch.
  149298. .IP 6. 4
  149299. Update all name references to version number in the docs. For example
  149300. all neon references in the docs needs to be moved to v3000
  149301. .IP 7. 4
  149302. Review the release notes with major features.
  149303. .IP 8. 4
  149304. Generate the new man pages for the release.
  149305. .IP 9. 4
  149306. Create internal RC tag for testing from the head of the master branch.
  149307. .IP 10. 4
  149308. Build latest windows, mac, ubuntu, debian and redhat packages.
  149309. .IP 11. 4
  149310. Run manual and package tests against new RC packages.
  149311. .IP 12. 4
  149312. Push the internal tag live to salt\(aqs repo.
  149313. .IP 13. 4
  149314. Publish release archive to pypi based off tag.
  149315. .IP 14. 4
  149316. Push the RC packages live.
  149317. .IP 15. 4
  149318. Announce new RC to salt\-users and salt\-announce google groups.
  149319. .IP 16. 4
  149320. Triage incoming issues based on the new RC release.
  149321. .IP 17. 4
  149322. Fix RC issues once they are categorized as a release blocker.
  149323. .IP 18. 4
  149324. Depending on the issues found during the RC process make a decesion
  149325. on whether to release based off the RC or go through another RC process
  149326. .IP 19. 4
  149327. If a RC is categorized as stable, build all required packages.
  149328. .IP 20. 4
  149329. Test all release packages.
  149330. .IP 21. 4
  149331. Test links from \fI\%repo.saltstack.com\fP\&.
  149332. .IP 22. 4
  149333. Update installation instructions with new release number at \fI\%repo.saltstack.com\fP\&.
  149334. .IP 23. 4
  149335. Update and build docs to include new version (3000) as the latest.
  149336. .IP 24. 4
  149337. Pre\-announce on salt\-users google group that we are about to update our repo.
  149338. .IP 25. 4
  149339. Publish release (v3000) archive to pypi based off tag.
  149340. .IP 26. 4
  149341. Publish all packages live to repo.
  149342. .IP 27. 4
  149343. Publish the docs.
  149344. .IP 28. 4
  149345. Create release at \fI\%github\fP
  149346. .IP 29. 4
  149347. Update win\-repo\-ng with new salt versions.
  149348. .IP 30. 4
  149349. Announce release is live to irc, salt\-users, salt\-announce and release slack
  149350. community channel.
  149351. .UNINDENT
  149352. .SS Bugfix Releases
  149353. .sp
  149354. Once a feature release branch has been cut from the \fBmaster\fP branch, if
  149355. serious bugs or a CVE is found for the most recent release a bugfix release
  149356. will need to be cut. A temporary branch will be created based off of the previous
  149357. release tag. For example, if it is determined that a 3000.1 release needs to occur
  149358. a 3000.1 branch will be created based off of the v3000 tag. The fixes that need
  149359. to go into 3000.1 will be added and merged into this branch. Here are the steps
  149360. for a bugfix release.
  149361. .INDENT 0.0
  149362. .IP 1. 4
  149363. Ensure all required bug fixes are merged.
  149364. .IP 2. 4
  149365. Create release branch with the version of the release. (ex. 3000.1)
  149366. .IP 3. 4
  149367. Create jenkins jobs that test the new release branch.
  149368. .IP 4. 4
  149369. Run through a manual test run based off of the head of the branch.
  149370. .IP 5. 4
  149371. Generate the new man pages for the release.
  149372. .IP 6. 4
  149373. Create internal tag for testing.(ex v3000.1)
  149374. .IP 7. 4
  149375. Build all release packages.
  149376. .IP 8. 4
  149377. Run manual and package tests against new packages.
  149378. .IP 9. 4
  149379. Update installation instructions with new release number at \fI\%repo.saltstack.com\fP\&.
  149380. .IP 10. 4
  149381. Update and build docs to include new version. (ex. 3000.1)
  149382. .IP 11. 4
  149383. Pre\-announce on salt\-users google groups that we are about to update our repo.
  149384. .IP 12. 4
  149385. Push the internal tag live to salt\(aqs repo.
  149386. .IP 13. 4
  149387. Publish release archive to pypi based off tag.
  149388. .IP 14. 4
  149389. Push the packages live.
  149390. .IP 15. 4
  149391. Publish release (v3000) archive to pypi based off tag.
  149392. .IP 16. 4
  149393. Publish all packages live to repo.
  149394. .IP 17. 4
  149395. Publish the docs.
  149396. .IP 18. 4
  149397. Create release at \fI\%github\fP
  149398. .IP 19. 4
  149399. Update win\-repo\-ng with new salt versions.
  149400. .IP 20. 4
  149401. Announce release is live to irc, salt\-users, salt\-announce and release slack channel.
  149402. .UNINDENT
  149403. .sp
  149404. For more information about the difference between the \fBmaster\fP branch and
  149405. bugfix release branches, please refer to the Which Salt Branch? section of Salt\(aqs Contributing
  149406. documentation.
  149407. .SS Salt Coding Style
  149408. .sp
  149409. To make it easier to contribute and read Salt code, SaltStack has \fI\%adopted
  149410. Black\fP as its code formatter. There are a few places where Black is
  149411. silent, and this guide should be used in those cases.
  149412. .sp
  149413. Coding style is NEVER grounds to reject code contributions, and is never
  149414. grounds to talk down to another member of the community (There are no grounds
  149415. to treat others without respect, especially people working to improve Salt)!
  149416. .SS Linting
  149417. .sp
  149418. Most Salt style conventions are codified in Salt\(aqs \fB\&.testing.pylintrc\fP file.
  149419. Salt\(aqs pylint file has two dependencies: \fI\%pylint\fP and \fI\%saltpylint\fP\&. You can
  149420. install these dependencies with \fBpip\fP:
  149421. .INDENT 0.0
  149422. .INDENT 3.5
  149423. .sp
  149424. .nf
  149425. .ft C
  149426. pip install pylint
  149427. pip install saltpylint
  149428. .ft P
  149429. .fi
  149430. .UNINDENT
  149431. .UNINDENT
  149432. .sp
  149433. The \fB\&.testing.pylintrc\fP file is found in the root of the Salt project and can
  149434. be passed as an argument to the \fI\%pylint\fP program as follows:
  149435. .INDENT 0.0
  149436. .INDENT 3.5
  149437. .sp
  149438. .nf
  149439. .ft C
  149440. pylint \-\-rcfile=/path/to/salt/.testing.pylintrc salt/dir/to/lint
  149441. .ft P
  149442. .fi
  149443. .UNINDENT
  149444. .UNINDENT
  149445. .sp
  149446. \fBNOTE:\fP
  149447. .INDENT 0.0
  149448. .INDENT 3.5
  149449. There are two pylint files in the \fBsalt\fP directory. One is the
  149450. \fB\&.pylintrc\fP file and the other is the \fB\&.testing.pylintrc\fP file. The
  149451. tests that run in Jenkins against GitHub Pull Requests use
  149452. \fB\&.testing.pylintrc\fP\&. The \fBtesting.pylintrc\fP file is a little less
  149453. strict than the \fB\&.pylintrc\fP and is used to make it easier for contributors
  149454. to submit changes. The \fB\&.pylintrc\fP file can be used for linting, but the
  149455. \fBtesting.pylintrc\fP is the source of truth when submitting pull requests.
  149456. .UNINDENT
  149457. .UNINDENT
  149458. .SS Variables
  149459. .sp
  149460. Variables should be a minimum of three characters and should provide an
  149461. easy\-to\-understand name of the object being represented.
  149462. .sp
  149463. When keys and values are iterated over, descriptive names should be used
  149464. to represent the temporary variables.
  149465. .sp
  149466. Multi\-word variables should be separated by an underscore.
  149467. .sp
  149468. Variables which are two\-letter words should have an underscore appended
  149469. to them to pad them to three characters.
  149470. .SS Formatting Strings
  149471. .sp
  149472. All strings which require formatting should use the \fI\&.format\fP string method:
  149473. .INDENT 0.0
  149474. .INDENT 3.5
  149475. .sp
  149476. .nf
  149477. .ft C
  149478. data = \(aqsome text\(aq
  149479. more = \(aq{0} and then some\(aq.format(data)
  149480. .ft P
  149481. .fi
  149482. .UNINDENT
  149483. .UNINDENT
  149484. .sp
  149485. Make sure to use indices or identifiers in the format brackets, since empty
  149486. brackets are not supported by python 2.6.
  149487. .sp
  149488. Please do NOT use printf formatting.
  149489. .SS Docstring Conventions
  149490. .sp
  149491. When adding a new function or state, where possible try to use a
  149492. \fBversionadded\fP directive to denote when the function, state, or parameter was added.
  149493. .INDENT 0.0
  149494. .INDENT 3.5
  149495. .sp
  149496. .nf
  149497. .ft C
  149498. def new_func(msg=\(aq\(aq):
  149499. \(aq\(aq\(aq
  149500. .. versionadded:: 0.16.0
  149501. Prints what was passed to the function.
  149502. msg : None
  149503. The string to be printed.
  149504. \(aq\(aq\(aq
  149505. print(msg)
  149506. .ft P
  149507. .fi
  149508. .UNINDENT
  149509. .UNINDENT
  149510. .sp
  149511. If you are uncertain what version should be used, either consult a core
  149512. developer in IRC or bring this up when opening your pull request and a core developer will let you know what
  149513. version to add. Typically this will be the next element in the \fI\%periodic table\fP\&.
  149514. .sp
  149515. Similar to the above, when an existing function or state is modified (for
  149516. example, when an argument is added), then under the explanation of that new
  149517. argument a \fBversionadded\fP directive should be used to note the version in
  149518. which the new argument was added. If an argument\(aqs function changes
  149519. significantly, the \fBversionchanged\fP directive can be used to clarify this:
  149520. .INDENT 0.0
  149521. .INDENT 3.5
  149522. .sp
  149523. .nf
  149524. .ft C
  149525. def new_func(msg=\(aq\(aq, signature=\(aq\(aq):
  149526. \(aq\(aq\(aq
  149527. .. versionadded:: 0.16.0
  149528. Prints what was passed to the function.
  149529. msg : None
  149530. The string to be printed. Will be prepended with \(aqGreetings! \(aq.
  149531. .. versionchanged:: 0.17.1
  149532. signature : None
  149533. An optional signature.
  149534. .. versionadded 0.17.0
  149535. \(aq\(aq\(aq
  149536. print(\(aqGreetings! {0}\en\en{1}\(aq.format(msg, signature))
  149537. .ft P
  149538. .fi
  149539. .UNINDENT
  149540. .UNINDENT
  149541. .SS Dictionaries
  149542. .sp
  149543. Dictionaries should be initialized using \fI{}\fP instead of \fIdict()\fP\&.
  149544. .sp
  149545. See \fI\%here\fP for an in\-depth discussion of this topic.
  149546. .SS Imports
  149547. .sp
  149548. Salt code prefers importing modules and not explicit functions. This is both a
  149549. style and functional preference. The functional preference originates around
  149550. the fact that the module import system used by pluggable modules will include
  149551. callable objects (functions) that exist in the direct module namespace. This
  149552. is not only messy, but may unintentionally expose code python libs to the Salt
  149553. interface and pose a security problem.
  149554. .sp
  149555. To say this more directly with an example, this is \fIGOOD\fP:
  149556. .INDENT 0.0
  149557. .INDENT 3.5
  149558. .sp
  149559. .nf
  149560. .ft C
  149561. import os
  149562. def minion_path():
  149563. path = os.path.join(self.opts[\(aqcachedir\(aq], \(aqminions\(aq)
  149564. return path
  149565. .ft P
  149566. .fi
  149567. .UNINDENT
  149568. .UNINDENT
  149569. .sp
  149570. This on the other hand is \fIDISCOURAGED\fP:
  149571. .INDENT 0.0
  149572. .INDENT 3.5
  149573. .sp
  149574. .nf
  149575. .ft C
  149576. from os.path import join
  149577. def minion_path():
  149578. path = join(self.opts[\(aqcachedir\(aq], \(aqminions\(aq)
  149579. return path
  149580. .ft P
  149581. .fi
  149582. .UNINDENT
  149583. .UNINDENT
  149584. .sp
  149585. The time when this is changed is for importing exceptions, generally directly
  149586. importing exceptions is preferred:
  149587. .sp
  149588. This is a good way to import exceptions:
  149589. .INDENT 0.0
  149590. .INDENT 3.5
  149591. .sp
  149592. .nf
  149593. .ft C
  149594. from salt.exceptions import CommandExecutionError
  149595. .ft P
  149596. .fi
  149597. .UNINDENT
  149598. .UNINDENT
  149599. .SS Absolute Imports
  149600. .sp
  149601. Although \fI\%absolute imports\fP seems like an awesome idea, please do not use it.
  149602. Extra care would be necessary all over salt\(aqs code in order for absolute
  149603. imports to work as supposed. Believe it, it has been tried before and, as a
  149604. tried example, by renaming \fBsalt.modules.sysmod\fP to \fBsalt.modules.sys\fP, all
  149605. other salt modules which needed to import \fBsys\fP would have to
  149606. also import \fBabsolute_import\fP, which should be
  149607. avoided.
  149608. .sp
  149609. \fBNOTE:\fP
  149610. .INDENT 0.0
  149611. .INDENT 3.5
  149612. An exception to this rule is the \fBabsolute_import\fP from \fB__future__\fP at
  149613. the top of each file within the Salt project. This import is necessary for
  149614. Py3 compatibility. This particular import looks like this:
  149615. .INDENT 0.0
  149616. .INDENT 3.5
  149617. .sp
  149618. .nf
  149619. .ft C
  149620. from __future__ import absolute_import
  149621. .ft P
  149622. .fi
  149623. .UNINDENT
  149624. .UNINDENT
  149625. .sp
  149626. This import is required for all new Salt files and is a good idea to add to
  149627. any custom states or modules. However, the practice of avoiding absolute
  149628. imports still applies to all other cases as to avoid a name conflict.
  149629. .UNINDENT
  149630. .UNINDENT
  149631. .SS Code Churn
  149632. .sp
  149633. Many pull requests have been submitted that only churn code in the name of
  149634. PEP 8. Code churn is a leading source of bugs and is \fBstrongly discouraged\fP\&.
  149635. While style fixes are encouraged they should be isolated to a single file per
  149636. commit, and the changes should be legitimate, if there are any questions about
  149637. whether a style change is legitimate please reference this document and the
  149638. official PEP 8 (\fI\%https://legacy.python.org/dev/peps/pep\-0008/\fP) document before
  149639. changing code. Many claims that a change is PEP 8 have been invalid, please
  149640. double check before committing fixes.
  149641. .SS Salt code and internals
  149642. .sp
  149643. Reference documentation on Salt\(aqs internal code.
  149644. .SS Contents
  149645. .SS salt.aggregation
  149646. .SS Exceptions
  149647. .sp
  149648. Salt\-specific exceptions should be thrown as often as possible so the various
  149649. interfaces to Salt (CLI, API, etc) can handle those errors appropriately and
  149650. display error messages appropriately.
  149651. .TS
  149652. center;
  149653. |l|l|.
  149654. _
  149655. T{
  149656. \fBsalt.exceptions\fP
  149657. T} T{
  149658. This module is a central location for all salt exceptions
  149659. T}
  149660. _
  149661. .TE
  149662. .SS salt.exceptions
  149663. .sp
  149664. This module is a central location for all salt exceptions
  149665. .INDENT 0.0
  149666. .TP
  149667. .B exception salt.exceptions.ArgumentValueError(message=u\(aq\(aq, info=None)
  149668. Used when an invalid argument was passed to a command execution
  149669. .UNINDENT
  149670. .INDENT 0.0
  149671. .TP
  149672. .B exception salt.exceptions.AuthenticationError(message=u\(aq\(aq)
  149673. If sha256 signature fails during decryption
  149674. .UNINDENT
  149675. .INDENT 0.0
  149676. .TP
  149677. .B exception salt.exceptions.AuthorizationError(message=u\(aq\(aq)
  149678. Thrown when runner or wheel execution fails due to permissions
  149679. .UNINDENT
  149680. .INDENT 0.0
  149681. .TP
  149682. .B exception salt.exceptions.CheckError(message=u\(aq\(aq, info=None)
  149683. Used when a check fails
  149684. .UNINDENT
  149685. .INDENT 0.0
  149686. .TP
  149687. .B exception salt.exceptions.CommandExecutionError(message=u\(aq\(aq, info=None)
  149688. Used when a module runs a command which returns an error and wants
  149689. to show the user the output gracefully instead of dying
  149690. .UNINDENT
  149691. .INDENT 0.0
  149692. .TP
  149693. .B exception salt.exceptions.CommandNotFoundError(message=u\(aq\(aq)
  149694. Used in modules or grains when a required binary is not available
  149695. .UNINDENT
  149696. .INDENT 0.0
  149697. .TP
  149698. .B exception salt.exceptions.EauthAuthenticationError(message=u\(aq\(aq)
  149699. Thrown when eauth authentication fails
  149700. .UNINDENT
  149701. .INDENT 0.0
  149702. .TP
  149703. .B exception salt.exceptions.FileLockError(message, time_start=None, *args, **kwargs)
  149704. Used when an error occurs obtaining a file lock
  149705. .UNINDENT
  149706. .INDENT 0.0
  149707. .TP
  149708. .B exception salt.exceptions.FileserverConfigError(message=u\(aq\(aq)
  149709. Used when invalid fileserver settings are detected
  149710. .UNINDENT
  149711. .INDENT 0.0
  149712. .TP
  149713. .B exception salt.exceptions.GitLockError(errno, message, *args, **kwargs)
  149714. Raised when an uncaught error occurs in the midst of obtaining an
  149715. update/checkout lock in salt.utils.gitfs.
  149716. .sp
  149717. NOTE: While this uses the errno param similar to an OSError, this exception
  149718. class is \fInot\fP as subclass of OSError. This is done intentionally, so that
  149719. this exception class can be caught in a try/except without being caught as
  149720. an OSError.
  149721. .UNINDENT
  149722. .INDENT 0.0
  149723. .TP
  149724. .B exception salt.exceptions.GitRemoteError(message=u\(aq\(aq)
  149725. Used by GitFS to denote a problem with the existence of the "origin" remote
  149726. or part of its configuration
  149727. .UNINDENT
  149728. .INDENT 0.0
  149729. .TP
  149730. .B exception salt.exceptions.InvalidConfigError(message=u\(aq\(aq, info=None)
  149731. Used when the config is invalid
  149732. .UNINDENT
  149733. .INDENT 0.0
  149734. .TP
  149735. .B exception salt.exceptions.InvalidEntityError(message=u\(aq\(aq, info=None)
  149736. Used when an entity fails validation
  149737. .UNINDENT
  149738. .INDENT 0.0
  149739. .TP
  149740. .B exception salt.exceptions.LoaderError(message=u\(aq\(aq)
  149741. Problems loading the right renderer
  149742. .UNINDENT
  149743. .INDENT 0.0
  149744. .TP
  149745. .B exception salt.exceptions.LoggingRuntimeError
  149746. Raised when we encounter an error while logging
  149747. .UNINDENT
  149748. .INDENT 0.0
  149749. .TP
  149750. .B exception salt.exceptions.MasterExit
  149751. Rise when the master exits
  149752. .UNINDENT
  149753. .INDENT 0.0
  149754. .TP
  149755. .B exception salt.exceptions.MinionError(message=u\(aq\(aq)
  149756. Minion problems reading uris such as salt:// or http://
  149757. .UNINDENT
  149758. .INDENT 0.0
  149759. .TP
  149760. .B exception salt.exceptions.MissingSmb(message=u\(aq\(aq)
  149761. Raised when no smb library is found.
  149762. .UNINDENT
  149763. .INDENT 0.0
  149764. .TP
  149765. .B exception salt.exceptions.NotImplemented(message=u\(aq\(aq)
  149766. Used when a module runs a command which returns an error and wants
  149767. to show the user the output gracefully instead of dying
  149768. .UNINDENT
  149769. .INDENT 0.0
  149770. .TP
  149771. .B exception salt.exceptions.NxosCliError(message=u\(aq\(aq)
  149772. NX\-OS Cli Error raised when Cli command rejected by the NX\-OS device
  149773. .UNINDENT
  149774. .INDENT 0.0
  149775. .TP
  149776. .B exception salt.exceptions.NxosClientError(message=u\(aq\(aq)
  149777. NX\-OS Client Error raised for problems connecting to the NX\-OS device
  149778. .UNINDENT
  149779. .INDENT 0.0
  149780. .TP
  149781. .B exception salt.exceptions.NxosError(message=u\(aq\(aq)
  149782. NX\-OS Base Exception class
  149783. .UNINDENT
  149784. .INDENT 0.0
  149785. .TP
  149786. .B exception salt.exceptions.NxosRequestNotSupported(message=u\(aq\(aq)
  149787. Raised for unsupported client requests
  149788. .UNINDENT
  149789. .INDENT 0.0
  149790. .TP
  149791. .B exception salt.exceptions.PkgParseError(message=u\(aq\(aq)
  149792. Used when of the pkg modules cannot correctly parse the output from
  149793. the CLI tool (pacman, yum, apt, aptitude, etc)
  149794. .UNINDENT
  149795. .INDENT 0.0
  149796. .TP
  149797. .B exception salt.exceptions.PublishError(message=u\(aq\(aq)
  149798. Problems encountered when trying to publish a command
  149799. .UNINDENT
  149800. .INDENT 0.0
  149801. .TP
  149802. .B exception salt.exceptions.SaltCacheError(message=u\(aq\(aq)
  149803. Thrown when a problem was encountered trying to read or write from the salt cache
  149804. .UNINDENT
  149805. .INDENT 0.0
  149806. .TP
  149807. .B exception salt.exceptions.SaltClientError(message=u\(aq\(aq)
  149808. Problem reading the master root key
  149809. .UNINDENT
  149810. .INDENT 0.0
  149811. .TP
  149812. .B exception salt.exceptions.SaltClientTimeout(message, jid=None, *args, **kwargs)
  149813. Thrown when a job sent through one of the Client interfaces times out
  149814. .sp
  149815. Takes the \fBjid\fP as a parameter
  149816. .UNINDENT
  149817. .INDENT 0.0
  149818. .TP
  149819. .B exception salt.exceptions.SaltCloudConfigError(message=u\(aq\(aq)
  149820. Raised when a configuration setting is not found and should exist.
  149821. .UNINDENT
  149822. .INDENT 0.0
  149823. .TP
  149824. .B exception salt.exceptions.SaltCloudException(message=u\(aq\(aq)
  149825. Generic Salt Cloud Exception
  149826. .UNINDENT
  149827. .INDENT 0.0
  149828. .TP
  149829. .B exception salt.exceptions.SaltCloudExecutionFailure(message=u\(aq\(aq)
  149830. Raised when too much failures have occurred while querying/waiting for data.
  149831. .UNINDENT
  149832. .INDENT 0.0
  149833. .TP
  149834. .B exception salt.exceptions.SaltCloudExecutionTimeout(message=u\(aq\(aq)
  149835. Raised when too much time has passed while querying/waiting for data.
  149836. .UNINDENT
  149837. .INDENT 0.0
  149838. .TP
  149839. .B exception salt.exceptions.SaltCloudNotFound(message=u\(aq\(aq)
  149840. Raised when some cloud provider function cannot find what\(aqs being searched.
  149841. .UNINDENT
  149842. .INDENT 0.0
  149843. .TP
  149844. .B exception salt.exceptions.SaltCloudPasswordError(message=u\(aq\(aq)
  149845. Raise when virtual terminal password input failed
  149846. .UNINDENT
  149847. .INDENT 0.0
  149848. .TP
  149849. .B exception salt.exceptions.SaltCloudSystemExit(message, exit_code=1)
  149850. This exception is raised when the execution should be stopped.
  149851. .UNINDENT
  149852. .INDENT 0.0
  149853. .TP
  149854. .B exception salt.exceptions.SaltConfigurationError(message=u\(aq\(aq)
  149855. Configuration error
  149856. .UNINDENT
  149857. .INDENT 0.0
  149858. .TP
  149859. .B exception salt.exceptions.SaltDaemonNotRunning(message=u\(aq\(aq)
  149860. Throw when a running master/minion/syndic is not running but is needed to
  149861. perform the requested operation (e.g., eauth).
  149862. .UNINDENT
  149863. .INDENT 0.0
  149864. .TP
  149865. .B exception salt.exceptions.SaltDeserializationError(message=u\(aq\(aq)
  149866. Thrown when salt cannot deserialize data.
  149867. .UNINDENT
  149868. .INDENT 0.0
  149869. .TP
  149870. .B exception salt.exceptions.SaltException(message=u\(aq\(aq)
  149871. Base exception class; all Salt\-specific exceptions should subclass this
  149872. .INDENT 7.0
  149873. .TP
  149874. .B pack()
  149875. Pack this exception into a serializable dictionary that is safe for
  149876. transport via msgpack
  149877. .UNINDENT
  149878. .UNINDENT
  149879. .INDENT 0.0
  149880. .TP
  149881. .B exception salt.exceptions.SaltInvocationError(message=u\(aq\(aq)
  149882. Used when the wrong number of arguments are sent to modules or invalid
  149883. arguments are specified on the command line
  149884. .UNINDENT
  149885. .INDENT 0.0
  149886. .TP
  149887. .B exception salt.exceptions.SaltMasterError(message=u\(aq\(aq)
  149888. Problem reading the master root key
  149889. .UNINDENT
  149890. .INDENT 0.0
  149891. .TP
  149892. .B exception salt.exceptions.SaltMasterUnresolvableError(message=u\(aq\(aq)
  149893. Problem resolving the name of the Salt master
  149894. .UNINDENT
  149895. .INDENT 0.0
  149896. .TP
  149897. .B exception salt.exceptions.SaltNoMinionsFound(message=u\(aq\(aq)
  149898. An attempt to retrieve a list of minions failed
  149899. .UNINDENT
  149900. .INDENT 0.0
  149901. .TP
  149902. .B exception salt.exceptions.SaltRenderError(message, line_num=None, buf=u\(aq\(aq, marker=u\(aq <======================\(aq, trace=None)
  149903. Used when a renderer needs to raise an explicit error. If a line number and
  149904. buffer string are passed, get_context will be invoked to get the location
  149905. of the error.
  149906. .UNINDENT
  149907. .INDENT 0.0
  149908. .TP
  149909. .B exception salt.exceptions.SaltReqTimeoutError(message=u\(aq\(aq)
  149910. Thrown when a salt master request call fails to return within the timeout
  149911. .UNINDENT
  149912. .INDENT 0.0
  149913. .TP
  149914. .B exception salt.exceptions.SaltRunnerError(message=u\(aq\(aq)
  149915. Problem in runner
  149916. .UNINDENT
  149917. .INDENT 0.0
  149918. .TP
  149919. .B exception salt.exceptions.SaltSyndicMasterError(message=u\(aq\(aq)
  149920. Problem while proxying a request in the syndication master
  149921. .UNINDENT
  149922. .INDENT 0.0
  149923. .TP
  149924. .B exception salt.exceptions.SaltSystemExit(code=0, msg=None)
  149925. This exception is raised when an unsolvable problem is found. There\(aqs
  149926. nothing else to do, salt should just exit.
  149927. .UNINDENT
  149928. .INDENT 0.0
  149929. .TP
  149930. .B exception salt.exceptions.SaltWheelError(message=u\(aq\(aq)
  149931. Problem in wheel
  149932. .UNINDENT
  149933. .INDENT 0.0
  149934. .TP
  149935. .B exception salt.exceptions.TemplateError(message=u\(aq\(aq)
  149936. Used when a custom error is triggered in a template
  149937. .UNINDENT
  149938. .INDENT 0.0
  149939. .TP
  149940. .B exception salt.exceptions.TimedProcTimeoutError(message=u\(aq\(aq)
  149941. Thrown when a timed subprocess does not terminate within the timeout,
  149942. or if the specified timeout is not an int or a float
  149943. .UNINDENT
  149944. .INDENT 0.0
  149945. .TP
  149946. .B exception salt.exceptions.TimeoutError(message=u\(aq\(aq)
  149947. Thrown when an opration cannot be completet within a given time limit.
  149948. .UNINDENT
  149949. .INDENT 0.0
  149950. .TP
  149951. .B exception salt.exceptions.TokenAuthenticationError(message=u\(aq\(aq)
  149952. Thrown when token authentication fails
  149953. .UNINDENT
  149954. .INDENT 0.0
  149955. .TP
  149956. .B exception salt.exceptions.VMwareApiError(message=u\(aq\(aq, info=None)
  149957. Used when representing a generic VMware API error
  149958. .UNINDENT
  149959. .INDENT 0.0
  149960. .TP
  149961. .B exception salt.exceptions.VMwareConnectionError(message=u\(aq\(aq, info=None)
  149962. Used when the client fails to connect to a either a VMware vCenter server or
  149963. to a ESXi host
  149964. .UNINDENT
  149965. .INDENT 0.0
  149966. .TP
  149967. .B exception salt.exceptions.VMwareFileNotFoundError(message=u\(aq\(aq, info=None)
  149968. Used when representing a generic VMware error if a file not found
  149969. .UNINDENT
  149970. .INDENT 0.0
  149971. .TP
  149972. .B exception salt.exceptions.VMwareMultipleObjectsError(message=u\(aq\(aq, info=None)
  149973. Used when multiple objects were retrieved (and one was expected)
  149974. .UNINDENT
  149975. .INDENT 0.0
  149976. .TP
  149977. .B exception salt.exceptions.VMwareNotFoundError(message=u\(aq\(aq, info=None)
  149978. Used when a VMware object was not found
  149979. .UNINDENT
  149980. .INDENT 0.0
  149981. .TP
  149982. .B exception salt.exceptions.VMwareObjectExistsError(message=u\(aq\(aq, info=None)
  149983. Used when a VMware object already exists
  149984. .UNINDENT
  149985. .INDENT 0.0
  149986. .TP
  149987. .B exception salt.exceptions.VMwareObjectNotFoundError(message=u\(aq\(aq, info=None)
  149988. Used when a VMware object was not found
  149989. .UNINDENT
  149990. .INDENT 0.0
  149991. .TP
  149992. .B exception salt.exceptions.VMwareObjectRetrievalError(message=u\(aq\(aq, info=None)
  149993. Used when a VMware object cannot be retrieved
  149994. .UNINDENT
  149995. .INDENT 0.0
  149996. .TP
  149997. .B exception salt.exceptions.VMwarePowerOnError(message=u\(aq\(aq, info=None)
  149998. Used when error occurred during power on
  149999. .UNINDENT
  150000. .INDENT 0.0
  150001. .TP
  150002. .B exception salt.exceptions.VMwareRuntimeError(message=u\(aq\(aq, info=None)
  150003. Used when a runtime error is encountered when communicating with the
  150004. vCenter
  150005. .UNINDENT
  150006. .INDENT 0.0
  150007. .TP
  150008. .B exception salt.exceptions.VMwareSaltError(message=u\(aq\(aq, info=None)
  150009. Used when a VMware object cannot be retrieved
  150010. .UNINDENT
  150011. .INDENT 0.0
  150012. .TP
  150013. .B exception salt.exceptions.VMwareSystemError(message=u\(aq\(aq, info=None)
  150014. Used when representing a generic VMware system error
  150015. .UNINDENT
  150016. .INDENT 0.0
  150017. .TP
  150018. .B exception salt.exceptions.VMwareVmCreationError(message=u\(aq\(aq, info=None)
  150019. Used when a configuration parameter is incorrect
  150020. .UNINDENT
  150021. .INDENT 0.0
  150022. .TP
  150023. .B exception salt.exceptions.VMwareVmRegisterError(message=u\(aq\(aq, info=None)
  150024. Used when a configuration parameter is incorrect
  150025. .UNINDENT
  150026. .INDENT 0.0
  150027. .TP
  150028. .B salt.exceptions.get_error_message(error)
  150029. Get human readable message from Python Exception
  150030. .UNINDENT
  150031. .SS The Salt Fileserver and Client
  150032. .SS Introduction
  150033. .sp
  150034. Salt has a modular fileserver, and multiple client classes which are used to
  150035. interact with it. This page serves as a developer\(aqs reference, to help explain
  150036. how the fileserver and clients both work.
  150037. .SS Fileserver
  150038. .sp
  150039. The fileserver is not a daemon, so the fileserver and client are not a true
  150040. server and client in the traditional sense. Instead, the fileserver is simply a
  150041. class (\fBsalt.fileserver.Fileserver\fP), located in
  150042. \fI\%salt/fileserver/__init__.py\fP\&. This class has access to the configured
  150043. fileserver backends via a loader instance, referenced as \fBself.servers\fP\&. When
  150044. a request comes in from the fileclient, it will ultimately result in a
  150045. \fBFileserver\fP class function being run.
  150046. .sp
  150047. The functions in this class will run corresponding functions in the configured
  150048. fileserver backends to perform the requested action. So, in summary:
  150049. .INDENT 0.0
  150050. .IP 1. 3
  150051. A fileclient class makes a request...
  150052. .IP 2. 3
  150053. which triggers the fileserver to run a function...
  150054. .IP 3. 3
  150055. which runs a named function in each of the configured backends.
  150056. .UNINDENT
  150057. .sp
  150058. Not all of the functions will always execute on every configured backend. For
  150059. instance, the \fBfind_file\fP function in the fileserver will stop when it finds
  150060. a match, so if it finds a match for the desired path in the first configured
  150061. backend, it won\(aqt proceed and try to find the file in the next backend in the
  150062. list.
  150063. .sp
  150064. Additionally, not all backends implement all functions in the
  150065. \fBsalt.fileserver.Fileserver\fP class. For instance, there is a function called
  150066. \fBupdate\fP, which exists to update remote fileservers such as the \fBgit\fP,
  150067. \fBhg\fP, and \fBsvn\fP backends. This action has no use however in the \fBroots\fP
  150068. backend, so it is simply not implemented there, and thus the \fBroots\fP backend
  150069. will be skipped if the \fBupdate\fP function is run on the fileserver.
  150070. .sp
  150071. Backends for the fileserver are located in \fI\%salt/fileserver/\fP (the files not
  150072. named \fB__init__.py\fP).
  150073. .SS Fileclient
  150074. .sp
  150075. There are three fileclient classes:
  150076. .SS salt.fileclient.RemoteClient
  150077. .sp
  150078. This client is used when \fBfile_client\fP is set to \fBremote\fP\&. This
  150079. is how minions request files from the master.
  150080. .sp
  150081. Functions in this client will craft a payload and send it to the master via the
  150082. transport channel. This is the same way that the minion asks the minion to do
  150083. other things, such as updating and requesting data from the mine. The payload
  150084. will be a dictionary with a key called \fBcmd\fP, and other values as needed.
  150085. .sp
  150086. Payloads sent via the transport channel are processed my an MWorker instance on
  150087. the master, and the MWorker\(aqs \fB_handle_aes()\fP function will execute the
  150088. command. The command will be a function attribute of the
  150089. \fBsalt.master.AESFuncs\fP class. The AESFuncs class\(aq \fB__setup_fileserver()\fP
  150090. function instantiates a \fBsalt.fileserver.Fileserver\fP instance and maps its
  150091. member functions to AESFuncs attributes. This is what makes the fileserver
  150092. functions available remotely. The result of the function is returned back
  150093. through the transport channel to the minion.
  150094. .sp
  150095. Transporting files is done in chunks, the size of which is decided by the
  150096. \fBfile_buffer_size\fP config option. If you look at the \fBserve_file()\fP
  150097. function in any of the fileserver backends, you can see how the \fBloc\fP value
  150098. in the payload determines the offset so that an intermediate chunk of the file
  150099. can be served. The RemoteClient\(aqs \fBget_file()\fP function will loop until the
  150100. end of the file is reached, retrieving one chunk at a time.
  150101. .SS salt.fileclient.FSClient
  150102. .sp
  150103. This client is used when \fBfile_client\fP is set to \fBlocal\fP\&. This
  150104. is how masterless minions request files.
  150105. .sp
  150106. This class inherits from the RemoteClient, but instead of using a transport
  150107. channel (zmq, tcp, etc.), it uses a "fake" transport channel
  150108. (\fBsalt.fileserver.FSChan\fP), which implements its own \fBsend()\fP function.
  150109. Thus, when a function that the FSClient inherits from the RemoteClient runs
  150110. \fBself.channel.send()\fP, it\(aqs actually calling
  150111. \fBsalt.fileserver.FSChan.send()\fP, which calls corresponding functions in the
  150112. \fBsalt.fileserver.Fileserver()\fP class. The result is that local file requests
  150113. use the same code as remote file requests, they just bypass sending them
  150114. through an actual transport channel and instead call them on the FSChan\(aqs
  150115. Fileserver instance.
  150116. .SS salt.fileclient.LocalClient
  150117. .sp
  150118. This client is now used exclusively by Pillar. This used to be used when
  150119. \fBfile_client\fP was set to \fBlocal\fP, but the \fBFSChan\fP class was
  150120. written to allow minions with \fBfile_client: local\fP to access the full set of
  150121. backends. This class will probably be renamed at some point as it is often
  150122. confused with \fBsalt.client.LocalClient\fP\&.
  150123. .SS The \fBcp\fP Module
  150124. .sp
  150125. Most of the user\-facing interaction with the fileclient happens via the
  150126. \fBcp\fP module. The functions in this module instantiate a
  150127. fileclient instance (if one is not already saved to the \fB__context__\fP
  150128. dunder) and run fileclient functions.
  150129. .SS Updating the Fileserver
  150130. .sp
  150131. The master daemon spawns a process dedicated to routine maintenance tasks upon
  150132. startup. This process runs an instance of \fBsalt.master.Maintenance\fP, which
  150133. loops forever, running a series of functions and then sleeping for a length of
  150134. time determined by the \fBloop_interval\fP config option. One of the
  150135. maintenance tasks is to update the fileserver, and it essentially runs
  150136. \fBsalt.fileserver.Fileserver.update()\fP, which as we know from above will run
  150137. all configured backends\(aq \fBupdate()\fP functions, if present. This is now remote
  150138. fileservers like \fBgit\fP, \fBhg\fP, and \fBsvn\fP stay up\-to\-date.
  150139. .sp
  150140. For the local file_client (FSClient), since it does not interact with the
  150141. master, upon spawning of its FSChan it will update the fileserver.
  150142. .SS Salt opts dictionary
  150143. .sp
  150144. It is very common in the Salt codebase to see \fIopts\fP referred to in a number of
  150145. contexts.
  150146. .sp
  150147. For example, it can be seen as \fI__opts__\fP in certain cases, or simply as \fIopts\fP
  150148. as an argument to a function in others.
  150149. .sp
  150150. Simply put, this data structure is a dictionary of Salt\(aqs runtime configuration
  150151. information that\(aqs passed around in order for functions to know how Salt is configured.
  150152. .sp
  150153. When writing Python code to use specific parts of Salt, it may become necessary
  150154. to initialize a copy of \fIopts\fP from scratch in order to have it available for a
  150155. given function.
  150156. .sp
  150157. To do so, use the utility functions available in \fIsalt.config\fP\&.
  150158. .sp
  150159. As an example, here is how one might generate and print an options dictionary
  150160. for a minion instance:
  150161. .INDENT 0.0
  150162. .INDENT 3.5
  150163. .sp
  150164. .nf
  150165. .ft C
  150166. import salt.config
  150167. opts = salt.config.minion_config(\(aq/etc/salt/minion\(aq)
  150168. print(opts)
  150169. .ft P
  150170. .fi
  150171. .UNINDENT
  150172. .UNINDENT
  150173. .sp
  150174. To generate and display \fIopts\fP for a master, the process is similar:
  150175. .INDENT 0.0
  150176. .INDENT 3.5
  150177. .sp
  150178. .nf
  150179. .ft C
  150180. import salt.config
  150181. opts = salt.config.master_config(\(aq/etc/salt/master\(aq)
  150182. print(opts)
  150183. .ft P
  150184. .fi
  150185. .UNINDENT
  150186. .UNINDENT
  150187. .SS Unicode in Salt
  150188. .sp
  150189. Though Unicode handling in large projects can often be complex, Salt adheres to
  150190. several basic rules to help developers handle Unicode correctly.
  150191. .sp
  150192. (For a basic introduction to this problem, see Ned Batchelder\(aqs
  150193. \fIexcellent intoroduction to the topic <http://nedbatchelder.com/text/unipain/unipain.html>\fP\&.
  150194. .sp
  150195. Salt\(aqs basic workflow for Unicode handling is as follows:
  150196. .INDENT 0.0
  150197. .IP 1. 3
  150198. Salt should convert whatever data is passed on CLI/API to Unicode.
  150199. Internally, everything that Salt does should be Unicode unless it is
  150200. printing to the screen or writing to storage.
  150201. .IP 2. 3
  150202. Modules and various Salt pluggable systems use incoming data assuming Unicode.
  150203. .INDENT 3.0
  150204. .TP
  150205. .B 2.1) For Salt modules that query an API; the module should convert the data
  150206. received from the API into Unicode.
  150207. .TP
  150208. .B 2.2) For Salt modules that shell out to get output; the module should
  150209. convert data received into Unicode. (This does not apply if using the
  150210. \fBcmd\fP execution module, which should handle
  150211. this for you.
  150212. .TP
  150213. .B 2.3) For Salt modules which print directly to the console (not via an
  150214. outputter) or which write directly to disk, a string should be encoded
  150215. when appropriate. To handle this conversion, the global variable
  150216. \fB__salt_system_encoding__\fP is available, which declares the locale of
  150217. the system that Salt is running on.
  150218. .UNINDENT
  150219. .IP 3. 3
  150220. When a function in a Salt module returns a string, it should return a
  150221. \fBunicode\fP type in Python 2.
  150222. .IP 4. 3
  150223. When Salt delivers the data to an outputter or a returner, it is the job of
  150224. the outputter or returner to encode the Unicode before displaying it on the
  150225. console or writing it to storage.
  150226. .UNINDENT
  150227. .SS Salt Community Projects
  150228. .sp
  150229. This page contains links to Salt\-related projects created by community members.
  150230. If you come across a useful project please add it to the list!
  150231. .SS Hubblestack
  150232. .sp
  150233. Hubble is a modular, open\-source security compliance framework built on top of
  150234. SaltStack. The project provides on\-demand profile\-based auditing, real\-time
  150235. security event notifications, automated remediation, alerting and reporting.
  150236. .sp
  150237. \fI\%https://hubblestack.io/\fP
  150238. .SS alkali
  150239. .sp
  150240. alkali is a collections of SaltStack states and pillar data that provide just
  150241. the basics for provisioning Linux instances that may be built upon. alkali is
  150242. a starter kit of sorts, to help new users to SaltStack get up\-and\-running
  150243. quickly with the most commonly used, core packages.
  150244. .sp
  150245. \fI\%https://github.com/zulily/alkali\fP
  150246. .SS buoyant
  150247. .sp
  150248. buoyant leverages docker to provide an alternative to VM\-centric SaltStack
  150249. development environments. buoyant containers may be spun up nearly instantly,
  150250. once an initial docker image has been built.
  150251. .sp
  150252. \fI\%https://github.com/zulily/buoyant\fP
  150253. .SS Salt Sandbox
  150254. .sp
  150255. Salt Sandbox is a multi\-VM Vagrant\-based Salt development environment used
  150256. for creating and testing new Salt state modules outside of your production
  150257. environment. It\(aqs also a great way to learn firsthand about Salt and its
  150258. remote execution capabilities.
  150259. .sp
  150260. \fI\%https://github.com/elasticdog/salt\-sandbox\fP
  150261. .SS Salt Vagrant Demo
  150262. .sp
  150263. A Salt Demo using Vagrant.
  150264. .sp
  150265. \fI\%https://github.com/UtahDave/salt\-vagrant\-demo\fP
  150266. .SH RELEASE NOTES
  150267. .sp
  150268. See the version numbers page for more
  150269. information about the version numbering scheme.
  150270. .SS Latest Branch Release
  150271. .sp
  150272. Release Candidate
  150273. .SS Previous Releases
  150274. .SS Salt 3000 Release Notes \- Codename Neon
  150275. .SS Security Advisory
  150276. .sp
  150277. For historical reasons, Salt requires PyCrypto as a "lowest common
  150278. denominator". However, \fI\%PyCrypto is unmaintained\fP and best practice is to
  150279. manually upgrade to use a more maintained library such as \fI\%PyCryptodome\fP\&. See
  150280. \fI\%Issue #52674\fP and \fI\%Issue #54115\fP for more info
  150281. .SS New Versioning
  150282. .sp
  150283. The neon release has removed the date versioning. Going forward we will
  150284. use a non\-date based version schema beginning at 3000. The version will
  150285. be MAJOR.PATCH. For a planned release containing features and/or bug fixes
  150286. the MAJOR version will be incremented. Please review the approved
  150287. \fI\%SEP\fP
  150288. for further details.
  150289. .sp
  150290. The new versioning scheme is PEP 440 compliant, but distutils.StrictVersion
  150291. will result in an error \fBinvalid version number\fP\&. If using StrictVersion to
  150292. compare Salt\(aqs versions, please use LooseVersion. There is also the packaging
  150293. library you can use to compare versions. Another alternative is using the
  150294. \fBsalt version module\fP
  150295. .SS Python 3.8 Not Supported
  150296. .sp
  150297. Please note that running Salt with Python 3.8 is currently not supported.
  150298. It is recommended to not use a version higher than 3.7.
  150299. .SS Vendored Tornado Code Base
  150300. .sp
  150301. The Tornado code base has been included as \fBsalt.ext.tornado\fP\&. This was done
  150302. to provide a consistent version of Tornado across all operating systems while
  150303. we continue to work on upgrading Tornado to a recent version. New code that
  150304. uses Tornado should import the module from \fBsalt.ext.tornado\fP instead of
  150305. importing the system version of Tornado.
  150306. .SS Msgpack 1.0.0rc1 Incompatibility
  150307. .sp
  150308. Salt is currently incompatible with msgpack 1.0.0rc1. We recommend using
  150309. versions < 1.0.0 . This impacts the Salt Master\(aqs ability to run commands
  150310. against minions. Please see \fI\%Issue 56007\fP
  150311. for more details and updates.
  150312. .SS Pip Installing Salt On Windows
  150313. .sp
  150314. This release will not install correctly on windows when using pip to install salt.
  150315. This issue is addressed in \fI\%PR 56099\fP\&.
  150316. The workaround for this issue is:
  150317. .INDENT 0.0
  150318. .INDENT 3.5
  150319. .sp
  150320. .nf
  150321. .ft C
  150322. pip install "pywin32==224" "WMI==1.4.9"
  150323. .ft P
  150324. .fi
  150325. .UNINDENT
  150326. .UNINDENT
  150327. .sp
  150328. Those using the Salt Windows Installer are not affected by this issue.
  150329. .SS Saltcheck Updates
  150330. .sp
  150331. Available since 2018.3, the \fBsaltcheck module\fP
  150332. has been enhanced to:
  150333. .INDENT 0.0
  150334. .IP \(bu 2
  150335. Support saltenv environments
  150336. .IP \(bu 2
  150337. Associate tests with states by naming convention
  150338. .IP \(bu 2
  150339. Adds report_highstate_tests function
  150340. .IP \(bu 2
  150341. Adds empty and notempty assertions
  150342. .IP \(bu 2
  150343. Adds skip keyword
  150344. .IP \(bu 2
  150345. Adds print_result keyword
  150346. .IP \(bu 2
  150347. Adds assertion_section keyword
  150348. .IP \(bu 2
  150349. Use saltcheck.state_apply to run state.apply for test setup or teardown
  150350. .IP \(bu 2
  150351. Changes output to display test time
  150352. .IP \(bu 2
  150353. Works with salt\-ssh
  150354. .UNINDENT
  150355. .sp
  150356. Saltcheck provides unittest like functionality requiring only the knowledge of
  150357. salt module execution and yaml. Saltcheck uses salt modules to return data, then
  150358. runs an assertion against that return. This allows for testing with all the
  150359. features included in salt modules.
  150360. .sp
  150361. In order to run state and highstate saltcheck tests, a sub\-folder in the state directory
  150362. must be created and named \fBsaltcheck\-tests\fP\&. Tests for a state should be created in files
  150363. ending in \fB*.tst\fP and placed in the \fBsaltcheck\-tests\fP folder. \fBtst\fP files are run
  150364. through the salt rendering system, enabling tests to be written in yaml (or renderer of choice),
  150365. and include jinja, as well as the usual grain and pillar information. Like states, multiple tests can
  150366. be specified in a \fBtst\fP file. Multiple \fBtst\fP files can be created in the \fBsaltcheck\-tests\fP
  150367. folder, and should be named the same as the associated state. The \fBid\fP of a test works in the
  150368. same manner as in salt state files and should be unique and descriptive.
  150369. .SS Usage
  150370. .sp
  150371. Example file system layout:
  150372. .INDENT 0.0
  150373. .INDENT 3.5
  150374. .sp
  150375. .nf
  150376. .ft C
  150377. /srv/salt/apache/
  150378. init.sls
  150379. config.sls
  150380. saltcheck\-tests/
  150381. init.tst
  150382. config.tst
  150383. deployment_validation.tst
  150384. .ft P
  150385. .fi
  150386. .UNINDENT
  150387. .UNINDENT
  150388. .sp
  150389. Tests can be run for each state by name, for all \fBapache/saltcheck/*.tst\fP files,
  150390. or for all states assigned to the minion in top.sls. Tests may also be created
  150391. with no associated state. These tests will be run through the use of
  150392. \fBsaltcheck.run_state_tests\fP, but will not be automatically run by
  150393. \fBsaltcheck.run_highstate_tests\fP\&.
  150394. .INDENT 0.0
  150395. .INDENT 3.5
  150396. .sp
  150397. .nf
  150398. .ft C
  150399. salt \(aq*\(aq saltcheck.run_state_tests apache,apache.config
  150400. salt \(aq*\(aq saltcheck.run_state_tests apache check_all=True
  150401. salt \(aq*\(aq saltcheck.run_highstate_tests
  150402. salt \(aq*\(aq saltcheck.run_state_tests apache.deployment_validation
  150403. .ft P
  150404. .fi
  150405. .UNINDENT
  150406. .UNINDENT
  150407. .SS Example Tests
  150408. .INDENT 0.0
  150409. .INDENT 3.5
  150410. .sp
  150411. .nf
  150412. .ft C
  150413. {# will run the common salt state before further testing #}
  150414. setup_test_environment:
  150415. module_and_function: saltcheck.state_apply
  150416. args:
  150417. \- common
  150418. pillar\-data:
  150419. data: value
  150420. {% for package in ["apache2", "openssh"] %}
  150421. {# or another example #}
  150422. {# for package in salt[\(aqpillar.get\(aq]("packages") #}
  150423. jinja_test_{{ package }}_latest:
  150424. module_and_function: pkg.upgrade_available
  150425. args:
  150426. \- {{ package }}
  150427. assertion: assertFalse
  150428. {% endfor %}
  150429. validate_user_present_and_shell:
  150430. module_and_function: user.info
  150431. args:
  150432. \- root
  150433. assertion: assertEqual
  150434. expected\-return: /bin/bash
  150435. assertion_section: shell
  150436. print_result: False
  150437. skip_test:
  150438. module_and_function: pkg.upgrade_available
  150439. args:
  150440. \- apache2
  150441. assertion: assertFalse
  150442. skip: True
  150443. .ft P
  150444. .fi
  150445. .UNINDENT
  150446. .UNINDENT
  150447. .SS Output Format Changes
  150448. .sp
  150449. Saltcheck output has been enhanced to display the time taken per test. This results
  150450. in a change to the output format.
  150451. .sp
  150452. Previous Output:
  150453. .INDENT 0.0
  150454. .INDENT 3.5
  150455. .sp
  150456. .nf
  150457. .ft C
  150458. local:
  150459. |_
  150460. \-\-\-\-\-\-\-\-\-\-
  150461. ntp:
  150462. \-\-\-\-\-\-\-\-\-\-
  150463. ntp\-client\-installed:
  150464. Pass
  150465. ntp\-service\-status:
  150466. Pass
  150467. |_
  150468. \-\-\-\-\-\-\-\-\-\-
  150469. TEST RESULTS:
  150470. \-\-\-\-\-\-\-\-\-\-
  150471. Failed:
  150472. 0
  150473. Missing Tests:
  150474. 0
  150475. Passed:
  150476. 2
  150477. .ft P
  150478. .fi
  150479. .UNINDENT
  150480. .UNINDENT
  150481. .sp
  150482. New output:
  150483. .INDENT 0.0
  150484. .INDENT 3.5
  150485. .sp
  150486. .nf
  150487. .ft C
  150488. local:
  150489. |_
  150490. \-\-\-\-\-\-\-\-\-\-
  150491. ntp:
  150492. \-\-\-\-\-\-\-\-\-\-
  150493. ntp\-client\-installed:
  150494. \-\-\-\-\-\-\-\-\-\-
  150495. duration:
  150496. 1.0408
  150497. status:
  150498. Pass
  150499. ntp\-service\-status:
  150500. \-\-\-\-\-\-\-\-\-\-
  150501. duration:
  150502. 1.464
  150503. status:
  150504. Pass
  150505. |_
  150506. \-\-\-\-\-\-\-\-\-\-
  150507. TEST RESULTS:
  150508. \-\-\-\-\-\-\-\-\-\-
  150509. Execution Time:
  150510. 2.5048
  150511. Failed:
  150512. 0
  150513. Missing Tests:
  150514. 0
  150515. Passed:
  150516. 2
  150517. Skipped:
  150518. 0
  150519. .ft P
  150520. .fi
  150521. .UNINDENT
  150522. .UNINDENT
  150523. .SS Unless and onlyif Enhancements
  150524. .sp
  150525. The \fBunless\fP and \fBonlyif\fP requisites can now be operated with salt modules.
  150526. The dictionary must contain an argument \fBfun\fP which is the module that is
  150527. being run, and everything else must be passed in under the args key or will be
  150528. passed as individual kwargs to the module function.
  150529. .sp
  150530. \fBNOTE:\fP
  150531. .INDENT 0.0
  150532. .INDENT 3.5
  150533. Certain states have an \fBunless\fP/\fBonlyif\fP implementation that predates this feature, and may not work as expected:
  150534. .INDENT 0.0
  150535. .IP \(bu 2
  150536. states.git
  150537. .IP \(bu 2
  150538. states.cmd
  150539. .IP \(bu 2
  150540. states.macpackage
  150541. .IP \(bu 2
  150542. states.file
  150543. .IP \(bu 2
  150544. states.docker_container
  150545. .UNINDENT
  150546. .UNINDENT
  150547. .UNINDENT
  150548. .sp
  150549. Examples:
  150550. .INDENT 0.0
  150551. .INDENT 3.5
  150552. .sp
  150553. .nf
  150554. .ft C
  150555. check external ip address:
  150556. http.query:
  150557. \- name: https://icanhazip.com
  150558. \- status: 200
  150559. \- onlyif:
  150560. \- fun: file.file_exists
  150561. path: /usr/local/bin/whatever
  150562. .ft P
  150563. .fi
  150564. .UNINDENT
  150565. .UNINDENT
  150566. .sp
  150567. is equivalent to
  150568. .INDENT 0.0
  150569. .INDENT 3.5
  150570. .sp
  150571. .nf
  150572. .ft C
  150573. check another ip address:
  150574. http.query:
  150575. \- name: https://icanhazip.com
  150576. \- status: 200
  150577. \- onlyif:
  150578. \- test \-f /tmp/fnord.txt
  150579. .ft P
  150580. .fi
  150581. .UNINDENT
  150582. .UNINDENT
  150583. .sp
  150584. Another example:
  150585. .INDENT 0.0
  150586. .INDENT 3.5
  150587. .sp
  150588. .nf
  150589. .ft C
  150590. set mysql root password:
  150591. debconf.set:
  150592. \- name: mysql\-server\-5.7
  150593. \- data:
  150594. \(aqmysql\-server/root_password\(aq: {\(aqtype\(aq: \(aqpassword\(aq, \(aqvalue\(aq: {{pillar[\(aqmysql.pass\(aq]}} }
  150595. \- unless:
  150596. \- fun: pkg.version
  150597. args:
  150598. \- mysql\-server\-5.7
  150599. .ft P
  150600. .fi
  150601. .UNINDENT
  150602. .UNINDENT
  150603. .SS Keystore State and Module
  150604. .sp
  150605. A new \fBstate\fP and
  150606. \fBexecution module\fP for manaing Java
  150607. Keystore files is now included. It allows for adding/removing/listing
  150608. as well as managing keystore files.
  150609. .INDENT 0.0
  150610. .INDENT 3.5
  150611. .sp
  150612. .nf
  150613. .ft C
  150614. # salt\-call keystore.list /path/to/keystore.jks changeit
  150615. local:
  150616. |_
  150617. \-\-\-\-\-\-\-\-\-\-
  150618. alias:
  150619. hostname1
  150620. expired:
  150621. True
  150622. sha1:
  150623. CB:5E:DE:50:57:99:51:87:8E:2E:67:13:C5:3B:E9:38:EB:23:7E:40
  150624. type:
  150625. TrustedCertEntry
  150626. valid_start:
  150627. August 22 2012
  150628. valid_until:
  150629. August 21 2017
  150630. .ft P
  150631. .fi
  150632. .UNINDENT
  150633. .UNINDENT
  150634. .INDENT 0.0
  150635. .INDENT 3.5
  150636. .sp
  150637. .nf
  150638. .ft C
  150639. define_keystore:
  150640. keystore.managed:
  150641. \- name: /tmp/statestore.jks
  150642. \- passphrase: changeit
  150643. \- force_remove: True
  150644. \- entries:
  150645. \- alias: hostname1
  150646. certificate: /tmp/testcert.crt
  150647. \- alias: remotehost
  150648. certificate: /tmp/512.cert
  150649. private_key: /tmp/512.key
  150650. \- alias: stringhost
  150651. certificate: |
  150652. \-\-\-\-\-BEGIN CERTIFICATE\-\-\-\-\-
  150653. MIICEjCCAX
  150654. Hn+GmxZA
  150655. \-\-\-\-\-END CERTIFICATE\-\-\-\-\-
  150656. .ft P
  150657. .fi
  150658. .UNINDENT
  150659. .UNINDENT
  150660. .SS XML Module
  150661. .sp
  150662. A new state and execution module for editing XML files is now included. Currently it allows for
  150663. editing values from an xpath query, or editing XML IDs.
  150664. .INDENT 0.0
  150665. .INDENT 3.5
  150666. .sp
  150667. .nf
  150668. .ft C
  150669. # salt\-call xml.set_attribute /tmp/test.xml ".//actor[@id=\(aq3\(aq]" editedby "Jane Doe"
  150670. local:
  150671. True
  150672. # salt\-call xml.get_attribute /tmp/test.xml ".//actor[@id=\(aq3\(aq]"
  150673. local:
  150674. \-\-\-\-\-\-\-\-\-\-
  150675. editedby:
  150676. Jane Doe
  150677. id:
  150678. 3
  150679. # salt\-call xml.get_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]"
  150680. local:
  150681. Liam Neeson
  150682. # salt\-call xml.set_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]" "Patrick Stewart"
  150683. local:
  150684. True
  150685. # salt\-call xml.get_value /tmp/test.xml ".//actor[@id=\(aq2\(aq]"
  150686. local:
  150687. Patrick Stewart
  150688. .ft P
  150689. .fi
  150690. .UNINDENT
  150691. .UNINDENT
  150692. .INDENT 0.0
  150693. .INDENT 3.5
  150694. .sp
  150695. .nf
  150696. .ft C
  150697. ensure_value_true:
  150698. xml.value_present:
  150699. \- name: /tmp/test.xml
  150700. \- xpath: .//actor[@id=\(aq1\(aq]
  150701. \- value: William Shatner
  150702. .ft P
  150703. .fi
  150704. .UNINDENT
  150705. .UNINDENT
  150706. .SS LGPO Execution Module
  150707. .sp
  150708. Multiple fixes were made to the \fBwin_lgpo\fP to
  150709. expand support for additional policies and improve performance. Issues with
  150710. encoding and unsupported characters (smart\-quotes, em\-dash, etc) found in the
  150711. ADML files as well as whitespace in some policies have been addressed.
  150712. .sp
  150713. Speed enhancements include:
  150714. .INDENT 0.0
  150715. .IP \(bu 2
  150716. Caching the compiled xml from ADMX/ADML files in \fB__context__\fP
  150717. .IP \(bu 2
  150718. Lowercasing all keys before compiling XML to remove an expensive XPath lookup
  150719. .UNINDENT
  150720. .sp
  150721. Additional functionality:
  150722. .INDENT 0.0
  150723. .IP \(bu 2
  150724. Adds the \fBlgpo.get_policy\fP
  150725. function that allows you to get the current settings for a single policy.
  150726. .IP \(bu 2
  150727. Changes some policy names that were overly long
  150728. .UNINDENT
  150729. .SS LGPO State Module
  150730. .sp
  150731. Multiple changes were made to the \fBwin_lgpo\fP
  150732. state to improve performance.
  150733. .sp
  150734. It now uses the \fBlgpo.get_policy\fP
  150735. function instead of the \fBlgpo.get\fP to avoid
  150736. reloading all settings on the machine at the beginning and end of each state
  150737. run.
  150738. .sp
  150739. Supports the new shorter policy names but also attempts to resolve the older,
  150740. longer policy names.
  150741. .SS Win_network Salt Util
  150742. .sp
  150743. Now uses .NET libraries to obtain Interface information on Windows systems that
  150744. support it. Unsupported systems fall back to the more expensive WMI calls. This
  150745. is important as this data is gathered for grains and occurs each time a process
  150746. is forked.
  150747. .SS Jinja enhancements
  150748. .SS Troubleshooting Jinja map files
  150749. .sp
  150750. A new \fBexecution module\fP for \fBmap.jinja\fP troubleshooting
  150751. has been added.
  150752. .sp
  150753. Assuming the map is loaded in your formula SLS as follows:
  150754. .INDENT 0.0
  150755. .INDENT 3.5
  150756. .sp
  150757. .nf
  150758. .ft C
  150759. {% from "myformula/map.jinja" import myformula with context %}
  150760. .ft P
  150761. .fi
  150762. .UNINDENT
  150763. .UNINDENT
  150764. .sp
  150765. The following command can be used to load the map and check the results:
  150766. .INDENT 0.0
  150767. .INDENT 3.5
  150768. .sp
  150769. .nf
  150770. .ft C
  150771. salt myminion jinja.load_map myformula/map.jinja myformula
  150772. .ft P
  150773. .fi
  150774. .UNINDENT
  150775. .UNINDENT
  150776. .sp
  150777. The module can be also used to test \fBjson\fP and \fByaml\fP maps:
  150778. .INDENT 0.0
  150779. .INDENT 3.5
  150780. .sp
  150781. .nf
  150782. .ft C
  150783. salt myminion jinja.import_yaml myformula/defaults.yaml
  150784. salt myminion jinja.import_json myformula/defaults.json
  150785. .ft P
  150786. .fi
  150787. .UNINDENT
  150788. .UNINDENT
  150789. .SS json_query filter
  150790. .sp
  150791. A port of Ansible \fBjson_query\fP Jinja filter has been added. It allows
  150792. making queries against JSON data using \fI\%JMESPath language\fP\&. Could be used to
  150793. filter \fBpillar\fP data, \fByaml\fP maps, and also useful with \fBhttp_query\fP\&.
  150794. .sp
  150795. Depends on the \fI\%jmespath\fP Python module.
  150796. .SS Slot Syntax Updates
  150797. .sp
  150798. The slot syntax has been updated to support parsing dictionary responses and to append text.
  150799. .INDENT 0.0
  150800. .INDENT 3.5
  150801. .sp
  150802. .nf
  150803. .ft C
  150804. demo dict parsing and append:
  150805. test.configurable_test_state:
  150806. \- name: slot example
  150807. \- changes: False
  150808. \- comment: __slot__:salt:test.arg(shell="/bin/bash").kwargs.shell ~ /appended
  150809. .ft P
  150810. .fi
  150811. .UNINDENT
  150812. .UNINDENT
  150813. .INDENT 0.0
  150814. .INDENT 3.5
  150815. .sp
  150816. .nf
  150817. .ft C
  150818. local:
  150819. \-\-\-\-\-\-\-\-\-\-
  150820. ID: demo dict parsing and append
  150821. Function: test.configurable_test_state
  150822. Name: slot example
  150823. Result: True
  150824. Comment: /bin/bash/appended
  150825. Started: 09:59:58.623575
  150826. Duration: 1.229 ms
  150827. Changes:
  150828. .ft P
  150829. .fi
  150830. .UNINDENT
  150831. .UNINDENT
  150832. .sp
  150833. Also, slot parsing is now supported inside of nested state data structures (dicts, lists, unless/onlyif args):
  150834. .INDENT 0.0
  150835. .INDENT 3.5
  150836. .sp
  150837. .nf
  150838. .ft C
  150839. demo slot parsing for nested elements:
  150840. file.managed:
  150841. \- name: /tmp/slot.txt
  150842. \- source: salt://slot.j2
  150843. \- template: jinja
  150844. \- context:
  150845. # Slot inside of the nested context dictionary
  150846. variable: __slot__:salt:test.echo(a_value)
  150847. \- unless:
  150848. \- fun: file.search
  150849. args:
  150850. # Slot as unless argument
  150851. \- __slot__:salt:test.echo(/tmp/slot.txt)
  150852. \- "DO NOT OVERRIDE"
  150853. ignore_if_missing: True
  150854. .ft P
  150855. .fi
  150856. .UNINDENT
  150857. .UNINDENT
  150858. .SS State Changes
  150859. .INDENT 0.0
  150860. .IP \(bu 2
  150861. The \fBfile.symlink\fP state was
  150862. fixed to remove existing file system entries other than files,
  150863. directories and symbolic links properly.
  150864. .IP \(bu 2
  150865. The \fBonchanges\fP and \fBprereq\fP requisites now behave
  150866. properly in test mode, due to removing \fBpchanges\fP\&.
  150867. .IP \(bu 2
  150868. Added new \fBssh_auth.manage\fP state to
  150869. ensure only the specified ssh keys are present for the specified user.
  150870. .IP \(bu 2
  150871. Added new \fBsaltutil\fP state to use instead of
  150872. \fBmodule.run\fP to more easily handle change.
  150873. .UNINDENT
  150874. .SS Module Changes
  150875. .INDENT 0.0
  150876. .IP \(bu 2
  150877. Added new \fBboto_ssm\fP module to set and query
  150878. secrets in AWS SSM parameters.
  150879. .IP \(bu 2
  150880. The \fBfile.remove\fP module was
  150881. fixed to remove file system entries other than files, directories
  150882. and symbolic links properly.
  150883. .IP \(bu 2
  150884. The \fBdebian_ip\fP module used by the
  150885. \fBnetwork.managed\fP state has been
  150886. heavily refactored. The order that options appear in inet/inet6 blocks may
  150887. produce cosmetic changes. Many options without an \(aqipvX\(aq prefix will now be
  150888. shared between inet and inet6 blocks. The options \fBenable_ipv4\fP and
  150889. \fBenabled_ipv6\fP will now fully remove relevant inet/inet6 blocks. Overriding
  150890. options by prefixing them with \(aqipvX\(aq will now work with most options (i.e.
  150891. \fBdns\fP can be overridden by \fBipv4dns\fP or \fBipv6dns\fP). The \fBproto\fP option
  150892. is now required.
  150893. .UNINDENT
  150894. .SS Enhancements to Engines
  150895. .sp
  150896. Multiple copies of a particular Salt engine can be configured by including
  150897. the \fBengine_module\fP parameter in the engine configuration.
  150898. .INDENT 0.0
  150899. .INDENT 3.5
  150900. .sp
  150901. .nf
  150902. .ft C
  150903. engines:
  150904. \- production_logstash:
  150905. host: production_log.my_network.com
  150906. port: 5959
  150907. proto: tcp
  150908. engine_module: logstash
  150909. \- develop_logstash:
  150910. host: develop_log.my_network.com
  150911. port: 5959
  150912. proto: tcp
  150913. engine_module: logstash
  150914. .ft P
  150915. .fi
  150916. .UNINDENT
  150917. .UNINDENT
  150918. .INDENT 0.0
  150919. .IP \(bu 2
  150920. A new \fBfluent engine\fP has been
  150921. added to export Salt events to fluentd.
  150922. .INDENT 2.0
  150923. .INDENT 3.5
  150924. .sp
  150925. .nf
  150926. .ft C
  150927. engines:
  150928. \- fluent
  150929. host: localhost
  150930. port: 24224
  150931. .ft P
  150932. .fi
  150933. .UNINDENT
  150934. .UNINDENT
  150935. .INDENT 2.0
  150936. .INDENT 3.5
  150937. .sp
  150938. .nf
  150939. .ft C
  150940. <source>
  150941. @type forward
  150942. port 24224
  150943. </source>
  150944. <match saltstack.**>
  150945. @type file
  150946. path /var/log/td\-agent/saltstack
  150947. </match>
  150948. .ft P
  150949. .fi
  150950. .UNINDENT
  150951. .UNINDENT
  150952. .UNINDENT
  150953. .SS Enhancements to Beacons
  150954. .sp
  150955. Multiple copies of a particular Salt beacon can be configured by including
  150956. the \fBbeacon_module\fP parameter in the beacon configuration.
  150957. .INDENT 0.0
  150958. .INDENT 3.5
  150959. .INDENT 0.0
  150960. .INDENT 3.5
  150961. .sp
  150962. .nf
  150963. .ft C
  150964. beacons:
  150965. watch_importand_file:
  150966. \- files:
  150967. /etc/important_file: {}
  150968. \- beacon_module: inotify
  150969. watch_another_file:
  150970. \- files:
  150971. /etc/another_file: {}
  150972. \- beacon_module: inotify
  150973. .ft P
  150974. .fi
  150975. .UNINDENT
  150976. .UNINDENT
  150977. .UNINDENT
  150978. .UNINDENT
  150979. .SS Enhancements to chroot
  150980. .INDENT 0.0
  150981. .IP \(bu 2
  150982. New functions added to chroot \fBapply\fP,
  150983. \fBsls\fP, and
  150984. \fBhighstate\fP that allow executing
  150985. states in sls files or running apply/highstate inside of a chroot.
  150986. .UNINDENT
  150987. .SS Minion\-side ACL
  150988. .sp
  150989. Salt has had master\-side ACL for the salt mine for some time, where the master
  150990. configuration contained \fImine_get\fP that specified which minions could request
  150991. which functions. However, now you can specify which minions can access a function
  150992. in the salt mine function definition itself (or when calling \fBmine.send\fP).
  150993. This targeting works the same as the generic minion targeting as specified
  150994. here\&. The parameters used are \fBallow_tgt\fP and \fBallow_tgt_type\fP\&.
  150995. See also the documentation of the Salt Mine\&. Please
  150996. note that if you want to use this new feature both your minion and masters will need
  150997. to be on atleast version 3000.
  150998. .SS Deprecations
  150999. .SS Raet Deprecated
  151000. .INDENT 0.0
  151001. .IP \(bu 2
  151002. The Raet transport has been deprecated. Please use the supported
  151003. transport protocols tcp or zeromq.
  151004. .UNINDENT
  151005. .SS Module Deprecations
  151006. .INDENT 0.0
  151007. .IP \(bu 2
  151008. The hipchat module has been removed due to the service being retired.
  151009. \fBGoogle Chat\fP,
  151010. \fBMS Teams\fP, or
  151011. \fBSlack\fP may be suitable replacements.
  151012. .IP \(bu 2
  151013. The \fBdockermod\fP module has been
  151014. changed as follows:
  151015. .INDENT 2.0
  151016. .INDENT 3.5
  151017. .INDENT 0.0
  151018. .IP \(bu 2
  151019. Support for the \fBtags\fP kwarg has been removed from the
  151020. \fBdockermod.resolve_tag\fP
  151021. function.
  151022. .IP \(bu 2
  151023. Support for the \fBnetwork_id\fP kwarg has been removed from the
  151024. \fBdockermod.connect_container_to_network\fP
  151025. function. Please use \fBnet_id\fP instead.
  151026. .IP \(bu 2
  151027. Support for the \fBname\fP kwarg has been removed from the
  151028. \fBdockermod.sls_build\fP
  151029. function. Please use \fBrepository\fP and \fBtag\fP instead.
  151030. .IP \(bu 2
  151031. Support for the \fBimage\fP kwarg has been removed from the following
  151032. functions. In all cases, please use both the \fBrepository\fP and \fBtag\fP
  151033. options instead:
  151034. .INDENT 2.0
  151035. .INDENT 3.5
  151036. .INDENT 0.0
  151037. .IP \(bu 2
  151038. \fBdockermod.build\fP
  151039. .IP \(bu 2
  151040. \fBdockermod.commit\fP
  151041. .IP \(bu 2
  151042. \fBdockermod.import\fP
  151043. .IP \(bu 2
  151044. \fBdockermod.load\fP
  151045. .IP \(bu 2
  151046. \fBdockermod.tag\fP
  151047. .UNINDENT
  151048. .UNINDENT
  151049. .UNINDENT
  151050. .UNINDENT
  151051. .UNINDENT
  151052. .UNINDENT
  151053. .IP \(bu 2
  151054. The heat module has removed the \fBenviroment\fP kwarg from the
  151055. \fBheat.create_stack\fP and
  151056. \fBheat.update_stack\fP functions due
  151057. to a spelling error. Please use \fBenvironment\fP instead.
  151058. .IP \(bu 2
  151059. The \fBssh\fP execution module has been
  151060. changed as follows:
  151061. .INDENT 2.0
  151062. .INDENT 3.5
  151063. .INDENT 0.0
  151064. .IP \(bu 2
  151065. Support for the \fBssh.get_known_host\fP function has been removed. Please use the
  151066. \fBssh.get_known_host_entries\fP
  151067. function instead.
  151068. .IP \(bu 2
  151069. Support for the \fBssh.recv_known_host\fP function has been removed. Please use the
  151070. \fBssh.recv_known_host_entries\fP
  151071. function instead.
  151072. .UNINDENT
  151073. .UNINDENT
  151074. .UNINDENT
  151075. .IP \(bu 2
  151076. The :py:mod\(gafirewalld <salt.modules.firewalld>\(ga module has been changed as
  151077. follows:
  151078. .INDENT 2.0
  151079. .INDENT 3.5
  151080. .INDENT 0.0
  151081. .IP \(bu 2
  151082. The default setting for the \fBforce_masquerade\fP option in the
  151083. \fBfirewalld.add_port <salt.module.firewalld.add_port()\fP function has changed
  151084. from \fBTrue\fP to \fBFalse\fP\&.
  151085. .IP \(bu 2
  151086. Support for the \fBforce_masquerade\fP option in the
  151087. \fBfirewalld.add_port_fwd <salt.module.firewalld.add_port_fwd()\fP function has
  151088. been changed from \fBTrue\fP to \fBFalse\fP\&.
  151089. .UNINDENT
  151090. .UNINDENT
  151091. .UNINDENT
  151092. .UNINDENT
  151093. .SS State Deprecations
  151094. .INDENT 0.0
  151095. .IP \(bu 2
  151096. The hipchat state has been removed due to the service being retired.
  151097. \fBMS Teams\fP or
  151098. \fBSlack\fP may be suitable replacements.
  151099. .IP \(bu 2
  151100. The cmd state module has removed the \fBquiet\fP kwarg from the
  151101. \fBcmd.run\fP function. Please
  151102. set \fBoutput_loglevel\fP to \fBquiet\fP instead.
  151103. .IP \(bu 2
  151104. The heat state module has removed the \fBenviroment\fP kwarg from the
  151105. \fBheat.deployed\fP function due
  151106. to a spelling error. Please use \fBenvironment\fP instead.
  151107. .IP \(bu 2
  151108. The :py:mod\(gafirewalld <salt.states.firewalld>\(ga state has been changed as follows:
  151109. .INDENT 2.0
  151110. .INDENT 3.5
  151111. .INDENT 0.0
  151112. .IP \(bu 2
  151113. The default setting for the \fBprune_services\fP option in the
  151114. \fBfirewalld.present\fP function has changed
  151115. from \fBTrue\fP to \fBFalse\fP\&.
  151116. .UNINDENT
  151117. .UNINDENT
  151118. .UNINDENT
  151119. .UNINDENT
  151120. .SS Fileserver Deprecations
  151121. .INDENT 0.0
  151122. .IP \(bu 2
  151123. The hgfs fileserver had the following config options removed:
  151124. .INDENT 2.0
  151125. .INDENT 3.5
  151126. .INDENT 0.0
  151127. .IP \(bu 2
  151128. The \fBhgfs_env_whitelist\fP config option has been removed in favor of \fBhgfs_saltenv_whitelist\fP\&.
  151129. .IP \(bu 2
  151130. The \fBhgfs_env_blacklist\fP config option has been removed in favor of \fBhgfs_saltenv_blacklist\fP\&.
  151131. .UNINDENT
  151132. .UNINDENT
  151133. .UNINDENT
  151134. .IP \(bu 2
  151135. The svnfs fileserver had the following config options removed:
  151136. .INDENT 2.0
  151137. .INDENT 3.5
  151138. .INDENT 0.0
  151139. .IP \(bu 2
  151140. The \fBsvnfs_env_whitelist\fP config option has been removed in favor of \fBsvnfs_saltenv_whitelist\fP\&.
  151141. .IP \(bu 2
  151142. The \fBsvnfs_env_blacklist\fP config option has been removed in favor of \fBsvnfs_saltenv_blacklist\fP\&.
  151143. .UNINDENT
  151144. .UNINDENT
  151145. .UNINDENT
  151146. .IP \(bu 2
  151147. The gitfs fileserver had the following config options removed:
  151148. .INDENT 2.0
  151149. .INDENT 3.5
  151150. .INDENT 0.0
  151151. .IP \(bu 2
  151152. The \fBgitfs_env_whitelist\fP config option has been removed in favor of \fBgitfs_saltenv_whitelist\fP\&.
  151153. .IP \(bu 2
  151154. The \fBgitfs_env_blacklist\fP config option has been removed in favor of \fBgitfs_saltenv_blacklist\fP\&.
  151155. .UNINDENT
  151156. .UNINDENT
  151157. .UNINDENT
  151158. .UNINDENT
  151159. .SS Engine Removal
  151160. .INDENT 0.0
  151161. .IP \(bu 2
  151162. The hipchat engine has been removed due to the service being retired. For users migrating
  151163. to Slack, the \fBslack\fP engine may be a suitable replacement.
  151164. .UNINDENT
  151165. .SS Returner Removal
  151166. .INDENT 0.0
  151167. .IP \(bu 2
  151168. The hipchat returner has been removed due to the service being retired. For users migrating
  151169. to Slack, the \fBslack\fP returner may be a suitable
  151170. replacement.
  151171. .UNINDENT
  151172. .SS Grain Deprecations
  151173. .sp
  151174. For \fBsmartos\fP some grains have been deprecated. These grains have been removed.
  151175. .INDENT 0.0
  151176. .INDENT 3.5
  151177. .INDENT 0.0
  151178. .IP \(bu 2
  151179. The \fBhypervisor_uuid\fP has been replaced with \fBmdata:sdc:server_uuid\fP grain.
  151180. .IP \(bu 2
  151181. The \fBdatacenter\fP has been replaced with \fBmdata:sdc:datacenter_name\fP grain.
  151182. .UNINDENT
  151183. .UNINDENT
  151184. .UNINDENT
  151185. .SS Cloud Deprecations
  151186. .INDENT 0.0
  151187. .IP \(bu 2
  151188. The nova cloud driver has been removed in favor of the openstack cloud driver.
  151189. .UNINDENT
  151190. .SS Jinja Filter Deprecations
  151191. .INDENT 0.0
  151192. .IP \(bu 2
  151193. The following jinja filters are set to be removed in the Aluminium release:
  151194. .INDENT 2.0
  151195. .IP \(bu 2
  151196. \fBjson_decode_dict\fP in favor of \fBtojson\fP
  151197. .IP \(bu 2
  151198. \fBjson_decode_list\fP in favor of \fBtojson\fP
  151199. .UNINDENT
  151200. .UNINDENT
  151201. .SS Utils Deprecations
  151202. .INDENT 0.0
  151203. .IP \(bu 2
  151204. All of the functions in salt.utils.__init__.py have been removed. These
  151205. include:
  151206. .INDENT 2.0
  151207. .INDENT 3.5
  151208. .INDENT 0.0
  151209. .IP \(bu 2
  151210. \fIsalt.utils.option\fP
  151211. .IP \(bu 2
  151212. \fIsalt.utils.required_module_list\fP
  151213. .IP \(bu 2
  151214. \fIsalt.utils.required_modules_error\fP
  151215. .IP \(bu 2
  151216. \fIsalt.utils.get_accumulator_dir\fP\&. Please use \fBsalt.state.get_accumulator_dir()\fP instead.
  151217. .IP \(bu 2
  151218. \fIsalt.utils.fnmatch_multiple\fP\&. Please use \fBsalt.utils.itertools.fnmatch_multiple()\fP instead.
  151219. .IP \(bu 2
  151220. \fIsalt.utils.appendproctitle\fP\&. Please use \fBsalt.utils.process.appendproctitle()\fP instead.
  151221. .IP \(bu 2
  151222. \fIsalt.utils.daemonize\fP\&. Please use \fBsalt.utils.process.daemonize()\fP instead.
  151223. .IP \(bu 2
  151224. \fIsalt.utils.daemonize_if\fP\&. Please use \fBsalt.utils.process.daemonize_if()\fP instead.
  151225. .IP \(bu 2
  151226. \fIsalt.utils.reinit_crypto\fP\&. Please use \fBsalt.utils.crypt.reinit_crypto()\fP instead.
  151227. .IP \(bu 2
  151228. \fIsalt.utils.pem_finger\fP\&. Please use \fBsalt.utils.crypt.pem_finger()\fP instead.
  151229. .IP \(bu 2
  151230. \fIsalt.utils.to_bytes\fP\&. Please use \fBsalt.utils.stringutils.to_bytes()\fP instead.
  151231. .IP \(bu 2
  151232. \fIsalt.utils.to_str\fP\&. Please use \fBsalt.utils.stringutils.to_str()\fP instead.
  151233. .IP \(bu 2
  151234. \fIsalt.utils.to_unicode\fP\&. Please use \fBsalt.utils.stringutils.to_unicode()\fP instead.
  151235. .IP \(bu 2
  151236. \fIsalt.utils.str_to_num\fP\&. Please use \fBsalt.utils.stringutils.to_num()\fP instead.
  151237. .IP \(bu 2
  151238. \fIsalt.utils.is_quoted\fP\&. Please use \fBsalt.utils.stringutils.is_quoted()\fP instead.
  151239. .IP \(bu 2
  151240. \fIsalt.utils.dequote\fP\&. Please use \fBsalt.utils.stringutils.dequote()\fP instead.
  151241. .IP \(bu 2
  151242. \fIsalt.utils.is_hex\fP\&. Please use \fBsalt.utils.stringutils.is_hex()\fP instead.
  151243. .IP \(bu 2
  151244. \fIsalt.utils.is_bin_str\fP\&. Please use \fBsalt.utils.stringutils.is_binary()\fP instead.
  151245. .IP \(bu 2
  151246. \fIsalt.utils.rand_string\fP\&. Please use \fBsalt.utils.stringutils.random()\fP instead.
  151247. .IP \(bu 2
  151248. \fIsalt.utils.contains_whitespace\fP\&. Please use \fBsalt.utils.stringutils.contains_whitespace()\fP instead.
  151249. .IP \(bu 2
  151250. \fIsalt.utils.build_whitespace_split_regex\fP\&. Please use \fBsalt.utils.stringutils.build_whitespace_split_regex()\fP instead.
  151251. .IP \(bu 2
  151252. \fIsalt.utils.expr_match\fP\&. Please use \fBsalt.utils.stringutils.expr_match()\fP instead.
  151253. .IP \(bu 2
  151254. \fIsalt.utils.check_whitelist_blacklist\fP\&. Please use \fBsalt.utils.stringutils.check_whitelist_blacklist()\fP instead.
  151255. .IP \(bu 2
  151256. \fIsalt.utils.check_include_exclude\fP\&.Please use \fBsalt.utils.stringutils.check_include_exclude()\fP instead.
  151257. .IP \(bu 2
  151258. \fIsalt.utils.print_cli\fP\&.Please use \fBsalt.utils.stringutils.print_cli()\fP instead.
  151259. .IP \(bu 2
  151260. \fIsalt.utils.clean_kwargs\fP\&.Please use \fBsalt.utils.args.clean_kwargs()\fP instead.
  151261. .IP \(bu 2
  151262. \fIsalt.utils.invalid_kwargs\fP\&.Please use \fBsalt.utils.args.invalid_kwargs()\fP instead.
  151263. .IP \(bu 2
  151264. \fIsalt.utils.shlex_split\fP\&.Please use \fBsalt.utils.args.shlex_split()\fP instead.
  151265. .IP \(bu 2
  151266. \fIsalt.utils.arg_lookup\fP\&.Please use \fBsalt.utils.args.arg_lookup()\fP instead.
  151267. .IP \(bu 2
  151268. \fIsalt.utils.argspec_report\fP\&.Please use \fBsalt.utils.args.argspec_report()\fP instead.
  151269. .IP \(bu 2
  151270. \fIsalt.utils.split_input\fP\&.Please use \fBsalt.utils.args.split_input()\fP instead.
  151271. .IP \(bu 2
  151272. \fIsalt.utils.test_mode\fP\&.Please use \fBsalt.utils.args.test_mode()\fP instead.
  151273. .IP \(bu 2
  151274. \fIsalt.utils.format_call\fP\&.Please use \fBsalt.utils.args.format_call()\fP instead.
  151275. .IP \(bu 2
  151276. \fIsalt.utils.which\fP\&.Please use \fBsalt.utils.path.which()\fP instead.
  151277. .IP \(bu 2
  151278. \fIsalt.utils.which_bin\fP\&.Please use \fBsalt.utils.path.which_bin()\fP instead.
  151279. .IP \(bu 2
  151280. \fIsalt.utils.path_join\fP\&.Please use \fBsalt.utils.path.join()\fP instead.
  151281. .IP \(bu 2
  151282. \fIsalt.utils.check_or_die\fP\&.Please use \fBsalt.utils.path.check_or_die()\fP instead.
  151283. .IP \(bu 2
  151284. \fIsalt.utils.sanitize_win_path_string\fP\&.Please use \fBsalt.utils.path.sanitize_win_path()\fP instead.
  151285. .IP \(bu 2
  151286. \fIsalt.utils.rand_str\fP\&.Please use \fBsalt.utils.hashutils.random_hash()\fP instead.
  151287. .IP \(bu 2
  151288. \fIsalt.utils.get_hash\fP\&.Please use \fBsalt.utils.hashutils.get_hash()\fP instead.
  151289. .IP \(bu 2
  151290. \fIsalt.utils.is_windows\fP\&.Please use \fBsalt.utils.platform.is_windows()\fP instead.
  151291. .IP \(bu 2
  151292. \fIsalt.utils.is_proxy\fP\&.Please use \fBsalt.utils.platform.is_proxy()\fP instead.
  151293. .IP \(bu 2
  151294. \fIsalt.utils.is_linux\fP\&.Please use \fBsalt.utils.platform.is_linux()\fP instead.
  151295. .IP \(bu 2
  151296. \fIsalt.utils.is_darwin\fP\&.Please use \fBsalt.utils.platform.is_darwin()\fP instead.
  151297. .IP \(bu 2
  151298. \fIsalt.utils.is_sunos\fP\&.Please use \fBsalt.utils.platform.is_sunos()\fP instead.
  151299. .IP \(bu 2
  151300. \fIsalt.utils.is_smartos\fP\&.Please use \fBsalt.utils.platform.is_smartos()\fP instead.
  151301. .IP \(bu 2
  151302. \fIsalt.utils.is_smartos_globalzone\fP\&.Please use \fBsalt.utils.platform.is_smartos_globalzone()\fP instead.
  151303. .IP \(bu 2
  151304. \fIsalt.utils.is_smartos_zone\fP\&.Please use \fBsalt.utils.platform.is_smartos_zone()\fP instead.
  151305. .IP \(bu 2
  151306. \fIsalt.utils.is_freebsd\fP\&.Please use \fBsalt.utils.platform.is_freebsd()\fP instead.
  151307. .IP \(bu 2
  151308. \fIsalt.utils.is_netbsd\fP\&.Please use \fBsalt.utils.platform.is_netbsd()\fP instead.
  151309. .IP \(bu 2
  151310. \fIsalt.utils.is_openbsd\fP\&.Please use \fBsalt.utils.platform.is_openbsd()\fP instead.
  151311. .IP \(bu 2
  151312. \fIsalt.utils.is_aix\fP\&.Please use \fBsalt.utils.platform.is_aix()\fP instead.
  151313. .IP \(bu 2
  151314. \fIsalt.utils.safe_rm\fP\&.Please use \fBsalt.utils.files.safe_rm()\fP instead.
  151315. .IP \(bu 2
  151316. \fIsalt.utils.is_empty\fP\&.Please use \fBsalt.utils.files.is_empty()\fP instead.
  151317. .IP \(bu 2
  151318. \fIsalt.utils.fopen\fP\&.Please use \fBsalt.utils.files.fopen()\fP instead.
  151319. .IP \(bu 2
  151320. \fIsalt.utils.flopen\fP\&.Please use \fBsalt.utils.files.flopen()\fP instead.
  151321. .IP \(bu 2
  151322. \fIsalt.utils.fpopen\fP\&.Please use \fBsalt.utils.files.fpopen()\fP instead.
  151323. .IP \(bu 2
  151324. \fIsalt.utils.rm_rf\fP\&.Please use \fBsalt.utils.files.rm_rf()\fP instead.
  151325. .IP \(bu 2
  151326. \fIsalt.utils.mkstemp\fP\&.Please use \fBsalt.utils.files.mkstemp()\fP instead.
  151327. .IP \(bu 2
  151328. \fIsalt.utils.istextfile\fP\&.Please use \fBsalt.utils.files.is_text_file()\fP instead.
  151329. .IP \(bu 2
  151330. \fIsalt.utils.is_bin_file\fP\&.Please use \fBsalt.utils.files.is_binary()\fP instead.
  151331. .IP \(bu 2
  151332. \fIsalt.utils.list_files\fP\&.Please use \fBsalt.utils.files.list_files()\fP instead.
  151333. .IP \(bu 2
  151334. \fIsalt.utils.safe_walk\fP\&.Please use \fBsalt.utils.files.safe_walk()\fP instead.
  151335. .IP \(bu 2
  151336. \fIsalt.utils.st_mode_to_octal\fP\&.Please use \fBsalt.utils.files.st_mode_to_octal()\fP instead.
  151337. .IP \(bu 2
  151338. \fIsalt.utils.normalize_mode\fP\&.Please use \fBsalt.utils.files.normalize_mode()\fP instead.
  151339. .IP \(bu 2
  151340. \fIsalt.utils.human_size_to_bytes\fP\&.Please use \fBsalt.utils.files.human_size_to_bytes()\fP instead.
  151341. .IP \(bu 2
  151342. \fIsalt.utils.backup_minion\fP\&.Please use \fBsalt.utils.files.backup_minion()\fP instead.
  151343. .IP \(bu 2
  151344. \fIsalt.utils.str_version_to_evr\fP\&.Please use \fBsalt.utils.pkg.rpm.version_to_evr()\fP instead.
  151345. .IP \(bu 2
  151346. \fIsalt.utils.parse_docstring\fP\&.Please use \fBsalt.utils.doc.parse_docstring()\fP instead.
  151347. .IP \(bu 2
  151348. \fIsalt.utils.compare_versions\fP\&.Please use \fBsalt.utils.versions.compare()\fP instead.
  151349. .IP \(bu 2
  151350. \fIsalt.utils.version_cmp\fP\&.Please use \fBsalt.utils.versions.version_cmp()\fP instead.
  151351. .IP \(bu 2
  151352. \fIsalt.utils.warn_until\fP\&.Please use \fBsalt.utils.versions.warn_until()\fP instead.
  151353. .IP \(bu 2
  151354. \fIsalt.utils.kwargs_warn_until\fP\&.Please use \fBsalt.utils.versions.kwargs_warn_until()\fP instead.
  151355. .IP \(bu 2
  151356. \fIsalt.utils.get_color_theme\fP\&.Please use \fBsalt.utils.color.get_color_theme()\fP instead.
  151357. .IP \(bu 2
  151358. \fIsalt.utils.get_colors\fP\&.Please use \fBsalt.utils.color.get_colors()\fP instead.
  151359. .IP \(bu 2
  151360. \fIsalt.utils.gen_state_tag\fP\&.Please use \fBsalt.utils.state.gen_tag()\fP instead.
  151361. .IP \(bu 2
  151362. \fIsalt.utils.search_onfail_requisites\fP\&.Please use \fBsalt.utils.state.search_onfail_requisites()\fP instead.
  151363. .IP \(bu 2
  151364. \fIsalt.utils.check_onfail_requisites\fP\&.Please use \fBsalt.utils.state.check_onfail_requisites()\fP instead.
  151365. .IP \(bu 2
  151366. \fIsalt.utils.check_state_result\fP\&.Please use \fBsalt.utils.state.check_result()\fP instead.
  151367. .IP \(bu 2
  151368. \fIsalt.utils.get_user\fP\&.Please use \fBsalt.utils.user.get_user()\fP instead.
  151369. .IP \(bu 2
  151370. \fIsalt.utils.get_uid\fP\&.Please use \fBsalt.utils.user.get_uid()\fP instead.
  151371. .IP \(bu 2
  151372. \fIsalt.utils.get_specific_user\fP\&.Please use \fBsalt.utils.user.get_specific_user()\fP instead.
  151373. .IP \(bu 2
  151374. \fIsalt.utils.chugid\fP\&.Please use \fBsalt.utils.user.chugid()\fP instead.
  151375. .IP \(bu 2
  151376. \fIsalt.utils.chugid_and_umask\fP\&.Please use \fBsalt.utils.user.chugid_and_umask()\fP instead.
  151377. .IP \(bu 2
  151378. \fIsalt.utils.get_default_group\fP\&.Please use \fBsalt.utils.user.get_default_group()\fP instead.
  151379. .IP \(bu 2
  151380. \fIsalt.utils.get_group_list\fP\&.Please use \fBsalt.utils.user.get_group_list()\fP instead.
  151381. .IP \(bu 2
  151382. \fIsalt.utils.get_group_dict\fP\&.Please use \fBsalt.utils.user.get_group_dict()\fP instead.
  151383. .IP \(bu 2
  151384. \fIsalt.utils.get_gid_list\fP\&.Please use \fBsalt.utils.user.get_gid_list()\fP instead.
  151385. .IP \(bu 2
  151386. \fIsalt.utils.get_gid\fP\&.Please use \fBsalt.utils.user.get_gid()\fP instead.
  151387. .IP \(bu 2
  151388. \fIsalt.utils.enable_ctrl_logoff_handler\fP\&.Please use \fBsalt.utils.win_functions.enable_ctrl_logoff_handler()\fP instead.
  151389. .IP \(bu 2
  151390. \fIsalt.utils.traverse_dict\fP\&.Please use \fBsalt.utils.data.traverse_dict()\fP instead.
  151391. .IP \(bu 2
  151392. \fIsalt.utils.traverse_dict_and_list\fP\&.Please use \fBsalt.utils.data.traverse_dict_and_list()\fP instead.
  151393. .IP \(bu 2
  151394. \fIsalt.utils.filter_by\fP\&.Please use \fBsalt.utils.data.filter_by()\fP instead.
  151395. .IP \(bu 2
  151396. \fIsalt.utils.subdict_match\fP\&.Please use \fBsalt.utils.data.subdict_match()\fP instead.
  151397. .IP \(bu 2
  151398. \fIsalt.utils.substr_in_list\fP\&.Please use \fBsalt.utils.data.substr_in_list()\fP instead.
  151399. .IP \(bu 2
  151400. \fIsalt.utils.is_dictlist\fP\&.Please use \fBsalt.utils.data.is_dictlist()\fP instead.
  151401. .IP \(bu 2
  151402. \fIsalt.utils.repack_dictlist\fP\&.Please use \fBsalt.utils.data.repack_dictlist()\fP instead.
  151403. .IP \(bu 2
  151404. \fIsalt.utils.compare_dicts\fP\&.Please use \fBsalt.utils.data.compare_dicts()\fP instead.
  151405. .IP \(bu 2
  151406. \fIsalt.utils.compare_lists\fP\&.Please use \fBsalt.utils.data.compare_lists()\fP instead.
  151407. .IP \(bu 2
  151408. \fIsalt.utils.decode_dict\fP\&.Please use \fBsalt.utils.data.encode_dict()\fP instead.
  151409. .IP \(bu 2
  151410. \fIsalt.utils.decode_list\fP\&.Please use \fBsalt.utils.data.encode_list()\fP instead.
  151411. .IP \(bu 2
  151412. \fIsalt.utils.exactly_n\fP\&.Please use \fBsalt.utils.data.exactly_n()\fP instead.
  151413. .IP \(bu 2
  151414. \fIsalt.utils.exactly_one\fP\&.Please use \fBsalt.utils.data.exactly_one()\fP instead.
  151415. .IP \(bu 2
  151416. \fIsalt.utils.is_list\fP\&.Please use \fBsalt.utils.data.is_list()\fP instead.
  151417. .IP \(bu 2
  151418. \fIsalt.utils.is_iter\fP\&.Please use \fBsalt.utils.data.is_iter()\fP instead.
  151419. .IP \(bu 2
  151420. \fIsalt.utils.isorted\fP\&.Please use \fBsalt.utils.data.sorted_ignorecase()\fP instead.
  151421. .IP \(bu 2
  151422. \fIsalt.utils.is_true\fP\&.Please use \fBsalt.utils.data.is_true()\fP instead.
  151423. .IP \(bu 2
  151424. \fIsalt.utils.mysql_to_dict\fP\&.Please use \fBsalt.utils.data.mysql_to_dict()\fP instead.
  151425. .IP \(bu 2
  151426. \fIsalt.utils.simple_types_filter\fP\&.Please use \fBsalt.utils.data.simple_types_filter()\fP instead.
  151427. .IP \(bu 2
  151428. \fIsalt.utils.ip_bracket\fP\&.Please use \fBsalt.utils.zeromq.ip_bracket()\fP instead.
  151429. .IP \(bu 2
  151430. \fIsalt.utils.gen_mac\fP\&.Please use \fBsalt.utils.network.gen_mac()\fP instead.
  151431. .IP \(bu 2
  151432. \fIsalt.utils.mac_str_to_bytes\fP\&.Please use \fBsalt.utils.network.mac_str_to_bytes()\fP instead.
  151433. .IP \(bu 2
  151434. \fIsalt.utils.refresh_dns\fP\&.Please use \fBsalt.utils.network.refresh_dns()\fP instead.
  151435. .IP \(bu 2
  151436. \fIsalt.utils.dns_check\fP\&.Please use \fBsalt.utils.network.dns_check()\fP instead.
  151437. .IP \(bu 2
  151438. \fIsalt.utils.get_context\fP\&.Please use \fBsalt.utils.stringutils.get_context()\fP instead.
  151439. .IP \(bu 2
  151440. \fIsalt.utils.get_master_key\fP\&.Please use \fBsalt.utils.master.get_master_key()\fP instead.
  151441. .IP \(bu 2
  151442. \fIsalt.utils.get_values_of_matching_keys\fP\&.Please use \fBsalt.utils.master.get_values_of_matching_keys()\fP instead.
  151443. .IP \(bu 2
  151444. \fIsalt.utils.date_cast\fP\&.Please use \fBsalt.utils.dateutils.date_cast()\fP instead.
  151445. .IP \(bu 2
  151446. \fIsalt.utils.date_format\fP\&.Please use \fBsalt.utils.dateutils.strftime()\fP instead.
  151447. .IP \(bu 2
  151448. \fIsalt.utils.total_seconds\fP\&.Please use \fBsalt.utils.dateutils.total_seconds()\fP instead.
  151449. .IP \(bu 2
  151450. \fIsalt.utils.find_json\fP\&.Please use \fBsalt.utils.json.find_json()\fP instead.
  151451. .IP \(bu 2
  151452. \fIsalt.utils.import_json\fP\&.Please use \fBsalt.utils.json.import_json()\fP instead.
  151453. .IP \(bu 2
  151454. \fIsalt.utils.namespaced_function\fP\&.Please use \fBsalt.utils.functools.namespaced_function()\fP instead.
  151455. .IP \(bu 2
  151456. \fIsalt.utils.alias_function\fP\&.Please use \fBsalt.utils.functools.alias_function()\fP instead.
  151457. .IP \(bu 2
  151458. \fIsalt.utils.profile_func\fP\&.Please use \fBsalt.utils.profile.profile_func()\fP instead.
  151459. .IP \(bu 2
  151460. \fIsalt.utils.activate_profile\fP\&.Please use \fBsalt.utils.profile.activate_profile()\fP instead.
  151461. .IP \(bu 2
  151462. \fIsalt.utils.output_profile\fP\&.Please use \fBsalt.utils.profile.output_profile()\fP instead.
  151463. .UNINDENT
  151464. .UNINDENT
  151465. .UNINDENT
  151466. .UNINDENT
  151467. .SS salt.auth.Authorize Class Removal
  151468. .INDENT 0.0
  151469. .IP \(bu 2
  151470. The salt.auth.Authorize Class inside of the \fIsalt/auth/__init__.py\fP file has been removed and
  151471. the \fIany_auth\fP method inside of the file \fIsalt/utils/minions.py\fP\&. These method and classes were
  151472. not being used inside of the salt code base.
  151473. .UNINDENT
  151474. .SS Salt 3000.1 Release Notes
  151475. .sp
  151476. Version 3000.1 is a bugfix release for 3000\&.
  151477. .SS Statistics
  151478. .INDENT 0.0
  151479. .IP \(bu 2
  151480. Total Merges: \fB53\fP
  151481. .IP \(bu 2
  151482. Total Issue References: \fB15\fP
  151483. .IP \(bu 2
  151484. Total PR References: \fB54\fP
  151485. .IP \(bu 2
  151486. Contributors: \fB16\fP (\fI\%Ch3LL\fP, \fI\%UtahDave\fP, \fI\%bryceml\fP, \fI\%cmcmarrow\fP, \fI\%dwoz\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%lorengordon\fP, \fI\%mchugh19\fP, \fI\%oeuftete\fP, \fI\%raddessi\fP, \fI\%s0undt3ch\fP, \fI\%sjorge\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%waynew\fP)
  151487. .UNINDENT
  151488. .SS Changelog for v3000..v3000.1
  151489. .sp
  151490. \fIGenerated at: 2020\-03\-27 16:48:41 UTC\fP
  151491. .INDENT 0.0
  151492. .IP \(bu 2
  151493. \fBPR\fP \fI\%#56455\fP: (\fI\%s0undt3ch\fP) Fix gitpython windows requirement
  151494. @ \fI2020\-03\-27 16:31:57 UTC\fP
  151495. .INDENT 2.0
  151496. .IP \(bu 2
  151497. c5a700e01e Merge pull request \fI\%#56455\fP from s0undt3ch/hotfix/gitpython
  151498. .IP \(bu 2
  151499. d9791c393f Revert and fix windows requirements
  151500. .IP \(bu 2
  151501. 4b573c1c94 Revert "Fix win deps"
  151502. .UNINDENT
  151503. .IP \(bu 2
  151504. \fBPR\fP \fI\%#56446\fP: (\fI\%frogunder\fP) 3000.1 releasenotes updates
  151505. @ \fI2020\-03\-24 20:28:23 UTC\fP
  151506. .INDENT 2.0
  151507. .IP \(bu 2
  151508. 7ba36325d9 Merge pull request \fI\%#56446\fP from frogunder/releasenotes_3000.1_updates
  151509. .IP \(bu 2
  151510. 6b47f474af 3000.1 releasenotes updates
  151511. .UNINDENT
  151512. .IP \(bu 2
  151513. \fBPR\fP \fI\%#56435\fP: (\fI\%twangboy\fP) Update mac build scripts
  151514. @ \fI2020\-03\-24 19:47:40 UTC\fP
  151515. .INDENT 2.0
  151516. .IP \(bu 2
  151517. 4d2bc7004d Merge pull request \fI\%#56435\fP from twangboy/update_mac_build_scripts
  151518. .IP \(bu 2
  151519. 5d244b0aa6 Merge branch \(aqmaster\(aq into update_mac_build_scripts
  151520. .IP \(bu 2
  151521. 8fdf52a243 Update gitpython to 2.1.15
  151522. .IP \(bu 2
  151523. afcedc5232 Remove \-\-ignore\-installed
  151524. .IP \(bu 2
  151525. e6cc2a6192 Separate pyobjc requirements
  151526. .IP \(bu 2
  151527. 262ad2e98a Compile static requirements
  151528. .IP \(bu 2
  151529. 224f72d0f2 Update noxfile and .precommit
  151530. .IP \(bu 2
  151531. 68a36f2e37 Add req_ext.txt
  151532. .IP \(bu 2
  151533. 5851a5c2cd Roll back changes, fix dependencies
  151534. .UNINDENT
  151535. .IP \(bu 2
  151536. \fBISSUE\fP \fI\%#56433\fP: (\fI\%Ch3LL\fP) integration.states.test_pip_state.PipStateTest.test_pip_installed_specific_env failing on MAC (refs: \fI\%#56436\fP)
  151537. .IP \(bu 2
  151538. \fBPR\fP \fI\%#56436\fP: (\fI\%Ch3LL\fP) Fix \fI\%#56433\fP \- test_pip_installed_specific_env
  151539. @ \fI2020\-03\-24 19:47:20 UTC\fP
  151540. .INDENT 2.0
  151541. .IP \(bu 2
  151542. 8a8ae8ebe4 Merge pull request \fI\%#56436\fP from Ch3LL/pip_custom_pypi
  151543. .IP \(bu 2
  151544. 55655ff96c Merge branch \(aqmaster\(aq into pip_custom_pypi
  151545. .UNINDENT
  151546. .IP \(bu 2
  151547. \fBPR\fP \fI\%#56423\fP: (\fI\%Ch3LL\fP) Update changelog with package fixes
  151548. @ \fI2020\-03\-24 16:42:17 UTC\fP
  151549. .INDENT 2.0
  151550. .IP \(bu 2
  151551. 3a993d73a9 Merge pull request \fI\%#56423\fP from Ch3LL/changelog_again
  151552. .IP \(bu 2
  151553. 963c16e1a7 update pr number for mac build changes in changelog
  151554. .IP \(bu 2
  151555. 83e22b77c7 Update changelog with package fixes
  151556. .UNINDENT
  151557. .IP \(bu 2
  151558. \fBPR\fP \fI\%#56417\fP: (\fI\%twangboy\fP) Update mac build scripts
  151559. @ \fI2020\-03\-23 18:45:34 UTC\fP
  151560. .INDENT 2.0
  151561. .IP \(bu 2
  151562. d2a5bd8add Merge pull request \fI\%#56417\fP from twangboy/update_mac_build_scripts
  151563. .IP \(bu 2
  151564. 3bda8ddb82 Update noxfile and pre\-commit
  151565. .IP \(bu 2
  151566. de58c52d66 Merge branch \(aqupdate_mac_build_scripts\(aq of \fI\%https://github.com/twangboy/salt\fP into update_mac_build_scripts
  151567. .INDENT 2.0
  151568. .IP \(bu 2
  151569. e7f08d5349 Update static requirements
  151570. .IP \(bu 2
  151571. a53977de5b Merge branch \(aqupdate_mac_build_scripts\(aq of github.com:twangboy/salt into update_mac_build_scripts
  151572. .IP \(bu 2
  151573. 04e5cde9dd \fIpkg/osx/req_ext.txt\fP no longer exists
  151574. .IP \(bu 2
  151575. be4a272d07 Update static requirements
  151576. .UNINDENT
  151577. .IP \(bu 2
  151578. 02dfe4119c Add pyobjc in its own requirements file
  151579. .IP \(bu 2
  151580. 6b2ac2be64 Remove pyobjc, enforce pip install location
  151581. .IP \(bu 2
  151582. 30ca5d04ec Remove cryptography, it gets installed by pyopenssl
  151583. .IP \(bu 2
  151584. fda8abf4a8 Update static requirements
  151585. .IP \(bu 2
  151586. 732ecc83c1 Update pre\-commit config
  151587. .IP \(bu 2
  151588. 1fa9864e3d Don\(aqt set a version for pyopenssl
  151589. .IP \(bu 2
  151590. 461b198978 Update dependencies, remove req_ext.txt
  151591. .UNINDENT
  151592. .IP \(bu 2
  151593. \fBPR\fP \fI\%#56418\fP: (\fI\%Ch3LL\fP) Ensure version.py included before we install
  151594. @ \fI2020\-03\-23 18:27:46 UTC\fP
  151595. .INDENT 2.0
  151596. .IP \(bu 2
  151597. 74575a6993 Merge pull request \fI\%#56418\fP from Ch3LL/egg_version
  151598. .IP \(bu 2
  151599. 85d7c784ef Fix integration setup egg test
  151600. .IP \(bu 2
  151601. a8a22a4040 Ensure version.py included before we install
  151602. .IP \(bu 2
  151603. 86fe450c82 Fix \fI\%#56433\fP \- test_pip_installed_specific_env
  151604. .UNINDENT
  151605. .IP \(bu 2
  151606. \fBPR\fP \fI\%#56403\fP: (\fI\%frogunder\fP) update 3000.1 releasenotes
  151607. @ \fI2020\-03\-17 23:50:21 UTC\fP
  151608. .INDENT 2.0
  151609. .IP \(bu 2
  151610. 249367b462 Merge pull request \fI\%#56403\fP from frogunder/update_releasenotes_3000.1
  151611. .IP \(bu 2
  151612. 9d972c96e8 update 3000.1 releasenotes
  151613. .UNINDENT
  151614. .IP \(bu 2
  151615. \fBPR\fP \fI\%#56398\fP: (\fI\%Ch3LL\fP) Add additional PRs to 3000.1 changelog
  151616. @ \fI2020\-03\-17 18:08:15 UTC\fP
  151617. .INDENT 2.0
  151618. .IP \(bu 2
  151619. 0de5c1e136 Merge pull request \fI\%#56398\fP from Ch3LL/change_3000.1
  151620. .IP \(bu 2
  151621. 79c337b3db Add additional PRs to 3000.1 changelog
  151622. .UNINDENT
  151623. .IP \(bu 2
  151624. \fBPR\fP \fI\%#56376\fP: (\fI\%twangboy\fP) Fix win deps
  151625. @ \fI2020\-03\-17 17:02:46 UTC\fP
  151626. .INDENT 2.0
  151627. .IP \(bu 2
  151628. 5ac09decb9 Merge pull request \fI\%#56376\fP from twangboy/fix_win_deps
  151629. .IP \(bu 2
  151630. 6c83beeb9e Fix win deps
  151631. .UNINDENT
  151632. .IP \(bu 2
  151633. \fBPR\fP \fI\%#56378\fP: (\fI\%Ch3LL\fP) Include _version.py if building wheel
  151634. @ \fI2020\-03\-17 17:01:33 UTC\fP
  151635. .INDENT 2.0
  151636. .IP \(bu 2
  151637. e72a8d2cbc Merge pull request \fI\%#56378\fP from Ch3LL/wheel_version
  151638. .IP \(bu 2
  151639. 22cccd2107 Use virtualenv test helper that already exists and fix setup.py
  151640. .IP \(bu 2
  151641. 293b1fddf2 cleanup code
  151642. .IP \(bu 2
  151643. ddfb065bfb add bdist_wheel test
  151644. .IP \(bu 2
  151645. fceff0287c ensure name is included in new version
  151646. .IP \(bu 2
  151647. 0cbf6d3246 Ensure SaltStackVersion attributes in _version.py correct
  151648. .IP \(bu 2
  151649. 39cdf5382d Include _version.py if building wheel
  151650. .UNINDENT
  151651. .IP \(bu 2
  151652. \fBPR\fP \fI\%#56387\fP: (\fI\%bryceml\fP) update gpg key expiration date
  151653. @ \fI2020\-03\-17 16:59:30 UTC\fP
  151654. .INDENT 2.0
  151655. .IP \(bu 2
  151656. 6a9326fb70 Merge pull request \fI\%#56387\fP from bryceml/update_gpg_key
  151657. .IP \(bu 2
  151658. b74b26ccf3 update gpg key expiration date
  151659. .UNINDENT
  151660. .IP \(bu 2
  151661. \fBPR\fP \fI\%#55822\fP: (\fI\%cmcmarrow\fP) fix_Indefinitely_code
  151662. @ \fI2020\-03\-16 17:34:11 UTC\fP
  151663. .INDENT 2.0
  151664. .IP \(bu 2
  151665. fcee692c4a Merge pull request \fI\%#55822\fP from cmcmarrow/win_task_repeat
  151666. .IP \(bu 2
  151667. e257fb2804 Merge branch \(aqmaster\(aq into win_task_repeat
  151668. .IP \(bu 2
  151669. 07cada0f8f Merge branch \(aqmaster\(aq into win_task_repeat
  151670. .IP \(bu 2
  151671. 4b80301338 Merge branch \(aqmaster\(aq into win_task_repeat
  151672. .IP \(bu 2
  151673. 9df94569c4 Merge branch \(aqmaster\(aq into win_task_repeat
  151674. .IP \(bu 2
  151675. 22a2d0b9ec Merge branch \(aqmaster\(aq into win_task_repeat
  151676. .IP \(bu 2
  151677. dee9c134e7 Merge branch \(aqmaster\(aq into win_task_repeat
  151678. .IP \(bu 2
  151679. beaf05d514 Update test_win_task.py
  151680. .IP \(bu 2
  151681. 6e923f75fc Merge branch \(aqmaster\(aq into win_task_repeat
  151682. .IP \(bu 2
  151683. 5839da81ee add test
  151684. .IP \(bu 2
  151685. 2aa6338ed0 fix Indefinitely code
  151686. .UNINDENT
  151687. .IP \(bu 2
  151688. \fBPR\fP \fI\%#56373\fP: (\fI\%frogunder\fP) update 3000.1 releasenotes
  151689. @ \fI2020\-03\-13 18:58:43 UTC\fP
  151690. .INDENT 2.0
  151691. .IP \(bu 2
  151692. c11ef89200 Merge pull request \fI\%#56373\fP from frogunder/releasenotes_3000.1
  151693. .IP \(bu 2
  151694. a5ca8b5277 Fix doc test errors
  151695. .IP \(bu 2
  151696. 47e483187e update 3000.1 releasenotes
  151697. .UNINDENT
  151698. .IP \(bu 2
  151699. \fBPR\fP \fI\%#56365\fP: (\fI\%Ch3LL\fP) Update 3000.1 changelog
  151700. @ \fI2020\-03\-13 17:21:02 UTC\fP
  151701. .INDENT 2.0
  151702. .IP \(bu 2
  151703. 62857a9f0e Merge pull request \fI\%#56365\fP from Ch3LL/changelog_3000.1
  151704. .IP \(bu 2
  151705. 851d7d8fc7 Update 3000.1 changelog
  151706. .UNINDENT
  151707. .IP \(bu 2
  151708. \fBPR\fP \fI\%#56360\fP: (\fI\%Ch3LL\fP) Use virtualenv 20.0.10 for macosx tests
  151709. @ \fI2020\-03\-13 16:39:57 UTC\fP
  151710. .INDENT 2.0
  151711. .IP \(bu 2
  151712. a660e96fb2 Merge pull request \fI\%#56360\fP from Ch3LL/mac_virtual
  151713. .IP \(bu 2
  151714. abda125086 Update static requirements files
  151715. .IP \(bu 2
  151716. dca3390c0c skip zcbuildout state test when virtualenv 20.0.0
  151717. .IP \(bu 2
  151718. fdeae1f0e1 Use virtualenv 20.0.10 for macosx tests
  151719. .UNINDENT
  151720. .IP \(bu 2
  151721. \fBISSUE\fP \fI\%#56324\fP: (\fI\%kiemlicz\fP) Cannot use Saltcheck module (refs: \fI\%#56327\fP)
  151722. .IP \(bu 2
  151723. \fBPR\fP \fI\%#56327\fP: (\fI\%mchugh19\fP) keep cache_copied_files variable a list
  151724. @ \fI2020\-03\-13 16:39:32 UTC\fP
  151725. .INDENT 2.0
  151726. .IP \(bu 2
  151727. d8fc07274c Merge pull request \fI\%#56327\fP from mchugh19/56324
  151728. .IP \(bu 2
  151729. e1e2df2b1d Merge branch \(aqmaster\(aq into 56324
  151730. .IP \(bu 2
  151731. 6d7572706d use includes for saltcheck integration test
  151732. .IP \(bu 2
  151733. 5b7073b01d keep cache_copied_files variable a list
  151734. .UNINDENT
  151735. .IP \(bu 2
  151736. \fBPR\fP \fI\%#56023\fP: (\fI\%cmcmarrow\fP) add fix for bin_env
  151737. @ \fI2020\-03\-13 16:39:09 UTC\fP
  151738. .INDENT 2.0
  151739. .IP \(bu 2
  151740. 2d31d61ab9 Merge pull request \fI\%#56023\fP from cmcmarrow/binary_fix_pip_bin_env
  151741. .IP \(bu 2
  151742. f780fd013e Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  151743. .IP \(bu 2
  151744. d642c7c270 Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  151745. .IP \(bu 2
  151746. 82b39d26f8 Merge branch \(aqbinary_fix_pip_bin_env\(aq of \fI\%https://github.com/cmcmarrow/salt\fP into binary_fix_pip_bin_env
  151747. .INDENT 2.0
  151748. .IP \(bu 2
  151749. a5fa22528a Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  151750. .UNINDENT
  151751. .IP \(bu 2
  151752. 10ca0fa5d6 fix space
  151753. .IP \(bu 2
  151754. 22fff6c180 fix _pip_bin_env
  151755. .IP \(bu 2
  151756. d5425e6630 Merge branch \(aqmaster\(aq into binary_fix_pip_bin_env
  151757. .IP \(bu 2
  151758. ceda3fde00 add full support for when missing kwargs or args
  151759. .IP \(bu 2
  151760. cf4ab215b5 add fix for bin_env
  151761. .UNINDENT
  151762. .IP \(bu 2
  151763. \fBPR\fP \fI\%#56310\fP: (\fI\%twangboy\fP) Only process ADMX files when loading policies
  151764. @ \fI2020\-03\-11 23:47:50 UTC\fP
  151765. .INDENT 2.0
  151766. .IP \(bu 2
  151767. 19bb6aae0c Merge pull request \fI\%#56310\fP from twangboy/fix_lgpo_admx
  151768. .IP \(bu 2
  151769. 4bc5b05586 Fix some lint
  151770. .IP \(bu 2
  151771. ce282f9754 Mark destructive test
  151772. .IP \(bu 2
  151773. 8af09c31ca Add test case
  151774. .IP \(bu 2
  151775. 547d35cf4c Only process ADMX files when loading policies
  151776. .UNINDENT
  151777. .IP \(bu 2
  151778. \fBPR\fP \fI\%#56272\fP: (\fI\%twangboy\fP) Properly resolve the policy name
  151779. @ \fI2020\-03\-11 22:11:02 UTC\fP
  151780. .INDENT 2.0
  151781. .IP \(bu 2
  151782. 2d78931eaf Merge pull request \fI\%#56272\fP from twangboy/fix_lgpo_names
  151783. .IP \(bu 2
  151784. 233ed12472 Add comments to helper function
  151785. .IP \(bu 2
  151786. a7369e41d7 Remove redundent code... some more
  151787. .IP \(bu 2
  151788. 1db3052b94 Consolidate duplicate code
  151789. .IP \(bu 2
  151790. b25b56299d Fix failing PY2 tests
  151791. .IP \(bu 2
  151792. 36a24ac28f Only load adml data once
  151793. .IP \(bu 2
  151794. bc13be6850 Add some tests
  151795. .IP \(bu 2
  151796. 2e9be6e461 Properly resolve the policy name
  151797. .UNINDENT
  151798. .IP \(bu 2
  151799. \fBPR\fP \fI\%#56358\fP: (\fI\%s0undt3ch\fP) Fix version instantiation when minor is an empty string
  151800. @ \fI2020\-03\-11 22:10:04 UTC\fP
  151801. .INDENT 2.0
  151802. .IP \(bu 2
  151803. c6c6e2e3d9 Merge pull request \fI\%#56358\fP from s0undt3ch/hotfix/version\-parsing
  151804. .IP \(bu 2
  151805. cb22e78502 Fix version instantiation when minor is an empty string
  151806. .UNINDENT
  151807. .IP \(bu 2
  151808. \fBPR\fP \fI\%#56160\fP: (\fI\%twangboy\fP) Fix issue with existing reg_dword entries
  151809. @ \fI2020\-03\-11 22:09:21 UTC\fP
  151810. .INDENT 2.0
  151811. .IP \(bu 2
  151812. b33047c574 Merge pull request \fI\%#56160\fP from twangboy/fix_reg_dword
  151813. .IP \(bu 2
  151814. 80650c2a8c Make test more explicit
  151815. .IP \(bu 2
  151816. 67dd1c18c7 Fix issue with existing reg_dword entries
  151817. .UNINDENT
  151818. .IP \(bu 2
  151819. \fBPR\fP \fI\%#56337\fP: (\fI\%twangboy\fP) Handle Adapter Type 53 and Undefined Types
  151820. @ \fI2020\-03\-11 22:08:19 UTC\fP
  151821. .INDENT 2.0
  151822. .IP \(bu 2
  151823. 8f23706871 Merge pull request \fI\%#56337\fP from twangboy/fix_win_network_type
  151824. .IP \(bu 2
  151825. 18a31a0b22 Merge branch \(aqmaster\(aq into fix_win_network_type
  151826. .IP \(bu 2
  151827. d92914ad91 Merge branch \(aqmaster\(aq into fix_win_network_type
  151828. .IP \(bu 2
  151829. 224629bdeb Handle Adapter Type 53 and Undefined Types
  151830. .UNINDENT
  151831. .IP \(bu 2
  151832. \fBPR\fP \fI\%#56060\fP: (\fI\%twangboy\fP) Fix regex string for **Del and **DelVals
  151833. @ \fI2020\-03\-11 22:05:43 UTC\fP
  151834. .INDENT 2.0
  151835. .IP \(bu 2
  151836. e551ff6a31 Merge pull request \fI\%#56060\fP from twangboy/fix_lgpo_regex
  151837. .IP \(bu 2
  151838. ca260ef582 Use byte\-strings in the test
  151839. .IP \(bu 2
  151840. 7c81874a5b Add some tests
  151841. .IP \(bu 2
  151842. 944b022f33 Fix regex string for **Del and **DelVals
  151843. .UNINDENT
  151844. .IP \(bu 2
  151845. \fBISSUE\fP \fI\%#56131\fP: (\fI\%thusoy\fP) Salt v3000 crashes with unless clause if pip is missing (refs: \fI\%#56215\fP)
  151846. .IP \(bu 2
  151847. \fBPR\fP \fI\%#56215\fP: (\fI\%dwoz\fP) Fix for unless requisite when pip is not installed
  151848. @ \fI2020\-03\-11 22:04:30 UTC\fP
  151849. .INDENT 2.0
  151850. .IP \(bu 2
  151851. c9bc9431c1 Merge pull request \fI\%#56215\fP from dwoz/issue\-56131
  151852. .IP \(bu 2
  151853. 5dd8f8eabe Fix linter
  151854. .IP \(bu 2
  151855. 7492c2f7c7 Remove crufty prints from test
  151856. .IP \(bu 2
  151857. 8ceaa6e6f3 Only remove pip relasted modules
  151858. .IP \(bu 2
  151859. 69b21e5e68 Add regression test for issue 56131
  151860. .IP \(bu 2
  151861. 9d23f55adc Fix for unless requisite when pip is not installed
  151862. .UNINDENT
  151863. .IP \(bu 2
  151864. \fBPR\fP \fI\%#56339\fP: (\fI\%twangboy\fP) Fix win_dns_client when used with scheduler
  151865. @ \fI2020\-03\-11 22:01:32 UTC\fP
  151866. .INDENT 2.0
  151867. .IP \(bu 2
  151868. 74b67ea741 Merge pull request \fI\%#56339\fP from twangboy/fix_win_dns_client
  151869. .IP \(bu 2
  151870. d6a4fbe85d Fix bad test (lint)
  151871. .IP \(bu 2
  151872. 47bd67373f Add some tests
  151873. .IP \(bu 2
  151874. 995975649a Add missing import, improve docs
  151875. .UNINDENT
  151876. .IP \(bu 2
  151877. \fBISSUE\fP \fI\%#56288\fP: (\fI\%lorengordon\fP) win_lgpo: \fIlgpo.set\fP with secedit policy always generates \fIKeyError: u\(aqlgpo.secedit_data\(aq\fP (refs: \fI\%#56290\fP)
  151878. .IP \(bu 2
  151879. \fBPR\fP \fI\%#56290\fP: (\fI\%lorengordon\fP) Ensures popping lgpo.secedit_data does not throw KeyError
  151880. @ \fI2020\-03\-11 17:27:04 UTC\fP
  151881. .INDENT 2.0
  151882. .IP \(bu 2
  151883. 7701e8762d Merge pull request \fI\%#56290\fP from lorengordon/pop\-secdata
  151884. .IP \(bu 2
  151885. 62453bb6ce Merge branch \(aqmaster\(aq into pop\-secdata
  151886. .IP \(bu 2
  151887. 95d5cea9ff Merge branch \(aqmaster\(aq into pop\-secdata
  151888. .IP \(bu 2
  151889. 2979158a8b Tests the \fIif _secedits:\fP logic path in \fIlgpo.set_\fP
  151890. .IP \(bu 2
  151891. d1f776178c Ensures popping lgpo.secedit_data does not throw KeyError
  151892. .UNINDENT
  151893. .IP \(bu 2
  151894. \fBISSUE\fP \fI\%#56119\fP: (\fI\%finalduty\fP) Release notes for v3000 do not mention changes to \fIslspath\fP variable (refs: \fI\%#56341\fP)
  151895. .IP \(bu 2
  151896. \fBPR\fP \fI\%#56341\fP: (\fI\%dwoz\fP) Revert "Don\(aqt remove one directory level from slspath"
  151897. @ \fI2020\-03\-11 17:03:33 UTC\fP
  151898. .INDENT 2.0
  151899. .IP \(bu 2
  151900. 84c60708cd Merge pull request \fI\%#56341\fP from dwoz/issue\-56119
  151901. .IP \(bu 2
  151902. afe6e84c36 Clarify slspath documentation
  151903. .IP \(bu 2
  151904. 6dfc098fd1 Add debug for test asserts
  151905. .IP \(bu 2
  151906. 9fa9dab8b2 Fix linter warts
  151907. .IP \(bu 2
  151908. fd702bdd44 Add regression test for \fI\%#56119\fP
  151909. .IP \(bu 2
  151910. 3d3b673cec Revert "Don\(aqt remove one directory level from slspath"
  151911. .UNINDENT
  151912. .IP \(bu 2
  151913. \fBPR\fP \fI\%#56185\fP: (\fI\%terminalmage\fP) Fix regression in service states with reload argument
  151914. @ \fI2020\-03\-11 16:45:58 UTC\fP
  151915. .INDENT 2.0
  151916. .IP \(bu 2
  151917. 4f9813a49c Merge pull request \fI\%#56185\fP from terminalmage/issue56167
  151918. .IP \(bu 2
  151919. 65b3f4c9a0 Merge branch \(aqmaster\(aq into issue56167
  151920. .IP \(bu 2
  151921. 7b41a00b4f Merge branch \(aqmaster\(aq into issue56167
  151922. .IP \(bu 2
  151923. 8f7034d946 Merge branch \(aqmaster\(aq into issue56167
  151924. .IP \(bu 2
  151925. e9fbb634e1 Skip on OSX for now
  151926. .IP \(bu 2
  151927. 5996280241 Add __opts__ and __grains__ just in case
  151928. .IP \(bu 2
  151929. af3e841d08 Fix failing test
  151930. .IP \(bu 2
  151931. 586f21aedc Add functional test
  151932. .IP \(bu 2
  151933. 1afb9c10f0 Fix regression in service states with reload argument
  151934. .UNINDENT
  151935. .IP \(bu 2
  151936. \fBPR\fP \fI\%#56068\fP: (\fI\%s0undt3ch\fP) Update the bootstrap script to latest version, v2020.02.24
  151937. @ \fI2020\-03\-11 16:44:23 UTC\fP
  151938. .INDENT 2.0
  151939. .IP \(bu 2
  151940. 74f8b2a926 Merge pull request \fI\%#56068\fP from s0undt3ch/hotfix/update\-bootstrap
  151941. .IP \(bu 2
  151942. ce83b190ed Merge branch \(aqmaster\(aq into hotfix/update\-bootstrap
  151943. .IP \(bu 2
  151944. ccd231d82d Merge branch \(aqmaster\(aq into hotfix/update\-bootstrap
  151945. .IP \(bu 2
  151946. 88a52f88ff Update the bootstrap script to latest version, v2020.02.24
  151947. .IP \(bu 2
  151948. 012fb5bc4b Update the bootstrap script to latest version, v2020.02.04
  151949. .UNINDENT
  151950. .IP \(bu 2
  151951. \fBPR\fP \fI\%#56321\fP: (\fI\%oeuftete\fP) Tidy up formatting in boto_secgroup docs
  151952. @ \fI2020\-03\-11 08:14:48 UTC\fP
  151953. .INDENT 2.0
  151954. .IP \(bu 2
  151955. 154257e2e9 Merge pull request \fI\%#56321\fP from oeuftete/tidy\-boto\-secgroup\-docs
  151956. .IP \(bu 2
  151957. 616f11b33e Merge branch \(aqmaster\(aq into tidy\-boto\-secgroup\-docs
  151958. .IP \(bu 2
  151959. 412bb4d62d Tidy up formatting in boto_secgroup docs
  151960. .UNINDENT
  151961. .IP \(bu 2
  151962. \fBPR\fP \fI\%#56336\fP: (\fI\%Ch3LL\fP) Fix test_issue_2594_non_invalidated_cache test (update zope.interface)
  151963. @ \fI2020\-03\-11 00:08:43 UTC\fP
  151964. .INDENT 2.0
  151965. .IP \(bu 2
  151966. 11d33e3d90 Merge pull request \fI\%#56336\fP from Ch3LL/fix_56330
  151967. .IP \(bu 2
  151968. bbf37e090b Fix test_issue_2594_non_invalidated_cache test (update zope.interface)
  151969. .UNINDENT
  151970. .IP \(bu 2
  151971. \fBPR\fP \fI\%#56346\fP: (\fI\%frogunder\fP) Update man pages to 3000.1
  151972. @ \fI2020\-03\-11 00:07:31 UTC\fP
  151973. .INDENT 2.0
  151974. .IP \(bu 2
  151975. a640bd30fc Merge pull request \fI\%#56346\fP from frogunder/man_pages_3000_1
  151976. .IP \(bu 2
  151977. 6d7c1b6482 Update man pages to 3000.1
  151978. .UNINDENT
  151979. .IP \(bu 2
  151980. \fBPR\fP \fI\%#56099\fP: (\fI\%s0undt3ch\fP) Fix Windows and macOS requirements handling in setup.py
  151981. @ \fI2020\-03\-11 00:04:37 UTC\fP
  151982. .INDENT 2.0
  151983. .IP \(bu 2
  151984. 2f783d247e Merge pull request \fI\%#56099\fP from s0undt3ch/hotfix/requirements
  151985. .IP \(bu 2
  151986. c19f4a3fae Merge branch \(aqmaster\(aq into hotfix/requirements
  151987. .IP \(bu 2
  151988. 1e7bc8fc8f Also take into account macOS requirements
  151989. .IP \(bu 2
  151990. 7eef14952c Also include req_win.txt
  151991. .UNINDENT
  151992. .IP \(bu 2
  151993. \fBPR\fP \fI\%#56218\fP: (\fI\%raddessi\fP) Changed StrictVersion checking of setuptools to LooseVersion
  151994. @ \fI2020\-03\-10 23:59:54 UTC\fP
  151995. .INDENT 2.0
  151996. .IP \(bu 2
  151997. 7c4d879073 Merge pull request \fI\%#56218\fP from raddessi/master.v3000\-conda
  151998. .IP \(bu 2
  151999. 44556f6d57 Merge branch \(aqmaster\(aq into master.v3000\-conda
  152000. .IP \(bu 2
  152001. 566c03b786 Merge branch \(aqmaster\(aq into master.v3000\-conda
  152002. .IP \(bu 2
  152003. 82773a9799 Removed now\-unused StrictVersion import from setup.py
  152004. .IP \(bu 2
  152005. 31bb0f7cd1 Changed StrictVersion checking of setuptools to LooseVersion
  152006. .UNINDENT
  152007. .IP \(bu 2
  152008. \fBPR\fP \fI\%#56128\fP: (\fI\%waynew\fP) Update CHANGELOG with release date and unreleased.
  152009. @ \fI2020\-03\-10 23:58:15 UTC\fP
  152010. .INDENT 2.0
  152011. .IP \(bu 2
  152012. acbd3556e5 Merge pull request \fI\%#56128\fP from waynew/master
  152013. .IP \(bu 2
  152014. e3216db3e5 Update CHANGELOG with release date and unreleased.
  152015. .UNINDENT
  152016. .IP \(bu 2
  152017. \fBPR\fP \fI\%#55937\fP: (\fI\%twangboy\fP) Update windows build scripts
  152018. @ \fI2020\-03\-10 23:55:55 UTC\fP
  152019. .INDENT 2.0
  152020. .IP \(bu 2
  152021. 12140545ab Merge pull request \fI\%#55937\fP from twangboy/update_deps
  152022. .IP \(bu 2
  152023. f00a504a48 Add back the pylauncher
  152024. .IP \(bu 2
  152025. 30b9c32356 Revert changes to req and req_win
  152026. .IP \(bu 2
  152027. 98dc0e970c Fix some warts in the build_env scripts
  152028. .IP \(bu 2
  152029. 8404141f65 Update dependencies
  152030. .UNINDENT
  152031. .IP \(bu 2
  152032. \fBPR\fP \fI\%#55906\fP: (\fI\%sjorge\fP) smartos.vm_present could not handle nics with vrrp_vrid property
  152033. @ \fI2020\-03\-10 23:54:44 UTC\fP
  152034. .INDENT 2.0
  152035. .IP \(bu 2
  152036. 485a47cdf1 Merge pull request \fI\%#55906\fP from sjorge/smartos_vrrp
  152037. .IP \(bu 2
  152038. 5bd7dd009a Merge branch \(aqmaster\(aq into smartos_vrrp
  152039. .IP \(bu 2
  152040. f77719c179 smartos state should handle vrrp config
  152041. .UNINDENT
  152042. .IP \(bu 2
  152043. \fBISSUE\fP \fI\%#55185\fP: (\fI\%sjorge\fP) salt.modules.pdbedit doesn\(aqt work on samba older than 4.8 (refs: \fI\%#55894\fP)
  152044. .IP \(bu 2
  152045. \fBPR\fP \fI\%#55894\fP: (\fI\%sjorge\fP) \fI\%#55185\fP pdbedit module should check for version 4.8.x or newer
  152046. @ \fI2020\-03\-10 23:54:21 UTC\fP
  152047. .INDENT 2.0
  152048. .IP \(bu 2
  152049. 1fa8555360 Merge pull request \fI\%#55894\fP from sjorge/pdbedit_55185
  152050. .IP \(bu 2
  152051. 9dc7b71122 Merge branch \(aqmaster\(aq into pdbedit_55185
  152052. .UNINDENT
  152053. .IP \(bu 2
  152054. \fBISSUE\fP \fI\%#56195\fP: (\fI\%lorengordon\fP) Windows: Using inline powershell in args with \fIcmd.script\fP and \fIshell: powershell\fP (refs: \fI\%#56197\fP)
  152055. .IP \(bu 2
  152056. \fBPR\fP \fI\%#56197\fP: (\fI\%lorengordon\fP) Allows use of inline powershell for cmd.script args
  152057. @ \fI2020\-03\-10 23:52:47 UTC\fP
  152058. .INDENT 2.0
  152059. .IP \(bu 2
  152060. 3e57d58db2 Merge pull request \fI\%#56197\fP from lorengordon/file\-or\-no\-file
  152061. .IP \(bu 2
  152062. fcd1699f5e Allows use of inline powershell for cmd.script args
  152063. .IP \(bu 2
  152064. be2e67c0a0 Tests that powershell processes inline powershell in args
  152065. .UNINDENT
  152066. .IP \(bu 2
  152067. \fBISSUE\fP \fI\%#53152\fP: (\fI\%jbeaird\fP) daily highstate fails after 2019.2 upgrade (refs: \fI\%#56149\fP)
  152068. .IP \(bu 2
  152069. \fBPR\fP \fI\%#56149\fP: (\fI\%garethgreenaway\fP) [master] Fix to scheduler for use of when and splay
  152070. @ \fI2020\-03\-10 23:52:16 UTC\fP
  152071. .INDENT 2.0
  152072. .IP \(bu 2
  152073. 547c73e4cc Merge pull request \fI\%#56149\fP from garethgreenaway/53152_fix_schedule_when_splay
  152074. .IP \(bu 2
  152075. 8f068f6f9b Fix for when using a combination of when and splay. Previously comparing the wrong value when determining if the job should be run and next_fire_time updated. This resulted in multiple job runs when \fIwhen\fP and \fIsplay\fP were used together. Code updated and test updated to ensure only one run at the specific time. Skip eval tests is dateutil.parser is unavailable.
  152076. .UNINDENT
  152077. .IP \(bu 2
  152078. \fBPR\fP \fI\%#56345\fP: (\fI\%s0undt3ch\fP) Bump Windows Py3 builds timeout to 10 hours
  152079. @ \fI2020\-03\-10 20:43:41 UTC\fP
  152080. .INDENT 2.0
  152081. .IP \(bu 2
  152082. 192ce76a95 Merge pull request \fI\%#56345\fP from s0undt3ch/hotfix/win\-py3\-timeouts
  152083. .IP \(bu 2
  152084. 11bdc38ae3 Bump Windows 2019 Py3 builds timeout to 10 hours
  152085. .UNINDENT
  152086. .IP \(bu 2
  152087. \fBPR\fP \fI\%#55888\fP: (\fI\%s0undt3ch\fP) Disable codecov PR comments and status checks
  152088. @ \fI2020\-03\-10 15:45:52 UTC\fP
  152089. .INDENT 2.0
  152090. .IP \(bu 2
  152091. a204906c80 Merge pull request \fI\%#55888\fP from s0undt3ch/hotfix/coverage\-reporting
  152092. .IP \(bu 2
  152093. 4b8dc8a586 Disable codecov PR comments and status checks
  152094. .IP \(bu 2
  152095. cb0f4dff87 Apply the suggestion given by the codecov team
  152096. .UNINDENT
  152097. .IP \(bu 2
  152098. \fBISSUE\fP \fI\%#56177\fP: (\fI\%jodok\fP) mysql states fail because conv is \(ga\(ga instead of None (refs: \fI\%#56174\fP)
  152099. .IP \(bu 2
  152100. \fBISSUE\fP \fI\%#56170\fP: (\fI\%jeffdyke\fP) mariadb socket access must be enabled before highstate \- salt 3K still tries empty password (refs: \fI\%#56174\fP)
  152101. .IP \(bu 2
  152102. \fBISSUE\fP \fI\%#56124\fP: (\fI\%ymasson\fP) MySQL state and module broken after upgrade to 3000 (refs: \fI\%#56174\fP)
  152103. .IP \(bu 2
  152104. \fBPR\fP \fI\%#56174\fP: (\fI\%garethgreenaway\fP) [master] MySQL module fixes
  152105. @ \fI2020\-03\-10 04:03:23 UTC\fP
  152106. .INDENT 2.0
  152107. .IP \(bu 2
  152108. 3e913631bb Merge pull request \fI\%#56174\fP from garethgreenaway/56124_mysql_module_state_fixes
  152109. .IP \(bu 2
  152110. fcc061368b Removing quotes from the plugin_status query. Updating tests to reflect changes.
  152111. .IP \(bu 2
  152112. 3dc66393b2 Adding better error reporting around plugins. Updating tests. Only attempt to delete a user if they exist.
  152113. .IP \(bu 2
  152114. 1337da1e4e Ensure _mysql_user_exists is using auth_socket. Updating mysql and mariadb chpass functions to ensure that the respective plugins are enabled before attempting to use them.
  152115. .IP \(bu 2
  152116. 34995ba4e8 Reworking the unix_socket code to support the differences between MySQL and MariaDB. Adding some functions to install, remove, and check the status of plugins which we can then use when adding users which will use the unix_socket & auth_socket plugins. Adding additional tests for these new functions as well as test to ensure the correct SQL is being generated when using passwordless and unix_socket options.
  152117. .IP \(bu 2
  152118. 5bfd67c13e Minor tweak to mysql module. Fixing failing tests.
  152119. .IP \(bu 2
  152120. e871a3ffd1 Various fixes to the mysql module to break out the handling of user management into different functions based on MySQL variant.
  152121. .UNINDENT
  152122. .IP \(bu 2
  152123. \fBISSUE\fP \fI\%#56063\fP: (\fI\%terminalmage\fP) [master] Traceback in esxi grain module on import (refs: \fI\%#56094\fP)
  152124. .IP \(bu 2
  152125. \fBPR\fP \fI\%#56094\fP: (\fI\%dwoz\fP) Fix type error in TornadoImporter
  152126. @ \fI2020\-03\-10 01:39:08 UTC\fP
  152127. .INDENT 2.0
  152128. .IP \(bu 2
  152129. 211c88bfbc Merge pull request \fI\%#56094\fP from dwoz/fix_56063
  152130. .IP \(bu 2
  152131. 7b1632e8e3 Fix type error in TornadoImporter
  152132. .UNINDENT
  152133. .IP \(bu 2
  152134. \fBPR\fP \fI\%#56172\fP: (\fI\%Ch3LL\fP) Only change mine data if using new allow_tgt feature
  152135. @ \fI2020\-03\-10 01:34:27 UTC\fP
  152136. .INDENT 2.0
  152137. .IP \(bu 2
  152138. fb5252fc53 Merge pull request \fI\%#56172\fP from Ch3LL/mine_g
  152139. .IP \(bu 2
  152140. f4c9c2a5cf Fix docs
  152141. .IP \(bu 2
  152142. 6c914caec8 Use different targeting for windows/linux
  152143. .IP \(bu 2
  152144. f6348127dc Only change mine data if using new allow_tgt feature
  152145. .UNINDENT
  152146. .IP \(bu 2
  152147. \fBISSUE\fP \fI\%#56121\fP: (\fI\%githubcdr\fP) salt\-minion broken after upgrade to 3000 (refs: \fI\%#56143\fP)
  152148. .IP \(bu 2
  152149. \fBISSUE\fP \fI\%#51854\fP: (\fI\%Oloremo\fP) Fluorine: minion_pillar_cache: True leads to exception (refs: \fI\%#56143\fP, \fI\%#52195\fP)
  152150. .IP \(bu 2
  152151. \fBPR\fP \fI\%#56143\fP: (\fI\%waynew\fP) Use encoding when caching pillar data
  152152. @ \fI2020\-03\-10 01:33:37 UTC\fP
  152153. .INDENT 2.0
  152154. .IP \(bu 2
  152155. \fBPR\fP \fI\%#52195\fP: (\fI\%waynew\fP) Use encoding when caching pillar data (refs: \fI\%#56143\fP)
  152156. .IP \(bu 2
  152157. 8a8e9c9c5f Merge pull request \fI\%#56143\fP from waynew/51854\-minion\-pillar\-cache\-exception
  152158. .IP \(bu 2
  152159. 58cc9488aa Merge branch \(aqmaster\(aq into 51854\-minion\-pillar\-cache\-exception
  152160. .UNINDENT
  152161. .IP \(bu 2
  152162. \fBPR\fP \fI\%#56082\fP: (\fI\%Ch3LL\fP) Fix saltversioninfo grain for new version
  152163. @ \fI2020\-03\-10 01:32:11 UTC\fP
  152164. .INDENT 2.0
  152165. .IP \(bu 2
  152166. 9f27caa7d0 Merge pull request \fI\%#56082\fP from Ch3LL/ver_grains
  152167. .IP \(bu 2
  152168. e6abd6d31b ensure full_info/noc_info work with new versioning
  152169. .IP \(bu 2
  152170. bcc520ccc4 Add saltversioninfo grains test
  152171. .IP \(bu 2
  152172. 510e149b87 Fix saltversioninfo grain for new version
  152173. .UNINDENT
  152174. .IP \(bu 2
  152175. \fBPR\fP \fI\%#56285\fP: (\fI\%UtahDave\fP) Add missing colon.
  152176. @ \fI2020\-03\-09 22:22:17 UTC\fP
  152177. .INDENT 2.0
  152178. .IP \(bu 2
  152179. 602ff3b9f1 Merge pull request \fI\%#56285\fP from UtahDave/fix_f5_doc
  152180. .IP \(bu 2
  152181. 1034013831 Add missing colon.
  152182. .UNINDENT
  152183. .IP \(bu 2
  152184. \fBPR\fP \fI\%#56333\fP: (\fI\%Ch3LL\fP) add pylint ignore in django returner
  152185. @ \fI2020\-03\-09 20:42:42 UTC\fP
  152186. .INDENT 2.0
  152187. .IP \(bu 2
  152188. de5184a206 Merge pull request \fI\%#56333\fP from Ch3LL/lint_fix
  152189. .IP \(bu 2
  152190. 6a213a429a add pylint ignore in django returner
  152191. .IP \(bu 2
  152192. 759290a055 Use encoding when caching pillar data
  152193. .UNINDENT
  152194. .IP \(bu 2
  152195. \fBISSUE\fP \fI\%#56080\fP: (\fI\%sagetherage\fP) Update release notes, pip download page and install docs on pycrpto (refs: \fI\%#56095\fP)
  152196. .IP \(bu 2
  152197. \fBPR\fP \fI\%#56095\fP: (\fI\%waynew\fP) Provide security advisory for PyCrypto
  152198. @ \fI2020\-02\-10 18:42:00 UTC\fP
  152199. .INDENT 2.0
  152200. .IP \(bu 2
  152201. 9adc2214c3 Merge pull request \fI\%#56095\fP from waynew/crypto\-warning
  152202. .IP \(bu 2
  152203. 484bc51f4b Add warnings to a couple of other places
  152204. .IP \(bu 2
  152205. 2711c04ca9 Provide security advisory for PyCrypto
  152206. .UNINDENT
  152207. .IP \(bu 2
  152208. \fBPR\fP \fI\%#56092\fP: (\fI\%twangboy\fP) Add LGPO and Network PRs to changelogs
  152209. @ \fI2020\-02\-10 18:17:28 UTC\fP
  152210. .INDENT 2.0
  152211. .IP \(bu 2
  152212. 1acd492bb9 Merge pull request \fI\%#56092\fP from twangboy/waynew\-update\-changelog
  152213. .IP \(bu 2
  152214. 4e03620d4e Fix a docs issue
  152215. .IP \(bu 2
  152216. e7b64277e1 Add LGPO and Network PRs to changelogs
  152217. .UNINDENT
  152218. .IP \(bu 2
  152219. \fBPR\fP \fI\%#56115\fP: (\fI\%s0undt3ch\fP) Add information about the pip install salt on windows issue.
  152220. @ \fI2020\-02\-10 17:33:44 UTC\fP
  152221. .INDENT 2.0
  152222. .IP \(bu 2
  152223. 65d59b0ee9 Merge pull request \fI\%#56115\fP from s0undt3ch/hotfix/release\-notes
  152224. .IP \(bu 2
  152225. aeac9f36cd Add information about the pip install salt on windows issue.
  152226. .IP \(bu 2
  152227. a5179434e7 Merge branch \(aqmaster\(aq into pdbedit_55185
  152228. .IP \(bu 2
  152229. 95d46d6cc8 \fI\%#55185\fP pdbedit module should check for version 4.8.x or newer
  152230. .UNINDENT
  152231. .UNINDENT
  152232. .SS Salt 3000.2 Release Notes
  152233. .sp
  152234. Version 3000.2 is a CVE\-fix release for 3000\&.
  152235. .SS Security Fix
  152236. .sp
  152237. \fBCVE\-2020\-11651\fP
  152238. .sp
  152239. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  152240. The salt\-master process ClearFuncs class does not properly validate
  152241. method calls. This allows a remote user to access some methods without
  152242. authentication. These methods can be used to retrieve user tokens from
  152243. the salt master and/or run arbitrary commands on salt minions.
  152244. .sp
  152245. \fBCVE\-2020\-11652\fP
  152246. .sp
  152247. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  152248. The salt\-master process ClearFuncs class allows access to some methods
  152249. that improperly sanitize paths. These methods allow arbitrary
  152250. directory access to authenticated users.
  152251. .SS Known Issue
  152252. .sp
  152253. Part of the fix for CVE\-2020\-11651 added better validation of the methods allowed to be called by remote clients.
  152254. Both AESFuncs and ClearFuncs now have an explicit list of methods that can be called.
  152255. The name of one of these whitlisted methods on AESFuncs had a typo.
  152256. The _minion_runner method should be minion_runner (without the underscore prefix).
  152257. This typo breaks the publish module’s runner method.
  152258. Calling runners, for example:
  152259. .INDENT 0.0
  152260. .INDENT 3.5
  152261. .sp
  152262. .nf
  152263. .ft C
  152264. salt minion publish.runner manage.down
  152265. .ft P
  152266. .fi
  152267. .UNINDENT
  152268. .UNINDENT
  152269. .sp
  152270. Will not work, and you will receive and empty reply from the salt master.
  152271. .sp
  152272. This will be addressed in the Sodium release of Salt set for mid\-June 2020.
  152273. .SS Salt 3000.3 Release Notes
  152274. .sp
  152275. Version 3000.3 is a bug\-fix release for 3000\&.
  152276. .SS Statistics
  152277. .INDENT 0.0
  152278. .IP \(bu 2
  152279. Total Merges: \fB2\fP
  152280. .IP \(bu 2
  152281. Total Issue References: \fB2\fP
  152282. .IP \(bu 2
  152283. Total PR References: \fB2\fP
  152284. .IP \(bu 2
  152285. Contributors: \fB2\fP (\fI\%dwoz\fP, \fI\%frogunder\fP)
  152286. .UNINDENT
  152287. .SS Changelog for v3000.2..v3000.3
  152288. .sp
  152289. \fIGenerated at: 2020\-05\-06 02:53:12 UTC\fP
  152290. .INDENT 0.0
  152291. .IP \(bu 2
  152292. \fBPR\fP \fI\%#57097\fP: (\fI\%frogunder\fP) Update man_pages 3000.3
  152293. @ \fI2020\-05\-05 22:13:09 UTC\fP
  152294. .IP \(bu 2
  152295. \fBISSUE\fP \fI\%#57027\fP: (\fI\%ecarson\fP) [BUG] Master running 2019.2.4 or 3000.2 unable to synchronize files using saltutil.sync_all to 2017.7.1 minion due to CVE fix (refs: \fI\%#57100\fP)
  152296. .IP \(bu 2
  152297. \fBISSUE\fP \fI\%#57016\fP: (\fI\%idontwanttosignin\fP) [BUG] Requested method not exposed: minion_runner (refs: \fI\%#57100\fP)
  152298. .IP \(bu 2
  152299. \fBPR\fP \fI\%#57100\fP: (\fI\%dwoz\fP) Address Issues in CVE Release
  152300. @ \fI2020\-05\-05 22:09:25 UTC\fP
  152301. .UNINDENT
  152302. .SS Salt 2019.2.0 Release Notes \- Codename Fluorine
  152303. .SS Python 2.7 Deprecation
  152304. .sp
  152305. In light of Python 2.7 reaching its End of Life (EOL) on Jan 1st 2020,
  152306. Python 2 will be deprecated from SaltStack no earlier than the Sodium
  152307. release, that is either the Sodium release or a later release.
  152308. This decision is pending further community discussion.
  152309. .SS Known Issues
  152310. .sp
  152311. The following are known issues for the 2019.2.0 release and will be fixed for 2019.2.1:
  152312. .INDENT 0.0
  152313. .IP \(bu 2
  152314. \fI\%#51699\fP
  152315. .UNINDENT
  152316. .SS Non\-Backward\-Compatible Change to YAML Renderer
  152317. .sp
  152318. In earlier releases, this was considered valid usage in Python 2, assuming that
  152319. \fBdata\fP was a list or dictionary containing keys/values which are \fBunicode\fP
  152320. types:
  152321. .INDENT 0.0
  152322. .INDENT 3.5
  152323. .sp
  152324. .nf
  152325. .ft C
  152326. /etc/foo.conf:
  152327. file.managed:
  152328. \- source: salt://foo.conf.jinja
  152329. \- template: jinja
  152330. \- context:
  152331. data: {{ data }}
  152332. .ft P
  152333. .fi
  152334. .UNINDENT
  152335. .UNINDENT
  152336. .sp
  152337. One common use case for this is when using one of Salt\(aqs \fBcustom
  152338. Jinja filters\fP which return lists or dictionaries, such
  152339. as the \fBipv4\fP filter.
  152340. .sp
  152341. In Python 2, Jinja will render the \fBunicode\fP string types within the
  152342. list/dictionary with the "u" prefix (e.g. \fB{u\(aqfoo\(aq: u\(aqbar\(aq}\fP). While not
  152343. valid YAML, earlier releases would successfully load these values.
  152344. .sp
  152345. As of this release, the above SLS would result in an error message. To allow
  152346. for a data structure to be dumped directly into your SLS file, use the \fI\%tojson
  152347. Jinja filter\fP:
  152348. .INDENT 0.0
  152349. .INDENT 3.5
  152350. .sp
  152351. .nf
  152352. .ft C
  152353. /etc/foo.conf:
  152354. file.managed:
  152355. \- source: salt://foo.conf.jinja
  152356. \- template: jinja
  152357. \- context:
  152358. data: {{ data|tojson }}
  152359. .ft P
  152360. .fi
  152361. .UNINDENT
  152362. .UNINDENT
  152363. .sp
  152364. Another example where the new filter needs to be used is the following state example:
  152365. .INDENT 0.0
  152366. .INDENT 3.5
  152367. .sp
  152368. .nf
  152369. .ft C
  152370. grafana_packages:
  152371. pkg.installed:
  152372. \- names: {{ server.pkgs }}
  152373. .ft P
  152374. .fi
  152375. .UNINDENT
  152376. .UNINDENT
  152377. .sp
  152378. This will fail when pkgs is a list or dictionary. You will need to update the state:
  152379. .INDENT 0.0
  152380. .INDENT 3.5
  152381. .sp
  152382. .nf
  152383. .ft C
  152384. grafana_packages:
  152385. pkg.installed:
  152386. \- names: {{ server.pkgs|tojson }}
  152387. .ft P
  152388. .fi
  152389. .UNINDENT
  152390. .UNINDENT
  152391. .sp
  152392. This test case has also been tested with the \fByaml\fP and \fBjson\fP filters successfully.
  152393. .sp
  152394. \fBNOTE:\fP
  152395. .INDENT 0.0
  152396. .INDENT 3.5
  152397. This filter was added in Jinja 2.9. However, fear not! The 2018.3.3 release
  152398. added a \fBtojson\fP filter which will be used if this filter is not already
  152399. present, making it available on platforms like RHEL 7 and Ubuntu 14.04
  152400. which provide older versions of Jinja.
  152401. .UNINDENT
  152402. .UNINDENT
  152403. .sp
  152404. \fBIMPORTANT:\fP
  152405. .INDENT 0.0
  152406. .INDENT 3.5
  152407. The \fBjson_encode_dict\fP and \fBjson_encode_list\fP filters
  152408. do not actually dump the results to JSON. Since \fBtojson\fP accomplishes
  152409. what those filters were designed to do, they are now deprecated and will be
  152410. removed in the 3000 release. The \fBtojson\fP filter should be used in all
  152411. cases where \fBjson_encode_dict\fP and \fBjson_encode_list\fP
  152412. would have been used.
  152413. .UNINDENT
  152414. .UNINDENT
  152415. .SS Ansible Playbook State and Execution Modules
  152416. .sp
  152417. Along with the including the \fBansible modules\fP in the Oxygen release, running playbooks has been
  152418. added in 2019.2.0 with the \fBplaybooks function\fP\&. This also includes an \fBansible
  152419. playbooks state module\fP which can be used
  152420. on a targeted host to run ansible playbooks, or used in an
  152421. orchestration state runner.
  152422. .INDENT 0.0
  152423. .INDENT 3.5
  152424. .sp
  152425. .nf
  152426. .ft C
  152427. install nginx:
  152428. ansible.playbooks:
  152429. \- name: install.yml
  152430. \- git_repo: git://github.com/gtmanfred/playbook.git
  152431. \- git_kwargs:
  152432. rev: master
  152433. .ft P
  152434. .fi
  152435. .UNINDENT
  152436. .UNINDENT
  152437. .sp
  152438. The playbooks modules also includes the ability to specify a git repo to clone
  152439. and use, or a specific directory can to used when running the playbook.
  152440. .SS Network Automation
  152441. .sp
  152442. Beginning with this release, Salt provides much broader support for a variety
  152443. of network operating systems, and features for configuration manipulation or
  152444. operational command execution.
  152445. .SS NetBox
  152446. .sp
  152447. Added in the previous release, 2018.3.0, the capabilities of the
  152448. \fBnetbox\fP Execution Module have been extended, with a
  152449. much longer list of available features:
  152450. .INDENT 0.0
  152451. .IP \(bu 2
  152452. \fBnetbox.create_circuit\fP
  152453. .IP \(bu 2
  152454. \fBnetbox.create_circuit_provider\fP
  152455. .IP \(bu 2
  152456. \fBnetbox.create_circuit_termination\fP
  152457. .IP \(bu 2
  152458. \fBnetbox.create_circuit_type\fP
  152459. .IP \(bu 2
  152460. \fBnetbox.create_device\fP
  152461. .IP \(bu 2
  152462. \fBnetbox.create_device_role\fP
  152463. .IP \(bu 2
  152464. \fBnetbox.create_device_type\fP
  152465. .IP \(bu 2
  152466. \fBnetbox.create_interface\fP
  152467. .IP \(bu 2
  152468. \fBnetbox.create_interface_connection\fP
  152469. .IP \(bu 2
  152470. \fBnetbox.create_inventory_item\fP
  152471. .IP \(bu 2
  152472. \fBnetbox.create_ipaddress\fP
  152473. .IP \(bu 2
  152474. \fBnetbox.create_manufacturer\fP
  152475. .IP \(bu 2
  152476. \fBnetbox.create_platform\fP
  152477. .IP \(bu 2
  152478. \fBnetbox.create_site\fP
  152479. .IP \(bu 2
  152480. \fBnetbox.delete_interface\fP
  152481. .IP \(bu 2
  152482. \fBnetbox.delete_inventory_item\fP
  152483. .IP \(bu 2
  152484. \fBnetbox.delete_ipaddress\fP
  152485. .IP \(bu 2
  152486. \fBnetbox.get_circuit_provider\fP
  152487. .IP \(bu 2
  152488. \fBnetbox.get_interfaces\fP
  152489. .IP \(bu 2
  152490. \fBnetbox.get_ipaddresses\fP
  152491. .IP \(bu 2
  152492. \fBnetbox.make_interface_child\fP
  152493. .IP \(bu 2
  152494. \fBnetbox.make_interface_lag\fP
  152495. .IP \(bu 2
  152496. \fBnetbox.openconfig_interfaces\fP
  152497. .IP \(bu 2
  152498. \fBnetbox.openconfig_lacp\fP
  152499. .IP \(bu 2
  152500. \fBnetbox.update_device\fP
  152501. .IP \(bu 2
  152502. \fBnetbox.update_interface\fP
  152503. .UNINDENT
  152504. .sp
  152505. Besides this Execution Module, Salt users can load data directly from NetBox
  152506. into the device Pillar, via the \fBnetbox\fP External
  152507. Pillar module.
  152508. .SS Netmiko
  152509. .sp
  152510. \fI\%Netmiko\fP, the multi\-vendor library to
  152511. simplify Paramiko SSH connections to network devices, is now officially
  152512. integrated into Salt. The network community can use it via the
  152513. \fBnetmiko\fP Proxy Module or directly from any Salt
  152514. Minions, passing the connection credentials \- see the documentation for the
  152515. \fBnetmiko\fP Execution Module.
  152516. .SS Arista
  152517. .sp
  152518. Arista switches can now be managed running under the \fBpyeapi\fP Proxy Module, and execute RPC requests via the
  152519. \fBpyeapi\fP Execution Module.
  152520. .SS Cisco Nexus
  152521. .sp
  152522. While support for SSH\-based operations has been added in the release codename
  152523. Carbon (2016.11), the new \fBnxos_api\fP Proxy Module
  152524. and \fBnxos_api\fP allow management of Cisco Nexus
  152525. switches via the NX\-API.
  152526. .sp
  152527. It is important to note that these modules don\(aqt have third party dependencies,
  152528. therefore they can be used straight away from any Salt Minion. This also means
  152529. that the user may be able to install the regular Salt Minion on the Nexus
  152530. switch directly and manage the network devices like a regular server.
  152531. .SS General\-purpose Modules
  152532. .sp
  152533. The new \fBciscoconfparse\fP Execution Module
  152534. can be used for basic configuration parsing, audit or validation for a variety
  152535. of network platforms having Cisco IOS style configuration (one space
  152536. indentation), as well as brace\-delimited configuration style.
  152537. .sp
  152538. The \fBiosconfig\fP can be used for various
  152539. configuration manipulation for Cisco IOS style configuration, such as:
  152540. \fBconfiguration cleanup\fP,
  152541. \fBtree representation of the config\fP, etc.
  152542. .SS NAPALM
  152543. .SS Commit At and Commit Confirmed
  152544. .sp
  152545. Beginning with this release, NAPALM users are able to execute scheduled commits
  152546. (broadly known as "commit at") and "commit confirmed" (revert the configuration
  152547. change unless the user confirms by running another command). These features are
  152548. available via the \fBcommit_in\fP, \fBcommit_at\fP, \fBrevert_in\fP, or \fBrevert_at\fP
  152549. arguments for the
  152550. \fBnet.load_config\fP and
  152551. \fBnet.load_template\fP execution
  152552. functions, or \fBnetconfig.managed\fP\&.
  152553. .sp
  152554. The counterpart execution functions
  152555. \fBnet.confirm_commit\fP, or
  152556. \fBnet.cancel_commit\fP, as well
  152557. as the State functions
  152558. \fBnetconfig.commit_cancelled\fP, or
  152559. \fBnetconfig.commit_confirmed\fP can
  152560. be used to confirm or cancel a commit.
  152561. .sp
  152562. Please note that the commit confirmed and commit cancelled functionalities are
  152563. available for any platform whether the network devices supports the features
  152564. natively or not. However, be cautious and make sure you read and understand the
  152565. caveats before using them in production.
  152566. .SS Multiple Templates Rendered Simultaneously
  152567. .sp
  152568. The \fBtemplate_name\fP argument of the
  152569. \fBnet.load_template\fP Execution
  152570. and \fBnetconfig.managed\fP State function now
  152571. supports a list of templates. This is particularly useful when a very large
  152572. Jinja template is split into multiple smaller and easier to read templates that
  152573. can eventually be reused in other States. For example, the following syntax is
  152574. not correct to manage the configuration of NTP and BGP simultaneously, using
  152575. two different templates and changing the device configuration through one
  152576. single commit:
  152577. .INDENT 0.0
  152578. .INDENT 3.5
  152579. .sp
  152580. .nf
  152581. .ft C
  152582. manage_bgp_and_ntp:
  152583. netconfig.managed:
  152584. \- template_name:
  152585. \- salt://templates/bgp.jinja
  152586. \- salt://templates/ntp.jinja
  152587. \- context:
  152588. bpg: {{ pillar.bgp }}
  152589. ntp: {{ pillar.ntp }}
  152590. .ft P
  152591. .fi
  152592. .UNINDENT
  152593. .UNINDENT
  152594. .SS Connection Re\-establishment on Demand
  152595. .sp
  152596. Beginning with this release, any NAPALM command executed when
  152597. running under a NAPALM Proxy Minion supports the \fBforce_reconnect\fP
  152598. magic argument.
  152599. .sp
  152600. Proxy Minions generally establish a connection with the remote network
  152601. device at the time of the Minion startup and that connection is going to be
  152602. used forever.
  152603. .sp
  152604. If one would need to execute a command on the device but is connecting using
  152605. different parameters (due to various causes, e.g., unable to authenticate
  152606. the user specified in the Pillar as the authentication system \- say
  152607. TACACS+ is not available, or the DNS resolver is currently down and would
  152608. like to temporarily use the IP address instead, etc.), it implies updating
  152609. the Pillar data and restarting the Proxy Minion process restart.
  152610. In particular cases like that, you can pass the \fBforce_reconnect=True\fP
  152611. keyword argument, together with the alternative connection details, to
  152612. enforce the command to be executed over a separate connection.
  152613. .sp
  152614. For example, if the usual command is \fBsalt \(aq*\(aq net.arp\fP, you can use the
  152615. following to connect using a different username instead:
  152616. .INDENT 0.0
  152617. .INDENT 3.5
  152618. .sp
  152619. .nf
  152620. .ft C
  152621. salt \(aq*\(aq net.arp username=my\-alt\-usr force_reconnect=True
  152622. .ft P
  152623. .fi
  152624. .UNINDENT
  152625. .UNINDENT
  152626. .sp
  152627. The same goes with any of the other configuration arguments required for the
  152628. NAPALM connection \- see \fBNAPALM proxy documentation\fP\&.
  152629. .SS Configuration Replace Features
  152630. .sp
  152631. To replace various configuration chunks, you can use the new
  152632. \fBnet.replace_pattern\fP
  152633. execution function, or the
  152634. \fBnetconfig.replace_pattern\fP State
  152635. function. For example, if you want to update your configuration and rename
  152636. a BGP policy referenced in many places, you can do so by running:
  152637. .INDENT 0.0
  152638. .INDENT 3.5
  152639. .sp
  152640. .nf
  152641. .ft C
  152642. salt \(aq*\(aq net.replace_pattern OLD\-POLICY\-CONFIG new\-policy\-config
  152643. .ft P
  152644. .fi
  152645. .UNINDENT
  152646. .UNINDENT
  152647. .sp
  152648. Similarly, you can also replace entire configuration blocks using the
  152649. \fBnet.blockreplace\fP function.
  152650. .SS Configuration Save Features
  152651. .sp
  152652. The \fBnet.save_config\fP function
  152653. can be used to save the configuration of the managed device into a file. For
  152654. the State subsystem, the \fBnetconfig.saved\fP
  152655. function has been added which provides a complete list of facilities when
  152656. managing the target file where the configuration of the network device can be
  152657. saved.
  152658. .sp
  152659. For example, backup the running configuration of each device under its own
  152660. directory tree:
  152661. .INDENT 0.0
  152662. .INDENT 3.5
  152663. .sp
  152664. .nf
  152665. .ft C
  152666. /var/backups/{{ opts.id }}/running.cfg:
  152667. netconfig.saved:
  152668. \- source: running
  152669. \- makedirs: true
  152670. .ft P
  152671. .fi
  152672. .UNINDENT
  152673. .UNINDENT
  152674. .sp
  152675. All the new network automation modules mentioned above are directly exposed to
  152676. the NAPALM users, without requiring any architectural changes, just eventually
  152677. install some requirements:
  152678. .SS Junos
  152679. .sp
  152680. The features from the existing \fBjunos\fP Execution
  152681. Module are available via the following functions:
  152682. .INDENT 0.0
  152683. .IP \(bu 2
  152684. \fBnapalm.junos_cli\fP: Execute a CLI
  152685. command and return the output as text or Python dictionary.
  152686. .IP \(bu 2
  152687. \fBnapalm.junos_rpc\fP: Execute an RPC
  152688. request on the remote Junos device, and return the result as a Python
  152689. dictionary, easy to digest and manipulate.
  152690. .IP \(bu 2
  152691. \fBnapalm.junos_install_os\fP:
  152692. Install the given image on the device.
  152693. .IP \(bu 2
  152694. \fBnapalm.junos_facts\fP: The complete
  152695. list of Junos facts collected by the \fBjunos\-eznc\fP underlying library.
  152696. .UNINDENT
  152697. .sp
  152698. \fBNOTE:\fP
  152699. .INDENT 0.0
  152700. .INDENT 3.5
  152701. To be able to use these features, you muse ensure that you meet the
  152702. requirements for the \fBjunos\fP module. As
  152703. \fBjunos\-eznc\fP is already a dependency of NAPALM, you will only have to
  152704. install \fBjxmlease\fP\&.
  152705. .UNINDENT
  152706. .UNINDENT
  152707. .sp
  152708. Usage examples:
  152709. .INDENT 0.0
  152710. .INDENT 3.5
  152711. .sp
  152712. .nf
  152713. .ft C
  152714. salt \(aq*\(aq napalm.junos_cli \(aqshow arp\(aq format=xml
  152715. salt \(aq*\(aq napalm.junos_rpc get\-interface\-information
  152716. .ft P
  152717. .fi
  152718. .UNINDENT
  152719. .UNINDENT
  152720. .SS Netmiko
  152721. .sp
  152722. The features from the newly added \fBnetmiko\fP
  152723. Execution Module are available as:
  152724. .INDENT 0.0
  152725. .IP \(bu 2
  152726. \fBnapalm.netmiko_commands\fP:
  152727. Execute one or more commands to be execute on the remote device, via Netmiko,
  152728. and return the output as a text.
  152729. .IP \(bu 2
  152730. \fBnapalm.netmiko_config\fP: Load
  152731. a list of configuration command on the remote device, via Netmiko. The
  152732. commands can equally be loaded from a local or remote path, and passed
  152733. through Salt\(aqs template rendering pipeline (by default using \fBJinja\fP as the
  152734. template rendering engine).
  152735. .UNINDENT
  152736. .sp
  152737. Usage examples:
  152738. .INDENT 0.0
  152739. .INDENT 3.5
  152740. .sp
  152741. .nf
  152742. .ft C
  152743. salt \(aq*\(aq napalm.netmiko_commands \(aqshow version\(aq \(aqshow interfaces\(aq
  152744. salt \(aq*\(aq napalm.netmiko_config config_file=https://bit.ly/2sgljCB
  152745. .ft P
  152746. .fi
  152747. .UNINDENT
  152748. .UNINDENT
  152749. .SS Arista pyeapi
  152750. .sp
  152751. For various operations and various extension modules, the following features
  152752. have been added to gate functionality from the
  152753. \fBpyeapi\fP module:
  152754. .INDENT 0.0
  152755. .IP \(bu 2
  152756. \fBnapalm.pyeapi_run_commands\fP: Execute a list of commands on
  152757. the Arista switch, via the \fBpyeapi\fP library.
  152758. .IP \(bu 2
  152759. \fBnapalm.pyeapi_config\fP:
  152760. Configure the Arista switch with the specified commands, via the \fBpyeapi\fP
  152761. Python library. Similarly to
  152762. \fBnapalm.netmiko_config\fP, you
  152763. can use both local and remote files, with or without templating.
  152764. .UNINDENT
  152765. .sp
  152766. Usage examples:
  152767. .INDENT 0.0
  152768. .INDENT 3.5
  152769. .sp
  152770. .nf
  152771. .ft C
  152772. salt \(aq*\(aq napalm.pyeapi_run_commands \(aqshow version\(aq \(aqshow interfaces\(aq
  152773. salt \(aq*\(aq napalm.pyeapi_config config_file=salt://path/to/template.jinja
  152774. .ft P
  152775. .fi
  152776. .UNINDENT
  152777. .UNINDENT
  152778. .SS Cisco NX\-API
  152779. .sp
  152780. In the exact same way as above, the user has absolute control by using the
  152781. following primitives to manage Cisco Nexus switches via the NX\-API:
  152782. .INDENT 0.0
  152783. .IP \(bu 2
  152784. \fBnapalm.nxos_api_show\fP: Execute
  152785. one or more show (non\-configuration) commands, and return the output as plain
  152786. text or Python dictionary.
  152787. .IP \(bu 2
  152788. \fBnapalm.nxos_api_rpc\fP: Execute
  152789. arbitrary RPC requests via the Nexus API.
  152790. .IP \(bu 2
  152791. \fBnapalm.nxos_api_config\fP:
  152792. Configures the Nexus switch with the specified commands, via the NX\-API. The
  152793. commands can be loaded from the command line, or a local or remote file,
  152794. eventually rendered using the templating engine of choice (default:
  152795. \fBjinja\fP).
  152796. .UNINDENT
  152797. .sp
  152798. Usage examples:
  152799. .INDENT 0.0
  152800. .INDENT 3.5
  152801. .sp
  152802. .nf
  152803. .ft C
  152804. salt \(aq*\(aq napalm.nxos_api_show \(aqshow bgp sessions\(aq \(aqshow processes\(aq raw_text=False
  152805. .ft P
  152806. .fi
  152807. .UNINDENT
  152808. .UNINDENT
  152809. .SS Ciscoconfparse
  152810. .sp
  152811. The following list of function may be handy when manipulating Cisco IOS or
  152812. Junos style configurations:
  152813. .INDENT 0.0
  152814. .IP \(bu 2
  152815. \fBnapalm.config_filter_lines\fP: Return a list of detailed
  152816. matches, for the configuration blocks (parent\-child relationship) whose
  152817. parent and children respect the regular expressions provided.
  152818. .IP \(bu 2
  152819. \fBnapalm.config_find_lines\fP:
  152820. Return the configuration lines that match the regular expression provided.
  152821. .IP \(bu 2
  152822. \fBnapalm.config_lines_w_child\fP:
  152823. Return the configuration lines that match a regular expression, having child
  152824. lines matching the child regular expression.
  152825. .IP \(bu 2
  152826. \fBnapalm.config_lines_wo_child\fP:
  152827. Return the configuration lines that match a regular expression, that don\(aqt
  152828. have child lines matching the child regular expression.
  152829. .UNINDENT
  152830. .sp
  152831. \fBNOTE:\fP
  152832. .INDENT 0.0
  152833. .INDENT 3.5
  152834. These functions require the \fBciscoconfparse\fP Python library to be
  152835. installed.
  152836. .UNINDENT
  152837. .UNINDENT
  152838. .sp
  152839. Usage example (find interfaces that are administratively shut down):
  152840. .INDENT 0.0
  152841. .INDENT 3.5
  152842. .sp
  152843. .nf
  152844. .ft C
  152845. salt \(aq*\(aq napalm.config_lines_w_child \(aqinterface\(aq \(aqshutdown\(aq
  152846. .ft P
  152847. .fi
  152848. .UNINDENT
  152849. .UNINDENT
  152850. .SS IOSConfig
  152851. .sp
  152852. For Cisco IOS style configuration, the following features have been added to
  152853. the \fBnapalm\fP Execution Module:
  152854. .INDENT 0.0
  152855. .IP \(bu 2
  152856. \fBnapalm.config_tree\fP: Transform
  152857. Cisco IOS style configuration to structured Python dictionary, using the
  152858. configuration of the interrogated network device.
  152859. .IP \(bu 2
  152860. \fBnapalm.config_merge_tree\fP:
  152861. Return the merge tree of the configuration of the managed network device with
  152862. a different configuration to be merged with (without actually loading any
  152863. changes on the device).
  152864. .IP \(bu 2
  152865. \fBnapalm.config_merge_text\fP:
  152866. Return the merge result (as text) of the configuration of the managed network
  152867. device with a different configuration to be merged with.
  152868. .IP \(bu 2
  152869. \fBnapalm.config_merge_diff\fP:
  152870. Return the merge diff after merging the configuration of the managed network
  152871. device with a different configuration (without actually loading any changes
  152872. on the device).
  152873. .UNINDENT
  152874. .SS SCP
  152875. .sp
  152876. Reusing the already available connection credentials provided for NAPALM, the
  152877. following features are now available:
  152878. .INDENT 0.0
  152879. .IP \(bu 2
  152880. \fBnapalm.scp_put\fP: Transfer files and
  152881. directories to remote network device.
  152882. .IP \(bu 2
  152883. \fBnapalm.scp_get\fP: Transfer files and
  152884. directories from remote network device to the localhost of the Minion.
  152885. .UNINDENT
  152886. .SS PeeringDB
  152887. .sp
  152888. The \fBpeeringdb\fP Execution Module is useful to
  152889. gather information about other networks you can potentially peer with, and
  152890. automatically establish BGP sessions, e.g., given just a specific AS number,
  152891. the rest of the data (i.e., IP addresses, locations where the remote network is
  152892. available, etc.) is retrieved from PeeringDB, and the session configuration is
  152893. automated with minimal to no effort (typing the IP addresses manually can be
  152894. both tedious and error prone).
  152895. .SS New Docker Proxy Minion
  152896. .sp
  152897. Docker containers can now be treated as actual minions without installing salt
  152898. in the container, using the new \fBdocker proxy minion\fP\&.
  152899. .sp
  152900. This proxy minion uses the \fBdocker executor\fP to
  152901. pass commands to the docker container using \fBdocker.call\fP\&. Any state module calls are passed through the
  152902. corresponding function from the \fBdocker\fP
  152903. module.
  152904. .INDENT 0.0
  152905. .INDENT 3.5
  152906. .sp
  152907. .nf
  152908. .ft C
  152909. proxy:
  152910. proxytype: docker
  152911. name: keen_proskuriakova
  152912. .ft P
  152913. .fi
  152914. .UNINDENT
  152915. .UNINDENT
  152916. .SS Terraform Salt\-SSH Roster
  152917. .sp
  152918. You can now dynamically generate a Salt\-SSH roster from the terraform resources
  152919. defined with \fI\%terraform\-provider\-salt\fP\&.
  152920. .sp
  152921. This allows you to combine both terraform and Salt\-SSH to provision and
  152922. configure your hosts. See the \fBterraform roster\fP for
  152923. an example on how to setup and use.
  152924. .SS Grains Dictionary Passed into Custom Grains
  152925. .sp
  152926. Starting in this release, if a custom grains function accepts a variable named
  152927. \fBgrains\fP, the Grains dictionary of the already compiled grains will be passed
  152928. in. Because of the non\-deterministic order that grains are rendered in, the
  152929. only grains that can be relied upon to be passed in are \fBcore.py\fP grains,
  152930. since those are compiled first.
  152931. .SS More Precise \fBvirtual\fP Grain
  152932. .sp
  152933. This release improves the accuracy of the \fBvirtual\fP grain when running Salt in
  152934. a nested virtualization environment (e.g. \fBsystemd\-nspawn\fP container inside a
  152935. VM) and having \fBvirt\-what\fP installed.
  152936. .sp
  152937. Until now, the \fBvirtual\fP grain was determined by matching against all output
  152938. lines of \fBvirt\-what\fP instead of individual items which could lead to not quite
  152939. precise results (e.g. reporting \fBHyperV\fP inside a \fBsystemd\-nspawn\fP container
  152940. running within a Hyper\-V\-based VM.
  152941. .SS Configurable Module Environment
  152942. .sp
  152943. Salt modules (states, execution modules, returners, etc.) now can have custom
  152944. environment variables applied when running shell commands. This can be
  152945. configured by setting a \fBsystem\-environment\fP key either in Grains or Pillar.
  152946. The syntax is as follows:
  152947. .INDENT 0.0
  152948. .INDENT 3.5
  152949. .sp
  152950. .nf
  152951. .ft C
  152952. system\-environment:
  152953. <type>
  152954. <module>:
  152955. # Namespace for all functions in the module
  152956. _:
  152957. <key>: <value>
  152958. # Namespace only for particular function in the module
  152959. <function>:
  152960. <key>: <value>
  152961. .ft P
  152962. .fi
  152963. .UNINDENT
  152964. .UNINDENT
  152965. .INDENT 0.0
  152966. .IP \(bu 2
  152967. \fB<type>\fP would be the type of module (i.e. \fBstates\fP, \fBmodules\fP, etc.).
  152968. .IP \(bu 2
  152969. \fB<module>\fP would be the module\(aqs name.
  152970. .sp
  152971. \fBNOTE:\fP
  152972. .INDENT 2.0
  152973. .INDENT 3.5
  152974. The module name can be either the virtual name (e.g. \fBpkg\fP), or the
  152975. physical name (e.g. \fByumpkg\fP).
  152976. .UNINDENT
  152977. .UNINDENT
  152978. .IP \(bu 2
  152979. \fB<function>\fP would be the function name within that module. To apply
  152980. environment variables to \fIall\fP functions in a given module, use an underscore
  152981. (i.e. \fB_\fP) as the function name. For example, to set the same environment
  152982. variable for all package management functions, the following could be used:
  152983. .INDENT 2.0
  152984. .INDENT 3.5
  152985. .sp
  152986. .nf
  152987. .ft C
  152988. system\-environment:
  152989. modules:
  152990. pkg:
  152991. _:
  152992. SOMETHING: for_all
  152993. .ft P
  152994. .fi
  152995. .UNINDENT
  152996. .UNINDENT
  152997. .sp
  152998. To set an environment variable in \fBpkg.install\fP only:
  152999. .INDENT 2.0
  153000. .INDENT 3.5
  153001. .sp
  153002. .nf
  153003. .ft C
  153004. system\-environment:
  153005. modules:
  153006. pkg:
  153007. install:
  153008. LC_ALL: en_GB.UTF\-8
  153009. .ft P
  153010. .fi
  153011. .UNINDENT
  153012. .UNINDENT
  153013. .sp
  153014. To set the same variable but only for SUSE minions (which use zypper for
  153015. package management):
  153016. .INDENT 2.0
  153017. .INDENT 3.5
  153018. .sp
  153019. .nf
  153020. .ft C
  153021. system\-environment:
  153022. modules:
  153023. zypper:
  153024. install:
  153025. LC_ALL: en_GB.UTF\-8
  153026. .ft P
  153027. .fi
  153028. .UNINDENT
  153029. .UNINDENT
  153030. .UNINDENT
  153031. .sp
  153032. \fBNOTE:\fP
  153033. .INDENT 0.0
  153034. .INDENT 3.5
  153035. This is not supported throughout Salt; the module must explicitly support
  153036. this feature (though this may change in the future). As of this release,
  153037. the only modules which support this are the following \fBpkg\fP virtual
  153038. modules:
  153039. .INDENT 0.0
  153040. .IP \(bu 2
  153041. \fBaptpkg\fP
  153042. .IP \(bu 2
  153043. \fByumpkg\fP
  153044. .IP \(bu 2
  153045. \fBzypper\fP
  153046. .UNINDENT
  153047. .UNINDENT
  153048. .UNINDENT
  153049. .SS "Virtual Package" Support Dropped for APT
  153050. .sp
  153051. In APT, some packages have an associated list of packages which they provide.
  153052. This allows one to do things like run \fBapt\-get install foo\fP when the real
  153053. package name is \fBfoo1.0\fP, and get the right package installed.
  153054. .sp
  153055. Salt has traditionally designated as "virtual packages" those which are
  153056. provided by an installed package, but for which there is no real package by
  153057. that name installed. Given the above example, if one were to run a
  153058. \fBpkg.installed\fP state for a package named
  153059. \fBfoo\fP, then \fBpkg.list_pkgs\fP would
  153060. show a package version of simply \fB1\fP for package \fBfoo\fP, denoting that it is
  153061. a virtual package.
  153062. .sp
  153063. However, while this makes certain aspects of package management convenient,
  153064. there are issues with this approach that make relying on "virtual packages"
  153065. problematic. For instance, Ubuntu has four different mutually\-conflicting
  153066. packages for \fBnginx\fP:
  153067. .INDENT 0.0
  153068. .IP \(bu 2
  153069. \fI\%nginx\-core\fP
  153070. .IP \(bu 2
  153071. \fI\%nginx\-full\fP
  153072. .IP \(bu 2
  153073. \fI\%nginx\-light\fP
  153074. .IP \(bu 2
  153075. \fI\%nginx\-extras\fP
  153076. .UNINDENT
  153077. .sp
  153078. All four of these provide \fBnginx\fP\&. Yet there is an \fI\%nginx\fP package as well,
  153079. which has no actual content and merely has dependencies on any one of the above
  153080. four packages. If one used \fBnginx\fP in a \fBpkg.installed\fP state, and none of the above four packages were
  153081. installed, then the \fI\%nginx\fP metapackage would be installed, which would pull in
  153082. \fInginx\-core_\fP\&. Later, if \fBnginx\fP were used in a \fBpkg.removed\fP state, the \fI\%nginx\fP metapackage would be removed,
  153083. leaving \fI\%nginx\-core\fP installed. The result would be that, since \fInginx\-core_\fP
  153084. provides \fInginx_\fP, Salt would now see \fI\%nginx\fP as an installed virtual package,
  153085. and the \fBpkg.removed\fP state would fail.
  153086. Moreover, \fInginx would not actually have been removed\fP, since \fI\%nginx\-core\fP would
  153087. remain installed.
  153088. .sp
  153089. Starting with this release, Salt will no longer support using "virtual package"
  153090. names in \fBpkg\fP states, and package names will need to be specified using the
  153091. proper package name. The \fBpkg.list_repo_pkgs\fP function can be used to find matching
  153092. package names in the repositories, given a package name (or glob):
  153093. .INDENT 0.0
  153094. .INDENT 3.5
  153095. .sp
  153096. .nf
  153097. .ft C
  153098. # salt myminion pkg.list_repo_pkgs \(aqnginx*\(aq
  153099. myminion:
  153100. \-\-\-\-\-\-\-\-\-\-
  153101. nginx:
  153102. \- 1.10.3\-0ubuntu0.16.04.2
  153103. \- 1.9.15\-0ubuntu1
  153104. nginx\-common:
  153105. \- 1.10.3\-0ubuntu0.16.04.2
  153106. \- 1.9.15\-0ubuntu1
  153107. nginx\-core:
  153108. \- 1.10.3\-0ubuntu0.16.04.2
  153109. \- 1.9.15\-0ubuntu1
  153110. nginx\-core\-dbg:
  153111. \- 1.10.3\-0ubuntu0.16.04.2
  153112. \- 1.9.15\-0ubuntu1
  153113. nginx\-doc:
  153114. \- 1.10.3\-0ubuntu0.16.04.2
  153115. \- 1.9.15\-0ubuntu1
  153116. nginx\-extras:
  153117. \- 1.10.3\-0ubuntu0.16.04.2
  153118. \- 1.9.15\-0ubuntu1
  153119. nginx\-extras\-dbg:
  153120. \- 1.10.3\-0ubuntu0.16.04.2
  153121. \- 1.9.15\-0ubuntu1
  153122. nginx\-full:
  153123. \- 1.10.3\-0ubuntu0.16.04.2
  153124. \- 1.9.15\-0ubuntu1
  153125. nginx\-full\-dbg:
  153126. \- 1.10.3\-0ubuntu0.16.04.2
  153127. \- 1.9.15\-0ubuntu1
  153128. nginx\-light:
  153129. \- 1.10.3\-0ubuntu0.16.04.2
  153130. \- 1.9.15\-0ubuntu1
  153131. nginx\-light\-dbg:
  153132. \- 1.10.3\-0ubuntu0.16.04.2
  153133. \- 1.9.15\-0ubuntu1
  153134. .ft P
  153135. .fi
  153136. .UNINDENT
  153137. .UNINDENT
  153138. .sp
  153139. Alternatively, the newly\-added \fBpkg.show\fP
  153140. function can be used to get more detailed information about a given package and
  153141. help determine what package name is correct:
  153142. .INDENT 0.0
  153143. .INDENT 3.5
  153144. .sp
  153145. .nf
  153146. .ft C
  153147. # salt myminion pkg.show \(aqnginx*\(aq filter=description,provides
  153148. myminion:
  153149. \-\-\-\-\-\-\-\-\-\-
  153150. nginx:
  153151. \-\-\-\-\-\-\-\-\-\-
  153152. 1.10.3\-0ubuntu0.16.04.2:
  153153. \-\-\-\-\-\-\-\-\-\-
  153154. Description:
  153155. small, powerful, scalable web/proxy server
  153156. 1.9.15\-0ubuntu1:
  153157. \-\-\-\-\-\-\-\-\-\-
  153158. Description:
  153159. small, powerful, scalable web/proxy server
  153160. nginx\-common:
  153161. \-\-\-\-\-\-\-\-\-\-
  153162. 1.10.3\-0ubuntu0.16.04.2:
  153163. \-\-\-\-\-\-\-\-\-\-
  153164. Description:
  153165. small, powerful, scalable web/proxy server \- common files
  153166. 1.9.15\-0ubuntu1:
  153167. \-\-\-\-\-\-\-\-\-\-
  153168. Description:
  153169. small, powerful, scalable web/proxy server \- common files
  153170. nginx\-core:
  153171. \-\-\-\-\-\-\-\-\-\-
  153172. 1.10.3\-0ubuntu0.16.04.2:
  153173. \-\-\-\-\-\-\-\-\-\-
  153174. Description:
  153175. nginx web/proxy server (core version)
  153176. Provides:
  153177. httpd, httpd\-cgi, nginx
  153178. 1.9.15\-0ubuntu1:
  153179. \-\-\-\-\-\-\-\-\-\-
  153180. Description:
  153181. nginx web/proxy server (core version)
  153182. Provides:
  153183. httpd, httpd\-cgi, nginx
  153184. nginx\-core\-dbg:
  153185. \-\-\-\-\-\-\-\-\-\-
  153186. 1.10.3\-0ubuntu0.16.04.2:
  153187. \-\-\-\-\-\-\-\-\-\-
  153188. Description:
  153189. nginx web/proxy server (core version) \- debugging symbols
  153190. 1.9.15\-0ubuntu1:
  153191. \-\-\-\-\-\-\-\-\-\-
  153192. Description:
  153193. nginx web/proxy server (core version) \- debugging symbols
  153194. nginx\-doc:
  153195. \-\-\-\-\-\-\-\-\-\-
  153196. 1.10.3\-0ubuntu0.16.04.2:
  153197. \-\-\-\-\-\-\-\-\-\-
  153198. Description:
  153199. small, powerful, scalable web/proxy server \- documentation
  153200. 1.9.15\-0ubuntu1:
  153201. \-\-\-\-\-\-\-\-\-\-
  153202. Description:
  153203. small, powerful, scalable web/proxy server \- documentation
  153204. nginx\-extras:
  153205. \-\-\-\-\-\-\-\-\-\-
  153206. 1.10.3\-0ubuntu0.16.04.2:
  153207. \-\-\-\-\-\-\-\-\-\-
  153208. Description:
  153209. nginx web/proxy server (extended version)
  153210. Provides:
  153211. httpd, httpd\-cgi, nginx
  153212. 1.9.15\-0ubuntu1:
  153213. \-\-\-\-\-\-\-\-\-\-
  153214. Description:
  153215. nginx web/proxy server (extended version)
  153216. Provides:
  153217. httpd, httpd\-cgi, nginx
  153218. nginx\-extras\-dbg:
  153219. \-\-\-\-\-\-\-\-\-\-
  153220. 1.10.3\-0ubuntu0.16.04.2:
  153221. \-\-\-\-\-\-\-\-\-\-
  153222. Description:
  153223. nginx web/proxy server (extended version) \- debugging symbols
  153224. 1.9.15\-0ubuntu1:
  153225. \-\-\-\-\-\-\-\-\-\-
  153226. Description:
  153227. nginx web/proxy server (extended version) \- debugging symbols
  153228. nginx\-full:
  153229. \-\-\-\-\-\-\-\-\-\-
  153230. 1.10.3\-0ubuntu0.16.04.2:
  153231. \-\-\-\-\-\-\-\-\-\-
  153232. Description:
  153233. nginx web/proxy server (standard version)
  153234. Provides:
  153235. httpd, httpd\-cgi, nginx
  153236. 1.9.15\-0ubuntu1:
  153237. \-\-\-\-\-\-\-\-\-\-
  153238. Description:
  153239. nginx web/proxy server (standard version)
  153240. Provides:
  153241. httpd, httpd\-cgi, nginx
  153242. nginx\-full\-dbg:
  153243. \-\-\-\-\-\-\-\-\-\-
  153244. 1.10.3\-0ubuntu0.16.04.2:
  153245. \-\-\-\-\-\-\-\-\-\-
  153246. Description:
  153247. nginx web/proxy server (standard version) \- debugging symbols
  153248. 1.9.15\-0ubuntu1:
  153249. \-\-\-\-\-\-\-\-\-\-
  153250. Description:
  153251. nginx web/proxy server (standard version) \- debugging symbols
  153252. nginx\-light:
  153253. \-\-\-\-\-\-\-\-\-\-
  153254. 1.10.3\-0ubuntu0.16.04.2:
  153255. \-\-\-\-\-\-\-\-\-\-
  153256. Description:
  153257. nginx web/proxy server (basic version)
  153258. Provides:
  153259. httpd, httpd\-cgi, nginx
  153260. 1.9.15\-0ubuntu1:
  153261. \-\-\-\-\-\-\-\-\-\-
  153262. Description:
  153263. nginx web/proxy server (basic version)
  153264. Provides:
  153265. httpd, httpd\-cgi, nginx
  153266. nginx\-light\-dbg:
  153267. \-\-\-\-\-\-\-\-\-\-
  153268. 1.10.3\-0ubuntu0.16.04.2:
  153269. \-\-\-\-\-\-\-\-\-\-
  153270. Description:
  153271. nginx web/proxy server (basic version) \- debugging symbols
  153272. 1.9.15\-0ubuntu1:
  153273. \-\-\-\-\-\-\-\-\-\-
  153274. Description:
  153275. nginx web/proxy server (basic version) \- debugging symbols
  153276. .ft P
  153277. .fi
  153278. .UNINDENT
  153279. .UNINDENT
  153280. .SS Minion Startup Events
  153281. .sp
  153282. When a minion starts up it sends a notification on the event bus with a tag
  153283. that looks like this: \fBsalt/minion/<minion_id>/start\fP\&. For historical reasons
  153284. the minion also sends a similar event with an event tag like this:
  153285. \fBminion_start\fP\&. This duplication can cause a lot of clutter on the event bus
  153286. when there are many minions. Set \fBenable_legacy_startup_events: False\fP in the
  153287. minion config to ensure only the \fBsalt/minion/<minion_id>/start\fP events are
  153288. sent.
  153289. .sp
  153290. The new \fBenable_legacy_startup_events\fP minion config option
  153291. defaults to \fBTrue\fP, but will be set to default to \fBFalse\fP beginning with
  153292. the Sodium release of Salt.
  153293. .sp
  153294. The Salt Syndic currently sends an old style \fBsyndic_start\fP event as well. The
  153295. syndic respects \fBenable_legacy_startup_events\fP as well.
  153296. .SS Failhard changes
  153297. .sp
  153298. It is now possible to override a global failhard setting with a state\-level
  153299. failhard setting. This is most useful in case where global failhard is set to
  153300. \fBTrue\fP and you want the execution not to stop for a specific state that
  153301. could fail, by setting the state level failhard to \fBFalse\fP\&.
  153302. This also allows for the use of \fBonfail*\fP\-requisites, which would previously
  153303. be ignored when a global failhard was set to \fBTrue\fP\&.
  153304. This is a deviation from previous behavior, where the global failhard setting
  153305. always resulted in an immediate stop whenever any state failed (regardless
  153306. of whether the failing state had a failhard setting of its own, or whether
  153307. any \fBonfail*\fP\-requisites were used).
  153308. .SS Pass Through Options to \fBfile.serialize\fP State
  153309. .sp
  153310. This allows for more granular control over the way in which the dataset is
  153311. serialized. See the documentation for the new \fBserializer_opts\fP and
  153312. \fBdeserializer_opts\fP options in the \fBfile.serialize\fP state for more information.
  153313. .SS \fBfile.patch\fP State Rewritten
  153314. .sp
  153315. The \fBfile.patch\fP state has been rewritten with
  153316. several new features:
  153317. .INDENT 0.0
  153318. .IP \(bu 2
  153319. Patch sources can now be remote files instead of only \fBsalt://\fP URLs
  153320. .IP \(bu 2
  153321. Multi\-file patches are now supported
  153322. .IP \(bu 2
  153323. Patch files can be templated
  153324. .UNINDENT
  153325. .sp
  153326. In addition, it is no longer necessary to specify what the hash of the patched
  153327. file should be.
  153328. .SS New no_proxy Minion Configuration
  153329. .sp
  153330. Pass a list of hosts using the \fBno_proxy\fP minion config option to bypass an HTTP
  153331. proxy.
  153332. .sp
  153333. \fBNOTE:\fP
  153334. .INDENT 0.0
  153335. .INDENT 3.5
  153336. This key does nothing unless proxy_host is configured and it does not support
  153337. any kind of wildcards.
  153338. .UNINDENT
  153339. .UNINDENT
  153340. .INDENT 0.0
  153341. .INDENT 3.5
  153342. .sp
  153343. .nf
  153344. .ft C
  153345. no_proxy: [ \(aq127.0.0.1\(aq, \(aqfoo.tld\(aq ]
  153346. .ft P
  153347. .fi
  153348. .UNINDENT
  153349. .UNINDENT
  153350. .SS Changes to \fBslack\fP Engine
  153351. .sp
  153352. The output returned to Slack from functions run using this engine is now
  153353. formatted using that function\(aqs proper outputter. Earlier releases would format
  153354. the output in YAML for all functions except for when states were run.
  153355. .SS Enhancements to \fBwtmp\fP Beacon
  153356. .sp
  153357. A new key, \fBaction\fP, has been added to the events fired by this beacon, which
  153358. will contain either the string \fBlogin\fP or \fBlogout\fP\&. This will simplify
  153359. reactors which use this beacon\(aqs data, as it will no longer be necessary to
  153360. check the integer value of the \fBtype\fP key to know whether the event is a
  153361. login or logout.
  153362. .sp
  153363. Additionally, in the event that your platform has a non\-standard \fButmp.h\fP,
  153364. you can now configure which type numbers indicate a login and logout.
  153365. .sp
  153366. See the \fBwtmp beacon documentation\fP for more
  153367. information.
  153368. .SS Deprecated and Removed Options
  153369. .SS API Removed Arguments
  153370. .sp
  153371. Support for LocalClient\(aqs \fBexpr_form\fP argument has
  153372. been removed. Please use \fBtgt_type\fP instead. This change was made due to
  153373. numerous reports of confusion among community members, since the targeting
  153374. method is published to minions as \fBtgt_type\fP, and appears as \fBtgt_type\fP
  153375. in the job cache as well.
  153376. .sp
  153377. Those who are using the LocalClient (either directly,
  153378. or implicitly via a netapi module) need to update
  153379. their code to use \fBtgt_type\fP\&.
  153380. .INDENT 0.0
  153381. .INDENT 3.5
  153382. .sp
  153383. .nf
  153384. .ft C
  153385. >>> import salt.client
  153386. >>> local = salt.client.LocalClient()
  153387. >>> local.cmd(\(aq*\(aq, \(aqcmd.run\(aq, [\(aqwhoami\(aq], tgt_type=\(aqglob\(aq)
  153388. {\(aqjerry\(aq: \(aqroot\(aq}
  153389. .ft P
  153390. .fi
  153391. .UNINDENT
  153392. .UNINDENT
  153393. .SS Minion Configuration Deprecated Option
  153394. .sp
  153395. The \fBmaster_shuffle\fP configuration option is deprecated as of the
  153396. \fB2019.2.0\fP release. Please use the \fBrandom_master\fP option instead.
  153397. .SS Module Removed Options
  153398. .INDENT 0.0
  153399. .IP \(bu 2
  153400. The \fBnapalm_network\fP module has been
  153401. changed as follows:
  153402. .INDENT 2.0
  153403. .INDENT 3.5
  153404. .INDENT 0.0
  153405. .IP \(bu 2
  153406. Support for the \fBtemplate_path\fP has been removed from
  153407. \fBnet.load_template\fP
  153408. function. This is because support for NAPALM native templates has been
  153409. dropped.
  153410. .UNINDENT
  153411. .UNINDENT
  153412. .UNINDENT
  153413. .IP \(bu 2
  153414. The \fBpip\fP module has been changed as follows:
  153415. .INDENT 2.0
  153416. .INDENT 3.5
  153417. .INDENT 0.0
  153418. .IP \(bu 2
  153419. Support for the \fBno_chown\fP option has been removed from
  153420. \fBpip.install\fP function.
  153421. .UNINDENT
  153422. .UNINDENT
  153423. .UNINDENT
  153424. .IP \(bu 2
  153425. The \fBtrafficserver\fP module has been
  153426. changed as follows:
  153427. .INDENT 2.0
  153428. .INDENT 3.5
  153429. .INDENT 0.0
  153430. .IP \(bu 2
  153431. The \fBtrafficserver.match_var\fP function was removed. Please use
  153432. \fBtrafficserver.match_metric\fP instead.
  153433. .IP \(bu 2
  153434. The \fBtrafficserver.read_var\fP function was removed. Please use
  153435. \fBtrafficserver.read_config\fP instead.
  153436. .IP \(bu 2
  153437. The \fBtrafficserver.set_var\fP function was removed. Please use
  153438. \fBtrafficserver.set_config\fP instead.
  153439. .UNINDENT
  153440. .UNINDENT
  153441. .UNINDENT
  153442. .IP \(bu 2
  153443. The \fBwin_update\fP module has been removed. It has been replaced by
  153444. \fBwin_wua\fP\&.
  153445. .IP \(bu 2
  153446. The \fBwin_wua\fP module has been changed as
  153447. follows:
  153448. .INDENT 2.0
  153449. .INDENT 3.5
  153450. .INDENT 0.0
  153451. .IP \(bu 2
  153452. The \fBwin_wua.download_update\fP and \fBwin_wua.download_updates\fP
  153453. functions have been removed. Please use \fBwin_wua.download\fP instead.
  153454. .IP \(bu 2
  153455. The \fBwin_wua.install_update\fP and \fBwin_wua.install_updates\fP
  153456. functions have been removed. Please use \fBwin_wua.install\fP instead.
  153457. .IP \(bu 2
  153458. The \fBwin_wua.list_update\fP function has been removed. Please use
  153459. functions have been removed. Please use \fBwin_wua.get\fP instead.
  153460. .IP \(bu 2
  153461. The \fBwin_wua.list_updates\fP function has been removed. Please use
  153462. functions have been removed. Please use \fBwin_wua.list\fP instead.
  153463. .UNINDENT
  153464. .UNINDENT
  153465. .UNINDENT
  153466. .UNINDENT
  153467. .SS Pillar Removed Option
  153468. .INDENT 0.0
  153469. .IP \(bu 2
  153470. The \fBvault\fP external pillar has been changed as
  153471. follows:
  153472. .INDENT 2.0
  153473. .INDENT 3.5
  153474. .INDENT 0.0
  153475. .IP \(bu 2
  153476. Support for the \fBprofile\fP argument was removed. Any options passed up
  153477. until and following the first \fBpath=\fP are discarded.
  153478. .UNINDENT
  153479. .UNINDENT
  153480. .UNINDENT
  153481. .UNINDENT
  153482. .SS Roster Removed Option
  153483. .INDENT 0.0
  153484. .IP \(bu 2
  153485. The \fBcache\fP roster has been changed as follows:
  153486. .INDENT 2.0
  153487. .INDENT 3.5
  153488. .INDENT 0.0
  153489. .IP \(bu 2
  153490. Support for \fBroster_order\fP as a list or tuple has been removed. As of
  153491. the \fB2019.2.0\fP release, \fBroster_order\fP must be a dictionary.
  153492. .IP \(bu 2
  153493. The \fBroster_order\fP option now includes IPv6 in addition to IPv4 for the
  153494. \fBprivate\fP, \fBpublic\fP, \fBglobal\fP or \fBlocal\fP settings. The syntax for
  153495. these settings has changed to \fBipv4\-*\fP or \fBipv6\-*\fP, respectively.
  153496. .UNINDENT
  153497. .UNINDENT
  153498. .UNINDENT
  153499. .UNINDENT
  153500. .SS State Removed Modules and Options
  153501. .INDENT 0.0
  153502. .IP \(bu 2
  153503. The \fBdocker\fP state module has been removed
  153504. .INDENT 2.0
  153505. .INDENT 3.5
  153506. .INDENT 0.0
  153507. .IP \(bu 2
  153508. In 2017.7.0, the states from this module were
  153509. split into four separate state modules:
  153510. .INDENT 2.0
  153511. .INDENT 3.5
  153512. .INDENT 0.0
  153513. .IP \(bu 2
  153514. \fBdocker_container\fP
  153515. .IP \(bu 2
  153516. \fBdocker_image\fP
  153517. .IP \(bu 2
  153518. \fBdocker_volume\fP
  153519. .IP \(bu 2
  153520. \fBdocker_network\fP
  153521. .UNINDENT
  153522. .UNINDENT
  153523. .UNINDENT
  153524. .IP \(bu 2
  153525. The \fBdocker\fP module remained, for backward\-compatibility, but it has now
  153526. been removed. Please update SLS files to use the new state names:
  153527. .INDENT 2.0
  153528. .INDENT 3.5
  153529. .INDENT 0.0
  153530. .IP \(bu 2
  153531. \fBdocker.running\fP => \fBdocker_container.running\fP
  153532. .IP \(bu 2
  153533. \fBdocker.stopped\fP => \fBdocker_container.stopped\fP
  153534. .IP \(bu 2
  153535. \fBdocker.absent\fP => \fBdocker_container.absent\fP
  153536. .IP \(bu 2
  153537. \fBdocker.network_present\fP => \fBdocker_network.present\fP
  153538. .IP \(bu 2
  153539. \fBdocker.network_absent\fP => \fBdocker_network.absent\fP
  153540. .IP \(bu 2
  153541. \fBdocker.image_present\fP => \fBdocker_image.present\fP
  153542. .IP \(bu 2
  153543. \fBdocker.image_absent\fP => \fBdocker_image.absent\fP
  153544. .IP \(bu 2
  153545. \fBdocker.volume_present\fP => \fBdocker_volume.present\fP
  153546. .IP \(bu 2
  153547. \fBdocker.volume_absent\fP => \fBdocker_volume.absent\fP
  153548. .UNINDENT
  153549. .UNINDENT
  153550. .UNINDENT
  153551. .UNINDENT
  153552. .UNINDENT
  153553. .UNINDENT
  153554. .IP \(bu 2
  153555. The \fBdocker_network\fP state module has
  153556. been changed as follows:
  153557. .INDENT 2.0
  153558. .INDENT 3.5
  153559. .INDENT 0.0
  153560. .IP \(bu 2
  153561. The \fBdriver\fP option has been removed from
  153562. \fBdocker_network.absent\fP\&. It
  153563. had no functionality, as the state simply deletes the specified network
  153564. name if it exists.
  153565. .UNINDENT
  153566. .UNINDENT
  153567. .UNINDENT
  153568. .IP \(bu 2
  153569. The deprecated \fBref\fP option has been removed from the
  153570. \fBgit.detached\fP state. Please use \fBrev\fP
  153571. instead.
  153572. .IP \(bu 2
  153573. The \fBk8s\fP state module has been removed in favor of the \fBkubernetes\fP state mdoule. Please update SLS files as follows:
  153574. .INDENT 2.0
  153575. .INDENT 3.5
  153576. .INDENT 0.0
  153577. .IP \(bu 2
  153578. In place of \fBk8s.label_present\fP, use
  153579. \fBkubernetes.node_label_present\fP
  153580. .IP \(bu 2
  153581. In place of \fBk8s.label_absent\fP, use
  153582. \fBkubernetes.node_label_absent\fP
  153583. .IP \(bu 2
  153584. In place of \fBk8s.label_folder_absent\fP, use
  153585. \fBkubernetes.node_label_folder_absent\fP
  153586. .UNINDENT
  153587. .UNINDENT
  153588. .UNINDENT
  153589. .IP \(bu 2
  153590. Support for the \fBtemplate_path\fP option in the \fBnetconfig.managed
  153591. <salt.states.netconfig.managed()\fP state has been removed. This is because
  153592. support for NAPALM native templates has been dropped.
  153593. .IP \(bu 2
  153594. Support for the \fBno_chown\fP option in the
  153595. \fBpip.insalled\fP state has been removed.
  153596. .IP \(bu 2
  153597. The \fBtrafficserver.set_var\fP
  153598. state has been removed. Please use \fBtrafficserver.config\fP instead.
  153599. .IP \(bu 2
  153600. Support for the \fBno_chown\fP option in the
  153601. :py:func\(gavirtualenv.managed <salt.states.virtualenv.managed>\(ga function has
  153602. been removed.
  153603. .IP \(bu 2
  153604. The \fBwin_update\fP state module has been removed. It has been replaced by
  153605. \fBwin_wua\fP\&.
  153606. .IP \(bu 2
  153607. Support for virtual packages has been removed from the
  153608. py:mod:\fIpkg state <salt.states.pkg>\fP\&.
  153609. .UNINDENT
  153610. .SS Utils Removed Options
  153611. .sp
  153612. The \fBcloud\fP utils module had the following changes:
  153613. .INDENT 0.0
  153614. .IP \(bu 2
  153615. Support for the \fBcache_nodes_ip\fP function in \fBsalt utils module\fP
  153616. has been removed. The function was incomplete and non\-functional.
  153617. .UNINDENT
  153618. .sp
  153619. The \fBvault\fP utils module had the following changes:
  153620. .INDENT 0.0
  153621. .IP \(bu 2
  153622. Support for specifying Vault connection data within a \(aqprofile\(aq has been removed.
  153623. Please see the \fBvault execution module\fP documentation for
  153624. details on the new configuration schema.
  153625. .UNINDENT
  153626. .SS Dependency Deprecations
  153627. .sp
  153628. Salt\-Cloud has been updated to use the \fBpypsexec\fP Python library instead of the
  153629. \fBwinexe\fP executable. Both \fBwinexe\fP and \fBpypsexec\fP run remote commands
  153630. against Windows OSes. Since \fBwinexe\fP is not packaged for every system, it has
  153631. been deprecated in favor of \fBpypsexec\fP\&.
  153632. .sp
  153633. Salt\-Cloud has deprecated the use \fBimpacket\fP in favor of \fBsmbprotocol\fP\&.
  153634. This changes was made because \fBimpacket\fP is not compatible with Python 3.
  153635. .SS SaltSSH Major Updates
  153636. .sp
  153637. SaltSSH now works across different major Python versions. Python 2.7 ~ Python 3.x
  153638. are now supported transparently. Requirement is, however, that the SaltMaster should
  153639. have installed Salt, including all related dependencies for Python 2 and Python 3.
  153640. Everything needs to be importable from the respective Python environment.
  153641. .sp
  153642. SaltSSH can bundle up an arbitrary version of Salt. If there would be an old box for
  153643. example, running an outdated and unsupported Python 2.6, it is still possible from
  153644. a SaltMaster with Python 3.5 or newer to access it. This feature requires an additional
  153645. configuration in /etc/salt/master as follows:
  153646. .INDENT 0.0
  153647. .INDENT 3.5
  153648. .sp
  153649. .nf
  153650. .ft C
  153651. ssh_ext_alternatives:
  153652. 2016.3: # Namespace, can be actually anything.
  153653. py\-version: [2, 6] # Constraint to specific interpreter version
  153654. path: /opt/2016.3/salt # Main Salt installation
  153655. dependencies: # List of dependencies and their installation paths
  153656. jinja2: /opt/jinja2
  153657. yaml: /opt/yaml
  153658. tornado: /opt/tornado
  153659. msgpack: /opt/msgpack
  153660. certifi: /opt/certifi
  153661. singledispatch: /opt/singledispatch.py
  153662. singledispatch_helpers: /opt/singledispatch_helpers.py
  153663. markupsafe: /opt/markupsafe
  153664. backports_abc: /opt/backports_abc.py
  153665. .ft P
  153666. .fi
  153667. .UNINDENT
  153668. .UNINDENT
  153669. .sp
  153670. It is also possible to use several alternative versions of Salt. You can for
  153671. instance generate a minimal tarball using runners and include that. But this is
  153672. only possible, when such specific Salt version is also available on the Master
  153673. machine, although does not need to be directly installed together with the
  153674. older Python interpreter.
  153675. .sp
  153676. SaltSSH now support private key\(aqs passphrase. You can configure it by:
  153677. .INDENT 0.0
  153678. .IP \(bu 2
  153679. \fI\-\-priv\-passwd\fP for salt\-ssh cli
  153680. .IP \(bu 2
  153681. \fIsalt_priv_passwd\fP for salt master configure file
  153682. .IP \(bu 2
  153683. \fIpriv_passwd\fP for salt roster file
  153684. .UNINDENT
  153685. .SS State Module Changes
  153686. .SS \fBsalt\fP State Module (used in orchestration)
  153687. .sp
  153688. The \fBtest\fP option now defaults to None. A value of \fBTrue\fP or \fBFalse\fP set
  153689. here is passed to the state being run and can be used to override a \fBtest:
  153690. True\fP option set in the minion\(aqs config file. In previous releases the
  153691. minion\(aqs config option would take precedence and it would be impossible to run
  153692. an orchestration on a minion with test mode set to True in the config file.
  153693. .sp
  153694. If a minion is not in permanent test mode due to the config file and the \(aqtest\(aq
  153695. argument here is left as None then a value of \fBtest=True\fP on the command\-line is
  153696. passed correctly to the minion to run an orchestration in test mode. At present
  153697. it is not possible to pass \fBtest=False\fP on the command\-line to override a
  153698. minion in permanent test mode and so the \fBtest: False\fP option must still be set
  153699. in the orchestration file.
  153700. .SS \fBevent.send\fP State
  153701. .sp
  153702. The \fBevent.send\fP state does not know the
  153703. results of the sent event, so returns changed every state run. It can now be
  153704. set to return changed or unchanged.
  153705. .SS \fBinfluxdb_user.present\fP Influxdb User Module State
  153706. .sp
  153707. The \fBpassword\fP parameter has been changed to \fBpasswd\fP to remove the
  153708. name collusion with the influxdb client configuration (\fBclient_kwargs\fP)
  153709. allowing management of users when authentication is enabled on the influxdb
  153710. instance
  153711. .sp
  153712. Old behavior:
  153713. .INDENT 0.0
  153714. .INDENT 3.5
  153715. .sp
  153716. .nf
  153717. .ft C
  153718. influxdb_user.present:
  153719. \- name: exampleuser
  153720. \- password: exampleuserpassword
  153721. \- user: admin
  153722. \- password: adminpassword
  153723. .ft P
  153724. .fi
  153725. .UNINDENT
  153726. .UNINDENT
  153727. .sp
  153728. New behavior:
  153729. .INDENT 0.0
  153730. .INDENT 3.5
  153731. .sp
  153732. .nf
  153733. .ft C
  153734. influxdb_user.present:
  153735. \- name: exampleuser
  153736. \- passwd: exampleuserpassword
  153737. \- user: admin
  153738. \- password: adminpassword
  153739. .ft P
  153740. .fi
  153741. .UNINDENT
  153742. .UNINDENT
  153743. .SS \fBwinrepo_cache_expire_min\fP Windows Package Definitions Caching
  153744. .sp
  153745. The \fBwinrepo_cache_expire_min\fP has been changed from 0 to 1800 (30 minutes)
  153746. For example if you run highstate the package definitions are normally updated,
  153747. however now if the package definitions are younger than \fBwinrepo_cache_expire_min\fP
  153748. (30 minutes) the package definitions will not be refreshed, reducing the amount
  153749. of time taken to run a 2nd highstate. To get the old behaviour change the value
  153750. back to 0 in the minion configuration file. This also effects the behaviour of
  153751. other functions which default to refresh. The \fBpkg.refresh_db\fP will always
  153752. refresh the package definitions.
  153753. .SS LDAP External Authentication
  153754. .SS freeipa \fBgroupattribute\fP support
  153755. .sp
  153756. Previously, if Salt was using external authentication against a freeipa LDAP
  153757. system it could only search for users via the \fBaccountattributename\fP field.
  153758. This release add an additional search using the \fBgroupattribute\fP field as
  153759. well. The original \fBaccountattributename\fP search is done first then the
  153760. \fBgroupattribute\fP allowing for backward compatibility with previous Salt
  153761. releases.
  153762. .SS Jinja Include Relative Paths
  153763. .sp
  153764. When a jinja include template name begins with \fB\&./\fP or
  153765. \fB\&../\fP then the import will be relative to the importing file.
  153766. .sp
  153767. Prior practices required the following construct:
  153768. .INDENT 0.0
  153769. .INDENT 3.5
  153770. .sp
  153771. .nf
  153772. .ft C
  153773. {% from tpldir ~ \(aq/foo\(aq import bar %}
  153774. .ft P
  153775. .fi
  153776. .UNINDENT
  153777. .UNINDENT
  153778. .sp
  153779. A more "natural" construct is now supported:
  153780. .INDENT 0.0
  153781. .INDENT 3.5
  153782. .sp
  153783. .nf
  153784. .ft C
  153785. {% from \(aq./foo\(aq import bar %}
  153786. .ft P
  153787. .fi
  153788. .UNINDENT
  153789. .UNINDENT
  153790. .sp
  153791. Comparatively when importing from a parent directory \- prior practice:
  153792. .INDENT 0.0
  153793. .INDENT 3.5
  153794. .sp
  153795. .nf
  153796. .ft C
  153797. {% from tpldir ~ \(aq/../foo\(aq import bar %}
  153798. .ft P
  153799. .fi
  153800. .UNINDENT
  153801. .UNINDENT
  153802. .sp
  153803. New style for including from a parent directory:
  153804. .INDENT 0.0
  153805. .INDENT 3.5
  153806. .sp
  153807. .nf
  153808. .ft C
  153809. {% from \(aq../foo\(aq import bar %}
  153810. .ft P
  153811. .fi
  153812. .UNINDENT
  153813. .UNINDENT
  153814. .SS salt\-api
  153815. .SS salt\-api Windows support
  153816. .sp
  153817. Previously, salt\-api was was not supported on the Microsoft Windows platforms. Now it is!
  153818. salt\-api provides a RESTful interface to a running Salt system. It allows
  153819. for viewing minions, runners, and jobs as well as running execution modules
  153820. and runners of a running Salt system through a REST API that returns JSON.
  153821. See \fI\%Salt\-API\fP documentation.
  153822. .. _Salt\-API: \fI\%https://docs.saltstack.com/en/latest/topics/netapi/index.html\fP
  153823. .SS Logging Changes
  153824. .SS Include Job ID (JID) in Minion and Master Logs
  153825. .sp
  153826. The Job ID (JID) can now be optionally included in both the minion and master logs
  153827. by including \fBjid\fP in either the \fBlog_fmt_console\fP or \fBlog_fmt_logfile\fP
  153828. configuration option:
  153829. .INDENT 0.0
  153830. .INDENT 3.5
  153831. .sp
  153832. .nf
  153833. .ft C
  153834. log_fmt_console: "[%(levelname)\-8s] %(jid)s %(message)s"
  153835. .ft P
  153836. .fi
  153837. .UNINDENT
  153838. .UNINDENT
  153839. .sp
  153840. The will cause the JID to be included in any log entries that are related to a
  153841. particular Salt job. The JID will be included using the default format,
  153842. \fB[JID: %(jid)s]\fP but can be overriden with the \fBlog_fmt_jid\fP configuration item.
  153843. .INDENT 0.0
  153844. .INDENT 3.5
  153845. .sp
  153846. .nf
  153847. .ft C
  153848. log_fmt_jid: "[JID: %(jid)s]"
  153849. .ft P
  153850. .fi
  153851. .UNINDENT
  153852. .UNINDENT
  153853. .SS Security
  153854. .SS Windows runas changes
  153855. .sp
  153856. A password is no longer required with \fBrunas\fP under normal circumstances.
  153857. The password option is only needed if the minion process is run under a
  153858. restricted (non\-administrator) account. In the aforementioned case, a password
  153859. is only required when using the \fBrunas\fP argument to run command as a
  153860. different user.
  153861. .SS New Modules
  153862. .SS Execution Modules
  153863. .INDENT 0.0
  153864. .IP \(bu 2
  153865. \fBsalt.modules.ciscoconfparse_mod\fP
  153866. .IP \(bu 2
  153867. \fBsalt.modules.jira\fP
  153868. .IP \(bu 2
  153869. \fBsalt.modules.google_chat\fP
  153870. .IP \(bu 2
  153871. \fBsalt.modules.iosconfig\fP
  153872. .IP \(bu 2
  153873. \fBsalt.modules.netmiko\fP
  153874. .IP \(bu 2
  153875. \fBsalt.modules.nxos_api\fP
  153876. .IP \(bu 2
  153877. \fBsalt.modules.peeringdb\fP
  153878. .IP \(bu 2
  153879. \fBsalt.modules.purefb\fP
  153880. .IP \(bu 2
  153881. \fBsalt.modules.pyeapi\fP
  153882. .UNINDENT
  153883. .SS Pillar Modules
  153884. .INDENT 0.0
  153885. .IP \(bu 2
  153886. \fBnetbox\fP
  153887. .UNINDENT
  153888. .SS Proxy Modules
  153889. .INDENT 0.0
  153890. .IP \(bu 2
  153891. \fBsalt.proxy.netmiko\fP
  153892. .IP \(bu 2
  153893. \fBsalt.proxy.nxos_api\fP
  153894. .IP \(bu 2
  153895. \fBsalt.proxy.pyeapi\fP
  153896. .UNINDENT
  153897. .SS Salt 2019.2.1 Release Notes
  153898. .sp
  153899. Version 2019.2.1 is a bugfix release for 2019.2.0\&.
  153900. .SS Known Issues
  153901. .INDENT 0.0
  153902. .IP \(bu 2
  153903. \fBISSUE\fP \fI\%#54751\fP: Proxy minion fails to start. Fix planned in 2019.2.2 release.
  153904. .IP \(bu 2
  153905. \fBISSUE\fP \fI\%#54762\fP: URIs with IPv6 addresses are broken, preventing master\-minion communication in IPv6\-only environments. Fix planned in 2019.2.2 release.
  153906. .IP \(bu 2
  153907. \fBISSUE\fP \fI\%#54776\fP: Minion fails to start when it contains \fIping_interval\fP in minion configuration file. Fix planned in 2019.2.2 release.
  153908. .IP \(bu 2
  153909. \fBISSUE\fP \fI\%#54731\fP: Returners (except for default salt master returner) not loading properly in Py3. Fix planned in 2019.2.2 release.
  153910. .IP \(bu 2
  153911. \fBISSUE\fP \fI\%#54758\fP: salt\-call state.show_states gives "Passed invalid arguments" error when a sls defined in top.sls file is missing. Fix planned in 2019.2.2 release.
  153912. .IP \(bu 2
  153913. \fBISSUE\fP \fI\%#54765\fP: Jinja from import is broken. Fix planned in 2019.2.2 release.
  153914. .IP \(bu 2
  153915. \fBISSUE\fP \fI\%#54771\fP: Affects only Debian 10. pkgrepo.managed does not work if used with proxy (configured at salt\-minion). No fix date available yet.
  153916. .IP \(bu 2
  153917. \fBISSUE\fP \fI\%#54759\fP: Deprecation warnings for pyzmq. No fix date available yet.
  153918. .UNINDENT
  153919. .SS Change to YAML Renderer
  153920. .INDENT 0.0
  153921. .INDENT 3.5
  153922. .sp
  153923. .nf
  153924. .ft C
  153925. /etc/foo.conf:
  153926. file.managed:
  153927. \- source: salt://foo.conf.jinja
  153928. \- template: jinja
  153929. \- context:
  153930. data: {{ data }}
  153931. .ft P
  153932. .fi
  153933. .UNINDENT
  153934. .UNINDENT
  153935. .sp
  153936. In 2019.2.0, the above SLS will result in an error message following changes to
  153937. the YAML renderer that now require the new Jinja filter \fItojson\fP\&.
  153938. .INDENT 0.0
  153939. .INDENT 3.5
  153940. .sp
  153941. .nf
  153942. .ft C
  153943. /etc/foo.conf:
  153944. file.managed:
  153945. \- source: salt://foo.conf.jinja
  153946. \- template: jinja
  153947. \- context:
  153948. data: {{ data|tojson }}
  153949. .ft P
  153950. .fi
  153951. .UNINDENT
  153952. .UNINDENT
  153953. .sp
  153954. In 2019.2.1, we introduce a new configuration option for both the Salt master and Salt minion
  153955. configurations to be able to support the older YAML renderer. Using the option
  153956. \fBuse_yamlloader_old\fP will allow the YAML renderer to function as before.
  153957. .SS Statistics
  153958. .INDENT 0.0
  153959. .IP \(bu 2
  153960. Total Merges: \fB541\fP
  153961. .IP \(bu 2
  153962. Total Issue References: \fB70\fP
  153963. .IP \(bu 2
  153964. Total PR References: \fB355\fP
  153965. .IP \(bu 2
  153966. Contributors: \fB49\fP (\fI\%Akm0d\fP, \fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%Ethyling\fP, \fI\%FireGrace\fP, \fI\%KChandrashekhar\fP, \fI\%ScoreUnder\fP, \fI\%amendlik\fP, \fI\%aplanas\fP, \fI\%arsiesys\fP, \fI\%bbinet\fP, \fI\%bryceml\fP, \fI\%cbosdo\fP, \fI\%cdalvaro\fP, \fI\%chdamianos\fP, \fI\%cmcmarrow\fP, \fI\%cro\fP, \fI\%damianosSemmle\fP, \fI\%dmurphy18\fP, \fI\%doesitblend\fP, \fI\%dwoz\fP, \fI\%felippeb\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%github\-abcde\fP, \fI\%isbm\fP, \fI\%jfindlay\fP, \fI\%lomeroe\fP, \fI\%mattLLVW\fP, \fI\%mattp\-\fP, \fI\%mirceaulinic\fP, \fI\%nicholasmhughes\fP, \fI\%rbthomp\fP, \fI\%rombert\fP, \fI\%rsmekala\fP, \fI\%s0undt3ch\fP, \fI\%sathieu\fP, \fI\%sbrennan4\fP, \fI\%sdodsley\fP, \fI\%simonflood\fP, \fI\%sjorge\fP, \fI\%soer7022\fP, \fI\%stratusjerry\fP, \fI\%tanlingyun2005\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%waynew\fP, \fI\%weswhet\fP, \fI\%xuhcc\fP)
  153967. .UNINDENT
  153968. .SS Changelog for v2019.2.0..v2019.2.1
  153969. .sp
  153970. \fIGenerated at: 2019\-09\-09 19:56:22 UTC\fP
  153971. .INDENT 0.0
  153972. .IP \(bu 2
  153973. \fBISSUE\fP \fI\%#54429\fP: (\fI\%frogunder\fP) [2019.2.1] Sudo user error (refs: \fI\%#54433\fP)
  153974. .IP \(bu 2
  153975. \fBPR\fP \fI\%#54433\fP: (\fI\%dwoz\fP) Re\-gen executors with proper arguments
  153976. @ \fI2019\-09\-09 19:14:05 UTC\fP
  153977. .INDENT 2.0
  153978. .IP \(bu 2
  153979. 62fc61c Merge pull request \fI\%#54433\fP from dwoz/sudo_minion
  153980. .IP \(bu 2
  153981. e08eb19 Merge branch \(aq2019.2.1\(aq into sudo_minion
  153982. .UNINDENT
  153983. .IP \(bu 2
  153984. \fBPR\fP \fI\%#54434\fP: (\fI\%frogunder\fP) fix_docs
  153985. @ \fI2019\-09\-09 18:55:28 UTC\fP
  153986. .INDENT 2.0
  153987. .IP \(bu 2
  153988. 76fac57 Merge pull request \fI\%#54434\fP from frogunder/fix_doc
  153989. .IP \(bu 2
  153990. 2d22d73 fix_docs error
  153991. .IP \(bu 2
  153992. a266a5c fix_docs
  153993. .IP \(bu 2
  153994. db5464a Fix linter warts
  153995. .IP \(bu 2
  153996. 144a600 Re\-gen executors with proper arguments
  153997. .UNINDENT
  153998. .IP \(bu 2
  153999. \fBPR\fP \fI\%#54424\fP: (\fI\%frogunder\fP) remove in progress from release_notes 2019.2.1
  154000. @ \fI2019\-09\-05 23:11:03 UTC\fP
  154001. .INDENT 2.0
  154002. .IP \(bu 2
  154003. 4071dcb Merge pull request \fI\%#54424\fP from frogunder/releasenotes_201921_new
  154004. .IP \(bu 2
  154005. b66436f Update 2019.2.1.rst
  154006. .IP \(bu 2
  154007. bcfef11 remove in progress from release_notes 2019.2.1
  154008. .UNINDENT
  154009. .IP \(bu 2
  154010. \fBPR\fP \fI\%#54416\fP: (\fI\%frogunder\fP) Update man_pages for 2019.2.1
  154011. @ \fI2019\-09\-05 22:48:51 UTC\fP
  154012. .INDENT 2.0
  154013. .IP \(bu 2
  154014. c1587cc Merge pull request \fI\%#54416\fP from frogunder/man_pages_201921
  154015. .IP \(bu 2
  154016. 6f7c4ee Update man_pages for 2019.2.1
  154017. .UNINDENT
  154018. .IP \(bu 2
  154019. \fBPR\fP \fI\%#54419\fP: (\fI\%frogunder\fP) releasenotes 2019.2.1
  154020. @ \fI2019\-09\-05 22:48:42 UTC\fP
  154021. .INDENT 2.0
  154022. .IP \(bu 2
  154023. 3118e2f Merge pull request \fI\%#54419\fP from frogunder/release_notes_201921
  154024. .IP \(bu 2
  154025. 2caee96 Update doc/topics/releases/2019.2.1.rst
  154026. .IP \(bu 2
  154027. ffabde2 Update 2019.2.1.rst
  154028. .IP \(bu 2
  154029. dd6426d Update doc/topics/releases/2019.2.1.rst
  154030. .IP \(bu 2
  154031. 9d4239c Update doc/topics/releases/2019.2.1.rst
  154032. .IP \(bu 2
  154033. 8c60ae4 Update doc/topics/releases/2019.2.1.rst
  154034. .IP \(bu 2
  154035. 72cb24c releasenotes 2019.2.1
  154036. .UNINDENT
  154037. .IP \(bu 2
  154038. \fBPR\fP \fI\%#54409\fP: (\fI\%dwoz\fP) Point salt\-call to correct multi\-master configs
  154039. @ \fI2019\-09\-04 20:08:24 UTC\fP
  154040. .INDENT 2.0
  154041. .IP \(bu 2
  154042. 04e28cf Merge pull request \fI\%#54409\fP from dwoz/mm_log
  154043. .IP \(bu 2
  154044. e207de6 Point salt\-call to correct multi\-master configs
  154045. .UNINDENT
  154046. .IP \(bu 2
  154047. \fBPR\fP \fI\%#54396\fP: (\fI\%dwoz\fP) Use different logging port for multimaster tests
  154048. @ \fI2019\-09\-03 23:20:23 UTC\fP
  154049. .INDENT 2.0
  154050. .IP \(bu 2
  154051. 2c281e0 Merge pull request \fI\%#54396\fP from dwoz/multimaster_logging
  154052. .IP \(bu 2
  154053. 104e0a0 Use different logging port for multimaster tests
  154054. .UNINDENT
  154055. .IP \(bu 2
  154056. \fBISSUE\fP \fI\%#54256\fP: (\fI\%sleminov\-tc\fP) Empty salt api token file breaks maintenance process. (refs: \fI\%#54325\fP, \fI\%#54324\fP, \fI\%#54388\fP, \fI\%#54376\fP)
  154057. .IP \(bu 2
  154058. \fBISSUE\fP \fI\%#37945\fP: (\fI\%gstachowiak\fP) Missing exception handling in salt.master.Maintenance. Process never completes. (refs: \fI\%#54325\fP, \fI\%#54324\fP, \fI\%#54388\fP, \fI\%#54376\fP)
  154059. .IP \(bu 2
  154060. \fBPR\fP \fI\%#54388\fP: (\fI\%dwoz\fP) 54256 re fix empty api token 2019.2.1
  154061. @ \fI2019\-09\-03 23:19:20 UTC\fP
  154062. .INDENT 2.0
  154063. .IP \(bu 2
  154064. \fBPR\fP \fI\%#54325\fP: (\fI\%waynew\fP) Delete bad API token files (refs: \fI\%#54388\fP)
  154065. .IP \(bu 2
  154066. \fBPR\fP \fI\%#54324\fP: (\fI\%waynew\fP) Delete bad API token files (refs: \fI\%#54325\fP, \fI\%#54388\fP)
  154067. .IP \(bu 2
  154068. 730a007 Merge pull request \fI\%#54388\fP from dwoz/54256\-re\-fix\-empty\-api\-token\-2019.2.1
  154069. .IP \(bu 2
  154070. 80651d3 Fix linter
  154071. .IP \(bu 2
  154072. 982ed3d Delete bad API token files
  154073. .UNINDENT
  154074. .IP \(bu 2
  154075. \fBISSUE\fP \fI\%#54256\fP: (\fI\%sleminov\-tc\fP) Empty salt api token file breaks maintenance process. (refs: \fI\%#54325\fP, \fI\%#54324\fP, \fI\%#54388\fP, \fI\%#54376\fP)
  154076. .IP \(bu 2
  154077. \fBISSUE\fP \fI\%#37945\fP: (\fI\%gstachowiak\fP) Missing exception handling in salt.master.Maintenance. Process never completes. (refs: \fI\%#54325\fP, \fI\%#54324\fP, \fI\%#54388\fP, \fI\%#54376\fP)
  154078. .IP \(bu 2
  154079. \fBPR\fP \fI\%#54376\fP: (\fI\%dwoz\fP) Move tokens in place with an atomic operation
  154080. @ \fI2019\-09\-03 20:40:50 UTC\fP
  154081. .INDENT 2.0
  154082. .IP \(bu 2
  154083. 11016ce Merge pull request \fI\%#54376\fP from dwoz/tmp_token
  154084. .IP \(bu 2
  154085. 0b28c60 Fix linter complaints
  154086. .IP \(bu 2
  154087. 8e33343 Move tokens in place with an atomic operation
  154088. .UNINDENT
  154089. .IP \(bu 2
  154090. \fBPR\fP \fI\%#54386\fP: (\fI\%twangboy\fP) Fix unit.utils.test_win_dacl (2019.2.1)
  154091. @ \fI2019\-09\-03 16:57:25 UTC\fP
  154092. .INDENT 2.0
  154093. .IP \(bu 2
  154094. 5161203 Merge pull request \fI\%#54386\fP from twangboy/fix_test_win_dacl_2019.2.1
  154095. .IP \(bu 2
  154096. b8fa7d3 Sort the perms
  154097. .UNINDENT
  154098. .IP \(bu 2
  154099. \fBPR\fP \fI\%#54355\fP: (\fI\%s0undt3ch\fP) [2019.2.1] [GitPillar Tests] Have the started processes log instead of just writing to stdout/stderr
  154100. @ \fI2019\-08\-29 23:26:50 UTC\fP
  154101. .INDENT 2.0
  154102. .IP \(bu 2
  154103. b4caaad Merge pull request \fI\%#54355\fP from s0undt3ch/hotfix/test\-daemons\-2019.2.1
  154104. .IP \(bu 2
  154105. 561c0a2 Have the started processes log instead of just writing to stdout/stderr
  154106. .IP \(bu 2
  154107. c2a3115 Don\(aqt overwritethe stderr logger
  154108. .UNINDENT
  154109. .IP \(bu 2
  154110. \fBPR\fP \fI\%#54353\fP: (\fI\%cmcmarrow\fP) adds @skipIf not windows
  154111. @ \fI2019\-08\-29 19:33:11 UTC\fP
  154112. .INDENT 2.0
  154113. .IP \(bu 2
  154114. ce5b109 Merge pull request \fI\%#54353\fP from cmcmarrow/2019_win_system_skip
  154115. .IP \(bu 2
  154116. 8e28074 adds @skipIf not windows
  154117. .UNINDENT
  154118. .IP \(bu 2
  154119. \fBPR\fP \fI\%#54338\fP: (\fI\%dwoz\fP) Log server closes completely during shutdown
  154120. @ \fI2019\-08\-29 17:14:05 UTC\fP
  154121. .INDENT 2.0
  154122. .IP \(bu 2
  154123. 94c03e5 Merge pull request \fI\%#54338\fP from dwoz/logging_fixup
  154124. .IP \(bu 2
  154125. a3e227e Log server closes completely durring shutdown
  154126. .UNINDENT
  154127. .IP \(bu 2
  154128. \fBPR\fP \fI\%#54327\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Catch the AccessDenied exception and continue when running under Py3.
  154129. @ \fI2019\-08\-29 16:59:34 UTC\fP
  154130. .INDENT 2.0
  154131. .IP \(bu 2
  154132. 490ee69 Merge pull request \fI\%#54327\fP from garethgreenaway/more_test_program_fixes
  154133. .IP \(bu 2
  154134. 97b4d86 Catch the AccessDenied exception and continue when running under Py3.
  154135. .UNINDENT
  154136. .IP \(bu 2
  154137. \fBPR\fP \fI\%#54316\fP: (\fI\%Akm0d\fP) Azure cleanup
  154138. @ \fI2019\-08\-27 16:14:09 UTC\fP
  154139. .INDENT 2.0
  154140. .IP \(bu 2
  154141. bb911c3 Merge pull request \fI\%#54316\fP from Akm0d/azure\-cleanup
  154142. .IP \(bu 2
  154143. 2072773 pass longer timeout to msazure destroyinstance
  154144. .IP \(bu 2
  154145. 34eb477 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into azure\-cleanup
  154146. .IP \(bu 2
  154147. 7ae48b1 Allow azure tests enough time to clean up interfaces
  154148. .IP \(bu 2
  154149. b45ae74 Clean up azure instances properly
  154150. .UNINDENT
  154151. .IP \(bu 2
  154152. \fBPR\fP \fI\%#54314\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Do not raise the exception in testprogram.py
  154153. @ \fI2019\-08\-26 23:59:37 UTC\fP
  154154. .INDENT 2.0
  154155. .IP \(bu 2
  154156. 9334e4e Merge pull request \fI\%#54314\fP from garethgreenaway/testprogram_access_denied_do_not_raise
  154157. .IP \(bu 2
  154158. a53bacb Do not raise the exception if a process can not be access, just continue
  154159. .UNINDENT
  154160. .IP \(bu 2
  154161. \fBPR\fP \fI\%#54305\fP: (\fI\%dwoz\fP) Fix wart in test_process tests on windows
  154162. @ \fI2019\-08\-26 17:59:12 UTC\fP
  154163. .INDENT 2.0
  154164. .IP \(bu 2
  154165. 71fb051 Merge pull request \fI\%#54305\fP from dwoz/winfix
  154166. .IP \(bu 2
  154167. 4e68860 Fix wart in test_process tests on windows
  154168. .UNINDENT
  154169. .IP \(bu 2
  154170. \fBPR\fP \fI\%#54303\fP: (\fI\%dwoz\fP) Fix wart in periodic callback interval
  154171. @ \fI2019\-08\-24 20:04:35 UTC\fP
  154172. .INDENT 2.0
  154173. .IP \(bu 2
  154174. 4d80f0a Merge pull request \fI\%#54303\fP from dwoz/periodic_cb
  154175. .IP \(bu 2
  154176. bf5f7de Fix wart in periodic callback interval
  154177. .UNINDENT
  154178. .IP \(bu 2
  154179. \fBISSUE\fP \fI\%#54219\fP: (\fI\%KChandrashekhar\fP) integration.shell.test_call.py and tests/integration/shell/test_proxy.py (refs: \fI\%#54259\fP)
  154180. .IP \(bu 2
  154181. \fBISSUE\fP \fI\%#54153\fP: (\fI\%KChandrashekhar\fP) Ubuntu 16.04 Proxy failures (refs: \fI\%#54259\fP)
  154182. .IP \(bu 2
  154183. \fBPR\fP \fI\%#54259\fP: (\fI\%dwoz\fP) Call os.fork less to avoid race conditions
  154184. @ \fI2019\-08\-24 02:12:42 UTC\fP
  154185. .INDENT 2.0
  154186. .IP \(bu 2
  154187. 5838851 Merge pull request \fI\%#54259\fP from dwoz/less_forking
  154188. .IP \(bu 2
  154189. bf4d0dd Fix process list tests on windows py3
  154190. .IP \(bu 2
  154191. 316ec78 Allow more time for slow test
  154192. .IP \(bu 2
  154193. 9baf86f Do not remove attributes from process class
  154194. .IP \(bu 2
  154195. e7b6aa8 Clean up cruft
  154196. .IP \(bu 2
  154197. ed7103a Attempt to fix integration.shell.test_call test
  154198. .IP \(bu 2
  154199. 659c805 Change noise log to debug
  154200. .IP \(bu 2
  154201. 0660b1a Clean up typoes
  154202. .IP \(bu 2
  154203. 9f1fe42 Call os.fork less to avoid race conditions
  154204. .UNINDENT
  154205. .IP \(bu 2
  154206. \fBISSUE\fP \fI\%#50814\fP: (\fI\%doesitblend\fP) Minion continues trying down master (refs: \fI\%#54239\fP, \fI\%#53417\fP)
  154207. .IP \(bu 2
  154208. \fBISSUE\fP \fI\%#49680\fP: (\fI\%doesitblend\fP) Beacon events handled differently than event.send (refs: \fI\%#53344\fP, \fI\%#54239\fP)
  154209. .IP \(bu 2
  154210. \fBISSUE\fP \fI\%#49663\fP: (\fI\%doesitblend\fP) Beacon only fires to single random master in HA mode (refs: \fI\%#53344\fP, \fI\%#54239\fP)
  154211. .IP \(bu 2
  154212. \fBPR\fP \fI\%#54247\fP: (\fI\%DmitryKuzmenko\fP) 2019.2.1 with multimaster bb fixes
  154213. @ \fI2019\-08\-23 20:19:19 UTC\fP
  154214. .INDENT 2.0
  154215. .IP \(bu 2
  154216. \fBPR\fP \fI\%#54239\fP: (\fI\%DmitryKuzmenko\fP) Multimaster tests with bb fixes (refs: \fI\%#54247\fP)
  154217. .IP \(bu 2
  154218. \fBPR\fP \fI\%#53848\fP: (\fI\%DmitryKuzmenko\fP) Features/multimaster tests (refs: \fI\%#54239\fP)
  154219. .IP \(bu 2
  154220. \fBPR\fP \fI\%#53417\fP: (\fI\%DmitryKuzmenko\fP) Multimaster minion hang on fire_master (refs: \fI\%#54239\fP, \fI\%#53848\fP)
  154221. .IP \(bu 2
  154222. \fBPR\fP \fI\%#53344\fP: (\fI\%DmitryKuzmenko\fP) Run beacons on the only one minion instance. Return to all masters. (refs: \fI\%#54239\fP, \fI\%#53848\fP)
  154223. .IP \(bu 2
  154224. 531f3aa Merge pull request \fI\%#54247\fP from DSRCorporation/2019.2.1_with_multimaster_bb_fixes
  154225. .IP \(bu 2
  154226. 62cd8cd Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154227. .UNINDENT
  154228. .IP \(bu 2
  154229. \fBPR\fP \fI\%#54235\fP: (\fI\%github\-abcde\fP) Fix 46034 2019.2.1
  154230. @ \fI2019\-08\-22 22:32:09 UTC\fP
  154231. .INDENT 2.0
  154232. .IP \(bu 2
  154233. 993c341 Merge pull request \fI\%#54235\fP from ogd\-software/fix_46034\-2019.2.1
  154234. .IP \(bu 2
  154235. 93bd30d Add alternative fix for "!" stomping Apparently (after watching Jenkins tests fail), what yaml.safe_load returns depends not on the version of salt, but on some other external dependency. Because of this, fix both possible return values.
  154236. .IP \(bu 2
  154237. c95dd4d Add test for this specific bugfix
  154238. .IP \(bu 2
  154239. efc29d8 Prevent yamlify_arg from stomping "!"
  154240. .UNINDENT
  154241. .IP \(bu 2
  154242. \fBPR\fP \fI\%#54282\fP: (\fI\%Akm0d\fP) clean up renamed instances in the teardown
  154243. @ \fI2019\-08\-22 22:13:51 UTC\fP
  154244. .INDENT 2.0
  154245. .IP \(bu 2
  154246. 5d1a4d0 Merge pull request \fI\%#54282\fP from Akm0d/clean\-up\-renamed
  154247. .IP \(bu 2
  154248. 11c1117 Removed redundant parenthesis
  154249. .IP \(bu 2
  154250. 802235d don\(aqt delete shutting down ec2 instances
  154251. .IP \(bu 2
  154252. 3602942 reversed the order in which an instance was renamed
  154253. .IP \(bu 2
  154254. 5500ede renamed _alt_name function
  154255. .IP \(bu 2
  154256. 23beab4 clean up renamed instances in the teardown
  154257. .UNINDENT
  154258. .IP \(bu 2
  154259. \fBPR\fP \fI\%#54252\fP: (\fI\%s0undt3ch\fP) [2019.2.1] More control on spun test daemons on git pillar tests
  154260. @ \fI2019\-08\-22 22:13:08 UTC\fP
  154261. .INDENT 2.0
  154262. .IP \(bu 2
  154263. c181f5a Merge pull request \fI\%#54252\fP from s0undt3ch/hotfix/git\-pillar\-2019.2.1
  154264. .IP \(bu 2
  154265. 4eb85fa Skip tests on RHEL family < 7
  154266. .IP \(bu 2
  154267. 64a1be8 Don\(aqt even go through the transport to get the system grains
  154268. .IP \(bu 2
  154269. d0f8efa Don\(aqt keep recreating the git repos. Restore from backup.
  154270. .IP \(bu 2
  154271. 6114e9d All prep work is done in \fIsetUpClass\fP\&.
  154272. .IP \(bu 2
  154273. 5b030dd Daemons are now started/stopped on tests, not by salt
  154274. .IP \(bu 2
  154275. ed60f0d We don\(aqt actually need grains
  154276. .IP \(bu 2
  154277. 911446d Lock \fIuwsgi\fP requirement.
  154278. .INDENT 2.0
  154279. .INDENT 3.5
  154280. .INDENT 0.0
  154281. .IP \(bu 2
  154282. 805f0ac Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154283. .UNINDENT
  154284. .UNINDENT
  154285. .UNINDENT
  154286. .UNINDENT
  154287. .IP \(bu 2
  154288. \fBPR\fP \fI\%#54214\fP: (\fI\%Ch3LL\fP) Remove unnecessary logging from minion.py
  154289. @ \fI2019\-08\-22 18:08:26 UTC\fP
  154290. .INDENT 2.0
  154291. .IP \(bu 2
  154292. b40cdbf Merge pull request \fI\%#54214\fP from Ch3LL/fix_logging
  154293. .IP \(bu 2
  154294. 8fd24cf Remove unnecessary logging from minion.py
  154295. .INDENT 2.0
  154296. .INDENT 3.5
  154297. .INDENT 0.0
  154298. .IP \(bu 2
  154299. 9d28098 Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154300. .UNINDENT
  154301. .UNINDENT
  154302. .UNINDENT
  154303. .UNINDENT
  154304. .IP \(bu 2
  154305. \fBPR\fP \fI\%#54277\fP: (\fI\%dwoz\fP) Win runas plus
  154306. @ \fI2019\-08\-21 23:59:16 UTC\fP
  154307. .INDENT 2.0
  154308. .IP \(bu 2
  154309. de77762 Merge pull request \fI\%#54277\fP from dwoz/win_runas_plus
  154310. .IP \(bu 2
  154311. f719591 Update tests
  154312. .IP \(bu 2
  154313. d8749d9 Do not remove attributes from process class
  154314. .IP \(bu 2
  154315. ac5a2a4 Only close handle if it got created
  154316. .UNINDENT
  154317. .IP \(bu 2
  154318. \fBPR\fP \fI\%#54278\fP: (\fI\%Akm0d\fP) Correctly detect when an ms_azure instance is deleted
  154319. @ \fI2019\-08\-21 23:14:01 UTC\fP
  154320. .INDENT 2.0
  154321. .IP \(bu 2
  154322. 93cf40a Merge pull request \fI\%#54278\fP from Akm0d/cloud\-test\-logging
  154323. .IP \(bu 2
  154324. 2dc1520 Merge branch \(aq2019.2.1\(aq into cloud\-test\-logging
  154325. .IP \(bu 2
  154326. 3867448 Fixed incorrect arguments
  154327. .IP \(bu 2
  154328. bdce5f4 Fix detecting msazure deletion with multiple tries
  154329. .UNINDENT
  154330. .IP \(bu 2
  154331. \fBPR\fP \fI\%#54263\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Exit test suite if test daemons fail to start
  154332. @ \fI2019\-08\-21 22:06:52 UTC\fP
  154333. .INDENT 2.0
  154334. .IP \(bu 2
  154335. 94f77a0 Merge pull request \fI\%#54263\fP from s0undt3ch/hotfix/test\-daemons\-2019.2.1
  154336. .IP \(bu 2
  154337. 655efd6 Rearrange logging termination
  154338. .IP \(bu 2
  154339. 28fa5d2 Prevent traceback on python interpreter shutdown
  154340. .IP \(bu 2
  154341. 9035731 Write to stderr a message with the exit code
  154342. .IP \(bu 2
  154343. 566c620 Exit the test suite if one of the test daemons fails to start
  154344. .UNINDENT
  154345. .IP \(bu 2
  154346. \fBPR\fP \fI\%#54270\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Speedup testing helpers decorators
  154347. @ \fI2019\-08\-21 20:33:25 UTC\fP
  154348. .INDENT 2.0
  154349. .IP \(bu 2
  154350. 3b9fd44 Merge pull request \fI\%#54270\fP from s0undt3ch/hotfix/requires\-system\-grains\-2019.2.1
  154351. .IP \(bu 2
  154352. 9f99bff Speedup testing helpers decorators
  154353. .UNINDENT
  154354. .IP \(bu 2
  154355. \fBISSUE\fP \fI\%#53931\fP: (\fI\%KChandrashekhar\fP) integration.states.test_pip_state.PipStateTest.test_issue_6912_wrong_owner_requirements_file (refs: \fI\%#54274\fP)
  154356. .IP \(bu 2
  154357. \fBPR\fP \fI\%#54274\fP: (\fI\%felippeb\fP) \fI\%#53931\fP never fail on codecov curls
  154358. @ \fI2019\-08\-21 18:12:19 UTC\fP
  154359. .INDENT 2.0
  154360. .IP \(bu 2
  154361. 2c4afa0 Merge pull request \fI\%#54274\fP from felippeb/2019.2.1
  154362. .IP \(bu 2
  154363. 9c0b216 \fI\%#53931\fP never fail on codecov curls
  154364. .UNINDENT
  154365. .IP \(bu 2
  154366. \fBPR\fP \fI\%#54264\fP: (\fI\%dwoz\fP) Fix unit utils jinja when run on their own
  154367. @ \fI2019\-08\-21 17:22:10 UTC\fP
  154368. .INDENT 2.0
  154369. .IP \(bu 2
  154370. b3c70c3 Merge pull request \fI\%#54264\fP from dwoz/jinja_units
  154371. .IP \(bu 2
  154372. 10a6d53 Fix unit utils jinja when run on thier own
  154373. .UNINDENT
  154374. .IP \(bu 2
  154375. \fBPR\fP \fI\%#54266\fP: (\fI\%Akm0d\fP) Fix incorrect types on failing cloud tests
  154376. @ \fI2019\-08\-21 17:14:40 UTC\fP
  154377. .INDENT 2.0
  154378. .IP \(bu 2
  154379. 308ba55 Merge pull request \fI\%#54266\fP from Akm0d/cloud_test_ultimate_fix
  154380. .IP \(bu 2
  154381. ff2125a Invert assertion to test for instance gone
  154382. .IP \(bu 2
  154383. 82136a8 test for ec2 instance shutting down
  154384. .IP \(bu 2
  154385. 283f631 run cloud \-\-query if delete string is not available
  154386. .IP \(bu 2
  154387. 33e6b6d changed deprecated assertEquals
  154388. .IP \(bu 2
  154389. 41e6bc8 Cloud tests run correctly everywhere
  154390. .IP \(bu 2
  154391. 03a8b2c reverted literal_eval
  154392. .UNINDENT
  154393. .IP \(bu 2
  154394. \fBPR\fP \fI\%#54251\fP: (\fI\%Akm0d\fP) reduced query calls to salt\-cloud
  154395. @ \fI2019\-08\-20 20:10:59 UTC\fP
  154396. .INDENT 2.0
  154397. .IP \(bu 2
  154398. 25d0b52 Merge pull request \fI\%#54251\fP from Akm0d/cloud_test_optimization
  154399. .IP \(bu 2
  154400. 5fe6bfc Optimized salt\-cloud queries
  154401. .IP \(bu 2
  154402. 43418a4 Merge pull request \fI\%#7\fP from Ch3LL/cloud_provider_files
  154403. .INDENT 2.0
  154404. .IP \(bu 2
  154405. b93944b Remove joyent config cloud test files
  154406. .IP \(bu 2
  154407. bd37849 Rename provider azure\-config to azurearm\-config
  154408. .UNINDENT
  154409. .IP \(bu 2
  154410. e7c06cb Added longer delays for ec2 tests
  154411. .IP \(bu 2
  154412. 5ceb47e Correctly check for GCE and EC2 deletion
  154413. .IP \(bu 2
  154414. 52c178c Added pretty yaml formatting to cloud\-test logs
  154415. .IP \(bu 2
  154416. 4fc5e9e re\-fixed simultaneous GCE tests
  154417. .IP \(bu 2
  154418. 326e9f2 Merge pull request \fI\%#6\fP from Ch3LL/cloud_provider_files
  154419. .INDENT 2.0
  154420. .IP \(bu 2
  154421. adb1464 fix pylint
  154422. .IP \(bu 2
  154423. 51ce819 Move provider config setup into Setup/Teardown class
  154424. .UNINDENT
  154425. .IP \(bu 2
  154426. e58b40a Merge pull request \fI\%#5\fP from Ch3LL/cloud_provider_files
  154427. .INDENT 2.0
  154428. .IP \(bu 2
  154429. ab8adcc Only use the provider conf.d file we are testing
  154430. .UNINDENT
  154431. .IP \(bu 2
  154432. 76609ad Merge branch \(aq2019.2.1\(aq into cloud_test_optimization
  154433. .IP \(bu 2
  154434. f764bc0 Clean up expensive queries
  154435. .IP \(bu 2
  154436. b3d02df reduced query calls to salt\-cloud
  154437. .UNINDENT
  154438. .IP \(bu 2
  154439. \fBPR\fP \fI\%#54240\fP: (\fI\%Ch3LL\fP) Fix TypeError python3 in get_image_id ec2 cloud
  154440. @ \fI2019\-08\-20 20:10:01 UTC\fP
  154441. .INDENT 2.0
  154442. .IP \(bu 2
  154443. ba81ca3 Merge pull request \fI\%#54240\fP from Ch3LL/get_image_ec2
  154444. .IP \(bu 2
  154445. a3a39f3 Use ami variable instead in test
  154446. .IP \(bu 2
  154447. dc1ae52 Fix TypeError python3 in get_image_id
  154448. .INDENT 2.0
  154449. .INDENT 3.5
  154450. .INDENT 0.0
  154451. .IP \(bu 2
  154452. d6ad475 Merge branch \(aq2019.2.1\(aq into 2019.2.1_with_multimaster_bb_fixes
  154453. .UNINDENT
  154454. .UNINDENT
  154455. .UNINDENT
  154456. .UNINDENT
  154457. .IP \(bu 2
  154458. \fBPR\fP \fI\%#54246\fP: (\fI\%dwoz\fP) Cut down on log noise
  154459. @ \fI2019\-08\-19 17:20:03 UTC\fP
  154460. .INDENT 2.0
  154461. .IP \(bu 2
  154462. 8404ec2 Merge pull request \fI\%#54246\fP from dwoz/log_noise
  154463. .IP \(bu 2
  154464. e572711 Cut down on log noise
  154465. .UNINDENT
  154466. .IP \(bu 2
  154467. \fBPR\fP \fI\%#54245\fP: (\fI\%dwoz\fP) Fix the sshd pid file
  154468. @ \fI2019\-08\-19 17:19:32 UTC\fP
  154469. .INDENT 2.0
  154470. .IP \(bu 2
  154471. 5b3e925 Merge pull request \fI\%#54245\fP from dwoz/sshd_pid_file
  154472. .IP \(bu 2
  154473. df95347 Fix the sshd pid file
  154474. .UNINDENT
  154475. .IP \(bu 2
  154476. \fBPR\fP \fI\%#54237\fP: (\fI\%dwoz\fP) Do not dup2 things without fileno
  154477. @ \fI2019\-08\-18 17:13:29 UTC\fP
  154478. .INDENT 2.0
  154479. .IP \(bu 2
  154480. 268803b Merge pull request \fI\%#54237\fP from dwoz/dup2
  154481. .IP \(bu 2
  154482. 2ebd22b Fix linter
  154483. .IP \(bu 2
  154484. 63c616a Do not dup2 things without fileno
  154485. .INDENT 2.0
  154486. .INDENT 3.5
  154487. .INDENT 0.0
  154488. .IP \(bu 2
  154489. 0b33498 Workaround for beacons.list_available slowness.
  154490. .IP \(bu 2
  154491. b7a1058 Minor: Better support of named multimaster tests.
  154492. .IP \(bu 2
  154493. a5cccdf Minor: remove unneded logging
  154494. .IP \(bu 2
  154495. 314bbb3 Support tcp transport in multimaster tests. Minor beacon update.
  154496. .IP \(bu 2
  154497. fcb8ff0 Properly set HAS_IPTABLES from __virtual__ return.
  154498. .IP \(bu 2
  154499. a75db01 Multimaster related fixup: don\(aqt run test engine on minions
  154500. .IP \(bu 2
  154501. 8a88542 Multimaster beacons fix: put list into a dict to fire on the bus
  154502. .IP \(bu 2
  154503. 790fb41 Inotify beacons test logging and cleanup update
  154504. .IP \(bu 2
  154505. d84c8851 Inotify beacon test fixes and improvements.
  154506. .IP \(bu 2
  154507. 472ffc0 Give minion more time to handle beacon creation.
  154508. .IP \(bu 2
  154509. 17ceee0 Fixed Lint errors
  154510. .IP \(bu 2
  154511. 0bcf53c Fixed the unicode and timing inotify test issues.
  154512. .IP \(bu 2
  154513. f17bcf3 Improved assertion error diagnostic for master down test.
  154514. .IP \(bu 2
  154515. db0bae8 Run multimaster as well tests when no specific group is set
  154516. .IP \(bu 2
  154517. 723f363 Ignore the multimaster minion subgroup test in module names test.
  154518. .IP \(bu 2
  154519. 612191c Fixed lint failures
  154520. .IP \(bu 2
  154521. c1efae6 Multimaster test for events handling on master disconnect
  154522. .IP \(bu 2
  154523. 1654fe8 Multimaster inotify beacons test
  154524. .IP \(bu 2
  154525. 65dc47c Multimaster tests environment and test module test.
  154526. .IP \(bu 2
  154527. 2c178b0 Moved annoying message to trace log level.
  154528. .IP \(bu 2
  154529. 3e497c1 Handle minion events asynchronously.
  154530. .IP \(bu 2
  154531. 909323a Tests fixes
  154532. .IP \(bu 2
  154533. 6dad18f Cleanup event object
  154534. .IP \(bu 2
  154535. 2bf55be Run beacons on the only one minion instance. Return to all masters.
  154536. .UNINDENT
  154537. .UNINDENT
  154538. .UNINDENT
  154539. .UNINDENT
  154540. .IP \(bu 2
  154541. \fBPR\fP \fI\%#54121\fP: (\fI\%Akm0d\fP) Refactored cloud tests
  154542. @ \fI2019\-08\-16 17:24:14 UTC\fP
  154543. .INDENT 2.0
  154544. .IP \(bu 2
  154545. 27d89bd Merge pull request \fI\%#54121\fP from Akm0d/gce_cloud_test
  154546. .IP \(bu 2
  154547. 48c57b3 Try multiple times to detect deletion of an instance
  154548. .IP \(bu 2
  154549. 74300eb return a valid set
  154550. .IP \(bu 2
  154551. 2d63b87 Wait for an instance to be fully created if necessary
  154552. .IP \(bu 2
  154553. 83ad8b3 Merge branch \(aq2019.2.1\(aq of github.com:SaltStack/salt into gce_cloud_test
  154554. .UNINDENT
  154555. .IP \(bu 2
  154556. \fBISSUE\fP \fI\%#54174\fP: (\fI\%dwoz\fP) SignalHandlingMultiprocessingProcess bugs (refs: \fI\%#54204\fP)
  154557. .IP \(bu 2
  154558. \fBPR\fP \fI\%#54204\fP: (\fI\%dwoz\fP) Fix signal handling in subprocesses
  154559. @ \fI2019\-08\-16 00:46:40 UTC\fP
  154560. .INDENT 2.0
  154561. .IP \(bu 2
  154562. c5ee91c Merge pull request \fI\%#54204\fP from dwoz/signal_proc
  154563. .IP \(bu 2
  154564. 09e5e49 Merge branch \(aq2019.2.1\(aq into signal_proc
  154565. .UNINDENT
  154566. .IP \(bu 2
  154567. \fBISSUE\fP \fI\%#7745\fP: (\fI\%mgwilliams\fP) yaml \(aqmodule\(aq has no attribute \(aqDumper\(aq (refs: \fI\%#54223\fP)
  154568. .IP \(bu 2
  154569. \fBPR\fP \fI\%#54223\fP: (\fI\%dwoz\fP) Test verify logs without a whole minion
  154570. @ \fI2019\-08\-16 00:46:09 UTC\fP
  154571. .INDENT 2.0
  154572. .IP \(bu 2
  154573. 99a8fc5 Merge pull request \fI\%#54223\fP from dwoz/7754_test_removal
  154574. .IP \(bu 2
  154575. 4be711e Fix up linter warts
  154576. .IP \(bu 2
  154577. 7573826 Remove crufty un\-needed tests
  154578. .IP \(bu 2
  154579. effa77d Test verify logs without a whole minion
  154580. .INDENT 2.0
  154581. .IP \(bu 2
  154582. b40f41f Revert fallback to default signals change
  154583. .IP \(bu 2
  154584. 1d83b10 Fix signal handling in subprocesses
  154585. .INDENT 2.0
  154586. .IP \(bu 2
  154587. f90fe66 Reverted foo/bar creds per \fI\%#46265\fP
  154588. .IP \(bu 2
  154589. 3f56bad Reduced the amount of informtaion in debuggings tatements
  154590. .IP \(bu 2
  154591. de53bf0 Merge branch \(aq2019.2.1\(aq of github.com:SaltStack/salt into gce_cloud_test
  154592. .UNINDENT
  154593. .UNINDENT
  154594. .UNINDENT
  154595. .IP \(bu 2
  154596. \fBPR\fP \fI\%#54203\fP: (\fI\%dwoz\fP) Run transport test loops in single thread
  154597. @ \fI2019\-08\-15 20:10:20 UTC\fP
  154598. .INDENT 2.0
  154599. .IP \(bu 2
  154600. 8d440e0 Merge pull request \fI\%#54203\fP from dwoz/transport_tests
  154601. .IP \(bu 2
  154602. 22b9d38 Run transsport test loops in single thread
  154603. .INDENT 2.0
  154604. .IP \(bu 2
  154605. f6180a6 Even better logging of errors
  154606. .IP \(bu 2
  154607. a15dc4b better formatting and error reporting
  154608. .IP \(bu 2
  154609. 51fbc2a better logging on instance create failure
  154610. .IP \(bu 2
  154611. 1f7dd52 removed hack fixes from gce
  154612. .IP \(bu 2
  154613. 31cdc7c WAR ROOM SKIP GCE TESTS
  154614. .IP \(bu 2
  154615. 7d603be hasattr cannot find parent properties starting with __
  154616. .IP \(bu 2
  154617. 686cab9 Separated assertInstanceDestroy and _destry_instance
  154618. .IP \(bu 2
  154619. 158a38c Revert "Removed subclass from cloud name"
  154620. .IP \(bu 2
  154621. b7cf43d Removed subclass from cloud name
  154622. .IP \(bu 2
  154623. 8c5eb18 fixed pylint error on format string
  154624. .IP \(bu 2
  154625. 59e20bc Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154626. .UNINDENT
  154627. .UNINDENT
  154628. .IP \(bu 2
  154629. \fBPR\fP \fI\%#54191\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Addition logging in testprogram used by integration.shell.test_minion.MinionTest.test_exit_status_correct_usage
  154630. @ \fI2019\-08\-13 21:44:41 UTC\fP
  154631. .INDENT 2.0
  154632. .IP \(bu 2
  154633. a05018e Merge pull request \fI\%#54191\fP from garethgreenaway/test_program_test_mininion
  154634. .IP \(bu 2
  154635. 8463f84 Adding some additional logging when the call to "proc_cmdline = proc.cmdline()" reults in a AccessDenied exception, so we can see what the process is and who the process is running as.
  154636. .UNINDENT
  154637. .IP \(bu 2
  154638. \fBPR\fP \fI\%#54202\fP: (\fI\%waynew\fP) Only run one filter test
  154639. @ \fI2019\-08\-13 21:33:32 UTC\fP
  154640. .INDENT 2.0
  154641. .IP \(bu 2
  154642. e5e9299 Merge pull request \fI\%#54202\fP from waynew/shorter\-jinja\-ssh\-tests
  154643. .IP \(bu 2
  154644. c333ac8 Only run one filter test
  154645. .INDENT 2.0
  154646. .IP \(bu 2
  154647. 5912f24 Switched to Azurearm over msazure
  154648. .UNINDENT
  154649. .UNINDENT
  154650. .IP \(bu 2
  154651. \fBPR\fP \fI\%#54172\fP: (\fI\%Ch3LL\fP) Migrate from azure to azurearm tests
  154652. @ \fI2019\-08\-13 20:07:34 UTC\fP
  154653. .INDENT 2.0
  154654. .IP \(bu 2
  154655. a13cb3e Merge pull request \fI\%#54172\fP from Ch3LL/azurearm_tests
  154656. .IP \(bu 2
  154657. 465523f Migrate from azure to azurearm tests
  154658. .UNINDENT
  154659. .IP \(bu 2
  154660. \fBISSUE\fP \fI\%#50535\fP: (\fI\%wyardley\fP) salt errors with current azure\-storage because of no version set (refs: \fI\%#50567\fP)
  154661. .IP \(bu 2
  154662. \fBPR\fP \fI\%#54173\fP: (\fI\%Ch3LL\fP) Cherry Pick \fI\%#50567\fP and \fI\%#53238\fP into 2019.2.1
  154663. @ \fI2019\-08\-13 20:07:09 UTC\fP
  154664. .INDENT 2.0
  154665. .IP \(bu 2
  154666. \fBPR\fP \fI\%#53238\fP: (\fI\%nicholasmhughes\fP) Azure: Fixed ability to pass SSH key to Linux VMs (refs: \fI\%#54173\fP)
  154667. .IP \(bu 2
  154668. \fBPR\fP \fI\%#50567\fP: (\fI\%rombert\fP) azurefs: gracefully handle AttributeError (refs: \fI\%#54173\fP)
  154669. .IP \(bu 2
  154670. 39d0c59 Merge pull request \fI\%#54173\fP from Ch3LL/azure_fixes
  154671. .IP \(bu 2
  154672. 9052eaf reverting log string handling
  154673. .IP \(bu 2
  154674. a1a61ee fixed ability to pass ssh key to Linux VMs
  154675. .IP \(bu 2
  154676. 4a141a1 azurefs: gracefully handle AttributeError
  154677. .INDENT 2.0
  154678. .IP \(bu 2
  154679. 6fa28de fixed underscore
  154680. .INDENT 2.0
  154681. .IP \(bu 2
  154682. c35379a Moved finding installer into class
  154683. .UNINDENT
  154684. .IP \(bu 2
  154685. 95484f8 Moved finding installer into class
  154686. .IP \(bu 2
  154687. a86ae34 moved installer finder to SetUp method
  154688. .IP \(bu 2
  154689. 933964a removed default user/pass from profitbricks test file
  154690. .IP \(bu 2
  154691. 2a2437d fixed dictionary access
  154692. .IP \(bu 2
  154693. b9ee411 Fixed broken tests
  154694. .IP \(bu 2
  154695. 80efd26 fixed misspelled provider information
  154696. .IP \(bu 2
  154697. 511779b removed unused imports
  154698. .IP \(bu 2
  154699. 1cd1c13 setUp all cloud tests the same way
  154700. .IP \(bu 2
  154701. d322408 Got rid of unnecessary delay
  154702. .IP \(bu 2
  154703. 98ba18c fixed pylint error
  154704. .IP \(bu 2
  154705. c34c17e Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154706. .UNINDENT
  154707. .UNINDENT
  154708. .IP \(bu 2
  154709. \fBPR\fP \fI\%#54178\fP: (\fI\%dwoz\fP) Fix flaky set_computer_name in mac_system module
  154710. @ \fI2019\-08\-12 18:26:40 UTC\fP
  154711. .INDENT 2.0
  154712. .IP \(bu 2
  154713. 19f4d5e Merge pull request \fI\%#54178\fP from dwoz/mac_computer_name
  154714. .IP \(bu 2
  154715. e51100e Fix skip on non macos platforms
  154716. .IP \(bu 2
  154717. a3a9d92 Fix linter
  154718. .IP \(bu 2
  154719. c499d44 Revert unwanted flaky from non computer name tests
  154720. .IP \(bu 2
  154721. 941fcc8 Fix flaky set_computer_name in mac_system module
  154722. .INDENT 2.0
  154723. .INDENT 3.5
  154724. .INDENT 0.0
  154725. .IP \(bu 2
  154726. 90e8350 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154727. .UNINDENT
  154728. .UNINDENT
  154729. .UNINDENT
  154730. .UNINDENT
  154731. .IP \(bu 2
  154732. \fBPR\fP \fI\%#54180\fP: (\fI\%dwoz\fP) Point test\-kitchen to my keepalive_maxcount branch
  154733. @ \fI2019\-08\-12 18:18:26 UTC\fP
  154734. .INDENT 2.0
  154735. .IP \(bu 2
  154736. 6fe6799 Merge pull request \fI\%#54180\fP from dwoz/keepalive_maxcount
  154737. .IP \(bu 2
  154738. dc9ee21 Add reminder about kitchen version
  154739. .IP \(bu 2
  154740. 19a1f1b Point test\-kitchen to my keepalive_maxcount branch
  154741. .INDENT 2.0
  154742. .IP \(bu 2
  154743. 60f8351 Fixed failing Ec2 Tests
  154744. .IP \(bu 2
  154745. e2f085c removed py3\-only function call
  154746. .IP \(bu 2
  154747. 4406c57 fixed lint errors, more descriptive fails
  154748. .IP \(bu 2
  154749. 6840d5f assert instances exist in unified way
  154750. .IP \(bu 2
  154751. 03da233 skip EOL joyent tests, secure delete instances
  154752. .IP \(bu 2
  154753. 3123bb1 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154754. .UNINDENT
  154755. .UNINDENT
  154756. .IP \(bu 2
  154757. \fBISSUE\fP \fI\%#53306\fP: (\fI\%doesitblend\fP) Fully Qualify CMD on Windows Minions (refs: \fI\%#53311\fP, \fI\%#54033\fP)
  154758. .IP \(bu 2
  154759. \fBPR\fP \fI\%#54033\fP: (\fI\%twangboy\fP) Backport \fI\%#53311\fP to 2019.2.1
  154760. @ \fI2019\-08\-09 16:46:36 UTC\fP
  154761. .INDENT 2.0
  154762. .IP \(bu 2
  154763. \fBPR\fP \fI\%#53311\fP: (\fI\%doesitblend\fP) Add fully qualified cmd call (refs: \fI\%#54033\fP)
  154764. .IP \(bu 2
  154765. 9f5302d Merge pull request \fI\%#54033\fP from twangboy/fix_win_service_2019.2.1
  154766. .IP \(bu 2
  154767. 2850fab Merge branch \(aq2019.2.1\(aq into fix_win_service_2019.2.1
  154768. .IP \(bu 2
  154769. 0e2a2b8 Merge branch \(aq2019.2.1\(aq into fix_win_service_2019.2.1
  154770. .IP \(bu 2
  154771. 16c704e Backport \fI\%#53311\fP to 2019.2.1
  154772. .UNINDENT
  154773. .IP \(bu 2
  154774. \fBPR\fP \fI\%#53900\fP: (\fI\%twangboy\fP) Fix inconsistent full names in LGPO
  154775. @ \fI2019\-08\-09 09:15:41 UTC\fP
  154776. .INDENT 2.0
  154777. .IP \(bu 2
  154778. c0e49d9 Merge pull request \fI\%#53900\fP from twangboy/fix_lgpo
  154779. .IP \(bu 2
  154780. e05abdf Merge branch \(aq2019.2.1\(aq into fix_lgpo
  154781. .IP \(bu 2
  154782. e4e71cd Remove duplicate test
  154783. .IP \(bu 2
  154784. 68c632b Add some tests
  154785. .IP \(bu 2
  154786. 3c34075 Fall back to slower method if new method not available
  154787. .IP \(bu 2
  154788. 0108bcd Avoid using the lowercase method in XPath
  154789. .IP \(bu 2
  154790. fcc0405 Fix telemetry issue, add some timining logs
  154791. .UNINDENT
  154792. .IP \(bu 2
  154793. \fBPR\fP \fI\%#52818\fP: (\fI\%twangboy\fP) Add watchdog as a bundled dependency on Windows
  154794. @ \fI2019\-08\-09 04:26:54 UTC\fP
  154795. .INDENT 2.0
  154796. .IP \(bu 2
  154797. 9eb2938 Merge pull request \fI\%#52818\fP from twangboy/add_watchdog
  154798. .IP \(bu 2
  154799. 2658634 pre\-commit
  154800. .IP \(bu 2
  154801. 35691f2 Add watchdog to Linux and OSX .in files
  154802. .IP \(bu 2
  154803. 5ef5969 Rremove opensuse 42 static files
  154804. .IP \(bu 2
  154805. ec285d0 Remove watchdog from the rest of the .in files
  154806. .IP \(bu 2
  154807. 86e64ae Remove unused import, remove Windows reference
  154808. .IP \(bu 2
  154809. b934d53 Remove watchdog from windows.in
  154810. .IP \(bu 2
  154811. cfaee96 Fix and unify watchdog beacon tests for all OS\(aqs
  154812. .IP \(bu 2
  154813. cc73204 Put Windows tests in their own class
  154814. .IP \(bu 2
  154815. 6fbf1a3 Remove unused import... lint
  154816. .IP \(bu 2
  154817. 832a1db Fix windowsisms
  154818. .IP \(bu 2
  154819. 4f47d50 Update static requirements
  154820. .IP \(bu 2
  154821. 762fe3b Remove some fluff
  154822. .IP \(bu 2
  154823. 946076c Add watchdog for tests
  154824. .IP \(bu 2
  154825. 02248dc Fix modified test to account for OS variances
  154826. .IP \(bu 2
  154827. 15ee479 Compile static requirements
  154828. .IP \(bu 2
  154829. 78a5723 Add watchdog to Linux and OSX .in files
  154830. .IP \(bu 2
  154831. 9a0f08a Update static requirements
  154832. .IP \(bu 2
  154833. 5cad13b Rremove opensuse 42 static files
  154834. .IP \(bu 2
  154835. 1f05fce Remove watchdog from the rest of the .in files
  154836. .IP \(bu 2
  154837. 121595a Remove unused import, remove Windows reference
  154838. .IP \(bu 2
  154839. c410a4b Remove watchdog from windows.in
  154840. .IP \(bu 2
  154841. 05a0845 Fix and unify watchdog beacon tests for all OS\(aqs
  154842. .IP \(bu 2
  154843. 200e230 Put Windows tests in their own class
  154844. .IP \(bu 2
  154845. 6cc8d96 Remove unused import... lint
  154846. .IP \(bu 2
  154847. a4abb72 Fix windowsisms
  154848. .IP \(bu 2
  154849. 005bed9 Update static requirements
  154850. .IP \(bu 2
  154851. c1bc627 Remove some fluff
  154852. .IP \(bu 2
  154853. 92c8d47 Add watchdog for tests
  154854. .IP \(bu 2
  154855. 9544624 Add watchdog as a bundled dependency on Windows
  154856. .UNINDENT
  154857. .IP \(bu 2
  154858. \fBPR\fP \fI\%#54143\fP: (\fI\%Akm0d\fP) Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  154859. @ \fI2019\-08\-09 01:05:26 UTC\fP
  154860. .INDENT 2.0
  154861. .IP \(bu 2
  154862. \fBPR\fP \fI\%#53734\fP: (\fI\%Akm0d\fP) Don\(aqt call potentially missing shade library (refs: \fI\%#54143\fP)
  154863. .IP \(bu 2
  154864. 5bef520 Merge pull request \fI\%#54143\fP from Akm0d/openstack_fix
  154865. .IP \(bu 2
  154866. 3f58885 Merge branch \(aq2019.2.1\(aq into openstack_fix
  154867. .IP \(bu 2
  154868. 71f5f38 Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  154869. .INDENT 2.0
  154870. .INDENT 3.5
  154871. .INDENT 0.0
  154872. .IP \(bu 2
  154873. 29ee7ce removed print statements, optimized query
  154874. .IP \(bu 2
  154875. 14b7539 added back print statements for easy debug
  154876. .IP \(bu 2
  154877. 823b3b2 Removed print statements and broken re
  154878. .IP \(bu 2
  154879. 9696ed9 experiment with sublcass names
  154880. .IP \(bu 2
  154881. 2fa6157 more verbose instance names based on test
  154882. .IP \(bu 2
  154883. 2acb2df undercased non\-const variable and added print statements
  154884. .IP \(bu 2
  154885. c5e875d Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154886. .UNINDENT
  154887. .UNINDENT
  154888. .UNINDENT
  154889. .UNINDENT
  154890. .IP \(bu 2
  154891. \fBPR\fP \fI\%#54001\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Porting metaproxy changes in \fI\%#50183\fP to 2019.2.1
  154892. @ \fI2019\-08\-08 04:24:31 UTC\fP
  154893. .INDENT 2.0
  154894. .IP \(bu 2
  154895. \fBPR\fP \fI\%#50183\fP: (\fI\%cro\fP) Allow proxy minion types to be dynamically loaded (refs: \fI\%#54001\fP)
  154896. .IP \(bu 2
  154897. 584e3f2 Merge pull request \fI\%#54001\fP from garethgreenaway/add_metaproxy_2019_2_1
  154898. .IP \(bu 2
  154899. 8353467 Merge branch \(aqadd_metaproxy_2019_2_1\(aq of github.com:garethgreenaway/salt into add_metaproxy_2019_2_1
  154900. .INDENT 2.0
  154901. .IP \(bu 2
  154902. 1892d86 Merge branch \(aq2019.2.1\(aq into add_metaproxy_2019_2_1
  154903. .UNINDENT
  154904. .IP \(bu 2
  154905. ab72e1b Adding unit.test_proxy_minion to ignore list
  154906. .IP \(bu 2
  154907. 09f6fed Removing match tests, functionality does not exist in 2019.2.1
  154908. .IP \(bu 2
  154909. 4af95e4 Adding tests to ensure _metaproxy_call to called when ProxyMinion objects are created.
  154910. .IP \(bu 2
  154911. d162a88 Adding salt/metaproxy/proxy.py and tests/unit/modules/test_match.py
  154912. .IP \(bu 2
  154913. 51726b1 POrting metaproxy changes in \fI\%#50183\fP to 2019.2.1
  154914. .UNINDENT
  154915. .IP \(bu 2
  154916. \fBISSUE\fP \fI\%#51008\fP: (\fI\%cdalvaro\fP) cwd option not working with cmd.run and runas (refs: \fI\%#52632\fP, \fI\%#54079\fP)
  154917. .IP \(bu 2
  154918. \fBPR\fP \fI\%#54136\fP: (\fI\%ScoreUnder\fP) Fix cmd.run on MacOS (rebased)
  154919. @ \fI2019\-08\-08 04:20:31 UTC\fP
  154920. .INDENT 2.0
  154921. .IP \(bu 2
  154922. \fBPR\fP \fI\%#54079\fP: (\fI\%ScoreUnder\fP) Fix cmd.run on MacOS \-\- wrong environment variables (refs: \fI\%#54136\fP)
  154923. .IP \(bu 2
  154924. \fBPR\fP \fI\%#52632\fP: (\fI\%cdalvaro\fP) Prevent shell injection as root with cmd.run on macOS (refs: \fI\%#54079\fP)
  154925. .IP \(bu 2
  154926. \fBPR\fP \fI\%#47212\fP: (\fI\%weswhet\fP) fix macOS running as user. (refs: \fI\%#54079\fP)
  154927. .IP \(bu 2
  154928. bf863d0 Merge pull request \fI\%#54136\fP from ScoreUnder/2019.2.1\-patch\-macos\-cmd.run
  154929. .IP \(bu 2
  154930. 1182eb9 Add integration test justifying strange use of braces after cd in cmd.run
  154931. .IP \(bu 2
  154932. 733d2e7 Fixes to ITs
  154933. .IP \(bu 2
  154934. da38993 Add integration tests for cwd/runas changes on MacOS
  154935. .IP \(bu 2
  154936. ab8b39c Fix environment in cmd.run runas on MacOS
  154937. .INDENT 2.0
  154938. .INDENT 3.5
  154939. .INDENT 0.0
  154940. .IP \(bu 2
  154941. c9cb18f Don\(aqt call potentially missing shade library (\fI\%#53734\fP)
  154942. .IP \(bu 2
  154943. 5ef8414 Added more verbose logging to cloud tests
  154944. .IP \(bu 2
  154945. 2f3942f better logging and fail messages
  154946. .IP \(bu 2
  154947. 9454f4c Fixed pylint errors and temporary print statements
  154948. .IP \(bu 2
  154949. fd13ce1 Further refactored cloud test code
  154950. .IP \(bu 2
  154951. b03cc48 Assume the instance exists and needs to be deleted
  154952. .IP \(bu 2
  154953. 0991ff5 fixed pylint errors and failed tests
  154954. .IP \(bu 2
  154955. 55e502a Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into gce_cloud_test
  154956. .UNINDENT
  154957. .UNINDENT
  154958. .UNINDENT
  154959. .UNINDENT
  154960. .IP \(bu 2
  154961. \fBPR\fP \fI\%#53974\fP: (\fI\%Ch3LL\fP) [2019.2.1] Add pygit2 requirement
  154962. @ \fI2019\-08\-06 17:32:05 UTC\fP
  154963. .INDENT 2.0
  154964. .IP \(bu 2
  154965. e268b95 Merge pull request \fI\%#53974\fP from Ch3LL/add_pygit2
  154966. .IP \(bu 2
  154967. 11864a0 Merge branch \(aq2019.2.1\(aq into add_pygit2
  154968. .IP \(bu 2
  154969. d1b1452 Merge branch \(aq2019.2.1\(aq into add_pygit2
  154970. .IP \(bu 2
  154971. a5698cc Merge branch \(aq2019.2.1\(aq into add_pygit2
  154972. .IP \(bu 2
  154973. 7dd97a6 Merge branch \(aq2019.2.1\(aq into add_pygit2
  154974. .IP \(bu 2
  154975. 358974a Skip Pygit2 tests on windows
  154976. .IP \(bu 2
  154977. bc64961 Use accurate \fI\%file:///\fP URI on windows for gitfs tests
  154978. .IP \(bu 2
  154979. 894f958 Fix GitFS support for pygit2 >= 0.28.0
  154980. .IP \(bu 2
  154981. 4580030 [2019.2.1] Add pygit2 requirement
  154982. .INDENT 2.0
  154983. .INDENT 3.5
  154984. .INDENT 0.0
  154985. .IP \(bu 2
  154986. 4009bb5 fixed pylint errors
  154987. .IP \(bu 2
  154988. 459b16d put cloudtest base in separate file so that only one change needs to be made
  154989. .IP \(bu 2
  154990. 8e72335 Merge branch \(aqgce_cloud_test\(aq of github.com:Akm0d/salt into gce_cloud_test
  154991. .INDENT 2.0
  154992. .IP \(bu 2
  154993. 0e2621e Merge branch \(aq2019.2.1\(aq into gce_cloud_test
  154994. .UNINDENT
  154995. .IP \(bu 2
  154996. 9f98b16 finished merge
  154997. .UNINDENT
  154998. .UNINDENT
  154999. .UNINDENT
  155000. .UNINDENT
  155001. .IP \(bu 2
  155002. \fBPR\fP \fI\%#54108\fP: (\fI\%dwoz\fP) More robust azure instance deletion
  155003. @ \fI2019\-08\-03 03:58:20 UTC\fP
  155004. .INDENT 2.0
  155005. .IP \(bu 2
  155006. 46f5e2e Merge pull request \fI\%#54108\fP from dwoz/azure_test
  155007. .IP \(bu 2
  155008. 754b719 Fix linter
  155009. .IP \(bu 2
  155010. 773235d Fix missing time import
  155011. .IP \(bu 2
  155012. 5a8f2ec More robust azure instance deletion
  155013. .UNINDENT
  155014. .IP \(bu 2
  155015. \fBPR\fP \fI\%#54017\fP: (\fI\%dmurphy18\fP) Allow for main thread having terminated pid, before ThreadPoolExecutor threads
  155016. @ \fI2019\-08\-02 18:11:48 UTC\fP
  155017. .INDENT 2.0
  155018. .IP \(bu 2
  155019. 2cb5a0b Merge pull request \fI\%#54017\fP from dmurphy18/fix_deb9_build90_tests
  155020. .IP \(bu 2
  155021. 2866520 Skip process kill tests on Windows
  155022. .IP \(bu 2
  155023. 5577f14 Clean up lint errors
  155024. .IP \(bu 2
  155025. 4ca709e Merge branch \(aq2019.2.1\(aq into fix_deb9_build90_tests
  155026. .IP \(bu 2
  155027. 264c767 Merge pull request \fI\%#1\fP from dwoz/fix_deb9_build90_tests
  155028. .INDENT 2.0
  155029. .IP \(bu 2
  155030. 9bb9466 Add unit tests for weird pid does not exist cases
  155031. .IP \(bu 2
  155032. 64d9752 Add warning messages to help determine why pids do not exist
  155033. .UNINDENT
  155034. .IP \(bu 2
  155035. 406d382 Adjusted for review comments
  155036. .IP \(bu 2
  155037. 2d20fbe Adjusted try/except statements on process checking
  155038. .IP \(bu 2
  155039. e189177 Removed typos
  155040. .IP \(bu 2
  155041. 2e3ca43 Updated for review comments
  155042. .IP \(bu 2
  155043. 68c29af Allow for main thread having terminated pid, before ThreadPoolExecutor threads
  155044. .INDENT 2.0
  155045. .INDENT 3.5
  155046. .INDENT 0.0
  155047. .IP \(bu 2
  155048. e3158c8 refactored all cloud tests
  155049. .IP \(bu 2
  155050. 194e0c7 Refactored GCE cloud test
  155051. .UNINDENT
  155052. .UNINDENT
  155053. .UNINDENT
  155054. .UNINDENT
  155055. .IP \(bu 2
  155056. \fBPR\fP \fI\%#54080\fP: (\fI\%dmurphy18\fP) Disabling random website tests till allow for quota usage
  155057. @ \fI2019\-07\-31 21:16:54 UTC\fP
  155058. .INDENT 2.0
  155059. .IP \(bu 2
  155060. 4e2efcd Merge pull request \fI\%#54080\fP from dmurphy18/u1804_py3_random_skip
  155061. .IP \(bu 2
  155062. 0660e6e Disabling random website tests till allow for quota usage
  155063. .UNINDENT
  155064. .IP \(bu 2
  155065. \fBPR\fP \fI\%#54063\fP: (\fI\%twangboy\fP) Make the skip apply to any system missing crypt
  155066. @ \fI2019\-07\-30 19:22:07 UTC\fP
  155067. .INDENT 2.0
  155068. .IP \(bu 2
  155069. dbbbcc9 Merge pull request \fI\%#54063\fP from twangboy/fix_test_pycrypto_2019.2.1
  155070. .IP \(bu 2
  155071. 6fcf035 Make the skip apply to any system missing crypt
  155072. .UNINDENT
  155073. .IP \(bu 2
  155074. \fBPR\fP \fI\%#54050\fP: (\fI\%cmcmarrow\fP) fixs integration terminate error
  155075. @ \fI2019\-07\-30 13:38:55 UTC\fP
  155076. .INDENT 2.0
  155077. .IP \(bu 2
  155078. 4df6271 Merge pull request \fI\%#54050\fP from cmcmarrow/integration_terminate_fix
  155079. .IP \(bu 2
  155080. ebb07f4 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155081. .UNINDENT
  155082. .IP \(bu 2
  155083. \fBPR\fP \fI\%#54057\fP: (\fI\%dmurphy18\fP) Added support for is_fedora and skip Minion test test_issue_7754 on Fedora
  155084. @ \fI2019\-07\-29 22:41:25 UTC\fP
  155085. .INDENT 2.0
  155086. .IP \(bu 2
  155087. 9d1bd63 Merge pull request \fI\%#54057\fP from dmurphy18/fix_fedora30_test
  155088. .IP \(bu 2
  155089. 30f3bda Added support for is_fedora and skip Minion test test_issue_7754
  155090. .IP \(bu 2
  155091. b3293a9 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155092. .UNINDENT
  155093. .IP \(bu 2
  155094. \fBISSUE\fP \fI\%#53948\fP: (\fI\%KChandrashekhar\fP) integration.shell.test_call.CallTest.test_issue_2731_masterless (refs: \fI\%#54040\fP)
  155095. .IP \(bu 2
  155096. \fBISSUE\fP \fI\%#2731\fP: (\fI\%cwood\fP) Masterless Broken in 0.10.5 (refs: \fI\%#54040\fP)
  155097. .IP \(bu 2
  155098. \fBPR\fP \fI\%#54040\fP: (\fI\%waynew\fP) Remove dead test
  155099. @ \fI2019\-07\-29 17:23:45 UTC\fP
  155100. .INDENT 2.0
  155101. .IP \(bu 2
  155102. 5d3bcd7 Merge pull request \fI\%#54040\fP from waynew/remove\-dead\-test
  155103. .IP \(bu 2
  155104. e9a5a57 Remove dead test
  155105. .INDENT 2.0
  155106. .IP \(bu 2
  155107. ba3e867 Merge branch \(aq2019.2.1\(aq into integration_terminate_fix
  155108. .UNINDENT
  155109. .UNINDENT
  155110. .IP \(bu 2
  155111. \fBPR\fP \fI\%#54051\fP: (\fI\%twangboy\fP) Skip get time test
  155112. @ \fI2019\-07\-29 16:54:50 UTC\fP
  155113. .INDENT 2.0
  155114. .IP \(bu 2
  155115. 70ffcec Merge pull request \fI\%#54051\fP from twangboy/fix_test_system
  155116. .IP \(bu 2
  155117. ceaba05 Skip get time test
  155118. .UNINDENT
  155119. .IP \(bu 2
  155120. \fBPR\fP \fI\%#54038\fP: (\fI\%Ch3LL\fP) Pyton3 digitial ocean test fix: to_str on key
  155121. @ \fI2019\-07\-29 16:54:19 UTC\fP
  155122. .INDENT 2.0
  155123. .IP \(bu 2
  155124. 4aed833 Merge pull request \fI\%#54038\fP from Ch3LL/do_py3_fix
  155125. .IP \(bu 2
  155126. f7346db Pyton3 digitial ocean test fix: to_str on key
  155127. .INDENT 2.0
  155128. .INDENT 3.5
  155129. .INDENT 0.0
  155130. .IP \(bu 2
  155131. 05cd93f fixs integration terminate error
  155132. .IP \(bu 2
  155133. 69c3106 fixs integration terminate error
  155134. .UNINDENT
  155135. .UNINDENT
  155136. .UNINDENT
  155137. .UNINDENT
  155138. .IP \(bu 2
  155139. \fBPR\fP \fI\%#53735\fP: (\fI\%twangboy\fP) Fix Windows tests in test_system
  155140. @ \fI2019\-07\-26 22:38:28 UTC\fP
  155141. .INDENT 2.0
  155142. .IP \(bu 2
  155143. 3cedacd Merge pull request \fI\%#53735\fP from twangboy/fix_test_system
  155144. .IP \(bu 2
  155145. a9e9c97 Add timeouts and account for those in assert
  155146. .IP \(bu 2
  155147. d3a160e Merge branch \(aq2019.2.1\(aq into fix_test_system
  155148. .IP \(bu 2
  155149. f95f0e7 Merge branch \(aq2019.2.1\(aq into fix_test_system
  155150. .IP \(bu 2
  155151. 87e02b8 Use setUpClass
  155152. .IP \(bu 2
  155153. 6a685bd Fix some tests in the Windows Class
  155154. .UNINDENT
  155155. .IP \(bu 2
  155156. \fBPR\fP \fI\%#53953\fP: (\fI\%Ch3LL\fP) Send SIGTERM to webserver in teardown of gitfs tests
  155157. @ \fI2019\-07\-25 21:12:42 UTC\fP
  155158. .INDENT 2.0
  155159. .IP \(bu 2
  155160. cc1cda1 Merge pull request \fI\%#53953\fP from Ch3LL/improve_git_test
  155161. .IP \(bu 2
  155162. 347ea1e Use Sigkill and add time.sleep befor check
  155163. .IP \(bu 2
  155164. 637bf95 Merge branch \(aq2019.2.1\(aq into improve_git_test
  155165. .IP \(bu 2
  155166. c0be147 Send SIGTERM webserver during teardown of gitfs tests
  155167. .IP \(bu 2
  155168. b776c0c Check if gitfs server fails to setup for tests
  155169. .UNINDENT
  155170. .IP \(bu 2
  155171. \fBPR\fP \fI\%#53999\fP: (\fI\%Ch3LL\fP) Generate new key each time for digital ocean key test
  155172. @ \fI2019\-07\-25 21:07:45 UTC\fP
  155173. .INDENT 2.0
  155174. .IP \(bu 2
  155175. 2324167 Merge pull request \fI\%#53999\fP from Ch3LL/fix_digital_ocean
  155176. .IP \(bu 2
  155177. b0b6e3b Generate new key each time for digital ocean key test
  155178. .UNINDENT
  155179. .IP \(bu 2
  155180. \fBPR\fP \fI\%#53970\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Adding a WAR ROOM Skip for test_directory_clean_require_with_name
  155181. @ \fI2019\-07\-25 21:03:49 UTC\fP
  155182. .INDENT 2.0
  155183. .IP \(bu 2
  155184. 32fec66 Merge pull request \fI\%#53970\fP from garethgreenaway/osx_skip_test_directory_clean_require_with_name
  155185. .IP \(bu 2
  155186. 362b84a Adding a WAR ROOM Skip for test_directory_clean_require_with_name
  155187. .UNINDENT
  155188. .IP \(bu 2
  155189. \fBPR\fP \fI\%#54003\fP: (\fI\%dwoz\fP) War room skip for tcp build
  155190. @ \fI2019\-07\-24 22:52:18 UTC\fP
  155191. .INDENT 2.0
  155192. .IP \(bu 2
  155193. 213dfff Merge pull request \fI\%#54003\fP from dwoz/skip_test
  155194. .IP \(bu 2
  155195. 6cdb8fa War room skip for tcp build
  155196. .UNINDENT
  155197. .IP \(bu 2
  155198. \fBPR\fP \fI\%#53897\fP: (\fI\%cmcmarrow\fP) patches salt grains locale_info decode error
  155199. @ \fI2019\-07\-23 13:19:00 UTC\fP
  155200. .INDENT 2.0
  155201. .IP \(bu 2
  155202. 048c097 Merge pull request \fI\%#53897\fP from cmcmarrow/timezone_fix
  155203. .IP \(bu 2
  155204. d9e402d Merge branch \(aq2019.2.1\(aq into timezone_fix
  155205. .UNINDENT
  155206. .IP \(bu 2
  155207. \fBPR\fP \fI\%#53920\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update CI pipelines. Remove old jenkins cruft.
  155208. @ \fI2019\-07\-20 12:33:01 UTC\fP
  155209. .INDENT 2.0
  155210. .IP \(bu 2
  155211. 9a846b4 Merge pull request \fI\%#53920\fP from s0undt3ch/hotfix/ci\-pipelines\-2019.2.1
  155212. .IP \(bu 2
  155213. b09963b Update CI pipelines. Remove old jenkins cruft.
  155214. .UNINDENT
  155215. .IP \(bu 2
  155216. \fBPR\fP \fI\%#53728\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Disabling test_get_set_computer_name on OS X and Py3
  155217. @ \fI2019\-07\-19 17:18:33 UTC\fP
  155218. .INDENT 2.0
  155219. .IP \(bu 2
  155220. 15accef Merge pull request \fI\%#53728\fP from garethgreenaway/2019_2_1_mac_system_disable_test_get_set_computer_name
  155221. .IP \(bu 2
  155222. a6d853c Merge branch \(aq2019.2.1\(aq into 2019_2_1_mac_system_disable_test_get_set_computer_name
  155223. .IP \(bu 2
  155224. 5d537ed Missing six import. Updating skip message.
  155225. .IP \(bu 2
  155226. ac6dccd Disabling test_get_set_computer_name on OS X and Py3.
  155227. .UNINDENT
  155228. .IP \(bu 2
  155229. \fBPR\fP \fI\%#53913\fP: (\fI\%garethgreenaway\fP) [2019.2.1] skip test_issue_2594_non_invalidated_cache on MacOS
  155230. @ \fI2019\-07\-19 17:17:36 UTC\fP
  155231. .INDENT 2.0
  155232. .IP \(bu 2
  155233. a54ec89 Merge pull request \fI\%#53913\fP from garethgreenaway/disable_test_issue_2594_non_invalidated_cache_macos
  155234. .IP \(bu 2
  155235. c65c5d5 Skip the test test_issue_2594_non_invalidated_cache on MacOS where it is flakey.
  155236. .UNINDENT
  155237. .IP \(bu 2
  155238. \fBPR\fP \fI\%#53902\fP: (\fI\%twangboy\fP) Skip tests that modify date or time
  155239. @ \fI2019\-07\-18 17:53:31 UTC\fP
  155240. .INDENT 2.0
  155241. .IP \(bu 2
  155242. b091eb7 Merge pull request \fI\%#53902\fP from twangboy/skip_dt
  155243. .IP \(bu 2
  155244. 76cf936 Skip tests that modify date or time
  155245. .UNINDENT
  155246. .IP \(bu 2
  155247. \fBPR\fP \fI\%#53901\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Don\(aqt fail when combining coverage files
  155248. @ \fI2019\-07\-18 17:46:32 UTC\fP
  155249. .INDENT 2.0
  155250. .IP \(bu 2
  155251. 22b7b1a Merge pull request \fI\%#53901\fP from s0undt3ch/hotfix/wrap\-coverage\-combine
  155252. .IP \(bu 2
  155253. b459a48 Don\(aqt fail when combining coverage files
  155254. .UNINDENT
  155255. .IP \(bu 2
  155256. \fBPR\fP \fI\%#53542\fP: (\fI\%dwoz\fP) Fix leak of SaltMessageClient instances when using tcp transport
  155257. @ \fI2019\-07\-18 17:44:44 UTC\fP
  155258. .INDENT 2.0
  155259. .IP \(bu 2
  155260. 84e798a Merge pull request \fI\%#53542\fP from dwoz/tcp_leak
  155261. .IP \(bu 2
  155262. 3daeb4f Update TCP pipelines
  155263. .IP \(bu 2
  155264. 52f9556 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155265. .IP \(bu 2
  155266. f5313fd Fix tcp message client test
  155267. .IP \(bu 2
  155268. 3419bf5 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155269. .IP \(bu 2
  155270. 3125cd3 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155271. .IP \(bu 2
  155272. 9a33582 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155273. .IP \(bu 2
  155274. 7eb5d41 Merge branch \(aq2019.2.1\(aq into tcp_leak
  155275. .IP \(bu 2
  155276. 481372b Fix torando loop thread issue
  155277. .IP \(bu 2
  155278. aff15d4 Fix linter wart
  155279. .IP \(bu 2
  155280. 9606db7 Comment the tcp message client test better
  155281. .IP \(bu 2
  155282. dcf576f Add unit test for tcp message client close method
  155283. .IP \(bu 2
  155284. 4420556 Download artifacts for tcp jobs
  155285. .IP \(bu 2
  155286. e6a09dd Merge remote\-tracking branch \(aqorigin/tcp_leak\(aq into tcp_leak
  155287. .INDENT 2.0
  155288. .IP \(bu 2
  155289. f484f3f Merge branch \(aq2019.2.1\(aq into tcp_leak
  155290. .UNINDENT
  155291. .IP \(bu 2
  155292. 4a37234 Add tcp suffix to github notifications
  155293. .IP \(bu 2
  155294. 4a2848b Add transport PR tests
  155295. .IP \(bu 2
  155296. 9a4b407 Fix leak of SaltMessageClient instances when using tcp transport
  155297. .INDENT 2.0
  155298. .INDENT 3.5
  155299. .INDENT 0.0
  155300. .IP \(bu 2
  155301. 592f3fe undo test
  155302. .IP \(bu 2
  155303. bc550ad wip pytest test david
  155304. .IP \(bu 2
  155305. 75571e4 fixs timezone decode error
  155306. .IP \(bu 2
  155307. d041660 fixes timezone decode error
  155308. .IP \(bu 2
  155309. 1ddd1a9 fixs timezone decode error
  155310. .IP \(bu 2
  155311. e75dafa patches timezone grain
  155312. .IP \(bu 2
  155313. eaca473 patches salt grains locale_info decode error
  155314. .UNINDENT
  155315. .UNINDENT
  155316. .UNINDENT
  155317. .UNINDENT
  155318. .IP \(bu 2
  155319. \fBPR\fP \fI\%#53873\fP: (\fI\%bryceml\fP) increase sleep time between kitchen create failures to account for ap...
  155320. @ \fI2019\-07\-16 23:46:09 UTC\fP
  155321. .INDENT 2.0
  155322. .IP \(bu 2
  155323. 61e9efd Merge pull request \fI\%#53873\fP from bryceml/2019.2.1\-increase\-sleep
  155324. .IP \(bu 2
  155325. aae0bf6 increase sleep time between kitchen create failures to account for api limits
  155326. .UNINDENT
  155327. .IP \(bu 2
  155328. \fBPR\fP \fI\%#53750\fP: (\fI\%twangboy\fP) Fix memory error when the test suite cleans up (2019.2.1)
  155329. @ \fI2019\-07\-16 23:00:07 UTC\fP
  155330. .INDENT 2.0
  155331. .IP \(bu 2
  155332. 317d9af Merge pull request \fI\%#53750\fP from twangboy/fix_helpers
  155333. .IP \(bu 2
  155334. fa0e9c3 Merge branch \(aq2019.2.1\(aq into fix_helpers
  155335. .UNINDENT
  155336. .IP \(bu 2
  155337. \fBPR\fP \fI\%#53851\fP: (\fI\%dwoz\fP) Master stats revert
  155338. @ \fI2019\-07\-16 16:05:38 UTC\fP
  155339. .INDENT 2.0
  155340. .IP \(bu 2
  155341. 6c2b3a5 Merge pull request \fI\%#53851\fP from dwoz/master_stats_revert
  155342. .IP \(bu 2
  155343. 0bc72e4 Revert "Merge pull request \fI\%#53822\fP from dwoz/master_stats_test"
  155344. .IP \(bu 2
  155345. 4553ba7 Revert "Merge pull request \fI\%#53829\fP from saltstack/fix_stats_2019.2.1"
  155346. .UNINDENT
  155347. .IP \(bu 2
  155348. \fBPR\fP \fI\%#53829\fP: (\fI\%dwoz\fP) Fix stats on windows
  155349. @ \fI2019\-07\-12 01:03:47 UTC\fP
  155350. .INDENT 2.0
  155351. .IP \(bu 2
  155352. 5064027 Merge pull request \fI\%#53829\fP from saltstack/fix_stats_2019.2.1
  155353. .IP \(bu 2
  155354. 9f2d20d Fix stats on windows
  155355. .UNINDENT
  155356. .IP \(bu 2
  155357. \fBPR\fP \fI\%#53826\fP: (\fI\%dmurphy18\fP) WAR ROOM test skip till rewritten to allow for dnf on RHEL 8 and F30
  155358. @ \fI2019\-07\-12 00:39:11 UTC\fP
  155359. .INDENT 2.0
  155360. .IP \(bu 2
  155361. 971eda3 Merge pull request \fI\%#53826\fP from dmurphy18/fedora30_fixes
  155362. .IP \(bu 2
  155363. 34b261d WAR ROOM test skip till rewritten to allow for dnf on RHEL 8 and Fedora 30
  155364. .UNINDENT
  155365. .IP \(bu 2
  155366. \fBPR\fP \fI\%#53822\fP: (\fI\%dwoz\fP) Enable master stats for tests
  155367. @ \fI2019\-07\-11 23:37:55 UTC\fP
  155368. .INDENT 2.0
  155369. .IP \(bu 2
  155370. ba33d76 Merge pull request \fI\%#53822\fP from dwoz/master_stats_test
  155371. .IP \(bu 2
  155372. d2b8315 Enable master stats for tests
  155373. .IP \(bu 2
  155374. 3471422 Fix memory error when the test suite cleans up
  155375. .UNINDENT
  155376. .IP \(bu 2
  155377. \fBPR\fP \fI\%#53591\fP: (\fI\%twangboy\fP) Fix whitelist errors in \fItest_boto_*\fP state tests on Windows
  155378. @ \fI2019\-07\-07 05:45:21 UTC\fP
  155379. .INDENT 2.0
  155380. .IP \(bu 2
  155381. 1756156 Merge pull request \fI\%#53591\fP from twangboy/fix_boto_tests
  155382. .IP \(bu 2
  155383. ba8ba26 Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155384. .UNINDENT
  155385. .IP \(bu 2
  155386. \fBISSUE\fP \fI\%#53532\fP: (\fI\%dafyddj\fP) win_lgpo.py: crash caused by empty presentation text element (refs: \fI\%#53662\fP)
  155387. .IP \(bu 2
  155388. \fBPR\fP \fI\%#53688\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#53662\fP (2019.2.1)
  155389. @ \fI2019\-07\-07 05:44:25 UTC\fP
  155390. .INDENT 2.0
  155391. .IP \(bu 2
  155392. \fBPR\fP \fI\%#53662\fP: (\fI\%lomeroe\fP) Update win_lgpo (refs: \fI\%#53688\fP)
  155393. .IP \(bu 2
  155394. 464464c Merge pull request \fI\%#53688\fP from twangboy/mf_53662
  155395. .IP \(bu 2
  155396. c19dc97 Merge branch \(aq2019.2.1\(aq into mf_53662
  155397. .UNINDENT
  155398. .IP \(bu 2
  155399. \fBISSUE\fP \fI\%#52391\fP: (\fI\%rsmekala\fP) Port Junos\-related bug fixes from develop to 2019.2 (refs: \fI\%#52401\fP)
  155400. .IP \(bu 2
  155401. \fBPR\fP \fI\%#52401\fP: (\fI\%rsmekala\fP) Port Junos\-related bug fixes from develop to 2019.2
  155402. @ \fI2019\-07\-06 21:50:51 UTC\fP
  155403. .INDENT 2.0
  155404. .IP \(bu 2
  155405. \fBPR\fP \fI\%#51164\fP: (\fI\%rsmekala\fP) Updates to salt\-junos modules (refs: \fI\%#52401\fP)
  155406. .IP \(bu 2
  155407. 1a76e00 Merge pull request \fI\%#52401\fP from rsmekala/2019.2.1
  155408. .IP \(bu 2
  155409. 345938d Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155410. .IP \(bu 2
  155411. 326f9f4 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155412. .IP \(bu 2
  155413. c11a004 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155414. .IP \(bu 2
  155415. 33b45d2 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155416. .IP \(bu 2
  155417. af66fac Merge branch \(aq2019.2.1\(aq into 2019.2.1
  155418. .IP \(bu 2
  155419. 211b169 Ported relevant fixes from unit.modules.test_junos from develop to 2019.2
  155420. .IP \(bu 2
  155421. 0c51bc9 Ported relevant fixes from states.junos from develop to 2019.2
  155422. .IP \(bu 2
  155423. a966ad1 Ported relevant fixes from proxy.junos from develop to 2019.2
  155424. .IP \(bu 2
  155425. 263e9f5 Ported relevant fixes from modules.junos from develop to 2019.2
  155426. .INDENT 2.0
  155427. .INDENT 3.5
  155428. .INDENT 0.0
  155429. .IP \(bu 2
  155430. b9033b9 Merge branch \(aq2019.2.1\(aq into mf_53662
  155431. .IP \(bu 2
  155432. 75e740e Merge forward \fI\%#53662\fP
  155433. .INDENT 2.0
  155434. .IP \(bu 2
  155435. 8ace391 Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155436. .UNINDENT
  155437. .UNINDENT
  155438. .UNINDENT
  155439. .UNINDENT
  155440. .UNINDENT
  155441. .IP \(bu 2
  155442. \fBPR\fP \fI\%#53585\fP: (\fI\%twangboy\fP) Fix \fItest_winrepo\fP on Windows
  155443. @ \fI2019\-07\-06 15:15:47 UTC\fP
  155444. .INDENT 2.0
  155445. .IP \(bu 2
  155446. 056f596 Merge pull request \fI\%#53585\fP from twangboy/fix_test_winrepo
  155447. .IP \(bu 2
  155448. c1f8cba Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155449. .UNINDENT
  155450. .IP \(bu 2
  155451. \fBPR\fP \fI\%#53590\fP: (\fI\%twangboy\fP) Fix \fItest status\fP on Windows
  155452. @ \fI2019\-07\-06 15:15:13 UTC\fP
  155453. .INDENT 2.0
  155454. .IP \(bu 2
  155455. db950f2 Merge pull request \fI\%#53590\fP from twangboy/fix_test_status
  155456. .IP \(bu 2
  155457. 67750b7 Merge branch \(aq2019.2.1\(aq into fix_test_status
  155458. .IP \(bu 2
  155459. b667045 Merge branch \(aq2019.2.1\(aq into fix_test_status
  155460. .IP \(bu 2
  155461. 9b4338a Merge branch \(aq2019.2.1\(aq into fix_test_status
  155462. .IP \(bu 2
  155463. 2735b19 Add __grains__
  155464. .IP \(bu 2
  155465. bb12da9 Load grains properly
  155466. .INDENT 2.0
  155467. .INDENT 3.5
  155468. .INDENT 0.0
  155469. .IP \(bu 2
  155470. 91da774 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155471. .UNINDENT
  155472. .UNINDENT
  155473. .UNINDENT
  155474. .UNINDENT
  155475. .IP \(bu 2
  155476. \fBPR\fP \fI\%#53556\fP: (\fI\%twangboy\fP) Fixes an issue with line endings in the jinja renderer
  155477. @ \fI2019\-07\-05 23:06:01 UTC\fP
  155478. .INDENT 2.0
  155479. .IP \(bu 2
  155480. becaf12 Merge pull request \fI\%#53556\fP from twangboy/fix_test_pillar
  155481. .IP \(bu 2
  155482. ac405d1 Merge branch \(aq2019.2.1\(aq into fix_test_pillar
  155483. .UNINDENT
  155484. .IP \(bu 2
  155485. \fBPR\fP \fI\%#53557\fP: (\fI\%twangboy\fP) Fix test_pydsl on Windows
  155486. @ \fI2019\-07\-05 22:36:40 UTC\fP
  155487. .INDENT 2.0
  155488. .IP \(bu 2
  155489. 7a5111b Merge pull request \fI\%#53557\fP from twangboy/fix_test_pydsl
  155490. .IP \(bu 2
  155491. d9df951 Merge branch \(aq2019.2.1\(aq into fix_test_pydsl
  155492. .IP \(bu 2
  155493. 1619c68 Merge branch \(aq2019.2.1\(aq into fix_test_pydsl
  155494. .IP \(bu 2
  155495. 2c3e91d Fix test_pydsl on Windows
  155496. .INDENT 2.0
  155497. .INDENT 3.5
  155498. .INDENT 0.0
  155499. .IP \(bu 2
  155500. 137f4a4 Merge branch \(aq2019.2.1\(aq into fix_test_pillar
  155501. .IP \(bu 2
  155502. 4a96252 Fixes an issue with line endings in the jinja renderer
  155503. .INDENT 2.0
  155504. .INDENT 3.5
  155505. .INDENT 0.0
  155506. .IP \(bu 2
  155507. c8c8bc0 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155508. .IP \(bu 2
  155509. 8373865 Merge branch \(aq2019.2.1\(aq into fix_test_winrepo
  155510. .IP \(bu 2
  155511. a818396 Split out the tests, patch test=True
  155512. .INDENT 2.0
  155513. .INDENT 3.5
  155514. .INDENT 0.0
  155515. .IP \(bu 2
  155516. 62041eb Merge branch \(aq2019.2.1\(aq into fix_boto_tests
  155517. .UNINDENT
  155518. .UNINDENT
  155519. .UNINDENT
  155520. .UNINDENT
  155521. .UNINDENT
  155522. .UNINDENT
  155523. .UNINDENT
  155524. .UNINDENT
  155525. .UNINDENT
  155526. .UNINDENT
  155527. .IP \(bu 2
  155528. \fBPR\fP \fI\%#53653\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Log which address failed to resolve
  155529. @ \fI2019\-07\-05 18:29:31 UTC\fP
  155530. .INDENT 2.0
  155531. .IP \(bu 2
  155532. 8f05226 Merge pull request \fI\%#53653\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  155533. .IP \(bu 2
  155534. f44253c Merge branch \(aq2019.2.1\(aq into hotfix/fix\-nox\-bypass\-2019.2.1
  155535. .IP \(bu 2
  155536. 0ead7fe Log which address failed to resolve
  155537. .UNINDENT
  155538. .IP \(bu 2
  155539. \fBPR\fP \fI\%#53725\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Archive the kitchen logs
  155540. @ \fI2019\-07\-05 18:19:50 UTC\fP
  155541. .INDENT 2.0
  155542. .IP \(bu 2
  155543. f750f44 Merge pull request \fI\%#53725\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155544. .IP \(bu 2
  155545. 118fbf7 Improve slack message
  155546. .IP \(bu 2
  155547. 62a2ee8 Archive the kitchen logs
  155548. .UNINDENT
  155549. .IP \(bu 2
  155550. \fBPR\fP \fI\%#53689\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#52593\fP (2019.2.1)
  155551. @ \fI2019\-07\-05 14:58:10 UTC\fP
  155552. .INDENT 2.0
  155553. .IP \(bu 2
  155554. \fBPR\fP \fI\%#52593\fP: (\fI\%twangboy\fP) Update setup.py (refs: \fI\%#53689\fP)
  155555. .IP \(bu 2
  155556. 0c6009f Merge pull request \fI\%#53689\fP from twangboy/fix_setup_2019.2.1
  155557. .IP \(bu 2
  155558. c6f3da5 Merge branch \(aq2019.2.1\(aq into fix_setup_2019.2.1
  155559. .UNINDENT
  155560. .IP \(bu 2
  155561. \fBPR\fP \fI\%#53690\fP: (\fI\%twangboy\fP) Merge Forward \fI\%#52065\fP (2019.2.1)
  155562. @ \fI2019\-07\-05 14:55:12 UTC\fP
  155563. .INDENT 2.0
  155564. .IP \(bu 2
  155565. \fBPR\fP \fI\%#52065\fP: (\fI\%twangboy\fP) Use the dism binary that matches system architecture (refs: \fI\%#53690\fP)
  155566. .IP \(bu 2
  155567. 54c4220 Merge pull request \fI\%#53690\fP from twangboy/fix_win_dism_2019.2.1
  155568. .IP \(bu 2
  155569. fae9f1a Merge branch \(aq2019.2.1\(aq into fix_win_dism_2019.2.1
  155570. .UNINDENT
  155571. .IP \(bu 2
  155572. \fBPR\fP \fI\%#53719\fP: (\fI\%s0undt3ch\fP) [2019.2.1] PR Pipeline Enhancements
  155573. @ \fI2019\-07\-04 20:29:06 UTC\fP
  155574. .INDENT 2.0
  155575. .IP \(bu 2
  155576. 78c45eb Merge pull request \fI\%#53719\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155577. .IP \(bu 2
  155578. 76b99fd Enhance lint report
  155579. .IP \(bu 2
  155580. 45f19af Use milestones to abort previous, still running, builds, on new builds
  155581. .UNINDENT
  155582. .IP \(bu 2
  155583. \fBPR\fP \fI\%#53697\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Add Fedora 30 requirements files
  155584. @ \fI2019\-07\-04 04:26:02 UTC\fP
  155585. .INDENT 2.0
  155586. .IP \(bu 2
  155587. 3db4ddb Merge pull request \fI\%#53697\fP from s0undt3ch/features/f30\-reqs\-2019.2.1
  155588. .IP \(bu 2
  155589. 36198cd Delete Opensuse 42 static requirements
  155590. .IP \(bu 2
  155591. 4413626 Delete Fedora 28 static requirements
  155592. .IP \(bu 2
  155593. 41809e5 Add Fedora 30 requirements files
  155594. .UNINDENT
  155595. .IP \(bu 2
  155596. \fBPR\fP \fI\%#53680\fP: (\fI\%Ch3LL\fP) Pytest 5.0 contextmanager str: call value on ExceptionInfo objects
  155597. @ \fI2019\-07\-04 00:12:56 UTC\fP
  155598. .INDENT 2.0
  155599. .IP \(bu 2
  155600. f5c5da4 Merge pull request \fI\%#53680\fP from Ch3LL/pytest_5_changes
  155601. .IP \(bu 2
  155602. b5e2b0b Merge branch \(aq2019.2.1\(aq into pytest_5_changes
  155603. .UNINDENT
  155604. .IP \(bu 2
  155605. \fBPR\fP \fI\%#53682\fP: (\fI\%twangboy\fP) Fix compare issue in lgpo state module
  155606. @ \fI2019\-07\-03 04:43:22 UTC\fP
  155607. .INDENT 2.0
  155608. .IP \(bu 2
  155609. 727843c Merge pull request \fI\%#53682\fP from twangboy/fix_lock_1740_lgpo
  155610. .IP \(bu 2
  155611. 62450db Merge branch \(aq2019.2.1\(aq into fix_lock_1740_lgpo
  155612. .IP \(bu 2
  155613. f6276a3 Fix compare issue in lgpo state module
  155614. .INDENT 2.0
  155615. .IP \(bu 2
  155616. 110b953 Pytest 5.0 contextmanager str: call value on ExceptionInfo objects
  155617. .IP \(bu 2
  155618. b71b655 Merge forward \fI\%#52065\fP
  155619. .IP \(bu 2
  155620. 023c47d Fix typo
  155621. .IP \(bu 2
  155622. 43dd7b3 Merge Forward \fI\%#52593\fP
  155623. .UNINDENT
  155624. .UNINDENT
  155625. .IP \(bu 2
  155626. \fBPR\fP \fI\%#53678\fP: (\fI\%twangboy\fP) Fix LGPO when string object is None
  155627. @ \fI2019\-07\-02 23:47:05 UTC\fP
  155628. .INDENT 2.0
  155629. .IP \(bu 2
  155630. 491bfa8 Merge pull request \fI\%#53678\fP from twangboy/fix_lock_1688_lgpo
  155631. .IP \(bu 2
  155632. 7b05bf8 Merge branch \(aq2019.2.1\(aq into fix_lock_1688_lgpo
  155633. .UNINDENT
  155634. .IP \(bu 2
  155635. \fBPR\fP \fI\%#53220\fP: (\fI\%twangboy\fP) Don\(aqt remove the pythonwin directory (2019.2.1)
  155636. @ \fI2019\-07\-02 22:43:43 UTC\fP
  155637. .INDENT 2.0
  155638. .IP \(bu 2
  155639. 4a4a91b Merge pull request \fI\%#53220\fP from twangboy/fix_pywin32_2019.2.1
  155640. .IP \(bu 2
  155641. 748bf1c Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  155642. .UNINDENT
  155643. .IP \(bu 2
  155644. \fBPR\fP \fI\%#53614\fP: (\fI\%Ch3LL\fP) Increase flaky attempts on mac tests using systemsetup
  155645. @ \fI2019\-07\-02 21:33:56 UTC\fP
  155646. .INDENT 2.0
  155647. .IP \(bu 2
  155648. c2befe2 Merge pull request \fI\%#53614\fP from Ch3LL/mac_flaky
  155649. .IP \(bu 2
  155650. 5460031 Merge branch \(aq2019.2.1\(aq into mac_flaky
  155651. .IP \(bu 2
  155652. 7dcaaf0 Increase flaky attempts on mac tests using systemsetup
  155653. .UNINDENT
  155654. .IP \(bu 2
  155655. \fBPR\fP \fI\%#53624\fP: (\fI\%Ch3LL\fP) Allow yaml list notation for nodegroup expansion
  155656. @ \fI2019\-07\-02 21:32:43 UTC\fP
  155657. .INDENT 2.0
  155658. .IP \(bu 2
  155659. 02461cb Merge pull request \fI\%#53624\fP from Ch3LL/nodegroup_group_list
  155660. .IP \(bu 2
  155661. 475d904 Merge branch \(aq2019.2.1\(aq into nodegroup_group_list
  155662. .IP \(bu 2
  155663. fbb15cd Add nodegroup list test
  155664. .IP \(bu 2
  155665. ee59d39 Merge branch \(aq2019.2.1\(aq into nodegroup_group_list
  155666. .IP \(bu 2
  155667. d236bd4 Allow yaml list notation for nodegroup expansion
  155668. .UNINDENT
  155669. .IP \(bu 2
  155670. \fBPR\fP \fI\%#53562\fP: (\fI\%Ch3LL\fP) Move create key call into try/except in Digital Ocean key test
  155671. @ \fI2019\-07\-02 16:08:08 UTC\fP
  155672. .INDENT 2.0
  155673. .IP \(bu 2
  155674. 8857dbd Merge pull request \fI\%#53562\fP from Ch3LL/do_key_test
  155675. .IP \(bu 2
  155676. 315eb35 Merge branch \(aq2019.2.1\(aq into do_key_test
  155677. .IP \(bu 2
  155678. 75ac708 Merge branch \(aq2019.2.1\(aq into do_key_test
  155679. .IP \(bu 2
  155680. 128ba07 Move create key call into try/except in Digital Ocean key test
  155681. .INDENT 2.0
  155682. .INDENT 3.5
  155683. .INDENT 0.0
  155684. .IP \(bu 2
  155685. 22d4a3a Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  155686. .IP \(bu 2
  155687. 6bb6df7 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  155688. .IP \(bu 2
  155689. 534c984 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  155690. .IP \(bu 2
  155691. 382c637 Merge branch \(aq2019.2.1\(aq into fix_pywin32_2019.2.1
  155692. .IP \(bu 2
  155693. fb4090d update py3 script
  155694. .IP \(bu 2
  155695. 0ea70ba Don\(aqt remove pythonwin directory
  155696. .INDENT 2.0
  155697. .INDENT 3.5
  155698. .INDENT 0.0
  155699. .IP \(bu 2
  155700. ba37276 Use string_types instead of text_types
  155701. .IP \(bu 2
  155702. f6d0084 Add some unit tests, raise error on non\-string types
  155703. .IP \(bu 2
  155704. 35ed8be Create function for encoding string values
  155705. .IP \(bu 2
  155706. c4c1082 Return encoded null when string value is None
  155707. .UNINDENT
  155708. .UNINDENT
  155709. .UNINDENT
  155710. .UNINDENT
  155711. .UNINDENT
  155712. .UNINDENT
  155713. .UNINDENT
  155714. .IP \(bu 2
  155715. \fBPR\fP \fI\%#53627\fP: (\fI\%dmurphy18\fP) Cherry pick pr 53370 from 2018.3 into 2019.2.1
  155716. @ \fI2019\-06\-28 19:54:13 UTC\fP
  155717. .INDENT 2.0
  155718. .IP \(bu 2
  155719. 164aaeb Merge pull request \fI\%#53627\fP from dmurphy18/cherry\-pick\-pr\-53370
  155720. .IP \(bu 2
  155721. 450d23d Merge branch \(aq2019.2.1\(aq into cherry\-pick\-pr\-53370
  155722. .UNINDENT
  155723. .IP \(bu 2
  155724. \fBISSUE\fP \fI\%#53411\fP: (\fI\%cro\fP) Events can grow stale when event_listen_queue is set. (refs: \fI\%#53587\fP, \fI\%#53412\fP)
  155725. .IP \(bu 2
  155726. \fBPR\fP \fI\%#53587\fP: (\fI\%cro\fP) Forward port from 2018.3 Add event_listen_queue_max_seconds to fix \fI\%#53411\fP
  155727. @ \fI2019\-06\-28 16:49:46 UTC\fP
  155728. .INDENT 2.0
  155729. .IP \(bu 2
  155730. \fBPR\fP \fI\%#53412\fP: (\fI\%cro\fP) Stale events 53411 (refs: \fI\%#53587\fP)
  155731. .IP \(bu 2
  155732. 6559e4c Merge pull request \fI\%#53587\fP from cro/53412\-2019.2.1
  155733. .IP \(bu 2
  155734. 9e69bd4 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  155735. .IP \(bu 2
  155736. 949a026 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  155737. .IP \(bu 2
  155738. f5d81c9 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  155739. .IP \(bu 2
  155740. d74c313 Merge branch \(aq2019.2.1\(aq into 53412\-2019.2.1
  155741. .IP \(bu 2
  155742. b3c3f52 Make doc build test pass.
  155743. .IP \(bu 2
  155744. 8001130 Add event_listen_queue_max_seconds to fix \fI\%#53411\fP
  155745. .INDENT 2.0
  155746. .INDENT 3.5
  155747. .INDENT 0.0
  155748. .IP \(bu 2
  155749. 34e38d7 Merge branch \(aq2019.2.1\(aq into cherry\-pick\-pr\-53370
  155750. .UNINDENT
  155751. .UNINDENT
  155752. .UNINDENT
  155753. .UNINDENT
  155754. .IP \(bu 2
  155755. \fBISSUE\fP \fI\%#53283\fP: (\fI\%Ch3LL\fP) integration.states.test_file.FileTest.test_directory_broken_symlink (refs: \fI\%#53295\fP)
  155756. .IP \(bu 2
  155757. \fBPR\fP \fI\%#53295\fP: (\fI\%DmitryKuzmenko\fP) Recurse kwarg of state.directory state shall be a list or None
  155758. @ \fI2019\-06\-27 23:20:10 UTC\fP
  155759. .INDENT 2.0
  155760. .IP \(bu 2
  155761. 14efced Merge pull request \fI\%#53295\fP from DSRCorporation/bugs/test_file_recurse_set
  155762. .IP \(bu 2
  155763. 2927b78 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  155764. .IP \(bu 2
  155765. 9c01670 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  155766. .IP \(bu 2
  155767. 571d82a Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  155768. .IP \(bu 2
  155769. ee8f0e3 Merge branch \(aq2019.2.1\(aq into bugs/test_file_recurse_set
  155770. .IP \(bu 2
  155771. 013e04c Recurse kwarg of state.directory state shall be a list of None
  155772. .UNINDENT
  155773. .IP \(bu 2
  155774. \fBISSUE\fP \fI\%#52926\fP: (\fI\%waynew\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent \- Beacon "diskusage" is not available (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  155775. .IP \(bu 2
  155776. \fBISSUE\fP \fI\%#52245\fP: (\fI\%twangboy\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  155777. .IP \(bu 2
  155778. \fBPR\fP \fI\%#53466\fP: (\fI\%dwoz\fP) More robust beacon state test
  155779. @ \fI2019\-06\-27 23:17:01 UTC\fP
  155780. .INDENT 2.0
  155781. .IP \(bu 2
  155782. 75175bb Merge pull request \fI\%#53466\fP from dwoz/test_pres_abs
  155783. .IP \(bu 2
  155784. f24bf06 Use new pipeline format
  155785. .IP \(bu 2
  155786. a74580b Clean up cruft
  155787. .IP \(bu 2
  155788. 68958f5 Do not create duplicate minion ids
  155789. .IP \(bu 2
  155790. c47eeb4 Add amazon 2 to PR tests
  155791. .IP \(bu 2
  155792. dc90b47 More robust beacon state test
  155793. .INDENT 2.0
  155794. .INDENT 3.5
  155795. .INDENT 0.0
  155796. .IP \(bu 2
  155797. 95b1819 Initial working tests for gpg fixes and import keys, signing
  155798. .IP \(bu 2
  155799. b2c9ae2 Update access to str/bytes with to_unicode/to_bytes for Python 3
  155800. .UNINDENT
  155801. .UNINDENT
  155802. .UNINDENT
  155803. .UNINDENT
  155804. .IP \(bu 2
  155805. \fBPR\fP \fI\%#53609\fP: (\fI\%s0undt3ch\fP) CI Pipelines. Timeout after getting a node. Report exit code.
  155806. @ \fI2019\-06\-27 16:09:54 UTC\fP
  155807. .INDENT 2.0
  155808. .IP \(bu 2
  155809. 582ac5f Merge pull request \fI\%#53609\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  155810. .IP \(bu 2
  155811. 024be84 CI Pipelines. Timeout after getting a node. Report exit code.
  155812. .UNINDENT
  155813. .IP \(bu 2
  155814. \fBPR\fP \fI\%#53574\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Minor fixes/adjustments to the new CI pipelines
  155815. @ \fI2019\-06\-25 18:48:25 UTC\fP
  155816. .INDENT 2.0
  155817. .IP \(bu 2
  155818. f568796 Merge pull request \fI\%#53574\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  155819. .IP \(bu 2
  155820. e85e2f4 Minor fixes/adjustments to the new CI pipelines
  155821. .UNINDENT
  155822. .IP \(bu 2
  155823. \fBPR\fP \fI\%#53584\fP: (\fI\%dwoz\fP) Add unit tests for recent SaltCacheLoader changes
  155824. @ \fI2019\-06\-24 23:40:43 UTC\fP
  155825. .INDENT 2.0
  155826. .IP \(bu 2
  155827. \fBPR\fP \fI\%#53563\fP: (\fI\%twangboy\fP) SaltCacheLoader does not create multiple FileClients (refs: \fI\%#53584\fP)
  155828. .IP \(bu 2
  155829. 77b7fc4 Merge pull request \fI\%#53584\fP from dwoz/client_cache
  155830. .IP \(bu 2
  155831. e9b61dc Add unit tests for recent SaltCacheLoader changes
  155832. .INDENT 2.0
  155833. .INDENT 3.5
  155834. .INDENT 0.0
  155835. .IP \(bu 2
  155836. 5558a0a Add reg to the whitelist
  155837. .UNINDENT
  155838. .UNINDENT
  155839. .UNINDENT
  155840. .UNINDENT
  155841. .IP \(bu 2
  155842. \fBPR\fP \fI\%#53563\fP: (\fI\%twangboy\fP) SaltCacheLoader does not create multiple FileClients (refs: \fI\%#53584\fP)
  155843. @ \fI2019\-06\-22 23:23:03 UTC\fP
  155844. .INDENT 2.0
  155845. .IP \(bu 2
  155846. 6ed6c31 Merge pull request \fI\%#53563\fP from twangboy/py3_windows_hang
  155847. .IP \(bu 2
  155848. 369720e Allow the file_client to be overridden
  155849. .IP \(bu 2
  155850. f6c592c Don\(aqt instantiate the file_client every time
  155851. .UNINDENT
  155852. .IP \(bu 2
  155853. \fBPR\fP \fI\%#53432\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Various fixes for 2019.2.1 to ensure tests pass on Mac OS X
  155854. @ \fI2019\-06\-21 13:47:41 UTC\fP
  155855. .INDENT 2.0
  155856. .IP \(bu 2
  155857. c606952 Merge pull request \fI\%#53432\fP from garethgreenaway/2019_2_1_mac_fixes
  155858. .IP \(bu 2
  155859. 1974f11 Disabling a couple more tests in integration.modules.test_cp that hang on OS X and Py2.
  155860. .IP \(bu 2
  155861. 7721151 Fixing lint.
  155862. .IP \(bu 2
  155863. 1d4e228 Updating various skips for tests to only skip if OS is OS X and Python is Python2.
  155864. .IP \(bu 2
  155865. 01dafdc Skipping integration.modules.test_cp.CPModuleTest.test_get_file_str_https on OS X
  155866. .IP \(bu 2
  155867. c02db20 Disabling integration.modules.test_state.StateModuleTest.test_parallel_state_with_long_tag
  155868. .IP \(bu 2
  155869. 8788877 Skip integration.states.test_file.FileTest.test_issue_11003_immutable_lazy_proxy_sum and integration.states.test_pip_state.PipStateTest.test_22359_pip_installed_unless_does_not_trigger_warnings when running on OS X.
  155870. .IP \(bu 2
  155871. cf76027 Removing wrong import of skipIf
  155872. .IP \(bu 2
  155873. b10e1e7 Moving the skipIf for OS X from the beacon state tests to the renderer state tests.
  155874. .IP \(bu 2
  155875. d2fef9a Disabling beacon state tests on OS X for the time being.
  155876. .IP \(bu 2
  155877. 1741bb0 Adding some timeouts to see if it helps the tests pass on OS X.
  155878. .IP \(bu 2
  155879. fd0ba0a Ensure the user and group used by @with_system_user_and_group are consistent.
  155880. .IP \(bu 2
  155881. e03ab81 Using salt.utils.path.which to find false, on OSX it lives under /usr/bin/
  155882. .IP \(bu 2
  155883. 353f9d4 Fixing the beacons.reset function. Once the reset has taken place in beacons/__init__.py we need to fire an event back to complete the loop and ensure that everything worked as expected.
  155884. .IP \(bu 2
  155885. ee3cbc7 fix to how the depends decorator works. Only run the dependancy commands for the module we\(aqre checking.
  155886. .IP \(bu 2
  155887. 8440176 Fixing a log issue that pops up after test_gen_thin_compression_fallback_py3 on "OS X, need to ensure that salt.utils.thin.os.close is mocked.
  155888. .IP \(bu 2
  155889. 9767ddd Format for the sqlite3 databse used for the assistive information changed in Mojave, additional columns added.
  155890. .IP \(bu 2
  155891. 9c8a7e6 Fixing a bug when the roots fileserver and the location is a symlink to another location. This fix ensures that when fsroot is referenced we are using the real path and not the symlink path.
  155892. .UNINDENT
  155893. .IP \(bu 2
  155894. \fBPR\fP \fI\%#53526\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update pipelines to work on old and new jenkins
  155895. @ \fI2019\-06\-20 15:29:13 UTC\fP
  155896. .INDENT 2.0
  155897. .IP \(bu 2
  155898. 59e2a1f Merge pull request \fI\%#53526\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  155899. .IP \(bu 2
  155900. 24d6d09 Update pipelines to work on old and new jenkins
  155901. .UNINDENT
  155902. .IP \(bu 2
  155903. \fBPR\fP \fI\%#53210\fP: (\fI\%Ch3LL\fP) Cherry\-Pick \fI\%#52787\fP into 2019.2.1
  155904. @ \fI2019\-06\-20 13:33:13 UTC\fP
  155905. .INDENT 2.0
  155906. .IP \(bu 2
  155907. \fBPR\fP \fI\%#52787\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to test_pip state sls files (refs: \fI\%#53210\fP)
  155908. .IP \(bu 2
  155909. f5f80af Merge pull request \fI\%#53210\fP from Ch3LL/cp\-52787
  155910. .IP \(bu 2
  155911. f27c434 Merge branch \(aq2019.2.1\(aq into cp\-52787
  155912. .UNINDENT
  155913. .IP \(bu 2
  155914. \fBPR\fP \fI\%#53467\fP: (\fI\%twangboy\fP) Check valid username first (fixes failing symlink test)
  155915. @ \fI2019\-06\-19 17:04:30 UTC\fP
  155916. .INDENT 2.0
  155917. .IP \(bu 2
  155918. fd6cb35 Merge pull request \fI\%#53467\fP from twangboy/fix_test_win_file
  155919. .IP \(bu 2
  155920. 92950c5 Merge branch \(aq2019.2.1\(aq into fix_test_win_file
  155921. .IP \(bu 2
  155922. 6a21edb Merge branch \(aq2019.2.1\(aq into fix_test_win_file
  155923. .IP \(bu 2
  155924. 31ce1fb Fix some lint, skip some tests
  155925. .IP \(bu 2
  155926. 6de4db6 Monkeypatch in the class instead of globally
  155927. .IP \(bu 2
  155928. d663a1f Fix the failing BlockReplace test cases on Windows
  155929. .IP \(bu 2
  155930. 299f88f Update test_managed_contents
  155931. .IP \(bu 2
  155932. 81110e5 Fix test_file_copy_make_dirs that was failing on Linux
  155933. .IP \(bu 2
  155934. 8d0529d Fix some lint
  155935. .IP \(bu 2
  155936. 4a9c020 Fix issues with win_runas
  155937. .IP \(bu 2
  155938. bceffa1 Remove privs message
  155939. .IP \(bu 2
  155940. 54be0a6 Verify username early in win_runas
  155941. .UNINDENT
  155942. .IP \(bu 2
  155943. \fBPR\fP \fI\%#53475\fP: (\fI\%Ch3LL\fP) Add pypsexec requirement for cloud tests
  155944. @ \fI2019\-06\-19 13:30:25 UTC\fP
  155945. .INDENT 2.0
  155946. .IP \(bu 2
  155947. 3230078 Merge pull request \fI\%#53475\fP from Ch3LL/add_pypsexec
  155948. .IP \(bu 2
  155949. ab59a55 Merge branch \(aq2019.2.1\(aq into add_pypsexec
  155950. .IP \(bu 2
  155951. f954363 Merge branch \(aq2019.2.1\(aq into add_pypsexec
  155952. .IP \(bu 2
  155953. 8f7cbfc Merge branch \(aq2019.2.1\(aq into add_pypsexec
  155954. .IP \(bu 2
  155955. fa22b39 Add pypsexec requirement for cloud tests
  155956. .UNINDENT
  155957. .IP \(bu 2
  155958. \fBPR\fP \fI\%#53491\fP: (\fI\%Ch3LL\fP) Update test_gen_hash for macosx
  155959. @ \fI2019\-06\-19 13:16:04 UTC\fP
  155960. .INDENT 2.0
  155961. .IP \(bu 2
  155962. bdd7c2c Merge pull request \fI\%#53491\fP from Ch3LL/crypt_test_mac
  155963. .IP \(bu 2
  155964. 85e96bd Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  155965. .IP \(bu 2
  155966. 700338e Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  155967. .IP \(bu 2
  155968. 4ce7fb1 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  155969. .IP \(bu 2
  155970. 832ded6 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  155971. .IP \(bu 2
  155972. 775b8c2 Merge branch \(aq2019.2.1\(aq into crypt_test_mac
  155973. .IP \(bu 2
  155974. 0832b49 Update test_gen_hash for macosx
  155975. .UNINDENT
  155976. .IP \(bu 2
  155977. \fBPR\fP \fI\%#53494\fP: (\fI\%Ch3LL\fP) Always delete digital ocean key for test_key_management test
  155978. @ \fI2019\-06\-19 13:14:51 UTC\fP
  155979. .INDENT 2.0
  155980. .IP \(bu 2
  155981. 8c2e952 Merge pull request \fI\%#53494\fP from Ch3LL/do_cloud_test
  155982. .IP \(bu 2
  155983. 5053eab Merge branch \(aq2019.2.1\(aq into do_cloud_test
  155984. .IP \(bu 2
  155985. 64a3e8d Merge branch \(aq2019.2.1\(aq into do_cloud_test
  155986. .IP \(bu 2
  155987. 45c0c43 Merge branch \(aq2019.2.1\(aq into do_cloud_test
  155988. .IP \(bu 2
  155989. 3826c56 Allows delete digital ocean key for test_key_management test
  155990. .INDENT 2.0
  155991. .INDENT 3.5
  155992. .INDENT 0.0
  155993. .IP \(bu 2
  155994. 6b6dc66 Merge branch \(aq2019.2.1\(aq into cp\-52787
  155995. .UNINDENT
  155996. .UNINDENT
  155997. .UNINDENT
  155998. .UNINDENT
  155999. .IP \(bu 2
  156000. \fBPR\fP \fI\%#53434\fP: (\fI\%weswhet\fP) Update documentation for newer mac_service module.
  156001. @ \fI2019\-06\-19 01:15:19 UTC\fP
  156002. .INDENT 2.0
  156003. .IP \(bu 2
  156004. 2e3778b Merge pull request \fI\%#53434\fP from weswhet/patch\-2
  156005. .IP \(bu 2
  156006. 89398a9 Update salt.modules.service.rst
  156007. .IP \(bu 2
  156008. b9c1b1a Update salt.modules.service.rst
  156009. .IP \(bu 2
  156010. a962a64 Merge branch \(aq2019.2.1\(aq into patch\-2
  156011. .UNINDENT
  156012. .IP \(bu 2
  156013. \fBPR\fP \fI\%#53498\fP: (\fI\%amendlik\fP) Fix broken documentation links
  156014. @ \fI2019\-06\-18 23:44:05 UTC\fP
  156015. .INDENT 2.0
  156016. .IP \(bu 2
  156017. f72ebba Merge pull request \fI\%#53498\fP from amendlik/links
  156018. .IP \(bu 2
  156019. e360a70 Fix broken documentation links for service virtual module
  156020. .IP \(bu 2
  156021. 56f65ec Fix broken documentation links for pkg virtual module
  156022. .INDENT 2.0
  156023. .IP \(bu 2
  156024. 010a2c5 Update documentation for newer mac_service module.
  156025. .INDENT 2.0
  156026. .INDENT 3.5
  156027. .INDENT 0.0
  156028. .IP \(bu 2
  156029. 1bbdc7f Merge branch \(aq2019.2.1\(aq into cp\-52787
  156030. .UNINDENT
  156031. .UNINDENT
  156032. .UNINDENT
  156033. .UNINDENT
  156034. .UNINDENT
  156035. .IP \(bu 2
  156036. \fBPR\fP \fI\%#53514\fP: (\fI\%Ch3LL\fP) Revert logging changes from \fI\%#53492\fP
  156037. @ \fI2019\-06\-18 20:49:04 UTC\fP
  156038. .INDENT 2.0
  156039. .IP \(bu 2
  156040. \fBPR\fP \fI\%#53492\fP: (\fI\%dwoz\fP) Fix syndic connection when using tcp transport (refs: \fI\%#53514\fP)
  156041. .IP \(bu 2
  156042. 0793272 Merge pull request \fI\%#53514\fP from Ch3LL/disable_py3_logging
  156043. .IP \(bu 2
  156044. 8c8f0ac import six runtests log handler
  156045. .IP \(bu 2
  156046. f442b33 Revert "Enable logging for test runs on py3"
  156047. .INDENT 2.0
  156048. .INDENT 3.5
  156049. .INDENT 0.0
  156050. .IP \(bu 2
  156051. b62be16 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156052. .UNINDENT
  156053. .UNINDENT
  156054. .UNINDENT
  156055. .UNINDENT
  156056. .IP \(bu 2
  156057. \fBPR\fP \fI\%#53485\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Workaround nox\(aqs install only flag
  156058. @ \fI2019\-06\-18 09:35:34 UTC\fP
  156059. .INDENT 2.0
  156060. .IP \(bu 2
  156061. 98285f9 Merge pull request \fI\%#53485\fP from s0undt3ch/hotfix/fix\-nox\-bypass\-2019.2.1
  156062. .IP \(bu 2
  156063. 69e1d84 Workaround nox\(aqs install only flag
  156064. .INDENT 2.0
  156065. .INDENT 3.5
  156066. .INDENT 0.0
  156067. .IP \(bu 2
  156068. 8622bba Merge branch \(aq2019.2.1\(aq into cp\-52787
  156069. .UNINDENT
  156070. .UNINDENT
  156071. .UNINDENT
  156072. .UNINDENT
  156073. .IP \(bu 2
  156074. \fBPR\fP \fI\%#53369\fP: (\fI\%Akm0d\fP) Added refs to AIX module documentation
  156075. @ \fI2019\-06\-17 20:29:01 UTC\fP
  156076. .INDENT 2.0
  156077. .IP \(bu 2
  156078. ff7370e Merge pull request \fI\%#53369\fP from Akm0d/aix_docs
  156079. .IP \(bu 2
  156080. 2ece253 Merge branch \(aq2019.2.1\(aq into aix_docs
  156081. .IP \(bu 2
  156082. f2eda45 Merge branch \(aq2019.2.1\(aq into aix_docs
  156083. .IP \(bu 2
  156084. 3e793ac Merge branch \(aq2019.2.1\(aq into aix_docs
  156085. .IP \(bu 2
  156086. e800641 Merge branch \(aq2019.2.1\(aq into aix_docs
  156087. .IP \(bu 2
  156088. 0ef9892 Merge branch \(aq2019.2.1\(aq into aix_docs
  156089. .IP \(bu 2
  156090. 65cb718 Merge branch \(aq2019.2.1\(aq into aix_docs
  156091. .IP \(bu 2
  156092. 32f4d7e Merge branch \(aq2019.2.1\(aq into aix_docs
  156093. .IP \(bu 2
  156094. a59f45e Merge branch \(aq2019.2.1\(aq into aix_docs
  156095. .IP \(bu 2
  156096. 29f89a4 Merge branch \(aq2019.2.1\(aq into aix_docs
  156097. .IP \(bu 2
  156098. e74345c Merge branch \(aq2019.2.1\(aq into aix_docs
  156099. .IP \(bu 2
  156100. 28fbd11 Merge branch \(aq2019.2.1\(aq into aix_docs
  156101. .IP \(bu 2
  156102. 60129f0 Merge branch \(aqaix_docs\(aq of github.com:Akm0d/salt into aix_docs
  156103. .INDENT 2.0
  156104. .IP \(bu 2
  156105. a1c4abc Merge branch \(aq2019.2.1\(aq into aix_docs
  156106. .IP \(bu 2
  156107. e2c9fcc Merge branch \(aq2019.2.1\(aq into aix_docs
  156108. .UNINDENT
  156109. .IP \(bu 2
  156110. fd197d3 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into aix_docs
  156111. .IP \(bu 2
  156112. 6d42cf7 Merge branch \(aqaix_docs\(aq of github.com:Akm0d/salt into aix_docs
  156113. .INDENT 2.0
  156114. .IP \(bu 2
  156115. fae6045 Merge branch \(aq2019.2.1\(aq into aix_docs
  156116. .UNINDENT
  156117. .IP \(bu 2
  156118. 97145b0 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into aix_docs
  156119. .IP \(bu 2
  156120. 6d16343 Updated \(aqused for\(aq description of aixpkg
  156121. .IP \(bu 2
  156122. 6092683 Added aixpkg to index
  156123. .IP \(bu 2
  156124. 2867d07 Added refs to AIX module documentation
  156125. .INDENT 2.0
  156126. .INDENT 3.5
  156127. .INDENT 0.0
  156128. .IP \(bu 2
  156129. 458fe9f Merge branch \(aq2019.2.1\(aq into cp\-52787
  156130. .UNINDENT
  156131. .UNINDENT
  156132. .UNINDENT
  156133. .UNINDENT
  156134. .IP \(bu 2
  156135. \fBPR\fP \fI\%#53461\fP: (\fI\%waynew\fP) Update file.chattr
  156136. @ \fI2019\-06\-14 21:16:52 UTC\fP
  156137. .INDENT 2.0
  156138. .IP \(bu 2
  156139. 8df7684 Merge pull request \fI\%#53461\fP from waynew/fix\-chattr\-problems
  156140. .IP \(bu 2
  156141. a8d8174 Merge branch \(aq2019.2.1\(aq into fix\-chattr\-problems
  156142. .UNINDENT
  156143. .IP \(bu 2
  156144. \fBISSUE\fP \fI\%#52926\fP: (\fI\%waynew\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent \- Beacon "diskusage" is not available (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  156145. .IP \(bu 2
  156146. \fBISSUE\fP \fI\%#52245\fP: (\fI\%twangboy\fP) integration.states.test_beacon.BeaconStateTestCase.test_present_absent (refs: \fI\%#53493\fP, \fI\%#53466\fP)
  156147. .IP \(bu 2
  156148. \fBPR\fP \fI\%#53493\fP: (\fI\%dwoz\fP) Cherry\-pick and merge beacon event change
  156149. @ \fI2019\-06\-14 20:36:10 UTC\fP
  156150. .INDENT 2.0
  156151. .IP \(bu 2
  156152. cfe866d Merge pull request \fI\%#53493\fP from dwoz/cherry_pick_test_fix
  156153. .IP \(bu 2
  156154. fb104bb Cherry\-pick and merge beacon event change
  156155. .UNINDENT
  156156. .IP \(bu 2
  156157. \fBPR\fP \fI\%#53492\fP: (\fI\%dwoz\fP) Fix syndic connection when using tcp transport (refs: \fI\%#53514\fP)
  156158. @ \fI2019\-06\-14 19:23:41 UTC\fP
  156159. .INDENT 2.0
  156160. .IP \(bu 2
  156161. a1f4136 Merge pull request \fI\%#53492\fP from dwoz/tcp_syndic_fix
  156162. .IP \(bu 2
  156163. 17c983b Fix linter
  156164. .IP \(bu 2
  156165. 9339425 Enable logging for test runs on py3
  156166. .IP \(bu 2
  156167. f1b65d1 Fix syndic connection when using tcp transport
  156168. .UNINDENT
  156169. .IP \(bu 2
  156170. \fBPR\fP \fI\%#53437\fP: (\fI\%twangboy\fP) Fix failing symlink test
  156171. @ \fI2019\-06\-12 22:53:32 UTC\fP
  156172. .INDENT 2.0
  156173. .IP \(bu 2
  156174. e852596 Merge pull request \fI\%#53437\fP from twangboy/fix_test_win_file
  156175. .IP \(bu 2
  156176. 8c30dbd Add priv info to error message
  156177. .IP \(bu 2
  156178. a7d41a8 Make them non\-destructive tests
  156179. .IP \(bu 2
  156180. d8bede0 Remove duplicate test
  156181. .IP \(bu 2
  156182. 89aaf2e Remove duplicate test
  156183. .IP \(bu 2
  156184. 184ec4a Skip test on linux
  156185. .IP \(bu 2
  156186. c97ea99 Mark it a destructive test
  156187. .IP \(bu 2
  156188. 9da7090 Fix failing symlink test
  156189. .UNINDENT
  156190. .IP \(bu 2
  156191. \fBPR\fP \fI\%#53408\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Fix static requirements
  156192. @ \fI2019\-06\-12 22:52:33 UTC\fP
  156193. .INDENT 2.0
  156194. .IP \(bu 2
  156195. a92836b Merge pull request \fI\%#53408\fP from s0undt3ch/hotfix/fix\-pkg\-reqs\-2019.2.1
  156196. .IP \(bu 2
  156197. 19629a0 Fix \fIunit.templates.test_jinja.TestCustomExtensions.test_http_query\fP
  156198. .IP \(bu 2
  156199. 5aee99b Take into account the packaging requirements for OSX
  156200. .IP \(bu 2
  156201. b9618f6 Take into account the packaging requirements for windows
  156202. .IP \(bu 2
  156203. ff63ae4 Stop compiling static TCP requirements.
  156204. .INDENT 2.0
  156205. .IP \(bu 2
  156206. 62e590b Update file.chattr
  156207. .UNINDENT
  156208. .UNINDENT
  156209. .IP \(bu 2
  156210. \fBPR\fP \fI\%#53165\fP: (\fI\%Ch3LL\fP) Update ami\(aqs used for windows cloud tests
  156211. @ \fI2019\-06\-11 15:54:41 UTC\fP
  156212. .INDENT 2.0
  156213. .IP \(bu 2
  156214. ab9fe46 Merge pull request \fI\%#53165\fP from Ch3LL/ami_window_cloud
  156215. .IP \(bu 2
  156216. 1d0b0a6 Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156217. .IP \(bu 2
  156218. a77a05c Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156219. .IP \(bu 2
  156220. a1204dc Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156221. .IP \(bu 2
  156222. d15c8f2 Merge branch \(aq2019.2.1\(aq into ami_window_cloud
  156223. .IP \(bu 2
  156224. 941778f Update ami\(aqs used for windows cloud tests
  156225. .IP \(bu 2
  156226. \fBPR\fP \fI\%saltstack/salt#53332\fP: (\fI\%s0undt3ch\fP) Non optional full test runs for 2019.2.1 (refs: \fI\%#53431\fP)
  156227. .UNINDENT
  156228. .IP \(bu 2
  156229. \fBPR\fP \fI\%#53431\fP: (\fI\%dwoz\fP) Revert "Non optional full test runs for 2019.2.1"
  156230. @ \fI2019\-06\-10 21:44:30 UTC\fP
  156231. .INDENT 2.0
  156232. .IP \(bu 2
  156233. d806b58 Merge pull request \fI\%#53431\fP from saltstack/revert\-53332\-hotfix/full\-test\-run\-2019.2.1
  156234. .IP \(bu 2
  156235. 701218c Revert "Non optional full test runs for 2019.2.1"
  156236. .UNINDENT
  156237. .IP \(bu 2
  156238. \fBISSUE\fP \fI\%#52174\fP: (\fI\%amendlik\fP) file.stat function not working under Python 3 (refs: \fI\%#53430\fP)
  156239. .INDENT 2.0
  156240. .IP \(bu 2
  156241. \fBPR\fP \fI\%#53430\fP: (\fI\%Akm0d\fP) Cherry\-pick \fI\%#52174\fP into 2019.2.1
  156242. .INDENT 2.0
  156243. .INDENT 3.5
  156244. .INDENT 0.0
  156245. .IP \(bu 2
  156246. 7811971 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156247. .UNINDENT
  156248. .UNINDENT
  156249. .UNINDENT
  156250. .UNINDENT
  156251. .IP \(bu 2
  156252. \fBPR\fP \fI\%#53389\fP: (\fI\%bryceml\fP) only keep last 10 builds of every pr on jenkins to reduce disk usage
  156253. @ \fI2019\-06\-10 17:18:48 UTC\fP
  156254. .INDENT 2.0
  156255. .IP \(bu 2
  156256. 6b800a2 Merge pull request \fI\%#53389\fP from bryceml/2019.2.1
  156257. .IP \(bu 2
  156258. 05368a1 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  156259. .UNINDENT
  156260. .IP \(bu 2
  156261. \fBPR\fP \fI\%#53332\fP: (\fI\%s0undt3ch\fP) Non optional full test runs for 2019.2.1
  156262. @ \fI2019\-06\-10 15:51:41 UTC\fP
  156263. .INDENT 2.0
  156264. .IP \(bu 2
  156265. fe18c40 Merge pull request \fI\%#53332\fP from s0undt3ch/hotfix/full\-test\-run\-2019.2.1
  156266. .IP \(bu 2
  156267. 2372733 Merge branch \(aq2019.2.1\(aq into hotfix/full\-test\-run\-2019.2.1
  156268. .IP \(bu 2
  156269. f8bd47b Merge branch \(aq2019.2.1\(aq into hotfix/full\-test\-run\-2019.2.1
  156270. .IP \(bu 2
  156271. 45c3c06 Non optional full test runs for 2019.2.1
  156272. .INDENT 2.0
  156273. .INDENT 3.5
  156274. .INDENT 0.0
  156275. .IP \(bu 2
  156276. 928b05f only fetch pr target branch instead of all branches to save time and disk space
  156277. .IP \(bu 2
  156278. ccc6106 only keep last 10 builds of every pr on jenkins to reduce disk usage
  156279. .INDENT 2.0
  156280. .INDENT 3.5
  156281. .INDENT 0.0
  156282. .IP \(bu 2
  156283. b970bde Merge branch \(aq2019.2.1\(aq into cp\-52787
  156284. .UNINDENT
  156285. .UNINDENT
  156286. .UNINDENT
  156287. .UNINDENT
  156288. .UNINDENT
  156289. .UNINDENT
  156290. .UNINDENT
  156291. .IP \(bu 2
  156292. \fBPR\fP \fI\%#53287\fP: (\fI\%twangboy\fP) Fix win system
  156293. @ \fI2019\-06\-06 23:35:47 UTC\fP
  156294. .INDENT 2.0
  156295. .IP \(bu 2
  156296. d0810d7 Merge pull request \fI\%#53287\fP from twangboy/fix_win_system
  156297. .IP \(bu 2
  156298. 0fc88fb Add TypeError
  156299. .IP \(bu 2
  156300. 5b4160d Try NumberOfEnabledCores
  156301. .IP \(bu 2
  156302. 49cbfd4 Add a note about skipping unavailable items
  156303. .IP \(bu 2
  156304. 044b56b Fix get_system_info for older versions of Windows
  156305. .UNINDENT
  156306. .IP \(bu 2
  156307. \fBISSUE\fP \fI\%#52173\fP: (\fI\%amendlik\fP) file.directory fails to check directory permissions correctly (refs: \fI\%#53385\fP)
  156308. .INDENT 2.0
  156309. .IP \(bu 2
  156310. \fBPR\fP \fI\%#53385\fP: (\fI\%Akm0d\fP) Check dir_mode recursively in file.directory
  156311. .UNINDENT
  156312. .IP \(bu 2
  156313. \fBPR\fP \fI\%#53386\fP: (\fI\%dwoz\fP) Fix missing import
  156314. @ \fI2019\-06\-06 20:45:59 UTC\fP
  156315. .INDENT 2.0
  156316. .IP \(bu 2
  156317. cf98b83 Merge pull request \fI\%#53386\fP from dwoz/missing_import
  156318. .IP \(bu 2
  156319. a23d6d9 Fix missing import
  156320. .UNINDENT
  156321. .IP \(bu 2
  156322. \fBISSUE\fP \fI\%#49559\fP: (\fI\%zyguy\fP) Salt\-cloud \- proxmox driver \- returns AttributeError: \(aqgenerator\(aq object has no attribute \(aqnext\(aq (refs: \fI\%#53240\fP)
  156323. .INDENT 2.0
  156324. .IP \(bu 2
  156325. \fBPR\fP \fI\%#53240\fP: (\fI\%FireGrace\fP) change .next() to next() py2=>py3 leftover
  156326. .UNINDENT
  156327. .IP \(bu 2
  156328. \fBISSUE\fP \fI\%#53274\fP: (\fI\%Ch3LL\fP) integration.states.test_pkg failing on amazon 1 py2 (refs: \fI\%#53323\fP)
  156329. .IP \(bu 2
  156330. \fBPR\fP \fI\%#53323\fP: (\fI\%dmurphy18\fP) Fix for issue \fI\%#53274\fP, test on Amazon Linux 1
  156331. @ \fI2019\-06\-06 17:31:18 UTC\fP
  156332. .INDENT 2.0
  156333. .IP \(bu 2
  156334. 18991f9 Merge pull request \fI\%#53323\fP from dmurphy18/fix_53274
  156335. .IP \(bu 2
  156336. 6814852 Merge branch \(aq2019.2.1\(aq into fix_53274
  156337. .IP \(bu 2
  156338. bb6c97a Merge branch \(aq2019.2.1\(aq into fix_53274
  156339. .IP \(bu 2
  156340. b84833d Merge branch \(aq2019.2.1\(aq into fix_53274
  156341. .IP \(bu 2
  156342. 7085f36 Fixed pylint issue on PR not showing when run pylint locally
  156343. .IP \(bu 2
  156344. 1200031 Updated to use package bash\-doc if Amazon Linux 1 after review comments
  156345. .IP \(bu 2
  156346. b2a4a5e Fix for issue \fI\%#53274\fP, test on Amazon Linux 1
  156347. .IP \(bu 2
  156348. \fBPR\fP \fI\%#53356\fP: (\fI\%Akm0d\fP) Updated paramiko to version 2.2.3 for python3.7 support
  156349. .UNINDENT
  156350. .IP \(bu 2
  156351. \fBISSUE\fP \fI\%#53137\fP: (\fI\%bryceml\fP) update doc pr\(aqs to be built using python3 and sphinx 2.0.1 (refs: \fI\%#53273\fP)
  156352. .IP \(bu 2
  156353. \fBPR\fP \fI\%#53273\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Switch docs building under Py3
  156354. @ \fI2019\-06\-05 10:01:03 UTC\fP
  156355. .INDENT 2.0
  156356. .IP \(bu 2
  156357. 1cf57e9 Merge pull request \fI\%#53273\fP from s0undt3ch/hotfix/py3\-nox\-docs\-2019.2.1
  156358. .IP \(bu 2
  156359. 98653c0 Allow docs to be built on Python >= 3.5, not just Python 3.6
  156360. .IP \(bu 2
  156361. c54f06f Have sphinx turn errors into warnings
  156362. .IP \(bu 2
  156363. 07f4327 Switch docs building under Py3
  156364. .UNINDENT
  156365. .IP \(bu 2
  156366. \fBPR\fP \fI\%#53361\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Only make a new log record if it\(aqs a dictionary.
  156367. @ \fI2019\-06\-05 09:56:15 UTC\fP
  156368. .INDENT 2.0
  156369. .IP \(bu 2
  156370. dfd36a2 Merge pull request \fI\%#53361\fP from s0undt3ch/hotfix/fix\-mp\-logging\-2019.2.1
  156371. .IP \(bu 2
  156372. d70d61f Fully revert 962b11687
  156373. .UNINDENT
  156374. .IP \(bu 2
  156375. \fBISSUE\fP \fI\%#53171\fP: (\fI\%twangboy\fP) integration.states.test_network.NetworkTest.test_managed (refs: \fI\%#53351\fP)
  156376. .IP \(bu 2
  156377. \fBPR\fP \fI\%#53351\fP: (\fI\%waynew\fP) Add checks for Amazon Linux to ip module
  156378. @ \fI2019\-06\-04 19:25:58 UTC\fP
  156379. .INDENT 2.0
  156380. .IP \(bu 2
  156381. 5efb670 Merge pull request \fI\%#53351\fP from waynew/53171\-fix\-network\-managed
  156382. .IP \(bu 2
  156383. e801afe Add checks for Amazon Linux to ip module
  156384. .UNINDENT
  156385. .IP \(bu 2
  156386. \fBPR\fP \fI\%#53242\fP: (\fI\%s0undt3ch\fP) [2019.2.1] newer msgpack ipc fixes
  156387. @ \fI2019\-06\-03 23:39:09 UTC\fP
  156388. .INDENT 2.0
  156389. .IP \(bu 2
  156390. \fBPR\fP \fI\%#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53242\fP)
  156391. .IP \(bu 2
  156392. \fBPR\fP \fI\%#52755\fP: (\fI\%dwoz\fP) Fix non raw msg pack msg decoding (refs: \fI\%#53242\fP)
  156393. .IP \(bu 2
  156394. \fBPR\fP \fI\%#52488\fP: (\fI\%terminalmage\fP) Fix deprecation warning in msgpack >= 0.5.2 (2018.3) (refs: \fI\%#52755\fP)
  156395. .IP \(bu 2
  156396. \fBPR\fP \fI\%#52487\fP: (\fI\%terminalmage\fP) Fix deprecation warning in msgpack >= 0.5.2 (develop) (refs: \fI\%#53242\fP)
  156397. .IP \(bu 2
  156398. ce5d79a Merge pull request \fI\%#53242\fP from s0undt3ch/hotfix/msgpack\-ipc\-2019.2.1
  156399. .IP \(bu 2
  156400. d27a524 Merge branch \(aq2019.2.1\(aq into hotfix/msgpack\-ipc\-2019.2.1
  156401. .UNINDENT
  156402. .IP \(bu 2
  156403. \fBPR\fP \fI\%#53289\fP: (\fI\%cmcmarrow\fP) stops pylint E1120 from showing
  156404. @ \fI2019\-06\-01 04:57:27 UTC\fP
  156405. .INDENT 2.0
  156406. .IP \(bu 2
  156407. df448c2 Merge pull request \fI\%#53289\fP from cmcmarrow/test_kubernetes_lint_failures_silenced
  156408. .IP \(bu 2
  156409. 03eacac Merge branch \(aq2019.2.1\(aq into test_kubernetes_lint_failures_silenced
  156410. .UNINDENT
  156411. .IP \(bu 2
  156412. \fBPR\fP \fI\%#53304\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Refactor Jenkins PR pipelines to download artifacts after timeout
  156413. @ \fI2019\-05\-31 17:10:19 UTC\fP
  156414. .INDENT 2.0
  156415. .IP \(bu 2
  156416. 6fac22b Merge pull request \fI\%#53304\fP from s0undt3ch/hotfix/jenkins\-pipelines\-refactor\-2019.2.1
  156417. .IP \(bu 2
  156418. 6e778ef Refactor Jenkins PR pipelines to download artifacts after timeout
  156419. .UNINDENT
  156420. .IP \(bu 2
  156421. \fBPR\fP \fI\%#53297\fP: (\fI\%s0undt3ch\fP) [2019.2.1] The TCP transport needs the exact same requirements as the ZeroMQ one
  156422. @ \fI2019\-05\-30 19:42:29 UTC\fP
  156423. .INDENT 2.0
  156424. .IP \(bu 2
  156425. d359513 Merge pull request \fI\%#53297\fP from s0undt3ch/hotfix/tcp\-transport\-tests
  156426. .IP \(bu 2
  156427. bec7fa5 The TCP transport needs the exact same requirements as the ZeroMQ one
  156428. .IP \(bu 2
  156429. f93e7d3 stops pylint E1120 from showing
  156430. .IP \(bu 2
  156431. cbe6423 stops pylint E1120 from showing
  156432. .IP \(bu 2
  156433. c5a5d43 test_kubernetes_lint_failures_silenced
  156434. .IP \(bu 2
  156435. b838395 test_kubernetes_lint_failures_silenced
  156436. .IP \(bu 2
  156437. 997d0a8 stops pylint E1120 from showing
  156438. .INDENT 2.0
  156439. .IP \(bu 2
  156440. 5542fa8 Add the missing, and required, top pillar file.
  156441. .IP \(bu 2
  156442. 0ae2ef0 Under Py2 we still want raw to be set to True
  156443. .IP \(bu 2
  156444. 714d663 Re\-submit \fI\%#52934\fP fixed after being reverted in \fI\%#52755\fP
  156445. .IP \(bu 2
  156446. 243b512 Update msgpack calls for newer msgpack
  156447. .INDENT 2.0
  156448. .INDENT 3.5
  156449. .INDENT 0.0
  156450. .IP \(bu 2
  156451. 0f9077b Merge branch \(aq2019.2.1\(aq into cp\-52787
  156452. .UNINDENT
  156453. .UNINDENT
  156454. .UNINDENT
  156455. .UNINDENT
  156456. .UNINDENT
  156457. .IP \(bu 2
  156458. \fBPR\fP \fI\%#53264\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Minion blackout tests \- Add the missing, and required, top pillar file
  156459. @ \fI2019\-05\-29 07:30:45 UTC\fP
  156460. .INDENT 2.0
  156461. .IP \(bu 2
  156462. 50e31ec Merge pull request \fI\%#53264\fP from s0undt3ch/2019.2.1
  156463. .IP \(bu 2
  156464. acabb70 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  156465. .UNINDENT
  156466. .IP \(bu 2
  156467. \fBPR\fP \fI\%#52966\fP: (\fI\%s0undt3ch\fP) Always run the full test suite on the 2019.2.1 release branch
  156468. @ \fI2019\-05\-28 15:43:12 UTC\fP
  156469. .INDENT 2.0
  156470. .IP \(bu 2
  156471. 749c626 Merge pull request \fI\%#52966\fP from s0undt3ch/hotfix/full\-test\-run
  156472. .IP \(bu 2
  156473. 247c461 Always run the full test suite on the 2019.2.1 release branch
  156474. .UNINDENT
  156475. .IP \(bu 2
  156476. \fBPR\fP \fI\%#53138\fP: (\fI\%frogunder\fP) vultr cloudtest fix
  156477. @ \fI2019\-05\-28 14:34:22 UTC\fP
  156478. .INDENT 2.0
  156479. .IP \(bu 2
  156480. a7afd31 Merge pull request \fI\%#53138\fP from frogunder/fix_vultr_cloudtest
  156481. .IP \(bu 2
  156482. 9f4550c vultr cloudtest fix
  156483. .INDENT 2.0
  156484. .IP \(bu 2
  156485. 912b9b3 Add the missing, and required, top pillar file.
  156486. .INDENT 2.0
  156487. .INDENT 3.5
  156488. .INDENT 0.0
  156489. .IP \(bu 2
  156490. 9d21b75 Merge branch \(aq2019.2.1\(aq into cp\-52787
  156491. .UNINDENT
  156492. .UNINDENT
  156493. .UNINDENT
  156494. .UNINDENT
  156495. .UNINDENT
  156496. .IP \(bu 2
  156497. \fBPR\fP \fI\%#53258\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Fix multiprocessing logging queue dict changing during iteration errors
  156498. @ \fI2019\-05\-27 19:26:27 UTC\fP
  156499. .INDENT 2.0
  156500. .IP \(bu 2
  156501. d011beb Merge pull request \fI\%#53258\fP from s0undt3ch/2019.2.1
  156502. .IP \(bu 2
  156503. ad01dd2 More robust minion blackout tests
  156504. .IP \(bu 2
  156505. a0346d1 Try harder to get the minion grains
  156506. .IP \(bu 2
  156507. 36717bd Try and address the test flakyness
  156508. .IP \(bu 2
  156509. ce07d8c Add more information when the assertion fails
  156510. .IP \(bu 2
  156511. b99e914 Attempt to fix mine tests
  156512. .IP \(bu 2
  156513. fca981c One more known to return None
  156514. .IP \(bu 2
  156515. 951df48 One more known to return None
  156516. .IP \(bu 2
  156517. eb5fd3e Fix \fIintegration.modules.test_mine.MineTest.test_get\fP for sub_minion
  156518. .IP \(bu 2
  156519. 26314f5 Fix multiprocessing logging queue dict changing during iteration errors
  156520. .UNINDENT
  156521. .IP \(bu 2
  156522. \fBPR\fP \fI\%#53153\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Add Amazon Linux 2018.3 and 2 static requirements
  156523. @ \fI2019\-05\-27 12:02:20 UTC\fP
  156524. .INDENT 2.0
  156525. .IP \(bu 2
  156526. b69e080 Merge pull request \fI\%#53153\fP from s0undt3ch/2019.2.1
  156527. .IP \(bu 2
  156528. 166067c Use \fIcurrentBuild.resultIsBetterOrEqualTo\fP instead
  156529. .IP \(bu 2
  156530. cefdd90 Stop error messages about missing roster file on syndic master
  156531. .IP \(bu 2
  156532. 6bf8f46 Don\(aqt complain when attempting to close sockets at this stage
  156533. .IP \(bu 2
  156534. e3f3cc9 Add Amazon Linux 2018.3 and 2 static requirements
  156535. .IP \(bu 2
  156536. 872acc0 Switch the ubuntu\-14.04 exception with amzn\-1
  156537. .IP \(bu 2
  156538. \fBPR\fP \fI\%saltstack/salt#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53235\fP)
  156539. .UNINDENT
  156540. .IP \(bu 2
  156541. \fBPR\fP \fI\%#53235\fP: (\fI\%s0undt3ch\fP) Revert "Update msgpack calls for newer msgpack"
  156542. @ \fI2019\-05\-24 13:35:20 UTC\fP
  156543. .INDENT 2.0
  156544. .IP \(bu 2
  156545. 14aeeea Merge pull request \fI\%#53235\fP from saltstack/revert\-52934\-fix_msgpack
  156546. .IP \(bu 2
  156547. 3295aea Revert "Update msgpack calls for newer msgpack"
  156548. .UNINDENT
  156549. .IP \(bu 2
  156550. \fBPR\fP \fI\%#53131\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Update to salt\-bootstrap v2019.05.20
  156551. @ \fI2019\-05\-24 07:45:57 UTC\fP
  156552. .INDENT 2.0
  156553. .IP \(bu 2
  156554. 6923427 Merge pull request \fI\%#53131\fP from s0undt3ch/hotfix/update\-bootstrap\-2019.2.1
  156555. .IP \(bu 2
  156556. 4cce4f4 Merge branch \(aq2019.2.1\(aq into hotfix/update\-bootstrap\-2019.2.1
  156557. .IP \(bu 2
  156558. 6751ee1 Merge branch \(aq2019.2.1\(aq into hotfix/update\-bootstrap\-2019.2.1
  156559. .IP \(bu 2
  156560. 6988e07 Update to salt\-bootstrap v2019.05.20
  156561. .UNINDENT
  156562. .IP \(bu 2
  156563. \fBPR\fP \fI\%#52934\fP: (\fI\%twangboy\fP) Update msgpack calls for newer msgpack (refs: \fI\%#53242\fP)
  156564. @ \fI2019\-05\-23 23:18:23 UTC\fP
  156565. .INDENT 2.0
  156566. .IP \(bu 2
  156567. a61db20 Merge pull request \fI\%#52934\fP from twangboy/fix_msgpack
  156568. .IP \(bu 2
  156569. f02a12e Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156570. .IP \(bu 2
  156571. 7e2cd34 Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156572. .IP \(bu 2
  156573. bc9ce8e Merge branch \(aq2019.2.1\(aq into fix_msgpack
  156574. .IP \(bu 2
  156575. 0abd1ec Update msgpack calls for newer msgpack
  156576. .INDENT 2.0
  156577. .INDENT 3.5
  156578. .INDENT 0.0
  156579. .IP \(bu 2
  156580. 3366d59 update pylint exceptoin
  156581. .IP \(bu 2
  156582. 6c452b3 removing unwanted commits from this branch
  156583. .IP \(bu 2
  156584. e0b0ba8 Handling in flaky when maximum number of attempts raised and the exception should be raised. Different approaches depending on Py2 vs Py3.
  156585. .IP \(bu 2
  156586. 434dcda Disabling two tests when using Python 3 and OS X
  156587. .IP \(bu 2
  156588. 5784e80 Disabling integration.shell.test_minion.MinionTest.test_issue_7754 test on OS X because it hangs the test suite.
  156589. .IP \(bu 2
  156590. 78aeb61 Dropping the version check for InstallationError down to anything 1.0 or greater. Removing the test that simulates versions of pip below 1.0.
  156591. .IP \(bu 2
  156592. 4ec90c2 Adding an jinja if statement to only the python parameter if the result from get_python_executable is a valid value. Maintaining backwards compatibilty to run tests without Nox.
  156593. .UNINDENT
  156594. .UNINDENT
  156595. .UNINDENT
  156596. .UNINDENT
  156597. .IP \(bu 2
  156598. \fBPR\fP \fI\%#53192\fP: (\fI\%twangboy\fP) Skip \fItest_gen_hash\fP test on Windows
  156599. @ \fI2019\-05\-23 05:33:13 UTC\fP
  156600. .INDENT 2.0
  156601. .IP \(bu 2
  156602. 8a57270 Merge pull request \fI\%#53192\fP from twangboy/skip_test_gen_hash
  156603. .IP \(bu 2
  156604. 758d020 Skip test on Windows
  156605. .UNINDENT
  156606. .IP \(bu 2
  156607. \fBPR\fP \fI\%#53157\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_file.WinFileTestCase.test_issue_52002_check_file_remove_symlink\fP
  156608. @ \fI2019\-05\-22 22:32:26 UTC\fP
  156609. .INDENT 2.0
  156610. .IP \(bu 2
  156611. 446e70c Merge pull request \fI\%#53157\fP from twangboy/fix_test_win_file_symlink
  156612. .IP \(bu 2
  156613. 5672076 Merge branch \(aq2019.2.1\(aq into fix_test_win_file_symlink
  156614. .UNINDENT
  156615. .IP \(bu 2
  156616. \fBPR\fP \fI\%#53141\fP: (\fI\%Ch3LL\fP) Check for all non\-word characters when calling secure_password
  156617. @ \fI2019\-05\-22 17:24:54 UTC\fP
  156618. .INDENT 2.0
  156619. .IP \(bu 2
  156620. 6fbe9aa Merge pull request \fI\%#53141\fP from Ch3LL/shadow_fed_fix
  156621. .IP \(bu 2
  156622. a3c4066 Merge branch \(aq2019.2.1\(aq into shadow_fed_fix
  156623. .UNINDENT
  156624. .IP \(bu 2
  156625. \fBPR\fP \fI\%#53161\fP: (\fI\%Ch3LL\fP) Add HAS_REQUIRED_CRYPTO var for m2crypto in joyent
  156626. @ \fI2019\-05\-22 13:36:07 UTC\fP
  156627. .INDENT 2.0
  156628. .IP \(bu 2
  156629. fb29512 Merge pull request \fI\%#53161\fP from Ch3LL/joyent_m2crypto
  156630. .IP \(bu 2
  156631. 08d03e0 Add HAS_REQUIRED_CRYPTO var for m2crypto in joyent
  156632. .IP \(bu 2
  156633. 16ef3d2 Merge branch \(aq2019.2.1\(aq into shadow_fed_fix
  156634. .IP \(bu 2
  156635. 09ff867 Check for all non\-word when calling secure_password
  156636. .INDENT 2.0
  156637. .IP \(bu 2
  156638. 334c93b Elevate token before creating symlink
  156639. .UNINDENT
  156640. .UNINDENT
  156641. .IP \(bu 2
  156642. \fBPR\fP \fI\%#53073\fP: (\fI\%Ch3LL\fP) salt\-ssh: python binary exists before version check
  156643. @ \fI2019\-05\-20 22:36:34 UTC\fP
  156644. .INDENT 2.0
  156645. .IP \(bu 2
  156646. 85e9b2f Merge pull request \fI\%#53073\fP from Ch3LL/ssh_py3_log
  156647. .IP \(bu 2
  156648. 383e781 Improve logging in salt\-ssh gen_thin
  156649. .IP \(bu 2
  156650. 4371434 salt\-ssh: python binary exists before version check
  156651. .UNINDENT
  156652. .IP \(bu 2
  156653. \fBPR\fP \fI\%#52957\fP: (\fI\%Ch3LL\fP) Set default_flow_style=None in yaml.dump calls
  156654. @ \fI2019\-05\-16 19:42:35 UTC\fP
  156655. .INDENT 2.0
  156656. .IP \(bu 2
  156657. bd02ea6 Merge pull request \fI\%#52957\fP from Ch3LL/yaml_flow_style
  156658. .IP \(bu 2
  156659. 5f6581a Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  156660. .UNINDENT
  156661. .IP \(bu 2
  156662. \fBPR\fP \fI\%#53072\fP: (\fI\%Ch3LL\fP) Backport \fI\%#52754\fP into 2019.2.1
  156663. @ \fI2019\-05\-16 19:29:22 UTC\fP
  156664. .INDENT 2.0
  156665. .IP \(bu 2
  156666. \fBPR\fP \fI\%#52754\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to multiprocessing queue when using MacOS (refs: \fI\%#53072\fP)
  156667. .IP \(bu 2
  156668. f410346 Merge pull request \fI\%#53072\fP from Ch3LL/bp\-52754\-2019.2.1
  156669. .IP \(bu 2
  156670. 13e5e55 The maximum for the multiprocessing queue on MacOS is 32767, so if we running on MacOS then we use that maximum.
  156671. .UNINDENT
  156672. .IP \(bu 2
  156673. \fBISSUE\fP \fI\%#52817\fP: (\fI\%waynew\fP) unit.modules.test_telegram.TelegramModuleTest.test_post_message (refs: \fI\%#52972\fP)
  156674. .IP \(bu 2
  156675. \fBPR\fP \fI\%#52972\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fix to unit.modules.test_telegram
  156676. @ \fI2019\-05\-15 07:50:13 UTC\fP
  156677. .INDENT 2.0
  156678. .IP \(bu 2
  156679. 06fa91b Merge pull request \fI\%#52972\fP from garethgreenaway/52817_unit_modules_test_telegram_telegrammoduletest_test_post_message
  156680. .IP \(bu 2
  156681. cea7131 Removing global declaration.
  156682. .IP \(bu 2
  156683. 5bf9a95 Fixing lint.
  156684. .IP \(bu 2
  156685. 4d3c46d fixing broken unit.modules.test_telegram test.
  156686. .UNINDENT
  156687. .IP \(bu 2
  156688. \fBPR\fP \fI\%#53025\fP: (\fI\%Ch3LL\fP) Change package name for suse pkg tests
  156689. @ \fI2019\-05\-15 07:41:44 UTC\fP
  156690. .INDENT 2.0
  156691. .IP \(bu 2
  156692. d340cbc Merge pull request \fI\%#53025\fP from Ch3LL/suse15_pkg_test
  156693. .IP \(bu 2
  156694. 0a213ee Change package name for suse pkg tests
  156695. .UNINDENT
  156696. .IP \(bu 2
  156697. \fBPR\fP \fI\%#53020\fP: (\fI\%Ch3LL\fP) Change ssh tops log message to debug
  156698. @ \fI2019\-05\-14 16:56:42 UTC\fP
  156699. .INDENT 2.0
  156700. .IP \(bu 2
  156701. c56fbb0 Merge pull request \fI\%#53020\fP from Ch3LL/ssh_tops
  156702. .IP \(bu 2
  156703. cbbc764 Merge branch \(aq2019.2.1\(aq into ssh_tops
  156704. .UNINDENT
  156705. .IP \(bu 2
  156706. \fBPR\fP \fI\%#52973\fP: (\fI\%twangboy\fP) Fix \fIintegration.states.test_pip_state.PipStateTest.test_issue_2028_pip_installed_state\fP on Windows
  156707. @ \fI2019\-05\-13 20:56:28 UTC\fP
  156708. .INDENT 2.0
  156709. .IP \(bu 2
  156710. ce099aa Merge pull request \fI\%#52973\fP from twangboy/fix_test_pip_state
  156711. .IP \(bu 2
  156712. 21838a1 Merge branch \(aq2019.2.1\(aq into fix_test_pip_state
  156713. .UNINDENT
  156714. .IP \(bu 2
  156715. \fBPR\fP \fI\%#52986\fP: (\fI\%Ch3LL\fP) Revert "Make sure \-\-run\-expensive runtests.py arg works"
  156716. @ \fI2019\-05\-13 19:38:17 UTC\fP
  156717. .INDENT 2.0
  156718. .IP \(bu 2
  156719. 055d374 Merge pull request \fI\%#52986\fP from Ch3LL/expensive_revert
  156720. .IP \(bu 2
  156721. 368c012 Revert "Make sure \-\-run\-expensive runtests.py arg works"
  156722. .IP \(bu 2
  156723. cce263e Merge branch \(aq2019.2.1\(aq into fix_test_pip_state
  156724. .IP \(bu 2
  156725. 351d415 Return path to Python instead of None
  156726. .INDENT 2.0
  156727. .IP \(bu 2
  156728. c0538d2 Change ssh tops log message to debug
  156729. .IP \(bu 2
  156730. e317186 Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  156731. .UNINDENT
  156732. .UNINDENT
  156733. .IP \(bu 2
  156734. \fBPR\fP \fI\%#52968\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Salt >= 2018.3.x supports Py3.7
  156735. @ \fI2019\-05\-12 21:44:57 UTC\fP
  156736. .INDENT 2.0
  156737. .IP \(bu 2
  156738. ee05da5 Merge pull request \fI\%#52968\fP from s0undt3ch/2019.2.1
  156739. .IP \(bu 2
  156740. 73c3726 Salt >= 2018.3.x supports Py3.7
  156741. .UNINDENT
  156742. .IP \(bu 2
  156743. \fBISSUE\fP \fI\%#50310\fP: (\fI\%xuhcc\fP) acme.cert falsely reports changes (refs: \fI\%#50400\fP)
  156744. .IP \(bu 2
  156745. \fBPR\fP \fI\%#52796\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50400\fP and \fI\%#50402\fP into 2019.2.1
  156746. @ \fI2019\-05\-10 19:30:12 UTC\fP
  156747. .INDENT 2.0
  156748. .IP \(bu 2
  156749. \fBPR\fP \fI\%#50402\fP: (\fI\%xuhcc\fP) Fix typo in salt.modules.acme (refs: \fI\%#52796\fP)
  156750. .IP \(bu 2
  156751. \fBPR\fP \fI\%#50400\fP: (\fI\%xuhcc\fP) Fix incorrect change reporting in acme.cert (refs: \fI\%#50402\fP, \fI\%#52796\fP)
  156752. .IP \(bu 2
  156753. cae51c2 Merge pull request \fI\%#52796\fP from Ch3LL/bp\-50400
  156754. .IP \(bu 2
  156755. 0c2e3e7 Merge branch \(aq2019.2.1\(aq into bp\-50400
  156756. .IP \(bu 2
  156757. 1268e3e Merge branch \(aq2019.2.1\(aq into bp\-50400
  156758. .IP \(bu 2
  156759. 09fa9e3 Fix typo
  156760. .IP \(bu 2
  156761. 9be5c0c Fix incorrect change reporting in acme.cert
  156762. .INDENT 2.0
  156763. .INDENT 3.5
  156764. .INDENT 0.0
  156765. .IP \(bu 2
  156766. 9a27fb3 Merge branch \(aq2019.2.1\(aq into yaml_flow_style
  156767. .UNINDENT
  156768. .UNINDENT
  156769. .UNINDENT
  156770. .UNINDENT
  156771. .IP \(bu 2
  156772. \fBPR\fP \fI\%#52770\fP: (\fI\%twangboy\fP) Fix test_file_managed_should_fall_back_to_binary on Windows
  156773. @ \fI2019\-05\-09 20:35:02 UTC\fP
  156774. .INDENT 2.0
  156775. .IP \(bu 2
  156776. 20cccd8 Merge pull request \fI\%#52770\fP from twangboy/fix_test_file
  156777. .IP \(bu 2
  156778. ac27e69 Merge branch \(aq2019.2.1\(aq into fix_test_file
  156779. .IP \(bu 2
  156780. 30a5093 Merge branch \(aq2019.2.1\(aq into fix_test_file
  156781. .IP \(bu 2
  156782. c08b10d Merge branch \(aq2019.2.1\(aq into fix_test_file
  156783. .IP \(bu 2
  156784. 340ee23 Pass encoding to _validate_str_list
  156785. .INDENT 2.0
  156786. .INDENT 3.5
  156787. .INDENT 0.0
  156788. .IP \(bu 2
  156789. 0d0e354 Fix yamldumper test for both py2/py3
  156790. .IP \(bu 2
  156791. 20bc954 Update docs for yamldumper test
  156792. .IP \(bu 2
  156793. bf648e5 Update tests/unit/utils/test_yamldumper.py
  156794. .IP \(bu 2
  156795. 70d578a Set default_flow_style=None in yaml.dump calls
  156796. .UNINDENT
  156797. .UNINDENT
  156798. .UNINDENT
  156799. .UNINDENT
  156800. .IP \(bu 2
  156801. \fBPR\fP \fI\%#52943\fP: (\fI\%Ch3LL\fP) Fix elasticsearch state module: allow user to define empty aliases
  156802. @ \fI2019\-05\-09 15:46:38 UTC\fP
  156803. .INDENT 2.0
  156804. .IP \(bu 2
  156805. 4437764 Merge pull request \fI\%#52943\fP from Ch3LL/fix_elastisearch
  156806. .IP \(bu 2
  156807. 451fb7e Merge branch \(aq2019.2.1\(aq into fix_elastisearch
  156808. .IP \(bu 2
  156809. ebff9b9 Fix elasticsearch state module: allow user to define empty aliases
  156810. .UNINDENT
  156811. .IP \(bu 2
  156812. \fBPR\fP \fI\%#52952\fP: (\fI\%s0undt3ch\fP) [2019.2.1] More nox changes and test fixes
  156813. @ \fI2019\-05\-09 15:03:07 UTC\fP
  156814. .INDENT 2.0
  156815. .IP \(bu 2
  156816. 9b290b6 Merge pull request \fI\%#52952\fP from s0undt3ch/merge\-forward/2018.3\-to\-2019.2.1\-cherry
  156817. .IP \(bu 2
  156818. a06d7ce We need to call the decorator
  156819. .IP \(bu 2
  156820. 77185af Partial revert since this is a class method
  156821. .IP \(bu 2
  156822. f5c5771 Lint fixes
  156823. .IP \(bu 2
  156824. 3e43c87 Revert "fix compare_versions method"
  156825. .IP \(bu 2
  156826. 0e139bf Fix \fIGOLDEN_IMAGES_CI_BRANCH\fP value
  156827. .IP \(bu 2
  156828. 12a9408 Add Py3.7 static requirements
  156829. .IP \(bu 2
  156830. 8e505fb Move tests to existing test modules
  156831. .IP \(bu 2
  156832. 4681609 \fItests/unit/config/__init__.py\fP \-> \fItests/unit/config/test_config.py\fP
  156833. .IP \(bu 2
  156834. b1dc7f6 Pin to \fImoto<=1.3.7\fP because of \fI\%https://github.com/spulec/moto/pull/1952\fP
  156835. .IP \(bu 2
  156836. 0ffe7ca We no longer test againt Ubuntu 14.04 which reached EOL
  156837. .IP \(bu 2
  156838. 33743fc Don\(aqt traceback when trying to close a closed socket
  156839. .IP \(bu 2
  156840. da2e147 Always cleanup the changed environ
  156841. .IP \(bu 2
  156842. 087c74d No globals in tests, specially dictionaries!
  156843. .IP \(bu 2
  156844. a814fc0 Fix underscore wart (and linter)
  156845. .IP \(bu 2
  156846. 74b8f5f Fix deprecation warning in msgpack >= 0.5.2
  156847. .IP \(bu 2
  156848. 962b116 Try to address dict changing during iteration
  156849. .IP \(bu 2
  156850. c58af57 Tweak codeclimate settings for less noise
  156851. .IP \(bu 2
  156852. 5bb7869 fix linter
  156853. .IP \(bu 2
  156854. 0b81841 Cherry\-pick test fix
  156855. .IP \(bu 2
  156856. 99f9e1c fix compare_versions method
  156857. .UNINDENT
  156858. .IP \(bu 2
  156859. \fBPR\fP \fI\%#52853\fP: (\fI\%s0undt3ch\fP) [2019.2.1] Bring nox into 2019.2.1
  156860. @ \fI2019\-05\-09 09:52:42 UTC\fP
  156861. .INDENT 2.0
  156862. .IP \(bu 2
  156863. a510edf Merge pull request \fI\%#52853\fP from s0undt3ch/merge\-forward/2018.3\-to\-2019.2.1\-cherry
  156864. .IP \(bu 2
  156865. a8f7b46 Test is not destructive.
  156866. .IP \(bu 2
  156867. 63663cf We no longer test againt Ubuntu 14.04 which reached EOL
  156868. .IP \(bu 2
  156869. 62574ee Typo
  156870. .IP \(bu 2
  156871. e3e3761 Proper english in requirements comments
  156872. .IP \(bu 2
  156873. e9f6a12 \fIidentical_signature_wrapper\fP adds \fI__wrapped__\fP to function globals
  156874. .IP \(bu 2
  156875. 10283b4 Upload coverage reports on full test runs
  156876. .IP \(bu 2
  156877. 6e0b61b Less flaky mine tests
  156878. .IP \(bu 2
  156879. 3709ed7 msgpack returns string_types
  156880. .IP \(bu 2
  156881. a36b15e Add regression test
  156882. .IP \(bu 2
  156883. ce782ff Fix non raw msg pack msg decoding
  156884. .IP \(bu 2
  156885. f193f0f Update Issue Template: questions removed
  156886. .IP \(bu 2
  156887. 4417095 Fix underscore wart (and linter)
  156888. .IP \(bu 2
  156889. e6c2ae4 Fix deprecation warning in msgpack >= 0.5.2
  156890. .IP \(bu 2
  156891. 6375944 Add ubuntu1804 to pr tests
  156892. .IP \(bu 2
  156893. 8fdb04d SIGKILL is not alwasy available use a local variable
  156894. .IP \(bu 2
  156895. 4d6b8da Fix linter
  156896. .IP \(bu 2
  156897. 759bccc Fix test_doc on windows by using grep yay!
  156898. .IP \(bu 2
  156899. 0ce086d Fix remaining failures on ubuntu 1404 and add to PR tests
  156900. .IP \(bu 2
  156901. fdf80fd Change py3 windows timeout from 6 to 8 hours
  156902. .IP \(bu 2
  156903. b0aa287 Fix missing class wart
  156904. .IP \(bu 2
  156905. 21ecb74 fix linter
  156906. .IP \(bu 2
  156907. 62c0f9f Skip tests when no libcloud
  156908. .IP \(bu 2
  156909. 1d92290 Fix unused import
  156910. .IP \(bu 2
  156911. 72cdc91 Fix linter
  156912. .IP \(bu 2
  156913. 238fd0f Fix broken pip state
  156914. .IP \(bu 2
  156915. 89533ba Fix \fINOX_ENV_NAME\fP
  156916. .IP \(bu 2
  156917. 7cfc9e8 Fix \fINOX_ENV_NAME\fP
  156918. .IP \(bu 2
  156919. 2087c91 Fix \fINOX_ENV_NAME\fP
  156920. .IP \(bu 2
  156921. 2f1aff5 Rename kitchen\-centos6\-py3 to kitchen\-centos6\-py2
  156922. .IP \(bu 2
  156923. 1eea990 Fix linter
  156924. .IP \(bu 2
  156925. 52ca668 Skip tests when no libcloud
  156926. .IP \(bu 2
  156927. 2cf4b98 Add centos\-6\-py2 and debain 8,9 py2 and 3 to PR tests
  156928. .IP \(bu 2
  156929. 522599d Dont fail just because some random process died
  156930. .IP \(bu 2
  156931. 34cef86 Ignore super not called
  156932. .IP \(bu 2
  156933. b7ace9c Fix linter
  156934. .IP \(bu 2
  156935. aceb6d3 Skip libcloud unit tests when no libcloud
  156936. .IP \(bu 2
  156937. f73420b Install mock on Python < 3.6
  156938. .IP \(bu 2
  156939. 28fbde1 Add \fImoto\fP to the windows dependencies
  156940. .IP \(bu 2
  156941. 8cbecc1 Pin kubernetes to <4.0
  156942. .IP \(bu 2
  156943. 2acb0f3 Make sure \-\-run\-expensive runtests.py arg works
  156944. .IP \(bu 2
  156945. 22cae20 Remove ref restriciton from kitche\-salt
  156946. .IP \(bu 2
  156947. 67095df Add \(aqrunFull\(aq build parameter for PR tests
  156948. .IP \(bu 2
  156949. 12d8d35 Stop w32time before and start after testing
  156950. .IP \(bu 2
  156951. 7f1c22c Skip tests that fail on Windows
  156952. .IP \(bu 2
  156953. f4ae97f Upgrade etcd to > 0.4.2
  156954. .IP \(bu 2
  156955. 381f5fe Limit and reduce the ammount of log records sent over the wire
  156956. .IP \(bu 2
  156957. 0c94b5d More entries to ignore
  156958. .IP \(bu 2
  156959. c3a21f5 As a script, not as a module
  156960. .IP \(bu 2
  156961. 8948b69 Include \fICOVERAGE_FILE\fP as an env variable.
  156962. .IP \(bu 2
  156963. 0af561e Each generated script is now prepared for code coverage
  156964. .IP \(bu 2
  156965. 294d6f4 Use the system\(aqs path separator
  156966. .IP \(bu 2
  156967. e52ab87 Always combine and generate the XML coverage report
  156968. .IP \(bu 2
  156969. 666ca9f Fix proxy minion startup issue on the test suite
  156970. .IP \(bu 2
  156971. 7838ace \fIimpacket\fP does not support Py3
  156972. .IP \(bu 2
  156973. ba8d0fe Allow \fI\-\-install\-only\fP to gather the required information
  156974. .IP \(bu 2
  156975. eed7d68 Create nox lint virtualenvs before running them
  156976. .IP \(bu 2
  156977. e9e57cf Syndic roster not in 2017.7.9
  156978. .IP \(bu 2
  156979. 111c63a4d Create the roster even when not running ssh
  156980. .IP \(bu 2
  156981. 11c02a0 Fix unit.test_loader.LoaderGlobalsTest.test_states
  156982. .IP \(bu 2
  156983. 8694db1 Fix windows tests
  156984. .IP \(bu 2
  156985. 82e9ac5 Avoid race condition in even assertions
  156986. .IP \(bu 2
  156987. 9443451 Revert part of 927219c since it is not a fix
  156988. .IP \(bu 2
  156989. 5fee762 Fix timeout logic
  156990. .IP \(bu 2
  156991. 517650f check timeout when queue empty
  156992. .IP \(bu 2
  156993. 7c0a9af fix linter
  156994. .IP \(bu 2
  156995. 961dc40 Ignore missing variable in six module
  156996. .IP \(bu 2
  156997. 0f5a7f0 Fix typo
  156998. .IP \(bu 2
  156999. 6c8c418 Do not limit event assert to first event
  157000. .IP \(bu 2
  157001. 3042292 Wait longer for ping reaction
  157002. .IP \(bu 2
  157003. 8c10f5f Fix xml block causing docs to fail
  157004. .IP \(bu 2
  157005. 6e5768a Add a nox session for the Jenkins tornado jobs
  157006. .IP \(bu 2
  157007. 43321e8 Add a cloud nox session for both runtests and pytest
  157008. .IP \(bu 2
  157009. b6b4e95 Lint cleanup
  157010. .IP \(bu 2
  157011. 0670614 Add tests for wraps
  157012. .IP \(bu 2
  157013. 1670b5d Use functools.wraps with decorators
  157014. .IP \(bu 2
  157015. 5ae263c Update static requirements for 2018.3 branch
  157016. .IP \(bu 2
  157017. 3482c4d Disable code coverage uploads.
  157018. .IP \(bu 2
  157019. 0e5bc67 Lint fixes
  157020. .IP \(bu 2
  157021. 337c737 Update CI jobs to point to 2018.3
  157022. .IP \(bu 2
  157023. 72e8603 Skip test if required cypto libs are not available
  157024. .IP \(bu 2
  157025. e6bc9f8 Default to Cryptodome, fallback to PyCrypto
  157026. .IP \(bu 2
  157027. b2b0764 Be aware of the different path separators
  157028. .IP \(bu 2
  157029. 7e79b18 We need to make sure the virtualenv path entry is removed when searching
  157030. .IP \(bu 2
  157031. ff6d3c6 We don\(aqt need to be root to run these tests
  157032. .IP \(bu 2
  157033. 5965ab4 Disable progress bars on pip installs
  157034. .IP \(bu 2
  157035. f86a44e Use the real python executable path when running within a virtualenv
  157036. .IP \(bu 2
  157037. 3d407e8 Add a helper to return the path to the real pytohn executable
  157038. .IP \(bu 2
  157039. ea9d246 We must also provide \fIvenv_bin\fP when running within a virtualenv
  157040. .IP \(bu 2
  157041. 31e91b0 Fix pip tests, in particular under windows
  157042. .IP \(bu 2
  157043. 493f493 Don\(aqt fail if pkg_resources is not importable
  157044. .IP \(bu 2
  157045. a1eb400 Specify the SHA we need
  157046. .IP \(bu 2
  157047. 0b01f21 Let\(aqs fully unload pip
  157048. .IP \(bu 2
  157049. 0b6f848 Fix docker entries
  157050. .IP \(bu 2
  157051. 870b899 Remove unused argument
  157052. .IP \(bu 2
  157053. 1656cb4 Disable re\-runing failed tests for now
  157054. .IP \(bu 2
  157055. 6db4141 Also ignore multiprocessing coverage files
  157056. .IP \(bu 2
  157057. 83dc97d Actually write the lint reports.
  157058. .IP \(bu 2
  157059. 5f97270 Try to make sure some pip internal functions are always present in sys.modules after reloads
  157060. .IP \(bu 2
  157061. 0090c55 Try and address the fact that some python packages are only provided by the distro
  157062. .IP \(bu 2
  157063. 4a072fe These tests aren\(aqt destructive
  157064. .IP \(bu 2
  157065. 5c7a956 Don\(aqt fail the build if the issue was sending a slack notification
  157066. .IP \(bu 2
  157067. 361ef6e Don\(aqt try to change ownership on non existing paths
  157068. .IP \(bu 2
  157069. 7b17352 More insight(context) on failure reports
  157070. .IP \(bu 2
  157071. 93b6b95 Lock supervisor to 3.3.5, last kown working(passing tests) version
  157072. .IP \(bu 2
  157073. 51114aa Watch out for too long shebang\(aqs
  157074. .IP \(bu 2
  157075. d97fe82 The output is important to know why it failed.
  157076. .IP \(bu 2
  157077. 9fef385 Strings and integers are not comparable under Python 3
  157078. .IP \(bu 2
  157079. d308dce Be verbose in a CI context
  157080. .IP \(bu 2
  157081. 8b7105e Fix failed tests re\-run logic
  157082. .IP \(bu 2
  157083. d6d8db1 Blacklist \fIenum34\fP on Py>=3.4. Update requirements.
  157084. .IP \(bu 2
  157085. 1cd00c0 Update PR CI jobs for nox
  157086. .IP \(bu 2
  157087. 19a83d5 Blacklist pycrypto and install pycryptodome instead
  157088. .IP \(bu 2
  157089. 91376b3 Ignore the generated docs archive
  157090. .IP \(bu 2
  157091. 207b83a Update compiled requirements
  157092. .IP \(bu 2
  157093. 535e7a7 Add TCP transport nox sessions
  157094. .IP \(bu 2
  157095. 680b3e5 Compile requirements for the TCP transport
  157096. .IP \(bu 2
  157097. 49a1ebe Throw error when running either on Py<2.7 or Py>=3.7
  157098. .IP \(bu 2
  157099. 10528b9 Don\(aqt repeat filed tests on missing/empty failed test files file
  157100. .IP \(bu 2
  157101. 4886809 We currently only support running lint under Py2.7
  157102. .IP \(bu 2
  157103. a76981b Remove dead code
  157104. .IP \(bu 2
  157105. 7b2c1ce Don\(aqt require six
  157106. .IP \(bu 2
  157107. a27ed35 Add nox env to build docs
  157108. .IP \(bu 2
  157109. e1b3f1d Lock docs python requirements
  157110. .IP \(bu 2
  157111. c8de644 Fix lint issues under tests
  157112. .IP \(bu 2
  157113. 0372718 Fix lint issues on salt
  157114. .IP \(bu 2
  157115. 9eab9f4 Add nox session/env/target to run lint against Salt and its test suite
  157116. .IP \(bu 2
  157117. 123f771 Lock lint requirements
  157118. .IP \(bu 2
  157119. 8df33ad Back to \fI+apache\-libcloud==1.0.0\fP and skip windows for now
  157120. .IP \(bu 2
  157121. 43e3ae6 Bump apache\-libcloud requirement because 1.0.0 fails to install on windows
  157122. .IP \(bu 2
  157123. d5f7813 Remove requiremens for platforms which aren\(aqt tested under Py3
  157124. .IP \(bu 2
  157125. 8f02ee9 Recompile requirements
  157126. .IP \(bu 2
  157127. 66626f2 Remove pycryptodome from compiled requirements files
  157128. .IP \(bu 2
  157129. 75693e5 Use pycryptodomex on windows and PyCrypto on the rest
  157130. .IP \(bu 2
  157131. 4a9c19c Update(fix) requirements
  157132. .IP \(bu 2
  157133. 33a3467 We don\(aqt test OSX nor Windows under Py3.4
  157134. .IP \(bu 2
  157135. fd44fce We want a more verbose pip\-compile output
  157136. .IP \(bu 2
  157137. c2ae2d5 We now compile requirements for each of the supported minor version
  157138. .IP \(bu 2
  157139. 6ee1260 Static requirements are now placed on \fIpy<major>.<minor>\fP subdirectories
  157140. .IP \(bu 2
  157141. 3504804 The required crypto library is pulled in from zeromq.txt or raet.txt
  157142. .IP \(bu 2
  157143. 3ffe03c PyZMQ is pulled in from zeromq.txt
  157144. .IP \(bu 2
  157145. 7c2fe16 Instead of quoting session parameters, proxy nox sessions
  157146. .IP \(bu 2
  157147. d3ae77b Add separate crypto sessions
  157148. .IP \(bu 2
  157149. 0399620 Parametrize the transport
  157150. .IP \(bu 2
  157151. d33fd03 Update/Generate static requirements to new layout
  157152. .IP \(bu 2
  157153. 52ac533 Add pre\-commit config to generate static requirements
  157154. .IP \(bu 2
  157155. 3cfcb13 Be aware of the new static requirements layout
  157156. .IP \(bu 2
  157157. dc7e16a Don\(aqt lock the docker requirement. It\(aqs not locked on the other platforms
  157158. .IP \(bu 2
  157159. 5476ba2 Kubernetes 3.0.0 does include the requirements files. pip\-compile chokes on that
  157160. .IP \(bu 2
  157161. 79a8261 Previously generated requirements were py2 only
  157162. .IP \(bu 2
  157163. 1e29666 IOFLO is pulled in from the raet requirements
  157164. .IP \(bu 2
  157165. 4945e35 Fix pylint on 2017.7.9
  157166. .IP \(bu 2
  157167. 036bf68 Rerun failed tests
  157168. .IP \(bu 2
  157169. 03a9601 Ignore \fI\&.nox\fP directory
  157170. .IP \(bu 2
  157171. 50cb630 We have long files
  157172. .IP \(bu 2
  157173. db2392f Update CodeClimate settings
  157174. .IP \(bu 2
  157175. 899c80e Fix integration.client.test_kwarg test timeouts
  157176. .UNINDENT
  157177. .IP \(bu 2
  157178. \fBISSUE\fP \fI\%#52836\fP: (\fI\%Ch3LL\fP) unit.utils.test_args.ArgsTestCase.test_argspec_report failing (refs: \fI\%#52852\fP)
  157179. .IP \(bu 2
  157180. \fBPR\fP \fI\%#52852\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fixes to unit.utils.test_args.test_argspec_report
  157181. @ \fI2019\-05\-07 19:25:48 UTC\fP
  157182. .INDENT 2.0
  157183. .IP \(bu 2
  157184. 77355e2 Merge pull request \fI\%#52852\fP from garethgreenaway/52836_test_argspec_report_failing
  157185. .IP \(bu 2
  157186. eee5a38 Merge branch \(aq2019.2.1\(aq into 52836_test_argspec_report_failing
  157187. .UNINDENT
  157188. .IP \(bu 2
  157189. \fBPR\fP \fI\%#52845\fP: (\fI\%Ch3LL\fP) Backport \fI\%#52780\fP into 2019.2.1
  157190. @ \fI2019\-05\-07 16:27:21 UTC\fP
  157191. .INDENT 2.0
  157192. .IP \(bu 2
  157193. \fBPR\fP \fI\%#52780\fP: (\fI\%sbrennan4\fP) Handle ipv6 in _netlink_tool_remote_on (refs: \fI\%#52845\fP)
  157194. .IP \(bu 2
  157195. dcc5fde Merge pull request \fI\%#52845\fP from Ch3LL/bp\-52780
  157196. .IP \(bu 2
  157197. dfff09b Merge branch \(aq2019.2.1\(aq into bp\-52780
  157198. .UNINDENT
  157199. .IP \(bu 2
  157200. \fBPR\fP \fI\%#52851\fP: (\fI\%Ch3LL\fP) Reload matcher loader when ext_pillar_first set
  157201. @ \fI2019\-05\-07 13:12:07 UTC\fP
  157202. .INDENT 2.0
  157203. .IP \(bu 2
  157204. 2e4f296 Merge pull request \fI\%#52851\fP from Ch3LL/matcher_ext_pillar
  157205. .IP \(bu 2
  157206. bdcae5d Add docs for new reload kwarg
  157207. .IP \(bu 2
  157208. fc70884 Reload matcher loader when ext_pillar_first set
  157209. .IP \(bu 2
  157210. 8ac74e2 Merge branch \(aq2019.2.1\(aq into bp\-52780
  157211. .IP \(bu 2
  157212. 226c7ce Merge branch \(aq2019.2.1\(aq into bp\-52780
  157213. .IP \(bu 2
  157214. c1eae84 Add test
  157215. .IP \(bu 2
  157216. 69fe65b Use rsplit
  157217. .INDENT 2.0
  157218. .INDENT 3.5
  157219. .INDENT 0.0
  157220. .IP \(bu 2
  157221. 8fdc48c Removing create_autospec and having salt.utils.args.argspec_report run against the _test_spec function directly. Depending on the python version, create_autospec gives different results and cause the test to fail. The test is now more accurate at testing the arguments for the function.
  157222. .UNINDENT
  157223. .UNINDENT
  157224. .UNINDENT
  157225. .UNINDENT
  157226. .IP \(bu 2
  157227. \fBPR\fP \fI\%#52842\fP: (\fI\%s0undt3ch\fP) \fIlibcrypto.OpenSSL_version_num\fP might be a callable
  157228. @ \fI2019\-05\-06 17:00:37 UTC\fP
  157229. .INDENT 2.0
  157230. .IP \(bu 2
  157231. cc7a0d1 Merge pull request \fI\%#52842\fP from s0undt3ch/2019.2.1
  157232. .IP \(bu 2
  157233. a944017 \fIlibcrypto.OpenSSL_version_num\fP might be a callable
  157234. .UNINDENT
  157235. .IP \(bu 2
  157236. \fBPR\fP \fI\%#52839\fP: (\fI\%twangboy\fP) Add support for EC2
  157237. @ \fI2019\-05\-04 17:28:54 UTC\fP
  157238. .INDENT 2.0
  157239. .IP \(bu 2
  157240. b625a6a Merge pull request \fI\%#52839\fP from twangboy/fix_test_grain
  157241. .IP \(bu 2
  157242. 1c9b372 Add support for EC2
  157243. .UNINDENT
  157244. .IP \(bu 2
  157245. \fBISSUE\fP \fI\%#51982\fP: (\fI\%arsiesys\fP) topic (minion_id) need to be encoded before being hash and sent using zeroMQ (refs: \fI\%#51983\fP)
  157246. .IP \(bu 2
  157247. \fBPR\fP \fI\%#52767\fP: (\fI\%Ch3LL\fP) [2019.2.1] Add tests to PR \fI\%#51983\fP
  157248. @ \fI2019\-05\-03 08:35:27 UTC\fP
  157249. .INDENT 2.0
  157250. .IP \(bu 2
  157251. \fBPR\fP \fI\%#51983\fP: (\fI\%arsiesys\fP) encode topic before using hashlib (refs: \fI\%#52767\fP)
  157252. .IP \(bu 2
  157253. 6002939 Merge pull request \fI\%#52767\fP from Ch3LL/zmq_filter_test
  157254. .IP \(bu 2
  157255. 1ee8f37 Merge branch \(aq2019.2.1\(aq into zmq_filter_test
  157256. .IP \(bu 2
  157257. d74b6ee Merge branch \(aq2019.2.1\(aq into zmq_filter_test
  157258. .IP \(bu 2
  157259. 3210274 Fix linter warnings
  157260. .IP \(bu 2
  157261. e7c9d6e increase timeout when gathering results
  157262. .IP \(bu 2
  157263. 784786d Add zmq_filter unit tests
  157264. .IP \(bu 2
  157265. 805c5ee encode topic before using hashlib
  157266. .UNINDENT
  157267. .IP \(bu 2
  157268. \fBPR\fP \fI\%#52827\fP: (\fI\%twangboy\fP) Add pymssql dependency for Windows builds
  157269. @ \fI2019\-05\-03 08:21:40 UTC\fP
  157270. .INDENT 2.0
  157271. .IP \(bu 2
  157272. 5996932 Merge pull request \fI\%#52827\fP from twangboy/add_pymssql
  157273. .IP \(bu 2
  157274. 6f0b8e2 Add pymssql dependency for Windows builds
  157275. .UNINDENT
  157276. .IP \(bu 2
  157277. \fBISSUE\fP \fI\%#52717\fP: (\fI\%Ch3LL\fP) debian9 tests segmentation fault (refs: \fI\%#52797\fP)
  157278. .IP \(bu 2
  157279. \fBPR\fP \fI\%#52797\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Only run the libcrypto init if less than OpenSSL 1.1.0
  157280. @ \fI2019\-05\-03 05:12:31 UTC\fP
  157281. .INDENT 2.0
  157282. .IP \(bu 2
  157283. e3918c5 Merge pull request \fI\%#52797\fP from garethgreenaway/52717_debian_tests_segmentation_fault
  157284. .IP \(bu 2
  157285. 7ab0961 Merge branch \(aq52717_debian_tests_segmentation_fault\(aq of github.com:garethgreenaway/salt into 52717_debian_tests_segmentation_fault
  157286. .INDENT 2.0
  157287. .IP \(bu 2
  157288. f8d816e Merge branch \(aq2019.2.1\(aq into 52717_debian_tests_segmentation_fault
  157289. .UNINDENT
  157290. .UNINDENT
  157291. .IP \(bu 2
  157292. \fBPR\fP \fI\%#52771\fP: (\fI\%twangboy\fP) Fix \fItest_gpg\fP tests on Windows
  157293. @ \fI2019\-05\-02 13:30:18 UTC\fP
  157294. .INDENT 2.0
  157295. .IP \(bu 2
  157296. b68544f Merge pull request \fI\%#52771\fP from twangboy/fix_test_gpg
  157297. .IP \(bu 2
  157298. c7f45c2 Pass encoding to stringutils.to_unicode
  157299. .UNINDENT
  157300. .IP \(bu 2
  157301. \fBPR\fP \fI\%#52783\fP: (\fI\%Ch3LL\fP) Fix boto_apigateway tests for PyYAML 5.1
  157302. @ \fI2019\-05\-02 13:26:34 UTC\fP
  157303. .INDENT 2.0
  157304. .IP \(bu 2
  157305. 316d05b Merge pull request \fI\%#52783\fP from Ch3LL/fix_boto_yaml
  157306. .IP \(bu 2
  157307. cde29cb Fix boto_apigateway tests for PyYAML 5.1
  157308. .IP \(bu 2
  157309. 6ffbca5 Fixing lint.
  157310. .IP \(bu 2
  157311. e24f2f8 Only run the libcrypto init if less than OpenSSL 1.1.0.
  157312. .UNINDENT
  157313. .IP \(bu 2
  157314. \fBPR\fP \fI\%#52769\fP: (\fI\%twangboy\fP) Remove domain grain from tests for Windows
  157315. @ \fI2019\-04\-30 21:14:26 UTC\fP
  157316. .INDENT 2.0
  157317. .IP \(bu 2
  157318. 3509465 Merge pull request \fI\%#52769\fP from twangboy/fix_test_core
  157319. .IP \(bu 2
  157320. 0049f85 Remove domain grain from tests
  157321. .UNINDENT
  157322. .IP \(bu 2
  157323. \fBPR\fP \fI\%#52768\fP: (\fI\%twangboy\fP) Remove pchanges... again...
  157324. @ \fI2019\-04\-30 20:24:27 UTC\fP
  157325. .INDENT 2.0
  157326. .IP \(bu 2
  157327. 30dc14b Merge pull request \fI\%#52768\fP from twangboy/fix_test_win_dacl
  157328. .IP \(bu 2
  157329. 123b607 Remove pchanges... again...
  157330. .UNINDENT
  157331. .IP \(bu 2
  157332. \fBPR\fP \fI\%#52753\fP: (\fI\%twangboy\fP) Skip test_gen_thin_compression_fallback_py3
  157333. @ \fI2019\-04\-30 03:36:27 UTC\fP
  157334. .INDENT 2.0
  157335. .IP \(bu 2
  157336. 3e46f51 Merge pull request \fI\%#52753\fP from twangboy/skip_test_gen_thin
  157337. .IP \(bu 2
  157338. 811b381 Skip test_gen_thin_compression_fallback_py3
  157339. .UNINDENT
  157340. .IP \(bu 2
  157341. \fBISSUE\fP \fI\%#52721\fP: (\fI\%Ch3LL\fP) unit.cloud.clouds.test_ec2 test failing (refs: \fI\%#52736\fP)
  157342. .IP \(bu 2
  157343. \fBPR\fP \fI\%#52736\fP: (\fI\%dwoz\fP) Skip password decryption test when no libraries available
  157344. @ \fI2019\-04\-29 17:07:56 UTC\fP
  157345. .INDENT 2.0
  157346. .IP \(bu 2
  157347. 6bfca94 Merge pull request \fI\%#52736\fP from dwoz/ec2test
  157348. .IP \(bu 2
  157349. 04ad027 Merge branch \(aq2019.2.1\(aq into ec2test
  157350. .UNINDENT
  157351. .IP \(bu 2
  157352. \fBPR\fP \fI\%#52624\fP: (\fI\%tanlingyun2005\fP) fix TypeError: argument of type int is not iterable
  157353. @ \fI2019\-04\-29 13:15:42 UTC\fP
  157354. .INDENT 2.0
  157355. .IP \(bu 2
  157356. 9a1ed78 Merge pull request \fI\%#52624\fP from tanlingyun2005/2019.2.1
  157357. .IP \(bu 2
  157358. 2c6867e add test case to tests/unit/cli/test_batch.py
  157359. .IP \(bu 2
  157360. cb7742e Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157361. .IP \(bu 2
  157362. c943900 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157363. .IP \(bu 2
  157364. d4abddd fix TypeError: argument of type int is not iterable
  157365. .IP \(bu 2
  157366. ed908b3 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157367. .IP \(bu 2
  157368. 463b60e Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157369. .IP \(bu 2
  157370. 65ee219 Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/tanlingyun2005/salt\fP into 2019.2.1
  157371. .INDENT 2.0
  157372. .IP \(bu 2
  157373. f71168d Merge branch \(aq2019.2.1\(aq into 2019.2.1
  157374. .UNINDENT
  157375. .IP \(bu 2
  157376. 509c797 bug fix salt/cli/batch.py
  157377. .IP \(bu 2
  157378. 211915c fix salt/cli/batch.py TypeError: argument of type int is not iterable
  157379. .IP \(bu 2
  157380. 070ae84 fix TypeError: argument of type int is not iterable
  157381. .INDENT 2.0
  157382. .INDENT 3.5
  157383. .INDENT 0.0
  157384. .IP \(bu 2
  157385. b770f96 Skip test requiring crypto when none available
  157386. .IP \(bu 2
  157387. e52b390 Warn when password decrypton requested but not possible
  157388. .UNINDENT
  157389. .UNINDENT
  157390. .UNINDENT
  157391. .UNINDENT
  157392. .IP \(bu 2
  157393. \fBPR\fP \fI\%#52696\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50087\fP into 2019.2.1
  157394. @ \fI2019\-04\-25 20:33:13 UTC\fP
  157395. .INDENT 2.0
  157396. .IP \(bu 2
  157397. \fBPR\fP \fI\%#50087\fP: (\fI\%rbthomp\fP) Fix applying of attributes for returner rawfile_json (refs: \fI\%#52696\fP)
  157398. .IP \(bu 2
  157399. 806307a Merge pull request \fI\%#52696\fP from Ch3LL/bp\-50087
  157400. .IP \(bu 2
  157401. 66e97e7 Fix applying of attributes for returner rawfile_json
  157402. .UNINDENT
  157403. .IP \(bu 2
  157404. \fBPR\fP \fI\%#52659\fP: (\fI\%twangboy\fP) Fix issues with the win_file tests
  157405. @ \fI2019\-04\-22 23:34:36 UTC\fP
  157406. .INDENT 2.0
  157407. .IP \(bu 2
  157408. 174f558 Merge pull request \fI\%#52659\fP from twangboy/fix_test_win_file
  157409. .IP \(bu 2
  157410. 915c780 Fix issues with the win_file tests
  157411. .UNINDENT
  157412. .IP \(bu 2
  157413. \fBPR\fP \fI\%#52655\fP: (\fI\%dwoz\fP) Parse chattr version and fix test case
  157414. @ \fI2019\-04\-22 01:46:29 UTC\fP
  157415. .INDENT 2.0
  157416. .IP \(bu 2
  157417. d1a61a6 Merge pull request \fI\%#52655\fP from dwoz/cron_test_fix
  157418. .IP \(bu 2
  157419. e69fcc5 Fix typo
  157420. .IP \(bu 2
  157421. 859d088 Merge remote\-tracking branch \(aqorigin/cron_test_fix\(aq into cron_test_fix
  157422. .INDENT 2.0
  157423. .IP \(bu 2
  157424. 7f7bb90 Merge branch \(aq2019.2.1\(aq into cron_test_fix
  157425. .UNINDENT
  157426. .UNINDENT
  157427. .IP \(bu 2
  157428. \fBPR\fP \fI\%#52601\fP: (\fI\%Ch3LL\fP) Cherry\-Pick \fI\%#52415\fP into 2019.2.1
  157429. @ \fI2019\-04\-21 19:33:03 UTC\fP
  157430. .INDENT 2.0
  157431. .IP \(bu 2
  157432. \fBPR\fP \fI\%#52415\fP: (\fI\%Ch3LL\fP) Backport \fI\%#49832\fP into 2018.3 (refs: \fI\%#52601\fP)
  157433. .IP \(bu 2
  157434. \fBPR\fP \fI\%#49832\fP: (\fI\%terminalmage\fP) Replace pchanges with changes to make onchanges/prereq work in test mode (refs: \fI\%#52415\fP)
  157435. .IP \(bu 2
  157436. f7d823c Merge pull request \fI\%#52601\fP from Ch3LL/cp\-52415
  157437. .IP \(bu 2
  157438. ecd6802 Merge branch \(aq2019.2.1\(aq into cp\-52415
  157439. .IP \(bu 2
  157440. 538d5cf Remove pchanges from win_dacl
  157441. .IP \(bu 2
  157442. 81b865f use same newfile message on linux for windows file state
  157443. .IP \(bu 2
  157444. 93bdd08 Update dict correctly in file state
  157445. .IP \(bu 2
  157446. f3c7f27 remove pchanges for windows file modules
  157447. .IP \(bu 2
  157448. fb3b75d Fix tests for pchanges backport into 2018.3
  157449. .IP \(bu 2
  157450. 0f296bb Update kernelpkg test to reflect pchanges removal
  157451. .IP \(bu 2
  157452. 885d6ff Update file.touch unit tests to reflect addition of changes in test mode
  157453. .IP \(bu 2
  157454. 4bc5fd0 Add integration tests for test mode onchanges/prereq
  157455. .IP \(bu 2
  157456. ed214c4 Make it possible to use prereq with test and saltmod state mods
  157457. .IP \(bu 2
  157458. ceb3f4d Add repack_state_returns to TestCase
  157459. .IP \(bu 2
  157460. 982e693 Add exception logging in flaky decorator
  157461. .IP \(bu 2
  157462. 0ba0ddf Add test mode changes to file.touch state
  157463. .IP \(bu 2
  157464. 6db2beb Replace "pchanges" with "changes" to fix onchanges/prereq requisites
  157465. .INDENT 2.0
  157466. .INDENT 3.5
  157467. .INDENT 0.0
  157468. .IP \(bu 2
  157469. 169c2d5 Chattr version py3 fix
  157470. .IP \(bu 2
  157471. cf88c27 Fix linter issues
  157472. .IP \(bu 2
  157473. 0ea007d Parse chattr version and fix test case
  157474. .UNINDENT
  157475. .UNINDENT
  157476. .UNINDENT
  157477. .UNINDENT
  157478. .IP \(bu 2
  157479. \fBISSUE\fP \fI\%#52508\fP: (\fI\%Ch3LL\fP) integration.modules.test_publish test failures (refs: \fI\%#52645\fP)
  157480. .IP \(bu 2
  157481. \fBPR\fP \fI\%#52645\fP: (\fI\%dwoz\fP) Fix salt.modules.publish and salt.states.x509 tests
  157482. @ \fI2019\-04\-20 08:17:19 UTC\fP
  157483. .INDENT 2.0
  157484. .IP \(bu 2
  157485. af4f204 Merge pull request \fI\%#52645\fP from dwoz/test_fixes
  157486. .IP \(bu 2
  157487. 9b6f9f9 Clean up cruft
  157488. .IP \(bu 2
  157489. c3971a5 Fix salt.modules.publish and salt.states.x509 tests
  157490. .UNINDENT
  157491. .IP \(bu 2
  157492. \fBPR\fP \fI\%#52629\fP: (\fI\%dwoz\fP) Fix event assertion race condition
  157493. @ \fI2019\-04\-19 19:03:20 UTC\fP
  157494. .INDENT 2.0
  157495. .IP \(bu 2
  157496. \fBPR\fP \fI\%#52540\fP: (\fI\%dwoz\fP) Fix race condition in event assertion (refs: \fI\%#52629\fP)
  157497. .IP \(bu 2
  157498. 0a4d2d9 Merge pull request \fI\%#52629\fP from dwoz/ping_wait_2019.2.1
  157499. .IP \(bu 2
  157500. c001022 Fix linter
  157501. .IP \(bu 2
  157502. 423f6f9 Fix vent assertion race condition
  157503. .UNINDENT
  157504. .IP \(bu 2
  157505. \fBPR\fP \fI\%#52619\fP: (\fI\%dwoz\fP) Remove unused method from pytest engine
  157506. @ \fI2019\-04\-18 23:45:35 UTC\fP
  157507. .INDENT 2.0
  157508. .IP \(bu 2
  157509. 4859e6c Merge pull request \fI\%#52619\fP from dwoz/pytest_engine_2019.2.1
  157510. .IP \(bu 2
  157511. 105784a Remove unused method from pytest engine
  157512. .UNINDENT
  157513. .IP \(bu 2
  157514. \fBPR\fP \fI\%#52614\fP: (\fI\%Ch3LL\fP) [2019.2.1] Update integration.modules.test_network.NetworkTest.test_network_ping…
  157515. @ \fI2019\-04\-18 21:54:28 UTC\fP
  157516. .INDENT 2.0
  157517. .IP \(bu 2
  157518. 77943e5 Merge pull request \fI\%#52614\fP from Ch3LL/cp\-test_network\-2019.2.1
  157519. .IP \(bu 2
  157520. 27c79d2 Update integration.modules.test_network.NetworkTest.test_network_ping test address
  157521. .UNINDENT
  157522. .IP \(bu 2
  157523. \fBISSUE\fP \fI\%#32245\fP: (\fI\%tkwilliams\fP) git_pillar should permit automatic mapping of environment to branch a\-la gitfs (refs: \fI\%#50768\fP)
  157524. .IP \(bu 2
  157525. \fBPR\fP \fI\%#52615\fP: (\fI\%twangboy\fP) Bring 51661 into 2019.2.1
  157526. @ \fI2019\-04\-18 21:53:35 UTC\fP
  157527. .INDENT 2.0
  157528. .IP \(bu 2
  157529. \fBPR\fP \fI\%#51661\fP: (\fI\%sathieu\fP) git_pillar: Fix all_saltenvs on base env (refs: \fI\%#52615\fP)
  157530. .IP \(bu 2
  157531. \fBPR\fP \fI\%#51597\fP: (\fI\%sathieu\fP) git_pillar: Fix all_saltenvs on base env (refs: \fI\%#51661\fP)
  157532. .IP \(bu 2
  157533. \fBPR\fP \fI\%#50768\fP: (\fI\%sathieu\fP) git_pillar: Add support for all_saltenvs parameter (refs: \fI\%#51597\fP, \fI\%#51661\fP)
  157534. .IP \(bu 2
  157535. c6b4986 Merge pull request \fI\%#52615\fP from twangboy/gitfs_2019.2.1
  157536. .IP \(bu 2
  157537. d952674 Merge branch \(aq2019.2.1\(aq into gitfs_2019.2.1
  157538. .UNINDENT
  157539. .IP \(bu 2
  157540. \fBISSUE\fP \fI\%#52547\fP: (\fI\%cbosdo\fP) virt.purge throws a libvirt exception on Xen hypervisor (refs: \fI\%#52548\fP)
  157541. .IP \(bu 2
  157542. \fBPR\fP \fI\%#52548\fP: (\fI\%cbosdo\fP) Virt purge fix
  157543. @ \fI2019\-04\-18 20:07:36 UTC\fP
  157544. .INDENT 2.0
  157545. .IP \(bu 2
  157546. 8ee15a9 Merge pull request \fI\%#52548\fP from cbosdo/virt\-purge\-fix
  157547. .IP \(bu 2
  157548. 6ca8f4b Try/except undefineFlags() as this operation is not supported on bhyve
  157549. .INDENT 2.0
  157550. .IP \(bu 2
  157551. 5a0464b Bring 51661 into 2019.2.1
  157552. .UNINDENT
  157553. .UNINDENT
  157554. .IP \(bu 2
  157555. \fBPR\fP \fI\%#52591\fP: (\fI\%Ch3LL\fP) [2019.2.1] Update test_schema to mirror the new ValidationErrors in 3.0.0
  157556. @ \fI2019\-04\-18 16:34:22 UTC\fP
  157557. .INDENT 2.0
  157558. .IP \(bu 2
  157559. e03aed5 Merge pull request \fI\%#52591\fP from Ch3LL/fix_jsonschema_2019.2
  157560. .IP \(bu 2
  157561. e09be842 Update test_schema to mirror the new ValidationErrors in 3.0.0
  157562. .UNINDENT
  157563. .IP \(bu 2
  157564. \fBISSUE\fP \fI\%#52525\fP: (\fI\%lomeroe\fP) deserializer_opts are not passed the serializer in file.serialize (refs: \fI\%#52526\fP)
  157565. .IP \(bu 2
  157566. \fBPR\fP \fI\%#52526\fP: (\fI\%lomeroe\fP) Fix use of deserializer_opts in file.serialize
  157567. @ \fI2019\-04\-17 14:08:52 UTC\fP
  157568. .INDENT 2.0
  157569. .IP \(bu 2
  157570. 21d6365 Merge pull request \fI\%#52526\fP from lomeroe/deserializer_opts_fix
  157571. .IP \(bu 2
  157572. ea0520c update test for serialization opts
  157573. .IP \(bu 2
  157574. 84ff03a Correct attempting to use the serializer_name to pull deserializer_opts when deserializer_name is used as the key in the deserializer_options dict.
  157575. .UNINDENT
  157576. .IP \(bu 2
  157577. \fBISSUE\fP \fI\%#49147\fP: (\fI\%furgerf\fP) Log filled with "Exception occurred while Subscriber handling stream: Already reading" (refs: \fI\%#51963\fP)
  157578. .IP \(bu 2
  157579. \fBPR\fP \fI\%#52570\fP: (\fI\%DmitryKuzmenko\fP) Simplify IPCClient and prevent corrupt messages (Turn 2) 2019.2
  157580. @ \fI2019\-04\-17 14:03:02 UTC\fP
  157581. .INDENT 2.0
  157582. .IP \(bu 2
  157583. \fBPR\fP \fI\%#52564\fP: (\fI\%DmitryKuzmenko\fP) Simplify IPCClient and prevent corrupt messages (Turn 2) (refs: \fI\%#52570\fP)
  157584. .IP \(bu 2
  157585. \fBPR\fP \fI\%#52445\fP: (\fI\%dwoz\fP) Simplify IPCClient and prevent corrupt messages (refs: \fI\%#52564\fP)
  157586. .IP \(bu 2
  157587. \fBPR\fP \fI\%#51963\fP: (\fI\%DmitryKuzmenko\fP) Allow multiple instances of IPCMessageSubscriber in one process (refs: \fI\%#52564\fP)
  157588. .IP \(bu 2
  157589. e522ffe Merge pull request \fI\%#52570\fP from DSRCorporation/bugs/revert_51963_2019.2
  157590. .IP \(bu 2
  157591. fabbcac A couple of race conditions fixes and a test update.
  157592. .IP \(bu 2
  157593. 9c85734 Drop singleton from IPCClient
  157594. .IP \(bu 2
  157595. 7cf6d54 Revert "Support parallel work of multiple IPCMEssageSubscribers in one process"
  157596. .IP \(bu 2
  157597. 7f26e76 Revert "Update doc conf with the new import \fItornado.queues\fP"
  157598. .IP \(bu 2
  157599. 69e9416 Revert "Minor: Fix typo in docstring"
  157600. .UNINDENT
  157601. .IP \(bu 2
  157602. \fBISSUE\fP \fI\%#52449\fP: (\fI\%Ch3LL\fP) integration.cloud.clouds.test_gce.GCETest.test_instance_extra failure (refs: \fI\%#52551\fP)
  157603. .IP \(bu 2
  157604. \fBPR\fP \fI\%#52551\fP: (\fI\%garethgreenaway\fP) [2019.2] Marking the two tests in test_gce as flaky
  157605. @ \fI2019\-04\-17 14:00:39 UTC\fP
  157606. .INDENT 2.0
  157607. .IP \(bu 2
  157608. b173406 Merge pull request \fI\%#52551\fP from garethgreenaway/52449_test_gce_random_failures
  157609. .IP \(bu 2
  157610. 28af717 Marking the two tests in test_gce as flaky.
  157611. .UNINDENT
  157612. .IP \(bu 2
  157613. \fBISSUE\fP \fI\%#51842\fP: (\fI\%mattLLVW\fP) salt.auth.django docs use wrong model name (refs: \fI\%#52553\fP)
  157614. .IP \(bu 2
  157615. \fBPR\fP \fI\%#52553\fP: (\fI\%mattLLVW\fP) fix: \fI\%#51842\fP
  157616. @ \fI2019\-04\-17 13:59:45 UTC\fP
  157617. .INDENT 2.0
  157618. .IP \(bu 2
  157619. 8352362 Merge pull request \fI\%#52553\fP from mattLLVW/fix_django_auth_docs
  157620. .IP \(bu 2
  157621. 3baeedf fix: \fI\%#51842\fP
  157622. .UNINDENT
  157623. .IP \(bu 2
  157624. \fBISSUE\fP \fI\%#52134\fP: (\fI\%sploenix\fP) Regression: Include list of pillar files under different keys in 2019.2 (refs: \fI\%#52490\fP)
  157625. .IP \(bu 2
  157626. \fBISSUE\fP \fI\%#22063\fP: (\fI\%jeanpralo\fP) Wildcard inside top.sls file for pillar (refs: \fI\%#52490\fP)
  157627. .IP \(bu 2
  157628. \fBPR\fP \fI\%#52490\fP: (\fI\%dwoz\fP) Fix pillar include regression
  157629. @ \fI2019\-04\-17 13:54:39 UTC\fP
  157630. .INDENT 2.0
  157631. .IP \(bu 2
  157632. 9faa49c Merge pull request \fI\%#52490\fP from dwoz/issue_52134
  157633. .IP \(bu 2
  157634. 876dd18 Fix merge wart
  157635. .IP \(bu 2
  157636. 2ed650b Merge remote\-tracking branch \(aqsaltstack/2019.2\(aq into issue_52134
  157637. .IP \(bu 2
  157638. b0af11f Run include tests when pillar source changes
  157639. .IP \(bu 2
  157640. 307cec6 Fix pillar tests
  157641. .IP \(bu 2
  157642. 1a33bde import __future__.absolute_import
  157643. .IP \(bu 2
  157644. 5dc5de9 Use file encoding and add docstring
  157645. .IP \(bu 2
  157646. e84cd41 Fix pillar include wart
  157647. .IP \(bu 2
  157648. c79f496 Add pillar include tests
  157649. .IP \(bu 2
  157650. 7745242 Revert "Fix \fI\%#22063\fP: pillar wildcard support include"
  157651. .UNINDENT
  157652. .IP \(bu 2
  157653. \fBPR\fP \fI\%#52552\fP: (\fI\%twangboy\fP) Bring 52170 into 2019.2
  157654. @ \fI2019\-04\-17 13:54:17 UTC\fP
  157655. .INDENT 2.0
  157656. .IP \(bu 2
  157657. \fBPR\fP \fI\%#52170\fP: (\fI\%twangboy\fP) Fix issue when task doesn\(aqt have delay_random defined (refs: \fI\%#52552\fP)
  157658. .IP \(bu 2
  157659. b0c0237 Merge pull request \fI\%#52552\fP from twangboy/fix_win_task_2019.2
  157660. .IP \(bu 2
  157661. fd19cca Remove some warts in the docs
  157662. .IP \(bu 2
  157663. deb0b10 Fix some lint
  157664. .IP \(bu 2
  157665. a279d45 Final doc fixes
  157666. .IP \(bu 2
  157667. 58f0cd2 Fix docs... attempt 6
  157668. .IP \(bu 2
  157669. a66716e Fix docs... attempt 5
  157670. .IP \(bu 2
  157671. f6f3381 Fix docs... attempt 4
  157672. .IP \(bu 2
  157673. 18cfc15 Fix docs... attempt 3
  157674. .IP \(bu 2
  157675. c691e0d More doc fixes
  157676. .IP \(bu 2
  157677. e01077b Fix docs issue... maybe...
  157678. .IP \(bu 2
  157679. b649495 Honor 80 character line limit
  157680. .IP \(bu 2
  157681. eba4507 Bring 52170 into 2019.2
  157682. .UNINDENT
  157683. .IP \(bu 2
  157684. \fBPR\fP \fI\%#52528\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  157685. @ \fI2019\-04\-17 13:53:46 UTC\fP
  157686. .INDENT 2.0
  157687. .IP \(bu 2
  157688. cc0cd5d Merge pull request \fI\%#52528\fP from Ch3LL/merge\-2019.2
  157689. .IP \(bu 2
  157690. 87cf385 increase timeout on test_state for windows
  157691. .IP \(bu 2
  157692. 3442202 Increase timeout for test_kwarg tests
  157693. .IP \(bu 2
  157694. 2c3ff2f Merge branch \(aq2019.2\(aq into merge\-2019.2
  157695. .UNINDENT
  157696. .IP \(bu 2
  157697. \fBPR\fP \fI\%#52534\fP: (\fI\%twangboy\fP) Add TLS support up to TLS 1.2
  157698. @ \fI2019\-04\-13 22:56:41 UTC\fP
  157699. .INDENT 2.0
  157700. .IP \(bu 2
  157701. e91240b Merge pull request \fI\%#52534\fP from twangboy/tls_support_2019.2
  157702. .IP \(bu 2
  157703. 9ec54c4 Add TLS support up to TLS 1.2
  157704. .INDENT 2.0
  157705. .IP \(bu 2
  157706. 474efa1 Fix pylint and state test failure
  157707. .IP \(bu 2
  157708. 048a82e Merge branch \(aq2019.2\(aq into merge\-2019.2
  157709. .UNINDENT
  157710. .UNINDENT
  157711. .IP \(bu 2
  157712. \fBPR\fP \fI\%#52536\fP: (\fI\%twangboy\fP) Bring \fI\%#52191\fP into 2019.2 branch
  157713. @ \fI2019\-04\-12 21:31:23 UTC\fP
  157714. .INDENT 2.0
  157715. .IP \(bu 2
  157716. \fBPR\fP \fI\%#52191\fP: (\fI\%twangboy\fP) Fix issue where version doesn\(aqt detect when check_remote=True (refs: \fI\%#52536\fP)
  157717. .IP \(bu 2
  157718. 2c42e4d Merge pull request \fI\%#52536\fP from twangboy/fix_choco_2019.2
  157719. .IP \(bu 2
  157720. b394ad5 Bring \fI\%#52191\fP into 2019.2 branch
  157721. .IP \(bu 2
  157722. 795a7f6 Fix windows tests \- increase timeout
  157723. .IP \(bu 2
  157724. c70772c Fix linux state tests\- add new comment
  157725. .IP \(bu 2
  157726. 2941567 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  157727. .IP \(bu 2
  157728. 262516c Merge pull request \fI\%#52209\fP from twangboy/fix_choco_retcode
  157729. .INDENT 2.0
  157730. .IP \(bu 2
  157731. 7aec2d3 Merge branch \(aq2018.3\(aq into fix_choco_retcode
  157732. .IP \(bu 2
  157733. bfdc47b Handle new enhanced retcode 2
  157734. .UNINDENT
  157735. .IP \(bu 2
  157736. dd7a4ba Merge pull request \fI\%#52046\fP from twangboy/use_reg_timezone
  157737. .INDENT 2.0
  157738. .IP \(bu 2
  157739. fc8e970 Merge branch \(aq2018.3\(aq into use_reg_timezone
  157740. .IP \(bu 2
  157741. d0987e6 Merge branch \(aq2018.3\(aq into use_reg_timezone
  157742. .IP \(bu 2
  157743. 1bf0cbc Merge branch \(aq2018.3\(aq into use_reg_timezone
  157744. .IP \(bu 2
  157745. b466f8a Merge branch \(aq2018.3\(aq into use_reg_timezone
  157746. .IP \(bu 2
  157747. 34bdae5 Merge branch \(aq2018.3\(aq into use_reg_timezone
  157748. .IP \(bu 2
  157749. 9a8afa6 Fix tests, add null byte test
  157750. .IP \(bu 2
  157751. 59b1d4f Revert back to using reg to get timezone
  157752. .UNINDENT
  157753. .IP \(bu 2
  157754. 0d09608 Merge pull request \fI\%#52396\fP from dmurphy18/fix_aix_ssh
  157755. .INDENT 2.0
  157756. .IP \(bu 2
  157757. 8bfa340 Correct typo
  157758. .IP \(bu 2
  157759. 6d98577 Altered code to support salt\-ssh on AIX
  157760. .UNINDENT
  157761. .IP \(bu 2
  157762. 576478e Merge pull request \fI\%#52473\fP from Ch3LL/bp\-49437
  157763. .INDENT 2.0
  157764. .IP \(bu 2
  157765. 781385f Merge branch \(aq2018.3\(aq into bp\-49437
  157766. .IP \(bu 2
  157767. 3a3114d Fix merge conflict wart
  157768. .IP \(bu 2
  157769. bbfd412 Merge branch \(aq2018.3\(aq into bp\-49437
  157770. .IP \(bu 2
  157771. 48ee82d Merge branch \(aq2018.3\(aq into bp\-49437
  157772. .IP \(bu 2
  157773. f66d474 Add support to avoid calling refresh_db in opkg.del_repo
  157774. .UNINDENT
  157775. .IP \(bu 2
  157776. d830bc6 Merge pull request \fI\%#52493\fP from dwoz/ping_reaction_test
  157777. .INDENT 2.0
  157778. .IP \(bu 2
  157779. 8b05e77 Merge branch \(aq2018.3\(aq into ping_reaction_test
  157780. .IP \(bu 2
  157781. 7083d21 Merge branch \(aq2018.3\(aq into ping_reaction_test
  157782. .IP \(bu 2
  157783. 7c963c1 Merge branch \(aq2018.3\(aq into ping_reaction_test
  157784. .IP \(bu 2
  157785. 75ddeb3 fix linter
  157786. .IP \(bu 2
  157787. e3e1d2e fix reactor ping test
  157788. .UNINDENT
  157789. .IP \(bu 2
  157790. 9b7a0d1 Merge pull request \fI\%#52505\fP from bloomberg/2018_zmq_uri
  157791. .INDENT 2.0
  157792. .IP \(bu 2
  157793. b682ec5 transport.zmq: fix bug introduced by b7df7e75cf2
  157794. .UNINDENT
  157795. .IP \(bu 2
  157796. 452bbeb Merge pull request \fI\%#52512\fP from dwoz/supervisord_2018.3
  157797. .INDENT 2.0
  157798. .IP \(bu 2
  157799. cd5cd7d The exit code matters.
  157800. .UNINDENT
  157801. .IP \(bu 2
  157802. 53228ae Merge pull request \fI\%#52475\fP from Ch3LL/bp\-49464
  157803. .INDENT 2.0
  157804. .IP \(bu 2
  157805. a891fd3 Make opkg.del_repo be compatible with pkrepo state module
  157806. .UNINDENT
  157807. .IP \(bu 2
  157808. 6e79e24 Merge pull request \fI\%#52500\fP from terminalmage/invalid\-archive\-source
  157809. .INDENT 2.0
  157810. .IP \(bu 2
  157811. e9d175b Fix traceback when invalid source passed to archive.extracted
  157812. .UNINDENT
  157813. .IP \(bu 2
  157814. 2df74ca Merge pull request \fI\%#52476\fP from bloomberg/win_cmd_2018
  157815. .INDENT 2.0
  157816. .IP \(bu 2
  157817. 0e0c42e 2018 backport: modules.cmdmod: handle windows environ better
  157818. .UNINDENT
  157819. .IP \(bu 2
  157820. 4dfb2f8 Merge pull request \fI\%#52474\fP from Ch3LL/bp\-49984
  157821. .INDENT 2.0
  157822. .IP \(bu 2
  157823. c8d547e Use prune option in Pygit2 provider when fetching
  157824. .UNINDENT
  157825. .IP \(bu 2
  157826. d699485 Merge pull request \fI\%#52393\fP from waynew/52087\-mine\-delete\-test\-enhancements
  157827. .INDENT 2.0
  157828. .IP \(bu 2
  157829. e3f5be3 Use uncommon item in mine delete test
  157830. .UNINDENT
  157831. .IP \(bu 2
  157832. 89bd258 Merge pull request \fI\%#52445\fP from dwoz/ipc_fixes_2018.3
  157833. .INDENT 2.0
  157834. .IP \(bu 2
  157835. 1bdaf29 Ensure exceptions in service future are handled
  157836. .IP \(bu 2
  157837. c7ad732 Use six.reraise for py3 compatability
  157838. .IP \(bu 2
  157839. 29999b0 Close message service on subscriber close
  157840. .IP \(bu 2
  157841. 47203f7 Fix ipc unit tests
  157842. .IP \(bu 2
  157843. 2b35437 Fix linter issues
  157844. .IP \(bu 2
  157845. 503cdd2 Remove IPCClient singleton
  157846. .IP \(bu 2
  157847. b374034 Re\-raise queued exceptions with traceback
  157848. .UNINDENT
  157849. .UNINDENT
  157850. .IP \(bu 2
  157851. \fBISSUE\fP \fI\%#51879\fP: (\fI\%whytewolf\fP) 2019.2.0 binary pillar unicode error returns. (refs: \fI\%#52334\fP)
  157852. .IP \(bu 2
  157853. \fBPR\fP \fI\%#52334\fP: (\fI\%waynew\fP) 51879 fix binary pillar return error
  157854. @ \fI2019\-04\-12 03:45:17 UTC\fP
  157855. .INDENT 2.0
  157856. .IP \(bu 2
  157857. 6eb2bce Merge pull request \fI\%#52334\fP from waynew/51879\-fix\-binary\-pillar\-return\-error
  157858. .IP \(bu 2
  157859. ead856e Merge branch \(aq2019.2\(aq into 51879\-fix\-binary\-pillar\-return\-error
  157860. .IP \(bu 2
  157861. 2aa971d lint cleanup
  157862. .IP \(bu 2
  157863. 28c2945 keep_pillar not needed
  157864. .IP \(bu 2
  157865. fb010c0 Add binary pillar to the docs
  157866. .IP \(bu 2
  157867. f2aebf9 Assume file contents are binary
  157868. .IP \(bu 2
  157869. 2b8c782 Test gpg render with replace newlines
  157870. .IP \(bu 2
  157871. c4b385b Allow binary pillar data
  157872. .IP \(bu 2
  157873. 604b671 Return binary data from gpg renderer
  157874. .IP \(bu 2
  157875. 32aafab Ignore vscode and fix swap ignore
  157876. .UNINDENT
  157877. .IP \(bu 2
  157878. \fBISSUE\fP \fI\%#52041\fP: (\fI\%arsiesys\fP) 2019.2 influxdb_retention_policy.present broken when used extra arguments (refs: \fI\%#52043\fP)
  157879. .IP \(bu 2
  157880. \fBPR\fP \fI\%#52043\fP: (\fI\%arsiesys\fP) fix missing client_args in influxdb module
  157881. @ \fI2019\-04\-12 03:43:03 UTC\fP
  157882. .INDENT 2.0
  157883. .IP \(bu 2
  157884. 2d59705 Merge pull request \fI\%#52043\fP from arsiesys/fix_influxdb_state_rp
  157885. .IP \(bu 2
  157886. e617c5b Merge branch \(aq2019.2\(aq into fix_influxdb_state_rp
  157887. .IP \(bu 2
  157888. 7661860 fix missing client_args in influxdb module
  157889. .UNINDENT
  157890. .IP \(bu 2
  157891. \fBPR\fP \fI\%#52146\fP: (\fI\%twangboy\fP) Add missing symlink test
  157892. @ \fI2019\-04\-12 00:51:16 UTC\fP
  157893. .INDENT 2.0
  157894. .IP \(bu 2
  157895. 1b969c3 Merge pull request \fI\%#52146\fP from twangboy/fix_test_symlink_2019.2
  157896. .IP \(bu 2
  157897. 8e1c882 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  157898. .IP \(bu 2
  157899. a429542 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  157900. .IP \(bu 2
  157901. 401c253 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  157902. .IP \(bu 2
  157903. cce6200 Fixing lint
  157904. .IP \(bu 2
  157905. c7cb009 Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  157906. .IP \(bu 2
  157907. 3eae05a Merge branch \(aq2019.2\(aq into fix_test_symlink_2019.2
  157908. .IP \(bu 2
  157909. 83bed46 Add missing symlink test
  157910. .UNINDENT
  157911. .IP \(bu 2
  157912. \fBPR\fP \fI\%#52341\fP: (\fI\%cbosdo\fP) virt.pool_running: fix pool start
  157913. @ \fI2019\-04\-12 00:14:52 UTC\fP
  157914. .INDENT 2.0
  157915. .IP \(bu 2
  157916. 7a1b8ca Merge pull request \fI\%#52341\fP from cbosdo/virt\-state\-fixes
  157917. .IP \(bu 2
  157918. 89f0bd8 Merge branch \(aq2019.2\(aq into virt\-state\-fixes
  157919. .IP \(bu 2
  157920. 25b9681 virt.pool_running: fix pool start
  157921. .IP \(bu 2
  157922. 30981d2 Remove unneeded kwargs in virt states
  157923. .IP \(bu 2
  157924. 0871c02 virt: allow defining the VM type and arch when creating it
  157925. .IP \(bu 2
  157926. 1c65d25 Updating running domains in virt.running
  157927. .IP \(bu 2
  157928. 13d7819 Add missing virt states unit tests
  157929. .IP \(bu 2
  157930. 0681d86 virt.running support for all virt.init options
  157931. .IP \(bu 2
  157932. c6a444b Add test case for virt.running
  157933. .IP \(bu 2
  157934. 2db7a98 Let virt running state provide errors
  157935. .UNINDENT
  157936. .IP \(bu 2
  157937. \fBISSUE\fP \fI\%#52350\fP: (\fI\%Ch3LL\fP) Re\-Add Python 2 unicode string literals in YAML renderer (refs: \fI\%#52427\fP)
  157938. .IP \(bu 2
  157939. \fBPR\fP \fI\%#52427\fP: (\fI\%garethgreenaway\fP) [2019.2] Support for old yaml render
  157940. @ \fI2019\-04\-12 00:06:37 UTC\fP
  157941. .INDENT 2.0
  157942. .IP \(bu 2
  157943. 6040282 Merge pull request \fI\%#52427\fP from garethgreenaway/52350_readd_and_gate_unicode_string_literal_support
  157944. .IP \(bu 2
  157945. 82f010a Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  157946. .IP \(bu 2
  157947. ae81fee Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  157948. .IP \(bu 2
  157949. b618d44 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  157950. .IP \(bu 2
  157951. b191bc0 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  157952. .IP \(bu 2
  157953. 38a9818 Merge branch \(aq2019.2\(aq into 52350_readd_and_gate_unicode_string_literal_support
  157954. .IP \(bu 2
  157955. 2767984 Removing logging entry
  157956. .IP \(bu 2
  157957. 71cd303 Adding missing yamlloader_old.py
  157958. .IP \(bu 2
  157959. f848aa4 Adding support back in with, a gated configuration option, for the old YAML Loader.
  157960. .UNINDENT
  157961. .IP \(bu 2
  157962. \fBISSUE\fP \fI\%#51865\fP: (\fI\%magenbrot\fP) salt.match.search_by resulting in \(aqNone\(aq since 2019.2 (refs: \fI\%#52234\fP)
  157963. .IP \(bu 2
  157964. \fBPR\fP \fI\%#52234\fP: (\fI\%garethgreenaway\fP) [2019.2] Fixes to matchers when used in pillar
  157965. @ \fI2019\-04\-12 00:05:48 UTC\fP
  157966. .INDENT 2.0
  157967. .IP \(bu 2
  157968. 05ba7c5 Merge pull request \fI\%#52234\fP from garethgreenaway/51865_match_search_by_master
  157969. .IP \(bu 2
  157970. 1760245 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  157971. .IP \(bu 2
  157972. d50f011 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  157973. .IP \(bu 2
  157974. b0cbb60 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  157975. .IP \(bu 2
  157976. 799a08b Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  157977. .IP \(bu 2
  157978. 21891d6 Merge branch \(aq2019.2\(aq into 51865_match_search_by_master
  157979. .IP \(bu 2
  157980. a2173d7 Fixing a typo where attempting to get a list from __opts__ instead of an individual item
  157981. .IP \(bu 2
  157982. 6a5b5b2 swapping out if...else approach for __opts__.get approach.
  157983. .IP \(bu 2
  157984. aa2c626 With the change/addition of the matcher subsystem in 2019.2, the match.search_by when used in pillar broke when targetting the minion that was also the salt master. This was caused by the id in __opts__ being used in all cases. This change updates the glob_match function to use the preserved minion_id of the master if it is available so that targeting works as expected.
  157985. .UNINDENT
  157986. .IP \(bu 2
  157987. \fBPR\fP \fI\%#52160\fP: (\fI\%cbosdo\fP) Virt whitespace fix
  157988. @ \fI2019\-04\-12 00:04:25 UTC\fP
  157989. .INDENT 2.0
  157990. .IP \(bu 2
  157991. 80d7aea Merge pull request \fI\%#52160\fP from cbosdo/virt\-whitespace\-fix
  157992. .IP \(bu 2
  157993. fd1f539 Merge branch \(aq2019.2\(aq into virt\-whitespace\-fix
  157994. .IP \(bu 2
  157995. b297e7d virt: handle whitespaces in VM names
  157996. .UNINDENT
  157997. .IP \(bu 2
  157998. \fBISSUE\fP \fI\%#51832\fP: (\fI\%nocturo\fP) pillar include stopped working (refs: \fI\%#52008\fP)
  157999. .IP \(bu 2
  158000. \fBPR\fP \fI\%#52008\fP: (\fI\%waynew\fP) Allow \fI/\fP in pillar includes
  158001. @ \fI2019\-04\-12 00:02:40 UTC\fP
  158002. .INDENT 2.0
  158003. .IP \(bu 2
  158004. b551bbd Merge pull request \fI\%#52008\fP from waynew/51832\-re\-allow\-slash\-includes
  158005. .IP \(bu 2
  158006. ee3115f Allow leading dots and / as pillar separators
  158007. .IP \(bu 2
  158008. 29c676d Ensure _closing exists
  158009. .IP \(bu 2
  158010. eb517e1 Swap \(aq/\(aq for \(aq.\(aq when matching
  158011. .UNINDENT
  158012. .IP \(bu 2
  158013. \fBISSUE\fP \fI\%#51821\fP: (\fI\%OrangeDog\fP) \(aqcomment\(aq is an invalid keyword argument for \(aqtest.fail_without_changes\(aq (refs: \fI\%#51937\fP)
  158014. .IP \(bu 2
  158015. \fBPR\fP \fI\%#51937\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to test state functions to allow arguments that mod_watch uses
  158016. @ \fI2019\-04\-11 23:57:44 UTC\fP
  158017. .INDENT 2.0
  158018. .IP \(bu 2
  158019. d3159cb Merge pull request \fI\%#51937\fP from garethgreenaway/51821_ensure_result_comment_changes_valid_arguments
  158020. .IP \(bu 2
  158021. 86c63b5 Merge branch \(aq2019.2\(aq into 51821_ensure_result_comment_changes_valid_arguments
  158022. .IP \(bu 2
  158023. 0966d61 Merge branch \(aq2019.2\(aq into 51821_ensure_result_comment_changes_valid_arguments
  158024. .IP \(bu 2
  158025. 5527dff Ensure the comment, changes, and result are valid arguments for various test state functions as they are valid arguments for mod_watch.
  158026. .UNINDENT
  158027. .IP \(bu 2
  158028. \fBISSUE\fP \fI\%#51818\fP: (\fI\%syphernl\fP) salt.nacl.dec: expected str, bytearray, or unicode (refs: \fI\%#51913\fP)
  158029. .IP \(bu 2
  158030. \fBPR\fP \fI\%#51913\fP: (\fI\%garethgreenaway\fP) [2019.2] Fixes to utils/nacl.py
  158031. @ \fI2019\-04\-11 23:56:57 UTC\fP
  158032. .INDENT 2.0
  158033. .IP \(bu 2
  158034. 7be0428 Merge pull request \fI\%#51913\fP from garethgreenaway/51818_fix_when_sk_is_empty
  158035. .IP \(bu 2
  158036. 55d7488 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158037. .IP \(bu 2
  158038. b2128e8 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158039. .IP \(bu 2
  158040. cb01a1b Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158041. .IP \(bu 2
  158042. 1a1e333 Merge branch \(aq51818_fix_when_sk_is_empty\(aq of github.com:garethgreenaway/salt into 51818_fix_when_sk_is_empty
  158043. .INDENT 2.0
  158044. .IP \(bu 2
  158045. 102f0a3 Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158046. .IP \(bu 2
  158047. 7fd04ec Merge branch \(aq2019.2\(aq into 51818_fix_when_sk_is_empty
  158048. .UNINDENT
  158049. .IP \(bu 2
  158050. dd23069 Adding tests for NACL changes.
  158051. .IP \(bu 2
  158052. c314f51 Correctly handle the situation when with the secret key or public key values are empty.
  158053. .UNINDENT
  158054. .IP \(bu 2
  158055. \fBISSUE\fP \fI\%#52116\fP: (\fI\%lordcirth\fP) host.present always returns None when in test=True (refs: \fI\%#52399\fP)
  158056. .IP \(bu 2
  158057. \fBPR\fP \fI\%#52399\fP: (\fI\%waynew\fP) Bring host.present in line with Salt\(aqs test conventions
  158058. @ \fI2019\-04\-11 23:32:28 UTC\fP
  158059. .INDENT 2.0
  158060. .IP \(bu 2
  158061. d6f0971 Merge pull request \fI\%#52399\fP from waynew/52116\-fix\-host\-present\-fail
  158062. .IP \(bu 2
  158063. 8440ae1 Merge branch \(aq2019.2\(aq into 52116\-fix\-host\-present\-fail
  158064. .IP \(bu 2
  158065. dd002fd Fix linter
  158066. .IP \(bu 2
  158067. 9d1b2a0 Only return None on host.present changes when test
  158068. .UNINDENT
  158069. .IP \(bu 2
  158070. \fBPR\fP \fI\%#52477\fP: (\fI\%mattp\-\fP) 2019.2 backport \fI\%#52472\fP modules.cmdmod: handle windows environ better
  158071. @ \fI2019\-04\-11 23:13:34 UTC\fP
  158072. .INDENT 2.0
  158073. .IP \(bu 2
  158074. \fBPR\fP \fI\%#52472\fP: (\fI\%mattp\-\fP) modules.cmdmod: handle windows environ better (refs: \fI\%#52476\fP, \fI\%#52477\fP)
  158075. .IP \(bu 2
  158076. 7c709cf Merge pull request \fI\%#52477\fP from bloomberg/win_cmd_2019
  158077. .IP \(bu 2
  158078. 736a437 2019.2 bacpkport: modules.cmdmod: handle windows environ better
  158079. .UNINDENT
  158080. .IP \(bu 2
  158081. \fBISSUE\fP \fI\%#49661\fP: (\fI\%ephreal\fP) Issues starting salt\-master or salt\-minion with openssl\-1.1.1\-1 (refs: \fI\%#51655\fP)
  158082. .IP \(bu 2
  158083. \fBPR\fP \fI\%#52423\fP: (\fI\%bbinet\fP) Remove unused salt.crypt import
  158084. @ \fI2019\-04\-11 21:44:41 UTC\fP
  158085. .INDENT 2.0
  158086. .IP \(bu 2
  158087. \fBPR\fP \fI\%#51655\fP: (\fI\%garethgreenaway\fP) [2017.7] Removing unused salt.crypt imports (refs: \fI\%#52423\fP)
  158088. .IP \(bu 2
  158089. b0d3c76 Merge pull request \fI\%#52423\fP from bbinet/unused\-salt\-crypt
  158090. .IP \(bu 2
  158091. dc330e7 Merge branch \(aq2019.2\(aq into unused\-salt\-crypt
  158092. .IP \(bu 2
  158093. 4b26dea Merge branch \(aq2019.2\(aq into unused\-salt\-crypt
  158094. .IP \(bu 2
  158095. 9607c38 Also remove unused salt.crypt import in pillar/__init__.py
  158096. .IP \(bu 2
  158097. 49f2631 Remove unused salt.crypt import
  158098. .UNINDENT
  158099. .IP \(bu 2
  158100. \fBPR\fP \fI\%#52506\fP: (\fI\%mattp\-\fP) 2019.2: transport.zmq: fix bug introduced by b7df7e75cf2
  158101. @ \fI2019\-04\-11 21:12:51 UTC\fP
  158102. .INDENT 2.0
  158103. .IP \(bu 2
  158104. 4bb9185 Merge pull request \fI\%#52506\fP from bloomberg/2019_zmq_uri
  158105. .IP \(bu 2
  158106. 1e9dd7f transport.zmq: fix bug introduced by b7df7e75cf2
  158107. .UNINDENT
  158108. .IP \(bu 2
  158109. \fBISSUE\fP \fI\%#52462\fP: (\fI\%Ch3LL\fP) integration.states.test_supervisord test failing (refs: \fI\%#52513\fP, \fI\%#52512\fP)
  158110. .IP \(bu 2
  158111. \fBPR\fP \fI\%#52513\fP: (\fI\%dwoz\fP) [2019.2] Fix supervisord
  158112. @ \fI2019\-04\-11 21:09:17 UTC\fP
  158113. .INDENT 2.0
  158114. .IP \(bu 2
  158115. 1532642 Merge pull request \fI\%#52513\fP from dwoz/supervisord_2019.2
  158116. .IP \(bu 2
  158117. dc9ace6 The exit code matters.
  158118. .UNINDENT
  158119. .IP \(bu 2
  158120. \fBPR\fP \fI\%#52496\fP: (\fI\%dwoz\fP) Fix wart in IPC merge forward
  158121. @ \fI2019\-04\-11 05:19:02 UTC\fP
  158122. .INDENT 2.0
  158123. .IP \(bu 2
  158124. \fBPR\fP \fI\%#52482\fP: (\fI\%dwoz\fP) Ipc fixes 2019.2 (refs: \fI\%#52496\fP)
  158125. .IP \(bu 2
  158126. 978084d Merge pull request \fI\%#52496\fP from dwoz/ipc_wart
  158127. .IP \(bu 2
  158128. 9805f38 Fix wart in IPC merge forward
  158129. .UNINDENT
  158130. .IP \(bu 2
  158131. \fBPR\fP \fI\%#52482\fP: (\fI\%dwoz\fP) Ipc fixes 2019.2 (refs: \fI\%#52496\fP)
  158132. @ \fI2019\-04\-10 19:53:58 UTC\fP
  158133. .INDENT 2.0
  158134. .IP \(bu 2
  158135. 791b646 Merge pull request \fI\%#52482\fP from dwoz/ipc_fixes_2019.2
  158136. .IP \(bu 2
  158137. f45d29b Remove un\-needed test
  158138. .IP \(bu 2
  158139. 0141b7f Fix merge wart
  158140. .IP \(bu 2
  158141. 82150f0 Remove un\-used import
  158142. .IP \(bu 2
  158143. c9ec8b1 Ensure exceptions in service future are handled
  158144. .IP \(bu 2
  158145. 25f5a90 Use six.reraise for py3 compatability
  158146. .IP \(bu 2
  158147. 6d80789 Fix ipc unit tests
  158148. .IP \(bu 2
  158149. c80da32 Fix linter issues
  158150. .IP \(bu 2
  158151. 024b4b6 Remove IPCClient singleton
  158152. .IP \(bu 2
  158153. f1d0e02 Re\-raise queued exceptions with traceback
  158154. .UNINDENT
  158155. .IP \(bu 2
  158156. \fBISSUE\fP \fI\%#51932\fP: (\fI\%tomlaredo\fP) [REGRESSION] \-\-output\-diff doesn\(aqt display changes anymore with test=True since v2019.2.0 (refs: \fI\%#51992\fP)
  158157. .IP \(bu 2
  158158. \fBPR\fP \fI\%#51992\fP: (\fI\%garethgreenaway\fP) [2019.2] Swapping pchanges for changes in file state.
  158159. @ \fI2019\-04\-09 19:38:57 UTC\fP
  158160. .INDENT 2.0
  158161. .IP \(bu 2
  158162. 3173673 Merge pull request \fI\%#51992\fP from garethgreenaway/51932_show_diff_when_test_True
  158163. .IP \(bu 2
  158164. 7c4abd6 changes needs to be a dictionary.
  158165. .IP \(bu 2
  158166. ac950b3 Merge branch \(aq2019.2\(aq into 51932_show_diff_when_test_True
  158167. .UNINDENT
  158168. .IP \(bu 2
  158169. \fBPR\fP \fI\%#52413\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158170. @ \fI2019\-04\-08 16:19:49 UTC\fP
  158171. .INDENT 2.0
  158172. .IP \(bu 2
  158173. bd3ad7b Merge pull request \fI\%#52413\fP from Ch3LL/merge\-2019.2
  158174. .IP \(bu 2
  158175. 30783f4 Merge branch \(aq2019.2\(aq into merge\-2019.2
  158176. .UNINDENT
  158177. .IP \(bu 2
  158178. \fBPR\fP \fI\%#52151\fP: (\fI\%simonflood\fP) Fix typo in actual 2019.2.0 release notes
  158179. @ \fI2019\-04\-08 13:36:28 UTC\fP
  158180. .INDENT 2.0
  158181. .IP \(bu 2
  158182. \fBPR\fP \fI\%#51861\fP: (\fI\%simonflood\fP) Fix typo in 2019.2.0 release notes (refs: \fI\%#52151\fP)
  158183. .IP \(bu 2
  158184. a18abf2 Merge pull request \fI\%#52151\fP from simonflood/patch\-2
  158185. .IP \(bu 2
  158186. a4a5521 Merge branch \(aq2019.2\(aq into patch\-2
  158187. .IP \(bu 2
  158188. 3d31102 Fix typo in actual 2019.2.0 release notes
  158189. .INDENT 2.0
  158190. .IP \(bu 2
  158191. 16733da Merge branch \(aq2019.2\(aq into merge\-2019.2
  158192. .IP \(bu 2
  158193. fe13214 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158194. .INDENT 2.0
  158195. .IP \(bu 2
  158196. b6028b9 Merge pull request \fI\%#52403\fP from bdrung/fix\-test\-conditions
  158197. .INDENT 2.0
  158198. .IP \(bu 2
  158199. e74f78f Skip ExtendTestCase if templates directory is missing
  158200. .IP \(bu 2
  158201. 0473683 Skip SampleConfTest if sample conf directories are missing
  158202. .UNINDENT
  158203. .IP \(bu 2
  158204. e5a755d Merge pull request \fI\%#52250\fP from twangboy/fix_grains
  158205. .INDENT 2.0
  158206. .IP \(bu 2
  158207. a77ec81 Merge branch \(aq2018.3\(aq into fix_grains
  158208. .IP \(bu 2
  158209. b405391 Refer to the windowsdomain grain
  158210. .IP \(bu 2
  158211. e103561 Add some documentation about the domain grain on Windows
  158212. .IP \(bu 2
  158213. c874831 Don\(aqt set the domain grain to windowsdomain
  158214. .IP \(bu 2
  158215. 65eb461 Add a test for windows grains
  158216. .IP \(bu 2
  158217. 173d1e7 Fix the domain grain on Windows
  158218. .INDENT 2.0
  158219. .INDENT 3.5
  158220. .INDENT 0.0
  158221. .IP \(bu 2
  158222. 0ce0c04 Merge branch \(aq2019.2\(aq into 51932_show_diff_when_test_True
  158223. .UNINDENT
  158224. .UNINDENT
  158225. .UNINDENT
  158226. .UNINDENT
  158227. .UNINDENT
  158228. .UNINDENT
  158229. .UNINDENT
  158230. .IP \(bu 2
  158231. \fBISSUE\fP \fI\%#51869\fP: (\fI\%eimantaszd\fP) x509.sign_remote_certificate not working after upgrade to 2019.2.0 (refs: \fI\%#52381\fP)
  158232. .IP \(bu 2
  158233. \fBPR\fP \fI\%#52381\fP: (\fI\%dwoz\fP) Fix issue \fI\%#51869\fP and add cert signing test
  158234. @ \fI2019\-04\-05 20:36:11 UTC\fP
  158235. .INDENT 2.0
  158236. .IP \(bu 2
  158237. 6bae227 Merge pull request \fI\%#52381\fP from dwoz/issue_51869
  158238. .IP \(bu 2
  158239. cd78485 Merge branch \(aq2019.2\(aq into issue_51869
  158240. .UNINDENT
  158241. .IP \(bu 2
  158242. \fBISSUE\fP \fI\%#21927\fP: (\fI\%jfindlay\fP) network.traceroute intermittently stacktraces (refs: \fI\%#52370\fP)
  158243. .IP \(bu 2
  158244. \fBPR\fP \fI\%#52370\fP: (\fI\%jfindlay\fP) Fix network.traceroute exec module function
  158245. @ \fI2019\-04\-03 16:39:20 UTC\fP
  158246. .INDENT 2.0
  158247. .IP \(bu 2
  158248. c1063cf Merge pull request \fI\%#52370\fP from jfindlay/traceroute
  158249. .IP \(bu 2
  158250. 2f49231 modules.network: update unit test
  158251. .IP \(bu 2
  158252. 5b64fc0 modules.network: log and skip problematic traceroute lines
  158253. .IP \(bu 2
  158254. e33f5c1 modules.network: standardize util check
  158255. .UNINDENT
  158256. .IP \(bu 2
  158257. \fBPR\fP \fI\%#52397\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158258. @ \fI2019\-04\-02 22:12:45 UTC\fP
  158259. .INDENT 2.0
  158260. .IP \(bu 2
  158261. 3675f1e Merge pull request \fI\%#52397\fP from garethgreenaway/merge\-2019.2
  158262. .IP \(bu 2
  158263. 28e76b1 Merge branch \(aq2018.3\(aq into merge\-2019.2
  158264. .IP \(bu 2
  158265. 28f947e Merge pull request \fI\%#52213\fP from garethgreenaway/beacon_state_dont_save_test_true
  158266. .INDENT 2.0
  158267. .IP \(bu 2
  158268. 7f83b4b Swapping out if state looking for test in opts for a __opts__.get
  158269. .IP \(bu 2
  158270. e1cf599 Merge branch \(aq2018.3\(aq into beacon_state_dont_save_test_true
  158271. .IP \(bu 2
  158272. b751122 Merge branch \(aq2018.3\(aq into beacon_state_dont_save_test_true
  158273. .IP \(bu 2
  158274. a901ec4 Don\(aqt save beacons when test=True
  158275. .UNINDENT
  158276. .IP \(bu 2
  158277. 10d041b Merge pull request \fI\%#52344\fP from twangboy/os_release_embedded
  158278. .INDENT 2.0
  158279. .IP \(bu 2
  158280. 74ab4d3 Use old way to get osrelease if new way fails
  158281. .UNINDENT
  158282. .IP \(bu 2
  158283. e88d3ba Merge pull request \fI\%#52345\fP from garethgreenaway/52197_incron_cannot_have_comments
  158284. .INDENT 2.0
  158285. .IP \(bu 2
  158286. 070837a Merge branch \(aq2018.3\(aq into 52197_incron_cannot_have_comments
  158287. .IP \(bu 2
  158288. 8461608 Updating the incron module, state module and tests to remove use of comments.
  158289. .INDENT 2.0
  158290. .INDENT 3.5
  158291. .INDENT 0.0
  158292. .IP \(bu 2
  158293. 855f31a Remove un\-used file
  158294. .IP \(bu 2
  158295. affd9b8 Fix setup/teardown methods
  158296. .IP \(bu 2
  158297. 215bf93 Refresh after modifying tmp pillars
  158298. .IP \(bu 2
  158299. 95c3aba Add config for listener
  158300. .IP \(bu 2
  158301. 5d231f4 remove unused import
  158302. .IP \(bu 2
  158303. 8c1b1db Use tmp pillar for signing policies
  158304. .IP \(bu 2
  158305. a0e2458 fix unused import
  158306. .IP \(bu 2
  158307. 7f5f7dd Fix requisite path
  158308. .IP \(bu 2
  158309. 5630498 Fix signing policies path
  158310. .IP \(bu 2
  158311. 0bd0826 Fix issue \fI\%#51869\fP and add cert signing test
  158312. .UNINDENT
  158313. .UNINDENT
  158314. .UNINDENT
  158315. .UNINDENT
  158316. .UNINDENT
  158317. .IP \(bu 2
  158318. \fBPR\fP \fI\%#52347\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158319. @ \fI2019\-03\-28 16:41:53 UTC\fP
  158320. .INDENT 2.0
  158321. .IP \(bu 2
  158322. 27e6cbf Merge pull request \fI\%#52347\fP from Ch3LL/merge\-2019.2
  158323. .IP \(bu 2
  158324. 63962b5 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158325. .IP \(bu 2
  158326. bda3ca2 Merge pull request \fI\%#51749\fP from terminal\-labs/salt\-cloud\-map\-alt\-update
  158327. .INDENT 2.0
  158328. .IP \(bu 2
  158329. 9ca0f72 Changed where to mention the map files compatibility for minion configuration options. This is a result of @Ch3LL suggestion on the PR itself for this doc change.
  158330. .IP \(bu 2
  158331. 364ef06 Added mention of map file alternative for minion configuration options.
  158332. .UNINDENT
  158333. .IP \(bu 2
  158334. a743fff Merge pull request \fI\%#52113\fP from twangboy/fix_lgpo
  158335. .INDENT 2.0
  158336. .IP \(bu 2
  158337. bb4a704 Merge branch \(aq2018.3\(aq into fix_lgpo
  158338. .IP \(bu 2
  158339. 7186405 Merge branch \(aq2018.3\(aq into fix_lgpo
  158340. .IP \(bu 2
  158341. 7656331 Change default language from 1033 to en_US
  158342. .UNINDENT
  158343. .IP \(bu 2
  158344. 7040643 Merge pull request \fI\%#52172\fP from garethgreenaway/51959_fix_acl_present_output
  158345. .INDENT 2.0
  158346. .IP \(bu 2
  158347. 8c53890 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158348. .IP \(bu 2
  158349. 0bdde94 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158350. .IP \(bu 2
  158351. c5337e1 Merge branch \(aq2018.3\(aq into 51959_fix_acl_present_output
  158352. .IP \(bu 2
  158353. 889660f Fixing lint.
  158354. .IP \(bu 2
  158355. bfdb669 Updating the reverse octal lookup dictionary. Updating tests.
  158356. .IP \(bu 2
  158357. 24c907b Adding additional permissions to the lookup.
  158358. .IP \(bu 2
  158359. 4b99afa Fixing the output when there are changes for the ACL state so the permissions are shown and not the octal number.
  158360. .UNINDENT
  158361. .IP \(bu 2
  158362. 45d6cad Merge pull request \fI\%#52283\fP from dmurphy18/fix_cpe_name_amzn2
  158363. .INDENT 2.0
  158364. .IP \(bu 2
  158365. cbe5f7d Update to allow for malformed CPE_NAME from some OS\(aqs
  158366. .UNINDENT
  158367. .IP \(bu 2
  158368. 14a6b9d Merge pull request \fI\%#52306\fP from terminal\-labs/replace\-ping\-with\-version
  158369. .INDENT 2.0
  158370. .IP \(bu 2
  158371. c04ba6e Changed a text artifact from the ping function to supporting text for the version function.
  158372. .IP \(bu 2
  158373. 0b1eb00 Replaced \fItest.ping\fP with \fItest.version\fP Result of issue \fI\%#52277\fP
  158374. .UNINDENT
  158375. .IP \(bu 2
  158376. 7b2b521 Merge pull request \fI\%#51963\fP from DSRCorporation/bugs/49147_ipc_subscriber
  158377. .INDENT 2.0
  158378. .IP \(bu 2
  158379. 37aeba3 Minor: Fix typo in docstring
  158380. .IP \(bu 2
  158381. cc46e9c Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158382. .IP \(bu 2
  158383. 23733bd Regression test for parallel IPCMessageSubscriber support
  158384. .IP \(bu 2
  158385. 2bc2a7d Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158386. .IP \(bu 2
  158387. 684bf58 Update doc conf with the new import \fItornado.queues\fP
  158388. .IP \(bu 2
  158389. 008cf49 Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158390. .IP \(bu 2
  158391. 01e9a3d Merge branch \(aq2018.3\(aq into bugs/49147_ipc_subscriber
  158392. .IP \(bu 2
  158393. 710ab50 Support parallel work of multiple IPCMEssageSubscribers in one process
  158394. .UNINDENT
  158395. .IP \(bu 2
  158396. 87bb513 Fix failing symlink test (\fI\%#52145\fP)
  158397. .IP \(bu 2
  158398. 8255901 document \fIregex_replace\fP Jinja filter (\fI\%#52326\fP)
  158399. .IP \(bu 2
  158400. 3211397 Merge pull request \fI\%#52310\fP from garethgreenaway/merge\-2018.3
  158401. .INDENT 2.0
  158402. .IP \(bu 2
  158403. 9324b83 Merge branch \(aq2018.3\(aq into merge\-2018.3
  158404. .UNINDENT
  158405. .IP \(bu 2
  158406. 71e9b66 Merge pull request \fI\%#52312\fP from terminal\-labs/zone\-clarification
  158407. .INDENT 2.0
  158408. .IP \(bu 2
  158409. ae0e18f Merge branch \(aq2018.3\(aq into zone\-clarification
  158410. .IP \(bu 2
  158411. e8c8dba Added in an explaination of the \-\-zone flag approved in \fI\%#52251\fP
  158412. .INDENT 2.0
  158413. .IP \(bu 2
  158414. 4908ed3 Merge branch \(aq2017.7\(aq into merge\-2018.3
  158415. .IP \(bu 2
  158416. b6a0161 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158417. .INDENT 2.0
  158418. .IP \(bu 2
  158419. 1f99e28 Let\(aqs not include raet by default
  158420. .UNINDENT
  158421. .IP \(bu 2
  158422. 4306779 Merge branch \(aq2017.7.9\(aq into 2017.7
  158423. .INDENT 2.0
  158424. .IP \(bu 2
  158425. 36ed50d Lock to unittest\-xml\-reporting 2.2.1
  158426. .UNINDENT
  158427. .IP \(bu 2
  158428. 3e6cb79 Merge branch \(aq2017.7.9\(aq into 2017.7
  158429. .INDENT 2.0
  158430. .IP \(bu 2
  158431. 57348ca Add static requirements for Arch linux
  158432. .IP \(bu 2
  158433. cc6fb46 Additionally ignore files in nox virtualenvs and CI artifacts directories
  158434. .UNINDENT
  158435. .IP \(bu 2
  158436. bf9c55e Previously have setuptools\-git installed if ioflo is to be installed
  158437. .IP \(bu 2
  158438. 973e1ca Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158439. .INDENT 2.0
  158440. .IP \(bu 2
  158441. 981335a Revert "Avoid a traceback on tornado.testing test classes"
  158442. .UNINDENT
  158443. .IP \(bu 2
  158444. f48ba6a Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158445. .INDENT 2.0
  158446. .IP \(bu 2
  158447. b039cec Windows now has a static requirements file and no longer needs hacks
  158448. .IP \(bu 2
  158449. a86af2b Merge pull request \fI\%#52226\fP from dwoz/jenkins_build
  158450. .INDENT 2.0
  158451. .IP \(bu 2
  158452. 8c0f46b Use windows state to bootstrap windows builds
  158453. .UNINDENT
  158454. .IP \(bu 2
  158455. 7263956 Lock coverage and xml\-unittest\-reporting versions
  158456. .IP \(bu 2
  158457. dce4ffa Avoid a traceback on tornado.testing test classes
  158458. .UNINDENT
  158459. .UNINDENT
  158460. .UNINDENT
  158461. .UNINDENT
  158462. .IP \(bu 2
  158463. \fBPR\fP \fI\%#52314\fP: (\fI\%twangboy\fP) Add the ability to pass a timeout to beacons
  158464. @ \fI2019\-03\-27 19:11:13 UTC\fP
  158465. .INDENT 2.0
  158466. .IP \(bu 2
  158467. d3f4c9d Merge pull request \fI\%#52314\fP from twangboy/fix_beacon_tests
  158468. .IP \(bu 2
  158469. a5fa99a Add missing **kwargs
  158470. .IP \(bu 2
  158471. 7e88d04 Add the ability to pass a timeout to beacons
  158472. .UNINDENT
  158473. .IP \(bu 2
  158474. \fBPR\fP \fI\%#52311\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158475. @ \fI2019\-03\-26 18:31:32 UTC\fP
  158476. .INDENT 2.0
  158477. .IP \(bu 2
  158478. bad4e47 Merge pull request \fI\%#52311\fP from garethgreenaway/merge\-2019.2
  158479. .IP \(bu 2
  158480. 11cd485 Merge branch \(aq2018.3\(aq into merge\-2019.2
  158481. .IP \(bu 2
  158482. 582d306 Merge pull request \fI\%#52307\fP from Akm0d/doc_fix
  158483. .INDENT 2.0
  158484. .IP \(bu 2
  158485. 4da0fd6 Fix x509 inconsistent file name in state example
  158486. .UNINDENT
  158487. .IP \(bu 2
  158488. 2cdf48e Merge pull request \fI\%#52276\fP from terminal\-labs/replace\-github\-dead\-link
  158489. .INDENT 2.0
  158490. .IP \(bu 2
  158491. a2fbbe0 Merge branch \(aq2018.3\(aq into replace\-github\-dead\-link
  158492. .UNINDENT
  158493. .IP \(bu 2
  158494. 8fa0e51 Merge pull request \fI\%#52290\fP from Akm0d/doc_fix
  158495. .INDENT 2.0
  158496. .IP \(bu 2
  158497. ca00e4b Merge branch \(aq2018.3\(aq of github.com:saltstack/salt into doc_fix
  158498. .IP \(bu 2
  158499. 8e1ec15 Add missing master/minion docs for log_rotate*
  158500. .INDENT 2.0
  158501. .IP \(bu 2
  158502. 08728cf Merge branch \(aq2018.3\(aq into replace\-github\-dead\-link
  158503. .UNINDENT
  158504. .UNINDENT
  158505. .IP \(bu 2
  158506. d2fd84f Merge pull request \fI\%#51724\fP from clinta/docker\-create\-with\-ip
  158507. .INDENT 2.0
  158508. .IP \(bu 2
  158509. c933663 Merge branch \(aq2018.3\(aq into docker\-create\-with\-ip
  158510. .UNINDENT
  158511. .IP \(bu 2
  158512. 838a7aa Merge pull request \fI\%#51753\fP from terminal\-labs/docs\-sphinx\-ref\-deadlink\-fix
  158513. .INDENT 2.0
  158514. .IP \(bu 2
  158515. f2b6abd Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158516. .IP \(bu 2
  158517. 9857f53 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158518. .IP \(bu 2
  158519. 8a11d27 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158520. .IP \(bu 2
  158521. 842ec84 Merge branch \(aq2018.3\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158522. .IP \(bu 2
  158523. 9275207 Merge branch \(aq2017.7\(aq into docs\-sphinx\-ref\-deadlink\-fix
  158524. .IP \(bu 2
  158525. 2330c2a makefile had an old sphinx\-doc link, updated to new general front page of sphinx docs.
  158526. .IP \(bu 2
  158527. 8d70e3b Replaced all bad sphinx links with ones from the new sphinx doc site.
  158528. .IP \(bu 2
  158529. ebdffcd replaced two python sphinx deadlinks with sphinx new relevant documentation pages.
  158530. .INDENT 2.0
  158531. .INDENT 3.5
  158532. .INDENT 0.0
  158533. .IP \(bu 2
  158534. a4e3e34 Merge branch \(aq2018.3\(aq into docker\-create\-with\-ip
  158535. .UNINDENT
  158536. .UNINDENT
  158537. .UNINDENT
  158538. .UNINDENT
  158539. .IP \(bu 2
  158540. efb9ec0 Merge pull request \fI\%#52215\fP from garethgreenaway/bp\-52212
  158541. .INDENT 2.0
  158542. .IP \(bu 2
  158543. 65857ef Merge branch \(aq2018.3\(aq into bp\-52212
  158544. .IP \(bu 2
  158545. a96bf24 Back\-port PR \fI\%#52212\fP to 2018.3
  158546. .INDENT 2.0
  158547. .INDENT 3.5
  158548. .INDENT 0.0
  158549. .IP \(bu 2
  158550. c6e553c add networking_config to container_create for custom network_mode
  158551. .IP \(bu 2
  158552. 5c99dbd add test to expose ip not added to custom network \fI\%#51723\fP
  158553. .UNINDENT
  158554. .UNINDENT
  158555. .UNINDENT
  158556. .UNINDENT
  158557. .IP \(bu 2
  158558. 679c4b2 Merge pull request \fI\%#52269\fP from garethgreenaway/merge\-2018.3
  158559. .INDENT 2.0
  158560. .IP \(bu 2
  158561. ee58560 Merge branch \(aq2018.3\(aq into merge\-2018.3
  158562. .UNINDENT
  158563. .IP \(bu 2
  158564. 418e543 Merge pull request \fI\%#52261\fP from dwoz/update_kitchen
  158565. .INDENT 2.0
  158566. .IP \(bu 2
  158567. a87c6ea Use windows state to bootstrap windows builds
  158568. .IP \(bu 2
  158569. 1aa1bd8 Merge branch \(aq2017.7\(aq into merge\-2018.3
  158570. .IP \(bu 2
  158571. 2962e94 Lock coverage and xml\-unittest\-reporting versions
  158572. .IP \(bu 2
  158573. 595303b Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158574. .INDENT 2.0
  158575. .IP \(bu 2
  158576. 55e150c Proper setup and teardown
  158577. .IP \(bu 2
  158578. b9b6009 Don\(aqt run distro on windows
  158579. .IP \(bu 2
  158580. 3cb5c82 Merge pull request \fI\%#52208\fP from s0undt3ch/2017.7.9
  158581. .UNINDENT
  158582. .IP \(bu 2
  158583. b14dbc9 Merge branch \(aq2017.7.9\(aq into 2017.7
  158584. .INDENT 2.0
  158585. .IP \(bu 2
  158586. 6a789a1 Update static requirements
  158587. .IP \(bu 2
  158588. cee9480 Lock PyYAML to < 5.1
  158589. .IP \(bu 2
  158590. a4f241d The kitchen nox verifier already takes care of the sinlge \fI\-v\fP flag.
  158591. .IP \(bu 2
  158592. 0cb641e Fix static requirements search bad logic
  158593. .IP \(bu 2
  158594. 45a3e4a \fIdistro\fP reports Opensuse 15 as Opensuse Leap 15
  158595. .IP \(bu 2
  158596. de7bb24 Ubuntu 18.04 locked requirements files
  158597. .IP \(bu 2
  158598. bc08e3c Ubuntu 16.04 locked requirements files
  158599. .IP \(bu 2
  158600. 0d353d2 Ubuntu 14.04 locked requirements files
  158601. .IP \(bu 2
  158602. 1186122 Opensuse 42 locked requirements files
  158603. .IP \(bu 2
  158604. fa6888b Opensuse 15 locked requirements files
  158605. .IP \(bu 2
  158606. b6578b8 Fedora 29 locked requirements files
  158607. .IP \(bu 2
  158608. 777dbb0 Fedora 28 locked requirements files
  158609. .IP \(bu 2
  158610. 4388fa9 Debian 9 locked requirements files
  158611. .IP \(bu 2
  158612. 2f9030f Debian 8 locked requirements files
  158613. .IP \(bu 2
  158614. 1b18ec5 CentOS 7 locked requirements files
  158615. .IP \(bu 2
  158616. 6e9f0c0 CentOS 6 locked requirements
  158617. .IP \(bu 2
  158618. 7415846 Start handling static(and platform specific) requirements files
  158619. .IP \(bu 2
  158620. ea4d370 Allow overriding some requirements based on distro information
  158621. .IP \(bu 2
  158622. 17017a1 Merge pull request \fI\%#51361\fP from olipovch/cloud\-sync\-after\-install
  158623. .INDENT 2.0
  158624. .IP \(bu 2
  158625. 8fde3a0 Merge branch \(aq2017.7\(aq into cloud\-sync\-after\-install
  158626. .IP \(bu 2
  158627. ab00151 Fix salt\-cloud sync_after_install functionality
  158628. .UNINDENT
  158629. .UNINDENT
  158630. .IP \(bu 2
  158631. ff54f53 The kitchen nox verifier already takes care of the sinlge \fI\-v\fP flag.
  158632. .IP \(bu 2
  158633. a2aa708 Fix static requirements search bad logic
  158634. .IP \(bu 2
  158635. 621b047 \fIdistro\fP reports Opensuse 15 as Opensuse Leap 15
  158636. .IP \(bu 2
  158637. bc00a26 Ubuntu 18.04 locked requirements files
  158638. .IP \(bu 2
  158639. d5ed9e1 Ubuntu 16.04 locked requirements files
  158640. .IP \(bu 2
  158641. 03879bf Ubuntu 14.04 locked requirements files
  158642. .IP \(bu 2
  158643. c3d7a18 Opensuse 42 locked requirements files
  158644. .IP \(bu 2
  158645. b29d986 Opensuse 15 locked requirements files
  158646. .IP \(bu 2
  158647. 73154d0 Fedora 29 locked requirements files
  158648. .IP \(bu 2
  158649. bf36cd4 Fedora 28 locked requirements files
  158650. .IP \(bu 2
  158651. 52cc5bb Debian 9 locked requirements files
  158652. .IP \(bu 2
  158653. cb4a823 Debian 8 locked requirements files
  158654. .IP \(bu 2
  158655. 2128a79 CentOS 7 locked requirements files
  158656. .IP \(bu 2
  158657. 4a29e93 CentOS 6 locked requirements
  158658. .IP \(bu 2
  158659. 0d96e64 Start handling static(and platform specific) requirements files
  158660. .UNINDENT
  158661. .IP \(bu 2
  158662. 0fc82bd Merge pull request \fI\%#52193\fP from Ch3LL/bp\-47005
  158663. .INDENT 2.0
  158664. .IP \(bu 2
  158665. 1a54fd1 Merge branch \(aq2018.3\(aq into bp\-47005
  158666. .UNINDENT
  158667. .IP \(bu 2
  158668. 0f3cd2a Merge pull request \fI\%#52194\fP from Ch3LL/bp\-52149
  158669. .INDENT 2.0
  158670. .IP \(bu 2
  158671. bff3f3c Merge branch \(aq2018.3\(aq into bp\-52149
  158672. .IP \(bu 2
  158673. 7e459a1 example names parameter in file.managed state
  158674. .INDENT 2.0
  158675. .IP \(bu 2
  158676. f68caa6 Merge branch \(aq2018.3\(aq into bp\-47005
  158677. .UNINDENT
  158678. .UNINDENT
  158679. .IP \(bu 2
  158680. 85be178 Merge pull request \fI\%#52201\fP from max\-arnold/rename\-beacon\-validate
  158681. .INDENT 2.0
  158682. .IP \(bu 2
  158683. e1e9a2b Merge branch \(aq2018.3\(aq into rename\-beacon\-validate
  158684. .UNINDENT
  158685. .IP \(bu 2
  158686. 0383ac3 Merge pull request \fI\%#52189\fP from Ch3LL/merge\-2018.3
  158687. .INDENT 2.0
  158688. .IP \(bu 2
  158689. 9972980 Merge branch \(aq2018.3\(aq into merge\-2018.3
  158690. .IP \(bu 2
  158691. 79962ab Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  158692. .INDENT 2.0
  158693. .IP \(bu 2
  158694. fd6068e Allow overriding some requirements based on distro information
  158695. .IP \(bu 2
  158696. 659ec11 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158697. .INDENT 2.0
  158698. .IP \(bu 2
  158699. 18bbbec We need to nest require \fIreq_win.txt\fP
  158700. .UNINDENT
  158701. .IP \(bu 2
  158702. 956a84c Merge pull request \fI\%#51995\fP from s0undt3ch/2017.7
  158703. .INDENT 2.0
  158704. .IP \(bu 2
  158705. 0bf9d62 Merge remote\-tracking branch \(aqupstream/2017.7.9\(aq into 2017.7
  158706. .IP \(bu 2
  158707. baf776b Merge pull request \fI\%#51974\fP from s0undt3ch/features/nox\-2017.7
  158708. .IP \(bu 2
  158709. ee4df3a Lint fixes
  158710. .IP \(bu 2
  158711. 56f841f Windows needs special treatment
  158712. .IP \(bu 2
  158713. c3cb447 Requirements fixes
  158714. .IP \(bu 2
  158715. 6a67531 We need a fixed winrm\-fs so that dotfiles are also included
  158716. .IP \(bu 2
  158717. 15c6a53 use kitchen\-salt from my fork for now
  158718. .UNINDENT
  158719. .IP \(bu 2
  158720. b745332 Merge pull request \fI\%#51800\fP from dwoz/typo_fix
  158721. .INDENT 2.0
  158722. .IP \(bu 2
  158723. 5bbe5e0 Fix up docstring
  158724. .IP \(bu 2
  158725. 9f3c583 Fix typo in docstring
  158726. .INDENT 2.0
  158727. .IP \(bu 2
  158728. 75acce1 Rename obsolete beacon validation function
  158729. .IP \(bu 2
  158730. d1700f3 Merge branch \(aq2018.3\(aq into bp\-47005
  158731. .UNINDENT
  158732. .UNINDENT
  158733. .UNINDENT
  158734. .UNINDENT
  158735. .IP \(bu 2
  158736. 03f228d Merge pull request \fI\%#52112\fP from Ch3LL/proxy_gs
  158737. .INDENT 2.0
  158738. .IP \(bu 2
  158739. 7ad4758 Update device names in proxy getting started docs
  158740. .INDENT 2.0
  158741. .INDENT 3.5
  158742. .INDENT 0.0
  158743. .IP \(bu 2
  158744. 25ae7c8 remove freebsd\-upstream reference
  158745. .IP \(bu 2
  158746. b70c45c Remove salt FreeBSD repo which is now 2 years out of date
  158747. .INDENT 2.0
  158748. .INDENT 3.5
  158749. .INDENT 0.0
  158750. .IP \(bu 2
  158751. 62e5404 github issue tracker link and sends you to the url for listed issues.
  158752. .IP \(bu 2
  158753. ccf6a06 Replaced a dead link for github issue tracker with another github link for the issue tracker and added a link to show more options for closing issues in commit messages.
  158754. .UNINDENT
  158755. .UNINDENT
  158756. .UNINDENT
  158757. .UNINDENT
  158758. .UNINDENT
  158759. .UNINDENT
  158760. .UNINDENT
  158761. .UNINDENT
  158762. .IP \(bu 2
  158763. \fBPR\fP \fI\%#52190\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  158764. @ \fI2019\-03\-23 01:09:33 UTC\fP
  158765. .INDENT 2.0
  158766. .IP \(bu 2
  158767. 3ac6dbd Merge pull request \fI\%#52190\fP from Ch3LL/merge\-2019.2
  158768. .IP \(bu 2
  158769. 68c02b9 Merge branch \(aq2019.2\(aq into merge\-2019.2
  158770. .UNINDENT
  158771. .IP \(bu 2
  158772. \fBPR\fP \fI\%#52240\fP: (\fI\%soer7022\fP) Fix Typos "swtich" to "switch"
  158773. @ \fI2019\-03\-23 00:08:50 UTC\fP
  158774. .INDENT 2.0
  158775. .IP \(bu 2
  158776. f5fc807 Merge pull request \fI\%#52240\fP from soer7022/patch\-2
  158777. .IP \(bu 2
  158778. d130832 Merge branch \(aq2019.2\(aq into patch\-2
  158779. .IP \(bu 2
  158780. 3b6fdf8 Merge branch \(aq2019.2\(aq into patch\-2
  158781. .IP \(bu 2
  158782. 5db7a3f Fix Typos "swtich" to "switch"
  158783. .INDENT 2.0
  158784. .INDENT 3.5
  158785. .INDENT 0.0
  158786. .IP \(bu 2
  158787. 34d601e Merge branch \(aq2019.2\(aq into merge\-2019.2
  158788. .UNINDENT
  158789. .UNINDENT
  158790. .UNINDENT
  158791. .UNINDENT
  158792. .IP \(bu 2
  158793. \fBISSUE\fP \fI\%#52036\fP: (\fI\%ghost\fP) rsync.synchronized: "An exception occurred in this state: \(aqChanges\(aq should be a dictionary." (refs: \fI\%#52040\fP)
  158794. .IP \(bu 2
  158795. \fBPR\fP \fI\%#52040\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to rsync state
  158796. @ \fI2019\-03\-21 19:08:19 UTC\fP
  158797. .INDENT 2.0
  158798. .IP \(bu 2
  158799. a00245e Merge pull request \fI\%#52040\fP from garethgreenaway/52036_rsync_state_no_changes_when_error
  158800. .IP \(bu 2
  158801. 09d1672 Merge branch \(aq2019.2\(aq into 52036_rsync_state_no_changes_when_error
  158802. .UNINDENT
  158803. .IP \(bu 2
  158804. \fBPR\fP \fI\%#51962\fP: (\fI\%Ch3LL\fP) Update 2019.2.0 release notes with other tojson example
  158805. @ \fI2019\-03\-21 16:37:43 UTC\fP
  158806. .INDENT 2.0
  158807. .IP \(bu 2
  158808. 5387821 Merge pull request \fI\%#51962\fP from Ch3LL/rn_update
  158809. .IP \(bu 2
  158810. f63bae9 Merge branch \(aq2019.2\(aq into rn_update
  158811. .UNINDENT
  158812. .IP \(bu 2
  158813. \fBPR\fP \fI\%#52262\fP: (\fI\%dwoz\fP) Use windows state to bootstrap windows builds
  158814. @ \fI2019\-03\-20 22:12:25 UTC\fP
  158815. .INDENT 2.0
  158816. .IP \(bu 2
  158817. 0fe7f28 Merge pull request \fI\%#52262\fP from dwoz/update_kitcen_2019.2
  158818. .IP \(bu 2
  158819. 49d529d Use windows state to bootstrap windows builds
  158820. .IP \(bu 2
  158821. e2c3f93 Merge branch \(aq2019.2\(aq into rn_update
  158822. .IP \(bu 2
  158823. 164398f Merge branch \(aq2019.2\(aq into rn_update
  158824. .IP \(bu 2
  158825. c04b2a0 Merge branch \(aq2019.2\(aq into rn_update
  158826. .IP \(bu 2
  158827. 9ca6e50 Update doc/topics/releases/2019.2.0.rst
  158828. .IP \(bu 2
  158829. 052f193 add additional formatting to 2019.2.0 release notes
  158830. .IP \(bu 2
  158831. a6ca59a Update 2019.2.0 release notes with other tojson example
  158832. .INDENT 2.0
  158833. .INDENT 3.5
  158834. .INDENT 0.0
  158835. .IP \(bu 2
  158836. 84cd46c Merge branch \(aq52036_rsync_state_no_changes_when_error\(aq of github.com:garethgreenaway/salt into 52036_rsync_state_no_changes_when_error
  158837. .INDENT 2.0
  158838. .IP \(bu 2
  158839. 4a126b3 Merge branch \(aq2019.2\(aq into 52036_rsync_state_no_changes_when_error
  158840. .UNINDENT
  158841. .IP \(bu 2
  158842. d5d3117 Removing debugging statements
  158843. .IP \(bu 2
  158844. 0fb859d Adding a test for the rsync state
  158845. .IP \(bu 2
  158846. 4c678e6 When the retcode is non\-zero, there are no changes so should include the default empty dictionary.
  158847. .IP \(bu 2
  158848. c6ba2e6 Fix lint for test_win_file
  158849. .IP \(bu 2
  158850. 9ada8d9 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  158851. .IP \(bu 2
  158852. f8c0266 Allow overriding some requirements based on distro information
  158853. .IP \(bu 2
  158854. c58c775 Merge pull request \fI\%#52035\fP from Ch3LL/bp\-52012
  158855. .INDENT 2.0
  158856. .IP \(bu 2
  158857. 37666bd Merge branch \(aq2018.3\(aq into bp\-52012
  158858. .UNINDENT
  158859. .IP \(bu 2
  158860. 54ff3fe Merge pull request \fI\%#51935\fP from Ch3LL/py3_doc
  158861. .INDENT 2.0
  158862. .IP \(bu 2
  158863. b217f94 Merge branch \(aq2018.3\(aq into py3_doc
  158864. .IP \(bu 2
  158865. 605bfaf Update futures dependency for python2 only
  158866. .IP \(bu 2
  158867. 072cd84 Update supported python versions in installation docs
  158868. .UNINDENT
  158869. .IP \(bu 2
  158870. 892cdae Merge pull request \fI\%#52038\fP from terminalmage/docs
  158871. .INDENT 2.0
  158872. .IP \(bu 2
  158873. 4d82146 Minor documentation tweak for file.replace state
  158874. .UNINDENT
  158875. .IP \(bu 2
  158876. a7a9754 Merge pull request \fI\%#51896\fP from twangboy/win_disks
  158877. .INDENT 2.0
  158878. .IP \(bu 2
  158879. 057d415 Merge branch \(aq2018.3\(aq into win_disks
  158880. .IP \(bu 2
  158881. 0d419e3 Fix some lint
  158882. .IP \(bu 2
  158883. aa61dab Add tests
  158884. .IP \(bu 2
  158885. 9f6ec53 Add all attached drives to the disks grain
  158886. .UNINDENT
  158887. .IP \(bu 2
  158888. 48d298c Merge pull request \fI\%#51918\fP from twangboy/fix_compat
  158889. .INDENT 2.0
  158890. .IP \(bu 2
  158891. a791901 Fix compat, add tests
  158892. .IP \(bu 2
  158893. 2837bb9 Fix _compat for py3
  158894. .UNINDENT
  158895. .IP \(bu 2
  158896. 02328a6 Merge pull request \fI\%#52030\fP from Ch3LL/bp\-52004
  158897. .INDENT 2.0
  158898. .IP \(bu 2
  158899. b4e3183 Fixed comparison of \fINone\fP with constants
  158900. .UNINDENT
  158901. .IP \(bu 2
  158902. aa82fcc Merge pull request \fI\%#52029\fP from Ch3LL/bp\-52003
  158903. .INDENT 2.0
  158904. .IP \(bu 2
  158905. fcac9f3 Skip Test on Non\-Windows systems
  158906. .IP \(bu 2
  158907. f42d17d Derive from LoaderModuleMockMixin
  158908. .IP \(bu 2
  158909. 5052017 Define __opts__ dict
  158910. .IP \(bu 2
  158911. b7b571e Define __opts__ dict
  158912. .IP \(bu 2
  158913. ee3ad08 Define __opts__ dict
  158914. .IP \(bu 2
  158915. 64d8451 Use default file module
  158916. .IP \(bu 2
  158917. 886ef19 Fix name of makedirs_ method
  158918. .IP \(bu 2
  158919. 4cc5f77 Check for path to be a symlink
  158920. .UNINDENT
  158921. .IP \(bu 2
  158922. 5ff1725 Merge pull request \fI\%#52028\fP from Ch3LL/bp\-50384
  158923. .INDENT 2.0
  158924. .IP \(bu 2
  158925. 6493eb0 Fix issue \fI\%#50381\fP
  158926. .INDENT 2.0
  158927. .INDENT 3.5
  158928. .INDENT 0.0
  158929. .IP \(bu 2
  158930. f2b4ec8 Don\(aqt log debug messages during close
  158931. .UNINDENT
  158932. .UNINDENT
  158933. .UNINDENT
  158934. .UNINDENT
  158935. .IP \(bu 2
  158936. 7ab1281 Merge pull request \fI\%#51936\fP from gtmanfred/2018.3
  158937. .INDENT 2.0
  158938. .IP \(bu 2
  158939. faa3471 Merge branch \(aq2018.3\(aq into 2018.3
  158940. .UNINDENT
  158941. .IP \(bu 2
  158942. 2ebfa22 Merge pull request \fI\%#51967\fP from twangboy/add_compat_tests
  158943. .INDENT 2.0
  158944. .IP \(bu 2
  158945. 2056578 Merge branch \(aq2018.3\(aq into add_compat_tests
  158946. .IP \(bu 2
  158947. e85f004 Merge branch \(aq2018.3\(aq into add_compat_tests
  158948. .IP \(bu 2
  158949. ea69062 Fix lint
  158950. .IP \(bu 2
  158951. eb984f5 Add unit tests for _compat.py
  158952. .UNINDENT
  158953. .IP \(bu 2
  158954. c8e2971 Merge pull request \fI\%#51980\fP from Ch3LL/merge\-2018.3
  158955. .INDENT 2.0
  158956. .IP \(bu 2
  158957. 9adc19e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  158958. .INDENT 2.0
  158959. .IP \(bu 2
  158960. bfaa6a9 Merge pull request \fI\%#51895\fP from twangboy/win_update_2017.7
  158961. .INDENT 2.0
  158962. .IP \(bu 2
  158963. b2cb1eb Merge branch \(aq2017.7\(aq into win_update_2017.7
  158964. .UNINDENT
  158965. .IP \(bu 2
  158966. 7d6280d Merge pull request \fI\%#51875\fP from dwoz/avoid_ssl_race
  158967. .INDENT 2.0
  158968. .IP \(bu 2
  158969. e99654d Merge branch \(aq2017.7\(aq into avoid_ssl_race
  158970. .UNINDENT
  158971. .IP \(bu 2
  158972. c0bb1f7 Merge pull request \fI\%#51850\fP from waynew/cherry\-pick\-ping\-fix
  158973. .INDENT 2.0
  158974. .IP \(bu 2
  158975. 6da495f Fix linter
  158976. .IP \(bu 2
  158977. f78b360 fix reactor ping test
  158978. .UNINDENT
  158979. .IP \(bu 2
  158980. ad7a9ec Merge pull request \fI\%#51893\fP from twangboy/gate_zfs_2017.7
  158981. .INDENT 2.0
  158982. .IP \(bu 2
  158983. e0d58eb Gate zfs module on Windows
  158984. .IP \(bu 2
  158985. f758a10 Avoid race condition when initializing OpenSSL
  158986. .IP \(bu 2
  158987. 0f125db Add __virtual__ to win_update
  158988. .UNINDENT
  158989. .IP \(bu 2
  158990. 864d4be Merge pull request \fI\%#51770\fP from Ch3LL/doc_conf_2017
  158991. .INDENT 2.0
  158992. .IP \(bu 2
  158993. 25d9ca2 Update release versions for the 2017.7 branch
  158994. .UNINDENT
  158995. .IP \(bu 2
  158996. 3cf3099 Merge pull request \fI\%#51774\fP from terminal\-labs/py3\-server\-docs\-update
  158997. .INDENT 2.0
  158998. .IP \(bu 2
  158999. 1f00c89 Added in python 3 server according to the consensus from \fI\%#51748\fP
  159000. .IP \(bu 2
  159001. bfb9d87 added the python3 command for startign the python http server.
  159002. .UNINDENT
  159003. .IP \(bu 2
  159004. b4153d3 Merge pull request \fI\%#51757\fP from twangboy/fix_case_2017.7
  159005. .INDENT 2.0
  159006. .IP \(bu 2
  159007. 6b0b5d2 Fix failing py3 tests
  159008. .IP \(bu 2
  159009. feb29f3 Make recurse and directory case sensitive
  159010. .UNINDENT
  159011. .UNINDENT
  159012. .UNINDENT
  159013. .IP \(bu 2
  159014. 2c4dff6 Merge pull request \fI\%#51905\fP from aplanas/fix_mount
  159015. .INDENT 2.0
  159016. .IP \(bu 2
  159017. ac688df mount: fix extra \-t parameter
  159018. .UNINDENT
  159019. .IP \(bu 2
  159020. 4b2c8cc Merge pull request \fI\%#51815\fP from garethgreenaway/51673_multiple_file_sections_with_excludes
  159021. .INDENT 2.0
  159022. .IP \(bu 2
  159023. 58ef51d Merge branch \(aq2018.3\(aq into 51673_multiple_file_sections_with_excludes
  159024. .IP \(bu 2
  159025. 8c4485d Merge branch \(aq2018.3\(aq into 51673_multiple_file_sections_with_excludes
  159026. .IP \(bu 2
  159027. b55a894 Fixing some code that was not working correctly with Python 3.
  159028. .IP \(bu 2
  159029. 63da8be Fixing a bug that caused excludes to not work as expected when multiple file options were in place, the excludes of the last file section were being used over any previous ones. Including a test to ensure excludes work as expected when multiple file sections are in place.
  159030. .UNINDENT
  159031. .IP \(bu 2
  159032. 1bf3fc8 Merge pull request \fI\%#51867\fP from Oloremo/mysql\-module\-fix\-for\-python3
  159033. .INDENT 2.0
  159034. .IP \(bu 2
  159035. dfcfebd Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159036. .IP \(bu 2
  159037. b6d217c Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159038. .IP \(bu 2
  159039. 9745b0a Fixed typo
  159040. .IP \(bu 2
  159041. 8149e9e Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159042. .IP \(bu 2
  159043. 58d8a2e Merge branch \(aq2018.3\(aq into mysql\-module\-fix\-for\-python3
  159044. .IP \(bu 2
  159045. f964962 Added handling of empty server_version
  159046. .IP \(bu 2
  159047. 58791e9 Decode mysql_version for python3 compatibility
  159048. .UNINDENT
  159049. .IP \(bu 2
  159050. 7f05abf Merge pull request \fI\%#51908\fP from garethgreenaway/51862_icinga_fixes
  159051. .INDENT 2.0
  159052. .IP \(bu 2
  159053. 233dbaf Adding __salt__ to utils/icinga so cmd.run_all is available.
  159054. .INDENT 2.0
  159055. .INDENT 3.5
  159056. .INDENT 0.0
  159057. .IP \(bu 2
  159058. 1e7490c update kubernetesmod in index.rst
  159059. .IP \(bu 2
  159060. 1f3be1c fix import in test
  159061. .IP \(bu 2
  159062. 8572c17 rename kubernetes module to kubernetesmod
  159063. .UNINDENT
  159064. .UNINDENT
  159065. .UNINDENT
  159066. .UNINDENT
  159067. .UNINDENT
  159068. .UNINDENT
  159069. .UNINDENT
  159070. .UNINDENT
  159071. .IP \(bu 2
  159072. \fBPR\fP \fI\%#52032\fP: (\fI\%Ch3LL\fP) Add azure state and execution modules to doc index
  159073. @ \fI2019\-03\-11 15:46:49 UTC\fP
  159074. .INDENT 2.0
  159075. .IP \(bu 2
  159076. 7d6b53c Merge pull request \fI\%#52032\fP from Ch3LL/fix_azure_docs
  159077. .IP \(bu 2
  159078. 8a8a5fa Add azure module ref pages and fix doc errors
  159079. .IP \(bu 2
  159080. 6a1d06a fix additional azure state module doc errors
  159081. .IP \(bu 2
  159082. 65d8f27 Update doc failures in azure modules
  159083. .IP \(bu 2
  159084. 92dbe2a Merge branch \(aq2019.2\(aq into fix_azure_docs
  159085. .UNINDENT
  159086. .IP \(bu 2
  159087. \fBPR\fP \fI\%#52037\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51201\fP into 2019.2
  159088. @ \fI2019\-03\-07 19:45:18 UTC\fP
  159089. .INDENT 2.0
  159090. .IP \(bu 2
  159091. \fBPR\fP \fI\%#51201\fP: (\fI\%terminalmage\fP) Lint: Fix str\-format\-in\-logging, len\-as\-condition, etc. (2) (refs: \fI\%#52037\fP)
  159092. .IP \(bu 2
  159093. 96935c9 Merge pull request \fI\%#52037\fP from Ch3LL/bp\-51201
  159094. .IP \(bu 2
  159095. 1fb0697 Remove develop modules not needed in 2019.2
  159096. .IP \(bu 2
  159097. e3adc2f Lint: Fix str\-format\-in\-logging, len\-as\-condition, etc. (2)
  159098. .UNINDENT
  159099. .IP \(bu 2
  159100. \fBPR\fP \fI\%#52034\fP: (\fI\%terminalmage\fP) fileclient: Fix traceback when template file cannot be cached
  159101. @ \fI2019\-03\-07 19:41:24 UTC\fP
  159102. .INDENT 2.0
  159103. .IP \(bu 2
  159104. 75398e4 Merge pull request \fI\%#52034\fP from terminalmage/fix\-get\-template
  159105. .IP \(bu 2
  159106. 744dfd9 fileclient: Fix traceback when template file cannot be cached
  159107. .UNINDENT
  159108. .IP \(bu 2
  159109. \fBPR\fP \fI\%#51984\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159110. @ \fI2019\-03\-07 17:58:42 UTC\fP
  159111. .INDENT 2.0
  159112. .IP \(bu 2
  159113. 7af4f5c Merge pull request \fI\%#51984\fP from Ch3LL/merge\-2019.2
  159114. .IP \(bu 2
  159115. 54ea40a Merge branch \(aq2019.2\(aq into merge\-2019.2
  159116. .IP \(bu 2
  159117. 227ddbb Fix linter
  159118. .IP \(bu 2
  159119. a168913 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  159120. .INDENT 2.0
  159121. .IP \(bu 2
  159122. c68744a Merge pull request \fI\%#51975\fP from s0undt3ch/features/nox\-2018.3
  159123. .INDENT 2.0
  159124. .IP \(bu 2
  159125. af4ae91 Lint fixes
  159126. .IP \(bu 2
  159127. 33955c9 Windows needs special treatment
  159128. .IP \(bu 2
  159129. d4f899f Requirements fixes
  159130. .IP \(bu 2
  159131. e550c60 We need a fixed winrm\-fs so that dotfiles are also included
  159132. .IP \(bu 2
  159133. ada1ef3 use kitchen\-salt from my fork for now
  159134. .UNINDENT
  159135. .IP \(bu 2
  159136. a689177 Merge pull request \fI\%#51807\fP from Ch3LL/2018.3.5_rn
  159137. .INDENT 2.0
  159138. .IP \(bu 2
  159139. 2c0b85c Add 2018.3.5 release notes
  159140. .UNINDENT
  159141. .IP \(bu 2
  159142. 6aee2c4 Merge pull request \fI\%#51806\fP from twangboy/fix_beacon
  159143. .INDENT 2.0
  159144. .IP \(bu 2
  159145. 2bf6179 Fix some lint
  159146. .IP \(bu 2
  159147. 0f38eea Add lowercase test
  159148. .IP \(bu 2
  159149. 1459985 Make sure drive letter is uppercase for re compare
  159150. .IP \(bu 2
  159151. 7cdc660 Add some tests
  159152. .IP \(bu 2
  159153. 48ae8c6 Fix disk.usage beacon on Windows
  159154. .UNINDENT
  159155. .IP \(bu 2
  159156. da815ba Merge pull request \fI\%#51966\fP from twangboy/use_winapi_com
  159157. .INDENT 2.0
  159158. .IP \(bu 2
  159159. a38300b Use winapi.com instead of coinitialize
  159160. .UNINDENT
  159161. .IP \(bu 2
  159162. 7673c69 Merge pull request \fI\%#51920\fP from twangboy/add_zabbix
  159163. .INDENT 2.0
  159164. .IP \(bu 2
  159165. e2d496c Add zabbix to the Windows builds
  159166. .UNINDENT
  159167. .IP \(bu 2
  159168. 77c2796 Merge pull request \fI\%#51802\fP from garethgreenaway/merge\-2018.3.4
  159169. .INDENT 2.0
  159170. .IP \(bu 2
  159171. 2e20939 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159172. .IP \(bu 2
  159173. 769f002 Merge branch \(aq2018.3.4\(aq into merge\-2018.3.4
  159174. .INDENT 2.0
  159175. .IP \(bu 2
  159176. b53a843 Merge pull request \fI\%#51713\fP from dwoz/gemstestagain_2018.3.4
  159177. .INDENT 2.0
  159178. .IP \(bu 2
  159179. f2c6631 Merge branch \(aq2018.3.4\(aq into gemstestagain_2018.3.4
  159180. .IP \(bu 2
  159181. 1c82d24 Fix ruby gems tests, again
  159182. .UNINDENT
  159183. .UNINDENT
  159184. .UNINDENT
  159185. .IP \(bu 2
  159186. 496525d Merge pull request \fI\%#51930\fP from Ch3LL/release_docs
  159187. .INDENT 2.0
  159188. .IP \(bu 2
  159189. 9a68136 Update release documentation
  159190. .UNINDENT
  159191. .IP \(bu 2
  159192. a027c97 Merge pull request \fI\%#51931\fP from Ch3LL/bp_51298
  159193. .INDENT 2.0
  159194. .IP \(bu 2
  159195. 873cabd Roll back some changes to _compat.py
  159196. .IP \(bu 2
  159197. 1fcb0ff Fix edge case when minion ID is a 16\-character string
  159198. .UNINDENT
  159199. .IP \(bu 2
  159200. 1fa2072 Merge pull request \fI\%#51892\fP from twangboy/gate_zfs
  159201. .INDENT 2.0
  159202. .IP \(bu 2
  159203. fbc2c0c Gate zfs grain on Windows
  159204. .UNINDENT
  159205. .IP \(bu 2
  159206. 89b0991 Merge pull request \fI\%#51836\fP from stratusjerry/backport_49039_2018.3
  159207. .INDENT 2.0
  159208. .IP \(bu 2
  159209. 35fdc4c Update win_pkg.py
  159210. .UNINDENT
  159211. .IP \(bu 2
  159212. c1ab63d Merge pull request \fI\%#51771\fP from Ch3LL/doc_conf_2018
  159213. .INDENT 2.0
  159214. .IP \(bu 2
  159215. 904beb3 [2018.3] change build_type and release in doc/conf.py
  159216. .IP \(bu 2
  159217. 3efcea5 Update release versions for the 2018.3 branch
  159218. .UNINDENT
  159219. .IP \(bu 2
  159220. 98f1b03 Merge pull request \fI\%#51775\fP from garethgreenaway/merge\-2017.7
  159221. .INDENT 2.0
  159222. .IP \(bu 2
  159223. 92ffe03 fixing lint
  159224. .IP \(bu 2
  159225. 73b601d Merge branch \(aq2017.7\(aq into merge\-2017.7
  159226. .IP \(bu 2
  159227. e04f735 Merge pull request \fI\%#51502\fP from ogd\-software/51501\-states\-boto3_route53.py\-fails\-to\-validate\-ALIAS\-A\-records
  159228. .INDENT 2.0
  159229. .IP \(bu 2
  159230. e69ce9d Merge branch \(aq2017.7\(aq into 51501\-states\-boto3_route53.py\-fails\-to\-validate\-ALIAS\-A\-records
  159231. .IP \(bu 2
  159232. 5093406 Implement PEP8 E711 styling fix
  159233. .IP \(bu 2
  159234. 7640e90 Ensure boto3_route53 correctly validates existing ALIAS records
  159235. .IP \(bu 2
  159236. ff633b0 Ensure boto3_route53 survives attempts to validate ALIAS records
  159237. .UNINDENT
  159238. .IP \(bu 2
  159239. 9c128aa Merge pull request \fI\%#51732\fP from s0undt3ch/features/nox\-2017.7
  159240. .INDENT 2.0
  159241. .IP \(bu 2
  159242. 328989d Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159243. .UNINDENT
  159244. .IP \(bu 2
  159245. 99ce48d Merge pull request \fI\%#51712\fP from dwoz/gemstestagain
  159246. .INDENT 2.0
  159247. .IP \(bu 2
  159248. 0d3b227 Fix ruby gems tests, again
  159249. .UNINDENT
  159250. .IP \(bu 2
  159251. 18452c4 Merge pull request \fI\%#51528\fP from twangboy/backport_51471
  159252. .INDENT 2.0
  159253. .IP \(bu 2
  159254. 8c79f02 Merge branch \(aq2017.7\(aq into backport_51471
  159255. .IP \(bu 2
  159256. 20a7ee5 Backport 51471
  159257. .UNINDENT
  159258. .IP \(bu 2
  159259. ee80ce3 Merge pull request \fI\%#51655\fP from garethgreenaway/49661_starting_salt_master_openssl
  159260. .INDENT 2.0
  159261. .IP \(bu 2
  159262. f647b95 Merge branch \(aq2017.7\(aq into 49661_starting_salt_master_openssl
  159263. .IP \(bu 2
  159264. 1831e64 Removing options from libcrypto.OPENSSL_init_crypto so it will simply use the defaults.
  159265. .IP \(bu 2
  159266. 8d0f801 removing salt.crypt from payload.py which is not used and causing salt\-key to break.
  159267. .IP \(bu 2
  159268. a5a54c4 Removing unused import which is causing salt\-master to not start when using openssl 1.1.1\-1.
  159269. .INDENT 2.0
  159270. .INDENT 3.5
  159271. .INDENT 0.0
  159272. .IP \(bu 2
  159273. c9c082c Fix azurearm field list doc error
  159274. .IP \(bu 2
  159275. af0537f Add azure state and execution modules to doc index
  159276. .UNINDENT
  159277. .UNINDENT
  159278. .UNINDENT
  159279. .UNINDENT
  159280. .UNINDENT
  159281. .UNINDENT
  159282. .UNINDENT
  159283. .IP \(bu 2
  159284. \fBPR\fP \fI\%#52004\fP: (\fI\%chdamianos\fP) Fixed comparison of \fINone\fP with constants (refs: \fI\%#52030\fP)
  159285. @ \fI2019\-03\-06 17:41:52 UTC\fP
  159286. .INDENT 2.0
  159287. .IP \(bu 2
  159288. 01bcff0 Merge pull request \fI\%#52004\fP from chdamianos/fix\-constants\-comparison
  159289. .IP \(bu 2
  159290. 6fd60af Fixed comparison of \fINone\fP with constants
  159291. .UNINDENT
  159292. .IP \(bu 2
  159293. \fBPR\fP \fI\%#51981\fP: (\fI\%bryceml\fP) Fix typo in 2019.2.0 release notes
  159294. @ \fI2019\-03\-05 23:59:33 UTC\fP
  159295. .INDENT 2.0
  159296. .IP \(bu 2
  159297. 8d6bb5d Merge pull request \fI\%#51981\fP from bryceml/2019.2
  159298. .IP \(bu 2
  159299. ecf0ef0 Fix typo in 2019.2.0 release notes
  159300. .INDENT 2.0
  159301. .INDENT 3.5
  159302. .INDENT 0.0
  159303. .IP \(bu 2
  159304. a65e621 Adding an additional note warning that the file will not be changed because test=True, but could be changed by other states.
  159305. .IP \(bu 2
  159306. 6c0dcf2 Swapping pchanges for changes in file state.
  159307. .UNINDENT
  159308. .UNINDENT
  159309. .UNINDENT
  159310. .UNINDENT
  159311. .IP \(bu 2
  159312. \fBISSUE\fP \fI\%#51825\fP: (\fI\%OrangeDog\fP) schedule.disable doesn\(aqt work in 2019.2.0 (refs: \fI\%#51855\fP)
  159313. .IP \(bu 2
  159314. \fBPR\fP \fI\%#51855\fP: (\fI\%garethgreenaway\fP) [2019.2] Global enable/disable was being ignored
  159315. @ \fI2019\-03\-05 19:40:34 UTC\fP
  159316. .INDENT 2.0
  159317. .IP \(bu 2
  159318. c3105df Merge pull request \fI\%#51855\fP from garethgreenaway/51825_scheduled_global_enabled
  159319. .IP \(bu 2
  159320. 301e773 Merge branch \(aq51825_scheduled_global_enabled\(aq of github.com:garethgreenaway/salt into 51825_scheduled_global_enabled
  159321. .INDENT 2.0
  159322. .IP \(bu 2
  159323. ae7ab06 Merge branch \(aq2019.2\(aq into 51825_scheduled_global_enabled
  159324. .IP \(bu 2
  159325. ff13833 Merge branch \(aq2019.2\(aq into 51825_scheduled_global_enabled
  159326. .UNINDENT
  159327. .IP \(bu 2
  159328. 9e7e4ed Fixing broken add_job test.
  159329. .IP \(bu 2
  159330. 72466a5 Global enable/disable was being ignored
  159331. .UNINDENT
  159332. .IP \(bu 2
  159333. \fBISSUE\fP \fI\%#51745\fP: (\fI\%fayak\fP) Systemd update 241 on archlinux breaks systemd.py version() function (refs: \fI\%#51946\fP)
  159334. .IP \(bu 2
  159335. \fBPR\fP \fI\%#51946\fP: (\fI\%Ethyling\fP) Fix retrieve systemd version using regex
  159336. @ \fI2019\-03\-05 19:20:19 UTC\fP
  159337. .INDENT 2.0
  159338. .IP \(bu 2
  159339. be28623 Merge pull request \fI\%#51946\fP from Ethyling/fix\-systemd\-version
  159340. .IP \(bu 2
  159341. b557707 Add test for systemd version from git describe
  159342. .IP \(bu 2
  159343. 94809d0 Fix retrieve systemd version using regex
  159344. .UNINDENT
  159345. .IP \(bu 2
  159346. \fBISSUE\fP \fI\%#51816\fP: (\fI\%jkrauz\fP) pillar_ldap broken in 2019.2.0 (refs: \fI\%#51964\fP)
  159347. .IP \(bu 2
  159348. \fBPR\fP \fI\%#51964\fP: (\fI\%dwoz\fP) [2019.2] Make sure ldap attrs are string types on python 2
  159349. @ \fI2019\-03\-05 19:18:30 UTC\fP
  159350. .INDENT 2.0
  159351. .IP \(bu 2
  159352. c310022 Merge pull request \fI\%#51964\fP from dwoz/issue_51816
  159353. .IP \(bu 2
  159354. a879140 Merge branch \(aq2019.2\(aq into issue_51816
  159355. .IP \(bu 2
  159356. 0e61cf3 Fix linter errors/warnings
  159357. .IP \(bu 2
  159358. 171217a Revert debug logging
  159359. .IP \(bu 2
  159360. 8c641c6 make LDAP attr defaults string types on py2
  159361. .UNINDENT
  159362. .IP \(bu 2
  159363. \fBPR\fP \fI\%#51976\fP: (\fI\%s0undt3ch\fP) [2019.2] Nox fixes
  159364. @ \fI2019\-03\-05 18:56:49 UTC\fP
  159365. .INDENT 2.0
  159366. .IP \(bu 2
  159367. cb817f1 Merge pull request \fI\%#51976\fP from s0undt3ch/features/nox\-2019.2
  159368. .IP \(bu 2
  159369. 0b4e68c Lint fixes
  159370. .IP \(bu 2
  159371. 257b3fc Windows needs special treatment
  159372. .IP \(bu 2
  159373. b298da0 Requirements fixes
  159374. .IP \(bu 2
  159375. 4f45a7e We need a fixed winrm\-fs so that dotfiles are also included
  159376. .IP \(bu 2
  159377. fa70af2 use kitchen\-salt from my fork for now
  159378. .UNINDENT
  159379. .IP \(bu 2
  159380. \fBPR\fP \fI\%#51761\fP: (\fI\%sdodsley\fP) Add new module to release notes for 2019.2.0
  159381. @ \fI2019\-03\-05 09:44:56 UTC\fP
  159382. .INDENT 2.0
  159383. .IP \(bu 2
  159384. \fBPR\fP \fI\%#51681\fP: (\fI\%sdodsley\fP) Add new module to release notes for 2019.2.0 (refs: \fI\%#51761\fP)
  159385. .IP \(bu 2
  159386. f867e6e Merge pull request \fI\%#51761\fP from sdodsley/cheery_pick_fb_releasenotes
  159387. .IP \(bu 2
  159388. 80192c8 Add new module to release notes for 2019.2.0
  159389. .UNINDENT
  159390. .IP \(bu 2
  159391. \fBPR\fP \fI\%#51799\fP: (\fI\%s0undt3ch\fP) Catch attribute error
  159392. @ \fI2019\-03\-05 09:38:08 UTC\fP
  159393. .INDENT 2.0
  159394. .IP \(bu 2
  159395. 08e3956 Merge pull request \fI\%#51799\fP from s0undt3ch/2019.2
  159396. .IP \(bu 2
  159397. 342244a Merge branch \(aq2019.2\(aq into 2019.2
  159398. .IP \(bu 2
  159399. 3e8a17e Catch attribute error
  159400. .UNINDENT
  159401. .IP \(bu 2
  159402. \fBPR\fP \fI\%#51810\fP: (\fI\%Ch3LL\fP) Add 2019.2.1 release notes
  159403. @ \fI2019\-03\-05 09:26:47 UTC\fP
  159404. .INDENT 2.0
  159405. .IP \(bu 2
  159406. ff5d7d6 Merge pull request \fI\%#51810\fP from Ch3LL/2019.2.1_rn
  159407. .IP \(bu 2
  159408. aaee5fa Add 2019.2.1 release notes
  159409. .UNINDENT
  159410. .IP \(bu 2
  159411. \fBISSUE\fP \fI\%#51824\fP: (\fI\%OrangeDog\fP) schedule.present state not idempotent in 2019.2.0 (refs: \fI\%#51849\fP)
  159412. .IP \(bu 2
  159413. \fBPR\fP \fI\%#51849\fP: (\fI\%garethgreenaway\fP) [2019.2] Fix to schedule.list function to filter out attributes that are None
  159414. @ \fI2019\-03\-01 19:56:17 UTC\fP
  159415. .INDENT 2.0
  159416. .IP \(bu 2
  159417. \fBPR\fP \fI\%#51647\fP: (\fI\%dwoz\fP) [develop] increase batch test timeout on windows (refs: \fI\%#51849\fP)
  159418. .IP \(bu 2
  159419. 3732004 Merge pull request \fI\%#51849\fP from garethgreenaway/51824_splay_breaking_schedule_present
  159420. .IP \(bu 2
  159421. a0af441 Merge branch \(aq2019.2\(aq into 51824_splay_breaking_schedule_present
  159422. .UNINDENT
  159423. .IP \(bu 2
  159424. \fBPR\fP \fI\%#51878\fP: (\fI\%Ch3LL\fP) Add new terraform salt\-ssh roster feature to release notes
  159425. @ \fI2019\-02\-27 19:18:49 UTC\fP
  159426. .INDENT 2.0
  159427. .IP \(bu 2
  159428. 3fdb564 Merge pull request \fI\%#51878\fP from Ch3LL/terraform_rn
  159429. .IP \(bu 2
  159430. 502d197 fix spelling error in release notes
  159431. .IP \(bu 2
  159432. 4d53b41 Add new terraform salt\-ssh roster feature to release notes
  159433. .UNINDENT
  159434. .IP \(bu 2
  159435. \fBPR\fP \fI\%#51837\fP: (\fI\%stratusjerry\fP) Update win_pkg.py
  159436. @ \fI2019\-02\-26 16:51:35 UTC\fP
  159437. .INDENT 2.0
  159438. .IP \(bu 2
  159439. \fBPR\fP \fI\%#49039\fP: (\fI\%stratusjerry\fP) Update win_pkg.py (refs: \fI\%#51836\fP, \fI\%#51837\fP)
  159440. .IP \(bu 2
  159441. e63c872 Merge pull request \fI\%#51837\fP from stratusjerry/backport_49039_2019.2
  159442. .IP \(bu 2
  159443. 531b23d Update win_pkg.py
  159444. .IP \(bu 2
  159445. 39b5645 Splay defaulting to None internally, broke schedule.present causing it to always report differences when a state is run. Updating the schedule.list function to check if an attribute is None and remove it.
  159446. .UNINDENT
  159447. .IP \(bu 2
  159448. \fBPR\fP \fI\%#51772\fP: (\fI\%Ch3LL\fP) Update release versions for the 2019.2 branch
  159449. @ \fI2019\-02\-25 14:16:40 UTC\fP
  159450. .INDENT 2.0
  159451. .IP \(bu 2
  159452. 27dd9fb Merge pull request \fI\%#51772\fP from Ch3LL/doc_conf_2019
  159453. .IP \(bu 2
  159454. f28cc9b [2019.2] change build_type and release in doc/conf.py
  159455. .IP \(bu 2
  159456. 4c670e2 Update release versions for the 2019.2 branch
  159457. .UNINDENT
  159458. .IP \(bu 2
  159459. \fBPR\fP \fI\%#51776\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159460. @ \fI2019\-02\-24 22:08:58 UTC\fP
  159461. .INDENT 2.0
  159462. .IP \(bu 2
  159463. 45425a4 Merge pull request \fI\%#51776\fP from garethgreenaway/merge\-2018.3
  159464. .IP \(bu 2
  159465. 186306a reverting change in release notes, adding change to doc/ref/modules/all/index.rst.
  159466. .IP \(bu 2
  159467. 1ef140a Fixing lint.
  159468. .IP \(bu 2
  159469. 6173578 Fixing lint errors
  159470. .IP \(bu 2
  159471. 38dcab9 fixing lint
  159472. .IP \(bu 2
  159473. e37fc20 Merge branch \(aq2018.3\(aq into merge\-2018.3
  159474. .IP \(bu 2
  159475. 7e3e71c Merge pull request \fI\%#51756\fP from twangboy/fix_case_sensitive
  159476. .INDENT 2.0
  159477. .IP \(bu 2
  159478. 4c55040 Fix failing py3 tests
  159479. .IP \(bu 2
  159480. 64f45f8 Make recurse and directory case sensitive
  159481. .UNINDENT
  159482. .IP \(bu 2
  159483. e75fc1c Merge pull request \fI\%#51747\fP from ymasson/fix_mysql_grants
  159484. .INDENT 2.0
  159485. .IP \(bu 2
  159486. f614dd7 Fix escaping for special charaters
  159487. .UNINDENT
  159488. .IP \(bu 2
  159489. b1f7e85 Merge pull request \fI\%#51387\fP from chrillux/make\-binarydata\-output\-possible
  159490. .INDENT 2.0
  159491. .IP \(bu 2
  159492. 010393e Make binary data output possible
  159493. .UNINDENT
  159494. .IP \(bu 2
  159495. 3475813 Merge pull request \fI\%#51694\fP from assafShapira/2018.3
  159496. .INDENT 2.0
  159497. .IP \(bu 2
  159498. 895b97a Merge branch \(aq2018.3\(aq into 2018.3
  159499. .IP \(bu 2
  159500. bc2d27a fix minion bootstrapping issue "/usr/lib/python2.7/site\-packages/salt/utils/cloud.py", line 472 Configuration value u\(aqprovider\(aq needs to be set
  159501. .UNINDENT
  159502. .IP \(bu 2
  159503. c7136cb Merge pull request \fI\%#51738\fP from garethgreenaway/nftables_cleanup
  159504. .INDENT 2.0
  159505. .IP \(bu 2
  159506. 8201d1e Fixing lint.
  159507. .IP \(bu 2
  159508. d681064 Merge branch \(aq2018.3\(aq into nftables_cleanup
  159509. .IP \(bu 2
  159510. e37458e Fixing a couple tests.
  159511. .IP \(bu 2
  159512. ed1b743 Additional cleanup. Adding additional documentation for state module.
  159513. .IP \(bu 2
  159514. dc4afbb More updates to nftables module, state modules, and unit tests.
  159515. .IP \(bu 2
  159516. 3ec96e3 initial work to cleanup the nftables module, state module, and the unit tests.
  159517. .UNINDENT
  159518. .IP \(bu 2
  159519. 2121049 Merge pull request \fI\%#51733\fP from s0undt3ch/features/nox\-2018.3
  159520. .INDENT 2.0
  159521. .IP \(bu 2
  159522. 97532c2 Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159523. .UNINDENT
  159524. .IP \(bu 2
  159525. f4adf33 Merge pull request \fI\%#51728\fP from gtmanfred/virtualnames
  159526. .INDENT 2.0
  159527. .IP \(bu 2
  159528. 61b4390 fix modulenames from virtualnames tests
  159529. .UNINDENT
  159530. .IP \(bu 2
  159531. d681fb9 Merge pull request \fI\%#51721\fP from dwoz/solarisipstests
  159532. .INDENT 2.0
  159533. .IP \(bu 2
  159534. 3263d31 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into solarisipstests
  159535. .UNINDENT
  159536. .IP \(bu 2
  159537. fb0a538 Merge pull request \fI\%#51676\fP from Ch3LL/merge\-2018.3.4
  159538. .INDENT 2.0
  159539. .IP \(bu 2
  159540. 8111479 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159541. .UNINDENT
  159542. .IP \(bu 2
  159543. e08f08d Merge pull request \fI\%#50812\fP from gtmanfred/virtualnames
  159544. .INDENT 2.0
  159545. .IP \(bu 2
  159546. d59952f Merge branch \(aq2018.3\(aq into virtualnames
  159547. .IP \(bu 2
  159548. 33bb5bf fix use of virtualname
  159549. .INDENT 2.0
  159550. .IP \(bu 2
  159551. 2ca1253 Merge branch \(aqmerge\-2018.3.4\(aq of github.com:Ch3LL/salt into merge\-2018.3.4
  159552. .INDENT 2.0
  159553. .IP \(bu 2
  159554. 6d6910a Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159555. .UNINDENT
  159556. .IP \(bu 2
  159557. b5a6265 Fix ruby gems tests, again
  159558. .IP \(bu 2
  159559. 05f2797 Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159560. .IP \(bu 2
  159561. 9f0999f Merge branch \(aq2018.3\(aq into merge\-2018.3.4
  159562. .IP \(bu 2
  159563. 139daa8 Merge branch \(aq2018.3.4\(aq into 2018.3
  159564. .INDENT 2.0
  159565. .IP \(bu 2
  159566. 9741289 Merge pull request \fI\%#51646\fP from dwoz/batch_exit_2018.3.4
  159567. .INDENT 2.0
  159568. .IP \(bu 2
  159569. a8f25bb increase batch test timeout on windows
  159570. .INDENT 2.0
  159571. .INDENT 3.5
  159572. .INDENT 0.0
  159573. .IP \(bu 2
  159574. 9caafec Skip solarisips when not on solaris
  159575. .UNINDENT
  159576. .UNINDENT
  159577. .UNINDENT
  159578. .UNINDENT
  159579. .UNINDENT
  159580. .UNINDENT
  159581. .UNINDENT
  159582. .IP \(bu 2
  159583. 31c6785 Merge pull request \fI\%#51714\fP from dwoz/gemstestagain_2018.3
  159584. .INDENT 2.0
  159585. .IP \(bu 2
  159586. fab74bb Fix ruby gems tests, again
  159587. .UNINDENT
  159588. .IP \(bu 2
  159589. 39aadfb Merge pull request \fI\%#51689\fP from gtmanfred/2018.3
  159590. .INDENT 2.0
  159591. .IP \(bu 2
  159592. 8c35d51 fix import
  159593. .IP \(bu 2
  159594. 6a55cfdf specify minimum version of shade module
  159595. .UNINDENT
  159596. .IP \(bu 2
  159597. a475b70 Merge pull request \fI\%#51469\fP from s0undt3ch/hotfix/fix\-suse\-locale\-docker
  159598. .INDENT 2.0
  159599. .IP \(bu 2
  159600. 14f49b5 Don\(aqt prevent \fIget_locale\fP from working when running under docker
  159601. .UNINDENT
  159602. .IP \(bu 2
  159603. a59585d Merge pull request \fI\%#51671\fP from Ch3LL/merge\-2018.3
  159604. .INDENT 2.0
  159605. .IP \(bu 2
  159606. 64322db Fix is_windows utils call
  159607. .IP \(bu 2
  159608. a5c8df0 Fix pylint
  159609. .IP \(bu 2
  159610. 547889b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  159611. .INDENT 2.0
  159612. .IP \(bu 2
  159613. bcc13db Merge pull request \fI\%#51562\fP from gilbrechbuhler/fix_rabbitmq_policy_change_check
  159614. .INDENT 2.0
  159615. .IP \(bu 2
  159616. ed2b1e1 Fix RabbitMQ policy definition update check
  159617. .UNINDENT
  159618. .IP \(bu 2
  159619. cafaa98 Merge pull request \fI\%#51648\fP from dwoz/increase_wait
  159620. .INDENT 2.0
  159621. .IP \(bu 2
  159622. e2377a9 Merge branch \(aq2017.7\(aq into increase_wait
  159623. .UNINDENT
  159624. .IP \(bu 2
  159625. e3d28d9 Merge pull request \fI\%#51643\fP from dwoz/batch_exit
  159626. .INDENT 2.0
  159627. .IP \(bu 2
  159628. 42d1d02 increase batch test timeout on windows
  159629. .IP \(bu 2
  159630. 7c2d7a4 Increase minion wait for slow boxes
  159631. .UNINDENT
  159632. .IP \(bu 2
  159633. b5ae53a Merge pull request \fI\%#51631\fP from Ch3LL/lint\-2017
  159634. .INDENT 2.0
  159635. .IP \(bu 2
  159636. c0aa4dc Fix linter by ignoring async await check.
  159637. .IP \(bu 2
  159638. 396622c Merge branch \(aq2017.7\(aq into lint\-2017
  159639. .UNINDENT
  159640. .IP \(bu 2
  159641. ba8d0ea Merge pull request \fI\%#51547\fP from s0undt3ch/2017.7
  159642. .INDENT 2.0
  159643. .IP \(bu 2
  159644. 8e009e0 Allow NOT to install pip dependencies
  159645. .UNINDENT
  159646. .IP \(bu 2
  159647. 30ce509 Merge pull request \fI\%#51182\fP from lmf\-mx/darwin\-plist\-update
  159648. .INDENT 2.0
  159649. .IP \(bu 2
  159650. 4297c0d Merge branch \(aq2017.7\(aq into darwin\-plist\-update
  159651. .UNINDENT
  159652. .IP \(bu 2
  159653. 68ac07f Merge pull request \fI\%#51442\fP from dwoz/multi_master
  159654. .INDENT 2.0
  159655. .IP \(bu 2
  159656. 40cb4db Merge branch \(aq2017.7\(aq into multi_master
  159657. .IP \(bu 2
  159658. 2dc5171 Hanlde multi_master failover when daemonized
  159659. .UNINDENT
  159660. .IP \(bu 2
  159661. 8df083c Merge pull request \fI\%#51608\fP from dwoz/wait_minions_2017.7
  159662. .INDENT 2.0
  159663. .IP \(bu 2
  159664. c55359f fix linter
  159665. .IP \(bu 2
  159666. 4702e22 Wait for minions to be pingable before starting tests
  159667. .INDENT 2.0
  159668. .IP \(bu 2
  159669. 5afa0a1 Merge branch \(aq2017.7\(aq into darwin\-plist\-update
  159670. .IP \(bu 2
  159671. f46e8be Fix service name in minion plist
  159672. .INDENT 2.0
  159673. .INDENT 3.5
  159674. .INDENT 0.0
  159675. .IP \(bu 2
  159676. 1da9cd9 Fix pylint on 2017.7
  159677. .UNINDENT
  159678. .UNINDENT
  159679. .UNINDENT
  159680. .UNINDENT
  159681. .UNINDENT
  159682. .IP \(bu 2
  159683. 39122ca Merge pull request \fI\%#51589\fP from dwoz/script_fix_2017.7
  159684. .INDENT 2.0
  159685. .IP \(bu 2
  159686. 8697ce7 Disable pylint checks, only for 2017.7
  159687. .IP \(bu 2
  159688. e5972f5 Use the code directory instead of cwd for python path
  159689. .UNINDENT
  159690. .UNINDENT
  159691. .UNINDENT
  159692. .IP \(bu 2
  159693. b8764fd Merge pull request \fI\%#51680\fP from Ch3LL/bp\-50336
  159694. .INDENT 2.0
  159695. .IP \(bu 2
  159696. 3502dbb states.gpg: fix missing existing keys; modules.gpg: fix set trust level command
  159697. .UNINDENT
  159698. .UNINDENT
  159699. .IP \(bu 2
  159700. \fBPR\fP \fI\%#51734\fP: (\fI\%s0undt3ch\fP) [2019.2] Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159701. @ \fI2019\-02\-21 17:39:29 UTC\fP
  159702. .INDENT 2.0
  159703. .IP \(bu 2
  159704. 1894082 Merge pull request \fI\%#51734\fP from s0undt3ch/features/nox\-2019.2
  159705. .IP \(bu 2
  159706. 01b74c0 Add initial nox configuration. Tell \fItox\fP\(aqers to use \fInox\fP\(aq.
  159707. .UNINDENT
  159708. .IP \(bu 2
  159709. \fBPR\fP \fI\%#51707\fP: (\fI\%isbm\fP) Bugfix: pillar refresh
  159710. @ \fI2019\-02\-21 15:12:49 UTC\fP
  159711. .INDENT 2.0
  159712. .IP \(bu 2
  159713. 74db589 Merge pull request \fI\%#51707\fP from isbm/isbm\-pillar\-refresh\-fix
  159714. .IP \(bu 2
  159715. 269ae76 Refresh matchers and beacons on pillar refresh
  159716. .UNINDENT
  159717. .IP \(bu 2
  159718. \fBPR\fP \fI\%#51674\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  159719. @ \fI2019\-02\-20 17:35:07 UTC\fP
  159720. .INDENT 2.0
  159721. .IP \(bu 2
  159722. 82cbd98 Merge pull request \fI\%#51674\fP from Ch3LL/merge\-2019.2
  159723. .IP \(bu 2
  159724. 4171271 Fix pylint, remove unused import
  159725. .IP \(bu 2
  159726. 3f14619 Remove skipif and change expected return for solarisips test
  159727. .IP \(bu 2
  159728. d3660d5 Merge branch \(aq2019.2\(aq into merge\-2019.2
  159729. .UNINDENT
  159730. .IP \(bu 2
  159731. \fBPR\fP \fI\%#51715\fP: (\fI\%dwoz\fP) [2019.2] Fix ruby gems tests, again
  159732. @ \fI2019\-02\-19 21:44:21 UTC\fP
  159733. .INDENT 2.0
  159734. .IP \(bu 2
  159735. 7a82c65 Merge pull request \fI\%#51715\fP from dwoz/gemstestagain_2019.2
  159736. .IP \(bu 2
  159737. 95ce288 Fix ruby gems tests, again
  159738. .IP \(bu 2
  159739. 043efa0 Skip solarisips when not on solaris
  159740. .IP \(bu 2
  159741. 7ed0d7d Fix ruby gems tests, again
  159742. .IP \(bu 2
  159743. b46eac3 Merge branch \(aq2019.2\(aq into merge\-2019.2
  159744. .UNINDENT
  159745. .IP \(bu 2
  159746. \fBPR\fP \fI\%#51561\fP: (\fI\%isbm\fP) SaltSSH: fix delay when creating thin TAR
  159747. @ \fI2019\-02\-19 10:15:47 UTC\fP
  159748. .INDENT 2.0
  159749. .IP \(bu 2
  159750. 0bd2d6e Merge pull request \fI\%#51561\fP from isbm/isbm\-saltssh\-thintar\-delay\-fix
  159751. .IP \(bu 2
  159752. 2b02975 Give up on sync for Py3 because of the way tests for py2 are written here
  159753. .IP \(bu 2
  159754. f79c81a Update UT mocking, adjusting for temporary file
  159755. .IP \(bu 2
  159756. 2f90054 Use temporary filename instead of output directly to the "thin.tgz"
  159757. .IP \(bu 2
  159758. d841164 Copy over the result, cleanup afterwards
  159759. .IP \(bu 2
  159760. c6792ee Add a function that reserves temporary filename for further tarball generation
  159761. .UNINDENT
  159762. .IP \(bu 2
  159763. \fBPR\fP \fI\%#51678\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2019.2.0.rc1 to 2019.2
  159764. @ \fI2019\-02\-17 19:02:33 UTC\fP
  159765. .INDENT 2.0
  159766. .IP \(bu 2
  159767. 5f9764a Merge pull request \fI\%#51678\fP from Ch3LL/merge\-2019.2.0.rc
  159768. .IP \(bu 2
  159769. f8372ca Merge branch \(aq2019.2\(aq into merge\-2019.2.0.rc
  159770. .UNINDENT
  159771. .IP \(bu 2
  159772. \fBISSUE\fP \fI\%#51503\fP: (\fI\%garethhowell\fP) smartos.image_present fails with "does not exist" (refs: \fI\%#51383\fP)
  159773. .IP \(bu 2
  159774. \fBISSUE\fP \fI\%#51351\fP: (\fI\%garethhowell\fP) Exception using smartos.vm_present to create docker zone (refs: \fI\%#51383\fP)
  159775. .IP \(bu 2
  159776. \fBPR\fP \fI\%#51679\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51383\fP into 2019.2
  159777. @ \fI2019\-02\-16 00:31:06 UTC\fP
  159778. .INDENT 2.0
  159779. .IP \(bu 2
  159780. \fBPR\fP \fI\%#51383\fP: (\fI\%sjorge\fP) imgadm module should deal with invalid images better (refs: \fI\%#51679\fP)
  159781. .IP \(bu 2
  159782. 2036c8a Merge pull request \fI\%#51679\fP from Ch3LL/bp\-51383
  159783. .IP \(bu 2
  159784. e4971fc imgadm module should deal with invalid images better
  159785. .IP \(bu 2
  159786. 58f2407 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  159787. .INDENT 2.0
  159788. .IP \(bu 2
  159789. 6292f86 Revert "Remove custom grains module from 2018.3 branch"
  159790. .IP \(bu 2
  159791. 92bd6b9 Fix salt.utils.is_windows call
  159792. .IP \(bu 2
  159793. ffa2f5f Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  159794. .IP \(bu 2
  159795. a8898f6 Merge pull request \fI\%#51635\fP from lomeroe/lgpo_boolean_element_fix
  159796. .INDENT 2.0
  159797. .IP \(bu 2
  159798. b97c2b2 Merge branch \(aq2018.3\(aq into lgpo_boolean_element_fix
  159799. .IP \(bu 2
  159800. 5a98fb9 Merge branch \(aq2018.3\(aq into lgpo_boolean_element_fix
  159801. .UNINDENT
  159802. .IP \(bu 2
  159803. abd3760 Merge pull request \fI\%#51610\fP from garethgreenaway/51266_schedule_enable_disable_break_save
  159804. .INDENT 2.0
  159805. .IP \(bu 2
  159806. fbacb35 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  159807. .UNINDENT
  159808. .IP \(bu 2
  159809. 6765eea Merge pull request \fI\%#51649\fP from dwoz/increase_wait_2018.3
  159810. .INDENT 2.0
  159811. .IP \(bu 2
  159812. 9c964ef Merge branch \(aq2018.3\(aq into increase_wait_2018.3
  159813. .UNINDENT
  159814. .IP \(bu 2
  159815. 852a6be Merge pull request \fI\%#51644\fP from dwoz/batch_exit_2018.3
  159816. .INDENT 2.0
  159817. .IP \(bu 2
  159818. 1087d10 increase batch test timeout on windows
  159819. .IP \(bu 2
  159820. 918030e Increase minion wait for slow boxes
  159821. .IP \(bu 2
  159822. 3d52b26 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  159823. .UNINDENT
  159824. .IP \(bu 2
  159825. dadf414 Merge pull request \fI\%#51637\fP from twangboy/backport_50887_2018.3
  159826. .INDENT 2.0
  159827. .IP \(bu 2
  159828. d8d2b86 backport \fI\%#50887\fP
  159829. .UNINDENT
  159830. .IP \(bu 2
  159831. a55e8f6 Merge pull request \fI\%#51626\fP from twangboy/fix_lgpo_2018.3
  159832. .INDENT 2.0
  159833. .IP \(bu 2
  159834. b2c9c3b Use makedirs instead of mkdir
  159835. .INDENT 2.0
  159836. .INDENT 3.5
  159837. .INDENT 0.0
  159838. .IP \(bu 2
  159839. 2be2f42 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  159840. .UNINDENT
  159841. .UNINDENT
  159842. .UNINDENT
  159843. .UNINDENT
  159844. .IP \(bu 2
  159845. 0f1a411 Merge pull request \fI\%#51187\fP from menglong81/fix\-broken\-thing
  159846. .INDENT 2.0
  159847. .IP \(bu 2
  159848. 298ad5c Merge branch \(aq2018.3\(aq into fix\-broken\-thing
  159849. .IP \(bu 2
  159850. d879d18 fix broken network.py
  159851. .IP \(bu 2
  159852. 76770f3 ss commmand replace to netstat command
  159853. .IP \(bu 2
  159854. 241707e ss commmand replace to netstat command
  159855. .INDENT 2.0
  159856. .INDENT 3.5
  159857. .INDENT 0.0
  159858. .IP \(bu 2
  159859. deeefc7 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  159860. .UNINDENT
  159861. .UNINDENT
  159862. .UNINDENT
  159863. .UNINDENT
  159864. .IP \(bu 2
  159865. 7ed5189 Merge pull request \fI\%#51613\fP from twangboy/fix_51566
  159866. .INDENT 2.0
  159867. .IP \(bu 2
  159868. 1206a94 Merge branch \(aq2018.3\(aq into fix_51566
  159869. .UNINDENT
  159870. .IP \(bu 2
  159871. 8b06d06 Merge pull request \fI\%#51630\fP from twangboy/add_tests_51534
  159872. .INDENT 2.0
  159873. .IP \(bu 2
  159874. ddc017c Merge branch \(aq2018.3\(aq into add_tests_51534
  159875. .UNINDENT
  159876. .IP \(bu 2
  159877. c4bbe1a Merge pull request \fI\%#51177\fP from nullify005/51069\-ri\-and\-rdoc\-removed
  159878. .INDENT 2.0
  159879. .IP \(bu 2
  159880. 6b1a201 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  159881. .IP \(bu 2
  159882. f339608 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  159883. .IP \(bu 2
  159884. e586370 Merge branch \(aq2018.3\(aq into 51069\-ri\-and\-rdoc\-removed
  159885. .IP \(bu 2
  159886. 13d3288 Fix lint issues
  159887. .IP \(bu 2
  159888. 5de5e64 Update tests
  159889. .IP \(bu 2
  159890. 22eda16 Fix lint violations
  159891. .IP \(bu 2
  159892. 2e6252c Support rubygems 3 cli param changes
  159893. .INDENT 2.0
  159894. .INDENT 3.5
  159895. .INDENT 0.0
  159896. .IP \(bu 2
  159897. 9e3a01b Use existing file instead of tzutil
  159898. .IP \(bu 2
  159899. 30c1832 Use tempfile to get temp dir
  159900. .IP \(bu 2
  159901. e3d3c5a Add tests for issue 51309
  159902. .IP \(bu 2
  159903. 1168141 Add test for explicit lists
  159904. .IP \(bu 2
  159905. 84f5d63 Merge branch \(aq2018.3\(aq into fix_51566
  159906. .IP \(bu 2
  159907. 7376cb9 Handle explicit lists properly
  159908. .INDENT 2.0
  159909. .INDENT 3.5
  159910. .INDENT 0.0
  159911. .IP \(bu 2
  159912. 28fc070 Merge branch \(aq2018.3\(aq into 51266_schedule_enable_disable_break_save
  159913. .IP \(bu 2
  159914. 0760133 adding integration.scheduler.test_helpers to various files to by pass the test_module_name_source_match check.
  159915. .IP \(bu 2
  159916. 1552fba lint cleanup
  159917. .IP \(bu 2
  159918. 086066b Adding a test to ensure _get_schedule which is used by the save functionality works when there is an enabled attribute.
  159919. .IP \(bu 2
  159920. 1c6d4fb When looping through the schedule to remove hidden attributes, we should only do that if the item in question is a dictionary. It could be the attribute that determines if the entire scheudle is enabled or disable.
  159921. .IP \(bu 2
  159922. 5ed8eb6 Properly create the value for a "True" boolean element item
  159923. .UNINDENT
  159924. .UNINDENT
  159925. .UNINDENT
  159926. .UNINDENT
  159927. .UNINDENT
  159928. .UNINDENT
  159929. .UNINDENT
  159930. .IP \(bu 2
  159931. f1e29c8 Merge pull request \fI\%#51548\fP from s0undt3ch/2018.3
  159932. .INDENT 2.0
  159933. .IP \(bu 2
  159934. 611065e Merge branch \(aq2018.3\(aq into 2018.3
  159935. .UNINDENT
  159936. .IP \(bu 2
  159937. 00a6246 Merge pull request \fI\%#51622\fP from brejoc/2018.3\-empty\-job\-workaround
  159938. .INDENT 2.0
  159939. .IP \(bu 2
  159940. d263410 Prevents crash when there is no job entry
  159941. .IP \(bu 2
  159942. 5342305 Allow NOT to install pip dependencies
  159943. .UNINDENT
  159944. .IP \(bu 2
  159945. fdb13a3 Merge pull request \fI\%#51523\fP from lomeroe/solarisips_fixes
  159946. .INDENT 2.0
  159947. .IP \(bu 2
  159948. e8e91e3 Merge branch \(aq2018.3\(aq into solarisips_fixes
  159949. .IP \(bu 2
  159950. b7bfe17 lint fixes
  159951. .IP \(bu 2
  159952. cdaccf4 add tests to validate command being sent to cmd.run_all
  159953. .IP \(bu 2
  159954. eaa229d add unit test
  159955. .IP \(bu 2
  159956. 432428d Don\(aqt assume that each item in "pkgs" is a dict (as packed by pkg.installed state).
  159957. .UNINDENT
  159958. .IP \(bu 2
  159959. e3d5fbe Merge pull request \fI\%#51577\fP from garethgreenaway/merge\-2017.7
  159960. .INDENT 2.0
  159961. .IP \(bu 2
  159962. e060b97 Merge branch \(aq2018.3\(aq into merge\-2017.7
  159963. .IP \(bu 2
  159964. 3eee038 Fixing a couple issues that did not merge properly.
  159965. .IP \(bu 2
  159966. 25b2ca6 Merge branch \(aq2018.3\(aq into merge\-2017.7
  159967. .IP \(bu 2
  159968. c337fce Merge branch \(aq2018.3\(aq into merge\-2017.7
  159969. .IP \(bu 2
  159970. f9d6828 Fixing missed merge.
  159971. .IP \(bu 2
  159972. a041775 Merge branch \(aq2017.7\(aq into merge\-2017.7
  159973. .INDENT 2.0
  159974. .IP \(bu 2
  159975. 61889ba Merge pull request \fI\%#51452\fP from terminalmage/bp\-50963
  159976. .INDENT 2.0
  159977. .IP \(bu 2
  159978. 54d2e02 Merge branch \(aq2017.7\(aq into bp\-50963
  159979. .UNINDENT
  159980. .IP \(bu 2
  159981. 0c989f0 Merge pull request \fI\%#51437\fP from twangboy/fix_raise_2017.7
  159982. .INDENT 2.0
  159983. .IP \(bu 2
  159984. ecd1637 Merge branch \(aq2017.7\(aq into fix_raise_2017.7
  159985. .IP \(bu 2
  159986. f3c9cd4 Add missing raise statement
  159987. .INDENT 2.0
  159988. .IP \(bu 2
  159989. d06526c Allow for kwargs to be used in object initialization
  159990. .IP \(bu 2
  159991. 0e760b5 pip states: Use case\-insensitive dictionaries for pip.list return
  159992. .IP \(bu 2
  159993. 5ca9f82 Add a CaseInsensitiveDict implementation
  159994. .IP \(bu 2
  159995. 2aaa9f9 pip.installed: Fix traceback when _find_key doesn\(aqt return a match
  159996. .UNINDENT
  159997. .UNINDENT
  159998. .IP \(bu 2
  159999. 67b7d28 Merge pull request \fI\%#51370\fP from dwoz/setup_py_req_fix
  160000. .INDENT 2.0
  160001. .IP \(bu 2
  160002. e1e06a0 Fix python 3 path for shell test cases
  160003. .IP \(bu 2
  160004. 09cd5fc Merge branch \(aq2017.7\(aq into setup_py_req_fix
  160005. .IP \(bu 2
  160006. 0de189d Handle pipenv like version restrictions
  160007. .UNINDENT
  160008. .IP \(bu 2
  160009. e9b3d94 Merge pull request \fI\%#51367\fP from dwoz/cloud_config_2017
  160010. .INDENT 2.0
  160011. .IP \(bu 2
  160012. 3f4c5a3e Merge branch \(aqcloud_config_2017\(aq of github.com:dwoz/salt into cloud_config_2017
  160013. .INDENT 2.0
  160014. .IP \(bu 2
  160015. 8b8d41a Merge branch \(aq2017.7\(aq into cloud_config_2017
  160016. .UNINDENT
  160017. .IP \(bu 2
  160018. 7bb4ceb Fix python 3 path for shell test cases
  160019. .IP \(bu 2
  160020. a2bbf4d Fix linter issues
  160021. .IP \(bu 2
  160022. 004d9b8 Cloud provider and profile configs are merged
  160023. .UNINDENT
  160024. .IP \(bu 2
  160025. 3a21afa Coverage on windows chokes with the tox env var \fICOVERAGE_PROCESS_START\fP
  160026. .IP \(bu 2
  160027. 1c62e27 Switch required PyTest dependency
  160028. .IP \(bu 2
  160029. b80320d Merge pull request \fI\%#51402\fP from dwoz/win_test_fix
  160030. .INDENT 2.0
  160031. .IP \(bu 2
  160032. 21359e6 Merge branch \(aq2017.7\(aq into win_test_fix
  160033. .UNINDENT
  160034. .IP \(bu 2
  160035. 1199530 Merge pull request \fI\%#51397\fP from dwoz/gemstest
  160036. .INDENT 2.0
  160037. .IP \(bu 2
  160038. 43ac36e Use gems.github.com no longer exists, use gemcutter.org
  160039. .IP \(bu 2
  160040. bac652f Add testing path to run_script commands
  160041. .UNINDENT
  160042. .IP \(bu 2
  160043. f511ad2 Merge pull request \fI\%#51227\fP from astronouth7303/doc\-modules\-additional\-globals
  160044. .INDENT 2.0
  160045. .IP \(bu 2
  160046. cbe1e17 Merge branch \(aq2017.7\(aq into doc\-modules\-additional\-globals
  160047. .UNINDENT
  160048. .IP \(bu 2
  160049. 2a9bf17 Merge pull request \fI\%#51312\fP from s0undt3ch/features/tox\-runtests
  160050. .INDENT 2.0
  160051. .IP \(bu 2
  160052. 3840af8 "Tell" coverage to track subprocesses.
  160053. .IP \(bu 2
  160054. f67a529 Remove unused imports
  160055. .IP \(bu 2
  160056. 15ab061 Show objects on assertion failure
  160057. .IP \(bu 2
  160058. 0281fc5 Don\(aqt fail the test because of order
  160059. .IP \(bu 2
  160060. 9a31be7 Don\(aqt call \fI\&.keys()\fP on dictionaries
  160061. .IP \(bu 2
  160062. 97ced3a Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  160063. .IP \(bu 2
  160064. 8d2c4d2 Remove duplicate dependency
  160065. .IP \(bu 2
  160066. 5eec144 Add \fI\&.coveragerc\fP
  160067. .IP \(bu 2
  160068. aa108d5 Run tests from tox, wether runtests or pytest
  160069. .IP \(bu 2
  160070. 80a3826 Update TODO
  160071. .IP \(bu 2
  160072. 1945c30 Document the client\-defined dunders
  160073. .UNINDENT
  160074. .UNINDENT
  160075. .UNINDENT
  160076. .IP \(bu 2
  160077. 5bb9b32 Merge pull request \fI\%#51393\fP from garethgreenaway/various_documentation_fixes
  160078. .INDENT 2.0
  160079. .IP \(bu 2
  160080. 8bb7535 Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160081. .IP \(bu 2
  160082. c15406a Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160083. .IP \(bu 2
  160084. 33bb4e4 Merge branch \(aq2018.3\(aq into various_documentation_fixes
  160085. .IP \(bu 2
  160086. 3582f6e Fixing the underline.
  160087. .IP \(bu 2
  160088. a8f42a0 Various documentation fixes.
  160089. .UNINDENT
  160090. .IP \(bu 2
  160091. 884981f Merge pull request \fI\%#51465\fP from ezh/50556
  160092. .INDENT 2.0
  160093. .IP \(bu 2
  160094. a3ee70c fix \fI\%#50556\fP state.orchestrate_show_sls
  160095. .UNINDENT
  160096. .IP \(bu 2
  160097. 231d6e2 Merge pull request \fI\%#51541\fP from bdrung/silence\-linux_distribution\-deprecation\-warning
  160098. .INDENT 2.0
  160099. .IP \(bu 2
  160100. c4feea1 Merge branch \(aq2018.3\(aq into silence\-linux_distribution\-deprecation\-warning
  160101. .IP \(bu 2
  160102. e1dcbb5 Silence linux_distribution deprecation warning
  160103. .UNINDENT
  160104. .IP \(bu 2
  160105. f87d5ec Merge pull request \fI\%#51558\fP from bdrung/test\-zypp\-plugin
  160106. .INDENT 2.0
  160107. .IP \(bu 2
  160108. c34967d Merge branch \(aq2018.3\(aq into test\-zypp\-plugin
  160109. .UNINDENT
  160110. .IP \(bu 2
  160111. edb1093 Merge pull request \fI\%#51609\fP from dwoz/wait_minions_2018.3
  160112. .INDENT 2.0
  160113. .IP \(bu 2
  160114. d794edb fix linter
  160115. .IP \(bu 2
  160116. d6720d2 Wait for minions to be pingable before starting tests
  160117. .UNINDENT
  160118. .IP \(bu 2
  160119. 8d79359 Merge pull request \fI\%#51599\fP from terminalmage/bp\-51510
  160120. .INDENT 2.0
  160121. .IP \(bu 2
  160122. ed194c7 grains: assign os_family Debian to Debian derivative TurnKey Linux
  160123. .UNINDENT
  160124. .IP \(bu 2
  160125. 24aa083 Merge pull request \fI\%#51598\fP from terminalmage/add\-grain\-option\-documentation
  160126. .INDENT 2.0
  160127. .IP \(bu 2
  160128. 4ee9440 Improve ec2 pillar documentation
  160129. .IP \(bu 2
  160130. 9c02104 Add link to metadata grain module docs
  160131. .IP \(bu 2
  160132. 997ce26 Add documentation for the metadata_server_grains config option
  160133. .UNINDENT
  160134. .IP \(bu 2
  160135. d89c489 Merge pull request \fI\%#51491\fP from terminalmage/issue51268
  160136. .INDENT 2.0
  160137. .IP \(bu 2
  160138. 550e9ab Don\(aqt log shell warning if output_loglevel is quiet
  160139. .INDENT 2.0
  160140. .INDENT 3.5
  160141. .INDENT 0.0
  160142. .IP \(bu 2
  160143. 7678c28 Do not load zyppnotify file on module import
  160144. .UNINDENT
  160145. .UNINDENT
  160146. .UNINDENT
  160147. .UNINDENT
  160148. .IP \(bu 2
  160149. c6dfded Merge pull request \fI\%#51588\fP from dwoz/script_fix_2018.3
  160150. .INDENT 2.0
  160151. .IP \(bu 2
  160152. cbac390 Use the code directory instead of cwd for python path
  160153. .UNINDENT
  160154. .UNINDENT
  160155. .UNINDENT
  160156. .IP \(bu 2
  160157. \fBPR\fP \fI\%#51658\fP: (\fI\%dwoz\fP) [2019.2] Let memcopy make the null bytes, better py3 support
  160158. @ \fI2019\-02\-15 05:42:37 UTC\fP
  160159. .INDENT 2.0
  160160. .IP \(bu 2
  160161. \fBPR\fP \fI\%#51586\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2 (refs: \fI\%#51658\fP)
  160162. .IP \(bu 2
  160163. 1ea6f4b Merge pull request \fI\%#51658\fP from dwoz/pip_test_fix
  160164. .IP \(bu 2
  160165. c811a70 Let memcopy make the null bytes, better py3 support
  160166. .UNINDENT
  160167. .IP \(bu 2
  160168. \fBPR\fP \fI\%#51650\fP: (\fI\%dwoz\fP) [2019.2] Increase minion wait for slow boxes
  160169. @ \fI2019\-02\-14 16:31:59 UTC\fP
  160170. .INDENT 2.0
  160171. .IP \(bu 2
  160172. 22a04c1 Merge pull request \fI\%#51650\fP from dwoz/increase_wait_2019.2
  160173. .IP \(bu 2
  160174. ad294f3 Merge branch \(aq2019.2\(aq into increase_wait_2019.2
  160175. .UNINDENT
  160176. .IP \(bu 2
  160177. \fBPR\fP \fI\%#51645\fP: (\fI\%dwoz\fP) [2019.2] increase batch test timeout on windows
  160178. @ \fI2019\-02\-14 16:29:26 UTC\fP
  160179. .INDENT 2.0
  160180. .IP \(bu 2
  160181. a0982f7 Merge pull request \fI\%#51645\fP from dwoz/batch_exit_2019.2
  160182. .IP \(bu 2
  160183. 1a882d7 Merge branch \(aq2019.2\(aq into batch_exit_2019.2
  160184. .UNINDENT
  160185. .IP \(bu 2
  160186. \fBPR\fP \fI\%#51586\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2 (refs: \fI\%#51658\fP)
  160187. @ \fI2019\-02\-14 16:25:29 UTC\fP
  160188. .INDENT 2.0
  160189. .IP \(bu 2
  160190. 705a62d Merge pull request \fI\%#51586\fP from garethgreenaway/merge\-2018.3
  160191. .IP \(bu 2
  160192. 09fb3e7 Merge branch \(aq2019.2\(aq into merge\-2018.3
  160193. .IP \(bu 2
  160194. 95c505a Merge branch \(aq2019.2\(aq into merge\-2018.3
  160195. .IP \(bu 2
  160196. 4abd9d0 Merge branch \(aq2019.2\(aq into merge\-2018.3
  160197. .IP \(bu 2
  160198. 6c99cb1 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160199. .INDENT 2.0
  160200. .IP \(bu 2
  160201. 41e25a6 Merge pull request \fI\%#51580\fP from garethgreenaway/merge\-2018.3.4
  160202. .INDENT 2.0
  160203. .IP \(bu 2
  160204. 84e15ce Fixing lint
  160205. .IP \(bu 2
  160206. e891b3f Merge branch \(aq2018.3.4\(aq into merge\-2018.3.4
  160207. .IP \(bu 2
  160208. d0cad3e Merge pull request \fI\%#51553\fP from twangboy/update_libsodium
  160209. .INDENT 2.0
  160210. .IP \(bu 2
  160211. 4177f64 Update url to libsodium for mac builds
  160212. .UNINDENT
  160213. .IP \(bu 2
  160214. 564a65a Merge pull request \fI\%#51544\fP from twangboy/fix_test_ssh_2018.3.4
  160215. .INDENT 2.0
  160216. .IP \(bu 2
  160217. 7771632 Fix ssh on Windows
  160218. .UNINDENT
  160219. .IP \(bu 2
  160220. b4299a3 Merge pull request \fI\%#51532\fP from frogunder/new_releasenotes
  160221. .INDENT 2.0
  160222. .IP \(bu 2
  160223. 09faf0b Merge branch \(aq2018.3.4\(aq into new_releasenotes
  160224. .IP \(bu 2
  160225. c6bfe53 2018.3.4 releasenotes
  160226. .UNINDENT
  160227. .IP \(bu 2
  160228. c37bdb7 Merge pull request \fI\%#51534\fP from twangboy/fix_51309
  160229. .INDENT 2.0
  160230. .IP \(bu 2
  160231. 3ad95bc Convert data to string using salt util
  160232. .UNINDENT
  160233. .IP \(bu 2
  160234. 5b41af3 Merge pull request \fI\%#51530\fP from garethgreenaway/48204_mysql_module_handle_mariadb_versions
  160235. .INDENT 2.0
  160236. .IP \(bu 2
  160237. cdf5298 Later versions of MariaDB still support "ALL PRIVILEGES"
  160238. .IP \(bu 2
  160239. d31c902 Updating the mysql module to handle MariDB versions.
  160240. .UNINDENT
  160241. .IP \(bu 2
  160242. f3f345c Merge pull request \fI\%#51529\fP from frogunder/releasenotes
  160243. .INDENT 2.0
  160244. .IP \(bu 2
  160245. fb678ee fix escaped asterisks
  160246. .IP \(bu 2
  160247. 6a4f0da 2018.3.4 releasenotes
  160248. .UNINDENT
  160249. .IP \(bu 2
  160250. a37fb7d Merge pull request \fI\%#51525\fP from twangboy/backport_51095_2018.3.4
  160251. .INDENT 2.0
  160252. .IP \(bu 2
  160253. b6acc92 Backport 51095
  160254. .UNINDENT
  160255. .IP \(bu 2
  160256. 602ddc8 Merge pull request \fI\%#51520\fP from frogunder/man_pages
  160257. .INDENT 2.0
  160258. .IP \(bu 2
  160259. 0cbe3f8 Update man pages for 2018.3.4
  160260. .UNINDENT
  160261. .IP \(bu 2
  160262. 1f981c6 Merge pull request \fI\%#51429\fP from yosnoop/replace\-noclass\-with\-nocl\-for\-dig
  160263. .INDENT 2.0
  160264. .IP \(bu 2
  160265. 5231e73 Merge branch \(aq2018.3.4\(aq into replace\-noclass\-with\-nocl\-for\-dig
  160266. .IP \(bu 2
  160267. 14e6fb7 In case the test machine can\(aqt resolve
  160268. .IP \(bu 2
  160269. 95e8a2f The +nocl is supported much wider than +noclass
  160270. .IP \(bu 2
  160271. a00d708 Test dig options for salt.utils.dns.lookup
  160272. .UNINDENT
  160273. .IP \(bu 2
  160274. 209ef32 Merge pull request \fI\%#51441\fP from Ch3LL/bp\-51366
  160275. .INDENT 2.0
  160276. .IP \(bu 2
  160277. 5bc466e Fix python 3 path for shell test cases
  160278. .IP \(bu 2
  160279. 5351e5c Add testing path to run_script commands
  160280. .IP \(bu 2
  160281. 2d8a364 Fix linter issues
  160282. .IP \(bu 2
  160283. 9b8718a Cloud provider and profile configs are merged
  160284. .UNINDENT
  160285. .IP \(bu 2
  160286. 90a8682 Merge pull request \fI\%#51458\fP from twangboy/add_py2_warning
  160287. .INDENT 2.0
  160288. .IP \(bu 2
  160289. 05522c0 Merge branch \(aq2018.3.4\(aq into add_py2_warning
  160290. .UNINDENT
  160291. .IP \(bu 2
  160292. b492021 Merge pull request \fI\%#51460\fP from twangboy/update_installer_mac_2018.3.4
  160293. .INDENT 2.0
  160294. .IP \(bu 2
  160295. 3c92688 Merge branch \(aq2018.3.4\(aq into update_installer_mac_2018.3.4
  160296. .UNINDENT
  160297. .IP \(bu 2
  160298. 892d98c Merge pull request \fI\%#51471\fP from twangboy/fix_test_win_dns_client
  160299. .INDENT 2.0
  160300. .IP \(bu 2
  160301. c9f6b01 Merge branch \(aq2018.3.4\(aq into fix_test_win_dns_client
  160302. .UNINDENT
  160303. .IP \(bu 2
  160304. a05305d Merge pull request \fI\%#51462\fP from ShantonRU/fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  160305. .INDENT 2.0
  160306. .IP \(bu 2
  160307. d3ef2cb Merge branch \(aq2018.3.4\(aq into fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  160308. .IP \(bu 2
  160309. f47dda6 Fix improper use of socket authentication in mysql.user_chpass
  160310. .IP \(bu 2
  160311. ed62a2f Fix insecure SQL queries in mysql.user_chpass
  160312. .INDENT 2.0
  160313. .IP \(bu 2
  160314. 33922c9 Fix the failing dns test on Windows
  160315. .UNINDENT
  160316. .UNINDENT
  160317. .IP \(bu 2
  160318. 48936c2 Merge pull request \fI\%#51445\fP from terminalmage/fix\-custom\-grains\-traceback
  160319. .INDENT 2.0
  160320. .IP \(bu 2
  160321. 191235d Remove custom grains module from 2018.3 branch
  160322. .IP \(bu 2
  160323. 72fd1a2 Roll back icon change
  160324. .IP \(bu 2
  160325. 7dd1704 Add welcome_py2.rtf
  160326. .IP \(bu 2
  160327. c93e9e3 Add Py2 Warning to installer package
  160328. .IP \(bu 2
  160329. b658900 Add Py2 Warning for Py2 Installer
  160330. .UNINDENT
  160331. .IP \(bu 2
  160332. a880e42 Merge pull request \fI\%#51438\fP from twangboy/fix_raise_2018.3.4
  160333. .INDENT 2.0
  160334. .IP \(bu 2
  160335. 5830fad Add missing raise statement
  160336. .UNINDENT
  160337. .IP \(bu 2
  160338. 28b898c Merge pull request \fI\%#51432\fP from Ch3LL/bp\-51324
  160339. .INDENT 2.0
  160340. .IP \(bu 2
  160341. bd41ff0 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  160342. .UNINDENT
  160343. .IP \(bu 2
  160344. 01717d2 Merge pull request \fI\%#51377\fP from twangboy/fix_auditpol_2018.3.4
  160345. .INDENT 2.0
  160346. .IP \(bu 2
  160347. 19e5181 Fix issue when directory doesn\(aqt exist
  160348. .UNINDENT
  160349. .IP \(bu 2
  160350. 43a9d2f Merge pull request \fI\%#51338\fP from Ch3LL/bp\-51207
  160351. .INDENT 2.0
  160352. .IP \(bu 2
  160353. 345ae67 Backport PR# 50771 to 2018.3 branch
  160354. .UNINDENT
  160355. .IP \(bu 2
  160356. 3dcd11d Merge pull request \fI\%#51337\fP from Ch3LL/bp\-51170
  160357. .INDENT 2.0
  160358. .IP \(bu 2
  160359. 4e85505 Merge branch \(aq2018.3.4\(aq into bp\-51170
  160360. .UNINDENT
  160361. .IP \(bu 2
  160362. 7656aa5 Merge pull request \fI\%#51340\fP from Ch3LL/bp\-51252
  160363. .INDENT 2.0
  160364. .IP \(bu 2
  160365. e74a6c6 Fix py3 managed.file test failure
  160366. .IP \(bu 2
  160367. 6f2c7cf Remoe un\-needed log statement
  160368. .IP \(bu 2
  160369. 824950c Fix 50221 regression test on Windows
  160370. .IP \(bu 2
  160371. 1840af9 peserve newlines from pillar data for file.managed
  160372. .UNINDENT
  160373. .IP \(bu 2
  160374. e90ca1d Merge pull request \fI\%#51290\fP from s0undt3ch/hotfix/fix\-network
  160375. .INDENT 2.0
  160376. .IP \(bu 2
  160377. da3aace Merge branch \(aq2018.3.4\(aq into hotfix/fix\-network
  160378. .IP \(bu 2
  160379. 04f16b8 Fix tests. We no longer get \fIipaddress\fP instances back.
  160380. .IP \(bu 2
  160381. c3fa82a Fix minion start issue
  160382. .INDENT 2.0
  160383. .IP \(bu 2
  160384. c893dc4 Fix saltmod roster test
  160385. .IP \(bu 2
  160386. b61854f Roster defines the roster system not a file
  160387. .IP \(bu 2
  160388. 484bab4 Fix linter
  160389. .IP \(bu 2
  160390. 5e2db2f Honor roster file for ssh orchestrations
  160391. .UNINDENT
  160392. .UNINDENT
  160393. .IP \(bu 2
  160394. c8db7e3 Merge pull request \fI\%#51317\fP from terminalmage/fix\-pr\-50417
  160395. .INDENT 2.0
  160396. .IP \(bu 2
  160397. 4be2891 Merge branch \(aq2018.3.4\(aq into fix\-pr\-50417
  160398. .UNINDENT
  160399. .IP \(bu 2
  160400. e246fdb Merge pull request \fI\%#51311\fP from twangboy/fix_test_file.test_managed
  160401. .INDENT 2.0
  160402. .IP \(bu 2
  160403. f4177e0 Remove mode parameter on Windows
  160404. .IP \(bu 2
  160405. 4c4ded3 Fix regression in dynamic pillarenv
  160406. .UNINDENT
  160407. .IP \(bu 2
  160408. 40b20126 Merge pull request \fI\%#51292\fP from Ch3LL/bp\-51226
  160409. .INDENT 2.0
  160410. .IP \(bu 2
  160411. aba114e Merge branch \(aq2018.3.4\(aq into bp\-51226
  160412. .UNINDENT
  160413. .IP \(bu 2
  160414. fc0bec5 Merge pull request \fI\%#51295\fP from Ch3LL/bp\-51279
  160415. .INDENT 2.0
  160416. .IP \(bu 2
  160417. 5c4a7a4 Merge branch \(aq2018.3.4\(aq into bp\-51279
  160418. .UNINDENT
  160419. .IP \(bu 2
  160420. dacd1ea Merge pull request \fI\%#51293\fP from Ch3LL/bp\-51233\-2
  160421. .INDENT 2.0
  160422. .IP \(bu 2
  160423. a155fd7 Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  160424. .IP \(bu 2
  160425. 53ba068 When test=True and there are permissions changes, report it.
  160426. .IP \(bu 2
  160427. d2eba77 Remove network.py patch
  160428. .IP \(bu 2
  160429. d431c71 Add __context__ support
  160430. .INDENT 2.0
  160431. .IP \(bu 2
  160432. de6c13d Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  160433. .UNINDENT
  160434. .UNINDENT
  160435. .IP \(bu 2
  160436. 1abffb2 Merge pull request \fI\%#51278\fP from dwoz/issue51248
  160437. .INDENT 2.0
  160438. .IP \(bu 2
  160439. c614198 Use pillar roots validation method
  160440. .IP \(bu 2
  160441. 0d2b0c6 Fix linter warnings
  160442. .IP \(bu 2
  160443. 5b98895 Fix wart in pillar_roots validation
  160444. .UNINDENT
  160445. .UNINDENT
  160446. .IP \(bu 2
  160447. f7d50b1 Merge pull request \fI\%#50784\fP from sathieu/dynamic_file_roots
  160448. .INDENT 2.0
  160449. .IP \(bu 2
  160450. 7ca2aa4 Allow dynamic file_roots
  160451. .UNINDENT
  160452. .IP \(bu 2
  160453. 5e840a5 Merge pull request \fI\%#51527\fP from garethgreenaway/bp\-51475
  160454. .INDENT 2.0
  160455. .IP \(bu 2
  160456. 801abf2 Fix Elasticsearch retuner
  160457. .UNINDENT
  160458. .IP \(bu 2
  160459. 1f6da6a Merge pull request \fI\%#50921\fP from terminalmage/issue49894
  160460. .INDENT 2.0
  160461. .IP \(bu 2
  160462. a35c023 Don\(aqt use a decorator that assumes /etc/apt/sources.list.d exists
  160463. .IP \(bu 2
  160464. 6a62e79 Add integration test for architecture support
  160465. .IP \(bu 2
  160466. 67ae5a5 Add support for architectures for APT pkgrepo.managed states
  160467. .UNINDENT
  160468. .IP \(bu 2
  160469. 3f17776 Actually, remove python\-ldap. It needs system deps. Have salt\-jenkins do it.
  160470. .IP \(bu 2
  160471. afcb6bd Fix the \fIldap\fP pacakge name in requirements/tests.txt
  160472. .IP \(bu 2
  160473. 588cb87 Merge pull request \fI\%#51454\fP from terminalmage/fix\-deprecation\-warning
  160474. .INDENT 2.0
  160475. .IP \(bu 2
  160476. 529cce0 Fix deprecation warning in nested outputter
  160477. .UNINDENT
  160478. .IP \(bu 2
  160479. 13de0b8 Merge pull request \fI\%#50963\fP from terminalmage/issue50942
  160480. .INDENT 2.0
  160481. .IP \(bu 2
  160482. c84be3f Allow for kwargs to be used in object initialization
  160483. .IP \(bu 2
  160484. 2bf93fd pip states: Use case\-insensitive dictionaries for pip.list return
  160485. .IP \(bu 2
  160486. 792f054 Add a CaseInsensitiveDict implementation
  160487. .IP \(bu 2
  160488. 1410164 pip.installed: Fix traceback when _find_key doesn\(aqt return a match
  160489. .UNINDENT
  160490. .IP \(bu 2
  160491. 60953b7 Merge pull request \fI\%#51366\fP from dwoz/cloud_config_merge
  160492. .INDENT 2.0
  160493. .IP \(bu 2
  160494. ae351eb Fix python 3 path for shell test cases
  160495. .IP \(bu 2
  160496. 48062c8 Merge branch \(aq2018.3\(aq into cloud_config_merge
  160497. .IP \(bu 2
  160498. eeea289 Add testing path to run_script commands
  160499. .IP \(bu 2
  160500. 542d857 Fix linter issues
  160501. .IP \(bu 2
  160502. a8af3ba Cloud provider and profile configs are merged
  160503. .UNINDENT
  160504. .IP \(bu 2
  160505. 9ab2ec6 Coverage on windows chokes with the tox env var \fICOVERAGE_PROCESS_START\fP
  160506. .IP \(bu 2
  160507. 4994c38 Switch required PyTest dependency
  160508. .IP \(bu 2
  160509. 89710a7 Merge pull request \fI\%#51401\fP from dwoz/run_script_win
  160510. .INDENT 2.0
  160511. .IP \(bu 2
  160512. 77fdf35 Add testing path to run_script commands
  160513. .UNINDENT
  160514. .IP \(bu 2
  160515. 1438a62 Merge pull request \fI\%#51389\fP from terminalmage/proxy\-fixes
  160516. .INDENT 2.0
  160517. .IP \(bu 2
  160518. 3cec85e Normalize results if test proxy is enabled
  160519. .UNINDENT
  160520. .IP \(bu 2
  160521. 8acd9e5 Merge pull request \fI\%#51368\fP from s0undt3ch/hotfix/tests
  160522. .INDENT 2.0
  160523. .IP \(bu 2
  160524. f4e1692 Fix test
  160525. .UNINDENT
  160526. .IP \(bu 2
  160527. ab60782 Merge pull request \fI\%#51319\fP from terminalmage/issue51255
  160528. .INDENT 2.0
  160529. .IP \(bu 2
  160530. 04eb66b Merge branch \(aq2018.3\(aq into issue51255
  160531. .UNINDENT
  160532. .IP \(bu 2
  160533. fdf2cf4 Merge pull request \fI\%#51250\fP from yosnoop/fix\-salt\-utils\-dns\-lookup
  160534. .INDENT 2.0
  160535. .IP \(bu 2
  160536. 0ddfad1 Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160537. .IP \(bu 2
  160538. 9fb4abe Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160539. .IP \(bu 2
  160540. 67e4131 Merge branch \(aq2018.3\(aq into fix\-salt\-utils\-dns\-lookup
  160541. .IP \(bu 2
  160542. 9a34bcd Unit test for lookup with servers option
  160543. .IP \(bu 2
  160544. 9498fdc Fix _lookup_host to make it work when server specified
  160545. .IP \(bu 2
  160546. af867e1 Remove excessive whitespaces
  160547. .IP \(bu 2
  160548. 0d074a4 Fix a comment
  160549. .IP \(bu 2
  160550. 1363d2b Proper way to specify _server_ to query with _host_
  160551. .IP \(bu 2
  160552. 7b2facc Fix broken lookup in salt/utils/dns.py
  160553. .UNINDENT
  160554. .IP \(bu 2
  160555. 73528a5 Merge pull request \fI\%#51339\fP from dwoz/aws_role_backport
  160556. .INDENT 2.0
  160557. .IP \(bu 2
  160558. 156f532 Backport aws role support
  160559. .UNINDENT
  160560. .IP \(bu 2
  160561. 7908875 Merge pull request \fI\%#51341\fP from Ch3LL/bp\-51299
  160562. .INDENT 2.0
  160563. .IP \(bu 2
  160564. e3080f1 Add sleep before sending stop over UDP
  160565. .UNINDENT
  160566. .IP \(bu 2
  160567. 326425c Merge pull request \fI\%#51352\fP from garethgreenaway/fixing_service_beacon_documentation
  160568. .INDENT 2.0
  160569. .IP \(bu 2
  160570. 021fe85 Fixing the documentation for the service beacon. If not options are provided for the service then there needs to be an empty dictionary.
  160571. .UNINDENT
  160572. .IP \(bu 2
  160573. 14a84e8 Merge pull request \fI\%#51333\fP from Ch3LL/merge\-2018.3
  160574. .INDENT 2.0
  160575. .IP \(bu 2
  160576. 27d7a89 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160577. .UNINDENT
  160578. .IP \(bu 2
  160579. 31b921f Merge pull request \fI\%#51304\fP from terminalmage/issue51270
  160580. .INDENT 2.0
  160581. .IP \(bu 2
  160582. 36673fb Merge branch \(aq2018.3\(aq into issue51270
  160583. .UNINDENT
  160584. .IP \(bu 2
  160585. 2c3aef7 Merge pull request \fI\%#51313\fP from s0undt3ch/features/tox\-runtests\-2018.3
  160586. .INDENT 2.0
  160587. .IP \(bu 2
  160588. 2eafc5c "Tell" coverage to track subprocesses.
  160589. .IP \(bu 2
  160590. f6babeb Remove unused imports
  160591. .IP \(bu 2
  160592. ff6824c Don\(aqt fail the test because of order
  160593. .IP \(bu 2
  160594. 4d12ccb Show objects on assertion failure
  160595. .IP \(bu 2
  160596. ee2f10a Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  160597. .IP \(bu 2
  160598. 4f4d019 Remove duplicate dependency
  160599. .IP \(bu 2
  160600. 1d4b9f5 Add \fI\&.coveragerc\fP
  160601. .IP \(bu 2
  160602. 78c6d68 Run tests from tox, wether runtests or pytest
  160603. .IP \(bu 2
  160604. c02757d gitfs: Fix use of deprecated pygit2 function
  160605. .INDENT 2.0
  160606. .IP \(bu 2
  160607. ae62ebc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  160608. .IP \(bu 2
  160609. 9309639 Merge pull request \fI\%#51305\fP from s0undt3ch/2017.7
  160610. .INDENT 2.0
  160611. .IP \(bu 2
  160612. 09b20df Add 2017.7 codecov config
  160613. .UNINDENT
  160614. .IP \(bu 2
  160615. 4fa2a02 Merge pull request \fI\%#51267\fP from ethframe/fix\-file\-directory
  160616. .INDENT 2.0
  160617. .IP \(bu 2
  160618. c108825 Fix missing file error in file.directory.
  160619. .INDENT 2.0
  160620. .INDENT 3.5
  160621. .INDENT 0.0
  160622. .IP \(bu 2
  160623. ad17ac5 Fix mocks to reflect changes to git.latest state
  160624. .IP \(bu 2
  160625. c817213 Don\(aqt try to run git.config_get_regexp from nonexistant cwd
  160626. .IP \(bu 2
  160627. f8c3e44 git.latest: add auth to merge/reset calls when LFS used with SSH auth
  160628. .INDENT 2.0
  160629. .INDENT 3.5
  160630. .INDENT 0.0
  160631. .IP \(bu 2
  160632. 4b11d6b increase batch test timeout on windows
  160633. .IP \(bu 2
  160634. a5af9c5 Increase minion wait for slow boxes
  160635. .UNINDENT
  160636. .UNINDENT
  160637. .UNINDENT
  160638. .UNINDENT
  160639. .UNINDENT
  160640. .UNINDENT
  160641. .UNINDENT
  160642. .UNINDENT
  160643. .UNINDENT
  160644. .UNINDENT
  160645. .UNINDENT
  160646. .IP \(bu 2
  160647. \fBPR\fP \fI\%#51549\fP: (\fI\%s0undt3ch\fP) [2019.2] Allow NOT to install pip dependencies
  160648. @ \fI2019\-02\-13 18:16:52 UTC\fP
  160649. .INDENT 2.0
  160650. .IP \(bu 2
  160651. e7ee04e Merge pull request \fI\%#51549\fP from s0undt3ch/2019.2
  160652. .IP \(bu 2
  160653. d2125aa Allow NOT to install pip dependencies
  160654. .UNINDENT
  160655. .IP \(bu 2
  160656. \fBPR\fP \fI\%#51595\fP: (\fI\%mirceaulinic\fP) Fix ipaddress imports
  160657. @ \fI2019\-02\-13 17:33:08 UTC\fP
  160658. .INDENT 2.0
  160659. .IP \(bu 2
  160660. c96464b Merge pull request \fI\%#51595\fP from mirceaulinic/mircea/port\-824e0e5
  160661. .IP \(bu 2
  160662. 91bcb4f Merge branch \(aq2019.2\(aq into mircea/port\-824e0e5
  160663. .IP \(bu 2
  160664. 84fc76d Fix ipaddress imports
  160665. .UNINDENT
  160666. .IP \(bu 2
  160667. \fBPR\fP \fI\%#51517\fP: (\fI\%damianosSemmle\fP) Fixed string format index out of range error
  160668. @ \fI2019\-02\-13 08:18:38 UTC\fP
  160669. .INDENT 2.0
  160670. .IP \(bu 2
  160671. e3c9a3e Merge pull request \fI\%#51517\fP from damianosSemmle/fix\-string\-format\-index
  160672. .IP \(bu 2
  160673. c0959e2 Merge branch \(aq2019.2\(aq into fix\-string\-format\-index
  160674. .UNINDENT
  160675. .IP \(bu 2
  160676. \fBPR\fP \fI\%#51581\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2019.2.0rc1 to 2019.2
  160677. @ \fI2019\-02\-13 04:11:15 UTC\fP
  160678. .INDENT 2.0
  160679. .IP \(bu 2
  160680. 82500bb Merge pull request \fI\%#51581\fP from garethgreenaway/merge\-2019.2.0rc1
  160681. .IP \(bu 2
  160682. b00e7e8 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  160683. .UNINDENT
  160684. .IP \(bu 2
  160685. \fBPR\fP \fI\%#51607\fP: (\fI\%dwoz\fP) [2019.2] Wait for minions to be pingable before starting tests
  160686. @ \fI2019\-02\-13 00:48:47 UTC\fP
  160687. .INDENT 2.0
  160688. .IP \(bu 2
  160689. edb5e94 Merge pull request \fI\%#51607\fP from dwoz/wait_minions_2019.2
  160690. .IP \(bu 2
  160691. ab0a6a3 fix linter
  160692. .IP \(bu 2
  160693. f2e4a30 Wait for minions to be pingable before starting tests
  160694. .UNINDENT
  160695. .IP \(bu 2
  160696. \fBPR\fP \fI\%#51584\fP: (\fI\%dwoz\fP) [2019.2] Use the code directory instead of cwd for python path
  160697. @ \fI2019\-02\-12 18:43:46 UTC\fP
  160698. .INDENT 2.0
  160699. .IP \(bu 2
  160700. 1e0275e Merge pull request \fI\%#51584\fP from dwoz/script_fixes
  160701. .IP \(bu 2
  160702. dbf4356 Use the code directory instead of cwd for python path
  160703. .IP \(bu 2
  160704. cd24006 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  160705. .IP \(bu 2
  160706. 6e55164 Merge branch \(aq2019.2.0.rc1\(aq into merge\-2019.2.0rc1
  160707. .INDENT 2.0
  160708. .IP \(bu 2
  160709. ac73745 Merge branch \(aq2019.2\(aq into fix\-string\-format\-index
  160710. .UNINDENT
  160711. .UNINDENT
  160712. .IP \(bu 2
  160713. \fBPR\fP \fI\%#51583\fP: (\fI\%dwoz\fP) Add testing path to run_script commands
  160714. @ \fI2019\-02\-11 21:38:51 UTC\fP
  160715. .INDENT 2.0
  160716. .IP \(bu 2
  160717. f446c52 Merge pull request \fI\%#51583\fP from dwoz/scriptfix
  160718. .IP \(bu 2
  160719. e49ba86 Add testing path to run_script commands
  160720. .IP \(bu 2
  160721. 788f7e0 Fixed string format index out of range error
  160722. .UNINDENT
  160723. .IP \(bu 2
  160724. \fBPR\fP \fI\%#51405\fP: (\fI\%aplanas\fP) Documentation: fix typo in "equivalent"
  160725. @ \fI2019\-02\-01 21:11:12 UTC\fP
  160726. .INDENT 2.0
  160727. .IP \(bu 2
  160728. c3e27be Merge pull request \fI\%#51405\fP from aplanas/backport_49669
  160729. .IP \(bu 2
  160730. 58279b4 Documentation: fix typo in "equivalent"
  160731. .UNINDENT
  160732. .IP \(bu 2
  160733. \fBPR\fP \fI\%#51406\fP: (\fI\%aplanas\fP) states_pt3: fix rST link format
  160734. @ \fI2019\-02\-01 21:10:43 UTC\fP
  160735. .INDENT 2.0
  160736. .IP \(bu 2
  160737. 5c26652 Merge pull request \fI\%#51406\fP from aplanas/backport_49670
  160738. .IP \(bu 2
  160739. 204432d Merge branch \(aq2019.2\(aq into backport_49670
  160740. .UNINDENT
  160741. .IP \(bu 2
  160742. \fBPR\fP \fI\%#51426\fP: (\fI\%aplanas\fP) mount: cache blkid information
  160743. @ \fI2019\-02\-01 21:09:51 UTC\fP
  160744. .INDENT 2.0
  160745. .IP \(bu 2
  160746. fb70bd3 Merge pull request \fI\%#51426\fP from aplanas/backport_51135
  160747. .IP \(bu 2
  160748. ac790a6 Merge branch \(aq2019.2\(aq into backport_51135
  160749. .IP \(bu 2
  160750. 66743d6 mount: cache blkid information
  160751. .UNINDENT
  160752. .IP \(bu 2
  160753. \fBPR\fP \fI\%#51425\fP: (\fI\%aplanas\fP) cmdmod: add sysfs into the chroot
  160754. @ \fI2019\-02\-01 21:09:00 UTC\fP
  160755. .INDENT 2.0
  160756. .IP \(bu 2
  160757. 2e8bf05 Merge pull request \fI\%#51425\fP from aplanas/backport_51094
  160758. .IP \(bu 2
  160759. 9193106 cmdmod: add sysfs into the chroot
  160760. .UNINDENT
  160761. .IP \(bu 2
  160762. \fBPR\fP \fI\%#51419\fP: (\fI\%aplanas\fP) file: update attributes for lsattr and chattr
  160763. @ \fI2019\-02\-01 21:04:54 UTC\fP
  160764. .INDENT 2.0
  160765. .IP \(bu 2
  160766. d7a47f0 Merge pull request \fI\%#51419\fP from aplanas/backport_50607
  160767. .IP \(bu 2
  160768. ab8a8b8 file: update attributes for lsattr and chattr
  160769. .UNINDENT
  160770. .IP \(bu 2
  160771. \fBPR\fP \fI\%#51414\fP: (\fI\%aplanas\fP) service: SUSE is not based on sysvinit anymore
  160772. @ \fI2019\-02\-01 21:02:33 UTC\fP
  160773. .INDENT 2.0
  160774. .IP \(bu 2
  160775. 7e020dd Merge pull request \fI\%#51414\fP from aplanas/backport_50396
  160776. .IP \(bu 2
  160777. b5cff17 service: SUSE is not based on sysvinit anymore
  160778. .UNINDENT
  160779. .IP \(bu 2
  160780. \fBPR\fP \fI\%#51408\fP: (\fI\%aplanas\fP) parted: fix the ordering of list command
  160781. @ \fI2019\-02\-01 21:00:19 UTC\fP
  160782. .INDENT 2.0
  160783. .IP \(bu 2
  160784. \fBPR\fP \fI\%#50473\fP: (\fI\%aplanas\fP) parted: support variable length output for print (refs: \fI\%#51408\fP)
  160785. .IP \(bu 2
  160786. \fBPR\fP \fI\%#49804\fP: (\fI\%aplanas\fP) parted: fix the ordering of list command (refs: \fI\%#51408\fP)
  160787. .IP \(bu 2
  160788. 9f87dda Merge pull request \fI\%#51408\fP from aplanas/backport_49804
  160789. .IP \(bu 2
  160790. 467daf2 parted: support variable length output for print
  160791. .IP \(bu 2
  160792. da2e632 parted: fix the ordering of list command
  160793. .UNINDENT
  160794. .IP \(bu 2
  160795. \fBISSUE\fP \fI\%#50097\fP: (\fI\%aplanas\fP) lowpkg.diff refers to a package name, but a package file is required (refs: \fI\%#51410\fP)
  160796. .IP \(bu 2
  160797. \fBPR\fP \fI\%#51410\fP: (\fI\%aplanas\fP) Fix lowpkg.diff documentation and parameter name
  160798. @ \fI2019\-02\-01 20:57:50 UTC\fP
  160799. .INDENT 2.0
  160800. .IP \(bu 2
  160801. 7e14499 Merge pull request \fI\%#51410\fP from aplanas/backport_50126
  160802. .IP \(bu 2
  160803. d38622e Fix lowpkg.diff documentation and parameter name
  160804. .INDENT 2.0
  160805. .IP \(bu 2
  160806. e61a077 states_pt3: fix rST link format
  160807. .UNINDENT
  160808. .UNINDENT
  160809. .IP \(bu 2
  160810. \fBPR\fP \fI\%#51404\fP: (\fI\%aplanas\fP) blockdev: fix url from comment
  160811. @ \fI2019\-01\-30 20:05:54 UTC\fP
  160812. .INDENT 2.0
  160813. .IP \(bu 2
  160814. a16461b Merge pull request \fI\%#51404\fP from aplanas/backport_49668
  160815. .IP \(bu 2
  160816. da2e30d blockdev: fix url from comment
  160817. .UNINDENT
  160818. .IP \(bu 2
  160819. \fBPR\fP \fI\%#51407\fP: (\fI\%aplanas\fP) parted: fix _validate_partition_boundary
  160820. @ \fI2019\-01\-30 20:05:02 UTC\fP
  160821. .INDENT 2.0
  160822. .IP \(bu 2
  160823. 756c367 Merge pull request \fI\%#51407\fP from aplanas/backport_49803
  160824. .IP \(bu 2
  160825. b004b33 parted: fix _validate_partition_boundary
  160826. .UNINDENT
  160827. .IP \(bu 2
  160828. \fBPR\fP \fI\%#51435\fP: (\fI\%damianosSemmle\fP) Fixed not raised exceptions
  160829. @ \fI2019\-01\-30 18:32:57 UTC\fP
  160830. .INDENT 2.0
  160831. .IP \(bu 2
  160832. 1d45664 Merge pull request \fI\%#51435\fP from damianosSemmle/fix\-raise\-exception
  160833. .IP \(bu 2
  160834. 7a9ff59 Fixed not raised exceptions
  160835. .UNINDENT
  160836. .IP \(bu 2
  160837. \fBPR\fP \fI\%#51336\fP: (\fI\%Ch3LL\fP) [2019.2] Merge Forward from 2019.2.0.rc1 to 2019.2
  160838. @ \fI2019\-01\-27 23:55:08 UTC\fP
  160839. .INDENT 2.0
  160840. .IP \(bu 2
  160841. d4b9093 Merge pull request \fI\%#51336\fP from Ch3LL/merge\-2019.2.0rc1
  160842. .IP \(bu 2
  160843. 62a20b1 Remove unused import
  160844. .IP \(bu 2
  160845. 2284ea5 Merge branch \(aq2019.2\(aq into merge\-2019.2.0rc1
  160846. .IP \(bu 2
  160847. 18bf236 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  160848. .UNINDENT
  160849. .IP \(bu 2
  160850. \fBPR\fP \fI\%#51334\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  160851. @ \fI2019\-01\-27 23:49:32 UTC\fP
  160852. .INDENT 2.0
  160853. .IP \(bu 2
  160854. 02b43a0 Merge pull request \fI\%#51334\fP from Ch3LL/merge\-2019.2
  160855. .IP \(bu 2
  160856. 25ec653 Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  160857. .INDENT 2.0
  160858. .IP \(bu 2
  160859. f62cc11 Merge pull request \fI\%#51324\fP from garethgreenaway/1257_something_something_bytes_argh_python2
  160860. .INDENT 2.0
  160861. .IP \(bu 2
  160862. bd7072f Merge branch \(aq2018.3\(aq into 1257_something_something_bytes_argh_python2
  160863. .UNINDENT
  160864. .IP \(bu 2
  160865. b44cd84 Merge pull request \fI\%#51323\fP from garethgreenaway/network_dns_check_test
  160866. .INDENT 2.0
  160867. .IP \(bu 2
  160868. 055eadc Merge branch \(aq2018.3\(aq into network_dns_check_test
  160869. .UNINDENT
  160870. .IP \(bu 2
  160871. be57a0f Merge pull request \fI\%#51321\fP from terminalmage/issue51256
  160872. .INDENT 2.0
  160873. .IP \(bu 2
  160874. d9c4462 Fix 500 error when using wheel_async
  160875. .IP \(bu 2
  160876. c847f54 Swap passed addr for string rather than ipaddress object.
  160877. .IP \(bu 2
  160878. 87f3972 removing another debugging log.
  160879. .IP \(bu 2
  160880. ad64efb Use MagicMock
  160881. .IP \(bu 2
  160882. 172ad2e removing debugging
  160883. .IP \(bu 2
  160884. 5812eae Adding a test to ensure dns_check works as expected.
  160885. .IP \(bu 2
  160886. 0e542c5 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  160887. .UNINDENT
  160888. .IP \(bu 2
  160889. 85e7ac6 Merge pull request \fI\%#51306\fP from s0undt3ch/2018.3
  160890. .INDENT 2.0
  160891. .IP \(bu 2
  160892. 5f0f296 Add 2018.3 codecov config
  160893. .UNINDENT
  160894. .IP \(bu 2
  160895. 5a398a3 Merge pull request \fI\%#51207\fP from twangboy/fix_test_pkg
  160896. .INDENT 2.0
  160897. .IP \(bu 2
  160898. d4ab6d8 Merge branch \(aq2018.3\(aq into fix_test_pkg
  160899. .UNINDENT
  160900. .IP \(bu 2
  160901. 7a97cb4 Merge pull request \fI\%#51252\fP from dwoz/issue\-50221
  160902. .INDENT 2.0
  160903. .IP \(bu 2
  160904. f96828a Merge branch \(aq2018.3\(aq into issue\-50221
  160905. .UNINDENT
  160906. .IP \(bu 2
  160907. 253f5e4 Merge pull request \fI\%#51264\fP from gtmanfred/2018.3
  160908. .INDENT 2.0
  160909. .IP \(bu 2
  160910. f3ebd32 Merge branch \(aq2018.3\(aq into 2018.3
  160911. .UNINDENT
  160912. .IP \(bu 2
  160913. aacc047 Merge pull request \fI\%#51274\fP from twangboy/fix_network
  160914. .INDENT 2.0
  160915. .IP \(bu 2
  160916. 344bf65 Fix tests. We no longer get \fIipaddress\fP instances back.
  160917. .IP \(bu 2
  160918. 345aa5b Fix minion start issue
  160919. .INDENT 2.0
  160920. .IP \(bu 2
  160921. f553be7 tuples don\(aqt have pop
  160922. .IP \(bu 2
  160923. 55ea80e don\(aqt shadow builtin
  160924. .IP \(bu 2
  160925. 6148c50 an argument is not always needed to be passed to open a file
  160926. .UNINDENT
  160927. .UNINDENT
  160928. .IP \(bu 2
  160929. 8a89cb2 Merge pull request \fI\%#51279\fP from twangboy/backport_lgpo
  160930. .INDENT 2.0
  160931. .IP \(bu 2
  160932. 06b1545 Remove network.py patch
  160933. .IP \(bu 2
  160934. 2356f25 Add __context__ support
  160935. .INDENT 2.0
  160936. .IP \(bu 2
  160937. a5255f0 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into issue\-50221
  160938. .UNINDENT
  160939. .UNINDENT
  160940. .IP \(bu 2
  160941. 6796e65 Merge pull request \fI\%#51276\fP from garethgreenaway/merge\-2018.3
  160942. .INDENT 2.0
  160943. .IP \(bu 2
  160944. 44ddc43 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160945. .UNINDENT
  160946. .IP \(bu 2
  160947. 0adde9b Merge pull request \fI\%#51220\fP from sathieu/artifactory\-classifier\-2018.3
  160948. .INDENT 2.0
  160949. .IP \(bu 2
  160950. a85f146 fixes \fI\%#31179\fP by appling the same logic as used in the nexus module
  160951. .UNINDENT
  160952. .IP \(bu 2
  160953. f6a7cad Merge pull request \fI\%#51225\fP from astronouth7303/loader\-docs\-2018.3
  160954. .INDENT 2.0
  160955. .IP \(bu 2
  160956. 6e7da95 Add the tokens system.
  160957. .IP \(bu 2
  160958. 7e2838c Add reference to the execution module docs
  160959. .IP \(bu 2
  160960. f30f9e8 Remove search system
  160961. .IP \(bu 2
  160962. f0cc183 Fileserver modules can be loaded from the fileserver.
  160963. .UNINDENT
  160964. .IP \(bu 2
  160965. 1a2f680 Merge pull request \fI\%#51239\fP from garethgreenaway/51208_file_manage_escaped_double_quotes
  160966. .INDENT 2.0
  160967. .IP \(bu 2
  160968. 4251c0c Merge branch \(aq2018.3\(aq into 51208_file_manage_escaped_double_quotes
  160969. .IP \(bu 2
  160970. 6a9daa7 Merge branch \(aq2018.3\(aq into 51208_file_manage_escaped_double_quotes
  160971. .IP \(bu 2
  160972. 0bf468c Fixing lint. Using a constant intead of looking for the condition in the string.
  160973. .IP \(bu 2
  160974. a233dbc Ensuring we can handle a string that contains single quote + an escaped double quote.
  160975. .UNINDENT
  160976. .IP \(bu 2
  160977. d614127 Merge pull request \fI\%#51261\fP from OrangeDog/patch\-2
  160978. .INDENT 2.0
  160979. .IP \(bu 2
  160980. d809b9b Avoid double\-counting errors and ignore test runs
  160981. .IP \(bu 2
  160982. 6ca7deb Remove unused host parameter and average/disaster keys
  160983. .IP \(bu 2
  160984. 2d44527 Just let zabbix_sender use the config file
  160985. .IP \(bu 2
  160986. 6404e2c Fix fallback command so it\(aqs actually run
  160987. .IP \(bu 2
  160988. b79a55a Fix KeyError in Zabbix returner
  160989. .INDENT 2.0
  160990. .INDENT 3.5
  160991. .INDENT 0.0
  160992. .IP \(bu 2
  160993. 0971035 Merge branch \(aq2018.3\(aq into merge\-2018.3
  160994. .IP \(bu 2
  160995. 243dc06 Merge branch \(aq2017.7\(aq into merge\-2018.3
  160996. .INDENT 2.0
  160997. .IP \(bu 2
  160998. acfb7d8 Update pytest requirements
  160999. .IP \(bu 2
  161000. c19479b Move all of PyTest requirements to its own requiremnts file
  161001. .IP \(bu 2
  161002. 39e633f Merge pull request \fI\%#51246\fP from garethgreenaway/bp\-50358
  161003. .INDENT 2.0
  161004. .IP \(bu 2
  161005. c33c558 Backport \fI\%#50358\fP to 2017.7
  161006. .IP \(bu 2
  161007. c1ea10f Fix py3 managed.file test failure
  161008. .IP \(bu 2
  161009. 537114c Remoe un\-needed log statement
  161010. .IP \(bu 2
  161011. ac978f0 Fix 50221 regression test on Windows
  161012. .IP \(bu 2
  161013. 65f38b5 peserve newlines from pillar data for file.managed
  161014. .IP \(bu 2
  161015. 464d813 Merge branch \(aq2018.3\(aq into fix_test_pkg
  161016. .UNINDENT
  161017. .UNINDENT
  161018. .UNINDENT
  161019. .UNINDENT
  161020. .UNINDENT
  161021. .UNINDENT
  161022. .IP \(bu 2
  161023. 276d621 Merge pull request \fI\%#51197\fP from Ch3LL/tag_manager
  161024. .INDENT 2.0
  161025. .IP \(bu 2
  161026. b9a0705 Merge branch \(aq2018.3\(aq into tag_manager
  161027. .IP \(bu 2
  161028. 210238b Merge branch \(aq2018.3\(aq into tag_manager
  161029. .IP \(bu 2
  161030. 827d6c3 Merge branch \(aq2018.3\(aq into tag_manager
  161031. .IP \(bu 2
  161032. fcdfe69 Add Google Tag Manager to Docs
  161033. .UNINDENT
  161034. .IP \(bu 2
  161035. c8e70a9 Merge pull request \fI\%#51206\fP from terminalmage/fix\-reload
  161036. .INDENT 2.0
  161037. .IP \(bu 2
  161038. 8e23a6c Add missing import
  161039. .IP \(bu 2
  161040. 31ca7c6 Fix usage of reload for PY3 compatibility
  161041. .UNINDENT
  161042. .IP \(bu 2
  161043. 41ae390 Merge pull request \fI\%#51231\fP from terminalmage/issue51056
  161044. .INDENT 2.0
  161045. .IP \(bu 2
  161046. 4a61477 Clarify documentation for the the gitfs "all_saltenvs" config param
  161047. .INDENT 2.0
  161048. .INDENT 3.5
  161049. .INDENT 0.0
  161050. .IP \(bu 2
  161051. 0574476 Merge branch \(aq2018.3\(aq into fix_test_pkg
  161052. .IP \(bu 2
  161053. b91b2c6 Backport PR# 50771 to 2018.3 branch
  161054. .UNINDENT
  161055. .UNINDENT
  161056. .UNINDENT
  161057. .UNINDENT
  161058. .UNINDENT
  161059. .UNINDENT
  161060. .IP \(bu 2
  161061. \fBPR\fP \fI\%#51314\fP: (\fI\%s0undt3ch\fP) [2019.2] Allow running runtests.py using tox
  161062. @ \fI2019\-01\-25 18:56:01 UTC\fP
  161063. .INDENT 2.0
  161064. .IP \(bu 2
  161065. 95607d1 Merge pull request \fI\%#51314\fP from s0undt3ch/features/tox\-runtests\-2019.2
  161066. .IP \(bu 2
  161067. 39fb981 "Tell" coverage to track subprocesses.
  161068. .IP \(bu 2
  161069. f27589a Remove unused imports
  161070. .IP \(bu 2
  161071. 3000d20 Fix tests. We no longer get \fIipaddress\fP instances back.
  161072. .IP \(bu 2
  161073. 8fcf235 Fix minion start issue
  161074. .IP \(bu 2
  161075. a26ba7f Don\(aqt fail the test because of order
  161076. .IP \(bu 2
  161077. 138ca2e Show objects on assertion failure
  161078. .IP \(bu 2
  161079. 840b3d2 Add \fIpytest\-salt\-from\-filenames\fP to pytest requirements
  161080. .IP \(bu 2
  161081. 716bda4 Remove duplicate dependency
  161082. .IP \(bu 2
  161083. 6d62156 Add \fI\&.coveragerc\fP
  161084. .IP \(bu 2
  161085. 6bb56ce Run tests from tox, wether runtests or pytest
  161086. .UNINDENT
  161087. .IP \(bu 2
  161088. \fBPR\fP \fI\%#51307\fP: (\fI\%s0undt3ch\fP) Add 2019.2 codecov config
  161089. @ \fI2019\-01\-24 13:34:25 UTC\fP
  161090. .INDENT 2.0
  161091. .IP \(bu 2
  161092. b348034 Merge pull request \fI\%#51307\fP from s0undt3ch/2019.2
  161093. .IP \(bu 2
  161094. 495aa5c Add 2019.2 codecov config
  161095. .UNINDENT
  161096. .IP \(bu 2
  161097. \fBPR\fP \fI\%#51280\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2019.2.0rc1 to 2019.2
  161098. @ \fI2019\-01\-23 07:08:32 UTC\fP
  161099. .INDENT 2.0
  161100. .IP \(bu 2
  161101. d224096 Merge pull request \fI\%#51280\fP from garethgreenaway/merge\-2019.2\-rc
  161102. .IP \(bu 2
  161103. e78ede2 Merge branch \(aq2019.2\(aq into merge\-2019.2\-rc
  161104. .IP \(bu 2
  161105. a425de6 Merge branch \(aq2019.2.0.rc1\(aq into merge\-2019.2\-rc
  161106. .UNINDENT
  161107. .IP \(bu 2
  161108. \fBPR\fP \fI\%#51277\fP: (\fI\%garethgreenaway\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161109. @ \fI2019\-01\-23 07:01:29 UTC\fP
  161110. .INDENT 2.0
  161111. .IP \(bu 2
  161112. 8596ee4 Merge pull request \fI\%#51277\fP from garethgreenaway/merge\-2019.2
  161113. .IP \(bu 2
  161114. f05e754 Merge branch \(aq2019.2\(aq into merge\-2019.2
  161115. .UNINDENT
  161116. .IP \(bu 2
  161117. \fBISSUE\fP \fI\%#51273\fP: (\fI\%isbm\fP) How to properly fix API? (refs: \fI\%#51285\fP)
  161118. .IP \(bu 2
  161119. \fBPR\fP \fI\%#51285\fP: (\fI\%garethgreenaway\fP) [2019.2] Add metadata to accepted keyword arguments
  161120. @ \fI2019\-01\-22 23:07:44 UTC\fP
  161121. .INDENT 2.0
  161122. .IP \(bu 2
  161123. 8cca51b Merge pull request \fI\%#51285\fP from garethgreenaway/51273_metadata_auth_keyword_argument
  161124. .IP \(bu 2
  161125. bd82d80 Ensure metadata is an accepted keyword argument for authentication functions.
  161126. .IP \(bu 2
  161127. d0d5726 Merge branch \(aq2018.3\(aq into merge\-2019.2
  161128. .IP \(bu 2
  161129. a6a9040 Merge pull request \fI\%#51179\fP from terminalmage/fix\-regex\-chars
  161130. .INDENT 2.0
  161131. .IP \(bu 2
  161132. 9951b8d Fix possible oversight in nodegroup modifications
  161133. .UNINDENT
  161134. .IP \(bu 2
  161135. d5acd5b Merge pull request \fI\%#51170\fP from dwoz/issue51158
  161136. .INDENT 2.0
  161137. .IP \(bu 2
  161138. b69c002 Fix saltmod roster test
  161139. .IP \(bu 2
  161140. 2594f24 Roster defines the roster system not a file
  161141. .IP \(bu 2
  161142. 05836b3 Merge branch \(aq2018.3\(aq into issue51158
  161143. .IP \(bu 2
  161144. bf47f6f Fix linter
  161145. .IP \(bu 2
  161146. 6223596 Honor roster file for ssh orchestrations
  161147. .UNINDENT
  161148. .IP \(bu 2
  161149. 5543a53 Update pytest requirements
  161150. .IP \(bu 2
  161151. f958df5 Move all of PyTest requirements to its own requiremnts file
  161152. .IP \(bu 2
  161153. 8f8ebbc Merge pull request \fI\%#51226\fP from garethgreenaway/51195_handle_spaces_in_fstab_opts
  161154. .INDENT 2.0
  161155. .IP \(bu 2
  161156. 1902ce8 Merge branch \(aq2018.3\(aq into 51195_handle_spaces_in_fstab_opts
  161157. .UNINDENT
  161158. .IP \(bu 2
  161159. e3a9e99 Merge pull request \fI\%#51233\fP from Ch3LL/bp\-51105
  161160. .INDENT 2.0
  161161. .IP \(bu 2
  161162. eef49e8 Merge branch \(aq2018.3\(aq into bp\-51105
  161163. .UNINDENT
  161164. .IP \(bu 2
  161165. e53e9b1 Merge pull request \fI\%#51230\fP from Ch3LL/merge\-2018.3
  161166. .INDENT 2.0
  161167. .IP \(bu 2
  161168. 0ef7675 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  161169. .IP \(bu 2
  161170. 4a12c5f Merge pull request \fI\%#50852\fP from mirceaulinic/fix\-capirca
  161171. .INDENT 2.0
  161172. .IP \(bu 2
  161173. fa91267 Merge branch \(aq2017.7\(aq into fix\-capirca
  161174. .IP \(bu 2
  161175. 71913ff Merge branch \(aq2017.7\(aq into fix\-capirca
  161176. .IP \(bu 2
  161177. 6fc3484 Lint?
  161178. .IP \(bu 2
  161179. 3d56750 Extra newline for lint
  161180. .IP \(bu 2
  161181. 5176cd8 Improve the Capirca and related modules for ACL config generation
  161182. .UNINDENT
  161183. .IP \(bu 2
  161184. 3f4759b Merge pull request \fI\%#50923\fP from astronouth7303/patch\-2
  161185. .INDENT 2.0
  161186. .IP \(bu 2
  161187. 4f631a6 Document {% include %}
  161188. .UNINDENT
  161189. .IP \(bu 2
  161190. 210e817 Merge pull request \fI\%#51111\fP from s0undt3ch/2017.7
  161191. .INDENT 2.0
  161192. .IP \(bu 2
  161193. 08e0ae7 Update to salt\-bootstrap v2019.01.08
  161194. .INDENT 2.0
  161195. .IP \(bu 2
  161196. c3520aa Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  161197. .IP \(bu 2
  161198. cd80548 When test=True and there are permissions changes, report it.
  161199. .IP \(bu 2
  161200. 89345eb Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  161201. .UNINDENT
  161202. .UNINDENT
  161203. .UNINDENT
  161204. .UNINDENT
  161205. .IP \(bu 2
  161206. \fBISSUE\fP \fI\%#50538\fP: (\fI\%sjorge\fP) salt.modules.pdbedit broken on Samba 4.9.x (refs: \fI\%#50540\fP, \fI\%#51221\fP)
  161207. .IP \(bu 2
  161208. \fBPR\fP \fI\%#51221\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50538\fP into 2019.2
  161209. @ \fI2019\-01\-18 22:42:36 UTC\fP
  161210. .INDENT 2.0
  161211. .IP \(bu 2
  161212. \fBPR\fP \fI\%#50540\fP: (\fI\%sjorge\fP) Fix pdbedit module on samba 4.9 (Fixes \fI\%#50538\fP)
  161213. .IP \(bu 2
  161214. 0ccd5c3 Merge pull request \fI\%#51221\fP from Ch3LL/bp\-50540
  161215. .IP \(bu 2
  161216. 223e7c0 Merge branch \(aq2019.2\(aq into bp\-50540
  161217. .UNINDENT
  161218. .IP \(bu 2
  161219. \fBPR\fP \fI\%#51232\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161220. @ \fI2019\-01\-18 20:51:37 UTC\fP
  161221. .INDENT 2.0
  161222. .IP \(bu 2
  161223. 3edaf18 Merge pull request \fI\%#51232\fP from Ch3LL/merge\-2019.2
  161224. .IP \(bu 2
  161225. 3b966f3 Merge branch \(aq2019.2\(aq into merge\-2019.2
  161226. .IP \(bu 2
  161227. ffe23fa Merge branch \(aq2018.3\(aq into \(aq2019.2\(aq
  161228. .INDENT 2.0
  161229. .IP \(bu 2
  161230. 26008ef Merge pull request \fI\%#51212\fP from sathieu/file_roots_slash
  161231. .INDENT 2.0
  161232. .IP \(bu 2
  161233. b769f18 Allow slash in file_roots envs
  161234. .IP \(bu 2
  161235. f9437e2 Test for file_roots envs with slash leads to "No such file or directory"
  161236. .UNINDENT
  161237. .IP \(bu 2
  161238. 5916282 Merge pull request \fI\%#51209\fP from garethgreenaway/bp\-51124
  161239. .INDENT 2.0
  161240. .IP \(bu 2
  161241. 82acce4 Handle encoding when opening file for both py2/py3
  161242. .UNINDENT
  161243. .IP \(bu 2
  161244. 094bd33 Merge pull request \fI\%#51184\fP from twangboy/fix_auditpol
  161245. .INDENT 2.0
  161246. .IP \(bu 2
  161247. 2e68d35 directly call cmd.run_all
  161248. .UNINDENT
  161249. .IP \(bu 2
  161250. ac71922 Merge pull request \fI\%#51191\fP from Ch3LL/bp\-50918
  161251. .INDENT 2.0
  161252. .IP \(bu 2
  161253. 7300d84 Skip debian tests on Windows
  161254. .IP \(bu 2
  161255. 4622433 Fix \fItest_debian_ip\fP on Windows
  161256. .UNINDENT
  161257. .IP \(bu 2
  161258. e7f53a3 Merge pull request \fI\%#51144\fP from jgleissner/2018.3\-azurearm\-py3
  161259. .INDENT 2.0
  161260. .IP \(bu 2
  161261. 3178f1a msazure.py: remove unused imports
  161262. .IP \(bu 2
  161263. 99a4b9d azurearm: fix list_locations
  161264. .IP \(bu 2
  161265. aebe34b azurearm: fix show_instance function
  161266. .IP \(bu 2
  161267. d80669f msazure: fix object_to_dict for python 3
  161268. .UNINDENT
  161269. .IP \(bu 2
  161270. 1206f92 Merge pull request \fI\%#51171\fP from twangboy/fix_crypt
  161271. .INDENT 2.0
  161272. .IP \(bu 2
  161273. 6caa93b Add random sleep time to avoid overloading Windows
  161274. .UNINDENT
  161275. .IP \(bu 2
  161276. a96deed Merge pull request \fI\%#51174\fP from jpsv/2018.3
  161277. .INDENT 2.0
  161278. .IP \(bu 2
  161279. 055823e Update opsgenie.py
  161280. .IP \(bu 2
  161281. 501c8df Merge branch \(aq2018.3\(aq into 2018.3
  161282. .IP \(bu 2
  161283. 220aa8a Update opsgenie.py
  161284. .IP \(bu 2
  161285. 5dc21cc Update to from V1 API to V2
  161286. .IP \(bu 2
  161287. f93ce7c Update to V2 API
  161288. .UNINDENT
  161289. .IP \(bu 2
  161290. 563d487 Merge pull request \fI\%#51010\fP from amendlik/ldap\-groups
  161291. .INDENT 2.0
  161292. .IP \(bu 2
  161293. cd336ed Merge branch \(aq2018.3\(aq into ldap\-groups
  161294. .IP \(bu 2
  161295. 94f8ee4 Update unit tests for auth.ldap
  161296. .IP \(bu 2
  161297. 08e36d0 Allow unauthenticated bind for listing LDAP groups
  161298. .UNINDENT
  161299. .IP \(bu 2
  161300. 6dc3752 Merge pull request \fI\%#51112\fP from s0undt3ch/2018.3
  161301. .INDENT 2.0
  161302. .IP \(bu 2
  161303. 4f1d846 Update to salt\-bootstrap v2019.01.08
  161304. .UNINDENT
  161305. .IP \(bu 2
  161306. b19c990 Merge pull request \fI\%#51097\fP from terminalmage/fix\-keyerror\-raise
  161307. .INDENT 2.0
  161308. .IP \(bu 2
  161309. a3c0b49 Fix poorly\-written test
  161310. .IP \(bu 2
  161311. c0ff7b1 Fix more incorrect exception raises
  161312. .IP \(bu 2
  161313. f11dbcc Fix improper KeyError raise
  161314. .UNINDENT
  161315. .IP \(bu 2
  161316. 8920a86 Merge pull request \fI\%#51169\fP from twangboy/fix_git_state
  161317. .INDENT 2.0
  161318. .IP \(bu 2
  161319. f2d1180 More descriptive error when missing GitPython or PyGit2
  161320. .UNINDENT
  161321. .IP \(bu 2
  161322. 58eede6 Merge pull request \fI\%#51173\fP from dwoz/issue51160
  161323. .INDENT 2.0
  161324. .IP \(bu 2
  161325. 11cc7b3 Remove un\-needed test
  161326. .IP \(bu 2
  161327. 0f87812 Merge develop, Revert exception handling
  161328. .IP \(bu 2
  161329. 7365a1a Pass bytes to idna
  161330. .UNINDENT
  161331. .IP \(bu 2
  161332. 83c38c6 Revert "wordsmithing"
  161333. .IP \(bu 2
  161334. a40739c wordsmithing
  161335. .IP \(bu 2
  161336. b348ace Make sure blackout tests clean up after themselves. Properly.
  161337. .IP \(bu 2
  161338. 68a12d5 These should not be considered destructive tests
  161339. .IP \(bu 2
  161340. 475404d fix docstring quote style
  161341. .IP \(bu 2
  161342. 71c3574 Revert "backport test improvements from develop"
  161343. .IP \(bu 2
  161344. e32d219 backport test improvements from develop Bogus random test failures forklifted from develop at 414bfe61a4fbe6f84be32242924f23c7126c24d6
  161345. .IP \(bu 2
  161346. 42654d8 socket.connect needs a tuple TypeError \fI\%https://docs.python.org/2/library/socket.html\fP RTFD "Note This method has historically accepted a pair of parameters for AF_INET addresses instead of only a tuple. This was never intentional and is no longer available in Python 2.0 and later. "
  161347. .IP \(bu 2
  161348. 27254fc syntax error bad parentheses
  161349. .IP \(bu 2
  161350. 24bb94f Don\(aqt ip_bracket addresses returned by check_dns.
  161351. .IP \(bu 2
  161352. 02b825e expose error in tests
  161353. .IP \(bu 2
  161354. 0a92c46 Need more detail on test failure
  161355. .IP \(bu 2
  161356. 3574698 ip_address does not need str() and parse_host_port handles ipv6 or ipv4
  161357. .IP \(bu 2
  161358. 7a6bc57 avoid TypeError by not constructing an ip_address from an ip_address
  161359. .IP \(bu 2
  161360. 35410dd try to debug error in tests (revert me)
  161361. .IP \(bu 2
  161362. 2f8ca47 wordsmithing
  161363. .IP \(bu 2
  161364. 1dd1f7d parsing logic error
  161365. .IP \(bu 2
  161366. 98041c1 minimize diff
  161367. .IP \(bu 2
  161368. c92a247 don\(aqt try to handle/log test exception
  161369. .IP \(bu 2
  161370. eb60586 remove bad extra test assertion inside exception handler
  161371. .IP \(bu 2
  161372. e1e5d87 checking for truthiness better than len
  161373. .IP \(bu 2
  161374. a984a43 typo in ipaddress.IPv6Address()
  161375. .IP \(bu 2
  161376. 5fc6c60 clear up lint, disambiguation
  161377. .IP \(bu 2
  161378. 8c6dfea lint pep8 whitespace
  161379. .IP \(bu 2
  161380. f9594b8 don\(aqt test invalid combination
  161381. .IP \(bu 2
  161382. de823fd fix good_host_ports iteration
  161383. .IP \(bu 2
  161384. c5a5b34 test assertion correction
  161385. .IP \(bu 2
  161386. e169e0d fixup rebase merge goof
  161387. .IP \(bu 2
  161388. d28bab6 fix test setup
  161389. .IP \(bu 2
  161390. 42c710e lint pep8
  161391. .IP \(bu 2
  161392. 15c6deb fix horrible mistakes
  161393. .IP \(bu 2
  161394. c092baf fix indentation doh
  161395. .IP \(bu 2
  161396. 9080745 debug ipaddress.ip_address TypeError
  161397. .IP \(bu 2
  161398. 8bd82f4 debug ipaddress.ip_address TypeError
  161399. .IP \(bu 2
  161400. 080ab70 fix parse_host_port() parse error on hostname only arg
  161401. .IP \(bu 2
  161402. 571603c coverage for master host:port ipv4 and ipv6 config value support fix test_parse_host_port bad values lint
  161403. .IP \(bu 2
  161404. f14ff16 fix minion zmq connecting to master configured as IPv6 address
  161405. .IP \(bu 2
  161406. 9d72f13 pylint E741 triggers error in salt\-pylint E8741 (unhandled)
  161407. .IP \(bu 2
  161408. 2052838 avoid error on (redundant) is_ip check
  161409. .IP \(bu 2
  161410. 0eaeb1e avoid error on (redundant) is_ip check
  161411. .IP \(bu 2
  161412. f8bd08e fix parse_host_port() is_ip call
  161413. .IP \(bu 2
  161414. 89519fe fix parse_host_port() parse error on hostname only arg
  161415. .IP \(bu 2
  161416. 1417528 fix parse_host_port() bad exception on hostname only arg
  161417. .IP \(bu 2
  161418. 194a024 coverage for master host:port ipv4 and ipv6 config value support fix test_parse_host_port bad values lint
  161419. .IP \(bu 2
  161420. df73388 fix minion zmq connecting to master configured as IPv6 address
  161421. .IP \(bu 2
  161422. 06854cf Merge pull request \fI\%#51147\fP from Ch3LL/merge\-2018.3
  161423. .INDENT 2.0
  161424. .IP \(bu 2
  161425. d39d8b7 Merge branch \(aq2018.3\(aq into merge\-2018.3
  161426. .UNINDENT
  161427. .IP \(bu 2
  161428. b79c09e Merge pull request \fI\%#51161\fP from amendlik/long\-hostname
  161429. .INDENT 2.0
  161430. .IP \(bu 2
  161431. 6fcc4ad Merge branch \(aq2018.3\(aq into long\-hostname
  161432. .UNINDENT
  161433. .IP \(bu 2
  161434. 1424734 Merge pull request \fI\%#51159\fP from rkrieger/fix\-issue\-51067
  161435. .INDENT 2.0
  161436. .IP \(bu 2
  161437. 1440ccf Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  161438. .IP \(bu 2
  161439. 1a4e307 Ignore exceptions when generating the minion ID
  161440. .UNINDENT
  161441. .IP \(bu 2
  161442. 5e37326 Merge pull request \fI\%#51146\fP from terminalmage/fix\-vsphere\-tuple\-issue
  161443. .INDENT 2.0
  161444. .IP \(bu 2
  161445. 5d60022 Fix invalid assignment in vsphere module
  161446. .UNINDENT
  161447. .IP \(bu 2
  161448. fad8621 Merge pull request \fI\%#51154\fP from twangboy/auditpol
  161449. .INDENT 2.0
  161450. .IP \(bu 2
  161451. 9064376 Add support for Advanced Audit policies
  161452. .UNINDENT
  161453. .IP \(bu 2
  161454. f7a100c Merge pull request \fI\%#51151\fP from Ch3LL/bp_51061
  161455. .INDENT 2.0
  161456. .IP \(bu 2
  161457. ffdae27 When writing output to stdout we want to ensure that the data is a string not bytes. Under py2 the salt.utils.data.encode function results in a string but under py3 the result is a bytestring. Swapping out salt.utils.data.encode for salt.utils.stringutils.to_str.
  161458. .UNINDENT
  161459. .IP \(bu 2
  161460. 3a50a57 Merge pull request \fI\%#51150\fP from Ch3LL/bp\-49508
  161461. .INDENT 2.0
  161462. .IP \(bu 2
  161463. 7ae53ad Do not silently ignore errors.
  161464. .IP \(bu 2
  161465. deb0134 Convert to string before sending via \(aqpublish\(aq.
  161466. .IP \(bu 2
  161467. 651c551 Use to_str salt.utils when writing to a file.
  161468. .UNINDENT
  161469. .IP \(bu 2
  161470. 8bb589d Merge pull request \fI\%#51152\fP from garethgreenaway/50433_handle_grants_better
  161471. .INDENT 2.0
  161472. .IP \(bu 2
  161473. f7caa4d Fixing lint
  161474. .IP \(bu 2
  161475. e8c8c0f Adding some tests to ensure "ALL PRIVILEGES" is handled correctly in 8.0 and 5.6
  161476. .IP \(bu 2
  161477. b4bfd9f Add additional grants. Adding logic to handle when ALL or ALL PRIVILEGES is passed for the grant, including some logic to handle the fact that the grants are split when show grants is run for a particular user.
  161478. .INDENT 2.0
  161479. .IP \(bu 2
  161480. 74edfd9 Fix pylint
  161481. .IP \(bu 2
  161482. 81a3d47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  161483. .IP \(bu 2
  161484. 8a76a19 Merge pull request \fI\%#50858\fP from jasonarewhy/bugfix\-2017.7/ubuntu\-networking\-searchdomain
  161485. .INDENT 2.0
  161486. .IP \(bu 2
  161487. 3395a3d Merge branch \(aq2017.7\(aq into bugfix\-2017.7/ubuntu\-networking\-searchdomain
  161488. .IP \(bu 2
  161489. 69d25aa update debian_ip test
  161490. .IP \(bu 2
  161491. a6b896c get searchdomain in Ubuntu 12+
  161492. .UNINDENT
  161493. .UNINDENT
  161494. .UNINDENT
  161495. .IP \(bu 2
  161496. dda1ebb Merge pull request \fI\%#51133\fP from 5uper5hoot/issue\-\fI\%#50849\fP
  161497. .INDENT 2.0
  161498. .IP \(bu 2
  161499. ec14e13 Fixes mysql server version comparison.
  161500. .UNINDENT
  161501. .IP \(bu 2
  161502. 9d4321d Merge pull request \fI\%#50878\fP from max\-arnold/output\-docs
  161503. .INDENT 2.0
  161504. .IP \(bu 2
  161505. d7403da Fix profile outputter docs
  161506. .UNINDENT
  161507. .IP \(bu 2
  161508. ce87504 Merge pull request \fI\%#51076\fP from OrangeDog/patch\-1
  161509. .INDENT 2.0
  161510. .IP \(bu 2
  161511. 568e4fb Revert add \-> check
  161512. .IP \(bu 2
  161513. 4d7ebe7 Typos in index_template_present documentation
  161514. .UNINDENT
  161515. .IP \(bu 2
  161516. d08abf4 Merge pull request \fI\%#51081\fP from garethgreenaway/merge\-2018.3
  161517. .INDENT 2.0
  161518. .IP \(bu 2
  161519. 027804a Merge branch \(aq2018.3\(aq into merge\-2018.3
  161520. .UNINDENT
  161521. .IP \(bu 2
  161522. 335088b Merge pull request \fI\%#51080\fP from garethgreenaway/50966_nxos_ensure_kwargs_list
  161523. .IP \(bu 2
  161524. 230a66b Merge branch \(aq2018.3\(aq into 50966_nxos_ensure_kwargs_list
  161525. .IP \(bu 2
  161526. 629dc25 Ensure kwargs is a list before we attempt to loop through. Similar fix to \fI\%https://github.com/rallytime/salt/commit/430c462f34eb4eedf2384e06fbee8dc19b8026f6\fP in the proxy module.
  161527. .IP \(bu 2
  161528. a20791b Merge branch \(aq2018.3\(aq into merge\-2018.3
  161529. .IP \(bu 2
  161530. 9386aab Merge branch \(aq2017.7\(aq into merge\-2018.3
  161531. .IP \(bu 2
  161532. 998feca Merge pull request \fI\%#51030\fP from terminalmage/issue38502
  161533. .IP \(bu 2
  161534. 6dbd81f Add unit test to ensure we don\(aqt diff bare repos
  161535. .IP \(bu 2
  161536. 3c4b243 Merge branch \(aq2019.2\(aq into bp\-50540
  161537. .UNINDENT
  161538. .UNINDENT
  161539. .IP \(bu 2
  161540. \fBPR\fP \fI\%#51234\fP: (\fI\%KChandrashekhar\fP) Added a note in Release notes about py 2.7 EOL
  161541. @ \fI2019\-01\-18 15:53:51 UTC\fP
  161542. .INDENT 2.0
  161543. .IP \(bu 2
  161544. e6ab913 Merge pull request \fI\%#51234\fP from KChandrashekhar/2019.2\-docs
  161545. .IP \(bu 2
  161546. e4afc81 Addressing Megan\(aqs comment to fix the py2.7 deprecation message in release notes
  161547. .IP \(bu 2
  161548. 8ec0296 Added a note in Release notes about py 2.7 EOL
  161549. .UNINDENT
  161550. .IP \(bu 2
  161551. \fBPR\fP \fI\%#51198\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2019.2.0.rc1 to 2019.2
  161552. @ \fI2019\-01\-17 21:23:34 UTC\fP
  161553. .INDENT 2.0
  161554. .IP \(bu 2
  161555. 644ef8c Merge pull request \fI\%#51198\fP from Ch3LL/merge\-2019.2\-rc
  161556. .IP \(bu 2
  161557. 810c611 Merge branch \(aq2019.2.0.rc1\(aq into 2019.2
  161558. .IP \(bu 2
  161559. 3f61e77 Fix pdbedit module on samba 4.9 (Fixes \fI\%#50538\fP)
  161560. .UNINDENT
  161561. .IP \(bu 2
  161562. \fBPR\fP \fI\%#51148\fP: (\fI\%Ch3LL\fP) [2019.2] Merge forward from 2018.3 to 2019.2
  161563. @ \fI2019\-01\-14 22:49:02 UTC\fP
  161564. .INDENT 2.0
  161565. .IP \(bu 2
  161566. 12901c3 Merge pull request \fI\%#51148\fP from Ch3LL/merge\-2019.2
  161567. .IP \(bu 2
  161568. 1d7329a Fix pylint
  161569. .IP \(bu 2
  161570. 5271636 Fixes mysql server version comparison.
  161571. .IP \(bu 2
  161572. b53f171 Ensure kwargs is a list before we attempt to loop through. Similar fix to \fI\%https://github.com/rallytime/salt/commit/430c462f34eb4eedf2384e06fbee8dc19b8026f6\fP in the proxy module.
  161573. .IP \(bu 2
  161574. d0f2d15 Revert add \-> check
  161575. .IP \(bu 2
  161576. 437d8b5 Typos in index_template_present documentation
  161577. .IP \(bu 2
  161578. 3bf189e Add unit test to ensure we don\(aqt diff bare repos
  161579. .IP \(bu 2
  161580. 2f8e391 Fix profile outputter docs
  161581. .UNINDENT
  161582. .IP \(bu 2
  161583. \fBPR\fP \fI\%#51100\fP: (\fI\%dwoz\fP) Fix typo in method name (2019.2)
  161584. @ \fI2019\-01\-08 18:12:23 UTC\fP
  161585. .INDENT 2.0
  161586. .IP \(bu 2
  161587. 4c2d76d Merge pull request \fI\%#51100\fP from dwoz/cloud_typo
  161588. .IP \(bu 2
  161589. 60f53d0 Fix typo in method name
  161590. .UNINDENT
  161591. .IP \(bu 2
  161592. \fBPR\fP \fI\%#51099\fP: (\fI\%terminalmage\fP) Fix improper exception raises (2019.2)
  161593. @ \fI2019\-01\-08 17:55:53 UTC\fP
  161594. .INDENT 2.0
  161595. .IP \(bu 2
  161596. 39b28f4 Merge pull request \fI\%#51099\fP from terminalmage/fix\-exception\-raise
  161597. .IP \(bu 2
  161598. 2a25530 Fix improper exception raise
  161599. .UNINDENT
  161600. .IP \(bu 2
  161601. \fBPR\fP \fI\%#51084\fP: (\fI\%s0undt3ch\fP) [fluorine] Cleanup the singleton instances map.
  161602. @ \fI2019\-01\-07 22:03:29 UTC\fP
  161603. .INDENT 2.0
  161604. .IP \(bu 2
  161605. 8827193 Merge pull request \fI\%#51084\fP from s0undt3ch/merge\-singleton\-last\-ref\-close\-fluorine
  161606. .IP \(bu 2
  161607. 979fbac Merge branch \(aq2019.2\(aq into merge\-singleton\-last\-ref\-close\-fluorine
  161608. .IP \(bu 2
  161609. 63f051a Merge branch \(aq2019.2\(aq into merge\-singleton\-last\-ref\-close\-fluorine
  161610. .IP \(bu 2
  161611. bd6c46d Cleanup the singleton instances map.
  161612. .UNINDENT
  161613. .UNINDENT
  161614. .SS Salt 2019.2.2 Release Notes
  161615. .sp
  161616. Version 2019.2.2 is a bugfix release for 2019.2.0\&.
  161617. .SS Statistics
  161618. .INDENT 0.0
  161619. .IP \(bu 2
  161620. Total Merges: \fB26\fP
  161621. .IP \(bu 2
  161622. Total Issue References: \fB12\fP
  161623. .IP \(bu 2
  161624. Total PR References: \fB26\fP
  161625. .IP \(bu 2
  161626. Contributors: \fB13\fP (\fI\%Akm0d\fP, \fI\%Ch3LL\fP, \fI\%Oloremo\fP, \fI\%OrlandoArcapix\fP, \fI\%bryceml\fP, \fI\%dhiltonp\fP, \fI\%dwoz\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%javierbertoli\fP, \fI\%pizzapanther\fP, \fI\%s0undt3ch\fP, \fI\%twangboy\fP)
  161627. .UNINDENT
  161628. .SS Changelog for v2019.2.1..v2019.2.2
  161629. .sp
  161630. \fIGenerated at: 2019\-10\-11 20:54:15 UTC\fP
  161631. .INDENT 0.0
  161632. .IP \(bu 2
  161633. \fBPR\fP \fI\%#54919\fP: (\fI\%twangboy\fP) Add missing docs for win_wusa state and module (2019.2.1)
  161634. @ \fI2019\-10\-11 18:28:11 UTC\fP
  161635. .INDENT 2.0
  161636. .IP \(bu 2
  161637. 7d253bc Merge pull request \fI\%#54919\fP from twangboy/update_docs
  161638. .IP \(bu 2
  161639. 57ff199 Add docs for win_wusa
  161640. .UNINDENT
  161641. .IP \(bu 2
  161642. \fBISSUE\fP \fI\%#54941\fP: (\fI\%UtahDave\fP) Pillar data is refreshed for EVERY salt command in 2019.2.1 and 2019.2.2 (refs: \fI\%#54942\fP)
  161643. .IP \(bu 2
  161644. \fBPR\fP \fI\%#54942\fP: (\fI\%dwoz\fP) Fix for 54941 pillar_refresh regression
  161645. @ \fI2019\-10\-11 18:27:31 UTC\fP
  161646. .INDENT 2.0
  161647. .IP \(bu 2
  161648. 2f817bc Merge pull request \fI\%#54942\fP from dwoz/fix\-54941
  161649. .IP \(bu 2
  161650. cb5d326 Add a test for 54941 using test.ping
  161651. .IP \(bu 2
  161652. 348d1c4 Add regression tests for issue 54941
  161653. .IP \(bu 2
  161654. 766f3ca Initial commit of a potential fix for 54941
  161655. .UNINDENT
  161656. .IP \(bu 2
  161657. \fBPR\fP \fI\%#54897\fP: (\fI\%bryceml\fP) update version numbers to be correct
  161658. @ \fI2019\-10\-05 01:59:14 UTC\fP
  161659. .INDENT 2.0
  161660. .IP \(bu 2
  161661. f783108 Merge pull request \fI\%#54897\fP from bryceml/2019.2.1_fix_docs
  161662. .IP \(bu 2
  161663. e9a2a70 update version numbers to be correct
  161664. .UNINDENT
  161665. .IP \(bu 2
  161666. \fBPR\fP \fI\%#54894\fP: (\fI\%bryceml\fP) 2019.2.1 fix docs
  161667. @ \fI2019\-10\-04 22:31:26 UTC\fP
  161668. .INDENT 2.0
  161669. .IP \(bu 2
  161670. 3233663 Merge pull request \fI\%#54894\fP from bryceml/2019.2.1_fix_docs
  161671. .IP \(bu 2
  161672. 2456aaa Porting PR \fI\%#52948\fP to 2019.2.1
  161673. .IP \(bu 2
  161674. 94a1e3b Porting PR \fI\%#52752\fP to 2019.2.1
  161675. .IP \(bu 2
  161676. c7b7474 modifying saltconf ads
  161677. .IP \(bu 2
  161678. d48057b add new saltconf ads
  161679. .UNINDENT
  161680. .IP \(bu 2
  161681. \fBPR\fP \fI\%#54858\fP: (\fI\%frogunder\fP) remove in progress from releasenotes 2019.2.2
  161682. @ \fI2019\-10\-02 20:42:59 UTC\fP
  161683. .INDENT 2.0
  161684. .IP \(bu 2
  161685. 4b06eca Merge pull request \fI\%#54858\fP from frogunder/releasenotes_remove2019.2.2
  161686. .IP \(bu 2
  161687. a697abd remove in progress from releasenotes 2019.2.2
  161688. .UNINDENT
  161689. .IP \(bu 2
  161690. \fBPR\fP \fI\%#54854\fP: (\fI\%frogunder\fP) releasenotes 2019.2.2
  161691. @ \fI2019\-10\-02 18:58:21 UTC\fP
  161692. .INDENT 2.0
  161693. .IP \(bu 2
  161694. aaf2d1c Merge pull request \fI\%#54854\fP from frogunder/release_notes_2019.2.2
  161695. .IP \(bu 2
  161696. a41dc59 Update 2019.2.2.rst
  161697. .IP \(bu 2
  161698. 9bea043 releasenotes 2019.2.2
  161699. .UNINDENT
  161700. .IP \(bu 2
  161701. \fBPR\fP \fI\%#54852\fP: (\fI\%frogunder\fP) Update man pages for 2019.2.2
  161702. @ \fI2019\-10\-02 18:27:07 UTC\fP
  161703. .INDENT 2.0
  161704. .IP \(bu 2
  161705. 10d433f Merge pull request \fI\%#54852\fP from frogunder/man_pages_2019.2.2
  161706. .IP \(bu 2
  161707. 92bc4b2 Update man pages for 2019.2.2
  161708. .UNINDENT
  161709. .IP \(bu 2
  161710. \fBPR\fP \fI\%#54845\fP: (\fI\%s0undt3ch\fP) Remove debug print
  161711. @ \fI2019\-10\-02 17:38:21 UTC\fP
  161712. .INDENT 2.0
  161713. .IP \(bu 2
  161714. 8ca6b20 Merge pull request \fI\%#54845\fP from s0undt3ch/hotfix/event\-return\-fix\-2019.2.1
  161715. .IP \(bu 2
  161716. 3937890 Remove debug print
  161717. .UNINDENT
  161718. .IP \(bu 2
  161719. \fBISSUE\fP \fI\%#54755\fP: (\fI\%Reiner030\fP) 2019.2.1/2019.2.0 pip failures even when not using pip (refs: \fI\%#54826\fP)
  161720. .IP \(bu 2
  161721. \fBPR\fP \fI\%#54826\fP: (\fI\%dwoz\fP) Fix issue 54755 and add regression tests
  161722. @ \fI2019\-10\-01 20:07:46 UTC\fP
  161723. .INDENT 2.0
  161724. .IP \(bu 2
  161725. 9e3914a Merge pull request \fI\%#54826\fP from dwoz/issue_54755
  161726. .IP \(bu 2
  161727. 0bad9cb Handle locals and globals separatly
  161728. .IP \(bu 2
  161729. bcbe9a2 Only purge pip when needed
  161730. .IP \(bu 2
  161731. d2f98ca Fix issue 54755 and add regression tests
  161732. .UNINDENT
  161733. .IP \(bu 2
  161734. \fBPR\fP \fI\%#54830\fP: (\fI\%frogunder\fP) Add known issues to 2019.2.1 release notes
  161735. @ \fI2019\-10\-01 16:23:30 UTC\fP
  161736. .INDENT 2.0
  161737. .IP \(bu 2
  161738. ba569d0 Merge pull request \fI\%#54830\fP from frogunder/update_relasenotes_2019.2.1
  161739. .IP \(bu 2
  161740. 8cdb27b Update 2019.2.1.rst
  161741. .IP \(bu 2
  161742. 14f955c Add known issues to 2019.2.1 release notes
  161743. .UNINDENT
  161744. .IP \(bu 2
  161745. \fBISSUE\fP \fI\%#54521\fP: (\fI\%Oloremo\fP) [Regression] Failhard, batch and retcodes (refs: \fI\%#54806\fP)
  161746. .IP \(bu 2
  161747. \fBPR\fP \fI\%#54806\fP: (\fI\%Oloremo\fP) [Regression] Batch with failhard fix
  161748. @ \fI2019\-10\-01 14:51:47 UTC\fP
  161749. .INDENT 2.0
  161750. .IP \(bu 2
  161751. 433b6fa Merge pull request \fI\%#54806\fP from Oloremo/failhard\-batch\-fix\-2019.2.1
  161752. .IP \(bu 2
  161753. 6684793 Merge branch \(aq2019.2.1\(aq into failhard\-batch\-fix\-2019.2.1
  161754. .IP \(bu 2
  161755. 3e0e928 Added tests for cli and runner
  161756. .IP \(bu 2
  161757. 2416516 Made batch work properly with failhard in cli and runner
  161758. .UNINDENT
  161759. .IP \(bu 2
  161760. \fBISSUE\fP \fI\%#54820\fP: (\fI\%OrangeDog\fP) schedule.present not idempotent when scheduler disabled (refs: \fI\%#54828\fP)
  161761. .IP \(bu 2
  161762. \fBPR\fP \fI\%#54828\fP: (\fI\%garethgreenaway\fP) [2019.2.1] Fix global disabling code in scheduler
  161763. @ \fI2019\-10\-01 09:27:49 UTC\fP
  161764. .INDENT 2.0
  161765. .IP \(bu 2
  161766. ed94aa5 Merge pull request \fI\%#54828\fP from garethgreenaway/54820_fix_schedule_disabled_job_enabled_bug
  161767. .IP \(bu 2
  161768. be15a28 Rework code that handles individual jobs being disabled and scheduler being globally being disabled. Previously disabling the schedule would result in individual jobs being disabled when they were run through eval. This change does not change schedule items.
  161769. .UNINDENT
  161770. .IP \(bu 2
  161771. \fBPR\fP \fI\%#54778\fP: (\fI\%Akm0d\fP) fix broken salt\-cloud openstack query
  161772. @ \fI2019\-10\-01 09:23:27 UTC\fP
  161773. .INDENT 2.0
  161774. .IP \(bu 2
  161775. 435b40c Merge pull request \fI\%#54778\fP from Akm0d/master_openstack_query_fix
  161776. .IP \(bu 2
  161777. ba4ba2a fixed pylint errors in openstack test
  161778. .IP \(bu 2
  161779. d9a8517 Added openstack tests for openstack \-\-query fix
  161780. .IP \(bu 2
  161781. 59214ad Fallback to image id if we don\(aqt have an image name
  161782. .IP \(bu 2
  161783. 3a42a4d fixed pylint error
  161784. .IP \(bu 2
  161785. 0074d18 created unit tests for openstack
  161786. .IP \(bu 2
  161787. 4255e3e Merge branch \(aq2019.2.1\(aq of \fI\%https://github.com/saltstack/salt\fP into HEAD
  161788. .IP \(bu 2
  161789. 1c2821b Return a configured provider, not a bool
  161790. .IP \(bu 2
  161791. c585550 fix broken salt\-cloud openstack query
  161792. .UNINDENT
  161793. .IP \(bu 2
  161794. \fBISSUE\fP \fI\%#54762\fP: (\fI\%margau\fP) 2019.2.1: Breaks Minion\-Master Communication (refs: \fI\%#54823\fP, \fI\%#54784\fP, \fI\%#54807\fP)
  161795. .IP \(bu 2
  161796. \fBPR\fP \fI\%#54823\fP: (\fI\%dhiltonp\fP) ip_bracket can now accept ipv6 addresses with brackets
  161797. @ \fI2019\-10\-01 01:13:34 UTC\fP
  161798. .INDENT 2.0
  161799. .IP \(bu 2
  161800. 93b1c4d Merge pull request \fI\%#54823\fP from dhiltonp/maybe\-bracket
  161801. .IP \(bu 2
  161802. faa1d98 ip_bracket can now accept ipv6 addresses with brackets
  161803. .UNINDENT
  161804. .IP \(bu 2
  161805. \fBISSUE\fP \fI\%#54762\fP: (\fI\%margau\fP) 2019.2.1: Breaks Minion\-Master Communication (refs: \fI\%#54823\fP, \fI\%#54784\fP, \fI\%#54807\fP)
  161806. .IP \(bu 2
  161807. \fBPR\fP \fI\%#54807\fP: (\fI\%dwoz\fP) Fix pip state pip >=10.0 and <=18.0
  161808. @ \fI2019\-09\-30 09:20:14 UTC\fP
  161809. .INDENT 2.0
  161810. .IP \(bu 2
  161811. \fBPR\fP \fI\%#54772\fP: (\fI\%OrlandoArcapix\fP) Fix import of pip modules (refs: \fI\%#54807\fP)
  161812. .IP \(bu 2
  161813. b61b30d Merge pull request \fI\%#54807\fP from dwoz/patch\-2
  161814. .IP \(bu 2
  161815. 664806b Add unit test for pip state fix
  161816. .IP \(bu 2
  161817. e637658 Revert change to pip version query
  161818. .IP \(bu 2
  161819. 42810a2 Fix import of pip modules
  161820. .UNINDENT
  161821. .IP \(bu 2
  161822. \fBISSUE\fP \fI\%#54741\fP: (\fI\%kjkeane\fP) Schedulers Fail to Run (refs: \fI\%#54799\fP)
  161823. .IP \(bu 2
  161824. \fBPR\fP \fI\%#54799\fP: (\fI\%garethgreenaway\fP) Fix to scheduler when job without a time element is run with schedule.run_job
  161825. @ \fI2019\-09\-30 00:19:43 UTC\fP
  161826. .INDENT 2.0
  161827. .IP \(bu 2
  161828. 4ee1ff6 Merge pull request \fI\%#54799\fP from garethgreenaway/54741_run_job_fails_without_time_element
  161829. .IP \(bu 2
  161830. 44caa81 Merge branch \(aq54741_run_job_fails_without_time_element\(aq of github.com:garethgreenaway/salt into 54741_run_job_fails_without_time_element
  161831. .INDENT 2.0
  161832. .IP \(bu 2
  161833. 3ae4f75 Merge branch \(aq2019.2.1\(aq into 54741_run_job_fails_without_time_element
  161834. .UNINDENT
  161835. .IP \(bu 2
  161836. 8afd2d8 Removing extra, unnecessary code.
  161837. .IP \(bu 2
  161838. 549cfb8 Fixing test_run_job test to ensure the right data is being asserted. Updating unit/test_module_names.py to include integration.scheduler.test_run_job.
  161839. .IP \(bu 2
  161840. 7d716d6 Fixing lint.
  161841. .IP \(bu 2
  161842. ec68591 If a scheduled job does not contains a time element parameter then running that job with schedule.run_job fails with a traceback because data[\(aqrun\(aq] does not exist.
  161843. .UNINDENT
  161844. .IP \(bu 2
  161845. \fBPR\fP \fI\%#54785\fP: (\fI\%Ch3LL\fP) Fix state.show_states when sls file missing in top file
  161846. @ \fI2019\-09\-30 00:00:34 UTC\fP
  161847. .INDENT 2.0
  161848. .IP \(bu 2
  161849. b90c3f2 Merge pull request \fI\%#54785\fP from Ch3LL/fix_show_states
  161850. .IP \(bu 2
  161851. 96540be Clean up files after state.show_states test
  161852. .IP \(bu 2
  161853. ad265ae Fix state.show_states when sls file missing
  161854. .UNINDENT
  161855. .IP \(bu 2
  161856. \fBISSUE\fP \fI\%#54768\fP: (\fI\%paul\-palmer\fP) 2019.2.1 Some Jinja imports not found (refs: \fI\%#54780\fP)
  161857. .IP \(bu 2
  161858. \fBISSUE\fP \fI\%#54765\fP: (\fI\%awerner\fP) 2019.2.1: Jinja from import broken (refs: \fI\%#54780\fP)
  161859. .IP \(bu 2
  161860. \fBPR\fP \fI\%#54780\fP: (\fI\%dwoz\fP) Fix masterless jinja imports
  161861. @ \fI2019\-09\-29 22:12:48 UTC\fP
  161862. .INDENT 2.0
  161863. .IP \(bu 2
  161864. b9459e6 Merge pull request \fI\%#54780\fP from dwoz/fix\-masterless\-jinja\-imports
  161865. .IP \(bu 2
  161866. 5d873cc Merge branch \(aq2019.2.1\(aq into fix\-masterless\-jinja\-imports
  161867. .IP \(bu 2
  161868. e901a83 Add regression tests for jinja import bug
  161869. .IP \(bu 2
  161870. 3925bb7 Fix broken jinja imports in masterless salt\-call
  161871. .UNINDENT
  161872. .IP \(bu 2
  161873. \fBISSUE\fP \fI\%#54776\fP: (\fI\%javierbertoli\fP) Setting \fIping_interval\fP in salt\-minion\(aqs config (version 2019.2.1) prevents it from starting (refs: \fI\%#54777\fP)
  161874. .IP \(bu 2
  161875. \fBPR\fP \fI\%#54777\fP: (\fI\%javierbertoli\fP) Fix minion\(aqs remove_periodic_callback()
  161876. @ \fI2019\-09\-29 21:33:53 UTC\fP
  161877. .INDENT 2.0
  161878. .IP \(bu 2
  161879. 4c240e5 Merge pull request \fI\%#54777\fP from netmanagers/2019.2.1
  161880. .IP \(bu 2
  161881. 459c790 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  161882. .UNINDENT
  161883. .IP \(bu 2
  161884. \fBPR\fP \fI\%#54805\fP: (\fI\%bryceml\fP) improve lint job
  161885. @ \fI2019\-09\-29 21:24:05 UTC\fP
  161886. .INDENT 2.0
  161887. .IP \(bu 2
  161888. 83f8f5c Merge pull request \fI\%#54805\fP from bryceml/2019.2.1_update_lint_salt
  161889. .IP \(bu 2
  161890. ffa4ed6 improve lint job
  161891. .IP \(bu 2
  161892. fa1a767 Merge branch \(aq2019.2.1\(aq into 2019.2.1
  161893. .UNINDENT
  161894. .IP \(bu 2
  161895. \fBISSUE\fP \fI\%#54751\fP: (\fI\%jnmatlock\fP) NXOS_API Proxy Minions Error KeyError: \(aqproxy.post_master_init\(aq after upgrading to 2019.2.1 (refs: \fI\%#54783\fP)
  161896. .IP \(bu 2
  161897. \fBPR\fP \fI\%#54783\fP: (\fI\%garethgreenaway\fP) Ensure metaproxy directory is included in sdist
  161898. @ \fI2019\-09\-29 02:17:23 UTC\fP
  161899. .INDENT 2.0
  161900. .IP \(bu 2
  161901. 6b43fbe Merge pull request \fI\%#54783\fP from garethgreenaway/54751_fixing_missing_metaproxy_directory
  161902. .IP \(bu 2
  161903. 67d9938 Merge branch \(aq2019.2.1\(aq into 54751_fixing_missing_metaproxy_directory
  161904. .IP \(bu 2
  161905. a35e609 Adding __init__.py to metaproxy directory so that metaproxy is included when running setup.py.
  161906. .UNINDENT
  161907. .IP \(bu 2
  161908. \fBISSUE\fP \fI\%#54762\fP: (\fI\%margau\fP) 2019.2.1: Breaks Minion\-Master Communication (refs: \fI\%#54823\fP, \fI\%#54784\fP, \fI\%#54807\fP)
  161909. .IP \(bu 2
  161910. \fBPR\fP \fI\%#54784\fP: (\fI\%dhiltonp\fP) fix dns_check to return uri\-compatible ipv6 addresses, add tests
  161911. @ \fI2019\-09\-28 08:36:51 UTC\fP
  161912. .INDENT 2.0
  161913. .IP \(bu 2
  161914. 7912b67 Merge pull request \fI\%#54784\fP from dhiltonp/ipv46
  161915. .IP \(bu 2
  161916. 042a101 Merge branch \(aq2019.2.1\(aq into ipv46
  161917. .UNINDENT
  161918. .IP \(bu 2
  161919. \fBPR\fP \fI\%#54779\fP: (\fI\%frogunder\fP) Add 2019.2.2 release notes
  161920. @ \fI2019\-09\-27 17:45:46 UTC\fP
  161921. .INDENT 2.0
  161922. .IP \(bu 2
  161923. 2f94b44 Merge pull request \fI\%#54779\fP from frogunder/releasenotes_2019.2.2
  161924. .IP \(bu 2
  161925. 67f564b Add 2019.2.2 release notes
  161926. .IP \(bu 2
  161927. ac6b54f Merge branch \(aq2019.2.1\(aq into ipv46
  161928. .IP \(bu 2
  161929. 93ebd09 update mock (py2) from 2.0.0 to 3.0.5
  161930. .IP \(bu 2
  161931. 37bcc4c fix dns_check to return uri\-compatible ipv6 addresses, add tests
  161932. .INDENT 2.0
  161933. .IP \(bu 2
  161934. dd86c46 Merge pull request \fI\%#1\fP from waynew/pull/54777\-callback\-typo
  161935. .INDENT 2.0
  161936. .IP \(bu 2
  161937. a57f7d0 Add tests
  161938. .UNINDENT
  161939. .IP \(bu 2
  161940. c19d0b0 Fix minion\(aqs remove_periodic_callback()
  161941. .UNINDENT
  161942. .UNINDENT
  161943. .IP \(bu 2
  161944. \fBPR\fP \fI\%#54731\fP: (\fI\%pizzapanther\fP) Fix returners not loading properly
  161945. @ \fI2019\-09\-26 17:24:27 UTC\fP
  161946. .INDENT 2.0
  161947. .IP \(bu 2
  161948. 46bec3c Merge pull request \fI\%#54731\fP from pizzapanther/not\-so\-__new__\-and\-shiny
  161949. .IP \(bu 2
  161950. bdf24f4 Make sure we tests salt\-master\(aqs \fIevent_return\fP setting
  161951. .IP \(bu 2
  161952. 5499518 remove unnecessary import
  161953. .IP \(bu 2
  161954. 3f8a382 fix module import
  161955. .IP \(bu 2
  161956. 0746aa7 remove __new__ method since it was removed from parent class
  161957. .UNINDENT
  161958. .IP \(bu 2
  161959. \fBPR\fP \fI\%#54706\fP: (\fI\%bryceml\fP) 2019.2.1 ruby
  161960. @ \fI2019\-09\-23 16:00:27 UTC\fP
  161961. .INDENT 2.0
  161962. .IP \(bu 2
  161963. e2b86bf Merge pull request \fI\%#54706\fP from bryceml/2019.2.1_ruby
  161964. .IP \(bu 2
  161965. 168a6c1 switch to ruby 2.6.3
  161966. .UNINDENT
  161967. .UNINDENT
  161968. .SS Salt 2019.2.3 Release Notes
  161969. .sp
  161970. Version 2019.2.3 is a CVE\-fix release for 2019.2.0\&.
  161971. .SS Security Fix
  161972. .sp
  161973. \fBCVE\-2019\-17361\fP
  161974. .sp
  161975. With the Salt NetAPI enabled in addition to having a SSH roster defined,
  161976. unauthenticated access is possible when specifying the client as SSH.
  161977. Additionally, when the raw_shell option is specified any arbitrary command
  161978. may be run on the Salt master when specifying SSH options.
  161979. .SS Salt 2019.2.4 Release Notes
  161980. .sp
  161981. Version 2019.2.4 is a CVE\-fix release for 2019.2.0\&.
  161982. .SS Security Fix
  161983. .sp
  161984. \fBCVE\-2020\-11651\fP
  161985. .sp
  161986. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  161987. The salt\-master process ClearFuncs class does not properly validate
  161988. method calls. This allows a remote user to access some methods without
  161989. authentication. These methods can be used to retrieve user tokens from
  161990. the salt master and/or run arbitrary commands on salt minions.
  161991. .sp
  161992. \fBCVE\-2020\-11652\fP
  161993. .sp
  161994. An issue was discovered in SaltStack Salt before 2019.2.4 and 3000 before 3000.2.
  161995. The salt\-master process ClearFuncs class allows access to some methods
  161996. that improperly sanitize paths. These methods allow arbitrary
  161997. directory access to authenticated users.
  161998. .SS Known Issue
  161999. .sp
  162000. Part of the fix for CVE\-2020\-11651 added better validation of the methods allowed to be called by remote clients.
  162001. Both AESFuncs and ClearFuncs now have an explicit list of methods that can be called.
  162002. The name of one of these whitlisted methods on AESFuncs had a typo.
  162003. The _minion_runner method should be minion_runner (without the underscore prefix).
  162004. This typo breaks the publish module’s runner method.
  162005. Calling runners, for example:
  162006. .INDENT 0.0
  162007. .INDENT 3.5
  162008. .sp
  162009. .nf
  162010. .ft C
  162011. salt minion publish.runner manage.down
  162012. .ft P
  162013. .fi
  162014. .UNINDENT
  162015. .UNINDENT
  162016. .sp
  162017. Will not work, and you will receive and empty reply from the salt master.
  162018. .sp
  162019. This will be addressed in the Sodium release of Salt set for mid\-June 2020.
  162020. .SS Salt 2019.2.5 Release Notes
  162021. .sp
  162022. Version 2019.2.5 is a bug\-fix release for 2019.2.0\&.
  162023. .SS Statistics
  162024. .INDENT 0.0
  162025. .IP \(bu 2
  162026. Total Merges: \fB2\fP
  162027. .IP \(bu 2
  162028. Total Issue References: \fB2\fP
  162029. .IP \(bu 2
  162030. Total PR References: \fB2\fP
  162031. .IP \(bu 2
  162032. Contributors: \fB2\fP (\fI\%dwoz\fP, \fI\%frogunder\fP)
  162033. .UNINDENT
  162034. .SS Changelog for v2019.2.4..v2019.2.5
  162035. .sp
  162036. \fIGenerated at: 2020\-05\-05 22:43:12 UTC\fP
  162037. .INDENT 0.0
  162038. .IP \(bu 2
  162039. \fBPR\fP \fI\%#57096\fP: (\fI\%frogunder\fP) Update man_pages 2019.2.5
  162040. @ \fI2020\-05\-05 22:10:46 UTC\fP
  162041. .INDENT 2.0
  162042. .IP \(bu 2
  162043. 6877b7259a Merge pull request \fI\%#57096\fP from frogunder/man_pages_2019.2.5
  162044. .IP \(bu 2
  162045. 58ea351a59 Update man_pages 2019.2.5
  162046. .UNINDENT
  162047. .IP \(bu 2
  162048. \fBISSUE\fP \fI\%#57027\fP: (\fI\%ecarson\fP) [BUG] Master running 2019.2.4 or 3000.2 unable to synchronize files using saltutil.sync_all to 2017.7.1 minion due to CVE fix (refs: \fI\%#57090\fP)
  162049. .IP \(bu 2
  162050. \fBISSUE\fP \fI\%#57016\fP: (\fI\%idontwanttosignin\fP) [BUG] Requested method not exposed: minion_runner (refs: \fI\%#57090\fP)
  162051. .IP \(bu 2
  162052. \fBPR\fP \fI\%#57090\fP: (\fI\%dwoz\fP) Address Issues in CVE Release
  162053. @ \fI2020\-05\-05 22:09:25 UTC\fP
  162054. .INDENT 2.0
  162055. .IP \(bu 2
  162056. 8fe0f66f94 Merge pull request \fI\%#57090\fP from dwoz/bugs_n_stuff
  162057. .IP \(bu 2
  162058. f3e8590bac Describe SEPs
  162059. .IP \(bu 2
  162060. aa1a9d340d Update hardening doc to mention 4505/4506
  162061. .IP \(bu 2
  162062. ca303f7c0c Add link to salt\-announce to documentation
  162063. .IP \(bu 2
  162064. c63253ef9c Address issues in cve release
  162065. .UNINDENT
  162066. .UNINDENT
  162067. .SS Salt 2018.3.0 Release Notes \- Codename Oxygen
  162068. .sp
  162069. \fBWARNING:\fP
  162070. .INDENT 0.0
  162071. .INDENT 3.5
  162072. If you are using Jinja to dump lists or dictionaries in your SLS files,
  162073. this will now cause errors in Python 2 since Jinja does not produce
  162074. YAML\-compatible output when strings in the data structures contain unicode
  162075. types. The dictionary must be passed through a Jinja filter to produce
  162076. YAML\-compatible strings.
  162077. .sp
  162078. The below is an example of invalid SLS:
  162079. .INDENT 0.0
  162080. .INDENT 3.5
  162081. .sp
  162082. .nf
  162083. .ft C
  162084. /etc/foo.conf:
  162085. file.mangaged:
  162086. \- source: salt://foo.conf
  162087. \- template: jinja
  162088. \- defaults: {{ mydict }}
  162089. .ft P
  162090. .fi
  162091. .UNINDENT
  162092. .UNINDENT
  162093. .sp
  162094. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  162095. filters:
  162096. .INDENT 0.0
  162097. .INDENT 3.5
  162098. .sp
  162099. .nf
  162100. .ft C
  162101. /etc/foo.conf:
  162102. file.mangaged:
  162103. \- source: salt://foo.conf
  162104. \- template: jinja
  162105. \- defaults: {{ mydict | json }}
  162106. .ft P
  162107. .fi
  162108. .UNINDENT
  162109. .UNINDENT
  162110. .UNINDENT
  162111. .UNINDENT
  162112. .SS Unicode/Python 3 Compatibility Improvements
  162113. .sp
  162114. This release fixes a number of nagging issues with Unicode strings in Salt
  162115. under Python 2 (ex. \fB\(aqascii\(aq codec can\(aqt decode byte 0xd0\fP). For best
  162116. results, use a UTF\-8 locale (such as by setting the \fBLANG\fP environment
  162117. variable to one which supports UTF\-8. For example \fBen_US.UTF\-8\fP,
  162118. \fBde_DE.UTF\-8\fP, \fBru_RU.UTF\-8\fP, \fBC.UTF\-8\fP).
  162119. .sp
  162120. Additionally, a number of Python 3 compatibility fixes have been made, many of
  162121. them having to do with file I/O and str/bytes mismatches.
  162122. .sp
  162123. We continue to work toward improving both Unicode and Python 3 compatibility
  162124. and welcome any feedback.
  162125. .SS Lots of Docker Improvements
  162126. .SS Much Improved Support for Docker Networking
  162127. .sp
  162128. The \fBdocker_network.present\fP
  162129. state has undergone a full rewrite, which includes the following improvements:
  162130. .SS Full API Support for Network Management
  162131. .sp
  162132. The improvements made to input handling in the
  162133. \fBdocker_container.running\fP
  162134. state for 2017.7.0 have now been expanded to \fBdocker_network.present\fP\&. This brings with it full support for all
  162135. tunable configuration arguments.
  162136. .SS Custom Subnets
  162137. .sp
  162138. Custom subnets can now be configured. Both IPv4 and mixed IPv4/IPv6 networks
  162139. are supported. See here for
  162140. more information.
  162141. .SS Network Configuration in \fBdocker_container.running\fP States
  162142. .sp
  162143. A long\-requested feature has finally been added! It is now possible to
  162144. configure static IPv4/IPv6 addresses, as well as links and labels. See
  162145. here for more
  162146. information.
  162147. .sp
  162148. \fBNOTE:\fP
  162149. .INDENT 0.0
  162150. .INDENT 3.5
  162151. While the \fBcontainers\fP argument to \fBdocker_network.present\fP will continue to be supported, it
  162152. will no longer be the recommended way of ensuring that a container is
  162153. attached to a network.
  162154. .UNINDENT
  162155. .UNINDENT
  162156. .SS Improved Handling of Images from Custom Registries
  162157. .sp
  162158. Rather than attempting to parse the tag from the passed image name, Salt will
  162159. now resolve that tag down to an image ID and use that ID instead.
  162160. .sp
  162161. \fBIMPORTANT:\fP
  162162. .INDENT 0.0
  162163. .INDENT 3.5
  162164. Due to this change, there are some backward\-incompatible changes to image
  162165. management. See below for a full list of these changes.
  162166. .UNINDENT
  162167. .UNINDENT
  162168. .SS Backward\-incompatible Changes to Docker Image Management
  162169. .sp
  162170. Passing image names to the following functions must now be done using separate
  162171. \fBrepository\fP and \fBtag\fP arguments:
  162172. .INDENT 0.0
  162173. .IP \(bu 2
  162174. \fBdocker.build\fP
  162175. .IP \(bu 2
  162176. \fBdocker.commit\fP
  162177. .IP \(bu 2
  162178. \fBdocker.import\fP
  162179. .IP \(bu 2
  162180. \fBdocker.load\fP
  162181. .IP \(bu 2
  162182. \fBdocker.tag\fP
  162183. .IP \(bu 2
  162184. \fBdocker.sls_build\fP
  162185. .UNINDENT
  162186. .sp
  162187. Additionally, the \fBtag\fP argument must now be explicitly passed to the
  162188. \fBdocker_image.present\fP state,
  162189. unless the image is being pulled from a docker registry.
  162190. .SS State and Execution Module Support for \fBdocker run\fP Functionality
  162191. .sp
  162192. The \fBdocker_container.running\fP
  162193. state is good for containers which run services, but it is not as useful for
  162194. cases in which the container only needs to run once. The \fBstart\fP argument to
  162195. \fBdocker_container.running\fP can
  162196. be set to \fBFalse\fP to prevent the container from being started again on a
  162197. subsequent run, but for many use cases this is not sufficient. Therefore, the
  162198. \fBdocker.run_container\fP
  162199. remote\-execution function was added. When used on the Salt CLI, it will return
  162200. information about the container, such as its name, ID, exit code, and any
  162201. output it produces.
  162202. .sp
  162203. State support has also been added via the \fBdocker_container.run\fP state. This state is modeled after the
  162204. \fBcmd.run\fP state, and includes arguments like
  162205. \fBonlyif\fP, \fBunless\fP, and \fBcreates\fP to control whether or not the container
  162206. is run.
  162207. .SS Full API Support for \fBdocker.logs\fP
  162208. .sp
  162209. This function now supports all of the functions that its Docker API counterpart
  162210. does, allowing you to do things like include timestamps, and also suppress
  162211. stdout/stderr, etc. in the return.
  162212. .SS \fIstart\fP Argument Added to \fBdocker.create\fP Function
  162213. .sp
  162214. This removes the need to run \fBdocker.start\fP separately when creating containers on the
  162215. Salt CLI.
  162216. .INDENT 0.0
  162217. .INDENT 3.5
  162218. .sp
  162219. .nf
  162220. .ft C
  162221. salt myminion docker.create image=foo/bar:baz command=/path/to/command start=True
  162222. .ft P
  162223. .fi
  162224. .UNINDENT
  162225. .UNINDENT
  162226. .SS Use SaltSSH Minions like regular Master\-Minions
  162227. .sp
  162228. The Master process can now also call SSH minions as if they were connected to
  162229. the master using ZeroMQ. By setting \fBenable_ssh_minions: True\fP in the master
  162230. config file, the master will create a Salt SSH client process which connects to
  162231. the minion and returns the output for the \fBsalt\fP CLI to use like a regular
  162232. minion. This can be used anywhere the LocalClient is used.
  162233. .SS Exceptions Raised for Authentication/Authorization Errors
  162234. .sp
  162235. When sending \fBpublish\fP commands via \fBmaster.py\fP and \fBmasterapi.py\fP and an
  162236. authorization or authentication problem is encountered, Salt will now raise the
  162237. appropriate exceptions instead of returning an empty string: \fB\(aq\(aq\fP\&.
  162238. .sp
  162239. The reasoning behind this change is to make it easier to debug various scenarios
  162240. surrounding authentication and authorization issues more effectively.
  162241. .SS Comparison Operators in Package Installation
  162242. .sp
  162243. Salt now supports using comparison operators (e.g. \fB>=1.2.3\fP) when installing
  162244. packages on minions which use \fByum/dnf\fP or
  162245. \fBapt\fP\&. This is supported both in the
  162246. \fBpkg.installed\fP state and in the \fBpkg.install\fP
  162247. remote execution function.
  162248. .SS Master Tops Changes
  162249. .sp
  162250. When both Master Tops and a
  162251. Top File produce SLS matches for a given minion, the matches
  162252. were being merged in an unpredictable manner which did not preserve ordering. This has
  162253. been changed. The top file matches now execute in the expected order, followed
  162254. by any master tops matches that are not matched via a top file.
  162255. .sp
  162256. To make master tops matches execute first, followed by top file matches, set
  162257. the new \fBmaster_tops_first\fP minion config option to \fBTrue\fP\&.
  162258. .SS Several Jinja Filters Renamed
  162259. .sp
  162260. The following Jinja filters (originally added in 2017.7.0) have been renamed
  162261. due to the fact that they were inaccurately named when initially added. The
  162262. original names will be supported until the 3000 release of Salt.
  162263. .INDENT 0.0
  162264. .IP \(bu 2
  162265. \fBrand_str\fP renamed to \fBrandom_hash\fP
  162266. .IP \(bu 2
  162267. \fBjinja_decode_dict\fP renamed to \fBjinja_encode_dict\fP
  162268. .IP \(bu 2
  162269. \fBjinja_decode_list\fP renamed to \fBjinja_encode_list\fP
  162270. .UNINDENT
  162271. .SS Return Codes for Runner/Wheel Functions
  162272. .sp
  162273. When using orchestration, runner and wheel
  162274. functions used to report a \fBTrue\fP result if the function ran to completion
  162275. without raising an exception. It is now possible to set a return code in the
  162276. \fB__context__\fP dictionary, allowing runner and wheel functions to report that
  162277. they failed. Here\(aqs some example pseudocode:
  162278. .INDENT 0.0
  162279. .INDENT 3.5
  162280. .sp
  162281. .nf
  162282. .ft C
  162283. def myrunner():
  162284. ...
  162285. do stuff
  162286. ...
  162287. if some_error_condition:
  162288. __context__[\(aqretcode\(aq] = 1
  162289. return result
  162290. .ft P
  162291. .fi
  162292. .UNINDENT
  162293. .UNINDENT
  162294. .SS Variable Update Intervals for Fileserver Backends
  162295. .sp
  162296. Prior to this release, fileservers would be updated as part of a dedicated
  162297. "maintenance" process, in which various routine maintenance tasks were
  162298. performed. This tied the update interval to the \fBloop_interval\fP
  162299. config option, and also forced all fileservers to update at the same interval.
  162300. .sp
  162301. 2018.3.0 adds the following configuration options for the various fileserver
  162302. backends:
  162303. .INDENT 0.0
  162304. .IP \(bu 2
  162305. \fBroots_update_interval\fP
  162306. .IP \(bu 2
  162307. \fBazurefs_update_interval\fP
  162308. .IP \(bu 2
  162309. \fBgitfs_update_interval\fP
  162310. .IP \(bu 2
  162311. \fBhgfs_update_interval\fP
  162312. .IP \(bu 2
  162313. \fBminionfs_update_interval\fP
  162314. .IP \(bu 2
  162315. \fBs3fs_update_interval\fP
  162316. .IP \(bu 2
  162317. \fBsvnfs_update_interval\fP
  162318. .UNINDENT
  162319. .sp
  162320. These allow for update intervals to be set for each individual backend. The
  162321. default value for each of these is 60 seconds.
  162322. .sp
  162323. In addition, for GitFS it is also possible to apply
  162324. intervals to individual remotes. See here for
  162325. examples.
  162326. .sp
  162327. \fBNOTE:\fP
  162328. .INDENT 0.0
  162329. .INDENT 3.5
  162330. git_pillar does not yet support variable update intervals, this is targeted
  162331. for the next feature release (2019.2.0).
  162332. .UNINDENT
  162333. .UNINDENT
  162334. .SS LDAP via External Authentication Changes
  162335. .sp
  162336. In this release of Salt, if LDAP Bind Credentials are supplied, then
  162337. these credentials will be used for all LDAP access except the first
  162338. authentication when a job is submitted. The first authentication will
  162339. use the user\(aqs credentials as passed on the CLI. This behavior is to
  162340. accommodate certain two\-factor authentication schemes where the authentication
  162341. token can only be used once.
  162342. .sp
  162343. In previous releases the bind credentials would only be used to determine
  162344. the LDAP user\(aqs existence and group membership. The user\(aqs LDAP credentials
  162345. were used from then on.
  162346. .SS Stormpath External Authentication Removed
  162347. .sp
  162348. Per Stormpath\(aqs announcement, their API will be shutting down on 8/17/2017 at
  162349. noon PST so the Stormpath external authentication module has been removed.
  162350. .sp
  162351. \fI\%https://stormpath.com/oktaplusstormpath\fP
  162352. .SS New (Proxy) Minion Configuration Options
  162353. .sp
  162354. To be able to connect the Minion to the Master using a certain source IP address
  162355. or port, the following options have been added:
  162356. .INDENT 0.0
  162357. .IP \(bu 2
  162358. \fBsource_interface_name\fP
  162359. .IP \(bu 2
  162360. \fBsource_address\fP
  162361. .IP \(bu 2
  162362. \fBsource_ret_port\fP
  162363. .IP \(bu 2
  162364. \fBsource_publish_port\fP
  162365. .UNINDENT
  162366. .SS \fBenvironment\fP config option renamed to \fBsaltenv\fP
  162367. .sp
  162368. The \fBenvironment\fP config option predates referring to a salt
  162369. fileserver environment as a \fBsaltenv\fP\&. To pin a minion to a single
  162370. environment for running states, one would use \fBenvironment\fP, but
  162371. overriding that environment would be done with the \fBsaltenv\fP argument. For
  162372. consistency, \fBenvironment\fP is now simply referred to as
  162373. \fBsaltenv\fP\&. There are no plans to deprecate or remove
  162374. \fBenvironment\fP, if used it will log a warning and its value will be
  162375. used as \fBsaltenv\fP\&.
  162376. .SS \fBlock_saltenv\fP config option added
  162377. .sp
  162378. If set to \fBTrue\fP, this option will prevent a minion from allowing the
  162379. \fBsaltenv\fP argument to override the value set in \fBsaltenv\fP when
  162380. running states.
  162381. .SS Failed Minions for State/Function Orchestration Jobs Added to Changes Dictionary
  162382. .sp
  162383. For orchestration jobs which run states (or run remote execution functions and
  162384. also use a fail function to indicate
  162385. success or failure), minions which have \fBFalse\fP results were previously
  162386. included as a formatted string in the comment field of the return for that
  162387. orchestration job. This made the failed returns difficult to parse
  162388. programatically\&. The
  162389. failed returns in these cases are now included in the changes dictionary,
  162390. making for much easier parsing.
  162391. .SS Grains
  162392. .INDENT 0.0
  162393. .IP \(bu 2
  162394. \fBfc_wwn\fP \- Show all fibre channel world wide port names for a host, must be
  162395. enabled with \fIfibre_channel_grains\fP
  162396. .IP \(bu 2
  162397. \fBiscsi_iqn\fP \- Show the iSCSI IQN name for a host
  162398. .IP \(bu 2
  162399. \fBswap_total\fP \- Show the configured swap_total for Linux, *BSD, OS X and
  162400. Solaris/SunOS
  162401. .IP \(bu 2
  162402. \fBvirtual\fP:
  162403. .INDENT 2.0
  162404. .INDENT 3.5
  162405. .INDENT 0.0
  162406. .IP \(bu 2
  162407. identifies reports KVM and VMM hypervisors when running an OpenBSD guest
  162408. .IP \(bu 2
  162409. for detecting Solaris Logical Domains (LDOMs) running on T\-Series SPARC
  162410. hardware. The \fBvirtual_subtype\fP grain is populated as a list of domain
  162411. roles.
  162412. .UNINDENT
  162413. .UNINDENT
  162414. .UNINDENT
  162415. .UNINDENT
  162416. .SS Salt Minion Auto\-discovery
  162417. .sp
  162418. Using auto\-discovery, the Salt Minion now no longer needs to be configured
  162419. against a specific DNS name or IP address of a Master.
  162420. .sp
  162421. For this feature Salt Master now requires port 4520 for UDP broadcast packets to be opened
  162422. and the Salt Minion be able to send UDP packets to the same port.
  162423. .SS Configuration
  162424. .sp
  162425. By default, automatic discovery is disabled.
  162426. .sp
  162427. \fBWARNING:\fP
  162428. .INDENT 0.0
  162429. .INDENT 3.5
  162430. Due to the current limitations that will be changing in a future release,
  162431. before you turn on auto\-discovery, make sure your network is secured and
  162432. trusted.
  162433. .UNINDENT
  162434. .UNINDENT
  162435. .sp
  162436. Auto\-discovery is configured on Master and Minion. Both of them are configured via the \fBdiscovery\fP option
  162437. as follows:
  162438. .sp
  162439. \fBMaster configuration\fP
  162440. .sp
  162441. To use the default configuration, which accepts any minion, simply set \fBdiscovery\fP to True:
  162442. .INDENT 0.0
  162443. .INDENT 3.5
  162444. .sp
  162445. .nf
  162446. .ft C
  162447. discovery: true
  162448. .ft P
  162449. .fi
  162450. .UNINDENT
  162451. .UNINDENT
  162452. .sp
  162453. A sub\-option called \fImapping\fP allows auto\-discovery to help find the proper
  162454. Master. The mapping contains an arbitrary set of key/value pairs, which the
  162455. Minion configuration can target. By default, no mappings are set.
  162456. .sp
  162457. Example:
  162458. .INDENT 0.0
  162459. .INDENT 3.5
  162460. .sp
  162461. .nf
  162462. .ft C
  162463. discovery:
  162464. mapping:
  162465. description: SES 5.0
  162466. node: 1
  162467. .ft P
  162468. .fi
  162469. .UNINDENT
  162470. .UNINDENT
  162471. .sp
  162472. It is also possible to change the port used from the default of \fB4520\fP, by
  162473. setting a \fBport\fP option under the Master\(aqs \fBdiscovery\fP configuration:
  162474. .INDENT 0.0
  162475. .INDENT 3.5
  162476. .sp
  162477. .nf
  162478. .ft C
  162479. discovery:
  162480. port: 4567
  162481. .ft P
  162482. .fi
  162483. .UNINDENT
  162484. .UNINDENT
  162485. .sp
  162486. \fBNOTE:\fP
  162487. .INDENT 0.0
  162488. .INDENT 3.5
  162489. When using a port number other than the default, the Minion\(aqs \fBdiscovery\fP
  162490. configuration must \fIalso\fP have a port specified, otherwise the Minion will
  162491. still attempt to contact the Master on port \fB4520\fP\&.
  162492. .UNINDENT
  162493. .UNINDENT
  162494. .sp
  162495. \fBMinion configuration\fP
  162496. .sp
  162497. In addition to the \fBmapping\fP and \fBport\fP options, the following additional options are available to Minions:
  162498. .INDENT 0.0
  162499. .IP \(bu 2
  162500. \fBattempts\fP \- This option specifies how many broadcast requests should be
  162501. sent to the network, waiting for any Master response. Each attempt takes a
  162502. couple of seconds, so raising this value may result in a slower Minion
  162503. startup. Note that, on a properly\-configured network, autodiscovery should
  162504. succeed on the first attempt. By default, this value is set to \fB3\fP\&.
  162505. .IP \(bu 2
  162506. \fBmatch\fP \- This option can be set to either \fBall\fP or \fBany\fP, and it
  162507. determines how the values configured in \fBmapping\fP are matched. If set to
  162508. \fBall\fP, then all of the key/value pairs in the Minion\(aqs \fBmapping\fP must
  162509. match a given Master. If set to \fBany\fP (the default), then any match to a
  162510. key/value mapping will constitute a match.
  162511. .IP \(bu 2
  162512. \fBpause\fP \- The interval in seconds between attempts (default: 5).
  162513. .IP \(bu 2
  162514. \fBfibre_channel_grains\fP \- Enables the \fBfc_wwn\fP grain. (Default: False)
  162515. .IP \(bu 2
  162516. \fBiscsi_grains\fP \- Enables the \fBiscsi_iqn\fP grain. (Default: False)
  162517. .UNINDENT
  162518. .SS Connection to a type instead of DNS
  162519. .sp
  162520. By now each Minion was connecting to a Master by DNS or IP address. From now on
  162521. it is possible also to connect to a _type_ of a Master. For example, in a
  162522. network there are three different Masters, each corresponds for a particular
  162523. niche or environment or specific role etc. The Minion is supposed to connect
  162524. only to one of those Masters that is described appropriately.
  162525. .sp
  162526. To achieve such an effect, each \fB/etc/salt/master\fP configuration should have
  162527. a \fBdiscovery\fP option, which should have a \fBmapping\fP element with arbitrary
  162528. key/value pairs. The same configuration should be on the Minion, so then when
  162529. mapping matches, Minion recognises Master as its connection target.
  162530. .sp
  162531. Example for Master configuration (\fB/etc/salt/master\fP):
  162532. .INDENT 0.0
  162533. .INDENT 3.5
  162534. .sp
  162535. .nf
  162536. .ft C
  162537. discovery:
  162538. mapping:
  162539. description: SES 5.0
  162540. node: 1
  162541. .ft P
  162542. .fi
  162543. .UNINDENT
  162544. .UNINDENT
  162545. .sp
  162546. The example above describes a system that is running a particular product,
  162547. where \fBdescription\fP is an arbitrary key and \fBSES 5.0\fP is just a string. In
  162548. order to match exactly this Master, the following configuration at Minion
  162549. should be present:
  162550. .INDENT 0.0
  162551. .INDENT 3.5
  162552. .sp
  162553. .nf
  162554. .ft C
  162555. discovery:
  162556. match: all # Can be "all" or "any"
  162557. mapping:
  162558. description: SES 5.0
  162559. node: 1
  162560. .ft P
  162561. .fi
  162562. .UNINDENT
  162563. .UNINDENT
  162564. .sp
  162565. Notice \fBmatch\fP criteria is set to \fBall\fP\&. This would mean that from all
  162566. found Masters select only that, which \fBdescription\fP is set to \fBSES 5.0\fP
  162567. _and_ \fBnode\fP is set to \fB1\fP\&. All other Masters will be ignored.
  162568. .SS Limitations
  162569. .sp
  162570. This feature has a couple of _temporary_ limitations that are subject to change
  162571. in the future:
  162572. .INDENT 0.0
  162573. .IP \(bu 2
  162574. Only one Master on the network is supported. Currently the Minion cannot
  162575. select which Master out of few the same to choose. This will change to
  162576. choosing the Master that is least loaded.
  162577. .IP \(bu 2
  162578. Minions will accept _any_ master that matches connection criteria without any
  162579. particular security applied (priv/pub key check, signature, fingerprint etc).
  162580. That implies that administrator is expected to know his network and make sure
  162581. it is clean.
  162582. .UNINDENT
  162583. .SS New Modules
  162584. .INDENT 0.0
  162585. .IP \(bu 2
  162586. \fBsalt.modules.purefa\fP
  162587. .UNINDENT
  162588. .SS New NaCl Renderer
  162589. .sp
  162590. A new renderer has been added for encrypted data.
  162591. .SS New support for Cisco UCS Chassis
  162592. .sp
  162593. The salt proxy minion now allows for control of Cisco USC chassis. See
  162594. the \fBcimc\fP modules for details.
  162595. .SS New support for Cassandra v3
  162596. .sp
  162597. The \fBcassandra_cql\fP module now supports Cassandra v3 which has changed
  162598. its internal schema to define keyspaces and columns.
  162599. .SS New salt\-ssh roster
  162600. .sp
  162601. A new roster has been added that allows users to pull in a list of hosts
  162602. for salt\-ssh targeting from a \fB~/.ssh\fP configuration. For full details,
  162603. please see the \fBsshconfig\fP roster.
  162604. .SS New GitFS Features
  162605. .sp
  162606. Two new features which affect how GitFS maps branches/tags to fileserver
  162607. environments (i.e. \fBsaltenvs\fP) have been added:
  162608. .INDENT 0.0
  162609. .IP 1. 3
  162610. It is now possible to completely turn off Salt\(aqs default mapping logic
  162611. (aside from the mapping of the \fBbase\fP saltenv). This can be triggered
  162612. using the new \fBgitfs_disable_saltenv_mapping\fP config option.
  162613. .sp
  162614. \fBNOTE:\fP
  162615. .INDENT 3.0
  162616. .INDENT 3.5
  162617. When this is disabled, only the \fBbase\fP saltenv and any configured
  162618. using per\-saltenv configuration parameters will be available.
  162619. .UNINDENT
  162620. .UNINDENT
  162621. .IP 2. 3
  162622. The types of refs which Salt will use as saltenvs can now be controlled. In
  162623. previous releases, branches and tags were both mapped as environments, and
  162624. individual commit SHAs could be specified as saltenvs in states (and when
  162625. caching files using \fBcp.cache_file\fP).
  162626. Using the new \fBgitfs_ref_types\fP config option, the types of
  162627. refs which are used as saltenvs can be restricted. This makes it possible to
  162628. ignore all tags and use branches only, and also to keep SHAs from being made
  162629. available as saltenvs.
  162630. .UNINDENT
  162631. .SS Additional output modes
  162632. .sp
  162633. The \fBstate_output\fP parameter now supports \fBfull_id\fP, \fBchanges_id\fP and
  162634. \fBterse_id\fP\&. Just like \fBmixed_id\fP, these use the state ID as name in the
  162635. highstate output. For more information on these output modes, see the docs for
  162636. the \fBHighstate Outputter\fP\&.
  162637. .SS Windows
  162638. .SS Python Version
  162639. .sp
  162640. Python 2 Windows API was design when Windows did not support Unicode. Windows
  162641. now supports Unicode however to keep backwards compatibility Python 2 Windows
  162642. API has not been changed. Python 3 Windows API supports Unicode. Salt Python 3
  162643. installer is the recommend choice for users who need characters other than
  162644. Non\-ASCII (7bit) characters.
  162645. .SS \fBpkg\fP Execution module changes
  162646. .sp
  162647. Significant changes have been made to the \fBwin_pkg\fP
  162648. execution module. Users should test this release against their existing package
  162649. sls definition files. These changes are also in 2016.11.9 & 2017.7.3.
  162650. .INDENT 0.0
  162651. .IP \(bu 2
  162652. \fBpkg.list_available\fP no longer defaults to refreshing the winrepo meta
  162653. database.
  162654. .IP \(bu 2
  162655. \fBpkg.install\fP without a \fBversion\fP parameter no longer upgrades software
  162656. if the software is already installed. Use \fBpkg.install version=latest\fP or
  162657. in a state use \fBpkg.latest\fP to get the old behavior.
  162658. .IP \(bu 2
  162659. \fBpkg.list_pkgs\fP now returns multiple versions if software installed more
  162660. than once.
  162661. .IP \(bu 2
  162662. \fBpkg.list_pkgs\fP now returns \(aqNot Found\(aq when the version is not found
  162663. instead of \(aq(value not set)\(aq which matches the contents of the sls
  162664. definitions.
  162665. .IP \(bu 2
  162666. \fBpkg.remove()\fP will wait up to 3 seconds (normally about a second) to detect
  162667. changes in the registry after removing software, improving reporting of
  162668. version changes.
  162669. .IP \(bu 2
  162670. \fBpkg.remove()\fP can remove \fBlatest\fP software, if \fBlatest\fP is defined in
  162671. sls definition.
  162672. .IP \(bu 2
  162673. Documentation was update for the execution module to match the style in new
  162674. versions, some corrections as well.
  162675. .IP \(bu 2
  162676. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  162677. called with a command line string instead of a list. Some sls files in
  162678. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  162679. (i.e. the use of \fB&\fP).
  162680. .IP \(bu 2
  162681. Some execution module functions results, now behavour more like their
  162682. Unix/Linux versions.
  162683. .UNINDENT
  162684. .SS Installer
  162685. .SS Changes to config handling
  162686. .sp
  162687. Behavior with existing configuration has changed. With previous windows
  162688. installers the existing config was used and the master and minion id could be
  162689. modified via the installer. It was problematic in that it didn\(aqt account for
  162690. configuration that may be defined in the \fBminion.d\fP directory. This change
  162691. gives you the option via a drop\-down list to use one of the following:
  162692. .INDENT 0.0
  162693. .IP \(bu 2
  162694. Default Config: Use the config that comes with the installer
  162695. .IP \(bu 2
  162696. Existing Config: Use the current config without changes
  162697. .IP \(bu 2
  162698. Custom Config: Select a custom config using the file picker
  162699. .UNINDENT
  162700. .sp
  162701. The existing config option will only be available if the installer detects an
  162702. existing config. If there is an existing config, and you choose \fBDefault\fP or
  162703. \fBCustom\fP, the existing config will be deleted, including the \fBminion.d\fP
  162704. directory, and replaced by your selection.
  162705. .sp
  162706. The \fBDefault Config\fP and \fBCustom Config\fP options will allow you to modify
  162707. the Master and the Minion ID. \fBExisting Config\fP will leave the existing
  162708. configuration unchanged.
  162709. .sp
  162710. These settings can be defined on the command line using the following switches:
  162711. .INDENT 0.0
  162712. .IP \(bu 2
  162713. \fB/default\-config\fP
  162714. .IP \(bu 2
  162715. \fB/custom\-config=C:\ePath\eTo\eCustom\eConfig\eminion\fP
  162716. .UNINDENT
  162717. .sp
  162718. If neither option is passed and there is an existing config, the default is to
  162719. use the existing config. If there is no existing config (new install) the
  162720. default config will be used.
  162721. .SS Multi\-master configuration
  162722. .sp
  162723. The installer now has the ability to apply a multi\-master configuration either
  162724. from the GUI or the command line. The \fBmaster\fP field in the GUI can accept
  162725. either a single master or a comma\-separated list of masters. The command\-line
  162726. switch (\fB/master=\fP) can accept the same.
  162727. .SS Command\-line help
  162728. .sp
  162729. The Windows installer will now display command\-line help when a help switch
  162730. (\fB/?\fP) is passed.
  162731. .SS New utils module \fBsalt.utils.pkg.win\fP
  162732. .sp
  162733. A new utils module has been added, which gathers information about windows
  162734. installed software. This is currently not used by any salt execution module or
  162735. state at this time. Users are encouraged to run this and report any issues.
  162736. Running the command with the \fBdetail\fP option will be useful for anyone
  162737. developing windows package definitions. With salt installed in the default
  162738. location the following command will print the help message.
  162739. .INDENT 0.0
  162740. .INDENT 3.5
  162741. .sp
  162742. .nf
  162743. .ft C
  162744. chcp 65001
  162745. c:\esalt\ebin\epython.exe c:\esalt\ebin\elib\esite\-packages\esalt\eutils\epkg\ewin.py
  162746. c:\esalt\ebin\epython.exe c:\esalt\ebin\elib\esite\-packages\esalt\eutils\epkg\ewin.py detail system
  162747. .ft P
  162748. .fi
  162749. .UNINDENT
  162750. .UNINDENT
  162751. .SS Salt Cloud Features
  162752. .SS OpenStack Revamp
  162753. .sp
  162754. The OpenStack Driver has been rewritten mostly from scratch. Salt is now using
  162755. the \fIshade driver <https://docs.openstack.org/shade/latest/>\fP\&.
  162756. .sp
  162757. With this, the \fBnova\fP driver is being deprecated.
  162758. .sp
  162759. \fBopenstack driver\fP
  162760. .sp
  162761. There have also been several new modules and states added for managing OpenStack
  162762. setups using shade as well.
  162763. .sp
  162764. \fBkeystone\fP
  162765. \fBkeystone role grant\fP
  162766. \fBkeystone group\fP
  162767. \fBkeystone role\fP
  162768. \fBkeystone service\fP
  162769. \fBkeystone user\fP
  162770. \fBkeystone domain\fP
  162771. \fBkeystone project\fP
  162772. \fBkeystone endpoint\fP
  162773. \fBglance\fP
  162774. \fBglance_image\fP
  162775. \fBneutron\fP
  162776. \fBneutron subnet\fP
  162777. \fBneutron secgroup\fP
  162778. \fBneutron secgroup rule\fP
  162779. \fBneutron network\fP
  162780. .SS Pre\-Flight Commands
  162781. .sp
  162782. Support has been added for specified "preflight commands" to run on a VM before
  162783. the deploy script is run. These must be defined as a list in a cloud configuration
  162784. file. For example:
  162785. .INDENT 0.0
  162786. .INDENT 3.5
  162787. .sp
  162788. .nf
  162789. .ft C
  162790. my\-cloud\-profile:
  162791. provider: linode\-config
  162792. image: Ubuntu 16.04 LTS
  162793. size: Linode 2048
  162794. preflight_cmds:
  162795. \- whoami
  162796. \- echo \(aqhello world!\(aq
  162797. .ft P
  162798. .fi
  162799. .UNINDENT
  162800. .UNINDENT
  162801. .sp
  162802. These commands will run in sequence \fBbefore\fP the bootstrap script is executed.
  162803. .SS New salt\-cloud Grains
  162804. .sp
  162805. When salt\-cloud creates a new minion, it will now add grain information
  162806. to the minion configuration file, identifying the resources originally used
  162807. to create it.
  162808. .sp
  162809. The generated grain information will appear similar to:
  162810. .INDENT 0.0
  162811. .INDENT 3.5
  162812. .sp
  162813. .nf
  162814. .ft C
  162815. grains:
  162816. salt\-cloud:
  162817. driver: ec2
  162818. provider: my_ec2:ec2
  162819. profile: ec2\-web
  162820. .ft P
  162821. .fi
  162822. .UNINDENT
  162823. .UNINDENT
  162824. .sp
  162825. The generation of salt\-cloud grains can be suppressed by the
  162826. option \fBenable_cloud_grains: \(aqFalse\(aq\fP in the cloud configuration file.
  162827. .SS Upgraded Saltify Driver
  162828. .sp
  162829. The salt\-cloud Saltify driver is used to provision machines which
  162830. are not controlled by a dedicated cloud supervisor (such as typical hardware
  162831. machines) by pushing a salt\-bootstrap command to them and accepting them on
  162832. the salt master. Creation of a node has been its only function and no other
  162833. salt\-cloud commands were implemented.
  162834. .sp
  162835. With this upgrade, it can use the salt\-api to provide advanced control,
  162836. such as rebooting a machine, querying it along with conventional cloud minions,
  162837. and, ultimately, disconnecting it from its master.
  162838. .sp
  162839. After disconnection from ("destroying" on) one master, a machine can be
  162840. re\-purposed by connecting to ("creating" on) a subsequent master.
  162841. .SS New Vagrant Driver
  162842. .sp
  162843. The salt\-cloud Vagrant driver brings virtual machines running in a limited
  162844. environment, such as a programmer\(aqs workstation, under salt\-cloud control.
  162845. This can be useful for experimentation, instruction, or testing salt configurations.
  162846. .sp
  162847. Using salt\-api on the master, and a salt\-minion running on the host computer,
  162848. the Vagrant driver can create (\fBvagrant up\fP), restart (\fBvagrant reload\fP),
  162849. and destroy (\fBvagrant destroy\fP) VMs, as controlled by salt\-cloud profiles
  162850. which designate a \fBVagrantfile\fP on the host machine.
  162851. .sp
  162852. The master can be a very limited machine, such as a Raspberry Pi, or a small
  162853. VagrantBox VM.
  162854. .SS Python PyWinRM Module
  162855. .sp
  162856. Versions of \fBpywinrm>=0.2.1\fP are finally able to disable validation of self
  162857. signed certificates. Here for more information.
  162858. .SS DigitalOcean
  162859. .sp
  162860. The DigitalOcean driver has been renamed to conform to the company name. The
  162861. new driver name is \fBdigitalocean\fP\&. The old name \fBdigital_ocean\fP and a
  162862. short one \fBdo\fP will still be supported through virtual aliases, this is
  162863. mostly cosmetic.
  162864. .SS Azure Cloud
  162865. .sp
  162866. The azure sdk used for the \fBazurearm\fP cloud driver now depends on
  162867. \fBazure\-cli>=2.0.12\fP
  162868. .SS New \fBsaltclass\fP pillar/master_tops modules
  162869. .sp
  162870. This module clones the behaviour of reclass (\fI\%http://reclass.pantsfullofunix.net/\fP), without the need of an external app, and add several features to improve flexibility.
  162871. Saltclass lets you define your nodes from simple \fByaml\fP files (\fB\&.yml\fP) through hierarchical class inheritance with the possibility to override pillars down the tree.
  162872. .sp
  162873. \fBFeatures\fP
  162874. .INDENT 0.0
  162875. .IP \(bu 2
  162876. Define your nodes through hierarchical class inheritance
  162877. .IP \(bu 2
  162878. Reuse your reclass data with minimal modifications
  162879. .INDENT 2.0
  162880. .INDENT 3.5
  162881. .INDENT 0.0
  162882. .IP \(bu 2
  162883. applications => states
  162884. .IP \(bu 2
  162885. parameters => pillars
  162886. .UNINDENT
  162887. .UNINDENT
  162888. .UNINDENT
  162889. .IP \(bu 2
  162890. Use Jinja templating in your yaml definitions
  162891. .IP \(bu 2
  162892. Access to the following Salt objects in Jinja
  162893. .INDENT 2.0
  162894. .INDENT 3.5
  162895. .INDENT 0.0
  162896. .IP \(bu 2
  162897. \fB__opts__\fP
  162898. .IP \(bu 2
  162899. \fB__salt__\fP
  162900. .IP \(bu 2
  162901. \fB__grains__\fP
  162902. .IP \(bu 2
  162903. \fB__pillars__\fP
  162904. .IP \(bu 2
  162905. \fBminion_id\fP
  162906. .UNINDENT
  162907. .UNINDENT
  162908. .UNINDENT
  162909. .IP \(bu 2
  162910. Chose how to merge or override your lists using ^ character (see examples)
  162911. .IP \(bu 2
  162912. Expand variables ${} with possibility to escape them if needed ${} (see
  162913. examples)
  162914. .IP \(bu 2
  162915. Ignores missing node/class and will simply return empty without breaking the
  162916. pillar module completely \- will be logged
  162917. .UNINDENT
  162918. .sp
  162919. An example subset of data is available here:
  162920. \fI\%https://git.mauras.ch/salt/saltclass/src/branch/master/examples\fP
  162921. .TS
  162922. center;
  162923. |l|l|.
  162924. _
  162925. T{
  162926. Terms usable in yaml files
  162927. T} T{
  162928. Description
  162929. T}
  162930. _
  162931. T{
  162932. classes
  162933. T} T{
  162934. A list of classes that will be processed in order
  162935. T}
  162936. _
  162937. T{
  162938. states
  162939. T} T{
  162940. A list of states that will be returned by master_tops function
  162941. T}
  162942. _
  162943. T{
  162944. pillars
  162945. T} T{
  162946. A yaml dictionary that will be returned by the ext_pillar function
  162947. T}
  162948. _
  162949. T{
  162950. environment
  162951. T} T{
  162952. Node saltenv that will be used by master_tops
  162953. T}
  162954. _
  162955. .TE
  162956. .sp
  162957. A class consists of:
  162958. .INDENT 0.0
  162959. .IP \(bu 2
  162960. zero or more parent classes
  162961. .IP \(bu 2
  162962. zero or more states
  162963. .IP \(bu 2
  162964. any number of pillars
  162965. .UNINDENT
  162966. .sp
  162967. A child class can override pillars from a parent class. A node definition is a
  162968. class in itself with an added \fBenvironment\fP parameter for \fBsaltenv\fP
  162969. definition.
  162970. .sp
  162971. \fBClass Names\fP
  162972. .sp
  162973. Class names mimic salt way of defining states and pillar files.
  162974. This means that \fBdefault.users\fP class name will correspond to one of these:
  162975. .INDENT 0.0
  162976. .IP \(bu 2
  162977. \fB<saltclass_path>/classes/default/users.yml\fP
  162978. .IP \(bu 2
  162979. \fB<saltclass_path>/classes/default/users/init.yml\fP
  162980. .UNINDENT
  162981. .sp
  162982. \fBSaltclass Tree\fP
  162983. .sp
  162984. A saltclass tree would look like this:
  162985. .INDENT 0.0
  162986. .INDENT 3.5
  162987. .sp
  162988. .nf
  162989. .ft C
  162990. <saltclass_path>
  162991. ├── classes
  162992. │ ├── app
  162993. │ │ ├── borgbackup.yml
  162994. │ │ └── ssh
  162995. │ │ └── server.yml
  162996. │ ├── default
  162997. │ │ ├── init.yml
  162998. │ │ ├── motd.yml
  162999. │ │ └── users.yml
  163000. │ ├── roles
  163001. │ │ ├── app.yml
  163002. │ │ └── nginx
  163003. │ │ ├── init.yml
  163004. │ │ └── server.yml
  163005. │ └── subsidiaries
  163006. │ ├── gnv.yml
  163007. │ ├── qls.yml
  163008. │ └── zrh.yml
  163009. └── nodes
  163010. ├── geneva
  163011. │ └── gnv.node1.yml
  163012. ├── lausanne
  163013. │ ├── qls.node1.yml
  163014. │ └── qls.node2.yml
  163015. ├── node127.yml
  163016. └── zurich
  163017. ├── zrh.node1.yml
  163018. ├── zrh.node2.yml
  163019. └── zrh.node3.yml
  163020. .ft P
  163021. .fi
  163022. .UNINDENT
  163023. .UNINDENT
  163024. .sp
  163025. \fBExamples\fP
  163026. .sp
  163027. \fB<saltclass_path>/nodes/lausanne/qls.node1.yml\fP
  163028. .INDENT 0.0
  163029. .INDENT 3.5
  163030. .sp
  163031. .nf
  163032. .ft C
  163033. environment: base
  163034. classes:
  163035. {% for class in [\(aqdefault\(aq] %}
  163036. \- {{ class }}
  163037. {% endfor %}
  163038. \- subsidiaries.{{ __grains__[\(aqid\(aq].split(\(aq.\(aq)[0] }}
  163039. .ft P
  163040. .fi
  163041. .UNINDENT
  163042. .UNINDENT
  163043. .sp
  163044. \fB<saltclass_path>/classes/default/init.yml\fP
  163045. .INDENT 0.0
  163046. .INDENT 3.5
  163047. .sp
  163048. .nf
  163049. .ft C
  163050. classes:
  163051. \- default.users
  163052. \- default.motd
  163053. states:
  163054. \- openssh
  163055. pillars:
  163056. default:
  163057. network:
  163058. dns:
  163059. srv1: 192.168.0.1
  163060. srv2: 192.168.0.2
  163061. domain: example.com
  163062. ntp:
  163063. srv1: 192.168.10.10
  163064. srv2: 192.168.10.20
  163065. .ft P
  163066. .fi
  163067. .UNINDENT
  163068. .UNINDENT
  163069. .sp
  163070. \fB<saltclass_path>/classes/subsidiaries/gnv.yml\fP
  163071. .INDENT 0.0
  163072. .INDENT 3.5
  163073. .sp
  163074. .nf
  163075. .ft C
  163076. pillars:
  163077. default:
  163078. network:
  163079. sub: Geneva
  163080. dns:
  163081. srv1: 10.20.0.1
  163082. srv2: 10.20.0.2
  163083. srv3: 192.168.1.1
  163084. domain: gnv.example.com
  163085. users:
  163086. adm1:
  163087. uid: 1210
  163088. gid: 1210
  163089. gecos: \(aqSuper user admin1\(aq
  163090. homedir: /srv/app/adm1
  163091. adm3:
  163092. uid: 1203
  163093. gid: 1203
  163094. gecos: \(aqSuper user adm
  163095. .ft P
  163096. .fi
  163097. .UNINDENT
  163098. .UNINDENT
  163099. .sp
  163100. Variable expansions:
  163101. .sp
  163102. Escaped variables are rendered as is \- \fB${test}\fP
  163103. .sp
  163104. Missing variables are rendered as is \- \fB${net:dns:srv2}\fP
  163105. .INDENT 0.0
  163106. .INDENT 3.5
  163107. .sp
  163108. .nf
  163109. .ft C
  163110. pillars:
  163111. app:
  163112. config:
  163113. dns:
  163114. srv1: ${default:network:dns:srv1}
  163115. srv2: ${net:dns:srv2}
  163116. uri: https://application.domain/call?\e${test}
  163117. prod_parameters:
  163118. \- p1
  163119. \- p2
  163120. \- p3
  163121. pkg:
  163122. \- app\-core
  163123. \- app\-backend
  163124. .ft P
  163125. .fi
  163126. .UNINDENT
  163127. .UNINDENT
  163128. .sp
  163129. List override:
  163130. .sp
  163131. Not using \fB^\fP as the first entry will simply merge the lists
  163132. .INDENT 0.0
  163133. .INDENT 3.5
  163134. .sp
  163135. .nf
  163136. .ft C
  163137. pillars:
  163138. app:
  163139. pkg:
  163140. \- ^
  163141. \- app\-frontend
  163142. .ft P
  163143. .fi
  163144. .UNINDENT
  163145. .UNINDENT
  163146. .sp
  163147. \fBKnown limitation\fP
  163148. .sp
  163149. Currently you can\(aqt have both a variable and an escaped variable in the same
  163150. string as the escaped one will not be correctly rendered \- \(aq${xx}\(aq will stay
  163151. as is instead of being rendered as \(aq${xx}\(aq
  163152. .SS Lists of comments in state returns
  163153. .sp
  163154. State functions can now return a list of strings for the \fBcomment\fP field, as
  163155. opposed to only a single string. This is meant to ease writing states with
  163156. multiple or multi\-part comments.
  163157. .SS Beacon configuration changes
  163158. .sp
  163159. In order to remain consistent and to align with other Salt components such as
  163160. states, support for configuring beacons using dictionary based configuration
  163161. has been deprecated in favor of list based configuration. All beacons have a
  163162. validation function which will check the configuration for the correct format
  163163. and only load if the validation passes.
  163164. .SS avahi_announce
  163165. .sp
  163166. Old behavior:
  163167. .INDENT 0.0
  163168. .INDENT 3.5
  163169. .sp
  163170. .nf
  163171. .ft C
  163172. beacons:
  163173. avahi_announce:
  163174. run_once: True
  163175. servicetype: _demo._tcp
  163176. port: 1234
  163177. txt:
  163178. ProdName: grains.productname
  163179. SerialNo: grains.serialnumber
  163180. Comments: \(aqthis is a test\(aq
  163181. .ft P
  163182. .fi
  163183. .UNINDENT
  163184. .UNINDENT
  163185. .sp
  163186. New behavior:
  163187. .INDENT 0.0
  163188. .INDENT 3.5
  163189. .sp
  163190. .nf
  163191. .ft C
  163192. beacons:
  163193. avahi_announce:
  163194. \- run_once: True
  163195. \- servicetype: _demo._tcp
  163196. \- port: 1234
  163197. \- txt:
  163198. ProdName: grains.productname
  163199. SerialNo: grains.serialnumber
  163200. Comments: \(aqthis is a test\(aq
  163201. .ft P
  163202. .fi
  163203. .UNINDENT
  163204. .UNINDENT
  163205. .SS bonjour_announce
  163206. .sp
  163207. Old behavior:
  163208. .INDENT 0.0
  163209. .INDENT 3.5
  163210. .sp
  163211. .nf
  163212. .ft C
  163213. beacons:
  163214. bonjour_announce:
  163215. run_once: True
  163216. servicetype: _demo._tcp
  163217. port: 1234
  163218. txt:
  163219. ProdName: grains.productname
  163220. SerialNo: grains.serialnumber
  163221. Comments: \(aqthis is a test\(aq
  163222. .ft P
  163223. .fi
  163224. .UNINDENT
  163225. .UNINDENT
  163226. .sp
  163227. New behavior:
  163228. .INDENT 0.0
  163229. .INDENT 3.5
  163230. .sp
  163231. .nf
  163232. .ft C
  163233. beacons:
  163234. bonjour_announce:
  163235. \- run_once: True
  163236. \- servicetype: _demo._tcp
  163237. \- port: 1234
  163238. \- txt:
  163239. ProdName: grains.productname
  163240. SerialNo: grains.serialnumber
  163241. Comments: \(aqthis is a test\(aq
  163242. .ft P
  163243. .fi
  163244. .UNINDENT
  163245. .UNINDENT
  163246. .SS btmp
  163247. .sp
  163248. Old behavior:
  163249. .INDENT 0.0
  163250. .INDENT 3.5
  163251. .sp
  163252. .nf
  163253. .ft C
  163254. beacons:
  163255. btmp: {}
  163256. .ft P
  163257. .fi
  163258. .UNINDENT
  163259. .UNINDENT
  163260. .sp
  163261. New behavior:
  163262. .INDENT 0.0
  163263. .INDENT 3.5
  163264. .sp
  163265. .nf
  163266. .ft C
  163267. beacons:
  163268. btmp: []
  163269. .ft P
  163270. .fi
  163271. .UNINDENT
  163272. .UNINDENT
  163273. .SS glxinfo
  163274. .sp
  163275. Old behavior:
  163276. .INDENT 0.0
  163277. .INDENT 3.5
  163278. .sp
  163279. .nf
  163280. .ft C
  163281. beacons:
  163282. glxinfo:
  163283. user: frank
  163284. screen_event: True
  163285. .ft P
  163286. .fi
  163287. .UNINDENT
  163288. .UNINDENT
  163289. .sp
  163290. New behavior:
  163291. .INDENT 0.0
  163292. .INDENT 3.5
  163293. .sp
  163294. .nf
  163295. .ft C
  163296. beacons:
  163297. glxinfo:
  163298. \- user: frank
  163299. \- screen_event: True
  163300. .ft P
  163301. .fi
  163302. .UNINDENT
  163303. .UNINDENT
  163304. .SS haproxy
  163305. .sp
  163306. Old behavior:
  163307. .INDENT 0.0
  163308. .INDENT 3.5
  163309. .sp
  163310. .nf
  163311. .ft C
  163312. beacons:
  163313. haproxy:
  163314. \- www\-backend:
  163315. threshold: 45
  163316. servers:
  163317. \- web1
  163318. \- web2
  163319. \- interval: 120
  163320. .ft P
  163321. .fi
  163322. .UNINDENT
  163323. .UNINDENT
  163324. .sp
  163325. New behavior:
  163326. .INDENT 0.0
  163327. .INDENT 3.5
  163328. .sp
  163329. .nf
  163330. .ft C
  163331. beacons:
  163332. haproxy:
  163333. \- backends:
  163334. www\-backend:
  163335. threshold: 45
  163336. servers:
  163337. \- web1
  163338. \- web2
  163339. \- interval: 120
  163340. .ft P
  163341. .fi
  163342. .UNINDENT
  163343. .UNINDENT
  163344. .SS inotify
  163345. .sp
  163346. Old behavior:
  163347. .INDENT 0.0
  163348. .INDENT 3.5
  163349. .sp
  163350. .nf
  163351. .ft C
  163352. beacons:
  163353. inotify:
  163354. /path/to/file/or/dir:
  163355. mask:
  163356. \- open
  163357. \- create
  163358. \- close_write
  163359. recurse: True
  163360. auto_add: True
  163361. exclude:
  163362. \- /path/to/file/or/dir/exclude1
  163363. \- /path/to/file/or/dir/exclude2
  163364. \- /path/to/file/or/dir/regex[a\-m]*$:
  163365. regex: True
  163366. coalesce: True
  163367. .ft P
  163368. .fi
  163369. .UNINDENT
  163370. .UNINDENT
  163371. .sp
  163372. New behavior:
  163373. .INDENT 0.0
  163374. .INDENT 3.5
  163375. .sp
  163376. .nf
  163377. .ft C
  163378. beacons:
  163379. inotify:
  163380. \- files:
  163381. /path/to/file/or/dir:
  163382. mask:
  163383. \- open
  163384. \- create
  163385. \- close_write
  163386. recurse: True
  163387. auto_add: True
  163388. exclude:
  163389. \- /path/to/file/or/dir/exclude1
  163390. \- /path/to/file/or/dir/exclude2
  163391. \- /path/to/file/or/dir/regex[a\-m]*$:
  163392. regex: True
  163393. \- coalesce: True
  163394. .ft P
  163395. .fi
  163396. .UNINDENT
  163397. .UNINDENT
  163398. .SS journald
  163399. .sp
  163400. Old behavior:
  163401. .INDENT 0.0
  163402. .INDENT 3.5
  163403. .sp
  163404. .nf
  163405. .ft C
  163406. beacons:
  163407. journald:
  163408. sshd:
  163409. SYSLOG_IDENTIFIER: sshd
  163410. PRIORITY: 6
  163411. .ft P
  163412. .fi
  163413. .UNINDENT
  163414. .UNINDENT
  163415. .sp
  163416. New behavior:
  163417. .INDENT 0.0
  163418. .INDENT 3.5
  163419. .sp
  163420. .nf
  163421. .ft C
  163422. beacons:
  163423. journald:
  163424. \- services:
  163425. sshd:
  163426. SYSLOG_IDENTIFIER: sshd
  163427. PRIORITY: 6
  163428. .ft P
  163429. .fi
  163430. .UNINDENT
  163431. .UNINDENT
  163432. .SS load
  163433. .sp
  163434. Old behavior:
  163435. .INDENT 0.0
  163436. .INDENT 3.5
  163437. .sp
  163438. .nf
  163439. .ft C
  163440. beacons:
  163441. load:
  163442. 1m:
  163443. \- 0.0
  163444. \- 2.0
  163445. 5m:
  163446. \- 0.0
  163447. \- 1.5
  163448. 15m:
  163449. \- 0.1
  163450. \- 1.0
  163451. emitatstartup: True
  163452. onchangeonly: False
  163453. .ft P
  163454. .fi
  163455. .UNINDENT
  163456. .UNINDENT
  163457. .sp
  163458. New behavior:
  163459. .INDENT 0.0
  163460. .INDENT 3.5
  163461. .sp
  163462. .nf
  163463. .ft C
  163464. beacons:
  163465. load:
  163466. \- averages:
  163467. 1m:
  163468. \- 0.0
  163469. \- 2.0
  163470. 5m:
  163471. \- 0.0
  163472. \- 1.5
  163473. 15m:
  163474. \- 0.1
  163475. \- 1.0
  163476. \- emitatstartup: True
  163477. \- onchangeonly: False
  163478. .ft P
  163479. .fi
  163480. .UNINDENT
  163481. .UNINDENT
  163482. .SS log
  163483. .sp
  163484. Old behavior:
  163485. .INDENT 0.0
  163486. .INDENT 3.5
  163487. .sp
  163488. .nf
  163489. .ft C
  163490. beacons:
  163491. log:
  163492. file: <path>
  163493. <tag>:
  163494. regex: <pattern>
  163495. .ft P
  163496. .fi
  163497. .UNINDENT
  163498. .UNINDENT
  163499. .sp
  163500. New behavior:
  163501. .INDENT 0.0
  163502. .INDENT 3.5
  163503. .sp
  163504. .nf
  163505. .ft C
  163506. beacons:
  163507. log:
  163508. \- file: <path>
  163509. \- tags:
  163510. <tag>:
  163511. regex: <pattern>
  163512. .ft P
  163513. .fi
  163514. .UNINDENT
  163515. .UNINDENT
  163516. .SS network_info
  163517. .sp
  163518. Old behavior:
  163519. .INDENT 0.0
  163520. .INDENT 3.5
  163521. .sp
  163522. .nf
  163523. .ft C
  163524. beacons:
  163525. network_info:
  163526. \- eth0:
  163527. type: equal
  163528. bytes_sent: 100000
  163529. bytes_recv: 100000
  163530. packets_sent: 100000
  163531. packets_recv: 100000
  163532. errin: 100
  163533. errout: 100
  163534. dropin: 100
  163535. dropout: 100
  163536. .ft P
  163537. .fi
  163538. .UNINDENT
  163539. .UNINDENT
  163540. .sp
  163541. New behavior:
  163542. .INDENT 0.0
  163543. .INDENT 3.5
  163544. .sp
  163545. .nf
  163546. .ft C
  163547. beacons:
  163548. network_info:
  163549. \- interfaces:
  163550. eth0:
  163551. type: equal
  163552. bytes_sent: 100000
  163553. bytes_recv: 100000
  163554. packets_sent: 100000
  163555. packets_recv: 100000
  163556. errin: 100
  163557. errout: 100
  163558. dropin: 100
  163559. dropout: 100
  163560. .ft P
  163561. .fi
  163562. .UNINDENT
  163563. .UNINDENT
  163564. .SS network_settings
  163565. .sp
  163566. Old behavior:
  163567. .INDENT 0.0
  163568. .INDENT 3.5
  163569. .sp
  163570. .nf
  163571. .ft C
  163572. beacons:
  163573. network_settings:
  163574. eth0:
  163575. ipaddr:
  163576. promiscuity:
  163577. onvalue: 1
  163578. eth1:
  163579. linkmode:
  163580. .ft P
  163581. .fi
  163582. .UNINDENT
  163583. .UNINDENT
  163584. .sp
  163585. New behavior:
  163586. .INDENT 0.0
  163587. .INDENT 3.5
  163588. .sp
  163589. .nf
  163590. .ft C
  163591. beacons:
  163592. network_settings:
  163593. \- interfaces:
  163594. \- eth0:
  163595. ipaddr:
  163596. promiscuity:
  163597. onvalue: 1
  163598. \- eth1:
  163599. linkmode:
  163600. .ft P
  163601. .fi
  163602. .UNINDENT
  163603. .UNINDENT
  163604. .SS proxy_example
  163605. .sp
  163606. Old behavior:
  163607. .INDENT 0.0
  163608. .INDENT 3.5
  163609. .sp
  163610. .nf
  163611. .ft C
  163612. beacons:
  163613. proxy_example:
  163614. endpoint: beacon
  163615. .ft P
  163616. .fi
  163617. .UNINDENT
  163618. .UNINDENT
  163619. .sp
  163620. New behavior:
  163621. .INDENT 0.0
  163622. .INDENT 3.5
  163623. .sp
  163624. .nf
  163625. .ft C
  163626. beacons:
  163627. proxy_example:
  163628. \- endpoint: beacon
  163629. .ft P
  163630. .fi
  163631. .UNINDENT
  163632. .UNINDENT
  163633. .SS ps
  163634. .sp
  163635. Old behavior:
  163636. .INDENT 0.0
  163637. .INDENT 3.5
  163638. .sp
  163639. .nf
  163640. .ft C
  163641. beacons:
  163642. ps:
  163643. \- salt\-master: running
  163644. \- mysql: stopped
  163645. .ft P
  163646. .fi
  163647. .UNINDENT
  163648. .UNINDENT
  163649. .sp
  163650. New behavior:
  163651. .INDENT 0.0
  163652. .INDENT 3.5
  163653. .sp
  163654. .nf
  163655. .ft C
  163656. beacons:
  163657. ps:
  163658. \- processes:
  163659. salt\-master: running
  163660. mysql: stopped
  163661. .ft P
  163662. .fi
  163663. .UNINDENT
  163664. .UNINDENT
  163665. .SS salt_proxy
  163666. .sp
  163667. Old behavior:
  163668. .INDENT 0.0
  163669. .INDENT 3.5
  163670. .sp
  163671. .nf
  163672. .ft C
  163673. beacons:
  163674. salt_proxy:
  163675. \- p8000: {}
  163676. \- p8001: {}
  163677. .ft P
  163678. .fi
  163679. .UNINDENT
  163680. .UNINDENT
  163681. .sp
  163682. New behavior:
  163683. .INDENT 0.0
  163684. .INDENT 3.5
  163685. .sp
  163686. .nf
  163687. .ft C
  163688. beacons:
  163689. salt_proxy:
  163690. \- proxies:
  163691. p8000: {}
  163692. p8001: {}
  163693. .ft P
  163694. .fi
  163695. .UNINDENT
  163696. .UNINDENT
  163697. .SS sensehat
  163698. .sp
  163699. Old behavior:
  163700. .INDENT 0.0
  163701. .INDENT 3.5
  163702. .sp
  163703. .nf
  163704. .ft C
  163705. beacons:
  163706. sensehat:
  163707. humidity: 70%
  163708. temperature: [20, 40]
  163709. temperature_from_pressure: 40
  163710. pressure: 1500
  163711. .ft P
  163712. .fi
  163713. .UNINDENT
  163714. .UNINDENT
  163715. .sp
  163716. New behavior:
  163717. .INDENT 0.0
  163718. .INDENT 3.5
  163719. .sp
  163720. .nf
  163721. .ft C
  163722. beacons:
  163723. sensehat:
  163724. \- sensors:
  163725. humidity: 70%
  163726. temperature: [20, 40]
  163727. temperature_from_pressure: 40
  163728. pressure: 1500
  163729. .ft P
  163730. .fi
  163731. .UNINDENT
  163732. .UNINDENT
  163733. .SS service
  163734. .sp
  163735. Old behavior:
  163736. .INDENT 0.0
  163737. .INDENT 3.5
  163738. .sp
  163739. .nf
  163740. .ft C
  163741. beacons:
  163742. service:
  163743. salt\-master:
  163744. mysql:
  163745. .ft P
  163746. .fi
  163747. .UNINDENT
  163748. .UNINDENT
  163749. .sp
  163750. New behavior:
  163751. .INDENT 0.0
  163752. .INDENT 3.5
  163753. .sp
  163754. .nf
  163755. .ft C
  163756. beacons:
  163757. service:
  163758. \- services:
  163759. nginx:
  163760. onchangeonly: True
  163761. delay: 30
  163762. uncleanshutdown: /run/nginx.pid
  163763. .ft P
  163764. .fi
  163765. .UNINDENT
  163766. .UNINDENT
  163767. .SS sh
  163768. .sp
  163769. Old behavior:
  163770. .INDENT 0.0
  163771. .INDENT 3.5
  163772. .sp
  163773. .nf
  163774. .ft C
  163775. beacons:
  163776. sh: {}
  163777. .ft P
  163778. .fi
  163779. .UNINDENT
  163780. .UNINDENT
  163781. .sp
  163782. New behavior:
  163783. .INDENT 0.0
  163784. .INDENT 3.5
  163785. .sp
  163786. .nf
  163787. .ft C
  163788. beacons:
  163789. sh: []
  163790. .ft P
  163791. .fi
  163792. .UNINDENT
  163793. .UNINDENT
  163794. .SS status
  163795. .sp
  163796. Old behavior:
  163797. .INDENT 0.0
  163798. .INDENT 3.5
  163799. .sp
  163800. .nf
  163801. .ft C
  163802. beacons:
  163803. status: {}
  163804. .ft P
  163805. .fi
  163806. .UNINDENT
  163807. .UNINDENT
  163808. .sp
  163809. New behavior:
  163810. .INDENT 0.0
  163811. .INDENT 3.5
  163812. .sp
  163813. .nf
  163814. .ft C
  163815. beacons:
  163816. status: []
  163817. .ft P
  163818. .fi
  163819. .UNINDENT
  163820. .UNINDENT
  163821. .SS telegram_bot_msg
  163822. .sp
  163823. Old behavior:
  163824. .INDENT 0.0
  163825. .INDENT 3.5
  163826. .sp
  163827. .nf
  163828. .ft C
  163829. beacons:
  163830. telegram_bot_msg:
  163831. token: "<bot access token>"
  163832. accept_from:
  163833. \- "<valid username>"
  163834. interval: 10
  163835. .ft P
  163836. .fi
  163837. .UNINDENT
  163838. .UNINDENT
  163839. .sp
  163840. New behavior:
  163841. .INDENT 0.0
  163842. .INDENT 3.5
  163843. .sp
  163844. .nf
  163845. .ft C
  163846. beacons:
  163847. telegram_bot_msg:
  163848. \- token: "<bot access token>"
  163849. \- accept_from:
  163850. \- "<valid username>"
  163851. \- interval: 10
  163852. .ft P
  163853. .fi
  163854. .UNINDENT
  163855. .UNINDENT
  163856. .SS twilio_txt_msg
  163857. .sp
  163858. Old behavior:
  163859. .INDENT 0.0
  163860. .INDENT 3.5
  163861. .sp
  163862. .nf
  163863. .ft C
  163864. beacons:
  163865. twilio_txt_msg:
  163866. account_sid: "<account sid>"
  163867. auth_token: "<auth token>"
  163868. twilio_number: "+15555555555"
  163869. interval: 10
  163870. .ft P
  163871. .fi
  163872. .UNINDENT
  163873. .UNINDENT
  163874. .sp
  163875. New behavior:
  163876. .INDENT 0.0
  163877. .INDENT 3.5
  163878. .sp
  163879. .nf
  163880. .ft C
  163881. beacons:
  163882. twilio_txt_msg:
  163883. \- account_sid: "<account sid>"
  163884. \- auth_token: "<auth token>"
  163885. \- twilio_number: "+15555555555"
  163886. \- interval: 10
  163887. .ft P
  163888. .fi
  163889. .UNINDENT
  163890. .UNINDENT
  163891. .SS wtmp
  163892. .sp
  163893. Old behavior:
  163894. .INDENT 0.0
  163895. .INDENT 3.5
  163896. .sp
  163897. .nf
  163898. .ft C
  163899. beacons:
  163900. wtmp: {}
  163901. .ft P
  163902. .fi
  163903. .UNINDENT
  163904. .UNINDENT
  163905. .sp
  163906. New behavior:
  163907. .INDENT 0.0
  163908. .INDENT 3.5
  163909. .sp
  163910. .nf
  163911. .ft C
  163912. beacons:
  163913. wtmp: []
  163914. .ft P
  163915. .fi
  163916. .UNINDENT
  163917. .UNINDENT
  163918. .SS New requisites available in state compiler
  163919. .SS require_any
  163920. .sp
  163921. The use of \fBrequire_any\fP demands that one of the required states executes
  163922. before the dependent state. The state containing the \fBrequire_any\fP requisite
  163923. is defined as the dependent state. The states specified in the \fBrequire_any\fP
  163924. statement are defined as the required states. If at least one of the required
  163925. state\(aqs execution succeeds, the dependent state will then execute. If all of
  163926. the executions by the required states fail, the dependent state will not
  163927. execute.
  163928. .SS watch_any
  163929. .sp
  163930. The state containing the \fBwatch_any\fP requisite is defined as the watching
  163931. state. The states specified in the \fBwatch_any\fP statement are defined as the
  163932. watched states. When the watched states execute, they will return a dictionary
  163933. containing a key named "changes".
  163934. .sp
  163935. If the "result" of any of the watched states is \fBTrue\fP, the watching state
  163936. \fIwill execute normally\fP, and if all of them are \fBFalse\fP, the watching state
  163937. will never run. This part of \fBwatch\fP mirrors the functionality of the
  163938. \fBrequire\fP requisite.
  163939. .sp
  163940. If the "result" of any of the watched states is \fBTrue\fP \fIand\fP the "changes"
  163941. key contains a populated dictionary (changes occurred in the watched state),
  163942. then the \fBwatch\fP requisite can add additional behavior. This additional
  163943. behavior is defined by the \fBmod_watch\fP function within the watching state
  163944. module. If the \fBmod_watch\fP function exists in the watching state module, it
  163945. will be called \fIin addition to\fP the normal watching state. The return data from
  163946. the \fBmod_watch\fP function is what will be returned to the master in this case;
  163947. the return data from the main watching function is discarded.
  163948. .sp
  163949. If the "changes" key contains an empty dictionary, the \fBwatch\fP requisite acts
  163950. exactly like the \fBrequire\fP requisite (the watching state will execute if
  163951. "result" is \fBTrue\fP, and fail if "result" is \fBFalse\fP in the watched state).
  163952. .SS onchanges_any
  163953. .sp
  163954. The \fBonchanges_any\fP requisite makes a state only apply one of the required
  163955. states generates changes, and if one of the watched state\(aqs "result" is
  163956. \fBTrue\fP\&. This can be a useful way to execute a post hook after changing
  163957. aspects of a system.
  163958. .SS onfail_any
  163959. .sp
  163960. The \fBonfail_any\fP requisite allows for reactions to happen strictly as a
  163961. response to the failure of at least one other state. This can be used in a
  163962. number of ways, such as executing a second attempt to set up a service or begin
  163963. to execute a separate thread of states because of a failure.
  163964. .sp
  163965. The \fBonfail_any\fP requisite is applied in the same way as \fBrequire_any\fP and
  163966. \fBwatch_any\fP\&.
  163967. .SS Basic Slots support in state compiler
  163968. .sp
  163969. Slots extend the state syntax and allows you to do things right before the
  163970. state function is executed. So you can make a decision in the last moment right
  163971. before a state is executed.
  163972. .sp
  163973. Slot syntax looks close to the simple python function call. Here is a simple example:
  163974. .INDENT 0.0
  163975. .INDENT 3.5
  163976. .sp
  163977. .nf
  163978. .ft C
  163979. copy\-some\-file:
  163980. file.copy:
  163981. \- name: __slot__:salt:test.echo(text=/tmp/some_file)
  163982. \- source: __slot__:salt:test.echo(/etc/hosts)
  163983. .ft P
  163984. .fi
  163985. .UNINDENT
  163986. .UNINDENT
  163987. .sp
  163988. Read more here\&.
  163989. .SS Cryptographic layer changes
  163990. .sp
  163991. M2Crypto is coming back. We are making the crypto backend modular but in this
  163992. release M2Crypto is enabled if it\(aqs importable by Python. If not Cryptodome or
  163993. PyCrypto is used as it was in the previous releases. M2Crypto is used in the
  163994. same way as PyCrypto so there would be no compatibility issues, different nodes
  163995. could use different backends.
  163996. .SS NaCL Module and Runner changes
  163997. .sp
  163998. In addition to argument changes in both the NaCL module and runner for future
  163999. removal in the 3000 release, the default "box_type" has changed from
  164000. \fBsecretbox\fP to \fBsealedbox\fP\&. SecretBox is data encrypted using private key
  164001. \fBsk\fP and Sealedbox is encrypted using public key \fBpk\fP\&.
  164002. .SS \fButils\fP functions reorganized into separate modules
  164003. .sp
  164004. The Salt utility functions from \fBsalt.utils\fP (typically used by those
  164005. developing extension modules for Salt) have been moved into different modules,
  164006. grouped logically based on their functionality. The old function names will
  164007. continue to work until the \fB3000\fP release of Salt (due around Q1 2019).
  164008. .sp
  164009. The renamed functions are:
  164010. .INDENT 0.0
  164011. .IP \(bu 2
  164012. \fBsalt.utils.appendproctitle\fP: use \fBsalt.utils.process.appendproctitle\fP
  164013. instead.
  164014. .IP \(bu 2
  164015. \fBsalt.utils.daemonize\fP: use \fBsalt.utils.process.daemonize\fP instead.
  164016. .IP \(bu 2
  164017. \fBsalt.utils.daemonize_if\fP: use \fBsalt.utils.process.daemonize_if\fP instead.
  164018. .IP \(bu 2
  164019. \fBsalt.utils.reinit_crypto\fP: use \fBsalt.utils.crypt.reinit_crypto\fP instead.
  164020. .IP \(bu 2
  164021. \fBsalt.utils.pem_finger\fP: use \fBsalt.utils.crypt.pem_finger\fP instead.
  164022. .IP \(bu 2
  164023. \fBsalt.utils.to_bytes\fP: use \fBsalt.utils.stringutils.to_bytes\fP instead.
  164024. .IP \(bu 2
  164025. \fBsalt.utils.to_str\fP: use \fBsalt.utils.stringutils.to_str\fP instead.
  164026. .IP \(bu 2
  164027. \fBsalt.utils.to_unicode\fP: use \fBsalt.utils.stringutils.to_unicode\fP instead.
  164028. .IP \(bu 2
  164029. \fBsalt.utils.str_to_num\fP: use \fBsalt.utils.stringutils.to_num\fP instead.
  164030. .IP \(bu 2
  164031. \fBsalt.utils.is_quoted\fP: use \fBsalt.utils.stringutils.is_quoted\fP instead.
  164032. .IP \(bu 2
  164033. \fBsalt.utils.dequote\fP: use \fBsalt.utils.stringutils.dequote\fP instead.
  164034. .IP \(bu 2
  164035. \fBsalt.utils.is_hex\fP: use \fBsalt.utils.stringutils.is_hex\fP instead.
  164036. .IP \(bu 2
  164037. \fBsalt.utils.is_bin_str\fP: use \fBsalt.utils.stringutils.is_bin_str\fP instead.
  164038. .IP \(bu 2
  164039. \fBsalt.utils.rand_string\fP: use \fBsalt.utils.stringutils.random\fP instead.
  164040. .IP \(bu 2
  164041. \fBsalt.utils.contains_whitespace\fP: use
  164042. \fBsalt.utils.stringutils.contains_whitespace\fP instead.
  164043. .IP \(bu 2
  164044. \fBsalt.utils.build_whitespace_split_regex\fP: use
  164045. \fBsalt.utils.stringutils.build_whitespace_split_regex\fP instead.
  164046. .IP \(bu 2
  164047. \fBsalt.utils.expr_match\fP: use \fBsalt.utils.stringutils.expr_match\fP instead.
  164048. .IP \(bu 2
  164049. \fBsalt.utils.check_whitelist_blacklist\fP: use
  164050. \fBsalt.utils.stringutils.check_whitelist_blacklist\fP instead.
  164051. .IP \(bu 2
  164052. \fBsalt.utils.check_include_exclude\fP: use
  164053. \fBsalt.utils.stringutils.check_include_exclude\fP instead.
  164054. .IP \(bu 2
  164055. \fBsalt.utils.print_cli\fP: use \fBsalt.utils.stringutils.print_cli\fP instead.
  164056. .IP \(bu 2
  164057. \fBsalt.utils.clean_kwargs\fP: use \fBsalt.utils.args.clean_kwargs\fP instead.
  164058. .IP \(bu 2
  164059. \fBsalt.utils.invalid_kwargs\fP: use \fBsalt.utils.args.invalid_kwargs\fP
  164060. instead.
  164061. .IP \(bu 2
  164062. \fBsalt.utils.shlex_split\fP: use \fBsalt.utils.args.shlex_split\fP instead.
  164063. .IP \(bu 2
  164064. \fBsalt.utils.arg_lookup\fP: use \fBsalt.utils.args.arg_lookup\fP instead.
  164065. .IP \(bu 2
  164066. \fBsalt.utils.argspec_report\fP: use \fBsalt.utils.args.argspec_report\fP
  164067. instead.
  164068. .IP \(bu 2
  164069. \fBsalt.utils.split_input\fP: use \fBsalt.utils.args.split_input\fP instead.
  164070. .IP \(bu 2
  164071. \fBsalt.utils.test_mode\fP: use \fBsalt.utils.args.test_mode\fP instead.
  164072. .IP \(bu 2
  164073. \fBsalt.utils.format_call\fP: use \fBsalt.utils.args.format_call\fP instead.
  164074. .IP \(bu 2
  164075. \fBsalt.utils.which\fP: use \fBsalt.utils.path.which\fP instead.
  164076. .IP \(bu 2
  164077. \fBsalt.utils.which_bin\fP: use \fBsalt.utils.path.which_bin\fP instead.
  164078. .IP \(bu 2
  164079. \fBsalt.utils.path_join\fP: use \fBsalt.utils.path.join\fP instead.
  164080. .IP \(bu 2
  164081. \fBsalt.utils.check_or_die\fP: use \fBsalt.utils.path.check_or_die\fP instead.
  164082. .IP \(bu 2
  164083. \fBsalt.utils.sanitize_win_path_string\fP: use
  164084. \fBsalt.utils.path.sanitize_win_path\fP instead.
  164085. .IP \(bu 2
  164086. \fBsalt.utils.rand_str\fP: use \fBsalt.utils.hashutils.random_hash\fP instead.
  164087. .IP \(bu 2
  164088. \fBsalt.utils.get_hash\fP: use \fBsalt.utils.hashutils.get_hash\fP instead.
  164089. .IP \(bu 2
  164090. \fBsalt.utils.is_windows\fP: use \fBsalt.utils.platform.is_windows\fP instead.
  164091. .IP \(bu 2
  164092. \fBsalt.utils.is_proxy\fP: use \fBsalt.utils.platform.is_proxy\fP instead.
  164093. .IP \(bu 2
  164094. \fBsalt.utils.is_linux\fP: use \fBsalt.utils.platform.is_linux\fP instead.
  164095. .IP \(bu 2
  164096. \fBsalt.utils.is_darwin\fP: use \fBsalt.utils.platform.is_darwin\fP instead.
  164097. .IP \(bu 2
  164098. \fBsalt.utils.is_sunos\fP: use \fBsalt.utils.platform.is_sunos\fP instead.
  164099. .IP \(bu 2
  164100. \fBsalt.utils.is_smartos\fP: use \fBsalt.utils.platform.is_smartos\fP instead.
  164101. .IP \(bu 2
  164102. \fBsalt.utils.is_smartos_globalzone\fP: use
  164103. \fBsalt.utils.platform.is_smartos_globalzone\fP instead.
  164104. .IP \(bu 2
  164105. \fBsalt.utils.is_smartos_zone\fP: use \fBsalt.utils.platform.is_smartos_zone\fP
  164106. instead.
  164107. .IP \(bu 2
  164108. \fBsalt.utils.is_freebsd\fP: use \fBsalt.utils.platform.is_freebsd\fP instead.
  164109. .IP \(bu 2
  164110. \fBsalt.utils.is_netbsd\fP: use \fBsalt.utils.platform.is_netbsd\fP instead.
  164111. .IP \(bu 2
  164112. \fBsalt.utils.is_openbsd\fP: use \fBsalt.utils.platform.is_openbsd\fP instead.
  164113. .IP \(bu 2
  164114. \fBsalt.utils.is_aix\fP: use \fBsalt.utils.platform.is_aix\fP instead.
  164115. .IP \(bu 2
  164116. \fBsalt.utils.safe_rm\fP: use \fBsalt.utils.files.safe_rm\fP instead.
  164117. .IP \(bu 2
  164118. \fBsalt.utils.is_empty\fP: use \fBsalt.utils.files.is_empty\fP instead.
  164119. .IP \(bu 2
  164120. \fBsalt.utils.fopen\fP: use \fBsalt.utils.files.fopen\fP instead.
  164121. .IP \(bu 2
  164122. \fBsalt.utils.flopen\fP: use \fBsalt.utils.files.flopen\fP instead.
  164123. .IP \(bu 2
  164124. \fBsalt.utils.fpopen\fP: use \fBsalt.utils.files.fpopen\fP instead.
  164125. .IP \(bu 2
  164126. \fBsalt.utils.rm_rf\fP: use \fBsalt.utils.files.rm_rf\fP instead.
  164127. .IP \(bu 2
  164128. \fBsalt.utils.mkstemp\fP: use \fBsalt.utils.files.mkstemp\fP instead.
  164129. .IP \(bu 2
  164130. \fBsalt.utils.istextfile\fP: use \fBsalt.utils.files.is_text_file\fP instead.
  164131. .IP \(bu 2
  164132. \fBsalt.utils.is_bin_file\fP: use \fBsalt.utils.files.is_binary\fP instead.
  164133. .IP \(bu 2
  164134. \fBsalt.utils.list_files\fP: use \fBsalt.utils.files.list_files\fP instead.
  164135. .IP \(bu 2
  164136. \fBsalt.utils.safe_walk\fP: use \fBsalt.utils.files.safe_walk\fP instead.
  164137. .IP \(bu 2
  164138. \fBsalt.utils.st_mode_to_octal\fP: use \fBsalt.utils.files.st_mode_to_octal\fP
  164139. instead.
  164140. .IP \(bu 2
  164141. \fBsalt.utils.normalize_mode\fP: use \fBsalt.utils.files.normalize_mode\fP
  164142. instead.
  164143. .IP \(bu 2
  164144. \fBsalt.utils.human_size_to_bytes\fP: use
  164145. \fBsalt.utils.files.human_size_to_bytes\fP instead.
  164146. .IP \(bu 2
  164147. \fBsalt.utils.backup_minion\fP: use \fBsalt.utils.files.backup_minion\fP instead.
  164148. .IP \(bu 2
  164149. \fBsalt.utils.str_version_to_evr\fP: use \fBsalt.utils.pkg.rpm.version_to_evr\fP
  164150. instead.
  164151. .IP \(bu 2
  164152. \fBsalt.utils.parse_docstring\fP: use \fBsalt.utils.doc.parse_docstring\fP
  164153. instead.
  164154. .IP \(bu 2
  164155. \fBsalt.utils.compare_versions\fP: use \fBsalt.utils.versions.compare\fP instead.
  164156. .IP \(bu 2
  164157. \fBsalt.utils.version_cmp\fP: use \fBsalt.utils.versions.version_cmp\fP instead.
  164158. .IP \(bu 2
  164159. \fBsalt.utils.warn_until\fP: use \fBsalt.utils.versions.warn_until\fP instead.
  164160. .IP \(bu 2
  164161. \fBsalt.utils.kwargs_warn_until\fP: use
  164162. \fBsalt.utils.versions.kwargs_warn_until\fP instead.
  164163. .IP \(bu 2
  164164. \fBsalt.utils.get_color_theme\fP: use \fBsalt.utils.color.get_color_theme\fP
  164165. instead.
  164166. .IP \(bu 2
  164167. \fBsalt.utils.get_colors\fP: use \fBsalt.utils.color.get_colors\fP instead.
  164168. .IP \(bu 2
  164169. \fBsalt.utils.gen_state_tag\fP: use \fBsalt.utils.state.gen_tag\fP instead.
  164170. .IP \(bu 2
  164171. \fBsalt.utils.search_onfail_requisites\fP: use
  164172. \fBsalt.utils.state.search_onfail_requisites\fP instead.
  164173. .IP \(bu 2
  164174. \fBsalt.utils.check_state_result\fP: use \fBsalt.utils.state.check_result\fP
  164175. instead.
  164176. .IP \(bu 2
  164177. \fBsalt.utils.get_user\fP: use \fBsalt.utils.user.get_user\fP instead.
  164178. .IP \(bu 2
  164179. \fBsalt.utils.get_uid\fP: use \fBsalt.utils.user.get_uid\fP instead.
  164180. .IP \(bu 2
  164181. \fBsalt.utils.get_specific_user\fP: use \fBsalt.utils.user.get_specific_user\fP
  164182. instead.
  164183. .IP \(bu 2
  164184. \fBsalt.utils.chugid\fP: use \fBsalt.utils.user.chugid\fP instead.
  164185. .IP \(bu 2
  164186. \fBsalt.utils.chugid_and_umask\fP: use \fBsalt.utils.user.chugid_and_umask\fP
  164187. instead.
  164188. .IP \(bu 2
  164189. \fBsalt.utils.get_default_group\fP: use \fBsalt.utils.user.get_default_group\fP
  164190. instead.
  164191. .IP \(bu 2
  164192. \fBsalt.utils.get_group_list\fP: use \fBsalt.utils.user.get_group_list\fP
  164193. instead.
  164194. .IP \(bu 2
  164195. \fBsalt.utils.get_group_dict\fP: use \fBsalt.utils.user.get_group_dict\fP
  164196. instead.
  164197. .IP \(bu 2
  164198. \fBsalt.utils.get_gid_list\fP: use \fBsalt.utils.user.get_gid_list\fP instead.
  164199. .IP \(bu 2
  164200. \fBsalt.utils.get_gid\fP: use \fBsalt.utils.user.get_gid\fP instead.
  164201. .IP \(bu 2
  164202. \fBsalt.utils.enable_ctrl_logoff_handler\fP: use
  164203. \fBsalt.utils.win_functions.enable_ctrl_logoff_handler\fP instead.
  164204. .IP \(bu 2
  164205. \fBsalt.utils.traverse_dict\fP: use \fBsalt.utils.data.traverse_dict\fP instead.
  164206. .IP \(bu 2
  164207. \fBsalt.utils.traverse_dict_and_list\fP: use
  164208. \fBsalt.utils.data.traverse_dict_and_list\fP instead.
  164209. .IP \(bu 2
  164210. \fBsalt.utils.filter_by\fP: use \fBsalt.utils.data.filter_by\fP instead.
  164211. .IP \(bu 2
  164212. \fBsalt.utils.subdict_match\fP: use \fBsalt.utils.data.subdict_match\fP instead.
  164213. .IP \(bu 2
  164214. \fBsalt.utils.substr_in_list\fP: use \fBsalt.utils.data.substr_in_list\fP instead.
  164215. .IP \(bu 2
  164216. \fBsalt.utils.is_dictlist\fP: use \fBsalt.utils.data.is_dictlist\fP\&.
  164217. .IP \(bu 2
  164218. \fBsalt.utils.repack_dictlist\fP: use \fBsalt.utils.data.repack_dictlist\fP
  164219. instead.
  164220. .IP \(bu 2
  164221. \fBsalt.utils.compare_dicts\fP: use \fBsalt.utils.data.compare_dicts\fP instead.
  164222. .IP \(bu 2
  164223. \fBsalt.utils.compare_lists\fP: use \fBsalt.utils.data.compare_lists\fP instead.
  164224. .IP \(bu 2
  164225. \fBsalt.utils.decode_dict\fP: use \fBsalt.utils.data.encode_dict\fP instead.
  164226. .IP \(bu 2
  164227. \fBsalt.utils.decode_list\fP: use \fBsalt.utils.data.encode_list\fP instead.
  164228. .IP \(bu 2
  164229. \fBsalt.utils.exactly_n\fP: use \fBsalt.utils.data.exactly_n\fP instead.
  164230. .IP \(bu 2
  164231. \fBsalt.utils.exactly_one\fP: use \fBsalt.utils.data.exactly_one\fP instead.
  164232. .IP \(bu 2
  164233. \fBsalt.utils.is_list\fP: use \fBsalt.utils.data.is_list\fP instead.
  164234. .IP \(bu 2
  164235. \fBsalt.utils.is_iter\fP: use \fBsalt.utils.data.is_iter\fP instead.
  164236. .IP \(bu 2
  164237. \fBsalt.utils.isorted\fP: use \fBsalt.utils.data.sorted_ignorecase\fP instead.
  164238. .IP \(bu 2
  164239. \fBsalt.utils.is_true\fP: use \fBsalt.utils.data.is_true\fP instead.
  164240. .IP \(bu 2
  164241. \fBsalt.utils.mysql_to_dict\fP: use \fBsalt.utils.data.mysql_to_dict\fP instead.
  164242. .IP \(bu 2
  164243. \fBsalt.utils.simple_types_filter\fP: use
  164244. \fBsalt.utils.data.simple_types_filter\fP instead.
  164245. .IP \(bu 2
  164246. \fBsalt.utils.ip_bracket\fP: use \fBsalt.utils.zeromq.ip_bracket\fP instead.
  164247. .IP \(bu 2
  164248. \fBsalt.utils.gen_mac\fP: use \fBsalt.utils.network.gen_mac\fP instead.
  164249. .IP \(bu 2
  164250. \fBsalt.utils.mac_str_to_bytes\fP: use \fBsalt.utils.network.mac_str_to_bytes\fP
  164251. instead.
  164252. .IP \(bu 2
  164253. \fBsalt.utils.refresh_dns\fP: use \fBsalt.utils.network.refresh_dns\fP instead.
  164254. .IP \(bu 2
  164255. \fBsalt.utils.dns_check\fP: use \fBsalt.utils.network.dns_check\fP instead.
  164256. .IP \(bu 2
  164257. \fBsalt.utils.get_context\fP: use \fBsalt.utils.stringutils.get_context\fP instead.
  164258. .IP \(bu 2
  164259. \fBsalt.utils.get_master_key\fP: use \fBsalt.utils.master.get_master_key\fP
  164260. instead.
  164261. .IP \(bu 2
  164262. \fBsalt.utils.get_values_of_matching_keys\fP: use
  164263. \fBsalt.utils.master.get_values_of_matching_keys\fP instead.
  164264. .IP \(bu 2
  164265. \fBsalt.utils.date_cast\fP: use \fBsalt.utils.dateutils.date_cast\fP instead.
  164266. .IP \(bu 2
  164267. \fBsalt.utils.date_format\fP: use \fBsalt.utils.dateutils.strftime\fP instead.
  164268. .IP \(bu 2
  164269. \fBsalt.utils.total_seconds\fP: use \fBsalt.utils.dateutils.total_seconds\fP
  164270. instead.
  164271. .IP \(bu 2
  164272. \fBsalt.utils.find_json\fP: use \fBsalt.utils.json.find_json\fP instead.
  164273. .IP \(bu 2
  164274. \fBsalt.utils.import_json\fP: use \fBsalt.utils.json.import_json\fP instead.
  164275. .IP \(bu 2
  164276. \fBsalt.utils.namespaced_function\fP: use
  164277. \fBsalt.utils.functools.namespaced_function\fP instead.
  164278. .IP \(bu 2
  164279. \fBsalt.utils.alias_function\fP: use \fBsalt.utils.functools.alias_function\fP
  164280. instead.
  164281. .IP \(bu 2
  164282. \fBsalt.utils.profile_func\fP: use \fBsalt.utils.profile.profile_func\fP instead.
  164283. .IP \(bu 2
  164284. \fBsalt.utils.activate_profile\fP: use \fBsalt.utils.profile.activate_profile\fP
  164285. instead.
  164286. .IP \(bu 2
  164287. \fBsalt.utils.output_profile\fP: use \fBsalt.utils.profile.output_profile\fP
  164288. instead.
  164289. .UNINDENT
  164290. .SS Deprecations
  164291. .SS Configuration Option Deprecations
  164292. .INDENT 0.0
  164293. .IP \(bu 2
  164294. The \fBrequests_lib\fP configuration option has been removed. Please use
  164295. \fBbackend\fP instead.
  164296. .UNINDENT
  164297. .SS Profitbricks Cloud Updated Dependency
  164298. .sp
  164299. The minimum version of the \fBprofitbrick\fP python package for the \fBprofitbricks\fP
  164300. cloud driver has changed from 3.0.0 to 3.1.0.
  164301. .SS Execution Module Deprecations
  164302. .INDENT 0.0
  164303. .IP \(bu 2
  164304. The \fBblockdev\fP execution module has been removed. Its functions were merged
  164305. with the \fBdisk\fP module.
  164306. .IP \(bu 2
  164307. The \fBlxc\fP execution module has been changed as
  164308. follows:
  164309. .INDENT 2.0
  164310. .INDENT 3.5
  164311. .INDENT 0.0
  164312. .IP \(bu 2
  164313. The \fBdnsservers\fP option to \fBlxc.cloud_init_interface\fP no longer defaults to
  164314. \fB4.4.4.4\fP and \fB8.8.8.8\fP\&.
  164315. .IP \(bu 2
  164316. The \fBdns_via_dhcp\fP option to \fBlxc.cloud_init_interface\fP now defaults to \fBTrue\fP instead
  164317. of \fBFalse\fP\&.
  164318. .UNINDENT
  164319. .UNINDENT
  164320. .UNINDENT
  164321. .IP \(bu 2
  164322. The \fBwin_psget\fP module has been changed as
  164323. follows:
  164324. .INDENT 2.0
  164325. .INDENT 3.5
  164326. .INDENT 0.0
  164327. .IP \(bu 2
  164328. The \fBpsget.psversion\fP function was removed. Please use
  164329. \fBcmd.shell_info\fP instead.
  164330. .UNINDENT
  164331. .UNINDENT
  164332. .UNINDENT
  164333. .IP \(bu 2
  164334. The \fBwin_service\fP module (which provides
  164335. the \fBservice\fP module on Windows platforms) has been changed as follows:
  164336. .INDENT 2.0
  164337. .INDENT 3.5
  164338. .INDENT 0.0
  164339. .IP \(bu 2
  164340. The \fBconfig\fP function was removed. Please use \fBservice.modify\fP instead.
  164341. .IP \(bu 2
  164342. The following arguments to the \fBservice.create\fP function have been renamed:
  164343. .INDENT 2.0
  164344. .INDENT 3.5
  164345. .INDENT 0.0
  164346. .IP \(bu 2
  164347. \fBbinpath\fP has been renamed to \fBbin_path\fP
  164348. .IP \(bu 2
  164349. \fBdepend\fP has been renamed to \fBdependencies\fP
  164350. .IP \(bu 2
  164351. \fBDisplayName\fP has been renamed to \fBdisplay_name\fP
  164352. .IP \(bu 2
  164353. \fBerror\fP has been renamed to \fBerror_control\fP
  164354. .IP \(bu 2
  164355. \fBgroup\fP has been renamed to \fBload_order_group\fP
  164356. .IP \(bu 2
  164357. \fBobj\fP has been renamed to \fBaccount_name\fP
  164358. .IP \(bu 2
  164359. \fBpassword\fP has been renamed to \fBaccount_password\fP
  164360. .IP \(bu 2
  164361. \fBstart\fP has been renamed to \fBstart_type\fP
  164362. .IP \(bu 2
  164363. \fBtype\fP has been renamed to \fBservice_type\fP
  164364. .UNINDENT
  164365. .UNINDENT
  164366. .UNINDENT
  164367. .UNINDENT
  164368. .UNINDENT
  164369. .UNINDENT
  164370. .IP \(bu 2
  164371. The \fBnacl\fP module has been changed as follows:
  164372. .INDENT 2.0
  164373. .INDENT 3.5
  164374. .INDENT 0.0
  164375. .IP \(bu 2
  164376. The following arguments have been renamed in the \fBnacl.keygen\fP, \fBnacl.enc\fP, and
  164377. \fBnacl.dec\fP:
  164378. .INDENT 2.0
  164379. .INDENT 3.5
  164380. .INDENT 0.0
  164381. .IP \(bu 2
  164382. \fBkey_file\fP has been renamed to \fBsk_file\fP
  164383. .IP \(bu 2
  164384. \fBkey\fP has been renamed to \fBsk\fP
  164385. .UNINDENT
  164386. .UNINDENT
  164387. .UNINDENT
  164388. .UNINDENT
  164389. .UNINDENT
  164390. .UNINDENT
  164391. .UNINDENT
  164392. .SS Runner Deprecations
  164393. .INDENT 0.0
  164394. .IP \(bu 2
  164395. The \fBmanage\fP runner has been changed as follows:
  164396. .INDENT 2.0
  164397. .INDENT 3.5
  164398. .INDENT 0.0
  164399. .IP \(bu 2
  164400. \fBroot_user\fP argument was removed from the \fBmanage.bootstrap\fP function. Please use \fBsalt\-ssh\fP roster
  164401. entries for the host instead.
  164402. .UNINDENT
  164403. .UNINDENT
  164404. .UNINDENT
  164405. .IP \(bu 2
  164406. The \fBnacl\fP runner has been changed as follows:
  164407. .INDENT 2.0
  164408. .INDENT 3.5
  164409. .INDENT 0.0
  164410. .IP \(bu 2
  164411. The following arguments have been renamed in the \fBnacl.keygen\fP, \fBnacl.enc\fP, and
  164412. \fBnacl.dec\fP:
  164413. .INDENT 2.0
  164414. .INDENT 3.5
  164415. .INDENT 0.0
  164416. .IP \(bu 2
  164417. \fBkey_file\fP has been renamed to \fBsk_file\fP
  164418. .IP \(bu 2
  164419. \fBkey\fP has been renamed to \fBsk\fP
  164420. .UNINDENT
  164421. .UNINDENT
  164422. .UNINDENT
  164423. .UNINDENT
  164424. .UNINDENT
  164425. .UNINDENT
  164426. .UNINDENT
  164427. .SS State Deprecations
  164428. .INDENT 0.0
  164429. .IP \(bu 2
  164430. In the \fBarchive\fP state, the
  164431. \fBtar_options\fP and \fBzip_options\fP options were removed. Please use
  164432. \fBoptions\fP instead.
  164433. .IP \(bu 2
  164434. The \fBcmd\fP state had the following changes:
  164435. .INDENT 2.0
  164436. .INDENT 3.5
  164437. .INDENT 0.0
  164438. .IP \(bu 2
  164439. The \fBuser\fP and \fBgroup\fP options were removed from the following functions
  164440. (please use \fBrunas\fP instead):
  164441. .INDENT 2.0
  164442. .INDENT 3.5
  164443. .INDENT 0.0
  164444. .IP \(bu 2
  164445. \fBcmd.run\fP
  164446. .IP \(bu 2
  164447. \fBcmd.script\fP
  164448. .IP \(bu 2
  164449. \fBcmd.wait\fP
  164450. .IP \(bu 2
  164451. \fBcmd.wait_script\fP
  164452. .UNINDENT
  164453. .UNINDENT
  164454. .UNINDENT
  164455. .UNINDENT
  164456. .UNINDENT
  164457. .UNINDENT
  164458. .IP \(bu 2
  164459. In the \fBfile\fP states, the \fBshow_diff\fP option was
  164460. removed in all states where it was previously supported. Please use
  164461. \fBshow_changes\fP instead.
  164462. .UNINDENT
  164463. .SS Grain Deprecations
  164464. .INDENT 0.0
  164465. .IP \(bu 2
  164466. For \fBsmartos\fP, some grains have been deprecated. These grains will be
  164467. removed in 3000:
  164468. .INDENT 2.0
  164469. .INDENT 3.5
  164470. .INDENT 0.0
  164471. .IP \(bu 2
  164472. The \fBhypervisor_uuid\fP grain has been replaced with
  164473. \fBmdata:sdc:server_uuid\fP
  164474. .IP \(bu 2
  164475. The \fBdatacenter\fP grain has been replaced with
  164476. \fBmdata:sdc:datacenter_name\fP
  164477. .UNINDENT
  164478. .UNINDENT
  164479. .UNINDENT
  164480. .UNINDENT
  164481. .SS Pillar Deprecations
  164482. .sp
  164483. The legacy configuration for \fBgit_pillar\fP has been removed. Please use the
  164484. new configuration for \fBgit_pillar\fP which was added in 2015.8.0, which is
  164485. documented \fBhere\fP\&.
  164486. .SS Utils Deprecations
  164487. .INDENT 0.0
  164488. .IP \(bu 2
  164489. In \fBsalt.utils.cloud\fP, the \fBfire_event\fP function now requires a
  164490. \fBsock_dir\fP argument. It was previously optional.
  164491. .UNINDENT
  164492. .SS Other Miscellaneous Deprecations
  164493. .INDENT 0.0
  164494. .IP \(bu 2
  164495. In \fBversion.py\fP, the \fBrc_info\fP function was removed. Please use
  164496. \fBpre_info\fP instead.
  164497. .IP \(bu 2
  164498. Warnings for moving away from the \fBenv\fP option were removed. \fBsaltenv\fP
  164499. should be used instead. The removal of these warnings does not have a
  164500. behavior change. Only the warning text was removed.
  164501. .UNINDENT
  164502. .SS Minion Blackout
  164503. .sp
  164504. During a blackout, minions will not execute any remote execution commands,
  164505. except for \fBsaltutil.refresh_pillar\fP\&. Previously, support was added so that
  164506. blackouts are enabled using a special pillar key, \fBminion_blackout\fP set to
  164507. \fBTrue\fP and an optional pillar key \fBminion_blackout_whitelist\fP to specify
  164508. additional functions that are permitted during blackout. This release adds
  164509. support for using this feature in the grains as well, by using special grains
  164510. keys \fBminion_blackout\fP and \fBminion_blackout_whitelist\fP\&.
  164511. .SS Sentry Log Handler
  164512. .sp
  164513. Configuring sentry raven python client via \fBproject\fP, \fBservers\fP,
  164514. \fBpublic_key and \(ga\(gasecret_key\fP is deprecated and won\(aqt work with sentry
  164515. clients > 3.0. Instead, the \fBdsn\fP config param must be used.
  164516. .SS RAET transport
  164517. .sp
  164518. We haven\(aqt been doing development on RAET for quite some time and decided that
  164519. 2018.3.0 is the time to announce the deprecation. RAET support will be removed
  164520. in 3000. Please consider to move to \fBzeromq\fP or \fBtcp\fP transport instead of
  164521. \fBraet\fP\&.
  164522. .SS Salt 2018.3.1 Release Notes
  164523. .sp
  164524. Version 2018.3.1 is a bugfix release for 2018.3.0\&.
  164525. .SS Statistics
  164526. .INDENT 0.0
  164527. .IP \(bu 2
  164528. Total Merges: \fB525\fP
  164529. .IP \(bu 2
  164530. Total Issue References: \fB74\fP
  164531. .IP \(bu 2
  164532. Total PR References: \fB255\fP
  164533. .IP \(bu 2
  164534. Contributors: \fB55\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%Giandom\fP, \fI\%Kimol\fP, \fI\%L4rS6\fP, \fI\%LukeCarrier\fP, \fI\%OrlandoArcapix\fP, \fI\%TamCore\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%aesposito91\fP, \fI\%bbinet\fP, \fI\%bdrung\fP, \fI\%boltronics\fP, \fI\%bosatsu\fP, \fI\%clan\fP, \fI\%corywright\fP, \fI\%damon\-atkins\fP, \fI\%dincamihai\fP, \fI\%dmurphy18\fP, \fI\%dnABic\fP, \fI\%douglasjreynolds\fP, \fI\%dwoz\fP, \fI\%edgan\fP, \fI\%ejparker12\fP, \fI\%esell\fP, \fI\%ezh\fP, \fI\%femnad\fP, \fI\%folti\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jasperla\fP, \fI\%johnj\fP, \fI\%mateiw\fP, \fI\%mcalmer\fP, \fI\%mirceaulinic\fP, \fI\%morganwillcock\fP, \fI\%opdude\fP, \fI\%pcn\fP, \fI\%pruiz\fP, \fI\%psagers\fP, \fI\%psyer\fP, \fI\%rallytime\fP, \fI\%robinro\fP, \fI\%s0undt3ch\fP, \fI\%samodid\fP, \fI\%shengis\fP, \fI\%skjaro\fP, \fI\%tankywoo\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%yannj\-fr\fP, \fI\%zmedico\fP)
  164535. .UNINDENT
  164536. .sp
  164537. \fBWARNING:\fP
  164538. .INDENT 0.0
  164539. .INDENT 3.5
  164540. If you are using Jinja to dump lists or dictionaries in your SLS files,
  164541. this will now cause errors in Python 2 since Jinja does not produce
  164542. YAML\-compatible output when strings in the data structures contain unicode
  164543. types. The dictionary must be passed through a Jinja filter to produce
  164544. YAML\-compatible strings.
  164545. .sp
  164546. The below is an example of invalid SLS:
  164547. .INDENT 0.0
  164548. .INDENT 3.5
  164549. .sp
  164550. .nf
  164551. .ft C
  164552. /etc/foo.conf:
  164553. file.mangaged:
  164554. \- source: salt://foo.conf
  164555. \- template: jinja
  164556. \- defaults: {{ mydict }}
  164557. .ft P
  164558. .fi
  164559. .UNINDENT
  164560. .UNINDENT
  164561. .sp
  164562. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  164563. filters:
  164564. .INDENT 0.0
  164565. .INDENT 3.5
  164566. .sp
  164567. .nf
  164568. .ft C
  164569. /etc/foo.conf:
  164570. file.mangaged:
  164571. \- source: salt://foo.conf
  164572. \- template: jinja
  164573. \- defaults: {{ mydict | json }}
  164574. .ft P
  164575. .fi
  164576. .UNINDENT
  164577. .UNINDENT
  164578. .UNINDENT
  164579. .UNINDENT
  164580. .SS Tornado 5.0 Support for Python 2 Only
  164581. .sp
  164582. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  164583. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  164584. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  164585. versions of salt has been delayed to a later release.
  164586. .sp
  164587. For now, to use tornado 5.0, the python 2 version of salt must be used.
  164588. .SS Changes to Slack Engine pillars
  164589. .sp
  164590. When using \fBgroups_pillar_name\fP for the slack engine, the engine should be
  164591. used as part of a salt\-minion process running on the master. This will allow
  164592. the minion to have pillars assigned to it, and will still allow the engine to
  164593. create a LocalClient connection to the master ipc sockets to control
  164594. environments.
  164595. .SS Changes to Automatically Updating the Roster File
  164596. .sp
  164597. In \fB2018.3.0\fP salt\-ssh was configured to automatically update the flat roster
  164598. file if a minion was not found for salt\-ssh. This was decided to be
  164599. undesireable as a default. The \fB\-\-skip\-roster\fP flag has been removed and
  164600. replaced with \fB\-\-update\-roster\fP, which will enable salt\-ssh to add minions
  164601. to the flat roster file. This behavior can also be enabled by setting
  164602. \fBssh_update_roster: True\fP in the master config file.
  164603. .SS Changes to \fBfile.blockreplace\fP State
  164604. .sp
  164605. The \fBappend_newline\fP argument was added to this state. Additionally, to
  164606. improve idempotence, if the string represented by \fBmarker_end\fP is found in
  164607. the middle of the line, the content preceding the marker will be removed when
  164608. the block is replaced. This allows one to remove \fBappend_newline: False\fP from
  164609. the SLS and have the block properly replaced if the end of the content block is
  164610. immediately followed by the \fBmarker_end\fP (i.e. no newline before the marker).
  164611. .sp
  164612. \fBNOTE:\fP
  164613. .INDENT 0.0
  164614. .INDENT 3.5
  164615. This will require changes to your SLS if your \fBmarker_end\fP does not
  164616. include the very beginning of the content you want to keep.
  164617. .UNINDENT
  164618. .UNINDENT
  164619. .sp
  164620. See the \fBfile.blockreplace\fP state
  164621. documentation for further information.
  164622. .SS Changelog for v2018.3.0..v2018.3.1
  164623. .sp
  164624. \fIGenerated at: 2018\-06\-06 17:43:01 UTC\fP
  164625. .INDENT 0.0
  164626. .IP \(bu 2
  164627. \fBISSUE\fP \fI\%#47955\fP: (\fI\%frogunder\fP) 2018.3.1 Creating Windows machine in Amazon using salt\-cloud fails. (refs: \fI\%#47989\fP)
  164628. .IP \(bu 2
  164629. \fBPR\fP \fI\%#47998\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47989\fP to 2018.3.1
  164630. @ \fI2018\-06\-06 17:08:04 UTC\fP
  164631. .INDENT 2.0
  164632. .IP \(bu 2
  164633. \fBPR\fP \fI\%#47989\fP: (\fI\%dwoz\fP) Properly decode password from aws using m2crypto (refs: \fI\%#47998\fP)
  164634. .IP \(bu 2
  164635. 605463ca0d Merge pull request \fI\%#47998\fP from rallytime/bp\-47989
  164636. .IP \(bu 2
  164637. 1b7e9ac2d3 Lint fixes
  164638. .IP \(bu 2
  164639. 0545152ddd Properly decode password from aws using m2crypto
  164640. .UNINDENT
  164641. .IP \(bu 2
  164642. \fBPR\fP \fI\%#47965\fP: (\fI\%Ch3LL\fP) Add PR 47924 from 2018.3 branch
  164643. @ \fI2018\-06\-06 13:54:09 UTC\fP
  164644. .INDENT 2.0
  164645. .IP \(bu 2
  164646. dbc798ac68 Merge pull request \fI\%#47965\fP from Ch3LL/gitpy_mac_3.1
  164647. .IP \(bu 2
  164648. bf608abd44 Catch all exceptions in git import for salt.utils.gitfs
  164649. .UNINDENT
  164650. .IP \(bu 2
  164651. \fBPR\fP \fI\%#47973\fP: (\fI\%terminalmage\fP) salt.modules.testinframod: fix TypeError invoking types.FunctionType
  164652. @ \fI2018\-06\-06 13:53:46 UTC\fP
  164653. .INDENT 2.0
  164654. .IP \(bu 2
  164655. 864d640633 Merge pull request \fI\%#47973\fP from terminalmage/fix\-testinfra
  164656. .IP \(bu 2
  164657. 4518c89484 Lint: Remove unused six import
  164658. .IP \(bu 2
  164659. c6816b2149 salt.modules.testinframod: fix TypeError invoking types.FunctionType
  164660. .UNINDENT
  164661. .IP \(bu 2
  164662. \fBISSUE\fP \fI\%#47236\fP: (\fI\%MorphBonehunter\fP) x509.private_key_managed broken after upgrade to 2018.3.0 (refs: \fI\%#47957\fP)
  164663. .IP \(bu 2
  164664. \fBPR\fP \fI\%#47967\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47957\fP to 2018.3.1
  164665. @ \fI2018\-06\-06 13:53:28 UTC\fP
  164666. .INDENT 2.0
  164667. .IP \(bu 2
  164668. \fBPR\fP \fI\%#47957\fP: (\fI\%garethgreenaway\fP) [2018.8] Ensure x509 passphrase is a string (refs: \fI\%#47967\fP)
  164669. .IP \(bu 2
  164670. 5ddcfff420 Merge pull request \fI\%#47967\fP from rallytime/bp\-47957
  164671. .IP \(bu 2
  164672. 9a55579af1 removing unnecessary change
  164673. .IP \(bu 2
  164674. 329b2e5956 Ensuring that when a passphrase is passed in, it is returned as a string from the passphrase callback.
  164675. .UNINDENT
  164676. .IP \(bu 2
  164677. \fBPR\fP \fI\%#47902\fP: (\fI\%Ch3LL\fP) Remove In Progress for 2018.3.1 Release Notes
  164678. @ \fI2018\-05\-30 18:26:49 UTC\fP
  164679. .INDENT 2.0
  164680. .IP \(bu 2
  164681. 9c964fdbce Merge pull request \fI\%#47902\fP from Ch3LL/rn_in_progress
  164682. .IP \(bu 2
  164683. f560a151cd Remove In Progress for 2018.3.1 Release Notes
  164684. .UNINDENT
  164685. .IP \(bu 2
  164686. \fBPR\fP \fI\%#47897\fP: (\fI\%Ch3LL\fP) Add changelog to 2018.3.1 release notes
  164687. @ \fI2018\-05\-30 15:04:42 UTC\fP
  164688. .INDENT 2.0
  164689. .IP \(bu 2
  164690. ea7b4fdc08 Merge pull request \fI\%#47897\fP from Ch3LL/rn_2018
  164691. .IP \(bu 2
  164692. e27ee273a7 Add == line to changelog line for release notes
  164693. .IP \(bu 2
  164694. 61e56d275d Add changelog to 2018.3.1 release notes
  164695. .UNINDENT
  164696. .IP \(bu 2
  164697. \fBISSUE\fP \fI\%#47784\fP: (\fI\%jpsv\fP) win_lgpo.py line 5368; AttributeError: \(aqOrderedDict\(aq object has no attribute \(aqlower\(aq (refs: \fI\%#47848\fP)
  164698. .IP \(bu 2
  164699. \fBPR\fP \fI\%#47848\fP: (\fI\%twangboy\fP) Fix some major issues with the LGPO module
  164700. @ \fI2018\-05\-30 13:37:32 UTC\fP
  164701. .INDENT 2.0
  164702. .IP \(bu 2
  164703. f15e636d5e Merge pull request \fI\%#47848\fP from twangboy/fix_47784
  164704. .IP \(bu 2
  164705. 98facf8dc8 Remove log.debug statement in __virtual__
  164706. .IP \(bu 2
  164707. f037fa4064 Fix some major issues with the LGPO module
  164708. .UNINDENT
  164709. .IP \(bu 2
  164710. \fBPR\fP \fI\%#47881\fP: (\fI\%gtmanfred\fP) quote python_version in requirements.txt
  164711. @ \fI2018\-05\-29 21:12:05 UTC\fP
  164712. .INDENT 2.0
  164713. .IP \(bu 2
  164714. 92b8c4c08e Merge pull request \fI\%#47881\fP from gtmanfred/2018.3.1
  164715. .IP \(bu 2
  164716. 3d874b5529 quote python_version in requirements.txt
  164717. .UNINDENT
  164718. .IP \(bu 2
  164719. \fBPR\fP \fI\%#47874\fP: (\fI\%gtmanfred\fP) Tornado 5.0 is only supported on python 2 for now
  164720. @ \fI2018\-05\-29 19:45:44 UTC\fP
  164721. .INDENT 2.0
  164722. .IP \(bu 2
  164723. 705bf8172d Merge pull request \fI\%#47874\fP from gtmanfred/2018.3.1
  164724. .IP \(bu 2
  164725. 13f920415a add tornado5 note to 2018.3.1
  164726. .IP \(bu 2
  164727. aeacd2b749 allow tornado 5.0 to be installed only for python2
  164728. .UNINDENT
  164729. .IP \(bu 2
  164730. \fBPR\fP \fI\%#47820\fP: (\fI\%Ch3LL\fP) Remove output_loglevel in mac_system module
  164731. @ \fI2018\-05\-25 13:10:36 UTC\fP
  164732. .INDENT 2.0
  164733. .IP \(bu 2
  164734. 09e8c5f0cd Merge pull request \fI\%#47820\fP from Ch3LL/mac_system
  164735. .IP \(bu 2
  164736. 362414e53b Remove output_loglevel in mac_system module
  164737. .UNINDENT
  164738. .IP \(bu 2
  164739. \fBPR\fP \fI\%#47798\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47776\fP to 2018.3.1
  164740. @ \fI2018\-05\-23 15:10:43 UTC\fP
  164741. .INDENT 2.0
  164742. .IP \(bu 2
  164743. \fBPR\fP \fI\%#47776\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to failing _before_connect tests (refs: \fI\%#47798\fP)
  164744. .IP \(bu 2
  164745. 7e314c26c8 Merge pull request \fI\%#47798\fP from rallytime/bp\-47776
  164746. .IP \(bu 2
  164747. ae881547d2 Fixing unit.test_minion.MinionTestCase.test_beacons_before_connect and unit.test_minion.MinionTestCase.test_scheduler_before_connect.
  164748. .UNINDENT
  164749. .IP \(bu 2
  164750. \fBPR\fP \fI\%#47782\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47775\fP to 2018.3.1
  164751. @ \fI2018\-05\-22 20:56:37 UTC\fP
  164752. .INDENT 2.0
  164753. .IP \(bu 2
  164754. \fBPR\fP \fI\%#47775\fP: (\fI\%gtmanfred\fP) catch UnsupportedOperation with AssertionError (refs: \fI\%#47782\fP)
  164755. .IP \(bu 2
  164756. 9c610da0bc Merge pull request \fI\%#47782\fP from rallytime/bp\-47775
  164757. .IP \(bu 2
  164758. bab9c966c5 catch UnsupportedOperation with AssertionError
  164759. .UNINDENT
  164760. .IP \(bu 2
  164761. \fBPR\fP \fI\%#47770\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47769\fP to 2018.3.1
  164762. @ \fI2018\-05\-22 17:27:20 UTC\fP
  164763. .INDENT 2.0
  164764. .IP \(bu 2
  164765. \fBPR\fP \fI\%#47769\fP: (\fI\%gtmanfred\fP) skip test that breaks test suite (refs: \fI\%#47770\fP)
  164766. .IP \(bu 2
  164767. 4adf10b20b Merge pull request \fI\%#47770\fP from rallytime/bp\-47769
  164768. .IP \(bu 2
  164769. 3cfb95c7bc skip test that breaks test suite
  164770. .UNINDENT
  164771. .IP \(bu 2
  164772. \fBPR\fP \fI\%#47724\fP: (\fI\%terminalmage\fP) 2 master_tops/ext_nodes fixes
  164773. @ \fI2018\-05\-21 15:59:04 UTC\fP
  164774. .INDENT 2.0
  164775. .IP \(bu 2
  164776. bbe8e62a98 Merge pull request \fI\%#47724\fP from terminalmage/master_tops_fixes
  164777. .IP \(bu 2
  164778. 48b8c5acd1 Merge branch \(aq2018.3.1\(aq into master_tops_fixes
  164779. .IP \(bu 2
  164780. 89b3070d4c Change deprecation warning to debug logging
  164781. .IP \(bu 2
  164782. ceb6e10f87 Fix spurious "Malformed request" error
  164783. .UNINDENT
  164784. .IP \(bu 2
  164785. \fBISSUE\fP \fI\%#47484\fP: (\fI\%whytewolf\fP) Windows: pkg.latest state not updating packages. (refs: \fI\%#47702\fP)
  164786. .IP \(bu 2
  164787. \fBPR\fP \fI\%#47739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47702\fP to 2018.3.1
  164788. @ \fI2018\-05\-21 15:37:03 UTC\fP
  164789. .INDENT 2.0
  164790. .IP \(bu 2
  164791. \fBPR\fP \fI\%#47702\fP: (\fI\%damon\-atkins\fP) State pkg.latest called win pkg.install with list of pkgs and the required versions (refs: \fI\%#47739\fP)
  164792. .IP \(bu 2
  164793. 97d6fe7434 Merge pull request \fI\%#47739\fP from rallytime/bp\-47702
  164794. .IP \(bu 2
  164795. f79da64bb0 Update is_windows path to use \fIplatform\fP
  164796. .IP \(bu 2
  164797. f04b19b5b6 Ensure targeted_pkgs always contains value for non\-windows.
  164798. .IP \(bu 2
  164799. 14659f9cad Adjusted based on feed back.
  164800. .IP \(bu 2
  164801. 9f18f7cdf5 Whitespace lint issues
  164802. .IP \(bu 2
  164803. 2a29b28ee6 pkg.install execution module on windows ensures the software package is installed when no version is specified, it does not upgrade the software to the latest. This is per the design. pkg.latest must provide the versions to install to pkg.install
  164804. .UNINDENT
  164805. .IP \(bu 2
  164806. \fBPR\fP \fI\%#47730\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47700\fP to 2018.3.1
  164807. @ \fI2018\-05\-21 15:36:16 UTC\fP
  164808. .INDENT 2.0
  164809. .IP \(bu 2
  164810. \fBPR\fP \fI\%#47700\fP: (\fI\%yannj\-fr\fP) fix roots modification time check (refs: \fI\%#47730\fP)
  164811. .IP \(bu 2
  164812. cfbe0ba73e Merge pull request \fI\%#47730\fP from rallytime/bp\-47700
  164813. .IP \(bu 2
  164814. 9bc35b88ea fix roots modification time check
  164815. .UNINDENT
  164816. .IP \(bu 2
  164817. \fBPR\fP \fI\%#47727\fP: (\fI\%Ch3LL\fP) Fix salt.utils.versions.warn_until spelling
  164818. @ \fI2018\-05\-21 13:41:00 UTC\fP
  164819. .INDENT 2.0
  164820. .IP \(bu 2
  164821. 3614d3d83a Merge pull request \fI\%#47727\fP from Ch3LL/spelling
  164822. .IP \(bu 2
  164823. 47a8de5b73 Fix salt.utils.versions.warn_until spelling
  164824. .UNINDENT
  164825. .IP \(bu 2
  164826. \fBPR\fP \fI\%#47736\fP: (\fI\%Ch3LL\fP) mac_utils test: patch __salt__[\(aqcmd.run*\(aq]
  164827. @ \fI2018\-05\-21 13:38:59 UTC\fP
  164828. .INDENT 2.0
  164829. .IP \(bu 2
  164830. bb45cdaefe Merge pull request \fI\%#47736\fP from Ch3LL/fix_util_mac_test
  164831. .IP \(bu 2
  164832. ee90c779a8 mac_utils test: patch __salt__[\(aqcmd.run*\(aq]
  164833. .UNINDENT
  164834. .IP \(bu 2
  164835. \fBPR\fP \fI\%#47641\fP: (\fI\%gtmanfred\fP) fix _create_stream and tornado 5.0
  164836. @ \fI2018\-05\-18 14:25:36 UTC\fP
  164837. .INDENT 2.0
  164838. .IP \(bu 2
  164839. 43930f8bac Merge pull request \fI\%#47641\fP from gtmanfred/2018.3.1
  164840. .IP \(bu 2
  164841. 037fd92f59 fix pylint
  164842. .IP \(bu 2
  164843. 75d42d8963 Fix last test for tornado
  164844. .IP \(bu 2
  164845. a046512287 allow using tornado 5.0
  164846. .IP \(bu 2
  164847. 05e651f038 fix _create_stream and tornado 5.0
  164848. .UNINDENT
  164849. .IP \(bu 2
  164850. \fBISSUE\fP \fI\%#47532\fP: (\fI\%edgan\fP) roster auto\-add feature in salt\-ssh\-2018.3.0 (refs: \fI\%#47541\fP)
  164851. .IP \(bu 2
  164852. \fBPR\fP \fI\%#47541\fP: (\fI\%gtmanfred\fP) switch skip\-roster to update\-roster
  164853. @ \fI2018\-05\-18 13:29:50 UTC\fP
  164854. .INDENT 2.0
  164855. .IP \(bu 2
  164856. 9f926bcd1a Merge pull request \fI\%#47541\fP from gtmanfred/2018.3
  164857. .IP \(bu 2
  164858. 8c5c780292 switch skip\-roster to update\-roster
  164859. .UNINDENT
  164860. .IP \(bu 2
  164861. \fBPR\fP \fI\%#47719\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47692\fP to 2018.3.1
  164862. @ \fI2018\-05\-18 13:22:02 UTC\fP
  164863. .INDENT 2.0
  164864. .IP \(bu 2
  164865. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic (refs: \fI\%#47719\fP)
  164866. .IP \(bu 2
  164867. a963f1b558 Merge pull request \fI\%#47719\fP from rallytime/bp\-47692
  164868. .IP \(bu 2
  164869. 1d9f247fb7 Default windows to m1.small for ec2\-classic
  164870. .UNINDENT
  164871. .IP \(bu 2
  164872. \fBPR\fP \fI\%#47706\fP: (\fI\%Ch3LL\fP) Add cmd._run_all_quiet to mac_utils and __utils__ in mac_service
  164873. @ \fI2018\-05\-18 01:11:46 UTC\fP
  164874. .INDENT 2.0
  164875. .IP \(bu 2
  164876. c9108893ab Merge pull request \fI\%#47706\fP from Ch3LL/mac_service_util
  164877. .IP \(bu 2
  164878. 3611af699f remove added space
  164879. .IP \(bu 2
  164880. 9921caa143 fix pylint
  164881. .IP \(bu 2
  164882. 317e41d3c0 use cmd._run_quiet and cmd._run_all_quiet instead of importing minion_mods in __salt__
  164883. .IP \(bu 2
  164884. a78652515a Add __salt__ to mac_utils and __utils__ in mac_service
  164885. .UNINDENT
  164886. .IP \(bu 2
  164887. \fBPR\fP \fI\%#47664\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47645\fP to 2018.3.1
  164888. @ \fI2018\-05\-15 18:25:27 UTC\fP
  164889. .INDENT 2.0
  164890. .IP \(bu 2
  164891. \fBPR\fP \fI\%#47645\fP: (\fI\%Ch3LL\fP) query the pip path for test test_issue_2087_missing_pip (refs: \fI\%#47664\fP)
  164892. .IP \(bu 2
  164893. fb3bf1ff3e Merge pull request \fI\%#47664\fP from rallytime/bp\-47645
  164894. .IP \(bu 2
  164895. 0a732d8e66 query the pip path for test test_issue_2087_missing_pip
  164896. .UNINDENT
  164897. .IP \(bu 2
  164898. \fBPR\fP \fI\%#47647\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47601\fP and \fI\%#47643\fP to 2018.3.1
  164899. @ \fI2018\-05\-15 14:07:54 UTC\fP
  164900. .INDENT 2.0
  164901. .IP \(bu 2
  164902. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file (refs: \fI\%#47647\fP)
  164903. .IP \(bu 2
  164904. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas (refs: \fI\%#47647\fP)
  164905. .IP \(bu 2
  164906. 9039fee104 Merge pull request \fI\%#47647\fP from rallytime/bp\-47601\-and\-47643\-2018.3.1
  164907. .IP \(bu 2
  164908. 7214fe17c8 Fix typo
  164909. .IP \(bu 2
  164910. 506dceed17 Remove unwanted file
  164911. .IP \(bu 2
  164912. b6a21dfda3 use ignore\-undefined\-variable
  164913. .IP \(bu 2
  164914. 2429f9fe8a Ignore pylint WindowsError
  164915. .IP \(bu 2
  164916. 2d63682fea Better doc string
  164917. .IP \(bu 2
  164918. ec2adff699 Skip tests when we can not use runas
  164919. .UNINDENT
  164920. .IP \(bu 2
  164921. \fBPR\fP \fI\%#47596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47568\fP to 2018.3.1
  164922. @ \fI2018\-05\-10 22:09:09 UTC\fP
  164923. .INDENT 2.0
  164924. .IP \(bu 2
  164925. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47596\fP)
  164926. .IP \(bu 2
  164927. 17b5265d95 Merge pull request \fI\%#47596\fP from rallytime/bp\-47568
  164928. .IP \(bu 2
  164929. ecf5dc8b9f Add exception logging on serialize/deserialize exceptions
  164930. .IP \(bu 2
  164931. 9659b19819 salt.serializers.yaml/yamlex: remove invalid multi_constructor
  164932. .UNINDENT
  164933. .IP \(bu 2
  164934. \fBPR\fP \fI\%#47595\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47569\fP to 2018.3.1
  164935. @ \fI2018\-05\-10 22:08:53 UTC\fP
  164936. .INDENT 2.0
  164937. .IP \(bu 2
  164938. \fBPR\fP \fI\%#47569\fP: (\fI\%Ch3LL\fP) Update salt.utils.path mock in virtual core test (refs: \fI\%#47595\fP)
  164939. .IP \(bu 2
  164940. c4c400f3e9 Merge pull request \fI\%#47595\fP from rallytime/bp\-47569
  164941. .IP \(bu 2
  164942. 0763f96458 update salt.utils.platform path for virt core test
  164943. .IP \(bu 2
  164944. 718252c1ef Update salt.utils.path mock in virtual core test
  164945. .UNINDENT
  164946. .IP \(bu 2
  164947. \fBPR\fP \fI\%#47599\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47570\fP to 2018.3.1
  164948. @ \fI2018\-05\-10 22:06:44 UTC\fP
  164949. .INDENT 2.0
  164950. .IP \(bu 2
  164951. \fBPR\fP \fI\%#47570\fP: (\fI\%gtmanfred\fP) Update dependency to msgpack (refs: \fI\%#47599\fP)
  164952. .IP \(bu 2
  164953. ec7de14be0 Merge pull request \fI\%#47599\fP from rallytime/bp\-47570
  164954. .IP \(bu 2
  164955. 9334c03da9 Update dependency to msgpack
  164956. .UNINDENT
  164957. .IP \(bu 2
  164958. \fBPR\fP \fI\%#47571\fP: (\fI\%rallytime\fP) [2018.3.1] Update man pages
  164959. @ \fI2018\-05\-10 16:21:57 UTC\fP
  164960. .INDENT 2.0
  164961. .IP \(bu 2
  164962. 2a10d92669 Merge pull request \fI\%#47571\fP from rallytime/man\-pages
  164963. .IP \(bu 2
  164964. ade5e9f664 [2018.3.1] Update man pages
  164965. .UNINDENT
  164966. .IP \(bu 2
  164967. \fBPR\fP \fI\%#47550\fP: (\fI\%pcn\fP) Fixes a bad deletion I did that only surfaced in 2018.3
  164968. @ \fI2018\-05\-09 13:36:33 UTC\fP
  164969. .INDENT 2.0
  164970. .IP \(bu 2
  164971. 85284caaf9 Merge pull request \fI\%#47550\fP from pcn/fix\-disable\-term\-protect\-in\-2018.3
  164972. .IP \(bu 2
  164973. d58a56877c Fixes a bad deletion I did that only surfaced in 2018.3
  164974. .UNINDENT
  164975. .IP \(bu 2
  164976. \fBISSUE\fP \fI\%#47553\fP: (\fI\%douglasjreynolds\fP) Unicode version error in lxc (refs: \fI\%#47554\fP)
  164977. .IP \(bu 2
  164978. \fBPR\fP \fI\%#47554\fP: (\fI\%douglasjreynolds\fP) Converted unicode str version to a LooseVersion; matching line 2080.
  164979. @ \fI2018\-05\-09 13:34:13 UTC\fP
  164980. .INDENT 2.0
  164981. .IP \(bu 2
  164982. f9083ff77e Merge pull request \fI\%#47554\fP from douglasjreynolds/lxc_unicode_fix
  164983. .IP \(bu 2
  164984. e6bce581c6 Converted unicode str version to _LooseVersion to match line 2080.
  164985. .UNINDENT
  164986. .IP \(bu 2
  164987. \fBPR\fP \fI\%#47518\fP: (\fI\%Ch3LL\fP) Fix 47364: ensure we are not caching zfs.is_supported
  164988. @ \fI2018\-05\-09 13:29:07 UTC\fP
  164989. .INDENT 2.0
  164990. .IP \(bu 2
  164991. fe4e79f1de Merge pull request \fI\%#47518\fP from Ch3LL/zfs_support
  164992. .IP \(bu 2
  164993. d19fef963e remove unnecessary patch in zfs.is_supported test
  164994. .IP \(bu 2
  164995. 58c4f29f96 Fix 47364: ensure we are not caching zfs.is_supported
  164996. .UNINDENT
  164997. .IP \(bu 2
  164998. \fBPR\fP \fI\%#47159\fP: (\fI\%terminalmage\fP) Fix for whitelist/blacklist checking for non\-list iterables
  164999. @ \fI2018\-05\-08 20:43:51 UTC\fP
  165000. .INDENT 2.0
  165001. .IP \(bu 2
  165002. 332e9f13a6 Merge pull request \fI\%#47159\fP from terminalmage/whitelist_blacklist\-iter\-fix
  165003. .IP \(bu 2
  165004. ca936de372 Treat empty whitelist/blacklist as no whitelist/blacklist
  165005. .IP \(bu 2
  165006. bcccaf2621 Raise a TypeError when invalid input passed to check_whitelist_blacklist
  165007. .IP \(bu 2
  165008. 2ae510ff2b Fix comment in test
  165009. .IP \(bu 2
  165010. 17398efcf7 Fix for whitelist/blacklist checking for non\-list iterables
  165011. .UNINDENT
  165012. .IP \(bu 2
  165013. \fBPR\fP \fI\%#47514\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165014. @ \fI2018\-05\-08 18:36:54 UTC\fP
  165015. .INDENT 2.0
  165016. .IP \(bu 2
  165017. 21809ddc02 Merge pull request \fI\%#47514\fP from rallytime/merge\-2018.3
  165018. .IP \(bu 2
  165019. e2616b605f Update the pip tests to use the parsing syntax generated in PR \fI\%#47196\fP
  165020. .IP \(bu 2
  165021. b13b59791f Remove double instance of adding \fI\-\-format=json\fP in pip module
  165022. .IP \(bu 2
  165023. 2ad60c7e81 Lint: remove duplicate function in helpers.py
  165024. .IP \(bu 2
  165025. 75480158b3 Lint: cur_version should just be pip_version
  165026. .IP \(bu 2
  165027. 5565d5e9b1 Update old utils paths with new utils paths
  165028. .IP \(bu 2
  165029. 786076ac03 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165030. .INDENT 2.0
  165031. .IP \(bu 2
  165032. 611ca1fc03 Merge pull request \fI\%#47476\fP from gtmanfred/2017.7
  165033. .INDENT 2.0
  165034. .IP \(bu 2
  165035. 1f91a85587 specify cache dir for pip install
  165036. .IP \(bu 2
  165037. 99e150e09c check for kitchen\-vagrant gem before loading windows tests
  165038. .UNINDENT
  165039. .IP \(bu 2
  165040. 7c3f2c56da Merge pull request \fI\%#47412\fP from twangboy/fix_47125
  165041. .INDENT 2.0
  165042. .IP \(bu 2
  165043. c9bab0b8e3 Merge branch \(aq2017.7\(aq into fix_47125
  165044. .IP \(bu 2
  165045. 2600e404d5 Fix overly long line
  165046. .IP \(bu 2
  165047. 5c8db05769 Fix issue where the cwd was being removed
  165048. .UNINDENT
  165049. .IP \(bu 2
  165050. 4846e957c4 Merge pull request \fI\%#47467\fP from twangboy/cleanup_settings
  165051. .INDENT 2.0
  165052. .IP \(bu 2
  165053. 9d498293b1 Remove unused settings, update NSIS
  165054. .UNINDENT
  165055. .IP \(bu 2
  165056. da9871d36b Merge pull request \fI\%#47196\fP from twangboy/fix_47024
  165057. .INDENT 2.0
  165058. .IP \(bu 2
  165059. 14ee5537b9 Add @with_tempdir helper
  165060. .IP \(bu 2
  165061. 6c3b5fa6fa Fix typo
  165062. .IP \(bu 2
  165063. f031710af2 Merge branch \(aq2017.7\(aq into fix_47024
  165064. .IP \(bu 2
  165065. 7c46d9d0d4 Fix integration.modules.test_pip
  165066. .IP \(bu 2
  165067. 22ac81df63 Fix integration.modules.test_pip
  165068. .IP \(bu 2
  165069. 57d98224d4 Merge pull request #9 from terminalmage/twangboy/fix_47024
  165070. .INDENT 2.0
  165071. .IP \(bu 2
  165072. 37a13d8004 Update pip unit tests to reflect changes
  165073. .IP \(bu 2
  165074. 7f86779be0 Lint fix
  165075. .UNINDENT
  165076. .IP \(bu 2
  165077. c48d8f4f61 DRY and other fixes in pip module
  165078. .IP \(bu 2
  165079. b1117896a0 Change from global variable to __context__\(ga\(ga
  165080. .IP \(bu 2
  165081. 3e6e524eca Fix some tests\(ga\(ga
  165082. .IP \(bu 2
  165083. c94f0f20e4 Fix lint error
  165084. .IP \(bu 2
  165085. fd47b21530 Fix merge conflict
  165086. .UNINDENT
  165087. .IP \(bu 2
  165088. e8c4524bae Merge pull request \fI\%#47455\fP from Ch3LL/unreleased_rn
  165089. .INDENT 2.0
  165090. .IP \(bu 2
  165091. b6d0cc2ab7 Add In Progress Warning for 2017.7.6 Release Notes
  165092. .UNINDENT
  165093. .IP \(bu 2
  165094. 2c7a4b6179 Merge pull request \fI\%#47459\fP from gtmanfred/2017.7
  165095. .INDENT 2.0
  165096. .IP \(bu 2
  165097. d228e72477 update ubuntu\-rolling to 18.04
  165098. .UNINDENT
  165099. .IP \(bu 2
  165100. 64a64c0ed7 Merge pull request \fI\%#47462\fP from terminalmage/docs
  165101. .INDENT 2.0
  165102. .IP \(bu 2
  165103. 6d7803ece0 Fix docs build on Sphinx 1.7+
  165104. .UNINDENT
  165105. .IP \(bu 2
  165106. 6cd0d31c03 Merge pull request \fI\%#47438\fP from lomeroe/double_admx_test
  165107. .INDENT 2.0
  165108. .IP \(bu 2
  165109. 4902f1e2ba check if a policy has either an enabled value or enabled list entry or a disabled value or disabled list entry when determining the state of the policy
  165110. .UNINDENT
  165111. .IP \(bu 2
  165112. ed69821d19 Merge pull request \fI\%#47433\fP from s0undt3ch/2017.7
  165113. .INDENT 2.0
  165114. .IP \(bu 2
  165115. 5abadf25d6 Add missing requirements files not commited in \fI\%#47106\fP
  165116. .UNINDENT
  165117. .UNINDENT
  165118. .UNINDENT
  165119. .IP \(bu 2
  165120. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  165121. .IP \(bu 2
  165122. \fBPR\fP \fI\%#47516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47505\fP to 2018.3
  165123. @ \fI2018\-05\-08 13:32:33 UTC\fP
  165124. .INDENT 2.0
  165125. .IP \(bu 2
  165126. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors (refs: \fI\%#47516\fP)
  165127. .IP \(bu 2
  165128. 9559ac7679 Merge pull request \fI\%#47516\fP from rallytime/bp\-47505
  165129. .IP \(bu 2
  165130. 7c60e4071e Raise proper invocation errors
  165131. .UNINDENT
  165132. .IP \(bu 2
  165133. \fBISSUE\fP \fI\%#47502\fP: (\fI\%psagers\fP) service.enable (and .disable) destroys /etc/rc.conf on FreeBSD (refs: \fI\%#47503\fP)
  165134. .IP \(bu 2
  165135. \fBPR\fP \fI\%#47515\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47503\fP to 2018.3
  165136. @ \fI2018\-05\-08 13:32:03 UTC\fP
  165137. .INDENT 2.0
  165138. .IP \(bu 2
  165139. \fBPR\fP \fI\%#47503\fP: (\fI\%psagers\fP) Fix \fI\%#47502\fP: Remove an extraneous (accidentally introduced?) call to rstrip() (refs: \fI\%#47515\fP)
  165140. .IP \(bu 2
  165141. bf79acfbc8 Merge pull request \fI\%#47515\fP from rallytime/bp\-47503
  165142. .IP \(bu 2
  165143. 821dbb88a0 Fix \fI\%#47502\fP: Remove an extraneous (accidentally introduced?) call to rstrip.
  165144. .UNINDENT
  165145. .IP \(bu 2
  165146. \fBISSUE\fP \fI\%#47511\fP: (\fI\%joesusecom\fP) sshconfig salt\-ssh roster is missing in the documentation (refs: \fI\%#47531\fP)
  165147. .IP \(bu 2
  165148. \fBPR\fP \fI\%#47531\fP: (\fI\%gtmanfred\fP) add ssh config doc for rosters
  165149. @ \fI2018\-05\-07 22:26:30 UTC\fP
  165150. .INDENT 2.0
  165151. .IP \(bu 2
  165152. 779b3ed056 Merge pull request \fI\%#47531\fP from gtmanfred/2018.3
  165153. .IP \(bu 2
  165154. 92ded7162c add ssh config doc for rosters
  165155. .UNINDENT
  165156. .IP \(bu 2
  165157. \fBPR\fP \fI\%#47520\fP: (\fI\%rallytime\fP) Cleanup weird spaces
  165158. @ \fI2018\-05\-07 19:50:58 UTC\fP
  165159. .INDENT 2.0
  165160. .IP \(bu 2
  165161. 95b2f9db30 Merge pull request \fI\%#47520\fP from rallytime/cleanup\-spaces
  165162. .IP \(bu 2
  165163. e9cb080a00 Cleanup weird spaces
  165164. .UNINDENT
  165165. .IP \(bu 2
  165166. \fBPR\fP \fI\%#47495\fP: (\fI\%dwoz\fP) Fix crufty nssm.exe reference
  165167. @ \fI2018\-05\-07 19:12:49 UTC\fP
  165168. .INDENT 2.0
  165169. .IP \(bu 2
  165170. 05fc52f124 Merge pull request \fI\%#47495\fP from dwoz/uninstall_wart
  165171. .IP \(bu 2
  165172. caa36c9064 Merge branch \(aq2018.3\(aq into uninstall_wart
  165173. .UNINDENT
  165174. .IP \(bu 2
  165175. \fBISSUE\fP \fI\%#47322\fP: (\fI\%masau\fP) lxc clone not working (refs: \fI\%#47494\fP)
  165176. .IP \(bu 2
  165177. \fBPR\fP \fI\%#47494\fP: (\fI\%ejparker12\fP) Fixed lxc.clone unhandled exception in salt/modules/lxc.py
  165178. @ \fI2018\-05\-07 19:03:58 UTC\fP
  165179. .INDENT 2.0
  165180. .IP \(bu 2
  165181. 3cc7d3ae7c Merge pull request \fI\%#47494\fP from ejparker12/fix\-lxc\-clone
  165182. .IP \(bu 2
  165183. e0e2c9782d Fixed lxc.clone unhandled exception in salt/modules/lxc.py
  165184. .UNINDENT
  165185. .IP \(bu 2
  165186. \fBISSUE\fP \fI\%#47496\fP: (\fI\%mateiw\fP) salt\-ssh \-\-extra\-filerefs doesn\(aqt include any files if no refs in state files (refs: \fI\%#47497\fP)
  165187. .IP \(bu 2
  165188. \fBPR\fP \fI\%#47497\fP: (\fI\%mateiw\fP) Fix salt\-ssh \-\-extra\-filerefs to include files even if no refs in states to apply
  165189. @ \fI2018\-05\-07 19:02:50 UTC\fP
  165190. .INDENT 2.0
  165191. .IP \(bu 2
  165192. adde83f639 Merge pull request \fI\%#47497\fP from mateiw/2018.3\-fix\-ssh\-extra\-files\-refs\-issue\-47496
  165193. .IP \(bu 2
  165194. d67239aae7 \-\-extra\-filerefs include files even if no refs in states to apply
  165195. .UNINDENT
  165196. .IP \(bu 2
  165197. \fBISSUE\fP \fI\%#47404\fP: (\fI\%shengis\fP) Localized version of yum breaks pkg.install (refs: \fI\%#47441\fP)
  165198. .IP \(bu 2
  165199. \fBPR\fP \fI\%#47441\fP: (\fI\%shengis\fP) Fix _run to reset LANGUAGE env variable
  165200. @ \fI2018\-05\-07 18:29:25 UTC\fP
  165201. .INDENT 2.0
  165202. .IP \(bu 2
  165203. 34b1b1ee53 Merge pull request \fI\%#47441\fP from shengis/fix\-run\-env\-reset
  165204. .IP \(bu 2
  165205. 62fc16b721 Merge branch \(aq2018.3\(aq into fix\-run\-env\-reset
  165206. .IP \(bu 2
  165207. 3b02b0bdc1 Merge branch \(aq2018.3\(aq into fix\-run\-env\-reset
  165208. .IP \(bu 2
  165209. ee2ab38c8c Fix _run to reset LANGUAGE env variable
  165210. .UNINDENT
  165211. .IP \(bu 2
  165212. \fBISSUE\fP \fI\%#47479\fP: (\fI\%whytewolf\fP) win_task.info on py3 throwing error, but works in py2 (refs: \fI\%#47507\fP)
  165213. .IP \(bu 2
  165214. \fBPR\fP \fI\%#47507\fP: (\fI\%gtmanfred\fP) fix win_task for py3
  165215. @ \fI2018\-05\-07 17:41:21 UTC\fP
  165216. .INDENT 2.0
  165217. .IP \(bu 2
  165218. 17cfd4f7cf Merge pull request \fI\%#47507\fP from gtmanfred/2018.3
  165219. .IP \(bu 2
  165220. 19db39f402 fix win_task for py3
  165221. .UNINDENT
  165222. .IP \(bu 2
  165223. \fBPR\fP \fI\%#47472\fP: (\fI\%terminalmage\fP) salt.utils.hashutils: Fix UnicodeEncodeError in several funcs
  165224. @ \fI2018\-05\-07 13:31:07 UTC\fP
  165225. .INDENT 2.0
  165226. .IP \(bu 2
  165227. a4c2df8fb2 Merge pull request \fI\%#47472\fP from terminalmage/hashutils
  165228. .IP \(bu 2
  165229. 7266c9984d salt.utils.hashutils: Fix UnicodeEncodeError in several funcs
  165230. .UNINDENT
  165231. .IP \(bu 2
  165232. \fBPR\fP \fI\%#47485\fP: (\fI\%gtmanfred\fP) add openstack modules to doc index.rst
  165233. @ \fI2018\-05\-07 13:11:42 UTC\fP
  165234. .INDENT 2.0
  165235. .IP \(bu 2
  165236. 8b0a370189 Merge pull request \fI\%#47485\fP from gtmanfred/2018.3
  165237. .IP \(bu 2
  165238. c86163d79f add openstack modules to doc index.rst
  165239. .INDENT 2.0
  165240. .INDENT 3.5
  165241. .INDENT 0.0
  165242. .IP \(bu 2
  165243. 3557fc5fa6 Fix crufty nssm.exe reference
  165244. .UNINDENT
  165245. .UNINDENT
  165246. .UNINDENT
  165247. .UNINDENT
  165248. .IP \(bu 2
  165249. \fBPR\fP \fI\%#47482\fP: (\fI\%gtmanfred\fP) add all autodoc for new salt openstack modules
  165250. @ \fI2018\-05\-04 21:03:38 UTC\fP
  165251. .INDENT 2.0
  165252. .IP \(bu 2
  165253. 8df37f734a Merge pull request \fI\%#47482\fP from gtmanfred/2018.3
  165254. .IP \(bu 2
  165255. 1f65d5cb73 add all autodoc for new salt openstack modules
  165256. .UNINDENT
  165257. .IP \(bu 2
  165258. \fBPR\fP \fI\%#47447\fP: (\fI\%dwoz\fP) Fix failing test due to windows console encoding
  165259. @ \fI2018\-05\-04 16:41:29 UTC\fP
  165260. .INDENT 2.0
  165261. .IP \(bu 2
  165262. d20ca15c5d Merge pull request \fI\%#47447\fP from dwoz/strv
  165263. .IP \(bu 2
  165264. 8c01773833 Use the same non decodable bytes for all tests
  165265. .IP \(bu 2
  165266. 983881a2a1 Add bytes that will not decode using cp1252
  165267. .UNINDENT
  165268. .IP \(bu 2
  165269. \fBPR\fP \fI\%#47466\fP: (\fI\%dwoz\fP) bytes file that decodes the same utf\-8 and cp1252
  165270. @ \fI2018\-05\-04 15:54:24 UTC\fP
  165271. .INDENT 2.0
  165272. .IP \(bu 2
  165273. 8c5b30b541 Merge pull request \fI\%#47466\fP from dwoz/randbytes
  165274. .IP \(bu 2
  165275. fd9bc06aab bytes file that decodes the same utf\-8 and cp1252
  165276. .UNINDENT
  165277. .IP \(bu 2
  165278. \fBISSUE\fP \fI\%#46660\fP: (\fI\%mruepp\fP) top file merging same does produce conflicting ids with gitfs (refs: \fI\%#47354\fP, \fI\%#46751\fP)
  165279. .IP \(bu 2
  165280. \fBPR\fP \fI\%#47465\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47354\fP to 2018.3
  165281. @ \fI2018\-05\-04 13:06:04 UTC\fP
  165282. .INDENT 2.0
  165283. .IP \(bu 2
  165284. \fBPR\fP \fI\%#47354\fP: (\fI\%folti\fP) fix forward port of \fI\%#46751\fP (refs: \fI\%#47465\fP)
  165285. .IP \(bu 2
  165286. \fBPR\fP \fI\%#46751\fP: (\fI\%folti\fP) top file merging strategy \(aqsame\(aq works again (refs: \fI\%#47354\fP)
  165287. .IP \(bu 2
  165288. 3658604c43 Merge pull request \fI\%#47465\fP from rallytime/bp\-47354
  165289. .IP \(bu 2
  165290. 3df6fa7990 fix forward port of \fI\%#46751\fP
  165291. .UNINDENT
  165292. .IP \(bu 2
  165293. \fBPR\fP \fI\%#47435\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165294. @ \fI2018\-05\-04 13:05:32 UTC\fP
  165295. .INDENT 2.0
  165296. .IP \(bu 2
  165297. fa293f8fac Merge pull request \fI\%#47435\fP from rallytime/merge\-2018.3
  165298. .IP \(bu 2
  165299. be0731da5f Add skipIfs back in for rest_tornado tests
  165300. .IP \(bu 2
  165301. fd98ee3dc1 Lint: Add missing blank line
  165302. .IP \(bu 2
  165303. 561718b20b Update old is_windows utils path to new utils path
  165304. .IP \(bu 2
  165305. a94cdf8a0d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165306. .INDENT 2.0
  165307. .IP \(bu 2
  165308. 7ae3497b0c Merge pull request \fI\%#47429\fP from gtmanfred/2017.7
  165309. .INDENT 2.0
  165310. .IP \(bu 2
  165311. 8ae32033cc server_list_min should use state, not status
  165312. .UNINDENT
  165313. .IP \(bu 2
  165314. 2f5fc4ecc5 Merge pull request \fI\%#47399\fP from isbm/isbm\-zeromq17\-deprecationwarning\-2017.7.2\-v2
  165315. .INDENT 2.0
  165316. .IP \(bu 2
  165317. a36e49fd27 fix pylint
  165318. .IP \(bu 2
  165319. 98b5629b36 Fix imports
  165320. .IP \(bu 2
  165321. d94c0f0152 Remove unnecessary variable
  165322. .IP \(bu 2
  165323. 8e377b5653 Lintfix: E0203 and attribute access
  165324. .IP \(bu 2
  165325. 2aab70b1b8 Install ZMQ handler if <15 version
  165326. .IP \(bu 2
  165327. 296c589f4b Use ZMQ switch utility in the integration tests
  165328. .IP \(bu 2
  165329. ab5fa34d7c Use ZMQ_VERSION_INFO constant everywhere
  165330. .IP \(bu 2
  165331. 43b5558b82 Add trace logging on ZMQ sockets communication
  165332. .IP \(bu 2
  165333. 164204a9fe Remove duplicate code for ZMQ monitor handling
  165334. .IP \(bu 2
  165335. 834b1e4ff0 Remove obsolete ZMQIOLoop direct instance
  165336. .IP \(bu 2
  165337. 1c90cbdb3c Remove an empty line
  165338. .IP \(bu 2
  165339. ef2e0acd66 Add logging on ZMQ socket exception
  165340. .IP \(bu 2
  165341. 38ceed371d Lintfix: ident
  165342. .IP \(bu 2
  165343. 1ece6a5f52 Lintfix: line too long
  165344. .IP \(bu 2
  165345. 4e650c0b44 Remove code duplicate by reusing utilities functions
  165346. .IP \(bu 2
  165347. 57da54b676 Fix imports
  165348. .IP \(bu 2
  165349. 948368e9a1 Add libzmq version info builder
  165350. .IP \(bu 2
  165351. 0b4a17b859 Update log exception message
  165352. .IP \(bu 2
  165353. 116e1809fc Put a message alongside the exception to the logs
  165354. .IP \(bu 2
  165355. 4bc43124b7 Remove unnecessary ZMQ import and check for its presence
  165356. .IP \(bu 2
  165357. 05f4d40269 Use utility for ZMQ import handling in SSH client
  165358. .IP \(bu 2
  165359. 457ef7d9a5 Use utility for ZMQ import handling in flo/zero
  165360. .IP \(bu 2
  165361. 08dee6f5bd Use utility for ZMQ import handling
  165362. .IP \(bu 2
  165363. e2a353cfb0 Remove unnecessary ZMQ extra\-check for cache utils
  165364. .IP \(bu 2
  165365. c8f2cc271d Remove unnecessary ZMQ extra\-check for master utils
  165366. .IP \(bu 2
  165367. 3940667bb9 Remove old ZMQ import handling
  165368. .IP \(bu 2
  165369. f34a53e029 Use ZMQ utility for version check
  165370. .IP \(bu 2
  165371. cbb26dcb28 Use ZMQ installer for master
  165372. .IP \(bu 2
  165373. 453e83210a Add ZMQ version build
  165374. .IP \(bu 2
  165375. af9601e21d Use ZMQ importer utility in async
  165376. .IP \(bu 2
  165377. d50b2b2023 Incorporate tornado\-5 fixes
  165378. .IP \(bu 2
  165379. 1fd9af0655 Add ZMQ backward\-compatibility tornado installer for older versions
  165380. .IP \(bu 2
  165381. ad4b40415c Add one place for handling various ZMQ versions and IOLoop classes
  165382. .UNINDENT
  165383. .IP \(bu 2
  165384. b14e974b5f Merge pull request \fI\%#47343\fP from Ch3LL/win_srv_test
  165385. .INDENT 2.0
  165386. .IP \(bu 2
  165387. 2173b6f549 ensure we are enabling/disabling before test
  165388. .IP \(bu 2
  165389. d58be06751 Add additionatl service module integration tests and enable for windows
  165390. .UNINDENT
  165391. .IP \(bu 2
  165392. b0f3fb577f Merge pull request \fI\%#47375\fP from terminalmage/issue47310
  165393. .INDENT 2.0
  165394. .IP \(bu 2
  165395. fa2bea52bb Remove extra blank line to appease linter
  165396. .IP \(bu 2
  165397. f8ab2be81c Add debug logging if we fail to detect virtual packages
  165398. .IP \(bu 2
  165399. 67c4fc56ac Warn on use of virtual packages in pkg.installed state
  165400. .UNINDENT
  165401. .IP \(bu 2
  165402. 56235032f4 Merge pull request \fI\%#47415\fP from kstreee/fix\-local\-client\-tgt\-bug
  165403. .INDENT 2.0
  165404. .IP \(bu 2
  165405. b8d37e0a1e To add a test case for the syndic environment, copies the test case which was written by @mattp\- that was already merged into develop branch, related pr is \fI\%#46692\fP\&.
  165406. .IP \(bu 2
  165407. 4627bad1fd Realizes \(aqtgt\(aq field into actual minions using ckminions to subscribe results of the minions before publishing a payload.
  165408. .UNINDENT
  165409. .IP \(bu 2
  165410. d65ceaee03 Merge pull request \fI\%#47286\fP from baniobloom/vpc_peering_connection_name_fix
  165411. .INDENT 2.0
  165412. .IP \(bu 2
  165413. a968965087 Merge branch \(aq2017.7\(aq into vpc_peering_connection_name_fix
  165414. .UNINDENT
  165415. .IP \(bu 2
  165416. 8a5d4437bb Merge pull request \fI\%#47270\fP from meaksh/2017.7\-fix\-retcode\-on\-schedule\-utils
  165417. .INDENT 2.0
  165418. .IP \(bu 2
  165419. d299cf3385 Merge branch \(aq2017.7\(aq into 2017.7\-fix\-retcode\-on\-schedule\-utils
  165420. .IP \(bu 2
  165421. b6da600fff Initialize __context__ retcode for functions handled via schedule util module
  165422. .UNINDENT
  165423. .IP \(bu 2
  165424. 5b51075384 Merge pull request \fI\%#47371\fP from rallytime/fix\-47264
  165425. .INDENT 2.0
  165426. .IP \(bu 2
  165427. a43485b49c Fix "of pass" typo in grains.delval docs: change to "or pass"
  165428. .UNINDENT
  165429. .IP \(bu 2
  165430. a86e53be66 Merge pull request \fI\%#47389\fP from dwoz/moregittestfix
  165431. .INDENT 2.0
  165432. .IP \(bu 2
  165433. 67745c1362 Older GitPython versions will not have close
  165434. .UNINDENT
  165435. .IP \(bu 2
  165436. a5367eaf63 Merge pull request \fI\%#47388\fP from dwoz/test_pip_fix
  165437. .INDENT 2.0
  165438. .IP \(bu 2
  165439. eb26321e8b Fix missing import
  165440. .UNINDENT
  165441. .IP \(bu 2
  165442. 9b59b991c2 Merge pull request \fI\%#47380\fP from gtmanfred/2017.7
  165443. .INDENT 2.0
  165444. .IP \(bu 2
  165445. 93d1445ec1 add io_loop handling to runtests engine
  165446. .UNINDENT
  165447. .IP \(bu 2
  165448. 37822c0cbb Merge pull request \fI\%#47384\fP from dwoz/test_pip_fix
  165449. .INDENT 2.0
  165450. .IP \(bu 2
  165451. a37a9da1fb Fix py2 version of pip test
  165452. .UNINDENT
  165453. .IP \(bu 2
  165454. eefd96732e Merge pull request \fI\%#47382\fP from dwoz/gitfs_tests
  165455. .INDENT 2.0
  165456. .IP \(bu 2
  165457. 1570708fac Close the repo and fix multiple tests
  165458. .UNINDENT
  165459. .IP \(bu 2
  165460. 57c75ff660 Merge pull request \fI\%#47369\fP from terminalmage/ldap_pillar
  165461. .INDENT 2.0
  165462. .IP \(bu 2
  165463. 085883ae2d Return an empty dict if no search_order in ldap ext_pillar config file
  165464. .UNINDENT
  165465. .IP \(bu 2
  165466. bcc66dd9bf Merge pull request \fI\%#47363\fP from DSRCorporation/bugs/replace_exc_info_with_exception
  165467. .INDENT 2.0
  165468. .IP \(bu 2
  165469. 3f7b93a23c Tornado5.0: Future.exc_info is dropped
  165470. .UNINDENT
  165471. .IP \(bu 2
  165472. bcef34f7e1 Merge pull request \fI\%#47334\fP from terminalmage/ldap_pillar
  165473. .INDENT 2.0
  165474. .IP \(bu 2
  165475. 0175a8687c pillar_ldap: Fix cryptic errors when config file fails to load
  165476. .IP \(bu 2
  165477. 65c3ba7ff1 Remove useless documentation
  165478. .IP \(bu 2
  165479. 5d67cb27de Remove unncessary commented line
  165480. .INDENT 2.0
  165481. .INDENT 3.5
  165482. .INDENT 0.0
  165483. .IP \(bu 2
  165484. 8de3d41adb fixed vpc_peering_connection_name option
  165485. .UNINDENT
  165486. .UNINDENT
  165487. .UNINDENT
  165488. .UNINDENT
  165489. .UNINDENT
  165490. .UNINDENT
  165491. .IP \(bu 2
  165492. \fBPR\fP \fI\%#47464\fP: (\fI\%dwoz\fP) Skip tests not applicable to windows
  165493. @ \fI2018\-05\-04 13:04:38 UTC\fP
  165494. .INDENT 2.0
  165495. .IP \(bu 2
  165496. 51d21afd4f Merge pull request \fI\%#47464\fP from dwoz/skiP_syslog_tests
  165497. .IP \(bu 2
  165498. ca9393b7fb Skip tests not applicable to windows
  165499. .UNINDENT
  165500. .IP \(bu 2
  165501. \fBPR\fP \fI\%#47456\fP: (\fI\%dwoz\fP) Sysname returns text type
  165502. @ \fI2018\-05\-04 02:57:50 UTC\fP
  165503. .INDENT 2.0
  165504. .IP \(bu 2
  165505. 3219430dcc Merge pull request \fI\%#47456\fP from dwoz/sysname
  165506. .IP \(bu 2
  165507. 559ee1961f Sysname returns text type
  165508. .UNINDENT
  165509. .IP \(bu 2
  165510. \fBPR\fP \fI\%#47458\fP: (\fI\%Ch3LL\fP) Add In Progress Warning for 2018.3.1 Release Notes
  165511. @ \fI2018\-05\-03 20:40:46 UTC\fP
  165512. .INDENT 2.0
  165513. .IP \(bu 2
  165514. f3918514a7 Merge pull request \fI\%#47458\fP from Ch3LL/unreleased_rn_2018
  165515. .IP \(bu 2
  165516. 6a261e5e3a Add In Progress Warning for 2018.3.1 Release Notes
  165517. .UNINDENT
  165518. .IP \(bu 2
  165519. \fBPR\fP \fI\%#47448\fP: (\fI\%dwoz\fP) Fix missing import in test suite
  165520. @ \fI2018\-05\-03 14:30:23 UTC\fP
  165521. .INDENT 2.0
  165522. .IP \(bu 2
  165523. 9fbdcbe994 Merge pull request \fI\%#47448\fP from dwoz/transport_import
  165524. .IP \(bu 2
  165525. 7e04eb82e1 Fix missing import in test suite
  165526. .UNINDENT
  165527. .IP \(bu 2
  165528. \fBISSUE\fP \fI\%#47260\fP: (\fI\%mew1033\fP) disable_saltenv_mapping not working as expected (refs: \fI\%#47410\fP)
  165529. .IP \(bu 2
  165530. \fBPR\fP \fI\%#47410\fP: (\fI\%terminalmage\fP) gitfs: Fix identification of base env when saltenv mapping is disabled
  165531. @ \fI2018\-05\-03 14:12:27 UTC\fP
  165532. .INDENT 2.0
  165533. .IP \(bu 2
  165534. 157a32af7f Merge pull request \fI\%#47410\fP from terminalmage/issue47260
  165535. .IP \(bu 2
  165536. 3ab332ad0e Update tests to reflect bugfix
  165537. .IP \(bu 2
  165538. 7b8127f336 gitfs: Fix identification of base env when saltenv mapping is disabled
  165539. .UNINDENT
  165540. .IP \(bu 2
  165541. \fBPR\fP \fI\%#47413\fP: (\fI\%dmurphy18\fP) Repobuild improvements for Ubuntu 18.04 lack of gpg2 and better error checking
  165542. @ \fI2018\-05\-02 16:21:31 UTC\fP
  165543. .INDENT 2.0
  165544. .IP \(bu 2
  165545. 091e4cf9a6 Merge pull request \fI\%#47413\fP from saltstack/repobuild_improv
  165546. .IP \(bu 2
  165547. c064032110 Removed extra spaces for pylint
  165548. .IP \(bu 2
  165549. 20c50b3331 Minor cleanup due to review comments
  165550. .IP \(bu 2
  165551. c143b359e9 Update for Ubuntu 18.04 lack of gpg2 and enhanced error checking
  165552. .UNINDENT
  165553. .IP \(bu 2
  165554. \fBPR\fP \fI\%#47216\fP: (\fI\%twangboy\fP) Reg docs
  165555. @ \fI2018\-05\-02 13:33:27 UTC\fP
  165556. .INDENT 2.0
  165557. .IP \(bu 2
  165558. 5e5774fd37 Merge pull request \fI\%#47216\fP from twangboy/reg_docs
  165559. .IP \(bu 2
  165560. 0beeb58b16 Fix lint, add bytes
  165561. .IP \(bu 2
  165562. bad441f8dc Fix some lint\(ga
  165563. .IP \(bu 2
  165564. af5139c2ff Add additional examples
  165565. .IP \(bu 2
  165566. 24df6ec1b7 Additional docs formatting
  165567. .IP \(bu 2
  165568. ff46b27a60 Update reg docs, fix formatting issues
  165569. .UNINDENT
  165570. .IP \(bu 2
  165571. \fBPR\fP \fI\%#47417\fP: (\fI\%gtmanfred\fP) revert instantiating a Caller Client in the engine
  165572. @ \fI2018\-05\-01 18:58:06 UTC\fP
  165573. .INDENT 2.0
  165574. .IP \(bu 2
  165575. 63baf4c4f8 Merge pull request \fI\%#47417\fP from gtmanfred/slack
  165576. .IP \(bu 2
  165577. 5c8ea7f506 Update slack.py
  165578. .IP \(bu 2
  165579. ee8a5eeb10 revert instantiating a Caller Client in the engine
  165580. .UNINDENT
  165581. .IP \(bu 2
  165582. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP, \fI\%#47106\fP, \fI\%#47433\fP)
  165583. .IP \(bu 2
  165584. \fBPR\fP \fI\%#47368\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  165585. @ \fI2018\-05\-01 18:56:20 UTC\fP
  165586. .INDENT 2.0
  165587. .IP \(bu 2
  165588. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47374\fP, \fI\%#47368\fP, \fI\%#47433\fP)
  165589. .IP \(bu 2
  165590. \fBPR\fP \fI\%#46002\fP: (\fI\%isbm\fP) Pyzmq 17.0.0 proper handling (refs: \fI\%#47374\fP, \fI\%#47368\fP)
  165591. .IP \(bu 2
  165592. 0bdfaa5ffe Merge pull request \fI\%#47368\fP from rallytime/merge\-2018.3
  165593. .IP \(bu 2
  165594. 46806e595b Update test assertion comment for pip pkgs
  165595. .IP \(bu 2
  165596. d9d24de49e Lint: Add missing import
  165597. .IP \(bu 2
  165598. c7b73d132e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165599. .INDENT 2.0
  165600. .IP \(bu 2
  165601. 31db8ca7ad Merge pull request \fI\%#47347\fP from dwoz/test_mysql_fix_again
  165602. .INDENT 2.0
  165603. .IP \(bu 2
  165604. add78fb618 Fix linter warnings
  165605. .IP \(bu 2
  165606. 2644cc7553 Fix linter nits
  165607. .IP \(bu 2
  165608. 799c601184 Proper fix for mysql tests
  165609. .UNINDENT
  165610. .UNINDENT
  165611. .IP \(bu 2
  165612. fefc0cc3ca Update old utils paths to use new utils paths
  165613. .IP \(bu 2
  165614. 13e8124031 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  165615. .INDENT 2.0
  165616. .IP \(bu 2
  165617. e573236848 Merge pull request \fI\%#47359\fP from gtmanfred/2017.7
  165618. .INDENT 2.0
  165619. .IP \(bu 2
  165620. 6214ed8133 add mention of the formulas channel to the formulas docs
  165621. .UNINDENT
  165622. .IP \(bu 2
  165623. 629503b2a8 Merge pull request \fI\%#47317\fP from dwoz/threadshutdown
  165624. .INDENT 2.0
  165625. .IP \(bu 2
  165626. 6db2a0e4d3 Log exceptions at exception level
  165627. .IP \(bu 2
  165628. d4ae787595 Do not join a thread that is stopped
  165629. .UNINDENT
  165630. .IP \(bu 2
  165631. aacd5cefe3 Merge pull request \fI\%#47304\fP from cachedout/test_cli_timeout_arg
  165632. .INDENT 2.0
  165633. .IP \(bu 2
  165634. 85025af83c Pass timeout to salt CLI for tests
  165635. .UNINDENT
  165636. .IP \(bu 2
  165637. 55534fb659 Merge pull request \fI\%#47311\fP from Ch3LL/firewall_windows
  165638. .INDENT 2.0
  165639. .IP \(bu 2
  165640. 4e16c18c16 Add firewall module windows tests to whitelist
  165641. .IP \(bu 2
  165642. 4b2fc4ec66 Add windows firewall execution modules integration tests
  165643. .UNINDENT
  165644. .IP \(bu 2
  165645. 1667375a80 Merge pull request \fI\%#47348\fP from dwoz/no_symlinks
  165646. .INDENT 2.0
  165647. .IP \(bu 2
  165648. 94a70e847a Ignore gitfs tests when symlinks not enabled
  165649. .UNINDENT
  165650. .IP \(bu 2
  165651. dac04261b5 Merge pull request \fI\%#47342\fP from dwoz/test_mysql_fix
  165652. .INDENT 2.0
  165653. .IP \(bu 2
  165654. 7496f4c5a8 Fix mysql test cases
  165655. .UNINDENT
  165656. .IP \(bu 2
  165657. 34e78ef564 Merge pull request \fI\%#47341\fP from dwoz/inet_pton_fix
  165658. .INDENT 2.0
  165659. .IP \(bu 2
  165660. 85451f48d4 Fix python 3 support for inet_pton function
  165661. .UNINDENT
  165662. .IP \(bu 2
  165663. e4779f3246 Merge pull request \fI\%#47339\fP from dwoz/ssh_key_test_fix
  165664. .INDENT 2.0
  165665. .IP \(bu 2
  165666. e37a93a1ca Remove redundent close call
  165667. .IP \(bu 2
  165668. b2ae5889b7 Close the temporary file handle
  165669. .IP \(bu 2
  165670. 9f7f83a975 Use salt.utils.fopen for line ending consistancy
  165671. .UNINDENT
  165672. .IP \(bu 2
  165673. b221860151 Merge pull request \fI\%#47335\fP from dwoz/pip_test_fix
  165674. .INDENT 2.0
  165675. .IP \(bu 2
  165676. dcb6a22c00 Remove un\-needed string\-escape
  165677. .UNINDENT
  165678. .IP \(bu 2
  165679. 1c527bfd3a Merge pull request \fI\%#47331\fP from dwoz/py3_wingroup_fix
  165680. .INDENT 2.0
  165681. .IP \(bu 2
  165682. cc154ef857 Do not encode usernames
  165683. .UNINDENT
  165684. .IP \(bu 2
  165685. 708078b152 Merge pull request \fI\%#47329\fP from cachedout/frank_credit
  165686. .INDENT 2.0
  165687. .IP \(bu 2
  165688. 33c0644ac4 Credit Frank Spierings
  165689. .UNINDENT
  165690. .IP \(bu 2
  165691. a545e55543 Merge pull request \fI\%#47281\fP from Ch3LL/system_test
  165692. .INDENT 2.0
  165693. .IP \(bu 2
  165694. c9181a75a6 Add destructivetest decorator on tests
  165695. .IP \(bu 2
  165696. 0d0c8987fc Add win_system integration module tests
  165697. .UNINDENT
  165698. .IP \(bu 2
  165699. b64d930df0 Merge pull request \fI\%#47283\fP from Ch3LL/ntp_test
  165700. .INDENT 2.0
  165701. .IP \(bu 2
  165702. ced7f86546 Add windows ntp integration module tests
  165703. .UNINDENT
  165704. .IP \(bu 2
  165705. 910aff910f Merge pull request \fI\%#47314\fP from Ch3LL/net_mac_test
  165706. .INDENT 2.0
  165707. .IP \(bu 2
  165708. 67beb1451c Skip netstat test on macosx as its not supported
  165709. .UNINDENT
  165710. .IP \(bu 2
  165711. 0549ef7c16 Merge pull request \fI\%#47307\fP from rallytime/bp\-47257
  165712. .INDENT 2.0
  165713. .IP \(bu 2
  165714. 6c5b2f92bc Role is not a list but a dictionary
  165715. .UNINDENT
  165716. .IP \(bu 2
  165717. d6ff4689f6 Merge pull request \fI\%#47312\fP from rallytime/update\-bootstrap\-release
  165718. .INDENT 2.0
  165719. .IP \(bu 2
  165720. 765cce06a2 Update bootstrap script to latest release: 2018.04.25
  165721. .UNINDENT
  165722. .IP \(bu 2
  165723. e0765f5719 Merge pull request \fI\%#47279\fP from dwoz/py3_build_fix
  165724. .INDENT 2.0
  165725. .IP \(bu 2
  165726. 21dc1bab91 Pep\-8 line endings
  165727. .IP \(bu 2
  165728. 717abedaf7 Fix comman wart
  165729. .IP \(bu 2
  165730. 4100dcd64c Close might get called more than once
  165731. .IP \(bu 2
  165732. dbe671f943 Stop socket before queue on delete
  165733. .IP \(bu 2
  165734. 9587f5c69e Silence pylint import\-error for six.moves
  165735. .IP \(bu 2
  165736. 4b0c7d3b34 Fix typo
  165737. .IP \(bu 2
  165738. 05adf7c2b1 Use six.moves for queue import
  165739. .IP \(bu 2
  165740. fe340778fa Gracefully shutdown worker threads
  165741. .UNINDENT
  165742. .IP \(bu 2
  165743. 44f19b2f94 Merge pull request \fI\%#47113\fP from jfindlay/iptables_state
  165744. .INDENT 2.0
  165745. .IP \(bu 2
  165746. 8bd08012ee modules,states.iptables support proto for policy ext
  165747. .UNINDENT
  165748. .IP \(bu 2
  165749. b7a6206330 Merge pull request \fI\%#47302\fP from Ch3LL/dead_code
  165750. .INDENT 2.0
  165751. .IP \(bu 2
  165752. daa68b4877 Add virtual grains test for core grains
  165753. .IP \(bu 2
  165754. a59dd2785d Remove dead code in core grains file for virt\-what
  165755. .UNINDENT
  165756. .IP \(bu 2
  165757. e29362acfc Merge pull request \fI\%#47303\fP from baniobloom/bug_fix_doc
  165758. .INDENT 2.0
  165759. .IP \(bu 2
  165760. b97c9df5f3 added clarity on how to figure out what is the oldest supported main release branch
  165761. .UNINDENT
  165762. .IP \(bu 2
  165763. 0d9d55e013 Merge pull request \fI\%#47106\fP from DSRCorporation/bugs/tornado50
  165764. .INDENT 2.0
  165765. .IP \(bu 2
  165766. 39e403b18d Merge branch \(aq2017.7\(aq into bugs/tornado50
  165767. .IP \(bu 2
  165768. 6706b3a2d1 Run off of a temporary config
  165769. .IP \(bu 2
  165770. d6873800d5 Allow running pytest>=3.5.0
  165771. .IP \(bu 2
  165772. 2da3983740 Tornado 5.0 compatibility fixes
  165773. .UNINDENT
  165774. .IP \(bu 2
  165775. 2e014f4746 Merge pull request \fI\%#47271\fP from gtmanfred/amazon
  165776. .INDENT 2.0
  165777. .IP \(bu 2
  165778. 8a53908908 Do not load rh_service module when booted with systemd
  165779. .IP \(bu 2
  165780. e4d1d5bf11 Revert "support amazon linux 2 for service module"
  165781. .UNINDENT
  165782. .IP \(bu 2
  165783. 599b0ed1e9 Merge pull request \fI\%#47246\fP from cloudflare/fix\-44847\-2017.7
  165784. .INDENT 2.0
  165785. .IP \(bu 2
  165786. ad80028104 This way, we can pass flags such as \fBdebug\fP into the state, but also \fBtest\fP\&.
  165787. .UNINDENT
  165788. .IP \(bu 2
  165789. 4e2e1f0719 Merge pull request \fI\%#47220\fP from benediktwerner/fix\-pip\-2017.7
  165790. .INDENT 2.0
  165791. .IP \(bu 2
  165792. 0197c3e973 Fix pip test
  165793. .IP \(bu 2
  165794. 34bf66c09f Fix pip.installed with pip>=10.0.0
  165795. .UNINDENT
  165796. .IP \(bu 2
  165797. 92e606251f Merge pull request \fI\%#47272\fP from rallytime/reg\-windows\-codeowners
  165798. .INDENT 2.0
  165799. .IP \(bu 2
  165800. 9445af0185 Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  165801. .UNINDENT
  165802. .IP \(bu 2
  165803. 9dca5c0221 Merge pull request \fI\%#47252\fP from rallytime/codeowners\-fixes
  165804. .INDENT 2.0
  165805. .IP \(bu 2
  165806. 204b6af92b Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  165807. .UNINDENT
  165808. .IP \(bu 2
  165809. 3de1bb49c8 Merge pull request \fI\%#47177\fP from fpicot/fix_47173_pkg_normalize
  165810. .INDENT 2.0
  165811. .IP \(bu 2
  165812. 149f846f34 fix normalize parameter in pkg.installed
  165813. .UNINDENT
  165814. .IP \(bu 2
  165815. 10e30515dc Merge pull request \fI\%#47251\fP from Ch3LL/pub_fix_rn
  165816. .INDENT 2.0
  165817. .IP \(bu 2
  165818. fa4c2e6575 Update Docs to remove unnecessary + sign
  165819. .UNINDENT
  165820. .IP \(bu 2
  165821. bb7850a431 Merge pull request \fI\%#47249\fP from Ch3LL/pub_fix_rn
  165822. .INDENT 2.0
  165823. .IP \(bu 2
  165824. 24dea24b7e Add CVE number to 2016.3.6 Release
  165825. .UNINDENT
  165826. .IP \(bu 2
  165827. 56933eb0b2 Merge pull request \fI\%#47227\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2017.7
  165828. .INDENT 2.0
  165829. .IP \(bu 2
  165830. fded61f19b Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  165831. .UNINDENT
  165832. .IP \(bu 2
  165833. 9825065048 Merge pull request \fI\%#47167\fP from smitty42/vbox\-skd\-fix
  165834. .INDENT 2.0
  165835. .IP \(bu 2
  165836. 5de53139cd Merge branch \(aq2017.7\(aq into vbox\-skd\-fix
  165837. .UNINDENT
  165838. .IP \(bu 2
  165839. 976f031170 Merge pull request \fI\%#47213\fP from dwoz/py3win
  165840. .INDENT 2.0
  165841. .IP \(bu 2
  165842. ad9c7f63f0 Fix coverate on py3 windows builds
  165843. .IP \(bu 2
  165844. 91252bac95 Adding updates for python3 compatibility and new virtualbox SDK version support.
  165845. .UNINDENT
  165846. .IP \(bu 2
  165847. cebcd6d069 Merge pull request \fI\%#47197\fP from dwoz/testfix
  165848. .INDENT 2.0
  165849. .IP \(bu 2
  165850. 25803c9176 Move process target to top level module namespace
  165851. .UNINDENT
  165852. .IP \(bu 2
  165853. d4269c2b70 Merge pull request \fI\%#47193\fP from Ch3LL/network_test
  165854. .INDENT 2.0
  165855. .IP \(bu 2
  165856. bbf9987c19 Add network module integration tests
  165857. .UNINDENT
  165858. .IP \(bu 2
  165859. c777248a78 Merge pull request \fI\%#47189\fP from Ch3LL/autoruns
  165860. .INDENT 2.0
  165861. .IP \(bu 2
  165862. 6a88bedb7a Add autoruns to windows whitelist
  165863. .IP \(bu 2
  165864. e9e4d4af70 Add autoruns.list integration test for Windows
  165865. .UNINDENT
  165866. .UNINDENT
  165867. .UNINDENT
  165868. .IP \(bu 2
  165869. \fBPR\fP \fI\%#47403\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47356\fP to 2018.3
  165870. @ \fI2018\-05\-01 15:19:06 UTC\fP
  165871. .INDENT 2.0
  165872. .IP \(bu 2
  165873. \fBPR\fP \fI\%#47356\fP: (\fI\%robinro\fP) Fix sysctl translate (refs: \fI\%#47403\fP)
  165874. .IP \(bu 2
  165875. 4e6870305c Merge pull request \fI\%#47403\fP from rallytime/bp\-47356
  165876. .IP \(bu 2
  165877. 9b682bc48e Fix sysctl translate
  165878. .UNINDENT
  165879. .IP \(bu 2
  165880. \fBPR\fP \fI\%#47407\fP: (\fI\%terminalmage\fP) Reduce severity of missing X_update_interval key
  165881. @ \fI2018\-05\-01 15:18:46 UTC\fP
  165882. .INDENT 2.0
  165883. .IP \(bu 2
  165884. 7e0cdd6145 Merge pull request \fI\%#47407\fP from terminalmage/update\-interval\-log
  165885. .IP \(bu 2
  165886. abc592bfff Reduce severity of missing X_update_interval key
  165887. .UNINDENT
  165888. .IP \(bu 2
  165889. \fBISSUE\fP \fI\%#47042\fP: (\fI\%valentin2105\fP) [ERROR] Unable to manage file: \(aqutf8\(aq codec can\(aqt decode byte (refs: \fI\%#47061\fP)
  165890. .IP \(bu 2
  165891. \fBPR\fP \fI\%#47405\fP: (\fI\%terminalmage\fP) Fix file.get_diff regression in 2018.3 branch
  165892. @ \fI2018\-05\-01 15:16:46 UTC\fP
  165893. .INDENT 2.0
  165894. .IP \(bu 2
  165895. \fBPR\fP \fI\%#47061\fP: (\fI\%terminalmage\fP) Fix diffing binary files in file.get_diff (refs: \fI\%#47405\fP)
  165896. .IP \(bu 2
  165897. 1377942bcc Merge pull request \fI\%#47405\fP from terminalmage/binary\-diff
  165898. .IP \(bu 2
  165899. 89ddb08026 Use a lambda instead of defining a one\-line function
  165900. .IP \(bu 2
  165901. b79ff04fda Remove no\-longer\-used enumerate
  165902. .IP \(bu 2
  165903. e03b865359 Add unit test for file.get_diff
  165904. .IP \(bu 2
  165905. 5bdc9e9bd5 Fix UnboundLocalError in file.get_diff
  165906. .UNINDENT
  165907. .IP \(bu 2
  165908. \fBISSUE\fP \fI\%#47325\fP: (\fI\%robertodocampo\fP) docker_container.running creates containers using the image ID as the image name (refs: \fI\%#47367\fP)
  165909. .IP \(bu 2
  165910. \fBPR\fP \fI\%#47367\fP: (\fI\%terminalmage\fP) Start docker containers with image name instead of ID
  165911. @ \fI2018\-04\-30 18:46:13 UTC\fP
  165912. .INDENT 2.0
  165913. .IP \(bu 2
  165914. c267e6083e Merge pull request \fI\%#47367\fP from terminalmage/issue47325
  165915. .IP \(bu 2
  165916. 798134caa3 Add regression test for creating images with image name insead of ID
  165917. .IP \(bu 2
  165918. 4ed47e839c Start docker containers with image name instead of ID
  165919. .UNINDENT
  165920. .IP \(bu 2
  165921. \fBISSUE\fP \fI\%#47006\fP: (\fI\%cedwards\fP) marathon & fx2 grain modules cause master and minion failure (refs: \fI\%#47401\fP)
  165922. .IP \(bu 2
  165923. \fBPR\fP \fI\%#47401\fP: (\fI\%gtmanfred\fP) fix proxy virtual checks for marathon and fx2
  165924. @ \fI2018\-04\-30 18:44:46 UTC\fP
  165925. .INDENT 2.0
  165926. .IP \(bu 2
  165927. 3bb00cbb55 Merge pull request \fI\%#47401\fP from gtmanfred/proxy
  165928. .IP \(bu 2
  165929. 99f9231759 fix proxy virtual checks for marathon and fx2
  165930. .UNINDENT
  165931. .IP \(bu 2
  165932. \fBPR\fP \fI\%#47397\fP: (\fI\%rallytime\fP) Add 2018.3.1 Release Notes
  165933. @ \fI2018\-04\-30 14:44:38 UTC\fP
  165934. .INDENT 2.0
  165935. .IP \(bu 2
  165936. c160fe36ce Merge pull request \fI\%#47397\fP from rallytime/2018.3.1\-release\-notes
  165937. .IP \(bu 2
  165938. 3b40cdad2a Add 2018.3.1 Release Notes
  165939. .UNINDENT
  165940. .IP \(bu 2
  165941. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP, \fI\%#47106\fP, \fI\%#47433\fP)
  165942. .IP \(bu 2
  165943. \fBPR\fP \fI\%#47374\fP: (\fI\%DmitryKuzmenko\fP) tornado50 merge forward for 2018.3
  165944. @ \fI2018\-04\-29 16:29:12 UTC\fP
  165945. .INDENT 2.0
  165946. .IP \(bu 2
  165947. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47374\fP, \fI\%#47368\fP, \fI\%#47433\fP)
  165948. .IP \(bu 2
  165949. \fBPR\fP \fI\%#46002\fP: (\fI\%isbm\fP) Pyzmq 17.0.0 proper handling (refs: \fI\%#47374\fP, \fI\%#47368\fP)
  165950. .IP \(bu 2
  165951. 3400f829c4 Merge pull request \fI\%#47374\fP from DSRCorporation/bugs/tornado50\-2018.3
  165952. .IP \(bu 2
  165953. 400999c54f fix pylint
  165954. .IP \(bu 2
  165955. 47b6d409d1 add io_loop handling to runtests engine
  165956. .IP \(bu 2
  165957. fd074fdb7d use salt.utils.zeromq
  165958. .IP \(bu 2
  165959. 4ae33c5d9a Run off of a temporary config
  165960. .IP \(bu 2
  165961. 7938b4906e Allow running pytest>=3.5.0
  165962. .IP \(bu 2
  165963. 34058c181e Tornado 5.0 compatibility fixes
  165964. .UNINDENT
  165965. .IP \(bu 2
  165966. \fBISSUE\fP \fI\%#47124\fP: (\fI\%mchugh19\fP) Vault module problem in 2018.3.0 (refs: \fI\%#47379\fP)
  165967. .IP \(bu 2
  165968. \fBPR\fP \fI\%#47379\fP: (\fI\%dwoz\fP) Properly encode messages when creating/validating signatures with m2crypto
  165969. @ \fI2018\-04\-28 08:38:23 UTC\fP
  165970. .INDENT 2.0
  165971. .IP \(bu 2
  165972. 2afe4bee95 Merge pull request \fI\%#47379\fP from dwoz/m2crypto_regression
  165973. .IP \(bu 2
  165974. 068f2d430d Always sign and verify bytes
  165975. .IP \(bu 2
  165976. 7810ebaba9 Add sign regression tests
  165977. .IP \(bu 2
  165978. f4441c3a1c Adding regression test for 47124
  165979. .UNINDENT
  165980. .IP \(bu 2
  165981. \fBPR\fP \fI\%#47277\fP: (\fI\%morganwillcock\fP) Fix minion crash on NetBSD
  165982. @ \fI2018\-04\-27 15:02:21 UTC\fP
  165983. .INDENT 2.0
  165984. .IP \(bu 2
  165985. 7390b72808 Merge pull request \fI\%#47277\fP from morganwillcock/netbsdswap
  165986. .IP \(bu 2
  165987. 0bcb1a079a Merge branch \(aq2018.3\(aq into netbsdswap
  165988. .IP \(bu 2
  165989. 30478e8c9c Use swapctl for NetBSD
  165990. .UNINDENT
  165991. .IP \(bu 2
  165992. \fBPR\fP \fI\%#47320\fP: (\fI\%twangboy\fP) Change from NSSM to SSM
  165993. @ \fI2018\-04\-27 14:37:50 UTC\fP
  165994. .INDENT 2.0
  165995. .IP \(bu 2
  165996. 2b7c7ef704 Merge pull request \fI\%#47320\fP from twangboy/win_ssm
  165997. .IP \(bu 2
  165998. 5549d83aae Use ssm instead of nssm
  165999. .UNINDENT
  166000. .IP \(bu 2
  166001. \fBPR\fP \fI\%#47308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47287\fP to 2018.3
  166002. @ \fI2018\-04\-27 13:50:49 UTC\fP
  166003. .INDENT 2.0
  166004. .IP \(bu 2
  166005. \fBPR\fP \fI\%#47287\fP: (\fI\%esell\fP) convert unicode ssh pass to str for azure (refs: \fI\%#47308\fP)
  166006. .IP \(bu 2
  166007. b6df5facce Merge pull request \fI\%#47308\fP from rallytime/bp\-47287
  166008. .IP \(bu 2
  166009. 5f392a23fe convert unicode ssh pass to str for azure
  166010. .UNINDENT
  166011. .IP \(bu 2
  166012. \fBISSUE\fP \fI\%#47324\fP: (\fI\%rlschilperoort\fP) archive.extracted keep and/or keep_source not working (refs: \fI\%#47332\fP)
  166013. .IP \(bu 2
  166014. \fBPR\fP \fI\%#47332\fP: (\fI\%garethgreenaway\fP) [2018.3] Removing duplicate code from state/archive.py
  166015. @ \fI2018\-04\-27 13:12:51 UTC\fP
  166016. .INDENT 2.0
  166017. .IP \(bu 2
  166018. efa3aab800 Merge pull request \fI\%#47332\fP from garethgreenaway/47324_archive_extracted_keep_keep_source
  166019. .IP \(bu 2
  166020. cc10bfec6b Removing redundant code which is prevening keep & keep_source from being set.
  166021. .UNINDENT
  166022. .IP \(bu 2
  166023. \fBPR\fP \fI\%#47326\fP: (\fI\%The\-Loeki\fP) Some Redis fixes
  166024. @ \fI2018\-04\-26 17:12:47 UTC\fP
  166025. .INDENT 2.0
  166026. .IP \(bu 2
  166027. 245d62ca16 Merge pull request \fI\%#47326\fP from The\-Loeki/redis\-cache\-sockets
  166028. .IP \(bu 2
  166029. d86fbe5bdd redis_return: add unix_socket_path to docs
  166030. .IP \(bu 2
  166031. ee9f533765 redis_cache: document UNIX socket access
  166032. .IP \(bu 2
  166033. 5337558a5a redis_return: Let redis handle pool creation, add UNIX socket support
  166034. .IP \(bu 2
  166035. c90f83b0f9 redis_return: cluster_mode default to False in __virtual__ to prevent KeyError stacktraces
  166036. .IP \(bu 2
  166037. 71e3286829 redis_return: Fix code blocks in docs
  166038. .IP \(bu 2
  166039. e6605f1c78 redis_cache fix code blox in docs
  166040. .IP \(bu 2
  166041. 40e67747ee redis_cache: add socket to options
  166042. .UNINDENT
  166043. .IP \(bu 2
  166044. \fBPR\fP \fI\%#47319\fP: (\fI\%dwoz\fP) Skip unix group tests on windows.
  166045. @ \fI2018\-04\-26 15:59:35 UTC\fP
  166046. .INDENT 2.0
  166047. .IP \(bu 2
  166048. 27a438f0ff Merge pull request \fI\%#47319\fP from dwoz/skip_tests
  166049. .IP \(bu 2
  166050. d9442d043e Skip tests not applicable to windows
  166051. .UNINDENT
  166052. .IP \(bu 2
  166053. \fBPR\fP \fI\%#47293\fP: (\fI\%dwoz\fP) The grp module is not available on windows
  166054. @ \fI2018\-04\-25 20:22:34 UTC\fP
  166055. .INDENT 2.0
  166056. .IP \(bu 2
  166057. 057f668788 Merge pull request \fI\%#47293\fP from dwoz/win_build_fix
  166058. .IP \(bu 2
  166059. 0386216005 Fix sneaky indention
  166060. .IP \(bu 2
  166061. 082b8d0b3d Use salt.utils.platform
  166062. .IP \(bu 2
  166063. cc2538e08f The grp modules is not available on windows
  166064. .UNINDENT
  166065. .IP \(bu 2
  166066. \fBISSUE\fP \fI\%#46862\fP: (\fI\%kivoli\fP) Setting locale.system fails in 2018.3 (refs: \fI\%#47280\fP, \fI\%#46869\fP)
  166067. .IP \(bu 2
  166068. \fBPR\fP \fI\%#47280\fP: (\fI\%gtmanfred\fP) make sure not to send invalid information
  166069. @ \fI2018\-04\-25 17:46:45 UTC\fP
  166070. .INDENT 2.0
  166071. .IP \(bu 2
  166072. fff4f8c1a5 Merge pull request \fI\%#47280\fP from gtmanfred/localectl
  166073. .IP \(bu 2
  166074. 7c212cbb2d fix pylint
  166075. .IP \(bu 2
  166076. 6754787e8e update localemod tests
  166077. .IP \(bu 2
  166078. 9075070573 make sure not to send invalid information
  166079. .UNINDENT
  166080. .IP \(bu 2
  166081. \fBISSUE\fP \fI\%#46977\fP: (\fI\%gtmanfred\fP) [2018.3.0] Backwards compatibilty breaking change in 2018.3.0 (refs: \fI\%#47038\fP)
  166082. .IP \(bu 2
  166083. \fBPR\fP \fI\%#47038\fP: (\fI\%garethgreenaway\fP) [2018.3] fix to fileclient.py
  166084. @ \fI2018\-04\-25 14:57:04 UTC\fP
  166085. .INDENT 2.0
  166086. .IP \(bu 2
  166087. 205701dcbe Merge pull request \fI\%#47038\fP from garethgreenaway/46977_fixing_fileclient_forward_compatibilty
  166088. .IP \(bu 2
  166089. ba01d2133a Updating version.py to include Magnesium.
  166090. .IP \(bu 2
  166091. 10c823dd79 The _ext_nodes master function has been renamed to _master_tops. To ensure compatibility when using older Salt masters we continue to pass the function as _ext_nodes until the Magnesium release.
  166092. .UNINDENT
  166093. .IP \(bu 2
  166094. \fBISSUE\fP \fI\%#47059\fP: (\fI\%OrlandoArcapix\fP) Some states incorrectly return None instead of an empty dict when there are no changes (refs: \fI\%#47060\fP)
  166095. .IP \(bu 2
  166096. \fBISSUE\fP \fI\%#46985\fP: (\fI\%OrlandoArcapix\fP) grafana4_user.present and grafana4_org.present states not working in 2018.3.0 (refs: \fI\%#47048\fP)
  166097. .IP \(bu 2
  166098. \fBPR\fP \fI\%#47060\fP: (\fI\%OrlandoArcapix\fP) Return an empty dict for \(aqchanges\(aq instead of \(aqNone\(aq
  166099. @ \fI2018\-04\-25 14:55:24 UTC\fP
  166100. .INDENT 2.0
  166101. .IP \(bu 2
  166102. \fBPR\fP \fI\%#47048\fP: (\fI\%OrlandoArcapix\fP) Issue46985 fix grafana4 state (refs: \fI\%#47060\fP)
  166103. .IP \(bu 2
  166104. 89daf4fdc7 Merge pull request \fI\%#47060\fP from OrlandoArcapix/Issue47059\-return_dict_from_state
  166105. .IP \(bu 2
  166106. 5378e4fd07 Update grafana_datasource test to check for empty dict being returned on no changes, rather than None
  166107. .IP \(bu 2
  166108. f115452653 Return an empty dict for \(aqchanges\(aq instead of \(aqNone\(aq
  166109. .UNINDENT
  166110. .IP \(bu 2
  166111. \fBISSUE\fP \fI\%#47089\fP: (\fI\%syphernl\fP) UnicodeDecodeError: \(aqascii\(aq codec can\(aqt decode byte 0xc3 in position 404: ordinal not in range(128) (refs: \fI\%#47153\fP)
  166112. .IP \(bu 2
  166113. \fBPR\fP \fI\%#47153\fP: (\fI\%terminalmage\fP) salt.modules.ssh: properly encode/decode I/O
  166114. @ \fI2018\-04\-25 14:53:51 UTC\fP
  166115. .INDENT 2.0
  166116. .IP \(bu 2
  166117. 10cc0d312b Merge pull request \fI\%#47153\fP from terminalmage/issue47089
  166118. .IP \(bu 2
  166119. bdb52797f8 salt.modules.ssh: properly encode/decode I/O
  166120. .UNINDENT
  166121. .IP \(bu 2
  166122. \fBISSUE\fP \fI\%#47199\fP: (\fI\%tkaehn\fP) Targeting by list (\-L) broken for minions behind syndic? (refs: \fI\%#47275\fP)
  166123. .IP \(bu 2
  166124. \fBPR\fP \fI\%#47275\fP: (\fI\%terminalmage\fP) Fix false failure events sent when using syndic
  166125. @ \fI2018\-04\-25 13:56:47 UTC\fP
  166126. .INDENT 2.0
  166127. .IP \(bu 2
  166128. b5d64f1a70 Merge pull request \fI\%#47275\fP from terminalmage/issue47199
  166129. .IP \(bu 2
  166130. 8012ad12f8 Fix false failure events sent when using syndic
  166131. .UNINDENT
  166132. .IP \(bu 2
  166133. \fBISSUE\fP \fI\%#47267\fP: (\fI\%skjaro\fP) Problem with beacon diskusage on windows platform in 2018.3 (refs: \fI\%#47284\fP)
  166134. .IP \(bu 2
  166135. \fBPR\fP \fI\%#47284\fP: (\fI\%skjaro\fP) Fix beacon diskusage documentation for the new beahavior mentioned in issue \fI\%#47267\fP
  166136. @ \fI2018\-04\-25 13:52:30 UTC\fP
  166137. .INDENT 2.0
  166138. .IP \(bu 2
  166139. 6215a995d8 Merge pull request \fI\%#47284\fP from skjaro/beacon_diskusage_doc_fix
  166140. .IP \(bu 2
  166141. fcc042aa5f Fix beacon documentation for the new beahavior mentioned in issue \fI\%#47267\fP
  166142. .UNINDENT
  166143. .IP \(bu 2
  166144. \fBPR\fP \fI\%#47291\fP: (\fI\%bosatsu\fP) Fix proxy minion beacon doc
  166145. @ \fI2018\-04\-25 13:42:36 UTC\fP
  166146. .INDENT 2.0
  166147. .IP \(bu 2
  166148. 3ef4fe6ed2 Merge pull request \fI\%#47291\fP from bosatsu/fix\-proxy\-minion\-beacon\-doc
  166149. .IP \(bu 2
  166150. 01980b4c43 Fix topics/releases/2018.3.0.rst to include correct example of proxy_example beacon yaml configuration.
  166151. .IP \(bu 2
  166152. 9682e26eec Fix topics/proxyminion/beacon.rst to include correct example of salt_proxy beacon yaml configuration.
  166153. .UNINDENT
  166154. .IP \(bu 2
  166155. \fBISSUE\fP \fI\%#47239\fP: (\fI\%bosatsu\fP) Unable to load salt_proxy beacon on minion in 2018.3.0 (refs: \fI\%#47255\fP)
  166156. .IP \(bu 2
  166157. \fBPR\fP \fI\%#47255\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to salt_proxy beacon and beacon tests
  166158. @ \fI2018\-04\-25 13:41:51 UTC\fP
  166159. .INDENT 2.0
  166160. .IP \(bu 2
  166161. ea2d68b865 Merge pull request \fI\%#47255\fP from garethgreenaway/47239_fixes_to_salt_proxy_beacon
  166162. .IP \(bu 2
  166163. a2a8d78cb0 Fixing status beacon tests.
  166164. .IP \(bu 2
  166165. c87d6cae23 Ensure the salt_proxy is returning the correct tuple when the configuration is valid. Update various beacon unit tests to ensure they are testing the results of the validate function for a True result.
  166166. .UNINDENT
  166167. .IP \(bu 2
  166168. \fBPR\fP \fI\%#47292\fP: (\fI\%dwoz\fP) Fix decorator wart
  166169. @ \fI2018\-04\-25 04:25:23 UTC\fP
  166170. .INDENT 2.0
  166171. .IP \(bu 2
  166172. \fBPR\fP \fI\%#47290\fP: (\fI\%dwoz\fP) Run cache_master test in tmp dir (refs: \fI\%#47292\fP)
  166173. .IP \(bu 2
  166174. 19f9e8258f Merge pull request \fI\%#47292\fP from dwoz/cp_fix_again
  166175. .IP \(bu 2
  166176. 7d045eb235 Fix decorator wart
  166177. .UNINDENT
  166178. .IP \(bu 2
  166179. \fBPR\fP \fI\%#47285\fP: (\fI\%dwoz\fP) Fix reg grains test
  166180. @ \fI2018\-04\-25 00:16:56 UTC\fP
  166181. .INDENT 2.0
  166182. .IP \(bu 2
  166183. da532aa1ac Merge pull request \fI\%#47285\fP from dwoz/core_test_fix
  166184. .IP \(bu 2
  166185. 884f4c1829 Fix extra space
  166186. .IP \(bu 2
  166187. 8a9027c0c9 Fix reg grains test
  166188. .UNINDENT
  166189. .IP \(bu 2
  166190. \fBPR\fP \fI\%#47290\fP: (\fI\%dwoz\fP) Run cache_master test in tmp dir (refs: \fI\%#47292\fP)
  166191. @ \fI2018\-04\-24 23:37:21 UTC\fP
  166192. .INDENT 2.0
  166193. .IP \(bu 2
  166194. f591cff643 Merge pull request \fI\%#47290\fP from dwoz/test_cp_fix
  166195. .IP \(bu 2
  166196. 5ff51affbd Run cache_master test in tmp dir
  166197. .UNINDENT
  166198. .IP \(bu 2
  166199. \fBISSUE\fP \fI\%#47092\fP: (\fI\%syphernl\fP) [2018.3.0] pkg.installed breaks with virtual packages (refs: \fI\%#47250\fP)
  166200. .IP \(bu 2
  166201. \fBISSUE\fP \fI\%#38838\fP: (\fI\%Zorlin\fP) Failing to remove nginx (refs: \fI\%#44455\fP)
  166202. .IP \(bu 2
  166203. \fBPR\fP \fI\%#47250\fP: (\fI\%terminalmage\fP) Fix virtual package detection
  166204. @ \fI2018\-04\-24 19:22:24 UTC\fP
  166205. .INDENT 2.0
  166206. .IP \(bu 2
  166207. \fBPR\fP \fI\%#44455\fP: (\fI\%samodid\fP) Fix for \fI\%#38838\fP (refs: \fI\%#47250\fP)
  166208. .IP \(bu 2
  166209. 6d323aa8f0 Merge pull request \fI\%#47250\fP from terminalmage/issue47092
  166210. .IP \(bu 2
  166211. b8630a70be Fix virtual package detection
  166212. .UNINDENT
  166213. .IP \(bu 2
  166214. \fBISSUE\fP \fI\%#47225\fP: (\fI\%pruiz\fP) zfs.filesystem_present takes forever on a dataset with lots (10k+) of snapshots (refs: \fI\%#47228\fP, \fI\%#47227\fP, \fI\%#47226\fP)
  166215. .IP \(bu 2
  166216. \fBPR\fP \fI\%#47228\fP: (\fI\%pruiz\fP) Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots (2018.3 branch)
  166217. @ \fI2018\-04\-24 13:35:21 UTC\fP
  166218. .INDENT 2.0
  166219. .IP \(bu 2
  166220. \fBPR\fP \fI\%#47226\fP: (\fI\%pruiz\fP) Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots (refs: \fI\%#47228\fP, \fI\%#47227\fP)
  166221. .IP \(bu 2
  166222. 428e915d6a Merge pull request \fI\%#47228\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2018.3
  166223. .IP \(bu 2
  166224. cfbf136ab2 Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  166225. .UNINDENT
  166226. .IP \(bu 2
  166227. \fBISSUE\fP \fI\%#46943\fP: (\fI\%Auha\fP) Slack.Engine could not start (refs: \fI\%#47262\fP, \fI\%#47109\fP)
  166228. .IP \(bu 2
  166229. \fBPR\fP \fI\%#47262\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to targeting in Slack engine
  166230. @ \fI2018\-04\-24 13:18:36 UTC\fP
  166231. .INDENT 2.0
  166232. .IP \(bu 2
  166233. 0b836106b9 Merge pull request \fI\%#47262\fP from garethgreenaway/slack_engine_target_fix
  166234. .IP \(bu 2
  166235. bcdef641e8 Removing target and tgt_type from the cmdline that is passed along to Salt, the target is used else where and including it in the cmdline causes problem when it is passed along. Adding an additional test to ensure we are getting the right targt.
  166236. .UNINDENT
  166237. .IP \(bu 2
  166238. \fBISSUE\fP \fI\%#47047\fP: (\fI\%Giandom\fP) Pillars aren\(aqt evaluated when alias is passed in Slack Engine (refs: \fI\%#47142\fP)
  166239. .IP \(bu 2
  166240. \fBPR\fP \fI\%#47142\fP: (\fI\%garethgreenaway\fP) [2018.3] pillar and output formatting fixes to Slack engine
  166241. @ \fI2018\-04\-23 19:55:07 UTC\fP
  166242. .INDENT 2.0
  166243. .IP \(bu 2
  166244. 2ed4b38b02 Merge pull request \fI\%#47142\fP from garethgreenaway/47047_passing_pillar_to_slack_aliases
  166245. .IP \(bu 2
  166246. 6f183e1d80 Initial commmit for unit/engines/test_slack_engine
  166247. .IP \(bu 2
  166248. a2840fc230 Only include the rest of the cmdline if the cmd is an alias.
  166249. .IP \(bu 2
  166250. e846df7409 Fixing a bug when passing pillar values to aliases for the Slack engine. Cleaned up the formatting of the results, color codes don\(aqt translate well into Slack output. For any state runs, eg. highstate. apply, sls, we run the output through the highstate formater. For anything else run it though the yaml outputer. Running it though highstate causes errors when the output does match what the highstate output is expecting.
  166251. .UNINDENT
  166252. .IP \(bu 2
  166253. \fBPR\fP \fI\%#47245\fP: (\fI\%terminalmage\fP) Ensure we pass hexid as bytes when zmq_filtering enabled
  166254. @ \fI2018\-04\-23 16:54:57 UTC\fP
  166255. .INDENT 2.0
  166256. .IP \(bu 2
  166257. 42a0e655dc Merge pull request \fI\%#47245\fP from terminalmage/zeromq\-bytes
  166258. .IP \(bu 2
  166259. a7accc0548 Ensure we pass hexid as bytes when zmq_filtering enabled
  166260. .UNINDENT
  166261. .IP \(bu 2
  166262. \fBPR\fP \fI\%#47242\fP: (\fI\%aesposito91\fP) PY3 fix for zeromq setsockopt
  166263. @ \fI2018\-04\-23 16:38:09 UTC\fP
  166264. .INDENT 2.0
  166265. .IP \(bu 2
  166266. 73525d1460 Merge pull request \fI\%#47242\fP from aesposito91/2018.3
  166267. .IP \(bu 2
  166268. b225351e6d Update napalm_syslog.py
  166269. .UNINDENT
  166270. .IP \(bu 2
  166271. \fBISSUE\fP \fI\%#47117\fP: (\fI\%prashanthtuttu\fP) Napalm / Capirca Issue (refs: \fI\%#47241\fP)
  166272. .IP \(bu 2
  166273. \fBPR\fP \fI\%#47241\fP: (\fI\%mirceaulinic\fP) Fix the imports into the netacl execution and state modules
  166274. @ \fI2018\-04\-23 14:56:32 UTC\fP
  166275. .INDENT 2.0
  166276. .IP \(bu 2
  166277. b78295aee9 Merge pull request \fI\%#47241\fP from cloudflare/fix\-47117
  166278. .IP \(bu 2
  166279. 26c5583264 \fI\%#47117\fP: fix the napalm imports in the netacl state module
  166280. .IP \(bu 2
  166281. 48396467c1 \fI\%#47117\fP: fix the napalm imports in the netacl execution module
  166282. .UNINDENT
  166283. .IP \(bu 2
  166284. \fBPR\fP \fI\%#47219\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing a backward compatibility issue with vault module & runner
  166285. @ \fI2018\-04\-23 14:10:19 UTC\fP
  166286. .INDENT 2.0
  166287. .IP \(bu 2
  166288. 88557ea991 Merge pull request \fI\%#47219\fP from garethgreenaway/vault_backward_compatibility
  166289. .IP \(bu 2
  166290. 1758081ffe When using the vault module on a 2018.3 minion against a 2017.7 master, the 2018.3 minion is expecting a verify element in the results from the Salt runner on the master. The runner in 2017.7 did not include a verify element, which results in an error. This change accounts for this by using the default in 2018.3 which is not to verify if not configured.
  166291. .UNINDENT
  166292. .IP \(bu 2
  166293. \fBPR\fP \fI\%#47186\fP: (\fI\%dmurphy18\fP) backport of issue 46933, updated ZFS handling to Salt 2018.3.x
  166294. @ \fI2018\-04\-23 14:07:06 UTC\fP
  166295. .INDENT 2.0
  166296. .IP \(bu 2
  166297. 370feadbd2 Merge pull request \fI\%#47186\fP from dmurphy18/zfs_backport_46933
  166298. .IP \(bu 2
  166299. 283359d315 Corrected typo in comma\-seprated and 2018.3.0 \-> 2018.3.1
  166300. .IP \(bu 2
  166301. b7f8d5a22f Replace use of Fluorine with 2018.3.0 for comma\-separated warnings
  166302. .IP \(bu 2
  166303. 3f30ab2ed6 ZFS backport of 46933 to 2018.3.1
  166304. .UNINDENT
  166305. .IP \(bu 2
  166306. \fBPR\fP \fI\%#47217\fP: (\fI\%twangboy\fP) Remove installation of pywin32 from setup.py
  166307. @ \fI2018\-04\-23 13:32:54 UTC\fP
  166308. .INDENT 2.0
  166309. .IP \(bu 2
  166310. bf3a67d11b Merge pull request \fI\%#47217\fP from twangboy/fix_setup
  166311. .IP \(bu 2
  166312. eb3d45bb08 Remove installation of pywin32 from setup.py
  166313. .UNINDENT
  166314. .IP \(bu 2
  166315. \fBPR\fP \fI\%#47195\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166316. @ \fI2018\-04\-20 19:25:30 UTC\fP
  166317. .INDENT 2.0
  166318. .IP \(bu 2
  166319. 8e21703f13 Merge pull request \fI\%#47195\fP from rallytime/merge\-2018.3
  166320. .IP \(bu 2
  166321. f90fd8c663 Test fix: file strings must be unicode in master config
  166322. .IP \(bu 2
  166323. bee4948df1 Lint: use full path for event utils function
  166324. .IP \(bu 2
  166325. 120c5446b7 Update old utils paths to new utils paths
  166326. .IP \(bu 2
  166327. 4718d31e53 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166328. .INDENT 2.0
  166329. .IP \(bu 2
  166330. 65f344e371 Merge pull request \fI\%#47184\fP from Ch3LL/status_test
  166331. .INDENT 2.0
  166332. .IP \(bu 2
  166333. 25a84428b8 Add status module integration modules tests for Windows
  166334. .UNINDENT
  166335. .IP \(bu 2
  166336. 965600ad6c Merge pull request \fI\%#47163\fP from rallytime/jenkins\-autodoc
  166337. .INDENT 2.0
  166338. .IP \(bu 2
  166339. 0039395017 Updage jenkins module autodocs to use jenkinsmod name instead
  166340. .UNINDENT
  166341. .IP \(bu 2
  166342. 0a43dde5fc Merge pull request \fI\%#47185\fP from twangboy/add_tests
  166343. .INDENT 2.0
  166344. .IP \(bu 2
  166345. 345daa0423 Add additional integration tests to whitelist
  166346. .UNINDENT
  166347. .IP \(bu 2
  166348. 1a600bb9a4 Merge pull request \fI\%#47172\fP from dwoz/cover_without_admin
  166349. .INDENT 2.0
  166350. .IP \(bu 2
  166351. cadd759727 Use warnings to warn user
  166352. .IP \(bu 2
  166353. 144c68e214 Allow non admin name based runs on windows
  166354. .UNINDENT
  166355. .IP \(bu 2
  166356. d5997d2301 Merge pull request \fI\%#47110\fP from kstreee/fix\-misusing\-of\-timeout
  166357. .INDENT 2.0
  166358. .IP \(bu 2
  166359. 0624aee0ed Fixes misusing of the timeout option.
  166360. .UNINDENT
  166361. .IP \(bu 2
  166362. 87ca2b4003 Merge pull request \fI\%#40961\fP from terminalmage/issue40948
  166363. .INDENT 2.0
  166364. .IP \(bu 2
  166365. 6ba66cca41 Fix incorrect logic in exception check
  166366. .IP \(bu 2
  166367. fed5041c5f Make error more specific to aid in troubleshooting
  166368. .IP \(bu 2
  166369. 8c67ab53b4 Fix path in log message
  166370. .IP \(bu 2
  166371. 3198ca8b19 Make error more explicit when PKI dir not present for salt\-call
  166372. .UNINDENT
  166373. .IP \(bu 2
  166374. f5e63584d4 Merge pull request \fI\%#47134\fP from Ch3LL/user_win_test
  166375. .INDENT 2.0
  166376. .IP \(bu 2
  166377. e7c9bc4038 Add user integration tests for windows OS
  166378. .UNINDENT
  166379. .IP \(bu 2
  166380. da2f6a3fac Merge pull request \fI\%#47131\fP from gtmanfred/cli
  166381. .INDENT 2.0
  166382. .IP \(bu 2
  166383. 1b1c29bf62 add __cli for master processes
  166384. .UNINDENT
  166385. .IP \(bu 2
  166386. 9b8e6ffb8c Merge pull request \fI\%#47129\fP from rallytime/bp\-47121
  166387. .INDENT 2.0
  166388. .IP \(bu 2
  166389. 11da526b21 add ImportError
  166390. .IP \(bu 2
  166391. bd0c23396c fix pip.req import error in pip 10.0.0
  166392. .UNINDENT
  166393. .IP \(bu 2
  166394. eb5ac51a48 Merge pull request \fI\%#47102\fP from gtmanfred/2017.7
  166395. .INDENT 2.0
  166396. .IP \(bu 2
  166397. 3dc93b310b fix tests
  166398. .IP \(bu 2
  166399. 8497e08f8e fix pip module for 10.0.0
  166400. .IP \(bu 2
  166401. 4c07a3d1e9 fix other tests
  166402. .IP \(bu 2
  166403. b71e3d8a04 dont allow using no_use_wheel for pip 10.0.0 or newer
  166404. .UNINDENT
  166405. .IP \(bu 2
  166406. c1dc42e67e Merge pull request \fI\%#47037\fP from twangboy/fix_dev_scripts
  166407. .INDENT 2.0
  166408. .IP \(bu 2
  166409. 990a24d7ed Fix build_env scripts
  166410. .UNINDENT
  166411. .UNINDENT
  166412. .UNINDENT
  166413. .IP \(bu 2
  166414. \fBISSUE\fP \fI\%#46906\fP: (\fI\%whytewolf\fP) Windows failure with PR 46541 (refs: \fI\%#47168\fP)
  166415. .IP \(bu 2
  166416. \fBPR\fP \fI\%#47168\fP: (\fI\%gtmanfred\fP) fix metadata grain for py3 and windows
  166417. @ \fI2018\-04\-20 19:07:50 UTC\fP
  166418. .INDENT 2.0
  166419. .IP \(bu 2
  166420. a56eb7e05d Merge pull request \fI\%#47168\fP from gtmanfred/metadata
  166421. .IP \(bu 2
  166422. 396f7906e3 fix metadata grain for py3 and windows
  166423. .UNINDENT
  166424. .IP \(bu 2
  166425. \fBISSUE\fP \fI\%#46918\fP: (\fI\%AmbicaY\fP) napalm/capirca issue (refs: \fI\%#47202\fP)
  166426. .IP \(bu 2
  166427. \fBPR\fP \fI\%#47202\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#46918\fP: add the TTL field
  166428. @ \fI2018\-04\-20 14:34:09 UTC\fP
  166429. .INDENT 2.0
  166430. .IP \(bu 2
  166431. 6135b76e2c Merge pull request \fI\%#47202\fP from cloudflare/fix\-46918
  166432. .IP \(bu 2
  166433. 1e74141cc0 Fix \fI\%#46918\fP
  166434. .UNINDENT
  166435. .IP \(bu 2
  166436. \fBISSUE\fP \fI\%#47150\fP: (\fI\%srkunze\fP) [Regression] ip_to_host and SSH._expand_target require missing reverse\-lookup (refs: \fI\%#47191\fP)
  166437. .IP \(bu 2
  166438. \fBPR\fP \fI\%#47191\fP: (\fI\%terminalmage\fP) salt\-ssh: Do not attempt to match host/ip to minion ID if reverse lookup fails
  166439. @ \fI2018\-04\-20 14:20:05 UTC\fP
  166440. .INDENT 2.0
  166441. .IP \(bu 2
  166442. 7f1115e611 Merge pull request \fI\%#47191\fP from terminalmage/issue47150
  166443. .IP \(bu 2
  166444. 95a6f075cb Add debug logging when ip_to_host fails
  166445. .IP \(bu 2
  166446. 45696e622b salt\-ssh: Do not attempt to match host/ip to minion ID if reverse lookup fails
  166447. .UNINDENT
  166448. .IP \(bu 2
  166449. \fBPR\fP \fI\%#47122\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166450. @ \fI2018\-04\-19 20:44:18 UTC\fP
  166451. .INDENT 2.0
  166452. .IP \(bu 2
  166453. 1947ffdf56 Merge pull request \fI\%#47122\fP from rallytime/merge\-2018.3
  166454. .IP \(bu 2
  166455. 878fa06134 Test fix: remove tornado testing lib from class
  166456. .IP \(bu 2
  166457. a40f007962 lint: get_context is in stringutils.py now
  166458. .IP \(bu 2
  166459. 3416e398c6 Update old utils paths references to use new paths
  166460. .IP \(bu 2
  166461. 94c2a12be6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166462. .INDENT 2.0
  166463. .IP \(bu 2
  166464. 6a4c0b8a1a Merge pull request \fI\%#47108\fP from dwoz/async_test_fix
  166465. .INDENT 2.0
  166466. .IP \(bu 2
  166467. 3d85e30ce5 AsyncTestCase is required for AsyncEventPublisher
  166468. .UNINDENT
  166469. .IP \(bu 2
  166470. 03892eaf0b Merge pull request \fI\%#47068\fP from cachedout/catch_value_error_socket_test
  166471. .INDENT 2.0
  166472. .IP \(bu 2
  166473. 7db5625632 Catch an operation on a closed socket in a test
  166474. .UNINDENT
  166475. .IP \(bu 2
  166476. 1ea2885ec2 Merge pull request \fI\%#47065\fP from dwoz/jinja_test_fix
  166477. .INDENT 2.0
  166478. .IP \(bu 2
  166479. 673cd31c65 Merge branch \(aq2017.7\(aq into jinja_test_fix
  166480. .UNINDENT
  166481. .IP \(bu 2
  166482. 5293b5b5ca Merge pull request \fI\%#47077\fP from dwoz/test_state_fix
  166483. .INDENT 2.0
  166484. .IP \(bu 2
  166485. 444da3f893 Fix py3 wart (chr vs bytesstring)
  166486. .IP \(bu 2
  166487. e8acca01c2 Fix failing state test by normalizing line endings
  166488. .UNINDENT
  166489. .IP \(bu 2
  166490. ca967de5da Merge pull request \fI\%#47067\fP from gtmanfred/2017.7
  166491. .INDENT 2.0
  166492. .IP \(bu 2
  166493. f913a7859c use the recommended opennebula lookup method
  166494. .UNINDENT
  166495. .IP \(bu 2
  166496. 7fddad6cd9 Merge pull request \fI\%#47064\fP from dwoz/roots_tests_fix
  166497. .INDENT 2.0
  166498. .IP \(bu 2
  166499. 25fd7c0694 fix py3 wart, encode os.linesep
  166500. .IP \(bu 2
  166501. d79f1a1961 Fix fileserver roots tests
  166502. .UNINDENT
  166503. .IP \(bu 2
  166504. 977c6939c4 Merge pull request \fI\%#47069\fP from cachedout/match_timeout_arg
  166505. .INDENT 2.0
  166506. .IP \(bu 2
  166507. b8990f5258 Pass the timeout variable to the CLI when calling salt in tests
  166508. .UNINDENT
  166509. .IP \(bu 2
  166510. 2c4c19c622 Merge pull request \fI\%#47074\fP from dwoz/ignore_artifacts
  166511. .INDENT 2.0
  166512. .IP \(bu 2
  166513. c3941efad0 Kitchn should ignore artifacts directory
  166514. .UNINDENT
  166515. .IP \(bu 2
  166516. c484c0bd71 Merge pull request \fI\%#47055\fP from bloomberg/GH\-47000
  166517. .INDENT 2.0
  166518. .IP \(bu 2
  166519. 8af3f5b874 GH\-47000: add proper handling of full_return in cmd_subset
  166520. .UNINDENT
  166521. .IP \(bu 2
  166522. f3496030cc Merge pull request \fI\%#47039\fP from twangboy/win_fix_winrm_script
  166523. .INDENT 2.0
  166524. .IP \(bu 2
  166525. 6635b9003f Fix winrm powershell script
  166526. .INDENT 2.0
  166527. .INDENT 3.5
  166528. .INDENT 0.0
  166529. .IP \(bu 2
  166530. 46fa2c04de Fix py3 os.linesep wart
  166531. .IP \(bu 2
  166532. 3c565d7e54 Use salt.utils.fopen
  166533. .IP \(bu 2
  166534. aa965310f1 Clean up cruft
  166535. .IP \(bu 2
  166536. efc9866580 Jinja test fixes
  166537. .UNINDENT
  166538. .UNINDENT
  166539. .UNINDENT
  166540. .UNINDENT
  166541. .UNINDENT
  166542. .UNINDENT
  166543. .IP \(bu 2
  166544. \fBPR\fP \fI\%#47162\fP: (\fI\%terminalmage\fP) Partial backport of \fI\%#47161\fP to 2018.3 branch
  166545. @ \fI2018\-04\-19 19:28:47 UTC\fP
  166546. .INDENT 2.0
  166547. .IP \(bu 2
  166548. \fBPR\fP \fI\%#47161\fP: (\fI\%terminalmage\fP) Fix failing pillar unit test (refs: \fI\%#47162\fP)
  166549. .IP \(bu 2
  166550. 291cca7ed8 Merge pull request \fI\%#47162\fP from terminalmage/bp\-47161
  166551. .IP \(bu 2
  166552. d185f97a47 mocked file_roots and pillar_roots should be dicts
  166553. .UNINDENT
  166554. .IP \(bu 2
  166555. \fBISSUE\fP \fI\%#47081\fP: (\fI\%sjorge\fP) file.directory with recursion fails if there are non\-ascii characters in the path (refs: \fI\%#47165\fP)
  166556. .IP \(bu 2
  166557. \fBPR\fP \fI\%#47165\fP: (\fI\%terminalmage\fP) Make sure a str type is passed to os.walk
  166558. @ \fI2018\-04\-19 14:59:16 UTC\fP
  166559. .INDENT 2.0
  166560. .IP \(bu 2
  166561. 2ee8006da3 Merge pull request \fI\%#47165\fP from terminalmage/issue47081
  166562. .IP \(bu 2
  166563. 9e29acb477 Make sure a str type is passed to os.walk
  166564. .UNINDENT
  166565. .IP \(bu 2
  166566. \fBPR\fP \fI\%#47070\fP: (\fI\%terminalmage\fP) Use decorators for temp files/dirs in test suite
  166567. @ \fI2018\-04\-19 14:01:48 UTC\fP
  166568. .INDENT 2.0
  166569. .IP \(bu 2
  166570. 6257862bbb Merge pull request \fI\%#47070\fP from terminalmage/with_tempdir
  166571. .IP \(bu 2
  166572. 048728d2b7 Remove unused imports
  166573. .IP \(bu 2
  166574. 879c557264 Use decorators for temp files/dirs in test suite
  166575. .UNINDENT
  166576. .IP \(bu 2
  166577. \fBPR\fP \fI\%#47155\fP: (\fI\%mcalmer\fP) Fix patchinstall for yumpkg
  166578. @ \fI2018\-04\-18 19:24:17 UTC\fP
  166579. .INDENT 2.0
  166580. .IP \(bu 2
  166581. b46365614b Merge pull request \fI\%#47155\fP from mcalmer/fix\-patchinstall
  166582. .IP \(bu 2
  166583. 382afba457 fix invalid string compare
  166584. .IP \(bu 2
  166585. 8c19368938 provide kwargs to pkg_resource.parse_targets required to detect advisory type
  166586. .UNINDENT
  166587. .IP \(bu 2
  166588. \fBISSUE\fP \fI\%#47042\fP: (\fI\%valentin2105\fP) [ERROR] Unable to manage file: \(aqutf8\(aq codec can\(aqt decode byte (refs: \fI\%#47061\fP)
  166589. .IP \(bu 2
  166590. \fBPR\fP \fI\%#47061\fP: (\fI\%terminalmage\fP) Fix diffing binary files in file.get_diff (refs: \fI\%#47405\fP)
  166591. @ \fI2018\-04\-18 18:52:10 UTC\fP
  166592. .INDENT 2.0
  166593. .IP \(bu 2
  166594. 13ae1a2413 Merge pull request \fI\%#47061\fP from terminalmage/issue47042
  166595. .IP \(bu 2
  166596. 87f6cefea3 Rewrite flaky utf8 state to make it easier to troubleshoot
  166597. .IP \(bu 2
  166598. df6e535f05 Fix diffing binary files in file.get_diff
  166599. .UNINDENT
  166600. .IP \(bu 2
  166601. \fBPR\fP \fI\%#47058\fP: (\fI\%terminalmage\fP) Fix calls to file.lsattr when lsattr is not installed
  166602. @ \fI2018\-04\-18 16:30:12 UTC\fP
  166603. .INDENT 2.0
  166604. .IP \(bu 2
  166605. cba0f13cd9 Merge pull request \fI\%#47058\fP from terminalmage/lsattr
  166606. .IP \(bu 2
  166607. eeb067e910 Fix calls to file.lsattr when lsattr is not installed
  166608. .UNINDENT
  166609. .IP \(bu 2
  166610. \fBISSUE\fP \fI\%#46929\fP: (\fI\%noelmcloughlin\fP) 2018.3 regression file.managed.context parsing (refs: \fI\%#47104\fP)
  166611. .IP \(bu 2
  166612. \fBPR\fP \fI\%#47104\fP: (\fI\%terminalmage\fP) yamlloader: Properly handle colons in inline dicts
  166613. @ \fI2018\-04\-18 16:22:47 UTC\fP
  166614. .INDENT 2.0
  166615. .IP \(bu 2
  166616. b96ce23b3f Merge pull request \fI\%#47104\fP from terminalmage/issue46929
  166617. .IP \(bu 2
  166618. 33bf6643cd Add additional test for plain scalars
  166619. .IP \(bu 2
  166620. 508659b682 yamlloader: Properly handle colons in inline dicts
  166621. .UNINDENT
  166622. .IP \(bu 2
  166623. \fBISSUE\fP \fI\%#46887\fP: (\fI\%julientravelaer\fP) ldap.managed broken with 2018.3.0 (refs: \fI\%#47029\fP)
  166624. .IP \(bu 2
  166625. \fBISSUE\fP \fI\%#46859\fP: (\fI\%cheribral\fP) pillar_ldap causing TypeError exceptions in python\-ldap with unicode objects (refs: \fI\%#47029\fP)
  166626. .IP \(bu 2
  166627. \fBPR\fP \fI\%#47076\fP: (\fI\%terminalmage\fP) pillar_ldap: Load config options as str types
  166628. @ \fI2018\-04\-18 16:16:22 UTC\fP
  166629. .INDENT 2.0
  166630. .IP \(bu 2
  166631. \fBPR\fP \fI\%#47029\fP: (\fI\%terminalmage\fP) ldapmod.py/ldap3.py: Force modlist for search/modify/etc. to be str types (refs: \fI\%#47076\fP)
  166632. .IP \(bu 2
  166633. c12697b173 Merge pull request \fI\%#47076\fP from terminalmage/issue46859
  166634. .IP \(bu 2
  166635. c06c859caf pillar_ldap: Load config options as str types
  166636. .UNINDENT
  166637. .IP \(bu 2
  166638. \fBPR\fP \fI\%#47107\fP: (\fI\%twangboy\fP) Fix issues with reg state, add tests
  166639. @ \fI2018\-04\-18 15:53:02 UTC\fP
  166640. .INDENT 2.0
  166641. .IP \(bu 2
  166642. 50bd885ec7 Merge pull request \fI\%#47107\fP from twangboy/fix_46932
  166643. .IP \(bu 2
  166644. ae8ab2ab1a Fix tests for py3, enable tearDown
  166645. .IP \(bu 2
  166646. 3cf4ac1475 Add integration tests for reg state
  166647. .IP \(bu 2
  166648. cc259b146f Cast vdata to appropriate type in reg state
  166649. .UNINDENT
  166650. .IP \(bu 2
  166651. \fBISSUE\fP \fI\%#46909\fP: (\fI\%epelc\fP) Binary \fIcontents_pillar\fP with file.managed raises UnicodeDecodeError (refs: \fI\%#47041\fP)
  166652. .IP \(bu 2
  166653. \fBPR\fP \fI\%#47041\fP: (\fI\%terminalmage\fP) Force null bytes to be str types
  166654. @ \fI2018\-04\-18 14:08:25 UTC\fP
  166655. .INDENT 2.0
  166656. .IP \(bu 2
  166657. d6c59696be Merge pull request \fI\%#47041\fP from terminalmage/issue46909
  166658. .IP \(bu 2
  166659. e4182715be Special check specifically for bytes types
  166660. .IP \(bu 2
  166661. ee90dd5d95 Merge branch \(aq2018.3\(aq into issue46909
  166662. .IP \(bu 2
  166663. 0e99343a7f Use the same way of defining contents in both file.managed states
  166664. .IP \(bu 2
  166665. 5741d287b5 Move back to using null byte check for contents
  166666. .IP \(bu 2
  166667. 8e214c9fa9 file.managed: Add test to ensure binary contents work
  166668. .IP \(bu 2
  166669. 7b7dc94610 Use salt.utils.stringutils.is_binary to check if contents are binary
  166670. .IP \(bu 2
  166671. e3c969da81 PY3: Ensure binary contents work with file.managed
  166672. .IP \(bu 2
  166673. 5d98a8bedd Make salt.utils.stringutils.to_binary work for bytestrings
  166674. .IP \(bu 2
  166675. 1024000369 Force null bytes to be str types
  166676. .UNINDENT
  166677. .IP \(bu 2
  166678. \fBPR\fP \fI\%#47007\fP: (\fI\%twangboy\fP) Fix some issues with the win_servermanager module
  166679. @ \fI2018\-04\-17 20:57:04 UTC\fP
  166680. .INDENT 2.0
  166681. .IP \(bu 2
  166682. 9a9f6524f8 Merge pull request \fI\%#47007\fP from twangboy/fix_46968
  166683. .IP \(bu 2
  166684. 432db7c6ec Lint: Remove unused import
  166685. .IP \(bu 2
  166686. 10341e8f8b Remove erroneous pop statement
  166687. .IP \(bu 2
  166688. 56582f293a Remove redundant try/except block from state\(ga
  166689. .IP \(bu 2
  166690. 6ad2427279 Remove unnecessary try/except blocks
  166691. .IP \(bu 2
  166692. 92eeaa51bd Put some error checking in the shell command
  166693. .UNINDENT
  166694. .IP \(bu 2
  166695. \fBISSUE\fP \fI\%#46943\fP: (\fI\%Auha\fP) Slack.Engine could not start (refs: \fI\%#47262\fP, \fI\%#47109\fP)
  166696. .IP \(bu 2
  166697. \fBPR\fP \fI\%#47109\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to Slack engine
  166698. @ \fI2018\-04\-17 13:56:27 UTC\fP
  166699. .INDENT 2.0
  166700. .IP \(bu 2
  166701. a52137ee36 Merge pull request \fI\%#47109\fP from garethgreenaway/46943_slack_engine_fixes
  166702. .IP \(bu 2
  166703. 02baa76595 Fixing a bug that occured when a comment was added to a message sent to Slack by Salt. Also making \fIslack_engine:groups_pillar\fP optional.
  166704. .UNINDENT
  166705. .IP \(bu 2
  166706. \fBPR\fP \fI\%#47045\fP: (\fI\%tankywoo\fP) Fix ba7d00f5 for gentoo pkg.installed method
  166707. @ \fI2018\-04\-17 13:55:45 UTC\fP
  166708. .INDENT 2.0
  166709. .IP \(bu 2
  166710. 6c16a34c44 Merge pull request \fI\%#47045\fP from tankywoo/fix\-gentoo\-pkg\-installed
  166711. .IP \(bu 2
  166712. 551f4e10cf Fix ba7d00f5 for gentoo pkg.installed
  166713. .UNINDENT
  166714. .IP \(bu 2
  166715. \fBPR\fP \fI\%#47053\fP: (\fI\%clan\fP) handle jinja error in <module> level
  166716. @ \fI2018\-04\-16 22:47:54 UTC\fP
  166717. .INDENT 2.0
  166718. .IP \(bu 2
  166719. 86c7cfef56 Merge pull request \fI\%#47053\fP from clan/jinja\-error
  166720. .IP \(bu 2
  166721. a847466946 handle jinja error in <module> level
  166722. .UNINDENT
  166723. .IP \(bu 2
  166724. \fBPR\fP \fI\%#47062\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166725. @ \fI2018\-04\-16 19:58:32 UTC\fP
  166726. .INDENT 2.0
  166727. .IP \(bu 2
  166728. 7bfa608e9f Merge pull request \fI\%#47062\fP from rallytime/merge\-2018.3
  166729. .IP \(bu 2
  166730. 59f5880e72 lint fix
  166731. .IP \(bu 2
  166732. 1ddf8c584b Update old utils files to new new utils files path
  166733. .IP \(bu 2
  166734. 28a79ebba4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166735. .INDENT 2.0
  166736. .IP \(bu 2
  166737. 1700a10ebe Merge pull request \fI\%#46326\fP from kstreee/fix\-client\-local
  166738. .INDENT 2.0
  166739. .IP \(bu 2
  166740. 0f358a9c9e Fixes a timing bug of saltnado\(aqs client local.
  166741. .UNINDENT
  166742. .IP \(bu 2
  166743. c3c00316c5 Merge pull request \fI\%#46913\fP from lomeroe/2017_7\-fix46877
  166744. .INDENT 2.0
  166745. .IP \(bu 2
  166746. 369a0645ed move exception for clarity
  166747. .IP \(bu 2
  166748. 32ce5bfda5 Use configparser serializer object to read psscript.ini and script.ini startup/shutdown script files.
  166749. .UNINDENT
  166750. .IP \(bu 2
  166751. 9e37cfc9d6 Merge pull request \fI\%#47025\fP from terminalmage/fix\-server_id\-windows
  166752. .INDENT 2.0
  166753. .IP \(bu 2
  166754. cb0cf89ed3 Fix server_id grain in PY3 on Windows
  166755. .UNINDENT
  166756. .IP \(bu 2
  166757. 2e193cfb45 Merge pull request \fI\%#47027\fP from rallytime/bp\-44508
  166758. .INDENT 2.0
  166759. .IP \(bu 2
  166760. 8e72f362f4 Add priority field to support the latest capirca.
  166761. .IP \(bu 2
  166762. 112f92baab Add priority field to support the latest capirca.
  166763. .UNINDENT
  166764. .IP \(bu 2
  166765. 385fe2bc1e Merge pull request \fI\%#47020\fP from rallytime/bp\-46970
  166766. .INDENT 2.0
  166767. .IP \(bu 2
  166768. 9373dff52b Update test_pkgrepo.py
  166769. .IP \(bu 2
  166770. 13cf9eb5b1 Removing debugging.
  166771. .IP \(bu 2
  166772. a61a8593e5 Removing suse from pkgrepo comments tests. the pkgrepo functions in SUSE pkg module do not support comments.
  166773. .UNINDENT
  166774. .UNINDENT
  166775. .UNINDENT
  166776. .IP \(bu 2
  166777. \fBPR\fP \fI\%#47066\fP: (\fI\%terminalmage\fP) Fix regression in handling of environment/saltenv
  166778. @ \fI2018\-04\-16 19:57:12 UTC\fP
  166779. .INDENT 2.0
  166780. .IP \(bu 2
  166781. fa27e64a33 Merge pull request \fI\%#47066\fP from terminalmage/issue46979
  166782. .IP \(bu 2
  166783. 5c4c0468ad Fix regression in handling of environment/saltenv
  166784. .UNINDENT
  166785. .IP \(bu 2
  166786. \fBPR\fP \fI\%#47051\fP: (\fI\%rallytime\fP) Simplify LooseVersion check in \fI__virtual__\fP check in mac_assistive module
  166787. @ \fI2018\-04\-13 19:43:33 UTC\fP
  166788. .INDENT 2.0
  166789. .IP \(bu 2
  166790. 8761b81a69 Merge pull request \fI\%#47051\fP from rallytime/fix\-lint
  166791. .IP \(bu 2
  166792. d52b3689d9 Simplify LooseVersion check in \fI__virtual__\fP check in mac_assistive module
  166793. .UNINDENT
  166794. .IP \(bu 2
  166795. \fBPR\fP \fI\%#47057\fP: (\fI\%corywright\fP) Fix copy/paste typo in minionfs tutorial
  166796. @ \fI2018\-04\-13 19:43:01 UTC\fP
  166797. .INDENT 2.0
  166798. .IP \(bu 2
  166799. bbb8018b55 Merge pull request \fI\%#47057\fP from corywright/fix\-minionfs\-whitelist\-docs
  166800. .IP \(bu 2
  166801. 9b7ee97d12 Fix copy/paste typo in minionfs tutorial
  166802. .UNINDENT
  166803. .IP \(bu 2
  166804. \fBISSUE\fP \fI\%#46931\fP: (\fI\%anlutro\fP) file.managed diff is switched when using template in salt\-ssh 2018.3 (refs: \fI\%#47046\fP)
  166805. .IP \(bu 2
  166806. \fBPR\fP \fI\%#47046\fP: (\fI\%clan\fP) switch order of file to be diffed
  166807. @ \fI2018\-04\-13 13:40:13 UTC\fP
  166808. .INDENT 2.0
  166809. .IP \(bu 2
  166810. d5afa4a2c5 Merge pull request \fI\%#47046\fP from clan/file_diff
  166811. .IP \(bu 2
  166812. bb58605c54 switch order of file to be diffed
  166813. .UNINDENT
  166814. .IP \(bu 2
  166815. \fBISSUE\fP \fI\%#46985\fP: (\fI\%OrlandoArcapix\fP) grafana4_user.present and grafana4_org.present states not working in 2018.3.0 (refs: \fI\%#47048\fP)
  166816. .IP \(bu 2
  166817. \fBPR\fP \fI\%#47048\fP: (\fI\%OrlandoArcapix\fP) Issue46985 fix grafana4 state (refs: \fI\%#47060\fP)
  166818. @ \fI2018\-04\-13 13:34:29 UTC\fP
  166819. .INDENT 2.0
  166820. .IP \(bu 2
  166821. ec9251ecd3 Merge pull request \fI\%#47048\fP from OrlandoArcapix/Issue46985\-fix\-grafana4\-state
  166822. .IP \(bu 2
  166823. 259d747414 Remove accidentally added copy of a file
  166824. .IP \(bu 2
  166825. 6c8c3da74d Return an empty dict instead of \(aqNone\(aq from grafana4 states
  166826. .UNINDENT
  166827. .IP \(bu 2
  166828. \fBPR\fP \fI\%#47017\fP: (\fI\%opdude\fP) Don’t encode a unicode string
  166829. @ \fI2018\-04\-13 13:31:33 UTC\fP
  166830. .INDENT 2.0
  166831. .IP \(bu 2
  166832. d8c4c221cf Merge pull request \fI\%#47017\fP from Unity\-Technologies/hotfix/pip_windows
  166833. .IP \(bu 2
  166834. 838670f626 Don’t encode a unicode string
  166835. .UNINDENT
  166836. .IP \(bu 2
  166837. \fBISSUE\fP \fI\%#46917\fP: (\fI\%boltronics\fP) mysql_grants.present broken with \fIdatabase: somedatabase.*\fP (refs: \fI\%#46919\fP)
  166838. .IP \(bu 2
  166839. \fBPR\fP \fI\%#47019\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46919\fP to 2018.3
  166840. @ \fI2018\-04\-12 19:43:01 UTC\fP
  166841. .INDENT 2.0
  166842. .IP \(bu 2
  166843. \fBPR\fP \fI\%#46919\fP: (\fI\%boltronics\fP) Replace failing is and is not tests with == and != (refs: \fI\%#47019\fP)
  166844. .IP \(bu 2
  166845. 5b7544eaa0 Merge pull request \fI\%#47019\fP from rallytime/bp\-46919
  166846. .IP \(bu 2
  166847. 6837d6c138 Replace failing is and is not tests with == and !=
  166848. .UNINDENT
  166849. .IP \(bu 2
  166850. \fBISSUE\fP \fI\%#46887\fP: (\fI\%julientravelaer\fP) ldap.managed broken with 2018.3.0 (refs: \fI\%#47029\fP)
  166851. .IP \(bu 2
  166852. \fBISSUE\fP \fI\%#46859\fP: (\fI\%cheribral\fP) pillar_ldap causing TypeError exceptions in python\-ldap with unicode objects (refs: \fI\%#47029\fP)
  166853. .IP \(bu 2
  166854. \fBPR\fP \fI\%#47029\fP: (\fI\%terminalmage\fP) ldapmod.py/ldap3.py: Force modlist for search/modify/etc. to be str types (refs: \fI\%#47076\fP)
  166855. @ \fI2018\-04\-12 19:41:29 UTC\fP
  166856. .INDENT 2.0
  166857. .IP \(bu 2
  166858. ac2d54d78a Merge pull request \fI\%#47029\fP from terminalmage/issue46859
  166859. .IP \(bu 2
  166860. ab6314247b ldapmod.py/ldap3.py: Force modlist for search/modify/etc. to be str types
  166861. .IP \(bu 2
  166862. 7691dee4ed Add to_str option to decode funcs
  166863. .UNINDENT
  166864. .IP \(bu 2
  166865. \fBISSUE\fP \fI\%#46868\fP: (\fI\%tjyang\fP) 2017.7.4 to 2018.3.0 upgrade issue: Salt request timed out. The master is not responding (refs: \fI\%#46930\fP)
  166866. .IP \(bu 2
  166867. \fBPR\fP \fI\%#46930\fP: (\fI\%dwoz\fP) Clean up bad public key headers
  166868. @ \fI2018\-04\-12 18:57:37 UTC\fP
  166869. .INDENT 2.0
  166870. .IP \(bu 2
  166871. e6e07720fa Merge pull request \fI\%#46930\fP from dwoz/crptodomekeyfix
  166872. .IP \(bu 2
  166873. f2e484ed54 Merge branch \(aq2018.3\(aq into crptodomekeyfix
  166874. .IP \(bu 2
  166875. e1995a92ee Fix verify signature test
  166876. .IP \(bu 2
  166877. 0ba32118d9 Add test for bad public key without m2crypto
  166878. .IP \(bu 2
  166879. a44c356233 Clean up bad public key headers
  166880. .UNINDENT
  166881. .IP \(bu 2
  166882. \fBISSUE\fP \fI\%#46951\fP: (\fI\%Giandom\fP) Slack engine error using aliases: TypeError unhashable type (refs: \fI\%#47008\fP)
  166883. .IP \(bu 2
  166884. \fBPR\fP \fI\%#47008\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing aliases in slack engine
  166885. @ \fI2018\-04\-12 15:24:40 UTC\fP
  166886. .INDENT 2.0
  166887. .IP \(bu 2
  166888. 0e43becc12 Merge pull request \fI\%#47008\fP from garethgreenaway/46951_fixing_slack_engine_aliases
  166889. .IP \(bu 2
  166890. dc2a72d44f Fixing aliases in slack engine
  166891. .UNINDENT
  166892. .IP \(bu 2
  166893. \fBISSUE\fP \fI\%#46947\fP: (\fI\%Giandom\fP) Slack engine groups error (refs: \fI\%#47009\fP)
  166894. .IP \(bu 2
  166895. \fBPR\fP \fI\%#47009\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to slack engine documentation
  166896. @ \fI2018\-04\-12 15:20:54 UTC\fP
  166897. .INDENT 2.0
  166898. .IP \(bu 2
  166899. c33de7c82d Merge pull request \fI\%#47009\fP from garethgreenaway/46947_slack_documentation_update_catch_non_dicts
  166900. .IP \(bu 2
  166901. f0fadbb4ce Fixing indention for slack documention. Updating try..except to ensure we catch when groups aren\(aqt dicts.
  166902. .UNINDENT
  166903. .IP \(bu 2
  166904. \fBPR\fP \fI\%#47023\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46997\fP to 2018.3
  166905. @ \fI2018\-04\-12 15:05:24 UTC\fP
  166906. .INDENT 2.0
  166907. .IP \(bu 2
  166908. \fBPR\fP \fI\%#46997\fP: (\fI\%LukeCarrier\fP) Fix respository (=> repository) typo in sls_build (refs: \fI\%#47023\fP)
  166909. .IP \(bu 2
  166910. \fBPR\fP \fI\%#44638\fP: (\fI\%terminalmage\fP) Many improvements to docker network and container states (refs: \fI\%#46997\fP)
  166911. .IP \(bu 2
  166912. 68d17c71f1 Merge pull request \fI\%#47023\fP from rallytime/bp\-46997
  166913. .IP \(bu 2
  166914. c2c60f4ffc Fix respository (=> repository) typo in sls_build
  166915. .UNINDENT
  166916. .IP \(bu 2
  166917. \fBPR\fP \fI\%#47026\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  166918. @ \fI2018\-04\-12 14:39:41 UTC\fP
  166919. .INDENT 2.0
  166920. .IP \(bu 2
  166921. 9cf3c6406a Merge pull request \fI\%#47026\fP from rallytime/merge\-2018.3
  166922. .IP \(bu 2
  166923. ba70df9d62 Use msgpack utils for loads call, import msgpack for UnpackValueError
  166924. .IP \(bu 2
  166925. 34a478dfe5 Update old fopen path with new utils files path
  166926. .IP \(bu 2
  166927. 590c7fc13f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  166928. .INDENT 2.0
  166929. .IP \(bu 2
  166930. 8f994e7cf9 Merge pull request \fI\%#46539\fP from jfoboss/patch\-1
  166931. .INDENT 2.0
  166932. .IP \(bu 2
  166933. 6890122e41 Merge pull request \fI\%#1\fP from twangboy/pull_46539
  166934. .INDENT 2.0
  166935. .IP \(bu 2
  166936. 19c3fadbe5 Fix unit test for win_ntp
  166937. .UNINDENT
  166938. .IP \(bu 2
  166939. 826a8d3099 Fixing \fI\%#46504\fP
  166940. .UNINDENT
  166941. .IP \(bu 2
  166942. 74d70e95a5 Merge pull request \fI\%#46999\fP from gtmanfred/2017.7
  166943. .INDENT 2.0
  166944. .IP \(bu 2
  166945. 791af8f6ce switch pip test package
  166946. .UNINDENT
  166947. .IP \(bu 2
  166948. 8adaf7f526 Merge pull request \fI\%#46023\fP from bloomberg/parallel\-orch
  166949. .INDENT 2.0
  166950. .IP \(bu 2
  166951. 0ac0b3ca29 Merge branch \(aq2017.7\(aq into parallel\-orch
  166952. .UNINDENT
  166953. .IP \(bu 2
  166954. 39d65a39cf Merge pull request \fI\%#46613\fP from myinitialsarepm/fix_puppet.fact_and_puppet.facts
  166955. .INDENT 2.0
  166956. .IP \(bu 2
  166957. 44ecd13abc Update tests to use cmd.run_all
  166958. .IP \(bu 2
  166959. 7d7d40f541 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  166960. .IP \(bu 2
  166961. 0ce1520bd0 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  166962. .IP \(bu 2
  166963. 69e1f6f681 Fix puppet.fact and puppet.facts to use stdout.
  166964. .INDENT 2.0
  166965. .INDENT 3.5
  166966. .INDENT 0.0
  166967. .IP \(bu 2
  166968. 3d5e69600b address lint issues raised by @isbm
  166969. .IP \(bu 2
  166970. a9866c7a03 fix parallel mode py3 compatibility
  166971. .IP \(bu 2
  166972. 6d7730864a removing prereq from test orch
  166973. .IP \(bu 2
  166974. 6c8a25778f add integration test to runners/test_state to exercise parallel
  166975. .IP \(bu 2
  166976. 2c86f16b39 cherry\-pick cdata KeyError prevention from \fI\%#39832\fP
  166977. .IP \(bu 2
  166978. 26a96e8933 record start/stop duration for parallel processes separately
  166979. .IP \(bu 2
  166980. e4844bdf2b revisit previous join() behavior in check_requisites
  166981. .IP \(bu 2
  166982. f00a359cdf join() parallel process instead of a recursive sleep
  166983. .IP \(bu 2
  166984. 6e7007a4dc add parallel support for orchestrations
  166985. .UNINDENT
  166986. .UNINDENT
  166987. .UNINDENT
  166988. .UNINDENT
  166989. .UNINDENT
  166990. .UNINDENT
  166991. .IP \(bu 2
  166992. \fBPR\fP \fI\%#47021\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.modules.test_state_jinja_filters.StateModuleJinjaFiltersTest.test_path_which
  166993. @ \fI2018\-04\-12 13:12:39 UTC\fP
  166994. .INDENT 2.0
  166995. .IP \(bu 2
  166996. d3be828696 Merge pull request \fI\%#47021\fP from garethgreenaway/920_state_module_jinja_filters_test_test_path_which
  166997. .IP \(bu 2
  166998. 2ccf2c5fe0 Fixing test_path_which to check that the filter is available rather than results.
  166999. .UNINDENT
  167000. .IP \(bu 2
  167001. \fBPR\fP \fI\%#47022\fP: (\fI\%corywright\fP) Add auth.file module to auth documentation page
  167002. @ \fI2018\-04\-11 21:11:10 UTC\fP
  167003. .INDENT 2.0
  167004. .IP \(bu 2
  167005. 66e8445b82 Merge pull request \fI\%#47022\fP from corywright/add\-auth\-file\-module\-to\-docs
  167006. .IP \(bu 2
  167007. bd0918fc40 Add auth.file module to auth documentation page
  167008. .UNINDENT
  167009. .IP \(bu 2
  167010. \fBPR\fP \fI\%#45774\fP: (\fI\%twangboy\fP) Fix __virtual__ issue in mac_system.py
  167011. @ \fI2018\-04\-11 14:26:13 UTC\fP
  167012. .INDENT 2.0
  167013. .IP \(bu 2
  167014. 12ecfdee93 Merge pull request \fI\%#45774\fP from twangboy/mac_add_service_util
  167015. .IP \(bu 2
  167016. 5796696617 Fix tests for Py3
  167017. .IP \(bu 2
  167018. 7b40218790 Fix lint, remove sentence from docstring
  167019. .IP \(bu 2
  167020. 781880f0fc Add _available_services function for testing
  167021. .IP \(bu 2
  167022. 6080633613 Add assert_called_with
  167023. .IP \(bu 2
  167024. 1bf70b2033 Add more tests for available_services
  167025. .IP \(bu 2
  167026. b429fc3e74 Add tests for mac_utils
  167027. .IP \(bu 2
  167028. b5f67130cc Used *args and **kwargs
  167029. .IP \(bu 2
  167030. ed061617a2 Fix unicode_literal issue in mac_assistive
  167031. .IP \(bu 2
  167032. 82e17e5fc8 Fix args/kwargs
  167033. .IP \(bu 2
  167034. 455146500a Move some functions into mac_utils
  167035. .IP \(bu 2
  167036. 125586264b Add utilsmac_service.py
  167037. .UNINDENT
  167038. .IP \(bu 2
  167039. \fBISSUE\fP \fI\%#46953\fP: (\fI\%cskowronnek\fP) salt\-cloud azurearm [ERROR ] There was a profile error: Parameter \(aqsubscription_id\(aq must be str. (refs: \fI\%#47012\fP)
  167040. .IP \(bu 2
  167041. \fBPR\fP \fI\%#47012\fP: (\fI\%terminalmage\fP) Azure: ensure subscription_id is a str type
  167042. @ \fI2018\-04\-11 13:57:08 UTC\fP
  167043. .INDENT 2.0
  167044. .IP \(bu 2
  167045. 79347f108a Merge pull request \fI\%#47012\fP from terminalmage/issue46953
  167046. .IP \(bu 2
  167047. 5192622a32 Azure: ensure subscription_id is a str type
  167048. .UNINDENT
  167049. .IP \(bu 2
  167050. \fBPR\fP \fI\%#46526\fP: (\fI\%Ch3LL\fP) Add tests for new source_* minion options
  167051. @ \fI2018\-04\-10 19:56:45 UTC\fP
  167052. .INDENT 2.0
  167053. .IP \(bu 2
  167054. 6503bf8dfa Merge pull request \fI\%#46526\fP from Ch3LL/ip_conf
  167055. .IP \(bu 2
  167056. c01180ff47 Patch ZMQ versions for master_uri test
  167057. .IP \(bu 2
  167058. da38f332a5 Change comment and salt.utils.network import
  167059. .IP \(bu 2
  167060. e972ebdf1a Add for new source_* minion options
  167061. .UNINDENT
  167062. .IP \(bu 2
  167063. \fBPR\fP \fI\%#46993\fP: (\fI\%L4rS6\fP) Fix: tuple instead of string
  167064. @ \fI2018\-04\-10 17:07:59 UTC\fP
  167065. .INDENT 2.0
  167066. .IP \(bu 2
  167067. 03907d3fce Merge pull request \fI\%#46993\fP from L4rS6/fix\-broken\-keystone\-auth/2018.3
  167068. .IP \(bu 2
  167069. e33ba1b3d5 Fix: tuple instead of string
  167070. .UNINDENT
  167071. .IP \(bu 2
  167072. \fBPR\fP \fI\%#46990\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167073. @ \fI2018\-04\-10 17:07:33 UTC\fP
  167074. .INDENT 2.0
  167075. .IP \(bu 2
  167076. ffaee26540 Merge pull request \fI\%#46990\fP from rallytime/merge\-2018.3
  167077. .IP \(bu 2
  167078. ccc5bad2df Merge branch \(aq2017.7\(aq into merge\-2018.3
  167079. .INDENT 2.0
  167080. .IP \(bu 2
  167081. ba5421d988 Merge pull request \fI\%#46991\fP from gtmanfred/windows
  167082. .INDENT 2.0
  167083. .IP \(bu 2
  167084. 98588c1dc5 use saltstack salt\-jenkins
  167085. .UNINDENT
  167086. .UNINDENT
  167087. .IP \(bu 2
  167088. 2f1cf3e511 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167089. .INDENT 2.0
  167090. .IP \(bu 2
  167091. 00c4067585 Merge pull request \fI\%#46975\fP from gtmanfred/windows
  167092. .INDENT 2.0
  167093. .IP \(bu 2
  167094. 1f69c0d7f8 make sure windows outputs xml junit files
  167095. .IP \(bu 2
  167096. 4a2ec1bbb3 support new versions of winrm\-fs
  167097. .IP \(bu 2
  167098. b9efec8526 remove libnacl on windows
  167099. .IP \(bu 2
  167100. 2edd5eaf9e fix path
  167101. .IP \(bu 2
  167102. b03e272e44 windows work
  167103. .UNINDENT
  167104. .IP \(bu 2
  167105. 3cf2353e41 Merge pull request \fI\%#46945\fP from vutny/doc\-faq\-fix\-jinja
  167106. .INDENT 2.0
  167107. .IP \(bu 2
  167108. bfdf54e61d [DOC] Fix Jinja block in FAQ page
  167109. .UNINDENT
  167110. .IP \(bu 2
  167111. fc2f728665 Merge pull request \fI\%#46925\fP from terminalmage/fix\-file.patch\-docstring
  167112. .INDENT 2.0
  167113. .IP \(bu 2
  167114. 97695657f0 Remove reference to directory support in file.patch state
  167115. .UNINDENT
  167116. .IP \(bu 2
  167117. eef6c518e1 Merge pull request \fI\%#46900\fP from rallytime/bp\-46801
  167118. .INDENT 2.0
  167119. .IP \(bu 2
  167120. 6a41e8b457 rename jenkins to jenkinsmod
  167121. .UNINDENT
  167122. .IP \(bu 2
  167123. 71839b0303 Merge pull request \fI\%#46899\fP from rallytime/bp\-45116
  167124. .INDENT 2.0
  167125. .IP \(bu 2
  167126. b92f908da4 fix adding parameters to http.query from sdb yaml
  167127. .UNINDENT
  167128. .UNINDENT
  167129. .UNINDENT
  167130. .IP \(bu 2
  167131. \fBPR\fP \fI\%#46339\fP: (\fI\%DmitryKuzmenko\fP) SSH State test failures
  167132. @ \fI2018\-04\-10 17:06:51 UTC\fP
  167133. .INDENT 2.0
  167134. .IP \(bu 2
  167135. a34b92ae82 Merge pull request \fI\%#46339\fP from DSRCorporation/bugs/ssh_state_test_failures
  167136. .IP \(bu 2
  167137. bd98c49dc7 Merge branch \(aq2018.3\(aq into bugs/ssh_state_test_failures
  167138. .IP \(bu 2
  167139. 6fdc458a7f Increase timeout for run_run in ShellCase
  167140. .IP \(bu 2
  167141. 8e60cccdfb Give background task more chance to start.
  167142. .IP \(bu 2
  167143. e0b6878fac One more useful assert for better test results.
  167144. .IP \(bu 2
  167145. 92a6c43c73 More logging and assertion fixes. Extended ssh ops timeout.
  167146. .IP \(bu 2
  167147. 6ebdd17ac4 Advanced logging in the failing SSH State tests.
  167148. .UNINDENT
  167149. .IP \(bu 2
  167150. \fBPR\fP \fI\%#46989\fP: (\fI\%Ch3LL\fP) Fix redis cache log debug line
  167151. @ \fI2018\-04\-10 16:35:12 UTC\fP
  167152. .INDENT 2.0
  167153. .IP \(bu 2
  167154. 9924100c44 Merge pull request \fI\%#46989\fP from Ch3LL/redis_log
  167155. .IP \(bu 2
  167156. 6160bc06c6 Fix redis cache log debug line
  167157. .UNINDENT
  167158. .IP \(bu 2
  167159. \fBISSUE\fP \fI\%#46834\fP: (\fI\%oeuftete\fP) strftime filter not found in 2018.3.0 (refs: \fI\%#46848\fP)
  167160. .IP \(bu 2
  167161. \fBISSUE\fP \fI\%#46668\fP: (\fI\%anlutro\fP) Jinja2 filter strftime stopped working in salt\-ssh 2018.3 (refs: \fI\%#46848\fP, \fI\%#46744\fP)
  167162. .IP \(bu 2
  167163. \fBPR\fP \fI\%#46848\fP: (\fI\%garethgreenaway\fP) [2018.8] salt\-ssh jinja filters tests
  167164. @ \fI2018\-04\-10 16:19:51 UTC\fP
  167165. .INDENT 2.0
  167166. .IP \(bu 2
  167167. c6431936cb Merge pull request \fI\%#46848\fP from garethgreenaway/testing_jinja_filters_avaiable_via_salt_ssh
  167168. .IP \(bu 2
  167169. 5fcda3eff8 Merge branch \(aq2018.3\(aq into testing_jinja_filters_avaiable_via_salt_ssh
  167170. .IP \(bu 2
  167171. 0adfee9b11 Updating a couple tests. Fixing check_whitelist_blacklist to work with PY3 when non\-iterables are passed. Adding warning about lst_avg results being wrong and future updates in Neon.
  167172. .IP \(bu 2
  167173. f3f42146ca Removing expected from strftime and hashsum tests since the results are always different and we are only concerned about the filter being available.
  167174. .IP \(bu 2
  167175. 860234c045 Fixing lint.
  167176. .IP \(bu 2
  167177. 0891c6b580 fixing docstring
  167178. .IP \(bu 2
  167179. c8945e4b2e cleaning up some imports.
  167180. .IP \(bu 2
  167181. 0599759e5b cleaning up some test doc strings.
  167182. .IP \(bu 2
  167183. dceda5eb88 Moving all jinja filter tests into support/jinja_filters.py. Updaitng integration/ssh/test_jinja_filters.py to use those tests. Adding integration/modules/test_state_jinja_filters.py to also use the common jinja filter tests.
  167184. .IP \(bu 2
  167185. 07d7e3ca01 Adding a new integration test and corresponding state files to test availabilty of jinja filters when using salt\-ssh.
  167186. .UNINDENT
  167187. .IP \(bu 2
  167188. \fBISSUE\fP \fI\%#46880\fP: (\fI\%liquidgecka\fP) rabbitmq_policy broken in 2018.3.0 (refs: \fI\%#46973\fP)
  167189. .IP \(bu 2
  167190. \fBPR\fP \fI\%#46973\fP: (\fI\%rallytime\fP) New "apply_to" kwarg in rabbitmq module should be added at the end
  167191. @ \fI2018\-04\-10 14:42:32 UTC\fP
  167192. .INDENT 2.0
  167193. .IP \(bu 2
  167194. \fBPR\fP \fI\%#41233\fP: (\fI\%dnABic\fP) added parameter apply_to for rabbitmq policy (refs: \fI\%#46973\fP)
  167195. .IP \(bu 2
  167196. fbbcb7584c Merge pull request \fI\%#46973\fP from rallytime/fix\-46880
  167197. .IP \(bu 2
  167198. 8ce21f982c New "apply_to" kwarg in rabbitmq module should be added at the end
  167199. .UNINDENT
  167200. .IP \(bu 2
  167201. \fBISSUE\fP \fI\%#46934\fP: (\fI\%d601\fP) GPG encrypted binary data in pillars breaks in 2018.3.0 (refs: \fI\%#46966\fP)
  167202. .IP \(bu 2
  167203. \fBPR\fP \fI\%#46966\fP: (\fI\%terminalmage\fP) Fix traceback when attempting to decode binary data to unicode
  167204. @ \fI2018\-04\-10 14:08:35 UTC\fP
  167205. .INDENT 2.0
  167206. .IP \(bu 2
  167207. 58f59cfbff Merge pull request \fI\%#46966\fP from terminalmage/issue46934
  167208. .IP \(bu 2
  167209. df43ffdb8f salt.payload.Serial: fix traceback when unpacking binary blob
  167210. .IP \(bu 2
  167211. 40a49358c9 gpg renderer: fix tranceback when decrypted ciphertext contains binary data
  167212. .IP \(bu 2
  167213. 17a88f6a71 Include exc_info in pillar render errors to aid in troubleshooting
  167214. .UNINDENT
  167215. .IP \(bu 2
  167216. \fBISSUE\fP \fI\%#46881\fP: (\fI\%SynPrime\fP) Cron.file \- source file not found (refs: \fI\%#46944\fP)
  167217. .IP \(bu 2
  167218. \fBPR\fP \fI\%#46944\fP: (\fI\%garethgreenaway\fP) [2018.3] cron.file with salt source URL
  167219. @ \fI2018\-04\-10 13:34:03 UTC\fP
  167220. .INDENT 2.0
  167221. .IP \(bu 2
  167222. e33e792e2a Merge pull request \fI\%#46944\fP from garethgreenaway/46881_Cron_file_source_file_not_found
  167223. .IP \(bu 2
  167224. 438aafeb03 Adding kwargs to calls into file module functions
  167225. .IP \(bu 2
  167226. 14d12b1d6b Remove unused imports. Gating tests so they do not run on Windows
  167227. .IP \(bu 2
  167228. 623d96f21a Adding dummy cron file for integration/states/test_cron
  167229. .IP \(bu 2
  167230. c8e01871d6 Adding an integration test to test cron.file.
  167231. .IP \(bu 2
  167232. ddc55d8f9b Fixing bug that made cron.file unable to use a file via a Salt URL.
  167233. .UNINDENT
  167234. .IP \(bu 2
  167235. \fBPR\fP \fI\%#46937\fP: (\fI\%gtmanfred\fP) enable_ssh_minions does not work with subset yet
  167236. @ \fI2018\-04\-07 02:54:56 UTC\fP
  167237. .INDENT 2.0
  167238. .IP \(bu 2
  167239. 08e8782f76 Merge pull request \fI\%#46937\fP from gtmanfred/2018.3
  167240. .IP \(bu 2
  167241. 3fb75e903c enable_ssh_minions does not work with subset yet
  167242. .UNINDENT
  167243. .IP \(bu 2
  167244. \fBPR\fP \fI\%#46936\fP: (\fI\%gtmanfred\fP) don\(aqt copy __pycache__ or .pyc files for kitchen
  167245. @ \fI2018\-04\-06 19:15:46 UTC\fP
  167246. .INDENT 2.0
  167247. .IP \(bu 2
  167248. ac4e7cd73f Merge pull request \fI\%#46936\fP from gtmanfred/2018.3
  167249. .IP \(bu 2
  167250. 91474878fa don\(aqt copy __pycache__ or .pyc files for kitchen
  167251. .UNINDENT
  167252. .IP \(bu 2
  167253. \fBISSUE\fP \fI\%#46659\fP: (\fI\%stamak\fP) [salt\-cloud] [new oxygen openstack driver ] no public_ips and floating_ips in salt\-cloud output (refs: \fI\%#46912\fP)
  167254. .IP \(bu 2
  167255. \fBPR\fP \fI\%#46912\fP: (\fI\%gtmanfred\fP) pull latest vm data after building for openstack shade driver
  167256. @ \fI2018\-04\-06 13:46:42 UTC\fP
  167257. .INDENT 2.0
  167258. .IP \(bu 2
  167259. 8105fd9715 Merge pull request \fI\%#46912\fP from gtmanfred/openstack
  167260. .IP \(bu 2
  167261. 5ef538f8ad pull latest vm data after building for openstack shade driver
  167262. .UNINDENT
  167263. .IP \(bu 2
  167264. \fBPR\fP \fI\%#46908\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167265. @ \fI2018\-04\-05 21:27:03 UTC\fP
  167266. .INDENT 2.0
  167267. .IP \(bu 2
  167268. 735ea12960 Merge pull request \fI\%#46908\fP from rallytime/merge\-2018.3
  167269. .IP \(bu 2
  167270. 102e966512 Remove redundant section in log setup
  167271. .IP \(bu 2
  167272. 177c686b52 Update old utils paths to new utils paths
  167273. .IP \(bu 2
  167274. 0a297e7319 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167275. .INDENT 2.0
  167276. .IP \(bu 2
  167277. d0f5b43753 Merge pull request \fI\%#44926\fP from frogunder/whitelisted_acl
  167278. .INDENT 2.0
  167279. .IP \(bu 2
  167280. 18e460fc30 Merge branch \(aq2017.7\(aq into whitelisted_acl
  167281. .IP \(bu 2
  167282. 1ad4d7d988 fix assert errors
  167283. .IP \(bu 2
  167284. e6a56016df update test
  167285. .IP \(bu 2
  167286. 19a2244cb7 whitelist_acl_test
  167287. .UNINDENT
  167288. .IP \(bu 2
  167289. 7d822f9cec Merge pull request \fI\%#46464\fP from gtmanfred/orchestration
  167290. .INDENT 2.0
  167291. .IP \(bu 2
  167292. 637cdc6b7b fix pylint
  167293. .IP \(bu 2
  167294. 0151013ddb document \fIcli\fP option for cmd_subset
  167295. .IP \(bu 2
  167296. 4a3ed6607d add test for subset in orchestration
  167297. .IP \(bu 2
  167298. 3112359dd6 fix salt subset in orchestrator
  167299. .UNINDENT
  167300. .IP \(bu 2
  167301. 805ed1c964 Merge pull request \fI\%#46879\fP from dwoz/cloudtestfix
  167302. .INDENT 2.0
  167303. .IP \(bu 2
  167304. dc54fc53c3 Fix multiple typos causing tests to fail
  167305. .UNINDENT
  167306. .IP \(bu 2
  167307. f70f6de282 Merge pull request \fI\%#46647\fP from twangboy/win_fix_test_grains
  167308. .INDENT 2.0
  167309. .IP \(bu 2
  167310. c179388b0e Fix the tear down function in integration.modules.test_grains.GrainsAppendTestCase
  167311. .UNINDENT
  167312. .IP \(bu 2
  167313. 91c078ce12 Merge pull request \fI\%#46756\fP from nages13/bugfix\-grain\-virtual_subtype
  167314. .INDENT 2.0
  167315. .IP \(bu 2
  167316. 781f5030a4 Merge branch \(aqbugfix\-grain\-virtual_subtype\(aq of \fI\%https://github.com/nages13/salt\fP into bugfix\-grain\-virtual_subtype
  167317. .INDENT 2.0
  167318. .IP \(bu 2
  167319. cd1ac4b7f9 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167320. .IP \(bu 2
  167321. 0ace76c0e7 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167322. .IP \(bu 2
  167323. 9eb6f5c0d0 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167324. .IP \(bu 2
  167325. 73d6d9d365 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167326. .IP \(bu 2
  167327. a4a17eba6a Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167328. .IP \(bu 2
  167329. bf5034dbdb Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167330. .IP \(bu 2
  167331. 8d12770951 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  167332. .UNINDENT
  167333. .IP \(bu 2
  167334. 7e704c0e81 Moved down container check code below hypervisors to validate containers type running in virtual environment. Fixes \fI\%#46754\fP & \fI\%#43405\fP
  167335. .IP \(bu 2
  167336. 710f74c4a6 fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  167337. .UNINDENT
  167338. .IP \(bu 2
  167339. 058bbed221 Merge pull request \fI\%#46799\fP from garethgreenaway/46762_prereq_shenanigans_tests
  167340. .INDENT 2.0
  167341. .IP \(bu 2
  167342. 13875e78cf Fixing documention string for test.
  167343. .IP \(bu 2
  167344. 3d288c44d4 Fixing test documentation
  167345. .IP \(bu 2
  167346. 6cff02ef6a Adding tests for \fI\%#46788\fP
  167347. .UNINDENT
  167348. .IP \(bu 2
  167349. d9770bf3f8 Merge pull request \fI\%#46867\fP from terminalmage/unicode\-logging\-normalization
  167350. .INDENT 2.0
  167351. .IP \(bu 2
  167352. 7652688e83 Backport string arg normalization to 2017.7 branch
  167353. .UNINDENT
  167354. .IP \(bu 2
  167355. 9eb98b1f6e Merge pull request \fI\%#46770\fP from twangboy/fix_46433
  167356. .INDENT 2.0
  167357. .IP \(bu 2
  167358. 89af0a6222 Merge branch \(aq2017.7\(aq into fix_46433
  167359. .IP \(bu 2
  167360. 67b4697578 Remove unused import (ling)
  167361. .IP \(bu 2
  167362. 9302fa5ab0 Clean up code comments
  167363. .IP \(bu 2
  167364. b383b9b330 Change the order of SID Lookup
  167365. .UNINDENT
  167366. .IP \(bu 2
  167367. 9c776cffb7 Merge pull request \fI\%#46839\fP from gtmanfred/tupletarget
  167368. .INDENT 2.0
  167369. .IP \(bu 2
  167370. 3b7208ce27 match tuple for targets as well
  167371. .UNINDENT
  167372. .IP \(bu 2
  167373. 7db251dc11 Merge pull request \fI\%#46845\fP from rallytime/bp\-46817
  167374. .INDENT 2.0
  167375. .IP \(bu 2
  167376. 36a0f6d8ca address filehandle/event leak in async run_job invocations
  167377. .UNINDENT
  167378. .IP \(bu 2
  167379. e3d17ab7bc Merge pull request \fI\%#46847\fP from dwoz/missing\-strdup
  167380. .INDENT 2.0
  167381. .IP \(bu 2
  167382. 55845f4846 strdup from libc is not available on windows
  167383. .UNINDENT
  167384. .IP \(bu 2
  167385. f2dd79f9c4 Merge pull request \fI\%#46776\fP from gtmanfred/2017.7
  167386. .INDENT 2.0
  167387. .IP \(bu 2
  167388. edc1059ee0 fix shrinking list in for loop bug
  167389. .UNINDENT
  167390. .UNINDENT
  167391. .UNINDENT
  167392. .IP \(bu 2
  167393. \fBPR\fP \fI\%#46853\fP: (\fI\%terminalmage\fP) Add back date_format filter
  167394. @ \fI2018\-04\-05 20:33:50 UTC\fP
  167395. .INDENT 2.0
  167396. .IP \(bu 2
  167397. 9a47afc33b Merge pull request \fI\%#46853\fP from terminalmage/date_format_filter
  167398. .IP \(bu 2
  167399. 266d13a665 Add back date_format filter
  167400. .UNINDENT
  167401. .IP \(bu 2
  167402. \fBPR\fP \fI\%#46882\fP: (\fI\%jasperla\fP) Backport \fI\%#46280\fP \fI\%#46849\fP \fI\%#46852\fP to 2018.3
  167403. @ \fI2018\-04\-05 14:29:12 UTC\fP
  167404. .INDENT 2.0
  167405. .IP \(bu 2
  167406. \fBPR\fP \fI\%#46852\fP: (\fI\%jasperla\fP) fix creating a nic tag on a link with double 0 in the MAC (refs: \fI\%#46882\fP)
  167407. .IP \(bu 2
  167408. \fBPR\fP \fI\%#46849\fP: (\fI\%jasperla\fP) Unbreak creating etherstubs on SmartOS (refs: \fI\%#46882\fP)
  167409. .IP \(bu 2
  167410. \fBPR\fP \fI\%#46280\fP: (\fI\%jasperla\fP) Remove unneeded checks for binaries in SmartOS modules (refs: \fI\%#46882\fP)
  167411. .IP \(bu 2
  167412. a064a3e695 Merge pull request \fI\%#46882\fP from jasperla/smartos/backports
  167413. .IP \(bu 2
  167414. 47a66975ff fix creating a nic tag on a link with double 0 in the MAC
  167415. .IP \(bu 2
  167416. a3cb0e576e Unbreak creating etherstubs on SmartOS
  167417. .IP \(bu 2
  167418. e703254990 Remove unneeded checks for binaries in SmartOS modules
  167419. .UNINDENT
  167420. .IP \(bu 2
  167421. \fBPR\fP \fI\%#46873\fP: (\fI\%terminalmage\fP) Attempt UTF\-8 first when decoding/encoding
  167422. @ \fI2018\-04\-05 14:16:28 UTC\fP
  167423. .INDENT 2.0
  167424. .IP \(bu 2
  167425. 4e5e291c99 Merge pull request \fI\%#46873\fP from terminalmage/utf8\-first
  167426. .IP \(bu 2
  167427. cf28eb74aa Don\(aqt log command when output_loglevel == \(aqquiet\(aq
  167428. .IP \(bu 2
  167429. f59cee28db Remove hacky workarounds to get encode/decode tests to pass on Windows
  167430. .IP \(bu 2
  167431. 76e5d81bb4 Remove hacky workaround to get Windows to decode deserialized data properly
  167432. .IP \(bu 2
  167433. 0b5729e58a Remove hacky workaround to get git state/exec module to work properly on Windows
  167434. .IP \(bu 2
  167435. 22ff48518f Attempt UTF\-8 first when decoding/encoding
  167436. .UNINDENT
  167437. .IP \(bu 2
  167438. \fBISSUE\fP \fI\%#43499\fP: (\fI\%tyeapple\fP) zmq setsockopt need to adapt python3 (refs: \fI\%#46874\fP)
  167439. .IP \(bu 2
  167440. \fBPR\fP \fI\%#46878\fP: (\fI\%terminalmage\fP) Backport \fI\%#46874\fP to 2018.3
  167441. @ \fI2018\-04\-05 13:26:04 UTC\fP
  167442. .INDENT 2.0
  167443. .IP \(bu 2
  167444. \fBPR\fP \fI\%#46874\fP: (\fI\%johnj\fP) Use bytestrings for PY3 compatibility when running setsockopt for zmq.SUBSCRIBE (refs: \fI\%#46878\fP)
  167445. .IP \(bu 2
  167446. 1518762465 Merge pull request \fI\%#46878\fP from terminalmage/bp\-46874
  167447. .IP \(bu 2
  167448. d9511d04d4 \fI\%#43499\fP, zmq setsockopt need to adapt python3
  167449. .UNINDENT
  167450. .IP \(bu 2
  167451. \fBISSUE\fP \fI\%#46862\fP: (\fI\%kivoli\fP) Setting locale.system fails in 2018.3 (refs: \fI\%#47280\fP, \fI\%#46869\fP)
  167452. .IP \(bu 2
  167453. \fBPR\fP \fI\%#46869\fP: (\fI\%gtmanfred\fP) Always return dictionary for _localectl_status
  167454. @ \fI2018\-04\-05 13:25:14 UTC\fP
  167455. .INDENT 2.0
  167456. .IP \(bu 2
  167457. 67894e3ee9 Merge pull request \fI\%#46869\fP from gtmanfred/2018.3
  167458. .IP \(bu 2
  167459. 1496e985f7 fix pylint
  167460. .IP \(bu 2
  167461. 75425dfd20 fix tests for localemod
  167462. .IP \(bu 2
  167463. 2d7c7b5e33 Always return dictionary for _localectl_status
  167464. .UNINDENT
  167465. .IP \(bu 2
  167466. \fBPR\fP \fI\%#46870\fP: (\fI\%mirceaulinic\fP) Correct the documentation for two new proxy modules
  167467. @ \fI2018\-04\-04 21:48:41 UTC\fP
  167468. .INDENT 2.0
  167469. .IP \(bu 2
  167470. 58c8ff18e2 Merge pull request \fI\%#46870\fP from cloudflare/proxy\-doc
  167471. .IP \(bu 2
  167472. f4b6184476 Corect and add the cimc proxy module to autodoc
  167473. .IP \(bu 2
  167474. a99bc202b9 Correct & add Panos to autodoc
  167475. .UNINDENT
  167476. .IP \(bu 2
  167477. \fBPR\fP \fI\%#46729\fP: (\fI\%terminalmage\fP) Performance improvement/error catching in expr_match
  167478. @ \fI2018\-04\-04 20:25:57 UTC\fP
  167479. .INDENT 2.0
  167480. .IP \(bu 2
  167481. d7e4b9d755 Merge pull request \fI\%#46729\fP from terminalmage/expr_match
  167482. .IP \(bu 2
  167483. 70cfafe299 Add test case
  167484. .IP \(bu 2
  167485. 250039b11f Restore original variable name
  167486. .IP \(bu 2
  167487. ae0f112a49 Log an exception when non\-string val/expr passed to expr_match
  167488. .IP \(bu 2
  167489. dac42a672b Performance improvement/error catching in expr_match
  167490. .UNINDENT
  167491. .IP \(bu 2
  167492. \fBPR\fP \fI\%#46872\fP: (\fI\%terminalmage\fP) Backport \fI\%#46863\fP to 2018.3
  167493. @ \fI2018\-04\-04 19:04:40 UTC\fP
  167494. .INDENT 2.0
  167495. .IP \(bu 2
  167496. \fBPR\fP \fI\%#46863\fP: (\fI\%TamCore\fP) fixed top function which was broken since commit 002aa88a97e (refs: \fI\%#46872\fP)
  167497. .IP \(bu 2
  167498. e0b383afb5 Merge pull request \fI\%#46872\fP from terminalmage/bp\-46863
  167499. .IP \(bu 2
  167500. be284e5b99 Add skipIf when older mock present
  167501. .IP \(bu 2
  167502. db8faaee56 Add unit tests for ext_nodes master_tops module
  167503. .IP \(bu 2
  167504. ee437f7cbf fixed top function which was broken since commit 002aa88a97e
  167505. .UNINDENT
  167506. .IP \(bu 2
  167507. \fBPR\fP \fI\%#46850\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167508. @ \fI2018\-04\-04 18:07:44 UTC\fP
  167509. .INDENT 2.0
  167510. .IP \(bu 2
  167511. 5c76d98d1a Merge pull request \fI\%#46850\fP from rallytime/merge\-2018.3
  167512. .IP \(bu 2
  167513. a0fcd5c053 Fix test_cp failure: forgot to add tgt to test when @with_tempfile is present
  167514. .IP \(bu 2
  167515. d0202cab72 Resolve bad merge: there should only be one test_get_file_from_env_in_url test
  167516. .IP \(bu 2
  167517. e28f71b418 Lint: use full salt utils path
  167518. .IP \(bu 2
  167519. 4ad50bbdee Update old utils paths to new paths
  167520. .IP \(bu 2
  167521. 893196d3e6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167522. .INDENT 2.0
  167523. .IP \(bu 2
  167524. 1941426218 Merge pull request \fI\%#46838\fP from gtmanfred/npm
  167525. .INDENT 2.0
  167526. .IP \(bu 2
  167527. bff61dd291 use http registry for npm
  167528. .UNINDENT
  167529. .IP \(bu 2
  167530. e544254e7b Merge pull request \fI\%#46823\fP from rallytime/fix\-42312
  167531. .INDENT 2.0
  167532. .IP \(bu 2
  167533. dafa820f93 Improve __virtual__ checks in sensehat module
  167534. .UNINDENT
  167535. .IP \(bu 2
  167536. 37f6d2de35 Merge pull request \fI\%#46641\fP from skizunov/develop3
  167537. .INDENT 2.0
  167538. .IP \(bu 2
  167539. c624aa4827 Make LazyLoader thread safe
  167540. .UNINDENT
  167541. .IP \(bu 2
  167542. 989508b100 Merge pull request \fI\%#46837\fP from rallytime/merge\-2017.7
  167543. .INDENT 2.0
  167544. .IP \(bu 2
  167545. 8522c1d634 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  167546. .IP \(bu 2
  167547. 3e844ed1df Merge pull request \fI\%#46739\fP from rallytime/2016.11_update_version_doc
  167548. .INDENT 2.0
  167549. .IP \(bu 2
  167550. 4d9fc5cc0f Update release versions for the 2016.11 branch
  167551. .UNINDENT
  167552. .UNINDENT
  167553. .IP \(bu 2
  167554. 307e7f35f9 Merge pull request \fI\%#46740\fP from rallytime/2017.7_update_version_doc
  167555. .INDENT 2.0
  167556. .IP \(bu 2
  167557. 7edf98d224 Update 2018.3.0 information and move branch from "latest" to "previous"
  167558. .IP \(bu 2
  167559. 5336e866ac Update release versions for the 2017.7 branch
  167560. .UNINDENT
  167561. .IP \(bu 2
  167562. ebf5dd276f Merge pull request \fI\%#46783\fP from twangboy/fix_46680
  167563. .INDENT 2.0
  167564. .IP \(bu 2
  167565. da5ce25ef3 Fix unit tests on Linux
  167566. .IP \(bu 2
  167567. b7f4f377cd Add space I removed
  167568. .IP \(bu 2
  167569. f1c68a09b5 Fix network.managed test=True on Windows
  167570. .UNINDENT
  167571. .IP \(bu 2
  167572. f652f25cc1 Merge pull request \fI\%#46821\fP from rallytime/fix\-mantest\-failures
  167573. .INDENT 2.0
  167574. .IP \(bu 2
  167575. 209a8029c3 Fix the new test failures from the mantest changes
  167576. .UNINDENT
  167577. .IP \(bu 2
  167578. c460f62081 Merge pull request \fI\%#46800\fP from lomeroe/2017_7\-46627
  167579. .INDENT 2.0
  167580. .IP \(bu 2
  167581. 2bee383e9d correct create list item value names if the valuePrefix attribute does not exist on the list item, the value is the value name, other wise, the valuename a number with the valuePrefix prepended to it
  167582. .UNINDENT
  167583. .IP \(bu 2
  167584. df26f2641e Merge pull request \fI\%#46675\fP from dwoz/inspectlib\-tests
  167585. .INDENT 2.0
  167586. .IP \(bu 2
  167587. d39f4852d8 Handle non\-zero status exception
  167588. .IP \(bu 2
  167589. 83c005802b Handle cases where git can not be found
  167590. .IP \(bu 2
  167591. 628b87d5c4 Skip test when git symlinks are not configured
  167592. .UNINDENT
  167593. .IP \(bu 2
  167594. 4083e7c460 Merge pull request \fI\%#46815\fP from terminalmage/bp\-46809
  167595. .INDENT 2.0
  167596. .IP \(bu 2
  167597. 71d5601507 Fix sharedsecret authentication
  167598. .UNINDENT
  167599. .IP \(bu 2
  167600. 3bac9717f4 Merge pull request \fI\%#46769\fP from dwoz/wincloudtest
  167601. .INDENT 2.0
  167602. .IP \(bu 2
  167603. eabc234e5d Fix config override name
  167604. .IP \(bu 2
  167605. 5c22a0f88d Use aboslute imports
  167606. .IP \(bu 2
  167607. 810042710d Set default cloud test timeout back to 500 seconds
  167608. .IP \(bu 2
  167609. 5ac89ad307 Use winrm_verify_ssl option causing tests to pass
  167610. .IP \(bu 2
  167611. 71858a709c allow not verifying ssl winrm saltcloud
  167612. .IP \(bu 2
  167613. ba5f11476c Adding windows minion tests for salt cloud
  167614. .UNINDENT
  167615. .IP \(bu 2
  167616. f1be939763 Merge pull request \fI\%#46786\fP from twangboy/fix_46757
  167617. .INDENT 2.0
  167618. .IP \(bu 2
  167619. b0053250ff Remove int(), just return \-1
  167620. .IP \(bu 2
  167621. 7d56126d74 Fixes some lint
  167622. .IP \(bu 2
  167623. 49b3e937da Return int(\-1) when pidfile contains invalid data
  167624. .UNINDENT
  167625. .IP \(bu 2
  167626. 89bf24b15c Merge pull request \fI\%#46814\fP from terminalmage/bp\-46772
  167627. .INDENT 2.0
  167628. .IP \(bu 2
  167629. a9f26f2ab8 avoid breaking if AutoRemove is not found
  167630. .IP \(bu 2
  167631. 97779c965d fix container removal if auto_remove was enabled
  167632. .UNINDENT
  167633. .IP \(bu 2
  167634. 5ea4ffbdb6 Merge pull request \fI\%#46813\fP from terminalmage/event\-debug\-log
  167635. .INDENT 2.0
  167636. .IP \(bu 2
  167637. 5d6de3a2eb Get rid of confusing debug logging
  167638. .UNINDENT
  167639. .IP \(bu 2
  167640. e533b7182d Merge pull request \fI\%#46766\fP from twangboy/win_fix_test_git
  167641. .INDENT 2.0
  167642. .IP \(bu 2
  167643. 5afc66452c Remove unused/redundant imports
  167644. .IP \(bu 2
  167645. 88fd72c52c Use with_tempfile decorator where possible
  167646. .UNINDENT
  167647. .IP \(bu 2
  167648. 69d450db84 Merge pull request \fI\%#46778\fP from terminalmage/salt\-jenkins\-906
  167649. .INDENT 2.0
  167650. .IP \(bu 2
  167651. bbfd35d3ea Replace flaky SPM man test
  167652. .UNINDENT
  167653. .IP \(bu 2
  167654. c935ffb740 Merge pull request \fI\%#46788\fP from garethgreenaway/46762_prereq_shenanigans
  167655. .INDENT 2.0
  167656. .IP \(bu 2
  167657. fa7aed6424 Ensure failed tags are added to self.pre.
  167658. .UNINDENT
  167659. .IP \(bu 2
  167660. 395b7f8fdc Merge pull request \fI\%#46655\fP from dwoz/pyobjects\-46350
  167661. .INDENT 2.0
  167662. .IP \(bu 2
  167663. 5aabd442f2 Fix up import and docstring syntax
  167664. .IP \(bu 2
  167665. 62d64c9230 Fix missing import
  167666. .IP \(bu 2
  167667. 18b1730320 Skip test that requires pywin32 on *nix platforms
  167668. .IP \(bu 2
  167669. 45dce1a485 Add reg module to globals
  167670. .IP \(bu 2
  167671. 09f9322981 Fix pep8 wart
  167672. .IP \(bu 2
  167673. 73d06f664b Fix linter error
  167674. .IP \(bu 2
  167675. 009a8f56ea Fix up environ state tests for Windows
  167676. .IP \(bu 2
  167677. b4be10b8fc Fixing cleanUp method to restore environment
  167678. .UNINDENT
  167679. .IP \(bu 2
  167680. af45c49c42 Merge pull request \fI\%#46632\fP from dwoz/file\-recurse\-36802
  167681. .INDENT 2.0
  167682. .IP \(bu 2
  167683. 44db77ae79 Fix lint errors and typo
  167684. .IP \(bu 2
  167685. cb5619537f Only change what is essential for test fix
  167686. .IP \(bu 2
  167687. eb822f5a12 Fix file.recurse w/ clean=True \fI\%#36802\fP
  167688. .UNINDENT
  167689. .IP \(bu 2
  167690. 6e9f504ed1 Merge pull request \fI\%#46751\fP from folti/2017.7
  167691. .INDENT 2.0
  167692. .IP \(bu 2
  167693. 7058f10381 same top merging strategy works again
  167694. .UNINDENT
  167695. .IP \(bu 2
  167696. d3623e0815 Merge pull request \fI\%#46691\fP from Ch3LL/win_group_test
  167697. .INDENT 2.0
  167698. .IP \(bu 2
  167699. 7cda825e90 Add groupadd module integration tests for Windows
  167700. .UNINDENT
  167701. .IP \(bu 2
  167702. 14ab50d3f4 Merge pull request \fI\%#46696\fP from dwoz/win_test_client
  167703. .INDENT 2.0
  167704. .IP \(bu 2
  167705. ec4634fc06 Better explanation in doc strings
  167706. .IP \(bu 2
  167707. d9ae2abb34 Fix splling in docstring
  167708. .IP \(bu 2
  167709. b40efc5db8 Windows test client fixes
  167710. .UNINDENT
  167711. .UNINDENT
  167712. .UNINDENT
  167713. .IP \(bu 2
  167714. \fBPR\fP \fI\%#46851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46844\fP to 2018.3
  167715. @ \fI2018\-04\-04 18:04:59 UTC\fP
  167716. .INDENT 2.0
  167717. .IP \(bu 2
  167718. \fBPR\fP \fI\%#46844\fP: (\fI\%UtahDave\fP) Fix warning format in 2018.3.0 release notes (refs: \fI\%#46851\fP)
  167719. .IP \(bu 2
  167720. b808ba7049 Merge pull request \fI\%#46851\fP from rallytime/bp\-46844
  167721. .IP \(bu 2
  167722. ab2ccea1af Quick grammar fix in 2018.3.0 release notes
  167723. .IP \(bu 2
  167724. af7bad3c7f Fix warning format in 2018.3.0 release notes
  167725. .UNINDENT
  167726. .IP \(bu 2
  167727. \fBISSUE\fP \fI\%#46864\fP: (\fI\%femnad\fP) Attribute Error When Invoking Vault Module Method (refs: \fI\%#46865\fP)
  167728. .IP \(bu 2
  167729. \fBPR\fP \fI\%#46865\fP: (\fI\%femnad\fP) Fix Log Line for Vault Token Generation Debug Line
  167730. @ \fI2018\-04\-04 14:52:00 UTC\fP
  167731. .INDENT 2.0
  167732. .IP \(bu 2
  167733. ea56778e03 Merge pull request \fI\%#46865\fP from femnad/fix\-log\-in\-vault\-runner
  167734. .IP \(bu 2
  167735. 01a5b88e7b Fix Log Line for Vault Token Generation Debug Line
  167736. .UNINDENT
  167737. .IP \(bu 2
  167738. \fBPR\fP \fI\%#46836\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  167739. @ \fI2018\-04\-03 16:54:53 UTC\fP
  167740. .INDENT 2.0
  167741. .IP \(bu 2
  167742. a0e168ccee Merge pull request \fI\%#46836\fP from rallytime/merge\-2018.3
  167743. .IP \(bu 2
  167744. e75ba1f502 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  167745. .INDENT 2.0
  167746. .IP \(bu 2
  167747. 39235715e6 Merge pull request \fI\%#46792\fP from damon\-atkins/patch\-1
  167748. .IP \(bu 2
  167749. db5b9464e6 provided an example
  167750. .IP \(bu 2
  167751. 41e3e1e253 Update windows information in release notes
  167752. .IP \(bu 2
  167753. 99447fbf49 Added more windows information
  167754. .IP \(bu 2
  167755. d4241006f2 Update 2018.3.0.rst Windows Items, Group topics
  167756. .UNINDENT
  167757. .UNINDENT
  167758. .IP \(bu 2
  167759. \fBISSUE\fP \fI\%#46808\fP: (\fI\%ezh\fP) Sharedsecret authentication is broken (refs: \fI\%#46809\fP)
  167760. .IP \(bu 2
  167761. \fBPR\fP \fI\%#46809\fP: (\fI\%ezh\fP) Fix sharedsecret authentication (refs: \fI\%#46815\fP)
  167762. @ \fI2018\-04\-03 16:53:24 UTC\fP
  167763. .INDENT 2.0
  167764. .IP \(bu 2
  167765. 4a358217a0 Merge pull request \fI\%#46809\fP from ezh/2018.3\-sharedsecret
  167766. .IP \(bu 2
  167767. 20db8f03f7 Merge branch \(aq2018.3\(aq into 2018.3\-sharedsecret
  167768. .IP \(bu 2
  167769. 9df6d18ec7 Fix sharedsecret authentication
  167770. .UNINDENT
  167771. .IP \(bu 2
  167772. \fBPR\fP \fI\%#46820\fP: (\fI\%rallytime\fP) [2018.3] Update the latest release information for docs
  167773. @ \fI2018\-04\-03 14:36:31 UTC\fP
  167774. .INDENT 2.0
  167775. .IP \(bu 2
  167776. 1519d7d895 Merge pull request \fI\%#46820\fP from rallytime/2018.3_update_version_doc
  167777. .IP \(bu 2
  167778. 274f8ee0dd [2018.3] Update the latest release information for docs
  167779. .UNINDENT
  167780. .IP \(bu 2
  167781. \fBPR\fP \fI\%#46731\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46024\fP to 2018.3
  167782. @ \fI2018\-04\-02 19:00:42 UTC\fP
  167783. .INDENT 2.0
  167784. .IP \(bu 2
  167785. \fBPR\fP \fI\%#46024\fP: (\fI\%zmedico\fP) Trivial bug fixes for tagify and fire_args functions (refs: \fI\%#46731\fP)
  167786. .IP \(bu 2
  167787. 07f1141722 Merge pull request \fI\%#46731\fP from rallytime/bp\-46024
  167788. .IP \(bu 2
  167789. ee4ee5b619 fire_args: fix UnboundLocalError: local variable \(aqtag\(aq
  167790. .IP \(bu 2
  167791. 4ce2c21824 tagify: handle integer suffix list
  167792. .UNINDENT
  167793. .IP \(bu 2
  167794. \fBISSUE\fP \fI\%#46779\fP: (\fI\%anlutro\fP) salt\-ssh 2018.3 states with "runas" fail with "Environment could not be retrieved for User" (refs: \fI\%#46796\fP)
  167795. .IP \(bu 2
  167796. \fBPR\fP \fI\%#46796\fP: (\fI\%terminalmage\fP) Fix regression introduced in merge\-forward
  167797. @ \fI2018\-04\-02 18:10:22 UTC\fP
  167798. .INDENT 2.0
  167799. .IP \(bu 2
  167800. \fBPR\fP \fI\%#46503\fP: (\fI\%psyer\fP) Fixes stdout user environment corruption (refs: \fI\%#46796\fP)
  167801. .IP \(bu 2
  167802. 4f31c1062d Merge pull request \fI\%#46796\fP from terminalmage/issue46779
  167803. .IP \(bu 2
  167804. f8f9d045ac Add regression test
  167805. .IP \(bu 2
  167806. e0e4e19ba3 Include extra troubleshooting information
  167807. .IP \(bu 2
  167808. dcb0c67309 Fix regression introduced in merge\-forward
  167809. .UNINDENT
  167810. .IP \(bu 2
  167811. \fBPR\fP \fI\%#46690\fP: (\fI\%dincamihai\fP) Fix unicode handling in pkg.info_installed
  167812. @ \fI2018\-03\-29 14:10:48 UTC\fP
  167813. .INDENT 2.0
  167814. .IP \(bu 2
  167815. 4609a7dd85 Merge pull request \fI\%#46690\fP from dincamihai/2018.3
  167816. .IP \(bu 2
  167817. 980adf8253 Fix unicode handling in pkg.info_installed
  167818. .UNINDENT
  167819. .IP \(bu 2
  167820. \fBPR\fP \fI\%#46746\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  167821. @ \fI2018\-03\-28 21:13:07 UTC\fP
  167822. .INDENT 2.0
  167823. .IP \(bu 2
  167824. e5b3c8fa91 Merge pull request \fI\%#46746\fP from rallytime/merge\-2018.3
  167825. .IP \(bu 2
  167826. e8864b7b0b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167827. .INDENT 2.0
  167828. .IP \(bu 2
  167829. 1222bdbc00 Merge pull request \fI\%#46732\fP from rallytime/bp\-46032
  167830. .INDENT 2.0
  167831. .IP \(bu 2
  167832. bf0b962dc0 Workaroung python bug in traceback.format_exc()
  167833. .UNINDENT
  167834. .IP \(bu 2
  167835. 50fe1e9480 Merge pull request \fI\%#46749\fP from vutny/doc\-deprecate\-copr
  167836. .INDENT 2.0
  167837. .IP \(bu 2
  167838. a1cc55da3d [DOC] Remove mentions of COPR repo from RHEL installation page
  167839. .UNINDENT
  167840. .IP \(bu 2
  167841. bd1e8bcc7d Merge pull request \fI\%#46734\fP from terminalmage/busybox
  167842. .INDENT 2.0
  167843. .IP \(bu 2
  167844. 6502b6b4ff Make busybox image builder work with newer busybox releases
  167845. .UNINDENT
  167846. .IP \(bu 2
  167847. c09c6f819c Merge pull request \fI\%#46742\fP from gtmanfred/2017.7
  167848. .INDENT 2.0
  167849. .IP \(bu 2
  167850. fd0e649d1e only use npm test work around on newer versions
  167851. .UNINDENT
  167852. .IP \(bu 2
  167853. 3b6d5eca88 Merge pull request \fI\%#46743\fP from Ch3LL/mac_auth
  167854. .INDENT 2.0
  167855. .IP \(bu 2
  167856. 4f1c42c0e3 Workaround getpwnam in auth test for MacOSX
  167857. .UNINDENT
  167858. .UNINDENT
  167859. .IP \(bu 2
  167860. d0278345fc Update old utils paths to new utils paths
  167861. .IP \(bu 2
  167862. e312efb5e7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  167863. .INDENT 2.0
  167864. .IP \(bu 2
  167865. b548a3e742 Merge pull request \fI\%#46171\fP from amaclean199/fix_mysql_grants_comparison
  167866. .INDENT 2.0
  167867. .IP \(bu 2
  167868. 97db3d9766 Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  167869. .IP \(bu 2
  167870. 0565b3980e Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  167871. .IP \(bu 2
  167872. 8af407173d Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  167873. .IP \(bu 2
  167874. 00d13f05c4 Fix mysql grant comparisons by stripping both of escape characters and quotes. Fixes \fI\%#26920\fP
  167875. .UNINDENT
  167876. .IP \(bu 2
  167877. 554400e067 Merge pull request \fI\%#46709\fP from vutny/doc\-faq\-minion\-master\-restart
  167878. .INDENT 2.0
  167879. .IP \(bu 2
  167880. d0929280fc [DOC] Update FAQ about Salt self\-restarting
  167881. .UNINDENT
  167882. .IP \(bu 2
  167883. 3f21e9cc65 Merge pull request \fI\%#46503\fP from psyer/fix\-cmd\-run\-env\-corrupt
  167884. .INDENT 2.0
  167885. .IP \(bu 2
  167886. e8582e80f2 Python 3\-compatibility fix to unit test
  167887. .IP \(bu 2
  167888. 27f651906d Merge pull request \fI\%#1\fP from terminalmage/fix\-cmd\-run\-env\-corrupt
  167889. .INDENT 2.0
  167890. .IP \(bu 2
  167891. 172d3b2e04 Allow cases where no marker was found to proceed without raising exception
  167892. .IP \(bu 2
  167893. 35ad828ab8 Simplify the marker parsing logic
  167894. .UNINDENT
  167895. .IP \(bu 2
  167896. a09f20ab45 fix repr for the linter
  167897. .IP \(bu 2
  167898. 4ee723ac0f Rework how errors are output
  167899. .IP \(bu 2
  167900. dc283940e0 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  167901. .IP \(bu 2
  167902. a91926561f Fix linting problems
  167903. .IP \(bu 2
  167904. e8d3d017f9 fix bytes or str in find command
  167905. .IP \(bu 2
  167906. 0877cfc38f Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  167907. .IP \(bu 2
  167908. 86176d1252 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  167909. .IP \(bu 2
  167910. 3a7cc44ade Add python3 support for byte encoded markers
  167911. .IP \(bu 2
  167912. 09048139c7 Do not show whole env in error
  167913. .IP \(bu 2
  167914. ed94700255 fix missing raise statement
  167915. .IP \(bu 2
  167916. 15868bc88c Fixes stdout user environment corruption
  167917. .UNINDENT
  167918. .IP \(bu 2
  167919. ac2a6616a7 Merge pull request \fI\%#46432\fP from twangboy/win_locales_utf8
  167920. .INDENT 2.0
  167921. .IP \(bu 2
  167922. affa35c30d Revert passing encoding
  167923. .IP \(bu 2
  167924. a0ab27ef15 Merge remote\-tracking branch \(aqdw/win_locales_utf8\(aq into win_locales_utf8
  167925. .INDENT 2.0
  167926. .IP \(bu 2
  167927. 9f95c50061 Use default SLS encoding, fall back to system encoding
  167928. .IP \(bu 2
  167929. 6548d550d0 Use salt.utils.to_unicode
  167930. .IP \(bu 2
  167931. 8c0164fb63 Add ability to specify encoding in sdecode
  167932. .IP \(bu 2
  167933. 2e7985a81c Default to utf\-8 on Windows
  167934. .UNINDENT
  167935. .IP \(bu 2
  167936. 8017860dcc Use salt.utils.to_unicode
  167937. .IP \(bu 2
  167938. c10ed26eab Add ability to specify encoding in sdecode
  167939. .IP \(bu 2
  167940. 8d7e2d0058 Default to utf\-8 on Windows
  167941. .UNINDENT
  167942. .IP \(bu 2
  167943. fadc5e4ba4 Merge pull request \fI\%#46669\fP from terminalmage/pillar\-merge\-order
  167944. .INDENT 2.0
  167945. .IP \(bu 2
  167946. b4a1d34b47 Add option to return to pre\-2017.7.3 pillar include merge order
  167947. .UNINDENT
  167948. .IP \(bu 2
  167949. b90f0d1364 Merge pull request \fI\%#46711\fP from terminalmage/wildcard\-versions\-info
  167950. .INDENT 2.0
  167951. .IP \(bu 2
  167952. fc7d16f1af Add performance reminder for wildcard versions
  167953. .UNINDENT
  167954. .IP \(bu 2
  167955. 6c80d90bb6 Merge pull request \fI\%#46693\fP from dwoz/test_smtp_return
  167956. .INDENT 2.0
  167957. .IP \(bu 2
  167958. 5bf850c67f File and Pillar roots are dictionaries
  167959. .UNINDENT
  167960. .IP \(bu 2
  167961. 9a6bc1418c Merge pull request \fI\%#46543\fP from dafenko/fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167962. .INDENT 2.0
  167963. .IP \(bu 2
  167964. 6d5b2068aa Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167965. .IP \(bu 2
  167966. 5219377313 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167967. .IP \(bu 2
  167968. b7d39caa86 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167969. .IP \(bu 2
  167970. 25f1074a85 Add docstring for added parameters
  167971. .IP \(bu 2
  167972. 973bc13955 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167973. .IP \(bu 2
  167974. 164314a859 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  167975. .IP \(bu 2
  167976. 267ae9f633 Fix missing saltenv and pillarenv in pillar.item
  167977. .UNINDENT
  167978. .IP \(bu 2
  167979. f776040e25 Merge pull request \fI\%#46679\fP from vutny/doc\-state\-pkg
  167980. .INDENT 2.0
  167981. .IP \(bu 2
  167982. 4a730383bf [DOC] Correct examples in \fIpkg\fP state module
  167983. .UNINDENT
  167984. .IP \(bu 2
  167985. 47409eaa6e Merge pull request \fI\%#46646\fP from twangboy/win_fix_test_local_cache
  167986. .INDENT 2.0
  167987. .IP \(bu 2
  167988. 8d93156604 Fix \fIunit.returners.test_local_cache\fP for Windows
  167989. .UNINDENT
  167990. .IP \(bu 2
  167991. 0c2dce0416 Merge pull request \fI\%#46649\fP from terminalmage/issue46595
  167992. .INDENT 2.0
  167993. .IP \(bu 2
  167994. e82a1aa1ec Make server_id consistent on Python 3
  167995. .UNINDENT
  167996. .IP \(bu 2
  167997. 4e7466a21c Merge pull request \fI\%#46588\fP from UtahDave/no_crash_winshell
  167998. .INDENT 2.0
  167999. .IP \(bu 2
  168000. b7842a1777 Update error message.
  168001. .IP \(bu 2
  168002. 95dfdb91ca Don\(aqt stacktrace when salt\-ssh w/o saltwinshell
  168003. .UNINDENT
  168004. .IP \(bu 2
  168005. 33af3cfc7c Merge pull request \fI\%#46631\fP from rallytime/update\-pillar\-unit\-tests
  168006. .INDENT 2.0
  168007. .IP \(bu 2
  168008. 0f728186aa Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  168009. .UNINDENT
  168010. .IP \(bu 2
  168011. d329e7af78 Merge pull request \fI\%#46640\fP from terminalmage/file.copy\-docs
  168012. .INDENT 2.0
  168013. .IP \(bu 2
  168014. 480c5f8faa Clarify the docs for the file.copy state
  168015. .UNINDENT
  168016. .IP \(bu 2
  168017. ff40590c06 Merge pull request \fI\%#46642\fP from vutny/doc\-cloud\-index
  168018. .INDENT 2.0
  168019. .IP \(bu 2
  168020. 51e6aa54a1 [DOC] Unify cloud modules index header
  168021. .UNINDENT
  168022. .IP \(bu 2
  168023. 83ed40c06a Merge pull request \fI\%#46619\fP from rallytime/merge\-2017.7
  168024. .INDENT 2.0
  168025. .IP \(bu 2
  168026. bcbddf5d07 Merge branch \(aq2017.7.5\(aq into \(aq2017.7\(aq
  168027. .INDENT 2.0
  168028. .IP \(bu 2
  168029. 19bb725698 Merge pull request \fI\%#46612\fP from Ch3LL/7.5_rn
  168030. .INDENT 2.0
  168031. .IP \(bu 2
  168032. 6076bfa2ee Add changelog to 2017.7.5 release
  168033. .UNINDENT
  168034. .IP \(bu 2
  168035. 31c78aef11 Merge pull request \fI\%#46572\fP from dmurphy18/update_xxxbuild
  168036. .INDENT 2.0
  168037. .IP \(bu 2
  168038. c87511570d Merge branch \(aq2017.7.5\(aq into update_xxxbuild
  168039. .UNINDENT
  168040. .IP \(bu 2
  168041. cdd768fa4d Merge pull request \fI\%#46577\fP from gtmanfred/2017.7.5
  168042. .INDENT 2.0
  168043. .IP \(bu 2
  168044. 78cbf7b5cd Fix npm issue
  168045. .IP \(bu 2
  168046. c76f7eb028 enable debug logging on the minionlog
  168047. .UNINDENT
  168048. .IP \(bu 2
  168049. e6682c660c Merge pull request \fI\%#46551\fP from terminalmage/salt\-jenkins\-885
  168050. .INDENT 2.0
  168051. .IP \(bu 2
  168052. 703b5e7e65 Change versionadded to show that 2018.3.0 will not have this function
  168053. .IP \(bu 2
  168054. 010d260d06 Rewrite failing Suse pkg integration test
  168055. .IP \(bu 2
  168056. f3f5dec239 zypper.py: fix version argument being ignored
  168057. .IP \(bu 2
  168058. 214f2d6ad3 Add pkg.list_repo_pkgs to zypper.py
  168059. .INDENT 2.0
  168060. .INDENT 3.5
  168061. .INDENT 0.0
  168062. .IP \(bu 2
  168063. 0a541613f2 Additon of \-sa flag to allow for revision numbers other than \-0 or \-1
  168064. .UNINDENT
  168065. .UNINDENT
  168066. .UNINDENT
  168067. .UNINDENT
  168068. .IP \(bu 2
  168069. bd62699ccb Merge pull request \fI\%#46563\fP from gtmanfred/2017.7.5
  168070. .INDENT 2.0
  168071. .IP \(bu 2
  168072. 8d5ab72983 virtualenv version too old for python3.6
  168073. .UNINDENT
  168074. .IP \(bu 2
  168075. 2916708124 Merge pull request \fI\%#46561\fP from gtmanfred/2017.7.5
  168076. .INDENT 2.0
  168077. .IP \(bu 2
  168078. 2c39ac6dfb disable verbose
  168079. .UNINDENT
  168080. .IP \(bu 2
  168081. ee3bff6e32 Merge pull request \fI\%#46537\fP from rallytime/bp\-46529
  168082. .INDENT 2.0
  168083. .IP \(bu 2
  168084. 289c7a228f retry if there is a segfault
  168085. .UNINDENT
  168086. .IP \(bu 2
  168087. 1271536a89 Merge pull request \fI\%#46519\fP from rallytime/man\-pages\-2017.7.5
  168088. .INDENT 2.0
  168089. .IP \(bu 2
  168090. 782a5584f5 Update man pages for 2017.7.5
  168091. .UNINDENT
  168092. .UNINDENT
  168093. .UNINDENT
  168094. .IP \(bu 2
  168095. df12135439 Merge pull request \fI\%#46584\fP from twangboy/lgpo\-46568
  168096. .INDENT 2.0
  168097. .IP \(bu 2
  168098. 661017104b Detect disabled reg_multi_sz elements properly
  168099. .UNINDENT
  168100. .IP \(bu 2
  168101. 2fd3aa487c Merge pull request \fI\%#46624\fP from twangboy/win_fix_installer
  168102. .INDENT 2.0
  168103. .IP \(bu 2
  168104. fa0b0efe46 Fix some installer script inconsistencies
  168105. .UNINDENT
  168106. .IP \(bu 2
  168107. f038e3c452 Merge pull request \fI\%#46571\fP from garethgreenaway/46552_onfail_and_require
  168108. .INDENT 2.0
  168109. .IP \(bu 2
  168110. 152c43c843 Accounting for a case when multiple onfails are used along with requires. Previously if you have multiple states using \(aqonfail\(aq and two of those states using a \(aqrequire\(aq against the first one state, the last two will run even if the \(aqonfail\(aq isn\(aqt met because the \(aqrequire\(aq is met because the first state returns true even though it didn\(aqt excute. This change adds an additional hidden variable that is used when checking requisities to determine if the state actually ran.
  168111. .UNINDENT
  168112. .IP \(bu 2
  168113. 2677330e19 Merge pull request \fI\%#46520\fP from gtmanfred/2017.7
  168114. .INDENT 2.0
  168115. .IP \(bu 2
  168116. caefedc095 make sure utils is empty for pickling for windows
  168117. .IP \(bu 2
  168118. 2883548e6b pass utils to the scheduler for reloading in modules
  168119. .UNINDENT
  168120. .IP \(bu 2
  168121. 7bc3c2e588 Merge pull request \fI\%#46531\fP from terminalmage/issue44299
  168122. .INDENT 2.0
  168123. .IP \(bu 2
  168124. b70c3389da Fix case where no comments specified
  168125. .IP \(bu 2
  168126. ce391c53f4 Add regression test for \fI\%#44299\fP
  168127. .IP \(bu 2
  168128. c3e36a6c94 Fix regression in yumpkg._parse_repo_file()
  168129. .IP \(bu 2
  168130. f0c79e3da3 Slight modification to salt.utils.pkg.rpm.combine_comments()
  168131. .UNINDENT
  168132. .IP \(bu 2
  168133. b80edb5d26 Merge pull request \fI\%#46567\fP from dwoz/runtest\-n\-wart
  168134. .INDENT 2.0
  168135. .IP \(bu 2
  168136. 3b6901e19d Honor named tests when running integration suites
  168137. .UNINDENT
  168138. .IP \(bu 2
  168139. 1dcd22e767 Merge pull request \fI\%#46580\fP from twangboy/win_update_docs_dism
  168140. .INDENT 2.0
  168141. .IP \(bu 2
  168142. d52b99d7a3 Clarify some issues with msu files in win_dism.py
  168143. .UNINDENT
  168144. .IP \(bu 2
  168145. 0a68c22332 Merge pull request \fI\%#46541\fP from gtmanfred/metadata
  168146. .INDENT 2.0
  168147. .IP \(bu 2
  168148. 19bd1d9db5 handle user\-data for metadata grains
  168149. .UNINDENT
  168150. .UNINDENT
  168151. .UNINDENT
  168152. .IP \(bu 2
  168153. \fBISSUE\fP \fI\%#46668\fP: (\fI\%anlutro\fP) Jinja2 filter strftime stopped working in salt\-ssh 2018.3 (refs: \fI\%#46848\fP, \fI\%#46744\fP)
  168154. .IP \(bu 2
  168155. \fBPR\fP \fI\%#46744\fP: (\fI\%garethgreenaway\fP) [2018.3] Ensure salt.utils.dateutils is available for templates via salt\-ssh
  168156. @ \fI2018\-03\-28 21:09:46 UTC\fP
  168157. .INDENT 2.0
  168158. .IP \(bu 2
  168159. ef68df7f3a Merge pull request \fI\%#46744\fP from garethgreenaway/46668_jinja2_filter_strftime_unavailable
  168160. .IP \(bu 2
  168161. 0b30955c00 Including salt.utils.dateutils so various jinja_filters are available when using salt\-ssh.
  168162. .UNINDENT
  168163. .IP \(bu 2
  168164. \fBISSUE\fP \fI\%#46334\fP: (\fI\%sjorge\fP) [2018.3.0rc1] Stacktrace on call to nacl.dec (refs: \fI\%#46426\fP)
  168165. .IP \(bu 2
  168166. \fBPR\fP \fI\%#46720\fP: (\fI\%rallytime\fP) Bump deprecation notices in nacl module & runner to Neon
  168167. @ \fI2018\-03\-27 21:15:46 UTC\fP
  168168. .INDENT 2.0
  168169. .IP \(bu 2
  168170. \fBPR\fP \fI\%#46426\fP: (\fI\%garethgreenaway\fP) [2018.3.0rc1] fixes to nacl module & runner (refs: \fI\%#46639\fP, \fI\%#46720\fP)
  168171. .IP \(bu 2
  168172. 65bb37effd Merge pull request \fI\%#46720\fP from rallytime/bump\-nacl\-deprecation
  168173. .IP \(bu 2
  168174. 5102c0310c Bump deprecation notices in nacl module & runner to Neon
  168175. .UNINDENT
  168176. .IP \(bu 2
  168177. \fBPR\fP \fI\%#46733\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168178. @ \fI2018\-03\-27 18:46:43 UTC\fP
  168179. .INDENT 2.0
  168180. .IP \(bu 2
  168181. c83d9e66fe Merge pull request \fI\%#46733\fP from rallytime/merge\-2018.3
  168182. .IP \(bu 2
  168183. 00d4eb26f3 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168184. .UNINDENT
  168185. .IP \(bu 2
  168186. \fBPR\fP \fI\%#46565\fP: (\fI\%twangboy\fP) Create reg salt util (2018.3)
  168187. @ \fI2018\-03\-26 22:03:33 UTC\fP
  168188. .INDENT 2.0
  168189. .IP \(bu 2
  168190. 0faced1d54 Merge pull request \fI\%#46565\fP from twangboy/win_fix_cmd_powershell_2018.3
  168191. .IP \(bu 2
  168192. 5ee64e9b0e Fix lint (spelling error)
  168193. .IP \(bu 2
  168194. 0de54ed953 Additional tests
  168195. .IP \(bu 2
  168196. fc9ecd75e2 Skip unit.state.test_reg unless on Windows
  168197. .IP \(bu 2
  168198. aa98bdf250 Fix some lint
  168199. .IP \(bu 2
  168200. e0d201a96f Make sure the docs are correct for the tests
  168201. .IP \(bu 2
  168202. f15f92318d Add tests for salt.utils.win_reg
  168203. .IP \(bu 2
  168204. f7112b19a2 Submit \fI\%#46527\fP agains 2018.3
  168205. .UNINDENT
  168206. .IP \(bu 2
  168207. \fBISSUE\fP \fI\%#46334\fP: (\fI\%sjorge\fP) [2018.3.0rc1] Stacktrace on call to nacl.dec (refs: \fI\%#46426\fP)
  168208. .IP \(bu 2
  168209. \fBPR\fP \fI\%#46639\fP: (\fI\%terminalmage\fP) Use the correct path for nacl certificates in Windows
  168210. @ \fI2018\-03\-26 19:20:10 UTC\fP
  168211. .INDENT 2.0
  168212. .IP \(bu 2
  168213. \fBPR\fP \fI\%#46426\fP: (\fI\%garethgreenaway\fP) [2018.3.0rc1] fixes to nacl module & runner (refs: \fI\%#46639\fP, \fI\%#46720\fP)
  168214. .IP \(bu 2
  168215. dd52368f90 Merge pull request \fI\%#46639\fP from terminalmage/nacl\-default\-path
  168216. .IP \(bu 2
  168217. 2f7660fe35 Use the correct path for nacl certificates in Windows
  168218. .UNINDENT
  168219. .IP \(bu 2
  168220. \fBPR\fP \fI\%#46416\fP: (\fI\%dincamihai\fP) Fix cp.push empty file
  168221. @ \fI2018\-03\-26 17:52:47 UTC\fP
  168222. .INDENT 2.0
  168223. .IP \(bu 2
  168224. 2efef52a3e Merge pull request \fI\%#46416\fP from dincamihai/fix\-cp.push\-empty\-file
  168225. .IP \(bu 2
  168226. 536ba0fa1e Fix cp.push empty file
  168227. .UNINDENT
  168228. .IP \(bu 2
  168229. \fBPR\fP \fI\%#46643\fP: (\fI\%mcalmer\fP) fix docker return
  168230. @ \fI2018\-03\-26 15:52:31 UTC\fP
  168231. .INDENT 2.0
  168232. .IP \(bu 2
  168233. 84579e7652 Merge pull request \fI\%#46643\fP from mcalmer/fix\-docker\-return
  168234. .IP \(bu 2
  168235. 3ceb63f607 fix checking test results
  168236. .IP \(bu 2
  168237. af64632bf3 add unit test for failed login
  168238. .IP \(bu 2
  168239. 0fc7989236 make it possible to use login, pull and push from module.run and detect errors
  168240. .UNINDENT
  168241. .IP \(bu 2
  168242. \fBPR\fP \fI\%#46650\fP: (\fI\%Ch3LL\fP) Mirror libnacl imports in test from the nacl module
  168243. @ \fI2018\-03\-26 14:48:40 UTC\fP
  168244. .INDENT 2.0
  168245. .IP \(bu 2
  168246. c67afbeb36 Merge pull request \fI\%#46650\fP from Ch3LL/nacl_test
  168247. .IP \(bu 2
  168248. 9fef8bc431 Mirror libnacl imports in test from the nacl runner
  168249. .IP \(bu 2
  168250. f11d58a8e9 Mirror libnacl imports in test from the nacl module
  168251. .UNINDENT
  168252. .IP \(bu 2
  168253. \fBPR\fP \fI\%#46645\fP: (\fI\%terminalmage\fP) Add Unicode / Python 3 update to 2018.3.0 release notes
  168254. @ \fI2018\-03\-26 14:43:53 UTC\fP
  168255. .INDENT 2.0
  168256. .IP \(bu 2
  168257. 03b58a01cf Merge pull request \fI\%#46645\fP from terminalmage/release\-notes
  168258. .IP \(bu 2
  168259. 986c7bcdae Rewrite unicode/py3 section
  168260. .IP \(bu 2
  168261. 064bc83276 Add Unicode / Python 3 update to 2018.3.0 release notes
  168262. .UNINDENT
  168263. .IP \(bu 2
  168264. \fBISSUE\fP \fI\%#46150\fP: (\fI\%whytewolf\fP) With chocolately.version some packages don\(aqt work with check_remote=True (refs: \fI\%#46661\fP)
  168265. .IP \(bu 2
  168266. \fBPR\fP \fI\%#46661\fP: (\fI\%Kimol\fP) Chocolatey \- Lowered name of local and remote packages before comparing versions.
  168267. @ \fI2018\-03\-26 14:35:39 UTC\fP
  168268. .INDENT 2.0
  168269. .IP \(bu 2
  168270. 308c9ddfc3 Merge pull request \fI\%#46661\fP from Kimol/2018.3\-fix_chocolatey_check_remote_packages
  168271. .IP \(bu 2
  168272. 52581e7918 Removed trailing whitespace
  168273. .IP \(bu 2
  168274. 123a86947c Chocolatey \- Added lowering local packages for unifing both local and remote names to lowercase for comparison.
  168275. .IP \(bu 2
  168276. 4be1a991c2 Lowered name of available packages before comparing with local packages
  168277. .UNINDENT
  168278. .IP \(bu 2
  168279. \fBPR\fP \fI\%#46569\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3 (refs: \fI\%#46631\fP)
  168280. @ \fI2018\-03\-21 20:57:04 UTC\fP
  168281. .INDENT 2.0
  168282. .IP \(bu 2
  168283. 2e1f7c37f7 Merge pull request \fI\%#46569\fP from rallytime/merge\-2018.3
  168284. .IP \(bu 2
  168285. 46ba72fb1c Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  168286. .IP \(bu 2
  168287. fe2d46dd0c Better merge conflict resolution for setup.py windows changes
  168288. .IP \(bu 2
  168289. 8886b61576 Update old utils paths to new paths
  168290. .IP \(bu 2
  168291. 8d1e1e7f94 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168292. .INDENT 2.0
  168293. .IP \(bu 2
  168294. 048b2ba3f6 Merge pull request \fI\%#46547\fP from garethgreenaway/46427_service_module_cumulus
  168295. .INDENT 2.0
  168296. .IP \(bu 2
  168297. edd0b11447 Merge branch \(aq2017.7\(aq into 46427_service_module_cumulus
  168298. .IP \(bu 2
  168299. ea3c16080e Disable the \fIservice\fP module on Cumulus since it is using systemd.
  168300. .UNINDENT
  168301. .IP \(bu 2
  168302. 98e3260b9a Merge pull request \fI\%#46548\fP from Ch3LL/profit_test
  168303. .INDENT 2.0
  168304. .IP \(bu 2
  168305. db96c4e72e check for foo,bar username,password set in profitbrick config
  168306. .UNINDENT
  168307. .IP \(bu 2
  168308. 79f2a76609 Merge pull request \fI\%#46549\fP from Ch3LL/dimension_test
  168309. .INDENT 2.0
  168310. .IP \(bu 2
  168311. bb338c464c Fix dimensionsdata test random_name call
  168312. .UNINDENT
  168313. .IP \(bu 2
  168314. 083846fe0e Merge pull request \fI\%#46529\fP from gtmanfred/kitchen
  168315. .INDENT 2.0
  168316. .IP \(bu 2
  168317. 50d6e2c7be retry if there is a segfault
  168318. .UNINDENT
  168319. .IP \(bu 2
  168320. 5cc11129f1 Merge pull request \fI\%#46511\fP from rallytime/bp\-45769
  168321. .INDENT 2.0
  168322. .IP \(bu 2
  168323. a8ffceda53 Surpress boto WARNING during decode, reference: \fI\%https://github.com/boto/boto/issues/2965\fP
  168324. .UNINDENT
  168325. .IP \(bu 2
  168326. 0e90c8ca6f Merge pull request \fI\%#46493\fP from terminalmage/issue46207
  168327. .INDENT 2.0
  168328. .IP \(bu 2
  168329. f06ff68f10 salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  168330. .UNINDENT
  168331. .IP \(bu 2
  168332. b11a8fc8e0 Merge pull request \fI\%#46450\fP from gtmanfred/salt_runner
  168333. .INDENT 2.0
  168334. .IP \(bu 2
  168335. 7974ff7264 load grains for salt.cmd runner
  168336. .UNINDENT
  168337. .IP \(bu 2
  168338. 22d753364b Merge pull request \fI\%#46337\fP from gtmanfred/2017.7
  168339. .INDENT 2.0
  168340. .IP \(bu 2
  168341. d6d9e36359 add tests for names and listen/listen_in
  168342. .IP \(bu 2
  168343. 3f8e0db572 let listen_in work with names
  168344. .IP \(bu 2
  168345. 7161f4d4df fix listen to be able to handle names
  168346. .UNINDENT
  168347. .IP \(bu 2
  168348. b7191b8782 Merge pull request \fI\%#46413\fP from meaksh/2017.7\-explore\-result\-in\-depth
  168349. .INDENT 2.0
  168350. .IP \(bu 2
  168351. 885751634e Add new unit test to check state.apply within module.run
  168352. .IP \(bu 2
  168353. 9f19ad5264 Rename and fix recursive method
  168354. .IP \(bu 2
  168355. 1476ace558 Fix Python3 and pylint issue
  168356. .IP \(bu 2
  168357. 726ca3044d Explore \(aqmodule.run\(aq response to catch the \(aqresult\(aq in depth
  168358. .UNINDENT
  168359. .IP \(bu 2
  168360. 02a79a2014 Merge pull request \fI\%#46496\fP from gtmanfred/kitchen
  168361. .INDENT 2.0
  168362. .IP \(bu 2
  168363. da002f78d0 include virtualenv path for py3 windows
  168364. .IP \(bu 2
  168365. fe2efe03ea remove duplicate setup
  168366. .UNINDENT
  168367. .IP \(bu 2
  168368. 5c4c182d75 Merge pull request \fI\%#46330\fP from bdrung/fix_kubernetes_test_create_deployments
  168369. .INDENT 2.0
  168370. .IP \(bu 2
  168371. 5008c53c44 Fix ValueError for template in AppsV1beta1DeploymentSpec
  168372. .UNINDENT
  168373. .IP \(bu 2
  168374. c7e05d3ff4 Merge pull request \fI\%#46482\fP from rongshengfang/fix\-keyerror\-in\-instance_present
  168375. .INDENT 2.0
  168376. .IP \(bu 2
  168377. ed8c83e89a Fix KeyError in salt/states/boto_ec2.py when an EIP is being associated to an existing instance with the instance_present state.
  168378. .UNINDENT
  168379. .IP \(bu 2
  168380. 573d51afec Merge pull request \fI\%#46463\fP from terminalmage/mock\-2.0
  168381. .INDENT 2.0
  168382. .IP \(bu 2
  168383. b958b4699c Update requirements files to depend on mock>=2.0.0
  168384. .UNINDENT
  168385. .IP \(bu 2
  168386. a154d35fc7 Merge pull request \fI\%#46422\fP from rallytime/bp\-46300
  168387. .INDENT 2.0
  168388. .IP \(bu 2
  168389. 829dfde8e8 Change stringutils path to old utils path for 2017.7
  168390. .IP \(bu 2
  168391. 91db2e0782 Python 3 support
  168392. .UNINDENT
  168393. .IP \(bu 2
  168394. 2afaca17a1 Merge pull request \fI\%#46320\fP from mcalmer/warn\-kubernetes
  168395. .INDENT 2.0
  168396. .IP \(bu 2
  168397. c493ced415 add warning about future config option change
  168398. .UNINDENT
  168399. .IP \(bu 2
  168400. c7f95581e3 Merge pull request \fI\%#46449\fP from bdrung/make\-doc\-theme\-configurable
  168401. .INDENT 2.0
  168402. .IP \(bu 2
  168403. 4a5da2d144 Make documentation theme configurable
  168404. .UNINDENT
  168405. .IP \(bu 2
  168406. 10ce0e9e20 Merge pull request \fI\%#46162\fP from rallytime/team\-suse\-zypper\-owner
  168407. .INDENT 2.0
  168408. .IP \(bu 2
  168409. 13a295a3b7 Add \fIpkg\fP and \fIsnapper\fP to team\-suse
  168410. .IP \(bu 2
  168411. 35c7b7b0d3 Add btrfs, xfs, yumpkg, and kubernetes file to team\-suse
  168412. .IP \(bu 2
  168413. 485d777ac0 Add team\-suse to CODEOWNERS file for zypper files
  168414. .UNINDENT
  168415. .IP \(bu 2
  168416. cac096b311 Merge pull request \fI\%#46434\fP from gtmanfred/highstate_return
  168417. .INDENT 2.0
  168418. .IP \(bu 2
  168419. d18f1a55a7 fix pylint
  168420. .IP \(bu 2
  168421. 9e2c3f7991 split return key value correctly
  168422. .UNINDENT
  168423. .IP \(bu 2
  168424. 7dd71101ce Merge pull request \fI\%#46455\fP from whytewolf/Issue_44452_unicode_cloud
  168425. .INDENT 2.0
  168426. .IP \(bu 2
  168427. 5fe474b1a8 .format remove fix for \fI\%#44452\fP
  168428. .UNINDENT
  168429. .IP \(bu 2
  168430. 4c8d9026d3 Merge pull request \fI\%#46428\fP from twangboy/win_fix_reqs
  168431. .INDENT 2.0
  168432. .IP \(bu 2
  168433. e7ab97cc17 Remove six as a hard dep for Salt
  168434. .IP \(bu 2
  168435. cc67e5c2ef Set six to 1.11.0
  168436. .UNINDENT
  168437. .IP \(bu 2
  168438. e834d9a63b Merge pull request \fI\%#46454\fP from gtmanfred/kitchen
  168439. .INDENT 2.0
  168440. .IP \(bu 2
  168441. b8ab8434a5 fix windows for kitchen
  168442. .UNINDENT
  168443. .IP \(bu 2
  168444. 2886dca88f Merge pull request \fI\%#46452\fP from gtmanfred/spm_cache_dir
  168445. .INDENT 2.0
  168446. .IP \(bu 2
  168447. 169cf7a4e2 make spm cache_dir instead of all cachedirs
  168448. .UNINDENT
  168449. .IP \(bu 2
  168450. a188984cd9 Merge pull request \fI\%#46446\fP from bdrung/fix\-typos
  168451. .INDENT 2.0
  168452. .IP \(bu 2
  168453. 7e6e80be87 heat: Fix spelling mistake of environment
  168454. .IP \(bu 2
  168455. a3c54b50f6 Fix various spelling mistakes
  168456. .UNINDENT
  168457. .IP \(bu 2
  168458. e35fc5263c Merge pull request \fI\%#46309\fP from bdrung/dynamic\-pillarenv
  168459. .INDENT 2.0
  168460. .IP \(bu 2
  168461. 584b451fd1 Support dynamic pillar_root environment
  168462. .UNINDENT
  168463. .IP \(bu 2
  168464. 35fe9827fe Merge pull request \fI\%#46430\fP from terminalmage/issue44032
  168465. .INDENT 2.0
  168466. .IP \(bu 2
  168467. f9f187e915 Improve reliability/idempotence of file.blockreplace state
  168468. .UNINDENT
  168469. .IP \(bu 2
  168470. 2bad0a21c0 Merge pull request \fI\%#46429\fP from twangboy/win_fix_snmp
  168471. .INDENT 2.0
  168472. .IP \(bu 2
  168473. 8995a9b8de Fix problem with __virtual__ in win_snmp
  168474. .UNINDENT
  168475. .IP \(bu 2
  168476. 93a572f229 Merge pull request \fI\%#46100\fP from jfindlay/resolv_scope
  168477. .INDENT 2.0
  168478. .IP \(bu 2
  168479. d5561bedaf tests.unit.grains.core add scoped IPv6 nameserver
  168480. .IP \(bu 2
  168481. 4e2e62d508 salt.utils.dns parse scope param for ipv6 servers
  168482. .UNINDENT
  168483. .IP \(bu 2
  168484. 5acc1d5c54 Merge pull request \fI\%#46420\fP from bdrung/2017.7
  168485. .INDENT 2.0
  168486. .IP \(bu 2
  168487. e48c13d9e0 Fix SSH client exception if SSH is not found
  168488. .UNINDENT
  168489. .IP \(bu 2
  168490. ca6a76e317 Merge pull request \fI\%#46379\fP from angeloudy/2017.7
  168491. .INDENT 2.0
  168492. .IP \(bu 2
  168493. 3acb59c74c Merge branch \(aq2017.7\(aq into 2017.7
  168494. .IP \(bu 2
  168495. d971e0c08b Fix indent
  168496. .IP \(bu 2
  168497. 269514683f Update http.py
  168498. .IP \(bu 2
  168499. 908c040ac3 Update http.py
  168500. .IP \(bu 2
  168501. 51ba3c135b Update http.py
  168502. .IP \(bu 2
  168503. 14aba24111 fix bytes\-object required error in python 3
  168504. .UNINDENT
  168505. .IP \(bu 2
  168506. 73f9233557 Merge pull request \fI\%#46404\fP from gtmanfred/kitchen
  168507. .INDENT 2.0
  168508. .IP \(bu 2
  168509. c56baa95a8 clone .git for the version tests
  168510. .IP \(bu 2
  168511. 3620611b5b fix unhold package for debian
  168512. .IP \(bu 2
  168513. 5219f7d2ba fix minion log path
  168514. .UNINDENT
  168515. .IP \(bu 2
  168516. ca28cfd4e4 Merge pull request \fI\%#46310\fP from twangboy/win_update_installer_build
  168517. .INDENT 2.0
  168518. .IP \(bu 2
  168519. bcf8b19566 Update the installer build
  168520. .UNINDENT
  168521. .IP \(bu 2
  168522. decccbeca3 Merge pull request \fI\%#46316\fP from twangboy/win_fix_dsc
  168523. .INDENT 2.0
  168524. .IP \(bu 2
  168525. 2042d33d59 Fix issues with the DSC module
  168526. .UNINDENT
  168527. .UNINDENT
  168528. .UNINDENT
  168529. .IP \(bu 2
  168530. \fBPR\fP \fI\%#46620\fP: (\fI\%rallytime\fP) [2018.3] Merge 2018.3.0rc1 into 2018.3
  168531. @ \fI2018\-03\-20 22:45:00 UTC\fP
  168532. .INDENT 2.0
  168533. .IP \(bu 2
  168534. 8cdd56b9dc Merge pull request \fI\%#46620\fP from rallytime/merge\-2018.3.0rc1\-into\-2018.3
  168535. .IP \(bu 2
  168536. b03cda3cea Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168537. .UNINDENT
  168538. .IP \(bu 2
  168539. \fBPR\fP \fI\%#46606\fP: (\fI\%Ch3LL\fP) add autodoc topics for infoblox state modules
  168540. @ \fI2018\-03\-19 21:35:46 UTC\fP
  168541. .INDENT 2.0
  168542. .IP \(bu 2
  168543. 2d2fe22ae2 Merge pull request \fI\%#46606\fP from Ch3LL/infoblox_docs
  168544. .IP \(bu 2
  168545. 6eab6a7dc4 add autodoc topics for infoblox state modules
  168546. .UNINDENT
  168547. .IP \(bu 2
  168548. \fBPR\fP \fI\%#46540\fP: (\fI\%s0undt3ch\fP) Some missing \fIisinstance\fP checks.
  168549. @ \fI2018\-03\-15 16:17:19 UTC\fP
  168550. .INDENT 2.0
  168551. .IP \(bu 2
  168552. 1191d5b379 Merge pull request \fI\%#46540\fP from s0undt3ch/2018.3
  168553. .IP \(bu 2
  168554. fa1d668774 Some missing \fIisinstance\fP checks. Committed again through a PR.
  168555. .UNINDENT
  168556. .IP \(bu 2
  168557. \fBPR\fP \fI\%#46513\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168558. @ \fI2018\-03\-15 15:58:59 UTC\fP
  168559. .INDENT 2.0
  168560. .IP \(bu 2
  168561. 5429438e4b Merge pull request \fI\%#46513\fP from rallytime/merge\-2018.3
  168562. .IP \(bu 2
  168563. aa760334a1 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168564. .UNINDENT
  168565. .IP \(bu 2
  168566. \fBISSUE\fP \fI\%#43208\fP: (\fI\%mitar\fP) Prevent user.present to change uid and gid of existing user (refs: \fI\%#46502\fP)
  168567. .IP \(bu 2
  168568. \fBPR\fP \fI\%#46502\fP: (\fI\%terminalmage\fP) user.present: don\(aqt change uid/gid unless explicitly told to
  168569. @ \fI2018\-03\-13 14:25:20 UTC\fP
  168570. .INDENT 2.0
  168571. .IP \(bu 2
  168572. 3e073c7e8a Merge pull request \fI\%#46502\fP from terminalmage/issue43208
  168573. .IP \(bu 2
  168574. 4106840deb user.present: don\(aqt change uid/gid unless explicitly told to
  168575. .UNINDENT
  168576. .IP \(bu 2
  168577. \fBPR\fP \fI\%#46398\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  168578. @ \fI2018\-03\-12 20:25:19 UTC\fP
  168579. .INDENT 2.0
  168580. .IP \(bu 2
  168581. 7cdb00ca9c Merge pull request \fI\%#46398\fP from rallytime/merge\-2018.3
  168582. .IP \(bu 2
  168583. d22e5ba442 Merge fix: return back \fIwb+\fP mode in \fIcrypt.gen_keys\fP\&.
  168584. .IP \(bu 2
  168585. c7dddaf8ce Lint: Use log variable, not logger.
  168586. .IP \(bu 2
  168587. ca1860cd91 Use new get_umask function in mask calls in virt.py
  168588. .IP \(bu 2
  168589. 19ec7b6de1 Update old utils paths with new utils paths
  168590. .IP \(bu 2
  168591. d83727fdf9 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168592. .INDENT 2.0
  168593. .IP \(bu 2
  168594. 95586678c3 Merge pull request \fI\%#46394\fP from Ch3LL/mac_doc
  168595. .INDENT 2.0
  168596. .IP \(bu 2
  168597. 158add6661 change oxdownload to oxdownload\-{python_version}
  168598. .IP \(bu 2
  168599. 21aa848c89 Add mac py2 and py3 packages to mac installation docs
  168600. .UNINDENT
  168601. .IP \(bu 2
  168602. 07b5d09ac1 Merge pull request \fI\%#46338\fP from rallytime/fix\-44831
  168603. .INDENT 2.0
  168604. .IP \(bu 2
  168605. 90771da999 Remove cmd.wait deprecation reference in docs
  168606. .UNINDENT
  168607. .IP \(bu 2
  168608. 3849e7a085 Merge pull request \fI\%#46333\fP from danlsgiga/issue\-42438
  168609. .INDENT 2.0
  168610. .IP \(bu 2
  168611. 3b13f37b44 Revert changes in the code and change docs instead
  168612. .IP \(bu 2
  168613. 38114a65d8 Fixes color parameter mismatch and handles 204 responses correctly
  168614. .UNINDENT
  168615. .IP \(bu 2
  168616. a8f2f1b063 Merge pull request \fI\%#46322\fP from terminalmage/issue44935
  168617. .INDENT 2.0
  168618. .IP \(bu 2
  168619. 85ac6a9893 yamlify_arg: don\(aqt treat leading dashes as lists
  168620. .UNINDENT
  168621. .IP \(bu 2
  168622. da5c282cb2 Merge pull request \fI\%#46327\fP from samilaine/fix\-vmware\-cloud\-fqdn
  168623. .INDENT 2.0
  168624. .IP \(bu 2
  168625. 4b8dfb326f Modify the way a FQDN is handled in the vmware cloud provider.
  168626. .UNINDENT
  168627. .IP \(bu 2
  168628. 78c45d3786 Merge pull request \fI\%#46318\fP from terminalmage/squelch\-warnings
  168629. .INDENT 2.0
  168630. .IP \(bu 2
  168631. 5889b36646 Skip type\-checking for several gitfs/git_pillar/winrepo params
  168632. .UNINDENT
  168633. .IP \(bu 2
  168634. bb0d6fc263 Merge pull request \fI\%#46312\fP from gtmanfred/2017.7
  168635. .INDENT 2.0
  168636. .IP \(bu 2
  168637. 749ae580ed add module_dirs to salt ssh thin tarball
  168638. .UNINDENT
  168639. .IP \(bu 2
  168640. 88b5f7383d Merge pull request \fI\%#46242\fP from redbaron4/fix\-46127
  168641. .INDENT 2.0
  168642. .IP \(bu 2
  168643. 06dba51617 Make changes from review
  168644. .IP \(bu 2
  168645. 727ebe1056 Merge branch \(aq2017.7\(aq into fix\-46127
  168646. .IP \(bu 2
  168647. 08d1ee8baf Fix Python3 test errors
  168648. .IP \(bu 2
  168649. aa9d709015 Pass env_vars to pip.freeze
  168650. .UNINDENT
  168651. .IP \(bu 2
  168652. a0716643e4 Merge pull request \fI\%#46265\fP from Ch3LL/profit_cloud
  168653. .INDENT 2.0
  168654. .IP \(bu 2
  168655. d4893eab4c Add username/password to profitbricks conf for cloud tests
  168656. .UNINDENT
  168657. .IP \(bu 2
  168658. ed7bffa7e0 Merge pull request \fI\%#46306\fP from rallytime/bp\-46256
  168659. .INDENT 2.0
  168660. .IP \(bu 2
  168661. 6439bce4a8 Don\(aqt install msgpack 0.5.5
  168662. .UNINDENT
  168663. .IP \(bu 2
  168664. 8c2c4e3316 Merge pull request \fI\%#46208\fP from terminalmage/audit\-umask\-usage
  168665. .INDENT 2.0
  168666. .IP \(bu 2
  168667. 9c92aadce8 Disable blacklisted\-function check for legitimate uses
  168668. .IP \(bu 2
  168669. 58a11aaa26 Disable pylint check in salt\-ssh shim
  168670. .IP \(bu 2
  168671. ecadf67659 Blacklist os.umask
  168672. .IP \(bu 2
  168673. 31b1d98fcb Replace direct use of os.umask with use of existing context manager
  168674. .IP \(bu 2
  168675. 82ce546e18 Prevent failed os.makedirs from leaving modified umask in place
  168676. .UNINDENT
  168677. .IP \(bu 2
  168678. 978e869490 Merge pull request \fI\%#46293\fP from eliasp/2017.7\-44624\-py3\-compat
  168679. .INDENT 2.0
  168680. .IP \(bu 2
  168681. 2e08b0d9c8 Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  168682. .UNINDENT
  168683. .IP \(bu 2
  168684. bee4a66d0c Merge pull request \fI\%#46264\fP from terminalmage/issue46128
  168685. .INDENT 2.0
  168686. .IP \(bu 2
  168687. 68000b7211 Fix incorrect merge conflict resolution
  168688. .UNINDENT
  168689. .IP \(bu 2
  168690. 1e0b3aa348 Merge pull request \fI\%#46296\fP from vutny/doc\-pillar\-get
  168691. .INDENT 2.0
  168692. .IP \(bu 2
  168693. 1faa8331e1 [DOC] Add missing params to \fIpillar.get\fP docstring
  168694. .UNINDENT
  168695. .IP \(bu 2
  168696. c490a50452 Merge pull request \fI\%#45874\fP from GwiYeong/2017.7\-local\-client\-hotfix
  168697. .INDENT 2.0
  168698. .IP \(bu 2
  168699. 949aefc82b Merge branch \(aq2017.7\(aq into 2017.7\-local\-client\-hotfix
  168700. .IP \(bu 2
  168701. 45d663f435 fix for local client timeout bug
  168702. .UNINDENT
  168703. .IP \(bu 2
  168704. 8e8a3a2897 Merge pull request \fI\%#46261\fP from rallytime/merge\-2017.7
  168705. .INDENT 2.0
  168706. .IP \(bu 2
  168707. 8256ae5ee5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  168708. .INDENT 2.0
  168709. .IP \(bu 2
  168710. 140ef4d6b9 Merge pull request \fI\%#46253\fP from rallytime/doc\-banners
  168711. .INDENT 2.0
  168712. .IP \(bu 2
  168713. 07ed8c7db3 Update docbanner for SaltConf18
  168714. .UNINDENT
  168715. .IP \(bu 2
  168716. 9fe86ee520 Merge pull request \fI\%#46179\fP from wedge\-jarrad/cifs\-remount\-fix
  168717. .INDENT 2.0
  168718. .IP \(bu 2
  168719. 9ca25c4313 Add credentials and secretfile to mount.mounted mount_invisible_keys
  168720. .UNINDENT
  168721. .UNINDENT
  168722. .UNINDENT
  168723. .UNINDENT
  168724. .UNINDENT
  168725. .IP \(bu 2
  168726. \fBPR\fP \fI\%#46421\fP: (\fI\%bdrung\fP) Skip SSHPasswordTests if ssh binary is not found
  168727. @ \fI2018\-03\-09 16:21:02 UTC\fP
  168728. .INDENT 2.0
  168729. .IP \(bu 2
  168730. 9c089aa4de Merge pull request \fI\%#46421\fP from bdrung/skip\-ssh\-tests\-if\-ssh\-is\-missing
  168731. .IP \(bu 2
  168732. 3d6f658309 Skip SSHPasswordTests if ssh binary is not found
  168733. .UNINDENT
  168734. .IP \(bu 2
  168735. \fBPR\fP \fI\%#46453\fP: (\fI\%bdrung\fP) Fix various spelling mistakes in 2018.3
  168736. @ \fI2018\-03\-09 14:48:33 UTC\fP
  168737. .INDENT 2.0
  168738. .IP \(bu 2
  168739. \fBPR\fP \fI\%#46446\fP: (\fI\%bdrung\fP) Fix various typos (refs: \fI\%#46453\fP)
  168740. .IP \(bu 2
  168741. 4cbfde5839 Merge pull request \fI\%#46453\fP from bdrung/fix\-typos\-2018.3
  168742. .IP \(bu 2
  168743. 3d37eca847 Fix various spelling mistakes
  168744. .UNINDENT
  168745. .IP \(bu 2
  168746. \fBISSUE\fP \fI\%#44032\fP: (\fI\%PhilippeAB\fP) blockreplace marker_end isn\(aqt applied with newline (refs: \fI\%#46430\fP)
  168747. .IP \(bu 2
  168748. \fBPR\fP \fI\%#46437\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state (2018.3 branch)
  168749. @ \fI2018\-03\-08 15:38:53 UTC\fP
  168750. .INDENT 2.0
  168751. .IP \(bu 2
  168752. \fBPR\fP \fI\%#46430\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state (refs: \fI\%#46437\fP)
  168753. .IP \(bu 2
  168754. a43d999fb8 Merge pull request \fI\%#46437\fP from terminalmage/issue44032\-2018.3
  168755. .IP \(bu 2
  168756. 4798187035 Improve reliability/idempotence of file.blockreplace state (2018.3 branch)
  168757. .UNINDENT
  168758. .IP \(bu 2
  168759. \fBPR\fP \fI\%#46328\fP: (\fI\%dincamihai\fP) Fix openscap push
  168760. @ \fI2018\-03\-07 17:51:41 UTC\fP
  168761. .INDENT 2.0
  168762. .IP \(bu 2
  168763. 0c66507aff Merge pull request \fI\%#46328\fP from dincamihai/2018.3.0rc1
  168764. .IP \(bu 2
  168765. b5e508f339 Fix openscap push
  168766. .UNINDENT
  168767. .IP \(bu 2
  168768. \fBPR\fP \fI\%#46174\fP: (\fI\%twangboy\fP) Fix a unicode issue with the git module on Windows
  168769. @ \fI2018\-03\-06 18:53:53 UTC\fP
  168770. .INDENT 2.0
  168771. .IP \(bu 2
  168772. 82cb2ea5a0 Merge pull request \fI\%#46174\fP from twangboy/win_fix_test_git_2
  168773. .IP \(bu 2
  168774. 80e3a47dd4 Add output_encoding argument to git state, and add docs
  168775. .IP \(bu 2
  168776. 661a0687ec Fix git utf\-8 issues for Windows
  168777. .UNINDENT
  168778. .IP \(bu 2
  168779. \fBPR\fP \fI\%#46235\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_ssh\fP for Windows
  168780. @ \fI2018\-03\-05 20:39:44 UTC\fP
  168781. .INDENT 2.0
  168782. .IP \(bu 2
  168783. 7690cf8564 Merge pull request \fI\%#46235\fP from twangboy/win_fix_test_ssh
  168784. .IP \(bu 2
  168785. 9ea02d7045 Use write instead of writelines for Windows
  168786. .UNINDENT
  168787. .IP \(bu 2
  168788. \fBPR\fP \fI\%#46332\fP: (\fI\%terminalmage\fP) Update the merge\-forward docs to reference the 2018.3 branch
  168789. @ \fI2018\-03\-05 19:39:56 UTC\fP
  168790. .INDENT 2.0
  168791. .IP \(bu 2
  168792. c4f366cdd9 Merge pull request \fI\%#46332\fP from terminalmage/merge\-forward\-docs
  168793. .IP \(bu 2
  168794. 0411845cec Update the merge\-forward docs to reference the 2018.3 branch
  168795. .UNINDENT
  168796. .IP \(bu 2
  168797. \fBPR\fP \fI\%#46307\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  168798. @ \fI2018\-03\-03 12:56:07 UTC\fP
  168799. .INDENT 2.0
  168800. .IP \(bu 2
  168801. 241611aca5 Merge pull request \fI\%#46307\fP from rallytime/merge\-2018.3
  168802. .IP \(bu 2
  168803. c9fa21f62c Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  168804. .UNINDENT
  168805. .IP \(bu 2
  168806. \fBPR\fP \fI\%#46314\fP: (\fI\%terminalmage\fP) Merge 2017.7 branch into 2018.3
  168807. @ \fI2018\-03\-03 12:54:27 UTC\fP
  168808. .INDENT 2.0
  168809. .IP \(bu 2
  168810. 30c34f0c62 Merge pull request \fI\%#46314\fP from terminalmage/merge\-2017.7\-2018.3
  168811. .IP \(bu 2
  168812. 61ab47ee70 Merge branch \(aq2017.7\(aq into merge\-2017.7\-2018.3
  168813. .INDENT 2.0
  168814. .IP \(bu 2
  168815. 88a3166589 Merge pull request \fI\%#46276\fP from terminalmage/issue44046
  168816. .INDENT 2.0
  168817. .IP \(bu 2
  168818. a14d4daf8c salt.utils.docker.translate_input: operate on deepcopy of kwargs
  168819. .UNINDENT
  168820. .IP \(bu 2
  168821. da60399b8f Merge pull request \fI\%#46183\fP from oeuftete/fix\-docker\-container\-running\-host\-config\-ulimits
  168822. .INDENT 2.0
  168823. .IP \(bu 2
  168824. 5b09644429 Sort lists from Ulimits before comparing
  168825. .IP \(bu 2
  168826. 0b80f02226 Update old dockerng doc ref
  168827. .UNINDENT
  168828. .IP \(bu 2
  168829. 509429f08c Merge pull request \fI\%#46260\fP from terminalmage/git_pillar
  168830. .INDENT 2.0
  168831. .IP \(bu 2
  168832. b1ce2501fd Normalize global git_pillar/winrepo config items
  168833. .UNINDENT
  168834. .IP \(bu 2
  168835. a97a3e6fb0 Merge pull request \fI\%#46101\fP from jfindlay/openrc_ret
  168836. .INDENT 2.0
  168837. .IP \(bu 2
  168838. 2eef3c65a6 tests.unit.modules.gentoo_service add retcode arg
  168839. .IP \(bu 2
  168840. 81ec66fd8b modules.gentoo_service handle stopped retcode
  168841. .UNINDENT
  168842. .IP \(bu 2
  168843. 1a17593c05 Merge pull request \fI\%#46254\fP from rallytime/enterprise\-banner
  168844. .INDENT 2.0
  168845. .IP \(bu 2
  168846. f5fae3dedf Update enterprise banner
  168847. .UNINDENT
  168848. .IP \(bu 2
  168849. 8c50ff32bd Merge pull request \fI\%#46250\fP from terminalmage/runner\-docs
  168850. .INDENT 2.0
  168851. .IP \(bu 2
  168852. 91b4895087 Add documentation to the fileserver runner
  168853. .UNINDENT
  168854. .IP \(bu 2
  168855. 53067cca43 Merge pull request \fI\%#46243\fP from racker\-markh/fix\-openstack\-private\-network\-issue
  168856. .INDENT 2.0
  168857. .IP \(bu 2
  168858. 50c1e140f0 Don\(aqt check deny private_ips already in the original list of private_ips
  168859. .UNINDENT
  168860. .IP \(bu 2
  168861. 15405c8760 Merge pull request \fI\%#46239\fP from terminalmage/issue46109
  168862. .INDENT 2.0
  168863. .IP \(bu 2
  168864. 586d8b0dcf archive.extracted: don\(aqt check source file when if_missing path exists
  168865. .UNINDENT
  168866. .UNINDENT
  168867. .UNINDENT
  168868. .IP \(bu 2
  168869. \fBISSUE\fP \fI\%#33177\fP: (\fI\%robnagler\fP) pillar.stack should not continue after errors (refs: \fI\%#46287\fP)
  168870. .IP \(bu 2
  168871. \fBPR\fP \fI\%#46287\fP: (\fI\%bbinet\fP) Update PillarStack stack.py to latest upstream version
  168872. @ \fI2018\-03\-02 21:39:52 UTC\fP
  168873. .INDENT 2.0
  168874. .IP \(bu 2
  168875. 194b0317ac Merge pull request \fI\%#46287\fP from bbinet/upstream\-pillarstack
  168876. .IP \(bu 2
  168877. b14b6f2c95 Update PillarStack stack.py to latest upstream version
  168878. .UNINDENT
  168879. .IP \(bu 2
  168880. \fBPR\fP \fI\%#46227\fP: (\fI\%Ch3LL\fP) Mock file_client call in smtp return test
  168881. @ \fI2018\-02\-28 22:12:22 UTC\fP
  168882. .INDENT 2.0
  168883. .IP \(bu 2
  168884. 7382654c70 Merge pull request \fI\%#46227\fP from Ch3LL/smtp_file_client
  168885. .IP \(bu 2
  168886. 280dc9a2b6 Mock file_client call in smtp return test
  168887. .UNINDENT
  168888. .IP \(bu 2
  168889. \fBPR\fP \fI\%#46232\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  168890. @ \fI2018\-02\-28 19:16:37 UTC\fP
  168891. .INDENT 2.0
  168892. .IP \(bu 2
  168893. 123625213e Merge pull request \fI\%#46232\fP from rallytime/merge\-2018.3
  168894. .IP \(bu 2
  168895. 04f24c1794 Lint: fix from a bad merge
  168896. .IP \(bu 2
  168897. aad61c77bd Update old utils paths to new paths
  168898. .IP \(bu 2
  168899. 7243baf2c0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  168900. .INDENT 2.0
  168901. .IP \(bu 2
  168902. 633e1208e4 Merge pull request \fI\%#46221\fP from terminalmage/salt\-jenkins\-854
  168903. .INDENT 2.0
  168904. .IP \(bu 2
  168905. 0eb012659c Fix hanging tests in integration suite
  168906. .UNINDENT
  168907. .IP \(bu 2
  168908. 7917277345 Merge pull request \fI\%#46214\fP from vutny/formulas\-readme\-formatting
  168909. .INDENT 2.0
  168910. .IP \(bu 2
  168911. d702846961 [DOC] Replace \fInote\fP rST block for GitHub
  168912. .UNINDENT
  168913. .IP \(bu 2
  168914. a2e099b744 Merge pull request \fI\%#46203\fP from Ch3LL/7.5_release
  168915. .INDENT 2.0
  168916. .IP \(bu 2
  168917. 6ddf3246ce Add 2017.7.5 Release Notes File
  168918. .UNINDENT
  168919. .IP \(bu 2
  168920. 973b227818 Merge pull request \fI\%#46201\fP from rallytime/merge\-2017.7
  168921. .INDENT 2.0
  168922. .IP \(bu 2
  168923. 9ac2101baa Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  168924. .IP \(bu 2
  168925. a4c5417d23 Merge pull request \fI\%#46132\fP from rallytime/2016.11_update_version_doc
  168926. .INDENT 2.0
  168927. .IP \(bu 2
  168928. d2196b6df3 Update release versions for the 2016.11 branch
  168929. .UNINDENT
  168930. .UNINDENT
  168931. .IP \(bu 2
  168932. 89cf2e5061 Merge pull request \fI\%#46139\fP from bdrung/os\-grains
  168933. .INDENT 2.0
  168934. .IP \(bu 2
  168935. 0b445f2a37 tests: Add unit tests for _parse_os_release()
  168936. .IP \(bu 2
  168937. f6069b77ed Fix osfinger grain on Debian
  168938. .IP \(bu 2
  168939. 8dde55a761 tests: Add os_grains test cases for Debian
  168940. .IP \(bu 2
  168941. ff02ab9937 tests: Add Ubuntu 17.10 (artful) os_grains test case
  168942. .IP \(bu 2
  168943. 77d5356aba Fix incorrect oscodename grain on Ubuntu
  168944. .IP \(bu 2
  168945. 7e62dc9fd2 tests: Support reading os\-release files from disk
  168946. .IP \(bu 2
  168947. a92ec0db1b Make _parse_os_release() always callable
  168948. .IP \(bu 2
  168949. eee1fe5b38 tests: Dissolve _run_ubuntu_os_grains_tests
  168950. .IP \(bu 2
  168951. 1d6ef731fe tests: Deduplicate _run_os_grains_tests()
  168952. .UNINDENT
  168953. .IP \(bu 2
  168954. c8c71e75ca Merge pull request \fI\%#46133\fP from rallytime/2017.7_update_version_doc
  168955. .INDENT 2.0
  168956. .IP \(bu 2
  168957. 0ed338e643 Update release versions for the 2017.7 branch
  168958. .UNINDENT
  168959. .IP \(bu 2
  168960. 390d592aa6 Merge pull request \fI\%#46185\fP from terminalmage/issue46124
  168961. .INDENT 2.0
  168962. .IP \(bu 2
  168963. 3b58dd0da0 gitfs: Fix detection of base env when its ref is also mapped to a different env
  168964. .UNINDENT
  168965. .IP \(bu 2
  168966. 705caa8cca Merge pull request \fI\%#46148\fP from rallytime/merge\-2017.7
  168967. .INDENT 2.0
  168968. .IP \(bu 2
  168969. 25deebf7a6 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  168970. .INDENT 2.0
  168971. .IP \(bu 2
  168972. b5b083fd26 Merge pull request \fI\%#46074\fP from Ch3LL/update\-7.4
  168973. .INDENT 2.0
  168974. .IP \(bu 2
  168975. 8d0eeeb059 Update 2017.7.4 Release Notes with new fixes
  168976. .UNINDENT
  168977. .IP \(bu 2
  168978. 32f3d00e44 Merge pull request \fI\%#46066\fP from rallytime/pin\-tornado
  168979. .INDENT 2.0
  168980. .IP \(bu 2
  168981. 6dc1a3b9dc Pin tornado version in requirements file
  168982. .UNINDENT
  168983. .IP \(bu 2
  168984. 85761ee650 Merge pull request \fI\%#46036\fP from terminalmage/issue43769
  168985. .INDENT 2.0
  168986. .IP \(bu 2
  168987. e2140d9a84 Mock the ssh.key_is_encrypted utils func
  168988. .IP \(bu 2
  168989. 169924b3fe Move ssh.key_is_encrypted to a utils module temporarily
  168990. .IP \(bu 2
  168991. 54f4d78f7a Only keep ssh.py in the Windows installer
  168992. .IP \(bu 2
  168993. 5f04531e1b Keep ssh state and execution modules in the installer
  168994. .IP \(bu 2
  168995. f2b69f703d git.latest: Fix regression with identity file usage
  168996. .UNINDENT
  168997. .UNINDENT
  168998. .UNINDENT
  168999. .IP \(bu 2
  169000. 10a47dcbc4 Merge pull request \fI\%#46137\fP from damon\-atkins/2017.7_fix_ec2_pillar2
  169001. .INDENT 2.0
  169002. .IP \(bu 2
  169003. 99e7f6a7d3 update ec2 pillar arguments with better names
  169004. .UNINDENT
  169005. .IP \(bu 2
  169006. d74cb14557 Merge pull request \fI\%#46145\fP from terminalmage/issue46004
  169007. .INDENT 2.0
  169008. .IP \(bu 2
  169009. 467ff841cd pillarenv argument should default to None and not the value from opts
  169010. .IP \(bu 2
  169011. 2a185855ea Better solution for fixing the opts munging in pillar.show_pillar runner
  169012. .IP \(bu 2
  169013. e2c4702e0c Update tests to reflect changes to the SaltCacheLoader
  169014. .IP \(bu 2
  169015. f9301fcc34 Document behavior when orchestration runnner invoked with non\-orch states
  169016. .IP \(bu 2
  169017. 9644579cd0 Instantiate the SaltCacheLoader\(aqs fileclient in the __init__
  169018. .IP \(bu 2
  169019. f9a6c86e21 salt.runners.pillar.show_pillar: don\(aqt modify master opts
  169020. .IP \(bu 2
  169021. e0940a9fc4 Properly detect use of the state.orch alias and add orch jid to kwargs
  169022. .UNINDENT
  169023. .UNINDENT
  169024. .UNINDENT
  169025. .IP \(bu 2
  169026. \fBISSUE\fP \fI\%#42932\fP: (\fI\%bobrik\fP) cmd.run with bg: true doesn\(aqt fail properly (refs: \fI\%#46172\fP, \fI\%#45932\fP)
  169027. .IP \(bu 2
  169028. \fBPR\fP \fI\%#46172\fP: (\fI\%The\-Loeki\fP) cmdmod: reimplementation of \fI\%#45932\fP for Oxygen
  169029. @ \fI2018\-02\-28 19:14:26 UTC\fP
  169030. .INDENT 2.0
  169031. .IP \(bu 2
  169032. \fBPR\fP \fI\%#45932\fP: (\fI\%The\-Loeki\fP) Fix cmd run_all bg error (refs: \fI\%#46172\fP)
  169033. .IP \(bu 2
  169034. \fBPR\fP \fI\%#39980\fP: (\fI\%vutny\fP) [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function (refs: \fI\%#46172\fP, \fI\%#45932\fP)
  169035. .IP \(bu 2
  169036. 20d869c228 Merge pull request \fI\%#46172\fP from The\-Loeki/fix_cmd_run_all_bg_oxygen
  169037. .IP \(bu 2
  169038. 3ecf5018d0 Merge branch \(aq2018.3\(aq into fix_cmd_run_all_bg_oxygen
  169039. .IP \(bu 2
  169040. b5315e817b Merge branch \(aq2018.3\(aq into fix_cmd_run_all_bg_oxygen
  169041. .IP \(bu 2
  169042. beabf4f06b cmdmod: reimplementation of \fI\%#45932\fP for Oxygen
  169043. .UNINDENT
  169044. .IP \(bu 2
  169045. \fBPR\fP \fI\%#46238\fP: (\fI\%terminalmage\fP) Don\(aqt allow salt.utils.files.fopen() to open stdin/stdout/stderr
  169046. @ \fI2018\-02\-28 19:08:23 UTC\fP
  169047. .INDENT 2.0
  169048. .IP \(bu 2
  169049. 687575b582 Merge pull request \fI\%#46238\fP from terminalmage/fds\-in\-fopen
  169050. .IP \(bu 2
  169051. fe1527a3c4 Don\(aqt allow salt.utils.files.fopen() to open stdin/stdout/stderr
  169052. .UNINDENT
  169053. .IP \(bu 2
  169054. \fBPR\fP \fI\%#46219\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_network\fP for Windows
  169055. @ \fI2018\-02\-28 15:45:02 UTC\fP
  169056. .INDENT 2.0
  169057. .IP \(bu 2
  169058. 3da5dcb313 Merge pull request \fI\%#46219\fP from twangboy/win_fix_inet_pton
  169059. .IP \(bu 2
  169060. 46f1d2cc09 Use six.text_type instead of six.u
  169061. .UNINDENT
  169062. .IP \(bu 2
  169063. \fBPR\fP \fI\%#46228\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pip\fP for Windows
  169064. @ \fI2018\-02\-28 15:37:49 UTC\fP
  169065. .INDENT 2.0
  169066. .IP \(bu 2
  169067. 44343f8063 Merge pull request \fI\%#46228\fP from twangboy/win_fix_test_pip
  169068. .IP \(bu 2
  169069. 415821eee9 Fix encoding issue
  169070. .UNINDENT
  169071. .IP \(bu 2
  169072. \fBPR\fP \fI\%#46198\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.0rc1 to 2018.3
  169073. @ \fI2018\-02\-27 15:17:51 UTC\fP
  169074. .INDENT 2.0
  169075. .IP \(bu 2
  169076. adc8950bbe Merge pull request \fI\%#46198\fP from rallytime/merge\-2018.3
  169077. .IP \(bu 2
  169078. 1b4dc71930 Lint fix
  169079. .IP \(bu 2
  169080. 776f2ea5d7 Merge branch \(aq2018.3.0rc1\(aq into \(aq2018.3\(aq
  169081. .UNINDENT
  169082. .IP \(bu 2
  169083. \fBISSUE\fP \fI\%#45849\fP: (\fI\%Epiclemonaid\fP) XenServer Provisioning errors out on this line. removing it succeeds. (refs: \fI\%#46168\fP)
  169084. .IP \(bu 2
  169085. \fBPR\fP \fI\%#46168\fP: (\fI\%gtmanfred\fP) driver and provider should be specified
  169086. @ \fI2018\-02\-26 16:17:13 UTC\fP
  169087. .INDENT 2.0
  169088. .IP \(bu 2
  169089. 06d2dff3ac Merge pull request \fI\%#46168\fP from gtmanfred/2018.3
  169090. .IP \(bu 2
  169091. ac99bd26db driver and provider should be specified
  169092. .UNINDENT
  169093. .IP \(bu 2
  169094. \fBPR\fP \fI\%#46161\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  169095. @ \fI2018\-02\-26 15:29:39 UTC\fP
  169096. .INDENT 2.0
  169097. .IP \(bu 2
  169098. 605e5eff73 Merge pull request \fI\%#46161\fP from rallytime/merge\-2018.3
  169099. .IP \(bu 2
  169100. 69ac94baca Update utils paths
  169101. .IP \(bu 2
  169102. cffbf52c10 Lint fix: remove extra line
  169103. .IP \(bu 2
  169104. 79bed6cff1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  169105. .INDENT 2.0
  169106. .IP \(bu 2
  169107. 0398ce0482 Merge pull request \fI\%#46135\fP from rallytime/bp\-46088
  169108. .INDENT 2.0
  169109. .IP \(bu 2
  169110. 57a60f62a3 fix kernel subpackages install bug
  169111. .UNINDENT
  169112. .IP \(bu 2
  169113. 1fcbbd1e02 Merge pull request \fI\%#46136\fP from rallytime/bp\-46115
  169114. .INDENT 2.0
  169115. .IP \(bu 2
  169116. 0a481d707f update digitalocean salt\-cloud driver
  169117. .UNINDENT
  169118. .IP \(bu 2
  169119. 11e5e8eb86 Merge pull request \fI\%#45911\fP from twangboy/win_fix_lgpo_unicode
  169120. .INDENT 2.0
  169121. .IP \(bu 2
  169122. bcde5cc625 Update log statement
  169123. .IP \(bu 2
  169124. e9fa53d3b7 Change the Invalid Data Message
  169125. .IP \(bu 2
  169126. c818d4b791 Convert reg values to unicode for debug
  169127. .UNINDENT
  169128. .IP \(bu 2
  169129. 524a6a72a0 Merge pull request \fI\%#46123\fP from gtmanfred/2017.7
  169130. .INDENT 2.0
  169131. .IP \(bu 2
  169132. 8d36730ef7 If no pubkey is passed in openmode fail
  169133. .UNINDENT
  169134. .IP \(bu 2
  169135. e48fa58012 Merge pull request \fI\%#46131\fP from vutny/doc\-formula\-formatting
  169136. .INDENT 2.0
  169137. .IP \(bu 2
  169138. d8fb051e44 [DOC] Fix code\-blocks for reStructuredText
  169139. .UNINDENT
  169140. .IP \(bu 2
  169141. 6cea44ee95 Merge pull request \fI\%#46118\fP from rallytime/bp\-44603
  169142. .INDENT 2.0
  169143. .IP \(bu 2
  169144. 2a2c23c66b Fix acme state to correctly return on test
  169145. .UNINDENT
  169146. .IP \(bu 2
  169147. 16c382b55b Merge pull request \fI\%#46121\fP from rallytime/merge\-2017.7
  169148. .INDENT 2.0
  169149. .IP \(bu 2
  169150. 4c2f504a85 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169151. .INDENT 2.0
  169152. .IP \(bu 2
  169153. e197a0fbc5 Merge pull request \fI\%#46076\fP from rallytime/bp\-46066
  169154. .INDENT 2.0
  169155. .IP \(bu 2
  169156. b94d73c53e Pin tornado version in requirements file
  169157. .UNINDENT
  169158. .IP \(bu 2
  169159. c72c1bde5f Merge pull request \fI\%#46093\fP from wedge\-jarrad/contributing\-doc\-typo
  169160. .INDENT 2.0
  169161. .IP \(bu 2
  169162. 5a0fe104f7 Fix contributing doc typo
  169163. .UNINDENT
  169164. .IP \(bu 2
  169165. 3cb83ea87e Merge pull request \fI\%#45992\fP from bgridley/fix\-routes\-present\-state
  169166. .INDENT 2.0
  169167. .IP \(bu 2
  169168. 679787699c Add vpc_peering_connection_id to describe_route_tables route_keys
  169169. .UNINDENT
  169170. .IP \(bu 2
  169171. 8a60635da0 Merge pull request \fI\%#46000\fP from terminalmage/issue45910
  169172. .INDENT 2.0
  169173. .IP \(bu 2
  169174. 8cf13325ee salt.states.reg.present: Prevent traceback when reg data is binary
  169175. .UNINDENT
  169176. .IP \(bu 2
  169177. 1f44e285dc Merge pull request \fI\%#46011\fP from terminalmage/fix\-solaris\-runas
  169178. .INDENT 2.0
  169179. .IP \(bu 2
  169180. 8ee0a3a28b Move Solaris USER workaround up a bit
  169181. .IP \(bu 2
  169182. 13cdb52690 cmdmod.py: runas workaround for platforms that don\(aqt set a USER env var
  169183. .UNINDENT
  169184. .IP \(bu 2
  169185. 30fb8f7be0 Merge pull request \fI\%#45467\fP from twangboy/win_exclude_hidden
  169186. .INDENT 2.0
  169187. .IP \(bu 2
  169188. ea41215646 Make the regex pattern less greedy
  169189. .IP \(bu 2
  169190. 6d223cffa7 Add tip about passing bogus saltenv
  169191. .IP \(bu 2
  169192. 1282ae3a93 Skip hidden first
  169193. .IP \(bu 2
  169194. 437a457911 Skip hidden dirs in genrepo
  169195. .IP \(bu 2
  169196. 87dc554dc3 Add final updates to docs
  169197. .IP \(bu 2
  169198. 3646d5c897 Fix some docs formatting, add some warnings
  169199. .IP \(bu 2
  169200. 35c81faf5a Log the source_dir when caching the files
  169201. .IP \(bu 2
  169202. 91c3da8dfd Improve docs for pkg.refresh_db
  169203. .IP \(bu 2
  169204. 4803d92707 Add some documentation
  169205. .IP \(bu 2
  169206. 08b82e0875 Fix lint error, use raw
  169207. .IP \(bu 2
  169208. 2f712691cf Exclude hidden directories in pkg.refresh_db
  169209. .UNINDENT
  169210. .UNINDENT
  169211. .UNINDENT
  169212. .IP \(bu 2
  169213. b92346645b Merge pull request \fI\%#46107\fP from amendlik/yumpkg\-assumeyes
  169214. .INDENT 2.0
  169215. .IP \(bu 2
  169216. 8d9a432fb2 Add \-\-assumeyes to yum/dnf commands in yumpkg.refresh_db
  169217. .UNINDENT
  169218. .IP \(bu 2
  169219. 14fe423e0c Merge pull request \fI\%#46094\fP from kstreee/fix\-memory\-leak
  169220. .INDENT 2.0
  169221. .IP \(bu 2
  169222. 48080a1bae Fixes memory leak, saltclients should be cleaned after used.
  169223. .IP \(bu 2
  169224. aba00805f4 Adds set_close_callback function to removes stream instance after closed from a set streams.
  169225. .UNINDENT
  169226. .IP \(bu 2
  169227. 320c2037e1 Merge pull request \fI\%#46097\fP from vutny/fix\-https\-link
  169228. .INDENT 2.0
  169229. .IP \(bu 2
  169230. 2062fd0e5c [DOC] Put https link to the formulas doc page
  169231. .UNINDENT
  169232. .IP \(bu 2
  169233. 0eb137fb4e Merge pull request \fI\%#46103\fP from bdrung/2017.7
  169234. .INDENT 2.0
  169235. .IP \(bu 2
  169236. dd3f936557 Fix skipping Kubernetes tests if client is not installed
  169237. .UNINDENT
  169238. .IP \(bu 2
  169239. c3a938e994 Merge pull request \fI\%#46070\fP from Ch3LL/fix\-doc\-dns
  169240. .INDENT 2.0
  169241. .IP \(bu 2
  169242. 2a5d855d97 add required arg to dns_check jinja doc example
  169243. .UNINDENT
  169244. .IP \(bu 2
  169245. 01042e9d77 Merge pull request \fI\%#46067\fP from rallytime/bp\-45994
  169246. .INDENT 2.0
  169247. .IP \(bu 2
  169248. a07bb48726 Correct formatting for lint
  169249. .IP \(bu 2
  169250. e8678f633d Fix Comment being None not \(aq\(aq and inject quotes into the TXT ChangeRecords
  169251. .UNINDENT
  169252. .IP \(bu 2
  169253. 5e0e2a30e2 Merge pull request \fI\%#45932\fP from The\-Loeki/fix_cmd_run_all_bg
  169254. .INDENT 2.0
  169255. .IP \(bu 2
  169256. f83da27ca5 Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  169257. .IP \(bu 2
  169258. 771758fbca Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  169259. .IP \(bu 2
  169260. c54fcf7a2d cmd: move separate DRY logging blocks into _run, prevent logging on bg=True, don\(aqt use_vt on bg
  169261. .IP \(bu 2
  169262. ebb1f81a9b cmd run: when running in bg, force ignore_retcode=True
  169263. .UNINDENT
  169264. .IP \(bu 2
  169265. 45ace39961 Merge pull request \fI\%#46062\fP from vutny/pg\-user\-state\-fix\-typo
  169266. .INDENT 2.0
  169267. .IP \(bu 2
  169268. a5fbe4e95e Fix typo in postgres_user.present state function
  169269. .UNINDENT
  169270. .IP \(bu 2
  169271. edcb64de76 Merge pull request \fI\%#45763\fP from twangboy/win_fix_path_rehash
  169272. .INDENT 2.0
  169273. .IP \(bu 2
  169274. b9a2bc7b29 Fix hyperlinks
  169275. .IP \(bu 2
  169276. 29912adc15 Move the test_rehash test to test_win_functions
  169277. .IP \(bu 2
  169278. adc594c183 Remove duplicate link
  169279. .IP \(bu 2
  169280. e84628c1eb Add some comments to the code
  169281. .IP \(bu 2
  169282. d50d5f582f Add additional info to docs for \fIbroadcast_setting_change\fP
  169283. .IP \(bu 2
  169284. 3a54e09cd9 Rename setting to message
  169285. .IP \(bu 2
  169286. a3f9e99bc0 Change to a generic function to broadcast change
  169287. .IP \(bu 2
  169288. 79299361c3 Create refresh_environment salt util
  169289. .IP \(bu 2
  169290. 967b83940c Fix rehash function
  169291. .UNINDENT
  169292. .IP \(bu 2
  169293. a46fbc546c Merge pull request \fI\%#46042\fP from jfindlay/file_tree_doc
  169294. .INDENT 2.0
  169295. .IP \(bu 2
  169296. 0ba4954a4b salt.pillar.file_tree revise module documentation
  169297. .IP \(bu 2
  169298. 3c6a5bf967 salt.pillar.file_tree provide better debug info
  169299. .IP \(bu 2
  169300. bb1cdc451e salt.pillar.file_tree no stack trace when nodegroups undefined
  169301. .UNINDENT
  169302. .IP \(bu 2
  169303. de86126dd8 Merge pull request \fI\%#46013\fP from rallytime/bp\-45598
  169304. .INDENT 2.0
  169305. .IP \(bu 2
  169306. 2ea3fef543 No lazy logging
  169307. .IP \(bu 2
  169308. f427b0febc Change formatting style of logging lines per review
  169309. .IP \(bu 2
  169310. ebb244396b Patch around ResourceRecords needing to be present for AliasTarget entries to work
  169311. .UNINDENT
  169312. .UNINDENT
  169313. .UNINDENT
  169314. .IP \(bu 2
  169315. \fBPR\fP \fI\%#46160\fP: (\fI\%rallytime\fP) Mark 2 tests as flaky
  169316. @ \fI2018\-02\-23 19:10:06 UTC\fP
  169317. .INDENT 2.0
  169318. .IP \(bu 2
  169319. 05b771bfd7 Merge pull request \fI\%#46160\fP from rallytime/flaky\-tests
  169320. .IP \(bu 2
  169321. 49e49ae51b Mark 2 tests as flaky
  169322. .UNINDENT
  169323. .IP \(bu 2
  169324. \fBPR\fP \fI\%#46006\fP: (\fI\%dincamihai\fP) Remove obsolete unicode handling in pkg.info_installed
  169325. @ \fI2018\-02\-22 19:22:36 UTC\fP
  169326. .INDENT 2.0
  169327. .IP \(bu 2
  169328. 9b2bc1982c Merge pull request \fI\%#46006\fP from dincamihai/oxygen.rc1
  169329. .IP \(bu 2
  169330. 99079fc442 Remove obsolete unicode handling in pkg.info_installed
  169331. .UNINDENT
  169332. .IP \(bu 2
  169333. \fBPR\fP \fI\%#46078\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  169334. @ \fI2018\-02\-20 21:49:04 UTC\fP
  169335. .INDENT 2.0
  169336. .IP \(bu 2
  169337. 93dab45307 Merge pull request \fI\%#46078\fP from rallytime/merge\-oxygen
  169338. .IP \(bu 2
  169339. 2d0f81fd1b Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  169340. .UNINDENT
  169341. .IP \(bu 2
  169342. \fBISSUE\fP \fI\%#45938\fP: (\fI\%edgan\fP) zookeeper.present state doesn\(aqt deal with an existing zode with no ACL specified (refs: \fI\%#46043\fP)
  169343. .IP \(bu 2
  169344. \fBPR\fP \fI\%#46071\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46043\fP to oxygen
  169345. @ \fI2018\-02\-16 19:56:36 UTC\fP
  169346. .INDENT 2.0
  169347. .IP \(bu 2
  169348. \fBPR\fP \fI\%#46043\fP: (\fI\%edgan\fP) Allow zookeeper znode creation to not require an ACL (refs: \fI\%#46071\fP)
  169349. .IP \(bu 2
  169350. 8d99c3b8fe Merge pull request \fI\%#46071\fP from rallytime/bp\-46043
  169351. .IP \(bu 2
  169352. b82c8bd630 Allow zookeeper znode creation to not require an ACL
  169353. .UNINDENT
  169354. .IP \(bu 2
  169355. \fBPR\fP \fI\%#46056\fP: (\fI\%Ch3LL\fP) Fix mac_assistive module not loading
  169356. @ \fI2018\-02\-16 14:57:46 UTC\fP
  169357. .INDENT 2.0
  169358. .IP \(bu 2
  169359. 5a31422432 Merge pull request \fI\%#46056\fP from Ch3LL/ver_mac
  169360. .IP \(bu 2
  169361. e44f5133c5 Fix mac_assistive module not loading
  169362. .UNINDENT
  169363. .IP \(bu 2
  169364. \fBPR\fP \fI\%#46041\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  169365. @ \fI2018\-02\-16 14:55:51 UTC\fP
  169366. .INDENT 2.0
  169367. .IP \(bu 2
  169368. cdca28f5da Merge pull request \fI\%#46041\fP from rallytime/merge\-oxygen
  169369. .IP \(bu 2
  169370. e060a74fd8 Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  169371. .INDENT 2.0
  169372. .IP \(bu 2
  169373. 07e5735471 Merge pull request \fI\%#46016\fP from rallytime/bp\-45826
  169374. .INDENT 2.0
  169375. .IP \(bu 2
  169376. 1916e5c4a4 Fix selinux.fcontext_policy_present for Centos 6
  169377. .UNINDENT
  169378. .IP \(bu 2
  169379. a1f4092811 Merge pull request \fI\%#46015\fP from rallytime/bp\-45785
  169380. .INDENT 2.0
  169381. .IP \(bu 2
  169382. ef6ffb1492 Resolve linting errors
  169383. .IP \(bu 2
  169384. 8047066c46 Remove unused import
  169385. .IP \(bu 2
  169386. 8f7c45935a Add tests for salt.modules.selinux.fcontext_get_policy
  169387. .IP \(bu 2
  169388. bafb7b4e6e Ensure parsed fields are stripped
  169389. .IP \(bu 2
  169390. a830a6e819 m/selinux.fcontext_get_policy allow long filespecs
  169391. .UNINDENT
  169392. .IP \(bu 2
  169393. 96097c037e Merge pull request \fI\%#46012\fP from rallytime/bp\-45462
  169394. .INDENT 2.0
  169395. .IP \(bu 2
  169396. 9f76836a6c emit port cli version, variants as separate args
  169397. .UNINDENT
  169398. .IP \(bu 2
  169399. 1279924f5f Merge pull request \fI\%#45991\fP from terminalmage/fix\-duplicate\-extra\-opts
  169400. .INDENT 2.0
  169401. .IP \(bu 2
  169402. 916766f651 yumpkg: Fix a couple issues with _get_extra_opts
  169403. .UNINDENT
  169404. .IP \(bu 2
  169405. 8b9adc258e Merge pull request \fI\%#46017\fP from rallytime/merge\-2017.7
  169406. .INDENT 2.0
  169407. .IP \(bu 2
  169408. a06645ce71 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  169409. .IP \(bu 2
  169410. 6d534c6e7e Merge pull request \fI\%#46009\fP from Ch3LL/rn_7.4
  169411. .INDENT 2.0
  169412. .IP \(bu 2
  169413. ac0baf4b34 Add 2017.7.4 Release Notes with PRs
  169414. .UNINDENT
  169415. .IP \(bu 2
  169416. ca76a0b328 Merge pull request \fI\%#45981\fP from gtmanfred/2017.7.3
  169417. .INDENT 2.0
  169418. .IP \(bu 2
  169419. 0d448457dc apparently local is not set by default
  169420. .IP \(bu 2
  169421. 2a92f4bc16 use local config for vault when masterless
  169422. .UNINDENT
  169423. .IP \(bu 2
  169424. 6530649dbc Merge pull request \fI\%#45953\fP from rallytime/bp\-45928\-2017.7.3
  169425. .INDENT 2.0
  169426. .IP \(bu 2
  169427. 85363189d1 Fixing vault when used with pillar over salt\-ssh
  169428. .UNINDENT
  169429. .IP \(bu 2
  169430. fb378cebb0 Merge pull request \fI\%#45934\fP from rallytime/bp\-45902
  169431. .INDENT 2.0
  169432. .IP \(bu 2
  169433. bb83e8b345 Add regression test for issue 45893
  169434. .IP \(bu 2
  169435. cdda66d759 Remove duplicated section in docstring and fix example
  169436. .IP \(bu 2
  169437. 4b6351cda6 Check the effective saltenv for cached archive
  169438. .UNINDENT
  169439. .IP \(bu 2
  169440. 0d74151c71 Merge pull request \fI\%#45935\fP from rallytime/bp\-45742
  169441. .INDENT 2.0
  169442. .IP \(bu 2
  169443. 6a0b5f7af3 Removed the chained copy
  169444. .IP \(bu 2
  169445. ad1150fad4 list.copy() is not compatible with python 2.7
  169446. .UNINDENT
  169447. .UNINDENT
  169448. .IP \(bu 2
  169449. d20ff89414 Merge pull request \fI\%#45988\fP from rallytime/bp\-45797
  169450. .INDENT 2.0
  169451. .IP \(bu 2
  169452. 953a400d79 follow symlinks
  169453. .UNINDENT
  169454. .IP \(bu 2
  169455. b18087cee0 Merge pull request \fI\%#45711\fP from bdrung/fix\-unicode\-tests
  169456. .INDENT 2.0
  169457. .IP \(bu 2
  169458. b6181b5ed6 Fix Unicode tests when run with LC_ALL=POSIX
  169459. .UNINDENT
  169460. .IP \(bu 2
  169461. 5271fb1d40 Merge pull request \fI\%#45878\fP from damon\-atkins/2017.7_fix_ec2_pillar
  169462. .INDENT 2.0
  169463. .IP \(bu 2
  169464. 0e74025714 Merge branch \(aq2017.7\(aq into 2017.7_fix_ec2_pillar
  169465. .IP \(bu 2
  169466. b4d0b23891 py3 fix
  169467. .IP \(bu 2
  169468. 75d9e20d8a Add ignoring \(aqterminated\(aq, \(aqstopped\(aq instances, to improve changes of a single match
  169469. .IP \(bu 2
  169470. 0093472a37 added tag_key_list and tag_key_sep to create ec2_tags_list
  169471. .IP \(bu 2
  169472. afb3968aa7 ec2_pillar could not find instance\-id, resolved. add support to use any tag to compare minion id against.
  169473. .UNINDENT
  169474. .IP \(bu 2
  169475. cf367dbd04 Merge pull request \fI\%#45942\fP from terminalmage/issue45679\-2017.7
  169476. .INDENT 2.0
  169477. .IP \(bu 2
  169478. 89cbd72a0d Don\(aqt try to sort ports when translating docker input
  169479. .IP \(bu 2
  169480. 9cd47b39dd Fix incorrect translation of docker port_bindings \-> ports
  169481. .UNINDENT
  169482. .IP \(bu 2
  169483. dae41de7a8 Merge pull request \fI\%#45959\fP from rallytime/state\-doc\-update
  169484. .INDENT 2.0
  169485. .IP \(bu 2
  169486. 6f781cb95d A couple of grammar updates for the state compiler docs
  169487. .UNINDENT
  169488. .IP \(bu 2
  169489. 007214f7bf Merge pull request \fI\%#45908\fP from DimensionDataResearch/fix/issue/45884
  169490. .INDENT 2.0
  169491. .IP \(bu 2
  169492. 1a75786b5a Fix linter warnings.
  169493. .IP \(bu 2
  169494. 82ec0b589c Revert to using salt.utils.cloud.is_public_ip.
  169495. .IP \(bu 2
  169496. 9b6b01873b Fix violations reported by flake8.
  169497. .IP \(bu 2
  169498. a2bc155c73 Use __utils__[\(aqcloud.\(aq] instead of salt.cloud.utils.
  169499. .IP \(bu 2
  169500. 98907a32cb Ensure \(aqauth\(aq parameter is correctly passed to dimensiondata driver.
  169501. .IP \(bu 2
  169502. de26b03e2c Fix copy/paste bug in dimensiondata provider integration test.
  169503. .IP \(bu 2
  169504. 6b1b6be427 Add integration tests for dimensiondata cloud provider.
  169505. .IP \(bu 2
  169506. f6ea9fed7d Ensure that event data provided by the dimensiondata driver is serialisable.
  169507. .UNINDENT
  169508. .IP \(bu 2
  169509. efcbfa868c Merge pull request \fI\%#45985\fP from garethgreenaway/2017_7_fixing_mac_tests_again
  169510. .INDENT 2.0
  169511. .IP \(bu 2
  169512. 7b8dc14433 Missing \fIformat\fP in the call to write.
  169513. .UNINDENT
  169514. .IP \(bu 2
  169515. bf03abd07c Merge pull request \fI\%#45958\fP from garethgreenaway/backport\-fixing_mactests_queue_full
  169516. .INDENT 2.0
  169517. .IP \(bu 2
  169518. 25dffaae91 Backporting \fI\%#45935\fP
  169519. .UNINDENT
  169520. .IP \(bu 2
  169521. bab365d6c6 Merge pull request \fI\%#45949\fP from rallytime/merge\-2017.7
  169522. .INDENT 2.0
  169523. .IP \(bu 2
  169524. f51687e903 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169525. .IP \(bu 2
  169526. 7779fea7ba Merge pull request \fI\%#45940\fP from dmurphy18/fix_aix_cmdmod
  169527. .INDENT 2.0
  169528. .IP \(bu 2
  169529. dd2788419b Fix use of \(aqsu\(aq for AIX to use \(aq\-\(aq
  169530. .UNINDENT
  169531. .UNINDENT
  169532. .IP \(bu 2
  169533. 7fd00ec752 Merge pull request \fI\%#45928\fP from garethgreenaway/45915_fixing_vault_pillar_for_salt_ssh
  169534. .INDENT 2.0
  169535. .IP \(bu 2
  169536. 259e60e5d4 Fixing vault when used with pillar over salt\-ssh
  169537. .UNINDENT
  169538. .IP \(bu 2
  169539. 9d14ad9ccf Merge pull request \fI\%#45925\fP from terminalmage/fix\-spelling
  169540. .INDENT 2.0
  169541. .IP \(bu 2
  169542. 7a143fe454 Fix spelling error in docstring
  169543. .UNINDENT
  169544. .UNINDENT
  169545. .UNINDENT
  169546. .IP \(bu 2
  169547. \fBPR\fP \fI\%#45972\fP: (\fI\%mcalmer\fP) move log_file option to changeable defaults
  169548. @ \fI2018\-02\-15 18:57:24 UTC\fP
  169549. .INDENT 2.0
  169550. .IP \(bu 2
  169551. 057e895faf Merge pull request \fI\%#45972\fP from mcalmer/allow\-salt\-ssh\-define\-log_file
  169552. .IP \(bu 2
  169553. f89a20bf3e move log_file option to changeable defaults
  169554. .UNINDENT
  169555. .IP \(bu 2
  169556. \fBPR\fP \fI\%#46007\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  169557. @ \fI2018\-02\-13 18:50:09 UTC\fP
  169558. .INDENT 2.0
  169559. .IP \(bu 2
  169560. d4377d4678 Merge pull request \fI\%#46007\fP from rallytime/merge\-oxygen
  169561. .IP \(bu 2
  169562. d6c2d0693a Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  169563. .UNINDENT
  169564. .IP \(bu 2
  169565. \fBPR\fP \fI\%#45944\fP: (\fI\%mirceaulinic\fP) Add NetBox module autodoc
  169566. @ \fI2018\-02\-13 00:01:48 UTC\fP
  169567. .INDENT 2.0
  169568. .IP \(bu 2
  169569. 069f790b3c Merge pull request \fI\%#45944\fP from cloudflare/netbox\-autodoc
  169570. .IP \(bu 2
  169571. ed69b987cf Add NetBox module autodoc
  169572. .UNINDENT
  169573. .IP \(bu 2
  169574. \fBPR\fP \fI\%#45984\fP: (\fI\%garethgreenaway\fP) [oxygen] Missing \fIformat\fP in the call to write.
  169575. @ \fI2018\-02\-12 19:06:04 UTC\fP
  169576. .INDENT 2.0
  169577. .IP \(bu 2
  169578. 2a6285d313 Merge pull request \fI\%#45984\fP from garethgreenaway/fixing_mac_tests_again
  169579. .IP \(bu 2
  169580. ae7791d30b Missing \fIformat\fP in the call to write.
  169581. .UNINDENT
  169582. .IP \(bu 2
  169583. \fBPR\fP \fI\%#45922\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  169584. @ \fI2018\-02\-09 20:24:26 UTC\fP
  169585. .INDENT 2.0
  169586. .IP \(bu 2
  169587. 88f481a3df Merge pull request \fI\%#45922\fP from rallytime/merge\-oxygen
  169588. .IP \(bu 2
  169589. 9c49c8d47c Remove extra patch
  169590. .IP \(bu 2
  169591. b96f4cf8ad Remove duplicate import in cmdmod.py
  169592. .IP \(bu 2
  169593. 34ecdffa71 Replace old utils paths with new paths
  169594. .IP \(bu 2
  169595. d80547e0b8 Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  169596. .IP \(bu 2
  169597. 0cbe93cd69 Merge pull request \fI\%#45920\fP from rallytime/merge\-2017.7
  169598. .INDENT 2.0
  169599. .IP \(bu 2
  169600. e4e4744218 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169601. .IP \(bu 2
  169602. 27ff82f996 Merge pull request \fI\%#45864\fP from rallytime/release\-note\-fix
  169603. .INDENT 2.0
  169604. .IP \(bu 2
  169605. 104a24f244 Remove extraneous ] in release notes for 2016.11.9
  169606. .UNINDENT
  169607. .IP \(bu 2
  169608. 5fa010de2b Merge pull request \fI\%#45787\fP from rallytime/2016.11.9_docs
  169609. .INDENT 2.0
  169610. .IP \(bu 2
  169611. a38d4d44fa [2016.11] Bump latest and previous versions
  169612. .UNINDENT
  169613. .UNINDENT
  169614. .IP \(bu 2
  169615. 643a8a5278 Merge pull request \fI\%#45814\fP from gtmanfred/2017.7
  169616. .INDENT 2.0
  169617. .IP \(bu 2
  169618. d8eec9aa97 fix cookies dict size changing in http.query
  169619. .UNINDENT
  169620. .IP \(bu 2
  169621. 3a3f87c16d Merge pull request \fI\%#45877\fP from rallytime/new\-release\-notes
  169622. .INDENT 2.0
  169623. .IP \(bu 2
  169624. f937e8ba81 Add release notes file for 2017.7.4 release
  169625. .UNINDENT
  169626. .IP \(bu 2
  169627. 1c3cc00670 Merge pull request \fI\%#45904\fP from rallytime/bp\-41017
  169628. .INDENT 2.0
  169629. .IP \(bu 2
  169630. 80c56cdcea Fixed typo in pkg state documentation
  169631. .UNINDENT
  169632. .IP \(bu 2
  169633. 317d35bd15 Merge pull request \fI\%#45907\fP from terminalmage/fix\-grains\-backport
  169634. .INDENT 2.0
  169635. .IP \(bu 2
  169636. 6cf7e50cc4 Fix backport of grains fix
  169637. .UNINDENT
  169638. .IP \(bu 2
  169639. dade5f0cab Merge pull request \fI\%#45906\fP from rallytime/bp\-45548
  169640. .INDENT 2.0
  169641. .IP \(bu 2
  169642. 1befa7386c Update x509.py
  169643. .UNINDENT
  169644. .IP \(bu 2
  169645. 82c473a1fe Merge pull request \fI\%#45902\fP from terminalmage/issue45893
  169646. .INDENT 2.0
  169647. .IP \(bu 2
  169648. 9d200efc26 Add regression test for issue 45893
  169649. .IP \(bu 2
  169650. 1468f1d0ff Remove duplicated section in docstring and fix example
  169651. .IP \(bu 2
  169652. 6cc5cd9b8a Check the effective saltenv for cached archive
  169653. .UNINDENT
  169654. .IP \(bu 2
  169655. fdedde3cfb Merge pull request \fI\%#45862\fP from rallytime/bp\-45830
  169656. .INDENT 2.0
  169657. .IP \(bu 2
  169658. 1024856f9a Wrapping the put_nowait in a try...except and catching the exception when the multiprocessing queue is full. This situation is happening when running the full testing suite on MacOS where the queue limit is 32767 vs on Linux where the queue limit is unlimited.
  169659. .UNINDENT
  169660. .IP \(bu 2
  169661. 43a45b42c3 Merge pull request \fI\%#45779\fP from The\-Loeki/patch\-3
  169662. .INDENT 2.0
  169663. .IP \(bu 2
  169664. 8575ae3d52 Merge branch \(aq2017.7\(aq into patch\-3
  169665. .IP \(bu 2
  169666. 47cf00d88e SSH shell shim: Don\(aqt use $() for optimal support
  169667. .UNINDENT
  169668. .IP \(bu 2
  169669. cca997d0da Merge pull request \fI\%#45788\fP from rallytime/2017.7.3_docs
  169670. .INDENT 2.0
  169671. .IP \(bu 2
  169672. d5faf6126b [2017.7] Bump latest and previous versions
  169673. .UNINDENT
  169674. .IP \(bu 2
  169675. 746206cebe Merge pull request \fI\%#45842\fP from rallytime/bp\-45827
  169676. .INDENT 2.0
  169677. .IP \(bu 2
  169678. c631598a87 Fix traceback in disks grains when /sys/block not available
  169679. .UNINDENT
  169680. .IP \(bu 2
  169681. 900aadcd67 Merge pull request \fI\%#45721\fP from garethgreenaway/44978_show_duration_when_no_state_run
  169682. .INDENT 2.0
  169683. .IP \(bu 2
  169684. 359265869f Adding a couple tests to ensure that duration is included in state run results even when states do not run.
  169685. .IP \(bu 2
  169686. 912347abc3 Include the duration when a state does not run, for example when the \fIonchanges\fP requisite is not met.
  169687. .UNINDENT
  169688. .IP \(bu 2
  169689. 80a2d009b4 Merge pull request \fI\%#45517\fP from kstreee/fix\-mkdir
  169690. .INDENT 2.0
  169691. .IP \(bu 2
  169692. 24d41f2451 Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  169693. .UNINDENT
  169694. .IP \(bu 2
  169695. 7a4b1b2e77 Merge pull request \fI\%#45835\fP from kstreee/fix\-missing\-return\-statement
  169696. .INDENT 2.0
  169697. .IP \(bu 2
  169698. 68c7f3dcba Adds a missing return statement.
  169699. .UNINDENT
  169700. .IP \(bu 2
  169701. 0a04f118c2 Merge pull request \fI\%#45840\fP from rallytime/bp\-45603
  169702. .INDENT 2.0
  169703. .IP \(bu 2
  169704. 9653363131 Fix for duplicate entries with pkrepo.managed
  169705. .UNINDENT
  169706. .IP \(bu 2
  169707. bd2178cd5f Merge pull request \fI\%#45716\fP from ciiqr/fix_cmd_script_quoting
  169708. .INDENT 2.0
  169709. .IP \(bu 2
  169710. 217791079b some code cleanup (lint errors and escape_argument as _cmd_quote)
  169711. .IP \(bu 2
  169712. 1c29bc5a3d fixed quoting of script path in cmd.script
  169713. .UNINDENT
  169714. .IP \(bu 2
  169715. 272f912c7c Merge pull request \fI\%#45719\fP from bdrung/fix\-python3\-sphinx\-build
  169716. .INDENT 2.0
  169717. .IP \(bu 2
  169718. 179e8fbe73 doc: Do not mock non\-existing __qualname__ attribute
  169719. .IP \(bu 2
  169720. 971e59ebe2 Drop enforcing new\-style object for SaltYamlSafeLoader
  169721. .UNINDENT
  169722. .IP \(bu 2
  169723. fc04336c3b Merge pull request \fI\%#45764\fP from mchugh19/2017.7
  169724. .INDENT 2.0
  169725. .IP \(bu 2
  169726. 0a7f1a4d75 English better
  169727. .IP \(bu 2
  169728. 37e067c7b5 support amazon linux 2 for service module
  169729. .UNINDENT
  169730. .UNINDENT
  169731. .IP \(bu 2
  169732. \fBPR\fP \fI\%#45861\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from oxygen.rc1 to oxygen
  169733. @ \fI2018\-02\-08 13:39:59 UTC\fP
  169734. .INDENT 2.0
  169735. .IP \(bu 2
  169736. 048c18ea42 Merge pull request \fI\%#45861\fP from rallytime/merge\-oxygen
  169737. .IP \(bu 2
  169738. 6d812ac192 Merge branch \(aqoxygen.rc1\(aq into \(aqoxygen\(aq
  169739. .UNINDENT
  169740. .IP \(bu 2
  169741. \fBPR\fP \fI\%#45852\fP: (\fI\%Giandom\fP) fix\-missing\-highstate\-module\-import
  169742. @ \fI2018\-02\-05 15:02:39 UTC\fP
  169743. .INDENT 2.0
  169744. .IP \(bu 2
  169745. 1bd38fb3b7 Merge pull request \fI\%#45852\fP from Giandom/fix\-missing\-highstate\-module\-import
  169746. .IP \(bu 2
  169747. dc5a8f9233 fix\-missing\-highstate\-module\-import
  169748. .UNINDENT
  169749. .IP \(bu 2
  169750. \fBPR\fP \fI\%#45829\fP: (\fI\%rallytime\fP) [oxygen] Merge forward from 2017.7 to oxygen
  169751. @ \fI2018\-02\-02 20:20:32 UTC\fP
  169752. .INDENT 2.0
  169753. .IP \(bu 2
  169754. 5f54ce7b5f Merge pull request \fI\%#45829\fP from rallytime/merge\-oxygen
  169755. .IP \(bu 2
  169756. 34a17819ca Add opts to salt.utils.jid.gen_jid call in minion.py
  169757. .IP \(bu 2
  169758. 79d071df9c Merge branch \(aq2017.7\(aq into \(aqoxygen\(aq
  169759. .IP \(bu 2
  169760. f234bf52f4 Merge pull request \fI\%#45756\fP from roaldnefs/fix\-grafana4\-documentation
  169761. .INDENT 2.0
  169762. .IP \(bu 2
  169763. 92979c0b57 Fix grafana4 states documentation
  169764. .UNINDENT
  169765. .IP \(bu 2
  169766. 685b683db5 Merge pull request \fI\%#45801\fP from rallytime/merge\-2017.7
  169767. .INDENT 2.0
  169768. .IP \(bu 2
  169769. 26e992e011 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  169770. .IP \(bu 2
  169771. 746386d04c Merge pull request \fI\%#45794\fP from vutny/doc\-file\-state\-examples
  169772. .INDENT 2.0
  169773. .IP \(bu 2
  169774. ddfeae6a29 [DOC] Fix code\-block rST directive in file state module
  169775. .UNINDENT
  169776. .IP \(bu 2
  169777. abc9ece214 Merge pull request \fI\%#45780\fP from vutny/doc\-pkgrepo\-zypper
  169778. .IP \(bu 2
  169779. f80c7d8d69 [DOC] Add missing gpgautoimport for pkgrepo.managed
  169780. .UNINDENT
  169781. .IP \(bu 2
  169782. c7d319f3bc Merge pull request \fI\%#45802\fP from rallytime/merge\-2017.7\-from\-2017.7.3
  169783. .INDENT 2.0
  169784. .IP \(bu 2
  169785. eb48513ba0 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  169786. .IP \(bu 2
  169787. 1439da8d76 Merge pull request \fI\%#45755\fP from terminalmage/issue45743
  169788. .IP \(bu 2
  169789. 8af1251c59 salt.crypt: Ensure message is encoded before signing
  169790. .UNINDENT
  169791. .IP \(bu 2
  169792. 96e9232cc2 Merge pull request \fI\%#45761\fP from gtmanfred/2017.7
  169793. .IP \(bu 2
  169794. 280767ed57 generate a jid for cache_jobs on the minion
  169795. .UNINDENT
  169796. .IP \(bu 2
  169797. \fBPR\fP \fI\%#45819\fP: (\fI\%Giandom\fP) oxygen\-added\-highstate\-output\-to\-slack\-engine
  169798. @ \fI2018\-02\-01 18:38:42 UTC\fP
  169799. .INDENT 2.0
  169800. .IP \(bu 2
  169801. 3471796c51 Merge pull request \fI\%#45819\fP from Giandom/oxygen\-added\-highstate\-output\-to\-slack\-engine
  169802. .IP \(bu 2
  169803. 1af8899a9d oxygen\-added\-highstate\-output\-to\-slack\-engine
  169804. .UNINDENT
  169805. .UNINDENT
  169806. .SS Salt 2018.3.2 Release Notes
  169807. .sp
  169808. Version 2018.3.2 is a bugfix release for 2018.3.0\&.
  169809. .sp
  169810. The \fB2018.3.2\fP release contains only a small number of fixes, which are detailed
  169811. below.
  169812. .sp
  169813. This release fixes two critical issues.
  169814. .sp
  169815. The first is Issue \fI\%#48038\fP, which is a critical bug that occurs in a multi\-syndic
  169816. setup where the same job is run multiple times on a minion.
  169817. .sp
  169818. The second issue is \fI\%#48130\fP\&. This bug appears in certain setups where the Master
  169819. reports a Minion time\-out, even though the job is still running on the Minion.
  169820. .sp
  169821. Both of these issues have been fixed with this release.
  169822. .SS Statistics
  169823. .INDENT 0.0
  169824. .IP \(bu 2
  169825. Total Merges: \fB7\fP
  169826. .IP \(bu 2
  169827. Total Issue References: \fB2\fP
  169828. .IP \(bu 2
  169829. Total PR References: \fB10\fP
  169830. .IP \(bu 2
  169831. Contributors: \fB4\fP (\fI\%cro\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%rallytime\fP)
  169832. .UNINDENT
  169833. .sp
  169834. \fBWARNING:\fP
  169835. .INDENT 0.0
  169836. .INDENT 3.5
  169837. If you are using Jinja to dump lists or dictionaries in your SLS files,
  169838. this will now cause errors in Python 2 since Jinja does not produce
  169839. YAML\-compatible output when strings in the data structures contain unicode
  169840. types. The dictionary must be passed through a Jinja filter to produce
  169841. YAML\-compatible strings.
  169842. .sp
  169843. The below is an example of invalid SLS:
  169844. .INDENT 0.0
  169845. .INDENT 3.5
  169846. .sp
  169847. .nf
  169848. .ft C
  169849. /etc/foo.conf:
  169850. file.mangaged:
  169851. \- source: salt://foo.conf
  169852. \- template: jinja
  169853. \- defaults: {{ mydict }}
  169854. .ft P
  169855. .fi
  169856. .UNINDENT
  169857. .UNINDENT
  169858. .sp
  169859. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  169860. filters:
  169861. .INDENT 0.0
  169862. .INDENT 3.5
  169863. .sp
  169864. .nf
  169865. .ft C
  169866. /etc/foo.conf:
  169867. file.mangaged:
  169868. \- source: salt://foo.conf
  169869. \- template: jinja
  169870. \- defaults: {{ mydict | json }}
  169871. .ft P
  169872. .fi
  169873. .UNINDENT
  169874. .UNINDENT
  169875. .UNINDENT
  169876. .UNINDENT
  169877. .SS Changelog for v2018.3.1..v2018.3.2
  169878. .sp
  169879. \fIGenerated at: 2018\-06\-17 19:17:16 UTC\fP
  169880. .INDENT 0.0
  169881. .IP \(bu 2
  169882. \fBISSUE\fP \fI\%#48130\fP: (\fI\%rmarchei\fP) Minion timeouts with 2018.3.1 (refs: \fI\%#48158\fP)
  169883. .IP \(bu 2
  169884. \fBPR\fP \fI\%#48158\fP: (\fI\%gtmanfred\fP) always listen when gathering job info
  169885. @ \fI2018\-06\-17 19:04:03 UTC\fP
  169886. .INDENT 2.0
  169887. .IP \(bu 2
  169888. 521e926458 Merge pull request \fI\%#48158\fP from gtmanfred/2018.3.2
  169889. .IP \(bu 2
  169890. cecf564433 always listen when gathering job info
  169891. .UNINDENT
  169892. .IP \(bu 2
  169893. \fBPR\fP \fI\%#48138\fP: (\fI\%rallytime\fP) Update man pages for 2018.3.2
  169894. @ \fI2018\-06\-14 21:22:34 UTC\fP
  169895. .INDENT 2.0
  169896. .IP \(bu 2
  169897. f154545aff Merge pull request \fI\%#48138\fP from rallytime/man\-pages\-2018.3.2
  169898. .IP \(bu 2
  169899. 8c340134f5 Update man pages for 2018.3.2
  169900. .UNINDENT
  169901. .IP \(bu 2
  169902. \fBPR\fP \fI\%#48137\fP: (\fI\%gtmanfred\fP) [2018.3.2] bootstrap kitchen branch tests with 2017.7.6
  169903. @ \fI2018\-06\-14 21:20:28 UTC\fP
  169904. .INDENT 2.0
  169905. .IP \(bu 2
  169906. b49271b76d Merge pull request \fI\%#48137\fP from gtmanfred/2018.3.2
  169907. .IP \(bu 2
  169908. 6128519e8b bootstrap kitchen branch tests with 2017.7.6
  169909. .UNINDENT
  169910. .IP \(bu 2
  169911. \fBPR\fP \fI\%#48129\fP: (\fI\%rallytime\fP) Add release notes for 2018.3.2
  169912. @ \fI2018\-06\-14 15:48:36 UTC\fP
  169913. .INDENT 2.0
  169914. .IP \(bu 2
  169915. 21aaf1cbc4 Merge pull request \fI\%#48129\fP from rallytime/release\-notes\-2018.3.2
  169916. .IP \(bu 2
  169917. 0b13be0111 Add release notes for 2018.3.2
  169918. .UNINDENT
  169919. .IP \(bu 2
  169920. \fBPR\fP \fI\%#48100\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48014\fP to 2018.3.2
  169921. @ \fI2018\-06\-14 12:54:52 UTC\fP
  169922. .INDENT 2.0
  169923. .IP \(bu 2
  169924. \fBPR\fP \fI\%#48014\fP: (\fI\%cro\fP) Find job pause (refs: \fI\%#48100\fP)
  169925. .IP \(bu 2
  169926. 36b99ae80a Merge pull request \fI\%#48100\fP from rallytime/bp\-48014
  169927. .IP \(bu 2
  169928. 77feccc5c4 Lint: Add blank line
  169929. .IP \(bu 2
  169930. 159b052962 One more case where returner doesn\(aqt respond
  169931. .IP \(bu 2
  169932. 91b45b4cc4 Catch two cases when a returner is not able to be contacted\-\-these would throw a stacktrace.
  169933. .UNINDENT
  169934. .IP \(bu 2
  169935. \fBPR\fP \fI\%#48099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47915\fP to 2018.3.2
  169936. @ \fI2018\-06\-14 12:54:23 UTC\fP
  169937. .INDENT 2.0
  169938. .IP \(bu 2
  169939. \fBPR\fP \fI\%#47915\fP: (\fI\%garethgreenaway\fP) [2018.3] state runner pause resume kill (refs: \fI\%#48099\fP)
  169940. .IP \(bu 2
  169941. 40c1bfdec9 Merge pull request \fI\%#48099\fP from rallytime/bp\-47915
  169942. .IP \(bu 2
  169943. 3556850058 fixing typo in alias_function call.
  169944. .IP \(bu 2
  169945. 4b0ff496fa Some fixes to the set_pause and rm_pause function in the state runner, renaming to in line with the functions in the state module. Including aliases to previous names for back\-ward compatibility. Including a soft_kill function to kill running orchestration states. A new test to test soft_kill functionality.
  169946. .UNINDENT
  169947. .IP \(bu 2
  169948. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  169949. .IP \(bu 2
  169950. \fBPR\fP \fI\%#48097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48075\fP to 2018.3.2
  169951. @ \fI2018\-06\-14 12:52:44 UTC\fP
  169952. .INDENT 2.0
  169953. .IP \(bu 2
  169954. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed (refs: \fI\%#48097\fP)
  169955. .IP \(bu 2
  169956. 074a97dcfa Merge pull request \fI\%#48097\fP from rallytime/bp\-48075
  169957. .IP \(bu 2
  169958. e4c719b55f Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  169959. .UNINDENT
  169960. .UNINDENT
  169961. .SS Salt 2018.3.3 Release Notes
  169962. .sp
  169963. Version 2018.3.3 is a security and bugfix release for 2018.3.0\&.
  169964. .SS Statistics
  169965. .INDENT 0.0
  169966. .IP \(bu 2
  169967. Total Merges: \fB548\fP
  169968. .IP \(bu 2
  169969. Total Issue References: \fB69\fP
  169970. .IP \(bu 2
  169971. Total PR References: \fB341\fP
  169972. .IP \(bu 2
  169973. Contributors: \fB55\fP (\fI\%Ch3LL\fP, \fI\%FedericoCeratto\fP, \fI\%KaiSforza\fP, \fI\%L4rS6\fP, \fI\%Lutseslav\fP, \fI\%The\-Loeki\fP, \fI\%Vaelatern\fP, \fI\%admd\fP, \fI\%aesposito91\fP, \fI\%asenci\fP, \fI\%astorath\fP, \fI\%azelezni\fP, \fI\%babs\fP, \fI\%bbczeuz\fP, \fI\%bbinet\fP, \fI\%brejoc\fP, \fI\%cro\fP, \fI\%daa\fP, \fI\%dmurphy18\fP, \fI\%dubb\-b\fP, \fI\%dwoz\fP, \fI\%eliasp\fP, \fI\%ezh\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jeduardo\fP, \fI\%kt97679\fP, \fI\%kuetrzi\fP, \fI\%linoplt\fP, \fI\%lomeroe\fP, \fI\%lusche\fP, \fI\%mateiw\fP, \fI\%max\-arnold\fP, \fI\%maxim\-sermin\fP, \fI\%meaksh\fP, \fI\%mmulqueen\fP, \fI\%morganwillcock\fP, \fI\%mtorromeo\fP, \fI\%nullify005\fP, \fI\%paulcollinsiii\fP, \fI\%pritambaral\fP, \fI\%rallytime\fP, \fI\%rares\-pop\fP, \fI\%rmarchei\fP, \fI\%rosscdh\fP, \fI\%sizgiyaev\fP, \fI\%sjorge\fP, \fI\%t0fik\fP, \fI\%terminalmage\fP, \fI\%travispaul\fP, \fI\%twangboy\fP, \fI\%vinian\fP, \fI\%weswhet\fP, \fI\%zerthimon\fP)
  169974. .UNINDENT
  169975. .sp
  169976. \fBWARNING:\fP
  169977. .INDENT 0.0
  169978. .INDENT 3.5
  169979. If you are using Jinja to dump lists or dictionaries in your SLS files,
  169980. this will now cause errors in Python 2 since Jinja does not produce
  169981. YAML\-compatible output when strings in the data structures contain unicode
  169982. types. The dictionary must be passed through a Jinja filter to produce
  169983. YAML\-compatible strings.
  169984. .sp
  169985. The below is an example of invalid SLS:
  169986. .INDENT 0.0
  169987. .INDENT 3.5
  169988. .sp
  169989. .nf
  169990. .ft C
  169991. /etc/foo.conf:
  169992. file.mangaged:
  169993. \- source: salt://foo.conf
  169994. \- template: jinja
  169995. \- defaults: {{ mydict }}
  169996. .ft P
  169997. .fi
  169998. .UNINDENT
  169999. .UNINDENT
  170000. .sp
  170001. To make it valid, use either one of Salt\(aqs own \fBjson\fP or \fByaml\fP
  170002. filters. Another option would be to use Jinja\(aqs \fI\%tojson\fP filter.
  170003. .INDENT 0.0
  170004. .INDENT 3.5
  170005. .sp
  170006. .nf
  170007. .ft C
  170008. /etc/foo.conf:
  170009. file.mangaged:
  170010. \- source: salt://foo.conf
  170011. \- template: jinja
  170012. \- defaults: {{ mydict | tojson }}
  170013. .ft P
  170014. .fi
  170015. .UNINDENT
  170016. .UNINDENT
  170017. .UNINDENT
  170018. .UNINDENT
  170019. .SS Security Fix
  170020. .sp
  170021. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  170022. .sp
  170023. CVE\-2018\-15750 Directory traversal vulnerability when using salt\-api. Allows an attacker to determine what files exist on a server when querying /run or /events.
  170024. .sp
  170025. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  170026. .SS Changes to win_timezone
  170027. .sp
  170028. Improves timezone detection by using the pytz module.
  170029. .sp
  170030. \fBtimezone.get_offset\fP and \fBtimezone.get_zonecode\fP now work properly.
  170031. .sp
  170032. Adds \fBtimezone.list\fP to list supported timezones in either Windows or Unix
  170033. format.
  170034. .SS New Jinja Filter
  170035. .sp
  170036. The \fBtojson\fP filter (from Jinja 2.9 and later) has been ported to
  170037. Salt, and will be used when this filter is not available. This allows older LTS
  170038. releases such as CentOS 7 and Ubuntu 14.04 to use this filter.
  170039. .sp
  170040. You can use this filter any time you wish to dump a list or dictionary into an
  170041. SLS file, to ensure that the result is able to be loaded by the YAML renderer.
  170042. For example:
  170043. .INDENT 0.0
  170044. .INDENT 3.5
  170045. .sp
  170046. .nf
  170047. .ft C
  170048. foo:
  170049. bar.baz:
  170050. \- some_arg: {{ mydict | tojson }}
  170051. .ft P
  170052. .fi
  170053. .UNINDENT
  170054. .UNINDENT
  170055. .SS MacOSX escape characters with runas
  170056. .sp
  170057. You are now required to escape quotes when using the runas argument with the
  170058. cmd module on macosx.
  170059. .sp
  170060. Example:
  170061. .INDENT 0.0
  170062. .INDENT 3.5
  170063. .sp
  170064. .nf
  170065. .ft C
  170066. cmd.run \(aqecho \(aq\e\(aq\(aqh=\e"baz\e"\(aq\e\(aq\(aq\(aq runas=macuser
  170067. .ft P
  170068. .fi
  170069. .UNINDENT
  170070. .UNINDENT
  170071. .SS Changelog for v2018.3.2..v2018.3.3
  170072. .sp
  170073. \fIGenerated at: 2018\-09\-21 17:45:27 UTC\fP
  170074. .INDENT 0.0
  170075. .IP \(bu 2
  170076. \fBPR\fP \fI\%#49662\fP: (\fI\%dwoz\fP) Fix another bad filename reference in whitelist
  170077. @ \fI2018\-09\-14 22:20:49 UTC\fP
  170078. .INDENT 2.0
  170079. .IP \(bu 2
  170080. 9d8cc0b3f4 Merge pull request \fI\%#49662\fP from dwoz/2018.3.3
  170081. .IP \(bu 2
  170082. e109023013 Fix another bad filename reference in whitelist
  170083. .UNINDENT
  170084. .IP \(bu 2
  170085. \fBPR\fP \fI\%#49655\fP: (\fI\%dwoz\fP) Fix windows test whitelist errors
  170086. @ \fI2018\-09\-14 20:34:56 UTC\fP
  170087. .INDENT 2.0
  170088. .IP \(bu 2
  170089. 6391560d57 Merge pull request \fI\%#49655\fP from dwoz/2018.3.3
  170090. .IP \(bu 2
  170091. 8a4946478e Fix windows test whitelist errors
  170092. .UNINDENT
  170093. .IP \(bu 2
  170094. \fBPR\fP \fI\%#49641\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49632\fP to 2018.3.3
  170095. @ \fI2018\-09\-13 16:46:02 UTC\fP
  170096. .INDENT 2.0
  170097. .IP \(bu 2
  170098. \fBPR\fP \fI\%#49632\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.states.test_file.FileTest.test_directory_max_depth (refs: \fI\%#49641\fP)
  170099. .IP \(bu 2
  170100. 3fb3ffdb37 Merge pull request \fI\%#49641\fP from rallytime/bp\-49632
  170101. .IP \(bu 2
  170102. d11a400825 Fixing failing test under python 3.7 causaed by changes to how os.makedirs sets initial permissions.
  170103. .UNINDENT
  170104. .IP \(bu 2
  170105. \fBPR\fP \fI\%#49633\fP: (\fI\%garethgreenaway\fP) [2018.3.3] Moving test_build_whitespace_split_regex to TestBuildWhitespaceRegex
  170106. @ \fI2018\-09\-13 06:57:01 UTC\fP
  170107. .INDENT 2.0
  170108. .IP \(bu 2
  170109. 0096cf10b5 Merge pull request \fI\%#49633\fP from garethgreenaway/moving_test_into_correct_class
  170110. .IP \(bu 2
  170111. 370de07617 Lint: Add extra blank line
  170112. .IP \(bu 2
  170113. 27b93fcc68 Moving the test_build_whitespace_split_regex test into the TestBuildWhitespaceRegex class.
  170114. .UNINDENT
  170115. .IP \(bu 2
  170116. \fBPR\fP \fI\%#49594\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49580\fP to 2018.3.3
  170117. @ \fI2018\-09\-10 19:59:41 UTC\fP
  170118. .INDENT 2.0
  170119. .IP \(bu 2
  170120. \fBPR\fP \fI\%#49580\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing tests for Python 3.7 (refs: \fI\%#49594\fP)
  170121. .IP \(bu 2
  170122. e3a14e3535 Merge pull request \fI\%#49594\fP from rallytime/bp\-49580
  170123. .IP \(bu 2
  170124. 41a2586fc0 Add file coding line at top of file
  170125. .IP \(bu 2
  170126. 7df3bebf53 Fixing lint.
  170127. .IP \(bu 2
  170128. 5fee38d1db Fixes various tests that were failing under python 3.7.
  170129. .UNINDENT
  170130. .IP \(bu 2
  170131. \fBPR\fP \fI\%#49589\fP: (\fI\%rallytime\fP) Update old utils paths to use new utils paths
  170132. @ \fI2018\-09\-10 16:51:31 UTC\fP
  170133. .INDENT 2.0
  170134. .IP \(bu 2
  170135. 39f9c9c952 Merge pull request \fI\%#49589\fP from rallytime/utils\-paths
  170136. .IP \(bu 2
  170137. 5de2245c11 Update old utils paths to use new utils paths
  170138. .UNINDENT
  170139. .IP \(bu 2
  170140. \fBPR\fP \fI\%#49550\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49548\fP to 2018.3.3
  170141. @ \fI2018\-09\-07 00:36:05 UTC\fP
  170142. .INDENT 2.0
  170143. .IP \(bu 2
  170144. \fBPR\fP \fI\%#49548\fP: (\fI\%garethgreenaway\fP) [2018.3] Disabling State boto tests for Python 3.7+ (refs: \fI\%#49550\fP)
  170145. .IP \(bu 2
  170146. 202da7a94f Merge pull request \fI\%#49550\fP from rallytime/bp\-49548
  170147. .IP \(bu 2
  170148. 180692ccee Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests. This PR is disabling the tests in the test_boto_vpc state tests.
  170149. .UNINDENT
  170150. .IP \(bu 2
  170151. \fBPR\fP \fI\%#49542\fP: (\fI\%twangboy\fP) Update openssl
  170152. @ \fI2018\-09\-06 16:11:34 UTC\fP
  170153. .INDENT 2.0
  170154. .IP \(bu 2
  170155. cae2d61568 Merge pull request \fI\%#49542\fP from twangboy/fix_osx_build_3
  170156. .IP \(bu 2
  170157. fe02b2276f Add 1.0.2p shasum file
  170158. .IP \(bu 2
  170159. 5f06dc2762 Fix issues with osx build scripts on 2018.3.3
  170160. .UNINDENT
  170161. .IP \(bu 2
  170162. \fBPR\fP \fI\%#49536\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49524\fP to 2018.3.3
  170163. @ \fI2018\-09\-06 16:00:00 UTC\fP
  170164. .INDENT 2.0
  170165. .IP \(bu 2
  170166. \fBPR\fP \fI\%#49524\fP: (\fI\%garethgreenaway\fP) [2018.3] Disable boto tests under 3.7 (refs: \fI\%#49536\fP)
  170167. .IP \(bu 2
  170168. d9f09da5d9 Merge pull request \fI\%#49536\fP from rallytime/bp\-49524
  170169. .IP \(bu 2
  170170. 9e7203e08a Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests.
  170171. .UNINDENT
  170172. .IP \(bu 2
  170173. \fBPR\fP \fI\%#49535\fP: (\fI\%Ch3LL\fP) Skip test_virt and pip_state requirements tests on macosx
  170174. @ \fI2018\-09\-06 15:59:38 UTC\fP
  170175. .INDENT 2.0
  170176. .IP \(bu 2
  170177. cb934bf0b6 Merge pull request \fI\%#49535\fP from Ch3LL/skip_pip_mac
  170178. .IP \(bu 2
  170179. 50237e9daf Skip test_virt and pip_state requirements tests on macosx
  170180. .UNINDENT
  170181. .IP \(bu 2
  170182. \fBPR\fP \fI\%#49499\fP: (\fI\%rallytime\fP) Pin CherryPy version to < 18.0.0 in requirements files for PY2
  170183. @ \fI2018\-09\-04 18:52:44 UTC\fP
  170184. .INDENT 2.0
  170185. .IP \(bu 2
  170186. 87d3dfe085 Merge pull request \fI\%#49499\fP from rallytime/pin\-cherrypy\-2018.3.3
  170187. .IP \(bu 2
  170188. 9e274335a3 Pin CherryPy version to < 18.0.0 in requirements files for PY2
  170189. .UNINDENT
  170190. .IP \(bu 2
  170191. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#1075\fP: (\fI\%Ch3LL\fP) [2018.3.3] arch python3 tests do not finish (refs: \fI\%#49303\fP, \fI\%#49451\fP)
  170192. .IP \(bu 2
  170193. \fBPR\fP \fI\%#49467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49451\fP to 2018.3.3
  170194. @ \fI2018\-08\-31 17:38:09 UTC\fP
  170195. .INDENT 2.0
  170196. .IP \(bu 2
  170197. \fBPR\fP \fI\%#49451\fP: (\fI\%gtmanfred\fP) Handle thread shutdown on system exit (refs: \fI\%#49467\fP)
  170198. .IP \(bu 2
  170199. 39fdacc434 Merge pull request \fI\%#49467\fP from rallytime/bp\-49451
  170200. .IP \(bu 2
  170201. b891a0a8d3 add lock for proxy minion process too
  170202. .IP \(bu 2
  170203. 72519878c0 start thread in try block
  170204. .IP \(bu 2
  170205. b878f01662 use finally instead of catching baseexception
  170206. .IP \(bu 2
  170207. de98be6093 use rlock so blocking can be passed in py2
  170208. .IP \(bu 2
  170209. d346b42332 import Callable from collections.abc for python3.7
  170210. .IP \(bu 2
  170211. d7a410070a Handle thread shutdown on system exit
  170212. .UNINDENT
  170213. .IP \(bu 2
  170214. \fBPR\fP \fI\%#49468\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49291\fP and \fI\%#49331\fP to 2018.3.3
  170215. @ \fI2018\-08\-31 17:37:30 UTC\fP
  170216. .INDENT 2.0
  170217. .IP \(bu 2
  170218. \fBPR\fP \fI\%#49331\fP: (\fI\%dwoz\fP) Use salt.utils to ensure string type (refs: \fI\%#49468\fP)
  170219. .IP \(bu 2
  170220. \fBPR\fP \fI\%#49291\fP: (\fI\%dwoz\fP) Add dedent that sets line endings (refs: \fI\%#49468\fP)
  170221. .IP \(bu 2
  170222. 37d1455d69 Merge pull request \fI\%#49468\fP from rallytime/bp\-49291\-and\-49331
  170223. .IP \(bu 2
  170224. 944f8e96c8 Use salt.utils to ensure string type
  170225. .IP \(bu 2
  170226. 6c92ed2021 Fix review nits
  170227. .IP \(bu 2
  170228. 0e18b157e3 Re\-factor dedent to fix warts
  170229. .IP \(bu 2
  170230. b5034067f8 Use salt.utils.to_* functions
  170231. .IP \(bu 2
  170232. 6399d035a4 Add dedent that sets line endings
  170233. .UNINDENT
  170234. .IP \(bu 2
  170235. \fBPR\fP \fI\%#49449\fP: (\fI\%rallytime\fP) Mark status test as flaky
  170236. @ \fI2018\-08\-30 18:10:44 UTC\fP
  170237. .INDENT 2.0
  170238. .IP \(bu 2
  170239. 0cda22e7a9 Merge pull request \fI\%#49449\fP from rallytime/flaky\-test
  170240. .IP \(bu 2
  170241. 0f322bb39f Mark status test as flaky
  170242. .UNINDENT
  170243. .IP \(bu 2
  170244. \fBPR\fP \fI\%#49444\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49299\fP to 2018.3.3
  170245. @ \fI2018\-08\-30 18:10:21 UTC\fP
  170246. .INDENT 2.0
  170247. .IP \(bu 2
  170248. \fBPR\fP \fI\%#49299\fP: (\fI\%dwoz\fP) Work around cmd.run unicode issues in test for now (refs: \fI\%#49444\fP)
  170249. .IP \(bu 2
  170250. bcc5f1a7c1 Merge pull request \fI\%#49444\fP from rallytime/bp\-49299
  170251. .IP \(bu 2
  170252. b8c5a5bb91 Fix string formatting wart in file state tests
  170253. .IP \(bu 2
  170254. 19756022be Fix wart in file state test
  170255. .IP \(bu 2
  170256. ba68388342 Work around cmd.run unicode issues in test for now
  170257. .UNINDENT
  170258. .IP \(bu 2
  170259. \fBPR\fP \fI\%#49448\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49400\fP to 2018.3.3
  170260. @ \fI2018\-08\-30 18:04:29 UTC\fP
  170261. .INDENT 2.0
  170262. .IP \(bu 2
  170263. \fBPR\fP \fI\%#49400\fP: (\fI\%rallytime\fP) Mark pillar refresh test as flaky (refs: \fI\%#49448\fP)
  170264. .IP \(bu 2
  170265. 38713e2db9 Merge pull request \fI\%#49448\fP from rallytime/bp\-49400
  170266. .IP \(bu 2
  170267. b953fe0079 Mark pillar refresh test as flaky
  170268. .UNINDENT
  170269. .IP \(bu 2
  170270. \fBPR\fP \fI\%#49446\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49356\fP to 2018.3.3
  170271. @ \fI2018\-08\-30 18:04:01 UTC\fP
  170272. .INDENT 2.0
  170273. .IP \(bu 2
  170274. \fBPR\fP \fI\%#49356\fP: (\fI\%dwoz\fP) Fix tests that use timed_subprocess for py3 (refs: \fI\%#49446\fP)
  170275. .IP \(bu 2
  170276. d6ddcab351 Merge pull request \fI\%#49446\fP from rallytime/bp\-49356
  170277. .IP \(bu 2
  170278. 8022b0c3d6 Fix tests that use timed_subprocess for py3
  170279. .UNINDENT
  170280. .IP \(bu 2
  170281. \fBPR\fP \fI\%#49445\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49192\fP to 2018.3.3
  170282. @ \fI2018\-08\-30 18:03:44 UTC\fP
  170283. .INDENT 2.0
  170284. .IP \(bu 2
  170285. \fBPR\fP \fI\%#49192\fP: (\fI\%dwoz\fP) Test fixes flaky test and unicode environment key/value (refs: \fI\%#49445\fP)
  170286. .IP \(bu 2
  170287. 1a67956c0f Merge pull request \fI\%#49445\fP from rallytime/bp\-49192
  170288. .IP \(bu 2
  170289. 20148d4438 Test fixes
  170290. .UNINDENT
  170291. .IP \(bu 2
  170292. \fBPR\fP \fI\%#49443\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49197\fP to 2018.3.3
  170293. @ \fI2018\-08\-30 18:03:10 UTC\fP
  170294. .INDENT 2.0
  170295. .IP \(bu 2
  170296. \fBPR\fP \fI\%#49197\fP: (\fI\%dwoz\fP) File state line ending fixes (refs: \fI\%#49443\fP)
  170297. .IP \(bu 2
  170298. 33f59d44de Merge pull request \fI\%#49443\fP from rallytime/bp\-49197
  170299. .IP \(bu 2
  170300. 5fe821978e File state line ending fixes
  170301. .UNINDENT
  170302. .IP \(bu 2
  170303. \fBPR\fP \fI\%#49442\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49180\fP and related fixes to 2018.3.3
  170304. @ \fI2018\-08\-30 18:02:54 UTC\fP
  170305. .INDENT 2.0
  170306. .IP \(bu 2
  170307. \fBPR\fP \fI\%#49186\fP: (\fI\%dwoz\fP) Fix typo in \fI\%#49180\fP (refs: \fI\%#49442\fP)
  170308. .IP \(bu 2
  170309. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49442\fP, \fI\%#49186\fP)
  170310. .IP \(bu 2
  170311. \fBPR\fP \fI\%#49167\fP: (\fI\%dwoz\fP) Fix remaining file state integration tests (py3) (refs: \fI\%#49173\fP, \fI\%#49442\fP)
  170312. .IP \(bu 2
  170313. 60758059c3 Merge pull request \fI\%#49442\fP from rallytime/bp\-49180
  170314. .IP \(bu 2
  170315. e155568957 Fix typo
  170316. .IP \(bu 2
  170317. 608a1ae7ba Account for file renames
  170318. .IP \(bu 2
  170319. e8e6a46a2b Fix directory unit test
  170320. .IP \(bu 2
  170321. 2f865c398e Fix is_windows checks
  170322. .IP \(bu 2
  170323. 6460f7f217 Account for normalized dirs in unit tests
  170324. .IP \(bu 2
  170325. f4b7101a35 Simplify dict keys lookup
  170326. .IP \(bu 2
  170327. 942b68bfc8 Fix remaining file state integration tests (py3)
  170328. .UNINDENT
  170329. .IP \(bu 2
  170330. \fBPR\fP \fI\%#49441\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49240\fP to 2018.3.3
  170331. @ \fI2018\-08\-30 18:02:40 UTC\fP
  170332. .INDENT 2.0
  170333. .IP \(bu 2
  170334. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes (refs: \fI\%#49362\fP, \fI\%#49441\fP)
  170335. .IP \(bu 2
  170336. 1f4906346a Merge pull request \fI\%#49441\fP from rallytime/bp\-49240
  170337. .IP \(bu 2
  170338. 22ed452479 Work around listdir encoding issues on py2 windows
  170339. .IP \(bu 2
  170340. f5be275835 file state test fixes
  170341. .UNINDENT
  170342. .IP \(bu 2
  170343. \fBPR\fP \fI\%#49440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49258\fP to 2018.3.3
  170344. @ \fI2018\-08\-30 18:02:25 UTC\fP
  170345. .INDENT 2.0
  170346. .IP \(bu 2
  170347. \fBPR\fP \fI\%#49258\fP: (\fI\%gtmanfred\fP) flaky tests are flaky (refs: \fI\%#49440\fP)
  170348. .IP \(bu 2
  170349. cc27b67a37 Merge pull request \fI\%#49440\fP from rallytime/bp\-49258
  170350. .IP \(bu 2
  170351. 0191af1423 flaky tests are flaky yo
  170352. .IP \(bu 2
  170353. 720b671dda mark orchestration state tests as flaky
  170354. .UNINDENT
  170355. .IP \(bu 2
  170356. \fBISSUE\fP \fI\%#48880\fP: (\fI\%damntoken\fP) Can\(aqt run cmd.run with UTF\-8 chars as arguments / parameters. With custom module. (refs: \fI\%#49322\fP)
  170357. .IP \(bu 2
  170358. \fBPR\fP \fI\%#49368\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49322\fP to 2018.3.3
  170359. @ \fI2018\-08\-28 17:15:15 UTC\fP
  170360. .INDENT 2.0
  170361. .IP \(bu 2
  170362. \fBPR\fP \fI\%#49322\fP: (\fI\%dwoz\fP) Encode shell commands explicitly. (refs: \fI\%#49368\fP)
  170363. .IP \(bu 2
  170364. af80e64569 Merge pull request \fI\%#49368\fP from rallytime/bp\-49322
  170365. .IP \(bu 2
  170366. 238853b9ec Encode shell commands explicitly.
  170367. .UNINDENT
  170368. .IP \(bu 2
  170369. \fBPR\fP \fI\%#49363\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49245\fP to 2018.3.3
  170370. @ \fI2018\-08\-28 17:14:18 UTC\fP
  170371. .INDENT 2.0
  170372. .IP \(bu 2
  170373. \fBPR\fP \fI\%#49245\fP: (\fI\%dwoz\fP) Skip grep unit tests on windows (refs: \fI\%#49363\fP)
  170374. .IP \(bu 2
  170375. 0fee3e8786 Merge pull request \fI\%#49363\fP from rallytime/bp\-49245
  170376. .IP \(bu 2
  170377. cc606509d0 Fix is_windows call \- use the right path
  170378. .IP \(bu 2
  170379. 5488fbea38 Skip grep unit tests on windows
  170380. .UNINDENT
  170381. .IP \(bu 2
  170382. \fBPR\fP \fI\%#49361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49244\fP to 2018.3.3
  170383. @ \fI2018\-08\-28 17:12:58 UTC\fP
  170384. .INDENT 2.0
  170385. .IP \(bu 2
  170386. \fBPR\fP \fI\%#49244\fP: (\fI\%dwoz\fP) Test fixes: unit.fileserver.test_gitfs (refs: \fI\%#49361\fP)
  170387. .IP \(bu 2
  170388. dbcd2fc726 Merge pull request \fI\%#49361\fP from rallytime/bp\-49244
  170389. .IP \(bu 2
  170390. e0909d3a25 Simplify by using to_unicode helper
  170391. .IP \(bu 2
  170392. 4723c69092 Older GitPython version do not have a close method
  170393. .IP \(bu 2
  170394. d5fecba716 Fix up fileserver.test_gitfs tests on windows
  170395. .IP \(bu 2
  170396. 4b688f6347 Remove unicode filenames on windows python 2
  170397. .UNINDENT
  170398. .IP \(bu 2
  170399. \fBPR\fP \fI\%#49362\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49240\fP to 2018.3.3
  170400. @ \fI2018\-08\-28 17:00:25 UTC\fP
  170401. .INDENT 2.0
  170402. .IP \(bu 2
  170403. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes (refs: \fI\%#49362\fP, \fI\%#49441\fP)
  170404. .IP \(bu 2
  170405. b4a1e1d365 Merge pull request \fI\%#49362\fP from rallytime/bp\-49240
  170406. .IP \(bu 2
  170407. 16ca5b9694 Work around listdir encoding issues on py2 windows
  170408. .IP \(bu 2
  170409. 7650208dbc file state test fixes
  170410. .UNINDENT
  170411. .IP \(bu 2
  170412. \fBPR\fP \fI\%#49365\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49270\fP to 2018.3.3
  170413. @ \fI2018\-08\-28 16:56:23 UTC\fP
  170414. .INDENT 2.0
  170415. .IP \(bu 2
  170416. \fBPR\fP \fI\%#49270\fP: (\fI\%dwoz\fP) Add async helper to test_sock_path_len (refs: \fI\%#49365\fP)
  170417. .IP \(bu 2
  170418. 9ca9a775ff Merge pull request \fI\%#49365\fP from rallytime/bp\-49270
  170419. .IP \(bu 2
  170420. 1b3f37a8b8 Add async helper to test_sock_path_len
  170421. .UNINDENT
  170422. .IP \(bu 2
  170423. \fBPR\fP \fI\%#49364\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49243\fP to 2018.3.3
  170424. @ \fI2018\-08\-28 16:55:55 UTC\fP
  170425. .INDENT 2.0
  170426. .IP \(bu 2
  170427. \fBPR\fP \fI\%#49243\fP: (\fI\%dwoz\fP) Revert newline translation change (refs: \fI\%#49364\fP)
  170428. .IP \(bu 2
  170429. bbff57da16 Merge pull request \fI\%#49364\fP from rallytime/bp\-49243
  170430. .IP \(bu 2
  170431. 5db77c6229 Revert newline translation change
  170432. .UNINDENT
  170433. .IP \(bu 2
  170434. \fBPR\fP \fI\%#49347\fP: (\fI\%Ch3LL\fP) [2018.3.3] Backport \fI\%#49345\fP
  170435. @ \fI2018\-08\-28 01:54:00 UTC\fP
  170436. .INDENT 2.0
  170437. .IP \(bu 2
  170438. \fBPR\fP \fI\%#49345\fP: (\fI\%gtmanfred\fP) upgrade including linux kernels (refs: \fI\%#49347\fP)
  170439. .IP \(bu 2
  170440. 74b78835b3 Merge pull request \fI\%#49347\fP from Ch3LL/bp_49345_2018.3.3
  170441. .IP \(bu 2
  170442. 7bf5ba83c8 upgrade including linux kernels
  170443. .UNINDENT
  170444. .IP \(bu 2
  170445. \fBPR\fP \fI\%#49323\fP: (\fI\%Ch3LL\fP) Skip nonexistent branch test for git versions <1.7.10
  170446. @ \fI2018\-08\-25 19:52:48 UTC\fP
  170447. .INDENT 2.0
  170448. .IP \(bu 2
  170449. be6691d91b Merge pull request \fI\%#49323\fP from Ch3LL/skip_git
  170450. .IP \(bu 2
  170451. ee3d32f74e Skip nonexistent branch for git versions <1.7.10
  170452. .UNINDENT
  170453. .IP \(bu 2
  170454. \fBISSUE\fP \fI\%#32737\fP: (\fI\%Lothiraldan\fP) No support for compound matcher in external auth configuration (refs: \fI\%#49236\fP)
  170455. .IP \(bu 2
  170456. \fBPR\fP \fI\%#49313\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49236\fP to 2018.3.3
  170457. @ \fI2018\-08\-24 20:59:16 UTC\fP
  170458. .INDENT 2.0
  170459. .IP \(bu 2
  170460. \fBPR\fP \fI\%#49236\fP: (\fI\%terminalmage\fP) Allow compound matching in eauth config expressions (refs: \fI\%#49313\fP)
  170461. .IP \(bu 2
  170462. 64d7b0e4c6 Merge pull request \fI\%#49313\fP from rallytime/bp\-49236
  170463. .IP \(bu 2
  170464. 1a5ef996e3 Add \(aqminion_data_cache: True\(aq to mocked opts for minions unit tests
  170465. .IP \(bu 2
  170466. 549f5d5a86 Allow compound matching in eauth config expressions
  170467. .UNINDENT
  170468. .IP \(bu 2
  170469. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#1075\fP: (\fI\%Ch3LL\fP) [2018.3.3] arch python3 tests do not finish (refs: \fI\%#49303\fP, \fI\%#49451\fP)
  170470. .IP \(bu 2
  170471. \fBPR\fP \fI\%#49311\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49303\fP to 2018.3.3
  170472. @ \fI2018\-08\-24 17:48:23 UTC\fP
  170473. .INDENT 2.0
  170474. .IP \(bu 2
  170475. \fBPR\fP \fI\%#49303\fP: (\fI\%gtmanfred\fP) use os._exit instead of sys.exit when daemonizing (refs: \fI\%#49311\fP)
  170476. .IP \(bu 2
  170477. 7a89a4c8aa Merge pull request \fI\%#49311\fP from rallytime/bp\-49303
  170478. .IP \(bu 2
  170479. 3fe1387751 use os._exit instead of sys.exit when daemonizing
  170480. .UNINDENT
  170481. .IP \(bu 2
  170482. \fBPR\fP \fI\%#49294\fP: (\fI\%Ch3LL\fP) Move run_function call from __init__ to setup
  170483. @ \fI2018\-08\-24 12:41:35 UTC\fP
  170484. .INDENT 2.0
  170485. .IP \(bu 2
  170486. 7bb356f11e Merge pull request \fI\%#49294\fP from Ch3LL/fed_28_tests
  170487. .IP \(bu 2
  170488. 0a5d44a3db Move run_function call from __init__ to setup
  170489. .UNINDENT
  170490. .IP \(bu 2
  170491. \fBPR\fP \fI\%#49302\fP: (\fI\%twangboy\fP) Fix installer 2018.3.3
  170492. @ \fI2018\-08\-24 12:41:14 UTC\fP
  170493. .INDENT 2.0
  170494. .IP \(bu 2
  170495. a607f9332f Merge pull request \fI\%#49302\fP from twangboy/fix_installer_2018.3.3
  170496. .IP \(bu 2
  170497. 68fd37575e Fix erroneous NSSM reference
  170498. .IP \(bu 2
  170499. 103f2c289e Remove delete vcredist line
  170500. .IP \(bu 2
  170501. 007a16638e Bring installer updates from 2017.7.8 to 2018.3.3
  170502. .UNINDENT
  170503. .IP \(bu 2
  170504. \fBPR\fP \fI\%#49241\fP: (\fI\%terminalmage\fP) Don\(aqt silently catch SystemExit
  170505. @ \fI2018\-08\-22 12:57:58 UTC\fP
  170506. .INDENT 2.0
  170507. .IP \(bu 2
  170508. bc0b4ac513 Merge pull request \fI\%#49241\fP from terminalmage/salt\-jenkins\-1078
  170509. .IP \(bu 2
  170510. 08d144f2c7 Don\(aqt silently catch SystemExit
  170511. .IP \(bu 2
  170512. c0fdb818f7 Don\(aqt use a bare except!
  170513. .UNINDENT
  170514. .IP \(bu 2
  170515. \fBPR\fP \fI\%#49239\fP: (\fI\%Ch3LL\fP) Use yaml\(aqs safe_dump in windows ec2 tests
  170516. @ \fI2018\-08\-22 08:48:13 UTC\fP
  170517. .INDENT 2.0
  170518. .IP \(bu 2
  170519. 0fb9ccf60a Merge pull request \fI\%#49239\fP from Ch3LL/win_yaml_test
  170520. .IP \(bu 2
  170521. f5b42dbb24 import salt.utils.yaml
  170522. .IP \(bu 2
  170523. 67290eaff7 Use yaml\(aqs safe_dump in windows ec2 tests
  170524. .UNINDENT
  170525. .IP \(bu 2
  170526. \fBPR\fP \fI\%#49182\fP: (\fI\%terminalmage\fP) Fix hanging syndic test
  170527. @ \fI2018\-08\-18 12:10:32 UTC\fP
  170528. .INDENT 2.0
  170529. .IP \(bu 2
  170530. 134f125b96 Merge pull request \fI\%#49182\fP from terminalmage/salt\-jenkins\-1078
  170531. .IP \(bu 2
  170532. a2d2cd317b Fix hanging syndic test
  170533. .UNINDENT
  170534. .IP \(bu 2
  170535. \fBPR\fP \fI\%#49172\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49118\fP
  170536. @ \fI2018\-08\-17 20:54:05 UTC\fP
  170537. .INDENT 2.0
  170538. .IP \(bu 2
  170539. \fBPR\fP \fI\%#49118\fP: (\fI\%dwoz\fP) Multiple fixes for integration.states.test_file (refs: \fI\%#49172\fP)
  170540. .IP \(bu 2
  170541. \fBPR\fP \fI\%#49088\fP: (\fI\%dwoz\fP) Multiple file state test fixes (refs: \fI\%#49118\fP)
  170542. .IP \(bu 2
  170543. \fBPR\fP \fI\%#49087\fP: (\fI\%dwoz\fP) Filter out scheme\(aqs that are not valid (refs: \fI\%#49118\fP)
  170544. .IP \(bu 2
  170545. b3a247bfbb Merge pull request \fI\%#49172\fP from Ch3LL/bp\-49118
  170546. .IP \(bu 2
  170547. ce5e17bdbd update is_windows salt.utils to correct path
  170548. .IP \(bu 2
  170549. 3fef112409 Multiple fixes for integration.states.test_file
  170550. .UNINDENT
  170551. .IP \(bu 2
  170552. \fBPR\fP \fI\%#49173\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49167\fP
  170553. @ \fI2018\-08\-17 20:30:27 UTC\fP
  170554. .INDENT 2.0
  170555. .IP \(bu 2
  170556. \fBPR\fP \fI\%#49167\fP: (\fI\%dwoz\fP) Fix remaining file state integration tests (py3) (refs: \fI\%#49173\fP, \fI\%#49442\fP)
  170557. .IP \(bu 2
  170558. 85ffc8db87 Merge pull request \fI\%#49173\fP from Ch3LL/bp\-49167
  170559. .IP \(bu 2
  170560. a1a298a13c Simplify dict keys lookup
  170561. .IP \(bu 2
  170562. 3d26affa10 Fix remaining file state integration tests (py3)
  170563. .UNINDENT
  170564. .IP \(bu 2
  170565. \fBPR\fP \fI\%#49171\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49103\fP
  170566. @ \fI2018\-08\-17 20:23:32 UTC\fP
  170567. .INDENT 2.0
  170568. .IP \(bu 2
  170569. \fBPR\fP \fI\%#49103\fP: (\fI\%dwoz\fP) Install the launcher so we can execute py files (refs: \fI\%#49171\fP)
  170570. .IP \(bu 2
  170571. ee54ea5f73 Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  170572. .IP \(bu 2
  170573. 05a2b91fb2 Install the launcher so we can execute py files
  170574. .UNINDENT
  170575. .IP \(bu 2
  170576. \fBPR\fP \fI\%#49132\fP: (\fI\%Ch3LL\fP) [2018.3.3] backport PR \fI\%#49062\fP
  170577. @ \fI2018\-08\-17 14:51:50 UTC\fP
  170578. .INDENT 2.0
  170579. .IP \(bu 2
  170580. \fBPR\fP \fI\%#49062\fP: (\fI\%weswhet\fP) fix memoize on available macOS services (refs: \fI\%#49132\fP)
  170581. .IP \(bu 2
  170582. 58034c9dc3 Merge pull request \fI\%#49132\fP from Ch3LL/bp\-49062
  170583. .IP \(bu 2
  170584. 990fdb6a52 decorator link fix, updating context names, as well as updating macutils tests for latest changes
  170585. .IP \(bu 2
  170586. 3ab5d282be fixing an issue with memoize on macOS services, switching to useing __context__ instead
  170587. .UNINDENT
  170588. .IP \(bu 2
  170589. \fBPR\fP \fI\%#49142\fP: (\fI\%Ch3LL\fP) Remove \-Z script_arg for cloud tests
  170590. @ \fI2018\-08\-16 16:12:59 UTC\fP
  170591. .INDENT 2.0
  170592. .IP \(bu 2
  170593. 01f8f83cf0 Merge pull request \fI\%#49142\fP from Ch3LL/rm_z_arg
  170594. .IP \(bu 2
  170595. a1ef6a88a6 Remove \-Z script_arg for cloud tests
  170596. .UNINDENT
  170597. .IP \(bu 2
  170598. \fBPR\fP \fI\%#49137\fP: (\fI\%Ch3LL\fP) [2018.3.3] Update bootstrap script to latest release (2018.08.15)
  170599. @ \fI2018\-08\-15 19:49:22 UTC\fP
  170600. .INDENT 2.0
  170601. .IP \(bu 2
  170602. a03828884b Merge pull request \fI\%#49137\fP from Ch3LL/bootstrap_2018.3.3
  170603. .IP \(bu 2
  170604. eb9a612096 [2018.3.3] Update bootstrap script to latest release (2018.08.15)
  170605. .UNINDENT
  170606. .IP \(bu 2
  170607. \fBPR\fP \fI\%#49110\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  170608. @ \fI2018\-08\-14 17:11:25 UTC\fP
  170609. .INDENT 2.0
  170610. .IP \(bu 2
  170611. b412bff534 Merge pull request \fI\%#49110\fP from rallytime/merge\-2018.3
  170612. .IP \(bu 2
  170613. 4649f60209 Update old utils paths with new paths
  170614. .IP \(bu 2
  170615. 49c2a784bb Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  170616. .INDENT 2.0
  170617. .IP \(bu 2
  170618. d46e23f4c2 Merge pull request \fI\%#49109\fP from rallytime/merge\-2017.7
  170619. .INDENT 2.0
  170620. .IP \(bu 2
  170621. 3c5527f300 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  170622. .IP \(bu 2
  170623. 01cf2c71ff Merge pull request \fI\%#49051\fP from rallytime/bp\-49046
  170624. .INDENT 2.0
  170625. .IP \(bu 2
  170626. fc0817cb35 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  170627. .UNINDENT
  170628. .UNINDENT
  170629. .IP \(bu 2
  170630. 8954dd269f Merge pull request \fI\%#49090\fP from dwoz/file_line_fix
  170631. .INDENT 2.0
  170632. .IP \(bu 2
  170633. 0dca634e3c Search for (but do not include) CRLF line ending
  170634. .UNINDENT
  170635. .IP \(bu 2
  170636. b99edc3dce Merge pull request \fI\%#49088\fP from dwoz/file_hash_diffs
  170637. .INDENT 2.0
  170638. .IP \(bu 2
  170639. 054afb8197 Multiple file state test fixes
  170640. .UNINDENT
  170641. .IP \(bu 2
  170642. 274977b6c4 Merge pull request \fI\%#49087\fP from dwoz/url_file_test_fixes
  170643. .INDENT 2.0
  170644. .IP \(bu 2
  170645. 632b65f975 Filter out scheme\(aqs that are not valid
  170646. .UNINDENT
  170647. .IP \(bu 2
  170648. db5fb3232a Merge pull request \fI\%#49086\fP from rallytime/new\-doc\-img
  170649. .INDENT 2.0
  170650. .IP \(bu 2
  170651. 90954203cb Update the DOCBANNER image for saltconf
  170652. .UNINDENT
  170653. .IP \(bu 2
  170654. af6ec1dce2 Merge pull request \fI\%#49045\fP from twangboy/fix_43164
  170655. .INDENT 2.0
  170656. .IP \(bu 2
  170657. 589456d08f Fix lint errors
  170658. .IP \(bu 2
  170659. e79243566d Add rallytime\(aqs suggestions
  170660. .IP \(bu 2
  170661. d1ae6b3d6d Fix docs for the registry module and state
  170662. .UNINDENT
  170663. .IP \(bu 2
  170664. a840fea1a1 Merge pull request \fI\%#49083\fP from rallytime/bootstrap\-2017.7
  170665. .INDENT 2.0
  170666. .IP \(bu 2
  170667. 358e14cdac [2017.7] Update bootstrap script to latest release
  170668. .UNINDENT
  170669. .IP \(bu 2
  170670. 9db6cd5654 Merge pull request \fI\%#49059\fP from twangboy/fix_37984
  170671. .INDENT 2.0
  170672. .IP \(bu 2
  170673. 7ed45b5b00 Remove import
  170674. .IP \(bu 2
  170675. 7fb1edb469 Fix docs to clarify uptime output on Windows
  170676. .UNINDENT
  170677. .IP \(bu 2
  170678. f9db72f00c Merge pull request \fI\%#49061\fP from saltstack/revert\-48982\-new_logo_2017.7
  170679. .INDENT 2.0
  170680. .IP \(bu 2
  170681. 98a8da728b Revert "New logo 2017.7 (WIP)"
  170682. .UNINDENT
  170683. .IP \(bu 2
  170684. bbcd1869ec Merge pull request \fI\%#48982\fP from newwebash/new_logo_2017.7
  170685. .INDENT 2.0
  170686. .IP \(bu 2
  170687. 5c1c311f77 Update Salt Conf ad
  170688. .IP \(bu 2
  170689. 72dc63c426 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into new_logo_2017.7
  170690. .IP \(bu 2
  170691. 9f4e78a7b9 Revert "Update saltconf ad"
  170692. .IP \(bu 2
  170693. 3ab8cdb882 Update saltconf ad
  170694. .UNINDENT
  170695. .UNINDENT
  170696. .UNINDENT
  170697. .IP \(bu 2
  170698. \fBISSUE\fP \fI\%#48665\fP: (\fI\%dgengtek\fP) salt\-api auth ldap generates a valid token when using bindpw and an invalid request (refs: \fI\%#48901\fP)
  170699. .IP \(bu 2
  170700. \fBPR\fP \fI\%#48901\fP: (\fI\%garethgreenaway\fP) [2018.3] fix to auth/ldap.py
  170701. @ \fI2018\-08\-14 16:10:19 UTC\fP
  170702. .INDENT 2.0
  170703. .IP \(bu 2
  170704. e78fc0e0eb Merge pull request \fI\%#48901\fP from garethgreenaway/48665_auth_ldap_valid_token_failed_auth
  170705. .IP \(bu 2
  170706. d4e4f2e803 Fixing a typo in a comment.
  170707. .IP \(bu 2
  170708. 2eb167ea42 Fixing issue when a valid token is generated even when invalid user credentials are passed. This change verifies that the binddn credentials are valid, then verifies that the username & password (if not None) are also valid.
  170709. .UNINDENT
  170710. .IP \(bu 2
  170711. \fBISSUE\fP \fI\%#49081\fP: (\fI\%frogunder\fP) Fluorine \- I see error/traceback when running minion in debug mode (refs: \fI\%#49085\fP)
  170712. .IP \(bu 2
  170713. \fBPR\fP \fI\%#49099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49085\fP to 2018.3
  170714. @ \fI2018\-08\-14 12:42:51 UTC\fP
  170715. .INDENT 2.0
  170716. .IP \(bu 2
  170717. \fBPR\fP \fI\%#49085\fP: (\fI\%gtmanfred\fP) fix async call to process manager (refs: \fI\%#49099\fP)
  170718. .IP \(bu 2
  170719. 484c1e0123 Merge pull request \fI\%#49099\fP from rallytime/bp\-49085
  170720. .IP \(bu 2
  170721. 024d9cb843 fix async call to process manager
  170722. .UNINDENT
  170723. .IP \(bu 2
  170724. \fBISSUE\fP \fI\%#49018\fP: (\fI\%Ch3LL\fP) add MasterPillarUtil tests (refs: \fI\%#49034\fP)
  170725. .IP \(bu 2
  170726. \fBPR\fP \fI\%#49071\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49034\fP to 2018.3
  170727. @ \fI2018\-08\-13 20:15:31 UTC\fP
  170728. .INDENT 2.0
  170729. .IP \(bu 2
  170730. \fBPR\fP \fI\%#49034\fP: (\fI\%garethgreenaway\fP) [fluorine] Adding tests for MasterPillarUtil (refs: \fI\%#49071\fP)
  170731. .IP \(bu 2
  170732. bc033da677 Merge pull request \fI\%#49071\fP from rallytime/bp\-49034
  170733. .IP \(bu 2
  170734. 8108a4d31a Adding some tests for the grains, pillar and mine functions in the cache runner. These will also ensure that the relevant functions in salt.utils.master.MasterPillarUtil are functioning properly.
  170735. .UNINDENT
  170736. .IP \(bu 2
  170737. \fBPR\fP \fI\%#49077\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49075\fP to 2018.3
  170738. @ \fI2018\-08\-13 20:00:00 UTC\fP
  170739. .INDENT 2.0
  170740. .IP \(bu 2
  170741. \fBPR\fP \fI\%#49075\fP: (\fI\%gtmanfred\fP) fix last async issue (refs: \fI\%#49077\fP)
  170742. .IP \(bu 2
  170743. 90c2f026b3 Merge pull request \fI\%#49077\fP from rallytime/bp\-49075
  170744. .IP \(bu 2
  170745. 5e07b8306b fix last async issue
  170746. .UNINDENT
  170747. .IP \(bu 2
  170748. \fBPR\fP \fI\%#49096\fP: (\fI\%rallytime\fP) Update the DOCBANNER image for saltconf
  170749. @ \fI2018\-08\-13 19:59:39 UTC\fP
  170750. .INDENT 2.0
  170751. .IP \(bu 2
  170752. 6942ef1102 Merge pull request \fI\%#49096\fP from rallytime/new\-doc\-img\-2018.3
  170753. .IP \(bu 2
  170754. 75080705ce Update the DOCBANNER image for saltconf
  170755. .UNINDENT
  170756. .IP \(bu 2
  170757. \fBPR\fP \fI\%#49055\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  170758. @ \fI2018\-08\-13 19:20:11 UTC\fP
  170759. .INDENT 2.0
  170760. .IP \(bu 2
  170761. 0e1ed7b923 Merge pull request \fI\%#49055\fP from rallytime/merge\-2018.3
  170762. .IP \(bu 2
  170763. 83a15cb623 Add optimization_order config to mocked opts
  170764. .IP \(bu 2
  170765. ea6883ee55 Update old utils paths to new utils paths
  170766. .IP \(bu 2
  170767. 201031fa8a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  170768. .INDENT 2.0
  170769. .IP \(bu 2
  170770. 0d2a495378 Merge pull request \fI\%#49050\fP from rallytime/merge\-2017.7
  170771. .INDENT 2.0
  170772. .IP \(bu 2
  170773. ed6fb8b739 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  170774. .IP \(bu 2
  170775. 189e28691f Merge pull request \fI\%#49044\fP from Ch3LL/vultr_test
  170776. .INDENT 2.0
  170777. .IP \(bu 2
  170778. 0dedfae4d1 increase timeout on vultr cloud integration test
  170779. .UNINDENT
  170780. .IP \(bu 2
  170781. c606a32cf2 Merge pull request \fI\%#49042\fP from rallytime/flaky\-jinja\-test
  170782. .INDENT 2.0
  170783. .IP \(bu 2
  170784. a43d9b4ba6 Mark a jinja template test as flaky
  170785. .UNINDENT
  170786. .IP \(bu 2
  170787. 6415b6f73b Merge pull request \fI\%#49041\fP from Ch3LL/ec2_fix
  170788. .INDENT 2.0
  170789. .IP \(bu 2
  170790. cf7f2459b8 [2017.7.8] backport PR \fI\%#48212\fP
  170791. .UNINDENT
  170792. .IP \(bu 2
  170793. 1db036406b Merge pull request \fI\%#49030\fP from rallytime/update\-client\-tests
  170794. .INDENT 2.0
  170795. .IP \(bu 2
  170796. f08ee6c6ae Update netapi client tests
  170797. .UNINDENT
  170798. .UNINDENT
  170799. .IP \(bu 2
  170800. 70be9ac9b1 Merge pull request \fI\%#49046\fP from garethgreenaway/1022_fixing_test_failing_py3_Debian_test
  170801. .INDENT 2.0
  170802. .IP \(bu 2
  170803. fa2339bb91 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  170804. .UNINDENT
  170805. .IP \(bu 2
  170806. 69c9b0afb1 Merge pull request \fI\%#49036\fP from cspeidel/doc\-fix\-netyang
  170807. .INDENT 2.0
  170808. .IP \(bu 2
  170809. f7ac085eb5 minor doc fix in netyang.py
  170810. .UNINDENT
  170811. .IP \(bu 2
  170812. c5f3fd6b2b Merge pull request \fI\%#48997\fP from AVeenstra/patch\-1
  170813. .INDENT 2.0
  170814. .IP \(bu 2
  170815. 0e535f2c8c Unpacking dict with the six iterator
  170816. .IP \(bu 2
  170817. 5e82685b89 Python 3 related fix in highstate_return.py
  170818. .UNINDENT
  170819. .IP \(bu 2
  170820. c06a3cf531 Merge pull request \fI\%#49021\fP from rallytime/merge\-2017.7
  170821. .INDENT 2.0
  170822. .IP \(bu 2
  170823. ca82b3d57a Merge branch \(aq2017.7.8\(aq into merge\-2017.7
  170824. .INDENT 2.0
  170825. .IP \(bu 2
  170826. f73ba21bc7 Merge pull request \fI\%#49024\fP from rallytime/fix\-deb\-test
  170827. .INDENT 2.0
  170828. .IP \(bu 2
  170829. a9c16d9137 Fix test error in test_compiler jinja check
  170830. .UNINDENT
  170831. .UNINDENT
  170832. .IP \(bu 2
  170833. c6f8429e41 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  170834. .IP \(bu 2
  170835. 6b6d68c615 Merge pull request \fI\%#49020\fP from rallytime/fix\-grains\-test
  170836. .INDENT 2.0
  170837. .IP \(bu 2
  170838. f72a3ac6be Make grains integration test more robust
  170839. .UNINDENT
  170840. .IP \(bu 2
  170841. 92d6c25c7f Merge pull request \fI\%#49002\fP from rallytime/skip\-jinja\-deep\-error\-test
  170842. .INDENT 2.0
  170843. .IP \(bu 2
  170844. 23b66ef8bb Skip test_jinja_deep_error on Debian 8
  170845. .UNINDENT
  170846. .IP \(bu 2
  170847. 41d9f11eb3 Merge pull request \fI\%#48999\fP from rallytime/fix\-boto\-test
  170848. .INDENT 2.0
  170849. .IP \(bu 2
  170850. d0136b1be5 Update expected return value in boto test
  170851. .UNINDENT
  170852. .UNINDENT
  170853. .IP \(bu 2
  170854. 2ddba6391a Merge pull request \fI\%#49010\fP from Ch3LL/univention
  170855. .INDENT 2.0
  170856. .IP \(bu 2
  170857. c09bce9afe Add univention OS to debian os_family mapping
  170858. .UNINDENT
  170859. .IP \(bu 2
  170860. 41bd36842e Merge pull request \fI\%#48636\fP from terminalmage/loader\-fixes
  170861. .INDENT 2.0
  170862. .IP \(bu 2
  170863. 0441cd56ef Add optimization_order to mocking
  170864. .IP \(bu 2
  170865. 2256fad320 Process pycache files after .py files
  170866. .IP \(bu 2
  170867. a78663a301 Lint
  170868. .IP \(bu 2
  170869. 0728b5f8b6 Add note about Python 3.5+ only support for optimization_order
  170870. .IP \(bu 2
  170871. 764969ce08 Add a test to confirm that .py files are still loaded correctly
  170872. .IP \(bu 2
  170873. 0f60beb6b6 Fix bad copypasta
  170874. .IP \(bu 2
  170875. fbcd142ea2 Add configuration docs for optimization_order config option
  170876. .IP \(bu 2
  170877. 8af2d580f3 Only compile the suffix_order/map once per LazyLoader instance
  170878. .IP \(bu 2
  170879. 4b95e5f313 Don\(aqt put __pycache__ dir in the file list
  170880. .IP \(bu 2
  170881. e7c10196da Quiet the byte compiling for PY2
  170882. .IP \(bu 2
  170883. 9338370477 Add unit tests for loader optimization levels
  170884. .IP \(bu 2
  170885. c3622933c1 PY3: Support different optimization levels
  170886. .IP \(bu 2
  170887. 6fc8da5bab Add optimization_order config option with default value
  170888. .IP \(bu 2
  170889. dfe423a1e0 Remove commented\-out log message
  170890. .UNINDENT
  170891. .UNINDENT
  170892. .UNINDENT
  170893. .IP \(bu 2
  170894. \fBPR\fP \fI\%#49084\fP: (\fI\%rallytime\fP) [2018.3] Update bootstrap script to latest release
  170895. @ \fI2018\-08\-13 18:14:42 UTC\fP
  170896. .INDENT 2.0
  170897. .IP \(bu 2
  170898. db7ec46875 Merge pull request \fI\%#49084\fP from rallytime/bootstrap\-2018.3
  170899. .IP \(bu 2
  170900. 28dc8ce954 [2017.7] Update bootstrap script to latest release
  170901. .UNINDENT
  170902. .IP \(bu 2
  170903. \fBPR\fP \fI\%#49052\fP: (\fI\%isbm\fP) Python 3.7 support (backport 2018.3)
  170904. @ \fI2018\-08\-13 13:06:51 UTC\fP
  170905. .INDENT 2.0
  170906. .IP \(bu 2
  170907. b0d5acbe0d Merge pull request \fI\%#49052\fP from isbm/isbm\-python37\-support\-2018.3
  170908. .IP \(bu 2
  170909. 4386a9ca1f Merge branch \(aq2018.3\(aq into isbm\-python37\-support\-2018.3
  170910. .IP \(bu 2
  170911. bc85a5fa98 Fix configuration setting
  170912. .IP \(bu 2
  170913. 47078a300f Remove async keyword, moving it into the kwargs.
  170914. .IP \(bu 2
  170915. 31dccc4fdf fix unicode literals
  170916. .IP \(bu 2
  170917. 990936992c Keep runner API unchanged
  170918. .IP \(bu 2
  170919. 46bafcafef Fix nag\-message
  170920. .IP \(bu 2
  170921. 5c887ac2ae Support original API
  170922. .IP \(bu 2
  170923. 2c22e794d4 Use kwargs instead of directly named parameters
  170924. .IP \(bu 2
  170925. 7d095491d9 Update docstring
  170926. .IP \(bu 2
  170927. 9807e8dbb7 Add \(aqasync\(aq backward compatibility
  170928. .IP \(bu 2
  170929. e8608aa9be Revert api call: it is about "functionname_async" suffix.
  170930. .IP \(bu 2
  170931. 0543578336 Deprecate \(aqasync\(aq parameter in Mandrill API
  170932. .IP \(bu 2
  170933. 1107de0dec Lintfix: PEP8 requires two empty lines
  170934. .IP \(bu 2
  170935. 2a18e335af Fix function signatures in Cassandra module
  170936. .IP \(bu 2
  170937. 603f94e2a3 Cleanup docstrings at module level
  170938. .IP \(bu 2
  170939. b9718d3a09 Fix log error/info/warning and exception messages
  170940. .IP \(bu 2
  170941. 6e77aff69a Fix local opts from CLI
  170942. .IP \(bu 2
  170943. 493e48ddb5 Remove internal variables/properties with the reserved words
  170944. .IP \(bu 2
  170945. be07f64bc4 Change internal function signatures to avoid reserved word
  170946. .IP \(bu 2
  170947. 7d095e0b26 Rename async function to asynchronous
  170948. .IP \(bu 2
  170949. 35eaebb8a4 Fix docstrings
  170950. .IP \(bu 2
  170951. 7a597f19b5 Fix comments
  170952. .IP \(bu 2
  170953. 69920366ae Fix CLI config
  170954. .IP \(bu 2
  170955. 173f3d7aa8 Fix docstring typo
  170956. .IP \(bu 2
  170957. b7da571624 Fix imports
  170958. .IP \(bu 2
  170959. 7ec3954bef Rename module to full wording
  170960. .UNINDENT
  170961. .IP \(bu 2
  170962. \fBISSUE\fP \fI\%#48557\fP: (\fI\%whytewolf\fP) file.line in python3 on windows 2012 r2 is adding extra CR line endings. (refs: \fI\%#49026\fP)
  170963. .IP \(bu 2
  170964. \fBPR\fP \fI\%#49026\fP: (\fI\%dwoz\fP) Fix file.line line endings
  170965. @ \fI2018\-08\-13 13:05:43 UTC\fP
  170966. .INDENT 2.0
  170967. .IP \(bu 2
  170968. 338ecb70ef Merge pull request \fI\%#49026\fP from dwoz/issue_48557
  170969. .IP \(bu 2
  170970. a4d22fda2f Merge remote\-tracking branch \(aqorigin/issue_48557\(aq into issue_48557
  170971. .INDENT 2.0
  170972. .IP \(bu 2
  170973. 702e76cfc9 Merge branch \(aq2018.3\(aq into issue_48557
  170974. .UNINDENT
  170975. .IP \(bu 2
  170976. 6cf93e8fc4 Skip newline in binary mode
  170977. .IP \(bu 2
  170978. 2cf80c1595 Fix linter errors
  170979. .IP \(bu 2
  170980. baf291b4c8 Fix file.line line endings
  170981. .UNINDENT
  170982. .IP \(bu 2
  170983. \fBPR\fP \fI\%#49038\fP: (\fI\%gtmanfred\fP) disable enable_ssh_minions to see if it is slowing down 2018.3 tests
  170984. @ \fI2018\-08\-10 18:07:59 UTC\fP
  170985. .INDENT 2.0
  170986. .IP \(bu 2
  170987. 602fed7806 Merge pull request \fI\%#49038\fP from gtmanfred/slowtest
  170988. .IP \(bu 2
  170989. 6bc44c91c4 remove localhost from tests
  170990. .IP \(bu 2
  170991. 7b168a5aac disable enable_ssh_minions to see if it is slowing down 2018.3 tests
  170992. .UNINDENT
  170993. .IP \(bu 2
  170994. \fBISSUE\fP \fI\%#48996\fP: (\fI\%jils2013\fP) file.get_diff not work on version:2018.3.2 (refs: \fI\%#49033\fP)
  170995. .IP \(bu 2
  170996. \fBPR\fP \fI\%#49033\fP: (\fI\%terminalmage\fP) Fix file.get_diff for remote files
  170997. @ \fI2018\-08\-09 21:06:53 UTC\fP
  170998. .INDENT 2.0
  170999. .IP \(bu 2
  171000. 4eeb75f028 Merge pull request \fI\%#49033\fP from terminalmage/issue48996
  171001. .IP \(bu 2
  171002. 163aea71c8 Lint
  171003. .IP \(bu 2
  171004. d6e5038022 Fix file.get_diff for remote files
  171005. .UNINDENT
  171006. .IP \(bu 2
  171007. \fBISSUE\fP \fI\%#48856\fP: (\fI\%travispaul\fP) Salt fails to start on NetBSD 8 (refs: \fI\%#48926\fP)
  171008. .IP \(bu 2
  171009. \fBPR\fP \fI\%#48926\fP: (\fI\%travispaul\fP) Handle ifconfig output differently for NetBSD >= 8.0
  171010. @ \fI2018\-08\-09 20:07:44 UTC\fP
  171011. .INDENT 2.0
  171012. .IP \(bu 2
  171013. b24c96a292 Merge pull request \fI\%#48926\fP from travispaul/fix\-netbsd\-8\-new\-ifconfig
  171014. .IP \(bu 2
  171015. d59b6d8269 Add unit test for NetBSD 8 ifconfig changes
  171016. .IP \(bu 2
  171017. 80f8a667d1 Handle ifconfig output differently for NetBSD >= 8.0
  171018. .UNINDENT
  171019. .IP \(bu 2
  171020. \fBPR\fP \fI\%#48803\fP: (\fI\%dmurphy18\fP) Support for execution modules and states mount on AIX
  171021. @ \fI2018\-08\-09 17:51:55 UTC\fP
  171022. .INDENT 2.0
  171023. .IP \(bu 2
  171024. 7d6b9ed0a5 Merge pull request \fI\%#48803\fP from dmurphy18/aix_filesystems
  171025. .IP \(bu 2
  171026. 92818f816b Fixes for testing
  171027. .IP \(bu 2
  171028. 77dd7a1743 Adjust unit tests
  171029. .IP \(bu 2
  171030. eaed033cde Updated for review comments and adjusted locking when writing files
  171031. .IP \(bu 2
  171032. 5bf9e6085b Update due to review comments
  171033. .IP \(bu 2
  171034. 9fb5641dc7 Mount unit tests for modules and states for AIX
  171035. .IP \(bu 2
  171036. b28f427432 Save off work after laptop issue
  171037. .IP \(bu 2
  171038. e5c2741fe7 module and states mount support for AIX
  171039. .IP \(bu 2
  171040. b701e16ad0 Further updates to support for mount on AIX
  171041. .IP \(bu 2
  171042. 210076276f Initial support for handling /etc/filesystems on AIX
  171043. .UNINDENT
  171044. .IP \(bu 2
  171045. \fBISSUE\fP \fI\%#48496\fP: (\fI\%icy\fP) Salt\-key unable to delete the certificate Test=True (refs: \fI\%#48929\fP)
  171046. .IP \(bu 2
  171047. \fBPR\fP \fI\%#48929\fP: (\fI\%terminalmage\fP) 2 salt\-key fixes
  171048. @ \fI2018\-08\-09 17:50:07 UTC\fP
  171049. .INDENT 2.0
  171050. .IP \(bu 2
  171051. 2a38905a8a Merge pull request \fI\%#48929\fP from terminalmage/issue48496
  171052. .IP \(bu 2
  171053. 7ac10f9eac 2 salt\-key fixes
  171054. .UNINDENT
  171055. .IP \(bu 2
  171056. \fBISSUE\fP \fI\%#47481\fP: (\fI\%whytewolf\fP) Oxygen: task.add_trigger with start_date stating strptime needs a string not int. (refs: \fI\%#49022\fP)
  171057. .IP \(bu 2
  171058. \fBPR\fP \fI\%#49022\fP: (\fI\%dwoz\fP) Document time format idiosyncrasies
  171059. @ \fI2018\-08\-09 17:47:12 UTC\fP
  171060. .INDENT 2.0
  171061. .IP \(bu 2
  171062. bb9d23bfa1 Merge pull request \fI\%#49022\fP from dwoz/47481_docs
  171063. .IP \(bu 2
  171064. 313a3d93d6 Document time format idiosyncrasies
  171065. .UNINDENT
  171066. .IP \(bu 2
  171067. \fBPR\fP \fI\%#48932\fP: (\fI\%twangboy\fP) Fix pkg.install when pkg already installed
  171068. @ \fI2018\-08\-09 17:45:51 UTC\fP
  171069. .INDENT 2.0
  171070. .IP \(bu 2
  171071. 9b6a9ff4f1 Merge pull request \fI\%#48932\fP from twangboy/fix_win_repo
  171072. .IP \(bu 2
  171073. 075ea29d29 remove .lower(), fix debug messages
  171074. .IP \(bu 2
  171075. d7c2f476ac Remove current: version for latest as well
  171076. .IP \(bu 2
  171077. 522ac26459 Fix typo in code comment
  171078. .IP \(bu 2
  171079. 47b2898a85 return empty dict on no changes
  171080. .IP \(bu 2
  171081. 6532706d2f Make the tests run on Linux
  171082. .IP \(bu 2
  171083. cfe55a391a Add tests for pkg.install output
  171084. .IP \(bu 2
  171085. 8ec058f498 Clarify code comment
  171086. .IP \(bu 2
  171087. 8af2cfd54a Fix issues where current is not returned
  171088. .UNINDENT
  171089. .IP \(bu 2
  171090. \fBPR\fP \fI\%#49011\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171091. @ \fI2018\-08\-09 17:34:18 UTC\fP
  171092. .INDENT 2.0
  171093. .IP \(bu 2
  171094. d7b7a92ef6 Merge pull request \fI\%#49011\fP from rallytime/merge\-2018.3
  171095. .IP \(bu 2
  171096. 02670969d0 Apply fix to ssh init file that was there before merge
  171097. .IP \(bu 2
  171098. 7e1f7915e4 Revert "Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh"
  171099. .IP \(bu 2
  171100. 00416d54d1 Revert "add key\-deploy test"
  171101. .IP \(bu 2
  171102. c26fa0d6c4 Mark orchestration test as expensive
  171103. .IP \(bu 2
  171104. fceb6d8d6f Update old utils paths to use new paths
  171105. .IP \(bu 2
  171106. 3e6445a9d6 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171107. .INDENT 2.0
  171108. .IP \(bu 2
  171109. b49eeca6e9 Merge pull request \fI\%#49003\fP from rallytime/boto\-test\-2017.7
  171110. .INDENT 2.0
  171111. .IP \(bu 2
  171112. 1a23bb233f Update expected return value in boto test
  171113. .UNINDENT
  171114. .IP \(bu 2
  171115. 51eed1fdfb Merge pull request \fI\%#48988\fP from rallytime/merge\-2017.7
  171116. .INDENT 2.0
  171117. .IP \(bu 2
  171118. df8699e2e7 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  171119. .IP \(bu 2
  171120. a1e54634dc Merge pull request \fI\%#48976\fP from rallytime/tornado
  171121. .INDENT 2.0
  171122. .IP \(bu 2
  171123. 0bd838ab6c Skip unreliable tornado tests
  171124. .UNINDENT
  171125. .IP \(bu 2
  171126. 22713be9c1 Merge pull request \fI\%#48979\fP from rallytime/bp\-48959
  171127. .IP \(bu 2
  171128. 03aa0e49b0 Merge pull request \fI\%#48970\fP from Ch3LL/back_48962
  171129. .INDENT 2.0
  171130. .IP \(bu 2
  171131. 3ce1b8a3c9 Update the elif block to only be true for versions below Debian 9.
  171132. .UNINDENT
  171133. .IP \(bu 2
  171134. e6cea5e3c7 Merge pull request \fI\%#48968\fP from rallytime/man\-pages
  171135. .INDENT 2.0
  171136. .IP \(bu 2
  171137. 64fe3be41a Update man pages for 2017.7.8 release
  171138. .UNINDENT
  171139. .UNINDENT
  171140. .IP \(bu 2
  171141. 10fd4661ff Merge pull request \fI\%#48978\fP from gtmanfred/2017.7
  171142. .INDENT 2.0
  171143. .IP \(bu 2
  171144. 6108363f82 clean up gemfile
  171145. .UNINDENT
  171146. .IP \(bu 2
  171147. 5b2423e527 Merge pull request \fI\%#48959\fP from rallytime/flaky\-tests
  171148. .INDENT 2.0
  171149. .IP \(bu 2
  171150. aaf986d728 Mark one grains test as flaky & convert to pytest notation
  171151. .IP \(bu 2
  171152. e7e5abcf48 Mark 2 matcher tests as flaky
  171153. .UNINDENT
  171154. .IP \(bu 2
  171155. 79994ecab4 Merge pull request \fI\%#48962\fP from garethgreenaway/1022_test_service_disable_debian_part_deux
  171156. .INDENT 2.0
  171157. .IP \(bu 2
  171158. 9e71551b36 Update the elif block to only be true for versions below Debian 9.
  171159. .UNINDENT
  171160. .IP \(bu 2
  171161. 1a1bda00cb Merge pull request \fI\%#48960\fP from dwoz/block_replace_tests
  171162. .INDENT 2.0
  171163. .IP \(bu 2
  171164. 94ac2b4fc7 Multiple block replace test fixes
  171165. .UNINDENT
  171166. .IP \(bu 2
  171167. 93b862f350 Merge pull request \fI\%#48957\fP from whytewolf/beacons_log_doc_change
  171168. .INDENT 2.0
  171169. .IP \(bu 2
  171170. a77fd16869 Update salt.beacons.log to reflect that re module is used for matching.
  171171. .UNINDENT
  171172. .IP \(bu 2
  171173. 0245cffb07 Merge pull request \fI\%#48955\fP from terminalmage/service\-systemd
  171174. .INDENT 2.0
  171175. .IP \(bu 2
  171176. 23f87bd536 Don\(aqt load service.py if minion is running a non\-sysvinit init system
  171177. .UNINDENT
  171178. .IP \(bu 2
  171179. 848d583438 Merge pull request \fI\%#48950\fP from KaiSforza/kitchenfix\-2017.7
  171180. .INDENT 2.0
  171181. .IP \(bu 2
  171182. 5242cb143a Added a quote to kitchen Jenkinsfiles
  171183. .UNINDENT
  171184. .IP \(bu 2
  171185. 928d688d65 Merge pull request \fI\%#48943\fP from rallytime/flaky\-tests
  171186. .INDENT 2.0
  171187. .IP \(bu 2
  171188. 668da57ab9 Mark some shell and runner integration tests as flaky
  171189. .UNINDENT
  171190. .IP \(bu 2
  171191. cd42510d3a Merge pull request \fI\%#48940\fP from rallytime/bp\-48852
  171192. .INDENT 2.0
  171193. .IP \(bu 2
  171194. fa4ef92e79 Record all the artifacts from the build
  171195. .UNINDENT
  171196. .IP \(bu 2
  171197. 43649a68be Merge pull request \fI\%#48935\fP from garethgreenaway/1045_test_pkg_015_installed_held_centos
  171198. .INDENT 2.0
  171199. .IP \(bu 2
  171200. 0bb10107b6 Merge branch \(aq2017.7\(aq into 1045_test_pkg_015_installed_held_centos
  171201. .IP \(bu 2
  171202. 24d5e6a22f Fixing the test_pkg_015_installed_held test to be able to successfully run on CentOS
  171203. .UNINDENT
  171204. .IP \(bu 2
  171205. 2421e2a570 Merge pull request \fI\%#47100\fP from gtmanfred/ssh
  171206. .INDENT 2.0
  171207. .IP \(bu 2
  171208. 5b443af7ae add key\-deploy test
  171209. .IP \(bu 2
  171210. a131c9beeb Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh
  171211. .UNINDENT
  171212. .IP \(bu 2
  171213. d541bd6446 Merge pull request \fI\%#48891\fP from damon\-atkins/2017.7_win_pkg.list_pkgs_not_found
  171214. .INDENT 2.0
  171215. .IP \(bu 2
  171216. a4af1dbfb1 Fix win_pkg issues introduced Jan 2018. If DisplayVersion does not exist it should return version as "Not Found"
  171217. .UNINDENT
  171218. .IP \(bu 2
  171219. 5f6a56f5dc Merge pull request \fI\%#48896\fP from rallytime/bp\-48730
  171220. .INDENT 2.0
  171221. .IP \(bu 2
  171222. 57aa204c9d Merge branch \(aq2017.7\(aq into bp\-48730
  171223. .IP \(bu 2
  171224. 4995922584 Forgot variable in signature
  171225. .IP \(bu 2
  171226. 0503bc18b6 Fix batch install using pkgng
  171227. .UNINDENT
  171228. .IP \(bu 2
  171229. 0c64bba865 Merge pull request \fI\%#48933\fP from garethgreenaway/1022_debian_8_failing_service\-test
  171230. .INDENT 2.0
  171231. .IP \(bu 2
  171232. 280d1d2ad2 Fixing failing test, integration.modules.test_service.ServiceModuleTest.test_service_disable_doesnot_exist, on Debian 8 and higher.
  171233. .UNINDENT
  171234. .IP \(bu 2
  171235. 0c3d2c6a09 Merge pull request \fI\%#48922\fP from rallytime/cache\-doc\-error
  171236. .INDENT 2.0
  171237. .IP \(bu 2
  171238. 8ca89df7e8 Update backticks on job_cache docs
  171239. .UNINDENT
  171240. .IP \(bu 2
  171241. 8d1fc4f8e5 Merge pull request \fI\%#48866\fP from Ch3LL/cmd_win_tests
  171242. .INDENT 2.0
  171243. .IP \(bu 2
  171244. 905da13653 Merge branch \(aq2017.7\(aq into cmd_win_tests
  171245. .UNINDENT
  171246. .IP \(bu 2
  171247. 57d58e7541 Merge pull request \fI\%#48920\fP from rallytime/bp\-48904\-2017.7
  171248. .INDENT 2.0
  171249. .IP \(bu 2
  171250. a55f92954a No rehashing in parallel
  171251. .IP \(bu 2
  171252. 3be11e06fe Add docs for new escape kwarg
  171253. .IP \(bu 2
  171254. 391bb8a411 use a specific path for just the cmd._run call
  171255. .IP \(bu 2
  171256. 62c66ba489 make sure we lower the check on shell
  171257. .IP \(bu 2
  171258. 9312a993a5 Add cmd module integration tests for windows and fix space in path issue
  171259. .UNINDENT
  171260. .UNINDENT
  171261. .UNINDENT
  171262. .IP \(bu 2
  171263. \fBISSUE\fP \fI\%#48123\fP: (\fI\%c\-wicklein\fP) file.directory with recurse fails when it encounters a broken symbolic link (refs: \fI\%#48985\fP)
  171264. .IP \(bu 2
  171265. \fBPR\fP \fI\%#48985\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to salt/modules/file.py
  171266. @ \fI2018\-08\-09 15:03:09 UTC\fP
  171267. .INDENT 2.0
  171268. .IP \(bu 2
  171269. 3325b7d4c0 Merge pull request \fI\%#48985\fP from garethgreenaway/48123_file_directory_recurse_fails_broken_symlink
  171270. .IP \(bu 2
  171271. 10c4eca206 Merge branch \(aq2018.3\(aq into 48123_file_directory_recurse_fails_broken_symlink
  171272. .IP \(bu 2
  171273. a404cc030f Fixing the issue when using the file.directory state with recurse if the directory contains a broken symbolic link. This fix adds an additional conditional, is_link, before running lsattr since lsattr does not work on symlinks and causes issues when that symlink is broken.
  171274. .UNINDENT
  171275. .IP \(bu 2
  171276. \fBISSUE\fP \fI\%#47695\fP: (\fI\%AmbicaY\fP) Continuous error in the proxy minion logs (refs: \fI\%#49019\fP)
  171277. .IP \(bu 2
  171278. \fBPR\fP \fI\%#49019\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to scheduler when global enabled key is present
  171279. @ \fI2018\-08\-09 13:06:26 UTC\fP
  171280. .INDENT 2.0
  171281. .IP \(bu 2
  171282. d353c02a8c Merge pull request \fI\%#49019\fP from garethgreenaway/47695_fixing_scheduler_bug_when_enabled_is_present
  171283. .IP \(bu 2
  171284. aff1b8f6d4 Lint.
  171285. .IP \(bu 2
  171286. 8935c08141 Fixing a bug that occurs if the "enabled" key is present in the scheduler items dictionary. Adding a test to ensure scheduler runs as expected when that key is present.
  171287. .UNINDENT
  171288. .IP \(bu 2
  171289. \fBPR\fP \fI\%#49023\fP: (\fI\%The\-Loeki\fP) Salt SSH appends IdentityFile=agent\-forwarding
  171290. @ \fI2018\-08\-09 12:55:59 UTC\fP
  171291. .INDENT 2.0
  171292. .IP \(bu 2
  171293. a56bc7ffb9 Merge pull request \fI\%#49023\fP from The\-Loeki/patch\-1
  171294. .IP \(bu 2
  171295. 8b53571c70 Salt SSH appends IdentityFile=agent\-forwarding
  171296. .UNINDENT
  171297. .IP \(bu 2
  171298. \fBPR\fP \fI\%#48981\fP: (\fI\%Ch3LL\fP) Add warning to mac runas docs about escaping characters
  171299. @ \fI2018\-08\-08 19:43:43 UTC\fP
  171300. .INDENT 2.0
  171301. .IP \(bu 2
  171302. 4590494b50 Merge pull request \fI\%#48981\fP from Ch3LL/mac_runas_quote
  171303. .IP \(bu 2
  171304. 8269b55b84 remove unnecessary spaces in cmdmod.py docs
  171305. .IP \(bu 2
  171306. 757daf7d7e add runas macosx warning in 2018.3.3 release notes
  171307. .IP \(bu 2
  171308. 4e9e985b14 Add warning to mac runas docs about escaping characters
  171309. .UNINDENT
  171310. .IP \(bu 2
  171311. \fBPR\fP \fI\%#49004\fP: (\fI\%rallytime\fP) Port \fI\%#48999\fP to 2018.3
  171312. @ \fI2018\-08\-08 15:32:46 UTC\fP
  171313. .INDENT 2.0
  171314. .IP \(bu 2
  171315. \fBPR\fP \fI\%#48999\fP: (\fI\%rallytime\fP) Update expected return value in boto test (refs: \fI\%#49004\fP, \fI\%#49003\fP)
  171316. .IP \(bu 2
  171317. b87bf905c2 Merge pull request \fI\%#49004\fP from rallytime/boto\-test\-2018.3
  171318. .IP \(bu 2
  171319. 9f0b9a1073 Update expected return value in boto test
  171320. .UNINDENT
  171321. .IP \(bu 2
  171322. \fBPR\fP \fI\%#48987\fP: (\fI\%twangboy\fP) Fix issue with win_iis.create_cert_binding
  171323. @ \fI2018\-08\-08 13:29:06 UTC\fP
  171324. .INDENT 2.0
  171325. .IP \(bu 2
  171326. 630f61e625 Merge pull request \fI\%#48987\fP from twangboy/fix_48786
  171327. .IP \(bu 2
  171328. 86d0836f90 Fix issue with iterating over None
  171329. .UNINDENT
  171330. .IP \(bu 2
  171331. \fBISSUE\fP \fI\%#48777\fP: (\fI\%jonasgit\fP) file.recurse fails on file contents encoding not utf\-8 (refs: \fI\%#48934\fP)
  171332. .IP \(bu 2
  171333. \fBPR\fP \fI\%#48934\fP: (\fI\%terminalmage\fP) Properly handle latin\-1 encoding in file diffs
  171334. @ \fI2018\-08\-07 21:02:24 UTC\fP
  171335. .INDENT 2.0
  171336. .IP \(bu 2
  171337. ab1a713bc3 Merge pull request \fI\%#48934\fP from terminalmage/issue48777
  171338. .IP \(bu 2
  171339. 52c64e4d51 Fix to_unicode test
  171340. .IP \(bu 2
  171341. e2d19f40b6 Only try latin\-1 from get_diff instead of by default
  171342. .IP \(bu 2
  171343. d39fa889f3 Add stringutils.get_diff to mocks
  171344. .IP \(bu 2
  171345. 5b191c9120 Fix incorrect use of __salt__ when __utils__ is needed
  171346. .IP \(bu 2
  171347. 53ba10ad5f Skip pylint false\-positives
  171348. .IP \(bu 2
  171349. f14f4dae22 Add unit test for latin\-1 fallback, multi\-encoding
  171350. .IP \(bu 2
  171351. 906644a80f PY3 scoping fix
  171352. .IP \(bu 2
  171353. 726dd4331f Add integration test for latin\-1 file diffs
  171354. .IP \(bu 2
  171355. 2dd1f31d23 Use BASE_FILES instead of redundant STATE_DIR
  171356. .IP \(bu 2
  171357. 612ffb5fe8 Use new get_diff helper in file module
  171358. .IP \(bu 2
  171359. c632265802 Make to_unicode/to_str/to_bytes helpers attempt latin\-1
  171360. .IP \(bu 2
  171361. 2a0cb49b01 Add get_diff to salt.utils.stringutils
  171362. .UNINDENT
  171363. .IP \(bu 2
  171364. \fBISSUE\fP \fI\%#47766\fP: (\fI\%zerthimon\fP) salt\-cloud: openstack driver: crash on instance creation (refs: \fI\%#48956\fP)
  171365. .IP \(bu 2
  171366. \fBPR\fP \fI\%#48956\fP: (\fI\%gtmanfred\fP) if booted from volume, use string from image
  171367. @ \fI2018\-08\-07 16:39:45 UTC\fP
  171368. .INDENT 2.0
  171369. .IP \(bu 2
  171370. bad995462c Merge pull request \fI\%#48956\fP from gtmanfred/openstack
  171371. .IP \(bu 2
  171372. 4cb1636c4b if booted from volume, use string from image
  171373. .UNINDENT
  171374. .IP \(bu 2
  171375. \fBISSUE\fP \fI\%#48306\fP: (\fI\%davidscholberg\fP) Documentation update for custom returners used for master job cache (refs: \fI\%#48319\fP)
  171376. .IP \(bu 2
  171377. \fBPR\fP \fI\%#48319\fP: (\fI\%gtmanfred\fP) don\(aqt break older returners right now
  171378. @ \fI2018\-08\-06 13:19:43 UTC\fP
  171379. .INDENT 2.0
  171380. .IP \(bu 2
  171381. 71f587edd7 Merge pull request \fI\%#48319\fP from gtmanfred/jid
  171382. .IP \(bu 2
  171383. 084e7f0ef4 Merge branch \(aq2018.3\(aq into jid
  171384. .IP \(bu 2
  171385. 60661b4cd0 document minions required on save_load
  171386. .IP \(bu 2
  171387. a8c243071d document passing in minions
  171388. .IP \(bu 2
  171389. d49381c0b6 don\(aqt break save_load backwards compat
  171390. .IP \(bu 2
  171391. cfcacf953a don\(aqt break older returners right now
  171392. .UNINDENT
  171393. .IP \(bu 2
  171394. \fBPR\fP \fI\%#48941\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48912\fP to 2018.3
  171395. @ \fI2018\-08\-06 13:09:38 UTC\fP
  171396. .INDENT 2.0
  171397. .IP \(bu 2
  171398. \fBPR\fP \fI\%#48912\fP: (\fI\%maxim\-sermin\fP) make jboss7.py compatible with 2018.3.0 and later (refs: \fI\%#48941\fP)
  171399. .IP \(bu 2
  171400. 1623e53ef4 Merge pull request \fI\%#48941\fP from rallytime/bp\-48912
  171401. .IP \(bu 2
  171402. 3f55b2f89e make jboss7.py compatible with 2018.3.0 and later
  171403. .UNINDENT
  171404. .IP \(bu 2
  171405. \fBPR\fP \fI\%#48897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48863\fP to 2018.3
  171406. @ \fI2018\-08\-05 19:15:51 UTC\fP
  171407. .INDENT 2.0
  171408. .IP \(bu 2
  171409. \fBPR\fP \fI\%#48863\fP: (\fI\%admd\fP) Decode file contents for python2 as well (refs: \fI\%#48897\fP)
  171410. .IP \(bu 2
  171411. 070af9d925 Merge pull request \fI\%#48897\fP from rallytime/bp\-48863
  171412. .IP \(bu 2
  171413. 0ee1940232 Merge branch \(aq2018.3\(aq into bp\-48863
  171414. .IP \(bu 2
  171415. f40b966d99 decode file contents for python2 as well
  171416. .UNINDENT
  171417. .IP \(bu 2
  171418. \fBPR\fP \fI\%#48928\fP: (\fI\%Ch3LL\fP) fix test_runas integration test for macosx
  171419. @ \fI2018\-08\-05 14:24:13 UTC\fP
  171420. .INDENT 2.0
  171421. .IP \(bu 2
  171422. abd7f1312d Merge pull request \fI\%#48928\fP from Ch3LL/mac_runas
  171423. .IP \(bu 2
  171424. 3d6455dbcd remove unecessary comment in setup
  171425. .IP \(bu 2
  171426. 8e30db0217 move destructivetest to testname
  171427. .IP \(bu 2
  171428. 708dec8740 add destructivetest to setup and teardown for runas test
  171429. .IP \(bu 2
  171430. c0730ff968 fix test_runas integration test for macosx
  171431. .UNINDENT
  171432. .IP \(bu 2
  171433. \fBPR\fP \fI\%#48899\fP: (\fI\%Ch3LL\fP) remove base_top_file file in teardown and add sleep
  171434. @ \fI2018\-08\-05 14:23:42 UTC\fP
  171435. .INDENT 2.0
  171436. .IP \(bu 2
  171437. dbd300ff70 Merge pull request \fI\%#48899\fP from Ch3LL/unit_state
  171438. .IP \(bu 2
  171439. 0272cadff8 Merge branch \(aq2018.3\(aq into unit_state
  171440. .IP \(bu 2
  171441. 5896c7fc36 remove base_top_file file in teardown and add sleep
  171442. .UNINDENT
  171443. .IP \(bu 2
  171444. \fBPR\fP \fI\%#48898\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171445. @ \fI2018\-08\-05 14:23:19 UTC\fP
  171446. .INDENT 2.0
  171447. .IP \(bu 2
  171448. ffa1fcc682 Merge pull request \fI\%#48898\fP from rallytime/merge\-2018.3
  171449. .IP \(bu 2
  171450. 1f093cef4a Merge branch \(aq2018.3\(aq into merge\-2018.3
  171451. .IP \(bu 2
  171452. b3a5aa49d7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171453. .INDENT 2.0
  171454. .IP \(bu 2
  171455. e79ccb35b1 Merge pull request \fI\%#48876\fP from Vaelatern/make\-network\-learning\-optional
  171456. .INDENT 2.0
  171457. .IP \(bu 2
  171458. a4905b0e5d Make IP_LEARNING optional
  171459. .UNINDENT
  171460. .IP \(bu 2
  171461. f8bfab4f9f Merge pull request \fI\%#48890\fP from Ch3LL/cmd_test
  171462. .INDENT 2.0
  171463. .IP \(bu 2
  171464. acda4ed9ab add sleep in test_cmd integration test
  171465. .UNINDENT
  171466. .IP \(bu 2
  171467. 52722f6ded Merge pull request \fI\%#48885\fP from rallytime/flaky\-tests\-shadow
  171468. .INDENT 2.0
  171469. .IP \(bu 2
  171470. da871a2d57 Mark shadow module integration test as flaky
  171471. .UNINDENT
  171472. .IP \(bu 2
  171473. bf0895656e Merge pull request \fI\%#48884\fP from rallytime/flaky\-tests\-matchers
  171474. .INDENT 2.0
  171475. .IP \(bu 2
  171476. 38d9eae537 Merge branch \(aq2017.7\(aq into flaky\-tests\-matchers
  171477. .UNINDENT
  171478. .IP \(bu 2
  171479. a567666938 Merge pull request \fI\%#48868\fP from terminalmage/fix\-loader\-race
  171480. .INDENT 2.0
  171481. .IP \(bu 2
  171482. 5f1169b9a2 Fix race when SIGTERM/SIGINT received while lazyloading a module
  171483. .UNINDENT
  171484. .IP \(bu 2
  171485. 0ca0b6f2f2 Merge pull request \fI\%#48883\fP from terminalmage/salt\-jenkins\-1023
  171486. .INDENT 2.0
  171487. .IP \(bu 2
  171488. c61f75cb50 Fix failing git worktree tests
  171489. .INDENT 2.0
  171490. .INDENT 3.5
  171491. .INDENT 0.0
  171492. .IP \(bu 2
  171493. 3660dff13c Separate compound matcher tests into individual tests
  171494. .UNINDENT
  171495. .UNINDENT
  171496. .UNINDENT
  171497. .UNINDENT
  171498. .IP \(bu 2
  171499. a84f5155a1 Merge pull request \fI\%#48869\fP from Ch3LL/mac_shell_tests
  171500. .INDENT 2.0
  171501. .IP \(bu 2
  171502. 3734b1ec89 Catch socket.error exception in testprogram
  171503. .UNINDENT
  171504. .IP \(bu 2
  171505. 7f56b8bf44 Merge pull request \fI\%#48867\fP from rallytime/skip\-tornado\-test
  171506. .INDENT 2.0
  171507. .IP \(bu 2
  171508. 7320aa9104 Skip unreliable tornado test.
  171509. .UNINDENT
  171510. .UNINDENT
  171511. .UNINDENT
  171512. .IP \(bu 2
  171513. \fBPR\fP \fI\%#48893\fP: (\fI\%Ch3LL\fP) handle when ca_certs is None in utils.http
  171514. @ \fI2018\-08\-03 20:30:48 UTC\fP
  171515. .INDENT 2.0
  171516. .IP \(bu 2
  171517. 848e26ed0b Merge pull request \fI\%#48893\fP from Ch3LL/http_tests
  171518. .IP \(bu 2
  171519. 16d251f7ff Merge branch \(aq2018.3\(aq into http_tests
  171520. .IP \(bu 2
  171521. 5674dddb2a handle when ca_certs is None in utils.http
  171522. .UNINDENT
  171523. .IP \(bu 2
  171524. \fBPR\fP \fI\%#48903\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes
  171525. @ \fI2018\-08\-03 19:12:34 UTC\fP
  171526. .INDENT 2.0
  171527. .IP \(bu 2
  171528. \fBPR\fP \fI\%#48877\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes (refs: \fI\%#48903\fP)
  171529. .IP \(bu 2
  171530. f1adf56017 Merge pull request \fI\%#48903\fP from Vaelatern/improve\-salt\-cloud\-python3\-virt
  171531. .IP \(bu 2
  171532. c45447fe0b Wrap ElementTree.tostring to make strs, not bytes
  171533. .UNINDENT
  171534. .IP \(bu 2
  171535. \fBPR\fP \fI\%#48900\fP: (\fI\%Ch3LL\fP) skip getpwnam check on mac in unit test_cmdmod
  171536. @ \fI2018\-08\-03 16:38:51 UTC\fP
  171537. .INDENT 2.0
  171538. .IP \(bu 2
  171539. d23471262d Merge pull request \fI\%#48900\fP from Ch3LL/cmd_unit
  171540. .IP \(bu 2
  171541. b82dd708be skip getpwnam check on mac in unit test_cmdmod
  171542. .UNINDENT
  171543. .IP \(bu 2
  171544. \fBPR\fP \fI\%#48921\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48904\fP to 2018.3
  171545. @ \fI2018\-08\-03 15:17:15 UTC\fP
  171546. .INDENT 2.0
  171547. .IP \(bu 2
  171548. \fBPR\fP \fI\%#48904\fP: (\fI\%KaiSforza\fP) No rehashing in parallel (refs: \fI\%#48921\fP, \fI\%#48920\fP)
  171549. .IP \(bu 2
  171550. d622a49b58 Merge pull request \fI\%#48921\fP from rallytime/bp\-48904
  171551. .IP \(bu 2
  171552. b504625f61 No rehashing in parallel
  171553. .UNINDENT
  171554. .IP \(bu 2
  171555. \fBPR\fP \fI\%#48877\fP: (\fI\%Vaelatern\fP) Wrap ElementTree.tostring to make strs, not bytes (refs: \fI\%#48903\fP)
  171556. @ \fI2018\-08\-02 19:28:56 UTC\fP
  171557. .INDENT 2.0
  171558. .IP \(bu 2
  171559. 1e150923aa Merge pull request \fI\%#48877\fP from Vaelatern/improve\-salt\-cloud\-libvirt\-python3\-libvirt
  171560. .IP \(bu 2
  171561. fb7885315c Wrap ElementTree.tostring to make strs, not bytes
  171562. .UNINDENT
  171563. .IP \(bu 2
  171564. \fBPR\fP \fI\%#48824\fP: (\fI\%rallytime\fP) Bump deprecation in win_servermanager state to Neon
  171565. @ \fI2018\-08\-02 18:01:34 UTC\fP
  171566. .INDENT 2.0
  171567. .IP \(bu 2
  171568. 1fb7d9431b Merge pull request \fI\%#48824\fP from rallytime/win_servermanager_deprecations
  171569. .IP \(bu 2
  171570. 6ef5412528 Bump deprecation in win_servermanager state to Neon
  171571. .UNINDENT
  171572. .IP \(bu 2
  171573. \fBISSUE\fP \fI\%#37512\fP: (\fI\%ChristianBeer\fP) What\(aqs the precedence if multiple master configurations are specified? (refs: \fI\%#48888\fP)
  171574. .IP \(bu 2
  171575. \fBPR\fP \fI\%#48888\fP: (\fI\%terminalmage\fP) Explictly document the configuration override priority
  171576. @ \fI2018\-08\-02 16:57:18 UTC\fP
  171577. .INDENT 2.0
  171578. .IP \(bu 2
  171579. ec8e07e8ce Merge pull request \fI\%#48888\fP from terminalmage/issue37512
  171580. .IP \(bu 2
  171581. 7dce7cde14 Explictly document the configuration override priority
  171582. .UNINDENT
  171583. .IP \(bu 2
  171584. \fBPR\fP \fI\%#48871\fP: (\fI\%dwoz\fP) Remove unicode key pairs from environ after test
  171585. @ \fI2018\-08\-01 22:33:41 UTC\fP
  171586. .INDENT 2.0
  171587. .IP \(bu 2
  171588. d4bb3a0963 Merge pull request \fI\%#48871\fP from dwoz/test_cleanup
  171589. .IP \(bu 2
  171590. f2e15e7f1d Do not re\-define tearDown
  171591. .IP \(bu 2
  171592. 4f8a191a69 Remove unicode key pairs from environ after test
  171593. .UNINDENT
  171594. .IP \(bu 2
  171595. \fBPR\fP \fI\%#48843\fP: (\fI\%isbm\fP) Prevent u\(aqsomething\(aq to appear in help info.
  171596. @ \fI2018\-08\-01 20:38:58 UTC\fP
  171597. .INDENT 2.0
  171598. .IP \(bu 2
  171599. bec79e83a3 Merge pull request \fI\%#48843\fP from isbm/isbm\-log\-level\-names\-fix\-2
  171600. .IP \(bu 2
  171601. a63686180d Merge branch \(aq2018.3\(aq into isbm\-log\-level\-names\-fix\-2
  171602. .IP \(bu 2
  171603. 783c96ac72 Prevent u\(aqsomething\(aq to appear in help info.
  171604. .UNINDENT
  171605. .IP \(bu 2
  171606. \fBPR\fP \fI\%#48855\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171607. @ \fI2018\-08\-01 17:44:59 UTC\fP
  171608. .INDENT 2.0
  171609. .IP \(bu 2
  171610. a8376b537a Merge pull request \fI\%#48855\fP from rallytime/merge\-2018.3
  171611. .IP \(bu 2
  171612. 44998c208e Lint: Fix undefined logger variable
  171613. .IP \(bu 2
  171614. 92c9317a25 Update old utils paths to use new paths
  171615. .IP \(bu 2
  171616. 15bfba7143 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171617. .INDENT 2.0
  171618. .IP \(bu 2
  171619. 05f2d65de3 Merge pull request \fI\%#48853\fP from rallytime/bp\-48850
  171620. .INDENT 2.0
  171621. .IP \(bu 2
  171622. 3c33ee554a Skip tests in integration.shell.test_master
  171623. .UNINDENT
  171624. .IP \(bu 2
  171625. 8a1285239a Merge pull request \fI\%#48426\fP from garethgreenaway/46689_fixing_pkg_held_when_package_is_installed
  171626. .INDENT 2.0
  171627. .IP \(bu 2
  171628. 9b0f5dd212 Fixing identation, removing some unnecessary conditionals.
  171629. .IP \(bu 2
  171630. 727964ab55 One last cleanup.
  171631. .IP \(bu 2
  171632. 11cb86e6eb General cleanup in pkg state, reducing duplicate code. Fixing the requires_salt_modules decorator, sys.doc was returning too much information for the event to handle. This change specifically calls sys.doc with the module name.
  171633. .IP \(bu 2
  171634. 16fb6ae635 Make sure pkg.hold and pkg.unhold are available before running the test.
  171635. .IP \(bu 2
  171636. 998651102d Fixing a situation when a package is already installed via salt or manually and a state attempts to set that package to be held. Previously the holding/unholding logic was only being run against packages that were being installed. This change moves the holding logic outside and runs it against all desired packages. Adding a new test to test holding logic.
  171637. .UNINDENT
  171638. .IP \(bu 2
  171639. c8e69431ff Merge pull request \fI\%#47734\fP from OrlandoArcapix/Issue47689\-pip\-state\-performance
  171640. .INDENT 2.0
  171641. .IP \(bu 2
  171642. 662bd1f780 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171643. .IP \(bu 2
  171644. 66936b4f41 Changed string comparison in pip test to match new confirmation string \- ref PR \fI\%#47734\fP\&.
  171645. .IP \(bu 2
  171646. bb5939d6ef Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171647. .IP \(bu 2
  171648. d6a49ae41c Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171649. .IP \(bu 2
  171650. d4083fc9d1 Merge branch \(aqIssue47689\-pip\-state\-performance\(aq of github.com:OrlandoArcapix/salt into Issue47689\-pip\-state\-performance
  171651. .INDENT 2.0
  171652. .IP \(bu 2
  171653. 779b5fa785 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171654. .UNINDENT
  171655. .IP \(bu 2
  171656. f3653349ab Removed whitespaces at end of added comments lines
  171657. .IP \(bu 2
  171658. db11f2ff4b Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171659. .IP \(bu 2
  171660. eac0178de2 Ref: \fI\%#47689\fP \- document additional kwarg passed to pip._check_if_installed function
  171661. .IP \(bu 2
  171662. 0d19803106 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  171663. .IP \(bu 2
  171664. d3678bf2f3 \fI\%#47689\fP fix lint errors
  171665. .IP \(bu 2
  171666. 4fec8f6bcc \fI\%#47698\fP improve run\-speed of pip package state checks by only loading the current package list once when checking multiple packages
  171667. .UNINDENT
  171668. .IP \(bu 2
  171669. 83a5b3cc47 Merge pull request \fI\%#48844\fP from AVeenstra/fix\-python3\-incompatibility
  171670. .INDENT 2.0
  171671. .IP \(bu 2
  171672. f238779a62 Merge branch \(aq2017.7\(aq into fix\-python3\-incompatibility
  171673. .IP \(bu 2
  171674. 6b1805afc6 Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  171675. .UNINDENT
  171676. .IP \(bu 2
  171677. 136ff6735a Merge pull request \fI\%#48662\fP from slaws/fix\-retention\-schedule\-48637
  171678. .INDENT 2.0
  171679. .IP \(bu 2
  171680. 3c8f5f5b3d pylint fix
  171681. .IP \(bu 2
  171682. 5539eff39e Excluding relative dirs in state.file.retention_schedule
  171683. .UNINDENT
  171684. .IP \(bu 2
  171685. 1fc04f281b Merge pull request \fI\%#48840\fP from gtmanfred/docs
  171686. .INDENT 2.0
  171687. .IP \(bu 2
  171688. 8d2d268c4a fix links in pkg doc.
  171689. .UNINDENT
  171690. .IP \(bu 2
  171691. 0a19f845ea Merge pull request \fI\%#48834\fP from gtmanfred/slsutil
  171692. .INDENT 2.0
  171693. .IP \(bu 2
  171694. f9441d2bef read output of stringio if it is readable
  171695. .UNINDENT
  171696. .IP \(bu 2
  171697. 2e00939a6e Merge pull request \fI\%#48788\fP from Ch3LL/timezone_windows
  171698. .INDENT 2.0
  171699. .IP \(bu 2
  171700. de95a6a215 add unused import to timezone test file
  171701. .IP \(bu 2
  171702. 22e424859e add unused import to import
  171703. .IP \(bu 2
  171704. 0840fc3117 disable pylint import error
  171705. .IP \(bu 2
  171706. f09d1a2c7e Add timzeon windows integration tests and fix get_zone
  171707. .UNINDENT
  171708. .UNINDENT
  171709. .UNINDENT
  171710. .IP \(bu 2
  171711. \fBISSUE\fP \fI\%#48659\fP: (\fI\%dstoliker\fP) file.grep with glob (*) in path produces file not found error (refs: \fI\%#48830\fP)
  171712. .IP \(bu 2
  171713. \fBPR\fP \fI\%#48830\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to file.grep
  171714. @ \fI2018\-07\-31 21:30:04 UTC\fP
  171715. .INDENT 2.0
  171716. .IP \(bu 2
  171717. e23ba01cd2 Merge pull request \fI\%#48830\fP from garethgreenaway/48659_file_grep_glob_fix
  171718. .IP \(bu 2
  171719. 0791b0a03c FileGrepTestCase tests back to 2018.3
  171720. .IP \(bu 2
  171721. 2e01c55e7e Fixing a bug that prevents specifying wildcards for filenames.
  171722. .UNINDENT
  171723. .IP \(bu 2
  171724. \fBPR\fP \fI\%#48814\fP: (\fI\%isbm\fP) dmidecode race conditions check
  171725. @ \fI2018\-07\-31 20:48:29 UTC\fP
  171726. .INDENT 2.0
  171727. .IP \(bu 2
  171728. 9fda70b3d0 Merge pull request \fI\%#48814\fP from isbm/isbm\-2018.3\-smbios\-bugfix
  171729. .IP \(bu 2
  171730. 5f1141dc05 Merge branch \(aq2018.3\(aq into isbm\-2018.3\-smbios\-bugfix
  171731. .IP \(bu 2
  171732. b00ee5feef Update clean clause
  171733. .IP \(bu 2
  171734. b1b2e9c222 Remove multiple returns and combine logic to just one clause
  171735. .IP \(bu 2
  171736. fd77f760ee Rephrase explanatory comment
  171737. .IP \(bu 2
  171738. 1031e06443 Remove unnecessary code
  171739. .IP \(bu 2
  171740. c379b7e4ed Get rid of global variable
  171741. .UNINDENT
  171742. .IP \(bu 2
  171743. \fBPR\fP \fI\%#48804\fP: (\fI\%Ch3LL\fP) Use brew path from which cmd in mac_brew module
  171744. @ \fI2018\-07\-31 20:24:33 UTC\fP
  171745. .INDENT 2.0
  171746. .IP \(bu 2
  171747. 3d16a63ff2 Merge pull request \fI\%#48804\fP from Ch3LL/mac_brew
  171748. .IP \(bu 2
  171749. e818c752b3 Merge branch \(aq2018.3\(aq into mac_brew
  171750. .IP \(bu 2
  171751. 41e3d17f29 Use brew path from which cmd in mac_brew module
  171752. .UNINDENT
  171753. .IP \(bu 2
  171754. \fBPR\fP \fI\%#48836\fP: (\fI\%dwoz\fP) Fix unicode directory listing on py2
  171755. @ \fI2018\-07\-31 20:22:53 UTC\fP
  171756. .INDENT 2.0
  171757. .IP \(bu 2
  171758. 950c1014aa Merge pull request \fI\%#48836\fP from dwoz/unicode_names_py2
  171759. .IP \(bu 2
  171760. 47e158b9f0 Optomize if statement
  171761. .IP \(bu 2
  171762. 9b462394b2 Fix unicode directory listing on py2
  171763. .UNINDENT
  171764. .IP \(bu 2
  171765. \fBPR\fP \fI\%#48847\fP: (\fI\%terminalmage\fP) Update file.blockreplace docs to reflect changed functionality
  171766. @ \fI2018\-07\-31 18:11:30 UTC\fP
  171767. .INDENT 2.0
  171768. .IP \(bu 2
  171769. baf8c5784a Merge pull request \fI\%#48847\fP from terminalmage/issue48695
  171770. .IP \(bu 2
  171771. e2bdf7fb92 Update file.blockreplace docs to reflect changed functionality
  171772. .UNINDENT
  171773. .IP \(bu 2
  171774. \fBPR\fP \fI\%#48587\fP: (\fI\%twangboy\fP) Fix lgpo issue on Py3
  171775. @ \fI2018\-07\-31 18:05:58 UTC\fP
  171776. .INDENT 2.0
  171777. .IP \(bu 2
  171778. 644a1f4ff8 Merge pull request \fI\%#48587\fP from twangboy/fix_lgpo
  171779. .IP \(bu 2
  171780. a42621c817 Write file in normal mode
  171781. .IP \(bu 2
  171782. bfcbdeca3b Fix lgpo issue on Py3
  171783. .UNINDENT
  171784. .IP \(bu 2
  171785. \fBPR\fP \fI\%#48796\fP: (\fI\%Ch3LL\fP) Remove fake su used in integration tests
  171786. @ \fI2018\-07\-31 17:08:54 UTC\fP
  171787. .INDENT 2.0
  171788. .IP \(bu 2
  171789. 2bacc23481 Merge pull request \fI\%#48796\fP from Ch3LL/remove_su
  171790. .IP \(bu 2
  171791. d3b7f2cb18 Remove fake su used in integration tests
  171792. .UNINDENT
  171793. .IP \(bu 2
  171794. \fBISSUE\fP \fI\%#38310\fP: (\fI\%ghost\fP) Unable to checkout external pillar git repo using its git tag (refs: \fI\%#48689\fP)
  171795. .IP \(bu 2
  171796. \fBPR\fP \fI\%#48689\fP: (\fI\%linoplt\fP) Fix ext_pillar remote checkout using tag (pygit2)
  171797. @ \fI2018\-07\-31 16:15:58 UTC\fP
  171798. .INDENT 2.0
  171799. .IP \(bu 2
  171800. 00d06bda76 Merge pull request \fI\%#48689\fP from linoplt/fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  171801. .IP \(bu 2
  171802. eb4361dcc2 Merge branch \(aq2018.3\(aq into fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  171803. .IP \(bu 2
  171804. c20977e3bc Merge branch \(aq2018.3\(aq into fix_38310_pygit2_checkout_ext_pillar_remote_using_tag
  171805. .IP \(bu 2
  171806. b0157c215b Fix ext_pillar remote checkout using tag (pygit2)
  171807. .UNINDENT
  171808. .IP \(bu 2
  171809. \fBPR\fP \fI\%#48838\fP: (\fI\%sizgiyaev\fP) Fixed: added additional return code 200 for succeeded vault api request
  171810. @ \fI2018\-07\-31 16:14:22 UTC\fP
  171811. .INDENT 2.0
  171812. .IP \(bu 2
  171813. 5e14e36195 Merge pull request \fI\%#48838\fP from sizgiyaev/fix\-vault\-policy\-state
  171814. .IP \(bu 2
  171815. 02d09c6281 Fixed: added additional return code 200 for succeeded api request
  171816. .UNINDENT
  171817. .IP \(bu 2
  171818. \fBPR\fP \fI\%#48714\fP: (\fI\%dwoz\fP) Always transfer bytes from fileserver roots
  171819. @ \fI2018\-07\-30 22:37:13 UTC\fP
  171820. .INDENT 2.0
  171821. .IP \(bu 2
  171822. 69f81214d1 Merge pull request \fI\%#48714\fP from dwoz/state_echo_fix
  171823. .IP \(bu 2
  171824. ce3ed43dab Always use unix line endings
  171825. .IP \(bu 2
  171826. d5e60090bc Merge pull request \fI\%#2\fP from terminalmage/state_echo_fix
  171827. .INDENT 2.0
  171828. .IP \(bu 2
  171829. 52fc1c955d Simplify file contents in roots fileserver test
  171830. .IP \(bu 2
  171831. b6f73e8e57 Remove trailing whitespace on what should be a blank line
  171832. .UNINDENT
  171833. .IP \(bu 2
  171834. 95329acb1e Fileserver transfers bytes
  171835. .IP \(bu 2
  171836. aa34a80997 Always trasfer bytes from fileserver roots
  171837. .UNINDENT
  171838. .IP \(bu 2
  171839. \fBPR\fP \fI\%#48822\fP: (\fI\%Ch3LL\fP) Fix salt\-ssh state.sls_id TypeError key must be a string
  171840. @ \fI2018\-07\-30 20:29:29 UTC\fP
  171841. .INDENT 2.0
  171842. .IP \(bu 2
  171843. 16ca4ec2eb Merge pull request \fI\%#48822\fP from Ch3LL/ssh_2018_id
  171844. .IP \(bu 2
  171845. 01f6a15da0 Fix salt\-ssh state.sls_id TypeError key must be a string
  171846. .UNINDENT
  171847. .IP \(bu 2
  171848. \fBISSUE\fP \fI\%#47999\fP: (\fI\%arthurlogilab\fP) Carbon returner failing when run through scheduler on log.trace (refs: \fI\%#48757\fP)
  171849. .IP \(bu 2
  171850. \fBPR\fP \fI\%#48791\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48757\fP to 2018.3
  171851. @ \fI2018\-07\-27 21:30:44 UTC\fP
  171852. .INDENT 2.0
  171853. .IP \(bu 2
  171854. \fBPR\fP \fI\%#48757\fP: (\fI\%kuetrzi\fP) Update carbon_return.py (refs: \fI\%#48791\fP)
  171855. .IP \(bu 2
  171856. 488f6716d4 Merge pull request \fI\%#48791\fP from rallytime/bp\-48757
  171857. .IP \(bu 2
  171858. f440ebe91f Update carbon_return.py
  171859. .UNINDENT
  171860. .IP \(bu 2
  171861. \fBPR\fP \fI\%#48799\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171862. @ \fI2018\-07\-27 21:30:13 UTC\fP
  171863. .INDENT 2.0
  171864. .IP \(bu 2
  171865. fae29f4257 Merge pull request \fI\%#48799\fP from rallytime/merge\-2018.3
  171866. .IP \(bu 2
  171867. 487458ad4b Update old utils paths to use new utils paths
  171868. .IP \(bu 2
  171869. 436510796f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171870. .INDENT 2.0
  171871. .IP \(bu 2
  171872. 8e61f3dce0 Merge pull request \fI\%#48742\fP from frogunder/45014
  171873. .INDENT 2.0
  171874. .IP \(bu 2
  171875. f08058b043 Merge branch \(aq45014\(aq of \fI\%https://github.com/frogunder/salt\fP into 45014
  171876. .INDENT 2.0
  171877. .IP \(bu 2
  171878. 757fde70c6 Merge branch \(aq2017.7\(aq into 45014
  171879. .UNINDENT
  171880. .IP \(bu 2
  171881. 33c20c1ec0 fix tests
  171882. .IP \(bu 2
  171883. a7a914060d add windows integration tests for states.file
  171884. .UNINDENT
  171885. .IP \(bu 2
  171886. d74f47b340 Merge pull request \fI\%#48795\fP from rallytime/fix\-48417
  171887. .INDENT 2.0
  171888. .IP \(bu 2
  171889. 5123b17ffd Update linting docs to contain .testing.pylintrc use
  171890. .UNINDENT
  171891. .IP \(bu 2
  171892. bbea9ae936 Merge pull request \fI\%#48789\fP from rallytime/bp\-48783
  171893. .INDENT 2.0
  171894. .IP \(bu 2
  171895. 682a05bebe Threshold was wrong
  171896. .IP \(bu 2
  171897. d4ca0e3a97 test: except for OSError only
  171898. .IP \(bu 2
  171899. 4547231909 Only run lint checks against changed files
  171900. .UNINDENT
  171901. .IP \(bu 2
  171902. 41464d4b39 Merge pull request \fI\%#48731\fP from zer0def/virt\-runner\-init\-args
  171903. .INDENT 2.0
  171904. .IP \(bu 2
  171905. a1fa081ad0 Documentation to missing parameters in virt.init runner.
  171906. .IP \(bu 2
  171907. 365ebdf539 Fixed \fIenable_vnc\fP runner arg being passed into \fIseed_cmd\fP module arg in \fIvirt.init\fP\&.
  171908. .UNINDENT
  171909. .IP \(bu 2
  171910. 169afea16a Merge pull request \fI\%#48749\fP from Ch3LL/logo_docs
  171911. .INDENT 2.0
  171912. .IP \(bu 2
  171913. 73b1fc29f0 Update Saltstack Logo banner on docs.saltstack.com
  171914. .UNINDENT
  171915. .UNINDENT
  171916. .UNINDENT
  171917. .IP \(bu 2
  171918. \fBISSUE\fP \fI\%#48020\fP: (\fI\%calvinhp\fP) mine.get not returning data in a state.orchestrate sls (refs: \fI\%#48765\fP)
  171919. .IP \(bu 2
  171920. \fBPR\fP \fI\%#48765\fP: (\fI\%FedericoCeratto\fP) [2018.3] Fix mine.get not returning data
  171921. @ \fI2018\-07\-27 18:01:06 UTC\fP
  171922. .INDENT 2.0
  171923. .IP \(bu 2
  171924. bd67d2a805 Merge pull request \fI\%#48765\fP from FedericoCeratto/fix_mine.get_not_returning_data
  171925. .IP \(bu 2
  171926. 7183a6e0e8 Workaround for \fI\%#48020\fP
  171927. .UNINDENT
  171928. .IP \(bu 2
  171929. \fBPR\fP \fI\%#48747\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  171930. @ \fI2018\-07\-26 18:14:34 UTC\fP
  171931. .INDENT 2.0
  171932. .IP \(bu 2
  171933. 6978ce5d1d Merge pull request \fI\%#48747\fP from rallytime/merge\-2018.3
  171934. .IP \(bu 2
  171935. 4122da40b5 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  171936. .INDENT 2.0
  171937. .IP \(bu 2
  171938. 781c6a6c36 Merge pull request \fI\%#48743\fP from rallytime/saltconf\-ad\-2017.7
  171939. .INDENT 2.0
  171940. .IP \(bu 2
  171941. 6df8fd8652 Update DOCBANNER with new SaltConf18 image
  171942. .UNINDENT
  171943. .IP \(bu 2
  171944. ce4e22224e Merge pull request \fI\%#48720\fP from Ch3LL/mac_file_path
  171945. .INDENT 2.0
  171946. .IP \(bu 2
  171947. 01d25fae19 Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  171948. .UNINDENT
  171949. .IP \(bu 2
  171950. 4b9f037d43 Merge pull request \fI\%#48719\fP from Ch3LL/service_mac_state
  171951. .INDENT 2.0
  171952. .IP \(bu 2
  171953. f44a2fc349 Enable service if disabled before running state service tests
  171954. .UNINDENT
  171955. .IP \(bu 2
  171956. b2431eab10 Merge pull request \fI\%#48715\fP from rallytime/flaky\-tests
  171957. .INDENT 2.0
  171958. .IP \(bu 2
  171959. 7332cce567 [2017.7] Mark some tornado tests as flaky
  171960. .UNINDENT
  171961. .IP \(bu 2
  171962. 801eae3b8d Merge pull request \fI\%#48672\fP from frogunder/45012
  171963. .INDENT 2.0
  171964. .IP \(bu 2
  171965. 0747f2e58a add service enabled test
  171966. .UNINDENT
  171967. .UNINDENT
  171968. .UNINDENT
  171969. .IP \(bu 2
  171970. \fBISSUE\fP \fI\%#48676\fP: (\fI\%djneades\fP) salt\-ssh should not target wrong minion from roster file as a result of reverse\-DNS lookups (refs: \fI\%#48771\fP)
  171971. .IP \(bu 2
  171972. \fBPR\fP \fI\%#48771\fP: (\fI\%gtmanfred\fP) only do reverse dns lookup on ips for salt\-ssh
  171973. @ \fI2018\-07\-26 15:41:40 UTC\fP
  171974. .INDENT 2.0
  171975. .IP \(bu 2
  171976. 5ea43817ab Merge pull request \fI\%#48771\fP from gtmanfred/2018.3
  171977. .IP \(bu 2
  171978. 535fb8f8e7 only do reverse dns lookup on ips for salt\-ssh
  171979. .UNINDENT
  171980. .IP \(bu 2
  171981. \fBPR\fP \fI\%#48752\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix when state file is integers
  171982. @ \fI2018\-07\-25 15:03:02 UTC\fP
  171983. .INDENT 2.0
  171984. .IP \(bu 2
  171985. f2ef2d3ef6 Merge pull request \fI\%#48752\fP from garethgreenaway/fix_state_file_all_integers
  171986. .IP \(bu 2
  171987. 790801c67e Fixing a case where the state module would fail if the state file being passed was all integers. Added a new tests for this edge case.
  171988. .UNINDENT
  171989. .IP \(bu 2
  171990. \fBISSUE\fP \fI\%#46896\fP: (\fI\%Poil\fP) Proxy + file.managed => Comment: Failed to cache xxx invalid arguments to setopt (refs: \fI\%#48754\fP)
  171991. .IP \(bu 2
  171992. \fBPR\fP \fI\%#48754\fP: (\fI\%lomeroe\fP) send proxy/ca_cert parameters as strings (not unicode) to tornado httpclient
  171993. @ \fI2018\-07\-25 14:55:42 UTC\fP
  171994. .INDENT 2.0
  171995. .IP \(bu 2
  171996. 030c921914 Merge pull request \fI\%#48754\fP from lomeroe/fix\-tornado\-proxy
  171997. .IP \(bu 2
  171998. d33056704b pass proxy_user, proxy_password, proxy_host, and ca_certs through salt.utils.stringutils.to_str()
  171999. .UNINDENT
  172000. .IP \(bu 2
  172001. \fBPR\fP \fI\%#48769\fP: (\fI\%Ch3LL\fP) Update Saltstack Logo banner on docs.saltstack.com
  172002. @ \fI2018\-07\-25 14:47:19 UTC\fP
  172003. .INDENT 2.0
  172004. .IP \(bu 2
  172005. 1eee4b136b Merge pull request \fI\%#48769\fP from Ch3LL/update_doc_2018.3
  172006. .IP \(bu 2
  172007. 0cb4bac798 Update Saltstack Logo banner on docs.saltstack.com
  172008. .UNINDENT
  172009. .IP \(bu 2
  172010. \fBPR\fP \fI\%#48760\fP: (\fI\%dwoz\fP) Multiple windows test fixes
  172011. @ \fI2018\-07\-25 11:55:27 UTC\fP
  172012. .INDENT 2.0
  172013. .IP \(bu 2
  172014. 19afa3b023 Merge pull request \fI\%#48760\fP from dwoz/test_file_fixes
  172015. .IP \(bu 2
  172016. a89019e956 Multiple windows test fixes
  172017. .UNINDENT
  172018. .IP \(bu 2
  172019. \fBPR\fP \fI\%#48753\fP: (\fI\%dwoz\fP) Finally fix prepend for real
  172020. @ \fI2018\-07\-25 00:07:15 UTC\fP
  172021. .INDENT 2.0
  172022. .IP \(bu 2
  172023. e6dace3959 Merge pull request \fI\%#48753\fP from dwoz/fix_prepend
  172024. .IP \(bu 2
  172025. 0d1e8ab3f8 Merge branch \(aq2018.3\(aq into fix_prepend
  172026. .UNINDENT
  172027. .IP \(bu 2
  172028. \fBPR\fP \fI\%#48756\fP: (\fI\%dwoz\fP) os.uname is not available on py2 windows
  172029. @ \fI2018\-07\-24 23:38:32 UTC\fP
  172030. .INDENT 2.0
  172031. .IP \(bu 2
  172032. 8aef6d9960 Merge pull request \fI\%#48756\fP from dwoz/core_grains_fix
  172033. .IP \(bu 2
  172034. b7a37ecf11 os.uname is not available on py2 windows
  172035. .UNINDENT
  172036. .IP \(bu 2
  172037. \fBISSUE\fP \fI\%#48536\fP: (\fI\%whytewolf\fP) diskusage beacon does not recognize tmpfs disks in linux. (refs: \fI\%#48718\fP)
  172038. .IP \(bu 2
  172039. \fBPR\fP \fI\%#48718\fP: (\fI\%garethgreenaway\fP) [2018.3] beacon diskusage fixes
  172040. @ \fI2018\-07\-24 17:45:26 UTC\fP
  172041. .INDENT 2.0
  172042. .IP \(bu 2
  172043. 062fe7cccf Merge pull request \fI\%#48718\fP from garethgreenaway/48536_beacon_diskusage_fixes
  172044. .IP \(bu 2
  172045. 38a65e8fb3 Fixing test_diskusage_nomatch and test_diskusage_match_regex
  172046. .IP \(bu 2
  172047. 6ecca166ff Updating psutil.disk_partitions to pull in all mounts not just the physical ones. Check to see if the mount point from the configuration ends with a $ (regular expression end of line) if not we add one in to ensure that a simple / does not end up matching all mount points. Updating tests accordingly.
  172048. .UNINDENT
  172049. .IP \(bu 2
  172050. \fBPR\fP \fI\%#48711\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172051. @ \fI2018\-07\-24 17:38:58 UTC\fP
  172052. .INDENT 2.0
  172053. .IP \(bu 2
  172054. e873621009 Merge pull request \fI\%#48711\fP from rallytime/merge\-2018.3
  172055. .IP \(bu 2
  172056. ea5c063237 Update old utils paths to use new paths
  172057. .IP \(bu 2
  172058. e740d3b208 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172059. .INDENT 2.0
  172060. .IP \(bu 2
  172061. 689c231d2b Merge pull request \fI\%#48691\fP from Ch3LL/win_repo_pkg_test
  172062. .INDENT 2.0
  172063. .IP \(bu 2
  172064. 4b7d6d80c5 Remove unnecessary jinja in curl.sls file
  172065. .IP \(bu 2
  172066. 2bedadfadb Add windows pkg module integration tests
  172067. .UNINDENT
  172068. .IP \(bu 2
  172069. 83e4bba916 Merge pull request \fI\%#48635\fP from nbraud/acme
  172070. .INDENT 2.0
  172071. .IP \(bu 2
  172072. 3673bae9de modules/acme: explicitely ignore the \fIperms\fP return value
  172073. .IP \(bu 2
  172074. 1800a231e8 Fixup some schema expectations
  172075. .IP \(bu 2
  172076. 8c718cb417 acme: Make the private key mode configurable
  172077. .IP \(bu 2
  172078. 917dea6761 modules/acme: Use file.check_perms ret\-morphing powers
  172079. .IP \(bu 2
  172080. d2241ceb2d module/acme: Do not exit early when the certificate already exists
  172081. .IP \(bu 2
  172082. 98af0db826 modules/acme: Set the private key filemode to 0640
  172083. .UNINDENT
  172084. .IP \(bu 2
  172085. 85991680c8 Merge pull request \fI\%#48345\fP from twangboy/fix_48169
  172086. .INDENT 2.0
  172087. .IP \(bu 2
  172088. ead19725b6 Merge branch \(aq2017.7\(aq into fix_48169
  172089. .IP \(bu 2
  172090. 653fbcb383 Fix some docs errata
  172091. .IP \(bu 2
  172092. 8898e5ff11 Add warn_until Fluorine
  172093. .IP \(bu 2
  172094. 707906ac15 Fix unit.state.test_powercfg
  172095. .IP \(bu 2
  172096. 32c5014eb6 Fix unit tests
  172097. .IP \(bu 2
  172098. 0d9c56e540 Add some more logging
  172099. .IP \(bu 2
  172100. b20453de9f Use minutes to set
  172101. .IP \(bu 2
  172102. 7dc7eb11c2 Fix documentation to denote seconds when setting
  172103. .UNINDENT
  172104. .IP \(bu 2
  172105. 96447ce541 Merge pull request \fI\%#48656\fP from Ch3LL/windows_ip_mod
  172106. .INDENT 2.0
  172107. .IP \(bu 2
  172108. 90c3f568b1 Add windows ip module integration tests
  172109. .UNINDENT
  172110. .IP \(bu 2
  172111. 0c5fff3dc8 Merge pull request \fI\%#48638\fP from twangboy/fix_vcredist
  172112. .INDENT 2.0
  172113. .IP \(bu 2
  172114. e30d17099d Use goto instead of if statement
  172115. .IP \(bu 2
  172116. e1042fa084 Remove vcredist for Py3
  172117. .UNINDENT
  172118. .IP \(bu 2
  172119. 1ebd96d909 Merge pull request \fI\%#48664\fP from Ch3LL/srv_disable_mac
  172120. .INDENT 2.0
  172121. .IP \(bu 2
  172122. f1fbfad387 move the disable call up in try block
  172123. .IP \(bu 2
  172124. f60d21bda4 reverse assertion order for service disable test
  172125. .IP \(bu 2
  172126. 3727d1b3b9 switch try/except to match 2018.3
  172127. .IP \(bu 2
  172128. fb953c2369 [2017.7] Fix service.disabled test for macosx
  172129. .UNINDENT
  172130. .IP \(bu 2
  172131. 3da3cf2f3f Merge pull request \fI\%#48625\fP from Ch3LL/ssh_state
  172132. .INDENT 2.0
  172133. .IP \(bu 2
  172134. f590eb2b02 Update state.py
  172135. .IP \(bu 2
  172136. 9790ee3d0d Follow up to PR \fI\%#48555\fP
  172137. .UNINDENT
  172138. .IP \(bu 2
  172139. 33812f78f1 Merge pull request \fI\%#48673\fP from Ch3LL/mac_port
  172140. .INDENT 2.0
  172141. .IP \(bu 2
  172142. 87dd85a220 Use different pub and ret ports for testprogram integration tests
  172143. .UNINDENT
  172144. .IP \(bu 2
  172145. 5f6a7c4d89 Merge pull request \fI\%#48675\fP from Ch3LL/mac_disable
  172146. .INDENT 2.0
  172147. .IP \(bu 2
  172148. c78efab828 Fix mac service.disable tests
  172149. .UNINDENT
  172150. .IP \(bu 2
  172151. 93d2f51d2b Merge pull request \fI\%#48658\fP from wyardley/wyardley\-npm\-json\-output\-2017
  172152. .INDENT 2.0
  172153. .IP \(bu 2
  172154. 7ff3c9c5ff Improve handling of npm json output (\fI\%#43138\fP)
  172155. .UNINDENT
  172156. .IP \(bu 2
  172157. 3e293b0513 Merge pull request \fI\%#48678\fP from OrlandoArcapix/fix\-npm\-dryrun\-test
  172158. .INDENT 2.0
  172159. .IP \(bu 2
  172160. 851a404f6b Fix for issue \fI\%#48677\fP \- return True when no changes are to be made with npm.bootstrap with test=true
  172161. .UNINDENT
  172162. .IP \(bu 2
  172163. 07a1f6520f Merge pull request \fI\%#48580\fP from rallytime/fix\-46884
  172164. .INDENT 2.0
  172165. .IP \(bu 2
  172166. 736b382e91 Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  172167. .UNINDENT
  172168. .IP \(bu 2
  172169. 9874429741 Merge pull request \fI\%#48628\fP from terminalmage/testinfra
  172170. .INDENT 2.0
  172171. .IP \(bu 2
  172172. 5ace9f01ec Fix NameError in testinfra module
  172173. .UNINDENT
  172174. .IP \(bu 2
  172175. 0d4c80205f Merge pull request \fI\%#48651\fP from gtmanfred/pylint\-2017.7
  172176. .INDENT 2.0
  172177. .IP \(bu 2
  172178. b6ee52f859 handle pyzmq for python3.4
  172179. .UNINDENT
  172180. .IP \(bu 2
  172181. 160ae29cf2 Merge pull request \fI\%#48647\fP from gtmanfred/pylint\-2017.7
  172182. .INDENT 2.0
  172183. .IP \(bu 2
  172184. ff818c4ca2 disable checks on pylint
  172185. .UNINDENT
  172186. .IP \(bu 2
  172187. 47b1032efa Merge pull request \fI\%#48593\fP from pritambaral/fix/2017.7\-importlib\-pyc\-loading\-order
  172188. .INDENT 2.0
  172189. .IP \(bu 2
  172190. add7894dee loader: Fix suffix order when importlib is used
  172191. .UNINDENT
  172192. .IP \(bu 2
  172193. 9da7b2ec8d Merge pull request \fI\%#48630\fP from dubb\-b/pipeline\-updates
  172194. .INDENT 2.0
  172195. .IP \(bu 2
  172196. 8594a8dd05 Adding PY_COLORS=1 as PY_COLORS = 1 instead
  172197. .IP \(bu 2
  172198. 314b0e3599 Adding PY_COLORS=1 for python programs to use ANSI Colors
  172199. .IP \(bu 2
  172200. b705e8f7a5 Adding correct spacing to options section
  172201. .IP \(bu 2
  172202. 9d8a7e07db Adding options to Jenkins pipline builds
  172203. .UNINDENT
  172204. .IP \(bu 2
  172205. a8ae2adf64 Merge pull request \fI\%#48633\fP from saltstack/revert\-48610\-2017.7
  172206. .INDENT 2.0
  172207. .IP \(bu 2
  172208. bab4a769d4 Revert "only run pylint on files that change"
  172209. .UNINDENT
  172210. .IP \(bu 2
  172211. 6e32bb7f74 Merge pull request \fI\%#48614\fP from rallytime/bp\-48562
  172212. .INDENT 2.0
  172213. .IP \(bu 2
  172214. cb654bbf2c Add timeouts to all s3 queries
  172215. .UNINDENT
  172216. .IP \(bu 2
  172217. 1b6e6388f8 Merge pull request \fI\%#48588\fP from garethgreenaway/48415_event_send_multi_master
  172218. .INDENT 2.0
  172219. .IP \(bu 2
  172220. fab25af1a9 Adding some quick documention about why we are setting ret=True following the channel.send.
  172221. .IP \(bu 2
  172222. bf78f4b188 If the channel send is sucessful and does not raise an exception, we set ret to True, in case a previous exception from a previous channel send to another master has sent it to False.
  172223. .IP \(bu 2
  172224. 8d1551c5fb When using Salt multi\-master, if we encouter a salt master that has not accepted the minion key yet we should not exit right away, rather continue on and try the next salt master available in the list.
  172225. .UNINDENT
  172226. .IP \(bu 2
  172227. 24ffda49ba Merge pull request \fI\%#48610\fP from gtmanfred/2017.7
  172228. .INDENT 2.0
  172229. .IP \(bu 2
  172230. 779d1a3dcb only run pylint on files that change
  172231. .UNINDENT
  172232. .IP \(bu 2
  172233. 5391dd0a8d Merge pull request \fI\%#48584\fP from Ch3LL/mac_user_grp
  172234. .INDENT 2.0
  172235. .IP \(bu 2
  172236. 585ee9db90 Fix grp import for mac in test_user integration test
  172237. .UNINDENT
  172238. .IP \(bu 2
  172239. 61572b6780 Merge pull request \fI\%#48555\fP from Ch3LL/ssh_id
  172240. .INDENT 2.0
  172241. .IP \(bu 2
  172242. f69932f506 fix pylint
  172243. .IP \(bu 2
  172244. 70e36764ee Add more tests for salt\-ssh state.sls_id
  172245. .IP \(bu 2
  172246. dab80e805c Fix state.sls_id to run on ssh minion and not master
  172247. .UNINDENT
  172248. .IP \(bu 2
  172249. aa6dcf39e8 Merge pull request \fI\%#48583\fP from Ch3LL/mac_flaky_tests
  172250. .INDENT 2.0
  172251. .IP \(bu 2
  172252. 4ba2299a87 import flaky decorator on mac tests
  172253. .IP \(bu 2
  172254. 811220b41e Add flaky decorator to mac_system and mac_timezone tests
  172255. .UNINDENT
  172256. .IP \(bu 2
  172257. 6973152057 Merge pull request \fI\%#48534\fP from xetix/fix\-zypper\-latest_version
  172258. .INDENT 2.0
  172259. .IP \(bu 2
  172260. 9985f0b4c1 Lint: remove extra blank line
  172261. .IP \(bu 2
  172262. 5fbead8a36 Merge branch \(aq2017.7\(aq into fix\-zypper\-latest_version
  172263. .IP \(bu 2
  172264. 56ac449271 Merge branch \(aqfix\-zypper\-latest_version\(aq of \fI\%https://github.com/xetix/salt\fP into fix\-zypper\-latest_version
  172265. .INDENT 2.0
  172266. .IP \(bu 2
  172267. 44e87f5a0f Adding testcase for this fix.
  172268. .IP \(bu 2
  172269. b354c6863c Fix behaviour of function latest_version in zypper module when multiple packages are passed to function. Function now properly return dict with empty string as version if latest packages is already installed, and multiple packages are passed to function
  172270. .UNINDENT
  172271. .IP \(bu 2
  172272. db35d0c1e1 Adding testcase for this fix.
  172273. .IP \(bu 2
  172274. d2513757ed Fix behaviour of function latest_version in zypper module when multiple packages are passed to function. Function now properly return dict with empty string as version if latest packages is already installed, and multiple packages are passed to function
  172275. .UNINDENT
  172276. .IP \(bu 2
  172277. 10124034cb Merge pull request \fI\%#48582\fP from dwoz/test_prepend_fix
  172278. .INDENT 2.0
  172279. .IP \(bu 2
  172280. f37571e0bd Merge branch \(aq2017.7\(aq into test_prepend_fix
  172281. .UNINDENT
  172282. .IP \(bu 2
  172283. 13f67335f3 Merge pull request \fI\%#48564\fP from dwoz/test_prepend_fix
  172284. .INDENT 2.0
  172285. .INDENT 3.5
  172286. .INDENT 0.0
  172287. .IP \(bu 2
  172288. 136ddf5f54 Finally fix prepend for real
  172289. .UNINDENT
  172290. .UNINDENT
  172291. .UNINDENT
  172292. .INDENT 2.0
  172293. .IP \(bu 2
  172294. 66b25e65bf Fix failing prepend test
  172295. .UNINDENT
  172296. .IP \(bu 2
  172297. b8ce27729f Merge pull request \fI\%#48558\fP from dwoz/test_file_fix
  172298. .INDENT 2.0
  172299. .IP \(bu 2
  172300. c858bf477f Remove which mock to get the test passing
  172301. .UNINDENT
  172302. .IP \(bu 2
  172303. a15c65202d Merge pull request \fI\%#48552\fP from KaiSforza/jenkins\-junit\-2017
  172304. .INDENT 2.0
  172305. .IP \(bu 2
  172306. 72b1830974 Set up junit in jenkins
  172307. .UNINDENT
  172308. .IP \(bu 2
  172309. f73108026e Merge pull request \fI\%#48550\fP from gtmanfred/2017.7
  172310. .INDENT 2.0
  172311. .IP \(bu 2
  172312. d5c603d9b6 add posargs to tox pylint
  172313. .UNINDENT
  172314. .IP \(bu 2
  172315. 113b0426f8 Merge pull request \fI\%#48535\fP from asnell/asnell\-patch\-2
  172316. .INDENT 2.0
  172317. .IP \(bu 2
  172318. d328f6e43d Update manage_file helptext
  172319. .UNINDENT
  172320. .UNINDENT
  172321. .UNINDENT
  172322. .IP \(bu 2
  172323. \fBPR\fP \fI\%#48744\fP: (\fI\%rallytime\fP) [2018.3] Update DOCBANNER with new SaltConf18 image
  172324. @ \fI2018\-07\-24 17:15:40 UTC\fP
  172325. .INDENT 2.0
  172326. .IP \(bu 2
  172327. 6c7f1c549d Merge pull request \fI\%#48744\fP from rallytime/saltconf\-ad\-2018.3
  172328. .IP \(bu 2
  172329. dbc1f8b772 Update DOCBANNER with new SaltConf18 image
  172330. .UNINDENT
  172331. .IP \(bu 2
  172332. \fBPR\fP \fI\%#48726\fP: (\fI\%dwoz\fP) Skip test when syslog not available
  172333. @ \fI2018\-07\-24 16:12:44 UTC\fP
  172334. .INDENT 2.0
  172335. .IP \(bu 2
  172336. 04ab17a4d6 Merge pull request \fI\%#48726\fP from dwoz/syslogtest
  172337. .IP \(bu 2
  172338. 00f04cfd59 Skip test when syslog not available
  172339. .UNINDENT
  172340. .IP \(bu 2
  172341. \fBPR\fP \fI\%#48727\fP: (\fI\%dwoz\fP) Windows compatible cp test
  172342. @ \fI2018\-07\-24 14:41:34 UTC\fP
  172343. .INDENT 2.0
  172344. .IP \(bu 2
  172345. af837424aa Merge pull request \fI\%#48727\fP from dwoz/file_cp_test_fix
  172346. .IP \(bu 2
  172347. 6e7824266b Windows compatible cp test
  172348. .UNINDENT
  172349. .IP \(bu 2
  172350. \fBISSUE\fP \fI\%#40004\fP: (\fI\%te\-af\-github\fP) svn changes report (refs: \fI\%#47510\fP)
  172351. .IP \(bu 2
  172352. \fBISSUE\fP \fI\%#21025\fP: (\fI\%RobertFach\fP) svn.export reports invalid change data (2014.7.x) (refs: \fI\%#47510\fP)
  172353. .IP \(bu 2
  172354. \fBPR\fP \fI\%#48710\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47510\fP to 2018.3
  172355. @ \fI2018\-07\-23 21:11:18 UTC\fP
  172356. .INDENT 2.0
  172357. .IP \(bu 2
  172358. \fBPR\fP \fI\%#47510\fP: (\fI\%daa\fP) Fix svn export invalid changes data (refs: \fI\%#48710\fP)
  172359. .IP \(bu 2
  172360. 04125b077d Merge pull request \fI\%#48710\fP from rallytime/bp\-47510
  172361. .IP \(bu 2
  172362. ebcd3b1c6b fixed test for svn.export
  172363. .IP \(bu 2
  172364. e79f4aa5cc put name under "new" key in changes dictionary to be in line with svn.latest
  172365. .IP \(bu 2
  172366. 163f99089c made svn.export changes data dictionary, fixes \fI\%#21025\fP, \fI\%#40004\fP
  172367. .INDENT 2.0
  172368. .INDENT 3.5
  172369. .INDENT 0.0
  172370. .IP \(bu 2
  172371. 3a941055c1 Use \fIsalt.utils.platform.is_windows\fP
  172372. .IP \(bu 2
  172373. 33e48f7ad7 Finally fix prepend for real
  172374. .UNINDENT
  172375. .UNINDENT
  172376. .UNINDENT
  172377. .UNINDENT
  172378. .IP \(bu 2
  172379. \fBPR\fP \fI\%#48699\fP: (\fI\%terminalmage\fP) Add missing release notes mention of file.blockreplace changes
  172380. @ \fI2018\-07\-23 13:34:32 UTC\fP
  172381. .INDENT 2.0
  172382. .IP \(bu 2
  172383. e1dd10be70 Merge pull request \fI\%#48699\fP from terminalmage/issue48695
  172384. .IP \(bu 2
  172385. 7ad832c901 Add missing release notes mention of file.blockreplace changes
  172386. .UNINDENT
  172387. .IP \(bu 2
  172388. \fBPR\fP \fI\%#48700\fP: (\fI\%dwoz\fP) Call sync_modules to fix Windows test case
  172389. @ \fI2018\-07\-22 22:23:48 UTC\fP
  172390. .INDENT 2.0
  172391. .IP \(bu 2
  172392. ab44a05fe4 Merge pull request \fI\%#48700\fP from dwoz/ext_mod_test
  172393. .IP \(bu 2
  172394. d731e6bf8e Call sync_all to fix Windows test case
  172395. .UNINDENT
  172396. .IP \(bu 2
  172397. \fBPR\fP \fI\%#48653\fP: (\fI\%terminalmage\fP) docker_container.running: Fix regression in test mode
  172398. @ \fI2018\-07\-20 19:15:47 UTC\fP
  172399. .INDENT 2.0
  172400. .IP \(bu 2
  172401. 6a494205f2 Merge pull request \fI\%#48653\fP from terminalmage/docker\-unboundlocal
  172402. .IP \(bu 2
  172403. b0440871a0 Merge branch \(aq2018.3\(aq into docker\-unboundlocal
  172404. .IP \(bu 2
  172405. 9515dd17ff docker_container.running: Fix regression in test mode
  172406. .UNINDENT
  172407. .IP \(bu 2
  172408. \fBISSUE\fP \fI\%#47059\fP: (\fI\%OrlandoArcapix\fP) Some states incorrectly return None instead of an empty dict when there are no changes (refs: \fI\%#48685\fP)
  172409. .IP \(bu 2
  172410. \fBISSUE\fP \fI\%#46985\fP: (\fI\%OrlandoArcapix\fP) grafana4_user.present and grafana4_org.present states not working in 2018.3.0 (refs: \fI\%#48685\fP)
  172411. .IP \(bu 2
  172412. \fBPR\fP \fI\%#48685\fP: (\fI\%bbinet\fP) Use empty dict for \(aqchanges\(aq instead of None
  172413. @ \fI2018\-07\-20 17:12:43 UTC\fP
  172414. .INDENT 2.0
  172415. .IP \(bu 2
  172416. \fBPR\fP \fI\%#48671\fP: (\fI\%bbinet\fP) Few fixes to the grafana module and states (refs: \fI\%#48685\fP)
  172417. .IP \(bu 2
  172418. 266c6f250e Merge pull request \fI\%#48685\fP from bbinet/none\-changes
  172419. .IP \(bu 2
  172420. 842eb3da24 Use empty dict for \(aqchanges\(aq instead of None
  172421. .UNINDENT
  172422. .IP \(bu 2
  172423. \fBPR\fP \fI\%#48670\fP: (\fI\%bbinet\fP) Add the "traverse" jinja filter
  172424. @ \fI2018\-07\-20 16:36:21 UTC\fP
  172425. .INDENT 2.0
  172426. .IP \(bu 2
  172427. 5a6f7a085c Merge pull request \fI\%#48670\fP from bbinet/traverse
  172428. .IP \(bu 2
  172429. 32b6d22cf2 Fix RST syntax issue in doc
  172430. .IP \(bu 2
  172431. 37a41226d5 Add the "traverse" jinja filter
  172432. .UNINDENT
  172433. .IP \(bu 2
  172434. \fBPR\fP \fI\%#48594\fP: (\fI\%pritambaral\fP) Backport 48418
  172435. @ \fI2018\-07\-20 14:57:19 UTC\fP
  172436. .INDENT 2.0
  172437. .IP \(bu 2
  172438. \fBPR\fP \fI\%#48418\fP: (\fI\%pritambaral\fP) Fix multi\-sls \fIsalt.state\fP orchestration in masterless systems (refs: \fI\%#48594\fP)
  172439. .IP \(bu 2
  172440. ff11763fd3 Merge pull request \fI\%#48594\fP from pritambaral/bp\-48418
  172441. .IP \(bu 2
  172442. adcee28b84 Fix multi\-sls \fIsalt.state\fP orchestration in masterless systems
  172443. .UNINDENT
  172444. .IP \(bu 2
  172445. \fBISSUE\fP \fI\%#48184\fP: (\fI\%mmulqueen\fP) Invalid DMI prevents salt\-minion from running (refs: \fI\%#48440\fP)
  172446. .IP \(bu 2
  172447. \fBPR\fP \fI\%#48440\fP: (\fI\%mmulqueen\fP) Make core.py tolerant of invalid chars in DMI data
  172448. @ \fI2018\-07\-20 14:48:07 UTC\fP
  172449. .INDENT 2.0
  172450. .IP \(bu 2
  172451. \fBPR\fP \fI\%#48216\fP: (\fI\%Ch3LL\fP) Fix UnicodeDecodeError when reading file to determine virtual grain (refs: \fI\%#48440\fP)
  172452. .IP \(bu 2
  172453. 111908f519 Merge pull request \fI\%#48440\fP from mmulqueen/patch\-1
  172454. .IP \(bu 2
  172455. 5bbbdc74cd Make core.py tolerant of invalid chars in DMI data
  172456. .UNINDENT
  172457. .IP \(bu 2
  172458. \fBPR\fP \fI\%#48663\fP: (\fI\%Ch3LL\fP) [2018.3] Fix service.disabled test for macosx
  172459. @ \fI2018\-07\-20 14:32:22 UTC\fP
  172460. .INDENT 2.0
  172461. .IP \(bu 2
  172462. 4e77b242f2 Merge pull request \fI\%#48663\fP from Ch3LL/srv_disable_mac_2018
  172463. .IP \(bu 2
  172464. bddfbd75d2 reverse assertion order for service disable test
  172465. .IP \(bu 2
  172466. 2bfaf7fe89 Fix service.disabled test for macosx
  172467. .UNINDENT
  172468. .IP \(bu 2
  172469. \fBPR\fP \fI\%#48304\fP: (\fI\%Ch3LL\fP) Fix macosx grains when swapusage returns comma
  172470. @ \fI2018\-07\-20 14:30:59 UTC\fP
  172471. .INDENT 2.0
  172472. .IP \(bu 2
  172473. dfc1582475 Merge pull request \fI\%#48304\fP from Ch3LL/swap_mac
  172474. .IP \(bu 2
  172475. 5d6135e1e2 Fix macosx grains when swapusage returns comma
  172476. .UNINDENT
  172477. .IP \(bu 2
  172478. \fBPR\fP \fI\%#48671\fP: (\fI\%bbinet\fP) Few fixes to the grafana module and states (refs: \fI\%#48685\fP)
  172479. @ \fI2018\-07\-20 13:58:02 UTC\fP
  172480. .INDENT 2.0
  172481. .IP \(bu 2
  172482. 9d7eabd24e Merge pull request \fI\%#48671\fP from bbinet/grafana\-fixes
  172483. .IP \(bu 2
  172484. 3c5083f550 Add support for dry run (test=True) of grafana states
  172485. .IP \(bu 2
  172486. 7e7ae8ace7 influxdb: fix conflicts in function arg names with client_args
  172487. .IP \(bu 2
  172488. 73a24b774a Ignore readOnly option when diffing
  172489. .IP \(bu 2
  172490. 81f0cf8a3f Add missing profile argument to grafana4.get_user_data
  172491. .UNINDENT
  172492. .IP \(bu 2
  172493. \fBPR\fP \fI\%#48650\fP: (\fI\%gtmanfred\fP) [2018.3] handle pyzmq for python3.4
  172494. @ \fI2018\-07\-18 17:34:37 UTC\fP
  172495. .INDENT 2.0
  172496. .IP \(bu 2
  172497. e828167114 Merge pull request \fI\%#48650\fP from gtmanfred/pylint\-2018.3
  172498. .IP \(bu 2
  172499. 3c1882077e handle pyzmq for python3.4
  172500. .UNINDENT
  172501. .IP \(bu 2
  172502. \fBPR\fP \fI\%#48648\fP: (\fI\%gtmanfred\fP) [2018.3] disable checks on pylint
  172503. @ \fI2018\-07\-18 16:21:37 UTC\fP
  172504. .INDENT 2.0
  172505. .IP \(bu 2
  172506. a6f8acf4dc Merge pull request \fI\%#48648\fP from gtmanfred/pylint\-2018.3
  172507. .IP \(bu 2
  172508. 7c34c2965e disable checks on pylint
  172509. .UNINDENT
  172510. .IP \(bu 2
  172511. \fBPR\fP \fI\%#48634\fP: (\fI\%dwoz\fP) Sync modules for state tests
  172512. @ \fI2018\-07\-17 20:33:06 UTC\fP
  172513. .INDENT 2.0
  172514. .IP \(bu 2
  172515. 01c9c59a97 Merge pull request \fI\%#48634\fP from dwoz/state\-module\-test\-fix
  172516. .IP \(bu 2
  172517. 9dfd2ae392 Sync modules for state tests
  172518. .UNINDENT
  172519. .IP \(bu 2
  172520. \fBPR\fP \fI\%#48585\fP: (\fI\%astorath\fP) replaced meta tag
  172521. @ \fI2018\-07\-16 14:11:02 UTC\fP
  172522. .INDENT 2.0
  172523. .IP \(bu 2
  172524. fb7bfc757c Merge pull request \fI\%#48585\fP from astorath/fix\-vault\-meta
  172525. .IP \(bu 2
  172526. 42fd3d5f67 replaced meta tag
  172527. .UNINDENT
  172528. .IP \(bu 2
  172529. \fBPR\fP \fI\%#48579\fP: (\fI\%Ch3LL\fP) Fix python2 syslog returner expecting string bytes not unicode
  172530. @ \fI2018\-07\-13 19:50:16 UTC\fP
  172531. .INDENT 2.0
  172532. .IP \(bu 2
  172533. 4b16537a29 Merge pull request \fI\%#48579\fP from Ch3LL/fix_syslog
  172534. .IP \(bu 2
  172535. d8288a0ffc add unicode type for syslog test for tag
  172536. .IP \(bu 2
  172537. 17e69382d5 Fix python2 syslog returner expecting string bytes not unicode
  172538. .UNINDENT
  172539. .IP \(bu 2
  172540. \fBISSUE\fP \fI\%#48542\fP: (\fI\%calvinhp\fP) Missing state git.cloned is listed in the docs as new for 2018.3.2 (refs: \fI\%#48547\fP)
  172541. .IP \(bu 2
  172542. \fBPR\fP \fI\%#48547\fP: (\fI\%gtmanfred\fP) fix git.cloned doc versionadded
  172543. @ \fI2018\-07\-13 18:46:25 UTC\fP
  172544. .INDENT 2.0
  172545. .IP \(bu 2
  172546. 3549ce408d Merge pull request \fI\%#48547\fP from gtmanfred/git.cloned
  172547. .IP \(bu 2
  172548. b596a945ea Merge branch \(aq2018.3\(aq into git.cloned
  172549. .IP \(bu 2
  172550. e41f4922a0 fix git.cloned doc versionadded
  172551. .UNINDENT
  172552. .IP \(bu 2
  172553. \fBISSUE\fP \fI\%#48110\fP: (\fI\%whytewolf\fP) file.line on windows not treating unix line endings correctly. (refs: \fI\%#48503\fP)
  172554. .IP \(bu 2
  172555. \fBPR\fP \fI\%#48503\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46291\fP to 2018.3
  172556. @ \fI2018\-07\-13 17:14:47 UTC\fP
  172557. .INDENT 2.0
  172558. .IP \(bu 2
  172559. \fBPR\fP \fI\%#48380\fP: (\fI\%twangboy\fP) Detect and preserve line endings (refs: \fI\%#48503\fP)
  172560. .IP \(bu 2
  172561. \fBPR\fP \fI\%#46291\fP: (\fI\%t0fik\fP) Line mixed line ends (refs: \fI\%#48503\fP)
  172562. .IP \(bu 2
  172563. \fBPR\fP \fI\%#45498\fP: (\fI\%t0fik\fP) Added support for mixed line ending in file (refs: \fI\%#46291\fP)
  172564. .IP \(bu 2
  172565. ee257a1f91 Merge pull request \fI\%#48503\fP from rallytime/bp\-46291
  172566. .IP \(bu 2
  172567. 8bc71688ea Remove /sr.* pattern from test
  172568. .IP \(bu 2
  172569. 5e2e2a63fa Update file unit tests to handle "writelines" change
  172570. .IP \(bu 2
  172571. 5d38aa8b33 Update file.line to use \fIwritelines\fP instead of joining
  172572. .IP \(bu 2
  172573. d0b6e82ecb Add \(aqname\(aq as the passed in filepath for test_line_insert_ensure_before_first_line test
  172574. .IP \(bu 2
  172575. d8920cb61f Update \fItest_line_insert_ensure_before_first_line\fP to use new mock_open methodologies
  172576. .IP \(bu 2
  172577. 475f075d8e Handle list of lines instead of strings in file.line func
  172578. .IP \(bu 2
  172579. b9ddd53b04 Added comments
  172580. .IP \(bu 2
  172581. f3517a1852 List comprehension replaced
  172582. .IP \(bu 2
  172583. adfa3aed0d Empty match on delete or replace not causing IndexError exception
  172584. .IP \(bu 2
  172585. 5169b1f7fd Comprehensions converting to unicode replaced by salt.utils.data.decode_list
  172586. .IP \(bu 2
  172587. d3e8679e05 Removed regex compilation
  172588. .IP \(bu 2
  172589. f29815b49b Fixed file permissions
  172590. .IP \(bu 2
  172591. d2af81e9c7 Make integration green. Added test for mode ensure insert before first line
  172592. .IP \(bu 2
  172593. 9b7df671a5 file.line function refactored
  172594. .IP \(bu 2
  172595. 3af551ebe1 /sr.* pattern should raise exception
  172596. .IP \(bu 2
  172597. 935a9b9d56 test_line_insert_end fixed
  172598. .IP \(bu 2
  172599. 7d6e3ad2e2 Make tests green
  172600. .IP \(bu 2
  172601. 75a7e368a6 Setting end of line
  172602. .IP \(bu 2
  172603. 489e381100 Added _set_line_eol and _get_eol functions
  172604. .IP \(bu 2
  172605. aacbb8c0e2 line function refactored to work on list
  172606. .IP \(bu 2
  172607. de668166f9 _regex_to_static refactored to work on lists
  172608. .IP \(bu 2
  172609. 464eef6fe1 _get_line_indent renamed to _set_line_indent
  172610. .UNINDENT
  172611. .IP \(bu 2
  172612. \fBISSUE\fP \fI\%#48507\fP: (\fI\%emersonveenstra\fP) mysql_grants.present escape option incorrectly reports failure (refs: \fI\%#48561\fP)
  172613. .IP \(bu 2
  172614. \fBPR\fP \fI\%#48561\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to grants in mysql module
  172615. @ \fI2018\-07\-13 14:24:58 UTC\fP
  172616. .INDENT 2.0
  172617. .IP \(bu 2
  172618. 2d923f2943 Merge pull request \fI\%#48561\fP from garethgreenaway/48507_mysql_grants_incorrect_failure
  172619. .IP \(bu 2
  172620. 14c59da72c Following a successful grant application in the MySQL module, the new grant and the desired grant are mismatched because the new grant from Mysql included hashmarks. This change adds the replace which is included for other items such as database name and username.
  172621. .UNINDENT
  172622. .IP \(bu 2
  172623. \fBPR\fP \fI\%#48529\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172624. @ \fI2018\-07\-12 17:59:35 UTC\fP
  172625. .INDENT 2.0
  172626. .IP \(bu 2
  172627. 5b5a930449 Merge pull request \fI\%#48529\fP from rallytime/merge\-2018.3
  172628. .IP \(bu 2
  172629. f9b8c4b257 Use () when using with_tempfile decorator in tests
  172630. .IP \(bu 2
  172631. d3190ca0c0 Update old utils paths to new utils paths
  172632. .IP \(bu 2
  172633. 29b05ffdd1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172634. .INDENT 2.0
  172635. .IP \(bu 2
  172636. 0c0c05c2bc Merge pull request \fI\%#48527\fP from saltstack/revert\-48525\-2017.7
  172637. .INDENT 2.0
  172638. .IP \(bu 2
  172639. 18d06c1a93 Revert "add kazoo for testing zookeeper."
  172640. .UNINDENT
  172641. .IP \(bu 2
  172642. 05bad3e71c Merge pull request \fI\%#48526\fP from twangboy/rollback_certifi\-win32
  172643. .INDENT 2.0
  172644. .IP \(bu 2
  172645. 361b3cdc2f Rollback python\-certifi\-win32
  172646. .UNINDENT
  172647. .IP \(bu 2
  172648. db066effe4 Merge pull request \fI\%#48521\fP from Martin819/2017.7
  172649. .INDENT 2.0
  172650. .IP \(bu 2
  172651. d5d01f6698 Fix for GlusterFS 4.0 and above
  172652. .UNINDENT
  172653. .IP \(bu 2
  172654. ed0bd2bbec Merge pull request \fI\%#48525\fP from gtmanfred/2017.7
  172655. .INDENT 2.0
  172656. .IP \(bu 2
  172657. d7a6bff2b2 add kazoo for testing zookeeper.
  172658. .UNINDENT
  172659. .IP \(bu 2
  172660. ad5a959ab9 Merge pull request \fI\%#48388\fP from garethgreenaway/48277_2017_7_file_roots_wrong
  172661. .INDENT 2.0
  172662. .IP \(bu 2
  172663. 6f11da35a7 Fixing a few things in the new test.
  172664. .IP \(bu 2
  172665. cf747b14ec Fixing lint issue
  172666. .IP \(bu 2
  172667. 16d36c79c8 When pillar items are compiled a new render is instantiated but the file_roots is the pillar_roots. This change forces the __opts__[\(aqfile_roots\(aq] to be set to what is set in actual_file_roots for all renderers once compile_pillar has finished. Adding a test when this situation is run via a orchestration runner.
  172668. .UNINDENT
  172669. .IP \(bu 2
  172670. 38df812257 Merge pull request \fI\%#48512\fP from gtmanfred/npm
  172671. .INDENT 2.0
  172672. .IP \(bu 2
  172673. 9ba0f6b3a0 pin pm and grunt packages for npm tests
  172674. .UNINDENT
  172675. .IP \(bu 2
  172676. 04ba31147f Merge pull request \fI\%#48513\fP from rallytime/merge\-2017.7
  172677. .INDENT 2.0
  172678. .IP \(bu 2
  172679. a466a4880f Merge branch \(aq2017.7.7\(aq into \(aq2017.7\(aq
  172680. .INDENT 2.0
  172681. .IP \(bu 2
  172682. cfd21ed22c Merge pull request \fI\%#48172\fP from rallytime/2017.7.7\-release\-notes
  172683. .INDENT 2.0
  172684. .IP \(bu 2
  172685. a0ad794132 Update release notes for 2017.7.7
  172686. .UNINDENT
  172687. .IP \(bu 2
  172688. 8af4452134 Merge pull request \fI\%#48157\fP from gtmanfred/2017.7.7
  172689. .INDENT 2.0
  172690. .IP \(bu 2
  172691. d8209e8a40 always listen when gathering job info
  172692. .UNINDENT
  172693. .IP \(bu 2
  172694. b98c52ee51 Merge pull request \fI\%#48140\fP from rallytime/man\-pages\-2017.7.7
  172695. .INDENT 2.0
  172696. .IP \(bu 2
  172697. 8893bf0d4c Update man pages for 2017.7.7
  172698. .UNINDENT
  172699. .IP \(bu 2
  172700. baa0363336 Merge pull request \fI\%#48136\fP from gtmanfred/2017.7.7
  172701. .INDENT 2.0
  172702. .IP \(bu 2
  172703. fce1c31146 bootstrap kitchen branch tests with 2017.7.6
  172704. .UNINDENT
  172705. .IP \(bu 2
  172706. b0ba08f4d9 Merge pull request \fI\%#48134\fP from rallytime/release\-notes\-2017.7.7
  172707. .INDENT 2.0
  172708. .IP \(bu 2
  172709. 217005b8f1 Add missing \fIv\fP for tag reference
  172710. .IP \(bu 2
  172711. d53569d1e3 Add release notes file for 2017.7.7
  172712. .UNINDENT
  172713. .IP \(bu 2
  172714. 084de927fe Merge pull request \fI\%#48098\fP from rallytime/bp\-48075\-2017.7.7
  172715. .INDENT 2.0
  172716. .IP \(bu 2
  172717. e4e62e8b3a Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  172718. .UNINDENT
  172719. .UNINDENT
  172720. .UNINDENT
  172721. .IP \(bu 2
  172722. f0352ea95a Merge pull request \fI\%#48514\fP from gtmanfred/2017.7
  172723. .INDENT 2.0
  172724. .IP \(bu 2
  172725. 739bf92599 upgrade dependencies for pytest tests
  172726. .UNINDENT
  172727. .IP \(bu 2
  172728. 5372b60137 Merge pull request \fI\%#48491\fP from grokrecursion/group\-fix\-v2
  172729. .INDENT 2.0
  172730. .IP \(bu 2
  172731. 1556b37221 fixed pylint errors
  172732. .IP \(bu 2
  172733. f6d9177dab fixed indentation for pep8
  172734. .IP \(bu 2
  172735. b9556bf923 v2 try of gid converted to integer
  172736. .UNINDENT
  172737. .IP \(bu 2
  172738. 16d3daab3c Merge pull request \fI\%#48375\fP from Ch3LL/file_copy
  172739. .INDENT 2.0
  172740. .IP \(bu 2
  172741. d16a790775 Add mode to _makedirs call in file.copy
  172742. .IP \(bu 2
  172743. 2cbcb4fd26 Add user and group to makedirs cmd in file.copy
  172744. .UNINDENT
  172745. .IP \(bu 2
  172746. d38951b1b3 Merge pull request \fI\%#48490\fP from KaiSforza/cifixes
  172747. .INDENT 2.0
  172748. .IP \(bu 2
  172749. 9fe7199af5 Mark failed if anything is found
  172750. .IP \(bu 2
  172751. 6749a6bf19 Stop archiving the docs
  172752. .UNINDENT
  172753. .UNINDENT
  172754. .UNINDENT
  172755. .IP \(bu 2
  172756. \fBPR\fP \fI\%#48553\fP: (\fI\%KaiSforza\fP) Set up junit in jenkins
  172757. @ \fI2018\-07\-12 16:24:01 UTC\fP
  172758. .INDENT 2.0
  172759. .IP \(bu 2
  172760. a95b8efd8a Merge pull request \fI\%#48553\fP from KaiSforza/jenkins\-junit\-2018
  172761. .IP \(bu 2
  172762. 412ffcc956 Set up junit in jenkins
  172763. .UNINDENT
  172764. .IP \(bu 2
  172765. \fBPR\fP \fI\%#48551\fP: (\fI\%gtmanfred\fP) add posargs to tox pylint
  172766. @ \fI2018\-07\-12 14:35:25 UTC\fP
  172767. .INDENT 2.0
  172768. .IP \(bu 2
  172769. c4aed02740 Merge pull request \fI\%#48551\fP from gtmanfred/2018.3
  172770. .IP \(bu 2
  172771. a6a286af28 add posargs to tox pylint
  172772. .UNINDENT
  172773. .IP \(bu 2
  172774. \fBPR\fP \fI\%#48533\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError in sh beacon
  172775. @ \fI2018\-07\-12 13:38:43 UTC\fP
  172776. .INDENT 2.0
  172777. .IP \(bu 2
  172778. 260da0d545 Merge pull request \fI\%#48533\fP from terminalmage/sh\-beacon
  172779. .IP \(bu 2
  172780. 7ac5ac06c9 Fix UnicodeDecodeError in sh beacon
  172781. .UNINDENT
  172782. .IP \(bu 2
  172783. \fBISSUE\fP \fI\%#48519\fP: (\fI\%Lutseslav\fP) Mysql module alter_db quotation missing (refs: \fI\%#48520\fP)
  172784. .IP \(bu 2
  172785. \fBPR\fP \fI\%#48520\fP: (\fI\%Lutseslav\fP) Add quotes to schema name in ALTER DATABASE.
  172786. @ \fI2018\-07\-11 19:15:08 UTC\fP
  172787. .INDENT 2.0
  172788. .IP \(bu 2
  172789. 8761ac2589 Merge pull request \fI\%#48520\fP from Lutseslav/fix\-alter\-databases\-with\-special\-symbols
  172790. .IP \(bu 2
  172791. d088b00ff2 Merge branch \(aq2018.3\(aq into fix\-alter\-databases\-with\-special\-symbols
  172792. .IP \(bu 2
  172793. 59629e9757 Merge branch \(aq2018.3\(aq into fix\-alter\-databases\-with\-special\-symbols
  172794. .IP \(bu 2
  172795. da8336712e Add quotes to schema name in ALTER DATABASE.
  172796. .UNINDENT
  172797. .IP \(bu 2
  172798. \fBPR\fP \fI\%#48528\fP: (\fI\%gtmanfred\fP) add 2018.3 requirements for tox/pytest tests
  172799. @ \fI2018\-07\-11 18:13:40 UTC\fP
  172800. .INDENT 2.0
  172801. .IP \(bu 2
  172802. ad4f7efafd Merge pull request \fI\%#48528\fP from gtmanfred/2018.3
  172803. .IP \(bu 2
  172804. 221559358a add 2018.3 requirements for tox/pytest tests
  172805. .UNINDENT
  172806. .IP \(bu 2
  172807. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP, \fI\%#48398\fP)
  172808. .IP \(bu 2
  172809. \fBPR\fP \fI\%#48508\fP: (\fI\%rallytime\fP) [2018.3] Fix 2 bugs found in the file.check_perms function
  172810. @ \fI2018\-07\-11 15:03:32 UTC\fP
  172811. .INDENT 2.0
  172812. .IP \(bu 2
  172813. \fBPR\fP \fI\%#48399\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to module/file.py (refs: \fI\%#48508\fP)
  172814. .IP \(bu 2
  172815. \fBPR\fP \fI\%#48398\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to module/file.py (refs: \fI\%#48508\fP)
  172816. .IP \(bu 2
  172817. 70e5fcb8a5 Merge pull request \fI\%#48508\fP from rallytime/fix\-file\-bug
  172818. .IP \(bu 2
  172819. 0747eb5476 Move comment string join and test/changes check to bottom of file.check_perms
  172820. .IP \(bu 2
  172821. aefa1dbe21 Fix up bad merge \- remove extra section of "mode" changes
  172822. .UNINDENT
  172823. .IP \(bu 2
  172824. \fBISSUE\fP \fI\%#48277\fP: (\fI\%dvenckus\fP) init.sls with included states fails with more than one, \(aqTemplate was specified incorrectly: False\(aq (refs: \fI\%#48388\fP, \fI\%#48389\fP)
  172825. .IP \(bu 2
  172826. \fBISSUE\fP \fI\%#46986\fP: (\fI\%github\-abcde\fP) opts file_roots gets overwritten with pillar_roots in orchestration run (refs: \fI\%#48388\fP, \fI\%#48389\fP)
  172827. .IP \(bu 2
  172828. \fBPR\fP \fI\%#48389\fP: (\fI\%garethgreenaway\fP) [2018.3] reset file_roots for renderers after compile_pillar
  172829. @ \fI2018\-07\-11 13:13:33 UTC\fP
  172830. .INDENT 2.0
  172831. .IP \(bu 2
  172832. 5a0b274bf1 Merge pull request \fI\%#48389\fP from garethgreenaway/48277_2018_3_file_roots_wrong
  172833. .IP \(bu 2
  172834. 4b492fa633 Removing unused start_time variable from test_orchestration_with_pillar_dot_items test.
  172835. .IP \(bu 2
  172836. 30c5855d20 Fixing a few things in the new test.
  172837. .IP \(bu 2
  172838. 36b7253418 Fixing lint issue
  172839. .IP \(bu 2
  172840. ab6abfad31 When pillar items are compiled a new render is instantiated but the file_roots is the pillar_roots. This change forces the __opts__[\(aqfile_roots\(aq] to be set to what is set in actual_file_roots for all renderers once compile_pillar has finished. Adding a test when this situation is run via a orchestration runner.
  172841. .UNINDENT
  172842. .IP \(bu 2
  172843. \fBISSUE\fP \fI\%#48342\fP: (\fI\%jeffclay\fP) UnicodeDecodeError when using cache mysql (refs: \fI\%#48495\fP)
  172844. .IP \(bu 2
  172845. \fBPR\fP \fI\%#48495\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to mysql cache module
  172846. @ \fI2018\-07\-10 12:54:10 UTC\fP
  172847. .INDENT 2.0
  172848. .IP \(bu 2
  172849. f9fd1a889a Merge pull request \fI\%#48495\fP from garethgreenaway/48342_mysql_cache_unicode
  172850. .IP \(bu 2
  172851. 0029f19033 Ensure the query_string is a bytestring, otherwise an attempt will be made to convert the msgpack data to unicode which will result in a UnicodeDecodeError error.
  172852. .UNINDENT
  172853. .IP \(bu 2
  172854. \fBPR\fP \fI\%#48487\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172855. @ \fI2018\-07\-09 18:38:00 UTC\fP
  172856. .INDENT 2.0
  172857. .IP \(bu 2
  172858. fc3eeef6b3 Merge pull request \fI\%#48487\fP from rallytime/merge\-2018.3
  172859. .IP \(bu 2
  172860. 54341d1a8d Update old utils paths to use new utils paths
  172861. .IP \(bu 2
  172862. 68aabff0cf Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172863. .IP \(bu 2
  172864. 22cd4206c4 Merge pull request \fI\%#48472\fP from gtmanfred/2017.7
  172865. .INDENT 2.0
  172866. .IP \(bu 2
  172867. c7a3a7d8bd update jenkins tests to use tox for lint
  172868. .IP \(bu 2
  172869. 44aaac1d33 use tox to run pylint
  172870. .UNINDENT
  172871. .IP \(bu 2
  172872. 27ea8f35ea Merge pull request \fI\%#48476\fP from twangboy/fix_dependencies
  172873. .INDENT 2.0
  172874. .IP \(bu 2
  172875. b0087d425c Add license info
  172876. .IP \(bu 2
  172877. 935f9b560c Fix dependencies
  172878. .UNINDENT
  172879. .IP \(bu 2
  172880. acf42864aa Merge pull request \fI\%#48399\fP from garethgreenaway/48336_2017_7_ensure_chmod_setuid_with_chown
  172881. .INDENT 2.0
  172882. .IP \(bu 2
  172883. 8efd33320f Normalize the mode before we compare it.
  172884. .IP \(bu 2
  172885. f894f0ecb8 Setting the mode with setuid or setgid bits in addition to setting the owner and group will force the setuid & setgid bits to reset. This change ensures that we set the mode after setting the owner & group.
  172886. .UNINDENT
  172887. .IP \(bu 2
  172888. 6166ff6b78 Merge pull request \fI\%#48471\fP from gtmanfred/2017.7
  172889. .INDENT 2.0
  172890. .IP \(bu 2
  172891. 392ab4e51f Add some configurations to tox
  172892. .UNINDENT
  172893. .IP \(bu 2
  172894. 6234d9b15d Merge pull request \fI\%#48433\fP from discogestalt/fix\-redis.hmset
  172895. .INDENT 2.0
  172896. .IP \(bu 2
  172897. 65817ac74d Use clean_kwargs method instead
  172898. .IP \(bu 2
  172899. f7fa7f57c6 Found another issue with redismod.hmset
  172900. .IP \(bu 2
  172901. 5624865f86 Fix issue with redismod.hmset method
  172902. .UNINDENT
  172903. .IP \(bu 2
  172904. aacee0fe2c Merge pull request \fI\%#48428\fP from terminalmage/fix\-jobs.lookup_jid
  172905. .INDENT 2.0
  172906. .IP \(bu 2
  172907. 6509aa9089 Fix outputter detection in jobs.lookup_jid runner
  172908. .UNINDENT
  172909. .IP \(bu 2
  172910. a7e52f0de2 Merge pull request \fI\%#48429\fP from rallytime/bp\-46824
  172911. .INDENT 2.0
  172912. .IP \(bu 2
  172913. 8b4486248d Added ignore_retcode to mock unit tests
  172914. .IP \(bu 2
  172915. f8beab71dd Regression to ignore retcodes on crontab calls
  172916. .UNINDENT
  172917. .IP \(bu 2
  172918. 4576ef20bc Merge pull request \fI\%#48432\fP from dwoz/file\-prepend\-again
  172919. .INDENT 2.0
  172920. .IP \(bu 2
  172921. 349a2b279e Prepend test needs file.touch method
  172922. .UNINDENT
  172923. .UNINDENT
  172924. .IP \(bu 2
  172925. \fBPR\fP \fI\%#48481\fP: (\fI\%terminalmage\fP) Improve the slack engine docs
  172926. @ \fI2018\-07\-09 13:41:15 UTC\fP
  172927. .INDENT 2.0
  172928. .IP \(bu 2
  172929. 4d4d2eacce Merge pull request \fI\%#48481\fP from terminalmage/slack\-engine
  172930. .IP \(bu 2
  172931. 56e8a1eb93 Improve the slack engine docs
  172932. .IP \(bu 2
  172933. dde9c0640d Add information on creating bot users
  172934. .IP \(bu 2
  172935. 513c6af975 Fix inaccurate docs
  172936. .UNINDENT
  172937. .IP \(bu 2
  172938. \fBPR\fP \fI\%#48348\fP: (\fI\%dwoz\fP) Fix multiple git module tests
  172939. @ \fI2018\-07\-06 20:35:58 UTC\fP
  172940. .INDENT 2.0
  172941. .IP \(bu 2
  172942. 491b5b077c Merge pull request \fI\%#48348\fP from dwoz/test_git
  172943. .IP \(bu 2
  172944. 5ca5e060b3 Merge branch \(aq2018.3\(aq into test_git
  172945. .UNINDENT
  172946. .IP \(bu 2
  172947. \fBPR\fP \fI\%#48454\fP: (\fI\%terminalmage\fP) Improve error message when ext_pillar is incorrectly formatted
  172948. @ \fI2018\-07\-06 18:03:44 UTC\fP
  172949. .INDENT 2.0
  172950. .IP \(bu 2
  172951. dd6a6a97c5 Merge pull request \fI\%#48454\fP from terminalmage/issue48107
  172952. .IP \(bu 2
  172953. 269dbab7f6 Improve error message when ext_pillar is incorrectly formatted
  172954. .UNINDENT
  172955. .IP \(bu 2
  172956. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP, \fI\%#48398\fP)
  172957. .IP \(bu 2
  172958. \fBPR\fP \fI\%#48398\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to module/file.py (refs: \fI\%#48508\fP)
  172959. @ \fI2018\-07\-06 18:02:43 UTC\fP
  172960. .INDENT 2.0
  172961. .IP \(bu 2
  172962. a9dc758e73 Merge pull request \fI\%#48398\fP from garethgreenaway/48336_ensure_chmodd_setuid_with_chown
  172963. .IP \(bu 2
  172964. 2454652914 Normalize the mode before we compare it.
  172965. .IP \(bu 2
  172966. 08ad5665de Fixing test to ensure it works under py3
  172967. .IP \(bu 2
  172968. 2b25d8c95b Setting the mode with setuid or setgid bits in addition to setting the owner and group will force the setuid & setgid bits to reset. This change ensures that we set the mode after setting the owner & group.
  172969. .UNINDENT
  172970. .IP \(bu 2
  172971. \fBPR\fP \fI\%#48431\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  172972. @ \fI2018\-07\-05 17:23:00 UTC\fP
  172973. .INDENT 2.0
  172974. .IP \(bu 2
  172975. 2baa7f189f Merge pull request \fI\%#48431\fP from rallytime/merge\-2018.3
  172976. .IP \(bu 2
  172977. 3e59dda0b1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  172978. .INDENT 2.0
  172979. .IP \(bu 2
  172980. 422441505d Merge pull request \fI\%#48422\fP from rallytime/fix\-48230
  172981. .INDENT 2.0
  172982. .IP \(bu 2
  172983. a6abf85621 Allow file.managed to work with uppercase source_hash in test=true mode
  172984. .IP \(bu 2
  172985. 4c691ac57a Add regression test for Issue \fI\%#48230\fP
  172986. .UNINDENT
  172987. .IP \(bu 2
  172988. 83e387c951 Merge pull request \fI\%#48410\fP from dwoz/service_dead_test_fix
  172989. .INDENT 2.0
  172990. .IP \(bu 2
  172991. 5c0923448d Fix service dead test on windows
  172992. .UNINDENT
  172993. .IP \(bu 2
  172994. d3ba345da5 Merge pull request \fI\%#48413\fP from twangboy/fix_47811
  172995. .INDENT 2.0
  172996. .IP \(bu 2
  172997. c5aad04140 handle unc paths
  172998. .UNINDENT
  172999. .IP \(bu 2
  173000. 827ef2aac4 Merge pull request \fI\%#48416\fP from dwoz/service_integration_fix
  173001. .INDENT 2.0
  173002. .IP \(bu 2
  173003. c43f150dcd Fix service integration test (py3)
  173004. .UNINDENT
  173005. .IP \(bu 2
  173006. 10fe7d2b9b Merge pull request \fI\%#48385\fP from Ch3LL/1update_version_doc_2017.7
  173007. .INDENT 2.0
  173008. .IP \(bu 2
  173009. 3cf335b0b9 Update release versions for the 2017.7 branch
  173010. .UNINDENT
  173011. .IP \(bu 2
  173012. f8a9a037e6 Merge pull request \fI\%#48405\fP from Ch3LL/rm_inprog_2017.7
  173013. .INDENT 2.0
  173014. .IP \(bu 2
  173015. 03ed5167fa [2017.7] Remove In Progress Warning on 2017.7.7
  173016. .UNINDENT
  173017. .IP \(bu 2
  173018. 8ac867c168 Merge pull request \fI\%#48409\fP from dwoz/test_prepend_fix
  173019. .INDENT 2.0
  173020. .IP \(bu 2
  173021. 9c7085b70f Fix file state prepend test
  173022. .UNINDENT
  173023. .IP \(bu 2
  173024. 10e93bff7f Merge pull request \fI\%#48396\fP from dwoz/symlink_test_fix
  173025. .INDENT 2.0
  173026. .IP \(bu 2
  173027. d3456d31e6 Fix file.symlink state test for windows
  173028. .UNINDENT
  173029. .UNINDENT
  173030. .UNINDENT
  173031. .IP \(bu 2
  173032. \fBPR\fP \fI\%#48310\fP: (\fI\%mtorromeo\fP) Backport ini_manage fixes to 2018.3
  173033. @ \fI2018\-07\-05 16:27:19 UTC\fP
  173034. .INDENT 2.0
  173035. .IP \(bu 2
  173036. 432cbbb5ee Merge pull request \fI\%#48310\fP from mtorromeo/ini\-manage\-backports
  173037. .IP \(bu 2
  173038. 88f80fdf77 Fixed pylint useless\-super\-delegation warning.
  173039. .IP \(bu 2
  173040. e20f4cacd4 Uniformed reports between ini.options_absent and ini.options_present
  173041. .IP \(bu 2
  173042. 2c3ae0b6c9 pylint cosmetics.
  173043. .IP \(bu 2
  173044. 0c0d10d18f Fixes dry run false positive when option value is a number.
  173045. .IP \(bu 2
  173046. 70144bccbb Fixes dry run in ini_manage + Fixes related bug \- when working with options which are not in section. + Fixes related tests + Fixes pylint warnings
  173047. .UNINDENT
  173048. .IP \(bu 2
  173049. \fBISSUE\fP \fI\%#48402\fP: (\fI\%elsmorian\fP) Running SaltStack master with no init system repeatedly logs "could not determine init system " (refs: \fI\%#48441\fP)
  173050. .IP \(bu 2
  173051. \fBPR\fP \fI\%#48441\fP: (\fI\%terminalmage\fP) Switch init system log message to debug
  173052. @ \fI2018\-07\-05 14:43:25 UTC\fP
  173053. .INDENT 2.0
  173054. .IP \(bu 2
  173055. 84fd3d2784 Merge pull request \fI\%#48441\fP from terminalmage/issue48402
  173056. .IP \(bu 2
  173057. d758995763 Switch init system log message to debug
  173058. .UNINDENT
  173059. .IP \(bu 2
  173060. \fBPR\fP \fI\%#48386\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  173061. @ \fI2018\-07\-03 13:37:32 UTC\fP
  173062. .INDENT 2.0
  173063. .IP \(bu 2
  173064. 871c9e3b98 Merge pull request \fI\%#48386\fP from Ch3LL/1update_version_doc_2018.3
  173065. .IP \(bu 2
  173066. 84a1994110 Update release versions for the 2018.3 branch
  173067. .UNINDENT
  173068. .IP \(bu 2
  173069. \fBPR\fP \fI\%#48404\fP: (\fI\%Ch3LL\fP) [2018.3] Remove In Progress Warning on 2017.7.7
  173070. @ \fI2018\-07\-03 13:33:18 UTC\fP
  173071. .INDENT 2.0
  173072. .IP \(bu 2
  173073. ddb83ad4ce Merge pull request \fI\%#48404\fP from Ch3LL/rm_inprog_2018.3
  173074. .IP \(bu 2
  173075. ef288f2a74 [2018.3] Remove In Progress Warning on 2017.7.7
  173076. .UNINDENT
  173077. .IP \(bu 2
  173078. \fBPR\fP \fI\%#48339\fP: (\fI\%terminalmage\fP) Backport tojson filter from \fI\%#48309\fP to 2018.3
  173079. @ \fI2018\-07\-02 17:52:53 UTC\fP
  173080. .INDENT 2.0
  173081. .IP \(bu 2
  173082. \fBPR\fP \fI\%#48309\fP: (\fI\%terminalmage\fP) Drop support for Python 2 unicode string literals in YAML renderer (refs: \fI\%#48339\fP)
  173083. .IP \(bu 2
  173084. 5b38019ca0 Merge pull request \fI\%#48339\fP from terminalmage/backport\-tojson\-filter
  173085. .IP \(bu 2
  173086. 4433bec891 Add release notes for tojson jinja filter
  173087. .IP \(bu 2
  173088. ac36998801 Tweak docs to reflect backported filter
  173089. .IP \(bu 2
  173090. c636b18cf0 Add unit test for tojson filter
  173091. .IP \(bu 2
  173092. e34e39f0e2 Document filter deprecation
  173093. .IP \(bu 2
  173094. b9a4f288b2 Deprecate json_encode_dict and json_encode_list jinja filters
  173095. .IP \(bu 2
  173096. 3896e3468c Use upstream tojson filter, if present
  173097. .IP \(bu 2
  173098. 1499c6abcf Implement tojson jinja filter for those using Jinja < 2.9
  173099. .UNINDENT
  173100. .IP \(bu 2
  173101. \fBISSUE\fP \fI\%#48274\fP: (\fI\%ipmb\fP) s3.get signature failure with + in the object name (refs: \fI\%#48328\fP)
  173102. .IP \(bu 2
  173103. \fBPR\fP \fI\%#48328\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to utils/s3.py
  173104. @ \fI2018\-07\-02 13:22:31 UTC\fP
  173105. .INDENT 2.0
  173106. .IP \(bu 2
  173107. 222c1d65db Merge pull request \fI\%#48328\fP from garethgreenaway/48274_s3_get_signature_fail
  173108. .IP \(bu 2
  173109. 22cafc8334 fixing lint issue
  173110. .IP \(bu 2
  173111. 131486203e Need to pass the URL path through quote to ensure any special characters are being quoted properly. if we include local_file for a PUT, read the file into data before passing it along to requests.requests.
  173112. .UNINDENT
  173113. .IP \(bu 2
  173114. \fBPR\fP \fI\%#48358\fP: (\fI\%Ch3LL\fP) Fix corrupt public key with m2crypto python3
  173115. @ \fI2018\-07\-02 13:10:32 UTC\fP
  173116. .INDENT 2.0
  173117. .IP \(bu 2
  173118. d3c658bdcf Merge pull request \fI\%#48358\fP from Ch3LL/m2crypto_fix
  173119. .IP \(bu 2
  173120. 8fdd34d430 m2crypto open file in rb mode for pub key
  173121. .IP \(bu 2
  173122. a964db4663 Fix corrupt public key with m2crypto python3
  173123. .UNINDENT
  173124. .IP \(bu 2
  173125. \fBISSUE\fP \fI\%#48367\fP: (\fI\%asenci\fP) salt.proxy.fx2: dictionary changed size during iteration (refs: \fI\%#48368\fP)
  173126. .IP \(bu 2
  173127. \fBISSUE\fP \fI\%#46765\fP: (\fI\%roskens\fP) pkg.mod_repo fails with a python error when removing a dictionary key (refs: \fI\%#46776\fP)
  173128. .IP \(bu 2
  173129. \fBPR\fP \fI\%#48384\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48368\fP to 2018.3
  173130. @ \fI2018\-07\-01 04:19:10 UTC\fP
  173131. .INDENT 2.0
  173132. .IP \(bu 2
  173133. \fBPR\fP \fI\%#48368\fP: (\fI\%asenci\fP) Fix issue \fI\%#48367\fP using the same approach as PR \fI\%#46776\fP (refs: \fI\%#48384\fP)
  173134. .IP \(bu 2
  173135. \fBPR\fP \fI\%#46776\fP: (\fI\%gtmanfred\fP) fix shrinking list in for loop bug (refs: \fI\%#48368\fP)
  173136. .IP \(bu 2
  173137. 2fd63d66dc Merge pull request \fI\%#48384\fP from rallytime/bp\-48368
  173138. .IP \(bu 2
  173139. 430c462f34 Fix issue \fI\%#48367\fP using the same approach as PR \fI\%#46776\fP
  173140. .UNINDENT
  173141. .IP \(bu 2
  173142. \fBPR\fP \fI\%#48394\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173143. @ \fI2018\-07\-01 04:13:03 UTC\fP
  173144. .INDENT 2.0
  173145. .IP \(bu 2
  173146. 3b53e2d206 Merge pull request \fI\%#48394\fP from rallytime/merge\-2018.3
  173147. .IP \(bu 2
  173148. 047f5b5f39 Update old utils paths to new utils paths
  173149. .IP \(bu 2
  173150. c4fd2a0930 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173151. .IP \(bu 2
  173152. 7e25f26837 Merge pull request \fI\%#48362\fP from twangboy/fix_48276
  173153. .INDENT 2.0
  173154. .IP \(bu 2
  173155. 77629f640a Fix module unit tests
  173156. .IP \(bu 2
  173157. b5ca560b73 Fix lint error
  173158. .IP \(bu 2
  173159. 210e280ecf Use explicit parameter names
  173160. .IP \(bu 2
  173161. 776db98a5c Handle missing registry entries
  173162. .UNINDENT
  173163. .IP \(bu 2
  173164. 80222b6b7c Merge pull request \fI\%#48383\fP from rallytime/bp\-48379
  173165. .INDENT 2.0
  173166. .IP \(bu 2
  173167. 9fc7815594 Clean up the workspaces at the end for every job
  173168. .UNINDENT
  173169. .IP \(bu 2
  173170. aa68aa774a Merge pull request \fI\%#48382\fP from rallytime/bp\-48346
  173171. .INDENT 2.0
  173172. .IP \(bu 2
  173173. 6a70ba222e Use the right ssh key to destroy kitchen
  173174. .UNINDENT
  173175. .IP \(bu 2
  173176. 9519f640e7 Merge pull request \fI\%#48381\fP from rallytime/bp\-48330
  173177. .INDENT 2.0
  173178. .IP \(bu 2
  173179. 6857bedcc2 Add warnings plugin to replace violations
  173180. .UNINDENT
  173181. .IP \(bu 2
  173182. 14db0aa35d Merge pull request \fI\%#48363\fP from dubb\-b/2017.7
  173183. .INDENT 2.0
  173184. .IP \(bu 2
  173185. c0b962e28d Changing debug to info for logging
  173186. .UNINDENT
  173187. .IP \(bu 2
  173188. 5b29cd326f Merge pull request \fI\%#48352\fP from Ch3LL/wheel_doc
  173189. .INDENT 2.0
  173190. .IP \(bu 2
  173191. 89ada68165 Add missing key to accept_dict function in wheel docs
  173192. .UNINDENT
  173193. .IP \(bu 2
  173194. 02cf19ee3b Merge pull request \fI\%#48329\fP from rallytime/codeowners\-roster\-files
  173195. .INDENT 2.0
  173196. .IP \(bu 2
  173197. 5e56615e00 Trigger review requests for team\-ssh for roster files
  173198. .UNINDENT
  173199. .IP \(bu 2
  173200. 53cf1794be Merge pull request \fI\%#48349\fP from ralex/fix\-manjaro\-service\-behaviour
  173201. .INDENT 2.0
  173202. .IP \(bu 2
  173203. 6cafce547e Disable the \fIservice\fP module on Manjaro since it is using systemd
  173204. .UNINDENT
  173205. .IP \(bu 2
  173206. 89dfcf3a4e Merge pull request \fI\%#48324\fP from Ch3LL/update_version_doc_2017.7
  173207. .INDENT 2.0
  173208. .IP \(bu 2
  173209. 47845ba810 Update release versions for the 2017.7 branch
  173210. .UNINDENT
  173211. .IP \(bu 2
  173212. ece4c30aac Merge pull request \fI\%#48331\fP from rallytime/bp\-48215
  173213. .INDENT 2.0
  173214. .IP \(bu 2
  173215. 9d6ba3e247 Set jobs to pending when they come in
  173216. .IP \(bu 2
  173217. 727d2b4ffe Use proper creds with githubNotify
  173218. .IP \(bu 2
  173219. d355861c5c Test using different credentials
  173220. .UNINDENT
  173221. .IP \(bu 2
  173222. ab05e00d8c Merge pull request \fI\%#48332\fP from rallytime/bp\-48321
  173223. .INDENT 2.0
  173224. .IP \(bu 2
  173225. d72af6ab4e Jenkins needs the / to get the directory
  173226. .UNINDENT
  173227. .IP \(bu 2
  173228. 21ed5b97ce Merge pull request \fI\%#48295\fP from rallytime/bp\-48193
  173229. .INDENT 2.0
  173230. .IP \(bu 2
  173231. 352fe33fd6 Separate set_result() to a new line apart from Future() call
  173232. .IP \(bu 2
  173233. c0180ff33d Properly configure syndic in test case
  173234. .IP \(bu 2
  173235. d0a98534a9 Properly wait on returns in saltnado
  173236. .UNINDENT
  173237. .IP \(bu 2
  173238. 9aa4687ab9 Merge pull request \fI\%#48117\fP from twangboy/fix_48026
  173239. .INDENT 2.0
  173240. .IP \(bu 2
  173241. dd37f8fbc2 Disable services that are set to manual
  173242. .UNINDENT
  173243. .IP \(bu 2
  173244. caf630487c Merge pull request \fI\%#48207\fP from rallytime/bp\-48189
  173245. .INDENT 2.0
  173246. .IP \(bu 2
  173247. e9d09e0375 Use old is_windows utils path on 2017.7
  173248. .IP \(bu 2
  173249. b965d6c9b3 If pip binary is passed to bin_env, use that pip binary
  173250. .UNINDENT
  173251. .IP \(bu 2
  173252. 06a927b2aa Merge pull request \fI\%#48293\fP from rallytime/bp\-47453
  173253. .INDENT 2.0
  173254. .IP \(bu 2
  173255. e96ab6778e dont reset system locale when running rabbitmqctl commands
  173256. .UNINDENT
  173257. .UNINDENT
  173258. .IP \(bu 2
  173259. \fBISSUE\fP \fI\%#45939\fP: (\fI\%andygabby\fP) user.present with hash_password: True detects change on every state.apply/highstate (refs: \fI\%#47147\fP)
  173260. .IP \(bu 2
  173261. \fBPR\fP \fI\%#47147\fP: (\fI\%eliasp\fP) states.user.present: Make usage of \fIhash_password\fP idempotent
  173262. @ \fI2018\-06\-30 13:29:27 UTC\fP
  173263. .INDENT 2.0
  173264. .IP \(bu 2
  173265. 9b364e25cf Merge pull request \fI\%#47147\fP from eliasp/2018.3\-issue\-45939\-shadow\-hash\-salt
  173266. .IP \(bu 2
  173267. dd3be1d76e Add warning log message when using MD5 for hashing shadow passwords
  173268. .IP \(bu 2
  173269. 5451ab6b7a states.user.present: Make usage of \fIhash_password\fP idempotent
  173270. .UNINDENT
  173271. .IP \(bu 2
  173272. \fBPR\fP \fI\%#48297\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173273. @ \fI2018\-06\-30 12:57:35 UTC\fP
  173274. .INDENT 2.0
  173275. .IP \(bu 2
  173276. 89857ea8b9 Merge pull request \fI\%#48297\fP from rallytime/merge\-2018.3
  173277. .IP \(bu 2
  173278. 9498618418 Use \fIsaltenv\fP opts instead of \fIenvironment\fP
  173279. .IP \(bu 2
  173280. 1c8bd35f28 Update old utils paths to use new utils paths
  173281. .IP \(bu 2
  173282. c7bb8a50b0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173283. .INDENT 2.0
  173284. .IP \(bu 2
  173285. 95ef006e00 Merge pull request \fI\%#48219\fP from zer0def/lxc\-bootstrap\-fixes
  173286. .INDENT 2.0
  173287. .IP \(bu 2
  173288. c77058560b Merge branch \(aq2017.7\(aq into lxc\-bootstrap\-fixes
  173289. .IP \(bu 2
  173290. d63cf3f072 Fixes another case of legacy configuration key usage warning getting in the way of changing container\(aqs state.
  173291. .UNINDENT
  173292. .IP \(bu 2
  173293. 3327181507 Merge pull request \fI\%#48234\fP from dwoz/thin_dir
  173294. .INDENT 2.0
  173295. .IP \(bu 2
  173296. 70c603451b Fix py2 thin dir issues
  173297. .UNINDENT
  173298. .IP \(bu 2
  173299. 83d7d286c4 Merge pull request \fI\%#48080\fP from lusche/2017.7
  173300. .INDENT 2.0
  173301. .IP \(bu 2
  173302. 917dc985fc \fI\%#47984\fP remove the line completly
  173303. .IP \(bu 2
  173304. ba12ee947b Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into 2017.7
  173305. .IP \(bu 2
  173306. dfb13d5051 Bugfix \fI\%#47984\fP messed up cert serial
  173307. .UNINDENT
  173308. .IP \(bu 2
  173309. bccb4dcd46 Merge pull request \fI\%#48232\fP from gtmanfred/cloud
  173310. .INDENT 2.0
  173311. .IP \(bu 2
  173312. d108112e1a do not expand kwargs for cloud.action
  173313. .UNINDENT
  173314. .IP \(bu 2
  173315. 056f43f663 Merge pull request \fI\%#48238\fP from mirceaulinic/fix\-sdb\-cache
  173316. .INDENT 2.0
  173317. .IP \(bu 2
  173318. 51e5fbfa1d SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  173319. .UNINDENT
  173320. .IP \(bu 2
  173321. 731ec0a11a Merge pull request \fI\%#48037\fP from terminalmage/fix\-custom\-types\-sync\-docs
  173322. .INDENT 2.0
  173323. .IP \(bu 2
  173324. 052ae83c4b Update versionchanged
  173325. .IP \(bu 2
  173326. 8b1bd0eda2 Update test to reflect changed argument name
  173327. .IP \(bu 2
  173328. 5e75936198 Change 2018.3.2 to 2018.3.3
  173329. .IP \(bu 2
  173330. c53ad603fc Rename sync \-> sync_mods per review suggestion
  173331. .IP \(bu 2
  173332. e4d67c5fd8 Update docs to include references to new "sync" argument
  173333. .IP \(bu 2
  173334. cb8e6f9fb8 Remove redundant mocking
  173335. .IP \(bu 2
  173336. bc3ad795e9 Add test for sync argument to state.sls
  173337. .IP \(bu 2
  173338. f81ccd1fdd Add sync option to state.apply/state.sls
  173339. .IP \(bu 2
  173340. 8289b07e24 Fix documentation on when custom types are synced
  173341. .UNINDENT
  173342. .IP \(bu 2
  173343. 0bae927048 Merge pull request \fI\%#48249\fP from rallytime/2017.7.7\-release\-notes\-update
  173344. .INDENT 2.0
  173345. .IP \(bu 2
  173346. 36032c8ee7 Update release notes for 2017.7.7
  173347. .UNINDENT
  173348. .IP \(bu 2
  173349. 8e06471817 Merge pull request \fI\%#48242\fP from asnell/asnell\-patch\-1
  173350. .INDENT 2.0
  173351. .IP \(bu 2
  173352. f66bf60073 Add sample list data via command line pillar
  173353. .UNINDENT
  173354. .UNINDENT
  173355. .UNINDENT
  173356. .IP \(bu 2
  173357. \fBPR\fP \fI\%#48364\fP: (\fI\%dubb\-b\fP) Changing debug to info for logging
  173358. @ \fI2018\-06\-28 20:48:24 UTC\fP
  173359. .INDENT 2.0
  173360. .IP \(bu 2
  173361. c5746deb5f Merge pull request \fI\%#48364\fP from dubb\-b/2018.3
  173362. .IP \(bu 2
  173363. d8260b6628 Changing debug to info for logging
  173364. .UNINDENT
  173365. .IP \(bu 2
  173366. \fBPR\fP \fI\%#48354\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.2 to 2018.3
  173367. @ \fI2018\-06\-28 20:26:31 UTC\fP
  173368. .INDENT 2.0
  173369. .IP \(bu 2
  173370. 0202493b60 Merge pull request \fI\%#48354\fP from rallytime/merge\-2018.3.2\-to\-2018.3
  173371. .IP \(bu 2
  173372. fface7cc74 Merge branch \(aq2018.3.2\(aq into \(aq2018.3\(aq
  173373. .UNINDENT
  173374. .IP \(bu 2
  173375. \fBPR\fP \fI\%#48347\fP: (\fI\%dwoz\fP) Fixes fileserver maintenance process on Windows
  173376. @ \fI2018\-06\-28 13:17:42 UTC\fP
  173377. .INDENT 2.0
  173378. .IP \(bu 2
  173379. bbabbbf76b Merge pull request \fI\%#48347\fP from dwoz/sigfix
  173380. .IP \(bu 2
  173381. ccdff5029f Remove unneeded attribute
  173382. .INDENT 2.0
  173383. .INDENT 3.5
  173384. .INDENT 0.0
  173385. .IP \(bu 2
  173386. e8362adf71 fopen does not support encoding
  173387. .IP \(bu 2
  173388. 487161ba8f Fix file encoding on windows
  173389. .IP \(bu 2
  173390. fc760685ee Fix multiple git module tests
  173391. .UNINDENT
  173392. .UNINDENT
  173393. .UNINDENT
  173394. .UNINDENT
  173395. .IP \(bu 2
  173396. \fBPR\fP \fI\%#47975\fP: (\fI\%terminalmage\fP) Add a new git.cloned state
  173397. @ \fI2018\-06\-27 20:53:42 UTC\fP
  173398. .INDENT 2.0
  173399. .IP \(bu 2
  173400. 67303d7901 Merge pull request \fI\%#47975\fP from terminalmage/issue47937
  173401. .IP \(bu 2
  173402. 34b24bb7fa Merge branch \(aq2018.3\(aq into issue47937
  173403. .UNINDENT
  173404. .IP \(bu 2
  173405. \fBPR\fP \fI\%#48323\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  173406. @ \fI2018\-06\-27 13:44:58 UTC\fP
  173407. .INDENT 2.0
  173408. .IP \(bu 2
  173409. 5b8d55428e Merge pull request \fI\%#48323\fP from Ch3LL/update_version_doc_2018.3
  173410. .IP \(bu 2
  173411. b4548aca56 Update release versions for the 2018.3 branch
  173412. .UNINDENT
  173413. .IP \(bu 2
  173414. \fBPR\fP \fI\%#48326\fP: (\fI\%Ch3LL\fP) Remove In Progress Warning for 2018.3.2 Release
  173415. @ \fI2018\-06\-27 13:43:16 UTC\fP
  173416. .INDENT 2.0
  173417. .IP \(bu 2
  173418. 7cf403e313 Merge pull request \fI\%#48326\fP from Ch3LL/rn_remove_in_prog
  173419. .IP \(bu 2
  173420. dfce1ad5ed Remove In Progress Warning for 2018.3.2 Release
  173421. .UNINDENT
  173422. .IP \(bu 2
  173423. \fBPR\fP \fI\%#48301\fP: (\fI\%terminalmage\fP) Fix typos in new mock_open docs
  173424. @ \fI2018\-06\-25 19:08:14 UTC\fP
  173425. .INDENT 2.0
  173426. .IP \(bu 2
  173427. 60ffad5126 Merge pull request \fI\%#48301\fP from terminalmage/docs
  173428. .IP \(bu 2
  173429. 6c33345f05 Fix typos in new mock_open docs
  173430. .UNINDENT
  173431. .IP \(bu 2
  173432. \fBPR\fP \fI\%#48292\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48288\fP to 2018.3
  173433. @ \fI2018\-06\-25 19:07:11 UTC\fP
  173434. .INDENT 2.0
  173435. .IP \(bu 2
  173436. \fBPR\fP \fI\%#48288\fP: (\fI\%rmarchei\fP) fix lsattr.get in file.check_perms (refs: \fI\%#48292\fP)
  173437. .IP \(bu 2
  173438. 4760f87153 Merge pull request \fI\%#48292\fP from rallytime/bp\-48288
  173439. .IP \(bu 2
  173440. d6620573bb fix lsattr.get in file.check_perms
  173441. .UNINDENT
  173442. .IP \(bu 2
  173443. \fBPR\fP \fI\%#48296\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48258\fP to 2018.3
  173444. @ \fI2018\-06\-25 19:04:41 UTC\fP
  173445. .INDENT 2.0
  173446. .IP \(bu 2
  173447. \fBPR\fP \fI\%#48258\fP: (\fI\%nullify005\fP) preserve tuples for ldap modification operations (refs: \fI\%#48296\fP)
  173448. .IP \(bu 2
  173449. 27207fc510 Merge pull request \fI\%#48296\fP from rallytime/bp\-48258
  173450. .IP \(bu 2
  173451. 8b7f36f264 preserve tuples for ldap modification operations
  173452. .UNINDENT
  173453. .IP \(bu 2
  173454. \fBISSUE\fP \fI\%#48204\fP: (\fI\%zerthimon\fP) State mysql_user.present Exception with mysql 8.0.11 (refs: \fI\%#48275\fP, \fI\%#48228\fP)
  173455. .IP \(bu 2
  173456. \fBPR\fP \fI\%#48275\fP: (\fI\%garethgreenaway\fP) [2018.3] Follow up fix to MySQL user for password management
  173457. @ \fI2018\-06\-25 13:23:35 UTC\fP
  173458. .INDENT 2.0
  173459. .IP \(bu 2
  173460. d5265da945 Merge pull request \fI\%#48275\fP from garethgreenaway/mysql_fix_followup
  173461. .IP \(bu 2
  173462. bb024b9115 Removing unnecessary code.
  173463. .IP \(bu 2
  173464. 8b542e1745 With MySQL versions 8.0.11 and beyond, since the PASSWORD function has been removed we need to hash the password string before comparing when checking if the user exists.
  173465. .UNINDENT
  173466. .IP \(bu 2
  173467. \fBPR\fP \fI\%#48286\fP: (\fI\%terminalmage\fP) Don\(aqt load the grains again when printing them via salt\-call \-g
  173468. @ \fI2018\-06\-25 13:19:18 UTC\fP
  173469. .INDENT 2.0
  173470. .IP \(bu 2
  173471. 1f306525a7 Merge pull request \fI\%#48286\fP from terminalmage/caller\-print_grains
  173472. .IP \(bu 2
  173473. caa62c051f Don\(aqt load the grains again when printing them via salt\-call \-g
  173474. .UNINDENT
  173475. .IP \(bu 2
  173476. \fBPR\fP \fI\%#48279\fP: (\fI\%terminalmage\fP) Add documentation/further enhancements to rewritten mock_open
  173477. @ \fI2018\-06\-25 13:12:30 UTC\fP
  173478. .INDENT 2.0
  173479. .IP \(bu 2
  173480. 27a0e95174 Merge pull request \fI\%#48279\fP from terminalmage/mock_open\-docs
  173481. .IP \(bu 2
  173482. 65c575ae9c Fix spelling error
  173483. .IP \(bu 2
  173484. 830a624ce8 Ignore IOError when tearing down filehandles not opened for reading
  173485. .IP \(bu 2
  173486. 3b6356f4b0 Raise TypeError when trying to read from filehandles not opened for reading
  173487. .IP \(bu 2
  173488. 09aae0c82b Add more examples and information on strict string types
  173489. .IP \(bu 2
  173490. 8c069d105d Add some mock_open docs
  173491. .IP \(bu 2
  173492. a13d1fe1a0 Update mock_open usage to reflect read_data type enforcement
  173493. .IP \(bu 2
  173494. 374a8ce31f Add more mock_open tests
  173495. .IP \(bu 2
  173496. 0f06adb008 Improve code\-reuse in mock_open tests
  173497. .IP \(bu 2
  173498. 0e8c83bac6 2 MockFH enhancements:
  173499. .UNINDENT
  173500. .IP \(bu 2
  173501. \fBISSUE\fP \fI\%#48141\fP: (\fI\%zerthimon\fP) salt\-api request causes exception (refs: \fI\%#48236\fP)
  173502. .IP \(bu 2
  173503. \fBPR\fP \fI\%#48236\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to cmd_batch
  173504. @ \fI2018\-06\-25 12:58:49 UTC\fP
  173505. .INDENT 2.0
  173506. .IP \(bu 2
  173507. 6ee856631b Merge pull request \fI\%#48236\fP from garethgreenaway/48141_salt_api_local_batch
  173508. .IP \(bu 2
  173509. aea4f7ae14 Fixing test_local_batch
  173510. .IP \(bu 2
  173511. ce3e1eaf2c Removing sort.
  173512. .IP \(bu 2
  173513. 83accf3b20 Fixing test_local_batch
  173514. .IP \(bu 2
  173515. ff14b99752 Fixing a typo in the comment.
  173516. .IP \(bu 2
  173517. 85cef126e0 Adding note about why salt.utils.versions is being re\-imported. Adding a test for local_batch.
  173518. .IP \(bu 2
  173519. 808805fd3d Fixing cmd_batch to work correctly when called via salt\-api.
  173520. .UNINDENT
  173521. .IP \(bu 2
  173522. \fBISSUE\fP \fI\%#48204\fP: (\fI\%zerthimon\fP) State mysql_user.present Exception with mysql 8.0.11 (refs: \fI\%#48275\fP, \fI\%#48228\fP)
  173523. .IP \(bu 2
  173524. \fBPR\fP \fI\%#48228\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql module
  173525. @ \fI2018\-06\-22 15:44:00 UTC\fP
  173526. .INDENT 2.0
  173527. .IP \(bu 2
  173528. 09b036c26e Merge pull request \fI\%#48228\fP from garethgreenaway/48204_mysql_user_password_exception
  173529. .IP \(bu 2
  173530. 1b2ffcef1d Updating the mysql module to not use the PASSWORD when MySQL is version 8.0.11 or higher, where the PASSWORD function has been removed.
  173531. .UNINDENT
  173532. .IP \(bu 2
  173533. \fBPR\fP \fI\%#48252\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173534. @ \fI2018\-06\-22 15:13:42 UTC\fP
  173535. .INDENT 2.0
  173536. .IP \(bu 2
  173537. 67cb5563ef Merge pull request \fI\%#48252\fP from rallytime/merge\-2018.3
  173538. .IP \(bu 2
  173539. 84ec655c24 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173540. .INDENT 2.0
  173541. .IP \(bu 2
  173542. a172f9de84 Merge pull request \fI\%#48226\fP from terminalmage/fix\-alias\-docstring
  173543. .INDENT 2.0
  173544. .IP \(bu 2
  173545. fb237272f5 Don\(aqt display "None" in SaltInvocationError when Salt installed using \-OO
  173546. .IP \(bu 2
  173547. 90c90f5d5c Fix docstring construction in alias_function when Salt installed using \-OO
  173548. .UNINDENT
  173549. .IP \(bu 2
  173550. c6a0207cae Merge pull request \fI\%#48227\fP from Ch3LL/fix_win_tests
  173551. .INDENT 2.0
  173552. .IP \(bu 2
  173553. 236773e3e9 Skip new sha256 files on repo.saltstack.com/windows
  173554. .UNINDENT
  173555. .IP \(bu 2
  173556. 6929423528 Merge pull request \fI\%#48131\fP from bowmanjd\-lms/fix\-apk\-python3
  173557. .INDENT 2.0
  173558. .IP \(bu 2
  173559. f5d2835299 Merge branch \(aq2017.7\(aq into fix\-apk\-python3
  173560. .IP \(bu 2
  173561. 022f9cba50 Fix py3\-incompatible dict.keys()[x] call in apk.py
  173562. .UNINDENT
  173563. .IP \(bu 2
  173564. 868c17377f Merge pull request \fI\%#48185\fP from DSRCorporation/bugs/47901_future_done_exception
  173565. .INDENT 2.0
  173566. .IP \(bu 2
  173567. 5f63316311 Merge branch \(aq2017.7\(aq into bugs/47901_future_done_exception
  173568. .IP \(bu 2
  173569. 9f2dbf94cb Don\(aqt call .exception() on future unless it\(aqs done.
  173570. .UNINDENT
  173571. .IP \(bu 2
  173572. 80a3e37c2e Merge pull request \fI\%#48192\fP from twangboy/fix_pip_version_2017.7
  173573. .INDENT 2.0
  173574. .IP \(bu 2
  173575. 59ae2cc5fc Use \-\-disable\-pip\-version\-check for build_env_#.ps1
  173576. .UNINDENT
  173577. .IP \(bu 2
  173578. 12e2b8882a Merge pull request \fI\%#48201\fP from zer0def/lxc\-bootstrap\-fixes
  173579. .INDENT 2.0
  173580. .IP \(bu 2
  173581. 6f6d3d40d4 Take lxcpath into account when bootstrapping new containers. Version comparison fixes.
  173582. .UNINDENT
  173583. .IP \(bu 2
  173584. e079fce38d Merge pull request \fI\%#48190\fP from terminalmage/fix\-vfstab\-test
  173585. .INDENT 2.0
  173586. .IP \(bu 2
  173587. 8d70d14362 Fix mount.vfstab unit test
  173588. .UNINDENT
  173589. .IP \(bu 2
  173590. c8b9cec986 Merge pull request \fI\%#48115\fP from KaiSforza/pr\-lint\-2017
  173591. .INDENT 2.0
  173592. .IP \(bu 2
  173593. 494727ab39 Add docs, kitchen tests
  173594. .IP \(bu 2
  173595. 317023bb20 Move .jenkins to .ci for future
  173596. .IP \(bu 2
  173597. dedc313cee Make it parallel so we don\(aqt fail right away
  173598. .IP \(bu 2
  173599. cd13426726 Add a .jenkins file to run pylint
  173600. .UNINDENT
  173601. .IP \(bu 2
  173602. fc1752b721 Merge pull request \fI\%#48174\fP from terminalmage/docker\-update\-mine
  173603. .INDENT 2.0
  173604. .IP \(bu 2
  173605. 9af09e0127 Mock config.get due to changes in _refresh_mine_cache
  173606. .IP \(bu 2
  173607. c5802ad465 Fix the version number in versionadded
  173608. .IP \(bu 2
  173609. d403ae58d7 Add unit test for docker.update_mine
  173610. .IP \(bu 2
  173611. 44c275698a Actually it\(aqs more than just add/remove that updates the mine
  173612. .IP \(bu 2
  173613. 0cb6996b07 Add release notes mention of docker.update_mine config option
  173614. .IP \(bu 2
  173615. de05097b20 Add docs for new config option
  173616. .IP \(bu 2
  173617. 04c55a9178 Add note in mine.get_docker docstring about new config item
  173618. .IP \(bu 2
  173619. 4e456255c0 Allow mine update to be disabled using new config option
  173620. .UNINDENT
  173621. .UNINDENT
  173622. .UNINDENT
  173623. .IP \(bu 2
  173624. \fBISSUE\fP \fI\%#48029\fP: (\fI\%vinian\fP) syndic failed to auth when restart salt\-master on syndic master (refs: \fI\%#48034\fP)
  173625. .IP \(bu 2
  173626. \fBPR\fP \fI\%#48034\fP: (\fI\%vinian\fP) restart salt\-syndic when salt\-master restart
  173627. @ \fI2018\-06\-21 20:12:37 UTC\fP
  173628. .INDENT 2.0
  173629. .IP \(bu 2
  173630. 9f0bd90c5b Merge pull request \fI\%#48034\fP from vinian/restart\-salt\-syndic\-when\-salt\-master\-retart
  173631. .IP \(bu 2
  173632. f7652d8c8b restart salt\-syndic when salt\-master restart
  173633. .UNINDENT
  173634. .IP \(bu 2
  173635. \fBPR\fP \fI\%#48250\fP: (\fI\%rallytime\fP) Update release notes for 2018.3.2
  173636. @ \fI2018\-06\-21 18:30:21 UTC\fP
  173637. .INDENT 2.0
  173638. .IP \(bu 2
  173639. ab2ba942ad Merge pull request \fI\%#48250\fP from rallytime/2018.3.2\-release\-notes\-update
  173640. .IP \(bu 2
  173641. 19c104b6cd Update release notes for 2018.3.2
  173642. .UNINDENT
  173643. .IP \(bu 2
  173644. \fBPR\fP \fI\%#48166\fP: (\fI\%terminalmage\fP) Add trace logging and optimize file handling in grains.core.os_data
  173645. @ \fI2018\-06\-21 18:02:33 UTC\fP
  173646. .INDENT 2.0
  173647. .IP \(bu 2
  173648. 51928ff050 Merge pull request \fI\%#48166\fP from terminalmage/salt\-jenkins\-1000
  173649. .IP \(bu 2
  173650. b73df0ab00 Change call_args to call.args to reflect changes to MockFH
  173651. .IP \(bu 2
  173652. 0c2cc07704 remove unused import
  173653. .IP \(bu 2
  173654. b8c0a55cf3 Add test for tell()
  173655. .IP \(bu 2
  173656. 1cbe89feee Implement tell() for filehandle iteration
  173657. .IP \(bu 2
  173658. efb8f49d42 Add tests for read_data being a list, and containing unicode or bytestrings
  173659. .IP \(bu 2
  173660. 38df912fa6 Operate on a copy of the read_data
  173661. .IP \(bu 2
  173662. 71eeae1240 Update mount module unit tests to reflect changes in mock_open
  173663. .IP \(bu 2
  173664. 16c414e120 Update nfs3 module tests to reflect changes in mock_open
  173665. .IP \(bu 2
  173666. b7eab25d6c Update grub_legacy module tests to reflect changes in mock_open
  173667. .IP \(bu 2
  173668. cc002b8fd7 Update new network unit test to reflect changes in mock_open
  173669. .IP \(bu 2
  173670. a8f11594f1 Update new core grains tests to reflect changes in mock_open
  173671. .IP \(bu 2
  173672. 84ce18d956 Update crypt unit tests to reflect changes in mock_open
  173673. .IP \(bu 2
  173674. 67c036dc2d Add MockCall to tests.support.mock to track calls
  173675. .IP \(bu 2
  173676. 2556a1e13d Remove unused import
  173677. .IP \(bu 2
  173678. fd9d700157 Add additional docs to MockOpen class
  173679. .IP \(bu 2
  173680. 6acb4c83ec Update newly added test to reflect renaming of handles attribute
  173681. .IP \(bu 2
  173682. 77e5288d42 Update fibre_channel grains tests to reflect changes in mock_open
  173683. .IP \(bu 2
  173684. ed40371a06 Update timezone module tests to reflect changes in mock_open
  173685. .IP \(bu 2
  173686. fc0aa9934f Track call_count in MockOpen
  173687. .IP \(bu 2
  173688. 2598d2453a Update snapper module tests to reflect changes in mock_open
  173689. .IP \(bu 2
  173690. 51b3faa7b4 Add support for passing multiple strings for a given match in read_data
  173691. .IP \(bu 2
  173692. 55487c175c Fix mock_open call to use new multifile syntax
  173693. .IP \(bu 2
  173694. 7f516ef73a Update puppet module tests to reflect changes in mock_open
  173695. .IP \(bu 2
  173696. 33a97c4ecc Update btmp beacon tests to reflect changes in mock_open
  173697. .IP \(bu 2
  173698. bc027cfa94 Update wtmp beacon tests to reflect changes in mock_open
  173699. .IP \(bu 2
  173700. f5823252bb Track call args/kwargs in MockFH
  173701. .IP \(bu 2
  173702. 335591ca90 Mock the seek function in MockFH
  173703. .IP \(bu 2
  173704. 7eb4b1ae1c Update cp.push test to reflect changes to mock_open
  173705. .IP \(bu 2
  173706. 2be19cfa89 Report correct location when reading using explicit size and EOF reached
  173707. .IP \(bu 2
  173708. 5ec95ba5ca On second thought, actually implement tell()
  173709. .IP \(bu 2
  173710. 19022eb9e5 Add tell mock to MockFH
  173711. .IP \(bu 2
  173712. 4b5a393445 Update junos tests to reflect changes to mock_open
  173713. .IP \(bu 2
  173714. 278a222b09 Update dnsutil tests to reflect changes to mock_open
  173715. .IP \(bu 2
  173716. 4e67955572 Replace the rest of mock_open with a class
  173717. .IP \(bu 2
  173718. 75307a47c5 Update linux_sysctl tests to reflect changes to mock_open
  173719. .IP \(bu 2
  173720. 05c68fd5d9 Use explicit config file and fix remaining mac_sysctl tests
  173721. .IP \(bu 2
  173722. 836fde9a30 Allow Python 2 to accept an exception as read_data
  173723. .IP \(bu 2
  173724. 543385fd02 Add writelines_calls property
  173725. .IP \(bu 2
  173726. 42fa842456 Make read funcs mocks so their calls can be tracked
  173727. .IP \(bu 2
  173728. 675f03c58f Update mac_sysctl tests to reflect new mock_open behavior
  173729. .IP \(bu 2
  173730. 3d2c41d395 Update file module tests to reflect new mock_open behavior
  173731. .IP \(bu 2
  173732. b9200dbc3e add a dict containing the handles to the mock_open return object
  173733. .IP \(bu 2
  173734. 852ba4b982 Add mocked close() function to MockFH
  173735. .IP \(bu 2
  173736. f6b46bc608 Remove unused import
  173737. .IP \(bu 2
  173738. 20f60a769b Add blank lines to appease linter
  173739. .IP \(bu 2
  173740. 48d7cfa6d3 Add multifile tests for mock_open
  173741. .IP \(bu 2
  173742. 1861e9b944 mock_open: rewrite multi\-file support
  173743. .IP \(bu 2
  173744. 5e6b539770 Use function for empty string
  173745. .IP \(bu 2
  173746. cb2620ad2b Update core grains tests to reflect EAFP changes
  173747. .IP \(bu 2
  173748. 5d09b178d7 Separate mocked file contents per filename, not glob
  173749. .IP \(bu 2
  173750. 875102f538 Modify mock_open to support multiple file paths
  173751. .IP \(bu 2
  173752. 096ace74df Move lsb_release parsing into its own function
  173753. .IP \(bu 2
  173754. 6a0828beed Add unit tests for mock_open
  173755. .IP \(bu 2
  173756. 8ba6cadac7 More mock_open bugfixes
  173757. .IP \(bu 2
  173758. 329dea218e Add a bunch of logging for linux os_data core grains
  173759. .IP \(bu 2
  173760. 2c64b270df Add timestamp to the minion\(aqs log_fmt_console
  173761. .UNINDENT
  173762. .IP \(bu 2
  173763. \fBPR\fP \fI\%#48216\fP: (\fI\%Ch3LL\fP) Fix UnicodeDecodeError when reading file to determine virtual grain (refs: \fI\%#48440\fP)
  173764. @ \fI2018\-06\-20 16:53:41 UTC\fP
  173765. .INDENT 2.0
  173766. .IP \(bu 2
  173767. 6072d1ef9c Merge pull request \fI\%#48216\fP from Ch3LL/grains_unicode
  173768. .IP \(bu 2
  173769. c4334f3f14 Fix UnicodeDecodeError when reading file to determine virtual grain
  173770. .UNINDENT
  173771. .IP \(bu 2
  173772. \fBPR\fP \fI\%#48212\fP: (\fI\%Ch3LL\fP) Fix python3 ec2 salt\-cloud TypeError when installing salt (refs: \fI\%#49041\fP)
  173773. @ \fI2018\-06\-20 16:00:21 UTC\fP
  173774. .INDENT 2.0
  173775. .IP \(bu 2
  173776. 77a75ebdcf Merge pull request \fI\%#48212\fP from Ch3LL/py3_ec2
  173777. .IP \(bu 2
  173778. b0d75f459a Fix python3 ec2 salt\-cloud TypeError when installing salt
  173779. .UNINDENT
  173780. .IP \(bu 2
  173781. \fBISSUE\fP \fI\%#47984\fP: (\fI\%jeduardo\fP) x509 module/state writing wrong certificate serial number to CRL (refs: \fI\%#47986\fP, \fI\%#48080\fP)
  173782. .IP \(bu 2
  173783. \fBPR\fP \fI\%#48209\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47986\fP to 2018.3
  173784. @ \fI2018\-06\-20 13:44:17 UTC\fP
  173785. .INDENT 2.0
  173786. .IP \(bu 2
  173787. \fBPR\fP \fI\%#48080\fP: (\fI\%lusche\fP) Bugfix \fI\%#47984\fP messed up cert serial (refs: \fI\%#48209\fP)
  173788. .IP \(bu 2
  173789. \fBPR\fP \fI\%#47986\fP: (\fI\%jeduardo\fP) Fix serial number writing into CRL files with the x509 module (refs: \fI\%#48209\fP)
  173790. .IP \(bu 2
  173791. de614d31f5 Merge pull request \fI\%#48209\fP from rallytime/bp\-47986
  173792. .IP \(bu 2
  173793. f4b3bd5d2c Changed salt.utils.fopen to salt.utils.files.fopen
  173794. .IP \(bu 2
  173795. 8686872909 Fixed typos, removed repeated unit tests, and applied code fixes suggested by linter.
  173796. .IP \(bu 2
  173797. 382df48a72 Removed useless new line
  173798. .IP \(bu 2
  173799. 5aa99d14c4 Added unit tests for CRL creation and certificate revocation with CRL
  173800. .IP \(bu 2
  173801. cc12844922 Fixed a problem where the OpenSSL bindings refuse to consume unicode strings.
  173802. .IP \(bu 2
  173803. 399cf08860 Stopped converting the certificate hexadecimal serial number to an integer in order to avoid breaking CRLs.
  173804. .UNINDENT
  173805. .IP \(bu 2
  173806. \fBPR\fP \fI\%#48210\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  173807. @ \fI2018\-06\-20 13:43:19 UTC\fP
  173808. .INDENT 2.0
  173809. .IP \(bu 2
  173810. 1f88df6e89 Merge pull request \fI\%#48210\fP from rallytime/merge\-2018.3
  173811. .IP \(bu 2
  173812. dae65da256 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  173813. .UNINDENT
  173814. .IP \(bu 2
  173815. \fBPR\fP \fI\%#48186\fP: (\fI\%rallytime\fP) Add autodoc module for saltcheck.py
  173816. @ \fI2018\-06\-19 19:03:55 UTC\fP
  173817. .INDENT 2.0
  173818. .IP \(bu 2
  173819. 5b4897f050 Merge pull request \fI\%#48186\fP from rallytime/saltcheck\-docs
  173820. .IP \(bu 2
  173821. 314fc2d889 Clean up some doc references
  173822. .IP \(bu 2
  173823. da7603d879 Add autodoc module for saltcheck.py
  173824. .UNINDENT
  173825. .IP \(bu 2
  173826. \fBPR\fP \fI\%#48191\fP: (\fI\%twangboy\fP) Use the \-\-disable\-pip\-version\-check option
  173827. @ \fI2018\-06\-19 18:13:44 UTC\fP
  173828. .INDENT 2.0
  173829. .IP \(bu 2
  173830. 7274a33c80 Merge pull request \fI\%#48191\fP from twangboy/fix_pip_check
  173831. .IP \(bu 2
  173832. 5c00fce6bf Use the \-\-disable\-pip\-version\-check option
  173833. .UNINDENT
  173834. .IP \(bu 2
  173835. \fBISSUE\fP \fI\%#48122\fP: (\fI\%pasmon\fP) Salt minion 2017.7.6 disregards "bin_env" in pip state (refs: \fI\%#48189\fP)
  173836. .IP \(bu 2
  173837. \fBPR\fP \fI\%#48189\fP: (\fI\%gtmanfred\fP) If pip binary is passed to bin_env, use that pip binary (refs: \fI\%#48207\fP)
  173838. @ \fI2018\-06\-19 18:08:13 UTC\fP
  173839. .INDENT 2.0
  173840. .IP \(bu 2
  173841. 96f79b0674 Merge pull request \fI\%#48189\fP from gtmanfred/pip
  173842. .IP \(bu 2
  173843. 96c59f3d93 If pip binary is passed to bin_env, use that pip binary
  173844. .UNINDENT
  173845. .IP \(bu 2
  173846. \fBPR\fP \fI\%#48165\fP: (\fI\%terminalmage\fP) Fix regression with top_file_merging_strategy=same
  173847. @ \fI2018\-06\-19 18:03:07 UTC\fP
  173848. .INDENT 2.0
  173849. .IP \(bu 2
  173850. 71e385501b Merge pull request \fI\%#48165\fP from terminalmage/issue48144
  173851. .IP \(bu 2
  173852. 92ac2a2d6a Remove unused imports
  173853. .IP \(bu 2
  173854. 15a44d5dd4 Remove redundant top file merging tests
  173855. .IP \(bu 2
  173856. 12100d9bd3 Add more top file merging tests
  173857. .IP \(bu 2
  173858. 0ed686cb3f Add unit test for show_top with "same" merging strategy
  173859. .IP \(bu 2
  173860. 35e5492fb7 Revert 7058f10 / 3df6fa7
  173861. .UNINDENT
  173862. .IP \(bu 2
  173863. \fBISSUE\fP \fI\%#46806\fP: (\fI\%ezh\fP) Lack of debug messages on authentication fail. (refs: \fI\%#46807\fP, \fI\%#48179\fP)
  173864. .IP \(bu 2
  173865. \fBPR\fP \fI\%#48179\fP: (\fI\%ezh\fP) 2018.3 auth
  173866. @ \fI2018\-06\-19 14:16:40 UTC\fP
  173867. .INDENT 2.0
  173868. .IP \(bu 2
  173869. \fBPR\fP \fI\%#46807\fP: (\fI\%ezh\fP) Reduce initial authentication setup complexity (refs: \fI\%#48179\fP)
  173870. .IP \(bu 2
  173871. 2a8e1c6539 Merge pull request \fI\%#48179\fP from ezh/2018.3\-auth
  173872. .IP \(bu 2
  173873. 9ed2d2ec55 Fix integration.shell.test_key and integration.shell.test_runner
  173874. .IP \(bu 2
  173875. 26a6f79730 Fix integration tests test_list_acc_wrong_eauth, test_salt_run_with_wrong_eauth
  173876. .IP \(bu 2
  173877. b84c4321c4 Add more verbose debug messages for auth subsystem
  173878. .UNINDENT
  173879. .IP \(bu 2
  173880. \fBPR\fP \fI\%#48188\fP: (\fI\%gtmanfred\fP) allow virtual aliases to be used for the driver name
  173881. @ \fI2018\-06\-18 21:49:16 UTC\fP
  173882. .INDENT 2.0
  173883. .IP \(bu 2
  173884. 0231008cf8 Merge pull request \fI\%#48188\fP from gtmanfred/2018.3
  173885. .IP \(bu 2
  173886. 45249d3e10 allow virtual aliases to be used for the driver name
  173887. .UNINDENT
  173888. .IP \(bu 2
  173889. \fBPR\fP \fI\%#48116\fP: (\fI\%KaiSforza\fP) Add jenkinsfiles to define tests in 2018
  173890. @ \fI2018\-06\-18 21:27:10 UTC\fP
  173891. .INDENT 2.0
  173892. .IP \(bu 2
  173893. 0f95238dca Merge pull request \fI\%#48116\fP from KaiSforza/pr\-lint\-2018
  173894. .IP \(bu 2
  173895. f158bed5bd Add docs, kitchen tests
  173896. .IP \(bu 2
  173897. 904a70c187 Move .jenkins to .ci for future
  173898. .IP \(bu 2
  173899. 365fa0e51f Make it parallel so we don\(aqt fail right away
  173900. .IP \(bu 2
  173901. e594979745 Add a .jenkins file to run pylint
  173902. .UNINDENT
  173903. .IP \(bu 2
  173904. \fBISSUE\fP \fI\%#48146\fP: (\fI\%rmarchei\fP) mysql_query.run: exception on 2018.3 (refs: \fI\%#48164\fP)
  173905. .IP \(bu 2
  173906. \fBPR\fP \fI\%#48164\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql state
  173907. @ \fI2018\-06\-18 13:10:20 UTC\fP
  173908. .INDENT 2.0
  173909. .IP \(bu 2
  173910. 60c9490bdc Merge pull request \fI\%#48164\fP from garethgreenaway/48146_mysql_output_to_file
  173911. .IP \(bu 2
  173912. a040643a82 Accounting for certain situations when the query result is not a string, but actually a dictionary.
  173913. .UNINDENT
  173914. .IP \(bu 2
  173915. \fBISSUE\fP \fI\%#48113\fP: (\fI\%gaetanquentin\fP) state file.line has error and erase file content completly, while with mode test=true it is ok (refs: \fI\%#48156\fP)
  173916. .IP \(bu 2
  173917. \fBPR\fP \fI\%#48156\fP: (\fI\%garethgreenaway\fP) [2018.3] Unicode fixes for file.line
  173918. @ \fI2018\-06\-17 19:34:08 UTC\fP
  173919. .INDENT 2.0
  173920. .IP \(bu 2
  173921. 85ebcbd3f2 Merge pull request \fI\%#48156\fP from garethgreenaway/48113_ensure_writing_strings_with_file_dot_line
  173922. .IP \(bu 2
  173923. 5a9ef0d1ae Unless we\(aqre using py2 and Windows, ensure we\(aqre writing out a string when using file.line.
  173924. .UNINDENT
  173925. .IP \(bu 2
  173926. \fBPR\fP \fI\%#48161\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  173927. @ \fI2018\-06\-17 19:33:29 UTC\fP
  173928. .INDENT 2.0
  173929. .IP \(bu 2
  173930. 33400e72db Merge pull request \fI\%#48161\fP from rallytime/merge\-2018.3
  173931. .IP \(bu 2
  173932. 0733fa1b02 Update utils path for which function to new path
  173933. .IP \(bu 2
  173934. 398cc78224 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  173935. .IP \(bu 2
  173936. df2a156338 Merge pull request \fI\%#48061\fP from garethgreenaway/port_47049_2017_7
  173937. .INDENT 2.0
  173938. .IP \(bu 2
  173939. 7c472fed51 Fixing failing test_set_hwclock_aix test.
  173940. .IP \(bu 2
  173941. ccb0acc958 Porting \fI\%#47049\fP to 2017.7.
  173942. .UNINDENT
  173943. .IP \(bu 2
  173944. 5ec3cf2dd4 Merge pull request \fI\%#48143\fP from Ch3LL/fix_long_job
  173945. .INDENT 2.0
  173946. .IP \(bu 2
  173947. 48b5d2e9d3 Add timeout argument to run_salt for ShellCase
  173948. .UNINDENT
  173949. .IP \(bu 2
  173950. e1e566d1f8 Merge pull request \fI\%#48135\fP from rallytime/release\-notes\-2017.7
  173951. .INDENT 2.0
  173952. .IP \(bu 2
  173953. 7a97f157b3 Add missing \fIv\fP for tag reference
  173954. .IP \(bu 2
  173955. 2f2b69ed37 Add "in progress" notation to 2017.7.7 release notes
  173956. .IP \(bu 2
  173957. 06a1151a63 Add release notes file for 2017.7.7
  173958. .IP \(bu 2
  173959. 885b2862ce Move 2017.7.7 release notes to 2017.7.8
  173960. .UNINDENT
  173961. .IP \(bu 2
  173962. ac9dabbfaa Merge pull request \fI\%#48105\fP from rallytime/merge\-2017.7
  173963. .INDENT 2.0
  173964. .IP \(bu 2
  173965. cdb45874de Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  173966. .INDENT 2.0
  173967. .IP \(bu 2
  173968. 16916d6bd2 Merge pull request \fI\%#47880\fP from gtmanfred/2017.7.6
  173969. .INDENT 2.0
  173970. .IP \(bu 2
  173971. 987ae6358b quote python_version in requirements.txt
  173972. .UNINDENT
  173973. .IP \(bu 2
  173974. 27670168ea Merge pull request \fI\%#47875\fP from rallytime/release\-notes\-dot\-six
  173975. .INDENT 2.0
  173976. .IP \(bu 2
  173977. 58dee4c829 Remove sentence about the release being in progress
  173978. .IP \(bu 2
  173979. b3dcb7330e Remove "in progress" too
  173980. .IP \(bu 2
  173981. 99e1df7823 Update 2017.7.6 release notes: remove "unreleased" text
  173982. .UNINDENT
  173983. .IP \(bu 2
  173984. 1f0bada07c Merge pull request \fI\%#47873\fP from gtmanfred/2017.7.6
  173985. .INDENT 2.0
  173986. .IP \(bu 2
  173987. a1c1b5b5cf allow tornado 5.0 to be installed only for python2
  173988. .UNINDENT
  173989. .UNINDENT
  173990. .UNINDENT
  173991. .IP \(bu 2
  173992. 2da56a69d9 Merge pull request \fI\%#48101\fP from rallytime/update\-doc\-refs\-2017.7
  173993. .INDENT 2.0
  173994. .IP \(bu 2
  173995. 7ba6f5fb36 Update 2017.7.7 reference to 2017.7.8
  173996. .UNINDENT
  173997. .IP \(bu 2
  173998. 5a0e3d46e7 Merge pull request \fI\%#48091\fP from terminalmage/fix\-file_roots\-monkeypatching
  173999. .INDENT 2.0
  174000. .IP \(bu 2
  174001. 6fe711ad76 Reverse monkeypatching after test_symlink_list finishes
  174002. .UNINDENT
  174003. .IP \(bu 2
  174004. 053b019a8f Merge pull request \fI\%#48088\fP from rallytime/update_version_doc_2017.7
  174005. .INDENT 2.0
  174006. .IP \(bu 2
  174007. 1b8d1c936b Remove "in progress" info for 2017.7.6 release notes
  174008. .IP \(bu 2
  174009. 9a0f4d190a Update release versions for the 2017.7 branch
  174010. .UNINDENT
  174011. .IP \(bu 2
  174012. d6d2c5ee18 Merge pull request \fI\%#48075\fP from garethgreenaway/48038_jobs_are_not_deduping_minion_side
  174013. .INDENT 2.0
  174014. .IP \(bu 2
  174015. c537b3275b Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  174016. .UNINDENT
  174017. .IP \(bu 2
  174018. aa33cc0b0c Merge pull request \fI\%#48071\fP from terminalmage/gitfs\-docs
  174019. .INDENT 2.0
  174020. .IP \(bu 2
  174021. 24545204b3 Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  174022. .UNINDENT
  174023. .IP \(bu 2
  174024. fb4ceacb88 Merge pull request \fI\%#48053\fP from rallytime/bp\-48040
  174025. .INDENT 2.0
  174026. .IP \(bu 2
  174027. 265b22b194 states/github.py fix for incorrect positional argument
  174028. .UNINDENT
  174029. .IP \(bu 2
  174030. f37dcaac6d Merge pull request \fI\%#48024\fP from gtmanfred/2017.7
  174031. .INDENT 2.0
  174032. .IP \(bu 2
  174033. 56b074ab27 allow specifying a different state to run on converge
  174034. .IP \(bu 2
  174035. cc9c4b4d5a add pytest coverage and xml junits
  174036. .UNINDENT
  174037. .UNINDENT
  174038. .IP \(bu 2
  174039. \fBISSUE\fP \fI\%#48145\fP: (\fI\%max\-arnold\fP) Failed to load ext_pillar saltclass: can only assign an iterable (refs: \fI\%#48155\fP)
  174040. .IP \(bu 2
  174041. \fBPR\fP \fI\%#48155\fP: (\fI\%max\-arnold\fP) Do not fail on empty saltclass classes (fix for \fI\%#48145\fP)
  174042. @ \fI2018\-06\-15 20:21:28 UTC\fP
  174043. .INDENT 2.0
  174044. .IP \(bu 2
  174045. 9aa9a83b10 Merge pull request \fI\%#48155\fP from max\-arnold/2018.3
  174046. .IP \(bu 2
  174047. 63ab02c648 Do not fail on empty saltclass classes declaration \fI\%#48145\fP
  174048. .IP \(bu 2
  174049. 3d4fcbe3aa Add test for issue \fI\%#48145\fP
  174050. .UNINDENT
  174051. .IP \(bu 2
  174052. \fBPR\fP \fI\%#48104\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_status\fP
  174053. @ \fI2018\-06\-15 17:05:34 UTC\fP
  174054. .INDENT 2.0
  174055. .IP \(bu 2
  174056. 152c09cc0c Merge pull request \fI\%#48104\fP from twangboy/fix_test_win_status
  174057. .IP \(bu 2
  174058. 1ec3f436ee Fix test_error_logged_if_process_get_owner_fails
  174059. .UNINDENT
  174060. .IP \(bu 2
  174061. \fBPR\fP \fI\%#48147\fP: (\fI\%brejoc\fP) Fix for sorting of multi\-version packages
  174062. @ \fI2018\-06\-15 17:03:18 UTC\fP
  174063. .INDENT 2.0
  174064. .IP \(bu 2
  174065. 8cf03110d4 Merge pull request \fI\%#48147\fP from brejoc/2018.3\-multi\-version\-fix
  174066. .IP \(bu 2
  174067. 90ed25447d Swtiching to salt.utils.versions like linter suggested
  174068. .IP \(bu 2
  174069. ed09574073 Fix for sorting of multi\-version packages (bsc#1097174 and bsc#1097413)
  174070. .UNINDENT
  174071. .IP \(bu 2
  174072. \fBPR\fP \fI\%#47956\fP: (\fI\%dmurphy18\fP) Improved support for mount on AIX
  174073. @ \fI2018\-06\-15 13:40:01 UTC\fP
  174074. .INDENT 2.0
  174075. .IP \(bu 2
  174076. 2edc5f5442 Merge pull request \fI\%#47956\fP from dmurphy18/aix_mount_support
  174077. .IP \(bu 2
  174078. f2a3e321db Improved support for mount on AIX
  174079. .UNINDENT
  174080. .IP \(bu 2
  174081. \fBISSUE\fP \fI\%#48012\fP: (\fI\%Timandes\fP) Found UnicodeDecodeError when trying to start Salt Master (refs: \fI\%#48081\fP)
  174082. .IP \(bu 2
  174083. \fBPR\fP \fI\%#48081\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError when parsing hosts file with non\-ascii
  174084. @ \fI2018\-06\-15 12:41:13 UTC\fP
  174085. .INDENT 2.0
  174086. .IP \(bu 2
  174087. c05c176782 Merge pull request \fI\%#48081\fP from terminalmage/issue48012
  174088. .IP \(bu 2
  174089. 8d2fb0bf25 Fix cp.push test
  174090. .IP \(bu 2
  174091. e230a7223f Fix definition of test data for wtmp/btmp beacon tests
  174092. .IP \(bu 2
  174093. 82874a8c10 Import six like we do everywhere else
  174094. .IP \(bu 2
  174095. 54f9a2ab54 Remove unused import
  174096. .IP \(bu 2
  174097. 767cc7e87f fix tabs
  174098. .IP \(bu 2
  174099. db19636f56 Get rid of additional newline append
  174100. .IP \(bu 2
  174101. 7427e192ba Fix more crappy mocking
  174102. .IP \(bu 2
  174103. 4eaa5789ce Fix crappy mocking
  174104. .IP \(bu 2
  174105. 248467edac Add regression test for _generate_minion_id()
  174106. .IP \(bu 2
  174107. 5e62d6d45f Fix UnicodeDecodeError when parsing hosts file with non\-ascii
  174108. .IP \(bu 2
  174109. e6a4744f85 Use errno instead of hard\-coding error 2
  174110. .IP \(bu 2
  174111. ff63f36932 Fixes / enhancements for mock_open
  174112. .UNINDENT
  174113. .IP \(bu 2
  174114. \fBPR\fP \fI\%#48133\fP: (\fI\%rallytime\fP) Updates the 2018.3.2 and 2018.3.3 release notes files
  174115. @ \fI2018\-06\-14 21:21:15 UTC\fP
  174116. .INDENT 2.0
  174117. .IP \(bu 2
  174118. \fBPR\fP \fI\%#48129\fP: (\fI\%rallytime\fP) Add release notes for 2018.3.2 (refs: \fI\%#48133\fP)
  174119. .IP \(bu 2
  174120. 5d92e2763a Merge pull request \fI\%#48133\fP from rallytime/release\-notes\-2018.3
  174121. .IP \(bu 2
  174122. afe1e91972 Add "in progress" notation to 2018.3.2 release notes
  174123. .IP \(bu 2
  174124. 3e4272ac09 Add release notes for 2018.3.2
  174125. .IP \(bu 2
  174126. 88c584cb0d Move 2018.3.2 release notes to 2018.3.3
  174127. .UNINDENT
  174128. .IP \(bu 2
  174129. \fBPR\fP \fI\%#48103\fP: (\fI\%terminalmage\fP) Fix for gitfs base env being pinned to commit ID
  174130. @ \fI2018\-06\-14 16:29:24 UTC\fP
  174131. .INDENT 2.0
  174132. .IP \(bu 2
  174133. 0e3f846836 Merge pull request \fI\%#48103\fP from terminalmage/gitfs\-base\-pinned\-to\-commit
  174134. .IP \(bu 2
  174135. 31ab2fe8de Fix for gitfs base env being pinned to commit ID
  174136. .UNINDENT
  174137. .IP \(bu 2
  174138. \fBPR\fP \fI\%#48077\fP: (\fI\%twangboy\fP) Fix issue with \fIsalt.utils.parsers\fP on Windows
  174139. @ \fI2018\-06\-14 16:22:57 UTC\fP
  174140. .INDENT 2.0
  174141. .IP \(bu 2
  174142. 4b6f1c7f75 Merge pull request \fI\%#48077\fP from twangboy/fix_parsers
  174143. .IP \(bu 2
  174144. 0f7d7691a2 Call logger in each case
  174145. .IP \(bu 2
  174146. 0e99dd741c Fix logic for non\-root
  174147. .IP \(bu 2
  174148. 2d2534a688 Fix parsers for Windows, fix tests
  174149. .UNINDENT
  174150. .IP \(bu 2
  174151. \fBPR\fP \fI\%#48096\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_which\fP on Windows
  174152. @ \fI2018\-06\-14 13:15:14 UTC\fP
  174153. .INDENT 2.0
  174154. .IP \(bu 2
  174155. 80332b32a7 Merge pull request \fI\%#48096\fP from twangboy/fix_test_which
  174156. .IP \(bu 2
  174157. d26fc56f13 Use os.sep for paths
  174158. .UNINDENT
  174159. .IP \(bu 2
  174160. \fBPR\fP \fI\%#48102\fP: (\fI\%rallytime\fP) [2018.3] Update 2018.3.2 references to 2018.3.3
  174161. @ \fI2018\-06\-14 13:14:26 UTC\fP
  174162. .INDENT 2.0
  174163. .IP \(bu 2
  174164. 66b2200913 Merge pull request \fI\%#48102\fP from rallytime/update\-doc\-refs\-2018.3
  174165. .IP \(bu 2
  174166. 1c9bcce3d8 Update 2018.3.2 references to 2018.3.3
  174167. .UNINDENT
  174168. .IP \(bu 2
  174169. \fBPR\fP \fI\%#48109\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47851\fP to 2018.3
  174170. @ \fI2018\-06\-14 13:09:04 UTC\fP
  174171. .INDENT 2.0
  174172. .IP \(bu 2
  174173. \fBPR\fP \fI\%#47851\fP: (\fI\%rares\-pop\fP) Fixup! add master.py:FileserverUpdate **kwargs (refs: \fI\%#48109\fP)
  174174. .IP \(bu 2
  174175. 2902ee0b14 Merge pull request \fI\%#48109\fP from rallytime/bp\-47851
  174176. .IP \(bu 2
  174177. e9dc30bf8e Fixup! add master.py:FileserverUpdate **kwargs
  174178. .UNINDENT
  174179. .IP \(bu 2
  174180. \fBISSUE\fP \fI\%#47925\fP: (\fI\%JonGriggs\fP) GitFS looking for files in the master branch only (refs: \fI\%#47943\fP)
  174181. .IP \(bu 2
  174182. \fBPR\fP \fI\%#47943\fP: (\fI\%terminalmage\fP) Make sure we set the effective environment when lock_saltenv is True
  174183. @ \fI2018\-06\-13 20:02:00 UTC\fP
  174184. .INDENT 2.0
  174185. .IP \(bu 2
  174186. 2529292568 Merge pull request \fI\%#47943\fP from terminalmage/issue47925
  174187. .IP \(bu 2
  174188. 534e1a7100 Merge branch \(aq2018.3\(aq into issue47925
  174189. .UNINDENT
  174190. .IP \(bu 2
  174191. \fBPR\fP \fI\%#48089\fP: (\fI\%rallytime\fP) Update release versions for the 2018.3 branch
  174192. @ \fI2018\-06\-13 14:03:44 UTC\fP
  174193. .INDENT 2.0
  174194. .IP \(bu 2
  174195. 9e1d0040e4 Merge pull request \fI\%#48089\fP from rallytime/update_version_doc_2018.3
  174196. .IP \(bu 2
  174197. fad6a0991e Remove "in progress" info for 2018.3.1 release notes
  174198. .IP \(bu 2
  174199. a3b3b0a0e1 Remove "in progress" info for 2017.7.6 release notes
  174200. .IP \(bu 2
  174201. f9be1b9125 Update release versions for the 2018.3 branch
  174202. .UNINDENT
  174203. .IP \(bu 2
  174204. \fBPR\fP \fI\%#48054\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174205. @ \fI2018\-06\-13 12:58:46 UTC\fP
  174206. .INDENT 2.0
  174207. .IP \(bu 2
  174208. b10b7355a0 Merge pull request \fI\%#48054\fP from rallytime/merge\-2018.3
  174209. .IP \(bu 2
  174210. 508d70fabf Update old utils paths to use new paths
  174211. .IP \(bu 2
  174212. 3d2ea16c3a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174213. .INDENT 2.0
  174214. .IP \(bu 2
  174215. ffee3576ec Merge pull request \fI\%#48044\fP from twangboy/wua_add_fail_code
  174216. .INDENT 2.0
  174217. .IP \(bu 2
  174218. d41d0c25eb Add faile code for WinHTTP send/receive error
  174219. .UNINDENT
  174220. .IP \(bu 2
  174221. 871a910fcb Merge pull request \fI\%#48009\fP from dwoz/winswarmfix
  174222. .INDENT 2.0
  174223. .IP \(bu 2
  174224. 5027c7bb84 minionswarm runs on windows
  174225. .UNINDENT
  174226. .IP \(bu 2
  174227. 0dcaead36d Merge pull request \fI\%#47968\fP from gtmanfred/2017.7
  174228. .INDENT 2.0
  174229. .IP \(bu 2
  174230. ae1b0d28bb pass LANG and HOME into tox commands
  174231. .IP \(bu 2
  174232. 8d15b93d00 remove tox virtualenvs from doc tests
  174233. .IP \(bu 2
  174234. e1872e2036 simplify tox.ini
  174235. .IP \(bu 2
  174236. 81bd01f5af add tests.txt for running tests with tox requirements
  174237. .IP \(bu 2
  174238. 556a2067fc fix masterapi test to use testing directory for configs
  174239. .IP \(bu 2
  174240. 5a41f484ef add EXPENSIVE_TESTS
  174241. .IP \(bu 2
  174242. 055cd5a6ba set DESTRUCTIVE_TESTS environment variable for pytest
  174243. .UNINDENT
  174244. .IP \(bu 2
  174245. 42dd6b83eb Merge pull request \fI\%#47978\fP from twangboy/fix_test_pkg
  174246. .INDENT 2.0
  174247. .IP \(bu 2
  174248. 8bb36b3a4b Add try/finally, fix typo in 7zip def file
  174249. .UNINDENT
  174250. .IP \(bu 2
  174251. a67b21ef3d Merge pull request \fI\%#47959\fP from twangboy/fix_test_service
  174252. .INDENT 2.0
  174253. .IP \(bu 2
  174254. 0cd47aa81e Remove unused import
  174255. .IP \(bu 2
  174256. d4b42540e3 Fix failing test when service doesn\(aqt exist
  174257. .UNINDENT
  174258. .IP \(bu 2
  174259. b81d482067 Merge pull request \fI\%#47983\fP from garethgreenaway/backport_47843_2017_7
  174260. .INDENT 2.0
  174261. .IP \(bu 2
  174262. 7b7fb1f5d5 Adding missing test sls file.
  174263. .IP \(bu 2
  174264. 54e51bc627 Backporting \fI\%#47843\fP to 2017.7, updating test for 2017.7.
  174265. .UNINDENT
  174266. .IP \(bu 2
  174267. d56ddad22c Merge pull request \fI\%#47533\fP from twangboy/fix_47178
  174268. .INDENT 2.0
  174269. .IP \(bu 2
  174270. 24717cbc21 Change version added to 2017.7.7
  174271. .IP \(bu 2
  174272. 0592f1bac2 Fix issues with functions that user makedirs on Windows
  174273. .UNINDENT
  174274. .IP \(bu 2
  174275. 5c56b8c755 Merge pull request \fI\%#47827\fP from twangboy/fix_47791
  174276. .INDENT 2.0
  174277. .IP \(bu 2
  174278. fbbd91f09e Add more descriptive debug message
  174279. .IP \(bu 2
  174280. 365f81651b Fix deprecated exception handling
  174281. .IP \(bu 2
  174282. 8dd6710b93 Use local instead of network
  174283. .IP \(bu 2
  174284. 980d99d74b Fix issue when archive is on mapped drive
  174285. .UNINDENT
  174286. .UNINDENT
  174287. .UNINDENT
  174288. .IP \(bu 2
  174289. \fBPR\fP \fI\%#48060\fP: (\fI\%gtmanfred\fP) mark test as expensive
  174290. @ \fI2018\-06\-13 12:58:21 UTC\fP
  174291. .INDENT 2.0
  174292. .IP \(bu 2
  174293. c83818e4f9 Merge pull request \fI\%#48060\fP from gtmanfred/2018.3
  174294. .IP \(bu 2
  174295. 914935c4d4 Merge branch \(aq2018.3\(aq into 2018.3
  174296. .UNINDENT
  174297. .IP \(bu 2
  174298. \fBPR\fP \fI\%#48057\fP: (\fI\%terminalmage\fP) Fix link without target in 2018.3.0 release notes
  174299. @ \fI2018\-06\-11 18:50:17 UTC\fP
  174300. .INDENT 2.0
  174301. .IP \(bu 2
  174302. a4eb41623d Merge pull request \fI\%#48057\fP from terminalmage/docs\-2018.3
  174303. .IP \(bu 2
  174304. 20f71ff6f6 Fix link without target in 2018.3.0 release notes
  174305. .IP \(bu 2
  174306. d8c035e5e5 mark test as expensive
  174307. .UNINDENT
  174308. .IP \(bu 2
  174309. \fBPR\fP \fI\%#48042\fP: (\fI\%terminalmage\fP) Switch to trace level logging for further test failure troubleshooting
  174310. @ \fI2018\-06\-11 14:03:48 UTC\fP
  174311. .INDENT 2.0
  174312. .IP \(bu 2
  174313. 0f9a3122df Merge pull request \fI\%#48042\fP from terminalmage/salt\-jenkins\-1000
  174314. .IP \(bu 2
  174315. b33a0b5eaa Switch to trace level logging for further test failure troubleshooting
  174316. .UNINDENT
  174317. .IP \(bu 2
  174318. \fBPR\fP \fI\%#48041\fP: (\fI\%terminalmage\fP) salt.utils.hashutils: Only decode to utf\-8 on Windows
  174319. @ \fI2018\-06\-11 13:31:41 UTC\fP
  174320. .INDENT 2.0
  174321. .IP \(bu 2
  174322. 6c5389189a Merge pull request \fI\%#48041\fP from terminalmage/hashutils\-fix\-windows
  174323. .IP \(bu 2
  174324. 58c7cd33d7 salt.utils.hashutils: Only decode to utf\-8 on Windows
  174325. .UNINDENT
  174326. .IP \(bu 2
  174327. \fBPR\fP \fI\%#48014\fP: (\fI\%cro\fP) Find job pause
  174328. @ \fI2018\-06\-08 13:48:45 UTC\fP
  174329. .INDENT 2.0
  174330. .IP \(bu 2
  174331. dcae209951 Merge pull request \fI\%#48014\fP from cro/find_job_pause
  174332. .IP \(bu 2
  174333. 440aa67c4f Lint: Add blank line
  174334. .IP \(bu 2
  174335. 7b0e99a511 One more case where returner doesn\(aqt respond
  174336. .IP \(bu 2
  174337. 5abeedf882 Catch two cases when a returner is not able to be contacted\-\-these would throw a stacktrace.
  174338. .UNINDENT
  174339. .IP \(bu 2
  174340. \fBPR\fP \fI\%#47915\fP: (\fI\%garethgreenaway\fP) [2018.3] state runner pause resume kill
  174341. @ \fI2018\-06\-07 16:08:30 UTC\fP
  174342. .INDENT 2.0
  174343. .IP \(bu 2
  174344. ea85f882bc Merge pull request \fI\%#47915\fP from garethgreenaway/state_runner_pause_resume_kill
  174345. .IP \(bu 2
  174346. 2ecbe9c034 fixing typo in alias_function call.
  174347. .IP \(bu 2
  174348. 4377e0cc08 Some fixes to the set_pause and rm_pause function in the state runner, renaming to in line with the functions in the state module. Including aliases to previous names for back\-ward compatibility. Including a soft_kill function to kill running orchestration states. A new test to test soft_kill functionality.
  174349. .UNINDENT
  174350. .IP \(bu 2
  174351. \fBPR\fP \fI\%#48002\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47923\fP to 2018.3
  174352. @ \fI2018\-06\-07 15:25:39 UTC\fP
  174353. .INDENT 2.0
  174354. .IP \(bu 2
  174355. \fBPR\fP \fI\%#47923\fP: (\fI\%isbm\fP) Prevent crash if files in file.recurse (refs: \fI\%#48002\fP)
  174356. .IP \(bu 2
  174357. 5c11fcde60 Merge pull request \fI\%#48002\fP from rallytime/bp\-47923
  174358. .IP \(bu 2
  174359. 9465e5f1e9 Use to_unicode from stringutils avoid deprecation warning
  174360. .IP \(bu 2
  174361. 73d33cbfc3 Prevent crash if files in file.recurse
  174362. .UNINDENT
  174363. .IP \(bu 2
  174364. \fBPR\fP \fI\%#48003\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174365. @ \fI2018\-06\-07 15:25:19 UTC\fP
  174366. .INDENT 2.0
  174367. .IP \(bu 2
  174368. 3d0a087c71 Merge pull request \fI\%#48003\fP from rallytime/merge\-2018.3
  174369. .IP \(bu 2
  174370. a6533a9332 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174371. .INDENT 2.0
  174372. .IP \(bu 2
  174373. 998a1c13d5 Merge pull request \fI\%#47966\fP from mbunkus/fix\-postfix\-prefix\-free\-key\-names\-assumption
  174374. .INDENT 2.0
  174375. .IP \(bu 2
  174376. 0ae402d1b5 Fix postfix.set_main\(aqs assumption of prefix\-free key names
  174377. .UNINDENT
  174378. .IP \(bu 2
  174379. df50ce7b1b Merge pull request \fI\%#47824\fP from twangboy/fix_setup.py
  174380. .INDENT 2.0
  174381. .IP \(bu 2
  174382. 4538b3abb3 Remove \(aqlen\-as\-condition\(aq disablement
  174383. .IP \(bu 2
  174384. d4efcc3c8b Skip lint errors
  174385. .IP \(bu 2
  174386. 1b3977f8d4 Remove m2crypto download for Windows
  174387. .UNINDENT
  174388. .IP \(bu 2
  174389. 3e91a31134 Merge pull request \fI\%#47922\fP from damon\-atkins/2017.7_win_pkg_keys_fix
  174390. .INDENT 2.0
  174391. .IP \(bu 2
  174392. 7129203b1b Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  174393. .UNINDENT
  174394. .IP \(bu 2
  174395. 8008fca2f6 Merge pull request \fI\%#47933\fP from terminalmage/add\-pillar.get\-docs
  174396. .INDENT 2.0
  174397. .IP \(bu 2
  174398. 4eb022b675 Clarify pillar.get docs
  174399. .UNINDENT
  174400. .IP \(bu 2
  174401. ab565bfaa3 Merge pull request \fI\%#47944\fP from terminalmage/fix\-git.detached\-docs
  174402. .INDENT 2.0
  174403. .IP \(bu 2
  174404. 1d082b4389 Replace use of deprecated argument name in git.detached docstring
  174405. .IP \(bu 2
  174406. 6253793cb6 Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  174407. .IP \(bu 2
  174408. 4ce0fe6546 win_pkg under py3 keys returns a view instead of a list, wrap keys in list()
  174409. .UNINDENT
  174410. .UNINDENT
  174411. .UNINDENT
  174412. .IP \(bu 2
  174413. \fBPR\fP \fI\%#48022\fP: (\fI\%morganwillcock\fP) win_wua state: fix function name in examples
  174414. @ \fI2018\-06\-07 15:03:52 UTC\fP
  174415. .INDENT 2.0
  174416. .IP \(bu 2
  174417. 0a05212f60 Merge pull request \fI\%#48022\fP from morganwillcock/patch\-1
  174418. .IP \(bu 2
  174419. 443f4d6f21 win_wua state: fix function name in examples
  174420. .UNINDENT
  174421. .IP \(bu 2
  174422. \fBISSUE\fP \fI\%#47546\fP: (\fI\%ender8282\fP) archive.extracted fails when archive includes files with non\-ascii names with 2018.3.0 (refs: \fI\%#48015\fP, \fI\%#47572\fP)
  174423. .IP \(bu 2
  174424. \fBPR\fP \fI\%#48015\fP: (\fI\%garethgreenaway\fP) [2018.3] more unicode nonsense in archive module
  174425. @ \fI2018\-06\-07 14:44:55 UTC\fP
  174426. .INDENT 2.0
  174427. .IP \(bu 2
  174428. 406efb161e Merge pull request \fI\%#48015\fP from garethgreenaway/47546_more_unicode_nonsense
  174429. .IP \(bu 2
  174430. f457f9cb84 Adding a test to ensure archive.list returns the right results when a tar file contains a file with unicode in its name.
  174431. .IP \(bu 2
  174432. 9af49bc595 Ensure member names are decoded before adding to various lists.
  174433. .UNINDENT
  174434. .IP \(bu 2
  174435. \fBISSUE\fP \fI\%#47955\fP: (\fI\%frogunder\fP) 2018.3.1 Creating Windows machine in Amazon using salt\-cloud fails. (refs: \fI\%#47989\fP)
  174436. .IP \(bu 2
  174437. \fBPR\fP \fI\%#47989\fP: (\fI\%dwoz\fP) Properly decode password from aws using m2crypto
  174438. @ \fI2018\-06\-06 20:44:28 UTC\fP
  174439. .INDENT 2.0
  174440. .IP \(bu 2
  174441. 1ce7d6c38a Merge pull request \fI\%#47989\fP from dwoz/awscloud
  174442. .IP \(bu 2
  174443. 23ab2727be Fix linter errors
  174444. .IP \(bu 2
  174445. 6c8daa2b85 Properly decode password from aws using m2crypto
  174446. .UNINDENT
  174447. .IP \(bu 2
  174448. \fBPR\fP \fI\%#47976\fP: (\fI\%terminalmage\fP) Capture and log output of processes that timed out and were killed
  174449. @ \fI2018\-06\-06 19:17:08 UTC\fP
  174450. .INDENT 2.0
  174451. .IP \(bu 2
  174452. 76068c83f5 Merge pull request \fI\%#47976\fP from terminalmage/salt\-jenkins\-1000
  174453. .IP \(bu 2
  174454. 41e5a75027 Add catch_timeout to run_script
  174455. .IP \(bu 2
  174456. 551ada8e4d Capture and log output of processes that timed out and were killed
  174457. .UNINDENT
  174458. .IP \(bu 2
  174459. \fBPR\fP \fI\%#47990\fP: (\fI\%terminalmage\fP) Docs fixes in 2018.3 release branch
  174460. @ \fI2018\-06\-06 17:15:17 UTC\fP
  174461. .INDENT 2.0
  174462. .IP \(bu 2
  174463. f12a52736e Merge pull request \fI\%#47990\fP from terminalmage/2018.3\-docs
  174464. .IP \(bu 2
  174465. f89d2ccd30 Clean up Sphinx warnings
  174466. .IP \(bu 2
  174467. f5fc936865 Add clarifying comment so that we don\(aqt break this
  174468. .IP \(bu 2
  174469. 94849780ac fix docs build error due to IndexError
  174470. .UNINDENT
  174471. .IP \(bu 2
  174472. \fBPR\fP \fI\%#47982\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_dns_client\fP tests
  174473. @ \fI2018\-06\-06 15:02:10 UTC\fP
  174474. .INDENT 2.0
  174475. .IP \(bu 2
  174476. 9d56af3cad Merge pull request \fI\%#47982\fP from twangboy/fix_test_win_dns_client
  174477. .IP \(bu 2
  174478. 2dcdf6788c Force string to ModuleType
  174479. .UNINDENT
  174480. .IP \(bu 2
  174481. \fBPR\fP \fI\%#47985\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_reg\fP test failure
  174482. @ \fI2018\-06\-06 14:56:03 UTC\fP
  174483. .INDENT 2.0
  174484. .IP \(bu 2
  174485. 1b4c72345b Merge pull request \fI\%#47985\fP from twangboy/fix_test_reg
  174486. .IP \(bu 2
  174487. 4ce551811f Remove the unnecessary \fIto_unicode\fP stuff
  174488. .IP \(bu 2
  174489. 863ded39fa Mock \fIreg.cast_vdata\fP
  174490. .UNINDENT
  174491. .IP \(bu 2
  174492. \fBISSUE\fP \fI\%#47236\fP: (\fI\%MorphBonehunter\fP) x509.private_key_managed broken after upgrade to 2018.3.0 (refs: \fI\%#47957\fP)
  174493. .IP \(bu 2
  174494. \fBPR\fP \fI\%#47957\fP: (\fI\%garethgreenaway\fP) [2018.8] Ensure x509 passphrase is a string
  174495. @ \fI2018\-06\-05 13:27:33 UTC\fP
  174496. .INDENT 2.0
  174497. .IP \(bu 2
  174498. 84100570f7 Merge pull request \fI\%#47957\fP from garethgreenaway/47236_ensure_passphrase_is_a_string
  174499. .IP \(bu 2
  174500. 99bad3cca6 removing unnecessary change
  174501. .IP \(bu 2
  174502. e22df8473d Ensuring that when a passphrase is passed in, it is returned as a string from the passphrase callback.
  174503. .INDENT 2.0
  174504. .INDENT 3.5
  174505. .INDENT 0.0
  174506. .IP \(bu 2
  174507. d0cf06a24d Make sure we set the effective environment when lock_saltenv is True
  174508. .INDENT 2.0
  174509. .INDENT 3.5
  174510. .INDENT 0.0
  174511. .IP \(bu 2
  174512. 8da6ce45dc Finish the docstring for git.cloned state
  174513. .IP \(bu 2
  174514. 4a8260a5e5 Add tests for git.cloned state
  174515. .IP \(bu 2
  174516. 311179da05 Add git.cloned state
  174517. .UNINDENT
  174518. .UNINDENT
  174519. .UNINDENT
  174520. .UNINDENT
  174521. .UNINDENT
  174522. .UNINDENT
  174523. .UNINDENT
  174524. .IP \(bu 2
  174525. \fBPR\fP \fI\%#47926\fP: (\fI\%dmurphy18\fP) Backport of PR 47808 to 2018.3, improved grains support for AIX
  174526. @ \fI2018\-06\-04 19:31:24 UTC\fP
  174527. .INDENT 2.0
  174528. .IP \(bu 2
  174529. \fBPR\fP \fI\%#47808\fP: (\fI\%dmurphy18\fP) Updated AIX support for grains reported (refs: \fI\%#47926\fP)
  174530. .IP \(bu 2
  174531. c355da9e0d Merge pull request \fI\%#47926\fP from dmurphy18/backport_pr47808
  174532. .IP \(bu 2
  174533. ac15d2093a Backport of PR 47808 to 2018.3, improved grains support for AIX
  174534. .UNINDENT
  174535. .IP \(bu 2
  174536. \fBPR\fP \fI\%#47927\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174537. @ \fI2018\-06\-04 18:55:12 UTC\fP
  174538. .INDENT 2.0
  174539. .IP \(bu 2
  174540. a46e42ab11 Merge pull request \fI\%#47927\fP from rallytime/merge\-2018.3
  174541. .IP \(bu 2
  174542. 5baab66f4b Lint: Whitespace fix
  174543. .IP \(bu 2
  174544. 7e1d278d19 Update old utils paths to use new utils paths
  174545. .IP \(bu 2
  174546. 3273bbdab7 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174547. .INDENT 2.0
  174548. .IP \(bu 2
  174549. a2b588299b Merge pull request \fI\%#47860\fP from terminalmage/state\-writing\-docs
  174550. .INDENT 2.0
  174551. .IP \(bu 2
  174552. 8cb33d3dec Quiet the linter
  174553. .IP \(bu 2
  174554. af51e16f23 Use more elegant RST syntax
  174555. .IP \(bu 2
  174556. 91cd57d1e0 Update mocking to reflect changes in service module
  174557. .IP \(bu 2
  174558. b9ace5a859 Fix crappy mocking
  174559. .IP \(bu 2
  174560. bc9e3acef3 Lint fixes
  174561. .IP \(bu 2
  174562. d37f7e4f04 Add 2017.7.6 release notes
  174563. .IP \(bu 2
  174564. 9dddeeefab Improve documentation on syncing states
  174565. .IP \(bu 2
  174566. f465fa3ca7 Add best practices docs for writing states
  174567. .IP \(bu 2
  174568. 93ee5ee2b0 Fix all Sphinx warnings
  174569. .IP \(bu 2
  174570. 64b9b4d0b8 Clarify that name would override the id declaration
  174571. .UNINDENT
  174572. .IP \(bu 2
  174573. d2f3377b5b Merge pull request \fI\%#47877\fP from dwoz/sleep_audit
  174574. .INDENT 2.0
  174575. .IP \(bu 2
  174576. ebc7cde9cb Revert job chunk wait time change
  174577. .UNINDENT
  174578. .IP \(bu 2
  174579. 735e92093e Merge pull request \fI\%#47917\fP from dwoz/winsuite
  174580. .INDENT 2.0
  174581. .IP \(bu 2
  174582. 118601ebd6 Fix windows tests suite breakage
  174583. .UNINDENT
  174584. .IP \(bu 2
  174585. 63efb76d51 Merge pull request \fI\%#47822\fP from Ch3LL/win_user_test
  174586. .INDENT 2.0
  174587. .IP \(bu 2
  174588. 3a691b405f add user_home path for both windows and linux
  174589. .IP \(bu 2
  174590. 788abf771e Add user state integration tests to windows
  174591. .UNINDENT
  174592. .IP \(bu 2
  174593. b9da4f1221 Merge pull request \fI\%#47876\fP from doesitblend/add\-file\-read\-windows
  174594. .INDENT 2.0
  174595. .IP \(bu 2
  174596. 3f7e7ec327 Add file.read function to Windows module
  174597. .UNINDENT
  174598. .IP \(bu 2
  174599. cbe2ecfae8 Merge pull request \fI\%#47882\fP from frogunder/45013
  174600. .INDENT 2.0
  174601. .IP \(bu 2
  174602. 38d114a2d2 add whoami test
  174603. .UNINDENT
  174604. .UNINDENT
  174605. .UNINDENT
  174606. .IP \(bu 2
  174607. \fBPR\fP \fI\%#47931\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47913\fP to 2018.3
  174608. @ \fI2018\-06\-04 14:39:16 UTC\fP
  174609. .INDENT 2.0
  174610. .IP \(bu 2
  174611. \fBPR\fP \fI\%#47913\fP: (\fI\%rares\-pop\fP) Fixup! beacons/avahi_announce.py finding grains (refs: \fI\%#47931\fP)
  174612. .IP \(bu 2
  174613. 4db1f8c603 Merge pull request \fI\%#47931\fP from rallytime/bp\-47913
  174614. .IP \(bu 2
  174615. c51e732f4d Fixup! beacons/avahi_announce.py finding grains
  174616. .UNINDENT
  174617. .IP \(bu 2
  174618. \fBPR\fP \fI\%#47930\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47725\fP to 2018.3
  174619. @ \fI2018\-06\-04 14:38:58 UTC\fP
  174620. .INDENT 2.0
  174621. .IP \(bu 2
  174622. \fBPR\fP \fI\%#47725\fP: (\fI\%bbczeuz\fP) network_settings beacon: Update example to follow new cfg convention (refs: \fI\%#47930\fP)
  174623. .IP \(bu 2
  174624. d05a6c70d3 Merge pull request \fI\%#47930\fP from rallytime/bp\-47725
  174625. .IP \(bu 2
  174626. 5c666409f3 Spelling fix
  174627. .IP \(bu 2
  174628. cfe0a5bb42 network_settings: Fix doc using new list/dict syntax
  174629. .UNINDENT
  174630. .IP \(bu 2
  174631. \fBPR\fP \fI\%#47557\fP: (\fI\%L4rS6\fP) fix broken rabbitmq list policies in rabbitmq version 3.7
  174632. @ \fI2018\-06\-04 13:25:07 UTC\fP
  174633. .INDENT 2.0
  174634. .IP \(bu 2
  174635. 484d83014b Merge pull request \fI\%#47557\fP from L4rS6/fix\-broken\-rabbitmq\-list\-policies
  174636. .IP \(bu 2
  174637. 6d7ef27557 Merge branch \(aq2018.3\(aq into fix\-broken\-rabbitmq\-list\-policies
  174638. .IP \(bu 2
  174639. e043ea2833 refactored list_policies code and added more tests
  174640. .IP \(bu 2
  174641. eea81feb7b fix broken rabbitmq list policies in rabbitmq version 3.7
  174642. .UNINDENT
  174643. .IP \(bu 2
  174644. \fBPR\fP \fI\%#47949\fP: (\fI\%terminalmage\fP) Continued troubleshooting on salt\-jenkins 1000
  174645. @ \fI2018\-06\-04 13:17:14 UTC\fP
  174646. .INDENT 2.0
  174647. .IP \(bu 2
  174648. 866a2fbf5e Merge pull request \fI\%#47949\fP from terminalmage/salt\-jenkins\-1000
  174649. .IP \(bu 2
  174650. 9c369c6aa8 Remove temp logging from test
  174651. .IP \(bu 2
  174652. af02d5ba7b Add result logging to run_script, make returns DRY
  174653. .UNINDENT
  174654. .IP \(bu 2
  174655. \fBPR\fP \fI\%#47941\fP: (\fI\%terminalmage\fP) Update test logging for salt\-jenkins
  174656. @ \fI2018\-06\-03 02:40:56 UTC\fP
  174657. .INDENT 2.0
  174658. .IP \(bu 2
  174659. 0b85d1273f Merge pull request \fI\%#47941\fP from terminalmage/salt\-jenkins\-1000
  174660. .IP \(bu 2
  174661. fb66368af9 Update test logging for salt\-jenkins 1000
  174662. .UNINDENT
  174663. .IP \(bu 2
  174664. \fBPR\fP \fI\%#47924\fP: (\fI\%Ch3LL\fP) Catch all exceptions in git import for salt.utils.gitfs
  174665. @ \fI2018\-06\-01 21:06:58 UTC\fP
  174666. .INDENT 2.0
  174667. .IP \(bu 2
  174668. 58b5f2b4dd Merge pull request \fI\%#47924\fP from Ch3LL/mac_gitpy
  174669. .IP \(bu 2
  174670. 75c51ad69b Catch all exceptions in git import for salt.utils.gitfs
  174671. .UNINDENT
  174672. .IP \(bu 2
  174673. \fBISSUE\fP \fI\%#47269\fP: (\fI\%isdig\fP) Reopen Windows Minion That Has IAM Role Cannot Access to S3 (refs: \fI\%#47879\fP)
  174674. .IP \(bu 2
  174675. \fBPR\fP \fI\%#47879\fP: (\fI\%dwoz\fP) Fix ami role usage warts \fI\%#47269\fP
  174676. @ \fI2018\-06\-01 14:11:55 UTC\fP
  174677. .INDENT 2.0
  174678. .IP \(bu 2
  174679. b88ec5258d Merge pull request \fI\%#47879\fP from dwoz/ami_role_fix
  174680. .IP \(bu 2
  174681. 3884c2cf5f Fix ami role usage warts \fI\%#47269\fP
  174682. .UNINDENT
  174683. .IP \(bu 2
  174684. \fBPR\fP \fI\%#47788\fP: (\fI\%twangboy\fP) Use pytz to calculate timezones
  174685. @ \fI2018\-05\-31 18:33:20 UTC\fP
  174686. .INDENT 2.0
  174687. .IP \(bu 2
  174688. b09596982b Merge pull request \fI\%#47788\fP from twangboy/fix_47559
  174689. .IP \(bu 2
  174690. 0d229c6182 Merge branch \(aq2018.3\(aq into fix_47559
  174691. .IP \(bu 2
  174692. 9e612ec9e7 Fix markup in release notes
  174693. .IP \(bu 2
  174694. 60499d18f0 Skip test if pytz not present
  174695. .IP \(bu 2
  174696. 72cc361c7b Move pytz to 3rd party import, add to __virtual__
  174697. .IP \(bu 2
  174698. b8a6488688 Update __virtual__ function
  174699. .IP \(bu 2
  174700. 9923176b68 Use __utils__, fix unit tests
  174701. .IP \(bu 2
  174702. 73e033f555 Return offset in the same format as Unix
  174703. .IP \(bu 2
  174704. 5656183c5e Add timezone.list, add 2018.3.2 release notes
  174705. .IP \(bu 2
  174706. 986f6c9b2a Use pytz to calculate timezones
  174707. .UNINDENT
  174708. .IP \(bu 2
  174709. \fBPR\fP \fI\%#47899\fP: (\fI\%terminalmage\fP) salt\-jenkins issue 1000
  174710. @ \fI2018\-05\-31 18:24:49 UTC\fP
  174711. .INDENT 2.0
  174712. .IP \(bu 2
  174713. ae73cb3947 Merge pull request \fI\%#47899\fP from terminalmage/salt\-jenkins\-1000
  174714. .IP \(bu 2
  174715. 25afc932f7 WIP salt\-jenkins issue 1000
  174716. .UNINDENT
  174717. .IP \(bu 2
  174718. \fBPR\fP \fI\%#47753\fP: (\fI\%Ch3LL\fP) Add stderr launchctl helper class and fix service mac tests
  174719. @ \fI2018\-05\-31 18:16:57 UTC\fP
  174720. .INDENT 2.0
  174721. .IP \(bu 2
  174722. 8f78e3aef6 Merge pull request \fI\%#47753\fP from Ch3LL/service_mac
  174723. .IP \(bu 2
  174724. 185c9e9ae2 only stop service if its running
  174725. .IP \(bu 2
  174726. e15e674955 Add stderr launchctl helper class and fix service mac tests
  174727. .UNINDENT
  174728. .IP \(bu 2
  174729. \fBPR\fP \fI\%#47908\fP: (\fI\%meaksh\fP) Align SUSE salt\-master.service \(aqLimitNOFILES\(aq limit with upstream Salt
  174730. @ \fI2018\-05\-31 18:13:27 UTC\fP
  174731. .INDENT 2.0
  174732. .IP \(bu 2
  174733. 828bf39695 Merge pull request \fI\%#47908\fP from meaksh/2018.3\-align\-suse\-salt\-master\-service
  174734. .IP \(bu 2
  174735. efe308013a Align SUSE salt\-master.service \(aqLimitNOFILES\(aq limit with upstream Salt
  174736. .UNINDENT
  174737. .IP \(bu 2
  174738. \fBPR\fP \fI\%#47868\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174739. @ \fI2018\-05\-30 21:20:38 UTC\fP
  174740. .INDENT 2.0
  174741. .IP \(bu 2
  174742. b4bac9b41b Merge pull request \fI\%#47868\fP from rallytime/merge\-2018.3
  174743. .IP \(bu 2
  174744. e5d386e91c Update solaris core grains test
  174745. .IP \(bu 2
  174746. 267f09c1a0 Lint: Remove unused import
  174747. .IP \(bu 2
  174748. 120ee16b70 Replace old utils paths with new utils paths
  174749. .IP \(bu 2
  174750. dc32b67c03 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174751. .INDENT 2.0
  174752. .IP \(bu 2
  174753. 4b28e510f1 Merge pull request \fI\%#47853\fP from dwoz/py3\-cloud\-test
  174754. .INDENT 2.0
  174755. .IP \(bu 2
  174756. c2f8aef7c5 Fix for py3 ec2 cloud tests
  174757. .UNINDENT
  174758. .IP \(bu 2
  174759. 215efa6b73 Merge pull request \fI\%#47847\fP from garethgreenaway/47833_reactor_runner_documentation
  174760. .INDENT 2.0
  174761. .IP \(bu 2
  174762. 03676712de Adding some addition documentation to the reactor runner indicating that the reactor system must be active prior to using it.
  174763. .UNINDENT
  174764. .IP \(bu 2
  174765. 0bf651b470 Merge pull request \fI\%#47846\fP from Ch3LL/p_refresh_test
  174766. .INDENT 2.0
  174767. .IP \(bu 2
  174768. 019edad8e4 Fix flaky refresh pillar integration test
  174769. .UNINDENT
  174770. .IP \(bu 2
  174771. 799fce979d Merge pull request \fI\%#47552\fP from twangboy/fix_46981
  174772. .INDENT 2.0
  174773. .IP \(bu 2
  174774. cffc9b7806 Merge branch \(aq2017.7\(aq into fix_46981
  174775. .IP \(bu 2
  174776. 81308a4a44 Add release notes for 2017.7.7
  174777. .IP \(bu 2
  174778. 008af0ac6b Fix unit tests
  174779. .IP \(bu 2
  174780. 87097eefb6 Add comments about how get is returning data
  174781. .IP \(bu 2
  174782. f1f1bfc5c1 Show GPO settings, raise error if trying to set gpo managed settings
  174783. .UNINDENT
  174784. .IP \(bu 2
  174785. ffc2ebc373 Merge pull request \fI\%#47691\fP from lomeroe/solaris_product_grains
  174786. .INDENT 2.0
  174787. .IP \(bu 2
  174788. 6889befc6b Merge branch \(aq2017.7\(aq into solaris_product_grains
  174789. .IP \(bu 2
  174790. 49053bc106 lint fix
  174791. .IP \(bu 2
  174792. 6f185c9179 another lint fix
  174793. .IP \(bu 2
  174794. dbffba6876 fix tons of errors in my tests
  174795. .IP \(bu 2
  174796. 8c9355d34c Lint fix
  174797. .IP \(bu 2
  174798. b29ec75da7 Update regexes in core grains for detecting the \(aqproduct\(aq grain on Solaris Sparc systems. Additionally, copy the \(aqproduct\(aq grain to \(aqproductname\(aq to be consistent with other OSes.
  174799. .UNINDENT
  174800. .IP \(bu 2
  174801. 96b7c0cc76 Merge pull request \fI\%#47778\fP from Ch3LL/win_state_pkg
  174802. .INDENT 2.0
  174803. .IP \(bu 2
  174804. e1786de6b0 Merge branch \(aq2017.7\(aq into win_state_pkg
  174805. .IP \(bu 2
  174806. f8c467d3e6 Fix text editor error
  174807. .IP \(bu 2
  174808. 872e162137 Add test_pkg integration state tests to windows
  174809. .UNINDENT
  174810. .IP \(bu 2
  174811. 6f934c2259 Merge pull request \fI\%#47823\fP from Ch3LL/win_dns_test
  174812. .INDENT 2.0
  174813. .IP \(bu 2
  174814. 7848114d6a Add win_dns module integration tests for windows
  174815. .UNINDENT
  174816. .IP \(bu 2
  174817. e63e04602d Merge pull request \fI\%#47838\fP from rallytime/bp\-47810
  174818. .INDENT 2.0
  174819. .IP \(bu 2
  174820. bd2b62fa66 better debug message
  174821. .IP \(bu 2
  174822. 83565c55df Address PR feedback
  174823. .IP \(bu 2
  174824. 50bce3a2f3 make decode_linode_plan_label a private function
  174825. .IP \(bu 2
  174826. 2ba4fc4cea fix raising when a \(aqGB\(aq format invalid plan is supplied
  174827. .IP \(bu 2
  174828. 3afb50d5a2 slight cleanup
  174829. .IP \(bu 2
  174830. 319fbd3406 match quotation mark types properly
  174831. .IP \(bu 2
  174832. 95e0202223 more consistent use of parens in logged warning
  174833. .IP \(bu 2
  174834. f52926ca87 log a warning when the user supplied a label we could decode but was not in the proper format
  174835. .IP \(bu 2
  174836. 121303d827 reduce complexity of get_plan_id by moving decoding of the user\-supplied label to its own function
  174837. .IP \(bu 2
  174838. cf534c7314 Fix Linode plan selection
  174839. .UNINDENT
  174840. .IP \(bu 2
  174841. 9ef6e60617 Merge pull request \fI\%#47805\fP from twangboy/add_sign.bat
  174842. .INDENT 2.0
  174843. .IP \(bu 2
  174844. 66d8b0331a Add sign.bat script for signing packages
  174845. .UNINDENT
  174846. .IP \(bu 2
  174847. 93420950d3 Merge pull request \fI\%#47500\fP from dwoz/winuser
  174848. .INDENT 2.0
  174849. .IP \(bu 2
  174850. 0ca5224cbf Merge branch \(aq2017.7\(aq into winuser
  174851. .IP \(bu 2
  174852. e5948902af Use salt utils method for this_user
  174853. .IP \(bu 2
  174854. a056a293f1 Centeralize test username lookup
  174855. .IP \(bu 2
  174856. 6a6ab69722 Get the current username on windows
  174857. .UNINDENT
  174858. .IP \(bu 2
  174859. 552526f309 Merge pull request \fI\%#47802\fP from rallytime/bp\-40892
  174860. .INDENT 2.0
  174861. .IP \(bu 2
  174862. bb357da084 add minion function to reload beacon \fI\%#35960\fP
  174863. .UNINDENT
  174864. .IP \(bu 2
  174865. c9cccf53b9 Merge pull request \fI\%#47816\fP from Ch3LL/disable_windows
  174866. .INDENT 2.0
  174867. .IP \(bu 2
  174868. 2509d36888 Add windows to service disable ERROR check in tests
  174869. .UNINDENT
  174870. .IP \(bu 2
  174871. 2cb6634c6b Merge pull request \fI\%#47773\fP from frogunder/45011
  174872. .INDENT 2.0
  174873. .IP \(bu 2
  174874. 7c9b0bda33 add win_servermanager.list_available test
  174875. .UNINDENT
  174876. .IP \(bu 2
  174877. e65dece202 Merge pull request \fI\%#47807\fP from dwoz/winrmtests
  174878. .INDENT 2.0
  174879. .IP \(bu 2
  174880. 1f1cc1357a Increase instance size for cloud tests
  174881. .IP \(bu 2
  174882. be8dcd21f1 Try an even bigger timeout
  174883. .UNINDENT
  174884. .UNINDENT
  174885. .UNINDENT
  174886. .IP \(bu 2
  174887. \fBPR\fP \fI\%#47900\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  174888. @ \fI2018\-05\-30 18:09:41 UTC\fP
  174889. .INDENT 2.0
  174890. .IP \(bu 2
  174891. 21550dbd2d Merge pull request \fI\%#47900\fP from rallytime/merge\-2018.3.1\-to\-2018.3
  174892. .IP \(bu 2
  174893. 2801eecb26 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  174894. .UNINDENT
  174895. .IP \(bu 2
  174896. \fBISSUE\fP \fI\%#30367\fP: (\fI\%paulfanelli\fP) salt\-run orchestration via state.sls always successful; it is ignoring state return value (refs: \fI\%#47843\fP)
  174897. .IP \(bu 2
  174898. \fBPR\fP \fI\%#47843\fP: (\fI\%garethgreenaway\fP) [2018.3] orchestration results False when function is False (refs: \fI\%#47983\fP)
  174899. @ \fI2018\-05\-30 17:21:54 UTC\fP
  174900. .INDENT 2.0
  174901. .IP \(bu 2
  174902. a0bf565741 Merge pull request \fI\%#47843\fP from garethgreenaway/30367_orch_return_false_when_function_fails
  174903. .IP \(bu 2
  174904. 09242697b8 Merge branch \(aq2018.3\(aq into 30367_orch_return_false_when_function_fails
  174905. .UNINDENT
  174906. .IP \(bu 2
  174907. \fBPR\fP \fI\%#47866\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47814\fP to 2018.3
  174908. @ \fI2018\-05\-29 19:55:24 UTC\fP
  174909. .INDENT 2.0
  174910. .IP \(bu 2
  174911. \fBPR\fP \fI\%#47814\fP: (\fI\%travispaul\fP) Bugfixes and unit tests for pkgin module (refs: \fI\%#47866\fP)
  174912. .IP \(bu 2
  174913. da6f7a5538 Merge pull request \fI\%#47866\fP from rallytime/bp\-47814
  174914. .IP \(bu 2
  174915. d50c0ab96b Lint test_pkgin.py
  174916. .IP \(bu 2
  174917. 4dac0b4a31 pkgin latest_version bugfix
  174918. .IP \(bu 2
  174919. 4ae0313797 Bugfixes and unit tests for pkgin module
  174920. .UNINDENT
  174921. .IP \(bu 2
  174922. \fBPR\fP \fI\%#47865\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47600\fP to 2018.3
  174923. @ \fI2018\-05\-29 19:54:44 UTC\fP
  174924. .INDENT 2.0
  174925. .IP \(bu 2
  174926. \fBPR\fP \fI\%#47600\fP: (\fI\%travispaul\fP) Prevent crash on NetBSD and OpenBSD when no swap is configured. (refs: \fI\%#47865\fP)
  174927. .IP \(bu 2
  174928. d9e7f2b5b1 Merge pull request \fI\%#47865\fP from rallytime/bp\-47600
  174929. .IP \(bu 2
  174930. f9f464fa51 Prevent crash on NetBSD and OpenBSD when no swap is configured.
  174931. .UNINDENT
  174932. .IP \(bu 2
  174933. \fBPR\fP \fI\%#47221\fP: (\fI\%azelezni\fP) Fix boto_ec2 unused parameter "network_interfaces"
  174934. @ \fI2018\-05\-29 14:41:35 UTC\fP
  174935. .INDENT 2.0
  174936. .IP \(bu 2
  174937. 61561a8279 Merge pull request \fI\%#47221\fP from azelezni/fix\-boto_ec2\-network_interfaces
  174938. .IP \(bu 2
  174939. 03ee0023eb Fix unused network_interfaces parameter
  174940. .IP \(bu 2
  174941. 1ece61ddfa Fix unused network_interfaces parameter
  174942. .IP \(bu 2
  174943. 3e074be9c3 Fixing lint
  174944. .IP \(bu 2
  174945. 02609b6e61 Adding state files for new test.
  174946. .IP \(bu 2
  174947. 377e34c689 Updating function in saltmod to ensure that the result is a failure if the function being run returns as False.
  174948. .UNINDENT
  174949. .IP \(bu 2
  174950. \fBPR\fP \fI\%#47850\fP: (\fI\%rallytime\fP) Fix autodoc for new swarm module
  174951. @ \fI2018\-05\-26 01:53:16 UTC\fP
  174952. .INDENT 2.0
  174953. .IP \(bu 2
  174954. c4d828c986 Merge pull request \fI\%#47850\fP from rallytime/swarm\-autodoc
  174955. .IP \(bu 2
  174956. 467c8fa45c Fix autodoc for new swarm module
  174957. .UNINDENT
  174958. .IP \(bu 2
  174959. \fBPR\fP \fI\%#47800\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  174960. @ \fI2018\-05\-26 01:17:40 UTC\fP
  174961. .INDENT 2.0
  174962. .IP \(bu 2
  174963. 30b31c5db5 Merge pull request \fI\%#47800\fP from rallytime/merge\-2018.3
  174964. .IP \(bu 2
  174965. 9e3ce39e8c Typo: test_type \-\-> text_type
  174966. .IP \(bu 2
  174967. 8877489386 Fix bad merge caught by test in zpool state
  174968. .IP \(bu 2
  174969. c328450be2 Update old utils paths to new paths
  174970. .IP \(bu 2
  174971. 4abfd26e86 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  174972. .INDENT 2.0
  174973. .IP \(bu 2
  174974. 46618d2ce7 Merge pull request \fI\%#47765\fP from meaksh/2017.7\-fix\-zypper\-error\-reading\-repo
  174975. .INDENT 2.0
  174976. .IP \(bu 2
  174977. 4475ba19b8 Prevent zypper from parsing repo configuration from not .repo files
  174978. .UNINDENT
  174979. .IP \(bu 2
  174980. 0e87559ee3 Merge pull request \fI\%#47781\fP from rallytime/update\-linode\-sizes
  174981. .INDENT 2.0
  174982. .IP \(bu 2
  174983. a90c1b760e Update cloud test profile and docs to use new Linode size lables
  174984. .UNINDENT
  174985. .IP \(bu 2
  174986. 3ddc56cb9b Merge pull request \fI\%#47748\fP from rallytime/merge\-2017.7
  174987. .INDENT 2.0
  174988. .IP \(bu 2
  174989. b75f5ae38e Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  174990. .INDENT 2.0
  174991. .IP \(bu 2
  174992. edf94c915e Merge pull request \fI\%#47775\fP from gtmanfred/2017.7.6
  174993. .INDENT 2.0
  174994. .IP \(bu 2
  174995. 548f65d056 catch UnsupportedOperation with AssertionError
  174996. .UNINDENT
  174997. .UNINDENT
  174998. .IP \(bu 2
  174999. 17596f3025 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175000. .INDENT 2.0
  175001. .IP \(bu 2
  175002. 8c38ecd75f Merge pull request \fI\%#47769\fP from gtmanfred/2017.7.6
  175003. .INDENT 2.0
  175004. .IP \(bu 2
  175005. 3fdfc0fa82 skip test that breaks test suite
  175006. .UNINDENT
  175007. .UNINDENT
  175008. .IP \(bu 2
  175009. e458f4a031 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175010. .INDENT 2.0
  175011. .IP \(bu 2
  175012. 0d5b473ce2 Merge pull request \fI\%#47747\fP from Ch3LL/rn_2017.7.6
  175013. .INDENT 2.0
  175014. .IP \(bu 2
  175015. d4aa83b92d Add changelog to 2017.7.6 release notes
  175016. .UNINDENT
  175017. .IP \(bu 2
  175018. 8a5b34f7d9 Merge pull request \fI\%#47702\fP from damon\-atkins/2017.7.6_fix_pkg.latest_state
  175019. .INDENT 2.0
  175020. .IP \(bu 2
  175021. adcc094e08 Merge branch \(aq2017.7.6\(aq into 2017.7.6_fix_pkg.latest_state
  175022. .UNINDENT
  175023. .IP \(bu 2
  175024. d610c192d9 Merge pull request \fI\%#47700\fP from yannj\-fr/2017.7.6
  175025. .INDENT 2.0
  175026. .IP \(bu 2
  175027. 961c1ef61e fix roots modification time check
  175028. .INDENT 2.0
  175029. .IP \(bu 2
  175030. 2a73e905df Merge branch \(aq2017.7.6\(aq into 2017.7.6
  175031. .UNINDENT
  175032. .UNINDENT
  175033. .IP \(bu 2
  175034. 266749420f Merge pull request \fI\%#47632\fP from gtmanfred/2017.7.6
  175035. .INDENT 2.0
  175036. .IP \(bu 2
  175037. 2c50c0d2f5 fix pylint
  175038. .IP \(bu 2
  175039. 4a29057b16 Fix last test for tornado
  175040. .IP \(bu 2
  175041. 550ef2e272 allow using tornado 5.0
  175042. .IP \(bu 2
  175043. 62e468448b handle new _create_stream in tornado 5.0
  175044. .UNINDENT
  175045. .IP \(bu 2
  175046. 2643c356af Merge pull request \fI\%#47720\fP from rallytime/bp\-47692\-2017.7.6
  175047. .INDENT 2.0
  175048. .IP \(bu 2
  175049. 6e5cb36839 Default windows to m1.small for ec2\-classic
  175050. .INDENT 2.0
  175051. .IP \(bu 2
  175052. 20d9785244 fix roots modification time check
  175053. .UNINDENT
  175054. .IP \(bu 2
  175055. aef37dd1ce fix roots modification time check
  175056. .IP \(bu 2
  175057. d51662e053 Ensure targeted_pkgs always contains value for non\-windows.
  175058. .IP \(bu 2
  175059. 83b4224cf8 Adjusted based on feed back.
  175060. .IP \(bu 2
  175061. 12f983ce9f Whitespace lint issues
  175062. .IP \(bu 2
  175063. 075d3d3c49 pkg.install execution module on windows ensures the software package is installed when no version is specified, it does not upgrade the software to the latest. This is per the design. pkg.latest must provide the versions to install to pkg.install
  175064. .UNINDENT
  175065. .UNINDENT
  175066. .UNINDENT
  175067. .IP \(bu 2
  175068. 0ddc864f90 Merge pull request \fI\%#47779\fP from dwoz/winrmtests
  175069. .INDENT 2.0
  175070. .IP \(bu 2
  175071. d5eafe9d53 Use common timeout variable
  175072. .IP \(bu 2
  175073. 7e948eb540 Increase ec2 cloud timeouts to 1000
  175074. .UNINDENT
  175075. .IP \(bu 2
  175076. 17c4c8443c Merge pull request \fI\%#47430\fP from baniobloom/vpc_association_not_found
  175077. .INDENT 2.0
  175078. .IP \(bu 2
  175079. 0f1d007f91 added catch for VPCAssociationNotFound
  175080. .UNINDENT
  175081. .IP \(bu 2
  175082. 9c5dde1449 Merge pull request \fI\%#47525\fP from baniobloom/duplicate_sec_group_rule
  175083. .INDENT 2.0
  175084. .IP \(bu 2
  175085. dcc35df489 if we are trying to add the same rule then we are already in the desired state, return true
  175086. .UNINDENT
  175087. .IP \(bu 2
  175088. 536ce2fa42 Merge pull request \fI\%#47772\fP from gtmanfred/2017.7
  175089. .INDENT 2.0
  175090. .IP \(bu 2
  175091. 67756a50fd lock down dependencies for kitchen\-salt
  175092. .UNINDENT
  175093. .IP \(bu 2
  175094. 12b330f049 Merge pull request \fI\%#47749\fP from terminalmage/issue47717
  175095. .INDENT 2.0
  175096. .IP \(bu 2
  175097. cd484bef69 Fix "dnf list upgrades" parsing
  175098. .UNINDENT
  175099. .IP \(bu 2
  175100. 5cd18b9e70 Merge pull request \fI\%#47755\fP from dwoz/winrmtests
  175101. .INDENT 2.0
  175102. .IP \(bu 2
  175103. 57dd89e6c3 Default to ec2 classic compatible images
  175104. .IP \(bu 2
  175105. f89668920a Be explicit about winrm setting
  175106. .UNINDENT
  175107. .IP \(bu 2
  175108. f45a96ba1d Merge pull request \fI\%#47668\fP from Ch3LL/win_pkg_test
  175109. .INDENT 2.0
  175110. .IP \(bu 2
  175111. a8981024de Add pkg.latest_version windows test
  175112. .UNINDENT
  175113. .IP \(bu 2
  175114. 7b12444dfa Merge pull request \fI\%#47750\fP from dwoz/cloudtest
  175115. .INDENT 2.0
  175116. .IP \(bu 2
  175117. 63b722ba21 Allow ssh_interface to default to public_ips
  175118. .UNINDENT
  175119. .IP \(bu 2
  175120. 27fbb42210 Merge pull request \fI\%#47737\fP from dwoz/win_timeout
  175121. .INDENT 2.0
  175122. .IP \(bu 2
  175123. e88833a07d Cloud test fixup
  175124. .UNINDENT
  175125. .IP \(bu 2
  175126. 1a93f060fb Merge pull request \fI\%#47729\fP from UtahDave/fix_get_info_doc
  175127. .INDENT 2.0
  175128. .IP \(bu 2
  175129. 443a2d72a2 fix cli example to match function name
  175130. .UNINDENT
  175131. .IP \(bu 2
  175132. 00a13761c7 Merge pull request \fI\%#47682\fP from terminalmage/issue47182
  175133. .INDENT 2.0
  175134. .IP \(bu 2
  175135. d0243e8f23 Suppress spurious lint failure
  175136. .IP \(bu 2
  175137. 3b449f11fc Add regression test for excludes issue
  175138. .IP \(bu 2
  175139. 28a7d2b81c Skip __exclude__ in find_sls_ids
  175140. .UNINDENT
  175141. .IP \(bu 2
  175142. 518f7bcc62 Merge pull request \fI\%#47708\fP from darkpixel/47696\-do\-not\-enumerate\-none
  175143. .INDENT 2.0
  175144. .IP \(bu 2
  175145. 54e9bf9ec9 Merge branch \(aq2017.7\(aq into 47696\-do\-not\-enumerate\-none
  175146. .UNINDENT
  175147. .IP \(bu 2
  175148. cad062eaa7 Merge pull request \fI\%#47681\fP from rallytime/merge\-2017.7
  175149. .INDENT 2.0
  175150. .IP \(bu 2
  175151. 6c06cb3ae3 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175152. .UNINDENT
  175153. .IP \(bu 2
  175154. fd2d45d9c2 Merge pull request \fI\%#47683\fP from Ch3LL/mac_user_test
  175155. .INDENT 2.0
  175156. .IP \(bu 2
  175157. 5a1b25b9c7 Remove unnecessary setUp in states.test_user test for mac
  175158. .UNINDENT
  175159. .IP \(bu 2
  175160. f323799c42 Merge pull request \fI\%#47692\fP from dwoz/win_instance_type
  175161. .INDENT 2.0
  175162. .IP \(bu 2
  175163. 20b6070d54 Default windows to m1.small for ec2\-classic
  175164. .UNINDENT
  175165. .IP \(bu 2
  175166. 990ece5cd5 Merge pull request \fI\%#47665\fP from gtmanfred/cloud
  175167. .INDENT 2.0
  175168. .IP \(bu 2
  175169. fd8a02decb use dictupdate to update the providers dictionary and merge lists
  175170. .UNINDENT
  175171. .IP \(bu 2
  175172. a2ed8cbb7f Merge pull request \fI\%#47151\fP from zer0def/configparser\-defaultsect
  175173. .INDENT 2.0
  175174. .IP \(bu 2
  175175. a8f2ad977e Merge branch \(aq2017.7\(aq into configparser\-defaultsect
  175176. .IP \(bu 2
  175177. cca2a806c9 Made interaction with [DEFAULT] section in ConfigParser as sane as upstream permits.
  175178. .UNINDENT
  175179. .IP \(bu 2
  175180. e6fb8342ef Merge pull request \fI\%#47673\fP from terminalmage/bp\-45808
  175181. .INDENT 2.0
  175182. .IP \(bu 2
  175183. 454291ad62 Fix errors when attempting to cache files with long names or URLs
  175184. .UNINDENT
  175185. .IP \(bu 2
  175186. b0446aab07 Merge pull request \fI\%#47670\fP from gtmanfred/2017.7
  175187. .INDENT 2.0
  175188. .IP \(bu 2
  175189. dfd5a8715f add a pytest.ini and update a dependency for kitchen
  175190. .UNINDENT
  175191. .IP \(bu 2
  175192. 0d06da6944 Merge pull request \fI\%#47626\fP from gtmanfred/2017.7
  175193. .INDENT 2.0
  175194. .IP \(bu 2
  175195. 418364a533 make dev_python27.txt have the same message as dev_python34.txt
  175196. .IP \(bu 2
  175197. d53b44d10f remove lock file
  175198. .IP \(bu 2
  175199. 493ed7f93d use the toml dict format
  175200. .IP \(bu 2
  175201. e0f7cc1447 add proxy tests decorator to pytest conftest
  175202. .IP \(bu 2
  175203. 0a621dd0ec add Pipfile for managing dependencies in salt
  175204. .IP \(bu 2
  175205. f78b81db94 simplify dev and base.txt to single files
  175206. .UNINDENT
  175207. .IP \(bu 2
  175208. a07a8906a0 Merge pull request \fI\%#47578\fP from Ch3LL/mac_service_disabled
  175209. .INDENT 2.0
  175210. .IP \(bu 2
  175211. 6032a01f55 change disable check for upstart service on ubuntu14
  175212. .IP \(bu 2
  175213. 33b4cfbc5b Change service assertion check for systemd platforms
  175214. .IP \(bu 2
  175215. 14896f9743 change codeauthor and class name
  175216. .IP \(bu 2
  175217. 502c5bdff5 Ensure mac_service.disabled is correctly querying services
  175218. .INDENT 2.0
  175219. .INDENT 3.5
  175220. .INDENT 0.0
  175221. .INDENT 3.5
  175222. .INDENT 0.0
  175223. .IP \(bu 2
  175224. 95d4488f01 Merge branch \(aq2017.7.6\(aq into 47696\-do\-not\-enumerate\-none
  175225. .UNINDENT
  175226. .UNINDENT
  175227. .UNINDENT
  175228. .INDENT 0.0
  175229. .IP \(bu 2
  175230. 16c2153385 Merge pull request \fI\%#47667\fP from Ch3LL/mac_user_enable
  175231. .INDENT 2.0
  175232. .IP \(bu 2
  175233. ba40d3d1a1 Update test_mac_user_enable_auto_login to test both py2 and py3
  175234. .UNINDENT
  175235. .IP \(bu 2
  175236. a4921e86c9 Merge pull request \fI\%#47645\fP from Ch3LL/py3_rm_pip
  175237. .INDENT 2.0
  175238. .IP \(bu 2
  175239. 225d90ad4c query the pip path for test test_issue_2087_missing_pip
  175240. .UNINDENT
  175241. .IP \(bu 2
  175242. e441733ac1 Merge pull request \fI\%#47646\fP from rallytime/bp\-47601\-and\-47643
  175243. .INDENT 2.0
  175244. .IP \(bu 2
  175245. 9e1d1a5ef8 Fix typo
  175246. .IP \(bu 2
  175247. 4e94609136 Remove unwanted file
  175248. .IP \(bu 2
  175249. 0109249c78 use ignore\-undefined\-variable
  175250. .IP \(bu 2
  175251. 37caecb7f4 Ignore pylint WindowsError
  175252. .IP \(bu 2
  175253. c1135d90c7 Better doc string
  175254. .IP \(bu 2
  175255. e53d6b9ed9 Skip tests when we can not use runas
  175256. .IP \(bu 2
  175257. 041e4c6ddb Wrap properties loop with a check for None. Closes GH\-47696
  175258. .UNINDENT
  175259. .UNINDENT
  175260. .UNINDENT
  175261. .UNINDENT
  175262. .UNINDENT
  175263. .UNINDENT
  175264. .UNINDENT
  175265. .IP \(bu 2
  175266. \fBPR\fP \fI\%#47581\fP: (\fI\%twangboy\fP) Add get_encoding salt util
  175267. @ \fI2018\-05\-25 20:40:07 UTC\fP
  175268. .INDENT 2.0
  175269. .IP \(bu 2
  175270. da9eaa1825 Merge pull request \fI\%#47581\fP from twangboy/fix_47274
  175271. .IP \(bu 2
  175272. ff6600f25e Merge branch \(aq2018.3\(aq into fix_47274
  175273. .IP \(bu 2
  175274. 6eff2f847b Add suggested changes
  175275. .IP \(bu 2
  175276. e27e9fd1e7 Fix tests on Py3
  175277. .IP \(bu 2
  175278. f398cbbdda Use os.linesep.join instead of textwrap.dedent
  175279. .IP \(bu 2
  175280. 771392e299 Fix unit tests, add newline=\(aq\(aq to io.open
  175281. .IP \(bu 2
  175282. c0f735dde3 Remove comment
  175283. .IP \(bu 2
  175284. 6d877bb48b Add comment
  175285. .IP \(bu 2
  175286. 9f369d3f22 Remove to_encoding, create get_encoding
  175287. .IP \(bu 2
  175288. 68be0f9ed2 Add is_encoding salt util
  175289. .UNINDENT
  175290. .IP \(bu 2
  175291. \fBISSUE\fP \fI\%#47694\fP: (\fI\%thuhak\fP) utils/boto and utils/boto3 load error (refs: \fI\%#47726\fP)
  175292. .IP \(bu 2
  175293. \fBPR\fP \fI\%#47726\fP: (\fI\%gtmanfred\fP) rename boto to botomod
  175294. @ \fI2018\-05\-25 20:37:37 UTC\fP
  175295. .INDENT 2.0
  175296. .IP \(bu 2
  175297. b860d95b2c Merge pull request \fI\%#47726\fP from gtmanfred/2018.3
  175298. .IP \(bu 2
  175299. 43997a466e fix tests
  175300. .IP \(bu 2
  175301. 59180e09a8 switch all salt.utils.boto* calls to __utils__ calls
  175302. .IP \(bu 2
  175303. 7e30f459c9 rename boto to botomod
  175304. .UNINDENT
  175305. .IP \(bu 2
  175306. \fBISSUE\fP \fI\%#47701\fP: (\fI\%babs\fP) elasticsearch.index_template_present state with check_definition: True fails. (refs: \fI\%#47703\fP)
  175307. .IP \(bu 2
  175308. \fBPR\fP \fI\%#47803\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47703\fP to 2018.3
  175309. @ \fI2018\-05\-23 20:12:30 UTC\fP
  175310. .INDENT 2.0
  175311. .IP \(bu 2
  175312. \fBPR\fP \fI\%#47703\fP: (\fI\%babs\fP) Fix elasticsearch.index_template_present with check_definition (refs: \fI\%#47803\fP)
  175313. .IP \(bu 2
  175314. 2a270162d0 Merge pull request \fI\%#47803\fP from rallytime/bp\-47703
  175315. .IP \(bu 2
  175316. 8fce0c562d Fix elasticsearch with check_definition
  175317. .UNINDENT
  175318. .IP \(bu 2
  175319. \fBPR\fP \fI\%#47804\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47761\fP to 2018.3
  175320. @ \fI2018\-05\-23 20:11:55 UTC\fP
  175321. .INDENT 2.0
  175322. .IP \(bu 2
  175323. \fBPR\fP \fI\%#47761\fP: (\fI\%zerthimon\fP) Fix userdata in openstack instances (refs: \fI\%#47804\fP)
  175324. .IP \(bu 2
  175325. 780043e6fd Merge pull request \fI\%#47804\fP from rallytime/bp\-47761
  175326. .IP \(bu 2
  175327. b7bc306333 Fix userdata in openstack instances
  175328. .UNINDENT
  175329. .IP \(bu 2
  175330. \fBPR\fP \fI\%#47776\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to failing _before_connect tests
  175331. @ \fI2018\-05\-23 15:10:35 UTC\fP
  175332. .INDENT 2.0
  175333. .IP \(bu 2
  175334. 1efe891c42 Merge pull request \fI\%#47776\fP from garethgreenaway/970_two_minion_unit_tests_failing
  175335. .IP \(bu 2
  175336. a5011b49ab Merge branch \(aq2018.3\(aq into 970_two_minion_unit_tests_failing
  175337. .IP \(bu 2
  175338. ef24f72169 Fixing unit.test_minion.MinionTestCase.test_beacons_before_connect and unit.test_minion.MinionTestCase.test_scheduler_before_connect.
  175339. .UNINDENT
  175340. .IP \(bu 2
  175341. \fBPR\fP \fI\%#47783\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175342. @ \fI2018\-05\-23 14:51:56 UTC\fP
  175343. .INDENT 2.0
  175344. .IP \(bu 2
  175345. 4a6ca67883 Merge pull request \fI\%#47783\fP from rallytime/merge\-2018.3
  175346. .IP \(bu 2
  175347. 1adb8ea27f Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175348. .UNINDENT
  175349. .IP \(bu 2
  175350. \fBPR\fP \fI\%#47149\fP: (\fI\%meaksh\fP) [2018.3] Strip trailing commas on Linux user\(aqs GECOS fields
  175351. @ \fI2018\-05\-22 21:18:49 UTC\fP
  175352. .INDENT 2.0
  175353. .IP \(bu 2
  175354. f8a6a85d28 Merge pull request \fI\%#47149\fP from meaksh/2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  175355. .IP \(bu 2
  175356. 60ec3230db Merge branch \(aq2018.3\(aq into 2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  175357. .UNINDENT
  175358. .IP \(bu 2
  175359. \fBISSUE\fP \fI\%#46938\fP: (\fI\%racooper\fP) Beacons documentation update for 2018.3 (refs: \fI\%#47740\fP)
  175360. .IP \(bu 2
  175361. \fBPR\fP \fI\%#47740\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating Beacon topic to include list based configuration for Beacons
  175362. @ \fI2018\-05\-21 13:58:01 UTC\fP
  175363. .INDENT 2.0
  175364. .IP \(bu 2
  175365. 19f4137b63 Merge pull request \fI\%#47740\fP from garethgreenaway/46938_beacons_documentation
  175366. .IP \(bu 2
  175367. 5d23ef4dd8 Updating Beacon topic to include list based configuration for Beacons
  175368. .UNINDENT
  175369. .IP \(bu 2
  175370. \fBPR\fP \fI\%#47710\fP: (\fI\%terminalmage\fP) salt.loader: add error logging when whitelist lookup fails
  175371. @ \fI2018\-05\-18 16:56:18 UTC\fP
  175372. .INDENT 2.0
  175373. .IP \(bu 2
  175374. 22807ac756 Merge pull request \fI\%#47710\fP from terminalmage/fix\-loader\-whitelist
  175375. .IP \(bu 2
  175376. 6192391b7b Add additional missing modules to whitelist
  175377. .IP \(bu 2
  175378. 7192c38f66 Change key \-> function to make log message more clear
  175379. .IP \(bu 2
  175380. 91f9fd38fd Fix loader whitelists in unit tests
  175381. .IP \(bu 2
  175382. d4f2662e5b Add error logging when whitelist lookup fails
  175383. .UNINDENT
  175384. .IP \(bu 2
  175385. \fBPR\fP \fI\%#47680\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175386. @ \fI2018\-05\-17 21:30:27 UTC\fP
  175387. .INDENT 2.0
  175388. .IP \(bu 2
  175389. b91c0f5647 Merge pull request \fI\%#47680\fP from rallytime/merge\-2018.3
  175390. .IP \(bu 2
  175391. 9b1773a763 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175392. .UNINDENT
  175393. .IP \(bu 2
  175394. \fBPR\fP \fI\%#47545\fP: (\fI\%dmurphy18\fP) Fix non\-root build and signing for rpm packages
  175395. @ \fI2018\-05\-17 21:20:10 UTC\fP
  175396. .INDENT 2.0
  175397. .IP \(bu 2
  175398. dbf12f9be2 Merge pull request \fI\%#47545\fP from dmurphy18/fix_nonroot_build
  175399. .IP \(bu 2
  175400. 220f887fa6 Fixed review comment, changed file.chown to file.makedirs_perms
  175401. .IP \(bu 2
  175402. b15a1652b5 Changed versionadded from 2018.3.1 to 2018.3.2, to reflect when change should be accepted
  175403. .IP \(bu 2
  175404. 90eb03e375 Additional error checking and minor cleanup
  175405. .IP \(bu 2
  175406. 40d77e03d2 Correct building rpms with non\-root user
  175407. .UNINDENT
  175408. .IP \(bu 2
  175409. \fBISSUE\fP \fI\%#47546\fP: (\fI\%ender8282\fP) archive.extracted fails when archive includes files with non\-ascii names with 2018.3.0 (refs: \fI\%#48015\fP, \fI\%#47572\fP)
  175410. .IP \(bu 2
  175411. \fBPR\fP \fI\%#47572\fP: (\fI\%garethgreenaway\fP) [2018.3] archive module, filenames with Unicode characters
  175412. @ \fI2018\-05\-17 20:41:11 UTC\fP
  175413. .INDENT 2.0
  175414. .IP \(bu 2
  175415. 69056e5b67 Merge pull request \fI\%#47572\fP from garethgreenaway/47546_archive_non_ascii_filenames
  175416. .IP \(bu 2
  175417. 5e97b8b44a Updating with requested changes.
  175418. .IP \(bu 2
  175419. cc1aa75a2f only convert to bytes when using Python2
  175420. .IP \(bu 2
  175421. 0fe32f4066 Updating integration/modules/test_archive to include filenames with unicode characters.
  175422. .IP \(bu 2
  175423. 5a9cadd125 Accounting for when files in an archive contain non\-ascii characters
  175424. .UNINDENT
  175425. .IP \(bu 2
  175426. \fBPR\fP \fI\%#47661\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  175427. @ \fI2018\-05\-16 15:53:36 UTC\fP
  175428. .INDENT 2.0
  175429. .IP \(bu 2
  175430. cb04d9c37e Merge pull request \fI\%#47661\fP from rallytime/merge\-2018.3
  175431. .IP \(bu 2
  175432. dd3e6f3f0a Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  175433. .INDENT 2.0
  175434. .IP \(bu 2
  175435. f63d801858 Merge pull request \fI\%#47639\fP from rallytime/merge\-2017.7
  175436. .INDENT 2.0
  175437. .IP \(bu 2
  175438. 1503f1020f Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  175439. .INDENT 2.0
  175440. .IP \(bu 2
  175441. 6f178ca908 Merge pull request \fI\%#47570\fP from gtmanfred/2017.7.6
  175442. .INDENT 2.0
  175443. .IP \(bu 2
  175444. 84aa034e03 Update dependency to msgpack
  175445. .UNINDENT
  175446. .IP \(bu 2
  175447. 98bd598701 Merge pull request \fI\%#47523\fP from rallytime/man\-pages
  175448. .INDENT 2.0
  175449. .IP \(bu 2
  175450. 48ecb78dec [2017.7.6] Update man pages
  175451. .UNINDENT
  175452. .IP \(bu 2
  175453. e608ea9617 Merge pull request \fI\%#47517\fP from rallytime/bp\-47505\-2017.7.6
  175454. .IP \(bu 2
  175455. 0734578533 Raise proper invocation errors
  175456. .UNINDENT
  175457. .UNINDENT
  175458. .IP \(bu 2
  175459. db0eef3e8b Merge pull request \fI\%#47643\fP from dwoz/runas_detect
  175460. .INDENT 2.0
  175461. .IP \(bu 2
  175462. 8c5e54b8b3 Fix typo
  175463. .IP \(bu 2
  175464. 69bc88f1c6 Remove unwanted file
  175465. .UNINDENT
  175466. .IP \(bu 2
  175467. 6dd3ab9f06 Merge pull request \fI\%#47601\fP from dwoz/runas_detect
  175468. .INDENT 2.0
  175469. .IP \(bu 2
  175470. 3235ac08cb use ignore\-undefined\-variable
  175471. .IP \(bu 2
  175472. 58911d510a Ignore pylint WindowsError
  175473. .IP \(bu 2
  175474. 17987d3c5a Better doc string
  175475. .IP \(bu 2
  175476. a48ac26573 Skip tests when we can not use runas
  175477. .UNINDENT
  175478. .IP \(bu 2
  175479. f61ccae627 Merge pull request \fI\%#47611\fP from Ch3LL/deb_doc
  175480. .INDENT 2.0
  175481. .IP \(bu 2
  175482. 6d2ddd050f One more grammar fixup
  175483. .IP \(bu 2
  175484. 2d5ff01261 Grammar fix
  175485. .IP \(bu 2
  175486. 138847c9c4 Update debian install docs to reflect new latest debian releases
  175487. .UNINDENT
  175488. .IP \(bu 2
  175489. 9e2fe284e4 Merge pull request \fI\%#47598\fP from rallytime/bp\-47568\-2017.7
  175490. .INDENT 2.0
  175491. .IP \(bu 2
  175492. 09458c65cf Add exception logging on serialize/deserialize exceptions
  175493. .IP \(bu 2
  175494. c62c855f9c salt.serializers.yaml/yamlex: remove invalid multi_constructor
  175495. .UNINDENT
  175496. .IP \(bu 2
  175497. 8a7913ccc3 Merge pull request \fI\%#47548\fP from Ch3LL/syslog
  175498. .INDENT 2.0
  175499. .IP \(bu 2
  175500. 31f13a4197 sysloghander: check for 3.5.4 python version
  175501. .IP \(bu 2
  175502. a020352a03 Catch Sysloghandler errors when log file does not exist
  175503. .UNINDENT
  175504. .IP \(bu 2
  175505. 82fb6ba366 Merge pull request \fI\%#47508\fP from gtmanfred/2017.7
  175506. .INDENT 2.0
  175507. .IP \(bu 2
  175508. 1a87e7455f allow pulling the mysql_query.run_file to pull from the fileserver
  175509. .UNINDENT
  175510. .IP \(bu 2
  175511. be29b58a09 Merge pull request \fI\%#47562\fP from rallytime/bp\-47513
  175512. .INDENT 2.0
  175513. .IP \(bu 2
  175514. 357bc084b3 fix \fI\%#46546\fP
  175515. .UNINDENT
  175516. .IP \(bu 2
  175517. d3121fcfa4 Merge pull request \fI\%#47471\fP from meaksh/2017.7\-fix\-inconsistent\-scheduled\-jid\-with\-returners
  175518. .INDENT 2.0
  175519. .IP \(bu 2
  175520. f079939500 Do not override jid on returners, only sending back to master
  175521. .UNINDENT
  175522. .IP \(bu 2
  175523. 662f6086db Merge pull request \fI\%#47313\fP from Circuitsoft/2017.7
  175524. .INDENT 2.0
  175525. .IP \(bu 2
  175526. 237560b745 Merge branch \(aq2017.7\(aq into 2017.7
  175527. .IP \(bu 2
  175528. cb674fb1cb Enable opkg as pkgrepo handler on Poky
  175529. .IP \(bu 2
  175530. 7a58fd157e Enable opkg on non\-NILinuxRT systems
  175531. .IP \(bu 2
  175532. 139360c55f Add Poky to OS Information Grains
  175533. .IP \(bu 2
  175534. d74057224d Un\-normalize os_family in pkgrepo state
  175535. .UNINDENT
  175536. .UNINDENT
  175537. .UNINDENT
  175538. .IP \(bu 2
  175539. \fBPR\fP \fI\%#47672\fP: (\fI\%terminalmage\fP) Backport \fI\%#47487\fP to 2018.3
  175540. @ \fI2018\-05\-16 13:55:40 UTC\fP
  175541. .INDENT 2.0
  175542. .IP \(bu 2
  175543. \fBPR\fP \fI\%#47487\fP: (\fI\%rosscdh\fP) bad ref to error fix (refs: \fI\%#47672\fP)
  175544. .IP \(bu 2
  175545. d17a16b648 Merge pull request \fI\%#47672\fP from terminalmage/bp\-47487
  175546. .IP \(bu 2
  175547. 12abbfdcf7 bad ref to error fix
  175548. .UNINDENT
  175549. .IP \(bu 2
  175550. \fBISSUE\fP \fI\%#47501\fP: (\fI\%mateiw\fP) salt\-ssh doesn\(aqt propagate pillar when overriding pillar in module.run + state.apply (refs: \fI\%#47504\fP)
  175551. .IP \(bu 2
  175552. \fBPR\fP \fI\%#47504\fP: (\fI\%mateiw\fP) Fix pillar propagation in salt\-ssh when overriding pillar in module.run + state.apply
  175553. @ \fI2018\-05\-16 13:55:05 UTC\fP
  175554. .INDENT 2.0
  175555. .IP \(bu 2
  175556. 9d4f5203a7 Merge pull request \fI\%#47504\fP from mateiw/2018.3\-salt\-ssh\-pillar\-propagation\-issue\-47501
  175557. .IP \(bu 2
  175558. 3ffa412ee5 Merge branch \(aq2018.3\(aq into 2018.3\-salt\-ssh\-pillar\-propagation\-issue\-47501
  175559. .IP \(bu 2
  175560. 2f1485e067 Option to merge current pillar with opts[\(aqpillar\(aq] during pillar compile
  175561. .UNINDENT
  175562. .IP \(bu 2
  175563. \fBPR\fP \fI\%#47212\fP: (\fI\%weswhet\fP) fix macOS running as user.
  175564. @ \fI2018\-05\-16 13:54:23 UTC\fP
  175565. .INDENT 2.0
  175566. .IP \(bu 2
  175567. 4fe78bbb9b Merge pull request \fI\%#47212\fP from weswhet/fix\-macos\-runas
  175568. .IP \(bu 2
  175569. 8ee11d74af Merge branch \(aq2018.3\(aq into fix\-macos\-runas
  175570. .IP \(bu 2
  175571. e78fa45927 adding in requested changes
  175572. .IP \(bu 2
  175573. 33c1492099 Merge branch \(aq2018.3\(aq into fix\-macos\-runas
  175574. .IP \(bu 2
  175575. 0ecabcae78 adding in a fix for running commands as a user on macos
  175576. .UNINDENT
  175577. .IP \(bu 2
  175578. \fBISSUE\fP \fI\%#47587\fP: (\fI\%FedericoOlivieri\fP) \-\-out=table broken in 2018.3.0 \(aqstr\(aq object but received a \(aqunicode\(aq (refs: \fI\%#47674\fP)
  175579. .IP \(bu 2
  175580. \fBPR\fP \fI\%#47674\fP: (\fI\%terminalmage\fP) Fix regression in table outputter due to unicode types
  175581. @ \fI2018\-05\-16 13:41:04 UTC\fP
  175582. .INDENT 2.0
  175583. .IP \(bu 2
  175584. 0c7439a955 Merge pull request \fI\%#47674\fP from terminalmage/issue47587
  175585. .IP \(bu 2
  175586. 43e3dcd398 Fix Python 3 incompatibility in table outputter
  175587. .IP \(bu 2
  175588. d729656703 Add unit tests for table outputter
  175589. .IP \(bu 2
  175590. 907d182dea Fix regression in table outputter due to unicode strings
  175591. .UNINDENT
  175592. .IP \(bu 2
  175593. \fBPR\fP \fI\%#47617\fP: (\fI\%aesposito91\fP) Update napalm.py
  175594. @ \fI2018\-05\-15 15:44:35 UTC\fP
  175595. .INDENT 2.0
  175596. .IP \(bu 2
  175597. d1a1a594e9 Merge pull request \fI\%#47617\fP from aesposito91/2018.3
  175598. .IP \(bu 2
  175599. 9f5d201dd7 Update napalm.py
  175600. .UNINDENT
  175601. .IP \(bu 2
  175602. \fBISSUE\fP \fI\%#46871\fP: (\fI\%guettli\fP) Sentry Logging Handler (refs: \fI\%#47649\fP)
  175603. .IP \(bu 2
  175604. \fBPR\fP \fI\%#47649\fP: (\fI\%paulcollinsiii\fP) Some additional details about Sentry for the docs
  175605. @ \fI2018\-05\-15 15:41:36 UTC\fP
  175606. .INDENT 2.0
  175607. .IP \(bu 2
  175608. 049abe2850 Merge pull request \fI\%#47649\fP from paulcollinsiii/sentry_docs
  175609. .IP \(bu 2
  175610. 2a8dfd65d7 Some additional details about Sentry for the docs
  175611. .UNINDENT
  175612. .IP \(bu 2
  175613. \fBPR\fP \fI\%#47642\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating templates used by salt\-extend for unicode goodness
  175614. @ \fI2018\-05\-15 15:38:26 UTC\fP
  175615. .INDENT 2.0
  175616. .IP \(bu 2
  175617. 8a21b864df Merge pull request \fI\%#47642\fP from garethgreenaway/unicode_update_salt_extend_templates
  175618. .IP \(bu 2
  175619. 68d73f7afc Updating the templates that the salt\-extend utility uses to include unicode_literals & print_function
  175620. .INDENT 2.0
  175621. .INDENT 3.5
  175622. .INDENT 0.0
  175623. .IP \(bu 2
  175624. 0232a6e1ad Add \(aqother\(aq as valid kwargs for \(aquser.add\(aq method
  175625. .IP \(bu 2
  175626. ff861d9089 Merge branch \(aq2018.3\(aq into 2018.3\-remove\-trailing\-commas\-on\-linux\-user\-gecos\-fields
  175627. .UNINDENT
  175628. .UNINDENT
  175629. .UNINDENT
  175630. .UNINDENT
  175631. .IP \(bu 2
  175632. \fBPR\fP \fI\%#47603\fP: (\fI\%terminalmage\fP) Move/merge more test modules
  175633. @ \fI2018\-05\-14 20:48:43 UTC\fP
  175634. .INDENT 2.0
  175635. .IP \(bu 2
  175636. 99f53c0a9f Merge pull request \fI\%#47603\fP from terminalmage/more\-test\-renaming
  175637. .IP \(bu 2
  175638. d612bd27e4 Move/merge more test modules
  175639. .UNINDENT
  175640. .IP \(bu 2
  175641. \fBPR\fP \fI\%#47640\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.1 to 2018.3
  175642. @ \fI2018\-05\-14 17:59:06 UTC\fP
  175643. .INDENT 2.0
  175644. .IP \(bu 2
  175645. cc3daa88f3 Merge pull request \fI\%#47640\fP from rallytime/merge\-2018.3
  175646. .IP \(bu 2
  175647. 2827c56399 Merge branch \(aq2018.3.1\(aq into \(aq2018.3\(aq
  175648. .INDENT 2.0
  175649. .INDENT 3.5
  175650. .INDENT 0.0
  175651. .IP \(bu 2
  175652. f1680f1d9b Do make comparisons in a single line
  175653. .IP \(bu 2
  175654. 7dea455c12 Add unit test for new method \(aquser.chother\(aq
  175655. .IP \(bu 2
  175656. 694882632c Add \(aqother\(aq attribute to GECOS fields to avoid inconsistencies with chfn
  175657. .IP \(bu 2
  175658. 6c089c9de1 Fix unsupported chars checking on GECOS fields
  175659. .IP \(bu 2
  175660. d5c9ca0fbc Add unit tests for GECOS fields
  175661. .IP \(bu 2
  175662. ed940c4f58 Strip trailing commas on Linux user GECOS fields
  175663. .UNINDENT
  175664. .UNINDENT
  175665. .UNINDENT
  175666. .UNINDENT
  175667. .IP \(bu 2
  175668. \fBPR\fP \fI\%#47589\fP: (\fI\%Ch3LL\fP) Remove duplicate file id in watch_any doc example
  175669. @ \fI2018\-05\-10 22:06:00 UTC\fP
  175670. .INDENT 2.0
  175671. .IP \(bu 2
  175672. 4ec63dd041 Merge pull request \fI\%#47589\fP from Ch3LL/watch_any_doc
  175673. .IP \(bu 2
  175674. 8cb97a48f5 Add additional state to watch_any doc example
  175675. .IP \(bu 2
  175676. f7223a3bbf Remove duplicate file id in watch_any doc example
  175677. .UNINDENT
  175678. .IP \(bu 2
  175679. \fBPR\fP \fI\%#47564\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  175680. @ \fI2018\-05\-10 19:13:36 UTC\fP
  175681. .INDENT 2.0
  175682. .IP \(bu 2
  175683. 9836a7e62b Merge pull request \fI\%#47564\fP from rallytime/merge\-2018.3
  175684. .IP \(bu 2
  175685. 295e302fcf Lint: Fix syntax error from bad merge\-conflict resolution
  175686. .IP \(bu 2
  175687. 25f03ae425 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  175688. .IP \(bu 2
  175689. 291d3d3bd8 Merge pull request \fI\%#47540\fP from terminalmage/cmdmod\-home\-fix
  175690. .INDENT 2.0
  175691. .IP \(bu 2
  175692. e4b277f82e Fix corner case where runas user\(aqs HOME env value is incorrect
  175693. .UNINDENT
  175694. .IP \(bu 2
  175695. 49af577b3e Merge pull request \fI\%#47547\fP from terminalmage/gitfs\-tutorial
  175696. .INDENT 2.0
  175697. .IP \(bu 2
  175698. 806ffb298a Add masterless mode docs to gitfs tutorial
  175699. .UNINDENT
  175700. .IP \(bu 2
  175701. 476ba053d1 Merge pull request \fI\%#47538\fP from terminalmage/pip\-docs
  175702. .INDENT 2.0
  175703. .IP \(bu 2
  175704. 98e8ffeba4 Fix/clarify some of the pip module documentation
  175705. .UNINDENT
  175706. .IP \(bu 2
  175707. 7cc8d9d30a Merge pull request \fI\%#47524\fP from dwoz/whitelistlines
  175708. .INDENT 2.0
  175709. .IP \(bu 2
  175710. 2605ff8712 Gracefully handle blank lines in whitelist.txt
  175711. .UNINDENT
  175712. .IP \(bu 2
  175713. f1a5b13072 Merge pull request \fI\%#47527\fP from dwoz/test_file_name
  175714. .INDENT 2.0
  175715. .IP \(bu 2
  175716. 4aea7ca571 Update doc string
  175717. .IP \(bu 2
  175718. b3289e5a1c Fix test file name
  175719. .UNINDENT
  175720. .IP \(bu 2
  175721. e9c1723175 Merge pull request \fI\%#47408\fP from Ch3LL/skip_diskusage
  175722. .INDENT 2.0
  175723. .IP \(bu 2
  175724. 068da8ad7d Merge branch \(aq2017.7\(aq into skip_diskusage
  175725. .IP \(bu 2
  175726. 1a7ffb4e0d return error if diskusage not available
  175727. .IP \(bu 2
  175728. 10bd63a976 Skip status.diskusage integration tests on macsox
  175729. .UNINDENT
  175730. .IP \(bu 2
  175731. 2f50ff7bc8 Merge pull request \fI\%#47480\fP from baniobloom/ConflictingDomainExists
  175732. .INDENT 2.0
  175733. .IP \(bu 2
  175734. d22ed7dffa added handling for the aws error ConflictingDomainExists
  175735. .UNINDENT
  175736. .IP \(bu 2
  175737. 7f53be6e92 Merge pull request \fI\%#47444\fP from terminalmage/render_state\-spurious\-error
  175738. .INDENT 2.0
  175739. .IP \(bu 2
  175740. a1e9fe00fd Skip trying to render a template for a nonexistant SLS file
  175741. .UNINDENT
  175742. .IP \(bu 2
  175743. 50b9c4d79d Merge pull request \fI\%#47478\fP from terminalmage/rename\-pip\-state\-test
  175744. .INDENT 2.0
  175745. .IP \(bu 2
  175746. 9f7a9ebebd Rename pip state test modules to match naming convention
  175747. .UNINDENT
  175748. .IP \(bu 2
  175749. e78ac0f9b7 Merge pull request \fI\%#47505\fP from dwoz/win_dsc_fixes
  175750. .INDENT 2.0
  175751. .IP \(bu 2
  175752. d1fcb40d1c Raise proper invocation errors
  175753. .UNINDENT
  175754. .IP \(bu 2
  175755. 0d4d5047d8 Merge pull request \fI\%#47499\fP from dwoz/win_run_timeout_again
  175756. .INDENT 2.0
  175757. .IP \(bu 2
  175758. c6697b9f16 Move kill process tree and re\-use it
  175759. .UNINDENT
  175760. .IP \(bu 2
  175761. 6a4d0380b1 Merge pull request \fI\%#47493\fP from dwoz/win_run_timeout
  175762. .IP \(bu 2
  175763. fec1233dc4 Add support for windows timeout to run_salt
  175764. .UNINDENT
  175765. .IP \(bu 2
  175766. \fBPR\fP \fI\%#47565\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47440\fP to 2018.3
  175767. @ \fI2018\-05\-10 18:15:50 UTC\fP
  175768. .INDENT 2.0
  175769. .IP \(bu 2
  175770. \fBPR\fP \fI\%#47440\fP: (\fI\%kt97679\fP) fix for the race condition, details are here: \fI\%https://github.com/salt\fP… (refs: \fI\%#47565\fP)
  175771. .IP \(bu 2
  175772. b22657ff9e Merge pull request \fI\%#47565\fP from rallytime/bp\-47440
  175773. .IP \(bu 2
  175774. 7c43417d46 addressed feedback
  175775. .IP \(bu 2
  175776. 1abe05207c fix for the race condition, details are here: \fI\%https://github.com/saltstack/salt/issues/33223#issuecomment\-386117236\fP
  175777. .UNINDENT
  175778. .IP \(bu 2
  175779. \fBPR\fP \fI\%#47590\fP: (\fI\%Ch3LL\fP) Fix firewalld prune_services deprecation warning
  175780. @ \fI2018\-05\-10 17:01:48 UTC\fP
  175781. .INDENT 2.0
  175782. .IP \(bu 2
  175783. 17e0fdca6c Merge pull request \fI\%#47590\fP from Ch3LL/firewall_warn
  175784. .IP \(bu 2
  175785. d29b8e0ae2 Fix firewalld prune_services deprecation warning
  175786. .UNINDENT
  175787. .IP \(bu 2
  175788. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47598\fP)
  175789. @ \fI2018\-05\-10 16:21:09 UTC\fP
  175790. .INDENT 2.0
  175791. .IP \(bu 2
  175792. 2fcb108d71 Merge pull request \fI\%#47568\fP from terminalmage/salt\-jenkins\-971
  175793. .UNINDENT
  175794. .IP \(bu 2
  175795. \fBISSUE\fP \fI\%#38671\fP: (\fI\%MikeSpaceG\fP) zpool.get error (refs: \fI\%#47224\fP)
  175796. .IP \(bu 2
  175797. \fBPR\fP \fI\%#47563\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47224\fP to 2018.3
  175798. @ \fI2018\-05\-10 16:18:07 UTC\fP
  175799. .INDENT 2.0
  175800. .IP \(bu 2
  175801. \fBPR\fP \fI\%#47224\fP: (\fI\%sjorge\fP) Zpool zol fixes (refs: \fI\%#47563\fP)
  175802. .IP \(bu 2
  175803. e3ee7053fb Merge pull request \fI\%#47563\fP from rallytime/bp\-47224
  175804. .IP \(bu 2
  175805. 1d191445a7 FIX \fI\%#38671\fP \- zpool.get should support older zfs version
  175806. .IP \(bu 2
  175807. 23705b12cb zpool.scub docs should mention pause is not always available
  175808. .IP \(bu 2
  175809. d73885aa5c Make sure the docs mention that createboot is only available on illumos
  175810. .UNINDENT
  175811. .IP \(bu 2
  175812. \fBPR\fP \fI\%#47569\fP: (\fI\%Ch3LL\fP) Update salt.utils.path mock in virtual core test
  175813. @ \fI2018\-05\-10 15:18:31 UTC\fP
  175814. .INDENT 2.0
  175815. .IP \(bu 2
  175816. 8e26624db3 Merge pull request \fI\%#47569\fP from Ch3LL/core_virt
  175817. .UNINDENT
  175818. .IP \(bu 2
  175819. \fBPR\fP \fI\%#47576\fP: (\fI\%rallytime\fP) [2018.3] Small Documentation Fixes
  175820. @ \fI2018\-05\-10 14:08:11 UTC\fP
  175821. .INDENT 2.0
  175822. .IP \(bu 2
  175823. fc93715eea Merge pull request \fI\%#47576\fP from rallytime/doc\-updates
  175824. .IP \(bu 2
  175825. ca927fc14b Add extra lines that are needed for proper code\-block formatting
  175826. .IP \(bu 2
  175827. b330d763a4 Remove infoblox state autodoc file
  175828. .UNINDENT
  175829. .UNINDENT
  175830. .SS Salt 2018.3.4 Release Notes
  175831. .sp
  175832. Version 2018.3.4 is a bugfix release for 2018.3.0\&.
  175833. .SS State Changes
  175834. .INDENT 0.0
  175835. .IP \(bu 2
  175836. The \fBhost.present\fP state can now remove
  175837. the specified hostname from IPs not specified in the state. This can be done
  175838. by setting the newly\-added \fBclean\fP argument to \fBTrue\fP\&.
  175839. .UNINDENT
  175840. .SS Statistics
  175841. .INDENT 0.0
  175842. .IP \(bu 2
  175843. Total Merges: \fB531\fP
  175844. .IP \(bu 2
  175845. Total Issue References: \fB111\fP
  175846. .IP \(bu 2
  175847. Total PR References: \fB412\fP
  175848. .IP \(bu 2
  175849. Contributors: \fB76\fP (\fI\%5uper5hoot\fP, \fI\%Ch3LL\fP, \fI\%ClaudiuPID\fP, \fI\%Giandom\fP, \fI\%KaiSforza\fP, \fI\%MTecknology\fP, \fI\%ManicoW\fP, \fI\%OrangeDog\fP, \fI\%ShantonRU\fP, \fI\%The\-Loeki\fP, \fI\%Yxnt\fP, \fI\%aarnaud\fP, \fI\%amendlik\fP, \fI\%angeloudy\fP, \fI\%bartlaarhoven\fP, \fI\%bbh\-kmd\fP, \fI\%bbinet\fP, \fI\%bdrung\fP, \fI\%bergmannf\fP, \fI\%bluesliverx\fP, \fI\%bornwitbugs\fP, \fI\%brejoc\fP, \fI\%cachedout\fP, \fI\%casselt\fP, \fI\%cro\fP, \fI\%cstarke\fP, \fI\%dgmorrisjr\fP, \fI\%dmurphy18\fP, \fI\%dubb\-b\fP, \fI\%dwoz\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jacobweinstock\fP, \fI\%jgleissner\fP, \fI\%jodok\fP, \fI\%jpsv\fP, \fI\%jyurdal\fP, \fI\%kiemlicz\fP, \fI\%kunal\-bajpai\fP, \fI\%lexvella\fP, \fI\%lomeroe\fP, \fI\%m03\fP, \fI\%madrisan\fP, \fI\%mat813\fP, \fI\%mattp\-\fP, \fI\%max\-arnold\fP, \fI\%mchugh19\fP, \fI\%meaksh\fP, \fI\%michaelgibson\fP, \fI\%nhavens\fP, \fI\%pirogoeth\fP, \fI\%rallytime\fP, \fI\%rkrieger\fP, \fI\%rmarcinik\fP, \fI\%rongzeng54\fP, \fI\%rwaweber\fP, \fI\%s0undt3ch\fP, \fI\%sathieu\fP, \fI\%sheagcraig\fP, \fI\%silenius\fP, \fI\%sunyq\fP, \fI\%t0fik\fP, \fI\%terminalmage\fP, \fI\%terrible\-broom\fP, \fI\%thebluesnevrdie\fP, \fI\%thetaurean\fP, \fI\%tlemarchand\fP, \fI\%tonybaloney\fP, \fI\%twangboy\fP, \fI\%waynew\fP, \fI\%weswhet\fP, \fI\%whytewolf\fP, \fI\%yosnoop\fP, \fI\%zwo\-bot\fP)
  175850. .UNINDENT
  175851. .SS Changelog for v2018.3.3..v2018.3.4
  175852. .sp
  175853. \fIGenerated at: 2019\-02\-06 20:56:17 UTC\fP
  175854. .INDENT 0.0
  175855. .IP \(bu 2
  175856. \fBPR\fP \fI\%#51525\fP: (\fI\%twangboy\fP) Backport 51095 to 2018.3.4
  175857. @ \fI2019\-02\-06 20:20:37 UTC\fP
  175858. .INDENT 2.0
  175859. .IP \(bu 2
  175860. a37fb7d Merge pull request \fI\%#51525\fP from twangboy/backport_51095_2018.3.4
  175861. .IP \(bu 2
  175862. b6acc92 Backport 51095
  175863. .UNINDENT
  175864. .IP \(bu 2
  175865. \fBPR\fP \fI\%#51520\fP: (\fI\%frogunder\fP) Update man pages for 2018.3.4
  175866. @ \fI2019\-02\-06 18:42:13 UTC\fP
  175867. .INDENT 2.0
  175868. .IP \(bu 2
  175869. 602ddc8 Merge pull request \fI\%#51520\fP from frogunder/man_pages
  175870. .IP \(bu 2
  175871. 0cbe3f8 Update man pages for 2018.3.4
  175872. .UNINDENT
  175873. .IP \(bu 2
  175874. \fBISSUE\fP \fI\%#51428\fP: (\fI\%yosnoop\fP) salt.utils.dns.lookup fails with dig method on EL7 (refs: \fI\%#51429\fP)
  175875. .IP \(bu 2
  175876. \fBPR\fP \fI\%#51429\fP: (\fI\%yosnoop\fP) The +nocl is supported much wider than +noclass
  175877. @ \fI2019\-02\-06 17:48:48 UTC\fP
  175878. .INDENT 2.0
  175879. .IP \(bu 2
  175880. 1f981c6 Merge pull request \fI\%#51429\fP from yosnoop/replace\-noclass\-with\-nocl\-for\-dig
  175881. .IP \(bu 2
  175882. 5231e73 Merge branch \(aq2018.3.4\(aq into replace\-noclass\-with\-nocl\-for\-dig
  175883. .IP \(bu 2
  175884. 14e6fb7 In case the test machine can\(aqt resolve
  175885. .IP \(bu 2
  175886. 95e8a2f The +nocl is supported much wider than +noclass
  175887. .IP \(bu 2
  175888. a00d708 Test dig options for salt.utils.dns.lookup
  175889. .UNINDENT
  175890. .IP \(bu 2
  175891. \fBISSUE\fP \fI\%#49226\fP: (\fI\%defanator\fP) salt\-cloud grains inheritance from provider to profile (2018 vs 2016) (refs: \fI\%#51366\fP)
  175892. .IP \(bu 2
  175893. \fBPR\fP \fI\%#51441\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51366\fP into 2018.3.4
  175894. @ \fI2019\-02\-06 17:42:19 UTC\fP
  175895. .INDENT 2.0
  175896. .IP \(bu 2
  175897. \fBPR\fP \fI\%#51366\fP: (\fI\%dwoz\fP) Cloud provider and profile configs are merged [2018.3] (refs: \fI\%#51441\fP)
  175898. .IP \(bu 2
  175899. 209ef32 Merge pull request \fI\%#51441\fP from Ch3LL/bp\-51366
  175900. .IP \(bu 2
  175901. 5bc466e Fix python 3 path for shell test cases
  175902. .IP \(bu 2
  175903. 5351e5c Add testing path to run_script commands
  175904. .IP \(bu 2
  175905. 2d8a364 Fix linter issues
  175906. .IP \(bu 2
  175907. 9b8718a Cloud provider and profile configs are merged
  175908. .UNINDENT
  175909. .IP \(bu 2
  175910. \fBPR\fP \fI\%#51458\fP: (\fI\%twangboy\fP) Add Py2 Warning for Py2 Installer
  175911. @ \fI2019\-02\-06 17:33:02 UTC\fP
  175912. .INDENT 2.0
  175913. .IP \(bu 2
  175914. 90a8682 Merge pull request \fI\%#51458\fP from twangboy/add_py2_warning
  175915. .IP \(bu 2
  175916. 05522c0 Merge branch \(aq2018.3.4\(aq into add_py2_warning
  175917. .UNINDENT
  175918. .IP \(bu 2
  175919. \fBPR\fP \fI\%#51460\fP: (\fI\%twangboy\fP) Update installer mac 2018.3.4
  175920. @ \fI2019\-02\-06 17:31:18 UTC\fP
  175921. .INDENT 2.0
  175922. .IP \(bu 2
  175923. b492021 Merge pull request \fI\%#51460\fP from twangboy/update_installer_mac_2018.3.4
  175924. .IP \(bu 2
  175925. 3c92688 Merge branch \(aq2018.3.4\(aq into update_installer_mac_2018.3.4
  175926. .UNINDENT
  175927. .IP \(bu 2
  175928. \fBPR\fP \fI\%#51471\fP: (\fI\%twangboy\fP) Fix the failing dns test on Windows
  175929. @ \fI2019\-02\-03 22:03:34 UTC\fP
  175930. .INDENT 2.0
  175931. .IP \(bu 2
  175932. 892d98c Merge pull request \fI\%#51471\fP from twangboy/fix_test_win_dns_client
  175933. .IP \(bu 2
  175934. c9f6b01 Merge branch \(aq2018.3.4\(aq into fix_test_win_dns_client
  175935. .UNINDENT
  175936. .IP \(bu 2
  175937. \fBPR\fP \fI\%#51462\fP: (\fI\%ShantonRU\fP) Fix insecure SQL queries in MySQL module
  175938. @ \fI2019\-02\-01 21:19:20 UTC\fP
  175939. .INDENT 2.0
  175940. .IP \(bu 2
  175941. a05305d Merge pull request \fI\%#51462\fP from ShantonRU/fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  175942. .IP \(bu 2
  175943. d3ef2cb Merge branch \(aq2018.3.4\(aq into fix\-insecure\-sql\-queries\-in\-mysql\-module\-1
  175944. .IP \(bu 2
  175945. f47dda6 Fix improper use of socket authentication in mysql.user_chpass
  175946. .IP \(bu 2
  175947. ed62a2f Fix insecure SQL queries in mysql.user_chpass
  175948. .INDENT 2.0
  175949. .IP \(bu 2
  175950. 33922c9 Fix the failing dns test on Windows
  175951. .UNINDENT
  175952. .UNINDENT
  175953. .IP \(bu 2
  175954. \fBPR\fP \fI\%#51445\fP: (\fI\%terminalmage\fP) Remove custom grains module from 2018.3 branch
  175955. @ \fI2019\-02\-01 16:48:13 UTC\fP
  175956. .INDENT 2.0
  175957. .IP \(bu 2
  175958. 48936c2 Merge pull request \fI\%#51445\fP from terminalmage/fix\-custom\-grains\-traceback
  175959. .IP \(bu 2
  175960. 191235d Remove custom grains module from 2018.3 branch
  175961. .IP \(bu 2
  175962. 72fd1a2 Roll back icon change
  175963. .IP \(bu 2
  175964. 7dd1704 Add welcome_py2.rtf
  175965. .IP \(bu 2
  175966. c93e9e3 Add Py2 Warning to installer package
  175967. .IP \(bu 2
  175968. b658900 Add Py2 Warning for Py2 Installer
  175969. .UNINDENT
  175970. .IP \(bu 2
  175971. \fBPR\fP \fI\%#51438\fP: (\fI\%twangboy\fP) Add missing raise statement
  175972. @ \fI2019\-01\-30 20:04:05 UTC\fP
  175973. .INDENT 2.0
  175974. .IP \(bu 2
  175975. a880e42 Merge pull request \fI\%#51438\fP from twangboy/fix_raise_2018.3.4
  175976. .IP \(bu 2
  175977. 5830fad Add missing raise statement
  175978. .UNINDENT
  175979. .IP \(bu 2
  175980. \fBPR\fP \fI\%#51432\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51324\fP into 2018.3.4
  175981. @ \fI2019\-01\-30 17:51:50 UTC\fP
  175982. .INDENT 2.0
  175983. .IP \(bu 2
  175984. \fBPR\fP \fI\%#51324\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to x509 module and test (refs: \fI\%#51432\fP)
  175985. .IP \(bu 2
  175986. 28b898c Merge pull request \fI\%#51432\fP from Ch3LL/bp\-51324
  175987. .IP \(bu 2
  175988. bd41ff0 Fixing various bits in x509 module and unit test to ensure tests are passing on python2 & python3
  175989. .UNINDENT
  175990. .IP \(bu 2
  175991. \fBPR\fP \fI\%#51377\fP: (\fI\%twangboy\fP) Fix issue when directory doesn\(aqt exist in LGPO module (2018.3.4)
  175992. @ \fI2019\-01\-29 17:33:25 UTC\fP
  175993. .INDENT 2.0
  175994. .IP \(bu 2
  175995. 01717d2 Merge pull request \fI\%#51377\fP from twangboy/fix_auditpol_2018.3.4
  175996. .IP \(bu 2
  175997. 19e5181 Fix issue when directory doesn\(aqt exist
  175998. .UNINDENT
  175999. .IP \(bu 2
  176000. \fBPR\fP \fI\%#51338\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51207\fP into 2018.3.4
  176001. @ \fI2019\-01\-27 23:44:59 UTC\fP
  176002. .INDENT 2.0
  176003. .IP \(bu 2
  176004. \fBPR\fP \fI\%#51207\fP: (\fI\%twangboy\fP) Backport 50771 to 2018.3 (refs: \fI\%#51338\fP)
  176005. .IP \(bu 2
  176006. \fBPR\fP \fI\%#50771\fP: (\fI\%terminalmage\fP) Fix failing opensuse tests (refs: \fI\%#51207\fP)
  176007. .IP \(bu 2
  176008. 43a9d2f Merge pull request \fI\%#51338\fP from Ch3LL/bp\-51207
  176009. .IP \(bu 2
  176010. 345ae67 Backport PR# 50771 to 2018.3 branch
  176011. .UNINDENT
  176012. .IP \(bu 2
  176013. \fBISSUE\fP \fI\%#51158\fP: (\fI\%AndreiPashkin\fP) saltmod.state doesn\(aqt respect "roster" argument (refs: \fI\%#51170\fP)
  176014. .IP \(bu 2
  176015. \fBPR\fP \fI\%#51337\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51170\fP into 2018.3.4
  176016. @ \fI2019\-01\-27 23:44:24 UTC\fP
  176017. .INDENT 2.0
  176018. .IP \(bu 2
  176019. \fBPR\fP \fI\%#51170\fP: (\fI\%dwoz\fP) Honor roster system for ssh orchestrations (refs: \fI\%#51337\fP)
  176020. .IP \(bu 2
  176021. 3dcd11d Merge pull request \fI\%#51337\fP from Ch3LL/bp\-51170
  176022. .IP \(bu 2
  176023. 4e85505 Merge branch \(aq2018.3.4\(aq into bp\-51170
  176024. .UNINDENT
  176025. .IP \(bu 2
  176026. \fBISSUE\fP \fI\%#50221\fP: (\fI\%tkaehn\fP) file.managed: contents_pillar and pillar.file_tree with keep_newline is broken in 2018.3.3 (refs: \fI\%#51252\fP)
  176027. .IP \(bu 2
  176028. \fBPR\fP \fI\%#51340\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51252\fP into 2018.3.4
  176029. @ \fI2019\-01\-27 23:42:49 UTC\fP
  176030. .INDENT 2.0
  176031. .IP \(bu 2
  176032. \fBPR\fP \fI\%#51252\fP: (\fI\%dwoz\fP) Peserve newlines from pillar data for file.managed [2018.3] (refs: \fI\%#51340\fP)
  176033. .IP \(bu 2
  176034. 7656aa5 Merge pull request \fI\%#51340\fP from Ch3LL/bp\-51252
  176035. .IP \(bu 2
  176036. e74a6c6 Fix py3 managed.file test failure
  176037. .IP \(bu 2
  176038. 6f2c7cf Remoe un\-needed log statement
  176039. .IP \(bu 2
  176040. 824950c Fix 50221 regression test on Windows
  176041. .IP \(bu 2
  176042. 1840af9 peserve newlines from pillar data for file.managed
  176043. .UNINDENT
  176044. .IP \(bu 2
  176045. \fBPR\fP \fI\%#51290\fP: (\fI\%s0undt3ch\fP) [2018.3.4] Fix minion start
  176046. @ \fI2019\-01\-25 15:14:47 UTC\fP
  176047. .INDENT 2.0
  176048. .IP \(bu 2
  176049. e90ca1d Merge pull request \fI\%#51290\fP from s0undt3ch/hotfix/fix\-network
  176050. .IP \(bu 2
  176051. da3aace Merge branch \(aq2018.3.4\(aq into hotfix/fix\-network
  176052. .IP \(bu 2
  176053. 04f16b8 Fix tests. We no longer get \fIipaddress\fP instances back.
  176054. .IP \(bu 2
  176055. c3fa82a Fix minion start issue
  176056. .INDENT 2.0
  176057. .IP \(bu 2
  176058. c893dc4 Fix saltmod roster test
  176059. .IP \(bu 2
  176060. b61854f Roster defines the roster system not a file
  176061. .IP \(bu 2
  176062. 484bab4 Fix linter
  176063. .IP \(bu 2
  176064. 5e2db2f Honor roster file for ssh orchestrations
  176065. .UNINDENT
  176066. .UNINDENT
  176067. .IP \(bu 2
  176068. \fBPR\fP \fI\%#51317\fP: (\fI\%terminalmage\fP) Fix regression in dynamic pillarenv
  176069. @ \fI2019\-01\-25 09:29:44 UTC\fP
  176070. .INDENT 2.0
  176071. .IP \(bu 2
  176072. c8db7e3 Merge pull request \fI\%#51317\fP from terminalmage/fix\-pr\-50417
  176073. .IP \(bu 2
  176074. 4be2891 Merge branch \(aq2018.3.4\(aq into fix\-pr\-50417
  176075. .UNINDENT
  176076. .IP \(bu 2
  176077. \fBPR\fP \fI\%#51311\fP: (\fI\%twangboy\fP) Fix failing test \fIunit.states.test_file.TestFileState.test_managed\fP on Windows
  176078. @ \fI2019\-01\-24 21:09:35 UTC\fP
  176079. .INDENT 2.0
  176080. .IP \(bu 2
  176081. e246fdb Merge pull request \fI\%#51311\fP from twangboy/fix_test_file.test_managed
  176082. .IP \(bu 2
  176083. f4177e0 Remove mode parameter on Windows
  176084. .IP \(bu 2
  176085. 4c4ded3 Fix regression in dynamic pillarenv
  176086. .UNINDENT
  176087. .IP \(bu 2
  176088. \fBISSUE\fP \fI\%#51195\fP: (\fI\%littleski\fP) fstab improperly escaped when spaces are used in options (refs: \fI\%#51226\fP)
  176089. .IP \(bu 2
  176090. \fBISSUE\fP \fI\%#27160\fP: (\fI\%martinadolfi\fP) salt.states.mount persistence error using spaces in route (refs: \fI\%#39593\fP)
  176091. .IP \(bu 2
  176092. \fBPR\fP \fI\%#51292\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51226\fP into 2018.3.4
  176093. @ \fI2019\-01\-24 11:11:34 UTC\fP
  176094. .INDENT 2.0
  176095. .IP \(bu 2
  176096. \fBPR\fP \fI\%#51226\fP: (\fI\%garethgreenaway\fP) [2018.3] Handle spaces in fstab opts, similar fix to \fI\%#39593\fP (refs: \fI\%#51292\fP)
  176097. .IP \(bu 2
  176098. \fBPR\fP \fI\%#39593\fP: (\fI\%zwo\-bot\fP) Fix issue \fI\%#27160\fP \- escape whitespaces in fstab entry in module mount when persist=True (refs: \fI\%#51226\fP)
  176099. .IP \(bu 2
  176100. 40b20126 Merge pull request \fI\%#51292\fP from Ch3LL/bp\-51226
  176101. .IP \(bu 2
  176102. aba114e Merge branch \(aq2018.3.4\(aq into bp\-51226
  176103. .UNINDENT
  176104. .IP \(bu 2
  176105. \fBPR\fP \fI\%#51295\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51279\fP into 2018.3.4
  176106. @ \fI2019\-01\-24 11:10:19 UTC\fP
  176107. .INDENT 2.0
  176108. .IP \(bu 2
  176109. \fBPR\fP \fI\%#51279\fP: (\fI\%twangboy\fP) Backport __context__ support from develop (refs: \fI\%#51295\fP)
  176110. .IP \(bu 2
  176111. fc0bec5 Merge pull request \fI\%#51295\fP from Ch3LL/bp\-51279
  176112. .IP \(bu 2
  176113. 5c4a7a4 Merge branch \(aq2018.3.4\(aq into bp\-51279
  176114. .UNINDENT
  176115. .IP \(bu 2
  176116. \fBPR\fP \fI\%#51293\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51233\fP into 2018.3.4
  176117. @ \fI2019\-01\-24 09:17:49 UTC\fP
  176118. .INDENT 2.0
  176119. .IP \(bu 2
  176120. \fBPR\fP \fI\%#51233\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51105\fP to 2018.3 (refs: \fI\%#51293\fP)
  176121. .IP \(bu 2
  176122. \fBPR\fP \fI\%#51105\fP: (\fI\%garethgreenaway\fP) [develop] Report permission changes in test mode (refs: \fI\%#51233\fP)
  176123. .IP \(bu 2
  176124. dacd1ea Merge pull request \fI\%#51293\fP from Ch3LL/bp\-51233\-2
  176125. .IP \(bu 2
  176126. a155fd7 Accounting for when permissions are not returned from file.check_perms, eg. windows systems.
  176127. .IP \(bu 2
  176128. 53ba068 When test=True and there are permissions changes, report it.
  176129. .IP \(bu 2
  176130. d2eba77 Remove network.py patch
  176131. .IP \(bu 2
  176132. d431c71 Add __context__ support
  176133. .INDENT 2.0
  176134. .IP \(bu 2
  176135. de6c13d Handle spaces in fstab opts, similar fix to \fI\%#39593\fP
  176136. .UNINDENT
  176137. .UNINDENT
  176138. .IP \(bu 2
  176139. \fBISSUE\fP \fI\%#51248\fP: (\fI\%johnnybubonic\fP) "[WARNING ] The file_roots parameter is not properly formatted, using defaults" (refs: \fI\%#51278\fP)
  176140. .IP \(bu 2
  176141. \fBPR\fP \fI\%#51278\fP: (\fI\%dwoz\fP) Warn about proper validation option
  176142. @ \fI2019\-01\-22 22:13:13 UTC\fP
  176143. .INDENT 2.0
  176144. .IP \(bu 2
  176145. 1abffb2 Merge pull request \fI\%#51278\fP from dwoz/issue51248
  176146. .IP \(bu 2
  176147. c614198 Use pillar roots validation method
  176148. .IP \(bu 2
  176149. 0d2b0c6 Fix linter warnings
  176150. .IP \(bu 2
  176151. 5b98895 Fix wart in pillar_roots validation
  176152. .UNINDENT
  176153. .IP \(bu 2
  176154. \fBPR\fP \fI\%#51230\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176155. @ \fI2019\-01\-18 19:50:10 UTC\fP
  176156. .INDENT 2.0
  176157. .IP \(bu 2
  176158. e53e9b1 Merge pull request \fI\%#51230\fP from Ch3LL/merge\-2018.3
  176159. .IP \(bu 2
  176160. 0ef7675 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176161. .IP \(bu 2
  176162. 4a12c5f Merge pull request \fI\%#50852\fP from mirceaulinic/fix\-capirca
  176163. .INDENT 2.0
  176164. .IP \(bu 2
  176165. fa91267 Merge branch \(aq2017.7\(aq into fix\-capirca
  176166. .IP \(bu 2
  176167. 71913ff Merge branch \(aq2017.7\(aq into fix\-capirca
  176168. .IP \(bu 2
  176169. 6fc3484 Lint?
  176170. .IP \(bu 2
  176171. 3d56750 Extra newline for lint
  176172. .IP \(bu 2
  176173. 5176cd8 Improve the Capirca and related modules for ACL config generation
  176174. .UNINDENT
  176175. .IP \(bu 2
  176176. 3f4759b Merge pull request \fI\%#50923\fP from astronouth7303/patch\-2
  176177. .INDENT 2.0
  176178. .IP \(bu 2
  176179. 4f631a6 Document {% include %}
  176180. .UNINDENT
  176181. .IP \(bu 2
  176182. 210e817 Merge pull request \fI\%#51111\fP from s0undt3ch/2017.7
  176183. .INDENT 2.0
  176184. .IP \(bu 2
  176185. 08e0ae7 Update to salt\-bootstrap v2019.01.08
  176186. .UNINDENT
  176187. .UNINDENT
  176188. .IP \(bu 2
  176189. \fBISSUE\fP \fI\%#51211\fP: (\fI\%sathieu\fP) file_roots envs with slash leads to "No such file or directory: \(aq/var/cache/salt/master/file_lists/roots/.foo/bar.w\(aq (refs: \fI\%#51212\fP)
  176190. .IP \(bu 2
  176191. \fBISSUE\fP \fI\%#48132\fP: (\fI\%BenjaminSchiborr\fP) Dynamic File Roots (refs: \fI\%#51212\fP)
  176192. .IP \(bu 2
  176193. \fBPR\fP \fI\%#51212\fP: (\fI\%sathieu\fP) Allow slashes in file_roots envs.
  176194. @ \fI2019\-01\-17 17:29:18 UTC\fP
  176195. .INDENT 2.0
  176196. .IP \(bu 2
  176197. 26008ef Merge pull request \fI\%#51212\fP from sathieu/file_roots_slash
  176198. .IP \(bu 2
  176199. b769f18 Allow slash in file_roots envs
  176200. .IP \(bu 2
  176201. f9437e2 Test for file_roots envs with slash leads to "No such file or directory"
  176202. .UNINDENT
  176203. .IP \(bu 2
  176204. \fBPR\fP \fI\%#51209\fP: (\fI\%garethgreenaway\fP) [2018.3] Back\-port PR \fI\%#51124\fP to 2018.3
  176205. @ \fI2019\-01\-17 13:28:32 UTC\fP
  176206. .INDENT 2.0
  176207. .IP \(bu 2
  176208. \fBPR\fP \fI\%#51124\fP: (\fI\%Ch3LL\fP) Handle encoding when opening file for both py2/py3 (refs: \fI\%#51209\fP)
  176209. .IP \(bu 2
  176210. 5916282 Merge pull request \fI\%#51209\fP from garethgreenaway/bp\-51124
  176211. .IP \(bu 2
  176212. 82acce4 Handle encoding when opening file for both py2/py3
  176213. .UNINDENT
  176214. .IP \(bu 2
  176215. \fBPR\fP \fI\%#51184\fP: (\fI\%twangboy\fP) Fix win_lgpo_auditpol salt util on Windows
  176216. @ \fI2019\-01\-16 18:08:01 UTC\fP
  176217. .INDENT 2.0
  176218. .IP \(bu 2
  176219. 094bd33 Merge pull request \fI\%#51184\fP from twangboy/fix_auditpol
  176220. .IP \(bu 2
  176221. 2e68d35 directly call cmd.run_all
  176222. .UNINDENT
  176223. .IP \(bu 2
  176224. \fBPR\fP \fI\%#51191\fP: (\fI\%Ch3LL\fP) Backport \fI\%#50918\fP into 2018.3
  176225. @ \fI2019\-01\-16 18:02:19 UTC\fP
  176226. .INDENT 2.0
  176227. .IP \(bu 2
  176228. \fBPR\fP \fI\%#50918\fP: (\fI\%twangboy\fP) Fix \fItest_debian_ip\fP on Windows (refs: \fI\%#51191\fP)
  176229. .IP \(bu 2
  176230. ac71922 Merge pull request \fI\%#51191\fP from Ch3LL/bp\-50918
  176231. .IP \(bu 2
  176232. 7300d84 Skip debian tests on Windows
  176233. .IP \(bu 2
  176234. 4622433 Fix \fItest_debian_ip\fP on Windows
  176235. .UNINDENT
  176236. .IP \(bu 2
  176237. \fBISSUE\fP \fI\%#49883\fP: (\fI\%kiemlicz\fP) salt\-cloud azurearm is not working (refs: \fI\%#51144\fP)
  176238. .IP \(bu 2
  176239. \fBPR\fP \fI\%#51144\fP: (\fI\%jgleissner\fP) 2018.3 azurearm py3
  176240. @ \fI2019\-01\-15 16:46:35 UTC\fP
  176241. .INDENT 2.0
  176242. .IP \(bu 2
  176243. e7f53a3 Merge pull request \fI\%#51144\fP from jgleissner/2018.3\-azurearm\-py3
  176244. .IP \(bu 2
  176245. 3178f1a msazure.py: remove unused imports
  176246. .IP \(bu 2
  176247. 99a4b9d azurearm: fix list_locations
  176248. .IP \(bu 2
  176249. aebe34b azurearm: fix show_instance function
  176250. .IP \(bu 2
  176251. d80669f msazure: fix object_to_dict for python 3
  176252. .UNINDENT
  176253. .IP \(bu 2
  176254. \fBPR\fP \fI\%#51171\fP: (\fI\%twangboy\fP) Add random sleep time to avoid overloading Windows
  176255. @ \fI2019\-01\-15 16:45:33 UTC\fP
  176256. .INDENT 2.0
  176257. .IP \(bu 2
  176258. 1206f92 Merge pull request \fI\%#51171\fP from twangboy/fix_crypt
  176259. .IP \(bu 2
  176260. 6caa93b Add random sleep time to avoid overloading Windows
  176261. .UNINDENT
  176262. .IP \(bu 2
  176263. \fBPR\fP \fI\%#51174\fP: (\fI\%jpsv\fP) Update OpsGenie to use their V2 API (2018.3)
  176264. @ \fI2019\-01\-15 16:44:54 UTC\fP
  176265. .INDENT 2.0
  176266. .IP \(bu 2
  176267. a96deed Merge pull request \fI\%#51174\fP from jpsv/2018.3
  176268. .IP \(bu 2
  176269. 055823e Update opsgenie.py
  176270. .IP \(bu 2
  176271. 501c8df Merge branch \(aq2018.3\(aq into 2018.3
  176272. .IP \(bu 2
  176273. 220aa8a Update opsgenie.py
  176274. .IP \(bu 2
  176275. 5dc21cc Update to from V1 API to V2
  176276. .IP \(bu 2
  176277. f93ce7c Update to V2 API
  176278. .UNINDENT
  176279. .IP \(bu 2
  176280. \fBISSUE\fP \fI\%#42280\fP: (\fI\%michaelgibson\fP) make ldap eauth 2 factor compatible (refs: \fI\%#42426\fP, \fI\%#45347\fP)
  176281. .IP \(bu 2
  176282. \fBPR\fP \fI\%#51010\fP: (\fI\%amendlik\fP) Allow unauthenticated bind for listing LDAP groups
  176283. @ \fI2019\-01\-15 16:43:42 UTC\fP
  176284. .INDENT 2.0
  176285. .IP \(bu 2
  176286. \fBPR\fP \fI\%#45811\fP: (\fI\%gtmanfred\fP) Fix ldap eauth (refs: \fI\%#51010\fP)
  176287. .IP \(bu 2
  176288. \fBPR\fP \fI\%#45347\fP: (\fI\%amendlik\fP) LDAP group membership (refs: \fI\%#51010\fP)
  176289. .IP \(bu 2
  176290. \fBPR\fP \fI\%#42426\fP: (\fI\%michaelgibson\fP) adding 2\-factor auth capability to ldap eauth module \- \fI\%#42280\fP (refs: \fI\%#45347\fP)
  176291. .IP \(bu 2
  176292. 563d487 Merge pull request \fI\%#51010\fP from amendlik/ldap\-groups
  176293. .IP \(bu 2
  176294. cd336ed Merge branch \(aq2018.3\(aq into ldap\-groups
  176295. .IP \(bu 2
  176296. 94f8ee4 Update unit tests for auth.ldap
  176297. .IP \(bu 2
  176298. 08e36d0 Allow unauthenticated bind for listing LDAP groups
  176299. .UNINDENT
  176300. .IP \(bu 2
  176301. \fBPR\fP \fI\%#51112\fP: (\fI\%s0undt3ch\fP) [2018.3] Update to salt\-bootstrap v2019.01.08
  176302. @ \fI2019\-01\-15 16:42:09 UTC\fP
  176303. .INDENT 2.0
  176304. .IP \(bu 2
  176305. 6dc3752 Merge pull request \fI\%#51112\fP from s0undt3ch/2018.3
  176306. .IP \(bu 2
  176307. 4f1d846 Update to salt\-bootstrap v2019.01.08
  176308. .UNINDENT
  176309. .IP \(bu 2
  176310. \fBPR\fP \fI\%#51097\fP: (\fI\%terminalmage\fP) Fix improper exception raises (2018.3)
  176311. @ \fI2019\-01\-15 16:38:25 UTC\fP
  176312. .INDENT 2.0
  176313. .IP \(bu 2
  176314. b19c990 Merge pull request \fI\%#51097\fP from terminalmage/fix\-keyerror\-raise
  176315. .IP \(bu 2
  176316. a3c0b49 Fix poorly\-written test
  176317. .IP \(bu 2
  176318. c0ff7b1 Fix more incorrect exception raises
  176319. .IP \(bu 2
  176320. f11dbcc Fix improper KeyError raise
  176321. .UNINDENT
  176322. .IP \(bu 2
  176323. \fBPR\fP \fI\%#51169\fP: (\fI\%twangboy\fP) More descriptive error when missing GitPython or PyGit2
  176324. @ \fI2019\-01\-15 16:37:44 UTC\fP
  176325. .INDENT 2.0
  176326. .IP \(bu 2
  176327. 8920a86 Merge pull request \fI\%#51169\fP from twangboy/fix_git_state
  176328. .IP \(bu 2
  176329. f2d1180 More descriptive error when missing GitPython or PyGit2
  176330. .UNINDENT
  176331. .IP \(bu 2
  176332. \fBISSUE\fP \fI\%#51160\fP: (\fI\%amendlik\fP) Minion crashes with long hostname under Python 3 (refs: \fI\%#51173\fP, \fI\%#51161\fP)
  176333. .IP \(bu 2
  176334. \fBPR\fP \fI\%#51173\fP: (\fI\%dwoz\fP) Avoid exceptions by passing bytes to idna
  176335. @ \fI2019\-01\-15 16:32:31 UTC\fP
  176336. .INDENT 2.0
  176337. .IP \(bu 2
  176338. \fBPR\fP \fI\%#51161\fP: (\fI\%amendlik\fP) Ignore exceptions when generating the minion ID (refs: \fI\%#51173\fP)
  176339. .IP \(bu 2
  176340. 58eede6 Merge pull request \fI\%#51173\fP from dwoz/issue51160
  176341. .IP \(bu 2
  176342. 11cc7b3 Remove un\-needed test
  176343. .IP \(bu 2
  176344. 0f87812 Merge develop, Revert exception handling
  176345. .IP \(bu 2
  176346. 7365a1a Pass bytes to idna
  176347. .UNINDENT
  176348. .IP \(bu 2
  176349. \fBPR\fP \fI\%#51147\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176350. @ \fI2019\-01\-15 02:05:51 UTC\fP
  176351. .INDENT 2.0
  176352. .IP \(bu 2
  176353. 06854cf Merge pull request \fI\%#51147\fP from Ch3LL/merge\-2018.3
  176354. .IP \(bu 2
  176355. d39d8b7 Merge branch \(aq2018.3\(aq into merge\-2018.3
  176356. .UNINDENT
  176357. .IP \(bu 2
  176358. \fBISSUE\fP \fI\%#51160\fP: (\fI\%amendlik\fP) Minion crashes with long hostname under Python 3 (refs: \fI\%#51173\fP, \fI\%#51161\fP)
  176359. .IP \(bu 2
  176360. \fBPR\fP \fI\%#51161\fP: (\fI\%amendlik\fP) Ignore exceptions when generating the minion ID (refs: \fI\%#51173\fP)
  176361. @ \fI2019\-01\-14 22:47:54 UTC\fP
  176362. .INDENT 2.0
  176363. .IP \(bu 2
  176364. b79c09e Merge pull request \fI\%#51161\fP from amendlik/long\-hostname
  176365. .IP \(bu 2
  176366. 6fcc4ad Merge branch \(aq2018.3\(aq into long\-hostname
  176367. .UNINDENT
  176368. .IP \(bu 2
  176369. \fBISSUE\fP \fI\%#51067\fP: (\fI\%rkrieger\fP) KeyError u\(aqmanufacturer\(aq causes salt\-minion crash on start with OpenBSD arm64 system (refs: \fI\%#51159\fP)
  176370. .IP \(bu 2
  176371. \fBISSUE\fP \fI\%#3\fP: (\fI\%thatch45\fP) libvirt module (refs: \fI\%#51159\fP)
  176372. .IP \(bu 2
  176373. \fBPR\fP \fI\%#51159\fP: (\fI\%rkrieger\fP) Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  176374. @ \fI2019\-01\-14 18:08:22 UTC\fP
  176375. .INDENT 2.0
  176376. .IP \(bu 2
  176377. 1424734 Merge pull request \fI\%#51159\fP from rkrieger/fix\-issue\-51067
  176378. .IP \(bu 2
  176379. 1440ccf Prevent crash by testing for \(aqmanufacturer\(aq in osdata on OpenBSD
  176380. .IP \(bu 2
  176381. 1a4e307 Ignore exceptions when generating the minion ID
  176382. .UNINDENT
  176383. .IP \(bu 2
  176384. \fBPR\fP \fI\%#51146\fP: (\fI\%terminalmage\fP) Fix invalid assignment in vsphere module
  176385. @ \fI2019\-01\-12 21:44:33 UTC\fP
  176386. .INDENT 2.0
  176387. .IP \(bu 2
  176388. 5e37326 Merge pull request \fI\%#51146\fP from terminalmage/fix\-vsphere\-tuple\-issue
  176389. .IP \(bu 2
  176390. 5d60022 Fix invalid assignment in vsphere module
  176391. .UNINDENT
  176392. .IP \(bu 2
  176393. \fBPR\fP \fI\%#51154\fP: (\fI\%twangboy\fP) Add support for Advanced Audit policies
  176394. @ \fI2019\-01\-12 21:43:27 UTC\fP
  176395. .INDENT 2.0
  176396. .IP \(bu 2
  176397. fad8621 Merge pull request \fI\%#51154\fP from twangboy/auditpol
  176398. .IP \(bu 2
  176399. 9064376 Add support for Advanced Audit policies
  176400. .UNINDENT
  176401. .IP \(bu 2
  176402. \fBPR\fP \fI\%#51151\fP: (\fI\%Ch3LL\fP) Backport \fI\%#51061\fP to 2018.3
  176403. @ \fI2019\-01\-12 03:18:44 UTC\fP
  176404. .INDENT 2.0
  176405. .IP \(bu 2
  176406. \fBPR\fP \fI\%#51061\fP: (\fI\%garethgreenaway\fP) [fluorine] fix to salt.utils.vt.Terminal (refs: \fI\%#51151\fP)
  176407. .IP \(bu 2
  176408. f7a100c Merge pull request \fI\%#51151\fP from Ch3LL/bp_51061
  176409. .IP \(bu 2
  176410. ffdae27 When writing output to stdout we want to ensure that the data is a string not bytes. Under py2 the salt.utils.data.encode function results in a string but under py3 the result is a bytestring. Swapping out salt.utils.data.encode for salt.utils.stringutils.to_str.
  176411. .UNINDENT
  176412. .IP \(bu 2
  176413. \fBPR\fP \fI\%#51150\fP: (\fI\%Ch3LL\fP) Back\-port \fI\%#49508\fP to 2018.3
  176414. @ \fI2019\-01\-12 03:18:19 UTC\fP
  176415. .INDENT 2.0
  176416. .IP \(bu 2
  176417. \fBPR\fP \fI\%#49508\fP: (\fI\%bergmannf\fP) Fix X509 remote signing on python3 (refs: \fI\%#51150\fP)
  176418. .IP \(bu 2
  176419. 3a50a57 Merge pull request \fI\%#51150\fP from Ch3LL/bp\-49508
  176420. .IP \(bu 2
  176421. 7ae53ad Do not silently ignore errors.
  176422. .IP \(bu 2
  176423. deb0134 Convert to string before sending via \(aqpublish\(aq.
  176424. .IP \(bu 2
  176425. 651c551 Use to_str salt.utils when writing to a file.
  176426. .UNINDENT
  176427. .IP \(bu 2
  176428. \fBISSUE\fP \fI\%#50433\fP: (\fI\%zerthimon\fP) Wildcard grant fails in mysql_grants.present in mysql 8.x (refs: \fI\%#51152\fP)
  176429. .IP \(bu 2
  176430. \fBPR\fP \fI\%#51152\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to mysql module to handle ALL PRIVILEGES grant
  176431. @ \fI2019\-01\-12 03:17:15 UTC\fP
  176432. .INDENT 2.0
  176433. .IP \(bu 2
  176434. 8bb589d Merge pull request \fI\%#51152\fP from garethgreenaway/50433_handle_grants_better
  176435. .IP \(bu 2
  176436. f7caa4d Fixing lint
  176437. .IP \(bu 2
  176438. e8c8c0f Adding some tests to ensure "ALL PRIVILEGES" is handled correctly in 8.0 and 5.6
  176439. .IP \(bu 2
  176440. b4bfd9f Add additional grants. Adding logic to handle when ALL or ALL PRIVILEGES is passed for the grant, including some logic to handle the fact that the grants are split when show grants is run for a particular user.
  176441. .INDENT 2.0
  176442. .IP \(bu 2
  176443. 74edfd9 Fix pylint
  176444. .IP \(bu 2
  176445. 81a3d47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176446. .IP \(bu 2
  176447. 8a76a19 Merge pull request \fI\%#50858\fP from jasonarewhy/bugfix\-2017.7/ubuntu\-networking\-searchdomain
  176448. .INDENT 2.0
  176449. .IP \(bu 2
  176450. 3395a3d Merge branch \(aq2017.7\(aq into bugfix\-2017.7/ubuntu\-networking\-searchdomain
  176451. .IP \(bu 2
  176452. 69d25aa update debian_ip test
  176453. .IP \(bu 2
  176454. a6b896c get searchdomain in Ubuntu 12+
  176455. .UNINDENT
  176456. .UNINDENT
  176457. .UNINDENT
  176458. .IP \(bu 2
  176459. \fBISSUE\fP \fI\%#50849\fP: (\fI\%5uper5hoot\fP) MySQL version needs to be decoded (refs: \fI\%#51133\fP)
  176460. .IP \(bu 2
  176461. \fBPR\fP \fI\%#51133\fP: (\fI\%5uper5hoot\fP) Fixes mysql server version comparison.
  176462. @ \fI2019\-01\-10 16:45:38 UTC\fP
  176463. .INDENT 2.0
  176464. .IP \(bu 2
  176465. dda1ebb Merge pull request \fI\%#51133\fP from 5uper5hoot/issue\-\fI\%#50849\fP
  176466. .IP \(bu 2
  176467. ec14e13 Fixes mysql server version comparison.
  176468. .UNINDENT
  176469. .IP \(bu 2
  176470. \fBPR\fP \fI\%#50878\fP: (\fI\%max\-arnold\fP) Fix profile outputter docs
  176471. @ \fI2019\-01\-08 18:32:40 UTC\fP
  176472. .INDENT 2.0
  176473. .IP \(bu 2
  176474. 9d4321d Merge pull request \fI\%#50878\fP from max\-arnold/output\-docs
  176475. .IP \(bu 2
  176476. d7403da Fix profile outputter docs
  176477. .UNINDENT
  176478. .IP \(bu 2
  176479. \fBPR\fP \fI\%#51076\fP: (\fI\%OrangeDog\fP) Typos in index_template_present documentation
  176480. @ \fI2019\-01\-08 18:25:20 UTC\fP
  176481. .INDENT 2.0
  176482. .IP \(bu 2
  176483. ce87504 Merge pull request \fI\%#51076\fP from OrangeDog/patch\-1
  176484. .IP \(bu 2
  176485. 568e4fb Revert add \-> check
  176486. .IP \(bu 2
  176487. 4d7ebe7 Typos in index_template_present documentation
  176488. .UNINDENT
  176489. .IP \(bu 2
  176490. \fBPR\fP \fI\%#51081\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176491. @ \fI2019\-01\-07 20:34:16 UTC\fP
  176492. .INDENT 2.0
  176493. .IP \(bu 2
  176494. d08abf4 Merge pull request \fI\%#51081\fP from garethgreenaway/merge\-2018.3
  176495. .IP \(bu 2
  176496. 027804a Merge branch \(aq2018.3\(aq into merge\-2018.3
  176497. .UNINDENT
  176498. .IP \(bu 2
  176499. \fBISSUE\fP \fI\%#50966\fP: (\fI\%klafkoff\fP) 2018.3.3 missing a patch to salt/modules/nxos.py (refs: \fI\%#51080\fP)
  176500. .IP \(bu 2
  176501. \fBPR\fP \fI\%#51080\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to nxos module
  176502. @ \fI2019\-01\-07 18:07:25 UTC\fP
  176503. .INDENT 2.0
  176504. .IP \(bu 2
  176505. 335088b Merge pull request \fI\%#51080\fP from garethgreenaway/50966_nxos_ensure_kwargs_list
  176506. .IP \(bu 2
  176507. 230a66b Merge branch \(aq2018.3\(aq into 50966_nxos_ensure_kwargs_list
  176508. .IP \(bu 2
  176509. 629dc25 Ensure kwargs is a list before we attempt to loop through. Similar fix to \fI\%https://github.com/rallytime/salt/commit/430c462f34eb4eedf2384e06fbee8dc19b8026f6\fP in the proxy module.
  176510. .INDENT 2.0
  176511. .IP \(bu 2
  176512. a20791b Merge branch \(aq2018.3\(aq into merge\-2018.3
  176513. .UNINDENT
  176514. .UNINDENT
  176515. .IP \(bu 2
  176516. \fBPR\fP \fI\%#51079\fP: (\fI\%terminalmage\fP) Fix shadow.set_date/shadow.set_expire on F28
  176517. @ \fI2019\-01\-07 16:28:36 UTC\fP
  176518. .INDENT 2.0
  176519. .IP \(bu 2
  176520. c47b646 Merge pull request \fI\%#51079\fP from terminalmage/salt\-jenkins\-1238
  176521. .IP \(bu 2
  176522. ccd5c15 Fix shadow.set_date/shadow.set_expire on F28
  176523. .UNINDENT
  176524. .IP \(bu 2
  176525. \fBISSUE\fP \fI\%#47043\fP: (\fI\%xBytez\fP) lsattr slowing down archive.extracted (refs: \fI\%#51044\fP)
  176526. .IP \(bu 2
  176527. \fBPR\fP \fI\%#51044\fP: (\fI\%terminalmage\fP) archive.extracted: Don\(aqt run lsattr when enforcing user/group ownership
  176528. @ \fI2019\-01\-03 19:26:03 UTC\fP
  176529. .INDENT 2.0
  176530. .IP \(bu 2
  176531. aeeb047 Merge pull request \fI\%#51044\fP from terminalmage/issue47043
  176532. .IP \(bu 2
  176533. 787b79a archive.extracted: Don\(aqt run lsattr when enforcing user/group ownership
  176534. .UNINDENT
  176535. .IP \(bu 2
  176536. \fBISSUE\fP \fI\%#50964\fP: (\fI\%gtmanfred\fP) Add a long description to setup.py for the new pypi.org (refs: \fI\%#51031\fP)
  176537. .IP \(bu 2
  176538. \fBPR\fP \fI\%#51034\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#51031\fP to 2018.3
  176539. @ \fI2019\-01\-03 15:42:22 UTC\fP
  176540. .INDENT 2.0
  176541. .IP \(bu 2
  176542. \fBPR\fP \fI\%#51031\fP: (\fI\%waynew\fP) Set long_description (refs: \fI\%#51034\fP)
  176543. .IP \(bu 2
  176544. 04fdae5 Merge pull request \fI\%#51034\fP from garethgreenaway/bp\-51031
  176545. .IP \(bu 2
  176546. cd310c2 Set long_description
  176547. .UNINDENT
  176548. .IP \(bu 2
  176549. \fBISSUE\fP \fI\%#50634\fP: (\fI\%marek\-obuchowicz\fP) Debian pkg.managed gpg/tty issue (refs: \fI\%#50972\fP)
  176550. .IP \(bu 2
  176551. \fBPR\fP \fI\%#50972\fP: (\fI\%pirogoeth\fP) Use gpg\(aqs \-\-batch in apt\-key adv during repo key add
  176552. @ \fI2019\-01\-03 02:34:13 UTC\fP
  176553. .INDENT 2.0
  176554. .IP \(bu 2
  176555. 4685e0e Merge pull request \fI\%#50972\fP from pirogoeth/sjohn/2018.3\-apt\-key\-batch
  176556. .IP \(bu 2
  176557. cd3d755 Merge branch \(aq2018.3\(aq into sjohn/2018.3\-apt\-key\-batch
  176558. .UNINDENT
  176559. .IP \(bu 2
  176560. \fBPR\fP \fI\%#51028\fP: (\fI\%whytewolf\fP) AIX lsattr fix for file module.
  176561. @ \fI2019\-01\-03 01:52:33 UTC\fP
  176562. .INDENT 2.0
  176563. .IP \(bu 2
  176564. 44bc862 Merge pull request \fI\%#51028\fP from whytewolf/aix_lsattr_fix
  176565. .IP \(bu 2
  176566. 1b733c6 Set lsattr functions to return None if \fIsalt.utils.platform.is_aix\fP returns true.
  176567. .IP \(bu 2
  176568. 7410008 Merge branch \(aq2018.3\(aq into sjohn/2018.3\-apt\-key\-batch
  176569. .UNINDENT
  176570. .IP \(bu 2
  176571. \fBPR\fP \fI\%#51018\fP: (\fI\%garethgreenaway\fP) [fluorine] Merge forward from 2017.7 to 2018.3
  176572. @ \fI2019\-01\-01 23:11:02 UTC\fP
  176573. .INDENT 2.0
  176574. .IP \(bu 2
  176575. b4774a8 Merge pull request \fI\%#51018\fP from garethgreenaway/merge\-2018.3
  176576. .INDENT 2.0
  176577. .IP \(bu 2
  176578. 773bf31 Use gpg\(aqs \-\-batch in apt\-key adv during repo key add
  176579. .INDENT 2.0
  176580. .IP \(bu 2
  176581. 9386aab Merge branch \(aq2017.7\(aq into merge\-2018.3
  176582. .IP \(bu 2
  176583. 998feca Merge pull request \fI\%#51030\fP from terminalmage/issue38502
  176584. .INDENT 2.0
  176585. .IP \(bu 2
  176586. 6dbd81f Add unit test to ensure we don\(aqt diff bare repos
  176587. .UNINDENT
  176588. .UNINDENT
  176589. .UNINDENT
  176590. .IP \(bu 2
  176591. 12f7583 Merge branch \(aq2017.7\(aq into merge\-2018.3
  176592. .IP \(bu 2
  176593. 4529150 Merge pull request \fI\%#50977\fP from rallytime/config\-docs
  176594. .INDENT 2.0
  176595. .IP \(bu 2
  176596. 43c39e7 Add documentation to master config docs for job_cache_store_endtime
  176597. .IP \(bu 2
  176598. 887cd07 Add some salt\-api options to the master config docs
  176599. .IP \(bu 2
  176600. 0d49746 Fix some formatting in master config docs
  176601. .UNINDENT
  176602. .IP \(bu 2
  176603. 409594b Merge pull request \fI\%#50991\fP from twangboy/requests_2017.7
  176604. .INDENT 2.0
  176605. .IP \(bu 2
  176606. 32b9d2a Update requests for osx
  176607. .IP \(bu 2
  176608. 413dc72 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into requests_2017.7
  176609. .UNINDENT
  176610. .IP \(bu 2
  176611. e053074 Merge pull request \fI\%#50983\fP from garethgreenaway/bp\-50885
  176612. .INDENT 2.0
  176613. .IP \(bu 2
  176614. 09a8e6e fix a del in cloud vmware that crash when the key isn\(aqt there
  176615. .IP \(bu 2
  176616. 4196690 Update requests to 2.21.0
  176617. .IP \(bu 2
  176618. 23f78b0 Upgrade requests to 2.20.1
  176619. .UNINDENT
  176620. .UNINDENT
  176621. .IP \(bu 2
  176622. \fBPR\fP \fI\%#50990\fP: (\fI\%twangboy\fP) Requests 2018.3
  176623. @ \fI2018\-12\-31 20:19:01 UTC\fP
  176624. .INDENT 2.0
  176625. .IP \(bu 2
  176626. c53723a Merge pull request \fI\%#50990\fP from twangboy/requests_2018.3
  176627. .IP \(bu 2
  176628. e8b9233 Update requests on osx
  176629. .IP \(bu 2
  176630. b22856f Update requests to 2.21.0
  176631. .IP \(bu 2
  176632. 242389b Merge branch \(aq2018.3\(aq of \fI\%https://github.com/saltstack/salt\fP into requests_2018.3
  176633. .IP \(bu 2
  176634. 0d4b799 Upgrade requests to 2.20.1
  176635. .UNINDENT
  176636. .IP \(bu 2
  176637. \fBPR\fP \fI\%#51004\fP: (\fI\%twangboy\fP) Add tests for the win_wusa state and module
  176638. @ \fI2018\-12\-31 20:03:30 UTC\fP
  176639. .INDENT 2.0
  176640. .IP \(bu 2
  176641. cecd108 Merge pull request \fI\%#51004\fP from twangboy/win_wusa
  176642. .IP \(bu 2
  176643. 0e92528 Merge branch \(aq2018.3\(aq into win_wusa
  176644. .IP \(bu 2
  176645. c0d2495 Fix lint, add test docs
  176646. .IP \(bu 2
  176647. 1750270 Add state tests for win_wusa
  176648. .IP \(bu 2
  176649. 6285b64 Update win_wusa and add tests
  176650. .UNINDENT
  176651. .IP \(bu 2
  176652. \fBPR\fP \fI\%#51014\fP: (\fI\%madrisan\fP) ssh module: missing space in error message
  176653. @ \fI2018\-12\-31 19:59:19 UTC\fP
  176654. .INDENT 2.0
  176655. .IP \(bu 2
  176656. 3e0515b Merge pull request \fI\%#51014\fP from madrisan/patch\-1
  176657. .IP \(bu 2
  176658. ab980fb ssh module: missing space in error message
  176659. .UNINDENT
  176660. .IP \(bu 2
  176661. \fBPR\fP \fI\%#50883\fP: (\fI\%terminalmage\fP) Backport \fI\%#49622\fP to 2018.3 branch
  176662. @ \fI2018\-12\-31 19:58:11 UTC\fP
  176663. .INDENT 2.0
  176664. .IP \(bu 2
  176665. \fBPR\fP \fI\%#49622\fP: (\fI\%angeloudy\fP) fix command line options (refs: \fI\%#50883\fP)
  176666. .IP \(bu 2
  176667. 582d6b4 Merge pull request \fI\%#50883\fP from terminalmage/bp\-49622
  176668. .IP \(bu 2
  176669. c93dbfa Update archive.py
  176670. .IP \(bu 2
  176671. 925a9c9 Update archive.py
  176672. .IP \(bu 2
  176673. ed2bed3 fix command line options
  176674. .UNINDENT
  176675. .IP \(bu 2
  176676. \fBPR\fP \fI\%#50945\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.8
  176677. @ \fI2018\-12\-30 00:05:47 UTC\fP
  176678. .INDENT 2.0
  176679. .IP \(bu 2
  176680. fd9711b Merge pull request \fI\%#50945\fP from garethgreenaway/merge\-2017.7
  176681. .IP \(bu 2
  176682. 43b3fa4 Merge branch \(aq2018.3\(aq into merge\-2017.7
  176683. .UNINDENT
  176684. .IP \(bu 2
  176685. \fBISSUE\fP \fI\%#50854\fP: (\fI\%Ch3LL\fP) [fluorine] windows stops when cannot connect to master (refs: \fI\%#50855\fP)
  176686. .IP \(bu 2
  176687. \fBPR\fP \fI\%#51006\fP: (\fI\%dwoz\fP) Let minions try to connect to master indefinitly
  176688. @ \fI2018\-12\-28 21:10:39 UTC\fP
  176689. .INDENT 2.0
  176690. .IP \(bu 2
  176691. \fBPR\fP \fI\%#50855\fP: (\fI\%dwoz\fP) Let minions try to connect to master indefinitly (refs: \fI\%#51006\fP)
  176692. .IP \(bu 2
  176693. b8615e1 Merge pull request \fI\%#51006\fP from dwoz/backport_50855
  176694. .IP \(bu 2
  176695. 5563631 Let minions try to connect to master indefinitly
  176696. .UNINDENT
  176697. .IP \(bu 2
  176698. \fBISSUE\fP \fI\%#50989\fP: (\fI\%mpx8701\fP) SLS error (An exception occurred in this state: Traceback) (refs: \fI\%#51005\fP)
  176699. .IP \(bu 2
  176700. \fBPR\fP \fI\%#51005\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to junos state module
  176701. @ \fI2018\-12\-28 20:51:31 UTC\fP
  176702. .INDENT 2.0
  176703. .IP \(bu 2
  176704. cfed697 Merge pull request \fI\%#51005\fP from garethgreenaway/50989_fixing_junos_state_arguments
  176705. .IP \(bu 2
  176706. d4ac180 Fixing the arguments accepted by cli function in the junos state module which are passed along to the cli function in junos module, so they align.
  176707. .IP \(bu 2
  176708. 3cfca8e Merge branch \(aq2018.3\(aq into merge\-2017.7
  176709. .UNINDENT
  176710. .IP \(bu 2
  176711. \fBPR\fP \fI\%#50982\fP: (\fI\%twangboy\fP) Fix issue with LGPO when returning empty dict (2018.3)
  176712. @ \fI2018\-12\-26 19:58:12 UTC\fP
  176713. .INDENT 2.0
  176714. .IP \(bu 2
  176715. daa591b Merge pull request \fI\%#50982\fP from twangboy/fix_lgpo_2018.3
  176716. .IP \(bu 2
  176717. d942934 Get rid of requests import (CaseInsensitiveDict)
  176718. .INDENT 2.0
  176719. .IP \(bu 2
  176720. 6170fa5 Merge branch \(aq2018.3\(aq into merge\-2017.7
  176721. .UNINDENT
  176722. .UNINDENT
  176723. .IP \(bu 2
  176724. \fBISSUE\fP \fI\%#46886\fP: (\fI\%bbh\-kmd\fP) Unable to get salt\-minion to call salt\-call with alternate configuration (refs: \fI\%#50959\fP)
  176725. .IP \(bu 2
  176726. \fBPR\fP \fI\%#50984\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50959\fP to 2018.3
  176727. @ \fI2018\-12\-26 19:29:54 UTC\fP
  176728. .INDENT 2.0
  176729. .IP \(bu 2
  176730. \fBPR\fP \fI\%#50959\fP: (\fI\%bbh\-kmd\fP) \fI\%#46886\fP: Use correct path to config_dir when running salt from alternate placement. (refs: \fI\%#50984\fP)
  176731. .IP \(bu 2
  176732. 110bc66 Merge pull request \fI\%#50984\fP from garethgreenaway/bp\-50959
  176733. .IP \(bu 2
  176734. 20fa5c9 Update sudo.py
  176735. .UNINDENT
  176736. .IP \(bu 2
  176737. \fBPR\fP \fI\%#50958\fP: (\fI\%bdrung\fP) Fix twilio version checking
  176738. @ \fI2018\-12\-25 10:46:15 UTC\fP
  176739. .INDENT 2.0
  176740. .IP \(bu 2
  176741. 8fc89a0 Merge pull request \fI\%#50958\fP from bdrung/fix\-twilio
  176742. .IP \(bu 2
  176743. df8d7b9 Fix twilio version checking
  176744. .INDENT 2.0
  176745. .IP \(bu 2
  176746. d89c9b5 Merge branch \(aq2018.3\(aq into merge\-2017.7
  176747. .UNINDENT
  176748. .UNINDENT
  176749. .IP \(bu 2
  176750. \fBISSUE\fP \fI\%#50947\fP: (\fI\%cachedout\fP) Log full of IPv6 warnings (refs: \fI\%#50962\fP)
  176751. .IP \(bu 2
  176752. \fBPR\fP \fI\%#50962\fP: (\fI\%terminalmage\fP) Remove redundant overrides for ip_address/ip_interface
  176753. @ \fI2018\-12\-21 22:04:34 UTC\fP
  176754. .INDENT 2.0
  176755. .IP \(bu 2
  176756. bb87822 Merge pull request \fI\%#50962\fP from terminalmage/ipv6\-warnings
  176757. .IP \(bu 2
  176758. 773b983 Merge branch \(aq2018.3\(aq into ipv6\-warnings
  176759. .IP \(bu 2
  176760. f3b1254 Remove redundant overrides for ip_address/ip_interface
  176761. .INDENT 2.0
  176762. .IP \(bu 2
  176763. cea01e7 Updating valigdate_tgt to ensure tests pass.
  176764. .IP \(bu 2
  176765. cdc7825 yet another lint fix.
  176766. .IP \(bu 2
  176767. f44a87e One last lint fix.
  176768. .IP \(bu 2
  176769. 45f363b Fixing various lint errors.
  176770. .IP \(bu 2
  176771. 6a65bf9 Merge branch \(aq2017.7\(aq into merge\-2017.7
  176772. .IP \(bu 2
  176773. 747dd69 Merge pull request \fI\%#50876\fP from terminalmage/issue50153
  176774. .INDENT 2.0
  176775. .IP \(bu 2
  176776. 676a12a Fix compound matching in eauth
  176777. .UNINDENT
  176778. .IP \(bu 2
  176779. 07fca64 Merge pull request \fI\%#50909\fP from damon\-atkins/jenkins_pylint
  176780. .INDENT 2.0
  176781. .IP \(bu 2
  176782. da1fc32 change params.CHANGE_BRANCH to env.CHANGE_BRANCH
  176783. .UNINDENT
  176784. .IP \(bu 2
  176785. e7f0ab6 Merge pull request \fI\%#50873\fP from Ch3LL/bp\-50740
  176786. .INDENT 2.0
  176787. .IP \(bu 2
  176788. 5fd9ed9 Merge branch \(aq2017.7\(aq into bp\-50740
  176789. .UNINDENT
  176790. .IP \(bu 2
  176791. 2f77b2d Merge pull request \fI\%#50869\fP from garethgreenaway/50848_mysql_exception_test
  176792. .INDENT 2.0
  176793. .IP \(bu 2
  176794. 3767d4f Merge branch \(aq2017.7\(aq into 50848_mysql_exception_test
  176795. .IP \(bu 2
  176796. af3e145 Cleanup.
  176797. .IP \(bu 2
  176798. b85c5bf Adding a test to ensure exception handling is correct.
  176799. .INDENT 2.0
  176800. .IP \(bu 2
  176801. 4242e64 Merge branch \(aq2017.7\(aq into bp\-50740
  176802. .UNINDENT
  176803. .UNINDENT
  176804. .IP \(bu 2
  176805. a5caab7 Merge pull request \fI\%#50872\fP from Ch3LL/bp\-50864
  176806. .INDENT 2.0
  176807. .IP \(bu 2
  176808. fc9c64b fix typo in file.managed documentation
  176809. .IP \(bu 2
  176810. fd73f86 Catch UnicodeDecodeErrors in id verification
  176811. .UNINDENT
  176812. .UNINDENT
  176813. .UNINDENT
  176814. .IP \(bu 2
  176815. \fBPR\fP \fI\%#50937\fP: (\fI\%Ch3LL\fP) Fix external_pillars documentation
  176816. @ \fI2018\-12\-20 19:15:20 UTC\fP
  176817. .INDENT 2.0
  176818. .IP \(bu 2
  176819. 49f2a35 Merge pull request \fI\%#50937\fP from Ch3LL/pillar_doc
  176820. .IP \(bu 2
  176821. 1f01489 Fix external_pillars documentation
  176822. .UNINDENT
  176823. .IP \(bu 2
  176824. \fBISSUE\fP \fI\%#50919\fP: (\fI\%dpkirchner\fP) state.apply test documentation unclear (refs: \fI\%#50940\fP)
  176825. .IP \(bu 2
  176826. \fBPR\fP \fI\%#50940\fP: (\fI\%terminalmage\fP) Fix confusing state module documentation
  176827. @ \fI2018\-12\-20 18:29:26 UTC\fP
  176828. .INDENT 2.0
  176829. .IP \(bu 2
  176830. 4213527 Merge pull request \fI\%#50940\fP from terminalmage/issue50919
  176831. .IP \(bu 2
  176832. 3318927 Fix confusing state module documentation
  176833. .UNINDENT
  176834. .IP \(bu 2
  176835. \fBPR\fP \fI\%#50929\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_lgpo_netsh\fP on Windows for Py3 (2018.3)
  176836. @ \fI2018\-12\-20 17:50:37 UTC\fP
  176837. .INDENT 2.0
  176838. .IP \(bu 2
  176839. 421e4f4 Merge pull request \fI\%#50929\fP from twangboy/fix_test_lgpo_netsh_2018.3
  176840. .IP \(bu 2
  176841. 01f9beb Fix failing lgpo netsh tests
  176842. .UNINDENT
  176843. .IP \(bu 2
  176844. \fBPR\fP \fI\%#50917\fP: (\fI\%dwoz\fP) Cherry pick test fixes from fluorine
  176845. @ \fI2018\-12\-19 17:56:19 UTC\fP
  176846. .INDENT 2.0
  176847. .IP \(bu 2
  176848. b08b7e1 Merge pull request \fI\%#50917\fP from dwoz/test_fixes
  176849. .IP \(bu 2
  176850. 16d10fb Fix linter warnings
  176851. .IP \(bu 2
  176852. b22f827 Increase and standardize ShellCase timeouts
  176853. .IP \(bu 2
  176854. a5c8c18 Do not pass unicode in environment
  176855. .UNINDENT
  176856. .IP \(bu 2
  176857. \fBPR\fP \fI\%#50913\fP: (\fI\%bdrung\fP) Fix documentation build
  176858. @ \fI2018\-12\-19 16:03:55 UTC\fP
  176859. .INDENT 2.0
  176860. .IP \(bu 2
  176861. 59df6b4 Merge pull request \fI\%#50913\fP from bdrung/fix\-doc\-build
  176862. .IP \(bu 2
  176863. ecdb452 doc: Indroduce MOCK_MODULES_MAPPING
  176864. .IP \(bu 2
  176865. cf64824 doc: Move mock_decorator_with_params up
  176866. .IP \(bu 2
  176867. 08ef669 doc: Address pylint issues in conf.py
  176868. .IP \(bu 2
  176869. 67a3e37 doc: Mark preamble variable as raw string
  176870. .IP \(bu 2
  176871. b1e6080 doc: Fix reference to salt executors
  176872. .IP \(bu 2
  176873. e48b324 doc: Replace xa0 (non\-breaking space) by spaces
  176874. .IP \(bu 2
  176875. b973e7a doc: Fix iterating over the Mock object in Python 3
  176876. .IP \(bu 2
  176877. bb29948 doc: Do not mock non\-existing __mro_entries__ attribute
  176878. .IP \(bu 2
  176879. e6cf3c4 Do not mock json when building the documentation
  176880. .IP \(bu 2
  176881. 4acaf45 Fix sphynx error about tornado.version_info
  176882. .UNINDENT
  176883. .IP \(bu 2
  176884. \fBISSUE\fP \fI\%#50892\fP: (\fI\%cruscio\fP) archive.extracted source_hash is case sensitive (refs: \fI\%#50906\fP)
  176885. .IP \(bu 2
  176886. \fBPR\fP \fI\%#50906\fP: (\fI\%garethgreenaway\fP) [2018.3] Ensure source_hash returned from get_source_sum is lowercase.
  176887. @ \fI2018\-12\-19 04:22:23 UTC\fP
  176888. .INDENT 2.0
  176889. .IP \(bu 2
  176890. f4e6b88 Merge pull request \fI\%#50906\fP from garethgreenaway/50892_archive_extracted_source_hash_case_sensitive
  176891. .IP \(bu 2
  176892. bcf8f06 fixing lint
  176893. .IP \(bu 2
  176894. 543ec7b Ensure source_hash returned from get_source_sum is lowercase.
  176895. .UNINDENT
  176896. .IP \(bu 2
  176897. \fBPR\fP \fI\%#50867\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  176898. @ \fI2018\-12\-14 21:32:23 UTC\fP
  176899. .INDENT 2.0
  176900. .IP \(bu 2
  176901. b95b44f Merge pull request \fI\%#50867\fP from Ch3LL/merge\-2018.3
  176902. .IP \(bu 2
  176903. 512293f Remove dunder_dictionaries.rst. Was added to modules/developing.rst
  176904. .IP \(bu 2
  176905. 89b4e09 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  176906. .IP \(bu 2
  176907. 858cfac Merge pull request \fI\%#50863\fP from 5uper5hoot/fix\-issue\-50848
  176908. .INDENT 2.0
  176909. .IP \(bu 2
  176910. c90d201 Unpack exception args in python3 compatible way.
  176911. .UNINDENT
  176912. .IP \(bu 2
  176913. e28b2ba Merge pull request \fI\%#50752\fP from kstreee/fix\-memory\-leak
  176914. .INDENT 2.0
  176915. .IP \(bu 2
  176916. 98cc63a Fixes a memory leak un\-cleared stream connections.
  176917. .UNINDENT
  176918. .IP \(bu 2
  176919. 1f57602 Merge pull request \fI\%#50837\fP from Ch3LL/pyren_doc
  176920. .INDENT 2.0
  176921. .IP \(bu 2
  176922. a873019 Clarify py render docs when data context is available
  176923. .UNINDENT
  176924. .IP \(bu 2
  176925. fdff675 Merge pull request \fI\%#50844\fP from twangboy/fix_grains
  176926. .INDENT 2.0
  176927. .IP \(bu 2
  176928. 473f4d7 Fix some unrelated lint
  176929. .IP \(bu 2
  176930. fd1a072 Fix grains for future windows releases
  176931. .UNINDENT
  176932. .IP \(bu 2
  176933. 32dfaba Merge pull request \fI\%#50816\fP from dubb\-b/2017.7
  176934. .INDENT 2.0
  176935. .IP \(bu 2
  176936. dc7ff48 Pinning bootstrap to the tagged version of salt.
  176937. .UNINDENT
  176938. .IP \(bu 2
  176939. b1e5f3f Merge pull request \fI\%#50709\fP from mattLLVW/service_unmask
  176940. .INDENT 2.0
  176941. .IP \(bu 2
  176942. b199255 Merge branch \(aq2017.7\(aq into service_unmask
  176943. .IP \(bu 2
  176944. 38addd1 salt style guideline
  176945. .IP \(bu 2
  176946. 823c4ad Implement unmask in states.services
  176947. .IP \(bu 2
  176948. 91a6bf5 Functional unmask, must add tests
  176949. .UNINDENT
  176950. .IP \(bu 2
  176951. e4e9563 Merge pull request \fI\%#50633\fP from astronouth7303/loader\-docs
  176952. .INDENT 2.0
  176953. .IP \(bu 2
  176954. 03e3168 whitelist_modules is linked via enable_whitelist_modules for some reason? idk
  176955. .IP \(bu 2
  176956. 5ca1f8e Typos
  176957. .IP \(bu 2
  176958. 7cb1a87 Add a quick index of loader\-related settings
  176959. .IP \(bu 2
  176960. 318ca48 Make a note to not import modules
  176961. .IP \(bu 2
  176962. 6294658 Merge remote\-tracking branch \(aqorigin/2017.7\(aq into loader\-docs
  176963. .IP \(bu 2
  176964. 678958e Editing
  176965. .IP \(bu 2
  176966. 9d59629 Merge branch \(aq2017.7\(aq into loader\-docs
  176967. .IP \(bu 2
  176968. 374d0e9 Finish the last sections
  176969. .IP \(bu 2
  176970. 98da110 Migrate Dynamic Module Distribution to Modular Systems.
  176971. .IP \(bu 2
  176972. 1bdd49d Add more links and write some system summaries
  176973. .IP \(bu 2
  176974. bd3796a Update TOC
  176975. .IP \(bu 2
  176976. 3a9ab1b Merge dunders into developing, expand to cover all dunders.
  176977. .IP \(bu 2
  176978. d06739a Add short writeups for a bunch of systems.
  176979. .IP \(bu 2
  176980. 705e7e4 Add a bunch of cross linking
  176981. .IP \(bu 2
  176982. 40f9b16 Add missing module type sections
  176983. .IP \(bu 2
  176984. 172d8c2 Refactor headings
  176985. .IP \(bu 2
  176986. 53154a0 Oops, missed that
  176987. .IP \(bu 2
  176988. 0dcd341 Possible horrific use of toctrees? maybe
  176989. .IP \(bu 2
  176990. bed3509 Refactor, add a TOC
  176991. .IP \(bu 2
  176992. f647c1d Fill in some missing modules
  176993. .IP \(bu 2
  176994. 9d4b596 Merge branch \(aq2017.7\(aq into loader\-docs
  176995. .IP \(bu 2
  176996. 26468df Add missing blank line
  176997. .IP \(bu 2
  176998. 205fea9 Some more revising
  176999. .IP \(bu 2
  177000. d4a8f7e Remove some code from some links
  177001. .IP \(bu 2
  177002. 65e4199 I feel like it should be up there
  177003. .IP \(bu 2
  177004. d44f5ce Rephrase footnote
  177005. .IP \(bu 2
  177006. 125e46e Add section on how modules get loaded, including giant table of names
  177007. .IP \(bu 2
  177008. 5bfc6c6 Update reference to modules/index
  177009. .IP \(bu 2
  177010. 4b096c1 Move all the module\-development documentation into a single folder
  177011. .UNINDENT
  177012. .IP \(bu 2
  177013. dcdb9b2 Merge pull request \fI\%#50750\fP from bewing/pepa12
  177014. .INDENT 2.0
  177015. .IP \(bu 2
  177016. 9931a41 Fix last key detection in pepa key_value_to_tree
  177017. .UNINDENT
  177018. .IP \(bu 2
  177019. cb85d5d Merge pull request \fI\%#50733\fP from marmarek/patch\-3
  177020. .INDENT 2.0
  177021. .IP \(bu 2
  177022. 1011421 Report salt\-call exit code from ssh_py_shim.py
  177023. .UNINDENT
  177024. .IP \(bu 2
  177025. b086ff3 Merge pull request \fI\%#50756\fP from GwiYeong/local\-client\-fix
  177026. .INDENT 2.0
  177027. .IP \(bu 2
  177028. c488092 fix local client missing minion return
  177029. .UNINDENT
  177030. .UNINDENT
  177031. .IP \(bu 2
  177032. \fBISSUE\fP \fI\%#50850\fP: (\fI\%akrus\fP) key_cache: sched prints error messages in logs (refs: \fI\%#50859\fP)
  177033. .IP \(bu 2
  177034. \fBPR\fP \fI\%#50859\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes for key_cache and python3
  177035. @ \fI2018\-12\-13 23:57:07 UTC\fP
  177036. .INDENT 2.0
  177037. .IP \(bu 2
  177038. 216fa14 Merge pull request \fI\%#50859\fP from garethgreenaway/50850_python_key_cache_file_binary
  177039. .IP \(bu 2
  177040. ebc9a01 When reading and writing the key cache file, when using Python3, ensuring the file is read & written in binary mode.
  177041. .UNINDENT
  177042. .IP \(bu 2
  177043. \fBPR\fP \fI\%#50828\fP: (\fI\%twangboy\fP) Fix issues with lgpo state and util
  177044. @ \fI2018\-12\-13 16:37:33 UTC\fP
  177045. .INDENT 2.0
  177046. .IP \(bu 2
  177047. 6b45aad Merge pull request \fI\%#50828\fP from twangboy/fix_lgpo
  177048. .IP \(bu 2
  177049. 05baa95 Merge branch \(aq2018.3\(aq into fix_lgpo
  177050. .UNINDENT
  177051. .IP \(bu 2
  177052. \fBPR\fP \fI\%#50843\fP: (\fI\%bdrung\fP) Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi
  177053. @ \fI2018\-12\-12 20:36:32 UTC\fP
  177054. .INDENT 2.0
  177055. .IP \(bu 2
  177056. 6ea059d Merge pull request \fI\%#50843\fP from bdrung/fix\-tests
  177057. .IP \(bu 2
  177058. 0d00ae4 Fix RemoveCapacityFromDiskgroupTestCase require pyvmomi
  177059. .UNINDENT
  177060. .IP \(bu 2
  177061. \fBISSUE\fP \fI\%#50829\fP: (\fI\%ghost\fP) process.absent UnicodeDecodeError (refs: \fI\%#50839\fP)
  177062. .IP \(bu 2
  177063. \fBPR\fP \fI\%#50839\fP: (\fI\%terminalmage\fP) Fix UnicodeDecodeError in ps module
  177064. @ \fI2018\-12\-12 19:59:12 UTC\fP
  177065. .INDENT 2.0
  177066. .IP \(bu 2
  177067. 14d7d1d Merge pull request \fI\%#50839\fP from terminalmage/issue50829
  177068. .IP \(bu 2
  177069. 3a3d9b7 Ensure that unicode types returned from compatibility funcs
  177070. .IP \(bu 2
  177071. 1a00abc Add unit test for _get_proc_cmdline
  177072. .IP \(bu 2
  177073. 9eaa2ed Remove extraneous comments
  177074. .UNINDENT
  177075. .IP \(bu 2
  177076. \fBISSUE\fP \fI\%saltstack/salt#49393\fP: (\fI\%Poil\fP) file.directory recurse not always changing perms (refs: \fI\%#50653\fP)
  177077. .IP \(bu 2
  177078. \fBPR\fP \fI\%#50653\fP: (\fI\%lexvella\fP) Check file_mode in file.directory and _check_directory
  177079. @ \fI2018\-12\-12 16:30:52 UTC\fP
  177080. .INDENT 2.0
  177081. .IP \(bu 2
  177082. 264a042 Merge pull request \fI\%#50653\fP from lexvella/2018.3
  177083. .IP \(bu 2
  177084. 4ea9386 Merge branch \(aq2018.3\(aq into 2018.3
  177085. .IP \(bu 2
  177086. 42e4ab3 Merge branch \(aq2018.3\(aq into 2018.3
  177087. .IP \(bu 2
  177088. 79f6b42 Check file_mode in file.directory and _check_directory
  177089. .INDENT 2.0
  177090. .INDENT 3.5
  177091. .INDENT 0.0
  177092. .IP \(bu 2
  177093. 1233e2b Fix some lint
  177094. .IP \(bu 2
  177095. 56c0e55 Fix issues with lgpo state and util
  177096. .UNINDENT
  177097. .UNINDENT
  177098. .UNINDENT
  177099. .UNINDENT
  177100. .IP \(bu 2
  177101. \fBISSUE\fP \fI\%#45026\fP: (\fI\%angeloudy\fP) bytes error in mysql module (refs: \fI\%#50823\fP)
  177102. .IP \(bu 2
  177103. \fBPR\fP \fI\%#50823\fP: (\fI\%terminalmage\fP) salt.modules.mysql: Decode fetch results before making string comparisons
  177104. @ \fI2018\-12\-11 21:04:41 UTC\fP
  177105. .INDENT 2.0
  177106. .IP \(bu 2
  177107. a8ad17a Merge pull request \fI\%#50823\fP from terminalmage/issue45026
  177108. .IP \(bu 2
  177109. ec8e116 Decode fetch results before making string comparisons
  177110. .UNINDENT
  177111. .IP \(bu 2
  177112. \fBPR\fP \fI\%#50817\fP: (\fI\%dubb\-b\fP) Adding git \(aqv\(aq to the bootstrap options
  177113. @ \fI2018\-12\-11 17:28:10 UTC\fP
  177114. .INDENT 2.0
  177115. .IP \(bu 2
  177116. e31e731 Merge pull request \fI\%#50817\fP from dubb\-b/2018.3
  177117. .IP \(bu 2
  177118. 48fc01f Adding git \(aqv\(aq to the bootstrap options
  177119. .UNINDENT
  177120. .IP \(bu 2
  177121. \fBPR\fP \fI\%#50780\fP: (\fI\%twangboy\fP) Add netsh mechanism in the LGPO module
  177122. @ \fI2018\-12\-10 22:09:20 UTC\fP
  177123. .INDENT 2.0
  177124. .IP \(bu 2
  177125. 9b6b39c Merge pull request \fI\%#50780\fP from twangboy/lgpo_netsh
  177126. .IP \(bu 2
  177127. 5eea728 Fix some lint
  177128. .IP \(bu 2
  177129. f077783 Add some tests
  177130. .IP \(bu 2
  177131. 2dde12a Fix one more lint item
  177132. .IP \(bu 2
  177133. c55b7b4 Fix some lint
  177134. .IP \(bu 2
  177135. 1247598 Add more policies
  177136. .IP \(bu 2
  177137. b2b9795 Fix overly long lines
  177138. .IP \(bu 2
  177139. f18d1aa Add additional policies that use netsh
  177140. .IP \(bu 2
  177141. cb50648 Add versionadded tags
  177142. .IP \(bu 2
  177143. 00cbf26 Add the netsh mechanism to the lgpo module
  177144. .UNINDENT
  177145. .IP \(bu 2
  177146. \fBPR\fP \fI\%#50783\fP: (\fI\%sathieu\fP) gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs
  177147. @ \fI2018\-12\-10 20:34:53 UTC\fP
  177148. .INDENT 2.0
  177149. .IP \(bu 2
  177150. 0351296 Merge pull request \fI\%#50783\fP from sathieu/gitfs_stalerefs_unicode
  177151. .IP \(bu 2
  177152. ef160a6 gitfs/git_pillar: Fix UnicodeDecodeError while cleaning stale refs
  177153. .UNINDENT
  177154. .IP \(bu 2
  177155. \fBISSUE\fP \fI\%#45867\fP: (\fI\%Nick2253\fP) Icinga2 Module uses incorrect paths (refs: \fI\%#50615\fP)
  177156. .IP \(bu 2
  177157. \fBPR\fP \fI\%#50765\fP: (\fI\%ClaudiuPID\fP) Fix icinga2 cert path
  177158. @ \fI2018\-12\-10 18:10:24 UTC\fP
  177159. .INDENT 2.0
  177160. .IP \(bu 2
  177161. \fBPR\fP \fI\%#50615\fP: (\fI\%ClaudiuPID\fP) Fixes icinga2 certs path for newer versions 2.8+ (refs: \fI\%#50765\fP)
  177162. .IP \(bu 2
  177163. deadf9c Merge pull request \fI\%#50765\fP from ClaudiuPID/fix\-icinga2\-cert\-path
  177164. .IP \(bu 2
  177165. ce1842e Merge branch \(aq2018.3\(aq into fix\-icinga2\-cert\-path
  177166. .IP \(bu 2
  177167. 31878d5 Pylint fixes
  177168. .IP \(bu 2
  177169. 47bfba1 Migrated to cmd.run_all and tested on working srv
  177170. .IP \(bu 2
  177171. a1dddce Fixes icinga2 certs path for newer versions 2.8+
  177172. .UNINDENT
  177173. .IP \(bu 2
  177174. \fBPR\fP \fI\%#50692\fP: (\fI\%terminalmage\fP) Update a couple test modules to use with_tempdir/with_tempfile decorators
  177175. @ \fI2018\-12\-10 17:24:02 UTC\fP
  177176. .INDENT 2.0
  177177. .IP \(bu 2
  177178. 9f8289b Merge pull request \fI\%#50692\fP from terminalmage/update\-tests
  177179. .IP \(bu 2
  177180. 36a4a1a Merge branch \(aq2018.3\(aq into update\-tests
  177181. .IP \(bu 2
  177182. be14517 Make x509 tests use tempfiles instead of hard\-coding them
  177183. .IP \(bu 2
  177184. a394cd7 Update file integration tests to use decorator for tempdirs
  177185. .UNINDENT
  177186. .IP \(bu 2
  177187. \fBISSUE\fP \fI\%#32245\fP: (\fI\%tkwilliams\fP) git_pillar should permit automatic mapping of environment to branch a\-la gitfs (refs: \fI\%#50768\fP)
  177188. .IP \(bu 2
  177189. \fBPR\fP \fI\%#50768\fP: (\fI\%sathieu\fP) git_pillar: Add support for all_saltenvs parameter
  177190. @ \fI2018\-12\-10 16:39:37 UTC\fP
  177191. .INDENT 2.0
  177192. .IP \(bu 2
  177193. 3a71567 Merge pull request \fI\%#50768\fP from sathieu/git_pillar_all_saltenvs
  177194. .IP \(bu 2
  177195. e971412 git_pillar: Add support for all_saltenvs parameter
  177196. .UNINDENT
  177197. .IP \(bu 2
  177198. \fBISSUE\fP \fI\%#48801\fP: (\fI\%dstoliker\fP) salt.states.user.present \- mindays, warndays, and inactdays won\(aqt return to salt\(aqs default values (refs: \fI\%#50796\fP)
  177199. .IP \(bu 2
  177200. \fBPR\fP \fI\%#50796\fP: (\fI\%dwoz\fP) Fix \fI\%#48801\fP min, max, inact, and warn changes
  177201. @ \fI2018\-12\-10 16:30:14 UTC\fP
  177202. .INDENT 2.0
  177203. .IP \(bu 2
  177204. 12a8447 Merge pull request \fI\%#50796\fP from dwoz/issue48801
  177205. .IP \(bu 2
  177206. 6b95223 fix linter errors
  177207. .IP \(bu 2
  177208. 87a04df Fix \fI\%#48801\fP min, max, inact, and warn changes
  177209. .UNINDENT
  177210. .IP \(bu 2
  177211. \fBISSUE\fP \fI\%#46388\fP: (\fI\%dynek\fP) IPv4 & v6 network configuration on Debian (refs: \fI\%#49355\fP)
  177212. .IP \(bu 2
  177213. \fBISSUE\fP \fI\%#40262\fP: (\fI\%pjediny\fP) Salt enforces configuration from /etc/network/interfaces.d/* to /etc/network/interface (refs: \fI\%#49355\fP)
  177214. .IP \(bu 2
  177215. \fBISSUE\fP \fI\%#38672\fP: (\fI\%valentin2105\fP) IPv6 Network states is incomplete (refs: \fI\%#49355\fP)
  177216. .IP \(bu 2
  177217. \fBPR\fP \fI\%#50804\fP: (\fI\%Ch3LL\fP) Back\-port \fI\%#49355\fP to 2018.3
  177218. @ \fI2018\-12\-10 16:21:31 UTC\fP
  177219. .INDENT 2.0
  177220. .IP \(bu 2
  177221. \fBPR\fP \fI\%#49355\fP: (\fI\%MTecknology\fP) Improve management of interfaces in debian\-based distributions (refs: \fI\%#50804\fP)
  177222. .IP \(bu 2
  177223. \fBPR\fP \fI\%#46980\fP: (\fI\%MTecknology\fP) Fix broken rendering debian_eth.jinja. (refs: \fI\%#49355\fP)
  177224. .IP \(bu 2
  177225. b266e8b Merge pull request \fI\%#50804\fP from Ch3LL/bp\-49355
  177226. .IP \(bu 2
  177227. d34eade Use a temp file instead of /etc/network/interfaces for unit tests.
  177228. .IP \(bu 2
  177229. 622c354 Support reading multiple addresses from interface files.
  177230. .IP \(bu 2
  177231. 15c34fe Support unicode in space\-delimited list; fixes unit tests in py2.
  177232. .IP \(bu 2
  177233. 0b59561 Added documentation about debian interfaces.d/*. (Fixes: \fI\%#40262\fP)
  177234. .IP \(bu 2
  177235. 1b096fb Removed python lint.
  177236. .IP \(bu 2
  177237. 6e41225 Finished adding support for multiple IP addresses.
  177238. .IP \(bu 2
  177239. 4c7df5f Cleaned up documentation/examples in states.network:
  177240. .IP \(bu 2
  177241. 601f434 Added support for \-ipaddrs and \-ipv6ipaddrs to modules.debian_ip().
  177242. .IP \(bu 2
  177243. 638f899 Added support for loopback devices to modules.debian_ip(). (Fixes: \fI\%#38672\fP)
  177244. .IP \(bu 2
  177245. cf61c8d Added a bunch of unit tests for modules.debian_ip.build_interface().
  177246. .IP \(bu 2
  177247. b905cf6 Added support for dns_{nameservers,search} being a list or string.
  177248. .UNINDENT
  177249. .IP \(bu 2
  177250. \fBPR\fP \fI\%#50767\fP: (\fI\%dwoz\fP) Make sure ldap passwords are honored
  177251. @ \fI2018\-12\-05 22:59:17 UTC\fP
  177252. .INDENT 2.0
  177253. .IP \(bu 2
  177254. dc9414c Merge pull request \fI\%#50767\fP from dwoz/ldap_no_pass
  177255. .IP \(bu 2
  177256. 67aa591 Fix linter errors
  177257. .IP \(bu 2
  177258. be3945a Remove crufty import
  177259. .IP \(bu 2
  177260. 91f50a4 Add more ldap auth tests for ZD\-2993
  177261. .IP \(bu 2
  177262. 055a8d5 Make sure ldap passwords are honored
  177263. .UNINDENT
  177264. .IP \(bu 2
  177265. \fBISSUE\fP \fI\%#50364\fP: (\fI\%sathieu\fP) git_pillar mountpoint ignores the root parameter (refs: \fI\%#50626\fP)
  177266. .IP \(bu 2
  177267. \fBPR\fP \fI\%#50626\fP: (\fI\%sathieu\fP) git_pillar: Allow root and mountpoint parameters together
  177268. @ \fI2018\-12\-05 17:46:59 UTC\fP
  177269. .INDENT 2.0
  177270. .IP \(bu 2
  177271. 60aa0d5 Merge pull request \fI\%#50626\fP from sathieu/git_pillar_mountpoint_and_root
  177272. .IP \(bu 2
  177273. 5423c27 git_pillar: Allow root and mountpoint parameters together
  177274. .UNINDENT
  177275. .IP \(bu 2
  177276. \fBPR\fP \fI\%#50745\fP: (\fI\%bbinet\fP) Fix grafana dashboard updating when nothing has changed
  177277. @ \fI2018\-12\-04 19:26:32 UTC\fP
  177278. .INDENT 2.0
  177279. .IP \(bu 2
  177280. c02387e Merge pull request \fI\%#50745\fP from bbinet/fix\-grafana\-dashboard\-update
  177281. .IP \(bu 2
  177282. 7019d47 Fix grafana dashboard updating when nothing has changed
  177283. .UNINDENT
  177284. .IP \(bu 2
  177285. \fBPR\fP \fI\%#50737\fP: (\fI\%garethgreenaway\fP) [develop] Merge forward from 2017.7 to 2018.8
  177286. @ \fI2018\-12\-04 16:02:13 UTC\fP
  177287. .INDENT 2.0
  177288. .IP \(bu 2
  177289. ae81498 Merge pull request \fI\%#50737\fP from garethgreenaway/merge\-2017.7
  177290. .IP \(bu 2
  177291. fde8db5 Merge branch \(aq2017.7\(aq into merge\-2017.7
  177292. .IP \(bu 2
  177293. 246c055 Merge pull request \fI\%#50718\fP from dwoz/run_run_timeout
  177294. .INDENT 2.0
  177295. .IP \(bu 2
  177296. ecd8486 Honor run_run timeout for shell tests
  177297. .UNINDENT
  177298. .IP \(bu 2
  177299. 979b3aa Merge pull request \fI\%#50702\fP from damon\-atkins/jenkins_pylint
  177300. .INDENT 2.0
  177301. .IP \(bu 2
  177302. 5936066 ensure archiveArtifacts are always collected. Use CHANGE_BRANCH to detect merge\-forward
  177303. .UNINDENT
  177304. .IP \(bu 2
  177305. 22acaaa Merge pull request \fI\%#50632\fP from astronouth7303/loader\-exception\-handler
  177306. .INDENT 2.0
  177307. .IP \(bu 2
  177308. 0f72815 Merge branch \(aq2017.7\(aq into loader\-exception\-handler
  177309. .UNINDENT
  177310. .IP \(bu 2
  177311. d9e7be1 Merge pull request \fI\%#50670\fP from damon\-atkins/jenkins_pylint
  177312. .INDENT 2.0
  177313. .IP \(bu 2
  177314. b6d1605 ci/lint corrected filenames and test condition on full lint Also fix CODEOWNER team name
  177315. .INDENT 2.0
  177316. .IP \(bu 2
  177317. 194801a Merge branch \(aqloader\-exception\-handler\(aq of github.com:astronouth7303/salt into loader\-exception\-handler
  177318. .INDENT 2.0
  177319. .IP \(bu 2
  177320. dadeb0d Merge branch \(aq2017.7\(aq into loader\-exception\-handler
  177321. .UNINDENT
  177322. .IP \(bu 2
  177323. 8697744 Use single quotes per style guide
  177324. .IP \(bu 2
  177325. 07868f1 Improve logging output
  177326. .IP \(bu 2
  177327. fb05bd5 Eat an exception from an entry point instead of letting it kill the system.
  177328. .UNINDENT
  177329. .UNINDENT
  177330. .UNINDENT
  177331. .IP \(bu 2
  177332. \fBPR\fP \fI\%#50685\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177333. @ \fI2018\-11\-30 18:46:07 UTC\fP
  177334. .INDENT 2.0
  177335. .IP \(bu 2
  177336. edaa9fe Merge pull request \fI\%#50685\fP from Ch3LL/merge_2018.3
  177337. .IP \(bu 2
  177338. d46aff0 Merge branch 2017.7 into 2018.3
  177339. .INDENT 2.0
  177340. .IP \(bu 2
  177341. 6dc3afc Merge pull request \fI\%#50672\fP from garethgreenaway/49691_file_replace_search_only_return_false
  177342. .INDENT 2.0
  177343. .IP \(bu 2
  177344. 7e7df06 lint
  177345. .IP \(bu 2
  177346. 6b73c76 When using file.replace, with the search_only option, if the pattern does not exist in the file then we should return False.
  177347. .UNINDENT
  177348. .IP \(bu 2
  177349. 1236b51 Merge pull request \fI\%#50659\fP from garethgreenaway/49954_gem_installed_less_than_greater_than_support
  177350. .INDENT 2.0
  177351. .IP \(bu 2
  177352. 0ec8bcf When using the gem installed state, when passing a version that includes greater than or less than symbols, ensure that the installed versions meets that requirement.
  177353. .UNINDENT
  177354. .IP \(bu 2
  177355. 6317f3a Merge pull request \fI\%#50583\fP from damon\-atkins/jenkins_pylint
  177356. .INDENT 2.0
  177357. .IP \(bu 2
  177358. 2d1f51c Fix lint only changes, full lint on merge forwards \- lint only changes previous diff picked up out of data files, when the branch was out of date. \- full limit on merge forward to pick up changes in the lint checks between versions. \- update CODEOWNERS for .ci/*
  177359. .UNINDENT
  177360. .IP \(bu 2
  177361. 15bf09a Merge pull request \fI\%#50605\fP from Oloremo/fix\-supervisord\-dead\-state\-idempotency
  177362. .INDENT 2.0
  177363. .IP \(bu 2
  177364. ba3f281 Merge branch \(aq2017.7\(aq into fix\-supervisord\-dead\-state\-idempotency
  177365. .IP \(bu 2
  177366. cf9ab84 Merge branch \(aq2017.7\(aq into fix\-supervisord\-dead\-state\-idempotency
  177367. .IP \(bu 2
  177368. af386a2 Fixed the supervisord.dead state idempotency
  177369. .UNINDENT
  177370. .UNINDENT
  177371. .UNINDENT
  177372. .IP \(bu 2
  177373. \fBISSUE\fP \fI\%#50016\fP: (\fI\%abednarik\fP) State augeas.change do not update config file (refs: \fI\%#50690\fP)
  177374. .IP \(bu 2
  177375. \fBPR\fP \fI\%#50690\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to augeas_cfg module
  177376. @ \fI2018\-11\-30 18:44:42 UTC\fP
  177377. .INDENT 2.0
  177378. .IP \(bu 2
  177379. 7cb2405 Merge pull request \fI\%#50690\fP from garethgreenaway/50016_ensure_path_is_str
  177380. .IP \(bu 2
  177381. cec7cb4 Older versions of python\-augeas need the path passed to aug.match to be a string.
  177382. .UNINDENT
  177383. .IP \(bu 2
  177384. \fBISSUE\fP \fI\%#49392\fP: (\fI\%Poil\fP) hosts not replacing existing entry (refs: \fI\%#50657\fP)
  177385. .IP \(bu 2
  177386. \fBPR\fP \fI\%#50657\fP: (\fI\%terminalmage\fP) Rewrite host.present state to allow for removal of entries not matching IP
  177387. @ \fI2018\-11\-29 17:58:40 UTC\fP
  177388. .INDENT 2.0
  177389. .IP \(bu 2
  177390. a5c7639 Merge pull request \fI\%#50657\fP from terminalmage/issue49392
  177391. .IP \(bu 2
  177392. 2ddb587 Add release notes for new "clean" option
  177393. .IP \(bu 2
  177394. e4946f9 Rename "remove" argument to "clean"
  177395. .IP \(bu 2
  177396. 7fd3bce Add remove parameter to host.present state
  177397. .IP \(bu 2
  177398. 2671a30 Add unit tests for host.present state
  177399. .IP \(bu 2
  177400. 30f1b85 Remove non\-matching IPs from hosts file
  177401. .IP \(bu 2
  177402. ec297a0 Performance improvements in hosts module
  177403. .IP \(bu 2
  177404. d1c2038 Add generic ip address validation function
  177405. .IP \(bu 2
  177406. 9f54720 Add ignore ability to process_read_exception
  177407. .UNINDENT
  177408. .IP \(bu 2
  177409. \fBISSUE\fP \fI\%#48759\fP: (\fI\%MyIgel\fP) acme.cert: Fail to update certificate after adding aliases / missing \-\-expand (refs: \fI\%#50683\fP)
  177410. .IP \(bu 2
  177411. \fBPR\fP \fI\%#50683\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to acme module when adding aliases to existing certificate
  177412. @ \fI2018\-11\-29 17:46:54 UTC\fP
  177413. .INDENT 2.0
  177414. .IP \(bu 2
  177415. b604785 Merge pull request \fI\%#50683\fP from garethgreenaway/48759_adding_aliases_include_expand
  177416. .IP \(bu 2
  177417. 3940a0f When adding alises to an existing Certbot certificate, if we see a message about expanding in the stderr returned from cmd.run_all we should rerun the cmd with \-\-expand included.
  177418. .UNINDENT
  177419. .IP \(bu 2
  177420. \fBISSUE\fP \fI\%#50406\fP: (\fI\%glkappe\fP) salt\-ssh can\(aqt use Mongo returner (refs: \fI\%#50664\fP)
  177421. .IP \(bu 2
  177422. \fBPR\fP \fI\%#50664\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to logic for configuring returners
  177423. @ \fI2018\-11\-28 05:24:30 UTC\fP
  177424. .INDENT 2.0
  177425. .IP \(bu 2
  177426. 15f9ae4 Merge pull request \fI\%#50664\fP from garethgreenaway/50406_salt_ssh_returner_configuration
  177427. .IP \(bu 2
  177428. 3525411 When pulling values out of the available configuration for returners we should always default to using keys for those returners, eg. mongo.user for the username. Otherwise in certain situations, eg. when using salt\-ssh we will end up with the wrong value for the user.
  177429. .UNINDENT
  177430. .IP \(bu 2
  177431. \fBPR\fP \fI\%#50652\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_mac_utils\fP on Windows
  177432. @ \fI2018\-11\-27 20:45:41 UTC\fP
  177433. .INDENT 2.0
  177434. .IP \(bu 2
  177435. afbcf03 Merge pull request \fI\%#50652\fP from twangboy/fix_test_mac_utils
  177436. .IP \(bu 2
  177437. c4cb729 Fix path issues with the tests
  177438. .UNINDENT
  177439. .IP \(bu 2
  177440. \fBPR\fP \fI\%#50640\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177441. @ \fI2018\-11\-26 22:33:22 UTC\fP
  177442. .INDENT 2.0
  177443. .IP \(bu 2
  177444. 61a824f Merge pull request \fI\%#50640\fP from garethgreenaway/merge\-2017
  177445. .IP \(bu 2
  177446. 409c98f Merge branch \(aq2018.3\(aq into merge\-2017
  177447. .UNINDENT
  177448. .IP \(bu 2
  177449. \fBISSUE\fP \fI\%#50403\fP: (\fI\%prometheanfire\fP) tornado 5.1.1 is not co\-installable with salt on python2.7 (refs: \fI\%#50639\fP)
  177450. .IP \(bu 2
  177451. \fBPR\fP \fI\%#50639\fP: (\fI\%dwoz\fP) Handle pipenv like version restrictions
  177452. @ \fI2018\-11\-26 19:42:11 UTC\fP
  177453. .INDENT 2.0
  177454. .IP \(bu 2
  177455. 20a2de3 Merge pull request \fI\%#50639\fP from dwoz/pipfix
  177456. .IP \(bu 2
  177457. 9c6f653 Handle pipenv like version restrictions
  177458. .INDENT 2.0
  177459. .IP \(bu 2
  177460. fced78b lint
  177461. .IP \(bu 2
  177462. 45a1aa3 Merge branch \(aq2017.7\(aq into merge\-2017
  177463. .IP \(bu 2
  177464. b2cf134 Merge pull request \fI\%#50463\fP from dwoz/zmqpubserv
  177465. .INDENT 2.0
  177466. .IP \(bu 2
  177467. a289e3c Merge branch \(aq2017.7\(aq into zmqpubserv
  177468. .UNINDENT
  177469. .IP \(bu 2
  177470. 6679242 Merge pull request \fI\%#50590\fP from garethgreenaway/bp\-50333
  177471. .INDENT 2.0
  177472. .IP \(bu 2
  177473. 1f5aa4b pkg.installed currently fails when sources is used along with hold: True. This was due to a change in \fI\%#48426\fP that swapped out sending the pkgs variable for the desired variable instead. This caused problems with pkg.hold because desired and sources are always populated, and pkg.hold can only include one or the other. This change just includes desired in the call to pkg.hold since desired has the same value for sources.
  177474. .INDENT 2.0
  177475. .IP \(bu 2
  177476. 39e811b Add issue url to tests
  177477. .IP \(bu 2
  177478. c4d7a43 Add debug log when connecting
  177479. .IP \(bu 2
  177480. 4f81432 Set subscribe via sockopt for better compatibility
  177481. .IP \(bu 2
  177482. 6882209 More reliable pub server publishing
  177483. .UNINDENT
  177484. .UNINDENT
  177485. .UNINDENT
  177486. .UNINDENT
  177487. .IP \(bu 2
  177488. \fBISSUE\fP \fI\%#49957\fP: (\fI\%whytewolf\fP) salt\-master scheduled items ignore maxrunning. (refs: \fI\%#50130\fP)
  177489. .IP \(bu 2
  177490. \fBPR\fP \fI\%#50130\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to schedule maxrunning on master
  177491. @ \fI2018\-11\-26 18:35:35 UTC\fP
  177492. .INDENT 2.0
  177493. .IP \(bu 2
  177494. 5b7ab35 Merge pull request \fI\%#50130\fP from garethgreenaway/49957_master_schedule_ignoring_maxrunning
  177495. .IP \(bu 2
  177496. 2f6dac9 Updating test_maxrunning_master to Mock get_running_jobs.
  177497. .IP \(bu 2
  177498. abda0a4 Reverting changes to doc/conf.py.
  177499. .IP \(bu 2
  177500. 6d072fc Some additional cleanup.
  177501. .IP \(bu 2
  177502. 4bd0406 Adding integration.scheduler.test_maxrunning to ignore list.
  177503. .IP \(bu 2
  177504. 45e160d Adding integration.scheduler.test_maxrunning to filename_map.yml
  177505. .IP \(bu 2
  177506. 2201a46 Fixing lint
  177507. .IP \(bu 2
  177508. 6c0ee32 removing unused cache_jobs function from utils/master.py
  177509. .IP \(bu 2
  177510. c2ed1d4 Adding some logging when the cache files are unable to be removed.
  177511. .IP \(bu 2
  177512. 44940d6 Ensure minion tests using minion options.
  177513. .IP \(bu 2
  177514. 722be43 Fixing lint
  177515. .IP \(bu 2
  177516. 65b4421 Adding some master specific functions to uitls/masters.py to determine if a Salt process is running. Updating utils/schedule.py to use the appropriate running function either from utils/master.py or utils/minion.py depending on where the scheduled job is running. Adding tests to test maxrunning in scheduled jobs for both the minion and master.
  177517. .IP \(bu 2
  177518. 0d65304 Swapping manual mocking to autodoc_mock_imports
  177519. .UNINDENT
  177520. .IP \(bu 2
  177521. \fBISSUE\fP \fI\%#50542\fP: (\fI\%doug\-stratoscale\fP) mysql.user_exists doesn\(aqt work with Mysql 8.0.13 (refs: \fI\%#50551\fP)
  177522. .IP \(bu 2
  177523. \fBPR\fP \fI\%#50551\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to verify_login in mysql module
  177524. @ \fI2018\-11\-26 17:44:25 UTC\fP
  177525. .INDENT 2.0
  177526. .IP \(bu 2
  177527. 26759c2 Merge pull request \fI\%#50551\fP from garethgreenaway/50542_mysql_ensure_verify_login_uses_connection_host
  177528. .IP \(bu 2
  177529. 96742aed4 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177530. .IP \(bu 2
  177531. eb510a6 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177532. .IP \(bu 2
  177533. 6d2309d Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177534. .IP \(bu 2
  177535. db89b27 Merge branch \(aq2018.3\(aq into 50542_mysql_ensure_verify_login_uses_connection_host
  177536. .IP \(bu 2
  177537. 0284323 Ensure that verify_login is using the host from the connection_args and not the host associated with the user. Adding a test to ensure user_exists when the passed host is the MySQL wildcard %.
  177538. .UNINDENT
  177539. .IP \(bu 2
  177540. \fBPR\fP \fI\%#50619\fP: (\fI\%s0undt3ch\fP) Don\(aqt squash tracebacks and Unicode fixes
  177541. @ \fI2018\-11\-26 17:04:31 UTC\fP
  177542. .INDENT 2.0
  177543. .IP \(bu 2
  177544. 14c4fd5 Merge pull request \fI\%#50619\fP from s0undt3ch/2018.3
  177545. .IP \(bu 2
  177546. a4771d2 UNICODE!
  177547. .IP \(bu 2
  177548. 72205a5 DO! NOT! SQUASH! TRACEBACKS!
  177549. .UNINDENT
  177550. .IP \(bu 2
  177551. \fBISSUE\fP \fI\%#50562\fP: (\fI\%soostdijck\fP) scheduled highstate ignores blackout (refs: \fI\%#50586\fP)
  177552. .IP \(bu 2
  177553. \fBPR\fP \fI\%#50586\fP: (\fI\%garethgreenaway\fP) [2018.3] minion_blackout for scheduled jobs
  177554. @ \fI2018\-11\-23 11:15:38 UTC\fP
  177555. .INDENT 2.0
  177556. .IP \(bu 2
  177557. 59809a1 Merge pull request \fI\%#50586\fP from garethgreenaway/50562_minion_blackout_scheduler
  177558. .IP \(bu 2
  177559. 48673b7 Adding some defaults for minion_blackout code when pillar & grains are not available in opts. Removing some debugging code.
  177560. .IP \(bu 2
  177561. 9f422b2 Moving the minion_blackout code to the start of the try...except. Adding a test to ensure we get a log.exception when minion_blackout is True.
  177562. .IP \(bu 2
  177563. 2bf8fa5 Adding support for minion_blackout for jobs that are run from the Salt scheduler.
  177564. .UNINDENT
  177565. .IP \(bu 2
  177566. \fBPR\fP \fI\%#50576\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50549\fP to 2018.3
  177567. @ \fI2018\-11\-21 14:39:55 UTC\fP
  177568. .INDENT 2.0
  177569. .IP \(bu 2
  177570. \fBPR\fP \fI\%#50549\fP: (\fI\%cachedout\fP) Add security credits to release notes (refs: \fI\%#50576\fP)
  177571. .IP \(bu 2
  177572. 5c28179 Merge pull request \fI\%#50576\fP from garethgreenaway/bp\-50549
  177573. .IP \(bu 2
  177574. 807068d Typo fix
  177575. .IP \(bu 2
  177576. 2ef8307 Typo fix
  177577. .IP \(bu 2
  177578. 7c8957a Typo fix
  177579. .IP \(bu 2
  177580. c1ca603 Merge branch \(aq2018.3\(aq into bp\-50549
  177581. .IP \(bu 2
  177582. b163380 Add security credits to release notes
  177583. .UNINDENT
  177584. .IP \(bu 2
  177585. \fBPR\fP \fI\%#50599\fP: (\fI\%terminalmage\fP) Merge Sphinx fixes from 2017.7 to 2018.3
  177586. @ \fI2018\-11\-21 13:31:18 UTC\fP
  177587. .INDENT 2.0
  177588. .IP \(bu 2
  177589. c9531d8 Merge pull request \fI\%#50599\fP from terminalmage/merge\-2018.3
  177590. .IP \(bu 2
  177591. ba82b07 Merge remote\-tracking branch \(aqupstream/2017.7\(aq into merge\-2018.3
  177592. .IP \(bu 2
  177593. 1b8a8ac Merge pull request \fI\%#50592\fP from terminalmage/docs\-2017.7
  177594. .INDENT 2.0
  177595. .IP \(bu 2
  177596. db15776 Remove overline from section title
  177597. .IP \(bu 2
  177598. 8127dd5 Disable unused shorturls plugin
  177599. .UNINDENT
  177600. .UNINDENT
  177601. .IP \(bu 2
  177602. \fBISSUE\fP \fI\%#50254\fP: (\fI\%jmcook1\fP) file.line adding line every time (refs: \fI\%#50366\fP)
  177603. .IP \(bu 2
  177604. \fBPR\fP \fI\%#50366\fP: (\fI\%t0fik\fP) 2018.3 fix issue50254
  177605. @ \fI2018\-11\-20 20:31:30 UTC\fP
  177606. .INDENT 2.0
  177607. .IP \(bu 2
  177608. 60b4622 Merge pull request \fI\%#50366\fP from jdsieci/2018.3\-fix\-issue50254
  177609. .IP \(bu 2
  177610. a9b9fa2 Fixed pylint warnigs
  177611. .IP \(bu 2
  177612. 342786b Issue \fI\%#50254\fP fixed
  177613. .IP \(bu 2
  177614. 1ab59e7 Added integration tests
  177615. .IP \(bu 2
  177616. 110f74f Added unit tests reproducing issue
  177617. .UNINDENT
  177618. .IP \(bu 2
  177619. \fBISSUE\fP \fI\%#50558\fP: (\fI\%angeloudy\fP) \(aqtest=True\(aq does not work with artifactory.download (refs: \fI\%#50580\fP)
  177620. .IP \(bu 2
  177621. \fBISSUE\fP \fI\%#50155\fP: (\fI\%mikemartino\fP) artifactory.downloaded state is not respecting test=True (refs: \fI\%#50580\fP)
  177622. .IP \(bu 2
  177623. \fBPR\fP \fI\%#50580\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding test=True to artifactory.download.
  177624. @ \fI2018\-11\-20 16:37:14 UTC\fP
  177625. .INDENT 2.0
  177626. .IP \(bu 2
  177627. 735c9f4 Merge pull request \fI\%#50580\fP from garethgreenaway/50155_artificatory_download_state_test_true
  177628. .IP \(bu 2
  177629. 7dd57d0 Lint.
  177630. .IP \(bu 2
  177631. 3661ee0 Adding test=True to artifactory.download.
  177632. .UNINDENT
  177633. .IP \(bu 2
  177634. \fBISSUE\fP \fI\%#46292\fP: (\fI\%asymetrixs\fP) win_wua should have possibility to specify source file (refs: \fI\%#50397\fP)
  177635. .IP \(bu 2
  177636. \fBPR\fP \fI\%#50577\fP: (\fI\%garethgreenaway\fP) Back\-port PR \fI\%#50397\fP to 2018.3
  177637. @ \fI2018\-11\-19 21:28:42 UTC\fP
  177638. .INDENT 2.0
  177639. .IP \(bu 2
  177640. \fBPR\fP \fI\%#50397\fP: (\fI\%tlemarchand\fP) Add Win WUSA management, to install Windows Update files (.msu). (refs: \fI\%#50577\fP)
  177641. .IP \(bu 2
  177642. 015834d Merge pull request \fI\%#50577\fP from garethgreenaway/bp\-50397
  177643. .IP \(bu 2
  177644. dd2d872 Documentation
  177645. .IP \(bu 2
  177646. af6d21f Import unicode_literals from future and add versionadded tag
  177647. .IP \(bu 2
  177648. 09dc09d Disable powershell modules list Add list_kbs function
  177649. .IP \(bu 2
  177650. 05852d0 pchanges to changes named parameters
  177651. .IP \(bu 2
  177652. 16525e4 Add Win WUSA management, to install Windows Update files (.msu).
  177653. .UNINDENT
  177654. .IP \(bu 2
  177655. \fBPR\fP \fI\%#50570\fP: (\fI\%garethgreenaway\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177656. @ \fI2018\-11\-19 20:04:05 UTC\fP
  177657. .INDENT 2.0
  177658. .IP \(bu 2
  177659. 12e0d80 Merge pull request \fI\%#50570\fP from garethgreenaway/merge\-2018.3
  177660. .IP \(bu 2
  177661. 4c85119 merge\-forward 2017.7 to 2018.3
  177662. .IP \(bu 2
  177663. 02238a7 Merge pull request \fI\%#50520\fP from dwoz/issue_50459
  177664. .INDENT 2.0
  177665. .IP \(bu 2
  177666. 1aa2e34 Simplifie and portable homedir lookup
  177667. .IP \(bu 2
  177668. f14f747 Fix windows home dir lookup
  177669. .IP \(bu 2
  177670. d3620c3 Always set .gitconfig dir to user\(aqs home
  177671. .UNINDENT
  177672. .IP \(bu 2
  177673. edd9738 Merge pull request \fI\%#50532\fP from dubb\-b/2017.7
  177674. .INDENT 2.0
  177675. .IP \(bu 2
  177676. 009e52d Adding tag to ec2 cloud tests
  177677. .UNINDENT
  177678. .IP \(bu 2
  177679. b0446f5 Merge pull request \fI\%#50500\fP from terminalmage/2017.7\-docs
  177680. .INDENT 2.0
  177681. .IP \(bu 2
  177682. 870a364 Set docs jenkins job to treat warnings as errors
  177683. .IP \(bu 2
  177684. e03bdcd Update docs references for states with func_alias
  177685. .IP \(bu 2
  177686. 8a2c08f Disable custom sphinx automodule
  177687. .UNINDENT
  177688. .UNINDENT
  177689. .IP \(bu 2
  177690. \fBISSUE\fP \fI\%#50266\fP: (\fI\%4815162342lost\fP) grains.virtual show incorrect info (refs: \fI\%#50519\fP)
  177691. .IP \(bu 2
  177692. \fBPR\fP \fI\%#50519\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to virtual core grain
  177693. @ \fI2018\-11\-16 23:42:18 UTC\fP
  177694. .INDENT 2.0
  177695. .IP \(bu 2
  177696. 6fba83c Merge pull request \fI\%#50519\fP from garethgreenaway/50266_core_virtual_grain_fixes
  177697. .IP \(bu 2
  177698. dcae2f0 Merge branch \(aq2018.3\(aq into 50266_core_virtual_grain_fixes
  177699. .UNINDENT
  177700. .IP \(bu 2
  177701. \fBPR\fP \fI\%#50427\fP: (\fI\%sathieu\fP) Backports git_pillar tests improvements to 2018.3
  177702. @ \fI2018\-11\-16 16:37:29 UTC\fP
  177703. .INDENT 2.0
  177704. .IP \(bu 2
  177705. \fBPR\fP \fI\%#50425\fP: (\fI\%sathieu\fP) git_pillar: Add tests for mountpoint parameter (refs: \fI\%#50427\fP)
  177706. .IP \(bu 2
  177707. \fBPR\fP \fI\%#50407\fP: (\fI\%sathieu\fP) git_pillar: Add tests for root parameter (refs: \fI\%#50427\fP)
  177708. .IP \(bu 2
  177709. \fBPR\fP \fI\%#50378\fP: (\fI\%sathieu\fP) Don\(aqt fail on git_pillar tests when destructive tests are not enable (refs: \fI\%#50427\fP)
  177710. .IP \(bu 2
  177711. 84edd62 Merge pull request \fI\%#50427\fP from sathieu/bp\-git_pillar_tests
  177712. .IP \(bu 2
  177713. 12ea1cc git_pillar: Add tests for mountpoint parameter
  177714. .IP \(bu 2
  177715. fce467e git_pillar: Add tests for root parameter
  177716. .IP \(bu 2
  177717. ba150a5 Don\(aqt fail on git_pillar tests when destructive tests are not enable
  177718. .UNINDENT
  177719. .IP \(bu 2
  177720. \fBPR\fP \fI\%#50530\fP: (\fI\%terminalmage\fP) Enable proxy/ssh daemons when filename mapping causes those tests to be run
  177721. @ \fI2018\-11\-15 23:03:06 UTC\fP
  177722. .INDENT 2.0
  177723. .IP \(bu 2
  177724. 4651481 Merge pull request \fI\%#50530\fP from terminalmage/salt\-jenkins\-1209
  177725. .IP \(bu 2
  177726. fbee11d Enable proxy/ssh daemons when filename mapping causes those tests to be run
  177727. .IP \(bu 2
  177728. 4f30611 lint
  177729. .IP \(bu 2
  177730. 4f9eb95 Fixing a typo in the _virtual function, should be checking for existing grains in osdata not grains. Updating the detection to look for /sys/bus/xen/drivers/xenconsole instead of specifically looking for any files under /sys/bus/xen/drivers. Some systems that are not running as Xen PV hosts include files under that location, particular Oracle Linux.
  177731. .UNINDENT
  177732. .IP \(bu 2
  177733. \fBISSUE\fP \fI\%#50224\fP: (\fI\%mruepp\fP) Augeas changes state with setm not working (refs: \fI\%#50526\fP)
  177734. .IP \(bu 2
  177735. \fBPR\fP \fI\%#50526\fP: (\fI\%terminalmage\fP) Work around augeas\(aq lack of unicode support
  177736. @ \fI2018\-11\-15 17:33:26 UTC\fP
  177737. .INDENT 2.0
  177738. .IP \(bu 2
  177739. 6c07ba4 Merge pull request \fI\%#50526\fP from terminalmage/issue50224
  177740. .IP \(bu 2
  177741. ee246ed Work around augeas\(aq lack of unicode support
  177742. .UNINDENT
  177743. .IP \(bu 2
  177744. \fBPR\fP \fI\%#50503\fP: (\fI\%terminalmage\fP) Set jenkins docs job to treat any warnings as errors (2018.3 branch)
  177745. @ \fI2018\-11\-14 19:30:24 UTC\fP
  177746. .INDENT 2.0
  177747. .IP \(bu 2
  177748. d83da51d Merge pull request \fI\%#50503\fP from terminalmage/2018.3\-docs
  177749. .IP \(bu 2
  177750. a4fc108 Fix docs configuration for renamed logstash engine
  177751. .IP \(bu 2
  177752. 5b06464 Set docs jenkins job to treat warnings as errors
  177753. .IP \(bu 2
  177754. 9b6c669 Update docs references for states with func_alias
  177755. .IP \(bu 2
  177756. 62b5d40 Disable custom sphinx automodule
  177757. .UNINDENT
  177758. .IP \(bu 2
  177759. \fBISSUE\fP \fI\%#48343\fP: (\fI\%bornwitbugs\fP) CPU Beacon TypeError (refs: \fI\%#50514\fP)
  177760. .IP \(bu 2
  177761. \fBPR\fP \fI\%#50514\fP: (\fI\%bornwitbugs\fP) Load beacon fix
  177762. @ \fI2018\-11\-14 19:20:33 UTC\fP
  177763. .INDENT 2.0
  177764. .IP \(bu 2
  177765. fa2f4a5 Merge pull request \fI\%#50514\fP from bornwitbugs/load_beacon_fix
  177766. .IP \(bu 2
  177767. e59ced6 Merge branch \(aq2018.3\(aq of github.com:saltstack/salt into load_beacon_fix
  177768. .UNINDENT
  177769. .IP \(bu 2
  177770. \fBPR\fP \fI\%#50509\fP: (\fI\%Ch3LL\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177771. @ \fI2018\-11\-14 17:52:06 UTC\fP
  177772. .INDENT 2.0
  177773. .IP \(bu 2
  177774. a50377b Merge pull request \fI\%#50509\fP from Ch3LL/merge\-2018.3
  177775. .IP \(bu 2
  177776. 178dab3 Merge branch 2017.7 into 2018.3
  177777. .IP \(bu 2
  177778. c00fd43 Merge pull request \fI\%#50493\fP from rallytime/bp\-50362
  177779. .INDENT 2.0
  177780. .IP \(bu 2
  177781. 60559cf Remove flaky test
  177782. .IP \(bu 2
  177783. a696a8f Fix test_matcher on Windows
  177784. .UNINDENT
  177785. .IP \(bu 2
  177786. 3cac1d0 Merge pull request \fI\%#50494\fP from terminalmage/2017.7\-docs
  177787. .INDENT 2.0
  177788. .IP \(bu 2
  177789. d561b26 Late import to fix docs build errors
  177790. .UNINDENT
  177791. .IP \(bu 2
  177792. 0829944 Merge pull request \fI\%#50479\fP from Ch3LL/digital_ocean_location
  177793. .INDENT 2.0
  177794. .IP \(bu 2
  177795. 917781d Lint: Add blank line
  177796. .IP \(bu 2
  177797. 3583519 Update digital ocean location for cloud tests
  177798. .UNINDENT
  177799. .IP \(bu 2
  177800. accf681 Merge pull request \fI\%#50480\fP from terminalmage/docs
  177801. .INDENT 2.0
  177802. .IP \(bu 2
  177803. c34690e Don\(aqt import obsolete Directive class from Sphinx
  177804. .UNINDENT
  177805. .IP \(bu 2
  177806. 2e9b3d2 Merge pull request \fI\%#50478\fP from rallytime/update\-bootstrap\-docs
  177807. .INDENT 2.0
  177808. .IP \(bu 2
  177809. 66b078c Update the bootstrap script documentation to point to bootstrap repo
  177810. .UNINDENT
  177811. .UNINDENT
  177812. .IP \(bu 2
  177813. \fBPR\fP \fI\%#50502\fP: (\fI\%twangboy\fP) Add definition for RestrictRemoteSAM
  177814. @ \fI2018\-11\-14 14:30:38 UTC\fP
  177815. .INDENT 2.0
  177816. .IP \(bu 2
  177817. 55b4914 Merge pull request \fI\%#50502\fP from twangboy/lgpo_2018.3
  177818. .IP \(bu 2
  177819. fe92a3a Add definition for RestrictRemoteSAM
  177820. .UNINDENT
  177821. .IP \(bu 2
  177822. \fBISSUE\fP \fI\%#48734\fP: (\fI\%oddfellow\fP) salt\-run jobs.list_jobs has Target: unknown\-target (refs: \fI\%#50328\fP)
  177823. .IP \(bu 2
  177824. \fBISSUE\fP \fI\%#43453\fP: (\fI\%kunal\-bajpai\fP) Runner job \fIload\fP is never saved to job cache (refs: \fI\%#43454\fP)
  177825. .IP \(bu 2
  177826. \fBPR\fP \fI\%#50328\fP: (\fI\%rallytime\fP) Fix issue with salt\-run jobs.list_jobs where Target: unknown\-target
  177827. @ \fI2018\-11\-13 19:49:58 UTC\fP
  177828. .INDENT 2.0
  177829. .IP \(bu 2
  177830. \fBPR\fP \fI\%#43454\fP: (\fI\%kunal\-bajpai\fP) Fix save_load which is never called for returner jobs (refs: \fI\%#50328\fP)
  177831. .IP \(bu 2
  177832. c1dde7e Merge pull request \fI\%#50328\fP from rallytime/fix\-48734
  177833. .IP \(bu 2
  177834. 2c51cf9 Make target test job more specific to reduce test flakiness
  177835. .IP \(bu 2
  177836. caace3f Rewrite job cache target test to be more robust
  177837. .IP \(bu 2
  177838. b29fcfa New test must be py3 compatible...oops. :)
  177839. .IP \(bu 2
  177840. c684c29 Fix issue \fI\%#48734\fP
  177841. .IP \(bu 2
  177842. 6859e0e Add regression test for issue \fI\%#48734\fP
  177843. .UNINDENT
  177844. .IP \(bu 2
  177845. \fBPR\fP \fI\%#50499\fP: (\fI\%dwoz\fP) Fix 2018.3 build
  177846. @ \fI2018\-11\-13 18:46:54 UTC\fP
  177847. .INDENT 2.0
  177848. .IP \(bu 2
  177849. 351faeb Merge pull request \fI\%#50499\fP from dwoz/build_fix
  177850. .IP \(bu 2
  177851. 5754b4a Fix 2018.3 build
  177852. .UNINDENT
  177853. .IP \(bu 2
  177854. \fBPR\fP \fI\%#50496\fP: (\fI\%terminalmage\fP) Fix 2018.3 docs build warnings
  177855. @ \fI2018\-11\-13 17:21:09 UTC\fP
  177856. .INDENT 2.0
  177857. .IP \(bu 2
  177858. 6f4b23f Merge pull request \fI\%#50496\fP from terminalmage/2018.3\-docs
  177859. .IP \(bu 2
  177860. cb25641 Fix header underline length to avoid another sphinx warning
  177861. .IP \(bu 2
  177862. 9272f7b Fix more sphinx build errors
  177863. .IP \(bu 2
  177864. 18a8104 Late import to fix docs build errors
  177865. .IP \(bu 2
  177866. d457132 Fix sphinx build warnings in 2018.3 branch
  177867. .UNINDENT
  177868. .IP \(bu 2
  177869. \fBISSUE\fP \fI\%#50227\fP: (\fI\%sheagcraig\fP) mac_utils \fI_available_services\fP will fail with malformed launchd plists present (refs: \fI\%#50228\fP)
  177870. .IP \(bu 2
  177871. \fBPR\fP \fI\%#50492\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50228\fP and \fI\%#50443\fP to 2018.3
  177872. @ \fI2018\-11\-13 16:59:15 UTC\fP
  177873. .INDENT 2.0
  177874. .IP \(bu 2
  177875. \fBPR\fP \fI\%#50443\fP: (\fI\%weswhet\fP) fix when checking for service Label on macOS (refs: \fI\%#50492\fP)
  177876. .IP \(bu 2
  177877. \fBPR\fP \fI\%#50228\fP: (\fI\%sheagcraig\fP) Fix 50227 malformed plists (refs: \fI\%#50492\fP, \fI\%#50443\fP)
  177878. .IP \(bu 2
  177879. 6b272c1 Merge pull request \fI\%#50492\fP from rallytime/bp\-50228\-and\-50443
  177880. .IP \(bu 2
  177881. 7879a2d Fix logging format
  177882. .IP \(bu 2
  177883. f578392 Lint Fix: add mock_open import
  177884. .IP \(bu 2
  177885. e5b999b add try/except when checking for service Label
  177886. .IP \(bu 2
  177887. 3c36bdd Fix linting errors.
  177888. .IP \(bu 2
  177889. fab57de Write tests to handle invalid launchd plist XML.
  177890. .IP \(bu 2
  177891. bb429b0 Condense service result assertions, add a binary plist test.
  177892. .IP \(bu 2
  177893. a809fef Factor out another helper function, implement broken symlink test.
  177894. .IP \(bu 2
  177895. 216f7ef Update testing for mac_utils services.
  177896. .IP \(bu 2
  177897. 89d8267 Fix trailing\-slash bug in User LaunchAgent appending.
  177898. .IP \(bu 2
  177899. 0e23b6e Handle bad plists by ignoring them, with py2 and py3 specific approaches
  177900. .IP \(bu 2
  177901. fa44149 Avoid \fIAttributeError\fP when checking for exception types.
  177902. .IP \(bu 2
  177903. fd62b33 Add secondary exception handler for malformed plists.
  177904. .IP \(bu 2
  177905. ae6f49b Make test correctly generate a double exception.
  177906. .UNINDENT
  177907. .IP \(bu 2
  177908. \fBPR\fP \fI\%#50486\fP: (\fI\%twangboy\fP) Back port lgpo from Fluorine
  177909. @ \fI2018\-11\-13 09:40:17 UTC\fP
  177910. .INDENT 2.0
  177911. .IP \(bu 2
  177912. da980d9 Merge pull request \fI\%#50486\fP from twangboy/lgpo_2018.3
  177913. .IP \(bu 2
  177914. bbbc07b Back port lgpo from Fluorine
  177915. .UNINDENT
  177916. .IP \(bu 2
  177917. \fBISSUE\fP \fI\%#50218\fP: (\fI\%ata\-sql\fP) git.latest with unless command fails after upgrade to 2018.3.3 (refs: \fI\%#50456\fP)
  177918. .IP \(bu 2
  177919. \fBPR\fP \fI\%#50456\fP: (\fI\%terminalmage\fP) Two bugfixes
  177920. @ \fI2018\-11\-13 06:06:52 UTC\fP
  177921. .INDENT 2.0
  177922. .IP \(bu 2
  177923. 7dd3438 Merge pull request \fI\%#50456\fP from terminalmage/issue50218
  177924. .IP \(bu 2
  177925. 6143408 Add unit test for TimedProc regression
  177926. .IP \(bu 2
  177927. e234abd Add support for list of commands in git states\(aq onlyif/unless
  177928. .IP \(bu 2
  177929. cbf05c8 TimedProc: Don\(aqt assume args is a string
  177930. .IP \(bu 2
  177931. 87de250 Exit gracefully when mod_run_check raises exception
  177932. .UNINDENT
  177933. .IP \(bu 2
  177934. \fBPR\fP \fI\%#50455\fP: (\fI\%dubb\-b\fP) Adding the released version as the bootstrap minion.
  177935. @ \fI2018\-11\-12 22:52:53 UTC\fP
  177936. .INDENT 2.0
  177937. .IP \(bu 2
  177938. d8514e6 Merge pull request \fI\%#50455\fP from dubb\-b/2018.3
  177939. .IP \(bu 2
  177940. fb61482 adding git
  177941. .IP \(bu 2
  177942. 181b8a4 removing stable
  177943. .IP \(bu 2
  177944. fc93ad6 Adding the released version as the bootstrap minion.
  177945. .UNINDENT
  177946. .IP \(bu 2
  177947. \fBPR\fP \fI\%#50483\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50272\fP to 2018.3
  177948. @ \fI2018\-11\-12 22:45:05 UTC\fP
  177949. .INDENT 2.0
  177950. .IP \(bu 2
  177951. \fBPR\fP \fI\%#50272\fP: (\fI\%jyurdal\fP) Fix out of order docker Env comparison (refs: \fI\%#50483\fP)
  177952. .IP \(bu 2
  177953. cfb3351 Merge pull request \fI\%#50483\fP from rallytime/bp\-50272
  177954. .IP \(bu 2
  177955. 0f02da7 Remove unnecessary u prefix from string literals
  177956. .IP \(bu 2
  177957. fc26ae8 Add unit test for comparing containers with the same env vars
  177958. .IP \(bu 2
  177959. cf7cb4b extra blank line after function definition(pylint)
  177960. .IP \(bu 2
  177961. 1de9ce3 Compare sorted docker environment
  177962. .UNINDENT
  177963. .IP \(bu 2
  177964. \fBPR\fP \fI\%#50481\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  177965. @ \fI2018\-11\-12 22:44:15 UTC\fP
  177966. .INDENT 2.0
  177967. .IP \(bu 2
  177968. 360ae6a Merge pull request \fI\%#50481\fP from rallytime/merge\-2018.3
  177969. .IP \(bu 2
  177970. 1517bb3 Update old utils paths to use new paths
  177971. .IP \(bu 2
  177972. d8e7c47 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  177973. .IP \(bu 2
  177974. e5f97cd Merge pull request \fI\%#50467\fP from dwoz/test_kitchen_up
  177975. .INDENT 2.0
  177976. .IP \(bu 2
  177977. 8c5e93e Use patched version of test\-kitchen until next release
  177978. .UNINDENT
  177979. .IP \(bu 2
  177980. b16ff9c Merge pull request \fI\%#50469\fP from dwoz/minion_timeout_test
  177981. .INDENT 2.0
  177982. .IP \(bu 2
  177983. 57f702d Fix linter warning
  177984. .IP \(bu 2
  177985. 686153a Fix up integration.minion.test_timeout
  177986. .UNINDENT
  177987. .IP \(bu 2
  177988. 45b438e Merge pull request \fI\%#50470\fP from dwoz/set_time_flaky
  177989. .INDENT 2.0
  177990. .IP \(bu 2
  177991. 794ba17 Reset date and time after changing
  177992. .UNINDENT
  177993. .IP \(bu 2
  177994. c85561e Merge pull request \fI\%#50442\fP from rallytime/replace\-docbanner
  177995. .INDENT 2.0
  177996. .IP \(bu 2
  177997. 193325d Update docbanner hyperlink
  177998. .UNINDENT
  177999. .IP \(bu 2
  178000. 7200568 Merge pull request \fI\%#50439\fP from rallytime/bootstrap\-contributing\-docs
  178001. .INDENT 2.0
  178002. .IP \(bu 2
  178003. d2158aa Add bootstrap section to contributing docs
  178004. .UNINDENT
  178005. .IP \(bu 2
  178006. cca7a36 Merge pull request \fI\%#50441\fP from rallytime/replace\-docbanner
  178007. .INDENT 2.0
  178008. .IP \(bu 2
  178009. 2af92bd Update SaltConf doc banner
  178010. .UNINDENT
  178011. .IP \(bu 2
  178012. 1e72d20 Merge pull request \fI\%#50414\fP from flassman/backmerge\-for\-typeerror\-windows\-python3
  178013. .INDENT 2.0
  178014. .IP \(bu 2
  178015. 20fff15 use exc.winerror not exc[0] to avoid python3 TypeError
  178016. .UNINDENT
  178017. .IP \(bu 2
  178018. 93095cb Merge pull request \fI\%#50415\fP from flassman/pass\-cwd\-to\-runas_system
  178019. .INDENT 2.0
  178020. .IP \(bu 2
  178021. 0113137 cwd needs to be passed from runas() to runas_system()
  178022. .UNINDENT
  178023. .UNINDENT
  178024. .IP \(bu 2
  178025. \fBISSUE\fP \fI\%#50461\fP: (\fI\%absolutejam\fP) elementaryOS \(aqpkg\(aq __virtual__ returned false (refs: \fI\%#50468\fP)
  178026. .IP \(bu 2
  178027. \fBPR\fP \fI\%#50468\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding elementary override to grains/core.py
  178028. @ \fI2018\-11\-12 16:41:57 UTC\fP
  178029. .INDENT 2.0
  178030. .IP \(bu 2
  178031. 3aaad17 Merge pull request \fI\%#50468\fP from garethgreenaway/50461_fix_elementary_os_family_grain
  178032. .IP \(bu 2
  178033. 77e8dcc On later versions of elementary, the os_family is being populated as elementary. In order for the aptpkg module to function, we need to override is to be Debian.
  178034. .UNINDENT
  178035. .IP \(bu 2
  178036. \fBISSUE\fP \fI\%#50311\fP: (\fI\%marek\-obuchowicz\fP) pkg.installed state fails even though it suceeded (refs: \fI\%#50590\fP, \fI\%#50333\fP)
  178037. .IP \(bu 2
  178038. \fBISSUE\fP \fI\%#46689\fP: (\fI\%mxork\fP) pkg.installed: hold: True not applied to a package which is already installed. (refs: \fI\%#48426\fP)
  178039. .IP \(bu 2
  178040. \fBPR\fP \fI\%#50333\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to pkg.installed for sources and hold: True (refs: \fI\%#50590\fP)
  178041. @ \fI2018\-11\-08 18:02:33 UTC\fP
  178042. .INDENT 2.0
  178043. .IP \(bu 2
  178044. \fBPR\fP \fI\%#48426\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to states/pkg.py (refs: \fI\%#50333\fP)
  178045. .IP \(bu 2
  178046. d9179fb Merge pull request \fI\%#50333\fP from garethgreenaway/50311_pkg_installed_fails_sources_hold
  178047. .IP \(bu 2
  178048. 7bc9b3d Merge branch \(aq2018.3\(aq into 50311_pkg_installed_fails_sources_hold
  178049. .IP \(bu 2
  178050. 6e96728 pkg.installed currently fails when sources is used along with hold: True. This was due to a change in \fI\%#48426\fP that swapped out sending the pkgs variable for the desired variable instead. This caused problems with pkg.hold because desired and sources are always populated, and pkg.hold can only include one or the other. This change just includes desired in the call to pkg.hold since desired has the same value for sources.
  178051. .UNINDENT
  178052. .IP \(bu 2
  178053. \fBPR\fP \fI\%#50434\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178054. @ \fI2018\-11\-08 17:40:39 UTC\fP
  178055. .INDENT 2.0
  178056. .IP \(bu 2
  178057. 193c80a Merge pull request \fI\%#50434\fP from rallytime/merge\-2018.3
  178058. .IP \(bu 2
  178059. 83dfbb2 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178060. .INDENT 2.0
  178061. .IP \(bu 2
  178062. ef4509e Merge pull request \fI\%#50370\fP from dwoz/pubd_msg_logs
  178063. .INDENT 2.0
  178064. .IP \(bu 2
  178065. 58ced12 log jid to payload size
  178066. .IP \(bu 2
  178067. 3c537b5 Log message flow to publish daemon
  178068. .UNINDENT
  178069. .UNINDENT
  178070. .UNINDENT
  178071. .IP \(bu 2
  178072. \fBPR\fP \fI\%#50417\fP: (\fI\%meaksh\fP) Get the right target when using "__env__" on git ext_pillar to avoid merging problems
  178073. @ \fI2018\-11\-08 17:07:03 UTC\fP
  178074. .INDENT 2.0
  178075. .IP \(bu 2
  178076. 73ce80f Merge pull request \fI\%#50417\fP from meaksh/2018.3\-fix\-git_pillar\-__env__\-solving\-for\-merging
  178077. .IP \(bu 2
  178078. 71af32d Remove unicode references
  178079. .IP \(bu 2
  178080. b7af5e5 Test git ext_pillar across multiple repos using __env__
  178081. .IP \(bu 2
  178082. 59894e2 Resolve target branch when using __env__
  178083. .UNINDENT
  178084. .IP \(bu 2
  178085. \fBISSUE\fP \fI\%#50292\fP: (\fI\%dstoliker\fP) sysctl in test=True mode results in [ERROR ] Could not open sysctl file (refs: \fI\%#50423\fP)
  178086. .IP \(bu 2
  178087. \fBPR\fP \fI\%#50423\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to sysctl modules and state
  178088. @ \fI2018\-11\-08 14:13:00 UTC\fP
  178089. .INDENT 2.0
  178090. .IP \(bu 2
  178091. e9464c9 Merge pull request \fI\%#50423\fP from garethgreenaway/50292_no_error_log_test_true
  178092. .IP \(bu 2
  178093. 95a7f12 Adding file check and empty list return to freebsd_sysctl.py
  178094. .IP \(bu 2
  178095. 469c090 Adding a check to see if the config file exists, if not then return an empty list so we get the would be changes. Adding a test for this functionality.
  178096. .UNINDENT
  178097. .IP \(bu 2
  178098. \fBISSUE\fP \fI\%#50420\fP: (\fI\%weswhet\fP) mac_system virtual function fails to load on 2018.3.3 (refs: \fI\%#50421\fP)
  178099. .IP \(bu 2
  178100. \fBPR\fP \fI\%#50421\fP: (\fI\%weswhet\fP) fixing an issue on mac_system where the virtual function wouldnt load
  178101. @ \fI2018\-11\-07 21:57:44 UTC\fP
  178102. .INDENT 2.0
  178103. .IP \(bu 2
  178104. fccf875 Merge pull request \fI\%#50421\fP from weswhet/fix\-mac_system\-loader
  178105. .IP \(bu 2
  178106. 042445d fixing an issue on mac_system where the virtual function wouldnt load
  178107. .UNINDENT
  178108. .IP \(bu 2
  178109. \fBPR\fP \fI\%#50409\fP: (\fI\%casselt\fP) Fix test mode for mount state if device_name_regex is used.
  178110. @ \fI2018\-11\-07 16:04:45 UTC\fP
  178111. .INDENT 2.0
  178112. .IP \(bu 2
  178113. d2fc910 Merge pull request \fI\%#50409\fP from casselt/mount\-device_name_regex\-test\-mode\-fix
  178114. .IP \(bu 2
  178115. 56d5a32 Fix test mode for mount state if device_name_regex is used.
  178116. .UNINDENT
  178117. .IP \(bu 2
  178118. \fBPR\fP \fI\%#50383\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178119. @ \fI2018\-11\-06 15:51:53 UTC\fP
  178120. .INDENT 2.0
  178121. .IP \(bu 2
  178122. c2fda9d Merge pull request \fI\%#50383\fP from rallytime/merge\-2018.3
  178123. .IP \(bu 2
  178124. e993692 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178125. .INDENT 2.0
  178126. .IP \(bu 2
  178127. cd7c95f Merge pull request \fI\%#50128\fP from mgomersbach/fix\-py3\-reload\-compat
  178128. .INDENT 2.0
  178129. .IP \(bu 2
  178130. e453e82 Satisfy pylint, use naming instead of W or E classification
  178131. .IP \(bu 2
  178132. d20581c Merge branch \(aqfix\-py3\-reload\-compat\(aq of github.com:mgomersbach/salt into fix\-py3\-reload\-compat
  178133. .INDENT 2.0
  178134. .IP \(bu 2
  178135. 48c6a4f Merge branch \(aq2017.7\(aq into fix\-py3\-reload\-compat
  178136. .UNINDENT
  178137. .IP \(bu 2
  178138. 5cd9741 Satisfy pylint
  178139. .IP \(bu 2
  178140. a2838db Satisfy pylint checks
  178141. .IP \(bu 2
  178142. 05c598c Fix import error by utilizing six and strict version spec
  178143. .IP \(bu 2
  178144. 95174e6 Merge branch \(aq2017.7\(aq into fix\-py3\-reload\-compat
  178145. .IP \(bu 2
  178146. ab8b5b4 Update workaround to root of file
  178147. .IP \(bu 2
  178148. 37ab1f8 Update workaround to root of file
  178149. .IP \(bu 2
  178150. 253ab11 Workaround for py2 builtin, =<3.3 imp and >=3.4 libimport quirks, solves \fI\%#50127\fP
  178151. .UNINDENT
  178152. .IP \(bu 2
  178153. aa6b149 Merge pull request \fI\%#50354\fP from rallytime/version_num_docs
  178154. .INDENT 2.0
  178155. .IP \(bu 2
  178156. 0621f7d Add a few more feature release codenames to the version_numbers doc
  178157. .UNINDENT
  178158. .IP \(bu 2
  178159. 6472100 Merge pull request \fI\%#50359\fP from dwoz/clitest
  178160. .INDENT 2.0
  178161. .IP \(bu 2
  178162. 18b5d43 Increase cli batch test timeout for increased reliablity
  178163. .UNINDENT
  178164. .IP \(bu 2
  178165. 99c8f35 Merge pull request \fI\%#50345\fP from dwoz/pub_d_logging
  178166. .INDENT 2.0
  178167. .IP \(bu 2
  178168. fd58523 Fix linter warnings
  178169. .IP \(bu 2
  178170. 5e1db3c Fix ZMQ PubServer daemon logging works on winndows
  178171. .IP \(bu 2
  178172. 8899832 Configure logging for ZMQ PubServer daemon
  178173. .UNINDENT
  178174. .IP \(bu 2
  178175. 44f7af4 Merge pull request \fI\%#50350\fP from dubb\-b/2017.7
  178176. .INDENT 2.0
  178177. .IP \(bu 2
  178178. 346a831 Updating the AMI\(aqs and sizes for the test run.
  178179. .UNINDENT
  178180. .IP \(bu 2
  178181. b947a18 Merge pull request \fI\%#50274\fP from rallytime/bp\-41472
  178182. .INDENT 2.0
  178183. .IP \(bu 2
  178184. 0a1e607 When the minion key is denied by the master then exit status 77 (permission denied)
  178185. .UNINDENT
  178186. .IP \(bu 2
  178187. 4725acd Merge pull request \fI\%#50195\fP from damon\-atkins/jenkins_pylint
  178188. .INDENT 2.0
  178189. .IP \(bu 2
  178190. eb13407 capture some extra info
  178191. .UNINDENT
  178192. .IP \(bu 2
  178193. ab8e845 Merge pull request \fI\%#50329\fP from twangboy/fix_cloud_winrm
  178194. .INDENT 2.0
  178195. .IP \(bu 2
  178196. cf5fb04 Check WinRM port before initiating connection
  178197. .UNINDENT
  178198. .IP \(bu 2
  178199. e535b38 Merge pull request \fI\%#50252\fP from dwoz/backport_fs_fix
  178200. .INDENT 2.0
  178201. .IP \(bu 2
  178202. 59ac284 Do not allow age to be a negative number
  178203. .UNINDENT
  178204. .UNINDENT
  178205. .UNINDENT
  178206. .IP \(bu 2
  178207. \fBISSUE\fP \fI\%#49523\fP: (\fI\%MTecknology\fP) [salt\-cloud] Non\-ascii chars cause an exception in salt\-cloud (refs: \fI\%#50146\fP, \fI\%#50236\fP)
  178208. .INDENT 2.0
  178209. .IP \(bu 2
  178210. \fBPR\fP \fI\%saltstack/salt#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50231\fP)
  178211. .UNINDENT
  178212. .IP \(bu 2
  178213. \fBPR\fP \fI\%#50236\fP: (\fI\%rallytime\fP) Fix salt\-cloud UnicodeEncodeError when writing to stdout
  178214. @ \fI2018\-11\-05 22:04:18 UTC\fP
  178215. .INDENT 2.0
  178216. .IP \(bu 2
  178217. \fBPR\fP \fI\%#50235\fP: (\fI\%rallytime\fP) Don\(aqt encode the return values in utils/vt.py (refs: \fI\%#50236\fP)
  178218. .IP \(bu 2
  178219. \fBPR\fP \fI\%#50231\fP: (\fI\%rallytime\fP) Revert "Back\-port \fI\%#50146\fP to 2018.3" (refs: \fI\%#50236\fP)
  178220. .IP \(bu 2
  178221. \fBPR\fP \fI\%#50230\fP: (\fI\%rallytime\fP) Add various ssh tests to the filemap for salt/utils/vt.py changes (refs: \fI\%#50291\fP, \fI\%#50235\fP)
  178222. .IP \(bu 2
  178223. \fBPR\fP \fI\%#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50236\fP)
  178224. .IP \(bu 2
  178225. \fBPR\fP \fI\%#50146\fP: (\fI\%MTecknology\fP) Improve handling of non\-ascii characters in terminal output. (Fixes: \fI\%#49523\fP) (refs: \fI\%#50235\fP, #\(gasaltstack/salt\(ga#50174\(ga_\(ga_, \fI\%#50174\fP, \fI\%#50231\fP, \fI\%#50236\fP)
  178226. .IP \(bu 2
  178227. 46c7dc2d Merge pull request \fI\%#50236\fP from rallytime/fix\-cloud\-vt
  178228. .IP \(bu 2
  178229. c1984c9 Fix salt\-cloud UnicodeEncodeError when writing to stdout
  178230. .UNINDENT
  178231. .IP \(bu 2
  178232. \fBISSUE\fP \fI\%#50062\fP: (\fI\%whytewolf\fP) max_event_size does not always trim large events. (refs: \fI\%#50382\fP)
  178233. .IP \(bu 2
  178234. \fBPR\fP \fI\%#50382\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to utils/dicttrim.py to honor max_event_size with nested dictionaries
  178235. @ \fI2018\-11\-05 20:04:06 UTC\fP
  178236. .INDENT 2.0
  178237. .IP \(bu 2
  178238. ed4fa87 Merge pull request \fI\%#50382\fP from garethgreenaway/50062_max_event_size_does_not_always_trim_large_events
  178239. .IP \(bu 2
  178240. 039f3d1 Increase limit for trimming.
  178241. .IP \(bu 2
  178242. 7f77bfe Adding test for utils/dicttrim.py
  178243. .IP \(bu 2
  178244. 9b55ac7 Adding _trim_dict_in_dict to utils/dictrim.py to be called from trim_dict when data contains a nested dictionary. This will ensure that values will still be trimmed correctly.
  178245. .UNINDENT
  178246. .IP \(bu 2
  178247. \fBPR\fP \fI\%#50387\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50339\fP to 2018.3
  178248. @ \fI2018\-11\-05 20:03:15 UTC\fP
  178249. .INDENT 2.0
  178250. .IP \(bu 2
  178251. \fBPR\fP \fI\%#50339\fP: (\fI\%bartlaarhoven\fP) The driver requires dependency, not the other way around. (refs: \fI\%#50387\fP)
  178252. .IP \(bu 2
  178253. 493d653 Merge pull request \fI\%#50387\fP from rallytime/bp\-50339
  178254. .IP \(bu 2
  178255. a3f264d Lint: Add extra blank line
  178256. .IP \(bu 2
  178257. bd18412 The driver requires dependency, not the other way around.
  178258. .UNINDENT
  178259. .IP \(bu 2
  178260. \fBISSUE\fP \fI\%#41342\fP: (\fI\%githubcdr\fP) beacons.state does not save as list (refs: \fI\%#50347\fP)
  178261. .IP \(bu 2
  178262. \fBPR\fP \fI\%#50347\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to beacon state module
  178263. @ \fI2018\-11\-05 14:19:41 UTC\fP
  178264. .INDENT 2.0
  178265. .IP \(bu 2
  178266. 3022b7d Merge pull request \fI\%#50347\fP from garethgreenaway/41342_beacon_state_module_fixes
  178267. .IP \(bu 2
  178268. 8885d1f Merge branch \(aq2018.3\(aq into 41342_beacon_state_module_fixes
  178269. .IP \(bu 2
  178270. c2354a9 Fixing beacon state test. Adding a reset function to beacon module to clear out beacon configuration. Useful for tests runs to ensure bits are left over between runs.
  178271. .IP \(bu 2
  178272. 2390f47 Adding SaltReturnAssertsMixin back in
  178273. .IP \(bu 2
  178274. 677d090 Remove zookeeper reference.
  178275. .IP \(bu 2
  178276. f3dee43 Updating the beacon state module to ensure that the format of the beacon data that is being sent along to the beacon execution module is in the right format.
  178277. .UNINDENT
  178278. .IP \(bu 2
  178279. \fBISSUE\fP \fI\%#41583\fP: (\fI\%seanjnkns\fP) mount.swap for swap file test=True results wrong (refs: \fI\%#50358\fP)
  178280. .IP \(bu 2
  178281. \fBPR\fP \fI\%#50358\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to function mount.swap in mount state
  178282. @ \fI2018\-11\-05 14:16:50 UTC\fP
  178283. .INDENT 2.0
  178284. .IP \(bu 2
  178285. 929525a Merge pull request \fI\%#50358\fP from garethgreenaway/41583_mount_swap_test_true_wrong_results
  178286. .IP \(bu 2
  178287. b8ded8b Updating the swap function in the mount.swap function also check the device name when checking the fstab data. Updating tests to reflect new behavior.
  178288. .INDENT 2.0
  178289. .INDENT 3.5
  178290. .INDENT 0.0
  178291. .IP \(bu 2
  178292. d07c84d reordering ret dictionary in load test to ascending order
  178293. .IP \(bu 2
  178294. f704128 fixing type in load beacon module and adding option validators to config check function along with mock default values in test, fixes \fI\%#48343\fP
  178295. .IP \(bu 2
  178296. 4114a4f fixing type in load beacon module and adding option validators to config check function along with mock default values in test
  178297. .UNINDENT
  178298. .UNINDENT
  178299. .UNINDENT
  178300. .UNINDENT
  178301. .IP \(bu 2
  178302. \fBISSUE\fP \fI\%#49225\fP: (\fI\%onnodb\fP) [win_lgpo] lgpo_set always reports failure; Registry.pol corruption (refs: \fI\%#50006\fP)
  178303. .IP \(bu 2
  178304. \fBISSUE\fP \fI\%#48782\fP: (\fI\%mike2523\fP) [win_lgpo] Causes corrupt Registry.pol file (refs: \fI\%#50006\fP)
  178305. .IP \(bu 2
  178306. \fBPR\fP \fI\%#50006\fP: (\fI\%lomeroe\fP) Correct more issues in lgpo
  178307. @ \fI2018\-11\-02 16:32:29 UTC\fP
  178308. .INDENT 2.0
  178309. .IP \(bu 2
  178310. 3ffa392 Merge pull request \fI\%#50006\fP from lomeroe/issue48782_2018.3
  178311. .IP \(bu 2
  178312. dc58252 update to use a single line if statement when dealing with prepended text
  178313. .IP \(bu 2
  178314. 0e011ad add runTest method to class for PY2
  178315. .IP \(bu 2
  178316. 377ec09 add a test for \fI\%#47784\fP
  178317. .IP \(bu 2
  178318. 0a14505 change backslashes in comment string to fix lint error
  178319. .IP \(bu 2
  178320. 02181d3 add fix/test for \fI\%#50079\fP
  178321. .IP \(bu 2
  178322. 05f2951 more lint fixes
  178323. .IP \(bu 2
  178324. 94b3335 lint fixes in test
  178325. .IP \(bu 2
  178326. 2a79626 update test to actually work
  178327. .IP \(bu 2
  178328. 42840ec add missing comma in function call
  178329. .IP \(bu 2
  178330. c283f50 Log a warning message instead of an exception when a SID cannot be converted to a username (for user rights assignments)
  178331. .IP \(bu 2
  178332. 271bd70 capture and print exception information
  178333. .IP \(bu 2
  178334. bc94b8e update method for creating size field of **delvals items for py3 compatibility
  178335. .IP \(bu 2
  178336. d9fe28a fix clobbering of admx_search_results which was keeping some policies from being properly detected
  178337. .UNINDENT
  178338. .IP \(bu 2
  178339. \fBPR\fP \fI\%#50340\fP: (\fI\%garethgreenaway\fP) [2018.3] Backporting \fI\%#48087\fP to 2018.3
  178340. @ \fI2018\-11\-01 18:15:37 UTC\fP
  178341. .INDENT 2.0
  178342. .IP \(bu 2
  178343. \fBPR\fP \fI\%#48087\fP: (\fI\%mat813\fP) Fix patching sysctl.conf on FreeBSD. (refs: \fI\%#50340\fP)
  178344. .IP \(bu 2
  178345. 12de4b9 Merge pull request \fI\%#50340\fP from garethgreenaway/backport_48087_to_2018_3
  178346. .IP \(bu 2
  178347. 56c87ff Backporting \fI\%#48087\fP to 2018.3
  178348. .UNINDENT
  178349. .IP \(bu 2
  178350. \fBPR\fP \fI\%#50275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49752\fP to 2018.3
  178351. @ \fI2018\-11\-01 16:50:17 UTC\fP
  178352. .INDENT 2.0
  178353. .IP \(bu 2
  178354. \fBPR\fP \fI\%#49752\fP: (\fI\%jodok\fP) add support for clonenum parameter (refs: \fI\%#50275\fP)
  178355. .IP \(bu 2
  178356. 5e46434 Merge pull request \fI\%#50275\fP from rallytime/bp\-49752
  178357. .IP \(bu 2
  178358. e463d99 Merge branch \(aq2018.3\(aq into bp\-49752
  178359. .IP \(bu 2
  178360. 1e10c6e add support for clonenum parameter
  178361. .UNINDENT
  178362. .IP \(bu 2
  178363. \fBISSUE\fP \fI\%#47425\fP: (\fI\%raddessi\fP) states/netyang.managed ignores models when passed as a kwarg (refs: \fI\%#50301\fP)
  178364. .IP \(bu 2
  178365. \fBPR\fP \fI\%#50316\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50301\fP to 2018.3
  178366. @ \fI2018\-11\-01 16:32:04 UTC\fP
  178367. .INDENT 2.0
  178368. .IP \(bu 2
  178369. \fBPR\fP \fI\%#50301\fP: (\fI\%tonybaloney\fP) Fixes issues raised in \fI\%#47425\fP for states.netyang (refs: \fI\%#50316\fP)
  178370. .IP \(bu 2
  178371. 51e333a Merge pull request \fI\%#50316\fP from rallytime/bp\-50301
  178372. .IP \(bu 2
  178373. 367b689 Merge pull request \fI\%#32\fP from tonybaloney/bp50301
  178374. .INDENT 2.0
  178375. .IP \(bu 2
  178376. 529687a update test assertions
  178377. .UNINDENT
  178378. .IP \(bu 2
  178379. ba526ad remove unused import
  178380. .IP \(bu 2
  178381. 220e57f create 2 simple unit tests for the netyang state module and fix issue in \fI\%#47425\fP
  178382. .IP \(bu 2
  178383. 20bf306 reproduce bug in 47425
  178384. .UNINDENT
  178385. .IP \(bu 2
  178386. \fBPR\fP \fI\%#50290\fP: (\fI\%twangboy\fP) Fix \fItest_state\fP for Windows
  178387. @ \fI2018\-10\-31 19:28:34 UTC\fP
  178388. .INDENT 2.0
  178389. .IP \(bu 2
  178390. af1075b Merge pull request \fI\%#50290\fP from twangboy/fix_test_state
  178391. .IP \(bu 2
  178392. 69c02fc Fix some lint and some typos
  178393. .IP \(bu 2
  178394. d184013 Fix typo
  178395. .IP \(bu 2
  178396. 92b5ea0 Create salt util that copies file security info
  178397. .UNINDENT
  178398. .IP \(bu 2
  178399. \fBISSUE\fP \fI\%#50050\fP: (\fI\%terminalmage\fP) Backport runtests.py\(aqs \-\-from\-filenames functionality to 2018.3 branch (refs: \fI\%#50308\fP, \fI\%#50291\fP)
  178400. .IP \(bu 2
  178401. \fBPR\fP \fI\%#50291\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50230\fP to 2018.3
  178402. @ \fI2018\-10\-31 19:22:25 UTC\fP
  178403. .INDENT 2.0
  178404. .IP \(bu 2
  178405. \fBPR\fP \fI\%#50230\fP: (\fI\%rallytime\fP) Add various ssh tests to the filemap for salt/utils/vt.py changes (refs: \fI\%#50291\fP, \fI\%#50235\fP)
  178406. .IP \(bu 2
  178407. 045d81c Merge pull request \fI\%#50291\fP from rallytime/bp\-50230
  178408. .IP \(bu 2
  178409. 1aae681 Merge branch \(aq2018.3\(aq into bp\-50230
  178410. .IP \(bu 2
  178411. 1ef712a Add various ssh tests to the filemap for salt/utils/vt.py changes
  178412. .UNINDENT
  178413. .IP \(bu 2
  178414. \fBPR\fP \fI\%#50315\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  178415. @ \fI2018\-10\-31 14:16:34 UTC\fP
  178416. .INDENT 2.0
  178417. .IP \(bu 2
  178418. 00437aa Merge pull request \fI\%#50315\fP from rallytime/merge\-2018.3
  178419. .IP \(bu 2
  178420. 422465e Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  178421. .IP \(bu 2
  178422. 4d9e2a0 Merge pull request \fI\%#50088\fP from vulnbe/fix\-incorrect\-id\-handling\-2018\-3\-3
  178423. .IP \(bu 2
  178424. 619f2f2 Fix incorrect id handling in file state
  178425. .UNINDENT
  178426. .IP \(bu 2
  178427. \fBPR\fP \fI\%#50309\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178428. @ \fI2018\-10\-30 16:07:25 UTC\fP
  178429. .INDENT 2.0
  178430. .IP \(bu 2
  178431. 84ee7a3 Merge pull request \fI\%#50309\fP from rallytime/merge\-2018.3
  178432. .IP \(bu 2
  178433. 381a59d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178434. .IP \(bu 2
  178435. 11fa33e Merge pull request \fI\%#50295\fP from dubb\-b/remove\-cloud\-change
  178436. .INDENT 2.0
  178437. .IP \(bu 2
  178438. 80982ad Removing an un needed change and maybe fixing the lint error
  178439. .UNINDENT
  178440. .IP \(bu 2
  178441. e00c507 Merge pull request \fI\%#50287\fP from whytewolf/boto_vpc
  178442. .INDENT 2.0
  178443. .IP \(bu 2
  178444. 5a39644 minor correction to boto_vpc.route_table_present example, subnet_names was on wrong indent level
  178445. .UNINDENT
  178446. .IP \(bu 2
  178447. 37ae06c Merge pull request \fI\%#50280\fP from gtmanfred/2017.7
  178448. .INDENT 2.0
  178449. .IP \(bu 2
  178450. 5808074 fix InstallRequirement.from_line for pip 18.1
  178451. .UNINDENT
  178452. .UNINDENT
  178453. .IP \(bu 2
  178454. \fBISSUE\fP \fI\%#50050\fP: (\fI\%terminalmage\fP) Backport runtests.py\(aqs \-\-from\-filenames functionality to 2018.3 branch (refs: \fI\%#50308\fP, \fI\%#50291\fP)
  178455. .IP \(bu 2
  178456. \fBPR\fP \fI\%#50308\fP: (\fI\%rallytime\fP) Fix matcher grain file
  178457. @ \fI2018\-10\-30 15:27:47 UTC\fP
  178458. .INDENT 2.0
  178459. .IP \(bu 2
  178460. \fBPR\fP \fI\%#50182\fP: (\fI\%terminalmage\fP) Backport runtests.py modifications from develop to 2018.3 (refs: \fI\%#50308\fP)
  178461. .IP \(bu 2
  178462. b805bab Merge pull request \fI\%#50308\fP from rallytime/test\-fixes
  178463. .IP \(bu 2
  178464. f238522 Fix matcher grain file
  178465. .UNINDENT
  178466. .IP \(bu 2
  178467. \fBPR\fP \fI\%#50270\fP: (\fI\%terrible\-broom\fP) apt: speedup installing packages with \(aq>=\(aq or \(aq<=\(aq and reduced memory…
  178468. @ \fI2018\-10\-30 13:24:36 UTC\fP
  178469. .INDENT 2.0
  178470. .IP \(bu 2
  178471. 57fe6cd Merge pull request \fI\%#50270\fP from terrible\-broom/feature/apt\-cache\-show\-instead\-of\-dump
  178472. .IP \(bu 2
  178473. 6c1b05a Lint: add extra blank line
  178474. .IP \(bu 2
  178475. a4df706 fix review notes
  178476. .IP \(bu 2
  178477. d059edd apt: speedup installing packages with \(aq>=\(aq or \(aq<=\(aq and reduced memory consumption
  178478. .UNINDENT
  178479. .IP \(bu 2
  178480. \fBPR\fP \fI\%#50293\fP: (\fI\%gtmanfred\fP) update jenkins version for 2018.3
  178481. @ \fI2018\-10\-29 23:39:34 UTC\fP
  178482. .INDENT 2.0
  178483. .IP \(bu 2
  178484. 6a65402 Merge pull request \fI\%#50293\fP from saltstack/jenkins
  178485. .IP \(bu 2
  178486. fe6fbc4 update jenkins version for 2018.3
  178487. .IP \(bu 2
  178488. \fBPR\fP \fI\%saltstack/salt\-jenkins#1182\fP: (\fI\%gtmanfred\fP) clean up salt.utils for using 2018.3.3 (refs: \fI\%#50289\fP)
  178489. .UNINDENT
  178490. .IP \(bu 2
  178491. \fBPR\fP \fI\%#50289\fP: (\fI\%gtmanfred\fP) ignore empty line in localectl status output
  178492. @ \fI2018\-10\-29 21:39:07 UTC\fP
  178493. .INDENT 2.0
  178494. .IP \(bu 2
  178495. 935f181 Merge pull request \fI\%#50289\fP from gtmanfred/2018.3
  178496. .IP \(bu 2
  178497. fb43061 fix test
  178498. .IP \(bu 2
  178499. 5eb0e37 add extra space to localemod test
  178500. .IP \(bu 2
  178501. e8dc8ba if line in output of localectl is empty, ignore it
  178502. .UNINDENT
  178503. .IP \(bu 2
  178504. \fBPR\fP \fI\%#50276\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178505. @ \fI2018\-10\-29 19:05:15 UTC\fP
  178506. .INDENT 2.0
  178507. .IP \(bu 2
  178508. 10ba8b4 Merge pull request \fI\%#50276\fP from rallytime/merge\-2018.3
  178509. .IP \(bu 2
  178510. f05abb0 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178511. .INDENT 2.0
  178512. .IP \(bu 2
  178513. 6ae8a33 Merge pull request \fI\%#50281\fP from dubb\-b/add_subnet
  178514. .INDENT 2.0
  178515. .IP \(bu 2
  178516. 4fdcf7c Lint: Add extra blank line
  178517. .IP \(bu 2
  178518. cebfd8a Fixing lint error
  178519. .IP \(bu 2
  178520. 0da6301 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into add_subnet
  178521. .IP \(bu 2
  178522. 2df6115 Adding subnetID so it knows the right VPC to build the node in.
  178523. .UNINDENT
  178524. .UNINDENT
  178525. .IP \(bu 2
  178526. a0cfbdc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178527. .INDENT 2.0
  178528. .IP \(bu 2
  178529. b94a43b Merge pull request \fI\%#50184\fP from ethanculler/fix\-minion\-return\-exception\-with\-return
  178530. .INDENT 2.0
  178531. .IP \(bu 2
  178532. 283d41c Merge branch \(aq2017.7\(aq into fix\-minion\-return\-exception\-with\-return
  178533. .IP \(bu 2
  178534. a4e54d7 Added handling for minion return exceptions containing the word "return"
  178535. .UNINDENT
  178536. .IP \(bu 2
  178537. 6b009b4 Merge pull request \fI\%#50258\fP from dubb\-b/fix_cloud_ec2
  178538. .INDENT 2.0
  178539. .IP \(bu 2
  178540. 6a1e9f0 Adding securitygroupname as the config instead of securitygroup
  178541. .UNINDENT
  178542. .IP \(bu 2
  178543. 3e1aac9 Merge pull request \fI\%#50251\fP from gtmanfred/2017.7
  178544. .INDENT 2.0
  178545. .IP \(bu 2
  178546. 061e599 bump salt version to 2017.7.8
  178547. .UNINDENT
  178548. .IP \(bu 2
  178549. fe9bc81 Merge pull request \fI\%#50233\fP from Ch3LL/bp\-50232
  178550. .INDENT 2.0
  178551. .IP \(bu 2
  178552. f83460d change order of search engine ids
  178553. .IP \(bu 2
  178554. bf3f217 Update search engine IDs for releases
  178555. .UNINDENT
  178556. .UNINDENT
  178557. .UNINDENT
  178558. .IP \(bu 2
  178559. \fBPR\fP \fI\%#50282\fP: (\fI\%twangboy\fP) Fix \fIunit.beacons.test_diskusage\fP on Windows
  178560. @ \fI2018\-10\-29 18:37:13 UTC\fP
  178561. .INDENT 2.0
  178562. .IP \(bu 2
  178563. 0f1dc08 Merge pull request \fI\%#50282\fP from twangboy/fix_test_diskusage
  178564. .IP \(bu 2
  178565. fd369dd Mock is_windows = False
  178566. .UNINDENT
  178567. .IP \(bu 2
  178568. \fBPR\fP \fI\%#50182\fP: (\fI\%terminalmage\fP) Backport runtests.py modifications from develop to 2018.3 (refs: \fI\%#50308\fP)
  178569. @ \fI2018\-10\-29 16:25:07 UTC\fP
  178570. .INDENT 2.0
  178571. .IP \(bu 2
  178572. f7c2f04 Merge pull request \fI\%#50182\fP from terminalmage/issue50050
  178573. .IP \(bu 2
  178574. 113d76e Revert "Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests"
  178575. .IP \(bu 2
  178576. 3057ca4 Lint fix: add extra blank line in core.py
  178577. .IP \(bu 2
  178578. 8968f9d Revert "Rename test_map_conf test file to respect naming convention"
  178579. .IP \(bu 2
  178580. 85a9395 Remove saltclass pillar unit test for list expansion
  178581. .IP \(bu 2
  178582. 3d95673 Use get_config_dir() instead of self.config_dir
  178583. .IP \(bu 2
  178584. e8b3a62 Add init file back in for unit/client pkg
  178585. .IP \(bu 2
  178586. d527dd2 Rename states/test_libvirt.py into states/test_virt.py
  178587. .IP \(bu 2
  178588. ab4a670 Remove pgjsonb returner unit tests
  178589. .IP \(bu 2
  178590. 68ab3ee Remove "test_custom" from grains section of filename_map
  178591. .IP \(bu 2
  178592. 6814698 Remove test_error from scheduler tests
  178593. .IP \(bu 2
  178594. c55dcf0 Add init file back in for integration/cloud/clouds pkg
  178595. .IP \(bu 2
  178596. f485b4a enable testing only filemaps
  178597. .IP \(bu 2
  178598. dfa05b9 Remove test files for beacons that don\(aqt exist in 2018.3
  178599. .IP \(bu 2
  178600. 85612cf runtests.py: Fix IndexError in \-\-from\-filenames
  178601. .IP \(bu 2
  178602. 25097f9 Make sure from\-filenames intersect with names\-file
  178603. .IP \(bu 2
  178604. ed864ce runtests.py: Accept modified file list from a text file
  178605. .IP \(bu 2
  178606. 059754c Add some doc tests to the filemap that should run on every PR
  178607. .IP \(bu 2
  178608. b1ee2e5 Set a default value for the filename map path
  178609. .IP \(bu 2
  178610. 5ea1024 Add documentation explaining naming convention for test files
  178611. .IP \(bu 2
  178612. 8f790c0 Fix conflicting dict key in filename map
  178613. .IP \(bu 2
  178614. f2e5512 Evan Moar Lint
  178615. .IP \(bu 2
  178616. 65fef9a Moar Lint
  178617. .IP \(bu 2
  178618. 39c2455 Lint
  178619. .IP \(bu 2
  178620. dd20f12 Make sure we always run the module names test
  178621. .IP \(bu 2
  178622. 2ac939e Add test to check test module names and make sure they match the naming convention
  178623. .IP \(bu 2
  178624. 785d298 Add integration.netapi.rest_tornado.test_app to filename map
  178625. .IP \(bu 2
  178626. 662ca0d Rename files to match naming convention
  178627. .IP \(bu 2
  178628. 186d333 Add back changes lost in cherry\-pick
  178629. .IP \(bu 2
  178630. a236531 Add back test accidentally deleted when cherry\-picking
  178631. .IP \(bu 2
  178632. eaa4da3 Rename providers to clouds to respect naming convention
  178633. .IP \(bu 2
  178634. 85b96de Rename some files to avoid them being identified as test modules
  178635. .IP \(bu 2
  178636. bfb6015 Rename/consolidate salt.utils unit tests to conform to naming convention
  178637. .IP \(bu 2
  178638. 84749dd Consolitdate and move salt\-ssh unit tests to proper location
  178639. .IP \(bu 2
  178640. 71825a5 Consolidate and move loader tests to test/unit/test_loader.py
  178641. .IP \(bu 2
  178642. 8326a09 Rename test_map_conf test file to respect naming convention
  178643. .IP \(bu 2
  178644. 6d9c2eb Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests
  178645. .IP \(bu 2
  178646. 1ef43a3 Add additional paths to the filename map
  178647. .IP \(bu 2
  178648. 75e6731 Use the new helper to get the test mods
  178649. .IP \(bu 2
  178650. c3dc8ec Add function to get all of the test modules
  178651. .IP \(bu 2
  178652. c5593bc Rename custom_grains.py so it\(aqs not identified as a test module
  178653. .IP \(bu 2
  178654. 330c211 Consolidate saltclass pillar unit tests into single module
  178655. .IP \(bu 2
  178656. a642619 Rename test pgjsonb returner test file to match naming convention
  178657. .IP \(bu 2
  178658. 6433c48 Don\(aqt import old module name
  178659. .IP \(bu 2
  178660. a97e032 Move helper outside of for loop
  178661. .IP \(bu 2
  178662. 3f1b6fd Add more unit test mapping
  178663. .IP \(bu 2
  178664. ac3406d Fill out the filename map a bit
  178665. .IP \(bu 2
  178666. 07d6f2a Enhancements to \-\-from\-filenames, \-\-filename\-map options
  178667. .IP \(bu 2
  178668. b851a41 Don\(aqt run unit or integration tests unnecessarily
  178669. .IP \(bu 2
  178670. 569276b Add an initial filename_map
  178671. .IP \(bu 2
  178672. 44199b1 Add \-\-from\-filenames and \-\-filename\-map options to parser
  178673. .UNINDENT
  178674. .IP \(bu 2
  178675. \fBPR\fP \fI\%#50267\fP: (\fI\%m03\fP) Fix missing aptly config paths
  178676. @ \fI2018\-10\-29 13:27:23 UTC\fP
  178677. .INDENT 2.0
  178678. .IP \(bu 2
  178679. 1e8b092 Merge pull request \fI\%#50267\fP from m03/fix\-aptly\-config\-paths\-20183
  178680. .IP \(bu 2
  178681. 319bb31 Fix missing aptly config paths
  178682. .UNINDENT
  178683. .IP \(bu 2
  178684. \fBPR\fP \fI\%#50232\fP: (\fI\%Ch3LL\fP) Update search engine IDs for releases (refs: \fI\%#50233\fP)
  178685. @ \fI2018\-10\-25 20:15:08 UTC\fP
  178686. .INDENT 2.0
  178687. .IP \(bu 2
  178688. ab0b022 Merge pull request \fI\%#50232\fP from Ch3LL/search_latest
  178689. .IP \(bu 2
  178690. 3452d9b change order of search engine ids
  178691. .IP \(bu 2
  178692. c9546df Update search engine IDs for releases
  178693. .UNINDENT
  178694. .IP \(bu 2
  178695. \fBISSUE\fP \fI\%#49523\fP: (\fI\%MTecknology\fP) [salt\-cloud] Non\-ascii chars cause an exception in salt\-cloud (refs: \fI\%#50146\fP, \fI\%#50236\fP)
  178696. .INDENT 2.0
  178697. .IP \(bu 2
  178698. \fBPR\fP \fI\%saltstack/salt#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50231\fP)
  178699. .UNINDENT
  178700. .IP \(bu 2
  178701. \fBPR\fP \fI\%#50231\fP: (\fI\%rallytime\fP) Revert "Back\-port \fI\%#50146\fP to 2018.3" (refs: \fI\%#50236\fP)
  178702. @ \fI2018\-10\-25 20:12:15 UTC\fP
  178703. .INDENT 2.0
  178704. .IP \(bu 2
  178705. \fBPR\fP \fI\%#50146\fP: (\fI\%MTecknology\fP) Improve handling of non\-ascii characters in terminal output. (Fixes: \fI\%#49523\fP) (refs: \fI\%#50235\fP, #\(gasaltstack/salt\(ga#50174\(ga_\(ga_, \fI\%#50174\fP, \fI\%#50231\fP, \fI\%#50236\fP)
  178706. .IP \(bu 2
  178707. 1c8cdf9 Merge pull request \fI\%#50231\fP from saltstack/revert\-50174\-bp\-50146
  178708. .IP \(bu 2
  178709. c76ac1b Revert "Back\-port \fI\%#50146\fP to 2018.3"
  178710. .UNINDENT
  178711. .IP \(bu 2
  178712. \fBISSUE\fP \fI\%#50132\fP: (\fI\%ManicoW\fP) XCP\-ng packages and services management (refs: \fI\%#50140\fP)
  178713. .IP \(bu 2
  178714. \fBPR\fP \fI\%#50172\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50140\fP to 2018.3
  178715. @ \fI2018\-10\-25 14:00:32 UTC\fP
  178716. .INDENT 2.0
  178717. .IP \(bu 2
  178718. \fBPR\fP \fI\%#50140\fP: (\fI\%ManicoW\fP) Adding XCP\-ng support (refs: \fI\%#50172\fP)
  178719. .IP \(bu 2
  178720. 8dd4f43 Merge pull request \fI\%#50172\fP from rallytime/bp\-50140
  178721. .IP \(bu 2
  178722. 02e0ea0 lint fix
  178723. .IP \(bu 2
  178724. 819c46c fix lint errors and code factorization
  178725. .IP \(bu 2
  178726. 8aa3598 Fix lint error
  178727. .IP \(bu 2
  178728. 9092c4e Adding support for XCP\-ng
  178729. .IP \(bu 2
  178730. c516bc5 Adding XCP\-ng to os family map
  178731. .UNINDENT
  178732. .IP \(bu 2
  178733. \fBPR\fP \fI\%#50063\fP: (\fI\%twangboy\fP) Use long when setting REG_QWORD
  178734. @ \fI2018\-10\-25 13:45:03 UTC\fP
  178735. .INDENT 2.0
  178736. .IP \(bu 2
  178737. 9ad43f2 Merge pull request \fI\%#50063\fP from twangboy/fix_50039
  178738. .IP \(bu 2
  178739. 5fdba7d Disable lint error
  178740. .IP \(bu 2
  178741. 84b8dd6 Add tests
  178742. .IP \(bu 2
  178743. 4644bb6 Use long when setting REG_QWORD
  178744. .UNINDENT
  178745. .IP \(bu 2
  178746. \fBISSUE\fP \fI\%#49965\fP: (\fI\%nkrishnakishor\fP) Beacon: Usage in windows (refs: \fI\%#50188\fP)
  178747. .IP \(bu 2
  178748. \fBPR\fP \fI\%#50188\fP: (\fI\%garethgreenaway\fP) [2018.3] fixes to diskusage beacon
  178749. @ \fI2018\-10\-25 13:41:19 UTC\fP
  178750. .INDENT 2.0
  178751. .IP \(bu 2
  178752. 01b083e Merge pull request \fI\%#50188\fP from garethgreenaway/49965_beacon_diskusage_windows
  178753. .IP \(bu 2
  178754. 1f0ab27 Merge branch \(aq2018.3\(aq into 49965_beacon_diskusage_windows
  178755. .IP \(bu 2
  178756. 42b3203 Fixing lint
  178757. .IP \(bu 2
  178758. f65fa57 Fixing a bug in the diskusage beacon that prevented it from working on Windows. Adding a couple tests to test functionality on Windows.
  178759. .UNINDENT
  178760. .IP \(bu 2
  178761. \fBPR\fP \fI\%#50214\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178762. @ \fI2018\-10\-25 13:38:40 UTC\fP
  178763. .INDENT 2.0
  178764. .IP \(bu 2
  178765. 9ea51c0 Merge pull request \fI\%#50214\fP from rallytime/merge\-2018.3
  178766. .IP \(bu 2
  178767. 897145c Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178768. .INDENT 2.0
  178769. .IP \(bu 2
  178770. 017d394 Merge pull request \fI\%#50202\fP from Ch3LL/_2017.7.8
  178771. .INDENT 2.0
  178772. .IP \(bu 2
  178773. d520f9a Add tests with filname in token data
  178774. .IP \(bu 2
  178775. d45f6c7 Add empty token salt\-api integration tests
  178776. .IP \(bu 2
  178777. 652dbf6 Ensure that tokens are hex to avoid hanging/errors in cherrypy
  178778. .UNINDENT
  178779. .IP \(bu 2
  178780. f28a4fa Merge pull request \fI\%#50211\fP from channias/fix\-spm\-modules\-install
  178781. .INDENT 2.0
  178782. .IP \(bu 2
  178783. 9b203d5 Fix broken install of additionnal modules in SPM packages
  178784. .UNINDENT
  178785. .IP \(bu 2
  178786. 6b4e07b Merge pull request \fI\%#50212\fP from dwoz/test_no_fail
  178787. .INDENT 2.0
  178788. .IP \(bu 2
  178789. 7f613ac Do not fail if process already ended
  178790. .UNINDENT
  178791. .IP \(bu 2
  178792. 85e22d2 Merge pull request \fI\%#50207\fP from Ch3LL/2update_version_doc_2017.7
  178793. .INDENT 2.0
  178794. .IP \(bu 2
  178795. 198d25c Add 2017.7.8 previous release
  178796. .IP \(bu 2
  178797. d4e26ac Update release versions for the 2017.7 branch
  178798. .UNINDENT
  178799. .IP \(bu 2
  178800. d035695 Merge pull request \fI\%#50205\fP from Ch3LL/rn_2017.7.8
  178801. .INDENT 2.0
  178802. .IP \(bu 2
  178803. 71ee68b [2017.7.8] remove in progress and add security details
  178804. .UNINDENT
  178805. .IP \(bu 2
  178806. ce341f2 Merge pull request \fI\%#50180\fP from max\-arnold/2017.7
  178807. .INDENT 2.0
  178808. .IP \(bu 2
  178809. 881a521 Revert curly braces example for nested dictionaries
  178810. .UNINDENT
  178811. .IP \(bu 2
  178812. 622bb51 Merge pull request \fI\%#50026\fP from damon\-atkins/jenkins_pylint
  178813. .INDENT 2.0
  178814. .IP \(bu 2
  178815. aebce88 Merge branch \(aq2017.7\(aq into jenkins_pylint
  178816. .IP \(bu 2
  178817. 5f708fa use awk to create the other files, so git does not need to search again
  178818. .IP \(bu 2
  178819. 6b96a24 Adjust jenkins linting process, only run stage if required, use git diff to find files, instead of find, report on status, changed and deleted files, lint only changed files.
  178820. .UNINDENT
  178821. .IP \(bu 2
  178822. aa66d1b Merge pull request \fI\%#50158\fP from vutny/doc/2017.7/fix\-http\-tutorial
  178823. .INDENT 2.0
  178824. .IP \(bu 2
  178825. fe2d70d [DOC] Fix JSON payload example in HTTP tutorial
  178826. .UNINDENT
  178827. .UNINDENT
  178828. .UNINDENT
  178829. .IP \(bu 2
  178830. \fBISSUE\fP \fI\%#50162\fP: (\fI\%rbthomp\fP) Scheduled job runs in endless loop when using when: and splay: together. (refs: \fI\%#50216\fP)
  178831. .IP \(bu 2
  178832. \fBPR\fP \fI\%#50216\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to scheduler, list of whens plus splay
  178833. @ \fI2018\-10\-25 13:31:26 UTC\fP
  178834. .INDENT 2.0
  178835. .IP \(bu 2
  178836. 51b3fa4 Merge pull request \fI\%#50216\fP from garethgreenaway/50162_when_plus_splay_endless_loop
  178837. .IP \(bu 2
  178838. 685509f Fixing an issue when a combination of the when parameter as a list plus using the splay parameter would cause the schedule to continuously run jobs in an endless loop, regardless of if their scheduled time had been receached. Also fixing a related issue where scheduled jobs that rely on _next_fire_time were not being run as the corrected splayed time but rather running at the original scheduled time. Adding new tests.
  178839. .UNINDENT
  178840. .IP \(bu 2
  178841. \fBPR\fP \fI\%#50190\fP: (\fI\%dwoz\fP) Fix test_managed_file_with_grains_data on Windows
  178842. @ \fI2018\-10\-24 22:43:35 UTC\fP
  178843. .INDENT 2.0
  178844. .IP \(bu 2
  178845. 43303fb Merge pull request \fI\%#50190\fP from dwoz/grains_template_test
  178846. .IP \(bu 2
  178847. b77db48 Fix test_managed_file_with_grains_data on Windows
  178848. .UNINDENT
  178849. .IP \(bu 2
  178850. \fBPR\fP \fI\%#50187\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding fixes to scheduler tests to 2018.3
  178851. @ \fI2018\-10\-24 19:45:32 UTC\fP
  178852. .INDENT 2.0
  178853. .IP \(bu 2
  178854. \fBPR\fP \fI\%#49871\fP: (\fI\%garethgreenaway\fP) [fluorine] Updating scheduler tests for OS X (refs: \fI\%#50187\fP)
  178855. .IP \(bu 2
  178856. 462314b Merge pull request \fI\%#50187\fP from garethgreenaway/port_49871_to_2018_3
  178857. .IP \(bu 2
  178858. 25e7cb6 Merge branch \(aq2018.3\(aq into port_49871_to_2018_3
  178859. .IP \(bu 2
  178860. d232dfb Update test_eval.py
  178861. .IP \(bu 2
  178862. d8d8559 Fixing lint
  178863. .IP \(bu 2
  178864. 76e6232 Removing unnecessary debugging lines
  178865. .IP \(bu 2
  178866. d2d0622 Back porting \fI\%#49871\fP to 2018.3. Adding some additional changes to ensure they are passing on OS X.
  178867. .UNINDENT
  178868. .IP \(bu 2
  178869. \fBPR\fP \fI\%#50201\fP: (\fI\%Ch3LL\fP) [2018.3] Ensure that tokens are hex to avoid hanging/errors in cherrypy
  178870. @ \fI2018\-10\-24 19:44:23 UTC\fP
  178871. .INDENT 2.0
  178872. .IP \(bu 2
  178873. 8ad9a1b Merge pull request \fI\%#50201\fP from Ch3LL/_2018.3.3
  178874. .UNINDENT
  178875. .IP \(bu 2
  178876. \fBPR\fP \fI\%#50208\fP: (\fI\%Ch3LL\fP) Update release versions for the 2018.3 branch
  178877. @ \fI2018\-10\-24 15:52:19 UTC\fP
  178878. .INDENT 2.0
  178879. .IP \(bu 2
  178880. 88673ad Merge pull request \fI\%#50208\fP from Ch3LL/2update_version_doc_2018.3
  178881. .IP \(bu 2
  178882. cdbf493 Add 2017.7.8 previous release
  178883. .IP \(bu 2
  178884. 6f775e7 Update release versions for the 2018.3 branch
  178885. .UNINDENT
  178886. .IP \(bu 2
  178887. \fBPR\fP \fI\%#50206\fP: (\fI\%Ch3LL\fP) [2018.3.3] remove in progress and add security details
  178888. @ \fI2018\-10\-24 15:50:50 UTC\fP
  178889. .INDENT 2.0
  178890. .IP \(bu 2
  178891. db8ef1e Merge pull request \fI\%#50206\fP from Ch3LL/rn_2018.3.3
  178892. .IP \(bu 2
  178893. 896caa1 Add 2016.11.10 release notes to 2018.3 branch
  178894. .IP \(bu 2
  178895. 1e34158 [2018.3.3] remove in progress and add security details
  178896. .UNINDENT
  178897. .IP \(bu 2
  178898. \fBPR\fP \fI\%#50200\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50181\fP to 2018.3
  178899. @ \fI2018\-10\-24 15:49:59 UTC\fP
  178900. .INDENT 2.0
  178901. .IP \(bu 2
  178902. \fBPR\fP \fI\%#50181\fP: (\fI\%cro\fP) Testinfra has a python packaging issue that is making version 1.17.0 fail to install some places (refs: \fI\%#50200\fP)
  178903. .IP \(bu 2
  178904. 3d3db70 Merge pull request \fI\%#50200\fP from rallytime/bp\-50181
  178905. .IP \(bu 2
  178906. f3e5399 Ignore testinfra 1.17.0
  178907. .UNINDENT
  178908. .IP \(bu 2
  178909. \fBISSUE\fP \fI\%#49523\fP: (\fI\%MTecknology\fP) [salt\-cloud] Non\-ascii chars cause an exception in salt\-cloud (refs: \fI\%#50146\fP, \fI\%#50236\fP)
  178910. .IP \(bu 2
  178911. \fBPR\fP \fI\%#50174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50146\fP to 2018.3 (refs: \fI\%#50236\fP)
  178912. @ \fI2018\-10\-23 18:16:45 UTC\fP
  178913. .INDENT 2.0
  178914. .IP \(bu 2
  178915. \fBPR\fP \fI\%#50146\fP: (\fI\%MTecknology\fP) Improve handling of non\-ascii characters in terminal output. (Fixes: \fI\%#49523\fP) (refs: \fI\%#50235\fP, #\(gasaltstack/salt\(ga#50174\(ga_\(ga_, \fI\%#50174\fP, \fI\%#50231\fP, \fI\%#50236\fP)
  178916. .IP \(bu 2
  178917. 5f904dd Merge pull request \fI\%#50174\fP from rallytime/bp\-50146
  178918. .IP \(bu 2
  178919. 601a5b8 Improve handling of non\-ascii characters in terminal output. (Fixes: \fI\%#49523\fP)
  178920. .UNINDENT
  178921. .IP \(bu 2
  178922. \fBISSUE\fP \fI\%#50142\fP: (\fI\%m03\fP) stringutils.to_none AttributeError: \(aqmodule\(aq object has no attribute \(aqtex_type\(aq (refs: \fI\%#50143\fP)
  178923. .IP \(bu 2
  178924. \fBPR\fP \fI\%#50173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50143\fP to 2018.3
  178925. @ \fI2018\-10\-23 17:13:55 UTC\fP
  178926. .INDENT 2.0
  178927. .IP \(bu 2
  178928. \fBPR\fP \fI\%#50143\fP: (\fI\%m03\fP) Fix \fI\%#50142\fP, stringutils.to_none (refs: \fI\%#50173\fP)
  178929. .IP \(bu 2
  178930. \fBPR\fP \fI\%#45429\fP: (\fI\%terminalmage\fP) [PY3] Add unicode_literals to salt.utils modules (R\-S) (refs: \fI\%#50143\fP)
  178931. .IP \(bu 2
  178932. 1cd0339 Merge pull request \fI\%#50173\fP from rallytime/bp\-50143
  178933. .IP \(bu 2
  178934. f5d6080 Add test_to_none
  178935. .IP \(bu 2
  178936. c0ce36b Fix \fI\%#50142\fP, stringutils.to_none
  178937. .UNINDENT
  178938. .IP \(bu 2
  178939. \fBPR\fP \fI\%#50171\fP: (\fI\%terminalmage\fP) Fix invalid RST link in docker_network docs
  178940. @ \fI2018\-10\-23 13:40:36 UTC\fP
  178941. .INDENT 2.0
  178942. .IP \(bu 2
  178943. 9331f1e Merge pull request \fI\%#50171\fP from terminalmage/docs
  178944. .IP \(bu 2
  178945. 7ea1d6c Fix invalid RST link in docker_network docs
  178946. .UNINDENT
  178947. .IP \(bu 2
  178948. \fBPR\fP \fI\%#50161\fP: (\fI\%rmarcinik\fP) Add a missing result for task.info
  178949. @ \fI2018\-10\-23 13:31:43 UTC\fP
  178950. .INDENT 2.0
  178951. .IP \(bu 2
  178952. 16eece3 Merge pull request \fI\%#50161\fP from rmarcinik/patch\-1
  178953. .IP \(bu 2
  178954. 9848f06 Add a missing result for task.info
  178955. .UNINDENT
  178956. .IP \(bu 2
  178957. \fBPR\fP \fI\%#50136\fP: (\fI\%terminalmage\fP) Add some debug logging before and after states gather pillar data
  178958. @ \fI2018\-10\-22 14:40:38 UTC\fP
  178959. .INDENT 2.0
  178960. .IP \(bu 2
  178961. 28bc5e3 Merge pull request \fI\%#50136\fP from terminalmage/debug\-logging
  178962. .IP \(bu 2
  178963. 8592a0b Add some debug logging before and after states gather pillar data
  178964. .UNINDENT
  178965. .IP \(bu 2
  178966. \fBISSUE\fP \fI\%#50129\fP: (\fI\%kmatsoukas\fP) Call to network.get_route fails when interface name contains a dash (refs: \fI\%#50147\fP)
  178967. .IP \(bu 2
  178968. \fBPR\fP \fI\%#50147\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to modules/network.py
  178969. @ \fI2018\-10\-22 14:31:03 UTC\fP
  178970. .INDENT 2.0
  178971. .IP \(bu 2
  178972. 593c7ff Merge pull request \fI\%#50147\fP from garethgreenaway/50129_network_get_route_fails_dash_in_name
  178973. .IP \(bu 2
  178974. 8fa87e3 Update test_network.py
  178975. .IP \(bu 2
  178976. 3117969 Fixing scenario where the interface for the default route has a dash in it, regular expression used in get_route currently doesn\(aqt not account for this.. Adding some additional tests for network.get_route.
  178977. .UNINDENT
  178978. .IP \(bu 2
  178979. \fBPR\fP \fI\%#50156\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  178980. @ \fI2018\-10\-22 14:24:39 UTC\fP
  178981. .INDENT 2.0
  178982. .IP \(bu 2
  178983. 5c7a7d9 Merge pull request \fI\%#50156\fP from rallytime/merge\-2018.3
  178984. .IP \(bu 2
  178985. 87e20fd Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  178986. .IP \(bu 2
  178987. 1a90c4f Merge pull request \fI\%#50144\fP from dwoz/winrm_fs_release
  178988. .INDENT 2.0
  178989. .IP \(bu 2
  178990. 0951d85 Use newest winrm\-fs release
  178991. .UNINDENT
  178992. .IP \(bu 2
  178993. e096560 Merge pull request \fI\%#50113\fP from rallytime/bp\-49989
  178994. .INDENT 2.0
  178995. .IP \(bu 2
  178996. 27c7ac9 Increase centos7\-py2 kitchen pr timeout to 8 hours
  178997. .UNINDENT
  178998. .UNINDENT
  178999. .IP \(bu 2
  179000. \fBPR\fP \fI\%#50148\fP: (\fI\%MTecknology\fP) Proxmox fixups
  179001. @ \fI2018\-10\-22 11:55:10 UTC\fP
  179002. .INDENT 2.0
  179003. .IP \(bu 2
  179004. ce375f4 Merge pull request \fI\%#50148\fP from MTecknology/proxmox\-fixups
  179005. .IP \(bu 2
  179006. 4959947 Race condition still exists at one second timeout.
  179007. .IP \(bu 2
  179008. 3a62f74 Add support for setting root ssh pubkey to proxmox containers.
  179009. .UNINDENT
  179010. .IP \(bu 2
  179011. \fBPR\fP \fI\%#50085\fP: (\fI\%dwoz\fP) Fix \fItest_win_pkg\fP yet again
  179012. @ \fI2018\-10\-19 18:16:16 UTC\fP
  179013. .INDENT 2.0
  179014. .IP \(bu 2
  179015. 0ece06e Merge pull request \fI\%#50085\fP from dwoz/win_pkg_redux
  179016. .IP \(bu 2
  179017. f22630e Merge branch \(aq2018.3\(aq into win_pkg_redux
  179018. .IP \(bu 2
  179019. 0b033a6 Do not allow age to be a negative number
  179020. .IP \(bu 2
  179021. a24d8b8 Debug file list cache
  179022. .IP \(bu 2
  179023. 9f5722a The test is not a flush problem
  179024. .IP \(bu 2
  179025. 071f8a0 Add cache file name to list cache log
  179026. .IP \(bu 2
  179027. 128c2c5 Flush and sync file contents
  179028. .IP \(bu 2
  179029. 7d361d8 Add debug log when file list is returned from cache
  179030. .UNINDENT
  179031. .IP \(bu 2
  179032. \fBPR\fP \fI\%#49980\fP: (\fI\%twangboy\fP) Add support for AddPrinterDrivers
  179033. @ \fI2018\-10\-19 13:19:41 UTC\fP
  179034. .INDENT 2.0
  179035. .IP \(bu 2
  179036. 0069247 Merge pull request \fI\%#49980\fP from twangboy/lgpo_add_printer_drivers
  179037. .IP \(bu 2
  179038. 76c9301 Add support for AddPrinterDrivers
  179039. .UNINDENT
  179040. .IP \(bu 2
  179041. \fBPR\fP \fI\%#50114\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50061\fP to 2018.3
  179042. @ \fI2018\-10\-19 11:46:03 UTC\fP
  179043. .INDENT 2.0
  179044. .IP \(bu 2
  179045. \fBPR\fP \fI\%#50061\fP: (\fI\%rongzeng54\fP) pkg.install bugfix (refs: \fI\%#50114\fP)
  179046. .IP \(bu 2
  179047. de23c83 Merge pull request \fI\%#50114\fP from rallytime/bp\-50061
  179048. .IP \(bu 2
  179049. 1f09104 Add unit test for pkg.install with epoch
  179050. .IP \(bu 2
  179051. af253c6 pkg.install bugfix
  179052. .UNINDENT
  179053. .IP \(bu 2
  179054. \fBISSUE\fP \fI\%#50074\fP: (\fI\%bigpick\fP) Arista EOS Salt Minion \- Debug Log Flooded with Repeated Message (refs: \fI\%#50115\fP)
  179055. .IP \(bu 2
  179056. \fBPR\fP \fI\%#50115\fP: (\fI\%garethgreenaway\fP) [2018.3] Apply scheduler fixes and tests from \fI\%#49104\fP to 2018.3
  179057. @ \fI2018\-10\-19 11:45:31 UTC\fP
  179058. .INDENT 2.0
  179059. .IP \(bu 2
  179060. \fBPR\fP \fI\%#49104\fP: (\fI\%garethgreenaway\fP) [fluorine] Fixes to scheduler for jobs with seconds, minutes, etc. (refs: \fI\%#50115\fP)
  179061. .IP \(bu 2
  179062. 9188bec Merge pull request \fI\%#50115\fP from garethgreenaway/apply_49104_to_2018_3
  179063. .IP \(bu 2
  179064. adb1e79 Apply scheduler fixes and tests from \fI\%#49104\fP to 2018.3
  179065. .UNINDENT
  179066. .IP \(bu 2
  179067. \fBPR\fP \fI\%#50119\fP: (\fI\%terminalmage\fP) Squelch spurious errors logged in unit tests
  179068. @ \fI2018\-10\-19 11:42:31 UTC\fP
  179069. .INDENT 2.0
  179070. .IP \(bu 2
  179071. e892042 Merge pull request \fI\%#50119\fP from terminalmage/boto\-tests
  179072. .IP \(bu 2
  179073. 91812ff Squelch spurious errors logged in unit tests
  179074. .UNINDENT
  179075. .IP \(bu 2
  179076. \fBPR\fP \fI\%#50120\fP: (\fI\%terminalmage\fP) Fix bad merge conflict resolution
  179077. @ \fI2018\-10\-19 11:38:35 UTC\fP
  179078. .INDENT 2.0
  179079. .IP \(bu 2
  179080. 35449b4 Merge pull request \fI\%#50120\fP from terminalmage/salt\-jenkins\-1137
  179081. .IP \(bu 2
  179082. 1ddfd26 Fix bad merge conflict resolution
  179083. .UNINDENT
  179084. .IP \(bu 2
  179085. \fBPR\fP \fI\%#50013\fP: (\fI\%Giandom\fP) Passed kwargs to db_exists in db_remove method
  179086. @ \fI2018\-10\-18 11:28:30 UTC\fP
  179087. .INDENT 2.0
  179088. .IP \(bu 2
  179089. 5123488 Merge pull request \fI\%#50013\fP from Giandom/2018.3
  179090. .IP \(bu 2
  179091. 9c91df3 Merge branch \(aq2018.3\(aq into 2018.3
  179092. .IP \(bu 2
  179093. 06bb245 Merge branch \(aq2018.3\(aq into 2018.3
  179094. .IP \(bu 2
  179095. 04a99e0 Passed kwargs to db_remove
  179096. .UNINDENT
  179097. .IP \(bu 2
  179098. \fBPR\fP \fI\%#50092\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179099. @ \fI2018\-10\-17 19:57:07 UTC\fP
  179100. .INDENT 2.0
  179101. .IP \(bu 2
  179102. aa94f60 Merge pull request \fI\%#50092\fP from rallytime/merge\-2018.3
  179103. .IP \(bu 2
  179104. 8609064 Update old utils paths to use new paths
  179105. .IP \(bu 2
  179106. a984ad8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179107. .INDENT 2.0
  179108. .IP \(bu 2
  179109. 7ec3840 Merge pull request \fI\%#49794\fP from twangboy/fix_groupadd_test
  179110. .INDENT 2.0
  179111. .IP \(bu 2
  179112. 3d3b67d Gate for Windows
  179113. .IP \(bu 2
  179114. decfa52 Check value of result instead of entire dict
  179115. .UNINDENT
  179116. .IP \(bu 2
  179117. e562838 Merge pull request \fI\%#50028\fP from basseed/fix\-windows\-virtual\-grain
  179118. .INDENT 2.0
  179119. .IP \(bu 2
  179120. 8129ac6 removed whitespaces
  179121. .IP \(bu 2
  179122. 82fa866 Fix \fI\%#50015\fP, Windows grain defaults to physical as unix grain
  179123. .UNINDENT
  179124. .UNINDENT
  179125. .UNINDENT
  179126. .IP \(bu 2
  179127. \fBISSUE\fP \fI\%#50073\fP: (\fI\%jorotenev\fP) boto_cloudfront update distribution fails (refs: \fI\%#50082\fP)
  179128. .IP \(bu 2
  179129. \fBPR\fP \fI\%#50082\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing a typo in the boto_cloudfront
  179130. @ \fI2018\-10\-17 19:35:00 UTC\fP
  179131. .INDENT 2.0
  179132. .IP \(bu 2
  179133. d1f2c5d Merge pull request \fI\%#50082\fP from garethgreenaway/50073_fixing_typo_boto_cloudfront
  179134. .IP \(bu 2
  179135. b5b90a1 Fixing a typo in the boto_cloudfront.
  179136. .UNINDENT
  179137. .IP \(bu 2
  179138. \fBPR\fP \fI\%#50090\fP: (\fI\%garethgreenaway\fP) [2018.3] Fix to utils/vault.py
  179139. @ \fI2018\-10\-17 13:57:30 UTC\fP
  179140. .INDENT 2.0
  179141. .IP \(bu 2
  179142. 05bd2a0 Merge pull request \fI\%#50090\fP from garethgreenaway/fix_vault_sdb_runner_test
  179143. .IP \(bu 2
  179144. 444a4e5 Merge branch \(aq2018.3\(aq into fix_vault_sdb_runner_test
  179145. .UNINDENT
  179146. .IP \(bu 2
  179147. \fBISSUE\fP \fI\%#49275\fP: (\fI\%dgengtek\fP) execution module cp.cache_file fails with error \(aqinvalid arguments to setopt\(aq (refs: \fI\%#50080\fP)
  179148. .IP \(bu 2
  179149. \fBPR\fP \fI\%#50080\fP: (\fI\%terminalmage\fP) Ensure all string kwargs passed to Tornado\(aqs httpclient are str types
  179150. @ \fI2018\-10\-16 21:01:41 UTC\fP
  179151. .INDENT 2.0
  179152. .IP \(bu 2
  179153. 7092879 Merge pull request \fI\%#50080\fP from terminalmage/issue49275
  179154. .IP \(bu 2
  179155. 4a6c327 Ensure all string kwargs passed to Tornado\(aqs httpclient are str types
  179156. .UNINDENT
  179157. .IP \(bu 2
  179158. \fBISSUE\fP \fI\%#44979\fP: (\fI\%hunkeelin\fP) Firewalld state cause horrid performance during saltrun. (refs: \fI\%#49811\fP)
  179159. .IP \(bu 2
  179160. \fBPR\fP \fI\%#49811\fP: (\fI\%nhavens\fP) Optimize firewalld state
  179161. @ \fI2018\-10\-16 11:26:46 UTC\fP
  179162. .INDENT 2.0
  179163. .IP \(bu 2
  179164. 45b6da3 Merge pull request \fI\%#49811\fP from nhavens/optimize\-firewalld\-state
  179165. .IP \(bu 2
  179166. 7d6e628 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179167. .IP \(bu 2
  179168. a718b0c Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179169. .IP \(bu 2
  179170. f7299b9 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179171. .IP \(bu 2
  179172. f289618 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179173. .IP \(bu 2
  179174. 41af513 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179175. .IP \(bu 2
  179176. 7cebab4 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179177. .IP \(bu 2
  179178. c38bb7d Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179179. .IP \(bu 2
  179180. abed058 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179181. .IP \(bu 2
  179182. 0ec1f82 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179183. .IP \(bu 2
  179184. db6b23b Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179185. .IP \(bu 2
  179186. 4ca7e12 Merge branch \(aq2018.3\(aq into optimize\-firewalld\-state
  179187. .IP \(bu 2
  179188. 4f7c914 fix invalid icmp type handling in firewalld state
  179189. .IP \(bu 2
  179190. 2d2e2eb resolve lint error in firewalld state
  179191. .IP \(bu 2
  179192. 081424d resolve indentation issues in updates to firewalld state
  179193. .IP \(bu 2
  179194. c92c4fe optimize firewalld.present rich rule handling
  179195. .IP \(bu 2
  179196. 25d1daf optimize firewalld.present source handling
  179197. .IP \(bu 2
  179198. 5f62c14 optimize firewalld.present interface handling
  179199. .IP \(bu 2
  179200. 69f2c6c optimize firewalld.present service handling
  179201. .IP \(bu 2
  179202. 71ec8e7 optimize firewalld.present port forward handling
  179203. .IP \(bu 2
  179204. f18e09e optimize firewalld.present open port handling
  179205. .IP \(bu 2
  179206. 35193dc clean up firewalld.present masquerade code (DRY)
  179207. .IP \(bu 2
  179208. 8c88784 optimize firewalld.present icmp block handling
  179209. .UNINDENT
  179210. .IP \(bu 2
  179211. \fBPR\fP \fI\%#50055\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50024\fP to 2018.3
  179212. @ \fI2018\-10\-16 09:14:06 UTC\fP
  179213. .INDENT 2.0
  179214. .IP \(bu 2
  179215. \fBPR\fP \fI\%#50024\fP: (\fI\%rwaweber\fP) docs: Correct napalm topic spelling mistake and smooth out sentence (refs: \fI\%#50055\fP)
  179216. .IP \(bu 2
  179217. b94e0a0 Merge pull request \fI\%#50055\fP from rallytime/bp\-50024
  179218. .IP \(bu 2
  179219. 1ea72a0 docs: Correct spelling mistake and smooth out sentence
  179220. .UNINDENT
  179221. .IP \(bu 2
  179222. \fBPR\fP \fI\%#50056\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50029\fP to 2018.3
  179223. @ \fI2018\-10\-16 09:12:59 UTC\fP
  179224. .INDENT 2.0
  179225. .IP \(bu 2
  179226. \fBPR\fP \fI\%#50029\fP: (\fI\%thebluesnevrdie\fP) Expose docs for Ansible modules (refs: \fI\%#50056\fP)
  179227. .IP \(bu 2
  179228. 14f3fac Merge pull request \fI\%#50056\fP from rallytime/bp\-50029
  179229. .IP \(bu 2
  179230. 2e46a78 Expose docs for Ansible modules
  179231. .UNINDENT
  179232. .IP \(bu 2
  179233. \fBPR\fP \fI\%#50064\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50022\fP to 2018.3
  179234. @ \fI2018\-10\-16 09:09:47 UTC\fP
  179235. .INDENT 2.0
  179236. .IP \(bu 2
  179237. \fBPR\fP \fI\%#50022\fP: (\fI\%bluesliverx\fP) Make test check_pillar more lenient (refs: \fI\%#50064\fP)
  179238. .IP \(bu 2
  179239. f3fe4b6 Merge pull request \fI\%#50064\fP from rallytime/bp\-50022
  179240. .IP \(bu 2
  179241. 40da3ce Make test check_pillar more lenient
  179242. .UNINDENT
  179243. .IP \(bu 2
  179244. \fBISSUE\fP \fI\%#49988\fP: (\fI\%whytewolf\fP) currently http error logging of urls contains full URL including passwords. (refs: \fI\%#50066\fP)
  179245. .IP \(bu 2
  179246. \fBPR\fP \fI\%#50066\fP: (\fI\%garethgreenaway\fP) [2018.3] Redact any passwords from source paths
  179247. @ \fI2018\-10\-16 09:08:25 UTC\fP
  179248. .INDENT 2.0
  179249. .IP \(bu 2
  179250. c2a46ce Merge pull request \fI\%#50066\fP from garethgreenaway/49988_redact_passwords_in_source
  179251. .IP \(bu 2
  179252. 27ef1e0 Redact any passwords that are in http/https based source paths.
  179253. .UNINDENT
  179254. .IP \(bu 2
  179255. \fBPR\fP \fI\%#50068\fP: (\fI\%garethgreenaway\fP) [2018.3] Updating salt.utils.mac_utils
  179256. @ \fI2018\-10\-16 09:07:10 UTC\fP
  179257. .INDENT 2.0
  179258. .IP \(bu 2
  179259. ab2cb51 Merge pull request \fI\%#50068\fP from garethgreenaway/1140_mac_system_tests_2018_3_failing
  179260. .IP \(bu 2
  179261. eedeacb Updating another reference to salt.utils.mac_utils to use __utils__
  179262. .INDENT 2.0
  179263. .INDENT 3.5
  179264. .INDENT 0.0
  179265. .IP \(bu 2
  179266. 6ef5ce4 Due to a previous PR the test_sdb_runner in sdb.test_vault was failing because of a exception that was being swallowed in the test run_run function. The cause was that when vault related functions were being run, if they were being run on the master then they were being forced to run through the _get_token_and_url_from_master() function, which is pull the id element out of the grains dictionary. When the call was taking place from a runner, the exception was popping up since there is no id when called from a runner. This fix checks to see if the id exists in the dictionary first, if it is there then _get_token_and_url_from_master() is called, otherwise _use_local_config is called.
  179267. .UNINDENT
  179268. .UNINDENT
  179269. .UNINDENT
  179270. .UNINDENT
  179271. .IP \(bu 2
  179272. \fBPR\fP \fI\%#49987\fP: (\fI\%terminalmage\fP) Make Pillar no longer munge file_roots
  179273. @ \fI2018\-10\-15 21:58:08 UTC\fP
  179274. .INDENT 2.0
  179275. .IP \(bu 2
  179276. 4c4bb5a Merge pull request \fI\%#49987\fP from terminalmage/pillar_roots
  179277. .IP \(bu 2
  179278. f59506d Update tests to reflect behavior changes
  179279. .IP \(bu 2
  179280. 58f5fde Make Pillar no longer munge file_roots
  179281. .UNINDENT
  179282. .IP \(bu 2
  179283. \fBPR\fP \fI\%#50065\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50044\fP to 2018.3
  179284. @ \fI2018\-10\-15 21:32:37 UTC\fP
  179285. .INDENT 2.0
  179286. .IP \(bu 2
  179287. \fBPR\fP \fI\%#50044\fP: (\fI\%mchugh19\fP) add saltclass info from release notes to docs (refs: \fI\%#50065\fP)
  179288. .IP \(bu 2
  179289. 1e377ac Merge pull request \fI\%#50065\fP from rallytime/bp\-50044
  179290. .IP \(bu 2
  179291. 1eaaab7 Doc title formatting must match doc name length
  179292. .IP \(bu 2
  179293. 6ac26b6 add saltclass docs from release notes
  179294. .UNINDENT
  179295. .IP \(bu 2
  179296. \fBPR\fP \fI\%#50038\fP: (\fI\%s0undt3ch\fP) Don\(aqt squash the traceback
  179297. @ \fI2018\-10\-15 20:36:55 UTC\fP
  179298. .INDENT 2.0
  179299. .IP \(bu 2
  179300. 8a6b435 Merge pull request \fI\%#50038\fP from s0undt3ch/2018.3
  179301. .IP \(bu 2
  179302. 852257a Don\(aqt squash the traceback
  179303. .UNINDENT
  179304. .IP \(bu 2
  179305. \fBPR\fP \fI\%#50054\fP: (\fI\%rallytime\fP) Back\-port \fI\%#50004\fP to 2018.3
  179306. @ \fI2018\-10\-15 20:36:03 UTC\fP
  179307. .INDENT 2.0
  179308. .IP \(bu 2
  179309. \fBPR\fP \fI\%#50004\fP: (\fI\%kiemlicz\fP) \fI\%https://github.com/saltstack/salt/issues/49883\fP (refs: \fI\%#50054\fP)
  179310. .IP \(bu 2
  179311. dbfd7ee Merge pull request \fI\%#50054\fP from rallytime/bp\-50004
  179312. .IP \(bu 2
  179313. 88e3202 \fI\%https://github.com/saltstack/salt/issues/49883\fP
  179314. .UNINDENT
  179315. .IP \(bu 2
  179316. \fBPR\fP \fI\%#50057\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179317. @ \fI2018\-10\-15 20:35:46 UTC\fP
  179318. .INDENT 2.0
  179319. .IP \(bu 2
  179320. a9e9974 Merge pull request \fI\%#50057\fP from rallytime/merge\-2018.3
  179321. .IP \(bu 2
  179322. 1b5b018 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179323. .INDENT 2.0
  179324. .IP \(bu 2
  179325. 9eb17ea Merge pull request \fI\%#50047\fP from rallytime/bp\-49605
  179326. .INDENT 2.0
  179327. .IP \(bu 2
  179328. e3a0f7b Add gce fix to 2017.7.9 release notes
  179329. .IP \(bu 2
  179330. e6d86fc document GCE instance credentials configuration
  179331. .IP \(bu 2
  179332. c3a0d1b allow empty service_account_private_key in GCE driver
  179333. .UNINDENT
  179334. .IP \(bu 2
  179335. 6cdd390 Merge pull request \fI\%#50017\fP from gtmanfred/iptables
  179336. .INDENT 2.0
  179337. .IP \(bu 2
  179338. e552e4f Use parse_known_args when checking iptables rules
  179339. .UNINDENT
  179340. .IP \(bu 2
  179341. a6a66b9 Merge pull request \fI\%#50012\fP from dwoz/norm_log
  179342. .INDENT 2.0
  179343. .IP \(bu 2
  179344. f96b29d Use normal log formatting and add jid
  179345. .UNINDENT
  179346. .IP \(bu 2
  179347. 15f86b2 Merge pull request \fI\%#50001\fP from kyentei/doc\-fix\-gpg
  179348. .INDENT 2.0
  179349. .IP \(bu 2
  179350. 3d6ee3e Fix gpg state Documentation
  179351. .UNINDENT
  179352. .IP \(bu 2
  179353. 7a235d7 Merge pull request \fI\%#50000\fP from kyentei/doc\-fix\-lvm
  179354. .INDENT 2.0
  179355. .IP \(bu 2
  179356. c2f3d87 Fix LVM state documentation
  179357. .UNINDENT
  179358. .IP \(bu 2
  179359. 4edd094 Merge pull request \fI\%#49999\fP from kyentei/doc\-fix\-proxy
  179360. .INDENT 2.0
  179361. .IP \(bu 2
  179362. a180ed7 Fix proxy documentation
  179363. .UNINDENT
  179364. .IP \(bu 2
  179365. 58d2302 Merge pull request \fI\%#49998\fP from kyentei/doc\-fix\-process
  179366. .INDENT 2.0
  179367. .IP \(bu 2
  179368. edd4f40 Fix documentation on process.py
  179369. .UNINDENT
  179370. .IP \(bu 2
  179371. 411635b Merge pull request \fI\%#49997\fP from kyentei/doc\-fix\-mysql
  179372. .INDENT 2.0
  179373. .IP \(bu 2
  179374. 01059cc Fix documentation for mysql processlist
  179375. .UNINDENT
  179376. .UNINDENT
  179377. .UNINDENT
  179378. .IP \(bu 2
  179379. \fBPR\fP \fI\%#50060\fP: (\fI\%rallytime\fP) [2018.3] Fix some pylint issues that have popped up recently
  179380. @ \fI2018\-10\-15 20:35:22 UTC\fP
  179381. .INDENT 2.0
  179382. .IP \(bu 2
  179383. f1bcb1f Merge pull request \fI\%#50060\fP from rallytime/fix\-lint
  179384. .IP \(bu 2
  179385. a8f4f39 Merge branch \(aq2018.3\(aq into fix\-lint
  179386. .UNINDENT
  179387. .IP \(bu 2
  179388. \fBISSUE\fP \fI\%#49927\fP: (\fI\%thetaurean\fP) File Tree external pillar fails to render templates in python 3 (refs: \fI\%#49943\fP)
  179389. .IP \(bu 2
  179390. \fBPR\fP \fI\%#50052\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49943\fP to 2018.3
  179391. @ \fI2018\-10\-15 20:06:20 UTC\fP
  179392. .INDENT 2.0
  179393. .IP \(bu 2
  179394. \fBPR\fP \fI\%#49943\fP: (\fI\%thetaurean\fP) Coerce string when calling compile_template_str (refs: \fI\%#50052\fP)
  179395. .IP \(bu 2
  179396. b26b21c Merge pull request \fI\%#50052\fP from rallytime/bp\-49943
  179397. .IP \(bu 2
  179398. d336dec Handle non\-ASCII chars during template data decode
  179399. .IP \(bu 2
  179400. 435afb7 Adjusted import to expose stringutils namespace
  179401. .IP \(bu 2
  179402. 958c630 Coerce string when calling compile_template_str
  179403. .IP \(bu 2
  179404. e73f13d [2018.3] Fix some pylint issues that have popped up recently
  179405. .UNINDENT
  179406. .IP \(bu 2
  179407. \fBPR\fP \fI\%#49809\fP: (\fI\%Ch3LL\fP) Add additional asserts to help investigate test_win_pkg failure
  179408. @ \fI2018\-10\-13 18:00:09 UTC\fP
  179409. .INDENT 2.0
  179410. .IP \(bu 2
  179411. fef7669 Merge pull request \fI\%#49809\fP from Ch3LL/win_pkg_flaky
  179412. .IP \(bu 2
  179413. f795b60 Merge pull request \fI\%#7\fP from dwoz/win_pkg_flaky
  179414. .INDENT 2.0
  179415. .IP \(bu 2
  179416. beaab2a Fix win_pkg test
  179417. .UNINDENT
  179418. .IP \(bu 2
  179419. 75809b4 Merge pull request \fI\%#6\fP from dwoz/win_pkg_flaky
  179420. .INDENT 2.0
  179421. .IP \(bu 2
  179422. e5ea3f1 Try running fsync to avoid fs caching race condition
  179423. .UNINDENT
  179424. .IP \(bu 2
  179425. fd5e842 Merge pull request \fI\%#5\fP from dwoz/win_pkg_flaky
  179426. .INDENT 2.0
  179427. .IP \(bu 2
  179428. c386826 Log results of cache_dir for now
  179429. .UNINDENT
  179430. .IP \(bu 2
  179431. 2cd4058 Merge pull request \fI\%#4\fP from dwoz/win_pkg_flaky
  179432. .INDENT 2.0
  179433. .IP \(bu 2
  179434. 1005b91 Debug win_pkg
  179435. .UNINDENT
  179436. .IP \(bu 2
  179437. 9dce5cc Fix the assertion message order
  179438. .IP \(bu 2
  179439. 18e9a28 Add additional asserts to help investigate test_win_pkg failure
  179440. .UNINDENT
  179441. .IP \(bu 2
  179442. \fBPR\fP \fI\%#49983\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179443. @ \fI2018\-10\-11 13:27:34 UTC\fP
  179444. .INDENT 2.0
  179445. .IP \(bu 2
  179446. 8949873 Merge pull request \fI\%#49983\fP from rallytime/merge\-2018.3
  179447. .IP \(bu 2
  179448. f8e73e8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179449. .INDENT 2.0
  179450. .IP \(bu 2
  179451. a8a3811 Merge pull request \fI\%#49972\fP from rallytime/release\-notes\-2017.7.9
  179452. .INDENT 2.0
  179453. .IP \(bu 2
  179454. 6c00003 Add 2017.7.9 release notes file
  179455. .UNINDENT
  179456. .IP \(bu 2
  179457. 8de58d6 Merge pull request \fI\%#49974\fP from rallytime/bp\-49940
  179458. .INDENT 2.0
  179459. .IP \(bu 2
  179460. a70358a Update mod_watch() description for all states.
  179461. .IP \(bu 2
  179462. bf3d064 Another attempt to clean up service.mod_watch description.
  179463. .IP \(bu 2
  179464. 165b799 Clean up documentation/language in service state. (Fixes \fI\%#40819\fP)
  179465. .UNINDENT
  179466. .IP \(bu 2
  179467. d68e5d3 Merge pull request \fI\%#49978\fP from whytewolf/inotify_doc_change
  179468. .INDENT 2.0
  179469. .IP \(bu 2
  179470. b4d9523 using an exclude list that does not list every operating system leaves open the possability that it would work on those not listed
  179471. .UNINDENT
  179472. .IP \(bu 2
  179473. 89cbbb6 Merge pull request \fI\%#49934\fP from rallytime/fix\-49925
  179474. .INDENT 2.0
  179475. .IP \(bu 2
  179476. 216fd64 Remove event_publisher_pub_hwm and salt_event_pub_hwm from documentation
  179477. .UNINDENT
  179478. .UNINDENT
  179479. .UNINDENT
  179480. .IP \(bu 2
  179481. \fBPR\fP \fI\%#49979\fP: (\fI\%cachedout\fP) Update license date and include NOTICE
  179482. @ \fI2018\-10\-11 12:57:21 UTC\fP
  179483. .INDENT 2.0
  179484. .IP \(bu 2
  179485. c7d2482 Merge pull request \fI\%#49979\fP from cachedout/license_update
  179486. .IP \(bu 2
  179487. b4f148e Break out support and contributing docs into separate files
  179488. .IP \(bu 2
  179489. 1dd0e34 Update license date and include NOTICE
  179490. .UNINDENT
  179491. .IP \(bu 2
  179492. \fBPR\fP \fI\%#49973\fP: (\fI\%rallytime\fP) Add 2018.3.4 release notes file
  179493. @ \fI2018\-10\-10 17:46:04 UTC\fP
  179494. .INDENT 2.0
  179495. .IP \(bu 2
  179496. ef61fc6 Merge pull request \fI\%#49973\fP from rallytime/release\-notes\-2018.3.4
  179497. .IP \(bu 2
  179498. 32e7d90 Add 2018.3.4 release notes file
  179499. .UNINDENT
  179500. .IP \(bu 2
  179501. \fBPR\fP \fI\%#49975\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49958\fP to 2018.3
  179502. @ \fI2018\-10\-10 17:44:56 UTC\fP
  179503. .INDENT 2.0
  179504. .IP \(bu 2
  179505. \fBPR\fP \fI\%#49958\fP: (\fI\%garethgreenaway\fP) [fluorine] Fixes to mac_system.py (refs: \fI\%#49975\fP)
  179506. .IP \(bu 2
  179507. 7d8f10c Merge pull request \fI\%#49975\fP from rallytime/bp\-49958
  179508. .IP \(bu 2
  179509. a229a50 Swap the call for mac_utils.available_services to use __utils__ so mac_utils.available_services has access to __context__
  179510. .UNINDENT
  179511. .IP \(bu 2
  179512. \fBPR\fP \fI\%#49946\fP: (\fI\%isbm\fP) osversion/osversion_info/osmajorrelease grains fixes
  179513. @ \fI2018\-10\-10 14:01:05 UTC\fP
  179514. .INDENT 2.0
  179515. .IP \(bu 2
  179516. c912d3a Merge pull request \fI\%#49946\fP from isbm/isbm\-osversion_info\-fixes
  179517. .IP \(bu 2
  179518. a17ba35 Fix proper part name in the string\-bound CPE
  179519. .IP \(bu 2
  179520. 9d49607 Expand unit test to verify part name
  179521. .IP \(bu 2
  179522. a6b7d01 Remove linebreak
  179523. .IP \(bu 2
  179524. 5376886 Keep CPE_NAME only for opensuse series
  179525. .IP \(bu 2
  179526. 8af3904 Add part parsing
  179527. .IP \(bu 2
  179528. e202b41 Prevent possible crash if CPE_NAME is wrongly written in the distro
  179529. .IP \(bu 2
  179530. 712083d Add unit test for broken CPE_NAME
  179531. .IP \(bu 2
  179532. 1306ddb Add unit test for v2.3 of CPE format
  179533. .IP \(bu 2
  179534. 04b61d3 Add unit test for WFN format of CPE_NAME
  179535. .IP \(bu 2
  179536. 035690f Override VERSION_ID from os\-release, if CPE_NAME is given
  179537. .IP \(bu 2
  179538. 08e235b Remove unnecessary linebreak
  179539. .IP \(bu 2
  179540. 853e163 Add CPE_NAME parsing
  179541. .UNINDENT
  179542. .IP \(bu 2
  179543. \fBISSUE\fP \fI\%#48204\fP: (\fI\%zerthimon\fP) State mysql_user.present Exception with mysql 8.0.11 (refs: \fI\%#49918\fP)
  179544. .IP \(bu 2
  179545. \fBPR\fP \fI\%#49918\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixes to MySQL module
  179546. @ \fI2018\-10\-10 14:00:11 UTC\fP
  179547. .INDENT 2.0
  179548. .IP \(bu 2
  179549. 18fb5df Merge pull request \fI\%#49918\fP from garethgreenaway/48204_mysql_user_password_exception_part_deux
  179550. .IP \(bu 2
  179551. 92c0680 Merge branch \(aq2018.3\(aq into 48204_mysql_user_password_exception_part_deux
  179552. .IP \(bu 2
  179553. 71e53a3 Cleanup of debugging.
  179554. .IP \(bu 2
  179555. dd96c13 Fixing lint.
  179556. .IP \(bu 2
  179557. ac7da89 Tweaking a couple tests to account for new scenarios with later versions.
  179558. .IP \(bu 2
  179559. 4320c43 Removing __mysql_hash_password, no longer needed.
  179560. .IP \(bu 2
  179561. 0475acf Removing unnecessary empty line.
  179562. .IP \(bu 2
  179563. 9265195 Updating the mysql update to handle changes in version 8.0.11 where PASSWORD was removed. Updating unit tests.
  179564. .UNINDENT
  179565. .IP \(bu 2
  179566. \fBPR\fP \fI\%#49961\fP: (\fI\%dmurphy18\fP) Fix aix grains test for prtconf present
  179567. @ \fI2018\-10\-10 13:38:02 UTC\fP
  179568. .INDENT 2.0
  179569. .IP \(bu 2
  179570. 1c2e5be Merge pull request \fI\%#49961\fP from dmurphy18/fix_aix_grains
  179571. .IP \(bu 2
  179572. f38d543 Correct test for AIX grains prtconf
  179573. .UNINDENT
  179574. .IP \(bu 2
  179575. \fBISSUE\fP \fI\%#49205\fP: (\fI\%ereslibre\fP) Compound targeting includes unexpected targets in the result (refs: \fI\%#49897\fP, \fI\%#49907\fP)
  179576. .IP \(bu 2
  179577. \fBPR\fP \fI\%#49907\fP: (\fI\%brejoc\fP) 2018.3 fix for list compound targeting
  179578. @ \fI2018\-10\-10 13:33:40 UTC\fP
  179579. .INDENT 2.0
  179580. .IP \(bu 2
  179581. \fBPR\fP \fI\%#49897\fP: (\fI\%brejoc\fP) 2017.7 fix for list compound targeting (refs: \fI\%#49907\fP)
  179582. .IP \(bu 2
  179583. \fBPR\fP \fI\%#49435\fP: (\fI\%brejoc\fP) No longer passes missing in list compound engine (refs: \fI\%#49897\fP, \fI\%#49907\fP)
  179584. .IP \(bu 2
  179585. e427306 Merge pull request \fI\%#49907\fP from brejoc/2018.3\-fix\-for\-list\-compound\-targeting
  179586. .IP \(bu 2
  179587. 1bcadb9 Merge branch \(aq2018.3\(aq into 2018.3\-fix\-for\-list\-compound\-targeting
  179588. .IP \(bu 2
  179589. 649c46c Adds check for engine before adding the additional engine argument
  179590. .IP \(bu 2
  179591. 7d0b20c Minor fix for def test_batch_run_grains_targeting
  179592. .IP \(bu 2
  179593. 0d64716 Ignore missing minions only when excluding them with \(aqnot\(aq
  179594. .IP \(bu 2
  179595. 6a5f3cd No longer passes missing in list compound engine
  179596. .UNINDENT
  179597. .IP \(bu 2
  179598. \fBISSUE\fP \fI\%#48599\fP: (\fI\%angeloudy\fP) module ldap3 \(aqTypeError: (\(aqexpected a byte string in the list\(aq\(aq (refs: \fI\%#48666\fP)
  179599. .IP \(bu 2
  179600. \fBPR\fP \fI\%#49947\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48666\fP to 2018.3
  179601. @ \fI2018\-10\-09 17:48:20 UTC\fP
  179602. .INDENT 2.0
  179603. .IP \(bu 2
  179604. \fBPR\fP \fI\%#48666\fP: (\fI\%angeloudy\fP) values need to be bytes when writing back to ldap (refs: \fI\%#49947\fP)
  179605. .IP \(bu 2
  179606. 143c723 Merge pull request \fI\%#49947\fP from rallytime/bp\-48666
  179607. .IP \(bu 2
  179608. 5166917 Update ldap3.py
  179609. .IP \(bu 2
  179610. 05e55bd values need to be bytes when writing to ldap
  179611. .IP \(bu 2
  179612. 0d749e6 values need to be bytes when writing back to ldap
  179613. .UNINDENT
  179614. .IP \(bu 2
  179615. \fBPR\fP \fI\%#49948\fP: (\fI\%rallytime\fP) Skip pillar refresh test
  179616. @ \fI2018\-10\-09 15:20:52 UTC\fP
  179617. .INDENT 2.0
  179618. .IP \(bu 2
  179619. dbf994e Merge pull request \fI\%#49948\fP from rallytime/skip\-flaky\-test
  179620. .IP \(bu 2
  179621. df11c39 Skip pillar refresh test
  179622. .UNINDENT
  179623. .IP \(bu 2
  179624. \fBPR\fP \fI\%#49938\fP: (\fI\%s0undt3ch\fP) Handle missing \fIpkg_resources\fP package
  179625. @ \fI2018\-10\-09 13:41:09 UTC\fP
  179626. .INDENT 2.0
  179627. .IP \(bu 2
  179628. 614d172 Merge pull request \fI\%#49938\fP from s0undt3ch/2018.3
  179629. .IP \(bu 2
  179630. b1c2928 Handle missing \fIpkg_resources\fP package
  179631. .UNINDENT
  179632. .IP \(bu 2
  179633. \fBPR\fP \fI\%#49942\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179634. @ \fI2018\-10\-09 13:38:04 UTC\fP
  179635. .INDENT 2.0
  179636. .IP \(bu 2
  179637. bce12c3 Merge pull request \fI\%#49942\fP from rallytime/merge\-2018.3
  179638. .IP \(bu 2
  179639. 91534ee Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179640. .INDENT 2.0
  179641. .IP \(bu 2
  179642. 327796e Merge pull request \fI\%#49911\fP from dubb\-b/slack\-pr
  179643. .INDENT 2.0
  179644. .IP \(bu 2
  179645. 57e630c Adding failure messages for PR.
  179646. .UNINDENT
  179647. .IP \(bu 2
  179648. cf1df79 Merge pull request \fI\%#49900\fP from dwoz/presence_wart
  179649. .INDENT 2.0
  179650. .IP \(bu 2
  179651. 7bd34f6 Connect before processing presence
  179652. .UNINDENT
  179653. .IP \(bu 2
  179654. 8c4707d Merge pull request \fI\%#49899\fP from twangboy/fix_49892
  179655. .INDENT 2.0
  179656. .IP \(bu 2
  179657. a66765f Remove arrInstalled artifact
  179658. .UNINDENT
  179659. .UNINDENT
  179660. .UNINDENT
  179661. .IP \(bu 2
  179662. \fBPR\fP \fI\%#49930\fP: (\fI\%isbm\fP) Get os_family for RPM distros from the RPM macros
  179663. @ \fI2018\-10\-09 13:31:52 UTC\fP
  179664. .INDENT 2.0
  179665. .IP \(bu 2
  179666. a30c053 Merge pull request \fI\%#49930\fP from isbm/isbm\-osarch\-bugfix
  179667. .IP \(bu 2
  179668. f8a75f1 Fix imports
  179669. .IP \(bu 2
  179670. 70d3de0 Strip and stringify the return for the osarch
  179671. .IP \(bu 2
  179672. a248371 Get os_family for RPM distros from the RPM macros.
  179673. .UNINDENT
  179674. .IP \(bu 2
  179675. \fBPR\fP \fI\%#49868\fP: (\fI\%dwoz\fP) windows shell tests
  179676. @ \fI2018\-10\-08 17:32:20 UTC\fP
  179677. .INDENT 2.0
  179678. .IP \(bu 2
  179679. 99c5dba Merge pull request \fI\%#49868\fP from dwoz/shelltests
  179680. .IP \(bu 2
  179681. 9997f45 Merge branch \(aq2018.3\(aq into shelltests
  179682. .UNINDENT
  179683. .IP \(bu 2
  179684. \fBPR\fP \fI\%#49875\fP: (\fI\%dwoz\fP) Add spm tests to Windows suite
  179685. @ \fI2018\-10\-05 18:13:07 UTC\fP
  179686. .INDENT 2.0
  179687. .IP \(bu 2
  179688. eee82d3 Merge pull request \fI\%#49875\fP from dwoz/win_spm_tests
  179689. .IP \(bu 2
  179690. e76a751 Use os.path.split for more consistancy
  179691. .IP \(bu 2
  179692. bc54d15 Fix wart in spm on windows
  179693. .IP \(bu 2
  179694. df5e271 Add spm tests for windows
  179695. .UNINDENT
  179696. .IP \(bu 2
  179697. \fBPR\fP \fI\%#49872\fP: (\fI\%twangboy\fP) Fix issues with windows file permissions when using reset=True
  179698. @ \fI2018\-10\-05 13:52:07 UTC\fP
  179699. .INDENT 2.0
  179700. .IP \(bu 2
  179701. c0e2404 Merge pull request \fI\%#49872\fP from twangboy/fix_49861
  179702. .IP \(bu 2
  179703. 01bd847 Gate the win_function a little better
  179704. .IP \(bu 2
  179705. bcdb366 Skip on non\-windows systems
  179706. .IP \(bu 2
  179707. 02f6335 Fix some lint
  179708. .IP \(bu 2
  179709. 8ecbe0e Add tests for check_perms
  179710. .IP \(bu 2
  179711. d6e7512 Fix issues with file permissions
  179712. .UNINDENT
  179713. .IP \(bu 2
  179714. \fBISSUE\fP \fI\%#49582\fP: (\fI\%UtahDave\fP) lgpo doesn\(aqt seem to allow for unsetting a gpo setting (refs: \fI\%#49902\fP)
  179715. .IP \(bu 2
  179716. \fBISSUE\fP \fI\%#48661\fP: (\fI\%mike2523\fP) win_lgpo: User Rights Assignment policies (refs: \fI\%#49902\fP)
  179717. .IP \(bu 2
  179718. \fBPR\fP \fI\%#49902\fP: (\fI\%lomeroe\fP) lgpo better comments on user right assignments
  179719. @ \fI2018\-10\-05 13:41:16 UTC\fP
  179720. .INDENT 2.0
  179721. .IP \(bu 2
  179722. d3a909f Merge pull request \fI\%#49902\fP from lomeroe/issue48661_2018.3
  179723. .IP \(bu 2
  179724. 760d8f4 Merge branch \(aq2018.3\(aq into issue48661_2018.3
  179725. .IP \(bu 2
  179726. f72ca81 add comments on user right assignment policies when they are already set and note if cumulative_rights_assignment is True that the particular user is already granted the right
  179727. .INDENT 2.0
  179728. .INDENT 3.5
  179729. .INDENT 0.0
  179730. .IP \(bu 2
  179731. 75dd5ab Merge branch \(aq2018.3\(aq into shelltests
  179732. .UNINDENT
  179733. .UNINDENT
  179734. .UNINDENT
  179735. .UNINDENT
  179736. .IP \(bu 2
  179737. \fBPR\fP \fI\%#49896\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179738. @ \fI2018\-10\-04 21:00:24 UTC\fP
  179739. .INDENT 2.0
  179740. .IP \(bu 2
  179741. 4eb43af Merge pull request \fI\%#49896\fP from rallytime/merge\-2018.3
  179742. .IP \(bu 2
  179743. 41c8b31 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179744. .IP \(bu 2
  179745. b959033 Merge pull request \fI\%#49739\fP from twangboy/fix_49660
  179746. .INDENT 2.0
  179747. .IP \(bu 2
  179748. f3400ad Merge branch \(aq2017.7\(aq into fix_49660
  179749. .IP \(bu 2
  179750. 0a4f5fc Merge branch \(aq2017.7\(aq into fix_49660
  179751. .IP \(bu 2
  179752. 1f9bbc8 Populate changes dictionary
  179753. .UNINDENT
  179754. .IP \(bu 2
  179755. 71669bd Merge pull request \fI\%#49885\fP from dwoz/gemfile
  179756. .INDENT 2.0
  179757. .IP \(bu 2
  179758. 791e3ff Use dwoz/winrm\-fs for chunked downloads
  179759. .IP \(bu 2
  179760. f3999e1 Move vagrant to its own group
  179761. .UNINDENT
  179762. .IP \(bu 2
  179763. 0662e37 Merge pull request \fI\%#49870\fP from KaiSforza/ci_actually_fail
  179764. .INDENT 2.0
  179765. .IP \(bu 2
  179766. 9ef9206 Actually catch the exception when we fail
  179767. .INDENT 2.0
  179768. .INDENT 3.5
  179769. .INDENT 0.0
  179770. .IP \(bu 2
  179771. 19072f0 Use os.path.split for more consistancy
  179772. .IP \(bu 2
  179773. 6c22459 Merge remote\-tracking branch \(aqorigin/shelltests\(aq into shelltests
  179774. .INDENT 2.0
  179775. .IP \(bu 2
  179776. 43b292f Merge branch \(aq2018.3\(aq into shelltests
  179777. .IP \(bu 2
  179778. 876c040 Fix wart in test_cp module
  179779. .IP \(bu 2
  179780. 9e6ff11 Add syndic tests to whitelist.txt for Windows
  179781. .IP \(bu 2
  179782. 9cab293 Fix wart in spm on windows
  179783. .IP \(bu 2
  179784. 58e9d1b Add spm tests to whitelist.txt for Windows
  179785. .IP \(bu 2
  179786. 7393610 Add more shell integration tests to whitelist
  179787. .IP \(bu 2
  179788. ce85d60 Add shell.test_key to whitelist and fix wart
  179789. .IP \(bu 2
  179790. 6fbadd7 Skip tests not valid on windows
  179791. .IP \(bu 2
  179792. 9debf29 Add shell cp tests and fix them
  179793. .UNINDENT
  179794. .IP \(bu 2
  179795. 8bfa634 Fix warts in integration.shell.test_matcher
  179796. .IP \(bu 2
  179797. 45d2142 Fix wart in test_cp module
  179798. .IP \(bu 2
  179799. 0e4fbc5 Add syndic tests to whitelist.txt for Windows
  179800. .IP \(bu 2
  179801. f72ad01 Fix wart in spm on windows
  179802. .IP \(bu 2
  179803. 4141cc8 Add spm tests to whitelist.txt for Windows
  179804. .IP \(bu 2
  179805. 02ad722 Add more shell integration tests to whitelist
  179806. .IP \(bu 2
  179807. 48275c0 Add shell.test_key to whitelist and fix wart
  179808. .IP \(bu 2
  179809. e5edff4 Skip tests not valid on windows
  179810. .IP \(bu 2
  179811. a389729 Add shell cp tests and fix them
  179812. .UNINDENT
  179813. .UNINDENT
  179814. .UNINDENT
  179815. .UNINDENT
  179816. .UNINDENT
  179817. .IP \(bu 2
  179818. \fBISSUE\fP \fI\%#49744\fP: (\fI\%MTecknology\fP) Group state cannot force empty group membership (refs: \fI\%#49745\fP)
  179819. .IP \(bu 2
  179820. \fBPR\fP \fI\%#49745\fP: (\fI\%MTecknology\fP) Remove all users from group when members list is empty.
  179821. @ \fI2018\-10\-03 13:48:40 UTC\fP
  179822. .INDENT 2.0
  179823. .IP \(bu 2
  179824. 85478cd Merge pull request \fI\%#49745\fP from MTecknology/fix\-49744
  179825. .IP \(bu 2
  179826. 61afb5d Merge branch \(aq2018.3\(aq into fix\-49744
  179827. .IP \(bu 2
  179828. 269bde2 Merge branch \(aq2018.3\(aq into fix\-49744
  179829. .IP \(bu 2
  179830. 0b5d916 Modify if structure, as requested.
  179831. .IP \(bu 2
  179832. f57ce67 Remove all users from group when members list is empty. (Fixes \fI\%#49744\fP)
  179833. .UNINDENT
  179834. .IP \(bu 2
  179835. \fBPR\fP \fI\%#49867\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  179836. @ \fI2018\-10\-03 13:23:35 UTC\fP
  179837. .INDENT 2.0
  179838. .IP \(bu 2
  179839. 05cd56b Merge pull request \fI\%#49867\fP from rallytime/merge\-2018.3
  179840. .IP \(bu 2
  179841. b53c3e6 Update old utils paths to use new utils paths
  179842. .IP \(bu 2
  179843. a65c60d Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  179844. .INDENT 2.0
  179845. .IP \(bu 2
  179846. 7fa2043 Merge pull request \fI\%#49858\fP from Paulo\-Nunes/fix\-requisite\-doc
  179847. .INDENT 2.0
  179848. .IP \(bu 2
  179849. fb6f818 Edit requisite documentation
  179850. .UNINDENT
  179851. .IP \(bu 2
  179852. 0587fbc Merge pull request \fI\%#49828\fP from dwoz/testslogencoding
  179853. .INDENT 2.0
  179854. .IP \(bu 2
  179855. 2b323df Merge branch \(aq2017.7\(aq into testslogencoding
  179856. .IP \(bu 2
  179857. 7ce1b64 Use utf\-8 encoding for salt\-runtests.log
  179858. .UNINDENT
  179859. .IP \(bu 2
  179860. 15ccffd Merge pull request \fI\%#49848\fP from terminalmage/fix\-version\-rst\-2017.7
  179861. .INDENT 2.0
  179862. .IP \(bu 2
  179863. af2dddb Fix badly formatted versionadded directive
  179864. .UNINDENT
  179865. .IP \(bu 2
  179866. 297031b Merge pull request \fI\%#49777\fP from terminalmage/issue49738
  179867. .INDENT 2.0
  179868. .IP \(bu 2
  179869. 8a9945e Update test docstring to reflect switch to using SHA1
  179870. .IP \(bu 2
  179871. 7ddfd72 Switch from base64 encoding to sha1 digest for unique cache filename
  179872. .IP \(bu 2
  179873. 0e26dc6 Explicitly import salt.utils.hashutils
  179874. .IP \(bu 2
  179875. dca90d7 Skip parallel states test on Windows until we can get it to work
  179876. .IP \(bu 2
  179877. 5a11067 Add additional info to the assert to aid in troubleshooting
  179878. .IP \(bu 2
  179879. cb19086 Remove/replace unnecessary setUp/tearDown
  179880. .IP \(bu 2
  179881. b3e9678 Fix parallel states with long ID dec or name
  179882. .UNINDENT
  179883. .IP \(bu 2
  179884. 98c9372 Merge pull request \fI\%#49763\fP from twangboy/fix_49730
  179885. .INDENT 2.0
  179886. .IP \(bu 2
  179887. 99bc8f1 Merge branch \(aq2017.7\(aq into fix_49730
  179888. .IP \(bu 2
  179889. 7a9278b Fix broken tests, add new tests
  179890. .IP \(bu 2
  179891. 2cd1509 Merge branch \(aq2017.7\(aq into fix_49730
  179892. .IP \(bu 2
  179893. defba1c Merge branch \(aq2017.7\(aq into fix_49730
  179894. .IP \(bu 2
  179895. af1ed1c Add/fix tests
  179896. .IP \(bu 2
  179897. 5005a4d Only clear dns entries if you pass []
  179898. .IP \(bu 2
  179899. 048561e Add ability to clear DNS entries on static DNS
  179900. .UNINDENT
  179901. .UNINDENT
  179902. .UNINDENT
  179903. .IP \(bu 2
  179904. \fBPR\fP \fI\%#49876\fP: (\fI\%KaiSforza\fP) Actually catch the exception when we fail
  179905. @ \fI2018\-10\-03 12:26:58 UTC\fP
  179906. .INDENT 2.0
  179907. .IP \(bu 2
  179908. 42b540b Merge pull request \fI\%#49876\fP from KaiSforza/ci_actually_fail_2018
  179909. .IP \(bu 2
  179910. c88a81d Actually catch the exception when we fail
  179911. .UNINDENT
  179912. .IP \(bu 2
  179913. \fBPR\fP \fI\%#49852\fP: (\fI\%terminalmage\fP) Rename logstash engine filename to make it work with the loader
  179914. @ \fI2018\-10\-02 17:42:10 UTC\fP
  179915. .INDENT 2.0
  179916. .IP \(bu 2
  179917. 1c8def9 Merge pull request \fI\%#49852\fP from terminalmage/issue49627
  179918. .IP \(bu 2
  179919. 559cf1b Rename logstash engine filename to make it work with the loader
  179920. .UNINDENT
  179921. .IP \(bu 2
  179922. \fBPR\fP \fI\%#49850\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49798\fP to 2018.3
  179923. @ \fI2018\-10\-02 17:40:29 UTC\fP
  179924. .INDENT 2.0
  179925. .IP \(bu 2
  179926. \fBPR\fP \fI\%#49798\fP: (\fI\%mattp\-\fP) saltnado: teach runner about full_return (refs: \fI\%#49850\fP)
  179927. .IP \(bu 2
  179928. 675df25 Merge pull request \fI\%#49850\fP from rallytime/bp\-49798
  179929. .IP \(bu 2
  179930. 4b6dcd7 saltnado: teach runner about full_return
  179931. .UNINDENT
  179932. .IP \(bu 2
  179933. \fBISSUE\fP \fI\%#49204\fP: (\fI\%mchugh19\fP) file.directory state fails if directory contains an invalid symlink (refs: \fI\%#49209\fP, \fI\%#49827\fP)
  179934. .IP \(bu 2
  179935. \fBPR\fP \fI\%#49846\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49650\fP and \fI\%#49827\fP to 2018.3
  179936. @ \fI2018\-10\-01 20:05:24 UTC\fP
  179937. .INDENT 2.0
  179938. .IP \(bu 2
  179939. \fBPR\fP \fI\%#49827\fP: (\fI\%dgmorrisjr\fP) fixing mis\-spelling of lattrs in file.py, referncing \fI\%#49204\fP (refs: \fI\%#49846\fP)
  179940. .IP \(bu 2
  179941. \fBPR\fP \fI\%#49650\fP: (\fI\%Yxnt\fP) fix aliyun cloud typeerror (refs: \fI\%#49846\fP)
  179942. .IP \(bu 2
  179943. 93d064a Merge pull request \fI\%#49846\fP from rallytime/bp\-49650
  179944. .IP \(bu 2
  179945. fb7fed7 referncing \fI\%#49204\fP, fixing mis\-spelling of lattrs on line 4514 per request from @gtmanfred
  179946. .IP \(bu 2
  179947. ec9fa92 use stringutils instead of hard code
  179948. .IP \(bu 2
  179949. a307ae0 fix aliyun cloud typeerror
  179950. .UNINDENT
  179951. .IP \(bu 2
  179952. \fBISSUE\fP \fI\%#49520\fP: (\fI\%doesitblend\fP) Multi\-master DNS Issue \- minion connect fail (refs: \fI\%#49764\fP)
  179953. .IP \(bu 2
  179954. \fBPR\fP \fI\%#49764\fP: (\fI\%garethgreenaway\fP) [2018.3] Adding retry_dns_count to minion
  179955. @ \fI2018\-10\-01 14:20:03 UTC\fP
  179956. .INDENT 2.0
  179957. .IP \(bu 2
  179958. ec97806 Merge pull request \fI\%#49764\fP from garethgreenaway/49520_multimaster_dns_issue_fix
  179959. .IP \(bu 2
  179960. 30ccc5e Merge branch \(aq2018.3\(aq into 49520_multimaster_dns_issue_fix
  179961. .IP \(bu 2
  179962. 741928b Fixes per request from @rallytime.
  179963. .IP \(bu 2
  179964. 04c5983 Moving the check for an empty self.minions into a io_loop.call_later call.
  179965. .IP \(bu 2
  179966. 44ee2ec Updating default for retry_dns_count
  179967. .IP \(bu 2
  179968. 75f64a6 Removing unneccesary code.
  179969. .IP \(bu 2
  179970. e66dc18 Updating the resolve_dns function in minion.py to include a new minion configuration option which will control how many attempts will be made when the master hostname is unable to be resolved before giving up.
  179971. .UNINDENT
  179972. .IP \(bu 2
  179973. \fBPR\fP \fI\%#49847\fP: (\fI\%terminalmage\fP) Fix badly formatted versionadded directive (2018.3 branch)
  179974. @ \fI2018\-10\-01 14:04:27 UTC\fP
  179975. .INDENT 2.0
  179976. .IP \(bu 2
  179977. abdab68 Merge pull request \fI\%#49847\fP from terminalmage/fix\-version\-rst\-2018.3
  179978. .IP \(bu 2
  179979. a127548 Fix badly formatted versionadded directive
  179980. .UNINDENT
  179981. .IP \(bu 2
  179982. \fBISSUE\fP \fI\%#49043\fP: (\fI\%awerner\fP) Unicode broken with file.blockreplace on Python2 (refs: \fI\%#49782\fP)
  179983. .IP \(bu 2
  179984. \fBPR\fP \fI\%#49782\fP: (\fI\%dwoz\fP) Fix issue 49043
  179985. @ \fI2018\-10\-01 13:43:02 UTC\fP
  179986. .INDENT 2.0
  179987. .IP \(bu 2
  179988. aca87ab Merge pull request \fI\%#49782\fP from dwoz/issue\-49043
  179989. .IP \(bu 2
  179990. b7d904f Merge branch \(aq2018.3\(aq into issue\-49043
  179991. .IP \(bu 2
  179992. ed35633 Revert diff newline change
  179993. .IP \(bu 2
  179994. 2a901e9 Fix issue 49043
  179995. .UNINDENT
  179996. .IP \(bu 2
  179997. \fBISSUE\fP \fI\%#49671\fP: (\fI\%mchugh19\fP) Vault execution module broken in pillar lookups (refs: \fI\%#49820\fP)
  179998. .IP \(bu 2
  179999. \fBPR\fP \fI\%#49820\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing vault when being used from Pillar
  180000. @ \fI2018\-10\-01 13:40:25 UTC\fP
  180001. .INDENT 2.0
  180002. .IP \(bu 2
  180003. 1a41d1b Merge pull request \fI\%#49820\fP from garethgreenaway/49671_fixing_vault_pillar
  180004. .IP \(bu 2
  180005. a57872f Merge branch \(aq2018.3\(aq into 49671_fixing_vault_pillar
  180006. .IP \(bu 2
  180007. 5f13219 Merge branch \(aq2018.3\(aq into 49671_fixing_vault_pillar
  180008. .IP \(bu 2
  180009. b0ba2ec Fixing the scenario when vault values are used in Pillar, but due to a previous change the minion was not being granted token based access.
  180010. .UNINDENT
  180011. .IP \(bu 2
  180012. \fBPR\fP \fI\%#49842\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180013. @ \fI2018\-10\-01 13:21:42 UTC\fP
  180014. .INDENT 2.0
  180015. .IP \(bu 2
  180016. bf9c175 Merge pull request \fI\%#49842\fP from rallytime/merge\-2018.3
  180017. .IP \(bu 2
  180018. 81b0aa7 Add "in progress" notation back to the 2018.3.3 release notes
  180019. .IP \(bu 2
  180020. 0e76103 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180021. .UNINDENT
  180022. .IP \(bu 2
  180023. \fBPR\fP \fI\%#49839\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180024. @ \fI2018\-09\-30 16:32:53 UTC\fP
  180025. .INDENT 2.0
  180026. .IP \(bu 2
  180027. e6382cb Merge pull request \fI\%#49839\fP from rallytime/merge\-2018.3
  180028. .IP \(bu 2
  180029. 179e4b1 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180030. .IP \(bu 2
  180031. fd46d35 Merge pull request \fI\%#49823\fP from dubb\-b/timeout_addition
  180032. .INDENT 2.0
  180033. .IP \(bu 2
  180034. b25ac9f Adding some changes for the status
  180035. .IP \(bu 2
  180036. f6d9679 Updating syntax to be better and with new lines
  180037. .IP \(bu 2
  180038. 855ffe6 Adding timeout to all pipelines so that the build aborts
  180039. .UNINDENT
  180040. .UNINDENT
  180041. .IP \(bu 2
  180042. \fBPR\fP \fI\%#49815\fP: (\fI\%isbm\fP) Bugfix/rework: IPv6 scope errors (bp)
  180043. @ \fI2018\-09\-28 19:44:59 UTC\fP
  180044. .INDENT 2.0
  180045. .IP \(bu 2
  180046. fccc08c Merge pull request \fI\%#49815\fP from isbm/isbm\-ipv6\-scope\-errors\-2018.3
  180047. .IP \(bu 2
  180048. c14f26f Reverse skipping tests: if no ipaddress
  180049. .IP \(bu 2
  180050. bb37ba0 Add IPv6 scoped test
  180051. .IP \(bu 2
  180052. facb34a Add additional check
  180053. .IP \(bu 2
  180054. 615b09a Lintfix: W0611
  180055. .IP \(bu 2
  180056. 3ce265e Remove unnecessary manipulation with IPv6 scope outside of the IPv6Address object instance
  180057. .IP \(bu 2
  180058. c314e1c Revert method remapping with pylint updates
  180059. .IP \(bu 2
  180060. 0a86112 Lintfix refactor: remove duplicate returns as not needed
  180061. .IP \(bu 2
  180062. 5932a0d Lintfix
  180063. .IP \(bu 2
  180064. f52ea0b Add Py3.4 old implementation\(aqs fix
  180065. .IP \(bu 2
  180066. 1c02a31 Fix wrong type swap
  180067. .IP \(bu 2
  180068. 54233ca Do not use introspection for method swap
  180069. .IP \(bu 2
  180070. 12038ea Simplify checking clause
  180071. .IP \(bu 2
  180072. 7f2208b Fix py2 case where the same class cannot initialise itself on Python2 via super.
  180073. .IP \(bu 2
  180074. cefb16b Add extra detection for hexadecimal packed bytes on Python2. This cannot be detected with type comparison, because bytes == str and at the same time bytes != str if compatibility is not around
  180075. .IP \(bu 2
  180076. 379ead4 Lintfix: mute not called constructors
  180077. .IP \(bu 2
  180078. 66ec29c Add scope on str
  180079. .IP \(bu 2
  180080. f5644bf Add logging to the ip_interface
  180081. .IP \(bu 2
  180082. 8bb5438 Add real exception message
  180083. .IP \(bu 2
  180084. 693e4d4 Move docstrings to their native places
  180085. .IP \(bu 2
  180086. 77f1c44 Remove duplicated code
  180087. .IP \(bu 2
  180088. 40d0e6b Use ternary operator instead
  180089. .IP \(bu 2
  180090. d05999e Remove multiple returns
  180091. .IP \(bu 2
  180092. 3fde850 Remove unnecessary operator
  180093. .IP \(bu 2
  180094. deb0b4e Remove duplicated code
  180095. .IP \(bu 2
  180096. 8e62633 Remove unnecessary variable for import detection
  180097. .IP \(bu 2
  180098. 7a6ea3b Remove multiple returns and add check for address syntax
  180099. .IP \(bu 2
  180100. b40e1e1 Add debugging to the ip_address method (py2 and py3)
  180101. .IP \(bu 2
  180102. cab5f62 Add logging
  180103. .IP \(bu 2
  180104. eeab9f2 Isolate Py2 and Py3 mode
  180105. .IP \(bu 2
  180106. 49b32b7 Check version via object
  180107. .IP \(bu 2
  180108. 1ae94f1 Override standard IPv6Address class
  180109. .IP \(bu 2
  180110. 5e970ea Fix unicode imports in compat
  180111. .IP \(bu 2
  180112. bbeec4d Fix ipaddress import
  180113. .IP \(bu 2
  180114. 561c99e Remove unused import
  180115. .IP \(bu 2
  180116. 0498e94 Fix ipaddress imports
  180117. .IP \(bu 2
  180118. b4f1a72 Add missing docstrings
  180119. .UNINDENT
  180120. .IP \(bu 2
  180121. \fBPR\fP \fI\%#49784\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180122. @ \fI2018\-09\-28 17:29:30 UTC\fP
  180123. .INDENT 2.0
  180124. .IP \(bu 2
  180125. 804d52c Merge pull request \fI\%#49784\fP from rallytime/merge\-2018.3
  180126. .IP \(bu 2
  180127. c6b9d18 Merge branch \(aq2018.3\(aq into merge\-2018.3
  180128. .IP \(bu 2
  180129. 26461f9 Add helper import comments
  180130. .IP \(bu 2
  180131. 22f055c Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180132. .INDENT 2.0
  180133. .IP \(bu 2
  180134. d2a193b Merge pull request \fI\%#49792\fP from KaiSforza/fixscriptedpipes
  180135. .INDENT 2.0
  180136. .IP \(bu 2
  180137. 5b16996 Fix the new pipelines
  180138. .UNINDENT
  180139. .UNINDENT
  180140. .IP \(bu 2
  180141. dd27d80 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180142. .INDENT 2.0
  180143. .IP \(bu 2
  180144. 8a71a43 Merge pull request \fI\%#49774\fP from KaiSforza/declarativeToScripted
  180145. .INDENT 2.0
  180146. .IP \(bu 2
  180147. cae88f2 Move all pipelines to be fully scripted
  180148. .UNINDENT
  180149. .IP \(bu 2
  180150. 8fe8aac Merge pull request \fI\%#49736\fP from mattLLVW/fix\-file\-touch
  180151. .INDENT 2.0
  180152. .IP \(bu 2
  180153. 1da9f34 Fix test opts in append, prepend states/file.py
  180154. .UNINDENT
  180155. .UNINDENT
  180156. .UNINDENT
  180157. .IP \(bu 2
  180158. \fBPR\fP \fI\%#49790\fP: (\fI\%weswhet\fP) fixing an issue where sentry logger would fail to get tags from grain…
  180159. @ \fI2018\-09\-28 13:39:04 UTC\fP
  180160. .INDENT 2.0
  180161. .IP \(bu 2
  180162. d191b08 Merge pull request \fI\%#49790\fP from weswhet/fixing\-sentry\-logger\-2018.3
  180163. .IP \(bu 2
  180164. 201697d fixing an issue where sentry logger would fail to get tags from grains and some other lint fixes for this file
  180165. .UNINDENT
  180166. .IP \(bu 2
  180167. \fBISSUE\fP \fI\%#49626\fP: (\fI\%PabloLemos\fP) target grains ip_interface no return received (refs: \fI\%#49791\fP)
  180168. .IP \(bu 2
  180169. \fBPR\fP \fI\%#49791\fP: (\fI\%terminalmage\fP) Fix 3 bugs in subdict matching
  180170. @ \fI2018\-09\-28 13:38:34 UTC\fP
  180171. .INDENT 2.0
  180172. .IP \(bu 2
  180173. 4d9fc7c Merge pull request \fI\%#49791\fP from terminalmage/issue49626
  180174. .IP \(bu 2
  180175. 6795472 Add clarifying comment
  180176. .IP \(bu 2
  180177. ac0f800 Fix 3 bugs in subdict matching
  180178. .UNINDENT
  180179. .IP \(bu 2
  180180. \fBPR\fP \fI\%#49806\fP: (\fI\%isbm\fP) Bugfix: zypper ZYPPER_EXIT_NO_REPOS exit code
  180181. @ \fI2018\-09\-28 13:20:36 UTC\fP
  180182. .INDENT 2.0
  180183. .IP \(bu 2
  180184. 52b0472 Merge pull request \fI\%#49806\fP from isbm/isbm\-zypper\-errcode\-6\-bp
  180185. .IP \(bu 2
  180186. 756ef77 Update error list for zypper
  180187. .IP \(bu 2
  180188. 5b02548 Add error logging
  180189. .UNINDENT
  180190. .IP \(bu 2
  180191. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#1121\fP: (\fI\%rallytime\fP) [2018.3] 4 related tests failing on 2018.3 Python 3 (refs: \fI\%#49795\fP)
  180192. .IP \(bu 2
  180193. \fBPR\fP \fI\%#49795\fP: (\fI\%gtmanfred\fP) fix test_managed_file_with_grains_data
  180194. @ \fI2018\-09\-26 22:48:36 UTC\fP
  180195. .INDENT 2.0
  180196. .IP \(bu 2
  180197. fee6701 Merge pull request \fI\%#49795\fP from gtmanfred/tests
  180198. .IP \(bu 2
  180199. cf5c179 fix test_managed_file_with_grains_data
  180200. .UNINDENT
  180201. .IP \(bu 2
  180202. \fBPR\fP \fI\%#49786\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49759\fP to 2018.3
  180203. @ \fI2018\-09\-26 18:22:01 UTC\fP
  180204. .INDENT 2.0
  180205. .IP \(bu 2
  180206. \fBPR\fP \fI\%#49759\fP: (\fI\%mattp\-\fP) runners.state.orch: generate jid if missing (refs: \fI\%#49786\fP)
  180207. .IP \(bu 2
  180208. 04e5869 Merge pull request \fI\%#49786\fP from rallytime/bp\-49759
  180209. .IP \(bu 2
  180210. df3791c state.orch: generate jid if missing
  180211. .UNINDENT
  180212. .IP \(bu 2
  180213. \fBPR\fP \fI\%#49770\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180214. @ \fI2018\-09\-25 19:03:25 UTC\fP
  180215. .INDENT 2.0
  180216. .IP \(bu 2
  180217. 4138683 Merge pull request \fI\%#49770\fP from rallytime/merge\-2018.3
  180218. .IP \(bu 2
  180219. d9ed59b Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180220. .IP \(bu 2
  180221. f664515 Merge pull request \fI\%#49760\fP from Ch3LL/raid_docs
  180222. .INDENT 2.0
  180223. .IP \(bu 2
  180224. 0eb90c1 Add mdadm as dependency in mdadm state docs
  180225. .UNINDENT
  180226. .IP \(bu 2
  180227. d5a75bf Merge pull request \fI\%#49749\fP from erwindon/docufix
  180228. .INDENT 2.0
  180229. .IP \(bu 2
  180230. baee678 fixed link in documentation
  180231. .UNINDENT
  180232. .IP \(bu 2
  180233. 5ef2def Merge pull request \fI\%#49703\fP from twangboy/fix_49675_2017.7
  180234. .INDENT 2.0
  180235. .IP \(bu 2
  180236. 9127222 Merge branch \(aq2017.7\(aq into fix_49675_2017.7
  180237. .IP \(bu 2
  180238. 4f54422 Fix reboot needed detection
  180239. .UNINDENT
  180240. .IP \(bu 2
  180241. b5726d2 Merge pull request \fI\%#49718\fP from vutny/doc/2017.7/add\-missing\-mock\-kwarg
  180242. .INDENT 2.0
  180243. .IP \(bu 2
  180244. 3e19176 [DOC] Add missing \fImock\fP argument for \fIstate.apply\fP
  180245. .UNINDENT
  180246. .UNINDENT
  180247. .IP \(bu 2
  180248. \fBPR\fP \fI\%#49757\fP: (\fI\%bbinet\fP) Fix influxdb_user state when test=True
  180249. @ \fI2018\-09\-24 19:14:22 UTC\fP
  180250. .INDENT 2.0
  180251. .IP \(bu 2
  180252. db6f68a Merge pull request \fI\%#49757\fP from bbinet/fix\-influxdb_user\-test
  180253. .IP \(bu 2
  180254. 0d9ef4b Fix influxdb_user state when test=True
  180255. .UNINDENT
  180256. .IP \(bu 2
  180257. \fBPR\fP \fI\%#49679\fP: (\fI\%dwoz\fP) Add more tests to whitelist
  180258. @ \fI2018\-09\-22 17:46:50 UTC\fP
  180259. .INDENT 2.0
  180260. .IP \(bu 2
  180261. ec2386e Merge pull request \fI\%#49679\fP from dwoz/whitelist
  180262. .IP \(bu 2
  180263. 0a3d95f Fix linter issues
  180264. .IP \(bu 2
  180265. 4c457c9 Close handles only if they exist
  180266. .IP \(bu 2
  180267. a44b37a Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into whitelist
  180268. .UNINDENT
  180269. .IP \(bu 2
  180270. \fBPR\fP \fI\%#49722\fP: (\fI\%meaksh\fP) Fixes some issues on the Zypper module
  180271. @ \fI2018\-09\-21 13:38:03 UTC\fP
  180272. .INDENT 2.0
  180273. .IP \(bu 2
  180274. 6a3e127 Merge pull request \fI\%#49722\fP from meaksh/2018.3\-fix\-zypper\-issue\-on\-python3
  180275. .IP \(bu 2
  180276. bb9cb6e Fix wrong queryformat for zypper list_provides
  180277. .IP \(bu 2
  180278. d40c034 Fix index error when running on Python 3
  180279. .UNINDENT
  180280. .IP \(bu 2
  180281. \fBPR\fP \fI\%#49720\fP: (\fI\%cstarke\fP) Seperate prlctl and prlsrvctl checks into each requiring function
  180282. @ \fI2018\-09\-21 13:32:46 UTC\fP
  180283. .INDENT 2.0
  180284. .IP \(bu 2
  180285. e7bbb83 Merge pull request \fI\%#49720\fP from cstarke/2018.3
  180286. .IP \(bu 2
  180287. b0be6aa Add documentation for prlctl and prlsrvctl binary requirement
  180288. .IP \(bu 2
  180289. 4f8476b Fix tests; add test for CommandExecutionError
  180290. .IP \(bu 2
  180291. 3c96dd2 Fix tests for parallels module
  180292. .IP \(bu 2
  180293. 9034c4e Add import for CommandExecutionError
  180294. .IP \(bu 2
  180295. 752b6f8 Seperate prlctl and prlsrvctl checks into each requiring function
  180296. .UNINDENT
  180297. .IP \(bu 2
  180298. \fBPR\fP \fI\%#49615\fP: (\fI\%terminalmage\fP) ping_interval: use service.restart instead of signaling
  180299. @ \fI2018\-09\-21 13:26:41 UTC\fP
  180300. .INDENT 2.0
  180301. .IP \(bu 2
  180302. f745e43 Merge pull request \fI\%#49615\fP from terminalmage/ping\-interval
  180303. .IP \(bu 2
  180304. b49b018 Move service name logic to a separate function
  180305. .IP \(bu 2
  180306. 2fddba3 ping_interval: use service.restart instead of signaling
  180307. .UNINDENT
  180308. .IP \(bu 2
  180309. \fBPR\fP \fI\%#49731\fP: (\fI\%terminalmage\fP) Add warning about using jinja filters to dump dicts in Jinja
  180310. @ \fI2018\-09\-21 13:16:04 UTC\fP
  180311. .INDENT 2.0
  180312. .IP \(bu 2
  180313. 0a530d2 Merge pull request \fI\%#49731\fP from terminalmage/jinja\-filter\-warning
  180314. .IP \(bu 2
  180315. 8393560 Add warning about using jinja filters to dump dicts in Jinja
  180316. .UNINDENT
  180317. .IP \(bu 2
  180318. \fBPR\fP \fI\%#49696\fP: (\fI\%jgleissner\fP) loosen azure sdk dependencies in azurearm cloud driver
  180319. @ \fI2018\-09\-20 19:17:15 UTC\fP
  180320. .INDENT 2.0
  180321. .IP \(bu 2
  180322. 91acb82 Merge pull request \fI\%#49696\fP from jgleissner/2018.3\-azurearm\-deps
  180323. .IP \(bu 2
  180324. 467e017 remove unused import from azurearm driver
  180325. .IP \(bu 2
  180326. bad28b6 loosen azure sdk dependencies in azurearm cloud driver
  180327. .UNINDENT
  180328. .IP \(bu 2
  180329. \fBPR\fP \fI\%#49684\fP: (\fI\%twangboy\fP) Detect when system needs reboot after domain join
  180330. @ \fI2018\-09\-20 16:17:50 UTC\fP
  180331. .INDENT 2.0
  180332. .IP \(bu 2
  180333. d434e36 Merge pull request \fI\%#49684\fP from twangboy/fix_49675
  180334. .IP \(bu 2
  180335. 3600467 Fix some try/except blocks, mark a lazy test
  180336. .IP \(bu 2
  180337. 871c11a Fix other functions in the same manner
  180338. .IP \(bu 2
  180339. 1b5bc66 Merge branch \(aq2018.3\(aq into fix_49675
  180340. .IP \(bu 2
  180341. 95e6f54 Detect when system needs reboot after domain join
  180342. .INDENT 2.0
  180343. .INDENT 3.5
  180344. .INDENT 0.0
  180345. .IP \(bu 2
  180346. 9048970 Add some debug info to assert
  180347. .IP \(bu 2
  180348. 536fce6 Increase function timeout
  180349. .IP \(bu 2
  180350. ed4de63 Fix file serialize test
  180351. .IP \(bu 2
  180352. 5ac3738 Merge remote\-tracking branch \(aqsaltstack/2018.3\(aq into whitelist
  180353. .UNINDENT
  180354. .UNINDENT
  180355. .UNINDENT
  180356. .UNINDENT
  180357. .IP \(bu 2
  180358. \fBPR\fP \fI\%#49710\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180359. @ \fI2018\-09\-19 18:05:50 UTC\fP
  180360. .INDENT 2.0
  180361. .IP \(bu 2
  180362. 936cae5 Merge pull request \fI\%#49710\fP from rallytime/merge\-2018.3
  180363. .IP \(bu 2
  180364. d19c67f Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180365. .IP \(bu 2
  180366. 6bd85b5 Merge pull request \fI\%#49706\fP from garethgreenaway/1120_remove_mock_os_path_join
  180367. .INDENT 2.0
  180368. .IP \(bu 2
  180369. f4ccc75 Removing mocking of os.path.join from two tests, one of which was failing when used with coverage argument. No reason we should be mocking os.path.join.
  180370. .UNINDENT
  180371. .IP \(bu 2
  180372. c38dc61 Merge pull request \fI\%#49692\fP from rallytime/bp\-49688
  180373. .INDENT 2.0
  180374. .IP \(bu 2
  180375. fde7575 Order the runtests suites
  180376. .INDENT 2.0
  180377. .INDENT 3.5
  180378. .INDENT 0.0
  180379. .IP \(bu 2
  180380. 1f60753 Do not use close_fds on Windows OS
  180381. .IP \(bu 2
  180382. 4a54c7c Fix file serialize test
  180383. .IP \(bu 2
  180384. 0ec1e1e Increase timeout on flaky test
  180385. .IP \(bu 2
  180386. 6ae924b Skip test that is not applicable on windows
  180387. .IP \(bu 2
  180388. 5980200 Increase timeout on flaky test
  180389. .IP \(bu 2
  180390. 1757edd Increase ModuleTest.run_function timeout
  180391. .IP \(bu 2
  180392. 7c7353c Add more tests to whitelist
  180393. .UNINDENT
  180394. .UNINDENT
  180395. .UNINDENT
  180396. .UNINDENT
  180397. .UNINDENT
  180398. .IP \(bu 2
  180399. \fBPR\fP \fI\%#49708\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49555\fP to 2018.3
  180400. @ \fI2018\-09\-19 13:12:12 UTC\fP
  180401. .INDENT 2.0
  180402. .IP \(bu 2
  180403. \fBPR\fP \fI\%#49555\fP: (\fI\%bergmannf\fP) Change StringIO and BytesIO imports (refs: \fI\%#49708\fP)
  180404. .IP \(bu 2
  180405. b082f79 Merge pull request \fI\%#49708\fP from rallytime/bp\-49555
  180406. .IP \(bu 2
  180407. ed25416 Change StringIO import in python2 to import the class.
  180408. .UNINDENT
  180409. .IP \(bu 2
  180410. \fBPR\fP \fI\%#49707\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49702\fP to 2018.3
  180411. @ \fI2018\-09\-19 13:09:10 UTC\fP
  180412. .INDENT 2.0
  180413. .IP \(bu 2
  180414. \fBPR\fP \fI\%#49702\fP: (\fI\%rallytime\fP) Mark orchestration test as expensive (refs: \fI\%#49707\fP)
  180415. .IP \(bu 2
  180416. 0e97d9e Merge pull request \fI\%#49707\fP from rallytime/bp\-49702
  180417. .IP \(bu 2
  180418. 7ff24e5 Mark orchestration test as expensive
  180419. .UNINDENT
  180420. .IP \(bu 2
  180421. \fBPR\fP \fI\%#49693\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180422. @ \fI2018\-09\-18 20:05:28 UTC\fP
  180423. .INDENT 2.0
  180424. .IP \(bu 2
  180425. 0c4005d Merge pull request \fI\%#49693\fP from rallytime/merge\-2018.3
  180426. .IP \(bu 2
  180427. b39dacf Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180428. .IP \(bu 2
  180429. 37cbd27 Merge pull request \fI\%#49685\fP from rallytime/pillar\-headings
  180430. .INDENT 2.0
  180431. .IP \(bu 2
  180432. 02b2d54 Split intro docs for cmd_yamlex pillar into shorter lines.
  180433. .IP \(bu 2
  180434. c4cbe5b Fix heading line\-lengths
  180435. .UNINDENT
  180436. .IP \(bu 2
  180437. 9bad295 Merge pull request \fI\%#49689\fP from terminalmage/2017.7\-docs
  180438. .INDENT 2.0
  180439. .IP \(bu 2
  180440. 7e5bab7 Fix docs build errors (2017.7 branch)
  180441. .UNINDENT
  180442. .UNINDENT
  180443. .IP \(bu 2
  180444. \fBPR\fP \fI\%#49674\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180445. @ \fI2018\-09\-18 13:37:00 UTC\fP
  180446. .INDENT 2.0
  180447. .IP \(bu 2
  180448. a12176d Merge pull request \fI\%#49674\fP from rallytime/merge\-2018.3
  180449. .IP \(bu 2
  180450. 7bcb809 Merge pull request \fI\%#31\fP from dwoz/merge\-2018.3
  180451. .INDENT 2.0
  180452. .IP \(bu 2
  180453. cb35ebb Account for filename changes
  180454. .UNINDENT
  180455. .IP \(bu 2
  180456. f3b122f Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180457. .UNINDENT
  180458. .IP \(bu 2
  180459. \fBPR\fP \fI\%#49593\fP: (\fI\%dwoz\fP) Add more tests to whitelist for Windows
  180460. @ \fI2018\-09\-17 14:57:44 UTC\fP
  180461. .INDENT 2.0
  180462. .IP \(bu 2
  180463. e636dac Merge pull request \fI\%#49593\fP from dwoz/add_whitelist
  180464. .IP \(bu 2
  180465. 2e1bf13 Merge branch \(aq2018.3\(aq into add_whitelist
  180466. .IP \(bu 2
  180467. 2340a58 Fix runner returns test on Windows
  180468. .IP \(bu 2
  180469. f908cde Merge branch \(aq2018.3\(aq into add_whitelist
  180470. .IP \(bu 2
  180471. be5fccf Fix linter \- blank lines
  180472. .IP \(bu 2
  180473. e51b0f8 Fix binary file manage test
  180474. .IP \(bu 2
  180475. 9e3b44d Fix linter issues
  180476. .IP \(bu 2
  180477. ca1b05e Fix multiple issues in x509 module and state
  180478. .IP \(bu 2
  180479. e603e7a Fix encoding issues in file and x509 states
  180480. .IP \(bu 2
  180481. 7f93c7f Fix map file loading on windows
  180482. .IP \(bu 2
  180483. 2959da0 Add some runners test files to whitelist
  180484. .IP \(bu 2
  180485. bee2902 Make windows file remove return like others
  180486. .IP \(bu 2
  180487. 5770b05 Fix hitelist file order
  180488. .IP \(bu 2
  180489. 10ec8be Fix linter issues
  180490. .IP \(bu 2
  180491. ccbcb55 Add more tests to whitelist for Windows
  180492. .UNINDENT
  180493. .IP \(bu 2
  180494. \fBPR\fP \fI\%#49639\fP: (\fI\%isbm\fP) Retire MD5 checksum for pkg mgmt plugins
  180495. @ \fI2018\-09\-17 14:51:54 UTC\fP
  180496. .INDENT 2.0
  180497. .IP \(bu 2
  180498. 7823839 Merge pull request \fI\%#49639\fP from isbm/isbm\-yumnotify\-md5
  180499. .IP \(bu 2
  180500. 11a94ca Remove an empty line
  180501. .IP \(bu 2
  180502. adb8324 Use SHA256 algorithm for zyppnotify plugin
  180503. .IP \(bu 2
  180504. 27001cf Use SHA256 algorithm for yumnotify plugin
  180505. .UNINDENT
  180506. .IP \(bu 2
  180507. \fBPR\fP \fI\%#49652\fP: (\fI\%rallytime\fP) [2018.3] Merge forwrad from 2018.3.3 to 2018.3
  180508. @ \fI2018\-09\-14 21:20:39 UTC\fP
  180509. .INDENT 2.0
  180510. .IP \(bu 2
  180511. aecbe12 Merge pull request \fI\%#49652\fP from rallytime/merge\-2018.3
  180512. .IP \(bu 2
  180513. a8a3820 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180514. .UNINDENT
  180515. .IP \(bu 2
  180516. \fBPR\fP \fI\%#49646\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180517. @ \fI2018\-09\-14 13:30:22 UTC\fP
  180518. .INDENT 2.0
  180519. .IP \(bu 2
  180520. 530e281 Merge pull request \fI\%#49646\fP from rallytime/merge\-2018.3
  180521. .IP \(bu 2
  180522. 186f57e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180523. .IP \(bu 2
  180524. 3c8ec8a Merge pull request \fI\%#49644\fP from rallytime/mark\-flaky\-test
  180525. .INDENT 2.0
  180526. .IP \(bu 2
  180527. be8a187 Mark grains test as flaky
  180528. .UNINDENT
  180529. .IP \(bu 2
  180530. 8ac66f1 Merge pull request \fI\%#49643\fP from rallytime/bp\-49642
  180531. .INDENT 2.0
  180532. .IP \(bu 2
  180533. accef8c Skip some unreliable tests
  180534. .UNINDENT
  180535. .IP \(bu 2
  180536. 7a75d5e Merge pull request \fI\%#49597\fP from rallytime/bp\-47232
  180537. .INDENT 2.0
  180538. .IP \(bu 2
  180539. c477b70 Fixed usage of ipaddress
  180540. .UNINDENT
  180541. .IP \(bu 2
  180542. 2f6cdd9 Merge pull request \fI\%#49614\fP from rallytime/bp\-49546
  180543. .INDENT 2.0
  180544. .IP \(bu 2
  180545. 0f3881a Skip flaky test on Python 3
  180546. .UNINDENT
  180547. .UNINDENT
  180548. .IP \(bu 2
  180549. \fBPR\fP \fI\%#49642\fP: (\fI\%rallytime\fP) Skip some unreliable tests (refs: \fI\%#49643\fP)
  180550. @ \fI2018\-09\-13 18:24:43 UTC\fP
  180551. .INDENT 2.0
  180552. .IP \(bu 2
  180553. bb1dcdf Merge pull request \fI\%#49642\fP from rallytime/flaky\-tests
  180554. .IP \(bu 2
  180555. 8e74d1c Skip some unreliable tests
  180556. .UNINDENT
  180557. .IP \(bu 2
  180558. \fBPR\fP \fI\%#49629\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180559. @ \fI2018\-09\-13 14:00:08 UTC\fP
  180560. .INDENT 2.0
  180561. .IP \(bu 2
  180562. e319ecc Merge pull request \fI\%#49629\fP from rallytime/merge\-2018.3
  180563. .IP \(bu 2
  180564. b628ad7 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180565. .UNINDENT
  180566. .IP \(bu 2
  180567. \fBPR\fP \fI\%#49632\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing integration.states.test_file.FileTest.test_directory_max_depth
  180568. @ \fI2018\-09\-13 13:51:56 UTC\fP
  180569. .INDENT 2.0
  180570. .IP \(bu 2
  180571. 93d43fa Merge pull request \fI\%#49632\fP from garethgreenaway/fixing_failing_test_python_3_7
  180572. .IP \(bu 2
  180573. 588f744 Fixing failing test under python 3.7 causaed by changes to how os.makedirs sets initial permissions.
  180574. .UNINDENT
  180575. .IP \(bu 2
  180576. \fBPR\fP \fI\%#49580\fP: (\fI\%garethgreenaway\fP) [2018.3] Fixing tests for Python 3.7
  180577. @ \fI2018\-09\-12 16:33:35 UTC\fP
  180578. .INDENT 2.0
  180579. .IP \(bu 2
  180580. 7042fc0 Merge pull request \fI\%#49580\fP from garethgreenaway/fixing_failing_test_python_3_7
  180581. .IP \(bu 2
  180582. b6afdae Fixing lint.
  180583. .IP \(bu 2
  180584. d2fb68c Fixes various tests that were failing under python 3.7.
  180585. .UNINDENT
  180586. .IP \(bu 2
  180587. \fBPR\fP \fI\%#49606\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180588. @ \fI2018\-09\-12 14:26:33 UTC\fP
  180589. .INDENT 2.0
  180590. .IP \(bu 2
  180591. ab19082 Merge pull request \fI\%#49606\fP from rallytime/merge\-2018.3
  180592. .IP \(bu 2
  180593. c168268 Update old utils paths to use new paths
  180594. .IP \(bu 2
  180595. 19598d8 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180596. .INDENT 2.0
  180597. .IP \(bu 2
  180598. aa560c5 Merge pull request \fI\%#49595\fP from rallytime/merge\-2017.7
  180599. .INDENT 2.0
  180600. .IP \(bu 2
  180601. 09247a3 Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  180602. .INDENT 2.0
  180603. .IP \(bu 2
  180604. 4d865b4 Merge pull request \fI\%#49560\fP from rallytime/pkgng\-fix
  180605. .INDENT 2.0
  180606. .IP \(bu 2
  180607. f3e1534 [2017.7.8] Use correct path for is_true function
  180608. .UNINDENT
  180609. .IP \(bu 2
  180610. 92369f0 Merge pull request \fI\%#49541\fP from twangboy/fix_osx_build_2
  180611. .INDENT 2.0
  180612. .IP \(bu 2
  180613. 750d3fa Remove trusted host switches
  180614. .UNINDENT
  180615. .IP \(bu 2
  180616. 397296f Merge pull request \fI\%#49539\fP from twangboy/fix_osx_build_2
  180617. .INDENT 2.0
  180618. .IP \(bu 2
  180619. 6b42e73 Fix issues with build script on OSX
  180620. .UNINDENT
  180621. .UNINDENT
  180622. .UNINDENT
  180623. .IP \(bu 2
  180624. e8171de Merge pull request \fI\%#49596\fP from terminalmage/kill\-bare\-excepts\-with\-fire
  180625. .INDENT 2.0
  180626. .IP \(bu 2
  180627. 729dc08 Kill bare excepts with fire
  180628. .UNINDENT
  180629. .IP \(bu 2
  180630. 63b6643 Merge pull request \fI\%#49578\fP from twangboy/fix_49566
  180631. .INDENT 2.0
  180632. .IP \(bu 2
  180633. 6a5a69c Merge branch \(aq2017.7\(aq into fix_49566
  180634. .UNINDENT
  180635. .IP \(bu 2
  180636. f9a01b7 Merge pull request \fI\%#49584\fP from terminalmage/squelch\-varstack\-error
  180637. .INDENT 2.0
  180638. .IP \(bu 2
  180639. c79a823 Squelch error logging when varstack is not installed
  180640. .UNINDENT
  180641. .IP \(bu 2
  180642. d4d2b36 Merge pull request \fI\%#49579\fP from dwoz/flaky_test
  180643. .INDENT 2.0
  180644. .IP \(bu 2
  180645. dbe40df Increase timeout for flaky git test
  180646. .UNINDENT
  180647. .IP \(bu 2
  180648. 5cbe60b Merge pull request \fI\%#49570\fP from rallytime/doc\-fixes
  180649. .INDENT 2.0
  180650. .IP \(bu 2
  180651. de80bda Fix docstring + import order, move pylint disable to own line
  180652. .IP \(bu 2
  180653. 393bc0f Fix doc build errors in saltnado documentation
  180654. .INDENT 2.0
  180655. .IP \(bu 2
  180656. 6105ebb Use setup.py clean \-\-all
  180657. .UNINDENT
  180658. .UNINDENT
  180659. .UNINDENT
  180660. .UNINDENT
  180661. .IP \(bu 2
  180662. \fBPR\fP \fI\%#49620\fP: (\fI\%dwoz\fP) Adding passing windows nacl runner tests to whitelist
  180663. @ \fI2018\-09\-12 14:19:11 UTC\fP
  180664. .INDENT 2.0
  180665. .IP \(bu 2
  180666. 0ce91d6 Merge pull request \fI\%#49620\fP from dwoz/nacltest
  180667. .IP \(bu 2
  180668. 51500ac Adding passing windows nacl runner tests to whitelist
  180669. .UNINDENT
  180670. .IP \(bu 2
  180671. \fBPR\fP \fI\%#49532\fP: (\fI\%meaksh\fP) Fix wrong \(aqrecurse\(aq behavior on for linux_acl.present/absent states
  180672. @ \fI2018\-09\-12 14:16:15 UTC\fP
  180673. .INDENT 2.0
  180674. .IP \(bu 2
  180675. c1f97c4 Merge pull request \fI\%#49532\fP from meaksh/2018.3\-fix\-linux_acl\-recursive\-problems
  180676. .IP \(bu 2
  180677. cf27069 Fix some pylint issues
  180678. .IP \(bu 2
  180679. a0ed59d Fix recursive cases on linux_acl.absent state
  180680. .IP \(bu 2
  180681. 4a01849 Add unit tests to cover recursive cases of linux_acl states
  180682. .IP \(bu 2
  180683. f739b6f Fix typo on variable name
  180684. .IP \(bu 2
  180685. dc6d1d7 Fix wrong recurse behavior on for linux_acl.present state
  180686. .UNINDENT
  180687. .IP \(bu 2
  180688. \fBISSUE\fP \fI\%#49027\fP: (\fI\%lachlanmunro\fP) x509.certificate_managed certificate is mangled on process under py3 m2crypto (refs: \fI\%#49561\fP)
  180689. .IP \(bu 2
  180690. \fBISSUE\fP \fI\%#49008\fP: (\fI\%lachlanmunro\fP) x509.certificate_managed state fails under py3 m2crypto with "int too large" (refs: \fI\%#49561\fP)
  180691. .IP \(bu 2
  180692. \fBPR\fP \fI\%#49561\fP: (\fI\%dwoz\fP) x509 module and state bug fixes
  180693. @ \fI2018\-09\-11 14:01:43 UTC\fP
  180694. .INDENT 2.0
  180695. .IP \(bu 2
  180696. 283e7d7 Merge pull request \fI\%#49561\fP from dwoz/m2crypto_test
  180697. .IP \(bu 2
  180698. 5e591ea Merge branch \(aq2018.3\(aq into m2crypto_test
  180699. .UNINDENT
  180700. .IP \(bu 2
  180701. \fBPR\fP \fI\%#49592\fP: (\fI\%dwoz\fP) Fix binary file manage test
  180702. @ \fI2018\-09\-10 23:03:18 UTC\fP
  180703. .INDENT 2.0
  180704. .IP \(bu 2
  180705. 4478a44 Merge pull request \fI\%#49592\fP from dwoz/bin_file_fix
  180706. .IP \(bu 2
  180707. 8556c3d Fix binary file manage test
  180708. .UNINDENT
  180709. .IP \(bu 2
  180710. \fBPR\fP \fI\%#49571\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180711. @ \fI2018\-09\-10 12:58:15 UTC\fP
  180712. .INDENT 2.0
  180713. .IP \(bu 2
  180714. 9004422 Merge pull request \fI\%#49571\fP from rallytime/merge\-2018.3
  180715. .IP \(bu 2
  180716. a00aba9 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180717. .INDENT 2.0
  180718. .IP \(bu 2
  180719. 5d267a2 Merge pull request \fI\%#49547\fP from rallytime/bp\-49518
  180720. .INDENT 2.0
  180721. .IP \(bu 2
  180722. 4bb09f7 Skip service module integration tests on CentOS 7
  180723. .UNINDENT
  180724. .IP \(bu 2
  180725. 4948071 Merge pull request \fI\%#49549\fP from rallytime/codeowners\-duplicate
  180726. .INDENT 2.0
  180727. .IP \(bu 2
  180728. 4b257d2 Remove duplicate comment in CODEOWNERS file
  180729. .IP \(bu 2
  180730. faafe74 Merge branch \(aq2018.3\(aq into m2crypto_test
  180731. .UNINDENT
  180732. .UNINDENT
  180733. .UNINDENT
  180734. .IP \(bu 2
  180735. \fBPR\fP \fI\%#49577\fP: (\fI\%dwoz\fP) Multiple unittest fixes for 2018.3 Python 3 Windows
  180736. @ \fI2018\-09\-08 05:53:38 UTC\fP
  180737. .INDENT 2.0
  180738. .IP \(bu 2
  180739. 4669a9a Merge pull request \fI\%#49577\fP from dwoz/unit_test_fixes
  180740. .IP \(bu 2
  180741. aa07b3f Multiple unittest fixes for 2018.3 Python 3 Windows
  180742. .UNINDENT
  180743. .IP \(bu 2
  180744. \fBPR\fP \fI\%#49533\fP: (\fI\%silenius\fP) [cherry\-pick] Optimize postgres groups management
  180745. @ \fI2018\-09\-07 18:58:57 UTC\fP
  180746. .INDENT 2.0
  180747. .IP \(bu 2
  180748. 8b971e5 Merge pull request \fI\%#49533\fP from silenius/2018.3.3
  180749. .IP \(bu 2
  180750. 7eb8d6c Postgress module unit test fix.
  180751. .IP \(bu 2
  180752. b56aedc Optimize postgres groups management
  180753. .UNINDENT
  180754. .IP \(bu 2
  180755. \fBPR\fP \fI\%#49543\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180756. @ \fI2018\-09\-07 18:19:32 UTC\fP
  180757. .INDENT 2.0
  180758. .IP \(bu 2
  180759. 1a41b47 Merge pull request \fI\%#49543\fP from rallytime/merge\-2018.3
  180760. .IP \(bu 2
  180761. cf508a4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180762. .INDENT 2.0
  180763. .IP \(bu 2
  180764. 75a3b52 Merge pull request \fI\%#49527\fP from terminalmage/remove\-special\-envs\-handling
  180765. .INDENT 2.0
  180766. .IP \(bu 2
  180767. 1478a76 Remove special handling for file_envs fileserver func
  180768. .UNINDENT
  180769. .IP \(bu 2
  180770. 13f1d26 Merge pull request \fI\%#49512\fP from rallytime/merge\-2017.7
  180771. .INDENT 2.0
  180772. .IP \(bu 2
  180773. de7ef3d Add "in progess" notation back to 2017.7.8 release notes
  180774. .IP \(bu 2
  180775. edad2dc Merge branch \(aq2017.7.8\(aq into \(aq2017.7\(aq
  180776. .INDENT 2.0
  180777. .IP \(bu 2
  180778. d24c96f Merge pull request \fI\%#49505\fP from Ch3LL/rn_7.8_2
  180779. .INDENT 2.0
  180780. .IP \(bu 2
  180781. d40b644 Update 2017.7.8 ChangeLog with new fixes
  180782. .UNINDENT
  180783. .IP \(bu 2
  180784. 0d7b173 Merge pull request \fI\%#49498\fP from rallytime/pin\-cherrypy\-2017.7.8
  180785. .INDENT 2.0
  180786. .IP \(bu 2
  180787. 81a6155 Pin CherryPy version to < 18.0.0 in requirements files for PY2
  180788. .UNINDENT
  180789. .IP \(bu 2
  180790. 52ab2c0 Merge pull request \fI\%#49466\fP from rallytime/bp\-49461
  180791. .INDENT 2.0
  180792. .IP \(bu 2
  180793. 5842800 Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  180794. .UNINDENT
  180795. .IP \(bu 2
  180796. 1bbe7df Merge pull request \fI\%#49284\fP from twangboy/fix_installer_osx
  180797. .INDENT 2.0
  180798. .IP \(bu 2
  180799. a112eaa Fix path to libsodium tarball
  180800. .UNINDENT
  180801. .IP \(bu 2
  180802. e0e8779 Merge pull request \fI\%#49272\fP from twangboy/fix_installer_more
  180803. .INDENT 2.0
  180804. .IP \(bu 2
  180805. a8f054b Add 64bit binaries for KB2999226 to the x86 installer
  180806. .UNINDENT
  180807. .IP \(bu 2
  180808. 0eb6ddf Merge pull request \fI\%#49218\fP from twangboy/fix_installer
  180809. .INDENT 2.0
  180810. .IP \(bu 2
  180811. e8a1d2f Add more descriptive error when KB not found
  180812. .IP \(bu 2
  180813. 71737ea Suppress all ui on vcredist installation
  180814. .IP \(bu 2
  180815. 7dae9bb Fix Windows and OSX installers
  180816. .UNINDENT
  180817. .IP \(bu 2
  180818. e484f26 Merge pull request \fI\%#49116\fP from twangboy/fix_installer
  180819. .INDENT 2.0
  180820. .IP \(bu 2
  180821. 1227095 Add nonfatal switch to VCRedist
  180822. .UNINDENT
  180823. .IP \(bu 2
  180824. 0b9f2f8 Merge pull request \fI\%#49113\fP from Ch3LL/rn_7.8
  180825. .IP \(bu 2
  180826. f6b70bb Add changelog to 2017.7.8 release notes
  180827. .UNINDENT
  180828. .UNINDENT
  180829. .IP \(bu 2
  180830. 208cfe6 Merge pull request \fI\%#49515\fP from rallytime/update\-codeowners
  180831. .INDENT 2.0
  180832. .IP \(bu 2
  180833. 1faab8b Add some files to the CODEOWNERS files for team\-core to own
  180834. .UNINDENT
  180835. .IP \(bu 2
  180836. 34e5174 Merge pull request \fI\%#49327\fP from twangboy/fix_win_service
  180837. .INDENT 2.0
  180838. .IP \(bu 2
  180839. 74e944b Mark test_service_status_running as flaky
  180840. .IP \(bu 2
  180841. c69560c Merge branch \(aq2017.7\(aq into fix_win_service
  180842. .IP \(bu 2
  180843. 53e2e05 Merge branch \(aq2017.7\(aq into fix_win_service
  180844. .IP \(bu 2
  180845. cf3d287 Merge branch \(aq2017.7\(aq into fix_win_service
  180846. .IP \(bu 2
  180847. 1641851 Fix the name of the _cmd_quote test
  180848. .IP \(bu 2
  180849. 97567af Skip tests on Linux systems
  180850. .IP \(bu 2
  180851. 0ca9cd1 Fix some lint
  180852. .IP \(bu 2
  180853. 3800966 Add tests
  180854. .IP \(bu 2
  180855. b0d646d Add more details to the functioning of _cmd_quote
  180856. .IP \(bu 2
  180857. a9856e2 Fix issues with win_service
  180858. .UNINDENT
  180859. .UNINDENT
  180860. .UNINDENT
  180861. .IP \(bu 2
  180862. \fBISSUE\fP \fI\%#49452\fP: (\fI\%gtmanfred\fP) [python3.7] remove usage of collections.abc stuff from the collections shim (refs: \fI\%#49487\fP)
  180863. .IP \(bu 2
  180864. \fBPR\fP \fI\%#49487\fP: (\fI\%garethgreenaway\fP) [2018.3] Swapping out collections imports
  180865. @ \fI2018\-09\-07 15:36:04 UTC\fP
  180866. .INDENT 2.0
  180867. .IP \(bu 2
  180868. baafd6e Merge pull request \fI\%#49487\fP from garethgreenaway/49452_collections_abc
  180869. .IP \(bu 2
  180870. 2fb3ef7 Merge branch \(aq2018.3\(aq into 49452_collections_abc
  180871. .IP \(bu 2
  180872. ebfd7f9 Merge branch \(aq2018.3\(aq into 49452_collections_abc
  180873. .IP \(bu 2
  180874. b27e86b Swapping out the version check for a try...except on the import from collections.abc with a fallback to importing from collections.
  180875. .IP \(bu 2
  180876. d118a9f Updating various imports that have been moved from collections to collections.abc, and will be deprecated in collections beginning in 3.8.
  180877. .INDENT 2.0
  180878. .INDENT 3.5
  180879. .INDENT 0.0
  180880. .IP \(bu 2
  180881. abc9c1a Fix linter issues
  180882. .IP \(bu 2
  180883. 8e42384 Fix multiple issues in x509 module and state
  180884. .IP \(bu 2
  180885. 2a52158 Fix encoding issues in file and x509 states
  180886. .IP \(bu 2
  180887. 49a6da7 Fix map file loading on windows
  180888. .UNINDENT
  180889. .UNINDENT
  180890. .UNINDENT
  180891. .UNINDENT
  180892. .IP \(bu 2
  180893. \fBPR\fP \fI\%#49528\fP: (\fI\%dwoz\fP) Fix merge wart
  180894. @ \fI2018\-09\-06 23:12:39 UTC\fP
  180895. .INDENT 2.0
  180896. .IP \(bu 2
  180897. 06935e9 Merge pull request \fI\%#49528\fP from dwoz/mergetests
  180898. .IP \(bu 2
  180899. 6a4f823 Fix merge wart
  180900. .UNINDENT
  180901. .IP \(bu 2
  180902. \fBPR\fP \fI\%#49548\fP: (\fI\%garethgreenaway\fP) [2018.3] Disabling State boto tests for Python 3.7+
  180903. @ \fI2018\-09\-06 21:50:10 UTC\fP
  180904. .INDENT 2.0
  180905. .IP \(bu 2
  180906. 3298e70 Merge pull request \fI\%#49548\fP from garethgreenaway/1075_disable_boto_tests_part_deux
  180907. .IP \(bu 2
  180908. 0f5191e Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests. This PR is disabling the tests in the test_boto_vpc state tests.
  180909. .UNINDENT
  180910. .IP \(bu 2
  180911. \fBPR\fP \fI\%#49521\fP: (\fI\%terminalmage\fP) Fix _get_hash in splay executor
  180912. @ \fI2018\-09\-06 14:06:54 UTC\fP
  180913. .INDENT 2.0
  180914. .IP \(bu 2
  180915. c346825 Merge pull request \fI\%#49521\fP from terminalmage/fix\-splay\-executor
  180916. .IP \(bu 2
  180917. bbb8fe8 Fix _get_hash in splay executor
  180918. .UNINDENT
  180919. .IP \(bu 2
  180920. \fBPR\fP \fI\%#49526\fP: (\fI\%terminalmage\fP) Prevent lookup error when trying to lookup fileserver function from LazyDict
  180921. @ \fI2018\-09\-06 14:01:30 UTC\fP
  180922. .INDENT 2.0
  180923. .IP \(bu 2
  180924. 3f7c89c Merge pull request \fI\%#49526\fP from terminalmage/fix\-backends\-error\-logging
  180925. .IP \(bu 2
  180926. 1f0288e Prevent lookup error when trying to lookup fileserver function from LazyDict
  180927. .UNINDENT
  180928. .IP \(bu 2
  180929. \fBPR\fP \fI\%#49524\fP: (\fI\%garethgreenaway\fP) [2018.3] Disable boto tests under 3.7
  180930. @ \fI2018\-09\-06 13:35:18 UTC\fP
  180931. .INDENT 2.0
  180932. .IP \(bu 2
  180933. bf939f9 Merge pull request \fI\%#49524\fP from garethgreenaway/1075_disable_boto_tests
  180934. .IP \(bu 2
  180935. 5ec5578 Disable various boto tests when run under python 3.7 because of //github.com/spulec/moto/issues/1706. which was causing the test suite to hang on unit tests.
  180936. .UNINDENT
  180937. .IP \(bu 2
  180938. \fBPR\fP \fI\%#49511\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  180939. @ \fI2018\-09\-05 19:52:25 UTC\fP
  180940. .INDENT 2.0
  180941. .IP \(bu 2
  180942. f73f2e5 Merge pull request \fI\%#49511\fP from rallytime/merge\-2018.3
  180943. .IP \(bu 2
  180944. 3ffc6c2 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  180945. .UNINDENT
  180946. .IP \(bu 2
  180947. \fBPR\fP \fI\%#49500\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  180948. @ \fI2018\-09\-04 19:02:31 UTC\fP
  180949. .INDENT 2.0
  180950. .IP \(bu 2
  180951. 81a49a8 Merge pull request \fI\%#49500\fP from rallytime/merge\-2018.3
  180952. .IP \(bu 2
  180953. 2317b5e Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  180954. .INDENT 2.0
  180955. .IP \(bu 2
  180956. 1cdaea2 Merge pull request \fI\%#49475\fP from dwoz/flaky_tests
  180957. .INDENT 2.0
  180958. .IP \(bu 2
  180959. f214929 Fix a flaky test and mark another as flaky
  180960. .UNINDENT
  180961. .IP \(bu 2
  180962. 4ac4305 Merge pull request \fI\%#49457\fP from rallytime/labels\-docs
  180963. .INDENT 2.0
  180964. .IP \(bu 2
  180965. d1e51db Remove references to unused milestones in docs
  180966. .UNINDENT
  180967. .IP \(bu 2
  180968. 41dcc3f Merge pull request \fI\%#49461\fP from saltstack/revert\-47100\-ssh
  180969. .INDENT 2.0
  180970. .IP \(bu 2
  180971. 0d7180a Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  180972. .UNINDENT
  180973. .UNINDENT
  180974. .UNINDENT
  180975. .IP \(bu 2
  180976. \fBPR\fP \fI\%#49497\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49473\fP to 2018.3
  180977. @ \fI2018\-09\-04 18:44:25 UTC\fP
  180978. .INDENT 2.0
  180979. .IP \(bu 2
  180980. \fBPR\fP \fI\%#49473\fP: (\fI\%rallytime\fP) Use correct and explicit paths for salt utils libs (refs: \fI\%#49497\fP)
  180981. .IP \(bu 2
  180982. 16ca360 Merge pull request \fI\%#49497\fP from rallytime/bp\-49473
  180983. .IP \(bu 2
  180984. 1aa3935 Lint: Add range import from six
  180985. .IP \(bu 2
  180986. d06f6a5 Use correct and explicit paths for salt utils libs
  180987. .UNINDENT
  180988. .IP \(bu 2
  180989. \fBPR\fP \fI\%#49474\fP: (\fI\%dwoz\fP) Work around git\-python resource leaks
  180990. @ \fI2018\-09\-02 19:42:32 UTC\fP
  180991. .INDENT 2.0
  180992. .IP \(bu 2
  180993. 93df5c4 Merge pull request \fI\%#49474\fP from dwoz/gitfs_unit
  180994. .IP \(bu 2
  180995. 56068e9 Merge branch \(aq2018.3\(aq into gitfs_unit
  180996. .IP \(bu 2
  180997. e697ddc Work around git\-python resource leaks
  180998. .UNINDENT
  180999. .IP \(bu 2
  181000. \fBPR\fP \fI\%#49471\fP: (\fI\%Ch3LL\fP) Remove string conversion on frame object in sigusr1 handler
  181001. @ \fI2018\-09\-02 18:05:13 UTC\fP
  181002. .INDENT 2.0
  181003. .IP \(bu 2
  181004. 43ead5d Merge pull request \fI\%#49471\fP from Ch3LL/debug_sigusr1
  181005. .IP \(bu 2
  181006. 1631b2f Remove string conversion on frame object in sigusr1 handler
  181007. .UNINDENT
  181008. .IP \(bu 2
  181009. \fBPR\fP \fI\%#49454\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181010. @ \fI2018\-08\-31 21:36:34 UTC\fP
  181011. .INDENT 2.0
  181012. .IP \(bu 2
  181013. 764b816 Merge pull request \fI\%#49454\fP from rallytime/merge\-2018.3
  181014. .IP \(bu 2
  181015. a97a7b0 Fix lint and test failures caused by bad merge
  181016. .IP \(bu 2
  181017. f7226f4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181018. .INDENT 2.0
  181019. .IP \(bu 2
  181020. 7a166bc Merge pull request \fI\%#49376\fP from twangboy/fix_48608
  181021. .INDENT 2.0
  181022. .IP \(bu 2
  181023. bf32e0c Merge branch \(aqfix_48608\(aq of \fI\%https://github.com/twangboy/salt\fP into fix_48608
  181024. .INDENT 2.0
  181025. .IP \(bu 2
  181026. 9766f0d Merge branch \(aq2017.7\(aq into fix_48608
  181027. .UNINDENT
  181028. .IP \(bu 2
  181029. fb97b00 Fix broken path to libsodium tarball
  181030. .IP \(bu 2
  181031. 535d83e Fix test for list_users
  181032. .IP \(bu 2
  181033. 40d3f2e Use dscl to get list of users
  181034. .IP \(bu 2
  181035. e426459 Use a set to avoid duplicates
  181036. .UNINDENT
  181037. .IP \(bu 2
  181038. 03d9750 Merge pull request \fI\%#49434\fP from dwoz/cleanup_exception_handling
  181039. .INDENT 2.0
  181040. .IP \(bu 2
  181041. 9daa992 Fix group remove test logic
  181042. .IP \(bu 2
  181043. d74fab7 Clean up exception handling on py3
  181044. .UNINDENT
  181045. .IP \(bu 2
  181046. 7099164 Merge pull request \fI\%#49389\fP from gtmanfred/2017.7
  181047. .INDENT 2.0
  181048. .IP \(bu 2
  181049. 6c01662 remove cmd key from load
  181050. .IP \(bu 2
  181051. bdf3df3 add cli example
  181052. .IP \(bu 2
  181053. 251f321 pass load on
  181054. .IP \(bu 2
  181055. be7c041 add test
  181056. .IP \(bu 2
  181057. 0ace5c1 make file envs compatible with transport format
  181058. .UNINDENT
  181059. .IP \(bu 2
  181060. 24faa5e Merge pull request \fI\%#49408\fP from terminalmage/issue49269
  181061. .INDENT 2.0
  181062. .IP \(bu 2
  181063. d02ec34 Allow our custom yaml dumper to NamespacedDictWrapper objects
  181064. .UNINDENT
  181065. .IP \(bu 2
  181066. 5746fc8 Merge pull request \fI\%#49402\fP from rallytime/bp\-49321
  181067. .INDENT 2.0
  181068. .IP \(bu 2
  181069. 7dec9fc Add flaky decorator to serializer test
  181070. .UNINDENT
  181071. .IP \(bu 2
  181072. 5c723b0 Merge pull request \fI\%#49375\fP from terminalmage/revert\-49185
  181073. .INDENT 2.0
  181074. .IP \(bu 2
  181075. aaea274 Merge branch \(aq2017.7\(aq into revert\-49185
  181076. .IP \(bu 2
  181077. 7372e9d Add minion documentation for enable_gpu_grains
  181078. .IP \(bu 2
  181079. ea1b53c Fix incorrect master docs for enable_gpu_grains
  181080. .IP \(bu 2
  181081. 638210a Add validation type and default minion value for enable_gpu_grains
  181082. .IP \(bu 2
  181083. 49ed156 Add enable_gpu_grains to the minion config stub
  181084. .IP \(bu 2
  181085. d1b7fb4 Revert "Update documentation to correctly state enable_gpu_grains default"
  181086. .UNINDENT
  181087. .IP \(bu 2
  181088. 11d87e4 Merge pull request \fI\%#49387\fP from twangboy/fix_win_repo
  181089. .INDENT 2.0
  181090. .IP \(bu 2
  181091. 2bf7eda Import GLOBAL_ONLY
  181092. .UNINDENT
  181093. .IP \(bu 2
  181094. 651631d Merge pull request \fI\%#49390\fP from dwoz/archive_module
  181095. .INDENT 2.0
  181096. .IP \(bu 2
  181097. b332beb Fix archive tests for py3
  181098. .UNINDENT
  181099. .IP \(bu 2
  181100. c591d2b Merge pull request \fI\%#49385\fP from dwoz/sonofa
  181101. .INDENT 2.0
  181102. .IP \(bu 2
  181103. f9d7dbd The autoruns module has not been renamed
  181104. .UNINDENT
  181105. .IP \(bu 2
  181106. 5d2c9b6 Merge pull request \fI\%#49371\fP from rallytime/bp\-49064
  181107. .INDENT 2.0
  181108. .IP \(bu 2
  181109. bc52f7c Stop running lint on all files when no changes
  181110. .UNINDENT
  181111. .IP \(bu 2
  181112. f1c904e Merge pull request \fI\%#49380\fP from twangboy/doc_48758
  181113. .INDENT 2.0
  181114. .IP \(bu 2
  181115. 6cefbdf Add docs from a comment on issue 48758
  181116. .UNINDENT
  181117. .IP \(bu 2
  181118. b22a43d Merge pull request \fI\%#49324\fP from dwoz/windows_pr_builds
  181119. .INDENT 2.0
  181120. .IP \(bu 2
  181121. 7abd9cd Merge branch \(aq2017.7\(aq into windows_pr_builds
  181122. .UNINDENT
  181123. .IP \(bu 2
  181124. b2e4121 Merge pull request \fI\%#49379\fP from dwoz/whitelistagain
  181125. .INDENT 2.0
  181126. .IP \(bu 2
  181127. 56ea4ee Account for more tests that are not in 2017.7
  181128. .UNINDENT
  181129. .IP \(bu 2
  181130. 7fa9120 Merge pull request \fI\%#49366\fP from rallytime/bp\-49232
  181131. .INDENT 2.0
  181132. .IP \(bu 2
  181133. 74b05ef fix HTTP method for acl_info
  181134. .IP \(bu 2
  181135. b9fa7db Merge branch \(aq2017.7\(aq into windows_pr_builds
  181136. .IP \(bu 2
  181137. 77f5fd3 Merge branch \(aq2017.7\(aq into windows_pr_builds
  181138. .IP \(bu 2
  181139. 7cdba27 Add ci scripts for windows PR builds
  181140. .UNINDENT
  181141. .UNINDENT
  181142. .UNINDENT
  181143. .IP \(bu 2
  181144. \fBPR\fP \fI\%#49025\fP: (\fI\%twangboy\fP) Fix several issues with LGPO
  181145. @ \fI2018\-08\-31 18:25:34 UTC\fP
  181146. .INDENT 2.0
  181147. .IP \(bu 2
  181148. 4ea22e5 Merge pull request \fI\%#49025\fP from twangboy/fix_48661
  181149. .IP \(bu 2
  181150. c27fd18 Merge branch \(aq2018.3\(aq into fix_48661
  181151. .IP \(bu 2
  181152. 222c503 Fix several issues with LGPO
  181153. .UNINDENT
  181154. .IP \(bu 2
  181155. \fBISSUE\fP \fI\%#49281\fP: (\fI\%aarnaud\fP) etcd_cache : Not working for mine (refs: \fI\%#49283\fP)
  181156. .IP \(bu 2
  181157. \fBPR\fP \fI\%#49283\fP: (\fI\%aarnaud\fP) Fix \fI\%#49281\fP etcd_cache with mine cache
  181158. @ \fI2018\-08\-31 18:24:23 UTC\fP
  181159. .INDENT 2.0
  181160. .IP \(bu 2
  181161. dd9ec94 Merge pull request \fI\%#49283\fP from aarnaud/fix\-etcd\-cache
  181162. .IP \(bu 2
  181163. 13e1a17 Merge branch \(aq2018.3\(aq into fix\-etcd\-cache
  181164. .IP \(bu 2
  181165. 6c0fb9c Fix \fI\%#49281\fP etcd_cache with mine cache
  181166. .UNINDENT
  181167. .IP \(bu 2
  181168. \fBPR\fP \fI\%#49459\fP: (\fI\%dwoz\fP) Batch test fix cherry\-pick
  181169. @ \fI2018\-08\-30 23:02:12 UTC\fP
  181170. .INDENT 2.0
  181171. .IP \(bu 2
  181172. 64227f9 Merge pull request \fI\%#49459\fP from dwoz/batch_fix
  181173. .IP \(bu 2
  181174. fc39dcf Simplify cli test fixes
  181175. .UNINDENT
  181176. .IP \(bu 2
  181177. \fBPR\fP \fI\%#49453\fP: (\fI\%dwoz\fP) Fix up py3 git config tests
  181178. @ \fI2018\-08\-30 22:00:19 UTC\fP
  181179. .INDENT 2.0
  181180. .IP \(bu 2
  181181. 75285a3 Merge pull request \fI\%#49453\fP from dwoz/conffix
  181182. .IP \(bu 2
  181183. ac3c379 Fix up py3 git config tests
  181184. .UNINDENT
  181185. .IP \(bu 2
  181186. \fBPR\fP \fI\%#49411\fP: (\fI\%terminalmage\fP) Allow our custom yaml dumper to NamespacedDictWrapper objects (2018.3 branch)
  181187. @ \fI2018\-08\-30 13:05:37 UTC\fP
  181188. .INDENT 2.0
  181189. .IP \(bu 2
  181190. a962efc Merge pull request \fI\%#49411\fP from terminalmage/issue49269\-2018.3
  181191. .IP \(bu 2
  181192. a4cb35b Remove support for overriding the class name
  181193. .IP \(bu 2
  181194. 82a8b73 Allow our custom yaml dumper to NamespacedDictWrapper objects
  181195. .UNINDENT
  181196. .IP \(bu 2
  181197. \fBPR\fP \fI\%#49407\fP: (\fI\%rallytime\fP) Mark pkg module tests and flaky
  181198. @ \fI2018\-08\-30 13:01:31 UTC\fP
  181199. .INDENT 2.0
  181200. .IP \(bu 2
  181201. 8022a3b Merge pull request \fI\%#49407\fP from rallytime/pkg\-flaky
  181202. .IP \(bu 2
  181203. 1609e11 Mark pkg module tests and flaky
  181204. .UNINDENT
  181205. .IP \(bu 2
  181206. \fBPR\fP \fI\%#49406\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  181207. @ \fI2018\-08\-30 13:00:34 UTC\fP
  181208. .INDENT 2.0
  181209. .IP \(bu 2
  181210. 7f8c38a Merge pull request \fI\%#49406\fP from rallytime/merge\-2018.3
  181211. .IP \(bu 2
  181212. 4939ee3 Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  181213. .UNINDENT
  181214. .IP \(bu 2
  181215. \fBPR\fP \fI\%#49401\fP: (\fI\%rallytime\fP) Mark output file permissions test as flaky
  181216. @ \fI2018\-08\-29 18:13:12 UTC\fP
  181217. .INDENT 2.0
  181218. .IP \(bu 2
  181219. 68d630f Merge pull request \fI\%#49401\fP from rallytime/flaky\-output\-test
  181220. .IP \(bu 2
  181221. e13216b Mark output file permissions test as flaky
  181222. .UNINDENT
  181223. .IP \(bu 2
  181224. \fBPR\fP \fI\%#49400\fP: (\fI\%rallytime\fP) Mark pillar refresh test as flaky
  181225. @ \fI2018\-08\-29 18:12:51 UTC\fP
  181226. .INDENT 2.0
  181227. .IP \(bu 2
  181228. 23610ed Merge pull request \fI\%#49400\fP from rallytime/flaky\-pillar\-test
  181229. .IP \(bu 2
  181230. fb62af6 Mark pillar refresh test as flaky
  181231. .UNINDENT
  181232. .IP \(bu 2
  181233. \fBISSUE\fP \fI\%#49150\fP: (\fI\%sunyq\fP) hosts.rm_host changes /etc/hosts file with odd characters (refs: \fI\%#49394\fP)
  181234. .IP \(bu 2
  181235. \fBPR\fP \fI\%#49394\fP: (\fI\%sunyq\fP) fix issue\(ga#49150\(ga_ hosts.rm_host changes /etc/hosts with odd characters
  181236. @ \fI2018\-08\-29 13:33:49 UTC\fP
  181237. .INDENT 2.0
  181238. .IP \(bu 2
  181239. 502e91c Merge pull request \fI\%#49394\fP from sunyq/2018.3
  181240. .IP \(bu 2
  181241. 76ba5b6 fix issue\(ga#49150\(ga_ hosts.rm_host changes /etc/hosts with odd characters
  181242. .UNINDENT
  181243. .IP \(bu 2
  181244. \fBPR\fP \fI\%#49386\fP: (\fI\%dwoz\fP) Cherry\-pick whitelist fix.
  181245. @ \fI2018\-08\-29 01:11:05 UTC\fP
  181246. .INDENT 2.0
  181247. .IP \(bu 2
  181248. 2cf2e62 Merge pull request \fI\%#49386\fP from dwoz/whitelistfix
  181249. .IP \(bu 2
  181250. 2b08cf1 Account for more tests that are not in 2017.7
  181251. .UNINDENT
  181252. .IP \(bu 2
  181253. \fBPR\fP \fI\%#49372\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181254. @ \fI2018\-08\-28 19:03:53 UTC\fP
  181255. .INDENT 2.0
  181256. .IP \(bu 2
  181257. ec04282 Merge pull request \fI\%#49372\fP from rallytime/merge\-2018.3
  181258. .IP \(bu 2
  181259. ab6cc1c Update old utils paths to use new paths
  181260. .IP \(bu 2
  181261. ac406c4 Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181262. .IP \(bu 2
  181263. dfa3861 Merge pull request \fI\%#49354\fP from dwoz/fix_whitelist
  181264. .INDENT 2.0
  181265. .IP \(bu 2
  181266. aeb0fa3 custom_grains tests do not exist
  181267. .UNINDENT
  181268. .IP \(bu 2
  181269. 14b8094 Merge pull request \fI\%#49346\fP from Ch3LL/bp\-49345
  181270. .INDENT 2.0
  181271. .IP \(bu 2
  181272. ce2733e upgrade including linux kernels
  181273. .UNINDENT
  181274. .IP \(bu 2
  181275. d8f2945 Merge pull request \fI\%#49344\fP from cachedout/test_matcher_flaky
  181276. .INDENT 2.0
  181277. .IP \(bu 2
  181278. a34ef2e Matcher test marked flaky
  181279. .UNINDENT
  181280. .IP \(bu 2
  181281. f08e720 Merge pull request \fI\%#49353\fP from dwoz/boto_fix
  181282. .INDENT 2.0
  181283. .IP \(bu 2
  181284. 376019f Do not raise exception if passed bytes
  181285. .UNINDENT
  181286. .IP \(bu 2
  181287. 4690ad0 Merge pull request \fI\%#49339\fP from dwoz/more_tests
  181288. .INDENT 2.0
  181289. .IP \(bu 2
  181290. d50324b Merge branch \(aq2017.7\(aq into more_tests
  181291. .UNINDENT
  181292. .IP \(bu 2
  181293. e371ad9 Merge pull request \fI\%#49341\fP from terminalmage/issue48717
  181294. .INDENT 2.0
  181295. .IP \(bu 2
  181296. 1971d09 Update dynamic git_pillar docs to enclose env name in quotes
  181297. .UNINDENT
  181298. .IP \(bu 2
  181299. 00b58ee Merge pull request \fI\%#49337\fP from dwoz/win_service_test_fix
  181300. .INDENT 2.0
  181301. .IP \(bu 2
  181302. 1c1727e Fix broken service stop test
  181303. .UNINDENT
  181304. .IP \(bu 2
  181305. 81428ed Merge pull request \fI\%#49291\fP from dwoz/dedent
  181306. .INDENT 2.0
  181307. .IP \(bu 2
  181308. 1991198 Fix review nits
  181309. .IP \(bu 2
  181310. 6abc2da Re\-factor dedent to fix warts
  181311. .IP \(bu 2
  181312. 75b2e3d Use salt.utils.to_* functions
  181313. .IP \(bu 2
  181314. fa78a7b Add dedent that sets line endings
  181315. .INDENT 2.0
  181316. .IP \(bu 2
  181317. cd6706e Fix merge wart
  181318. .IP \(bu 2
  181319. b9c344b Fix module.archive tests for win py3
  181320. .IP \(bu 2
  181321. ac60fb8 Comment strange code
  181322. .IP \(bu 2
  181323. 5fefd6f Simplify cli test fixes
  181324. .IP \(bu 2
  181325. 1765d53 Fix archive tests on Windows platform
  181326. .IP \(bu 2
  181327. 06f271f Add archive module tests to whitelist.txt
  181328. .IP \(bu 2
  181329. 9cb8fe2 Add more tests to whitelist for windows
  181330. .IP \(bu 2
  181331. b8af238 Fix indent wart
  181332. .IP \(bu 2
  181333. bc971e4 add doc tests
  181334. .IP \(bu 2
  181335. 8899a5e Add more client tests to whitelist
  181336. .IP \(bu 2
  181337. 14cd7b48 Add cli tests to whitelist
  181338. .IP \(bu 2
  181339. 3e55d10 Platform module doesn\(aqt exist in 2017.7
  181340. .IP \(bu 2
  181341. 2733c02 Use double quotes on windows commands
  181342. .IP \(bu 2
  181343. 0394ece The set command does not work like inline env vars
  181344. .UNINDENT
  181345. .UNINDENT
  181346. .IP \(bu 2
  181347. 1fd5cf1 Merge pull request \fI\%#49320\fP from rallytime/fix\-48694
  181348. .INDENT 2.0
  181349. .IP \(bu 2
  181350. 0964b5e Update documentation for \fI\%#48694\fP and add deprecation warning
  181351. .UNINDENT
  181352. .IP \(bu 2
  181353. c323096 Merge pull request \fI\%#49314\fP from rallytime/bp\-49277
  181354. .INDENT 2.0
  181355. .IP \(bu 2
  181356. 6d691b2 Prepend current directory when path is just filename
  181357. .UNINDENT
  181358. .IP \(bu 2
  181359. c7bae5e Merge pull request \fI\%#49290\fP from rallytime/bp\-44504
  181360. .INDENT 2.0
  181361. .IP \(bu 2
  181362. 6224f7b calling range is going up to the upper limit but not including it
  181363. .UNINDENT
  181364. .IP \(bu 2
  181365. 7a44e59 Merge pull request \fI\%#49289\fP from rallytime/bp\-49170
  181366. .INDENT 2.0
  181367. .IP \(bu 2
  181368. 4c29c17 forcing mine update in the proxy minion as well
  181369. .IP \(bu 2
  181370. b1d581a force mine update on minion start
  181371. .UNINDENT
  181372. .IP \(bu 2
  181373. 221ea22 Merge pull request \fI\%#49278\fP from rallytime/bp\-49253
  181374. .INDENT 2.0
  181375. .IP \(bu 2
  181376. b331b5c skip ID 7 for vmware hard drives
  181377. .UNINDENT
  181378. .UNINDENT
  181379. .IP \(bu 2
  181380. \fBPR\fP \fI\%#49356\fP: (\fI\%dwoz\fP) Fix tests that use timed_subprocess for py3
  181381. @ \fI2018\-08\-28 13:30:08 UTC\fP
  181382. .INDENT 2.0
  181383. .IP \(bu 2
  181384. 1faf6a7 Merge pull request \fI\%#49356\fP from dwoz/cmdmod
  181385. .IP \(bu 2
  181386. 6ffeaae Fix tests that use timed_subprocess for py3
  181387. .UNINDENT
  181388. .IP \(bu 2
  181389. \fBISSUE\fP \fI\%#48299\fP: (\fI\%dosercz\fP) git.latest reports deleted tags in remote repo as new_tags in changes (refs: \fI\%#49305\fP)
  181390. .IP \(bu 2
  181391. \fBPR\fP \fI\%#49336\fP: (\fI\%terminalmage\fP) Fix half\-baked comment
  181392. @ \fI2018\-08\-27 00:07:55 UTC\fP
  181393. .INDENT 2.0
  181394. .IP \(bu 2
  181395. \fBPR\fP \fI\%#49305\fP: (\fI\%terminalmage\fP) Allow git.latest to remove local tags which have been removed remotely (refs: \fI\%#49336\fP)
  181396. .IP \(bu 2
  181397. 2d8055e Merge pull request \fI\%#49336\fP from terminalmage/issue48299
  181398. .IP \(bu 2
  181399. 175e161 Fix half\-baked comment
  181400. .UNINDENT
  181401. .IP \(bu 2
  181402. \fBPR\fP \fI\%#49331\fP: (\fI\%dwoz\fP) Use salt.utils to ensure string type
  181403. @ \fI2018\-08\-26 01:42:08 UTC\fP
  181404. .INDENT 2.0
  181405. .IP \(bu 2
  181406. a2e7033 Merge pull request \fI\%#49331\fP from dwoz/strfix
  181407. .IP \(bu 2
  181408. 7513474 Use salt.utils to ensure string type
  181409. .UNINDENT
  181410. .IP \(bu 2
  181411. \fBPR\fP \fI\%#49312\fP: (\fI\%Ch3LL\fP) Fix keyerror in manage.bootstrap
  181412. @ \fI2018\-08\-25 19:55:44 UTC\fP
  181413. .INDENT 2.0
  181414. .IP \(bu 2
  181415. d70eda8 Merge pull request \fI\%#49312\fP from Ch3LL/ssh_list_hosts
  181416. .IP \(bu 2
  181417. da71c97 Fix keyerror in manage.bootstrap
  181418. .UNINDENT
  181419. .IP \(bu 2
  181420. \fBPR\fP \fI\%#49316\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2018.3.3 to 2018.3
  181421. @ \fI2018\-08\-25 19:53:04 UTC\fP
  181422. .INDENT 2.0
  181423. .IP \(bu 2
  181424. 6b2eba7 Merge pull request \fI\%#49316\fP from rallytime/merge\-2018.3
  181425. .IP \(bu 2
  181426. 39c442c Merge branch \(aq2018.3.3\(aq into \(aq2018.3\(aq
  181427. .UNINDENT
  181428. .IP \(bu 2
  181429. \fBISSUE\fP \fI\%#48880\fP: (\fI\%damntoken\fP) Can\(aqt run cmd.run with UTF\-8 chars as arguments / parameters. With custom module. (refs: \fI\%#49322\fP)
  181430. .IP \(bu 2
  181431. \fBPR\fP \fI\%#49322\fP: (\fI\%dwoz\fP) Encode shell commands explicitly.
  181432. @ \fI2018\-08\-25 04:43:26 UTC\fP
  181433. .INDENT 2.0
  181434. .IP \(bu 2
  181435. 5766e98 Merge pull request \fI\%#49322\fP from dwoz/state_module_test_fix
  181436. .IP \(bu 2
  181437. 1f7d50d Encode shell commands explicitly.
  181438. .UNINDENT
  181439. .IP \(bu 2
  181440. \fBPR\fP \fI\%#49299\fP: (\fI\%dwoz\fP) Work around cmd.run unicode issues in test for now
  181441. @ \fI2018\-08\-25 04:43:03 UTC\fP
  181442. .INDENT 2.0
  181443. .IP \(bu 2
  181444. b47da0a Merge pull request \fI\%#49299\fP from dwoz/test_fix
  181445. .IP \(bu 2
  181446. f4bd644 Fix string formatting wart in file state tests
  181447. .IP \(bu 2
  181448. e84e608 Fix wart in file state test
  181449. .IP \(bu 2
  181450. 71d4465 Work around cmd.run unicode issues in test for now
  181451. .UNINDENT
  181452. .IP \(bu 2
  181453. \fBISSUE\fP \fI\%#48299\fP: (\fI\%dosercz\fP) git.latest reports deleted tags in remote repo as new_tags in changes (refs: \fI\%#49305\fP)
  181454. .IP \(bu 2
  181455. \fBPR\fP \fI\%#49305\fP: (\fI\%terminalmage\fP) Allow git.latest to remove local tags which have been removed remotely (refs: \fI\%#49336\fP)
  181456. @ \fI2018\-08\-24 17:29:03 UTC\fP
  181457. .INDENT 2.0
  181458. .IP \(bu 2
  181459. b65890c Merge pull request \fI\%#49305\fP from terminalmage/issue48299
  181460. .IP \(bu 2
  181461. 4a093d9 lint
  181462. .IP \(bu 2
  181463. ed7b994 Gate tag manipulation behind a sync_tags argument
  181464. .IP \(bu 2
  181465. 29de855 Add test for a removed tag
  181466. .IP \(bu 2
  181467. eb9a459 Properly handle tags deleted from remote repository
  181468. .IP \(bu 2
  181469. 916c15a Add git.tag function
  181470. .UNINDENT
  181471. .IP \(bu 2
  181472. \fBISSUE\fP \fI\%#49009\fP: (\fI\%msciciel\fP) file_ignore_regex / file_ignore_glob not working properly (refs: \fI\%#49308\fP)
  181473. .IP \(bu 2
  181474. \fBPR\fP \fI\%#49308\fP: (\fI\%terminalmage\fP) Don\(aqt include ignored paths in mtime map
  181475. @ \fI2018\-08\-24 17:28:41 UTC\fP
  181476. .INDENT 2.0
  181477. .IP \(bu 2
  181478. 459354a Merge pull request \fI\%#49308\fP from terminalmage/issue49009
  181479. .IP \(bu 2
  181480. 2badd7f Don\(aqt include ignored paths in mtime map
  181481. .UNINDENT
  181482. .IP \(bu 2
  181483. \fBPR\fP \fI\%#49282\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3
  181484. @ \fI2018\-08\-24 16:45:50 UTC\fP
  181485. .INDENT 2.0
  181486. .IP \(bu 2
  181487. 914bb09 Merge pull request \fI\%#49282\fP from rallytime/merge\-2018.3
  181488. .IP \(bu 2
  181489. 21a51c9 Add \(aqminion_data_cache: True\(aq to mocked opts for minions unit tests
  181490. .IP \(bu 2
  181491. 196ce3f Call the \fIwith_tempfile\fP decorator correctly for 2018.3
  181492. .IP \(bu 2
  181493. 37f24fd Fix unit test for file state
  181494. .IP \(bu 2
  181495. 6f9a158 Update old utils paths with new paths
  181496. .IP \(bu 2
  181497. c3ecefc Merge branch \(aq2017.7\(aq into \(aq2018.3\(aq
  181498. .INDENT 2.0
  181499. .IP \(bu 2
  181500. 879c3ad Merge pull request \fI\%#49262\fP from bloomberg/short\-circuit
  181501. .INDENT 2.0
  181502. .IP \(bu 2
  181503. a3594db extend #488588 to cover SyncAuth class
  181504. .UNINDENT
  181505. .IP \(bu 2
  181506. 1900aff Merge pull request \fI\%#49144\fP from twangboy/fix_48163
  181507. .INDENT 2.0
  181508. .IP \(bu 2
  181509. ff5ec86 Work with seconds
  181510. .IP \(bu 2
  181511. 7264008 Fix some lint (remove whitespace)\(ga
  181512. .IP \(bu 2
  181513. 4f9973d Improve timeout in delete
  181514. .IP \(bu 2
  181515. a6ecb75 Remove testing debug stuff
  181516. .IP \(bu 2
  181517. 7dd7953 Fix start/stop functions
  181518. .IP \(bu 2
  181519. fade0a6 Merge pull request \fI\%#10\fP from damon\-atkins/patch\-1
  181520. .INDENT 2.0
  181521. .IP \(bu 2
  181522. 57c4b9f 2017_win_service_damon
  181523. .UNINDENT
  181524. .IP \(bu 2
  181525. d44eaee Add timeout support to the state
  181526. .IP \(bu 2
  181527. d579b3e Add timeout parameter
  181528. .UNINDENT
  181529. .IP \(bu 2
  181530. 395bae6 Merge pull request \fI\%#49259\fP from gtmanfred/flaky\-2017.7
  181531. .INDENT 2.0
  181532. .IP \(bu 2
  181533. 93a576e flaky tests are flaky yo
  181534. .IP \(bu 2
  181535. f518bd3 mark orchestration state tests as flaky
  181536. .UNINDENT
  181537. .IP \(bu 2
  181538. 62cc0df Merge pull request \fI\%#49231\fP from minusf/mount\-check\-name
  181539. .INDENT 2.0
  181540. .IP \(bu 2
  181541. eb5cab3 fix some underhanging indent while here...
  181542. .IP \(bu 2
  181543. ec2a091 check for mandatory parameters to avoid false positives
  181544. .UNINDENT
  181545. .IP \(bu 2
  181546. d55d484 Merge pull request \fI\%#49242\fP from dwoz/blockreplace_better_fix
  181547. .INDENT 2.0
  181548. .IP \(bu 2
  181549. 72c3727 Use six to make sure content is unicode
  181550. .IP \(bu 2
  181551. 1bf0b18 Better blockfix replace
  181552. .IP \(bu 2
  181553. dd4fcd3 Revert "Multiple block replace test fixes"
  181554. .IP \(bu 2
  181555. d335842 Use os.linesep.join instead of textwrap.dedent
  181556. .UNINDENT
  181557. .IP \(bu 2
  181558. 85f6d36 Merge pull request \fI\%#49236\fP from terminalmage/issue32737
  181559. .INDENT 2.0
  181560. .IP \(bu 2
  181561. 233bbae Allow compound matching in eauth config expressions
  181562. .UNINDENT
  181563. .IP \(bu 2
  181564. 5ba7f60 Merge pull request \fI\%#49187\fP from erwindon/py27fixnumberformat
  181565. .INDENT 2.0
  181566. .IP \(bu 2
  181567. 12261a5 trailing whitespace removal
  181568. .IP \(bu 2
  181569. 2149e22 Fix for \fI\%#45620\fP: "Salt CLI is rounding floats to 2 decimal places" (actually: Salt CLI is using only 12 digits for precision)
  181570. .UNINDENT
  181571. .IP \(bu 2
  181572. f8c55b8 Merge pull request \fI\%#49184\fP from ralish/external_nodes_docs
  181573. .INDENT 2.0
  181574. .IP \(bu 2
  181575. 4fe38dc Merge branch \(aq2017.7\(aq into external_nodes_docs
  181576. .IP \(bu 2
  181577. 2e29b29 Remove obsolete documentation on external_nodes setting
  181578. .UNINDENT
  181579. .IP \(bu 2
  181580. 65205a4 Merge pull request \fI\%#49185\fP from ralish/enable_gpus_grains_doc
  181581. .INDENT 2.0
  181582. .IP \(bu 2
  181583. 2fe675c Update documentation to correctly state enable_gpu_grains default
  181584. .UNINDENT
  181585. .IP \(bu 2
  181586. 5aa282e Merge pull request \fI\%#48032\fP from zer0def/parted\-naming
  181587. .INDENT 2.0
  181588. .IP \(bu 2
  181589. 563ad25 Merge branch \(aq2017.7\(aq into parted\-naming
  181590. .IP \(bu 2
  181591. 07f8631 Fixed partition names with spaces effectively containing only the first word.
  181592. .UNINDENT
  181593. .IP \(bu 2
  181594. 0157eac Merge pull request \fI\%#49164\fP from terminalmage/issue49154
  181595. .INDENT 2.0
  181596. .IP \(bu 2
  181597. c2aba7a Merge branch \(aq2017.7\(aq into issue49154
  181598. .IP \(bu 2
  181599. b4544d7 Add keep_source integration tests
  181600. .IP \(bu 2
  181601. 82638c6 Fix bug in keep_source for non\-templated salt:// file sources
  181602. .UNINDENT
  181603. .IP \(bu 2
  181604. b510441 Merge pull request \fI\%#49179\fP from dwoz/test_unit_states_file
  181605. .INDENT 2.0
  181606. .IP \(bu 2
  181607. 913ea5e Fix directory unit test
  181608. .IP \(bu 2
  181609. 3363238 Account for normalized dirs in unit tests
  181610. .UNINDENT
  181611. .IP \(bu 2
  181612. 7486fd5 Merge pull request \fI\%#49162\fP from erwindon/wheel_error_error
  181613. .INDENT 2.0
  181614. .IP \(bu 2
  181615. ca5df04 Merge branch \(aq2017.7\(aq into wheel_error_error
  181616. .IP \(bu 2
  181617. 4335c5c Must have 2 lines between imports and code
  181618. .IP \(bu 2
  181619. ec1f013 Improved solution as per @dwoz\(aqs suggestion
  181620. .IP \(bu 2
  181621. 20f134e Fixed unknown \(aqexceptions\(aq under Python3 (\fI\%#49152\fP)
  181622. .UNINDENT
  181623. .IP \(bu 2
  181624. 7043286 Merge pull request \fI\%#49143\fP from Ch3LL/bp\-49142
  181625. .INDENT 2.0
  181626. .IP \(bu 2
  181627. d2e73cc Remove \-Z script_arg for cloud tests
  181628. .UNINDENT
  181629. .IP \(bu 2
  181630. 8ab55f5 Merge pull request \fI\%#49167\fP from dwoz/filefix
  181631. .INDENT 2.0
  181632. .IP \(bu 2
  181633. b5ba073 Simplify dict keys lookup
  181634. .IP \(bu 2
  181635. 6844251 Fix remaining file state integration tests (py3)
  181636. .UNINDENT
  181637. .IP \(bu 2
  181638. 90bd560 Merge pull request \fI\%#49163\fP from dwoz/tmp_dir
  181639. .INDENT 2.0
  181640. .IP \(bu 2
  181641. 3384864 add Exception type
  181642. .IP \(bu 2
  181643. 9da79dd0 Allow test suite to finish if tmp dir removal fails
  181644. .UNINDENT
  181645. .IP \(bu 2
  181646. aa01a67 Merge pull request \fI\%#49136\fP from Ch3LL/bootstrap_2017.7
  181647. .INDENT 2.0
  181648. .IP \(bu 2
  181649. de40dfb [2017.7] Update bootstrap script to latest release (2018.08.15)
  181650. .UNINDENT
  181651. .IP \(bu 2
  181652. 29fccbf Merge pull request \fI\%#49118\fP from dwoz/test_file_fixes
  181653. .INDENT 2.0
  181654. .IP \(bu 2
  181655. c6b781e Multiple fixes for integration.states.test_file
  181656. .UNINDENT
  181657. .IP \(bu 2
  181658. 133e400 Merge pull request \fI\%#49103\fP from dwoz/cmd_test_fix
  181659. .IP \(bu 2
  181660. 566a4ea Install the launcher so we can execute py files
  181661. .UNINDENT
  181662. .UNINDENT
  181663. .IP \(bu 2
  181664. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#1075\fP: (\fI\%Ch3LL\fP) [2018.3.3] arch python3 tests do not finish (refs: \fI\%#49303\fP)
  181665. .IP \(bu 2
  181666. \fBPR\fP \fI\%#49303\fP: (\fI\%gtmanfred\fP) use os._exit instead of sys.exit when daemonizing
  181667. @ \fI2018\-08\-24 14:15:54 UTC\fP
  181668. .INDENT 2.0
  181669. .IP \(bu 2
  181670. 4c81c2e Merge pull request \fI\%#49303\fP from gtmanfred/forking
  181671. .IP \(bu 2
  181672. e06ce49 use os._exit instead of sys.exit when daemonizing
  181673. .UNINDENT
  181674. .IP \(bu 2
  181675. \fBPR\fP \fI\%#49276\fP: (\fI\%terminalmage\fP) Fix paths to moved functions
  181676. @ \fI2018\-08\-23 16:38:55 UTC\fP
  181677. .INDENT 2.0
  181678. .IP \(bu 2
  181679. 158c1ca Merge pull request \fI\%#49276\fP from terminalmage/fix\-moved\-funcs
  181680. .IP \(bu 2
  181681. 322a988 Fix paths to moved functions
  181682. .UNINDENT
  181683. .IP \(bu 2
  181684. \fBPR\fP \fI\%#49270\fP: (\fI\%dwoz\fP) Add async helper to test_sock_path_len
  181685. @ \fI2018\-08\-23 16:17:54 UTC\fP
  181686. .INDENT 2.0
  181687. .IP \(bu 2
  181688. ef39f85 Merge pull request \fI\%#49270\fP from dwoz/test_event_fix
  181689. .IP \(bu 2
  181690. 51bf79a Add async helper to test_sock_path_len
  181691. .UNINDENT
  181692. .IP \(bu 2
  181693. \fBPR\fP \fI\%#49199\fP: (\fI\%jacobweinstock\fP) Fix typeerror unicode
  181694. @ \fI2018\-08\-23 14:38:17 UTC\fP
  181695. .INDENT 2.0
  181696. .IP \(bu 2
  181697. 5da743a Merge pull request \fI\%#49199\fP from jacobweinstock/fix\-typeerror\-unicode
  181698. .IP \(bu 2
  181699. 25608ef Merge branch \(aq2018.3\(aq into fix\-typeerror\-unicode
  181700. .IP \(bu 2
  181701. 11ad11c add unicode_literals back to handle logging and other things.
  181702. .IP \(bu 2
  181703. 6944baf add salt.utils.stringutils.to_bytes. add comment on unicode_literals.
  181704. .UNINDENT
  181705. .IP \(bu 2
  181706. \fBISSUE\fP \fI\%#49174\fP: (\fI\%rbthomp\fP) Beacon diskusage reporting incorrect diskusage value. (refs: \fI\%#49264\fP)
  181707. .IP \(bu 2
  181708. \fBPR\fP \fI\%#49264\fP: (\fI\%gtmanfred\fP) fix diskusage beacon
  181709. @ \fI2018\-08\-23 14:36:07 UTC\fP
  181710. .INDENT 2.0
  181711. .IP \(bu 2
  181712. e28f8f1 Merge pull request \fI\%#49264\fP from gtmanfred/diskusage
  181713. .IP \(bu 2
  181714. 15857c2c fix diskusage
  181715. .UNINDENT
  181716. .IP \(bu 2
  181717. \fBPR\fP \fI\%#49253\fP: (\fI\%gtmanfred\fP) skip ID 7 for vmware hard drives (refs: \fI\%#49278\fP)
  181718. @ \fI2018\-08\-23 14:35:31 UTC\fP
  181719. .INDENT 2.0
  181720. .IP \(bu 2
  181721. f6b2b93 Merge pull request \fI\%#49253\fP from gtmanfred/vmware
  181722. .IP \(bu 2
  181723. 6e776ca skip ID 7 for vmware hard drives
  181724. .UNINDENT
  181725. .IP \(bu 2
  181726. \fBISSUE\fP \fI\%#49159\fP: (\fI\%wenxin\-wang\fP) incorrect default value of minion\(aqs \(aqipv6\(aq option (refs: \fI\%#49263\fP)
  181727. .IP \(bu 2
  181728. \fBPR\fP \fI\%#49263\fP: (\fI\%terminalmage\fP) Revert default value for ipv6 to None
  181729. @ \fI2018\-08\-23 13:02:13 UTC\fP
  181730. .INDENT 2.0
  181731. .IP \(bu 2
  181732. 2a2bd48 Merge pull request \fI\%#49263\fP from terminalmage/issue49159
  181733. .IP \(bu 2
  181734. bf5d907 Revert default value for ipv6 to None
  181735. .UNINDENT
  181736. .IP \(bu 2
  181737. \fBPR\fP \fI\%#49244\fP: (\fI\%dwoz\fP) Test fixes: unit.fileserver.test_gitfs
  181738. @ \fI2018\-08\-22 20:19:42 UTC\fP
  181739. .INDENT 2.0
  181740. .IP \(bu 2
  181741. ec32428 Merge pull request \fI\%#49244\fP from dwoz/gitfs_fixes
  181742. .IP \(bu 2
  181743. b533fa1 Simplify by using to_unicode helper
  181744. .IP \(bu 2
  181745. 5a0cda5 Older GitPython version do not have a close method
  181746. .IP \(bu 2
  181747. 7452715 Fix up fileserver.test_gitfs tests on windows
  181748. .IP \(bu 2
  181749. 800aa25 Remove unicode filenames on windows python 2
  181750. .UNINDENT
  181751. .IP \(bu 2
  181752. \fBPR\fP \fI\%#49265\fP: (\fI\%terminalmage\fP) Fix failing unit file module unit tests
  181753. @ \fI2018\-08\-22 19:35:07 UTC\fP
  181754. .INDENT 2.0
  181755. .IP \(bu 2
  181756. 2d7f846 Merge pull request \fI\%#49265\fP from terminalmage/fix\-failing\-file\-tests
  181757. .IP \(bu 2
  181758. 6b51f71 Fix failing unit file module unit tests
  181759. .UNINDENT
  181760. .IP \(bu 2
  181761. \fBPR\fP \fI\%#49240\fP: (\fI\%dwoz\fP) file state test fixes
  181762. @ \fI2018\-08\-22 18:16:42 UTC\fP
  181763. .INDENT 2.0
  181764. .IP \(bu 2
  181765. 4634752 Merge pull request \fI\%#49240\fP from dwoz/state_tests
  181766. .IP \(bu 2
  181767. 1679a19 Work around listdir encoding issues on py2 windows
  181768. .IP \(bu 2
  181769. 07ed841 file state test fixes
  181770. .UNINDENT
  181771. .IP \(bu 2
  181772. \fBPR\fP \fI\%#49260\fP: (\fI\%gtmanfred\fP) [2018.3] flaky tests
  181773. @ \fI2018\-08\-22 16:40:39 UTC\fP
  181774. .INDENT 2.0
  181775. .IP \(bu 2
  181776. 55ded9f Merge pull request \fI\%#49260\fP from gtmanfred/flaky\-2018.3
  181777. .IP \(bu 2
  181778. 41973ff flaky tests are flaky yo
  181779. .IP \(bu 2
  181780. c927f1b mark orchestration state tests as flaky
  181781. .UNINDENT
  181782. .IP \(bu 2
  181783. \fBPR\fP \fI\%#49245\fP: (\fI\%dwoz\fP) Skip grep unit tests on windows
  181784. @ \fI2018\-08\-22 15:18:08 UTC\fP
  181785. .INDENT 2.0
  181786. .IP \(bu 2
  181787. 6d023ca Merge pull request \fI\%#49245\fP from dwoz/skip_grep_windows
  181788. .IP \(bu 2
  181789. e305891 Skip grep unit tests on windows
  181790. .UNINDENT
  181791. .IP \(bu 2
  181792. \fBPR\fP \fI\%#49243\fP: (\fI\%dwoz\fP) Revert newline translation change
  181793. @ \fI2018\-08\-22 15:12:26 UTC\fP
  181794. .INDENT 2.0
  181795. .IP \(bu 2
  181796. 75beede Merge pull request \fI\%#49243\fP from dwoz/fileserver_tests
  181797. .IP \(bu 2
  181798. 86e3c46 Revert newline translation change
  181799. .UNINDENT
  181800. .IP \(bu 2
  181801. \fBPR\fP \fI\%#48545\fP: (\fI\%bbinet\fP) Fix unreachable ssh\-id\-wrapper template when root_dir is relative
  181802. @ \fI2018\-08\-21 15:12:01 UTC\fP
  181803. .INDENT 2.0
  181804. .IP \(bu 2
  181805. 60605f0 Merge pull request \fI\%#48545\fP from bbinet/fix\-unreacheable\-ssh\-id\-wrapper
  181806. .IP \(bu 2
  181807. 284dcf7 Fix unreachable ssh\-id\-wrapper template when root_dir is relative
  181808. .UNINDENT
  181809. .IP \(bu 2
  181810. \fBISSUE\fP \fI\%#49204\fP: (\fI\%mchugh19\fP) file.directory state fails if directory contains an invalid symlink (refs: \fI\%#49209\fP, \fI\%#49827\fP)
  181811. .IP \(bu 2
  181812. \fBPR\fP \fI\%#49209\fP: (\fI\%gtmanfred\fP) don\(aqt blow up check_perms if lsattr file doesn\(aqt exist
  181813. @ \fI2018\-08\-20 19:02:42 UTC\fP
  181814. .INDENT 2.0
  181815. .IP \(bu 2
  181816. a4c51a9 Merge pull request \fI\%#49209\fP from gtmanfred/lsattr
  181817. .IP \(bu 2
  181818. ab918ca don\(aqt blow up check_perms if lsattr file doesn\(aqt exist
  181819. .UNINDENT
  181820. .IP \(bu 2
  181821. \fBISSUE\fP \fI\%#49060\fP: (\fI\%The\-Loeki\fP) On Py3, redis job cache throws TypeError bytes / str (refs: \fI\%#49190\fP)
  181822. .IP \(bu 2
  181823. \fBPR\fP \fI\%#49190\fP: (\fI\%The\-Loeki\fP) decode_reponses=True on all Redis API interfaces
  181824. @ \fI2018\-08\-20 18:57:26 UTC\fP
  181825. .INDENT 2.0
  181826. .IP \(bu 2
  181827. d29af00 Merge pull request \fI\%#49190\fP from The\-Loeki/redis\-fix
  181828. .IP \(bu 2
  181829. d126318 Merge branch \(aq2018.3\(aq into redis\-fix
  181830. .IP \(bu 2
  181831. 7ff72eb redis cache no utf8 of course
  181832. .IP \(bu 2
  181833. bdaef39 decode_reponses=True on all Redis API interfaces
  181834. .UNINDENT
  181835. .IP \(bu 2
  181836. \fBPR\fP \fI\%#49197\fP: (\fI\%dwoz\fP) File state line ending fixes
  181837. @ \fI2018\-08\-20 18:45:04 UTC\fP
  181838. .INDENT 2.0
  181839. .IP \(bu 2
  181840. 644ba3d Merge pull request \fI\%#49197\fP from dwoz/test_fix
  181841. .IP \(bu 2
  181842. a7cfe35 File state line ending fixes
  181843. .UNINDENT
  181844. .IP \(bu 2
  181845. \fBPR\fP \fI\%#49192\fP: (\fI\%dwoz\fP) Test fixes flaky test and unicode environment key/value
  181846. @ \fI2018\-08\-19 10:48:03 UTC\fP
  181847. .INDENT 2.0
  181848. .IP \(bu 2
  181849. aaa9e37 Merge pull request \fI\%#49192\fP from dwoz/git_test_fix_ng
  181850. .IP \(bu 2
  181851. 8ea89e9 Test fixes
  181852. .UNINDENT
  181853. .IP \(bu 2
  181854. \fBPR\fP \fI\%#49191\fP: (\fI\%The\-Loeki\fP) Make salt.utils.vault._get_connection publicly available
  181855. @ \fI2018\-08\-19 10:39:35 UTC\fP
  181856. .INDENT 2.0
  181857. .IP \(bu 2
  181858. 63cc737 Merge pull request \fI\%#49191\fP from The\-Loeki/vault_publ_conn
  181859. .IP \(bu 2
  181860. cab4192 publicize salt.utils.get_vault_connection()
  181861. .UNINDENT
  181862. .IP \(bu 2
  181863. \fBPR\fP \fI\%#49189\fP: (\fI\%dwoz\fP) Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  181864. @ \fI2018\-08\-18 20:51:59 UTC\fP
  181865. .INDENT 2.0
  181866. .IP \(bu 2
  181867. \fBPR\fP \fI\%#49171\fP: (\fI\%Ch3LL\fP) [2018.3.3] cherry pick \fI\%#49103\fP (refs: \fI\%#49189\fP)
  181868. .IP \(bu 2
  181869. \fBPR\fP \fI\%#49103\fP: (\fI\%dwoz\fP) Install the launcher so we can execute py files (refs: \fI\%#49189\fP, \fI\%#49171\fP)
  181870. .IP \(bu 2
  181871. 1d843d4 Merge pull request \fI\%#49189\fP from dwoz/cmd_test_fix
  181872. .IP \(bu 2
  181873. 8fd0c38 Merge pull request \fI\%#49171\fP from Ch3LL/bp\-49103
  181874. .UNINDENT
  181875. .IP \(bu 2
  181876. \fBPR\fP \fI\%#49188\fP: (\fI\%cachedout\fP) Fix bug in test_pkg
  181877. @ \fI2018\-08\-18 17:36:22 UTC\fP
  181878. .INDENT 2.0
  181879. .IP \(bu 2
  181880. 5f905d7 Merge pull request \fI\%#49188\fP from cachedout/fix_test_pkg
  181881. .IP \(bu 2
  181882. 2cd6519 Fix bug in test_pkg
  181883. .UNINDENT
  181884. .IP \(bu 2
  181885. \fBPR\fP \fI\%#49056\fP: (\fI\%Ch3LL\fP) Add orch runner with mine.get integration tests
  181886. @ \fI2018\-08\-18 12:54:48 UTC\fP
  181887. .INDENT 2.0
  181888. .IP \(bu 2
  181889. 6fb8d4a Merge pull request \fI\%#49056\fP from Ch3LL/test_mine
  181890. .IP \(bu 2
  181891. 3a8fed5 Handle race condition when running mine.update in orch mine test
  181892. .IP \(bu 2
  181893. b4e421c Add orch runner with mine.get integration tests
  181894. .UNINDENT
  181895. .IP \(bu 2
  181896. \fBPR\fP \fI\%#49126\fP: (\fI\%The\-Loeki\fP) TLS cert_info fixes
  181897. @ \fI2018\-08\-18 12:19:33 UTC\fP
  181898. .INDENT 2.0
  181899. .IP \(bu 2
  181900. \fBPR\fP \fI\%#49123\fP: (\fI\%The\-Loeki\fP) Fix return of tls.cert_info extensions (refs: \fI\%#49126\fP)
  181901. .IP \(bu 2
  181902. 0d0e11d Merge pull request \fI\%#49126\fP from The\-Loeki/tls\-impr
  181903. .IP \(bu 2
  181904. 22240c0 Merge branch \(aq2018.3\(aq into tls\-impr
  181905. .IP \(bu 2
  181906. 3ce2c3e tls.cert_info: strip newlines/spaces from extensions
  181907. .IP \(bu 2
  181908. d522d01 tls alt_names fix
  181909. .IP \(bu 2
  181910. d435dbc Fix bytes\-return of tls.cert_info extensions
  181911. .IP \(bu 2
  181912. 9c7d3ea TLS cert_info: Accept IP Addresses as valid alt_names
  181913. .IP \(bu 2
  181914. 7d6ecaf tls.check_info: Allow PEM as string input
  181915. .UNINDENT
  181916. .IP \(bu 2
  181917. \fBPR\fP \fI\%#49186\fP: (\fI\%dwoz\fP) Fix typo in \fI\%#49180\fP
  181918. @ \fI2018\-08\-18 12:07:00 UTC\fP
  181919. .INDENT 2.0
  181920. .IP \(bu 2
  181921. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49186\fP)
  181922. .IP \(bu 2
  181923. 7dd70eb Merge pull request \fI\%#49186\fP from dwoz/test_fixes
  181924. .IP \(bu 2
  181925. 95efc51 Fix typo
  181926. .UNINDENT
  181927. .IP \(bu 2
  181928. \fBPR\fP \fI\%#49180\fP: (\fI\%dwoz\fP) Cherry\-pick test fixes (refs: \fI\%#49186\fP)
  181929. @ \fI2018\-08\-18 04:08:17 UTC\fP
  181930. .INDENT 2.0
  181931. .IP \(bu 2
  181932. 6d57ac1 Merge pull request \fI\%#49180\fP from dwoz/test_fixes
  181933. .IP \(bu 2
  181934. 3c49544 Account for file renames
  181935. .IP \(bu 2
  181936. acc144d Fix directory unit test
  181937. .IP \(bu 2
  181938. a7ee07a Fix is_windows checks
  181939. .IP \(bu 2
  181940. 74b197f Account for normalized dirs in unit tests
  181941. .IP \(bu 2
  181942. a18d937 Merge pull request \fI\%#49167\fP from dwoz/filefix
  181943. .UNINDENT
  181944. .IP \(bu 2
  181945. \fBPR\fP \fI\%#49091\fP: (\fI\%terminalmage\fP) Rename/re\-organize test files in 2018.3 branch
  181946. @ \fI2018\-08\-17 12:26:44 UTC\fP
  181947. .INDENT 2.0
  181948. .IP \(bu 2
  181949. \fBPR\fP \fI\%#47337\fP: (\fI\%terminalmage\fP) Modify runtests.py to run a subset of tests based on filenames (refs: \fI\%#49091\fP)
  181950. .IP \(bu 2
  181951. 8bda1e5 Merge pull request \fI\%#49091\fP from terminalmage/rename\-test\-files
  181952. .IP \(bu 2
  181953. 3d8523b Fix import for moved module
  181954. .IP \(bu 2
  181955. 613f061 Lint
  181956. .IP \(bu 2
  181957. 81f272f Rename outputter tests to match naming convention
  181958. .IP \(bu 2
  181959. fba0336 Rename venafi test module to bring it closer to the naming convention
  181960. .IP \(bu 2
  181961. 9c14500 Rename exec module integration test files to respect naming convention
  181962. .IP \(bu 2
  181963. 91fa09e Rename providers to clouds to respect naming convention
  181964. .IP \(bu 2
  181965. d56dcdd Rename "providers" dir to "clouds" to respect naming convention
  181966. .IP \(bu 2
  181967. f1b7d54 Rename virtualenv state test module to respect naming convention
  181968. .IP \(bu 2
  181969. c1f94db Split ssh state tests into separate modules to respect naming convention
  181970. .IP \(bu 2
  181971. 9c8ba4a Split mysql database tests into two modules to respect naming convention
  181972. .IP \(bu 2
  181973. d51748e Rename some files to avoid them being identified as test modules
  181974. .IP \(bu 2
  181975. 1fccbf7 Rename acl unit test module to confirm to naming convention
  181976. .IP \(bu 2
  181977. 160223d Consolidate/move fileclient/fileserver tests to conform to naming convention
  181978. .IP \(bu 2
  181979. 1aacf77 Rename/consolidate salt.utils unit tests to conform to naming convention
  181980. .IP \(bu 2
  181981. 5a0990b Rename pillar unit test modules to reflect naming convention
  181982. .IP \(bu 2
  181983. 516594b Consolidate netapi tests and move them to reflect naming convention
  181984. .IP \(bu 2
  181985. 8f5fef5 Consolitdate and move salt\-ssh unit tests to proper location
  181986. .IP \(bu 2
  181987. 9801ce3 Consolidate and move loader tests to test/unit/test_loader.py
  181988. .IP \(bu 2
  181989. f72bbc5 Rename beacon unit test modules to conform with naming convention
  181990. .IP \(bu 2
  181991. fa76cb6 Move inspectlib tests to conform with naming convention
  181992. .IP \(bu 2
  181993. 81e3823 Move shared kernelpkg test cases to tests/support/
  181994. .IP \(bu 2
  181995. e0d95b6 Consolidate misplaced tests into tests/unit/test_config.py
  181996. .IP \(bu 2
  181997. 3a1ec12 Rename slack engine test file to respect naming convention
  181998. .IP \(bu 2
  181999. c9c9d20 Rename test_map_conf test file to respect naming convention
  182000. .IP \(bu 2
  182001. 5c936c0 Rename the aptpkg state module to respect naming convention
  182002. .IP \(bu 2
  182003. ac50eb8 Remove redundant "test" from filename
  182004. .IP \(bu 2
  182005. b03a563 Move jinja templating tests alongside salt/utils/jinja.py\(aqs tests
  182006. .IP \(bu 2
  182007. b49d8df Fix bad copypasta in docstring
  182008. .IP \(bu 2
  182009. 069102b Rename sentry returner test to match naming convention
  182010. .IP \(bu 2
  182011. 2398083 Use tests.support.paths instead of deprecated integration module
  182012. .IP \(bu 2
  182013. ffb842d Move salt.utils.context tests to their proper location
  182014. .IP \(bu 2
  182015. d69069b Move context cache tests to their proper location
  182016. .UNINDENT
  182017. .IP \(bu 2
  182018. \fBPR\fP \fI\%#49062\fP: (\fI\%weswhet\fP) fix memoize on available macOS services
  182019. @ \fI2018\-08\-15 15:34:25 UTC\fP
  182020. .INDENT 2.0
  182021. .IP \(bu 2
  182022. c8510a6 Merge pull request \fI\%#49062\fP from weswhet/fix\-mac\-available\-services
  182023. .IP \(bu 2
  182024. f1b40c4 decorator link fix, updating context names, as well as updating macutils tests for latest changes
  182025. .IP \(bu 2
  182026. 1e4497d fixing an issue with memoize on macOS services, switching to useing __context__ instead
  182027. .UNINDENT
  182028. .IP \(bu 2
  182029. \fBISSUE\fP \fI\%#49100\fP: (\fI\%pruiz\fP) salt.utils.yamldumper.dump/safe_dump incorrectly return \(aqstr\(aq instead of unicode on python2.7 (centos) (refs: \fI\%#49125\fP)
  182030. .IP \(bu 2
  182031. \fBPR\fP \fI\%#49125\fP: (\fI\%terminalmage\fP) Ensure that we don\(aqt feed jinja2.Markup() a str type
  182032. @ \fI2018\-08\-15 04:02:30 UTC\fP
  182033. .INDENT 2.0
  182034. .IP \(bu 2
  182035. 21435be Merge pull request \fI\%#49125\fP from terminalmage/issue49100
  182036. .IP \(bu 2
  182037. ec258e2 Add integration tests for yaml and json filters
  182038. .IP \(bu 2
  182039. f5f16cf Ensure that we don\(aqt feed jinja2.Markup() a str type
  182040. .UNINDENT
  182041. .UNINDENT
  182042. .SS Salt 2018.3.5 Release Notes
  182043. .sp
  182044. Version 2018.3.5 is a CVE\-fix release for 2018.3.0\&.
  182045. .SS Security Fix
  182046. .sp
  182047. \fBCVE\-2019\-17361\fP
  182048. .sp
  182049. With the Salt NetAPI enabled in addition to having a SSH roster defined,
  182050. unauthenticated access is possible when specifying the client as SSH.
  182051. Additionally, when the raw_shell option is specified any arbitrary command
  182052. may be run on the Salt master when specifying SSH options.
  182053. .SS Salt 2017.7.0 Release Notes \- Codename Nitrogen
  182054. .SS Python 3
  182055. .sp
  182056. The 2017.7 Salt Release adds initial Python 3 support.
  182057. .sp
  182058. The default Python version of Salt will remain Python 2, although Python 3 packages will be supplied for users who want to help test this new feature.
  182059. .SS Python 2.6 Deprecation
  182060. .sp
  182061. Salt will no longer support Python 2.6. We will provide python2.7 packages on our \fI\%repo\fP for RedHat and CentOS 6 to ensure users can still run Salt on these platforms.
  182062. .sp
  182063. As this will impact the installation of additional dependencies for salt modules please use pip packages if there is not a package available in a repository. You will need to install the python27\-pip package to get access to the correct pip27 executable: \fByum install python27\-pip\fP
  182064. .SS Known Issues
  182065. .sp
  182066. The following salt\-cloud drivers have known issues running with Python 3. These drivers will not work with Python 3, and Python 2.7 should be used instead:
  182067. .INDENT 0.0
  182068. .IP \(bu 2
  182069. Joyent
  182070. .IP \(bu 2
  182071. When running under Python 3, users who require Unicode support should ensure that a locale is set on their machines.
  182072. Users using the \fIC\fP locale are advised to switch to a UTF\-aware locale to ensure proper functionality with Salt with Python 3.
  182073. .UNINDENT
  182074. .SS Remember to update the Salt Master first
  182075. .sp
  182076. Salt\(aqs policy has always been that when upgrading, the minion should never be
  182077. on a newer version than the master. Specifically with this update, because of
  182078. changes in the fileclient, the 2017.7 minion requires a 2017.7 master.
  182079. .sp
  182080. Backwards compatibility is still maintained, so older minions can still be used.
  182081. .sp
  182082. More information can be found in the Salt FAQ
  182083. .SS States Added for Management of systemd Unit Masking
  182084. .sp
  182085. The \fBservice.masked\fP and
  182086. \fBservice.umasked\fP states have been
  182087. added to allow Salt to manage masking of systemd units.
  182088. .sp
  182089. Additionally, the following functions in the \fBsystemd\fP execution module have changed to accommodate the fact
  182090. that indefinite and runtime masks can co\-exist for the same unit:
  182091. .INDENT 0.0
  182092. .IP \(bu 2
  182093. \fBservice.masked\fP \- The return from
  182094. this function has changed from previous releases. Before, \fBFalse\fP would be
  182095. returned if the unit was not masked, and the output of \fBsystemctl is\-enabled
  182096. <unit name>\fP would be returned if the unit was masked. However, since
  182097. indefinite and runtime masks can exist for the same unit at the same time,
  182098. this function has been altered to accept a \fBruntime\fP argument. If \fBTrue\fP,
  182099. the minion will be checked for a runtime mask assigned to the named unit. If
  182100. \fBFalse\fP, then the minion will be checked for an indefinite mask. If one is
  182101. found, \fBTrue\fP will be returned. If not, then \fBFalse\fP will be returned.
  182102. .IP \(bu 2
  182103. \fBservice.masked\fP \- This function used
  182104. to just run \fBsystemctl is\-enabled <unit name>\fP and based on the return
  182105. from this function the corresponding mask type would be removed. However, if
  182106. both runtime and indefinite masks are set for the same unit, then \fBsystemctl
  182107. is\-enabled <unit name>\fP would show just the indefinite mask. The indefinite
  182108. mask would be removed, but the runtime mask would remain. The function has
  182109. been modified to accept a \fBruntime\fP argument, and will attempt to remove a
  182110. runtime mask if that argument is set to \fBTrue\fP\&. If set to \fBFalse\fP, it
  182111. will attempt to remove an indefinite mask.
  182112. .UNINDENT
  182113. .sp
  182114. These new \fBruntime\fP arguments default to \fBFalse\fP\&.
  182115. .SS Pillar Encryption
  182116. .sp
  182117. Beginning in 2016.3.0 the CLI pillar data passed to several functions could
  182118. conditionally be passed through a renderer to be decrypted. This functionality
  182119. has now been extended to pillar SLS files as well. See here for detailed documentation on this feature.
  182120. .SS Grains Changes
  182121. .INDENT 0.0
  182122. .IP \(bu 2
  182123. The \fBosmajorrelease\fP grain has been changed from a string to an integer.
  182124. State files, especially those using a templating language like Jinja, may
  182125. need to be adjusted to account for this change.
  182126. .IP \(bu 2
  182127. Add ability to specify disk backing mode in the VMWare salt cloud profile.
  182128. .UNINDENT
  182129. .SS State Module Changes
  182130. .INDENT 0.0
  182131. .IP \(bu 2
  182132. The \fBservice.running\fP and
  182133. \fBservice.dead\fP states now support a
  182134. \fBno_block\fP argument which, when set to \fBTrue\fP on systemd minions, will
  182135. start/stop the service using the \fB\-\-no\-block\fP flag in the \fBsystemctl\fP
  182136. command. On non\-systemd minions, a warning will be issued.
  182137. .IP \(bu 2
  182138. The \fBmodule.run\fP state has dropped its
  182139. previous syntax with \fBm_\fP prefix for reserved keywords. Additionally, it
  182140. allows running several functions in a batch.
  182141. .sp
  182142. \fBNOTE:\fP
  182143. .INDENT 2.0
  182144. .INDENT 3.5
  182145. It is necessary to explicitly turn on the new behavior (see below)
  182146. .UNINDENT
  182147. .UNINDENT
  182148. .INDENT 2.0
  182149. .INDENT 3.5
  182150. .sp
  182151. .nf
  182152. .ft C
  182153. # Before
  182154. run_something:
  182155. module.run:
  182156. \- name: mymodule.something
  182157. \- m_name: \(aqsome name\(aq
  182158. \- kwargs: {
  182159. first_arg: \(aqone\(aq,
  182160. second_arg: \(aqtwo\(aq,
  182161. do_stuff: \(aqTrue\(aq
  182162. }
  182163. # After
  182164. run_something:
  182165. module.run:
  182166. \- mymodule.something:
  182167. \- name: some name
  182168. \- first_arg: one
  182169. \- second_arg: two
  182170. \- do_stuff: True
  182171. .ft P
  182172. .fi
  182173. .UNINDENT
  182174. .UNINDENT
  182175. .sp
  182176. Since a lot of users are already using \fBmodule.run\fP states, this new behavior must currently be
  182177. explicitly turned on, to allow users to take their time updating their SLS
  182178. files. However, please keep in mind that the new syntax will take effect in
  182179. the next feature release of Salt (Oxygen) and the old usage will no longer be
  182180. supported at that time.
  182181. .sp
  182182. Another feature of the new \fBmodule.run\fP is that
  182183. it allows calling many functions in a single batch, such as:
  182184. .INDENT 2.0
  182185. .INDENT 3.5
  182186. .sp
  182187. .nf
  182188. .ft C
  182189. run_something:
  182190. module.run:
  182191. \- mymodule.function_without_parameters:
  182192. \- mymodule.another_function:
  182193. \- myparam
  182194. \- my_other_param
  182195. .ft P
  182196. .fi
  182197. .UNINDENT
  182198. .UNINDENT
  182199. .sp
  182200. In a rare case that you have a function that needs to be called several times but
  182201. with the different parameters, an additional feature of "tagging" is to the
  182202. rescue. In order to tag a function, use a colon delimiter. For example:
  182203. .INDENT 2.0
  182204. .INDENT 3.5
  182205. .sp
  182206. .nf
  182207. .ft C
  182208. run_something:
  182209. module.run:
  182210. \- mymodule.same_function:1:
  182211. \- mymodule.same_function:2:
  182212. \- myparam
  182213. \- my_other_param
  182214. \- mymodule.same_function:3:
  182215. \- foo: bar
  182216. .ft P
  182217. .fi
  182218. .UNINDENT
  182219. .UNINDENT
  182220. .sp
  182221. The example above will run \fImymodule.same_function\fP three times with the
  182222. different parameters.
  182223. .sp
  182224. To enable the new behavior for \fBmodule.run\fP,
  182225. add the following to the minion config file:
  182226. .INDENT 2.0
  182227. .INDENT 3.5
  182228. .sp
  182229. .nf
  182230. .ft C
  182231. use_superseded:
  182232. \- module.run
  182233. .ft P
  182234. .fi
  182235. .UNINDENT
  182236. .UNINDENT
  182237. .IP \(bu 2
  182238. The default for the \fBfingerprint_hash_type\fP option used in the \fBpresent\fP
  182239. function in the \fBssh\fP state changed from
  182240. \fBmd5\fP to \fBsha256\fP\&.
  182241. .UNINDENT
  182242. .SS Execution Module Changes
  182243. .INDENT 0.0
  182244. .IP \(bu 2
  182245. Several functions in the \fBsystemd\fP execution
  182246. module have gained a \fBno_block\fP argument, which when set to \fBTrue\fP will
  182247. use \fB\-\-no\-block\fP in the \fBsystemctl\fP command.
  182248. .IP \(bu 2
  182249. In the \fBsolarisips\fP \fBpkg\fP module, the
  182250. default value for the \fBrefresh\fP argument to the \fBlist_upgrades\fP function
  182251. has been changed from \fBFalse\fP to \fBTrue\fP\&. This makes the function more
  182252. consistent with all of the other \fBpkg\fP modules (The other
  182253. \fBpkg.list_upgrades\fP functions all defaulted to \fBTrue\fP).
  182254. .IP \(bu 2
  182255. The functions which handle masking in the \fBsystemd\fP module have changed. These changes are described
  182256. above alongside the information on the new states which have been added to
  182257. manage masking of systemd units.
  182258. .IP \(bu 2
  182259. The \fBpkg.list_repo_pkgs\fP
  182260. function for yum/dnf\-based distros has had its default output format changed.
  182261. In prior releases, results would be organized by repository. Now, the default
  182262. for each package will be a simple list of versions. To get the old behavior,
  182263. pass \fBbyrepo=True\fP to the function.
  182264. .IP \(bu 2
  182265. A \fBpkg.list_repo_pkgs\fP function has been added for both
  182266. \fBDebian/Ubuntu\fP and
  182267. \fBArch Linux\fP\-based distros.
  182268. .IP \(bu 2
  182269. The \fBsystem\fP module changed its return format
  182270. from "HH:MM AM/PM" to "HH:MM:SS AM/PM" for \fIget_system_time\fP\&.
  182271. .IP \(bu 2
  182272. The default for the \fBfingerprint_hash_type\fP option used in the
  182273. \fBssh\fP execution module changed from \fBmd5\fP to
  182274. \fBsha256\fP\&.
  182275. .UNINDENT
  182276. .SS Proxy Module Changes
  182277. .sp
  182278. The \fBproxy_merge_grains_in_module\fP configuration variable
  182279. introduced in 2016.3, has been changed, defaulting to \fBTrue\fP\&.
  182280. .sp
  182281. The connection with the remote device is kept alive by default, when the
  182282. module implements the \fBalive\fP function and \fBproxy_keep_alive\fP
  182283. is set to \fBTrue\fP\&. The polling interval is set using the
  182284. \fBproxy_keep_alive_interval\fP option which defaults to 1 minute.
  182285. .sp
  182286. The developers are also able to use the \fBproxy_always_alive\fP,
  182287. when designing a proxy module flexible enough to open the
  182288. connection with the remote device only when required.
  182289. .SS Wildcard Versions in \fBpkg.installed\fP States
  182290. .INDENT 0.0
  182291. .IP \(bu 2
  182292. The \fBpkg.installed\fP state now supports
  182293. wildcards in package versions, for the following platforms:
  182294. .INDENT 2.0
  182295. .IP \(bu 2
  182296. SUSE/openSUSE Leap/Thumbleweed
  182297. .IP \(bu 2
  182298. Debian/Ubuntu
  182299. .IP \(bu 2
  182300. RHEL/CentOS
  182301. .IP \(bu 2
  182302. Arch Linux
  182303. .UNINDENT
  182304. .sp
  182305. This support also extends to any derivatives of these distros, which use the
  182306. \fBaptpkg\fP, \fByumpkg\fP, or
  182307. \fBpacman\fP providers for the \fBpkg\fP virtual module.
  182308. .sp
  182309. Using wildcards can be useful for packages where the release name is built into
  182310. the version in some way, such as for RHEL/CentOS which typically has version
  182311. numbers like \fB1.2.34\-5.el7\fP\&. An example of the usage for this would be:
  182312. .INDENT 2.0
  182313. .INDENT 3.5
  182314. .sp
  182315. .nf
  182316. .ft C
  182317. mypkg:
  182318. pkg.installed:
  182319. \- version: \(aq1.2.34*\(aq
  182320. .ft P
  182321. .fi
  182322. .UNINDENT
  182323. .UNINDENT
  182324. .UNINDENT
  182325. .SS Master Configuration Additions
  182326. .INDENT 0.0
  182327. .IP \(bu 2
  182328. \fBsyndic_forward_all_events\fP \- Option on multi\-syndic or single
  182329. when connected to multiple masters to be able to send events to all connected
  182330. masters.
  182331. .IP \(bu 2
  182332. \fBeauth_acl_module\fP \- In case external auth is enabled master can
  182333. get authenticate and get the authorization list from different auth modules.
  182334. .IP \(bu 2
  182335. \fBkeep_acl_in_token\fP \- Option that allows master to build ACL once
  182336. for each user being authenticated and keep it in the token.
  182337. .UNINDENT
  182338. .SS Minion Configuration Additions
  182339. .INDENT 0.0
  182340. .IP \(bu 2
  182341. \fBpillarenv_from_saltenv\fP \- When set to \fBTrue\fP (default is
  182342. \fBFalse\fP), the \fBpillarenv\fP option will take the same value as
  182343. the effective saltenv when running states. This would allow a user to run
  182344. \fBsalt \(aq*\(aq state.apply mysls saltenv=dev\fP, and the SLS for both the state
  182345. and pillar data would be sourced from the \fBdev\fP environment, essentially
  182346. the equivalent of running \fBsalt \(aq*\(aq state.apply mysls saltenv=dev
  182347. pillarenv=dev\fP\&. Note that if \fBpillarenv\fP is set in the minion
  182348. config file, or if \fBpillarenv\fP is provided on the CLI, it will override
  182349. this option.
  182350. .UNINDENT
  182351. .SS salt\-api Changes
  182352. .sp
  182353. The \fBrest_cherrypy\fP netapi module has received a few minor improvements:
  182354. .INDENT 0.0
  182355. .IP \(bu 2
  182356. A CORS bugfix.
  182357. .IP \(bu 2
  182358. A new \fB/token\fP convenience endpoint to generate Salt eauth tokens.
  182359. .IP \(bu 2
  182360. A proof\-of\-concept JavaScript single\-page application intended to demonstrate
  182361. how to use the Server\-Sent Events stream in an application. It is available
  182362. in a default install by visiting the \fB/app\fP URL in a browser.
  182363. .UNINDENT
  182364. .SS Python API Changes
  182365. .SS \fBexpr_form\fP Deprecation
  182366. .sp
  182367. The LocalClient\(aqs \fBexpr_form\fP argument has been
  182368. deprecated and renamed to \fBtgt_type\fP\&. This change was made due to numerous
  182369. reports of confusion among community members, since the targeting method is
  182370. published to minions as \fBtgt_type\fP, and appears as \fBtgt_type\fP in the job
  182371. cache as well.
  182372. .sp
  182373. While \fBexpr_form\fP will continue to be supported until the \fB2019.2.0\fP
  182374. release cycle (two major releases after this one), those who are using the
  182375. LocalClient (either directly, or implictly via a
  182376. netapi module) are encouraged to update their code
  182377. to use \fBtgt_type\fP\&.
  182378. .SS \fBfull_return\fP Argument in \fBLocalClient\fP and \fBRunnerClient\fP
  182379. .sp
  182380. An \fBfull_return\fP argument has been added to the \fBcmd\fP and \fBcmd_sync\fP
  182381. methods in \fBLocalClient\fP and \fBRunnerClient\fP which causes the return data
  182382. structure to include job meta data such as \fBretcode\fP\&.
  182383. .sp
  182384. This is useful at the Python API:
  182385. .INDENT 0.0
  182386. .INDENT 3.5
  182387. .sp
  182388. .nf
  182389. .ft C
  182390. >>> import salt.client
  182391. >>> client = salt.client.LocalClient()
  182392. >>> client.cmd(\(aq*\(aq, \(aqcmd.run\(aq, [\(aqreturn 1\(aq], full_return=True)
  182393. {\(aqjerry\(aq: {\(aqjid\(aq: \(aq20170520151213898053\(aq, \(aqret\(aq: \(aq\(aq, \(aqretcode\(aq: 1}}
  182394. .ft P
  182395. .fi
  182396. .UNINDENT
  182397. .UNINDENT
  182398. .sp
  182399. As well as from salt\-api:
  182400. .INDENT 0.0
  182401. .INDENT 3.5
  182402. .sp
  182403. .nf
  182404. .ft C
  182405. % curl \-b /tmp/cookies.txt \-sS http://localhost:8000 \e
  182406. \-H \(aqContent\-type: application/json\(aq \e
  182407. \-d \(aq[{
  182408. "client": "local",
  182409. "tgt": "*",
  182410. "fun": "cmd.run",
  182411. "arg": ["return 1"],
  182412. "full_return": true
  182413. }]\(aq
  182414. {"return": [{"jerry": {"jid": "20170520151531477653", "retcode": 1, "ret": ""}}]}
  182415. .ft P
  182416. .fi
  182417. .UNINDENT
  182418. .UNINDENT
  182419. .SS Jinja
  182420. .SS Filters
  182421. .sp
  182422. New filters in 2017.7.0:
  182423. .INDENT 0.0
  182424. .IP \(bu 2
  182425. \fBto_bool\fP
  182426. .IP \(bu 2
  182427. \fBexactly_n_true\fP
  182428. .IP \(bu 2
  182429. \fBexactly_one_true\fP
  182430. .IP \(bu 2
  182431. \fBquote\fP
  182432. .IP \(bu 2
  182433. \fBregex_search\fP
  182434. .IP \(bu 2
  182435. \fBregex_match\fP
  182436. .IP \(bu 2
  182437. \fBuuid\fP
  182438. .IP \(bu 2
  182439. \fBis_list\fP
  182440. .IP \(bu 2
  182441. \fBis_iter\fP
  182442. .IP \(bu 2
  182443. \fBmin\fP
  182444. .IP \(bu 2
  182445. \fBmax\fP
  182446. .IP \(bu 2
  182447. \fBavg\fP
  182448. .IP \(bu 2
  182449. \fBunion\fP
  182450. .IP \(bu 2
  182451. \fBintersect\fP
  182452. .IP \(bu 2
  182453. \fBdifference\fP
  182454. .IP \(bu 2
  182455. \fBsymmetric_difference\fP
  182456. .IP \(bu 2
  182457. \fBis_sorted\fP
  182458. .IP \(bu 2
  182459. \fBcompare_lists\fP
  182460. .IP \(bu 2
  182461. \fBcompare_dicts\fP
  182462. .IP \(bu 2
  182463. \fBis_hex\fP
  182464. .IP \(bu 2
  182465. \fBcontains_whitespace\fP
  182466. .IP \(bu 2
  182467. \fBsubstring_in_list\fP
  182468. .IP \(bu 2
  182469. \fBcheck_whitelist_blacklist\fP
  182470. .IP \(bu 2
  182471. \fBdate_format\fP
  182472. .IP \(bu 2
  182473. \fBstr_to_num\fP
  182474. .IP \(bu 2
  182475. \fBto_bytes\fP
  182476. .IP \(bu 2
  182477. \fBjson_decode_list\fP
  182478. .IP \(bu 2
  182479. \fBjson_decode_dict\fP
  182480. .IP \(bu 2
  182481. \fBrand_str\fP
  182482. .IP \(bu 2
  182483. \fBmd5\fP
  182484. .IP \(bu 2
  182485. \fBsha256\fP
  182486. .IP \(bu 2
  182487. \fBsha512\fP
  182488. .IP \(bu 2
  182489. \fBbase64_encode\fP
  182490. .IP \(bu 2
  182491. \fBbase64_decode\fP
  182492. .IP \(bu 2
  182493. \fBhmac\fP
  182494. .IP \(bu 2
  182495. \fBhttp_query\fP
  182496. .IP \(bu 2
  182497. \fBis_ip\fP
  182498. .IP \(bu 2
  182499. \fBis_ipv4\fP
  182500. .IP \(bu 2
  182501. \fBis_ipv6\fP
  182502. .IP \(bu 2
  182503. \fBipaddr\fP
  182504. .IP \(bu 2
  182505. \fBipv4\fP
  182506. .IP \(bu 2
  182507. \fBipv6\fP
  182508. .IP \(bu 2
  182509. \fBnetwork_hosts\fP
  182510. .IP \(bu 2
  182511. \fBnetwork_size\fP
  182512. .IP \(bu 2
  182513. \fBgen_mac\fP
  182514. .IP \(bu 2
  182515. \fBmac_str_to_bytes\fP
  182516. .IP \(bu 2
  182517. \fBdns_check\fP
  182518. .IP \(bu 2
  182519. \fBis_text_file\fP
  182520. .IP \(bu 2
  182521. \fBis_binary_file\fP
  182522. .IP \(bu 2
  182523. \fBis_empty_file\fP
  182524. .IP \(bu 2
  182525. \fBfile_hashsum\fP
  182526. .IP \(bu 2
  182527. \fBlist_files\fP
  182528. .IP \(bu 2
  182529. \fBpath_join\fP
  182530. .IP \(bu 2
  182531. \fBwhich\fP
  182532. .UNINDENT
  182533. .SS Logs
  182534. .sp
  182535. Another new feature \- although not limited to Jinja only \-
  182536. is being able to log debug messages directly from the template:
  182537. .INDENT 0.0
  182538. .INDENT 3.5
  182539. .sp
  182540. .nf
  182541. .ft C
  182542. {%\- do salt.log.error(\(aqlogging from jinja\(aq) \-%}
  182543. .ft P
  182544. .fi
  182545. .UNINDENT
  182546. .UNINDENT
  182547. .sp
  182548. See the \fBlogs\fP paragraph.
  182549. .SS Network Automation
  182550. .SS NAPALM
  182551. .sp
  182552. Introduced in 2016.11, the modules for cross\-vendor network automation
  182553. have been improved, enhanced and widenened in scope:
  182554. .INDENT 0.0
  182555. .IP \(bu 2
  182556. Manage network devices like servers: the NAPALM modules have been transformed
  182557. so they can run in both proxy and regular minions. That means, if the
  182558. operating system allows, the salt\-minion package can be installed directly
  182559. on the network gear. Examples of such devices (also covered by NAPALM)
  182560. include: Arista, Cumulus, Cisco IOS\-XR or Cisco Nexus.
  182561. .IP \(bu 2
  182562. Not always alive: in certain less dynamic environments,
  182563. maintaining the remote connection permanently open with the network device
  182564. is not always beneficial. In those particular cases, the user can select
  182565. to initialize the connection only when needed, by specifying the field
  182566. \fBalways_alive: false\fP in the \fBproxy configuration\fP
  182567. or using the \fBproxy_always_alive\fP option.
  182568. .IP \(bu 2
  182569. Proxy keepalive: due to external factors, the connection with the remote
  182570. device can be dropped, e.g.: packet loss, idle time (no commands issued
  182571. within a couple of minutes or seconds), or simply the device decides to kill
  182572. the process. In 2017.7.0 we have introduced the functionality to re\-establish
  182573. the connection. One can disable this feature through the
  182574. \fBproxy_keep_alive\fP option and adjust the polling frequency
  182575. speciying a custom value for \fBproxy_keep_alive_interval\fP,
  182576. in minutes.
  182577. .UNINDENT
  182578. .sp
  182579. New modules:
  182580. .INDENT 0.0
  182581. .IP \(bu 2
  182582. \fBNetconfig state module\fP \- Manage the configuration
  182583. of network devices using arbitrary templates and the Salt\-specific
  182584. advanced templating methodologies.
  182585. .IP \(bu 2
  182586. \fBNetwork ACL execution module\fP \- Generate and
  182587. load ACL (firewall) configuration on network devices.
  182588. .IP \(bu 2
  182589. \fBNetwork ACL state\fP \- Manage the firewall
  182590. configuration. It only requires writing the pillar structure correctly!
  182591. .IP \(bu 2
  182592. \fBNAPALM YANG execution module\fP \- Parse,
  182593. generate and load native device configuration in a standard way,
  182594. using the OpenConfig/IETF models. This module contains also helpers for
  182595. the states.
  182596. .IP \(bu 2
  182597. \fBNAPALM YANG state module\fP \- Manage the
  182598. network device configuration according to the YANG models (OpenConfig or IETF).
  182599. .IP \(bu 2
  182600. \fBNET finder\fP \- Runner to find details easily and
  182601. fast. It\(aqs smart enough to know what you are looking for. It will search
  182602. in the details of the network interfaces, IP addresses, MAC address tables,
  182603. ARP tables and LLDP neighbors.
  182604. .IP \(bu 2
  182605. \fBBGP finder\fP \- Runner to search BGP neighbors details.
  182606. .IP \(bu 2
  182607. \fBNAPALM syslog\fP \- Engine to import events
  182608. from the napalm\-logs library into the Salt event bus. The events are based
  182609. on the syslog messages from the network devices and structured following
  182610. the OpenConfig/IETF YANG models.
  182611. .IP \(bu 2
  182612. \fBNAPALM Helpers\fP \- Generic helpers for
  182613. NAPALM\-related operations. For example, the
  182614. \fBCompliance report\fP function
  182615. can be used inside the state modules to compare the expected and the
  182616. existing configuration.
  182617. .UNINDENT
  182618. .sp
  182619. New functions:
  182620. .INDENT 0.0
  182621. .IP \(bu 2
  182622. \fBConfiguration getter\fP \- Return
  182623. the whole configuration of the network device.
  182624. .IP \(bu 2
  182625. \fBOptics getter\fP \- Fetches
  182626. the power usage on the various transceivers installed on the network device
  182627. (in dBm).
  182628. .UNINDENT
  182629. .sp
  182630. New grains: \fBHost\fP,
  182631. \fBHost DNS\fP,
  182632. \fBUsername\fP and
  182633. \fBOptional args\fP\&.
  182634. .SS Custom Refspecs in GitFS / git_pillar / winrepo
  182635. .sp
  182636. It is now possible to specify the refspecs to use when fetching from remote
  182637. repositories for GitFS, git_pillar, and winrepo. More information on how this
  182638. feature works can be found here in the GitFS
  182639. Walkthrough. The git_pillar and winrepo versions of this feature work the same
  182640. as their GitFS counterpart.
  182641. .SS git_pillar "mountpoints" Feature Added
  182642. .sp
  182643. See here for detailed documentation.
  182644. .SS Big Improvements to Docker Support
  182645. .sp
  182646. The old \fBdocker\fP state and execution modules have been moved to
  182647. \fI\%salt\-contrib\fP\&. The \fBdockerng\fP execution module has been renamed to
  182648. \fBdocker\fP and now serves as Salt\(aqs official Docker
  182649. execution module.
  182650. .sp
  182651. The old \fBdockerng\fP state module has been split into 4 state modules:
  182652. .INDENT 0.0
  182653. .IP \(bu 2
  182654. \fBdocker_container\fP \- States to manage
  182655. Docker containers
  182656. .IP \(bu 2
  182657. \fBdocker_image\fP \- States to manage Docker
  182658. images
  182659. .IP \(bu 2
  182660. \fBdocker_volume\fP \- States to manage
  182661. Docker volumes
  182662. .IP \(bu 2
  182663. \fBdocker_network\fP \- States to manage
  182664. Docker networks
  182665. .UNINDENT
  182666. .sp
  182667. The reason for this change was to make states and requisites more clear. For
  182668. example, imagine this SLS:
  182669. .INDENT 0.0
  182670. .INDENT 3.5
  182671. .sp
  182672. .nf
  182673. .ft C
  182674. myuser/appimage:
  182675. docker.image_present:
  182676. \- sls: docker.images.appimage
  182677. myapp:
  182678. docker.running:
  182679. \- image: myuser/appimage
  182680. \- require:
  182681. \- docker: myuser/appimage
  182682. .ft P
  182683. .fi
  182684. .UNINDENT
  182685. .UNINDENT
  182686. .sp
  182687. The new syntax would be:
  182688. .INDENT 0.0
  182689. .INDENT 3.5
  182690. .sp
  182691. .nf
  182692. .ft C
  182693. myuser/appimage:
  182694. docker_image.present:
  182695. \- sls: docker.images.appimage
  182696. myapp:
  182697. docker_container.running:
  182698. \- image: myuser/appimage
  182699. \- require:
  182700. \- docker_image: myuser/appimage
  182701. .ft P
  182702. .fi
  182703. .UNINDENT
  182704. .UNINDENT
  182705. .sp
  182706. This is similar to how Salt handles MySQL, MongoDB, Zabbix, and other cases
  182707. where the same execution module is used to manage several different kinds
  182708. of objects (users, databases, roles, etc.).
  182709. .sp
  182710. \fBNOTE:\fP
  182711. .INDENT 0.0
  182712. .INDENT 3.5
  182713. With the \fI\%Moby announcement\fP coming at this year\(aqs \fI\%DockerCon\fP, Salt\(aqs
  182714. \fBdocker\fP execution module (as well as the
  182715. state modules) work interchangeably when \fBdocker\fP is replaced with
  182716. \fBmoby\fP (e.g. \fBmoby_container.running\fP, \fBmoby_image.present\fP, \fBmoby.inspect_container\fP, etc.)
  182717. .UNINDENT
  182718. .UNINDENT
  182719. .sp
  182720. The old syntax will continue to work until the \fB2019.2.0\fP release of Salt.
  182721. The old \fBdockerng\fP naming will also continue to work until that release, so
  182722. no immediate changes need to be made to your SLS files (unless you were still
  182723. using the old docker states that have been moved to \fI\%salt\-contrib\fP).
  182724. .sp
  182725. The \fBdocker_container.running\fP
  182726. state has undergone a significant change in how it determines whether or not a
  182727. container needs to be replaced. Rather than comparing individual arguments to
  182728. their corresponding values in the named container, a temporary container is
  182729. created (but not started) using the passed arguments. The two containers are
  182730. then compared to each other to determine whether or not there are changes, and
  182731. if so, the old container is stopped and destroyed, and the temporary container
  182732. is renamed and started.
  182733. .sp
  182734. Salt still needs to translate arguments into the format which docker\-py
  182735. expects, but if it does not properly do so, the skip_translate argument can be used to skip input
  182736. translation on an argument\-by\-argument basis, and you can then format your SLS
  182737. file to pass the data in the format that the docker\-py expects. This allows you
  182738. to work around any changes in Docker\(aqs API or issues with the input
  182739. translation, and continue to manage your Docker containers using Salt. Read the
  182740. documentation for skip_translate for more information.
  182741. .sp
  182742. \fBNOTE:\fP
  182743. .INDENT 0.0
  182744. .INDENT 3.5
  182745. When running the \fBdocker_container.running\fP state for the first time after
  182746. upgrading to 2017.7.0, your container(s) may be replaced. The changes may
  182747. show diffs for certain parameters which say that the old value was an empty
  182748. string, and the new value is \fBNone\fP\&. This is due to the fact that in
  182749. prior releases Salt was passing empty strings for these values when
  182750. creating the container if they were undefined in the SLS file, where now
  182751. Salt simply does not pass any arguments not explicitly defined in the SLS
  182752. file. Subsequent runs of the state should not replace the container if the
  182753. configuration remains unchanged.
  182754. .UNINDENT
  182755. .UNINDENT
  182756. .SS New SSH Cache Roster
  182757. .sp
  182758. The \fBSSH cache Roster\fP has been rewritten from scratch
  182759. to increase its usefulness. The new roster supports all minion matchers, so it
  182760. is now possible to target minions identically through \fIsalt\fP and \fIsalt\-ssh\fP\&.
  182761. .sp
  182762. Using the new \fBroster_order\fP configuration syntax it\(aqs now possible to
  182763. compose a roster out of any combination of grains, pillar and mine data and
  182764. even Salt SDB URLs. The new release is also fully IPv4 and IPv6 enabled and
  182765. even has support for CIDR ranges.
  182766. .SS Salt\-SSH Default Options
  182767. .sp
  182768. Defaults for rosters can now be set, so that they don\(aqt have to be set on every
  182769. entry in a roster or specified from the commandline.
  182770. .sp
  182771. The new option is \fBroster_defaults\fP and is specified in the master
  182772. config file:
  182773. .INDENT 0.0
  182774. .INDENT 3.5
  182775. .sp
  182776. .nf
  182777. .ft C
  182778. roster_defaults:
  182779. user: daniel
  182780. sudo: True
  182781. priv: /root/.ssh/id_rsa
  182782. tty: True
  182783. .ft P
  182784. .fi
  182785. .UNINDENT
  182786. .UNINDENT
  182787. .SS Blacklist or Whitelist Extmod Sync
  182788. .sp
  182789. The modules that are synced to minions can now be limited.
  182790. .sp
  182791. The following configuration options have been added for the master:
  182792. .INDENT 0.0
  182793. .IP \(bu 2
  182794. \fBextmod_whitelist\fP
  182795. .IP \(bu 2
  182796. \fBextmod_blacklist\fP
  182797. .UNINDENT
  182798. .sp
  182799. and for the minion:
  182800. .INDENT 0.0
  182801. .IP \(bu 2
  182802. \fBextmod_whitelist\fP
  182803. .IP \(bu 2
  182804. \fBextmod_blacklist\fP
  182805. .UNINDENT
  182806. .SS Additional Features
  182807. .INDENT 0.0
  182808. .IP \(bu 2
  182809. The \fBmine.update\fP function
  182810. has a new optional argument \fBmine_functions\fP that can be used
  182811. to refresh mine functions at a more specific interval
  182812. than scheduled using the \fBmine_interval\fP option.
  182813. However, this argument can be used by explicit schedule.
  182814. For example, if we need the mines for \fBnet.lldp\fP to be refreshed
  182815. every 12 hours:
  182816. .INDENT 2.0
  182817. .INDENT 3.5
  182818. .sp
  182819. .nf
  182820. .ft C
  182821. schedule:
  182822. lldp_mine_update:
  182823. function: mine.update
  182824. kwargs:
  182825. mine_functions:
  182826. net.lldp: []
  182827. hours: 12
  182828. .ft P
  182829. .fi
  182830. .UNINDENT
  182831. .UNINDENT
  182832. .IP \(bu 2
  182833. The \fBsalt\fP runner has a new function: \fBsalt.execute\fP\&.
  182834. It is mainly a shortcut to facilitate the execution of various functions
  182835. from other runners, e.g.:
  182836. .INDENT 2.0
  182837. .INDENT 3.5
  182838. .sp
  182839. .nf
  182840. .ft C
  182841. ret1 = __salt__[\(aqsalt.execute\(aq](\(aq*\(aq, \(aqmod.fun\(aq)
  182842. .ft P
  182843. .fi
  182844. .UNINDENT
  182845. .UNINDENT
  182846. .UNINDENT
  182847. .SS New Modules
  182848. .SS Beacons
  182849. .INDENT 0.0
  182850. .IP \(bu 2
  182851. \fBsalt.beacons.log\fP
  182852. .UNINDENT
  182853. .SS Cache
  182854. .INDENT 0.0
  182855. .IP \(bu 2
  182856. \fBsalt.cache.redis_cache\fP
  182857. .UNINDENT
  182858. .SS Engines
  182859. .INDENT 0.0
  182860. .IP \(bu 2
  182861. \fBsalt.engines.stalekey\fP
  182862. .IP \(bu 2
  182863. \fBsalt.engines.junos_syslog\fP
  182864. .IP \(bu 2
  182865. \fBsalt.engines.napalm_syslog\fP
  182866. .UNINDENT
  182867. .SS Execution modules
  182868. .INDENT 0.0
  182869. .IP \(bu 2
  182870. \fBsalt.modules.apk\fP
  182871. .IP \(bu 2
  182872. \fBsalt.modules.at_solaris\fP
  182873. .IP \(bu 2
  182874. \fBsalt.modules.boto_kinesis\fP
  182875. .IP \(bu 2
  182876. \fBsalt.modules.boto3_elasticache\fP
  182877. .IP \(bu 2
  182878. \fBsalt.modules.boto3_route53\fP
  182879. .IP \(bu 2
  182880. \fBsalt.modules.capirca_acl\fP
  182881. .IP \(bu 2
  182882. \fBsalt.modules.freebsd_update\fP
  182883. .IP \(bu 2
  182884. \fBsalt.modules.grafana4\fP
  182885. .IP \(bu 2
  182886. \fBsalt.modules.heat\fP
  182887. .IP \(bu 2
  182888. \fBsalt.modules.icinga2\fP
  182889. .IP \(bu 2
  182890. \fBsalt.modules.kubernetesmod\fP
  182891. .IP \(bu 2
  182892. \fBsalt.modules.logmod\fP
  182893. .IP \(bu 2
  182894. \fBsalt.modules.mattermost\fP
  182895. .IP \(bu 2
  182896. \fBsalt.modules.namecheap_dns\fP
  182897. .IP \(bu 2
  182898. \fBsalt.modules.namecheap_domains\fP
  182899. .IP \(bu 2
  182900. \fBsalt.modules.namecheap_ns\fP
  182901. .IP \(bu 2
  182902. \fBsalt.modules.namecheap_users\fP
  182903. .IP \(bu 2
  182904. \fBsalt.modules.namecheap_ssl\fP
  182905. .IP \(bu 2
  182906. \fBsalt.modules.napalm\fP
  182907. .IP \(bu 2
  182908. \fBsalt.modules.napalm_acl\fP
  182909. .IP \(bu 2
  182910. \fBsalt.modules.napalm_yang_mod\fP
  182911. .IP \(bu 2
  182912. \fBsalt.modules.pdbedit\fP
  182913. .IP \(bu 2
  182914. \fBsalt.modules.solrcloud\fP
  182915. .IP \(bu 2
  182916. \fBsalt.modules.statuspage\fP
  182917. .IP \(bu 2
  182918. \fBsalt.modules.zonecfg\fP
  182919. .IP \(bu 2
  182920. \fBsalt.modules.zoneadm\fP
  182921. .UNINDENT
  182922. .SS Grains
  182923. .INDENT 0.0
  182924. .IP \(bu 2
  182925. \fBsalt.grains.metadata\fP
  182926. .IP \(bu 2
  182927. \fBsalt.grains.mdata\fP
  182928. .UNINDENT
  182929. .SS Outputters
  182930. .INDENT 0.0
  182931. .IP \(bu 2
  182932. \fBsalt.output.table_out\fP
  182933. .UNINDENT
  182934. .SS Pillar
  182935. .INDENT 0.0
  182936. .IP \(bu 2
  182937. \fBsalt.pillar.postgres\fP
  182938. .IP \(bu 2
  182939. \fBsalt.pillar.vmware_pillar\fP
  182940. .UNINDENT
  182941. .SS Returners
  182942. .INDENT 0.0
  182943. .IP \(bu 2
  182944. \fBsalt.returners.mattermost_returner\fP
  182945. .IP \(bu 2
  182946. \fBsalt.returners.highstate_return\fP
  182947. .UNINDENT
  182948. .SS Roster
  182949. .INDENT 0.0
  182950. .IP \(bu 2
  182951. \fBsalt.roster.cache\fP
  182952. .UNINDENT
  182953. .SS Runners
  182954. .INDENT 0.0
  182955. .IP \(bu 2
  182956. \fBsalt.runners.bgp\fP
  182957. .IP \(bu 2
  182958. \fBsalt.runners.mattermost\fP
  182959. .IP \(bu 2
  182960. \fBsalt.runners.net\fP
  182961. .UNINDENT
  182962. .SS SDB
  182963. .INDENT 0.0
  182964. .IP \(bu 2
  182965. \fBsalt.sdb.yaml\fP
  182966. .IP \(bu 2
  182967. \fBsalt.sdb.tism\fP
  182968. .IP \(bu 2
  182969. \fBsalt.sdb.cache\fP
  182970. .UNINDENT
  182971. .SS States
  182972. .INDENT 0.0
  182973. .IP \(bu 2
  182974. \fBsalt.states.boto_kinesis\fP
  182975. .IP \(bu 2
  182976. \fBsalt.states.boto_efs\fP
  182977. .IP \(bu 2
  182978. \fBsalt.states.boto3_elasticache\fP
  182979. .IP \(bu 2
  182980. \fBsalt.states.boto3_route53\fP
  182981. .IP \(bu 2
  182982. \fBsalt.states.docker_container\fP
  182983. .IP \(bu 2
  182984. \fBsalt.states.docker_image\fP
  182985. .IP \(bu 2
  182986. \fBsalt.states.docker_network\fP
  182987. .IP \(bu 2
  182988. \fBsalt.states.docker_volume\fP
  182989. .IP \(bu 2
  182990. \fBsalt.states.elasticsearch\fP
  182991. .IP \(bu 2
  182992. \fBsalt.states.grafana4_dashboard\fP
  182993. .IP \(bu 2
  182994. \fBsalt.states.grafana4_datasource\fP
  182995. .IP \(bu 2
  182996. \fBsalt.states.grafana4_org\fP
  182997. .IP \(bu 2
  182998. \fBsalt.states.grafana4_user\fP
  182999. .IP \(bu 2
  183000. \fBsalt.states.heat\fP
  183001. .IP \(bu 2
  183002. \fBsalt.states.icinga2\fP
  183003. .IP \(bu 2
  183004. \fBsalt.states.influxdb_continuous_query\fP
  183005. .IP \(bu 2
  183006. \fBsalt.states.influxdb_retention_policy\fP
  183007. .IP \(bu 2
  183008. \fBsalt.states.kubernetes\fP
  183009. .IP \(bu 2
  183010. \fBsalt.states.logadm\fP
  183011. .IP \(bu 2
  183012. \fBsalt.states.logrotate\fP
  183013. .IP \(bu 2
  183014. \fBsalt.states.msteams\fP
  183015. .IP \(bu 2
  183016. \fBsalt.states.netacl\fP
  183017. .IP \(bu 2
  183018. \fBsalt.states.netconfig\fP
  183019. .IP \(bu 2
  183020. \fBsalt.states.netyang\fP
  183021. .IP \(bu 2
  183022. \fBsalt.states.nix\fP
  183023. .IP \(bu 2
  183024. \fBsalt.states.pdbedit\fP
  183025. .IP \(bu 2
  183026. \fBsalt.states.solrcloud\fP
  183027. .IP \(bu 2
  183028. \fBsalt.states.statuspage\fP
  183029. .IP \(bu 2
  183030. \fBsalt.states.vault\fP
  183031. .IP \(bu 2
  183032. \fBsalt.states.win_wua\fP
  183033. .IP \(bu 2
  183034. \fBsalt.states.zone\fP
  183035. .UNINDENT
  183036. .SS Deprecations
  183037. .SS General Deprecations
  183038. .INDENT 0.0
  183039. .IP \(bu 2
  183040. Removed support for aliasing \fBcmd.run\fP to \fBcmd.shell\fP\&.
  183041. .IP \(bu 2
  183042. Removed support for Dulwich from GitFS\&.
  183043. .IP \(bu 2
  183044. Beacon configurations should be lists instead of dictionaries.
  183045. .IP \(bu 2
  183046. The \fBPidfileMixin\fP has been removed. Please use \fBDaemonMixIn\fP instead.
  183047. .IP \(bu 2
  183048. The \fBuse_pending\fP argument was removed from the \fBsalt.utils.event.get_event\fP
  183049. function.
  183050. .IP \(bu 2
  183051. The \fBpending_tags\fP argument was removed from the \fBsalt.utils.event.get_event\fP
  183052. function.
  183053. .UNINDENT
  183054. .SS Configuration Option Deprecations
  183055. .INDENT 0.0
  183056. .IP \(bu 2
  183057. The \fBclient_acl\fP configuration option has been removed. Please use
  183058. \fBpublisher_acl\fP instead.
  183059. .IP \(bu 2
  183060. The \fBclient_acl_blacklist\fP configuration option has been removed.
  183061. Please use \fBpublisher_acl_blacklist\fP instead.
  183062. .IP \(bu 2
  183063. The \fBwin_gitrepos\fP configuration option has been removed. Please use
  183064. the \fBwinrepo_remotes\fP option instead.
  183065. .IP \(bu 2
  183066. The \fBwin_repo\fP configuration option has been removed. Please use
  183067. \fBwinrepo_dir\fP instead.
  183068. .IP \(bu 2
  183069. The \fBwin_repo_mastercachefile\fP configuration option has been removed.
  183070. Please use the \fBwinrepo_cachefile\fP option instead.
  183071. .UNINDENT
  183072. .SS Module Deprecations
  183073. .sp
  183074. The \fBgit\fP execution module had the following changes:
  183075. .INDENT 0.0
  183076. .IP \(bu 2
  183077. The \fBfmt\fP argument was removed from the \fBarchive\fP function. Please
  183078. use \fBformat\fP instead.
  183079. .IP \(bu 2
  183080. The \fBrepository\fP argument was removed from the \fBclone\fP function.
  183081. Please use \fBurl\fP instead.
  183082. .IP \(bu 2
  183083. The \fBis_global\fP argument was removed from the \fBconfig_set\fP function.
  183084. Please use \fBglobal\fP instead.
  183085. .IP \(bu 2
  183086. The \fBbranch\fP argument was removed from the \fBmerge\fP function. Please
  183087. use \fBrev\fP instead.
  183088. .IP \(bu 2
  183089. The \fBbranch\fP argument was removed from the \fBpush\fP function. Please
  183090. use \fBrev\fP instead.
  183091. .UNINDENT
  183092. .sp
  183093. The \fBglusterfs\fP execution module had the following functions removed:
  183094. .INDENT 0.0
  183095. .IP \(bu 2
  183096. \fBcreate\fP: Please use \fBcreate_volume\fP instead.
  183097. .IP \(bu 2
  183098. \fBdelete\fP: Please use \fBdelete_volume\fP instead.
  183099. .IP \(bu 2
  183100. \fBlist_peers\fP: Please use \fBpeer_status\fP instead.
  183101. .UNINDENT
  183102. .sp
  183103. The \fBhtpasswd\fP execution module had the following function removed:
  183104. .INDENT 0.0
  183105. .IP \(bu 2
  183106. \fBuseradd_all\fP: Please use \fBuseradd\fP instead.
  183107. .UNINDENT
  183108. .sp
  183109. The \fBimg\fP execution module has been removed. All of its associated functions
  183110. were marked for removal in the 2017.7.0 release. The functions removed in this
  183111. module are mapped as follows:
  183112. .INDENT 0.0
  183113. .IP \(bu 2
  183114. \fBmount_image\fP/\fBmnt_image\fP: Please use \fBmount.mount\fP instead.
  183115. .IP \(bu 2
  183116. \fBumount_image\fP: Please use \fBmount.umount\fP instead.
  183117. .IP \(bu 2
  183118. \fBbootstrap\fP: Please use \fBgenesis.bootstrap\fP instead.
  183119. .UNINDENT
  183120. .sp
  183121. The \fBsmartos_virt\fP execution module had the following functions removed:
  183122. .INDENT 0.0
  183123. .IP \(bu 2
  183124. \fBcreate\fP: Please use \fBstart\fP instead.
  183125. .IP \(bu 2
  183126. \fBdestroy\fP Please use \fBstop\fP instead.
  183127. .IP \(bu 2
  183128. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183129. .UNINDENT
  183130. .sp
  183131. The \fBvirt\fP execution module had the following functions removed:
  183132. .INDENT 0.0
  183133. .IP \(bu 2
  183134. \fBcreate\fP: Please use \fBstart\fP instead.
  183135. .IP \(bu 2
  183136. \fBdestroy\fP Please use \fBstop\fP instead.
  183137. .IP \(bu 2
  183138. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183139. .UNINDENT
  183140. .sp
  183141. The \fBvirtualenv_mod\fP execution module had the following changes:
  183142. .INDENT 0.0
  183143. .IP \(bu 2
  183144. The \fBpackage_or_requirement\fP argument was removed from both the
  183145. \fBget_resource_path\fP and the \fBget_resource_content\fP functions.
  183146. Please use \fBpackage\fP instead.
  183147. .IP \(bu 2
  183148. The \fBresource_name\fP argument was removed from both the
  183149. \fBget_resource_path\fP and \fBget_resource_content\fP functions.
  183150. Please use \fBresource\fP instead.
  183151. .UNINDENT
  183152. .sp
  183153. The \fBwin_repo\fP execution module had the following changes:
  183154. .INDENT 0.0
  183155. .IP \(bu 2
  183156. The \fBwin_repo_source_dir\fP option was removed from the \fBwin_repo\fP
  183157. module. Please use \fBwinrepo_source_dir\fP instead.
  183158. .UNINDENT
  183159. .sp
  183160. The \fBxapi\fP execution module had the following functions removed:
  183161. .INDENT 0.0
  183162. .IP \(bu 2
  183163. \fBcreate\fP: Please use \fBstart\fP instead.
  183164. .IP \(bu 2
  183165. \fBdestroy\fP: Please use \fBstop\fP instead.
  183166. .IP \(bu 2
  183167. \fBlist_vms\fP: Please use \fBlist_domains\fP instead.
  183168. .UNINDENT
  183169. .sp
  183170. The \fBzypper\fP execution module had the following function removed:
  183171. .INDENT 0.0
  183172. .IP \(bu 2
  183173. \fBinfo\fP: Please use \fBinfo_available\fP instead.
  183174. .UNINDENT
  183175. .SS Pillar Deprecations
  183176. .INDENT 0.0
  183177. .IP \(bu 2
  183178. Support for the \fBraw_data\fP argument for the file_tree ext_pillar has been
  183179. removed. Please use \fBkeep_newline\fP instead.
  183180. .IP \(bu 2
  183181. SQLite3 database connection configuration previously had keys under
  183182. pillar. This legacy compatibility has been removed.
  183183. .UNINDENT
  183184. .SS Proxy Minion Deprecations
  183185. .INDENT 0.0
  183186. .IP \(bu 2
  183187. The \fBproxy_merge_grains_in_module\fP default has been switched from
  183188. \fBFalse\fP to \fBTrue\fP\&.
  183189. .UNINDENT
  183190. .SS Salt\-API Deprecations
  183191. .INDENT 0.0
  183192. .IP \(bu 2
  183193. The \fBSaltAPI.run()\fP function has been removed. Please use the
  183194. \fBSaltAPI.start()\fP function instead.
  183195. .UNINDENT
  183196. .SS Salt\-Cloud Deprecations
  183197. .INDENT 0.0
  183198. .IP \(bu 2
  183199. Support for using the keyword \fBprovider\fP in salt\-cloud provider config
  183200. files has been removed. Please use \fBdriver\fP instead. The \fBprovider\fP
  183201. keyword should now only be used in cloud profile config files.
  183202. .UNINDENT
  183203. .SS Salt\-SSH Deprecations
  183204. .INDENT 0.0
  183205. .IP \(bu 2
  183206. The \fBwipe_ssh\fP option for \fBsalt\-ssh\fP has been removed. Please use the
  183207. \fBssh_wipe\fP option instead.
  183208. .UNINDENT
  183209. .SS State Deprecations
  183210. .sp
  183211. The \fBapache_conf\fP state had the following functions removed:
  183212. .INDENT 0.0
  183213. .IP \(bu 2
  183214. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183215. .IP \(bu 2
  183216. \fBenable\fP: Please use \fBenabled\fP instead.
  183217. .UNINDENT
  183218. .sp
  183219. The \fBapache_module\fP state had the following functions removed:
  183220. .INDENT 0.0
  183221. .IP \(bu 2
  183222. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183223. .IP \(bu 2
  183224. \fBenable\fP: Please use \fBenabled\fP instead.
  183225. .UNINDENT
  183226. .sp
  183227. The \fBapache_site\fP state had the following functions removed:
  183228. .INDENT 0.0
  183229. .IP \(bu 2
  183230. \fBdisable\fP: Please use \fBdisabled\fP instead.
  183231. .IP \(bu 2
  183232. \fBenable\fP: Please use \fBenabled\fP instead.
  183233. .UNINDENT
  183234. .sp
  183235. The \fBchocolatey\fP state had the following functions removed:
  183236. .INDENT 0.0
  183237. .IP \(bu 2
  183238. \fBinstall\fP: Please use \fBinstalled\fP instead.
  183239. .IP \(bu 2
  183240. \fBuninstall\fP: Please use \fBuninstalled\fP instead.
  183241. .UNINDENT
  183242. .sp
  183243. The \fBgit\fP state had the following changes:
  183244. .INDENT 0.0
  183245. .IP \(bu 2
  183246. The \fBconfig\fP function was removed. Please use \fBconfig_set\fP instead.
  183247. .IP \(bu 2
  183248. The \fBis_global\fP option was removed from the \fBconfig_set\fP function.
  183249. Please use \fBglobal\fP instead.
  183250. .IP \(bu 2
  183251. The \fBalways_fetch\fP option was removed from the \fBlatest\fP function, as
  183252. it no longer has any effect. Please see the 2015.8.0
  183253. release notes for more information.
  183254. .IP \(bu 2
  183255. The \fBforce\fP option was removed from the \fBlatest\fP function. Please
  183256. use \fBforce_clone\fP instead.
  183257. .IP \(bu 2
  183258. The \fBremote_name\fP option was removed from the \fBlatest\fP function.
  183259. Please use \fBremote\fP instead.
  183260. .UNINDENT
  183261. .sp
  183262. The \fBglusterfs\fP state had the following function removed:
  183263. .INDENT 0.0
  183264. .IP \(bu 2
  183265. \fBcreated\fP: Please use \fBvolume_present\fP instead.
  183266. .UNINDENT
  183267. .sp
  183268. The \fBopenvswitch_port\fP state had the following change:
  183269. .INDENT 0.0
  183270. .IP \(bu 2
  183271. The \fBtype\fP option was removed from the \fBpresent\fP function. Please use \fBtunnel_type\fP instead.
  183272. .UNINDENT
  183273. .SS Build Notes
  183274. .SS Windows Installer Packages
  183275. .sp
  183276. Windows Installer packages have been patched with the following PR: \fI\%42347\fP
  183277. .SS Salt 2017.7.1 Release Notes
  183278. .sp
  183279. Version 2017.7.1 is a bugfix release for 2017.7.0\&.
  183280. .SS Statistics
  183281. .INDENT 0.0
  183282. .IP \(bu 2
  183283. Total Merges: \fB16\fP
  183284. .IP \(bu 2
  183285. Total Issue References: \fB12\fP
  183286. .IP \(bu 2
  183287. Total PR References: \fB31\fP
  183288. .IP \(bu 2
  183289. Contributors: \fB11\fP (\fI\%Ch3LL\fP, \fI\%TiteiKo\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%llua\fP, \fI\%rallytime\fP, \fI\%seedickcode\fP, \fI\%skizunov\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  183290. .UNINDENT
  183291. .SS Security Fix
  183292. .sp
  183293. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  183294. traversals on the Salt\-master
  183295. .sp
  183296. Correct a flaw in minion id validation which could allow certain minions to
  183297. authenticate to a master despite not having the correct credentials. To exploit
  183298. the vulnerability, an attacker must create a salt\-minion with an ID containing
  183299. characters that will cause a directory traversal. Credit for discovering the
  183300. security flaw goes to: \fI\%Vernhk@qq.com\fP
  183301. .SS Changelog for v2017.7.0..v2017.7.1
  183302. .sp
  183303. \fIGenerated at: 2018\-05\-26 20:28:44 UTC\fP
  183304. .INDENT 0.0
  183305. .IP \(bu 2
  183306. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#460\fP: (\fI\%Ch3LL\fP) decorator tests failing on python3 (refs: \fI\%#42548\fP)
  183307. .IP \(bu 2
  183308. \fBPR\fP \fI\%#42595\fP: (\fI\%gtmanfred\fP) make sure to pass arg as well
  183309. @ \fI2017\-07\-28 16:21:58 UTC\fP
  183310. .INDENT 2.0
  183311. .IP \(bu 2
  183312. \fBPR\fP \fI\%#42548\fP: (\fI\%gtmanfred\fP) pass in empty kwarg for reactor (refs: \fI\%#42595\fP)
  183313. .IP \(bu 2
  183314. a50fe5433a Merge pull request \fI\%#42595\fP from gtmanfred/2017.7.1
  183315. .IP \(bu 2
  183316. 8f73804b24 make sure to pass arg as well
  183317. .UNINDENT
  183318. .IP \(bu 2
  183319. \fBPR\fP \fI\%#42597\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42590\fP to 2017.7.1
  183320. @ \fI2017\-07\-28 00:20:01 UTC\fP
  183321. .INDENT 2.0
  183322. .IP \(bu 2
  183323. \fBPR\fP \fI\%#42590\fP: (\fI\%TiteiKo\fP) Fix missing tornado import (refs: \fI\%#42597\fP)
  183324. .IP \(bu 2
  183325. 3b583330de Merge pull request \fI\%#42597\fP from rallytime/bp\-42590
  183326. .IP \(bu 2
  183327. 8818b06f22 Fix missing tornado import
  183328. .UNINDENT
  183329. .IP \(bu 2
  183330. \fBISSUE\fP \fI\%#42404\fP: (\fI\%gabekahen\fP) [2017.7] file.managed with cmd_check "No such file or directory" (refs: \fI\%#42411\fP)
  183331. .IP \(bu 2
  183332. \fBISSUE\fP \fI\%#33708\fP: (\fI\%pepinje\fP) visudo check command leaves cache file in /tmp (refs: \fI\%#38063\fP, \fI\%#42411\fP)
  183333. .IP \(bu 2
  183334. \fBPR\fP \fI\%#42598\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42411\fP to 2017.7.1
  183335. @ \fI2017\-07\-28 00:19:13 UTC\fP
  183336. .INDENT 2.0
  183337. .IP \(bu 2
  183338. \fBPR\fP \fI\%#42411\fP: (\fI\%seedickcode\fP) Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP (refs: \fI\%#42598\fP)
  183339. .IP \(bu 2
  183340. \fBPR\fP \fI\%#38063\fP: (\fI\%llua\fP) tmp file clean up in file.manage \- fix for \fI\%#33708\fP (refs: \fI\%#42411\fP)
  183341. .IP \(bu 2
  183342. 76f1e53e10 Merge pull request \fI\%#42598\fP from rallytime/bp\-42411
  183343. .IP \(bu 2
  183344. 190cdb8693 Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  183345. .UNINDENT
  183346. .IP \(bu 2
  183347. \fBPR\fP \fI\%#42564\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42555\fP to 2017.7.1
  183348. @ \fI2017\-07\-26 17:32:02 UTC\fP
  183349. .INDENT 2.0
  183350. .IP \(bu 2
  183351. \fBPR\fP \fI\%#42555\fP: (\fI\%Ch3LL\fP) add changelog to 2017.7.1 release notes (refs: \fI\%#42564\fP)
  183352. .IP \(bu 2
  183353. 5c7def9a43 Merge pull request \fI\%#42564\fP from rallytime/bp\-42555
  183354. .IP \(bu 2
  183355. 7bcaa5a4cc small markup fix for title
  183356. .IP \(bu 2
  183357. d066b599ca add changelog to 2017.7.1 release notes
  183358. .UNINDENT
  183359. .IP \(bu 2
  183360. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#460\fP: (\fI\%Ch3LL\fP) decorator tests failing on python3 (refs: \fI\%#42548\fP)
  183361. .IP \(bu 2
  183362. \fBPR\fP \fI\%#42548\fP: (\fI\%gtmanfred\fP) pass in empty kwarg for reactor (refs: \fI\%#42595\fP)
  183363. @ \fI2017\-07\-26 00:41:20 UTC\fP
  183364. .INDENT 2.0
  183365. .IP \(bu 2
  183366. 711b742c54 Merge pull request \fI\%#42548\fP from gtmanfred/2017.7.1
  183367. .IP \(bu 2
  183368. 0257c1dc32 pass in empty kwarg for reactor
  183369. .IP \(bu 2
  183370. b948e980d2 update chunk, not kwarg in chunk
  183371. .UNINDENT
  183372. .IP \(bu 2
  183373. \fBISSUE\fP \fI\%#42519\fP: (\fI\%xuhcc\fP) Error when installing package from file under Arch Linux (refs: \fI\%#42522\fP)
  183374. .IP \(bu 2
  183375. \fBPR\fP \fI\%#42522\fP: (\fI\%gtmanfred\fP) pacman wildcard is only for repository installs
  183376. @ \fI2017\-07\-24 20:51:05 UTC\fP
  183377. .INDENT 2.0
  183378. .IP \(bu 2
  183379. 50c1635dcc Merge pull request \fI\%#42522\fP from gtmanfred/2017.7.1
  183380. .IP \(bu 2
  183381. 7787fb9e1b pacman wildcard is only for repository installs
  183382. .UNINDENT
  183383. .IP \(bu 2
  183384. \fBPR\fP \fI\%#42508\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42474\fP to 2017.7.1
  183385. @ \fI2017\-07\-24 20:49:51 UTC\fP
  183386. .INDENT 2.0
  183387. .IP \(bu 2
  183388. \fBPR\fP \fI\%#42474\fP: (\fI\%whiteinge\fP) Cmd arg kwarg parsing test (refs: \fI\%#42508\fP)
  183389. .IP \(bu 2
  183390. \fBPR\fP \fI\%#39646\fP: (\fI\%terminalmage\fP) Handle deprecation of passing string args to load_args_and_kwargs (refs: \fI\%#42474\fP)
  183391. .IP \(bu 2
  183392. 05c07ac049 Merge pull request \fI\%#42508\fP from rallytime/bp\-42474
  183393. .IP \(bu 2
  183394. 76fb074433 Add a test.arg variant that cleans the pub kwargs by default
  183395. .IP \(bu 2
  183396. 624f63648e Lint fixes
  183397. .IP \(bu 2
  183398. d246a5fc61 Add back support for string kwargs
  183399. .IP \(bu 2
  183400. 854e098aa0 Add LocalClient.cmd test for arg/kwarg parsing
  183401. .UNINDENT
  183402. .IP \(bu 2
  183403. \fBISSUE\fP \fI\%#42427\fP: (\fI\%grichmond\-salt\fP) Issue Passing Variables created from load_json as Inline Pillar Between States (refs: \fI\%#42435\fP)
  183404. .IP \(bu 2
  183405. \fBPR\fP \fI\%#42472\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42435\fP to 2017.7.1
  183406. @ \fI2017\-07\-24 15:11:13 UTC\fP
  183407. .INDENT 2.0
  183408. .IP \(bu 2
  183409. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42472\fP)
  183410. .IP \(bu 2
  183411. 95fe2558e4 Merge pull request \fI\%#42472\fP from rallytime/bp\-42435
  183412. .IP \(bu 2
  183413. 5c47af5b98 Modify our custom YAML loader to treat unicode literals as unicode strings
  183414. .UNINDENT
  183415. .IP \(bu 2
  183416. \fBISSUE\fP \fI\%#42374\fP: (\fI\%tyhunt99\fP) [2017.7.0] salt\-run mange.versions throws exception if minion is offline or unresponsive (refs: \fI\%#42436\fP)
  183417. .IP \(bu 2
  183418. \fBPR\fP \fI\%#42473\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42436\fP to 2017.7.1
  183419. @ \fI2017\-07\-24 15:10:29 UTC\fP
  183420. .INDENT 2.0
  183421. .IP \(bu 2
  183422. \fBPR\fP \fI\%#42436\fP: (\fI\%garethgreenaway\fP) Fixes to versions function in manage runner (refs: \fI\%#42473\fP)
  183423. .IP \(bu 2
  183424. 5b99d45f54 Merge pull request \fI\%#42473\fP from rallytime/bp\-42436
  183425. .IP \(bu 2
  183426. 82ed919803 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine its version.
  183427. .UNINDENT
  183428. .IP \(bu 2
  183429. \fBISSUE\fP \fI\%#42381\fP: (\fI\%zebooka\fP) Git.detached broken in 2017.7.0 (refs: \fI\%#42399\fP)
  183430. .IP \(bu 2
  183431. \fBISSUE\fP \fI\%#38878\fP: (\fI\%tomlaredo\fP) [Naming consistency] git.latest "rev" option VS git.detached "ref" option (refs: \fI\%#38898\fP)
  183432. .IP \(bu 2
  183433. \fBPR\fP \fI\%#42471\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42399\fP to 2017.7.1
  183434. @ \fI2017\-07\-24 15:09:50 UTC\fP
  183435. .INDENT 2.0
  183436. .IP \(bu 2
  183437. \fBPR\fP \fI\%#42399\fP: (\fI\%rallytime\fP) Update old "ref" references to "rev" in git.detached state (refs: \fI\%#42471\fP)
  183438. .IP \(bu 2
  183439. \fBPR\fP \fI\%#38898\fP: (\fI\%terminalmage\fP) git.detached: rename ref to rev for consistency (refs: \fI\%#42399\fP)
  183440. .IP \(bu 2
  183441. 3d1a2d3f9f Merge pull request \fI\%#42471\fP from rallytime/bp\-42399
  183442. .IP \(bu 2
  183443. b9a4669e5a Update old "ref" references to "rev" in git.detached state
  183444. .UNINDENT
  183445. .IP \(bu 2
  183446. \fBISSUE\fP \fI\%#42400\fP: (\fI\%Enquier\fP) Conflict in execution of passing pillar data to orch/reactor event executions 2017.7.0 (refs: \fI\%#42031\fP)
  183447. .IP \(bu 2
  183448. \fBPR\fP \fI\%#42470\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42031\fP to 2017.7.1
  183449. @ \fI2017\-07\-24 15:09:30 UTC\fP
  183450. .INDENT 2.0
  183451. .IP \(bu 2
  183452. \fBPR\fP \fI\%#42031\fP: (\fI\%skizunov\fP) Fix: Reactor emits critical error (refs: \fI\%#42470\fP)
  183453. .IP \(bu 2
  183454. 09766bccbc Merge pull request \fI\%#42470\fP from rallytime/bp\-42031
  183455. .IP \(bu 2
  183456. 0a0c6287a4 Fix: Reactor emits critical error
  183457. .UNINDENT
  183458. .IP \(bu 2
  183459. \fBISSUE\fP \fI\%#41949\fP: (\fI\%jrporcaro\fP) Event returner doesn\(aqt work with Windows Master (refs: \fI\%#42027\fP)
  183460. .IP \(bu 2
  183461. \fBPR\fP \fI\%#42469\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42027\fP to 2017.7.1
  183462. @ \fI2017\-07\-21 22:41:02 UTC\fP
  183463. .INDENT 2.0
  183464. .IP \(bu 2
  183465. \fBPR\fP \fI\%#42027\fP: (\fI\%gtmanfred\fP) import salt.minion for EventReturn for Windows (refs: \fI\%#42469\fP)
  183466. .IP \(bu 2
  183467. d7b172a15b Merge pull request \fI\%#42469\fP from rallytime/bp\-42027
  183468. .IP \(bu 2
  183469. ed612b4ee7 import salt.minion for EventReturn for Windows
  183470. .UNINDENT
  183471. .IP \(bu 2
  183472. \fBPR\fP \fI\%#42466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42452\fP to 2017.7.1
  183473. @ \fI2017\-07\-21 19:41:24 UTC\fP
  183474. .INDENT 2.0
  183475. .IP \(bu 2
  183476. \fBPR\fP \fI\%#42452\fP: (\fI\%Ch3LL\fP) update windows urls to new py2/py3 naming scheme (refs: \fI\%#42466\fP)
  183477. .IP \(bu 2
  183478. 8777b1a825 Merge pull request \fI\%#42466\fP from rallytime/bp\-42452
  183479. .IP \(bu 2
  183480. c10196f68c update windows urls to new py2/py3 naming scheme
  183481. .UNINDENT
  183482. .IP \(bu 2
  183483. \fBPR\fP \fI\%#42439\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42409\fP to 2017.7.1
  183484. @ \fI2017\-07\-21 17:38:10 UTC\fP
  183485. .INDENT 2.0
  183486. .IP \(bu 2
  183487. \fBPR\fP \fI\%#42409\fP: (\fI\%twangboy\fP) Add Scripts to build Py3 on Mac (refs: \fI\%#42439\fP)
  183488. .IP \(bu 2
  183489. fceaaf41d0 Merge pull request \fI\%#42439\fP from rallytime/bp\-42409
  183490. .IP \(bu 2
  183491. 8176964b41 Remove build and dist, sign pkgs
  183492. .IP \(bu 2
  183493. 2c14d92a07 Fix hard coded pip path
  183494. .IP \(bu 2
  183495. 82fdd7c2e1 Add support for Py3
  183496. .IP \(bu 2
  183497. 2478447246 Update Python and other reqs
  183498. .UNINDENT
  183499. .IP \(bu 2
  183500. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  183501. .IP \(bu 2
  183502. \fBPR\fP \fI\%#42441\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42433\fP to 2017.7.1
  183503. @ \fI2017\-07\-21 17:37:01 UTC\fP
  183504. .INDENT 2.0
  183505. .IP \(bu 2
  183506. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42441\fP)
  183507. .IP \(bu 2
  183508. 660400560b Merge pull request \fI\%#42441\fP from rallytime/bp\-42433
  183509. .IP \(bu 2
  183510. 17f347123a Only force saltenv/pillarenv to be a string when not None
  183511. .UNINDENT
  183512. .UNINDENT
  183513. .SS Salt 2017.7.2 Release Notes
  183514. .sp
  183515. Version 2017.7.2 is a bugfix release for 2017.7.0\&.
  183516. .SS Statistics
  183517. .INDENT 0.0
  183518. .IP \(bu 2
  183519. Total Merges: \fB329\fP
  183520. .IP \(bu 2
  183521. Total Issue References: \fB73\fP
  183522. .IP \(bu 2
  183523. Total PR References: \fB236\fP
  183524. .IP \(bu 2
  183525. Contributors: \fB47\fP (\fI\%Ch3LL\fP, \fI\%CorvinM\fP, \fI\%DmitryKuzmenko\fP, \fI\%Giandom\fP, \fI\%Mapel88\fP, \fI\%Mareo\fP, \fI\%SuperPommeDeTerre\fP, \fI\%The\-Loeki\fP, \fI\%abulford\fP, \fI\%amendlik\fP, \fI\%blarghmatey\fP, \fI\%brejoc\fP, \fI\%cachedout\fP, \fI\%carsonoid\fP, \fI\%cro\fP, \fI\%damon\-atkins\fP, \fI\%darcoli\fP, \fI\%dmurphy18\fP, \fI\%frankiexyz\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%hibbert\fP, \fI\%isbm\fP, \fI\%ixs\fP, \fI\%jettero\fP, \fI\%jmarinaro\fP, \fI\%justincbeard\fP, \fI\%kkoppel\fP, \fI\%llua\fP, \fI\%lomeroe\fP, \fI\%m03\fP, \fI\%mcalmer\fP, \fI\%mirceaulinic\fP, \fI\%morganwillcock\fP, \fI\%nhavens\fP, \fI\%pabloh007\fP, \fI\%rallytime\fP, \fI\%seedickcode\fP, \fI\%shengis\fP, \fI\%skizunov\fP, \fI\%terminalmage\fP, \fI\%the\-glu\fP, \fI\%thusoy\fP, \fI\%twangboy\fP, \fI\%vitaliyf\fP, \fI\%vutny\fP, \fI\%whiteinge\fP)
  183526. .UNINDENT
  183527. .SS Security Fix
  183528. .sp
  183529. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  183530. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  183531. a master via a crafted minion ID. Credit for discovering the security flaw goes
  183532. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  183533. .sp
  183534. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  183535. authentication request. Credit for discovering the security flaw goes to:
  183536. Julian Brost (\fI\%julian@0x4a42.net\fP)
  183537. .SS Changelog for v2017.7.1..v2017.7.2
  183538. .sp
  183539. \fIGenerated at: 2018\-05\-26 21:06:12 UTC\fP
  183540. .INDENT 0.0
  183541. .IP \(bu 2
  183542. \fBPR\fP \fI\%#43868\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43847\fP to 2017.7.2
  183543. @ \fI2017\-10\-03 12:00:52 UTC\fP
  183544. .INDENT 2.0
  183545. .IP \(bu 2
  183546. \fBPR\fP \fI\%#43847\fP: (\fI\%cachedout\fP) Fix to module.run (refs: \fI\%#43868\fP)
  183547. .IP \(bu 2
  183548. dd0b3388cf Merge pull request \fI\%#43868\fP from rallytime/bp\-43847
  183549. .IP \(bu 2
  183550. e21d8e9583 Use six.iterkeys() instead of dict.keys()
  183551. .IP \(bu 2
  183552. c297ae5557 Improve failures for module.run states
  183553. .IP \(bu 2
  183554. 782e67c199 Lint
  183555. .IP \(bu 2
  183556. a6c2d78518 Fix typo found by @s0undt3ch
  183557. .IP \(bu 2
  183558. 0cac15e502 Fix to module.run [WIP]
  183559. .UNINDENT
  183560. .IP \(bu 2
  183561. \fBPR\fP \fI\%#43871\fP: (\fI\%rallytime\fP) Add updated release notes to 2017.7.2 branch
  183562. @ \fI2017\-10\-03 11:59:29 UTC\fP
  183563. .INDENT 2.0
  183564. .IP \(bu 2
  183565. 47af4ae38a Merge pull request \fI\%#43871\fP from rallytime/update\-release\-notes
  183566. .IP \(bu 2
  183567. 2337904656 Add updated release notes to 2017.7.2 branch
  183568. .UNINDENT
  183569. .IP \(bu 2
  183570. \fBPR\fP \fI\%#43756\fP: (\fI\%gtmanfred\fP) split build and install for pkg osx
  183571. @ \fI2017\-09\-26 20:51:28 UTC\fP
  183572. .INDENT 2.0
  183573. .IP \(bu 2
  183574. 88414d5f73 Merge pull request \fI\%#43756\fP from gtmanfred/2017.7.2
  183575. .IP \(bu 2
  183576. f7df41fa94 split build and install for pkg osx
  183577. .UNINDENT
  183578. .IP \(bu 2
  183579. \fBISSUE\fP \fI\%#43077\fP: (\fI\%Manoj2087\fP) Issue with deleting key via wheel (refs: \fI\%#43330\fP)
  183580. .IP \(bu 2
  183581. \fBPR\fP \fI\%#43585\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43330\fP to 2017.7.2
  183582. @ \fI2017\-09\-19 17:33:34 UTC\fP
  183583. .INDENT 2.0
  183584. .IP \(bu 2
  183585. \fBPR\fP \fI\%#43330\fP: (\fI\%terminalmage\fP) Fix reactor regression + unify reactor config schema (refs: \fI\%#43585\fP)
  183586. .IP \(bu 2
  183587. 89f629233f Merge pull request \fI\%#43585\fP from rallytime/bp\-43330
  183588. .IP \(bu 2
  183589. c4f693bae8 Merge branch \(aq2017.7.2\(aq into bp\-43330
  183590. .UNINDENT
  183591. .IP \(bu 2
  183592. \fBISSUE\fP \fI\%#43447\fP: (\fI\%UtahDave\fP) When using Syndic with Multi Master the top level master doesn\(aqt reliably get returns from lower minion. (refs: \fI\%#43526\fP)
  183593. .IP \(bu 2
  183594. \fBPR\fP \fI\%#43586\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43526\fP to 2017.7.2
  183595. @ \fI2017\-09\-19 15:36:27 UTC\fP
  183596. .INDENT 2.0
  183597. .IP \(bu 2
  183598. \fBPR\fP \fI\%#43526\fP: (\fI\%DmitryKuzmenko\fP) Forward events to all masters syndic connected to (refs: \fI\%#43586\fP)
  183599. .IP \(bu 2
  183600. abb7fe4422 Merge pull request \fI\%#43586\fP from rallytime/bp\-43526
  183601. .IP \(bu 2
  183602. e076e9b634 Forward events to all masters syndic connected to.
  183603. .IP \(bu 2
  183604. 7abd07fa07 Simplify client logic
  183605. .IP \(bu 2
  183606. b5f10696c2 Improve the reactor documentation
  183607. .IP \(bu 2
  183608. 7a2f12b96a Include a better example for reactor in master conf file
  183609. .IP \(bu 2
  183610. 531cac610e Rewrite the reactor unit tests
  183611. .IP \(bu 2
  183612. 2a35ab7f39 Unify reactor configuration, fix caller reactors
  183613. .IP \(bu 2
  183614. 4afb179bad Un\-deprecate passing kwargs outside of \(aqkwarg\(aq param
  183615. .UNINDENT
  183616. .IP \(bu 2
  183617. \fBPR\fP \fI\%#43551\fP: (\fI\%twangboy\fP) Fix preinstall script on OSX for 2017.7.2
  183618. @ \fI2017\-09\-18 18:35:35 UTC\fP
  183619. .INDENT 2.0
  183620. .IP \(bu 2
  183621. 3d3b09302d Merge pull request \fI\%#43551\fP from twangboy/osx_fix_preinstall_2017.7.2
  183622. .IP \(bu 2
  183623. c3d9fb63f0 Merge branch \(aq2017.7.2\(aq into osx_fix_preinstall_2017.7.2
  183624. .UNINDENT
  183625. .IP \(bu 2
  183626. \fBPR\fP \fI\%#43509\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43333\fP to 2017.7.2
  183627. @ \fI2017\-09\-15 21:21:40 UTC\fP
  183628. .INDENT 2.0
  183629. .IP \(bu 2
  183630. \fBPR\fP \fI\%#43333\fP: (\fI\%damon\-atkins\fP) Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed as params + 1 bug (refs: \fI\%#43509\fP)
  183631. .IP \(bu 2
  183632. 24691da888 Merge pull request \fI\%#43509\fP from rallytime/bp\-43333\-2017.7.2
  183633. .IP \(bu 2
  183634. b3dbafb035 Update doco
  183635. .IP \(bu 2
  183636. 5cdcdbf428 Update win_pkg.py
  183637. .IP \(bu 2
  183638. c3e16661c3 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  183639. .IP \(bu 2
  183640. f33395f1ee Fix logic in \fI/etc/paths.d/salt\fP detection
  183641. .UNINDENT
  183642. .IP \(bu 2
  183643. \fBPR\fP \fI\%#43440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43421\fP to 2017.7.2
  183644. @ \fI2017\-09\-11 20:59:53 UTC\fP
  183645. .INDENT 2.0
  183646. .IP \(bu 2
  183647. \fBPR\fP \fI\%#43421\fP: (\fI\%gtmanfred\fP) Revert "Reduce fileclient.get_file latency by merging _file_find and … (refs: \fI\%#43440\fP)
  183648. .IP \(bu 2
  183649. 8964cacbf8 Merge pull request \fI\%#43440\fP from rallytime/bp\-43421
  183650. .IP \(bu 2
  183651. ea6e661755 Revert "Reduce fileclient.get_file latency by merging _file_find and _file_hash"
  183652. .UNINDENT
  183653. .IP \(bu 2
  183654. \fBPR\fP \fI\%#43377\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43193\fP to 2017.7.2
  183655. @ \fI2017\-09\-11 15:32:23 UTC\fP
  183656. .INDENT 2.0
  183657. .IP \(bu 2
  183658. \fBPR\fP \fI\%#43193\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43377\fP)
  183659. .IP \(bu 2
  183660. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43193\fP)
  183661. .IP \(bu 2
  183662. 7fda186b18 Merge pull request \fI\%#43377\fP from rallytime/bp\-43193
  183663. .IP \(bu 2
  183664. 842b07fd25 Prevent spurious "Template does not exist" error
  183665. .UNINDENT
  183666. .IP \(bu 2
  183667. \fBISSUE\fP \fI\%#42459\fP: (\fI\%iavael\fP) Broken ldap groups retrieval in salt.auth.ldap after upgrade to 2017.7 (refs: \fI\%#43283\fP)
  183668. .IP \(bu 2
  183669. \fBPR\fP \fI\%#43315\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43283\fP to 2017.7.2
  183670. @ \fI2017\-09\-05 20:04:25 UTC\fP
  183671. .INDENT 2.0
  183672. .IP \(bu 2
  183673. \fBPR\fP \fI\%#43283\fP: (\fI\%DmitryKuzmenko\fP) Fix ldap token groups auth. (refs: \fI\%#43315\fP)
  183674. .IP \(bu 2
  183675. 85dba1e898 Merge pull request \fI\%#43315\fP from rallytime/bp\-43283
  183676. .IP \(bu 2
  183677. f29f5b0cce Fix for tests: don\(aqt require \(aqgroups\(aq in the eauth token.
  183678. .IP \(bu 2
  183679. 56938d5bf2 Fix ldap token groups auth.
  183680. .UNINDENT
  183681. .IP \(bu 2
  183682. \fBISSUE\fP \fI\%#43259\fP: (\fI\%mahesh21\fP) NameError: global name \(aq__opts__\(aq is not defined (refs: \fI\%#43266\fP)
  183683. .IP \(bu 2
  183684. \fBPR\fP \fI\%#43266\fP: (\fI\%gtmanfred\fP) switch virtualbox cloud driver to use __utils__
  183685. @ \fI2017\-08\-30 18:36:20 UTC\fP
  183686. .INDENT 2.0
  183687. .IP \(bu 2
  183688. 26ff8088cb Merge pull request \fI\%#43266\fP from gtmanfred/virtualbox
  183689. .IP \(bu 2
  183690. 382bf92de7 switch virtualbox cloud driver to use __utils__
  183691. .UNINDENT
  183692. .IP \(bu 2
  183693. \fBISSUE\fP \fI\%#42936\fP: (\fI\%Mapel88\fP) bug in win_iis module & state \- container_setting (refs: \fI\%#43073\fP)
  183694. .IP \(bu 2
  183695. \fBPR\fP \fI\%#43073\fP: (\fI\%Mapel88\fP) Fix bug \fI\%#42936\fP \- win_iis module container settings
  183696. @ \fI2017\-08\-30 18:34:37 UTC\fP
  183697. .INDENT 2.0
  183698. .IP \(bu 2
  183699. ee209b144c Merge pull request \fI\%#43073\fP from Mapel88/patch\-2
  183700. .IP \(bu 2
  183701. b1a3d15b28 Remove trailing whitespace for linter
  183702. .IP \(bu 2
  183703. 25c8190e48 Fix pylint errors
  183704. .IP \(bu 2
  183705. 1eba8c4b8e Fix pylint errors
  183706. .IP \(bu 2
  183707. 290d7b54af Fix plint errors
  183708. .IP \(bu 2
  183709. f4f32421ab Fix plint errors
  183710. .IP \(bu 2
  183711. ec20e9a19a Fix bug \fI\%#43110\fP \- win_iis module
  183712. .IP \(bu 2
  183713. 009ef6686b Fix dictionary keys from string to int
  183714. .IP \(bu 2
  183715. dc793f9a05 Fix bug \fI\%#42936\fP \- win_iis state
  183716. .IP \(bu 2
  183717. 13404a47b5 Fix bug \fI\%#42936\fP \- win_iis module
  183718. .UNINDENT
  183719. .IP \(bu 2
  183720. \fBPR\fP \fI\%#43254\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_inspect_collector\fP on Windows
  183721. @ \fI2017\-08\-30 15:46:07 UTC\fP
  183722. .INDENT 2.0
  183723. .IP \(bu 2
  183724. ec1bedc646 Merge pull request \fI\%#43254\fP from twangboy/win_fix_test_inspect_collector
  183725. .IP \(bu 2
  183726. b401340e6c Fix \fIunit.modules.test_inspect_collector\fP on Windows
  183727. .UNINDENT
  183728. .IP \(bu 2
  183729. \fBISSUE\fP \fI\%#43241\fP: (\fI\%mirceaulinic\fP) Error whilst collecting napalm grains (refs: \fI\%#43255\fP)
  183730. .IP \(bu 2
  183731. \fBPR\fP \fI\%#43255\fP: (\fI\%gtmanfred\fP) always return a dict object
  183732. @ \fI2017\-08\-30 14:47:15 UTC\fP
  183733. .INDENT 2.0
  183734. .IP \(bu 2
  183735. 1fc7307735 Merge pull request \fI\%#43255\fP from gtmanfred/2017.7
  183736. .IP \(bu 2
  183737. 83b0bab34b opt_args needs to be a dict
  183738. .UNINDENT
  183739. .IP \(bu 2
  183740. \fBPR\fP \fI\%#43229\fP: (\fI\%twangboy\fP) Bring changes from \fI\%#43228\fP to 2017.7
  183741. @ \fI2017\-08\-30 14:26:55 UTC\fP
  183742. .INDENT 2.0
  183743. .IP \(bu 2
  183744. \fBPR\fP \fI\%#43228\fP: (\fI\%twangboy\fP) Win fix pkg.install (refs: \fI\%#43229\fP)
  183745. .IP \(bu 2
  183746. fa904ee225 Merge pull request \fI\%#43229\fP from twangboy/win_fix_pkg.install\-2017.7
  183747. .IP \(bu 2
  183748. e007a1c26e Fix regex, add \fI\&.\fP
  183749. .IP \(bu 2
  183750. 23ec47c74c Add _ to regex search
  183751. .IP \(bu 2
  183752. b1788b1e5f Bring changes from \fI\%#43228\fP to 2017.7
  183753. .UNINDENT
  183754. .IP \(bu 2
  183755. \fBPR\fP \fI\%#43251\fP: (\fI\%twangboy\fP) Skips \fIunit.modules.test_groupadd\fP on Windows
  183756. @ \fI2017\-08\-30 13:56:36 UTC\fP
  183757. .INDENT 2.0
  183758. .IP \(bu 2
  183759. 25666f88f7 Merge pull request \fI\%#43251\fP from twangboy/win_skip_test_groupadd
  183760. .IP \(bu 2
  183761. 5185071d5a Skips \fIunit.modules.test_groupadd\fP on Windows
  183762. .UNINDENT
  183763. .IP \(bu 2
  183764. \fBPR\fP \fI\%#43256\fP: (\fI\%twangboy\fP) Skip mac tests for user and group
  183765. @ \fI2017\-08\-30 13:18:13 UTC\fP
  183766. .INDENT 2.0
  183767. .IP \(bu 2
  183768. a8e09629b2 Merge pull request \fI\%#43256\fP from twangboy/win_skip_mac_tests
  183769. .IP \(bu 2
  183770. cec627a60b Skip mac tests for user and group
  183771. .UNINDENT
  183772. .IP \(bu 2
  183773. \fBISSUE\fP \fI\%#42279\fP: (\fI\%dafyddj\fP) win_lgpo matches multiple policies due to startswith() (refs: \fI\%#43116\fP, \fI\%#43156\fP, \fI\%#43166\fP, \fI\%#43226\fP)
  183774. .IP \(bu 2
  183775. \fBPR\fP \fI\%#43226\fP: (\fI\%lomeroe\fP) Fixes for issues in PR \fI\%#43166\fP
  183776. @ \fI2017\-08\-29 19:05:39 UTC\fP
  183777. .INDENT 2.0
  183778. .IP \(bu 2
  183779. \fBPR\fP \fI\%#43166\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43226\fP)
  183780. .IP \(bu 2
  183781. \fBPR\fP \fI\%#43156\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43166\fP)
  183782. .IP \(bu 2
  183783. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43166\fP, \fI\%#43156\fP)
  183784. .IP \(bu 2
  183785. \fBPR\fP \fI\%#39773\fP: (\fI\%twangboy\fP) Make win_file use the win_dacl salt util (refs: \fI\%#43226\fP)
  183786. .IP \(bu 2
  183787. ac2189c870 Merge pull request \fI\%#43226\fP from lomeroe/fix_43166
  183788. .IP \(bu 2
  183789. 0c424dc4a3 Merge branch \(aq2017.7\(aq into fix_43166
  183790. .IP \(bu 2
  183791. 324cfd8d1e correcting bad format statement in search for policy to be disabled (fix for \fI\%#43166\fP) verify that file exists before attempting to remove (fix for commits from \fI\%#39773\fP)
  183792. .UNINDENT
  183793. .IP \(bu 2
  183794. \fBPR\fP \fI\%#43227\fP: (\fI\%twangboy\fP) Fix \fIunit.fileserver.test_gitfs\fP for Windows
  183795. @ \fI2017\-08\-29 19:03:36 UTC\fP
  183796. .INDENT 2.0
  183797. .IP \(bu 2
  183798. 6199fb46dc Merge pull request \fI\%#43227\fP from twangboy/win_fix_unit_test_gitfs
  183799. .IP \(bu 2
  183800. c956d24283 Fix is_windows detection when USERNAME missing
  183801. .IP \(bu 2
  183802. 869e8cc603 Fix \fIunit.fileserver.test_gitfs\fP for Windows
  183803. .UNINDENT
  183804. .IP \(bu 2
  183805. \fBPR\fP \fI\%#43217\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  183806. @ \fI2017\-08\-28 16:36:28 UTC\fP
  183807. .INDENT 2.0
  183808. .IP \(bu 2
  183809. 6adc03e4b4 Merge pull request \fI\%#43217\fP from rallytime/merge\-2017.7
  183810. .IP \(bu 2
  183811. 3911df2f4b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  183812. .IP \(bu 2
  183813. 5308c27f9f Merge pull request \fI\%#43202\fP from garethgreenaway/42642_2016_11_augeas_module_revert_fix
  183814. .INDENT 2.0
  183815. .IP \(bu 2
  183816. ef7e93eb3f Reverting this change due to it breaking other uses.
  183817. .UNINDENT
  183818. .IP \(bu 2
  183819. f16b7246e4 Merge pull request \fI\%#43103\fP from aogier/43101\-genesis\-bootstrap
  183820. .INDENT 2.0
  183821. .IP \(bu 2
  183822. db94f3bb1c better formatting
  183823. .IP \(bu 2
  183824. e5cc667762 tests: fix a leftover and simplify some parts
  183825. .IP \(bu 2
  183826. 13e5997457 lint
  183827. .IP \(bu 2
  183828. 216ced69e5 allow comma\-separated pkgs lists, quote args, test deb behaviour
  183829. .IP \(bu 2
  183830. d8612ae006 fix debootstrap and enhance packages selection/deletion via cmdline
  183831. .UNINDENT
  183832. .IP \(bu 2
  183833. 4863771428 Merge pull request \fI\%#42663\fP from StreetHawkInc/fix_git_tag_check
  183834. .INDENT 2.0
  183835. .IP \(bu 2
  183836. 2b5af5b59d Remove refs/tags prefix from remote tags
  183837. .IP \(bu 2
  183838. 3f2e96e561 Convert set to list for serializer
  183839. .IP \(bu 2
  183840. 2728e5d977 Only include new tags in changes
  183841. .IP \(bu 2
  183842. 4b1df2f223 Exclude annotated tags from checks
  183843. .IP \(bu 2
  183844. 389c037285 Check remote tags before deciding to do a fetch \fI\%#42329\fP
  183845. .UNINDENT
  183846. .UNINDENT
  183847. .IP \(bu 2
  183848. \fBPR\fP \fI\%#43201\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  183849. @ \fI2017\-08\-25 22:56:46 UTC\fP
  183850. .INDENT 2.0
  183851. .IP \(bu 2
  183852. a563a9422a Merge pull request \fI\%#43201\fP from rallytime/merge\-2017.7
  183853. .IP \(bu 2
  183854. d40eba6b37 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  183855. .INDENT 2.0
  183856. .IP \(bu 2
  183857. 4193e7f0a2 Merge pull request \fI\%#43199\fP from corywright/disk\-format\-alias
  183858. .INDENT 2.0
  183859. .IP \(bu 2
  183860. f00d3a9ddc Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  183861. .UNINDENT
  183862. .IP \(bu 2
  183863. 5471f9fe0c Merge pull request \fI\%#43196\fP from gtmanfred/2016.11
  183864. .INDENT 2.0
  183865. .IP \(bu 2
  183866. ccd2241777 Pin request install to version
  183867. .UNINDENT
  183868. .IP \(bu 2
  183869. ace2715c60 Merge pull request \fI\%#43178\fP from terminalmage/issue43143
  183870. .INDENT 2.0
  183871. .IP \(bu 2
  183872. 2640833400 git.detached: Fix traceback when rev is a SHA and is not present locally
  183873. .UNINDENT
  183874. .IP \(bu 2
  183875. 12e9507b9e Merge pull request \fI\%#43179\fP from terminalmage/old\-deprecation
  183876. .INDENT 2.0
  183877. .IP \(bu 2
  183878. 3adf8ad04b Fix missed deprecation
  183879. .UNINDENT
  183880. .IP \(bu 2
  183881. b595440d90 Merge pull request \fI\%#43171\fP from terminalmage/salt\-utils\-warning
  183882. .INDENT 2.0
  183883. .IP \(bu 2
  183884. 7b5943a31a Add warning about adding new functions to salt/utils/__init__.py
  183885. .UNINDENT
  183886. .IP \(bu 2
  183887. 4f273cac4f Merge pull request \fI\%#43173\fP from Ch3LL/add_branch_docs
  183888. .INDENT 2.0
  183889. .IP \(bu 2
  183890. 1b24244bd3 Add New Release Branch Strategy to Contribution Docs
  183891. .UNINDENT
  183892. .UNINDENT
  183893. .UNINDENT
  183894. .IP \(bu 2
  183895. \fBPR\fP \fI\%#42997\fP: (\fI\%twangboy\fP) Fix \fIunit.test_test_module_names\fP for Windows
  183896. @ \fI2017\-08\-25 21:19:11 UTC\fP
  183897. .INDENT 2.0
  183898. .IP \(bu 2
  183899. ce04ab4286 Merge pull request \fI\%#42997\fP from twangboy/win_fix_test_module_names
  183900. .IP \(bu 2
  183901. 2722e9521d Use os.path.join to create paths
  183902. .UNINDENT
  183903. .IP \(bu 2
  183904. \fBISSUE\fP \fI\%#26995\fP: (\fI\%jbouse\fP) Issue with artifactory.downloaded and snapshot artifacts (refs: \fI\%#43006\fP)
  183905. .IP \(bu 2
  183906. \fBPR\fP \fI\%#43006\fP: (\fI\%SuperPommeDeTerre\fP) Try to fix \fI\%#26995\fP
  183907. @ \fI2017\-08\-25 21:16:07 UTC\fP
  183908. .INDENT 2.0
  183909. .IP \(bu 2
  183910. c0279e491e Merge pull request \fI\%#43006\fP from SuperPommeDeTerre/SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  183911. .IP \(bu 2
  183912. 30dd6f5d12 Merge remote\-tracking branch \(aqupstream/2017.7\(aq into SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  183913. .IP \(bu 2
  183914. f42ae9b8cd Merge branch \(aqSuperPommeDeTerre\-patch\-#26995\(aq of \fI\%https://github.com/SuperPommeDeTerre/salt\fP into SuperPommeDeTerre\-patch\-#26995
  183915. .INDENT 2.0
  183916. .IP \(bu 2
  183917. 50ee3d5682 Merge remote\-tracking branch \(aqremotes/origin/2017.7\(aq into SuperPommeDeTerre\-patch\-\fI\%#26995\fP
  183918. .IP \(bu 2
  183919. 0b666e100b Fix typo.
  183920. .IP \(bu 2
  183921. 1b8729b3e7 Fix for \fI\%#26995\fP
  183922. .UNINDENT
  183923. .IP \(bu 2
  183924. e314102978 Fix typo.
  183925. .IP \(bu 2
  183926. db11e1985b Fix for \fI\%#26995\fP
  183927. .UNINDENT
  183928. .IP \(bu 2
  183929. \fBISSUE\fP \fI\%#43162\fP: (\fI\%MorphBonehunter\fP) docker_container.running interference with restart_policy (refs: \fI\%#43184\fP)
  183930. .IP \(bu 2
  183931. \fBPR\fP \fI\%#43184\fP: (\fI\%terminalmage\fP) docker.compare_container: Perform boolean comparison when one side\(aqs value is null/None
  183932. @ \fI2017\-08\-25 18:42:11 UTC\fP
  183933. .INDENT 2.0
  183934. .IP \(bu 2
  183935. b6c5314fe9 Merge pull request \fI\%#43184\fP from terminalmage/issue43162
  183936. .IP \(bu 2
  183937. 081f42ad71 docker.compare_container: Perform boolean comparison when one side\(aqs value is null/None
  183938. .UNINDENT
  183939. .IP \(bu 2
  183940. \fBPR\fP \fI\%#43165\fP: (\fI\%mirceaulinic\fP) Improve napalm state output in debug mode
  183941. @ \fI2017\-08\-24 23:05:37 UTC\fP
  183942. .INDENT 2.0
  183943. .IP \(bu 2
  183944. 688125bb4f Merge pull request \fI\%#43165\fP from cloudflare/fix\-napalm\-ret
  183945. .IP \(bu 2
  183946. c10717dc89 Lint and fix
  183947. .IP \(bu 2
  183948. 1cd33cbaa9 Simplify the loaded_ret logic
  183949. .IP \(bu 2
  183950. 0bbea6b04c Document the new compliance_report arg
  183951. .IP \(bu 2
  183952. 3a906109bd Include compliance reports
  183953. .IP \(bu 2
  183954. 3634055e34 Improve napalm state output in debug mode
  183955. .UNINDENT
  183956. .IP \(bu 2
  183957. \fBPR\fP \fI\%#43155\fP: (\fI\%terminalmage\fP) Resolve image ID during container comparison
  183958. @ \fI2017\-08\-24 22:09:47 UTC\fP
  183959. .INDENT 2.0
  183960. .IP \(bu 2
  183961. a6a327b1e5 Merge pull request \fI\%#43155\fP from terminalmage/issue43001
  183962. .IP \(bu 2
  183963. 0186835ebf Fix docstring in test
  183964. .IP \(bu 2
  183965. a0bb654e46 Fixing lint issues
  183966. .IP \(bu 2
  183967. d5b2a0be68 Resolve image ID during container comparison
  183968. .UNINDENT
  183969. .IP \(bu 2
  183970. \fBPR\fP \fI\%#43170\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  183971. @ \fI2017\-08\-24 19:22:26 UTC\fP
  183972. .INDENT 2.0
  183973. .IP \(bu 2
  183974. c071fd44c8 Merge pull request \fI\%#43170\fP from rallytime/merge\-2017.7
  183975. .IP \(bu 2
  183976. 3daad5a3a2 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  183977. .INDENT 2.0
  183978. .IP \(bu 2
  183979. 669b376abf Merge pull request \fI\%#43151\fP from ushmodin/2016.11
  183980. .INDENT 2.0
  183981. .IP \(bu 2
  183982. c5841e2ade state.sls hangs on file.recurse with clean: True on windows
  183983. .UNINDENT
  183984. .UNINDENT
  183985. .UNINDENT
  183986. .IP \(bu 2
  183987. \fBISSUE\fP \fI\%#43040\fP: (\fI\%darcoli\fP) gitFS ext_pillar with branch name __env__ results in empty pillars (refs: \fI\%#43041\fP)
  183988. .IP \(bu 2
  183989. \fBPR\fP \fI\%#43168\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43041\fP to 2017.7
  183990. @ \fI2017\-08\-24 19:07:23 UTC\fP
  183991. .INDENT 2.0
  183992. .IP \(bu 2
  183993. \fBPR\fP \fI\%#43041\fP: (\fI\%darcoli\fP) Do not try to match pillarenv with __env__ (refs: \fI\%#43168\fP)
  183994. .IP \(bu 2
  183995. 034c325a09 Merge pull request \fI\%#43168\fP from rallytime/bp\-43041
  183996. .IP \(bu 2
  183997. d010b74b87 Do not try to match pillarenv with __env__
  183998. .UNINDENT
  183999. .IP \(bu 2
  184000. \fBPR\fP \fI\%#43172\fP: (\fI\%rallytime\fP) Move new utils/__init__.py funcs to utils.files.py
  184001. @ \fI2017\-08\-24 19:05:30 UTC\fP
  184002. .INDENT 2.0
  184003. .IP \(bu 2
  184004. \fBPR\fP \fI\%#43056\fP: (\fI\%damon\-atkins\fP) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) (refs: \fI\%#43172\fP)
  184005. .IP \(bu 2
  184006. d48938e6b4 Merge pull request \fI\%#43172\fP from rallytime/move\-utils\-funcs
  184007. .IP \(bu 2
  184008. 5385c7901e Move new utils/__init__.py funcs to utils.files.py
  184009. .UNINDENT
  184010. .IP \(bu 2
  184011. \fBISSUE\fP \fI\%#43043\fP: (\fI\%pabloh007\fP) docker.save and docker.load problem (refs: \fI\%#43061\fP)
  184012. .IP \(bu 2
  184013. \fBPR\fP \fI\%#43061\fP: (\fI\%pabloh007\fP) Have docker.save use the image name when valid if not use image id, i…
  184014. @ \fI2017\-08\-24 16:32:02 UTC\fP
  184015. .INDENT 2.0
  184016. .IP \(bu 2
  184017. e60f586442 Merge pull request \fI\%#43061\fP from pabloh007/fix\-save\-image\-name\-id
  184018. .IP \(bu 2
  184019. 0ffc57d1df Have docker.save use the image name when valid if not use image id, issue when loading and image is savid with id issue \fI\%#43043\fP
  184020. .UNINDENT
  184021. .IP \(bu 2
  184022. \fBISSUE\fP \fI\%#42279\fP: (\fI\%dafyddj\fP) win_lgpo matches multiple policies due to startswith() (refs: \fI\%#43116\fP, \fI\%#43156\fP, \fI\%#43166\fP, \fI\%#43226\fP)
  184023. .IP \(bu 2
  184024. \fBPR\fP \fI\%#43166\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43226\fP)
  184025. @ \fI2017\-08\-24 15:01:23 UTC\fP
  184026. .INDENT 2.0
  184027. .IP \(bu 2
  184028. \fBPR\fP \fI\%#43156\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2017.7 (refs: \fI\%#43166\fP)
  184029. .IP \(bu 2
  184030. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43166\fP, \fI\%#43156\fP)
  184031. .IP \(bu 2
  184032. 9da57543f8 Merge pull request \fI\%#43166\fP from lomeroe/bp\-43116\-2017.7
  184033. .IP \(bu 2
  184034. af181b3257 correct fopen calls from salt.utils for 2017.7
  184035. .IP \(bu 2
  184036. f74480f11e lint fix
  184037. .IP \(bu 2
  184038. ecd446fd55 track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  184039. .IP \(bu 2
  184040. 9f3047c420 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  184041. .UNINDENT
  184042. .IP \(bu 2
  184043. \fBPR\fP \fI\%#43056\fP: (\fI\%damon\-atkins\fP) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) (refs: \fI\%#43172\fP)
  184044. @ \fI2017\-08\-23 17:35:02 UTC\fP
  184045. .INDENT 2.0
  184046. .IP \(bu 2
  184047. 44b3caead1 Merge pull request \fI\%#43056\fP from damon\-atkins/2017.7
  184048. .IP \(bu 2
  184049. 08ded1546e more lint
  184050. .IP \(bu 2
  184051. 6e9c0957fb fix typo
  184052. .IP \(bu 2
  184053. ee41171c9f lint fixes
  184054. .IP \(bu 2
  184055. 8c864f02c7 fix missing imports
  184056. .IP \(bu 2
  184057. 964cebd954 safe_filename_leaf(file_basename) and safe_filepath(file_path_name)
  184058. .UNINDENT
  184059. .IP \(bu 2
  184060. \fBPR\fP \fI\%#43146\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184061. @ \fI2017\-08\-23 16:56:10 UTC\fP
  184062. .INDENT 2.0
  184063. .IP \(bu 2
  184064. 6ca9131a23 Merge pull request \fI\%#43146\fP from rallytime/merge\-2017.7
  184065. .IP \(bu 2
  184066. bcbe180fbc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184067. .INDENT 2.0
  184068. .IP \(bu 2
  184069. ae9d2b7985 Merge pull request \fI\%#42986\fP from renner/systemd\-notify
  184070. .INDENT 2.0
  184071. .IP \(bu 2
  184072. 79c53f3f81 Fallback to systemd_notify_call() in case of socket.error
  184073. .IP \(bu 2
  184074. f1765472dd Notify systemd synchronously (via NOTIFY_SOCKET)
  184075. .UNINDENT
  184076. .IP \(bu 2
  184077. b420fbe618 Merge pull request \fI\%#43037\fP from mcarlton00/fix\-bhyve\-grains
  184078. .INDENT 2.0
  184079. .IP \(bu 2
  184080. 73315f0cf0 Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  184081. .UNINDENT
  184082. .IP \(bu 2
  184083. 0a86f2d884 Merge pull request \fI\%#43100\fP from vutny/doc\-add\-missing\-utils\-ext
  184084. .INDENT 2.0
  184085. .IP \(bu 2
  184086. af743ff6c3 [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  184087. .UNINDENT
  184088. .UNINDENT
  184089. .UNINDENT
  184090. .IP \(bu 2
  184091. \fBPR\fP \fI\%#43123\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_which\fP for Windows
  184092. @ \fI2017\-08\-23 16:01:39 UTC\fP
  184093. .INDENT 2.0
  184094. .IP \(bu 2
  184095. 03f652159f Merge pull request \fI\%#43123\fP from twangboy/win_fix_test_which
  184096. .IP \(bu 2
  184097. ed97cff5f6 Fix \fIunit.utils.test_which\fP for Windows
  184098. .UNINDENT
  184099. .IP \(bu 2
  184100. \fBISSUE\fP \fI\%#42505\fP: (\fI\%ikogan\fP) selinux.fcontext_policy_present exception looking for selinux.filetype_id_to_string (refs: \fI\%#43068\fP)
  184101. .IP \(bu 2
  184102. \fBPR\fP \fI\%#43142\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43068\fP to 2017.7
  184103. @ \fI2017\-08\-23 15:56:48 UTC\fP
  184104. .INDENT 2.0
  184105. .IP \(bu 2
  184106. \fBPR\fP \fI\%#43068\fP: (\fI\%ixs\fP) Mark selinux._filetype_id_to_string as public function (refs: \fI\%#43142\fP)
  184107. .IP \(bu 2
  184108. 5a4fc07863 Merge pull request \fI\%#43142\fP from rallytime/bp\-43068
  184109. .IP \(bu 2
  184110. efc1c8c506 Mark selinux._filetype_id_to_string as public function
  184111. .UNINDENT
  184112. .IP \(bu 2
  184113. \fBPR\fP \fI\%#43038\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_url\fP for Windows
  184114. @ \fI2017\-08\-23 13:35:25 UTC\fP
  184115. .INDENT 2.0
  184116. .IP \(bu 2
  184117. 0467a0e3bf Merge pull request \fI\%#43038\fP from twangboy/win_unit_utils_test_url
  184118. .IP \(bu 2
  184119. 7f5ee55f57 Fix \fIunit.utils.test_url\fP for Windows
  184120. .UNINDENT
  184121. .IP \(bu 2
  184122. \fBPR\fP \fI\%#43097\fP: (\fI\%twangboy\fP) Fix \fIgroup.present\fP for Windows
  184123. @ \fI2017\-08\-23 13:19:56 UTC\fP
  184124. .INDENT 2.0
  184125. .IP \(bu 2
  184126. e9ccaa61d2 Merge pull request \fI\%#43097\fP from twangboy/win_fix_group
  184127. .IP \(bu 2
  184128. 43b0360763 Fix lint
  184129. .IP \(bu 2
  184130. 9ffe315d7d Add kwargs
  184131. .IP \(bu 2
  184132. 4f4e34c79f Fix group state for Windows
  184133. .UNINDENT
  184134. .IP \(bu 2
  184135. \fBPR\fP \fI\%#43115\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42067\fP to 2017.7
  184136. @ \fI2017\-08\-22 20:09:52 UTC\fP
  184137. .INDENT 2.0
  184138. .IP \(bu 2
  184139. \fBPR\fP \fI\%#42067\fP: (\fI\%vitaliyf\fP) Removed several uses of name.split(\(aq.\(aq)[0] in SoftLayer driver. (refs: \fI\%#43115\fP)
  184140. .IP \(bu 2
  184141. 8140855627 Merge pull request \fI\%#43115\fP from rallytime/bp\-42067
  184142. .IP \(bu 2
  184143. 8a6ad0a9cf Fixed typo.
  184144. .IP \(bu 2
  184145. 9a5ae2bba1 Removed several uses of name.split(\(aq.\(aq)[0] in SoftLayer driver.
  184146. .UNINDENT
  184147. .IP \(bu 2
  184148. \fBPR\fP \fI\%#42962\fP: (\fI\%twangboy\fP) Fix \fIunit.test_doc test\fP for Windows
  184149. @ \fI2017\-08\-22 18:06:23 UTC\fP
  184150. .INDENT 2.0
  184151. .IP \(bu 2
  184152. 1e1a81036c Merge pull request \fI\%#42962\fP from twangboy/win_unit_test_doc
  184153. .IP \(bu 2
  184154. 201ceae4c4 Fix lint, remove debug statement
  184155. .IP \(bu 2
  184156. 37029c1a16 Fix unit.test_doc test
  184157. .UNINDENT
  184158. .IP \(bu 2
  184159. \fBPR\fP \fI\%#42995\fP: (\fI\%twangboy\fP) Fix malformed requisite for Windows
  184160. @ \fI2017\-08\-22 16:50:01 UTC\fP
  184161. .INDENT 2.0
  184162. .IP \(bu 2
  184163. d347d1cf8f Merge pull request \fI\%#42995\fP from twangboy/win_fix_invalid_requisite
  184164. .IP \(bu 2
  184165. 93390de88b Fix malformed requisite for Windows
  184166. .UNINDENT
  184167. .IP \(bu 2
  184168. \fBPR\fP \fI\%#43108\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42988\fP to 2017.7
  184169. @ \fI2017\-08\-22 16:49:27 UTC\fP
  184170. .INDENT 2.0
  184171. .IP \(bu 2
  184172. \fBPR\fP \fI\%#42988\fP: (\fI\%thusoy\fP) Fix broken negation in iptables (refs: \fI\%#43108\fP)
  184173. .IP \(bu 2
  184174. 1c7992a832 Merge pull request \fI\%#43108\fP from rallytime/bp\-42988
  184175. .IP \(bu 2
  184176. 1a987cb948 Fix broken negation in iptables
  184177. .UNINDENT
  184178. .IP \(bu 2
  184179. \fBPR\fP \fI\%#43107\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184180. @ \fI2017\-08\-22 16:11:25 UTC\fP
  184181. .INDENT 2.0
  184182. .IP \(bu 2
  184183. c6993f4a84 Merge pull request \fI\%#43107\fP from rallytime/merge\-2017.7
  184184. .IP \(bu 2
  184185. 328dd6aa23 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184186. .IP \(bu 2
  184187. e2bf2f448e Merge pull request \fI\%#42985\fP from DSRCorporation/bugs/15171_recursion_limit
  184188. .INDENT 2.0
  184189. .IP \(bu 2
  184190. 651b1bab09 Properly handle \fIprereq\fP having lost requisites.
  184191. .UNINDENT
  184192. .IP \(bu 2
  184193. e51333306c Merge pull request \fI\%#43092\fP from mitodl/2016.11
  184194. .INDENT 2.0
  184195. .IP \(bu 2
  184196. d4b113acdf Fixed issue with silently passing all tests in Testinfra module
  184197. .UNINDENT
  184198. .IP \(bu 2
  184199. 77a443ce8e Merge pull request \fI\%#43060\fP from twangboy/osx_update_pkg_scripts
  184200. .INDENT 2.0
  184201. .IP \(bu 2
  184202. ef8a14cdf9 Remove /opt/salt instead of /opt/salt/bin
  184203. .IP \(bu 2
  184204. 2dd62aa1da Add more information to the description
  184205. .IP \(bu 2
  184206. f44f5b70dc Only stop services if they are running
  184207. .IP \(bu 2
  184208. 3b62bf953c Remove salt from the path
  184209. .IP \(bu 2
  184210. ebdca3a0f5 Update pkg\-scripts
  184211. .UNINDENT
  184212. .IP \(bu 2
  184213. 1b1b6da803 Merge pull request \fI\%#43064\fP from terminalmage/issue42869
  184214. .INDENT 2.0
  184215. .IP \(bu 2
  184216. 093c0c2f77 Fix race condition in git.latest
  184217. .UNINDENT
  184218. .IP \(bu 2
  184219. 96e8e836d1 Merge pull request \fI\%#43054\fP from lorengordon/fix/yumpkg/config\-parser
  184220. .INDENT 2.0
  184221. .IP \(bu 2
  184222. 3b2cb81a72 fix typo in salt.modules.yumpkg
  184223. .IP \(bu 2
  184224. 38add0e4a2 break if leading comments are all fetched
  184225. .IP \(bu 2
  184226. d7f65dc7a7 fix configparser import & log if error was raised
  184227. .IP \(bu 2
  184228. ca1b1bb633 use configparser to parse yum repo file
  184229. .UNINDENT
  184230. .UNINDENT
  184231. .IP \(bu 2
  184232. \fBPR\fP \fI\%#42996\fP: (\fI\%twangboy\fP) Fix \fIunit.test_stateconf\fP for Windows
  184233. @ \fI2017\-08\-21 22:43:58 UTC\fP
  184234. .INDENT 2.0
  184235. .IP \(bu 2
  184236. f9b4976c02 Merge pull request \fI\%#42996\fP from twangboy/win_fix_test_stateconf
  184237. .IP \(bu 2
  184238. 92dc3c0ece Use os.sep for path
  184239. .UNINDENT
  184240. .IP \(bu 2
  184241. \fBPR\fP \fI\%#43024\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_find\fP for Windows
  184242. @ \fI2017\-08\-21 22:38:10 UTC\fP
  184243. .INDENT 2.0
  184244. .IP \(bu 2
  184245. 19fc644c9b Merge pull request \fI\%#43024\fP from twangboy/win_unit_utils_test_find
  184246. .IP \(bu 2
  184247. fbe54c9a33 Remove unused import six (lint)
  184248. .IP \(bu 2
  184249. b04d1a2f18 Fix \fIunit.utils.test_find\fP for Windows
  184250. .UNINDENT
  184251. .IP \(bu 2
  184252. \fBPR\fP \fI\%#43088\fP: (\fI\%gtmanfred\fP) allow docker util to be reloaded with reload_modules
  184253. @ \fI2017\-08\-21 22:14:37 UTC\fP
  184254. .INDENT 2.0
  184255. .IP \(bu 2
  184256. 1a531169fc Merge pull request \fI\%#43088\fP from gtmanfred/2017.7
  184257. .IP \(bu 2
  184258. 373a9a0be4 allow docker util to be reloaded with reload_modules
  184259. .UNINDENT
  184260. .IP \(bu 2
  184261. \fBPR\fP \fI\%#43091\fP: (\fI\%blarghmatey\fP) Fixed issue with silently passing all tests in Testinfra module
  184262. @ \fI2017\-08\-21 22:06:22 UTC\fP
  184263. .INDENT 2.0
  184264. .IP \(bu 2
  184265. 83e528f0b3 Merge pull request \fI\%#43091\fP from mitodl/2017.7
  184266. .IP \(bu 2
  184267. b502560e61 Fixed issue with silently passing all tests in Testinfra module
  184268. .UNINDENT
  184269. .IP \(bu 2
  184270. \fBPR\fP \fI\%#41994\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_cmdmod\fP on Windows
  184271. @ \fI2017\-08\-21 21:53:01 UTC\fP
  184272. .INDENT 2.0
  184273. .IP \(bu 2
  184274. 5482524270 Merge pull request \fI\%#41994\fP from twangboy/win_unit_test_cmdmod
  184275. .IP \(bu 2
  184276. a5f7288ad9 Skip test that uses pwd, not available on Windows
  184277. .UNINDENT
  184278. .IP \(bu 2
  184279. \fBISSUE\fP \fI\%#42873\fP: (\fI\%TheVakman\fP) osquery Data Empty Upon Return / Reporting Not Installed (refs: \fI\%#42933\fP)
  184280. .IP \(bu 2
  184281. \fBPR\fP \fI\%#42933\fP: (\fI\%garethgreenaway\fP) Fixes to osquery module
  184282. @ \fI2017\-08\-21 20:48:31 UTC\fP
  184283. .INDENT 2.0
  184284. .IP \(bu 2
  184285. b33c4abc15 Merge pull request \fI\%#42933\fP from garethgreenaway/42873_2017_7_osquery_fix
  184286. .IP \(bu 2
  184287. 8915e62bd9 Removing an import that is not needed.
  184288. .IP \(bu 2
  184289. 74bc377eb4 Updating the other function that uses cmd.run_all
  184290. .IP \(bu 2
  184291. e6a4619ec1 Better approach without using python_shell=True.
  184292. .IP \(bu 2
  184293. 5ac41f496d When running osquery commands through cmd.run we should pass python_shell=True to ensure everything is formatted right. \fI\%#42873\fP
  184294. .UNINDENT
  184295. .IP \(bu 2
  184296. \fBPR\fP \fI\%#43093\fP: (\fI\%gtmanfred\fP) Fix ec2 list_nodes_full to work on 2017.7
  184297. @ \fI2017\-08\-21 20:21:21 UTC\fP
  184298. .INDENT 2.0
  184299. .IP \(bu 2
  184300. 53c2115769 Merge pull request \fI\%#43093\fP from gtmanfred/ec2
  184301. .IP \(bu 2
  184302. c7cffb5a04 This block isn\(aqt necessary
  184303. .IP \(bu 2
  184304. b7283bcc6f _vm_provider_driver isn\(aqt needed anymore
  184305. .UNINDENT
  184306. .IP \(bu 2
  184307. \fBISSUE\fP \fI\%#43085\fP: (\fI\%brejoc\fP) Patch for Kubernetes module missing from 2017.7 and 2017.7.1 (refs: \fI\%#43087\fP)
  184308. .IP \(bu 2
  184309. \fBPR\fP \fI\%#43087\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42174\fP to 2017.7
  184310. @ \fI2017\-08\-21 18:40:18 UTC\fP
  184311. .INDENT 2.0
  184312. .IP \(bu 2
  184313. \fBPR\fP \fI\%#42174\fP: (\fI\%mcalmer\fP) kubernetes: provide client certificate authentication (refs: \fI\%#43087\fP)
  184314. .IP \(bu 2
  184315. 32f9ade4db Merge pull request \fI\%#43087\fP from rallytime/bp\-42174
  184316. .IP \(bu 2
  184317. cf6563645b add support for certificate authentication to kubernetes module
  184318. .UNINDENT
  184319. .IP \(bu 2
  184320. \fBPR\fP \fI\%#43029\fP: (\fI\%terminalmage\fP) Normalize the salt caching API
  184321. @ \fI2017\-08\-21 16:54:58 UTC\fP
  184322. .INDENT 2.0
  184323. .IP \(bu 2
  184324. 882fcd846f Merge pull request \fI\%#43029\fP from terminalmage/fix\-func\-alias
  184325. .IP \(bu 2
  184326. f8f74a310c Update localfs cache tests to reflect changes to func naming
  184327. .IP \(bu 2
  184328. c4ae79b229 Rename other refs to cache.ls with cache.list
  184329. .IP \(bu 2
  184330. ee59d127e8 Normalize the salt caching API
  184331. .UNINDENT
  184332. .IP \(bu 2
  184333. \fBISSUE\fP \fI\%#42843\fP: (\fI\%brejoc\fP) Kubernetes module won\(aqt work with Kubernetes Python client > 1.0.2 (refs: \fI\%#42845\fP)
  184334. .IP \(bu 2
  184335. \fBPR\fP \fI\%#43039\fP: (\fI\%gtmanfred\fP) catch ImportError for kubernetes.client import
  184336. @ \fI2017\-08\-21 14:32:38 UTC\fP
  184337. .INDENT 2.0
  184338. .IP \(bu 2
  184339. \fBPR\fP \fI\%#42845\fP: (\fI\%brejoc\fP) API changes for Kubernetes version 2.0.0 (refs: \fI\%#43039\fP)
  184340. .IP \(bu 2
  184341. dbee735f6e Merge pull request \fI\%#43039\fP from gtmanfred/kube
  184342. .IP \(bu 2
  184343. 7e269cb368 catch ImportError for kubernetes.client import
  184344. .UNINDENT
  184345. .IP \(bu 2
  184346. \fBPR\fP \fI\%#43058\fP: (\fI\%rallytime\fP) Update release version number for jenkins.run function
  184347. @ \fI2017\-08\-21 14:13:34 UTC\fP
  184348. .INDENT 2.0
  184349. .IP \(bu 2
  184350. c56a8499b3 Merge pull request \fI\%#43058\fP from rallytime/fix\-release\-num
  184351. .IP \(bu 2
  184352. d7eef70df0 Update release version number for jenkins.run function
  184353. .UNINDENT
  184354. .IP \(bu 2
  184355. \fBPR\fP \fI\%#43051\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184356. @ \fI2017\-08\-18 17:05:57 UTC\fP
  184357. .INDENT 2.0
  184358. .IP \(bu 2
  184359. 7b0c94768a Merge pull request \fI\%#43051\fP from rallytime/merge\-2017.7
  184360. .IP \(bu 2
  184361. 153a463b86 Lint: Add missing blank line
  184362. .IP \(bu 2
  184363. 84829a6f8c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184364. .IP \(bu 2
  184365. 43aa46f512 Merge pull request \fI\%#43048\fP from rallytime/bp\-43031
  184366. .INDENT 2.0
  184367. .IP \(bu 2
  184368. 35e45049e2 use a ruby gem that doesn\(aqt have dependencies
  184369. .UNINDENT
  184370. .IP \(bu 2
  184371. ad89ff3104 Merge pull request \fI\%#43023\fP from terminalmage/fix\-jenkins\-xml\-caching
  184372. .INDENT 2.0
  184373. .IP \(bu 2
  184374. 33fd8ff939 Update jenkins.py
  184375. .IP \(bu 2
  184376. fc306fc8c3 Add missing colon in \fIif\fP statement
  184377. .IP \(bu 2
  184378. 822eabcc81 Catch exceptions raised when making changes to jenkins
  184379. .IP \(bu 2
  184380. 91b583b493 Improve and correct exception raising
  184381. .IP \(bu 2
  184382. f096917a0e Raise an exception if we fail to cache the config xml
  184383. .UNINDENT
  184384. .IP \(bu 2
  184385. 2957467ed7 Merge pull request \fI\%#43026\fP from rallytime/bp\-43020
  184386. .INDENT 2.0
  184387. .IP \(bu 2
  184388. 0eb15a1f67 test with gem that appears to be abandoned
  184389. .UNINDENT
  184390. .IP \(bu 2
  184391. 4150b094fe Merge pull request \fI\%#43033\fP from rallytime/bp\-42760
  184392. .INDENT 2.0
  184393. .IP \(bu 2
  184394. 3e3f7f5d8e Catch TypeError thrown by m2crypto when parsing missing subjects in certificate files.
  184395. .UNINDENT
  184396. .IP \(bu 2
  184397. b124d3667e Merge pull request \fI\%#43032\fP from rallytime/bp\-42547
  184398. .INDENT 2.0
  184399. .IP \(bu 2
  184400. ea4d7f4176 Updated testinfra modules to work with more recent versions
  184401. .UNINDENT
  184402. .IP \(bu 2
  184403. a88386ad44 Merge pull request \fI\%#43027\fP from pabloh007/fix\-docker\-save\-push\-2016\-11
  184404. .INDENT 2.0
  184405. .IP \(bu 2
  184406. d0fd949f85 Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  184407. .UNINDENT
  184408. .IP \(bu 2
  184409. 51d16840bb Merge pull request \fI\%#42890\fP from DSRCorporation/bugs/42627_salt\-cp
  184410. .INDENT 2.0
  184411. .IP \(bu 2
  184412. cfddbf1c75 Apply code review: update the doc
  184413. .IP \(bu 2
  184414. afedd3b654 Typos and version fixes in the doc.
  184415. .IP \(bu 2
  184416. 9fedf6012e Fixed \(aqtest_valid_docs\(aq test.
  184417. .IP \(bu 2
  184418. 999388680c Make chunked mode in salt\-cp optional (disabled by default).
  184419. .UNINDENT
  184420. .IP \(bu 2
  184421. b3c253cdfa Merge pull request \fI\%#43009\fP from rallytime/merge\-2016.11
  184422. .INDENT 2.0
  184423. .IP \(bu 2
  184424. 566ba4fe76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  184425. .INDENT 2.0
  184426. .IP \(bu 2
  184427. 13b8637d53 Merge pull request \fI\%#42942\fP from Ch3LL/2016.3.6_follow_up
  184428. .INDENT 2.0
  184429. .IP \(bu 2
  184430. f281e1795f move additional minion config options to 2016.3.8 release notes
  184431. .IP \(bu 2
  184432. 168604ba6b remove merge conflict
  184433. .IP \(bu 2
  184434. 8a07d95212 update release notes with cve number
  184435. .IP \(bu 2
  184436. 149633fdca Add release notes for 2016.3.7 release
  184437. .IP \(bu 2
  184438. 7a4cddcd95 Add clean_id function to salt.utils.verify.py
  184439. .UNINDENT
  184440. .IP \(bu 2
  184441. bbb1b29ccb Merge pull request \fI\%#42954\fP from Ch3LL/latest_2016.3
  184442. .INDENT 2.0
  184443. .IP \(bu 2
  184444. b551e66744 [2016.3] Bump latest and previous versions
  184445. .UNINDENT
  184446. .IP \(bu 2
  184447. 5d5edc54b7 Merge pull request \fI\%#42949\fP from Ch3LL/2016.3.7_docs
  184448. .INDENT 2.0
  184449. .IP \(bu 2
  184450. d75d3741f8 Add Security Notice to 2016.3.7 Release Notes
  184451. .UNINDENT
  184452. .UNINDENT
  184453. .UNINDENT
  184454. .IP \(bu 2
  184455. 37c63e7cf2 Merge pull request \fI\%#43021\fP from terminalmage/fix\-network\-test
  184456. .INDENT 2.0
  184457. .IP \(bu 2
  184458. 4089b7b1bc Use socket.AF_INET6 to get the correct value instead of doing an OS check
  184459. .UNINDENT
  184460. .IP \(bu 2
  184461. 8f6423247c Merge pull request \fI\%#43019\fP from rallytime/bootstrap_2017.08.17
  184462. .INDENT 2.0
  184463. .IP \(bu 2
  184464. 2f762b3a17 Update bootstrap script to latest stable: v2017.08.17
  184465. .UNINDENT
  184466. .IP \(bu 2
  184467. ff1caeee68 Merge pull request \fI\%#43014\fP from Ch3LL/fix_network_mac
  184468. .INDENT 2.0
  184469. .IP \(bu 2
  184470. b8eee4401e Change AF_INET6 family for mac in test_host_to_ips
  184471. .UNINDENT
  184472. .UNINDENT
  184473. .IP \(bu 2
  184474. \fBPR\fP \fI\%#43035\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  184475. @ \fI2017\-08\-18 12:58:17 UTC\fP
  184476. .INDENT 2.0
  184477. .IP \(bu 2
  184478. \fBPR\fP \fI\%#42948\fP: (\fI\%Ch3LL\fP) [2017.7.1] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  184479. .IP \(bu 2
  184480. \fBPR\fP \fI\%#42945\fP: (\fI\%Ch3LL\fP) [2017.7] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  184481. .IP \(bu 2
  184482. d15b0ca937 Merge pull request \fI\%#43035\fP from rallytime/merge\-2017.7
  184483. .IP \(bu 2
  184484. 756128a896 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  184485. .INDENT 2.0
  184486. .IP \(bu 2
  184487. ab1b099730 Merge pull request \fI\%#42948\fP from Ch3LL/2017.7.0_follow_up
  184488. .UNINDENT
  184489. .UNINDENT
  184490. .IP \(bu 2
  184491. \fBISSUE\fP \fI\%#42989\fP: (\fI\%blbradley\fP) GitFS GitPython performance regression in 2017.7.1 (refs: \fI\%#43002\fP)
  184492. .IP \(bu 2
  184493. \fBPR\fP \fI\%#43034\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43002\fP to 2017.7
  184494. @ \fI2017\-08\-17 23:18:16 UTC\fP
  184495. .INDENT 2.0
  184496. .IP \(bu 2
  184497. \fBPR\fP \fI\%#43002\fP: (\fI\%the\-glu\fP) Try to fix \fI\%#42989\fP (refs: \fI\%#43034\fP)
  184498. .IP \(bu 2
  184499. bcbb973a71 Merge pull request \fI\%#43034\fP from rallytime/bp\-43002
  184500. .IP \(bu 2
  184501. 350c0767dc Try to fix \fI\%#42989\fP by doing sslVerify and refspecs for origin remote only if there is no remotes
  184502. .UNINDENT
  184503. .IP \(bu 2
  184504. \fBISSUE\fP \fI\%#42375\fP: (\fI\%dragonpaw\fP) salt.modules.*.__virtualname__ doens\(aqt work as documented. (refs: \fI\%#42523\fP, \fI\%#42958\fP)
  184505. .IP \(bu 2
  184506. \fBPR\fP \fI\%#42958\fP: (\fI\%gtmanfred\fP) runit module should also be loaded as runit
  184507. @ \fI2017\-08\-17 22:30:23 UTC\fP
  184508. .INDENT 2.0
  184509. .IP \(bu 2
  184510. 9182f55bbb Merge pull request \fI\%#42958\fP from gtmanfred/2017.7
  184511. .IP \(bu 2
  184512. fd6874668b runit module should also be loaded as runit
  184513. .UNINDENT
  184514. .IP \(bu 2
  184515. \fBPR\fP \fI\%#43031\fP: (\fI\%gtmanfred\fP) use a ruby gem that doesn\(aqt have dependencies (refs: \fI\%#43048\fP)
  184516. @ \fI2017\-08\-17 22:26:25 UTC\fP
  184517. .INDENT 2.0
  184518. .IP \(bu 2
  184519. 5985cc4e8e Merge pull request \fI\%#43031\fP from gtmanfred/test_gem
  184520. .IP \(bu 2
  184521. ba80a7d4b5 use a ruby gem that doesn\(aqt have dependencies
  184522. .UNINDENT
  184523. .IP \(bu 2
  184524. \fBPR\fP \fI\%#43030\fP: (\fI\%rallytime\fP) Small cleanup to dockermod.save
  184525. @ \fI2017\-08\-17 22:26:00 UTC\fP
  184526. .INDENT 2.0
  184527. .IP \(bu 2
  184528. 246176b1a6 Merge pull request \fI\%#43030\fP from rallytime/dockermod\-minor\-change
  184529. .IP \(bu 2
  184530. d6a5e85632 Small cleanup to dockermod.save
  184531. .UNINDENT
  184532. .IP \(bu 2
  184533. \fBISSUE\fP \fI\%#42992\fP: (\fI\%pabloh007\fP) docker.save flag push does is ignored (refs: \fI\%#42993\fP, \fI\%#43027\fP)
  184534. .IP \(bu 2
  184535. \fBPR\fP \fI\%#42993\fP: (\fI\%pabloh007\fP) Fixes ignored push flag for docker.push module issue \fI\%#42992\fP
  184536. @ \fI2017\-08\-17 18:50:37 UTC\fP
  184537. .INDENT 2.0
  184538. .IP \(bu 2
  184539. 160001120b Merge pull request \fI\%#42993\fP from pabloh007/fix\-docker\-save\-push
  184540. .IP \(bu 2
  184541. fe7554cfeb Fixes ignored push flag for docker.push module issue \fI\%#42992\fP
  184542. .UNINDENT
  184543. .IP \(bu 2
  184544. \fBISSUE\fP \fI\%#42941\fP: (\fI\%danlsgiga\fP) pkg.installed fails on installing from HTTPS rpm source (refs: \fI\%#42967\fP)
  184545. .IP \(bu 2
  184546. \fBPR\fP \fI\%#42967\fP: (\fI\%terminalmage\fP) Fix bug in on_header callback when no Content\-Type is found in headers
  184547. @ \fI2017\-08\-17 18:48:52 UTC\fP
  184548. .INDENT 2.0
  184549. .IP \(bu 2
  184550. 9009a971b1 Merge pull request \fI\%#42967\fP from terminalmage/issue42941
  184551. .IP \(bu 2
  184552. b838460816 Fix bug in on_header callback when no Content\-Type is found in headers
  184553. .UNINDENT
  184554. .IP \(bu 2
  184555. \fBISSUE\fP \fI\%#43008\fP: (\fI\%evelineraine\fP) states.service.running always succeeds when watched state has changes (refs: \fI\%#43016\fP)
  184556. .IP \(bu 2
  184557. \fBPR\fP \fI\%#43016\fP: (\fI\%gtmanfred\fP) service should return false on exception
  184558. @ \fI2017\-08\-17 18:08:05 UTC\fP
  184559. .INDENT 2.0
  184560. .IP \(bu 2
  184561. 58f070d7a7 Merge pull request \fI\%#43016\fP from gtmanfred/service
  184562. .IP \(bu 2
  184563. 21c264fe55 service should return false on exception
  184564. .UNINDENT
  184565. .IP \(bu 2
  184566. \fBPR\fP \fI\%#43020\fP: (\fI\%gtmanfred\fP) test with gem that appears to be abandoned (refs: \fI\%#43026\fP)
  184567. @ \fI2017\-08\-17 16:40:41 UTC\fP
  184568. .INDENT 2.0
  184569. .IP \(bu 2
  184570. 973d288eca Merge pull request \fI\%#43020\fP from gtmanfred/test_gem
  184571. .IP \(bu 2
  184572. 0a1f40a664 test with gem that appears to be abandoned
  184573. .UNINDENT
  184574. .IP \(bu 2
  184575. \fBPR\fP \fI\%#42999\fP: (\fI\%garethgreenaway\fP) Fixes to slack engine
  184576. @ \fI2017\-08\-17 15:46:24 UTC\fP
  184577. .INDENT 2.0
  184578. .IP \(bu 2
  184579. 9cd0607fd4 Merge pull request \fI\%#42999\fP from garethgreenaway/slack_engine_allow_editing_messages
  184580. .IP \(bu 2
  184581. 0ece2a8f0c Fixing a bug that prevented editing Slack messages and having the commands resent to the Slack engine.
  184582. .UNINDENT
  184583. .IP \(bu 2
  184584. \fBPR\fP \fI\%#43010\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184585. @ \fI2017\-08\-17 15:10:29 UTC\fP
  184586. .INDENT 2.0
  184587. .IP \(bu 2
  184588. 31627a9163 Merge pull request \fI\%#43010\fP from rallytime/merge\-2017.7
  184589. .IP \(bu 2
  184590. 8a0f948e4a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184591. .IP \(bu 2
  184592. 1ee9499d28 Merge pull request \fI\%#42968\fP from vutny/doc\-salt\-cloud\-ref
  184593. .INDENT 2.0
  184594. .IP \(bu 2
  184595. 44ed53b1df [DOCS] Fix link to Salt Cloud Feature Matrix
  184596. .UNINDENT
  184597. .IP \(bu 2
  184598. 923f9741fe Merge pull request \fI\%#42291\fP from vutny/fix\-38839
  184599. .INDENT 2.0
  184600. .IP \(bu 2
  184601. 5f8f98a01f Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  184602. .UNINDENT
  184603. .IP \(bu 2
  184604. c20bc7d515 Merge pull request \fI\%#42940\fP from gtmanfred/2016.11
  184605. .INDENT 2.0
  184606. .IP \(bu 2
  184607. 253e216a8d fix IP address spelling
  184608. .IP \(bu 2
  184609. bd63074e7a create new ip address before checking list of allocated ips
  184610. .UNINDENT
  184611. .IP \(bu 2
  184612. d6496eca72 Merge pull request \fI\%#42959\fP from rallytime/bp\-42883
  184613. .INDENT 2.0
  184614. .IP \(bu 2
  184615. c6b9ca4b9e Lint fix: add missing space
  184616. .IP \(bu 2
  184617. 5597b1a30e Skip 2 failing tests in Python 3 due to upstream bugs
  184618. .IP \(bu 2
  184619. a0b19bdc27 Update account id value in boto_secgroup module unit test
  184620. .IP \(bu 2
  184621. 60b406e088 @mock_elb needs to be changed to @mock_elb_deprecated as well
  184622. .IP \(bu 2
  184623. 6ae1111295 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  184624. .UNINDENT
  184625. .IP \(bu 2
  184626. 6366e05d0d Merge pull request \fI\%#42944\fP from Ch3LL/2016.11.6_follow_up
  184627. .INDENT 2.0
  184628. .IP \(bu 2
  184629. 7e0a20afca Add release notes for 2016.11.7 release
  184630. .IP \(bu 2
  184631. 63823f8c3e Add clean_id function to salt.utils.verify.py
  184632. .UNINDENT
  184633. .IP \(bu 2
  184634. 49d339c976 Merge pull request \fI\%#42952\fP from Ch3LL/latest_2016.11
  184635. .INDENT 2.0
  184636. .IP \(bu 2
  184637. 74e7055d54 [2016.11] Bump latest and previous versions
  184638. .UNINDENT
  184639. .IP \(bu 2
  184640. b0d2e05a79 Merge pull request \fI\%#42950\fP from Ch3LL/2016.11.7_docs
  184641. .INDENT 2.0
  184642. .IP \(bu 2
  184643. a6f902db40 Add Security Notice to 2016.11.77 Release Notes
  184644. .UNINDENT
  184645. .IP \(bu 2
  184646. c0ff69f88c Merge pull request \fI\%#42836\fP from lyft/backport\-utils.versions\-to\-2016.11
  184647. .INDENT 2.0
  184648. .IP \(bu 2
  184649. 86ce7004a2 Backport salt.utils.versions from develop to 2016.11
  184650. .UNINDENT
  184651. .IP \(bu 2
  184652. 64a79dd5ac Merge pull request \fI\%#42919\fP from rallytime/bp\-42871
  184653. .INDENT 2.0
  184654. .IP \(bu 2
  184655. 4e46c968e6 Update joyent.rst
  184656. .UNINDENT
  184657. .IP \(bu 2
  184658. bea8ec1098 Merge pull request \fI\%#42918\fP from rallytime/bp\-42848
  184659. .INDENT 2.0
  184660. .IP \(bu 2
  184661. cdb48126f7 Make lint happier.
  184662. .IP \(bu 2
  184663. 62eca9b00b Execute fire_master asynchronously in the main minion thread.
  184664. .UNINDENT
  184665. .IP \(bu 2
  184666. 52bce329cb Merge pull request \fI\%#42861\fP from twangboy/win_pkg_install_salt
  184667. .INDENT 2.0
  184668. .IP \(bu 2
  184669. 0d3789f0c6 Fix pkg.install salt\-minion using salt\-call
  184670. .UNINDENT
  184671. .IP \(bu 2
  184672. b9f4f87aa5 Merge pull request \fI\%#42798\fP from s\-sebastian/2016.11
  184673. .INDENT 2.0
  184674. .IP \(bu 2
  184675. 1cc86592ed Update return data before calling returners
  184676. .UNINDENT
  184677. .UNINDENT
  184678. .IP \(bu 2
  184679. \fBISSUE\fP \fI\%#42842\fP: (\fI\%Giandom\fP) retreive kwargs passed with slack engine (refs: \fI\%#42884\fP)
  184680. .IP \(bu 2
  184681. \fBPR\fP \fI\%#42884\fP: (\fI\%Giandom\fP) Convert to dict type the pillar string value passed from slack
  184682. @ \fI2017\-08\-16 22:30:43 UTC\fP
  184683. .INDENT 2.0
  184684. .IP \(bu 2
  184685. 82be9dceb6 Merge pull request \fI\%#42884\fP from Giandom/2017.7.1\-fix\-slack\-engine\-pillar\-args
  184686. .IP \(bu 2
  184687. 80fd733c99 Update slack.py
  184688. .UNINDENT
  184689. .IP \(bu 2
  184690. \fBPR\fP \fI\%#42963\fP: (\fI\%twangboy\fP) Fix \fIunit.test_fileclient\fP for Windows
  184691. @ \fI2017\-08\-16 14:18:18 UTC\fP
  184692. .INDENT 2.0
  184693. .IP \(bu 2
  184694. 42bd553b98 Merge pull request \fI\%#42963\fP from twangboy/win_unit_test_fileclient
  184695. .IP \(bu 2
  184696. e9febe4893 Fix unit.test_fileclient
  184697. .UNINDENT
  184698. .IP \(bu 2
  184699. \fBPR\fP \fI\%#42964\fP: (\fI\%twangboy\fP) Fix \fIsalt.utils.recursive_copy\fP for Windows
  184700. @ \fI2017\-08\-16 14:17:27 UTC\fP
  184701. .INDENT 2.0
  184702. .IP \(bu 2
  184703. 7dddeeea8d Merge pull request \fI\%#42964\fP from twangboy/win_fix_recursive_copy
  184704. .IP \(bu 2
  184705. 121cd4ef81 Fix \fIsalt.utils.recursive_copy\fP for Windows
  184706. .UNINDENT
  184707. .IP \(bu 2
  184708. \fBISSUE\fP \fI\%#42943\fP: (\fI\%mirceaulinic\fP) \fIextension_modules\fP defaulting to \fI/var/cache/minion\fP although running under proxy minion (refs: \fI\%#42946\fP)
  184709. .IP \(bu 2
  184710. \fBPR\fP \fI\%#42946\fP: (\fI\%mirceaulinic\fP) extension_modules should default to $CACHE_DIR/proxy/extmods
  184711. @ \fI2017\-08\-15 21:26:36 UTC\fP
  184712. .INDENT 2.0
  184713. .IP \(bu 2
  184714. 6da4d1d95e Merge pull request \fI\%#42946\fP from cloudflare/px_extmods_42943
  184715. .IP \(bu 2
  184716. 73f9135340 extension_modules should default to /proxy/extmods
  184717. .UNINDENT
  184718. .IP \(bu 2
  184719. \fBPR\fP \fI\%#42945\fP: (\fI\%Ch3LL\fP) [2017.7] Add clean_id function to salt.utils.verify.py (refs: \fI\%#43035\fP)
  184720. @ \fI2017\-08\-15 18:04:20 UTC\fP
  184721. .INDENT 2.0
  184722. .IP \(bu 2
  184723. 95645d49f9 Merge pull request \fI\%#42945\fP from Ch3LL/2017.7.0_follow_up
  184724. .IP \(bu 2
  184725. dcd92042e3 remove extra doc
  184726. .IP \(bu 2
  184727. 693a504ef0 update release notes with cve number
  184728. .UNINDENT
  184729. .IP \(bu 2
  184730. \fBISSUE\fP \fI\%#42427\fP: (\fI\%grichmond\-salt\fP) Issue Passing Variables created from load_json as Inline Pillar Between States (refs: \fI\%#42435\fP)
  184731. .IP \(bu 2
  184732. \fBPR\fP \fI\%#42812\fP: (\fI\%terminalmage\fP) Update custom YAML loader tests to properly test unicode literals
  184733. @ \fI2017\-08\-15 17:50:22 UTC\fP
  184734. .INDENT 2.0
  184735. .IP \(bu 2
  184736. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42812\fP)
  184737. .IP \(bu 2
  184738. 47ff9d5627 Merge pull request \fI\%#42812\fP from terminalmage/yaml\-loader\-tests
  184739. .IP \(bu 2
  184740. 9d8486a894 Add test for custom YAML loader with unicode literal strings
  184741. .IP \(bu 2
  184742. a0118bcece Remove bytestrings and use textwrap.dedent for readability
  184743. .UNINDENT
  184744. .IP \(bu 2
  184745. \fBPR\fP \fI\%#42953\fP: (\fI\%Ch3LL\fP) [2017.7] Bump latest and previous versions
  184746. @ \fI2017\-08\-15 17:23:28 UTC\fP
  184747. .INDENT 2.0
  184748. .IP \(bu 2
  184749. 5d0c2198ac Merge pull request \fI\%#42953\fP from Ch3LL/latest_2017.7
  184750. .IP \(bu 2
  184751. cbecf65823 [2017.7] Bump latest and previous versions
  184752. .UNINDENT
  184753. .IP \(bu 2
  184754. \fBPR\fP \fI\%#42951\fP: (\fI\%Ch3LL\fP) Add Security Notice to 2017.7.1 Release Notes
  184755. @ \fI2017\-08\-15 16:49:56 UTC\fP
  184756. .INDENT 2.0
  184757. .IP \(bu 2
  184758. 730e71db17 Merge pull request \fI\%#42951\fP from Ch3LL/2017.7.1_docs
  184759. .IP \(bu 2
  184760. 1d8f827c58 Add Security Notice to 2017.7.1 Release Notes
  184761. .UNINDENT
  184762. .IP \(bu 2
  184763. \fBPR\fP \fI\%#42868\fP: (\fI\%carsonoid\fP) Stub out required functions in redis_cache
  184764. @ \fI2017\-08\-15 14:33:54 UTC\fP
  184765. .INDENT 2.0
  184766. .IP \(bu 2
  184767. c1c8cb9bfa Merge pull request \fI\%#42868\fP from carsonoid/redisjobcachefix
  184768. .IP \(bu 2
  184769. 885bee2a7d Stub out required functions for redis cache
  184770. .UNINDENT
  184771. .IP \(bu 2
  184772. \fBPR\fP \fI\%#42810\fP: (\fI\%amendlik\fP) Ignore error values when listing Windows SNMP community strings
  184773. @ \fI2017\-08\-15 03:55:15 UTC\fP
  184774. .INDENT 2.0
  184775. .IP \(bu 2
  184776. e192d6e0af Merge pull request \fI\%#42810\fP from amendlik/win\-snmp\-community
  184777. .IP \(bu 2
  184778. dc20e4651b Ignore error values when listing Windows SNMP community strings
  184779. .UNINDENT
  184780. .IP \(bu 2
  184781. \fBPR\fP \fI\%#42920\fP: (\fI\%cachedout\fP) pid_race
  184782. @ \fI2017\-08\-15 03:49:10 UTC\fP
  184783. .INDENT 2.0
  184784. .IP \(bu 2
  184785. a1817f1de3 Merge pull request \fI\%#42920\fP from cachedout/pid_race
  184786. .IP \(bu 2
  184787. 5e930b8cbd If we catch the pid file in a transistory state, return None
  184788. .UNINDENT
  184789. .IP \(bu 2
  184790. \fBPR\fP \fI\%#42925\fP: (\fI\%terminalmage\fP) Add debug logging to troubleshoot test failures
  184791. @ \fI2017\-08\-15 03:47:51 UTC\fP
  184792. .INDENT 2.0
  184793. .IP \(bu 2
  184794. 11a33fe692 Merge pull request \fI\%#42925\fP from terminalmage/f26\-debug\-logging
  184795. .IP \(bu 2
  184796. 8165f46165 Add debug logging to troubleshoot test failures
  184797. .UNINDENT
  184798. .IP \(bu 2
  184799. \fBPR\fP \fI\%#42913\fP: (\fI\%twangboy\fP) Change service shutdown timeouts for salt\-minion service (Windows)
  184800. @ \fI2017\-08\-14 20:55:24 UTC\fP
  184801. .INDENT 2.0
  184802. .IP \(bu 2
  184803. a537197030 Merge pull request \fI\%#42913\fP from twangboy/win_change_timeout
  184804. .IP \(bu 2
  184805. ffb23fbe47 Remove the line that wipes out the cache
  184806. .IP \(bu 2
  184807. a3becf8342 Change service shutdown timeouts
  184808. .UNINDENT
  184809. .IP \(bu 2
  184810. \fBPR\fP \fI\%#42800\fP: (\fI\%skizunov\fP) Fix exception when master_type=disable
  184811. @ \fI2017\-08\-14 20:53:38 UTC\fP
  184812. .INDENT 2.0
  184813. .IP \(bu 2
  184814. ca0555f616 Merge pull request \fI\%#42800\fP from skizunov/develop6
  184815. .IP \(bu 2
  184816. fa5822009f Fix exception when master_type=disable
  184817. .UNINDENT
  184818. .IP \(bu 2
  184819. \fBPR\fP \fI\%#42679\fP: (\fI\%mirceaulinic\fP) Add multiprocessing option for NAPALM proxy
  184820. @ \fI2017\-08\-14 20:45:06 UTC\fP
  184821. .INDENT 2.0
  184822. .IP \(bu 2
  184823. 3af264b664 Merge pull request \fI\%#42679\fP from cloudflare/napalm\-multiprocessing
  184824. .IP \(bu 2
  184825. 9c4566db0c multiprocessing option tagged for 2017.7.2
  184826. .IP \(bu 2
  184827. 37bca1b902 Add multiprocessing option for NAPALM proxy
  184828. .IP \(bu 2
  184829. a2565ba8e5 Add new napalm option: multiprocessing
  184830. .UNINDENT
  184831. .IP \(bu 2
  184832. \fBISSUE\fP \fI\%#42611\fP: (\fI\%nhavens\fP) selinux.boolean state does not return changes (refs: \fI\%#42612\fP)
  184833. .IP \(bu 2
  184834. \fBPR\fP \fI\%#42657\fP: (\fI\%nhavens\fP) back\-port \fI\%#42612\fP to 2017.7
  184835. @ \fI2017\-08\-14 19:42:26 UTC\fP
  184836. .INDENT 2.0
  184837. .IP \(bu 2
  184838. \fBPR\fP \fI\%#42612\fP: (\fI\%nhavens\fP) fix for issue \fI\%#42611\fP (refs: \fI\%#42657\fP)
  184839. .IP \(bu 2
  184840. 4fcdab3ae9 Merge pull request \fI\%#42657\fP from nhavens/2017.7
  184841. .IP \(bu 2
  184842. d73c4b55b7 back\-port \fI\%#42612\fP to 2017.7
  184843. .UNINDENT
  184844. .IP \(bu 2
  184845. \fBPR\fP \fI\%#42709\fP: (\fI\%whiteinge\fP) Add token_expire_user_override link to auth runner docstring
  184846. @ \fI2017\-08\-14 19:03:06 UTC\fP
  184847. .INDENT 2.0
  184848. .IP \(bu 2
  184849. d2b6ce327a Merge pull request \fI\%#42709\fP from whiteinge/doc\-token_expire_user_override
  184850. .IP \(bu 2
  184851. c7ea631558 Add more docs on the token_expire param
  184852. .IP \(bu 2
  184853. 4a9f6ba44f Add token_expire_user_override link to auth runner docstring
  184854. .UNINDENT
  184855. .IP \(bu 2
  184856. \fBISSUE\fP \fI\%#42803\fP: (\fI\%gmcwhistler\fP) master_type: str, not working as expected, parent salt\-minion process dies. (refs: \fI\%#42848\fP)
  184857. .IP \(bu 2
  184858. \fBISSUE\fP \fI\%#42753\fP: (\fI\%grichmond\-salt\fP) SaltReqTimeout Error on Some Minions when One Master in a Multi\-Master Configuration is Unavailable (refs: \fI\%#42848\fP)
  184859. .IP \(bu 2
  184860. \fBPR\fP \fI\%#42848\fP: (\fI\%DmitryKuzmenko\fP) Execute fire_master asynchronously in the main minion thread. (refs: \fI\%#42918\fP)
  184861. @ \fI2017\-08\-14 18:28:38 UTC\fP
  184862. .INDENT 2.0
  184863. .IP \(bu 2
  184864. c6a7bf02e9 Merge pull request \fI\%#42848\fP from DSRCorporation/bugs/42753_mmaster_timeout
  184865. .IP \(bu 2
  184866. 7f5412c19e Make lint happier.
  184867. .IP \(bu 2
  184868. ff66b7aaf0 Execute fire_master asynchronously in the main minion thread.
  184869. .UNINDENT
  184870. .IP \(bu 2
  184871. \fBPR\fP \fI\%#42911\fP: (\fI\%gtmanfred\fP) cloud driver isn\(aqt a provider
  184872. @ \fI2017\-08\-14 17:47:16 UTC\fP
  184873. .INDENT 2.0
  184874. .IP \(bu 2
  184875. 6a3279ea50 Merge pull request \fI\%#42911\fP from gtmanfred/2017.7
  184876. .IP \(bu 2
  184877. 99046b441f cloud driver isn\(aqt a provider
  184878. .UNINDENT
  184879. .IP \(bu 2
  184880. \fBPR\fP \fI\%#42860\fP: (\fI\%skizunov\fP) hash_and_stat_file should return a 2\-tuple
  184881. @ \fI2017\-08\-14 15:44:54 UTC\fP
  184882. .INDENT 2.0
  184883. .IP \(bu 2
  184884. 4456f7383d Merge pull request \fI\%#42860\fP from skizunov/develop7
  184885. .IP \(bu 2
  184886. 5f85a03636 hash_and_stat_file should return a 2\-tuple
  184887. .UNINDENT
  184888. .IP \(bu 2
  184889. \fBPR\fP \fI\%#42889\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  184890. @ \fI2017\-08\-14 14:16:20 UTC\fP
  184891. .INDENT 2.0
  184892. .IP \(bu 2
  184893. c6ca7d639f Merge pull request \fI\%#42889\fP from rallytime/merge\-2017.7
  184894. .IP \(bu 2
  184895. fb7117f2ac Use salt.utils.versions.LooseVersion instead of distutils
  184896. .IP \(bu 2
  184897. 29ff19c587 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  184898. .INDENT 2.0
  184899. .IP \(bu 2
  184900. c15d0034fe Merge pull request \fI\%#41977\fP from redmatter/fix\-dockerng\-network\-ignores\-test
  184901. .INDENT 2.0
  184902. .IP \(bu 2
  184903. 1cc2aa503a Fix dockerng.network_* ignoring of tests=True
  184904. .UNINDENT
  184905. .IP \(bu 2
  184906. 3b9c3c5671 Merge pull request \fI\%#42886\fP from sarcasticadmin/adding_docs_salt_outputs
  184907. .INDENT 2.0
  184908. .IP \(bu 2
  184909. 744bf954ff Adding missing output flags to salt cli
  184910. .UNINDENT
  184911. .IP \(bu 2
  184912. e5b98c8a88 Merge pull request \fI\%#42882\fP from gtmanfred/2016.11
  184913. .INDENT 2.0
  184914. .IP \(bu 2
  184915. da3402a53d make sure cmd is not run when npm isn\(aqt installed
  184916. .UNINDENT
  184917. .IP \(bu 2
  184918. 5962c9588b Merge pull request \fI\%#42788\fP from amendlik/saltify\-timeout
  184919. .INDENT 2.0
  184920. .IP \(bu 2
  184921. 928b523797 Remove waits and retries from Saltify deployment
  184922. .UNINDENT
  184923. .IP \(bu 2
  184924. 227ecddd13 Merge pull request \fI\%#42877\fP from terminalmage/add\-cron\-state\-virtual
  184925. .INDENT 2.0
  184926. .IP \(bu 2
  184927. f1de196740 Add virtual func for cron state module
  184928. .UNINDENT
  184929. .IP \(bu 2
  184930. ab9f6cef33 Merge pull request \fI\%#42859\fP from terminalmage/gitpython\-git\-cli\-note
  184931. .INDENT 2.0
  184932. .IP \(bu 2
  184933. 35e05c9515 Add note about git CLI requirement for GitPython to GitFS tutorial
  184934. .UNINDENT
  184935. .IP \(bu 2
  184936. 682b4a8d14 Merge pull request \fI\%#42856\fP from gtmanfred/2016.11
  184937. .INDENT 2.0
  184938. .IP \(bu 2
  184939. b458b89fb8 skip cache_clean test if npm version is >= 5.0.0
  184940. .UNINDENT
  184941. .IP \(bu 2
  184942. 01ea854029 Merge pull request \fI\%#42864\fP from whiteinge/syndic\-log\-root_dir
  184943. .INDENT 2.0
  184944. .IP \(bu 2
  184945. 4b1f55da9c Make syndic_log_file respect root_dir setting
  184946. .UNINDENT
  184947. .UNINDENT
  184948. .UNINDENT
  184949. .IP \(bu 2
  184950. \fBPR\fP \fI\%#42898\fP: (\fI\%mirceaulinic\fP) Minor eos doc correction
  184951. @ \fI2017\-08\-14 13:42:21 UTC\fP
  184952. .INDENT 2.0
  184953. .IP \(bu 2
  184954. 4b6fe2ee59 Merge pull request \fI\%#42898\fP from mirceaulinic/patch\-11
  184955. .IP \(bu 2
  184956. 93be79a135 Index eos under the installation instructions list
  184957. .IP \(bu 2
  184958. f903e7bc39 Minor eos doc correction
  184959. .UNINDENT
  184960. .IP \(bu 2
  184961. \fBPR\fP \fI\%#42883\fP: (\fI\%rallytime\fP) Fix failing boto tests (refs: \fI\%#42959\fP)
  184962. @ \fI2017\-08\-11 20:29:12 UTC\fP
  184963. .INDENT 2.0
  184964. .IP \(bu 2
  184965. 1764878754 Merge pull request \fI\%#42883\fP from rallytime/fix\-boto\-tests
  184966. .IP \(bu 2
  184967. 6a7bf99848 Lint fix: add missing space
  184968. .IP \(bu 2
  184969. 43643227c6 Skip 2 failing tests in Python 3 due to upstream bugs
  184970. .IP \(bu 2
  184971. 7f46603e9c Update account id value in boto_secgroup module unit test
  184972. .IP \(bu 2
  184973. 7c1d493fdd @mock_elb needs to be changed to @mock_elb_deprecated as well
  184974. .IP \(bu 2
  184975. 3055e17ed5 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  184976. .UNINDENT
  184977. .IP \(bu 2
  184978. \fBPR\fP \fI\%#42885\fP: (\fI\%terminalmage\fP) Move weird tearDown test to an actual tearDown
  184979. @ \fI2017\-08\-11 19:14:42 UTC\fP
  184980. .INDENT 2.0
  184981. .IP \(bu 2
  184982. b21778efac Merge pull request \fI\%#42885\fP from terminalmage/fix\-f26\-tests
  184983. .IP \(bu 2
  184984. 462d653082 Move weird tearDown test to an actual tearDown
  184985. .UNINDENT
  184986. .IP \(bu 2
  184987. \fBISSUE\fP \fI\%#42870\fP: (\fI\%boltronics\fP) webutil.useradd marked as deprecated:: 2016.3.0 by mistake? (refs: \fI\%#42887\fP)
  184988. .IP \(bu 2
  184989. \fBPR\fP \fI\%#42887\fP: (\fI\%rallytime\fP) Remove extraneous "deprecated" notation
  184990. @ \fI2017\-08\-11 18:34:25 UTC\fP
  184991. .INDENT 2.0
  184992. .IP \(bu 2
  184993. 9868ab6f3b Merge pull request \fI\%#42887\fP from rallytime/fix\-42870
  184994. .IP \(bu 2
  184995. 71e7581a2d Remove extraneous "deprecated" notation
  184996. .UNINDENT
  184997. .IP \(bu 2
  184998. \fBPR\fP \fI\%#42881\fP: (\fI\%gtmanfred\fP) fix vmware for python 3.4.2 in salt.utils.vmware
  184999. @ \fI2017\-08\-11 17:52:29 UTC\fP
  185000. .INDENT 2.0
  185001. .IP \(bu 2
  185002. da71f2a11b Merge pull request \fI\%#42881\fP from gtmanfred/vmware
  185003. .IP \(bu 2
  185004. 05ecc6ac8d fix vmware for python 3.4.2 in salt.utils.vmware
  185005. .UNINDENT
  185006. .IP \(bu 2
  185007. \fBISSUE\fP \fI\%#42843\fP: (\fI\%brejoc\fP) Kubernetes module won\(aqt work with Kubernetes Python client > 1.0.2 (refs: \fI\%#42845\fP)
  185008. .IP \(bu 2
  185009. \fBPR\fP \fI\%#42845\fP: (\fI\%brejoc\fP) API changes for Kubernetes version 2.0.0 (refs: \fI\%#43039\fP)
  185010. @ \fI2017\-08\-11 14:04:30 UTC\fP
  185011. .INDENT 2.0
  185012. .IP \(bu 2
  185013. c7750d5717 Merge pull request \fI\%#42845\fP from brejoc/updates\-for\-kubernetes\-2.0.0
  185014. .IP \(bu 2
  185015. 81674aa88a Version info in :optdepends: not needed anymore
  185016. .IP \(bu 2
  185017. 71995505bc Not depending on specific K8s version anymore
  185018. .IP \(bu 2
  185019. d8f7d7a7c0 API changes for Kubernetes version 2.0.0
  185020. .UNINDENT
  185021. .IP \(bu 2
  185022. \fBPR\fP \fI\%#42678\fP: (\fI\%frankiexyz\fP) Add eos.rst in the installation guide
  185023. @ \fI2017\-08\-11 13:58:37 UTC\fP
  185024. .INDENT 2.0
  185025. .IP \(bu 2
  185026. 459fdedc67 Merge pull request \fI\%#42678\fP from frankiexyz/2017.7
  185027. .IP \(bu 2
  185028. 1598571f52 Add eos.rst in the installation guide
  185029. .UNINDENT
  185030. .IP \(bu 2
  185031. \fBISSUE\fP \fI\%#42646\fP: (\fI\%gmacon\fP) SPM fails to install multiple packages (refs: \fI\%#42778\fP)
  185032. .IP \(bu 2
  185033. \fBPR\fP \fI\%#42778\fP: (\fI\%gtmanfred\fP) make sure to use the correct out_file
  185034. @ \fI2017\-08\-11 13:44:48 UTC\fP
  185035. .INDENT 2.0
  185036. .IP \(bu 2
  185037. 4ce96eb1a1 Merge pull request \fI\%#42778\fP from gtmanfred/spm
  185038. .IP \(bu 2
  185039. 7ef691e8da make sure to use the correct out_file
  185040. .UNINDENT
  185041. .IP \(bu 2
  185042. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#480\fP: (\fI\%rallytime\fP) [2017.7] PY3 Debian 8 has several vmware unit tests failing (refs: \fI\%#42857\fP)
  185043. .IP \(bu 2
  185044. \fBPR\fP \fI\%#42857\fP: (\fI\%gtmanfred\fP) use older name if _create_unverified_context is unvailable
  185045. @ \fI2017\-08\-11 13:37:59 UTC\fP
  185046. .INDENT 2.0
  185047. .IP \(bu 2
  185048. 3d05d89e09 Merge pull request \fI\%#42857\fP from gtmanfred/vmware
  185049. .IP \(bu 2
  185050. c1f673eca4 use older name if _create_unverified_context is unvailable
  185051. .UNINDENT
  185052. .IP \(bu 2
  185053. \fBPR\fP \fI\%#42866\fP: (\fI\%twangboy\fP) Change to GitPython version 2.1.1
  185054. @ \fI2017\-08\-11 13:23:52 UTC\fP
  185055. .INDENT 2.0
  185056. .IP \(bu 2
  185057. 7e8cfff21c Merge pull request \fI\%#42866\fP from twangboy/osx_downgrade_gitpython
  185058. .IP \(bu 2
  185059. 28053a84a6 Change GitPython version to 2.1.1
  185060. .UNINDENT
  185061. .IP \(bu 2
  185062. \fBPR\fP \fI\%#42855\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185063. @ \fI2017\-08\-10 21:40:39 UTC\fP
  185064. .INDENT 2.0
  185065. .IP \(bu 2
  185066. 3ce18637be Merge pull request \fI\%#42855\fP from rallytime/merge\-2017.7
  185067. .IP \(bu 2
  185068. 08bbcf5790 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185069. .IP \(bu 2
  185070. 2dde1f77e9 Merge pull request \fI\%#42851\fP from terminalmage/bp\-42651
  185071. .INDENT 2.0
  185072. .IP \(bu 2
  185073. a3da86eea8 fix syntax
  185074. .IP \(bu 2
  185075. 6ecdbcec1d make sure names are correct
  185076. .IP \(bu 2
  185077. f83b553d6e add py3 for versionlock
  185078. .IP \(bu 2
  185079. 21934f61bb python2\- prefix for fedora 26 packages
  185080. .UNINDENT
  185081. .IP \(bu 2
  185082. c746f79a3a Merge pull request \fI\%#42806\fP from rallytime/fix\-42683
  185083. .INDENT 2.0
  185084. .IP \(bu 2
  185085. 8c8640d6b8 Update doc references in glusterfs.volume_present
  185086. .UNINDENT
  185087. .IP \(bu 2
  185088. 27a8a2695a Merge pull request \fI\%#42829\fP from twangboy/win_pkg_fix_install
  185089. .INDENT 2.0
  185090. .IP \(bu 2
  185091. 83b9b230cd Add winrepo to docs about supporting versions in pkgs
  185092. .IP \(bu 2
  185093. 81fefa6e67 Add ability to pass version in pkgs list
  185094. .UNINDENT
  185095. .IP \(bu 2
  185096. 3c3ac6aeb2 Merge pull request \fI\%#42838\fP from twangboy/win_doc_pki
  185097. .INDENT 2.0
  185098. .IP \(bu 2
  185099. f0a1d06b46 Standardize PKI Client
  185100. .IP \(bu 2
  185101. 7de687aa57 Document requirements for win_pki
  185102. .UNINDENT
  185103. .IP \(bu 2
  185104. b3e2ae3c58 Merge pull request \fI\%#42805\fP from rallytime/bp\-42552
  185105. .INDENT 2.0
  185106. .IP \(bu 2
  185107. 5a91c1f2d1 update consul module following this documentation \fI\%https://www.consul.io/api/acl/acl.html\fP
  185108. .UNINDENT
  185109. .IP \(bu 2
  185110. d2ee7934ed Merge pull request \fI\%#42804\fP from rallytime/bp\-42784
  185111. .INDENT 2.0
  185112. .IP \(bu 2
  185113. dbd29e4aaa only read file if it is not a string
  185114. .UNINDENT
  185115. .IP \(bu 2
  185116. 4cbf8057b3 Merge pull request \fI\%#42826\fP from terminalmage/fix\-spelling
  185117. .INDENT 2.0
  185118. .IP \(bu 2
  185119. 00f93142e4 Fix misspelling of "versions"
  185120. .UNINDENT
  185121. .IP \(bu 2
  185122. de997edd90 Merge pull request \fI\%#42786\fP from Ch3LL/fix_typo
  185123. .INDENT 2.0
  185124. .IP \(bu 2
  185125. 90a2fb66a2 Fix typo for template_dict in http docs
  185126. .UNINDENT
  185127. .IP \(bu 2
  185128. bf6153ebe5 Merge pull request \fI\%#42795\fP from lomeroe/bp\-42744_201611
  185129. .INDENT 2.0
  185130. .IP \(bu 2
  185131. 695f8c1ae4 fix \fI\%#42600\fP in develop
  185132. .UNINDENT
  185133. .IP \(bu 2
  185134. 61fad97286 Merge pull request \fI\%#42748\fP from whiteinge/save\-before\-output
  185135. .INDENT 2.0
  185136. .IP \(bu 2
  185137. de60b77c82 Workaround Orchestrate problem that highstate outputter mutates data
  185138. .UNINDENT
  185139. .IP \(bu 2
  185140. a4e3e7e786 Merge pull request \fI\%#42764\fP from amendlik/cloud\-win\-loop
  185141. .INDENT 2.0
  185142. .IP \(bu 2
  185143. f3dcfca4e0 Fix infinite loops on failed Windows deployments
  185144. .UNINDENT
  185145. .IP \(bu 2
  185146. da85326ad4 Merge pull request \fI\%#42694\fP from gtmanfred/2016.11
  185147. .INDENT 2.0
  185148. .IP \(bu 2
  185149. 1a0457af51 allow adding extra remotes to a repository
  185150. .UNINDENT
  185151. .UNINDENT
  185152. .IP \(bu 2
  185153. \fBISSUE\fP \fI\%#42774\fP: (\fI\%rossengeorgiev\fP) pkg.installed succeeds, but fails when you specify package version (refs: \fI\%#42808\fP)
  185154. .IP \(bu 2
  185155. \fBPR\fP \fI\%#42808\fP: (\fI\%terminalmage\fP) Fix regression in yum/dnf version specification
  185156. @ \fI2017\-08\-10 15:59:22 UTC\fP
  185157. .INDENT 2.0
  185158. .IP \(bu 2
  185159. f954f4f33a Merge pull request \fI\%#42808\fP from terminalmage/issue42774
  185160. .IP \(bu 2
  185161. c69f17dd18 Add integration test for \fI\%#42774\fP
  185162. .IP \(bu 2
  185163. 78d826dd14 Fix regression in yum/dnf version specification
  185164. .UNINDENT
  185165. .IP \(bu 2
  185166. \fBISSUE\fP \fI\%#42639\fP: (\fI\%amnonbc\fP) k8s module needs a way to manage configmaps (refs: \fI\%#42807\fP)
  185167. .IP \(bu 2
  185168. \fBPR\fP \fI\%#42807\fP: (\fI\%rallytime\fP) Update modules \-\-> states in kubernetes doc module
  185169. @ \fI2017\-08\-10 14:10:40 UTC\fP
  185170. .INDENT 2.0
  185171. .IP \(bu 2
  185172. d9b0f44885 Merge pull request \fI\%#42807\fP from rallytime/fix\-42639
  185173. .IP \(bu 2
  185174. 152eb88d9f Update modules \-\-> states in kubernetes doc module
  185175. .UNINDENT
  185176. .IP \(bu 2
  185177. \fBISSUE\fP \fI\%#42818\fP: (\fI\%Mapel88\fP) Bug in win_iis module \- "create_cert_binding" (refs: \fI\%#42841\fP)
  185178. .IP \(bu 2
  185179. \fBPR\fP \fI\%#42841\fP: (\fI\%Mapel88\fP) Fix bug \fI\%#42818\fP in win_iis module
  185180. @ \fI2017\-08\-10 13:44:21 UTC\fP
  185181. .INDENT 2.0
  185182. .IP \(bu 2
  185183. b8c7bda68d Merge pull request \fI\%#42841\fP from Mapel88/patch\-1
  185184. .IP \(bu 2
  185185. 497241fbcb Fix bug \fI\%#42818\fP in win_iis module
  185186. .UNINDENT
  185187. .IP \(bu 2
  185188. \fBISSUE\fP \fI\%#42697\fP: (\fI\%Ch3LL\fP) [Python3] NameError when running salt\-run manage.versions (refs: \fI\%#42782\fP)
  185189. .IP \(bu 2
  185190. \fBPR\fP \fI\%#42782\fP: (\fI\%rallytime\fP) Add a cmp compatibility function utility
  185191. @ \fI2017\-08\-09 22:37:29 UTC\fP
  185192. .INDENT 2.0
  185193. .IP \(bu 2
  185194. 135f9522d0 Merge pull request \fI\%#42782\fP from rallytime/fix\-42697
  185195. .IP \(bu 2
  185196. d707f94863 Update all other calls to "cmp" function
  185197. .IP \(bu 2
  185198. 5605104285 Add a cmp compatibility function utility
  185199. .UNINDENT
  185200. .IP \(bu 2
  185201. \fBPR\fP \fI\%#42784\fP: (\fI\%gtmanfred\fP) only read file if ret is not a string in http.query (refs: \fI\%#42804\fP)
  185202. @ \fI2017\-08\-08 17:20:13 UTC\fP
  185203. .INDENT 2.0
  185204. .IP \(bu 2
  185205. ac752223ad Merge pull request \fI\%#42784\fP from gtmanfred/http
  185206. .IP \(bu 2
  185207. d397c90e92 only read file if it is not a string
  185208. .UNINDENT
  185209. .IP \(bu 2
  185210. \fBISSUE\fP \fI\%#42600\fP: (\fI\%twangboy\fP) Unable to set \(aqNot Configured\(aq using win_lgpo execution module (refs: \fI\%#42744\fP, \fI\%#42794\fP, \fI\%#42795\fP)
  185211. .IP \(bu 2
  185212. \fBPR\fP \fI\%#42794\fP: (\fI\%lomeroe\fP) Backport \fI\%#42744\fP to 2017.7
  185213. @ \fI2017\-08\-08 17:16:31 UTC\fP
  185214. .INDENT 2.0
  185215. .IP \(bu 2
  185216. \fBPR\fP \fI\%#42744\fP: (\fI\%lomeroe\fP) fix \fI\%#42600\fP in develop (refs: \fI\%#42794\fP, \fI\%#42795\fP)
  185217. .IP \(bu 2
  185218. 44995b1abf Merge pull request \fI\%#42794\fP from lomeroe/bp\-42744
  185219. .IP \(bu 2
  185220. 0acffc6df5 fix \fI\%#42600\fP in develop
  185221. .UNINDENT
  185222. .IP \(bu 2
  185223. \fBISSUE\fP \fI\%#42707\fP: (\fI\%cro\fP) Service module and state fails on FreeBSD (refs: \fI\%#42708\fP)
  185224. .IP \(bu 2
  185225. \fBPR\fP \fI\%#42708\fP: (\fI\%cro\fP) Do not change the arguments of the function when memoizing
  185226. @ \fI2017\-08\-08 13:47:01 UTC\fP
  185227. .INDENT 2.0
  185228. .IP \(bu 2
  185229. dcf474c47c Merge pull request \fI\%#42708\fP from cro/dont_change_args_during_memoize
  185230. .IP \(bu 2
  185231. a260e913b5 Do not change the arguments of the function when memoizing
  185232. .UNINDENT
  185233. .IP \(bu 2
  185234. \fBPR\fP \fI\%#42783\fP: (\fI\%rallytime\fP) Sort lists before comparing them in python 3 unit test
  185235. @ \fI2017\-08\-08 13:25:15 UTC\fP
  185236. .INDENT 2.0
  185237. .IP \(bu 2
  185238. \fBPR\fP \fI\%#42206\fP: (\fI\%rallytime\fP) [PY3] Fix test that is flaky in Python 3 (refs: \fI\%#42783\fP)
  185239. .IP \(bu 2
  185240. ddb671b8fe Merge pull request \fI\%#42783\fP from rallytime/fix\-flaky\-py3\-test
  185241. .IP \(bu 2
  185242. 998834fbac Sort lists before compairing them in python 3 unit test
  185243. .UNINDENT
  185244. .IP \(bu 2
  185245. \fBPR\fP \fI\%#42721\fP: (\fI\%hibbert\fP) Allow no ip sg
  185246. @ \fI2017\-08\-07 22:07:18 UTC\fP
  185247. .INDENT 2.0
  185248. .IP \(bu 2
  185249. d69822fe93 Merge pull request \fI\%#42721\fP from hibbert/allow_no_ip_sg
  185250. .IP \(bu 2
  185251. f58256802a allow_no_ip_sg: Allow user to not supply ipaddress or securitygroups when running boto_efs.create_mount_target
  185252. .UNINDENT
  185253. .IP \(bu 2
  185254. \fBISSUE\fP \fI\%#42538\fP: (\fI\%marnovdm\fP) docker_container.running issue since 2017.7.0: passing domainname gives Error 500: json: cannot unmarshal array into Go value of type string (refs: \fI\%#42769\fP)
  185255. .IP \(bu 2
  185256. \fBPR\fP \fI\%#42769\fP: (\fI\%terminalmage\fP) Fix domainname parameter input translation
  185257. @ \fI2017\-08\-07 20:46:07 UTC\fP
  185258. .INDENT 2.0
  185259. .IP \(bu 2
  185260. bf7938fbe0 Merge pull request \fI\%#42769\fP from terminalmage/issue42538
  185261. .IP \(bu 2
  185262. 665de2d1f9 Fix domainname parameter input translation
  185263. .UNINDENT
  185264. .IP \(bu 2
  185265. \fBPR\fP \fI\%#42388\fP: (\fI\%The\-Loeki\fP) pillar.items pillar_env & pillar_override are never used
  185266. @ \fI2017\-08\-07 17:51:48 UTC\fP
  185267. .INDENT 2.0
  185268. .IP \(bu 2
  185269. 7bf2cdb363 Merge pull request \fI\%#42388\fP from The\-Loeki/patch\-1
  185270. .IP \(bu 2
  185271. 664f4b577b pillar.items pillar_env & pillar_override are never used
  185272. .UNINDENT
  185273. .IP \(bu 2
  185274. \fBPR\fP \fI\%#42770\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  185275. @ \fI2017\-08\-07 16:21:45 UTC\fP
  185276. .INDENT 2.0
  185277. .IP \(bu 2
  185278. 9a8c9ebffc Merge pull request \fI\%#42770\fP from rallytime/merge\-2017.7.1\-into\-2017.7
  185279. .IP \(bu 2
  185280. 6d17c9d227 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  185281. .UNINDENT
  185282. .IP \(bu 2
  185283. \fBPR\fP \fI\%#42768\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185284. @ \fI2017\-08\-07 16:21:17 UTC\fP
  185285. .INDENT 2.0
  185286. .IP \(bu 2
  185287. c765e528d0 Merge pull request \fI\%#42768\fP from rallytime/merge\-2017.7
  185288. .IP \(bu 2
  185289. 0f75482c37 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185290. .INDENT 2.0
  185291. .IP \(bu 2
  185292. 7b2119feee Merge pull request \fI\%#42669\fP from garethgreenaway/42642_2016_11_augeas_module_fix
  185293. .INDENT 2.0
  185294. .IP \(bu 2
  185295. 24413084e2 Updating the call to shlex_split to pass the posix=False argument so that quotes are preserved.
  185296. .UNINDENT
  185297. .IP \(bu 2
  185298. 30725769ed Merge pull request \fI\%#42629\fP from xiaoanyunfei/tornadoapi
  185299. .INDENT 2.0
  185300. .IP \(bu 2
  185301. 1e13383b95 tornado api
  185302. .UNINDENT
  185303. .IP \(bu 2
  185304. f0f00fcee1 Merge pull request \fI\%#42655\fP from whiteinge/rest_cherrypy\-reenable\-stats
  185305. .INDENT 2.0
  185306. .IP \(bu 2
  185307. deb6316d67 Fix lint errors
  185308. .IP \(bu 2
  185309. 6bd91c8b03 Reenable cpstats for rest_cherrypy
  185310. .UNINDENT
  185311. .IP \(bu 2
  185312. 21cf15f9c3 Merge pull request \fI\%#42693\fP from gilbsgilbs/fix\-rabbitmq\-tags
  185313. .INDENT 2.0
  185314. .IP \(bu 2
  185315. 78fccdc7e2 Cast to list in case tags is a tuple.
  185316. .IP \(bu 2
  185317. 287b57b5c5 Fix RabbitMQ tags not properly set.
  185318. .UNINDENT
  185319. .IP \(bu 2
  185320. f2b0c9b4fa Merge pull request \fI\%#42574\fP from sbojarski/boto\-cfn\-error\-reporting
  185321. .INDENT 2.0
  185322. .IP \(bu 2
  185323. 5c945f10c2 Fix debug message in "boto_cfn._validate" function.
  185324. .IP \(bu 2
  185325. 181a1beecc Fixed error reporting in "boto_cfn.present" function.
  185326. .UNINDENT
  185327. .IP \(bu 2
  185328. bc1effc4f2 Merge pull request \fI\%#42623\fP from terminalmage/fix\-unicode\-constructor
  185329. .INDENT 2.0
  185330. .IP \(bu 2
  185331. fcf45889dd Fix unicode constructor in custom YAML loader
  185332. .UNINDENT
  185333. .UNINDENT
  185334. .UNINDENT
  185335. .IP \(bu 2
  185336. \fBPR\fP \fI\%#42651\fP: (\fI\%gtmanfred\fP) python2\- prefix for fedora 26 packages (refs: \fI\%#42851\fP)
  185337. @ \fI2017\-08\-07 14:35:04 UTC\fP
  185338. .INDENT 2.0
  185339. .IP \(bu 2
  185340. 3f5827f61e Merge pull request \fI\%#42651\fP from gtmanfred/2017.7
  185341. .IP \(bu 2
  185342. 8784899942 fix syntax
  185343. .IP \(bu 2
  185344. 178cc1bd81 make sure names are correct
  185345. .IP \(bu 2
  185346. f179b97b52 add py3 for versionlock
  185347. .IP \(bu 2
  185348. 1958d18634 python2\- prefix for fedora 26 packages
  185349. .UNINDENT
  185350. .IP \(bu 2
  185351. \fBISSUE\fP \fI\%#42688\fP: (\fI\%hibbert\fP) salt.modules.boto_efs module Invalid type for parameter Tags \- type: <type \(aqdict\(aq>, valid types: <type \(aqlist\(aq>, <type \(aqtuple\(aq> (refs: \fI\%#42689\fP)
  185352. .IP \(bu 2
  185353. \fBPR\fP \fI\%#42689\fP: (\fI\%hibbert\fP) boto_efs_fix_tags: Fix \fI\%#42688\fP invalid type for parameter tags
  185354. @ \fI2017\-08\-06 17:47:07 UTC\fP
  185355. .INDENT 2.0
  185356. .IP \(bu 2
  185357. 791248e398 Merge pull request \fI\%#42689\fP from hibbert/boto_efs_fix_tags
  185358. .IP \(bu 2
  185359. 157fb28851 boto_efs_fix_tags: Fix \fI\%#42688\fP invalid type for parameter tags
  185360. .UNINDENT
  185361. .IP \(bu 2
  185362. \fBISSUE\fP \fI\%#42705\fP: (\fI\%hbruch\fP) salt.states.docker_container.running replaces container on subsequent runs if oom_kill_disable unsupported (refs: \fI\%#42745\fP)
  185363. .IP \(bu 2
  185364. \fBPR\fP \fI\%#42745\fP: (\fI\%terminalmage\fP) docker.compare_container: treat null oom_kill_disable as False
  185365. @ \fI2017\-08\-05 15:28:20 UTC\fP
  185366. .INDENT 2.0
  185367. .IP \(bu 2
  185368. 1b3407649b Merge pull request \fI\%#42745\fP from terminalmage/issue42705
  185369. .IP \(bu 2
  185370. 710bdf6115 docker.compare_container: treat null oom_kill_disable as False
  185371. .UNINDENT
  185372. .IP \(bu 2
  185373. \fBISSUE\fP \fI\%#42649\fP: (\fI\%tehsu\fP) local_batch no longer working in 2017.7.0, 500 error (refs: \fI\%#42704\fP)
  185374. .IP \(bu 2
  185375. \fBPR\fP \fI\%#42704\fP: (\fI\%whiteinge\fP) Add import to work around likely multiprocessing scoping bug
  185376. @ \fI2017\-08\-04 23:03:13 UTC\fP
  185377. .INDENT 2.0
  185378. .IP \(bu 2
  185379. 5d5b22021b Merge pull request \fI\%#42704\fP from whiteinge/expr_form\-warn\-scope\-bug
  185380. .IP \(bu 2
  185381. 03b675a618 Add import to work around likely multiprocessing scoping bug
  185382. .UNINDENT
  185383. .IP \(bu 2
  185384. \fBISSUE\fP \fI\%#42741\fP: (\fI\%kkoppel\fP) docker_container.running keeps re\-creating containers with links to other containers (refs: \fI\%#42743\fP)
  185385. .IP \(bu 2
  185386. \fBPR\fP \fI\%#42743\fP: (\fI\%kkoppel\fP) Fix docker.compare_container for containers with links
  185387. @ \fI2017\-08\-04 16:00:33 UTC\fP
  185388. .INDENT 2.0
  185389. .IP \(bu 2
  185390. 888e954e73 Merge pull request \fI\%#42743\fP from kkoppel/fix\-issue\-42741
  185391. .IP \(bu 2
  185392. de6d3cc0cf Update dockermod.py
  185393. .IP \(bu 2
  185394. 58b997c67f Added a helper function that removes container names from container HostConfig:Links values to enable compare_container() to make the correct decision about differences in links.
  185395. .UNINDENT
  185396. .IP \(bu 2
  185397. \fBISSUE\fP \fI\%#42668\fP: (\fI\%UtahDave\fP) Minions under syndics don\(aqt respond to MoM (refs: \fI\%#42710\fP)
  185398. .IP \(bu 2
  185399. \fBISSUE\fP \fI\%#42545\fP: (\fI\%paul\-mulvihill\fP) Salt\-api failing to return results for minions connected via syndics. (refs: \fI\%#42710\fP)
  185400. .IP \(bu 2
  185401. \fBPR\fP \fI\%#42710\fP: (\fI\%gtmanfred\fP) use subtraction instead of or
  185402. @ \fI2017\-08\-04 15:14:14 UTC\fP
  185403. .INDENT 2.0
  185404. .IP \(bu 2
  185405. 03a7f9bbee Merge pull request \fI\%#42710\fP from gtmanfred/syndic
  185406. .IP \(bu 2
  185407. 683561a711 use subtraction instead of or
  185408. .UNINDENT
  185409. .IP \(bu 2
  185410. \fBPR\fP \fI\%#42670\fP: (\fI\%gtmanfred\fP) render kubernetes docs
  185411. @ \fI2017\-08\-03 20:30:56 UTC\fP
  185412. .INDENT 2.0
  185413. .IP \(bu 2
  185414. 005182b6a1 Merge pull request \fI\%#42670\fP from gtmanfred/kube
  185415. .IP \(bu 2
  185416. bca17902f5 add version added info
  185417. .IP \(bu 2
  185418. 4bbfc751ae render kubernetes docs
  185419. .UNINDENT
  185420. .IP \(bu 2
  185421. \fBPR\fP \fI\%#42712\fP: (\fI\%twangboy\fP) Remove master config file from minion\-only installer
  185422. @ \fI2017\-08\-03 20:25:02 UTC\fP
  185423. .INDENT 2.0
  185424. .IP \(bu 2
  185425. df354ddabf Merge pull request \fI\%#42712\fP from twangboy/win_build_pkg
  185426. .IP \(bu 2
  185427. 8604312a7b Remove master conf in minion install
  185428. .UNINDENT
  185429. .IP \(bu 2
  185430. \fBPR\fP \fI\%#42714\fP: (\fI\%cachedout\fP) Set fact gathering style to \(aqold\(aq for test_junos
  185431. @ \fI2017\-08\-03 13:39:40 UTC\fP
  185432. .INDENT 2.0
  185433. .IP \(bu 2
  185434. bb1dfd4a42 Merge pull request \fI\%#42714\fP from cachedout/workaround_jnpr_test_bug
  185435. .IP \(bu 2
  185436. 834d6c605e Set fact gathering style to \(aqold\(aq for test_junos
  185437. .UNINDENT
  185438. .IP \(bu 2
  185439. \fBPR\fP \fI\%#42481\fP: (\fI\%twangboy\fP) Fix \fIunit.test_crypt\fP for Windows
  185440. @ \fI2017\-08\-01 18:10:50 UTC\fP
  185441. .INDENT 2.0
  185442. .IP \(bu 2
  185443. 4c1d931654 Merge pull request \fI\%#42481\fP from twangboy/win_unit_test_crypt
  185444. .IP \(bu 2
  185445. 102509029e Remove chown mock, fix path seps
  185446. .UNINDENT
  185447. .IP \(bu 2
  185448. \fBPR\fP \fI\%#42654\fP: (\fI\%morganwillcock\fP) Disable ZFS in the core grain for NetBSD
  185449. @ \fI2017\-08\-01 17:52:36 UTC\fP
  185450. .INDENT 2.0
  185451. .IP \(bu 2
  185452. 8bcefb5e67 Merge pull request \fI\%#42654\fP from morganwillcock/zfsgrain
  185453. .IP \(bu 2
  185454. 49023deb94 Disable ZFS grain on NetBSD
  185455. .UNINDENT
  185456. .IP \(bu 2
  185457. \fBISSUE\fP \fI\%#42421\fP: (\fI\%bfilipek\fP) archive.extracted on Windows failed when dir not exist (refs: \fI\%#42453\fP)
  185458. .IP \(bu 2
  185459. \fBPR\fP \fI\%#42453\fP: (\fI\%gtmanfred\fP) don\(aqt pass user to makedirs on windows
  185460. @ \fI2017\-07\-31 19:57:57 UTC\fP
  185461. .INDENT 2.0
  185462. .IP \(bu 2
  185463. 5baf2650fc Merge pull request \fI\%#42453\fP from gtmanfred/makedirs
  185464. .IP \(bu 2
  185465. 559d432930 fix tests
  185466. .IP \(bu 2
  185467. afa7a13ce3 use logic from file.directory for makedirs
  185468. .UNINDENT
  185469. .IP \(bu 2
  185470. \fBPR\fP \fI\%#42603\fP: (\fI\%twangboy\fP) Add runas_passwd as a global for states
  185471. @ \fI2017\-07\-31 19:49:49 UTC\fP
  185472. .INDENT 2.0
  185473. .IP \(bu 2
  185474. fb81e78f71 Merge pull request \fI\%#42603\fP from twangboy/win_fix_runas
  185475. .IP \(bu 2
  185476. 0c9e40012b Remove deprecation, add logic to state.py
  185477. .IP \(bu 2
  185478. 464ec34713 Fix another instance of runas_passwd
  185479. .IP \(bu 2
  185480. 18d6ce4d55 Add global vars to cmd.call
  185481. .IP \(bu 2
  185482. 6c71ab6f80 Remove runas and runas_password after state run
  185483. .IP \(bu 2
  185484. 4ea264e3db Change to runas_password in docs
  185485. .IP \(bu 2
  185486. 61aba35718 Deprecate password, make runas_password a named arg
  185487. .IP \(bu 2
  185488. 41f0f75a06 Add new var to list, change to runas_password
  185489. .IP \(bu 2
  185490. b9c91eba60 Add runas_passwd as a global for states
  185491. .UNINDENT
  185492. .IP \(bu 2
  185493. \fBPR\fP \fI\%#42541\fP: (\fI\%Mareo\fP) Avoid confusing warning when using file.line
  185494. @ \fI2017\-07\-31 19:41:58 UTC\fP
  185495. .INDENT 2.0
  185496. .IP \(bu 2
  185497. 75ba23c253 Merge pull request \fI\%#42541\fP from epita/fix\-file\-line\-warning
  185498. .IP \(bu 2
  185499. 2fd172e07b Avoid confusing warning when using file.line
  185500. .UNINDENT
  185501. .IP \(bu 2
  185502. \fBPR\fP \fI\%#42625\fP: (\fI\%twangboy\fP) Fix the list function in the win_wua execution module
  185503. @ \fI2017\-07\-31 19:27:16 UTC\fP
  185504. .INDENT 2.0
  185505. .IP \(bu 2
  185506. 3d328eba80 Merge pull request \fI\%#42625\fP from twangboy/fix_win_wua
  185507. .IP \(bu 2
  185508. 1340c15ce7 Add general usage instructions
  185509. .IP \(bu 2
  185510. 19f34bda55 Fix docs, formatting
  185511. .IP \(bu 2
  185512. b17495c9c8 Fix problem with list when install=True
  185513. .UNINDENT
  185514. .IP \(bu 2
  185515. \fBISSUE\fP \fI\%#42514\fP: (\fI\%rickh563\fP) \fImodule.run\fP does not work as expected in 2017.7.0 (refs: \fI\%#42602\fP)
  185516. .IP \(bu 2
  185517. \fBPR\fP \fI\%#42602\fP: (\fI\%garethgreenaway\fP) Use superseded and deprecated configuration from pillar
  185518. @ \fI2017\-07\-31 18:53:06 UTC\fP
  185519. .INDENT 2.0
  185520. .IP \(bu 2
  185521. 25094ad9b1 Merge pull request \fI\%#42602\fP from garethgreenaway/42514_2017_7_superseded_deprecated_from_pillar
  185522. .IP \(bu 2
  185523. 2e132daa73 Slight update to formatting
  185524. .IP \(bu 2
  185525. 74bae13939 Small update to something I missed in the first commit. Updating tests to also test for pillar values.
  185526. .IP \(bu 2
  185527. 928a4808dd Updating the superseded and deprecated decorators to work when specified as pillar values.
  185528. .UNINDENT
  185529. .IP \(bu 2
  185530. \fBPR\fP \fI\%#42621\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185531. @ \fI2017\-07\-28 19:45:51 UTC\fP
  185532. .INDENT 2.0
  185533. .IP \(bu 2
  185534. b7cd30d3ee Merge pull request \fI\%#42621\fP from rallytime/merge\-2017.7
  185535. .IP \(bu 2
  185536. 58dcb58a47 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185537. .INDENT 2.0
  185538. .IP \(bu 2
  185539. cbf752cd73 Merge pull request \fI\%#42515\fP from gtmanfred/backslash
  185540. .INDENT 2.0
  185541. .IP \(bu 2
  185542. cc4e45656d Allow not interpreting backslashes in the repl
  185543. .UNINDENT
  185544. .IP \(bu 2
  185545. 549495831f Merge pull request \fI\%#42586\fP from gdubroeucq/2016.11
  185546. .INDENT 2.0
  185547. .IP \(bu 2
  185548. 9c0b5cc1d6 Remove extra newline
  185549. .IP \(bu 2
  185550. d2ef4483e4 yumpkg.py: clean
  185551. .IP \(bu 2
  185552. a96f7c09e0 yumpkg.py: add option to the command "check\-update"
  185553. .UNINDENT
  185554. .IP \(bu 2
  185555. 6b45debf28 Merge pull request \fI\%#41988\fP from redmatter/fix\-dockerng\-network\-matching
  185556. .INDENT 2.0
  185557. .IP \(bu 2
  185558. 9eea796da8 Add regression tests for \fI\%#41982\fP
  185559. .IP \(bu 2
  185560. 3369f0072f Fix broken unit test test_network_absent
  185561. .IP \(bu 2
  185562. 0ef6cf634c Add trace logging of dockerng.networks result
  185563. .IP \(bu 2
  185564. 515c612808 Fix dockerng.network_* name matching
  185565. .UNINDENT
  185566. .UNINDENT
  185567. .UNINDENT
  185568. .IP \(bu 2
  185569. \fBISSUE\fP \fI\%#34245\fP: (\fI\%Talkless\fP) ini.options_present always report state change (refs: \fI\%#41690\fP)
  185570. .IP \(bu 2
  185571. \fBPR\fP \fI\%#42618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41690\fP to 2017.7
  185572. @ \fI2017\-07\-28 19:27:11 UTC\fP
  185573. .INDENT 2.0
  185574. .IP \(bu 2
  185575. \fBPR\fP \fI\%#41690\fP: (\fI\%m03\fP) Fix issue \fI\%#34245\fP with ini.options_present reporting changes (refs: \fI\%#42618\fP)
  185576. .IP \(bu 2
  185577. d48749b476 Merge pull request \fI\%#42618\fP from rallytime/bp\-41690
  185578. .IP \(bu 2
  185579. 22c6a7c7ff Improve output precision
  185580. .IP \(bu 2
  185581. ee4ea6b860 Fix \fI\%#34245\fP ini.options_present reporting changes
  185582. .UNINDENT
  185583. .IP \(bu 2
  185584. \fBISSUE\fP \fI\%#42588\fP: (\fI\%ixs\fP) salt\-ssh fails when using scan roster and detected minions are uncached (refs: \fI\%#42589\fP)
  185585. .IP \(bu 2
  185586. \fBPR\fP \fI\%#42619\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42589\fP to 2017.7
  185587. @ \fI2017\-07\-28 19:26:36 UTC\fP
  185588. .INDENT 2.0
  185589. .IP \(bu 2
  185590. \fBPR\fP \fI\%#42589\fP: (\fI\%ixs\fP) Fix ssh\-salt calls with scan roster for uncached clients (refs: \fI\%#42619\fP)
  185591. .IP \(bu 2
  185592. e671242a4f Merge pull request \fI\%#42619\fP from rallytime/bp\-42589
  185593. .IP \(bu 2
  185594. cd5eb93903 Fix ssh\-salt calls with scan roster for uncached clients
  185595. .UNINDENT
  185596. .IP \(bu 2
  185597. \fBISSUE\fP \fI\%#41982\fP: (\fI\%abulford\fP) dockerng.network_* matches too easily (refs: \fI\%#42006\fP, \fI\%#41988\fP)
  185598. .IP \(bu 2
  185599. \fBPR\fP \fI\%#42006\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching
  185600. @ \fI2017\-07\-28 15:52:52 UTC\fP
  185601. .INDENT 2.0
  185602. .IP \(bu 2
  185603. \fBPR\fP \fI\%#41988\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching (refs: \fI\%#42006\fP)
  185604. .IP \(bu 2
  185605. 7d385f8bdc Merge pull request \fI\%#42006\fP from redmatter/fix\-dockerng\-network\-matching\-2017.7
  185606. .IP \(bu 2
  185607. f83960c02a Lint: Remove extra line at end of file.
  185608. .IP \(bu 2
  185609. c7d364ec56 Add regression tests for \fI\%#41982\fP
  185610. .IP \(bu 2
  185611. d31f2913bd Fix broken unit test test_network_absent
  185612. .IP \(bu 2
  185613. d42f781c64 Add trace logging of docker.networks result
  185614. .IP \(bu 2
  185615. 8c00c63b55 Fix dockerng.network_* name matching
  185616. .UNINDENT
  185617. .IP \(bu 2
  185618. \fBISSUE\fP \fI\%#12587\fP: (\fI\%Katafalkas\fP) salt\-cloud custom functions/actions (refs: \fI\%#42616\fP)
  185619. .IP \(bu 2
  185620. \fBPR\fP \fI\%#42616\fP: (\fI\%amendlik\fP) Sync cloud modules
  185621. @ \fI2017\-07\-28 15:40:36 UTC\fP
  185622. .INDENT 2.0
  185623. .IP \(bu 2
  185624. ee8aee1496 Merge pull request \fI\%#42616\fP from amendlik/sync\-clouds
  185625. .IP \(bu 2
  185626. ab21bd9b5b Sync cloud modules when saltutil.sync_all is run
  185627. .UNINDENT
  185628. .IP \(bu 2
  185629. \fBPR\fP \fI\%#42601\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185630. @ \fI2017\-07\-27 22:32:07 UTC\fP
  185631. .INDENT 2.0
  185632. .IP \(bu 2
  185633. e2dd443002 Merge pull request \fI\%#42601\fP from rallytime/merge\-2017.7
  185634. .IP \(bu 2
  185635. 36a1bcf8c5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185636. .INDENT 2.0
  185637. .IP \(bu 2
  185638. 4b16109122 Merge pull request \fI\%#42339\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-bsc1036125
  185639. .INDENT 2.0
  185640. .IP \(bu 2
  185641. bbba84ce2d Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  185642. .UNINDENT
  185643. .IP \(bu 2
  185644. 6c5a7c604a Merge pull request \fI\%#42077\fP from vutny/fix\-jobs\-scheduled\-with\-whens
  185645. .INDENT 2.0
  185646. .IP \(bu 2
  185647. b1960cea44 Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  185648. .UNINDENT
  185649. .IP \(bu 2
  185650. f9cb536589 Merge pull request \fI\%#42414\fP from vutny/unify\-hash\-params\-format
  185651. .INDENT 2.0
  185652. .IP \(bu 2
  185653. d1f2a93368 DOCS: unify hash sum with hash type format
  185654. .UNINDENT
  185655. .IP \(bu 2
  185656. 535c922511 Merge pull request \fI\%#42523\fP from rallytime/fix\-42375
  185657. .INDENT 2.0
  185658. .IP \(bu 2
  185659. 685c2cced6 Add information about returning a tuple with an error message
  185660. .IP \(bu 2
  185661. fa466519c4 Add a mention of the True/False returns with __virtual__()
  185662. .UNINDENT
  185663. .IP \(bu 2
  185664. 0df0e7e749 Merge pull request \fI\%#42527\fP from twangboy/win_wua
  185665. .INDENT 2.0
  185666. .IP \(bu 2
  185667. 0373791f2a Correct capatlization
  185668. .IP \(bu 2
  185669. af3bcc927b Document changes to Windows Update in 10/2016
  185670. .UNINDENT
  185671. .IP \(bu 2
  185672. 69b06586da Merge pull request \fI\%#42551\fP from binocvlar/fix\-lack\-of\-align\-check\-output
  185673. .INDENT 2.0
  185674. .IP \(bu 2
  185675. c4fabaa192 Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  185676. .UNINDENT
  185677. .IP \(bu 2
  185678. 9e0b4e9faf Merge pull request \fI\%#42573\fP from rallytime/bp\-42433
  185679. .INDENT 2.0
  185680. .IP \(bu 2
  185681. 0293429e24 Only force saltenv/pillarenv to be a string when not None
  185682. .UNINDENT
  185683. .IP \(bu 2
  185684. e931ed2517 Merge pull request \fI\%#42571\fP from twangboy/win_add_pythonpath
  185685. .INDENT 2.0
  185686. .IP \(bu 2
  185687. d55a44dd1a Avoid loading user site packages
  185688. .IP \(bu 2
  185689. 9af1eb2741 Ignore any PYTHON* environment vars already on the system
  185690. .IP \(bu 2
  185691. 4e2fb03a95 Add pythonpath to batch files and service
  185692. .UNINDENT
  185693. .IP \(bu 2
  185694. de2f397041 Merge pull request \fI\%#42387\fP from DSRCorporation/bugs/42371_KeyError_WeakValueDict
  185695. .INDENT 2.0
  185696. .IP \(bu 2
  185697. e721c7eee2 Don\(aqt use \fIkey in weakvaluedict\fP because it could lie.
  185698. .UNINDENT
  185699. .IP \(bu 2
  185700. 641a9d7efd Merge pull request \fI\%#41968\fP from root360\-AndreasUlm/fix\-rabbitmqctl\-output\-handler
  185701. .INDENT 2.0
  185702. .IP \(bu 2
  185703. 76fd941d91 added tests for rabbitmq 3.6.10 output handler
  185704. .IP \(bu 2
  185705. 3602af1e1b Fix rabbitmqctl output handler for 3.6.10
  185706. .UNINDENT
  185707. .IP \(bu 2
  185708. 66fede378a Merge pull request \fI\%#42479\fP from gtmanfred/interface
  185709. .INDENT 2.0
  185710. .IP \(bu 2
  185711. c32c1b2803 fix pylint
  185712. .IP \(bu 2
  185713. 99ec634c6b validate ssh_interface for ec2
  185714. .UNINDENT
  185715. .IP \(bu 2
  185716. a925c7029a Merge pull request \fI\%#42516\fP from rallytime/fix\-42405
  185717. .INDENT 2.0
  185718. .IP \(bu 2
  185719. e3a6717efa Add info about top file to pillar walk\-through example to include edit.vim
  185720. .UNINDENT
  185721. .UNINDENT
  185722. .UNINDENT
  185723. .IP \(bu 2
  185724. \fBISSUE\fP \fI\%#42148\fP: (\fI\%sjorge\fP) [2017.7.0rc1] use_superseded and module.run changes from release notes do nothing? (refs: \fI\%#42270\fP)
  185725. .IP \(bu 2
  185726. \fBPR\fP \fI\%#42290\fP: (\fI\%isbm\fP) Backport of \fI\%#42270\fP
  185727. @ \fI2017\-07\-27 22:30:05 UTC\fP
  185728. .INDENT 2.0
  185729. .IP \(bu 2
  185730. \fBPR\fP \fI\%#42270\fP: (\fI\%The\-Loeki\fP) State module.run/wait misses args when looking for kwargs (refs: \fI\%#42290\fP)
  185731. .IP \(bu 2
  185732. 22eea389fa Merge pull request \fI\%#42290\fP from isbm/isbm\-module_run_parambug_42270_217
  185733. .IP \(bu 2
  185734. e38d432f90 Fix docs
  185735. .IP \(bu 2
  185736. 1e8a56eda5 Describe function tagging
  185737. .IP \(bu 2
  185738. 1d7233224b Describe function batching
  185739. .IP \(bu 2
  185740. 1391a05d5e Bugfix: syntax error in the example
  185741. .IP \(bu 2
  185742. 8c71257a4b Call unnamed parameters properly
  185743. .IP \(bu 2
  185744. 94c97a8f25 Update and correct the error message
  185745. .IP \(bu 2
  185746. ea8351362c Bugfix: args gets ignored alongside named parameters
  185747. .IP \(bu 2
  185748. 74689e3462 Add ability to use tagged functions in the same set
  185749. .UNINDENT
  185750. .IP \(bu 2
  185751. \fBPR\fP \fI\%#42251\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_ip\fP for Windows
  185752. @ \fI2017\-07\-27 19:22:03 UTC\fP
  185753. .INDENT 2.0
  185754. .IP \(bu 2
  185755. 4c20f1cfbb Merge pull request \fI\%#42251\fP from twangboy/unit_win_test_win_ip
  185756. .IP \(bu 2
  185757. 97261bfe69 Fix win_inet_pton check for malformatted ip addresses
  185758. .UNINDENT
  185759. .IP \(bu 2
  185760. \fBPR\fP \fI\%#42255\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_system\fP for Windows
  185761. @ \fI2017\-07\-27 19:12:42 UTC\fP
  185762. .INDENT 2.0
  185763. .IP \(bu 2
  185764. 2985e4c0e6 Merge pull request \fI\%#42255\fP from twangboy/win_unit_test_win_system
  185765. .IP \(bu 2
  185766. acc0345bc8 Fix unit tests
  185767. .UNINDENT
  185768. .IP \(bu 2
  185769. \fBPR\fP \fI\%#42528\fP: (\fI\%twangboy\fP) Namespace \fIcmp_to_key\fP in the pkg state for Windows
  185770. @ \fI2017\-07\-27 18:30:23 UTC\fP
  185771. .INDENT 2.0
  185772. .IP \(bu 2
  185773. a573386260 Merge pull request \fI\%#42528\fP from twangboy/win_fix_pkg_state
  185774. .IP \(bu 2
  185775. a040443fa1 Move functools import inside pylint escapes
  185776. .IP \(bu 2
  185777. 118d5134e2 Remove namespaced function \fIcmp_to_key\fP
  185778. .IP \(bu 2
  185779. a02c91adda Namespace \fIcmp_to_key\fP in the pkg state for Windows
  185780. .UNINDENT
  185781. .IP \(bu 2
  185782. \fBISSUE\fP \fI\%#42521\fP: (\fI\%rickh563\fP) chocolatey.installed broken on 2017.7.0 (refs: \fI\%#42534\fP)
  185783. .IP \(bu 2
  185784. \fBPR\fP \fI\%#42534\fP: (\fI\%jmarinaro\fP) Fixes AttributeError thrown by chocolatey state
  185785. @ \fI2017\-07\-27 17:59:50 UTC\fP
  185786. .INDENT 2.0
  185787. .IP \(bu 2
  185788. 62ae12bcd9 Merge pull request \fI\%#42534\fP from jmarinaro/2017.7
  185789. .IP \(bu 2
  185790. b242d2d6b5 Fixes AttributeError thrown by chocolatey state Fixes \fI\%#42521\fP
  185791. .UNINDENT
  185792. .IP \(bu 2
  185793. \fBISSUE\fP \fI\%#40354\fP: (\fI\%exc414\fP) CentOS 6.8 Init Script \- Sed unterminated address regex (refs: \fI\%#42557\fP)
  185794. .IP \(bu 2
  185795. \fBISSUE\fP \fI\%#37312\fP: (\fI\%gtmanfred\fP) CLI flags should take overload settings in the config files (refs: \fI\%#42557\fP)
  185796. .IP \(bu 2
  185797. \fBPR\fP \fI\%#42557\fP: (\fI\%justincbeard\fP) Fixing output so \-\-force\-color and \-\-no\-color override master and min…
  185798. @ \fI2017\-07\-27 17:07:33 UTC\fP
  185799. .INDENT 2.0
  185800. .IP \(bu 2
  185801. 52605c249d Merge pull request \fI\%#42557\fP from justincbeard/bugfix_37312
  185802. .IP \(bu 2
  185803. ee3bc6eb10 Fixing output so \-\-force\-color and \-\-no\-color override master and minion config color value
  185804. .UNINDENT
  185805. .IP \(bu 2
  185806. \fBPR\fP \fI\%#42567\fP: (\fI\%skizunov\fP) Fix disable_<tag\-name> config option
  185807. @ \fI2017\-07\-27 17:05:00 UTC\fP
  185808. .INDENT 2.0
  185809. .IP \(bu 2
  185810. ab33517efb Merge pull request \fI\%#42567\fP from skizunov/develop3
  185811. .IP \(bu 2
  185812. 0f0b7e3e0a Fix disable_<tag\-name> config option
  185813. .UNINDENT
  185814. .IP \(bu 2
  185815. \fBPR\fP \fI\%#42577\fP: (\fI\%twangboy\fP) Compile scripts with \-E \-s params for Salt on Mac
  185816. @ \fI2017\-07\-26 22:44:37 UTC\fP
  185817. .INDENT 2.0
  185818. .IP \(bu 2
  185819. 30bb941179 Merge pull request \fI\%#42577\fP from twangboy/mac_scripts
  185820. .IP \(bu 2
  185821. 69d5973651 Compile scripts with \-E \-s params for python
  185822. .UNINDENT
  185823. .IP \(bu 2
  185824. \fBPR\fP \fI\%#42524\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185825. @ \fI2017\-07\-26 22:41:06 UTC\fP
  185826. .INDENT 2.0
  185827. .IP \(bu 2
  185828. 60cd078164 Merge pull request \fI\%#42524\fP from rallytime/merge\-2017.7
  185829. .IP \(bu 2
  185830. 14d8d795f6 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  185831. .INDENT 2.0
  185832. .IP \(bu 2
  185833. 1bd5bbccc2 Merge pull request \fI\%#42509\fP from clem\-compilatio/fix\-42417
  185834. .INDENT 2.0
  185835. .IP \(bu 2
  185836. 72924b06b8 Fix _assign_floating_ips in openstack.py
  185837. .UNINDENT
  185838. .IP \(bu 2
  185839. 4bf35a74de Merge pull request \fI\%#42464\fP from garethgreenaway/2016_11_remove_tmp_identity_file
  185840. .INDENT 2.0
  185841. .IP \(bu 2
  185842. ff24102d51 Uncomment the line that removes the temporary identity file.
  185843. .UNINDENT
  185844. .IP \(bu 2
  185845. e2120dbd0e Merge pull request \fI\%#42443\fP from garethgreenaway/42357_pass_args_kwargs_correctly
  185846. .INDENT 2.0
  185847. .IP \(bu 2
  185848. 635810b3e3 Updating the slack engine in 2016.11 to pass the args and kwrags correctly to LocalClient
  185849. .UNINDENT
  185850. .IP \(bu 2
  185851. 8262cc9054 Merge pull request \fI\%#42200\fP from shengis/sqlite3_fix_row_absent_2016.11
  185852. .INDENT 2.0
  185853. .IP \(bu 2
  185854. 407b8f4bb3 Fix \fI\%#42198\fP If where_args is not set, not using it in the delete request.
  185855. .UNINDENT
  185856. .IP \(bu 2
  185857. d9df97e5a3 Merge pull request \fI\%#42424\fP from goten4/2016.11
  185858. .INDENT 2.0
  185859. .IP \(bu 2
  185860. 1c0574d05e Fix error message when tornado or pycurl is not installed
  185861. .UNINDENT
  185862. .UNINDENT
  185863. .UNINDENT
  185864. .IP \(bu 2
  185865. \fBPR\fP \fI\%#42575\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.1 to 2017.7
  185866. @ \fI2017\-07\-26 22:39:10 UTC\fP
  185867. .INDENT 2.0
  185868. .IP \(bu 2
  185869. 2acde837df Merge pull request \fI\%#42575\fP from rallytime/merge\-2017.7.1\-into\-2017.7
  185870. .IP \(bu 2
  185871. 63bb0fb2c4 pass in empty kwarg for reactor
  185872. .IP \(bu 2
  185873. 2868061ee4 update chunk, not kwarg in chunk
  185874. .IP \(bu 2
  185875. 46715e9d94 Merge branch \(aq2017.7.1\(aq into \(aq2017.7\(aq
  185876. .UNINDENT
  185877. .IP \(bu 2
  185878. \fBPR\fP \fI\%#42555\fP: (\fI\%Ch3LL\fP) add changelog to 2017.7.1 release notes
  185879. @ \fI2017\-07\-26 14:57:43 UTC\fP
  185880. .INDENT 2.0
  185881. .IP \(bu 2
  185882. 1d93e92194 Merge pull request \fI\%#42555\fP from Ch3LL/7.1_add_changelog
  185883. .IP \(bu 2
  185884. fb69e71093 add changelog to 2017.7.1 release notes
  185885. .UNINDENT
  185886. .IP \(bu 2
  185887. \fBPR\fP \fI\%#42266\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_file\fP for Windows
  185888. @ \fI2017\-07\-25 20:26:32 UTC\fP
  185889. .INDENT 2.0
  185890. .IP \(bu 2
  185891. 07c2793e86 Merge pull request \fI\%#42266\fP from twangboy/win_unit_states_test_file
  185892. .IP \(bu 2
  185893. 669aaee10d Mock file exists properly
  185894. .IP \(bu 2
  185895. a4231c9827 Fix ret mock for linux
  185896. .IP \(bu 2
  185897. 0c484f8979 Fix unit tests on Windows
  185898. .UNINDENT
  185899. .IP \(bu 2
  185900. \fBPR\fP \fI\%#42484\fP: (\fI\%shengis\fP) Fix a potential Exception with an explicit error message
  185901. @ \fI2017\-07\-25 18:34:12 UTC\fP
  185902. .INDENT 2.0
  185903. .IP \(bu 2
  185904. df417eae17 Merge pull request \fI\%#42484\fP from shengis/fix\-explicit\-error\-msg\-x509\-sign\-remote
  185905. .IP \(bu 2
  185906. 0b548c72e1 Fix a potential Exception with an explicit error message
  185907. .UNINDENT
  185908. .IP \(bu 2
  185909. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#396\fP: (\fI\%Ch3LL\fP) Python3 Fix Test: JoyentTest.test_instance (refs: \fI\%#42529\fP)
  185910. .IP \(bu 2
  185911. \fBISSUE\fP \fI\%#41720\fP: (\fI\%rallytime\fP) [Py3] Some salt\-cloud drivers do not work using Python 3 (refs: \fI\%#42529\fP)
  185912. .IP \(bu 2
  185913. \fBPR\fP \fI\%#42529\fP: (\fI\%gtmanfred\fP) Fix joyent for python3
  185914. @ \fI2017\-07\-25 16:37:48 UTC\fP
  185915. .INDENT 2.0
  185916. .IP \(bu 2
  185917. 0f25ec76f9 Merge pull request \fI\%#42529\fP from gtmanfred/2017.7
  185918. .IP \(bu 2
  185919. b7ebb4d81a these drivers do not actually have an issue.
  185920. .IP \(bu 2
  185921. e90ca7a114 use salt encoding for joyent on 2017.7
  185922. .UNINDENT
  185923. .IP \(bu 2
  185924. \fBPR\fP \fI\%#42465\fP: (\fI\%garethgreenaway\fP) [2017.7] Small fix to modules/git.py
  185925. @ \fI2017\-07\-24 17:24:55 UTC\fP
  185926. .INDENT 2.0
  185927. .IP \(bu 2
  185928. 488457c5a0 Merge pull request \fI\%#42465\fP from garethgreenaway/2017_7_remove_tmp_identity_file
  185929. .IP \(bu 2
  185930. 1920dc6079 Uncomment the line that removes the temporary identity file.
  185931. .UNINDENT
  185932. .IP \(bu 2
  185933. \fBISSUE\fP \fI\%#23516\fP: (\fI\%dkiser\fP) BUG: cron job scheduler sporadically works (refs: \fI\%#42077\fP)
  185934. .IP \(bu 2
  185935. \fBPR\fP \fI\%#42107\fP: (\fI\%vutny\fP) [2017.7] Fix scheduled jobs if \fIwhen\fP parameter is a list
  185936. @ \fI2017\-07\-24 17:04:12 UTC\fP
  185937. .INDENT 2.0
  185938. .IP \(bu 2
  185939. \fBPR\fP \fI\%#42077\fP: (\fI\%vutny\fP) Fix scheduled job run on Master if \fIwhen\fP parameter is a list (refs: \fI\%#42107\fP)
  185940. .IP \(bu 2
  185941. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  185942. .IP \(bu 2
  185943. 4f044999fa Merge pull request \fI\%#42107\fP from vutny/2017.7\-fix\-jobs\-scheduled\-with\-whens
  185944. .IP \(bu 2
  185945. 905be493d4 [2017.7] Fix scheduled jobs if \fIwhen\fP parameter is a list
  185946. .UNINDENT
  185947. .IP \(bu 2
  185948. \fBPR\fP \fI\%#42506\fP: (\fI\%terminalmage\fP) Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner
  185949. @ \fI2017\-07\-24 16:59:21 UTC\fP
  185950. .INDENT 2.0
  185951. .IP \(bu 2
  185952. 6eaa0763e1 Merge pull request \fI\%#42506\fP from terminalmage/fix\-git\-pillar\-runner
  185953. .IP \(bu 2
  185954. 6352f447ce Add PER_REMOTE_ONLY to init_remotes call in git_pillar runner
  185955. .UNINDENT
  185956. .IP \(bu 2
  185957. \fBPR\fP \fI\%#42502\fP: (\fI\%shengis\fP) Fix azurerm query to show IPs
  185958. @ \fI2017\-07\-24 15:54:45 UTC\fP
  185959. .INDENT 2.0
  185960. .IP \(bu 2
  185961. b88e645f10 Merge pull request \fI\%#42502\fP from shengis/fix_azurerm_request_ips
  185962. .IP \(bu 2
  185963. 92f1890701 Fix azurerm query to show IPs
  185964. .UNINDENT
  185965. .IP \(bu 2
  185966. \fBPR\fP \fI\%#42180\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_timezone\fP for Windows
  185967. @ \fI2017\-07\-24 14:46:16 UTC\fP
  185968. .INDENT 2.0
  185969. .IP \(bu 2
  185970. c793d83d26 Merge pull request \fI\%#42180\fP from twangboy/win_unit_test_timezone
  185971. .IP \(bu 2
  185972. 832a3d86dd Skip tests that use os.symlink on Windows
  185973. .UNINDENT
  185974. .IP \(bu 2
  185975. \fBPR\fP \fI\%#42474\fP: (\fI\%whiteinge\fP) Cmd arg kwarg parsing test
  185976. @ \fI2017\-07\-24 14:13:30 UTC\fP
  185977. .INDENT 2.0
  185978. .IP \(bu 2
  185979. \fBPR\fP \fI\%#39646\fP: (\fI\%terminalmage\fP) Handle deprecation of passing string args to load_args_and_kwargs (refs: \fI\%#42474\fP)
  185980. .IP \(bu 2
  185981. 083ff00410 Merge pull request \fI\%#42474\fP from whiteinge/cmd\-arg\-kwarg\-parsing\-test
  185982. .IP \(bu 2
  185983. 0cc0c0967a Lint fixes
  185984. .IP \(bu 2
  185985. 66093738c8 Add back support for string kwargs
  185986. .IP \(bu 2
  185987. 622ff5be40 Add LocalClient.cmd test for arg/kwarg parsing
  185988. .IP \(bu 2
  185989. 9f4eb80d90 Add a test.arg variant that cleans the pub kwargs by default
  185990. .UNINDENT
  185991. .IP \(bu 2
  185992. \fBPR\fP \fI\%#42425\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  185993. @ \fI2017\-07\-21 22:43:41 UTC\fP
  185994. .INDENT 2.0
  185995. .IP \(bu 2
  185996. c91a5e539e Merge pull request \fI\%#42425\fP from rallytime/merge\-2017.7
  185997. .IP \(bu 2
  185998. ea457aa0a5 Remove ALIASES block from template util
  185999. .IP \(bu 2
  186000. c673b64583 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186001. .INDENT 2.0
  186002. .IP \(bu 2
  186003. 42bb1a64ca Merge pull request \fI\%#42350\fP from twangboy/win_fix_ver_grains_2016.11
  186004. .INDENT 2.0
  186005. .IP \(bu 2
  186006. 8c048403d7 Detect Server OS with a desktop release name
  186007. .UNINDENT
  186008. .IP \(bu 2
  186009. 0a72e56f6b Merge pull request \fI\%#42356\fP from meaksh/2016.11\-AliasesLoader\-wrapper\-fix
  186010. .INDENT 2.0
  186011. .IP \(bu 2
  186012. 915d94219e Allow to check whether a function is available on the AliasesLoader wrapper
  186013. .UNINDENT
  186014. .IP \(bu 2
  186015. 10eb7b7a79 Merge pull request \fI\%#42368\fP from twangboy/win_fix_build_2016.11
  186016. .INDENT 2.0
  186017. .IP \(bu 2
  186018. a7c910c31e Remove build and dist directories before install
  186019. .UNINDENT
  186020. .IP \(bu 2
  186021. 016189f62f Merge pull request \fI\%#42370\fP from rallytime/merge\-2016.11
  186022. .INDENT 2.0
  186023. .IP \(bu 2
  186024. 0aa5dde1de Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  186025. .IP \(bu 2
  186026. e9b0f20f8a Merge pull request \fI\%#42359\fP from Ch3LL/doc\-update\-2016.3
  186027. .INDENT 2.0
  186028. .IP \(bu 2
  186029. dc85b5edbe [2016.3] Update version numbers in doc config for 2017.7.0 release
  186030. .UNINDENT
  186031. .UNINDENT
  186032. .IP \(bu 2
  186033. f06a6f1796 Merge pull request \fI\%#42360\fP from Ch3LL/doc\-update\-2016.11
  186034. .INDENT 2.0
  186035. .IP \(bu 2
  186036. b90b7a7506 [2016.11] Update version numbers in doc config for 2017.7.0 release
  186037. .UNINDENT
  186038. .IP \(bu 2
  186039. e0595b0a0f Merge pull request \fI\%#42319\fP from rallytime/config\-docs
  186040. .INDENT 2.0
  186041. .IP \(bu 2
  186042. b40f980632 Add more documentation for config options that are missing from master/minion docs
  186043. .UNINDENT
  186044. .IP \(bu 2
  186045. 78940400e3 Merge pull request \fI\%#42352\fP from CorvinM/issue42333
  186046. .INDENT 2.0
  186047. .IP \(bu 2
  186048. 526b6ee14d Multiple documentation fixes
  186049. .UNINDENT
  186050. .UNINDENT
  186051. .UNINDENT
  186052. .IP \(bu 2
  186053. \fBISSUE\fP \fI\%#42357\fP: (\fI\%Giandom\fP) Salt pillarenv problem with slack engine (refs: \fI\%#42443\fP, \fI\%#42444\fP)
  186054. .IP \(bu 2
  186055. \fBPR\fP \fI\%#42444\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to slack engine
  186056. @ \fI2017\-07\-21 22:03:48 UTC\fP
  186057. .INDENT 2.0
  186058. .IP \(bu 2
  186059. 10e4d9234b Merge pull request \fI\%#42444\fP from garethgreenaway/42357_2017_7_pass_args_kwargs_correctly
  186060. .IP \(bu 2
  186061. f411cfc2a9 Updating the slack engine in 2017.7 to pass the args and kwrags correctly to LocalClient
  186062. .UNINDENT
  186063. .IP \(bu 2
  186064. \fBPR\fP \fI\%#42461\fP: (\fI\%rallytime\fP) Bump warning version from Oxygen to Fluorine in roster cache
  186065. @ \fI2017\-07\-21 21:33:25 UTC\fP
  186066. .INDENT 2.0
  186067. .IP \(bu 2
  186068. 723be49fac Merge pull request \fI\%#42461\fP from rallytime/bump\-roster\-cache\-deprecations
  186069. .IP \(bu 2
  186070. c0df0137f5 Bump warning version from Oxygen to Fluorine in roster cache
  186071. .UNINDENT
  186072. .IP \(bu 2
  186073. \fBISSUE\fP \fI\%#42374\fP: (\fI\%tyhunt99\fP) [2017.7.0] salt\-run mange.versions throws exception if minion is offline or unresponsive (refs: \fI\%#42436\fP)
  186074. .IP \(bu 2
  186075. \fBPR\fP \fI\%#42436\fP: (\fI\%garethgreenaway\fP) Fixes to versions function in manage runner
  186076. @ \fI2017\-07\-21 19:41:07 UTC\fP
  186077. .INDENT 2.0
  186078. .IP \(bu 2
  186079. 09521602c1 Merge pull request \fI\%#42436\fP from garethgreenaway/42374_manage_runner_minion_offline
  186080. .IP \(bu 2
  186081. 0fd39498c0 Updating the versions function inside the manage runner to account for when a minion is offline and we are unable to determine its version.
  186082. .UNINDENT
  186083. .IP \(bu 2
  186084. \fBISSUE\fP \fI\%#42427\fP: (\fI\%grichmond\-salt\fP) Issue Passing Variables created from load_json as Inline Pillar Between States (refs: \fI\%#42435\fP)
  186085. .IP \(bu 2
  186086. \fBPR\fP \fI\%#42435\fP: (\fI\%terminalmage\fP) Modify our custom YAML loader to treat unicode literals as unicode strings (refs: \fI\%#42812\fP)
  186087. @ \fI2017\-07\-21 19:40:34 UTC\fP
  186088. .INDENT 2.0
  186089. .IP \(bu 2
  186090. 54193ea543 Merge pull request \fI\%#42435\fP from terminalmage/issue42427
  186091. .IP \(bu 2
  186092. 31273c7ec1 Modify our custom YAML loader to treat unicode literals as unicode strings
  186093. .UNINDENT
  186094. .IP \(bu 2
  186095. \fBISSUE\fP \fI\%#42381\fP: (\fI\%zebooka\fP) Git.detached broken in 2017.7.0 (refs: \fI\%#42399\fP)
  186096. .IP \(bu 2
  186097. \fBISSUE\fP \fI\%#38878\fP: (\fI\%tomlaredo\fP) [Naming consistency] git.latest "rev" option VS git.detached "ref" option (refs: \fI\%#38898\fP)
  186098. .IP \(bu 2
  186099. \fBPR\fP \fI\%#42399\fP: (\fI\%rallytime\fP) Update old "ref" references to "rev" in git.detached state
  186100. @ \fI2017\-07\-21 19:38:59 UTC\fP
  186101. .INDENT 2.0
  186102. .IP \(bu 2
  186103. \fBPR\fP \fI\%#38898\fP: (\fI\%terminalmage\fP) git.detached: rename ref to rev for consistency (refs: \fI\%#42399\fP)
  186104. .IP \(bu 2
  186105. 0b3179135c Merge pull request \fI\%#42399\fP from rallytime/fix\-42381
  186106. .IP \(bu 2
  186107. d9d94fe02f Update old "ref" references to "rev" in git.detached state
  186108. .UNINDENT
  186109. .IP \(bu 2
  186110. \fBISSUE\fP \fI\%#42400\fP: (\fI\%Enquier\fP) Conflict in execution of passing pillar data to orch/reactor event executions 2017.7.0 (refs: \fI\%#42031\fP)
  186111. .IP \(bu 2
  186112. \fBPR\fP \fI\%#42031\fP: (\fI\%skizunov\fP) Fix: Reactor emits critical error
  186113. @ \fI2017\-07\-21 19:38:34 UTC\fP
  186114. .INDENT 2.0
  186115. .IP \(bu 2
  186116. bd4adb483d Merge pull request \fI\%#42031\fP from skizunov/develop3
  186117. .IP \(bu 2
  186118. 540977b4b1 Fix: Reactor emits critical error
  186119. .UNINDENT
  186120. .IP \(bu 2
  186121. \fBISSUE\fP \fI\%#41949\fP: (\fI\%jrporcaro\fP) Event returner doesn\(aqt work with Windows Master (refs: \fI\%#42027\fP)
  186122. .IP \(bu 2
  186123. \fBPR\fP \fI\%#42027\fP: (\fI\%gtmanfred\fP) import salt.minion for EventReturn for Windows
  186124. @ \fI2017\-07\-21 19:37:03 UTC\fP
  186125. .INDENT 2.0
  186126. .IP \(bu 2
  186127. 3abf7ad7d7 Merge pull request \fI\%#42027\fP from gtmanfred/2017.7
  186128. .IP \(bu 2
  186129. fd4458b6c7 import salt.minion for EventReturn for Windows
  186130. .UNINDENT
  186131. .IP \(bu 2
  186132. \fBPR\fP \fI\%#42454\fP: (\fI\%terminalmage\fP) Document future renaming of new rand_str jinja filter
  186133. @ \fI2017\-07\-21 18:47:51 UTC\fP
  186134. .INDENT 2.0
  186135. .IP \(bu 2
  186136. 994d3dc74a Merge pull request \fI\%#42454\fP from terminalmage/jinja\-docs\-2017.7
  186137. .IP \(bu 2
  186138. 98b661406e Document future renaming of new rand_str jinja filter
  186139. .UNINDENT
  186140. .IP \(bu 2
  186141. \fBPR\fP \fI\%#42452\fP: (\fI\%Ch3LL\fP) update windows urls to new py2/py3 naming scheme
  186142. @ \fI2017\-07\-21 17:20:47 UTC\fP
  186143. .INDENT 2.0
  186144. .IP \(bu 2
  186145. 4480075129 Merge pull request \fI\%#42452\fP from Ch3LL/fix_url_windows
  186146. .IP \(bu 2
  186147. 3f4a918f73 update windows urls to new py2/py3 naming scheme
  186148. .UNINDENT
  186149. .IP \(bu 2
  186150. \fBISSUE\fP \fI\%#42404\fP: (\fI\%gabekahen\fP) [2017.7] file.managed with cmd_check "No such file or directory" (refs: \fI\%#42411\fP)
  186151. .IP \(bu 2
  186152. \fBISSUE\fP \fI\%#33708\fP: (\fI\%pepinje\fP) visudo check command leaves cache file in /tmp (refs: \fI\%#42411\fP, \fI\%#38063\fP)
  186153. .IP \(bu 2
  186154. \fBPR\fP \fI\%#42411\fP: (\fI\%seedickcode\fP) Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  186155. @ \fI2017\-07\-20 21:59:17 UTC\fP
  186156. .INDENT 2.0
  186157. .IP \(bu 2
  186158. \fBPR\fP \fI\%#38063\fP: (\fI\%llua\fP) tmp file clean up in file.manage \- fix for \fI\%#33708\fP (refs: \fI\%#42411\fP)
  186159. .IP \(bu 2
  186160. 33e90be1fe Merge pull request \fI\%#42411\fP from seedickcode/check_cmd_fix
  186161. .IP \(bu 2
  186162. 4ae3911f01 Fix file.managed check_cmd file not found \- Issue \fI\%#42404\fP
  186163. .UNINDENT
  186164. .IP \(bu 2
  186165. \fBPR\fP \fI\%#42409\fP: (\fI\%twangboy\fP) Add Scripts to build Py3 on Mac
  186166. @ \fI2017\-07\-20 21:36:34 UTC\fP
  186167. .INDENT 2.0
  186168. .IP \(bu 2
  186169. edde31376a Merge pull request \fI\%#42409\fP from twangboy/mac_py3_scripts
  186170. .IP \(bu 2
  186171. ac0e04af72 Remove build and dist, sign pkgs
  186172. .IP \(bu 2
  186173. 9d66e273c4 Fix hard coded pip path
  186174. .IP \(bu 2
  186175. 7b8d6cbbd2 Add support for Py3
  186176. .IP \(bu 2
  186177. aa4eed93c8 Update Python and other reqs
  186178. .UNINDENT
  186179. .IP \(bu 2
  186180. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  186181. .IP \(bu 2
  186182. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42573\fP)
  186183. @ \fI2017\-07\-20 21:32:24 UTC\fP
  186184. .INDENT 2.0
  186185. .IP \(bu 2
  186186. 82982f940d Merge pull request \fI\%#42433\fP from terminalmage/issue42403
  186187. .UNINDENT
  186188. .IP \(bu 2
  186189. \fBPR\fP \fI\%#42408\fP: (\fI\%CorvinM\fP) Fix documentation misformat in salt.states.file.replace
  186190. @ \fI2017\-07\-20 00:45:43 UTC\fP
  186191. .INDENT 2.0
  186192. .IP \(bu 2
  186193. a71938cefe Merge pull request \fI\%#42408\fP from CorvinM/file\-replace\-doc\-fix
  186194. .IP \(bu 2
  186195. 246a2b3e74 Fix documentation misformat in salt.states.file.replace
  186196. .UNINDENT
  186197. .IP \(bu 2
  186198. \fBPR\fP \fI\%#42347\fP: (\fI\%twangboy\fP) Fixes problem with Version and OS Release related grains on certain versions of Python
  186199. @ \fI2017\-07\-19 17:05:43 UTC\fP
  186200. .INDENT 2.0
  186201. .IP \(bu 2
  186202. d385dfd19d Merge pull request \fI\%#42347\fP from twangboy/win_fix_ver_grains
  186203. .IP \(bu 2
  186204. ef1f663fc9 Detect server OS with a desktop release name
  186205. .UNINDENT
  186206. .IP \(bu 2
  186207. \fBPR\fP \fI\%#42366\fP: (\fI\%twangboy\fP) Remove build and dist directories before install
  186208. @ \fI2017\-07\-19 16:37:41 UTC\fP
  186209. .INDENT 2.0
  186210. .IP \(bu 2
  186211. eb9e4206c9 Merge pull request \fI\%#42366\fP from twangboy/win_fix_build
  186212. .IP \(bu 2
  186213. 0946002713 Add blank line after delete
  186214. .IP \(bu 2
  186215. f7c0bb4f46 Remove build and dist directories before install
  186216. .UNINDENT
  186217. .IP \(bu 2
  186218. \fBPR\fP \fI\%#42373\fP: (\fI\%Ch3LL\fP) Add initial 2017.7.1 Release Notes File
  186219. @ \fI2017\-07\-19 16:28:46 UTC\fP
  186220. .INDENT 2.0
  186221. .IP \(bu 2
  186222. af7820f25d Merge pull request \fI\%#42373\fP from Ch3LL/add_2017.7.1
  186223. .IP \(bu 2
  186224. ce1c1b6d28 Add initial 2017.7.1 Release Notes File
  186225. .UNINDENT
  186226. .IP \(bu 2
  186227. \fBPR\fP \fI\%#42150\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pip\fP for Windows
  186228. @ \fI2017\-07\-19 16:01:17 UTC\fP
  186229. .INDENT 2.0
  186230. .IP \(bu 2
  186231. 59e012b485 Merge pull request \fI\%#42150\fP from twangboy/win_unit_test_pip
  186232. .IP \(bu 2
  186233. 4ee24202fc Fix unit tests for test_pip
  186234. .UNINDENT
  186235. .IP \(bu 2
  186236. \fBPR\fP \fI\%#42154\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_reg_win\fP for Windows
  186237. @ \fI2017\-07\-19 16:00:38 UTC\fP
  186238. .INDENT 2.0
  186239. .IP \(bu 2
  186240. ade25c6b34 Merge pull request \fI\%#42154\fP from twangboy/win_unit_test_reg
  186241. .IP \(bu 2
  186242. 00d9a52802 Fix problem with handling REG_QWORD in list values
  186243. .UNINDENT
  186244. .IP \(bu 2
  186245. \fBPR\fP \fI\%#42182\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_useradd\fP for Windows
  186246. @ \fI2017\-07\-19 15:55:33 UTC\fP
  186247. .INDENT 2.0
  186248. .IP \(bu 2
  186249. 07593675e2 Merge pull request \fI\%#42182\fP from twangboy/win_unit_test_useradd
  186250. .IP \(bu 2
  186251. 8260a71c07 Disable tests that require pwd in Windows
  186252. .UNINDENT
  186253. .IP \(bu 2
  186254. \fBPR\fP \fI\%#42364\fP: (\fI\%twangboy\fP) Windows Package notes for 2017.7.0
  186255. @ \fI2017\-07\-18 19:24:45 UTC\fP
  186256. .INDENT 2.0
  186257. .IP \(bu 2
  186258. a175c40c1d Merge pull request \fI\%#42364\fP from twangboy/release_notes_2017.7.0
  186259. .IP \(bu 2
  186260. 96517d1355 Add note about patched windows packages
  186261. .UNINDENT
  186262. .IP \(bu 2
  186263. \fBPR\fP \fI\%#42361\fP: (\fI\%Ch3LL\fP) [2017.7] Update version numbers in doc config for 2017.7.0 release
  186264. @ \fI2017\-07\-18 19:23:22 UTC\fP
  186265. .INDENT 2.0
  186266. .IP \(bu 2
  186267. 4dfe50e558 Merge pull request \fI\%#42361\fP from Ch3LL/doc\-update\-2017.7
  186268. .IP \(bu 2
  186269. dc5bb301f7 [2017.7] Update version numbers in doc config for 2017.7.0 release
  186270. .UNINDENT
  186271. .IP \(bu 2
  186272. \fBPR\fP \fI\%#42363\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186273. @ \fI2017\-07\-18 18:40:48 UTC\fP
  186274. .INDENT 2.0
  186275. .IP \(bu 2
  186276. 587138d771 Merge pull request \fI\%#42363\fP from rallytime/merge\-2017.7
  186277. .IP \(bu 2
  186278. 7aa31ff030 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  186279. .INDENT 2.0
  186280. .IP \(bu 2
  186281. b256001760 Merge pull request \fI\%#42353\fP from terminalmage/fix\-git\-test
  186282. .INDENT 2.0
  186283. .IP \(bu 2
  186284. 14cf6ce322 is_windows is a function, not a propery/attribute
  186285. .UNINDENT
  186286. .IP \(bu 2
  186287. 866a1febb4 Merge pull request \fI\%#42264\fP from rallytime/fix\-41116
  186288. .INDENT 2.0
  186289. .IP \(bu 2
  186290. bd638880e3 Add mono\-spacing to salt\-minion reference for consistency
  186291. .IP \(bu 2
  186292. 30d62f43da Update minion restart section in FAQ doc for windows
  186293. .UNINDENT
  186294. .IP \(bu 2
  186295. 9a707088ad Merge pull request \fI\%#42275\fP from terminalmage/issue42194
  186296. .INDENT 2.0
  186297. .IP \(bu 2
  186298. 663874908a pkg.installed: pack name/version into pkgs argument
  186299. .UNINDENT
  186300. .IP \(bu 2
  186301. e588f235e0 Merge pull request \fI\%#42269\fP from rallytime/fix\-41721
  186302. .INDENT 2.0
  186303. .IP \(bu 2
  186304. f2250d474a Add a note about using different styles of quotes.
  186305. .IP \(bu 2
  186306. 38d9b3d553 Add some clarity to "multiple quotes" section of yaml docs
  186307. .UNINDENT
  186308. .IP \(bu 2
  186309. 5aaa214a75 Merge pull request \fI\%#42282\fP from rallytime/fix\-42152
  186310. .INDENT 2.0
  186311. .IP \(bu 2
  186312. f032223843 Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  186313. .UNINDENT
  186314. .IP \(bu 2
  186315. fb5697a4bc Merge pull request \fI\%#42308\fP from lubyou/42295\-fix\-file\-absent\-windows
  186316. .INDENT 2.0
  186317. .IP \(bu 2
  186318. 026ccf401a Force file removal on Windows. Fixes \fI\%#42295\fP
  186319. .UNINDENT
  186320. .IP \(bu 2
  186321. da2a8a518f Merge pull request \fI\%#42314\fP from rallytime/fix\-42267
  186322. .INDENT 2.0
  186323. .IP \(bu 2
  186324. c406046940 Add clarification to salt ssh docs about key auto\-generation.
  186325. .UNINDENT
  186326. .IP \(bu 2
  186327. acadd54013 Merge pull request \fI\%#41945\fP from garethgreenaway/41936_allow_identity_files_with_user
  186328. .INDENT 2.0
  186329. .IP \(bu 2
  186330. 44841e5626 Moving the call to cp.get_file inside the with block to ensure the umask is preserved when we grab the file.
  186331. .IP \(bu 2
  186332. f9ba60eed8 Merge pull request \fI\%#1\fP from terminalmage/pr\-41945
  186333. .INDENT 2.0
  186334. .IP \(bu 2
  186335. 1b6026177c Restrict set_umask to mkstemp call only
  186336. .UNINDENT
  186337. .IP \(bu 2
  186338. 68549f3496 Fixing umask to we can set files as executable.
  186339. .IP \(bu 2
  186340. 4949bf3ff3 Updating to swap on the new salt.utils.files.set_umask context_manager
  186341. .IP \(bu 2
  186342. 8faa9f6d92 Updating PR with requested changes.
  186343. .IP \(bu 2
  186344. 494765e939 Updating the git module to allow an identity file to be used when passing the user parameter
  186345. .UNINDENT
  186346. .IP \(bu 2
  186347. f90e04a2bc Merge pull request \fI\%#42289\fP from CorvinM/bp\-41543
  186348. .INDENT 2.0
  186349. .IP \(bu 2
  186350. 357dc22f05 Fix user creation with empty password
  186351. .UNINDENT
  186352. .IP \(bu 2
  186353. a91a3f81b1 Merge pull request \fI\%#42123\fP from vutny/fix\-master\-utils\-import
  186354. .INDENT 2.0
  186355. .IP \(bu 2
  186356. 6bb8b8f98c Add missing doc for \fButils_dirs\fP Minion config option
  186357. .IP \(bu 2
  186358. f1bc58f6d5 Utils: add example of module import
  186359. .UNINDENT
  186360. .IP \(bu 2
  186361. e2aa5114e4 Merge pull request \fI\%#42261\fP from rallytime/minor\-doc\-fix
  186362. .INDENT 2.0
  186363. .IP \(bu 2
  186364. 8c76bbb53d Some minor doc fixes for dnsutil module so they\(aqll render correctly
  186365. .UNINDENT
  186366. .IP \(bu 2
  186367. 3e9dfbc9cc Merge pull request \fI\%#42262\fP from rallytime/bp\-42224
  186368. .INDENT 2.0
  186369. .IP \(bu 2
  186370. c31ded341c Remove duplicate instruction in Openstack Rackspace config example
  186371. .UNINDENT
  186372. .IP \(bu 2
  186373. 7780579c36 Merge pull request \fI\%#42181\fP from garethgreenaway/42137_backport_fix_from_2017_7
  186374. .INDENT 2.0
  186375. .IP \(bu 2
  186376. a34970b45b Back porting the fix for 2017.7 that ensures the order of the names parameter.
  186377. .UNINDENT
  186378. .IP \(bu 2
  186379. 72537868a6 Merge pull request \fI\%#42253\fP from gtmanfred/2016.11
  186380. .INDENT 2.0
  186381. .IP \(bu 2
  186382. 53e25760be Only use unassociated ips when unable to allocate
  186383. .UNINDENT
  186384. .IP \(bu 2
  186385. b2a4698b5d Merge pull request \fI\%#42252\fP from UtahDave/2016.11local
  186386. .INDENT 2.0
  186387. .IP \(bu 2
  186388. e6a9563d47 simple doc updates
  186389. .UNINDENT
  186390. .IP \(bu 2
  186391. 781fe13be7 Merge pull request \fI\%#42235\fP from astronouth7303/patch\-1\-2016.3
  186392. .INDENT 2.0
  186393. .IP \(bu 2
  186394. 4cb51bd03a Make note of dig partial requirement.
  186395. .IP \(bu 2
  186396. 08e7d8351a Abolish references to \fIdig\fP in examples.
  186397. .UNINDENT
  186398. .IP \(bu 2
  186399. 83cbd76f16 Merge pull request \fI\%#42215\fP from twangboy/win_iis_docs
  186400. .INDENT 2.0
  186401. .IP \(bu 2
  186402. c07e22041a Add missing config to example
  186403. .UNINDENT
  186404. .IP \(bu 2
  186405. 274946ab00 Merge pull request \fI\%#42211\fP from terminalmage/issue40928
  186406. .INDENT 2.0
  186407. .IP \(bu 2
  186408. 22a18fa2ed Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  186409. .UNINDENT
  186410. .IP \(bu 2
  186411. 89261cf06c Merge pull request \fI\%#42173\fP from rallytime/bp\-37424
  186412. .INDENT 2.0
  186413. .IP \(bu 2
  186414. 01addb6053 Avoid Early Convert ret[\(aqcomment\(aq] to String
  186415. .UNINDENT
  186416. .IP \(bu 2
  186417. 3b17fb7f83 Merge pull request \fI\%#42175\fP from rallytime/bp\-39366
  186418. .INDENT 2.0
  186419. .IP \(bu 2
  186420. 53f7b987e8 Pass sig to service.status in after_toggle
  186421. .UNINDENT
  186422. .IP \(bu 2
  186423. ea16f47f0a Merge pull request \fI\%#42172\fP from rallytime/merge\-2016.11
  186424. .INDENT 2.0
  186425. .IP \(bu 2
  186426. b1fa332a11 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  186427. .INDENT 2.0
  186428. .IP \(bu 2
  186429. 8fa1fa5bb1 Merge pull request \fI\%#42155\fP from phsteve/doc\-fix\-puppet
  186430. .IP \(bu 2
  186431. fb2cb78a31 Fix docs for puppet.plugin_sync so code\-block renders properly and sync is spelled consistently
  186432. .UNINDENT
  186433. .UNINDENT
  186434. .IP \(bu 2
  186435. 6307b9873f Merge pull request \fI\%#42176\fP from rallytime/bp\-42109
  186436. .INDENT 2.0
  186437. .IP \(bu 2
  186438. 686926daf7 Update aws.rst \- add Debian default username
  186439. .UNINDENT
  186440. .IP \(bu 2
  186441. 28c4e4c3b7 Merge pull request \fI\%#42095\fP from terminalmage/docker\-login\-debugging
  186442. .INDENT 2.0
  186443. .IP \(bu 2
  186444. bd27870a71 Add debug logging to dockerng.login
  186445. .UNINDENT
  186446. .IP \(bu 2
  186447. 2b754bc5af Merge pull request \fI\%#42119\fP from terminalmage/issue42116
  186448. .INDENT 2.0
  186449. .IP \(bu 2
  186450. 9a268949e3 Add integration test for 42116
  186451. .IP \(bu 2
  186452. 1bb42bb609 Fix regression when CLI pillar override is used with salt\-call
  186453. .UNINDENT
  186454. .IP \(bu 2
  186455. 8c0a83cbb5 Merge pull request \fI\%#42121\fP from terminalmage/issue42114
  186456. .INDENT 2.0
  186457. .IP \(bu 2
  186458. d14291267f Fix pillar.get when saltenv is passed
  186459. .UNINDENT
  186460. .IP \(bu 2
  186461. 687992c240 Merge pull request \fI\%#42094\fP from terminalmage/quiet\-exception
  186462. .INDENT 2.0
  186463. .IP \(bu 2
  186464. 47d61f4edf Prevent command from showing in exception when output_loglevel=quiet
  186465. .UNINDENT
  186466. .IP \(bu 2
  186467. dad255160c Merge pull request \fI\%#42163\fP from vutny/fix\-42115
  186468. .INDENT 2.0
  186469. .IP \(bu 2
  186470. b27b1e340a Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  186471. .UNINDENT
  186472. .IP \(bu 2
  186473. 2a8ae2b3b6 Merge pull request \fI\%#42164\fP from Ch3LL/fix_kerb_doc
  186474. .INDENT 2.0
  186475. .IP \(bu 2
  186476. 7c0fb248ec Fix kerberos create_keytab doc
  186477. .UNINDENT
  186478. .IP \(bu 2
  186479. 678d4d4098 Merge pull request \fI\%#42141\fP from rallytime/bp\-42098
  186480. .INDENT 2.0
  186481. .IP \(bu 2
  186482. bd80243233 Change repo_ng to repo\-ng
  186483. .UNINDENT
  186484. .IP \(bu 2
  186485. c8afd7a3c9 Merge pull request \fI\%#42140\fP from rallytime/bp\-42097
  186486. .INDENT 2.0
  186487. .IP \(bu 2
  186488. 9c4e132540 Import datetime
  186489. .IP \(bu 2
  186490. 1435bf177e require large timediff for ipv6 warning
  186491. .UNINDENT
  186492. .IP \(bu 2
  186493. c239664c8b Merge pull request \fI\%#42142\fP from Ch3LL/change_builds
  186494. .INDENT 2.0
  186495. .IP \(bu 2
  186496. e1694af39c Update builds available for rc1
  186497. .UNINDENT
  186498. .UNINDENT
  186499. .UNINDENT
  186500. .IP \(bu 2
  186501. \fBPR\fP \fI\%#42340\fP: (\fI\%isbm\fP) Bugfix: Jobs scheduled to run at a future time stay pending for Salt …
  186502. @ \fI2017\-07\-18 18:13:36 UTC\fP
  186503. .INDENT 2.0
  186504. .IP \(bu 2
  186505. 55b7a5cb4a Merge pull request \fI\%#42340\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-2017.7\-bsc1036125
  186506. .IP \(bu 2
  186507. 774d204d65 Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  186508. .UNINDENT
  186509. .IP \(bu 2
  186510. \fBPR\fP \fI\%#42327\fP: (\fI\%mirceaulinic\fP) Default skip_verify to False
  186511. @ \fI2017\-07\-18 18:04:36 UTC\fP
  186512. .INDENT 2.0
  186513. .IP \(bu 2
  186514. e72616c5f1 Merge pull request \fI\%#42327\fP from mirceaulinic/patch\-10
  186515. .IP \(bu 2
  186516. c830573a2c Trailing whitespaces
  186517. .IP \(bu 2
  186518. c83e6fc696 Default skip_verify to False
  186519. .UNINDENT
  186520. .IP \(bu 2
  186521. \fBISSUE\fP \fI\%#42151\fP: (\fI\%sjorge\fP) Doc errors in jinja doc for develop branch (refs: \fI\%#42179\fP)
  186522. .IP \(bu 2
  186523. \fBPR\fP \fI\%#42179\fP: (\fI\%rallytime\fP) Fix some documentation issues found in jinja filters doc topic
  186524. @ \fI2017\-07\-18 18:01:57 UTC\fP
  186525. .INDENT 2.0
  186526. .IP \(bu 2
  186527. ba799b2831 Merge pull request \fI\%#42179\fP from rallytime/fix\-42151
  186528. .IP \(bu 2
  186529. 798d29276e Add note about "to_bytes" jinja filter issues when using yaml_jinja renderer
  186530. .IP \(bu 2
  186531. 1bbff572ab Fix some documentation issues found in jinja filters doc topic
  186532. .UNINDENT
  186533. .IP \(bu 2
  186534. \fBISSUE\fP \fI\%#42076\fP: (\fI\%abulford\fP) dockerng.volume_present test looks as though it would cause a change (refs: \fI\%#42087\fP, \fI\%#42086\fP)
  186535. .IP \(bu 2
  186536. \fBPR\fP \fI\%#42087\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists
  186537. @ \fI2017\-07\-17 18:41:47 UTC\fP
  186538. .INDENT 2.0
  186539. .IP \(bu 2
  186540. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists (refs: \fI\%#42087\fP)
  186541. .IP \(bu 2
  186542. 8dbb93851d Merge pull request \fI\%#42087\fP from redmatter/fix\-dockerng\-volume\-present\-result\-2017.7
  186543. .IP \(bu 2
  186544. 2e1dc95500 Make result=true if Docker volume already exists
  186545. .UNINDENT
  186546. .IP \(bu 2
  186547. \fBISSUE\fP \fI\%#42166\fP: (\fI\%sjorge\fP) [2017.7.0rc1] jinja filter network_hosts fails on large IPv6 networks (refs: \fI\%#42186\fP)
  186548. .IP \(bu 2
  186549. \fBPR\fP \fI\%#42186\fP: (\fI\%rallytime\fP) Use long_range function for IPv6Network hosts() function
  186550. @ \fI2017\-07\-17 18:39:35 UTC\fP
  186551. .INDENT 2.0
  186552. .IP \(bu 2
  186553. c84d6db548 Merge pull request \fI\%#42186\fP from rallytime/fix\-42166
  186554. .IP \(bu 2
  186555. b8bcc0d599 Add note to various network_hosts docs about long_run for IPv6 networks
  186556. .IP \(bu 2
  186557. 11862743c2 Use long_range function for IPv6Network hosts() function
  186558. .UNINDENT
  186559. .IP \(bu 2
  186560. \fBPR\fP \fI\%#42210\fP: (\fI\%terminalmage\fP) Only pass a saltenv in orchestration if one was explicitly passed (2017.7)
  186561. @ \fI2017\-07\-17 18:22:39 UTC\fP
  186562. .INDENT 2.0
  186563. .IP \(bu 2
  186564. e7b79e0fd2 Merge pull request \fI\%#42210\fP from terminalmage/issue40928\-2017.7
  186565. .IP \(bu 2
  186566. 771ade5d73 Only pass a saltenv in orchestration if one was explicitly passed (2017.7)
  186567. .UNINDENT
  186568. .IP \(bu 2
  186569. \fBPR\fP \fI\%#42236\fP: (\fI\%mirceaulinic\fP) New option for napalm proxy/minion: provider
  186570. @ \fI2017\-07\-17 18:19:56 UTC\fP
  186571. .INDENT 2.0
  186572. .IP \(bu 2
  186573. 0e49021b0e Merge pull request \fI\%#42236\fP from cloudflare/napalm\-provider
  186574. .IP \(bu 2
  186575. 1ac69bd737 Document the provider option and rearrange the doc
  186576. .IP \(bu 2
  186577. 4bf4b14161 New option for napalm proxy/minion: provider
  186578. .UNINDENT
  186579. .IP \(bu 2
  186580. \fBPR\fP \fI\%#42257\fP: (\fI\%twangboy\fP) Fix \fIunit.pillar.test_git\fP for Windows
  186581. @ \fI2017\-07\-17 17:51:42 UTC\fP
  186582. .INDENT 2.0
  186583. .IP \(bu 2
  186584. 3ec5bb1c2f Merge pull request \fI\%#42257\fP from twangboy/win_unit_pillar_test_git
  186585. .IP \(bu 2
  186586. 45be32666a Add error\-handling function to shutil.rmtree
  186587. .UNINDENT
  186588. .IP \(bu 2
  186589. \fBPR\fP \fI\%#42258\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_environ\fP for Windows
  186590. @ \fI2017\-07\-17 17:50:38 UTC\fP
  186591. .INDENT 2.0
  186592. .IP \(bu 2
  186593. 36395625c2 Merge pull request \fI\%#42258\fP from twangboy/win_unit_states_tests_environ
  186594. .IP \(bu 2
  186595. 55b278c478 Mock the reg.read_value function
  186596. .UNINDENT
  186597. .IP \(bu 2
  186598. \fBPR\fP \fI\%#42265\fP: (\fI\%rallytime\fP) Gate boto_elb tests if proper version of moto isn\(aqt installed
  186599. @ \fI2017\-07\-17 17:47:52 UTC\fP
  186600. .INDENT 2.0
  186601. .IP \(bu 2
  186602. 894bdd2b19 Merge pull request \fI\%#42265\fP from rallytime/gate\-moto\-version
  186603. .IP \(bu 2
  186604. 78cdee51d5 Gate boto_elb tests if proper version of moto isn\(aqt installed
  186605. .UNINDENT
  186606. .IP \(bu 2
  186607. \fBPR\fP \fI\%#42277\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_winrepo\fP for Windows
  186608. @ \fI2017\-07\-17 17:37:07 UTC\fP
  186609. .INDENT 2.0
  186610. .IP \(bu 2
  186611. baf04f2a2d Merge pull request \fI\%#42277\fP from twangboy/win_unit_states_test_winrepo
  186612. .IP \(bu 2
  186613. ed89cd0b93 Use os.sep for path seps
  186614. .UNINDENT
  186615. .IP \(bu 2
  186616. \fBPR\fP \fI\%#42309\fP: (\fI\%terminalmage\fP) Change "TBD" in versionadded to "2017.7.0"
  186617. @ \fI2017\-07\-17 17:11:45 UTC\fP
  186618. .INDENT 2.0
  186619. .IP \(bu 2
  186620. be6b211683 Merge pull request \fI\%#42309\fP from terminalmage/fix\-versionadded
  186621. .IP \(bu 2
  186622. 603f5b7de6 Change "TBD" in versionadded to "2017.7.0"
  186623. .UNINDENT
  186624. .IP \(bu 2
  186625. \fBPR\fP \fI\%#42206\fP: (\fI\%rallytime\fP) [PY3] Fix test that is flaky in Python 3 (refs: \fI\%#42783\fP)
  186626. @ \fI2017\-07\-17 17:09:53 UTC\fP
  186627. .INDENT 2.0
  186628. .IP \(bu 2
  186629. acd29f9b38 Merge pull request \fI\%#42206\fP from rallytime/fix\-flaky\-test
  186630. .IP \(bu 2
  186631. 2be4865f48 [PY3] Fix test that is flaky in Python 3
  186632. .UNINDENT
  186633. .IP \(bu 2
  186634. \fBPR\fP \fI\%#42126\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  186635. @ \fI2017\-07\-17 17:07:19 UTC\fP
  186636. .INDENT 2.0
  186637. .IP \(bu 2
  186638. 8f1cb287cf Merge pull request \fI\%#42126\fP from rallytime/merge\-2017.7
  186639. .UNINDENT
  186640. .IP \(bu 2
  186641. \fBPR\fP \fI\%#42078\fP: (\fI\%damon\-atkins\fP) pkg.install and pkg.remove fix version number input.
  186642. @ \fI2017\-07\-05 06:04:57 UTC\fP
  186643. .INDENT 2.0
  186644. .IP \(bu 2
  186645. 4780d7830a Merge pull request \fI\%#42078\fP from damon\-atkins/fix_convert_flt_str_version_on_cmd_line
  186646. .IP \(bu 2
  186647. 09d37dd892 Fix comment typo
  186648. .IP \(bu 2
  186649. 7167549425 Handle version=None when converted to a string it becomes \(aqNone\(aq parm should default to empty string rather than None, it would fix better with existing code.
  186650. .IP \(bu 2
  186651. 4fb2bb1856 Fix typo
  186652. .IP \(bu 2
  186653. cf55c3361c pkg.install and pkg.remove on the command line take number version numbers, store them within a float. However version is a string, to support versions numbers like 1.3.4
  186654. .UNINDENT
  186655. .IP \(bu 2
  186656. \fBPR\fP \fI\%#42105\fP: (\fI\%Ch3LL\fP) Update releasecanddiate doc with new 2017.7.0rc1 Release
  186657. @ \fI2017\-07\-04 03:14:42 UTC\fP
  186658. .INDENT 2.0
  186659. .IP \(bu 2
  186660. 46d575acbc Merge pull request \fI\%#42105\fP from Ch3LL/update_rc
  186661. .IP \(bu 2
  186662. d4e7b91608 Update releasecanddiate doc with new 2017.7.0rc1 Release
  186663. .UNINDENT
  186664. .IP \(bu 2
  186665. \fBISSUE\fP \fI\%#41885\fP: (\fI\%astronouth7303\fP) Recommended pip installation outdated? (refs: \fI\%#42099\fP)
  186666. .IP \(bu 2
  186667. \fBPR\fP \fI\%#42099\fP: (\fI\%rallytime\fP) Remove references in docs to pip install salt\-cloud
  186668. @ \fI2017\-07\-03 22:13:44 UTC\fP
  186669. .INDENT 2.0
  186670. .IP \(bu 2
  186671. d38548bbbd Merge pull request \fI\%#42099\fP from rallytime/fix\-41885
  186672. .IP \(bu 2
  186673. c2822e05ad Remove references in docs to pip install salt\-cloud
  186674. .UNINDENT
  186675. .IP \(bu 2
  186676. \fBISSUE\fP \fI\%#42076\fP: (\fI\%abulford\fP) dockerng.volume_present test looks as though it would cause a change (refs: \fI\%#42087\fP, \fI\%#42086\fP)
  186677. .IP \(bu 2
  186678. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists (refs: \fI\%#42087\fP)
  186679. @ \fI2017\-07\-03 15:48:33 UTC\fP
  186680. .INDENT 2.0
  186681. .IP \(bu 2
  186682. 81d606a8cb Merge pull request \fI\%#42086\fP from redmatter/fix\-dockerng\-volume\-present\-result
  186683. .IP \(bu 2
  186684. 8d549685a7 Make result=true if Docker volume already exists
  186685. .UNINDENT
  186686. .IP \(bu 2
  186687. \fBISSUE\fP \fI\%#25842\fP: (\fI\%shikhartanwar\fP) Running salt\-minion as non\-root user to execute sudo commands always returns an error (refs: \fI\%#42021\fP)
  186688. .IP \(bu 2
  186689. \fBPR\fP \fI\%#42021\fP: (\fI\%gtmanfred\fP) Set concurrent to True when running states with sudo
  186690. @ \fI2017\-06\-30 21:02:15 UTC\fP
  186691. .INDENT 2.0
  186692. .IP \(bu 2
  186693. 7160697123 Merge pull request \fI\%#42021\fP from gtmanfred/2016.11
  186694. .IP \(bu 2
  186695. 26beb18aa5 Set concurrent to True when running states with sudo
  186696. .UNINDENT
  186697. .IP \(bu 2
  186698. \fBPR\fP \fI\%#42029\fP: (\fI\%terminalmage\fP) Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  186699. @ \fI2017\-06\-30 20:58:56 UTC\fP
  186700. .INDENT 2.0
  186701. .IP \(bu 2
  186702. b784fbbdf8 Merge pull request \fI\%#42029\fP from terminalmage/host_to_ips
  186703. .IP \(bu 2
  186704. 26f848e111 Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  186705. .UNINDENT
  186706. .IP \(bu 2
  186707. \fBPR\fP \fI\%#42055\fP: (\fI\%dmurphy18\fP) Upgrade support for gnupg v2.1 and higher
  186708. @ \fI2017\-06\-30 20:54:02 UTC\fP
  186709. .INDENT 2.0
  186710. .IP \(bu 2
  186711. e067020b9b Merge pull request \fI\%#42055\fP from dmurphy18/handle_gnupgv21
  186712. .IP \(bu 2
  186713. e20cea6350 Upgrade support for gnupg v2.1 and higher
  186714. .UNINDENT
  186715. .IP \(bu 2
  186716. \fBPR\fP \fI\%#42048\fP: (\fI\%Ch3LL\fP) Add initial 2016.11.7 Release Notes
  186717. @ \fI2017\-06\-30 16:00:05 UTC\fP
  186718. .INDENT 2.0
  186719. .IP \(bu 2
  186720. 74ba2abc48 Merge pull request \fI\%#42048\fP from Ch3LL/add_11.7
  186721. .IP \(bu 2
  186722. 1de5e008a0 Add initial 2016.11.7 Release Notes
  186723. .UNINDENT
  186724. .UNINDENT
  186725. .SS Salt 2017.7.3 Release Notes
  186726. .sp
  186727. Version 2017.7.3 is a bugfix release for 2017.7.0\&.
  186728. .SS Statistics
  186729. .INDENT 0.0
  186730. .IP \(bu 2
  186731. Total Merges: \fB501\fP
  186732. .IP \(bu 2
  186733. Total Issue References: \fB94\fP
  186734. .IP \(bu 2
  186735. Total PR References: \fB423\fP
  186736. .IP \(bu 2
  186737. Contributors: \fB86\fP (\fI\%3add3287\fP, \fI\%BenoitKnecht\fP, \fI\%Ch3LL\fP, \fI\%CorvinM\fP, \fI\%Da\-Juan\fP, \fI\%DmitryKuzmenko\fP, \fI\%Giandom\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%adelcast\fP, \fI\%amendlik\fP, \fI\%angeloudy\fP, \fI\%anlutro\fP, \fI\%arthurlogilab\fP, \fI\%basepi\fP, \fI\%benediktwerner\fP, \fI\%brejoc\fP, \fI\%cachedout\fP, \fI\%campbellmc\fP, \fI\%chnrxn\fP, \fI\%clan\fP, \fI\%corywright\fP, \fI\%damon\-atkins\fP, \fI\%dincamihai\fP, \fI\%dmurphy18\fP, \fI\%eliasp\fP, \fI\%eradman\fP, \fI\%forksaber\fP, \fI\%frogunder\fP, \fI\%gaborn57\fP, \fI\%garethgreenaway\fP, \fI\%golmaal\fP, \fI\%gracinet\fP, \fI\%gtmanfred\fP, \fI\%haam3r\fP, \fI\%isbm\fP, \fI\%jettero\fP, \fI\%jf\fP, \fI\%jubrad\fP, \fI\%keesbos\fP, \fI\%kris\-anderson\fP, \fI\%lomeroe\fP, \fI\%mateiw\fP, \fI\%mattLLVW\fP, \fI\%mephi42\fP, \fI\%mirceaulinic\fP, \fI\%mkurtak\fP, \fI\%morganwillcock\fP, \fI\%msummers42\fP, \fI\%mtorromeo\fP, \fI\%multani\fP, \fI\%mvivaldi\fP, \fI\%mz\-bmcqueen\fP, \fI\%nasenbaer13\fP, \fI\%nicholasmhughes\fP, \fI\%oarmstrong\fP, \fI\%pkruk\fP, \fI\%pratik705\fP, \fI\%psagers\fP, \fI\%rallytime\fP, \fI\%rbjorklin\fP, \fI\%rcallphin\fP, \fI\%renner\fP, \fI\%rhoths\fP, \fI\%richardsimko\fP, \fI\%rklaren\fP, \fI\%roaldnefs\fP, \fI\%s0undt3ch\fP, \fI\%samodid\fP, \fI\%skizunov\fP, \fI\%skjaro\fP, \fI\%steverweber\fP, \fI\%sumeetisp\fP, \fI\%t0fik\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%timfreund\fP, \fI\%timka\fP, \fI\%tkwilliams\fP, \fI\%twangboy\fP, \fI\%unthought\fP, \fI\%vernondcole\fP, \fI\%vutny\fP, \fI\%wedge\-jarrad\fP, \fI\%whytewolf\fP, \fI\%xuhcc\fP)
  186738. .UNINDENT
  186739. .SS Windows Changes
  186740. .SS \fBpkg\fP Execution Module\(ga
  186741. .sp
  186742. Significate changes (PR #43708 & #45390, damon\-atkins) have been made to the
  186743. pkg execution module. Users should test this release against their existing
  186744. package sls definition files.
  186745. .INDENT 0.0
  186746. .IP \(bu 2
  186747. \fBpkg.list_available\fP no longer
  186748. defaults to refreshing the winrepo meta database.
  186749. .IP \(bu 2
  186750. \fBpkg.install\fP without a \fBversion\fP
  186751. parameter no longer upgrades software if the software is already installed.
  186752. Use \fBpkg.install version=latest\fP (or simply use a \fBpkg.latest\fP state to get the old behavior.
  186753. .IP \(bu 2
  186754. \fBpkg.list_pkgs\fP now returns
  186755. multiple versions if software installed more than once.
  186756. .IP \(bu 2
  186757. \fBpkg.list_pkgs\fP now returns \fBNot
  186758. Found\fP when the version is not found instead of \fB(value not set)\fP which
  186759. matches the contents of the sls definitions.
  186760. .IP \(bu 2
  186761. \fBpkg.remove\fP will wait up to 3 seconds
  186762. (normally about a second) to detect changes in the registry after removing
  186763. software, improving reporting of version changes.
  186764. .IP \(bu 2
  186765. \fBpkg.remove\fP can remove \fBlatest\fP
  186766. software, if \fBlatest\fP is defined in sls definition.
  186767. .IP \(bu 2
  186768. Documentation was update for the execution module to match the style in new
  186769. versions, some corrections as well.
  186770. .IP \(bu 2
  186771. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  186772. called with a command line string instead of a list. Some sls files in
  186773. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  186774. (i.e. the use of \fB&\fP).
  186775. .IP \(bu 2
  186776. Some execution module functions results, now behave more like their
  186777. Unix/Linux versions.
  186778. .UNINDENT
  186779. .SS \fBcmd\fP Execution Module
  186780. .sp
  186781. Due to a difference in how Python\(aqs \fBsubprocess.Popen()\fP spawns processes on
  186782. Windows, passing the command as a list of arguments can result in problems.
  186783. This is because Windows\(aq \fICreateProcess\fP requires the command to be passed as a
  186784. single string. Therefore, \fBsubprocess\fP will attempt to re\-assemble the list
  186785. of arguments into as string. Some escaped characters and quotes can cause the
  186786. resulting string to be incorrectly\-assembled, resulting in a failure to execute
  186787. the command.
  186788. .sp
  186789. Salt now deals with these cases by joining the list of arguments correctly and
  186790. ensuring that the command is passed to \fBsubprocess.Popen()\fP as a string.
  186791. .SS Changelog for v2017.7.2..v2017.7.3
  186792. .sp
  186793. \fIGenerated at: 2018\-05\-26 21:36:50 UTC\fP
  186794. .INDENT 0.0
  186795. .IP \(bu 2
  186796. \fBISSUE\fP \fI\%#45743\fP: (\fI\%frogunder\fP) Multi\-master PKI not working on Py3 (refs: \fI\%#45755\fP)
  186797. .IP \(bu 2
  186798. \fBPR\fP \fI\%#45755\fP: (\fI\%terminalmage\fP) salt.crypt: Ensure message is encoded before signing
  186799. @ \fI2018\-01\-29 19:04:50 UTC\fP
  186800. .INDENT 2.0
  186801. .IP \(bu 2
  186802. 1439da8d76 Merge pull request \fI\%#45755\fP from terminalmage/issue45743
  186803. .IP \(bu 2
  186804. 8af1251c59 salt.crypt: Ensure message is encoded before signing
  186805. .UNINDENT
  186806. .IP \(bu 2
  186807. \fBPR\fP \fI\%#45700\fP: (\fI\%Ch3LL\fP) Add PRs to 2017.7.3 Release Notes
  186808. @ \fI2018\-01\-25 20:56:45 UTC\fP
  186809. .INDENT 2.0
  186810. .IP \(bu 2
  186811. fe194d755f Merge pull request \fI\%#45700\fP from Ch3LL/7.3_rn
  186812. .IP \(bu 2
  186813. 84c8216901 Add PRs to 2017.7.3 Release Notes
  186814. .UNINDENT
  186815. .IP \(bu 2
  186816. \fBPR\fP \fI\%#45681\fP: (\fI\%damon\-atkins\fP) 2017.7.3 Release notes for Windows
  186817. @ \fI2018\-01\-25 15:13:18 UTC\fP
  186818. .INDENT 2.0
  186819. .IP \(bu 2
  186820. ce41f6a6ee Merge pull request \fI\%#45681\fP from damon\-atkins/2017.7.3_win_release_notes
  186821. .IP \(bu 2
  186822. 1d21f86228 Update 2017.7.3.rst
  186823. .UNINDENT
  186824. .IP \(bu 2
  186825. \fBPR\fP \fI\%#45672\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45667\fP to 2017.7.3
  186826. @ \fI2018\-01\-25 14:04:54 UTC\fP
  186827. .INDENT 2.0
  186828. .IP \(bu 2
  186829. \fBPR\fP \fI\%#45667\fP: (\fI\%gtmanfred\fP) default to upgrading when refreshing on archlinux (refs: \fI\%#45672\fP)
  186830. .IP \(bu 2
  186831. 2f303439b7 Merge pull request \fI\%#45672\fP from rallytime/bp\-45667
  186832. .IP \(bu 2
  186833. 74bbaeb7ce we should default to upgrading when refreshing on archlinux
  186834. .UNINDENT
  186835. .IP \(bu 2
  186836. \fBPR\fP \fI\%#45669\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.3 release
  186837. @ \fI2018\-01\-24 21:04:59 UTC\fP
  186838. .INDENT 2.0
  186839. .IP \(bu 2
  186840. 23ff1264e0 Merge pull request \fI\%#45669\fP from rallytime/man\-pages\-2017.7.3
  186841. .IP \(bu 2
  186842. d31b41adeb Update man pages for 2017.7.3 release
  186843. .UNINDENT
  186844. .IP \(bu 2
  186845. \fBPR\fP \fI\%#45666\fP: (\fI\%terminalmage\fP) Fix failing pkg integration tests for releases with no \(aq.\(aq
  186846. @ \fI2018\-01\-24 17:19:10 UTC\fP
  186847. .INDENT 2.0
  186848. .IP \(bu 2
  186849. 9a17405ba6 Merge pull request \fI\%#45666\fP from terminalmage/salt\-jenkins\-793
  186850. .IP \(bu 2
  186851. 4a6ab729dd Fix failing pkg integration tests for releases with no \(aq.\(aq
  186852. .UNINDENT
  186853. .IP \(bu 2
  186854. \fBPR\fP \fI\%#45664\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45452\fP to 2017.7.3
  186855. @ \fI2018\-01\-24 15:33:13 UTC\fP
  186856. .INDENT 2.0
  186857. .IP \(bu 2
  186858. \fBPR\fP \fI\%#45452\fP: (\fI\%adelcast\fP) opkg.py: make owner fuction return value, instead of iterator (refs: \fI\%#45664\fP)
  186859. .IP \(bu 2
  186860. 0717f7a578 Merge pull request \fI\%#45664\fP from rallytime/bp\-45452
  186861. .IP \(bu 2
  186862. 369720677b opkg.py: make owner function return value, instead of iterator
  186863. .UNINDENT
  186864. .IP \(bu 2
  186865. \fBPR\fP \fI\%#45649\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45634\fP to 2017.7.3
  186866. @ \fI2018\-01\-24 14:59:43 UTC\fP
  186867. .INDENT 2.0
  186868. .IP \(bu 2
  186869. \fBPR\fP \fI\%#45634\fP: (\fI\%Ch3LL\fP) Add different service name for Mac 10.13 test (refs: \fI\%#45649\fP)
  186870. .IP \(bu 2
  186871. 7934372b7b Merge pull request \fI\%#45649\fP from rallytime/bp\-45634
  186872. .IP \(bu 2
  186873. 1c78fc23ea Add different service name for Mac 10.13 test
  186874. .UNINDENT
  186875. .IP \(bu 2
  186876. \fBPR\fP \fI\%#45654\fP: (\fI\%twangboy\fP) Merge forward \fI\%#45638\fP
  186877. @ \fI2018\-01\-24 14:59:14 UTC\fP
  186878. .INDENT 2.0
  186879. .IP \(bu 2
  186880. \fBPR\fP \fI\%#45638\fP: (\fI\%twangboy\fP) Win fix shell info (refs: \fI\%#45654\fP)
  186881. .IP \(bu 2
  186882. 770f0c4664 Merge pull request \fI\%#45654\fP from twangboy/win_fix_shell_info_2017.7.3
  186883. .IP \(bu 2
  186884. 5bb01aeb8c Merge forward \fI\%#45638\fP
  186885. .UNINDENT
  186886. .IP \(bu 2
  186887. \fBPR\fP \fI\%#45653\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45611\fP to 2017.7.3
  186888. @ \fI2018\-01\-24 05:20:11 UTC\fP
  186889. .INDENT 2.0
  186890. .IP \(bu 2
  186891. \fBPR\fP \fI\%#45611\fP: (\fI\%terminalmage\fP) Fix unnecessary/incorrect usage of six.binary_type (refs: \fI\%#45653\fP)
  186892. .IP \(bu 2
  186893. 6fc293da46 Merge pull request \fI\%#45653\fP from rallytime/bp\-45611
  186894. .IP \(bu 2
  186895. 0a6b06d8ea Fix unnecessary/incorrect usage of six.binary_type
  186896. .UNINDENT
  186897. .IP \(bu 2
  186898. \fBPR\fP \fI\%#45642\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45636\fP to 2017.7.3
  186899. @ \fI2018\-01\-23 22:00:30 UTC\fP
  186900. .INDENT 2.0
  186901. .IP \(bu 2
  186902. \fBPR\fP \fI\%#45636\fP: (\fI\%Ch3LL\fP) Fix mac service and pkg tests for 10.13 (refs: \fI\%#45642\fP)
  186903. .IP \(bu 2
  186904. 0a07e0d259 Merge pull request \fI\%#45642\fP from rallytime/bp\-45636
  186905. .IP \(bu 2
  186906. df0ad54c9a remove unnecessary variable for test
  186907. .IP \(bu 2
  186908. acb14fd43d fix pylint
  186909. .IP \(bu 2
  186910. a9b12cd1ea Fix mac service and pkg tests for 10.13
  186911. .UNINDENT
  186912. .IP \(bu 2
  186913. \fBPR\fP \fI\%#45645\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45606\fP to 2017.7.3
  186914. @ \fI2018\-01\-23 21:54:45 UTC\fP
  186915. .INDENT 2.0
  186916. .IP \(bu 2
  186917. \fBPR\fP \fI\%#45606\fP: (\fI\%terminalmage\fP) Fix bug affecting salt\-ssh when root_dir differs from the default (refs: \fI\%#45645\fP)
  186918. .IP \(bu 2
  186919. f37a5b6d8d Merge pull request \fI\%#45645\fP from rallytime/bp\-45606
  186920. .IP \(bu 2
  186921. d52d96f30a Fix bug affecting salt\-ssh when root_dir differs from the default
  186922. .UNINDENT
  186923. .IP \(bu 2
  186924. \fBPR\fP \fI\%#45641\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45508\fP to 2017.7.3
  186925. @ \fI2018\-01\-23 21:18:39 UTC\fP
  186926. .INDENT 2.0
  186927. .IP \(bu 2
  186928. \fBPR\fP \fI\%#45508\fP: (\fI\%frogunder\fP) fix test_archive test for mac on 2017.7 branch (refs: \fI\%#45641\fP)
  186929. .IP \(bu 2
  186930. e659793c09 Merge pull request \fI\%#45641\fP from rallytime/bp\-45508
  186931. .IP \(bu 2
  186932. e6917a291e fix test_archive test for mac on 2017.7 branch
  186933. .UNINDENT
  186934. .IP \(bu 2
  186935. \fBPR\fP \fI\%#45604\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45582\fP to 2017.7.3
  186936. @ \fI2018\-01\-22 16:54:15 UTC\fP
  186937. .INDENT 2.0
  186938. .IP \(bu 2
  186939. \fBPR\fP \fI\%#45582\fP: (\fI\%terminalmage\fP) Two salt\-ssh fixes (refs: \fI\%#45604\fP)
  186940. .IP \(bu 2
  186941. ced3269ae8 Merge pull request \fI\%#45604\fP from rallytime/bp\-45582
  186942. .IP \(bu 2
  186943. bc8a450cc7 Remove state.py utils file from thin list
  186944. .IP \(bu 2
  186945. 629e6c9674 Further fixes to for salt\-ssh test under heavy load
  186946. .IP \(bu 2
  186947. 0dff596b59 Add salt/utils/state.py to thin tarball
  186948. .IP \(bu 2
  186949. a61afda100 Pass on OSError if thin tarball already removed
  186950. .UNINDENT
  186951. .IP \(bu 2
  186952. \fBPR\fP \fI\%#45591\fP: (\fI\%gtmanfred\fP) mark minion_blackout tests as flaky
  186953. @ \fI2018\-01\-22 00:14:31 UTC\fP
  186954. .INDENT 2.0
  186955. .IP \(bu 2
  186956. 4672baa6c8 Merge pull request \fI\%#45591\fP from gtmanfred/2017.7.3
  186957. .IP \(bu 2
  186958. f7fd35fc4a test updating the minion blackout timeout to 10 seconds
  186959. .UNINDENT
  186960. .IP \(bu 2
  186961. \fBPR\fP \fI\%#45585\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45579\fP to 2017.7.3
  186962. @ \fI2018\-01\-22 00:13:59 UTC\fP
  186963. .INDENT 2.0
  186964. .IP \(bu 2
  186965. \fBPR\fP \fI\%#45579\fP: (\fI\%terminalmage\fP) Test suite stability fixes (refs: \fI\%#45585\fP)
  186966. .IP \(bu 2
  186967. 2a992f9017 Merge pull request \fI\%#45585\fP from rallytime/bp\-45579
  186968. .IP \(bu 2
  186969. 0292c8345b Lint fix: use six\(aqs map
  186970. .IP \(bu 2
  186971. 108d8cbeef Use correct utils path for 2017.7
  186972. .IP \(bu 2
  186973. a38f4cb6d6 Restrict pyzmq optimizations to pyzmq >= 14.3.0
  186974. .IP \(bu 2
  186975. 58ad558346 Fix event unpack
  186976. .UNINDENT
  186977. .IP \(bu 2
  186978. \fBPR\fP \fI\%#45573\fP: (\fI\%gtmanfred\fP) update 2017.7.3 tests
  186979. @ \fI2018\-01\-20 20:05:13 UTC\fP
  186980. .INDENT 2.0
  186981. .IP \(bu 2
  186982. 19cd97ed3b Merge pull request \fI\%#45573\fP from gtmanfred/2017.7.3
  186983. .IP \(bu 2
  186984. bd3cb47fa7 fix mock for opensuse
  186985. .IP \(bu 2
  186986. 808e26e69a test simple website
  186987. .UNINDENT
  186988. .IP \(bu 2
  186989. \fBPR\fP \fI\%#45570\fP: (\fI\%gtmanfred\fP) Fix tests for 2017.7.3
  186990. @ \fI2018\-01\-20 15:01:21 UTC\fP
  186991. .INDENT 2.0
  186992. .IP \(bu 2
  186993. e72d81ef22 Merge pull request \fI\%#45570\fP from gtmanfred/2017.7.3
  186994. .IP \(bu 2
  186995. 1f71f301ba specify checking man page path
  186996. .IP \(bu 2
  186997. 2ddbcb45c1 fix pkg_resources for usage with testing pip
  186998. .IP \(bu 2
  186999. 0ba39a7108 switch systemd\-journald for sshd for arch service test
  187000. .UNINDENT
  187001. .IP \(bu 2
  187002. \fBPR\fP \fI\%#45538\fP: (\fI\%gtmanfred\fP) Backport test fixes to 2017.7.3
  187003. @ \fI2018\-01\-19 14:39:44 UTC\fP
  187004. .INDENT 2.0
  187005. .IP \(bu 2
  187006. 7bc60c56d4 Merge pull request \fI\%#45538\fP from gtmanfred/2017.7.3
  187007. .IP \(bu 2
  187008. 801e0639b6 Merge branch \(aq2017.7.3\(aq into 2017.7.3
  187009. .UNINDENT
  187010. .IP \(bu 2
  187011. \fBPR\fP \fI\%#45533\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45529\fP to 2017.7.3
  187012. @ \fI2018\-01\-18 22:52:29 UTC\fP
  187013. .INDENT 2.0
  187014. .IP \(bu 2
  187015. \fBPR\fP \fI\%#45529\fP: (\fI\%Ch3LL\fP) Fix UnboundLocalError for pacman pkg installs (refs: \fI\%#45533\fP)
  187016. .IP \(bu 2
  187017. 8ad65e3359 Merge pull request \fI\%#45533\fP from rallytime/bp\-45529
  187018. .IP \(bu 2
  187019. 6d56c64d88 Fix UnboundLocalError for pacman pkg installs
  187020. .INDENT 2.0
  187021. .IP \(bu 2
  187022. 8d907ee1a0 fix moto version
  187023. .IP \(bu 2
  187024. 1241ab5fc6 fix test boto imports
  187025. .IP \(bu 2
  187026. f4b6367cf9 fix fedora pkg test
  187027. .UNINDENT
  187028. .UNINDENT
  187029. .IP \(bu 2
  187030. \fBISSUE\fP \fI\%#45394\fP: (\fI\%dmurphy18\fP) git.latest fails when "depth" is used with a non\-default branch (refs: \fI\%#45399\fP)
  187031. .IP \(bu 2
  187032. \fBPR\fP \fI\%#45442\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45399\fP to 2017.7.3
  187033. @ \fI2018\-01\-17 17:20:48 UTC\fP
  187034. .INDENT 2.0
  187035. .IP \(bu 2
  187036. \fBPR\fP \fI\%#45399\fP: (\fI\%terminalmage\fP) Fix git.latest failure when rev is not the default branch (refs: \fI\%#45442\fP)
  187037. .IP \(bu 2
  187038. 7379f9e3e5 Merge pull request \fI\%#45442\fP from rallytime/bp\-45399
  187039. .IP \(bu 2
  187040. 590a6db626 Lint: use support TMP path instead of integration TMP path
  187041. .IP \(bu 2
  187042. c081b2c62c Fix git.latest failure when rev is not the default branch
  187043. .UNINDENT
  187044. .IP \(bu 2
  187045. \fBPR\fP \fI\%#45468\fP: (\fI\%twangboy\fP) Fix some issues with reg.py
  187046. @ \fI2018\-01\-16 22:23:47 UTC\fP
  187047. .INDENT 2.0
  187048. .IP \(bu 2
  187049. ee5090f69b Merge pull request \fI\%#45468\fP from twangboy/win_reg
  187050. .IP \(bu 2
  187051. a0d21c6354 Fix some issues with reg.py
  187052. .UNINDENT
  187053. .IP \(bu 2
  187054. \fBISSUE\fP \fI\%#44913\fP: (\fI\%ari\fP) FreeBSD packaging install performance regression (refs: \fI\%#45174\fP)
  187055. .IP \(bu 2
  187056. \fBPR\fP \fI\%#45434\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45174\fP to 2017.7.3
  187057. @ \fI2018\-01\-14 12:43:16 UTC\fP
  187058. .INDENT 2.0
  187059. .IP \(bu 2
  187060. \fBPR\fP \fI\%#45174\fP: (\fI\%eradman\fP) Do not force pkg reinstall on FreeBSD (refs: \fI\%#45434\fP)
  187061. .IP \(bu 2
  187062. ef7a896eb6 Merge pull request \fI\%#45434\fP from rallytime/bp\-45174
  187063. .IP \(bu 2
  187064. b310ff7ab8 Do not force pkg reinstall on FreeBSD
  187065. .UNINDENT
  187066. .IP \(bu 2
  187067. \fBPR\fP \fI\%#45395\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45380\fP to 2017.7.3
  187068. @ \fI2018\-01\-12 18:49:20 UTC\fP
  187069. .INDENT 2.0
  187070. .IP \(bu 2
  187071. \fBPR\fP \fI\%#45380\fP: (\fI\%twangboy\fP) Backport changes from \fI\%#45308\fP (refs: \fI\%#45395\fP)
  187072. .IP \(bu 2
  187073. \fBPR\fP \fI\%#45308\fP: (\fI\%twangboy\fP) Fix \fIintegration.modules.test_state\fP for Windows (refs: \fI\%#45380\fP)
  187074. .IP \(bu 2
  187075. c3fdd1dcc4 Merge pull request \fI\%#45395\fP from rallytime/bp\-45380
  187076. .IP \(bu 2
  187077. 0356b3d56f Backport changes from \fI\%#45308\fP
  187078. .UNINDENT
  187079. .IP \(bu 2
  187080. \fBISSUE\fP \fI\%#44107\fP: (\fI\%anlutro\fP) salt\-ssh 2017.7 doesn\(aqt work with Python 3, missing backports_abc (refs: \fI\%#45294\fP)
  187081. .IP \(bu 2
  187082. \fBPR\fP \fI\%#45294\fP: (\fI\%gtmanfred\fP) include backports_abc
  187083. @ \fI2018\-01\-11 18:18:16 UTC\fP
  187084. .INDENT 2.0
  187085. .IP \(bu 2
  187086. f7da716d32 Merge pull request \fI\%#45294\fP from gtmanfred/2017.7
  187087. .IP \(bu 2
  187088. 3633ceeaa7 Merge branch \(aq2017.7\(aq into 2017.7
  187089. .IP \(bu 2
  187090. 29806e4496 ignore salt.ext in pylint
  187091. .IP \(bu 2
  187092. 8b597a4890 include backports_abc
  187093. .UNINDENT
  187094. .IP \(bu 2
  187095. \fBISSUE\fP \fI\%#43130\fP: (\fI\%boltronics\fP) module.run documentation issues (refs: \fI\%#45381\fP)
  187096. .IP \(bu 2
  187097. \fBPR\fP \fI\%#45381\fP: (\fI\%gtmanfred\fP) fix module.run docs
  187098. @ \fI2018\-01\-11 18:02:38 UTC\fP
  187099. .INDENT 2.0
  187100. .IP \(bu 2
  187101. f77a3e9cd4 Merge pull request \fI\%#45381\fP from gtmanfred/module.run
  187102. .IP \(bu 2
  187103. 230e899192 fix module.run docs
  187104. .UNINDENT
  187105. .IP \(bu 2
  187106. \fBISSUE\fP \fI\%#43995\fP: (\fI\%dragonpaw\fP) Using zmq built with \-\-enable\-draft breaks Salt (refs: \fI\%#45368\fP)
  187107. .IP \(bu 2
  187108. \fBPR\fP \fI\%#45368\fP: (\fI\%DmitryKuzmenko\fP) Fixes to work with pyzmq with \-\-enable\-drafts
  187109. @ \fI2018\-01\-11 17:53:16 UTC\fP
  187110. .INDENT 2.0
  187111. .IP \(bu 2
  187112. 8efd29f4d9 Merge pull request \fI\%#45368\fP from DSRCorporation/bugs/zmq_draft
  187113. .IP \(bu 2
  187114. 7622e355cf Minor: removed a stale comment.
  187115. .IP \(bu 2
  187116. 00f31bf9b5 Fixes to work with pyzmq with \-\-enable\-drafts
  187117. .UNINDENT
  187118. .IP \(bu 2
  187119. \fBPR\fP \fI\%#45371\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45158\fP to 2017.7
  187120. @ \fI2018\-01\-11 17:51:38 UTC\fP
  187121. .INDENT 2.0
  187122. .IP \(bu 2
  187123. \fBPR\fP \fI\%#45158\fP: (\fI\%terminalmage\fP) Fix integration.modules.test_state.StateModuleTest.test_exclude (refs: \fI\%#45371\fP)
  187124. .IP \(bu 2
  187125. 22c3efda06 Merge pull request \fI\%#45371\fP from rallytime/bp\-45158
  187126. .IP \(bu 2
  187127. 3565bc2bf2 Don\(aqt use include\-test SLS in orch tests
  187128. .IP \(bu 2
  187129. 8bc17e0d7a Fix integration.modules.test_state.StateModuleTest.test_exclude
  187130. .UNINDENT
  187131. .IP \(bu 2
  187132. \fBPR\fP \fI\%#45387\fP: (\fI\%renner\fP) Set SHELL environment variable
  187133. @ \fI2018\-01\-11 16:23:21 UTC\fP
  187134. .INDENT 2.0
  187135. .IP \(bu 2
  187136. \fBPR\fP \fI\%#40630\fP: (\fI\%mateiw\fP) develop: SUSE specific changes to salt\-api.service (refs: \fI\%#45387\fP)
  187137. .IP \(bu 2
  187138. \fBPR\fP \fI\%#40620\fP: (\fI\%mateiw\fP) SUSE specific changes to salt\-api.service (refs: \fI\%#40630\fP, \fI\%#45387\fP)
  187139. .IP \(bu 2
  187140. 3a0e2de995 Merge pull request \fI\%#45387\fP from renner/patch\-2
  187141. .IP \(bu 2
  187142. 530ddd2d29 Set SHELL environment variable
  187143. .UNINDENT
  187144. .IP \(bu 2
  187145. \fBPR\fP \fI\%#45388\fP: (\fI\%terminalmage\fP) Fix loader error in 2017.7 tests
  187146. @ \fI2018\-01\-11 16:13:53 UTC\fP
  187147. .INDENT 2.0
  187148. .IP \(bu 2
  187149. dcf98a2260 Merge pull request \fI\%#45388\fP from terminalmage/fix\-test\-loader\-error
  187150. .IP \(bu 2
  187151. 5473c085d9 Fix loader error in 2017.7 tests
  187152. .UNINDENT
  187153. .IP \(bu 2
  187154. \fBPR\fP \fI\%#45382\fP: (\fI\%terminalmage\fP) Skip flaky test on 2017.7 branch
  187155. @ \fI2018\-01\-11 14:23:05 UTC\fP
  187156. .INDENT 2.0
  187157. .IP \(bu 2
  187158. d15f9e1020 Merge pull request \fI\%#45382\fP from terminalmage/salt\-jenkins\-686
  187159. .IP \(bu 2
  187160. ff3039db6c Skip flaky test on 2017.7 branch
  187161. .UNINDENT
  187162. .IP \(bu 2
  187163. \fBPR\fP \fI\%#45369\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187164. @ \fI2018\-01\-10 22:14:05 UTC\fP
  187165. .INDENT 2.0
  187166. .IP \(bu 2
  187167. dbe21b2c0d Merge pull request \fI\%#45369\fP from rallytime/merge\-2017.7
  187168. .IP \(bu 2
  187169. f65e091df8 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187170. .INDENT 2.0
  187171. .IP \(bu 2
  187172. 0959ae4ea3 Merge pull request \fI\%#45327\fP from lomeroe/bp\-44861_2016.11
  187173. .INDENT 2.0
  187174. .IP \(bu 2
  187175. 784139f734 Check for values other than 0 or 1
  187176. .UNINDENT
  187177. .IP \(bu 2
  187178. a6db5f95f0 Merge pull request \fI\%#45268\fP from damon\-atkins/2016.11_win_pkg_pkg_install_latest
  187179. .INDENT 2.0
  187180. .IP \(bu 2
  187181. 325a9f0f66 Update 2016.11.9.rst
  187182. .IP \(bu 2
  187183. 4da9200b9c Update 2016.11.9.rst
  187184. .IP \(bu 2
  187185. 126aee36ac Update 2016.11.9.rst
  187186. .IP \(bu 2
  187187. 1c01967943 Update 2016.11.9.rst
  187188. .IP \(bu 2
  187189. a0d89882b8 Fix pkg.install packagename version=latest i.e. if on an old version upgrade to the latest
  187190. .UNINDENT
  187191. .UNINDENT
  187192. .UNINDENT
  187193. .IP \(bu 2
  187194. \fBPR\fP \fI\%#45379\fP: (\fI\%rhoths\fP) Minor spelling/grammar fixes in the highstate returner documentation
  187195. @ \fI2018\-01\-10 20:09:52 UTC\fP
  187196. .INDENT 2.0
  187197. .IP \(bu 2
  187198. 55979b3a48 Merge pull request \fI\%#45379\fP from rhoths/rhoths\-doc\-highstate\-1
  187199. .IP \(bu 2
  187200. afbbd492cd Minor spelling/grammar fixes in highstate returner
  187201. .UNINDENT
  187202. .IP \(bu 2
  187203. \fBPR\fP \fI\%#45358\fP: (\fI\%UtahDave\fP) gate the minion data cache refresh events.
  187204. @ \fI2018\-01\-10 17:21:05 UTC\fP
  187205. .INDENT 2.0
  187206. .IP \(bu 2
  187207. \fBPR\fP \fI\%#45299\fP: (\fI\%garethgreenaway\fP) [2017.7] config gate auth_events (refs: \fI\%#45358\fP)
  187208. .IP \(bu 2
  187209. 541e59fa75 Merge pull request \fI\%#45358\fP from UtahDave/gate_data_cache_refresh
  187210. .IP \(bu 2
  187211. 379b6cd23e should be \fIself\fP, not \fIsalt\fP
  187212. .IP \(bu 2
  187213. a82e158f2d gate the minion data cache refresh events.
  187214. .UNINDENT
  187215. .IP \(bu 2
  187216. \fBPR\fP \fI\%#45297\fP: (\fI\%Ch3LL\fP) Allow macosx service state tests to check for pid return
  187217. @ \fI2018\-01\-09 20:47:24 UTC\fP
  187218. .INDENT 2.0
  187219. .IP \(bu 2
  187220. fb87010461 Merge pull request \fI\%#45297\fP from Ch3LL/mac_service_state
  187221. .IP \(bu 2
  187222. 4e569b5802 Allow macosx service state tests to check for pid return
  187223. .UNINDENT
  187224. .IP \(bu 2
  187225. \fBPR\fP \fI\%#45351\fP: (\fI\%dmurphy18\fP) Update debbuild to explicitly include source code for Debian, Ubuntu
  187226. @ \fI2018\-01\-09 17:21:51 UTC\fP
  187227. .INDENT 2.0
  187228. .IP \(bu 2
  187229. beedf6e815 Merge pull request \fI\%#45351\fP from dmurphy18/upd_debbuild
  187230. .IP \(bu 2
  187231. 478dc70092 Update debbuild flags
  187232. .UNINDENT
  187233. .IP \(bu 2
  187234. \fBPR\fP \fI\%#45299\fP: (\fI\%garethgreenaway\fP) [2017.7] config gate auth_events (refs: \fI\%#45358\fP)
  187235. @ \fI2018\-01\-09 15:00:30 UTC\fP
  187236. .INDENT 2.0
  187237. .IP \(bu 2
  187238. 66da9b47bc Merge pull request \fI\%#45299\fP from garethgreenaway/config_gate_auth_events
  187239. .IP \(bu 2
  187240. 9a15ec3430 Updating versionadded string. Fixing typo.
  187241. .IP \(bu 2
  187242. edfc3dc078 Adding in documention for \fIauth_events\fP configuration option
  187243. .IP \(bu 2
  187244. 3ee4eabffd Fixing small typo
  187245. .IP \(bu 2
  187246. 6a28bddcc9 Adding some code to config gate if auth_events are sent
  187247. .UNINDENT
  187248. .IP \(bu 2
  187249. \fBPR\fP \fI\%#44856\fP: (\fI\%Ch3LL\fP) Add state.running ssh integration test
  187250. @ \fI2018\-01\-08 21:40:50 UTC\fP
  187251. .INDENT 2.0
  187252. .IP \(bu 2
  187253. 8d04c2b3d4 Merge pull request \fI\%#44856\fP from Ch3LL/running_test
  187254. .IP \(bu 2
  187255. 9a35a73711 add time limit to while loop
  187256. .IP \(bu 2
  187257. aeb5f4e248 Add state.running ssh integration test
  187258. .UNINDENT
  187259. .IP \(bu 2
  187260. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#675\fP: (\fI\%rallytime\fP) [2017.7] unit.states.test_file.TestFileState.test_directory is failing on Fedora 27 and CentOS 6 (refs: \fI\%#45295\fP)
  187261. .IP \(bu 2
  187262. \fBPR\fP \fI\%#45295\fP: (\fI\%gtmanfred\fP) test directory that doesn\(aqt exist
  187263. @ \fI2018\-01\-08 20:59:53 UTC\fP
  187264. .INDENT 2.0
  187265. .IP \(bu 2
  187266. d0e5e70277 Merge pull request \fI\%#45295\fP from gtmanfred/test_directory
  187267. .IP \(bu 2
  187268. e6178fe6d4 Merge branch \(aq2017.7\(aq into test_directory
  187269. .IP \(bu 2
  187270. 24114e91c1 test was different slightly on 2017.7
  187271. .IP \(bu 2
  187272. d20fc93625 test directory that doesn\(aqt exist
  187273. .UNINDENT
  187274. .IP \(bu 2
  187275. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#678\fP: (\fI\%rallytime\fP) [2017.7] Proxy Minion Tests for Py3 are failing (refs: \fI\%#45302\fP)
  187276. .IP \(bu 2
  187277. \fBPR\fP \fI\%#45302\fP: (\fI\%gtmanfred\fP) fix proxy tests for py3 on 2017.7
  187278. @ \fI2018\-01\-08 17:41:58 UTC\fP
  187279. .INDENT 2.0
  187280. .IP \(bu 2
  187281. f49b204b75 Merge pull request \fI\%#45302\fP from gtmanfred/proxyp3
  187282. .IP \(bu 2
  187283. b295ec0429 make dummy proxy module py3 compatible
  187284. .IP \(bu 2
  187285. 8736e21f65 fix starting proxy minion on py3
  187286. .IP \(bu 2
  187287. e2824a7253 fix py3 tests
  187288. .UNINDENT
  187289. .IP \(bu 2
  187290. \fBPR\fP \fI\%#45279\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187291. @ \fI2018\-01\-08 17:26:49 UTC\fP
  187292. .INDENT 2.0
  187293. .IP \(bu 2
  187294. eea7158e82 Merge pull request \fI\%#45279\fP from rallytime/merge\-2017.7
  187295. .IP \(bu 2
  187296. 8025b14584 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187297. .INDENT 2.0
  187298. .IP \(bu 2
  187299. 1c5e905b61 Merge pull request \fI\%#45256\fP from rallytime/bp\-45034
  187300. .INDENT 2.0
  187301. .IP \(bu 2
  187302. 68f971b38f Apply test fixes from \fI\%#45034\fP to parsers_test.py
  187303. .IP \(bu 2
  187304. 9454236694 Fix for pidfile removal logging
  187305. .UNINDENT
  187306. .UNINDENT
  187307. .UNINDENT
  187308. .IP \(bu 2
  187309. \fBPR\fP \fI\%#44853\fP: (\fI\%gtmanfred\fP) remove not from vault utils
  187310. @ \fI2018\-01\-05 17:43:18 UTC\fP
  187311. .INDENT 2.0
  187312. .IP \(bu 2
  187313. dab4a8cff3 Merge pull request \fI\%#44853\fP from gtmanfred/vault
  187314. .IP \(bu 2
  187315. bfee1cead6 set role for loading minion config
  187316. .IP \(bu 2
  187317. c5af2e5048 if utils is not loaded, load it
  187318. .IP \(bu 2
  187319. 6a5e0f9ac1 remove not from vault utils
  187320. .UNINDENT
  187321. .IP \(bu 2
  187322. \fBPR\fP \fI\%#45277\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45025\fP to 2017.7
  187323. @ \fI2018\-01\-05 15:35:53 UTC\fP
  187324. .INDENT 2.0
  187325. .IP \(bu 2
  187326. \fBPR\fP \fI\%#45025\fP: (\fI\%steverweber\fP) Fix pillar include merge order (refs: \fI\%#45277\fP)
  187327. .IP \(bu 2
  187328. f09d0e5fdb Merge pull request \fI\%#45277\fP from rallytime/bp\-45025
  187329. .IP \(bu 2
  187330. 942c14bb29 pillar body overrides includes
  187331. .IP \(bu 2
  187332. 1152202fdc fix pillar includes from merging over the current sls defines
  187333. .UNINDENT
  187334. .IP \(bu 2
  187335. \fBPR\fP \fI\%#45276\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45260\fP to 2017.7
  187336. @ \fI2018\-01\-05 14:45:40 UTC\fP
  187337. .INDENT 2.0
  187338. .IP \(bu 2
  187339. \fBPR\fP \fI\%#45260\fP: (\fI\%gtmanfred\fP) Make some kitchen\-salt tests blue (refs: \fI\%#45276\fP)
  187340. .IP \(bu 2
  187341. fc84f1104f Merge pull request \fI\%#45276\fP from rallytime/bp\-45260
  187342. .IP \(bu 2
  187343. 9ab1af738f switch kitchen\-salt to use rsync transport to preserve symlinks
  187344. .IP \(bu 2
  187345. cf98ed472e fix up symlinks
  187346. .UNINDENT
  187347. .IP \(bu 2
  187348. \fBISSUE\fP \fI\%#43340\fP: (\fI\%syphernl\fP) Upgrading Salt via Salt results in dying minions and broken dpkg (refs: \fI\%#45255\fP)
  187349. .IP \(bu 2
  187350. \fBPR\fP \fI\%#45255\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44427\fP to 2017.7
  187351. @ \fI2018\-01\-04 21:46:17 UTC\fP
  187352. .INDENT 2.0
  187353. .IP \(bu 2
  187354. \fBPR\fP \fI\%#44427\fP: (\fI\%samodid\fP) use KillMode=process for salt\-minion.service (refs: \fI\%#45255\fP)
  187355. .IP \(bu 2
  187356. ff9880c498 Merge pull request \fI\%#45255\fP from rallytime/bp\-44427
  187357. .IP \(bu 2
  187358. 6ceafbbf3a use KillMode=process for salt\-minion.service
  187359. .UNINDENT
  187360. .IP \(bu 2
  187361. \fBISSUE\fP \fI\%#23454\fP: (\fI\%HontoNoRoger\fP) SLS rendering error with Salt\-SSH (pydsl) (refs: \fI\%#45251\fP)
  187362. .IP \(bu 2
  187363. \fBPR\fP \fI\%#45251\fP: (\fI\%forksaber\fP) Fix \fI\%#23454\fP : make pydsl work with salt\-ssh
  187364. @ \fI2018\-01\-04 21:33:09 UTC\fP
  187365. .INDENT 2.0
  187366. .IP \(bu 2
  187367. e715eb603f Merge pull request \fI\%#45251\fP from forksaber/salt\-ssh\-pydsl
  187368. .IP \(bu 2
  187369. b3660d5190 [\fI\%#23454\fP] make pydsl work with salt\-ssh
  187370. .UNINDENT
  187371. .IP \(bu 2
  187372. \fBPR\fP \fI\%#45254\fP: (\fI\%Ch3LL\fP) Add darwin value for ssh grain items tests on MacOSX
  187373. @ \fI2018\-01\-04 21:31:35 UTC\fP
  187374. .INDENT 2.0
  187375. .IP \(bu 2
  187376. 2934b60d53 Merge pull request \fI\%#45254\fP from Ch3LL/fix_mac_grain_ssh
  187377. .IP \(bu 2
  187378. b4b59b89cd remove platform from salt.utils call for 2017.7
  187379. .IP \(bu 2
  187380. 85e853a63d Add darwin value for ssh grain items tests on MacOSX
  187381. .UNINDENT
  187382. .IP \(bu 2
  187383. \fBPR\fP \fI\%#45135\fP: (\fI\%twangboy\fP) Fix win_dacl problems with SIDs
  187384. @ \fI2018\-01\-04 21:01:48 UTC\fP
  187385. .INDENT 2.0
  187386. .IP \(bu 2
  187387. af2d880303 Merge pull request \fI\%#45135\fP from twangboy/win_fix_dacl
  187388. .IP \(bu 2
  187389. b31e08946a Merge branch \(aq2017.7\(aq into win_fix_dacl
  187390. .IP \(bu 2
  187391. 35a417f510 Fix win_dacl problems with SIDs
  187392. .UNINDENT
  187393. .IP \(bu 2
  187394. \fBISSUE\fP \fI\%#43806\fP: (\fI\%Ch3LL\fP) Add spm man Test to Auto Test Suite (refs: \fI\%#44930\fP)
  187395. .IP \(bu 2
  187396. \fBPR\fP \fI\%#44930\fP: (\fI\%frogunder\fP) man_spm_test
  187397. @ \fI2018\-01\-04 20:58:02 UTC\fP
  187398. .INDENT 2.0
  187399. .IP \(bu 2
  187400. d0a3770035 Merge pull request \fI\%#44930\fP from frogunder/man_spm
  187401. .IP \(bu 2
  187402. 48e6953e1f fix_string_error
  187403. .IP \(bu 2
  187404. c9fa4ed2a7 man_spm_test
  187405. .UNINDENT
  187406. .IP \(bu 2
  187407. \fBPR\fP \fI\%#45259\fP: (\fI\%Ch3LL\fP) Fix MacOSX Service Status Check and integration test
  187408. @ \fI2018\-01\-04 14:25:01 UTC\fP
  187409. .INDENT 2.0
  187410. .IP \(bu 2
  187411. 543eebf411 Merge pull request \fI\%#45259\fP from Ch3LL/fix\-mac\-service\-test
  187412. .IP \(bu 2
  187413. 74e6ed60ea Fix MacOSX Service Status Check and integration test
  187414. .UNINDENT
  187415. .IP \(bu 2
  187416. \fBPR\fP \fI\%#45263\fP: (\fI\%sumeetisp\fP) Updating python version for 2017.7
  187417. @ \fI2018\-01\-04 14:16:26 UTC\fP
  187418. .INDENT 2.0
  187419. .IP \(bu 2
  187420. bbbd1872a7 Merge pull request \fI\%#45263\fP from sumeetisp/2017.7
  187421. .IP \(bu 2
  187422. e3a5ee3a08 Merge branch \(aq2017.7\(aq into 2017.7
  187423. .IP \(bu 2
  187424. 71aea9a3bc Merge pull request #1 from sumeetisp/sumeetisp\-python\-version
  187425. .INDENT 2.0
  187426. .IP \(bu 2
  187427. 1b4806e2b9 Updating python version
  187428. .UNINDENT
  187429. .UNINDENT
  187430. .IP \(bu 2
  187431. \fBPR\fP \fI\%#45244\fP: (\fI\%twangboy\fP) Fix search/replace in Py3
  187432. @ \fI2018\-01\-04 14:02:22 UTC\fP
  187433. .INDENT 2.0
  187434. .IP \(bu 2
  187435. d46e1197be Merge pull request \fI\%#45244\fP from twangboy/win_fix_portable.py
  187436. .IP \(bu 2
  187437. e3a8279c01 Get path to python binary based on executable
  187438. .IP \(bu 2
  187439. 03aec37040 Fix search/replace in Py3
  187440. .UNINDENT
  187441. .IP \(bu 2
  187442. \fBPR\fP \fI\%#45233\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187443. @ \fI2018\-01\-03 15:34:00 UTC\fP
  187444. .INDENT 2.0
  187445. .IP \(bu 2
  187446. eba360870a Merge pull request \fI\%#45233\fP from rallytime/merge\-2017.7
  187447. .IP \(bu 2
  187448. a3d251b2cd Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187449. .INDENT 2.0
  187450. .IP \(bu 2
  187451. b75f50afe3 Merge pull request \fI\%#45235\fP from rallytime/bp\-45209
  187452. .INDENT 2.0
  187453. .IP \(bu 2
  187454. 2d0a9bbf7e enable UsePAM for ssh tests
  187455. .UNINDENT
  187456. .UNINDENT
  187457. .IP \(bu 2
  187458. 5d9a1e91e9 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187459. .INDENT 2.0
  187460. .IP \(bu 2
  187461. 3ab962b01a Merge pull request \fI\%#44965\fP from gtmanfred/2016.11
  187462. .INDENT 2.0
  187463. .IP \(bu 2
  187464. a5d8a6340e check if VALUE is a string_type
  187465. .UNINDENT
  187466. .IP \(bu 2
  187467. 40fb30f63f Merge pull request \fI\%#45232\fP from rasathus/2016.11
  187468. .INDENT 2.0
  187469. .IP \(bu 2
  187470. 7a2bd8f49b Merge branch \(aq2016.11\(aq into 2016.11
  187471. .IP \(bu 2
  187472. de53c45c29 Backport \fI\%#27160\fP to 2016.11
  187473. .UNINDENT
  187474. .UNINDENT
  187475. .UNINDENT
  187476. .IP \(bu 2
  187477. \fBPR\fP \fI\%#45175\fP: (\fI\%amendlik\fP) Pkg uptodate
  187478. @ \fI2018\-01\-02 17:38:36 UTC\fP
  187479. .INDENT 2.0
  187480. .IP \(bu 2
  187481. 693cc807e8 Merge pull request \fI\%#45175\fP from amendlik/pkg\-uptodate
  187482. .IP \(bu 2
  187483. 4f514a29a7 Merge branch \(aq2017.7\(aq into pkg\-uptodate
  187484. .UNINDENT
  187485. .IP \(bu 2
  187486. \fBPR\fP \fI\%#45226\fP: (\fI\%gtmanfred\fP) Update kitchen to use runtests verifier on 2017.7
  187487. @ \fI2017\-12\-31 18:13:28 UTC\fP
  187488. .INDENT 2.0
  187489. .IP \(bu 2
  187490. 1b3f3ba1be Merge pull request \fI\%#45226\fP from gtmanfred/2017.7
  187491. .IP \(bu 2
  187492. 4f3b089e0e fix copying back
  187493. .IP \(bu 2
  187494. f56f062a6a download xml for junit
  187495. .IP \(bu 2
  187496. 7cc342a5d6 use new runtests verifier
  187497. .UNINDENT
  187498. .IP \(bu 2
  187499. \fBPR\fP \fI\%#45221\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187500. @ \fI2017\-12\-30 18:08:29 UTC\fP
  187501. .INDENT 2.0
  187502. .IP \(bu 2
  187503. 7d3a6cbc65 Merge pull request \fI\%#45221\fP from rallytime/merge\-2017.7
  187504. .IP \(bu 2
  187505. 508599e159 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187506. .IP \(bu 2
  187507. 707ef55175 Merge pull request \fI\%#45161\fP from lomeroe/bp\-44944_2016.11
  187508. .INDENT 2.0
  187509. .IP \(bu 2
  187510. 0a4c6b5a83 remove references to six.unichr
  187511. .IP \(bu 2
  187512. f3196d795d lint fixes for static regexes
  187513. .IP \(bu 2
  187514. 11b637d108 lint fixes
  187515. .IP \(bu 2
  187516. c14d6282ad do not decode registry.pol file wholesale, but instead decode individual elements of the file
  187517. .UNINDENT
  187518. .IP \(bu 2
  187519. 6f52034e08 Merge pull request \fI\%#45199\fP from gtmanfred/status
  187520. .INDENT 2.0
  187521. .IP \(bu 2
  187522. fb07f9ea7d status.pid returns pid ids not process names
  187523. .UNINDENT
  187524. .UNINDENT
  187525. .IP \(bu 2
  187526. \fBISSUE\fP \fI\%#45176\fP: (\fI\%thuhak\fP) osquery execution module does\(aqt work with attrs parameter (refs: \fI\%#45204\fP)
  187527. .IP \(bu 2
  187528. \fBPR\fP \fI\%#45204\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to osquery module & addition of unit tests
  187529. @ \fI2017\-12\-30 13:25:38 UTC\fP
  187530. .INDENT 2.0
  187531. .IP \(bu 2
  187532. abed378981 Merge pull request \fI\%#45204\fP from garethgreenaway/45176_fixes_to_osquery_module
  187533. .IP \(bu 2
  187534. dc933e9e24 Fixing typo
  187535. .IP \(bu 2
  187536. d834bd1b6f Fixing some minor lint issues.
  187537. .IP \(bu 2
  187538. 4738205154 Fixing a bug when attributes are passed to various osquery module functions.
  187539. .INDENT 2.0
  187540. .INDENT 3.5
  187541. .INDENT 0.0
  187542. .IP \(bu 2
  187543. 66884334d9 Update states.pkg for Python3 compatibility
  187544. .IP \(bu 2
  187545. 2a7d76ad6e Fail pkg.uptodate if expected packages are not upgraded
  187546. .IP \(bu 2
  187547. 29ef67bac2 Test pkg.uptodate with failed upgrades
  187548. .IP \(bu 2
  187549. 23ab93353b Produce changes dict for pkg.uptodate dry\-run mode
  187550. .IP \(bu 2
  187551. 7c67ec39d9 Add tests for pkg.uptodate state
  187552. .UNINDENT
  187553. .UNINDENT
  187554. .UNINDENT
  187555. .UNINDENT
  187556. .IP \(bu 2
  187557. \fBPR\fP \fI\%#45203\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187558. @ \fI2017\-12\-29 01:11:03 UTC\fP
  187559. .INDENT 2.0
  187560. .IP \(bu 2
  187561. 5991d8ca15 Merge pull request \fI\%#45203\fP from rallytime/merge\-2017.7
  187562. .IP \(bu 2
  187563. 430c913c8c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187564. .INDENT 2.0
  187565. .IP \(bu 2
  187566. d3381e27d0 Merge pull request \fI\%#45118\fP from garethgreenaway/44728_nodegroups_seq
  187567. .INDENT 2.0
  187568. .IP \(bu 2
  187569. 0ff811de70 Swapping import to be the old path for 2016.11
  187570. .IP \(bu 2
  187571. b3e2f388f5 Fix to allow nodegroups to include sequences
  187572. .UNINDENT
  187573. .IP \(bu 2
  187574. f969aca3a3 Merge pull request \fI\%#45127\fP from twangboy/win_fix_pkg
  187575. .INDENT 2.0
  187576. .IP \(bu 2
  187577. 14639739f2 Fix issue with 1641 return code
  187578. .UNINDENT
  187579. .IP \(bu 2
  187580. dc357b39f0 Merge pull request \fI\%#45137\fP from twangboy/win_fix_reg_tests
  187581. .INDENT 2.0
  187582. .IP \(bu 2
  187583. b6f4ef8d73 Catch correct error type in list_keys and list_values
  187584. .UNINDENT
  187585. .IP \(bu 2
  187586. 0aa1662731 Merge pull request \fI\%#45130\fP from rallytime/api\-groups
  187587. .INDENT 2.0
  187588. .IP \(bu 2
  187589. 2dcc8df845 Resolve groups for salt api
  187590. .UNINDENT
  187591. .IP \(bu 2
  187592. 7dc3cc4641 Merge pull request \fI\%#45114\fP from twangboy/win_fix_pam
  187593. .INDENT 2.0
  187594. .IP \(bu 2
  187595. cf5eae1f77 Move pam library load to try/except block
  187596. .UNINDENT
  187597. .UNINDENT
  187598. .UNINDENT
  187599. .IP \(bu 2
  187600. \fBPR\fP \fI\%#45201\fP: (\fI\%rallytime\fP) [2017.7] Check for running on python3 before decoding bytes
  187601. @ \fI2017\-12\-28 22:59:14 UTC\fP
  187602. .INDENT 2.0
  187603. .IP \(bu 2
  187604. \fBPR\fP \fI\%#45090\fP: (\fI\%angeloudy\fP) fix TypeError in python 3 (refs: \fI\%#45201\fP)
  187605. .IP \(bu 2
  187606. 882267314f Merge pull request \fI\%#45201\fP from rallytime/fix\-jinja\-template\-test\-failure
  187607. .IP \(bu 2
  187608. b4af3bdff8 Check for running on python3 before decoding bytes
  187609. .UNINDENT
  187610. .IP \(bu 2
  187611. \fBPR\fP \fI\%#45200\fP: (\fI\%rallytime\fP) [2017.7] Fix docstring integration test failure
  187612. @ \fI2017\-12\-28 22:58:34 UTC\fP
  187613. .INDENT 2.0
  187614. .IP \(bu 2
  187615. \fBPR\fP \fI\%#44552\fP: (\fI\%Da\-Juan\fP) pip_state: Check if available upgrades fulfill version requirements. (refs: \fI\%#45200\fP)
  187616. .IP \(bu 2
  187617. 2e18398f12 Merge pull request \fI\%#45200\fP from rallytime/fix\-docstring\-test\-failure
  187618. .IP \(bu 2
  187619. a26d4795bd [2017.7] Fix docstring integration test failure
  187620. .UNINDENT
  187621. .IP \(bu 2
  187622. \fBPR\fP \fI\%#45186\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44922\fP to 2017.7
  187623. @ \fI2017\-12\-28 19:02:51 UTC\fP
  187624. .INDENT 2.0
  187625. .IP \(bu 2
  187626. \fBPR\fP \fI\%#44922\fP: (\fI\%dincamihai\fP) Fix salt\-master for old psutil (refs: \fI\%#45186\fP)
  187627. .IP \(bu 2
  187628. 67d97303b5 Merge pull request \fI\%#45186\fP from rallytime/bp\-44922
  187629. .IP \(bu 2
  187630. 6970fe8103 Fix salt\-master for old psutil
  187631. .UNINDENT
  187632. .IP \(bu 2
  187633. \fBPR\fP \fI\%#44624\fP: (\fI\%eliasp\fP) Fix Traceback when using the \fIservice.enabled\fP state on non\-booted systems
  187634. @ \fI2017\-12\-28 10:58:43 UTC\fP
  187635. .INDENT 2.0
  187636. .IP \(bu 2
  187637. 30d7f7257a Merge pull request \fI\%#44624\fP from eliasp/fix\-upstart\-utmp\-exception
  187638. .IP \(bu 2
  187639. 43d44e051a Do not blindly assume presence of either \fI/var/run/utmp\fP or \fI/run/utmp\fP, none of both might be available (e.g. on non\-booted systems).
  187640. .UNINDENT
  187641. .IP \(bu 2
  187642. \fBPR\fP \fI\%#45183\fP: (\fI\%twangboy\fP) Add libnacl dependency
  187643. @ \fI2017\-12\-27 22:08:32 UTC\fP
  187644. .INDENT 2.0
  187645. .IP \(bu 2
  187646. 3832e7b227 Merge pull request \fI\%#45183\fP from twangboy/win_add_libnacl_2017.7
  187647. .IP \(bu 2
  187648. b46845888d Add libnacl dependency
  187649. .UNINDENT
  187650. .IP \(bu 2
  187651. \fBISSUE\fP \fI\%#44928\fP: (\fI\%rcallphin\fP) Duplicating master token when no match for Minion policy (Vault Module) (refs: \fI\%#44966\fP)
  187652. .IP \(bu 2
  187653. \fBPR\fP \fI\%#44966\fP: (\fI\%rcallphin\fP) Fix bug with vault runner creating token on empty policy
  187654. @ \fI2017\-12\-22 20:30:37 UTC\fP
  187655. .INDENT 2.0
  187656. .IP \(bu 2
  187657. fbbf33574e Merge pull request \fI\%#44966\fP from rcallphin/fix\-bug\-vault\-empty\-policy
  187658. .IP \(bu 2
  187659. 7f327ab760 Lint: Remove extra whitespace
  187660. .IP \(bu 2
  187661. 04ab6a5e9d Merge branch \(aq2017.7\(aq into fix\-bug\-vault\-empty\-policy
  187662. .IP \(bu 2
  187663. 5be463bb46 Merge branch \(aq2017.7\(aq into fix\-bug\-vault\-empty\-policy
  187664. .IP \(bu 2
  187665. 48d9cc3674 Fix bug with vault runner creating token on empty policy
  187666. .UNINDENT
  187667. .IP \(bu 2
  187668. \fBPR\fP \fI\%#44552\fP: (\fI\%Da\-Juan\fP) pip_state: Check if available upgrades fulfill version requirements. (refs: \fI\%#45200\fP)
  187669. @ \fI2017\-12\-22 19:25:17 UTC\fP
  187670. .INDENT 2.0
  187671. .IP \(bu 2
  187672. 487207f61d Merge pull request \fI\%#44552\fP from Da\-Juan/avoid_unneeded_pip_install
  187673. .IP \(bu 2
  187674. 49a6a8f02e Merge branch \(aq2017.7\(aq into avoid_unneeded_pip_install
  187675. .IP \(bu 2
  187676. 3a8e62493d pip_state: Check if available upgrades fulfill version requirements
  187677. .IP \(bu 2
  187678. 62252d74d9 pip_state: Compare versions using pkg_resources.parse_version
  187679. .IP \(bu 2
  187680. 5219ab974c Add list_all_versions function to pip module
  187681. .UNINDENT
  187682. .IP \(bu 2
  187683. \fBPR\fP \fI\%#45090\fP: (\fI\%angeloudy\fP) fix TypeError in python 3 (refs: \fI\%#45201\fP)
  187684. @ \fI2017\-12\-22 18:11:13 UTC\fP
  187685. .INDENT 2.0
  187686. .IP \(bu 2
  187687. 5ae26f0c09 Merge pull request \fI\%#45090\fP from angeloudy/2017.7
  187688. .IP \(bu 2
  187689. cf411f8984 Merge branch \(aq2017.7\(aq into 2017.7
  187690. .IP \(bu 2
  187691. 177fd18671 fix TypeError in python 3
  187692. .UNINDENT
  187693. .IP \(bu 2
  187694. \fBISSUE\fP \fI\%#44315\fP: (\fI\%whytewolf\fP) cmd.* cwd does not escape spaces. 2017.7.2 (refs: \fI\%#45134\fP)
  187695. .IP \(bu 2
  187696. \fBPR\fP \fI\%#45134\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to cmd.script for cwd with space
  187697. @ \fI2017\-12\-22 15:31:24 UTC\fP
  187698. .INDENT 2.0
  187699. .IP \(bu 2
  187700. a1946730a9 Merge pull request \fI\%#45134\fP from garethgreenaway/44315_cmd_script_cwd_with_space
  187701. .IP \(bu 2
  187702. 48eafe3206 Adding some tests to tests cmd.script with cwd
  187703. .IP \(bu 2
  187704. 8dfcf71b08 Adding _cmd_quote to handle cases when the current working directory for cmd.script might have a space in it.
  187705. .UNINDENT
  187706. .IP \(bu 2
  187707. \fBPR\fP \fI\%#44964\fP: (\fI\%Giandom\fP) added\-highstate\-output\-to\-slack\-engine
  187708. @ \fI2017\-12\-21 21:32:01 UTC\fP
  187709. .INDENT 2.0
  187710. .IP \(bu 2
  187711. f41adfc913 Merge pull request \fI\%#44964\fP from Giandom/2017.7\-added\-highstate\-output\-to\-slack\-engine
  187712. .IP \(bu 2
  187713. 4526c158f1 added\-highstate\-output\-to\-slack\-engine
  187714. .IP \(bu 2
  187715. 573a0a4143 added\-highstate\-output\-to\-slack\-engine
  187716. .IP \(bu 2
  187717. 9a6e03ce6e added\-highstate\-output\-to\-slack\-engine
  187718. .UNINDENT
  187719. .IP \(bu 2
  187720. \fBPR\fP \fI\%#45124\fP: (\fI\%gtmanfred\fP) enable using kitchen\-salt with ec2 on 2017.7
  187721. @ \fI2017\-12\-21 19:11:27 UTC\fP
  187722. .INDENT 2.0
  187723. .IP \(bu 2
  187724. b49ee97938 Merge pull request \fI\%#45124\fP from gtmanfred/2017.7
  187725. .IP \(bu 2
  187726. d0586013eb fix pylint
  187727. .IP \(bu 2
  187728. 59e2e56d13 chmod the xml files before trying to copy
  187729. .IP \(bu 2
  187730. a5c1410e23 catch IOError when copying xml files back
  187731. .IP \(bu 2
  187732. 23bd38ad66 enable using kitchen\-salt on ec2
  187733. .UNINDENT
  187734. .IP \(bu 2
  187735. \fBPR\fP \fI\%#45087\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187736. @ \fI2017\-12\-20 22:24:51 UTC\fP
  187737. .INDENT 2.0
  187738. .IP \(bu 2
  187739. 42e894570d Merge pull request \fI\%#45087\fP from rallytime/merge\-2017.7
  187740. .IP \(bu 2
  187741. fe81e2d39a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187742. .INDENT 2.0
  187743. .IP \(bu 2
  187744. 7e128e8f15 Merge pull request \fI\%#45100\fP from rallytime/bp\-45070
  187745. .INDENT 2.0
  187746. .IP \(bu 2
  187747. 0bdb46dab9 add clouds modules to index
  187748. .UNINDENT
  187749. .IP \(bu 2
  187750. bdf93f339d Merge pull request \fI\%#45098\fP from rallytime/bp\-45092
  187751. .INDENT 2.0
  187752. .IP \(bu 2
  187753. 80b6bd6813 Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install
  187754. .UNINDENT
  187755. .UNINDENT
  187756. .IP \(bu 2
  187757. 4f21a2bbfd Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187758. .INDENT 2.0
  187759. .IP \(bu 2
  187760. 324b7d4058 Merge pull request \fI\%#44078\fP from rossengeorgiev/fix\-41044
  187761. .INDENT 2.0
  187762. .IP \(bu 2
  187763. a81a6fe23c fix \fI\%#41044\fP; allow for date param to be 0
  187764. .UNINDENT
  187765. .IP \(bu 2
  187766. 48a59761df Merge pull request \fI\%#44970\fP from rallytime/update\-bootstrap\-script
  187767. .INDENT 2.0
  187768. .IP \(bu 2
  187769. b2c8057427 Update bootstrap script to latest release: 2017.12.13
  187770. .UNINDENT
  187771. .IP \(bu 2
  187772. 637fdaed58 Merge pull request \fI\%#45069\fP from rallytime/bp\-45040
  187773. .INDENT 2.0
  187774. .IP \(bu 2
  187775. aa438e1605 Installation Fails on headless machines.
  187776. .UNINDENT
  187777. .IP \(bu 2
  187778. 4d6d640381 Merge pull request \fI\%#44969\fP from rallytime/bp\-41305
  187779. .INDENT 2.0
  187780. .IP \(bu 2
  187781. 5c4bee43dc correct accept_vpc_peering_connection
  187782. .UNINDENT
  187783. .IP \(bu 2
  187784. 10de468f13 Merge pull request \fI\%#45031\fP from terminalmage/fix\-mysql\-returner
  187785. .INDENT 2.0
  187786. .IP \(bu 2
  187787. f3bd12c27c Fix invalid exception class in mysql returner
  187788. .UNINDENT
  187789. .IP \(bu 2
  187790. 9a7406207f Merge pull request \fI\%#44972\fP from terminalmage/bp\-44958
  187791. .INDENT 2.0
  187792. .IP \(bu 2
  187793. a416bf0112 No need to manually do connect_pub, use listen=True in run_job
  187794. .IP \(bu 2
  187795. 3ec004bd2e Fix a race condition in manage runner
  187796. .UNINDENT
  187797. .IP \(bu 2
  187798. 1032ca3290 Merge pull request \fI\%#44385\fP from gtmanfred/schedule
  187799. .INDENT 2.0
  187800. .IP \(bu 2
  187801. 9e15c38da2 add comma
  187802. .IP \(bu 2
  187803. 855d933cb7 schedule should be a dict
  187804. .UNINDENT
  187805. .UNINDENT
  187806. .UNINDENT
  187807. .IP \(bu 2
  187808. \fBPR\fP \fI\%#45112\fP: (\fI\%Ch3LL\fP) Fix spm big file build test to check /tmp
  187809. @ \fI2017\-12\-20 22:09:21 UTC\fP
  187810. .INDENT 2.0
  187811. .IP \(bu 2
  187812. 9550e742ac Merge pull request \fI\%#45112\fP from Ch3LL/fix\-arch
  187813. .IP \(bu 2
  187814. 1bd7110a14 Fix spm big file build test to check /tmp
  187815. .UNINDENT
  187816. .IP \(bu 2
  187817. \fBISSUE\fP \fI\%#44303\fP: (\fI\%mwerickso\fP) boto3_route53 module times out on retries (refs: \fI\%#44976\fP)
  187818. .IP \(bu 2
  187819. \fBPR\fP \fI\%#45068\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44976\fP to 2017.7
  187820. @ \fI2017\-12\-20 16:31:22 UTC\fP
  187821. .INDENT 2.0
  187822. .IP \(bu 2
  187823. \fBPR\fP \fI\%#44976\fP: (\fI\%tkwilliams\fP) Fix bad variable name in boto3_route53 module \- resolves \fI\%#44303\fP (refs: \fI\%#45068\fP)
  187824. .IP \(bu 2
  187825. 71f9c7ee49 Merge pull request \fI\%#45068\fP from rallytime/bp\-44976
  187826. .IP \(bu 2
  187827. 0ca0f37805 44303 \- resolves \fI\%#44303\fP
  187828. .UNINDENT
  187829. .IP \(bu 2
  187830. \fBISSUE\fP \fI\%#44961\fP: (\fI\%golmaal\fP) The archive tar function fails to untar file when dest argument is passed (refs: \fI\%#44983\fP)
  187831. .IP \(bu 2
  187832. \fBPR\fP \fI\%#45099\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44983\fP to 2017.7
  187833. @ \fI2017\-12\-20 14:41:22 UTC\fP
  187834. .INDENT 2.0
  187835. .IP \(bu 2
  187836. \fBPR\fP \fI\%#44983\fP: (\fI\%golmaal\fP) Ref:44961 \- Modified archive.tar to add dest at the end of the tar cmd (refs: \fI\%#45099\fP)
  187837. .IP \(bu 2
  187838. 54a33c0e1d Merge pull request \fI\%#45099\fP from rallytime/bp\-44983
  187839. .IP \(bu 2
  187840. 23361de8a2 Ref:44961 \- Modified archive.tar to add dest argument at the end of the tar cmd.
  187841. .UNINDENT
  187842. .IP \(bu 2
  187843. \fBISSUE\fP \fI\%#43533\fP: (\fI\%Ch3LL\fP) Add status.pid Test to Auto Test Suite (refs: \fI\%#44650\fP)
  187844. .IP \(bu 2
  187845. \fBPR\fP \fI\%#44650\fP: (\fI\%frogunder\fP) add status.pid test
  187846. @ \fI2017\-12\-19 16:21:09 UTC\fP
  187847. .INDENT 2.0
  187848. .IP \(bu 2
  187849. e0d7b330fa Merge pull request \fI\%#44650\fP from frogunder/status
  187850. .IP \(bu 2
  187851. 904c0da893 Merge branch \(aq2017.7\(aq into status
  187852. .IP \(bu 2
  187853. 619bd2be1e fix lint error
  187854. .IP \(bu 2
  187855. d406cb07a3 add status.pid test
  187856. .UNINDENT
  187857. .IP \(bu 2
  187858. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#45161\fP, \fI\%#44944\fP)
  187859. .IP \(bu 2
  187860. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#45161\fP)
  187861. @ \fI2017\-12\-19 14:42:49 UTC\fP
  187862. .INDENT 2.0
  187863. .IP \(bu 2
  187864. 422d8b8f1b Merge pull request \fI\%#44944\fP from lomeroe/update_regpol_encoding
  187865. .IP \(bu 2
  187866. 07d04c7bc7 lint fixes for static regexes
  187867. .IP \(bu 2
  187868. d17c46ce41 lint fixes
  187869. .IP \(bu 2
  187870. ab8e431729 do not decode registry.pol file wholesale, but instead decode individual elements of the file
  187871. .UNINDENT
  187872. .IP \(bu 2
  187873. \fBPR\fP \fI\%#44938\fP: (\fI\%The\-Loeki\fP) Libcloud dns fixes
  187874. @ \fI2017\-12\-18 15:47:18 UTC\fP
  187875. .INDENT 2.0
  187876. .IP \(bu 2
  187877. d9a4b9681e Merge pull request \fI\%#44938\fP from The\-Loeki/libcloud_dns_fixes
  187878. .IP \(bu 2
  187879. 276e8828ae libcloud_dns: pylint fix
  187880. .IP \(bu 2
  187881. c994423286 Merge branch \(aq2017.7\(aq into libcloud_dns_fixes
  187882. .UNINDENT
  187883. .IP \(bu 2
  187884. \fBPR\fP \fI\%#44951\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  187885. @ \fI2017\-12\-16 13:16:24 UTC\fP
  187886. .INDENT 2.0
  187887. .IP \(bu 2
  187888. 5137be01ec Merge pull request \fI\%#44951\fP from rallytime/merge\-2017.7
  187889. .IP \(bu 2
  187890. a0d2dd2069 Lint fix
  187891. .IP \(bu 2
  187892. 9db4179462 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  187893. .INDENT 2.0
  187894. .IP \(bu 2
  187895. 68d901b12c Merge pull request \fI\%#44770\fP from cruscio/2016.11
  187896. .INDENT 2.0
  187897. .IP \(bu 2
  187898. e2682bf441 Fix minion ping_interval documentation
  187899. .UNINDENT
  187900. .IP \(bu 2
  187901. d4ab55ec47 Merge pull request \fI\%#44335\fP from gtmanfred/2016.11
  187902. .INDENT 2.0
  187903. .IP \(bu 2
  187904. 3f1268d67f fix patching for python 2.6
  187905. .IP \(bu 2
  187906. 1d0bd5bb32 Merge branch \(aq2016.11\(aq into 2016.11
  187907. .IP \(bu 2
  187908. f02b02032d Merge pull request #4 from terminalmage/pr\-44335
  187909. .INDENT 2.0
  187910. .IP \(bu 2
  187911. b4eb1527a6 Add test for PR 44335
  187912. .UNINDENT
  187913. .IP \(bu 2
  187914. a30af3252e add docker\-ce to docker subtype grains check
  187915. .UNINDENT
  187916. .UNINDENT
  187917. .UNINDENT
  187918. .IP \(bu 2
  187919. \fBPR\fP \fI\%#44995\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_file\fP for Windows
  187920. @ \fI2017\-12\-15 17:05:49 UTC\fP
  187921. .INDENT 2.0
  187922. .IP \(bu 2
  187923. 698b04779e Merge pull request \fI\%#44995\fP from twangboy/win_fix_atomicfile
  187924. .IP \(bu 2
  187925. 8316481944 Comment the salt import
  187926. .IP \(bu 2
  187927. fe34f0c877 Set owner properly on Windows
  187928. .UNINDENT
  187929. .IP \(bu 2
  187930. \fBISSUE\fP \fI\%#44934\fP: (\fI\%vernondcole\fP) http.wait_for_successful_query does not pause for documented intervals (refs: \fI\%#44968\fP)
  187931. .IP \(bu 2
  187932. \fBPR\fP \fI\%#44968\fP: (\fI\%gtmanfred\fP) fix http wait for state
  187933. @ \fI2017\-12\-14 20:06:01 UTC\fP
  187934. .INDENT 2.0
  187935. .IP \(bu 2
  187936. 2e1a57b9bc Merge pull request \fI\%#44968\fP from gtmanfred/http
  187937. .IP \(bu 2
  187938. ca6936f6eb fix http wait for state
  187939. .INDENT 2.0
  187940. .INDENT 3.5
  187941. .INDENT 0.0
  187942. .IP \(bu 2
  187943. c72db283d5 libcloud_dns: Further fixes to state output, pylint fixes
  187944. .IP \(bu 2
  187945. e9bbc23b11 Merge branch \(aq2017.7\(aq into libcloud_dns_fixes
  187946. .UNINDENT
  187947. .UNINDENT
  187948. .UNINDENT
  187949. .UNINDENT
  187950. .IP \(bu 2
  187951. \fBISSUE\fP \fI\%#44811\fP: (\fI\%xuhcc\fP) rbenv.installed fails when rbenv installed globally (refs: \fI\%#44900\fP)
  187952. .IP \(bu 2
  187953. \fBPR\fP \fI\%#44900\fP: (\fI\%xuhcc\fP) Fix TypeError during rbenv ruby installation when rbenv is not found
  187954. @ \fI2017\-12\-14 17:37:14 UTC\fP
  187955. .INDENT 2.0
  187956. .IP \(bu 2
  187957. c4f0894689 Merge pull request \fI\%#44900\fP from xuhcc/rbenv\-ret\-fix
  187958. .IP \(bu 2
  187959. fdd8310c31 Merge branch \(aq2017.7\(aq into rbenv\-ret\-fix
  187960. .IP \(bu 2
  187961. bfd0972d25 Fix TypeError during rbenv ruby installation when rbenv is not found
  187962. .UNINDENT
  187963. .IP \(bu 2
  187964. \fBPR\fP \fI\%#44974\fP: (\fI\%twangboy\fP) Skip test_log_created on Windows
  187965. @ \fI2017\-12\-14 13:59:25 UTC\fP
  187966. .INDENT 2.0
  187967. .IP \(bu 2
  187968. f0c2cf3cec Merge pull request \fI\%#44974\fP from twangboy/win_skip_test_parsers
  187969. .IP \(bu 2
  187970. 40665d7b08 Skip test_log_created on Windows
  187971. .UNINDENT
  187972. .IP \(bu 2
  187973. \fBISSUE\fP \fI\%#44820\fP: (\fI\%msteed\fP) Custom returner breaks manage runner (refs: \fI\%#44958\fP)
  187974. .IP \(bu 2
  187975. \fBPR\fP \fI\%#44958\fP: (\fI\%terminalmage\fP) Fix a race condition in manage runner (refs: \fI\%#44972\fP)
  187976. @ \fI2017\-12\-13 15:20:36 UTC\fP
  187977. .INDENT 2.0
  187978. .IP \(bu 2
  187979. dad2d723ca Merge pull request \fI\%#44958\fP from terminalmage/issue44820
  187980. .IP \(bu 2
  187981. ef749abfc6 No need to manually do connect_pub, use listen=True in run_job
  187982. .IP \(bu 2
  187983. 2ac70cfab5 Fix a race condition in manage runner
  187984. .UNINDENT
  187985. .IP \(bu 2
  187986. \fBPR\fP \fI\%#44956\fP: (\fI\%terminalmage\fP) Avoid traceback when bogus value in pidfile
  187987. @ \fI2017\-12\-13 14:30:12 UTC\fP
  187988. .INDENT 2.0
  187989. .IP \(bu 2
  187990. db58345abb Merge pull request \fI\%#44956\fP from terminalmage/fix\-get_pidfile
  187991. .IP \(bu 2
  187992. d66f3a98d7 Avoid traceback when bogus value in pidfile
  187993. .UNINDENT
  187994. .IP \(bu 2
  187995. \fBISSUE\fP \fI\%#44932\fP: (\fI\%knine\fP) ACLs Not Completely Verified (refs: \fI\%#44945\fP)
  187996. .IP \(bu 2
  187997. \fBPR\fP \fI\%#44945\fP: (\fI\%gtmanfred\fP) Fix handling of effective acls
  187998. @ \fI2017\-12\-12 21:49:34 UTC\fP
  187999. .INDENT 2.0
  188000. .IP \(bu 2
  188001. e8e3b3c8ff Merge pull request \fI\%#44945\fP from gtmanfred/2017.7
  188002. .IP \(bu 2
  188003. 66bb755751 add test for effective acls
  188004. .IP \(bu 2
  188005. 0ff52a93dd use last entry in acl
  188006. .UNINDENT
  188007. .IP \(bu 2
  188008. \fBPR\fP \fI\%#44942\fP: (\fI\%rallytime\fP) Update README with SaltConf18 info
  188009. @ \fI2017\-12\-12 21:47:23 UTC\fP
  188010. .INDENT 2.0
  188011. .IP \(bu 2
  188012. 47dc7b7afb Merge pull request \fI\%#44942\fP from rallytime/readme\-saltconf\-update
  188013. .IP \(bu 2
  188014. d1317c44e2 Update README with SaltConf18 info
  188015. .UNINDENT
  188016. .IP \(bu 2
  188017. \fBISSUE\fP \fI\%#44665\fP: (\fI\%mvivaldi\fP) Documentation of salt renders jinja (refs: \fI\%#44943\fP, \fI\%#44895\fP)
  188018. .IP \(bu 2
  188019. \fBPR\fP \fI\%#44943\fP: (\fI\%mvivaldi\fP) Fix for the jinja documentation
  188020. @ \fI2017\-12\-12 20:20:41 UTC\fP
  188021. .INDENT 2.0
  188022. .IP \(bu 2
  188023. 7572982419 Merge pull request \fI\%#44943\fP from mvivaldi/filters\-doc
  188024. .IP \(bu 2
  188025. d23ac4eabc Fix for the jinja documentation
  188026. .UNINDENT
  188027. .IP \(bu 2
  188028. \fBISSUE\fP \fI\%#43417\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.install and pkg.remove general issues (refs: \fI\%#44832\fP, \fI\%#43708\fP)
  188029. .IP \(bu 2
  188030. \fBPR\fP \fI\%#44832\fP: (\fI\%damon\-atkins\fP) win_pkg: Merge full copy of 2016.11 with many fixes and improvements to 2017.7
  188031. @ \fI2017\-12\-12 18:30:06 UTC\fP
  188032. .INDENT 2.0
  188033. .IP \(bu 2
  188034. 465cacad83 Merge pull request \fI\%#44832\fP from damon\-atkins/2017.7_replace_with_newer_2016.11_win_pkg
  188035. .IP \(bu 2
  188036. a4f0b41ba2 Should be a smaller change set since recent update from 2016.11
  188037. .IP \(bu 2
  188038. 695334b201 Merge branch \(aq2017.7_replace_with_newer_2016.11_win_pkg\(aq of github.com:damon\-atkins/salt into 2017.7_replace_with_newer_2016.11_win_pkg
  188039. .INDENT 2.0
  188040. .IP \(bu 2
  188041. 843e204582 Merge branch \(aq2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188042. .UNINDENT
  188043. .IP \(bu 2
  188044. 4b60b1ec84 Merge remote branch \(aqrefs/remotes/upstream/2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188045. .IP \(bu 2
  188046. b46f818a57 Raise a PR to fix 2016 issues commited here, fixed issues with merge.
  188047. .IP \(bu 2
  188048. 32ef1e12ae Merge branch \(aq2017.7\(aq into 2017.7_replace_with_newer_2016.11_win_pkg
  188049. .IP \(bu 2
  188050. 494835c3f2 I backported develop and applied a long list of fixes to 2016.11 this brings these fixes into 2017.7 \- Software was not always being removed, general if & was in the string or msi was downloaded to uninstall the software \- pkg.list_upgrades failed. Added support for \(aqlatest\(aq and \(aqNot Found\(aq for version_cmp() to fix this. \- output fixes \- pkg.list_available no longer forces a pkg.refresh_db this is no longer required, as by default it will update if older than 6 hours \- cmd /s /c is prefixed for all commands i.e. installs and removes. \- cmd are now strings, instead of a list when using cmd.run. As windows only supports strings. And the " were being broken
  188051. .UNINDENT
  188052. .IP \(bu 2
  188053. \fBPR\fP \fI\%#44754\fP: (\fI\%twangboy\fP) Fix inet_pton for Windows on Py3
  188054. @ \fI2017\-12\-12 14:04:20 UTC\fP
  188055. .INDENT 2.0
  188056. .IP \(bu 2
  188057. a811a92b17 Merge pull request \fI\%#44754\fP from twangboy/win_fix_inet_pton
  188058. .IP \(bu 2
  188059. 25a20109fe Merge branch \(aq2017.7\(aq into win_fix_inet_pton
  188060. .IP \(bu 2
  188061. 849b99eb34 Merge branch \(aq2017.7\(aq into win_fix_inet_pton
  188062. .IP \(bu 2
  188063. df1e6a202b Use salt.ext.six
  188064. .IP \(bu 2
  188065. 5ac8112585 Use six to ensure unicode value
  188066. .IP \(bu 2
  188067. 9b5d8c421b Handle unicode values
  188068. .UNINDENT
  188069. .IP \(bu 2
  188070. \fBPR\fP \fI\%#44931\fP: (\fI\%pkruk\fP) add missing parenthis to keep integration with python3
  188071. @ \fI2017\-12\-12 13:49:39 UTC\fP
  188072. .INDENT 2.0
  188073. .IP \(bu 2
  188074. 53b34e24cd Merge pull request \fI\%#44931\fP from pkruk/fix\-missing\-parenthis
  188075. .IP \(bu 2
  188076. b1ed739b44 Merge branch \(aq2017.7\(aq into fix\-missing\-parenthis
  188077. .IP \(bu 2
  188078. 4f1b1f12d2 Merge branch \(aqfix\-missing\-parenthis\(aq of \fI\%https://github.com/pkruk/salt\fP into fix\-missing\-parenthis
  188079. .INDENT 2.0
  188080. .IP \(bu 2
  188081. 3475d3fa01 add missing parenthis to keep integration with python3
  188082. .UNINDENT
  188083. .IP \(bu 2
  188084. adf38cacfb add missing parenthis to keep integration with python3
  188085. .INDENT 2.0
  188086. .INDENT 3.5
  188087. .INDENT 0.0
  188088. .IP \(bu 2
  188089. ad55e33f57 libcloud_dns: fix state output
  188090. .IP \(bu 2
  188091. a68d594e3a libcloud_dns: copy args before deleting from them
  188092. .UNINDENT
  188093. .UNINDENT
  188094. .UNINDENT
  188095. .UNINDENT
  188096. .IP \(bu 2
  188097. \fBPR\fP \fI\%#44891\fP: (\fI\%twangboy\fP) Fix issue with unsafe path in Windows jenkins tests
  188098. @ \fI2017\-12\-11 21:10:43 UTC\fP
  188099. .INDENT 2.0
  188100. .IP \(bu 2
  188101. ba6146250a Merge pull request \fI\%#44891\fP from twangboy/win_fix_verify
  188102. .IP \(bu 2
  188103. 7232579167 Allow test suite file_roots as a safe path
  188104. .UNINDENT
  188105. .IP \(bu 2
  188106. \fBPR\fP \fI\%#44921\fP: (\fI\%Ch3LL\fP) Add test to ensure log files are created
  188107. @ \fI2017\-12\-11 18:24:16 UTC\fP
  188108. .INDENT 2.0
  188109. .IP \(bu 2
  188110. 85160fd297 Merge pull request \fI\%#44921\fP from Ch3LL/log_test
  188111. .IP \(bu 2
  188112. 3bb58fb577 skip salt\-key log creation test
  188113. .IP \(bu 2
  188114. 6a379195bc Add test to ensure log files are created
  188115. .UNINDENT
  188116. .IP \(bu 2
  188117. \fBPR\fP \fI\%#44787\fP: (\fI\%rallytime\fP) GroupAdd test: Add destructive test decorator to entire class
  188118. @ \fI2017\-12\-11 18:14:18 UTC\fP
  188119. .INDENT 2.0
  188120. .IP \(bu 2
  188121. 54d29a61cb Merge pull request \fI\%#44787\fP from rallytime/groupadd\-destructive\-clean
  188122. .IP \(bu 2
  188123. 817ac002b0 Add destructive test decorator to test class
  188124. .UNINDENT
  188125. .IP \(bu 2
  188126. \fBISSUE\fP \fI\%#44665\fP: (\fI\%mvivaldi\fP) Documentation of salt renders jinja (refs: \fI\%#44943\fP, \fI\%#44895\fP)
  188127. .IP \(bu 2
  188128. \fBPR\fP \fI\%#44895\fP: (\fI\%mvivaldi\fP) Jinja Filters doc
  188129. @ \fI2017\-12\-11 15:32:07 UTC\fP
  188130. .INDENT 2.0
  188131. .IP \(bu 2
  188132. 0292e3612a Merge pull request \fI\%#44895\fP from mvivaldi/filters\-doc
  188133. .IP \(bu 2
  188134. 62409d608a Added Escape Filters and Set Theory Filters in jinja documentation
  188135. .UNINDENT
  188136. .IP \(bu 2
  188137. \fBPR\fP \fI\%#44879\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188138. @ \fI2017\-12\-10 16:53:44 UTC\fP
  188139. .INDENT 2.0
  188140. .IP \(bu 2
  188141. \fBPR\fP \fI\%#44855\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7 (refs: \fI\%#44879\fP)
  188142. .IP \(bu 2
  188143. df28f312ac Merge pull request \fI\%#44879\fP from rallytime/merge\-2017.7
  188144. .IP \(bu 2
  188145. 23c5a4ca3e Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188146. .INDENT 2.0
  188147. .IP \(bu 2
  188148. bb1f8dceaf Merge pull request \fI\%#44579\fP from roaldnefs/fix\-cron\-identifier
  188149. .INDENT 2.0
  188150. .IP \(bu 2
  188151. df73a4c051 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  188152. .UNINDENT
  188153. .IP \(bu 2
  188154. af0131fa1f Merge pull request \fI\%#44852\fP from damon\-atkins/2016.11_win_pkg_typo_n_fix
  188155. .INDENT 2.0
  188156. .IP \(bu 2
  188157. 0e7c19084f Lint: Remove extra whitespace
  188158. .IP \(bu 2
  188159. 7c7e21f94d Fix spelling typo, and fix backwards campatible minion option for repo location
  188160. .UNINDENT
  188161. .IP \(bu 2
  188162. 88c0d66b4e Merge pull request \fI\%#44794\fP from terminalmage/issue44365
  188163. .INDENT 2.0
  188164. .IP \(bu 2
  188165. 3b8b6f25e6 Remove debugging line
  188166. .IP \(bu 2
  188167. 153bf45b03 Fix regression in file.managed when source_hash used with local file
  188168. .UNINDENT
  188169. .IP \(bu 2
  188170. c8bb9dfbbb Merge pull request \fI\%#44738\fP from rallytime/bump\-oxygen\-warnings
  188171. .INDENT 2.0
  188172. .IP \(bu 2
  188173. ead3c569e1 Bump deprecation warnings from Oxygen to Fluorine
  188174. .UNINDENT
  188175. .IP \(bu 2
  188176. 88e3aab00d Merge pull request \fI\%#44741\fP from gtmanfred/rhip
  188177. .INDENT 2.0
  188178. .IP \(bu 2
  188179. 439dc8dce6 if gateway is not specified use iface
  188180. .INDENT 2.0
  188181. .IP \(bu 2
  188182. 3ec4329307 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  188183. .IP \(bu 2
  188184. 99fa05a456 Fix for bug in cron state
  188185. .IP \(bu 2
  188186. 97328faeac Fix for bug in cron module
  188187. .UNINDENT
  188188. .UNINDENT
  188189. .UNINDENT
  188190. .UNINDENT
  188191. .IP \(bu 2
  188192. \fBPR\fP \fI\%#44880\fP: (\fI\%UtahDave\fP) Determine windows hardware arch correctly
  188193. @ \fI2017\-12\-08 22:24:09 UTC\fP
  188194. .INDENT 2.0
  188195. .IP \(bu 2
  188196. 8e14bc3941 Merge pull request \fI\%#44880\fP from UtahDave/2017.7local
  188197. .IP \(bu 2
  188198. 6e3c7ac1ac Merge branch \(aq2017.7\(aq into 2017.7local
  188199. .UNINDENT
  188200. .IP \(bu 2
  188201. \fBPR\fP \fI\%#44861\fP: (\fI\%twangboy\fP) Fix win_lgpo for unknown values (refs: \fI\%#45327\fP)
  188202. @ \fI2017\-12\-08 18:52:05 UTC\fP
  188203. .INDENT 2.0
  188204. .IP \(bu 2
  188205. dc51174670 Merge pull request \fI\%#44861\fP from twangboy/win_fix_lgpo_invalid_value
  188206. .IP \(bu 2
  188207. 89f65e19ff Check for values other than 0 or 1
  188208. .UNINDENT
  188209. .IP \(bu 2
  188210. \fBPR\fP \fI\%#44621\fP: (\fI\%isbm\fP) Bugfix: errors in external pillar causes crash, instead of report of them
  188211. @ \fI2017\-12\-08 18:46:56 UTC\fP
  188212. .INDENT 2.0
  188213. .IP \(bu 2
  188214. f5a143f8c5 Merge pull request \fI\%#44621\fP from isbm/isbm\-bsc1068446\-2017.7
  188215. .IP \(bu 2
  188216. 0d2675c4fe Use variable, instead of direct value
  188217. .IP \(bu 2
  188218. 1ddc47da0a Add unit test for _get_pillar_errors when external pillar is clean and internal contains errors
  188219. .IP \(bu 2
  188220. 68480d5dc9 Add unit test for _get_pillar_errors when both external and internal pillars contains errors
  188221. .IP \(bu 2
  188222. 218a59e93b Add unit test for _get_pillar_errors when external pillar has errors and internal is clean
  188223. .IP \(bu 2
  188224. 3ce19356c2 Add unit test for _get_pillar_errors when external and internal pillars are clean
  188225. .IP \(bu 2
  188226. 67034139d9 Fix unit test: wrong error types in side effect
  188227. .IP \(bu 2
  188228. d9359bca13 Bugfix: unit test mistakenly expects pillar errors as a string, while it is a list
  188229. .IP \(bu 2
  188230. 8c2bdc696b Bugfix: do not pull \(aq_errors\(aq from unchecked objects
  188231. .IP \(bu 2
  188232. d5e30999c7 Remove unused variable (no exception, within the try/finally block)
  188233. .IP \(bu 2
  188234. aad668d559 Fix and clarify docstring.
  188235. .IP \(bu 2
  188236. c2c47e4e71 Rename function from ambiguous name
  188237. .IP \(bu 2
  188238. 265de8e61c Bugfix the logic according to the exact described purpose of the function.
  188239. .INDENT 2.0
  188240. .INDENT 3.5
  188241. .INDENT 0.0
  188242. .IP \(bu 2
  188243. dae9c6aa5c Determine windows hardware arch correctly
  188244. .UNINDENT
  188245. .UNINDENT
  188246. .UNINDENT
  188247. .UNINDENT
  188248. .IP \(bu 2
  188249. \fBPR\fP \fI\%#43379\fP: (\fI\%twangboy\fP) Fix file.managed on Windows with test=True
  188250. @ \fI2017\-12\-07 21:10:43 UTC\fP
  188251. .INDENT 2.0
  188252. .IP \(bu 2
  188253. abe089ad54 Merge pull request \fI\%#43379\fP from twangboy/win_fix_file.managed
  188254. .IP \(bu 2
  188255. edcd581ca5 Merge branch \(aq2017.7\(aq into win_fix_file.managed
  188256. .IP \(bu 2
  188257. a27bb6993a Fix py3 error
  188258. .IP \(bu 2
  188259. 0ff9fa498a Fix test_directory
  188260. .IP \(bu 2
  188261. 187bc1e61e Add back the try/finally blocks
  188262. .IP \(bu 2
  188263. d7241d004f Fix 2 more tests
  188264. .IP \(bu 2
  188265. d5dd42aebe Fix integration tests for Windows
  188266. .IP \(bu 2
  188267. d56bc9aae9 Fix typo
  188268. .IP \(bu 2
  188269. af5565859e Use file functions for symlink and remove
  188270. .IP \(bu 2
  188271. 72ac59c991 Fix some more integration tests for Linux
  188272. .IP \(bu 2
  188273. 3f0499cbc4 Fix some integration tests
  188274. .IP \(bu 2
  188275. a24b964ea5 Fix unit test to handle new Exception
  188276. .IP \(bu 2
  188277. e3c3845f73 Raise CommandExecutionError when file doesn\(aqt exist
  188278. .IP \(bu 2
  188279. 4602f499a2 Remove loader module mixin, add linux paths
  188280. .IP \(bu 2
  188281. 99b27c037f Add tests to avoid future regression
  188282. .IP \(bu 2
  188283. 5c215ed8c2 Fix documentation formatting
  188284. .IP \(bu 2
  188285. 6a4e77e4b9 Return empty or unmodified dict on file not found
  188286. .UNINDENT
  188287. .IP \(bu 2
  188288. \fBISSUE\fP \fI\%#44565\fP: (\fI\%arthurlogilab\fP) NameError: global name \(aq__jid_event__\(aq is not defined when running a runner in the scheduler (refs: \fI\%#44570\fP)
  188289. .IP \(bu 2
  188290. \fBPR\fP \fI\%#44570\fP: (\fI\%gtmanfred\fP) Include client mixin globals in scheduler for runner modules
  188291. @ \fI2017\-12\-07 20:23:33 UTC\fP
  188292. .INDENT 2.0
  188293. .IP \(bu 2
  188294. cf4cbcd340 Merge pull request \fI\%#44570\fP from gtmanfred/2017.7
  188295. .IP \(bu 2
  188296. 7b17f9f63c Merge branch \(aq2017.7\(aq into 2017.7
  188297. .UNINDENT
  188298. .IP \(bu 2
  188299. \fBPR\fP \fI\%#44494\fP: (\fI\%skizunov\fP) Fix broken \fIbeacons_before_connect\fP feature
  188300. @ \fI2017\-12\-07 18:24:49 UTC\fP
  188301. .INDENT 2.0
  188302. .IP \(bu 2
  188303. \fBPR\fP \fI\%#38289\fP: (\fI\%skizunov\fP) Add config options for running beacons/scheduler before connect (refs: \fI\%#44494\fP)
  188304. .IP \(bu 2
  188305. febb913743 Merge pull request \fI\%#44494\fP from skizunov/develop2
  188306. .IP \(bu 2
  188307. 7adcfbf8ec Merge branch \(aq2017.7\(aq into develop2
  188308. .UNINDENT
  188309. .IP \(bu 2
  188310. \fBISSUE\fP \fI\%#44298\fP: (\fI\%skjaro\fP) ipset state check problem (refs: \fI\%#44356\fP)
  188311. .IP \(bu 2
  188312. \fBISSUE\fP \fI\%#39552\fP: (\fI\%Xiami2012\fP) ipset.check new implementation by @lingonl has countless critical bugs (refs: \fI\%#44356\fP)
  188313. .IP \(bu 2
  188314. \fBPR\fP \fI\%#44512\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44356\fP to 2017.7
  188315. @ \fI2017\-12\-07 14:44:50 UTC\fP
  188316. .INDENT 2.0
  188317. .IP \(bu 2
  188318. \fBPR\fP \fI\%#44356\fP: (\fI\%skjaro\fP) Fix ipset state with multiple entries and subtypes separated with comma (refs: \fI\%#44512\fP)
  188319. .IP \(bu 2
  188320. 284a817565 Merge pull request \fI\%#44512\fP from rallytime/bp\-44356
  188321. .IP \(bu 2
  188322. 6f92c71834 Merge branch \(aq2017.7\(aq into bp\-44356
  188323. .IP \(bu 2
  188324. 9a325146df Fix lint violation
  188325. .IP \(bu 2
  188326. 5aac729855 Fix check multiple entries with subtypes separated with comma
  188327. .UNINDENT
  188328. .IP \(bu 2
  188329. \fBPR\fP \fI\%#44748\fP: (\fI\%twangboy\fP) Fix auto login support for OSX
  188330. @ \fI2017\-12\-07 14:22:23 UTC\fP
  188331. .INDENT 2.0
  188332. .IP \(bu 2
  188333. 74ee7ce541 Merge pull request \fI\%#44748\fP from twangboy/osx_fix_auto_login
  188334. .IP \(bu 2
  188335. 068e463870 Fix lint, add integration tests
  188336. .IP \(bu 2
  188337. 3df886df75 Fix lint, add gtmanfreds change
  188338. .IP \(bu 2
  188339. 16cb24614f Add kcpassword functionality
  188340. .UNINDENT
  188341. .IP \(bu 2
  188342. \fBPR\fP \fI\%#44842\fP: (\fI\%twangboy\fP) Win fix lgpo unicode on Py3 issue
  188343. @ \fI2017\-12\-07 14:21:14 UTC\fP
  188344. .INDENT 2.0
  188345. .IP \(bu 2
  188346. b60cca174c Merge pull request \fI\%#44842\fP from twangboy/win_fix_lgpo
  188347. .IP \(bu 2
  188348. efe77999d1 Gate log.debug statement behind successful pop
  188349. .IP \(bu 2
  188350. 1c0ec79cd1 Fix py3 issue
  188351. .UNINDENT
  188352. .IP \(bu 2
  188353. \fBPR\fP \fI\%#44843\fP: (\fI\%twangboy\fP) Fix 2 typos in lgpo module
  188354. @ \fI2017\-12\-06 17:56:44 UTC\fP
  188355. .INDENT 2.0
  188356. .IP \(bu 2
  188357. bb58e2fec0 Merge pull request \fI\%#44843\fP from twangboy/win_fix_lgpo_typo
  188358. .IP \(bu 2
  188359. c8f93e6dd7 Fix 2 types, shorten line lengths for spellchecking
  188360. .UNINDENT
  188361. .IP \(bu 2
  188362. \fBPR\fP \fI\%#44827\fP: (\fI\%mz\-bmcqueen\fP) add more clone options to virtualbox and add better dhcp handling
  188363. @ \fI2017\-12\-06 15:02:23 UTC\fP
  188364. .INDENT 2.0
  188365. .IP \(bu 2
  188366. d6c37ea19c Merge pull request \fI\%#44827\fP from mz\-bmcqueen/2017.7
  188367. .IP \(bu 2
  188368. 4ead3014b7 Merge branch \(aq2017.7\(aq into 2017.7
  188369. .IP \(bu 2
  188370. b7ce154014 Merge branch \(aq2017.7\(aq of \fI\%https://github.com/mz\-bmcqueen/salt\fP into 2017.7
  188371. .INDENT 2.0
  188372. .IP \(bu 2
  188373. 2f80f431b3 Merge branch \(aq2017.7\(aq into 2017.7
  188374. .UNINDENT
  188375. .IP \(bu 2
  188376. c2018c9021 fix pylint complaints
  188377. .IP \(bu 2
  188378. c38ff74261 add more clone options to virtualbox and add better dhcp handling
  188379. .UNINDENT
  188380. .IP \(bu 2
  188381. \fBPR\fP \fI\%#44824\fP: (\fI\%Ch3LL\fP) Add spm \-y and \-f arg integration tests
  188382. @ \fI2017\-12\-05 21:49:32 UTC\fP
  188383. .INDENT 2.0
  188384. .IP \(bu 2
  188385. 019169ed61 Merge pull request \fI\%#44824\fP from Ch3LL/spm_args
  188386. .IP \(bu 2
  188387. d8f81d2e4d fix pylint
  188388. .IP \(bu 2
  188389. 61ac5cf157 Add spm \-y and \-f arg integration tests
  188390. .UNINDENT
  188391. .IP \(bu 2
  188392. \fBPR\fP \fI\%#44742\fP: (\fI\%Ch3LL\fP) Add salt\-cloud action rename integration test
  188393. @ \fI2017\-12\-05 17:44:50 UTC\fP
  188394. .INDENT 2.0
  188395. .IP \(bu 2
  188396. 59b930668c Merge pull request \fI\%#44742\fP from Ch3LL/cloud_action_test
  188397. .IP \(bu 2
  188398. 951d09ca2f remove unnecessary try/except block
  188399. .IP \(bu 2
  188400. c329ced7ee Add salt\-cloud action rename integration test
  188401. .UNINDENT
  188402. .IP \(bu 2
  188403. \fBISSUE\fP \fI\%#42676\fP: (\fI\%mind\-code\fP) Changes in Pillar defined Beacons only apply after Minion restart (refs: \fI\%#44771\fP)
  188404. .IP \(bu 2
  188405. \fBPR\fP \fI\%#44771\fP: (\fI\%garethgreenaway\fP) [2017.7] Back porting \fI\%#44071\fP
  188406. @ \fI2017\-12\-05 17:16:06 UTC\fP
  188407. .INDENT 2.0
  188408. .IP \(bu 2
  188409. \fBPR\fP \fI\%#44071\fP: (\fI\%garethgreenaway\fP) [develop] Various fixes to beacons (refs: \fI\%#44771\fP)
  188410. .IP \(bu 2
  188411. 10442d9211 Merge pull request \fI\%#44771\fP from garethgreenaway/42676_backport_44071
  188412. .IP \(bu 2
  188413. ec2a8b2032 Merge branch \(aq2017.7\(aq into 42676_backport_44071
  188414. .IP \(bu 2
  188415. 180971203e Updating minion to respond to list_available events for beacons
  188416. .IP \(bu 2
  188417. db6fcefe62 Adding list_available which is used by the add function to verify that a becaon exists.
  188418. .IP \(bu 2
  188419. e9e0318bc6 Backporting fixes related to having beacons in pillar from \fI\%#44071\fP
  188420. .UNINDENT
  188421. .IP \(bu 2
  188422. \fBPR\fP \fI\%#44784\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  188423. @ \fI2017\-12\-05 17:13:49 UTC\fP
  188424. .INDENT 2.0
  188425. .IP \(bu 2
  188426. \fBPR\fP \fI\%#44732\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7 (refs: \fI\%#44784\fP)
  188427. .IP \(bu 2
  188428. 23d151b40a Merge pull request \fI\%#44784\fP from rallytime/merge\-2017.7\-1
  188429. .IP \(bu 2
  188430. 3d9eafc4bd Lint: Remove extra empty lines at end of files
  188431. .IP \(bu 2
  188432. 239f3511bf Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  188433. .INDENT 2.0
  188434. .IP \(bu 2
  188435. 97e0cf569c Merge pull request \fI\%#44699\fP from jfindlay/attr_file
  188436. .INDENT 2.0
  188437. .IP \(bu 2
  188438. 9e5a40ea7c Merge branch \(aq2016.11\(aq into attr_file
  188439. .IP \(bu 2
  188440. 5c34607f6c utils/files remove temp file upon move failure
  188441. .UNINDENT
  188442. .IP \(bu 2
  188443. 7434e0afdf Merge pull request \fI\%#44714\fP from rallytime/fix\-44556
  188444. .INDENT 2.0
  188445. .IP \(bu 2
  188446. 1bbe1abeb2 Allow \-\-static option to display state runs with highstate output
  188447. .UNINDENT
  188448. .IP \(bu 2
  188449. 998d714ee7 Merge pull request \fI\%#44517\fP from whytewolf/publish_port_doc_missing
  188450. .INDENT 2.0
  188451. .IP \(bu 2
  188452. 4b5855283a missed one place where i didnt chanbge master_port from my copy to publish_port
  188453. .IP \(bu 2
  188454. e4610baea5 update doc to have publish port
  188455. .UNINDENT
  188456. .IP \(bu 2
  188457. 6169b52749 Merge pull request \fI\%#41279\fP from Ch3LL/add_grain_tests
  188458. .INDENT 2.0
  188459. .IP \(bu 2
  188460. 1b64f15692 Merge branch \(aq2016.11\(aq into add_grain_tests
  188461. .UNINDENT
  188462. .IP \(bu 2
  188463. dc6de050a9 Merge pull request \fI\%#44563\fP from creideiki/pgjsonb\-timestamps\-44544
  188464. .INDENT 2.0
  188465. .IP \(bu 2
  188466. 231e412ca4 Merge branch \(aq2016.11\(aq into pgjsonb\-timestamps\-44544
  188467. .UNINDENT
  188468. .IP \(bu 2
  188469. 4369df020b Merge pull request \fI\%#44602\fP from rallytime/fix\-44601
  188470. .INDENT 2.0
  188471. .IP \(bu 2
  188472. ff303fd060 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  188473. .UNINDENT
  188474. .IP \(bu 2
  188475. 4a4756fc37 Merge pull request \fI\%#44604\fP from lorengordon/doc\-exclude
  188476. .INDENT 2.0
  188477. .IP \(bu 2
  188478. c4a6c40eb3 Documents the exclude argument in state execution module
  188479. .IP \(bu 2
  188480. 15c445e6b9 Send Unix timestamps to database in pgjsonb
  188481. .IP \(bu 2
  188482. 095f1b7d7a Merge branch \(aq2016.11\(aq into add_grain_tests
  188483. .UNINDENT
  188484. .IP \(bu 2
  188485. 91d46d4cfc Merge pull request \fI\%#44434\fP from whytewolf/1837
  188486. .INDENT 2.0
  188487. .IP \(bu 2
  188488. d148e39dda change from md to rst for code reference
  188489. .IP \(bu 2
  188490. 955e305bda fix bad english, as requested by cachedout
  188491. .IP \(bu 2
  188492. 7256fcc1c9 update note to take into account grains_cache
  188493. .IP \(bu 2
  188494. 7a2981585e Merge branch \(aq2016.11\(aq into 1837
  188495. .IP \(bu 2
  188496. aca0405b26 add a note that describes grain rebuilding on restart and refresh
  188497. .INDENT 2.0
  188498. .INDENT 3.5
  188499. .INDENT 0.0
  188500. .IP \(bu 2
  188501. 9ea4db4224 mock socket.getaddrinfo
  188502. .IP \(bu 2
  188503. 78a07e30f4 add more fqdn tests and remove some of the mocking
  188504. .IP \(bu 2
  188505. 5dbf4144ce add ipv6 in opts
  188506. .IP \(bu 2
  188507. eabc1b4f9c Add fqdn and dns core grain tests
  188508. .UNINDENT
  188509. .UNINDENT
  188510. .UNINDENT
  188511. .UNINDENT
  188512. .IP \(bu 2
  188513. a3bd99317f Merge pull request \fI\%#44321\fP from gvengel/fix\-file\-line\-diff\-output
  188514. .INDENT 2.0
  188515. .IP \(bu 2
  188516. 69a50204a6 Add newline for lint.
  188517. .IP \(bu 2
  188518. ef7b6bbb81 Fixed issue with file.line on Windows running Python 2.
  188519. .IP \(bu 2
  188520. 8f89c99fa5 Fix FileModuleTest setUp and tearDown to work on Windows.
  188521. .IP \(bu 2
  188522. 3ac5391f5f Namespace missing functions for file.line on Windows.
  188523. .IP \(bu 2
  188524. b2b8f075b9 Fixed test to work on Windows.
  188525. .IP \(bu 2
  188526. 5a5a2dd026 Added integration test for issue \fI\%#41474\fP
  188527. .IP \(bu 2
  188528. 24d7315f1a Fix file.line diff formatting.
  188529. .UNINDENT
  188530. .IP \(bu 2
  188531. 9ca563718d Merge pull request \fI\%#43708\fP from damon\-atkins/2016.11_43417_Backport_and_Fixes
  188532. .INDENT 2.0
  188533. .IP \(bu 2
  188534. 04d03ea6b8 Updated comment
  188535. .IP \(bu 2
  188536. 1dd565e585 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188537. .IP \(bu 2
  188538. dd48ba2616 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188539. .IP \(bu 2
  188540. a0d08598bf dco fix
  188541. .IP \(bu 2
  188542. 9467899fc6 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188543. .IP \(bu 2
  188544. 6dc180fd0e doco fixes
  188545. .IP \(bu 2
  188546. 2496a42ea4 lint fix
  188547. .IP \(bu 2
  188548. 2c937fbe19 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  188549. .IP \(bu 2
  188550. c9c8c48a4d all remove/install commands are passed to cmd.exe /s /c and commands are passed as strings to cmdmod
  188551. .IP \(bu 2
  188552. 350244bd93 typo in comments and doc strings.
  188553. .IP \(bu 2
  188554. ec31f5a9bd 2017.11/develop version() was ignoring saltenv setting.
  188555. .IP \(bu 2
  188556. b314549a32 Backport of devlop to 2016.11 with additional bug fixes
  188557. .UNINDENT
  188558. .IP \(bu 2
  188559. 68ea22188e Merge pull request \fI\%#44477\fP from rallytime/bp\-44424
  188560. .INDENT 2.0
  188561. .IP \(bu 2
  188562. 4a9f8dcc96 Fix \fI\%#44423\fP: Handle index=None and index=0 distinctly
  188563. .UNINDENT
  188564. .IP \(bu 2
  188565. 2c89050a24 Merge pull request \fI\%#44483\fP from terminalmage/issue44034
  188566. .INDENT 2.0
  188567. .IP \(bu 2
  188568. a9db8becea salt\-call: account for instances where __pillar__ is empty
  188569. .UNINDENT
  188570. .IP \(bu 2
  188571. b5c2028680 Merge pull request \fI\%#44489\fP from whytewolf/1956_log\-granular\-levels
  188572. .INDENT 2.0
  188573. .IP \(bu 2
  188574. 9cdeb4e903 update log\-granular\-levels to describe what they are filtering on
  188575. .UNINDENT
  188576. .IP \(bu 2
  188577. ea07f9c54c Merge pull request \fI\%#44193\fP from twangboy/win_fix_reg
  188578. .INDENT 2.0
  188579. .IP \(bu 2
  188580. 44d6d9f46d Remove unused import (lint)
  188581. .IP \(bu 2
  188582. f7502436bd Fix various issues
  188583. .IP \(bu 2
  188584. 221e6e3b91 make salt.utils.to_unicode return none when passed none
  188585. .IP \(bu 2
  188586. ce41acc788 Fix many issues with reg.py
  188587. .IP \(bu 2
  188588. 4a19df1f7f Use six.text_type instead of str
  188589. .IP \(bu 2
  188590. 1b12acd303 Check type before casting
  188591. .IP \(bu 2
  188592. 03fa37b445 Cast vdata to its proper type
  188593. .UNINDENT
  188594. .IP \(bu 2
  188595. ed8da2450b Merge pull request \fI\%#43863\fP from nicholasmhughes/fix\-atomicfile\-permission\-copy
  188596. .INDENT 2.0
  188597. .IP \(bu 2
  188598. ea852ec5d3 remove index use with stat module attributes
  188599. .IP \(bu 2
  188600. dbeeb0e917 fixes \fI\%#38452\fP atomicfile only copies mode and not user/group perms
  188601. .UNINDENT
  188602. .UNINDENT
  188603. .UNINDENT
  188604. .IP \(bu 2
  188605. \fBPR\fP \fI\%#44788\fP: (\fI\%kris\-anderson\fP) Example yaml of influxdb_user state
  188606. @ \fI2017\-12\-04 14:28:45 UTC\fP
  188607. .INDENT 2.0
  188608. .IP \(bu 2
  188609. 4643a112e7 Merge pull request \fI\%#44788\fP from kris\-anderson/example\-yaml\-of\-influxdb\-user\-state
  188610. .IP \(bu 2
  188611. afd23d058c converted yaml example to use 2 spaces
  188612. .IP \(bu 2
  188613. 29e410c1ea added a code\-block example of how the yaml should be formatted
  188614. .UNINDENT
  188615. .IP \(bu 2
  188616. \fBISSUE\fP \fI\%#42713\fP: (\fI\%boltronics\fP) 2017.7.0 master upgrade breaks mine data on non\-glob matching on minions (refs: \fI\%#44735\fP)
  188617. .IP \(bu 2
  188618. \fBPR\fP \fI\%#44735\fP: (\fI\%gracinet\fP) Backported issue \fI\%#42713\fP to 2017.7
  188619. @ \fI2017\-12\-04 01:43:23 UTC\fP
  188620. .INDENT 2.0
  188621. .IP \(bu 2
  188622. 4ebac09f60 Merge pull request \fI\%#44735\fP from gracinet/42713_backport_2017.7
  188623. .IP \(bu 2
  188624. 6806d83314 Merge branch \(aq2017.7\(aq into 42713_backport_2017.7
  188625. .IP \(bu 2
  188626. fb586c6dce Backported issue \fI\%#42713\fP to 2017.7
  188627. .UNINDENT
  188628. .IP \(bu 2
  188629. \fBPR\fP \fI\%#44766\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_process\fP for Windows
  188630. @ \fI2017\-12\-02 13:15:53 UTC\fP
  188631. .INDENT 2.0
  188632. .IP \(bu 2
  188633. 06ce7b7328 Merge pull request \fI\%#44766\fP from twangboy/win_fix_test_process
  188634. .IP \(bu 2
  188635. a5737e8fc3 Fix lint errors
  188636. .IP \(bu 2
  188637. be96de09cc Fix pickling error by decorating
  188638. .UNINDENT
  188639. .IP \(bu 2
  188640. \fBISSUE\fP \fI\%#44083\fP: (\fI\%ari\fP) timezone.system fails when /etc/localtime is missing on FreeBSD (refs: \fI\%#44605\fP)
  188641. .IP \(bu 2
  188642. \fBPR\fP \fI\%#44716\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44605\fP to 2017.7
  188643. @ \fI2017\-12\-01 23:12:24 UTC\fP
  188644. .INDENT 2.0
  188645. .IP \(bu 2
  188646. \fBPR\fP \fI\%#44605\fP: (\fI\%campbellmc\fP) Add handling for FreeBSD in timezone.zone_compare (refs: \fI\%#44716\fP)
  188647. .IP \(bu 2
  188648. f8b8a8966d Merge pull request \fI\%#44716\fP from rallytime/bp\-44605
  188649. .IP \(bu 2
  188650. 9d43221422 Correct indentation
  188651. .IP \(bu 2
  188652. d6e28ebed1 Add handling for FreeBSD in method zone_compare to avoid exception when /etc/localtime file does is absent. This is valid configuration on FreeBSD and represents UTC.
  188653. .UNINDENT
  188654. .IP \(bu 2
  188655. \fBISSUE\fP \fI\%#41869\fP: (\fI\%mirceaulinic\fP) Thorium: unable to execute runners (refs: \fI\%#44781\fP)
  188656. .IP \(bu 2
  188657. \fBPR\fP \fI\%#44781\fP: (\fI\%mirceaulinic\fP) Correct the thorium runner
  188658. @ \fI2017\-12\-01 22:55:52 UTC\fP
  188659. .INDENT 2.0
  188660. .IP \(bu 2
  188661. 8ed6287762 Merge pull request \fI\%#44781\fP from cloudflare/thorium\-fix\-41869
  188662. .IP \(bu 2
  188663. 83c73a69cb Instance the Runner class instead of the RunnerClient as we\(aqre running on the Master
  188664. .IP \(bu 2
  188665. b72b7c5402 Correct the thorium runner
  188666. .UNINDENT
  188667. .IP \(bu 2
  188668. \fBPR\fP \fI\%#44466\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_disk\fP for Windows
  188669. @ \fI2017\-12\-01 22:31:42 UTC\fP
  188670. .INDENT 2.0
  188671. .IP \(bu 2
  188672. 52596be102 Merge pull request \fI\%#44466\fP from twangboy/win_fix_test_disk
  188673. .IP \(bu 2
  188674. 5615862f23 Fix some lint
  188675. .IP \(bu 2
  188676. 627d5ab0c9 Mock \fIsalt.utils.which\fP
  188677. .IP \(bu 2
  188678. e5a96fe00f Skip test_fstype on Windows
  188679. .UNINDENT
  188680. .IP \(bu 2
  188681. \fBISSUE\fP \fI\%#42763\fP: (\fI\%xuhcc\fP) acme.cert state falsely reports about renewed certificate (refs: \fI\%#44667\fP)
  188682. .IP \(bu 2
  188683. \fBPR\fP \fI\%#44719\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44667\fP to 2017.7
  188684. @ \fI2017\-12\-01 15:20:49 UTC\fP
  188685. .INDENT 2.0
  188686. .IP \(bu 2
  188687. \fBPR\fP \fI\%#44667\fP: (\fI\%oarmstrong\fP) Fix acme.cert to run certbot non\-interactively (refs: \fI\%#44719\fP)
  188688. .IP \(bu 2
  188689. b9ad4bba2d Merge pull request \fI\%#44719\fP from rallytime/bp\-44667
  188690. .IP \(bu 2
  188691. 3d85a260c4 Fix acme.cert to run certbot non\-interactively
  188692. .UNINDENT
  188693. .IP \(bu 2
  188694. \fBISSUE\fP \fI\%#44744\fP: (\fI\%brmzkw\fP) roster_defaults breaks salt\-ssh globbing (refs: \fI\%#44747\fP)
  188695. .IP \(bu 2
  188696. \fBPR\fP \fI\%#44747\fP: (\fI\%gtmanfred\fP) use a copy so roster_defaults doesn\(aqt mangle
  188697. @ \fI2017\-12\-01 15:13:48 UTC\fP
  188698. .INDENT 2.0
  188699. .IP \(bu 2
  188700. d23192c492 Merge pull request \fI\%#44747\fP from gtmanfred/roster_defaults
  188701. .IP \(bu 2
  188702. 911411ed8f add unit test
  188703. .IP \(bu 2
  188704. eefcfc719c use a copy so roster_defaults doesn\(aqt mangle
  188705. .UNINDENT
  188706. .IP \(bu 2
  188707. \fBISSUE\fP \fI\%#44694\fP: (\fI\%thuhak\fP) state module at.absent does\(aqt work (refs: \fI\%#44717\fP)
  188708. .IP \(bu 2
  188709. \fBPR\fP \fI\%#44717\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to at module
  188710. @ \fI2017\-12\-01 14:37:05 UTC\fP
  188711. .INDENT 2.0
  188712. .IP \(bu 2
  188713. 20f20ad9e1 Merge pull request \fI\%#44717\fP from garethgreenaway/44694_at_absent_failing_to_find_jobs
  188714. .IP \(bu 2
  188715. 1f2b3c5f46 Merge branch \(aq2017.7\(aq into 44694_at_absent_failing_to_find_jobs
  188716. .IP \(bu 2
  188717. 3bb385b44e removing debugging logging
  188718. .IP \(bu 2
  188719. 7f0ff5a8b0 When passing IDs on the command line convert them all the strings for later comparision.
  188720. .IP \(bu 2
  188721. 99e436add4 When looking for job ids to remove based on the tag_name the comparision was comparing an INT to a STR, so the correct job id was not being returned.
  188722. .UNINDENT
  188723. .IP \(bu 2
  188724. \fBISSUE\fP \fI\%#44136\fP: (\fI\%dupsatou\fP) KeyError: \(aqrunas\(aq after updating to latest salt in yum repo. (refs: \fI\%#44695\fP)
  188725. .IP \(bu 2
  188726. \fBPR\fP \fI\%#44695\fP: (\fI\%gtmanfred\fP) pop None for runas and runas_password
  188727. @ \fI2017\-12\-01 14:35:01 UTC\fP
  188728. .INDENT 2.0
  188729. .IP \(bu 2
  188730. 6e61aa787f Merge pull request \fI\%#44695\fP from gtmanfred/pop
  188731. .IP \(bu 2
  188732. 0efb90b6f7 Merge branch \(aq2017.7\(aq into pop
  188733. .UNINDENT
  188734. .IP \(bu 2
  188735. \fBPR\fP \fI\%#44725\fP: (\fI\%whytewolf\fP) document note suggesting systemd\-run \-\-scope with cmd.run_bg
  188736. @ \fI2017\-11\-30 19:18:06 UTC\fP
  188737. .INDENT 2.0
  188738. .IP \(bu 2
  188739. 20391c54c0 Merge pull request \fI\%#44725\fP from whytewolf/1919_cmd.run_no_daemons
  188740. .IP \(bu 2
  188741. 4b11f8d66d add quick documentation suggesting systemd\-run \-\-scope if using cmd.run_bg with systemd
  188742. .UNINDENT
  188743. .IP \(bu 2
  188744. \fBISSUE\fP \fI\%#42300\fP: (\fI\%mirceaulinic\fP) Grains state doesn\(aqt work (fine) with proxy minions (refs: \fI\%#44760\fP)
  188745. .IP \(bu 2
  188746. \fBISSUE\fP \fI\%#42074\fP: (\fI\%mirceaulinic\fP) How to configure static grains for proxy minions (refs: \fI\%#44549\fP)
  188747. .IP \(bu 2
  188748. \fBPR\fP \fI\%#44760\fP: (\fI\%mirceaulinic\fP) Fix the grains.setvals execution function when working with proxy minions
  188749. @ \fI2017\-11\-30 18:27:02 UTC\fP
  188750. .INDENT 2.0
  188751. .IP \(bu 2
  188752. \fBPR\fP \fI\%#44549\fP: (\fI\%mirceaulinic\fP) Allow proxy minions to load static grains (refs: \fI\%#44760\fP)
  188753. .IP \(bu 2
  188754. 85451ae977 Merge pull request \fI\%#44760\fP from cloudflare/px\-grains\-set\-42300
  188755. .IP \(bu 2
  188756. 655139d01c Different path to the static grains file when running under a proxy minion
  188757. .IP \(bu 2
  188758. 3eec8dbc63 Dummy proxy: catch EOFError instead of IOError
  188759. .UNINDENT
  188760. .IP \(bu 2
  188761. \fBISSUE\fP \fI\%#44583\fP: (\fI\%creideiki\fP) Using splay in cron schedule throws exception "unsupported operand type(s) for +: \(aqNoneType\(aq and \(aqint\(aq" (refs: \fI\%#44640\fP)
  188762. .IP \(bu 2
  188763. \fBPR\fP \fI\%#44640\fP: (\fI\%vutny\fP) Fix \fI\%#44583\fP: splay with cron\-like scheduled jobs
  188764. @ \fI2017\-11\-30 15:30:41 UTC\fP
  188765. .INDENT 2.0
  188766. .IP \(bu 2
  188767. 06fb80b69c Merge pull request \fI\%#44640\fP from vutny/fix\-cron\-schedule\-splay
  188768. .IP \(bu 2
  188769. d1f247e49e Add basic unit tests for schedule util eval func
  188770. .IP \(bu 2
  188771. 6ff8e75ac6 Fix \fI\%#44583\fP: splay with cron\-like scheduled jobs
  188772. .UNINDENT
  188773. .IP \(bu 2
  188774. \fBPR\fP \fI\%#44712\fP: (\fI\%Ch3LL\fP) Add pillar ssh integration tests
  188775. @ \fI2017\-11\-30 15:29:33 UTC\fP
  188776. .INDENT 2.0
  188777. .IP \(bu 2
  188778. e5a1401b82 Merge pull request \fI\%#44712\fP from Ch3LL/ssh_pillar_items
  188779. .IP \(bu 2
  188780. 97ec0e6ea0 Merge branch \(aq2017.7\(aq into ssh_pillar_items
  188781. .IP \(bu 2
  188782. c7f5af1274 Add pillar ssh integration tests
  188783. .UNINDENT
  188784. .IP \(bu 2
  188785. \fBPR\fP \fI\%#44763\fP: (\fI\%mirceaulinic\fP) Just a small improvement to the Thorium documentation
  188786. @ \fI2017\-11\-30 14:38:03 UTC\fP
  188787. .INDENT 2.0
  188788. .IP \(bu 2
  188789. 2e1c946990 Merge pull request \fI\%#44763\fP from cloudflare/thorium\-doc
  188790. .IP \(bu 2
  188791. f8d69dd0ba Add thorium_roots configuration example
  188792. .IP \(bu 2
  188793. 4610fb4e62 thorium_roots not thorium_roots_dir
  188794. .UNINDENT
  188795. .IP \(bu 2
  188796. \fBPR\fP \fI\%#44531\fP: (\fI\%mirceaulinic\fP) Add deprecation notes for the NAPALM native templates
  188797. @ \fI2017\-11\-30 14:18:56 UTC\fP
  188798. .INDENT 2.0
  188799. .IP \(bu 2
  188800. 8ba2df1ea0 Merge pull request \fI\%#44531\fP from cloudflare/deprecate\-napalm\-tpl
  188801. .IP \(bu 2
  188802. b462776d8b Add deprecation notes for the NAPALM native templates
  188803. .UNINDENT
  188804. .IP \(bu 2
  188805. \fBPR\fP \fI\%#44737\fP: (\fI\%twangboy\fP) Skip \fIunit.transport.test_ipc\fP for Windows
  188806. @ \fI2017\-11\-29 19:18:21 UTC\fP
  188807. .INDENT 2.0
  188808. .IP \(bu 2
  188809. 7bde48282e Merge pull request \fI\%#44737\fP from twangboy/win_skip_test_ipc
  188810. .IP \(bu 2
  188811. 4e0359b603 Skip IPC transport tests in Windows, not supported
  188812. .UNINDENT
  188813. .IP \(bu 2
  188814. \fBPR\fP \fI\%#44629\fP: (\fI\%Ch3LL\fP) Add masterless state.highstate integration test
  188815. @ \fI2017\-11\-29 19:05:23 UTC\fP
  188816. .INDENT 2.0
  188817. .IP \(bu 2
  188818. c5206113ce Merge pull request \fI\%#44629\fP from Ch3LL/high_masterless
  188819. .IP \(bu 2
  188820. 9b7421b261 Change check to the state id
  188821. .IP \(bu 2
  188822. 9cc853e3d5 Add masterless state.highstate integration test
  188823. .UNINDENT
  188824. .IP \(bu 2
  188825. \fBPR\fP \fI\%#44613\fP: (\fI\%Ch3LL\fP) Add pillar.items test for masterless
  188826. @ \fI2017\-11\-29 14:43:11 UTC\fP
  188827. .INDENT 2.0
  188828. .IP \(bu 2
  188829. 2dc3e5c42a Merge pull request \fI\%#44613\fP from Ch3LL/pillar_masterless
  188830. .IP \(bu 2
  188831. 2c2e1e2332 Merge branch \(aq2017.7\(aq into pillar_masterless
  188832. .IP \(bu 2
  188833. 69134e83ca Change order of local kwarg in run_call method
  188834. .IP \(bu 2
  188835. b3b5ecc6ff Add pillar.items test for masterless
  188836. .UNINDENT
  188837. .IP \(bu 2
  188838. \fBPR\fP \fI\%#44659\fP: (\fI\%Ch3LL\fP) Add state.sls_id to ssh wrapper and tests
  188839. @ \fI2017\-11\-29 14:41:47 UTC\fP
  188840. .INDENT 2.0
  188841. .IP \(bu 2
  188842. cc05481026 Merge pull request \fI\%#44659\fP from Ch3LL/ssh_sls_id
  188843. .IP \(bu 2
  188844. 04b5a3dd4e Add state.sls_id to ssh wrapper and tests
  188845. .UNINDENT
  188846. .IP \(bu 2
  188847. \fBPR\fP \fI\%#44698\fP: (\fI\%Ch3LL\fP) Add salt\-ssh mine.get integration test
  188848. @ \fI2017\-11\-28 22:15:29 UTC\fP
  188849. .INDENT 2.0
  188850. .IP \(bu 2
  188851. 642eed11e1 Merge pull request \fI\%#44698\fP from Ch3LL/mine_ssh
  188852. .IP \(bu 2
  188853. f6a72acfe3 Merge branch \(aq2017.7\(aq into mine_ssh
  188854. .IP \(bu 2
  188855. 9e67babf85 Add teardown to remove ssh dir
  188856. .IP \(bu 2
  188857. f90b4f7653 Add salt\-ssh mine.get integration test
  188858. .UNINDENT
  188859. .IP \(bu 2
  188860. \fBPR\fP \fI\%#44697\fP: (\fI\%Ch3LL\fP) Sort the show_top results for test_state_show_top test
  188861. @ \fI2017\-11\-28 20:35:41 UTC\fP
  188862. .INDENT 2.0
  188863. .IP \(bu 2
  188864. 5d82df5667 Merge pull request \fI\%#44697\fP from Ch3LL/show_top_test
  188865. .IP \(bu 2
  188866. 974db59dc1 convert the assert to a union set instead
  188867. .IP \(bu 2
  188868. add43c4cfe Sort the show_top results for test_state_show_top test
  188869. .UNINDENT
  188870. .IP \(bu 2
  188871. \fBPR\fP \fI\%#44608\fP: (\fI\%Ch3LL\fP) Add jinja to ssh sls test file
  188872. @ \fI2017\-11\-27 22:00:28 UTC\fP
  188873. .INDENT 2.0
  188874. .IP \(bu 2
  188875. f2f6817e86 Merge pull request \fI\%#44608\fP from Ch3LL/ssh_jinja
  188876. .IP \(bu 2
  188877. df669b551d Merge branch \(aq2017.7\(aq into ssh_jinja
  188878. .IP \(bu 2
  188879. ca97517795 Add jinja to ssh sls test file
  188880. .UNINDENT
  188881. .IP \(bu 2
  188882. \fBISSUE\fP \fI\%#33957\fP: (\fI\%ghost\fP) grains.setval doesn\(aqt setval if set in /etc/salt/minion (refs: \fI\%#44663\fP)
  188883. .IP \(bu 2
  188884. \fBPR\fP \fI\%#44663\fP: (\fI\%whytewolf\fP) Update notes around grains topic, and salt.modules.grains and salt.state.grains
  188885. @ \fI2017\-11\-27 21:33:38 UTC\fP
  188886. .INDENT 2.0
  188887. .IP \(bu 2
  188888. 04b97bcfad Merge pull request \fI\%#44663\fP from whytewolf/ZD1777_ensure_understanding_of_minion_config_over_grains_file
  188889. .IP \(bu 2
  188890. c9122e4b85 fixed pylint error, and updated description on at the top the the module and state.
  188891. .IP \(bu 2
  188892. 7fb208b5ad Update note in topics/grains to reflect that not all grains are ignored. only those set in the minion config
  188893. .UNINDENT
  188894. .IP \(bu 2
  188895. \fBPR\fP \fI\%#44332\fP: (\fI\%mirceaulinic\fP) Improve the net.load_config execution function
  188896. @ \fI2017\-11\-27 21:22:18 UTC\fP
  188897. .INDENT 2.0
  188898. .IP \(bu 2
  188899. 364deee6ac Merge pull request \fI\%#44332\fP from cloudflare/improve\-net\-load
  188900. .IP \(bu 2
  188901. cd0bac87e6 Merge branch \(aq2017.7\(aq into improve\-net\-load
  188902. .IP \(bu 2
  188903. 6d861f9a74 Disable pylint warning
  188904. .IP \(bu 2
  188905. 3a0945ce3d Merge pull request #11 from tonybaloney/gh_44332_clone
  188906. .INDENT 2.0
  188907. .IP \(bu 2
  188908. 88ef9f18fc ignore lint error on import
  188909. .IP \(bu 2
  188910. 25427d845e convert key iterator to list as python 3 wont index an iterator
  188911. .UNINDENT
  188912. .IP \(bu 2
  188913. bce50154e5 Merge branch \(aq2017.7\(aq into improve\-net\-load
  188914. .IP \(bu 2
  188915. ba4a62769c Fix trailing spaces
  188916. .IP \(bu 2
  188917. 0a47a7acbf Merge pull request #10 from tonybaloney/gh_44332_clone
  188918. .INDENT 2.0
  188919. .IP \(bu 2
  188920. ba0280e727 linting updates
  188921. .IP \(bu 2
  188922. 78b90f3d0c add remaining tests
  188923. .IP \(bu 2
  188924. 386c4e5791 add tests for all the getters
  188925. .UNINDENT
  188926. .IP \(bu 2
  188927. f3d2d1aaaa Merge pull request #9 from tonybaloney/gh_44332_clone
  188928. .INDENT 2.0
  188929. .IP \(bu 2
  188930. c63222358b update tests with correct assertions and mock methods on device instance
  188931. .IP \(bu 2
  188932. b69c559c52 fix kwargs typo
  188933. .UNINDENT
  188934. .IP \(bu 2
  188935. edea76d3f3 Improve the net.load_config function
  188936. .UNINDENT
  188937. .IP \(bu 2
  188938. \fBPR\fP \fI\%#44664\fP: (\fI\%mvivaldi\fP) Patch 1
  188939. @ \fI2017\-11\-27 21:17:20 UTC\fP
  188940. .INDENT 2.0
  188941. .IP \(bu 2
  188942. b6a1ed06b8 Merge pull request \fI\%#44664\fP from mvivaldi/patch\-1
  188943. .IP \(bu 2
  188944. 4551999ec7 Update jinja.py
  188945. .IP \(bu 2
  188946. ae13d57307 Update file.py
  188947. .UNINDENT
  188948. .IP \(bu 2
  188949. \fBISSUE\fP \fI\%#42074\fP: (\fI\%mirceaulinic\fP) How to configure static grains for proxy minions (refs: \fI\%#44549\fP)
  188950. .IP \(bu 2
  188951. \fBPR\fP \fI\%#44549\fP: (\fI\%mirceaulinic\fP) Allow proxy minions to load static grains (refs: \fI\%#44760\fP)
  188952. @ \fI2017\-11\-27 20:57:09 UTC\fP
  188953. .INDENT 2.0
  188954. .IP \(bu 2
  188955. 9ea4ee1479 Merge pull request \fI\%#44549\fP from cloudflare/fix\-proxy\-grains
  188956. .IP \(bu 2
  188957. 7b03574ab6 Merge branch \(aq2017.7\(aq into fix\-proxy\-grains
  188958. .IP \(bu 2
  188959. 0320174ea4 Add doc note regarding static grains on proxy minions
  188960. .IP \(bu 2
  188961. 509d1af832 Allow proxy minions to load static grains
  188962. .UNINDENT
  188963. .IP \(bu 2
  188964. \fBPR\fP \fI\%#44572\fP: (\fI\%Ch3LL\fP) Add watch_in integration test
  188965. @ \fI2017\-11\-27 20:52:31 UTC\fP
  188966. .INDENT 2.0
  188967. .IP \(bu 2
  188968. 5ec7ea0bb5 Merge pull request \fI\%#44572\fP from Ch3LL/watchin_test
  188969. .IP \(bu 2
  188970. 0a54584ddb Merge branch \(aq2017.7\(aq into watchin_test
  188971. .IP \(bu 2
  188972. 898c28e6d9 Merge branch \(aq2017.7\(aq into watchin_test
  188973. .IP \(bu 2
  188974. 3df70f3fed remove iter for watch_in failure test
  188975. .IP \(bu 2
  188976. ac437ddf90 add order check and remove iter
  188977. .IP \(bu 2
  188978. 5f2b4f434e Add watch_in integration test
  188979. .INDENT 2.0
  188980. .INDENT 3.5
  188981. .INDENT 0.0
  188982. .IP \(bu 2
  188983. c6733ac1ee pop None
  188984. .UNINDENT
  188985. .UNINDENT
  188986. .UNINDENT
  188987. .UNINDENT
  188988. .IP \(bu 2
  188989. \fBPR\fP \fI\%#44616\fP: (\fI\%Ch3LL\fP) Add Non Base Environement salt:// source integration test
  188990. @ \fI2017\-11\-22 16:13:54 UTC\fP
  188991. .INDENT 2.0
  188992. .IP \(bu 2
  188993. d6ccf4bb30 Merge pull request \fI\%#44616\fP from Ch3LL/nonbase_test
  188994. .IP \(bu 2
  188995. 80b71652e3 Merge branch \(aq2017.7\(aq into nonbase_test
  188996. .IP \(bu 2
  188997. c9ba33432e Add Non Base Environement salt:// source integration test
  188998. .UNINDENT
  188999. .IP \(bu 2
  189000. \fBPR\fP \fI\%#44617\fP: (\fI\%Ch3LL\fP) Add ssh thin_dir integration test
  189001. @ \fI2017\-11\-22 16:12:51 UTC\fP
  189002. .INDENT 2.0
  189003. .IP \(bu 2
  189004. 3ace504c8c Merge pull request \fI\%#44617\fP from Ch3LL/thindir_ssh
  189005. .IP \(bu 2
  189006. 071a1bd65b Merge branch \(aq2017.7\(aq into thindir_ssh
  189007. .UNINDENT
  189008. .IP \(bu 2
  189009. \fBPR\fP \fI\%#44625\fP: (\fI\%Ch3LL\fP) Add salt\-key \-d integration test
  189010. @ \fI2017\-11\-22 03:15:23 UTC\fP
  189011. .INDENT 2.0
  189012. .IP \(bu 2
  189013. 2cd618f99b Merge pull request \fI\%#44625\fP from Ch3LL/delete_key_test
  189014. .IP \(bu 2
  189015. 443dc1e16b Merge branch \(aq2017.7\(aq into delete_key_test
  189016. .UNINDENT
  189017. .IP \(bu 2
  189018. \fBISSUE\fP \fI\%#44601\fP: (\fI\%rallytime\fP) CherryPy 12.0 removed support for "engine.timeout_monitor.on" config option (refs: \fI\%#44602\fP)
  189019. .IP \(bu 2
  189020. \fBPR\fP \fI\%#44614\fP: (\fI\%rallytime\fP) [2017.7] Move PR \fI\%#44602\fP forward to 2017.7
  189021. @ \fI2017\-11\-21 21:21:06 UTC\fP
  189022. .INDENT 2.0
  189023. .IP \(bu 2
  189024. \fBPR\fP \fI\%#44602\fP: (\fI\%rallytime\fP) Handle timeout_monitor attribute error for new versions of CherryPy (refs: \fI\%#44614\fP)
  189025. .IP \(bu 2
  189026. 4f30e845ee Merge pull request \fI\%#44614\fP from rallytime/44602\-2017.7
  189027. .IP \(bu 2
  189028. 628f015c1b Move TimoutError check lower down in exception list
  189029. .IP \(bu 2
  189030. d26d9ff5e4 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  189031. .IP \(bu 2
  189032. 359a59dd64 Add salt\-key \-d integration test
  189033. .IP \(bu 2
  189034. 74ededafa7 Add ssh thin_dir integration test
  189035. .INDENT 2.0
  189036. .INDENT 3.5
  189037. .INDENT 0.0
  189038. .IP \(bu 2
  189039. 4d0806e28c Merge branch \(aq2017.7\(aq into develop2
  189040. .IP \(bu 2
  189041. 4d0d023115 Fix broken \fIbeacons_before_connect\fP feature
  189042. .INDENT 2.0
  189043. .IP \(bu 2
  189044. 98536110d9 Merge branch \(aq2017.7\(aq into 2017.7
  189045. .UNINDENT
  189046. .UNINDENT
  189047. .UNINDENT
  189048. .UNINDENT
  189049. .UNINDENT
  189050. .IP \(bu 2
  189051. \fBPR\fP \fI\%#44571\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43822\fP to 2017.7
  189052. @ \fI2017\-11\-20 19:01:26 UTC\fP
  189053. .INDENT 2.0
  189054. .IP \(bu 2
  189055. \fBPR\fP \fI\%#43822\fP: (\fI\%chnrxn\fP) check_result: Correctly check the __extend__ state. (refs: \fI\%#44571\fP)
  189056. .IP \(bu 2
  189057. 136b9e3bc4 Merge pull request \fI\%#44571\fP from rallytime/bp\-43822
  189058. .IP \(bu 2
  189059. f81bb61f2d check_result: Correctly check the __extend__ state.
  189060. .UNINDENT
  189061. .IP \(bu 2
  189062. \fBPR\fP \fI\%#44588\fP: (\fI\%rallytime\fP) Add documentation about logging before modules are loaded
  189063. @ \fI2017\-11\-20 18:43:18 UTC\fP
  189064. .INDENT 2.0
  189065. .IP \(bu 2
  189066. \fBPR\fP \fI\%#44576\fP: (\fI\%rallytime\fP) Remove logging from top of napalm util file (refs: \fI\%#44588\fP)
  189067. .IP \(bu 2
  189068. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189069. .IP \(bu 2
  189070. bea7f65291 Merge pull request \fI\%#44588\fP from rallytime/logging\-in\-virtual\-funcs
  189071. .IP \(bu 2
  189072. 90d1cb221d Add documentation about logging before modules are loaded
  189073. .UNINDENT
  189074. .IP \(bu 2
  189075. \fBPR\fP \fI\%#44513\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44472\fP to 2017.7
  189076. @ \fI2017\-11\-20 16:09:02 UTC\fP
  189077. .INDENT 2.0
  189078. .IP \(bu 2
  189079. \fBPR\fP \fI\%#44472\fP: (\fI\%mephi42\fP) nova: fix endpoint URL determination in _v3_setup() (refs: \fI\%#44513\fP)
  189080. .IP \(bu 2
  189081. a8044b73c3 Merge pull request \fI\%#44513\fP from rallytime/bp\-44472
  189082. .IP \(bu 2
  189083. 6e00e415d3 nova: fix endpoint URL determination in _v3_setup()
  189084. .UNINDENT
  189085. .IP \(bu 2
  189086. \fBPR\fP \fI\%#44596\fP: (\fI\%roaldnefs\fP) Fixed Mattermost module documentation
  189087. @ \fI2017\-11\-19 23:30:53 UTC\fP
  189088. .INDENT 2.0
  189089. .IP \(bu 2
  189090. f55b9daa63 Merge pull request \fI\%#44596\fP from roaldnefs/fix\-mattermost\-doc
  189091. .IP \(bu 2
  189092. 549f4806ce Fixed documentation in Mattermost module
  189093. .UNINDENT
  189094. .IP \(bu 2
  189095. \fBPR\fP \fI\%#44528\fP: (\fI\%tkwilliams\fP) INFRA\-5978 \- fix for \fI\%https://github.com/saltstack/salt/issues/44290\fP
  189096. @ \fI2017\-11\-17 17:35:44 UTC\fP
  189097. .INDENT 2.0
  189098. .IP \(bu 2
  189099. f84a2b5ab1 Merge pull request \fI\%#44528\fP from bodhi\-space/infra5978
  189100. .IP \(bu 2
  189101. ba1d57f5eb Merge branch \(aq2017.7\(aq into infra5978
  189102. .IP \(bu 2
  189103. 021692b6c9 INFRA\-5978 \- pylint / whitespace fix
  189104. .IP \(bu 2
  189105. c2210aaf7c INFRA\-5978 \- fix for \fI\%https://github.com/saltstack/salt/issues/44290\fP
  189106. .UNINDENT
  189107. .IP \(bu 2
  189108. \fBPR\fP \fI\%#44537\fP: (\fI\%Ch3LL\fP) Add multiple salt\-ssh state integration tests
  189109. @ \fI2017\-11\-17 17:17:48 UTC\fP
  189110. .INDENT 2.0
  189111. .IP \(bu 2
  189112. 7f2dd0382c Merge pull request \fI\%#44537\fP from Ch3LL/ssh_highlow
  189113. .IP \(bu 2
  189114. b98df6de24 Add known_hosts_file to salt\-ssh opts_pkg in wfuncs
  189115. .IP \(bu 2
  189116. 913eedc699 Add multiple salt\-ssh state integration tests
  189117. .UNINDENT
  189118. .IP \(bu 2
  189119. \fBPR\fP \fI\%#44576\fP: (\fI\%rallytime\fP) Remove logging from top of napalm util file (refs: \fI\%#44588\fP)
  189120. @ \fI2017\-11\-17 14:55:13 UTC\fP
  189121. .INDENT 2.0
  189122. .IP \(bu 2
  189123. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189124. .IP \(bu 2
  189125. 1975fb41bc Merge pull request \fI\%#44576\fP from rallytime/remove\-napalm\-logging
  189126. .IP \(bu 2
  189127. eb91af999e Remove logging from top of napalm util file
  189128. .UNINDENT
  189129. .IP \(bu 2
  189130. \fBPR\fP \fI\%#44575\fP: (\fI\%Ch3LL\fP) Add service.running integration state test
  189131. @ \fI2017\-11\-16 22:27:57 UTC\fP
  189132. .INDENT 2.0
  189133. .IP \(bu 2
  189134. c2c3048f46 Merge pull request \fI\%#44575\fP from Ch3LL/ser_run_test
  189135. .IP \(bu 2
  189136. 7536150567 Add service.running integration state test
  189137. .UNINDENT
  189138. .IP \(bu 2
  189139. \fBPR\fP \fI\%#44518\fP: (\fI\%twangboy\fP) Pass root_dir to the win_verify_env function
  189140. @ \fI2017\-11\-16 20:57:49 UTC\fP
  189141. .INDENT 2.0
  189142. .IP \(bu 2
  189143. 24b1d7af31 Merge pull request \fI\%#44518\fP from twangboy/win_fix_verify_env
  189144. .IP \(bu 2
  189145. 47114fdb30 Pass root_dirs to the win_verify_env function
  189146. .INDENT 2.0
  189147. .INDENT 3.5
  189148. .INDENT 0.0
  189149. .IP \(bu 2
  189150. 3385f7faf3 fix pylint
  189151. .IP \(bu 2
  189152. a2af3cb857 Include client mixin globals in scheduler for runner modules
  189153. .UNINDENT
  189154. .UNINDENT
  189155. .UNINDENT
  189156. .UNINDENT
  189157. .IP \(bu 2
  189158. \fBPR\fP \fI\%#44551\fP: (\fI\%mirceaulinic\fP) Removes proxy minions false alarms and security risks
  189159. @ \fI2017\-11\-16 15:09:14 UTC\fP
  189160. .INDENT 2.0
  189161. .IP \(bu 2
  189162. 1643bb7fd4 Merge pull request \fI\%#44551\fP from cloudflare/annoying\-tmpnam
  189163. .IP \(bu 2
  189164. ce1882943d Use salt.utils.files.mkstemp() instead
  189165. .IP \(bu 2
  189166. 6689bd3b2d Dont use dangerous os.tmpnam
  189167. .IP \(bu 2
  189168. 2d6176b0bc Fx2 proxy minion: clean return, like all the other modules
  189169. .UNINDENT
  189170. .IP \(bu 2
  189171. \fBISSUE\fP \fI\%#30454\fP: (\fI\%favoretti\fP) Using yaml serializer inside jinja template results in unicode being prepended by \(aq!!python/unicode\(aq (refs: \fI\%#30481\fP, \fI\%#42064\fP, \fI\%#38554\fP)
  189172. .IP \(bu 2
  189173. \fBPR\fP \fI\%#44541\fP: (\fI\%terminalmage\fP) Fix test to reflect changes in YAML dumper
  189174. @ \fI2017\-11\-15 13:23:58 UTC\fP
  189175. .INDENT 2.0
  189176. .IP \(bu 2
  189177. \fBPR\fP \fI\%#42064\fP: (\fI\%The\-Loeki\fP) utils.jinja: use utils.yamldumper for safe yaml dumping (refs: \fI\%#44541\fP)
  189178. .IP \(bu 2
  189179. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode (refs: \fI\%#42064\fP)
  189180. .IP \(bu 2
  189181. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  189182. .IP \(bu 2
  189183. 60083ac27b Merge pull request \fI\%#44541\fP from terminalmage/fix\-yaml\-test
  189184. .IP \(bu 2
  189185. 5b8f54084b Merge branch \(aq2017.7\(aq into fix\-yaml\-test
  189186. .UNINDENT
  189187. .IP \(bu 2
  189188. \fBPR\fP \fI\%#44538\fP: (\fI\%gtmanfred\fP) Fix up some test kitchen stuff
  189189. @ \fI2017\-11\-14 20:36:56 UTC\fP
  189190. .INDENT 2.0
  189191. .IP \(bu 2
  189192. 5c123eb551 Merge pull request \fI\%#44538\fP from gtmanfred/kitchen
  189193. .IP \(bu 2
  189194. 3e04d2d44c use kitchen\-sync for copying files
  189195. .IP \(bu 2
  189196. 9bc70fd31b back up to 2017.7.1 for kitchen tests
  189197. .IP \(bu 2
  189198. 3b93ea058b ubuntu 14 and centos 6 should not have py3 tests
  189199. .IP \(bu 2
  189200. 958e1aeb8d Fix test to reflect changes in YAML dumper
  189201. .UNINDENT
  189202. .IP \(bu 2
  189203. \fBISSUE\fP \fI\%#30454\fP: (\fI\%favoretti\fP) Using yaml serializer inside jinja template results in unicode being prepended by \(aq!!python/unicode\(aq (refs: \fI\%#30481\fP, \fI\%#42064\fP, \fI\%#38554\fP)
  189204. .IP \(bu 2
  189205. \fBPR\fP \fI\%#42064\fP: (\fI\%The\-Loeki\fP) utils.jinja: use utils.yamldumper for safe yaml dumping (refs: \fI\%#44541\fP)
  189206. @ \fI2017\-11\-13 19:45:14 UTC\fP
  189207. .INDENT 2.0
  189208. .IP \(bu 2
  189209. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode (refs: \fI\%#42064\fP)
  189210. .IP \(bu 2
  189211. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  189212. .IP \(bu 2
  189213. 27a7b607b1 Merge pull request \fI\%#42064\fP from The\-Loeki/jinja_unicode
  189214. .IP \(bu 2
  189215. b1cf43c02d Merge branch \(aq2017.7\(aq into jinja_unicode
  189216. .IP \(bu 2
  189217. 8c2ac58523 Merge branch \(aq2017.7\(aq into jinja_unicode
  189218. .IP \(bu 2
  189219. 57dc6226a2 Merge branch \(aq2017.7\(aq into jinja_unicode
  189220. .IP \(bu 2
  189221. 0a8346b585 Merge branch \(aq2017.7\(aq into jinja_unicode
  189222. .IP \(bu 2
  189223. 393fe061b2 jinja utils: yaml import still necessary
  189224. .IP \(bu 2
  189225. 3c9130f9f0 utils.jinja: use utils.yamldumper for safe yaml dumping
  189226. .UNINDENT
  189227. .IP \(bu 2
  189228. \fBPR\fP \fI\%#43692\fP: (\fI\%mirceaulinic\fP) Addressing a bug in the network find runner
  189229. @ \fI2017\-11\-13 19:42:24 UTC\fP
  189230. .INDENT 2.0
  189231. .IP \(bu 2
  189232. b1f14c7518 Merge pull request \fI\%#43692\fP from cloudflare/fix\-net\-runner
  189233. .IP \(bu 2
  189234. 02ffb4f38e Merge branch \(aq2017.7\(aq into fix\-net\-runner
  189235. .IP \(bu 2
  189236. 4b2f791bd2 Check if addr is short IPv6
  189237. .IP \(bu 2
  189238. 765504c137 Add all the possible keys to the result
  189239. .UNINDENT
  189240. .IP \(bu 2
  189241. \fBISSUE\fP \fI\%#42393\fP: (\fI\%The\-Loeki\fP) pillarenv ignored with Salt Master pillar_cache: True (refs: \fI\%#43689\fP)
  189242. .IP \(bu 2
  189243. \fBISSUE\fP \fI\%#36153\fP: (\fI\%krcroft\fP) Pillarenv doesn\(aqt allow using separate pillar environments (refs: \fI\%#43689\fP)
  189244. .IP \(bu 2
  189245. \fBPR\fP \fI\%#43689\fP: (\fI\%The\-Loeki\fP) make cached pillars use pillarenv rather than saltenv
  189246. @ \fI2017\-11\-13 19:30:00 UTC\fP
  189247. .INDENT 2.0
  189248. .IP \(bu 2
  189249. 1e94a5bd5f Merge pull request \fI\%#43689\fP from The\-Loeki/cached_pilarenv
  189250. .IP \(bu 2
  189251. 395c0c424d Merge branch \(aq2017.7\(aq into cached_pilarenv
  189252. .IP \(bu 2
  189253. 60e001733b make cached pillars use pillarenv rather than saltenv
  189254. .UNINDENT
  189255. .IP \(bu 2
  189256. \fBPR\fP \fI\%#43837\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_archive\fP for Windows
  189257. @ \fI2017\-11\-13 19:12:19 UTC\fP
  189258. .INDENT 2.0
  189259. .IP \(bu 2
  189260. f9b273a894 Merge pull request \fI\%#43837\fP from twangboy/win_unit_test_archive
  189261. .IP \(bu 2
  189262. 5505a8819a Merge branch \(aq2017.7\(aq into win_unit_test_archive
  189263. .IP \(bu 2
  189264. b1dfe9c3c8 Format patching with statements for easier reading
  189265. .IP \(bu 2
  189266. ba2f2eb788 Add Erik\(aqs changes
  189267. .IP \(bu 2
  189268. 4ef1e3eb97 Fix \fIunit.states.test_archive\fP for Windows
  189269. .UNINDENT
  189270. .IP \(bu 2
  189271. \fBPR\fP \fI\%#44507\fP: (\fI\%Ch3LL\fP) Increase sleep timeout for pillar refresh test
  189272. @ \fI2017\-11\-13 18:29:06 UTC\fP
  189273. .INDENT 2.0
  189274. .IP \(bu 2
  189275. caa81728a0 Merge pull request \fI\%#44507\fP from Ch3LL/pillar_time
  189276. .IP \(bu 2
  189277. ffa4bddcad Increase sleep timeout for pillar refresh test
  189278. .UNINDENT
  189279. .IP \(bu 2
  189280. \fBPR\fP \fI\%#44302\fP: (\fI\%morganwillcock\fP) Fix traceback and incorrect message when resolving an unresolvable SID
  189281. @ \fI2017\-11\-13 18:19:01 UTC\fP
  189282. .INDENT 2.0
  189283. .IP \(bu 2
  189284. cffea5ac71 Merge pull request \fI\%#44302\fP from morganwillcock/badsid
  189285. .IP \(bu 2
  189286. f3af106e33 Merge branch \(aqbadsid\(aq of \fI\%https://github.com/morganwillcock/salt\fP into badsid
  189287. .INDENT 2.0
  189288. .IP \(bu 2
  189289. 95733fbb3b Merge branch \(aq2017.7\(aq into badsid
  189290. .IP \(bu 2
  189291. facc2cd16e Merge branch \(aq2017.7\(aq into badsid
  189292. .UNINDENT
  189293. .IP \(bu 2
  189294. c7cf5f6f70 Format pywintypes.error
  189295. .IP \(bu 2
  189296. 9572aabb67 Fix traceback and incorrect message when resolving an unresolvable SID
  189297. .UNINDENT
  189298. .IP \(bu 2
  189299. \fBPR\fP \fI\%#44439\fP: (\fI\%mirceaulinic\fP) Adapt napalm modules to the new library structure (refs: \fI\%#44576\fP)
  189300. @ \fI2017\-11\-13 17:43:24 UTC\fP
  189301. .INDENT 2.0
  189302. .IP \(bu 2
  189303. 32fc952000 Merge pull request \fI\%#44439\fP from cloudflare/fix\-napalm
  189304. .IP \(bu 2
  189305. f45378af04 Lint: remove extra spaces
  189306. .IP \(bu 2
  189307. c6a38258a3 Add napalm>2.0.0 note and update URLs
  189308. .IP \(bu 2
  189309. 52f73835b8 Adapt napalm modules to the new library structure
  189310. .UNINDENT
  189311. .IP \(bu 2
  189312. \fBPR\fP \fI\%#44457\fP: (\fI\%twangboy\fP) Remove wmi monkeypatching
  189313. @ \fI2017\-11\-13 17:38:52 UTC\fP
  189314. .INDENT 2.0
  189315. .IP \(bu 2
  189316. ebbe5949ea Merge pull request \fI\%#44457\fP from twangboy/win_remove_wmi_monkeypatching
  189317. .IP \(bu 2
  189318. 6c872e95e6 Add back the setup_loader_modules function
  189319. .IP \(bu 2
  189320. 20273e3697 No need for setup_loader_modules since we\(aqre actually importing wmi
  189321. .IP \(bu 2
  189322. 8c107873cd Remove wmi monkeypatching
  189323. .UNINDENT
  189324. .IP \(bu 2
  189325. \fBPR\fP \fI\%#44490\fP: (\fI\%Ch3LL\fP) Enable test_deploy ssh test
  189326. @ \fI2017\-11\-13 17:12:48 UTC\fP
  189327. .INDENT 2.0
  189328. .IP \(bu 2
  189329. 1da1a97d7d Merge pull request \fI\%#44490\fP from Ch3LL/ssh_ping
  189330. .IP \(bu 2
  189331. e952cd6712 Enable test_deploy ssh test
  189332. .UNINDENT
  189333. .IP \(bu 2
  189334. \fBPR\fP \fI\%#44491\fP: (\fI\%Ch3LL\fP) Add salt\-ssh raw integration tests
  189335. @ \fI2017\-11\-13 15:47:12 UTC\fP
  189336. .INDENT 2.0
  189337. .IP \(bu 2
  189338. 18624d6798 Merge pull request \fI\%#44491\fP from Ch3LL/ssh_raw
  189339. .IP \(bu 2
  189340. 3dc8673417 change class name to raw
  189341. .IP \(bu 2
  189342. 308596ac8d Add salt\-ssh raw integration tests
  189343. .UNINDENT
  189344. .IP \(bu 2
  189345. \fBPR\fP \fI\%#44492\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_cloud\fP for Windows
  189346. @ \fI2017\-11\-13 15:44:31 UTC\fP
  189347. .INDENT 2.0
  189348. .IP \(bu 2
  189349. aa17bfa8e7 Merge pull request \fI\%#44492\fP from twangboy/win_skip_mode_check
  189350. .IP \(bu 2
  189351. 2f30ad93b1 Skips mode check in Windows
  189352. .UNINDENT
  189353. .IP \(bu 2
  189354. \fBPR\fP \fI\%#44484\fP: (\fI\%Ch3LL\fP) Add orchestration tests when target exists or not
  189355. @ \fI2017\-11\-10 19:24:22 UTC\fP
  189356. .INDENT 2.0
  189357. .IP \(bu 2
  189358. 5b95495e75 Merge pull request \fI\%#44484\fP from Ch3LL/orch_test
  189359. .IP \(bu 2
  189360. f3ec6df76e Add orchestration tests when target exists or not
  189361. .UNINDENT
  189362. .IP \(bu 2
  189363. \fBPR\fP \fI\%#44480\fP: (\fI\%Ch3LL\fP) Add integration pillar command line test
  189364. @ \fI2017\-11\-10 19:14:31 UTC\fP
  189365. .INDENT 2.0
  189366. .IP \(bu 2
  189367. 62c42ca6fb Merge pull request \fI\%#44480\fP from Ch3LL/override_pillar
  189368. .IP \(bu 2
  189369. 12fed1b4d8 Add integration pillar command line test
  189370. .UNINDENT
  189371. .IP \(bu 2
  189372. \fBPR\fP \fI\%#44317\fP: (\fI\%Ch3LL\fP) Add state tests and state request system to salt\-ssh
  189373. @ \fI2017\-11\-10 18:28:43 UTC\fP
  189374. .INDENT 2.0
  189375. .IP \(bu 2
  189376. cc08ad2edc Merge pull request \fI\%#44317\fP from Ch3LL/ssh_test
  189377. .IP \(bu 2
  189378. 46bce3bd5e add additional parser argument for ssh integration tests
  189379. .IP \(bu 2
  189380. e9231430b5 remove logic similar to cloud/proxy tests
  189381. .IP \(bu 2
  189382. c731eb8ea6 add ssh dir to test runner when \-\-ssh\-tests set
  189383. .IP \(bu 2
  189384. 8089a885c2 add wipe function to other run_ssh method
  189385. .IP \(bu 2
  189386. 200b12ae6a change versionadded salt version
  189387. .IP \(bu 2
  189388. e3ebb5e9b3 fix comment and variables
  189389. .IP \(bu 2
  189390. faef0886a7 Add state tests and state request system to salt\-ssh
  189391. .UNINDENT
  189392. .IP \(bu 2
  189393. \fBPR\fP \fI\%#44478\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189394. @ \fI2017\-11\-10 18:00:56 UTC\fP
  189395. .INDENT 2.0
  189396. .IP \(bu 2
  189397. 6669035a30 Merge pull request \fI\%#44478\fP from rallytime/merge\-2017.7
  189398. .IP \(bu 2
  189399. 9fcc2a70b5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189400. .INDENT 2.0
  189401. .IP \(bu 2
  189402. a66cd67d15 Merge pull request \fI\%#44260\fP from seanjnkns/issue\-39901
  189403. .INDENT 2.0
  189404. .IP \(bu 2
  189405. ed8cccf457 \fI\%#39901\fP: Fix pylint
  189406. .IP \(bu 2
  189407. 43c81dfdee \fI\%#39901\fP: Add unit tests
  189408. .IP \(bu 2
  189409. 613d500876 Merge branch \(aq2016.11\(aq into issue\-39901
  189410. .IP \(bu 2
  189411. b97e8046ca Utilize salt.utils.validate.net.* and _raise_error_iface
  189412. .IP \(bu 2
  189413. 6818f3631d Fixes \fI\%#39901\fP for RH/CentOS 7
  189414. .UNINDENT
  189415. .UNINDENT
  189416. .UNINDENT
  189417. .IP \(bu 2
  189418. \fBPR\fP \fI\%#44444\fP: (\fI\%twangboy\fP) LGPO: Issue with Maximum Password Age
  189419. @ \fI2017\-11\-10 17:26:53 UTC\fP
  189420. .INDENT 2.0
  189421. .IP \(bu 2
  189422. 60719d0683 Merge pull request \fI\%#44444\fP from twangboy/win_lgpo_non_zero
  189423. .IP \(bu 2
  189424. de6b394445 Remove unneeded functions
  189425. .IP \(bu 2
  189426. ee0914f7e9 Fix some lint, remove unnecessary function
  189427. .IP \(bu 2
  189428. d52a7c12db Fix typo in PasswordComplexity policy
  189429. .IP \(bu 2
  189430. 44f8f43812 Fix problem where 0 isn\(aqt 0
  189431. .UNINDENT
  189432. .IP \(bu 2
  189433. \fBPR\fP \fI\%#44467\fP: (\fI\%twangboy\fP) Fix \fIunit.test_doc\fP for Windows
  189434. @ \fI2017\-11\-10 15:21:58 UTC\fP
  189435. .INDENT 2.0
  189436. .IP \(bu 2
  189437. 4f3a79df07 Merge pull request \fI\%#44467\fP from twangboy/win_fix_test_doc
  189438. .IP \(bu 2
  189439. 0a9e862bf4 Use regex to split
  189440. .UNINDENT
  189441. .IP \(bu 2
  189442. \fBPR\fP \fI\%#44443\fP: (\fI\%Ch3LL\fP) Add salt\-ssh grains.items test
  189443. @ \fI2017\-11\-09 00:42:11 UTC\fP
  189444. .INDENT 2.0
  189445. .IP \(bu 2
  189446. ff4f13877f Merge pull request \fI\%#44443\fP from Ch3LL/ssh_grains
  189447. .IP \(bu 2
  189448. 5d1a9af4b5 Add salt\-ssh grains.items test
  189449. .UNINDENT
  189450. .IP \(bu 2
  189451. \fBPR\fP \fI\%#44429\fP: (\fI\%Ch3LL\fP) Fix orch doc from pillat.get to pillar.get
  189452. @ \fI2017\-11\-07 23:06:38 UTC\fP
  189453. .INDENT 2.0
  189454. .IP \(bu 2
  189455. dcdf2d4c90 Merge pull request \fI\%#44429\fP from Ch3LL/orch_doc
  189456. .IP \(bu 2
  189457. 38ca5520f0 Fix orch doc from pillat.get to pillar.get
  189458. .UNINDENT
  189459. .IP \(bu 2
  189460. \fBISSUE\fP \fI\%#42568\fP: (\fI\%clallen\fP) Orchestration runner doesn\(aqt populate __pillar__ based on pillarenv (refs: \fI\%#43817\fP)
  189461. .IP \(bu 2
  189462. \fBPR\fP \fI\%#43817\fP: (\fI\%The\-Loeki\fP) Orchestrate runner forces pillarenv and saltenv to None
  189463. @ \fI2017\-11\-07 06:00:16 UTC\fP
  189464. .INDENT 2.0
  189465. .IP \(bu 2
  189466. 62c4addef8 Merge pull request \fI\%#43817\fP from The\-Loeki/orch\-pillarenv
  189467. .IP \(bu 2
  189468. 3fd652623c orchestrate runner: retain default envs
  189469. .UNINDENT
  189470. .IP \(bu 2
  189471. \fBPR\fP \fI\%#44408\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189472. @ \fI2017\-11\-06 15:53:00 UTC\fP
  189473. .INDENT 2.0
  189474. .IP \(bu 2
  189475. 9e4708b7b9 Merge pull request \fI\%#44408\fP from rallytime/merge\-2017.7
  189476. .IP \(bu 2
  189477. edbbd5fc2b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189478. .IP \(bu 2
  189479. 5e289f42ba Merge pull request \fI\%#44383\fP from gtmanfred/2016kitchen
  189480. .INDENT 2.0
  189481. .IP \(bu 2
  189482. b65f4ea4ea switch salt\-jenkins over to saltstack
  189483. .UNINDENT
  189484. .IP \(bu 2
  189485. cab54e34b5 Merge pull request \fI\%#44173\fP from twangboy/win_system_docs
  189486. .INDENT 2.0
  189487. .IP \(bu 2
  189488. 8e111b413d Fix some of the wording and grammer errors
  189489. .IP \(bu 2
  189490. a12bc5ae41 Use google style docstrings
  189491. .UNINDENT
  189492. .IP \(bu 2
  189493. 7aaea1d179 Merge pull request \fI\%#44304\fP from jfindlay/cron_id
  189494. .INDENT 2.0
  189495. .IP \(bu 2
  189496. cc038c5bec states.cron identifier defaults to name
  189497. .UNINDENT
  189498. .IP \(bu 2
  189499. e4dbbde734 Merge pull request \fI\%#44322\fP from rossengeorgiev/saltssh\-docs\-update
  189500. .INDENT 2.0
  189501. .IP \(bu 2
  189502. b18f2e5a6d fix program name and description for \-\-static
  189503. .IP \(bu 2
  189504. 5b10918f02 updated CLI docs for salt\-ssh
  189505. .UNINDENT
  189506. .UNINDENT
  189507. .IP \(bu 2
  189508. \fBPR\fP \fI\%#44358\fP: (\fI\%The\-Loeki\fP) Kubernetes client certificate file usage fix
  189509. @ \fI2017\-11\-03 21:51:27 UTC\fP
  189510. .INDENT 2.0
  189511. .IP \(bu 2
  189512. b11da0d2da Merge pull request \fI\%#44358\fP from The\-Loeki/kube\-client\-cert\-file
  189513. .IP \(bu 2
  189514. 35a8b0bb38 Kubernetes client certificate file usage fix
  189515. .UNINDENT
  189516. .IP \(bu 2
  189517. \fBPR\fP \fI\%#44347\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189518. @ \fI2017\-11\-03 21:48:21 UTC\fP
  189519. .INDENT 2.0
  189520. .IP \(bu 2
  189521. 1974e52c06 Merge pull request \fI\%#44347\fP from rallytime/merge\-2017.7
  189522. .IP \(bu 2
  189523. 9bad04b94b Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189524. .INDENT 2.0
  189525. .IP \(bu 2
  189526. 4e6f09e3eb Merge pull request \fI\%#44345\fP from gtmanfred/2016kitchen
  189527. .INDENT 2.0
  189528. .IP \(bu 2
  189529. 79b8b2d0bf remove binding
  189530. .UNINDENT
  189531. .IP \(bu 2
  189532. 209847c8c2 Merge pull request \fI\%#44342\fP from gtmanfred/2016kitchen
  189533. .INDENT 2.0
  189534. .IP \(bu 2
  189535. c50508f0b7 render template files platforms.yml and driver.yml
  189536. .UNINDENT
  189537. .IP \(bu 2
  189538. 1be65224cb Merge pull request \fI\%#44339\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2016\-11
  189539. .INDENT 2.0
  189540. .IP \(bu 2
  189541. 9c1c35a59f Remove leading dash (\-) from options in archive.tar documentation
  189542. .UNINDENT
  189543. .IP \(bu 2
  189544. bebc33daf5 Merge pull request \fI\%#44295\fP from HeinleinSupport/issue44272
  189545. .INDENT 2.0
  189546. .IP \(bu 2
  189547. f972715a45 fixes issue \fI\%#44272\fP
  189548. .UNINDENT
  189549. .IP \(bu 2
  189550. e7ca9f8407 Merge pull request \fI\%#44286\fP from gtmanfred/2016.11
  189551. .INDENT 2.0
  189552. .IP \(bu 2
  189553. 193e715e37 use our git repo for kitchen\-salt
  189554. .UNINDENT
  189555. .UNINDENT
  189556. .UNINDENT
  189557. .IP \(bu 2
  189558. \fBPR\fP \fI\%#44364\fP: (\fI\%Ch3LL\fP) Include disk size check for test_spm_build_big_file test
  189559. @ \fI2017\-11\-01 13:57:24 UTC\fP
  189560. .INDENT 2.0
  189561. .IP \(bu 2
  189562. aea9f4a115 Merge pull request \fI\%#44364\fP from Ch3LL/fix_size_test
  189563. .IP \(bu 2
  189564. 952c6bfea4 Include file size check for test_spm_build_big_file test
  189565. .UNINDENT
  189566. .IP \(bu 2
  189567. \fBISSUE\fP \fI\%#44239\fP: (\fI\%boltronics\fP) \-\-progress fails when hosts routed via syndic (refs: \fI\%#44273\fP)
  189568. .IP \(bu 2
  189569. \fBPR\fP \fI\%#44273\fP: (\fI\%DmitryKuzmenko\fP) Workaround progressbar failure if minion is behind syndic.
  189570. @ \fI2017\-10\-31 17:07:17 UTC\fP
  189571. .INDENT 2.0
  189572. .IP \(bu 2
  189573. 609de9367a Merge pull request \fI\%#44273\fP from DSRCorporation/bugs/44239_syndic_progress
  189574. .IP \(bu 2
  189575. e1a7605623 Workaround progressbar failure if minion is behind syndic.
  189576. .UNINDENT
  189577. .IP \(bu 2
  189578. \fBPR\fP \fI\%#44350\fP: (\fI\%gtmanfred\fP) update salt\-jenkins repo to 2017.7
  189579. @ \fI2017\-10\-30 21:31:30 UTC\fP
  189580. .INDENT 2.0
  189581. .IP \(bu 2
  189582. eef6dbfa58 Merge pull request \fI\%#44350\fP from gtmanfred/2017.7
  189583. .IP \(bu 2
  189584. cf71e3d9f2 update salt\-jenkins repo to 2017.7
  189585. .UNINDENT
  189586. .IP \(bu 2
  189587. \fBPR\fP \fI\%#44346\fP: (\fI\%gtmanfred\fP) remove binding from erb template rendering (2017.7)
  189588. @ \fI2017\-10\-30 20:57:19 UTC\fP
  189589. .INDENT 2.0
  189590. .IP \(bu 2
  189591. d586b3bf97 Merge pull request \fI\%#44346\fP from gtmanfred/2017.7
  189592. .IP \(bu 2
  189593. bf577c3d8b remove binding
  189594. .UNINDENT
  189595. .IP \(bu 2
  189596. \fBPR\fP \fI\%#44343\fP: (\fI\%gtmanfred\fP) render template files platforms.yml and driver.yml (2017.7)
  189597. @ \fI2017\-10\-30 20:04:22 UTC\fP
  189598. .INDENT 2.0
  189599. .IP \(bu 2
  189600. 547aac6658 Merge pull request \fI\%#44343\fP from gtmanfred/2017.7
  189601. .IP \(bu 2
  189602. ec24fbc0c2 render template files platforms.yml and driver.yml
  189603. .UNINDENT
  189604. .IP \(bu 2
  189605. \fBISSUE\fP \fI\%#44336\fP: (\fI\%corywright\fP) Docs for archive.tar should not use leading dash for tar options (refs: \fI\%#44339\fP, \fI\%#44338\fP)
  189606. .IP \(bu 2
  189607. \fBPR\fP \fI\%#44338\fP: (\fI\%corywright\fP) Remove leading dash from options in archive.tar docs (2017.7 and develop)
  189608. @ \fI2017\-10\-30 18:59:33 UTC\fP
  189609. .INDENT 2.0
  189610. .IP \(bu 2
  189611. 6e2a74c18b Merge pull request \fI\%#44338\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2017\-7\-and\-newer
  189612. .IP \(bu 2
  189613. 49b0abc284 Remove leading dash (\-) from options in archive.tar documentation
  189614. .UNINDENT
  189615. .IP \(bu 2
  189616. \fBPR\fP \fI\%#44265\fP: (\fI\%Ch3LL\fP) Add service.status integration test
  189617. @ \fI2017\-10\-30 15:00:12 UTC\fP
  189618. .INDENT 2.0
  189619. .IP \(bu 2
  189620. 71923bed97 Merge pull request \fI\%#44265\fP from Ch3LL/service_test
  189621. .IP \(bu 2
  189622. 716aabc0bf Merge branch \(aq2017.7\(aq into service_test
  189623. .IP \(bu 2
  189624. dd5c823210 remove skipIf import
  189625. .IP \(bu 2
  189626. ff92f31cbe remove skipif for docker
  189627. .IP \(bu 2
  189628. c13f37eee4 change service name depending on os
  189629. .IP \(bu 2
  189630. 980c43ebc9 change skip message check to docker
  189631. .IP \(bu 2
  189632. 3955537609 change skip if check to docker
  189633. .IP \(bu 2
  189634. aa8875a0e2 change service name to docker
  189635. .IP \(bu 2
  189636. 654071028b change service to crond
  189637. .IP \(bu 2
  189638. 7911b4b3eb Add service.status integration test
  189639. .UNINDENT
  189640. .IP \(bu 2
  189641. \fBPR\fP \fI\%#44294\fP: (\fI\%nasenbaer13\fP) Boto asg fixes, Backport of \fI\%#43858\fP
  189642. @ \fI2017\-10\-30 14:48:52 UTC\fP
  189643. .INDENT 2.0
  189644. .IP \(bu 2
  189645. \fBPR\fP \fI\%#43858\fP: (\fI\%nasenbaer13\fP) Boto_ASG fixes for scaling policy rate limiting and tag conversion (refs: \fI\%#44294\fP)
  189646. .IP \(bu 2
  189647. 8ae9769bfb Merge pull request \fI\%#44294\fP from eyj/boto_asg
  189648. .IP \(bu 2
  189649. f5ad6aeb70 Debug log added when throttled by API
  189650. .IP \(bu 2
  189651. c05d9aeced Encode tags as utf\-8, retry policy readout
  189652. .UNINDENT
  189653. .IP \(bu 2
  189654. \fBPR\fP \fI\%#44312\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44287\fP to 2017.7
  189655. @ \fI2017\-10\-30 14:25:56 UTC\fP
  189656. .INDENT 2.0
  189657. .IP \(bu 2
  189658. \fBPR\fP \fI\%#44287\fP: (\fI\%jf\fP) Fix utils.files.guess_archive_type to recognize the "tbz" extension as well (refs: \fI\%#44312\fP)
  189659. .IP \(bu 2
  189660. 68a9bebf90 Merge pull request \fI\%#44312\fP from rallytime/bp\-44287
  189661. .IP \(bu 2
  189662. 4d02e61f97 Merge branch \(aq2017.7\(aq into bp\-44287
  189663. .IP \(bu 2
  189664. ba0eaae95e Fix utils.files.guess_archive_type to recognize the "tbz" extension as well (also tidy up list of extensions)
  189665. .UNINDENT
  189666. .IP \(bu 2
  189667. \fBISSUE\fP \fI\%#44258\fP: (\fI\%oarmstrong\fP) docker_container.running recreates containers with multiple links (refs: \fI\%#44262\fP)
  189668. .IP \(bu 2
  189669. \fBPR\fP \fI\%#44311\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44262\fP to 2017.7
  189670. @ \fI2017\-10\-30 14:25:35 UTC\fP
  189671. .INDENT 2.0
  189672. .IP \(bu 2
  189673. \fBPR\fP \fI\%#44262\fP: (\fI\%oarmstrong\fP) docker_container.running sort list of links (refs: \fI\%#44311\fP)
  189674. .IP \(bu 2
  189675. b8854e27c0 Merge pull request \fI\%#44311\fP from rallytime/bp\-44262
  189676. .IP \(bu 2
  189677. 72d617cfbe Merge branch \(aq2017.7\(aq into bp\-44262
  189678. .IP \(bu 2
  189679. ae34a15503 docker_container.running sort list of links
  189680. .UNINDENT
  189681. .IP \(bu 2
  189682. \fBPR\fP \fI\%#44314\fP: (\fI\%gtmanfred\fP) update .kitchen.yml to run py3 tests too
  189683. @ \fI2017\-10\-30 14:23:15 UTC\fP
  189684. .INDENT 2.0
  189685. .IP \(bu 2
  189686. 48df79ef77 Merge pull request \fI\%#44314\fP from gtmanfred/2017.7
  189687. .IP \(bu 2
  189688. 54265769c4 Merge branch \(aq2017.7\(aq into 2017.7
  189689. .UNINDENT
  189690. .IP \(bu 2
  189691. \fBPR\fP \fI\%#44316\fP: (\fI\%rallytime\fP) Fix lint failure on 2017.7 branch
  189692. @ \fI2017\-10\-27 18:36:08 UTC\fP
  189693. .INDENT 2.0
  189694. .IP \(bu 2
  189695. dbc5e224e9 Merge pull request \fI\%#44316\fP from rallytime/fix\-lint
  189696. .IP \(bu 2
  189697. 6d2490f6a0 Fix lint failure on 2017.7 branch
  189698. .IP \(bu 2
  189699. 39262b625e update .kitchen.yml to run py3 tests too
  189700. .UNINDENT
  189701. .IP \(bu 2
  189702. \fBPR\fP \fI\%#44279\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189703. @ \fI2017\-10\-27 16:17:19 UTC\fP
  189704. .INDENT 2.0
  189705. .IP \(bu 2
  189706. b2b0c770a4 Merge pull request \fI\%#44279\fP from rallytime/merge\-2017.7
  189707. .IP \(bu 2
  189708. 8237f45a46 Add print_function to __future__ import list
  189709. .IP \(bu 2
  189710. 055b0701de Lint fix from sloppy merge conflict resolution
  189711. .IP \(bu 2
  189712. 1c3cb5c6a4 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189713. .INDENT 2.0
  189714. .IP \(bu 2
  189715. 8a1ea165af Merge pull request \fI\%#44259\fP from gtmanfred/2016.11
  189716. .INDENT 2.0
  189717. .IP \(bu 2
  189718. 56a3ad8f68 fix pylint comments
  189719. .IP \(bu 2
  189720. 4add666db1 add comment to Gemfile and move copyartifacts
  189721. .IP \(bu 2
  189722. b4c8f7eb57 fix pylint
  189723. .IP \(bu 2
  189724. 392fd4f837 try newest salttesting
  189725. .IP \(bu 2
  189726. 79251287d0 add logging
  189727. .IP \(bu 2
  189728. 38963d5a82 use transport if not set in state_file
  189729. .IP \(bu 2
  189730. 10e309a64f which vagrant should go to stderr
  189731. .IP \(bu 2
  189732. 9307564de0 fix output columns
  189733. .IP \(bu 2
  189734. 2da22f87e1 test opennebula
  189735. .IP \(bu 2
  189736. 9f38f16905 add opennebula to Gemfile
  189737. .IP \(bu 2
  189738. 7465f9b27a add script for copying back artifacts
  189739. .IP \(bu 2
  189740. 255118cfd7 run tests with kitchen
  189741. .UNINDENT
  189742. .IP \(bu 2
  189743. 9d6bc8509b Merge pull request \fI\%#44268\fP from twangboy/win_fix_lgpo_typo
  189744. .INDENT 2.0
  189745. .IP \(bu 2
  189746. a6a4c10a77 Fix typo
  189747. .UNINDENT
  189748. .IP \(bu 2
  189749. 0beb65a283 Merge pull request \fI\%#44269\fP from terminalmage/fix\-log\-message
  189750. .INDENT 2.0
  189751. .IP \(bu 2
  189752. bc9cd65496 Fix log message in salt.utils.gitfs
  189753. .UNINDENT
  189754. .IP \(bu 2
  189755. 304dd2529d Merge pull request \fI\%#44160\fP from gtmanfred/directory
  189756. .INDENT 2.0
  189757. .IP \(bu 2
  189758. a7d3d668f4 missed removing changes in the next test
  189759. .IP \(bu 2
  189760. ac0b5ec440 fix test
  189761. .IP \(bu 2
  189762. d3d00c3e62 add changes to test return
  189763. .UNINDENT
  189764. .IP \(bu 2
  189765. e10395483d Merge pull request \fI\%#44205\fP from rallytime/bp\-44177
  189766. .INDENT 2.0
  189767. .IP \(bu 2
  189768. b9940f8521 Fixing default redis.host in documentation
  189769. .UNINDENT
  189770. .UNINDENT
  189771. .UNINDENT
  189772. .IP \(bu 2
  189773. \fBPR\fP \fI\%#44291\fP: (\fI\%Ch3LL\fP) add saltutil.refresh_pillar test
  189774. @ \fI2017\-10\-27 15:19:43 UTC\fP
  189775. .INDENT 2.0
  189776. .IP \(bu 2
  189777. bd5b9dd0aa Merge pull request \fI\%#44291\fP from Ch3LL/pillar_test
  189778. .IP \(bu 2
  189779. 34e2955445 add saltutil.refresh_pillar test
  189780. .UNINDENT
  189781. .IP \(bu 2
  189782. \fBPR\fP \fI\%#44267\fP: (\fI\%twangboy\fP) Fix type and Py3 issues in LGPO module
  189783. @ \fI2017\-10\-27 14:27:50 UTC\fP
  189784. .INDENT 2.0
  189785. .IP \(bu 2
  189786. ba17a1c4d0 Merge pull request \fI\%#44267\fP from twangboy/win_fix_lgpo
  189787. .IP \(bu 2
  189788. 5d22d34cac Use unicode_literals
  189789. .IP \(bu 2
  189790. 40636397d8 Fix set for Py3
  189791. .IP \(bu 2
  189792. 8f8c706426 Fix typo
  189793. .UNINDENT
  189794. .IP \(bu 2
  189795. \fBPR\fP \fI\%#44285\fP: (\fI\%Ch3LL\fP) add spm integration tests for remove and build
  189796. @ \fI2017\-10\-26 21:20:10 UTC\fP
  189797. .INDENT 2.0
  189798. .IP \(bu 2
  189799. e16707c403 Merge pull request \fI\%#44285\fP from Ch3LL/all_spm
  189800. .IP \(bu 2
  189801. 1f77f3e6a3 add skipif logic for fallocate cmd
  189802. .IP \(bu 2
  189803. 03b5c4bc6d add spm integration tests for remove and build
  189804. .UNINDENT
  189805. .IP \(bu 2
  189806. \fBPR\fP \fI\%#44301\fP: (\fI\%twangboy\fP) Fix test_pydsl on Windows
  189807. @ \fI2017\-10\-26 21:14:21 UTC\fP
  189808. .INDENT 2.0
  189809. .IP \(bu 2
  189810. 6392896a22 Merge pull request \fI\%#44301\fP from twangboy/win_fix_test_pydsl
  189811. .IP \(bu 2
  189812. 6db23757bc Fix test_pydsl on Windows
  189813. .UNINDENT
  189814. .IP \(bu 2
  189815. \fBPR\fP \fI\%#44293\fP: (\fI\%UtahDave\fP) Fix documentation grammar and spelling errors
  189816. @ \fI2017\-10\-26 13:05:31 UTC\fP
  189817. .INDENT 2.0
  189818. .IP \(bu 2
  189819. 8787d02688 Merge pull request \fI\%#44293\fP from UtahDave/fix_unittest_docs
  189820. .IP \(bu 2
  189821. c919648ab4 Fix documentation grammar and spelling errors
  189822. .UNINDENT
  189823. .IP \(bu 2
  189824. \fBPR\fP \fI\%#44248\fP: (\fI\%Ch3LL\fP) SPM tests: use _spm_build_files method during test_build setup
  189825. @ \fI2017\-10\-25 19:45:03 UTC\fP
  189826. .INDENT 2.0
  189827. .IP \(bu 2
  189828. 6e33743c1a Merge pull request \fI\%#44248\fP from Ch3LL/spm_create_repo
  189829. .IP \(bu 2
  189830. 0a387c2ecd fix pylint
  189831. .IP \(bu 2
  189832. f383f05a93 Add SPM create_repo integration test
  189833. .UNINDENT
  189834. .IP \(bu 2
  189835. \fBPR\fP \fI\%#44253\fP: (\fI\%Ch3LL\fP) Add multiple spm integration tests
  189836. @ \fI2017\-10\-25 13:36:03 UTC\fP
  189837. .INDENT 2.0
  189838. .IP \(bu 2
  189839. bd75be24ca Merge pull request \fI\%#44253\fP from Ch3LL/spm_install
  189840. .IP \(bu 2
  189841. 9e2e785034 add spm tests to test runner
  189842. .IP \(bu 2
  189843. 4729ccd32b Add multiple spm integration tests
  189844. .UNINDENT
  189845. .IP \(bu 2
  189846. \fBPR\fP \fI\%#44254\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_groupadd\fP for Windows
  189847. @ \fI2017\-10\-25 13:33:40 UTC\fP
  189848. .INDENT 2.0
  189849. .IP \(bu 2
  189850. 75ee1ebc50 Merge pull request \fI\%#44254\fP from twangboy/win_fix_test_win_groupadd
  189851. .IP \(bu 2
  189852. 609361bf48 Fix some lint errors
  189853. .IP \(bu 2
  189854. 1f44d8d5e6 Document helper functions
  189855. .IP \(bu 2
  189856. b0caec320e Move _get_all_groups up to the top
  189857. .IP \(bu 2
  189858. 7a3ff9387d Mock the rest of the tests
  189859. .IP \(bu 2
  189860. 5ce14df82c Change how members are retrieved in win_groupadd
  189861. .IP \(bu 2
  189862. 6ab82394be Set up mocking
  189863. .UNINDENT
  189864. .IP \(bu 2
  189865. \fBPR\fP \fI\%#44266\fP: (\fI\%Ch3LL\fP) Add state, grains and service proxy tests
  189866. @ \fI2017\-10\-25 13:08:50 UTC\fP
  189867. .INDENT 2.0
  189868. .IP \(bu 2
  189869. 4c23fa63bb Merge pull request \fI\%#44266\fP from Ch3LL/proxy_tests
  189870. .IP \(bu 2
  189871. e5701b472d Add state, grains and service proxy tests
  189872. .UNINDENT
  189873. .IP \(bu 2
  189874. \fBISSUE\fP \fI\%#43187\fP: (\fI\%mirceaulinic\fP) How to point from an execution module that a certain function failed (refs: \fI\%#44244\fP)
  189875. .IP \(bu 2
  189876. \fBPR\fP \fI\%#44244\fP: (\fI\%mirceaulinic\fP) Add explicit non\-zero retcode to napalm config functions
  189877. @ \fI2017\-10\-24 09:23:40 UTC\fP
  189878. .INDENT 2.0
  189879. .IP \(bu 2
  189880. c849f350ba Merge pull request \fI\%#44244\fP from cloudflare/add\-retcode
  189881. .IP \(bu 2
  189882. a1f27c9f00 Add explicit non\-zero retcode to napalm config functions
  189883. .UNINDENT
  189884. .IP \(bu 2
  189885. \fBISSUE\fP \fI\%#44227\fP: (\fI\%rklaren\fP) salt\-cloud leaves a broken vm around when the salt bootstrap fails (refs: \fI\%#44228\fP)
  189886. .IP \(bu 2
  189887. \fBPR\fP \fI\%#44228\fP: (\fI\%rklaren\fP) Fixes \fI\%#44227\fP, make salt\-cloud/libvirt cleanup after errors more robust
  189888. @ \fI2017\-10\-23 17:09:35 UTC\fP
  189889. .INDENT 2.0
  189890. .IP \(bu 2
  189891. 195b225540 Merge pull request \fI\%#44228\fP from rklaren/fix\-salt\-cloud\-libvirt\-cleanup\-after\-errors
  189892. .IP \(bu 2
  189893. 7917d1e61e Incorporate review comments.
  189894. .IP \(bu 2
  189895. 3a10b6aef1 Fixes \fI\%#44227\fP, make salt\-cloud/libvirt cleanup after errors more robust
  189896. .UNINDENT
  189897. .IP \(bu 2
  189898. \fBISSUE\fP \fI\%#19532\fP: (\fI\%stolendog\fP) salt\-ssh running git clone with not root user (refs: \fI\%#43769\fP)
  189899. .IP \(bu 2
  189900. \fBISSUE\fP \fI\%#10582\fP: (\fI\%mtorromeo\fP) Git ssh helper may be unable run (refs: \fI\%#43769\fP)
  189901. .IP \(bu 2
  189902. \fBPR\fP \fI\%#44008\fP: (\fI\%mtorromeo\fP) Backport \fI\%#43769\fP to 2017.7
  189903. @ \fI2017\-10\-23 14:19:57 UTC\fP
  189904. .INDENT 2.0
  189905. .IP \(bu 2
  189906. \fBPR\fP \fI\%#43769\fP: (\fI\%mtorromeo\fP) Copy git ssh\-id\-wrapper to /tmp only if necessary (Fixes \fI\%#10582\fP, \fI\%#19532\fP) (refs: \fI\%#44008\fP)
  189907. .IP \(bu 2
  189908. 01e7bab990 Merge pull request \fI\%#44008\fP from mtorromeo/git\-noexec\-fix
  189909. .IP \(bu 2
  189910. a7a841d9d2 Merge branch \(aq2017.7\(aq into git\-noexec\-fix
  189911. .IP \(bu 2
  189912. d177240cfc Merge branch \(aq2017.7\(aq into git\-noexec\-fix
  189913. .IP \(bu 2
  189914. a63e6ca963 Copy git ssh\-id\-wrapper to /tmp only if necessary (Fixes \fI\%#10582\fP, Fixes \fI\%#19532\fP)
  189915. .UNINDENT
  189916. .IP \(bu 2
  189917. \fBPR\fP \fI\%#44202\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  189918. @ \fI2017\-10\-23 14:18:30 UTC\fP
  189919. .INDENT 2.0
  189920. .IP \(bu 2
  189921. 85c0ef493f Merge pull request \fI\%#44202\fP from rallytime/merge\-2017.7
  189922. .IP \(bu 2
  189923. 99ff7a5c12 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  189924. .INDENT 2.0
  189925. .IP \(bu 2
  189926. 09ddfd0c08 Merge pull request \fI\%#44167\fP from garethgreenaway/44140_debian_ip_fixes
  189927. .INDENT 2.0
  189928. .IP \(bu 2
  189929. 5f7555846f When looping through the various pre, post, up and down commands put them into the interface dict using the right internet family variable.
  189930. .UNINDENT
  189931. .IP \(bu 2
  189932. 9f9e936b52 Merge pull request \fI\%#43830\fP from rallytime/bp\-43644
  189933. .INDENT 2.0
  189934. .IP \(bu 2
  189935. 12845ae802 Several fixes for RDS DB parameter group management
  189936. .UNINDENT
  189937. .IP \(bu 2
  189938. 07db6a3d8b Merge pull request \fI\%#43994\fP from oeuftete/fix\-manage\-runner\-presence
  189939. .INDENT 2.0
  189940. .IP \(bu 2
  189941. f3980d7d83 Fix manage.present to show lost minions
  189942. .UNINDENT
  189943. .IP \(bu 2
  189944. a07537e258 Merge pull request \fI\%#44188\fP from terminalmage/issue44150
  189945. .INDENT 2.0
  189946. .IP \(bu 2
  189947. 0692f442db yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  189948. .UNINDENT
  189949. .IP \(bu 2
  189950. 715edc0cea Merge pull request \fI\%#44158\fP from rallytime/bp\-44089
  189951. .INDENT 2.0
  189952. .IP \(bu 2
  189953. 534faf0b7a Catch on empty Virtualbox network addr \fI\%#43427\fP
  189954. .UNINDENT
  189955. .UNINDENT
  189956. .UNINDENT
  189957. .IP \(bu 2
  189958. \fBPR\fP \fI\%#44208\fP: (\fI\%twangboy\fP) Fix some lint in PR: 44080
  189959. @ \fI2017\-10\-20 16:42:02 UTC\fP
  189960. .INDENT 2.0
  189961. .IP \(bu 2
  189962. d7dc2bd0e8 Merge pull request \fI\%#44208\fP from twangboy/win_fix_group.present
  189963. .IP \(bu 2
  189964. 61e2e9ccda Fix some lint
  189965. .UNINDENT
  189966. .IP \(bu 2
  189967. \fBPR\fP \fI\%#43843\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_mount\fP for Windows
  189968. @ \fI2017\-10\-20 14:27:25 UTC\fP
  189969. .INDENT 2.0
  189970. .IP \(bu 2
  189971. c6d27ada51 Merge pull request \fI\%#43843\fP from twangboy/win_unit_test_mount
  189972. .IP \(bu 2
  189973. a862e0bf2d Remove unneeded import
  189974. .IP \(bu 2
  189975. d78f27466d Fix \fIunit.states.test_mount\fP for Windows
  189976. .UNINDENT
  189977. .IP \(bu 2
  189978. \fBPR\fP \fI\%#44111\fP: (\fI\%anlutro\fP) Try to correctly parse debian codename from /etc/os\-release
  189979. @ \fI2017\-10\-19 22:23:26 UTC\fP
  189980. .INDENT 2.0
  189981. .IP \(bu 2
  189982. 372820ea38 Merge pull request \fI\%#44111\fP from alprs/fix\-deb8\-py3\-oscodename
  189983. .IP \(bu 2
  189984. 1e1e5a3ff6 try to correctly parse debian codename from /etc/os\-release
  189985. .UNINDENT
  189986. .IP \(bu 2
  189987. \fBPR\fP \fI\%#44187\fP: (\fI\%twangboy\fP) Fix pickling errors on Windows
  189988. @ \fI2017\-10\-19 20:36:51 UTC\fP
  189989. .INDENT 2.0
  189990. .IP \(bu 2
  189991. 75136152c1 Merge pull request \fI\%#44187\fP from twangboy/win_fix_unit_test_daemons.py
  189992. .IP \(bu 2
  189993. 64d2e4f732 Fix pickling errors on Windows
  189994. .UNINDENT
  189995. .IP \(bu 2
  189996. \fBISSUE\fP \fI\%#44181\fP: (\fI\%jonans\fP) Scheduler with multiple when values doesn\(aqt run (refs: \fI\%#44186\fP)
  189997. .IP \(bu 2
  189998. \fBPR\fP \fI\%#44186\fP: (\fI\%garethgreenaway\fP) [2017.7] scheduler fixes
  189999. @ \fI2017\-10\-19 20:36:04 UTC\fP
  190000. .INDENT 2.0
  190001. .IP \(bu 2
  190002. 7a89cd8697 Merge pull request \fI\%#44186\fP from garethgreenaway/44181_scheduler_multiple_whens
  190003. .IP \(bu 2
  190004. 7eef3b3571 Adding a copy.deepcopy to the for loop that looks for old jobs to avoid stale jobs ending up in the list.
  190005. .UNINDENT
  190006. .IP \(bu 2
  190007. \fBPR\fP \fI\%#43896\fP: (\fI\%twangboy\fP) Fix win_lgpo execution module
  190008. @ \fI2017\-10\-19 20:13:18 UTC\fP
  190009. .INDENT 2.0
  190010. .IP \(bu 2
  190011. 1d16ae8ba7 Merge pull request \fI\%#43896\fP from twangboy/win_fix_lgpo_scom
  190012. .IP \(bu 2
  190013. 648d1b8d99 Catch CommandExecutionError
  190014. .IP \(bu 2
  190015. 0040082d0a Fix pylint error
  190016. .IP \(bu 2
  190017. 91258cd6a8 Fix typo
  190018. .IP \(bu 2
  190019. 261dba347d Put the file.remove in a try/except/else block
  190020. .IP \(bu 2
  190021. 020c2a2b85 Fix syntax error
  190022. .IP \(bu 2
  190023. d5bec99126 Fix some lint
  190024. .IP \(bu 2
  190025. b96186d60d Fix INSTALL_LANGUAGE
  190026. .IP \(bu 2
  190027. 5471bd521f Fix problem with file handle
  190028. .IP \(bu 2
  190029. 5ec58c6200 Use System Install Language as default fallback
  190030. .IP \(bu 2
  190031. f9ad446019 Fix win_lgpo execution module
  190032. .UNINDENT
  190033. .IP \(bu 2
  190034. \fBPR\fP \fI\%#44080\fP: (\fI\%twangboy\fP) Fix a regression in \fIgroup.present\fP in Windows
  190035. @ \fI2017\-10\-19 20:10:44 UTC\fP
  190036. .INDENT 2.0
  190037. .IP \(bu 2
  190038. 98356b86af Merge pull request \fI\%#44080\fP from twangboy/win_fix_group.present
  190039. .IP \(bu 2
  190040. 29bc80ff87 Improve get_sam_name
  190041. .IP \(bu 2
  190042. ef759a3875 Fix example in function docs for get_sam_name
  190043. .IP \(bu 2
  190044. 43740c5fed Document 15 character limit
  190045. .IP \(bu 2
  190046. 83f36cc2ef Account for 15 character limit in hostname
  190047. .IP \(bu 2
  190048. aa278966de Remove *args, pass gid as a keyword
  190049. .IP \(bu 2
  190050. 5230ecd7e1 Accept *args
  190051. .UNINDENT
  190052. .IP \(bu 2
  190053. \fBPR\fP \fI\%#44171\fP: (\fI\%Ch3LL\fP) Add SPM Build Integration Tests
  190054. @ \fI2017\-10\-19 19:49:14 UTC\fP
  190055. .INDENT 2.0
  190056. .IP \(bu 2
  190057. 5ef124bf2d Merge pull request \fI\%#44171\fP from Ch3LL/spm_int
  190058. .IP \(bu 2
  190059. cd79e9444e remove unneded kwarg
  190060. .IP \(bu 2
  190061. 1541376c4f Add spm build test
  190062. .UNINDENT
  190063. .IP \(bu 2
  190064. \fBPR\fP \fI\%#44157\fP: (\fI\%benediktwerner\fP) Added \(aqversionadded\(aq tags to sensehat modules
  190065. @ \fI2017\-10\-19 14:13:31 UTC\fP
  190066. .INDENT 2.0
  190067. .IP \(bu 2
  190068. 34a843252d Merge pull request \fI\%#44157\fP from benediktwerner/2017.7
  190069. .IP \(bu 2
  190070. bd825b51cc Changed sensehat versionadded from 2017.7 to 2017.7.0
  190071. .IP \(bu 2
  190072. f1d3c5bbcf Added \(aqversionadded\(aq tags to sensehat modules
  190073. .UNINDENT
  190074. .IP \(bu 2
  190075. \fBPR\fP \fI\%#44164\fP: (\fI\%terminalmage\fP) Fix examples in docker_container.{stopped,absent} docstrings
  190076. @ \fI2017\-10\-19 14:12:37 UTC\fP
  190077. .INDENT 2.0
  190078. .IP \(bu 2
  190079. 1427c72e1e Merge pull request \fI\%#44164\fP from terminalmage/fix\-docker\-docstring
  190080. .IP \(bu 2
  190081. 7b46489e33 Fix examples in docker_container.{stopped,absent} docstrings
  190082. .UNINDENT
  190083. .IP \(bu 2
  190084. \fBPR\fP \fI\%#44168\fP: (\fI\%twangboy\fP) Fix \fIunit.test_auth\fP for Windows
  190085. @ \fI2017\-10\-19 14:12:22 UTC\fP
  190086. .INDENT 2.0
  190087. .IP \(bu 2
  190088. 77969c4161 Merge pull request \fI\%#44168\fP from twangboy/win_skip_pam_eath
  190089. .IP \(bu 2
  190090. bb1d2eb85b Skip tests that are failing on PAM eauth
  190091. .UNINDENT
  190092. .IP \(bu 2
  190093. \fBPR\fP \fI\%#44151\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190094. @ \fI2017\-10\-18 16:52:30 UTC\fP
  190095. .INDENT 2.0
  190096. .IP \(bu 2
  190097. 88a776d9d2 Merge pull request \fI\%#44151\fP from rallytime/merge\-2017.7
  190098. .IP \(bu 2
  190099. 6aa8f03a4a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190100. .INDENT 2.0
  190101. .IP \(bu 2
  190102. 0cd493b691 Merge pull request \fI\%#44131\fP from rallytime/bp\-44029
  190103. .INDENT 2.0
  190104. .IP \(bu 2
  190105. bebf301976 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  190106. .IP \(bu 2
  190107. b4ba7ae2fc addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  190108. .UNINDENT
  190109. .IP \(bu 2
  190110. 3a68e356f8 Merge pull request \fI\%#44093\fP from gtmanfred/fix\-44087
  190111. .INDENT 2.0
  190112. .IP \(bu 2
  190113. 5455c5053b fix pylint
  190114. .IP \(bu 2
  190115. f749cafa25 don\(aqt filter if return is not a dict
  190116. .UNINDENT
  190117. .IP \(bu 2
  190118. c785d7a847 Merge pull request \fI\%#44122\fP from cachedout/gpg_pr_template
  190119. .INDENT 2.0
  190120. .IP \(bu 2
  190121. e41e3d76be Typo fix
  190122. .IP \(bu 2
  190123. 37c7980880 Add note about GPG signing to PR template
  190124. .UNINDENT
  190125. .IP \(bu 2
  190126. bf90ea1f51 Merge pull request \fI\%#44124\fP from rallytime/merge\-2016.11
  190127. .INDENT 2.0
  190128. .IP \(bu 2
  190129. 59861291c8 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  190130. .INDENT 2.0
  190131. .IP \(bu 2
  190132. 57623e2abe Merge pull request \fI\%#44028\fP from rallytime/bp\-44011
  190133. .INDENT 2.0
  190134. .IP \(bu 2
  190135. 89e084bda3 Do not allow IDs with null bytes in decoded payloads
  190136. .IP \(bu 2
  190137. 206ae23f15 Don\(aqt allow path separators in minion ID
  190138. .UNINDENT
  190139. .UNINDENT
  190140. .UNINDENT
  190141. .IP \(bu 2
  190142. 13f3ffa83a Merge pull request \fI\%#44097\fP from gtmanfred/openneb
  190143. .INDENT 2.0
  190144. .IP \(bu 2
  190145. c29655b2c2 Merge branch \(aq2016.11\(aq into openneb
  190146. .IP \(bu 2
  190147. bd2490b149 OpenNebula does not require the template_id to be specified
  190148. .UNINDENT
  190149. .IP \(bu 2
  190150. ac3e4df964 Merge pull request \fI\%#44110\fP from roaldnefs/fix\-doc\-local\-returner
  190151. .INDENT 2.0
  190152. .IP \(bu 2
  190153. efd58f7594 Merge branch \(aq2016.11\(aq into fix\-doc\-local\-returner
  190154. .IP \(bu 2
  190155. 881f1822f2 Format fix code example local returner doc
  190156. .UNINDENT
  190157. .UNINDENT
  190158. .UNINDENT
  190159. .IP \(bu 2
  190160. \fBISSUE\fP \fI\%#43918\fP: (\fI\%mwerickso\fP) subset argument does not work with saltmod.state (refs: \fI\%#43933\fP)
  190161. .IP \(bu 2
  190162. \fBPR\fP \fI\%#43933\fP: (\fI\%gtmanfred\fP) if expect_minions is passed use that instead
  190163. @ \fI2017\-10\-18 16:43:39 UTC\fP
  190164. .INDENT 2.0
  190165. .IP \(bu 2
  190166. 0b47eb7242 Merge pull request \fI\%#43933\fP from gtmanfred/2017.7
  190167. .IP \(bu 2
  190168. 272dcc6ba5 add inline comment about popping expect_minions
  190169. .IP \(bu 2
  190170. b615ce1762 if expect_minions is passed use that instead
  190171. .UNINDENT
  190172. .IP \(bu 2
  190173. \fBPR\fP \fI\%#44081\fP: (\fI\%skizunov\fP) Windows: Fix usage of pkgrepo state
  190174. @ \fI2017\-10\-18 16:16:46 UTC\fP
  190175. .INDENT 2.0
  190176. .IP \(bu 2
  190177. 36da1a7fac Merge pull request \fI\%#44081\fP from skizunov/develop3
  190178. .IP \(bu 2
  190179. 351d16840b Move strip_uri to salt/utils/pkg/deb.py
  190180. .IP \(bu 2
  190181. f54c7a6f01 Windows: Fix usage of pkgrepo state
  190182. .UNINDENT
  190183. .IP \(bu 2
  190184. \fBPR\fP \fI\%#43913\fP: (\fI\%twangboy\fP) Fix \fIunit.templates.test_jinja\fP for Windows
  190185. @ \fI2017\-10\-17 21:09:05 UTC\fP
  190186. .INDENT 2.0
  190187. .IP \(bu 2
  190188. afcaa0c591 Merge pull request \fI\%#43913\fP from twangboy/win_fix_test_jinja
  190189. .IP \(bu 2
  190190. a4e2d8059d Fix \fIunit.templates.test_jinja\fP for Windows
  190191. .UNINDENT
  190192. .IP \(bu 2
  190193. \fBPR\fP \fI\%#43917\fP: (\fI\%twangboy\fP) Fix \fIunit.test_pillar\fP for Windows
  190194. @ \fI2017\-10\-17 21:06:46 UTC\fP
  190195. .INDENT 2.0
  190196. .IP \(bu 2
  190197. fc5754c6a1 Merge pull request \fI\%#43917\fP from twangboy/win_unit_test_pillar
  190198. .IP \(bu 2
  190199. 00dbba5712 Fix \fIunit.test_pillar\fP for Windows
  190200. .UNINDENT
  190201. .IP \(bu 2
  190202. \fBPR\fP \fI\%#44133\fP: (\fI\%cachedout\fP) Fix typos in parallel states docs
  190203. @ \fI2017\-10\-17 15:24:19 UTC\fP
  190204. .INDENT 2.0
  190205. .IP \(bu 2
  190206. 6252f82f58 Merge pull request \fI\%#44133\fP from cachedout/fix_paralell_docs
  190207. .IP \(bu 2
  190208. 8d1c1e21f0 Fix typos in paralell states docs
  190209. .UNINDENT
  190210. .IP \(bu 2
  190211. \fBPR\fP \fI\%#44135\fP: (\fI\%timfreund\fP) Insert missing verb in gitfs walkthrough
  190212. @ \fI2017\-10\-17 14:32:13 UTC\fP
  190213. .INDENT 2.0
  190214. .IP \(bu 2
  190215. 0d3f5db867 Merge pull request \fI\%#44135\fP from timfreund/insert_missing_verb
  190216. .IP \(bu 2
  190217. 9557504b75 Insert missing verb in gitfs walkthrough
  190218. .UNINDENT
  190219. .IP \(bu 2
  190220. \fBPR\fP \fI\%#44055\fP: (\fI\%nasenbaer13\fP) Activate jid_queue also for SingleMinions to workaround (Backport)
  190221. @ \fI2017\-10\-16 20:14:52 UTC\fP
  190222. .INDENT 2.0
  190223. .IP \(bu 2
  190224. \fBPR\fP \fI\%#43860\fP: (\fI\%nasenbaer13\fP) Activate jid_queue also for SingleMinions (occurs on reconnect) (refs: \fI\%#44055\fP)
  190225. .IP \(bu 2
  190226. a9700f6061 Merge pull request \fI\%#44055\fP from eyj/jid_queue
  190227. .IP \(bu 2
  190228. 4bdd5bbf6b Merge branch \(aq2017.7\(aq into jid_queue
  190229. .IP \(bu 2
  190230. facef2227d Merge branch \(aq2017.7\(aq into jid_queue
  190231. .IP \(bu 2
  190232. 2fedcec6bb Merge branch \(aq2017.7\(aq into jid_queue
  190233. .IP \(bu 2
  190234. 255aa94c64 Activate jid_queue also for SingleMinions to workaround 0mq reconnection issues
  190235. .UNINDENT
  190236. .IP \(bu 2
  190237. \fBPR\fP \fI\%#44125\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.2 to 2017.7
  190238. @ \fI2017\-10\-16 20:02:25 UTC\fP
  190239. .INDENT 2.0
  190240. .IP \(bu 2
  190241. 2fba45cd3f Merge pull request \fI\%#44125\fP from rallytime/merge\-2017.7
  190242. .IP \(bu 2
  190243. c4ae4a6b50 Merge branch \(aq2017.7.2\(aq into \(aq2017.7\(aq
  190244. .INDENT 2.0
  190245. .IP \(bu 2
  190246. 5d719a2219 Merge pull request \fI\%#44027\fP from rallytime/bp\-44012
  190247. .IP \(bu 2
  190248. f7824e41f3 Don\(aqt allow path separators in minion ID
  190249. .IP \(bu 2
  190250. 44060dc9c1 Do not allow IDs with null bytes in decoded payloads
  190251. .UNINDENT
  190252. .UNINDENT
  190253. .IP \(bu 2
  190254. \fBISSUE\fP \fI\%#43307\fP: (\fI\%marek\-knappe\fP) Filesystem creation is failing on newly created LV (refs: \fI\%#44029\fP)
  190255. .IP \(bu 2
  190256. \fBPR\fP \fI\%#44029\fP: (\fI\%msummers42\fP) addresses issue \fI\%#43307\fP, disk.format_ to disk.format (refs: \fI\%#44131\fP)
  190257. @ \fI2017\-10\-16 19:59:20 UTC\fP
  190258. .INDENT 2.0
  190259. .IP \(bu 2
  190260. 68974aa74d Merge pull request \fI\%#44029\fP from msummers42/2017.7
  190261. .IP \(bu 2
  190262. 16e1c1dfc8 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  190263. .IP \(bu 2
  190264. 3d597db51c Merge branch \(aq2017.7\(aq into 2017.7
  190265. .IP \(bu 2
  190266. 18fb0be96a addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  190267. .UNINDENT
  190268. .IP \(bu 2
  190269. \fBPR\fP \fI\%#44079\fP: (\fI\%skizunov\fP) opkg: Fix usage with pkgrepo.managed
  190270. @ \fI2017\-10\-16 19:58:13 UTC\fP
  190271. .INDENT 2.0
  190272. .IP \(bu 2
  190273. d0bbe65ffa Merge pull request \fI\%#44079\fP from skizunov/develop2
  190274. .IP \(bu 2
  190275. 0614d1af30 Merge branch \(aq2017.7\(aq into develop2
  190276. .IP \(bu 2
  190277. b6b12fe495 opkg: Fix usage with pkgrepo.managed
  190278. .UNINDENT
  190279. .IP \(bu 2
  190280. \fBPR\fP \fI\%#44090\fP: (\fI\%pratik705\fP) Fix create_attach_volumes salt\-cloud action for gcp
  190281. @ \fI2017\-10\-16 19:04:22 UTC\fP
  190282. .INDENT 2.0
  190283. .IP \(bu 2
  190284. 22a8253595 Merge pull request \fI\%#44090\fP from pratik705/fix\-create_attach_volumes_salt\-cloud_action\-GCP
  190285. .IP \(bu 2
  190286. 3eefd334c5 Fixed "create_attach_volumes" salt\-cloud action for GCP
  190287. .UNINDENT
  190288. .IP \(bu 2
  190289. \fBPR\fP \fI\%#44121\fP: (\fI\%benediktwerner\fP) Fixed code snippet in unit testing documentation
  190290. @ \fI2017\-10\-16 18:28:36 UTC\fP
  190291. .INDENT 2.0
  190292. .IP \(bu 2
  190293. 888e5f51a2 Merge pull request \fI\%#44121\fP from benediktwerner/2017.7
  190294. .IP \(bu 2
  190295. 1319c822bd Fixed code snippet in unit testing doc
  190296. .UNINDENT
  190297. .IP \(bu 2
  190298. \fBPR\fP \fI\%#44098\fP: (\fI\%twangboy\fP) Return multiprocessing queue in LogSetupMock class
  190299. @ \fI2017\-10\-16 18:14:30 UTC\fP
  190300. .INDENT 2.0
  190301. .IP \(bu 2
  190302. 9fe94d7843 Merge pull request \fI\%#44098\fP from twangboy/win_mock_test_parsers
  190303. .IP \(bu 2
  190304. cc43ca27af Return multiprocessing queue in LogSetupMock class
  190305. .UNINDENT
  190306. .IP \(bu 2
  190307. \fBPR\fP \fI\%#44118\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190308. @ \fI2017\-10\-16 17:01:38 UTC\fP
  190309. .INDENT 2.0
  190310. .IP \(bu 2
  190311. 0ee04eaf1d Merge pull request \fI\%#44118\fP from rallytime/merge\-2017.7
  190312. .IP \(bu 2
  190313. bbec47afbc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190314. .INDENT 2.0
  190315. .IP \(bu 2
  190316. c960ca32c2 Merge pull request \fI\%#44092\fP from techhat/awsunicode
  190317. .INDENT 2.0
  190318. .IP \(bu 2
  190319. bbd9db4d00 One more encoding
  190320. .IP \(bu 2
  190321. 0e8b325667 Apparently __salt_system_encoding__ is a thing
  190322. .IP \(bu 2
  190323. 1e7211838d Use system encoding
  190324. .IP \(bu 2
  190325. 1af21bbe5e Made sure that unicoded data is sent to sha256()
  190326. .UNINDENT
  190327. .IP \(bu 2
  190328. d89c317d96 Merge pull request \fI\%#44021\fP from whiteinge/cpstats\-attribute\-error
  190329. .INDENT 2.0
  190330. .IP \(bu 2
  190331. bf14e5f578 Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  190332. .UNINDENT
  190333. .IP \(bu 2
  190334. bbdabe242a Merge pull request \fI\%#44025\fP from dayid/lover_typo
  190335. .INDENT 2.0
  190336. .IP \(bu 2
  190337. 385980c21a Merge branch \(aq2016.11\(aq of \fI\%https://github.com/saltstack/salt\fP into lover_typo
  190338. .IP \(bu 2
  190339. 266dc00a23 Typo correction of lover to lower
  190340. .UNINDENT
  190341. .IP \(bu 2
  190342. d8f3891a5e Merge pull request \fI\%#44030\fP from rallytime/merge\-2016.11
  190343. .INDENT 2.0
  190344. .IP \(bu 2
  190345. 53eaf0d75c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  190346. .IP \(bu 2
  190347. 64fd839377 Merge pull request \fI\%#44010\fP from Ch3LL/2016.3.7_follow_up
  190348. .INDENT 2.0
  190349. .IP \(bu 2
  190350. 9a00302cd8 fix 2016.3.7 release notes merge conflict
  190351. .IP \(bu 2
  190352. 63da1214db Do not allow IDs with null bytes in decoded payloads
  190353. .IP \(bu 2
  190354. ee792581fc Don\(aqt allow path separators in minion ID
  190355. .IP \(bu 2
  190356. 8aab65c718 fix 2016.3.7 release notes merge conflict
  190357. .UNINDENT
  190358. .IP \(bu 2
  190359. bd73dcb02c Merge pull request \fI\%#43977\fP from Ch3LL/3.8_sec
  190360. .IP \(bu 2
  190361. 5fb3f5f6b1 Add Security Notes to 2016.3.8 Release Notes
  190362. .UNINDENT
  190363. .UNINDENT
  190364. .UNINDENT
  190365. .IP \(bu 2
  190366. \fBPR\fP \fI\%#44099\fP: (\fI\%twangboy\fP) Skip Master, Minion, and Syndic parser tests
  190367. @ \fI2017\-10\-16 16:07:00 UTC\fP
  190368. .INDENT 2.0
  190369. .IP \(bu 2
  190370. 28fa097b9b Merge pull request \fI\%#44099\fP from twangboy/win_skip_test_parsers
  190371. .IP \(bu 2
  190372. caf086c05a Skip Master, Minion, and Syndic parser tests
  190373. .UNINDENT
  190374. .IP \(bu 2
  190375. \fBPR\fP \fI\%#44106\fP: (\fI\%roaldnefs\fP) Fix mattermost returner documentation
  190376. @ \fI2017\-10\-16 13:12:23 UTC\fP
  190377. .INDENT 2.0
  190378. .IP \(bu 2
  190379. dbf112ead7 Merge pull request \fI\%#44106\fP from roaldnefs/fix\-doc\-mattermost_returner
  190380. .IP \(bu 2
  190381. b3761a0401 Fix doc indentation in mattermost_returner
  190382. .UNINDENT
  190383. .IP \(bu 2
  190384. \fBPR\fP \fI\%#44054\fP: (\fI\%nasenbaer13\fP) Backport of missing delete_on_termination
  190385. @ \fI2017\-10\-13 15:45:25 UTC\fP
  190386. .INDENT 2.0
  190387. .IP \(bu 2
  190388. \fBPR\fP \fI\%#43859\fP: (\fI\%nasenbaer13\fP) Add missing delete_on_termination passthrough. Adapt docs. (refs: \fI\%#44054\fP)
  190389. .IP \(bu 2
  190390. fd2c51b76c Merge pull request \fI\%#44054\fP from eyj/boto_lc
  190391. .IP \(bu 2
  190392. 34d4629a64 Merge branch \(aq2017.7\(aq into boto_lc
  190393. .IP \(bu 2
  190394. 9efd63526a Adapted documentation of delete_on_termination parameter
  190395. .IP \(bu 2
  190396. eb2bfd047b Add missing delete_on_termination passthrough. Adapt docs.
  190397. .UNINDENT
  190398. .IP \(bu 2
  190399. \fBPR\fP \fI\%#44076\fP: (\fI\%Ch3LL\fP) Add spm shell tests
  190400. @ \fI2017\-10\-13 14:32:19 UTC\fP
  190401. .INDENT 2.0
  190402. .IP \(bu 2
  190403. b61ed96268 Merge pull request \fI\%#44076\fP from Ch3LL/spm_test
  190404. .IP \(bu 2
  190405. d2e91c33bd Add spm shell tests
  190406. .UNINDENT
  190407. .IP \(bu 2
  190408. \fBPR\fP \fI\%#44051\fP: (\fI\%twangboy\fP) Fix some documentation formatting issues in the win_dacl state
  190409. @ \fI2017\-10\-12 15:40:17 UTC\fP
  190410. .INDENT 2.0
  190411. .IP \(bu 2
  190412. e38f313ac0 Merge pull request \fI\%#44051\fP from twangboy/win_fix_docs_dacl
  190413. .IP \(bu 2
  190414. 377d6b6171 Fix some docs in the win_dacl state module
  190415. .UNINDENT
  190416. .IP \(bu 2
  190417. \fBPR\fP \fI\%#44066\fP: (\fI\%Ch3LL\fP) Add Known CherryPy Issue to 2017.7.2 Release Notes
  190418. @ \fI2017\-10\-12 15:18:25 UTC\fP
  190419. .INDENT 2.0
  190420. .IP \(bu 2
  190421. a85837d72b Merge pull request \fI\%#44066\fP from Ch3LL/cherry_release
  190422. .IP \(bu 2
  190423. 8e597fcce9 Add Known CherryPy Issue to 2017.7.2 Release Notes
  190424. .UNINDENT
  190425. .IP \(bu 2
  190426. \fBISSUE\fP \fI\%#43643\fP: (\fI\%doublez13\fP) salt\-ssh: multiple targets fails after upgrade to 2017.7 (refs: \fI\%#43889\fP)
  190427. .IP \(bu 2
  190428. \fBISSUE\fP \fI\%#43449\fP: (\fI\%ecgg\fP) salt\-ssh \-L with hosts down or unreachable returns wrong results (refs: \fI\%#43889\fP)
  190429. .IP \(bu 2
  190430. \fBPR\fP \fI\%#43889\fP: (\fI\%CorvinM\fP) Fix issue with using roster_defaults with flat or cloud rosters.
  190431. @ \fI2017\-10\-11 23:22:11 UTC\fP
  190432. .INDENT 2.0
  190433. .IP \(bu 2
  190434. fcab77ac7b Merge pull request \fI\%#43889\fP from CorvinM/issue43449
  190435. .IP \(bu 2
  190436. fefd28d896 Add futureproofing to roster_defaults to support roster dictionary options
  190437. .IP \(bu 2
  190438. aebe76b6f8 Fix issue with using roster_defaults with flat or cloud rosters. fixes \fI\%#43449\fP fixes \fI\%#43643\fP
  190439. .UNINDENT
  190440. .IP \(bu 2
  190441. \fBPR\fP \fI\%#44031\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190442. @ \fI2017\-10\-11 22:03:31 UTC\fP
  190443. .INDENT 2.0
  190444. .IP \(bu 2
  190445. 3ad1c6d1d9 Merge pull request \fI\%#44031\fP from rallytime/merge\-2017.7
  190446. .IP \(bu 2
  190447. 1d4a6c3949 Lint: Fixup undefined variable errors
  190448. .IP \(bu 2
  190449. 788ad0609a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190450. .INDENT 2.0
  190451. .IP \(bu 2
  190452. 0dbf41e79e Merge pull request \fI\%#44011\fP from Ch3LL/2016.11.7_follow_up
  190453. .INDENT 2.0
  190454. .IP \(bu 2
  190455. c0149101c0 Do not allow IDs with null bytes in decoded payloads
  190456. .IP \(bu 2
  190457. 19481423dd Don\(aqt allow path separators in minion ID
  190458. .UNINDENT
  190459. .IP \(bu 2
  190460. d61300df20 Merge pull request \fI\%#44023\fP from Ch3LL/11.9rn
  190461. .INDENT 2.0
  190462. .IP \(bu 2
  190463. 7f9015eb41 Add 2016.11.9 Release Note File
  190464. .UNINDENT
  190465. .IP \(bu 2
  190466. 9ff53bf63a Merge pull request \fI\%#44019\fP from benediktwerner/2016.11
  190467. .INDENT 2.0
  190468. .IP \(bu 2
  190469. bc53598027 Fixed spelling mistake in salt_bootstrap tutorial
  190470. .IP \(bu 2
  190471. 6c30344824 Added missing tutorial docs to the tutorial index
  190472. .UNINDENT
  190473. .IP \(bu 2
  190474. 364523f5f8 Merge pull request \fI\%#43955\fP from meaksh/2016.11\-fix\-2291
  190475. .INDENT 2.0
  190476. .IP \(bu 2
  190477. a81b78381b Merge branch \(aq2016.11\(aq into 2016.11\-fix\-2291
  190478. .IP \(bu 2
  190479. 44bc91bb98 Enable \(aq\-\-with\-salt\-version\(aq parameter for setup.py script
  190480. .UNINDENT
  190481. .IP \(bu 2
  190482. fec714b91d Merge pull request \fI\%#43962\fP from bobrik/kmod\-built\-in
  190483. .INDENT 2.0
  190484. .IP \(bu 2
  190485. 95ab901553 Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  190486. .UNINDENT
  190487. .IP \(bu 2
  190488. e434c39c4e Merge pull request \fI\%#43960\fP from cro/ldap_nopw_bind2
  190489. .INDENT 2.0
  190490. .IP \(bu 2
  190491. 962a20cf4b Require that bindpw be non\-empty if auth.ldap.anonymous=False
  190492. .IP \(bu 2
  190493. 9df3d91d8f Release notes blurb for change to bindpw requirements
  190494. .UNINDENT
  190495. .IP \(bu 2
  190496. e9dfda2177 Merge pull request \fI\%#43991\fP from Ch3LL/3.8_sec_2
  190497. .INDENT 2.0
  190498. .IP \(bu 2
  190499. 1977df8462 Add Security Notes to 2016.3.8 Release Notes
  190500. .UNINDENT
  190501. .IP \(bu 2
  190502. 2346d2691e Merge pull request \fI\%#43968\fP from rossengeorgiev/fix\-zenoss\-prod_state
  190503. .INDENT 2.0
  190504. .IP \(bu 2
  190505. e6d31c1ea6 fix zenoss state module not respecting test=true
  190506. .UNINDENT
  190507. .IP \(bu 2
  190508. 8d56a5ac45 Merge pull request \fI\%#43776\fP from Ch3LL/2016.11.8_docs
  190509. .INDENT 2.0
  190510. .IP \(bu 2
  190511. f72bc00000 [2016.11] Bump latest and previous versions
  190512. .UNINDENT
  190513. .IP \(bu 2
  190514. 21bf71c3f5 Merge pull request \fI\%#43976\fP from Ch3LL/11.8_sec
  190515. .INDENT 2.0
  190516. .IP \(bu 2
  190517. f0c3184288 Add Security Notes to 2016.11.8 Release Notes
  190518. .UNINDENT
  190519. .IP \(bu 2
  190520. 1d5397ab5b Merge pull request \fI\%#43973\fP from terminalmage/fix\-grains.has_value
  190521. .INDENT 2.0
  190522. .IP \(bu 2
  190523. bf45ae6e6a Fix grains.has_value when value is False
  190524. .UNINDENT
  190525. .IP \(bu 2
  190526. 9ac3f2ea7b Merge pull request \fI\%#43888\fP from rallytime/bp\-43841
  190527. .INDENT 2.0
  190528. .IP \(bu 2
  190529. 87d676f08a add \-n with netstat so we don\(aqt resolve
  190530. .UNINDENT
  190531. .IP \(bu 2
  190532. f880ac4c08 Merge pull request \fI\%#43916\fP from dereckson/fix\-typo\-cloud\-scaleway
  190533. .INDENT 2.0
  190534. .IP \(bu 2
  190535. 15b8b8a9f4 Fix typo in salt\-cloud scaleway documentation
  190536. .UNINDENT
  190537. .UNINDENT
  190538. .UNINDENT
  190539. .IP \(bu 2
  190540. \fBPR\fP \fI\%#44045\fP: (\fI\%isbm\fP) Bugfix: always return a string "list" on unknown job target type.
  190541. @ \fI2017\-10\-11 21:58:12 UTC\fP
  190542. .INDENT 2.0
  190543. .IP \(bu 2
  190544. 5db1e8c6ca Merge pull request \fI\%#44045\fP from isbm/isbm\-tgttype\-fix\-2017\-port
  190545. .IP \(bu 2
  190546. 471ff35c2f Bugfix: always return a string "list" on unknown job target type.
  190547. .UNINDENT
  190548. .IP \(bu 2
  190549. \fBISSUE\fP \fI\%#43949\fP: (\fI\%arthurlogilab\fP) [logger] [sentry] KeyError: \(aqSENTRY_PROJECT\(aq (refs: \fI\%#43950\fP)
  190550. .IP \(bu 2
  190551. \fBPR\fP \fI\%#44026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43950\fP to 2017.7
  190552. @ \fI2017\-10\-11 15:27:49 UTC\fP
  190553. .INDENT 2.0
  190554. .IP \(bu 2
  190555. \fBPR\fP \fI\%#43950\fP: (\fI\%arthurlogilab\fP) [log/sentry] avoid KeyError: \(aqSENTRY_PROJECT\(aq (refs: \fI\%#44026\fP)
  190556. .IP \(bu 2
  190557. 6c8f7fd5ec Merge pull request \fI\%#44026\fP from rallytime/bp\-43950
  190558. .IP \(bu 2
  190559. a37e0bad62 [log/sentry] avoid KeyError: \(aqSENTRY_PROJECT\(aq
  190560. .UNINDENT
  190561. .IP \(bu 2
  190562. \fBPR\fP \fI\%#44012\fP: (\fI\%Ch3LL\fP) Security Fixes for 2017.7.2 (refs: \fI\%#44027\fP)
  190563. @ \fI2017\-10\-10 20:04:08 UTC\fP
  190564. .INDENT 2.0
  190565. .IP \(bu 2
  190566. 369ee8a132 Merge pull request \fI\%#44012\fP from Ch3LL/2017.7.1_follow_up
  190567. .IP \(bu 2
  190568. 92e05cf1c0 Don\(aqt allow path separators in minion ID
  190569. .IP \(bu 2
  190570. 70133aa305 Do not allow IDs with null bytes in decoded payloads
  190571. .UNINDENT
  190572. .IP \(bu 2
  190573. \fBPR\fP \fI\%#44024\fP: (\fI\%Ch3LL\fP) Add 2017.7.3 Release Note File
  190574. @ \fI2017\-10\-10 20:03:12 UTC\fP
  190575. .INDENT 2.0
  190576. .IP \(bu 2
  190577. 4fe029a0ab Merge pull request \fI\%#44024\fP from Ch3LL/7.3rn
  190578. .IP \(bu 2
  190579. 027f509368 Add 2017.7.3 Release Note File
  190580. .UNINDENT
  190581. .IP \(bu 2
  190582. \fBISSUE\fP \fI\%#43997\fP: (\fI\%unthought\fP) gce cloud provider breaks for make_master: True (refs: \fI\%#43998\fP)
  190583. .IP \(bu 2
  190584. \fBPR\fP \fI\%#43998\fP: (\fI\%unthought\fP) Fix gce make_master
  190585. @ \fI2017\-10\-10 20:01:25 UTC\fP
  190586. .INDENT 2.0
  190587. .IP \(bu 2
  190588. e484d16817 Merge pull request \fI\%#43998\fP from unthought/fix\-gce\-make_master
  190589. .IP \(bu 2
  190590. 6e9f0fa24e Fix GCE provider: #create returns bootstrap result
  190591. .UNINDENT
  190592. .IP \(bu 2
  190593. \fBISSUE\fP \fI\%#44013\fP: (\fI\%DenisBY\fP) pkgrepo.managed broken in 2017.7.2 (refs: \fI\%#44016\fP)
  190594. .IP \(bu 2
  190595. \fBPR\fP \fI\%#44016\fP: (\fI\%terminalmage\fP) Fix on_header callback when not redirecting and no Content\-Type present
  190596. @ \fI2017\-10\-10 19:59:24 UTC\fP
  190597. .INDENT 2.0
  190598. .IP \(bu 2
  190599. 82b92d54b3 Merge pull request \fI\%#44016\fP from terminalmage/issue44013
  190600. .IP \(bu 2
  190601. d594b95f92 No need to set a specific encoding if one hasn\(aqt been provided via the headers
  190602. .IP \(bu 2
  190603. 425ede4b84 Fix on_header callback when not redirecting and no Content\-Type present
  190604. .UNINDENT
  190605. .IP \(bu 2
  190606. \fBPR\fP \fI\%#43952\fP: (\fI\%t0fik\fP) add requisites to stateconf ( backport \fI\%#43920\fP)
  190607. @ \fI2017\-10\-10 13:03:31 UTC\fP
  190608. .INDENT 2.0
  190609. .IP \(bu 2
  190610. \fBPR\fP \fI\%#43920\fP: (\fI\%t0fik\fP) Added missing requisites to stateconf renderer (refs: \fI\%#43952\fP)
  190611. .IP \(bu 2
  190612. bd879eb66e Merge pull request \fI\%#43952\fP from jdsieci/2017.7_add_requisites_to_stateconf
  190613. .IP \(bu 2
  190614. 9994c64670 Merge branch \(aq2017.7\(aq into 2017.7_add_requisites_to_stateconf
  190615. .UNINDENT
  190616. .IP \(bu 2
  190617. \fBPR\fP \fI\%#43777\fP: (\fI\%Ch3LL\fP) [2017.7] Bump latest and previous versions
  190618. @ \fI2017\-10\-09 17:21:57 UTC\fP
  190619. .INDENT 2.0
  190620. .IP \(bu 2
  190621. a4358dfa36 Merge pull request \fI\%#43777\fP from Ch3LL/2017.7.2_docs
  190622. .IP \(bu 2
  190623. 410c624f7a [2017.7] Bump latest and previous versions
  190624. .UNINDENT
  190625. .IP \(bu 2
  190626. \fBPR\fP \fI\%#43978\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2017.7.2 Release Notes
  190627. @ \fI2017\-10\-09 17:20:04 UTC\fP
  190628. .INDENT 2.0
  190629. .IP \(bu 2
  190630. 2a064c1a72 Merge pull request \fI\%#43978\fP from Ch3LL/7.2_sec
  190631. .IP \(bu 2
  190632. 57fd6f7bcb Add Security Notes to 2017.7.2 Release Notes
  190633. .UNINDENT
  190634. .IP \(bu 2
  190635. \fBPR\fP \fI\%#43932\fP: (\fI\%techhat\fP) Don\(aqt try to modify dict while looping through it
  190636. @ \fI2017\-10\-06 21:20:54 UTC\fP
  190637. .INDENT 2.0
  190638. .IP \(bu 2
  190639. d9530e3c52 Merge pull request \fI\%#43932\fP from techhat/moddict
  190640. .IP \(bu 2
  190641. 4a77560646 Don\(aqt try to modify dict while looping through it
  190642. .UNINDENT
  190643. .IP \(bu 2
  190644. \fBPR\fP \fI\%#43956\fP: (\fI\%terminalmage\fP) Fix fileclient\(aqs get_url when redirecting to a redirect
  190645. @ \fI2017\-10\-06 21:19:41 UTC\fP
  190646. .INDENT 2.0
  190647. .IP \(bu 2
  190648. 39893a1dab Merge pull request \fI\%#43956\fP from terminalmage/fix\-get_url\-redirects
  190649. .IP \(bu 2
  190650. 9a4f6a260f Fix fileclient\(aqs get_url when redirecting to a redirect
  190651. .UNINDENT
  190652. .IP \(bu 2
  190653. \fBPR\fP \fI\%#43943\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_utils\fP for Windows
  190654. @ \fI2017\-10\-06 19:35:24 UTC\fP
  190655. .INDENT 2.0
  190656. .IP \(bu 2
  190657. 1baf286719 Merge pull request \fI\%#43943\fP from twangboy/win_unit_test_utils
  190658. .IP \(bu 2
  190659. 254dac7723 Fix \fIunit.utils.test_utils\fP for Windows
  190660. .INDENT 2.0
  190661. .INDENT 3.5
  190662. .INDENT 0.0
  190663. .IP \(bu 2
  190664. 89200ff28e rebase from 2017.7.2
  190665. .UNINDENT
  190666. .UNINDENT
  190667. .UNINDENT
  190668. .UNINDENT
  190669. .IP \(bu 2
  190670. \fBPR\fP \fI\%#43939\fP: (\fI\%terminalmage\fP) Fix typo in log message
  190671. @ \fI2017\-10\-05 23:20:04 UTC\fP
  190672. .INDENT 2.0
  190673. .IP \(bu 2
  190674. a8f1750323 Merge pull request \fI\%#43939\fP from terminalmage/fix\-typo
  190675. .IP \(bu 2
  190676. 29d8cf4f26 Fix typo in log message
  190677. .UNINDENT
  190678. .IP \(bu 2
  190679. \fBISSUE\fP \fI\%#43909\fP: (\fI\%frogunder\fP) state.highstate not working on py3 setup (refs: \fI\%#43910\fP)
  190680. .IP \(bu 2
  190681. \fBISSUE\fP \fI\%#43605\fP: (\fI\%cruscio\fP) Module.Run: Passed invalid arguments to state.apply: can\(aqt serialize dict_keys([\(aqtask.create_task\(aq]) (refs: \fI\%#43910\fP)
  190682. .IP \(bu 2
  190683. \fBPR\fP \fI\%#43910\fP: (\fI\%terminalmage\fP) Don\(aqt put unserializable dict.keys() into state return
  190684. @ \fI2017\-10\-05 20:33:47 UTC\fP
  190685. .INDENT 2.0
  190686. .IP \(bu 2
  190687. 1a718eb1ed Merge pull request \fI\%#43910\fP from terminalmage/issue43605
  190688. .IP \(bu 2
  190689. 042e092ac8 Don\(aqt put unserializable dict.keys() into state return
  190690. .UNINDENT
  190691. .IP \(bu 2
  190692. \fBISSUE\fP \fI\%#41894\fP: (\fI\%DR3EVR8u8c\fP) Salt\-cloud can\(aqt resize root volume with public ami images (refs: \fI\%#43907\fP)
  190693. .IP \(bu 2
  190694. \fBISSUE\fP \fI\%#39257\fP: (\fI\%aig787\fP) Using del_root_vol_on_destroy option in salt\-cloud gives IndexError (refs: \fI\%#43907\fP)
  190695. .IP \(bu 2
  190696. \fBPR\fP \fI\%#43927\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43907\fP to 2017.7
  190697. @ \fI2017\-10\-05 20:10:16 UTC\fP
  190698. .INDENT 2.0
  190699. .IP \(bu 2
  190700. \fBPR\fP \fI\%#43907\fP: (\fI\%richardsimko\fP) Make sure EBS volume exists before querying (refs: \fI\%#43927\fP)
  190701. .IP \(bu 2
  190702. \fBPR\fP \fI\%#33115\fP: (\fI\%rbjorklin\fP) Fix override of ec2 volumetype (refs: \fI\%#43907\fP)
  190703. .IP \(bu 2
  190704. a7a59868c8 Merge pull request \fI\%#43927\fP from rallytime/bp\-43907
  190705. .IP \(bu 2
  190706. f62e8ca87f Make sure volume exists before querying
  190707. .UNINDENT
  190708. .IP \(bu 2
  190709. \fBPR\fP \fI\%#43934\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190710. @ \fI2017\-10\-05 20:07:36 UTC\fP
  190711. .INDENT 2.0
  190712. .IP \(bu 2
  190713. 4fcd4709ea Merge pull request \fI\%#43934\fP from rallytime/merge\-2017.7
  190714. .IP \(bu 2
  190715. eaca3291e2 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190716. .INDENT 2.0
  190717. .IP \(bu 2
  190718. 2ab7549d48 Merge pull request \fI\%#43884\fP from UtahDave/2016.11local
  190719. .INDENT 2.0
  190720. .IP \(bu 2
  190721. e3b2857285 Merge branch \(aq2016.11\(aq into 2016.11local
  190722. .UNINDENT
  190723. .IP \(bu 2
  190724. 4b882d4272 Merge pull request \fI\%#43869\fP from terminalmage/issue43522
  190725. .INDENT 2.0
  190726. .IP \(bu 2
  190727. fe28b0d4fb Only join cmd if it\(aqs not a string
  190728. .IP \(bu 2
  190729. 8c671fd0c1 Update SaltConf banner per Rhett\(aqs request
  190730. .UNINDENT
  190731. .IP \(bu 2
  190732. a2161efda3 Merge pull request \fI\%#43707\fP from terminalmage/issue43373
  190733. .INDENT 2.0
  190734. .IP \(bu 2
  190735. 3ebde1895f Merge branch \(aq2016.11\(aq into issue43373
  190736. .IP \(bu 2
  190737. e580ed4caa Merge branch \(aq2016.11\(aq into issue43373
  190738. .IP \(bu 2
  190739. 5b3be6e8af Fix failing unit test
  190740. .IP \(bu 2
  190741. f73764481b Add missing support for use/use_in requisites to state.sls_id
  190742. .UNINDENT
  190743. .UNINDENT
  190744. .UNINDENT
  190745. .IP \(bu 2
  190746. \fBISSUE\fP \fI\%#43658\fP: (\fI\%kvnaveen\fP) KeyError: \(aqas_dict\(aq [DEBUG ] LazyLoaded nested.output (refs: \fI\%#43886\fP)
  190747. .IP \(bu 2
  190748. \fBPR\fP \fI\%#43886\fP: (\fI\%techhat\fP) Fix object_to_dict in azure
  190749. @ \fI2017\-10\-05 19:33:56 UTC\fP
  190750. .INDENT 2.0
  190751. .IP \(bu 2
  190752. 7d174172a0 Merge pull request \fI\%#43886\fP from techhat/azuredict
  190753. .IP \(bu 2
  190754. 223a1eea83 Fix object_to_dict in azure
  190755. .UNINDENT
  190756. .IP \(bu 2
  190757. \fBPR\fP \fI\%#43899\fP: (\fI\%gtmanfred\fP) enable tox for tests
  190758. @ \fI2017\-10\-04 15:08:16 UTC\fP
  190759. .INDENT 2.0
  190760. .IP \(bu 2
  190761. 7038248820 Merge pull request \fI\%#43899\fP from gtmanfred/2017.7
  190762. .IP \(bu 2
  190763. 51eca1a6bd enable tox for tests
  190764. .UNINDENT
  190765. .IP \(bu 2
  190766. \fBPR\fP \fI\%#43828\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190767. @ \fI2017\-10\-04 13:10:13 UTC\fP
  190768. .INDENT 2.0
  190769. .IP \(bu 2
  190770. a5abe33e1c Merge pull request \fI\%#43828\fP from rallytime/merge\-2017.7
  190771. .IP \(bu 2
  190772. 2ff02e4320 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190773. .INDENT 2.0
  190774. .IP \(bu 2
  190775. 85b3aa332a Merge pull request \fI\%#43807\fP from terminalmage/issue43522
  190776. .INDENT 2.0
  190777. .IP \(bu 2
  190778. d8708bf698 cmdmod: Don\(aqt list\-ify string commands on Windows
  190779. .UNINDENT
  190780. .IP \(bu 2
  190781. ea8d273c2b Merge pull request \fI\%#43768\fP from vutny/fix\-pylint\-deprecation\-warnings
  190782. .INDENT 2.0
  190783. .IP \(bu 2
  190784. f8b3fa9da1 Merge branch \(aq2016.11\(aq into fix\-pylint\-deprecation\-warnings
  190785. .IP \(bu 2
  190786. 651ed16ad3 Fix Pylint deprecated option warnings
  190787. .UNINDENT
  190788. .UNINDENT
  190789. .UNINDENT
  190790. .IP \(bu 2
  190791. \fBPR\fP \fI\%#43854\fP: (\fI\%keesbos\fP) Map __env__ in git_pillar before sanity checks
  190792. @ \fI2017\-10\-02 20:44:53 UTC\fP
  190793. .INDENT 2.0
  190794. .IP \(bu 2
  190795. \fBPR\fP \fI\%#43656\fP: (\fI\%keesbos\fP) Git pillar fixes (refs: \fI\%#43854\fP)
  190796. .IP \(bu 2
  190797. 36b0b1174b Merge pull request \fI\%#43854\fP from keesbos/2017.7
  190798. .IP \(bu 2
  190799. fba9c9a935 Map __env__ in git_pillar before sanity checks
  190800. .UNINDENT
  190801. .IP \(bu 2
  190802. \fBPR\fP \fI\%#43847\fP: (\fI\%cachedout\fP) Fix to module.run
  190803. @ \fI2017\-10\-02 19:25:03 UTC\fP
  190804. .INDENT 2.0
  190805. .IP \(bu 2
  190806. c81e8457b8 Merge pull request \fI\%#43847\fP from cachedout/module_run_compare
  190807. .IP \(bu 2
  190808. b11f8c8f29 Merge pull request #17 from terminalmage/pr\-43847
  190809. .INDENT 2.0
  190810. .IP \(bu 2
  190811. 93eaba7c54 Use six.iterkeys() instead of dict.keys()
  190812. .IP \(bu 2
  190813. 5d56a03a67 Improve failures for module.run states
  190814. .UNINDENT
  190815. .IP \(bu 2
  190816. 71780beb5a Merge branch \(aq2017.7\(aq into module_run_compare
  190817. .UNINDENT
  190818. .IP \(bu 2
  190819. \fBISSUE\fP \fI\%#43819\fP: (\fI\%mephi42\fP) archive.extracted shows the http password in the comment field on failure (refs: \fI\%#43844\fP)
  190820. .IP \(bu 2
  190821. \fBPR\fP \fI\%#43844\fP: (\fI\%garethgreenaway\fP) [2017.7] Changes to states/file.py and states/archived.py
  190822. @ \fI2017\-10\-01 09:08:48 UTC\fP
  190823. .INDENT 2.0
  190824. .IP \(bu 2
  190825. dd01e0ce67 Merge pull request \fI\%#43844\fP from garethgreenaway/43819_redact_url_additions
  190826. .IP \(bu 2
  190827. c58c72aff9 When using URLs in archive.extracted, on failure the username & password is in the exception. Calling salt.utils.url.redact_http_basic_auth to ensure the credentials are redacted.
  190828. .INDENT 2.0
  190829. .IP \(bu 2
  190830. f0b985cbbe Merge branch \(aqmodule_run_compare\(aq of \fI\%ssh://github.com/cachedout/salt\fP into module_run_compare
  190831. .INDENT 2.0
  190832. .IP \(bu 2
  190833. aefc773c2f Merge branch \(aq2017.7\(aq into module_run_compare
  190834. .UNINDENT
  190835. .UNINDENT
  190836. .UNINDENT
  190837. .IP \(bu 2
  190838. \fBPR\fP \fI\%#43840\fP: (\fI\%twangboy\fP) Fix \fIunit.states.test_augeas\fP for Windows
  190839. @ \fI2017\-09\-29 21:53:21 UTC\fP
  190840. .INDENT 2.0
  190841. .IP \(bu 2
  190842. 1f52546eab Merge pull request \fI\%#43840\fP from twangboy/win_fix_test_augeas
  190843. .IP \(bu 2
  190844. fd1d6c31de Fix \fIunit.states.test_augeas\fP for Windows
  190845. .UNINDENT
  190846. .IP \(bu 2
  190847. \fBISSUE\fP \fI\%#43553\fP: (\fI\%dafyddj\fP) Vagrant setup (Windows guest) broken on upgrade to 2017.7 (refs: \fI\%#43801\fP)
  190848. .IP \(bu 2
  190849. \fBPR\fP \fI\%#43801\fP: (\fI\%terminalmage\fP) Properly handle UNC paths in salt.utils.path.readlink()
  190850. @ \fI2017\-09\-29 09:58:02 UTC\fP
  190851. .INDENT 2.0
  190852. .IP \(bu 2
  190853. c6fd2cd452 Merge pull request \fI\%#43801\fP from terminalmage/issue43553
  190854. .IP \(bu 2
  190855. 66e6e89dc7 Properly handle UNC paths in salt.utils.path.readlink()
  190856. .UNINDENT
  190857. .IP \(bu 2
  190858. \fBPR\fP \fI\%#43800\fP: (\fI\%Ch3LL\fP) Add note to nitrogen release notes about pip for cent6
  190859. @ \fI2017\-09\-28 17:36:49 UTC\fP
  190860. .INDENT 2.0
  190861. .IP \(bu 2
  190862. 7304907db6 Merge pull request \fI\%#43800\fP from Ch3LL/update_7.0
  190863. .IP \(bu 2
  190864. 50779c3b1c Add note to nitrogen release notes about pip for cent6
  190865. .UNINDENT
  190866. .IP \(bu 2
  190867. \fBPR\fP \fI\%#43779\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_state\fP for Windows
  190868. @ \fI2017\-09\-28 14:27:03 UTC\fP
  190869. .INDENT 2.0
  190870. .IP \(bu 2
  190871. 6f687fdcff Merge pull request \fI\%#43779\fP from twangboy/win_fix_test_state
  190872. .IP \(bu 2
  190873. a64fe75816 Use os agnostic paths
  190874. .UNINDENT
  190875. .IP \(bu 2
  190876. \fBPR\fP \fI\%#43782\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_virt\fP for Windows
  190877. @ \fI2017\-09\-28 14:25:16 UTC\fP
  190878. .INDENT 2.0
  190879. .IP \(bu 2
  190880. db0f569f7a Merge pull request \fI\%#43782\fP from twangboy/win_fix_test_virt
  190881. .IP \(bu 2
  190882. 7192332758 Fix \fIunit.modules.test_virt\fP for Windows
  190883. .UNINDENT
  190884. .IP \(bu 2
  190885. \fBPR\fP \fI\%#43723\fP: (\fI\%nicholasmhughes\fP) Fix ini_manage error and change handling
  190886. @ \fI2017\-09\-28 09:52:09 UTC\fP
  190887. .INDENT 2.0
  190888. .IP \(bu 2
  190889. dd4fc52f1e Merge pull request \fI\%#43723\fP from nicholasmhughes/ini_manage\-error\-handling
  190890. .IP \(bu 2
  190891. d68c5c4be0 prevent exception when test=True
  190892. .IP \(bu 2
  190893. cfe37916c3 handling changes per section
  190894. .IP \(bu 2
  190895. 1c484f6ad5 prevent exception when test=True
  190896. .UNINDENT
  190897. .IP \(bu 2
  190898. \fBPR\fP \fI\%#43781\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_status\fP for Windows
  190899. @ \fI2017\-09\-28 09:06:19 UTC\fP
  190900. .INDENT 2.0
  190901. .IP \(bu 2
  190902. 5e29507c21 Merge pull request \fI\%#43781\fP from twangboy/win_fix_test_status
  190903. .IP \(bu 2
  190904. 16ae8253c1 Mock which, use os.linesep for cmd.run return
  190905. .UNINDENT
  190906. .IP \(bu 2
  190907. \fBPR\fP \fI\%#43785\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_znc\fP for Windows
  190908. @ \fI2017\-09\-28 08:56:11 UTC\fP
  190909. .INDENT 2.0
  190910. .IP \(bu 2
  190911. 05c78ae649 Merge pull request \fI\%#43785\fP from twangboy/win_fix_test_znc
  190912. .IP \(bu 2
  190913. 7d90721f6b Merge branch \(aq2017.7\(aq into win_fix_test_znc
  190914. .IP \(bu 2
  190915. 228e74c8e3 Fix \fIunit.modules.test_znc\fP for Windows
  190916. .UNINDENT
  190917. .IP \(bu 2
  190918. \fBPR\fP \fI\%#43786\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_zypper\fP for Windows
  190919. @ \fI2017\-09\-28 08:51:59 UTC\fP
  190920. .INDENT 2.0
  190921. .IP \(bu 2
  190922. 10ddb8491c Merge pull request \fI\%#43786\fP from twangboy/win_fix_test_zypper
  190923. .IP \(bu 2
  190924. 1c05e37a66 Merge branch \(aq2017.7\(aq into win_fix_test_zypper
  190925. .IP \(bu 2
  190926. aafec7ab0e Fix \fIunit.modules.test_zypper\fP for Windows
  190927. .UNINDENT
  190928. .IP \(bu 2
  190929. \fBPR\fP \fI\%#43773\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  190930. @ \fI2017\-09\-28 08:48:39 UTC\fP
  190931. .INDENT 2.0
  190932. .IP \(bu 2
  190933. 9615ca32d5 Merge pull request \fI\%#43773\fP from rallytime/merge\-2017.7
  190934. .IP \(bu 2
  190935. f7035ed7da Merge branch \(aq2017.7\(aq into merge\-2017.7
  190936. .IP \(bu 2
  190937. dfef4a722c Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  190938. .INDENT 2.0
  190939. .IP \(bu 2
  190940. 1a8cc60bb4 Merge pull request \fI\%#43772\fP from gtmanfred/2016.11
  190941. .INDENT 2.0
  190942. .IP \(bu 2
  190943. 0194c60960 dont print Minion not responding with quiet
  190944. .UNINDENT
  190945. .IP \(bu 2
  190946. 9dee896fb9 Merge pull request \fI\%#43747\fP from rallytime/gpg\-verification
  190947. .INDENT 2.0
  190948. .IP \(bu 2
  190949. 7a70de19f4 Merge branch \(aq2016.11\(aq into gpg\-verification
  190950. .IP \(bu 2
  190951. 23bb4a5dde Add GPG Verification section to Contributing Docs
  190952. .UNINDENT
  190953. .UNINDENT
  190954. .UNINDENT
  190955. .IP \(bu 2
  190956. \fBPR\fP \fI\%#43784\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_win_service\fP
  190957. @ \fI2017\-09\-28 03:14:39 UTC\fP
  190958. .INDENT 2.0
  190959. .IP \(bu 2
  190960. 9a9cc69d55 Merge pull request \fI\%#43784\fP from twangboy/win_fix_test_win_service
  190961. .IP \(bu 2
  190962. 058e50e530 Fix \fIunit.modules.test_win_service\fP
  190963. .UNINDENT
  190964. .IP \(bu 2
  190965. \fBPR\fP \fI\%#43774\fP: (\fI\%The\-Loeki\fP) typo fix aka what is a \(aqmasterarpi\(aq
  190966. @ \fI2017\-09\-27 18:52:19 UTC\fP
  190967. .INDENT 2.0
  190968. .IP \(bu 2
  190969. 1254da1df5 Merge pull request \fI\%#43774\fP from The\-Loeki/patch\-1
  190970. .IP \(bu 2
  190971. 84bbe85e60 typo fix aka what is a \(aqmasterarpi\(aq
  190972. .UNINDENT
  190973. .IP \(bu 2
  190974. \fBPR\fP \fI\%#43732\fP: (\fI\%twangboy\fP) Skip \fIunit.stats.test_mac_packages\fP on Windows
  190975. @ \fI2017\-09\-27 14:48:08 UTC\fP
  190976. .INDENT 2.0
  190977. .IP \(bu 2
  190978. 3f888753d4 Merge pull request \fI\%#43732\fP from twangboy/win_skip_mac_pkg_tests
  190979. .IP \(bu 2
  190980. 1c01e06097 Only skip test on Windows
  190981. .IP \(bu 2
  190982. ec99a3ce3c Fix lint error
  190983. .IP \(bu 2
  190984. 61f8a2f7ff Skip mac specific tests
  190985. .UNINDENT
  190986. .IP \(bu 2
  190987. \fBPR\fP \fI\%#43761\fP: (\fI\%Ch3LL\fP) Release Notes for 2017.7.2
  190988. @ \fI2017\-09\-27 14:34:52 UTC\fP
  190989. .INDENT 2.0
  190990. .IP \(bu 2
  190991. fb86935d99 Merge pull request \fI\%#43761\fP from Ch3LL/release_2017.7.2
  190992. .IP \(bu 2
  190993. caf5795856 add mac patch notes
  190994. .IP \(bu 2
  190995. 3d5fce0955 Add 2017.7.2 Release Notes
  190996. .UNINDENT
  190997. .IP \(bu 2
  190998. \fBPR\fP \fI\%#43767\fP: (\fI\%twangboy\fP) Skip \fIunit.modules.test_snapper\fP on Windows
  190999. @ \fI2017\-09\-27 14:10:27 UTC\fP
  191000. .INDENT 2.0
  191001. .IP \(bu 2
  191002. 5ea603cf16 Merge pull request \fI\%#43767\fP from twangboy/win_skip_test_snapper
  191003. .IP \(bu 2
  191004. b41b9c8378 Skip snapper tests on Windows
  191005. .UNINDENT
  191006. .IP \(bu 2
  191007. \fBPR\fP \fI\%#43759\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191008. @ \fI2017\-09\-27 13:30:38 UTC\fP
  191009. .INDENT 2.0
  191010. .IP \(bu 2
  191011. 77c2c7cbf7 Merge pull request \fI\%#43759\fP from rallytime/merge\-2017.7
  191012. .IP \(bu 2
  191013. 120f49f2c4 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191014. .INDENT 2.0
  191015. .IP \(bu 2
  191016. 1cc3ad1c8d Merge pull request \fI\%#43733\fP from terminalmage/issue43729
  191017. .INDENT 2.0
  191018. .IP \(bu 2
  191019. 6e5c99bda0 Allow docker_events engine to work with newer docker\-py
  191020. .UNINDENT
  191021. .IP \(bu 2
  191022. 5d38be4ff7 Merge pull request \fI\%#43458\fP from terminalmage/issue42082
  191023. .INDENT 2.0
  191024. .IP \(bu 2
  191025. 5f90812b12 Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  191026. .UNINDENT
  191027. .IP \(bu 2
  191028. 023a563657 Merge pull request \fI\%#43727\fP from rallytime/fix\-43650
  191029. .INDENT 2.0
  191030. .IP \(bu 2
  191031. babad12d83 Revise "Contributing" docs: merge\-forwards/release branches explained!
  191032. .UNINDENT
  191033. .UNINDENT
  191034. .UNINDENT
  191035. .IP \(bu 2
  191036. \fBISSUE\fP \fI\%#43737\fP: (\fI\%syedaali\fP) salt.loaded.int.module.boto_kinesis.__virtual__() is wrongly returning \fINone\fP\&. It should either return \fITrue\fP, \fIFalse\fP or a new name. If you\(aqre the developer of the module \(aqboto_kinesis\(aq, please fix this. (refs: \fI\%#43748\fP)
  191037. .IP \(bu 2
  191038. \fBPR\fP \fI\%#43748\fP: (\fI\%rallytime\fP) Add message to boto_kinesis modules if boto libs are missing
  191039. @ \fI2017\-09\-27 13:19:33 UTC\fP
  191040. .INDENT 2.0
  191041. .IP \(bu 2
  191042. 5c203df056 Merge pull request \fI\%#43748\fP from rallytime/fix\-43737
  191043. .IP \(bu 2
  191044. 5a2593dbd3 Add message to boto_kinesis modules if boto libs are missing
  191045. .UNINDENT
  191046. .IP \(bu 2
  191047. \fBPR\fP \fI\%#43731\fP: (\fI\%twangboy\fP) Fix \fIunit.beacons.test_status\fP for Windows
  191048. @ \fI2017\-09\-26 16:25:12 UTC\fP
  191049. .INDENT 2.0
  191050. .IP \(bu 2
  191051. 2581098595 Merge pull request \fI\%#43731\fP from twangboy/win_unit_beacons_test_status
  191052. .IP \(bu 2
  191053. dc1b36b7e2 Change expected return for Windows
  191054. .UNINDENT
  191055. .IP \(bu 2
  191056. \fBPR\fP \fI\%#43724\fP: (\fI\%brejoc\fP) Improved delete_deployment test for kubernetes module
  191057. @ \fI2017\-09\-26 16:19:31 UTC\fP
  191058. .INDENT 2.0
  191059. .IP \(bu 2
  191060. 10f3d47498 Merge pull request \fI\%#43724\fP from brejoc/2017.7.kubernetes_delete_test
  191061. .IP \(bu 2
  191062. 85b0a8c401 Improved delete_deployment test for kubernetes module
  191063. .UNINDENT
  191064. .IP \(bu 2
  191065. \fBPR\fP \fI\%#43734\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_poudriere\fP for Windows
  191066. @ \fI2017\-09\-26 14:13:47 UTC\fP
  191067. .INDENT 2.0
  191068. .IP \(bu 2
  191069. 13cc27bdab Merge pull request \fI\%#43734\fP from twangboy/win_unit_test_poudriere
  191070. .IP \(bu 2
  191071. 922e60fa67 Add os agnostic paths
  191072. .UNINDENT
  191073. .IP \(bu 2
  191074. \fBPR\fP \fI\%#43742\fP: (\fI\%terminalmage\fP) Fix incorrect value in docstring
  191075. @ \fI2017\-09\-26 13:55:00 UTC\fP
  191076. .INDENT 2.0
  191077. .IP \(bu 2
  191078. 41aeee7ac8 Merge pull request \fI\%#43742\fP from terminalmage/fix\-docstring
  191079. .IP \(bu 2
  191080. 553335b1c9 Fix incorrect value in docstring
  191081. .UNINDENT
  191082. .IP \(bu 2
  191083. \fBPR\fP \fI\%#41998\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_environ\fP for Windows
  191084. @ \fI2017\-09\-26 12:25:48 UTC\fP
  191085. .INDENT 2.0
  191086. .IP \(bu 2
  191087. d78b9a3294 Merge pull request \fI\%#41998\fP from twangboy/win_unit_test_environ
  191088. .IP \(bu 2
  191089. d73ef44cf6 Mock with uppercase KEY
  191090. .IP \(bu 2
  191091. 048e16883f Use uppercase KEY
  191092. .UNINDENT
  191093. .IP \(bu 2
  191094. \fBPR\fP \fI\%#42036\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_file\fP for Windows
  191095. @ \fI2017\-09\-26 12:23:10 UTC\fP
  191096. .INDENT 2.0
  191097. .IP \(bu 2
  191098. 7fbbea3806 Merge pull request \fI\%#42036\fP from twangboy/win_unit_test_file
  191099. .IP \(bu 2
  191100. 056f3bb4c0 Use with to open temp file
  191101. .IP \(bu 2
  191102. 352fe69e35 Clarify the purpose of the for loop
  191103. .IP \(bu 2
  191104. b55172d5dc Split by Windows and Linux style line endings
  191105. .IP \(bu 2
  191106. e20aa5c39b Fix line, use os.sep instead of os.linesep
  191107. .IP \(bu 2
  191108. d5f27901e3 Fix additional bytestring issue
  191109. .IP \(bu 2
  191110. 716e99c453 Fix py3 bytestring problems
  191111. .IP \(bu 2
  191112. 543610570c Fix bytestring issues, fix errored tests
  191113. .IP \(bu 2
  191114. 9fe83a34a5 Remove old variable declaration
  191115. .IP \(bu 2
  191116. c5cf5e92c1 Fix many tests
  191117. .UNINDENT
  191118. .IP \(bu 2
  191119. \fBPR\fP \fI\%#43557\fP: (\fI\%clan\fP) disable modify yaml constructor
  191120. @ \fI2017\-09\-25 14:03:47 UTC\fP
  191121. .INDENT 2.0
  191122. .IP \(bu 2
  191123. a81d4b8d8d Merge pull request \fI\%#43557\fP from clan/yaml
  191124. .IP \(bu 2
  191125. 485471c8a7 Merge branch \(aq2017.7\(aq into yaml
  191126. .IP \(bu 2
  191127. da15658304 remove modify yaml constructor
  191128. .UNINDENT
  191129. .IP \(bu 2
  191130. \fBPR\fP \fI\%#43566\fP: (\fI\%damon\-atkins\fP) 2017.7 update salt.utils.files.safe_filepath func
  191131. @ \fI2017\-09\-25 13:58:29 UTC\fP
  191132. .INDENT 2.0
  191133. .IP \(bu 2
  191134. b5beec16e8 Merge pull request \fI\%#43566\fP from damon\-atkins/2017.7_update_safe_filename_func
  191135. .IP \(bu 2
  191136. c7a652784a remove blank line at end of file
  191137. .IP \(bu 2
  191138. e97651d49b Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191139. .IP \(bu 2
  191140. 3b4c1bbf7f Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191141. .IP \(bu 2
  191142. 4c88c80ef9 Merge branch \(aq2017.7\(aq into 2017.7_update_safe_filename_func
  191143. .IP \(bu 2
  191144. 4171d11838 utils.files.safe_filepath add support to override the os default directory separator
  191145. .UNINDENT
  191146. .IP \(bu 2
  191147. \fBISSUE\fP \fI\%#43711\fP: (\fI\%wedge\-jarrad\fP) fcontext_get_policy emits command error if policy doesn\(aqt exist (refs: \fI\%#43712\fP)
  191148. .IP \(bu 2
  191149. \fBPR\fP \fI\%#43712\fP: (\fI\%wedge\-jarrad\fP) Ignore retcode on call to grep in selinux.py module
  191150. @ \fI2017\-09\-25 13:56:17 UTC\fP
  191151. .INDENT 2.0
  191152. .IP \(bu 2
  191153. 3bb337cf6a Merge pull request \fI\%#43712\fP from wedge\-jarrad/fix\-43711
  191154. .IP \(bu 2
  191155. 96c1ef48e6 Ignore retcode on call to grep in selinux.py module
  191156. .UNINDENT
  191157. .IP \(bu 2
  191158. \fBISSUE\fP \fI\%#43659\fP: (\fI\%gaborn57\fP) unable to retrieve pillar data in postgres db (refs: \fI\%#43716\fP)
  191159. .IP \(bu 2
  191160. \fBPR\fP \fI\%#43716\fP: (\fI\%gaborn57\fP) Corrected custom port handling
  191161. @ \fI2017\-09\-25 13:44:58 UTC\fP
  191162. .INDENT 2.0
  191163. .IP \(bu 2
  191164. 5b7411e335 Merge pull request \fI\%#43716\fP from gaborn57/2017.7
  191165. .IP \(bu 2
  191166. 78137c0860 Corrected custom port handling
  191167. .UNINDENT
  191168. .IP \(bu 2
  191169. \fBPR\fP \fI\%#43700\fP: (\fI\%rklaren\fP) Ensure salt\-cloud with libvirt provider does not write low level errors to stderr
  191170. @ \fI2017\-09\-25 01:47:25 UTC\fP
  191171. .INDENT 2.0
  191172. .IP \(bu 2
  191173. \fBPR\fP \fI\%#43684\fP: (\fI\%rklaren\fP) salt\-cloud libvirt updates (refs: \fI\%#43700\fP)
  191174. .IP \(bu 2
  191175. 6bbd50c453 Merge pull request \fI\%#43700\fP from rklaren/fix\-libvirt\-stderr\-spam
  191176. .IP \(bu 2
  191177. 88530c4cb6 Lint fixes
  191178. .IP \(bu 2
  191179. 235bec492e salt\-cloud + libvirt: Mention Fedora 26 support
  191180. .IP \(bu 2
  191181. 9aecf5f847 Remove stderr spam when using salt\-cloud with libvirt
  191182. .UNINDENT
  191183. .IP \(bu 2
  191184. \fBPR\fP \fI\%#43702\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191185. @ \fI2017\-09\-25 01:26:20 UTC\fP
  191186. .INDENT 2.0
  191187. .IP \(bu 2
  191188. 437ac03801 Merge pull request \fI\%#43702\fP from rallytime/merge\-2017.7
  191189. .IP \(bu 2
  191190. 132b1b343b Merge branch \(aq2017.7\(aq into merge\-2017.7
  191191. .UNINDENT
  191192. .IP \(bu 2
  191193. \fBISSUE\fP \fI\%#38971\fP: (\fI\%morganwillcock\fP) archive.extracted: lots of unnecessary file transferring, copying, and hashing (refs: \fI\%#43681\fP, \fI\%#43518\fP)
  191194. .IP \(bu 2
  191195. \fBPR\fP \fI\%#43681\fP: (\fI\%terminalmage\fP) Backport the non\-fileclient changes from PR 43518 to 2017.7
  191196. @ \fI2017\-09\-22 19:27:25 UTC\fP
  191197. .INDENT 2.0
  191198. .IP \(bu 2
  191199. \fBPR\fP \fI\%#43518\fP: (\fI\%terminalmage\fP) Reduce unnecessary file downloading in archive/file states (refs: \fI\%#43681\fP)
  191200. .IP \(bu 2
  191201. 47cd8723c6 Merge pull request \fI\%#43681\fP from terminalmage/issue38971\-2017.7
  191202. .IP \(bu 2
  191203. 91edf865e2 Merge branch \(aq2017.7\(aq into issue38971\-2017.7
  191204. .IP \(bu 2
  191205. 84f34c93be Backport the non\-fileclient changes from PR 43518 to 2017.7
  191206. .UNINDENT
  191207. .IP \(bu 2
  191208. \fBISSUE\fP \fI\%#43396\fP: (\fI\%mkurtak\fP) yumpkg pkg.installed slowed down due to wildcard namig support (refs: \fI\%#43687\fP)
  191209. .IP \(bu 2
  191210. \fBPR\fP \fI\%#43687\fP: (\fI\%mkurtak\fP) yumpkg.py: install calls list_repo_pkgs only if wildcard is used in pkg name
  191211. @ \fI2017\-09\-22 19:23:18 UTC\fP
  191212. .INDENT 2.0
  191213. .IP \(bu 2
  191214. 0a1c5185f5 Merge pull request \fI\%#43687\fP from mkurtak/fix\-43396
  191215. .IP \(bu 2
  191216. b1e64b11fb yumpkg.py: install calls list_repo_pkgs only if wildcard in pkg name is used
  191217. .UNINDENT
  191218. .IP \(bu 2
  191219. \fBISSUE\fP \fI\%#43124\fP: (\fI\%UtahDave\fP) publisher_acl with regex on username not working and has no documentation (refs: \fI\%#43467\fP)
  191220. .IP \(bu 2
  191221. \fBPR\fP \fI\%#43467\fP: (\fI\%DmitryKuzmenko\fP) Bugs/43124 users regex
  191222. @ \fI2017\-09\-22 19:21:09 UTC\fP
  191223. .INDENT 2.0
  191224. .IP \(bu 2
  191225. 3a79549af4 Merge pull request \fI\%#43467\fP from DSRCorporation/bugs/43124_users_regex
  191226. .IP \(bu 2
  191227. 14bf2dd8ff Support regex in publisher_acl.
  191228. .IP \(bu 2
  191229. 9fe32f8b6e Regex support for user names in external_auth config.
  191230. .UNINDENT
  191231. .IP \(bu 2
  191232. \fBISSUE\fP \fI\%#43381\fP: (\fI\%V3XATI0N\fP) Sharing minion data cache causes false errors in returns (refs: \fI\%#43670\fP)
  191233. .IP \(bu 2
  191234. \fBPR\fP \fI\%#43670\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fIlist\fP and \fIcontains\fP redis cache logic.
  191235. @ \fI2017\-09\-22 17:56:58 UTC\fP
  191236. .INDENT 2.0
  191237. .IP \(bu 2
  191238. 0e86266b93 Merge pull request \fI\%#43670\fP from DSRCorporation/bugs/43381_redis_cache_fix
  191239. .IP \(bu 2
  191240. 1c979d5809 Update redis cache \fIcontains\fP logic to use more efficient \fIsismember\fP\&.
  191241. .IP \(bu 2
  191242. 039d236948 Fixed \fIlist\fP and \fIcontains\fP redis cache logic.
  191243. .INDENT 2.0
  191244. .INDENT 3.5
  191245. .INDENT 0.0
  191246. .IP \(bu 2
  191247. 6e5cf65d65 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191248. .IP \(bu 2
  191249. f46c858f25 Merge pull request \fI\%#43648\fP from rallytime/handle\-boto\-vpc\-errors
  191250. .INDENT 2.0
  191251. .IP \(bu 2
  191252. 54842b5012 Handle VPC/Subnet ID not found errors in boto_vpc module
  191253. .UNINDENT
  191254. .UNINDENT
  191255. .UNINDENT
  191256. .UNINDENT
  191257. .UNINDENT
  191258. .IP \(bu 2
  191259. \fBPR\fP \fI\%#43697\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191260. @ \fI2017\-09\-22 17:31:09 UTC\fP
  191261. .INDENT 2.0
  191262. .IP \(bu 2
  191263. aa47da35dd Merge pull request \fI\%#43697\fP from rallytime/merge\-2017.7
  191264. .IP \(bu 2
  191265. cbae45bec4 Lint: Remove extra line at end of file
  191266. .IP \(bu 2
  191267. fca4e5563a Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191268. .IP \(bu 2
  191269. 9dba34aa06 Merge pull request \fI\%#43575\fP from akissa/fix\-csr\-not\-recreated\-if\-key\-changes
  191270. .INDENT 2.0
  191271. .IP \(bu 2
  191272. b1b4dafd39 Fix CSR not recreated if key changes
  191273. .UNINDENT
  191274. .IP \(bu 2
  191275. 1d4fa48209 Merge pull request \fI\%#43672\fP from rallytime/bp\-43415
  191276. .INDENT 2.0
  191277. .IP \(bu 2
  191278. 3fb42bc238 Fix env_order in state.py
  191279. .UNINDENT
  191280. .IP \(bu 2
  191281. ff832ee607 Merge pull request \fI\%#43673\fP from rallytime/bp\-43652
  191282. .INDENT 2.0
  191283. .IP \(bu 2
  191284. d91c47c6f0 Salt Repo has Deb 9 and 8
  191285. .UNINDENT
  191286. .IP \(bu 2
  191287. 365cb9fba8 Merge pull request \fI\%#43677\fP from terminalmage/runners\-docs\-2016.11
  191288. .INDENT 2.0
  191289. .IP \(bu 2
  191290. 2fd88e94fa Fix RST headers for runners (2016.11 branch)
  191291. .UNINDENT
  191292. .IP \(bu 2
  191293. be38239e5d Merge pull request \fI\%#43534\fP from twangboy/win_fix_pkg.install_2016.11
  191294. .INDENT 2.0
  191295. .IP \(bu 2
  191296. 1546c1ca04 Add posix=False to call to salt.utils.shlex_split
  191297. .UNINDENT
  191298. .IP \(bu 2
  191299. 0d3fd3d374 Merge pull request \fI\%#43661\fP from moio/2016.11\-multiprocessing\-doc\-fix
  191300. .INDENT 2.0
  191301. .IP \(bu 2
  191302. 625eabb83f multiprocessing minion option: documentation fixes
  191303. .UNINDENT
  191304. .IP \(bu 2
  191305. 6b4516c025 Merge pull request \fI\%#43646\fP from brejoc/2016.11.4\-pidfile\-tests
  191306. .INDENT 2.0
  191307. .IP \(bu 2
  191308. 96f39a420b Fixed linting
  191309. .IP \(bu 2
  191310. 08fba98735 Fixed several issues with the test
  191311. .IP \(bu 2
  191312. 3a089e450f Added tests for pid\-file deletion in DaemonMixIn
  191313. .UNINDENT
  191314. .IP \(bu 2
  191315. cfb1625741 Merge pull request \fI\%#43591\fP from rallytime/merge\-2016.11
  191316. .INDENT 2.0
  191317. .IP \(bu 2
  191318. 57b9d642c2 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  191319. .INDENT 2.0
  191320. .IP \(bu 2
  191321. e83421694f Merge pull request \fI\%#43550\fP from twangboy/osx_fix_preinstall_2016.11.8
  191322. .INDENT 2.0
  191323. .IP \(bu 2
  191324. 1b0a4d39d2 Fix logic in \fI/etc/paths.d/salt\fP detection
  191325. .UNINDENT
  191326. .IP \(bu 2
  191327. a648f75949 Merge pull request \fI\%#43508\fP from rallytime/bp\-43333
  191328. .INDENT 2.0
  191329. .IP \(bu 2
  191330. d4981a2717 Update doco
  191331. .IP \(bu 2
  191332. a7c8b9e048 Update win_pkg.py
  191333. .IP \(bu 2
  191334. 1d6dc6fb72 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (#2)
  191335. .UNINDENT
  191336. .IP \(bu 2
  191337. e7009877bc Merge pull request \fI\%#43434\fP from rallytime/2016.11.8\-release\-notes
  191338. .INDENT 2.0
  191339. .IP \(bu 2
  191340. 68f529ee5e Add 2016.11.8 release notes
  191341. .UNINDENT
  191342. .UNINDENT
  191343. .UNINDENT
  191344. .IP \(bu 2
  191345. 8671b91f62 Merge pull request \fI\%#43572\fP from vutny/fix\-salt\-cloud\-list\-min\-instance\-set
  191346. .INDENT 2.0
  191347. .IP \(bu 2
  191348. 21966e7ce8 cloud.action: list_nodes_min returns all instances
  191349. .UNINDENT
  191350. .UNINDENT
  191351. .IP \(bu 2
  191352. \fBPR\fP \fI\%#43314\fP: (\fI\%twangboy\fP) Fix \fIunit.utils.test_verify\fP for Windows
  191353. @ \fI2017\-09\-21 22:26:13 UTC\fP
  191354. .INDENT 2.0
  191355. .IP \(bu 2
  191356. e6dc4d64df Merge pull request \fI\%#43314\fP from twangboy/win_fix_unit.utils.test_verify
  191357. .IP \(bu 2
  191358. 9ada7f626c Merge branch \(aq2017.7\(aq into win_fix_unit.utils.test_verify
  191359. .IP \(bu 2
  191360. c0dc3f73ef Use sys.platform instead of salt.utils to detect Windows
  191361. .IP \(bu 2
  191362. e496d28cbf Fix \fIunit.utils.test_verify\fP for Windows
  191363. .UNINDENT
  191364. .IP \(bu 2
  191365. \fBISSUE\fP \fI\%#43599\fP: (\fI\%vernondcole\fP) Incorrect default for salt.cache.Cache() if opts does not define "cache" (refs: \fI\%#43680\fP)
  191366. .IP \(bu 2
  191367. \fBPR\fP \fI\%#43680\fP: (\fI\%vernondcole\fP) correct default value for salt.cache.Cache
  191368. @ \fI2017\-09\-21 20:09:36 UTC\fP
  191369. .INDENT 2.0
  191370. .IP \(bu 2
  191371. ec34df2c27 Merge pull request \fI\%#43680\fP from vernondcole/fix\-salt.cache.Cache\-default
  191372. .IP \(bu 2
  191373. 292f8c79b8 correct default value for salt.cache.Cache
  191374. .UNINDENT
  191375. .IP \(bu 2
  191376. \fBPR\fP \fI\%#43530\fP: (\fI\%twangboy\fP) Fixes removal of double\-quotes by shlex_split in winrepo
  191377. @ \fI2017\-09\-21 18:04:48 UTC\fP
  191378. .INDENT 2.0
  191379. .IP \(bu 2
  191380. 99d9d784b1 Merge pull request \fI\%#43530\fP from twangboy/win_fix_pkg.install
  191381. .IP \(bu 2
  191382. 7f59119f95 Merge branch \(aq2017.7\(aq into win_fix_pkg.install
  191383. .IP \(bu 2
  191384. f146399f7a Use posix=False for shlex.split
  191385. .UNINDENT
  191386. .IP \(bu 2
  191387. \fBPR\fP \fI\%#43671\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.2 to 2017.7
  191388. @ \fI2017\-09\-21 16:39:49 UTC\fP
  191389. .INDENT 2.0
  191390. .IP \(bu 2
  191391. 12b5e62d81 Merge pull request \fI\%#43671\fP from rallytime/merge\-2017.7
  191392. .IP \(bu 2
  191393. a401166bd5 Merge branch \(aq2017.7.2\(aq into \(aq2017.7\(aq
  191394. .UNINDENT
  191395. .IP \(bu 2
  191396. \fBPR\fP \fI\%#43676\fP: (\fI\%terminalmage\fP) Fix RST headers for runners (2017.7 branch)
  191397. @ \fI2017\-09\-21 16:36:21 UTC\fP
  191398. .INDENT 2.0
  191399. .IP \(bu 2
  191400. e3a2fbc2a3 Merge pull request \fI\%#43676\fP from terminalmage/runners\-docs\-2017.7
  191401. .IP \(bu 2
  191402. 9b74634b23 Fix badly\-formatted RST in mattermost runner docstring
  191403. .IP \(bu 2
  191404. c0a79c70a4 Fix RST headers for runners (2017.7 branch)
  191405. .UNINDENT
  191406. .IP \(bu 2
  191407. \fBPR\fP \fI\%#43235\fP: (\fI\%brejoc\fP) Improve delete_deployment handling
  191408. @ \fI2017\-09\-20 21:33:33 UTC\fP
  191409. .INDENT 2.0
  191410. .IP \(bu 2
  191411. d02953ce6a Merge pull request \fI\%#43235\fP from brejoc/improve\-async\-operation\-handling\-in\-kubernetes\-module
  191412. .IP \(bu 2
  191413. 4e8da3045f Fixed logic for windows fallback
  191414. .IP \(bu 2
  191415. 3b1cb884b9 Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191416. .IP \(bu 2
  191417. d1b5ec098c Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191418. .IP \(bu 2
  191419. 35cf69bc50 Moved exception Salt core
  191420. .IP \(bu 2
  191421. 7431ec64e3 Removed unused sys import
  191422. .IP \(bu 2
  191423. 0c71da95f6 Using salt method to identify MS Windows, single instead of double quotes
  191424. .IP \(bu 2
  191425. 20619b24c4 Fixed test for delete_deployment
  191426. .IP \(bu 2
  191427. 91076bbafa Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191428. .IP \(bu 2
  191429. 7b600e2832 Added pylint\-disable statements and import for salt.ext.six.moves.range
  191430. .IP \(bu 2
  191431. 99fe138325 Code styling and added log message for timeout
  191432. .IP \(bu 2
  191433. dcd8d4f639 Merge branch \(aq2017.7\(aq into improve\-async\-operation\-handling\-in\-kubernetes\-module
  191434. .IP \(bu 2
  191435. 702a058c38 Fixed linting
  191436. .IP \(bu 2
  191437. 3fe623778e Added Windows fallback
  191438. .IP \(bu 2
  191439. 52b1cb8147 Compatibility with Python3.6
  191440. .IP \(bu 2
  191441. 767af9bb4f Added timeout for checking the deployment
  191442. .IP \(bu 2
  191443. 32d7d34fe5 First simple draft for the deletion verification
  191444. .UNINDENT
  191445. .IP \(bu 2
  191446. \fBPR\fP \fI\%#43554\fP: (\fI\%twangboy\fP) Win fix chocolatey
  191447. @ \fI2017\-09\-20 16:06:18 UTC\fP
  191448. .INDENT 2.0
  191449. .IP \(bu 2
  191450. 73cb0c27b5 Merge pull request \fI\%#43554\fP from twangboy/win_fix_chocolatey
  191451. .IP \(bu 2
  191452. e04acb6216 Merge branch \(aq2017.7\(aq into win_fix_chocolatey
  191453. .IP \(bu 2
  191454. 56be5c35eb Improve logic for handling chocolatey states
  191455. .IP \(bu 2
  191456. bcbf7b4e68 Add logic for test=True
  191457. .UNINDENT
  191458. .IP \(bu 2
  191459. \fBISSUE\fP \fI\%#43598\fP: (\fI\%davidvon\fP) Passed invalid arguments to mysql.file_query: unsupported operand type(s) for +=: \(aqint\(aq and \(aqtuple\(aq (refs: \fI\%#43625\fP)
  191460. .IP \(bu 2
  191461. \fBPR\fP \fI\%#43625\fP: (\fI\%gtmanfred\fP) results and columns are lists for mysql returns
  191462. @ \fI2017\-09\-20 15:42:59 UTC\fP
  191463. .INDENT 2.0
  191464. .IP \(bu 2
  191465. ed7eeaaafb Merge pull request \fI\%#43625\fP from gtmanfred/2017.7
  191466. .IP \(bu 2
  191467. f84b50a06b results and columns are lists for mysql returns
  191468. .UNINDENT
  191469. .IP \(bu 2
  191470. \fBISSUE\fP \fI\%#43560\fP: (\fI\%smitelli\fP) salt.states.linux_acl requires setfacl/getacl binaries but this is not obvious (refs: \fI\%#43587\fP, \fI\%#43580\fP)
  191471. .IP \(bu 2
  191472. \fBPR\fP \fI\%#43587\fP: (\fI\%rallytime\fP) Add reason to linux_acl state loading failure
  191473. @ \fI2017\-09\-19 16:26:51 UTC\fP
  191474. .INDENT 2.0
  191475. .IP \(bu 2
  191476. \fBPR\fP \fI\%#43580\fP: (\fI\%garethgreenaway\fP) Updating ACL module and state module documentation (refs: \fI\%#43587\fP)
  191477. .IP \(bu 2
  191478. 1bda4832ef Merge pull request \fI\%#43587\fP from rallytime/fix\-virtual
  191479. .IP \(bu 2
  191480. e5297e3869 Add reason to linux_acl state loading failure
  191481. .UNINDENT
  191482. .IP \(bu 2
  191483. \fBPR\fP \fI\%#43584\fP: (\fI\%cachedout\fP) Enhance engines docs
  191484. @ \fI2017\-09\-18 20:40:57 UTC\fP
  191485. .INDENT 2.0
  191486. .IP \(bu 2
  191487. 2e19533e3c Merge pull request \fI\%#43584\fP from cachedout/engines_doc_clarification
  191488. .IP \(bu 2
  191489. 634536b0ff Merge branch \(aq2017.7\(aq into engines_doc_clarification
  191490. .IP \(bu 2
  191491. 1a619708c1 Enhance engines docs
  191492. .UNINDENT
  191493. .IP \(bu 2
  191494. \fBPR\fP \fI\%#43519\fP: (\fI\%terminalmage\fP) Fix incorrect handling of pkg virtual and os_family grain
  191495. @ \fI2017\-09\-18 20:35:01 UTC\fP
  191496. .INDENT 2.0
  191497. .IP \(bu 2
  191498. 50b134ef4c Merge pull request \fI\%#43519\fP from terminalmage/fix\-aptpkg
  191499. .IP \(bu 2
  191500. 0e3c447567 Fix incorrect handling of pkg virtual and os_family grain
  191501. .UNINDENT
  191502. .IP \(bu 2
  191503. \fBPR\fP \fI\%#43520\fP: (\fI\%clan\fP) _search_name is \(aq\(aq if acl type is other
  191504. @ \fI2017\-09\-18 20:33:51 UTC\fP
  191505. .INDENT 2.0
  191506. .IP \(bu 2
  191507. dd953f36ae Merge pull request \fI\%#43520\fP from clan/acl
  191508. .IP \(bu 2
  191509. 54216177c1 _search_name is \(aq\(aq if acl type is other
  191510. .UNINDENT
  191511. .IP \(bu 2
  191512. \fBPR\fP \fI\%#43561\fP: (\fI\%wedge\-jarrad\fP) Clean up doc formatting in selinux state & module
  191513. @ \fI2017\-09\-18 20:28:47 UTC\fP
  191514. .INDENT 2.0
  191515. .IP \(bu 2
  191516. ad9663a7fc Merge pull request \fI\%#43561\fP from wedge\-jarrad/selinux\-doc\-cleanup
  191517. .IP \(bu 2
  191518. 1bd263cd51 Clean up doc formatting in selinux state & module
  191519. .UNINDENT
  191520. .IP \(bu 2
  191521. \fBISSUE\fP \fI\%#43560\fP: (\fI\%smitelli\fP) salt.states.linux_acl requires setfacl/getacl binaries but this is not obvious (refs: \fI\%#43587\fP, \fI\%#43580\fP)
  191522. .IP \(bu 2
  191523. \fBPR\fP \fI\%#43580\fP: (\fI\%garethgreenaway\fP) Updating ACL module and state module documentation (refs: \fI\%#43587\fP)
  191524. @ \fI2017\-09\-18 20:11:26 UTC\fP
  191525. .INDENT 2.0
  191526. .IP \(bu 2
  191527. cc3d9c1a01 Merge pull request \fI\%#43580\fP from garethgreenaway/43560_update_linux_acl_documentation
  191528. .IP \(bu 2
  191529. e63fae4c91 Merge branch \(aq2017.7\(aq into 43560_update_linux_acl_documentation
  191530. .UNINDENT
  191531. .IP \(bu 2
  191532. \fBPR\fP \fI\%#43523\fP: (\fI\%skizunov\fP) Add back lost logic for multifunc_ordered
  191533. @ \fI2017\-09\-18 17:46:16 UTC\fP
  191534. .INDENT 2.0
  191535. .IP \(bu 2
  191536. \fBPR\fP \fI\%#38168\fP: (\fI\%skizunov\fP) Add support for a multi\-func job using same func more than once (refs: \fI\%#43523\fP)
  191537. .IP \(bu 2
  191538. bf7b23316f Merge pull request \fI\%#43523\fP from skizunov/develop2
  191539. .IP \(bu 2
  191540. fb579321a9 Add back lost logic for multifunc_ordered
  191541. .INDENT 2.0
  191542. .IP \(bu 2
  191543. 117a0ddbbc Updating the documentation to call out the requirement for the getfacl and setfacl binaries
  191544. .INDENT 2.0
  191545. .INDENT 3.5
  191546. .INDENT 0.0
  191547. .IP \(bu 2
  191548. 49f25b9f19 Lint
  191549. .IP \(bu 2
  191550. 31d17c0124 Fix typo found by @s0undt3ch
  191551. .IP \(bu 2
  191552. 5dba74d2cb Fix to module.run [WIP]
  191553. .UNINDENT
  191554. .UNINDENT
  191555. .UNINDENT
  191556. .UNINDENT
  191557. .UNINDENT
  191558. .IP \(bu 2
  191559. \fBISSUE\fP \fI\%#43447\fP: (\fI\%UtahDave\fP) When using Syndic with Multi Master the top level master doesn\(aqt reliably get returns from lower minion. (refs: \fI\%#43526\fP)
  191560. .IP \(bu 2
  191561. \fBPR\fP \fI\%#43526\fP: (\fI\%DmitryKuzmenko\fP) Forward events to all masters syndic connected to
  191562. @ \fI2017\-09\-18 16:54:46 UTC\fP
  191563. .INDENT 2.0
  191564. .IP \(bu 2
  191565. e29efecf4f Merge pull request \fI\%#43526\fP from DSRCorporation/bugs/43447_syndic_events_forwarding
  191566. .IP \(bu 2
  191567. 64d6109654 Merge branch \(aq2017.7\(aq into bugs/43447_syndic_events_forwarding
  191568. .IP \(bu 2
  191569. 3b2a529385 Merge branch \(aq2017.7\(aq into bugs/43447_syndic_events_forwarding
  191570. .IP \(bu 2
  191571. 0e4a744d95 Forward events to all masters syndic connected to.
  191572. .UNINDENT
  191573. .IP \(bu 2
  191574. \fBISSUE\fP \fI\%#43077\fP: (\fI\%Manoj2087\fP) Issue with deleting key via wheel (refs: \fI\%#43330\fP)
  191575. .IP \(bu 2
  191576. \fBPR\fP \fI\%#43330\fP: (\fI\%terminalmage\fP) Fix reactor regression + unify reactor config schema
  191577. @ \fI2017\-09\-18 16:46:11 UTC\fP
  191578. .INDENT 2.0
  191579. .IP \(bu 2
  191580. 56b671e087 Merge pull request \fI\%#43330\fP from terminalmage/issue43077
  191581. .IP \(bu 2
  191582. a7b4e1f782 Simplify client logic
  191583. .IP \(bu 2
  191584. b85c8510c7 Improve the reactor documentation
  191585. .IP \(bu 2
  191586. 20f6f3cc39 Include a better example for reactor in master conf file
  191587. .IP \(bu 2
  191588. 4243a2211d Rewrite the reactor unit tests
  191589. .IP \(bu 2
  191590. 9db3f5ae6d Unify reactor configuration, fix caller reactors
  191591. .IP \(bu 2
  191592. 34b6c3b65f Un\-deprecate passing kwargs outside of \(aqkwarg\(aq param
  191593. .UNINDENT
  191594. .IP \(bu 2
  191595. \fBISSUE\fP \fI\%#33793\fP: (\fI\%mstarostik\fP) states.ssh_auth adds bogus newline before newly added keys (refs: \fI\%#43483\fP)
  191596. .IP \(bu 2
  191597. \fBPR\fP \fI\%#43505\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43483\fP to 2017.7
  191598. @ \fI2017\-09\-15 21:22:12 UTC\fP
  191599. .INDENT 2.0
  191600. .IP \(bu 2
  191601. \fBPR\fP \fI\%#43483\fP: (\fI\%3add3287\fP) Handle bogus newline before newly added keys (refs: \fI\%#43505\fP)
  191602. .IP \(bu 2
  191603. 078d5d17de Merge pull request \fI\%#43505\fP from rallytime/bp\-43483
  191604. .IP \(bu 2
  191605. c68dd5b8a4 Lint: fix spacing
  191606. .IP \(bu 2
  191607. 406f61ac9a Fix indentation from tabs to spaces
  191608. .IP \(bu 2
  191609. 923ec62771 Copy paste typo
  191610. .IP \(bu 2
  191611. 6f6619242f Fix checking for newline on end of file by properly checking the last byte of the file if the file is non empty.
  191612. .UNINDENT
  191613. .IP \(bu 2
  191614. \fBISSUE\fP \fI\%#43464\fP: (\fI\%psagers\fP) acme.cert state: IOError on failure to create a new certificate (refs: \fI\%#43465\fP)
  191615. .IP \(bu 2
  191616. \fBPR\fP \fI\%#43491\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43465\fP to 2017.7
  191617. @ \fI2017\-09\-15 18:24:47 UTC\fP
  191618. .INDENT 2.0
  191619. .IP \(bu 2
  191620. \fBPR\fP \fI\%#43465\fP: (\fI\%psagers\fP) acme.cert: avoid IOError on failure. (refs: \fI\%#43491\fP)
  191621. .IP \(bu 2
  191622. a6df3f2acc Merge pull request \fI\%#43491\fP from rallytime/bp\-43465
  191623. .IP \(bu 2
  191624. 3118faca0a acme.cert: avoid IOError on failure.
  191625. .UNINDENT
  191626. .IP \(bu 2
  191627. \fBPR\fP \fI\%#43492\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191628. @ \fI2017\-09\-15 18:23:49 UTC\fP
  191629. .INDENT 2.0
  191630. .IP \(bu 2
  191631. 3620c15c9a Merge pull request \fI\%#43492\fP from rallytime/merge\-2017.7
  191632. .IP \(bu 2
  191633. 4251ce5a27 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191634. .INDENT 2.0
  191635. .IP \(bu 2
  191636. f2b86fa2db Merge pull request \fI\%#43461\fP from twangboy/win_norestart
  191637. .INDENT 2.0
  191638. .IP \(bu 2
  191639. 2d269d1a76 Change all comment markers to \(aq#\(aq
  191640. .IP \(bu 2
  191641. d80aea16cb Handle ErrorCodes returned by VCRedist installer
  191642. .IP \(bu 2
  191643. fb31e9a530 Add /norestart switch to vcredist install
  191644. .UNINDENT
  191645. .IP \(bu 2
  191646. 90e8ca9c36 Merge pull request \fI\%#43366\fP from brejoc/2016.11.pidfile\-fix
  191647. .INDENT 2.0
  191648. .IP \(bu 2
  191649. 6e3eb76c79 Removed unused format argument
  191650. .IP \(bu 2
  191651. daf4948b3d Catching error when PIDfile cannot be deleted
  191652. .UNINDENT
  191653. .IP \(bu 2
  191654. a6c458607a Merge pull request \fI\%#43442\fP from garethgreenaway/43386_2016_11_schedule_kwargs_pub
  191655. .INDENT 2.0
  191656. .IP \(bu 2
  191657. e637ecbe86 Merge branch \(aq2016.11\(aq into 43386_2016_11_schedule_kwargs_pub
  191658. .IP \(bu 2
  191659. 6114df8dc3 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  191660. .UNINDENT
  191661. .IP \(bu 2
  191662. 3c429299f9 Merge pull request \fI\%#43456\fP from rallytime/43445_follow_up
  191663. .INDENT 2.0
  191664. .IP \(bu 2
  191665. 35c1d8898d Add Neon to version list
  191666. .UNINDENT
  191667. .IP \(bu 2
  191668. 6db7a721c0 Merge pull request \fI\%#43441\fP from meaksh/2016.11\-salt\-bash\-completion\-fix
  191669. .INDENT 2.0
  191670. .IP \(bu 2
  191671. be4f26ab21 Use $HOME to get the user home directory instead using \(aq~\(aq char
  191672. .UNINDENT
  191673. .IP \(bu 2
  191674. 05fff44a50 Merge pull request \fI\%#43445\fP from rallytime/bump\-deprecation\-warning
  191675. .INDENT 2.0
  191676. .IP \(bu 2
  191677. c91cd1c6d9 Bump deprecation warning for boto_vpc.describe_route_table
  191678. .UNINDENT
  191679. .IP \(bu 2
  191680. c57dc5f0e3 Merge pull request \fI\%#43432\fP from rallytime/bp\-43419
  191681. .INDENT 2.0
  191682. .IP \(bu 2
  191683. c471a29527 make cache dirs when spm starts
  191684. .UNINDENT
  191685. .UNINDENT
  191686. .UNINDENT
  191687. .IP \(bu 2
  191688. \fBISSUE\fP \fI\%#43479\fP: (\fI\%haam3r\fP) Mattermost runner failing to retrieve config values due to unavailable config runner (refs: \fI\%#43513\fP)
  191689. .IP \(bu 2
  191690. \fBPR\fP \fI\%#43513\fP: (\fI\%haam3r\fP) Issue \fI\%#43479\fP No runners.config in 2017.7 branch
  191691. @ \fI2017\-09\-15 14:58:27 UTC\fP
  191692. .INDENT 2.0
  191693. .IP \(bu 2
  191694. 8a90c7059b Merge pull request \fI\%#43513\fP from haam3r/2017.7
  191695. .IP \(bu 2
  191696. 58f7d051c9 Issue \fI\%#43479\fP No runners.config in 2017.7 branch
  191697. .UNINDENT
  191698. .IP \(bu 2
  191699. \fBISSUE\fP \fI\%#42926\fP: (\fI\%nixjdm\fP) network.system not setting hostname in hosts file, preventing sudo. (refs: \fI\%#43431\fP)
  191700. .IP \(bu 2
  191701. \fBPR\fP \fI\%#43431\fP: (\fI\%mattLLVW\fP) Fix /etc/hosts not being modified when hostname is changed
  191702. @ \fI2017\-09\-13 18:35:55 UTC\fP
  191703. .INDENT 2.0
  191704. .IP \(bu 2
  191705. c3d9e2d9b2 Merge pull request \fI\%#43431\fP from mattLLVW/fix\-hosts\-deb
  191706. .IP \(bu 2
  191707. c6320b1dff Merge branch \(aq2017.7\(aq into fix\-hosts\-deb
  191708. .IP \(bu 2
  191709. a3b2e19149 Fix /etc/hosts not being modified when hostname is changed
  191710. .UNINDENT
  191711. .IP \(bu 2
  191712. \fBPR\fP \fI\%#43403\fP: (\fI\%twangboy\fP) Proper timestamp conversion in \fIredis.lastsave\fP
  191713. @ \fI2017\-09\-12 21:18:06 UTC\fP
  191714. .INDENT 2.0
  191715. .IP \(bu 2
  191716. a09f289fbb Merge pull request \fI\%#43403\fP from twangboy/win_fix_redismod
  191717. .IP \(bu 2
  191718. f6da23e1aa Properly handle timestamp conversion
  191719. .UNINDENT
  191720. .IP \(bu 2
  191721. \fBPR\fP \fI\%#43463\fP: (\fI\%twangboy\fP) Add \fI/norestart\fP switch to vcredist installer
  191722. @ \fI2017\-09\-12 20:29:27 UTC\fP
  191723. .INDENT 2.0
  191724. .IP \(bu 2
  191725. 0eaa5acb72 Merge pull request \fI\%#43463\fP from twangboy/win_norestart_2017.7
  191726. .IP \(bu 2
  191727. 6984b8fd60 Add /norestart to vcredist installer
  191728. .UNINDENT
  191729. .IP \(bu 2
  191730. \fBISSUE\fP \fI\%#43386\fP: (\fI\%rajvidhimar\fP) Scheduler\(aqs job_kwargs not working as expected. (refs: \fI\%#43443\fP, \fI\%#43442\fP)
  191731. .IP \(bu 2
  191732. \fBPR\fP \fI\%#43443\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixes to scheduler __pub values in kwargs
  191733. @ \fI2017\-09\-12 18:14:46 UTC\fP
  191734. .INDENT 2.0
  191735. .IP \(bu 2
  191736. 2fc237a806 Merge pull request \fI\%#43443\fP from garethgreenaway/43386_2017_7_schedule_kwargs_pub
  191737. .IP \(bu 2
  191738. a29a9855a6 Fixing typo.
  191739. .IP \(bu 2
  191740. 2681b7d3fa Merge branch \(aq2017.7\(aq into 43386_2017_7_schedule_kwargs_pub
  191741. .UNINDENT
  191742. .IP \(bu 2
  191743. \fBISSUE\fP \fI\%#39775\fP: (\fI\%mirceaulinic\fP) Proxy \fImine_interval\fP config ignored (refs: \fI\%#41547\fP)
  191744. .IP \(bu 2
  191745. \fBPR\fP \fI\%#41547\fP: (\fI\%mirceaulinic\fP) Override proxy minion opts with pillar data
  191746. @ \fI2017\-09\-11 21:47:51 UTC\fP
  191747. .INDENT 2.0
  191748. .IP \(bu 2
  191749. 5378ac7756 Merge pull request \fI\%#41547\fP from cloudflare/px_merge_pillar_opts
  191750. .IP \(bu 2
  191751. aad39ba665 Document the new opts
  191752. .IP \(bu 2
  191753. cdc0d9674a Allow disabling the mines details merge
  191754. .IP \(bu 2
  191755. 732b63b0b9 Merge mine details whenever possible
  191756. .IP \(bu 2
  191757. 96b31d5643 Override proxy opts with pillar data when required
  191758. .IP \(bu 2
  191759. fd499887f9 Define new proxy merge pillar in opts... opts
  191760. .IP \(bu 2
  191761. abab6fd91c Override minion opts with pillar data
  191762. .UNINDENT
  191763. .IP \(bu 2
  191764. \fBPR\fP \fI\%#41943\fP: (\fI\%twangboy\fP) Fix \fIunit.returners.test_local_cache\fP for Windows
  191765. @ \fI2017\-09\-11 21:34:03 UTC\fP
  191766. .INDENT 2.0
  191767. .IP \(bu 2
  191768. 08d102c869 Merge pull request \fI\%#41943\fP from twangboy/win_unit_test_local_cache
  191769. .IP \(bu 2
  191770. 3777b34572 Merge branch \(aq2017.7\(aq into win_unit_test_local_cache
  191771. .IP \(bu 2
  191772. 35b79ecde6 Remove \fIcur\fP variable, use time.time() in comparison
  191773. .IP \(bu 2
  191774. 9b61533b09 Get more accurate currnet time in local_cache
  191775. .IP \(bu 2
  191776. 844e3f65bc Fix unit tests for Windows
  191777. .UNINDENT
  191778. .IP \(bu 2
  191779. \fBPR\fP \fI\%#43424\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_hosts\fP for Windows
  191780. @ \fI2017\-09\-11 21:28:41 UTC\fP
  191781. .INDENT 2.0
  191782. .IP \(bu 2
  191783. 50ab79f0cb Merge pull request \fI\%#43424\fP from twangboy/win_unit_test_hosts
  191784. .IP \(bu 2
  191785. 90dcf8287c Fix \fIunit.modules.test_hosts\fP for Windows
  191786. .UNINDENT
  191787. .IP \(bu 2
  191788. \fBPR\fP \fI\%#42652\fP: (\fI\%skizunov\fP) Fix loader.py\(aqs raw_mod() to look in all module dirs
  191789. @ \fI2017\-09\-11 19:43:48 UTC\fP
  191790. .INDENT 2.0
  191791. .IP \(bu 2
  191792. 0f0ed5a093 Merge pull request \fI\%#42652\fP from skizunov/develop3
  191793. .IP \(bu 2
  191794. d82e406f15 Fix loader.py\(aqs raw_mod() to look in all module dirs
  191795. .UNINDENT
  191796. .IP \(bu 2
  191797. \fBPR\fP \fI\%#43438\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191798. @ \fI2017\-09\-11 18:33:39 UTC\fP
  191799. .INDENT 2.0
  191800. .IP \(bu 2
  191801. ca091bc8a4 Merge pull request \fI\%#43438\fP from rallytime/merge\-2017.7
  191802. .IP \(bu 2
  191803. ef7b4242c3 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191804. .INDENT 2.0
  191805. .IP \(bu 2
  191806. 57cccd75d0 Merge pull request \fI\%#43390\fP from aogier/43387\-genesis\-qemu
  191807. .INDENT 2.0
  191808. .IP \(bu 2
  191809. 496f14a7e7 forgot to mock the proper one
  191810. .IP \(bu 2
  191811. 51c7a1ba00 only check if static_qemu is_executable()
  191812. .IP \(bu 2
  191813. 70642e495d better qemu_static parameter mangle in deboostrap management, tests
  191814. .UNINDENT
  191815. .IP \(bu 2
  191816. 6106aec696 Merge pull request \fI\%#43356\fP from gtmanfred/2016.11
  191817. .INDENT 2.0
  191818. .IP \(bu 2
  191819. 3f19b247f3 Add handler.messages back in for test comparison
  191820. .IP \(bu 2
  191821. 9911b04208 fix test
  191822. .IP \(bu 2
  191823. 3c6ae99a77 never\-download got readded
  191824. .UNINDENT
  191825. .IP \(bu 2
  191826. e638fac54e Merge pull request \fI\%#43325\fP from doesitblend/salt\-mine\-doc\-fix
  191827. .INDENT 2.0
  191828. .IP \(bu 2
  191829. 1e94d0ac3a Lint: Remove trailing whitespace
  191830. .IP \(bu 2
  191831. 51af8f8757 Fix mine_interval phrasing in default file
  191832. .IP \(bu 2
  191833. ba0cdd4536 Fix phrasing for mine_interval description
  191834. .IP \(bu 2
  191835. 9ff03c2d43 Update Salt Mine documentation to show that the mine_interval option is configured in minutes.
  191836. .UNINDENT
  191837. .IP \(bu 2
  191838. fc587f784a Merge pull request \fI\%#43105\fP from aogier/43086\-no\-member
  191839. .INDENT 2.0
  191840. .IP \(bu 2
  191841. 5111cf8bad Merge branch \(aq2016.11\(aq into 43086\-no\-member
  191842. .UNINDENT
  191843. .IP \(bu 2
  191844. d97a680372 Merge pull request \fI\%#43333\fP from damon\-atkins/2016.11
  191845. .INDENT 2.0
  191846. .IP \(bu 2
  191847. 92de2bb498 Update doco
  191848. .IP \(bu 2
  191849. fc9c61d12e Update win_pkg.py
  191850. .IP \(bu 2
  191851. c91fc14704 Merge branch \(aq2016.11\(aq into 2016.11
  191852. .IP \(bu 2
  191853. cb3af2bbbd Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (#2)
  191854. .INDENT 2.0
  191855. .INDENT 3.5
  191856. .INDENT 0.0
  191857. .IP \(bu 2
  191858. 42a118ff56 fixed cmd composition and unified his making across module
  191859. .INDENT 2.0
  191860. .INDENT 3.5
  191861. .INDENT 0.0
  191862. .IP \(bu 2
  191863. 3fd59ed369 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  191864. .UNINDENT
  191865. .UNINDENT
  191866. .UNINDENT
  191867. .UNINDENT
  191868. .UNINDENT
  191869. .UNINDENT
  191870. .UNINDENT
  191871. .UNINDENT
  191872. .UNINDENT
  191873. .IP \(bu 2
  191874. \fBPR\fP \fI\%#43320\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_alternatives\fP for Windows
  191875. @ \fI2017\-09\-11 17:28:00 UTC\fP
  191876. .INDENT 2.0
  191877. .IP \(bu 2
  191878. a9592dd3e2 Merge pull request \fI\%#43320\fP from twangboy/win_fix_alternatives
  191879. .IP \(bu 2
  191880. a909813fa5 Remove unused import (lint)
  191881. .IP \(bu 2
  191882. 3ef8d714cb Fix unit tests to mock salt.utils.path.readlink
  191883. .IP \(bu 2
  191884. c0d81aa1ce Use salt.utils.path.readlink
  191885. .IP \(bu 2
  191886. 7c4460164b Fix alternatives for Windows
  191887. .UNINDENT
  191888. .IP \(bu 2
  191889. \fBPR\fP \fI\%#43363\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_ini_manage\fP for Windows
  191890. @ \fI2017\-09\-11 17:10:31 UTC\fP
  191891. .INDENT 2.0
  191892. .IP \(bu 2
  191893. 9b89e49846 Merge pull request \fI\%#43363\fP from twangboy/scratch_ini_tests
  191894. .IP \(bu 2
  191895. a94319a082 Make sure formatting of TEST_FILE_CONTENT matches original
  191896. .IP \(bu 2
  191897. 6263bc8983 Remove print statement
  191898. .IP \(bu 2
  191899. 79cd3831ae Fix empty value preserved test
  191900. .IP \(bu 2
  191901. 85997391f1 Is this handled the same on Linux and Windows
  191902. .UNINDENT
  191903. .IP \(bu 2
  191904. \fBPR\fP \fI\%#43421\fP: (\fI\%gtmanfred\fP) Revert "Reduce fileclient.get_file latency by merging _file_find and …
  191905. @ \fI2017\-09\-11 17:07:18 UTC\fP
  191906. .INDENT 2.0
  191907. .IP \(bu 2
  191908. 673ce387c1 Merge pull request \fI\%#43421\fP from gtmanfred/compat
  191909. .IP \(bu 2
  191910. f85bf8c18f Revert "Reduce fileclient.get_file latency by merging _file_find and _file_hash"
  191911. .UNINDENT
  191912. .IP \(bu 2
  191913. \fBISSUE\fP \fI\%#42165\fP: (\fI\%arount\fP) top_file_merging_strategy: merge does not works (refs: \fI\%#43415\fP)
  191914. .IP \(bu 2
  191915. \fBPR\fP \fI\%#43415\fP: (\fI\%mattLLVW\fP) Fix env_order in state.py (refs: \fI\%#43672\fP)
  191916. @ \fI2017\-09\-11 15:18:08 UTC\fP
  191917. .INDENT 2.0
  191918. .IP \(bu 2
  191919. 47d982fd37 Merge pull request \fI\%#43415\fP from mattLLVW/fix\-env\-order
  191920. .IP \(bu 2
  191921. f6313a1b2c Merge branch \(aq2017.7\(aq into fix\-env\-order
  191922. .IP \(bu 2
  191923. e93a962980 Fix env_order in state.py
  191924. .UNINDENT
  191925. .IP \(bu 2
  191926. \fBPR\fP \fI\%#43422\fP: (\fI\%twangboy\fP) Fix \fIunit.cloud.clouds.test_ec2\fP for Windows
  191927. @ \fI2017\-09\-11 15:17:20 UTC\fP
  191928. .INDENT 2.0
  191929. .IP \(bu 2
  191930. e89e23a32e Merge pull request \fI\%#43422\fP from twangboy/win_unit_cloud_ec2
  191931. .IP \(bu 2
  191932. 1379627334 Fix \fIunit.cloud.clouds.test_ec2\fP for Windows
  191933. .UNINDENT
  191934. .IP \(bu 2
  191935. \fBPR\fP \fI\%#43423\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_gem\fP for Windows
  191936. @ \fI2017\-09\-11 15:15:28 UTC\fP
  191937. .INDENT 2.0
  191938. .IP \(bu 2
  191939. 54f833ac59 Merge pull request \fI\%#43423\fP from twangboy/win_unit_test_gem
  191940. .IP \(bu 2
  191941. b2cea18d13 Fix \fIunit.modules.test_gem\fP for Windows
  191942. .UNINDENT
  191943. .IP \(bu 2
  191944. \fBPR\fP \fI\%#43419\fP: (\fI\%gtmanfred\fP) make cache dirs when spm starts (refs: \fI\%#43432\fP)
  191945. @ \fI2017\-09\-11 13:42:50 UTC\fP
  191946. .INDENT 2.0
  191947. .IP \(bu 2
  191948. b3116109e5 Merge pull request \fI\%#43419\fP from gtmanfred/2017.7
  191949. .IP \(bu 2
  191950. 58378866e5 make cache dirs when spm starts
  191951. .UNINDENT
  191952. .IP \(bu 2
  191953. \fBPR\fP \fI\%#43371\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  191954. @ \fI2017\-09\-08 15:39:12 UTC\fP
  191955. .INDENT 2.0
  191956. .IP \(bu 2
  191957. 9b27473763 Merge pull request \fI\%#43371\fP from rallytime/merge\-2017.7
  191958. .IP \(bu 2
  191959. 7b07b58396 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  191960. .INDENT 2.0
  191961. .IP \(bu 2
  191962. 0c986f5eba Merge pull request \fI\%#43361\fP from rallytime/bp\-43329
  191963. .INDENT 2.0
  191964. .IP \(bu 2
  191965. b09e5b4379 Fix \fI\%#43295\fP, better handling of consul initialization issues
  191966. .UNINDENT
  191967. .IP \(bu 2
  191968. 22287439e6 Merge pull request \fI\%#42903\fP from junovitch/issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  191969. .INDENT 2.0
  191970. .IP \(bu 2
  191971. c9d4fdbd45 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  191972. .IP \(bu 2
  191973. 93a68e32a5 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  191974. .IP \(bu 2
  191975. 079f097985 Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  191976. .UNINDENT
  191977. .IP \(bu 2
  191978. 4860e10757 Merge pull request \fI\%#43360\fP from terminalmage/sj\-496
  191979. .INDENT 2.0
  191980. .IP \(bu 2
  191981. 433bca14b1 Fix KeyError in yumpkg configparser code on Python 3
  191982. .IP \(bu 2
  191983. f6c16935d8 Move \-\-showduplicates before repository\-packages
  191984. .UNINDENT
  191985. .IP \(bu 2
  191986. 4ba2dbe41e Merge pull request \fI\%#43244\fP from rallytime/release\-branch\-clarifications
  191987. .INDENT 2.0
  191988. .IP \(bu 2
  191989. 0d5a46dbaa Update release branch section with a few more details
  191990. .UNINDENT
  191991. .IP \(bu 2
  191992. 1a012eb3d7 Merge pull request \fI\%#43359\fP from gtmanfred/ipaddr
  191993. .INDENT 2.0
  191994. .IP \(bu 2
  191995. 23d9abb560 ipaddr_start ipaddr_end for el7
  191996. .UNINDENT
  191997. .IP \(bu 2
  191998. 8f88111be8 Merge pull request \fI\%#43247\fP from rallytime/mentionbot\-backports
  191999. .INDENT 2.0
  192000. .IP \(bu 2
  192001. 2b85757d73 Always notify tkwilliams when changes occur on boto files
  192002. .IP \(bu 2
  192003. 40b5a29f90 Add basepi to userBlacklist for mention bot
  192004. .IP \(bu 2
  192005. bad8f56969 Always notify ryan\-lane when changes occur on boto files
  192006. .UNINDENT
  192007. .UNINDENT
  192008. .UNINDENT
  192009. .IP \(bu 2
  192010. \fBPR\fP \fI\%#43398\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_mount\fP for Windows
  192011. @ \fI2017\-09\-08 13:39:29 UTC\fP
  192012. .INDENT 2.0
  192013. .IP \(bu 2
  192014. 97f05ff603 Merge pull request \fI\%#43398\fP from twangboy/win_fix_test_mount
  192015. .IP \(bu 2
  192016. 4a8d7e522c Fix tests, Use full path to salt.utils.which
  192017. .UNINDENT
  192018. .IP \(bu 2
  192019. \fBPR\fP \fI\%#43399\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pam\fP for Windows
  192020. @ \fI2017\-09\-08 13:37:50 UTC\fP
  192021. .INDENT 2.0
  192022. .IP \(bu 2
  192023. 6a4cc5c1b0 Merge pull request \fI\%#43399\fP from twangboy/win_fix_test_pam
  192024. .IP \(bu 2
  192025. 6257aa964a Fix \fIunit.modules.test_pam\fP for Windows
  192026. .UNINDENT
  192027. .IP \(bu 2
  192028. \fBPR\fP \fI\%#43400\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_parted\fP for Windows
  192029. @ \fI2017\-09\-08 13:37:00 UTC\fP
  192030. .INDENT 2.0
  192031. .IP \(bu 2
  192032. 2b5cfae3f8 Merge pull request \fI\%#43400\fP from twangboy/win_unit_test_parted
  192033. .IP \(bu 2
  192034. 8e3e897ee2 Fix \fIunit.modules.test_parted\fP for Windows
  192035. .UNINDENT
  192036. .IP \(bu 2
  192037. \fBPR\fP \fI\%#43401\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_pw_group\fP for Windows
  192038. @ \fI2017\-09\-08 13:35:45 UTC\fP
  192039. .INDENT 2.0
  192040. .IP \(bu 2
  192041. 332deeb013 Merge pull request \fI\%#43401\fP from twangboy/win_unit_test_pw_group
  192042. .IP \(bu 2
  192043. 78e39a1b9d Fix \fIunit.modules.test_pw_group\fP for Windows
  192044. .UNINDENT
  192045. .IP \(bu 2
  192046. \fBPR\fP \fI\%#43402\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_qemu_nbd\fP for Windows
  192047. @ \fI2017\-09\-08 13:34:58 UTC\fP
  192048. .INDENT 2.0
  192049. .IP \(bu 2
  192050. c0f54bfef1 Merge pull request \fI\%#43402\fP from twangboy/win_unit_test_qemu_nbd
  192051. .IP \(bu 2
  192052. 531ce8022b Fix \fIunit.modules.test_qemu_nbd\fP for Windows
  192053. .UNINDENT
  192054. .IP \(bu 2
  192055. \fBPR\fP \fI\%#43404\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_seed\fP for Windows
  192056. @ \fI2017\-09\-08 13:32:41 UTC\fP
  192057. .INDENT 2.0
  192058. .IP \(bu 2
  192059. be88fbb45f Merge pull request \fI\%#43404\fP from twangboy/win_unit_test_seed
  192060. .IP \(bu 2
  192061. 6ceb895a84 Use os.path.join for paths
  192062. .UNINDENT
  192063. .IP \(bu 2
  192064. \fBPR\fP \fI\%#43301\fP: (\fI\%twangboy\fP) Fix \fIunit.test_spm\fP for Windows
  192065. @ \fI2017\-09\-08 13:24:35 UTC\fP
  192066. .INDENT 2.0
  192067. .IP \(bu 2
  192068. 612c6a8756 Merge pull request \fI\%#43301\fP from twangboy/win_fix_unit_test_spm
  192069. .IP \(bu 2
  192070. 8608a6b303 Merge branch \(aq2017.7\(aq into win_fix_unit_test_spm
  192071. .IP \(bu 2
  192072. b8da04c04d Add Mike\(aqs changes
  192073. .IP \(bu 2
  192074. f36efbd6a7 Fix \fIunit.test_spm\fP for Windows
  192075. .UNINDENT
  192076. .IP \(bu 2
  192077. \fBPR\fP \fI\%#43372\fP: (\fI\%skizunov\fP) Fix system.set_system_time when no hw clock is present
  192078. @ \fI2017\-09\-07 17:45:33 UTC\fP
  192079. .INDENT 2.0
  192080. .IP \(bu 2
  192081. f959113694 Merge pull request \fI\%#43372\fP from skizunov/develop5
  192082. .IP \(bu 2
  192083. 281e471853 Fix system.set_system_time when no hw clock is present
  192084. .UNINDENT
  192085. .IP \(bu 2
  192086. \fBPR\fP \fI\%#43193\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error
  192087. @ \fI2017\-09\-06 20:16:58 UTC\fP
  192088. .INDENT 2.0
  192089. .IP \(bu 2
  192090. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error (refs: \fI\%#43193\fP)
  192091. .IP \(bu 2
  192092. 6d13535ed0 Merge pull request \fI\%#43193\fP from jettero/template\-dne\-again
  192093. .IP \(bu 2
  192094. cde8aed2cf Merge branch \(aq2017.7\(aq into template\-dne\-again
  192095. .UNINDENT
  192096. .IP \(bu 2
  192097. \fBISSUE\fP \fI\%#42706\fP: (\fI\%blarghmatey\fP) Parallel Cache Failure (refs: \fI\%#43018\fP, \fI\%#43159\fP)
  192098. .IP \(bu 2
  192099. \fBPR\fP \fI\%#43159\fP: (\fI\%jubrad\fP) Bp 43018
  192100. @ \fI2017\-09\-05 22:29:16 UTC\fP
  192101. .INDENT 2.0
  192102. .IP \(bu 2
  192103. \fBPR\fP \fI\%#43056\fP: (\fI\%damon\-atkins\fP) safe_filename_leaf(file_basename) and safe_filepath(file_path_name) (refs: \fI\%#43159\fP, \fI\%#43172\fP)
  192104. .IP \(bu 2
  192105. \fBPR\fP \fI\%#43018\fP: (\fI\%jubrad\fP) Update state.py (refs: \fI\%#43159\fP, \fI\%#43727\fP)
  192106. .IP \(bu 2
  192107. 015cbc57d9 Merge pull request \fI\%#43159\fP from jubrad/bp\-43018
  192108. .IP \(bu 2
  192109. 25419a56db Merge branch \(aq2017.7\(aq into bp\-43018
  192110. .IP \(bu 2
  192111. 971b4c0890 Merge branch \(aq2017.7\(aq into bp\-43018
  192112. .IP \(bu 2
  192113. 4f8e6c65e5 access safe_filename_leaf through utils.files, changed in \fI\%#43172\fP
  192114. .IP \(bu 2
  192115. 42064883ea state.py remove unused urllib import
  192116. .IP \(bu 2
  192117. 4957268b37 update state.py to use safe_filename_leaf
  192118. .IP \(bu 2
  192119. b8ead879ed Fixing lint issues
  192120. .IP \(bu 2
  192121. 446457d017 Swapping \fIfrom\fP for \fIimport\fP
  192122. .IP \(bu 2
  192123. fb80e17400 state.py: fix import and utf8 encode before quote
  192124. .IP \(bu 2
  192125. 1dcf167bb7 Update state.py
  192126. .UNINDENT
  192127. .IP \(bu 2
  192128. \fBPR\fP \fI\%#43232\fP: (\fI\%terminalmage\fP) Improve inheritance in salt.utils.gitfs
  192129. @ \fI2017\-09\-05 20:37:06 UTC\fP
  192130. .INDENT 2.0
  192131. .IP \(bu 2
  192132. 6e1b541b46 Merge pull request \fI\%#43232\fP from terminalmage/gitfs\-inheritance
  192133. .IP \(bu 2
  192134. 53bd3a3e23 Improve inheritance in salt.utils.gitfs
  192135. .UNINDENT
  192136. .IP \(bu 2
  192137. \fBPR\fP \fI\%#43238\fP: (\fI\%s0undt3ch\fP) Include the line number by default on the log file format
  192138. @ \fI2017\-09\-05 20:31:54 UTC\fP
  192139. .INDENT 2.0
  192140. .IP \(bu 2
  192141. 086b220091 Merge pull request \fI\%#43238\fP from s0undt3ch/2017.7
  192142. .IP \(bu 2
  192143. 630a1db3ab Include the line number by default on the log file format
  192144. .UNINDENT
  192145. .IP \(bu 2
  192146. \fBPR\fP \fI\%#43294\fP: (\fI\%twangboy\fP) Win build scripts
  192147. @ \fI2017\-09\-05 20:12:54 UTC\fP
  192148. .INDENT 2.0
  192149. .IP \(bu 2
  192150. 09dc58cde5 Merge pull request \fI\%#43294\fP from twangboy/win_build_scripts
  192151. .IP \(bu 2
  192152. 9979ccb613 Remove Py2 and Py3 in the same run
  192153. .IP \(bu 2
  192154. a5d9f85db6 Modifications to build scripts
  192155. .UNINDENT
  192156. .IP \(bu 2
  192157. \fBPR\fP \fI\%#43322\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192158. @ \fI2017\-09\-05 18:21:26 UTC\fP
  192159. .INDENT 2.0
  192160. .IP \(bu 2
  192161. 21ab306ef4 Merge pull request \fI\%#43322\fP from rallytime/merge\-2017.7
  192162. .IP \(bu 2
  192163. b1062f8c15 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192164. .INDENT 2.0
  192165. .IP \(bu 2
  192166. 02867fdcd2 Merge pull request \fI\%#43277\fP from rallytime/owners\-file
  192167. .INDENT 2.0
  192168. .IP \(bu 2
  192169. 2b4da0f0e7 Add CODEOWNERS file
  192170. .UNINDENT
  192171. .IP \(bu 2
  192172. 1c1c484479 Merge pull request \fI\%#43312\fP from lordcirth/fix\-cron\-docs
  192173. .INDENT 2.0
  192174. .IP \(bu 2
  192175. ec94a13750 cron docs: Remind user to use quotes for special strings
  192176. .UNINDENT
  192177. .IP \(bu 2
  192178. 0d1ed4b750 Merge pull request \fI\%#43290\fP from lordcirth/fix\-file\-path\-docs
  192179. .INDENT 2.0
  192180. .IP \(bu 2
  192181. 14a4591854 file.py docs: correct group and mode
  192182. .IP \(bu 2
  192183. d4214ca283 file.py docs: specify absolute paths
  192184. .UNINDENT
  192185. .IP \(bu 2
  192186. 26ff89539e Merge pull request \fI\%#43274\fP from terminalmage/fix\-int\-types
  192187. .INDENT 2.0
  192188. .IP \(bu 2
  192189. d533877743 Use six.integer_types instead of int
  192190. .UNINDENT
  192191. .IP \(bu 2
  192192. cf21f91fb2 Merge pull request \fI\%#43271\fP from twangboy/win_fix_pkg.install
  192193. .INDENT 2.0
  192194. .IP \(bu 2
  192195. 91b062f564 Fix formatting issue, spaces surrounding +
  192196. .UNINDENT
  192197. .UNINDENT
  192198. .UNINDENT
  192199. .IP \(bu 2
  192200. \fBPR\fP \fI\%#43324\fP: (\fI\%twangboy\fP) Fix \fIunit.modules.test_chef\fP for Windows
  192201. @ \fI2017\-09\-05 16:40:11 UTC\fP
  192202. .INDENT 2.0
  192203. .IP \(bu 2
  192204. 62429c547d Merge pull request \fI\%#43324\fP from twangboy/fix_unit.modules.test_chef
  192205. .IP \(bu 2
  192206. 5bd5ea042a Fix \fIunit.modules.test_chef\fP for Windows
  192207. .UNINDENT
  192208. .IP \(bu 2
  192209. \fBPR\fP \fI\%#43268\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43237\fP to 2017.7
  192210. @ \fI2017\-09\-01 18:17:13 UTC\fP
  192211. .INDENT 2.0
  192212. .IP \(bu 2
  192213. \fBPR\fP \fI\%#43237\fP: (\fI\%timka\fP) .utils.aws.get_location() expects a dict (refs: \fI\%#43268\fP)
  192214. .IP \(bu 2
  192215. 367668a0a3 Merge pull request \fI\%#43268\fP from rallytime/bp\-43237
  192216. .IP \(bu 2
  192217. 047ad07da4 .utils.aws.get_location() expects a dict
  192218. .UNINDENT
  192219. .IP \(bu 2
  192220. \fBPR\fP \fI\%#43270\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  192221. @ \fI2017\-09\-01 18:09:46 UTC\fP
  192222. .INDENT 2.0
  192223. .IP \(bu 2
  192224. 02504dd363 Merge pull request \fI\%#43270\fP from rallytime/merge\-2017.7
  192225. .IP \(bu 2
  192226. f8b025f6dc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  192227. .IP \(bu 2
  192228. 3a0b02f3ae Merge pull request \fI\%#43228\fP from twangboy/win_fix_pkg.install
  192229. .INDENT 2.0
  192230. .IP \(bu 2
  192231. 13dfabb1ce Fix regex statement, add \fI\&.\fP
  192232. .IP \(bu 2
  192233. 31ff69f0ad Add underscore to regex search
  192234. .IP \(bu 2
  192235. 3cf2b6575c Fix spelling
  192236. .IP \(bu 2
  192237. ed030a35a5 Use regex to detect salt\-minion install
  192238. .IP \(bu 2
  192239. e5daff495a Fix pkg.install
  192240. .UNINDENT
  192241. .IP \(bu 2
  192242. b4c689dff5 Merge pull request \fI\%#43191\fP from viktorkrivak/fix\-apache\-config\-multi\-entity
  192243. .INDENT 2.0
  192244. .IP \(bu 2
  192245. c15bcbe1cc Merge remote\-tracking branch \(aqupstream/2016.11\(aq into fix\-apache\-config\-multi\-entity
  192246. .IP \(bu 2
  192247. 4164047951 Fix apache.config with multiple statement At this moment when you post more than one statement in config only last is used. Also file is rewrited multiple times until last statement is written. Example: salt \(aq*\(aq apache.config /etc/httpd/conf.d/ports.conf config="[{\(aqListen\(aq: \(aq8080\(aq}, {\(aqProxy\(aq: "Something"}]" Ends only with Proxy Something and ignore Listen 8080, This patch fix this issue.
  192248. .UNINDENT
  192249. .IP \(bu 2
  192250. b90e59ede9 Merge pull request \fI\%#43154\fP from lomeroe/bp\-43116\-2016.11
  192251. .IP \(bu 2
  192252. 8f593b0b02 verify that files exist before trying to remove them, win_file.remove raises an exception if the file does not exist
  192253. .IP \(bu 2
  192254. 33a30bac06 correcting bad format statement in search for policy to be disabled
  192255. .IP \(bu 2
  192256. acc3d7ac82 correct fopen calls from salt.utils for 2016.11\(aqs utils function
  192257. .IP \(bu 2
  192258. 2da1cdd109 lint fix
  192259. .IP \(bu 2
  192260. 61bd12c0de track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  192261. .IP \(bu 2
  192262. f232bed9f9 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  192263. .UNINDENT
  192264. .IP \(bu 2
  192265. \fBISSUE\fP \fI\%#42459\fP: (\fI\%iavael\fP) Broken ldap groups retrieval in salt.auth.ldap after upgrade to 2017.7 (refs: \fI\%#43283\fP)
  192266. .IP \(bu 2
  192267. \fBPR\fP \fI\%#43283\fP: (\fI\%DmitryKuzmenko\fP) Fix ldap token groups auth.
  192268. @ \fI2017\-09\-01 17:49:46 UTC\fP
  192269. .INDENT 2.0
  192270. .IP \(bu 2
  192271. ece0e393ef Merge pull request \fI\%#43283\fP from DSRCorporation/bugs/42459_broken_ldap_groups
  192272. .IP \(bu 2
  192273. 3ad6911210 Fix for tests: don\(aqt require \(aqgroups\(aq in the eauth token.
  192274. .IP \(bu 2
  192275. 1f104cf85b Fix ldap token groups auth.
  192276. .UNINDENT
  192277. .IP \(bu 2
  192278. \fBPR\fP \fI\%#43149\fP: (\fI\%BenoitKnecht\fP) Fix iptables.get_rules when rules contain \-\-nfmask or \-\-ctmask
  192279. @ \fI2017\-09\-01 15:57:05 UTC\fP
  192280. .INDENT 2.0
  192281. .IP \(bu 2
  192282. 4f023c4cb6 Merge pull request \fI\%#43149\fP from BenoitKnecht/2017.7.1
  192283. .IP \(bu 2
  192284. 3c1ddc9bde modules: iptables: correctly parse \fI\-\-nfmask\fP/\fI\-\-ctmask\fP
  192285. .UNINDENT
  192286. .IP \(bu 2
  192287. \fBISSUE\fP \fI\%#43258\fP: (\fI\%nomeelnoj\fP) metadata_server_grains problems (refs: \fI\%#43265\fP)
  192288. .IP \(bu 2
  192289. \fBPR\fP \fI\%#43265\fP: (\fI\%gtmanfred\fP) make sure meta\-data grains work on ec2
  192290. @ \fI2017\-09\-01 15:31:12 UTC\fP
  192291. .INDENT 2.0
  192292. .IP \(bu 2
  192293. cf2b75bb86 Merge pull request \fI\%#43265\fP from gtmanfred/2017.7
  192294. .IP \(bu 2
  192295. 04dd8ebedb make sure meta\-data grains work on ec2
  192296. .UNINDENT
  192297. .IP \(bu 2
  192298. \fBPR\fP \fI\%#43299\fP: (\fI\%twangboy\fP) Fix \fIunit.netapi.rest_cherrypy.test_tools\fP for Windows
  192299. @ \fI2017\-09\-01 15:13:43 UTC\fP
  192300. .INDENT 2.0
  192301. .IP \(bu 2
  192302. 618b221895 Merge pull request \fI\%#43299\fP from twangboy/win_fix_netapi_cherrypy
  192303. .IP \(bu 2
  192304. fd74acb603 Merge branch \(aq2017.7\(aq into win_fix_netapi_cherrypy
  192305. .UNINDENT
  192306. .IP \(bu 2
  192307. \fBPR\fP \fI\%#43300\fP: (\fI\%twangboy\fP) Fix \fIunit.netapi.rest_tornado.test_handlers\fP for Windows
  192308. @ \fI2017\-09\-01 13:10:11 UTC\fP
  192309. .INDENT 2.0
  192310. .IP \(bu 2
  192311. aee654da92 Merge pull request \fI\%#43300\fP from twangboy/win_fix_netapi_rest_tornado
  192312. .IP \(bu 2
  192313. c93d2ed386 Use os.sep instead of \(aq/\(aq
  192314. .IP \(bu 2
  192315. 3fbf24b91a Use os.sep instead of \(aq/\(aq
  192316. .UNINDENT
  192317. .IP \(bu 2
  192318. \fBISSUE\fP \fI\%#43259\fP: (\fI\%mahesh21\fP) NameError: global name \(aq__opts__\(aq is not defined (refs: \fI\%#43266\fP)
  192319. .IP \(bu 2
  192320. \fBPR\fP \fI\%#43278\fP: (\fI\%gtmanfred\fP) bootstrap can come from dunders
  192321. @ \fI2017\-08\-31 13:31:20 UTC\fP
  192322. .INDENT 2.0
  192323. .IP \(bu 2
  192324. \fBPR\fP \fI\%#43266\fP: (\fI\%gtmanfred\fP) switch virtualbox cloud driver to use __utils__ (refs: \fI\%#43278\fP)
  192325. .IP \(bu 2
  192326. aed2975979 Merge pull request \fI\%#43278\fP from gtmanfred/virtualbox
  192327. .IP \(bu 2
  192328. c4ae2de30f bootstrap can come from dunders
  192329. .UNINDENT
  192330. .IP \(bu 2
  192331. \fBPR\fP \fI\%#42975\fP: (\fI\%brejoc\fP) Added unit tests for Kubernetes module
  192332. @ \fI2017\-08\-30 20:30:16 UTC\fP
  192333. .INDENT 2.0
  192334. .IP \(bu 2
  192335. 479e0e06ac Merge pull request \fI\%#42975\fP from brejoc/tests\-for\-kubernetes\-module
  192336. .IP \(bu 2
  192337. fdad9177b5 Merge branch \(aq2017.7\(aq into tests\-for\-kubernetes\-module
  192338. .IP \(bu 2
  192339. c227cb25ad Skipping test on ImportError
  192340. .IP \(bu 2
  192341. bd76a870ce Dunder vars are now defined via setup_loader_modules
  192342. .IP \(bu 2
  192343. 3c99e61637 Renamed test to match new convention
  192344. .IP \(bu 2
  192345. caf78d206d Fixed imports for pytest
  192346. .IP \(bu 2
  192347. c8e98c8d8a Added unit tests for Kubernetes module
  192348. .UNINDENT
  192349. .IP \(bu 2
  192350. \fBISSUE\fP \fI\%#42935\fP: (\fI\%BenjaminSchubert\fP) docker_image.present always ends up failing even on correct result. (refs: \fI\%#43176\fP)
  192351. .IP \(bu 2
  192352. \fBPR\fP \fI\%#43176\fP: (\fI\%terminalmage\fP) docker_image states: Handle Hub images prefixed with "docker.io/"
  192353. @ \fI2017\-08\-30 20:08:13 UTC\fP
  192354. .INDENT 2.0
  192355. .IP \(bu 2
  192356. ca7df1d4cf Merge pull request \fI\%#43176\fP from terminalmage/issue42935
  192357. .IP \(bu 2
  192358. df18a89836 Lint: Remove unused import
  192359. .IP \(bu 2
  192360. 7279f98e92 docker_image states: Handle Hub images prefixed with "docker.io/"
  192361. .IP \(bu 2
  192362. f7c945f6e4 Prevent spurious "Template does not exist" error
  192363. .UNINDENT
  192364. .UNINDENT
  192365. .SS Salt 2017.7.4 Release Notes
  192366. .sp
  192367. Version 2017.7.4 is a bugfix release for 2017.7.0\&.
  192368. .SS Statistics
  192369. .INDENT 0.0
  192370. .IP \(bu 2
  192371. Total Merges: \fB8\fP
  192372. .IP \(bu 2
  192373. Total Issue References: \fB4\fP
  192374. .IP \(bu 2
  192375. Total PR References: \fB11\fP
  192376. .IP \(bu 2
  192377. Contributors: \fB6\fP (\fI\%Ch3LL\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%marccardinal\fP, \fI\%rallytime\fP, \fI\%terminalmage\fP)
  192378. .UNINDENT
  192379. .SS Changelog for v2017.7.3..v2017.7.4
  192380. .sp
  192381. \fIGenerated at: 2018\-05\-26 21:48:28 UTC\fP
  192382. .INDENT 0.0
  192383. .IP \(bu 2
  192384. \fBPR\fP \fI\%#46074\fP: (\fI\%Ch3LL\fP) Update 2017.7.4 Release Notes with new fixes
  192385. @ \fI2018\-02\-16 16:47:56 UTC\fP
  192386. .INDENT 2.0
  192387. .IP \(bu 2
  192388. b5b083fd26 Merge pull request \fI\%#46074\fP from Ch3LL/update\-7.4
  192389. .IP \(bu 2
  192390. 8d0eeeb059 Update 2017.7.4 Release Notes with new fixes
  192391. .UNINDENT
  192392. .IP \(bu 2
  192393. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#46066\fP)
  192394. .IP \(bu 2
  192395. \fBPR\fP \fI\%#46066\fP: (\fI\%rallytime\fP) Pin tornado version in requirements file
  192396. @ \fI2018\-02\-16 16:40:05 UTC\fP
  192397. .INDENT 2.0
  192398. .IP \(bu 2
  192399. 32f3d00e44 Merge pull request \fI\%#46066\fP from rallytime/pin\-tornado
  192400. .IP \(bu 2
  192401. 6dc1a3b9dc Pin tornado version in requirements file
  192402. .UNINDENT
  192403. .IP \(bu 2
  192404. \fBPR\fP \fI\%#46036\fP: (\fI\%terminalmage\fP) git.latest: Fix regression with identity file usage
  192405. @ \fI2018\-02\-16 13:57:23 UTC\fP
  192406. .INDENT 2.0
  192407. .IP \(bu 2
  192408. 85761ee650 Merge pull request \fI\%#46036\fP from terminalmage/issue43769
  192409. .IP \(bu 2
  192410. e2140d9a84 Mock the ssh.key_is_encrypted utils func
  192411. .IP \(bu 2
  192412. 169924b3fe Move ssh.key_is_encrypted to a utils module temporarily
  192413. .IP \(bu 2
  192414. 54f4d78f7a Only keep ssh.py in the Windows installer
  192415. .IP \(bu 2
  192416. 5f04531e1b Keep ssh state and execution modules in the installer
  192417. .IP \(bu 2
  192418. f2b69f703d git.latest: Fix regression with identity file usage
  192419. .UNINDENT
  192420. .IP \(bu 2
  192421. \fBPR\fP \fI\%#46009\fP: (\fI\%Ch3LL\fP) Add 2017.7.4 Release Notes with PRs
  192422. @ \fI2018\-02\-13 16:40:30 UTC\fP
  192423. .INDENT 2.0
  192424. .IP \(bu 2
  192425. 6d534c6e7e Merge pull request \fI\%#46009\fP from Ch3LL/rn_7.4
  192426. .IP \(bu 2
  192427. ac0baf4b34 Add 2017.7.4 Release Notes with PRs
  192428. .UNINDENT
  192429. .IP \(bu 2
  192430. \fBISSUE\fP \fI\%#45976\fP: (\fI\%ghost\fP) 6a5e0f9 introduces regression that breaks Vault module for salt masterless (refs: \fI\%#45981\fP)
  192431. .IP \(bu 2
  192432. \fBPR\fP \fI\%#45981\fP: (\fI\%gtmanfred\fP) use local config for vault when masterless
  192433. @ \fI2018\-02\-13 15:22:01 UTC\fP
  192434. .INDENT 2.0
  192435. .IP \(bu 2
  192436. ca76a0b328 Merge pull request \fI\%#45981\fP from gtmanfred/2017.7.3
  192437. .IP \(bu 2
  192438. 0d448457dc apparently local is not set by default
  192439. .IP \(bu 2
  192440. 2a92f4bc16 use local config for vault when masterless
  192441. .UNINDENT
  192442. .IP \(bu 2
  192443. \fBISSUE\fP \fI\%#45915\fP: (\fI\%MatthiasKuehneEllerhold\fP) 2017.7.3: Salt\-SSH & Vault Pillar: Permission denied "minion.pem" (refs: \fI\%#45928\fP)
  192444. .IP \(bu 2
  192445. \fBPR\fP \fI\%#45953\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45928\fP to 2017.7.3
  192446. @ \fI2018\-02\-09 22:29:10 UTC\fP
  192447. .INDENT 2.0
  192448. .IP \(bu 2
  192449. \fBPR\fP \fI\%#45928\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing vault when used with pillar over salt\-ssh (refs: \fI\%#45953\fP)
  192450. .IP \(bu 2
  192451. 6530649dbc Merge pull request \fI\%#45953\fP from rallytime/bp\-45928\-2017.7.3
  192452. .IP \(bu 2
  192453. 85363189d1 Fixing vault when used with pillar over salt\-ssh
  192454. .UNINDENT
  192455. .IP \(bu 2
  192456. \fBISSUE\fP \fI\%#45893\fP: (\fI\%CrackerJackMack\fP) archive.extracted ValueError "No path specified" in 2017.7.3 (refs: \fI\%#45902\fP)
  192457. .IP \(bu 2
  192458. \fBPR\fP \fI\%#45934\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45902\fP to 2017.7.3
  192459. @ \fI2018\-02\-09 16:31:08 UTC\fP
  192460. .INDENT 2.0
  192461. .IP \(bu 2
  192462. \fBPR\fP \fI\%#45902\fP: (\fI\%terminalmage\fP) Check the effective saltenv for cached archive (refs: \fI\%#45934\fP)
  192463. .IP \(bu 2
  192464. fb378cebb0 Merge pull request \fI\%#45934\fP from rallytime/bp\-45902
  192465. .IP \(bu 2
  192466. bb83e8b345 Add regression test for issue 45893
  192467. .IP \(bu 2
  192468. cdda66d759 Remove duplicated section in docstring and fix example
  192469. .IP \(bu 2
  192470. 4b6351cda6 Check the effective saltenv for cached archive
  192471. .UNINDENT
  192472. .IP \(bu 2
  192473. \fBPR\fP \fI\%#45935\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45742\fP to 2017.7.3
  192474. @ \fI2018\-02\-09 14:02:26 UTC\fP
  192475. .INDENT 2.0
  192476. .IP \(bu 2
  192477. \fBPR\fP \fI\%#45742\fP: (\fI\%marccardinal\fP) list.copy() is not compatible with python 2.7 (refs: \fI\%#45935\fP)
  192478. .IP \(bu 2
  192479. 0d74151c71 Merge pull request \fI\%#45935\fP from rallytime/bp\-45742
  192480. .IP \(bu 2
  192481. 6a0b5f7af3 Removed the chained copy
  192482. .IP \(bu 2
  192483. ad1150fad4 list.copy() is not compatible with python 2.7
  192484. .UNINDENT
  192485. .UNINDENT
  192486. .SS Salt 2017.7.5 Release Notes
  192487. .sp
  192488. Version 2017.7.5 is a bugfix release for 2017.7.0\&.
  192489. .SS Statistics
  192490. .INDENT 0.0
  192491. .IP \(bu 2
  192492. Total Merges: \fB213\fP
  192493. .IP \(bu 2
  192494. Total Issue References: \fB58\fP
  192495. .IP \(bu 2
  192496. Total PR References: \fB202\fP
  192497. .IP \(bu 2
  192498. Contributors: \fB52\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%GwiYeong\fP, \fI\%L4rS6\fP, \fI\%SteffenKockel\fP, \fI\%The\-Loeki\fP, \fI\%amendlik\fP, \fI\%andreaspe\fP, \fI\%angeloudy\fP, \fI\%aphor\fP, \fI\%bdrung\fP, \fI\%cebe\fP, \fI\%ciiqr\fP, \fI\%damon\-atkins\fP, \fI\%danlsgiga\fP, \fI\%ddoh94\fP, \fI\%dmurphy18\fP, \fI\%dwoz\fP, \fI\%eliasp\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%gclinch\fP, \fI\%gtmanfred\fP, \fI\%jfindlay\fP, \fI\%kstreee\fP, \fI\%marccardinal\fP, \fI\%mcalmer\fP, \fI\%mchugh19\fP, \fI\%meaksh\fP, \fI\%michelsen\fP, \fI\%nullify005\fP, \fI\%oarmstrong\fP, \fI\%oeuftete\fP, \fI\%philpep\fP, \fI\%racker\-markh\fP, \fI\%rallytime\fP, \fI\%redbaron4\fP, \fI\%roaldnefs\fP, \fI\%rongshengfang\fP, \fI\%rongzeng54\fP, \fI\%rrroo\fP, \fI\%samilaine\fP, \fI\%samodid\fP, \fI\%skizunov\fP, \fI\%terminalmage\fP, \fI\%tintoy\fP, \fI\%twangboy\fP, \fI\%viktordaniel\fP, \fI\%vutny\fP, \fI\%while0pass\fP, \fI\%whytewolf\fP, \fI\%zer0def\fP)
  192499. .UNINDENT
  192500. .SS Changes to \fBfile.blockreplace\fP State
  192501. .sp
  192502. The \fBappend_newline\fP argument was added to this state. Additionally, to
  192503. improve idempotence, if the string represented by \fBmarker_end\fP is found in
  192504. the middle of the line, the content preceding the marker will be removed when
  192505. the block is replaced. This allows one to remove \fBappend_newline: False\fP from
  192506. the SLS and have the block properly replaced if the end of the content block is
  192507. immediately followed by the \fBmarker_end\fP (i.e. no newline before the marker).
  192508. .sp
  192509. \fBNOTE:\fP
  192510. .INDENT 0.0
  192511. .INDENT 3.5
  192512. This will require changes to your SLS if your \fBmarker_end\fP does not
  192513. include the very beginning of the content you want to keep.
  192514. .UNINDENT
  192515. .UNINDENT
  192516. .sp
  192517. See the \fBfile.blockreplace\fP state
  192518. documentation for further information.
  192519. .SS Changelog for v2017.7.4..v2017.7.5
  192520. .sp
  192521. \fIGenerated at: 2018\-05\-26 21:50:00 UTC\fP
  192522. .INDENT 0.0
  192523. .IP \(bu 2
  192524. \fBPR\fP \fI\%#46612\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.5 release notes
  192525. @ \fI2018\-03\-19 20:47:38 UTC\fP
  192526. .INDENT 2.0
  192527. .IP \(bu 2
  192528. 19bb725698 Merge pull request \fI\%#46612\fP from Ch3LL/7.5_rn
  192529. .IP \(bu 2
  192530. 6076bfa2ee Add changelog to 2017.7.5 release
  192531. .UNINDENT
  192532. .IP \(bu 2
  192533. \fBPR\fP \fI\%#46572\fP: (\fI\%dmurphy18\fP) Addition of \-sa flag to allow for revision numbers other than \-0 or \-1
  192534. @ \fI2018\-03\-19 20:07:26 UTC\fP
  192535. .INDENT 2.0
  192536. .IP \(bu 2
  192537. 31c78aef11 Merge pull request \fI\%#46572\fP from dmurphy18/update_xxxbuild
  192538. .IP \(bu 2
  192539. c87511570d Merge branch \(aq2017.7.5\(aq into update_xxxbuild
  192540. .UNINDENT
  192541. .IP \(bu 2
  192542. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#884\fP: (\fI\%gtmanfred\fP) [2017.7.5][Fedora 27][py2/py3] integration.states.test_npm.NpmStateTest.test_npm_install_url_referenced_package (refs: \fI\%#46577\fP)
  192543. .IP \(bu 2
  192544. \fBPR\fP \fI\%#46577\fP: (\fI\%gtmanfred\fP) Fix npm issue
  192545. @ \fI2018\-03\-19 11:51:04 UTC\fP
  192546. .INDENT 2.0
  192547. .IP \(bu 2
  192548. cdd768fa4d Merge pull request \fI\%#46577\fP from gtmanfred/2017.7.5
  192549. .IP \(bu 2
  192550. 78cbf7b5cd Fix npm issue
  192551. .IP \(bu 2
  192552. c76f7eb028 enable debug logging on the minionlog
  192553. .UNINDENT
  192554. .IP \(bu 2
  192555. \fBPR\fP \fI\%#46551\fP: (\fI\%terminalmage\fP) Fix failing pkg integration test on OpenSUSE
  192556. @ \fI2018\-03\-19 11:50:12 UTC\fP
  192557. .INDENT 2.0
  192558. .IP \(bu 2
  192559. e6682c660c Merge pull request \fI\%#46551\fP from terminalmage/salt\-jenkins\-885
  192560. .IP \(bu 2
  192561. 703b5e7e65 Change versionadded to show that 2018.3.0 will not have this function
  192562. .IP \(bu 2
  192563. 010d260d06 Rewrite failing Suse pkg integration test
  192564. .IP \(bu 2
  192565. f3f5dec239 zypper.py: fix version argument being ignored
  192566. .IP \(bu 2
  192567. 214f2d6ad3 Add pkg.list_repo_pkgs to zypper.py
  192568. .INDENT 2.0
  192569. .INDENT 3.5
  192570. .INDENT 0.0
  192571. .IP \(bu 2
  192572. 0a541613f2 Additon of \-sa flag to allow for revision numbers other than \-0 or \-1
  192573. .UNINDENT
  192574. .UNINDENT
  192575. .UNINDENT
  192576. .UNINDENT
  192577. .IP \(bu 2
  192578. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#886\fP: (\fI\%gtmanfred\fP) [2017.7.5][Fedora 26/Ubuntu 17.10][py3] integration.states.test_pip.PipStateTest.test_46127_pip_env_vars (refs: \fI\%#46563\fP)
  192579. .IP \(bu 2
  192580. \fBPR\fP \fI\%#46563\fP: (\fI\%gtmanfred\fP) virtualenv version too old for python3.6
  192581. @ \fI2018\-03\-15 20:17:16 UTC\fP
  192582. .INDENT 2.0
  192583. .IP \(bu 2
  192584. bd62699ccb Merge pull request \fI\%#46563\fP from gtmanfred/2017.7.5
  192585. .IP \(bu 2
  192586. 8d5ab72983 virtualenv version too old for python3.6
  192587. .UNINDENT
  192588. .IP \(bu 2
  192589. \fBPR\fP \fI\%#46561\fP: (\fI\%gtmanfred\fP) disable verbose
  192590. @ \fI2018\-03\-15 16:36:41 UTC\fP
  192591. .INDENT 2.0
  192592. .IP \(bu 2
  192593. 2916708124 Merge pull request \fI\%#46561\fP from gtmanfred/2017.7.5
  192594. .IP \(bu 2
  192595. 2c39ac6dfb disable verbose
  192596. .UNINDENT
  192597. .IP \(bu 2
  192598. \fBPR\fP \fI\%#46537\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46529\fP to 2017.7.5
  192599. @ \fI2018\-03\-14 14:47:28 UTC\fP
  192600. .INDENT 2.0
  192601. .IP \(bu 2
  192602. \fBPR\fP \fI\%#46529\fP: (\fI\%gtmanfred\fP) retry if there is a segfault (refs: \fI\%#46537\fP)
  192603. .IP \(bu 2
  192604. ee3bff6e32 Merge pull request \fI\%#46537\fP from rallytime/bp\-46529
  192605. .IP \(bu 2
  192606. 289c7a228f retry if there is a segfault
  192607. .UNINDENT
  192608. .IP \(bu 2
  192609. \fBPR\fP \fI\%#46519\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.5
  192610. @ \fI2018\-03\-13 20:00:51 UTC\fP
  192611. .INDENT 2.0
  192612. .IP \(bu 2
  192613. 1271536a89 Merge pull request \fI\%#46519\fP from rallytime/man\-pages\-2017.7.5
  192614. .IP \(bu 2
  192615. 782a5584f5 Update man pages for 2017.7.5
  192616. .UNINDENT
  192617. .IP \(bu 2
  192618. \fBISSUE\fP \fI\%#46207\fP: (\fI\%seanjnkns\fP) Issue \fI\%#44034\fP still unresolved (refs: \fI\%#46493\fP)
  192619. .IP \(bu 2
  192620. \fBISSUE\fP \fI\%#44034\fP: (\fI\%seanjnkns\fP) salt\-call pillar overrides broken in 2016.11.8 and 2017.7.2 (refs: \fI\%#44483\fP)
  192621. .IP \(bu 2
  192622. \fBPR\fP \fI\%#46493\fP: (\fI\%terminalmage\fP) salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  192623. @ \fI2018\-03\-12 20:41:52 UTC\fP
  192624. .INDENT 2.0
  192625. .IP \(bu 2
  192626. \fBPR\fP \fI\%#44483\fP: (\fI\%terminalmage\fP) salt\-call: account for instances where __pillar__ is empty (refs: \fI\%#46493\fP)
  192627. .IP \(bu 2
  192628. 0e90c8ca6f Merge pull request \fI\%#46493\fP from terminalmage/issue46207
  192629. .IP \(bu 2
  192630. f06ff68f10 salt\-call: don\(aqt re\-use initial pillar if CLI overrides passed
  192631. .UNINDENT
  192632. .IP \(bu 2
  192633. \fBPR\fP \fI\%#46450\fP: (\fI\%gtmanfred\fP) load grains for salt.cmd runner
  192634. @ \fI2018\-03\-12 18:52:22 UTC\fP
  192635. .INDENT 2.0
  192636. .IP \(bu 2
  192637. b11a8fc8e0 Merge pull request \fI\%#46450\fP from gtmanfred/salt_runner
  192638. .IP \(bu 2
  192639. 7974ff7264 load grains for salt.cmd runner
  192640. .UNINDENT
  192641. .IP \(bu 2
  192642. \fBISSUE\fP \fI\%#30115\fP: (\fI\%gtmanfred\fP) [BUG] listen does not appear to respect the special names directive (refs: \fI\%#46337\fP)
  192643. .IP \(bu 2
  192644. \fBPR\fP \fI\%#46337\fP: (\fI\%gtmanfred\fP) Fix using names with listen and listen_in
  192645. @ \fI2018\-03\-12 18:50:00 UTC\fP
  192646. .INDENT 2.0
  192647. .IP \(bu 2
  192648. 22d753364b Merge pull request \fI\%#46337\fP from gtmanfred/2017.7
  192649. .IP \(bu 2
  192650. d6d9e36359 add tests for names and listen/listen_in
  192651. .IP \(bu 2
  192652. 3f8e0db572 let listen_in work with names
  192653. .IP \(bu 2
  192654. 7161f4d4df fix listen to be able to handle names
  192655. .UNINDENT
  192656. .IP \(bu 2
  192657. \fBPR\fP \fI\%#46413\fP: (\fI\%meaksh\fP) Explore \(aqmodule.run\(aq state module output in depth to catch "result" properly
  192658. @ \fI2018\-03\-12 18:49:07 UTC\fP
  192659. .INDENT 2.0
  192660. .IP \(bu 2
  192661. b7191b8782 Merge pull request \fI\%#46413\fP from meaksh/2017.7\-explore\-result\-in\-depth
  192662. .IP \(bu 2
  192663. 885751634e Add new unit test to check state.apply within module.run
  192664. .IP \(bu 2
  192665. 9f19ad5264 Rename and fix recursive method
  192666. .IP \(bu 2
  192667. 1476ace558 Fix Python3 and pylint issue
  192668. .IP \(bu 2
  192669. 726ca3044d Explore \(aqmodule.run\(aq response to catch the \(aqresult\(aq in depth
  192670. .UNINDENT
  192671. .IP \(bu 2
  192672. \fBPR\fP \fI\%#46496\fP: (\fI\%gtmanfred\fP) more test kitchen clean up
  192673. @ \fI2018\-03\-12 18:28:34 UTC\fP
  192674. .INDENT 2.0
  192675. .IP \(bu 2
  192676. 02a79a2014 Merge pull request \fI\%#46496\fP from gtmanfred/kitchen
  192677. .IP \(bu 2
  192678. da002f78d0 include virtualenv path for py3 windows
  192679. .IP \(bu 2
  192680. fe2efe03ea remove duplicate setup
  192681. .UNINDENT
  192682. .IP \(bu 2
  192683. \fBISSUE\fP \fI\%#46329\fP: (\fI\%bdrung\fP) test_create_deployments fails with python\-kubernetes 4.0.0 (refs: \fI\%#46330\fP)
  192684. .IP \(bu 2
  192685. \fBPR\fP \fI\%#46330\fP: (\fI\%bdrung\fP) Fix ValueError for template in AppsV1beta1DeploymentSpec
  192686. @ \fI2018\-03\-12 16:56:18 UTC\fP
  192687. .INDENT 2.0
  192688. .IP \(bu 2
  192689. 5c4c182d75 Merge pull request \fI\%#46330\fP from bdrung/fix_kubernetes_test_create_deployments
  192690. .IP \(bu 2
  192691. 5008c53c44 Fix ValueError for template in AppsV1beta1DeploymentSpec
  192692. .UNINDENT
  192693. .IP \(bu 2
  192694. \fBISSUE\fP \fI\%#46479\fP: (\fI\%rongshengfang\fP) boto_ec2.instance_present throwing KeyError exception when associating EIP to an existing instance (refs: \fI\%#46482\fP)
  192695. .IP \(bu 2
  192696. \fBPR\fP \fI\%#46482\fP: (\fI\%rongshengfang\fP) Fix KeyError in salt/states/boto_ec2.py
  192697. @ \fI2018\-03\-12 15:13:13 UTC\fP
  192698. .INDENT 2.0
  192699. .IP \(bu 2
  192700. c7e05d3ff4 Merge pull request \fI\%#46482\fP from rongshengfang/fix\-keyerror\-in\-instance_present
  192701. .IP \(bu 2
  192702. ed8c83e89a Fix KeyError in salt/states/boto_ec2.py when an EIP is being associated to an existing instance with the instance_present state.
  192703. .UNINDENT
  192704. .IP \(bu 2
  192705. \fBPR\fP \fI\%#46463\fP: (\fI\%terminalmage\fP) Update requirements files to depend on mock>=2.0.0
  192706. @ \fI2018\-03\-09 19:24:41 UTC\fP
  192707. .INDENT 2.0
  192708. .IP \(bu 2
  192709. 573d51afec Merge pull request \fI\%#46463\fP from terminalmage/mock\-2.0
  192710. .IP \(bu 2
  192711. b958b4699c Update requirements files to depend on mock>=2.0.0
  192712. .UNINDENT
  192713. .IP \(bu 2
  192714. \fBISSUE\fP \fI\%#46299\fP: (\fI\%gclinch\fP) debconf module fails on Python 3 (refs: \fI\%#46300\fP)
  192715. .IP \(bu 2
  192716. \fBPR\fP \fI\%#46422\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46300\fP to 2017.7
  192717. @ \fI2018\-03\-09 19:19:25 UTC\fP
  192718. .INDENT 2.0
  192719. .IP \(bu 2
  192720. \fBPR\fP \fI\%#46300\fP: (\fI\%gclinch\fP) Python 3 support for debconfmod (fixes \fI\%#46299\fP) (refs: \fI\%#46422\fP)
  192721. .IP \(bu 2
  192722. a154d35fc7 Merge pull request \fI\%#46422\fP from rallytime/bp\-46300
  192723. .IP \(bu 2
  192724. 829dfde8e8 Change stringutils path to old utils path for 2017.7
  192725. .IP \(bu 2
  192726. 91db2e0782 Python 3 support
  192727. .UNINDENT
  192728. .IP \(bu 2
  192729. \fBPR\fP \fI\%#46320\fP: (\fI\%mcalmer\fP) add warning about future config option change
  192730. @ \fI2018\-03\-09 17:48:29 UTC\fP
  192731. .INDENT 2.0
  192732. .IP \(bu 2
  192733. 2afaca17a1 Merge pull request \fI\%#46320\fP from mcalmer/warn\-kubernetes
  192734. .IP \(bu 2
  192735. c493ced415 add warning about future config option change
  192736. .UNINDENT
  192737. .IP \(bu 2
  192738. \fBPR\fP \fI\%#46449\fP: (\fI\%bdrung\fP) Make documentation theme configurable
  192739. @ \fI2018\-03\-09 17:47:15 UTC\fP
  192740. .INDENT 2.0
  192741. .IP \(bu 2
  192742. c7f95581e3 Merge pull request \fI\%#46449\fP from bdrung/make\-doc\-theme\-configurable
  192743. .IP \(bu 2
  192744. 4a5da2d144 Make documentation theme configurable
  192745. .UNINDENT
  192746. .IP \(bu 2
  192747. \fBPR\fP \fI\%#46162\fP: (\fI\%rallytime\fP) Add team\-suse to CODEOWNERS file for zypper files
  192748. @ \fI2018\-03\-09 17:46:13 UTC\fP
  192749. .INDENT 2.0
  192750. .IP \(bu 2
  192751. 10ce0e9e20 Merge pull request \fI\%#46162\fP from rallytime/team\-suse\-zypper\-owner
  192752. .IP \(bu 2
  192753. 13a295a3b7 Add \fIpkg\fP and \fIsnapper\fP to team\-suse
  192754. .IP \(bu 2
  192755. 35c7b7b0d3 Add btrfs, xfs, yumpkg, and kubernetes file to team\-suse
  192756. .IP \(bu 2
  192757. 485d777ac0 Add team\-suse to CODEOWNERS file for zypper files
  192758. .UNINDENT
  192759. .IP \(bu 2
  192760. \fBPR\fP \fI\%#46434\fP: (\fI\%gtmanfred\fP) split return key value correctly
  192761. @ \fI2018\-03\-09 17:45:21 UTC\fP
  192762. .INDENT 2.0
  192763. .IP \(bu 2
  192764. cac096b311 Merge pull request \fI\%#46434\fP from gtmanfred/highstate_return
  192765. .IP \(bu 2
  192766. d18f1a55a7 fix pylint
  192767. .IP \(bu 2
  192768. 9e2c3f7991 split return key value correctly
  192769. .UNINDENT
  192770. .IP \(bu 2
  192771. \fBISSUE\fP \fI\%#44452\fP: (\fI\%konstest\fP) salt\-cloud can\(aqt create snapshots, because there is a bug in the Unicode name of the virtual machine (refs: \fI\%#46455\fP)
  192772. .IP \(bu 2
  192773. \fBPR\fP \fI\%#46455\fP: (\fI\%whytewolf\fP) .format remove fix for \fI\%#44452\fP
  192774. @ \fI2018\-03\-09 17:37:19 UTC\fP
  192775. .INDENT 2.0
  192776. .IP \(bu 2
  192777. 7dd71101ce Merge pull request \fI\%#46455\fP from whytewolf/Issue_44452_unicode_cloud
  192778. .IP \(bu 2
  192779. 5fe474b1a8 .format remove fix for \fI\%#44452\fP
  192780. .UNINDENT
  192781. .IP \(bu 2
  192782. \fBPR\fP \fI\%#46428\fP: (\fI\%twangboy\fP) Fix issue with dev env install on Windows
  192783. @ \fI2018\-03\-09 14:52:46 UTC\fP
  192784. .INDENT 2.0
  192785. .IP \(bu 2
  192786. 4c8d9026d3 Merge pull request \fI\%#46428\fP from twangboy/win_fix_reqs
  192787. .IP \(bu 2
  192788. e7ab97cc17 Remove six as a hard dep for Salt
  192789. .IP \(bu 2
  192790. cc67e5c2ef Set six to 1.11.0
  192791. .UNINDENT
  192792. .IP \(bu 2
  192793. \fBPR\fP \fI\%#46454\fP: (\fI\%gtmanfred\fP) fix windows for kitchen
  192794. @ \fI2018\-03\-08 21:19:31 UTC\fP
  192795. .INDENT 2.0
  192796. .IP \(bu 2
  192797. e834d9a63b Merge pull request \fI\%#46454\fP from gtmanfred/kitchen
  192798. .IP \(bu 2
  192799. b8ab8434a5 fix windows for kitchen
  192800. .UNINDENT
  192801. .IP \(bu 2
  192802. \fBISSUE\fP \fI\%#46451\fP: (\fI\%gmacon\fP) SPM fails to start with customized cache location (refs: \fI\%#46452\fP)
  192803. .IP \(bu 2
  192804. \fBPR\fP \fI\%#46452\fP: (\fI\%gtmanfred\fP) make spm cache_dir instead of all cachedirs
  192805. @ \fI2018\-03\-08 21:12:20 UTC\fP
  192806. .INDENT 2.0
  192807. .IP \(bu 2
  192808. 2886dca88f Merge pull request \fI\%#46452\fP from gtmanfred/spm_cache_dir
  192809. .IP \(bu 2
  192810. 169cf7a4e2 make spm cache_dir instead of all cachedirs
  192811. .UNINDENT
  192812. .IP \(bu 2
  192813. \fBPR\fP \fI\%#46446\fP: (\fI\%bdrung\fP) Fix various typos
  192814. @ \fI2018\-03\-08 21:11:47 UTC\fP
  192815. .INDENT 2.0
  192816. .IP \(bu 2
  192817. a188984cd9 Merge pull request \fI\%#46446\fP from bdrung/fix\-typos
  192818. .IP \(bu 2
  192819. 7e6e80be87 heat: Fix spelling mistake of environment
  192820. .IP \(bu 2
  192821. a3c54b50f6 Fix various spelling mistakes
  192822. .UNINDENT
  192823. .IP \(bu 2
  192824. \fBISSUE\fP \fI\%#20581\fP: (\fI\%notpeter\fP) Many environments: one pillar_root (all your envs are belong to base) (refs: \fI\%#46309\fP)
  192825. .IP \(bu 2
  192826. \fBPR\fP \fI\%#46309\fP: (\fI\%bdrung\fP) Support dynamic pillar_root environment
  192827. @ \fI2018\-03\-08 19:15:35 UTC\fP
  192828. .INDENT 2.0
  192829. .IP \(bu 2
  192830. e35fc5263c Merge pull request \fI\%#46309\fP from bdrung/dynamic\-pillarenv
  192831. .IP \(bu 2
  192832. 584b451fd1 Support dynamic pillar_root environment
  192833. .UNINDENT
  192834. .IP \(bu 2
  192835. \fBISSUE\fP \fI\%#44032\fP: (\fI\%PhilippeAB\fP) blockreplace marker_end isn\(aqt applied with newline (refs: \fI\%#46430\fP)
  192836. .IP \(bu 2
  192837. \fBPR\fP \fI\%#46430\fP: (\fI\%terminalmage\fP) Improve reliability/idempotence of file.blockreplace state
  192838. @ \fI2018\-03\-08 15:41:38 UTC\fP
  192839. .INDENT 2.0
  192840. .IP \(bu 2
  192841. 35fe9827fe Merge pull request \fI\%#46430\fP from terminalmage/issue44032
  192842. .IP \(bu 2
  192843. f9f187e915 Improve reliability/idempotence of file.blockreplace state
  192844. .UNINDENT
  192845. .IP \(bu 2
  192846. \fBPR\fP \fI\%#46429\fP: (\fI\%twangboy\fP) Fix problem with __virtual__ in win_snmp
  192847. @ \fI2018\-03\-07 23:26:46 UTC\fP
  192848. .INDENT 2.0
  192849. .IP \(bu 2
  192850. 2bad0a21c0 Merge pull request \fI\%#46429\fP from twangboy/win_fix_snmp
  192851. .IP \(bu 2
  192852. 8995a9b8de Fix problem with __virtual__ in win_snmp
  192853. .UNINDENT
  192854. .IP \(bu 2
  192855. \fBPR\fP \fI\%#46100\fP: (\fI\%jfindlay\fP) Handle IPv6 scope parameter in resolv.conf
  192856. @ \fI2018\-03\-07 19:51:20 UTC\fP
  192857. .INDENT 2.0
  192858. .IP \(bu 2
  192859. 93a572f229 Merge pull request \fI\%#46100\fP from jfindlay/resolv_scope
  192860. .IP \(bu 2
  192861. d5561bedaf tests.unit.grains.core add scoped IPv6 nameserver
  192862. .IP \(bu 2
  192863. 4e2e62d508 salt.utils.dns parse scope param for ipv6 servers
  192864. .UNINDENT
  192865. .IP \(bu 2
  192866. \fBPR\fP \fI\%#46420\fP: (\fI\%bdrung\fP) Fix SSH client exception if SSH is not found
  192867. @ \fI2018\-03\-07 17:49:00 UTC\fP
  192868. .INDENT 2.0
  192869. .IP \(bu 2
  192870. 5acc1d5c54 Merge pull request \fI\%#46420\fP from bdrung/2017.7
  192871. .IP \(bu 2
  192872. e48c13d9e0 Fix SSH client exception if SSH is not found
  192873. .UNINDENT
  192874. .IP \(bu 2
  192875. \fBPR\fP \fI\%#46379\fP: (\fI\%angeloudy\fP) TypeError: a bytes\-like object is required, not \(aqstr\(aq
  192876. @ \fI2018\-03\-07 15:00:47 UTC\fP
  192877. .INDENT 2.0
  192878. .IP \(bu 2
  192879. ca6a76e317 Merge pull request \fI\%#46379\fP from angeloudy/2017.7
  192880. .IP \(bu 2
  192881. 3acb59c74c Merge branch \(aq2017.7\(aq into 2017.7
  192882. .IP \(bu 2
  192883. d971e0c08b Fix indent
  192884. .IP \(bu 2
  192885. 269514683f Update http.py
  192886. .IP \(bu 2
  192887. 908c040ac3 Update http.py
  192888. .IP \(bu 2
  192889. 51ba3c135b Update http.py
  192890. .IP \(bu 2
  192891. 14aba24111 fix bytes\-object required error in python 3
  192892. .UNINDENT
  192893. .IP \(bu 2
  192894. \fBPR\fP \fI\%#46404\fP: (\fI\%gtmanfred\fP) get 2017.7 ready to switch over to the new jenkins
  192895. @ \fI2018\-03\-07 14:29:30 UTC\fP
  192896. .INDENT 2.0
  192897. .IP \(bu 2
  192898. 73f9233557 Merge pull request \fI\%#46404\fP from gtmanfred/kitchen
  192899. .IP \(bu 2
  192900. c56baa95a8 clone .git for the version tests
  192901. .IP \(bu 2
  192902. 3620611b5b fix unhold package for debian
  192903. .IP \(bu 2
  192904. 5219f7d2ba fix minion log path
  192905. .UNINDENT
  192906. .IP \(bu 2
  192907. \fBISSUE\fP \fI\%#46192\fP: (\fI\%asymetrixs\fP) salt\-log\-setup: AttributeError \(aqNoneType\(aq object has no attribute \(aqflush\(aq (refs: \fI\%#46310\fP)
  192908. .IP \(bu 2
  192909. \fBPR\fP \fI\%#46310\fP: (\fI\%twangboy\fP) Update the Windows installer build scripts
  192910. @ \fI2018\-03\-06 20:21:58 UTC\fP
  192911. .INDENT 2.0
  192912. .IP \(bu 2
  192913. ca28cfd4e4 Merge pull request \fI\%#46310\fP from twangboy/win_update_installer_build
  192914. .IP \(bu 2
  192915. bcf8b19566 Update the installer build
  192916. .UNINDENT
  192917. .IP \(bu 2
  192918. \fBPR\fP \fI\%#46316\fP: (\fI\%twangboy\fP) Fix issues with the DSC module
  192919. @ \fI2018\-03\-06 20:16:18 UTC\fP
  192920. .INDENT 2.0
  192921. .IP \(bu 2
  192922. decccbeca3 Merge pull request \fI\%#46316\fP from twangboy/win_fix_dsc
  192923. .IP \(bu 2
  192924. 2042d33d59 Fix issues with the DSC module
  192925. .UNINDENT
  192926. .IP \(bu 2
  192927. \fBPR\fP \fI\%#46394\fP: (\fI\%Ch3LL\fP) Add mac py2 and py3 packages to mac installation docs
  192928. @ \fI2018\-03\-06 16:45:30 UTC\fP
  192929. .INDENT 2.0
  192930. .IP \(bu 2
  192931. 95586678c3 Merge pull request \fI\%#46394\fP from Ch3LL/mac_doc
  192932. .IP \(bu 2
  192933. 158add6661 change oxdownload to oxdownload\-{python_version}
  192934. .IP \(bu 2
  192935. 21aa848c89 Add mac py2 and py3 packages to mac installation docs
  192936. .UNINDENT
  192937. .IP \(bu 2
  192938. \fBISSUE\fP \fI\%#44831\fP: (\fI\%kivoli\fP) cmd.wait deprecated but cannot replicate conditional execution with onchanges (refs: \fI\%#46338\fP)
  192939. .IP \(bu 2
  192940. \fBPR\fP \fI\%#46338\fP: (\fI\%rallytime\fP) Remove cmd.wait deprecation reference in docs
  192941. @ \fI2018\-03\-05 21:48:52 UTC\fP
  192942. .INDENT 2.0
  192943. .IP \(bu 2
  192944. 07b5d09ac1 Merge pull request \fI\%#46338\fP from rallytime/fix\-44831
  192945. .IP \(bu 2
  192946. 90771da999 Remove cmd.wait deprecation reference in docs
  192947. .UNINDENT
  192948. .IP \(bu 2
  192949. \fBISSUE\fP \fI\%#42438\fP: (\fI\%ajoaugustine\fP) Failed to send message: hipchat\-message (refs: \fI\%#46333\fP)
  192950. .IP \(bu 2
  192951. \fBPR\fP \fI\%#46333\fP: (\fI\%danlsgiga\fP) Fixes color parameter mismatch and handles 204 responses correctly
  192952. @ \fI2018\-03\-05 19:42:26 UTC\fP
  192953. .INDENT 2.0
  192954. .IP \(bu 2
  192955. 3849e7a085 Merge pull request \fI\%#46333\fP from danlsgiga/issue\-42438
  192956. .IP \(bu 2
  192957. 3b13f37b44 Revert changes in the code and change docs instead
  192958. .IP \(bu 2
  192959. 38114a65d8 Fixes color parameter mismatch and handles 204 responses correctly
  192960. .UNINDENT
  192961. .IP \(bu 2
  192962. \fBISSUE\fP \fI\%#44935\fP: (\fI\%grinapo\fP) module.file.replace string seems to be mutated into arrays (refs: \fI\%#46322\fP)
  192963. .IP \(bu 2
  192964. \fBPR\fP \fI\%#46322\fP: (\fI\%terminalmage\fP) yamlify_arg: don\(aqt treat leading dashes as lists
  192965. @ \fI2018\-03\-05 15:40:17 UTC\fP
  192966. .INDENT 2.0
  192967. .IP \(bu 2
  192968. a8f2f1b063 Merge pull request \fI\%#46322\fP from terminalmage/issue44935
  192969. .IP \(bu 2
  192970. 85ac6a9893 yamlify_arg: don\(aqt treat leading dashes as lists
  192971. .UNINDENT
  192972. .IP \(bu 2
  192973. \fBPR\fP \fI\%#46327\fP: (\fI\%samilaine\fP) Modify the way a FQDN is handled in the vmware cloud provider.
  192974. @ \fI2018\-03\-05 15:35:37 UTC\fP
  192975. .INDENT 2.0
  192976. .IP \(bu 2
  192977. da5c282cb2 Merge pull request \fI\%#46327\fP from samilaine/fix\-vmware\-cloud\-fqdn
  192978. .IP \(bu 2
  192979. 4b8dfb326f Modify the way a FQDN is handled in the vmware cloud provider.
  192980. .UNINDENT
  192981. .IP \(bu 2
  192982. \fBPR\fP \fI\%#46318\fP: (\fI\%terminalmage\fP) Skip type\-checking for several gitfs/git_pillar/winrepo params
  192983. @ \fI2018\-03\-05 15:04:27 UTC\fP
  192984. .INDENT 2.0
  192985. .IP \(bu 2
  192986. 78c45d3786 Merge pull request \fI\%#46318\fP from terminalmage/squelch\-warnings
  192987. .IP \(bu 2
  192988. 5889b36646 Skip type\-checking for several gitfs/git_pillar/winrepo params
  192989. .UNINDENT
  192990. .IP \(bu 2
  192991. \fBISSUE\fP \fI\%#45535\fP: (\fI\%whytewolf\fP) module_dirs left out salt\-ssh, leaving custom ext_pillars and modules out of salt\-ssh (refs: \fI\%#46312\fP)
  192992. .IP \(bu 2
  192993. \fBPR\fP \fI\%#46312\fP: (\fI\%gtmanfred\fP) add module_dirs to salt ssh thin tarball
  192994. @ \fI2018\-03\-05 15:00:48 UTC\fP
  192995. .INDENT 2.0
  192996. .IP \(bu 2
  192997. bb0d6fc263 Merge pull request \fI\%#46312\fP from gtmanfred/2017.7
  192998. .IP \(bu 2
  192999. 749ae580ed add module_dirs to salt ssh thin tarball
  193000. .UNINDENT
  193001. .IP \(bu 2
  193002. \fBISSUE\fP \fI\%#46127\fP: (\fI\%redbaron4\fP) pip.installed does not pass env_vars when calling freeze to check if package is already installed (refs: \fI\%#46242\fP)
  193003. .IP \(bu 2
  193004. \fBPR\fP \fI\%#46242\fP: (\fI\%redbaron4\fP) Pass env_vars to pip.freeze
  193005. @ \fI2018\-03\-05 14:53:13 UTC\fP
  193006. .INDENT 2.0
  193007. .IP \(bu 2
  193008. 88b5f7383d Merge pull request \fI\%#46242\fP from redbaron4/fix\-46127
  193009. .IP \(bu 2
  193010. 06dba51617 Make changes from review
  193011. .IP \(bu 2
  193012. 727ebe1056 Merge branch \(aq2017.7\(aq into fix\-46127
  193013. .IP \(bu 2
  193014. 08d1ee8baf Fix Python3 test errors
  193015. .IP \(bu 2
  193016. aa9d709015 Pass env_vars to pip.freeze
  193017. .UNINDENT
  193018. .IP \(bu 2
  193019. \fBPR\fP \fI\%#46265\fP: (\fI\%Ch3LL\fP) Add username/password to profitbricks conf for cloud tests
  193020. @ \fI2018\-03\-02 21:40:22 UTC\fP
  193021. .INDENT 2.0
  193022. .IP \(bu 2
  193023. a0716643e4 Merge pull request \fI\%#46265\fP from Ch3LL/profit_cloud
  193024. .IP \(bu 2
  193025. d4893eab4c Add username/password to profitbricks conf for cloud tests
  193026. .UNINDENT
  193027. .IP \(bu 2
  193028. \fBPR\fP \fI\%#46306\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46256\fP to 2017.7
  193029. @ \fI2018\-03\-02 21:37:26 UTC\fP
  193030. .INDENT 2.0
  193031. .IP \(bu 2
  193032. \fBPR\fP \fI\%#46256\fP: (\fI\%rallytime\fP) Don\(aqt install msgpack 0.5.5 (refs: \fI\%#46306\fP)
  193033. .IP \(bu 2
  193034. ed7bffa7e0 Merge pull request \fI\%#46306\fP from rallytime/bp\-46256
  193035. .IP \(bu 2
  193036. 6439bce4a8 Don\(aqt install msgpack 0.5.5
  193037. .UNINDENT
  193038. .IP \(bu 2
  193039. \fBPR\fP \fI\%#46208\fP: (\fI\%terminalmage\fP) Blacklist os.umask
  193040. @ \fI2018\-03\-02 18:46:07 UTC\fP
  193041. .INDENT 2.0
  193042. .IP \(bu 2
  193043. 8c2c4e3316 Merge pull request \fI\%#46208\fP from terminalmage/audit\-umask\-usage
  193044. .IP \(bu 2
  193045. 9c92aadce8 Disable blacklisted\-function check for legitimate uses
  193046. .IP \(bu 2
  193047. 58a11aaa26 Disable pylint check in salt\-ssh shim
  193048. .IP \(bu 2
  193049. ecadf67659 Blacklist os.umask
  193050. .IP \(bu 2
  193051. 31b1d98fcb Replace direct use of os.umask with use of existing context manager
  193052. .IP \(bu 2
  193053. 82ce546e18 Prevent failed os.makedirs from leaving modified umask in place
  193054. .UNINDENT
  193055. .IP \(bu 2
  193056. \fBPR\fP \fI\%#46293\fP: (\fI\%eliasp\fP) Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  193057. @ \fI2018\-03\-02 16:36:10 UTC\fP
  193058. .INDENT 2.0
  193059. .IP \(bu 2
  193060. \fBPR\fP \fI\%#44624\fP: (\fI\%eliasp\fP) Fix Traceback when using the \fIservice.enabled\fP state on non\-booted systems (refs: \fI\%#46293\fP)
  193061. .IP \(bu 2
  193062. 978e869490 Merge pull request \fI\%#46293\fP from eliasp/2017.7\-44624\-py3\-compat
  193063. .IP \(bu 2
  193064. 2e08b0d9c8 Fix Python3 comparison \fITypeError\fP in \fIsalt.modules.upstart\fP
  193065. .UNINDENT
  193066. .IP \(bu 2
  193067. \fBISSUE\fP \fI\%#46128\fP: (\fI\%Boulet\-\fP) Mountpoint in git_pillar (refs: \fI\%#46264\fP)
  193068. .IP \(bu 2
  193069. \fBPR\fP \fI\%#46264\fP: (\fI\%terminalmage\fP) Fix incorrect merge conflict resolution
  193070. @ \fI2018\-03\-02 14:21:13 UTC\fP
  193071. .INDENT 2.0
  193072. .IP \(bu 2
  193073. bee4a66d0c Merge pull request \fI\%#46264\fP from terminalmage/issue46128
  193074. .IP \(bu 2
  193075. 68000b7211 Fix incorrect merge conflict resolution
  193076. .UNINDENT
  193077. .IP \(bu 2
  193078. \fBPR\fP \fI\%#46296\fP: (\fI\%vutny\fP) [DOC] Add missing params to \fIpillar.get\fP docstring
  193079. @ \fI2018\-03\-02 14:19:41 UTC\fP
  193080. .INDENT 2.0
  193081. .IP \(bu 2
  193082. 1e0b3aa348 Merge pull request \fI\%#46296\fP from vutny/doc\-pillar\-get
  193083. .IP \(bu 2
  193084. 1faa8331e1 [DOC] Add missing params to \fIpillar.get\fP docstring
  193085. .UNINDENT
  193086. .IP \(bu 2
  193087. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug
  193088. @ \fI2018\-03\-01 19:39:35 UTC\fP
  193089. .INDENT 2.0
  193090. .IP \(bu 2
  193091. c490a50452 Merge pull request \fI\%#45874\fP from GwiYeong/2017.7\-local\-client\-hotfix
  193092. .IP \(bu 2
  193093. 949aefc82b Merge branch \(aq2017.7\(aq into 2017.7\-local\-client\-hotfix
  193094. .IP \(bu 2
  193095. 45d663f435 fix for local client timeout bug
  193096. .UNINDENT
  193097. .IP \(bu 2
  193098. \fBPR\fP \fI\%#46261\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193099. @ \fI2018\-03\-01 17:55:23 UTC\fP
  193100. .INDENT 2.0
  193101. .IP \(bu 2
  193102. 8e8a3a2897 Merge pull request \fI\%#46261\fP from rallytime/merge\-2017.7
  193103. .IP \(bu 2
  193104. 8256ae5ee5 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193105. .INDENT 2.0
  193106. .IP \(bu 2
  193107. 140ef4d6b9 Merge pull request \fI\%#46253\fP from rallytime/doc\-banners
  193108. .INDENT 2.0
  193109. .IP \(bu 2
  193110. 07ed8c7db3 Update docbanner for SaltConf18
  193111. .UNINDENT
  193112. .IP \(bu 2
  193113. 9fe86ee520 Merge pull request \fI\%#46179\fP from wedge\-jarrad/cifs\-remount\-fix
  193114. .INDENT 2.0
  193115. .IP \(bu 2
  193116. 9ca25c4313 Add credentials and secretfile to mount.mounted mount_invisible_keys
  193117. .UNINDENT
  193118. .UNINDENT
  193119. .UNINDENT
  193120. .IP \(bu 2
  193121. \fBISSUE\fP \fI\%#44046\fP: (\fI\%t2b\fP) docker_container.running states fail if the argument ulimits is set and a watch requisite is triggered (refs: \fI\%#46276\fP)
  193122. .IP \(bu 2
  193123. \fBPR\fP \fI\%#46276\fP: (\fI\%terminalmage\fP) salt.utils.docker.translate_input: operate on deepcopy of kwargs
  193124. @ \fI2018\-03\-01 15:37:44 UTC\fP
  193125. .INDENT 2.0
  193126. .IP \(bu 2
  193127. 88a3166589 Merge pull request \fI\%#46276\fP from terminalmage/issue44046
  193128. .IP \(bu 2
  193129. a14d4daf8c salt.utils.docker.translate_input: operate on deepcopy of kwargs
  193130. .UNINDENT
  193131. .IP \(bu 2
  193132. \fBISSUE\fP \fI\%#46182\fP: (\fI\%oeuftete\fP) docker_container.running is sensitive to HostConfig Ulimits ordering (refs: \fI\%#46183\fP)
  193133. .IP \(bu 2
  193134. \fBPR\fP \fI\%#46183\fP: (\fI\%oeuftete\fP) Fix docker_container.running HostConfig Ulimits comparison
  193135. @ \fI2018\-02\-28 22:22:11 UTC\fP
  193136. .INDENT 2.0
  193137. .IP \(bu 2
  193138. da60399b8f Merge pull request \fI\%#46183\fP from oeuftete/fix\-docker\-container\-running\-host\-config\-ulimits
  193139. .IP \(bu 2
  193140. 5b09644429 Sort lists from Ulimits before comparing
  193141. .IP \(bu 2
  193142. 0b80f02226 Update old dockerng doc ref
  193143. .UNINDENT
  193144. .IP \(bu 2
  193145. \fBISSUE\fP \fI\%#46259\fP: (\fI\%terminalmage\fP) git_pillar_branch overrides branch defined in git_pillar configuration (refs: \fI\%#46260\fP)
  193146. .IP \(bu 2
  193147. \fBISSUE\fP \fI\%#46258\fP: (\fI\%terminalmage\fP) git_pillar_base doesn\(aqt work for values when PyYAML loads them as int/float (refs: \fI\%#46260\fP)
  193148. .IP \(bu 2
  193149. \fBPR\fP \fI\%#46260\fP: (\fI\%terminalmage\fP) Normalize global git_pillar/winrepo config items
  193150. @ \fI2018\-02\-28 22:05:26 UTC\fP
  193151. .INDENT 2.0
  193152. .IP \(bu 2
  193153. 509429f08c Merge pull request \fI\%#46260\fP from terminalmage/git_pillar
  193154. .IP \(bu 2
  193155. b1ce2501fd Normalize global git_pillar/winrepo config items
  193156. .UNINDENT
  193157. .IP \(bu 2
  193158. \fBPR\fP \fI\%#46101\fP: (\fI\%jfindlay\fP) In OpenRC exec module, make sure to ignore retcode on status
  193159. @ \fI2018\-02\-28 20:01:37 UTC\fP
  193160. .INDENT 2.0
  193161. .IP \(bu 2
  193162. a97a3e6fb0 Merge pull request \fI\%#46101\fP from jfindlay/openrc_ret
  193163. .IP \(bu 2
  193164. 2eef3c65a6 tests.unit.modules.gentoo_service add retcode arg
  193165. .IP \(bu 2
  193166. 81ec66fd8b modules.gentoo_service handle stopped retcode
  193167. .UNINDENT
  193168. .IP \(bu 2
  193169. \fBPR\fP \fI\%#46254\fP: (\fI\%rallytime\fP) Update enterprise banner
  193170. @ \fI2018\-02\-28 19:54:03 UTC\fP
  193171. .INDENT 2.0
  193172. .IP \(bu 2
  193173. 1a17593c05 Merge pull request \fI\%#46254\fP from rallytime/enterprise\-banner
  193174. .IP \(bu 2
  193175. f5fae3dedf Update enterprise banner
  193176. .UNINDENT
  193177. .IP \(bu 2
  193178. \fBPR\fP \fI\%#46250\fP: (\fI\%terminalmage\fP) Add documentation to the fileserver runner
  193179. @ \fI2018\-02\-28 18:53:49 UTC\fP
  193180. .INDENT 2.0
  193181. .IP \(bu 2
  193182. 8c50ff32bd Merge pull request \fI\%#46250\fP from terminalmage/runner\-docs
  193183. .IP \(bu 2
  193184. 91b4895087 Add documentation to the fileserver runner
  193185. .UNINDENT
  193186. .IP \(bu 2
  193187. \fBISSUE\fP \fI\%#46215\fP: (\fI\%racker\-markh\fP) salt\-cloud will only intermittently build rackspace cloud instances with purely private networks (refs: \fI\%#46243\fP)
  193188. .IP \(bu 2
  193189. \fBPR\fP \fI\%#46243\fP: (\fI\%racker\-markh\fP) Don\(aqt ignore \(aqprivate_ips\(aq unnecessarily
  193190. @ \fI2018\-02\-28 15:28:29 UTC\fP
  193191. .INDENT 2.0
  193192. .IP \(bu 2
  193193. 53067cca43 Merge pull request \fI\%#46243\fP from racker\-markh/fix\-openstack\-private\-network\-issue
  193194. .IP \(bu 2
  193195. 50c1e140f0 Don\(aqt check deny private_ips already in the original list of private_ips
  193196. .UNINDENT
  193197. .IP \(bu 2
  193198. \fBISSUE\fP \fI\%#46109\fP: (\fI\%rombert\fP) archive.extracted takes a long time (> 4 minutes) even though directory exists (refs: \fI\%#46239\fP)
  193199. .IP \(bu 2
  193200. \fBPR\fP \fI\%#46239\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt check source file when if_missing path exists
  193201. @ \fI2018\-02\-28 15:01:36 UTC\fP
  193202. .INDENT 2.0
  193203. .IP \(bu 2
  193204. 15405c8760 Merge pull request \fI\%#46239\fP from terminalmage/issue46109
  193205. .IP \(bu 2
  193206. 586d8b0dcf archive.extracted: don\(aqt check source file when if_missing path exists
  193207. .UNINDENT
  193208. .IP \(bu 2
  193209. \fBPR\fP \fI\%#46221\fP: (\fI\%terminalmage\fP) Fix hanging tests in integration suite
  193210. @ \fI2018\-02\-27 21:32:25 UTC\fP
  193211. .INDENT 2.0
  193212. .IP \(bu 2
  193213. 633e1208e4 Merge pull request \fI\%#46221\fP from terminalmage/salt\-jenkins\-854
  193214. .IP \(bu 2
  193215. 0eb012659c Fix hanging tests in integration suite
  193216. .UNINDENT
  193217. .IP \(bu 2
  193218. \fBPR\fP \fI\%#46214\fP: (\fI\%vutny\fP) [DOC] Replace \fInote\fP rST block for GitHub
  193219. @ \fI2018\-02\-27 17:42:37 UTC\fP
  193220. .INDENT 2.0
  193221. .IP \(bu 2
  193222. 7917277345 Merge pull request \fI\%#46214\fP from vutny/formulas\-readme\-formatting
  193223. .IP \(bu 2
  193224. d702846961 [DOC] Replace \fInote\fP rST block for GitHub
  193225. .UNINDENT
  193226. .IP \(bu 2
  193227. \fBPR\fP \fI\%#46203\fP: (\fI\%Ch3LL\fP) Add 2017.7.5 Release Notes File
  193228. @ \fI2018\-02\-26 21:17:48 UTC\fP
  193229. .INDENT 2.0
  193230. .IP \(bu 2
  193231. a2e099b744 Merge pull request \fI\%#46203\fP from Ch3LL/7.5_release
  193232. .IP \(bu 2
  193233. 6ddf3246ce Add 2017.7.5 Release Notes File
  193234. .UNINDENT
  193235. .IP \(bu 2
  193236. \fBPR\fP \fI\%#46201\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193237. @ \fI2018\-02\-26 18:56:47 UTC\fP
  193238. .INDENT 2.0
  193239. .IP \(bu 2
  193240. 973b227818 Merge pull request \fI\%#46201\fP from rallytime/merge\-2017.7
  193241. .IP \(bu 2
  193242. 9ac2101baa Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193243. .IP \(bu 2
  193244. a4c5417d23 Merge pull request \fI\%#46132\fP from rallytime/2016.11_update_version_doc
  193245. .INDENT 2.0
  193246. .IP \(bu 2
  193247. d2196b6df3 Update release versions for the 2016.11 branch
  193248. .UNINDENT
  193249. .UNINDENT
  193250. .IP \(bu 2
  193251. \fBISSUE\fP \fI\%#34423\fP: (\fI\%bdrung\fP) oscodename wrong on Debian 8 (jessie) (refs: \fI\%#46139\fP)
  193252. .IP \(bu 2
  193253. \fBPR\fP \fI\%#46139\fP: (\fI\%bdrung\fP) Add os grains test cases for Debian/Ubuntu and fix oscodename on Ubuntu
  193254. @ \fI2018\-02\-26 16:44:04 UTC\fP
  193255. .INDENT 2.0
  193256. .IP \(bu 2
  193257. 89cf2e5061 Merge pull request \fI\%#46139\fP from bdrung/os\-grains
  193258. .IP \(bu 2
  193259. 0b445f2a37 tests: Add unit tests for _parse_os_release()
  193260. .IP \(bu 2
  193261. f6069b77ed Fix osfinger grain on Debian
  193262. .IP \(bu 2
  193263. 8dde55a761 tests: Add os_grains test cases for Debian
  193264. .IP \(bu 2
  193265. ff02ab9937 tests: Add Ubuntu 17.10 (artful) os_grains test case
  193266. .IP \(bu 2
  193267. 77d5356aba Fix incorrect oscodename grain on Ubuntu
  193268. .IP \(bu 2
  193269. 7e62dc9fd2 tests: Support reading os\-release files from disk
  193270. .IP \(bu 2
  193271. a92ec0db1b Make _parse_os_release() always callable
  193272. .IP \(bu 2
  193273. eee1fe5b38 tests: Dissolve _run_ubuntu_os_grains_tests
  193274. .IP \(bu 2
  193275. 1d6ef731fe tests: Deduplicate _run_os_grains_tests()
  193276. .UNINDENT
  193277. .IP \(bu 2
  193278. \fBPR\fP \fI\%#46133\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  193279. @ \fI2018\-02\-26 16:42:43 UTC\fP
  193280. .INDENT 2.0
  193281. .IP \(bu 2
  193282. c8c71e75ca Merge pull request \fI\%#46133\fP from rallytime/2017.7_update_version_doc
  193283. .IP \(bu 2
  193284. 0ed338e643 Update release versions for the 2017.7 branch
  193285. .UNINDENT
  193286. .IP \(bu 2
  193287. \fBISSUE\fP \fI\%#46124\fP: (\fI\%moremo\fP) GitFS saltenv ref won\(aqt pick up multiple of the same ref (refs: \fI\%#46185\fP)
  193288. .IP \(bu 2
  193289. \fBPR\fP \fI\%#46185\fP: (\fI\%terminalmage\fP) gitfs: Fix detection of base env when its ref is also mapped to a different env
  193290. @ \fI2018\-02\-26 14:52:16 UTC\fP
  193291. .INDENT 2.0
  193292. .IP \(bu 2
  193293. 390d592aa6 Merge pull request \fI\%#46185\fP from terminalmage/issue46124
  193294. .IP \(bu 2
  193295. 3b58dd0da0 gitfs: Fix detection of base env when its ref is also mapped to a different env
  193296. .UNINDENT
  193297. .IP \(bu 2
  193298. \fBPR\fP \fI\%#46148\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  193299. @ \fI2018\-02\-23 19:21:38 UTC\fP
  193300. .INDENT 2.0
  193301. .IP \(bu 2
  193302. 705caa8cca Merge pull request \fI\%#46148\fP from rallytime/merge\-2017.7
  193303. .IP \(bu 2
  193304. 25deebf7a6 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  193305. .UNINDENT
  193306. .IP \(bu 2
  193307. \fBPR\fP \fI\%#46137\fP: (\fI\%damon\-atkins\fP) [2017.7] update ec2 pillar arguments with better names
  193308. @ \fI2018\-02\-23 13:32:04 UTC\fP
  193309. .INDENT 2.0
  193310. .IP \(bu 2
  193311. \fBPR\fP \fI\%#45878\fP: (\fI\%damon\-atkins\fP) ec2_pillar update to fix finding instance\-id (refs: \fI\%#46137\fP)
  193312. .IP \(bu 2
  193313. 10a47dcbc4 Merge pull request \fI\%#46137\fP from damon\-atkins/2017.7_fix_ec2_pillar2
  193314. .IP \(bu 2
  193315. 99e7f6a7d3 update ec2 pillar arguments with better names
  193316. .UNINDENT
  193317. .IP \(bu 2
  193318. \fBISSUE\fP \fI\%#46004\fP: (\fI\%github\-abcde\fP) opts file_roots gets overwritten with pillar_roots in orchestration run (refs: \fI\%#46145\fP)
  193319. .IP \(bu 2
  193320. \fBPR\fP \fI\%#46145\fP: (\fI\%terminalmage\fP) 3 small fixes for runners/orchestration
  193321. @ \fI2018\-02\-22 22:11:11 UTC\fP
  193322. .INDENT 2.0
  193323. .IP \(bu 2
  193324. d74cb14557 Merge pull request \fI\%#46145\fP from terminalmage/issue46004
  193325. .IP \(bu 2
  193326. 467ff841cd pillarenv argument should default to None and not the value from opts
  193327. .IP \(bu 2
  193328. 2a185855ea Better solution for fixing the opts munging in pillar.show_pillar runner
  193329. .IP \(bu 2
  193330. e2c4702e0c Update tests to reflect changes to the SaltCacheLoader
  193331. .IP \(bu 2
  193332. f9301fcc34 Document behavior when orchestration runnner invoked with non\-orch states
  193333. .IP \(bu 2
  193334. 9644579cd0 Instantiate the SaltCacheLoader\(aqs fileclient in the __init__
  193335. .IP \(bu 2
  193336. f9a6c86e21 salt.runners.pillar.show_pillar: don\(aqt modify master opts
  193337. .IP \(bu 2
  193338. e0940a9fc4 Properly detect use of the state.orch alias and add orch jid to kwargs
  193339. .UNINDENT
  193340. .IP \(bu 2
  193341. \fBPR\fP \fI\%#46135\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46088\fP to 2017.7
  193342. @ \fI2018\-02\-22 15:11:14 UTC\fP
  193343. .INDENT 2.0
  193344. .IP \(bu 2
  193345. \fBPR\fP \fI\%#46088\fP: (\fI\%rongzeng54\fP) fix kernel subpackages install bug (refs: \fI\%#46135\fP)
  193346. .IP \(bu 2
  193347. 0398ce0482 Merge pull request \fI\%#46135\fP from rallytime/bp\-46088
  193348. .IP \(bu 2
  193349. 57a60f62a3 fix kernel subpackages install bug
  193350. .UNINDENT
  193351. .IP \(bu 2
  193352. \fBISSUE\fP \fI\%#45837\fP: (\fI\%johje349\fP) Salt Cloud does not recognise all Digitalocean sizes (refs: \fI\%#46115\fP)
  193353. .IP \(bu 2
  193354. \fBPR\fP \fI\%#46136\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46115\fP to 2017.7
  193355. @ \fI2018\-02\-21 19:17:23 UTC\fP
  193356. .INDENT 2.0
  193357. .IP \(bu 2
  193358. \fBPR\fP \fI\%#46115\fP: (\fI\%samodid\fP) update digitalocean salt\-cloud driver (refs: \fI\%#46136\fP)
  193359. .IP \(bu 2
  193360. 1fcbbd1e02 Merge pull request \fI\%#46136\fP from rallytime/bp\-46115
  193361. .IP \(bu 2
  193362. 0a481d707f update digitalocean salt\-cloud driver
  193363. .UNINDENT
  193364. .IP \(bu 2
  193365. \fBPR\fP \fI\%#45911\fP: (\fI\%twangboy\fP) LGPO Module: Convert reg values to unicode for debug
  193366. @ \fI2018\-02\-21 19:02:17 UTC\fP
  193367. .INDENT 2.0
  193368. .IP \(bu 2
  193369. 11e5e8eb86 Merge pull request \fI\%#45911\fP from twangboy/win_fix_lgpo_unicode
  193370. .IP \(bu 2
  193371. bcde5cc625 Update log statement
  193372. .IP \(bu 2
  193373. e9fa53d3b7 Change the Invalid Data Message
  193374. .IP \(bu 2
  193375. c818d4b791 Convert reg values to unicode for debug
  193376. .UNINDENT
  193377. .IP \(bu 2
  193378. \fBISSUE\fP \fI\%#46085\fP: (\fI\%zmedico\fP) 2017.7.3 salt master with "open_mode: True" becomes unresponsive if minion submits empty public key (refs: \fI\%#46123\fP)
  193379. .IP \(bu 2
  193380. \fBPR\fP \fI\%#46123\fP: (\fI\%gtmanfred\fP) If no pubkey is passed in openmode fail
  193381. @ \fI2018\-02\-21 19:01:47 UTC\fP
  193382. .INDENT 2.0
  193383. .IP \(bu 2
  193384. 524a6a72a0 Merge pull request \fI\%#46123\fP from gtmanfred/2017.7
  193385. .IP \(bu 2
  193386. 8d36730ef7 If no pubkey is passed in openmode fail
  193387. .UNINDENT
  193388. .IP \(bu 2
  193389. \fBPR\fP \fI\%#46131\fP: (\fI\%vutny\fP) [DOC] Fix code\-blocks for reStructuredText
  193390. @ \fI2018\-02\-21 15:47:05 UTC\fP
  193391. .INDENT 2.0
  193392. .IP \(bu 2
  193393. e48fa58012 Merge pull request \fI\%#46131\fP from vutny/doc\-formula\-formatting
  193394. .IP \(bu 2
  193395. d8fb051e44 [DOC] Fix code\-blocks for reStructuredText
  193396. .UNINDENT
  193397. .IP \(bu 2
  193398. \fBISSUE\fP \fI\%#42763\fP: (\fI\%xuhcc\fP) acme.cert state falsely reports about renewed certificate (refs: \fI\%#44603\fP)
  193399. .IP \(bu 2
  193400. \fBISSUE\fP \fI\%#40208\fP: (\fI\%bewing\fP) Inconsistent state return when test=True (refs: \fI\%#44603\fP)
  193401. .IP \(bu 2
  193402. \fBPR\fP \fI\%#46118\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44603\fP to 2017.7
  193403. @ \fI2018\-02\-21 15:21:42 UTC\fP
  193404. .INDENT 2.0
  193405. .IP \(bu 2
  193406. \fBPR\fP \fI\%#44603\fP: (\fI\%oarmstrong\fP) Fix acme state to correctly return on test (refs: \fI\%#46118\fP)
  193407. .IP \(bu 2
  193408. 6cea44ee95 Merge pull request \fI\%#46118\fP from rallytime/bp\-44603
  193409. .IP \(bu 2
  193410. 2a2c23c66b Fix acme state to correctly return on test
  193411. .UNINDENT
  193412. .IP \(bu 2
  193413. \fBPR\fP \fI\%#46121\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193414. @ \fI2018\-02\-21 10:07:18 UTC\fP
  193415. .INDENT 2.0
  193416. .IP \(bu 2
  193417. 16c382b55b Merge pull request \fI\%#46121\fP from rallytime/merge\-2017.7
  193418. .IP \(bu 2
  193419. 4c2f504a85 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193420. .INDENT 2.0
  193421. .IP \(bu 2
  193422. e197a0fbc5 Merge pull request \fI\%#46076\fP from rallytime/bp\-46066
  193423. .INDENT 2.0
  193424. .IP \(bu 2
  193425. b94d73c53e Pin tornado version in requirements file
  193426. .UNINDENT
  193427. .IP \(bu 2
  193428. c72c1bde5f Merge pull request \fI\%#46093\fP from wedge\-jarrad/contributing\-doc\-typo
  193429. .INDENT 2.0
  193430. .IP \(bu 2
  193431. 5a0fe104f7 Fix contributing doc typo
  193432. .UNINDENT
  193433. .IP \(bu 2
  193434. 3cb83ea87e Merge pull request \fI\%#45992\fP from bgridley/fix\-routes\-present\-state
  193435. .INDENT 2.0
  193436. .IP \(bu 2
  193437. 679787699c Add vpc_peering_connection_id to describe_route_tables route_keys
  193438. .UNINDENT
  193439. .IP \(bu 2
  193440. 8a60635da0 Merge pull request \fI\%#46000\fP from terminalmage/issue45910
  193441. .INDENT 2.0
  193442. .IP \(bu 2
  193443. 8cf13325ee salt.states.reg.present: Prevent traceback when reg data is binary
  193444. .UNINDENT
  193445. .IP \(bu 2
  193446. 1f44e285dc Merge pull request \fI\%#46011\fP from terminalmage/fix\-solaris\-runas
  193447. .INDENT 2.0
  193448. .IP \(bu 2
  193449. 8ee0a3a28b Move Solaris USER workaround up a bit
  193450. .IP \(bu 2
  193451. 13cdb52690 cmdmod.py: runas workaround for platforms that don\(aqt set a USER env var
  193452. .UNINDENT
  193453. .IP \(bu 2
  193454. 30fb8f7be0 Merge pull request \fI\%#45467\fP from twangboy/win_exclude_hidden
  193455. .INDENT 2.0
  193456. .IP \(bu 2
  193457. ea41215646 Make the regex pattern less greedy
  193458. .IP \(bu 2
  193459. 6d223cffa7 Add tip about passing bogus saltenv
  193460. .IP \(bu 2
  193461. 1282ae3a93 Skip hidden first
  193462. .IP \(bu 2
  193463. 437a457911 Skip hidden dirs in genrepo
  193464. .IP \(bu 2
  193465. 87dc554dc3 Add final updates to docs
  193466. .IP \(bu 2
  193467. 3646d5c897 Fix some docs formatting, add some warnings
  193468. .IP \(bu 2
  193469. 35c81faf5a Log the source_dir when caching the files
  193470. .IP \(bu 2
  193471. 91c3da8dfd Improve docs for pkg.refresh_db
  193472. .IP \(bu 2
  193473. 4803d92707 Add some documentation
  193474. .IP \(bu 2
  193475. 08b82e0875 Fix lint error, use raw
  193476. .IP \(bu 2
  193477. 2f712691cf Exclude hidden directories in pkg.refresh_db
  193478. .UNINDENT
  193479. .UNINDENT
  193480. .UNINDENT
  193481. .IP \(bu 2
  193482. \fBISSUE\fP \fI\%#46106\fP: (\fI\%amendlik\fP) yumpkg.refresh_db hangs (refs: \fI\%#46107\fP)
  193483. .IP \(bu 2
  193484. \fBPR\fP \fI\%#46107\fP: (\fI\%amendlik\fP) Add \-\-assumeyes on YUM/DNF commands
  193485. @ \fI2018\-02\-20 22:52:06 UTC\fP
  193486. .INDENT 2.0
  193487. .IP \(bu 2
  193488. b92346645b Merge pull request \fI\%#46107\fP from amendlik/yumpkg\-assumeyes
  193489. .IP \(bu 2
  193490. 8d9a432fb2 Add \-\-assumeyes to yum/dnf commands in yumpkg.refresh_db
  193491. .UNINDENT
  193492. .IP \(bu 2
  193493. \fBPR\fP \fI\%#46094\fP: (\fI\%kstreee\fP) Fix memory leak
  193494. @ \fI2018\-02\-20 21:36:02 UTC\fP
  193495. .INDENT 2.0
  193496. .IP \(bu 2
  193497. 14fe423e0c Merge pull request \fI\%#46094\fP from kstreee/fix\-memory\-leak
  193498. .IP \(bu 2
  193499. 48080a1bae Fixes memory leak, saltclients should be cleaned after used.
  193500. .IP \(bu 2
  193501. aba00805f4 Adds set_close_callback function to removes stream instance after closed from a set streams.
  193502. .UNINDENT
  193503. .IP \(bu 2
  193504. \fBISSUE\fP \fI\%#13\fP: (\fI\%thatch45\fP) Expand the stats module (refs: \fI\%#46097\fP)
  193505. .IP \(bu 2
  193506. \fBPR\fP \fI\%#46097\fP: (\fI\%vutny\fP) [DOC] Put https link to the formulas doc page
  193507. @ \fI2018\-02\-20 17:07:39 UTC\fP
  193508. .INDENT 2.0
  193509. .IP \(bu 2
  193510. 320c2037e1 Merge pull request \fI\%#46097\fP from vutny/fix\-https\-link
  193511. .IP \(bu 2
  193512. 2062fd0e5c [DOC] Put https link to the formulas doc page
  193513. .UNINDENT
  193514. .IP \(bu 2
  193515. \fBPR\fP \fI\%#46103\fP: (\fI\%bdrung\fP) Fix skipping Kubernetes tests if client is not installed
  193516. @ \fI2018\-02\-20 16:33:42 UTC\fP
  193517. .INDENT 2.0
  193518. .IP \(bu 2
  193519. 0eb137fb4e Merge pull request \fI\%#46103\fP from bdrung/2017.7
  193520. .IP \(bu 2
  193521. dd3f936557 Fix skipping Kubernetes tests if client is not installed
  193522. .UNINDENT
  193523. .IP \(bu 2
  193524. \fBPR\fP \fI\%#46070\fP: (\fI\%Ch3LL\fP) add required arg to dns_check jinja doc example
  193525. @ \fI2018\-02\-16 20:00:44 UTC\fP
  193526. .INDENT 2.0
  193527. .IP \(bu 2
  193528. c3a938e994 Merge pull request \fI\%#46070\fP from Ch3LL/fix\-doc\-dns
  193529. .IP \(bu 2
  193530. 2a5d855d97 add required arg to dns_check jinja doc example
  193531. .UNINDENT
  193532. .IP \(bu 2
  193533. \fBPR\fP \fI\%#46067\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45994\fP to 2017.7
  193534. @ \fI2018\-02\-16 19:55:27 UTC\fP
  193535. .INDENT 2.0
  193536. .IP \(bu 2
  193537. \fBPR\fP \fI\%#45994\fP: (\fI\%nullify005\fP) Fix hosted zone Comment updates & quote TXT entries correctly (refs: \fI\%#46067\fP)
  193538. .IP \(bu 2
  193539. 01042e9d77 Merge pull request \fI\%#46067\fP from rallytime/bp\-45994
  193540. .IP \(bu 2
  193541. a07bb48726 Correct formatting for lint
  193542. .IP \(bu 2
  193543. e8678f633d Fix Comment being None not \(aq\(aq and inject quotes into the TXT ChangeRecords
  193544. .UNINDENT
  193545. .IP \(bu 2
  193546. \fBISSUE\fP \fI\%#42932\fP: (\fI\%bobrik\fP) cmd.run with bg: true doesn\(aqt fail properly (refs: \fI\%#45932\fP)
  193547. .IP \(bu 2
  193548. \fBPR\fP \fI\%#45932\fP: (\fI\%The\-Loeki\fP) Fix cmd run_all bg error
  193549. @ \fI2018\-02\-16 14:53:15 UTC\fP
  193550. .INDENT 2.0
  193551. .IP \(bu 2
  193552. \fBPR\fP \fI\%#39980\fP: (\fI\%vutny\fP) [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function (refs: \fI\%#45932\fP)
  193553. .IP \(bu 2
  193554. 5e0e2a30e2 Merge pull request \fI\%#45932\fP from The\-Loeki/fix_cmd_run_all_bg
  193555. .IP \(bu 2
  193556. f83da27ca5 Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  193557. .IP \(bu 2
  193558. 771758fbca Merge branch \(aq2017.7\(aq into fix_cmd_run_all_bg
  193559. .IP \(bu 2
  193560. c54fcf7a2d cmd: move separate DRY logging blocks into _run, prevent logging on bg=True, don\(aqt use_vt on bg
  193561. .IP \(bu 2
  193562. ebb1f81a9b cmd run: when running in bg, force ignore_retcode=True
  193563. .UNINDENT
  193564. .IP \(bu 2
  193565. \fBPR\fP \fI\%#46062\fP: (\fI\%vutny\fP) Fix typo in postgres_user.present state function
  193566. @ \fI2018\-02\-16 14:44:29 UTC\fP
  193567. .INDENT 2.0
  193568. .IP \(bu 2
  193569. 45ace39961 Merge pull request \fI\%#46062\fP from vutny/pg\-user\-state\-fix\-typo
  193570. .IP \(bu 2
  193571. a5fbe4e95e Fix typo in postgres_user.present state function
  193572. .UNINDENT
  193573. .IP \(bu 2
  193574. \fBPR\fP \fI\%#45763\fP: (\fI\%twangboy\fP) Fix rehash function in win_path.py
  193575. @ \fI2018\-02\-15 20:05:16 UTC\fP
  193576. .INDENT 2.0
  193577. .IP \(bu 2
  193578. edcb64de76 Merge pull request \fI\%#45763\fP from twangboy/win_fix_path_rehash
  193579. .IP \(bu 2
  193580. b9a2bc7b29 Fix hyperlinks
  193581. .IP \(bu 2
  193582. 29912adc15 Move the test_rehash test to test_win_functions
  193583. .IP \(bu 2
  193584. adc594c183 Remove duplicate link
  193585. .IP \(bu 2
  193586. e84628c1eb Add some comments to the code
  193587. .IP \(bu 2
  193588. d50d5f582f Add additional info to docs for \fIbroadcast_setting_change\fP
  193589. .IP \(bu 2
  193590. 3a54e09cd9 Rename setting to message
  193591. .IP \(bu 2
  193592. a3f9e99bc0 Change to a generic function to broadcast change
  193593. .IP \(bu 2
  193594. 79299361c3 Create refresh_environment salt util
  193595. .IP \(bu 2
  193596. 967b83940c Fix rehash function
  193597. .UNINDENT
  193598. .IP \(bu 2
  193599. \fBPR\fP \fI\%#46042\fP: (\fI\%jfindlay\fP) Revise file_tree pillar module documentation
  193600. @ \fI2018\-02\-15 19:29:52 UTC\fP
  193601. .INDENT 2.0
  193602. .IP \(bu 2
  193603. \fBPR\fP \fI\%#46027\fP: (\fI\%jfindlay\fP) Revise file_tree pillar module documentation (refs: \fI\%#46042\fP)
  193604. .IP \(bu 2
  193605. a46fbc546c Merge pull request \fI\%#46042\fP from jfindlay/file_tree_doc
  193606. .IP \(bu 2
  193607. 0ba4954a4b salt.pillar.file_tree revise module documentation
  193608. .IP \(bu 2
  193609. 3c6a5bf967 salt.pillar.file_tree provide better debug info
  193610. .IP \(bu 2
  193611. bb1cdc451e salt.pillar.file_tree no stack trace when nodegroups undefined
  193612. .UNINDENT
  193613. .IP \(bu 2
  193614. \fBPR\fP \fI\%#46013\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45598\fP to 2017.7
  193615. @ \fI2018\-02\-15 16:11:05 UTC\fP
  193616. .INDENT 2.0
  193617. .IP \(bu 2
  193618. \fBPR\fP \fI\%#45598\fP: (\fI\%nullify005\fP) Patch around ResourceRecords needing to be present for AliasTarget (refs: \fI\%#46013\fP)
  193619. .IP \(bu 2
  193620. de86126dd8 Merge pull request \fI\%#46013\fP from rallytime/bp\-45598
  193621. .IP \(bu 2
  193622. 2ea3fef543 No lazy logging
  193623. .IP \(bu 2
  193624. f427b0febc Change formatting style of logging lines per review
  193625. .IP \(bu 2
  193626. ebb244396b Patch around ResourceRecords needing to be present for AliasTarget entries to work
  193627. .UNINDENT
  193628. .IP \(bu 2
  193629. \fBISSUE\fP \fI\%#45825\fP: (\fI\%philpep\fP) selinux.fcontext_policy_present doesn\(aqt work on Centos 6 with filetype = all files (refs: \fI\%#45826\fP)
  193630. .IP \(bu 2
  193631. \fBPR\fP \fI\%#46016\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45826\fP to 2017.7
  193632. @ \fI2018\-02\-14 18:16:24 UTC\fP
  193633. .INDENT 2.0
  193634. .IP \(bu 2
  193635. \fBPR\fP \fI\%#45826\fP: (\fI\%philpep\fP) Fix selinux.fcontext_policy_present for Centos 6 (refs: \fI\%#46016\fP)
  193636. .IP \(bu 2
  193637. 07e5735471 Merge pull request \fI\%#46016\fP from rallytime/bp\-45826
  193638. .IP \(bu 2
  193639. 1916e5c4a4 Fix selinux.fcontext_policy_present for Centos 6
  193640. .UNINDENT
  193641. .IP \(bu 2
  193642. \fBISSUE\fP \fI\%#45784\fP: (\fI\%oarmstrong\fP) SELinux module fcontext_get_policy fails with long regex (refs: \fI\%#45785\fP)
  193643. .IP \(bu 2
  193644. \fBPR\fP \fI\%#46015\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45785\fP to 2017.7
  193645. @ \fI2018\-02\-14 18:16:09 UTC\fP
  193646. .INDENT 2.0
  193647. .IP \(bu 2
  193648. \fBPR\fP \fI\%#45785\fP: (\fI\%oarmstrong\fP) m/selinux.fcontext_get_policy allow long filespecs (refs: \fI\%#46015\fP)
  193649. .IP \(bu 2
  193650. a1f4092811 Merge pull request \fI\%#46015\fP from rallytime/bp\-45785
  193651. .IP \(bu 2
  193652. ef6ffb1492 Resolve linting errors
  193653. .IP \(bu 2
  193654. 8047066c46 Remove unused import
  193655. .IP \(bu 2
  193656. 8f7c45935a Add tests for salt.modules.selinux.fcontext_get_policy
  193657. .IP \(bu 2
  193658. bafb7b4e6e Ensure parsed fields are stripped
  193659. .IP \(bu 2
  193660. a830a6e819 m/selinux.fcontext_get_policy allow long filespecs
  193661. .UNINDENT
  193662. .IP \(bu 2
  193663. \fBPR\fP \fI\%#46012\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45462\fP to 2017.7
  193664. @ \fI2018\-02\-14 18:14:56 UTC\fP
  193665. .INDENT 2.0
  193666. .IP \(bu 2
  193667. \fBPR\fP \fI\%#45462\fP: (\fI\%aphor\fP) emit port cli version, variants as separate args (refs: \fI\%#46012\fP)
  193668. .IP \(bu 2
  193669. 96097c037e Merge pull request \fI\%#46012\fP from rallytime/bp\-45462
  193670. .IP \(bu 2
  193671. 9f76836a6c emit port cli version, variants as separate args
  193672. .UNINDENT
  193673. .IP \(bu 2
  193674. \fBPR\fP \fI\%#45991\fP: (\fI\%terminalmage\fP) yumpkg: Fix a couple issues with _get_extra_opts
  193675. @ \fI2018\-02\-14 16:48:28 UTC\fP
  193676. .INDENT 2.0
  193677. .IP \(bu 2
  193678. 1279924f5f Merge pull request \fI\%#45991\fP from terminalmage/fix\-duplicate\-extra\-opts
  193679. .IP \(bu 2
  193680. 916766f651 yumpkg: Fix a couple issues with _get_extra_opts
  193681. .UNINDENT
  193682. .IP \(bu 2
  193683. \fBPR\fP \fI\%#46017\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  193684. @ \fI2018\-02\-13 21:43:15 UTC\fP
  193685. .INDENT 2.0
  193686. .IP \(bu 2
  193687. 8b9adc258e Merge pull request \fI\%#46017\fP from rallytime/merge\-2017.7
  193688. .IP \(bu 2
  193689. a06645ce71 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  193690. .UNINDENT
  193691. .IP \(bu 2
  193692. \fBISSUE\fP \fI\%#45796\fP: (\fI\%L4rS6\fP) aliases module doesn\(aqt follow symlinks (refs: \fI\%#45797\fP)
  193693. .IP \(bu 2
  193694. \fBPR\fP \fI\%#45988\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45797\fP to 2017.7
  193695. @ \fI2018\-02\-13 17:49:02 UTC\fP
  193696. .INDENT 2.0
  193697. .IP \(bu 2
  193698. \fBPR\fP \fI\%#45797\fP: (\fI\%L4rS6\fP) follow symlinks in aliases module (close \fI\%#45796\fP) (refs: \fI\%#45988\fP)
  193699. .IP \(bu 2
  193700. d20ff89414 Merge pull request \fI\%#45988\fP from rallytime/bp\-45797
  193701. .IP \(bu 2
  193702. 953a400d79 follow symlinks
  193703. .UNINDENT
  193704. .IP \(bu 2
  193705. \fBPR\fP \fI\%#45711\fP: (\fI\%bdrung\fP) Fix Unicode tests when run with LC_ALL=POSIX
  193706. @ \fI2018\-02\-13 17:42:07 UTC\fP
  193707. .INDENT 2.0
  193708. .IP \(bu 2
  193709. b18087cee0 Merge pull request \fI\%#45711\fP from bdrung/fix\-unicode\-tests
  193710. .IP \(bu 2
  193711. b6181b5ed6 Fix Unicode tests when run with LC_ALL=POSIX
  193712. .UNINDENT
  193713. .IP \(bu 2
  193714. \fBPR\fP \fI\%#45878\fP: (\fI\%damon\-atkins\fP) ec2_pillar update to fix finding instance\-id (refs: \fI\%#46137\fP)
  193715. @ \fI2018\-02\-13 17:34:14 UTC\fP
  193716. .INDENT 2.0
  193717. .IP \(bu 2
  193718. 5271fb1d40 Merge pull request \fI\%#45878\fP from damon\-atkins/2017.7_fix_ec2_pillar
  193719. .IP \(bu 2
  193720. 0e74025714 Merge branch \(aq2017.7\(aq into 2017.7_fix_ec2_pillar
  193721. .IP \(bu 2
  193722. b4d0b23891 py3 fix
  193723. .IP \(bu 2
  193724. 75d9e20d8a Add ignoring \(aqterminated\(aq, \(aqstopped\(aq instances, to improve changes of a single match
  193725. .IP \(bu 2
  193726. 0093472a37 added tag_key_list and tag_key_sep to create ec2_tags_list
  193727. .IP \(bu 2
  193728. afb3968aa7 ec2_pillar could not find instance\-id, resolved. add support to use any tag to compare minion id against.
  193729. .UNINDENT
  193730. .IP \(bu 2
  193731. \fBPR\fP \fI\%#45942\fP: (\fI\%terminalmage\fP) Fix incorrect translation of docker port_bindings \-> ports (2017.7 branch)
  193732. @ \fI2018\-02\-13 16:10:03 UTC\fP
  193733. .INDENT 2.0
  193734. .IP \(bu 2
  193735. cf367dbd04 Merge pull request \fI\%#45942\fP from terminalmage/issue45679\-2017.7
  193736. .IP \(bu 2
  193737. 89cbd72a0d Don\(aqt try to sort ports when translating docker input
  193738. .IP \(bu 2
  193739. 9cd47b39dd Fix incorrect translation of docker port_bindings \-> ports
  193740. .UNINDENT
  193741. .IP \(bu 2
  193742. \fBPR\fP \fI\%#45959\fP: (\fI\%rallytime\fP) A couple of grammar updates for the state compiler docs
  193743. @ \fI2018\-02\-12 22:17:49 UTC\fP
  193744. .INDENT 2.0
  193745. .IP \(bu 2
  193746. dae41de7a8 Merge pull request \fI\%#45959\fP from rallytime/state\-doc\-update
  193747. .IP \(bu 2
  193748. 6f781cb95d A couple of grammar updates for the state compiler docs
  193749. .UNINDENT
  193750. .IP \(bu 2
  193751. \fBISSUE\fP \fI\%saltstack/salt#45884\fP: (\fI\%tintoy\fP) "TypeError: can\(aqt serialize <NodeImage" when calling salt\-cloud with the dimensiondata driver (refs: \fI\%#45908\fP)
  193752. .IP \(bu 2
  193753. \fBISSUE\fP \fI\%#45884\fP: (\fI\%tintoy\fP) "TypeError: can\(aqt serialize <NodeImage" when calling salt\-cloud with the dimensiondata driver (refs: \fI\%#45908\fP)
  193754. .IP \(bu 2
  193755. \fBPR\fP \fI\%#45908\fP: (\fI\%tintoy\fP) Fix for \fI\%#45884\fP ("TypeError: can\(aqt serialize <NodeImage" when calling salt\-cloud with the dimensiondata driver)
  193756. @ \fI2018\-02\-12 22:05:29 UTC\fP
  193757. .INDENT 2.0
  193758. .IP \(bu 2
  193759. 007214f7bf Merge pull request \fI\%#45908\fP from DimensionDataResearch/fix/issue/45884
  193760. .IP \(bu 2
  193761. 1a75786b5a Fix linter warnings.
  193762. .IP \(bu 2
  193763. 82ec0b589c Revert to using salt.utils.cloud.is_public_ip.
  193764. .IP \(bu 2
  193765. 9b6b01873b Fix violations reported by flake8.
  193766. .IP \(bu 2
  193767. a2bc155c73 Use __utils__[\(aqcloud.\(aq] instead of salt.cloud.utils.
  193768. .IP \(bu 2
  193769. 98907a32cb Ensure \(aqauth\(aq parameter is correctly passed to dimensiondata driver.
  193770. .IP \(bu 2
  193771. de26b03e2c Fix copy/paste bug in dimensiondata provider integration test.
  193772. .IP \(bu 2
  193773. 6b1b6be427 Add integration tests for dimensiondata cloud provider.
  193774. .IP \(bu 2
  193775. f6ea9fed7d Ensure that event data provided by the dimensiondata driver is serialisable.
  193776. .UNINDENT
  193777. .IP \(bu 2
  193778. \fBPR\fP \fI\%#45985\fP: (\fI\%garethgreenaway\fP) [2017.7] Backport \fI\%#45894\fP \- Missing \fIformat\fP in the call to write.
  193779. @ \fI2018\-02\-12 20:22:31 UTC\fP
  193780. .INDENT 2.0
  193781. .IP \(bu 2
  193782. \fBPR\fP \fI\%#45894\fP: (\fI\%while0pass\fP) Fix inconcistencies in param description (refs: \fI\%#45985\fP)
  193783. .IP \(bu 2
  193784. efcbfa868c Merge pull request \fI\%#45985\fP from garethgreenaway/2017_7_fixing_mac_tests_again
  193785. .IP \(bu 2
  193786. 7b8dc14433 Missing \fIformat\fP in the call to write.
  193787. .UNINDENT
  193788. .IP \(bu 2
  193789. \fBPR\fP \fI\%#45958\fP: (\fI\%garethgreenaway\fP) Backporting \fI\%#45935\fP to 2017.7
  193790. @ \fI2018\-02\-12 16:25:07 UTC\fP
  193791. .INDENT 2.0
  193792. .IP \(bu 2
  193793. \fBPR\fP \fI\%#45936\fP: (\fI\%garethgreenaway\fP) [oxygen] Fix to log/handlers/__init__.py (refs: \fI\%#45958\fP)
  193794. .IP \(bu 2
  193795. \fBPR\fP \fI\%#45935\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45742\fP to 2017.7.3 (refs: \fI\%#45958\fP)
  193796. .IP \(bu 2
  193797. \fBPR\fP \fI\%#45742\fP: (\fI\%marccardinal\fP) list.copy() is not compatible with python 2.7 (refs: \fI\%#45935\fP)
  193798. .IP \(bu 2
  193799. bf03abd07c Merge pull request \fI\%#45958\fP from garethgreenaway/backport\-fixing_mactests_queue_full
  193800. .IP \(bu 2
  193801. 25dffaae91 Backporting \fI\%#45935\fP
  193802. .UNINDENT
  193803. .IP \(bu 2
  193804. \fBPR\fP \fI\%#45949\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193805. @ \fI2018\-02\-09 22:32:09 UTC\fP
  193806. .INDENT 2.0
  193807. .IP \(bu 2
  193808. bab365d6c6 Merge pull request \fI\%#45949\fP from rallytime/merge\-2017.7
  193809. .IP \(bu 2
  193810. f51687e903 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193811. .IP \(bu 2
  193812. 7779fea7ba Merge pull request \fI\%#45940\fP from dmurphy18/fix_aix_cmdmod
  193813. .INDENT 2.0
  193814. .IP \(bu 2
  193815. dd2788419b Fix use of \(aqsu\(aq for AIX to use \(aq\-\(aq
  193816. .UNINDENT
  193817. .UNINDENT
  193818. .IP \(bu 2
  193819. \fBISSUE\fP \fI\%#45915\fP: (\fI\%MatthiasKuehneEllerhold\fP) 2017.7.3: Salt\-SSH & Vault Pillar: Permission denied "minion.pem" (refs: \fI\%#45928\fP)
  193820. .IP \(bu 2
  193821. \fBPR\fP \fI\%#45928\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing vault when used with pillar over salt\-ssh
  193822. @ \fI2018\-02\-09 16:32:35 UTC\fP
  193823. .INDENT 2.0
  193824. .IP \(bu 2
  193825. 7fd00ec752 Merge pull request \fI\%#45928\fP from garethgreenaway/45915_fixing_vault_pillar_for_salt_ssh
  193826. .IP \(bu 2
  193827. 259e60e5d4 Fixing vault when used with pillar over salt\-ssh
  193828. .UNINDENT
  193829. .IP \(bu 2
  193830. \fBPR\fP \fI\%#45925\fP: (\fI\%terminalmage\fP) Fix spelling error in docstring
  193831. @ \fI2018\-02\-08 21:52:35 UTC\fP
  193832. .INDENT 2.0
  193833. .IP \(bu 2
  193834. 9d14ad9ccf Merge pull request \fI\%#45925\fP from terminalmage/fix\-spelling
  193835. .IP \(bu 2
  193836. 7a143fe454 Fix spelling error in docstring
  193837. .UNINDENT
  193838. .IP \(bu 2
  193839. \fBPR\fP \fI\%#45920\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  193840. @ \fI2018\-02\-08 15:43:49 UTC\fP
  193841. .INDENT 2.0
  193842. .IP \(bu 2
  193843. 0cbe93cd69 Merge pull request \fI\%#45920\fP from rallytime/merge\-2017.7
  193844. .IP \(bu 2
  193845. e4e4744218 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  193846. .IP \(bu 2
  193847. 27ff82f996 Merge pull request \fI\%#45864\fP from rallytime/release\-note\-fix
  193848. .INDENT 2.0
  193849. .IP \(bu 2
  193850. 104a24f244 Remove extraneous ] in release notes for 2016.11.9
  193851. .UNINDENT
  193852. .IP \(bu 2
  193853. 5fa010de2b Merge pull request \fI\%#45787\fP from rallytime/2016.11.9_docs
  193854. .INDENT 2.0
  193855. .IP \(bu 2
  193856. a38d4d44fa [2016.11] Bump latest and previous versions
  193857. .UNINDENT
  193858. .UNINDENT
  193859. .IP \(bu 2
  193860. \fBISSUE\fP \fI\%#45805\fP: (\fI\%bgridley\fP) Execution module victorops throws an error "RuntimeError: dictionary changed size during iteration" (refs: \fI\%#45814\fP)
  193861. .IP \(bu 2
  193862. \fBPR\fP \fI\%#45814\fP: (\fI\%gtmanfred\fP) fix cookies dict size changing in http.query
  193863. @ \fI2018\-02\-08 15:35:30 UTC\fP
  193864. .INDENT 2.0
  193865. .IP \(bu 2
  193866. 643a8a5278 Merge pull request \fI\%#45814\fP from gtmanfred/2017.7
  193867. .IP \(bu 2
  193868. d8eec9aa97 fix cookies dict size changing in http.query
  193869. .UNINDENT
  193870. .IP \(bu 2
  193871. \fBPR\fP \fI\%#45877\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.4 release
  193872. @ \fI2018\-02\-08 14:07:43 UTC\fP
  193873. .INDENT 2.0
  193874. .IP \(bu 2
  193875. 3a3f87c16d Merge pull request \fI\%#45877\fP from rallytime/new\-release\-notes
  193876. .IP \(bu 2
  193877. f937e8ba81 Add release notes file for 2017.7.4 release
  193878. .UNINDENT
  193879. .IP \(bu 2
  193880. \fBPR\fP \fI\%#45904\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41017\fP to 2017.7
  193881. @ \fI2018\-02\-08 13:57:45 UTC\fP
  193882. .INDENT 2.0
  193883. .IP \(bu 2
  193884. \fBPR\fP \fI\%#41017\fP: (\fI\%cebe\fP) Fixed typo in pkg state documentation (refs: \fI\%#45904\fP)
  193885. .IP \(bu 2
  193886. 1c3cc00670 Merge pull request \fI\%#45904\fP from rallytime/bp\-41017
  193887. .IP \(bu 2
  193888. 80c56cdcea Fixed typo in pkg state documentation
  193889. .UNINDENT
  193890. .IP \(bu 2
  193891. \fBPR\fP \fI\%#45907\fP: (\fI\%terminalmage\fP) Fix backport of grains fix
  193892. @ \fI2018\-02\-08 13:57:26 UTC\fP
  193893. .INDENT 2.0
  193894. .IP \(bu 2
  193895. 317d35bd15 Merge pull request \fI\%#45907\fP from terminalmage/fix\-grains\-backport
  193896. .IP \(bu 2
  193897. 6cf7e50cc4 Fix backport of grains fix
  193898. .UNINDENT
  193899. .IP \(bu 2
  193900. \fBPR\fP \fI\%#45906\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45548\fP to 2017.7
  193901. @ \fI2018\-02\-08 13:57:07 UTC\fP
  193902. .INDENT 2.0
  193903. .IP \(bu 2
  193904. \fBPR\fP \fI\%#45548\fP: (\fI\%viktordaniel\fP) Update x509.py \- documentation fix (refs: \fI\%#45906\fP)
  193905. .IP \(bu 2
  193906. dade5f0cab Merge pull request \fI\%#45906\fP from rallytime/bp\-45548
  193907. .IP \(bu 2
  193908. 1befa7386c Update x509.py
  193909. .UNINDENT
  193910. .IP \(bu 2
  193911. \fBISSUE\fP \fI\%#45893\fP: (\fI\%CrackerJackMack\fP) archive.extracted ValueError "No path specified" in 2017.7.3 (refs: \fI\%#45902\fP)
  193912. .IP \(bu 2
  193913. \fBPR\fP \fI\%#45902\fP: (\fI\%terminalmage\fP) Check the effective saltenv for cached archive
  193914. @ \fI2018\-02\-08 13:42:00 UTC\fP
  193915. .INDENT 2.0
  193916. .IP \(bu 2
  193917. 82c473a1fe Merge pull request \fI\%#45902\fP from terminalmage/issue45893
  193918. .IP \(bu 2
  193919. 9d200efc26 Add regression test for issue 45893
  193920. .IP \(bu 2
  193921. 1468f1d0ff Remove duplicated section in docstring and fix example
  193922. .IP \(bu 2
  193923. 6cc5cd9b8a Check the effective saltenv for cached archive
  193924. .UNINDENT
  193925. .IP \(bu 2
  193926. \fBPR\fP \fI\%#45862\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45830\fP to 2017.7
  193927. @ \fI2018\-02\-08 13:22:26 UTC\fP
  193928. .INDENT 2.0
  193929. .IP \(bu 2
  193930. \fBPR\fP \fI\%#45830\fP: (\fI\%garethgreenaway\fP) [oxygen] Catch exception when logging queue is full (refs: \fI\%#45862\fP)
  193931. .IP \(bu 2
  193932. fdedde3cfb Merge pull request \fI\%#45862\fP from rallytime/bp\-45830
  193933. .IP \(bu 2
  193934. 1024856f9a Wrapping the put_nowait in a try...except and catching the exception when the multiprocessing queue is full. This situation is happening when running the full testing suite on MacOS where the queue limit is 32767 vs on Linux where the queue limit is unlimited.
  193935. .UNINDENT
  193936. .IP \(bu 2
  193937. \fBPR\fP \fI\%#45779\fP: (\fI\%The\-Loeki\fP) SSH shell shim: Don\(aqt use $() for optimal support
  193938. @ \fI2018\-02\-05 18:35:21 UTC\fP
  193939. .INDENT 2.0
  193940. .IP \(bu 2
  193941. 43a45b42c3 Merge pull request \fI\%#45779\fP from The\-Loeki/patch\-3
  193942. .IP \(bu 2
  193943. 8575ae3d52 Merge branch \(aq2017.7\(aq into patch\-3
  193944. .IP \(bu 2
  193945. 47cf00d88e SSH shell shim: Don\(aqt use $() for optimal support
  193946. .UNINDENT
  193947. .IP \(bu 2
  193948. \fBPR\fP \fI\%#45788\fP: (\fI\%rallytime\fP) [2017.7] Bump latest and previous versions
  193949. @ \fI2018\-02\-05 15:30:46 UTC\fP
  193950. .INDENT 2.0
  193951. .IP \(bu 2
  193952. cca997d0da Merge pull request \fI\%#45788\fP from rallytime/2017.7.3_docs
  193953. .IP \(bu 2
  193954. d5faf6126b [2017.7] Bump latest and previous versions
  193955. .UNINDENT
  193956. .IP \(bu 2
  193957. \fBPR\fP \fI\%#45842\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45827\fP to 2017.7
  193958. @ \fI2018\-02\-05 15:04:11 UTC\fP
  193959. .INDENT 2.0
  193960. .IP \(bu 2
  193961. \fBPR\fP \fI\%#45827\fP: (\fI\%terminalmage\fP) Fix traceback in disks grains when /sys/block not available (refs: \fI\%#45842\fP)
  193962. .IP \(bu 2
  193963. 746206cebe Merge pull request \fI\%#45842\fP from rallytime/bp\-45827
  193964. .IP \(bu 2
  193965. c631598a87 Fix traceback in disks grains when /sys/block not available
  193966. .UNINDENT
  193967. .IP \(bu 2
  193968. \fBISSUE\fP \fI\%#44978\fP: (\fI\%doesitblend\fP) State duration not always calculated (refs: \fI\%#45721\fP)
  193969. .IP \(bu 2
  193970. \fBPR\fP \fI\%#45721\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure duration and start time exist
  193971. @ \fI2018\-02\-05 14:59:33 UTC\fP
  193972. .INDENT 2.0
  193973. .IP \(bu 2
  193974. 900aadcd67 Merge pull request \fI\%#45721\fP from garethgreenaway/44978_show_duration_when_no_state_run
  193975. .IP \(bu 2
  193976. 359265869f Adding a couple tests to ensure that duration is included in state run results even when states do not run.
  193977. .IP \(bu 2
  193978. 912347abc3 Include the duration when a state does not run, for example when the \fIonchanges\fP requisite is not met.
  193979. .UNINDENT
  193980. .IP \(bu 2
  193981. \fBPR\fP \fI\%#45517\fP: (\fI\%kstreee\fP) Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  193982. @ \fI2018\-02\-05 14:56:23 UTC\fP
  193983. .INDENT 2.0
  193984. .IP \(bu 2
  193985. 80a2d009b4 Merge pull request \fI\%#45517\fP from kstreee/fix\-mkdir
  193986. .IP \(bu 2
  193987. 24d41f2451 Fixes base dir making logic to ensure not raising the exception when base directory already exists.
  193988. .UNINDENT
  193989. .IP \(bu 2
  193990. \fBPR\fP \fI\%#45835\fP: (\fI\%kstreee\fP) Adds a missing return statement.
  193991. @ \fI2018\-02\-02 22:51:41 UTC\fP
  193992. .INDENT 2.0
  193993. .IP \(bu 2
  193994. 7a4b1b2e77 Merge pull request \fI\%#45835\fP from kstreee/fix\-missing\-return\-statement
  193995. .IP \(bu 2
  193996. 68c7f3dcba Adds a missing return statement.
  193997. .UNINDENT
  193998. .IP \(bu 2
  193999. \fBPR\fP \fI\%#45840\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45603\fP to 2017.7
  194000. @ \fI2018\-02\-02 20:17:32 UTC\fP
  194001. .INDENT 2.0
  194002. .IP \(bu 2
  194003. \fBPR\fP \fI\%#45603\fP: (\fI\%andreaspe\fP) Fix for duplicate entries with pkrepo.managed (refs: \fI\%#45840\fP)
  194004. .IP \(bu 2
  194005. 0a04f118c2 Merge pull request \fI\%#45840\fP from rallytime/bp\-45603
  194006. .IP \(bu 2
  194007. 9653363131 Fix for duplicate entries with pkrepo.managed
  194008. .UNINDENT
  194009. .IP \(bu 2
  194010. \fBISSUE\fP \fI\%#44315\fP: (\fI\%whytewolf\fP) cmd.* cwd does not escape spaces. 2017.7.2 (refs: \fI\%#45134\fP)
  194011. .IP \(bu 2
  194012. \fBPR\fP \fI\%#45716\fP: (\fI\%ciiqr\fP) fixed quoting of script path in cmd.script
  194013. @ \fI2018\-02\-02 14:36:49 UTC\fP
  194014. .INDENT 2.0
  194015. .IP \(bu 2
  194016. \fBPR\fP \fI\%#45134\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to cmd.script for cwd with space (refs: \fI\%#45716\fP)
  194017. .IP \(bu 2
  194018. bd2178cd5f Merge pull request \fI\%#45716\fP from ciiqr/fix_cmd_script_quoting
  194019. .IP \(bu 2
  194020. 217791079b some code cleanup (lint errors and escape_argument as _cmd_quote)
  194021. .IP \(bu 2
  194022. 1c29bc5a3d fixed quoting of script path in cmd.script
  194023. .UNINDENT
  194024. .IP \(bu 2
  194025. \fBISSUE\fP \fI\%#45684\fP: (\fI\%bdrung\fP) salt documentation fails to build with Python 3 version of sphinx (refs: \fI\%#45719\fP)
  194026. .IP \(bu 2
  194027. \fBPR\fP \fI\%#45719\fP: (\fI\%bdrung\fP) Fix python3 sphinx build
  194028. @ \fI2018\-02\-02 14:20:37 UTC\fP
  194029. .INDENT 2.0
  194030. .IP \(bu 2
  194031. 272f912c7c Merge pull request \fI\%#45719\fP from bdrung/fix\-python3\-sphinx\-build
  194032. .IP \(bu 2
  194033. 179e8fbe73 doc: Do not mock non\-existing __qualname__ attribute
  194034. .IP \(bu 2
  194035. 971e59ebe2 Drop enforcing new\-style object for SaltYamlSafeLoader
  194036. .UNINDENT
  194037. .IP \(bu 2
  194038. \fBPR\fP \fI\%#45764\fP: (\fI\%mchugh19\fP) support amazon linux 2 for service module
  194039. @ \fI2018\-02\-02 14:12:07 UTC\fP
  194040. .INDENT 2.0
  194041. .IP \(bu 2
  194042. \fBPR\fP \fI\%#45758\fP: (\fI\%mchugh19\fP) support amazon linux 2 for service module (refs: \fI\%#45764\fP)
  194043. .IP \(bu 2
  194044. fc04336c3b Merge pull request \fI\%#45764\fP from mchugh19/2017.7
  194045. .IP \(bu 2
  194046. 0a7f1a4d75 English better
  194047. .IP \(bu 2
  194048. 37e067c7b5 support amazon linux 2 for service module
  194049. .UNINDENT
  194050. .IP \(bu 2
  194051. \fBPR\fP \fI\%#45756\fP: (\fI\%roaldnefs\fP) Fix Grafana4 states documentation
  194052. @ \fI2018\-01\-31 19:01:33 UTC\fP
  194053. .INDENT 2.0
  194054. .IP \(bu 2
  194055. f234bf52f4 Merge pull request \fI\%#45756\fP from roaldnefs/fix\-grafana4\-documentation
  194056. .IP \(bu 2
  194057. 92979c0b57 Fix grafana4 states documentation
  194058. .UNINDENT
  194059. .IP \(bu 2
  194060. \fBPR\fP \fI\%#45801\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194061. @ \fI2018\-01\-31 18:55:52 UTC\fP
  194062. .INDENT 2.0
  194063. .IP \(bu 2
  194064. 685b683db5 Merge pull request \fI\%#45801\fP from rallytime/merge\-2017.7
  194065. .IP \(bu 2
  194066. 26e992e011 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194067. .INDENT 2.0
  194068. .IP \(bu 2
  194069. 746386d04c Merge pull request \fI\%#45794\fP from vutny/doc\-file\-state\-examples
  194070. .INDENT 2.0
  194071. .IP \(bu 2
  194072. ddfeae6a29 [DOC] Fix code\-block rST directive in file state module
  194073. .UNINDENT
  194074. .IP \(bu 2
  194075. abc9ece214 Merge pull request \fI\%#45780\fP from vutny/doc\-pkgrepo\-zypper
  194076. .INDENT 2.0
  194077. .IP \(bu 2
  194078. f80c7d8d69 [DOC] Add missing gpgautoimport for pkgrepo.managed
  194079. .UNINDENT
  194080. .UNINDENT
  194081. .UNINDENT
  194082. .IP \(bu 2
  194083. \fBPR\fP \fI\%#45802\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194084. @ \fI2018\-01\-31 18:55:35 UTC\fP
  194085. .INDENT 2.0
  194086. .IP \(bu 2
  194087. c7d319f3bc Merge pull request \fI\%#45802\fP from rallytime/merge\-2017.7\-from\-2017.7.3
  194088. .IP \(bu 2
  194089. eb48513ba0 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194090. .UNINDENT
  194091. .IP \(bu 2
  194092. \fBISSUE\fP \fI\%#45738\fP: (\fI\%UtahCampusD\fP) minion cache overwritten for scheduled jobs (refs: \fI\%#45761\fP)
  194093. .IP \(bu 2
  194094. \fBPR\fP \fI\%#45761\fP: (\fI\%gtmanfred\fP) generate a jid for cache_jobs on the minion
  194095. @ \fI2018\-01\-31 18:01:53 UTC\fP
  194096. .INDENT 2.0
  194097. .IP \(bu 2
  194098. 96e9232cc2 Merge pull request \fI\%#45761\fP from gtmanfred/2017.7
  194099. .IP \(bu 2
  194100. 280767ed57 generate a jid for cache_jobs on the minion
  194101. .UNINDENT
  194102. .IP \(bu 2
  194103. \fBISSUE\fP \fI\%#45301\fP: (\fI\%twangboy\fP) Ctl+C causes stack trace on Windows (refs: \fI\%#45707\fP)
  194104. .IP \(bu 2
  194105. \fBPR\fP \fI\%#45707\fP: (\fI\%skizunov\fP) Fix exception when shutting down logging listener
  194106. @ \fI2018\-01\-30 13:28:10 UTC\fP
  194107. .INDENT 2.0
  194108. .IP \(bu 2
  194109. 38ed46a61a Merge pull request \fI\%#45707\fP from skizunov/develop2
  194110. .IP \(bu 2
  194111. e84801a381 Ensure we have at least one logging root handler
  194112. .IP \(bu 2
  194113. 3da9b8dd33 Fix exception when shutting down logging listener
  194114. .UNINDENT
  194115. .IP \(bu 2
  194116. \fBPR\fP \fI\%#45773\fP: (\fI\%terminalmage\fP) Fix misspellings
  194117. @ \fI2018\-01\-30 13:24:52 UTC\fP
  194118. .INDENT 2.0
  194119. .IP \(bu 2
  194120. 53008ffec7 Merge pull request \fI\%#45773\fP from terminalmage/fix\-misspelling
  194121. .IP \(bu 2
  194122. 0a45f998fe Fix misspellings
  194123. .UNINDENT
  194124. .IP \(bu 2
  194125. \fBISSUE\fP \fI\%#45489\fP: (\fI\%ipmb\fP) cache.grains runner returns all minions when match is not found (refs: \fI\%#45588\fP)
  194126. .IP \(bu 2
  194127. \fBPR\fP \fI\%#45751\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45588\fP to 2017.7
  194128. @ \fI2018\-01\-29 17:12:25 UTC\fP
  194129. .INDENT 2.0
  194130. .IP \(bu 2
  194131. \fBPR\fP \fI\%#45588\fP: (\fI\%samodid\fP) update MasterPillarUtil get_minion_grains method (refs: \fI\%#45751\fP)
  194132. .IP \(bu 2
  194133. 454ed23f62 Merge pull request \fI\%#45751\fP from rallytime/bp\-45588
  194134. .IP \(bu 2
  194135. aa149a0e7a fix typo
  194136. .IP \(bu 2
  194137. 3e794a043d fix copy\-paste error in get_minion_grains method doc string
  194138. .IP \(bu 2
  194139. 1fb94a08e0 update MasterPillarUtil
  194140. .UNINDENT
  194141. .IP \(bu 2
  194142. \fBPR\fP \fI\%#45753\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194143. @ \fI2018\-01\-29 17:11:11 UTC\fP
  194144. .INDENT 2.0
  194145. .IP \(bu 2
  194146. 860e21955c Merge pull request \fI\%#45753\fP from rallytime/merge\-2017.7
  194147. .IP \(bu 2
  194148. cb50cce181 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194149. .IP \(bu 2
  194150. d7e09e2649 Merge pull request \fI\%#45749\fP from vutny/fix\-typo
  194151. .INDENT 2.0
  194152. .IP \(bu 2
  194153. e80bfb20c6 The \fIzypper.mod_repo\fP: fix typo in the docstring
  194154. .UNINDENT
  194155. .IP \(bu 2
  194156. cb6ce378ea Merge pull request \fI\%#45459\fP from vutny/salt\-cloud\-fix\-loading\-utf\-cache
  194157. .INDENT 2.0
  194158. .IP \(bu 2
  194159. b370796e9d Salt Cloud: write/read cached data in UTF\-8 explicitly
  194160. .IP \(bu 2
  194161. cd999201be [2016.11] Salt Cloud: fix loading UTF\-8 cached data
  194162. .UNINDENT
  194163. .UNINDENT
  194164. .IP \(bu 2
  194165. \fBISSUE\fP \fI\%#40173\fP: (\fI\%gtmanfred\fP) Document the Open File limit issue better (refs: \fI\%#45688\fP)
  194166. .IP \(bu 2
  194167. \fBPR\fP \fI\%#45688\fP: (\fI\%bdrung\fP) Raise LimitNOFILE to default max open files
  194168. @ \fI2018\-01\-29 14:26:57 UTC\fP
  194169. .INDENT 2.0
  194170. .IP \(bu 2
  194171. 9fb4d4a528 Merge pull request \fI\%#45688\fP from bdrung/raise\-max\-open\-files
  194172. .IP \(bu 2
  194173. bbedeec756 Raise LimitNOFILE to default max open files
  194174. .UNINDENT
  194175. .IP \(bu 2
  194176. \fBPR\fP \fI\%#45686\fP: (\fI\%bdrung\fP) Use dbus\-run\-session instead of dbus\-launch
  194177. @ \fI2018\-01\-29 14:24:11 UTC\fP
  194178. .INDENT 2.0
  194179. .IP \(bu 2
  194180. 79da49ec8b Merge pull request \fI\%#45686\fP from bdrung/2017.7
  194181. .IP \(bu 2
  194182. f49d0a0eec Use dbus\-run\-session instead of dbus\-launch
  194183. .UNINDENT
  194184. .IP \(bu 2
  194185. \fBPR\fP \fI\%#45740\fP: (\fI\%terminalmage\fP) Fix incorrect attempt at version comparison.
  194186. @ \fI2018\-01\-29 14:12:05 UTC\fP
  194187. .INDENT 2.0
  194188. .IP \(bu 2
  194189. 7fb666bcd2 Merge pull request \fI\%#45740\fP from terminalmage/fix\-incorrect\-version\-comparison
  194190. .IP \(bu 2
  194191. 1e0b38dcaa Fix incorrect attempt at version comparison.
  194192. .UNINDENT
  194193. .IP \(bu 2
  194194. \fBPR\fP \fI\%#45747\fP: (\fI\%SteffenKockel\fP) Fix typos
  194195. @ \fI2018\-01\-29 13:53:27 UTC\fP
  194196. .INDENT 2.0
  194197. .IP \(bu 2
  194198. fe636f53f8 Merge pull request \fI\%#45747\fP from SteffenKockel/2017.7
  194199. .IP \(bu 2
  194200. 319b513183 Fix typos
  194201. .UNINDENT
  194202. .IP \(bu 2
  194203. \fBPR\fP \fI\%#45734\fP: (\fI\%terminalmage\fP) Fix traceback in CLI output when value is trimmed
  194204. @ \fI2018\-01\-28 13:35:56 UTC\fP
  194205. .INDENT 2.0
  194206. .IP \(bu 2
  194207. eb91ae8b6e Merge pull request \fI\%#45734\fP from terminalmage/fix\-trimmed\-output
  194208. .IP \(bu 2
  194209. 966ad07452 Fix traceback in CLI output when value is trimmed
  194210. .UNINDENT
  194211. .IP \(bu 2
  194212. \fBPR\fP \fI\%#45712\fP: (\fI\%bdrung\fP) Decode git call output in Python 3
  194213. @ \fI2018\-01\-28 02:03:21 UTC\fP
  194214. .INDENT 2.0
  194215. .IP \(bu 2
  194216. 7516bfbffe Merge pull request \fI\%#45712\fP from bdrung/fix\-version\-decode
  194217. .IP \(bu 2
  194218. 217183405a Decode git call output in Python 3
  194219. .UNINDENT
  194220. .IP \(bu 2
  194221. \fBISSUE\fP \fI\%#44449\fP: (\fI\%brianthelion\fP) salt\-ssh + salt\-cloud: cloud roster not working and/or \fIupdate_cachedir\fP is broken (refs: \fI\%#45720\fP)
  194222. .IP \(bu 2
  194223. \fBPR\fP \fI\%#45720\fP: (\fI\%dwoz\fP) Salt cloud adds newly created insances to cache
  194224. @ \fI2018\-01\-26 22:45:43 UTC\fP
  194225. .INDENT 2.0
  194226. .IP \(bu 2
  194227. 91b848debb Merge pull request \fI\%#45720\fP from dwoz/issue\-44449\-prod\-fix
  194228. .IP \(bu 2
  194229. 4a4bd6119d Salt cloud adds newly created insances to cache
  194230. .UNINDENT
  194231. .IP \(bu 2
  194232. \fBPR\fP \fI\%#45724\fP: (\fI\%eliasp\fP) Typo (\fIHellium\fP → \fIHelium\fP)
  194233. @ \fI2018\-01\-26 22:37:44 UTC\fP
  194234. .INDENT 2.0
  194235. .IP \(bu 2
  194236. 831698f066 Merge pull request \fI\%#45724\fP from eliasp/2017.7\-typo\-from\-hell
  194237. .IP \(bu 2
  194238. bec78276f3 Replace left\-over mistyped codename reference (\fIHellium\fP → \fI2014.7.0\fP)
  194239. .UNINDENT
  194240. .IP \(bu 2
  194241. \fBPR\fP \fI\%#45722\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194242. @ \fI2018\-01\-26 22:15:40 UTC\fP
  194243. .INDENT 2.0
  194244. .IP \(bu 2
  194245. cdb21a0186 Merge pull request \fI\%#45722\fP from rallytime/merge\-2017.7
  194246. .IP \(bu 2
  194247. 8e3a2e25fe Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194248. .IP \(bu 2
  194249. e4047a1234 Merge pull request \fI\%#45511\fP from twangboy/win_fix_git
  194250. .INDENT 2.0
  194251. .IP \(bu 2
  194252. 160dd7c6ce Pull the first item in the list
  194253. .IP \(bu 2
  194254. 52d6d78150 Only keep ssh.py in the Windows installer
  194255. .IP \(bu 2
  194256. 54eb0db2c4 Keep ssh state and execution modules in the installer
  194257. .IP \(bu 2
  194258. 0fa801a329 Add additional path to find ssh.exe
  194259. .UNINDENT
  194260. .IP \(bu 2
  194261. a550e8d25d Merge pull request \fI\%#45694\fP from twangboy/win_reg_add_keys
  194262. .INDENT 2.0
  194263. .IP \(bu 2
  194264. 8f53cd2d68 Add new keys to subkey_slash_check
  194265. .IP \(bu 2
  194266. 62050c711c Add support for additional reg keys
  194267. .UNINDENT
  194268. .IP \(bu 2
  194269. 7ceebf62f0 Merge pull request \fI\%#45577\fP from zer0def/fix\-git\-detached\-31363
  194270. .INDENT 2.0
  194271. .IP \(bu 2
  194272. a924b971ef Applied PR \fI\%#40524\fP to \fIgit.detached\fP state module function. (refs \fI\%#31363\fP)
  194273. .UNINDENT
  194274. .UNINDENT
  194275. .IP \(bu 2
  194276. \fBPR\fP \fI\%#45718\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194277. @ \fI2018\-01\-26 16:49:44 UTC\fP
  194278. .INDENT 2.0
  194279. .IP \(bu 2
  194280. 3a413e96c5 Merge pull request \fI\%#45718\fP from rallytime/merge\-2017.7
  194281. .IP \(bu 2
  194282. f10c7ee92d Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194283. .UNINDENT
  194284. .IP \(bu 2
  194285. \fBPR\fP \fI\%#45690\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194286. @ \fI2018\-01\-26 14:41:44 UTC\fP
  194287. .INDENT 2.0
  194288. .IP \(bu 2
  194289. d0955519cf Merge pull request \fI\%#45690\fP from rallytime/merge\-2017.7
  194290. .IP \(bu 2
  194291. d4dac9f7cc Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194292. .INDENT 2.0
  194293. .IP \(bu 2
  194294. 3a6837e232 Merge pull request \fI\%#45675\fP from Ch3LL/rn_2016.11.9
  194295. .INDENT 2.0
  194296. .IP \(bu 2
  194297. 7b5bed36d9 Add new commits to 2016.11.9 release notes
  194298. .UNINDENT
  194299. .IP \(bu 2
  194300. 915e259bad Merge pull request \fI\%#45663\fP from rallytime/bp\-45452\-2016.11
  194301. .INDENT 2.0
  194302. .IP \(bu 2
  194303. ae94fb61d9 opkg.py: make owner function return value, instead of iterator
  194304. .UNINDENT
  194305. .IP \(bu 2
  194306. ecd75c137f Merge pull request \fI\%#45651\fP from rallytime/merge\-2016.11
  194307. .INDENT 2.0
  194308. .IP \(bu 2
  194309. 1583e1edbe Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194310. .IP \(bu 2
  194311. 10812969f0 Merge pull request \fI\%#45638\fP from twangboy/win_fix_shell_info
  194312. .INDENT 2.0
  194313. .IP \(bu 2
  194314. 872da3ffba Only convert text types in the list_values function
  194315. .IP \(bu 2
  194316. 0e41535cdb Fix reg.py to only convert text types to unicode
  194317. .IP \(bu 2
  194318. 3579534ea5 Fix issue with detecting powershell
  194319. .UNINDENT
  194320. .IP \(bu 2
  194321. 2d1dd1186e Merge pull request \fI\%#45564\fP from Ch3LL/r\-notes\-2016
  194322. .IP \(bu 2
  194323. 28e4398150 Merge pull request \fI\%#45563\fP from Ch3LL/man_2016
  194324. .UNINDENT
  194325. .IP \(bu 2
  194326. 22bcd3d110 Merge pull request \fI\%#45600\fP from vutny/doc\-fix\-references
  194327. .INDENT 2.0
  194328. .IP \(bu 2
  194329. 35675fe6b3 [DOC] Fix references on Salt Formulas page
  194330. .UNINDENT
  194331. .IP \(bu 2
  194332. 0d622f92a9 Merge pull request \fI\%#45542\fP from UtahDave/doc_mixed_transports
  194333. .INDENT 2.0
  194334. .IP \(bu 2
  194335. b5b5054ec2 capitalize masters and minions
  194336. .IP \(bu 2
  194337. f542bdf566 Add warning about using mixed transports
  194338. .UNINDENT
  194339. .IP \(bu 2
  194340. c70b9dc20b Merge pull request \fI\%#45565\fP from Ch3LL/r\-notes\-2016
  194341. .INDENT 2.0
  194342. .IP \(bu 2
  194343. 325f4cbcda Add PR changes to 2016.11.9 Release Notes
  194344. .UNINDENT
  194345. .IP \(bu 2
  194346. d8526062c1 Merge pull request \fI\%#45562\fP from Ch3LL/man_2016
  194347. .INDENT 2.0
  194348. .IP \(bu 2
  194349. 529bc0c680 update release number for salt\-call man page 2016.11.9
  194350. .IP \(bu 2
  194351. 11b7222148 Update man pages for 2016.11.9
  194352. .UNINDENT
  194353. .UNINDENT
  194354. .UNINDENT
  194355. .IP \(bu 2
  194356. \fBPR\fP \fI\%#45710\fP: (\fI\%michelsen\fP) Added source argument to function call
  194357. @ \fI2018\-01\-26 14:30:48 UTC\fP
  194358. .INDENT 2.0
  194359. .IP \(bu 2
  194360. 9c92e93834 Merge pull request \fI\%#45710\fP from michelsen/fix\-chocolatey\-state\-bug
  194361. .IP \(bu 2
  194362. 8accc0ce5c Added source argument to function call
  194363. .UNINDENT
  194364. .IP \(bu 2
  194365. \fBPR\fP \fI\%#45667\fP: (\fI\%gtmanfred\fP) default to upgrading when refreshing on archlinux
  194366. @ \fI2018\-01\-25 14:05:24 UTC\fP
  194367. .INDENT 2.0
  194368. .IP \(bu 2
  194369. 693f72d5a7 Merge pull request \fI\%#45667\fP from gtmanfred/syu
  194370. .IP \(bu 2
  194371. 44c601102a we should default to upgrading when refreshing on archlinux
  194372. .UNINDENT
  194373. .IP \(bu 2
  194374. \fBPR\fP \fI\%#45674\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194375. @ \fI2018\-01\-24 22:46:31 UTC\fP
  194376. .INDENT 2.0
  194377. .IP \(bu 2
  194378. bec946b080 Merge pull request \fI\%#45674\fP from rallytime/merge\-2017.7
  194379. .IP \(bu 2
  194380. 9f78e53d4b Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194381. .UNINDENT
  194382. .IP \(bu 2
  194383. \fBISSUE\fP \fI\%#45590\fP: (\fI\%viq\fP) webhook engine does not work with tornado 4.5.2 (refs: \fI\%#45589\fP)
  194384. .IP \(bu 2
  194385. \fBPR\fP \fI\%#45589\fP: (\fI\%gtmanfred\fP) change webhook headers to dict
  194386. @ \fI2018\-01\-24 22:32:37 UTC\fP
  194387. .INDENT 2.0
  194388. .IP \(bu 2
  194389. 50de847191 Merge pull request \fI\%#45589\fP from gtmanfred/2017.7
  194390. .IP \(bu 2
  194391. 395d6f5c91 change webhook headers to dict
  194392. .UNINDENT
  194393. .IP \(bu 2
  194394. \fBISSUE\fP \fI\%#45072\fP: (\fI\%vernondcole\fP) cannot build documentation on Ubuntu 17.10 (refs: \fI\%#45662\fP)
  194395. .IP \(bu 2
  194396. \fBPR\fP \fI\%#45662\fP: (\fI\%bdrung\fP) Fix documentation generation
  194397. @ \fI2018\-01\-24 17:14:22 UTC\fP
  194398. .INDENT 2.0
  194399. .IP \(bu 2
  194400. e21088c1a4 Merge pull request \fI\%#45662\fP from bdrung/2017.7
  194401. .IP \(bu 2
  194402. 71076afbcc doc: Define fake version for msgpack and psutil
  194403. .IP \(bu 2
  194404. b6a5b745b1 doc: Mock keyring module import
  194405. .UNINDENT
  194406. .IP \(bu 2
  194407. \fBPR\fP \fI\%#45650\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45555\fP to 2017.7
  194408. @ \fI2018\-01\-24 14:47:54 UTC\fP
  194409. .INDENT 2.0
  194410. .IP \(bu 2
  194411. \fBPR\fP \fI\%#45555\fP: (\fI\%ddoh94\fP) update winrepo_source_dir document (refs: \fI\%#45650\fP)
  194412. .IP \(bu 2
  194413. da82f190d2 Merge pull request \fI\%#45650\fP from rallytime/bp\-45555
  194414. .IP \(bu 2
  194415. e474d0416b update winrepo_source_dir document
  194416. .UNINDENT
  194417. .IP \(bu 2
  194418. \fBPR\fP \fI\%#45611\fP: (\fI\%terminalmage\fP) Fix unnecessary/incorrect usage of six.binary_type
  194419. @ \fI2018\-01\-23 22:53:20 UTC\fP
  194420. .INDENT 2.0
  194421. .IP \(bu 2
  194422. 79ee24c0c7 Merge pull request \fI\%#45611\fP from terminalmage/tests\-log\-level
  194423. .IP \(bu 2
  194424. 6aa865cf54 Fix unnecessary/incorrect usage of six.binary_type
  194425. .UNINDENT
  194426. .IP \(bu 2
  194427. \fBPR\fP \fI\%#45652\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194428. @ \fI2018\-01\-23 22:45:22 UTC\fP
  194429. .INDENT 2.0
  194430. .IP \(bu 2
  194431. 634d8dbcc0 Merge pull request \fI\%#45652\fP from rallytime/merge\-2017.7
  194432. .IP \(bu 2
  194433. 4e907dc84b Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194434. .UNINDENT
  194435. .IP \(bu 2
  194436. \fBISSUE\fP \fI\%#45627\fP: (\fI\%bdrung\fP) Failing unit tests in Debian package build (refs: \fI\%#45630\fP)
  194437. .IP \(bu 2
  194438. \fBPR\fP \fI\%#45630\fP: (\fI\%bdrung\fP) Fix tests
  194439. @ \fI2018\-01\-23 21:56:46 UTC\fP
  194440. .INDENT 2.0
  194441. .IP \(bu 2
  194442. dbdef8230e Merge pull request \fI\%#45630\fP from bdrung/2017.7
  194443. .IP \(bu 2
  194444. 76d44e9490 Fix skipping test when boto is not installed
  194445. .IP \(bu 2
  194446. 2b9b262357 Fix unit.modules.test_cmdmod.CMDMODTestCase.test_run
  194447. .UNINDENT
  194448. .IP \(bu 2
  194449. \fBPR\fP \fI\%#45619\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing test_mac_user_enable_auto_login
  194450. @ \fI2018\-01\-23 21:56:03 UTC\fP
  194451. .INDENT 2.0
  194452. .IP \(bu 2
  194453. e5c9cd91e8 Merge pull request \fI\%#45619\fP from garethgreenaway/2017_7_test_mac_user_enable_auto_login
  194454. .IP \(bu 2
  194455. f5f03e1e6c Fixing integration.modules.test_mac_user.MacUserModuleTest.test_mac_user_disable_auto_login
  194456. .UNINDENT
  194457. .IP \(bu 2
  194458. \fBPR\fP \fI\%#45644\fP: (\fI\%twangboy\fP) Add missing space to deprecation warning
  194459. @ \fI2018\-01\-23 21:55:11 UTC\fP
  194460. .INDENT 2.0
  194461. .IP \(bu 2
  194462. 8a95fc4257 Merge pull request \fI\%#45644\fP from twangboy/win_fix_dep_warns
  194463. .IP \(bu 2
  194464. de9bc384cc Add missing space to deprecation warning
  194465. .UNINDENT
  194466. .IP \(bu 2
  194467. \fBPR\fP \fI\%#45634\fP: (\fI\%Ch3LL\fP) Add different service name for Mac 10.13 test
  194468. @ \fI2018\-01\-23 21:51:56 UTC\fP
  194469. .INDENT 2.0
  194470. .IP \(bu 2
  194471. c290b6320b Merge pull request \fI\%#45634\fP from Ch3LL/mac\-service
  194472. .IP \(bu 2
  194473. 31b712e27d Add different service name for Mac 10.13 test
  194474. .UNINDENT
  194475. .IP \(bu 2
  194476. \fBPR\fP \fI\%#45606\fP: (\fI\%terminalmage\fP) Fix bug affecting salt\-ssh when root_dir differs from the default
  194477. @ \fI2018\-01\-23 20:03:49 UTC\fP
  194478. .INDENT 2.0
  194479. .IP \(bu 2
  194480. c28151f5f7 Merge pull request \fI\%#45606\fP from terminalmage/salt\-ssh\-root\-dir\-fix
  194481. .IP \(bu 2
  194482. 3f9309521b Fix bug affecting salt\-ssh when root_dir differs from the default
  194483. .UNINDENT
  194484. .IP \(bu 2
  194485. \fBPR\fP \fI\%#45636\fP: (\fI\%Ch3LL\fP) Fix mac service and pkg tests for 10.13
  194486. @ \fI2018\-01\-23 18:44:56 UTC\fP
  194487. .INDENT 2.0
  194488. .IP \(bu 2
  194489. 0931b6417d Merge pull request \fI\%#45636\fP from Ch3LL/mac\-tests
  194490. .UNINDENT
  194491. .IP \(bu 2
  194492. \fBPR\fP \fI\%#45609\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194493. @ \fI2018\-01\-22 20:24:36 UTC\fP
  194494. .INDENT 2.0
  194495. .IP \(bu 2
  194496. 63a294f498 Merge pull request \fI\%#45609\fP from rallytime/merge\-2017.7
  194497. .IP \(bu 2
  194498. a5fc3b3363 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194499. .UNINDENT
  194500. .IP \(bu 2
  194501. \fBISSUE\fP \fI\%#45431\fP: (\fI\%zer0def\fP) boto3_route53.hosted_zone_present state can fail due to related execution module function\(aqs typo (refs: \fI\%#45576\fP)
  194502. .IP \(bu 2
  194503. \fBPR\fP \fI\%#45576\fP: (\fI\%zer0def\fP) Fixed boto3_route53 execution module function signature \fIdiSassociate_vpc_from_hosted_zone\fP typo. (refs \fI\%#45431\fP)
  194504. @ \fI2018\-01\-22 19:37:13 UTC\fP
  194505. .INDENT 2.0
  194506. .IP \(bu 2
  194507. 59329957ca Merge pull request \fI\%#45576\fP from zer0def/boto3\-route53\-typo
  194508. .IP \(bu 2
  194509. 21e1e9e226 Fixed boto3_route53 execution module function signature \fIdiSassociate_vpc_from_hosted_zone\fP typo. (refs \fI\%#45431\fP)
  194510. .UNINDENT
  194511. .IP \(bu 2
  194512. \fBPR\fP \fI\%#45552\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.3 to 2017.7
  194513. @ \fI2018\-01\-19 19:12:49 UTC\fP
  194514. .INDENT 2.0
  194515. .IP \(bu 2
  194516. 42b0d27f71 Merge pull request \fI\%#45552\fP from rallytime/merge\-2017.7\-from\-.3
  194517. .IP \(bu 2
  194518. dba7410b80 Merge branch \(aq2017.7.3\(aq into \(aq2017.7\(aq
  194519. .UNINDENT
  194520. .IP \(bu 2
  194521. \fBPR\fP \fI\%#45551\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194522. @ \fI2018\-01\-19 18:21:27 UTC\fP
  194523. .INDENT 2.0
  194524. .IP \(bu 2
  194525. 879cfcb889 Merge pull request \fI\%#45551\fP from rallytime/merge\-2017.7
  194526. .IP \(bu 2
  194527. e0ffa32b49 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194528. .IP \(bu 2
  194529. 18e814a7bb Merge pull request \fI\%#45540\fP from rallytime/merge\-2016.11
  194530. .INDENT 2.0
  194531. .IP \(bu 2
  194532. 441f819b7b Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194533. .IP \(bu 2
  194534. 654df0f526 Merge pull request \fI\%#45532\fP from gtmanfred/2016.11.9
  194535. .INDENT 2.0
  194536. .IP \(bu 2
  194537. 6c26025664 fix mock for opensuse
  194538. .UNINDENT
  194539. .UNINDENT
  194540. .IP \(bu 2
  194541. 4f3b9b57fa Merge pull request \fI\%#45522\fP from rallytime/merge\-2016.11
  194542. .INDENT 2.0
  194543. .IP \(bu 2
  194544. 36c038c92a Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194545. .IP \(bu 2
  194546. 571c33aa39 Merge pull request \fI\%#45518\fP from gtmanfred/2016.11.9
  194547. .INDENT 2.0
  194548. .IP \(bu 2
  194549. 5455d2dee6 fix centos 6 pip test
  194550. .IP \(bu 2
  194551. 40255194b0 fix fedora pkg test
  194552. .UNINDENT
  194553. .UNINDENT
  194554. .IP \(bu 2
  194555. 0638638fb9 Merge pull request \fI\%#45504\fP from rallytime/merge\-2016.11
  194556. .INDENT 2.0
  194557. .IP \(bu 2
  194558. d72fc74e8c Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194559. .INDENT 2.0
  194560. .IP \(bu 2
  194561. 4e0a0eec1f Merge pull request \fI\%#45443\fP from rallytime/bp\-45399\-2016.11.9
  194562. .INDENT 2.0
  194563. .IP \(bu 2
  194564. 919e92c911 Fix git.latest failure when rev is not the default branch
  194565. .UNINDENT
  194566. .IP \(bu 2
  194567. ebd4db66b8 Merge pull request \fI\%#45493\fP from damon\-atkins/2016.11_fix_sls_defintion_wrong_type
  194568. .INDENT 2.0
  194569. .IP \(bu 2
  194570. af108440df win_pkg lint space after ,
  194571. .IP \(bu 2
  194572. c6e922a236 win_pkg lint issues
  194573. .IP \(bu 2
  194574. f4627d7a80 fix quote i.e. change \(ga to \(aq
  194575. .IP \(bu 2
  194576. 6938a4c099 pkg.refresh_db report an issue if a sls pkg definition id not a dict instead of aborting.
  194577. .UNINDENT
  194578. .UNINDENT
  194579. .UNINDENT
  194580. .IP \(bu 2
  194581. 5a2a31bfff Merge pull request \fI\%#45495\fP from vutny/doc\-rhel\-pygit2\-compat
  194582. .INDENT 2.0
  194583. .IP \(bu 2
  194584. 0d79b9eaff [DOC] Suggest to upgrade pygit2 and deps
  194585. .UNINDENT
  194586. .IP \(bu 2
  194587. 9c4fb42e5f Merge pull request \fI\%#45481\fP from twangboy/fix_aptpkg
  194588. .INDENT 2.0
  194589. .IP \(bu 2
  194590. fd67b086b4 Fix if statement in __init__()
  194591. .UNINDENT
  194592. .UNINDENT
  194593. .IP \(bu 2
  194594. \fBISSUE\fP \fI\%#42626\fP: (\fI\%UtahDave\fP) new args and kwargs options for publisher_acl are not documented at all and very little for external_auth (refs: \fI\%#45389\fP)
  194595. .IP \(bu 2
  194596. \fBPR\fP \fI\%#45389\fP: (\fI\%DmitryKuzmenko\fP) Docs update for function args limit in pub acl.
  194597. @ \fI2018\-01\-18 22:56:10 UTC\fP
  194598. .INDENT 2.0
  194599. .IP \(bu 2
  194600. 28554ca935 Merge pull request \fI\%#45389\fP from DSRCorporation/bugs/42626_pub_acl_doc
  194601. .IP \(bu 2
  194602. f33ebcada0 Doc note about user names regex matching in pub acl and eauth.
  194603. .IP \(bu 2
  194604. e29c0ff19e Docs update for function args limit in pub acl.
  194605. .UNINDENT
  194606. .IP \(bu 2
  194607. \fBPR\fP \fI\%#45483\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  194608. @ \fI2018\-01\-18 22:54:12 UTC\fP
  194609. .INDENT 2.0
  194610. .IP \(bu 2
  194611. b3dc758ab0 Merge pull request \fI\%#45483\fP from rallytime/merge\-2017.7
  194612. .IP \(bu 2
  194613. de6d85959a Lint fix
  194614. .IP \(bu 2
  194615. 9f547a31f0 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  194616. .INDENT 2.0
  194617. .IP \(bu 2
  194618. b756760415 Merge pull request \fI\%#45482\fP from rallytime/merge\-2016.11
  194619. .INDENT 2.0
  194620. .IP \(bu 2
  194621. 3b38c77159 Merge branch \(aq2016.11.9\(aq into \(aq2016.11\(aq
  194622. .IP \(bu 2
  194623. 7322efba92 Merge pull request \fI\%#45446\fP from rallytime/bp\-45390
  194624. .UNINDENT
  194625. .IP \(bu 2
  194626. 96ae237d37 Merge pull request \fI\%#45448\fP from rallytime/merge\-2016.11.9
  194627. .INDENT 2.0
  194628. .IP \(bu 2
  194629. 646379d981 Merge branch \(aq2016.11\(aq into \(aq2016.11.9\(aq
  194630. .UNINDENT
  194631. .IP \(bu 2
  194632. 1ed323a3ee Merge pull request \fI\%#45437\fP from terminalmage/fix\-docstring
  194633. .INDENT 2.0
  194634. .IP \(bu 2
  194635. c11b16dc29 Fix incorrect wording in jboss7 docstrings
  194636. .UNINDENT
  194637. .IP \(bu 2
  194638. 600fa3939f Merge pull request \fI\%#45390\fP from damon\-atkins/2016.11_win_pkg_remove_final_fixes
  194639. .INDENT 2.0
  194640. .IP \(bu 2
  194641. 69f045ea24 lint too\-many\-blank\-lines
  194642. .IP \(bu 2
  194643. 10a7501ede Update release notes
  194644. .IP \(bu 2
  194645. 6f2affe01c fix pkg.remove, pkg.list_pkgs
  194646. .UNINDENT
  194647. .IP \(bu 2
  194648. 057df44a4a Merge pull request \fI\%#45399\fP from terminalmage/fix\-git.latest\-depth
  194649. .IP \(bu 2
  194650. 0cbc6767bf Fix git.latest failure when rev is not the default branch
  194651. .IP \(bu 2
  194652. b0ece9f4d4 Merge pull request \fI\%#45424\fP from twangboy/win_reg
  194653. .IP \(bu 2
  194654. 30f06205f7 Fix some issues with reg.py
  194655. .UNINDENT
  194656. .UNINDENT
  194657. .IP \(bu 2
  194658. \fBPR\fP \fI\%#45529\fP: (\fI\%Ch3LL\fP) Fix UnboundLocalError for pacman pkg installs
  194659. @ \fI2018\-01\-18 19:01:49 UTC\fP
  194660. .INDENT 2.0
  194661. .IP \(bu 2
  194662. 5e26282843 Merge pull request \fI\%#45529\fP from Ch3LL/pacman\-sources
  194663. .IP \(bu 2
  194664. e619d49ef3 Fix UnboundLocalError for pacman pkg installs
  194665. .UNINDENT
  194666. .IP \(bu 2
  194667. \fBPR\fP \fI\%#45508\fP: (\fI\%frogunder\fP) fix test_archive test for mac on 2017.7 branch
  194668. @ \fI2018\-01\-18 16:04:36 UTC\fP
  194669. .INDENT 2.0
  194670. .IP \(bu 2
  194671. 840c97417d Merge pull request \fI\%#45508\fP from frogunder/fix_mac_archive_tests_2017.7_branch
  194672. .IP \(bu 2
  194673. ccf062d62e fix test_archive test for mac on 2017.7 branch
  194674. .UNINDENT
  194675. .IP \(bu 2
  194676. \fBPR\fP \fI\%#45444\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45343\fP to 2017.7
  194677. @ \fI2018\-01\-17 17:17:59 UTC\fP
  194678. .INDENT 2.0
  194679. .IP \(bu 2
  194680. \fBPR\fP \fI\%#45343\fP: (\fI\%rrroo\fP) Support expr_form for manage.up, manage.down (refs: \fI\%#45444\fP)
  194681. .IP \(bu 2
  194682. e1403b6813 Merge pull request \fI\%#45444\fP from rallytime/bp\-45343
  194683. .IP \(bu 2
  194684. c7d2081390 Support expr_form for manage.up, manage.down
  194685. .UNINDENT
  194686. .IP \(bu 2
  194687. \fBPR\fP \fI\%#45465\fP: (\fI\%terminalmage\fP) Backport \fI\%#45095\fP to 2017.7 branch
  194688. @ \fI2018\-01\-17 15:13:05 UTC\fP
  194689. .INDENT 2.0
  194690. .IP \(bu 2
  194691. \fBPR\fP \fI\%#45095\fP: (\fI\%terminalmage\fP) PY3: Make loader ignore .pyc files not in __pycache__ (refs: \fI\%#45465\fP)
  194692. .IP \(bu 2
  194693. 4b2c88e2e6 Merge pull request \fI\%#45465\fP from terminalmage/bp\-45095
  194694. .IP \(bu 2
  194695. 2f63a6dbf4 Optimization: don\(aqt allocate a new list to concatenate
  194696. .IP \(bu 2
  194697. 5074741130 EAFP
  194698. .IP \(bu 2
  194699. 85dbdc6a39 PY3: Make loader ignore .pyc files not in __pycache__
  194700. .UNINDENT
  194701. .IP \(bu 2
  194702. \fBPR\fP \fI\%#45365\fP: (\fI\%meaksh\fP) Return an error when "gid_from_name" is set but group does not exist
  194703. @ \fI2018\-01\-16 18:31:50 UTC\fP
  194704. .INDENT 2.0
  194705. .IP \(bu 2
  194706. 5f58a87e84 Merge pull request \fI\%#45365\fP from meaksh/2017.7\-issue\-45345
  194707. .IP \(bu 2
  194708. da23067f80 Refactor to prevent logical bug when gid is 0
  194709. .IP \(bu 2
  194710. 9fdaa0d5e9 Update documentation for \(aqgid_from_name\(aq parameter
  194711. .IP \(bu 2
  194712. 52f9c06908 Fix integration tests for \(aquser.present\(aq state.
  194713. .IP \(bu 2
  194714. e2c32dc6dc Make pylint happy
  194715. .IP \(bu 2
  194716. a18dbe0c11 Return error when gid_from_name and group does not exist.
  194717. .IP \(bu 2
  194718. ce7b1f4baf Ensure empty string gid is set to None
  194719. .UNINDENT
  194720. .IP \(bu 2
  194721. \fBISSUE\fP \fI\%#43535\fP: (\fI\%Ch3LL\fP) Add pkg.latest_version Test to Auto Test Suite (refs: \fI\%#44822\fP)
  194722. .IP \(bu 2
  194723. \fBPR\fP \fI\%#44822\fP: (\fI\%frogunder\fP) add pkg_latest_version test
  194724. @ \fI2018\-01\-16 14:16:54 UTC\fP
  194725. .INDENT 2.0
  194726. .IP \(bu 2
  194727. de080983e3 Merge pull request \fI\%#44822\fP from frogunder/pkg_latestversion
  194728. .IP \(bu 2
  194729. 08644e02a0 skip if mac
  194730. .IP \(bu 2
  194731. dfb68f32d2 fix if statements and string
  194732. .IP \(bu 2
  194733. 3504083849 add pkg_latest_version test
  194734. .UNINDENT
  194735. .IP \(bu 2
  194736. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#603\fP: (\fI\%rallytime\fP) [oxygen] CentOS 7 is failing several boto tests with module import failures (refs: \fI\%#45401\fP)
  194737. .IP \(bu 2
  194738. \fBPR\fP \fI\%#45435\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45401\fP to 2017.7
  194739. @ \fI2018\-01\-14 12:43:48 UTC\fP
  194740. .INDENT 2.0
  194741. .IP \(bu 2
  194742. \fBPR\fP \fI\%#45401\fP: (\fI\%gtmanfred\fP) fix boto import failures (refs: \fI\%#45435\fP)
  194743. .IP \(bu 2
  194744. cb3e0cffb3 Merge pull request \fI\%#45435\fP from rallytime/bp\-45401
  194745. .IP \(bu 2
  194746. b9761971c2 fix moto version
  194747. .IP \(bu 2
  194748. 0cd95d1cc6 fix test boto imports
  194749. .UNINDENT
  194750. .IP \(bu 2
  194751. \fBPR\fP \fI\%#45380\fP: (\fI\%twangboy\fP) Backport changes from \fI\%#45308\fP
  194752. @ \fI2018\-01\-11 19:45:21 UTC\fP
  194753. .INDENT 2.0
  194754. .IP \(bu 2
  194755. \fBPR\fP \fI\%#45308\fP: (\fI\%twangboy\fP) Fix \fIintegration.modules.test_state\fP for Windows (refs: \fI\%#45380\fP)
  194756. .IP \(bu 2
  194757. 2340f0b487 Merge pull request \fI\%#45380\fP from twangboy/backport_45308
  194758. .IP \(bu 2
  194759. 419be8a9b5 Backport changes from \fI\%#45308\fP
  194760. .UNINDENT
  194761. .UNINDENT
  194762. .SS Salt 2017.7.6 Release Notes
  194763. .sp
  194764. Version 2017.7.6 is a bugfix release for 2017.7.0\&.
  194765. .SS Statistics
  194766. .INDENT 0.0
  194767. .IP \(bu 2
  194768. Total Merges: \fB182\fP
  194769. .IP \(bu 2
  194770. Total Issue References: \fB60\fP
  194771. .IP \(bu 2
  194772. Total PR References: \fB217\fP
  194773. .IP \(bu 2
  194774. Contributors: \fB47\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%GwiYeong\fP, \fI\%Quarky9\fP, \fI\%RichardW42\fP, \fI\%UtahDave\fP, \fI\%amaclean199\fP, \fI\%arif\-ali\fP, \fI\%baniobloom\fP, \fI\%bdrung\fP, \fI\%benediktwerner\fP, \fI\%bmiguel\-teixeira\fP, \fI\%cachedout\fP, \fI\%dafenko\fP, \fI\%damon\-atkins\fP, \fI\%dwoz\fP, \fI\%ezh\fP, \fI\%folti\fP, \fI\%fpicot\fP, \fI\%frogunder\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jeroennijhof\fP, \fI\%jfindlay\fP, \fI\%jfoboss\fP, \fI\%kstreee\fP, \fI\%lomeroe\fP, \fI\%mattp\-\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%myinitialsarepm\fP, \fI\%mzbroch\fP, \fI\%nages13\fP, \fI\%paclat\fP, \fI\%pcjeff\fP, \fI\%pruiz\fP, \fI\%psyer\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%skizunov\fP, \fI\%smitty42\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%yagnik\fP, \fI\%yannj\-fr\fP)
  194775. .UNINDENT
  194776. .SS Tornado 5.0 Support for Python 2 Only
  194777. .sp
  194778. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  194779. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  194780. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  194781. versions of salt has been delayed to a later release.
  194782. .sp
  194783. For now, to use tornado 5.0, the python 2 version of salt must be used.
  194784. .SS Tornado 5.0 Support for Python 2 Only
  194785. .sp
  194786. Tornado 5.0 moves to using asyncio for all python3 versions. Because of this
  194787. and changes in asyncio between python 3.4 and 3.5 to only be able to use one
  194788. ioloop, which requires some rearchitecting, support for tornado 5.0 and python3
  194789. versions of salt has been delayed to a later release.
  194790. .sp
  194791. For now, to use tornado 5.0, the python 2 version of salt must be used.
  194792. .SS Option to Return to Previous Pillar Include Behavior
  194793. .sp
  194794. Prior to version 2017.7.3, keys from pillar includes
  194795. would be merged on top of the pillar SLS. Since 2017.7.3, the includes are
  194796. merged together and then the pillar SLS is merged on top of that.
  194797. .sp
  194798. The \fBpillar_includes_override_sls\fP option has been added allow
  194799. users to switch back to the pre\-2017.7.3 behavior.
  194800. .SS Changelog for v2017.7.5..v2017.7.6
  194801. .sp
  194802. \fIGenerated at: 2018\-05\-29 14:05:53 UTC\fP
  194803. .INDENT 0.0
  194804. .IP \(bu 2
  194805. \fBPR\fP \fI\%#47775\fP: (\fI\%gtmanfred\fP) catch UnsupportedOperation with AssertionError
  194806. @ \fI2018\-05\-22 19:04:13 UTC\fP
  194807. .INDENT 2.0
  194808. .IP \(bu 2
  194809. edf94c915e Merge pull request \fI\%#47775\fP from gtmanfred/2017.7.6
  194810. .IP \(bu 2
  194811. 548f65d056 catch UnsupportedOperation with AssertionError
  194812. .UNINDENT
  194813. .IP \(bu 2
  194814. \fBPR\fP \fI\%#47769\fP: (\fI\%gtmanfred\fP) skip test that breaks test suite
  194815. @ \fI2018\-05\-22 15:12:54 UTC\fP
  194816. .INDENT 2.0
  194817. .IP \(bu 2
  194818. 8c38ecd75f Merge pull request \fI\%#47769\fP from gtmanfred/2017.7.6
  194819. .IP \(bu 2
  194820. 3fdfc0fa82 skip test that breaks test suite
  194821. .UNINDENT
  194822. .IP \(bu 2
  194823. \fBPR\fP \fI\%#47747\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.6 release notes
  194824. @ \fI2018\-05\-21 14:25:00 UTC\fP
  194825. .INDENT 2.0
  194826. .IP \(bu 2
  194827. 0d5b473ce2 Merge pull request \fI\%#47747\fP from Ch3LL/rn_2017.7.6
  194828. .IP \(bu 2
  194829. d4aa83b92d Add changelog to 2017.7.6 release notes
  194830. .UNINDENT
  194831. .IP \(bu 2
  194832. \fBISSUE\fP \fI\%#47484\fP: (\fI\%whytewolf\fP) Windows: pkg.latest state not updating packages. (refs: \fI\%#47702\fP)
  194833. .IP \(bu 2
  194834. \fBPR\fP \fI\%#47702\fP: (\fI\%damon\-atkins\fP) State pkg.latest called win pkg.install with list of pkgs and the required versions
  194835. @ \fI2018\-05\-19 11:21:23 UTC\fP
  194836. .INDENT 2.0
  194837. .IP \(bu 2
  194838. 8a5b34f7d9 Merge pull request \fI\%#47702\fP from damon\-atkins/2017.7.6_fix_pkg.latest_state
  194839. .IP \(bu 2
  194840. adcc094e08 Merge branch \(aq2017.7.6\(aq into 2017.7.6_fix_pkg.latest_state
  194841. .UNINDENT
  194842. .IP \(bu 2
  194843. \fBPR\fP \fI\%#47700\fP: (\fI\%yannj\-fr\fP) fix roots modification time check
  194844. @ \fI2018\-05\-18 18:42:17 UTC\fP
  194845. .INDENT 2.0
  194846. .IP \(bu 2
  194847. d610c192d9 Merge pull request \fI\%#47700\fP from yannj\-fr/2017.7.6
  194848. .IP \(bu 2
  194849. 961c1ef61e fix roots modification time check
  194850. .INDENT 2.0
  194851. .IP \(bu 2
  194852. 2a73e905df Merge branch \(aq2017.7.6\(aq into 2017.7.6
  194853. .UNINDENT
  194854. .UNINDENT
  194855. .IP \(bu 2
  194856. \fBPR\fP \fI\%#47632\fP: (\fI\%gtmanfred\fP) handle new _create_stream in tornado 5.0
  194857. @ \fI2018\-05\-18 14:25:17 UTC\fP
  194858. .INDENT 2.0
  194859. .IP \(bu 2
  194860. 266749420f Merge pull request \fI\%#47632\fP from gtmanfred/2017.7.6
  194861. .IP \(bu 2
  194862. 2c50c0d2f5 fix pylint
  194863. .IP \(bu 2
  194864. 4a29057b16 Fix last test for tornado
  194865. .IP \(bu 2
  194866. 550ef2e272 allow using tornado 5.0
  194867. .IP \(bu 2
  194868. 62e468448b handle new _create_stream in tornado 5.0
  194869. .UNINDENT
  194870. .IP \(bu 2
  194871. \fBPR\fP \fI\%#47720\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47692\fP to 2017.7.6
  194872. @ \fI2018\-05\-18 13:23:03 UTC\fP
  194873. .INDENT 2.0
  194874. .IP \(bu 2
  194875. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic (refs: \fI\%#47720\fP)
  194876. .IP \(bu 2
  194877. 2643c356af Merge pull request \fI\%#47720\fP from rallytime/bp\-47692\-2017.7.6
  194878. .IP \(bu 2
  194879. 6e5cb36839 Default windows to m1.small for ec2\-classic
  194880. .INDENT 2.0
  194881. .IP \(bu 2
  194882. 20d9785244 fix roots modification time check
  194883. .UNINDENT
  194884. .IP \(bu 2
  194885. aef37dd1ce fix roots modification time check
  194886. .IP \(bu 2
  194887. d51662e053 Ensure targeted_pkgs always contains value for non\-windows.
  194888. .IP \(bu 2
  194889. 83b4224cf8 Adjusted based on feed back.
  194890. .IP \(bu 2
  194891. 12f983ce9f Whitespace lint issues
  194892. .IP \(bu 2
  194893. 075d3d3c49 pkg.install execution module on windows ensures the software package is installed when no version is specified, it does not upgrade the software to the latest. This is per the design. pkg.latest must provide the versions to install to pkg.install
  194894. .UNINDENT
  194895. .IP \(bu 2
  194896. \fBPR\fP \fI\%#47667\fP: (\fI\%Ch3LL\fP) Update test_mac_user_enable_auto_login to test both py2 and py3
  194897. @ \fI2018\-05\-16 15:54:49 UTC\fP
  194898. .INDENT 2.0
  194899. .IP \(bu 2
  194900. 16c2153385 Merge pull request \fI\%#47667\fP from Ch3LL/mac_user_enable
  194901. .IP \(bu 2
  194902. ba40d3d1a1 Update test_mac_user_enable_auto_login to test both py2 and py3
  194903. .UNINDENT
  194904. .IP \(bu 2
  194905. \fBPR\fP \fI\%#47645\fP: (\fI\%Ch3LL\fP) query the pip path for test test_issue_2087_missing_pip
  194906. @ \fI2018\-05\-15 17:16:10 UTC\fP
  194907. .INDENT 2.0
  194908. .IP \(bu 2
  194909. a4921e86c9 Merge pull request \fI\%#47645\fP from Ch3LL/py3_rm_pip
  194910. .IP \(bu 2
  194911. 225d90ad4c query the pip path for test test_issue_2087_missing_pip
  194912. .UNINDENT
  194913. .IP \(bu 2
  194914. \fBPR\fP \fI\%#47646\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47601\fP and \fI\%#47643\fP to 2017.7.6
  194915. @ \fI2018\-05\-15 14:04:45 UTC\fP
  194916. .INDENT 2.0
  194917. .IP \(bu 2
  194918. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file (refs: \fI\%#47646\fP)
  194919. .IP \(bu 2
  194920. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas (refs: \fI\%#47646\fP)
  194921. .IP \(bu 2
  194922. e441733ac1 Merge pull request \fI\%#47646\fP from rallytime/bp\-47601\-and\-47643
  194923. .IP \(bu 2
  194924. 9e1d1a5ef8 Fix typo
  194925. .IP \(bu 2
  194926. 4e94609136 Remove unwanted file
  194927. .IP \(bu 2
  194928. 0109249c78 use ignore\-undefined\-variable
  194929. .IP \(bu 2
  194930. 37caecb7f4 Ignore pylint WindowsError
  194931. .IP \(bu 2
  194932. c1135d90c7 Better doc string
  194933. .IP \(bu 2
  194934. e53d6b9ed9 Skip tests when we can not use runas
  194935. .UNINDENT
  194936. .IP \(bu 2
  194937. \fBPR\fP \fI\%#47570\fP: (\fI\%gtmanfred\fP) Update dependency to msgpack
  194938. @ \fI2018\-05\-10 13:23:09 UTC\fP
  194939. .INDENT 2.0
  194940. .IP \(bu 2
  194941. 6f178ca908 Merge pull request \fI\%#47570\fP from gtmanfred/2017.7.6
  194942. .IP \(bu 2
  194943. 84aa034e03 Update dependency to msgpack
  194944. .UNINDENT
  194945. .IP \(bu 2
  194946. \fBPR\fP \fI\%#47523\fP: (\fI\%rallytime\fP) [2017.7.6] Update man pages
  194947. @ \fI2018\-05\-08 13:31:19 UTC\fP
  194948. .INDENT 2.0
  194949. .IP \(bu 2
  194950. 98bd598701 Merge pull request \fI\%#47523\fP from rallytime/man\-pages
  194951. .IP \(bu 2
  194952. 48ecb78dec [2017.7.6] Update man pages
  194953. .UNINDENT
  194954. .IP \(bu 2
  194955. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  194956. .IP \(bu 2
  194957. \fBPR\fP \fI\%#47517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47505\fP to 2017.7.6
  194958. @ \fI2018\-05\-07 19:42:37 UTC\fP
  194959. .INDENT 2.0
  194960. .IP \(bu 2
  194961. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors (refs: \fI\%#47517\fP)
  194962. .IP \(bu 2
  194963. e608ea9617 Merge pull request \fI\%#47517\fP from rallytime/bp\-47505\-2017.7.6
  194964. .IP \(bu 2
  194965. 0734578533 Raise proper invocation errors
  194966. .UNINDENT
  194967. .IP \(bu 2
  194968. \fBPR\fP \fI\%#47476\fP: (\fI\%gtmanfred\fP) Specify the cache directory for newer virtualenv modules
  194969. @ \fI2018\-05\-04 19:20:45 UTC\fP
  194970. .INDENT 2.0
  194971. .IP \(bu 2
  194972. 611ca1fc03 Merge pull request \fI\%#47476\fP from gtmanfred/2017.7
  194973. .IP \(bu 2
  194974. 1f91a85587 specify cache dir for pip install
  194975. .IP \(bu 2
  194976. 99e150e09c check for kitchen\-vagrant gem before loading windows tests
  194977. .UNINDENT
  194978. .IP \(bu 2
  194979. \fBPR\fP \fI\%#47412\fP: (\fI\%twangboy\fP) Fix issue where the cwd was being removed
  194980. @ \fI2018\-05\-04 17:28:11 UTC\fP
  194981. .INDENT 2.0
  194982. .IP \(bu 2
  194983. 7c3f2c56da Merge pull request \fI\%#47412\fP from twangboy/fix_47125
  194984. .IP \(bu 2
  194985. c9bab0b8e3 Merge branch \(aq2017.7\(aq into fix_47125
  194986. .IP \(bu 2
  194987. 2600e404d5 Fix overly long line
  194988. .IP \(bu 2
  194989. 5c8db05769 Fix issue where the cwd was being removed
  194990. .UNINDENT
  194991. .IP \(bu 2
  194992. \fBPR\fP \fI\%#47467\fP: (\fI\%twangboy\fP) Remove unused settings, update NSIS
  194993. @ \fI2018\-05\-04 17:11:37 UTC\fP
  194994. .INDENT 2.0
  194995. .IP \(bu 2
  194996. 4846e957c4 Merge pull request \fI\%#47467\fP from twangboy/cleanup_settings
  194997. .IP \(bu 2
  194998. 9d498293b1 Remove unused settings, update NSIS
  194999. .UNINDENT
  195000. .IP \(bu 2
  195001. \fBPR\fP \fI\%#47196\fP: (\fI\%twangboy\fP) Fix issues with pip
  195002. @ \fI2018\-05\-04 14:23:04 UTC\fP
  195003. .INDENT 2.0
  195004. .IP \(bu 2
  195005. da9871d36b Merge pull request \fI\%#47196\fP from twangboy/fix_47024
  195006. .IP \(bu 2
  195007. 14ee5537b9 Add @with_tempdir helper
  195008. .IP \(bu 2
  195009. 6c3b5fa6fa Fix typo
  195010. .IP \(bu 2
  195011. f031710af2 Merge branch \(aq2017.7\(aq into fix_47024
  195012. .IP \(bu 2
  195013. 7c46d9d0d4 Fix integration.modules.test_pip
  195014. .IP \(bu 2
  195015. 22ac81df63 Fix integration.modules.test_pip
  195016. .IP \(bu 2
  195017. 57d98224d4 Merge pull request #9 from terminalmage/twangboy/fix_47024
  195018. .INDENT 2.0
  195019. .IP \(bu 2
  195020. 37a13d8004 Update pip unit tests to reflect changes
  195021. .IP \(bu 2
  195022. 7f86779be0 Lint fix
  195023. .UNINDENT
  195024. .IP \(bu 2
  195025. c48d8f4f61 DRY and other fixes in pip module
  195026. .IP \(bu 2
  195027. b1117896a0 Change from global variable to __context__\(ga\(ga
  195028. .IP \(bu 2
  195029. 3e6e524eca Fix some tests\(ga\(ga
  195030. .IP \(bu 2
  195031. c94f0f20e4 Fix lint error
  195032. .IP \(bu 2
  195033. fd47b21530 Fix merge conflict
  195034. .UNINDENT
  195035. .IP \(bu 2
  195036. \fBPR\fP \fI\%#47455\fP: (\fI\%Ch3LL\fP) Add In Progress Warning for 2017.7.6 Release Notes
  195037. @ \fI2018\-05\-04 13:44:54 UTC\fP
  195038. .INDENT 2.0
  195039. .IP \(bu 2
  195040. e8c4524bae Merge pull request \fI\%#47455\fP from Ch3LL/unreleased_rn
  195041. .IP \(bu 2
  195042. b6d0cc2ab7 Add In Progress Warning for 2017.7.6 Release Notes
  195043. .UNINDENT
  195044. .IP \(bu 2
  195045. \fBPR\fP \fI\%#47459\fP: (\fI\%gtmanfred\fP) update ubuntu\-rolling to 18.04
  195046. @ \fI2018\-05\-03 20:39:20 UTC\fP
  195047. .INDENT 2.0
  195048. .IP \(bu 2
  195049. 2c7a4b6179 Merge pull request \fI\%#47459\fP from gtmanfred/2017.7
  195050. .IP \(bu 2
  195051. d228e72477 update ubuntu\-rolling to 18.04
  195052. .UNINDENT
  195053. .IP \(bu 2
  195054. \fBPR\fP \fI\%#47462\fP: (\fI\%terminalmage\fP) Fix docs build on Sphinx 1.7+
  195055. @ \fI2018\-05\-03 20:06:57 UTC\fP
  195056. .INDENT 2.0
  195057. .IP \(bu 2
  195058. 64a64c0ed7 Merge pull request \fI\%#47462\fP from terminalmage/docs
  195059. .IP \(bu 2
  195060. 6d7803ece0 Fix docs build on Sphinx 1.7+
  195061. .UNINDENT
  195062. .IP \(bu 2
  195063. \fBISSUE\fP \fI\%#47436\fP: (\fI\%lomeroe\fP) Some Administrative Template policies are not properly set by lgpo (refs: \fI\%#47438\fP)
  195064. .IP \(bu 2
  195065. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP)
  195066. .IP \(bu 2
  195067. \fBPR\fP \fI\%#47438\fP: (\fI\%lomeroe\fP) lgpo fix for issue \fI\%#47436\fP
  195068. @ \fI2018\-05\-03 14:40:27 UTC\fP
  195069. .INDENT 2.0
  195070. .IP \(bu 2
  195071. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#46913\fP, \fI\%#47438\fP)
  195072. .IP \(bu 2
  195073. 6cd0d31c03 Merge pull request \fI\%#47438\fP from lomeroe/double_admx_test
  195074. .IP \(bu 2
  195075. 4902f1e2ba check if a policy has either an enabled value or enabled list entry or a disabled value or disabled list entry when determining the state of the policy
  195076. .UNINDENT
  195077. .IP \(bu 2
  195078. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#47106\fP, \fI\%#47433\fP)
  195079. .IP \(bu 2
  195080. \fBPR\fP \fI\%#47433\fP: (\fI\%s0undt3ch\fP) Add missing requirements files not commited in \fI\%#47106\fP
  195081. @ \fI2018\-05\-02 20:57:14 UTC\fP
  195082. .INDENT 2.0
  195083. .IP \(bu 2
  195084. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47433\fP)
  195085. .IP \(bu 2
  195086. ed69821d19 Merge pull request \fI\%#47433\fP from s0undt3ch/2017.7
  195087. .IP \(bu 2
  195088. 5abadf25d6 Add missing requirements files not commited in \fI\%#47106\fP
  195089. .UNINDENT
  195090. .IP \(bu 2
  195091. \fBISSUE\fP \fI\%#47424\fP: (\fI\%bcharron\fP) "salt\-cloud \-m" fails with nova driver: "There was a query error: u\(aqstate\(aq" (refs: \fI\%#47429\fP)
  195092. .IP \(bu 2
  195093. \fBPR\fP \fI\%#47429\fP: (\fI\%gtmanfred\fP) server_list_min should use state, not status
  195094. @ \fI2018\-05\-02 16:27:56 UTC\fP
  195095. .INDENT 2.0
  195096. .IP \(bu 2
  195097. 7ae3497b0c Merge pull request \fI\%#47429\fP from gtmanfred/2017.7
  195098. .IP \(bu 2
  195099. 8ae32033cc server_list_min should use state, not status
  195100. .UNINDENT
  195101. .IP \(bu 2
  195102. \fBPR\fP \fI\%#47399\fP: (\fI\%isbm\fP) zeromq 17 deprecation warning backport from 2018.3 + tornado 5 fixes
  195103. @ \fI2018\-05\-02 15:11:16 UTC\fP
  195104. .INDENT 2.0
  195105. .IP \(bu 2
  195106. 2f5fc4ecc5 Merge pull request \fI\%#47399\fP from isbm/isbm\-zeromq17\-deprecationwarning\-2017.7.2\-v2
  195107. .IP \(bu 2
  195108. a36e49fd27 fix pylint
  195109. .IP \(bu 2
  195110. 98b5629b36 Fix imports
  195111. .IP \(bu 2
  195112. d94c0f0152 Remove unnecessary variable
  195113. .IP \(bu 2
  195114. 8e377b5653 Lintfix: E0203 and attribute access
  195115. .IP \(bu 2
  195116. 2aab70b1b8 Install ZMQ handler if <15 version
  195117. .IP \(bu 2
  195118. 296c589f4b Use ZMQ switch utility in the integration tests
  195119. .IP \(bu 2
  195120. ab5fa34d7c Use ZMQ_VERSION_INFO constant everywhere
  195121. .IP \(bu 2
  195122. 43b5558b82 Add trace logging on ZMQ sockets communication
  195123. .IP \(bu 2
  195124. 164204a9fe Remove duplicate code for ZMQ monitor handling
  195125. .IP \(bu 2
  195126. 834b1e4ff0 Remove obsolete ZMQIOLoop direct instance
  195127. .IP \(bu 2
  195128. 1c90cbdb3c Remove an empty line
  195129. .IP \(bu 2
  195130. ef2e0acd66 Add logging on ZMQ socket exception
  195131. .IP \(bu 2
  195132. 38ceed371d Lintfix: ident
  195133. .IP \(bu 2
  195134. 1ece6a5f52 Lintfix: line too long
  195135. .IP \(bu 2
  195136. 4e650c0b44 Remove code duplicate by reusing utilities functions
  195137. .IP \(bu 2
  195138. 57da54b676 Fix imports
  195139. .IP \(bu 2
  195140. 948368e9a1 Add libzmq version info builder
  195141. .IP \(bu 2
  195142. 0b4a17b859 Update log exception message
  195143. .IP \(bu 2
  195144. 116e1809fc Put a message alongside the exception to the logs
  195145. .IP \(bu 2
  195146. 4bc43124b7 Remove unnecessary ZMQ import and check for its presence
  195147. .IP \(bu 2
  195148. 05f4d40269 Use utility for ZMQ import handling in SSH client
  195149. .IP \(bu 2
  195150. 457ef7d9a5 Use utility for ZMQ import handling in flo/zero
  195151. .IP \(bu 2
  195152. 08dee6f5bd Use utility for ZMQ import handling
  195153. .IP \(bu 2
  195154. e2a353cfb0 Remove unnecessary ZMQ extra\-check for cache utils
  195155. .IP \(bu 2
  195156. c8f2cc271d Remove unnecessary ZMQ extra\-check for master utils
  195157. .IP \(bu 2
  195158. 3940667bb9 Remove old ZMQ import handling
  195159. .IP \(bu 2
  195160. f34a53e029 Use ZMQ utility for version check
  195161. .IP \(bu 2
  195162. cbb26dcb28 Use ZMQ installer for master
  195163. .IP \(bu 2
  195164. 453e83210a Add ZMQ version build
  195165. .IP \(bu 2
  195166. af9601e21d Use ZMQ importer utility in async
  195167. .IP \(bu 2
  195168. d50b2b2023 Incorporate tornado\-5 fixes
  195169. .IP \(bu 2
  195170. 1fd9af0655 Add ZMQ backward\-compatibility tornado installer for older versions
  195171. .IP \(bu 2
  195172. ad4b40415c Add one place for handling various ZMQ versions and IOLoop classes
  195173. .UNINDENT
  195174. .IP \(bu 2
  195175. \fBPR\fP \fI\%#47343\fP: (\fI\%Ch3LL\fP) Add additional service module integration tests and enable for windows
  195176. @ \fI2018\-05\-02 13:39:46 UTC\fP
  195177. .INDENT 2.0
  195178. .IP \(bu 2
  195179. b14e974b5f Merge pull request \fI\%#47343\fP from Ch3LL/win_srv_test
  195180. .IP \(bu 2
  195181. 2173b6f549 ensure we are enabling/disabling before test
  195182. .IP \(bu 2
  195183. d58be06751 Add additionatl service module integration tests and enable for windows
  195184. .UNINDENT
  195185. .IP \(bu 2
  195186. \fBPR\fP \fI\%#47375\fP: (\fI\%terminalmage\fP) Warn on use of virtual packages in pkg.installed state
  195187. @ \fI2018\-05\-01 21:12:18 UTC\fP
  195188. .INDENT 2.0
  195189. .IP \(bu 2
  195190. b0f3fb577f Merge pull request \fI\%#47375\fP from terminalmage/issue47310
  195191. .IP \(bu 2
  195192. fa2bea52bb Remove extra blank line to appease linter
  195193. .IP \(bu 2
  195194. f8ab2be81c Add debug logging if we fail to detect virtual packages
  195195. .IP \(bu 2
  195196. 67c4fc56ac Warn on use of virtual packages in pkg.installed state
  195197. .UNINDENT
  195198. .IP \(bu 2
  195199. \fBPR\fP \fI\%#47415\fP: (\fI\%kstreee\fP) Fixes a bug of rest_tornado\(aqs \(aqlocal\(aq client, complement fix of \fI\%#46326\fP
  195200. @ \fI2018\-05\-01 21:11:25 UTC\fP
  195201. .INDENT 2.0
  195202. .IP \(bu 2
  195203. \fBPR\fP \fI\%#47200\fP: (\fI\%kstreee\fP) Resolve a conflict with syndic timeout and bug fixes of the local client in rest_tornado (refs: \fI\%#47415\fP)
  195204. .IP \(bu 2
  195205. \fBPR\fP \fI\%#47123\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2018.3 to develop (refs: \fI\%#47200\fP)
  195206. .IP \(bu 2
  195207. \fBPR\fP \fI\%#47110\fP: (\fI\%kstreee\fP) Fixes misusing of the timeout option. (refs: \fI\%#47200\fP)
  195208. .IP \(bu 2
  195209. \fBPR\fP \fI\%#46692\fP: (\fI\%mattp\-\fP) saltnado bugfixes for ldap & syndics (refs: \fI\%#47123\fP, \fI\%#47200\fP)
  195210. .IP \(bu 2
  195211. \fBPR\fP \fI\%#46326\fP: (\fI\%kstreee\fP) Fixes a timing bug of saltnado\(aqs client local. (refs: \fI\%#47110\fP, \fI\%#47123\fP, \fI\%#47200\fP, \fI\%#47415\fP)
  195212. .IP \(bu 2
  195213. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  195214. .IP \(bu 2
  195215. 56235032f4 Merge pull request \fI\%#47415\fP from kstreee/fix\-local\-client\-tgt\-bug
  195216. .IP \(bu 2
  195217. b8d37e0a1e To add a test case for the syndic environment, copies the test case which was written by @mattp\- that was already merged into develop branch, related pr is \fI\%#46692\fP\&.
  195218. .IP \(bu 2
  195219. 4627bad1fd Realizes \(aqtgt\(aq field into actual minions using ckminions to subscribe results of the minions before publishing a payload.
  195220. .UNINDENT
  195221. .IP \(bu 2
  195222. \fBPR\fP \fI\%#47286\fP: (\fI\%baniobloom\fP) fixed vpc_peering_connection_name option
  195223. @ \fI2018\-05\-01 19:02:10 UTC\fP
  195224. .INDENT 2.0
  195225. .IP \(bu 2
  195226. d65ceaee03 Merge pull request \fI\%#47286\fP from baniobloom/vpc_peering_connection_name_fix
  195227. .IP \(bu 2
  195228. a968965087 Merge branch \(aq2017.7\(aq into vpc_peering_connection_name_fix
  195229. .UNINDENT
  195230. .IP \(bu 2
  195231. \fBPR\fP \fI\%#47270\fP: (\fI\%meaksh\fP) Fix minion scheduler to return \(aqretcode\(aq from executed functions
  195232. @ \fI2018\-04\-30 18:21:55 UTC\fP
  195233. .INDENT 2.0
  195234. .IP \(bu 2
  195235. 8a5d4437bb Merge pull request \fI\%#47270\fP from meaksh/2017.7\-fix\-retcode\-on\-schedule\-utils
  195236. .IP \(bu 2
  195237. d299cf3385 Merge branch \(aq2017.7\(aq into 2017.7\-fix\-retcode\-on\-schedule\-utils
  195238. .IP \(bu 2
  195239. b6da600fff Initialize __context__ retcode for functions handled via schedule util module
  195240. .UNINDENT
  195241. .IP \(bu 2
  195242. \fBISSUE\fP \fI\%#47264\fP: (\fI\%jf\fP) doc: \fI\%https://docs.saltstack.com/en/latest/ref/modules/all/salt.modules.grains.html#salt.modules.grains.delval\fP s/of pass/or pass/ (refs: \fI\%#47371\fP)
  195243. .IP \(bu 2
  195244. \fBPR\fP \fI\%#47371\fP: (\fI\%rallytime\fP) Fix "of pass" typo in grains.delval docs: change to "or pass"
  195245. @ \fI2018\-04\-30 18:18:46 UTC\fP
  195246. .INDENT 2.0
  195247. .IP \(bu 2
  195248. 5b51075384 Merge pull request \fI\%#47371\fP from rallytime/fix\-47264
  195249. .IP \(bu 2
  195250. a43485b49c Fix "of pass" typo in grains.delval docs: change to "or pass"
  195251. .UNINDENT
  195252. .IP \(bu 2
  195253. \fBPR\fP \fI\%#47389\fP: (\fI\%dwoz\fP) Older GitPython versions will not have close
  195254. @ \fI2018\-04\-29 16:42:06 UTC\fP
  195255. .INDENT 2.0
  195256. .IP \(bu 2
  195257. a86e53be66 Merge pull request \fI\%#47389\fP from dwoz/moregittestfix
  195258. .IP \(bu 2
  195259. 67745c1362 Older GitPython versions will not have close
  195260. .UNINDENT
  195261. .IP \(bu 2
  195262. \fBPR\fP \fI\%#47388\fP: (\fI\%dwoz\fP) Fix missing import
  195263. @ \fI2018\-04\-28 18:33:14 UTC\fP
  195264. .INDENT 2.0
  195265. .IP \(bu 2
  195266. a5367eaf63 Merge pull request \fI\%#47388\fP from dwoz/test_pip_fix
  195267. .IP \(bu 2
  195268. eb26321e8b Fix missing import
  195269. .UNINDENT
  195270. .IP \(bu 2
  195271. \fBPR\fP \fI\%#47380\fP: (\fI\%gtmanfred\fP) add io_loop handling to runtests engine
  195272. @ \fI2018\-04\-28 17:25:28 UTC\fP
  195273. .INDENT 2.0
  195274. .IP \(bu 2
  195275. 9b59b991c2 Merge pull request \fI\%#47380\fP from gtmanfred/2017.7
  195276. .IP \(bu 2
  195277. 93d1445ec1 add io_loop handling to runtests engine
  195278. .UNINDENT
  195279. .IP \(bu 2
  195280. \fBPR\fP \fI\%#47384\fP: (\fI\%dwoz\fP) Fix py2 version of pip test
  195281. @ \fI2018\-04\-28 15:13:28 UTC\fP
  195282. .INDENT 2.0
  195283. .IP \(bu 2
  195284. 37822c0cbb Merge pull request \fI\%#47384\fP from dwoz/test_pip_fix
  195285. .IP \(bu 2
  195286. a37a9da1fb Fix py2 version of pip test
  195287. .UNINDENT
  195288. .IP \(bu 2
  195289. \fBPR\fP \fI\%#47382\fP: (\fI\%dwoz\fP) Close the repo and fix multiple tests
  195290. @ \fI2018\-04\-28 15:09:17 UTC\fP
  195291. .INDENT 2.0
  195292. .IP \(bu 2
  195293. eefd96732e Merge pull request \fI\%#47382\fP from dwoz/gitfs_tests
  195294. .IP \(bu 2
  195295. 1570708fac Close the repo and fix multiple tests
  195296. .UNINDENT
  195297. .IP \(bu 2
  195298. \fBPR\fP \fI\%#47369\fP: (\fI\%terminalmage\fP) Return an empty dict if no search_order in ldap ext_pillar config file
  195299. @ \fI2018\-04\-27 20:58:52 UTC\fP
  195300. .INDENT 2.0
  195301. .IP \(bu 2
  195302. 57c75ff660 Merge pull request \fI\%#47369\fP from terminalmage/ldap_pillar
  195303. .IP \(bu 2
  195304. 085883ae2d Return an empty dict if no search_order in ldap ext_pillar config file
  195305. .UNINDENT
  195306. .IP \(bu 2
  195307. \fBPR\fP \fI\%#47363\fP: (\fI\%DmitryKuzmenko\fP) Tornado5.0: Future.exc_info is dropped
  195308. @ \fI2018\-04\-27 18:30:18 UTC\fP
  195309. .INDENT 2.0
  195310. .IP \(bu 2
  195311. bcc66dd9bf Merge pull request \fI\%#47363\fP from DSRCorporation/bugs/replace_exc_info_with_exception
  195312. .IP \(bu 2
  195313. 3f7b93a23c Tornado5.0: Future.exc_info is dropped
  195314. .UNINDENT
  195315. .IP \(bu 2
  195316. \fBPR\fP \fI\%#47334\fP: (\fI\%terminalmage\fP) pillar_ldap: Fix cryptic errors when config file fails to load
  195317. @ \fI2018\-04\-27 17:53:51 UTC\fP
  195318. .INDENT 2.0
  195319. .IP \(bu 2
  195320. bcef34f7e1 Merge pull request \fI\%#47334\fP from terminalmage/ldap_pillar
  195321. .IP \(bu 2
  195322. 0175a8687c pillar_ldap: Fix cryptic errors when config file fails to load
  195323. .IP \(bu 2
  195324. 65c3ba7ff1 Remove useless documentation
  195325. .IP \(bu 2
  195326. 5d67cb27de Remove unncessary commented line
  195327. .UNINDENT
  195328. .IP \(bu 2
  195329. \fBPR\fP \fI\%#47347\fP: (\fI\%dwoz\fP) Proper fix for mysql tests
  195330. @ \fI2018\-04\-27 17:27:53 UTC\fP
  195331. .INDENT 2.0
  195332. .IP \(bu 2
  195333. 31db8ca7ad Merge pull request \fI\%#47347\fP from dwoz/test_mysql_fix_again
  195334. .IP \(bu 2
  195335. add78fb618 Fix linter warnings
  195336. .IP \(bu 2
  195337. 2644cc7553 Fix linter nits
  195338. .IP \(bu 2
  195339. 799c601184 Proper fix for mysql tests
  195340. .UNINDENT
  195341. .IP \(bu 2
  195342. \fBPR\fP \fI\%#47359\fP: (\fI\%gtmanfred\fP) add mention of the formulas channel to the formulas docs
  195343. @ \fI2018\-04\-27 16:56:13 UTC\fP
  195344. .INDENT 2.0
  195345. .IP \(bu 2
  195346. e573236848 Merge pull request \fI\%#47359\fP from gtmanfred/2017.7
  195347. .IP \(bu 2
  195348. 6214ed8133 add mention of the formulas channel to the formulas docs
  195349. .UNINDENT
  195350. .IP \(bu 2
  195351. \fBPR\fP \fI\%#47317\fP: (\fI\%dwoz\fP) Do not join a thread that is stopped
  195352. @ \fI2018\-04\-27 13:15:09 UTC\fP
  195353. .INDENT 2.0
  195354. .IP \(bu 2
  195355. \fBPR\fP \fI\%#47279\fP: (\fI\%dwoz\fP) Gracefully shutdown worker threads (refs: \fI\%#47317\fP)
  195356. .IP \(bu 2
  195357. 629503b2a8 Merge pull request \fI\%#47317\fP from dwoz/threadshutdown
  195358. .IP \(bu 2
  195359. 6db2a0e4d3 Log exceptions at exception level
  195360. .IP \(bu 2
  195361. d4ae787595 Do not join a thread that is stopped
  195362. .UNINDENT
  195363. .IP \(bu 2
  195364. \fBPR\fP \fI\%#47304\fP: (\fI\%cachedout\fP) Pass timeout to salt CLI for tests
  195365. @ \fI2018\-04\-27 13:11:58 UTC\fP
  195366. .INDENT 2.0
  195367. .IP \(bu 2
  195368. aacd5cefe3 Merge pull request \fI\%#47304\fP from cachedout/test_cli_timeout_arg
  195369. .IP \(bu 2
  195370. 85025af83c Pass timeout to salt CLI for tests
  195371. .UNINDENT
  195372. .IP \(bu 2
  195373. \fBPR\fP \fI\%#47311\fP: (\fI\%Ch3LL\fP) Add firewall execution modules tests for windows
  195374. @ \fI2018\-04\-27 13:10:54 UTC\fP
  195375. .INDENT 2.0
  195376. .IP \(bu 2
  195377. 55534fb659 Merge pull request \fI\%#47311\fP from Ch3LL/firewall_windows
  195378. .IP \(bu 2
  195379. 4e16c18c16 Add firewall module windows tests to whitelist
  195380. .IP \(bu 2
  195381. 4b2fc4ec66 Add windows firewall execution modules integration tests
  195382. .UNINDENT
  195383. .IP \(bu 2
  195384. \fBPR\fP \fI\%#47348\fP: (\fI\%dwoz\fP) Ignore gitfs tests when symlinks not enabled
  195385. @ \fI2018\-04\-27 13:08:27 UTC\fP
  195386. .INDENT 2.0
  195387. .IP \(bu 2
  195388. 1667375a80 Merge pull request \fI\%#47348\fP from dwoz/no_symlinks
  195389. .IP \(bu 2
  195390. 94a70e847a Ignore gitfs tests when symlinks not enabled
  195391. .UNINDENT
  195392. .IP \(bu 2
  195393. \fBPR\fP \fI\%#47342\fP: (\fI\%dwoz\fP) Fix mysql test cases
  195394. @ \fI2018\-04\-27 00:50:53 UTC\fP
  195395. .INDENT 2.0
  195396. .IP \(bu 2
  195397. dac04261b5 Merge pull request \fI\%#47342\fP from dwoz/test_mysql_fix
  195398. .IP \(bu 2
  195399. 7496f4c5a8 Fix mysql test cases
  195400. .UNINDENT
  195401. .IP \(bu 2
  195402. \fBPR\fP \fI\%#47341\fP: (\fI\%dwoz\fP) Fix python 3 support for inet_pton function
  195403. @ \fI2018\-04\-26 23:35:45 UTC\fP
  195404. .INDENT 2.0
  195405. .IP \(bu 2
  195406. 34e78ef564 Merge pull request \fI\%#47341\fP from dwoz/inet_pton_fix
  195407. .IP \(bu 2
  195408. 85451f48d4 Fix python 3 support for inet_pton function
  195409. .UNINDENT
  195410. .IP \(bu 2
  195411. \fBPR\fP \fI\%#47339\fP: (\fI\%dwoz\fP) Use salt.utils.fopen for line ending consistancy
  195412. @ \fI2018\-04\-26 22:39:56 UTC\fP
  195413. .INDENT 2.0
  195414. .IP \(bu 2
  195415. e4779f3246 Merge pull request \fI\%#47339\fP from dwoz/ssh_key_test_fix
  195416. .IP \(bu 2
  195417. e37a93a1ca Remove redundent close call
  195418. .IP \(bu 2
  195419. b2ae5889b7 Close the temporary file handle
  195420. .IP \(bu 2
  195421. 9f7f83a975 Use salt.utils.fopen for line ending consistancy
  195422. .UNINDENT
  195423. .IP \(bu 2
  195424. \fBPR\fP \fI\%#47335\fP: (\fI\%dwoz\fP) Remove un\-needed string\-escape
  195425. @ \fI2018\-04\-26 21:49:27 UTC\fP
  195426. .INDENT 2.0
  195427. .IP \(bu 2
  195428. b221860151 Merge pull request \fI\%#47335\fP from dwoz/pip_test_fix
  195429. .IP \(bu 2
  195430. dcb6a22c00 Remove un\-needed string\-escape
  195431. .UNINDENT
  195432. .IP \(bu 2
  195433. \fBPR\fP \fI\%#47331\fP: (\fI\%dwoz\fP) Do not encode usernames
  195434. @ \fI2018\-04\-26 19:57:28 UTC\fP
  195435. .INDENT 2.0
  195436. .IP \(bu 2
  195437. 1c527bfd3a Merge pull request \fI\%#47331\fP from dwoz/py3_wingroup_fix
  195438. .IP \(bu 2
  195439. cc154ef857 Do not encode usernames
  195440. .UNINDENT
  195441. .IP \(bu 2
  195442. \fBPR\fP \fI\%#47329\fP: (\fI\%cachedout\fP) Credit Frank Spierings
  195443. @ \fI2018\-04\-26 16:37:59 UTC\fP
  195444. .INDENT 2.0
  195445. .IP \(bu 2
  195446. 708078b152 Merge pull request \fI\%#47329\fP from cachedout/frank_credit
  195447. .IP \(bu 2
  195448. 33c0644ac4 Credit Frank Spierings
  195449. .UNINDENT
  195450. .IP \(bu 2
  195451. \fBPR\fP \fI\%#47281\fP: (\fI\%Ch3LL\fP) Add win_system integration module tests
  195452. @ \fI2018\-04\-26 16:07:41 UTC\fP
  195453. .INDENT 2.0
  195454. .IP \(bu 2
  195455. a545e55543 Merge pull request \fI\%#47281\fP from Ch3LL/system_test
  195456. .IP \(bu 2
  195457. c9181a75a6 Add destructivetest decorator on tests
  195458. .IP \(bu 2
  195459. 0d0c8987fc Add win_system integration module tests
  195460. .UNINDENT
  195461. .IP \(bu 2
  195462. \fBPR\fP \fI\%#47283\fP: (\fI\%Ch3LL\fP) Add windows ntp integration module tests
  195463. @ \fI2018\-04\-26 16:04:44 UTC\fP
  195464. .INDENT 2.0
  195465. .IP \(bu 2
  195466. b64d930df0 Merge pull request \fI\%#47283\fP from Ch3LL/ntp_test
  195467. .IP \(bu 2
  195468. ced7f86546 Add windows ntp integration module tests
  195469. .UNINDENT
  195470. .IP \(bu 2
  195471. \fBPR\fP \fI\%#47314\fP: (\fI\%Ch3LL\fP) Skip netstat test on macosx as its not supported
  195472. @ \fI2018\-04\-26 16:00:37 UTC\fP
  195473. .INDENT 2.0
  195474. .IP \(bu 2
  195475. 910aff910f Merge pull request \fI\%#47314\fP from Ch3LL/net_mac_test
  195476. .IP \(bu 2
  195477. 67beb1451c Skip netstat test on macosx as its not supported
  195478. .UNINDENT
  195479. .IP \(bu 2
  195480. \fBPR\fP \fI\%#47307\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47257\fP to 2017.7
  195481. @ \fI2018\-04\-26 15:16:23 UTC\fP
  195482. .INDENT 2.0
  195483. .IP \(bu 2
  195484. \fBPR\fP \fI\%#47257\fP: (\fI\%jeroennijhof\fP) Role is not a list but a dictionary (refs: \fI\%#47307\fP)
  195485. .IP \(bu 2
  195486. 0549ef7c16 Merge pull request \fI\%#47307\fP from rallytime/bp\-47257
  195487. .IP \(bu 2
  195488. 6c5b2f92bc Role is not a list but a dictionary
  195489. .UNINDENT
  195490. .IP \(bu 2
  195491. \fBPR\fP \fI\%#47312\fP: (\fI\%rallytime\fP) Update bootstrap script to latest release: 2018.04.25
  195492. @ \fI2018\-04\-26 15:15:13 UTC\fP
  195493. .INDENT 2.0
  195494. .IP \(bu 2
  195495. d6ff4689f6 Merge pull request \fI\%#47312\fP from rallytime/update\-bootstrap\-release
  195496. .IP \(bu 2
  195497. 765cce06a2 Update bootstrap script to latest release: 2018.04.25
  195498. .UNINDENT
  195499. .IP \(bu 2
  195500. \fBPR\fP \fI\%#47279\fP: (\fI\%dwoz\fP) Gracefully shutdown worker threads (refs: \fI\%#47317\fP)
  195501. @ \fI2018\-04\-25 21:15:43 UTC\fP
  195502. .INDENT 2.0
  195503. .IP \(bu 2
  195504. e0765f5719 Merge pull request \fI\%#47279\fP from dwoz/py3_build_fix
  195505. .IP \(bu 2
  195506. 21dc1bab91 Pep\-8 line endings
  195507. .IP \(bu 2
  195508. 717abedaf7 Fix comman wart
  195509. .IP \(bu 2
  195510. 4100dcd64c Close might get called more than once
  195511. .IP \(bu 2
  195512. dbe671f943 Stop socket before queue on delete
  195513. .IP \(bu 2
  195514. 9587f5c69e Silence pylint import\-error for six.moves
  195515. .IP \(bu 2
  195516. 4b0c7d3b34 Fix typo
  195517. .IP \(bu 2
  195518. 05adf7c2b1 Use six.moves for queue import
  195519. .IP \(bu 2
  195520. fe340778fa Gracefully shutdown worker threads
  195521. .UNINDENT
  195522. .IP \(bu 2
  195523. \fBPR\fP \fI\%#47113\fP: (\fI\%jfindlay\fP) Support proto for IPSec policy extension in iptables state
  195524. @ \fI2018\-04\-25 18:01:19 UTC\fP
  195525. .INDENT 2.0
  195526. .IP \(bu 2
  195527. 44f19b2f94 Merge pull request \fI\%#47113\fP from jfindlay/iptables_state
  195528. .IP \(bu 2
  195529. 8bd08012ee modules,states.iptables support proto for policy ext
  195530. .UNINDENT
  195531. .IP \(bu 2
  195532. \fBPR\fP \fI\%#47302\fP: (\fI\%Ch3LL\fP) Remove unnecessary code from core grains and add test
  195533. @ \fI2018\-04\-25 17:58:48 UTC\fP
  195534. .INDENT 2.0
  195535. .IP \(bu 2
  195536. b7a6206330 Merge pull request \fI\%#47302\fP from Ch3LL/dead_code
  195537. .IP \(bu 2
  195538. daa68b4877 Add virtual grains test for core grains
  195539. .IP \(bu 2
  195540. a59dd2785d Remove dead code in core grains file for virt\-what
  195541. .UNINDENT
  195542. .IP \(bu 2
  195543. \fBPR\fP \fI\%#47303\fP: (\fI\%baniobloom\fP) Added clarity on oldest supported main release branch
  195544. @ \fI2018\-04\-25 17:52:39 UTC\fP
  195545. .INDENT 2.0
  195546. .IP \(bu 2
  195547. e29362acfc Merge pull request \fI\%#47303\fP from baniobloom/bug_fix_doc
  195548. .IP \(bu 2
  195549. b97c9df5f3 added clarity on how to figure out what is the oldest supported main release branch
  195550. .UNINDENT
  195551. .IP \(bu 2
  195552. \fBISSUE\fP \fI\%#45790\fP: (\fI\%bdarnell\fP) Test with Tornado 5.0b1 (refs: \fI\%#47106\fP, \fI\%#47433\fP)
  195553. .IP \(bu 2
  195554. \fBPR\fP \fI\%#47106\fP: (\fI\%DmitryKuzmenko\fP) Tornado50 compatibility fixes (refs: \fI\%#47433\fP)
  195555. @ \fI2018\-04\-25 15:32:37 UTC\fP
  195556. .INDENT 2.0
  195557. .IP \(bu 2
  195558. 0d9d55e013 Merge pull request \fI\%#47106\fP from DSRCorporation/bugs/tornado50
  195559. .IP \(bu 2
  195560. 39e403b18d Merge branch \(aq2017.7\(aq into bugs/tornado50
  195561. .IP \(bu 2
  195562. 6706b3a2d1 Run off of a temporary config
  195563. .IP \(bu 2
  195564. d6873800d5 Allow running pytest>=3.5.0
  195565. .IP \(bu 2
  195566. 2da3983740 Tornado 5.0 compatibility fixes
  195567. .UNINDENT
  195568. .IP \(bu 2
  195569. \fBISSUE\fP \fI\%#47258\fP: (\fI\%drewmat\fP) service state no longer working after kernel upgrade (refs: \fI\%#47271\fP)
  195570. .IP \(bu 2
  195571. \fBPR\fP \fI\%#47271\fP: (\fI\%gtmanfred\fP) load rh_service for amazon linux not booted with systemd
  195572. @ \fI2018\-04\-25 14:47:06 UTC\fP
  195573. .INDENT 2.0
  195574. .IP \(bu 2
  195575. 2e014f4746 Merge pull request \fI\%#47271\fP from gtmanfred/amazon
  195576. .IP \(bu 2
  195577. 8a53908908 Do not load rh_service module when booted with systemd
  195578. .IP \(bu 2
  195579. e4d1d5bf11 Revert "support amazon linux 2 for service module"
  195580. .UNINDENT
  195581. .IP \(bu 2
  195582. \fBISSUE\fP \fI\%#44847\fP: (\fI\%malbertus\fP) netconfig.managed state.apply unexpected behaviour of test & debug variables (refs: \fI\%#47246\fP)
  195583. .IP \(bu 2
  195584. \fBPR\fP \fI\%#47246\fP: (\fI\%mirceaulinic\fP) Attempting to fix \fI\%#44847\fP: allow a different way to get the test and debug flags into the netconfig state
  195585. @ \fI2018\-04\-25 14:44:02 UTC\fP
  195586. .INDENT 2.0
  195587. .IP \(bu 2
  195588. 599b0ed1e9 Merge pull request \fI\%#47246\fP from cloudflare/fix\-44847\-2017.7
  195589. .IP \(bu 2
  195590. ad80028104 This way, we can pass flags such as \fBdebug\fP into the state, but also \fBtest\fP\&.
  195591. .UNINDENT
  195592. .IP \(bu 2
  195593. \fBPR\fP \fI\%#47220\fP: (\fI\%benediktwerner\fP) Fix pip.installed when no changes occurred with pip >= 1.0.0
  195594. @ \fI2018\-04\-25 14:23:50 UTC\fP
  195595. .INDENT 2.0
  195596. .IP \(bu 2
  195597. \fBPR\fP \fI\%#47207\fP: (\fI\%benediktwerner\fP) Fix pip_state with pip3 if no changes occourred (refs: \fI\%#47220\fP)
  195598. .IP \(bu 2
  195599. \fBPR\fP \fI\%#47102\fP: (\fI\%gtmanfred\fP) dont allow using no_use_wheel for pip 10.0.0 or newer (refs: \fI\%#47220\fP)
  195600. .IP \(bu 2
  195601. 4e2e1f0719 Merge pull request \fI\%#47220\fP from benediktwerner/fix\-pip\-2017.7
  195602. .IP \(bu 2
  195603. 0197c3e973 Fix pip test
  195604. .IP \(bu 2
  195605. 34bf66c09f Fix pip.installed with pip>=10.0.0
  195606. .UNINDENT
  195607. .IP \(bu 2
  195608. \fBPR\fP \fI\%#47272\fP: (\fI\%rallytime\fP) Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  195609. @ \fI2018\-04\-25 13:25:29 UTC\fP
  195610. .INDENT 2.0
  195611. .IP \(bu 2
  195612. 92e606251f Merge pull request \fI\%#47272\fP from rallytime/reg\-windows\-codeowners
  195613. .IP \(bu 2
  195614. 9445af0185 Add windows tests and reg module/state to CODEOWNERS file for team\-windows
  195615. .INDENT 2.0
  195616. .INDENT 3.5
  195617. .INDENT 0.0
  195618. .IP \(bu 2
  195619. 8de3d41adb fixed vpc_peering_connection_name option
  195620. .UNINDENT
  195621. .UNINDENT
  195622. .UNINDENT
  195623. .UNINDENT
  195624. .IP \(bu 2
  195625. \fBPR\fP \fI\%#47252\fP: (\fI\%rallytime\fP) Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  195626. @ \fI2018\-04\-24 14:10:42 UTC\fP
  195627. .INDENT 2.0
  195628. .IP \(bu 2
  195629. 9dca5c0221 Merge pull request \fI\%#47252\fP from rallytime/codeowners\-fixes
  195630. .IP \(bu 2
  195631. 204b6af92b Fix the matching patterns in the CODEOWNERS file to use fnmatch patterns
  195632. .UNINDENT
  195633. .IP \(bu 2
  195634. \fBISSUE\fP \fI\%#47173\fP: (\fI\%fpicot\fP) pkg.installed ignores normalize parameter (refs: \fI\%#47177\fP)
  195635. .IP \(bu 2
  195636. \fBPR\fP \fI\%#47177\fP: (\fI\%fpicot\fP) fix normalize parameter in pkg.installed
  195637. @ \fI2018\-04\-24 13:37:54 UTC\fP
  195638. .INDENT 2.0
  195639. .IP \(bu 2
  195640. 3de1bb49c8 Merge pull request \fI\%#47177\fP from fpicot/fix_47173_pkg_normalize
  195641. .IP \(bu 2
  195642. 149f846f34 fix normalize parameter in pkg.installed
  195643. .UNINDENT
  195644. .IP \(bu 2
  195645. \fBPR\fP \fI\%#47251\fP: (\fI\%Ch3LL\fP) Update Docs to remove unnecessary + sign
  195646. @ \fI2018\-04\-23 19:37:04 UTC\fP
  195647. .INDENT 2.0
  195648. .IP \(bu 2
  195649. 10e30515dc Merge pull request \fI\%#47251\fP from Ch3LL/pub_fix_rn
  195650. .IP \(bu 2
  195651. fa4c2e6575 Update Docs to remove unnecessary + sign
  195652. .UNINDENT
  195653. .IP \(bu 2
  195654. \fBPR\fP \fI\%#47249\fP: (\fI\%Ch3LL\fP) Add CVE number to 2016.3.6 Release
  195655. @ \fI2018\-04\-23 19:05:42 UTC\fP
  195656. .INDENT 2.0
  195657. .IP \(bu 2
  195658. bb7850a431 Merge pull request \fI\%#47249\fP from Ch3LL/pub_fix_rn
  195659. .IP \(bu 2
  195660. 24dea24b7e Add CVE number to 2016.3.6 Release
  195661. .UNINDENT
  195662. .IP \(bu 2
  195663. \fBISSUE\fP \fI\%#47225\fP: (\fI\%pruiz\fP) zfs.filesystem_present takes forever on a dataset with lots (10k+) of snapshots (refs: \fI\%#47226\fP, \fI\%#47227\fP)
  195664. .IP \(bu 2
  195665. \fBPR\fP \fI\%#47227\fP: (\fI\%pruiz\fP) Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots (2017.7 branch)
  195666. @ \fI2018\-04\-23 14:05:58 UTC\fP
  195667. .INDENT 2.0
  195668. .IP \(bu 2
  195669. \fBPR\fP \fI\%#47226\fP: (\fI\%pruiz\fP) Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots (refs: \fI\%#47227\fP)
  195670. .IP \(bu 2
  195671. 56933eb0b2 Merge pull request \fI\%#47227\fP from pruiz/pruiz/zfs\-dataset\-present\-slow\-2017.7
  195672. .IP \(bu 2
  195673. fded61f19b Fix issue \fI\%#47225\fP: avoid zfs.filesystem_present slowdown when dataset has lots of snapshots
  195674. .UNINDENT
  195675. .IP \(bu 2
  195676. \fBPR\fP \fI\%#47167\fP: (\fI\%smitty42\fP) Adding updates for python3 compatibility and new virtualbox SDK versi…
  195677. @ \fI2018\-04\-23 13:20:42 UTC\fP
  195678. .INDENT 2.0
  195679. .IP \(bu 2
  195680. 9825065048 Merge pull request \fI\%#47167\fP from smitty42/vbox\-skd\-fix
  195681. .IP \(bu 2
  195682. 5de53139cd Merge branch \(aq2017.7\(aq into vbox\-skd\-fix
  195683. .UNINDENT
  195684. .IP \(bu 2
  195685. \fBPR\fP \fI\%#47213\fP: (\fI\%dwoz\fP) Fix coverage on py3 windows builds
  195686. @ \fI2018\-04\-20 22:09:57 UTC\fP
  195687. .INDENT 2.0
  195688. .IP \(bu 2
  195689. 976f031170 Merge pull request \fI\%#47213\fP from dwoz/py3win
  195690. .IP \(bu 2
  195691. ad9c7f63f0 Fix coverate on py3 windows builds
  195692. .IP \(bu 2
  195693. 91252bac95 Adding updates for python3 compatibility and new virtualbox SDK version support.
  195694. .UNINDENT
  195695. .IP \(bu 2
  195696. \fBPR\fP \fI\%#47197\fP: (\fI\%dwoz\fP) Move process target to top level module namespace
  195697. @ \fI2018\-04\-20 15:41:06 UTC\fP
  195698. .INDENT 2.0
  195699. .IP \(bu 2
  195700. cebcd6d069 Merge pull request \fI\%#47197\fP from dwoz/testfix
  195701. .IP \(bu 2
  195702. 25803c9176 Move process target to top level module namespace
  195703. .UNINDENT
  195704. .IP \(bu 2
  195705. \fBPR\fP \fI\%#47193\fP: (\fI\%Ch3LL\fP) Add network module integration tests
  195706. @ \fI2018\-04\-20 13:37:19 UTC\fP
  195707. .INDENT 2.0
  195708. .IP \(bu 2
  195709. d4269c2b70 Merge pull request \fI\%#47193\fP from Ch3LL/network_test
  195710. .IP \(bu 2
  195711. bbf9987c19 Add network module integration tests
  195712. .UNINDENT
  195713. .IP \(bu 2
  195714. \fBPR\fP \fI\%#47189\fP: (\fI\%Ch3LL\fP) Add autoruns.list integration test for Windows
  195715. @ \fI2018\-04\-19 21:16:34 UTC\fP
  195716. .INDENT 2.0
  195717. .IP \(bu 2
  195718. c777248a78 Merge pull request \fI\%#47189\fP from Ch3LL/autoruns
  195719. .IP \(bu 2
  195720. 6a88bedb7a Add autoruns to windows whitelist
  195721. .IP \(bu 2
  195722. e9e4d4af70 Add autoruns.list integration test for Windows
  195723. .UNINDENT
  195724. .IP \(bu 2
  195725. \fBPR\fP \fI\%#47184\fP: (\fI\%Ch3LL\fP) Add status module integration modules tests for Windows
  195726. @ \fI2018\-04\-19 19:38:56 UTC\fP
  195727. .INDENT 2.0
  195728. .IP \(bu 2
  195729. 65f344e371 Merge pull request \fI\%#47184\fP from Ch3LL/status_test
  195730. .IP \(bu 2
  195731. 25a84428b8 Add status module integration modules tests for Windows
  195732. .UNINDENT
  195733. .IP \(bu 2
  195734. \fBPR\fP \fI\%#47163\fP: (\fI\%rallytime\fP) Updage jenkins module autodocs to use jenkinsmod name instead
  195735. @ \fI2018\-04\-19 19:35:00 UTC\fP
  195736. .INDENT 2.0
  195737. .IP \(bu 2
  195738. \fBPR\fP \fI\%#46801\fP: (\fI\%yagnik\fP) rename jenkins to jenkinsmod (refs: \fI\%#46900\fP, \fI\%#47163\fP)
  195739. .IP \(bu 2
  195740. 965600ad6c Merge pull request \fI\%#47163\fP from rallytime/jenkins\-autodoc
  195741. .IP \(bu 2
  195742. 0039395017 Updage jenkins module autodocs to use jenkinsmod name instead
  195743. .UNINDENT
  195744. .IP \(bu 2
  195745. \fBPR\fP \fI\%#47185\fP: (\fI\%twangboy\fP) Add additional integration tests to whitelist
  195746. @ \fI2018\-04\-19 18:20:25 UTC\fP
  195747. .INDENT 2.0
  195748. .IP \(bu 2
  195749. 0a43dde5fc Merge pull request \fI\%#47185\fP from twangboy/add_tests
  195750. .IP \(bu 2
  195751. 345daa0423 Add additional integration tests to whitelist
  195752. .UNINDENT
  195753. .IP \(bu 2
  195754. \fBPR\fP \fI\%#47172\fP: (\fI\%dwoz\fP) Allow non admin name based runs on windows
  195755. @ \fI2018\-04\-19 17:26:42 UTC\fP
  195756. .INDENT 2.0
  195757. .IP \(bu 2
  195758. 1a600bb9a4 Merge pull request \fI\%#47172\fP from dwoz/cover_without_admin
  195759. .IP \(bu 2
  195760. cadd759727 Use warnings to warn user
  195761. .IP \(bu 2
  195762. 144c68e214 Allow non admin name based runs on windows
  195763. .UNINDENT
  195764. .IP \(bu 2
  195765. \fBPR\fP \fI\%#47110\fP: (\fI\%kstreee\fP) Fixes misusing of the timeout option. (refs: \fI\%#47200\fP)
  195766. @ \fI2018\-04\-18 17:16:20 UTC\fP
  195767. .INDENT 2.0
  195768. .IP \(bu 2
  195769. \fBPR\fP \fI\%#46326\fP: (\fI\%kstreee\fP) Fixes a timing bug of saltnado\(aqs client local. (refs: \fI\%#47110\fP, \fI\%#47123\fP, \fI\%#47200\fP, \fI\%#47415\fP)
  195770. .IP \(bu 2
  195771. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  195772. .IP \(bu 2
  195773. d5997d2301 Merge pull request \fI\%#47110\fP from kstreee/fix\-misusing\-of\-timeout
  195774. .IP \(bu 2
  195775. 0624aee0ed Fixes misusing of the timeout option.
  195776. .UNINDENT
  195777. .IP \(bu 2
  195778. \fBISSUE\fP \fI\%#40948\fP: (\fI\%ScoreUnder\fP) salt\-call falsely reports a master as down if it does not have PKI directories created (refs: \fI\%#40961\fP)
  195779. .IP \(bu 2
  195780. \fBPR\fP \fI\%#40961\fP: (\fI\%terminalmage\fP) Make error more explicit when PKI dir not present for salt\-call
  195781. @ \fI2018\-04\-18 16:08:17 UTC\fP
  195782. .INDENT 2.0
  195783. .IP \(bu 2
  195784. 87ca2b4003 Merge pull request \fI\%#40961\fP from terminalmage/issue40948
  195785. .IP \(bu 2
  195786. 6ba66cca41 Fix incorrect logic in exception check
  195787. .IP \(bu 2
  195788. fed5041c5f Make error more specific to aid in troubleshooting
  195789. .IP \(bu 2
  195790. 8c67ab53b4 Fix path in log message
  195791. .IP \(bu 2
  195792. 3198ca8b19 Make error more explicit when PKI dir not present for salt\-call
  195793. .UNINDENT
  195794. .IP \(bu 2
  195795. \fBPR\fP \fI\%#47134\fP: (\fI\%Ch3LL\fP) Add user integration tests for windows OS
  195796. @ \fI2018\-04\-18 14:29:40 UTC\fP
  195797. .INDENT 2.0
  195798. .IP \(bu 2
  195799. f5e63584d4 Merge pull request \fI\%#47134\fP from Ch3LL/user_win_test
  195800. .IP \(bu 2
  195801. e7c9bc4038 Add user integration tests for windows OS
  195802. .UNINDENT
  195803. .IP \(bu 2
  195804. \fBPR\fP \fI\%#47131\fP: (\fI\%gtmanfred\fP) add __cli opts variable for master processes
  195805. @ \fI2018\-04\-17 21:33:57 UTC\fP
  195806. .INDENT 2.0
  195807. .IP \(bu 2
  195808. da2f6a3fac Merge pull request \fI\%#47131\fP from gtmanfred/cli
  195809. .IP \(bu 2
  195810. 1b1c29bf62 add __cli for master processes
  195811. .UNINDENT
  195812. .IP \(bu 2
  195813. \fBISSUE\fP \fI\%#47116\fP: (\fI\%pcjeff\fP) pip 10.0.0 can not import pip.req (refs: \fI\%#47121\fP)
  195814. .IP \(bu 2
  195815. \fBPR\fP \fI\%#47129\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47121\fP to 2017.7
  195816. @ \fI2018\-04\-17 20:45:11 UTC\fP
  195817. .INDENT 2.0
  195818. .IP \(bu 2
  195819. \fBPR\fP \fI\%#47121\fP: (\fI\%pcjeff\fP) fix pip import error in pip 10.0.0 (refs: \fI\%#47129\fP)
  195820. .IP \(bu 2
  195821. 9b8e6ffb8c Merge pull request \fI\%#47129\fP from rallytime/bp\-47121
  195822. .IP \(bu 2
  195823. 11da526b21 add ImportError
  195824. .IP \(bu 2
  195825. bd0c23396c fix pip.req import error in pip 10.0.0
  195826. .UNINDENT
  195827. .IP \(bu 2
  195828. \fBPR\fP \fI\%#47102\fP: (\fI\%gtmanfred\fP) dont allow using no_use_wheel for pip 10.0.0 or newer (refs: \fI\%#47220\fP)
  195829. @ \fI2018\-04\-17 20:44:58 UTC\fP
  195830. .INDENT 2.0
  195831. .IP \(bu 2
  195832. eb5ac51a48 Merge pull request \fI\%#47102\fP from gtmanfred/2017.7
  195833. .IP \(bu 2
  195834. 3dc93b310b fix tests
  195835. .IP \(bu 2
  195836. 8497e08f8e fix pip module for 10.0.0
  195837. .IP \(bu 2
  195838. 4c07a3d1e9 fix other tests
  195839. .IP \(bu 2
  195840. b71e3d8a04 dont allow using no_use_wheel for pip 10.0.0 or newer
  195841. .UNINDENT
  195842. .IP \(bu 2
  195843. \fBPR\fP \fI\%#47037\fP: (\fI\%twangboy\fP) Fix build_env scripts
  195844. @ \fI2018\-04\-17 18:54:17 UTC\fP
  195845. .INDENT 2.0
  195846. .IP \(bu 2
  195847. c1dc42e67e Merge pull request \fI\%#47037\fP from twangboy/fix_dev_scripts
  195848. .IP \(bu 2
  195849. 990a24d7ed Fix build_env scripts
  195850. .UNINDENT
  195851. .IP \(bu 2
  195852. \fBPR\fP \fI\%#47108\fP: (\fI\%dwoz\fP) Fix unit.utils.test_event.TestAsyncEventPublisher.test_event_subscription
  195853. @ \fI2018\-04\-17 00:25:07 UTC\fP
  195854. .INDENT 2.0
  195855. .IP \(bu 2
  195856. 6a4c0b8a1a Merge pull request \fI\%#47108\fP from dwoz/async_test_fix
  195857. .IP \(bu 2
  195858. 3d85e30ce5 AsyncTestCase is required for AsyncEventPublisher
  195859. .UNINDENT
  195860. .IP \(bu 2
  195861. \fBPR\fP \fI\%#47068\fP: (\fI\%cachedout\fP) Catch an operation on a closed socket in a test
  195862. @ \fI2018\-04\-16 19:56:03 UTC\fP
  195863. .INDENT 2.0
  195864. .IP \(bu 2
  195865. 03892eaf0b Merge pull request \fI\%#47068\fP from cachedout/catch_value_error_socket_test
  195866. .IP \(bu 2
  195867. 7db5625632 Catch an operation on a closed socket in a test
  195868. .UNINDENT
  195869. .IP \(bu 2
  195870. \fBPR\fP \fI\%#47065\fP: (\fI\%dwoz\fP) Jinja test fix
  195871. @ \fI2018\-04\-16 16:16:42 UTC\fP
  195872. .INDENT 2.0
  195873. .IP \(bu 2
  195874. 1ea2885ec2 Merge pull request \fI\%#47065\fP from dwoz/jinja_test_fix
  195875. .IP \(bu 2
  195876. 673cd31c65 Merge branch \(aq2017.7\(aq into jinja_test_fix
  195877. .UNINDENT
  195878. .IP \(bu 2
  195879. \fBPR\fP \fI\%#47077\fP: (\fI\%dwoz\fP) Fix failing state test by normalizing line endings
  195880. @ \fI2018\-04\-16 15:48:39 UTC\fP
  195881. .INDENT 2.0
  195882. .IP \(bu 2
  195883. 5293b5b5ca Merge pull request \fI\%#47077\fP from dwoz/test_state_fix
  195884. .IP \(bu 2
  195885. 444da3f893 Fix py3 wart (chr vs bytesstring)
  195886. .IP \(bu 2
  195887. e8acca01c2 Fix failing state test by normalizing line endings
  195888. .UNINDENT
  195889. .IP \(bu 2
  195890. \fBISSUE\fP \fI\%#46538\fP: (\fI\%HenriWahl\fP) salt\-cloud gives "FutureWarning: The behavior of this method will change in future versions." (refs: \fI\%#47067\fP)
  195891. .IP \(bu 2
  195892. \fBPR\fP \fI\%#47067\fP: (\fI\%gtmanfred\fP) use the recommended opennebula lookup method
  195893. @ \fI2018\-04\-16 15:48:15 UTC\fP
  195894. .INDENT 2.0
  195895. .IP \(bu 2
  195896. ca967de5da Merge pull request \fI\%#47067\fP from gtmanfred/2017.7
  195897. .IP \(bu 2
  195898. f913a7859c use the recommended opennebula lookup method
  195899. .UNINDENT
  195900. .IP \(bu 2
  195901. \fBPR\fP \fI\%#47064\fP: (\fI\%dwoz\fP) Fix fileserver roots tests
  195902. @ \fI2018\-04\-14 21:30:23 UTC\fP
  195903. .INDENT 2.0
  195904. .IP \(bu 2
  195905. 7fddad6cd9 Merge pull request \fI\%#47064\fP from dwoz/roots_tests_fix
  195906. .IP \(bu 2
  195907. 25fd7c0694 fix py3 wart, encode os.linesep
  195908. .IP \(bu 2
  195909. d79f1a1961 Fix fileserver roots tests
  195910. .UNINDENT
  195911. .IP \(bu 2
  195912. \fBPR\fP \fI\%#47069\fP: (\fI\%cachedout\fP) Pass the timeout variable to the CLI when calling salt in tests
  195913. @ \fI2018\-04\-14 15:20:25 UTC\fP
  195914. .INDENT 2.0
  195915. .IP \(bu 2
  195916. 977c6939c4 Merge pull request \fI\%#47069\fP from cachedout/match_timeout_arg
  195917. .IP \(bu 2
  195918. b8990f5258 Pass the timeout variable to the CLI when calling salt in tests
  195919. .UNINDENT
  195920. .IP \(bu 2
  195921. \fBPR\fP \fI\%#47074\fP: (\fI\%dwoz\fP) Kitchn should ignore artifacts directory
  195922. @ \fI2018\-04\-14 13:06:19 UTC\fP
  195923. .INDENT 2.0
  195924. .IP \(bu 2
  195925. 2c4c19c622 Merge pull request \fI\%#47074\fP from dwoz/ignore_artifacts
  195926. .IP \(bu 2
  195927. c3941efad0 Kitchn should ignore artifacts directory
  195928. .UNINDENT
  195929. .IP \(bu 2
  195930. \fBISSUE\fP \fI\%#47000\fP: (\fI\%mvintila\fP) Client API: full_return paramenter missing from cmd_subset function (refs: \fI\%#47055\fP)
  195931. .IP \(bu 2
  195932. \fBPR\fP \fI\%#47055\fP: (\fI\%mattp\-\fP) \fI\%#47000\fP \- add proper handling of full_return in cmd_subset
  195933. @ \fI2018\-04\-13 20:17:10 UTC\fP
  195934. .INDENT 2.0
  195935. .IP \(bu 2
  195936. c484c0bd71 Merge pull request \fI\%#47055\fP from bloomberg/GH\-47000
  195937. .IP \(bu 2
  195938. 8af3f5b874 GH\-47000: add proper handling of full_return in cmd_subset
  195939. .UNINDENT
  195940. .IP \(bu 2
  195941. \fBPR\fP \fI\%#47039\fP: (\fI\%twangboy\fP) Fix winrm powershell script
  195942. @ \fI2018\-04\-13 18:09:56 UTC\fP
  195943. .INDENT 2.0
  195944. .IP \(bu 2
  195945. f3496030cc Merge pull request \fI\%#47039\fP from twangboy/win_fix_winrm_script
  195946. .IP \(bu 2
  195947. 6635b9003f Fix winrm powershell script
  195948. .INDENT 2.0
  195949. .INDENT 3.5
  195950. .INDENT 0.0
  195951. .IP \(bu 2
  195952. 46fa2c04de Fix py3 os.linesep wart
  195953. .IP \(bu 2
  195954. 3c565d7e54 Use salt.utils.fopen
  195955. .IP \(bu 2
  195956. aa965310f1 Clean up cruft
  195957. .IP \(bu 2
  195958. efc9866580 Jinja test fixes
  195959. .UNINDENT
  195960. .UNINDENT
  195961. .UNINDENT
  195962. .UNINDENT
  195963. .IP \(bu 2
  195964. \fBPR\fP \fI\%#46326\fP: (\fI\%kstreee\fP) Fixes a timing bug of saltnado\(aqs client local. (refs: \fI\%#47110\fP, \fI\%#47123\fP, \fI\%#47200\fP, \fI\%#47415\fP)
  195965. @ \fI2018\-04\-13 13:59:28 UTC\fP
  195966. .INDENT 2.0
  195967. .IP \(bu 2
  195968. \fBPR\fP \fI\%#45874\fP: (\fI\%GwiYeong\fP) fix for local client timeout bug (refs: \fI\%#46326\fP)
  195969. .IP \(bu 2
  195970. 1700a10ebe Merge pull request \fI\%#46326\fP from kstreee/fix\-client\-local
  195971. .IP \(bu 2
  195972. 0f358a9c9e Fixes a timing bug of saltnado\(aqs client local.
  195973. .UNINDENT
  195974. .IP \(bu 2
  195975. \fBISSUE\fP \fI\%#46877\fP: (\fI\%trudesea\fP) Unable to apply GPO (Windows 2016) (refs: \fI\%#46913\fP)
  195976. .IP \(bu 2
  195977. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP)
  195978. .IP \(bu 2
  195979. \fBPR\fP \fI\%#46913\fP: (\fI\%lomeroe\fP) 2017.7 Fix \fI\%#46877\fP \-\- win_lgpo start/shutdown script reading
  195980. @ \fI2018\-04\-12 15:10:50 UTC\fP
  195981. .INDENT 2.0
  195982. .IP \(bu 2
  195983. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#46913\fP, \fI\%#47438\fP)
  195984. .IP \(bu 2
  195985. c3c00316c5 Merge pull request \fI\%#46913\fP from lomeroe/2017_7\-fix46877
  195986. .IP \(bu 2
  195987. 369a0645ed move exception for clarity
  195988. .IP \(bu 2
  195989. 32ce5bfda5 Use configparser serializer object to read psscript.ini and script.ini startup/shutdown script files.
  195990. .UNINDENT
  195991. .IP \(bu 2
  195992. \fBPR\fP \fI\%#47025\fP: (\fI\%terminalmage\fP) Fix server_id grain in PY3 on Windows
  195993. @ \fI2018\-04\-12 15:08:00 UTC\fP
  195994. .INDENT 2.0
  195995. .IP \(bu 2
  195996. 9e37cfc9d6 Merge pull request \fI\%#47025\fP from terminalmage/fix\-server_id\-windows
  195997. .IP \(bu 2
  195998. cb0cf89ed3 Fix server_id grain in PY3 on Windows
  195999. .UNINDENT
  196000. .IP \(bu 2
  196001. \fBPR\fP \fI\%#47027\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44508\fP to 2017.7
  196002. @ \fI2018\-04\-12 15:05:51 UTC\fP
  196003. .INDENT 2.0
  196004. .IP \(bu 2
  196005. \fBPR\fP \fI\%#44508\fP: (\fI\%mzbroch\fP) Capirca integration (refs: \fI\%#47027\fP)
  196006. .IP \(bu 2
  196007. 2e193cfb45 Merge pull request \fI\%#47027\fP from rallytime/bp\-44508
  196008. .IP \(bu 2
  196009. 8e72f362f4 Add priority field to support the latest capirca.
  196010. .IP \(bu 2
  196011. 112f92baab Add priority field to support the latest capirca.
  196012. .UNINDENT
  196013. .IP \(bu 2
  196014. \fBPR\fP \fI\%#47020\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46970\fP to 2017.7
  196015. @ \fI2018\-04\-11 21:48:25 UTC\fP
  196016. .INDENT 2.0
  196017. .IP \(bu 2
  196018. \fBPR\fP \fI\%#46970\fP: (\fI\%garethgreenaway\fP) [2017.7] fix to pkgrepo comments test (refs: \fI\%#47020\fP)
  196019. .IP \(bu 2
  196020. 385fe2bc1e Merge pull request \fI\%#47020\fP from rallytime/bp\-46970
  196021. .IP \(bu 2
  196022. 9373dff52b Update test_pkgrepo.py
  196023. .IP \(bu 2
  196024. 13cf9eb5b1 Removing debugging.
  196025. .IP \(bu 2
  196026. a61a8593e5 Removing suse from pkgrepo comments tests. the pkgrepo functions in SUSE pkg module do not support comments.
  196027. .UNINDENT
  196028. .IP \(bu 2
  196029. \fBISSUE\fP \fI\%#46504\fP: (\fI\%jfoboss\fP) ntp.managed fails on non\-english systems (refs: \fI\%#46539\fP)
  196030. .IP \(bu 2
  196031. \fBPR\fP \fI\%#46539\fP: (\fI\%jfoboss\fP) \fI\%#46504\fP Fix
  196032. @ \fI2018\-04\-11 14:13:24 UTC\fP
  196033. .INDENT 2.0
  196034. .IP \(bu 2
  196035. 8f994e7cf9 Merge pull request \fI\%#46539\fP from jfoboss/patch\-1
  196036. .IP \(bu 2
  196037. 6890122e41 Merge pull request #1 from twangboy/pull_46539
  196038. .INDENT 2.0
  196039. .IP \(bu 2
  196040. 19c3fadbe5 Fix unit test for win_ntp
  196041. .UNINDENT
  196042. .IP \(bu 2
  196043. 826a8d3099 Fixing \fI\%#46504\fP
  196044. .UNINDENT
  196045. .IP \(bu 2
  196046. \fBPR\fP \fI\%#46999\fP: (\fI\%gtmanfred\fP) switch pip test package
  196047. @ \fI2018\-04\-10 21:18:33 UTC\fP
  196048. .INDENT 2.0
  196049. .IP \(bu 2
  196050. 74d70e95a5 Merge pull request \fI\%#46999\fP from gtmanfred/2017.7
  196051. .IP \(bu 2
  196052. 791af8f6ce switch pip test package
  196053. .UNINDENT
  196054. .IP \(bu 2
  196055. \fBPR\fP \fI\%#46023\fP: (\fI\%mattp\-\fP) add parallel support for orchestrations
  196056. @ \fI2018\-04\-10 19:26:04 UTC\fP
  196057. .INDENT 2.0
  196058. .IP \(bu 2
  196059. 8adaf7f526 Merge pull request \fI\%#46023\fP from bloomberg/parallel\-orch
  196060. .IP \(bu 2
  196061. 0ac0b3ca29 Merge branch \(aq2017.7\(aq into parallel\-orch
  196062. .UNINDENT
  196063. .IP \(bu 2
  196064. \fBISSUE\fP \fI\%#46581\fP: (\fI\%qcpeter\fP) puppet.fact tries to parse output to stderr (refs: \fI\%#46613\fP)
  196065. .IP \(bu 2
  196066. \fBPR\fP \fI\%#46613\fP: (\fI\%myinitialsarepm\fP) Fix puppet.fact and puppet.facts to use stdout.
  196067. @ \fI2018\-04\-10 15:18:07 UTC\fP
  196068. .INDENT 2.0
  196069. .IP \(bu 2
  196070. 39d65a39cf Merge pull request \fI\%#46613\fP from myinitialsarepm/fix_puppet.fact_and_puppet.facts
  196071. .IP \(bu 2
  196072. 44ecd13abc Update tests to use cmd.run_all
  196073. .IP \(bu 2
  196074. 7d7d40f541 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  196075. .IP \(bu 2
  196076. 0ce1520bd0 Merge branch \(aq2017.7\(aq into fix_puppet.fact_and_puppet.facts
  196077. .IP \(bu 2
  196078. 69e1f6f681 Fix puppet.fact and puppet.facts to use stdout.
  196079. .UNINDENT
  196080. .IP \(bu 2
  196081. \fBPR\fP \fI\%#46991\fP: (\fI\%gtmanfred\fP) use saltstack salt\-jenkins
  196082. @ \fI2018\-04\-10 14:19:00 UTC\fP
  196083. .INDENT 2.0
  196084. .IP \(bu 2
  196085. ba5421d988 Merge pull request \fI\%#46991\fP from gtmanfred/windows
  196086. .IP \(bu 2
  196087. 98588c1dc5 use saltstack salt\-jenkins
  196088. .UNINDENT
  196089. .IP \(bu 2
  196090. \fBPR\fP \fI\%#46975\fP: (\fI\%gtmanfred\fP) Make windows work for test runs in jenkinsci
  196091. @ \fI2018\-04\-10 13:41:18 UTC\fP
  196092. .INDENT 2.0
  196093. .IP \(bu 2
  196094. 00c4067585 Merge pull request \fI\%#46975\fP from gtmanfred/windows
  196095. .IP \(bu 2
  196096. 1f69c0d7f8 make sure windows outputs xml junit files
  196097. .IP \(bu 2
  196098. 4a2ec1bbb3 support new versions of winrm\-fs
  196099. .IP \(bu 2
  196100. b9efec8526 remove libnacl on windows
  196101. .IP \(bu 2
  196102. 2edd5eaf9e fix path
  196103. .IP \(bu 2
  196104. b03e272e44 windows work
  196105. .UNINDENT
  196106. .IP \(bu 2
  196107. \fBPR\fP \fI\%#46945\fP: (\fI\%vutny\fP) [DOC] Fix Jinja block in FAQ page
  196108. @ \fI2018\-04\-09 13:05:28 UTC\fP
  196109. .INDENT 2.0
  196110. .IP \(bu 2
  196111. 3cf2353e41 Merge pull request \fI\%#46945\fP from vutny/doc\-faq\-fix\-jinja
  196112. .IP \(bu 2
  196113. bfdf54e61d [DOC] Fix Jinja block in FAQ page
  196114. .UNINDENT
  196115. .IP \(bu 2
  196116. \fBPR\fP \fI\%#46925\fP: (\fI\%terminalmage\fP) Remove reference to directory support in file.patch state
  196117. @ \fI2018\-04\-06 13:54:47 UTC\fP
  196118. .INDENT 2.0
  196119. .IP \(bu 2
  196120. fc2f728665 Merge pull request \fI\%#46925\fP from terminalmage/fix\-file.patch\-docstring
  196121. .IP \(bu 2
  196122. 97695657f0 Remove reference to directory support in file.patch state
  196123. .UNINDENT
  196124. .IP \(bu 2
  196125. \fBPR\fP \fI\%#46900\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46801\fP to 2017.7
  196126. @ \fI2018\-04\-06 13:47:44 UTC\fP
  196127. .INDENT 2.0
  196128. .IP \(bu 2
  196129. \fBPR\fP \fI\%#46801\fP: (\fI\%yagnik\fP) rename jenkins to jenkinsmod (refs: \fI\%#46900\fP, \fI\%#47163\fP)
  196130. .IP \(bu 2
  196131. eef6c518e1 Merge pull request \fI\%#46900\fP from rallytime/bp\-46801
  196132. .IP \(bu 2
  196133. 6a41e8b457 rename jenkins to jenkinsmod
  196134. .UNINDENT
  196135. .IP \(bu 2
  196136. \fBPR\fP \fI\%#46899\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45116\fP to 2017.7
  196137. @ \fI2018\-04\-06 13:47:17 UTC\fP
  196138. .INDENT 2.0
  196139. .IP \(bu 2
  196140. \fBPR\fP \fI\%#45116\fP: (\fI\%arif\-ali\fP) fix adding parameters to http.query from sdb yaml (refs: \fI\%#46899\fP)
  196141. .IP \(bu 2
  196142. 71839b0303 Merge pull request \fI\%#46899\fP from rallytime/bp\-45116
  196143. .IP \(bu 2
  196144. b92f908da4 fix adding parameters to http.query from sdb yaml
  196145. .INDENT 2.0
  196146. .INDENT 3.5
  196147. .INDENT 0.0
  196148. .IP \(bu 2
  196149. 3d5e69600b address lint issues raised by @isbm
  196150. .IP \(bu 2
  196151. a9866c7a03 fix parallel mode py3 compatibility
  196152. .IP \(bu 2
  196153. 6d7730864a removing prereq from test orch
  196154. .IP \(bu 2
  196155. 6c8a25778f add integration test to runners/test_state to exercise parallel
  196156. .IP \(bu 2
  196157. 2c86f16b39 cherry\-pick cdata KeyError prevention from \fI\%#39832\fP
  196158. .IP \(bu 2
  196159. 26a96e8933 record start/stop duration for parallel processes separately
  196160. .IP \(bu 2
  196161. e4844bdf2b revisit previous join() behavior in check_requisites
  196162. .IP \(bu 2
  196163. f00a359cdf join() parallel process instead of a recursive sleep
  196164. .IP \(bu 2
  196165. 6e7007a4dc add parallel support for orchestrations
  196166. .UNINDENT
  196167. .UNINDENT
  196168. .UNINDENT
  196169. .UNINDENT
  196170. .IP \(bu 2
  196171. \fBISSUE\fP \fI\%#43529\fP: (\fI\%Ch3LL\fP) Add publisher_acl Test to Auto Test Suite (refs: \fI\%#44926\fP)
  196172. .IP \(bu 2
  196173. \fBPR\fP \fI\%#44926\fP: (\fI\%frogunder\fP) whitelist_acl_test
  196174. @ \fI2018\-04\-05 15:09:26 UTC\fP
  196175. .INDENT 2.0
  196176. .IP \(bu 2
  196177. d0f5b43753 Merge pull request \fI\%#44926\fP from frogunder/whitelisted_acl
  196178. .IP \(bu 2
  196179. 18e460fc30 Merge branch \(aq2017.7\(aq into whitelisted_acl
  196180. .IP \(bu 2
  196181. 1ad4d7d988 fix assert errors
  196182. .IP \(bu 2
  196183. e6a56016df update test
  196184. .IP \(bu 2
  196185. 19a2244cb7 whitelist_acl_test
  196186. .UNINDENT
  196187. .IP \(bu 2
  196188. \fBISSUE\fP \fI\%#46456\fP: (\fI\%vitaliyf\fP) "ValueError" when running orch with "subset" (refs: \fI\%#46464\fP)
  196189. .IP \(bu 2
  196190. \fBPR\fP \fI\%#46464\fP: (\fI\%gtmanfred\fP) fix salt subset in orchestrator
  196191. @ \fI2018\-04\-05 14:52:01 UTC\fP
  196192. .INDENT 2.0
  196193. .IP \(bu 2
  196194. 7d822f9cec Merge pull request \fI\%#46464\fP from gtmanfred/orchestration
  196195. .IP \(bu 2
  196196. 637cdc6b7b fix pylint
  196197. .IP \(bu 2
  196198. 0151013ddb document \fIcli\fP option for cmd_subset
  196199. .IP \(bu 2
  196200. 4a3ed6607d add test for subset in orchestration
  196201. .IP \(bu 2
  196202. 3112359dd6 fix salt subset in orchestrator
  196203. .UNINDENT
  196204. .IP \(bu 2
  196205. \fBISSUE\fP \fI\%#46523\fP: (\fI\%dwoz\fP) Add a test to the cloud suite for Windows minion on EC2 (refs: \fI\%#46879\fP)
  196206. .IP \(bu 2
  196207. \fBPR\fP \fI\%#46879\fP: (\fI\%dwoz\fP) Fix multiple typos causing tests to fail
  196208. @ \fI2018\-04\-05 13:59:28 UTC\fP
  196209. .INDENT 2.0
  196210. .IP \(bu 2
  196211. 805ed1c964 Merge pull request \fI\%#46879\fP from dwoz/cloudtestfix
  196212. .IP \(bu 2
  196213. dc54fc53c3 Fix multiple typos causing tests to fail
  196214. .UNINDENT
  196215. .IP \(bu 2
  196216. \fBPR\fP \fI\%#46647\fP: (\fI\%twangboy\fP) Fix the tear down function in integration.modules.test_grains
  196217. @ \fI2018\-04\-04 21:14:06 UTC\fP
  196218. .INDENT 2.0
  196219. .IP \(bu 2
  196220. f70f6de282 Merge pull request \fI\%#46647\fP from twangboy/win_fix_test_grains
  196221. .IP \(bu 2
  196222. c179388b0e Fix the tear down function in integration.modules.test_grains.GrainsAppendTestCase
  196223. .UNINDENT
  196224. .IP \(bu 2
  196225. \fBISSUE\fP \fI\%#46754\fP: (\fI\%nages13\fP) grain item virtual_subtype shows \(aqXen PV DomU\(aq on Docker containers (refs: \fI\%#46756\fP)
  196226. .IP \(bu 2
  196227. \fBISSUE\fP \fI\%#43405\fP: (\fI\%kfix\fP) LXD\-created LXC container is detected as a Xen domU (refs: \fI\%#46756\fP)
  196228. .IP \(bu 2
  196229. \fBPR\fP \fI\%#46756\fP: (\fI\%nages13\fP) fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  196230. @ \fI2018\-04\-04 20:53:49 UTC\fP
  196231. .INDENT 2.0
  196232. .IP \(bu 2
  196233. 91c078ce12 Merge pull request \fI\%#46756\fP from nages13/bugfix\-grain\-virtual_subtype
  196234. .IP \(bu 2
  196235. 781f5030a4 Merge branch \(aqbugfix\-grain\-virtual_subtype\(aq of \fI\%https://github.com/nages13/salt\fP into bugfix\-grain\-virtual_subtype
  196236. .INDENT 2.0
  196237. .IP \(bu 2
  196238. cd1ac4b7f9 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196239. .IP \(bu 2
  196240. 0ace76c0e7 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196241. .IP \(bu 2
  196242. 9eb6f5c0d0 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196243. .IP \(bu 2
  196244. 73d6d9d365 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196245. .IP \(bu 2
  196246. a4a17eba6a Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196247. .IP \(bu 2
  196248. bf5034dbdb Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196249. .IP \(bu 2
  196250. 8d12770951 Merge branch \(aq2017.7\(aq into bugfix\-grain\-virtual_subtype
  196251. .UNINDENT
  196252. .IP \(bu 2
  196253. 7e704c0e81 Moved down container check code below hypervisors to validate containers type running in virtual environment. Fixes \fI\%#46754\fP & \fI\%#43405\fP
  196254. .IP \(bu 2
  196255. 710f74c4a6 fix grains[\(aqvirtual_subtype\(aq] to show Docker on xen kernels
  196256. .UNINDENT
  196257. .IP \(bu 2
  196258. \fBISSUE\fP \fI\%#46762\fP: (\fI\%ScoreUnder\fP) prereq stack overflow (refs: \fI\%#46788\fP, \fI\%#46799\fP)
  196259. .IP \(bu 2
  196260. \fBPR\fP \fI\%#46799\fP: (\fI\%garethgreenaway\fP) [2017.7] Adding test for PR \fI\%#46788\fP
  196261. @ \fI2018\-04\-04 20:41:23 UTC\fP
  196262. .INDENT 2.0
  196263. .IP \(bu 2
  196264. \fBPR\fP \fI\%#46788\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure failed tags are added to self.pre (refs: \fI\%#46799\fP)
  196265. .IP \(bu 2
  196266. 058bbed221 Merge pull request \fI\%#46799\fP from garethgreenaway/46762_prereq_shenanigans_tests
  196267. .IP \(bu 2
  196268. 13875e78cf Fixing documention string for test.
  196269. .IP \(bu 2
  196270. 3d288c44d4 Fixing test documentation
  196271. .IP \(bu 2
  196272. 6cff02ef6a Adding tests for \fI\%#46788\fP
  196273. .UNINDENT
  196274. .IP \(bu 2
  196275. \fBPR\fP \fI\%#46867\fP: (\fI\%terminalmage\fP) Backport string arg normalization to 2017.7 branch
  196276. @ \fI2018\-04\-04 18:06:57 UTC\fP
  196277. .INDENT 2.0
  196278. .IP \(bu 2
  196279. d9770bf3f8 Merge pull request \fI\%#46867\fP from terminalmage/unicode\-logging\-normalization
  196280. .IP \(bu 2
  196281. 7652688e83 Backport string arg normalization to 2017.7 branch
  196282. .UNINDENT
  196283. .IP \(bu 2
  196284. \fBPR\fP \fI\%#46770\fP: (\fI\%twangboy\fP) Change the order of SID Lookup
  196285. @ \fI2018\-04\-04 17:33:10 UTC\fP
  196286. .INDENT 2.0
  196287. .IP \(bu 2
  196288. 9eb98b1f6e Merge pull request \fI\%#46770\fP from twangboy/fix_46433
  196289. .IP \(bu 2
  196290. 89af0a6222 Merge branch \(aq2017.7\(aq into fix_46433
  196291. .IP \(bu 2
  196292. 67b4697578 Remove unused import (ling)
  196293. .IP \(bu 2
  196294. 9302fa5ab0 Clean up code comments
  196295. .IP \(bu 2
  196296. b383b9b330 Change the order of SID Lookup
  196297. .UNINDENT
  196298. .IP \(bu 2
  196299. \fBISSUE\fP \fI\%#46826\fP: (\fI\%robgott\fP) grain modules using tuples affect targeting (refs: \fI\%#46839\fP)
  196300. .IP \(bu 2
  196301. \fBPR\fP \fI\%#46839\fP: (\fI\%gtmanfred\fP) match tuple for targets as well
  196302. @ \fI2018\-04\-04 14:07:12 UTC\fP
  196303. .INDENT 2.0
  196304. .IP \(bu 2
  196305. 9c776cffb7 Merge pull request \fI\%#46839\fP from gtmanfred/tupletarget
  196306. .IP \(bu 2
  196307. 3b7208ce27 match tuple for targets as well
  196308. .UNINDENT
  196309. .IP \(bu 2
  196310. \fBISSUE\fP \fI\%#40245\fP: (\fI\%czhong111\fP) salt\-api automatically restart caused by "opening too many files" (refs: \fI\%#46817\fP)
  196311. .IP \(bu 2
  196312. \fBISSUE\fP \fI\%#36374\fP: (\fI\%szjur\fP) Descriptor leaks in multithreaded environment (refs: \fI\%#46817\fP)
  196313. .IP \(bu 2
  196314. \fBISSUE\fP \fI\%#20639\fP: (\fI\%GrizzlyV\fP) salt.client.LocalClient leaks connections to local salt master (refs: \fI\%#46817\fP)
  196315. .IP \(bu 2
  196316. \fBPR\fP \fI\%#46845\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46817\fP to 2017.7
  196317. @ \fI2018\-04\-03 19:52:29 UTC\fP
  196318. .INDENT 2.0
  196319. .IP \(bu 2
  196320. \fBPR\fP \fI\%#46817\fP: (\fI\%mattp\-\fP) address filehandle/event leak in async run_job invocations (refs: \fI\%#46845\fP)
  196321. .IP \(bu 2
  196322. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#46817\fP)
  196323. .IP \(bu 2
  196324. 7db251dc11 Merge pull request \fI\%#46845\fP from rallytime/bp\-46817
  196325. .IP \(bu 2
  196326. 36a0f6d8ca address filehandle/event leak in async run_job invocations
  196327. .UNINDENT
  196328. .IP \(bu 2
  196329. \fBPR\fP \fI\%#46847\fP: (\fI\%dwoz\fP) strdup from libc is not available on windows
  196330. @ \fI2018\-04\-03 19:51:33 UTC\fP
  196331. .INDENT 2.0
  196332. .IP \(bu 2
  196333. e3d17ab7bc Merge pull request \fI\%#46847\fP from dwoz/missing\-strdup
  196334. .IP \(bu 2
  196335. 55845f4846 strdup from libc is not available on windows
  196336. .UNINDENT
  196337. .IP \(bu 2
  196338. \fBISSUE\fP \fI\%#46765\fP: (\fI\%roskens\fP) pkg.mod_repo fails with a python error when removing a dictionary key (refs: \fI\%#46776\fP)
  196339. .IP \(bu 2
  196340. \fBPR\fP \fI\%#46776\fP: (\fI\%gtmanfred\fP) fix shrinking list in for loop bug
  196341. @ \fI2018\-04\-03 17:32:16 UTC\fP
  196342. .INDENT 2.0
  196343. .IP \(bu 2
  196344. f2dd79f9c4 Merge pull request \fI\%#46776\fP from gtmanfred/2017.7
  196345. .IP \(bu 2
  196346. edc1059ee0 fix shrinking list in for loop bug
  196347. .UNINDENT
  196348. .IP \(bu 2
  196349. \fBPR\fP \fI\%#46838\fP: (\fI\%gtmanfred\fP) use http registry for npm
  196350. @ \fI2018\-04\-03 17:02:32 UTC\fP
  196351. .INDENT 2.0
  196352. .IP \(bu 2
  196353. 1941426218 Merge pull request \fI\%#46838\fP from gtmanfred/npm
  196354. .IP \(bu 2
  196355. bff61dd291 use http registry for npm
  196356. .UNINDENT
  196357. .IP \(bu 2
  196358. \fBISSUE\fP \fI\%#42312\fP: (\fI\%frogunder\fP) salt\-call \-\-local sys.doc none gives error/traceback in raspberry pi (refs: \fI\%#46823\fP)
  196359. .IP \(bu 2
  196360. \fBPR\fP \fI\%#46823\fP: (\fI\%rallytime\fP) Improve __virtual__ checks in sensehat module
  196361. @ \fI2018\-04\-03 16:56:08 UTC\fP
  196362. .INDENT 2.0
  196363. .IP \(bu 2
  196364. e544254e7b Merge pull request \fI\%#46823\fP from rallytime/fix\-42312
  196365. .IP \(bu 2
  196366. dafa820f93 Improve __virtual__ checks in sensehat module
  196367. .UNINDENT
  196368. .IP \(bu 2
  196369. \fBPR\fP \fI\%#46641\fP: (\fI\%skizunov\fP) Make LazyLoader thread safe
  196370. @ \fI2018\-04\-03 16:09:17 UTC\fP
  196371. .INDENT 2.0
  196372. .IP \(bu 2
  196373. 37f6d2de35 Merge pull request \fI\%#46641\fP from skizunov/develop3
  196374. .IP \(bu 2
  196375. c624aa4827 Make LazyLoader thread safe
  196376. .UNINDENT
  196377. .IP \(bu 2
  196378. \fBPR\fP \fI\%#46837\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2016.11 to 2017.7
  196379. @ \fI2018\-04\-03 14:54:10 UTC\fP
  196380. .INDENT 2.0
  196381. .IP \(bu 2
  196382. 989508b100 Merge pull request \fI\%#46837\fP from rallytime/merge\-2017.7
  196383. .IP \(bu 2
  196384. 8522c1d634 Merge branch \(aq2016.11\(aq into \(aq2017.7\(aq
  196385. .IP \(bu 2
  196386. 3e844ed1df Merge pull request \fI\%#46739\fP from rallytime/2016.11_update_version_doc
  196387. .IP \(bu 2
  196388. 4d9fc5cc0f Update release versions for the 2016.11 branch
  196389. .UNINDENT
  196390. .IP \(bu 2
  196391. \fBPR\fP \fI\%#46740\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  196392. @ \fI2018\-04\-03 14:36:07 UTC\fP
  196393. .INDENT 2.0
  196394. .IP \(bu 2
  196395. 307e7f35f9 Merge pull request \fI\%#46740\fP from rallytime/2017.7_update_version_doc
  196396. .IP \(bu 2
  196397. 7edf98d224 Update 2018.3.0 information and move branch from "latest" to "previous"
  196398. .IP \(bu 2
  196399. 5336e866ac Update release versions for the 2017.7 branch
  196400. .UNINDENT
  196401. .IP \(bu 2
  196402. \fBPR\fP \fI\%#46783\fP: (\fI\%twangboy\fP) Fix network.managed test=True on Windows
  196403. @ \fI2018\-04\-03 12:54:56 UTC\fP
  196404. .INDENT 2.0
  196405. .IP \(bu 2
  196406. ebf5dd276f Merge pull request \fI\%#46783\fP from twangboy/fix_46680
  196407. .IP \(bu 2
  196408. da5ce25ef3 Fix unit tests on Linux
  196409. .IP \(bu 2
  196410. b7f4f377cd Add space I removed
  196411. .IP \(bu 2
  196412. f1c68a09b5 Fix network.managed test=True on Windows
  196413. .UNINDENT
  196414. .IP \(bu 2
  196415. \fBPR\fP \fI\%#46821\fP: (\fI\%rallytime\fP) Fix the new test failures from the mantest changes
  196416. @ \fI2018\-04\-03 12:40:51 UTC\fP
  196417. .INDENT 2.0
  196418. .IP \(bu 2
  196419. \fBPR\fP \fI\%#46778\fP: (\fI\%terminalmage\fP) Replace flaky SPM man test (refs: \fI\%#46821\fP)
  196420. .IP \(bu 2
  196421. f652f25cc1 Merge pull request \fI\%#46821\fP from rallytime/fix\-mantest\-failures
  196422. .IP \(bu 2
  196423. 209a8029c3 Fix the new test failures from the mantest changes
  196424. .UNINDENT
  196425. .IP \(bu 2
  196426. \fBISSUE\fP \fI\%#46627\fP: (\fI\%vangourd\fP) Win_LGPO fails on writing Administrative Template for Remote Assistance (refs: \fI\%#46800\fP)
  196427. .IP \(bu 2
  196428. \fBPR\fP \fI\%#46800\fP: (\fI\%lomeroe\fP) fix win_lgpo to correctly create valuenames of list item types
  196429. @ \fI2018\-04\-03 12:38:45 UTC\fP
  196430. .INDENT 2.0
  196431. .IP \(bu 2
  196432. c460f62081 Merge pull request \fI\%#46800\fP from lomeroe/2017_7\-46627
  196433. .IP \(bu 2
  196434. 2bee383e9d correct create list item value names if the valuePrefix attribute does not exist on the list item, the value is the value name, other wise, the valuename a number with the valuePrefix prepended to it
  196435. .UNINDENT
  196436. .IP \(bu 2
  196437. \fBISSUE\fP \fI\%#46347\fP: (\fI\%twangboy\fP) Buid 449: unit.modules.test_inspect_collector (refs: \fI\%#46675\fP)
  196438. .IP \(bu 2
  196439. \fBPR\fP \fI\%#46675\fP: (\fI\%dwoz\fP) Skip test when git symlinks are not configured
  196440. @ \fI2018\-04\-03 12:19:19 UTC\fP
  196441. .INDENT 2.0
  196442. .IP \(bu 2
  196443. df26f2641e Merge pull request \fI\%#46675\fP from dwoz/inspectlib\-tests
  196444. .IP \(bu 2
  196445. d39f4852d8 Handle non\-zero status exception
  196446. .IP \(bu 2
  196447. 83c005802b Handle cases where git can not be found
  196448. .IP \(bu 2
  196449. 628b87d5c4 Skip test when git symlinks are not configured
  196450. .UNINDENT
  196451. .IP \(bu 2
  196452. \fBISSUE\fP \fI\%#46808\fP: (\fI\%ezh\fP) Sharedsecret authentication is broken (refs: \fI\%#46809\fP)
  196453. .IP \(bu 2
  196454. \fBPR\fP \fI\%#46815\fP: (\fI\%terminalmage\fP) Backport \fI\%#46809\fP to 2017.7
  196455. @ \fI2018\-04\-02 20:05:15 UTC\fP
  196456. .INDENT 2.0
  196457. .IP \(bu 2
  196458. \fBPR\fP \fI\%#46809\fP: (\fI\%ezh\fP) Fix sharedsecret authentication (refs: \fI\%#46815\fP)
  196459. .IP \(bu 2
  196460. 4083e7c460 Merge pull request \fI\%#46815\fP from terminalmage/bp\-46809
  196461. .IP \(bu 2
  196462. 71d5601507 Fix sharedsecret authentication
  196463. .UNINDENT
  196464. .IP \(bu 2
  196465. \fBPR\fP \fI\%#46769\fP: (\fI\%dwoz\fP) Adding windows minion tests for salt cloud
  196466. @ \fI2018\-04\-02 18:51:49 UTC\fP
  196467. .INDENT 2.0
  196468. .IP \(bu 2
  196469. 3bac9717f4 Merge pull request \fI\%#46769\fP from dwoz/wincloudtest
  196470. .IP \(bu 2
  196471. eabc234e5d Fix config override name
  196472. .IP \(bu 2
  196473. 5c22a0f88d Use aboslute imports
  196474. .IP \(bu 2
  196475. 810042710d Set default cloud test timeout back to 500 seconds
  196476. .IP \(bu 2
  196477. 5ac89ad307 Use winrm_verify_ssl option causing tests to pass
  196478. .IP \(bu 2
  196479. 71858a709c allow not verifying ssl winrm saltcloud
  196480. .IP \(bu 2
  196481. ba5f11476c Adding windows minion tests for salt cloud
  196482. .UNINDENT
  196483. .IP \(bu 2
  196484. \fBPR\fP \fI\%#46786\fP: (\fI\%twangboy\fP) Return int(\-1) when pidfile contains invalid data
  196485. @ \fI2018\-04\-02 18:42:12 UTC\fP
  196486. .INDENT 2.0
  196487. .IP \(bu 2
  196488. f1be939763 Merge pull request \fI\%#46786\fP from twangboy/fix_46757
  196489. .IP \(bu 2
  196490. b0053250ff Remove int(), just return \-1
  196491. .IP \(bu 2
  196492. 7d56126d74 Fixes some lint
  196493. .IP \(bu 2
  196494. 49b3e937da Return int(\-1) when pidfile contains invalid data
  196495. .UNINDENT
  196496. .IP \(bu 2
  196497. \fBPR\fP \fI\%#46814\fP: (\fI\%terminalmage\fP) Backport \fI\%#46772\fP to 2017.7
  196498. @ \fI2018\-04\-02 18:39:37 UTC\fP
  196499. .INDENT 2.0
  196500. .IP \(bu 2
  196501. \fBPR\fP \fI\%#46772\fP: (\fI\%bmiguel\-teixeira\fP) fix container removal if auto_remove was enabled (refs: \fI\%#46814\fP)
  196502. .IP \(bu 2
  196503. 89bf24b15c Merge pull request \fI\%#46814\fP from terminalmage/bp\-46772
  196504. .IP \(bu 2
  196505. a9f26f2ab8 avoid breaking if AutoRemove is not found
  196506. .IP \(bu 2
  196507. 97779c965d fix container removal if auto_remove was enabled
  196508. .UNINDENT
  196509. .IP \(bu 2
  196510. \fBPR\fP \fI\%#46813\fP: (\fI\%terminalmage\fP) Get rid of confusing debug logging
  196511. @ \fI2018\-04\-02 18:19:27 UTC\fP
  196512. .INDENT 2.0
  196513. .IP \(bu 2
  196514. 5ea4ffbdb6 Merge pull request \fI\%#46813\fP from terminalmage/event\-debug\-log
  196515. .IP \(bu 2
  196516. 5d6de3a2eb Get rid of confusing debug logging
  196517. .UNINDENT
  196518. .IP \(bu 2
  196519. \fBPR\fP \fI\%#46766\fP: (\fI\%twangboy\fP) Change the way we\(aqre cleaning up after some tests
  196520. @ \fI2018\-03\-30 18:01:03 UTC\fP
  196521. .INDENT 2.0
  196522. .IP \(bu 2
  196523. e533b7182d Merge pull request \fI\%#46766\fP from twangboy/win_fix_test_git
  196524. .IP \(bu 2
  196525. 5afc66452c Remove unused/redundant imports
  196526. .IP \(bu 2
  196527. 88fd72c52c Use with_tempfile decorator where possible
  196528. .UNINDENT
  196529. .IP \(bu 2
  196530. \fBPR\fP \fI\%#46778\fP: (\fI\%terminalmage\fP) Replace flaky SPM man test (refs: \fI\%#46821\fP)
  196531. @ \fI2018\-03\-30 17:55:14 UTC\fP
  196532. .INDENT 2.0
  196533. .IP \(bu 2
  196534. 69d450db84 Merge pull request \fI\%#46778\fP from terminalmage/salt\-jenkins\-906
  196535. .IP \(bu 2
  196536. bbfd35d3ea Replace flaky SPM man test
  196537. .UNINDENT
  196538. .IP \(bu 2
  196539. \fBISSUE\fP \fI\%#46762\fP: (\fI\%ScoreUnder\fP) prereq stack overflow (refs: \fI\%#46788\fP, \fI\%#46799\fP)
  196540. .IP \(bu 2
  196541. \fBPR\fP \fI\%#46788\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure failed tags are added to self.pre (refs: \fI\%#46799\fP)
  196542. @ \fI2018\-03\-30 17:11:38 UTC\fP
  196543. .INDENT 2.0
  196544. .IP \(bu 2
  196545. c935ffb740 Merge pull request \fI\%#46788\fP from garethgreenaway/46762_prereq_shenanigans
  196546. .IP \(bu 2
  196547. fa7aed6424 Ensure failed tags are added to self.pre.
  196548. .UNINDENT
  196549. .IP \(bu 2
  196550. \fBISSUE\fP \fI\%#46354\fP: (\fI\%twangboy\fP) Build 449: unit.test_state (refs: \fI\%#46655\fP)
  196551. .IP \(bu 2
  196552. \fBISSUE\fP \fI\%#46350\fP: (\fI\%twangboy\fP) Build 449: unit.test_pyobjects.RendererTests (refs: \fI\%#46655\fP)
  196553. .IP \(bu 2
  196554. \fBISSUE\fP \fI\%#46349\fP: (\fI\%twangboy\fP) Build 449: unit.test_pydsl (refs: \fI\%#46655\fP)
  196555. .IP \(bu 2
  196556. \fBISSUE\fP \fI\%#46345\fP: (\fI\%twangboy\fP) Build 449: unit.test_pyobjects.MapTests (Manual Pass) (refs: \fI\%#46655\fP)
  196557. .IP \(bu 2
  196558. \fBPR\fP \fI\%#46655\fP: (\fI\%dwoz\fP) Fixing cleanUp method to restore environment
  196559. @ \fI2018\-03\-29 18:31:48 UTC\fP
  196560. .INDENT 2.0
  196561. .IP \(bu 2
  196562. 395b7f8fdc Merge pull request \fI\%#46655\fP from dwoz/pyobjects\-46350
  196563. .IP \(bu 2
  196564. 5aabd442f2 Fix up import and docstring syntax
  196565. .IP \(bu 2
  196566. 62d64c9230 Fix missing import
  196567. .IP \(bu 2
  196568. 18b1730320 Skip test that requires pywin32 on *nix platforms
  196569. .IP \(bu 2
  196570. 45dce1a485 Add reg module to globals
  196571. .IP \(bu 2
  196572. 09f9322981 Fix pep8 wart
  196573. .IP \(bu 2
  196574. 73d06f664b Fix linter error
  196575. .IP \(bu 2
  196576. 009a8f56ea Fix up environ state tests for Windows
  196577. .IP \(bu 2
  196578. b4be10b8fc Fixing cleanUp method to restore environment
  196579. .UNINDENT
  196580. .IP \(bu 2
  196581. \fBISSUE\fP \fI\%#36802\fP: (\fI\%rmarcinik\fP) using clean=True parameter in file.recurse causes python process to spin out of control (refs: \fI\%#46632\fP)
  196582. .IP \(bu 2
  196583. \fBPR\fP \fI\%#46632\fP: (\fI\%dwoz\fP) Fix file.recurse w/ clean=True \fI\%#36802\fP
  196584. @ \fI2018\-03\-29 18:30:42 UTC\fP
  196585. .INDENT 2.0
  196586. .IP \(bu 2
  196587. af45c49c42 Merge pull request \fI\%#46632\fP from dwoz/file\-recurse\-36802
  196588. .IP \(bu 2
  196589. 44db77ae79 Fix lint errors and typo
  196590. .IP \(bu 2
  196591. cb5619537f Only change what is essential for test fix
  196592. .IP \(bu 2
  196593. eb822f5a12 Fix file.recurse w/ clean=True \fI\%#36802\fP
  196594. .UNINDENT
  196595. .IP \(bu 2
  196596. \fBISSUE\fP \fI\%#46660\fP: (\fI\%mruepp\fP) top file merging same does produce conflicting ids with gitfs (refs: \fI\%#46751\fP)
  196597. .IP \(bu 2
  196598. \fBPR\fP \fI\%#46751\fP: (\fI\%folti\fP) top file merging strategy \(aqsame\(aq works again
  196599. @ \fI2018\-03\-28 21:12:27 UTC\fP
  196600. .INDENT 2.0
  196601. .IP \(bu 2
  196602. 6e9f504ed1 Merge pull request \fI\%#46751\fP from folti/2017.7
  196603. .IP \(bu 2
  196604. 7058f10381 same top merging strategy works again
  196605. .UNINDENT
  196606. .IP \(bu 2
  196607. \fBPR\fP \fI\%#46691\fP: (\fI\%Ch3LL\fP) Add groupadd module integration tests for Windows
  196608. @ \fI2018\-03\-28 18:01:46 UTC\fP
  196609. .INDENT 2.0
  196610. .IP \(bu 2
  196611. d3623e0815 Merge pull request \fI\%#46691\fP from Ch3LL/win_group_test
  196612. .IP \(bu 2
  196613. 7cda825e90 Add groupadd module integration tests for Windows
  196614. .UNINDENT
  196615. .IP \(bu 2
  196616. \fBISSUE\fP \fI\%#46352\fP: (\fI\%twangboy\fP) Build 449: unit.test_client (refs: \fI\%#46696\fP)
  196617. .IP \(bu 2
  196618. \fBPR\fP \fI\%#46696\fP: (\fI\%dwoz\fP) Windows \fIunit.test_client\fP fixes
  196619. @ \fI2018\-03\-28 17:55:47 UTC\fP
  196620. .INDENT 2.0
  196621. .IP \(bu 2
  196622. 14ab50d3f4 Merge pull request \fI\%#46696\fP from dwoz/win_test_client
  196623. .IP \(bu 2
  196624. ec4634fc06 Better explanation in doc strings
  196625. .IP \(bu 2
  196626. d9ae2abb34 Fix splling in docstring
  196627. .IP \(bu 2
  196628. b40efc5db8 Windows test client fixes
  196629. .UNINDENT
  196630. .IP \(bu 2
  196631. \fBISSUE\fP \fI\%#45956\fP: (\fI\%frogunder\fP) CTRL\-C gives traceback on py3 setup (refs: \fI\%#46032\fP)
  196632. .IP \(bu 2
  196633. \fBPR\fP \fI\%#46732\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46032\fP to 2017.7
  196634. @ \fI2018\-03\-28 13:43:17 UTC\fP
  196635. .INDENT 2.0
  196636. .IP \(bu 2
  196637. \fBPR\fP \fI\%#46032\fP: (\fI\%DmitryKuzmenko\fP) Workaroung python bug in traceback.format_exc() (refs: \fI\%#46732\fP)
  196638. .IP \(bu 2
  196639. 1222bdbc00 Merge pull request \fI\%#46732\fP from rallytime/bp\-46032
  196640. .IP \(bu 2
  196641. bf0b962dc0 Workaroung python bug in traceback.format_exc()
  196642. .UNINDENT
  196643. .IP \(bu 2
  196644. \fBISSUE\fP \fI\%#28142\fP: (\fI\%zmalone\fP) Deprecate or update the copr repo (refs: \fI\%#46749\fP)
  196645. .IP \(bu 2
  196646. \fBPR\fP \fI\%#46749\fP: (\fI\%vutny\fP) [DOC] Remove mentions of COPR repo from RHEL installation page
  196647. @ \fI2018\-03\-28 13:20:50 UTC\fP
  196648. .INDENT 2.0
  196649. .IP \(bu 2
  196650. 50fe1e9480 Merge pull request \fI\%#46749\fP from vutny/doc\-deprecate\-copr
  196651. .IP \(bu 2
  196652. a1cc55da3d [DOC] Remove mentions of COPR repo from RHEL installation page
  196653. .UNINDENT
  196654. .IP \(bu 2
  196655. \fBPR\fP \fI\%#46734\fP: (\fI\%terminalmage\fP) Make busybox image builder work with newer busybox releases
  196656. @ \fI2018\-03\-27 21:14:28 UTC\fP
  196657. .INDENT 2.0
  196658. .IP \(bu 2
  196659. bd1e8bcc7d Merge pull request \fI\%#46734\fP from terminalmage/busybox
  196660. .IP \(bu 2
  196661. 6502b6b4ff Make busybox image builder work with newer busybox releases
  196662. .UNINDENT
  196663. .IP \(bu 2
  196664. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#902\fP: (\fI\%rallytime\fP) [2017.7/.5] Test failures for NPM on CentOS 6/7, Ubuntu 14, and OpenSUSE (refs: \fI\%#46742\fP)
  196665. .IP \(bu 2
  196666. \fBPR\fP \fI\%#46742\fP: (\fI\%gtmanfred\fP) only use npm test work around on newer versions
  196667. @ \fI2018\-03\-27 21:13:28 UTC\fP
  196668. .INDENT 2.0
  196669. .IP \(bu 2
  196670. c09c6f819c Merge pull request \fI\%#46742\fP from gtmanfred/2017.7
  196671. .IP \(bu 2
  196672. fd0e649d1e only use npm test work around on newer versions
  196673. .UNINDENT
  196674. .IP \(bu 2
  196675. \fBPR\fP \fI\%#46743\fP: (\fI\%Ch3LL\fP) Workaround getpwnam in auth test for MacOSX
  196676. @ \fI2018\-03\-27 21:10:47 UTC\fP
  196677. .INDENT 2.0
  196678. .IP \(bu 2
  196679. 3b6d5eca88 Merge pull request \fI\%#46743\fP from Ch3LL/mac_auth
  196680. .IP \(bu 2
  196681. 4f1c42c0e3 Workaround getpwnam in auth test for MacOSX
  196682. .UNINDENT
  196683. .IP \(bu 2
  196684. \fBISSUE\fP \fI\%#26920\fP: (\fI\%david\-fairbanks42\fP) MySQL grant with underscore and wildcard (refs: \fI\%#46171\fP)
  196685. .IP \(bu 2
  196686. \fBPR\fP \fI\%#46171\fP: (\fI\%amaclean199\fP) Fix mysql grant comparisons
  196687. @ \fI2018\-03\-27 17:54:48 UTC\fP
  196688. .INDENT 2.0
  196689. .IP \(bu 2
  196690. b548a3e742 Merge pull request \fI\%#46171\fP from amaclean199/fix_mysql_grants_comparison
  196691. .IP \(bu 2
  196692. 97db3d9766 Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  196693. .IP \(bu 2
  196694. 0565b3980e Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  196695. .IP \(bu 2
  196696. 8af407173d Merge branch \(aq2017.7\(aq into fix_mysql_grants_comparison
  196697. .IP \(bu 2
  196698. 00d13f05c4 Fix mysql grant comparisons by stripping both of escape characters and quotes. Fixes \fI\%#26920\fP
  196699. .UNINDENT
  196700. .IP \(bu 2
  196701. \fBISSUE\fP \fI\%#5721\fP: (\fI\%ozgurakan\fP) salt\-minion can\(aqt restart itself (refs: \fI\%#46709\fP)
  196702. .IP \(bu 2
  196703. \fBPR\fP \fI\%#46709\fP: (\fI\%vutny\fP) [DOC] Update FAQ about Salt self\-restarting
  196704. @ \fI2018\-03\-27 14:34:58 UTC\fP
  196705. .INDENT 2.0
  196706. .IP \(bu 2
  196707. 554400e067 Merge pull request \fI\%#46709\fP from vutny/doc\-faq\-minion\-master\-restart
  196708. .IP \(bu 2
  196709. d0929280fc [DOC] Update FAQ about Salt self\-restarting
  196710. .UNINDENT
  196711. .IP \(bu 2
  196712. \fBPR\fP \fI\%#46503\fP: (\fI\%psyer\fP) Fixes stdout user environment corruption
  196713. @ \fI2018\-03\-27 14:20:15 UTC\fP
  196714. .INDENT 2.0
  196715. .IP \(bu 2
  196716. 3f21e9cc65 Merge pull request \fI\%#46503\fP from psyer/fix\-cmd\-run\-env\-corrupt
  196717. .IP \(bu 2
  196718. e8582e80f2 Python 3\-compatibility fix to unit test
  196719. .IP \(bu 2
  196720. 27f651906d Merge pull request #1 from terminalmage/fix\-cmd\-run\-env\-corrupt
  196721. .INDENT 2.0
  196722. .IP \(bu 2
  196723. 172d3b2e04 Allow cases where no marker was found to proceed without raising exception
  196724. .IP \(bu 2
  196725. 35ad828ab8 Simplify the marker parsing logic
  196726. .UNINDENT
  196727. .IP \(bu 2
  196728. a09f20ab45 fix repr for the linter
  196729. .IP \(bu 2
  196730. 4ee723ac0f Rework how errors are output
  196731. .IP \(bu 2
  196732. dc283940e0 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  196733. .IP \(bu 2
  196734. a91926561f Fix linting problems
  196735. .IP \(bu 2
  196736. e8d3d017f9 fix bytes or str in find command
  196737. .IP \(bu 2
  196738. 0877cfc38f Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  196739. .IP \(bu 2
  196740. 86176d1252 Merge branch \(aq2017.7\(aq into fix\-cmd\-run\-env\-corrupt
  196741. .IP \(bu 2
  196742. 3a7cc44ade Add python3 support for byte encoded markers
  196743. .IP \(bu 2
  196744. 09048139c7 Do not show whole env in error
  196745. .IP \(bu 2
  196746. ed94700255 fix missing raise statement
  196747. .IP \(bu 2
  196748. 15868bc88c Fixes stdout user environment corruption
  196749. .UNINDENT
  196750. .IP \(bu 2
  196751. \fBPR\fP \fI\%#46432\fP: (\fI\%twangboy\fP) Default to UTF\-8 for templated files
  196752. @ \fI2018\-03\-26 19:02:14 UTC\fP
  196753. .INDENT 2.0
  196754. .IP \(bu 2
  196755. ac2a6616a7 Merge pull request \fI\%#46432\fP from twangboy/win_locales_utf8
  196756. .IP \(bu 2
  196757. affa35c30d Revert passing encoding
  196758. .IP \(bu 2
  196759. a0ab27ef15 Merge remote\-tracking branch \(aqdw/win_locales_utf8\(aq into win_locales_utf8
  196760. .INDENT 2.0
  196761. .IP \(bu 2
  196762. 9f95c50061 Use default SLS encoding, fall back to system encoding
  196763. .IP \(bu 2
  196764. 6548d550d0 Use salt.utils.to_unicode
  196765. .IP \(bu 2
  196766. 8c0164fb63 Add ability to specify encoding in sdecode
  196767. .IP \(bu 2
  196768. 2e7985a81c Default to utf\-8 on Windows
  196769. .UNINDENT
  196770. .IP \(bu 2
  196771. 8017860dcc Use salt.utils.to_unicode
  196772. .IP \(bu 2
  196773. c10ed26eab Add ability to specify encoding in sdecode
  196774. .IP \(bu 2
  196775. 8d7e2d0058 Default to utf\-8 on Windows
  196776. .UNINDENT
  196777. .IP \(bu 2
  196778. \fBPR\fP \fI\%#46669\fP: (\fI\%terminalmage\fP) Add option to return to pre\-2017.7.3 pillar include merge order
  196779. @ \fI2018\-03\-26 19:00:28 UTC\fP
  196780. .INDENT 2.0
  196781. .IP \(bu 2
  196782. fadc5e4ba4 Merge pull request \fI\%#46669\fP from terminalmage/pillar\-merge\-order
  196783. .IP \(bu 2
  196784. b4a1d34b47 Add option to return to pre\-2017.7.3 pillar include merge order
  196785. .UNINDENT
  196786. .IP \(bu 2
  196787. \fBPR\fP \fI\%#46711\fP: (\fI\%terminalmage\fP) Add performance reminder for wildcard versions
  196788. @ \fI2018\-03\-26 18:07:31 UTC\fP
  196789. .INDENT 2.0
  196790. .IP \(bu 2
  196791. b90f0d1364 Merge pull request \fI\%#46711\fP from terminalmage/wildcard\-versions\-info
  196792. .IP \(bu 2
  196793. fc7d16f1af Add performance reminder for wildcard versions
  196794. .UNINDENT
  196795. .IP \(bu 2
  196796. \fBISSUE\fP \fI\%#46353\fP: (\fI\%twangboy\fP) Build 449: unit.returners.test_smtp_return (refs: \fI\%#46693\fP)
  196797. .IP \(bu 2
  196798. \fBPR\fP \fI\%#46693\fP: (\fI\%dwoz\fP) File and Pillar roots are dictionaries
  196799. @ \fI2018\-03\-26 15:15:38 UTC\fP
  196800. .INDENT 2.0
  196801. .IP \(bu 2
  196802. 6c80d90bb6 Merge pull request \fI\%#46693\fP from dwoz/test_smtp_return
  196803. .IP \(bu 2
  196804. 5bf850c67f File and Pillar roots are dictionaries
  196805. .UNINDENT
  196806. .IP \(bu 2
  196807. \fBISSUE\fP \fI\%#36153\fP: (\fI\%krcroft\fP) Pillarenv doesn\(aqt allow using separate pillar environments (refs: \fI\%#46543\fP)
  196808. .IP \(bu 2
  196809. \fBPR\fP \fI\%#46543\fP: (\fI\%dafenko\fP) Fix missing saltenv and pillarenv in pillar.item
  196810. @ \fI2018\-03\-26 15:05:13 UTC\fP
  196811. .INDENT 2.0
  196812. .IP \(bu 2
  196813. 9a6bc1418c Merge pull request \fI\%#46543\fP from dafenko/fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196814. .IP \(bu 2
  196815. 6d5b2068aa Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196816. .IP \(bu 2
  196817. 5219377313 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196818. .IP \(bu 2
  196819. b7d39caa86 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196820. .IP \(bu 2
  196821. 25f1074a85 Add docstring for added parameters
  196822. .IP \(bu 2
  196823. 973bc13955 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196824. .IP \(bu 2
  196825. 164314a859 Merge branch \(aq2017.7\(aq into fix\-add\-saltenv\-pillarenv\-to\-pillar\-item
  196826. .IP \(bu 2
  196827. 267ae9f633 Fix missing saltenv and pillarenv in pillar.item
  196828. .UNINDENT
  196829. .IP \(bu 2
  196830. \fBPR\fP \fI\%#46679\fP: (\fI\%vutny\fP) [DOC] Correct examples in \fIpkg\fP state module
  196831. @ \fI2018\-03\-26 14:40:07 UTC\fP
  196832. .INDENT 2.0
  196833. .IP \(bu 2
  196834. f776040e25 Merge pull request \fI\%#46679\fP from vutny/doc\-state\-pkg
  196835. .IP \(bu 2
  196836. 4a730383bf [DOC] Correct examples in \fIpkg\fP state module
  196837. .UNINDENT
  196838. .IP \(bu 2
  196839. \fBPR\fP \fI\%#46646\fP: (\fI\%twangboy\fP) Fix \fIunit.returners.test_local_cache\fP for Windows
  196840. @ \fI2018\-03\-26 14:16:23 UTC\fP
  196841. .INDENT 2.0
  196842. .IP \(bu 2
  196843. 47409eaa6e Merge pull request \fI\%#46646\fP from twangboy/win_fix_test_local_cache
  196844. .IP \(bu 2
  196845. 8d93156604 Fix \fIunit.returners.test_local_cache\fP for Windows
  196846. .UNINDENT
  196847. .IP \(bu 2
  196848. \fBISSUE\fP \fI\%#46595\fP: (\fI\%aboe76\fP) saltstack server_id changes with each run on python3 (refs: \fI\%#46649\fP)
  196849. .IP \(bu 2
  196850. \fBPR\fP \fI\%#46649\fP: (\fI\%terminalmage\fP) Make server_id consistent on Python 3
  196851. @ \fI2018\-03\-26 13:58:59 UTC\fP
  196852. .INDENT 2.0
  196853. .IP \(bu 2
  196854. 0c2dce0416 Merge pull request \fI\%#46649\fP from terminalmage/issue46595
  196855. .IP \(bu 2
  196856. e82a1aa1ec Make server_id consistent on Python 3
  196857. .UNINDENT
  196858. .IP \(bu 2
  196859. \fBPR\fP \fI\%#46588\fP: (\fI\%UtahDave\fP) Don\(aqt crash when saltwinshell is missing
  196860. @ \fI2018\-03\-21 20:26:31 UTC\fP
  196861. .INDENT 2.0
  196862. .IP \(bu 2
  196863. 4e7466a21c Merge pull request \fI\%#46588\fP from UtahDave/no_crash_winshell
  196864. .IP \(bu 2
  196865. b7842a1777 Update error message.
  196866. .IP \(bu 2
  196867. 95dfdb91ca Don\(aqt stacktrace when salt\-ssh w/o saltwinshell
  196868. .UNINDENT
  196869. .IP \(bu 2
  196870. \fBISSUE\fP \fI\%#22063\fP: (\fI\%jeanpralo\fP) Wildcard inside top.sls file for pillar (refs: \fI\%#41423\fP)
  196871. .IP \(bu 2
  196872. \fBISSUE\fP \fI\%#20581\fP: (\fI\%notpeter\fP) Many environments: one pillar_root (all your envs are belong to base) (refs: \fI\%#46309\fP)
  196873. .IP \(bu 2
  196874. \fBPR\fP \fI\%#46631\fP: (\fI\%rallytime\fP) Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  196875. @ \fI2018\-03\-21 19:22:49 UTC\fP
  196876. .INDENT 2.0
  196877. .IP \(bu 2
  196878. \fBPR\fP \fI\%#46629\fP: (\fI\%terminalmage\fP) Fix symlink loop when file_roots/pillar_roots is a string instead of a list (refs: \fI\%#46631\fP)
  196879. .IP \(bu 2
  196880. \fBPR\fP \fI\%#46569\fP: (\fI\%rallytime\fP) [2018.3] Merge forward from 2017.7 to 2018.3 (refs: \fI\%#46631\fP)
  196881. .IP \(bu 2
  196882. \fBPR\fP \fI\%#46309\fP: (\fI\%bdrung\fP) Support dynamic pillar_root environment (refs: \fI\%#46631\fP)
  196883. .IP \(bu 2
  196884. \fBPR\fP \fI\%#41423\fP: (\fI\%RichardW42\fP) pillar: target\(aqs state list support wildcard in top.sls (refs: \fI\%#46631\fP)
  196885. .IP \(bu 2
  196886. 33af3cfc7c Merge pull request \fI\%#46631\fP from rallytime/update\-pillar\-unit\-tests
  196887. .IP \(bu 2
  196888. 0f728186aa Fix pillar unit test failures: file_roots and pillar_roots environments should be lists
  196889. .UNINDENT
  196890. .IP \(bu 2
  196891. \fBISSUE\fP \fI\%#26450\fP: (\fI\%typeshige\fP) file.copy: source file is not present. (refs: \fI\%#46640\fP)
  196892. .IP \(bu 2
  196893. \fBPR\fP \fI\%#46640\fP: (\fI\%terminalmage\fP) Clarify the docs for the file.copy state
  196894. @ \fI2018\-03\-21 19:14:50 UTC\fP
  196895. .INDENT 2.0
  196896. .IP \(bu 2
  196897. d329e7af78 Merge pull request \fI\%#46640\fP from terminalmage/file.copy\-docs
  196898. .IP \(bu 2
  196899. 480c5f8faa Clarify the docs for the file.copy state
  196900. .UNINDENT
  196901. .IP \(bu 2
  196902. \fBPR\fP \fI\%#46642\fP: (\fI\%vutny\fP) [DOC] Unify cloud modules index header
  196903. @ \fI2018\-03\-21 19:13:28 UTC\fP
  196904. .INDENT 2.0
  196905. .IP \(bu 2
  196906. ff40590c06 Merge pull request \fI\%#46642\fP from vutny/doc\-cloud\-index
  196907. .IP \(bu 2
  196908. 51e6aa54a1 [DOC] Unify cloud modules index header
  196909. .UNINDENT
  196910. .IP \(bu 2
  196911. \fBPR\fP \fI\%#46619\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.5 to 2017.7
  196912. @ \fI2018\-03\-20 19:03:30 UTC\fP
  196913. .INDENT 2.0
  196914. .IP \(bu 2
  196915. 83ed40c06a Merge pull request \fI\%#46619\fP from rallytime/merge\-2017.7
  196916. .IP \(bu 2
  196917. bcbddf5d07 Merge branch \(aq2017.7.5\(aq into \(aq2017.7\(aq
  196918. .UNINDENT
  196919. .IP \(bu 2
  196920. \fBPR\fP \fI\%#46584\fP: (\fI\%twangboy\fP) Fix issue LGPO issue
  196921. @ \fI2018\-03\-20 17:48:33 UTC\fP
  196922. .INDENT 2.0
  196923. .IP \(bu 2
  196924. df12135439 Merge pull request \fI\%#46584\fP from twangboy/lgpo\-46568
  196925. .IP \(bu 2
  196926. 661017104b Detect disabled reg_multi_sz elements properly
  196927. .UNINDENT
  196928. .IP \(bu 2
  196929. \fBPR\fP \fI\%#46624\fP: (\fI\%twangboy\fP) Fix a few inconsitencies in the installer script
  196930. @ \fI2018\-03\-20 17:47:44 UTC\fP
  196931. .INDENT 2.0
  196932. .IP \(bu 2
  196933. 2fd3aa487c Merge pull request \fI\%#46624\fP from twangboy/win_fix_installer
  196934. .IP \(bu 2
  196935. fa0b0efe46 Fix some installer script inconsistencies
  196936. .UNINDENT
  196937. .IP \(bu 2
  196938. \fBISSUE\fP \fI\%#46552\fP: (\fI\%JeffLee123\fP) State with require requisite executes despite onfail requisite on another state. (refs: \fI\%#46571\fP)
  196939. .IP \(bu 2
  196940. \fBPR\fP \fI\%#46571\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to state.py
  196941. @ \fI2018\-03\-20 13:40:04 UTC\fP
  196942. .INDENT 2.0
  196943. .IP \(bu 2
  196944. f038e3c452 Merge pull request \fI\%#46571\fP from garethgreenaway/46552_onfail_and_require
  196945. .IP \(bu 2
  196946. 152c43c843 Accounting for a case when multiple onfails are used along with requires. Previously if you have multiple states using \(aqonfail\(aq and two of those states using a \(aqrequire\(aq against the first one state, the last two will run even if the \(aqonfail\(aq isn\(aqt met because the \(aqrequire\(aq is met because the first state returns true even though it didn\(aqt excute. This change adds an additional hidden variable that is used when checking requisities to determine if the state actually ran.
  196947. .UNINDENT
  196948. .IP \(bu 2
  196949. \fBISSUE\fP \fI\%#46512\fP: (\fI\%blarghmatey\fP) git.pull failing when run from the salt scheduler (refs: \fI\%#46520\fP)
  196950. .IP \(bu 2
  196951. \fBPR\fP \fI\%#46520\fP: (\fI\%gtmanfred\fP) pass utils to the scheduler for reloading in modules
  196952. @ \fI2018\-03\-20 13:35:49 UTC\fP
  196953. .INDENT 2.0
  196954. .IP \(bu 2
  196955. 2677330e19 Merge pull request \fI\%#46520\fP from gtmanfred/2017.7
  196956. .IP \(bu 2
  196957. caefedc095 make sure utils is empty for pickling for windows
  196958. .IP \(bu 2
  196959. 2883548e6b pass utils to the scheduler for reloading in modules
  196960. .UNINDENT
  196961. .IP \(bu 2
  196962. \fBISSUE\fP \fI\%#44299\fP: (\fI\%nhavens\fP) 2017.7.2 breaks pkgrepo.managed yum repo comments (refs: \fI\%#46531\fP)
  196963. .IP \(bu 2
  196964. \fBPR\fP \fI\%#46531\fP: (\fI\%terminalmage\fP) Fix regression in yumpkg._parse_repo_file()
  196965. @ \fI2018\-03\-20 13:34:59 UTC\fP
  196966. .INDENT 2.0
  196967. .IP \(bu 2
  196968. 7bc3c2e588 Merge pull request \fI\%#46531\fP from terminalmage/issue44299
  196969. .IP \(bu 2
  196970. b70c3389da Fix case where no comments specified
  196971. .IP \(bu 2
  196972. ce391c53f4 Add regression test for \fI\%#44299\fP
  196973. .IP \(bu 2
  196974. c3e36a6c94 Fix regression in yumpkg._parse_repo_file()
  196975. .IP \(bu 2
  196976. f0c79e3da3 Slight modification to salt.utils.pkg.rpm.combine_comments()
  196977. .UNINDENT
  196978. .IP \(bu 2
  196979. \fBISSUE\fP \fI\%#46521\fP: (\fI\%dwoz\fP) \fI\-\-name\fP argument not honored for cloud test suite (refs: \fI\%#46567\fP)
  196980. .IP \(bu 2
  196981. \fBPR\fP \fI\%#46567\fP: (\fI\%dwoz\fP) Honor named tests when running integration suites
  196982. @ \fI2018\-03\-20 13:24:42 UTC\fP
  196983. .INDENT 2.0
  196984. .IP \(bu 2
  196985. b80edb5d26 Merge pull request \fI\%#46567\fP from dwoz/runtest\-n\-wart
  196986. .IP \(bu 2
  196987. 3b6901e19d Honor named tests when running integration suites
  196988. .UNINDENT
  196989. .IP \(bu 2
  196990. \fBPR\fP \fI\%#46580\fP: (\fI\%twangboy\fP) Clarify some issues with msu files in win_dism.py
  196991. @ \fI2018\-03\-16 18:57:55 UTC\fP
  196992. .INDENT 2.0
  196993. .IP \(bu 2
  196994. 1dcd22e767 Merge pull request \fI\%#46580\fP from twangboy/win_update_docs_dism
  196995. .IP \(bu 2
  196996. d52b99d7a3 Clarify some issues with msu files in win_dism.py
  196997. .UNINDENT
  196998. .IP \(bu 2
  196999. \fBISSUE\fP \fI\%#46073\fP: (\fI\%layer3switch\fP) salt 2017.7.3 grains metadata collection in AWS EC2 cause failure and nested iteration (refs: \fI\%#46541\fP)
  197000. .IP \(bu 2
  197001. \fBPR\fP \fI\%#46541\fP: (\fI\%gtmanfred\fP) handle user\-data for metadata grains
  197002. @ \fI2018\-03\-15 17:21:31 UTC\fP
  197003. .INDENT 2.0
  197004. .IP \(bu 2
  197005. 0a68c22332 Merge pull request \fI\%#46541\fP from gtmanfred/metadata
  197006. .IP \(bu 2
  197007. 19bd1d9db5 handle user\-data for metadata grains
  197008. .UNINDENT
  197009. .IP \(bu 2
  197010. \fBISSUE\fP \fI\%#46427\fP: (\fI\%wasabi222\fP) cumulus linux should use systemd as a default service pkg instead of debian_service (refs: \fI\%#46547\fP)
  197011. .IP \(bu 2
  197012. \fBPR\fP \fI\%#46547\fP: (\fI\%garethgreenaway\fP) [2017.7] Disable service module for Cumulus
  197013. @ \fI2018\-03\-15 16:15:00 UTC\fP
  197014. .INDENT 2.0
  197015. .IP \(bu 2
  197016. 048b2ba3f6 Merge pull request \fI\%#46547\fP from garethgreenaway/46427_service_module_cumulus
  197017. .IP \(bu 2
  197018. edd0b11447 Merge branch \(aq2017.7\(aq into 46427_service_module_cumulus
  197019. .IP \(bu 2
  197020. ea3c16080e Disable the \fIservice\fP module on Cumulus since it is using systemd.
  197021. .UNINDENT
  197022. .IP \(bu 2
  197023. \fBPR\fP \fI\%#46548\fP: (\fI\%Ch3LL\fP) profitbrick test: check for foo,bar username,password set in profitbrick config
  197024. @ \fI2018\-03\-15 14:25:27 UTC\fP
  197025. .INDENT 2.0
  197026. .IP \(bu 2
  197027. 98e3260b9a Merge pull request \fI\%#46548\fP from Ch3LL/profit_test
  197028. .IP \(bu 2
  197029. db96c4e72e check for foo,bar username,password set in profitbrick config
  197030. .UNINDENT
  197031. .IP \(bu 2
  197032. \fBPR\fP \fI\%#46549\fP: (\fI\%Ch3LL\fP) Fix dimensionsdata test random_name call
  197033. @ \fI2018\-03\-15 14:23:41 UTC\fP
  197034. .INDENT 2.0
  197035. .IP \(bu 2
  197036. 79f2a76609 Merge pull request \fI\%#46549\fP from Ch3LL/dimension_test
  197037. .IP \(bu 2
  197038. bb338c464c Fix dimensionsdata test random_name call
  197039. .UNINDENT
  197040. .IP \(bu 2
  197041. \fBPR\fP \fI\%#46529\fP: (\fI\%gtmanfred\fP) retry if there is a segfault
  197042. @ \fI2018\-03\-13 22:41:54 UTC\fP
  197043. .INDENT 2.0
  197044. .IP \(bu 2
  197045. 083846fe0e Merge pull request \fI\%#46529\fP from gtmanfred/kitchen
  197046. .IP \(bu 2
  197047. 50d6e2c7be retry if there is a segfault
  197048. .UNINDENT
  197049. .IP \(bu 2
  197050. \fBPR\fP \fI\%#46511\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45769\fP to 2017.7
  197051. @ \fI2018\-03\-13 17:08:52 UTC\fP
  197052. .INDENT 2.0
  197053. .IP \(bu 2
  197054. \fBPR\fP \fI\%#45769\fP: (\fI\%Quarky9\fP) Surpress boto WARNING during SQS msg decode in sqs_engine (refs: \fI\%#46511\fP)
  197055. .IP \(bu 2
  197056. 5cc11129f1 Merge pull request \fI\%#46511\fP from rallytime/bp\-45769
  197057. .IP \(bu 2
  197058. a8ffceda53 Surpress boto WARNING during decode, reference: \fI\%https://github.com/boto/boto/issues/2965\fP
  197059. .UNINDENT
  197060. .UNINDENT
  197061. .SS Salt 2017.7.7 Release Notes
  197062. .sp
  197063. Version 2017.7.7 is a bugfix release for 2017.7.0\&.
  197064. .sp
  197065. The \fB2017.7.7\fP release contains only a small number of fixes, which are detailed
  197066. below.
  197067. .sp
  197068. This release fixes two critical issues.
  197069. .sp
  197070. The first is Issue \fI\%#48038\fP, which is a critical bug that occurs in a multi\-syndic
  197071. setup where the same job is run multiple times on a minion.
  197072. .sp
  197073. The second issue is \fI\%#48130\fP\&. This bug appears in certain setups where the Master
  197074. reports a Minion time\-out, even though the job is still running on the Minion.
  197075. .sp
  197076. Both of these issues have been fixed with this release.
  197077. .SS Statistics
  197078. .INDENT 0.0
  197079. .IP \(bu 2
  197080. Total Merges: \fB5\fP
  197081. .IP \(bu 2
  197082. Total Issue References: \fB2\fP
  197083. .IP \(bu 2
  197084. Total PR References: \fB6\fP
  197085. .IP \(bu 2
  197086. Contributors: \fB3\fP (\fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%rallytime\fP)
  197087. .UNINDENT
  197088. .SS Changelog for v2017.7.6..v2017.7.7
  197089. .sp
  197090. \fIGenerated at: 2018\-06\-17 19:26:52 UTC\fP
  197091. .INDENT 0.0
  197092. .IP \(bu 2
  197093. \fBISSUE\fP \fI\%#48130\fP: (\fI\%rmarchei\fP) Minion timeouts with 2018.3.1 (refs: \fI\%#48157\fP)
  197094. .IP \(bu 2
  197095. \fBPR\fP \fI\%#48157\fP: (\fI\%gtmanfred\fP) always listen when gathering job info
  197096. @ \fI2018\-06\-17 19:04:09 UTC\fP
  197097. .INDENT 2.0
  197098. .IP \(bu 2
  197099. 8af4452134 Merge pull request \fI\%#48157\fP from gtmanfred/2017.7.7
  197100. .IP \(bu 2
  197101. d8209e8a40 always listen when gathering job info
  197102. .UNINDENT
  197103. .IP \(bu 2
  197104. \fBPR\fP \fI\%#48140\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.7
  197105. @ \fI2018\-06\-14 21:22:43 UTC\fP
  197106. .INDENT 2.0
  197107. .IP \(bu 2
  197108. b98c52ee51 Merge pull request \fI\%#48140\fP from rallytime/man\-pages\-2017.7.7
  197109. .IP \(bu 2
  197110. 8893bf0d4c Update man pages for 2017.7.7
  197111. .UNINDENT
  197112. .IP \(bu 2
  197113. \fBPR\fP \fI\%#48136\fP: (\fI\%gtmanfred\fP) [2017.7.7] bootstrap kitchen branch tests with 2017.7.6
  197114. @ \fI2018\-06\-14 21:20:16 UTC\fP
  197115. .INDENT 2.0
  197116. .IP \(bu 2
  197117. baa0363336 Merge pull request \fI\%#48136\fP from gtmanfred/2017.7.7
  197118. .IP \(bu 2
  197119. fce1c31146 bootstrap kitchen branch tests with 2017.7.6
  197120. .UNINDENT
  197121. .IP \(bu 2
  197122. \fBPR\fP \fI\%#48134\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.7
  197123. @ \fI2018\-06\-14 16:31:34 UTC\fP
  197124. .INDENT 2.0
  197125. .IP \(bu 2
  197126. b0ba08f4d9 Merge pull request \fI\%#48134\fP from rallytime/release\-notes\-2017.7.7
  197127. .IP \(bu 2
  197128. 217005b8f1 Add missing \fIv\fP for tag reference
  197129. .IP \(bu 2
  197130. d53569d1e3 Add release notes file for 2017.7.7
  197131. .UNINDENT
  197132. .IP \(bu 2
  197133. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  197134. .IP \(bu 2
  197135. \fBPR\fP \fI\%#48098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48075\fP to 2017.7.7
  197136. @ \fI2018\-06\-14 12:53:42 UTC\fP
  197137. .INDENT 2.0
  197138. .IP \(bu 2
  197139. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed (refs: \fI\%#48098\fP)
  197140. .IP \(bu 2
  197141. 084de927fe Merge pull request \fI\%#48098\fP from rallytime/bp\-48075\-2017.7.7
  197142. .IP \(bu 2
  197143. e4e62e8b3a Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  197144. .UNINDENT
  197145. .UNINDENT
  197146. .SS Salt 2017.7.8 Release Notes
  197147. .sp
  197148. Version 2017.7.8 is a security and bugfix release for 2017.7.0\&.
  197149. .SS Statistics
  197150. .INDENT 0.0
  197151. .IP \(bu 2
  197152. Total Merges: \fB237\fP
  197153. .IP \(bu 2
  197154. Total Issue References: \fB48\fP
  197155. .IP \(bu 2
  197156. Total PR References: \fB279\fP
  197157. .IP \(bu 2
  197158. Contributors: \fB52\fP (\fI\%AVeenstra\fP, \fI\%Ch3LL\fP, \fI\%Circuitsoft\fP, \fI\%DmitryKuzmenko\fP, \fI\%KaiSforza\fP, \fI\%Martin819\fP, \fI\%OrlandoArcapix\fP, \fI\%UtahDave\fP, \fI\%Vaelatern\fP, \fI\%abednarik\fP, \fI\%asnell\fP, \fI\%b1naryth1ef\fP, \fI\%baniobloom\fP, \fI\%basepi\fP, \fI\%bdrung\fP, \fI\%beornf\fP, \fI\%bmcorser\fP, \fI\%bowmanjd\-lms\fP, \fI\%damon\-atkins\fP, \fI\%darkpixel\fP, \fI\%discogestalt\fP, \fI\%doesitblend\fP, \fI\%dqminh\fP, \fI\%dubb\-b\fP, \fI\%dwoz\fP, \fI\%frankiexyz\fP, \fI\%frogunder\fP, \fI\%fzipi\fP, \fI\%garethgreenaway\fP, \fI\%grokrecursion\fP, \fI\%gtmanfred\fP, \fI\%jacksontj\fP, \fI\%jagguli\fP, \fI\%lejambon\fP, \fI\%lomeroe\fP, \fI\%lordcirth\fP, \fI\%lusche\fP, \fI\%mbunkus\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%nbraud\fP, \fI\%pritambaral\fP, \fI\%ralex\fP, \fI\%rallytime\fP, \fI\%rmcintosh\fP, \fI\%slaws\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%twellspring\fP, \fI\%wyardley\fP, \fI\%xetix\fP, \fI\%zer0def\fP)
  197159. .UNINDENT
  197160. .SS Security Fix
  197161. .sp
  197162. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  197163. .sp
  197164. CVE\-2018\-15750 Directory traversal vulnerability when using salt\-api. Allows an attacker to determine what files exist on a server when querying /run or /events.
  197165. .sp
  197166. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  197167. .SS New win_snmp behavior
  197168. .INDENT 0.0
  197169. .IP \(bu 2
  197170. \fBwin_snmp.get_community_names\fP now returns the SNMP settings
  197171. actually in effect on the box. If settings are managed via GroupPolicy, those
  197172. settings will be returned. Otherwise, normal settings are returned.
  197173. .IP \(bu 2
  197174. \fBwin_snmp.set_community_names\fP now raises an error when SNMP
  197175. settings are being managed by GroupPolicy.
  197176. .UNINDENT
  197177. .SS Option Added to Disable Docker Mine Updates
  197178. .sp
  197179. When a docker container is added, removed, started, stopped, etc., the results
  197180. of a \fBdocker.ps verbose=True all=True host=True\fP are sent to the mine, to be
  197181. used by \fBmine.get_docker\fP\&.
  197182. .sp
  197183. A new config option (\fBdocker.update_mine\fP) has been added. When
  197184. set to \fBFalse\fP, Salt will not send this information to the mine. This is
  197185. useful in cases where sensitive information is stored in the container\(aqs
  197186. environment.
  197187. .SS Changelog for v2017.7.7..v2017.7.8
  197188. .sp
  197189. \fIGenerated at: 2018\-09\-04 21:09:41 UTC\fP
  197190. .INDENT 0.0
  197191. .IP \(bu 2
  197192. \fBPR\fP \fI\%#49498\fP: (\fI\%rallytime\fP) Pin CherryPy version to < 18.0.0 in requirements files for PY2
  197193. @ \fI2018\-09\-04 17:55:02 UTC\fP
  197194. .INDENT 2.0
  197195. .IP \(bu 2
  197196. 0d7b173b24 Merge pull request \fI\%#49498\fP from rallytime/pin\-cherrypy\-2017.7.8
  197197. .IP \(bu 2
  197198. 81a6155b6b Pin CherryPy version to < 18.0.0 in requirements files for PY2
  197199. .UNINDENT
  197200. .IP \(bu 2
  197201. \fBISSUE\fP \fI\%#47087\fP: (\fI\%darkpixel\fP) How do I stop the prompt "Permission denied for host <hostname>, do you want to deploy the salt\-ssh key? (password required):"? (refs: \fI\%#47100\fP, #\(gasaltstack/salt\(ga#47100\(ga_\(ga_)
  197202. .INDENT 2.0
  197203. .IP \(bu 2
  197204. \fBPR\fP \fI\%saltstack/salt#47100\fP: (\fI\%gtmanfred\fP) Allow for not being prompted to supply a password to deploy keys to a… (refs: \fI\%#49461\fP)
  197205. .UNINDENT
  197206. .IP \(bu 2
  197207. \fBPR\fP \fI\%#49466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49461\fP to 2017.7.8
  197208. @ \fI2018\-08\-31 15:44:11 UTC\fP
  197209. .INDENT 2.0
  197210. .IP \(bu 2
  197211. \fBPR\fP \fI\%#49461\fP: (\fI\%gtmanfred\fP) Revert "Allow for not being prompted to supply a password to deploy keys to a…" (refs: \fI\%#49466\fP)
  197212. .IP \(bu 2
  197213. 52ab2c0574 Merge pull request \fI\%#49466\fP from rallytime/bp\-49461
  197214. .IP \(bu 2
  197215. 58428003b1 Revert "Allow for not being prompted to supply a password to deploy keys to a…"
  197216. .UNINDENT
  197217. .IP \(bu 2
  197218. \fBPR\fP \fI\%#49284\fP: (\fI\%twangboy\fP) Fix path to libsodium tarball
  197219. @ \fI2018\-08\-23 17:19:24 UTC\fP
  197220. .INDENT 2.0
  197221. .IP \(bu 2
  197222. 1bbe7df6c4 Merge pull request \fI\%#49284\fP from twangboy/fix_installer_osx
  197223. .IP \(bu 2
  197224. a112eaa597 Fix path to libsodium tarball
  197225. .UNINDENT
  197226. .IP \(bu 2
  197227. \fBPR\fP \fI\%#49272\fP: (\fI\%twangboy\fP) Add 64 bit binaries for KB2999226 to the x86 installer
  197228. @ \fI2018\-08\-23 14:27:09 UTC\fP
  197229. .INDENT 2.0
  197230. .IP \(bu 2
  197231. e0e8779985 Merge pull request \fI\%#49272\fP from twangboy/fix_installer_more
  197232. .IP \(bu 2
  197233. a8f054b2d2 Add 64bit binaries for KB2999226 to the x86 installer
  197234. .UNINDENT
  197235. .IP \(bu 2
  197236. \fBPR\fP \fI\%#49218\fP: (\fI\%twangboy\fP) Fix Windows and OSX installers
  197237. @ \fI2018\-08\-21 01:10:30 UTC\fP
  197238. .INDENT 2.0
  197239. .IP \(bu 2
  197240. 0eb6ddf0e8 Merge pull request \fI\%#49218\fP from twangboy/fix_installer
  197241. .IP \(bu 2
  197242. e8a1d2f772 Add more descriptive error when KB not found
  197243. .IP \(bu 2
  197244. 71737ea687 Suppress all ui on vcredist installation
  197245. .IP \(bu 2
  197246. 7dae9bb2a1 Fix Windows and OSX installers
  197247. .UNINDENT
  197248. .IP \(bu 2
  197249. \fBPR\fP \fI\%#49116\fP: (\fI\%twangboy\fP) Fix windows installer script
  197250. @ \fI2018\-08\-14 17:09:35 UTC\fP
  197251. .INDENT 2.0
  197252. .IP \(bu 2
  197253. e484f261ee Merge pull request \fI\%#49116\fP from twangboy/fix_installer
  197254. .IP \(bu 2
  197255. 1227095c5d Add nonfatal switch to VCRedist
  197256. .UNINDENT
  197257. .IP \(bu 2
  197258. \fBPR\fP \fI\%#49113\fP: (\fI\%Ch3LL\fP) Add changelog to 2017.7.8 release notes
  197259. @ \fI2018\-08\-14 15:03:16 UTC\fP
  197260. .INDENT 2.0
  197261. .IP \(bu 2
  197262. 0b9f2f8884 Merge pull request \fI\%#49113\fP from Ch3LL/rn_7.8
  197263. .IP \(bu 2
  197264. f6b70bb653 Add changelog to 2017.7.8 release notes
  197265. .UNINDENT
  197266. .IP \(bu 2
  197267. \fBPR\fP \fI\%#49051\fP: (\fI\%rallytime\fP) Back\-port \fI\%#49046\fP to 2017.7.8
  197268. @ \fI2018\-08\-10 17:19:18 UTC\fP
  197269. .INDENT 2.0
  197270. .IP \(bu 2
  197271. \fBPR\fP \fI\%#49046\fP: (\fI\%garethgreenaway\fP) [2017.7] Another fix to tests/integration/modules/test_service.py (refs: \fI\%#49051\fP)
  197272. .IP \(bu 2
  197273. 01cf2c71ff Merge pull request \fI\%#49051\fP from rallytime/bp\-49046
  197274. .IP \(bu 2
  197275. fc0817cb35 The osfullname grain differs when using Python2 vs Python3, swapping this out for the "OS" grain which is consistent.
  197276. .UNINDENT
  197277. .IP \(bu 2
  197278. \fBPR\fP \fI\%#49044\fP: (\fI\%Ch3LL\fP) increase timeout on vultr cloud integration test
  197279. @ \fI2018\-08\-10 01:28:17 UTC\fP
  197280. .INDENT 2.0
  197281. .IP \(bu 2
  197282. 189e28691f Merge pull request \fI\%#49044\fP from Ch3LL/vultr_test
  197283. .IP \(bu 2
  197284. 0dedfae4d1 increase timeout on vultr cloud integration test
  197285. .UNINDENT
  197286. .IP \(bu 2
  197287. \fBPR\fP \fI\%#49042\fP: (\fI\%rallytime\fP) Mark a jinja template test as flaky
  197288. @ \fI2018\-08\-09 21:05:54 UTC\fP
  197289. .INDENT 2.0
  197290. .IP \(bu 2
  197291. c606a32cf2 Merge pull request \fI\%#49042\fP from rallytime/flaky\-jinja\-test
  197292. .IP \(bu 2
  197293. a43d9b4ba6 Mark a jinja template test as flaky
  197294. .UNINDENT
  197295. .IP \(bu 2
  197296. \fBPR\fP \fI\%#49041\fP: (\fI\%Ch3LL\fP) [2017.7.8] backport PR \fI\%#48212\fP
  197297. @ \fI2018\-08\-09 21:05:27 UTC\fP
  197298. .INDENT 2.0
  197299. .IP \(bu 2
  197300. \fBPR\fP \fI\%#48212\fP: (\fI\%Ch3LL\fP) Fix python3 ec2 salt\-cloud TypeError when installing salt (refs: \fI\%#49041\fP)
  197301. .IP \(bu 2
  197302. 6415b6f73b Merge pull request \fI\%#49041\fP from Ch3LL/ec2_fix
  197303. .IP \(bu 2
  197304. cf7f2459b8 [2017.7.8] backport PR \fI\%#48212\fP
  197305. .UNINDENT
  197306. .IP \(bu 2
  197307. \fBPR\fP \fI\%#49030\fP: (\fI\%rallytime\fP) Update netapi client tests
  197308. @ \fI2018\-08\-09 17:11:14 UTC\fP
  197309. .INDENT 2.0
  197310. .IP \(bu 2
  197311. 1db036406b Merge pull request \fI\%#49030\fP from rallytime/update\-client\-tests
  197312. .IP \(bu 2
  197313. f08ee6c6ae Update netapi client tests
  197314. .UNINDENT
  197315. .IP \(bu 2
  197316. \fBPR\fP \fI\%#49024\fP: (\fI\%rallytime\fP) Fix test error in test_compiler jinja check
  197317. @ \fI2018\-08\-09 12:43:23 UTC\fP
  197318. .INDENT 2.0
  197319. .IP \(bu 2
  197320. \fBPR\fP \fI\%#49002\fP: (\fI\%rallytime\fP) Skip test_jinja_deep_error on Debian 8 (refs: \fI\%#49024\fP)
  197321. .IP \(bu 2
  197322. f73ba21bc7 Merge pull request \fI\%#49024\fP from rallytime/fix\-deb\-test
  197323. .IP \(bu 2
  197324. a9c16d9137 Fix test error in test_compiler jinja check
  197325. .UNINDENT
  197326. .IP \(bu 2
  197327. \fBPR\fP \fI\%#49020\fP: (\fI\%rallytime\fP) Make grains integration test more robust
  197328. @ \fI2018\-08\-08 20:59:18 UTC\fP
  197329. .INDENT 2.0
  197330. .IP \(bu 2
  197331. 6b6d68c615 Merge pull request \fI\%#49020\fP from rallytime/fix\-grains\-test
  197332. .IP \(bu 2
  197333. f72a3ac6be Make grains integration test more robust
  197334. .UNINDENT
  197335. .IP \(bu 2
  197336. \fBPR\fP \fI\%#49002\fP: (\fI\%rallytime\fP) Skip test_jinja_deep_error on Debian 8 (refs: \fI\%#49024\fP)
  197337. @ \fI2018\-08\-08 19:18:39 UTC\fP
  197338. .INDENT 2.0
  197339. .IP \(bu 2
  197340. 92d6c25c7f Merge pull request \fI\%#49002\fP from rallytime/skip\-jinja\-deep\-error\-test
  197341. .IP \(bu 2
  197342. 23b66ef8bb Skip test_jinja_deep_error on Debian 8
  197343. .UNINDENT
  197344. .IP \(bu 2
  197345. \fBPR\fP \fI\%#48999\fP: (\fI\%rallytime\fP) Update expected return value in boto test
  197346. @ \fI2018\-08\-08 14:42:15 UTC\fP
  197347. .INDENT 2.0
  197348. .IP \(bu 2
  197349. 41d9f11eb3 Merge pull request \fI\%#48999\fP from rallytime/fix\-boto\-test
  197350. .IP \(bu 2
  197351. d0136b1be5 Update expected return value in boto test
  197352. .UNINDENT
  197353. .IP \(bu 2
  197354. \fBPR\fP \fI\%#48976\fP: (\fI\%rallytime\fP) Skip unreliable tornado tests
  197355. @ \fI2018\-08\-07 18:55:25 UTC\fP
  197356. .INDENT 2.0
  197357. .IP \(bu 2
  197358. a1e54634dc Merge pull request \fI\%#48976\fP from rallytime/tornado
  197359. .IP \(bu 2
  197360. 0bd838ab6c Skip unreliable tornado tests
  197361. .UNINDENT
  197362. .IP \(bu 2
  197363. \fBPR\fP \fI\%#48979\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48959\fP to 2017.7.8
  197364. @ \fI2018\-08\-07 18:11:53 UTC\fP
  197365. .INDENT 2.0
  197366. .IP \(bu 2
  197367. \fBPR\fP \fI\%#48959\fP: (\fI\%rallytime\fP) Mark some more tests as flaky (refs: \fI\%#48979\fP)
  197368. .IP \(bu 2
  197369. 22713be9c1 Merge pull request \fI\%#48979\fP from rallytime/bp\-48959
  197370. .IP \(bu 2
  197371. aaf986d728 Mark one grains test as flaky & convert to pytest notation
  197372. .IP \(bu 2
  197373. e7e5abcf48 Mark 2 matcher tests as flaky
  197374. .UNINDENT
  197375. .IP \(bu 2
  197376. \fBPR\fP \fI\%#48970\fP: (\fI\%Ch3LL\fP) [2017.7.8] Backport \fI\%#48962\fP
  197377. @ \fI2018\-08\-07 15:01:57 UTC\fP
  197378. .INDENT 2.0
  197379. .IP \(bu 2
  197380. \fBPR\fP \fI\%#48962\fP: (\fI\%garethgreenaway\fP) [2017.7] Fixing tests/integration/modules/test_service.py (refs: \fI\%#48970\fP)
  197381. .IP \(bu 2
  197382. 03aa0e49b0 Merge pull request \fI\%#48970\fP from Ch3LL/back_48962
  197383. .IP \(bu 2
  197384. 3ce1b8a3c9 Update the elif block to only be true for versions below Debian 9.
  197385. .UNINDENT
  197386. .IP \(bu 2
  197387. \fBPR\fP \fI\%#48968\fP: (\fI\%rallytime\fP) Update man pages for 2017.7.8 release
  197388. @ \fI2018\-08\-07 14:29:08 UTC\fP
  197389. .INDENT 2.0
  197390. .IP \(bu 2
  197391. e6cea5e3c7 Merge pull request \fI\%#48968\fP from rallytime/man\-pages
  197392. .IP \(bu 2
  197393. 64fe3be41a Update man pages for 2017.7.8 release
  197394. .UNINDENT
  197395. .IP \(bu 2
  197396. \fBPR\fP \fI\%#48950\fP: (\fI\%KaiSforza\fP) Added a quote to kitchen Jenkinsfiles
  197397. @ \fI2018\-08\-06 14:29:08 UTC\fP
  197398. .INDENT 2.0
  197399. .IP \(bu 2
  197400. 848d583438 Merge pull request \fI\%#48950\fP from KaiSforza/kitchenfix\-2017.7
  197401. .IP \(bu 2
  197402. 5242cb143a Added a quote to kitchen Jenkinsfiles
  197403. .UNINDENT
  197404. .IP \(bu 2
  197405. \fBPR\fP \fI\%#48943\fP: (\fI\%rallytime\fP) Mark some shell and runner integration tests as flaky
  197406. @ \fI2018\-08\-06 13:08:14 UTC\fP
  197407. .INDENT 2.0
  197408. .IP \(bu 2
  197409. 928d688d65 Merge pull request \fI\%#48943\fP from rallytime/flaky\-tests
  197410. .IP \(bu 2
  197411. 668da57ab9 Mark some shell and runner integration tests as flaky
  197412. .UNINDENT
  197413. .IP \(bu 2
  197414. \fBPR\fP \fI\%#48940\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48852\fP to 2017.7
  197415. @ \fI2018\-08\-05 21:32:26 UTC\fP
  197416. .INDENT 2.0
  197417. .IP \(bu 2
  197418. \fBPR\fP \fI\%#48852\fP: (\fI\%KaiSforza\fP) Record all the artifacts from the build (refs: \fI\%#48940\fP)
  197419. .IP \(bu 2
  197420. cd42510d3a Merge pull request \fI\%#48940\fP from rallytime/bp\-48852
  197421. .IP \(bu 2
  197422. fa4ef92e79 Record all the artifacts from the build
  197423. .UNINDENT
  197424. .IP \(bu 2
  197425. \fBPR\fP \fI\%#48935\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to test_pkg.test_pkg_015_installed_held
  197426. @ \fI2018\-08\-05 19:47:39 UTC\fP
  197427. .INDENT 2.0
  197428. .IP \(bu 2
  197429. 43649a68be Merge pull request \fI\%#48935\fP from garethgreenaway/1045_test_pkg_015_installed_held_centos
  197430. .IP \(bu 2
  197431. 0bb10107b6 Merge branch \(aq2017.7\(aq into 1045_test_pkg_015_installed_held_centos
  197432. .IP \(bu 2
  197433. 24d5e6a22f Fixing the test_pkg_015_installed_held test to be able to successfully run on CentOS
  197434. .UNINDENT
  197435. .IP \(bu 2
  197436. \fBISSUE\fP \fI\%#47087\fP: (\fI\%darkpixel\fP) How do I stop the prompt "Permission denied for host <hostname>, do you want to deploy the salt\-ssh key? (password required):"? (refs: \fI\%#47100\fP)
  197437. .IP \(bu 2
  197438. \fBPR\fP \fI\%#47100\fP: (\fI\%gtmanfred\fP) Allow for not being prompted to supply a password to deploy keys to a…
  197439. @ \fI2018\-08\-05 19:12:58 UTC\fP
  197440. .INDENT 2.0
  197441. .IP \(bu 2
  197442. 2421e2a570 Merge pull request \fI\%#47100\fP from gtmanfred/ssh
  197443. .IP \(bu 2
  197444. 5b443af7ae add key\-deploy test
  197445. .IP \(bu 2
  197446. a131c9beeb Allow for not being prompted to supply a password to deploy keys to a minion with salt\-ssh
  197447. .UNINDENT
  197448. .IP \(bu 2
  197449. \fBISSUE\fP \fI\%#48865\fP: (\fI\%mts\-avco\fP) Windows packages are hidden in pkg.list_pkgs if they have no DisplayVersion (refs: \fI\%#48891\fP)
  197450. .IP \(bu 2
  197451. \fBPR\fP \fI\%#48891\fP: (\fI\%damon\-atkins\fP) win_pkg: Fix issue introduced in Jan 2018 DisplayVersion missing should result…
  197452. @ \fI2018\-08\-05 18:53:47 UTC\fP
  197453. .INDENT 2.0
  197454. .IP \(bu 2
  197455. d541bd6446 Merge pull request \fI\%#48891\fP from damon\-atkins/2017.7_win_pkg.list_pkgs_not_found
  197456. .IP \(bu 2
  197457. a4af1dbfb1 Fix win_pkg issues introduced Jan 2018. If DisplayVersion does not exist it should return version as "Not Found"
  197458. .UNINDENT
  197459. .IP \(bu 2
  197460. \fBISSUE\fP \fI\%#27056\fP: (\fI\%oogali\fP) pkgng provider on FreeBSD does not do BATCH=yes (refs: \fI\%#48730\fP, \fI\%#29909\fP)
  197461. .IP \(bu 2
  197462. \fBPR\fP \fI\%#48896\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48730\fP to 2017.7
  197463. @ \fI2018\-08\-05 18:20:40 UTC\fP
  197464. .INDENT 2.0
  197465. .IP \(bu 2
  197466. \fBPR\fP \fI\%#48730\fP: (\fI\%fzipi\fP) Fix batch install on FreeBSD using pkgng (refs: \fI\%#48896\fP)
  197467. .IP \(bu 2
  197468. \fBPR\fP \fI\%#29909\fP: (\fI\%abednarik\fP) FreeBSD pkgng fix for non\-interactive install. (refs: \fI\%#48730\fP)
  197469. .IP \(bu 2
  197470. \fBPR\fP \fI\%#29907\fP: (\fI\%bmcorser\fP) Presumably what was meant (refs: \fI\%#48730\fP)
  197471. .IP \(bu 2
  197472. 5f6a56f5dc Merge pull request \fI\%#48896\fP from rallytime/bp\-48730
  197473. .IP \(bu 2
  197474. 57aa204c9d Merge branch \(aq2017.7\(aq into bp\-48730
  197475. .IP \(bu 2
  197476. 4995922584 Forgot variable in signature
  197477. .IP \(bu 2
  197478. 0503bc18b6 Fix batch install using pkgng
  197479. .UNINDENT
  197480. .IP \(bu 2
  197481. \fBPR\fP \fI\%#48933\fP: (\fI\%garethgreenaway\fP) [2017.7] Fix to test_service_disable_doesnot_exist
  197482. @ \fI2018\-08\-05 14:29:43 UTC\fP
  197483. .INDENT 2.0
  197484. .IP \(bu 2
  197485. 0c64bba865 Merge pull request \fI\%#48933\fP from garethgreenaway/1022_debian_8_failing_service\-test
  197486. .IP \(bu 2
  197487. 280d1d2ad2 Fixing failing test, integration.modules.test_service.ServiceModuleTest.test_service_disable_doesnot_exist, on Debian 8 and higher.
  197488. .UNINDENT
  197489. .IP \(bu 2
  197490. \fBPR\fP \fI\%#48922\fP: (\fI\%rallytime\fP) Update backticks on job_cache docs
  197491. @ \fI2018\-08\-03 21:05:46 UTC\fP
  197492. .INDENT 2.0
  197493. .IP \(bu 2
  197494. 0c3d2c6a09 Merge pull request \fI\%#48922\fP from rallytime/cache\-doc\-error
  197495. .IP \(bu 2
  197496. 8ca89df7e8 Update backticks on job_cache docs
  197497. .UNINDENT
  197498. .IP \(bu 2
  197499. \fBPR\fP \fI\%#48866\fP: (\fI\%Ch3LL\fP) Add cmd module integration tests for windows and fix space in path issue
  197500. @ \fI2018\-08\-03 21:03:33 UTC\fP
  197501. .INDENT 2.0
  197502. .IP \(bu 2
  197503. 8d1fc4f8e5 Merge pull request \fI\%#48866\fP from Ch3LL/cmd_win_tests
  197504. .IP \(bu 2
  197505. 905da13653 Merge branch \(aq2017.7\(aq into cmd_win_tests
  197506. .UNINDENT
  197507. .IP \(bu 2
  197508. \fBPR\fP \fI\%#48920\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48904\fP to 2017.7
  197509. @ \fI2018\-08\-03 15:17:07 UTC\fP
  197510. .INDENT 2.0
  197511. .IP \(bu 2
  197512. \fBPR\fP \fI\%#48904\fP: (\fI\%KaiSforza\fP) No rehashing in parallel (refs: \fI\%#48920\fP)
  197513. .IP \(bu 2
  197514. 57d58e7541 Merge pull request \fI\%#48920\fP from rallytime/bp\-48904\-2017.7
  197515. .IP \(bu 2
  197516. a55f92954a No rehashing in parallel
  197517. .UNINDENT
  197518. .IP \(bu 2
  197519. \fBPR\fP \fI\%#48876\fP: (\fI\%Vaelatern\fP) Make IP_LEARNING optional
  197520. @ \fI2018\-08\-02 19:30:24 UTC\fP
  197521. .INDENT 2.0
  197522. .IP \(bu 2
  197523. e79ccb35b1 Merge pull request \fI\%#48876\fP from Vaelatern/make\-network\-learning\-optional
  197524. .IP \(bu 2
  197525. a4905b0e5d Make IP_LEARNING optional
  197526. .UNINDENT
  197527. .IP \(bu 2
  197528. \fBPR\fP \fI\%#48890\fP: (\fI\%Ch3LL\fP) add sleep in test_cmd integration test
  197529. @ \fI2018\-08\-02 19:15:08 UTC\fP
  197530. .INDENT 2.0
  197531. .IP \(bu 2
  197532. f8bfab4f9f Merge pull request \fI\%#48890\fP from Ch3LL/cmd_test
  197533. .IP \(bu 2
  197534. acda4ed9ab add sleep in test_cmd integration test
  197535. .UNINDENT
  197536. .IP \(bu 2
  197537. \fBPR\fP \fI\%#48885\fP: (\fI\%rallytime\fP) Mark shadow module integration test as flaky
  197538. @ \fI2018\-08\-02 19:04:35 UTC\fP
  197539. .INDENT 2.0
  197540. .IP \(bu 2
  197541. 52722f6ded Merge pull request \fI\%#48885\fP from rallytime/flaky\-tests\-shadow
  197542. .IP \(bu 2
  197543. da871a2d57 Mark shadow module integration test as flaky
  197544. .UNINDENT
  197545. .IP \(bu 2
  197546. \fBPR\fP \fI\%#48884\fP: (\fI\%rallytime\fP) Separate compound matcher tests into individual tests
  197547. @ \fI2018\-08\-02 19:04:03 UTC\fP
  197548. .INDENT 2.0
  197549. .IP \(bu 2
  197550. bf0895656e Merge pull request \fI\%#48884\fP from rallytime/flaky\-tests\-matchers
  197551. .IP \(bu 2
  197552. 38d9eae537 Merge branch \(aq2017.7\(aq into flaky\-tests\-matchers
  197553. .UNINDENT
  197554. .IP \(bu 2
  197555. \fBPR\fP \fI\%#48868\fP: (\fI\%terminalmage\fP) Fix race when SIGTERM/SIGINT received while lazyloading a module
  197556. @ \fI2018\-08\-02 17:13:34 UTC\fP
  197557. .INDENT 2.0
  197558. .IP \(bu 2
  197559. a567666938 Merge pull request \fI\%#48868\fP from terminalmage/fix\-loader\-race
  197560. .IP \(bu 2
  197561. 5f1169b9a2 Fix race when SIGTERM/SIGINT received while lazyloading a module
  197562. .UNINDENT
  197563. .IP \(bu 2
  197564. \fBPR\fP \fI\%#48883\fP: (\fI\%terminalmage\fP) Fix failing git worktree tests
  197565. @ \fI2018\-08\-02 16:51:40 UTC\fP
  197566. .INDENT 2.0
  197567. .IP \(bu 2
  197568. 0ca0b6f2f2 Merge pull request \fI\%#48883\fP from terminalmage/salt\-jenkins\-1023
  197569. .IP \(bu 2
  197570. c61f75cb50 Fix failing git worktree tests
  197571. .INDENT 2.0
  197572. .INDENT 3.5
  197573. .INDENT 0.0
  197574. .IP \(bu 2
  197575. 3660dff13c Separate compound matcher tests into individual tests
  197576. .UNINDENT
  197577. .UNINDENT
  197578. .UNINDENT
  197579. .UNINDENT
  197580. .IP \(bu 2
  197581. \fBPR\fP \fI\%#48869\fP: (\fI\%Ch3LL\fP) Catch socket.error exception in testprogram
  197582. @ \fI2018\-08\-02 14:19:22 UTC\fP
  197583. .INDENT 2.0
  197584. .IP \(bu 2
  197585. a84f5155a1 Merge pull request \fI\%#48869\fP from Ch3LL/mac_shell_tests
  197586. .IP \(bu 2
  197587. 3734b1ec89 Catch socket.error exception in testprogram
  197588. .UNINDENT
  197589. .IP \(bu 2
  197590. \fBPR\fP \fI\%#48867\fP: (\fI\%rallytime\fP) Skip unreliable tornado test.
  197591. @ \fI2018\-08\-01 21:07:07 UTC\fP
  197592. .INDENT 2.0
  197593. .IP \(bu 2
  197594. 7f56b8bf44 Merge pull request \fI\%#48867\fP from rallytime/skip\-tornado\-test
  197595. .IP \(bu 2
  197596. 7320aa9104 Skip unreliable tornado test.
  197597. .IP \(bu 2
  197598. 3be11e06fe Add docs for new escape kwarg
  197599. .IP \(bu 2
  197600. 391bb8a411 use a specific path for just the cmd._run call
  197601. .IP \(bu 2
  197602. 62c66ba489 make sure we lower the check on shell
  197603. .IP \(bu 2
  197604. 9312a993a5 Add cmd module integration tests for windows and fix space in path issue
  197605. .UNINDENT
  197606. .IP \(bu 2
  197607. \fBPR\fP \fI\%#48853\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48850\fP to 2017.7
  197608. @ \fI2018\-07\-31 20:21:49 UTC\fP
  197609. .INDENT 2.0
  197610. .IP \(bu 2
  197611. \fBPR\fP \fI\%#48850\fP: (\fI\%rallytime\fP) Skip tests in integration.shell.test_master (refs: \fI\%#48853\fP)
  197612. .IP \(bu 2
  197613. 05f2d65de3 Merge pull request \fI\%#48853\fP from rallytime/bp\-48850
  197614. .IP \(bu 2
  197615. 3c33ee554a Skip tests in integration.shell.test_master
  197616. .UNINDENT
  197617. .IP \(bu 2
  197618. \fBISSUE\fP \fI\%#46689\fP: (\fI\%mxork\fP) pkg.installed: hold: True not applied to a package which is already installed. (refs: \fI\%#48426\fP)
  197619. .IP \(bu 2
  197620. \fBPR\fP \fI\%#48426\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to states/pkg.py
  197621. @ \fI2018\-07\-31 20:18:05 UTC\fP
  197622. .INDENT 2.0
  197623. .IP \(bu 2
  197624. 8a1285239a Merge pull request \fI\%#48426\fP from garethgreenaway/46689_fixing_pkg_held_when_package_is_installed
  197625. .IP \(bu 2
  197626. 9b0f5dd212 Fixing identation, removing some unnecessary conditionals.
  197627. .IP \(bu 2
  197628. 727964ab55 One last cleanup.
  197629. .IP \(bu 2
  197630. 11cb86e6eb General cleanup in pkg state, reducing duplicate code. Fixing the requires_salt_modules decorator, sys.doc was returning too much information for the event to handle. This change specifically calls sys.doc with the module name.
  197631. .IP \(bu 2
  197632. 16fb6ae635 Make sure pkg.hold and pkg.unhold are available before running the test.
  197633. .IP \(bu 2
  197634. 998651102d Fixing a situation when a package is already installed via salt or manually and a state attempts to set that package to be held. Previously the holding/unholding logic was only being run against packages that were being installed. This change moves the holding logic outside and runs it against all desired packages. Adding a new test to test holding logic.
  197635. .UNINDENT
  197636. .IP \(bu 2
  197637. \fBISSUE\fP \fI\%#47689\fP: (\fI\%OrlandoArcapix\fP) Poor performance of pip.installed when given a list of packages (refs: \fI\%#47734\fP)
  197638. .IP \(bu 2
  197639. \fBPR\fP \fI\%#47734\fP: (\fI\%OrlandoArcapix\fP) \fI\%#47689\fP improve run\-speed of pip package state
  197640. @ \fI2018\-07\-31 19:15:35 UTC\fP
  197641. .INDENT 2.0
  197642. .IP \(bu 2
  197643. c8e69431ff Merge pull request \fI\%#47734\fP from OrlandoArcapix/Issue47689\-pip\-state\-performance
  197644. .IP \(bu 2
  197645. 662bd1f780 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197646. .IP \(bu 2
  197647. 66936b4f41 Changed string comparison in pip test to match new confirmation string \- ref PR \fI\%#47734\fP\&.
  197648. .IP \(bu 2
  197649. bb5939d6ef Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197650. .IP \(bu 2
  197651. d6a49ae41c Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197652. .IP \(bu 2
  197653. d4083fc9d1 Merge branch \(aqIssue47689\-pip\-state\-performance\(aq of github.com:OrlandoArcapix/salt into Issue47689\-pip\-state\-performance
  197654. .INDENT 2.0
  197655. .IP \(bu 2
  197656. 779b5fa785 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197657. .UNINDENT
  197658. .IP \(bu 2
  197659. f3653349ab Removed whitespaces at end of added comments lines
  197660. .IP \(bu 2
  197661. db11f2ff4b Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197662. .IP \(bu 2
  197663. eac0178de2 Ref: \fI\%#47689\fP \- document additional kwarg passed to pip._check_if_installed function
  197664. .IP \(bu 2
  197665. 0d19803106 Merge branch \(aq2017.7\(aq into Issue47689\-pip\-state\-performance
  197666. .IP \(bu 2
  197667. d3678bf2f3 \fI\%#47689\fP fix lint errors
  197668. .IP \(bu 2
  197669. 4fec8f6bcc \fI\%#47698\fP improve run\-speed of pip package state checks by only loading the current package list once when checking multiple packages
  197670. .UNINDENT
  197671. .IP \(bu 2
  197672. \fBPR\fP \fI\%#48844\fP: (\fI\%AVeenstra\fP) Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  197673. @ \fI2018\-07\-31 17:20:27 UTC\fP
  197674. .INDENT 2.0
  197675. .IP \(bu 2
  197676. 83a5b3cc47 Merge pull request \fI\%#48844\fP from AVeenstra/fix\-python3\-incompatibility
  197677. .IP \(bu 2
  197678. f238779a62 Merge branch \(aq2017.7\(aq into fix\-python3\-incompatibility
  197679. .IP \(bu 2
  197680. 6b1805afc6 Fixed Python 3 incompatibility in methods in nilrt_ip and debian_ip.
  197681. .UNINDENT
  197682. .IP \(bu 2
  197683. \fBISSUE\fP \fI\%#48637\fP: (\fI\%slaws\fP) state.file.retention_schedule does not ignore relative directory when using getmtime() (refs: \fI\%#48662\fP)
  197684. .IP \(bu 2
  197685. \fBPR\fP \fI\%#48662\fP: (\fI\%slaws\fP) Excluding relative dirs in state.file.retention_schedule
  197686. @ \fI2018\-07\-31 16:15:09 UTC\fP
  197687. .INDENT 2.0
  197688. .IP \(bu 2
  197689. 136ff6735a Merge pull request \fI\%#48662\fP from slaws/fix\-retention\-schedule\-48637
  197690. .IP \(bu 2
  197691. 3c8f5f5b3d pylint fix
  197692. .IP \(bu 2
  197693. 5539eff39e Excluding relative dirs in state.file.retention_schedule
  197694. .UNINDENT
  197695. .IP \(bu 2
  197696. \fBISSUE\fP \fI\%#48818\fP: (\fI\%guettli\fP) Broken Link in Docs (refs: \fI\%#48840\fP)
  197697. .IP \(bu 2
  197698. \fBPR\fP \fI\%#48840\fP: (\fI\%gtmanfred\fP) fix links in pkg doc.
  197699. @ \fI2018\-07\-31 16:13:00 UTC\fP
  197700. .INDENT 2.0
  197701. .IP \(bu 2
  197702. 1fc04f281b Merge pull request \fI\%#48840\fP from gtmanfred/docs
  197703. .IP \(bu 2
  197704. 8d2d268c4a fix links in pkg doc.
  197705. .UNINDENT
  197706. .IP \(bu 2
  197707. \fBPR\fP \fI\%#48834\fP: (\fI\%gtmanfred\fP) read output of stringio if it is readable
  197708. @ \fI2018\-07\-31 13:40:48 UTC\fP
  197709. .INDENT 2.0
  197710. .IP \(bu 2
  197711. 0a19f845ea Merge pull request \fI\%#48834\fP from gtmanfred/slsutil
  197712. .IP \(bu 2
  197713. f9441d2bef read output of stringio if it is readable
  197714. .UNINDENT
  197715. .IP \(bu 2
  197716. \fBPR\fP \fI\%#48788\fP: (\fI\%Ch3LL\fP) Add timzeone windows integration tests and fix get_zone
  197717. @ \fI2018\-07\-27 20:14:30 UTC\fP
  197718. .INDENT 2.0
  197719. .IP \(bu 2
  197720. 2e00939a6e Merge pull request \fI\%#48788\fP from Ch3LL/timezone_windows
  197721. .IP \(bu 2
  197722. de95a6a215 add unused import to timezone test file
  197723. .IP \(bu 2
  197724. 22e424859e add unused import to import
  197725. .IP \(bu 2
  197726. 0840fc3117 disable pylint import error
  197727. .IP \(bu 2
  197728. f09d1a2c7e Add timzeon windows integration tests and fix get_zone
  197729. .UNINDENT
  197730. .IP \(bu 2
  197731. \fBPR\fP \fI\%#48742\fP: (\fI\%frogunder\fP) add windows integration tests for states.file
  197732. @ \fI2018\-07\-27 13:57:27 UTC\fP
  197733. .INDENT 2.0
  197734. .IP \(bu 2
  197735. 8e61f3dce0 Merge pull request \fI\%#48742\fP from frogunder/45014
  197736. .IP \(bu 2
  197737. f08058b043 Merge branch \(aq45014\(aq of \fI\%https://github.com/frogunder/salt\fP into 45014
  197738. .INDENT 2.0
  197739. .IP \(bu 2
  197740. 757fde70c6 Merge branch \(aq2017.7\(aq into 45014
  197741. .UNINDENT
  197742. .IP \(bu 2
  197743. 33c20c1ec0 fix tests
  197744. .IP \(bu 2
  197745. a7a914060d add windows integration tests for states.file
  197746. .UNINDENT
  197747. .IP \(bu 2
  197748. \fBISSUE\fP \fI\%#48417\fP: (\fI\%samilaine\fP) Contribution Documentation Refers to Incorrect Pylintrc (refs: \fI\%#48795\fP)
  197749. .IP \(bu 2
  197750. \fBPR\fP \fI\%#48795\fP: (\fI\%rallytime\fP) Update linting docs to contain .testing.pylintrc use
  197751. @ \fI2018\-07\-27 13:34:13 UTC\fP
  197752. .INDENT 2.0
  197753. .IP \(bu 2
  197754. d74f47b340 Merge pull request \fI\%#48795\fP from rallytime/fix\-48417
  197755. .IP \(bu 2
  197756. 5123b17ffd Update linting docs to contain .testing.pylintrc use
  197757. .UNINDENT
  197758. .IP \(bu 2
  197759. \fBPR\fP \fI\%#48789\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48783\fP to 2017.7
  197760. @ \fI2018\-07\-26 21:47:49 UTC\fP
  197761. .INDENT 2.0
  197762. .IP \(bu 2
  197763. \fBPR\fP \fI\%#48783\fP: (\fI\%KaiSforza\fP) Only run lint checks against changed files (refs: \fI\%#48789\fP)
  197764. .IP \(bu 2
  197765. \fBPR\fP \fI\%#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48783\fP)
  197766. .IP \(bu 2
  197767. bbea9ae936 Merge pull request \fI\%#48789\fP from rallytime/bp\-48783
  197768. .IP \(bu 2
  197769. 682a05bebe Threshold was wrong
  197770. .IP \(bu 2
  197771. d4ca0e3a97 test: except for OSError only
  197772. .IP \(bu 2
  197773. 4547231909 Only run lint checks against changed files
  197774. .UNINDENT
  197775. .IP \(bu 2
  197776. \fBPR\fP \fI\%#48731\fP: (\fI\%zer0def\fP) Fixed \fIenable_vnc\fP runner arg being passed into \fIseed_cmd\fP module arg in \fIvirt.init\fP\&.
  197777. @ \fI2018\-07\-26 21:13:59 UTC\fP
  197778. .INDENT 2.0
  197779. .IP \(bu 2
  197780. 41464d4b39 Merge pull request \fI\%#48731\fP from zer0def/virt\-runner\-init\-args
  197781. .IP \(bu 2
  197782. a1fa081ad0 Documentation to missing parameters in virt.init runner.
  197783. .IP \(bu 2
  197784. 365ebdf539 Fixed \fIenable_vnc\fP runner arg being passed into \fIseed_cmd\fP module arg in \fIvirt.init\fP\&.
  197785. .UNINDENT
  197786. .IP \(bu 2
  197787. \fBPR\fP \fI\%#48749\fP: (\fI\%Ch3LL\fP) Update Saltstack Logo banner on docs.saltstack.com
  197788. @ \fI2018\-07\-25 13:05:04 UTC\fP
  197789. .INDENT 2.0
  197790. .IP \(bu 2
  197791. 169afea16a Merge pull request \fI\%#48749\fP from Ch3LL/logo_docs
  197792. .IP \(bu 2
  197793. 73b1fc29f0 Update Saltstack Logo banner on docs.saltstack.com
  197794. .UNINDENT
  197795. .IP \(bu 2
  197796. \fBPR\fP \fI\%#48743\fP: (\fI\%rallytime\fP) Update DOCBANNER with new SaltConf18 image
  197797. @ \fI2018\-07\-24 16:46:19 UTC\fP
  197798. .INDENT 2.0
  197799. .IP \(bu 2
  197800. 781c6a6c36 Merge pull request \fI\%#48743\fP from rallytime/saltconf\-ad\-2017.7
  197801. .IP \(bu 2
  197802. 6df8fd8652 Update DOCBANNER with new SaltConf18 image
  197803. .UNINDENT
  197804. .IP \(bu 2
  197805. \fBPR\fP \fI\%#48720\fP: (\fI\%Ch3LL\fP) Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  197806. @ \fI2018\-07\-23 22:32:56 UTC\fP
  197807. .INDENT 2.0
  197808. .IP \(bu 2
  197809. ce4e22224e Merge pull request \fI\%#48720\fP from Ch3LL/mac_file_path
  197810. .IP \(bu 2
  197811. 01d25fae19 Fix test_managed_source_hash_indifferent_case on macosx to correct tmp path
  197812. .UNINDENT
  197813. .IP \(bu 2
  197814. \fBPR\fP \fI\%#48719\fP: (\fI\%Ch3LL\fP) Enable service if disabled before running state service tests
  197815. @ \fI2018\-07\-23 21:01:14 UTC\fP
  197816. .INDENT 2.0
  197817. .IP \(bu 2
  197818. 4b9f037d43 Merge pull request \fI\%#48719\fP from Ch3LL/service_mac_state
  197819. .IP \(bu 2
  197820. f44a2fc349 Enable service if disabled before running state service tests
  197821. .UNINDENT
  197822. .IP \(bu 2
  197823. \fBPR\fP \fI\%#48715\fP: (\fI\%rallytime\fP) [2017.7] Mark some tornado tests as flaky
  197824. @ \fI2018\-07\-23 17:27:13 UTC\fP
  197825. .INDENT 2.0
  197826. .IP \(bu 2
  197827. b2431eab10 Merge pull request \fI\%#48715\fP from rallytime/flaky\-tests
  197828. .IP \(bu 2
  197829. 7332cce567 [2017.7] Mark some tornado tests as flaky
  197830. .UNINDENT
  197831. .IP \(bu 2
  197832. \fBPR\fP \fI\%#48672\fP: (\fI\%frogunder\fP) add service enabled test
  197833. @ \fI2018\-07\-23 15:38:49 UTC\fP
  197834. .INDENT 2.0
  197835. .IP \(bu 2
  197836. 801eae3b8d Merge pull request \fI\%#48672\fP from frogunder/45012
  197837. .IP \(bu 2
  197838. 0747f2e58a add service enabled test
  197839. .UNINDENT
  197840. .IP \(bu 2
  197841. \fBPR\fP \fI\%#48691\fP: (\fI\%Ch3LL\fP) Add windows pkg module integration tests
  197842. @ \fI2018\-07\-22 20:01:30 UTC\fP
  197843. .INDENT 2.0
  197844. .IP \(bu 2
  197845. 689c231d2b Merge pull request \fI\%#48691\fP from Ch3LL/win_repo_pkg_test
  197846. .IP \(bu 2
  197847. 4b7d6d80c5 Remove unnecessary jinja in curl.sls file
  197848. .IP \(bu 2
  197849. 2bedadfadb Add windows pkg module integration tests
  197850. .UNINDENT
  197851. .IP \(bu 2
  197852. \fBISSUE\fP \fI\%#48627\fP: (\fI\%nbraud\fP) acme module\(aqs group parameter is non\-functional (refs: \fI\%#48635\fP)
  197853. .IP \(bu 2
  197854. \fBISSUE\fP \fI\%#48626\fP: (\fI\%nbraud\fP) acme module fails to set file permissions if the certificate is already present (refs: \fI\%#48635\fP)
  197855. .IP \(bu 2
  197856. \fBPR\fP \fI\%#48635\fP: (\fI\%nbraud\fP) Bug fixes in the acme module & state
  197857. @ \fI2018\-07\-22 19:53:49 UTC\fP
  197858. .INDENT 2.0
  197859. .IP \(bu 2
  197860. 83e4bba916 Merge pull request \fI\%#48635\fP from nbraud/acme
  197861. .IP \(bu 2
  197862. 3673bae9de modules/acme: explicitely ignore the \fIperms\fP return value
  197863. .IP \(bu 2
  197864. 1800a231e8 Fixup some schema expectations
  197865. .IP \(bu 2
  197866. 8c718cb417 acme: Make the private key mode configurable
  197867. .IP \(bu 2
  197868. 917dea6761 modules/acme: Use file.check_perms ret\-morphing powers
  197869. .IP \(bu 2
  197870. d2241ceb2d module/acme: Do not exit early when the certificate already exists
  197871. .IP \(bu 2
  197872. 98af0db826 modules/acme: Set the private key filemode to 0640
  197873. .UNINDENT
  197874. .IP \(bu 2
  197875. \fBPR\fP \fI\%#48345\fP: (\fI\%twangboy\fP) Fix behavior of powercfg module and state
  197876. @ \fI2018\-07\-20 17:37:13 UTC\fP
  197877. .INDENT 2.0
  197878. .IP \(bu 2
  197879. 85991680c8 Merge pull request \fI\%#48345\fP from twangboy/fix_48169
  197880. .IP \(bu 2
  197881. ead19725b6 Merge branch \(aq2017.7\(aq into fix_48169
  197882. .IP \(bu 2
  197883. 653fbcb383 Fix some docs errata
  197884. .IP \(bu 2
  197885. 8898e5ff11 Add warn_until Fluorine
  197886. .IP \(bu 2
  197887. 707906ac15 Fix unit.state.test_powercfg
  197888. .IP \(bu 2
  197889. 32c5014eb6 Fix unit tests
  197890. .IP \(bu 2
  197891. 0d9c56e540 Add some more logging
  197892. .IP \(bu 2
  197893. b20453de9f Use minutes to set
  197894. .IP \(bu 2
  197895. 7dc7eb11c2 Fix documentation to denote seconds when setting
  197896. .UNINDENT
  197897. .IP \(bu 2
  197898. \fBPR\fP \fI\%#48656\fP: (\fI\%Ch3LL\fP) Add windows ip module integration tests
  197899. @ \fI2018\-07\-20 14:57:45 UTC\fP
  197900. .INDENT 2.0
  197901. .IP \(bu 2
  197902. 96447ce541 Merge pull request \fI\%#48656\fP from Ch3LL/windows_ip_mod
  197903. .IP \(bu 2
  197904. 90c3f568b1 Add windows ip module integration tests
  197905. .UNINDENT
  197906. .IP \(bu 2
  197907. \fBPR\fP \fI\%#48638\fP: (\fI\%twangboy\fP) Remove vcredist 2015 from Py3 installer
  197908. @ \fI2018\-07\-20 14:56:40 UTC\fP
  197909. .INDENT 2.0
  197910. .IP \(bu 2
  197911. 0c5fff3dc8 Merge pull request \fI\%#48638\fP from twangboy/fix_vcredist
  197912. .IP \(bu 2
  197913. e30d17099d Use goto instead of if statement
  197914. .IP \(bu 2
  197915. e1042fa084 Remove vcredist for Py3
  197916. .UNINDENT
  197917. .IP \(bu 2
  197918. \fBPR\fP \fI\%#48664\fP: (\fI\%Ch3LL\fP) [2017.7] Fix service.disabled test for macosx
  197919. @ \fI2018\-07\-20 14:32:56 UTC\fP
  197920. .INDENT 2.0
  197921. .IP \(bu 2
  197922. 1ebd96d909 Merge pull request \fI\%#48664\fP from Ch3LL/srv_disable_mac
  197923. .IP \(bu 2
  197924. f1fbfad387 move the disable call up in try block
  197925. .IP \(bu 2
  197926. f60d21bda4 reverse assertion order for service disable test
  197927. .IP \(bu 2
  197928. 3727d1b3b9 switch try/except to match 2018.3
  197929. .IP \(bu 2
  197930. fb953c2369 [2017.7] Fix service.disabled test for macosx
  197931. .UNINDENT
  197932. .IP \(bu 2
  197933. \fBPR\fP \fI\%#48625\fP: (\fI\%Ch3LL\fP) Follow up to PR \fI\%#48555\fP
  197934. @ \fI2018\-07\-20 14:27:55 UTC\fP
  197935. .INDENT 2.0
  197936. .IP \(bu 2
  197937. \fBPR\fP \fI\%#48555\fP: (\fI\%Ch3LL\fP) Fix state.sls_id not running on ssh minion (refs: \fI\%#48625\fP)
  197938. .IP \(bu 2
  197939. 3da3cf2f3f Merge pull request \fI\%#48625\fP from Ch3LL/ssh_state
  197940. .IP \(bu 2
  197941. f590eb2b02 Update state.py
  197942. .IP \(bu 2
  197943. 9790ee3d0d Follow up to PR \fI\%#48555\fP
  197944. .UNINDENT
  197945. .IP \(bu 2
  197946. \fBPR\fP \fI\%#48673\fP: (\fI\%Ch3LL\fP) Use different pub and ret ports for testprogram integration tests
  197947. @ \fI2018\-07\-20 14:11:51 UTC\fP
  197948. .INDENT 2.0
  197949. .IP \(bu 2
  197950. 33812f78f1 Merge pull request \fI\%#48673\fP from Ch3LL/mac_port
  197951. .IP \(bu 2
  197952. 87dd85a220 Use different pub and ret ports for testprogram integration tests
  197953. .UNINDENT
  197954. .IP \(bu 2
  197955. \fBPR\fP \fI\%#48675\fP: (\fI\%Ch3LL\fP) Fix mac service.disable tests
  197956. @ \fI2018\-07\-20 14:09:41 UTC\fP
  197957. .INDENT 2.0
  197958. .IP \(bu 2
  197959. 5f6a7c4d89 Merge pull request \fI\%#48675\fP from Ch3LL/mac_disable
  197960. .IP \(bu 2
  197961. c78efab828 Fix mac service.disable tests
  197962. .UNINDENT
  197963. .IP \(bu 2
  197964. \fBISSUE\fP \fI\%#43138\fP: (\fI\%F30\fP) npm.installed mistakenly throws error for packages which are "installed via remote" (refs: \fI\%#48492\fP, \fI\%#48658\fP)
  197965. .IP \(bu 2
  197966. \fBPR\fP \fI\%#48658\fP: (\fI\%wyardley\fP) Improve handling of json output (\fI\%#43138\fP)
  197967. @ \fI2018\-07\-20 14:08:34 UTC\fP
  197968. .INDENT 2.0
  197969. .IP \(bu 2
  197970. \fBPR\fP \fI\%#48492\fP: (\fI\%wyardley\fP) Improve identifying json out in npm module (\fI\%#43138\fP) (refs: \fI\%#48658\fP)
  197971. .IP \(bu 2
  197972. 93d2f51d2b Merge pull request \fI\%#48658\fP from wyardley/wyardley\-npm\-json\-output\-2017
  197973. .IP \(bu 2
  197974. 7ff3c9c5ff Improve handling of npm json output (\fI\%#43138\fP)
  197975. .UNINDENT
  197976. .IP \(bu 2
  197977. \fBISSUE\fP \fI\%#48677\fP: (\fI\%OrlandoArcapix\fP) npm.bootstrap does not return True (clean) with test=true and no changes (refs: \fI\%#48678\fP)
  197978. .IP \(bu 2
  197979. \fBPR\fP \fI\%#48678\fP: (\fI\%OrlandoArcapix\fP) Fix for issue \fI\%#48677\fP \- return clean npm.bootstrap on no changes
  197980. @ \fI2018\-07\-20 14:07:22 UTC\fP
  197981. .INDENT 2.0
  197982. .IP \(bu 2
  197983. 3e293b0513 Merge pull request \fI\%#48678\fP from OrlandoArcapix/fix\-npm\-dryrun\-test
  197984. .IP \(bu 2
  197985. 851a404f6b Fix for issue \fI\%#48677\fP \- return True when no changes are to be made with npm.bootstrap with test=true
  197986. .UNINDENT
  197987. .IP \(bu 2
  197988. \fBISSUE\fP \fI\%#46884\fP: (\fI\%alexandergraul\fP) salt.utils.rsax931._init_libcrypto() fails to initialize libopenssl1_1\-1.1.0h (refs: \fI\%#48580\fP)
  197989. .IP \(bu 2
  197990. \fBPR\fP \fI\%#48580\fP: (\fI\%rallytime\fP) Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  197991. @ \fI2018\-07\-19 19:21:13 UTC\fP
  197992. .INDENT 2.0
  197993. .IP \(bu 2
  197994. \fBPR\fP \fI\%#37772\fP: (\fI\%bdrung\fP) Support initializing OpenSSL 1.1 (refs: \fI\%#48580\fP)
  197995. .IP \(bu 2
  197996. 07a1f6520f Merge pull request \fI\%#48580\fP from rallytime/fix\-46884
  197997. .IP \(bu 2
  197998. 736b382e91 Don\(aqt error on retcode 0 in libcrypto.OPENSSL_init_crypto call
  197999. .UNINDENT
  198000. .IP \(bu 2
  198001. \fBPR\fP \fI\%#48628\fP: (\fI\%terminalmage\fP) Fix NameError in testinfra module
  198002. @ \fI2018\-07\-18 21:34:03 UTC\fP
  198003. .INDENT 2.0
  198004. .IP \(bu 2
  198005. 9874429741 Merge pull request \fI\%#48628\fP from terminalmage/testinfra
  198006. .IP \(bu 2
  198007. 5ace9f01ec Fix NameError in testinfra module
  198008. .UNINDENT
  198009. .IP \(bu 2
  198010. \fBPR\fP \fI\%#48651\fP: (\fI\%gtmanfred\fP) [2017.7] handle pyzmq for python3.4
  198011. @ \fI2018\-07\-18 17:34:41 UTC\fP
  198012. .INDENT 2.0
  198013. .IP \(bu 2
  198014. 0d4c80205f Merge pull request \fI\%#48651\fP from gtmanfred/pylint\-2017.7
  198015. .IP \(bu 2
  198016. b6ee52f859 handle pyzmq for python3.4
  198017. .UNINDENT
  198018. .IP \(bu 2
  198019. \fBPR\fP \fI\%#48647\fP: (\fI\%gtmanfred\fP) [2017.7] disable checks on pylint
  198020. @ \fI2018\-07\-18 16:21:22 UTC\fP
  198021. .INDENT 2.0
  198022. .IP \(bu 2
  198023. 160ae29cf2 Merge pull request \fI\%#48647\fP from gtmanfred/pylint\-2017.7
  198024. .IP \(bu 2
  198025. ff818c4ca2 disable checks on pylint
  198026. .UNINDENT
  198027. .IP \(bu 2
  198028. \fBISSUE\fP \fI\%#46924\fP: (\fI\%chschmitt\fP) Stale custom roster from __pycache__ executed instead of changed .py file (refs: \fI\%#48593\fP)
  198029. .IP \(bu 2
  198030. \fBPR\fP \fI\%#48593\fP: (\fI\%pritambaral\fP) Fix importlib pyc loading order
  198031. @ \fI2018\-07\-17 21:06:28 UTC\fP
  198032. .INDENT 2.0
  198033. .IP \(bu 2
  198034. 47b1032efa Merge pull request \fI\%#48593\fP from pritambaral/fix/2017.7\-importlib\-pyc\-loading\-order
  198035. .IP \(bu 2
  198036. add7894dee loader: Fix suffix order when importlib is used
  198037. .UNINDENT
  198038. .IP \(bu 2
  198039. \fBPR\fP \fI\%#48630\fP: (\fI\%dubb\-b\fP) Adding options to Jenkins pipline builds
  198040. @ \fI2018\-07\-17 20:16:23 UTC\fP
  198041. .INDENT 2.0
  198042. .IP \(bu 2
  198043. 9da7b2ec8d Merge pull request \fI\%#48630\fP from dubb\-b/pipeline\-updates
  198044. .IP \(bu 2
  198045. 8594a8dd05 Adding PY_COLORS=1 as PY_COLORS = 1 instead
  198046. .IP \(bu 2
  198047. 314b0e3599 Adding PY_COLORS=1 for python programs to use ANSI Colors
  198048. .IP \(bu 2
  198049. b705e8f7a5 Adding correct spacing to options section
  198050. .IP \(bu 2
  198051. 9d8a7e07db Adding options to Jenkins pipline builds
  198052. .IP \(bu 2
  198053. \fBPR\fP \fI\%saltstack/salt#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48633\fP)
  198054. .UNINDENT
  198055. .IP \(bu 2
  198056. \fBPR\fP \fI\%#48633\fP: (\fI\%gtmanfred\fP) Revert "only run pylint on files that change"
  198057. @ \fI2018\-07\-17 18:44:03 UTC\fP
  198058. .INDENT 2.0
  198059. .IP \(bu 2
  198060. a8ae2adf64 Merge pull request \fI\%#48633\fP from saltstack/revert\-48610\-2017.7
  198061. .IP \(bu 2
  198062. bab4a769d4 Revert "only run pylint on files that change"
  198063. .UNINDENT
  198064. .IP \(bu 2
  198065. \fBPR\fP \fI\%#48614\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48562\fP to 2017.7
  198066. @ \fI2018\-07\-17 15:04:04 UTC\fP
  198067. .INDENT 2.0
  198068. .IP \(bu 2
  198069. \fBPR\fP \fI\%#48562\fP: (\fI\%basepi\fP) Add timeouts to all s3 queries (refs: \fI\%#48614\fP)
  198070. .IP \(bu 2
  198071. 6e32bb7f74 Merge pull request \fI\%#48614\fP from rallytime/bp\-48562
  198072. .IP \(bu 2
  198073. cb654bbf2c Add timeouts to all s3 queries
  198074. .UNINDENT
  198075. .IP \(bu 2
  198076. \fBISSUE\fP \fI\%#48415\fP: (\fI\%doesitblend\fP) Event.send short\-circuiting in multi\-master mode (refs: \fI\%#48588\fP)
  198077. .IP \(bu 2
  198078. \fBPR\fP \fI\%#48588\fP: (\fI\%garethgreenaway\fP) [2017.7] event send multi master
  198079. @ \fI2018\-07\-17 10:31:20 UTC\fP
  198080. .INDENT 2.0
  198081. .IP \(bu 2
  198082. 1b6e6388f8 Merge pull request \fI\%#48588\fP from garethgreenaway/48415_event_send_multi_master
  198083. .IP \(bu 2
  198084. fab25af1a9 Adding some quick documention about why we are setting ret=True following the channel.send.
  198085. .IP \(bu 2
  198086. bf78f4b188 If the channel send is sucessful and does not raise an exception, we set ret to True, in case a previous exception from a previous channel send to another master has sent it to False.
  198087. .IP \(bu 2
  198088. 8d1551c5fb When using Salt multi\-master, if we encouter a salt master that has not accepted the minion key yet we should not exit right away, rather continue on and try the next salt master available in the list.
  198089. .UNINDENT
  198090. .IP \(bu 2
  198091. \fBPR\fP \fI\%#48610\fP: (\fI\%gtmanfred\fP) only run pylint on files that change (refs: \fI\%#48783\fP)
  198092. @ \fI2018\-07\-17 01:36:50 UTC\fP
  198093. .INDENT 2.0
  198094. .IP \(bu 2
  198095. 24ffda49ba Merge pull request \fI\%#48610\fP from gtmanfred/2017.7
  198096. .IP \(bu 2
  198097. 779d1a3dcb only run pylint on files that change
  198098. .UNINDENT
  198099. .IP \(bu 2
  198100. \fBPR\fP \fI\%#48584\fP: (\fI\%Ch3LL\fP) Fix grp import for mac in test_user integration test
  198101. @ \fI2018\-07\-16 19:28:13 UTC\fP
  198102. .INDENT 2.0
  198103. .IP \(bu 2
  198104. 5391dd0a8d Merge pull request \fI\%#48584\fP from Ch3LL/mac_user_grp
  198105. .IP \(bu 2
  198106. 585ee9db90 Fix grp import for mac in test_user integration test
  198107. .UNINDENT
  198108. .IP \(bu 2
  198109. \fBPR\fP \fI\%#48555\fP: (\fI\%Ch3LL\fP) Fix state.sls_id not running on ssh minion (refs: \fI\%#48625\fP)
  198110. @ \fI2018\-07\-16 13:24:41 UTC\fP
  198111. .INDENT 2.0
  198112. .IP \(bu 2
  198113. 61572b6780 Merge pull request \fI\%#48555\fP from Ch3LL/ssh_id
  198114. .IP \(bu 2
  198115. f69932f506 fix pylint
  198116. .IP \(bu 2
  198117. 70e36764ee Add more tests for salt\-ssh state.sls_id
  198118. .IP \(bu 2
  198119. dab80e805c Fix state.sls_id to run on ssh minion and not master
  198120. .UNINDENT
  198121. .IP \(bu 2
  198122. \fBPR\fP \fI\%#48583\fP: (\fI\%Ch3LL\fP) Add flaky decorator to mac_system and mac_timezone tests
  198123. @ \fI2018\-07\-13 19:56:40 UTC\fP
  198124. .INDENT 2.0
  198125. .IP \(bu 2
  198126. aa6dcf39e8 Merge pull request \fI\%#48583\fP from Ch3LL/mac_flaky_tests
  198127. .IP \(bu 2
  198128. 4ba2299a87 import flaky decorator on mac tests
  198129. .IP \(bu 2
  198130. 811220b41e Add flaky decorator to mac_system and mac_timezone tests
  198131. .UNINDENT
  198132. .IP \(bu 2
  198133. \fBPR\fP \fI\%#48534\fP: (\fI\%xetix\fP) Fix behaviour of function latest_version in zypper module when multip…
  198134. @ \fI2018\-07\-13 19:56:05 UTC\fP
  198135. .INDENT 2.0
  198136. .IP \(bu 2
  198137. 6973152057 Merge pull request \fI\%#48534\fP from xetix/fix\-zypper\-latest_version
  198138. .IP \(bu 2
  198139. 9985f0b4c1 Lint: remove extra blank line
  198140. .IP \(bu 2
  198141. 5fbead8a36 Merge branch \(aq2017.7\(aq into fix\-zypper\-latest_version
  198142. .IP \(bu 2
  198143. 56ac449271 Merge branch \(aqfix\-zypper\-latest_version\(aq of \fI\%https://github.com/xetix/salt\fP into fix\-zypper\-latest_version
  198144. .INDENT 2.0
  198145. .IP \(bu 2
  198146. 44e87f5a0f Adding testcase for this fix.
  198147. .IP \(bu 2
  198148. b354c6863c Fix behaviour of function latest_version in zypper module when multiple packages are passed to function. Function now properly return dict with empty string as version if latest packages is already installed, and multiple packages are passed to function
  198149. .UNINDENT
  198150. .IP \(bu 2
  198151. db35d0c1e1 Adding testcase for this fix.
  198152. .IP \(bu 2
  198153. d2513757ed Fix behaviour of function latest_version in zypper module when multiple packages are passed to function. Function now properly return dict with empty string as version if latest packages is already installed, and multiple packages are passed to function
  198154. .UNINDENT
  198155. .IP \(bu 2
  198156. \fBPR\fP \fI\%#48582\fP: (\fI\%dwoz\fP) Finally fix prepend for real
  198157. @ \fI2018\-07\-13 18:45:35 UTC\fP
  198158. .INDENT 2.0
  198159. .IP \(bu 2
  198160. 10124034cb Merge pull request \fI\%#48582\fP from dwoz/test_prepend_fix
  198161. .IP \(bu 2
  198162. f37571e0bd Merge branch \(aq2017.7\(aq into test_prepend_fix
  198163. .UNINDENT
  198164. .IP \(bu 2
  198165. \fBPR\fP \fI\%#48564\fP: (\fI\%dwoz\fP) Fix failing prepend test
  198166. @ \fI2018\-07\-13 14:12:47 UTC\fP
  198167. .INDENT 2.0
  198168. .IP \(bu 2
  198169. 13f67335f3 Merge pull request \fI\%#48564\fP from dwoz/test_prepend_fix
  198170. .INDENT 2.0
  198171. .IP \(bu 2
  198172. 136ddf5f54 Finally fix prepend for real
  198173. .UNINDENT
  198174. .IP \(bu 2
  198175. 66b25e65bf Fix failing prepend test
  198176. .UNINDENT
  198177. .IP \(bu 2
  198178. \fBPR\fP \fI\%#48558\fP: (\fI\%dwoz\fP) Remove which mock to get the test passing
  198179. @ \fI2018\-07\-12 19:04:12 UTC\fP
  198180. .INDENT 2.0
  198181. .IP \(bu 2
  198182. b8ce27729f Merge pull request \fI\%#48558\fP from dwoz/test_file_fix
  198183. .IP \(bu 2
  198184. c858bf477f Remove which mock to get the test passing
  198185. .UNINDENT
  198186. .IP \(bu 2
  198187. \fBPR\fP \fI\%#48552\fP: (\fI\%KaiSforza\fP) Set up junit in jenkins
  198188. @ \fI2018\-07\-12 16:23:33 UTC\fP
  198189. .INDENT 2.0
  198190. .IP \(bu 2
  198191. a15c65202d Merge pull request \fI\%#48552\fP from KaiSforza/jenkins\-junit\-2017
  198192. .IP \(bu 2
  198193. 72b1830974 Set up junit in jenkins
  198194. .UNINDENT
  198195. .IP \(bu 2
  198196. \fBPR\fP \fI\%#48550\fP: (\fI\%gtmanfred\fP) add posargs to tox pylint
  198197. @ \fI2018\-07\-12 14:34:25 UTC\fP
  198198. .INDENT 2.0
  198199. .IP \(bu 2
  198200. f73108026e Merge pull request \fI\%#48550\fP from gtmanfred/2017.7
  198201. .IP \(bu 2
  198202. d5c603d9b6 add posargs to tox pylint
  198203. .UNINDENT
  198204. .IP \(bu 2
  198205. \fBPR\fP \fI\%#48535\fP: (\fI\%asnell\fP) Update manage_file helptext
  198206. @ \fI2018\-07\-12 13:34:47 UTC\fP
  198207. .INDENT 2.0
  198208. .IP \(bu 2
  198209. 113b0426f8 Merge pull request \fI\%#48535\fP from asnell/asnell\-patch\-2
  198210. .IP \(bu 2
  198211. d328f6e43d Update manage_file helptext
  198212. .IP \(bu 2
  198213. \fBPR\fP \fI\%saltstack/salt#48525\fP: (\fI\%gtmanfred\fP) add kazoo for testing zookeeper. (refs: \fI\%#48527\fP)
  198214. .UNINDENT
  198215. .IP \(bu 2
  198216. \fBPR\fP \fI\%#48527\fP: (\fI\%gtmanfred\fP) Revert "add kazoo for testing zookeeper."
  198217. @ \fI2018\-07\-11 17:29:16 UTC\fP
  198218. .INDENT 2.0
  198219. .IP \(bu 2
  198220. 0c0c05c2bc Merge pull request \fI\%#48527\fP from saltstack/revert\-48525\-2017.7
  198221. .IP \(bu 2
  198222. 18d06c1a93 Revert "add kazoo for testing zookeeper."
  198223. .UNINDENT
  198224. .IP \(bu 2
  198225. \fBPR\fP \fI\%#48526\fP: (\fI\%twangboy\fP) Rollback python\-certifi\-win32
  198226. @ \fI2018\-07\-11 17:26:56 UTC\fP
  198227. .INDENT 2.0
  198228. .IP \(bu 2
  198229. 05bad3e71c Merge pull request \fI\%#48526\fP from twangboy/rollback_certifi\-win32
  198230. .IP \(bu 2
  198231. 361b3cdc2f Rollback python\-certifi\-win32
  198232. .UNINDENT
  198233. .IP \(bu 2
  198234. \fBPR\fP \fI\%#48521\fP: (\fI\%Martin819\fP) Back\-port \fI\%#48222\fP to 2017.7
  198235. @ \fI2018\-07\-11 16:42:51 UTC\fP
  198236. .INDENT 2.0
  198237. .IP \(bu 2
  198238. \fBPR\fP \fI\%#48222\fP: (\fI\%Martin819\fP) Fix GlusterFS module for version 4.0 and above (refs: \fI\%#48521\fP)
  198239. .IP \(bu 2
  198240. db066effe4 Merge pull request \fI\%#48521\fP from Martin819/2017.7
  198241. .IP \(bu 2
  198242. d5d01f6698 Fix for GlusterFS 4.0 and above
  198243. .UNINDENT
  198244. .IP \(bu 2
  198245. \fBPR\fP \fI\%#48525\fP: (\fI\%gtmanfred\fP) add kazoo for testing zookeeper.
  198246. @ \fI2018\-07\-11 16:09:40 UTC\fP
  198247. .INDENT 2.0
  198248. .IP \(bu 2
  198249. ed0bd2bbec Merge pull request \fI\%#48525\fP from gtmanfred/2017.7
  198250. .IP \(bu 2
  198251. d7a6bff2b2 add kazoo for testing zookeeper.
  198252. .UNINDENT
  198253. .IP \(bu 2
  198254. \fBISSUE\fP \fI\%#48277\fP: (\fI\%dvenckus\fP) init.sls with included states fails with more than one, \(aqTemplate was specified incorrectly: False\(aq (refs: \fI\%#48388\fP)
  198255. .IP \(bu 2
  198256. \fBISSUE\fP \fI\%#46986\fP: (\fI\%github\-abcde\fP) opts file_roots gets overwritten with pillar_roots in orchestration run (refs: \fI\%#48388\fP)
  198257. .IP \(bu 2
  198258. \fBPR\fP \fI\%#48388\fP: (\fI\%garethgreenaway\fP) [2017.7] reset file_roots for renderers after compile_pillar
  198259. @ \fI2018\-07\-11 13:13:45 UTC\fP
  198260. .INDENT 2.0
  198261. .IP \(bu 2
  198262. ad5a959ab9 Merge pull request \fI\%#48388\fP from garethgreenaway/48277_2017_7_file_roots_wrong
  198263. .IP \(bu 2
  198264. 6f11da35a7 Fixing a few things in the new test.
  198265. .IP \(bu 2
  198266. cf747b14ec Fixing lint issue
  198267. .IP \(bu 2
  198268. 16d36c79c8 When pillar items are compiled a new render is instantiated but the file_roots is the pillar_roots. This change forces the __opts__[\(aqfile_roots\(aq] to be set to what is set in actual_file_roots for all renderers once compile_pillar has finished. Adding a test when this situation is run via a orchestration runner.
  198269. .UNINDENT
  198270. .IP \(bu 2
  198271. \fBPR\fP \fI\%#48512\fP: (\fI\%gtmanfred\fP) pin pm and grunt packages for npm tests
  198272. @ \fI2018\-07\-11 13:06:06 UTC\fP
  198273. .INDENT 2.0
  198274. .IP \(bu 2
  198275. 38df812257 Merge pull request \fI\%#48512\fP from gtmanfred/npm
  198276. .IP \(bu 2
  198277. 9ba0f6b3a0 pin pm and grunt packages for npm tests
  198278. .UNINDENT
  198279. .IP \(bu 2
  198280. \fBPR\fP \fI\%#48513\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.7 to 2017.7
  198281. @ \fI2018\-07\-11 13:04:01 UTC\fP
  198282. .INDENT 2.0
  198283. .IP \(bu 2
  198284. 04ba31147f Merge pull request \fI\%#48513\fP from rallytime/merge\-2017.7
  198285. .IP \(bu 2
  198286. a466a4880f Merge branch \(aq2017.7.7\(aq into \(aq2017.7\(aq
  198287. .UNINDENT
  198288. .IP \(bu 2
  198289. \fBPR\fP \fI\%#48514\fP: (\fI\%gtmanfred\fP) upgrade dependencies for pytest tests
  198290. @ \fI2018\-07\-10 20:53:55 UTC\fP
  198291. .INDENT 2.0
  198292. .IP \(bu 2
  198293. f0352ea95a Merge pull request \fI\%#48514\fP from gtmanfred/2017.7
  198294. .IP \(bu 2
  198295. 739bf92599 upgrade dependencies for pytest tests
  198296. .UNINDENT
  198297. .IP \(bu 2
  198298. \fBPR\fP \fI\%#48491\fP: (\fI\%grokrecursion\fP) Group gid fixed as integer
  198299. @ \fI2018\-07\-10 19:31:40 UTC\fP
  198300. .INDENT 2.0
  198301. .IP \(bu 2
  198302. 5372b60137 Merge pull request \fI\%#48491\fP from grokrecursion/group\-fix\-v2
  198303. .IP \(bu 2
  198304. 1556b37221 fixed pylint errors
  198305. .IP \(bu 2
  198306. f6d9177dab fixed indentation for pep8
  198307. .IP \(bu 2
  198308. b9556bf923 v2 try of gid converted to integer
  198309. .UNINDENT
  198310. .IP \(bu 2
  198311. \fBPR\fP \fI\%#48375\fP: (\fI\%Ch3LL\fP) Add user and group to makedirs cmd in file.copy
  198312. @ \fI2018\-07\-10 12:35:10 UTC\fP
  198313. .INDENT 2.0
  198314. .IP \(bu 2
  198315. 16d3daab3c Merge pull request \fI\%#48375\fP from Ch3LL/file_copy
  198316. .IP \(bu 2
  198317. d16a790775 Add mode to _makedirs call in file.copy
  198318. .IP \(bu 2
  198319. 2cbcb4fd26 Add user and group to makedirs cmd in file.copy
  198320. .UNINDENT
  198321. .IP \(bu 2
  198322. \fBPR\fP \fI\%#48490\fP: (\fI\%KaiSforza\fP) Cifixes
  198323. @ \fI2018\-07\-09 15:20:46 UTC\fP
  198324. .INDENT 2.0
  198325. .IP \(bu 2
  198326. d38951b1b3 Merge pull request \fI\%#48490\fP from KaiSforza/cifixes
  198327. .IP \(bu 2
  198328. 9fe7199af5 Mark failed if anything is found
  198329. .IP \(bu 2
  198330. 6749a6bf19 Stop archiving the docs
  198331. .UNINDENT
  198332. .IP \(bu 2
  198333. \fBPR\fP \fI\%#48472\fP: (\fI\%gtmanfred\fP) use tox to run pylint
  198334. @ \fI2018\-07\-07 02:46:46 UTC\fP
  198335. .INDENT 2.0
  198336. .IP \(bu 2
  198337. 22cd4206c4 Merge pull request \fI\%#48472\fP from gtmanfred/2017.7
  198338. .IP \(bu 2
  198339. c7a3a7d8bd update jenkins tests to use tox for lint
  198340. .IP \(bu 2
  198341. 44aaac1d33 use tox to run pylint
  198342. .UNINDENT
  198343. .IP \(bu 2
  198344. \fBPR\fP \fI\%#48476\fP: (\fI\%twangboy\fP) Fix dependencies
  198345. @ \fI2018\-07\-06 23:43:26 UTC\fP
  198346. .INDENT 2.0
  198347. .IP \(bu 2
  198348. 27ea8f35ea Merge pull request \fI\%#48476\fP from twangboy/fix_dependencies
  198349. .IP \(bu 2
  198350. b0087d425c Add license info
  198351. .IP \(bu 2
  198352. 935f9b560c Fix dependencies
  198353. .UNINDENT
  198354. .IP \(bu 2
  198355. \fBISSUE\fP \fI\%#48336\fP: (\fI\%JuanManuelVizcainoAbad\fP) file.directory (refs: \fI\%#48399\fP)
  198356. .IP \(bu 2
  198357. \fBPR\fP \fI\%#48399\fP: (\fI\%garethgreenaway\fP) [2017.7] fixes to module/file.py
  198358. @ \fI2018\-07\-06 18:02:29 UTC\fP
  198359. .INDENT 2.0
  198360. .IP \(bu 2
  198361. acf42864aa Merge pull request \fI\%#48399\fP from garethgreenaway/48336_2017_7_ensure_chmod_setuid_with_chown
  198362. .IP \(bu 2
  198363. 8efd33320f Normalize the mode before we compare it.
  198364. .IP \(bu 2
  198365. f894f0ecb8 Setting the mode with setuid or setgid bits in addition to setting the owner and group will force the setuid & setgid bits to reset. This change ensures that we set the mode after setting the owner & group.
  198366. .UNINDENT
  198367. .IP \(bu 2
  198368. \fBPR\fP \fI\%#48471\fP: (\fI\%gtmanfred\fP) Add some configurations to tox
  198369. @ \fI2018\-07\-06 17:45:55 UTC\fP
  198370. .INDENT 2.0
  198371. .IP \(bu 2
  198372. 6166ff6b78 Merge pull request \fI\%#48471\fP from gtmanfred/2017.7
  198373. .IP \(bu 2
  198374. 392ab4e51f Add some configurations to tox
  198375. .UNINDENT
  198376. .IP \(bu 2
  198377. \fBPR\fP \fI\%#48433\fP: (\fI\%discogestalt\fP) Fix issue with redismod.hmset method
  198378. @ \fI2018\-07\-06 15:55:44 UTC\fP
  198379. .INDENT 2.0
  198380. .IP \(bu 2
  198381. 6234d9b15d Merge pull request \fI\%#48433\fP from discogestalt/fix\-redis.hmset
  198382. .IP \(bu 2
  198383. 65817ac74d Use clean_kwargs method instead
  198384. .IP \(bu 2
  198385. f7fa7f57c6 Found another issue with redismod.hmset
  198386. .IP \(bu 2
  198387. 5624865f86 Fix issue with redismod.hmset method
  198388. .UNINDENT
  198389. .IP \(bu 2
  198390. \fBPR\fP \fI\%#48428\fP: (\fI\%terminalmage\fP) Fix outputter detection in jobs.lookup_jid runner
  198391. @ \fI2018\-07\-06 14:37:37 UTC\fP
  198392. .INDENT 2.0
  198393. .IP \(bu 2
  198394. aacee0fe2c Merge pull request \fI\%#48428\fP from terminalmage/fix\-jobs.lookup_jid
  198395. .IP \(bu 2
  198396. 6509aa9089 Fix outputter detection in jobs.lookup_jid runner
  198397. .UNINDENT
  198398. .IP \(bu 2
  198399. \fBPR\fP \fI\%#48429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#46824\fP to 2017.7
  198400. @ \fI2018\-07\-03 21:45:36 UTC\fP
  198401. .INDENT 2.0
  198402. .IP \(bu 2
  198403. \fBPR\fP \fI\%#46824\fP: (\fI\%beornf\fP) Regression to ignore retcodes on crontab calls (refs: \fI\%#48429\fP)
  198404. .IP \(bu 2
  198405. a7e52f0de2 Merge pull request \fI\%#48429\fP from rallytime/bp\-46824
  198406. .IP \(bu 2
  198407. 8b4486248d Added ignore_retcode to mock unit tests
  198408. .IP \(bu 2
  198409. f8beab71dd Regression to ignore retcodes on crontab calls
  198410. .UNINDENT
  198411. .IP \(bu 2
  198412. \fBPR\fP \fI\%#48432\fP: (\fI\%dwoz\fP) Prepend test needs file.touch method
  198413. @ \fI2018\-07\-03 21:32:48 UTC\fP
  198414. .INDENT 2.0
  198415. .IP \(bu 2
  198416. 4576ef20bc Merge pull request \fI\%#48432\fP from dwoz/file\-prepend\-again
  198417. .IP \(bu 2
  198418. 349a2b279e Prepend test needs file.touch method
  198419. .UNINDENT
  198420. .IP \(bu 2
  198421. \fBISSUE\fP \fI\%#48230\fP: (\fI\%whytewolf\fP) file.managed source_hash case\-sensitive for test=true (refs: \fI\%#48422\fP)
  198422. .IP \(bu 2
  198423. \fBISSUE\fP \fI\%#38914\fP: (\fI\%hgfischer\fP) Uppercase checksums are not accepted by archive.extracted (refs: \fI\%#40754\fP, \fI\%#48422\fP)
  198424. .IP \(bu 2
  198425. \fBPR\fP \fI\%#48422\fP: (\fI\%rallytime\fP) Allow file.managed to work with uppercase source_hash in test=true mode
  198426. @ \fI2018\-07\-03 16:40:59 UTC\fP
  198427. .INDENT 2.0
  198428. .IP \(bu 2
  198429. \fBPR\fP \fI\%#40754\fP: (\fI\%lordcirth\fP) file.manage_file: uppercase checksums now work (refs: \fI\%#48422\fP)
  198430. .IP \(bu 2
  198431. 422441505d Merge pull request \fI\%#48422\fP from rallytime/fix\-48230
  198432. .IP \(bu 2
  198433. a6abf85621 Allow file.managed to work with uppercase source_hash in test=true mode
  198434. .IP \(bu 2
  198435. 4c691ac57a Add regression test for Issue \fI\%#48230\fP
  198436. .UNINDENT
  198437. .IP \(bu 2
  198438. \fBPR\fP \fI\%#48410\fP: (\fI\%dwoz\fP) Fix service dead test on windows
  198439. @ \fI2018\-07\-03 14:17:29 UTC\fP
  198440. .INDENT 2.0
  198441. .IP \(bu 2
  198442. 83e387c951 Merge pull request \fI\%#48410\fP from dwoz/service_dead_test_fix
  198443. .IP \(bu 2
  198444. 5c0923448d Fix service dead test on windows
  198445. .UNINDENT
  198446. .IP \(bu 2
  198447. \fBPR\fP \fI\%#48413\fP: (\fI\%twangboy\fP) Fix archive.extracted to handle UNC paths
  198448. @ \fI2018\-07\-03 14:14:46 UTC\fP
  198449. .INDENT 2.0
  198450. .IP \(bu 2
  198451. d3ba345da5 Merge pull request \fI\%#48413\fP from twangboy/fix_47811
  198452. .IP \(bu 2
  198453. c5aad04140 handle unc paths
  198454. .UNINDENT
  198455. .IP \(bu 2
  198456. \fBPR\fP \fI\%#48416\fP: (\fI\%dwoz\fP) Fix service integration test (py3)
  198457. @ \fI2018\-07\-03 14:08:45 UTC\fP
  198458. .INDENT 2.0
  198459. .IP \(bu 2
  198460. 827ef2aac4 Merge pull request \fI\%#48416\fP from dwoz/service_integration_fix
  198461. .IP \(bu 2
  198462. c43f150dcd Fix service integration test (py3)
  198463. .UNINDENT
  198464. .IP \(bu 2
  198465. \fBPR\fP \fI\%#48385\fP: (\fI\%Ch3LL\fP) Update release versions for the 2017.7 branch
  198466. @ \fI2018\-07\-03 13:39:29 UTC\fP
  198467. .INDENT 2.0
  198468. .IP \(bu 2
  198469. 10fe7d2b9b Merge pull request \fI\%#48385\fP from Ch3LL/1update_version_doc_2017.7
  198470. .IP \(bu 2
  198471. 3cf335b0b9 Update release versions for the 2017.7 branch
  198472. .UNINDENT
  198473. .IP \(bu 2
  198474. \fBPR\fP \fI\%#48405\fP: (\fI\%Ch3LL\fP) [2017.7] Remove In Progress Warning on 2017.7.7
  198475. @ \fI2018\-07\-03 13:32:10 UTC\fP
  198476. .INDENT 2.0
  198477. .IP \(bu 2
  198478. f8a9a037e6 Merge pull request \fI\%#48405\fP from Ch3LL/rm_inprog_2017.7
  198479. .IP \(bu 2
  198480. 03ed5167fa [2017.7] Remove In Progress Warning on 2017.7.7
  198481. .UNINDENT
  198482. .IP \(bu 2
  198483. \fBPR\fP \fI\%#48409\fP: (\fI\%dwoz\fP) Fix file state prepend test
  198484. @ \fI2018\-07\-02 23:21:08 UTC\fP
  198485. .INDENT 2.0
  198486. .IP \(bu 2
  198487. 8ac867c168 Merge pull request \fI\%#48409\fP from dwoz/test_prepend_fix
  198488. .IP \(bu 2
  198489. 9c7085b70f Fix file state prepend test
  198490. .UNINDENT
  198491. .IP \(bu 2
  198492. \fBPR\fP \fI\%#48396\fP: (\fI\%dwoz\fP) Fix file.symlink state test for windows
  198493. @ \fI2018\-07\-02 18:10:32 UTC\fP
  198494. .INDENT 2.0
  198495. .IP \(bu 2
  198496. 10e93bff7f Merge pull request \fI\%#48396\fP from dwoz/symlink_test_fix
  198497. .IP \(bu 2
  198498. d3456d31e6 Fix file.symlink state test for windows
  198499. .UNINDENT
  198500. .IP \(bu 2
  198501. \fBPR\fP \fI\%#48362\fP: (\fI\%twangboy\fP) Fix stacktrace when registry entries are missing
  198502. @ \fI2018\-06\-30 13:20:01 UTC\fP
  198503. .INDENT 2.0
  198504. .IP \(bu 2
  198505. 7e25f26837 Merge pull request \fI\%#48362\fP from twangboy/fix_48276
  198506. .IP \(bu 2
  198507. 77629f640a Fix module unit tests
  198508. .IP \(bu 2
  198509. b5ca560b73 Fix lint error
  198510. .IP \(bu 2
  198511. 210e280ecf Use explicit parameter names
  198512. .IP \(bu 2
  198513. 776db98a5c Handle missing registry entries
  198514. .UNINDENT
  198515. .IP \(bu 2
  198516. \fBPR\fP \fI\%#48383\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48379\fP to 2017.7
  198517. @ \fI2018\-06\-29 19:48:38 UTC\fP
  198518. .INDENT 2.0
  198519. .IP \(bu 2
  198520. \fBPR\fP \fI\%#48379\fP: (\fI\%KaiSforza\fP) Clean up the workspaces at the end for every job (refs: \fI\%#48383\fP)
  198521. .IP \(bu 2
  198522. 80222b6b7c Merge pull request \fI\%#48383\fP from rallytime/bp\-48379
  198523. .IP \(bu 2
  198524. 9fc7815594 Clean up the workspaces at the end for every job
  198525. .UNINDENT
  198526. .IP \(bu 2
  198527. \fBPR\fP \fI\%#48382\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48346\fP to 2017.7
  198528. @ \fI2018\-06\-29 19:45:12 UTC\fP
  198529. .INDENT 2.0
  198530. .IP \(bu 2
  198531. \fBPR\fP \fI\%#48346\fP: (\fI\%KaiSforza\fP) Use the right ssh key to destroy kitchen (refs: \fI\%#48382\fP)
  198532. .IP \(bu 2
  198533. aa68aa774a Merge pull request \fI\%#48382\fP from rallytime/bp\-48346
  198534. .IP \(bu 2
  198535. 6a70ba222e Use the right ssh key to destroy kitchen
  198536. .UNINDENT
  198537. .IP \(bu 2
  198538. \fBPR\fP \fI\%#48381\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48330\fP to 2017.7
  198539. @ \fI2018\-06\-29 19:43:46 UTC\fP
  198540. .INDENT 2.0
  198541. .IP \(bu 2
  198542. \fBPR\fP \fI\%#48330\fP: (\fI\%KaiSforza\fP) Add warnings plugin to replace violations (refs: \fI\%#48381\fP)
  198543. .IP \(bu 2
  198544. 9519f640e7 Merge pull request \fI\%#48381\fP from rallytime/bp\-48330
  198545. .IP \(bu 2
  198546. 6857bedcc2 Add warnings plugin to replace violations
  198547. .UNINDENT
  198548. .IP \(bu 2
  198549. \fBPR\fP \fI\%#48363\fP: (\fI\%dubb\-b\fP) Changing debug to info for logging
  198550. @ \fI2018\-06\-28 20:45:17 UTC\fP
  198551. .INDENT 2.0
  198552. .IP \(bu 2
  198553. 14db0aa35d Merge pull request \fI\%#48363\fP from dubb\-b/2017.7
  198554. .IP \(bu 2
  198555. c0b962e28d Changing debug to info for logging
  198556. .UNINDENT
  198557. .IP \(bu 2
  198558. \fBPR\fP \fI\%#48352\fP: (\fI\%Ch3LL\fP) Add missing key to accept_dict function in wheel docs
  198559. @ \fI2018\-06\-28 13:54:37 UTC\fP
  198560. .INDENT 2.0
  198561. .IP \(bu 2
  198562. 5b29cd326f Merge pull request \fI\%#48352\fP from Ch3LL/wheel_doc
  198563. .IP \(bu 2
  198564. 89ada68165 Add missing key to accept_dict function in wheel docs
  198565. .UNINDENT
  198566. .IP \(bu 2
  198567. \fBPR\fP \fI\%#48329\fP: (\fI\%rallytime\fP) Trigger review requests for team\-ssh for roster files
  198568. @ \fI2018\-06\-28 13:53:42 UTC\fP
  198569. .INDENT 2.0
  198570. .IP \(bu 2
  198571. 02cf19ee3b Merge pull request \fI\%#48329\fP from rallytime/codeowners\-roster\-files
  198572. .IP \(bu 2
  198573. 5e56615e00 Trigger review requests for team\-ssh for roster files
  198574. .UNINDENT
  198575. .IP \(bu 2
  198576. \fBISSUE\fP \fI\%#48316\fP: (\fI\%ralex\fP) Wrong init system used in virtual module "service" on Manjaro (refs: \fI\%#48349\fP)
  198577. .IP \(bu 2
  198578. \fBPR\fP \fI\%#48349\fP: (\fI\%ralex\fP) Disable the "service" module on Manjaro since it is using systemd
  198579. @ \fI2018\-06\-28 13:32:37 UTC\fP
  198580. .INDENT 2.0
  198581. .IP \(bu 2
  198582. 53cf1794be Merge pull request \fI\%#48349\fP from ralex/fix\-manjaro\-service\-behaviour
  198583. .IP \(bu 2
  198584. 6cafce547e Disable the \fIservice\fP module on Manjaro since it is using systemd
  198585. .UNINDENT
  198586. .IP \(bu 2
  198587. \fBPR\fP \fI\%#48324\fP: (\fI\%Ch3LL\fP) Update release versions for the 2017.7 branch
  198588. @ \fI2018\-06\-27 13:44:22 UTC\fP
  198589. .INDENT 2.0
  198590. .IP \(bu 2
  198591. 89dfcf3a4e Merge pull request \fI\%#48324\fP from Ch3LL/update_version_doc_2017.7
  198592. .IP \(bu 2
  198593. 47845ba810 Update release versions for the 2017.7 branch
  198594. .UNINDENT
  198595. .IP \(bu 2
  198596. \fBPR\fP \fI\%#48331\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48215\fP to 2017.7
  198597. @ \fI2018\-06\-27 13:12:35 UTC\fP
  198598. .INDENT 2.0
  198599. .IP \(bu 2
  198600. \fBPR\fP \fI\%#48215\fP: (\fI\%KaiSforza\fP) Notify during tests using different credentials (refs: \fI\%#48331\fP)
  198601. .IP \(bu 2
  198602. ece4c30aac Merge pull request \fI\%#48331\fP from rallytime/bp\-48215
  198603. .IP \(bu 2
  198604. 9d6ba3e247 Set jobs to pending when they come in
  198605. .IP \(bu 2
  198606. 727d2b4ffe Use proper creds with githubNotify
  198607. .IP \(bu 2
  198608. d355861c5c Test using different credentials
  198609. .UNINDENT
  198610. .IP \(bu 2
  198611. \fBPR\fP \fI\%#48332\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48321\fP to 2017.7
  198612. @ \fI2018\-06\-27 13:12:15 UTC\fP
  198613. .INDENT 2.0
  198614. .IP \(bu 2
  198615. \fBPR\fP \fI\%#48321\fP: (\fI\%KaiSforza\fP) Jenkins needs the / to get the directory (refs: \fI\%#48332\fP)
  198616. .IP \(bu 2
  198617. ab05e00d8c Merge pull request \fI\%#48332\fP from rallytime/bp\-48321
  198618. .IP \(bu 2
  198619. d72af6ab4e Jenkins needs the / to get the directory
  198620. .UNINDENT
  198621. .IP \(bu 2
  198622. \fBISSUE\fP \fI\%#42659\fP: (\fI\%szin2012\fP) rest_tornado is not able to return normal result (refs: \fI\%#48193\fP, \fI\%#48295\fP)
  198623. .IP \(bu 2
  198624. \fBPR\fP \fI\%#48295\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48193\fP to 2017.7
  198625. @ \fI2018\-06\-26 23:42:18 UTC\fP
  198626. .INDENT 2.0
  198627. .IP \(bu 2
  198628. \fBPR\fP \fI\%#48193\fP: (\fI\%jacksontj\fP) Properly wait on returns in saltnado (refs: \fI\%#48295\fP)
  198629. .IP \(bu 2
  198630. 21ed5b97ce Merge pull request \fI\%#48295\fP from rallytime/bp\-48193
  198631. .IP \(bu 2
  198632. 352fe33fd6 Separate set_result() to a new line apart from Future() call
  198633. .IP \(bu 2
  198634. c0180ff33d Properly configure syndic in test case
  198635. .IP \(bu 2
  198636. d0a98534a9 Properly wait on returns in saltnado
  198637. .UNINDENT
  198638. .IP \(bu 2
  198639. \fBPR\fP \fI\%#48117\fP: (\fI\%twangboy\fP) service.disabled on Windows
  198640. @ \fI2018\-06\-26 23:35:59 UTC\fP
  198641. .INDENT 2.0
  198642. .IP \(bu 2
  198643. 9aa4687ab9 Merge pull request \fI\%#48117\fP from twangboy/fix_48026
  198644. .IP \(bu 2
  198645. dd37f8fbc2 Disable services that are set to manual
  198646. .UNINDENT
  198647. .IP \(bu 2
  198648. \fBISSUE\fP \fI\%#48122\fP: (\fI\%pasmon\fP) Salt minion 2017.7.6 disregards "bin_env" in pip state (refs: \fI\%#48189\fP)
  198649. .IP \(bu 2
  198650. \fBPR\fP \fI\%#48207\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48189\fP to 2017.7
  198651. @ \fI2018\-06\-25 19:26:56 UTC\fP
  198652. .INDENT 2.0
  198653. .IP \(bu 2
  198654. \fBPR\fP \fI\%#48189\fP: (\fI\%gtmanfred\fP) If pip binary is passed to bin_env, use that pip binary (refs: \fI\%#48207\fP)
  198655. .IP \(bu 2
  198656. caf630487c Merge pull request \fI\%#48207\fP from rallytime/bp\-48189
  198657. .IP \(bu 2
  198658. e9d09e0375 Use old is_windows utils path on 2017.7
  198659. .IP \(bu 2
  198660. b965d6c9b3 If pip binary is passed to bin_env, use that pip binary
  198661. .UNINDENT
  198662. .IP \(bu 2
  198663. \fBISSUE\fP \fI\%#45383\fP: (\fI\%jodok\fP) RabbitMQ commands fail due to wrong locale (refs: \fI\%#47453\fP)
  198664. .IP \(bu 2
  198665. \fBPR\fP \fI\%#48293\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47453\fP to 2017.7
  198666. @ \fI2018\-06\-25 19:06:42 UTC\fP
  198667. .INDENT 2.0
  198668. .IP \(bu 2
  198669. \fBPR\fP \fI\%#47453\fP: (\fI\%dqminh\fP) dont reset system locale when running rabbitmqctl commands (refs: \fI\%#48293\fP)
  198670. .IP \(bu 2
  198671. 06a927b2aa Merge pull request \fI\%#48293\fP from rallytime/bp\-47453
  198672. .IP \(bu 2
  198673. e96ab6778e dont reset system locale when running rabbitmqctl commands
  198674. .UNINDENT
  198675. .IP \(bu 2
  198676. \fBPR\fP \fI\%#48219\fP: (\fI\%zer0def\fP) Fix: LXC legacy configuration key warnings falsely report errors during state change
  198677. @ \fI2018\-06\-25 13:46:07 UTC\fP
  198678. .INDENT 2.0
  198679. .IP \(bu 2
  198680. 95ef006e00 Merge pull request \fI\%#48219\fP from zer0def/lxc\-bootstrap\-fixes
  198681. .IP \(bu 2
  198682. c77058560b Merge branch \(aq2017.7\(aq into lxc\-bootstrap\-fixes
  198683. .IP \(bu 2
  198684. d63cf3f072 Fixes another case of legacy configuration key usage warning getting in the way of changing container\(aqs state.
  198685. .UNINDENT
  198686. .IP \(bu 2
  198687. \fBISSUE\fP \fI\%#46507\fP: (\fI\%nkv16786\fP) Failed to return clean data (refs: \fI\%#48234\fP)
  198688. .IP \(bu 2
  198689. \fBPR\fP \fI\%#48234\fP: (\fI\%dwoz\fP) Fix py2 thin dir issues
  198690. @ \fI2018\-06\-25 13:33:02 UTC\fP
  198691. .INDENT 2.0
  198692. .IP \(bu 2
  198693. 3327181507 Merge pull request \fI\%#48234\fP from dwoz/thin_dir
  198694. .IP \(bu 2
  198695. 70c603451b Fix py2 thin dir issues
  198696. .UNINDENT
  198697. .IP \(bu 2
  198698. \fBISSUE\fP \fI\%#47984\fP: (\fI\%jeduardo\fP) x509 module/state writing wrong certificate serial number to CRL (refs: \fI\%#48080\fP)
  198699. .IP \(bu 2
  198700. \fBPR\fP \fI\%#48080\fP: (\fI\%lusche\fP) Bugfix \fI\%#47984\fP messed up cert serial
  198701. @ \fI2018\-06\-22 18:00:14 UTC\fP
  198702. .INDENT 2.0
  198703. .IP \(bu 2
  198704. 83d7d286c4 Merge pull request \fI\%#48080\fP from lusche/2017.7
  198705. .IP \(bu 2
  198706. 917dc985fc \fI\%#47984\fP remove the line completly
  198707. .IP \(bu 2
  198708. ba12ee947b Merge branch \(aq2017.7\(aq of \fI\%https://github.com/saltstack/salt\fP into 2017.7
  198709. .IP \(bu 2
  198710. dfb13d5051 Bugfix \fI\%#47984\fP messed up cert serial
  198711. .UNINDENT
  198712. .IP \(bu 2
  198713. \fBPR\fP \fI\%#48232\fP: (\fI\%gtmanfred\fP) do not expand kwargs for cloud.action
  198714. @ \fI2018\-06\-22 15:49:21 UTC\fP
  198715. .INDENT 2.0
  198716. .IP \(bu 2
  198717. bccb4dcd46 Merge pull request \fI\%#48232\fP from gtmanfred/cloud
  198718. .IP \(bu 2
  198719. d108112e1a do not expand kwargs for cloud.action
  198720. .UNINDENT
  198721. .IP \(bu 2
  198722. \fBPR\fP \fI\%#48238\fP: (\fI\%mirceaulinic\fP) SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  198723. @ \fI2018\-06\-22 15:37:22 UTC\fP
  198724. .INDENT 2.0
  198725. .IP \(bu 2
  198726. 056f43f663 Merge pull request \fI\%#48238\fP from mirceaulinic/fix\-sdb\-cache
  198727. .IP \(bu 2
  198728. 51e5fbfa1d SDB cache module: AttributeError: \(aqCache\(aq object has no attribute \(aqset\(aq
  198729. .UNINDENT
  198730. .IP \(bu 2
  198731. \fBISSUE\fP \fI\%#48025\fP: (\fI\%onmeac\fP) Autoloading Utility Modules? (refs: \fI\%#48037\fP)
  198732. .IP \(bu 2
  198733. \fBPR\fP \fI\%#48037\fP: (\fI\%terminalmage\fP) Add "sync_mods" argument to state.apply/state.sls
  198734. @ \fI2018\-06\-21 19:57:03 UTC\fP
  198735. .INDENT 2.0
  198736. .IP \(bu 2
  198737. 731ec0a11a Merge pull request \fI\%#48037\fP from terminalmage/fix\-custom\-types\-sync\-docs
  198738. .IP \(bu 2
  198739. 052ae83c4b Update versionchanged
  198740. .IP \(bu 2
  198741. 8b1bd0eda2 Update test to reflect changed argument name
  198742. .IP \(bu 2
  198743. 5e75936198 Change 2018.3.2 to 2018.3.3
  198744. .IP \(bu 2
  198745. c53ad603fc Rename sync \-> sync_mods per review suggestion
  198746. .IP \(bu 2
  198747. e4d67c5fd8 Update docs to include references to new "sync" argument
  198748. .IP \(bu 2
  198749. cb8e6f9fb8 Remove redundant mocking
  198750. .IP \(bu 2
  198751. bc3ad795e9 Add test for sync argument to state.sls
  198752. .IP \(bu 2
  198753. f81ccd1fdd Add sync option to state.apply/state.sls
  198754. .IP \(bu 2
  198755. 8289b07e24 Fix documentation on when custom types are synced
  198756. .UNINDENT
  198757. .IP \(bu 2
  198758. \fBPR\fP \fI\%#48249\fP: (\fI\%rallytime\fP) Update release notes for 2017.7.7
  198759. @ \fI2018\-06\-21 18:30:39 UTC\fP
  198760. .INDENT 2.0
  198761. .IP \(bu 2
  198762. 0bae927048 Merge pull request \fI\%#48249\fP from rallytime/2017.7.7\-release\-notes\-update
  198763. .IP \(bu 2
  198764. 36032c8ee7 Update release notes for 2017.7.7
  198765. .UNINDENT
  198766. .IP \(bu 2
  198767. \fBPR\fP \fI\%#48242\fP: (\fI\%asnell\fP) Add sample list data via command line pillar
  198768. @ \fI2018\-06\-21 18:27:41 UTC\fP
  198769. .INDENT 2.0
  198770. .IP \(bu 2
  198771. 8e06471817 Merge pull request \fI\%#48242\fP from asnell/asnell\-patch\-1
  198772. .IP \(bu 2
  198773. f66bf60073 Add sample list data via command line pillar
  198774. .UNINDENT
  198775. .IP \(bu 2
  198776. \fBPR\fP \fI\%#48226\fP: (\fI\%terminalmage\fP) 2 fixes for when Salt is installed using \-OO
  198777. @ \fI2018\-06\-20 20:12:34 UTC\fP
  198778. .INDENT 2.0
  198779. .IP \(bu 2
  198780. a172f9de84 Merge pull request \fI\%#48226\fP from terminalmage/fix\-alias\-docstring
  198781. .IP \(bu 2
  198782. fb237272f5 Don\(aqt display "None" in SaltInvocationError when Salt installed using \-OO
  198783. .IP \(bu 2
  198784. 90c90f5d5c Fix docstring construction in alias_function when Salt installed using \-OO
  198785. .UNINDENT
  198786. .IP \(bu 2
  198787. \fBPR\fP \fI\%#48227\fP: (\fI\%Ch3LL\fP) Skip new sha256 files on repo.saltstack.com/windows
  198788. @ \fI2018\-06\-20 20:12:09 UTC\fP
  198789. .INDENT 2.0
  198790. .IP \(bu 2
  198791. c6a0207cae Merge pull request \fI\%#48227\fP from Ch3LL/fix_win_tests
  198792. .IP \(bu 2
  198793. 236773e3e9 Skip new sha256 files on repo.saltstack.com/windows
  198794. .UNINDENT
  198795. .IP \(bu 2
  198796. \fBISSUE\fP \fI\%#48128\fP: (\fI\%bowmanjd\-lms\fP) apk.py Python 3 compatibility (refs: \fI\%#48131\fP)
  198797. .IP \(bu 2
  198798. \fBPR\fP \fI\%#48131\fP: (\fI\%bowmanjd\-lms\fP) Fix py3\-incompatible dict.keys()[x] call in apk.py
  198799. @ \fI2018\-06\-19 18:19:02 UTC\fP
  198800. .INDENT 2.0
  198801. .IP \(bu 2
  198802. 6929423528 Merge pull request \fI\%#48131\fP from bowmanjd\-lms/fix\-apk\-python3
  198803. .IP \(bu 2
  198804. f5d2835299 Merge branch \(aq2017.7\(aq into fix\-apk\-python3
  198805. .IP \(bu 2
  198806. 022f9cba50 Fix py3\-incompatible dict.keys()[x] call in apk.py
  198807. .UNINDENT
  198808. .IP \(bu 2
  198809. \fBISSUE\fP \fI\%#47901\fP: (\fI\%frogunder\fP) 2017.7.6 \- Exiting command with CTRL\-C gives Error/Traceback (refs: \fI\%#48185\fP)
  198810. .IP \(bu 2
  198811. \fBPR\fP \fI\%#48185\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt call .exception() on future unless it\(aqs done.
  198812. @ \fI2018\-06\-19 18:16:27 UTC\fP
  198813. .INDENT 2.0
  198814. .IP \(bu 2
  198815. 868c17377f Merge pull request \fI\%#48185\fP from DSRCorporation/bugs/47901_future_done_exception
  198816. .IP \(bu 2
  198817. 5f63316311 Merge branch \(aq2017.7\(aq into bugs/47901_future_done_exception
  198818. .IP \(bu 2
  198819. 9f2dbf94cb Don\(aqt call .exception() on future unless it\(aqs done.
  198820. .UNINDENT
  198821. .IP \(bu 2
  198822. \fBPR\fP \fI\%#48192\fP: (\fI\%twangboy\fP) Use the \-\-disable\-pip\-version\-check option (2017.7)
  198823. @ \fI2018\-06\-19 18:13:12 UTC\fP
  198824. .INDENT 2.0
  198825. .IP \(bu 2
  198826. 80a3e37c2e Merge pull request \fI\%#48192\fP from twangboy/fix_pip_version_2017.7
  198827. .IP \(bu 2
  198828. 59ae2cc5fc Use \-\-disable\-pip\-version\-check for build_env_#.ps1
  198829. .UNINDENT
  198830. .IP \(bu 2
  198831. \fBPR\fP \fI\%#48201\fP: (\fI\%zer0def\fP) Fixes to LXC bootstrap when alternate lxcpath is provided.
  198832. @ \fI2018\-06\-19 12:56:40 UTC\fP
  198833. .INDENT 2.0
  198834. .IP \(bu 2
  198835. 12e2b8882a Merge pull request \fI\%#48201\fP from zer0def/lxc\-bootstrap\-fixes
  198836. .IP \(bu 2
  198837. 6f6d3d40d4 Take lxcpath into account when bootstrapping new containers. Version comparison fixes.
  198838. .UNINDENT
  198839. .IP \(bu 2
  198840. \fBPR\fP \fI\%#48190\fP: (\fI\%terminalmage\fP) Fix mount.vfstab unit test
  198841. @ \fI2018\-06\-18 21:47:54 UTC\fP
  198842. .INDENT 2.0
  198843. .IP \(bu 2
  198844. e079fce38d Merge pull request \fI\%#48190\fP from terminalmage/fix\-vfstab\-test
  198845. .IP \(bu 2
  198846. 8d70d14362 Fix mount.vfstab unit test
  198847. .UNINDENT
  198848. .IP \(bu 2
  198849. \fBPR\fP \fI\%#48115\fP: (\fI\%KaiSforza\fP) Add jenkinsfiles to define tests in 2017
  198850. @ \fI2018\-06\-18 21:27:40 UTC\fP
  198851. .INDENT 2.0
  198852. .IP \(bu 2
  198853. c8b9cec986 Merge pull request \fI\%#48115\fP from KaiSforza/pr\-lint\-2017
  198854. .IP \(bu 2
  198855. 494727ab39 Add docs, kitchen tests
  198856. .IP \(bu 2
  198857. 317023bb20 Move .jenkins to .ci for future
  198858. .IP \(bu 2
  198859. dedc313cee Make it parallel so we don\(aqt fail right away
  198860. .IP \(bu 2
  198861. cd13426726 Add a .jenkins file to run pylint
  198862. .UNINDENT
  198863. .IP \(bu 2
  198864. \fBPR\fP \fI\%#48174\fP: (\fI\%terminalmage\fP) Add docker.update_mine config option
  198865. @ \fI2018\-06\-18 19:04:54 UTC\fP
  198866. .INDENT 2.0
  198867. .IP \(bu 2
  198868. fc1752b721 Merge pull request \fI\%#48174\fP from terminalmage/docker\-update\-mine
  198869. .IP \(bu 2
  198870. 9af09e0127 Mock config.get due to changes in _refresh_mine_cache
  198871. .IP \(bu 2
  198872. c5802ad465 Fix the version number in versionadded
  198873. .IP \(bu 2
  198874. d403ae58d7 Add unit test for docker.update_mine
  198875. .IP \(bu 2
  198876. 44c275698a Actually it\(aqs more than just add/remove that updates the mine
  198877. .IP \(bu 2
  198878. 0cb6996b07 Add release notes mention of docker.update_mine config option
  198879. .IP \(bu 2
  198880. de05097b20 Add docs for new config option
  198881. .IP \(bu 2
  198882. 04c55a9178 Add note in mine.get_docker docstring about new config item
  198883. .IP \(bu 2
  198884. 4e456255c0 Allow mine update to be disabled using new config option
  198885. .UNINDENT
  198886. .IP \(bu 2
  198887. \fBISSUE\fP \fI\%#47031\fP: (\fI\%lejambon\fP) Cannot set hwclock on UTC on CentOS 7 (refs: \fI\%#47049\fP, \fI\%#48061\fP)
  198888. .IP \(bu 2
  198889. \fBPR\fP \fI\%#48061\fP: (\fI\%garethgreenaway\fP) [2017.7] Porting \fI\%#47049\fP to 2017.7.
  198890. @ \fI2018\-06\-15 17:15:50 UTC\fP
  198891. .INDENT 2.0
  198892. .IP \(bu 2
  198893. \fBPR\fP \fI\%#47049\fP: (\fI\%lejambon\fP) Centos set utc hwclock (refs: \fI\%#48061\fP)
  198894. .IP \(bu 2
  198895. df2a156338 Merge pull request \fI\%#48061\fP from garethgreenaway/port_47049_2017_7
  198896. .IP \(bu 2
  198897. 7c472fed51 Fixing failing test_set_hwclock_aix test.
  198898. .IP \(bu 2
  198899. ccb0acc958 Porting \fI\%#47049\fP to 2017.7.
  198900. .UNINDENT
  198901. .IP \(bu 2
  198902. \fBPR\fP \fI\%#48143\fP: (\fI\%Ch3LL\fP) Add timeout argument to run_salt for ShellCase
  198903. @ \fI2018\-06\-15 17:04:57 UTC\fP
  198904. .INDENT 2.0
  198905. .IP \(bu 2
  198906. 5ec3cf2dd4 Merge pull request \fI\%#48143\fP from Ch3LL/fix_long_job
  198907. .IP \(bu 2
  198908. 48b5d2e9d3 Add timeout argument to run_salt for ShellCase
  198909. .UNINDENT
  198910. .IP \(bu 2
  198911. \fBPR\fP \fI\%#48135\fP: (\fI\%rallytime\fP) Update the 2017.7.7 and 2017.7.8 release notes
  198912. @ \fI2018\-06\-14 21:22:06 UTC\fP
  198913. .INDENT 2.0
  198914. .IP \(bu 2
  198915. \fBPR\fP \fI\%#48134\fP: (\fI\%rallytime\fP) Add release notes file for 2017.7.7 (refs: \fI\%#48135\fP)
  198916. .IP \(bu 2
  198917. e1e566d1f8 Merge pull request \fI\%#48135\fP from rallytime/release\-notes\-2017.7
  198918. .IP \(bu 2
  198919. 7a97f157b3 Add missing \fIv\fP for tag reference
  198920. .IP \(bu 2
  198921. 2f2b69ed37 Add "in progress" notation to 2017.7.7 release notes
  198922. .IP \(bu 2
  198923. 06a1151a63 Add release notes file for 2017.7.7
  198924. .IP \(bu 2
  198925. 885b2862ce Move 2017.7.7 release notes to 2017.7.8
  198926. .UNINDENT
  198927. .IP \(bu 2
  198928. \fBPR\fP \fI\%#48105\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  198929. @ \fI2018\-06\-14 17:00:09 UTC\fP
  198930. .INDENT 2.0
  198931. .IP \(bu 2
  198932. ac9dabbfaa Merge pull request \fI\%#48105\fP from rallytime/merge\-2017.7
  198933. .IP \(bu 2
  198934. cdb45874de Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  198935. .UNINDENT
  198936. .IP \(bu 2
  198937. \fBPR\fP \fI\%#48101\fP: (\fI\%rallytime\fP) [2017.7] Update 2017.7.7 reference to 2017.7.8
  198938. @ \fI2018\-06\-14 13:14:09 UTC\fP
  198939. .INDENT 2.0
  198940. .IP \(bu 2
  198941. 2da56a69d9 Merge pull request \fI\%#48101\fP from rallytime/update\-doc\-refs\-2017.7
  198942. .IP \(bu 2
  198943. 7ba6f5fb36 Update 2017.7.7 reference to 2017.7.8
  198944. .UNINDENT
  198945. .IP \(bu 2
  198946. \fBPR\fP \fI\%#48091\fP: (\fI\%terminalmage\fP) Reverse monkeypatching after test_symlink_list finishes
  198947. @ \fI2018\-06\-13 18:02:53 UTC\fP
  198948. .INDENT 2.0
  198949. .IP \(bu 2
  198950. 5a0e3d46e7 Merge pull request \fI\%#48091\fP from terminalmage/fix\-file_roots\-monkeypatching
  198951. .IP \(bu 2
  198952. 6fe711ad76 Reverse monkeypatching after test_symlink_list finishes
  198953. .UNINDENT
  198954. .IP \(bu 2
  198955. \fBPR\fP \fI\%#48088\fP: (\fI\%rallytime\fP) Update release versions for the 2017.7 branch
  198956. @ \fI2018\-06\-13 14:03:03 UTC\fP
  198957. .INDENT 2.0
  198958. .IP \(bu 2
  198959. 053b019a8f Merge pull request \fI\%#48088\fP from rallytime/update_version_doc_2017.7
  198960. .IP \(bu 2
  198961. 1b8d1c936b Remove "in progress" info for 2017.7.6 release notes
  198962. .IP \(bu 2
  198963. 9a0f4d190a Update release versions for the 2017.7 branch
  198964. .UNINDENT
  198965. .IP \(bu 2
  198966. \fBISSUE\fP \fI\%#48038\fP: (\fI\%austinpapp\fP) jobs are not dedup\(aqing minion side (refs: \fI\%#48075\fP)
  198967. .IP \(bu 2
  198968. \fBPR\fP \fI\%#48075\fP: (\fI\%garethgreenaway\fP) [2017.7] Ensure that the shared list of jids is passed
  198969. @ \fI2018\-06\-13 13:25:35 UTC\fP
  198970. .INDENT 2.0
  198971. .IP \(bu 2
  198972. d6d2c5ee18 Merge pull request \fI\%#48075\fP from garethgreenaway/48038_jobs_are_not_deduping_minion_side
  198973. .IP \(bu 2
  198974. c537b3275b Ensure that the shared list of jids is passed when creating the Minion. Fixes an issue when minions are pointed at multiple syndics.
  198975. .UNINDENT
  198976. .IP \(bu 2
  198977. \fBPR\fP \fI\%#48071\fP: (\fI\%terminalmage\fP) Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  198978. @ \fI2018\-06\-12 20:34:13 UTC\fP
  198979. .INDENT 2.0
  198980. .IP \(bu 2
  198981. aa33cc0b0c Merge pull request \fI\%#48071\fP from terminalmage/gitfs\-docs
  198982. .IP \(bu 2
  198983. 24545204b3 Fix inaccurate gitfs_saltenv example in GitFS Walkthrough
  198984. .UNINDENT
  198985. .IP \(bu 2
  198986. \fBISSUE\fP \fI\%#48039\fP: (\fI\%twellspring\fP) github.repo_present returns stacktrace, got multiple values for keyword argument profile (refs: \fI\%#48040\fP)
  198987. .IP \(bu 2
  198988. \fBPR\fP \fI\%#48053\fP: (\fI\%rallytime\fP) Back\-port \fI\%#48040\fP to 2017.7
  198989. @ \fI2018\-06\-12 14:46:12 UTC\fP
  198990. .INDENT 2.0
  198991. .IP \(bu 2
  198992. \fBPR\fP \fI\%#48040\fP: (\fI\%twellspring\fP) states/github.py fix for incorrect positional argument (refs: \fI\%#48053\fP)
  198993. .IP \(bu 2
  198994. fb4ceacb88 Merge pull request \fI\%#48053\fP from rallytime/bp\-48040
  198995. .IP \(bu 2
  198996. 265b22b194 states/github.py fix for incorrect positional argument
  198997. .UNINDENT
  198998. .IP \(bu 2
  198999. \fBPR\fP \fI\%#48024\fP: (\fI\%gtmanfred\fP) add pytest coverage and xml junits
  199000. @ \fI2018\-06\-12 14:03:26 UTC\fP
  199001. .INDENT 2.0
  199002. .IP \(bu 2
  199003. f37dcaac6d Merge pull request \fI\%#48024\fP from gtmanfred/2017.7
  199004. .IP \(bu 2
  199005. 56b074ab27 allow specifying a different state to run on converge
  199006. .IP \(bu 2
  199007. cc9c4b4d5a add pytest coverage and xml junits
  199008. .UNINDENT
  199009. .IP \(bu 2
  199010. \fBPR\fP \fI\%#48044\fP: (\fI\%twangboy\fP) Add fail code for WinHTTP send/receive error
  199011. @ \fI2018\-06\-11 13:49:29 UTC\fP
  199012. .INDENT 2.0
  199013. .IP \(bu 2
  199014. ffee3576ec Merge pull request \fI\%#48044\fP from twangboy/wua_add_fail_code
  199015. .IP \(bu 2
  199016. d41d0c25eb Add faile code for WinHTTP send/receive error
  199017. .UNINDENT
  199018. .IP \(bu 2
  199019. \fBPR\fP \fI\%#48009\fP: (\fI\%dwoz\fP) minionswarm runs on windows
  199020. @ \fI2018\-06\-08 13:52:36 UTC\fP
  199021. .INDENT 2.0
  199022. .IP \(bu 2
  199023. 871a910fcb Merge pull request \fI\%#48009\fP from dwoz/winswarmfix
  199024. .IP \(bu 2
  199025. 5027c7bb84 minionswarm runs on windows
  199026. .UNINDENT
  199027. .IP \(bu 2
  199028. \fBPR\fP \fI\%#47968\fP: (\fI\%gtmanfred\fP) Clean up tox + pytest
  199029. @ \fI2018\-06\-06 21:23:52 UTC\fP
  199030. .INDENT 2.0
  199031. .IP \(bu 2
  199032. 0dcaead36d Merge pull request \fI\%#47968\fP from gtmanfred/2017.7
  199033. .IP \(bu 2
  199034. ae1b0d28bb pass LANG and HOME into tox commands
  199035. .IP \(bu 2
  199036. 8d15b93d00 remove tox virtualenvs from doc tests
  199037. .IP \(bu 2
  199038. e1872e2036 simplify tox.ini
  199039. .IP \(bu 2
  199040. 81bd01f5af add tests.txt for running tests with tox requirements
  199041. .IP \(bu 2
  199042. 556a2067fc fix masterapi test to use testing directory for configs
  199043. .IP \(bu 2
  199044. 5a41f484ef add EXPENSIVE_TESTS
  199045. .IP \(bu 2
  199046. 055cd5a6ba set DESTRUCTIVE_TESTS environment variable for pytest
  199047. .UNINDENT
  199048. .IP \(bu 2
  199049. \fBPR\fP \fI\%#47978\fP: (\fI\%twangboy\fP) Add try/finally, fix typo in 7zip def file
  199050. @ \fI2018\-06\-06 19:06:04 UTC\fP
  199051. .INDENT 2.0
  199052. .IP \(bu 2
  199053. 42dd6b83eb Merge pull request \fI\%#47978\fP from twangboy/fix_test_pkg
  199054. .IP \(bu 2
  199055. 8bb36b3a4b Add try/finally, fix typo in 7zip def file
  199056. .UNINDENT
  199057. .IP \(bu 2
  199058. \fBPR\fP \fI\%#47959\fP: (\fI\%twangboy\fP) Fix failing test when service doesn\(aqt exist
  199059. @ \fI2018\-06\-06 19:05:43 UTC\fP
  199060. .INDENT 2.0
  199061. .IP \(bu 2
  199062. a67b21ef3d Merge pull request \fI\%#47959\fP from twangboy/fix_test_service
  199063. .IP \(bu 2
  199064. 0cd47aa81e Remove unused import
  199065. .IP \(bu 2
  199066. d4b42540e3 Fix failing test when service doesn\(aqt exist
  199067. .UNINDENT
  199068. .IP \(bu 2
  199069. \fBISSUE\fP \fI\%#30367\fP: (\fI\%paulfanelli\fP) salt\-run orchestration via state.sls always successful; it is ignoring state return value (refs: \fI\%#47843\fP)
  199070. .IP \(bu 2
  199071. \fBPR\fP \fI\%#47983\fP: (\fI\%garethgreenaway\fP) [2017.7] Backporting \fI\%#47843\fP
  199072. @ \fI2018\-06\-06 19:03:15 UTC\fP
  199073. .INDENT 2.0
  199074. .IP \(bu 2
  199075. \fBPR\fP \fI\%#47843\fP: (\fI\%garethgreenaway\fP) [2018.3] orchestration results False when function is False (refs: \fI\%#47983\fP)
  199076. .IP \(bu 2
  199077. b81d482067 Merge pull request \fI\%#47983\fP from garethgreenaway/backport_47843_2017_7
  199078. .IP \(bu 2
  199079. 7b7fb1f5d5 Adding missing test sls file.
  199080. .IP \(bu 2
  199081. 54e51bc627 Backporting \fI\%#47843\fP to 2017.7, updating test for 2017.7.
  199082. .UNINDENT
  199083. .IP \(bu 2
  199084. \fBPR\fP \fI\%#47533\fP: (\fI\%twangboy\fP) Fix issues with functions that use makedirs on Windows
  199085. @ \fI2018\-06\-06 17:20:51 UTC\fP
  199086. .INDENT 2.0
  199087. .IP \(bu 2
  199088. d56ddad22c Merge pull request \fI\%#47533\fP from twangboy/fix_47178
  199089. .IP \(bu 2
  199090. 24717cbc21 Change version added to 2017.7.7
  199091. .IP \(bu 2
  199092. 0592f1bac2 Fix issues with functions that user makedirs on Windows
  199093. .UNINDENT
  199094. .IP \(bu 2
  199095. \fBPR\fP \fI\%#47827\fP: (\fI\%twangboy\fP) Fix issue when archive is on mapped drive
  199096. @ \fI2018\-06\-06 17:18:00 UTC\fP
  199097. .INDENT 2.0
  199098. .IP \(bu 2
  199099. 5c56b8c755 Merge pull request \fI\%#47827\fP from twangboy/fix_47791
  199100. .IP \(bu 2
  199101. fbbd91f09e Add more descriptive debug message
  199102. .IP \(bu 2
  199103. 365f81651b Fix deprecated exception handling
  199104. .IP \(bu 2
  199105. 8dd6710b93 Use local instead of network
  199106. .IP \(bu 2
  199107. 980d99d74b Fix issue when archive is on mapped drive
  199108. .UNINDENT
  199109. .IP \(bu 2
  199110. \fBISSUE\fP \fI\%#47888\fP: (\fI\%mbunkus\fP) postfix.set_main overwrites wrong keys (refs: \fI\%#47966\fP)
  199111. .IP \(bu 2
  199112. \fBPR\fP \fI\%#47966\fP: (\fI\%mbunkus\fP) Fix postfix.set_main\(aqs assumption of prefix\-free key names
  199113. @ \fI2018\-06\-06 15:43:24 UTC\fP
  199114. .INDENT 2.0
  199115. .IP \(bu 2
  199116. 998a1c13d5 Merge pull request \fI\%#47966\fP from mbunkus/fix\-postfix\-prefix\-free\-key\-names\-assumption
  199117. .IP \(bu 2
  199118. 0ae402d1b5 Fix postfix.set_main\(aqs assumption of prefix\-free key names
  199119. .UNINDENT
  199120. .IP \(bu 2
  199121. \fBPR\fP \fI\%#47824\fP: (\fI\%twangboy\fP) Fix issues with setup.py in Windows
  199122. @ \fI2018\-06\-05 17:39:53 UTC\fP
  199123. .INDENT 2.0
  199124. .IP \(bu 2
  199125. df50ce7b1b Merge pull request \fI\%#47824\fP from twangboy/fix_setup.py
  199126. .IP \(bu 2
  199127. 4538b3abb3 Remove \(aqlen\-as\-condition\(aq disablement
  199128. .IP \(bu 2
  199129. d4efcc3c8b Skip lint errors
  199130. .IP \(bu 2
  199131. 1b3977f8d4 Remove m2crypto download for Windows
  199132. .UNINDENT
  199133. .IP \(bu 2
  199134. \fBPR\fP \fI\%#47922\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.refresh_db verbose=True PY3 compatibility fix
  199135. @ \fI2018\-06\-05 13:31:49 UTC\fP
  199136. .INDENT 2.0
  199137. .IP \(bu 2
  199138. 3e91a31134 Merge pull request \fI\%#47922\fP from damon\-atkins/2017.7_win_pkg_keys_fix
  199139. .IP \(bu 2
  199140. 7129203b1b Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  199141. .UNINDENT
  199142. .IP \(bu 2
  199143. \fBPR\fP \fI\%#47933\fP: (\fI\%terminalmage\fP) Clarify pillar.get docs
  199144. @ \fI2018\-06\-04 14:07:58 UTC\fP
  199145. .INDENT 2.0
  199146. .IP \(bu 2
  199147. 8008fca2f6 Merge pull request \fI\%#47933\fP from terminalmage/add\-pillar.get\-docs
  199148. .IP \(bu 2
  199149. 4eb022b675 Clarify pillar.get docs
  199150. .UNINDENT
  199151. .IP \(bu 2
  199152. \fBPR\fP \fI\%#47944\fP: (\fI\%terminalmage\fP) Replace use of deprecated argument name in git.detached docstring
  199153. @ \fI2018\-06\-04 13:53:34 UTC\fP
  199154. .INDENT 2.0
  199155. .IP \(bu 2
  199156. ab565bfaa3 Merge pull request \fI\%#47944\fP from terminalmage/fix\-git.detached\-docs
  199157. .IP \(bu 2
  199158. 1d082b4389 Replace use of deprecated argument name in git.detached docstring
  199159. .IP \(bu 2
  199160. 6253793cb6 Merge branch \(aq2017.7\(aq into 2017.7_win_pkg_keys_fix
  199161. .UNINDENT
  199162. .IP \(bu 2
  199163. \fBPR\fP \fI\%#47860\fP: (\fI\%terminalmage\fP) Clean up doc build warnings, add best practices for writing states
  199164. @ \fI2018\-06\-01 14:42:55 UTC\fP
  199165. .INDENT 2.0
  199166. .IP \(bu 2
  199167. a2b588299b Merge pull request \fI\%#47860\fP from terminalmage/state\-writing\-docs
  199168. .IP \(bu 2
  199169. 8cb33d3dec Quiet the linter
  199170. .IP \(bu 2
  199171. af51e16f23 Use more elegant RST syntax
  199172. .IP \(bu 2
  199173. 91cd57d1e0 Update mocking to reflect changes in service module
  199174. .IP \(bu 2
  199175. b9ace5a859 Fix crappy mocking
  199176. .IP \(bu 2
  199177. bc9e3acef3 Lint fixes
  199178. .IP \(bu 2
  199179. d37f7e4f04 Add 2017.7.6 release notes
  199180. .IP \(bu 2
  199181. 9dddeeefab Improve documentation on syncing states
  199182. .IP \(bu 2
  199183. f465fa3ca7 Add best practices docs for writing states
  199184. .IP \(bu 2
  199185. 93ee5ee2b0 Fix all Sphinx warnings
  199186. .IP \(bu 2
  199187. 64b9b4d0b8 Clarify that name would override the id declaration
  199188. .UNINDENT
  199189. .IP \(bu 2
  199190. \fBPR\fP \fI\%#47877\fP: (\fI\%dwoz\fP) Revert job chunk wait time change
  199191. @ \fI2018\-06\-01 14:11:46 UTC\fP
  199192. .INDENT 2.0
  199193. .IP \(bu 2
  199194. d2f3377b5b Merge pull request \fI\%#47877\fP from dwoz/sleep_audit
  199195. .IP \(bu 2
  199196. ebc7cde9cb Revert job chunk wait time change
  199197. .INDENT 2.0
  199198. .INDENT 3.5
  199199. .INDENT 0.0
  199200. .IP \(bu 2
  199201. 4ce0fe6546 win_pkg under py3 keys returns a view instead of a list, wrap keys in list()
  199202. .UNINDENT
  199203. .UNINDENT
  199204. .UNINDENT
  199205. .UNINDENT
  199206. .IP \(bu 2
  199207. \fBPR\fP \fI\%#47917\fP: (\fI\%dwoz\fP) Fix windows tests suite breakage
  199208. @ \fI2018\-06\-01 11:42:15 UTC\fP
  199209. .INDENT 2.0
  199210. .IP \(bu 2
  199211. \fBPR\fP \fI\%#47500\fP: (\fI\%dwoz\fP) Get the current username on windows (refs: \fI\%#47917\fP)
  199212. .IP \(bu 2
  199213. 735e92093e Merge pull request \fI\%#47917\fP from dwoz/winsuite
  199214. .IP \(bu 2
  199215. 118601ebd6 Fix windows tests suite breakage
  199216. .UNINDENT
  199217. .IP \(bu 2
  199218. \fBPR\fP \fI\%#47822\fP: (\fI\%Ch3LL\fP) Add user state integration tests to windows
  199219. @ \fI2018\-05\-30 21:13:07 UTC\fP
  199220. .INDENT 2.0
  199221. .IP \(bu 2
  199222. 63efb76d51 Merge pull request \fI\%#47822\fP from Ch3LL/win_user_test
  199223. .IP \(bu 2
  199224. 3a691b405f add user_home path for both windows and linux
  199225. .IP \(bu 2
  199226. 788abf771e Add user state integration tests to windows
  199227. .UNINDENT
  199228. .IP \(bu 2
  199229. \fBPR\fP \fI\%#47876\fP: (\fI\%doesitblend\fP) Add file read windows
  199230. @ \fI2018\-05\-30 14:03:55 UTC\fP
  199231. .INDENT 2.0
  199232. .IP \(bu 2
  199233. b9da4f1221 Merge pull request \fI\%#47876\fP from doesitblend/add\-file\-read\-windows
  199234. .IP \(bu 2
  199235. 3f7e7ec327 Add file.read function to Windows module
  199236. .UNINDENT
  199237. .IP \(bu 2
  199238. \fBPR\fP \fI\%#47882\fP: (\fI\%frogunder\fP) add whoami test
  199239. @ \fI2018\-05\-30 13:47:13 UTC\fP
  199240. .INDENT 2.0
  199241. .IP \(bu 2
  199242. cbe2ecfae8 Merge pull request \fI\%#47882\fP from frogunder/45013
  199243. .IP \(bu 2
  199244. 38d114a2d2 add whoami test
  199245. .UNINDENT
  199246. .IP \(bu 2
  199247. \fBPR\fP \fI\%#47853\fP: (\fI\%dwoz\fP) Fix for py3 ec2 cloud tests
  199248. @ \fI2018\-05\-28 23:08:09 UTC\fP
  199249. .INDENT 2.0
  199250. .IP \(bu 2
  199251. 4b28e510f1 Merge pull request \fI\%#47853\fP from dwoz/py3\-cloud\-test
  199252. .IP \(bu 2
  199253. c2f8aef7c5 Fix for py3 ec2 cloud tests
  199254. .UNINDENT
  199255. .IP \(bu 2
  199256. \fBISSUE\fP \fI\%#47833\fP: (\fI\%blefeuvr\fP) reactor.add | list | delete \-> python exception (refs: \fI\%#47847\fP)
  199257. .IP \(bu 2
  199258. \fBPR\fP \fI\%#47847\fP: (\fI\%garethgreenaway\fP) [2017.7] reactor runner documentation
  199259. @ \fI2018\-05\-25 23:23:31 UTC\fP
  199260. .INDENT 2.0
  199261. .IP \(bu 2
  199262. 215efa6b73 Merge pull request \fI\%#47847\fP from garethgreenaway/47833_reactor_runner_documentation
  199263. .IP \(bu 2
  199264. 03676712de Adding some addition documentation to the reactor runner indicating that the reactor system must be active prior to using it.
  199265. .UNINDENT
  199266. .IP \(bu 2
  199267. \fBPR\fP \fI\%#47846\fP: (\fI\%Ch3LL\fP) Fix flaky refresh pillar integration test
  199268. @ \fI2018\-05\-25 20:50:48 UTC\fP
  199269. .INDENT 2.0
  199270. .IP \(bu 2
  199271. 0bf651b470 Merge pull request \fI\%#47846\fP from Ch3LL/p_refresh_test
  199272. .IP \(bu 2
  199273. 019edad8e4 Fix flaky refresh pillar integration test
  199274. .UNINDENT
  199275. .IP \(bu 2
  199276. \fBPR\fP \fI\%#47552\fP: (\fI\%twangboy\fP) Show GPO settings, raise error if trying to set gpo managed settings
  199277. @ \fI2018\-05\-25 20:41:22 UTC\fP
  199278. .INDENT 2.0
  199279. .IP \(bu 2
  199280. 799fce979d Merge pull request \fI\%#47552\fP from twangboy/fix_46981
  199281. .IP \(bu 2
  199282. cffc9b7806 Merge branch \(aq2017.7\(aq into fix_46981
  199283. .IP \(bu 2
  199284. 81308a4a44 Add release notes for 2017.7.7
  199285. .IP \(bu 2
  199286. 008af0ac6b Fix unit tests
  199287. .IP \(bu 2
  199288. 87097eefb6 Add comments about how get is returning data
  199289. .IP \(bu 2
  199290. f1f1bfc5c1 Show GPO settings, raise error if trying to set gpo managed settings
  199291. .UNINDENT
  199292. .IP \(bu 2
  199293. \fBISSUE\fP \fI\%#47690\fP: (\fI\%lomeroe\fP) productname grain missing on Solaris (refs: \fI\%#47691\fP)
  199294. .IP \(bu 2
  199295. \fBPR\fP \fI\%#47691\fP: (\fI\%lomeroe\fP) Update regexes for Solaris \(aqproduct\(aq grain and copy to \(aqproductname\(aq grain
  199296. @ \fI2018\-05\-25 20:38:18 UTC\fP
  199297. .INDENT 2.0
  199298. .IP \(bu 2
  199299. ffc2ebc373 Merge pull request \fI\%#47691\fP from lomeroe/solaris_product_grains
  199300. .IP \(bu 2
  199301. 6889befc6b Merge branch \(aq2017.7\(aq into solaris_product_grains
  199302. .IP \(bu 2
  199303. 49053bc106 lint fix
  199304. .IP \(bu 2
  199305. 6f185c9179 another lint fix
  199306. .IP \(bu 2
  199307. dbffba6876 fix tons of errors in my tests
  199308. .IP \(bu 2
  199309. 8c9355d34c Lint fix
  199310. .IP \(bu 2
  199311. b29ec75da7 Update regexes in core grains for detecting the \(aqproduct\(aq grain on Solaris Sparc systems. Additionally, copy the \(aqproduct\(aq grain to \(aqproductname\(aq to be consistent with other OSes.
  199312. .UNINDENT
  199313. .IP \(bu 2
  199314. \fBPR\fP \fI\%#47778\fP: (\fI\%Ch3LL\fP) Add test_pkg integration state tests to windows
  199315. @ \fI2018\-05\-25 20:36:47 UTC\fP
  199316. .INDENT 2.0
  199317. .IP \(bu 2
  199318. 96b7c0cc76 Merge pull request \fI\%#47778\fP from Ch3LL/win_state_pkg
  199319. .IP \(bu 2
  199320. e1786de6b0 Merge branch \(aq2017.7\(aq into win_state_pkg
  199321. .IP \(bu 2
  199322. f8c467d3e6 Fix text editor error
  199323. .IP \(bu 2
  199324. 872e162137 Add test_pkg integration state tests to windows
  199325. .UNINDENT
  199326. .IP \(bu 2
  199327. \fBPR\fP \fI\%#47823\fP: (\fI\%Ch3LL\fP) Add win_dns module integration tests for windows
  199328. @ \fI2018\-05\-25 20:34:03 UTC\fP
  199329. .INDENT 2.0
  199330. .IP \(bu 2
  199331. 6f934c2259 Merge pull request \fI\%#47823\fP from Ch3LL/win_dns_test
  199332. .IP \(bu 2
  199333. 7848114d6a Add win_dns module integration tests for windows
  199334. .UNINDENT
  199335. .IP \(bu 2
  199336. \fBPR\fP \fI\%#47838\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47810\fP to 2017.7
  199337. @ \fI2018\-05\-25 20:33:44 UTC\fP
  199338. .INDENT 2.0
  199339. .IP \(bu 2
  199340. \fBPR\fP \fI\%#47810\fP: (\fI\%rmcintosh\fP) Fix Linode plan selection (refs: \fI\%#47838\fP)
  199341. .IP \(bu 2
  199342. e63e04602d Merge pull request \fI\%#47838\fP from rallytime/bp\-47810
  199343. .IP \(bu 2
  199344. bd2b62fa66 better debug message
  199345. .IP \(bu 2
  199346. 83565c55df Address PR feedback
  199347. .IP \(bu 2
  199348. 50bce3a2f3 make decode_linode_plan_label a private function
  199349. .IP \(bu 2
  199350. 2ba4fc4cea fix raising when a \(aqGB\(aq format invalid plan is supplied
  199351. .IP \(bu 2
  199352. 3afb50d5a2 slight cleanup
  199353. .IP \(bu 2
  199354. 319fbd3406 match quotation mark types properly
  199355. .IP \(bu 2
  199356. 95e0202223 more consistent use of parens in logged warning
  199357. .IP \(bu 2
  199358. f52926ca87 log a warning when the user supplied a label we could decode but was not in the proper format
  199359. .IP \(bu 2
  199360. 121303d827 reduce complexity of get_plan_id by moving decoding of the user\-supplied label to its own function
  199361. .IP \(bu 2
  199362. cf534c7314 Fix Linode plan selection
  199363. .UNINDENT
  199364. .IP \(bu 2
  199365. \fBPR\fP \fI\%#47805\fP: (\fI\%twangboy\fP) Add sign.bat script for signing packages
  199366. @ \fI2018\-05\-25 13:53:58 UTC\fP
  199367. .INDENT 2.0
  199368. .IP \(bu 2
  199369. 9ef6e60617 Merge pull request \fI\%#47805\fP from twangboy/add_sign.bat
  199370. .IP \(bu 2
  199371. 66d8b0331a Add sign.bat script for signing packages
  199372. .UNINDENT
  199373. .IP \(bu 2
  199374. \fBPR\fP \fI\%#47500\fP: (\fI\%dwoz\fP) Get the current username on windows (refs: \fI\%#47917\fP)
  199375. @ \fI2018\-05\-24 19:14:07 UTC\fP
  199376. .INDENT 2.0
  199377. .IP \(bu 2
  199378. 93420950d3 Merge pull request \fI\%#47500\fP from dwoz/winuser
  199379. .IP \(bu 2
  199380. 0ca5224cbf Merge branch \(aq2017.7\(aq into winuser
  199381. .IP \(bu 2
  199382. e5948902af Use salt utils method for this_user
  199383. .IP \(bu 2
  199384. a056a293f1 Centeralize test username lookup
  199385. .IP \(bu 2
  199386. 6a6ab69722 Get the current username on windows
  199387. .UNINDENT
  199388. .IP \(bu 2
  199389. \fBISSUE\fP \fI\%#35960\fP: (\fI\%basepi\fP) Beacons cannot be reloaded/refreshed without minion restart (refs: \fI\%#40892\fP)
  199390. .IP \(bu 2
  199391. \fBPR\fP \fI\%#47802\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40892\fP to 2017.7
  199392. @ \fI2018\-05\-24 16:34:35 UTC\fP
  199393. .INDENT 2.0
  199394. .IP \(bu 2
  199395. \fBPR\fP \fI\%#40892\fP: (\fI\%jagguli\fP) add minion function to reload beacon \fI\%#35960\fP (refs: \fI\%#47802\fP)
  199396. .IP \(bu 2
  199397. 552526f309 Merge pull request \fI\%#47802\fP from rallytime/bp\-40892
  199398. .IP \(bu 2
  199399. bb357da084 add minion function to reload beacon \fI\%#35960\fP
  199400. .UNINDENT
  199401. .IP \(bu 2
  199402. \fBPR\fP \fI\%#47816\fP: (\fI\%Ch3LL\fP) Add windows to service disable ERROR check in tests
  199403. @ \fI2018\-05\-24 15:31:36 UTC\fP
  199404. .INDENT 2.0
  199405. .IP \(bu 2
  199406. c9cccf53b9 Merge pull request \fI\%#47816\fP from Ch3LL/disable_windows
  199407. .IP \(bu 2
  199408. 2509d36888 Add windows to service disable ERROR check in tests
  199409. .UNINDENT
  199410. .IP \(bu 2
  199411. \fBPR\fP \fI\%#47773\fP: (\fI\%frogunder\fP) add win_servermanager.list_available test
  199412. @ \fI2018\-05\-23 19:44:14 UTC\fP
  199413. .INDENT 2.0
  199414. .IP \(bu 2
  199415. 2cb6634c6b Merge pull request \fI\%#47773\fP from frogunder/45011
  199416. .IP \(bu 2
  199417. 7c9b0bda33 add win_servermanager.list_available test
  199418. .UNINDENT
  199419. .IP \(bu 2
  199420. \fBPR\fP \fI\%#47807\fP: (\fI\%dwoz\fP) Try an even bigger timeout
  199421. @ \fI2018\-05\-23 19:38:21 UTC\fP
  199422. .INDENT 2.0
  199423. .IP \(bu 2
  199424. e65dece202 Merge pull request \fI\%#47807\fP from dwoz/winrmtests
  199425. .IP \(bu 2
  199426. 1f1cc1357a Increase instance size for cloud tests
  199427. .IP \(bu 2
  199428. be8dcd21f1 Try an even bigger timeout
  199429. .UNINDENT
  199430. .IP \(bu 2
  199431. \fBPR\fP \fI\%#47765\fP: (\fI\%meaksh\fP) Prevent zypper from parsing repo configuration from not .repo files
  199432. @ \fI2018\-05\-23 14:45:04 UTC\fP
  199433. .INDENT 2.0
  199434. .IP \(bu 2
  199435. 46618d2ce7 Merge pull request \fI\%#47765\fP from meaksh/2017.7\-fix\-zypper\-error\-reading\-repo
  199436. .IP \(bu 2
  199437. 4475ba19b8 Prevent zypper from parsing repo configuration from not .repo files
  199438. .UNINDENT
  199439. .IP \(bu 2
  199440. \fBPR\fP \fI\%#47781\fP: (\fI\%rallytime\fP) Update cloud test profile and docs to use new Linode size lables
  199441. @ \fI2018\-05\-23 13:09:13 UTC\fP
  199442. .INDENT 2.0
  199443. .IP \(bu 2
  199444. 0e87559ee3 Merge pull request \fI\%#47781\fP from rallytime/update\-linode\-sizes
  199445. .IP \(bu 2
  199446. a90c1b760e Update cloud test profile and docs to use new Linode size lables
  199447. .UNINDENT
  199448. .IP \(bu 2
  199449. \fBPR\fP \fI\%#47748\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199450. @ \fI2018\-05\-22 20:53:02 UTC\fP
  199451. .INDENT 2.0
  199452. .IP \(bu 2
  199453. 3ddc56cb9b Merge pull request \fI\%#47748\fP from rallytime/merge\-2017.7
  199454. .IP \(bu 2
  199455. b75f5ae38e Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199456. .IP \(bu 2
  199457. 17596f3025 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199458. .IP \(bu 2
  199459. e458f4a031 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199460. .UNINDENT
  199461. .IP \(bu 2
  199462. \fBPR\fP \fI\%#47779\fP: (\fI\%dwoz\fP) Increase ec2 cloud timeouts to 1000
  199463. @ \fI2018\-05\-22 20:35:45 UTC\fP
  199464. .INDENT 2.0
  199465. .IP \(bu 2
  199466. 0ddc864f90 Merge pull request \fI\%#47779\fP from dwoz/winrmtests
  199467. .IP \(bu 2
  199468. d5eafe9d53 Use common timeout variable
  199469. .IP \(bu 2
  199470. 7e948eb540 Increase ec2 cloud timeouts to 1000
  199471. .UNINDENT
  199472. .IP \(bu 2
  199473. \fBPR\fP \fI\%#47430\fP: (\fI\%baniobloom\fP) Add catch for VPCAssociationNotFound
  199474. @ \fI2018\-05\-22 14:54:01 UTC\fP
  199475. .INDENT 2.0
  199476. .IP \(bu 2
  199477. 17c4c8443c Merge pull request \fI\%#47430\fP from baniobloom/vpc_association_not_found
  199478. .IP \(bu 2
  199479. 0f1d007f91 added catch for VPCAssociationNotFound
  199480. .UNINDENT
  199481. .IP \(bu 2
  199482. \fBPR\fP \fI\%#47525\fP: (\fI\%baniobloom\fP) Trying to add a duplicate sec group rule true
  199483. @ \fI2018\-05\-22 14:51:09 UTC\fP
  199484. .INDENT 2.0
  199485. .IP \(bu 2
  199486. 9c5dde1449 Merge pull request \fI\%#47525\fP from baniobloom/duplicate_sec_group_rule
  199487. .IP \(bu 2
  199488. dcc35df489 if we are trying to add the same rule then we are already in the desired state, return true
  199489. .UNINDENT
  199490. .IP \(bu 2
  199491. \fBPR\fP \fI\%#47772\fP: (\fI\%gtmanfred\fP) lock down dependencies for kitchen\-salt
  199492. @ \fI2018\-05\-22 14:21:49 UTC\fP
  199493. .INDENT 2.0
  199494. .IP \(bu 2
  199495. 536ce2fa42 Merge pull request \fI\%#47772\fP from gtmanfred/2017.7
  199496. .IP \(bu 2
  199497. 67756a50fd lock down dependencies for kitchen\-salt
  199498. .UNINDENT
  199499. .IP \(bu 2
  199500. \fBISSUE\fP \fI\%#47717\fP: (\fI\%server\-monitoring\fP) Invalid output of pkg.list_upgrades on Fedora 27 Server (refs: \fI\%#47749\fP)
  199501. .IP \(bu 2
  199502. \fBPR\fP \fI\%#47749\fP: (\fI\%terminalmage\fP) Fix "dnf list upgrades" parsing
  199503. @ \fI2018\-05\-22 12:51:29 UTC\fP
  199504. .INDENT 2.0
  199505. .IP \(bu 2
  199506. 12b330f049 Merge pull request \fI\%#47749\fP from terminalmage/issue47717
  199507. .IP \(bu 2
  199508. cd484bef69 Fix "dnf list upgrades" parsing
  199509. .UNINDENT
  199510. .IP \(bu 2
  199511. \fBPR\fP \fI\%#47755\fP: (\fI\%dwoz\fP) Be explicit about winrm setting
  199512. @ \fI2018\-05\-21 22:39:24 UTC\fP
  199513. .INDENT 2.0
  199514. .IP \(bu 2
  199515. 5cd18b9e70 Merge pull request \fI\%#47755\fP from dwoz/winrmtests
  199516. .IP \(bu 2
  199517. 57dd89e6c3 Default to ec2 classic compatible images
  199518. .IP \(bu 2
  199519. f89668920a Be explicit about winrm setting
  199520. .UNINDENT
  199521. .IP \(bu 2
  199522. \fBPR\fP \fI\%#47668\fP: (\fI\%Ch3LL\fP) Add pkg.latest_version windows test
  199523. @ \fI2018\-05\-21 20:26:45 UTC\fP
  199524. .INDENT 2.0
  199525. .IP \(bu 2
  199526. f45a96ba1d Merge pull request \fI\%#47668\fP from Ch3LL/win_pkg_test
  199527. .IP \(bu 2
  199528. a8981024de Add pkg.latest_version windows test
  199529. .UNINDENT
  199530. .IP \(bu 2
  199531. \fBPR\fP \fI\%#47750\fP: (\fI\%dwoz\fP) Allow ssh_interface to default to public_ips
  199532. @ \fI2018\-05\-21 17:14:11 UTC\fP
  199533. .INDENT 2.0
  199534. .IP \(bu 2
  199535. 7b12444dfa Merge pull request \fI\%#47750\fP from dwoz/cloudtest
  199536. .IP \(bu 2
  199537. 63b722ba21 Allow ssh_interface to default to public_ips
  199538. .UNINDENT
  199539. .IP \(bu 2
  199540. \fBPR\fP \fI\%#47737\fP: (\fI\%dwoz\fP) Cloud test fixup
  199541. @ \fI2018\-05\-21 14:19:49 UTC\fP
  199542. .INDENT 2.0
  199543. .IP \(bu 2
  199544. 27fbb42210 Merge pull request \fI\%#47737\fP from dwoz/win_timeout
  199545. .IP \(bu 2
  199546. e88833a07d Cloud test fixup
  199547. .UNINDENT
  199548. .IP \(bu 2
  199549. \fBPR\fP \fI\%#47729\fP: (\fI\%UtahDave\fP) fix cli example to match function name
  199550. @ \fI2018\-05\-19 11:31:21 UTC\fP
  199551. .INDENT 2.0
  199552. .IP \(bu 2
  199553. 1a93f060fb Merge pull request \fI\%#47729\fP from UtahDave/fix_get_info_doc
  199554. .IP \(bu 2
  199555. 443a2d72a2 fix cli example to match function name
  199556. .UNINDENT
  199557. .IP \(bu 2
  199558. \fBISSUE\fP \fI\%#47182\fP: (\fI\%MartinEmrich\fP) state.highstate error with require_in: sls: (refs: \fI\%#47682\fP)
  199559. .IP \(bu 2
  199560. \fBPR\fP \fI\%#47682\fP: (\fI\%terminalmage\fP) Fix traceback when excludes are present in an included SLS file
  199561. @ \fI2018\-05\-18 16:47:47 UTC\fP
  199562. .INDENT 2.0
  199563. .IP \(bu 2
  199564. 00a13761c7 Merge pull request \fI\%#47682\fP from terminalmage/issue47182
  199565. .IP \(bu 2
  199566. d0243e8f23 Suppress spurious lint failure
  199567. .IP \(bu 2
  199568. 3b449f11fc Add regression test for excludes issue
  199569. .IP \(bu 2
  199570. 28a7d2b81c Skip __exclude__ in find_sls_ids
  199571. .UNINDENT
  199572. .IP \(bu 2
  199573. \fBISSUE\fP \fI\%#47696\fP: (\fI\%darkpixel\fP) 2017.7.5 zpool.present does not check for properties=None before attempting to enumerate properties (refs: \fI\%#47708\fP)
  199574. .IP \(bu 2
  199575. \fBPR\fP \fI\%#47708\fP: (\fI\%darkpixel\fP) Wrap properties loop with a check for None. Closes GH\-47696
  199576. @ \fI2018\-05\-18 15:25:44 UTC\fP
  199577. .INDENT 2.0
  199578. .IP \(bu 2
  199579. 518f7bcc62 Merge pull request \fI\%#47708\fP from darkpixel/47696\-do\-not\-enumerate\-none
  199580. .IP \(bu 2
  199581. 54e9bf9ec9 Merge branch \(aq2017.7\(aq into 47696\-do\-not\-enumerate\-none
  199582. .UNINDENT
  199583. .IP \(bu 2
  199584. \fBPR\fP \fI\%#47681\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199585. @ \fI2018\-05\-17 21:30:02 UTC\fP
  199586. .INDENT 2.0
  199587. .IP \(bu 2
  199588. cad062eaa7 Merge pull request \fI\%#47681\fP from rallytime/merge\-2017.7
  199589. .IP \(bu 2
  199590. 6c06cb3ae3 Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199591. .UNINDENT
  199592. .IP \(bu 2
  199593. \fBPR\fP \fI\%#47683\fP: (\fI\%Ch3LL\fP) Remove unnecessary setUp in states.test_user test for mac
  199594. @ \fI2018\-05\-17 21:28:26 UTC\fP
  199595. .INDENT 2.0
  199596. .IP \(bu 2
  199597. fd2d45d9c2 Merge pull request \fI\%#47683\fP from Ch3LL/mac_user_test
  199598. .IP \(bu 2
  199599. 5a1b25b9c7 Remove unnecessary setUp in states.test_user test for mac
  199600. .UNINDENT
  199601. .IP \(bu 2
  199602. \fBPR\fP \fI\%#47692\fP: (\fI\%dwoz\fP) Default windows to m1.small for ec2\-classic
  199603. @ \fI2018\-05\-17 14:44:10 UTC\fP
  199604. .INDENT 2.0
  199605. .IP \(bu 2
  199606. f323799c42 Merge pull request \fI\%#47692\fP from dwoz/win_instance_type
  199607. .IP \(bu 2
  199608. 20b6070d54 Default windows to m1.small for ec2\-classic
  199609. .UNINDENT
  199610. .IP \(bu 2
  199611. \fBISSUE\fP \fI\%#45125\fP: (\fI\%wes\-novack\fP) salt\-cloud no longer picking up master setting from provider file (refs: \fI\%#47665\fP)
  199612. .IP \(bu 2
  199613. \fBPR\fP \fI\%#47665\fP: (\fI\%gtmanfred\fP) use dictupdate to update the providers dictionary and merge lists
  199614. @ \fI2018\-05\-16 15:59:17 UTC\fP
  199615. .INDENT 2.0
  199616. .IP \(bu 2
  199617. 990ece5cd5 Merge pull request \fI\%#47665\fP from gtmanfred/cloud
  199618. .IP \(bu 2
  199619. fd8a02decb use dictupdate to update the providers dictionary and merge lists
  199620. .UNINDENT
  199621. .IP \(bu 2
  199622. \fBPR\fP \fI\%#47151\fP: (\fI\%zer0def\fP) Allow interaction with default section in ConfigParser serializer
  199623. @ \fI2018\-05\-16 13:53:44 UTC\fP
  199624. .INDENT 2.0
  199625. .IP \(bu 2
  199626. a2ed8cbb7f Merge pull request \fI\%#47151\fP from zer0def/configparser\-defaultsect
  199627. .IP \(bu 2
  199628. a8f2ad977e Merge branch \(aq2017.7\(aq into configparser\-defaultsect
  199629. .IP \(bu 2
  199630. cca2a806c9 Made interaction with [DEFAULT] section in ConfigParser as sane as upstream permits.
  199631. .UNINDENT
  199632. .IP \(bu 2
  199633. \fBISSUE\fP \fI\%#40846\fP: (\fI\%ghost\fP) file.managed fails for long URLs (refs: \fI\%#45808\fP)
  199634. .IP \(bu 2
  199635. \fBPR\fP \fI\%#47673\fP: (\fI\%terminalmage\fP) Backport \fI\%#45808\fP to 2017.7
  199636. @ \fI2018\-05\-16 13:52:06 UTC\fP
  199637. .INDENT 2.0
  199638. .IP \(bu 2
  199639. \fBPR\fP \fI\%#45808\fP: (\fI\%b1naryth1ef\fP) [bugfix] Fix for oversized filenames in fileclient (refs: \fI\%#47673\fP)
  199640. .IP \(bu 2
  199641. e6fb8342ef Merge pull request \fI\%#47673\fP from terminalmage/bp\-45808
  199642. .IP \(bu 2
  199643. 454291ad62 Fix errors when attempting to cache files with long names or URLs
  199644. .UNINDENT
  199645. .IP \(bu 2
  199646. \fBPR\fP \fI\%#47670\fP: (\fI\%gtmanfred\fP) add a pytest.ini and update a dependency for kitchen
  199647. @ \fI2018\-05\-16 01:56:17 UTC\fP
  199648. .INDENT 2.0
  199649. .IP \(bu 2
  199650. b0446aab07 Merge pull request \fI\%#47670\fP from gtmanfred/2017.7
  199651. .IP \(bu 2
  199652. dfd5a8715f add a pytest.ini and update a dependency for kitchen
  199653. .UNINDENT
  199654. .IP \(bu 2
  199655. \fBPR\fP \fI\%#47626\fP: (\fI\%gtmanfred\fP) Implement Pipfile and remove extra requirements.txt files
  199656. @ \fI2018\-05\-16 00:03:12 UTC\fP
  199657. .INDENT 2.0
  199658. .IP \(bu 2
  199659. 0d06da6944 Merge pull request \fI\%#47626\fP from gtmanfred/2017.7
  199660. .IP \(bu 2
  199661. 418364a533 make dev_python27.txt have the same message as dev_python34.txt
  199662. .IP \(bu 2
  199663. d53b44d10f remove lock file
  199664. .IP \(bu 2
  199665. 493ed7f93d use the toml dict format
  199666. .IP \(bu 2
  199667. e0f7cc1447 add proxy tests decorator to pytest conftest
  199668. .IP \(bu 2
  199669. 0a621dd0ec add Pipfile for managing dependencies in salt
  199670. .IP \(bu 2
  199671. f78b81db94 simplify dev and base.txt to single files
  199672. .UNINDENT
  199673. .IP \(bu 2
  199674. \fBPR\fP \fI\%#47578\fP: (\fI\%Ch3LL\fP) Ensure mac_service.disabled is correctly querying services
  199675. @ \fI2018\-05\-15 18:26:37 UTC\fP
  199676. .INDENT 2.0
  199677. .IP \(bu 2
  199678. a07a8906a0 Merge pull request \fI\%#47578\fP from Ch3LL/mac_service_disabled
  199679. .IP \(bu 2
  199680. 6032a01f55 change disable check for upstart service on ubuntu14
  199681. .IP \(bu 2
  199682. 33b4cfbc5b Change service assertion check for systemd platforms
  199683. .IP \(bu 2
  199684. 14896f9743 change codeauthor and class name
  199685. .IP \(bu 2
  199686. 502c5bdff5 Ensure mac_service.disabled is correctly querying services
  199687. .UNINDENT
  199688. .IP \(bu 2
  199689. \fBPR\fP \fI\%#47639\fP: (\fI\%rallytime\fP) [2017.7] Merge forward from 2017.7.6 to 2017.7
  199690. @ \fI2018\-05\-14 17:58:25 UTC\fP
  199691. .INDENT 2.0
  199692. .IP \(bu 2
  199693. f63d801858 Merge pull request \fI\%#47639\fP from rallytime/merge\-2017.7
  199694. .IP \(bu 2
  199695. 1503f1020f Merge branch \(aq2017.7.6\(aq into \(aq2017.7\(aq
  199696. .UNINDENT
  199697. .IP \(bu 2
  199698. \fBPR\fP \fI\%#47643\fP: (\fI\%dwoz\fP) Remove unwanted file
  199699. @ \fI2018\-05\-14 17:53:57 UTC\fP
  199700. .INDENT 2.0
  199701. .IP \(bu 2
  199702. db0eef3e8b Merge pull request \fI\%#47643\fP from dwoz/runas_detect
  199703. .IP \(bu 2
  199704. 8c5e54b8b3 Fix typo
  199705. .IP \(bu 2
  199706. 69bc88f1c6 Remove unwanted file
  199707. .UNINDENT
  199708. .IP \(bu 2
  199709. \fBPR\fP \fI\%#47601\fP: (\fI\%dwoz\fP) Skip tests when we can not use runas
  199710. @ \fI2018\-05\-14 15:26:36 UTC\fP
  199711. .INDENT 2.0
  199712. .IP \(bu 2
  199713. 6dd3ab9f06 Merge pull request \fI\%#47601\fP from dwoz/runas_detect
  199714. .IP \(bu 2
  199715. 3235ac08cb use ignore\-undefined\-variable
  199716. .IP \(bu 2
  199717. 58911d510a Ignore pylint WindowsError
  199718. .IP \(bu 2
  199719. 17987d3c5a Better doc string
  199720. .IP \(bu 2
  199721. a48ac26573 Skip tests when we can not use runas
  199722. .UNINDENT
  199723. .IP \(bu 2
  199724. \fBPR\fP \fI\%#47611\fP: (\fI\%Ch3LL\fP) Update debian install docs to reflect new latest debian releases
  199725. @ \fI2018\-05\-11 16:32:53 UTC\fP
  199726. .INDENT 2.0
  199727. .IP \(bu 2
  199728. f61ccae627 Merge pull request \fI\%#47611\fP from Ch3LL/deb_doc
  199729. .IP \(bu 2
  199730. 6d2ddd050f One more grammar fixup
  199731. .IP \(bu 2
  199732. 2d5ff01261 Grammar fix
  199733. .IP \(bu 2
  199734. 138847c9c4 Update debian install docs to reflect new latest debian releases
  199735. .UNINDENT
  199736. .IP \(bu 2
  199737. \fBPR\fP \fI\%#47598\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47568\fP to 2017.7
  199738. @ \fI2018\-05\-10 22:06:20 UTC\fP
  199739. .INDENT 2.0
  199740. .IP \(bu 2
  199741. \fBPR\fP \fI\%#47568\fP: (\fI\%terminalmage\fP) salt.serializers.yaml/yamlex: remove invalid multi_constructor (refs: \fI\%#47598\fP)
  199742. .IP \(bu 2
  199743. 9e2fe284e4 Merge pull request \fI\%#47598\fP from rallytime/bp\-47568\-2017.7
  199744. .IP \(bu 2
  199745. 09458c65cf Add exception logging on serialize/deserialize exceptions
  199746. .IP \(bu 2
  199747. c62c855f9c salt.serializers.yaml/yamlex: remove invalid multi_constructor
  199748. .UNINDENT
  199749. .IP \(bu 2
  199750. \fBPR\fP \fI\%#47548\fP: (\fI\%Ch3LL\fP) Catch Sysloghandler errors when log file does not exist
  199751. @ \fI2018\-05\-10 20:23:25 UTC\fP
  199752. .INDENT 2.0
  199753. .IP \(bu 2
  199754. 8a7913ccc3 Merge pull request \fI\%#47548\fP from Ch3LL/syslog
  199755. .IP \(bu 2
  199756. 31f13a4197 sysloghander: check for 3.5.4 python version
  199757. .IP \(bu 2
  199758. a020352a03 Catch Sysloghandler errors when log file does not exist
  199759. .UNINDENT
  199760. .IP \(bu 2
  199761. \fBISSUE\fP \fI\%#47491\fP: (\fI\%doc987\fP) mysql_query.run_file Doesn\(aqt Work when query_file = salt://... (refs: \fI\%#47508\fP)
  199762. .IP \(bu 2
  199763. \fBPR\fP \fI\%#47508\fP: (\fI\%gtmanfred\fP) allow pulling the mysql_query.run_file to pull from the fileserver
  199764. @ \fI2018\-05\-10 18:12:28 UTC\fP
  199765. .INDENT 2.0
  199766. .IP \(bu 2
  199767. 82fb6ba366 Merge pull request \fI\%#47508\fP from gtmanfred/2017.7
  199768. .IP \(bu 2
  199769. 1a87e7455f allow pulling the mysql_query.run_file to pull from the fileserver
  199770. .UNINDENT
  199771. .IP \(bu 2
  199772. \fBISSUE\fP \fI\%#47203\fP: (\fI\%aesposito91\fP) NAPALM grains not updating (refs: \fI\%#47513\fP)
  199773. .IP \(bu 2
  199774. \fBISSUE\fP \fI\%#46546\fP: (\fI\%ppalmieri\fP) salt\-minion installed on vEOS does not give vendor grain (refs: \fI\%#47513\fP)
  199775. .IP \(bu 2
  199776. \fBPR\fP \fI\%#47562\fP: (\fI\%rallytime\fP) Back\-port \fI\%#47513\fP to 2017.7
  199777. @ \fI2018\-05\-10 15:19:04 UTC\fP
  199778. .INDENT 2.0
  199779. .IP \(bu 2
  199780. \fBPR\fP \fI\%#47513\fP: (\fI\%frankiexyz\fP) Fix \fI\%#46546\fP eos napalm\(aqs grains issue (refs: \fI\%#47562\fP)
  199781. .IP \(bu 2
  199782. be29b58a09 Merge pull request \fI\%#47562\fP from rallytime/bp\-47513
  199783. .IP \(bu 2
  199784. 357bc084b3 fix \fI\%#46546\fP
  199785. .UNINDENT
  199786. .IP \(bu 2
  199787. \fBPR\fP \fI\%#47471\fP: (\fI\%meaksh\fP) Fix inconsistency with "jid" on minion scheduled jobs and the returners output
  199788. @ \fI2018\-05\-09 18:20:00 UTC\fP
  199789. .INDENT 2.0
  199790. .IP \(bu 2
  199791. d3121fcfa4 Merge pull request \fI\%#47471\fP from meaksh/2017.7\-fix\-inconsistent\-scheduled\-jid\-with\-returners
  199792. .IP \(bu 2
  199793. f079939500 Do not override jid on returners, only sending back to master
  199794. .UNINDENT
  199795. .IP \(bu 2
  199796. \fBPR\fP \fI\%#47313\fP: (\fI\%Circuitsoft\fP) Add Poky/Yocto support
  199797. @ \fI2018\-05\-09 17:31:59 UTC\fP
  199798. .INDENT 2.0
  199799. .IP \(bu 2
  199800. 662f6086db Merge pull request \fI\%#47313\fP from Circuitsoft/2017.7
  199801. .IP \(bu 2
  199802. 237560b745 Merge branch \(aq2017.7\(aq into 2017.7
  199803. .UNINDENT
  199804. .IP \(bu 2
  199805. \fBPR\fP \fI\%#47540\fP: (\fI\%terminalmage\fP) Fix corner case where runas user\(aqs HOME env value is incorrect
  199806. @ \fI2018\-05\-08 20:31:40 UTC\fP
  199807. .INDENT 2.0
  199808. .IP \(bu 2
  199809. 291d3d3bd8 Merge pull request \fI\%#47540\fP from terminalmage/cmdmod\-home\-fix
  199810. .IP \(bu 2
  199811. e4b277f82e Fix corner case where runas user\(aqs HOME env value is incorrect
  199812. .UNINDENT
  199813. .IP \(bu 2
  199814. \fBISSUE\fP \fI\%#24148\fP: (\fI\%abng88\fP) Update gitfs docs to include tutorial on how to configure gitfs for salt\-call (masterless) (refs: \fI\%#47547\fP)
  199815. .IP \(bu 2
  199816. \fBPR\fP \fI\%#47547\fP: (\fI\%terminalmage\fP) Add masterless mode docs to gitfs tutorial
  199817. @ \fI2018\-05\-08 20:24:29 UTC\fP
  199818. .INDENT 2.0
  199819. .IP \(bu 2
  199820. 49af577b3e Merge pull request \fI\%#47547\fP from terminalmage/gitfs\-tutorial
  199821. .IP \(bu 2
  199822. 806ffb298a Add masterless mode docs to gitfs tutorial
  199823. .UNINDENT
  199824. .IP \(bu 2
  199825. \fBPR\fP \fI\%#47538\fP: (\fI\%terminalmage\fP) Fix/clarify some of the pip module documentation
  199826. @ \fI2018\-05\-08 15:24:18 UTC\fP
  199827. .INDENT 2.0
  199828. .IP \(bu 2
  199829. 476ba053d1 Merge pull request \fI\%#47538\fP from terminalmage/pip\-docs
  199830. .IP \(bu 2
  199831. 98e8ffeba4 Fix/clarify some of the pip module documentation
  199832. .UNINDENT
  199833. .IP \(bu 2
  199834. \fBPR\fP \fI\%#47524\fP: (\fI\%dwoz\fP) Gracefully handle blank lines in whitelist.txt
  199835. @ \fI2018\-05\-08 15:04:23 UTC\fP
  199836. .INDENT 2.0
  199837. .IP \(bu 2
  199838. 7cc8d9d30a Merge pull request \fI\%#47524\fP from dwoz/whitelistlines
  199839. .IP \(bu 2
  199840. 2605ff8712 Gracefully handle blank lines in whitelist.txt
  199841. .UNINDENT
  199842. .IP \(bu 2
  199843. \fBPR\fP \fI\%#47527\fP: (\fI\%dwoz\fP) Test file name
  199844. @ \fI2018\-05\-07 22:02:04 UTC\fP
  199845. .INDENT 2.0
  199846. .IP \(bu 2
  199847. f1a5b13072 Merge pull request \fI\%#47527\fP from dwoz/test_file_name
  199848. .IP \(bu 2
  199849. 4aea7ca571 Update doc string
  199850. .IP \(bu 2
  199851. b3289e5a1c Fix test file name
  199852. .UNINDENT
  199853. .IP \(bu 2
  199854. \fBPR\fP \fI\%#47408\fP: (\fI\%Ch3LL\fP) Skip status.diskusage integration tests on macsox
  199855. @ \fI2018\-05\-07 19:06:57 UTC\fP
  199856. .INDENT 2.0
  199857. .IP \(bu 2
  199858. e9c1723175 Merge pull request \fI\%#47408\fP from Ch3LL/skip_diskusage
  199859. .IP \(bu 2
  199860. 068da8ad7d Merge branch \(aq2017.7\(aq into skip_diskusage
  199861. .IP \(bu 2
  199862. 1a7ffb4e0d return error if diskusage not available
  199863. .IP \(bu 2
  199864. 10bd63a976 Skip status.diskusage integration tests on macsox
  199865. .UNINDENT
  199866. .IP \(bu 2
  199867. \fBPR\fP \fI\%#47480\fP: (\fI\%baniobloom\fP) added handling for the aws error ConflictingDomainExists
  199868. @ \fI2018\-05\-07 19:05:28 UTC\fP
  199869. .INDENT 2.0
  199870. .IP \(bu 2
  199871. 2f50ff7bc8 Merge pull request \fI\%#47480\fP from baniobloom/ConflictingDomainExists
  199872. .IP \(bu 2
  199873. d22ed7dffa added handling for the aws error ConflictingDomainExists
  199874. .UNINDENT
  199875. .IP \(bu 2
  199876. \fBPR\fP \fI\%#47444\fP: (\fI\%terminalmage\fP) Skip trying to render a template for a nonexistant SLS file
  199877. @ \fI2018\-05\-07 13:48:24 UTC\fP
  199878. .INDENT 2.0
  199879. .IP \(bu 2
  199880. 7f53be6e92 Merge pull request \fI\%#47444\fP from terminalmage/render_state\-spurious\-error
  199881. .IP \(bu 2
  199882. a1e9fe00fd Skip trying to render a template for a nonexistant SLS file
  199883. .UNINDENT
  199884. .IP \(bu 2
  199885. \fBPR\fP \fI\%#47478\fP: (\fI\%terminalmage\fP) Rename pip state test modules to match naming convention
  199886. @ \fI2018\-05\-07 13:13:13 UTC\fP
  199887. .INDENT 2.0
  199888. .IP \(bu 2
  199889. 50b9c4d79d Merge pull request \fI\%#47478\fP from terminalmage/rename\-pip\-state\-test
  199890. .IP \(bu 2
  199891. 9f7a9ebebd Rename pip state test modules to match naming convention
  199892. .UNINDENT
  199893. .IP \(bu 2
  199894. \fBISSUE\fP \fI\%#47443\fP: (\fI\%skylerberg\fP) Input validation does not raise SaltInvocationError in win_dsc.py (refs: \fI\%#47505\fP)
  199895. .IP \(bu 2
  199896. \fBPR\fP \fI\%#47505\fP: (\fI\%dwoz\fP) Raise proper invocation errors
  199897. @ \fI2018\-05\-07 13:05:22 UTC\fP
  199898. .INDENT 2.0
  199899. .IP \(bu 2
  199900. e78ac0f9b7 Merge pull request \fI\%#47505\fP from dwoz/win_dsc_fixes
  199901. .IP \(bu 2
  199902. d1fcb40d1c Raise proper invocation errors
  199903. .UNINDENT
  199904. .IP \(bu 2
  199905. \fBPR\fP \fI\%#47499\fP: (\fI\%dwoz\fP) Move kill process tree and re\-use it
  199906. @ \fI2018\-05\-06 20:54:22 UTC\fP
  199907. .INDENT 2.0
  199908. .IP \(bu 2
  199909. 0d4d5047d8 Merge pull request \fI\%#47499\fP from dwoz/win_run_timeout_again
  199910. .IP \(bu 2
  199911. c6697b9f16 Move kill process tree and re\-use it
  199912. .UNINDENT
  199913. .IP \(bu 2
  199914. \fBPR\fP \fI\%#47493\fP: (\fI\%dwoz\fP) Add support for windows timeout to run_salt
  199915. @ \fI2018\-05\-06 05:34:31 UTC\fP
  199916. .INDENT 2.0
  199917. .IP \(bu 2
  199918. 6a4d0380b1 Merge pull request \fI\%#47493\fP from dwoz/win_run_timeout
  199919. .IP \(bu 2
  199920. fec1233dc4 Add support for windows timeout to run_salt
  199921. .IP \(bu 2
  199922. cb674fb1cb Enable opkg as pkgrepo handler on Poky
  199923. .IP \(bu 2
  199924. 7a58fd157e Enable opkg on non\-NILinuxRT systems
  199925. .IP \(bu 2
  199926. 139360c55f Add Poky to OS Information Grains
  199927. .IP \(bu 2
  199928. d74057224d Un\-normalize os_family in pkgrepo state
  199929. .IP \(bu 2
  199930. 95d4488f01 Merge branch \(aq2017.7.6\(aq into 47696\-do\-not\-enumerate\-none
  199931. .IP \(bu 2
  199932. 041e4c6ddb Wrap properties loop with a check for None. Closes GH\-47696
  199933. .UNINDENT
  199934. .UNINDENT
  199935. .SS In Progress: Salt 2017.7.9 Release Notes
  199936. .sp
  199937. Version 2017.7.9 is an \fBunreleased\fP bugfix release for 2017.7.0\&.
  199938. This release is still in progress and has not been released yet.
  199939. .SS Salt Cloud Features
  199940. .SS GCE Driver
  199941. .sp
  199942. The GCE salt cloud driver can now be used with GCE instance credentials by
  199943. setting the configuration paramaters \fBservice_account_private_key\fP and
  199944. \fBservice_account_private_email\fP to an empty string.
  199945. .SS Salt 2016.11.0 Release Notes \- Codename Carbon
  199946. .SS New Features
  199947. .SS Docker Introspection and Configuration
  199948. .sp
  199949. Major additions have been made to the Docker support in 2016.11.0. The new
  199950. addition allows Salt to be executed within a Docker container without a
  199951. minion running or installed in the container. This allows states to
  199952. be run inside a container, but also all of Salt\(aqs remote execution
  199953. commands to be run inside docker containers as well. This makes
  199954. container introspection simple and powerful. See the tutorial on using
  199955. this new feature here:
  199956. .sp
  199957. See Salt in Docker Containers\&.
  199958. .SS Advanced Ceph Control
  199959. .sp
  199960. Our friends over at SUSE have delivered a powerful new tool to make the
  199961. deployment of Ceph storage systems using Salt very easy. These new Ceph
  199962. tools allow for a storage system to be easily defined using the new
  199963. \fIceph.quorum\fP state.
  199964. .SS Thorium Additions and Improvements
  199965. .sp
  199966. The Thorium advanced reactor has undergone extensive testing and updates.
  199967. These updates include many more Thorium states, a system for automating
  199968. key management, the ability to use Thorium to easily replace old
  199969. reactors and a great deal of stability and bug fixes.
  199970. .SS State Rollback Using Snapper
  199971. .sp
  199972. Rollback has been one of the most prevalent requests for Salt. We
  199973. have researched it extensively and concluded that the only way to
  199974. accomplish truly reliable rollback would be to execute it at
  199975. the filesystem layer. To accomplish this we have introduced Snapper
  199976. integration into Salt States.
  199977. .sp
  199978. Snapper is a tool which allows for simple and reliable snapshots
  199979. of the filesystem to be made. With the new \fIsnapper_states\fP option
  199980. set to \fITrue\fP in the minion config a snapshot will be made before
  199981. and after every Salt State run.
  199982. .sp
  199983. These snapshots can be viewed, managed and rolled back to via the
  199984. \fIsnapper\fP execution module.
  199985. .SS Preserve File Perms in File States
  199986. .sp
  199987. This feature has been requested for years, the ability to set a flag
  199988. and use the same file permissions for files deployed to a minion as
  199989. the permissions set to the file on the master. Just set the \fIkeep_mode\fP
  199990. option on any file management state to \fITrue\fP\&.
  199991. .SS Ponies!
  199992. .sp
  199993. We all agreed that cowsay was just not good enough, install the \fIponysay\fP
  199994. command and the new \fIpony\fP outputter will work. Fun for the whole family!
  199995. .SS Additional Features
  199996. .INDENT 0.0
  199997. .IP \(bu 2
  199998. Minions can run in stand\-alone mode to use beacons and engines without
  199999. having to connect to a master. (Thanks @adelcast!)
  200000. .IP \(bu 2
  200001. Added a \fBsalt\fP runner to allow running salt modules via salt\-run.
  200002. .INDENT 2.0
  200003. .INDENT 3.5
  200004. .INDENT 0.0
  200005. .INDENT 3.5
  200006. .sp
  200007. .nf
  200008. .ft C
  200009. salt\-run salt.cmd test.ping
  200010. # call functions with arguments and keyword arguments
  200011. salt\-run salt.cmd test.arg 1 2 3 a=1
  200012. .ft P
  200013. .fi
  200014. .UNINDENT
  200015. .UNINDENT
  200016. .UNINDENT
  200017. .UNINDENT
  200018. .IP \(bu 2
  200019. Added SSL support to Cassandra CQL returner.
  200020. SSL can be enabled by setting \fBssl_options\fP for the returner.
  200021. Also added support for specifying \fBprotocol_version\fP when establishing
  200022. cluster connection.
  200023. .IP \(bu 2
  200024. The \fBmode\fP parameter in the \fBfile.managed\fP state, and the \fBfile_mode\fP parameter in the
  200025. \fBfile.recurse\fP state, can both now be set
  200026. to \fBkeep\fP and the minion will keep the mode of the file from the Salt
  200027. fileserver. This works only with files coming from sources prefixed with
  200028. \fBsalt://\fP, or files local to the minion (i.e. those which are absolute
  200029. paths, or are prefixed with \fBfile://\fP). For example:
  200030. .INDENT 2.0
  200031. .INDENT 3.5
  200032. .sp
  200033. .nf
  200034. .ft C
  200035. /etc/myapp/myapp.conf:
  200036. file.managed:
  200037. \- source: salt://conf/myapp/myapp.conf
  200038. \- mode: keep
  200039. /var/www/myapp:
  200040. file.recurse:
  200041. \- source: salt://path/to/myapp
  200042. \- dir_mode: 755
  200043. \- file_mode: keep
  200044. .ft P
  200045. .fi
  200046. .UNINDENT
  200047. .UNINDENT
  200048. .IP \(bu 2
  200049. The \fBjunos\fP state module is now available. It has all the functions
  200050. that are present in the \fBjunos\fP execution module.
  200051. .IP \(bu 2
  200052. The \fBjunos\fP state module is now available. It has all the functions
  200053. that are present in the \fBjunos\fP execution module.
  200054. .IP \(bu 2
  200055. The minion data cache is a pluggable data store now. It\(aqs configurable with
  200056. \fBcache\fP option. Default is \fBlocalfs\fP\&.
  200057. .IP \(bu 2
  200058. User names in \fBclient_acl\fP support glob matching now.
  200059. .UNINDENT
  200060. .SS New Top File Merging Strategy for States
  200061. .sp
  200062. A new strategy called \fBmerge_all\fP has been added to provide a new way of
  200063. merging top file matches when executing a highstate\&.
  200064. See the \fBtop_file_merging_strategy\fP documentation for further
  200065. information.
  200066. .sp
  200067. In addition, the \fBsame\fP merging strategy was not functioning as documented.
  200068. This has now been corrected. While this is technically a bugfix, we decided to
  200069. hold a change in top file merging until a feature release to minimize user
  200070. impact.
  200071. .SS Improved Archive Extraction Support
  200072. .sp
  200073. The \fBarchive.extracted\fP state has been
  200074. overhauled. Notable changes include the following:
  200075. .INDENT 0.0
  200076. .IP \(bu 2
  200077. When enforcing ownership (with the \fBuser\fP and/or \fBgroup\fP arguments), the
  200078. \fBif_missing\fP argument no longer has any connection to which path(s) have
  200079. ownership enforced. Instead, the paths are determined using the either the
  200080. newly\-added \fBarchive.list\fP function, or
  200081. the newly\-added \fBenforce_ownership_on\fP argument.
  200082. .IP \(bu 2
  200083. \fBif_missing\fP also is no longer required to skip extraction, as Salt is now
  200084. able to tell which paths would be present if the archive were extracted. It
  200085. should, in most cases, only be necessary in cases where a semaphore file is
  200086. used to conditionally skip extraction of the archive.
  200087. .IP \(bu 2
  200088. Password\-protected ZIP archives are now detected before extraction, and the
  200089. state fails without attempting to extract the archive if no password was
  200090. specified.
  200091. .IP \(bu 2
  200092. By default, a single top\-level directory is enforced, to guard against
  200093. \(aqtar\-bombs\(aq. This enforcement can be disabled by setting \fBenforce_toplevel\fP
  200094. to \fBFalse\fP\&.
  200095. .IP \(bu 2
  200096. The \fBtar_options\fP and \fBzip_options\fP arguments have been deprecated in
  200097. favor of a single \fBoptions\fP argument.
  200098. .IP \(bu 2
  200099. The \fBarchive_format\fP argument is now optional. The ending of the \fBsource\fP
  200100. argument is used to guess whether it is a tar, zip or rar file. If the
  200101. \fBarchive_format\fP cannot be guessed, then it will need to be specified, but
  200102. in many cases it can now be omitted.
  200103. .IP \(bu 2
  200104. Ownership enforcement is now performed irrespective of whether or not the
  200105. archive needed to be extracted. This means that the state can be re\-run after
  200106. the archive has been fully extracted to repair changes to ownership.
  200107. .UNINDENT
  200108. .sp
  200109. A number of new arguments were also added. See the docs py:func:\fIdocs for the
  200110. archive.extracted state <salt.states.archive.extracted>\fP for more information.
  200111. .sp
  200112. Additionally, the following changes have been made to the \fBarchive\fP execution module:
  200113. .INDENT 0.0
  200114. .IP \(bu 2
  200115. A new function (\fBarchive.list\fP) has
  200116. been added. This function lists the files/directories in an archive file, and
  200117. supports a \fBverbose\fP argument that gives a more detailed breakdown of which
  200118. paths are files, which are directories, and which paths are at the top level
  200119. of the archive.
  200120. .IP \(bu 2
  200121. A new function (\fBarchive.is_encrypted\fP) has been added. This function will
  200122. return \fBTrue\fP if the archive is a password\-protected ZIP file, \fBFalse\fP if
  200123. not. If the archive is not a ZIP file, an error will be raised.
  200124. .IP \(bu 2
  200125. \fBarchive.cmd_unzip\fP now supports
  200126. passing a password, bringing it to feature parity with
  200127. \fBarchive.unzip\fP\&. Note that this is
  200128. still not considered to be secure, and \fBarchive.unzip\fP is recommended for dealing with
  200129. password\-protected ZIP archives.
  200130. .IP \(bu 2
  200131. The default value for the \fBextract_perms\fP argument to
  200132. \fBarchive.unzip\fP has been changed to
  200133. \fBTrue\fP\&.
  200134. .UNINDENT
  200135. .SS Improved Checksum Handling in \fBfile.managed\fP, \fBarchive.extracted\fP States
  200136. .sp
  200137. When the \fBsource_hash\fP argument for these states refers to a file containing
  200138. checksums, Salt now looks for checksums matching the name of the source URI, as
  200139. well as the file being managed. Prior releases only looked for checksums
  200140. matching the filename being managed. Additionally, a new argument
  200141. (\fBsource_hash_name\fP) has been added, which allows the user to disambiguate
  200142. ambiguous matches when more than one matching checksum is found in the
  200143. \fBsource_hash\fP file.
  200144. .sp
  200145. A more detailed explanation of this functionality can be found in the
  200146. \fBfile.managed\fP documentation, in the
  200147. section for the new \fBsource_hash_name\fP argument.
  200148. .sp
  200149. \fBNOTE:\fP
  200150. .INDENT 0.0
  200151. .INDENT 3.5
  200152. This improved functionality is also available in the \fB2016.3\fP (Boron)
  200153. release cycle, starting with the 2016.3.5 release.
  200154. .UNINDENT
  200155. .UNINDENT
  200156. .SS Config Changes
  200157. .sp
  200158. The following default config values were changed:
  200159. .INDENT 0.0
  200160. .IP \(bu 2
  200161. \fBgitfs_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200162. .IP \(bu 2
  200163. \fBgit_pillar_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200164. .IP \(bu 2
  200165. \fBwinrepo_ssl_verify\fP: Changed from \fBFalse\fP to \fBTrue\fP
  200166. .UNINDENT
  200167. .SS Grains Changes
  200168. .INDENT 0.0
  200169. .IP \(bu 2
  200170. All core grains containing \fBVMWare\fP have been changed to \fBVMware\fP, which
  200171. is the \fI\%official capitalization\fP\&. Additionally,
  200172. all references to \fBVMWare\fP in the documentation have been changed to
  200173. \fBVMware\fP \fI\%issue #30807\fP\&. Environments using versions of Salt before and
  200174. after Salt 2016.11.0 should employ case\-insensitive grain matching on these
  200175. grains.
  200176. .INDENT 2.0
  200177. .INDENT 3.5
  200178. .sp
  200179. .nf
  200180. .ft C
  200181. {% set on_vmware = grains[\(aqvirtual\(aq].lower() == \(aqvmware\(aq %}
  200182. .ft P
  200183. .fi
  200184. .UNINDENT
  200185. .UNINDENT
  200186. .IP \(bu 2
  200187. On Windows the \fBcpu_model\fP grain has been changed to provide the actual cpu
  200188. model name and not the cpu family.
  200189. .sp
  200190. Old behavior:
  200191. .INDENT 2.0
  200192. .INDENT 3.5
  200193. .sp
  200194. .nf
  200195. .ft C
  200196. root@master:~# salt \(aqtestwin200\(aq grains.item cpu_model
  200197. testwin200:
  200198. \-\-\-\-\-\-\-\-\-\-
  200199. cpu_model:
  200200. Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
  200201. .ft P
  200202. .fi
  200203. .UNINDENT
  200204. .UNINDENT
  200205. .sp
  200206. New behavior:
  200207. .INDENT 2.0
  200208. .INDENT 3.5
  200209. .sp
  200210. .nf
  200211. .ft C
  200212. root@master:~# salt \(aqtestwin200\(aq grains.item cpu_model
  200213. testwin200:
  200214. \-\-\-\-\-\-\-\-\-\-
  200215. cpu_model:
  200216. Intel(R) Core(TM) i7\-3520M CPU @ 2.90GHz
  200217. .ft P
  200218. .fi
  200219. .UNINDENT
  200220. .UNINDENT
  200221. .UNINDENT
  200222. .SS Beacons Changes
  200223. .INDENT 0.0
  200224. .IP \(bu 2
  200225. The \fBloadavg\fP beacon now outputs averages as integers instead of strings.
  200226. (Via \fI\%issue #31124\fP\&.)
  200227. .UNINDENT
  200228. .SS Runner Changes
  200229. .INDENT 0.0
  200230. .IP \(bu 2
  200231. Runners can now call out to utility modules
  200232. via \fB__utils__\fP\&.
  200233. .IP \(bu 2
  200234. ref:\fIUtility modules <writing\-utility\-modules>\fP (placed in
  200235. \fBsalt://_utils/\fP) are now able to be synced to the master, making it easier
  200236. to use them in custom runners. A \fBsaltutil.sync_utils\fP function has been added to the
  200237. \fBsaltutil runner\fP to facilitate the syncing of
  200238. utility modules to the master.
  200239. .UNINDENT
  200240. .SS Pillar Changes
  200241. .INDENT 0.0
  200242. .IP \(bu 2
  200243. Thanks to the new \fBsaltutil.sync_utils\fP runner, it is now easier to get
  200244. ref:\fIutility modules <writing\-utility\-modules>\fP synced to the correct
  200245. location on the Master so that they are available in execution modules called
  200246. from Pillar SLS files.
  200247. .UNINDENT
  200248. .SS Junos Module Changes
  200249. .INDENT 0.0
  200250. .IP \(bu 2
  200251. The following new functionalities were added to the junos module
  200252. .INDENT 2.0
  200253. .IP \(bu 2
  200254. facts \- Displays the facts gathered during the connection.
  200255. .IP \(bu 2
  200256. shutdown \- Shut down or reboot a device running Junos OS.
  200257. .IP \(bu 2
  200258. install_config \- Modify the configuration of a Junos device.
  200259. .IP \(bu 2
  200260. install_os \- Install Junos OS software package.
  200261. .IP \(bu 2
  200262. zeroize \- Remove all configuration information on the Routing Engines and reset all key values on a device.
  200263. .IP \(bu 2
  200264. file_copy \- Copy file from proxy to the Junos device.
  200265. .UNINDENT
  200266. .UNINDENT
  200267. .SS Network Automation: NAPALM
  200268. .sp
  200269. Beginning with 2016.11.0, network automation is included by default in the core
  200270. of Salt. It is based on a the \fI\%NAPALM\fP
  200271. library and provides facilities to manage the configuration and retrieve data
  200272. from network devices running widely used operating systems such: JunOS, IOS\-XR,
  200273. eOS, IOS, NX\-OS etc.
  200274. .INDENT 0.0
  200275. .IP \(bu 2
  200276. see \fI\%the complete list of supported devices\fP\&.
  200277. .UNINDENT
  200278. .sp
  200279. The connection is established via the \fBNAPALM proxy\fP\&.
  200280. .sp
  200281. In the current release, the following modules were included:
  200282. .INDENT 0.0
  200283. .IP \(bu 2
  200284. \fBNAPALM grains\fP \- Select network devices based on their characteristics
  200285. .IP \(bu 2
  200286. \fBNET execution module\fP \- Networking basic features
  200287. .IP \(bu 2
  200288. \fBNTP execution module\fP
  200289. .IP \(bu 2
  200290. \fBBGP execution module\fP
  200291. .IP \(bu 2
  200292. \fBRoutes execution module\fP
  200293. .IP \(bu 2
  200294. \fBSNMP execution module\fP
  200295. .IP \(bu 2
  200296. \fBUsers execution module\fP
  200297. .IP \(bu 2
  200298. \fBProbes execution module\fP
  200299. .IP \(bu 2
  200300. \fBNTP peers management state\fP
  200301. .IP \(bu 2
  200302. \fBSNMP configuration management state\fP
  200303. .IP \(bu 2
  200304. \fBUsers management state\fP
  200305. .UNINDENT
  200306. .SS Cisco NXOS Proxy Minion
  200307. .sp
  200308. Beginning with 2016.11.0, there is a proxy minion that can be used to configure
  200309. nxos cisco devices over ssh.
  200310. .INDENT 0.0
  200311. .IP \(bu 2
  200312. \fBProxy Minion\fP
  200313. .IP \(bu 2
  200314. \fBExecution Module\fP
  200315. .IP \(bu 2
  200316. \fBState Module\fP
  200317. .UNINDENT
  200318. .SS Cisco Network Services Orchestrator Proxy Minion
  200319. .sp
  200320. Beginning with 2016.11.0, there is a proxy minion to use the Cisco Network
  200321. Services Orchestrator as a proxy minion.
  200322. .INDENT 0.0
  200323. .IP \(bu 2
  200324. \fBProxy Minion\fP
  200325. .IP \(bu 2
  200326. \fBExecution Module\fP
  200327. .IP \(bu 2
  200328. \fBState Module\fP
  200329. .UNINDENT
  200330. .SS Junos Module Changes
  200331. .INDENT 0.0
  200332. .IP \(bu 2
  200333. The following new functionalities were added to the junos module
  200334. .INDENT 2.0
  200335. .IP \(bu 2
  200336. facts \- Displays the facts gathered during the connection.
  200337. .IP \(bu 2
  200338. shutdown \- Shut down or reboot a device running Junos OS.
  200339. .IP \(bu 2
  200340. install_config \- Modify the configuration of a Junos device.
  200341. .IP \(bu 2
  200342. install_os \- Install Junos OS software package.
  200343. .IP \(bu 2
  200344. zeroize \- Remove all configuration information on the Routing Engines and reset all key values on a device.
  200345. .IP \(bu 2
  200346. file_copy \- Copy file from proxy to the Junos device.
  200347. .UNINDENT
  200348. .UNINDENT
  200349. .SS Returner Changes
  200350. .INDENT 0.0
  200351. .IP \(bu 2
  200352. Any returner which implements a \fIsave_load\fP function is now required to
  200353. accept a \fIminions\fP keyword argument. All returners which ship with Salt
  200354. have been modified to do so.
  200355. .UNINDENT
  200356. .SS Renderer Changes
  200357. .sp
  200358. Added the ability to restrict allowed renderers. Two new config parameters,
  200359. \fBrenderer_whitelist\fP and \fBrenderer_blacklist\fP are
  200360. introduced for this purpose.
  200361. .SS eAuth Changes
  200362. .INDENT 0.0
  200363. .IP \(bu 2
  200364. External auth modules\(aq \fBauth\fP method can return an ACL list for the given
  200365. username instead of \fBTrue\fP\&. This list should be in the same format as
  200366. described in the eAuth documentation\&. It will be
  200367. used for the user instead of one set in master config.
  200368. .sp
  200369. Example of the \fBauth\fP method return that allows a user to execute functions
  200370. in the \fBtest\fP and \fBnetwork\fP modules on the minions that match the \fBweb*\fP
  200371. target and allow access to \fBwheel\fP and \fBrunner\fP modules:
  200372. .INDENT 2.0
  200373. .INDENT 3.5
  200374. .sp
  200375. .nf
  200376. .ft C
  200377. [{\(aqweb*\(aq: [\(aqtest.*\(aq,
  200378. \(aqnetwork.*\(aq]},
  200379. \(aq@wheel\(aq,
  200380. \(aq@runner\(aq]
  200381. .ft P
  200382. .fi
  200383. .UNINDENT
  200384. .UNINDENT
  200385. .IP \(bu 2
  200386. External auth is supported by salt\-run and
  200387. salt\-key now. Note that master must be started to
  200388. use them with eAuth.
  200389. .UNINDENT
  200390. .SS External Module Packaging
  200391. .sp
  200392. Modules may now be packaged via entry\-points in setuptools. See
  200393. external module packaging tutorial
  200394. for more information.
  200395. .SS Functionality Changes
  200396. .INDENT 0.0
  200397. .IP \(bu 2
  200398. The \fBonfail\fP requisite now uses OR logic instead of AND logic.
  200399. \fI\%issue #22370\fP
  200400. .IP \(bu 2
  200401. The consul external pillar now strips leading and trailing whitespace.
  200402. \fI\%issue #31165\fP
  200403. .IP \(bu 2
  200404. The win_system.py state is now case sensitive for computer names. Previously
  200405. computer names set with a state were converted to all caps. If you have a
  200406. state setting computer names with lower case letters in the name that has
  200407. been applied, the computer name will be changed again to apply the case
  200408. sensitive name.
  200409. .IP \(bu 2
  200410. The \fBmac_user.list_groups\fP function in the \fBmac_user\fP execution module
  200411. now lists all groups for the specified user, including groups beginning with
  200412. an underscore. In previous releases, groups beginning with an underscore were
  200413. excluded from the list of groups.
  200414. .IP \(bu 2
  200415. The \fBjunos.call_rpc\fP function in the \fBjunos\fP execution module can now be used
  200416. to call any valid rpc. Earlier it used to call only "get_software_information".
  200417. .IP \(bu 2
  200418. A new option for minions called \fBmaster_tries\fP has been added. This
  200419. specifies the number of times a minion should attempt to contact a master to
  200420. attempt a connection. This allows better handling of occasional master
  200421. downtime in a multi\-master topology.
  200422. .IP \(bu 2
  200423. The default hash_type is now sha256 instead of md5. You will need to make sure both
  200424. your master and minion share the same hash_type.
  200425. .IP \(bu 2
  200426. Nodegroups consisting of a simple list of minion IDs can now also be declared
  200427. as a yaml list. The below two examples are equivalent:
  200428. .INDENT 2.0
  200429. .INDENT 3.5
  200430. .sp
  200431. .nf
  200432. .ft C
  200433. # Traditional way
  200434. nodegroups:
  200435. \- group1: L@host1,host2,host3
  200436. # New way (optional)
  200437. nodegroups:
  200438. \- group1:
  200439. \- host1
  200440. \- host2
  200441. \- host3
  200442. .ft P
  200443. .fi
  200444. .UNINDENT
  200445. .UNINDENT
  200446. .UNINDENT
  200447. .SS New Azure ARM Cloud Driver
  200448. .sp
  200449. A new cloud driver has been added for Azure ARM, aka, the Azure Resource
  200450. Manager. The older Azure driver is still required to work with the older Azure
  200451. API. This new driver works with the newer ARM API, which is managed via the
  200452. newer Azure Portal website.
  200453. .SS New Modules
  200454. .SS Beacons
  200455. .INDENT 0.0
  200456. .IP \(bu 2
  200457. \fBsalt.beacons.avahi_announce\fP
  200458. .IP \(bu 2
  200459. \fBsalt.beacons.bonjour_announce\fP
  200460. .IP \(bu 2
  200461. \fBsalt.beacons.haproxy\fP
  200462. .IP \(bu 2
  200463. \fBsalt.beacons.status\fP
  200464. .UNINDENT
  200465. .SS Clouds
  200466. .INDENT 0.0
  200467. .IP \(bu 2
  200468. \fBsalt.cloud.clouds.azurearm\fP
  200469. .UNINDENT
  200470. .SS Engines
  200471. .INDENT 0.0
  200472. .IP \(bu 2
  200473. \fBsalt.engines.hipchat\fP
  200474. .IP \(bu 2
  200475. \fBsalt.engines.http_logstash\fP
  200476. .UNINDENT
  200477. .SS Modules
  200478. .INDENT 0.0
  200479. .IP \(bu 2
  200480. \fBsalt.modules.boto_cloudwatch_event\fP
  200481. .IP \(bu 2
  200482. \fBsalt.modules.celery\fP
  200483. .IP \(bu 2
  200484. \fBsalt.modules.ceph\fP
  200485. .IP \(bu 2
  200486. \fBsalt.modules.influx08\fP
  200487. .IP \(bu 2
  200488. \fBsalt.modules.inspectlib.entities\fP
  200489. .IP \(bu 2
  200490. \fBsalt.modules.inspectlib.fsdb\fP
  200491. .IP \(bu 2
  200492. \fBsalt.modules.inspectlib.kiwiproc\fP
  200493. .IP \(bu 2
  200494. \fBsalt.modules.inspector\fP
  200495. .IP \(bu 2
  200496. \fBsalt.modules.libcloud_dns\fP
  200497. .IP \(bu 2
  200498. \fBsalt.modules.openstack_mng\fP
  200499. .IP \(bu 2
  200500. \fBsalt.modules.servicenow\fP
  200501. .IP \(bu 2
  200502. \fBsalt.modules.testinframod\fP
  200503. .IP \(bu 2
  200504. \fBsalt.modules.win_lgpo\fP
  200505. .IP \(bu 2
  200506. \fBsalt.modules.win_pki\fP
  200507. .IP \(bu 2
  200508. \fBsalt.modules.win_psget\fP
  200509. .IP \(bu 2
  200510. \fBsalt.modules.win_snmp\fP
  200511. .IP \(bu 2
  200512. \fBsalt.modules.xbpspkg\fP
  200513. .UNINDENT
  200514. .SS Outputters
  200515. .INDENT 0.0
  200516. .IP \(bu 2
  200517. \fBsalt.output.pony\fP
  200518. .UNINDENT
  200519. .SS Pillar
  200520. .INDENT 0.0
  200521. .IP \(bu 2
  200522. \fBsalt.pillar.csvpillar\fP
  200523. .IP \(bu 2
  200524. \fBsalt.pillar.http_json\fP
  200525. .IP \(bu 2
  200526. \fBsalt.pillar.makostack\fP
  200527. .UNINDENT
  200528. .SS Returners
  200529. .INDENT 0.0
  200530. .IP \(bu 2
  200531. \fBsalt.returners.zabbix_return\fP
  200532. .UNINDENT
  200533. .SS Runners
  200534. .INDENT 0.0
  200535. .IP \(bu 2
  200536. \fBsalt.runners.auth\fP
  200537. .IP \(bu 2
  200538. \fBsalt.runners.event\fP
  200539. .IP \(bu 2
  200540. \fBsalt.runners.smartos_vmadm\fP
  200541. .IP \(bu 2
  200542. \fBsalt.runners.vistara\fP
  200543. .UNINDENT
  200544. .SS SDB
  200545. .INDENT 0.0
  200546. .IP \(bu 2
  200547. \fBsalt.sdb.env\fP
  200548. .UNINDENT
  200549. .SS States
  200550. .INDENT 0.0
  200551. .IP \(bu 2
  200552. \fBsalt.states.boto_cloudwatch_event\fP
  200553. .IP \(bu 2
  200554. \fBsalt.states.csf\fP
  200555. .IP \(bu 2
  200556. \fBsalt.states.ethtool\fP
  200557. .IP \(bu 2
  200558. \fBsalt.states.influxdb08_database\fP
  200559. .IP \(bu 2
  200560. \fBsalt.states.influxdb08_user\fP
  200561. .IP \(bu 2
  200562. \fBsalt.states.libcloud_dns\fP
  200563. .IP \(bu 2
  200564. \fBsalt.states.snapper\fP
  200565. .IP \(bu 2
  200566. \fBsalt.states.testinframod\fP
  200567. .IP \(bu 2
  200568. \fBsalt.states.win_lgpo\fP
  200569. .IP \(bu 2
  200570. \fBsalt.states.win_pki\fP
  200571. .IP \(bu 2
  200572. \fBsalt.states.win_snmp\fP
  200573. .UNINDENT
  200574. .SS Thorium
  200575. .INDENT 0.0
  200576. .IP \(bu 2
  200577. \fBsalt.thorium.calc\fP
  200578. .IP \(bu 2
  200579. \fBsalt.thorium.key\fP
  200580. .IP \(bu 2
  200581. \fBsalt.thorium.runner\fP
  200582. .IP \(bu 2
  200583. \fBsalt.thorium.status\fP
  200584. .IP \(bu 2
  200585. \fBsalt.thorium.wheel\fP
  200586. .UNINDENT
  200587. .SS Deprecations
  200588. .SS General Deprecations
  200589. .INDENT 0.0
  200590. .IP \(bu 2
  200591. \fBenv\fP to \fBsaltenv\fP
  200592. .sp
  200593. All occurrences of \fBenv\fP and some occurrences of \fB__env__\fP marked for
  200594. deprecation in Salt 2016.11.0 have been removed. The new way to use the salt
  200595. environment setting is with a variable called \fBsaltenv\fP:
  200596. .INDENT 2.0
  200597. .INDENT 3.5
  200598. .sp
  200599. .nf
  200600. .ft C
  200601. def fcn(msg=\(aq\(aq, env=\(aqbase\(aq, refresh=True, saltenv=\(aqbase\(aq, **kwargs):
  200602. .ft P
  200603. .fi
  200604. .UNINDENT
  200605. .UNINDENT
  200606. .sp
  200607. has been changed to
  200608. .INDENT 2.0
  200609. .INDENT 3.5
  200610. .sp
  200611. .nf
  200612. .ft C
  200613. def fcn(msg=\(aq\(aq, refresh=True, saltenv=\(aqbase\(aq, **kwargs):
  200614. .ft P
  200615. .fi
  200616. .UNINDENT
  200617. .UNINDENT
  200618. .INDENT 2.0
  200619. .IP \(bu 2
  200620. If \fBenv\fP (or \fB__env__\fP) is supplied as a keyword argument to a function
  200621. that also accepts arbitrary keyword arguments, then a new warning informs the
  200622. user that \fBenv\fP is no longer used if it is found. This new warning will be
  200623. removed in Salt 2017.7.0.
  200624. .INDENT 2.0
  200625. .INDENT 3.5
  200626. .sp
  200627. .nf
  200628. .ft C
  200629. def fcn(msg=\(aq\(aq, refresh=True, saltenv=\(aqbase\(aq, **kwargs):
  200630. .ft P
  200631. .fi
  200632. .UNINDENT
  200633. .UNINDENT
  200634. .INDENT 2.0
  200635. .INDENT 3.5
  200636. .sp
  200637. .nf
  200638. .ft C
  200639. # will result in a warning log message
  200640. fcn(msg=\(aqadd more salt\(aq, env=\(aqprod\(aq, refresh=False)
  200641. .ft P
  200642. .fi
  200643. .UNINDENT
  200644. .UNINDENT
  200645. .IP \(bu 2
  200646. If \fBenv\fP (or \fB__env__\fP) is supplied as a keyword argument to a function
  200647. that does not accept arbitrary keyword arguments, then python will issue an
  200648. error.
  200649. .INDENT 2.0
  200650. .INDENT 3.5
  200651. .sp
  200652. .nf
  200653. .ft C
  200654. def fcn(msg=\(aq\(aq, refresh=True, saltenv=\(aqbase\(aq):
  200655. .ft P
  200656. .fi
  200657. .UNINDENT
  200658. .UNINDENT
  200659. .INDENT 2.0
  200660. .INDENT 3.5
  200661. .sp
  200662. .nf
  200663. .ft C
  200664. # will result in a python TypeError
  200665. fcn(msg=\(aqadd more salt\(aq, env=\(aqprod\(aq, refresh=False)
  200666. .ft P
  200667. .fi
  200668. .UNINDENT
  200669. .UNINDENT
  200670. .IP \(bu 2
  200671. If \fBenv\fP (or \fB__env__\fP) is supplied as a positional argument to a
  200672. function, then undefined behavior will occur, as the removal of \fBenv\fP and
  200673. \fB__env__\fP from the function\(aqs argument list changes the function\(aqs
  200674. signature.
  200675. .INDENT 2.0
  200676. .INDENT 3.5
  200677. .sp
  200678. .nf
  200679. .ft C
  200680. def fcn(msg=\(aq\(aq, refresh=True, saltenv=\(aqbase\(aq):
  200681. .ft P
  200682. .fi
  200683. .UNINDENT
  200684. .UNINDENT
  200685. .INDENT 2.0
  200686. .INDENT 3.5
  200687. .sp
  200688. .nf
  200689. .ft C
  200690. # will result in refresh evaluating to True and saltenv likely not being a string at all
  200691. fcn(\(aqadd more salt\(aq, \(aqprod\(aq, False)
  200692. .ft P
  200693. .fi
  200694. .UNINDENT
  200695. .UNINDENT
  200696. .UNINDENT
  200697. .IP \(bu 2
  200698. Deprecations in \fBminion.py\fP:
  200699. .INDENT 2.0
  200700. .IP \(bu 2
  200701. The \fBsalt.minion.parse_args_and_kwargs\fP function has been removed. Please
  200702. use the \fBsalt.minion.load_args_and_kwargs\fP function instead.
  200703. .UNINDENT
  200704. .UNINDENT
  200705. .SS Cloud Deprecations
  200706. .INDENT 0.0
  200707. .IP \(bu 2
  200708. The \fBvsphere\fP cloud driver has been removed. Please use the \fBvmware\fP cloud driver
  200709. instead.
  200710. .IP \(bu 2
  200711. The \fBprivate_ip\fP option in the \fBlinode\fP cloud driver is deprecated and has been
  200712. removed. Use the \fBassign_private_ip\fP option instead.
  200713. .IP \(bu 2
  200714. The \fBcreate_dns_record\fP and \fBdelete_dns_record\fP functions are deprecated and have
  200715. been removed from the \fBdigital_ocean\fP driver. Use the \fBpost_dns_record\fP function
  200716. instead.
  200717. .UNINDENT
  200718. .SS Execution Module Deprecations
  200719. .INDENT 0.0
  200720. .IP \(bu 2
  200721. The \fBblockdev\fP execution module had four functions removed:
  200722. .INDENT 2.0
  200723. .IP \(bu 2
  200724. dump
  200725. .IP \(bu 2
  200726. tune
  200727. .IP \(bu 2
  200728. resize2fs
  200729. .IP \(bu 2
  200730. wipe
  200731. .UNINDENT
  200732. .sp
  200733. The \fBdisk\fP module should be used instead with the same function names.
  200734. .IP \(bu 2
  200735. The \fBboto_vpc\fP execution module had two functions removed,
  200736. \fBboto_vpc.associate_new_dhcp_options_to_vpc\fP and
  200737. \fBboto_vpc.associate_new_network_acl_to_subnet\fP in favor of more concise function
  200738. names, \fBboto_vpc.create_dhcp_options\fP and \fBboto_vpc.create_network_acl\fP, respectively.
  200739. .IP \(bu 2
  200740. The \fBdata\fP execution module had \fBgetval\fP and \fBgetvals\fP functions removed
  200741. in favor of one function, \fBget\fP, which combines the functionality of the
  200742. removed functions.
  200743. .IP \(bu 2
  200744. File module deprecations:
  200745. .INDENT 2.0
  200746. .IP \(bu 2
  200747. The \fBcontains_regex_multiline\fP function was removed. Use \fBfile.search\fP instead.
  200748. .IP \(bu 2
  200749. Additional command line options for \fBfile.grep\fP should be passed one at a time.
  200750. Please do not pass more than one in a single argument.
  200751. .UNINDENT
  200752. .IP \(bu 2
  200753. The \fBlxc\fP execution module has the following changes:
  200754. .INDENT 2.0
  200755. .IP \(bu 2
  200756. The \fBrun_cmd\fP function was removed. Use \fBlxc.run\fP instead.
  200757. .IP \(bu 2
  200758. The \fBnic\fP argument was removed from the \fBlxc.init\fP function. Use \fBnetwork_profile\fP
  200759. instead.
  200760. .IP \(bu 2
  200761. The \fBclone\fP argument was removed from the \fBlxc.init\fP function. Use \fBclone_from\fP
  200762. instead.
  200763. .IP \(bu 2
  200764. passwords passed to the \fBlxc.init\fP function will be assumed to be hashed, unless
  200765. \fBpassword_encrypted=False\fP\&.
  200766. .IP \(bu 2
  200767. The \fBrestart\fP argument for \fBlxc.start\fP was removed. Use \fBlxc.restart\fP instead.
  200768. .IP \(bu 2
  200769. The old style of defining lxc containers has been removed. Please use keys under which
  200770. LXC profiles should be configured such as \fBlxc.container_profile.profile_name\fP\&.
  200771. .UNINDENT
  200772. .IP \(bu 2
  200773. The \fBenv\fP and \fBactivate\fP keyword arguments have been removed from the \fBinstall\fP
  200774. function in the \fBpip\fP execution module. The use of \fBbin_env\fP replaces both of these
  200775. options.
  200776. .IP \(bu 2
  200777. \fBreg\fP execution module
  200778. .sp
  200779. Functions in the \fBreg\fP execution module had misleading and confusing names
  200780. for dealing with the Windows registry. They failed to clearly differentiate
  200781. between hives, keys, and name/value pairs. Keys were treated like value names.
  200782. There was no way to delete a key.
  200783. .sp
  200784. New functions were added in 2015.5 to properly work with the registry. They
  200785. also made it possible to edit key default values as well as delete an entire
  200786. key tree recursively. With the new functions in place, the following functions
  200787. have been deprecated:
  200788. .INDENT 2.0
  200789. .IP \(bu 2
  200790. read_key
  200791. .IP \(bu 2
  200792. set_key
  200793. .IP \(bu 2
  200794. create_key
  200795. .IP \(bu 2
  200796. delete_key
  200797. .UNINDENT
  200798. .sp
  200799. Use the following functions instead:
  200800. .INDENT 2.0
  200801. .IP \(bu 2
  200802. for \fBread_key\fP use \fBread_value\fP
  200803. .IP \(bu 2
  200804. for \fBset_key\fP use \fBset_value\fP
  200805. .IP \(bu 2
  200806. for \fBcreate_key\fP use \fBset_value\fP with no \fBvname\fP and no \fBvdata\fP
  200807. .IP \(bu 2
  200808. for \fBdelete_key\fP use \fBdelete_key_recursive\fP\&. To delete a value, use
  200809. \fBdelete_value\fP\&.
  200810. .UNINDENT
  200811. .IP \(bu 2
  200812. The \fBhash_hostname\fP option was removed from the \fBsalt.modules.ssh\fP execution
  200813. module. The \fBhash_known_hosts\fP option should be used instead.
  200814. .IP \(bu 2
  200815. The \fBhuman_readable\fP option was removed from the \fBuptime\fP function in the
  200816. \fBstatus\fP execution module. The function was also updated in 2015.8.9 to return
  200817. a more complete offering of uptime information, formatted as an easy\-to\-read
  200818. dictionary. This updated function replaces the need for the \fBhuman_readable\fP
  200819. option.
  200820. .IP \(bu 2
  200821. The \fBpersist\fP kwarg was removed from the \fBwin_useradd\fP execution module. This
  200822. option is no longer supported for Windows. \fBpersist\fP is only supported as part
  200823. of user management in UNIX/Linux.
  200824. .IP \(bu 2
  200825. The \fBzpool_list\fP function in the \fBzpool\fP execution module was removed. Use \fBlist\fP
  200826. instead.
  200827. .UNINDENT
  200828. .SS Outputter Module Deprecations
  200829. .INDENT 0.0
  200830. .IP \(bu 2
  200831. The \fBcompact\fP outputter has been removed. Set \fBstate_verbose\fP to \fBFalse\fP instead.
  200832. .UNINDENT
  200833. .SS Runner Module Deprecations
  200834. .INDENT 0.0
  200835. .IP \(bu 2
  200836. The \fBgrains.cache\fP runner no longer accepts \fBoutputter\fP or \fBminion\fP as keyword arguments.
  200837. Users will need to specify an outputter using the \fB\-\-out\fP option. \fBtgt\fP is
  200838. replacing the \fBminion\fP kwarg.
  200839. .IP \(bu 2
  200840. The \fBfileserver\fP runner no longer accepts the \fBoutputter\fP keyword argument. Users will
  200841. need to specify an outputter using the \fB\-\-out\fP option.
  200842. .IP \(bu 2
  200843. The \fBjobs\fP runner no longer accepts the \fBoutputter\fP keyword argument. Users will need to
  200844. specify an outputter using the \fB\-\-out\fP option.
  200845. .IP \(bu 2
  200846. \fBvirt\fP runner module:
  200847. .INDENT 2.0
  200848. .IP \(bu 2
  200849. The \fBhyper\fP kwarg was removed from the \fBinit\fP, \fBlist\fP, and \fBquery\fP functions.
  200850. Use the \fBhost\fP option instead.
  200851. .IP \(bu 2
  200852. The \fBnext_hyper\fP function was removed. Use the \fBnext_host\fP function instead.
  200853. .IP \(bu 2
  200854. The \fBhyper_info\fP function was removed. Use the \fBhost_info\fP function instead.
  200855. .UNINDENT
  200856. .UNINDENT
  200857. .SS State Module Deprecations
  200858. .INDENT 0.0
  200859. .IP \(bu 2
  200860. The \fBenv\fP and \fBactivate\fP keyword arguments were removed from the \fBinstalled\fP
  200861. function in the \fBpip\fP state module. The use of \fBbin_env\fP replaces both of these
  200862. options.
  200863. .IP \(bu 2
  200864. \fBreg\fP state module
  200865. .sp
  200866. The \fBreg\fP state module was modified to work with the new functions in the
  200867. execution module. Some logic was left in the \fBreg.present\fP and the
  200868. \fBreg.absent\fP functions to handle existing state files that used the final
  200869. key in the name as the value name. That logic has been removed so you now must
  200870. specify value name (\fBvname\fP) and, if needed, value data (\fBvdata\fP).
  200871. .sp
  200872. For example, a state file that adds the version value/data pair to the
  200873. Software\eSalt key in the HKEY_LOCAL_MACHINE hive used to look like this:
  200874. .INDENT 2.0
  200875. .INDENT 3.5
  200876. .sp
  200877. .nf
  200878. .ft C
  200879. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt\e\eversion:
  200880. reg.present:
  200881. \- value: 2016.3.1
  200882. .ft P
  200883. .fi
  200884. .UNINDENT
  200885. .UNINDENT
  200886. .sp
  200887. Now it should look like this:
  200888. .INDENT 2.0
  200889. .INDENT 3.5
  200890. .sp
  200891. .nf
  200892. .ft C
  200893. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt
  200894. reg.present:
  200895. \- vname: version
  200896. \- vdata: 2016.3.1
  200897. .ft P
  200898. .fi
  200899. .UNINDENT
  200900. .UNINDENT
  200901. .sp
  200902. A state file for removing the same value added above would have looked like
  200903. this:
  200904. .INDENT 2.0
  200905. .INDENT 3.5
  200906. .sp
  200907. .nf
  200908. .ft C
  200909. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt\e\eversion:
  200910. reg.absent:
  200911. .ft P
  200912. .fi
  200913. .UNINDENT
  200914. .UNINDENT
  200915. .sp
  200916. Now it should look like this:
  200917. .INDENT 2.0
  200918. .INDENT 3.5
  200919. .sp
  200920. .nf
  200921. .ft C
  200922. HKEY_LOCAL_MACHINE\e\eSoftware\e\eSalt
  200923. reg.absent:
  200924. \- vname: version
  200925. .ft P
  200926. .fi
  200927. .UNINDENT
  200928. .UNINDENT
  200929. .sp
  200930. This new structure is important as it allows salt to deal with key default
  200931. values which was not possible before. If vname is not passed, salt will work
  200932. with the default value for that hivekey.
  200933. .sp
  200934. Additionally, since you could only delete a value from a the state module, a
  200935. new function (\fBkey_absent\fP) has been added to allow you to delete a registry
  200936. key and all subkeys and name/value pairs recursively. It uses the new
  200937. \fBdelete_key_recursive\fP function.
  200938. .sp
  200939. For additional information see the documentation for the \fBreg\fP execution and
  200940. state modules.
  200941. .IP \(bu 2
  200942. \fBlxc\fP state module: The following functions were removed from the \fBlxc\fP state
  200943. module:
  200944. .INDENT 2.0
  200945. .IP \(bu 2
  200946. \fBcreated\fP: replaced by the \fBpresent\fP state.
  200947. .IP \(bu 2
  200948. \fBstarted\fP: replaced by the \fBrunning\fP state.
  200949. .IP \(bu 2
  200950. \fBcloned\fP: replaced by the \fBpresent\fP state. Use the \fBclone_from\fP argument
  200951. to set the name of the clone source.
  200952. .UNINDENT
  200953. .IP \(bu 2
  200954. The \fBhash_hostname\fP option was removed from the \fBsalt.states.ssh_known_hosts\fP
  200955. state. The \fBhash_known_hosts\fP option should be used instead.
  200956. .IP \(bu 2
  200957. The \fBalways\fP kwarg used in the \fBbuilt\fP function of the \fBpkgbuild\fP state module
  200958. was removed. Use \fBforce\fP instead.
  200959. .UNINDENT
  200960. .SS Utils Module Deprecations
  200961. .INDENT 0.0
  200962. .IP \(bu 2
  200963. The use of \fBjid_dir\fP and \fBjid_load\fP were removed from the
  200964. \fBsalt.utils.jid\fP\&. \fBjid_dir\fP functionality for job_cache management was moved to
  200965. the \fBlocal_cache\fP returner. \fBjid_load\fP data is now retrieved from the
  200966. \fBmaster_job_cache\fP\&.
  200967. .IP \(bu 2
  200968. \fBip_in_subnet\fP function in \fBsalt.utils.network.py\fP has been removed. Use the
  200969. \fBin_subnet\fP function instead.
  200970. .IP \(bu 2
  200971. The \fBiam\fP utils module had two functions removed: \fBsalt.utils.iam.get_iam_region\fP
  200972. and \fBsalt.utils.iam.get_iam_metadata\fP in favor of the aws utils functions
  200973. \fBsalt.utils.aws.get_region_from_metadata\fP and \fBsalt.utils.aws.creds\fP, respectively.
  200974. .UNINDENT
  200975. .SS Salt 2016.11.1 Release Notes
  200976. .sp
  200977. Version 2016.11.1 is a bugfix release for 2016.11.0\&.
  200978. .SS Statistics
  200979. .INDENT 0.0
  200980. .IP \(bu 2
  200981. Total Merges: \fB89\fP
  200982. .IP \(bu 2
  200983. Total Issue References: \fB29\fP
  200984. .IP \(bu 2
  200985. Total PR References: \fB83\fP
  200986. .IP \(bu 2
  200987. Contributors: \fB30\fP (\fI\%Ch3LL\fP, \fI\%Da\-Juan\fP, \fI\%DmitryKuzmenko\fP, \fI\%MTecknology\fP, \fI\%adelcast\fP, \fI\%attiasr\fP, \fI\%bbinet\fP, \fI\%cachedout\fP, \fI\%cro\fP, \fI\%dmurphy18\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jeanpralo\fP, \fI\%kraney\fP, \fI\%kstreee\fP, \fI\%lorengordon\fP, \fI\%mateiw\fP, \fI\%mirceaulinic\fP, \fI\%morsik\fP, \fI\%mschneider82\fP, \fI\%rallytime\fP, \fI\%rbjorklin\fP, \fI\%scott\-w\fP, \fI\%sjorge\fP, \fI\%skizunov\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%ticosax\fP, \fI\%whiteinge\fP)
  200988. .UNINDENT
  200989. .SS Changelog for v2016.11.0..v2016.11.1
  200990. .sp
  200991. \fIGenerated at: 2018\-05\-27 14:25:03 UTC\fP
  200992. .INDENT 0.0
  200993. .IP \(bu 2
  200994. \fBPR\fP \fI\%#38186\fP: (\fI\%Ch3LL\fP) add 2016.11.1 changelog to release notes
  200995. .IP \(bu 2
  200996. \fBPR\fP \fI\%#38182\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  200997. @ \fI2016\-12\-09 21:25:47 UTC\fP
  200998. .INDENT 2.0
  200999. .IP \(bu 2
  201000. 23c039347e Merge pull request \fI\%#38182\fP from rallytime/merge\-2016.11
  201001. .IP \(bu 2
  201002. 627242ab5d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201003. .INDENT 2.0
  201004. .IP \(bu 2
  201005. 65b2ad7b14 Merge pull request \fI\%#38163\fP from Ch3LL/enabled_ec2_cloud
  201006. .INDENT 2.0
  201007. .IP \(bu 2
  201008. be74c45463 enabled ec2 cloud tests
  201009. .UNINDENT
  201010. .IP \(bu 2
  201011. b63f74e034 Merge pull request \fI\%#38177\fP from vutny/fix\-cp\-get\-file\-str
  201012. .INDENT 2.0
  201013. .IP \(bu 2
  201014. a449980672 Correct \fIcp.get_file_str\fP docstring and add integration tests
  201015. .UNINDENT
  201016. .IP \(bu 2
  201017. 7596313be0 Merge pull request \fI\%#38153\fP from vutny/master\-includes\-error\-tolerance
  201018. .INDENT 2.0
  201019. .IP \(bu 2
  201020. cd0154ee93 Master config includes may contain errors and be safely skipped
  201021. .UNINDENT
  201022. .UNINDENT
  201023. .UNINDENT
  201024. .IP \(bu 2
  201025. \fBISSUE\fP \fI\%#38094\fP: (\fI\%bfilipek\fP) TypeError: object of type \(aqfloat\(aq has no len() in grains.filter_by (refs: \fI\%#38158\fP)
  201026. .IP \(bu 2
  201027. \fBPR\fP \fI\%#38158\fP: (\fI\%cachedout\fP) Fix type problem in grains.filter_by
  201028. @ \fI2016\-12\-09 21:24:40 UTC\fP
  201029. .INDENT 2.0
  201030. .IP \(bu 2
  201031. 8355adc535 Merge pull request \fI\%#38158\fP from cachedout/issue_38094
  201032. .IP \(bu 2
  201033. e8196e23c2 Lint, remove set literal
  201034. .IP \(bu 2
  201035. 9f4ebb3c18 Fix type problem in grains.filter_by
  201036. .UNINDENT
  201037. .IP \(bu 2
  201038. \fBISSUE\fP \fI\%#38090\fP: (\fI\%jf\fP) pkg.installed does not seem to refresh the repo database, no matter what (refs: \fI\%#38113\fP, \fI\%#38156\fP)
  201039. .IP \(bu 2
  201040. \fBPR\fP \fI\%#38156\fP: (\fI\%terminalmage\fP) Remove rtag when windows minion refreshes early in state
  201041. @ \fI2016\-12\-09 21:15:01 UTC\fP
  201042. .INDENT 2.0
  201043. .IP \(bu 2
  201044. 31a157d902 Merge pull request \fI\%#38156\fP from terminalmage/fix\-windows\-refresh
  201045. .IP \(bu 2
  201046. 258bd4c2aa Remove rtag when windows minion refreshes early in state
  201047. .UNINDENT
  201048. .IP \(bu 2
  201049. \fBISSUE\fP \fI\%#37981\fP: (\fI\%tazaki\fP) Salt\-cloud ec2 vpc securitygroupid always returning default (refs: \fI\%#38183\fP)
  201050. .IP \(bu 2
  201051. \fBPR\fP \fI\%#38183\fP: (\fI\%cro\fP) Fix bad set operations when setting up securitygroups in AWS.
  201052. @ \fI2016\-12\-09 21:12:10 UTC\fP
  201053. .INDENT 2.0
  201054. .IP \(bu 2
  201055. c638952684 Merge pull request \fI\%#38183\fP from cro/fix_37891
  201056. .IP \(bu 2
  201057. 0527d6f25e Fix bad set operations when setting up securitygroups in AWS. Fixes \fI\%#37891\fP\&.
  201058. .IP \(bu 2
  201059. \fBPR\fP \fI\%#38181\fP: (\fI\%rallytime\fP) Reset socket default timeout to None (fixes daemons_tests failures)
  201060. .UNINDENT
  201061. .IP \(bu 2
  201062. \fBPR\fP \fI\%#38148\fP: (\fI\%whiteinge\fP) Remove ssh_async from NetapiClient clients; it is not implemented
  201063. @ \fI2016\-12\-09 18:49:42 UTC\fP
  201064. .INDENT 2.0
  201065. .IP \(bu 2
  201066. 7ccbedd2cc Merge pull request \fI\%#38148\fP from whiteinge/no\-ssh\-async\-client
  201067. .IP \(bu 2
  201068. cb58cd4795 Remove ssh_async from NetapiClient clients; it is not implemented
  201069. .UNINDENT
  201070. .IP \(bu 2
  201071. \fBPR\fP \fI\%#38160\fP: (\fI\%terminalmage\fP) Update information about xz\-utils in archive state/module docs
  201072. @ \fI2016\-12\-09 18:34:03 UTC\fP
  201073. .INDENT 2.0
  201074. .IP \(bu 2
  201075. 8d4e194400 Merge pull request \fI\%#38160\fP from terminalmage/update\-archive\-docs
  201076. .IP \(bu 2
  201077. 8e4ad3cff3 Update information about xz\-utils in archive state/module docs
  201078. .UNINDENT
  201079. .IP \(bu 2
  201080. \fBISSUE\fP \fI\%#38024\fP: (\fI\%Ch3LL\fP) 2016.11.0 release notes missing azure arm reference (refs: \fI\%#38164\fP)
  201081. .IP \(bu 2
  201082. \fBPR\fP \fI\%#38164\fP: (\fI\%techhat\fP) Add Azure ARM docs for 2016.11.0
  201083. @ \fI2016\-12\-09 18:00:22 UTC\fP
  201084. .INDENT 2.0
  201085. .IP \(bu 2
  201086. 05136f0d8c Merge pull request \fI\%#38164\fP from techhat/azuredocs
  201087. .IP \(bu 2
  201088. 71b787e250 Add Azure ARM docs for 2016.11.0
  201089. .UNINDENT
  201090. .IP \(bu 2
  201091. \fBPR\fP \fI\%#38173\fP: (\fI\%rallytime\fP) Bump some win* module deprecations from Nitrogen to Oxygen
  201092. @ \fI2016\-12\-09 16:57:29 UTC\fP
  201093. .INDENT 2.0
  201094. .IP \(bu 2
  201095. e3c858cc28 Merge pull request \fI\%#38173\fP from rallytime/update\-win\-deprecation\-versions
  201096. .IP \(bu 2
  201097. 09a50b25e7 Bump some win* module deprecations from Nitrogen to Oxygen
  201098. .UNINDENT
  201099. .IP \(bu 2
  201100. \fBPR\fP \fI\%#38036\fP: (\fI\%terminalmage\fP) archive.extracted: fix problems with overwrite arg
  201101. @ \fI2016\-12\-08 19:08:41 UTC\fP
  201102. .INDENT 2.0
  201103. .IP \(bu 2
  201104. \fBPR\fP \fI\%#37889\fP: (\fI\%isbm\fP) Allow overwrite archives extraction (refs: \fI\%#38036\fP)
  201105. .IP \(bu 2
  201106. 827bf59999 Merge pull request \fI\%#38036\fP from terminalmage/archive\-extracted\-override
  201107. .IP \(bu 2
  201108. a1c70c7b95 archive.extracted: fix problems with overwrite arg
  201109. .UNINDENT
  201110. .IP \(bu 2
  201111. \fBPR\fP \fI\%#38133\fP: (\fI\%terminalmage\fP) Fix edge case in creation of trans tar for salt\-thin
  201112. @ \fI2016\-12\-08 17:47:26 UTC\fP
  201113. .INDENT 2.0
  201114. .IP \(bu 2
  201115. 50773a5f96 Merge pull request \fI\%#38133\fP from terminalmage/zd1067
  201116. .IP \(bu 2
  201117. 71e0bd023f Fix edge case in creation of trans tar for salt\-thin
  201118. .UNINDENT
  201119. .IP \(bu 2
  201120. \fBPR\fP \fI\%#38138\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201121. @ \fI2016\-12\-07 20:15:56 UTC\fP
  201122. .INDENT 2.0
  201123. .IP \(bu 2
  201124. 6026cb23b2 Merge pull request \fI\%#38138\fP from rallytime/merge\-2016.11
  201125. .IP \(bu 2
  201126. 28b56ea3b4 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201127. .IP \(bu 2
  201128. 86091db647 Skip daemon unit tests when running on Python 2.6 (\fI\%#38134\fP)
  201129. .UNINDENT
  201130. .IP \(bu 2
  201131. \fBPR\fP \fI\%#38130\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201132. @ \fI2016\-12\-07 20:11:19 UTC\fP
  201133. .INDENT 2.0
  201134. .IP \(bu 2
  201135. 90478ef25e Merge pull request \fI\%#38130\fP from rallytime/merge\-2016.11
  201136. .IP \(bu 2
  201137. 4d7d9abb41 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201138. .INDENT 2.0
  201139. .IP \(bu 2
  201140. d3d98fd4eb Merge pull request \fI\%#38102\fP from rallytime/fix\-38091
  201141. .INDENT 2.0
  201142. .IP \(bu 2
  201143. 4f79d5a0d1 Add False + msg tuple return if requests is missing for zenoss module
  201144. .UNINDENT
  201145. .IP \(bu 2
  201146. 8c8cbc2734 Merge pull request \fI\%#38104\fP from rallytime/bp\-36794
  201147. .INDENT 2.0
  201148. .IP \(bu 2
  201149. c906c8a0d5 Pylint fixes
  201150. .IP \(bu 2
  201151. da3ebf83e6 FreeBSD sysctl module now handels config_file parameter in show method
  201152. .UNINDENT
  201153. .UNINDENT
  201154. .IP \(bu 2
  201155. \fBPR\fP \fI\%#38129\fP: (\fI\%Ch3LL\fP) Fix beacon index
  201156. .IP \(bu 2
  201157. \fBPR\fP \fI\%#38127\fP: (\fI\%rallytime\fP) Add versionadded tags for network module funcs
  201158. .UNINDENT
  201159. .IP \(bu 2
  201160. \fBISSUE\fP \fI\%#38042\fP: (\fI\%MTecknology\fP) [2016.11.0] Invalid interfaces file produced by debian_ip module (refs: \fI\%#38043\fP)
  201161. .IP \(bu 2
  201162. \fBPR\fP \fI\%#38043\fP: (\fI\%MTecknology\fP) Debian networking fix
  201163. @ \fI2016\-12\-07 17:32:18 UTC\fP
  201164. .INDENT 2.0
  201165. .IP \(bu 2
  201166. fd06bab673 Merge pull request \fI\%#38043\fP from MTecknology/2016.11
  201167. .IP \(bu 2
  201168. 6d5e132e44 Removing trailing whitespace from previous commit
  201169. .IP \(bu 2
  201170. f882674acf Adding some options that are valid for inet6 blocks.
  201171. .IP \(bu 2
  201172. 81cb688d4c Better check for dual stack.
  201173. .IP \(bu 2
  201174. 525c746274 May Cthulhu take mercy on my soul for this commit.
  201175. .IP \(bu 2
  201176. 300ca6047e I guess this makes the previous commit a bit redundant, but I\(aqm not sure if I want to remove it.
  201177. .IP \(bu 2
  201178. 6e7fc39c68 This now seems absurdly obvious, but I\(aqm not ruling out that I\(aqll break everything.
  201179. .IP \(bu 2
  201180. 82d2b89e0c Rolling back unit test.
  201181. .IP \(bu 2
  201182. b3edbcfd05 Adding larger and more complete debian_ip unit test.
  201183. .IP \(bu 2
  201184. 3afd7b6cf4 Adding the valid/documented \(aqslaves\(aq option.
  201185. .IP \(bu 2
  201186. b6b1adc091 Typo: missing closing parenthesis
  201187. .IP \(bu 2
  201188. 756e41caf2 Fixing a typo; line should not be commented
  201189. .IP \(bu 2
  201190. 32a1374748 Corrects expected return value
  201191. .IP \(bu 2
  201192. 88f9d9f22c Mostly whitespace & comment changes
  201193. .IP \(bu 2
  201194. 41ffb8d805 Removing redundant line
  201195. .IP \(bu 2
  201196. 3a8168667b Ensure iface_dict not being populated will not produce a stacktrace
  201197. .IP \(bu 2
  201198. 4de2cb2805 Corrects regression in debian_ip/debian_eth.jinja
  201199. .UNINDENT
  201200. .IP \(bu 2
  201201. \fBPR\fP \fI\%#38107\fP: (\fI\%cachedout\fP) Status beacon should raise proper exception
  201202. @ \fI2016\-12\-07 17:21:49 UTC\fP
  201203. .INDENT 2.0
  201204. .IP \(bu 2
  201205. \fBPR\fP \fI\%#38088\fP: (\fI\%dmurphy18\fP) Updated to match formulas and allow for missing functions (refs: \fI\%#38107\fP)
  201206. .IP \(bu 2
  201207. 4b9a7f2295 Merge pull request \fI\%#38107\fP from cachedout/supercede_38088
  201208. .IP \(bu 2
  201209. 73d724845d Change to log.debug per Tom
  201210. .IP \(bu 2
  201211. da135b1b59 Fix docs
  201212. .IP \(bu 2
  201213. 792b422dc2 Pylint fix
  201214. .IP \(bu 2
  201215. 88e03bba6d Fix typo
  201216. .IP \(bu 2
  201217. a8ce153252 Status beacon should raise proper exception
  201218. .UNINDENT
  201219. .IP \(bu 2
  201220. \fBPR\fP \fI\%#38101\fP: (\fI\%lorengordon\fP) Clarifies file.replace behavior on symlinks
  201221. @ \fI2016\-12\-07 13:27:11 UTC\fP
  201222. .INDENT 2.0
  201223. .IP \(bu 2
  201224. da8f5ac0c6 Merge pull request \fI\%#38101\fP from lorengordon/file\-replace\-note
  201225. .IP \(bu 2
  201226. 345990f2b0 Clarifies file.replace behavior on symlinks
  201227. .UNINDENT
  201228. .IP \(bu 2
  201229. \fBISSUE\fP \fI\%#38090\fP: (\fI\%jf\fP) pkg.installed does not seem to refresh the repo database, no matter what (refs: \fI\%#38113\fP, \fI\%#38156\fP)
  201230. .IP \(bu 2
  201231. \fBPR\fP \fI\%#38113\fP: (\fI\%terminalmage\fP) Revert changes to refresh tag for pkg states
  201232. @ \fI2016\-12\-07 13:11:14 UTC\fP
  201233. .INDENT 2.0
  201234. .IP \(bu 2
  201235. d47761f349 Merge pull request \fI\%#38113\fP from terminalmage/issue38090
  201236. .IP \(bu 2
  201237. 9f347df012 Revert changes to refresh tag for pkg states
  201238. .UNINDENT
  201239. .IP \(bu 2
  201240. \fBISSUE\fP \fI\%#37976\fP: (\fI\%t0nyhays\fP) Error when status beacon fires (2016.11.0) (refs: \fI\%#38120\fP)
  201241. .IP \(bu 2
  201242. \fBPR\fP \fI\%#38120\fP: (\fI\%Da\-Juan\fP) Fix status beacon config default values
  201243. @ \fI2016\-12\-07 13:08:33 UTC\fP
  201244. .INDENT 2.0
  201245. .IP \(bu 2
  201246. d4c34e0a58 Merge pull request \fI\%#38120\fP from Da\-Juan/2016.11
  201247. .IP \(bu 2
  201248. 7e4a35e8ad Fix status beacon config default values
  201249. .UNINDENT
  201250. .IP \(bu 2
  201251. \fBPR\fP \fI\%#38114\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201252. @ \fI2016\-12\-07 12:45:04 UTC\fP
  201253. .INDENT 2.0
  201254. .IP \(bu 2
  201255. 6868089a87 Merge pull request \fI\%#38114\fP from rallytime/merge\-2016.11
  201256. .IP \(bu 2
  201257. fec9dec23a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201258. .INDENT 2.0
  201259. .IP \(bu 2
  201260. fbc87769b9 Merge pull request \fI\%#38083\fP from twangboy/fix_refresh_db
  201261. .INDENT 2.0
  201262. .IP \(bu 2
  201263. 978af6d83c Remove only .sls files from the cached winrepo\-ng
  201264. .UNINDENT
  201265. .IP \(bu 2
  201266. 9dcfdeef6b Merge pull request \fI\%#38059\fP from rallytime/daemons\-test\-fix
  201267. .INDENT 2.0
  201268. .IP \(bu 2
  201269. eb372b27d8 Add missing "not" statement: The last syndic test should assertFalse()
  201270. .IP \(bu 2
  201271. 4e10f8e018 Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  201272. .UNINDENT
  201273. .IP \(bu 2
  201274. 9cd42b9b3f Merge pull request \fI\%#38039\fP from rallytime/fix\-37939
  201275. .INDENT 2.0
  201276. .IP \(bu 2
  201277. 1da7aacfbe Update unit tests to account for additional file.search call
  201278. .IP \(bu 2
  201279. 8a685b1820 Check to see if a line is already commented before moving on
  201280. .IP \(bu 2
  201281. f2c045520d Write an integration test demonstrating the issue
  201282. .UNINDENT
  201283. .IP \(bu 2
  201284. a34a763984 Merge pull request \fI\%#38045\fP from terminalmage/issue38037
  201285. .INDENT 2.0
  201286. .IP \(bu 2
  201287. 65289503d9 Simplify logic for matching desired pkg arch with actual pkg arch
  201288. .IP \(bu 2
  201289. 3babbcda94 yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  201290. .UNINDENT
  201291. .UNINDENT
  201292. .UNINDENT
  201293. .IP \(bu 2
  201294. \fBPR\fP \fI\%#38109\fP: (\fI\%gtmanfred\fP) mode needs to be an integer
  201295. @ \fI2016\-12\-07 11:58:24 UTC\fP
  201296. .INDENT 2.0
  201297. .IP \(bu 2
  201298. b9920e54ee Merge pull request \fI\%#38109\fP from gtmanfred/2016.11
  201299. .IP \(bu 2
  201300. 7546760eb3 mode needs to be an integer
  201301. .UNINDENT
  201302. .IP \(bu 2
  201303. \fBPR\fP \fI\%#38103\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37283\fP to 2016.11
  201304. @ \fI2016\-12\-06 23:12:59 UTC\fP
  201305. .INDENT 2.0
  201306. .IP \(bu 2
  201307. \fBPR\fP \fI\%#37283\fP: (\fI\%jeanpralo\fP) Handle docker\-compose up to version 1.9.0 (refs: \fI\%#38103\fP)
  201308. .IP \(bu 2
  201309. \fBPR\fP \fI\%#37215\fP: (\fI\%mschneider82\fP) removed version check (refs: \fI\%#37283\fP)
  201310. .IP \(bu 2
  201311. fd77dcbd0f Merge pull request \fI\%#38103\fP from rallytime/bp\-37283
  201312. .IP \(bu 2
  201313. 11944df69b handle up to version 1.9.0
  201314. .UNINDENT
  201315. .IP \(bu 2
  201316. \fBPR\fP \fI\%#38057\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38059\fP)
  201317. @ \fI2016\-12\-06 23:11:41 UTC\fP
  201318. .INDENT 2.0
  201319. .IP \(bu 2
  201320. 5d9d6b9280 Merge pull request \fI\%#38057\fP from rallytime/merge\-2016.11
  201321. .IP \(bu 2
  201322. 342884018b Fix SaltKeyOptionParserTestCase test failures
  201323. .IP \(bu 2
  201324. 186e2d0d03 Don\(aqt allow libcloud mock module injection in unit/states/libcloud_dns_test.py either
  201325. .IP \(bu 2
  201326. d513a60189 Do not allow libcloud to be injected as a mock value in the libcloud_dns_test
  201327. .IP \(bu 2
  201328. 74a417e527 Update the mocked cloud configs to also include master configs
  201329. .IP \(bu 2
  201330. f2c8cb13d0 Better merge conflict resolution from the initial merge
  201331. .IP \(bu 2
  201332. 8fd53a4808 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201333. .INDENT 2.0
  201334. .IP \(bu 2
  201335. 6724fe4871 Modify daemons test to use multiprocessing (\fI\%#38034\fP)
  201336. .IP \(bu 2
  201337. 6942d5d95b Merge pull request \fI\%#37995\fP from rallytime/merge\-2016.3
  201338. .INDENT 2.0
  201339. .IP \(bu 2
  201340. b44e17921c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  201341. .INDENT 2.0
  201342. .IP \(bu 2
  201343. 7a7e36728f Merge pull request \fI\%#37978\fP from terminalmage/ext_pillar_first\-docs
  201344. .INDENT 2.0
  201345. .IP \(bu 2
  201346. 61ed9a8657 Add clarifying language to ext_pillar_first docs
  201347. .UNINDENT
  201348. .UNINDENT
  201349. .UNINDENT
  201350. .IP \(bu 2
  201351. cd66c179cb fix broken yaml code block (\fI\%#38002\fP)
  201352. .IP \(bu 2
  201353. 3dd45fbedf Merge pull request \fI\%#37912\fP from attiasr/fix_aws_response_encoding
  201354. .INDENT 2.0
  201355. .IP \(bu 2
  201356. ba4ec4e7f1 use Requests result encoding to encode the text
  201357. .IP \(bu 2
  201358. abe4eb3b98 fix encoding problem aws responses
  201359. .UNINDENT
  201360. .IP \(bu 2
  201361. 69a74a4d2d Merge pull request \fI\%#37950\fP from vutny/fix\-starting\-up\-syndic
  201362. .INDENT 2.0
  201363. .IP \(bu 2
  201364. 7d9bc9abce syndic_master: correct default value, documentation and example config
  201365. .IP \(bu 2
  201366. 92a7c7ed1b Set default Salt Master address for a Syndic (like for a Minion)
  201367. .UNINDENT
  201368. .IP \(bu 2
  201369. 7f269bc7f9 Add clarification on expr_form usage and future deprecation (\fI\%#37964\fP)
  201370. .IP \(bu 2
  201371. 1001987f64 Catch possible exception from lsb_release (\fI\%#37962\fP)
  201372. .IP \(bu 2
  201373. 330021cd8b Handle empty tokens safely (\fI\%#37961\fP)
  201374. .IP \(bu 2
  201375. ea46639ce7 Merge pull request \fI\%#37272\fP from vutny/fix\-getting\-default\-logging\-opts
  201376. .INDENT 2.0
  201377. .IP \(bu 2
  201378. e5ce52388a Fix description in the Salt Syndic usage info
  201379. .IP \(bu 2
  201380. 518a3dd7ee Add unit tests for Salt parsers processing logging options
  201381. .IP \(bu 2
  201382. 83d6a44254 Add \fIssh_log_file\fP option to master config and documentation
  201383. .IP \(bu 2
  201384. c8a0915460 Fix configuration example and documentation for \fIsyndic_log_file\fP option
  201385. .IP \(bu 2
  201386. e64dd3ed6b Correct default attributes for various parser classes
  201387. .IP \(bu 2
  201388. 82a2e216b3 Fix default usage string for Salt command line programs
  201389. .IP \(bu 2
  201390. 45dffa292f Fix readding and updating logfile and pidfile config options for Salt API
  201391. .IP \(bu 2
  201392. f47253c21b Fix reading and applying Salt Cloud default configuration
  201393. .IP \(bu 2
  201394. fad5bec936 Work with a copy of default opts dictionaries
  201395. .IP \(bu 2
  201396. b7c24811e5 Fix \fIlog_level_logfile\fP config value type
  201397. .IP \(bu 2
  201398. 1bd76a1d96 Fix setting temporary log level if CLI option omitted
  201399. .IP \(bu 2
  201400. 121848cc77 Fix obtaining \fIlog_granular_levels\fP config setting
  201401. .IP \(bu 2
  201402. 44cf07fec2 Make CLI options take precedence for setting up logfile_logger
  201403. .IP \(bu 2
  201404. 61afaf1792 Fix setting option attributes when processing \fIlog_level\fP and \fIlog_file\fP
  201405. .IP \(bu 2
  201406. 3c60e2388e Fix processing of \fIlog_level_logfile\fP config setting
  201407. .IP \(bu 2
  201408. 55a0af5bbd Use attribute functions for getting/setting options and config values
  201409. .IP \(bu 2
  201410. c25f2d091e Fix getting Salt API default logfile option
  201411. .IP \(bu 2
  201412. f2422373c1 Remove processing of unused and undocumented \fIcli_*_log_*\fP config options
  201413. .IP \(bu 2
  201414. 2065e8311c Get default logging level and file from default opts dict
  201415. .UNINDENT
  201416. .IP \(bu 2
  201417. f2f957da6c Merge pull request \fI\%#37925\fP from kontrolld/add\-ipv6\-centos\-network
  201418. .INDENT 2.0
  201419. .IP \(bu 2
  201420. ac2b477412 Adding IPv6 functionality for CentOS /etc/sysconfig/network
  201421. .UNINDENT
  201422. .IP \(bu 2
  201423. c07ad11279 Merge pull request \fI\%#37899\fP from DSRCorporation/bugs/37059_schedule_task_hang
  201424. .INDENT 2.0
  201425. .IP \(bu 2
  201426. 9497748546 Clear functions context in schedule tasks for ZeroMQ.
  201427. .UNINDENT
  201428. .IP \(bu 2
  201429. a55519db40 Merge pull request \fI\%#37928\fP from techhat/issue37737
  201430. .INDENT 2.0
  201431. .IP \(bu 2
  201432. a09a60e89b Don\(aqt modify self.opts directly
  201433. .UNINDENT
  201434. .IP \(bu 2
  201435. 9d17f1ce90 Merge pull request \fI\%#37929\fP from gtmanfred/2016.3
  201436. .INDENT 2.0
  201437. .IP \(bu 2
  201438. c7d2c73503 add list_nodes_min to nova driver
  201439. .UNINDENT
  201440. .IP \(bu 2
  201441. 3bb743b59f Merge pull request \fI\%#37926\fP from kontrolld/fix\-ipv6\-centos\-network
  201442. .INDENT 2.0
  201443. .IP \(bu 2
  201444. 3ed42e5b44 updated
  201445. .IP \(bu 2
  201446. 3b3bc4f239 Fixes no IPv6 functionality in /etc/sysconfig/network
  201447. .UNINDENT
  201448. .IP \(bu 2
  201449. 271170a9f3 Merge pull request \fI\%#37921\fP from rallytime/merge\-2016.3
  201450. .INDENT 2.0
  201451. .IP \(bu 2
  201452. 523a67c422 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  201453. .INDENT 2.0
  201454. .IP \(bu 2
  201455. 4cdc6cf5ec Update earlier release channels\(aq docs with Carbon release notes (\fI\%#37914\fP)
  201456. .IP \(bu 2
  201457. d31491a7fe [2015.8] Update version numbers in doc config for 2016.11.0 release (\fI\%#37918\fP)
  201458. .UNINDENT
  201459. .UNINDENT
  201460. .IP \(bu 2
  201461. 6cd6429ac0 Merge pull request \fI\%#37924\fP from cachedout/fix_gem_states
  201462. .INDENT 2.0
  201463. .IP \(bu 2
  201464. 894cca3427 Update test for new gem ver
  201465. .UNINDENT
  201466. .UNINDENT
  201467. .IP \(bu 2
  201468. \fBPR\fP \fI\%#38112\fP: (\fI\%rallytime\fP) Account for case where vim install already exists and is at an older version
  201469. .UNINDENT
  201470. .IP \(bu 2
  201471. \fBISSUE\fP \fI\%#19502\fP: (\fI\%kt97679\fP) salt\-ssh fails to run state.highstate with custom master_tops (refs: \fI\%#38021\fP)
  201472. .IP \(bu 2
  201473. \fBPR\fP \fI\%#38021\fP: (\fI\%mateiw\fP) Add master_tops support in salt\-ssh
  201474. @ \fI2016\-12\-06 14:26:22 UTC\fP
  201475. .INDENT 2.0
  201476. .IP \(bu 2
  201477. f8c67a9598 Merge pull request \fI\%#38021\fP from mateiw/salt\-ssh_master_tops
  201478. .IP \(bu 2
  201479. 65a0f102fd Add/remove newlines
  201480. .IP \(bu 2
  201481. 7037fa116d Add master_tops support in salt\-ssh
  201482. .IP \(bu 2
  201483. \fBPR\fP \fI\%#38084\fP: (\fI\%rallytime\fP) Start release notes file for 2016.11.1 release
  201484. .UNINDENT
  201485. .IP \(bu 2
  201486. \fBPR\fP \fI\%#37878\fP: (\fI\%kstreee\fP) Makes threads avoid blocking waiting while communicating using Zeromq.
  201487. @ \fI2016\-12\-05 19:50:46 UTC\fP
  201488. .INDENT 2.0
  201489. .IP \(bu 2
  201490. 78295516e7 Merge pull request \fI\%#37878\fP from kstreee/2016.11
  201491. .IP \(bu 2
  201492. 9103878c4f Fixes blocking waiting through implementing a socket pool class.
  201493. .UNINDENT
  201494. .IP \(bu 2
  201495. \fBPR\fP \fI\%#37987\fP: (\fI\%rbjorklin\fP) consul_pillar support for limiting pillar exposure via minion targeting
  201496. @ \fI2016\-12\-05 19:48:20 UTC\fP
  201497. .INDENT 2.0
  201498. .IP \(bu 2
  201499. \fBPR\fP \fI\%#37985\fP: (\fI\%rbjorklin\fP) consul_pillar support for limiting pillar exposure via minion targeting (refs: \fI\%#37987\fP)
  201500. .IP \(bu 2
  201501. 0809ccd429 Merge pull request \fI\%#37987\fP from rbjorklin/consul\-pillar\-target
  201502. .IP \(bu 2
  201503. 5d0454a7ca Ignore W1401 (anomalous\-backslash\-in\-string)
  201504. .IP \(bu 2
  201505. 2e929a5ecc Linting fixes
  201506. .IP \(bu 2
  201507. 171cab1726 Fixed possible incorrect behavior if target wasn\(aqt on start/end of str
  201508. .IP \(bu 2
  201509. 7440582ce8 consul_pillar support for limiting pillar exposure via minion targeting
  201510. .UNINDENT
  201511. .IP \(bu 2
  201512. \fBISSUE\fP \fI\%#38062\fP: (\fI\%UtahDave\fP) archive execution module not loading on Windows in 2016.11.0 (refs: \fI\%#38067\fP)
  201513. .IP \(bu 2
  201514. \fBPR\fP \fI\%#38067\fP: (\fI\%terminalmage\fP) Remove virtual funcs for archive state/module
  201515. @ \fI2016\-12\-05 16:37:23 UTC\fP
  201516. .INDENT 2.0
  201517. .IP \(bu 2
  201518. 83dcfe81ea Merge pull request \fI\%#38067\fP from terminalmage/issue38062
  201519. .IP \(bu 2
  201520. 2e0f26a084 Remove virtual funcs for archive state/module
  201521. .UNINDENT
  201522. .IP \(bu 2
  201523. \fBISSUE\fP \fI\%#38001\fP: (\fI\%tomlaredo\fP) Regression on postgres_group.present (\(aqpostgres_group\(aq __virtual__ returned False) (refs: \fI\%#38023\fP)
  201524. .IP \(bu 2
  201525. \fBISSUE\fP \fI\%#37986\fP: (\fI\%marek\-obuchowicz\fP) Module postgres \- wrong docs, doesn\(aqt work with debian 8.5 (refs: \fI\%#38023\fP)
  201526. .IP \(bu 2
  201527. \fBISSUE\fP \fI\%#37935\fP: (\fI\%ipmb\fP) Postgres module regression on 2016.11 (refs: \fI\%#37946\fP, \fI\%#37993\fP, \fI\%#38023\fP, \fI\%#38058\fP)
  201528. .IP \(bu 2
  201529. \fBPR\fP \fI\%#38058\fP: (\fI\%rallytime\fP) Remove initdb dependency in postgres module
  201530. @ \fI2016\-12\-04 04:19:02 UTC\fP
  201531. .INDENT 2.0
  201532. .IP \(bu 2
  201533. \fBPR\fP \fI\%#38023\fP: (\fI\%gtmanfred\fP) Expand error message for postgres states (refs: \fI\%#38058\fP)
  201534. .IP \(bu 2
  201535. \fBPR\fP \fI\%#37993\fP: (\fI\%ticosax\fP) Remove initdb dependency to consume postgres module. (refs: \fI\%#38058\fP)
  201536. .IP \(bu 2
  201537. c9933670f9 Merge pull request \fI\%#38058\fP from rallytime/remove\-init\-db\-dep
  201538. .IP \(bu 2
  201539. c1ceeca3d3 Remove initdb dependency in postgres module
  201540. .UNINDENT
  201541. .IP \(bu 2
  201542. \fBISSUE\fP \fI\%#37969\fP: (\fI\%lordcirth\fP) Archive.extracted fails if \-user: root is specified (refs: \fI\%#38004\fP)
  201543. .IP \(bu 2
  201544. \fBPR\fP \fI\%#38004\fP: (\fI\%terminalmage\fP) Fix regression in user/group mgmt for archive.extracted
  201545. @ \fI2016\-12\-02 18:28:49 UTC\fP
  201546. .INDENT 2.0
  201547. .IP \(bu 2
  201548. 1ac53e5196 Merge pull request \fI\%#38004\fP from terminalmage/issue37969
  201549. .IP \(bu 2
  201550. 23bb90a7ce Add integration test for archive.extracted with user/group set to root
  201551. .IP \(bu 2
  201552. e5ee721696 Don\(aqt use simple boolean check on uid/gid
  201553. .UNINDENT
  201554. .IP \(bu 2
  201555. \fBISSUE\fP \fI\%#37941\fP: (\fI\%L4rS6\fP) Outdated documentation for 2016.11.x (refs: \fI\%#38051\fP)
  201556. .IP \(bu 2
  201557. \fBPR\fP \fI\%#38051\fP: (\fI\%Ch3LL\fP) add docs for hash_type change to sha256
  201558. @ \fI2016\-12\-02 18:11:36 UTC\fP
  201559. .INDENT 2.0
  201560. .IP \(bu 2
  201561. e90cbbef08 Merge pull request \fI\%#38051\fP from Ch3LL/fix_hash_docs
  201562. .IP \(bu 2
  201563. e95f88fbe3 add docs for hash_type change to sha256
  201564. .UNINDENT
  201565. .IP \(bu 2
  201566. \fBISSUE\fP \fI\%#38000\fP: (\fI\%morganwillcock\fP) 2016.11.0: saltutil.runner returns a different dict structure and breaks template rendering (refs: \fI\%#38028\fP)
  201567. .IP \(bu 2
  201568. \fBPR\fP \fI\%#38028\fP: (\fI\%terminalmage\fP) Pass full_return to saltutil.runner
  201569. @ \fI2016\-12\-02 09:49:31 UTC\fP
  201570. .INDENT 2.0
  201571. .IP \(bu 2
  201572. 1b52289508 Merge pull request \fI\%#38028\fP from terminalmage/issue38000
  201573. .IP \(bu 2
  201574. 9bf13d55b4 Pass full_return to saltutil.runner
  201575. .UNINDENT
  201576. .IP \(bu 2
  201577. \fBISSUE\fP \fI\%#37980\fP: (\fI\%tveastman\fP) Having \(aqgit\(aq in fileserver_backends and no gitfs_remotes defined causes a crash (refs: \fI\%#38044\fP)
  201578. .IP \(bu 2
  201579. \fBPR\fP \fI\%#38044\fP: (\fI\%terminalmage\fP) Remove debugging code
  201580. @ \fI2016\-12\-02 09:43:44 UTC\fP
  201581. .INDENT 2.0
  201582. .IP \(bu 2
  201583. 41c44ff684 Merge pull request \fI\%#38044\fP from terminalmage/issue37980
  201584. .IP \(bu 2
  201585. f70a0409b3 Remove debugging code
  201586. .UNINDENT
  201587. .IP \(bu 2
  201588. \fBPR\fP \fI\%#38035\fP: (\fI\%dmurphy18\fP) Updated to return status from make_repo similar to rpmbuild.py
  201589. @ \fI2016\-12\-01 22:30:53 UTC\fP
  201590. .INDENT 2.0
  201591. .IP \(bu 2
  201592. 9661258f22 Merge pull request \fI\%#38035\fP from dmurphy18/fix_debbuild
  201593. .IP \(bu 2
  201594. 3bca96e7f2 Updated to return status from make_repo similar to rpmbuild.py
  201595. .UNINDENT
  201596. .IP \(bu 2
  201597. \fBISSUE\fP \fI\%#38001\fP: (\fI\%tomlaredo\fP) Regression on postgres_group.present (\(aqpostgres_group\(aq __virtual__ returned False) (refs: \fI\%#38023\fP)
  201598. .IP \(bu 2
  201599. \fBISSUE\fP \fI\%#37986\fP: (\fI\%marek\-obuchowicz\fP) Module postgres \- wrong docs, doesn\(aqt work with debian 8.5 (refs: \fI\%#38023\fP)
  201600. .IP \(bu 2
  201601. \fBISSUE\fP \fI\%#37935\fP: (\fI\%ipmb\fP) Postgres module regression on 2016.11 (refs: \fI\%#37946\fP, \fI\%#37993\fP, \fI\%#38023\fP, \fI\%#38058\fP)
  201602. .IP \(bu 2
  201603. \fBPR\fP \fI\%#38023\fP: (\fI\%gtmanfred\fP) Expand error message for postgres states (refs: \fI\%#38058\fP)
  201604. @ \fI2016\-12\-01 22:05:06 UTC\fP
  201605. .INDENT 2.0
  201606. .IP \(bu 2
  201607. 141b5c5656 Merge pull request \fI\%#38023\fP from gtmanfred/2016.11
  201608. .IP \(bu 2
  201609. 1aa43eba80 Expand error message for postgres states
  201610. .IP \(bu 2
  201611. ac72ee600e Revert "Updated the bins_dir to default to pg_bin \fI\%#37935\fP"
  201612. .UNINDENT
  201613. .IP \(bu 2
  201614. \fBPR\fP \fI\%#38026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38015\fP to 2016.11
  201615. @ \fI2016\-12\-01 19:16:15 UTC\fP
  201616. .INDENT 2.0
  201617. .IP \(bu 2
  201618. \fBPR\fP \fI\%#38015\fP: (\fI\%morsik\fP) Typo fix (refs: \fI\%#38026\fP)
  201619. .IP \(bu 2
  201620. 79486421f5 Merge pull request \fI\%#38026\fP from rallytime/bp\-38015
  201621. .IP \(bu 2
  201622. 11becf3e68 Typo fix
  201623. .IP \(bu 2
  201624. \fBPR\fP \fI\%#38022\fP: (\fI\%DmitryKuzmenko\fP) Added Carbon release notes. Fixed sphinx errors in the file.
  201625. .IP \(bu 2
  201626. \fBPR\fP \fI\%#38011\fP: (\fI\%rallytime\fP) Adjust code examples to use the actual bootstrap\-salt.sh file name
  201627. .UNINDENT
  201628. .IP \(bu 2
  201629. \fBISSUE\fP \fI\%#37940\fP: (\fI\%alex\-zel\fP) dockerng.sls_build fails on some distributions (refs: \fI\%#37954\fP)
  201630. .IP \(bu 2
  201631. \fBPR\fP \fI\%#37954\fP: (\fI\%gtmanfred\fP) use sleep from path for docker.sls_build
  201632. @ \fI2016\-11\-30 18:08:45 UTC\fP
  201633. .INDENT 2.0
  201634. .IP \(bu 2
  201635. 0a041277ea Merge pull request \fI\%#37954\fP from gtmanfred/2016.11
  201636. .IP \(bu 2
  201637. 9caf0b406d use sleep from path for docker.sls_build
  201638. .UNINDENT
  201639. .IP \(bu 2
  201640. \fBISSUE\fP \fI\%#37935\fP: (\fI\%ipmb\fP) Postgres module regression on 2016.11 (refs: \fI\%#37946\fP, \fI\%#37993\fP, \fI\%#38023\fP, \fI\%#38058\fP)
  201641. .IP \(bu 2
  201642. \fBPR\fP \fI\%#37993\fP: (\fI\%ticosax\fP) Remove initdb dependency to consume postgres module. (refs: \fI\%#38058\fP)
  201643. @ \fI2016\-11\-30 18:08:13 UTC\fP
  201644. .INDENT 2.0
  201645. .IP \(bu 2
  201646. 4ef5c98845 Merge pull request \fI\%#37993\fP from ticosax/remove\-initdb\-requirement
  201647. .IP \(bu 2
  201648. c5c7a53d72 Remove initdb dependency to consume postgres module.
  201649. .UNINDENT
  201650. .IP \(bu 2
  201651. \fBPR\fP \fI\%#37997\fP: (\fI\%cachedout\fP) Update gem test for 2016.11
  201652. @ \fI2016\-11\-30 17:13:45 UTC\fP
  201653. .INDENT 2.0
  201654. .IP \(bu 2
  201655. 2e5565685c Merge pull request \fI\%#37997\fP from cachedout/gem_test_carbon
  201656. .IP \(bu 2
  201657. 1d221aa91c Update gem test for 2016.11
  201658. .UNINDENT
  201659. .IP \(bu 2
  201660. \fBISSUE\fP \fI\%#36723\fP: (\fI\%white\-hat\fP) ext_pillar_first option is broken in 2016.3 (refs: \fI\%#36807\fP)
  201661. .IP \(bu 2
  201662. \fBISSUE\fP \fI\%#24501\fP: (\fI\%astehlik\fP) Order in top.sls file is not respected for pillar data in local mode (refs: \fI\%#31316\fP)
  201663. .IP \(bu 2
  201664. \fBISSUE\fP \fI\%#19332\fP: (\fI\%QuinnyPig\fP) Nondeterminism in Pillar (refs: \fI\%#31316\fP)
  201665. .IP \(bu 2
  201666. \fBPR\fP \fI\%#37979\fP: (\fI\%terminalmage\fP) Revert addition of pillar_roots_override_ext_pillar
  201667. @ \fI2016\-11\-30 14:34:24 UTC\fP
  201668. .INDENT 2.0
  201669. .IP \(bu 2
  201670. \fBPR\fP \fI\%#36807\fP: (\fI\%terminalmage\fP) Fix pillar merging when ext_pillar_first is enabled (refs: \fI\%#37979\fP)
  201671. .IP \(bu 2
  201672. \fBPR\fP \fI\%#31316\fP: (\fI\%kraney\fP) Let ext_pillar_first determine the override order (refs: \fI\%#37979\fP)
  201673. .IP \(bu 2
  201674. ca3a9488f1 Merge pull request \fI\%#37979\fP from terminalmage/revert\-pillar\-change
  201675. .IP \(bu 2
  201676. 6135dfa4dd Revert addition of pillar_roots_override_ext_pillar
  201677. .IP \(bu 2
  201678. \fBPR\fP \fI\%#37970\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37958\fP to 2016.11
  201679. .IP \(bu 2
  201680. \fBPR\fP \fI\%#37958\fP: (\fI\%mirceaulinic\fP) Fix RST link format in Carbon release notes (refs: \fI\%#37970\fP)
  201681. .IP \(bu 2
  201682. \fBPR\fP \fI\%#37971\fP: (\fI\%rallytime\fP) Lint 2016.11 sooner rather than later
  201683. .IP \(bu 2
  201684. \fBPR\fP \fI\%#37955\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#37971\fP)
  201685. .UNINDENT
  201686. .IP \(bu 2
  201687. \fBISSUE\fP \fI\%#37935\fP: (\fI\%ipmb\fP) Postgres module regression on 2016.11 (refs: \fI\%#37946\fP, \fI\%#37993\fP, \fI\%#38023\fP, \fI\%#38058\fP)
  201688. .IP \(bu 2
  201689. \fBPR\fP \fI\%#37946\fP: (\fI\%scott\-w\fP) Updated the bins_dir to default to pg_bin
  201690. @ \fI2016\-11\-29 16:48:27 UTC\fP
  201691. .INDENT 2.0
  201692. .IP \(bu 2
  201693. 36f91408c5 Merge pull request \fI\%#37946\fP from scott\-w/37935\-fix\-bin\-dir
  201694. .IP \(bu 2
  201695. d33d403969 Restored missing initdb \fI\%#37935\fP
  201696. .IP \(bu 2
  201697. a041b9f8e8 Use Salt deprecation warning \fI\%#37935\fP
  201698. .IP \(bu 2
  201699. a96789353f Updated the bins_dir to default to pg_bin \fI\%#37935\fP
  201700. .UNINDENT
  201701. .IP \(bu 2
  201702. \fBPR\fP \fI\%#37889\fP: (\fI\%isbm\fP) Allow overwrite archives extraction (refs: \fI\%#38036\fP)
  201703. @ \fI2016\-11\-29 16:18:57 UTC\fP
  201704. .INDENT 2.0
  201705. .IP \(bu 2
  201706. d8650c5474 Merge pull request \fI\%#37889\fP from isbm/isbm\-states\-archive\-fix
  201707. .IP \(bu 2
  201708. e67706bd29 Document the behaviour.
  201709. .IP \(bu 2
  201710. 1970814111 Prevent crash during externally changed archive permissions
  201711. .IP \(bu 2
  201712. 91b42578b2 Add overwrite option so the extraction of the archive can be always performed.
  201713. .IP \(bu 2
  201714. e6958f7f15 Remove nonsense comment and react on generally absent path name
  201715. .UNINDENT
  201716. .IP \(bu 2
  201717. \fBPR\fP \fI\%#37869\fP: (\fI\%isbm\fP) Input sanitation (16.11)
  201718. @ \fI2016\-11\-29 16:17:16 UTC\fP
  201719. .INDENT 2.0
  201720. .IP \(bu 2
  201721. e2b9e58d30 Merge pull request \fI\%#37869\fP from isbm/isbm\-input\-sanitation\-16.11
  201722. .IP \(bu 2
  201723. f9ec5d68af Use six instead of builtins
  201724. .IP \(bu 2
  201725. 203dfcb238 Use American spelling instead
  201726. .IP \(bu 2
  201727. 91ed307af9 Sanitise input for the keys and IDs
  201728. .IP \(bu 2
  201729. 86623f913d Add a stub for ID sanitiser (at the moment same as hostname)
  201730. .IP \(bu 2
  201731. 637144c841 Rename "general.py" to "sanitisers.py"
  201732. .IP \(bu 2
  201733. f2571fc8bf Add hostname sanitiser
  201734. .IP \(bu 2
  201735. 3ae086aff4 Add filename sanitiser
  201736. .IP \(bu 2
  201737. 816b1d1977 Add general sanitisers
  201738. .UNINDENT
  201739. .IP \(bu 2
  201740. \fBPR\fP \fI\%#37884\fP: (\fI\%isbm\fP) Do not include "gpg\-pubkey" packages, filtering by their name
  201741. @ \fI2016\-11\-28 21:11:37 UTC\fP
  201742. .INDENT 2.0
  201743. .IP \(bu 2
  201744. e539a94a56 Merge pull request \fI\%#37884\fP from isbm/isbm\-zypper\-gpgkey\-pkg\-filter
  201745. .IP \(bu 2
  201746. 038374a586 Do not include "gpg\-pubkey" packages, filtering by their name
  201747. .UNINDENT
  201748. .IP \(bu 2
  201749. \fBPR\fP \fI\%#37882\fP: (\fI\%attiasr\fP) multiple issues in boto_rds state and module
  201750. @ \fI2016\-11\-28 21:09:11 UTC\fP
  201751. .INDENT 2.0
  201752. .IP \(bu 2
  201753. eb3d81a1de Merge pull request \fI\%#37882\fP from attiasr/fix_missing_tags
  201754. .IP \(bu 2
  201755. 73b3c5fa1a Add newline
  201756. .IP \(bu 2
  201757. 166c42bc51 fix boto_rds.describe
  201758. .IP \(bu 2
  201759. ddd88ba047 fix boto_rds.describe parameters and subnetgroup_present
  201760. .IP \(bu 2
  201761. bfe7f92cb4 fix missing tags in call to boto_rds.exists
  201762. .IP \(bu 2
  201763. \fBPR\fP \fI\%#37931\fP: (\fI\%rallytime\fP) Remove release candidate doc ref from 2016.11.0 release notes
  201764. .UNINDENT
  201765. .IP \(bu 2
  201766. \fBPR\fP \fI\%#37930\fP: (\fI\%cachedout\fP) Remove dictionary comprehension in netusers
  201767. @ \fI2016\-11\-28 20:27:06 UTC\fP
  201768. .INDENT 2.0
  201769. .IP \(bu 2
  201770. 3d2dabc7b7 Merge pull request \fI\%#37930\fP from cachedout/fix_comp
  201771. .IP \(bu 2
  201772. 670e83200b Remove dictionary comprehension in netusers
  201773. .UNINDENT
  201774. .IP \(bu 2
  201775. \fBPR\fP \fI\%#37923\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201776. @ \fI2016\-11\-28 19:55:03 UTC\fP
  201777. .INDENT 2.0
  201778. .IP \(bu 2
  201779. 0f8b187d15 Merge pull request \fI\%#37923\fP from rallytime/merge\-2016.11
  201780. .IP \(bu 2
  201781. da7f5518eb Don\(aqt let 2016.3 doc config changes overwrite the 2016.11 changes
  201782. .IP \(bu 2
  201783. dfedd1185a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201784. .INDENT 2.0
  201785. .IP \(bu 2
  201786. c35ba1f390 Merge pull request \fI\%#37916\fP from rallytime/doc\-update\-2016.3
  201787. .INDENT 2.0
  201788. .IP \(bu 2
  201789. bd40592289 [2016.3] Update version numbers in doc config for 2016.11.0 release
  201790. .UNINDENT
  201791. .IP \(bu 2
  201792. e13a2488c8 Merge pull request \fI\%#37785\fP from Cloudtek/ddns\-respect\-trailing\-dot
  201793. .INDENT 2.0
  201794. .IP \(bu 2
  201795. 262e3b3697 respect trailing dot in ddns name parameter
  201796. .UNINDENT
  201797. .IP \(bu 2
  201798. c03b389422 Merge pull request \fI\%#37895\fP from fj40crawler/fix\-augeas\-return\-for\-test
  201799. .INDENT 2.0
  201800. .IP \(bu 2
  201801. ddc238df36 Fixed augeas_test.py to match True v.s. None for test_change_in_test_mode
  201802. .IP \(bu 2
  201803. ef75c459c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into fix\-augeas\-return\-for\-test
  201804. .IP \(bu 2
  201805. b0fe0cd256 Change return value for salt/states/augeas.py to be True instead of None for cases where salt is run with test=True. Fixes \fI\%#37870\fP
  201806. .UNINDENT
  201807. .IP \(bu 2
  201808. fdbc31e8d8 Merge pull request \fI\%#37907\fP from Talkless/patch\-2
  201809. .INDENT 2.0
  201810. .IP \(bu 2
  201811. 072a319490 Fix server trust in test run of svn.latest
  201812. .UNINDENT
  201813. .IP \(bu 2
  201814. f39fdf443f Merge pull request \fI\%#37896\fP from toanju/2016.3
  201815. .INDENT 2.0
  201816. .IP \(bu 2
  201817. c95304188e rh networking: add missing values
  201818. .UNINDENT
  201819. .IP \(bu 2
  201820. ea935c5a91 Merge pull request \fI\%#37886\fP from bdrung/fix\-typos
  201821. .INDENT 2.0
  201822. .IP \(bu 2
  201823. 9a51ba5c5b Fix various spelling mistakes
  201824. .UNINDENT
  201825. .IP \(bu 2
  201826. 371b0a86d9 Merge pull request \fI\%#37736\fP from dhaines/issue\-37732
  201827. .INDENT 2.0
  201828. .IP \(bu 2
  201829. 7ef590a505 Update selinux.py
  201830. .IP \(bu 2
  201831. 516a67e6a3 fix indexing error
  201832. .IP \(bu 2
  201833. 4e49c1e991 fix typo
  201834. .IP \(bu 2
  201835. b16f2d8400 handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  201836. .UNINDENT
  201837. .IP \(bu 2
  201838. 87aeb66fbf Merge pull request \fI\%#37797\fP from clan/extfs
  201839. .INDENT 2.0
  201840. .IP \(bu 2
  201841. acf0f960ef check count of columns after split
  201842. .UNINDENT
  201843. .IP \(bu 2
  201844. f7c7109152 Merge pull request \fI\%#37762\fP from twangboy/fix_chocolatey_state
  201845. .INDENT 2.0
  201846. .IP \(bu 2
  201847. 9696b6dfa5 Use keyword args instead of relying on ordering
  201848. .IP \(bu 2
  201849. 398eaa074d Add pre_versions to the available arguments
  201850. .UNINDENT
  201851. .IP \(bu 2
  201852. 56baa92d55 Merge pull request \fI\%#37866\fP from meaksh/2016.3\-bp\-37149\-36938\-36784
  201853. .INDENT 2.0
  201854. .IP \(bu 2
  201855. 9d8d578109 Fix pkg.latest_version when latest already installed
  201856. .IP \(bu 2
  201857. ffca0d491c \- acl.delfacl: fix position of \-X option to setfacl
  201858. .IP \(bu 2
  201859. 3dfed6b841 Adjust linux_acl unit test argument ordering
  201860. .IP \(bu 2
  201861. f185ecdde1 core.py: quote style fixed
  201862. .IP \(bu 2
  201863. 8404d13424 Setting up OS grains for SLES Expanded Support (SUSE\(aqs Red Hat compatible platform)
  201864. .UNINDENT
  201865. .IP \(bu 2
  201866. d0cc7f0d56 Merge pull request \fI\%#37863\fP from rallytime/bp\-36893
  201867. .INDENT 2.0
  201868. .IP \(bu 2
  201869. 4c70534991 Add versionadded to reauth option in dockerng module
  201870. .IP \(bu 2
  201871. 5ca2c388c2 added documentation for the new reuth option in docker registry configuration
  201872. .IP \(bu 2
  201873. 5b0c11ab47 add option to force a reauth for a docker registry
  201874. .UNINDENT
  201875. .IP \(bu 2
  201876. b17a118e72 add multiline encryption documentation to nacl (\fI\%#37847\fP)
  201877. .UNINDENT
  201878. .IP \(bu 2
  201879. \fBPR\fP \fI\%#37927\fP: (\fI\%thatch45\fP) Add a release notes reference to the docker\-sls tutorial
  201880. .IP \(bu 2
  201881. \fBPR\fP \fI\%#37917\fP: (\fI\%rallytime\fP) [2016.11] Update version numbers in doc config for 2016.11.0 release
  201882. .UNINDENT
  201883. .IP \(bu 2
  201884. \fBPR\fP \fI\%#37890\fP: (\fI\%bbinet\fP) Fix support for extra_mods=\(aqsix\(aq to add six module to a thin.tgz tarball
  201885. @ \fI2016\-11\-28 13:53:06 UTC\fP
  201886. .INDENT 2.0
  201887. .IP \(bu 2
  201888. ee00592995 Merge pull request \fI\%#37890\fP from bbinet/fix\-genthin\-six
  201889. .IP \(bu 2
  201890. 7fceaa3476 Fix support for extra_mods=\(aqsix\(aq to add six module to a thin.tgz tarball
  201891. .UNINDENT
  201892. .IP \(bu 2
  201893. \fBISSUE\fP \fI\%#37713\fP: (\fI\%aboe76\fP) masterless minion can\(aqt call pillar.item from pillar stack (development branch) (refs: \fI\%#37843\fP)
  201894. .INDENT 2.0
  201895. .IP \(bu 2
  201896. \fBPR\fP \fI\%#37843\fP: (\fI\%terminalmage\fP) Don\(aqt skip pillar compilation when master_type==\(aqdisable\(aq
  201897. .IP \(bu 2
  201898. \fBPR\fP \fI\%#32521\fP: (\fI\%adelcast\fP) Fix salt\-call on standalone minion case (refs: \fI\%#37843\fP)
  201899. .UNINDENT
  201900. .IP \(bu 2
  201901. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  201902. .INDENT 2.0
  201903. .IP \(bu 2
  201904. \fBPR\fP \fI\%#37849\fP: (\fI\%skizunov\fP) Eliminate warning when \(aqssl\(aq not set
  201905. .IP \(bu 2
  201906. \fBPR\fP \fI\%#37776\fP: (\fI\%DmitryKuzmenko\fP) Full TLS/SSL options support as provided by Tornado TCPServer. (refs: \fI\%#37849\fP)
  201907. .UNINDENT
  201908. .IP \(bu 2
  201909. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  201910. .INDENT 2.0
  201911. .IP \(bu 2
  201912. \fBPR\fP \fI\%#37859\fP: (\fI\%DmitryKuzmenko\fP) TLS example config
  201913. .IP \(bu 2
  201914. \fBPR\fP \fI\%#37841\fP: (\fI\%terminalmage\fP) Clarify the master_type docs
  201915. .IP \(bu 2
  201916. \fBPR\fP \fI\%#37831\fP: (\fI\%skizunov\fP) PY3: Fix exception when handling connect exception in TCP transport
  201917. .UNINDENT
  201918. .IP \(bu 2
  201919. \fBPR\fP \fI\%#37829\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201920. @ \fI2016\-11\-22 15:26:00 UTC\fP
  201921. .INDENT 2.0
  201922. .IP \(bu 2
  201923. dd81d2fa67 Merge pull request \fI\%#37829\fP from rallytime/merge\-2016.11
  201924. .IP \(bu 2
  201925. 3d6d32edc5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201926. .IP \(bu 2
  201927. aa3748744c add missing chloginclass (\fI\%#37827\fP)
  201928. .IP \(bu 2
  201929. 0e74bad284 Update branch refs to more relevant branch (\fI\%#37826\fP)
  201930. .IP \(bu 2
  201931. 6a9b49c782 Add "names" option to file state docs: point users to highstate doc examples (\fI\%#37823\fP)
  201932. .IP \(bu 2
  201933. aaf587de63 Clarify keystone.user_present password state docs with default behavior (\fI\%#37821\fP)
  201934. .IP \(bu 2
  201935. c300863159 Add some dependency documentation to libvirt docs (\fI\%#37820\fP)
  201936. .IP \(bu 2
  201937. 485270f74e Merge pull request \fI\%#37772\fP from bdrung/openssl1.1
  201938. .INDENT 2.0
  201939. .IP \(bu 2
  201940. 819c9658ed Support initializing OpenSSL 1.1
  201941. .UNINDENT
  201942. .IP \(bu 2
  201943. 4910912ffa Update orchestrate runner file.copy doc example (\fI\%#37817\fP)
  201944. .IP \(bu 2
  201945. c5d3d8b66a Merge pull request \fI\%#37816\fP from rallytime/bp\-32157
  201946. .INDENT 2.0
  201947. .IP \(bu 2
  201948. d9c297119e Add quotes to cron doc
  201949. .UNINDENT
  201950. .IP \(bu 2
  201951. 97e6b6aabe Merge pull request \fI\%#37812\fP from rallytime/bp\-37790
  201952. .INDENT 2.0
  201953. .IP \(bu 2
  201954. ca3b6e7874 Update proxmox.rst with more options and LXC
  201955. .UNINDENT
  201956. .IP \(bu 2
  201957. 27703c54bc Merge pull request \fI\%#37811\fP from rallytime/bp\-37789
  201958. .INDENT 2.0
  201959. .IP \(bu 2
  201960. ba3fef48e1 fix comment
  201961. .IP \(bu 2
  201962. a021f76a9b issue: 37751 Add documentation for option privileged
  201963. .UNINDENT
  201964. .IP \(bu 2
  201965. adac9d7c0c Merge pull request \fI\%#37810\fP from rallytime/bp\-37775
  201966. .INDENT 2.0
  201967. .IP \(bu 2
  201968. 2bed91437b Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP
  201969. .UNINDENT
  201970. .IP \(bu 2
  201971. \fBPR\fP \fI\%#37794\fP: (\fI\%sjorge\fP) network.routes should not raise exception if no interface
  201972. .UNINDENT
  201973. .IP \(bu 2
  201974. \fBPR\fP \fI\%#37815\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  201975. @ \fI2016\-11\-21 20:22:49 UTC\fP
  201976. .INDENT 2.0
  201977. .IP \(bu 2
  201978. 628c4a3d27 Merge pull request \fI\%#37815\fP from rallytime/merge\-2016.11
  201979. .IP \(bu 2
  201980. c6b5fd3715 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  201981. .INDENT 2.0
  201982. .IP \(bu 2
  201983. 7de784411d Add nodegroup check to ckminions (\fI\%#37763\fP)
  201984. .IP \(bu 2
  201985. d674369efc Fix ip/port issue with salt\-call (\fI\%#37766\fP)
  201986. .UNINDENT
  201987. .UNINDENT
  201988. .IP \(bu 2
  201989. \fBISSUE\fP \fI\%#37449\fP: (\fI\%thatch45\fP) Allow TLS connections in the Tornado TCP transport (refs: \fI\%#37776\fP, \fI\%#37859\fP)
  201990. .IP \(bu 2
  201991. \fBPR\fP \fI\%#37776\fP: (\fI\%DmitryKuzmenko\fP) Full TLS/SSL options support as provided by Tornado TCPServer. (refs: \fI\%#37849\fP)
  201992. @ \fI2016\-11\-21 20:11:52 UTC\fP
  201993. .INDENT 2.0
  201994. .IP \(bu 2
  201995. 0b30b93dbb Merge pull request \fI\%#37776\fP from DSRCorporation/features/37449_tls
  201996. .IP \(bu 2
  201997. 6857b9b8b1 Documented new TLS/SSL settings.
  201998. .IP \(bu 2
  201999. e42898f2e3 Full TLS/SSL options support as provided by Tornado TCPServer.
  202000. .UNINDENT
  202001. .IP \(bu 2
  202002. \fBPR\fP \fI\%#37773\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202003. @ \fI2016\-11\-18 19:18:42 UTC\fP
  202004. .INDENT 2.0
  202005. .IP \(bu 2
  202006. 3835f91d99 Merge pull request \fI\%#37773\fP from rallytime/merge\-2016.11
  202007. .IP \(bu 2
  202008. c859fc9ec1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202009. .IP \(bu 2
  202010. c62ff6b023 Add thorium path to syspaths (\fI\%#37767\fP)
  202011. .IP \(bu 2
  202012. bff949f4e9 Merge pull request \fI\%#37760\fP from hu\-dabao/fix_cb_returner
  202013. .INDENT 2.0
  202014. .IP \(bu 2
  202015. de372f277e 1. returner no need to check whether the jid exists for external job cache setup 2. add full_ret to return doc so that the document will be informative 3. make ttl as a config attribute because salt\-minion does not have keep_jobs attribute 4. add password into config attribute 5. update the documents accordingly
  202016. .UNINDENT
  202017. .IP \(bu 2
  202018. 1f976ac212 Merge pull request \fI\%#37738\fP from terminalmage/issue36629
  202019. .INDENT 2.0
  202020. .IP \(bu 2
  202021. da46678c51 Allow pillar.get to retrieve fresh pillar data when saltenv passed
  202022. .UNINDENT
  202023. .IP \(bu 2
  202024. 7aee7fc63c Switch default filter tag for ONE resources from user only to all resources (\fI\%#37745\fP)
  202025. .UNINDENT
  202026. .IP \(bu 2
  202027. \fBPR\fP \fI\%#37764\fP: (\fI\%mirceaulinic\fP) Doc fixes and \fIreplace\fP feature
  202028. @ \fI2016\-11\-18 03:15:31 UTC\fP
  202029. .INDENT 2.0
  202030. .IP \(bu 2
  202031. 6f0f70c9a3 Merge pull request \fI\%#37764\fP from cloudflare/NET\-UPDATE
  202032. .IP \(bu 2
  202033. c3f0202fdd Replace feature and doc fixes
  202034. .UNINDENT
  202035. .UNINDENT
  202036. .SS Salt 2016.11.10 Release Notes
  202037. .sp
  202038. Version 2016.11.10 is a security release for 2016.11.0\&.
  202039. .SS Changes for v2016.11.9..v2016.11.10
  202040. .SS Security Fix
  202041. .sp
  202042. CVE\-2018\-15751 Remote command execution and incorrect access control when using salt\-api.
  202043. .sp
  202044. CVE\-2018\-15750 Directory traversal vulnerability when using salt\-api. Allows an attacker to determine what files exist on a server when querying /run or /events.
  202045. .sp
  202046. Credit and thanks for discovery and responsible disclosure: nullbr4in, xcuter, koredge, loupos, blackcon, Naver Business Platform
  202047. .SS Salt 2016.11.2 Release Notes
  202048. .sp
  202049. Version 2016.11.2 is a bugfix release for 2016.11.0\&.
  202050. .SS Statistics
  202051. .INDENT 0.0
  202052. .IP \(bu 2
  202053. Total Merges: \fB157\fP
  202054. .IP \(bu 2
  202055. Total Issue References: \fB34\fP
  202056. .IP \(bu 2
  202057. Total PR References: \fB116\fP
  202058. .IP \(bu 2
  202059. Contributors: \fB45\fP (\fI\%Ch3LL\fP, \fI\%Cybolic\fP, \fI\%DmitryKuzmenko\fP, \fI\%UtahDave\fP, \fI\%Vaelatern\fP, \fI\%alex\-zel\fP, \fI\%alxwr\fP, \fI\%amendlik\fP, \fI\%anlutro\fP, \fI\%aosagie\fP, \fI\%basdusee\fP, \fI\%bbinet\fP, \fI\%benediktwerner\fP, \fI\%cachedout\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%dereckson\fP, \fI\%disaster123\fP, \fI\%ewapptus\fP, \fI\%ezh\fP, \fI\%folti\fP, \fI\%gmacon\fP, \fI\%gqgunhed\fP, \fI\%gtmanfred\fP, \fI\%kkoppel\fP, \fI\%lorengordon\fP, \fI\%martintamare\fP, \fI\%mcalmer\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%mostafahussein\fP, \fI\%mvdwalle\fP, \fI\%rallytime\fP, \fI\%rbjorklin\fP, \fI\%scthi\fP, \fI\%sjorge\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%tsaridas\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%wolfpackmars2\fP, \fI\%yhekma\fP, \fI\%yopito\fP, \fI\%yue9944882\fP)
  202060. .UNINDENT
  202061. .SS Security Fixes
  202062. .sp
  202063. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  202064. .sp
  202065. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  202066. credentials and so access to it from salt\-api has been removed for now. This
  202067. vulnerability allows code execution for already\-authenticated users and is only
  202068. in effect when running salt\-api as the \fBroot\fP user.
  202069. .sp
  202070. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master
  202071. via Salt\(aqs ssh_client
  202072. .sp
  202073. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  202074. hole when both systems were enabled.
  202075. .sp
  202076. We recommend everyone upgrade to 2016.11.2 as soon as possible.
  202077. .SS Changelog for v2016.11.1..v2016.11.2
  202078. .sp
  202079. \fIGenerated at: 2018\-05\-27 19:28:11 UTC\fP
  202080. .INDENT 0.0
  202081. .IP \(bu 2
  202082. \fBPR\fP \fI\%#38859\fP: (\fI\%alxwr\fP) fix parsing of sockstat \-4
  202083. @ \fI2017\-01\-23 16:47:22 UTC\fP
  202084. .INDENT 2.0
  202085. .IP \(bu 2
  202086. ec59ae67c8 Merge pull request \fI\%#38859\fP from alxwr/2016.11
  202087. .IP \(bu 2
  202088. 30fe5641c7 fix parsing of sockstat \-4
  202089. .UNINDENT
  202090. .IP \(bu 2
  202091. \fBPR\fP \fI\%#38850\fP: (\fI\%techhat\fP) Strip .p from cache file names
  202092. @ \fI2017\-01\-23 16:28:46 UTC\fP
  202093. .INDENT 2.0
  202094. .IP \(bu 2
  202095. 5fe6db6201 Merge pull request \fI\%#38850\fP from techhat/stripcache
  202096. .IP \(bu 2
  202097. 109cb62e76 Remove .p from test
  202098. .IP \(bu 2
  202099. 534aa3f527 Strip .p from cache file names
  202100. .IP \(bu 2
  202101. \fBPR\fP \fI\%#38848\fP: (\fI\%Ch3LL\fP) add 2016.11.2 changelog to release notes
  202102. .UNINDENT
  202103. .IP \(bu 2
  202104. \fBPR\fP \fI\%#38819\fP: (\fI\%twangboy\fP) Remove \fIUsers\fP from c:\esalt [DO NOT MERGE FORWARD]
  202105. @ \fI2017\-01\-20 20:17:35 UTC\fP
  202106. .INDENT 2.0
  202107. .IP \(bu 2
  202108. 4913c4f90c Merge pull request \fI\%#38819\fP from twangboy/salt_perms_2016.11
  202109. .IP \(bu 2
  202110. eb04ed7eef Remove \fIUser\fP from c:salt
  202111. .UNINDENT
  202112. .IP \(bu 2
  202113. \fBPR\fP \fI\%#38815\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202114. @ \fI2017\-01\-20 18:53:01 UTC\fP
  202115. .INDENT 2.0
  202116. .IP \(bu 2
  202117. a275b9714e Merge pull request \fI\%#38815\fP from rallytime/merge\-2016.11
  202118. .IP \(bu 2
  202119. ce6d1b103d Make sure we\(aqre using the opts dict mocking in parsers_test
  202120. .IP \(bu 2
  202121. 315b2c8712 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202122. .INDENT 2.0
  202123. .IP \(bu 2
  202124. d14f0c64eb Merge pull request \fI\%#38812\fP from rallytime/pyobjects\-test
  202125. .INDENT 2.0
  202126. .IP \(bu 2
  202127. f3e84c1ab7 Update pyobjects test to be a list
  202128. .UNINDENT
  202129. .IP \(bu 2
  202130. 50f03f8057 Merge pull request \fI\%#38813\fP from gtmanfred/2016.3
  202131. .INDENT 2.0
  202132. .IP \(bu 2
  202133. ce3472cec2 catch SIGPIPE in vmware connection
  202134. .UNINDENT
  202135. .IP \(bu 2
  202136. 23b8b47258 Merge pull request \fI\%#38809\fP from twangboy/fix_hostname_2016.3
  202137. .INDENT 2.0
  202138. .IP \(bu 2
  202139. d57a51f9f9 Fix tests for get_hostname
  202140. .IP \(bu 2
  202141. 7ca3fd7484 Fix get_hostname to handle longer computer names
  202142. .UNINDENT
  202143. .IP \(bu 2
  202144. 1033bbdde8 Merge pull request \fI\%#38808\fP from vutny/fix\-38388
  202145. .INDENT 2.0
  202146. .IP \(bu 2
  202147. 9bd203ffcc Fix \fI\%#38388\fP
  202148. .UNINDENT
  202149. .IP \(bu 2
  202150. f3ae3cd5c8 Merge pull request \fI\%#38668\fP from terminalmage/issue38604
  202151. .INDENT 2.0
  202152. .IP \(bu 2
  202153. 0ea97cdad9 Merge pull request \fI\%#10\fP from cachedout/pr\-38668
  202154. .INDENT 2.0
  202155. .IP \(bu 2
  202156. db81afc035 Munge retcode into return data for batching
  202157. .UNINDENT
  202158. .IP \(bu 2
  202159. a642a995dc Return the ret data from batch execution instead of raw data
  202160. .UNINDENT
  202161. .IP \(bu 2
  202162. c6a19a9e5a Merge pull request \fI\%#38789\fP from rallytime/fix\-38622
  202163. .INDENT 2.0
  202164. .IP \(bu 2
  202165. af41fe0c6e Update some saltenv refs to environment in salt.modules.state docs
  202166. .UNINDENT
  202167. .IP \(bu 2
  202168. e0bf700020 Merge pull request \fI\%#38790\fP from cachedout/fix_pyobjects_test_typo
  202169. .INDENT 2.0
  202170. .IP \(bu 2
  202171. a66afb5f0f Fix typo in pyobjects test
  202172. .UNINDENT
  202173. .IP \(bu 2
  202174. 6e9785edea Merge pull request \fI\%#38792\fP from rallytime/fix\-38629
  202175. .INDENT 2.0
  202176. .IP \(bu 2
  202177. 1e125e2844 Update pillar tutorial lanuage regarding pillar_opts settings
  202178. .UNINDENT
  202179. .UNINDENT
  202180. .UNINDENT
  202181. .IP \(bu 2
  202182. \fBPR\fP \fI\%#38832\fP: (\fI\%terminalmage\fP) archive.extracted: Identify symlinks when checking for incorrect types
  202183. @ \fI2017\-01\-20 18:36:15 UTC\fP
  202184. .INDENT 2.0
  202185. .IP \(bu 2
  202186. efe1bf10e8 Merge pull request \fI\%#38832\fP from terminalmage/issue38711
  202187. .IP \(bu 2
  202188. d10c068e25 Update archive state unit tests to reflect symlinks in archive.list
  202189. .IP \(bu 2
  202190. d6adfb6d12 Identify symlinks when looking for incorrect types
  202191. .IP \(bu 2
  202192. 09b9e95f7c archive.list: organize symlinks separately from files in verbose mode
  202193. .IP \(bu 2
  202194. e6483f096d Support removing symlinks in salt.utils.rm_rf
  202195. .UNINDENT
  202196. .IP \(bu 2
  202197. \fBPR\fP \fI\%#38726\fP: (\fI\%twangboy\fP) Add VC Redist 2008 SP1 MFC to installer
  202198. @ \fI2017\-01\-19 19:13:42 UTC\fP
  202199. .INDENT 2.0
  202200. .IP \(bu 2
  202201. 10a3d8b8dd Merge pull request \fI\%#38726\fP from twangboy/vcredist
  202202. .IP \(bu 2
  202203. f00a65355d change extensions .ext to .exe
  202204. .IP \(bu 2
  202205. 98c40e278c Add VC Redist 2008 SP1 MFC to installer
  202206. .UNINDENT
  202207. .IP \(bu 2
  202208. \fBPR\fP \fI\%#38810\fP: (\fI\%UtahDave\fP) Fix beacon doc
  202209. @ \fI2017\-01\-18 21:37:21 UTC\fP
  202210. .INDENT 2.0
  202211. .IP \(bu 2
  202212. d5f2d92a4e Merge pull request \fI\%#38810\fP from UtahDave/fix_beacon_doc_zd1035
  202213. .IP \(bu 2
  202214. dbe9edb806 fix reactor example.
  202215. .UNINDENT
  202216. .IP \(bu 2
  202217. \fBPR\fP \fI\%#38811\fP: (\fI\%techhat\fP) Show a lot less data when requesting a VM
  202218. @ \fI2017\-01\-18 21:08:03 UTC\fP
  202219. .INDENT 2.0
  202220. .IP \(bu 2
  202221. 88faf08a71 Merge pull request \fI\%#38811\fP from techhat/sanvm
  202222. .IP \(bu 2
  202223. 47c19325cf Show a lot less data when requesting a VM
  202224. .IP \(bu 2
  202225. \fBPR\fP \fI\%#38807\fP: (\fI\%Ch3LL\fP) refine the os detection in archive test
  202226. .UNINDENT
  202227. .IP \(bu 2
  202228. \fBPR\fP \fI\%#38799\fP: (\fI\%aosagie\fP) Parse ansible dynamic inventory output correctly
  202229. @ \fI2017\-01\-18 15:32:47 UTC\fP
  202230. .INDENT 2.0
  202231. .IP \(bu 2
  202232. e3ca6881c8 Merge pull request \fI\%#38799\fP from aosagie/fix\-ansible\-dynamic\-roster
  202233. .IP \(bu 2
  202234. 26d6f699a7 Parse ansible dynamic inventory output correctly
  202235. .UNINDENT
  202236. .IP \(bu 2
  202237. \fBPR\fP \fI\%#38787\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202238. @ \fI2017\-01\-18 08:39:08 UTC\fP
  202239. .INDENT 2.0
  202240. .IP \(bu 2
  202241. 76df6a43f3 Merge pull request \fI\%#38787\fP from rallytime/merge\-2016.11
  202242. .IP \(bu 2
  202243. 2aad54c49f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202244. .INDENT 2.0
  202245. .IP \(bu 2
  202246. 3417adc617 Merge pull request \fI\%#38796\fP from saltstack/revert\-38707\-root_dir_fix\-gh
  202247. .INDENT 2.0
  202248. .IP \(bu 2
  202249. cb080f3bbe Revert "Fixed prepending of root_dir override to the other paths"
  202250. .UNINDENT
  202251. .UNINDENT
  202252. .IP \(bu 2
  202253. 64d866f7ab Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202254. .IP \(bu 2
  202255. bab3479a3c Merge pull request \fI\%#38585\fP from rallytime/follow\-up\-38527
  202256. .INDENT 2.0
  202257. .IP \(bu 2
  202258. 05587201b6 Pylint fix: add line at end of file
  202259. .IP \(bu 2
  202260. fa01367599 Keep a copy of the DEFAULT_API_OPTS and restore them after the test run
  202261. .IP \(bu 2
  202262. 2ad07634d9 Test clean up
  202263. .IP \(bu 2
  202264. fd2ee7db30 Add some simple unit tests for salt.config.api_config function
  202265. .IP \(bu 2
  202266. 3d2fefc83b Make sure the pidfile and log_file values are overriden by api opts
  202267. .IP \(bu 2
  202268. 1f6b540e46 Make sure the pidfile and log_file values are overriden by api opts
  202269. .IP \(bu 2
  202270. 04d307f917 salt\-api no longer forces the default timeout
  202271. .UNINDENT
  202272. .IP \(bu 2
  202273. 0fb6bb7b77 Merge pull request \fI\%#38707\fP from alexbleotu/root_dir_fix\-gh
  202274. .INDENT 2.0
  202275. .IP \(bu 2
  202276. 0bac8c8be3 Fixed prepending of root_dir override to the other paths
  202277. .UNINDENT
  202278. .IP \(bu 2
  202279. 96c9dc10f7 Merge pull request \fI\%#38774\fP from vutny/dev\-test\-docs
  202280. .INDENT 2.0
  202281. .IP \(bu 2
  202282. 4620dc4afa DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  202283. .UNINDENT
  202284. .IP \(bu 2
  202285. aedfbb7a43 Merge pull request \fI\%#38749\fP from vutny/pkg\-build\-better\-exception\-msg
  202286. .INDENT 2.0
  202287. .IP \(bu 2
  202288. 53f2be5b21 pkg build modules throw better exception message if keyid wasn\(aqt found
  202289. .UNINDENT
  202290. .UNINDENT
  202291. .IP \(bu 2
  202292. \fBPR\fP \fI\%#38660\fP: (\fI\%techhat\fP) Don\(aqt force salt.cache to use cachedir from opts
  202293. @ \fI2017\-01\-17 18:38:35 UTC\fP
  202294. .INDENT 2.0
  202295. .IP \(bu 2
  202296. 4e6146f65f Merge pull request \fI\%#38660\fP from techhat/cachedir
  202297. .IP \(bu 2
  202298. be55b57abf One last fix
  202299. .IP \(bu 2
  202300. fc24b24998 Add correct function name
  202301. .IP \(bu 2
  202302. 9bbecf7960 Typo fix
  202303. .IP \(bu 2
  202304. 436ba28f08 Change getlist back to list (using _list)
  202305. .IP \(bu 2
  202306. ff734fe93b Default to CACHE_DIR in syspaths
  202307. .IP \(bu 2
  202308. 380abd3744 Add cachedir args to tests
  202309. .IP \(bu 2
  202310. deb08c0587 Not every module will need cachedir
  202311. .IP \(bu 2
  202312. 4489f7cac0 Don\(aqt force salt.cache to use cachedir from opts
  202313. .UNINDENT
  202314. .IP \(bu 2
  202315. \fBISSUE\fP \fI\%#37948\fP: (\fI\%djacobs2016\fP) ssh_known_hosts.present is failing when checking key/host (refs: \fI\%#37982\fP)
  202316. .IP \(bu 2
  202317. \fBISSUE\fP \fI\%#33932\fP: (\fI\%folti\fP) ssh_known_hosts.present: hashing global known hosts file makes it readable by root only (refs: \fI\%#33933\fP)
  202318. .IP \(bu 2
  202319. \fBPR\fP \fI\%#38667\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37982\fP to 2016.11
  202320. @ \fI2017\-01\-17 15:42:13 UTC\fP
  202321. .INDENT 2.0
  202322. .IP \(bu 2
  202323. \fBPR\fP \fI\%#37982\fP: (\fI\%wolfpackmars2\fP) Update ssh.py (refs: \fI\%#38667\fP)
  202324. .IP \(bu 2
  202325. \fBPR\fP \fI\%#33933\fP: (\fI\%folti\fP) ssh: keep original permissions, when hashing known_hosts (refs: \fI\%#38667\fP)
  202326. .IP \(bu 2
  202327. 89dc86e2bc Merge pull request \fI\%#38667\fP from rallytime/bp\-37982
  202328. .IP \(bu 2
  202329. be91e46a93 Update ssh.py
  202330. .UNINDENT
  202331. .IP \(bu 2
  202332. \fBPR\fP \fI\%#38759\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202333. @ \fI2017\-01\-17 15:22:01 UTC\fP
  202334. .INDENT 2.0
  202335. .IP \(bu 2
  202336. 751e14c523 Merge pull request \fI\%#38759\fP from rallytime/merge\-2016.11
  202337. .IP \(bu 2
  202338. 30e8a66fb0 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202339. .INDENT 2.0
  202340. .IP \(bu 2
  202341. 8466b34e82 Merge pull request \fI\%#38743\fP from rallytime/merge\-2016.3
  202342. .INDENT 2.0
  202343. .IP \(bu 2
  202344. d24776f5e9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  202345. .IP \(bu 2
  202346. 6869621ed1 Merge pull request \fI\%#38731\fP from rallytime/merge\-2015.8
  202347. .INDENT 2.0
  202348. .IP \(bu 2
  202349. 9eb191b6ac Pylint fix
  202350. .IP \(bu 2
  202351. b910499dbe Various follow up fixes
  202352. .IP \(bu 2
  202353. e8309a6bbf Add release notes for 2015.8.13
  202354. .IP \(bu 2
  202355. f881f366b7 Merge pull request \fI\%#20\fP from rallytime/2015.8.12_follow_up\-batch\-tests
  202356. .INDENT 2.0
  202357. .IP \(bu 2
  202358. 34282322c0 Clean up tests and docs for batch execution
  202359. .UNINDENT
  202360. .IP \(bu 2
  202361. c80b20b957 Merge pull request \fI\%#19\fP from whiteinge/batchclient
  202362. .INDENT 2.0
  202363. .IP \(bu 2
  202364. 3d8f3d18f6 Remove batch execution from NetapiClient and Saltnado
  202365. .UNINDENT
  202366. .IP \(bu 2
  202367. 97b0f64923 Lintfix
  202368. .IP \(bu 2
  202369. d1516664f7 Add explanation comment
  202370. .IP \(bu 2
  202371. 62f2c87080 Add docstring
  202372. .IP \(bu 2
  202373. 9b0a786aeb Explain what it is about and how to configure that
  202374. .IP \(bu 2
  202375. 5ea3579e10 Pick up a specified roster file from the configured locations
  202376. .IP \(bu 2
  202377. 3a8614c5df Disable custom rosters in API
  202378. .IP \(bu 2
  202379. c0e5a1171d Add roster disable flag
  202380. .UNINDENT
  202381. .IP \(bu 2
  202382. e9c59e9b8f Merge pull request \fI\%#38602\fP from terminalmage/fix\-boto\-test
  202383. .IP \(bu 2
  202384. 3424a108ac Fix failing unit.states.boto_vpc_test.BotoVpcRouteTableTestCase.test_present_with_routes
  202385. .UNINDENT
  202386. .IP \(bu 2
  202387. a642cdef79 Merge pull request \fI\%#38723\fP from rallytime/fix\-38674
  202388. .INDENT 2.0
  202389. .IP \(bu 2
  202390. 706c885f55 Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  202391. .UNINDENT
  202392. .IP \(bu 2
  202393. fc545af10b Merge pull request \fI\%#38669\fP from rallytime/update\-bootstrap\-script
  202394. .INDENT 2.0
  202395. .IP \(bu 2
  202396. 78ba76e34c Update bootstrap script verstion to latest release
  202397. .UNINDENT
  202398. .IP \(bu 2
  202399. 50d417f267 Merge pull request \fI\%#38693\fP from twangboy/update_jinja
  202400. .INDENT 2.0
  202401. .IP \(bu 2
  202402. e0c7e5549b Update jinja2 to 2.9.4
  202403. .UNINDENT
  202404. .IP \(bu 2
  202405. f4233bb18d Merge pull request \fI\%#38739\fP from vutny/fix\-runtests\-doc
  202406. .INDENT 2.0
  202407. .IP \(bu 2
  202408. b872bb63f6 DOCS: correct examples of running test suite
  202409. .UNINDENT
  202410. .IP \(bu 2
  202411. 51d4707071 DOCS: add links to File State Backups page where necessary (\fI\%#38735\fP)
  202412. .IP \(bu 2
  202413. 6d3717b9ee Proofread jinja_to_execution_module tutorial (\fI\%#38720\fP)
  202414. .UNINDENT
  202415. .UNINDENT
  202416. .IP \(bu 2
  202417. \fBISSUE\fP \fI\%#38775\fP: (\fI\%charburns\fP) Error using napalm netusers (refs: \fI\%#38778\fP)
  202418. .IP \(bu 2
  202419. \fBPR\fP \fI\%#38778\fP: (\fI\%mirceaulinic\fP) Fix "Error using napalm netusers"
  202420. @ \fI2017\-01\-17 15:20:27 UTC\fP
  202421. .INDENT 2.0
  202422. .IP \(bu 2
  202423. bb6291d93a Merge pull request \fI\%#38778\fP from cloudflare/fix\-38775
  202424. .IP \(bu 2
  202425. b3388f7162 Fix \fI\%#38775\fP
  202426. .UNINDENT
  202427. .IP \(bu 2
  202428. \fBISSUE\fP \fI\%#38528\fP: (\fI\%MorphBonehunter\fP) x509 make permissions configurable (refs: \fI\%#38664\fP)
  202429. .IP \(bu 2
  202430. \fBISSUE\fP \fI\%#38081\fP: (\fI\%haraldrudell\fP) x509 state or module cannot generate password protected private keys (refs: \fI\%#38664\fP)
  202431. .IP \(bu 2
  202432. \fBPR\fP \fI\%#38664\fP: (\fI\%clinta\fP) X509 Improvements. Expose setting permissions, encrypted private keys, and combined key and cert management in one state
  202433. @ \fI2017\-01\-17 02:20:18 UTC\fP
  202434. .INDENT 2.0
  202435. .IP \(bu 2
  202436. 6663107021 Merge pull request \fI\%#38664\fP from clinta/x509\-passphrase2
  202437. .IP \(bu 2
  202438. 77c78723fe pep8
  202439. .IP \(bu 2
  202440. a2b20ee518 No mutable default args, remove unneeded import
  202441. .IP \(bu 2
  202442. b48b85cc70 bug fixes
  202443. .IP \(bu 2
  202444. f62393b864 pep8
  202445. .IP \(bu 2
  202446. c8613243a1 change documentation
  202447. .IP \(bu 2
  202448. 9a0abde9ac expose passphrase functionality to state
  202449. .IP \(bu 2
  202450. e47a93d496 add passphrase to execution module
  202451. .IP \(bu 2
  202452. a4d6598f1e preserve detailed change reports
  202453. .IP \(bu 2
  202454. d0ad251778 combine private key and cert management
  202455. .IP \(bu 2
  202456. 3d1474d911 cross call file.managed to get permissions options
  202457. .UNINDENT
  202458. .IP \(bu 2
  202459. \fBPR\fP \fI\%#38682\fP: (\fI\%mirceaulinic\fP) [2016.11.2/napalm] Better error message when NotImplementedError raised
  202460. @ \fI2017\-01\-15 18:34:25 UTC\fP
  202461. .INDENT 2.0
  202462. .IP \(bu 2
  202463. bf6d74c98e Merge pull request \fI\%#38682\fP from cloudflare/NotImplementedError\-MSG
  202464. .IP \(bu 2
  202465. f847639dee Better error message when NotImplementedError raised
  202466. .UNINDENT
  202467. .IP \(bu 2
  202468. \fBISSUE\fP \fI\%#37996\fP: (\fI\%stefan\-as\fP) influxdb_user.present does not pass client_args (refs: \fI\%#38695\fP)
  202469. .IP \(bu 2
  202470. \fBPR\fP \fI\%#38695\fP: (\fI\%rallytime\fP) Pass in client_args when calling influxdb execution module funcs
  202471. @ \fI2017\-01\-15 18:33:48 UTC\fP
  202472. .INDENT 2.0
  202473. .IP \(bu 2
  202474. df12e49d80 Merge pull request \fI\%#38695\fP from rallytime/fix\-37996
  202475. .IP \(bu 2
  202476. 05b0975888 Pass in client_args when calling influxdb execution module funcs
  202477. .UNINDENT
  202478. .IP \(bu 2
  202479. \fBISSUE\fP \fI\%#38521\fP: (\fI\%vladvasiliu\fP) State cloud.present on AWS: TypeError: \(aqNoneType\(aq object is not iterable (refs: \fI\%#38651\fP)
  202480. .IP \(bu 2
  202481. \fBISSUE\fP \fI\%#37981\fP: (\fI\%tazaki\fP) Salt\-cloud ec2 vpc securitygroupid always returning default (refs: \fI\%#38183\fP)
  202482. .IP \(bu 2
  202483. \fBPR\fP \fI\%#38651\fP: (\fI\%rallytime\fP) Don\(aqt lose the set reference for ec2 securitygroup ids
  202484. @ \fI2017\-01\-15 18:06:25 UTC\fP
  202485. .INDENT 2.0
  202486. .IP \(bu 2
  202487. \fBPR\fP \fI\%#38183\fP: (\fI\%cro\fP) Fix bad set operations when setting up securitygroups in AWS. (refs: \fI\%#38651\fP)
  202488. .IP \(bu 2
  202489. 834e5469fc Merge pull request \fI\%#38651\fP from rallytime/fix\-38521
  202490. .IP \(bu 2
  202491. 830c03cec6 Don\(aqt lose the set reference for ec2 securitygroup ids
  202492. .UNINDENT
  202493. .IP \(bu 2
  202494. \fBISSUE\fP \fI\%#38216\fP: (\fI\%pgrishin\fP) salt\-run: can\(aqt get cache.grains (refs: \fI\%#38659\fP)
  202495. .IP \(bu 2
  202496. \fBPR\fP \fI\%#38659\fP: (\fI\%techhat\fP) Turn None into an empty string (for minion matching)
  202497. @ \fI2017\-01\-15 18:02:03 UTC\fP
  202498. .INDENT 2.0
  202499. .IP \(bu 2
  202500. 8b38cfea8d Merge pull request \fI\%#38659\fP from techhat/issue38216
  202501. .IP \(bu 2
  202502. 4073c91584 Turn None into an empty string (for minion matching)
  202503. .UNINDENT
  202504. .IP \(bu 2
  202505. \fBPR\fP \fI\%#38703\fP: (\fI\%yhekma\fP) The \fItest\fP option is only valid for the minion, not the master
  202506. @ \fI2017\-01\-15 17:56:22 UTC\fP
  202507. .INDENT 2.0
  202508. .IP \(bu 2
  202509. 0ad5d22ad4 Merge pull request \fI\%#38703\fP from yhekma/docfix
  202510. .IP \(bu 2
  202511. 57df3bf148 The \fItest\fP option is only valid for the minion, not the master
  202512. .UNINDENT
  202513. .IP \(bu 2
  202514. \fBPR\fP \fI\%#38718\fP: (\fI\%terminalmage\fP) Fix for dynamic git_pillar when pillarenv is used
  202515. @ \fI2017\-01\-15 14:37:30 UTC\fP
  202516. .INDENT 2.0
  202517. .IP \(bu 2
  202518. 8c1222e7db Merge pull request \fI\%#38718\fP from terminalmage/zd909
  202519. .IP \(bu 2
  202520. 12bbea5a24 Fix for dynamic git_pillar when pillarenv is used
  202521. .UNINDENT
  202522. .IP \(bu 2
  202523. \fBISSUE\fP \fI\%#38677\fP: (\fI\%yhekma\fP) consul cache backend broken (refs: \fI\%#38676\fP)
  202524. .IP \(bu 2
  202525. \fBPR\fP \fI\%#38676\fP: (\fI\%yhekma\fP) Removed overloading of list()
  202526. @ \fI2017\-01\-15 05:42:13 UTC\fP
  202527. .INDENT 2.0
  202528. .IP \(bu 2
  202529. aae8b54860 Merge pull request \fI\%#38676\fP from yhekma/2016.11
  202530. .IP \(bu 2
  202531. 3237d23e1c Localfs should also be changed of course
  202532. .IP \(bu 2
  202533. 9d9de67219 We do not want to overload the list() type because if we do, we turn this function into a recursive one, which results in an exception because set() cannot be concatenated with str (\(aq/\(aq)
  202534. .UNINDENT
  202535. .IP \(bu 2
  202536. \fBISSUE\fP \fI\%#38684\fP: (\fI\%rukender\fP) 2016.11.1 :[ERROR][11182] Failed to import beacons avahi_announce (refs: \fI\%#38713\fP)
  202537. .IP \(bu 2
  202538. \fBPR\fP \fI\%#38713\fP: (\fI\%rallytime\fP) Add NameError to exception in avahi_announce beacon
  202539. @ \fI2017\-01\-15 05:33:04 UTC\fP
  202540. .INDENT 2.0
  202541. .IP \(bu 2
  202542. c246ab41c5 Merge pull request \fI\%#38713\fP from rallytime/fix\-38684
  202543. .IP \(bu 2
  202544. db60bed24c Add NameError to exception in avahi_announce beacon
  202545. .UNINDENT
  202546. .IP \(bu 2
  202547. \fBPR\fP \fI\%#38729\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202548. @ \fI2017\-01\-13 23:15:33 UTC\fP
  202549. .INDENT 2.0
  202550. .IP \(bu 2
  202551. 6c14774c04 Merge pull request \fI\%#38729\fP from rallytime/merge\-2016.11
  202552. .IP \(bu 2
  202553. 4e1e45d640 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202554. .IP \(bu 2
  202555. 7b850d472d Merge pull request \fI\%#38647\fP from gtmanfred/nova
  202556. .INDENT 2.0
  202557. .IP \(bu 2
  202558. 5be9b60851 add documentation about using keystoneauth for v3
  202559. .IP \(bu 2
  202560. 7b657ca4ae add the ability to use keystone v2 and v3
  202561. .IP \(bu 2
  202562. 5646ae1b34 add ability to use keystoneauth to authenitcate in nova driver
  202563. .UNINDENT
  202564. .IP \(bu 2
  202565. 383768d838 Merge pull request \fI\%#38650\fP from rallytime/remove\-ubuntu\-ppa\-docs
  202566. .INDENT 2.0
  202567. .IP \(bu 2
  202568. 30429b2e44 Remove the installation instructions for out\-of\-date community ppa
  202569. .UNINDENT
  202570. .IP \(bu 2
  202571. 7d9f56e3b5 Merge pull request \fI\%#38657\fP from DSRCorporation/bugs/38087_syndic_event_format_fix
  202572. .INDENT 2.0
  202573. .IP \(bu 2
  202574. 594c33f396 Publish the \(aqdata\(aq field content for Syndic evets
  202575. .UNINDENT
  202576. .IP \(bu 2
  202577. 83987511fd Merge pull request \fI\%#38649\fP from Ch3LL/test_apply_template
  202578. .INDENT 2.0
  202579. .IP \(bu 2
  202580. 47f8b68e0b fix unit.modules.file_test
  202581. .UNINDENT
  202582. .UNINDENT
  202583. .IP \(bu 2
  202584. \fBISSUE\fP \fI\%#38631\fP: (\fI\%doitian\fP) In Orchestration, kwargs are not passed to state.sls in masterless mode (refs: \fI\%#38635\fP)
  202585. .IP \(bu 2
  202586. \fBPR\fP \fI\%#38635\fP: (\fI\%lorengordon\fP) Sends pass\-through params to state module
  202587. @ \fI2017\-01\-10 20:01:59 UTC\fP
  202588. .INDENT 2.0
  202589. .IP \(bu 2
  202590. cfd82d1631 Merge pull request \fI\%#38635\fP from lorengordon/issue\-38631
  202591. .IP \(bu 2
  202592. 14666138b9 Sends pass\-through params to state module
  202593. .UNINDENT
  202594. .IP \(bu 2
  202595. \fBPR\fP \fI\%#38640\fP: (\fI\%mirceaulinic\fP) Import napalm_base instead of napalm
  202596. @ \fI2017\-01\-10 19:58:01 UTC\fP
  202597. .INDENT 2.0
  202598. .IP \(bu 2
  202599. 017094a207 Merge pull request \fI\%#38640\fP from cloudflare/NAPALM\-IMPORTS
  202600. .IP \(bu 2
  202601. 8f13f63880 Import napalm_base instead of napalm
  202602. .UNINDENT
  202603. .IP \(bu 2
  202604. \fBPR\fP \fI\%#38661\fP: (\fI\%techhat\fP) Add sane cache defaults for minion and cloud
  202605. @ \fI2017\-01\-10 19:55:15 UTC\fP
  202606. .INDENT 2.0
  202607. .IP \(bu 2
  202608. 79663132dd Merge pull request \fI\%#38661\fP from techhat/sanedefault
  202609. .IP \(bu 2
  202610. aee40648ec Add a sane cache default for cloud
  202611. .IP \(bu 2
  202612. c9e01a36e7 Add a sane cache default for minions
  202613. .UNINDENT
  202614. .IP \(bu 2
  202615. \fBPR\fP \fI\%#38645\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202616. @ \fI2017\-01\-10 19:54:06 UTC\fP
  202617. .INDENT 2.0
  202618. .IP \(bu 2
  202619. b0ed91ce2d Merge pull request \fI\%#38645\fP from rallytime/merge\-2016.11
  202620. .IP \(bu 2
  202621. 7a668e9749 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202622. .IP \(bu 2
  202623. 74ddc71be3 Merge pull request \fI\%#38626\fP from saltstack/revert\-37358\-2016.3.3_issue37355
  202624. .INDENT 2.0
  202625. .IP \(bu 2
  202626. e912ac99c2 Revert "Fix/workaround for issue \fI\%#37355\fP"
  202627. .UNINDENT
  202628. .IP \(bu 2
  202629. 5e58b32934 Merge pull request \fI\%#37358\fP from Firewire2002/2016.3.3_issue37355
  202630. .INDENT 2.0
  202631. .IP \(bu 2
  202632. 910da18bfd fixed typo
  202633. .IP \(bu 2
  202634. 4fbc5ddd06 fixed wrong renamed variable and spaces
  202635. .IP \(bu 2
  202636. 92366e646c issue \fI\%#37355\fP
  202637. .IP \(bu 2
  202638. 7dc87ab7b8 issue \fI\%#37355\fP
  202639. .IP \(bu 2
  202640. 2878180405 issue \fI\%#37355\fP
  202641. .UNINDENT
  202642. .IP \(bu 2
  202643. 6c2fe615aa Merge pull request \fI\%#35390\fP from alexandr\-orlov/2016.3
  202644. .INDENT 2.0
  202645. .IP \(bu 2
  202646. cd5ae17e8d fxd missed proper grains dictionary
  202647. .UNINDENT
  202648. .IP \(bu 2
  202649. 2579cfa42d Merge pull request \fI\%#38618\fP from rallytime/bp\-38579
  202650. .INDENT 2.0
  202651. .IP \(bu 2
  202652. 2052ecee2c Add copy import
  202653. .IP \(bu 2
  202654. 2c8845aaa0 add test for pillar.get() + default value
  202655. .IP \(bu 2
  202656. c2f98d2f04 ticket 38558: add unit test, deepcopy() only if necessary
  202657. .IP \(bu 2
  202658. 30ae0a1958 added deepcopy of default if merge=True
  202659. .UNINDENT
  202660. .UNINDENT
  202661. .IP \(bu 2
  202662. \fBPR\fP \fI\%#38627\fP: (\fI\%cachedout\fP) Pr 38476
  202663. @ \fI2017\-01\-06 22:05:45 UTC\fP
  202664. .INDENT 2.0
  202665. .IP \(bu 2
  202666. \fBPR\fP \fI\%#38476\fP: (\fI\%amendlik\fP) Key fingerprints (refs: \fI\%#38627\fP)
  202667. .IP \(bu 2
  202668. d67f6937d7 Merge pull request \fI\%#38627\fP from cachedout/pr\-38476
  202669. .IP \(bu 2
  202670. 2a423ffedd Add changes to raetkey
  202671. .IP \(bu 2
  202672. 55ad9d6c6c Add hash_type argument to MultiKeyCLI.finger_all function
  202673. .IP \(bu 2
  202674. c8681269a4 Add hash_type argument to key module fingerprint functions
  202675. .IP \(bu 2
  202676. d0f4c300b7 Add hash_type argument to wheel fingerprint functions
  202677. .IP \(bu 2
  202678. e558ddcb18 Add finger_master function to wheel.key module
  202679. .UNINDENT
  202680. .IP \(bu 2
  202681. \fBISSUE\fP \fI\%#38595\fP: (\fI\%yue9944882\fP) Redis ext job cache occurred error (refs: \fI\%#38610\fP)
  202682. .IP \(bu 2
  202683. \fBPR\fP \fI\%#38610\fP: (\fI\%yue9944882\fP) Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log
  202684. @ \fI2017\-01\-06 21:47:21 UTC\fP
  202685. .INDENT 2.0
  202686. .IP \(bu 2
  202687. b13cd1370f Merge pull request \fI\%#38610\fP from yue9944882/2016.11
  202688. .IP \(bu 2
  202689. 54325cf293 Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log
  202690. .UNINDENT
  202691. .IP \(bu 2
  202692. \fBISSUE\fP \fI\%#36148\fP: (\fI\%alex\-zel\fP) Eauth error with openLDAP groups (refs: \fI\%#38406\fP)
  202693. .IP \(bu 2
  202694. \fBPR\fP \fI\%#38406\fP: (\fI\%alex\-zel\fP) Fix eauth error with openLDAP/389 directory server groups
  202695. @ \fI2017\-01\-06 21:40:30 UTC\fP
  202696. .INDENT 2.0
  202697. .IP \(bu 2
  202698. 179d385003 Merge pull request \fI\%#38406\fP from alex\-zel/fix\-eauth\-groups\-permissions
  202699. .IP \(bu 2
  202700. 6b9e9d8f89 Fix eauth error with openLDAP/389 directory server groups
  202701. .UNINDENT
  202702. .IP \(bu 2
  202703. \fBPR\fP \fI\%#38619\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202704. @ \fI2017\-01\-06 17:51:19 UTC\fP
  202705. .INDENT 2.0
  202706. .IP \(bu 2
  202707. 82e9b3d1a1 Merge pull request \fI\%#38619\fP from rallytime/merge\-2016.11
  202708. .IP \(bu 2
  202709. 0efb2d844e Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202710. .INDENT 2.0
  202711. .IP \(bu 2
  202712. da676cebd6 Merge pull request \fI\%#38601\fP from terminalmage/pillar\-get
  202713. .INDENT 2.0
  202714. .IP \(bu 2
  202715. 8613d7254d pillar.get: Raise exception when merge=True and default is not a dict
  202716. .UNINDENT
  202717. .IP \(bu 2
  202718. 224fc7712a Merge pull request \fI\%#38600\fP from terminalmage/issue38459\-2016.3
  202719. .INDENT 2.0
  202720. .IP \(bu 2
  202721. 8a45b13e76 Avoid errors when sudo_user is set
  202722. .UNINDENT
  202723. .IP \(bu 2
  202724. a376970f88 Merge pull request \fI\%#38589\fP from tobithiel/fix_rvm_rbenv_warning
  202725. .INDENT 2.0
  202726. .IP \(bu 2
  202727. 9ec470b4a5 State Gem: fix incorrect warning about missing rvm/rbenv
  202728. .UNINDENT
  202729. .IP \(bu 2
  202730. 02e6a78254 Merge pull request \fI\%#38567\fP from pass\-by\-value/pgjsonb_queue_changes_2016.3
  202731. .INDENT 2.0
  202732. .IP \(bu 2
  202733. 67879ebe65 Create queue if one doesn\(aqt exist
  202734. .UNINDENT
  202735. .IP \(bu 2
  202736. 0889cbdb31 Merge pull request \fI\%#38587\fP from rallytime/fix\-37498
  202737. .INDENT 2.0
  202738. .IP \(bu 2
  202739. 2a5880966f Change daemontools __virtualname__ from service to daemontools
  202740. .UNINDENT
  202741. .UNINDENT
  202742. .UNINDENT
  202743. .IP \(bu 2
  202744. \fBPR\fP \fI\%#38612\fP: (\fI\%sjorge\fP) network.ifacestartswith throws exception on Solaris\-like platforms
  202745. @ \fI2017\-01\-06 17:20:32 UTC\fP
  202746. .INDENT 2.0
  202747. .IP \(bu 2
  202748. f64e003a69 Merge pull request \fI\%#38612\fP from sjorge/2016.11\-solaris\-ifacestartswith
  202749. .IP \(bu 2
  202750. 26fae54f5b network.ifacestartswith throws exception on Solaris\-like platforms
  202751. .UNINDENT
  202752. .IP \(bu 2
  202753. \fBISSUE\fP \fI\%#37027\fP: (\fI\%sjorge\fP) Solaris FQDN/UQDN and documentation/consistancy (refs: \fI\%#38615\fP)
  202754. .IP \(bu 2
  202755. \fBPR\fP \fI\%#38615\fP: (\fI\%sjorge\fP) add note related to issue \fI\%#37027\fP
  202756. @ \fI2017\-01\-06 16:38:34 UTC\fP
  202757. .INDENT 2.0
  202758. .IP \(bu 2
  202759. 5820ceee16 Merge pull request \fI\%#38615\fP from sjorge/2016.11\-solarisdocs
  202760. .IP \(bu 2
  202761. fbdd32f46b add note related to issue \fI\%#37027\fP
  202762. .UNINDENT
  202763. .IP \(bu 2
  202764. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP, \fI\%#38599\fP)
  202765. @ \fI2017\-01\-05 23:16:22 UTC\fP
  202766. .INDENT 2.0
  202767. .IP \(bu 2
  202768. a27fdb46a7 Merge pull request \fI\%#38598\fP from terminalmage/issue38459
  202769. .IP \(bu 2
  202770. b37f7ffa38 Avoid errors when sudo_user is set
  202771. .UNINDENT
  202772. .IP \(bu 2
  202773. \fBPR\fP \fI\%#38599\fP: (\fI\%terminalmage\fP) archive.extracted: Prevent traceback when state.single cannot be run
  202774. @ \fI2017\-01\-05 23:16:11 UTC\fP
  202775. .INDENT 2.0
  202776. .IP \(bu 2
  202777. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP, \fI\%#38599\fP)
  202778. .IP \(bu 2
  202779. d6b7019df6 Merge pull request \fI\%#38599\fP from terminalmage/archive\-results\-handling
  202780. .IP \(bu 2
  202781. 9aceb8186d archive.extracted: Prevent traceback when state.single cannot be run
  202782. .UNINDENT
  202783. .IP \(bu 2
  202784. \fBISSUE\fP \fI\%#38517\fP: (\fI\%basdusee\fP) Slack.py engine 100% CPU load due to missing time.sleep(1) (refs: \fI\%#38520\fP)
  202785. .IP \(bu 2
  202786. \fBPR\fP \fI\%#38520\fP: (\fI\%basdusee\fP) Fix issue \fI\%#38517\fP, added time.sleep(1) at line 227 in slack.py
  202787. @ \fI2017\-01\-05 20:35:08 UTC\fP
  202788. .INDENT 2.0
  202789. .IP \(bu 2
  202790. d486b42ceb Merge pull request \fI\%#38520\fP from basdusee/fix\-issue\-38517
  202791. .IP \(bu 2
  202792. e3a883c915 Small fix on the fix regarding indentation
  202793. .IP \(bu 2
  202794. 8adeae6f81 Fix issue \fI\%#38517\fP, added time.sleep(1) at line 227 in slack.py engine.
  202795. .UNINDENT
  202796. .IP \(bu 2
  202797. \fBISSUE\fP \fI\%#38485\fP: (\fI\%wasabi222\fP) bgp.config not working (refs: \fI\%#38499\fP)
  202798. .IP \(bu 2
  202799. \fBPR\fP \fI\%#38577\fP: (\fI\%mirceaulinic\fP) Fix function headers as per \fI\%#38499\fP
  202800. @ \fI2017\-01\-05 18:41:33 UTC\fP
  202801. .INDENT 2.0
  202802. .IP \(bu 2
  202803. \fBPR\fP \fI\%#38499\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#38485\fP (refs: \fI\%#38577\fP)
  202804. .IP \(bu 2
  202805. 0706cde626 Merge pull request \fI\%#38577\fP from cloudflare/PREP\-2016.11.2
  202806. .IP \(bu 2
  202807. 62bee3c793 Fix function headers as per \fI\%#38499\fP
  202808. .UNINDENT
  202809. .IP \(bu 2
  202810. \fBPR\fP \fI\%#38578\fP: (\fI\%mirceaulinic\fP) [2016.11] Port 5123f11 from develop into 2016.11.2
  202811. @ \fI2017\-01\-05 18:11:12 UTC\fP
  202812. .INDENT 2.0
  202813. .IP \(bu 2
  202814. 55d1747792 Merge pull request \fI\%#38578\fP from cloudflare/PORT\-5123f1
  202815. .IP \(bu 2
  202816. dea7866d57 Update net.load_template doc: 2016.11.2
  202817. .UNINDENT
  202818. .IP \(bu 2
  202819. \fBISSUE\fP \fI\%#38462\fP: (\fI\%g\-shockfx\fP) Can\(gat add beacon memusage on Windows (refs: \fI\%#38584\fP)
  202820. .IP \(bu 2
  202821. \fBPR\fP \fI\%#38584\fP: (\fI\%rallytime\fP) Allow memusage beacon to load on Windows
  202822. @ \fI2017\-01\-05 18:08:30 UTC\fP
  202823. .INDENT 2.0
  202824. .IP \(bu 2
  202825. be69bafe6e Merge pull request \fI\%#38584\fP from rallytime/fix\-38462
  202826. .IP \(bu 2
  202827. 1fe945df5e Allow memusage beacon to load on Windows
  202828. .UNINDENT
  202829. .IP \(bu 2
  202830. \fBPR\fP \fI\%#38570\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38585\fP)
  202831. @ \fI2017\-01\-05 14:28:38 UTC\fP
  202832. .INDENT 2.0
  202833. .IP \(bu 2
  202834. 14b643fd48 Merge pull request \fI\%#38570\fP from rallytime/merge\-2016.11
  202835. .IP \(bu 2
  202836. 30f14d15df Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202837. .IP \(bu 2
  202838. 7b74436d13 Merge pull request \fI\%#38562\fP from rallytime/arch\-install\-docs
  202839. .INDENT 2.0
  202840. .IP \(bu 2
  202841. 8b1897ace9 Update arch installation docs with correct package name
  202842. .UNINDENT
  202843. .IP \(bu 2
  202844. 01860702cb Merge pull request \fI\%#38560\fP from Ch3LL/fix_api_log
  202845. .INDENT 2.0
  202846. .IP \(bu 2
  202847. 1b45e9670b fix api logfile
  202848. .UNINDENT
  202849. .IP \(bu 2
  202850. 0056620a53 Merge pull request \fI\%#38531\fP from rallytime/bp\-33601
  202851. .INDENT 2.0
  202852. .IP \(bu 2
  202853. c36cb39825 remove the unnecessary double trigger
  202854. .IP \(bu 2
  202855. 38414493bf fix spacing lint error
  202856. .IP \(bu 2
  202857. 8c1defc710 Remove uncessary type from alias commands. Deduplicate alias handling to autodetect function selection. Add error reporting to slack connectivty problems. Cleanup slack\(aqs unicode conversion
  202858. .IP \(bu 2
  202859. c2f23bc45e Fix slack engine to run on python2.6
  202860. .UNINDENT
  202861. .IP \(bu 2
  202862. 50242c7f17 Merge pull request \fI\%#38541\fP from techhat/issue38187
  202863. .INDENT 2.0
  202864. .IP \(bu 2
  202865. eae3a435dd Strip user:pass from cached URLs
  202866. .UNINDENT
  202867. .IP \(bu 2
  202868. 325dc56e59 Merge pull request \fI\%#38554\fP from multani/fix/30454
  202869. .INDENT 2.0
  202870. .IP \(bu 2
  202871. 2e7f743371 yaml: support unicode serialization/deserialization
  202872. .IP \(bu 2
  202873. df76113c5c jinja: test the "yaml" filter with ordered dicts
  202874. .IP \(bu 2
  202875. f7712d417f Revert "Add yaml_safe filter"
  202876. .UNINDENT
  202877. .IP \(bu 2
  202878. 4ddbc2ecaa add note about pyVmomi locale workaround (\fI\%#38536\fP)
  202879. .IP \(bu 2
  202880. 1c951d152b fix gce image bug (\fI\%#38542\fP)
  202881. .UNINDENT
  202882. .IP \(bu 2
  202883. \fBPR\fP \fI\%#38509\fP: (\fI\%mostafahussein\fP) Stop request from being processed if bad ip
  202884. @ \fI2017\-01\-04 20:05:44 UTC\fP
  202885. .INDENT 2.0
  202886. .IP \(bu 2
  202887. 9a1550d336 Merge pull request \fI\%#38509\fP from mostafahussein/2016.11
  202888. .IP \(bu 2
  202889. 8847289c3e remove commented code
  202890. .IP \(bu 2
  202891. 420817a963 Stop request from being processed if bad ip
  202892. .UNINDENT
  202893. .IP \(bu 2
  202894. \fBISSUE\fP \fI\%#38518\fP: (\fI\%kkoppel\fP) slack_notify.call_hook returns tracebacks (refs: \fI\%#38522\fP)
  202895. .IP \(bu 2
  202896. \fBPR\fP \fI\%#38522\fP: (\fI\%kkoppel\fP) Fix usage of salt.utils.http.query in slack_notify.call_hook
  202897. @ \fI2017\-01\-04 20:04:57 UTC\fP
  202898. .INDENT 2.0
  202899. .IP \(bu 2
  202900. bc07d420e9 Merge pull request \fI\%#38522\fP from kkoppel/fix\-issue\-38518
  202901. .IP \(bu 2
  202902. ff1e7f0c71 Fix usage of salt.utils.http.query in slack_notify.call_hook
  202903. .UNINDENT
  202904. .IP \(bu 2
  202905. \fBISSUE\fP \fI\%#38524\fP: (\fI\%rbjorklin\fP) salt\-api seems to ignore rest_timeout since 2016.11.0 (refs: \fI\%#38585\fP, \fI\%#38527\fP)
  202906. .IP \(bu 2
  202907. \fBPR\fP \fI\%#38527\fP: (\fI\%rbjorklin\fP) salt\-api no longer forces the default timeout (refs: \fI\%#38585\fP)
  202908. @ \fI2017\-01\-04 17:10:15 UTC\fP
  202909. .INDENT 2.0
  202910. .IP \(bu 2
  202911. 42fef270ee Merge pull request \fI\%#38527\fP from rbjorklin/api\-timeout\-fix
  202912. .IP \(bu 2
  202913. 0202f68820 salt\-api no longer forces the default timeout
  202914. .UNINDENT
  202915. .IP \(bu 2
  202916. \fBPR\fP \fI\%#38529\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  202917. @ \fI2017\-01\-04 17:06:57 UTC\fP
  202918. .INDENT 2.0
  202919. .IP \(bu 2
  202920. 1895eb7533 Merge pull request \fI\%#38529\fP from rallytime/merge\-2016.11
  202921. .IP \(bu 2
  202922. 85f470207c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  202923. .INDENT 2.0
  202924. .IP \(bu 2
  202925. ec60f9c721 Merge pull request \fI\%#38487\fP from gtmanfred/2016.3
  202926. .INDENT 2.0
  202927. .IP \(bu 2
  202928. 048b9f6b9d add test
  202929. .IP \(bu 2
  202930. c480c11528 allow spaces in cron env
  202931. .IP \(bu 2
  202932. c529ec8c34 allow crons to have multiple spaces
  202933. .UNINDENT
  202934. .IP \(bu 2
  202935. c5ba11b5e0 Merge pull request \fI\%#38491\fP from gtmanfred/timing
  202936. .INDENT 2.0
  202937. .IP \(bu 2
  202938. 79368c7528 Use UTC for timing in case timezone changes
  202939. .UNINDENT
  202940. .IP \(bu 2
  202941. 86f0aa0bb3 Merge pull request \fI\%#38503\fP from jinm/issue_38472_jinm
  202942. .INDENT 2.0
  202943. .IP \(bu 2
  202944. 0cd9df299f Hash type fallback for file management
  202945. .UNINDENT
  202946. .IP \(bu 2
  202947. ed2ba4bd1b Merge pull request \fI\%#38457\fP from bshelton229/git\-latest\-head\-bug
  202948. .INDENT 2.0
  202949. .IP \(bu 2
  202950. 558e7a771a Stops git.latest checking for local changes in a bare repo
  202951. .UNINDENT
  202952. .IP \(bu 2
  202953. 36e21b22cb Merge pull request \fI\%#38385\fP from dragon788/2016.3\-double\-dash
  202954. .INDENT 2.0
  202955. .IP \(bu 2
  202956. 86c4b56f47 Newline for lint compat
  202957. .IP \(bu 2
  202958. 9d9b686057 Address review comments, consistency of quotes
  202959. .IP \(bu 2
  202960. df9bd5e7f9 Use unambigous long names with double dashes
  202961. .UNINDENT
  202962. .IP \(bu 2
  202963. 59f2560d88 Merge pull request \fI\%#38474\fP from cachedout/key_loop
  202964. .INDENT 2.0
  202965. .IP \(bu 2
  202966. de504538e1 Allow an existing ioloop to be passed to salt\-key
  202967. .UNINDENT
  202968. .IP \(bu 2
  202969. 3d0c752acd Merge pull request \fI\%#38467\fP from gtmanfred/2016.3
  202970. .INDENT 2.0
  202971. .IP \(bu 2
  202972. 7b7c6b3878 file.line fail with mode=delete
  202973. .UNINDENT
  202974. .IP \(bu 2
  202975. 940025d5c4 Merge pull request \fI\%#38434\fP from slinn0/issue_38433_fixes
  202976. .INDENT 2.0
  202977. .IP \(bu 2
  202978. 22af87a3fc Fixes for \fI\%https://github.com/saltstack/salt/issues/38433\fP
  202979. .UNINDENT
  202980. .IP \(bu 2
  202981. e5eb51255b Update deprecation notices to the correct version (\fI\%#38421\fP)
  202982. .IP \(bu 2
  202983. 9ce53318df file.managed: Fix failure when filename contains unicode chars (\fI\%#38415\fP)
  202984. .IP \(bu 2
  202985. 2cdb59d055 Merge pull request \fI\%#38419\fP from Ch3LL/fix_doc_scsi
  202986. .INDENT 2.0
  202987. .IP \(bu 2
  202988. 234043b8bb fix scsci docs example
  202989. .UNINDENT
  202990. .UNINDENT
  202991. .UNINDENT
  202992. .IP \(bu 2
  202993. \fBPR\fP \fI\%#38539\fP: (\fI\%twangboy\fP) Fix DSC LCM Config int checks
  202994. @ \fI2017\-01\-04 16:56:27 UTC\fP
  202995. .INDENT 2.0
  202996. .IP \(bu 2
  202997. ec4f118ca2 Merge pull request \fI\%#38539\fP from twangboy/dsc_int_checks
  202998. .IP \(bu 2
  202999. 5657fd1956 Add repr flag for str
  203000. .IP \(bu 2
  203001. aea4219502 Fix DSC LCM Config int checks
  203002. .UNINDENT
  203003. .IP \(bu 2
  203004. \fBPR\fP \fI\%#38549\fP: (\fI\%meaksh\fP) Adding multiple SUBVOLUME support and some fixes to the Snapper module
  203005. @ \fI2017\-01\-04 15:32:30 UTC\fP
  203006. .INDENT 2.0
  203007. .IP \(bu 2
  203008. 53449c89a5 Merge pull request \fI\%#38549\fP from meaksh/2016.11\-snapper\-multiple\-subvolumen\-support
  203009. .IP \(bu 2
  203010. ef26e93bb7 Some fixes and pylint
  203011. .IP \(bu 2
  203012. 1e6ba45db4 Fixes pre/post snapshot order to get the inverse status
  203013. .IP \(bu 2
  203014. 68d5475c1f Fixing Snapper unit tests for SUBVOLUME support
  203015. .IP \(bu 2
  203016. e9919a913f Removing posible double \(aq/\(aq from the file paths
  203017. .IP \(bu 2
  203018. 8b4f87f226 Updating and fixing the documentation
  203019. .IP \(bu 2
  203020. edea45272a Raises "CommandExecutionError" if snapper command fails
  203021. .IP \(bu 2
  203022. 3841e1143b Only include diff in the state response if \fIinclude_diff\fP is True
  203023. .IP \(bu 2
  203024. 7803e7716c Adds multiple SUBVOLUME support to the Snapper module
  203025. .IP \(bu 2
  203026. \fBPR\fP \fI\%#38545\fP: (\fI\%rallytime\fP) Move boto_vpc.describe_route_table deprecation version to Oxygen
  203027. .UNINDENT
  203028. .IP \(bu 2
  203029. \fBPR\fP \fI\%#38471\fP: (\fI\%twangboy\fP) Fix Problem with win_service module
  203030. @ \fI2017\-01\-01 20:30:21 UTC\fP
  203031. .INDENT 2.0
  203032. .IP \(bu 2
  203033. 5e80104a70 Merge pull request \fI\%#38471\fP from twangboy/fix_win_service
  203034. .IP \(bu 2
  203035. 810471b9cd Fix problem with some services getting access denied
  203036. .UNINDENT
  203037. .IP \(bu 2
  203038. \fBISSUE\fP \fI\%#38485\fP: (\fI\%wasabi222\fP) bgp.config not working (refs: \fI\%#38499\fP)
  203039. .IP \(bu 2
  203040. \fBPR\fP \fI\%#38499\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#38485\fP (refs: \fI\%#38577\fP)
  203041. @ \fI2017\-01\-01 17:42:15 UTC\fP
  203042. .INDENT 2.0
  203043. .IP \(bu 2
  203044. 0a09049a2d Merge pull request \fI\%#38499\fP from cloudflare/FIX\-38485
  203045. .IP \(bu 2
  203046. 18018139f3 Fix \fI\%#38485\fP
  203047. .UNINDENT
  203048. .IP \(bu 2
  203049. \fBPR\fP \fI\%#38501\fP: (\fI\%mvdwalle\fP) Do not assume every object is a server
  203050. @ \fI2017\-01\-01 17:37:57 UTC\fP
  203051. .INDENT 2.0
  203052. .IP \(bu 2
  203053. 13f0b809df Merge pull request \fI\%#38501\fP from mvdwalle/fix\-gogrid\-list\-password
  203054. .IP \(bu 2
  203055. bd7dee9a10 Do not assume every object is a server
  203056. .UNINDENT
  203057. .IP \(bu 2
  203058. \fBPR\fP \fI\%#38461\fP: (\fI\%anlutro\fP) Improvements/fixes to kapacitor task change detection
  203059. @ \fI2016\-12\-29 17:08:47 UTC\fP
  203060. .INDENT 2.0
  203061. .IP \(bu 2
  203062. aa0c843553 Merge pull request \fI\%#38461\fP from alprs/fix\-kapacitor_changes
  203063. .IP \(bu 2
  203064. 52721e97d6 clean up and fix tests
  203065. .IP \(bu 2
  203066. 8648775c2a if task is not defined, it\(aqs not up to date
  203067. .IP \(bu 2
  203068. c3ab954c6e improvements/fixes to kapacitor task change detection
  203069. .UNINDENT
  203070. .IP \(bu 2
  203071. \fBPR\fP \fI\%#38473\fP: (\fI\%twangboy\fP) Change OSX/OS X to macOS where possible
  203072. @ \fI2016\-12\-29 16:35:11 UTC\fP
  203073. .INDENT 2.0
  203074. .IP \(bu 2
  203075. 2c51eb9d16 Merge pull request \fI\%#38473\fP from twangboy/osx_to_macos
  203076. .IP \(bu 2
  203077. e96bfe8fa2 Change OSX/OS X to macOS where possible
  203078. .UNINDENT
  203079. .IP \(bu 2
  203080. \fBPR\fP \fI\%#38412\fP: (\fI\%bbinet\fP) Update PillarStack stack.py to latest upstream version
  203081. @ \fI2016\-12\-28 19:28:40 UTC\fP
  203082. .INDENT 2.0
  203083. .IP \(bu 2
  203084. 2497fb547e Merge pull request \fI\%#38412\fP from bbinet/pillarstack\-updates
  203085. .IP \(bu 2
  203086. b66b4bd060 Fix lint violations in stack.py
  203087. .IP \(bu 2
  203088. 6a30fe6aeb Update PillarStack stack.py to latest upstream version
  203089. .UNINDENT
  203090. .IP \(bu 2
  203091. \fBPR\fP \fI\%#38456\fP: (\fI\%twangboy\fP) Gate Windows Specific Salt Utils
  203092. @ \fI2016\-12\-28 18:44:33 UTC\fP
  203093. .INDENT 2.0
  203094. .IP \(bu 2
  203095. 5395d3210a Merge pull request \fI\%#38456\fP from twangboy/gate_win_utils
  203096. .IP \(bu 2
  203097. d34d110a84 Fix lint, fix boto module
  203098. .IP \(bu 2
  203099. c20111142f Gate Windows Utils
  203100. .UNINDENT
  203101. .IP \(bu 2
  203102. \fBPR\fP \fI\%#38428\fP: (\fI\%gqgunhed\fP) fixed typo: lq command\-line syntax
  203103. @ \fI2016\-12\-27 15:42:02 UTC\fP
  203104. .INDENT 2.0
  203105. .IP \(bu 2
  203106. 7c7799162b Merge pull request \fI\%#38428\fP from gqgunhed/fix_lq_typo
  203107. .IP \(bu 2
  203108. d79d682e8b fixed typo: lq command\-line syntax
  203109. .UNINDENT
  203110. .IP \(bu 2
  203111. \fBISSUE\fP \fI\%#38443\fP: (\fI\%lorengordon\fP) 2016.11 breaks file.managed on Windows (refs: \fI\%#38444\fP)
  203112. .IP \(bu 2
  203113. \fBISSUE\fP \fI\%#34101\fP: (\fI\%windoverwater\fP) archive.extracted breakage due to 2016.3.0 upgrade from 2015.8.10 (refs: \fI\%#37368\fP)
  203114. .IP \(bu 2
  203115. \fBPR\fP \fI\%#38444\fP: (\fI\%lorengordon\fP) Adds new import required for \fIextract_hash\fP
  203116. @ \fI2016\-12\-27 15:37:20 UTC\fP
  203117. .INDENT 2.0
  203118. .IP \(bu 2
  203119. \fBPR\fP \fI\%#37368\fP: (\fI\%terminalmage\fP) Overhaul archive.extracted state (refs: \fI\%#38444\fP)
  203120. .IP \(bu 2
  203121. f5984d0f81 Merge pull request \fI\%#38444\fP from lorengordon/issue\-38443
  203122. .IP \(bu 2
  203123. b2925ad7b7 Adds new import required for \fIextract_hash\fP
  203124. .UNINDENT
  203125. .IP \(bu 2
  203126. \fBISSUE\fP \fI\%#38071\fP: (\fI\%luochun\-95\fP) remote execute is very slow (refs: \fI\%#38167\fP)
  203127. .IP \(bu 2
  203128. \fBPR\fP \fI\%#38167\fP: (\fI\%cachedout\fP) Kill pkg_resources for CLI tools [DO NOT MERGE]
  203129. @ \fI2016\-12\-22 22:11:22 UTC\fP
  203130. .INDENT 2.0
  203131. .IP \(bu 2
  203132. 4c4f07ca4c Merge pull request \fI\%#38167\fP from cachedout/no_pkg_resources
  203133. .IP \(bu 2
  203134. ec6901720a Remove debugging
  203135. .IP \(bu 2
  203136. f28e33b9b6 Remove from all but salt cli
  203137. .IP \(bu 2
  203138. bb3af72317 Remove from salt\-call
  203139. .IP \(bu 2
  203140. c676846066 Kill pkg_resources for CLI tools
  203141. .UNINDENT
  203142. .IP \(bu 2
  203143. \fBPR\fP \fI\%#38417\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203144. @ \fI2016\-12\-22 19:00:44 UTC\fP
  203145. .INDENT 2.0
  203146. .IP \(bu 2
  203147. 2fc8c154af Merge pull request \fI\%#38417\fP from rallytime/merge\-2016.11
  203148. .IP \(bu 2
  203149. efb8a8ddf5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203150. .IP \(bu 2
  203151. 27253522c8 Improve pillar documentation (\fI\%#38407\fP)
  203152. .IP \(bu 2
  203153. 423b1fddff Merge pull request \fI\%#38398\fP from terminalmage/issue38372
  203154. .INDENT 2.0
  203155. .IP \(bu 2
  203156. c80dbaa914 Fix call to file.get_managed in cron.file state
  203157. .UNINDENT
  203158. .IP \(bu 2
  203159. 5a33d1e697 Fix http.query when result has no text (\fI\%#38382\fP)
  203160. .IP \(bu 2
  203161. b74b5c7d38 Merge pull request \fI\%#38390\fP from meaksh/2016.3\-fix\-try\-restart\-for\-autorestarting\-on\-SUSE\-systems
  203162. .INDENT 2.0
  203163. .IP \(bu 2
  203164. de6ec05ec0 add try\-restart to fix autorestarting on SUSE systems
  203165. .UNINDENT
  203166. .IP \(bu 2
  203167. 2c3a39760a Merge pull request \fI\%#38221\fP from UtahDave/fix_default_returner
  203168. .INDENT 2.0
  203169. .IP \(bu 2
  203170. 385640765b remove a blank line to satisfy linter
  203171. .IP \(bu 2
  203172. 9c248aa14c validate return opt, remove default.
  203173. .IP \(bu 2
  203174. 8bb37f9fe7 specify allowed types and default for "returner"
  203175. .IP \(bu 2
  203176. 11863a4bfe add examples of default minion returners
  203177. .IP \(bu 2
  203178. e7c6012655 add support for default returners using \fIreturn\fP
  203179. .UNINDENT
  203180. .UNINDENT
  203181. .IP \(bu 2
  203182. \fBPR\fP \fI\%#38342\fP: (\fI\%scthi\fP) Bugfix ext pillar nodegroups
  203183. @ \fI2016\-12\-22 16:47:42 UTC\fP
  203184. .INDENT 2.0
  203185. .IP \(bu 2
  203186. bbc149c67f Merge pull request \fI\%#38342\fP from scthi/bugfix\-ext\-pillar\-nodegroups
  203187. .IP \(bu 2
  203188. dba315c4b6 ext\-pillar nodegroups works for all minions now.
  203189. .UNINDENT
  203190. .IP \(bu 2
  203191. \fBPR\fP \fI\%#38403\fP: (\fI\%terminalmage\fP) git_pillar: Document the transition from env to saltenv in the jinja context
  203192. @ \fI2016\-12\-22 16:34:48 UTC\fP
  203193. .INDENT 2.0
  203194. .IP \(bu 2
  203195. 453476d982 Merge pull request \fI\%#38403\fP from terminalmage/document\-saltenv
  203196. .IP \(bu 2
  203197. 0a72e0f0be git_pillar: Document the transition from env to saltenv in the jinja context
  203198. .UNINDENT
  203199. .IP \(bu 2
  203200. \fBISSUE\fP \fI\%#38253\fP: (\fI\%gmacon\fP) There was no error installing package \(aqsetuptools\(aq although it does not show when calling \(aqpip.freeze\(aq. (refs: \fI\%#38354\fP)
  203201. .IP \(bu 2
  203202. \fBPR\fP \fI\%#38354\fP: (\fI\%gmacon\fP) Use \-\-all when calling pip.py
  203203. @ \fI2016\-12\-20 20:40:21 UTC\fP
  203204. .INDENT 2.0
  203205. .IP \(bu 2
  203206. 12436efb54 Merge pull request \fI\%#38354\fP from gmacon/pip\-freeze\-all
  203207. .IP \(bu 2
  203208. dca24b270e Use \-\-all when calling pip.py
  203209. .UNINDENT
  203210. .IP \(bu 2
  203211. \fBPR\fP \fI\%#38348\fP: (\fI\%rallytime\fP) Update autodoc topics for new modules added in 2016.11
  203212. @ \fI2016\-12\-20 20:36:20 UTC\fP
  203213. .INDENT 2.0
  203214. .IP \(bu 2
  203215. 68430b1fa6 Merge pull request \fI\%#38348\fP from rallytime/mod\-docs\-2016.11
  203216. .IP \(bu 2
  203217. b31c2412ca Add __iter__ and next options to doc/conf.py
  203218. .IP \(bu 2
  203219. b8c16094c4 Revert "Move import/error messaging logic for snapper module into __virtual__()"
  203220. .IP \(bu 2
  203221. 640db5b5ac Move import/error messaging logic for snapper module into __virtual__()
  203222. .IP \(bu 2
  203223. 366271f459 Add snapper to state index doc module list
  203224. .IP \(bu 2
  203225. 135d254c80 Remove netapi autodoc files: they should not be added as their doc structure is different
  203226. .IP \(bu 2
  203227. 0006139aca Update autodoc topics for new modules added in 2016.11
  203228. .UNINDENT
  203229. .IP \(bu 2
  203230. \fBPR\fP \fI\%#38377\fP: (\fI\%DmitryKuzmenko\fP) Implementation and docs for Consul key\-value store plugin for minion data cache.
  203231. @ \fI2016\-12\-20 20:36:02 UTC\fP
  203232. .INDENT 2.0
  203233. .IP \(bu 2
  203234. 6ee7b2bae7 Merge pull request \fI\%#38377\fP from DSRCorporation/features/consul_cache
  203235. .IP \(bu 2
  203236. 6fb4430ae3 Configuration options and documentation for Consul data cache plugin.
  203237. .IP \(bu 2
  203238. dad748f57a Data cache plugin configuration documentation.
  203239. .IP \(bu 2
  203240. c7209cd90c Consul data cache plugin.
  203241. .UNINDENT
  203242. .IP \(bu 2
  203243. \fBPR\fP \fI\%#38373\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38212\fP to 2016.11
  203244. @ \fI2016\-12\-20 20:35:09 UTC\fP
  203245. .INDENT 2.0
  203246. .IP \(bu 2
  203247. \fBPR\fP \fI\%#38212\fP: (\fI\%disaster123\fP) ZMQ: add an option for zmq.BACKLOG to salt master (zmq_backlog) (refs: \fI\%#38373\fP)
  203248. .IP \(bu 2
  203249. f6d1b559bc Merge pull request \fI\%#38373\fP from rallytime/bp\-38212
  203250. .IP \(bu 2
  203251. 52fc6daac0 ZMQ: add an option for zmq.BACKLOG to salt master (zmq_backlog)
  203252. .UNINDENT
  203253. .IP \(bu 2
  203254. \fBPR\fP \fI\%#38374\fP: (\fI\%mirceaulinic\fP) NAPALM proxy module: Fix optional_args key issue
  203255. @ \fI2016\-12\-20 20:34:59 UTC\fP
  203256. .INDENT 2.0
  203257. .IP \(bu 2
  203258. 69c3f19fc1 Merge pull request \fI\%#38374\fP from cloudflare/FIX\-NAPALM\-PROXY
  203259. .IP \(bu 2
  203260. 44169315d8 Fix optional_args key issue
  203261. .UNINDENT
  203262. .IP \(bu 2
  203263. \fBISSUE\fP \fI\%#38048\fP: (\fI\%ezh\fP) [2016.11.0] Salt\-cloud throws TypeError exception (refs: \fI\%#38073\fP)
  203264. .IP \(bu 2
  203265. \fBPR\fP \fI\%#38073\fP: (\fI\%ezh\fP) 2016.11
  203266. @ \fI2016\-12\-20 14:51:11 UTC\fP
  203267. .INDENT 2.0
  203268. .IP \(bu 2
  203269. 530f495955 Merge pull request \fI\%#38073\fP from doublescoring/2016.11
  203270. .IP \(bu 2
  203271. 42d3d26f28 [38073] Fix test assertion
  203272. .IP \(bu 2
  203273. 9b37ead913 Fix broken os.write without string.encode
  203274. .UNINDENT
  203275. .IP \(bu 2
  203276. \fBPR\fP \fI\%#38344\fP: (\fI\%bbinet\fP) Fix influxdb_database.present state
  203277. @ \fI2016\-12\-20 13:57:45 UTC\fP
  203278. .INDENT 2.0
  203279. .IP \(bu 2
  203280. 67908d5aba Merge pull request \fI\%#38344\fP from bbinet/fix\-influx\-createdb
  203281. .IP \(bu 2
  203282. c6b075d6f4 Fix influxdb_database.present state
  203283. .UNINDENT
  203284. .IP \(bu 2
  203285. \fBPR\fP \fI\%#38358\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203286. @ \fI2016\-12\-20 00:11:48 UTC\fP
  203287. .INDENT 2.0
  203288. .IP \(bu 2
  203289. 04d6898958 Merge pull request \fI\%#38358\fP from rallytime/merge\-2016.11
  203290. .IP \(bu 2
  203291. c6e191ad0d Remove doc markup references from 2016.11 branch
  203292. .IP \(bu 2
  203293. 513058945c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203294. .IP \(bu 2
  203295. 09d9cff992 Merge pull request \fI\%#38288\fP from terminalmage/archive\-extracted\-local\-source\-2016.3
  203296. .INDENT 2.0
  203297. .IP \(bu 2
  203298. 845e3d0e75 Update tests to reflect change in cache behavior
  203299. .IP \(bu 2
  203300. 5a08d7c70a archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  203301. .UNINDENT
  203302. .IP \(bu 2
  203303. bf37667f8a Merge pull request \fI\%#38312\fP from cro/proxy_config_in_cfg
  203304. .INDENT 2.0
  203305. .IP \(bu 2
  203306. 2006c4000e Typo
  203307. .IP \(bu 2
  203308. 689d95b10f Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy.
  203309. .UNINDENT
  203310. .IP \(bu 2
  203311. c83db5a785 Merge pull request \fI\%#38320\fP from rallytime/cleanup\-doc\-refs
  203312. .INDENT 2.0
  203313. .IP \(bu 2
  203314. 62978cb7a0 Don\(aqt check the doc/conf.py file for doc markup refs
  203315. .IP \(bu 2
  203316. 770e732d76 Add a unit test to search for new doc markup refs
  203317. .IP \(bu 2
  203318. 5c42a361a0 Remove ":doc:" references from all doc/topics/installation/* files
  203319. .IP \(bu 2
  203320. 23bce1c929 Remove ":doc:" references from all doc/topics/releases/* files
  203321. .IP \(bu 2
  203322. 4aafa41d22 Remove ":doc:" references from a bunch of doc/* files
  203323. .IP \(bu 2
  203324. 02bfe7912c Remove more ":doc:" references from doc/* files
  203325. .IP \(bu 2
  203326. 6e32267d0c Remove ":doc:" references in salt/* files
  203327. .UNINDENT
  203328. .IP \(bu 2
  203329. \fBPR\fP \fI\%#38285\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt try to cache local sources
  203330. .UNINDENT
  203331. .IP \(bu 2
  203332. \fBPR\fP \fI\%#37947\fP: (\fI\%vutny\fP) Fix \fIsalt\-minion\fP initscript for RHEL5 (SysV) to pick up proper python version
  203333. @ \fI2016\-12\-19 21:03:50 UTC\fP
  203334. .INDENT 2.0
  203335. .IP \(bu 2
  203336. 13414949e3 Merge pull request \fI\%#37947\fP from vutny/fix\-rhel5\-minion\-init
  203337. .IP \(bu 2
  203338. c94e798b8a SysV init script for rpm: get and show unique PIDs only
  203339. .IP \(bu 2
  203340. 8ff68c4128 Fix initscript for RHEL5 (SysV) to pick up proper python version
  203341. .UNINDENT
  203342. .IP \(bu 2
  203343. \fBPR\fP \fI\%#38106\fP: (\fI\%techhat\fP) "test" is not necessarily in opts, for thorium
  203344. @ \fI2016\-12\-19 14:40:32 UTC\fP
  203345. .INDENT 2.0
  203346. .IP \(bu 2
  203347. 4d072ca689 Merge pull request \fI\%#38106\fP from techhat/stateget
  203348. .IP \(bu 2
  203349. 5edc16f606 "test" is not necessarily in opts, for thorium
  203350. .UNINDENT
  203351. .IP \(bu 2
  203352. \fBPR\fP \fI\%#38333\fP: (\fI\%amendlik\fP) Suppress errors when checking if an alternative exists
  203353. @ \fI2016\-12\-19 13:40:49 UTC\fP
  203354. .INDENT 2.0
  203355. .IP \(bu 2
  203356. a01fade604 Merge pull request \fI\%#38333\fP from amendlik/states\-alternatives
  203357. .IP \(bu 2
  203358. 8bfcd5bcd5 Adjust alternatives test for updated error message
  203359. .IP \(bu 2
  203360. 09dee3c611 Suppress errors when checking if an alternative exists
  203361. .UNINDENT
  203362. .IP \(bu 2
  203363. \fBPR\fP \fI\%#38340\fP: (\fI\%ewapptus\fP) Backport PR \fI\%#38251\fP: Fixed nested orchestrate not respecting failures
  203364. @ \fI2016\-12\-19 13:31:16 UTC\fP
  203365. .INDENT 2.0
  203366. .IP \(bu 2
  203367. \fBPR\fP \fI\%#38251\fP: (\fI\%ewapptus\fP) Fixed nested orchestrate not respecting failures (refs: \fI\%#38340\fP)
  203368. .IP \(bu 2
  203369. 15d3b476e9 Merge pull request \fI\%#38340\fP from ewapptus/bp\-38251
  203370. .IP \(bu 2
  203371. 266e0a465c Fixed nested orchestrate not respecting failures
  203372. .UNINDENT
  203373. .IP \(bu 2
  203374. \fBPR\fP \fI\%#38229\fP: (\fI\%mcalmer\fP) provide kwargs of sls_build to dockerng.create
  203375. @ \fI2016\-12\-18 13:13:10 UTC\fP
  203376. .INDENT 2.0
  203377. .IP \(bu 2
  203378. ecd441d090 Merge pull request \fI\%#38229\fP from mcalmer/dockerng\-sls_build\-kwargs
  203379. .IP \(bu 2
  203380. e7292fabb7 make it explicit that we want to delete these keys
  203381. .IP \(bu 2
  203382. 4c710139b5 use default values for pop() to prevent KeyError raised
  203383. .IP \(bu 2
  203384. 455c18325c provide kwargs to dockerng.create to provide all features to sls_build as well
  203385. .UNINDENT
  203386. .IP \(bu 2
  203387. \fBISSUE\fP \fI\%#36204\fP: (\fI\%stanvarlamov\fP) Salt\-Cloud: salt.runners.cloud.create exits with True on Python process (ec2.py) exception (refs: \fI\%#37333\fP)
  203388. .IP \(bu 2
  203389. \fBPR\fP \fI\%#38309\fP: (\fI\%ewapptus\fP) Backport PR \fI\%#37333\fP: Fixed state.salt.runner() reporting success on exceptions
  203390. @ \fI2016\-12\-18 12:39:53 UTC\fP
  203391. .INDENT 2.0
  203392. .IP \(bu 2
  203393. \fBPR\fP \fI\%#37333\fP: (\fI\%benediktwerner\fP) Fixed state.salt.runner() reporting success on exceptions (refs: \fI\%#38309\fP)
  203394. .IP \(bu 2
  203395. d2ce9c3e71 Merge pull request \fI\%#38309\fP from ewapptus/bp\-37333
  203396. .IP \(bu 2
  203397. a2b1259671 Fixed display of errors
  203398. .IP \(bu 2
  203399. 14a39f914e Fixed state.salt.runner return value on exceptions
  203400. .UNINDENT
  203401. .IP \(bu 2
  203402. \fBPR\fP \fI\%#38323\fP: (\fI\%rallytime\fP) Update the Cloud Provider Specifics links in cloud docs
  203403. @ \fI2016\-12\-18 12:30:49 UTC\fP
  203404. .INDENT 2.0
  203405. .IP \(bu 2
  203406. ebb9f6cbbc Merge pull request \fI\%#38323\fP from rallytime/update\-cloud\-provider\-links
  203407. .IP \(bu 2
  203408. 022caf23e9 Update the Cloud Provider Specifics links in cloud docs
  203409. .UNINDENT
  203410. .IP \(bu 2
  203411. \fBPR\fP \fI\%#38324\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203412. @ \fI2016\-12\-18 12:30:26 UTC\fP
  203413. .INDENT 2.0
  203414. .IP \(bu 2
  203415. 5bd7471e30 Merge pull request \fI\%#38324\fP from rallytime/merge\-2016.11
  203416. .IP \(bu 2
  203417. 5940db5b3f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203418. .INDENT 2.0
  203419. .IP \(bu 2
  203420. 6367ca7d2a Add nick to args for create_multi (\fI\%#38281\fP)
  203421. .IP \(bu 2
  203422. 235682b1e6 Merge pull request \fI\%#38313\fP from dragon788/2016.3\-chocolatey\-fix
  203423. .INDENT 2.0
  203424. .IP \(bu 2
  203425. 1f5fc17551 Use machine readable output for list
  203426. .IP \(bu 2
  203427. cdbd2fbe3c Added limit\-output to eliminate false packages
  203428. .UNINDENT
  203429. .IP \(bu 2
  203430. 9e78ddc80e Merge pull request \fI\%#38279\fP from rallytime/fix\-38174
  203431. .INDENT 2.0
  203432. .IP \(bu 2
  203433. 4a62d01577 Add docs for syndic_wait setting
  203434. .UNINDENT
  203435. .UNINDENT
  203436. .UNINDENT
  203437. .IP \(bu 2
  203438. \fBISSUE\fP \fI\%#38246\fP: (\fI\%martintamare\fP) Windows Minion unable to start via nssm (refs: \fI\%#38247\fP)
  203439. .IP \(bu 2
  203440. \fBPR\fP \fI\%#38325\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38247\fP to 2016.11
  203441. @ \fI2016\-12\-18 12:28:41 UTC\fP
  203442. .INDENT 2.0
  203443. .IP \(bu 2
  203444. \fBPR\fP \fI\%#38247\fP: (\fI\%martintamare\fP) fix(win_function): handle other language (refs: \fI\%#38325\fP)
  203445. .IP \(bu 2
  203446. 83523d2f73 Merge pull request \fI\%#38325\fP from rallytime/bp\-38247
  203447. .IP \(bu 2
  203448. 4b6c5438e3 fix(win_functions): syntax
  203449. .IP \(bu 2
  203450. e602f17e3d fix(win_function): handle other language
  203451. .UNINDENT
  203452. .IP \(bu 2
  203453. \fBISSUE\fP \fI\%#30195\fP: (\fI\%Vaelatern\fP) Add Void Linux support in Salt (refs: \fI\%#31262\fP, \fI\%#38326\fP)
  203454. .IP \(bu 2
  203455. \fBPR\fP \fI\%#38326\fP: (\fI\%yopito\fP) fix runit init support (grain init) in 2016.11
  203456. @ \fI2016\-12\-18 12:07:25 UTC\fP
  203457. .INDENT 2.0
  203458. .IP \(bu 2
  203459. \fBPR\fP \fI\%#31262\fP: (\fI\%Vaelatern\fP) Add support for Void Linux (refs: \fI\%#38326\fP)
  203460. .IP \(bu 2
  203461. 54a2bb95de Merge pull request \fI\%#38326\fP from yopito/fix\-runit\-init\-support
  203462. .IP \(bu 2
  203463. 25b91bb686 fix detection of runit as init system (grain init)
  203464. .IP \(bu 2
  203465. \fBPR\fP \fI\%#38322\fP: (\fI\%rallytime\fP) Add azurearm module to doc index
  203466. .UNINDENT
  203467. .IP \(bu 2
  203468. \fBPR\fP \fI\%#38305\fP: (\fI\%dereckson\fP) Avoid normalization call for normalized mode value
  203469. @ \fI2016\-12\-16 17:31:25 UTC\fP
  203470. .INDENT 2.0
  203471. .IP \(bu 2
  203472. 1e4f299e7d Merge pull request \fI\%#38305\fP from dereckson/fix\-mode\-extraneous\-normalization
  203473. .IP \(bu 2
  203474. 573ac3565e Avoid normalization call for normalized mode value
  203475. .IP \(bu 2
  203476. \fBPR\fP \fI\%#38291\fP: (\fI\%terminalmage\fP) Improve documentation for archive.extracted in 2016.11
  203477. .UNINDENT
  203478. .IP \(bu 2
  203479. \fBISSUE\fP \fI\%#37966\fP: (\fI\%Cybolic\fP) salt\-cloud EC2 instance can\(aqt be initiated (refs: \fI\%#37967\fP)
  203480. .IP \(bu 2
  203481. \fBPR\fP \fI\%#38298\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37967\fP to 2016.11
  203482. @ \fI2016\-12\-16 15:20:04 UTC\fP
  203483. .INDENT 2.0
  203484. .IP \(bu 2
  203485. \fBPR\fP \fI\%#37967\fP: (\fI\%Cybolic\fP) Fixed faulty logic preventing instance initialisation. (refs: \fI\%#38298\fP)
  203486. .IP \(bu 2
  203487. 3cf0135d50 Merge pull request \fI\%#38298\fP from rallytime/bp\-37967
  203488. .IP \(bu 2
  203489. 42d367f39d Fixed faulty logic preventing instance initialisation.
  203490. .UNINDENT
  203491. .IP \(bu 2
  203492. \fBISSUE\fP \fI\%#38070\fP: (\fI\%ezh\fP) [2016.11.0] Salt\-cloud throws UnicodeDecodeError exception (refs: \fI\%#38076\fP)
  203493. .IP \(bu 2
  203494. \fBPR\fP \fI\%#38076\fP: (\fI\%ezh\fP) Fix decoding of broken string from remote sources
  203495. @ \fI2016\-12\-15 19:05:25 UTC\fP
  203496. .INDENT 2.0
  203497. .IP \(bu 2
  203498. f4f0036f30 Merge pull request \fI\%#38076\fP from doublescoring/fix\-2016.11\-38070
  203499. .IP \(bu 2
  203500. 70c8db5489 Fix decoding of broken string from remote sources
  203501. .UNINDENT
  203502. .IP \(bu 2
  203503. \fBPR\fP \fI\%#38278\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38207\fP to 2016.11
  203504. @ \fI2016\-12\-15 18:09:27 UTC\fP
  203505. .INDENT 2.0
  203506. .IP \(bu 2
  203507. \fBPR\fP \fI\%#38207\fP: (\fI\%tsaridas\fP) remove empty strings from list but not ones with one empty space char (refs: \fI\%#38278\fP)
  203508. .IP \(bu 2
  203509. \fBPR\fP \fI\%#38188\fP: (\fI\%tsaridas\fP) fix for push_dir in different OS (refs: \fI\%#38203\fP, \fI\%#38207\fP)
  203510. .IP \(bu 2
  203511. 2ccab22c19 Merge pull request \fI\%#38278\fP from rallytime/bp\-38207
  203512. .IP \(bu 2
  203513. 5e8bf571d8 python3 compatibility and fix pylint
  203514. .IP \(bu 2
  203515. e0df047000 remove empty strings from list but not ones with one empty space char
  203516. .UNINDENT
  203517. .IP \(bu 2
  203518. \fBPR\fP \fI\%#38277\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203519. @ \fI2016\-12\-15 18:09:10 UTC\fP
  203520. .INDENT 2.0
  203521. .IP \(bu 2
  203522. a748e842a8 Merge pull request \fI\%#38277\fP from rallytime/merge\-2016.11
  203523. .IP \(bu 2
  203524. 49a3355915 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203525. .IP \(bu 2
  203526. fc9e1dff35 Merge pull request \fI\%#38248\fP from meaksh/salt\-api\-successfully\-close\-child\-processes
  203527. .INDENT 2.0
  203528. .IP \(bu 2
  203529. ee6eae9855 Successfully exit of salt\-api child processes when SIGTERM.
  203530. .UNINDENT
  203531. .IP \(bu 2
  203532. 3c718ed35e Merge pull request \fI\%#38254\fP from terminalmage/check\-pillarenv
  203533. .INDENT 2.0
  203534. .IP \(bu 2
  203535. fa9ad311c6 Also check if pillarenv is in opts
  203536. .UNINDENT
  203537. .IP \(bu 2
  203538. 6b9060c38f [2016.3] Bump latest release version to 2016.11.1 (\fI\%#38256\fP)
  203539. .UNINDENT
  203540. .IP \(bu 2
  203541. \fBISSUE\fP \fI\%#38231\fP: (\fI\%tjuup\fP) Typo: salt\-key deleteed (refs: \fI\%#38232\fP)
  203542. .IP \(bu 2
  203543. \fBPR\fP \fI\%#38232\fP: (\fI\%rallytime\fP) Strip final \(aqe\(aq in key cmd to correct "deleteed" misspelling
  203544. @ \fI2016\-12\-15 10:38:49 UTC\fP
  203545. .INDENT 2.0
  203546. .IP \(bu 2
  203547. 0af343e71f Merge pull request \fI\%#38232\fP from rallytime/fix\-38231
  203548. .IP \(bu 2
  203549. 26e1ee3650 Strip final \(aqe\(aq in key cmd to correct "deleteed" misspelling
  203550. .UNINDENT
  203551. .IP \(bu 2
  203552. \fBISSUE\fP \fI\%#38200\fP: (\fI\%sebw\fP) selinux.mode doesn\(aqt return any output and doesn\(aqt persist (refs: \fI\%#38236\fP)
  203553. .IP \(bu 2
  203554. \fBPR\fP \fI\%#38236\fP: (\fI\%gtmanfred\fP) SELINUXTYPE should not be changed
  203555. @ \fI2016\-12\-15 10:37:06 UTC\fP
  203556. .INDENT 2.0
  203557. .IP \(bu 2
  203558. 6c1ca9dae7 Merge pull request \fI\%#38236\fP from gtmanfred/2016.11
  203559. .IP \(bu 2
  203560. d1b070c894 clean up selinux unit test
  203561. .IP \(bu 2
  203562. 96eabd4939 SELINUXTYPE should not be changed
  203563. .UNINDENT
  203564. .IP \(bu 2
  203565. \fBISSUE\fP \fI\%#38228\fP: (\fI\%vquiering\fP) archive.extracted with options and user/group (refs: \fI\%#38262\fP)
  203566. .IP \(bu 2
  203567. \fBPR\fP \fI\%#38262\fP: (\fI\%terminalmage\fP) Fix archive.extracted when \-\-strip or \-\-strip\-components is in the options
  203568. @ \fI2016\-12\-15 08:57:18 UTC\fP
  203569. .INDENT 2.0
  203570. .IP \(bu 2
  203571. fd32dc3e9b Merge pull request \fI\%#38262\fP from terminalmage/issue38228
  203572. .IP \(bu 2
  203573. 6442f8a7b5 Add tests for \-\-strip/\-\-strip\-components
  203574. .IP \(bu 2
  203575. c502e68f12 Detect \-\-strip/\-\-strip\-components in tar options and handle properly
  203576. .IP \(bu 2
  203577. e95770594d Add strip_components arg to archive.list
  203578. .UNINDENT
  203579. .IP \(bu 2
  203580. \fBPR\fP \fI\%#38264\fP: (\fI\%mirceaulinic\fP) Port \fI\%#37862\fP into 2016.11
  203581. @ \fI2016\-12\-15 08:51:20 UTC\fP
  203582. .INDENT 2.0
  203583. .IP \(bu 2
  203584. \fBPR\fP \fI\%#37862\fP: (\fI\%mirceaulinic\fP) [2016.11.1] Docstring fixes and new features for napalm_network (refs: \fI\%#38264\fP)
  203585. .IP \(bu 2
  203586. b232bd8ce8 Merge pull request \fI\%#38264\fP from cloudflare/PORT\-37862
  203587. .IP \(bu 2
  203588. 28bbb73151 Import from napalm_base instead of napalm
  203589. .IP \(bu 2
  203590. 0a675afc40 Vice\-versa docstring
  203591. .IP \(bu 2
  203592. 09c50176e2 More docfix
  203593. .IP \(bu 2
  203594. 215b8f38e2 Lint cleanup
  203595. .IP \(bu 2
  203596. \fBPR\fP \fI\%#38260\fP: (\fI\%rallytime\fP) Add 2016.11.2 release notes
  203597. .IP \(bu 2
  203598. \fBPR\fP \fI\%#38257\fP: (\fI\%rallytime\fP) [2016.11] Bump latest release version to 2016.11.1
  203599. .IP \(bu 2
  203600. \fBPR\fP \fI\%#38233\fP: (\fI\%terminalmage\fP) Correct an inaccurate warning when top_file_merging_strategy == merge_all
  203601. .UNINDENT
  203602. .IP \(bu 2
  203603. \fBPR\fP \fI\%#38234\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203604. @ \fI2016\-12\-13 18:28:02 UTC\fP
  203605. .INDENT 2.0
  203606. .IP \(bu 2
  203607. ba62fcf2ec Merge pull request \fI\%#38234\fP from rallytime/merge\-2016.11
  203608. .IP \(bu 2
  203609. 6a327d1367 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203610. .IP \(bu 2
  203611. 004e46afe7 Merge pull request \fI\%#38198\fP from vutny/unit\-tests\-require\-libcloud\-boto3
  203612. .INDENT 2.0
  203613. .IP \(bu 2
  203614. a6098bac1a Remove note about SaltTesting installation, now it is in the requirements
  203615. .IP \(bu 2
  203616. 004bff113e Add missing requirements for running unit tests: libcloud and boto3
  203617. .UNINDENT
  203618. .IP \(bu 2
  203619. 9d497bc74c Merge pull request \fI\%#38213\fP from rallytime/skip\-tls\-test
  203620. .INDENT 2.0
  203621. .IP \(bu 2
  203622. bdb807fc7c Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  203623. .UNINDENT
  203624. .IP \(bu 2
  203625. 203109dd17 Merge pull request \fI\%#38224\fP from whiteinge/cors\-options\-unauthed
  203626. .INDENT 2.0
  203627. .IP \(bu 2
  203628. de4d3227ab Allow CORS OPTIONS requests to be unauthenticated
  203629. .UNINDENT
  203630. .IP \(bu 2
  203631. 721a5feccd Merge pull request \fI\%#38223\fP from whiteinge/salt\-api\-root_dirs
  203632. .INDENT 2.0
  203633. .IP \(bu 2
  203634. bfbf390c0e Add root_dir to salt\-api file paths
  203635. .UNINDENT
  203636. .UNINDENT
  203637. .IP \(bu 2
  203638. \fBPR\fP \fI\%#38205\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203639. @ \fI2016\-12\-12 18:13:18 UTC\fP
  203640. .INDENT 2.0
  203641. .IP \(bu 2
  203642. 7ead1ed336 Merge pull request \fI\%#38205\fP from rallytime/merge\-2016.11
  203643. .IP \(bu 2
  203644. e31f97cf71 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203645. .IP \(bu 2
  203646. 70f7d22ad6 Merge pull request \fI\%#38191\fP from terminalmage/issue38162
  203647. .INDENT 2.0
  203648. .IP \(bu 2
  203649. 1ae543a98a Clarify the fact that git_pillar.update does not fast\-forward
  203650. .UNINDENT
  203651. .IP \(bu 2
  203652. 28171cbfc5 Merge pull request \fI\%#38194\fP from vutny/integration\-test\-requirements\-doc
  203653. .INDENT 2.0
  203654. .IP \(bu 2
  203655. e9f419ff64 Document the requirements for running ZeroMQ\-based integration tests
  203656. .UNINDENT
  203657. .IP \(bu 2
  203658. a4ef037ab1 Merge pull request \fI\%#38185\fP from rallytime/bp\-38181
  203659. .IP \(bu 2
  203660. 609f814454 Reset socket default timeout to None (fixes daemons_tests failures)
  203661. .UNINDENT
  203662. .IP \(bu 2
  203663. \fBPR\fP \fI\%#38203\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38188\fP to 2016.11
  203664. @ \fI2016\-12\-12 17:48:51 UTC\fP
  203665. .INDENT 2.0
  203666. .IP \(bu 2
  203667. \fBPR\fP \fI\%#38188\fP: (\fI\%tsaridas\fP) fix for push_dir in different OS (refs: \fI\%#38203\fP, \fI\%#38207\fP)
  203668. .IP \(bu 2
  203669. 669409d681 Merge pull request \fI\%#38203\fP from rallytime/bp\-38188
  203670. .IP \(bu 2
  203671. 50d3200b12 removing not needed join
  203672. .IP \(bu 2
  203673. 7af708e1e7 fix for push_dir in different OS
  203674. .UNINDENT
  203675. .UNINDENT
  203676. .SS Salt 2016.11.3 Release Notes
  203677. .sp
  203678. Version 2016.11.3 is a bugfix release for 2016.11.0\&.
  203679. .SS Statistics
  203680. .INDENT 0.0
  203681. .IP \(bu 2
  203682. Total Merges: \fB137\fP
  203683. .IP \(bu 2
  203684. Total Issue References: \fB49\fP
  203685. .IP \(bu 2
  203686. Total PR References: \fB130\fP
  203687. .IP \(bu 2
  203688. Contributors: \fB47\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%MTecknology\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%anlutro\fP, \fI\%arthru\fP, \fI\%axmetishe\fP, \fI\%bailsman\fP, \fI\%bobrik\fP, \fI\%cachedout\fP, \fI\%clinta\fP, \fI\%corywright\fP, \fI\%cro\fP, \fI\%dmaziuk\fP, \fI\%dmitrievav\fP, \fI\%dmurphy18\fP, \fI\%eliasp\fP, \fI\%eradman\fP, \fI\%ezh\fP, \fI\%gtmanfred\fP, \fI\%hu\-dabao\fP, \fI\%hujunya\fP, \fI\%isbm\fP, \fI\%jak3kaj\fP, \fI\%janhorstmann\fP, \fI\%joe\-niland\fP, \fI\%kevinanderson1\fP, \fI\%kstreee\fP, \fI\%l2ol33rt\fP, \fI\%lomeroe\fP, \fI\%mcalmer\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%morganwillcock\fP, \fI\%nasenbaer13\fP, \fI\%nicholasmhughes\fP, \fI\%rallytime\fP, \fI\%sakateka\fP, \fI\%sergeizv\fP, \fI\%sjorge\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%toanju\fP, \fI\%twangboy\fP, \fI\%vutny\fP)
  203689. .UNINDENT
  203690. .SS Changelog for v2016.11.2..v2016.11.3
  203691. .sp
  203692. \fIGenerated at: 2018\-05\-27 19:39:56 UTC\fP
  203693. .INDENT 0.0
  203694. .IP \(bu 2
  203695. \fBPR\fP \fI\%#39536\fP: (\fI\%twangboy\fP) Namespace \(aqstatus\(aq functions in \(aqwin_status\(aq
  203696. @ \fI2017\-02\-21 23:45:31 UTC\fP
  203697. .INDENT 2.0
  203698. .IP \(bu 2
  203699. \fBPR\fP \fI\%#39005\fP: (\fI\%cro\fP) Ungate the status.py module and raise unsupported errors in functions not executable on Windows. (refs: \fI\%#39536\fP)
  203700. .IP \(bu 2
  203701. 40f72db53e Merge pull request \fI\%#39536\fP from twangboy/fix_win_status
  203702. .IP \(bu 2
  203703. d5453e2f9e Remove unused import (lint)
  203704. .IP \(bu 2
  203705. 837c32e673 Remove list2cmdline
  203706. .IP \(bu 2
  203707. c258cb3f73 Streamline wmic command returns for easier parsing
  203708. .IP \(bu 2
  203709. 6d2cf8171e Fix \(aqping_master\(aq function
  203710. .IP \(bu 2
  203711. d946d10597 Namespace \(aqstatus\(aq functions in \(aqwin_status\(aq
  203712. .UNINDENT
  203713. .IP \(bu 2
  203714. \fBPR\fP \fI\%#39534\fP: (\fI\%rallytime\fP) Fix breakage in aptpkg and dpkg execution modules
  203715. @ \fI2017\-02\-21 20:31:15 UTC\fP
  203716. .INDENT 2.0
  203717. .IP \(bu 2
  203718. \fBPR\fP \fI\%#39418\fP: (\fI\%anlutro\fP) Allow aptpkg.info_installed on package names that aren\(aqt installed (refs: \fI\%#39534\fP)
  203719. .IP \(bu 2
  203720. dc8f578447 Merge pull request \fI\%#39534\fP from rallytime/fix\-pkg\-function\-specs
  203721. .IP \(bu 2
  203722. d34a8fe9dc Fix breakage in aptpkg and dpkg execution modules
  203723. .UNINDENT
  203724. .IP \(bu 2
  203725. \fBISSUE\fP \fI\%#34712\fP: (\fI\%richardscollin\fP) Salt Test Suite Error \- develop (refs: \fI\%#37366\fP)
  203726. .INDENT 2.0
  203727. .IP \(bu 2
  203728. \fBPR\fP \fI\%#39521\fP: (\fI\%vutny\fP) Upgrade SaltTesting to run test suite for 2016.11 and add SaltPyLint
  203729. .IP \(bu 2
  203730. \fBPR\fP \fI\%#37366\fP: (\fI\%eradman\fP) dev_python*.txt: use current SaltTesting and SaltPyLint modules (refs: \fI\%#39521\fP)
  203731. .UNINDENT
  203732. .IP \(bu 2
  203733. \fBPR\fP \fI\%#39370\fP: (\fI\%twangboy\fP) Gate win_osinfo and winservice
  203734. @ \fI2017\-02\-17 23:53:58 UTC\fP
  203735. .INDENT 2.0
  203736. .IP \(bu 2
  203737. e4c71683d9 Merge pull request \fI\%#39370\fP from twangboy/gate_win_utils
  203738. .IP \(bu 2
  203739. 167cdb3447 Gate windows specific imports, add __virtual__
  203740. .IP \(bu 2
  203741. e67387deb7 Add option to return a Non instantiated class
  203742. .IP \(bu 2
  203743. 315b0cc105 Clarify return value for win_osinfo
  203744. .IP \(bu 2
  203745. 994314ed3d Fix more docs
  203746. .IP \(bu 2
  203747. 2bbe3cbf49 Fix some docs
  203748. .IP \(bu 2
  203749. 4103563ee1 Merge branch \(aqgate_win_utils\(aq of \fI\%https://github.com/twangboy/salt\fP into gate_win_utils
  203750. .INDENT 2.0
  203751. .IP \(bu 2
  203752. 24c1bd079d Remove extra newlines
  203753. .UNINDENT
  203754. .IP \(bu 2
  203755. 82a86ced55 Add helper function for winservice
  203756. .IP \(bu 2
  203757. 0051b5a5e2 Put the win_osinfo classes in a helper function
  203758. .IP \(bu 2
  203759. 4e08534877 Gate win_osinfo and winservice better
  203760. .UNINDENT
  203761. .IP \(bu 2
  203762. \fBPR\fP \fI\%#39486\fP: (\fI\%twangboy\fP) Remove orphaned function list_configurable_policies
  203763. @ \fI2017\-02\-17 22:21:50 UTC\fP
  203764. .INDENT 2.0
  203765. .IP \(bu 2
  203766. a3e71b6cce Merge pull request \fI\%#39486\fP from twangboy/win_remove_orphaned
  203767. .IP \(bu 2
  203768. 1328055c4d Remove orphaned function list_configurable_policies
  203769. .UNINDENT
  203770. .IP \(bu 2
  203771. \fBPR\fP \fI\%#39418\fP: (\fI\%anlutro\fP) Allow aptpkg.info_installed on package names that aren\(aqt installed (refs: \fI\%#39534\fP)
  203772. @ \fI2017\-02\-17 18:34:19 UTC\fP
  203773. .INDENT 2.0
  203774. .IP \(bu 2
  203775. 87b269fc80 Merge pull request \fI\%#39418\fP from alprs/fix\-aptpkg_info_nonexistent_pkg
  203776. .IP \(bu 2
  203777. 246bf1e938 add failhard argument to various apt pkg functions
  203778. .UNINDENT
  203779. .IP \(bu 2
  203780. \fBPR\fP \fI\%#39438\fP: (\fI\%mirceaulinic\fP) file.get_managed: refetch source when file hashsum is changed
  203781. @ \fI2017\-02\-17 17:58:29 UTC\fP
  203782. .INDENT 2.0
  203783. .IP \(bu 2
  203784. e816d6c23e Merge pull request \fI\%#39438\fP from cloudflare/fix_39422
  203785. .IP \(bu 2
  203786. 8453800639 file.get_managed: refetch cached file when hashsum chnaged
  203787. .UNINDENT
  203788. .IP \(bu 2
  203789. \fBISSUE\fP \fI\%#39203\fP: (\fI\%dmaziuk\fP) salt.users gecos field (refs: \fI\%#39432\fP)
  203790. .IP \(bu 2
  203791. \fBPR\fP \fI\%#39432\fP: (\fI\%dmaziuk\fP) Quick and dirty fix for GECOS fields with more than 3 commas
  203792. @ \fI2017\-02\-17 17:57:30 UTC\fP
  203793. .INDENT 2.0
  203794. .IP \(bu 2
  203795. a5fe8f0fa6 Merge pull request \fI\%#39432\fP from dmaziuk/issue39203
  203796. .IP \(bu 2
  203797. 41c046308c Remove #
  203798. .IP \(bu 2
  203799. 4f877c6b6f Quick and dirty fix for GECOS fields with more than 3 commas
  203800. .UNINDENT
  203801. .IP \(bu 2
  203802. \fBPR\fP \fI\%#39484\fP: (\fI\%corywright\fP) The Reactor docs should use pillar=\(aq{}\(aq instead of \(aqpillar={}\(aq
  203803. @ \fI2017\-02\-17 17:50:57 UTC\fP
  203804. .INDENT 2.0
  203805. .IP \(bu 2
  203806. 3665229a5a Merge pull request \fI\%#39484\fP from corywright/fix\-reactor\-docs\-pillar\-keyword\-args
  203807. .IP \(bu 2
  203808. cc90d0d53f The Reactor docs should use pillar=\(aq{}\(aq instead of \(aqpillar={}\(aq
  203809. .UNINDENT
  203810. .IP \(bu 2
  203811. \fBPR\fP \fI\%#39456\fP: (\fI\%twangboy\fP) Add salt icon to buildenv directory
  203812. @ \fI2017\-02\-16 22:47:58 UTC\fP
  203813. .INDENT 2.0
  203814. .IP \(bu 2
  203815. 2e3a9c5e58 Merge pull request \fI\%#39456\fP from twangboy/win_fix_icon
  203816. .IP \(bu 2
  203817. 8dd915dae4 Add salt icon to buildenv directory
  203818. .UNINDENT
  203819. .IP \(bu 2
  203820. \fBPR\fP \fI\%#39462\fP: (\fI\%twangboy\fP) Use url_path instead of url_data.path
  203821. @ \fI2017\-02\-16 22:44:18 UTC\fP
  203822. .INDENT 2.0
  203823. .IP \(bu 2
  203824. 63adc03484 Merge pull request \fI\%#39462\fP from twangboy/win_fix_fileclient
  203825. .IP \(bu 2
  203826. a96bc13133 Use url_path instead of url_data.path
  203827. .UNINDENT
  203828. .IP \(bu 2
  203829. \fBPR\fP \fI\%#39458\fP: (\fI\%rallytime\fP) Fix more warnings in doc build
  203830. @ \fI2017\-02\-16 21:45:52 UTC\fP
  203831. .INDENT 2.0
  203832. .IP \(bu 2
  203833. e9b034f02f Merge pull request \fI\%#39458\fP from rallytime/fixup\-more\-doc\-build\-warnings
  203834. .IP \(bu 2
  203835. e698bc3508 Fix more warnings in doc build
  203836. .UNINDENT
  203837. .IP \(bu 2
  203838. \fBPR\fP \fI\%#39437\fP: (\fI\%sakateka\fP) Fixes about saltfile
  203839. @ \fI2017\-02\-16 20:32:15 UTC\fP
  203840. .INDENT 2.0
  203841. .IP \(bu 2
  203842. e4f8c2bfb0 Merge pull request \fI\%#39437\fP from sakateka/fixes_about_saltfile
  203843. .IP \(bu 2
  203844. ab68524d7a less pylint: salt/utils/parsers.py
  203845. .IP \(bu 2
  203846. 9e7d9dcc78 Revert "pylint: salt/utils/parsers.py"
  203847. .IP \(bu 2
  203848. f3f129c8f1 document ~/.salt/Saltfile
  203849. .IP \(bu 2
  203850. 33f3614b1e pylint: salt/utils/parsers.py
  203851. .IP \(bu 2
  203852. 0f36e10e7d expand config_dir and \(aq~/.salt/Saltfile\(aq as last resort
  203853. .IP \(bu 2
  203854. \fBPR\fP \fI\%#39451\fP: (\fI\%Ch3LL\fP) add 2016.11.3 changelog to release notes
  203855. .UNINDENT
  203856. .IP \(bu 2
  203857. \fBISSUE\fP \fI\%#38032\fP: (\fI\%meggiebot\fP) Add missing Carbon docs (refs: \fI\%#39448\fP)
  203858. .IP \(bu 2
  203859. \fBPR\fP \fI\%#39448\fP: (\fI\%gtmanfred\fP) Add release notes for cisco proxy minions added in Carbon
  203860. @ \fI2017\-02\-16 17:29:48 UTC\fP
  203861. .INDENT 2.0
  203862. .IP \(bu 2
  203863. 8e2cbd2307 Merge pull request \fI\%#39448\fP from gtmanfred/2016.11
  203864. .IP \(bu 2
  203865. 3172e88700 Add release notes for cisco proxy minions added in Carbon
  203866. .UNINDENT
  203867. .IP \(bu 2
  203868. \fBPR\fP \fI\%#39428\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  203869. @ \fI2017\-02\-16 00:01:15 UTC\fP
  203870. .INDENT 2.0
  203871. .IP \(bu 2
  203872. 070904b719 Merge pull request \fI\%#39428\fP from rallytime/merge\-2016.11
  203873. .IP \(bu 2
  203874. 2acb188ac9 Change \fBpath\fP value from a tuple to a list
  203875. .IP \(bu 2
  203876. 6d78adbf08 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  203877. .INDENT 2.0
  203878. .IP \(bu 2
  203879. 4ff13acf8b salt.fileserver.roots: Fix regression in symlink_list (\fI\%#39409\fP)
  203880. .IP \(bu 2
  203881. 8b8ab8ef8e Merge pull request \fI\%#39362\fP from dincamihai/cp\-push\-test\-2016.3
  203882. .INDENT 2.0
  203883. .IP \(bu 2
  203884. 91383c5a19 Add cp.push test
  203885. .UNINDENT
  203886. .IP \(bu 2
  203887. 4b726f955b Merge pull request \fI\%#39380\fP from joe\-niland/quote\-numeric\-usernames
  203888. .INDENT 2.0
  203889. .IP \(bu 2
  203890. c2edfdd464 Quote numeric user names so pwd.getpwnam handles them properly
  203891. .UNINDENT
  203892. .IP \(bu 2
  203893. 1116d32df9 Merge pull request \fI\%#39400\fP from meaksh/2016.3\-fix\-local\-cache\-issue
  203894. .INDENT 2.0
  203895. .IP \(bu 2
  203896. e7e559ef5c Prevents \(aqOSError\(aq exception in case path doesn\(aqt exist
  203897. .UNINDENT
  203898. .IP \(bu 2
  203899. 6c854da1d4 Merge pull request \fI\%#39300\fP from terminalmage/loader\-optimization
  203900. .INDENT 2.0
  203901. .IP \(bu 2
  203902. d3e5d1525e Replace more usage of str.format in the loader
  203903. .UNINDENT
  203904. .IP \(bu 2
  203905. 5286b5ff1b Merge pull request \fI\%#39337\fP from terminalmage/issue34428
  203906. .INDENT 2.0
  203907. .IP \(bu 2
  203908. a7d2135dc2 Don\(aqt re\-walk the roots fileserver in symlink_list()
  203909. .UNINDENT
  203910. .IP \(bu 2
  203911. ce781deeb5 Merge pull request \fI\%#39339\fP from cro/pillar_filetree_doc
  203912. .INDENT 2.0
  203913. .IP \(bu 2
  203914. 410810cea2 Clarification on external pillar usage.
  203915. .UNINDENT
  203916. .IP \(bu 2
  203917. fa3014393c Document the upstream RedHat bug with their pygit2 package (\fI\%#39316\fP)
  203918. .UNINDENT
  203919. .UNINDENT
  203920. .IP \(bu 2
  203921. \fBISSUE\fP \fI\%#39360\fP: (\fI\%bbinet\fP) file.symlink should not try to set ownership to root:root (refs: \fI\%#39364\fP)
  203922. .IP \(bu 2
  203923. \fBPR\fP \fI\%#39429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39364\fP to 2016.11
  203924. @ \fI2017\-02\-15 21:27:21 UTC\fP
  203925. .INDENT 2.0
  203926. .IP \(bu 2
  203927. \fBPR\fP \fI\%#39364\fP: (\fI\%gtmanfred\fP) set default user variable to the user cmd runs as (refs: \fI\%#39429\fP)
  203928. .IP \(bu 2
  203929. 54a572e50c Merge pull request \fI\%#39429\fP from rallytime/bp\-39364
  203930. .IP \(bu 2
  203931. 157f4dcdf9 set default user variable to the user cmd runs as
  203932. .UNINDENT
  203933. .IP \(bu 2
  203934. \fBPR\fP \fI\%#39424\fP: (\fI\%twangboy\fP) Fix problem with too many connection attempts in Windows
  203935. @ \fI2017\-02\-15 18:51:35 UTC\fP
  203936. .INDENT 2.0
  203937. .IP \(bu 2
  203938. 881ebf2e93 Merge pull request \fI\%#39424\fP from twangboy/win_fix_dos
  203939. .IP \(bu 2
  203940. d3f7dd7f50 Add sleep to eval_master
  203941. .UNINDENT
  203942. .IP \(bu 2
  203943. \fBISSUE\fP \fI\%#30561\fP: (\fI\%jfindlay\fP) salt\-ssh fails with IPv6 address (refs: \fI\%#39419\fP, \fI\%#38831\fP)
  203944. .IP \(bu 2
  203945. \fBISSUE\fP \fI\%#22984\fP: (\fI\%tomasfejfar\fP) salt\-ssh problem possibly related to ipv6 (refs: \fI\%#39419\fP, \fI\%#38831\fP)
  203946. .IP \(bu 2
  203947. \fBPR\fP \fI\%#39419\fP: (\fI\%The\-Loeki\fP) Backport Salt\-SSH IPv6 fixes to 2016.11
  203948. @ \fI2017\-02\-15 17:33:13 UTC\fP
  203949. .INDENT 2.0
  203950. .IP \(bu 2
  203951. \fBPR\fP \fI\%#38877\fP: (\fI\%The\-Loeki\fP) Salt\-SSH client: Don\(aqt overwrite self.host w/IPv6 brackets (refs: \fI\%#39419\fP)
  203952. .IP \(bu 2
  203953. \fBPR\fP \fI\%#38831\fP: (\fI\%The\-Loeki\fP) Salt\-SSH deal with raw IPv6 addresses (refs: \fI\%#39419\fP, \fI\%#38877\fP)
  203954. .IP \(bu 2
  203955. 47872355a8 Merge pull request \fI\%#39419\fP from The\-Loeki/bp\-ssh\-ipv6
  203956. .IP \(bu 2
  203957. 4fc5626f16 Don\(aqt overwrite self.host w/IPv6 brackets
  203958. .IP \(bu 2
  203959. dd1223468b Salt\-SSH deal with raw IPv6 addresses
  203960. .UNINDENT
  203961. .IP \(bu 2
  203962. \fBPR\fP \fI\%#39379\fP: (\fI\%terminalmage\fP) win_pkg: remove all installed versions when no explicit version passed
  203963. @ \fI2017\-02\-14 18:41:28 UTC\fP
  203964. .INDENT 2.0
  203965. .IP \(bu 2
  203966. 878946d0f8 Merge pull request \fI\%#39379\fP from terminalmage/issue34821
  203967. .IP \(bu 2
  203968. fd9ab8e4e3 Remove extra newline
  203969. .IP \(bu 2
  203970. 5871825b9e win_pkg: remove all installed versions when no explicit version passed
  203971. .UNINDENT
  203972. .IP \(bu 2
  203973. \fBPR\fP \fI\%#39392\fP: (\fI\%anlutro\fP) Make sure OrderedDict order is preserved in nested output
  203974. @ \fI2017\-02\-14 17:50:15 UTC\fP
  203975. .INDENT 2.0
  203976. .IP \(bu 2
  203977. caffef88cf Merge pull request \fI\%#39392\fP from alprs/fix\-nested_output_ordered_dict
  203978. .IP \(bu 2
  203979. 625a770a23 make sure OrderedDict order is preserved in output
  203980. .UNINDENT
  203981. .IP \(bu 2
  203982. \fBPR\fP \fI\%#39378\fP: (\fI\%dmurphy18\fP) Update make_repo in debbuild.py execution module to utilize timeout
  203983. @ \fI2017\-02\-14 17:10:15 UTC\fP
  203984. .INDENT 2.0
  203985. .IP \(bu 2
  203986. f2459e3ce8 Merge pull request \fI\%#39378\fP from dmurphy18/deb_pkg_fix
  203987. .IP \(bu 2
  203988. 4bd47cc18a Updated all make_repo loops to use timeout value for retries
  203989. .UNINDENT
  203990. .IP \(bu 2
  203991. \fBISSUE\fP \fI\%#39358\fP: (\fI\%Kimamisa\fP) Backport the RDS\ fix in Carbon (refs: \fI\%#39369\fP)
  203992. .IP \(bu 2
  203993. \fBPR\fP \fI\%#39369\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37338\fP to 2016.11
  203994. @ \fI2017\-02\-13 21:41:19 UTC\fP
  203995. .INDENT 2.0
  203996. .IP \(bu 2
  203997. \fBPR\fP \fI\%#37338\fP: (\fI\%bailsman\fP) Fix wait_status in boto_rds.create() (refs: \fI\%#39369\fP)
  203998. .IP \(bu 2
  203999. 99554d9d72 Merge pull request \fI\%#39369\fP from rallytime/bp\-37338
  204000. .IP \(bu 2
  204001. 2e7f6e8e37 Fix wait_status in boto_rds.create()
  204002. .UNINDENT
  204003. .IP \(bu 2
  204004. \fBPR\fP \fI\%#39303\fP: (\fI\%kstreee\fP) Removes a redundant test case after removed \(aqbatch\(aq in \(aqnetapi\(aq.
  204005. @ \fI2017\-02\-13 19:55:46 UTC\fP
  204006. .INDENT 2.0
  204007. .IP \(bu 2
  204008. 03ab8b1b5a Merge pull request \fI\%#39303\fP from kstreee/fix\-testcase\-rm\-batch\-in\-netapi
  204009. .IP \(bu 2
  204010. 51972d0724 Removes a redundant test case after removed \(aqbatch\(aq in \(aqnetapi\(aq.
  204011. .UNINDENT
  204012. .IP \(bu 2
  204013. \fBPR\fP \fI\%#39315\fP: (\fI\%Ch3LL\fP) improve salt\-run salt.cmd test
  204014. @ \fI2017\-02\-13 19:00:14 UTC\fP
  204015. .INDENT 2.0
  204016. .IP \(bu 2
  204017. 60640f77d7 Merge pull request \fI\%#39315\fP from Ch3LL/fix_run_salt_test
  204018. .IP \(bu 2
  204019. b3cbc5a408 improve salt\-run salt.cmd test
  204020. .UNINDENT
  204021. .IP \(bu 2
  204022. \fBISSUE\fP \fI\%#39243\fP: (\fI\%morganwillcock\fP) win_system.reboot: can return True without rebooting (refs: \fI\%#39311\fP)
  204023. .IP \(bu 2
  204024. \fBPR\fP \fI\%#39311\fP: (\fI\%morganwillcock\fP) win_system: return False from a skipped reboot
  204025. @ \fI2017\-02\-13 18:59:11 UTC\fP
  204026. .INDENT 2.0
  204027. .IP \(bu 2
  204028. 2ca63a93cd Merge pull request \fI\%#39311\fP from morganwillcock/skip\-reboot
  204029. .IP \(bu 2
  204030. 0f3abb613d Clarify success for shutdown function
  204031. .IP \(bu 2
  204032. dcb4d05275 win_system: return False from a skipped reboot
  204033. .UNINDENT
  204034. .IP \(bu 2
  204035. \fBPR\fP \fI\%#39346\fP: (\fI\%joe\-niland\fP) Ignore non\-HTTP IIS bindings
  204036. @ \fI2017\-02\-13 18:18:36 UTC\fP
  204037. .INDENT 2.0
  204038. .IP \(bu 2
  204039. 082105fa84 Merge pull request \fI\%#39346\fP from joe\-niland/handle\-iis\-bindings
  204040. .IP \(bu 2
  204041. 8d5afdb0ae win_iis module: list_sites \- when retrieving bindings, ignore bindigs whose protocols do not have host headers
  204042. .UNINDENT
  204043. .IP \(bu 2
  204044. \fBISSUE\fP \fI\%#39321\fP: (\fI\%mgresser\fP) Grain matching failing where grain value is an INT (refs: \fI\%#39361\fP)
  204045. .IP \(bu 2
  204046. \fBPR\fP \fI\%#39361\fP: (\fI\%gtmanfred\fP) make sure both variables are strings.
  204047. @ \fI2017\-02\-13 17:20:17 UTC\fP
  204048. .INDENT 2.0
  204049. .IP \(bu 2
  204050. a3a9a8e1ed Merge pull request \fI\%#39361\fP from gtmanfred/2016.11
  204051. .IP \(bu 2
  204052. ee2275ad67 make sure both variables are strings.
  204053. .IP \(bu 2
  204054. \fBPR\fP \fI\%#39341\fP: (\fI\%eliasp\fP) Add creation/configuration of Salt PKI dirs to hacking docs
  204055. .UNINDENT
  204056. .IP \(bu 2
  204057. \fBPR\fP \fI\%#39317\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204058. @ \fI2017\-02\-10 23:07:32 UTC\fP
  204059. .INDENT 2.0
  204060. .IP \(bu 2
  204061. ce1f01f81a Merge pull request \fI\%#39317\fP from rallytime/merge\-2016.11
  204062. .IP \(bu 2
  204063. c1df446b7a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204064. .IP \(bu 2
  204065. 9de559ff4e Merge pull request \fI\%#39313\fP from rallytime/merge\-2016.3
  204066. .INDENT 2.0
  204067. .IP \(bu 2
  204068. 0b8dddf12b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  204069. .IP \(bu 2
  204070. fc551bcf5d Merge pull request \fI\%#39293\fP from sergeizv/grammar\-fix
  204071. .INDENT 2.0
  204072. .IP \(bu 2
  204073. 70f2b586d3 Rewrap paragraph
  204074. .IP \(bu 2
  204075. e6ab5178ea Grammar fix
  204076. .UNINDENT
  204077. .IP \(bu 2
  204078. 8a1b45632a Merge pull request \fI\%#39295\fP from sergeizv/typo\-fix
  204079. .INDENT 2.0
  204080. .IP \(bu 2
  204081. 5d9f36d58d Fix typo
  204082. .UNINDENT
  204083. .IP \(bu 2
  204084. cfaafece34 Merge pull request \fI\%#39296\fP from sergeizv/whitespace\-fix
  204085. .INDENT 2.0
  204086. .IP \(bu 2
  204087. 1d4c1dc140 Whitespace fix in docs Makefile
  204088. .UNINDENT
  204089. .IP \(bu 2
  204090. 0b4dcf4a47 Merge pull request \fI\%#39294\fP from sergeizv/fix\-link
  204091. .INDENT 2.0
  204092. .IP \(bu 2
  204093. 04bde6eed2 Fix link in proxyminion guide
  204094. .UNINDENT
  204095. .UNINDENT
  204096. .IP \(bu 2
  204097. dd3ca0ecb0 Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log (\fI\%#39299\fP)
  204098. .IP \(bu 2
  204099. f16027d30e Merge pull request \fI\%#39297\fP from cro/pg_returner_docs
  204100. .INDENT 2.0
  204101. .IP \(bu 2
  204102. 28bac649ae Typo
  204103. .IP \(bu 2
  204104. 19fedcdd23 Add doc to recommend pgjsonb for master job caches
  204105. .UNINDENT
  204106. .IP \(bu 2
  204107. 77e50ed8b7 Merge pull request \fI\%#39286\fP from terminalmage/fix\-pillarenv\-precedence
  204108. .INDENT 2.0
  204109. .IP \(bu 2
  204110. 3cb9833e57 Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  204111. .UNINDENT
  204112. .IP \(bu 2
  204113. 52440416ca Merge pull request \fI\%#39221\fP from lvg01/fix\-bug\-39220
  204114. .INDENT 2.0
  204115. .IP \(bu 2
  204116. e8a41d6341 Removes to early content stripping (stripping is allready done when needed with ident:true), fixes \fI\%#39220\fP
  204117. .IP \(bu 2
  204118. a4b169e0bd Fixed wrong logic, fixes \fI\%#39220\fP
  204119. .UNINDENT
  204120. .IP \(bu 2
  204121. 5a27207c57 Add warning for Dulwich removal (\fI\%#39280\fP)
  204122. .UNINDENT
  204123. .IP \(bu 2
  204124. \fBISSUE\fP \fI\%#38451\fP: (\fI\%ezh\fP) 2016.11 file.replace has multiple errors under python 3 (refs: \fI\%#38464\fP)
  204125. .IP \(bu 2
  204126. \fBPR\fP \fI\%#38464\fP: (\fI\%ezh\fP) [38451] Fix file.replace 2016.11
  204127. @ \fI2017\-02\-09 23:07:49 UTC\fP
  204128. .INDENT 2.0
  204129. .IP \(bu 2
  204130. c3c621aab0 Merge pull request \fI\%#38464\fP from doublescoring/fix\-2016.11\-38451
  204131. .IP \(bu 2
  204132. 81f0337338 [38451] Fix few bugs after review
  204133. .IP \(bu 2
  204134. 1bdab253ad [38451] Fix pylint W1699(incompatible\-py3\-code)
  204135. .IP \(bu 2
  204136. 3bfc6547da [38451] Fix file.replace to make it suitable to python 3
  204137. .UNINDENT
  204138. .IP \(bu 2
  204139. \fBPR\fP \fI\%#39291\fP: (\fI\%terminalmage\fP) Add note about using saltenv jinja var in pillar top files
  204140. @ \fI2017\-02\-09 21:43:50 UTC\fP
  204141. .INDENT 2.0
  204142. .IP \(bu 2
  204143. 6365211a6f Merge pull request \fI\%#39291\fP from terminalmage/pillar\-docs
  204144. .IP \(bu 2
  204145. fbd551e069 Add note about using saltenv jinja var in pillar top files
  204146. .UNINDENT
  204147. .IP \(bu 2
  204148. \fBPR\fP \fI\%#39281\fP: (\fI\%twangboy\fP) Require VCRedist on 2008R2 and below instead of 2008
  204149. @ \fI2017\-02\-09 17:59:57 UTC\fP
  204150. .INDENT 2.0
  204151. .IP \(bu 2
  204152. a496ec2a16 Merge pull request \fI\%#39281\fP from twangboy/win_installer
  204153. .IP \(bu 2
  204154. ef5078729a Capitalize the \(aqr\(aq for 2008R2
  204155. .IP \(bu 2
  204156. 1b6bd634ac Require VCRedist on 2008R2 and below instead of 2008
  204157. .UNINDENT
  204158. .IP \(bu 2
  204159. \fBPR\fP \fI\%#39264\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204160. @ \fI2017\-02\-09 17:10:14 UTC\fP
  204161. .INDENT 2.0
  204162. .IP \(bu 2
  204163. db6140aa83 Merge pull request \fI\%#39264\fP from rallytime/merge\-2016.11
  204164. .IP \(bu 2
  204165. a9c2c106c1 Pylint fix
  204166. .IP \(bu 2
  204167. f6aad99db2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204168. .INDENT 2.0
  204169. .IP \(bu 2
  204170. 1b9217d636 Update jsonschema tests to reflect change in jsonschema 2.6.0 (\fI\%#39260\fP)
  204171. .IP \(bu 2
  204172. c1d16cc3d0 Better handling of enabled/disabled arguments in pkgrepo.managed (\fI\%#39251\fP)
  204173. .IP \(bu 2
  204174. 8e88f71dd9 Merge pull request \fI\%#39227\fP from terminalmage/loader\-optimization
  204175. .INDENT 2.0
  204176. .IP \(bu 2
  204177. c750662946 Loader optimzation
  204178. .UNINDENT
  204179. .IP \(bu 2
  204180. bc89b297f8 Merge pull request \fI\%#39228\fP from gtmanfred/2016.3
  204181. .INDENT 2.0
  204182. .IP \(bu 2
  204183. afee047b08 default to utf8 encoding if not specified
  204184. .UNINDENT
  204185. .IP \(bu 2
  204186. d9b0671dbd Merge pull request \fI\%#39231\fP from terminalmage/clarify\-jenkins\-depends
  204187. .INDENT 2.0
  204188. .IP \(bu 2
  204189. ad1b1255f2 Add clarification for jenkins execution module
  204190. .UNINDENT
  204191. .IP \(bu 2
  204192. ddcff89a84 Merge pull request \fI\%#39232\fP from terminalmage/issue21342
  204193. .INDENT 2.0
  204194. .IP \(bu 2
  204195. c88896c277 Avoid recursion in s3/svn ext_pillars
  204196. .UNINDENT
  204197. .IP \(bu 2
  204198. ef4e437bbc Fix the win_ip_test failures (\fI\%#39230\fP)
  204199. .IP \(bu 2
  204200. df5f934c34 Merge pull request \fI\%#39199\fP from rallytime/bp\-39170
  204201. .INDENT 2.0
  204202. .IP \(bu 2
  204203. c129905310 Added missing source_hash_name argument in get_managed function Additional fix to \fI\%#33187\fP Customer was still seeing errors, this should now work. Tested with 2015.8.13 and 2016.11.2
  204204. .UNINDENT
  204205. .IP \(bu 2
  204206. 2621c119fd Merge pull request \fI\%#39206\fP from cachedout/issue_issue_37174
  204207. .INDENT 2.0
  204208. .IP \(bu 2
  204209. be31e0559c Ignore empty dicts in highstate outputter
  204210. .UNINDENT
  204211. .IP \(bu 2
  204212. dd440452ea Merge pull request \fI\%#39209\fP from terminalmage/sorted\-envs
  204213. .INDENT 2.0
  204214. .IP \(bu 2
  204215. e6dda4a625 Sort the return list from the fileserver.envs runner
  204216. .UNINDENT
  204217. .IP \(bu 2
  204218. 7bed68743e [2016.3] Pylint fix (\fI\%#39202\fP)
  204219. .IP \(bu 2
  204220. ab76054127 Merge pull request \fI\%#39197\fP from cachedout/pr\-38793
  204221. .INDENT 2.0
  204222. .IP \(bu 2
  204223. f3d35fb5c6 Lint fixes
  204224. .IP \(bu 2
  204225. 624f25b78d Fix for \fI\%#38697\fP
  204226. .UNINDENT
  204227. .UNINDENT
  204228. .UNINDENT
  204229. .IP \(bu 2
  204230. \fBISSUE\fP \fI\%#39269\fP: (\fI\%alexharrington\fP) Remount forced with lizardfs fuse filesystem due to device missmatch (refs: \fI\%#39276\fP)
  204231. .IP \(bu 2
  204232. \fBISSUE\fP \fI\%#39106\fP: (\fI\%carsten\-AEI\fP) CVMFS fuse mount gets remounted every time (refs: \fI\%#39276\fP)
  204233. .IP \(bu 2
  204234. \fBPR\fP \fI\%#39276\fP: (\fI\%gtmanfred\fP) _device_mismatch_ignored will never be True
  204235. @ \fI2017\-02\-09 17:05:28 UTC\fP
  204236. .INDENT 2.0
  204237. .IP \(bu 2
  204238. 304eb19b18 Merge pull request \fI\%#39276\fP from gtmanfred/2016.11
  204239. .IP \(bu 2
  204240. 6635a9fd3b _device_mismatch_ignored will never be True
  204241. .UNINDENT
  204242. .IP \(bu 2
  204243. \fBPR\fP \fI\%#39238\fP: (\fI\%dmurphy18\fP) Update disk fstype, inodeusage, percent and mount.active functions for AIX support
  204244. @ \fI2017\-02\-08 21:53:32 UTC\fP
  204245. .INDENT 2.0
  204246. .IP \(bu 2
  204247. 7611698474 Merge pull request \fI\%#39238\fP from dmurphy18/fix_aix_disk_mount
  204248. .IP \(bu 2
  204249. a8a519c493 Removed space for pylint
  204250. .IP \(bu 2
  204251. 8fa0ffa427 Updates due to code review comments
  204252. .IP \(bu 2
  204253. 97c59a8d1c Updated mount functionality for active on AIX
  204254. .IP \(bu 2
  204255. 1a32b2cc89 Updated disk functionality for fstype, inodeuage and percent on AIX
  204256. .UNINDENT
  204257. .IP \(bu 2
  204258. \fBPR\fP \fI\%#39233\fP: (\fI\%rallytime\fP) Various doc updates to fix warnings in doc build
  204259. @ \fI2017\-02\-08 19:29:53 UTC\fP
  204260. .INDENT 2.0
  204261. .IP \(bu 2
  204262. 99bfa7dfee Merge pull request \fI\%#39233\fP from rallytime/fixup\-more\-doc\-build\-warnings
  204263. .IP \(bu 2
  204264. 2f74dcf685 Various doc updates to fix warnings in doc build
  204265. .UNINDENT
  204266. .IP \(bu 2
  204267. \fBPR\fP \fI\%#39237\fP: (\fI\%axmetishe\fP) fix rds subnet group creation
  204268. @ \fI2017\-02\-08 19:04:31 UTC\fP
  204269. .INDENT 2.0
  204270. .IP \(bu 2
  204271. 59e927b520 Merge pull request \fI\%#39237\fP from axmetishe/2016.11
  204272. .IP \(bu 2
  204273. 6f4be8b69c fix rds subnet group creation
  204274. .IP \(bu 2
  204275. \fBPR\fP \fI\%#39234\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204276. .IP \(bu 2
  204277. \fBPR\fP \fI\%#39225\fP: (\fI\%terminalmage\fP) Put legacy git_pillar on a deprecation path for Oxygen
  204278. .UNINDENT
  204279. .IP \(bu 2
  204280. \fBISSUE\fP \fI\%#39078\fP: (\fI\%morganwillcock\fP) setup.py: cannot install without setting global options (refs: \fI\%#39180\fP)
  204281. .IP \(bu 2
  204282. \fBPR\fP \fI\%#39180\fP: (\fI\%morganwillcock\fP) setup.py: Remove global options from install command
  204283. @ \fI2017\-02\-07 16:20:49 UTC\fP
  204284. .INDENT 2.0
  204285. .IP \(bu 2
  204286. 19c3d90a32 Merge pull request \fI\%#39180\fP from morganwillcock/setup
  204287. .IP \(bu 2
  204288. d7e05091a2 Remove global options from Install
  204289. .UNINDENT
  204290. .IP \(bu 2
  204291. \fBPR\fP \fI\%#38863\fP: (\fI\%hujunya\fP) fix django auth not work
  204292. @ \fI2017\-02\-07 15:43:00 UTC\fP
  204293. .INDENT 2.0
  204294. .IP \(bu 2
  204295. a0907bc861 Merge pull request \fI\%#38863\fP from hujunya/fix_django_auth
  204296. .IP \(bu 2
  204297. 2a99ff46d3 check if django_auth_path has been in sys.path
  204298. .IP \(bu 2
  204299. 933ebf15d7 fix pylint violations
  204300. .IP \(bu 2
  204301. 6b5a7f4b64 fix django auth not work
  204302. .UNINDENT
  204303. .IP \(bu 2
  204304. \fBPR\fP \fI\%#39198\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204305. @ \fI2017\-02\-06 21:01:56 UTC\fP
  204306. .INDENT 2.0
  204307. .IP \(bu 2
  204308. c3e541e0a2 Merge pull request \fI\%#39198\fP from rallytime/merge\-2016.11
  204309. .IP \(bu 2
  204310. 7ea5f7f82f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204311. .INDENT 2.0
  204312. .IP \(bu 2
  204313. fa45cbc359 Merge pull request \fI\%#39166\fP from Ch3LL/fix_boto_ec2_docs
  204314. .INDENT 2.0
  204315. .IP \(bu 2
  204316. 90af696331 fix boto ec2 module create_image doc
  204317. .UNINDENT
  204318. .IP \(bu 2
  204319. a40cb46249 Merge pull request \fI\%#39173\fP from rallytime/restore\-community\-docs
  204320. .INDENT 2.0
  204321. .IP \(bu 2
  204322. 5aeddf42a0 Restore "Salt Community" doc section
  204323. .UNINDENT
  204324. .UNINDENT
  204325. .UNINDENT
  204326. .IP \(bu 2
  204327. \fBISSUE\fP \fI\%#39059\fP: (\fI\%mirceaulinic\fP) KeyError: \(aqmultiprocessing\(aq in the master logs (proxy minions) (refs: \fI\%#39063\fP)
  204328. .IP \(bu 2
  204329. \fBPR\fP \fI\%#39063\fP: (\fI\%mirceaulinic\fP) Avoid KeyError: \(aqmultiprocessing\(aq in the master logs
  204330. @ \fI2017\-02\-06 19:37:35 UTC\fP
  204331. .INDENT 2.0
  204332. .IP \(bu 2
  204333. 2a85d73f59 Merge pull request \fI\%#39063\fP from cloudflare/ISS\-39059
  204334. .IP \(bu 2
  204335. 7118eff034 Avoid KeyError: \(aqmultiprocessing\(aq
  204336. .UNINDENT
  204337. .IP \(bu 2
  204338. \fBISSUE\fP \fI\%#38782\fP: (\fI\%lomeroe\fP) win_lgpo unable to find some Administrative Template policies (refs: \fI\%#38783\fP, \fI\%#39083\fP, \fI\%#39090\fP)
  204339. .IP \(bu 2
  204340. \fBISSUE\fP \fI\%#38761\fP: (\fI\%DaveOHenry\fP) Cannot apply state that contains lgpo.set (refs: \fI\%#39083\fP, \fI\%#39088\fP)
  204341. .IP \(bu 2
  204342. \fBISSUE\fP \fI\%#38689\fP: (\fI\%lomeroe\fP) win_lgpo state fails to set single policy due to case sensitive check (refs: \fI\%#39083\fP, \fI\%#39084\fP, \fI\%#38690\fP)
  204343. .IP \(bu 2
  204344. \fBISSUE\fP \fI\%#38100\fP: (\fI\%skjaro\fP) Problem with win_lgpo.py in salt 2016.11.0 (refs: \fI\%#39083\fP, \fI\%#39089\fP, \fI\%#38779\fP)
  204345. .IP \(bu 2
  204346. \fBISSUE\fP \fI\%#21485\fP: (\fI\%lorengordon\fP) Feature Request: Manage Windows Local Security Policy Settings (refs: \fI\%#36336\fP)
  204347. .IP \(bu 2
  204348. \fBPR\fP \fI\%#39083\fP: (\fI\%lomeroe\fP) Backport \fI\%#36336\fP to 2016.11
  204349. @ \fI2017\-02\-06 18:50:52 UTC\fP
  204350. .INDENT 2.0
  204351. .IP \(bu 2
  204352. \fBPR\fP \fI\%#36336\fP: (\fI\%lomeroe\fP) add additional static policies to computer configuration policy class (refs: \fI\%#39083\fP)
  204353. .IP \(bu 2
  204354. 91c25bd651 Merge pull request \fI\%#39083\fP from lomeroe/bp\-36336
  204355. .IP \(bu 2
  204356. 03e5319124 Merge branch \(aq2016.11\(aq into bp\-36336
  204357. .IP \(bu 2
  204358. 981ec89a4d update command line example to correct policy name
  204359. .IP \(bu 2
  204360. e2574da0b8 Fix/Add documentation, 80 char line lengths
  204361. .IP \(bu 2
  204362. 5e94a30a34 add additional static policies to computer configuration policy class duplicate code cleanup/misc code efficiencies
  204363. .UNINDENT
  204364. .IP \(bu 2
  204365. \fBPR\fP \fI\%#39153\fP: (\fI\%nicholasmhughes\fP) Fix selinux.mode state config file handling
  204366. @ \fI2017\-02\-06 18:37:34 UTC\fP
  204367. .INDENT 2.0
  204368. .IP \(bu 2
  204369. 30455079fe Merge pull request \fI\%#39153\fP from nicholasmhughes/fix\-selinux.mode\-config\-predictability
  204370. .IP \(bu 2
  204371. 8d8ba9c7d2 added the new getconfig function to the test
  204372. .IP \(bu 2
  204373. a6a24e1a1b Addressed edge case when attempting to set the config file to \(aqDisabled\(aq. The state should only check the file, since the in\-memory setting won\(aqt disappear until after reboot.
  204374. .IP \(bu 2
  204375. 6858658cc2 The selinux.mode state only checked the current status of SELinux in memory (getenforce) when determining if changes needed to be made. The /etc/selinux/config file could have a different value, and it would not be changed. This commit enhances idempotency of the state in regards to both the in\-memory and configuration file enforcement of SELinux.
  204376. .UNINDENT
  204377. .IP \(bu 2
  204378. \fBISSUE\fP \fI\%#38081\fP: (\fI\%haraldrudell\fP) x509 state or module cannot generate password protected private keys (refs: \fI\%#39159\fP)
  204379. .IP \(bu 2
  204380. \fBPR\fP \fI\%#39159\fP: (\fI\%clinta\fP) Csr crl passphrase
  204381. @ \fI2017\-02\-06 18:36:05 UTC\fP
  204382. .INDENT 2.0
  204383. .IP \(bu 2
  204384. 7b5eb17cbe Merge pull request \fI\%#39159\fP from clinta/csr\-crl\-passphrase
  204385. .IP \(bu 2
  204386. cf548ac717 Remove unnecessary pass
  204387. .IP \(bu 2
  204388. 4ebf7a3df4 Remove unnecessary pass statement
  204389. .IP \(bu 2
  204390. 6a8046970e fix csr bugs and pep8
  204391. .IP \(bu 2
  204392. 36dcf5f3da only overwrite if overwrite option is specified
  204393. .IP \(bu 2
  204394. 403000d375 recreate cert on bad password
  204395. .IP \(bu 2
  204396. 6497094ba7 passphrase for crl
  204397. .IP \(bu 2
  204398. 3ef809fb0f passphrase for csr
  204399. .UNINDENT
  204400. .IP \(bu 2
  204401. \fBPR\fP \fI\%#39162\fP: (\fI\%meaksh\fP) Adding more function to Snapper module
  204402. @ \fI2017\-02\-06 18:33:53 UTC\fP
  204403. .INDENT 2.0
  204404. .IP \(bu 2
  204405. b240468525 Merge pull request \fI\%#39162\fP from meaksh/snapper\-module\-improvements
  204406. .IP \(bu 2
  204407. f950732fa0 pylint fixes
  204408. .IP \(bu 2
  204409. aa2f9906e0 Removing extra spaces
  204410. .IP \(bu 2
  204411. 9d6a33f257 Adds \(aqsnapper.create_config\(aq unit tests
  204412. .IP \(bu 2
  204413. d38ed505f8 Adds \(aqsnapper.modify_snapshots\(aq unit tests
  204414. .IP \(bu 2
  204415. d5496ccc99 Adds \(aqsnapper.delete_snapshots\(aq unit tests
  204416. .IP \(bu 2
  204417. 3eecb6076b Snapper: Adding support for creating configurations
  204418. .IP \(bu 2
  204419. 041e54d42a Snapper: Adding support for snapshot metadata modification
  204420. .IP \(bu 2
  204421. eaf5de9dce Snapper: Adding support for deleting snapshots
  204422. .UNINDENT
  204423. .IP \(bu 2
  204424. \fBISSUE\fP \fI\%#38370\fP: (\fI\%tjyang\fP) Salt\-Cloud: There was a query error: Required field "deviceChange" not provided (not @optional) (refs: \fI\%#39171\fP)
  204425. .IP \(bu 2
  204426. \fBPR\fP \fI\%#39171\fP: (\fI\%techhat\fP) Raise an error for a disk size that is too small
  204427. @ \fI2017\-02\-06 18:19:46 UTC\fP
  204428. .INDENT 2.0
  204429. .IP \(bu 2
  204430. 6f9251ebed Merge pull request \fI\%#39171\fP from techhat/issue38370
  204431. .IP \(bu 2
  204432. ec57a39c00 Typo
  204433. .IP \(bu 2
  204434. 2ed2932387 Clean up debug logs
  204435. .IP \(bu 2
  204436. 671282656a Raise an error for a disk size that is too small
  204437. .UNINDENT
  204438. .IP \(bu 2
  204439. \fBPR\fP \fI\%#39179\fP: (\fI\%mcalmer\fP) fix error parsing
  204440. @ \fI2017\-02\-06 17:57:00 UTC\fP
  204441. .INDENT 2.0
  204442. .IP \(bu 2
  204443. 036f36dc9b Merge pull request \fI\%#39179\fP from mcalmer/fix\-dockerng\-error\-parsing
  204444. .IP \(bu 2
  204445. 6750ccd78e fix error parsing
  204446. .UNINDENT
  204447. .IP \(bu 2
  204448. \fBPR\fP \fI\%#39189\fP: (\fI\%morganwillcock\fP) Fix NetBSD sockstat parsing
  204449. @ \fI2017\-02\-06 17:28:08 UTC\fP
  204450. .INDENT 2.0
  204451. .IP \(bu 2
  204452. 30f83156cb Merge pull request \fI\%#39189\fP from morganwillcock/sockstat
  204453. .IP \(bu 2
  204454. 344d13eff5 Fix NetBSD sockstat example
  204455. .IP \(bu 2
  204456. 64b693195c Fix NetBSD sockstat parsing
  204457. .UNINDENT
  204458. .IP \(bu 2
  204459. \fBISSUE\fP \fI\%#38003\fP: (\fI\%morganwillcock\fP) salt.runners.cache functions seem to ignore minion targeting parameter (refs: \fI\%#39141\fP)
  204460. .IP \(bu 2
  204461. \fBPR\fP \fI\%#39141\fP: (\fI\%UtahDave\fP) Don\(aqt overwrite the minion_ids var that was passed
  204462. @ \fI2017\-02\-03 20:56:25 UTC\fP
  204463. .INDENT 2.0
  204464. .IP \(bu 2
  204465. 6a9704189f Merge pull request \fI\%#39141\fP from UtahDave/fix_cache_lookup_ZD1187
  204466. .IP \(bu 2
  204467. 0340614d15 return all minions\(aq grains if no tgt
  204468. .IP \(bu 2
  204469. f833bf3a79 Don\(aqt overwrite the minion_ids var that was passed
  204470. .UNINDENT
  204471. .IP \(bu 2
  204472. \fBPR\fP \fI\%#39164\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204473. @ \fI2017\-02\-03 17:57:07 UTC\fP
  204474. .INDENT 2.0
  204475. .IP \(bu 2
  204476. d19cee716f Merge pull request \fI\%#39164\fP from rallytime/merge\-2016.11
  204477. .IP \(bu 2
  204478. 6504bb6b02 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204479. .INDENT 2.0
  204480. .IP \(bu 2
  204481. 9de08af950 Apply fix from \fI\%#38705\fP to 2016.3 branch (\fI\%#39077\fP)
  204482. .IP \(bu 2
  204483. da3053ea9b update vmware getting started doc (\fI\%#39146\fP)
  204484. .IP \(bu 2
  204485. e78ca0f575 Fixing a weird edge case when using salt syndics and targetting via pillar. Without this fix the master of masters ends up in an infinite loop since the data returned from the minions is differently structured than if a sync was not in use. (\fI\%#39145\fP)
  204486. .IP \(bu 2
  204487. cd8077ab81 Merge pull request \fI\%#38804\fP from alexbleotu/root_dir_fix\-2016.3\-gh
  204488. .INDENT 2.0
  204489. .IP \(bu 2
  204490. b3bdd3b04a Add missing whiteline
  204491. .IP \(bu 2
  204492. c7715acd53 Merge pull request \fI\%#3\fP from cro/ab_rootdirfix
  204493. .INDENT 2.0
  204494. .IP \(bu 2
  204495. e8cbafaaf1 When running testsuite, salt.syspaths.ROOT_DIR is often empty.
  204496. .UNINDENT
  204497. .IP \(bu 2
  204498. b12dd44a26 Merge pull request \fI\%#1\fP from cro/ab_rootdirfix
  204499. .INDENT 2.0
  204500. .IP \(bu 2
  204501. bffc537aca Remove extra if statements (rstrip will check for the presence anyway).
  204502. .UNINDENT
  204503. .IP \(bu 2
  204504. 97521b3468 Second attempt to fix prepending of root_dir to paths
  204505. .UNINDENT
  204506. .IP \(bu 2
  204507. 6ffeda3ee5 Clarify ipv6 option for minion and inteface for master, closes \fI\%#39118\fP (\fI\%#39131\fP)
  204508. .IP \(bu 2
  204509. 646b9ea4e5 Don\(aqt abort pillar.get with merge=True if default is None (\fI\%#39116\fP)
  204510. .UNINDENT
  204511. .UNINDENT
  204512. .IP \(bu 2
  204513. \fBPR\fP \fI\%#39152\fP: (\fI\%twangboy\fP) Remove files not needed by salt\-minion
  204514. @ \fI2017\-02\-03 17:11:11 UTC\fP
  204515. .INDENT 2.0
  204516. .IP \(bu 2
  204517. ed12512045 Merge pull request \fI\%#39152\fP from twangboy/win_installer
  204518. .IP \(bu 2
  204519. 5ff8a14317 Fix problem deleting files
  204520. .IP \(bu 2
  204521. 4524dd49d4 Remove files not needed by salt\-minion
  204522. .UNINDENT
  204523. .IP \(bu 2
  204524. \fBISSUE\fP \fI\%#38691\fP: (\fI\%lomeroe\fP) win_lgpo module throws a key error when run with return_not_configured=True (refs: \fI\%#39085\fP, \fI\%#38666\fP)
  204525. .INDENT 2.0
  204526. .IP \(bu 2
  204527. \fBPR\fP \fI\%#39085\fP: (\fI\%lomeroe\fP) Backport \fI\%#38666\fP to 2016.11
  204528. .IP \(bu 2
  204529. \fBPR\fP \fI\%#38666\fP: (\fI\%lomeroe\fP) correct issue when running lgpo.get with return_not_configured=True (refs: \fI\%#39085\fP)
  204530. .IP \(bu 2
  204531. \fBPR\fP \fI\%#39086\fP: (\fI\%lomeroe\fP) Backport \fI\%#38165\fP to 2016.11
  204532. .IP \(bu 2
  204533. \fBPR\fP \fI\%#38165\fP: (\fI\%lomeroe\fP) have _in_range_inclusive function attempt to convert a string to an i… (refs: \fI\%#39086\fP)
  204534. .UNINDENT
  204535. .IP \(bu 2
  204536. \fBISSUE\fP \fI\%#38241\fP: (\fI\%frogunder\fP) mine.get and salt\-ssh gives error message (refs: \fI\%#38970\fP)
  204537. .IP \(bu 2
  204538. \fBPR\fP \fI\%#38970\fP: (\fI\%gtmanfred\fP) when using local_cache we have to pass the list of minions
  204539. @ \fI2017\-02\-02 19:24:39 UTC\fP
  204540. .INDENT 2.0
  204541. .IP \(bu 2
  204542. 4eec641b65 Merge pull request \fI\%#38970\fP from gtmanfred/2016.11
  204543. .IP \(bu 2
  204544. ebb9df3ec7 when using local_cache we have to pass the list of minions
  204545. .UNINDENT
  204546. .IP \(bu 2
  204547. \fBISSUE\fP \fI\%#39110\fP: (\fI\%morganwillcock\fP) archive.extracted: 2016.11.2 returns state failure for some zip formats, if already extracted (refs: \fI\%#39128\fP)
  204548. .INDENT 2.0
  204549. .IP \(bu 2
  204550. \fBPR\fP \fI\%#39128\fP: (\fI\%terminalmage\fP) Fix archive.list on Windows
  204551. .UNINDENT
  204552. .IP \(bu 2
  204553. \fBISSUE\fP \fI\%saltstack/salt#36712\fP: (\fI\%dmitrievav\fP) s3.put function does not create s3 bucket (refs: \fI\%#36714\fP)
  204554. .INDENT 2.0
  204555. .IP \(bu 2
  204556. \fBPR\fP \fI\%#39133\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36714\fP to 2016.11
  204557. .IP \(bu 2
  204558. \fBPR\fP \fI\%#36714\fP: (\fI\%dmitrievav\fP) s3.put can\(aqt create s3 bucket (refs: \fI\%#39133\fP)
  204559. .UNINDENT
  204560. .IP \(bu 2
  204561. \fBISSUE\fP \fI\%#38689\fP: (\fI\%lomeroe\fP) win_lgpo state fails to set single policy due to case sensitive check (refs: \fI\%#39083\fP, \fI\%#39084\fP, \fI\%#38690\fP)
  204562. .INDENT 2.0
  204563. .IP \(bu 2
  204564. \fBPR\fP \fI\%#39084\fP: (\fI\%lomeroe\fP) Backport \fI\%#38690\fP to 2016.11
  204565. .IP \(bu 2
  204566. \fBPR\fP \fI\%#38690\fP: (\fI\%lomeroe\fP) correct checking of policy_class to compare with lower() version of t… (refs: \fI\%#39084\fP)
  204567. .UNINDENT
  204568. .IP \(bu 2
  204569. \fBISSUE\fP \fI\%#38100\fP: (\fI\%skjaro\fP) Problem with win_lgpo.py in salt 2016.11.0 (refs: \fI\%#39083\fP, \fI\%#39089\fP, \fI\%#38779\fP)
  204570. .INDENT 2.0
  204571. .IP \(bu 2
  204572. \fBPR\fP \fI\%#39089\fP: (\fI\%lomeroe\fP) Backport \fI\%#38779\fP to 2016.11
  204573. .IP \(bu 2
  204574. \fBPR\fP \fI\%#38779\fP: (\fI\%lomeroe\fP) win_lgpo handle errors when \(aqencoding="unicode"\(aq exists in ADMX file (refs: \fI\%#39089\fP)
  204575. .UNINDENT
  204576. .IP \(bu 2
  204577. \fBISSUE\fP \fI\%#38782\fP: (\fI\%lomeroe\fP) win_lgpo unable to find some Administrative Template policies (refs: \fI\%#38783\fP, \fI\%#39083\fP, \fI\%#39090\fP)
  204578. .INDENT 2.0
  204579. .IP \(bu 2
  204580. \fBPR\fP \fI\%#39090\fP: (\fI\%lomeroe\fP) Backport \fI\%#38783\fP to 2016.11
  204581. .IP \(bu 2
  204582. \fBPR\fP \fI\%#38783\fP: (\fI\%lomeroe\fP) Perform a "starts\-with" search to match ADML text names (refs: \fI\%#39090\fP)
  204583. .UNINDENT
  204584. .IP \(bu 2
  204585. \fBISSUE\fP \fI\%#38761\fP: (\fI\%DaveOHenry\fP) Cannot apply state that contains lgpo.set (refs: \fI\%#39083\fP, \fI\%#39088\fP)
  204586. .INDENT 2.0
  204587. .IP \(bu 2
  204588. \fBPR\fP \fI\%#39088\fP: (\fI\%lomeroe\fP) Backport \fI\%#37262\fP to 2016.11
  204589. .IP \(bu 2
  204590. \fBPR\fP \fI\%#37262\fP: (\fI\%lomeroe\fP) correct issues in win_lgpo module (refs: \fI\%#39088\fP)
  204591. .UNINDENT
  204592. .IP \(bu 2
  204593. \fBPR\fP \fI\%#39122\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204594. @ \fI2017\-02\-01 21:41:59 UTC\fP
  204595. .INDENT 2.0
  204596. .IP \(bu 2
  204597. 50d72da3f6 Merge pull request \fI\%#39122\fP from rallytime/merge\-2016.11
  204598. .IP \(bu 2
  204599. a782b00ee1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204600. .IP \(bu 2
  204601. cc9b69b6bc Merge pull request \fI\%#39091\fP from terminalmage/update\-test\-valid\-docs
  204602. .INDENT 2.0
  204603. .IP \(bu 2
  204604. d76f0380d0 add debug logging for batch vars
  204605. .IP \(bu 2
  204606. b4afea2a25 Don\(aqt fail test if data is empty
  204607. .IP \(bu 2
  204608. b3a5d549c1 Account for trimmed value in \(aqsalt \-d\(aq output
  204609. .IP \(bu 2
  204610. 909916c78e Run test_valid_docs in batches
  204611. .UNINDENT
  204612. .IP \(bu 2
  204613. bcee3d1ef6 Move fileclient tests to tests/integration/fileserver/fileclient_test.py (\fI\%#39081\fP)
  204614. .IP \(bu 2
  204615. 122422bc08 Bump openstack deprecation notice to Oxygen (\fI\%#39067\fP)
  204616. .UNINDENT
  204617. .IP \(bu 2
  204618. \fBPR\fP \fI\%#39087\fP: (\fI\%lomeroe\fP) Backport \fI\%#37375\fP to 2016.11
  204619. @ \fI2017\-02\-01 19:02:58 UTC\fP
  204620. .INDENT 2.0
  204621. .IP \(bu 2
  204622. \fBPR\fP \fI\%#37375\fP: (\fI\%lomeroe\fP) add updating gpt.ini file when ADM template policies are modified (gp… (refs: \fI\%#39087\fP)
  204623. .IP \(bu 2
  204624. f8a6863d98 Merge pull request \fI\%#39087\fP from lomeroe/bp\-37375
  204625. .IP \(bu 2
  204626. c3aaa536f3 _in_range_inclusive class method incorrectly called isinstance
  204627. .IP \(bu 2
  204628. ce263f9372 set_computer_policy and set_user_policy call "set" by the original function name (set) instead of the aliased function name set_
  204629. .IP \(bu 2
  204630. ff7d74bfb0 correct tool extension guid for user registry policies
  204631. .IP \(bu 2
  204632. 08f0078ef3 spelling correction
  204633. .IP \(bu 2
  204634. 5fc40485f7 add updating gpt.ini file when ADM template policies are modified (gpt.ini file must exist with proper data for ADM policies to apply)
  204635. .UNINDENT
  204636. .IP \(bu 2
  204637. \fBPR\fP \fI\%#39094\fP: (\fI\%rallytime\fP) Add a bunch of missing doc module references
  204638. @ \fI2017\-02\-01 18:56:27 UTC\fP
  204639. .INDENT 2.0
  204640. .IP \(bu 2
  204641. c4c6e701af Merge pull request \fI\%#39094\fP from rallytime/doc\-build\-warnings
  204642. .IP \(bu 2
  204643. b866427f59 Add a bunch of missing doc module references
  204644. .UNINDENT
  204645. .IP \(bu 2
  204646. \fBPR\fP \fI\%#39108\fP: (\fI\%janhorstmann\fP) [Bugfix] Fix state x509.crl_managed
  204647. @ \fI2017\-02\-01 18:32:43 UTC\fP
  204648. .INDENT 2.0
  204649. .IP \(bu 2
  204650. d302bb747e Merge pull request \fI\%#39108\fP from janhorstmann/fix\-x509\-state
  204651. .IP \(bu 2
  204652. 9f5c532510 [Bugfix] Fix state x509.crl_managed
  204653. .UNINDENT
  204654. .IP \(bu 2
  204655. \fBISSUE\fP \fI\%#39100\fP: (\fI\%whytewolf\fP) salt\-run fileserver.update Exception (refs: \fI\%#39107\fP)
  204656. .IP \(bu 2
  204657. \fBISSUE\fP \fI\%#39098\fP: (\fI\%FraaJad\fP) state.event runner fails with TypeError: argument of type \(aqNoneType\(aq is not iterable (refs: \fI\%#39107\fP)
  204658. .IP \(bu 2
  204659. \fBISSUE\fP \fI\%#38638\fP: (\fI\%mirceaulinic\fP) \fIsalt.cmd\fP runner raises TypeError when function returns bool (refs: \fI\%#39107\fP)
  204660. .IP \(bu 2
  204661. \fBPR\fP \fI\%#39107\fP: (\fI\%mirceaulinic\fP) Check if data[\(aqreturn\(aq] is dict type
  204662. @ \fI2017\-02\-01 18:21:46 UTC\fP
  204663. .INDENT 2.0
  204664. .IP \(bu 2
  204665. bf61ec9515 Merge pull request \fI\%#39107\fP from cloudflare/FIX\-38638
  204666. .IP \(bu 2
  204667. 7c34815979 Check if data[\(aqreturn\(aq] is dict type
  204668. .UNINDENT
  204669. .IP \(bu 2
  204670. \fBISSUE\fP \fI\%#39065\fP: (\fI\%jak3kaj\fP) primary bonding option is not applied (refs: \fI\%#39068\fP, \fI\%#39069\fP)
  204671. .INDENT 2.0
  204672. .IP \(bu 2
  204673. \fBPR\fP \fI\%#39069\fP: (\fI\%jak3kaj\fP) Update primary bonding option in rh_ip.py
  204674. .UNINDENT
  204675. .IP \(bu 2
  204676. \fBISSUE\fP \fI\%#39065\fP: (\fI\%jak3kaj\fP) primary bonding option is not applied (refs: \fI\%#39068\fP, \fI\%#39069\fP)
  204677. .INDENT 2.0
  204678. .IP \(bu 2
  204679. \fBPR\fP \fI\%#39068\fP: (\fI\%jak3kaj\fP) Update primary bonding option in debian_ip.py
  204680. .UNINDENT
  204681. .IP \(bu 2
  204682. \fBISSUE\fP \fI\%#38704\fP: (\fI\%nasenbaer13\fP) Archive extracted fails when another state run is queued (refs: \fI\%#38705\fP)
  204683. .IP \(bu 2
  204684. \fBPR\fP \fI\%#39076\fP: (\fI\%terminalmage\fP) Re\-submit PR \fI\%#38705\fP against 2016.11 branch
  204685. @ \fI2017\-01\-31 20:11:55 UTC\fP
  204686. .INDENT 2.0
  204687. .IP \(bu 2
  204688. \fBPR\fP \fI\%#38705\fP: (\fI\%nasenbaer13\fP) Fix for \fI\%#38704\fP archive extracted and dockerio states (refs: \fI\%#39077\fP, \fI\%#39076\fP)
  204689. .IP \(bu 2
  204690. 9836d7dd29 Merge pull request \fI\%#39076\fP from terminalmage/pr\-38705
  204691. .IP \(bu 2
  204692. 15db8d47ed Fix for \fI\%#38704\fP archive extracted and dockerio states
  204693. .UNINDENT
  204694. .IP \(bu 2
  204695. \fBISSUE\fP \fI\%#39057\fP: (\fI\%sergeizv\fP) modules.linux_lvm.fullversion provides incomplete info (refs: \fI\%#39058\fP)
  204696. .IP \(bu 2
  204697. \fBPR\fP \fI\%#39058\fP: (\fI\%sergeizv\fP) Fix salt.modules.linux_lvm.fullversion
  204698. @ \fI2017\-01\-31 19:01:12 UTC\fP
  204699. .INDENT 2.0
  204700. .IP \(bu 2
  204701. 86b4b77bfe Merge pull request \fI\%#39058\fP from sergeizv/fix\-lvm\-fullversion
  204702. .IP \(bu 2
  204703. e46c89f9ed Fix salt.modules.linux_lvm.fullversion
  204704. .IP \(bu 2
  204705. fb7ef99838 Fix mock emulating lvm version
  204706. .UNINDENT
  204707. .IP \(bu 2
  204708. \fBISSUE\fP \fI\%#39051\fP: (\fI\%afletch\fP) salt.roster.cache / salt.utils.cloud is_public_ip \- incorrect public IP address (refs: \fI\%#39066\fP)
  204709. .IP \(bu 2
  204710. \fBPR\fP \fI\%#39066\fP: (\fI\%techhat\fP) 127.0.0.0/8 is all loopback
  204711. @ \fI2017\-01\-31 18:43:22 UTC\fP
  204712. .INDENT 2.0
  204713. .IP \(bu 2
  204714. 721b245f90 Merge pull request \fI\%#39066\fP from techhat/issue39051
  204715. .IP \(bu 2
  204716. ea43bb8101 127.0.0.0/8 is all loopback
  204717. .UNINDENT
  204718. .IP \(bu 2
  204719. \fBISSUE\fP \fI\%#39070\fP: (\fI\%sergeizv\fP) modules.linux_lvm.pvcreate misbehaves if all submitted devices are already LVM PVs (refs: \fI\%#39071\fP)
  204720. .IP \(bu 2
  204721. \fBPR\fP \fI\%#39071\fP: (\fI\%sergeizv\fP) Fix modules.linux_lvm.pvcreate on existing LVM PVs
  204722. @ \fI2017\-01\-31 18:36:54 UTC\fP
  204723. .INDENT 2.0
  204724. .IP \(bu 2
  204725. c54d9f4e2a Merge pull request \fI\%#39071\fP from sergeizv/fix\-lvm\-pvcreate
  204726. .IP \(bu 2
  204727. f1e3e86e6a Fix modules.linux_lvm.pvcreate on existing LVM PVs
  204728. .IP \(bu 2
  204729. 0f84ca2487 Add test for modules.linux_lvm.pvcreate on existing LVM PVs
  204730. .IP \(bu 2
  204731. 3967992bfd Fix test for modules.linux_lvm.pvcreate
  204732. .UNINDENT
  204733. .IP \(bu 2
  204734. \fBPR\fP \fI\%#39048\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204735. @ \fI2017\-01\-31 15:55:49 UTC\fP
  204736. .INDENT 2.0
  204737. .IP \(bu 2
  204738. 88b171f863 Merge pull request \fI\%#39048\fP from rallytime/merge\-2016.11
  204739. .IP \(bu 2
  204740. b2b3989773 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204741. .INDENT 2.0
  204742. .IP \(bu 2
  204743. a24af5ac46 Merge pull request \fI\%#39047\fP from rallytime/merge\-2016.3
  204744. .INDENT 2.0
  204745. .IP \(bu 2
  204746. b732a1f646 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  204747. .IP \(bu 2
  204748. 56ccae6ff7 Add 2015.8.14 release notes file (\fI\%#39046\fP)
  204749. .IP \(bu 2
  204750. 5943fe65d3 Update 2015.8.13 release notes (\fI\%#39037\fP)
  204751. .UNINDENT
  204752. .IP \(bu 2
  204753. fef1b1133d Add 2016.3.6 release notes file (\fI\%#39045\fP)
  204754. .IP \(bu 2
  204755. 7c43f4ac32 [2016.3] Update release numbers for doc build (\fI\%#39042\fP)
  204756. .IP \(bu 2
  204757. ff324599d5 Update 2016.3.5 release notes (\fI\%#39038\fP)
  204758. .IP \(bu 2
  204759. 5b09dc4198 Merge pull request \fI\%#39028\fP from terminalmage/clarify\-delimiter\-argument
  204760. .INDENT 2.0
  204761. .IP \(bu 2
  204762. f29ef071f3 Clarify delimiter argument
  204763. .UNINDENT
  204764. .IP \(bu 2
  204765. 1ff359fa58 Add CLI Example for rest_sample_utils.get_test_string function (\fI\%#39030\fP)
  204766. .IP \(bu 2
  204767. f13fb9ef1e Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ availability in proxies. (\fI\%#38899\fP)
  204768. .UNINDENT
  204769. .IP \(bu 2
  204770. \fBPR\fP \fI\%#39035\fP: (\fI\%cro\fP) Add CLI Examples so tests will pass
  204771. .IP \(bu 2
  204772. \fBPR\fP \fI\%#39044\fP: (\fI\%rallytime\fP) Add 2016.11.3 release notes file
  204773. .IP \(bu 2
  204774. \fBPR\fP \fI\%#39040\fP: (\fI\%rallytime\fP) [2016.11] Update release numbers for doc build
  204775. .IP \(bu 2
  204776. \fBPR\fP \fI\%#39039\fP: (\fI\%rallytime\fP) Update 2016.11.2 release notes
  204777. .IP \(bu 2
  204778. \fBPR\fP \fI\%#39005\fP: (\fI\%cro\fP) Ungate the status.py module and raise unsupported errors in functions not executable on Windows. (refs: \fI\%#39536\fP)
  204779. .UNINDENT
  204780. .IP \(bu 2
  204781. \fBPR\fP \fI\%#39012\fP: (\fI\%terminalmage\fP) Fix "invalid lexer" errors in docs build
  204782. @ \fI2017\-01\-28 06:47:45 UTC\fP
  204783. .INDENT 2.0
  204784. .IP \(bu 2
  204785. e70904c480 Merge pull request \fI\%#39012\fP from terminalmage/invalid\-lexer
  204786. .IP \(bu 2
  204787. 868001baac Fix "invalid lexer" errors in docs build
  204788. .UNINDENT
  204789. .IP \(bu 2
  204790. \fBPR\fP \fI\%#39003\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204791. @ \fI2017\-01\-28 00:09:09 UTC\fP
  204792. .INDENT 2.0
  204793. .IP \(bu 2
  204794. cea0f32936 Merge pull request \fI\%#39003\fP from rallytime/merge\-2016.11
  204795. .IP \(bu 2
  204796. 76e95087fd Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204797. .IP \(bu 2
  204798. da96221741 Merge pull request \fI\%#38951\fP from DSRCorporation/bugs/37938_fix_depends_decorator_memleak
  204799. .INDENT 2.0
  204800. .IP \(bu 2
  204801. 0b18f34678 Keep the only one record per module\-function in depends decorator.
  204802. .UNINDENT
  204803. .IP \(bu 2
  204804. 85165edb70 Merge pull request \fI\%#38982\fP from rallytime/fix\-34780
  204805. .INDENT 2.0
  204806. .IP \(bu 2
  204807. 1583c5579a Set response when using "GET" method in s3 utils
  204808. .UNINDENT
  204809. .IP \(bu 2
  204810. cfdbc99e12 Merge pull request \fI\%#38989\fP from alprs/docfix\-state_pt3_environ
  204811. .INDENT 2.0
  204812. .IP \(bu 2
  204813. 52a9ad1c60 fix SLS in environment variable examples
  204814. .UNINDENT
  204815. .IP \(bu 2
  204816. 55e4d2572e Merge pull request \fI\%#39000\fP from rallytime/skip\-badload\-test
  204817. .INDENT 2.0
  204818. .IP \(bu 2
  204819. 4b3ff0fe0f Skip the test_badload test until Jenkins move is complete
  204820. .UNINDENT
  204821. .IP \(bu 2
  204822. fe054eb772 Merge pull request \fI\%#38995\fP from terminalmage/fix\-pillar.item\-docstring
  204823. .INDENT 2.0
  204824. .IP \(bu 2
  204825. 06d094dd8f Fix pillar.item docstring
  204826. .UNINDENT
  204827. .UNINDENT
  204828. .IP \(bu 2
  204829. \fBISSUE\fP \fI\%#38853\fP: (\fI\%bobrik\fP) file.serialize still expects show_diff instead of show_changes (refs: \fI\%#38908\fP)
  204830. .IP \(bu 2
  204831. \fBPR\fP \fI\%#38908\fP: (\fI\%bobrik\fP) Deprecate show_diff for file.serialize to mimic file.managed, closes \fI\%#38853\fP
  204832. @ \fI2017\-01\-27 17:15:37 UTC\fP
  204833. .INDENT 2.0
  204834. .IP \(bu 2
  204835. 58543d5cbf Merge pull request \fI\%#38908\fP from bobrik/show\-changes\-for\-serialize
  204836. .IP \(bu 2
  204837. e0af212c1b Remove unnecessary blank lines
  204838. .IP \(bu 2
  204839. a08c1ca530 Deprecate show_diff for file.serialize to mimic file.managed, closes \fI\%#38853\fP
  204840. .UNINDENT
  204841. .IP \(bu 2
  204842. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#1021\fP: (\fI\%sjorge\fP) salt\-bootstrap missing salt\-api.xml on smartos (refs: \fI\%#38978\fP)
  204843. .IP \(bu 2
  204844. \fBPR\fP \fI\%#38978\fP: (\fI\%sjorge\fP) fixes \fI\%saltstack/salt\-bootstrap#1021\fP
  204845. @ \fI2017\-01\-27 17:05:10 UTC\fP
  204846. .INDENT 2.0
  204847. .IP \(bu 2
  204848. 4b75dfac95 Merge pull request \fI\%#38978\fP from sjorge/2016.11\-bootstrap
  204849. .IP \(bu 2
  204850. 26eb35f99d fixes salt/salt\-bootstrap\(ga#1021\(ga_
  204851. .UNINDENT
  204852. .IP \(bu 2
  204853. \fBPR\fP \fI\%#38991\fP: (\fI\%isbm\fP) Isbm zypper state unknown pkg crash
  204854. @ \fI2017\-01\-27 16:59:38 UTC\fP
  204855. .INDENT 2.0
  204856. .IP \(bu 2
  204857. b40f369d98 Merge pull request \fI\%#38991\fP from isbm/isbm\-zypper\-state\-unknown\-pkg\-crash
  204858. .IP \(bu 2
  204859. 35f620e1c8 Prevent crash on unknown to the repo package
  204860. .UNINDENT
  204861. .IP \(bu 2
  204862. \fBPR\fP \fI\%#38979\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  204863. @ \fI2017\-01\-26 22:56:13 UTC\fP
  204864. .INDENT 2.0
  204865. .IP \(bu 2
  204866. 3e76662166 Merge pull request \fI\%#38979\fP from rallytime/merge\-2016.11
  204867. .IP \(bu 2
  204868. fdaa5ac1b0 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  204869. .IP \(bu 2
  204870. b66b6f6423 Merge pull request \fI\%#38950\fP from mbom2004/2016.3
  204871. .INDENT 2.0
  204872. .IP \(bu 2
  204873. c09f39d6c9 Remove unused json import
  204874. .IP \(bu 2
  204875. 249efa3068 Fixed Logstash Engine in file logstash.py
  204876. .UNINDENT
  204877. .IP \(bu 2
  204878. a6c6e47842 Handle changing "is_default" value in moto package for boto test mock (\fI\%#38973\fP)
  204879. .IP \(bu 2
  204880. b965b5dcc2 Merge pull request \fI\%#38952\fP from terminalmage/zd1168
  204881. .INDENT 2.0
  204882. .IP \(bu 2
  204883. 6b014e53fc Rename on_demand_pillar to on_demand_ext_pillar
  204884. .IP \(bu 2
  204885. d216f90c63 Document new on_demand_pillar option and add to config template
  204886. .IP \(bu 2
  204887. 426b20f02f Add documentation for on\-demand pillar to pillar.ext docstring
  204888. .IP \(bu 2
  204889. 7b10274b6b Make on\-demand ext_pillars tunable
  204890. .IP \(bu 2
  204891. d54723ccae Add on_demand_pillar config option
  204892. .UNINDENT
  204893. .IP \(bu 2
  204894. 2c4ad85a78 Merge pull request \fI\%#38948\fP from rallytime/bump\-template\-context\-deprecation
  204895. .INDENT 2.0
  204896. .IP \(bu 2
  204897. 749e0031d7 Bump the template context deprecation version to Oxygen
  204898. .UNINDENT
  204899. .IP \(bu 2
  204900. e4514ca7d8 Merge pull request \fI\%#38946\fP from rallytime/bp\-37632
  204901. .INDENT 2.0
  204902. .IP \(bu 2
  204903. ee37cdace9 Fix some lint
  204904. .IP \(bu 2
  204905. c08071e182 Fix versions report for server OSs
  204906. .UNINDENT
  204907. .IP \(bu 2
  204908. 953a20350a Merge pull request \fI\%#38913\fP from Adaephon\-GH/patch\-1
  204909. .INDENT 2.0
  204910. .IP \(bu 2
  204911. e2f4a16fdd Removing trailing whitespace
  204912. .IP \(bu 2
  204913. 616292c6b1 Ignore plist files without Label key
  204914. .UNINDENT
  204915. .IP \(bu 2
  204916. 826dce1059 Merge pull request \fI\%#38917\fP from twangboy/update_jinja_mac
  204917. .INDENT 2.0
  204918. .IP \(bu 2
  204919. 62e608b627 Update Jinja2 to 2.9.4
  204920. .UNINDENT
  204921. .IP \(bu 2
  204922. b27733cc33 Merge pull request \fI\%#38925\fP from terminalmage/issue38540
  204923. .INDENT 2.0
  204924. .IP \(bu 2
  204925. 76392fc6ad Fix traceback when a netapi module uses wheel_async
  204926. .IP \(bu 2
  204927. bd4474fa62 Fix \(aqsuccess\(aq value for wheel commands
  204928. .UNINDENT
  204929. .IP \(bu 2
  204930. 618596f0cc Merge pull request \fI\%#38926\fP from gtmanfred/2016.3
  204931. .INDENT 2.0
  204932. .IP \(bu 2
  204933. 9cae953c93 add note about pysss for pam eauth
  204934. .UNINDENT
  204935. .UNINDENT
  204936. .IP \(bu 2
  204937. \fBPR\fP \fI\%#38937\fP: (\fI\%arthru\fP) Fix smtp ret require gnupg
  204938. @ \fI2017\-01\-26 20:08:16 UTC\fP
  204939. .INDENT 2.0
  204940. .IP \(bu 2
  204941. 0660cc3cf2 Merge pull request \fI\%#38937\fP from HashBangDev/fix\-smtp\-ret\-require\-gnupg
  204942. .IP \(bu 2
  204943. 399556b9fe Remove trailing whitespace
  204944. .IP \(bu 2
  204945. f308d13a17 log an error on gnupg absence instead of raising an exception
  204946. .IP \(bu 2
  204947. 0427879d19 fails if gpgowner is set in smtp returner config but the installation lacks gnupg module
  204948. .IP \(bu 2
  204949. 27449c5a9b smtp returner does not require gnupg to be installed
  204950. .UNINDENT
  204951. .IP \(bu 2
  204952. \fBISSUE\fP \fI\%#38816\fP: (\fI\%grichmond\-salt\fP) Errors in cloud runners are not reliably being captured as failures. (refs: \fI\%#38955\fP)
  204953. .IP \(bu 2
  204954. \fBPR\fP \fI\%#38955\fP: (\fI\%techhat\fP) Do a better job at error detection in runners
  204955. @ \fI2017\-01\-26 20:00:18 UTC\fP
  204956. .INDENT 2.0
  204957. .IP \(bu 2
  204958. d947c5c449 Merge pull request \fI\%#38955\fP from techhat/issue38816
  204959. .IP \(bu 2
  204960. ea8654f400 Typo
  204961. .IP \(bu 2
  204962. 94050ff716 Watch out for bools
  204963. .IP \(bu 2
  204964. 0142b0bcb3 Do a better job at error detection in runners
  204965. .UNINDENT
  204966. .IP \(bu 2
  204967. \fBPR\fP \fI\%#38953\fP: (\fI\%thatch45\fP) fix an issue where thorium would remove keys of reattaching minions
  204968. @ \fI2017\-01\-26 19:15:59 UTC\fP
  204969. .INDENT 2.0
  204970. .IP \(bu 2
  204971. 04a5b05c36 Merge pull request \fI\%#38953\fP from thatch45/thorium_keyfix
  204972. .IP \(bu 2
  204973. 68e96b11ac This is faster and cleaner
  204974. .IP \(bu 2
  204975. 13d28a34a6 fix an issue where thorium would remove keys of reattaching minions
  204976. .IP \(bu 2
  204977. \fBPR\fP \fI\%#38972\fP: (\fI\%rallytime\fP) Add CLI Example for rest_sample_utils.get_test_string function (refs: \fI\%#39030\fP)
  204978. .UNINDENT
  204979. .IP \(bu 2
  204980. \fBPR\fP \fI\%#38957\fP: (\fI\%mcalmer\fP) Fix timezone handling for rpm installtime
  204981. @ \fI2017\-01\-26 18:41:15 UTC\fP
  204982. .INDENT 2.0
  204983. .IP \(bu 2
  204984. 27166fad4e Merge pull request \fI\%#38957\fP from mcalmer/fix\-rpm\-install_date\-timezone
  204985. .IP \(bu 2
  204986. c7da9f87b6 Fix timezone handling for rpm installtime
  204987. .UNINDENT
  204988. .IP \(bu 2
  204989. \fBPR\fP \fI\%#38965\fP: (\fI\%toanju\fP) salt\-cloud will use list_floating_ips for OpenStack
  204990. @ \fI2017\-01\-26 16:44:12 UTC\fP
  204991. .INDENT 2.0
  204992. .IP \(bu 2
  204993. \fBPR\fP \fI\%#34280\fP: (\fI\%kevinanderson1\fP) salt\-cloud will use list_floating_ips for Openstack (refs: \fI\%#38965\fP)
  204994. .IP \(bu 2
  204995. ec690a0a12 Merge pull request \fI\%#38965\fP from toanju/2016.11
  204996. .IP \(bu 2
  204997. 1253ce9b63 salt\-cloud will use list_floating_ips for OpenStack
  204998. .UNINDENT
  204999. .IP \(bu 2
  205000. \fBPR\fP \fI\%#38949\fP: (\fI\%clinta\fP) Use signing passphrase as public passphrase when generating self\-sign…
  205001. @ \fI2017\-01\-25 20:20:58 UTC\fP
  205002. .INDENT 2.0
  205003. .IP \(bu 2
  205004. d906e8fadb Merge pull request \fI\%#38949\fP from clinta/x509\-passphrase\-bug
  205005. .IP \(bu 2
  205006. c8697e38a8 Use signing passphrase as public passphrase when generating self\-signed certificates
  205007. .UNINDENT
  205008. .IP \(bu 2
  205009. \fBPR\fP \fI\%#38929\fP: (\fI\%MTecknology\fP) Fix psutil regressions in 2016.11
  205010. @ \fI2017\-01\-25 20:17:41 UTC\fP
  205011. .INDENT 2.0
  205012. .IP \(bu 2
  205013. de3b2cc97b Merge pull request \fI\%#38929\fP from MTecknology/2016.11
  205014. .IP \(bu 2
  205015. 73a8c6d121 Load core grains only if required.
  205016. .IP \(bu 2
  205017. 4966011cb5 Modules might still be needed, even if psutil loads.
  205018. .IP \(bu 2
  205019. fb0432fd21 Fixes a regression with old versions of python\-psutil.
  205020. .UNINDENT
  205021. .IP \(bu 2
  205022. \fBPR\fP \fI\%#38940\fP: (\fI\%isbm\fP) Isbm sanitizers fix and unit test
  205023. @ \fI2017\-01\-25 20:15:56 UTC\fP
  205024. .INDENT 2.0
  205025. .IP \(bu 2
  205026. 3ec806c003 Merge pull request \fI\%#38940\fP from isbm/isbm\-sanitizers\-fix\-and\-unit\-test
  205027. .IP \(bu 2
  205028. a112b790fe Fix typo
  205029. .IP \(bu 2
  205030. 47a16916c3 Add unit test
  205031. .IP \(bu 2
  205032. 046c5436eb Fix leading dots on sanitized hostname
  205033. .UNINDENT
  205034. .IP \(bu 2
  205035. \fBPR\fP \fI\%#38944\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205036. @ \fI2017\-01\-25 19:44:42 UTC\fP
  205037. .INDENT 2.0
  205038. .IP \(bu 2
  205039. e420763285 Merge pull request \fI\%#38944\fP from rallytime/merge\-2016.11
  205040. .IP \(bu 2
  205041. ee33a53a64 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205042. .INDENT 2.0
  205043. .IP \(bu 2
  205044. 405d86a2ca Merge pull request \fI\%#38847\fP from terminalmage/issue38825
  205045. .INDENT 2.0
  205046. .IP \(bu 2
  205047. 11a47803ce Use log.exception() instead
  205048. .IP \(bu 2
  205049. e40fac589a Catch MinionError in file.source_list
  205050. .UNINDENT
  205051. .IP \(bu 2
  205052. b5df104fc2 Merge pull request \fI\%#38875\fP from terminalmage/issue36121
  205053. .INDENT 2.0
  205054. .IP \(bu 2
  205055. fbc4d2a2c4 reactor: ensure glob_ref is a string
  205056. .IP \(bu 2
  205057. 2e443d79a3 cp.cache_file: add note re: return for nonexistant salt:// path
  205058. .UNINDENT
  205059. .IP \(bu 2
  205060. e9ebec4d80 Merge pull request \fI\%#38890\fP from cro/vmware_reset_vm_20163
  205061. .INDENT 2.0
  205062. .IP \(bu 2
  205063. 0146562fb4 Call correct function for resetting a VM
  205064. .UNINDENT
  205065. .IP \(bu 2
  205066. c3fbfcd231 Merge pull request \fI\%#38883\fP from techhat/dontrequire
  205067. .INDENT 2.0
  205068. .IP \(bu 2
  205069. 67bc4d6687 Don\(aqt require text_out path to exist
  205070. .UNINDENT
  205071. .IP \(bu 2
  205072. 6430a45196 Merge pull request \fI\%#38851\fP from terminalmage/docker\-py\-2.0
  205073. .INDENT 2.0
  205074. .IP \(bu 2
  205075. 3c061b21fe Support docker\-py 2.0 in dockerng
  205076. .UNINDENT
  205077. .IP \(bu 2
  205078. ac8008d843 Merge pull request \fI\%#38844\fP from cachedout/http_memory_leak
  205079. .INDENT 2.0
  205080. .IP \(bu 2
  205081. c46bf85518 Fix memory leak in HTTP client
  205082. .UNINDENT
  205083. .IP \(bu 2
  205084. dfe6dfe963 Merge pull request \fI\%#38823\fP from gtmanfred/2016.3
  205085. .INDENT 2.0
  205086. .IP \(bu 2
  205087. f0a71e8707 pass pillar to compound matcher in match module
  205088. .UNINDENT
  205089. .IP \(bu 2
  205090. a04ab86da1 Merge pull request \fI\%#38833\fP from Ch3LL/add_release_notes_2016.3.5
  205091. .IP \(bu 2
  205092. 374dc1ab88 skip 2016.3.5 due to :doc: references
  205093. .IP \(bu 2
  205094. 31f324c4ff add 2016.3.5 changelog to release notes
  205095. .UNINDENT
  205096. .UNINDENT
  205097. .IP \(bu 2
  205098. \fBISSUE\fP \fI\%#38753\fP: (\fI\%alexbleotu\fP) \fI__proxy__\fP dunder is not injected when invoking the \fIsalt\fP variable in sls files (refs: \fI\%#38899\fP, \fI\%#38900\fP, \fI\%#38829\fP)
  205099. .IP \(bu 2
  205100. \fBISSUE\fP \fI\%#38557\fP: (\fI\%alexbleotu\fP) Proxy not working on develop (refs: \fI\%#38829\fP)
  205101. .IP \(bu 2
  205102. \fBISSUE\fP \fI\%#38265\fP: (\fI\%mirceaulinic\fP) \fI__utils__\fP object not available in proxy module (refs: \fI\%#38899\fP, \fI\%#38900\fP, \fI\%#38829\fP)
  205103. .IP \(bu 2
  205104. \fBISSUE\fP \fI\%#32918\fP: (\fI\%mirceaulinic\fP) Proxy minions reconnection (refs: \fI\%#38829\fP)
  205105. .IP \(bu 2
  205106. \fBPR\fP \fI\%#38900\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies.
  205107. @ \fI2017\-01\-25 19:36:48 UTC\fP
  205108. .INDENT 2.0
  205109. .IP \(bu 2
  205110. \fBPR\fP \fI\%#38899\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies. (refs: \fI\%#38900\fP)
  205111. .IP \(bu 2
  205112. \fBPR\fP \fI\%#38829\fP: (\fI\%cro\fP) MANY dunder variable fixes for proxies + proxy keepalive from @mirceaulinic (refs: \fI\%#38899\fP, \fI\%#38900\fP)
  205113. .IP \(bu 2
  205114. \fBPR\fP \fI\%#37864\fP: (\fI\%mirceaulinic\fP) Proxy keepalive feature (refs: \fI\%#38829\fP)
  205115. .IP \(bu 2
  205116. bd4889ac73 Merge pull request \fI\%#38900\fP from cro/px_dunder_201611
  205117. .IP \(bu 2
  205118. 9a86fddfa1 Remove extra call to salt.loader.utils.
  205119. .IP \(bu 2
  205120. f4ba89735c Resolve merge conflict
  205121. .UNINDENT
  205122. .IP \(bu 2
  205123. \fBPR\fP \fI\%#38918\fP: (\fI\%thatch45\fP) Thorium typos
  205124. @ \fI2017\-01\-25 19:00:40 UTC\fP
  205125. .INDENT 2.0
  205126. .IP \(bu 2
  205127. f94b8798b6 Merge pull request \fI\%#38918\fP from thatch45/thorium_typos
  205128. .IP \(bu 2
  205129. 0b4aca9145 fix some minor typos in the thorium docs
  205130. .IP \(bu 2
  205131. 58a18e2b58 Add test= True to the master so that thorium does not stack trace
  205132. .UNINDENT
  205133. .IP \(bu 2
  205134. \fBISSUE\fP \fI\%#38543\fP: (\fI\%amendlik\fP) salt \-\-subset returns wrong number of minions (refs: \fI\%#38919\fP)
  205135. .IP \(bu 2
  205136. \fBPR\fP \fI\%#38919\fP: (\fI\%cachedout\fP) Correctly pass subset to cmd_subset
  205137. @ \fI2017\-01\-25 18:59:16 UTC\fP
  205138. .INDENT 2.0
  205139. .IP \(bu 2
  205140. 32fbb945b7 Merge pull request \fI\%#38919\fP from cachedout/issue_38543
  205141. .IP \(bu 2
  205142. a555de7c56 Correctly pass subset to cmd_subset
  205143. .UNINDENT
  205144. .IP \(bu 2
  205145. \fBPR\fP \fI\%#38922\fP: (\fI\%twangboy\fP) Fix 64bit detection, vcredist only on <= 2008
  205146. @ \fI2017\-01\-25 18:47:41 UTC\fP
  205147. .INDENT 2.0
  205148. .IP \(bu 2
  205149. 6b3c738bfd Merge pull request \fI\%#38922\fP from twangboy/fix_vcredist
  205150. .IP \(bu 2
  205151. 214e1cc598 Fix 64bit detection, vcredist only on <= 2008
  205152. .UNINDENT
  205153. .IP \(bu 2
  205154. \fBISSUE\fP \fI\%#38371\fP: (\fI\%syphernl\fP) [2016.11.1] Scheduled highstates not returning to master (refs: \fI\%#38923\fP)
  205155. .IP \(bu 2
  205156. \fBPR\fP \fI\%#38923\fP: (\fI\%DmitryKuzmenko\fP) Fixed broken __schedule_return handler.
  205157. @ \fI2017\-01\-25 18:45:30 UTC\fP
  205158. .INDENT 2.0
  205159. .IP \(bu 2
  205160. \fBPR\fP \fI\%#36202\fP: (\fI\%hu\-dabao\fP) for 36049, log current connected master and make status module more useful and efficient (refs: \fI\%#38923\fP)
  205161. .IP \(bu 2
  205162. 954658523b Merge pull request \fI\%#38923\fP from DSRCorporation/bugs/38371_fix_schedule_return
  205163. .IP \(bu 2
  205164. b18f675486 Fixed broken __schedule_return handler.
  205165. .UNINDENT
  205166. .IP \(bu 2
  205167. \fBPR\fP \fI\%#38927\fP: (\fI\%l2ol33rt\fP) Adding explicit install of python\-systemd in jessie\-backports on Debian Guide
  205168. @ \fI2017\-01\-25 18:21:18 UTC\fP
  205169. .INDENT 2.0
  205170. .IP \(bu 2
  205171. 828e9bd8f9 Merge pull request \fI\%#38927\fP from l2ol33rt/debian_doc_fix
  205172. .IP \(bu 2
  205173. 9cc9c6110d Adding explicit call to python\-systemd in jessie\-backports
  205174. .UNINDENT
  205175. .IP \(bu 2
  205176. \fBISSUE\fP \fI\%#37413\fP: (\fI\%Snarfingcode666\fP) Salt\-cloud vmware missing reboot command (refs: \fI\%#38890\fP, \fI\%#38887\fP, \fI\%#38889\fP)
  205177. .IP \(bu 2
  205178. \fBPR\fP \fI\%#38889\fP: (\fI\%cro\fP) Backport \fI\%#38887\fP to 2016.11: Call correct function for resetting a VM
  205179. @ \fI2017\-01\-24 15:20:29 UTC\fP
  205180. .INDENT 2.0
  205181. .IP \(bu 2
  205182. \fBPR\fP \fI\%#38887\fP: (\fI\%cro\fP) Enable resetting a VM via salt\-cloud & VMware driver (refs: \fI\%#38890\fP, \fI\%#38889\fP)
  205183. .IP \(bu 2
  205184. 5ff5e97598 Merge pull request \fI\%#38889\fP from cro/vmware_reset_vm_201611
  205185. .IP \(bu 2
  205186. 76a9920a6b Call correct function for resetting a VM
  205187. .UNINDENT
  205188. .IP \(bu 2
  205189. \fBPR\fP \fI\%#38891\fP: (\fI\%UtahDave\fP) Proper function parameter default
  205190. @ \fI2017\-01\-24 15:06:09 UTC\fP
  205191. .INDENT 2.0
  205192. .IP \(bu 2
  205193. 53d0aa8855 Merge pull request \fI\%#38891\fP from UtahDave/fix_cassandra_protocol_version
  205194. .IP \(bu 2
  205195. c475609683 Proper function parameter default
  205196. .UNINDENT
  205197. .IP \(bu 2
  205198. \fBPR\fP \fI\%#38904\fP: (\fI\%terminalmage\fP) Add top file merging docs to the master config file documentation
  205199. @ \fI2017\-01\-24 14:59:26 UTC\fP
  205200. .INDENT 2.0
  205201. .IP \(bu 2
  205202. c680ee3174 Merge pull request \fI\%#38904\fP from terminalmage/docs
  205203. .IP \(bu 2
  205204. 42a3652620 Add top file merging docs to the master config file documentation
  205205. .UNINDENT
  205206. .IP \(bu 2
  205207. \fBPR\fP \fI\%#38885\fP: (\fI\%meaksh\fP) Increasing timeouts for running integrations tests
  205208. @ \fI2017\-01\-23 18:59:50 UTC\fP
  205209. .INDENT 2.0
  205210. .IP \(bu 2
  205211. 41a3055213 Merge pull request \fI\%#38885\fP from meaksh/2016.11\-fix\-tests\-issues
  205212. .IP \(bu 2
  205213. 4311b0b6de Increasing timeouts for running integrations tests
  205214. .UNINDENT
  205215. .IP \(bu 2
  205216. \fBPR\fP \fI\%#38639\fP: (\fI\%isbm\fP) Isbm disable custom roster for api 2016.11
  205217. @ \fI2017\-01\-23 18:59:11 UTC\fP
  205218. .INDENT 2.0
  205219. .IP \(bu 2
  205220. bde6d3eee7 Merge pull request \fI\%#38639\fP from isbm/isbm\-disable\-custom\-roster\-for\-api\-2016.11
  205221. .IP \(bu 2
  205222. ffbd45062e Explain what it is about and how to configure that
  205223. .UNINDENT
  205224. .UNINDENT
  205225. .SS Salt 2016.11.4 Release Notes
  205226. .sp
  205227. Version 2016.11.4 is a bugfix release for 2016.11.0\&.
  205228. .SS Statistics
  205229. .INDENT 0.0
  205230. .IP \(bu 2
  205231. Total Merges: \fB276\fP
  205232. .IP \(bu 2
  205233. Total Issue References: \fB63\fP
  205234. .IP \(bu 2
  205235. Total PR References: \fB223\fP
  205236. .IP \(bu 2
  205237. Contributors: \fB62\fP (\fI\%Ch3LL\fP, \fI\%DennisHarper\fP, \fI\%DmitryKuzmenko\fP, \fI\%L4rS6\fP, \fI\%MasterNayru\fP, \fI\%Seb\-Solon\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%aabognah\fP, \fI\%alankrita\fP, \fI\%amontalban\fP, \fI\%ardakuyumcu\fP, \fI\%attiasr\fP, \fI\%bdrung\fP, \fI\%bewing\fP, \fI\%cachedout\fP, \fI\%cro\fP, \fI\%defanator\fP, \fI\%discountbin\fP, \fI\%dmurphy18\fP, \fI\%drawsmcgraw\fP, \fI\%eldadru\fP, \fI\%garethgreenaway\fP, \fI\%githubcdr\fP, \fI\%gtmanfred\fP, \fI\%hkrist\fP, \fI\%isbm\fP, \fI\%jbadson\fP, \fI\%jeanpralo\fP, \fI\%jettero\fP, \fI\%jinm\fP, \fI\%joe\-niland\fP, \fI\%kaszuba\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%mateiw\fP, \fI\%mcalmer\fP, \fI\%mchugh19\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%mlalpho\fP, \fI\%narendraingale2\fP, \fI\%nmadhok\fP, \fI\%rallytime\fP, \fI\%redbaron4\fP, \fI\%roaldnefs\fP, \fI\%s0undt3ch\fP, \fI\%skazi0\fP, \fI\%skizunov\fP, \fI\%smarsching\fP, \fI\%sofixa\fP, \fI\%sp1r\fP, \fI\%sthrasher\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%thor\fP, \fI\%ticosax\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%whiteinge\fP, \fI\%zer0def\fP)
  205238. .UNINDENT
  205239. .SS AIX Support Expanded
  205240. .sp
  205241. AIX support has been added for the following execution modules:
  205242. .INDENT 0.0
  205243. .IP \(bu 2
  205244. \fBuser\fP
  205245. .IP \(bu 2
  205246. \fBgroup\fP
  205247. .IP \(bu 2
  205248. \fBnetwork\fP
  205249. .IP \(bu 2
  205250. \fBstatus\fP
  205251. .IP \(bu 2
  205252. \fBtimezone\fP
  205253. .UNINDENT
  205254. .sp
  205255. Additionally, AIX is now supported in the \fBdisk.iostat\fP remote\-execution function, and the \fBstatus\fP beacon is now supported.
  205256. .SS Minion Data Cache Enhancement
  205257. .sp
  205258. Memcache is now supported as a data store for the minion data cache.
  205259. .sp
  205260. Memcache is an additional cache layer that keeps a limited amount of data
  205261. fetched from the minion data cache for a limited period of time in memory that
  205262. makes cache operations faster. It doesn\(aqt make much sense for the \fBlocalfs\fP
  205263. cache driver but helps for more complex drivers like \fBconsul\fP\&.
  205264. .sp
  205265. For more details see \fBmemcache_expire_seconds\fP and other \fBmemcache_*\fP
  205266. options in the master config reverence.
  205267. .SS Docker Fixes
  205268. .INDENT 0.0
  205269. .IP \(bu 2
  205270. Docker authentication has been re\-organized. Instead of attempting a login
  205271. for each push/pull (which was unnecessary), a new function called
  205272. \fBdockerng.login\fP has been added, which
  205273. authenticates to the registry and adds the credential token to the
  205274. \fB~/.docker/config.json\fP\&. After upgrading, if you have not already performed
  205275. a \fBdocker login\fP on the minion using the docker CLI, you will need to run
  205276. \fBdockerng.login\fP to login. This only
  205277. needs to be done once.
  205278. .IP \(bu 2
  205279. A bug in resolving the tag name for images in a custom registry (where a
  205280. colon can appear in the image name, e.g.
  205281. \fBmyregistry.com:5000/image:tagname\fP) has been fixed. In previous releases,
  205282. Salt would use the colon to separate the tag name from the image name, and if
  205283. there was no colon, the default tag name of \fBlatest\fP would be assumed.
  205284. However, this caused custom registry images to be misidentified when no
  205285. explicit tag name was passed (e.g. \fBmyregistry.com:5000/image\fP). To work
  205286. around this in earlier releases, simply specify the tag name.
  205287. .UNINDENT
  205288. .SS Salt\-Cloud Fixes
  205289. .sp
  205290. 2016.11.0 added support for templating userdata files for the \fBec2\fP driver, using the \fBrenderer\fP option from
  205291. the master config file. However, as the default renderer first evaluates jinja
  205292. templating, followed by loading the data as a YAML dictionary, this results in
  205293. unpredictable results when userdata files are comprised of non\-YAML data (which
  205294. they generally are).
  205295. .sp
  205296. 2016.11.4 fixes this by only templating the userdata_file when it is explicitly
  205297. configured to do so. This is done by adding a new optional parameter to the
  205298. cloud profile called \fBuserdata_template\fP\&. This option is used in the same way
  205299. as the \fBtemplate\fP argument in \fBfile.managed\fP states, it is simply set to the desired templating
  205300. renderer:
  205301. .INDENT 0.0
  205302. .INDENT 3.5
  205303. .sp
  205304. .nf
  205305. .ft C
  205306. my\-ec2\-config:
  205307. # Pass userdata to the instance to be created
  205308. userdata_file: /etc/salt/my\-userdata\-file
  205309. userdata_template: jinja
  205310. .ft P
  205311. .fi
  205312. .UNINDENT
  205313. .UNINDENT
  205314. .sp
  205315. If no \fBuserdata_template\fP option is set in the cloud profile, then
  205316. salt\-cloud will check for the presence of the master configuration parameter
  205317. \fBuserdata_renderer\fP\&. If this is also not set, then no templating
  205318. will be performed on the userdata_file.
  205319. .sp
  205320. In addition, the other cloud drivers which support setting a \fBuserdata_file\fP
  205321. (\fBazurearm\fP, \fBnova\fP, and \fBopenstack\fP)
  205322. have had templating support added to bring them to feature parity with the ec2
  205323. driver\(aqs implementation of the \fBuserdata_file\fP option.
  205324. .SS Changelog for v2016.11.3..v2016.11.4
  205325. .sp
  205326. \fIGenerated at: 2018\-05\-27 19:46:47 UTC\fP
  205327. .INDENT 0.0
  205328. .IP \(bu 2
  205329. \fBPR\fP \fI\%#40708\fP: (\fI\%Ch3LL\fP) Add 2016.11.4 Release Note ChangeLog
  205330. @ \fI2017\-04\-14 22:12:57 UTC\fP
  205331. .INDENT 2.0
  205332. .IP \(bu 2
  205333. e5cd6086a7 Merge pull request \fI\%#40708\fP from Ch3LL/2016.11.4_release
  205334. .IP \(bu 2
  205335. d228fb6e02 Add 2016.11.4 Release Note ChangeLog
  205336. .UNINDENT
  205337. .IP \(bu 2
  205338. \fBPR\fP \fI\%#40685\fP: (\fI\%Ch3LL\fP) Fix errno code for filecache test for other operating systems.
  205339. @ \fI2017\-04\-14 16:54:25 UTC\fP
  205340. .INDENT 2.0
  205341. .IP \(bu 2
  205342. 77028a6c4e Merge pull request \fI\%#40685\fP from Ch3LL/fix_mac_file
  205343. .IP \(bu 2
  205344. 9ea6e8b456 remove io and change to EROFS
  205345. .IP \(bu 2
  205346. 688791ff60 remove try\-except and change errno
  205347. .IP \(bu 2
  205348. e30afc4c01 add exception type
  205349. .IP \(bu 2
  205350. acf333df08 change errno code for fileclient test
  205351. .UNINDENT
  205352. .IP \(bu 2
  205353. \fBISSUE\fP \fI\%#40688\fP: (\fI\%jbadson\fP) Syslog returner does not work with Python 2.6 (refs: \fI\%#40689\fP)
  205354. .IP \(bu 2
  205355. \fBPR\fP \fI\%#40689\fP: (\fI\%jbadson\fP) Fixes bug that prevents syslog returner from working under Python 2.6
  205356. @ \fI2017\-04\-14 10:45:13 UTC\fP
  205357. .INDENT 2.0
  205358. .IP \(bu 2
  205359. bc70772f9d Merge pull request \fI\%#40689\fP from jbadson/fix\-syslog\-returner
  205360. .IP \(bu 2
  205361. e5a3a7d217 Fixes bug that prevents syslog returner from working under Python 2.6
  205362. .UNINDENT
  205363. .IP \(bu 2
  205364. \fBISSUE\fP \fI\%#40658\fP: (\fI\%sebw\fP) State tomcat.war_deployed regression when WAR filename contains version (refs: \fI\%#40690\fP)
  205365. .IP \(bu 2
  205366. \fBPR\fP \fI\%#40690\fP: (\fI\%thor\fP) Fixes \fI\%#40658\fP: even clearer and working(!) Tomcat version handling
  205367. @ \fI2017\-04\-14 10:44:02 UTC\fP
  205368. .INDENT 2.0
  205369. .IP \(bu 2
  205370. 983d35ad38 Merge pull request \fI\%#40690\fP from thor/2016.11\-tomcat
  205371. .IP \(bu 2
  205372. 09145ea1a5 Fixes unindexed strfmt curly braces for python 2.6
  205373. .IP \(bu 2
  205374. b78fc46b91 Fixes \fI\%#40658\fP: clearer version handling
  205375. .UNINDENT
  205376. .IP \(bu 2
  205377. \fBPR\fP \fI\%#40686\fP: (\fI\%twangboy\fP) Fix \(aqsalt\-minion\(aq service for Win 10 Creators Update 1703
  205378. @ \fI2017\-04\-13 20:00:12 UTC\fP
  205379. .INDENT 2.0
  205380. .IP \(bu 2
  205381. 3cd9a50b22 Merge pull request \fI\%#40686\fP from twangboy/fix_service
  205382. .IP \(bu 2
  205383. b6ac4aa86d Fix service for win10 update
  205384. .UNINDENT
  205385. .IP \(bu 2
  205386. \fBPR\fP \fI\%#40675\fP: (\fI\%gtmanfred\fP) use loader for getting war version
  205387. @ \fI2017\-04\-13 19:58:30 UTC\fP
  205388. .INDENT 2.0
  205389. .IP \(bu 2
  205390. ad4d6839fd Merge pull request \fI\%#40675\fP from gtmanfred/2016.11
  205391. .IP \(bu 2
  205392. a61fc824c4 use loader for war extraction
  205393. .UNINDENT
  205394. .IP \(bu 2
  205395. \fBISSUE\fP \fI\%#38497\fP: (\fI\%chrisLeeTW\fP) local_batch client ignore external auth (refs: \fI\%#40598\fP)
  205396. .IP \(bu 2
  205397. \fBPR\fP \fI\%#40680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40598\fP to 2016.11
  205398. @ \fI2017\-04\-13 19:58:16 UTC\fP
  205399. .INDENT 2.0
  205400. .IP \(bu 2
  205401. \fBPR\fP \fI\%#40598\fP: (\fI\%mchugh19\fP) Ensure batch uses passed eauth token or credentials (refs: \fI\%#40680\fP)
  205402. .IP \(bu 2
  205403. 7ea526f59e Merge pull request \fI\%#40680\fP from rallytime/bp\-40598
  205404. .IP \(bu 2
  205405. cc1643eb1f Fix netapi lint
  205406. .IP \(bu 2
  205407. e790930f5a re\-add batch support to cherrypy saltapi
  205408. .IP \(bu 2
  205409. 6eec04b2db pop out of kwargs
  205410. .IP \(bu 2
  205411. 260dd84758 Create eauth dict for passing into batch class
  205412. .IP \(bu 2
  205413. 5fb8190d44 Ensure batch uses passed eauth token or credentials
  205414. .UNINDENT
  205415. .IP \(bu 2
  205416. \fBPR\fP \fI\%#40681\fP: (\fI\%cachedout\fP) Allow status beacon to run on all operating systems
  205417. @ \fI2017\-04\-13 19:33:10 UTC\fP
  205418. .INDENT 2.0
  205419. .IP \(bu 2
  205420. db68df23dd Merge pull request \fI\%#40681\fP from cachedout/status_beacon
  205421. .IP \(bu 2
  205422. ecbb0d186f Allow status beacon to run on all operating systems
  205423. .UNINDENT
  205424. .IP \(bu 2
  205425. \fBPR\fP \fI\%#40678\fP: (\fI\%Ch3LL\fP) fix test_fstype test for mac
  205426. @ \fI2017\-04\-13 19:20:32 UTC\fP
  205427. .INDENT 2.0
  205428. .IP \(bu 2
  205429. 39dd6e284d Merge pull request \fI\%#40678\fP from Ch3LL/fix_mac_fstype
  205430. .IP \(bu 2
  205431. 60724980ec fix test_fstype test for mac
  205432. .UNINDENT
  205433. .IP \(bu 2
  205434. \fBPR\fP \fI\%#40665\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35665\fP to 2016.11
  205435. @ \fI2017\-04\-12 21:06:36 UTC\fP
  205436. .INDENT 2.0
  205437. .IP \(bu 2
  205438. \fBPR\fP \fI\%#35665\fP: (\fI\%sthrasher\fP) Speed up /jobs for salt\-api when run under cherrypy. (refs: \fI\%#40665\fP)
  205439. .IP \(bu 2
  205440. 6df76f6687 Merge pull request \fI\%#40665\fP from rallytime/bp\-35665
  205441. .IP \(bu 2
  205442. 0f897b2426 Switch from comprehension to logic used in jobs runner. This makes it easier to deal with potential unicode in returns.
  205443. .IP \(bu 2
  205444. 78dd629f09 Fix compat issues with /jobs return values.
  205445. .IP \(bu 2
  205446. 4778bc7365 Speed up /jobs for salt\-api when run under cherrypy.
  205447. .UNINDENT
  205448. .IP \(bu 2
  205449. \fBPR\fP \fI\%#40666\fP: (\fI\%gtmanfred\fP) make sure userdata is always defined in ec2
  205450. @ \fI2017\-04\-12 21:06:00 UTC\fP
  205451. .INDENT 2.0
  205452. .IP \(bu 2
  205453. 3e41a248a5 Merge pull request \fI\%#40666\fP from gtmanfred/userdata
  205454. .IP \(bu 2
  205455. 5e92fd0948 make sure userdata is always defined in ec2
  205456. .UNINDENT
  205457. .IP \(bu 2
  205458. \fBPR\fP \fI\%#40662\fP: (\fI\%twangboy\fP) Backport msi\-conformant\-version function
  205459. @ \fI2017\-04\-12 18:49:23 UTC\fP
  205460. .INDENT 2.0
  205461. .IP \(bu 2
  205462. b245abbea5 Merge pull request \fI\%#40662\fP from twangboy/backport_msi_versioning
  205463. .IP \(bu 2
  205464. 825832812b Backport msi\-conformant\-version function
  205465. .UNINDENT
  205466. .IP \(bu 2
  205467. \fBISSUE\fP \fI\%#39868\fP: (\fI\%amontalban\fP) archive.extracted issue when source_hash_update=True and extracted files does not exist (refs: \fI\%#40551\fP)
  205468. .IP \(bu 2
  205469. \fBPR\fP \fI\%#40551\fP: (\fI\%terminalmage\fP) Fix four issues in archive.extracted state
  205470. @ \fI2017\-04\-12 18:37:52 UTC\fP
  205471. .INDENT 2.0
  205472. .IP \(bu 2
  205473. 92b5f03beb Merge pull request \fI\%#40551\fP from terminalmage/issue39868
  205474. .IP \(bu 2
  205475. a722ca9ccf archive.extracted: also cleanup fileclient\(aqs cached location
  205476. .IP \(bu 2
  205477. 5ea1f607b0 Fix mocking in unit tests
  205478. .IP \(bu 2
  205479. 8dfa51f31f Moar fixes for source_hash_update
  205480. .IP \(bu 2
  205481. 7103707d49 Remove unnecessary versionadded lines
  205482. .IP \(bu 2
  205483. a717881f53 Just get a hash for the source archive
  205484. .IP \(bu 2
  205485. 9da4eb18bf Check hash of cached source against source_hash before downloading archive
  205486. .IP \(bu 2
  205487. ad24faa59d Fix three issues in archive.extracted state
  205488. .UNINDENT
  205489. .IP \(bu 2
  205490. \fBPR\fP \fI\%#40637\fP: (\fI\%twangboy\fP) Add unicode_literals import
  205491. @ \fI2017\-04\-12 16:55:03 UTC\fP
  205492. .INDENT 2.0
  205493. .IP \(bu 2
  205494. 0638418d22 Merge pull request \fI\%#40637\fP from twangboy/fix_unicode_issues
  205495. .IP \(bu 2
  205496. 021783dbae Add unicode_literals import
  205497. .UNINDENT
  205498. .IP \(bu 2
  205499. \fBPR\fP \fI\%#40651\fP: (\fI\%twangboy\fP) Fix status.diskusage for Windows on Py3
  205500. @ \fI2017\-04\-12 16:21:29 UTC\fP
  205501. .INDENT 2.0
  205502. .IP \(bu 2
  205503. 491661f323 Merge pull request \fI\%#40651\fP from twangboy/fix_diskusage_py3
  205504. .IP \(bu 2
  205505. 7c5079ec91 Correct capitalization problem with api call
  205506. .UNINDENT
  205507. .IP \(bu 2
  205508. \fBISSUE\fP \fI\%#40624\fP: (\fI\%sumeetisp\fP) Issue \- grains.append (refs: \fI\%#40631\fP)
  205509. .IP \(bu 2
  205510. \fBPR\fP \fI\%#40631\fP: (\fI\%gtmanfred\fP) if grain is defined as None still convert in append
  205511. @ \fI2017\-04\-12 16:19:16 UTC\fP
  205512. .INDENT 2.0
  205513. .IP \(bu 2
  205514. 3aabd85e53 Merge pull request \fI\%#40631\fP from gtmanfred/grains
  205515. .IP \(bu 2
  205516. b0bd99c26d add comment and unit test
  205517. .IP \(bu 2
  205518. b21bc7528f if grain is defined as None still convert in append
  205519. .UNINDENT
  205520. .IP \(bu 2
  205521. \fBISSUE\fP \fI\%#40167\fP: (\fI\%alias454\fP) file.replace diff results output showing additional characters (refs: \fI\%#40629\fP)
  205522. .IP \(bu 2
  205523. \fBPR\fP \fI\%#40629\fP: (\fI\%aabognah\fP) Fixing issue # 40167
  205524. @ \fI2017\-04\-11 22:45:08 UTC\fP
  205525. .INDENT 2.0
  205526. .IP \(bu 2
  205527. 3737289bee Merge pull request \fI\%#40629\fP from aabognah/fix\-bug\-40167
  205528. .IP \(bu 2
  205529. 28f7744cb6 Fixing issue # 40167 with file.replace where the diff output does not display correctly.
  205530. .UNINDENT
  205531. .IP \(bu 2
  205532. \fBPR\fP \fI\%#40646\fP: (\fI\%twangboy\fP) Keep network.py execution module
  205533. @ \fI2017\-04\-11 22:03:02 UTC\fP
  205534. .INDENT 2.0
  205535. .IP \(bu 2
  205536. 2a22bea290 Merge pull request \fI\%#40646\fP from twangboy/fix_win_network
  205537. .IP \(bu 2
  205538. 0f7a81cd34 Keep network.py execution module
  205539. .UNINDENT
  205540. .IP \(bu 2
  205541. \fBPR\fP \fI\%#40645\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205542. @ \fI2017\-04\-11 20:59:13 UTC\fP
  205543. .INDENT 2.0
  205544. .IP \(bu 2
  205545. e1f5a5dfc3 Merge pull request \fI\%#40645\fP from rallytime/merge\-2016.11
  205546. .IP \(bu 2
  205547. 8de6497933 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205548. .INDENT 2.0
  205549. .IP \(bu 2
  205550. 2ae9eaa176 Merge pull request \fI\%#40638\fP from rallytime/bp\-40571
  205551. .INDENT 2.0
  205552. .IP \(bu 2
  205553. 2d1c4be2df pkgrepo.managed: properly handle comments for debian
  205554. .UNINDENT
  205555. .UNINDENT
  205556. .UNINDENT
  205557. .IP \(bu 2
  205558. \fBISSUE\fP \fI\%#40594\fP: (\fI\%anlutro\fP) salt\-ssh file.recurse adds a lot of unwanted directories (refs: \fI\%#40642\fP)
  205559. .IP \(bu 2
  205560. \fBISSUE\fP \fI\%#38458\fP: (\fI\%duk3luk3\fP) salt\-ssh uses sudo to create cache dir, later fails to access it (refs: \fI\%#40442\fP)
  205561. .IP \(bu 2
  205562. \fBPR\fP \fI\%#40642\fP: (\fI\%DmitryKuzmenko\fP) Correctly resolve relative cache path to absolute.
  205563. @ \fI2017\-04\-11 20:43:57 UTC\fP
  205564. .INDENT 2.0
  205565. .IP \(bu 2
  205566. \fBPR\fP \fI\%#40442\fP: (\fI\%gtmanfred\fP) allow file_client to figure out cachedir (refs: \fI\%#40642\fP)
  205567. .IP \(bu 2
  205568. 6c4ae3c914 Merge pull request \fI\%#40642\fP from DSRCorporation/bugs/40594_ssh_cachedir
  205569. .IP \(bu 2
  205570. 055256c518 Correctly resolve relative cache path to absolute.
  205571. .UNINDENT
  205572. .IP \(bu 2
  205573. \fBISSUE\fP \fI\%#40075\fP: (\fI\%afletch\fP) salt\-ssh temporary files \- insecure permissions (refs: \fI\%#40609\fP)
  205574. .IP \(bu 2
  205575. \fBPR\fP \fI\%#40609\fP: (\fI\%gtmanfred\fP) stat_file when keep is set, instead of mirroring all file permissions
  205576. @ \fI2017\-04\-11 18:48:47 UTC\fP
  205577. .INDENT 2.0
  205578. .IP \(bu 2
  205579. 8492cef7a5 Merge pull request \fI\%#40609\fP from gtmanfred/2016.11
  205580. .IP \(bu 2
  205581. 6e34c2b5e5 stat file when placing it on server instead of caching
  205582. .UNINDENT
  205583. .IP \(bu 2
  205584. \fBPR\fP \fI\%#40620\fP: (\fI\%mateiw\fP) SUSE specific changes to salt\-api.service
  205585. @ \fI2017\-04\-11 14:45:00 UTC\fP
  205586. .INDENT 2.0
  205587. .IP \(bu 2
  205588. 05ac613ecf Merge pull request \fI\%#40620\fP from mateiw/2016.11\-suse\-saltapi\-service
  205589. .IP \(bu 2
  205590. ee911a74b4 suse specific changes to salt\-api.service
  205591. .UNINDENT
  205592. .IP \(bu 2
  205593. \fBISSUE\fP \fI\%#39463\fP: (\fI\%githubcdr\fP) Transport TCP minions don\(aqt reconnect/recover (refs: \fI\%#40614\fP)
  205594. .IP \(bu 2
  205595. \fBPR\fP \fI\%#40614\fP: (\fI\%gtmanfred\fP) add retries on authentications of the salt minion reconnecting
  205596. @ \fI2017\-04\-10 22:42:16 UTC\fP
  205597. .INDENT 2.0
  205598. .IP \(bu 2
  205599. b0a2414d68 Merge pull request \fI\%#40614\fP from gtmanfred/tcp
  205600. .IP \(bu 2
  205601. a86b101ae6 add retries on authentications of the salt minion reconnecting
  205602. .UNINDENT
  205603. .IP \(bu 2
  205604. \fBPR\fP \fI\%#40606\fP: (\fI\%kaszuba\fP) Use correct exec_driver in dockerng.sls module
  205605. @ \fI2017\-04\-10 22:25:31 UTC\fP
  205606. .INDENT 2.0
  205607. .IP \(bu 2
  205608. f7e121a9ee Merge pull request \fI\%#40606\fP from kaszuba/fix\-dockerng\-sls
  205609. .IP \(bu 2
  205610. 3a0d61f108 Use correct exec_driver in dockerng.sls module
  205611. .UNINDENT
  205612. .IP \(bu 2
  205613. \fBISSUE\fP \fI\%#39863\fP: (\fI\%daswathn\fP) Salt\-Master not responding when the list of minions are high after upgrade to 2016.11.2 (refs: \fI\%#40615\fP)
  205614. .IP \(bu 2
  205615. \fBPR\fP \fI\%#40615\fP: (\fI\%rallytime\fP) Call out to _pki_minions() once, rather than in a loop in _check_list_minions()
  205616. @ \fI2017\-04\-10 22:22:18 UTC\fP
  205617. .INDENT 2.0
  205618. .IP \(bu 2
  205619. \fBPR\fP \fI\%#34920\fP: (\fI\%cachedout\fP) Key cache (refs: \fI\%#40615\fP)
  205620. .IP \(bu 2
  205621. b6cf948afe Merge pull request \fI\%#40615\fP from rallytime/fix\-39863
  205622. .IP \(bu 2
  205623. 1a9f03ab92 Call out to _pki_minions() once, rather than in a loop in _check_list_minions()
  205624. .UNINDENT
  205625. .IP \(bu 2
  205626. \fBPR\fP \fI\%#40588\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  205627. @ \fI2017\-04\-07 19:30:14 UTC\fP
  205628. .INDENT 2.0
  205629. .IP \(bu 2
  205630. 4fa58be222 Merge pull request \fI\%#40588\fP from rallytime/merge\-2016.11
  205631. .IP \(bu 2
  205632. 5a419b8aae Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  205633. .IP \(bu 2
  205634. 83f6d3d3bb Merge pull request \fI\%#40567\fP from terminalmage/fix\-pillar\-get\-merge\-lists
  205635. .INDENT 2.0
  205636. .IP \(bu 2
  205637. cb4db56eb5 Allow pillar.get to merge list as well as dictionaries
  205638. .UNINDENT
  205639. .IP \(bu 2
  205640. a8304cd5a1 Merge pull request \fI\%#40552\fP from terminalmage/fix\-hash\-type\-refs
  205641. .INDENT 2.0
  205642. .IP \(bu 2
  205643. 8c61f333ae Don\(aqt use __opts__.get() for hash_type
  205644. .UNINDENT
  205645. .IP \(bu 2
  205646. 705e1d8a08 Merge pull request \fI\%#40562\fP from terminalmage/fix\-get\-client
  205647. .INDENT 2.0
  205648. .IP \(bu 2
  205649. 7f1ef72f83 Fix dockerng _get_client() regression
  205650. .UNINDENT
  205651. .IP \(bu 2
  205652. 00f8ef0c55 Merge pull request \fI\%#40548\fP from Ch3LL/fix_vultrpy
  205653. .INDENT 2.0
  205654. .IP \(bu 2
  205655. 7710355e3a check for salt install fail on vultur test
  205656. .IP \(bu 2
  205657. aae3d14ea4 fix vultr cloud race condition to match on 0*
  205658. .UNINDENT
  205659. .UNINDENT
  205660. .IP \(bu 2
  205661. \fBPR\fP \fI\%#40575\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40559\fP to 2016.11
  205662. @ \fI2017\-04\-07 15:42:26 UTC\fP
  205663. .INDENT 2.0
  205664. .IP \(bu 2
  205665. \fBPR\fP \fI\%#40559\fP: (\fI\%jinm\fP) Fix v3 for \fI\%https://github.com/saltstack/salt/issues/38472\fP (refs: \fI\%#40575\fP)
  205666. .IP \(bu 2
  205667. 3d07f637ca Merge pull request \fI\%#40575\fP from rallytime/bp\-40559
  205668. .IP \(bu 2
  205669. 8280e5256e Fix v3 for \fI\%https://github.com/saltstack/salt/issues/38472\fP
  205670. .UNINDENT
  205671. .IP \(bu 2
  205672. \fBPR\fP \fI\%#40576\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40573\fP to 2016.11
  205673. @ \fI2017\-04\-07 15:20:11 UTC\fP
  205674. .INDENT 2.0
  205675. .IP \(bu 2
  205676. \fBPR\fP \fI\%#40573\fP: (\fI\%ardakuyumcu\fP) Fix typo in IAM state for managed policies (refs: \fI\%#40576\fP)
  205677. .IP \(bu 2
  205678. 9041ca2ba5 Merge pull request \fI\%#40576\fP from rallytime/bp\-40573
  205679. .IP \(bu 2
  205680. 12180808ee Fix typo in IAM state for managed policies
  205681. .UNINDENT
  205682. .IP \(bu 2
  205683. \fBPR\fP \fI\%#40563\fP: (\fI\%terminalmage\fP) Merge\-forward 2016.3 \-> 2016.11
  205684. @ \fI2017\-04\-07 15:08:20 UTC\fP
  205685. .INDENT 2.0
  205686. .IP \(bu 2
  205687. \fBPR\fP \fI\%#40562\fP: (\fI\%terminalmage\fP) Fix dockerng _get_client() regression (refs: \fI\%#40563\fP)
  205688. .IP \(bu 2
  205689. \fBPR\fP \fI\%#40481\fP: (\fI\%terminalmage\fP) Backport auth and custom registry fixes from \fI\%#40480\fP to 2016.3 branch (refs: \fI\%#40563\fP, \fI\%#40562\fP)
  205690. .IP \(bu 2
  205691. \fBPR\fP \fI\%#40480\fP: (\fI\%terminalmage\fP) Improved Docker auth handling and other misc. Docker improvements (refs: \fI\%#40481\fP)
  205692. .IP \(bu 2
  205693. f8bc423ef9 Merge pull request \fI\%#40563\fP from terminalmage/merge\-2016.3\-2016.11
  205694. .IP \(bu 2
  205695. 0c608d7417 Add client_args_mock back to test
  205696. .IP \(bu 2
  205697. a7a78da984 remove unused imports
  205698. .IP \(bu 2
  205699. a6d68f50fe Merge remote\-tracking branch \(aqupstream/2016.3\(aq into merge\-2016.3\-2016.11
  205700. .INDENT 2.0
  205701. .IP \(bu 2
  205702. 0918311330 Don\(aqt mark files that already were deleted as errors
  205703. .IP \(bu 2
  205704. 51d88a16c8 Merge branch \(aqzer0def\-fix\-31363\(aq into 2016.3
  205705. .INDENT 2.0
  205706. .IP \(bu 2
  205707. 7f3cbd5cf9 Merge branch \(aqfix\-31363\(aq of \fI\%https://github.com/zer0def/salt\fP into zer0def\-fix\-31363
  205708. .IP \(bu 2
  205709. 3c750c2b24 Changed rm_rf\(aqs argument to actually remove intended file. (refs \fI\%#31363\fP)
  205710. .IP \(bu 2
  205711. 9ed85f3c59 Remove directory content instead of directory itself when using \fIforce_clone\fP in \fIgit.latest\fP state. (refs \fI\%#31363\fP)
  205712. .UNINDENT
  205713. .IP \(bu 2
  205714. cfba4cb422 Merge pull request \fI\%#40534\fP from terminalmage/issue39892
  205715. .INDENT 2.0
  205716. .IP \(bu 2
  205717. ad88c58a09 Check master\(aqs ssh_minion_opts for fileserver/pillar values and ignore them
  205718. .UNINDENT
  205719. .IP \(bu 2
  205720. 8da27c9e1d Merge pull request \fI\%#40306\fP from terminalmage/issue40279
  205721. .INDENT 2.0
  205722. .IP \(bu 2
  205723. 57ace1f336 Merge branch \(aqissue40279\(aq of \fI\%https://github.com/terminalmage/salt\fP into issue40279
  205724. .INDENT 2.0
  205725. .IP \(bu 2
  205726. 8bcdf1a761 Remove unused import for lint
  205727. .UNINDENT
  205728. .IP \(bu 2
  205729. 808ad76419 systemd.py: when getting all services, don\(aqt repeat gathering of systemd services
  205730. .IP \(bu 2
  205731. 2d219af67a Don\(aqt use context caching for gathering systemd services
  205732. .UNINDENT
  205733. .IP \(bu 2
  205734. 97caac4c0a Merge pull request \fI\%#40481\fP from terminalmage/docker\-auth\-handling\-2016.3
  205735. .INDENT 2.0
  205736. .IP \(bu 2
  205737. dcef1e0d4b Make sure we keep the cached client when clearing context
  205738. .IP \(bu 2
  205739. 1e2a04cfc5 Backport auth and custom registry fixes from \fI\%#40480\fP to 2016.3 branch
  205740. .UNINDENT
  205741. .IP \(bu 2
  205742. e62603d5eb Merge pull request \fI\%#40505\fP from gtmanfred/2016.3
  205743. .INDENT 2.0
  205744. .IP \(bu 2
  205745. 6e2f9080ca update docs for logging handlers
  205746. .UNINDENT
  205747. .UNINDENT
  205748. .UNINDENT
  205749. .IP \(bu 2
  205750. \fBISSUE\fP \fI\%#39778\fP: (\fI\%Talkless\fP) pkgrepo.managed state always report changes with test=True on APT system (refs: \fI\%#40571\fP)
  205751. .IP \(bu 2
  205752. \fBPR\fP \fI\%#40571\fP: (\fI\%terminalmage\fP) pkgrepo.managed: properly handle comments for debian (refs: \fI\%#40638\fP)
  205753. @ \fI2017\-04\-06 21:55:46 UTC\fP
  205754. .INDENT 2.0
  205755. .IP \(bu 2
  205756. fd757fffa3 Merge pull request \fI\%#40571\fP from terminalmage/issue39778
  205757. .IP \(bu 2
  205758. 191610482d pkgrepo.managed: properly handle comments for debian
  205759. .UNINDENT
  205760. .IP \(bu 2
  205761. \fBISSUE\fP \fI\%#40278\fP: (\fI\%UtahDave\fP) cloud.action giving errors on 2016.11.1 (refs: \fI\%#40572\fP)
  205762. .IP \(bu 2
  205763. \fBPR\fP \fI\%#40572\fP: (\fI\%rallytime\fP) Clean out kwargs dict in cloud.action before calling cloud driver function
  205764. @ \fI2017\-04\-06 21:53:40 UTC\fP
  205765. .INDENT 2.0
  205766. .IP \(bu 2
  205767. b1698e830e Merge pull request \fI\%#40572\fP from rallytime/fix\-40278
  205768. .IP \(bu 2
  205769. c978486452 Clean out kwargs dict in cloud.action before calling cloud driver function
  205770. .UNINDENT
  205771. .IP \(bu 2
  205772. \fBISSUE\fP \fI\%#39842\fP: (\fI\%smarsching\fP) File module removes trailing newline on Windows (refs: \fI\%#39882\fP)
  205773. .IP \(bu 2
  205774. \fBPR\fP \fI\%#39882\fP: (\fI\%smarsching\fP) Fix handling of trailing newlines on Windows
  205775. @ \fI2017\-04\-06 21:12:24 UTC\fP
  205776. .INDENT 2.0
  205777. .IP \(bu 2
  205778. 62d8ad2b4b Merge pull request \fI\%#39882\fP from smarsching/issue\-39842
  205779. .IP \(bu 2
  205780. d485d1af44 Fix context for _splitlines_preserving_trailing_newline.
  205781. .IP \(bu 2
  205782. 76cb7bf612 Fix trailing newlines on Windows (\fI\%#39842\fP).
  205783. .UNINDENT
  205784. .IP \(bu 2
  205785. \fBPR\fP \fI\%#40451\fP: (\fI\%isbm\fP) Fileclient testcase (2016.11)
  205786. @ \fI2017\-04\-06 19:53:31 UTC\fP
  205787. .INDENT 2.0
  205788. .IP \(bu 2
  205789. ae13de622a Merge pull request \fI\%#40451\fP from isbm/isbm\-fileclient\-testcase\-2016.11
  205790. .IP \(bu 2
  205791. 74c65557dd Add space before in\-lint comment for lint
  205792. .IP \(bu 2
  205793. 35fcb8b52d Fix race condition on cache directory creation
  205794. .IP \(bu 2
  205795. aba94495a5 Lintfix (Py3 code compat)
  205796. .IP \(bu 2
  205797. 9f9dc6e4e7 Add unit test case for fileclient
  205798. .UNINDENT
  205799. .IP \(bu 2
  205800. \fBISSUE\fP \fI\%#40084\fP: (\fI\%podstava\fP) profile fields in azurearm salt\-cloud need to be actualized to sources (refs: \fI\%#40564\fP)
  205801. .IP \(bu 2
  205802. \fBPR\fP \fI\%#40564\fP: (\fI\%techhat\fP) Update Azure ARM docs
  205803. @ \fI2017\-04\-06 18:17:32 UTC\fP
  205804. .INDENT 2.0
  205805. .IP \(bu 2
  205806. 74366c57a4 Merge pull request \fI\%#40564\fP from techhat/azuredocs
  205807. .IP \(bu 2
  205808. 08d071bc68 Update Azure ARM docs
  205809. .UNINDENT
  205810. .IP \(bu 2
  205811. \fBISSUE\fP \fI\%#40005\fP: (\fI\%vutny\fP) \fIssh_known_hosts.present\fP does not support SHA256 key fingerprints (refs: \fI\%#40543\fP)
  205812. .IP \(bu 2
  205813. \fBPR\fP \fI\%#40543\fP: (\fI\%rallytime\fP) Add the "fingerprint_hash_type" option to ssh state and module
  205814. @ \fI2017\-04\-05 21:21:16 UTC\fP
  205815. .INDENT 2.0
  205816. .IP \(bu 2
  205817. cb9dcb1e1b Merge pull request \fI\%#40543\fP from rallytime/fix\-40005
  205818. .IP \(bu 2
  205819. 1ef81e6a55 Add the "fingerprint_hash_type" option to ssh state and module
  205820. .UNINDENT
  205821. .IP \(bu 2
  205822. \fBPR\fP \fI\%#40540\fP: (\fI\%DmitryKuzmenko\fP) A quick fix for Cache has no \(aqlist\(aq attribute.
  205823. @ \fI2017\-04\-05 18:50:18 UTC\fP
  205824. .INDENT 2.0
  205825. .IP \(bu 2
  205826. \fBPR\fP \fI\%#40494\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2016.11 to develop (refs: \fI\%#40540\fP)
  205827. .IP \(bu 2
  205828. 3f0695575a Merge pull request \fI\%#40540\fP from DSRCorporation/bugs/40494_merge_forward_cache_list_fix
  205829. .IP \(bu 2
  205830. c0fd5634cf A quick fix for Cache has no \(aqlist\(aq attribute.
  205831. .UNINDENT
  205832. .IP \(bu 2
  205833. \fBISSUE\fP \fI\%#32662\fP: (\fI\%anlutro\fP) salt\-cloud: allow templating of EC2 userdata, similar to deploy script (refs: \fI\%#32698\fP)
  205834. .IP \(bu 2
  205835. \fBPR\fP \fI\%#40464\fP: (\fI\%terminalmage\fP) salt\-cloud: Do not pass userdata_file through yaml renderer
  205836. @ \fI2017\-04\-05 17:32:07 UTC\fP
  205837. .INDENT 2.0
  205838. .IP \(bu 2
  205839. \fBPR\fP \fI\%#32698\fP: (\fI\%techhat\fP) Allow EC2 userdata to be templated (refs: \fI\%#40464\fP)
  205840. .IP \(bu 2
  205841. 28fc048030 Merge pull request \fI\%#40464\fP from terminalmage/userdata\-renderer
  205842. .IP \(bu 2
  205843. 84ee693006 Nova and openstack don\(aqt accept base64\-encoded userdata
  205844. .IP \(bu 2
  205845. 73f4c43e2a Allow for userdata_template to be disabled in a cloud_profile
  205846. .IP \(bu 2
  205847. 78b4798b1b Update compile_template test to use StringIO
  205848. .IP \(bu 2
  205849. 5f7c5613ce Properly handle renderers which return StringIO objects
  205850. .IP \(bu 2
  205851. d551b0d857 Bring in salt.utils.stringio from develop branch
  205852. .IP \(bu 2
  205853. 6a6ef0adf8 Move userdata templating to salt.utils.cloud
  205854. .IP \(bu 2
  205855. b440d0c679 Update 2016.11.4 release notes for userdata_renderer \-> userdata_template
  205856. .IP \(bu 2
  205857. a6183d93d3 Preserve windows newlines in salt.template.compile_template()
  205858. .IP \(bu 2
  205859. 04f02df5fe Try to read compiled template as StringIO
  205860. .IP \(bu 2
  205861. 79cc253bbf Only template the userdata_file if explicitly configured to do so
  205862. .IP \(bu 2
  205863. b580654f85 Update cloud docs to reflect userdata_renderer \-> userdata_template
  205864. .IP \(bu 2
  205865. a6064fb2e4 Rename userdata_renderer \-> userdata_template in master config docs
  205866. .IP \(bu 2
  205867. 50f2b2831f Remove userdata_renderer value
  205868. .IP \(bu 2
  205869. cc2186f35a Add templating support for other cloud drivers that support userdata_file
  205870. .IP \(bu 2
  205871. be8d34c59b ec2: Add support for using userdata_renderer to template userdata_file
  205872. .IP \(bu 2
  205873. eddbd41265 Openstack did not have templating support for userdata_file before 2016.11.4
  205874. .IP \(bu 2
  205875. a85a416c72 Add userdata_renderer fix info to 2016.11.4 release notes
  205876. .IP \(bu 2
  205877. 111188742a Add documentation for userdata_renderer
  205878. .IP \(bu 2
  205879. 9ee2dcfc2d Add userdata_renderer master config param
  205880. .UNINDENT
  205881. .IP \(bu 2
  205882. \fBPR\fP \fI\%#40530\fP: (\fI\%dmurphy18\fP) Update release information for 2016.11.4 for additional AIX support
  205883. @ \fI2017\-04\-05 16:20:22 UTC\fP
  205884. .INDENT 2.0
  205885. .IP \(bu 2
  205886. 990bde4c07 Merge pull request \fI\%#40530\fP from dmurphy18/aix_docupd
  205887. .IP \(bu 2
  205888. fd93caf206 Added further support for functionality on AIX for 2016.11.4
  205889. .IP \(bu 2
  205890. 17b58917f2 Update release information for new AIX support
  205891. .UNINDENT
  205892. .IP \(bu 2
  205893. \fBPR\fP \fI\%#40528\fP: (\fI\%dmurphy18\fP) Allow for nightly build designations in Salt versions
  205894. @ \fI2017\-04\-04 20:34:26 UTC\fP
  205895. .INDENT 2.0
  205896. .IP \(bu 2
  205897. 4d932691f1 Merge pull request \fI\%#40528\fP from dmurphy18/salt_nightlybuild
  205898. .IP \(bu 2
  205899. d62a119fc1 Allow for nightly build designations in Salt versions
  205900. .UNINDENT
  205901. .IP \(bu 2
  205902. \fBISSUE\fP \fI\%#37699\fP: (\fI\%gstachowiak\fP) Artifactory state. Incorrect timeout error reporting. (refs: \fI\%#40465\fP)
  205903. .IP \(bu 2
  205904. \fBPR\fP \fI\%#40465\fP: (\fI\%rallytime\fP) Artifactory Execution & State Module: Fixup Error Handling
  205905. @ \fI2017\-04\-04 20:12:21 UTC\fP
  205906. .INDENT 2.0
  205907. .IP \(bu 2
  205908. 0ed385210f Merge pull request \fI\%#40465\fP from rallytime/fix\-37699
  205909. .IP \(bu 2
  205910. 8f084f7056 Update unit test to look for actual string comment
  205911. .IP \(bu 2
  205912. ef664b46ae Artifactory State: Only wrap main function call to module in try/except and wrap exc comment in str()
  205913. .IP \(bu 2
  205914. f1015e3900 Artifactory Module: catch URLErrors as well as HTTPErrors
  205915. .UNINDENT
  205916. .IP \(bu 2
  205917. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  205918. .IP \(bu 2
  205919. \fBPR\fP \fI\%#40497\fP: (\fI\%DmitryKuzmenko\fP) Memcache documentation and minor updates.
  205920. @ \fI2017\-04\-04 19:55:18 UTC\fP
  205921. .INDENT 2.0
  205922. .IP \(bu 2
  205923. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  205924. .IP \(bu 2
  205925. 7a04ed2439 Merge pull request \fI\%#40497\fP from DSRCorporation/features/39275_memcache
  205926. .IP \(bu 2
  205927. 82c45b1a52 Memcache documentation and minor updates.
  205928. .UNINDENT
  205929. .IP \(bu 2
  205930. \fBISSUE\fP \fI\%#38683\fP: (\fI\%gstachowiak\fP) require/order/failhard combination error (refs: \fI\%#40504\fP)
  205931. .IP \(bu 2
  205932. \fBPR\fP \fI\%#40504\fP: (\fI\%rallytime\fP) Group checks for failhard setting in () in state.check_failhard function
  205933. @ \fI2017\-04\-04 19:53:48 UTC\fP
  205934. .INDENT 2.0
  205935. .IP \(bu 2
  205936. d654de52ed Merge pull request \fI\%#40504\fP from rallytime/fix\-38683
  205937. .IP \(bu 2
  205938. ede4c28887 Group checks for failhard setting in () in state.check_failhard function
  205939. .UNINDENT
  205940. .IP \(bu 2
  205941. \fBPR\fP \fI\%#40503\fP: (\fI\%thatch45\fP) first pass at adding support for pycryptodome installed as
  205942. @ \fI2017\-04\-04 19:39:02 UTC\fP
  205943. .INDENT 2.0
  205944. .IP \(bu 2
  205945. 4d5d7d9712 Merge pull request \fI\%#40503\fP from thatch45/2016.11
  205946. .IP \(bu 2
  205947. e21fd54d1b fix lint on the lint ignores...
  205948. .IP \(bu 2
  205949. 60113248b1 pycryptodome adds RSA to the key header which the openssl
  205950. .IP \(bu 2
  205951. 206dec63ff fix the cryptodome version lookup for the versions report
  205952. .IP \(bu 2
  205953. d3b77092b5 good catch
  205954. .IP \(bu 2
  205955. 31c6a10d1b first pass at adding support for pycryptodome installed as
  205956. .UNINDENT
  205957. .IP \(bu 2
  205958. \fBPR\fP \fI\%#40525\fP: (\fI\%dmurphy18\fP) Add support for disk.iostat on AIX
  205959. @ \fI2017\-04\-04 19:31:41 UTC\fP
  205960. .INDENT 2.0
  205961. .IP \(bu 2
  205962. 0dd92c63ea Merge pull request \fI\%#40525\fP from dmurphy18/aix_dskiostat
  205963. .IP \(bu 2
  205964. 712537272b Added support on AIX for disk.iostat
  205965. .UNINDENT
  205966. .IP \(bu 2
  205967. \fBPR\fP \fI\%#40496\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40415\fP to 2016.11
  205968. @ \fI2017\-04\-04 17:19:39 UTC\fP
  205969. .INDENT 2.0
  205970. .IP \(bu 2
  205971. \fBPR\fP \fI\%#40415\fP: (\fI\%defanator\fP) Fix boto_vpc.create_route() to work with interface_id (refs: \fI\%#40496\fP)
  205972. .IP \(bu 2
  205973. a6291b17c1 Merge pull request \fI\%#40496\fP from rallytime/bp\-40415
  205974. .IP \(bu 2
  205975. f8b3006898 Fix boto_vpc.create_route() to work with interface_id
  205976. .UNINDENT
  205977. .IP \(bu 2
  205978. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  205979. .IP \(bu 2
  205980. \fBPR\fP \fI\%#40468\fP: (\fI\%techhat\fP) Add __func_alias__ back in
  205981. @ \fI2017\-04\-04 17:02:43 UTC\fP
  205982. .INDENT 2.0
  205983. .IP \(bu 2
  205984. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  205985. .IP \(bu 2
  205986. 3eb8e0baf1 Merge pull request \fI\%#40468\fP from techhat/cachealias
  205987. .IP \(bu 2
  205988. 6ec0baa9a0 Swap around aliases
  205989. .IP \(bu 2
  205990. 76e54a2900 Add __func_alias__ back in
  205991. .UNINDENT
  205992. .IP \(bu 2
  205993. \fBISSUE\fP \fI\%#29104\fP: (\fI\%adithep\fP) Merging Order warning (refs: \fI\%#39109\fP)
  205994. .IP \(bu 2
  205995. \fBPR\fP \fI\%#39109\fP: (\fI\%bdrung\fP) Fix top_file_merging_strategy warning if env_order is set
  205996. @ \fI2017\-04\-04 14:20:56 UTC\fP
  205997. .INDENT 2.0
  205998. .IP \(bu 2
  205999. 8c0befaa8b Merge pull request \fI\%#39109\fP from bdrung/fix\-merge\-order\-warning
  206000. .IP \(bu 2
  206001. fbf8fcfa98 Simplify _get_envs() by using list comprehensions
  206002. .IP \(bu 2
  206003. 74a3b066ea Fix top_file_merging_strategy warning if env_order is set
  206004. .IP \(bu 2
  206005. ec219b5f42 Remove duplicate client_envs variable definitions
  206006. .IP \(bu 2
  206007. 6279f7c120 fix do to pre correct on python randome function
  206008. .IP \(bu 2
  206009. 66b9515af7 Fix up the doc for failover clarity
  206010. .UNINDENT
  206011. .IP \(bu 2
  206012. \fBPR\fP \fI\%#40495\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206013. @ \fI2017\-04\-03 18:36:16 UTC\fP
  206014. .INDENT 2.0
  206015. .IP \(bu 2
  206016. 02a1f642ab Merge pull request \fI\%#40495\fP from rallytime/merge\-2016.11
  206017. .IP \(bu 2
  206018. 8111909bb1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206019. .IP \(bu 2
  206020. 3d45a004b0 Merge pull request \fI\%#40427\fP from terminalmage/clarify\-master\-tops\-docs
  206021. .INDENT 2.0
  206022. .IP \(bu 2
  206023. bda781d8f9 Grammar fix
  206024. .IP \(bu 2
  206025. 0d7b0c4ef0 Improve the master_tops documentation
  206026. .IP \(bu 2
  206027. d27340a9f2 Add saltutil.sync_tops runner func
  206028. .UNINDENT
  206029. .UNINDENT
  206030. .IP \(bu 2
  206031. \fBPR\fP \fI\%#40466\fP: (\fI\%dmurphy18\fP) Support for execution module status on AIX
  206032. @ \fI2017\-04\-01 00:28:51 UTC\fP
  206033. .INDENT 2.0
  206034. .IP \(bu 2
  206035. ac82972cb3 Merge pull request \fI\%#40466\fP from dmurphy18/aix_status
  206036. .IP \(bu 2
  206037. 7c0b30d9a4 Support for AIX
  206038. .UNINDENT
  206039. .IP \(bu 2
  206040. \fBISSUE\fP \fI\%#39275\fP: (\fI\%yhekma\fP) Cache backend gets hit a \fIlot\fP (refs: \fI\%#40497\fP, \fI\%#40429\fP)
  206041. .IP \(bu 2
  206042. \fBPR\fP \fI\%#40429\fP: (\fI\%DmitryKuzmenko\fP) MemCache \- a minion data cache booster. (refs: \fI\%#40497\fP, \fI\%#40468\fP)
  206043. @ \fI2017\-03\-31 20:21:00 UTC\fP
  206044. .INDENT 2.0
  206045. .IP \(bu 2
  206046. fdb0250c95 Merge pull request \fI\%#40429\fP from DSRCorporation/features/39275_memcache
  206047. .IP \(bu 2
  206048. 4475d1757d In\-memory minion data cache.
  206049. .UNINDENT
  206050. .IP \(bu 2
  206051. \fBISSUE\fP \fI\%#38458\fP: (\fI\%duk3luk3\fP) salt\-ssh uses sudo to create cache dir, later fails to access it (refs: \fI\%#40442\fP)
  206052. .IP \(bu 2
  206053. \fBPR\fP \fI\%#40442\fP: (\fI\%gtmanfred\fP) allow file_client to figure out cachedir (refs: \fI\%#40642\fP)
  206054. @ \fI2017\-03\-31 20:14:27 UTC\fP
  206055. .INDENT 2.0
  206056. .IP \(bu 2
  206057. 31d4e6949c Merge pull request \fI\%#40442\fP from gtmanfred/salt\-ssh
  206058. .IP \(bu 2
  206059. 8367735063 allow file_client to figure out cachedir
  206060. .UNINDENT
  206061. .IP \(bu 2
  206062. \fBPR\fP \fI\%#40456\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206063. @ \fI2017\-03\-31 17:51:11 UTC\fP
  206064. .INDENT 2.0
  206065. .IP \(bu 2
  206066. 0cfcd188a9 Merge pull request \fI\%#40456\fP from rallytime/merge\-2016.11
  206067. .IP \(bu 2
  206068. 0da4c46b68 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206069. .IP \(bu 2
  206070. c26f4cc76c Merge pull request \fI\%#40371\fP from terminalmage/pr\-40344
  206071. .INDENT 2.0
  206072. .IP \(bu 2
  206073. a8bcaa73d7 Force use of posixpath when joining salt fileserver paths in gitfs
  206074. .IP \(bu 2
  206075. cafa08d8e0 Add ability for salt.utils.path_join to force the use of posixpath
  206076. .UNINDENT
  206077. .IP \(bu 2
  206078. df9df82959 Merge pull request \fI\%#40379\fP from rallytime/tests\-for\-39855
  206079. .INDENT 2.0
  206080. .IP \(bu 2
  206081. 96259d6c63 Lint fix
  206082. .IP \(bu 2
  206083. 4f7ac1431e Create a unit test for the _replace_auth_key function in the ssh module
  206084. .UNINDENT
  206085. .UNINDENT
  206086. .IP \(bu 2
  206087. \fBPR\fP \fI\%#40443\fP: (\fI\%gtmanfred\fP) prepend ssh_log_file with root_dir
  206088. @ \fI2017\-03\-31 09:23:46 UTC\fP
  206089. .INDENT 2.0
  206090. .IP \(bu 2
  206091. 8617be9c6d Merge pull request \fI\%#40443\fP from gtmanfred/sshlog
  206092. .IP \(bu 2
  206093. 7f6046deec prepend ssh_log_file with root_dir
  206094. .UNINDENT
  206095. .IP \(bu 2
  206096. \fBPR\fP \fI\%#40376\fP: (\fI\%nmadhok\fP) Backporting changes in vmware cloud driver from develop branch to 2016.11 branch
  206097. @ \fI2017\-03\-30 22:35:13 UTC\fP
  206098. .INDENT 2.0
  206099. .IP \(bu 2
  206100. 132d8b7b88 Merge pull request \fI\%#40376\fP from nmadhok/2016.11
  206101. .IP \(bu 2
  206102. dd62310941 Adding unit tests for vmware_test
  206103. .IP \(bu 2
  206104. 36edf0af64 Add additional VMware related exceptions
  206105. .IP \(bu 2
  206106. 034ef30f7c Remove old vmware unit tests
  206107. .IP \(bu 2
  206108. 7c144888da Backporting changes in vmware cloud driver from develop branch to 2016.11 branch
  206109. .UNINDENT
  206110. .IP \(bu 2
  206111. \fBISSUE\fP \fI\%#39692\fP: (\fI\%djsly\fP) tuned module and state are broken on 7.3 families. (refs: \fI\%#40387\fP, \fI\%#39719\fP, \fI\%#39768\fP)
  206112. .IP \(bu 2
  206113. \fBPR\fP \fI\%#40387\fP: (\fI\%redbaron4\fP) More complete fix for 39692
  206114. @ \fI2017\-03\-30 22:29:05 UTC\fP
  206115. .INDENT 2.0
  206116. .IP \(bu 2
  206117. dfaa670b66 Merge pull request \fI\%#40387\fP from redbaron4/fix\-39692
  206118. .IP \(bu 2
  206119. 77a40a0c44 Lint fixes
  206120. .IP \(bu 2
  206121. 8c1adfafd5 More complete fix for 39692
  206122. .UNINDENT
  206123. .IP \(bu 2
  206124. \fBISSUE\fP \fI\%#7287\fP: (\fI\%dragozov\fP) django.loaddata treats fixture list as arguments and prepends "\-\-" for each (refs: \fI\%#40404\fP)
  206125. .IP \(bu 2
  206126. \fBPR\fP \fI\%#40404\fP: (\fI\%roaldnefs\fP) Fix for fixtures in the djangomod module
  206127. @ \fI2017\-03\-30 22:26:09 UTC\fP
  206128. .INDENT 2.0
  206129. .IP \(bu 2
  206130. 313d21626f Merge pull request \fI\%#40404\fP from roaldnefs/fix\-djangomod\-loaddata
  206131. .IP \(bu 2
  206132. 92285cb045 Fix for fixtures in the djangomod module
  206133. .UNINDENT
  206134. .IP \(bu 2
  206135. \fBPR\fP \fI\%#40416\fP: (\fI\%lorengordon\fP) Adds some missing file functions on Windows
  206136. @ \fI2017\-03\-30 22:22:44 UTC\fP
  206137. .INDENT 2.0
  206138. .IP \(bu 2
  206139. 5379899442 Merge pull request \fI\%#40416\fP from lorengordon/win\-file\-funcs
  206140. .IP \(bu 2
  206141. 8edaf25e10 Adds some missing file functions on Windows
  206142. .UNINDENT
  206143. .IP \(bu 2
  206144. \fBISSUE\fP \fI\%#40417\fP: (\fI\%lorengordon\fP) \fItemp.file\fP does not close the file handle (refs: \fI\%#40418\fP)
  206145. .IP \(bu 2
  206146. \fBPR\fP \fI\%#40418\fP: (\fI\%lorengordon\fP) Closes handle to temporary file before returning the path
  206147. @ \fI2017\-03\-30 22:22:03 UTC\fP
  206148. .INDENT 2.0
  206149. .IP \(bu 2
  206150. 1f5d6b88f9 Merge pull request \fI\%#40418\fP from lorengordon/close\-temp\-file
  206151. .IP \(bu 2
  206152. 7baf2809cf Closes handle to temporary file before returning the path
  206153. .UNINDENT
  206154. .IP \(bu 2
  206155. \fBPR\fP \fI\%#40430\fP: (\fI\%twangboy\fP) Fix logic for __virtual__ in win_dsc and win_psget
  206156. @ \fI2017\-03\-30 22:06:16 UTC\fP
  206157. .INDENT 2.0
  206158. .IP \(bu 2
  206159. 5c78d55eab Merge pull request \fI\%#40430\fP from twangboy/fix_virtual
  206160. .IP \(bu 2
  206161. 08e95ce4f0 Add logging on __virtual__ failures
  206162. .IP \(bu 2
  206163. 43ecb1a597 Fix logic for __virtual__
  206164. .UNINDENT
  206165. .IP \(bu 2
  206166. \fBPR\fP \fI\%#40431\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206167. @ \fI2017\-03\-30 21:37:39 UTC\fP
  206168. .INDENT 2.0
  206169. .IP \(bu 2
  206170. b855f29928 Merge pull request \fI\%#40431\fP from rallytime/merge\-2016.11
  206171. .IP \(bu 2
  206172. d5576d75e7 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206173. .IP \(bu 2
  206174. b6770fd81f Merge pull request \fI\%#40407\fP from aesdana/fix_rabbitmq_version_check
  206175. .INDENT 2.0
  206176. .IP \(bu 2
  206177. 4c0763fa2f Added split to cut off debian_revision from rabbitmq\-server version Fixes \fI\%#40396\fP
  206178. .UNINDENT
  206179. .IP \(bu 2
  206180. d4fb45d9f8 Merge pull request \fI\%#40424\fP from terminalmage/fix\-open\-filehandle
  206181. .INDENT 2.0
  206182. .IP \(bu 2
  206183. 66251263cf Fix open filehandles
  206184. .UNINDENT
  206185. .IP \(bu 2
  206186. 8708096365 Merge pull request \fI\%#40399\fP from terminalmage/docker\-py_version
  206187. .INDENT 2.0
  206188. .IP \(bu 2
  206189. 14c6575655 Add docker\-py version to the versions report
  206190. .UNINDENT
  206191. .IP \(bu 2
  206192. ff1266b3a6 Merge pull request \fI\%#40391\fP from Ch3LL/2016.3.7_release_notes
  206193. .INDENT 2.0
  206194. .IP \(bu 2
  206195. f532ec5288 initial 2016.3.7 release notes
  206196. .UNINDENT
  206197. .IP \(bu 2
  206198. 96bf9427b0 Merge pull request \fI\%#40368\fP from Ch3LL/bump_version_3
  206199. .INDENT 2.0
  206200. .IP \(bu 2
  206201. a02fa7dd1f [2016.3] Bump previous version to 2016.3.6
  206202. .UNINDENT
  206203. .UNINDENT
  206204. .IP \(bu 2
  206205. \fBPR\fP \fI\%#40401\fP: (\fI\%roaldnefs\fP) fix Ubuntu notation in docs/faq.rst
  206206. @ \fI2017\-03\-29 20:28:31 UTC\fP
  206207. .INDENT 2.0
  206208. .IP \(bu 2
  206209. 7d900d31ea Merge pull request \fI\%#40401\fP from roaldnefs/fix\-doc\-faq
  206210. .IP \(bu 2
  206211. 21f161fecc fix Ubuntu notation in docs/faq.rst
  206212. .UNINDENT
  206213. .IP \(bu 2
  206214. \fBISSUE\fP \fI\%#29028\fP: (\fI\%kevins9\fP) state.sls fails to render state with pillar data: Jinja variable \(aqdict object\(aq has no attribute (refs: \fI\%#37795\fP)
  206215. .IP \(bu 2
  206216. \fBPR\fP \fI\%#40390\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37795\fP to 2016.11
  206217. @ \fI2017\-03\-29 19:05:12 UTC\fP
  206218. .INDENT 2.0
  206219. .IP \(bu 2
  206220. \fBPR\fP \fI\%#37795\fP: (\fI\%jettero\fP) please tell me where is the “error: \(aqdict\(aq object has no …” (refs: \fI\%#40390\fP)
  206221. .IP \(bu 2
  206222. 70a3f963ec Merge pull request \fI\%#40390\fP from rallytime/bp\-37795
  206223. .IP \(bu 2
  206224. 1ba15577bd Pylint fix
  206225. .IP \(bu 2
  206226. ec65924659 please tell me where is the "error: \(aqdict\(aq object has no attribute \(aqseek\(aq" ??
  206227. .UNINDENT
  206228. .IP \(bu 2
  206229. \fBPR\fP \fI\%#40395\fP: (\fI\%rallytime\fP) Handle AttributeError for dockerng_mod.docker attempt fails and docker is installed
  206230. @ \fI2017\-03\-29 17:47:11 UTC\fP
  206231. .INDENT 2.0
  206232. .IP \(bu 2
  206233. f8fbfff7dc Merge pull request \fI\%#40395\fP from rallytime/catch\-attribute\-error\-docker\-test
  206234. .IP \(bu 2
  206235. 99c8dcc18e Handle AttributeError for dockerng_mod.docker attempt fails and docker is installed
  206236. .UNINDENT
  206237. .IP \(bu 2
  206238. \fBPR\fP \fI\%#40362\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206239. @ \fI2017\-03\-28 22:50:32 UTC\fP
  206240. .INDENT 2.0
  206241. .IP \(bu 2
  206242. d7d3d68035 Merge pull request \fI\%#40362\fP from rallytime/merge\-2016.11
  206243. .IP \(bu 2
  206244. 4f1543c2a1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206245. .INDENT 2.0
  206246. .IP \(bu 2
  206247. 1381f97292 Merge pull request \fI\%#40264\fP from meaksh/2016.3\-gather_job_timeout\-fix
  206248. .INDENT 2.0
  206249. .IP \(bu 2
  206250. 68dccae5b4 Makes sure "gather_job_timeout" is an integer
  206251. .UNINDENT
  206252. .UNINDENT
  206253. .UNINDENT
  206254. .IP \(bu 2
  206255. \fBPR\fP \fI\%#40372\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6.
  206256. @ \fI2017\-03\-28 22:48:41 UTC\fP
  206257. .INDENT 2.0
  206258. .IP \(bu 2
  206259. 2febd05896 Merge pull request \fI\%#40372\fP from zer0def/pip\-cache\-fixes
  206260. .IP \(bu 2
  206261. d68067f1d7 Merge remote\-tracking branch \(aqmain/2016.11\(aq into pip\-cache\-fixes
  206262. .IP \(bu 2
  206263. 4f23a23ca8 Fixed the \fItest_install_download_cache_argument_in_resulting_command\fP to accomodate introduced cache directory argument fixes and renamed it to \fItest_install_download_cache_dir_arguments_in_resulting_command\fP\&.
  206264. .IP \(bu 2
  206265. 9d0f94eeba Fixed unnecessary API changes introduced with suggested changes.
  206266. .UNINDENT
  206267. .IP \(bu 2
  206268. \fBPR\fP \fI\%#40369\fP: (\fI\%Ch3LL\fP) [2016.11] Bump previous version to 2016.3.6
  206269. @ \fI2017\-03\-28 18:50:39 UTC\fP
  206270. .INDENT 2.0
  206271. .IP \(bu 2
  206272. 6162698c87 Merge pull request \fI\%#40369\fP from Ch3LL/bump_version_11
  206273. .IP \(bu 2
  206274. 7597d96edb [2016.11] Bump previous version to 2016.3.6
  206275. .UNINDENT
  206276. .IP \(bu 2
  206277. \fBISSUE\fP \fI\%#40322\fP: (\fI\%Whissi\fP) ssh_auth.absent: Wrong comment when test=True (refs: \fI\%#40333\fP)
  206278. .IP \(bu 2
  206279. \fBISSUE\fP \fI\%#40321\fP: (\fI\%Whissi\fP) state.alternatives: Wrong comment when test=True (refs: \fI\%#40333\fP)
  206280. .IP \(bu 2
  206281. \fBPR\fP \fI\%#40333\fP: (\fI\%gtmanfred\fP) fix some test=True comments
  206282. @ \fI2017\-03\-28 16:11:01 UTC\fP
  206283. .INDENT 2.0
  206284. .IP \(bu 2
  206285. 2d2cb5b837 Merge pull request \fI\%#40333\fP from gtmanfred/2016.11
  206286. .IP \(bu 2
  206287. 5596620dfb fix some test=True comments
  206288. .UNINDENT
  206289. .IP \(bu 2
  206290. \fBPR\fP \fI\%#40347\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206291. @ \fI2017\-03\-28 02:39:31 UTC\fP
  206292. .INDENT 2.0
  206293. .IP \(bu 2
  206294. bb37f133fc Merge pull request \fI\%#40347\fP from rallytime/merge\-2016.11
  206295. .IP \(bu 2
  206296. e77e86db3a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206297. .IP \(bu 2
  206298. 17ab1da0ab Merge pull request \fI\%#40345\fP from twangboy/fix_osx_build
  206299. .INDENT 2.0
  206300. .IP \(bu 2
  206301. 3207d670c5 Fix osx build
  206302. .UNINDENT
  206303. .IP \(bu 2
  206304. 7ab10491ab Merge pull request \fI\%#40338\fP from UtahDave/fix_cherrypy_ssl_error_link
  206305. .INDENT 2.0
  206306. .IP \(bu 2
  206307. 280b501950 Upstream cherrypy moved to Github from Bitbucket
  206308. .UNINDENT
  206309. .IP \(bu 2
  206310. \fBPR\fP \fI\%saltstack/salt#40332\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6. (refs: \fI\%#40346\fP)
  206311. .UNINDENT
  206312. .IP \(bu 2
  206313. \fBPR\fP \fI\%#40346\fP: (\fI\%cachedout\fP) Revert "Fixes related to cache directory argument changes in pip>=6."
  206314. @ \fI2017\-03\-27 23:17:29 UTC\fP
  206315. .INDENT 2.0
  206316. .IP \(bu 2
  206317. a572b46183 Merge pull request \fI\%#40346\fP from saltstack/revert\-40332\-pip\-cache\-fixes
  206318. .IP \(bu 2
  206319. b4753d1a5a Revert "Fixes related to cache directory argument changes in pip>=6."
  206320. .UNINDENT
  206321. .IP \(bu 2
  206322. \fBISSUE\fP \fI\%#40296\fP: (\fI\%L4rS6\fP) Wrong documentation in mount.mounted (refs: \fI\%#40326\fP)
  206323. .IP \(bu 2
  206324. \fBPR\fP \fI\%#40326\fP: (\fI\%L4rS6\fP) Update mount state documentation (Fixes: \fI\%#40296\fP)
  206325. @ \fI2017\-03\-27 23:15:53 UTC\fP
  206326. .INDENT 2.0
  206327. .IP \(bu 2
  206328. a91bab867e Merge pull request \fI\%#40326\fP from L4rS6/update\-mount\-state\-doc
  206329. .IP \(bu 2
  206330. a717c527a1 Update mount state documentation (Fixes: \fI\%#40296\fP)
  206331. .UNINDENT
  206332. .IP \(bu 2
  206333. \fBPR\fP \fI\%#40328\fP: (\fI\%L4rS6\fP) Fixes wrong compared extra_mount_ignore_fs_keys key.
  206334. @ \fI2017\-03\-27 23:14:22 UTC\fP
  206335. .INDENT 2.0
  206336. .IP \(bu 2
  206337. ca2980cfb0 Merge pull request \fI\%#40328\fP from L4rS6/fix\-mount\-state\-extra\-ignore\-fs\-key
  206338. .IP \(bu 2
  206339. f0f68b9033 Fixes wrong compared extra_mount_ignore_fs_keys key.
  206340. .UNINDENT
  206341. .IP \(bu 2
  206342. \fBPR\fP \fI\%#40329\fP: (\fI\%isbm\fP) Merge tops (backport)
  206343. @ \fI2017\-03\-27 23:13:47 UTC\fP
  206344. .INDENT 2.0
  206345. .IP \(bu 2
  206346. 3a6c5d0297 Merge pull request \fI\%#40329\fP from isbm/isbm\-merge\-tops\-201611
  206347. .IP \(bu 2
  206348. a762c9edda Merge output from master_tops
  206349. .UNINDENT
  206350. .IP \(bu 2
  206351. \fBPR\fP \fI\%#40285\fP: (\fI\%rallytime\fP) Dockerng unit tests fixes: isolate global variables
  206352. @ \fI2017\-03\-27 23:05:03 UTC\fP
  206353. .INDENT 2.0
  206354. .IP \(bu 2
  206355. 2b7b2f1cb4 Merge pull request \fI\%#40285\fP from rallytime/docker\-test\-fixes
  206356. .IP \(bu 2
  206357. 0f263a52e0 Mock out the get_client_args mocks in the dockerng module tests more aggressively
  206358. .IP \(bu 2
  206359. f1352fe253 Add one more dockerng.version mock that was missed previously
  206360. .IP \(bu 2
  206361. 0d31d2c4d1 Add a couple more patches for docker.version information
  206362. .IP \(bu 2
  206363. a9c5eebaf0 Clean up dockerng unit tests to avoid global variables and fixup some patching
  206364. .UNINDENT
  206365. .IP \(bu 2
  206366. \fBPR\fP \fI\%#40341\fP: (\fI\%twangboy\fP) Fix service.create, fix docs
  206367. @ \fI2017\-03\-27 21:46:19 UTC\fP
  206368. .INDENT 2.0
  206369. .IP \(bu 2
  206370. 01efc842c1 Merge pull request \fI\%#40341\fP from twangboy/fix_win_service
  206371. .IP \(bu 2
  206372. 6736457ec8 Docs for create
  206373. .IP \(bu 2
  206374. 652cf08f8a Fix service.create, fix docs
  206375. .UNINDENT
  206376. .IP \(bu 2
  206377. \fBPR\fP \fI\%#40332\fP: (\fI\%zer0def\fP) Fixes related to cache directory argument changes in pip>=6.
  206378. @ \fI2017\-03\-27 21:01:15 UTC\fP
  206379. .INDENT 2.0
  206380. .IP \(bu 2
  206381. 8eabcca6dc Merge pull request \fI\%#40332\fP from zer0def/pip\-cache\-fixes
  206382. .IP \(bu 2
  206383. 7976840100 Fixes related to cache directory changes in pip>=6.
  206384. .UNINDENT
  206385. .IP \(bu 2
  206386. \fBPR\fP \fI\%#40337\fP: (\fI\%Ch3LL\fP) Add archive.extracted with use_cmd_unzip argument
  206387. @ \fI2017\-03\-27 21:00:23 UTC\fP
  206388. .INDENT 2.0
  206389. .IP \(bu 2
  206390. ceba1b9bc6 Merge pull request \fI\%#40337\fP from Ch3LL/add_unzip_test
  206391. .IP \(bu 2
  206392. 8b21b4c8bb add use_cmd_unzip test
  206393. .UNINDENT
  206394. .IP \(bu 2
  206395. \fBPR\fP \fI\%#40312\fP: (\fI\%rallytime\fP) Update minion data cache documentation
  206396. @ \fI2017\-03\-27 20:56:55 UTC\fP
  206397. .INDENT 2.0
  206398. .IP \(bu 2
  206399. a192597ec2 Merge pull request \fI\%#40312\fP from rallytime/cache\-docs
  206400. .IP \(bu 2
  206401. 5363e0b58b Update minion data cache documentation
  206402. .UNINDENT
  206403. .IP \(bu 2
  206404. \fBPR\fP \fI\%#40315\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206405. @ \fI2017\-03\-27 15:11:25 UTC\fP
  206406. .INDENT 2.0
  206407. .IP \(bu 2
  206408. 7f16754619 Merge pull request \fI\%#40315\fP from rallytime/merge\-2016.11
  206409. .IP \(bu 2
  206410. c65d602f60 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206411. .INDENT 2.0
  206412. .IP \(bu 2
  206413. 7c21153d3a Merge pull request \fI\%#40300\fP from meaksh/2016.3\-adding\-timeouts\-parameters\-to\-cmd_batch
  206414. .INDENT 2.0
  206415. .IP \(bu 2
  206416. 9174e6f281 Fixes testing opts dict for batch unit tests
  206417. .IP \(bu 2
  206418. b1de79abcf Adds custom \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqlocal_batch\(aq client
  206419. .UNINDENT
  206420. .UNINDENT
  206421. .UNINDENT
  206422. .IP \(bu 2
  206423. \fBPR\fP \fI\%#40313\fP: (\fI\%techhat\fP) Add minimum and maximum to calls to calc
  206424. @ \fI2017\-03\-27 14:54:15 UTC\fP
  206425. .INDENT 2.0
  206426. .IP \(bu 2
  206427. a9a73bf8dc Merge pull request \fI\%#40313\fP from techhat/calcref
  206428. .IP \(bu 2
  206429. 7106a86258 Use named kwargs
  206430. .IP \(bu 2
  206431. 822f3b81c3 Add minimum and maximum to calls to calc
  206432. .UNINDENT
  206433. .IP \(bu 2
  206434. \fBISSUE\fP \fI\%#40247\fP: (\fI\%eldadru\fP) boto_rds.delete wait_for_deletion checks rds status incorrectly and always loop until timeout (refs: \fI\%#40277\fP)
  206435. .IP \(bu 2
  206436. \fBPR\fP \fI\%#40277\fP: (\fI\%eldadru\fP) Fixing boto_rds.py delete() wait_for_deletion, if statement was inco…
  206437. @ \fI2017\-03\-24 22:29:25 UTC\fP
  206438. .INDENT 2.0
  206439. .IP \(bu 2
  206440. 9d0762deca Merge pull request \fI\%#40277\fP from eldadru/Fix\-40247\-boto_rds\-delete\-wait\-for\-deletion\-failure
  206441. .IP \(bu 2
  206442. 3c15a32764 Fixing boto_rds.py delete() wait_for_deletion, if statement was incorrectly checking the return value of boto_rds.py exists() method.
  206443. .UNINDENT
  206444. .IP \(bu 2
  206445. \fBPR\fP \fI\%#40280\fP: (\fI\%bewing\fP) Clean up temporary file in net.load_template
  206446. @ \fI2017\-03\-24 22:27:04 UTC\fP
  206447. .INDENT 2.0
  206448. .IP \(bu 2
  206449. \fBPR\fP \fI\%#40273\fP: (\fI\%bewing\fP) Clean up temporary file in net.load_template (refs: \fI\%#40280\fP)
  206450. .IP \(bu 2
  206451. 6c29c81d01 Merge pull request \fI\%#40280\fP from bewing/bp_40273
  206452. .IP \(bu 2
  206453. f028e939f5 Clean up temporary file in net.load_template
  206454. .UNINDENT
  206455. .IP \(bu 2
  206456. \fBISSUE\fP \fI\%#37972\fP: (\fI\%ebauman\fP) salt\-run execution for master with no AAAA record adds significant execution time (refs: \fI\%#40310\fP)
  206457. .IP \(bu 2
  206458. \fBPR\fP \fI\%#40310\fP: (\fI\%gtmanfred\fP) add warning when no host/dns record is found for fqdn_ip
  206459. @ \fI2017\-03\-24 21:55:20 UTC\fP
  206460. .INDENT 2.0
  206461. .IP \(bu 2
  206462. 839b620f32 Merge pull request \fI\%#40310\fP from gtmanfred/2016.11
  206463. .IP \(bu 2
  206464. cff027ddc6 add warning when no host/dns record is found for fqdn
  206465. .UNINDENT
  206466. .IP \(bu 2
  206467. \fBPR\fP \fI\%#40288\fP: (\fI\%dmurphy18\fP) Execution module network support for AIX
  206468. @ \fI2017\-03\-24 20:10:36 UTC\fP
  206469. .INDENT 2.0
  206470. .IP \(bu 2
  206471. eb86d55478 Merge pull request \fI\%#40288\fP from dmurphy18/aix_network
  206472. .IP \(bu 2
  206473. b53a95dab1 Further update to us in similar to review comments
  206474. .IP \(bu 2
  206475. 59c0bdc14d Updated for review comments
  206476. .IP \(bu 2
  206477. 031c9457ba Execution module network support for AIX
  206478. .UNINDENT
  206479. .IP \(bu 2
  206480. \fBPR\fP \fI\%#40308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38835\fP to 2016.11
  206481. @ \fI2017\-03\-24 19:00:46 UTC\fP
  206482. .INDENT 2.0
  206483. .IP \(bu 2
  206484. \fBPR\fP \fI\%#38835\fP: (\fI\%UtahDave\fP) Cache docs (refs: \fI\%#40308\fP)
  206485. .IP \(bu 2
  206486. 4928026253 Merge pull request \fI\%#40308\fP from rallytime/bp\-38835
  206487. .IP \(bu 2
  206488. 3ba50d3c52 add info about what is cached
  206489. .IP \(bu 2
  206490. 77e8f6aff9 fix config example
  206491. .IP \(bu 2
  206492. 61f2fa9339 Add documentation for the Minion data cache
  206493. .UNINDENT
  206494. .IP \(bu 2
  206495. \fBPR\fP \fI\%#40287\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206496. @ \fI2017\-03\-24 16:50:23 UTC\fP
  206497. .INDENT 2.0
  206498. .IP \(bu 2
  206499. 12a9fc43c9 Merge pull request \fI\%#40287\fP from rallytime/merge\-2016.11
  206500. .IP \(bu 2
  206501. 77415369cc Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206502. .IP \(bu 2
  206503. 0e2d52c3ea Merge pull request \fI\%#40260\fP from lubyou/fix\-join_domain
  206504. .INDENT 2.0
  206505. .IP \(bu 2
  206506. 1cb15d1ea8 use win32api.FormatMessage() to get the error message for the system code
  206507. .UNINDENT
  206508. .IP \(bu 2
  206509. 0c62bb37d3 Merge pull request \fI\%#40275\fP from UtahDave/2016.3local
  206510. .INDENT 2.0
  206511. .IP \(bu 2
  206512. 9f0c9802c2 remove reference to auth_minion.
  206513. .UNINDENT
  206514. .IP \(bu 2
  206515. 57ce474d73 Merge pull request \fI\%#40265\fP from terminalmage/issue40219
  206516. .INDENT 2.0
  206517. .IP \(bu 2
  206518. 1a731e0216 Pop off the version when aggregating pkg states
  206519. .IP \(bu 2
  206520. 0055fda3e9 Properly aggregate version when passed with name
  206521. .IP \(bu 2
  206522. 62d76f50fc Don\(aqt aggregate both name/pkgs and sources in pkg states
  206523. .UNINDENT
  206524. .IP \(bu 2
  206525. b208630d85 Merge pull request \fI\%#40201\fP from sergeizv/cloud\-roster\-fixes\-2016.3
  206526. .INDENT 2.0
  206527. .IP \(bu 2
  206528. d87b377ad2 cloud roster: Don\(aqt stop if minion wasn\(aqt found in cloud cache index
  206529. .IP \(bu 2
  206530. a6865e0283 cloud roster: Check whether show_instance succeeded on node
  206531. .IP \(bu 2
  206532. 1b45c8e8c2 cloud roster: Check provider and profile configs for ssh_username
  206533. .IP \(bu 2
  206534. a18250b2e4 cloud roster: Return proper target name
  206535. .IP \(bu 2
  206536. 637930b2b3 cloud roster: Fix extracting instance\(aqs info
  206537. .IP \(bu 2
  206538. dd1d3aac74 cloud roster: Work with custom conf dir
  206539. .UNINDENT
  206540. .UNINDENT
  206541. .IP \(bu 2
  206542. \fBPR\fP \fI\%#40250\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags()
  206543. @ \fI2017\-03\-23 16:42:13 UTC\fP
  206544. .INDENT 2.0
  206545. .IP \(bu 2
  206546. \fBPR\fP \fI\%#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40250\fP)
  206547. .IP \(bu 2
  206548. b7f9100e6d Merge pull request \fI\%#40250\fP from techhat/settags
  206549. .IP \(bu 2
  206550. baff7a046d Add wait_for_fun() to set_tags()
  206551. .UNINDENT
  206552. .IP \(bu 2
  206553. \fBISSUE\fP \fI\%#39976\fP: (\fI\%peterhirn\fP) win_lgpo missing policies, eg. \fIPrevent the usage of OneDrive for file storage\fP (refs: \fI\%#40255\fP, \fI\%#40253\fP)
  206554. .IP \(bu 2
  206555. \fBPR\fP \fI\%#40255\fP: (\fI\%lomeroe\fP) backport \fI\%#40253\fP
  206556. @ \fI2017\-03\-23 16:36:44 UTC\fP
  206557. .INDENT 2.0
  206558. .IP \(bu 2
  206559. \fBPR\fP \fI\%#40253\fP: (\fI\%lomeroe\fP) correct method of getting \(aqtext\(aq of the XML object to compare to the … (refs: \fI\%#40255\fP)
  206560. .IP \(bu 2
  206561. 904e144ae4 Merge pull request \fI\%#40255\fP from lomeroe/fix_39976_2016.11
  206562. .IP \(bu 2
  206563. 0e9f5820cc backport \fI\%#40253\fP
  206564. .UNINDENT
  206565. .IP \(bu 2
  206566. \fBPR\fP \fI\%#40240\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206567. @ \fI2017\-03\-23 14:14:11 UTC\fP
  206568. .INDENT 2.0
  206569. .IP \(bu 2
  206570. \fBPR\fP \fI\%#40237\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#40240\fP)
  206571. .IP \(bu 2
  206572. 720a362c7a Merge pull request \fI\%#40240\fP from rallytime/merge\-2016.11
  206573. .IP \(bu 2
  206574. 5c5b74b09a Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206575. .INDENT 2.0
  206576. .IP \(bu 2
  206577. 35ced607dd Merge pull request \fI\%#40226\fP from terminalmage/issue40149
  206578. .INDENT 2.0
  206579. .IP \(bu 2
  206580. 2a8df9384c Fix wrong errno in systemd.py
  206581. .UNINDENT
  206582. .IP \(bu 2
  206583. 24c4ae9c21 Merge pull request \fI\%#40232\fP from rallytime/update\-release\-notes
  206584. .INDENT 2.0
  206585. .IP \(bu 2
  206586. 2ead188b4f Update release notes for 2016.3.6
  206587. .UNINDENT
  206588. .IP \(bu 2
  206589. c59ae9a82c Merge pull request \fI\%#39855\fP from Foxlik/use_regex_to_compare_authorized_keys
  206590. .INDENT 2.0
  206591. .IP \(bu 2
  206592. d46845a5b6 Add newline at end of file
  206593. .IP \(bu 2
  206594. d4a3c8a66a Use regular expression instead of split when replacing authorized_keys
  206595. .UNINDENT
  206596. .IP \(bu 2
  206597. fd10430018 Merge pull request \fI\%#40221\fP from rallytime/bp\-39179
  206598. .INDENT 2.0
  206599. .IP \(bu 2
  206600. 07dc2de084 fix error parsing
  206601. .UNINDENT
  206602. .IP \(bu 2
  206603. a27a2cc3bb Merge pull request \fI\%#40206\fP from cro/sign_pub_take2
  206604. .INDENT 2.0
  206605. .IP \(bu 2
  206606. 01048de83f leave sign_pub_messages off on minion by default.
  206607. .IP \(bu 2
  206608. a82b005507 Leave sign_pub_messages off by default.
  206609. .UNINDENT
  206610. .IP \(bu 2
  206611. d1abb4cbaa Merge pull request \fI\%#40193\fP from rallytime/bp\-40117
  206612. .INDENT 2.0
  206613. .IP \(bu 2
  206614. cf1857904b More optimization.
  206615. .IP \(bu 2
  206616. 5a08266814 Removed debug statemnt
  206617. .IP \(bu 2
  206618. f557f7c6bb Added fix for issue 39393
  206619. .IP \(bu 2
  206620. bb62278b73 Reverting changes.
  206621. .IP \(bu 2
  206622. a9107cde44 Added if condition for broken link.
  206623. .UNINDENT
  206624. .IP \(bu 2
  206625. 0f1ff4d4a8 Merge pull request \fI\%#40196\fP from twangboy/win_fix_deps
  206626. .INDENT 2.0
  206627. .IP \(bu 2
  206628. 6761527793 Update dependencies for PyOpenSSL
  206629. .UNINDENT
  206630. .IP \(bu 2
  206631. b0501515cb Merge pull request \fI\%#40184\fP from terminalmage/link\-reactor\-example
  206632. .INDENT 2.0
  206633. .IP \(bu 2
  206634. a42be82993 Link to minion start reactor example from FAQ.
  206635. .UNINDENT
  206636. .UNINDENT
  206637. .UNINDENT
  206638. .IP \(bu 2
  206639. \fBISSUE\fP \fI\%#39445\fP: (\fI\%systemtrap\fP) state file.copy for directories does not set ownership recursively (refs: \fI\%#40030\fP)
  206640. .IP \(bu 2
  206641. \fBPR\fP \fI\%#40231\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40030\fP to 2016.11
  206642. @ \fI2017\-03\-22 23:14:40 UTC\fP
  206643. .INDENT 2.0
  206644. .IP \(bu 2
  206645. \fBPR\fP \fI\%#40030\fP: (\fI\%narendraingale2\fP) Added changes for fix_39445 (refs: \fI\%#40231\fP)
  206646. .IP \(bu 2
  206647. c40376250f Merge pull request \fI\%#40231\fP from rallytime/bp\-40030
  206648. .IP \(bu 2
  206649. 4d1c687cbd Using lchown insted of chown.
  206650. .IP \(bu 2
  206651. 52b3d986b5 Added changes for fix_39445
  206652. .IP \(bu 2
  206653. \fBPR\fP \fI\%saltstack/salt#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40239\fP)
  206654. .UNINDENT
  206655. .IP \(bu 2
  206656. \fBPR\fP \fI\%#40239\fP: (\fI\%cachedout\fP) Revert "Add wait_for_fun() to set_tags()"
  206657. @ \fI2017\-03\-22 22:59:16 UTC\fP
  206658. .INDENT 2.0
  206659. .IP \(bu 2
  206660. e39f5cbf40 Merge pull request \fI\%#40239\fP from saltstack/revert\-40225\-waitforfun
  206661. .IP \(bu 2
  206662. 95bdab87b4 Revert "Add wait_for_fun() to set_tags()"
  206663. .UNINDENT
  206664. .IP \(bu 2
  206665. \fBPR\fP \fI\%#40225\fP: (\fI\%techhat\fP) Add wait_for_fun() to set_tags() (refs: \fI\%#40250\fP)
  206666. @ \fI2017\-03\-22 18:15:35 UTC\fP
  206667. .INDENT 2.0
  206668. .IP \(bu 2
  206669. 11d2f5abec Merge pull request \fI\%#40225\fP from techhat/waitforfun
  206670. .IP \(bu 2
  206671. 89b5010883 Add wait_for_fun() to set_tags()
  206672. .UNINDENT
  206673. .IP \(bu 2
  206674. \fBPR\fP \fI\%#40172\fP: (\fI\%dmurphy18\fP) Fix solaris network
  206675. @ \fI2017\-03\-22 17:41:56 UTC\fP
  206676. .INDENT 2.0
  206677. .IP \(bu 2
  206678. c8cfbb7df6 Merge pull request \fI\%#40172\fP from dmurphy18/fix_solaris_network
  206679. .IP \(bu 2
  206680. a6218b9484 Updated use of tail on Solaris and Sun\-like OS
  206681. .IP \(bu 2
  206682. 90e6a1d8f6 Further update to support correct tail in network for Solaris
  206683. .IP \(bu 2
  206684. 5b6d33dd70 Fix use of correct tail on Solaris for active_tcp
  206685. .UNINDENT
  206686. .IP \(bu 2
  206687. \fBPR\fP \fI\%#40210\fP: (\fI\%rallytime\fP) Skip flaky test for now
  206688. @ \fI2017\-03\-22 16:34:41 UTC\fP
  206689. .INDENT 2.0
  206690. .IP \(bu 2
  206691. e9a4e8548b Merge pull request \fI\%#40210\fP from rallytime/test\-skip
  206692. .IP \(bu 2
  206693. 0ba773d86b Skip flaky test for now
  206694. .UNINDENT
  206695. .IP \(bu 2
  206696. \fBISSUE\fP \fI\%#40204\fP: (\fI\%sofixa\fP) InfluxDB returner present on salt\-minion(installed via salt\-bootstrap and updated via apt\-get) has a bug (refs: \fI\%#40209\fP)
  206697. .IP \(bu 2
  206698. \fBPR\fP \fI\%#40209\fP: (\fI\%sofixa\fP) change InfluxDB get_version to expect status code 204
  206699. @ \fI2017\-03\-21 21:42:26 UTC\fP
  206700. .INDENT 2.0
  206701. .IP \(bu 2
  206702. 0b00489eb2 Merge pull request \fI\%#40209\fP from sofixa/2016.11
  206703. .IP \(bu 2
  206704. e1cc7234ff change InfluxDB get_version to expect status code 204
  206705. .UNINDENT
  206706. .IP \(bu 2
  206707. \fBISSUE\fP \fI\%#39775\fP: (\fI\%mirceaulinic\fP) Proxy \fImine_interval\fP config ignored (refs: \fI\%#39935\fP, #saltstack/salt\(ga#39935\(ga_, \fI\%#39776\fP)
  206708. .INDENT 2.0
  206709. .IP \(bu 2
  206710. \fBPR\fP \fI\%saltstack/salt#39935\fP: (\fI\%cro\fP) Add special token to insert the minion id into the default_include path (refs: \fI\%#40202\fP)
  206711. .UNINDENT
  206712. .IP \(bu 2
  206713. \fBPR\fP \fI\%#40202\fP: (\fI\%cro\fP) Revert "Add special token to insert the minion id into the default_include path"
  206714. @ \fI2017\-03\-21 21:37:33 UTC\fP
  206715. .INDENT 2.0
  206716. .IP \(bu 2
  206717. 66bc680d0a Merge pull request \fI\%#40202\fP from saltstack/revert\-39935\-namespace_proxy_cfg
  206718. .IP \(bu 2
  206719. bb71710747 Revert "Add special token to insert the minion id into the default_include path"
  206720. .UNINDENT
  206721. .IP \(bu 2
  206722. \fBPR\fP \fI\%#40199\fP: (\fI\%whiteinge\fP) Ponysay emergency hotfix
  206723. @ \fI2017\-03\-21 21:10:21 UTC\fP
  206724. .INDENT 2.0
  206725. .IP \(bu 2
  206726. d8f0b79997 Merge pull request \fI\%#40199\fP from whiteinge/ponysay\-emergency\-hotfix
  206727. .IP \(bu 2
  206728. 85ea61b544 Add depends note
  206729. .IP \(bu 2
  206730. 5a271acfdc Fix ponysay outputter hardcoded path
  206731. .UNINDENT
  206732. .IP \(bu 2
  206733. \fBPR\fP \fI\%#40194\fP: (\fI\%terminalmage\fP) Change imports for dockerng tests
  206734. @ \fI2017\-03\-21 19:34:55 UTC\fP
  206735. .INDENT 2.0
  206736. .IP \(bu 2
  206737. 82cee58e72 Merge pull request \fI\%#40194\fP from terminalmage/fix\-docker\-test\-imports
  206738. .IP \(bu 2
  206739. 6caedb0de8 Change imports for dockerng tests
  206740. .UNINDENT
  206741. .IP \(bu 2
  206742. \fBPR\fP \fI\%#40189\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206743. @ \fI2017\-03\-21 18:02:51 UTC\fP
  206744. .INDENT 2.0
  206745. .IP \(bu 2
  206746. 0b512f9ffb Merge pull request \fI\%#40189\fP from rallytime/merge\-2016.11
  206747. .IP \(bu 2
  206748. a55c4138a8 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206749. .INDENT 2.0
  206750. .IP \(bu 2
  206751. d4e6c58526 Merge pull request \fI\%#40182\fP from terminalmage/dockerng\-mod_watch\-stopped
  206752. .INDENT 2.0
  206753. .IP \(bu 2
  206754. 4629a26fb7 Add support for "stopped" state to dockerng\(aqs mod_watch
  206755. .UNINDENT
  206756. .IP \(bu 2
  206757. a0b4082484 Merge pull request \fI\%#40171\fP from Ch3LL/2016.3.6_release
  206758. .INDENT 2.0
  206759. .IP \(bu 2
  206760. 9c6d8d892f additional PRs/issues for 2016.3.6 release notes
  206761. .UNINDENT
  206762. .IP \(bu 2
  206763. 33ba7821f7 Merge pull request \fI\%#40120\fP from sergeizv/gce\-expand\-node\-fix
  206764. .INDENT 2.0
  206765. .IP \(bu 2
  206766. 9d0fbe7e01 gce: Exclude GCENodeDriver objects from _expand_node result
  206767. .UNINDENT
  206768. .IP \(bu 2
  206769. 48843977c3 Merge pull request \fI\%#40122\fP from meaksh/2016.3\-yum\-downloadonly\-support
  206770. .INDENT 2.0
  206771. .IP \(bu 2
  206772. 067f3f77c2 Adding downloadonly support to yum/dnf module
  206773. .UNINDENT
  206774. .IP \(bu 2
  206775. 60e1d4e2f3 Merge pull request \fI\%#40159\fP from cro/sign_pub
  206776. .INDENT 2.0
  206777. .IP \(bu 2
  206778. e663b761fb Fix small syntax error
  206779. .IP \(bu 2
  206780. 0a0f46fb14 Turn on sign_pub_messages by default. Make sure messages with no \(aqsig\(aq are dropped with error when sign_pub_messages is True.
  206781. .UNINDENT
  206782. .UNINDENT
  206783. .UNINDENT
  206784. .IP \(bu 2
  206785. \fBISSUE\fP \fI\%#39779\fP: (\fI\%sp1r\fP) Pillar scheduling is broken (refs: \fI\%#40034\fP)
  206786. .IP \(bu 2
  206787. \fBISSUE\fP \fI\%#38523\fP: (\fI\%MorphBonehunter\fP) schedule not changed on pillar update after minion restart (refs: \fI\%#40034\fP)
  206788. .IP \(bu 2
  206789. \fBISSUE\fP \fI\%#36134\fP: (\fI\%Ch3LL\fP) carbon: multi\-master with failover does not failover when master goes down (refs: \fI\%#36437\fP)
  206790. .IP \(bu 2
  206791. \fBPR\fP \fI\%#40034\fP: (\fI\%sp1r\fP) Disallow modification of jobs from pillar with schedule execution module
  206792. @ \fI2017\-03\-21 16:36:34 UTC\fP
  206793. .INDENT 2.0
  206794. .IP \(bu 2
  206795. \fBPR\fP \fI\%#36437\fP: (\fI\%DmitryKuzmenko\fP) Keep the schedule jobs in ONE place. (refs: \fI\%#40034\fP)
  206796. .IP \(bu 2
  206797. d9cb222aa8 Merge pull request \fI\%#40034\fP from sp1r/fix\-pillar\-scheduling
  206798. .IP \(bu 2
  206799. 595f786327 fix evaluating jobs when "pillar" is missing in opts
  206800. .IP \(bu 2
  206801. 9d5db1910c fix initial data structure for schedule tests
  206802. .IP \(bu 2
  206803. d3a2489c9c schedule tests to ensure pillar jobs are not modified
  206804. .IP \(bu 2
  206805. 27385ff49c added a check ensuring schedule is a dict before merging
  206806. .IP \(bu 2
  206807. 14d71918b2 Fixes \fI\%#39779\fP
  206808. .UNINDENT
  206809. .IP \(bu 2
  206810. \fBPR\fP \fI\%#40160\fP: (\fI\%eldadru\fP) Fix this issue: \fI\%https://github.com/saltstack/salt/issues/40073\fP, descr…
  206811. @ \fI2017\-03\-20 21:37:43 UTC\fP
  206812. .INDENT 2.0
  206813. .IP \(bu 2
  206814. 257c862c52 Merge pull request \fI\%#40160\fP from eldadru/fix\-issue\-40073\-boto\-rds\-describe\-empty\-dict
  206815. .IP \(bu 2
  206816. 954c871332 Fix this issue: \fI\%https://github.com/saltstack/salt/issues/40073\fP, describe return dictionary returned empty , probably as result of incorrect past merge (see discussion on issue)
  206817. .UNINDENT
  206818. .IP \(bu 2
  206819. \fBPR\fP \fI\%#40162\fP: (\fI\%rallytime\fP) Make sure the tornado web server is stopped at the end of the test class
  206820. @ \fI2017\-03\-20 20:35:21 UTC\fP
  206821. .INDENT 2.0
  206822. .IP \(bu 2
  206823. aec504173a Merge pull request \fI\%#40162\fP from rallytime/archive\-integration\-test\-fixes
  206824. .IP \(bu 2
  206825. dd193cc740 Make sure the tornado web server is stopped at the end of the test class
  206826. .UNINDENT
  206827. .IP \(bu 2
  206828. \fBPR\fP \fI\%#40158\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206829. @ \fI2017\-03\-20 20:34:23 UTC\fP
  206830. .INDENT 2.0
  206831. .IP \(bu 2
  206832. 461e15f0f4 Merge pull request \fI\%#40158\fP from rallytime/merge\-2016.11
  206833. .IP \(bu 2
  206834. 88f3ebd7e9 Remove extra "connect" kwarg caught by linter
  206835. .IP \(bu 2
  206836. f4d4768a6d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206837. .INDENT 2.0
  206838. .IP \(bu 2
  206839. 28e4fc17b6 Merge pull request \fI\%#40123\fP from twangboy/win_fix_network
  206840. .INDENT 2.0
  206841. .IP \(bu 2
  206842. 06dfd55ef9 Adds support for inet_pton in Windows to network util
  206843. .UNINDENT
  206844. .IP \(bu 2
  206845. 35ddb79f59 Merge pull request \fI\%#40141\fP from bobrik/fallback\-resolve
  206846. .INDENT 2.0
  206847. .IP \(bu 2
  206848. af1545deed Use the first address if cannot connect to any
  206849. .UNINDENT
  206850. .UNINDENT
  206851. .UNINDENT
  206852. .IP \(bu 2
  206853. \fBPR\fP \fI\%#40165\fP: (\fI\%rallytime\fP) Don\(aqt try to run the dockerng unit tests if docker\-py is missing
  206854. @ \fI2017\-03\-20 20:33:19 UTC\fP
  206855. .INDENT 2.0
  206856. .IP \(bu 2
  206857. b235f0953f Merge pull request \fI\%#40165\fP from rallytime/gate\-docker\-unit\-tests
  206858. .IP \(bu 2
  206859. f32d8a8683 Don\(aqt try to run the dockerng unit tests if docker\-py is missing
  206860. .UNINDENT
  206861. .IP \(bu 2
  206862. \fBPR\fP \fI\%#40085\fP: (\fI\%mirceaulinic\fP) VRF arg and better doc for ping and traceroute
  206863. @ \fI2017\-03\-20 19:48:57 UTC\fP
  206864. .INDENT 2.0
  206865. .IP \(bu 2
  206866. db9fb58b82 Merge pull request \fI\%#40085\fP from cloudflare/fix\-ping\-tr
  206867. .IP \(bu 2
  206868. 6cbdd61b54 Strip trailing whitespaces
  206869. .IP \(bu 2
  206870. 897a2a37c3 VRF arg and better doc for ping and traceroute
  206871. .UNINDENT
  206872. .IP \(bu 2
  206873. \fBPR\fP \fI\%#40095\fP: (\fI\%skizunov\fP) dns_check should not try to connect when connect=False
  206874. @ \fI2017\-03\-17 17:31:42 UTC\fP
  206875. .INDENT 2.0
  206876. .IP \(bu 2
  206877. 3bac06f099 Merge pull request \fI\%#40095\fP from skizunov/develop2
  206878. .IP \(bu 2
  206879. 880790f743 dns_check should not try to connect when connect=False
  206880. .UNINDENT
  206881. .IP \(bu 2
  206882. \fBPR\fP \fI\%#40096\fP: (\fI\%skizunov\fP) When building up the \(aqmaster_uri_list\(aq, do not try to connect
  206883. @ \fI2017\-03\-17 17:13:41 UTC\fP
  206884. .INDENT 2.0
  206885. .IP \(bu 2
  206886. 31da90edd9 Merge pull request \fI\%#40096\fP from skizunov/develop3
  206887. .IP \(bu 2
  206888. eb9a0a6fd1 When building up the \(aqmaster_uri_list\(aq, do not try to connect
  206889. .UNINDENT
  206890. .IP \(bu 2
  206891. \fBPR\fP \fI\%#40111\fP: (\fI\%eldadru\fP) Fixing simple issue 40081 \- the key parameter of the method create ov…
  206892. @ \fI2017\-03\-17 17:00:03 UTC\fP
  206893. .INDENT 2.0
  206894. .IP \(bu 2
  206895. 5303386d93 Merge pull request \fI\%#40111\fP from eldadru/fix\-issue\-40081\-boto\-rds\-create\-overwritten\-key\-parameter
  206896. .IP \(bu 2
  206897. 78b5d112d7 Fixing simple issue 40081 \- the key parameter of the method create overwritten by internal loop.
  206898. .UNINDENT
  206899. .IP \(bu 2
  206900. \fBPR\fP \fI\%#40118\fP: (\fI\%rallytime\fP) Add CLI Example for dockerng.get_client_args
  206901. @ \fI2017\-03\-17 16:34:13 UTC\fP
  206902. .INDENT 2.0
  206903. .IP \(bu 2
  206904. d2e376e8f2 Merge pull request \fI\%#40118\fP from rallytime/cli\-example
  206905. .IP \(bu 2
  206906. bb496bb7f4 Add CLI Example for dockerng.get_client_args
  206907. .UNINDENT
  206908. .IP \(bu 2
  206909. \fBPR\fP \fI\%#40097\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206910. @ \fI2017\-03\-17 15:17:08 UTC\fP
  206911. .INDENT 2.0
  206912. .IP \(bu 2
  206913. baef5009aa Merge pull request \fI\%#40097\fP from rallytime/merge\-2016.11
  206914. .IP \(bu 2
  206915. ef1ff38f8d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206916. .IP \(bu 2
  206917. 116201f345 Merge pull request \fI\%#40059\fP from terminalmage/fix\-virtualenv\-traceback
  206918. .INDENT 2.0
  206919. .IP \(bu 2
  206920. e3cfd29d6b Fix traceback when virtualenv.managed is invoked with nonexistant user
  206921. .UNINDENT
  206922. .IP \(bu 2
  206923. a01b52b9a3 Merge pull request \fI\%#40090\fP from rallytime/bp\-40056
  206924. .INDENT 2.0
  206925. .IP \(bu 2
  206926. ae012db87a update mention bot blacklist
  206927. .UNINDENT
  206928. .IP \(bu 2
  206929. d1570bba4c Merge pull request \fI\%#40057\fP from cachedout/ollie_blacklist
  206930. .INDENT 2.0
  206931. .IP \(bu 2
  206932. 0ac2e83d37 Merge branch \(aq2016.3\(aq into ollie_blacklist
  206933. .IP \(bu 2
  206934. 5592c680b5 More mentionbot blacklists
  206935. .UNINDENT
  206936. .UNINDENT
  206937. .IP \(bu 2
  206938. \fBISSUE\fP \fI\%#39771\fP: (\fI\%mirceaulinic\fP) Empty __proxy__ dunder inside scheduler (refs: \fI\%#40077\fP)
  206939. .IP \(bu 2
  206940. \fBPR\fP \fI\%#40077\fP: (\fI\%mirceaulinic\fP) Fix \fI\%#39771\fP (Empty __proxy__ dunder inside scheduler)
  206941. @ \fI2017\-03\-16 20:56:02 UTC\fP
  206942. .INDENT 2.0
  206943. .IP \(bu 2
  206944. 9ef3e070c2 Merge pull request \fI\%#40077\fP from cloudflare/fix\-39771
  206945. .IP \(bu 2
  206946. cd319e7e39 Add proxy kwarg to scheduler
  206947. .IP \(bu 2
  206948. c6e6dd1a04 ProxyMinion: correctly build the scheduler
  206949. .UNINDENT
  206950. .IP \(bu 2
  206951. \fBPR\fP \fI\%#40088\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  206952. @ \fI2017\-03\-16 19:58:44 UTC\fP
  206953. .INDENT 2.0
  206954. .IP \(bu 2
  206955. b12720a56f Merge pull request \fI\%#40088\fP from rallytime/merge\-2016.11
  206956. .IP \(bu 2
  206957. 626bd03885 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  206958. .IP \(bu 2
  206959. d36bdb1a6e Merge pull request \fI\%#40070\fP from Ch3LL/2016.3.6_release
  206960. .INDENT 2.0
  206961. .IP \(bu 2
  206962. a1f8b49bd1 update 2016.3.6 release notes with additional PR\(aqs
  206963. .UNINDENT
  206964. .IP \(bu 2
  206965. 8dcffc7751 Merge pull request \fI\%#40018\fP from meaksh/2016.3\-handling\-timeouts\-for\-manage.up\-runner
  206966. .INDENT 2.0
  206967. .IP \(bu 2
  206968. 9f5c3b7dcd Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  206969. .IP \(bu 2
  206970. 2102d9c75c Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  206971. .UNINDENT
  206972. .IP \(bu 2
  206973. 22fc5299a2 Merge pull request \fI\%#40038\fP from velom/fix\-pip\-freeze\-parsing
  206974. .INDENT 2.0
  206975. .IP \(bu 2
  206976. 3fae91d879 correctly parse "pkg_name===version" from pip freeze
  206977. .UNINDENT
  206978. .IP \(bu 2
  206979. 3584f935fa Merge pull request \fI\%#40053\fP from saltstack/rh_ip_patch
  206980. .INDENT 2.0
  206981. .IP \(bu 2
  206982. 219947acdb Update rh_ip.py
  206983. .UNINDENT
  206984. .IP \(bu 2
  206985. 837432d3d2 Merge pull request \fI\%#40041\fP from terminalmage/issue40011
  206986. .INDENT 2.0
  206987. .IP \(bu 2
  206988. 5b5d1b375c Fix transposed lines in salt.utils.process
  206989. .UNINDENT
  206990. .UNINDENT
  206991. .IP \(bu 2
  206992. \fBPR\fP \fI\%#40055\fP: (\fI\%rallytime\fP) Update "yaml" code\-block references with "jinja" where needed
  206993. @ \fI2017\-03\-16 16:30:38 UTC\fP
  206994. .INDENT 2.0
  206995. .IP \(bu 2
  206996. 703ab23953 Merge pull request \fI\%#40055\fP from rallytime/doc\-build\-warnings
  206997. .IP \(bu 2
  206998. 72d16c9fa9 Update "yaml" code\-block references with "jinja" where needed
  206999. .UNINDENT
  207000. .IP \(bu 2
  207001. \fBPR\fP \fI\%#40072\fP: (\fI\%meaksh\fP) [2016.11] Allows overriding \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqmanage.up\(aq runner call
  207002. @ \fI2017\-03\-16 15:31:46 UTC\fP
  207003. .INDENT 2.0
  207004. .IP \(bu 2
  207005. \fBPR\fP \fI\%#40018\fP: (\fI\%meaksh\fP) Allows overriding \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqmanage.up\(aq runner call (refs: \fI\%#40072\fP)
  207006. .IP \(bu 2
  207007. e73a1d0e54 Merge pull request \fI\%#40072\fP from meaksh/2016.11\-handling\-timeouts\-for\-manage.up\-runner
  207008. .IP \(bu 2
  207009. 40246d3723 Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  207010. .IP \(bu 2
  207011. ad232fdc01 Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  207012. .UNINDENT
  207013. .IP \(bu 2
  207014. \fBPR\fP \fI\%#40045\fP: (\fI\%terminalmage\fP) Fix error when chhome is invoked by user.present state in Windows
  207015. @ \fI2017\-03\-15 19:00:41 UTC\fP
  207016. .INDENT 2.0
  207017. .IP \(bu 2
  207018. 2f28ec26ee Merge pull request \fI\%#40045\fP from terminalmage/fix\-windows\-user\-present
  207019. .IP \(bu 2
  207020. 359af3bb2b Fix error when chhome is invoked by user.present state in Windows
  207021. .UNINDENT
  207022. .IP \(bu 2
  207023. \fBPR\fP \fI\%#40047\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40000\fP to 2016.11
  207024. @ \fI2017\-03\-15 17:47:37 UTC\fP
  207025. .INDENT 2.0
  207026. .IP \(bu 2
  207027. \fBPR\fP \fI\%#40000\fP: (\fI\%skizunov\fP) Fix exception in salt\-call when master_type is \(aqdisable\(aq (refs: \fI\%#40047\fP)
  207028. .IP \(bu 2
  207029. 4067625676 Merge pull request \fI\%#40047\fP from rallytime/bp\-40000
  207030. .IP \(bu 2
  207031. 11766c7259 Fix exception in salt\-call when master_type is \(aqdisable\(aq
  207032. .UNINDENT
  207033. .IP \(bu 2
  207034. \fBPR\fP \fI\%#40023\fP: (\fI\%jeanpralo\fP) We need to match on .p not just strip \(aq.p\(aq otherwise it will remove a…
  207035. @ \fI2017\-03\-14 23:14:56 UTC\fP
  207036. .INDENT 2.0
  207037. .IP \(bu 2
  207038. 86f7195e0e Merge pull request \fI\%#40023\fP from jeanpralo/fix\-minions\-cant\-finish\-by\-char\-p
  207039. .IP \(bu 2
  207040. d7b0c8ae88 We need to match on .p not just strip \(aq.p\(aq otherwise it will remove any p from the string even if we have no dot
  207041. .UNINDENT
  207042. .IP \(bu 2
  207043. \fBPR\fP \fI\%#40025\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207044. @ \fI2017\-03\-14 23:14:33 UTC\fP
  207045. .INDENT 2.0
  207046. .IP \(bu 2
  207047. 277bd17ff2 Merge pull request \fI\%#40025\fP from rallytime/merge\-2016.11
  207048. .IP \(bu 2
  207049. 029f28bbd5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207050. .IP \(bu 2
  207051. ee7f3b1200 Merge pull request \fI\%#40021\fP from Ch3LL/2016.3.6_release
  207052. .INDENT 2.0
  207053. .IP \(bu 2
  207054. f3e7e4fb2a Add 2016.3.6 Release Notes
  207055. .UNINDENT
  207056. .IP \(bu 2
  207057. 26895b7be2 Merge pull request \fI\%#40016\fP from terminalmage/fix\-grains\-test
  207058. .INDENT 2.0
  207059. .IP \(bu 2
  207060. 0ec81a4cde Fixup a syntax error
  207061. .IP \(bu 2
  207062. 5d84b40bfd Attempt to fix failing grains tests in 2016.3
  207063. .UNINDENT
  207064. .IP \(bu 2
  207065. 0c61d064ad Merge pull request \fI\%#39980\fP from vutny/cmd\-run\-state\-bg
  207066. .INDENT 2.0
  207067. .IP \(bu 2
  207068. a81dc9dfc1 [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  207069. .UNINDENT
  207070. .IP \(bu 2
  207071. b042484455 Merge pull request \fI\%#39994\fP from rallytime/ulimits\-dockerng\-version
  207072. .INDENT 2.0
  207073. .IP \(bu 2
  207074. 37bd800fac Add a versionadded tag for dockerng ulimits addition
  207075. .UNINDENT
  207076. .IP \(bu 2
  207077. e125c94ba5 Merge pull request \fI\%#39988\fP from terminalmage/dockerng\-timeout
  207078. .INDENT 2.0
  207079. .IP \(bu 2
  207080. bd2519ed1b Add comment explaining change from \fI\%#39973\fP
  207081. .UNINDENT
  207082. .UNINDENT
  207083. .IP \(bu 2
  207084. \fBPR\fP \fI\%#40020\fP: (\fI\%dmurphy18\fP) Full support for execution module timezone on AIX
  207085. @ \fI2017\-03\-14 21:05:31 UTC\fP
  207086. .INDENT 2.0
  207087. .IP \(bu 2
  207088. 8db74fb275 Merge pull request \fI\%#40020\fP from dmurphy18/aix_timezone
  207089. .IP \(bu 2
  207090. aabbbffd45 Full support to execution module timezone on AIX
  207091. .IP \(bu 2
  207092. 16d5c7ce4a WIP: timezone support for AIX
  207093. .UNINDENT
  207094. .IP \(bu 2
  207095. \fBPR\fP \fI\%#39924\fP: (\fI\%dmurphy18\fP) Add AIX support for user and group execution modules
  207096. @ \fI2017\-03\-14 21:04:02 UTC\fP
  207097. .INDENT 2.0
  207098. .IP \(bu 2
  207099. 60066da614 Merge pull request \fI\%#39924\fP from dmurphy18/salt_aix_fixMar
  207100. .IP \(bu 2
  207101. 5077c989bb Updated changes file for added AIX support
  207102. .IP \(bu 2
  207103. 8e107bd43e WIP: support for useradd on AIX
  207104. .IP \(bu 2
  207105. 2f87d727d6 WIP: group support for AIX
  207106. .UNINDENT
  207107. .IP \(bu 2
  207108. \fBPR\fP \fI\%#40010\fP: (\fI\%jettero\fP) S3 bucket path broken
  207109. @ \fI2017\-03\-14 19:01:01 UTC\fP
  207110. .INDENT 2.0
  207111. .IP \(bu 2
  207112. cd73eafec8 Merge pull request \fI\%#40010\fP from jettero/s3\-bucket\-path\-broken
  207113. .IP \(bu 2
  207114. acee5bf7c8 clarify this, because it messes people up in the mailing lists, and myself briefly before I thought about it
  207115. .IP \(bu 2
  207116. 8102ac8e3c same here
  207117. .IP \(bu 2
  207118. 21b79e00be In order for the heredoc to be correct, bucket and path have to default to \(aq\(aq, not None
  207119. .UNINDENT
  207120. .IP \(bu 2
  207121. \fBPR\fP \fI\%#39991\fP: (\fI\%terminalmage\fP) Document the fact that the checksum type can be omitted in file.managed states
  207122. @ \fI2017\-03\-14 15:58:11 UTC\fP
  207123. .INDENT 2.0
  207124. .IP \(bu 2
  207125. 61f1fb04c5 Merge pull request \fI\%#39991\fP from terminalmage/source_hash\-docs
  207126. .IP \(bu 2
  207127. 537fc36029 Document the fact that the checksum type can be omitted in file.managed states
  207128. .UNINDENT
  207129. .IP \(bu 2
  207130. \fBPR\fP \fI\%#39984\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207131. @ \fI2017\-03\-13 18:30:16 UTC\fP
  207132. .INDENT 2.0
  207133. .IP \(bu 2
  207134. 53d14d8ad9 Merge pull request \fI\%#39984\fP from rallytime/merge\-2016.11
  207135. .IP \(bu 2
  207136. ef6f4b15ca Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207137. .IP \(bu 2
  207138. cd0336e868 Merge pull request \fI\%#39973\fP from terminalmage/dockerng\-timeout
  207139. .INDENT 2.0
  207140. .IP \(bu 2
  207141. 869416e7db Don\(aqt use docker.Client instance from context if missing attributes
  207142. .UNINDENT
  207143. .UNINDENT
  207144. .IP \(bu 2
  207145. \fBPR\fP \fI\%#39967\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207146. @ \fI2017\-03\-10 23:45:33 UTC\fP
  207147. .INDENT 2.0
  207148. .IP \(bu 2
  207149. 31c00740e7 Merge pull request \fI\%#39967\fP from rallytime/merge\-2016.11
  207150. .IP \(bu 2
  207151. 3022466615 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207152. .IP \(bu 2
  207153. 282c607d26 Merge pull request \fI\%#39962\fP from cachedout/disable_mentionbot_delay_3
  207154. .INDENT 2.0
  207155. .IP \(bu 2
  207156. 7a638f204b Disable mention bot delay on 2016.3
  207157. .UNINDENT
  207158. .IP \(bu 2
  207159. 1e0c88ae08 Merge pull request \fI\%#39937\fP from cachedout/gpg_zypper
  207160. .INDENT 2.0
  207161. .IP \(bu 2
  207162. 13ed0d1209 Fix \-\-non\-gpg\-checks in zypper module
  207163. .UNINDENT
  207164. .UNINDENT
  207165. .IP \(bu 2
  207166. \fBPR\fP \fI\%#39963\fP: (\fI\%cachedout\fP) Mention bot delay disable for 2016.11
  207167. @ \fI2017\-03\-10 20:25:25 UTC\fP
  207168. .INDENT 2.0
  207169. .IP \(bu 2
  207170. 269a2fd739 Merge pull request \fI\%#39963\fP from cachedout/disable_mentionbot_delay_11
  207171. .IP \(bu 2
  207172. 5fcea05691 Mention bot delay disable for 2016.11
  207173. .UNINDENT
  207174. .IP \(bu 2
  207175. \fBISSUE\fP \fI\%#7997\fP: (\fI\%shantanub\fP) Proper way to upgrade salt\-minions / salt\-master packages without losing minion connectivity (refs: \fI\%#39952\fP)
  207176. .IP \(bu 2
  207177. \fBPR\fP \fI\%#39952\fP: (\fI\%vutny\fP) Fix \fI\%#7997\fP: describe how to upgrade Salt Minion in a proper way
  207178. @ \fI2017\-03\-10 18:41:57 UTC\fP
  207179. .INDENT 2.0
  207180. .IP \(bu 2
  207181. 6350b07384 Merge pull request \fI\%#39952\fP from vutny/doc\-faq\-minion\-upgrade\-restart
  207182. .IP \(bu 2
  207183. d989d749d6 Fix \fI\%#7997\fP: describe how to upgrade Salt Minion in a proper way
  207184. .UNINDENT
  207185. .IP \(bu 2
  207186. \fBISSUE\fP \fI\%#39775\fP: (\fI\%mirceaulinic\fP) Proxy \fImine_interval\fP config ignored (refs: \fI\%#39935\fP, #saltstack/salt\(ga#39935\(ga_, \fI\%#39776\fP)
  207187. .IP \(bu 2
  207188. \fBPR\fP \fI\%#39935\fP: (\fI\%cro\fP) Add special token to insert the minion id into the default_include path
  207189. @ \fI2017\-03\-10 17:51:55 UTC\fP
  207190. .INDENT 2.0
  207191. .IP \(bu 2
  207192. dc7d4f4224 Merge pull request \fI\%#39935\fP from cro/namespace_proxy_cfg
  207193. .IP \(bu 2
  207194. e4aef54c73 Add special token to insert the minion id into the default_include path
  207195. .UNINDENT
  207196. .IP \(bu 2
  207197. \fBPR\fP \fI\%#39936\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207198. @ \fI2017\-03\-10 17:05:04 UTC\fP
  207199. .INDENT 2.0
  207200. .IP \(bu 2
  207201. 9503a1d0c6 Merge pull request \fI\%#39936\fP from rallytime/merge\-2016.11
  207202. .IP \(bu 2
  207203. c8b5d390b5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207204. .INDENT 2.0
  207205. .IP \(bu 2
  207206. 4526fc6e08 Merge pull request \fI\%#39929\fP from terminalmage/pr\-39770\-2016.3
  207207. .INDENT 2.0
  207208. .IP \(bu 2
  207209. cf0100dabe Scrap event\-based approach for refreshing grains
  207210. .UNINDENT
  207211. .IP \(bu 2
  207212. 111110caf8 Merge pull request \fI\%#39919\fP from The\-Loeki/patch\-1
  207213. .INDENT 2.0
  207214. .IP \(bu 2
  207215. 170cbadc54 CIDR matching supports IPv6, update docs
  207216. .UNINDENT
  207217. .IP \(bu 2
  207218. caf10e9988 Merge pull request \fI\%#39899\fP from techhat/cleanupdisks
  207219. .INDENT 2.0
  207220. .IP \(bu 2
  207221. baf4579e63 Update cleanup function for azure
  207222. .UNINDENT
  207223. .IP \(bu 2
  207224. fcf95f3654 Merge pull request \fI\%#39871\fP from terminalmage/squelch\-import\-warning
  207225. .INDENT 2.0
  207226. .IP \(bu 2
  207227. 2b2ec69d04 Squelch warning for pygit2 import
  207228. .UNINDENT
  207229. .IP \(bu 2
  207230. f223fa8906 Merge pull request \fI\%#39794\fP from cachedout/clean_monitor_socket_shutdown
  207231. .INDENT 2.0
  207232. .IP \(bu 2
  207233. 2e683e788b Clean up errors which might be thrown when the monitor socket shuts down
  207234. .UNINDENT
  207235. .IP \(bu 2
  207236. 4002dc1947 Merge pull request \fI\%#39819\fP from terminalmage/top\-file\-matching\-docs
  207237. .INDENT 2.0
  207238. .IP \(bu 2
  207239. 7178e77eee Improve the Top File matching docs
  207240. .UNINDENT
  207241. .IP \(bu 2
  207242. c08aaeb7fd Merge pull request \fI\%#39820\fP from ni3mm4nd/beacons_topic_doc_typo
  207243. .INDENT 2.0
  207244. .IP \(bu 2
  207245. 804b12048c Add missing apostrophe
  207246. .UNINDENT
  207247. .IP \(bu 2
  207248. cbd2a4e3cc Merge pull request \fI\%#39826\fP from cachedout/yubikey_fix
  207249. .INDENT 2.0
  207250. .IP \(bu 2
  207251. 6125eff02d Add group func to yubikey auth
  207252. .UNINDENT
  207253. .IP \(bu 2
  207254. f575ef459f Merge pull request \fI\%#39624\fP from drawsmcgraw/39622
  207255. .INDENT 2.0
  207256. .IP \(bu 2
  207257. 13da50be33 Fix indention lint errors
  207258. .IP \(bu 2
  207259. 545026352f Address issue 39622
  207260. .UNINDENT
  207261. .IP \(bu 2
  207262. 1f3619c1e5 Merge pull request \fI\%#39796\fP from cachedout/master_shutdown
  207263. .INDENT 2.0
  207264. .IP \(bu 2
  207265. e31d46c1b8 Stop the process manager when it no longer has processes to manage
  207266. .UNINDENT
  207267. .IP \(bu 2
  207268. 53341cf152 Merge pull request \fI\%#39791\fP from gtmanfred/2016.3
  207269. .INDENT 2.0
  207270. .IP \(bu 2
  207271. 3ab4f843bf load runners if role is master
  207272. .UNINDENT
  207273. .IP \(bu 2
  207274. c234c25092 Merge pull request \fI\%#39784\fP from sergeizv/fix\-39782
  207275. .INDENT 2.0
  207276. .IP \(bu 2
  207277. b71c3fe13c Revert "cloud.clouds.ec2: cache each named node (\fI\%#33164\fP)"
  207278. .UNINDENT
  207279. .IP \(bu 2
  207280. 4ee59be22c Merge pull request \fI\%#39766\fP from rallytime/fix\-ipv6\-connection
  207281. .INDENT 2.0
  207282. .IP \(bu 2
  207283. 65b239664e Restore ipv6 connectivity and "master: <ip>:<port>" support
  207284. .UNINDENT
  207285. .UNINDENT
  207286. .UNINDENT
  207287. .IP \(bu 2
  207288. \fBISSUE\fP \fI\%#38121\fP: (\fI\%Da\-Juan\fP) Beacon configuration doesn\(aqt work as a list (refs: \fI\%#39932\fP, \fI\%#39930\fP)
  207289. .IP \(bu 2
  207290. \fBPR\fP \fI\%#39932\fP: (\fI\%rallytime\fP) Cherry\-pick the beacon fixes made in \fI\%#39930\fP to 2016.11
  207291. @ \fI2017\-03\-10 00:21:09 UTC\fP
  207292. .INDENT 2.0
  207293. .IP \(bu 2
  207294. \fBPR\fP \fI\%#39930\fP: (\fI\%s0undt3ch\fP) Moar Py3 and a fix for \fI\%#38121\fP (refs: \fI\%#39932\fP)
  207295. .IP \(bu 2
  207296. 899e037f0a Merge pull request \fI\%#39932\fP from rallytime/cp\-beacon\-fixes
  207297. .IP \(bu 2
  207298. 4a52cca926 Pylint fixes
  207299. .IP \(bu 2
  207300. 4627c4ea6d Code cleanup and make sure the beacons config file is deleted after testing
  207301. .IP \(bu 2
  207302. c7fc09f97d Support the new list configuration format.
  207303. .IP \(bu 2
  207304. be06df9b64 Remove \fI*args, **kwargs\fP\&. Not needed, not useful.
  207305. .IP \(bu 2
  207306. 4a242829ee These tests aren\(aqt even using mock!
  207307. .IP \(bu 2
  207308. 6408b123e7 These tests are not destructive
  207309. .IP \(bu 2
  207310. 50e51b5b9d The beacons configuration is now a list. Handle it!
  207311. .UNINDENT
  207312. .IP \(bu 2
  207313. \fBPR\fP \fI\%#39933\fP: (\fI\%hkrist\fP) Fixed rawfile_json returner output format.
  207314. @ \fI2017\-03\-10 00:20:52 UTC\fP
  207315. .INDENT 2.0
  207316. .IP \(bu 2
  207317. 2e68edee4a Merge pull request \fI\%#39933\fP from hkrist/fix\-rawfile_json_returner\-format
  207318. .IP \(bu 2
  207319. 4d0ddcd110 Fixed rawfile_json returner output format. It outputted python object instead of standard json.
  207320. .UNINDENT
  207321. .IP \(bu 2
  207322. \fBPR\fP \fI\%#39934\fP: (\fI\%dmurphy18\fP) Correct comment lines output from execution module\(aqs host.list_hosts
  207323. @ \fI2017\-03\-10 00:20:14 UTC\fP
  207324. .INDENT 2.0
  207325. .IP \(bu 2
  207326. fb0dc33c42 Merge pull request \fI\%#39934\fP from dmurphy18/fix_host_list
  207327. .IP \(bu 2
  207328. e7b9a45079 Correct comment lines output got list_hosts
  207329. .UNINDENT
  207330. .IP \(bu 2
  207331. \fBPR\fP \fI\%#39900\fP: (\fI\%twangboy\fP) Namespace the line function properly in win_file
  207332. @ \fI2017\-03\-09 22:19:12 UTC\fP
  207333. .INDENT 2.0
  207334. .IP \(bu 2
  207335. a6f88d03df Merge pull request \fI\%#39900\fP from twangboy/win_fix_line
  207336. .IP \(bu 2
  207337. 462bdecd33 Namespace the line function properly in win_file
  207338. .UNINDENT
  207339. .IP \(bu 2
  207340. \fBISSUE\fP \fI\%#37741\fP: (\fI\%discountbin\fP) Check in file.replace state for ignore_if_missing (refs: \fI\%#37743\fP, \fI\%#39910\fP)
  207341. .IP \(bu 2
  207342. \fBPR\fP \fI\%#39910\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37743\fP to 2016.11
  207343. @ \fI2017\-03\-09 22:16:58 UTC\fP
  207344. .INDENT 2.0
  207345. .IP \(bu 2
  207346. \fBPR\fP \fI\%#37743\fP: (\fI\%discountbin\fP) Adding check for ignore_if_missing param when calling _check_file. (refs: \fI\%#39910\fP)
  207347. .IP \(bu 2
  207348. 77ecff4e02 Merge pull request \fI\%#39910\fP from rallytime/bp\-37743
  207349. .IP \(bu 2
  207350. ca306c0860 Replace pass with updated comment for return
  207351. .IP \(bu 2
  207352. 1a78878b47 Adding check for ignore_if_missing param when calling _check_file.
  207353. .UNINDENT
  207354. .IP \(bu 2
  207355. \fBPR\fP \fI\%#39770\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207356. @ \fI2017\-03\-09 22:00:17 UTC\fP
  207357. .INDENT 2.0
  207358. .IP \(bu 2
  207359. c2d4d17589 Merge pull request \fI\%#39770\fP from rallytime/merge\-2016.11
  207360. .IP \(bu 2
  207361. dbaea3de73 Remove extra refresh reference that snuck in
  207362. .IP \(bu 2
  207363. d9f48ac6ea Don\(aqt shadow refresh_pillar
  207364. .IP \(bu 2
  207365. d86b03dc90 Remove manual refresh code from minion.py
  207366. .IP \(bu 2
  207367. a7e419e35f Scrap event\-based approach for refreshing grains
  207368. .IP \(bu 2
  207369. 776a9431b9 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207370. .INDENT 2.0
  207371. .IP \(bu 2
  207372. a24da31131 Merge pull request \fI\%#39761\fP from cachedout/issue_33187
  207373. .INDENT 2.0
  207374. .IP \(bu 2
  207375. c2df29edb2 Properly display error in jboss7 state
  207376. .UNINDENT
  207377. .IP \(bu 2
  207378. 0888bc32ef Merge pull request \fI\%#39728\fP from rallytime/update\-release\-ver\-2016.3
  207379. .INDENT 2.0
  207380. .IP \(bu 2
  207381. c9bc8af8f2 [2016.3] Bump latest release version to 2016.11.3
  207382. .UNINDENT
  207383. .IP \(bu 2
  207384. b52dbeec68 Merge pull request \fI\%#39619\fP from terminalmage/zd1207
  207385. .INDENT 2.0
  207386. .IP \(bu 2
  207387. c7dfb494a6 Fix mocking for grains refresh
  207388. .IP \(bu 2
  207389. 7e0ced3b45 Properly hand proxy minions
  207390. .IP \(bu 2
  207391. 692c456da3 Add a function to simply refresh the grains
  207392. .UNINDENT
  207393. .UNINDENT
  207394. .UNINDENT
  207395. .IP \(bu 2
  207396. \fBPR\fP \fI\%#39872\fP: (\fI\%techhat\fP) Add installation tips for azurearm driver
  207397. @ \fI2017\-03\-07 23:18:04 UTC\fP
  207398. .INDENT 2.0
  207399. .IP \(bu 2
  207400. 801ff28053 Merge pull request \fI\%#39872\fP from techhat/fixdocs
  207401. .IP \(bu 2
  207402. 35440c5936 Add installation tips for azure
  207403. .IP \(bu 2
  207404. 2a1ae0bf2e Change example master in azure docs
  207405. .UNINDENT
  207406. .IP \(bu 2
  207407. \fBPR\fP \fI\%#39837\fP: (\fI\%terminalmage\fP) Fix regression in archive.extracted when it runs file.directory
  207408. @ \fI2017\-03\-07 04:09:51 UTC\fP
  207409. .INDENT 2.0
  207410. .IP \(bu 2
  207411. 6d0f15c31a Merge pull request \fI\%#39837\fP from terminalmage/more\-issue39751
  207412. .IP \(bu 2
  207413. 0285ff3c7d Fix regression in archive.extracted when it runs file.directory
  207414. .UNINDENT
  207415. .IP \(bu 2
  207416. \fBPR\fP \fI\%#39858\fP: (\fI\%techhat\fP) Reorder keys that were being declared in the wrong place
  207417. @ \fI2017\-03\-07 03:51:56 UTC\fP
  207418. .INDENT 2.0
  207419. .IP \(bu 2
  207420. 68752a2a18 Merge pull request \fI\%#39858\fP from techhat/statuskey
  207421. .IP \(bu 2
  207422. 507a4f7f93 Reorder keys that were being declared in the wrong place
  207423. .UNINDENT
  207424. .IP \(bu 2
  207425. \fBISSUE\fP \fI\%#38830\fP: (\fI\%danielmotaleite\fP) salt\-ssh: vault fails to use config (refs: \fI\%#38943\fP)
  207426. .IP \(bu 2
  207427. \fBPR\fP \fI\%#39862\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38943\fP to 2016.11
  207428. @ \fI2017\-03\-07 03:34:40 UTC\fP
  207429. .INDENT 2.0
  207430. .IP \(bu 2
  207431. \fBPR\fP \fI\%#38943\fP: (\fI\%thatch45\fP) When we generate the pillar we should send in the master opts (refs: \fI\%#39862\fP)
  207432. .IP \(bu 2
  207433. 49c8faa141 Merge pull request \fI\%#39862\fP from rallytime/bp\-38943
  207434. .IP \(bu 2
  207435. e21b16c002 try it with a different init sequence
  207436. .IP \(bu 2
  207437. 92cac0ff8b make it a deepcopy
  207438. .IP \(bu 2
  207439. 58cb8cd4f5 make sure to copy the top dict reference since we are moding it
  207440. .IP \(bu 2
  207441. a0b671ea43 When we generate the pillar we should send in the master opts
  207442. .UNINDENT
  207443. .IP \(bu 2
  207444. \fBPR\fP \fI\%#39852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39651\fP to 2016.11
  207445. @ \fI2017\-03\-06 21:18:34 UTC\fP
  207446. .INDENT 2.0
  207447. .IP \(bu 2
  207448. \fBPR\fP \fI\%#39651\fP: (\fI\%DennisHarper\fP) Checking Instance when calling a function that can return None (refs: \fI\%#39852\fP)
  207449. .IP \(bu 2
  207450. 8ecc719f90 Merge pull request \fI\%#39852\fP from rallytime/bp\-39651
  207451. .IP \(bu 2
  207452. bb5ddbe18c Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207453. .IP \(bu 2
  207454. 79f2a7cbb7 Update __init__.py
  207455. .IP \(bu 2
  207456. e2a232921d Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207457. .IP \(bu 2
  207458. 838774291d Update __init__.py
  207459. .IP \(bu 2
  207460. ff6f63e9dd Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207461. .IP \(bu 2
  207462. 855f87554c Checking instance exists in master._get_cached_minion_data when cache.fetch returns None
  207463. .UNINDENT
  207464. .IP \(bu 2
  207465. \fBISSUE\fP \fI\%#39052\fP: (\fI\%githubcdr\fP) Minion restart very slow since 2016.11.2 (refs: \fI\%#39104\fP)
  207466. .IP \(bu 2
  207467. \fBPR\fP \fI\%#39851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39104\fP to 2016.11
  207468. @ \fI2017\-03\-06 21:17:43 UTC\fP
  207469. .INDENT 2.0
  207470. .IP \(bu 2
  207471. \fBPR\fP \fI\%#39104\fP: (\fI\%githubcdr\fP) Do not use name resolving for \-\-notrim check (refs: \fI\%#39851\fP)
  207472. .IP \(bu 2
  207473. 897275ae5f Merge pull request \fI\%#39851\fP from rallytime/bp\-39104
  207474. .IP \(bu 2
  207475. 6539dbdbca Do not use name resolving for \-\-notrim check
  207476. .UNINDENT
  207477. .IP \(bu 2
  207478. \fBISSUE\fP \fI\%#38231\fP: (\fI\%tjuup\fP) Typo: salt\-key deleteed (refs: \fI\%#39799\fP)
  207479. .IP \(bu 2
  207480. \fBPR\fP \fI\%#39799\fP: (\fI\%Ch3LL\fP) Fix deleteed message when key is deleted
  207481. @ \fI2017\-03\-03 05:17:43 UTC\fP
  207482. .INDENT 2.0
  207483. .IP \(bu 2
  207484. d0440e2a2a Merge pull request \fI\%#39799\fP from Ch3LL/fix_salt_key_msg
  207485. .IP \(bu 2
  207486. 8346682cf7 Fix deleteed message when key is deleted
  207487. .UNINDENT
  207488. .IP \(bu 2
  207489. \fBISSUE\fP \fI\%#38962\fP: (\fI\%gstachowiak\fP) Broken /jobs in salt\-api in salt 2016.11.1 (Carbon) (refs: \fI\%#39472\fP)
  207490. .IP \(bu 2
  207491. \fBPR\fP \fI\%#39472\fP: (\fI\%whiteinge\fP) Update _reformat_low to not run kwarg dicts through parse_input
  207492. @ \fI2017\-03\-02 17:46:20 UTC\fP
  207493. .INDENT 2.0
  207494. .IP \(bu 2
  207495. 9f70ad7164 Merge pull request \fI\%#39472\fP from whiteinge/_reformat_low\-update
  207496. .IP \(bu 2
  207497. d11f5381a4 Add RunnerClient test for old/new\-style arg/kwarg parsing
  207498. .IP \(bu 2
  207499. ec377ab379 Reenable skipped RunnerClient tests
  207500. .IP \(bu 2
  207501. 27f7fd9ad4 Update _reformat_low to run arg through parse_input
  207502. .IP \(bu 2
  207503. 5177153459 Revert parse_input change from \fI\%#32005\fP
  207504. .UNINDENT
  207505. .IP \(bu 2
  207506. \fBPR\fP \fI\%#39727\fP: (\fI\%terminalmage\fP) salt.modules.state: check gathered pillar for errors instead of in\-memory pillar
  207507. @ \fI2017\-03\-02 17:06:43 UTC\fP
  207508. .INDENT 2.0
  207509. .IP \(bu 2
  207510. 7dfc4b572a Merge pull request \fI\%#39727\fP from terminalmage/issue39627
  207511. .IP \(bu 2
  207512. 3bb0ebd872 Update tests for PR 39727
  207513. .IP \(bu 2
  207514. c334b59c96 salt.modules.state: check gathered pillar for errors instead of in\-memory pillar
  207515. .IP \(bu 2
  207516. 97dd8a13d9 Ensure that ext_pillar begins with pillar_override if ext_pillar_first is True
  207517. .IP \(bu 2
  207518. f951266944 Add log message for successful makostack processing
  207519. .UNINDENT
  207520. .IP \(bu 2
  207521. \fBISSUE\fP \fI\%#39775\fP: (\fI\%mirceaulinic\fP) Proxy \fImine_interval\fP config ignored (refs: \fI\%#39935\fP, #saltstack/salt\(ga#39935\(ga_, \fI\%#39776\fP)
  207522. .IP \(bu 2
  207523. \fBPR\fP \fI\%#39776\fP: (\fI\%mirceaulinic\fP) WIP: Save _schedule.conf under <proxy ID> dir
  207524. @ \fI2017\-03\-02 16:27:45 UTC\fP
  207525. .INDENT 2.0
  207526. .IP \(bu 2
  207527. 965f474316 Merge pull request \fI\%#39776\fP from cloudflare/proxy\-schedule
  207528. .IP \(bu 2
  207529. 35b8b8fd64 Save _schedule.conf under <minion ID> dir
  207530. .UNINDENT
  207531. .IP \(bu 2
  207532. \fBPR\fP \fI\%#39788\fP: (\fI\%cachedout\fP) Disable one API test that is flaky
  207533. @ \fI2017\-03\-02 16:17:31 UTC\fP
  207534. .INDENT 2.0
  207535. .IP \(bu 2
  207536. 555f1473f6 Merge pull request \fI\%#39788\fP from cachedout/disable_api_test
  207537. .IP \(bu 2
  207538. 523e377b33 Disable one API test that is flaky
  207539. .UNINDENT
  207540. .IP \(bu 2
  207541. \fBPR\fP \fI\%#39762\fP: (\fI\%terminalmage\fP) Fix regression in file.get_managed
  207542. @ \fI2017\-03\-02 02:59:34 UTC\fP
  207543. .INDENT 2.0
  207544. .IP \(bu 2
  207545. 793979cbe6 Merge pull request \fI\%#39762\fP from terminalmage/issue39751
  207546. .IP \(bu 2
  207547. 64db0b8563 Add integration tests for remote file sources
  207548. .IP \(bu 2
  207549. f9f894d981 Fix regression in file.get_managed when skip_verify=True
  207550. .IP \(bu 2
  207551. 28651a6699 Remove next(iter()) extraction
  207552. .UNINDENT
  207553. .IP \(bu 2
  207554. \fBISSUE\fP \fI\%#35088\fP: (\fI\%Modulus\fP) salt/cloud/ec2.py encoding problems. (refs: \fI\%#37912\fP)
  207555. .IP \(bu 2
  207556. \fBPR\fP \fI\%#39767\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38316\fP to 2016.11
  207557. @ \fI2017\-03\-02 02:54:57 UTC\fP
  207558. .INDENT 2.0
  207559. .IP \(bu 2
  207560. \fBPR\fP \fI\%#38316\fP: (\fI\%mlalpho\fP) salt utils aws encoding fix (refs: \fI\%#39767\fP)
  207561. .IP \(bu 2
  207562. \fBPR\fP \fI\%#37912\fP: (\fI\%attiasr\fP) fix encoding problem aws responses (refs: \fI\%#38316\fP)
  207563. .IP \(bu 2
  207564. 91a9337ab3 Merge pull request \fI\%#39767\fP from rallytime/bp\-38316
  207565. .IP \(bu 2
  207566. 1dcf018df7 requests api says Response.encoding can sometimes be None \fI\%http://docs.python\-requests.org/en/master/api/#requests.Response.encoding\fP and result.text.encode() doesn\(aqt accept None and expects a string.
  207567. .UNINDENT
  207568. .IP \(bu 2
  207569. \fBISSUE\fP \fI\%#39692\fP: (\fI\%djsly\fP) tuned module and state are broken on 7.3 families. (refs: \fI\%#40387\fP, \fI\%#39719\fP, \fI\%#39768\fP)
  207570. .IP \(bu 2
  207571. \fBPR\fP \fI\%#39768\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39719\fP to 2016.11
  207572. @ \fI2017\-03\-02 02:54:40 UTC\fP
  207573. .INDENT 2.0
  207574. .IP \(bu 2
  207575. \fBPR\fP \fI\%#39719\fP: (\fI\%Seb\-Solon\fP) Support new version of tuned\-adm binary (refs: \fI\%#39768\fP)
  207576. .IP \(bu 2
  207577. 4a01bd64ea Merge pull request \fI\%#39768\fP from rallytime/bp\-39719
  207578. .IP \(bu 2
  207579. d7cb70f203 Enh: Support new version of tuned\-adm binary
  207580. .UNINDENT
  207581. .IP \(bu 2
  207582. \fBPR\fP \fI\%#39760\fP: (\fI\%Ch3LL\fP) Initial 2016.11.4 Release Notes Doc
  207583. @ \fI2017\-03\-01 18:43:39 UTC\fP
  207584. .INDENT 2.0
  207585. .IP \(bu 2
  207586. 780457f934 Merge pull request \fI\%#39760\fP from Ch3LL/2016.11.4_notes
  207587. .IP \(bu 2
  207588. 1853c998c4 add initial 2016.11.4 release notes
  207589. .UNINDENT
  207590. .IP \(bu 2
  207591. \fBPR\fP \fI\%#39731\fP: (\fI\%twangboy\fP) Add docs for Kwargs in pkg.refresh_db
  207592. @ \fI2017\-02\-28 22:02:59 UTC\fP
  207593. .INDENT 2.0
  207594. .IP \(bu 2
  207595. 0147f78ab5 Merge pull request \fI\%#39731\fP from twangboy/win_pkg_docs
  207596. .IP \(bu 2
  207597. 423e6f7448 Add docs for Kwargs in pkg.refresh_db
  207598. .UNINDENT
  207599. .IP \(bu 2
  207600. \fBISSUE\fP \fI\%#39710\fP: (\fI\%huangfupeng\fP) schedule.add parameter can not use “after“ (refs: \fI\%#39734\fP)
  207601. .IP \(bu 2
  207602. \fBPR\fP \fI\%#39734\fP: (\fI\%garethgreenaway\fP) Missing parameter in the schedule.add function
  207603. @ \fI2017\-02\-28 20:43:08 UTC\fP
  207604. .INDENT 2.0
  207605. .IP \(bu 2
  207606. fce2d184f3 Merge pull request \fI\%#39734\fP from garethgreenaway/39710_missing_schedule_add_parameter
  207607. .IP \(bu 2
  207608. 63eb610245 Per \fI\%#39710\fP, missing parameter in the schedule.add function
  207609. .UNINDENT
  207610. .IP \(bu 2
  207611. \fBPR\fP \fI\%#39729\fP: (\fI\%rallytime\fP) [2016.11] Bump latest release version to 2016.11.3
  207612. @ \fI2017\-02\-28 18:08:25 UTC\fP
  207613. .INDENT 2.0
  207614. .IP \(bu 2
  207615. 7b4865c058 Merge pull request \fI\%#39729\fP from rallytime/update\-release\-ver\-2016.11
  207616. .IP \(bu 2
  207617. b5a7111ad9 [2016.11] Bump latest release version to 2016.11.3
  207618. .UNINDENT
  207619. .IP \(bu 2
  207620. \fBPR\fP \fI\%#39721\fP: (\fI\%vutny\fP) DOCS: add 2nd level header for advanced targeting methods
  207621. @ \fI2017\-02\-28 17:57:46 UTC\fP
  207622. .INDENT 2.0
  207623. .IP \(bu 2
  207624. 47e494fe07 Merge pull request \fI\%#39721\fP from vutny/doc\-targeting
  207625. .IP \(bu 2
  207626. 1d86cf1161 DOCS: add 2nd level header for advanced targeting methods
  207627. .UNINDENT
  207628. .IP \(bu 2
  207629. \fBISSUE\fP \fI\%#39683\fP: (\fI\%alankrita\fP) Error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq " (refs: \fI\%#39711\fP)
  207630. .IP \(bu 2
  207631. \fBPR\fP \fI\%#39711\fP: (\fI\%alankrita\fP) Fix error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq "
  207632. @ \fI2017\-02\-28 15:56:09 UTC\fP
  207633. .INDENT 2.0
  207634. .IP \(bu 2
  207635. d39b679d82 Merge pull request \fI\%#39711\fP from alankrita/fix\-rest\-eauth
  207636. .IP \(bu 2
  207637. ee426562a7 Fix error in Saltstack\(aqs rest auth "Authentication module threw \(aqstatus\(aq "
  207638. .UNINDENT
  207639. .IP \(bu 2
  207640. \fBPR\fP \fI\%#39699\fP: (\fI\%techhat\fP) Strip shabang line from rendered HTTP data
  207641. @ \fI2017\-02\-28 00:05:01 UTC\fP
  207642. .INDENT 2.0
  207643. .IP \(bu 2
  207644. 3940321462 Merge pull request \fI\%#39699\fP from techhat/httpshabang
  207645. .IP \(bu 2
  207646. 559eb93576 Strip shabang line from rendered HTTP data
  207647. .UNINDENT
  207648. .IP \(bu 2
  207649. \fBPR\fP \fI\%#39694\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207650. @ \fI2017\-02\-27 22:13:49 UTC\fP
  207651. .INDENT 2.0
  207652. .IP \(bu 2
  207653. 00f121eade Merge pull request \fI\%#39694\fP from rallytime/merge\-2016.11
  207654. .IP \(bu 2
  207655. 756f1de2d2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207656. .INDENT 2.0
  207657. .IP \(bu 2
  207658. 3f8b5e6733 Merge pull request \fI\%#39487\fP from bobrik/mode\-docs
  207659. .INDENT 2.0
  207660. .IP \(bu 2
  207661. 41ef69b3ca Document default permission modes for file module
  207662. .UNINDENT
  207663. .IP \(bu 2
  207664. f7389bf1f5 Merge pull request \fI\%#39641\fP from smarsching/issue\-39169\-2016.3
  207665. .INDENT 2.0
  207666. .IP \(bu 2
  207667. 88c2d9a540 Fix return data structure for runner (issue \fI\%#39169\fP).
  207668. .UNINDENT
  207669. .IP \(bu 2
  207670. fc970b6a16 Merge pull request \fI\%#39633\fP from terminalmage/fix\-systemd\-typo
  207671. .INDENT 2.0
  207672. .IP \(bu 2
  207673. ca54541abe Add missing unit test for disable func
  207674. .IP \(bu 2
  207675. 17109e1522 Fix misspelled argument in salt.modules.systemd.disable()
  207676. .UNINDENT
  207677. .IP \(bu 2
  207678. 53e78d67f6 Merge pull request \fI\%#39613\fP from terminalmage/fix\-docs
  207679. .INDENT 2.0
  207680. .IP \(bu 2
  207681. 9342eda377 Fix inaccurate documentation
  207682. .UNINDENT
  207683. .UNINDENT
  207684. .UNINDENT
  207685. .IP \(bu 2
  207686. \fBISSUE\fP \fI\%#39642\fP: (\fI\%drawsmcgraw\fP) boto_vpc.nat_gateway_present does not honor the allocation_id parameter like the module does (refs: \fI\%#39643\fP)
  207687. .IP \(bu 2
  207688. \fBPR\fP \fI\%#39643\fP: (\fI\%drawsmcgraw\fP) issue 39642 \- boto_vpc.nat_gateway_present should accept parameter al…
  207689. @ \fI2017\-02\-27 20:19:09 UTC\fP
  207690. .INDENT 2.0
  207691. .IP \(bu 2
  207692. 2c919e31d6 Merge pull request \fI\%#39643\fP from drawsmcgraw/39642
  207693. .IP \(bu 2
  207694. 56d9adfbf6 issue 39642 \- boto_vpc.nat_gateway_present should accept parameter allocation_id.
  207695. .UNINDENT
  207696. .IP \(bu 2
  207697. \fBPR\fP \fI\%#39666\fP: (\fI\%terminalmage\fP) Rewrite the test_valid_docs test
  207698. @ \fI2017\-02\-26 20:14:33 UTC\fP
  207699. .INDENT 2.0
  207700. .IP \(bu 2
  207701. df013c5f31 Merge pull request \fI\%#39666\fP from terminalmage/test_valid_docs
  207702. .IP \(bu 2
  207703. 5a3c099e4f Rewrite the tests_valid_docs test
  207704. .UNINDENT
  207705. .IP \(bu 2
  207706. \fBPR\fP \fI\%#39662\fP: (\fI\%The\-Loeki\fP) Py3 compat: Force minions to be a list for local serialized caches
  207707. @ \fI2017\-02\-26 02:36:46 UTC\fP
  207708. .INDENT 2.0
  207709. .IP \(bu 2
  207710. a29a7be7f8 Merge pull request \fI\%#39662\fP from The\-Loeki/py3cachefix
  207711. .IP \(bu 2
  207712. b02ef984f7 Add comment
  207713. .IP \(bu 2
  207714. 0fe5c90a05 Py3 compat: Force minions to be a list for local serialized caches
  207715. .UNINDENT
  207716. .IP \(bu 2
  207717. \fBPR\fP \fI\%#39644\fP: (\fI\%vutny\fP) Improve and align dockerng execution module docs
  207718. @ \fI2017\-02\-25 04:16:28 UTC\fP
  207719. .INDENT 2.0
  207720. .IP \(bu 2
  207721. bd6efd18b1 Merge pull request \fI\%#39644\fP from vutny/dockerng\-docs
  207722. .IP \(bu 2
  207723. c4988e874e Improve and align dockerng execution module docs
  207724. .UNINDENT
  207725. .IP \(bu 2
  207726. \fBPR\fP \fI\%#39516\fP: (\fI\%jettero\fP) Prevent spurious "Template does not exist" error
  207727. @ \fI2017\-02\-24 23:41:36 UTC\fP
  207728. .INDENT 2.0
  207729. .IP \(bu 2
  207730. fffab54078 Merge pull request \fI\%#39516\fP from jettero/give\-pillarenv\-tops\-similar\-treatment
  207731. .IP \(bu 2
  207732. 8fe48fa5c4 prevent billions of inexplicable lines of this:
  207733. .UNINDENT
  207734. .IP \(bu 2
  207735. \fBPR\fP \fI\%#39654\fP: (\fI\%skizunov\fP) Fix issue where compile_pillar failure causes minion to exit
  207736. @ \fI2017\-02\-24 22:47:52 UTC\fP
  207737. .INDENT 2.0
  207738. .IP \(bu 2
  207739. be9629b180 Merge pull request \fI\%#39654\fP from skizunov/develop2
  207740. .IP \(bu 2
  207741. 9f80bbce07 Fix issue where compile_pillar failure causes minion to exit
  207742. .UNINDENT
  207743. .IP \(bu 2
  207744. \fBPR\fP \fI\%#39653\fP: (\fI\%cachedout\fP) Use salt\(aqs ordereddict for comparison
  207745. @ \fI2017\-02\-24 22:46:24 UTC\fP
  207746. .INDENT 2.0
  207747. .IP \(bu 2
  207748. e63cbbaab9 Merge pull request \fI\%#39653\fP from cachedout/26_odict
  207749. .IP \(bu 2
  207750. 91eb7210bb Use salt\(aqs ordereddict for comparison
  207751. .UNINDENT
  207752. .IP \(bu 2
  207753. \fBISSUE\fP \fI\%#38836\fP: (\fI\%toanctruong\fP) file.managed with S3 Source errors out with obscure message (refs: \fI\%#39609\fP, \fI\%#39589\fP)
  207754. .IP \(bu 2
  207755. \fBPR\fP \fI\%#39609\fP: (\fI\%gtmanfred\fP) intialize the Client stuff in FSClient
  207756. @ \fI2017\-02\-24 18:50:55 UTC\fP
  207757. .INDENT 2.0
  207758. .IP \(bu 2
  207759. 0bc6027e68 Merge pull request \fI\%#39609\fP from gtmanfred/2016.11
  207760. .IP \(bu 2
  207761. 0820620ef8 intialize the Client stuff in FSClient
  207762. .UNINDENT
  207763. .IP \(bu 2
  207764. \fBPR\fP \fI\%#39615\fP: (\fI\%skizunov\fP) Bonjour/Avahi beacons: Make sure TXT record length is valid
  207765. @ \fI2017\-02\-24 18:47:05 UTC\fP
  207766. .INDENT 2.0
  207767. .IP \(bu 2
  207768. 28035c07b3 Merge pull request \fI\%#39615\fP from skizunov/develop2
  207769. .IP \(bu 2
  207770. b1c7e9b505 Bonjour/Avahi beacons: Make sure TXT record length is valid
  207771. .UNINDENT
  207772. .IP \(bu 2
  207773. \fBPR\fP \fI\%#39617\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207774. @ \fI2017\-02\-24 16:07:55 UTC\fP
  207775. .INDENT 2.0
  207776. .IP \(bu 2
  207777. e9410fb669 Merge pull request \fI\%#39617\fP from rallytime/merge\-2016.11
  207778. .IP \(bu 2
  207779. 13622899d2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207780. .IP \(bu 2
  207781. 4e2b852f83 Merge pull request \fI\%#39600\fP from vutny/state\-file\-docs
  207782. .INDENT 2.0
  207783. .IP \(bu 2
  207784. 9b0427c27a state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  207785. .UNINDENT
  207786. .IP \(bu 2
  207787. ed83420417 Merge pull request \fI\%#39584\fP from cachedout/mentionbot_docs
  207788. .INDENT 2.0
  207789. .IP \(bu 2
  207790. 652044b18f A note in the docs about mentionbot
  207791. .UNINDENT
  207792. .IP \(bu 2
  207793. d3e50b4f2f Merge pull request \fI\%#39583\fP from cachedout/mentionbot_blacklist
  207794. .INDENT 2.0
  207795. .IP \(bu 2
  207796. 62491c900d Add empty blacklist to mention bot
  207797. .UNINDENT
  207798. .UNINDENT
  207799. .IP \(bu 2
  207800. \fBISSUE\fP \fI\%#38758\fP: (\fI\%bobrik\fP) Remote state execution is much slower on 2016.11.1 compared to 2016.3.4 (refs: \fI\%#39505\fP)
  207801. .IP \(bu 2
  207802. \fBISSUE\fP \fI\%#33575\fP: (\fI\%anlutro\fP) File states seem slower in 2016.3, especially on first cache retrieval (refs: \fI\%#33896\fP)
  207803. .IP \(bu 2
  207804. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  207805. .IP \(bu 2
  207806. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  207807. .IP \(bu 2
  207808. \fBPR\fP \fI\%#39505\fP: (\fI\%cachedout\fP) Threadsafety option for context dictionaries
  207809. @ \fI2017\-02\-23 19:38:13 UTC\fP
  207810. .INDENT 2.0
  207811. .IP \(bu 2
  207812. \fBPR\fP \fI\%#37378\fP: (\fI\%skizunov\fP) Fix \fI__context__\fP to properly sandbox (refs: \fI\%#39505\fP)
  207813. .IP \(bu 2
  207814. \fBPR\fP \fI\%#33896\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt deep copy context dict values. (refs: \fI\%#39505\fP)
  207815. .IP \(bu 2
  207816. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#33896\fP)
  207817. .IP \(bu 2
  207818. 0d31201e08 Merge pull request \fI\%#39505\fP from cachedout/issue_38758
  207819. .IP \(bu 2
  207820. 1dba2f9cb0 Add warning in docs
  207821. .IP \(bu 2
  207822. 9cf654b72c Threadsafety option for context dictionaries
  207823. .UNINDENT
  207824. .IP \(bu 2
  207825. \fBPR\fP \fI\%#39507\fP: (\fI\%joe\-niland\fP) Detect IIS version and vary certificate association command depending on version
  207826. @ \fI2017\-02\-23 19:15:40 UTC\fP
  207827. .INDENT 2.0
  207828. .IP \(bu 2
  207829. c0d4357f46 Merge pull request \fI\%#39507\fP from joe\-niland/iis\-7\-cert\-binding
  207830. .IP \(bu 2
  207831. c94f0b8c62 Fix additional issue whereby existing certificate bindings were not found in IIS 7.5, due to the fact that IIS earlier than 8 doesn\(aqt support SNI
  207832. .IP \(bu 2
  207833. 18effe0103 Detect IIS version and vary certificate association command depending on version
  207834. .UNINDENT
  207835. .IP \(bu 2
  207836. \fBPR\fP \fI\%#39565\fP: (\fI\%terminalmage\fP) states.file.patch/modules.file.check_hash: use hash length to determine type
  207837. @ \fI2017\-02\-23 19:14:28 UTC\fP
  207838. .INDENT 2.0
  207839. .IP \(bu 2
  207840. e6f5e8a474 Merge pull request \fI\%#39565\fP from terminalmage/issue39512
  207841. .IP \(bu 2
  207842. cbdf905b9f Update test to reflect new state comment
  207843. .IP \(bu 2
  207844. 650dbaca4e states.file.patch/modules.file.check_hash: use hash length to determine type
  207845. .UNINDENT
  207846. .IP \(bu 2
  207847. \fBPR\fP \fI\%#39591\fP: (\fI\%mcalmer\fP) fix case in os_family for Suse
  207848. @ \fI2017\-02\-23 19:07:17 UTC\fP
  207849. .INDENT 2.0
  207850. .IP \(bu 2
  207851. 53e22b8f15 Merge pull request \fI\%#39591\fP from mcalmer/fix\-case\-in\-os_family
  207852. .IP \(bu 2
  207853. 81bd96e32d fix case in os_family for Suse
  207854. .UNINDENT
  207855. .IP \(bu 2
  207856. \fBISSUE\fP \fI\%#38452\fP: (\fI\%jf\fP) file.line with mode=delete does not preserve ownership of a file (refs: \fI\%#39592\fP)
  207857. .IP \(bu 2
  207858. \fBPR\fP \fI\%#39592\fP: (\fI\%skazi0\fP) Ensure user/group/file_mode after line edit
  207859. @ \fI2017\-02\-23 18:40:05 UTC\fP
  207860. .INDENT 2.0
  207861. .IP \(bu 2
  207862. aee43f7fa4 Merge pull request \fI\%#39592\fP from skazi0/line\-user\-fix
  207863. .IP \(bu 2
  207864. baf84b4430 Ensure user/group/file_mode after line edit
  207865. .UNINDENT
  207866. .IP \(bu 2
  207867. \fBPR\fP \fI\%#39596\fP: (\fI\%ticosax\fP) Reduce scope of try except StopIteration wrapping
  207868. @ \fI2017\-02\-23 18:16:17 UTC\fP
  207869. .INDENT 2.0
  207870. .IP \(bu 2
  207871. 6ab4151213 Merge pull request \fI\%#39596\fP from ticosax/reduce\-scope\-catehed\-exception
  207872. .IP \(bu 2
  207873. 54cdacb680 Reduce scope of try except StopIteration wrapping
  207874. .UNINDENT
  207875. .IP \(bu 2
  207876. \fBISSUE\fP \fI\%#38836\fP: (\fI\%toanctruong\fP) file.managed with S3 Source errors out with obscure message (refs: \fI\%#39609\fP, \fI\%#39589\fP)
  207877. .IP \(bu 2
  207878. \fBPR\fP \fI\%#39610\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39589\fP to 2016.11
  207879. @ \fI2017\-02\-23 17:48:03 UTC\fP
  207880. .INDENT 2.0
  207881. .IP \(bu 2
  207882. \fBPR\fP \fI\%#39589\fP: (\fI\%MasterNayru\fP) Allow masterless minions to pull files from S3 (refs: \fI\%#39610\fP)
  207883. .IP \(bu 2
  207884. b1c3b84862 Merge pull request \fI\%#39610\fP from rallytime/bp\-39589
  207885. .IP \(bu 2
  207886. 83ec174d44 Set utils property explicitly for FSClient
  207887. .IP \(bu 2
  207888. 3889006149 Allow masterless minions to pull files from S3
  207889. .UNINDENT
  207890. .IP \(bu 2
  207891. \fBPR\fP \fI\%#39606\fP: (\fI\%rallytime\fP) [2016.11] Pylint: add missing import
  207892. @ \fI2017\-02\-23 16:39:55 UTC\fP
  207893. .INDENT 2.0
  207894. .IP \(bu 2
  207895. fe15ed9b92 Merge pull request \fI\%#39606\fP from rallytime/lint\-2016.11
  207896. .IP \(bu 2
  207897. 71164348e7 [2016.11] Pylint: add missing import
  207898. .UNINDENT
  207899. .IP \(bu 2
  207900. \fBPR\fP \fI\%#39573\fP: (\fI\%thatch45\fP) Added a few more comments to the ssl docs
  207901. @ \fI2017\-02\-23 02:17:13 UTC\fP
  207902. .INDENT 2.0
  207903. .IP \(bu 2
  207904. \fBPR\fP \fI\%#39554\fP: (\fI\%DmitryKuzmenko\fP) Cosmetic: support bool value for \(aqssl\(aq config option. (refs: \fI\%#39573\fP)
  207905. .IP \(bu 2
  207906. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  207907. .IP \(bu 2
  207908. 5987c4e30e Merge pull request \fI\%#39573\fP from thatch45/ssl_docs
  207909. .IP \(bu 2
  207910. b230c35eac This should be good to go now
  207911. .UNINDENT
  207912. .IP \(bu 2
  207913. \fBPR\fP \fI\%#39577\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  207914. @ \fI2017\-02\-23 02:10:12 UTC\fP
  207915. .INDENT 2.0
  207916. .IP \(bu 2
  207917. b8e321cbec Merge pull request \fI\%#39577\fP from rallytime/merge\-2016.11
  207918. .IP \(bu 2
  207919. 397c756a01 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207920. .INDENT 2.0
  207921. .IP \(bu 2
  207922. 8352e6b44b Merge pull request \fI\%#39579\fP from rallytime/fix\-lint
  207923. .INDENT 2.0
  207924. .IP \(bu 2
  207925. 65889e1f30 [2016.3] Pylint: Remove unused import
  207926. .UNINDENT
  207927. .IP \(bu 2
  207928. 43dba3254c Merge pull request \fI\%#39578\fP from cachedout/2016.3
  207929. .INDENT 2.0
  207930. .IP \(bu 2
  207931. 344499eef7 Add mention\-bot configuration
  207932. .UNINDENT
  207933. .UNINDENT
  207934. .IP \(bu 2
  207935. c52cecd856 Fix syntax error leftover from incomplete merge\-conflict resolution
  207936. .IP \(bu 2
  207937. 7b9b3f700d Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  207938. .INDENT 2.0
  207939. .IP \(bu 2
  207940. 8f7a0f9d96 Merge pull request \fI\%#39542\fP from twangboy/gate_ssh_known_hosts
  207941. .INDENT 2.0
  207942. .IP \(bu 2
  207943. c90a52ef27 Remove expensive check
  207944. .IP \(bu 2
  207945. 6d645cae0e Add __virtual__ function
  207946. .UNINDENT
  207947. .IP \(bu 2
  207948. c10965833a Merge pull request \fI\%#39289\fP from bobrik/autodetect\-ipv6
  207949. .INDENT 2.0
  207950. .IP \(bu 2
  207951. 2761a1b244 Move new kwargs to the end of argument list
  207952. .IP \(bu 2
  207953. 0df6b922e7 Narrow down connection exception to socket.error
  207954. .IP \(bu 2
  207955. e8a2cc0488 Do no try to connect to salt master in syndic config test
  207956. .IP \(bu 2
  207957. af9578631e Properly log address that failed to resolve or pass connection check
  207958. .IP \(bu 2
  207959. 9a34fbeba9 Actually connect to master instead of checking route availability
  207960. .IP \(bu 2
  207961. c494839c65 Avoid bare exceptions in dns_check
  207962. .IP \(bu 2
  207963. 29f376676d Rewrite dns_check to try to connect to address
  207964. .IP \(bu 2
  207965. 55965ce505 Autodetect IPv6 connectivity from minion to master
  207966. .UNINDENT
  207967. .IP \(bu 2
  207968. 3fb928b63a Merge pull request \fI\%#39569\fP from s0undt3ch/2016.3
  207969. .INDENT 2.0
  207970. .IP \(bu 2
  207971. 49da135abd Don\(aqt use our own six dictionary fixes in this branch
  207972. .UNINDENT
  207973. .IP \(bu 2
  207974. 91e3319df8 Merge pull request \fI\%#39508\fP from dincamihai/openscap
  207975. .INDENT 2.0
  207976. .IP \(bu 2
  207977. 9fedb84607 Always return oscap\(aqs stderr
  207978. .IP \(bu 2
  207979. 0ecde2cd02 Include oscap returncode in response
  207980. .UNINDENT
  207981. .IP \(bu 2
  207982. fbe2194a93 Merge pull request \fI\%#39562\fP from terminalmage/issue30802
  207983. .INDENT 2.0
  207984. .IP \(bu 2
  207985. c50374041d Add ulimits to dockerng state/exec module
  207986. .IP \(bu 2
  207987. da42040c1a Try the docker\-py 2.0 client name first
  207988. .UNINDENT
  207989. .IP \(bu 2
  207990. 01d4a84a2f dockerng.get_client_args: Fix path for endpoint config for some versions of docker\-py (\fI\%#39544\fP)
  207991. .UNINDENT
  207992. .UNINDENT
  207993. .IP \(bu 2
  207994. \fBPR\fP \fI\%#39574\fP: (\fI\%Ch3LL\fP) Update 2016.11.3 release notes
  207995. @ \fI2017\-02\-23 00:10:23 UTC\fP
  207996. .INDENT 2.0
  207997. .IP \(bu 2
  207998. cff9334929 Merge pull request \fI\%#39574\fP from Ch3LL/update_release_notes
  207999. .IP \(bu 2
  208000. c0f8c35df7 fix reference to set in docs
  208001. .IP \(bu 2
  208002. 663f6f159d add additional PRs to 2016.11.3 release notes
  208003. .UNINDENT
  208004. .IP \(bu 2
  208005. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  208006. @ \fI2017\-02\-22 18:29:47 UTC\fP
  208007. .INDENT 2.0
  208008. .IP \(bu 2
  208009. b492f7094c Merge pull request \fI\%#39528\fP from thatch45/ssl_docs
  208010. .IP \(bu 2
  208011. c357e37831 Add minion config
  208012. .IP \(bu 2
  208013. 539bb2aa80 Add better ssl option docs
  208014. .UNINDENT
  208015. .IP \(bu 2
  208016. \fBISSUE\fP \fI\%saltstack/salt#35869\fP: (\fI\%amontalban\fP) timezone.system state fails on FreeBSD when /etc/localtime does not exists (refs: \fI\%#39532\fP)
  208017. .IP \(bu 2
  208018. \fBPR\fP \fI\%#39532\fP: (\fI\%amontalban\fP) Fix case when /etc/localtime is a file and it is not updated
  208019. @ \fI2017\-02\-22 18:28:54 UTC\fP
  208020. .INDENT 2.0
  208021. .IP \(bu 2
  208022. 0dad49cdff Merge pull request \fI\%#39532\fP from amontalban/corner_case_35869
  208023. .IP \(bu 2
  208024. f0d3c16547 Fix case when /etc/localtime is a file and it is not updated
  208025. .UNINDENT
  208026. .IP \(bu 2
  208027. \fBPR\fP \fI\%#39540\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208028. @ \fI2017\-02\-22 18:24:01 UTC\fP
  208029. .INDENT 2.0
  208030. .IP \(bu 2
  208031. 9cfaf3b599 Merge pull request \fI\%#39540\fP from rallytime/merge\-2016.11
  208032. .IP \(bu 2
  208033. 49fe4e891e Merge branch \(aq2016.11\(aq into \(aq2016.11\(aq
  208034. .IP \(bu 2
  208035. c613d19e76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208036. .IP \(bu 2
  208037. dff35b58f8 Merge pull request \fI\%#39498\fP from terminalmage/pr\-39483
  208038. .INDENT 2.0
  208039. .IP \(bu 2
  208040. 20b097a745 dockerng: compare sets instead of lists of security_opt
  208041. .UNINDENT
  208042. .IP \(bu 2
  208043. 6418e725ed Merge pull request \fI\%#39497\fP from terminalmage/docker\-compat\-fixes
  208044. .INDENT 2.0
  208045. .IP \(bu 2
  208046. cbd0270bac docker: make docker\-exec the default execution driver
  208047. .IP \(bu 2
  208048. a6a17d58aa Handle docker\-py 2.0\(aqs new host_config path
  208049. .UNINDENT
  208050. .IP \(bu 2
  208051. 9c4292fb4e Merge pull request \fI\%#39423\fP from dincamihai/openscap
  208052. .INDENT 2.0
  208053. .IP \(bu 2
  208054. 9d13422ac1 OpenSCAP module
  208055. .UNINDENT
  208056. .IP \(bu 2
  208057. 7dd2502360 Merge pull request \fI\%#39464\fP from gtmanfred/2016.3
  208058. .INDENT 2.0
  208059. .IP \(bu 2
  208060. f829d6f9fc skip false values from preferred_ip
  208061. .UNINDENT
  208062. .IP \(bu 2
  208063. db359ff2c3 Merge pull request \fI\%#39460\fP from cachedout/win_dism_test_fix
  208064. .INDENT 2.0
  208065. .IP \(bu 2
  208066. e652a45592 Fix mocks in win_disim tests
  208067. .UNINDENT
  208068. .IP \(bu 2
  208069. 9dbfba9b57 Merge pull request \fI\%#39426\fP from morganwillcock/dism
  208070. .INDENT 2.0
  208071. .IP \(bu 2
  208072. a7d5118262 Return failure when package path does not exist
  208073. .UNINDENT
  208074. .IP \(bu 2
  208075. 56162706e3 Merge pull request \fI\%#39431\fP from UtahDave/fix_grains.setval_performance
  208076. .INDENT 2.0
  208077. .IP \(bu 2
  208078. 391bbecd90 add docs
  208079. .IP \(bu 2
  208080. 709c197f84 allow sync_grains to be disabled on grains.setval
  208081. .UNINDENT
  208082. .IP \(bu 2
  208083. 239e16e612 Merge pull request \fI\%#39405\fP from rallytime/fix\-39304
  208084. .INDENT 2.0
  208085. .IP \(bu 2
  208086. bd1fe03ce7 Update :depends: docs for boto states and modules
  208087. .UNINDENT
  208088. .IP \(bu 2
  208089. 415102f346 Merge pull request \fI\%#39411\fP from rallytime/fix\-38762
  208090. .INDENT 2.0
  208091. .IP \(bu 2
  208092. e13febe58d Update external_cache docs with other configuration options
  208093. .UNINDENT
  208094. .IP \(bu 2
  208095. 7e1803b617 Update docs on upstream EPEL7 pygit2/libgit2 issues (\fI\%#39421\fP)
  208096. .UNINDENT
  208097. .IP \(bu 2
  208098. \fBPR\fP \fI\%#39554\fP: (\fI\%DmitryKuzmenko\fP) Cosmetic: support bool value for \(aqssl\(aq config option. (refs: \fI\%#39573\fP)
  208099. @ \fI2017\-02\-22 16:59:03 UTC\fP
  208100. .INDENT 2.0
  208101. .IP \(bu 2
  208102. \fBPR\fP \fI\%#39528\fP: (\fI\%thatch45\fP) Add better ssl option docs (refs: \fI\%#39554\fP)
  208103. .IP \(bu 2
  208104. 56fe2f198e Merge pull request \fI\%#39554\fP from DSRCorporation/bugs/ssl_bool
  208105. .IP \(bu 2
  208106. 7a6fc11291 Cosmetic: support bool value for \(aqssl\(aq config option.
  208107. .UNINDENT
  208108. .IP \(bu 2
  208109. \fBPR\fP \fI\%#39560\fP: (\fI\%vutny\fP) [CLOUD] Log error when private/public IP was not detected
  208110. @ \fI2017\-02\-22 16:49:46 UTC\fP
  208111. .INDENT 2.0
  208112. .IP \(bu 2
  208113. cf37f83565 Merge pull request \fI\%#39560\fP from vutny/cloud\-detect\-ips
  208114. .IP \(bu 2
  208115. 567bb50884 [CLOUD] Log error when private/public IP was not detected
  208116. .UNINDENT
  208117. .UNINDENT
  208118. .SS Salt 2016.11.5 Release Notes
  208119. .sp
  208120. Version 2016.11.5 is a bugfix release for 2016.11.0\&.
  208121. .SS Statistics
  208122. .INDENT 0.0
  208123. .IP \(bu 2
  208124. Total Merges: \fB82\fP
  208125. .IP \(bu 2
  208126. Total Issue References: \fB23\fP
  208127. .IP \(bu 2
  208128. Total PR References: \fB80\fP
  208129. .IP \(bu 2
  208130. Contributors: \fB32\fP (\fI\%BenoitKnecht\fP, \fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%Enquier\fP, \fI\%SolarisYan\fP, \fI\%UtahDave\fP, \fI\%alexproca\fP, \fI\%benediktwerner\fP, \fI\%bobrik\fP, \fI\%brd\fP, \fI\%cachedout\fP, \fI\%clinta\fP, \fI\%corywright\fP, \fI\%cro\fP, \fI\%danlsgiga\fP, \fI\%drawsmcgraw\fP, \fI\%ezh\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jf\fP, \fI\%jleproust\fP, \fI\%lorengordon\fP, \fI\%nevins\-b\fP, \fI\%oeuftete\fP, \fI\%peter\-funktionIT\fP, \fI\%rallytime\fP, \fI\%rkgrunt\fP, \fI\%senthilkumar\-e\fP, \fI\%sjorge\fP, \fI\%skizunov\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP)
  208131. .UNINDENT
  208132. .SS Patched Packages
  208133. .sp
  208134. Due to the critical nature of issue \fI\%issue #41230\fP we have decided to patch the
  208135. 2016.11.5 packages with \fI\%PR #41244\fP\&. This issue affects all calls to a
  208136. salt\-minion if there is an ipv6 nameserver set on the minion\(aqs host. The
  208137. patched packages on repo.saltstack.com will divert from the v2016.11.5 tag and
  208138. pypi packages due to the patches applied to the packages.
  208139. .SS Changelog for v2016.11.4..v2016.11.5
  208140. .sp
  208141. \fIGenerated at: 2018\-05\-27 20:12:47 UTC\fP
  208142. .INDENT 0.0
  208143. .IP \(bu 2
  208144. \fBPR\fP \fI\%#41134\fP: (\fI\%twangboy\fP) Fix \fIpkg.install\fP on Windows on 2016.11
  208145. @ \fI2017\-05\-09 15:10:19 UTC\fP
  208146. .INDENT 2.0
  208147. .IP \(bu 2
  208148. a10f0146a4 Merge pull request \fI\%#41134\fP from twangboy/fix_get_msiexec
  208149. .IP \(bu 2
  208150. d808a60129 Remove redundant if statement
  208151. .IP \(bu 2
  208152. b4d6d5a927 Fix for version_num of None and Latest
  208153. .IP \(bu 2
  208154. 0f31822a83 Fix problem when use_msiexec is a bool
  208155. .UNINDENT
  208156. .IP \(bu 2
  208157. \fBISSUE\fP \fI\%#41100\fP: (\fI\%frogunder\fP) Exception occurred in runner jobs.list_jobs (refs: \fI\%#41102\fP)
  208158. .IP \(bu 2
  208159. \fBPR\fP \fI\%#41102\fP: (\fI\%gtmanfred\fP) don\(aqt pass jid to list_jobs
  208160. @ \fI2017\-05\-08 17:45:40 UTC\fP
  208161. .INDENT 2.0
  208162. .IP \(bu 2
  208163. 4ecab68bb9 Merge pull request \fI\%#41102\fP from gtmanfred/2016.11
  208164. .IP \(bu 2
  208165. 83057d0f0f don\(aqt pass jid to list_jobs
  208166. .IP \(bu 2
  208167. 505cb45722 Merge branch \(aqfix\-file\-blockreplace\-diff\-in\-test\-mode\(aq of \fI\%https://github.com/L4rS6/salt\fP into L4rS6\-fix\-file\-blockreplace\-diff\-in\-test\-mode
  208168. .IP \(bu 2
  208169. de9f66b448 show chanages in file.blockreplace function in testing mode. also used same programming style as in file.managed function: (ret[\(aqchanges\(aq][\(aqdiff\(aq] = ret[\(aqpchanges\(aq][\(aqdiff\(aq])
  208170. .UNINDENT
  208171. .IP \(bu 2
  208172. \fBPR\fP \fI\%#41103\fP: (\fI\%lorengordon\fP) Adds a get_route() function to win_network.py
  208173. @ \fI2017\-05\-06 06:19:42 UTC\fP
  208174. .INDENT 2.0
  208175. .IP \(bu 2
  208176. 2af89beb53 Merge pull request \fI\%#41103\fP from lorengordon/win.get_route
  208177. .IP \(bu 2
  208178. 93ce5644ea Adds test for win_network.get_route
  208179. .IP \(bu 2
  208180. b9cbbc0290 Adds a get_route() function to win_network.py
  208181. .UNINDENT
  208182. .IP \(bu 2
  208183. \fBPR\fP \fI\%#41098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41088\fP to 2016.11
  208184. @ \fI2017\-05\-05 19:04:03 UTC\fP
  208185. .INDENT 2.0
  208186. .IP \(bu 2
  208187. \fBPR\fP \fI\%#41088\fP: (\fI\%sjorge\fP) Fix docs for zfs state module (refs: \fI\%#41098\fP)
  208188. .IP \(bu 2
  208189. 2f9b5a4074 Merge pull request \fI\%#41098\fP from rallytime/bp\-41088
  208190. .IP \(bu 2
  208191. dc6cd2ea45 Fix docs for zfs state module
  208192. .UNINDENT
  208193. .IP \(bu 2
  208194. \fBPR\fP \fI\%#41097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41079\fP to 2016.11
  208195. @ \fI2017\-05\-05 19:03:43 UTC\fP
  208196. .INDENT 2.0
  208197. .IP \(bu 2
  208198. \fBPR\fP \fI\%#41079\fP: (\fI\%brd\fP) Remove an extra colon that is causing rendering issues (refs: \fI\%#41097\fP)
  208199. .IP \(bu 2
  208200. 2123001f32 Merge pull request \fI\%#41097\fP from rallytime/bp\-41079
  208201. .IP \(bu 2
  208202. 845b49c304 Remove and extra colon that is causing rendering issues
  208203. .UNINDENT
  208204. .IP \(bu 2
  208205. \fBPR\fP \fI\%#41093\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208206. @ \fI2017\-05\-05 17:22:09 UTC\fP
  208207. .INDENT 2.0
  208208. .IP \(bu 2
  208209. ff6fa2b120 Merge pull request \fI\%#41093\fP from rallytime/merge\-2016.11
  208210. .IP \(bu 2
  208211. a670eaa1db Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208212. .IP \(bu 2
  208213. 247400c44e Merge pull request \fI\%#41083\fP from rallytime/git\-state\-fix
  208214. .INDENT 2.0
  208215. .IP \(bu 2
  208216. b85ee48ff4 Git state: head_ref should be head_rev in "latest" function
  208217. .UNINDENT
  208218. .UNINDENT
  208219. .IP \(bu 2
  208220. \fBPR\fP \fI\%#41084\fP: (\fI\%rallytime\fP) Skip the test_salt_documentation_arguments_not_assumed test for Arch
  208221. @ \fI2017\-05\-04 21:56:29 UTC\fP
  208222. .INDENT 2.0
  208223. .IP \(bu 2
  208224. \fBPR\fP \fI\%#41074\fP: (\fI\%rallytime\fP) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch (refs: \fI\%#41084\fP)
  208225. .IP \(bu 2
  208226. 4c2e636cd1 Merge pull request \fI\%#41084\fP from rallytime/disable\-matcher\-test\-arch
  208227. .IP \(bu 2
  208228. da811fe505 Skip the correct test for the matcher tests in Arch
  208229. .IP \(bu 2
  208230. b9d1ce9aed Revert "Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch"
  208231. .UNINDENT
  208232. .IP \(bu 2
  208233. \fBPR\fP \fI\%#41069\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208234. @ \fI2017\-05\-04 20:34:58 UTC\fP
  208235. .INDENT 2.0
  208236. .IP \(bu 2
  208237. 1179720327 Merge pull request \fI\%#41069\fP from rallytime/merge\-2016.11
  208238. .IP \(bu 2
  208239. 08c58919cb Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208240. .INDENT 2.0
  208241. .IP \(bu 2
  208242. 69418092bd Merge pull request \fI\%#41070\fP from rallytime/lint\-2016.3
  208243. .INDENT 2.0
  208244. .IP \(bu 2
  208245. 486e2ba62e Pylint: remove extra line in mac_system module
  208246. .UNINDENT
  208247. .UNINDENT
  208248. .IP \(bu 2
  208249. db70b2d42e Pylint: remove extra line in mac_system module
  208250. .IP \(bu 2
  208251. 855d157aa6 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208252. .INDENT 2.0
  208253. .IP \(bu 2
  208254. 3101694d71 Merge pull request \fI\%#41048\fP from willkil/mac_system_non_root
  208255. .INDENT 2.0
  208256. .IP \(bu 2
  208257. b65b82a750 mac_system: return False for non\-root user
  208258. .UNINDENT
  208259. .UNINDENT
  208260. .UNINDENT
  208261. .IP \(bu 2
  208262. \fBPR\fP \fI\%#41074\fP: (\fI\%rallytime\fP) Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch (refs: \fI\%#41084\fP)
  208263. @ \fI2017\-05\-04 19:26:16 UTC\fP
  208264. .INDENT 2.0
  208265. .IP \(bu 2
  208266. 9d638abc62 Merge pull request \fI\%#41074\fP from rallytime/disable\-matcher\-test\-arch
  208267. .IP \(bu 2
  208268. 9eb482d5c7 Skip integration.shell.matcher.MatchTest.test_salt_documentation test for Arch
  208269. .UNINDENT
  208270. .IP \(bu 2
  208271. \fBPR\fP \fI\%#41078\fP: (\fI\%Ch3LL\fP) Add 2016.11.5 release notes and change log
  208272. @ \fI2017\-05\-04 19:00:58 UTC\fP
  208273. .INDENT 2.0
  208274. .IP \(bu 2
  208275. 72c854d9ac Merge pull request \fI\%#41078\fP from Ch3LL/add_2016.11.5_release
  208276. .IP \(bu 2
  208277. 96ed815687 Add 2016.11.5 release notes and change log
  208278. .UNINDENT
  208279. .IP \(bu 2
  208280. \fBPR\fP \fI\%#40879\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py
  208281. @ \fI2017\-05\-04 16:12:00 UTC\fP
  208282. .INDENT 2.0
  208283. .IP \(bu 2
  208284. eac8401e90 Merge pull request \fI\%#40879\fP from peter\-funktionIT/2016.11
  208285. .IP \(bu 2
  208286. 80fa9e5b76 Update win_pki.py
  208287. .IP \(bu 2
  208288. a48b05f158 Update win_pki.py
  208289. .IP \(bu 2
  208290. 3a4e6d9d91 Update win_pki.py
  208291. .UNINDENT
  208292. .IP \(bu 2
  208293. \fBISSUE\fP \fI\%#40928\fP: (\fI\%sokratisg\fP) Orchestration runner, highstate and environment question (refs: \fI\%#41036\fP)
  208294. .IP \(bu 2
  208295. \fBPR\fP \fI\%#41036\fP: (\fI\%terminalmage\fP) Do not force effective saltenv when running states via orchestration
  208296. @ \fI2017\-05\-04 15:44:14 UTC\fP
  208297. .INDENT 2.0
  208298. .IP \(bu 2
  208299. 547a9738db Merge pull request \fI\%#41036\fP from terminalmage/issue40928
  208300. .IP \(bu 2
  208301. 72ef34c420 Do not force effective saltenv when running states via orchestration
  208302. .UNINDENT
  208303. .IP \(bu 2
  208304. \fBPR\fP \fI\%#41039\fP: (\fI\%terminalmage\fP) Look for currently\-running python\(aqs pip first
  208305. @ \fI2017\-05\-04 15:43:52 UTC\fP
  208306. .INDENT 2.0
  208307. .IP \(bu 2
  208308. 6e2458e171 Merge pull request \fI\%#41039\fP from terminalmage/improve\-pip\-bin
  208309. .IP \(bu 2
  208310. effe8b9432 Look for currently\-running python\(aqs pip first
  208311. .UNINDENT
  208312. .IP \(bu 2
  208313. \fBPR\fP \fI\%#41049\fP: (\fI\%Ch3LL\fP) fix integration wheel test_gen test
  208314. @ \fI2017\-05\-04 15:33:59 UTC\fP
  208315. .INDENT 2.0
  208316. .IP \(bu 2
  208317. ff39613a53 Merge pull request \fI\%#41049\fP from Ch3LL/fix_wheel_test
  208318. .IP \(bu 2
  208319. ba223827b9 fix integration wheel test_gen test
  208320. .UNINDENT
  208321. .IP \(bu 2
  208322. \fBPR\fP \fI\%#41054\fP: (\fI\%terminalmage\fP) Update package targets for Arch pkg tests
  208323. @ \fI2017\-05\-04 14:59:42 UTC\fP
  208324. .INDENT 2.0
  208325. .IP \(bu 2
  208326. 4e4b3514b4 Merge pull request \fI\%#41054\fP from terminalmage/salt\-jenkins\-315
  208327. .IP \(bu 2
  208328. ee493bae47 Update package targets for Arch pkg tests
  208329. .UNINDENT
  208330. .IP \(bu 2
  208331. \fBPR\fP \fI\%#41046\fP: (\fI\%twangboy\fP) Fix pkg.remove
  208332. @ \fI2017\-05\-04 14:58:57 UTC\fP
  208333. .INDENT 2.0
  208334. .IP \(bu 2
  208335. 62dff52820 Merge pull request \fI\%#41046\fP from twangboy/fix_pkg_remove
  208336. .IP \(bu 2
  208337. 2af38e5564 Use target instead of version_num
  208338. .UNINDENT
  208339. .IP \(bu 2
  208340. \fBPR\fP \fI\%#41045\fP: (\fI\%terminalmage\fP) Clarify gitfs docs
  208341. @ \fI2017\-05\-03 22:24:55 UTC\fP
  208342. .INDENT 2.0
  208343. .IP \(bu 2
  208344. 2b47b7bec6 Merge pull request \fI\%#41045\fP from terminalmage/clarify\-gitfs\-docs
  208345. .IP \(bu 2
  208346. c757eda331 Clarify gitfs docs
  208347. .UNINDENT
  208348. .IP \(bu 2
  208349. \fBPR\fP \fI\%#41032\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208350. @ \fI2017\-05\-03 19:31:58 UTC\fP
  208351. .INDENT 2.0
  208352. .IP \(bu 2
  208353. 819007cd00 Merge pull request \fI\%#41032\fP from rallytime/merge\-2016.11
  208354. .IP \(bu 2
  208355. d26fd0bbf4 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208356. .INDENT 2.0
  208357. .IP \(bu 2
  208358. b00acb0034 Merge pull request \fI\%#41011\fP from terminalmage/docker\-refresh\-credentials
  208359. .INDENT 2.0
  208360. .IP \(bu 2
  208361. b8d1dcc307 Use proposed docker\-py reload_config() func
  208362. .UNINDENT
  208363. .UNINDENT
  208364. .UNINDENT
  208365. .IP \(bu 2
  208366. \fBISSUE\fP \fI\%#35699\fP: (\fI\%jleproust\fP) LVM state fails to add new device, volume group name is empty string (refs: \fI\%#41007\fP)
  208367. .IP \(bu 2
  208368. \fBPR\fP \fI\%#41007\fP: (\fI\%jleproust\fP) Recognize LVM2 pv with empty vg as orphan
  208369. @ \fI2017\-05\-03 18:24:51 UTC\fP
  208370. .INDENT 2.0
  208371. .IP \(bu 2
  208372. d7fbd38474 Merge pull request \fI\%#41007\fP from jleproust/fix_lvm_empty_vg
  208373. .IP \(bu 2
  208374. 3b9a845145 Recognize LVM2 pv with empty vg as orphan
  208375. .UNINDENT
  208376. .IP \(bu 2
  208377. \fBPR\fP \fI\%#41029\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38565\fP to 2016.11
  208378. @ \fI2017\-05\-03 17:05:10 UTC\fP
  208379. .INDENT 2.0
  208380. .IP \(bu 2
  208381. \fBPR\fP \fI\%#38565\fP: (\fI\%drawsmcgraw\fP) Update management of ip addresses for salt cloud azurearm module (refs: \fI\%#41029\fP)
  208382. .IP \(bu 2
  208383. 4eab962e9e Merge pull request \fI\%#41029\fP from rallytime/bp\-38565
  208384. .IP \(bu 2
  208385. 2df93ae3ab Update management of ip addresses. \- Assign static, private IP addresses. \- Ability to not assign a public IP to a VM.
  208386. .UNINDENT
  208387. .IP \(bu 2
  208388. \fBPR\fP \fI\%#41012\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208389. @ \fI2017\-05\-02 22:06:40 UTC\fP
  208390. .INDENT 2.0
  208391. .IP \(bu 2
  208392. 97500f078d Merge pull request \fI\%#41012\fP from rallytime/merge\-2016.11
  208393. .IP \(bu 2
  208394. fc756c595c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208395. .IP \(bu 2
  208396. 19894f68ca Merge pull request \fI\%#40724\fP from cro/minion_key_revoke_cfg
  208397. .INDENT 2.0
  208398. .IP \(bu 2
  208399. cbc70195c0 Change message level when minion requests key revoke and feature is turned off.
  208400. .IP \(bu 2
  208401. 65ea8997b7 Add allow_minion_key_revoke config option
  208402. .IP \(bu 2
  208403. 8920495943 Add config option to prevent minions from revoking their own keys.
  208404. .UNINDENT
  208405. .IP \(bu 2
  208406. 129859f79b Merge pull request \fI\%#40952\fP from terminalmage/fix\-dockerng.login\-docs
  208407. .INDENT 2.0
  208408. .IP \(bu 2
  208409. dfbbeb5946 Fix documentation for docker login function in pre\-nitrogen release branches
  208410. .UNINDENT
  208411. .UNINDENT
  208412. .IP \(bu 2
  208413. \fBPR\fP \fI\%#40726\fP: (\fI\%benediktwerner\fP) Fixed minion keys remaining pending after auto signing and fixed typo (Resubmitted to 2016.3)
  208414. @ \fI2017\-05\-02 16:57:34 UTC\fP
  208415. .INDENT 2.0
  208416. .IP \(bu 2
  208417. e210eaead4 Merge pull request \fI\%#40726\fP from benediktwerner/fix\-minions\-remain\-pending\-after\-autosign\-and\-typo
  208418. .IP \(bu 2
  208419. 82c144e960 Fixed minion keys remaining pending after auto signing and fixed typo
  208420. .UNINDENT
  208421. .IP \(bu 2
  208422. \fBPR\fP \fI\%#40960\fP: (\fI\%danlsgiga\fP) Fix consul module "AttributeError: \(aqdict\(aq object has no attribute \(aqjson\(aq"
  208423. @ \fI2017\-05\-02 16:16:57 UTC\fP
  208424. .INDENT 2.0
  208425. .IP \(bu 2
  208426. 4f342e2fe5 Merge pull request \fI\%#40960\fP from danlsgiga/2016.11
  208427. .IP \(bu 2
  208428. 6e4cc6db47 Fix consul module "AttributeError: \(aqdict\(aq object has no attribute \(aqjson\(aq"
  208429. .UNINDENT
  208430. .IP \(bu 2
  208431. \fBPR\fP \fI\%#40963\fP: (\fI\%twangboy\fP) Fix fullname parameter for add function
  208432. @ \fI2017\-05\-02 16:08:59 UTC\fP
  208433. .INDENT 2.0
  208434. .IP \(bu 2
  208435. c3b329b398 Merge pull request \fI\%#40963\fP from twangboy/fix_win_useradd
  208436. .IP \(bu 2
  208437. 5371b6b85e Fix fullname parameter for add function
  208438. .UNINDENT
  208439. .IP \(bu 2
  208440. \fBPR\fP \fI\%#40995\fP: (\fI\%twangboy\fP) Remove unused code fragments
  208441. @ \fI2017\-05\-02 15:31:58 UTC\fP
  208442. .INDENT 2.0
  208443. .IP \(bu 2
  208444. d79c033239 Merge pull request \fI\%#40995\fP from twangboy/remove_utils
  208445. .IP \(bu 2
  208446. 8c01aacd9b Remove unused code fragments
  208447. .UNINDENT
  208448. .IP \(bu 2
  208449. \fBISSUE\fP \fI\%#40981\fP: (\fI\%ezh\fP) docker\-events engine is broken with modern docker (refs: \fI\%#40982\fP)
  208450. .IP \(bu 2
  208451. \fBPR\fP \fI\%#40991\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40982\fP to 2016.11
  208452. @ \fI2017\-05\-01 22:31:30 UTC\fP
  208453. .INDENT 2.0
  208454. .IP \(bu 2
  208455. \fBPR\fP \fI\%#40982\fP: (\fI\%ezh\fP) Fix docker_events field handling (refs: \fI\%#40991\fP)
  208456. .IP \(bu 2
  208457. c6162876d6 Merge pull request \fI\%#40991\fP from rallytime/bp\-40982
  208458. .IP \(bu 2
  208459. 8fcb7205db Fix docker_events field handling
  208460. .UNINDENT
  208461. .IP \(bu 2
  208462. \fBISSUE\fP \fI\%#40965\fP: (\fI\%weirdbricks\fP) salt\-cloud sudo failing (refs: \fI\%#40987\fP)
  208463. .IP \(bu 2
  208464. \fBPR\fP \fI\%#40987\fP: (\fI\%gtmanfred\fP) get sudo_password correctly
  208465. @ \fI2017\-05\-01 19:39:55 UTC\fP
  208466. .INDENT 2.0
  208467. .IP \(bu 2
  208468. 3fb24929c6 Merge pull request \fI\%#40987\fP from gtmanfred/2016.11
  208469. .IP \(bu 2
  208470. 2ed694cac6 get sudo_password correctly
  208471. .UNINDENT
  208472. .IP \(bu 2
  208473. \fBISSUE\fP \fI\%#40988\fP: (\fI\%santzi\fP) status.netdev tx_bytes is always zero (refs: \fI\%#40992\fP)
  208474. .IP \(bu 2
  208475. \fBPR\fP \fI\%#40992\fP: (\fI\%gtmanfred\fP) fix bug in status.netdev
  208476. @ \fI2017\-05\-01 19:38:35 UTC\fP
  208477. .INDENT 2.0
  208478. .IP \(bu 2
  208479. ecbac138d1 Merge pull request \fI\%#40992\fP from gtmanfred/netdev
  208480. .IP \(bu 2
  208481. a9eed7f1c9 fix bug in status.netdev
  208482. .UNINDENT
  208483. .IP \(bu 2
  208484. \fBISSUE\fP \fI\%#40976\fP: (\fI\%sjorge\fP) smtp.send_msg state oddities (refs: \fI\%#40993\fP)
  208485. .IP \(bu 2
  208486. \fBPR\fP \fI\%#40993\fP: (\fI\%gtmanfred\fP) smtp state can use profile or sender
  208487. @ \fI2017\-05\-01 19:35:47 UTC\fP
  208488. .INDENT 2.0
  208489. .IP \(bu 2
  208490. d852320d34 Merge pull request \fI\%#40993\fP from gtmanfred/smtp
  208491. .IP \(bu 2
  208492. 068ebfd9ec smtp state can use profile or sender
  208493. .UNINDENT
  208494. .IP \(bu 2
  208495. \fBPR\fP \fI\%#40958\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40939\fP to 2016.11
  208496. @ \fI2017\-04\-28 18:01:17 UTC\fP
  208497. .INDENT 2.0
  208498. .IP \(bu 2
  208499. \fBPR\fP \fI\%#40939\fP: (\fI\%Ch3LL\fP) Allow vmware to query deploy arg from opts (refs: \fI\%#40958\fP)
  208500. .IP \(bu 2
  208501. fc26fb8a05 Merge pull request \fI\%#40958\fP from rallytime/bp\-40939
  208502. .IP \(bu 2
  208503. 3e9394862f allow vmware to query deploy arg from opts
  208504. .UNINDENT
  208505. .IP \(bu 2
  208506. \fBISSUE\fP \fI\%saltstack/salt#34640\fP: (\fI\%nevins\-b\fP) utils.shlex_split removing quotes which are required for augeas (refs: #\(gasaltstack/salt#34643\(ga_)
  208507. .INDENT 2.0
  208508. .IP \(bu 2
  208509. \fBPR\fP \fI\%saltstack/salt#34643\fP: (\fI\%nevins\-b\fP) fix augeas module so shlex doesn\(aqt strip quotes (refs: \fI\%#38115\fP)
  208510. .UNINDENT
  208511. .IP \(bu 2
  208512. \fBPR\fP \fI\%#40957\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38115\fP to 2016.11
  208513. @ \fI2017\-04\-28 18:01:02 UTC\fP
  208514. .INDENT 2.0
  208515. .IP \(bu 2
  208516. \fBPR\fP \fI\%#38115\fP: (\fI\%cro\fP) Revert "fix augeas module so shlex doesn\(aqt strip quotes" (refs: \fI\%#40957\fP)
  208517. .IP \(bu 2
  208518. a586e12180 Merge pull request \fI\%#40957\fP from rallytime/bp\-38115
  208519. .IP \(bu 2
  208520. eb889173b0 Revert "fix augeas module so shlex doesn\(aqt strip quotes"
  208521. .UNINDENT
  208522. .IP \(bu 2
  208523. \fBISSUE\fP \fI\%#40635\fP: (\fI\%promorphus\fP) Orchestrate + Batches returns false failed information (refs: \fI\%#40905\fP)
  208524. .IP \(bu 2
  208525. \fBPR\fP \fI\%#40905\fP: (\fI\%rkgrunt\fP) Fixed issue with parsing of master minion returns when batching is en…
  208526. @ \fI2017\-04\-28 17:52:32 UTC\fP
  208527. .INDENT 2.0
  208528. .IP \(bu 2
  208529. 00a15eba60 Merge pull request \fI\%#40905\fP from rkgrunt/40635
  208530. .IP \(bu 2
  208531. 4f9c92a012 Fixed issue with parsing of master minion returns when batching is enabled.
  208532. .UNINDENT
  208533. .IP \(bu 2
  208534. \fBPR\fP \fI\%#40954\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208535. @ \fI2017\-04\-28 16:41:49 UTC\fP
  208536. .INDENT 2.0
  208537. .IP \(bu 2
  208538. bb50d4f646 Merge pull request \fI\%#40954\fP from rallytime/merge\-2016.11
  208539. .IP \(bu 2
  208540. 7f31e41aa6 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208541. .IP \(bu 2
  208542. 55a399583e Merge pull request \fI\%#40930\fP from rallytime/bp\-40811
  208543. .INDENT 2.0
  208544. .IP \(bu 2
  208545. 3ccb553f9f get config_dir based off conf_file
  208546. .UNINDENT
  208547. .IP \(bu 2
  208548. 7bc01be859 Merge pull request \fI\%#40927\fP from terminalmage/docs
  208549. .INDENT 2.0
  208550. .IP \(bu 2
  208551. 8c078f144c Add additional note about quoting within load_yaml
  208552. .IP \(bu 2
  208553. 123b5cdc11 Add documentation for PyYAML\(aqs loading of time expressions
  208554. .UNINDENT
  208555. .IP \(bu 2
  208556. 7eab9c6cf4 Merge pull request \fI\%#40891\fP from terminalmage/pip\-installed
  208557. .INDENT 2.0
  208558. .IP \(bu 2
  208559. 75e6bc0aa3 Fix two issues with pip.install
  208560. .UNINDENT
  208561. .UNINDENT
  208562. .IP \(bu 2
  208563. \fBISSUE\fP \fI\%#39531\fP: (\fI\%ypid\fP) Use yaml.safe_* instead of yaml.load / yaml.dump / … (refs: \fI\%#40751\fP)
  208564. .IP \(bu 2
  208565. \fBPR\fP \fI\%#40751\fP: (\fI\%rallytime\fP) Use Salt\(aqs SaltYamlSafeLoader and SafeOrderedDumper classes for yaml.load/dump
  208566. @ \fI2017\-04\-28 12:56:06 UTC\fP
  208567. .INDENT 2.0
  208568. .IP \(bu 2
  208569. 909d519ddb Merge pull request \fI\%#40751\fP from rallytime/fix\-39531
  208570. .IP \(bu 2
  208571. 85dc4164f5 Don\(aqt change the salt.utils.jinja yaml Dumper class
  208572. .IP \(bu 2
  208573. 4fe6ac93c6 Add extra line for lint
  208574. .IP \(bu 2
  208575. 55cfa12975 Use salt.utils.yamldumper with SafeOderedDumper as the Dumper in yaml.dump
  208576. .IP \(bu 2
  208577. 62c4d37c2f Use salt.utils.yamlloader with SaltYamlSafeLoader as the Loader with yaml.load
  208578. .UNINDENT
  208579. .IP \(bu 2
  208580. \fBISSUE\fP \fI\%#37307\fP: (\fI\%szjur\fP) Minions run every job twice and open 2 connections to the same syndic \- apparently after reconnection between masters (refs: \fI\%#40861\fP)
  208581. .IP \(bu 2
  208582. \fBPR\fP \fI\%#40861\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt run status.master while minion is failing\-over.
  208583. @ \fI2017\-04\-28 12:14:56 UTC\fP
  208584. .INDENT 2.0
  208585. .IP \(bu 2
  208586. 18fdd8cc34 Merge pull request \fI\%#40861\fP from DSRCorporation/bugs/37307_minion_run_jobs_twice
  208587. .IP \(bu 2
  208588. f0d46d04af Don\(aqt run status.master while minion is failing\-over.
  208589. .UNINDENT
  208590. .IP \(bu 2
  208591. \fBPR\fP \fI\%#40923\fP: (\fI\%terminalmage\fP) aptpkg: fix temp pkg unhold when version is specified
  208592. @ \fI2017\-04\-28 11:59:54 UTC\fP
  208593. .INDENT 2.0
  208594. .IP \(bu 2
  208595. 62cb7b1ae6 Merge pull request \fI\%#40923\fP from terminalmage/aptpkg\-install\-fix\-unhold
  208596. .IP \(bu 2
  208597. 6dda4f2bc3 aptpkg: fix temp pkg unhold when version is specified
  208598. .UNINDENT
  208599. .IP \(bu 2
  208600. \fBISSUE\fP \fI\%#40908\fP: (\fI\%nicksloan\fP) If master_port is a string the minion cannot connect and prints an unhelpful error message (refs: \fI\%#40933\fP)
  208601. .IP \(bu 2
  208602. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP)
  208603. .IP \(bu 2
  208604. \fBPR\fP \fI\%#40933\fP: (\fI\%gtmanfred\fP) allow master_port to be a string
  208605. @ \fI2017\-04\-28 11:54:58 UTC\fP
  208606. .INDENT 2.0
  208607. .IP \(bu 2
  208608. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#40933\fP)
  208609. .IP \(bu 2
  208610. 9d92ba7878 Merge pull request \fI\%#40933\fP from gtmanfred/2016.11
  208611. .IP \(bu 2
  208612. 194423c08e allow master_port to be a string
  208613. .UNINDENT
  208614. .IP \(bu 2
  208615. \fBISSUE\fP \fI\%#40912\fP: (\fI\%razed11\fP) IPV6 Warning when ipv6 set to False (refs: \fI\%#40934\fP)
  208616. .IP \(bu 2
  208617. \fBPR\fP \fI\%#40934\fP: (\fI\%gtmanfred\fP) Only display IPvX warning if role is master
  208618. @ \fI2017\-04\-28 11:53:50 UTC\fP
  208619. .INDENT 2.0
  208620. .IP \(bu 2
  208621. d5e0b8b655 Merge pull request \fI\%#40934\fP from gtmanfred/ipv6
  208622. .IP \(bu 2
  208623. 7855cd6ce6 Only display IPvX warning if role is master
  208624. .UNINDENT
  208625. .IP \(bu 2
  208626. \fBISSUE\fP \fI\%#40881\fP: (\fI\%stamak\fP) 2016.11 SoftLayer salt\-cloud driver connects on private IP instead of public IP (refs: \fI\%#40935\fP)
  208627. .IP \(bu 2
  208628. \fBPR\fP \fI\%#40935\fP: (\fI\%gtmanfred\fP) Attempt to connect to public ip address in softlayer
  208629. @ \fI2017\-04\-28 11:43:57 UTC\fP
  208630. .INDENT 2.0
  208631. .IP \(bu 2
  208632. 8fdfe4ece6 Merge pull request \fI\%#40935\fP from gtmanfred/softlayer
  208633. .IP \(bu 2
  208634. d6eb11410f Attempt to connect to public ip address in softlayer
  208635. .UNINDENT
  208636. .IP \(bu 2
  208637. \fBPR\fP \fI\%#40936\fP: (\fI\%terminalmage\fP) Add dockerng fixes to 2016.11.4 release notes
  208638. @ \fI2017\-04\-27 19:54:16 UTC\fP
  208639. .INDENT 2.0
  208640. .IP \(bu 2
  208641. 7404309bec Merge pull request \fI\%#40936\fP from terminalmage/release_notes
  208642. .IP \(bu 2
  208643. e494ae43e5 Add dockerng fixes to 2016.11.4 release notes
  208644. .UNINDENT
  208645. .IP \(bu 2
  208646. \fBISSUE\fP \fI\%#33093\fP: (\fI\%gtmanfred\fP) [salt\-cloud][nova] race condition when assigning floating ips to cloud servers (refs: \fI\%#37696\fP)
  208647. .IP \(bu 2
  208648. \fBPR\fP \fI\%#40929\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37696\fP to 2016.11
  208649. @ \fI2017\-04\-27 17:43:26 UTC\fP
  208650. .INDENT 2.0
  208651. .IP \(bu 2
  208652. \fBPR\fP \fI\%#37696\fP: (\fI\%SolarisYan\fP) if vm state is not ACTIVE, it will fail (refs: \fI\%#40929\fP)
  208653. .IP \(bu 2
  208654. a622518ad2 Merge pull request \fI\%#40929\fP from rallytime/bp\-37696
  208655. .IP \(bu 2
  208656. 1a28722c5a Pylint fix
  208657. .IP \(bu 2
  208658. 8e0a9864c5 if vm state is not ACTIVE, associate floating ip to it will fail.So we should wait for state of vm is ACTIVE,then associate the assigned floating ip to it
  208659. .UNINDENT
  208660. .IP \(bu 2
  208661. \fBPR\fP \fI\%#40921\fP: (\fI\%corywright\fP) Make salt.auth.rest heading consistent with all other salt.auth documentation
  208662. @ \fI2017\-04\-27 17:36:47 UTC\fP
  208663. .INDENT 2.0
  208664. .IP \(bu 2
  208665. f88ce8e4de Merge pull request \fI\%#40921\fP from corywright/consistent\-salt\-auth\-headings
  208666. .IP \(bu 2
  208667. 2995a05c2b Make salt.auth.rest heading consistent with all other salt.auth documentation
  208668. .UNINDENT
  208669. .IP \(bu 2
  208670. \fBISSUE\fP \fI\%#37824\fP: (\fI\%dxiri\fP) SSLError Trying to use v3 API of Openstack Newton as provider. (refs: \fI\%#40752\fP)
  208671. .IP \(bu 2
  208672. \fBPR\fP \fI\%#40752\fP: (\fI\%Enquier\fP) Add ability to specify a custom SSL certificate or disable SSL verification in KeystoneAuth v3
  208673. @ \fI2017\-04\-27 17:29:09 UTC\fP
  208674. .INDENT 2.0
  208675. .IP \(bu 2
  208676. 26be306b5c Merge pull request \fI\%#40752\fP from Enquier/nova_ssl_2
  208677. .IP \(bu 2
  208678. 817f49296e fixing lint errors in keystone auth error
  208679. .IP \(bu 2
  208680. f683636c61 fix trailing whitespace
  208681. .IP \(bu 2
  208682. 4a70b8c0cc fixing minor error in security_groups security groups parser had incorrect split action which caused errors
  208683. .IP \(bu 2
  208684. c9d6f8e5ed adding note in documentation
  208685. .IP \(bu 2
  208686. c24dfe3fba adding support for cacert verification
  208687. .IP \(bu 2
  208688. bfaf5e322d Merge pull request \fI\%#5\fP from saltstack/2016.11
  208689. .UNINDENT
  208690. .IP \(bu 2
  208691. \fBISSUE\fP \fI\%#40845\fP: (\fI\%e\-senthilkumar\fP) /jobs call is broken in 2016.11.4 (refs: \fI\%#40894\fP)
  208692. .IP \(bu 2
  208693. \fBPR\fP \fI\%#40894\fP: (\fI\%senthilkumar\-e\fP) Fix for broken /jobs/<jid> in 2016.11.4
  208694. @ \fI2017\-04\-27 11:33:00 UTC\fP
  208695. .INDENT 2.0
  208696. .IP \(bu 2
  208697. 0f2ec1e1db Merge pull request \fI\%#40894\fP from senthilkumar\-e/broken_jobs_api_fix
  208698. .IP \(bu 2
  208699. 2f55b26e08 Fixing the pylint issue
  208700. .IP \(bu 2
  208701. fb607bab75 Fix for broken /jobs/<jid> in 2016.11.4
  208702. .UNINDENT
  208703. .IP \(bu 2
  208704. \fBPR\fP \fI\%#40876\fP: (\fI\%BenoitKnecht\fP) states: sqlite3: fix table_present with multi\-line schema
  208705. @ \fI2017\-04\-26 15:21:19 UTC\fP
  208706. .INDENT 2.0
  208707. .IP \(bu 2
  208708. ea55c15367 Merge pull request \fI\%#40876\fP from BenoitKnecht/fix\-sqlite3\-table\-present\-with\-multiline\-schema
  208709. .IP \(bu 2
  208710. 2ca627d02d states: sqlite3: fix table_present with multi\-line schema
  208711. .UNINDENT
  208712. .IP \(bu 2
  208713. \fBISSUE\fP \fI\%#40741\fP: (\fI\%clinta\fP) Regression in 2016.11.3. File.managed downloads every time. (refs: \fI\%#40742\fP)
  208714. .IP \(bu 2
  208715. \fBPR\fP \fI\%#40742\fP: (\fI\%clinta\fP) Fix \fI\%#40741\fP
  208716. @ \fI2017\-04\-25 22:52:06 UTC\fP
  208717. .INDENT 2.0
  208718. .IP \(bu 2
  208719. e09bafdceb Merge pull request \fI\%#40742\fP from clinta/40741
  208720. .IP \(bu 2
  208721. 72bf5af9e6 Set sfn if cached_sum == source_sum
  208722. .UNINDENT
  208723. .IP \(bu 2
  208724. \fBPR\fP \fI\%#40859\fP: (\fI\%skizunov\fP) Fix TCP Transport to work with Tornado 4.5
  208725. @ \fI2017\-04\-25 04:29:00 UTC\fP
  208726. .INDENT 2.0
  208727. .IP \(bu 2
  208728. 5249496f74 Merge pull request \fI\%#40859\fP from skizunov/develop2
  208729. .IP \(bu 2
  208730. 958ecdace8 Fix TCP Transport to work with Tornado 4.5
  208731. .UNINDENT
  208732. .IP \(bu 2
  208733. \fBPR\fP \fI\%#40862\fP: (\fI\%gtmanfred\fP) status should be an int
  208734. @ \fI2017\-04\-24 23:11:31 UTC\fP
  208735. .INDENT 2.0
  208736. .IP \(bu 2
  208737. ca80f287af Merge pull request \fI\%#40862\fP from gtmanfred/2016.11
  208738. .IP \(bu 2
  208739. 87ec1da771 status should be an int
  208740. .UNINDENT
  208741. .IP \(bu 2
  208742. \fBPR\fP \fI\%#40865\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208743. @ \fI2017\-04\-24 23:06:28 UTC\fP
  208744. .INDENT 2.0
  208745. .IP \(bu 2
  208746. c95341959d Merge pull request \fI\%#40865\fP from rallytime/merge\-2016.11
  208747. .IP \(bu 2
  208748. 53ad3159cc Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208749. .IP \(bu 2
  208750. 2a71dc3552 Merge pull request \fI\%#40854\fP from Ch3LL/11.4_release_2016.3
  208751. .INDENT 2.0
  208752. .IP \(bu 2
  208753. 889540a313 [2016.3] Bump latest release version to 2016.11.4
  208754. .UNINDENT
  208755. .IP \(bu 2
  208756. b5f67f0750 Merge pull request \fI\%#40822\fP from lordcirth/fix\-rsync\-changes
  208757. .INDENT 2.0
  208758. .IP \(bu 2
  208759. 1b304bb476 Extra space before inline comment
  208760. .IP \(bu 2
  208761. ea4592de91 rsync.py: Don\(aqt return changes when clean
  208762. .UNINDENT
  208763. .UNINDENT
  208764. .IP \(bu 2
  208765. \fBPR\fP \fI\%#40855\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.4
  208766. @ \fI2017\-04\-24 17:37:47 UTC\fP
  208767. .INDENT 2.0
  208768. .IP \(bu 2
  208769. 7861f12df8 Merge pull request \fI\%#40855\fP from Ch3LL/11.4_release_2016.11
  208770. .IP \(bu 2
  208771. e7b604339d [2016.11] Bump latest release version to 2016.11.4
  208772. .UNINDENT
  208773. .IP \(bu 2
  208774. \fBPR\fP \fI\%#40817\fP: (\fI\%isbm\fP) Some UT for cloud
  208775. @ \fI2017\-04\-23 10:01:40 UTC\fP
  208776. .INDENT 2.0
  208777. .IP \(bu 2
  208778. 25b62aee47 Merge pull request \fI\%#40817\fP from isbm/isbm\-skip\-false\-values\-from\-preferred\-ip\-201611
  208779. .IP \(bu 2
  208780. 7c5714b90b Describe debug information
  208781. .IP \(bu 2
  208782. e0210ff8cb Reformat idents, fix typos
  208783. .IP \(bu 2
  208784. fb777e3f3e PEP8: fix unused variable
  208785. .IP \(bu 2
  208786. b2e85de85d Fix lint, typos and readability
  208787. .IP \(bu 2
  208788. 116c96a4b7 Fix UT parameter changes
  208789. .IP \(bu 2
  208790. 61558f08e7 Lintfix E0602
  208791. .IP \(bu 2
  208792. ed84420df0 Add unit test for node ip filtering
  208793. .IP \(bu 2
  208794. 82582cff77 Skip test, if libcloud is not around
  208795. .IP \(bu 2
  208796. f005d53c56 Fix name error exception
  208797. .IP \(bu 2
  208798. b668e60b4c Move out nested function for testing purposes
  208799. .IP \(bu 2
  208800. 5e574a24d9 Add unit test for nova connector
  208801. .IP \(bu 2
  208802. 181d0780d0 Lintfix
  208803. .IP \(bu 2
  208804. 8e9ce1a68d Move out nested function to be unit\-testable
  208805. .IP \(bu 2
  208806. cd43805770 Add initial unit test for openstack cloud module
  208807. .IP \(bu 2
  208808. 177f31446d Add fake preferred IP function for testing
  208809. .IP \(bu 2
  208810. d1aeb13ac7 Move out openstack\(aqs nested function to be testable
  208811. .UNINDENT
  208812. .IP \(bu 2
  208813. \fBPR\fP \fI\%#40824\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208814. @ \fI2017\-04\-21 20:03:10 UTC\fP
  208815. .INDENT 2.0
  208816. .IP \(bu 2
  208817. 50ddf219a6 Merge pull request \fI\%#40824\fP from rallytime/merge\-2016.11
  208818. .IP \(bu 2
  208819. f31f9512b8 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208820. .INDENT 2.0
  208821. .IP \(bu 2
  208822. 3b9ebeb98f Merge pull request \fI\%#40754\fP from lordcirth/fix\-uppercase\-checksums
  208823. .INDENT 2.0
  208824. .IP \(bu 2
  208825. c80c792704 remove too many newlines for lint
  208826. .IP \(bu 2
  208827. a7d8f375e8 file.manage_file: uppercase checksums now work
  208828. .UNINDENT
  208829. .UNINDENT
  208830. .UNINDENT
  208831. .IP \(bu 2
  208832. \fBPR\fP \fI\%#40811\fP: (\fI\%UtahDave\fP) get config_dir based off conf_file if __opts__[\(aqconfig_dir\(aq] doesn\(aqt exist (refs: \fI\%#40930\fP)
  208833. @ \fI2017\-04\-21 17:44:42 UTC\fP
  208834. .INDENT 2.0
  208835. .IP \(bu 2
  208836. d6e26d18cb Merge pull request \fI\%#40811\fP from UtahDave/2016.11local
  208837. .IP \(bu 2
  208838. 9f6e2e9c92 get config_dir based off conf_file
  208839. .UNINDENT
  208840. .IP \(bu 2
  208841. \fBPR\fP \fI\%#40820\fP: (\fI\%gtmanfred\fP) remove deprecated firstgen rackspace cloud driver
  208842. @ \fI2017\-04\-21 17:42:19 UTC\fP
  208843. .INDENT 2.0
  208844. .IP \(bu 2
  208845. ddedf05b7d Merge pull request \fI\%#40820\fP from gtmanfred/2016.11
  208846. .IP \(bu 2
  208847. b60a8d013a remove rackspace from index
  208848. .IP \(bu 2
  208849. 559aa1d8b6 remove deprecated firstgen rackspace cloud driver
  208850. .UNINDENT
  208851. .IP \(bu 2
  208852. \fBPR\fP \fI\%#40797\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208853. @ \fI2017\-04\-20 19:42:04 UTC\fP
  208854. .INDENT 2.0
  208855. .IP \(bu 2
  208856. 2ab42489df Merge pull request \fI\%#40797\fP from rallytime/merge\-2016.11
  208857. .IP \(bu 2
  208858. 22500a7261 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208859. .INDENT 2.0
  208860. .IP \(bu 2
  208861. 623e2eb61f Merge pull request \fI\%#40791\fP from a\-powell/s3\-util\-get\-memory\-fix
  208862. .INDENT 2.0
  208863. .IP \(bu 2
  208864. 36f6521014 Merge remote\-tracking branch \(aqupstream/2016.3\(aq into s3\-util\-get\-memory\-fix
  208865. .IP \(bu 2
  208866. 04637cd4eb Fixing objects being loaded into memory when performing a GET request with a local file specified.
  208867. .UNINDENT
  208868. .UNINDENT
  208869. .UNINDENT
  208870. .IP \(bu 2
  208871. \fBPR\fP \fI\%#40800\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40720\fP to 2016.11
  208872. @ \fI2017\-04\-20 19:41:41 UTC\fP
  208873. .INDENT 2.0
  208874. .IP \(bu 2
  208875. \fBPR\fP \fI\%#40720\fP: (\fI\%oeuftete\fP) Call tornado.httputil.url_concat compatibly (refs: \fI\%#40800\fP)
  208876. .IP \(bu 2
  208877. ced839f841 Merge pull request \fI\%#40800\fP from rallytime/bp\-40720
  208878. .IP \(bu 2
  208879. 6c0124ae21 Call tornado.httputil.url_concat compatibly
  208880. .UNINDENT
  208881. .IP \(bu 2
  208882. \fBISSUE\fP \fI\%#19137\fP: (\fI\%jeffclay\fP) MSI installer(s) for windows minion (refs: \fI\%#40716\fP)
  208883. .IP \(bu 2
  208884. \fBPR\fP \fI\%#40785\fP: (\fI\%alexproca\fP) win_pkg: backport 2016.11 add msiexec override to enable selection of 32 or 64 msiexec.exe
  208885. @ \fI2017\-04\-20 16:45:14 UTC\fP
  208886. .INDENT 2.0
  208887. .IP \(bu 2
  208888. \fBPR\fP \fI\%#40716\fP: (\fI\%alexproca\fP) win_pkg: add msiexec override to enable selection of 32 or 64 msiexec.exe (refs: \fI\%#40785\fP)
  208889. .IP \(bu 2
  208890. 5388ffa7a2 Merge pull request \fI\%#40785\fP from alexproca/backport\-winexec\-selection
  208891. .IP \(bu 2
  208892. 91cafd5094 Add option to select 32 or 64 version of msiexec
  208893. .UNINDENT
  208894. .IP \(bu 2
  208895. \fBPR\fP \fI\%#40796\fP: (\fI\%terminalmage\fP) Fix inaccurate nodegroup docs
  208896. @ \fI2017\-04\-20 16:08:22 UTC\fP
  208897. .INDENT 2.0
  208898. .IP \(bu 2
  208899. f0f135c71d Merge pull request \fI\%#40796\fP from terminalmage/fix\-nodegroup\-docs
  208900. .IP \(bu 2
  208901. f99259a6eb Fix inaccurate nodegroup docs
  208902. .UNINDENT
  208903. .IP \(bu 2
  208904. \fBISSUE\fP \fI\%#40737\fP: (\fI\%jf\fP) Fix consul_pillar documentation: \(aqroot=\(aq canNOT start with a slash (refs: \fI\%#40760\fP)
  208905. .IP \(bu 2
  208906. \fBPR\fP \fI\%#40769\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40760\fP to 2016.11
  208907. @ \fI2017\-04\-19 20:23:22 UTC\fP
  208908. .INDENT 2.0
  208909. .IP \(bu 2
  208910. \fBPR\fP \fI\%#40760\fP: (\fI\%jf\fP) Fix \(aqroot=/...\(aq references in consul_pillar documentation: \(aqkeys should not start with a forward slash\(aq! (refs: \fI\%#40769\fP)
  208911. .IP \(bu 2
  208912. d8f78550d9 Merge pull request \fI\%#40769\fP from rallytime/bp\-40760
  208913. .IP \(bu 2
  208914. 71ac15fc4c Fix \(aqroot=/...\(aq references in consul_pillar documentation: \(aqkeys should not start with a forward slash\(aq!
  208915. .UNINDENT
  208916. .IP \(bu 2
  208917. \fBPR\fP \fI\%#40756\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208918. @ \fI2017\-04\-19 17:47:51 UTC\fP
  208919. .INDENT 2.0
  208920. .IP \(bu 2
  208921. 61f8de43df Merge pull request \fI\%#40756\fP from rallytime/merge\-2016.11
  208922. .IP \(bu 2
  208923. 0e087323f1 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208924. .IP \(bu 2
  208925. f4f3ee69ba Merge pull request \fI\%#40721\fP from gtmanfred/2016.3
  208926. .INDENT 2.0
  208927. .IP \(bu 2
  208928. 58b88859b3 unset the bitwise instead of toggle
  208929. .UNINDENT
  208930. .UNINDENT
  208931. .IP \(bu 2
  208932. \fBISSUE\fP \fI\%#29602\fP: (\fI\%multani\fP) cloud.action start raises "got an unexpected keyword argument \(aqkwargs\(aq" (refs: \fI\%#40735\fP)
  208933. .IP \(bu 2
  208934. \fBPR\fP \fI\%#40735\fP: (\fI\%rallytime\fP) Handle stacktraces in cloud.action function in module and runner
  208935. @ \fI2017\-04\-18 20:05:06 UTC\fP
  208936. .INDENT 2.0
  208937. .IP \(bu 2
  208938. 3557b5140e Merge pull request \fI\%#40735\fP from rallytime/handle\-cloud\-traces
  208939. .IP \(bu 2
  208940. 87154a95a4 Use \fIlog.error\fP instead of \fIlog.err\fP
  208941. .IP \(bu 2
  208942. b35bf919a3 Handle stacktraces in cloud.action function in module and runner
  208943. .UNINDENT
  208944. .IP \(bu 2
  208945. \fBPR\fP \fI\%#40745\fP: (\fI\%cro\fP) Backport \fIAdd support for specifying a datastore for new disks.\fP PR \fI\%#36457\fP
  208946. @ \fI2017\-04\-18 20:00:51 UTC\fP
  208947. .INDENT 2.0
  208948. .IP \(bu 2
  208949. \fBPR\fP \fI\%#36457\fP: (\fI\%cro\fP) Add support for specifying a datastore for new disks. (refs: \fI\%#40745\fP)
  208950. .IP \(bu 2
  208951. e700d8183b Merge pull request \fI\%#40745\fP from cro/vmware_disk_datastore_bp
  208952. .IP \(bu 2
  208953. 1460f82ce4 Remove leftover conflict markers (oops! :\-/ )
  208954. .IP \(bu 2
  208955. b26be652dd Remove leftover conflict markers (oops! :\-/ )
  208956. .IP \(bu 2
  208957. 096f063464 Remove leftover conflict markers (oops! :\-/ )
  208958. .IP \(bu 2
  208959. d24078d1a0 Add docs for "datastore" param for disks
  208960. .IP \(bu 2
  208961. 500d6b281d Document validity of a datastore key inside a disk definition.
  208962. .IP \(bu 2
  208963. 7608b10225 Add support for specifying a datastore for new disks.
  208964. .UNINDENT
  208965. .IP \(bu 2
  208966. \fBPR\fP \fI\%#40740\fP: (\fI\%cro\fP) Backport pr \fI\%#39802\fP to add random_startup_delay
  208967. @ \fI2017\-04\-18 19:47:55 UTC\fP
  208968. .INDENT 2.0
  208969. .IP \(bu 2
  208970. \fBPR\fP \fI\%#39802\fP: (\fI\%cachedout\fP) A random startup delay option for minions (refs: \fI\%#40740\fP)
  208971. .IP \(bu 2
  208972. 78dbab01dc Merge pull request \fI\%#40740\fP from cro/minion_delay_start
  208973. .IP \(bu 2
  208974. 2ab95b7dd5 Set minion test to use default opts
  208975. .IP \(bu 2
  208976. 785e6060a9 Add requested docs
  208977. .IP \(bu 2
  208978. 8ab321f934 A random startup delay option for minions
  208979. .UNINDENT
  208980. .IP \(bu 2
  208981. \fBPR\fP \fI\%#40728\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  208982. @ \fI2017\-04\-17 21:13:15 UTC\fP
  208983. .INDENT 2.0
  208984. .IP \(bu 2
  208985. a48ecc4a5c Merge pull request \fI\%#40728\fP from rallytime/merge\-2016.11
  208986. .IP \(bu 2
  208987. 0a5e05a6e5 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  208988. .IP \(bu 2
  208989. bf8bb0fde6 Merge pull request \fI\%#40719\fP from rallytime/bp\-40714
  208990. .INDENT 2.0
  208991. .IP \(bu 2
  208992. d6c436246b Make salt.modules.pw_user.get_loginclass return string rather than dict
  208993. .UNINDENT
  208994. .IP \(bu 2
  208995. 4145d33e46 Merge pull request \fI\%#40718\fP from terminalmage/fix\-docstring
  208996. .IP \(bu 2
  208997. 14e8b85da5 Fix copypasta in the pw_user docstring
  208998. .UNINDENT
  208999. .IP \(bu 2
  209000. \fBISSUE\fP \fI\%#36967\fP: (\fI\%gmykhailiuta\fP) S3fs objects list gets truncated (refs: \fI\%#40707\fP)
  209001. .IP \(bu 2
  209002. \fBPR\fP \fI\%#40707\fP: (\fI\%gtmanfred\fP) Use markers when s3 bucket list is truncated
  209003. @ \fI2017\-04\-17 16:45:21 UTC\fP
  209004. .INDENT 2.0
  209005. .IP \(bu 2
  209006. c5cbfc2e63 Merge pull request \fI\%#40707\fP from gtmanfred/2016.11
  209007. .IP \(bu 2
  209008. 1932f7265d Use markers when s3 bucket list is truncated
  209009. .UNINDENT
  209010. .UNINDENT
  209011. .SS Salt 2016.11.6 Release Notes
  209012. .sp
  209013. Version 2016.11.6 is a bugfix release for 2016.11.0\&.
  209014. .SS Statistics
  209015. .INDENT 0.0
  209016. .IP \(bu 2
  209017. Total Merges: \fB137\fP
  209018. .IP \(bu 2
  209019. Total Issue References: \fB58\fP
  209020. .IP \(bu 2
  209021. Total PR References: \fB153\fP
  209022. .IP \(bu 2
  209023. Contributors: \fB49\fP (\fI\%BenoitKnecht\fP, \fI\%Ch3LL\fP, \fI\%Enquier\fP, \fI\%F30\fP, \fI\%Foxlik\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%abednarik\fP, \fI\%alex\-zel\fP, \fI\%arif\-ali\fP, \fI\%automate\-solutions\fP, \fI\%axmetishe\fP, \fI\%bdrung\fP, \fI\%cachedout\fP, \fI\%cro\fP, \fI\%darenjacobs\fP, \fI\%dmurphy18\fP, \fI\%dschaller\fP, \fI\%epcim\fP, \fI\%garethgreenaway\fP, \fI\%github\-abcde\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jettero\fP, \fI\%jmarinaro\fP, \fI\%kiorky\fP, \fI\%lomeroe\fP, \fI\%lordcirth\fP, \fI\%lorengordon\fP, \fI\%lubyou\fP, \fI\%mcalmer\fP, \fI\%moio\fP, \fI\%onlyanegg\fP, \fI\%peter\-funktionIT\fP, \fI\%pkazmierczak\fP, \fI\%pprkut\fP, \fI\%rallytime\fP, \fI\%ricohouse\fP, \fI\%seanjnkns\fP, \fI\%sebw\fP, \fI\%skizunov\fP, \fI\%svinota\fP, \fI\%t0fik\fP, \fI\%terminalmage\fP, \fI\%tmeneau\fP, \fI\%tonybaloney\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP, \fI\%yannj\-fr\fP)
  209024. .UNINDENT
  209025. .SS Changelog for v2016.11.5..v2016.11.6
  209026. .sp
  209027. \fIGenerated at: 2018\-05\-27 20:18:17 UTC\fP
  209028. .INDENT 0.0
  209029. .IP \(bu 2
  209030. \fBPR\fP \fI\%#41861\fP: (\fI\%twangboy\fP) Fix problems with get_rule and delete_rule
  209031. @ \fI2017\-06\-20 20:37:23 UTC\fP
  209032. .INDENT 2.0
  209033. .IP \(bu 2
  209034. afc61ffe63 Merge pull request \fI\%#41861\fP from twangboy/fix_win_firewall
  209035. .IP \(bu 2
  209036. 78892074f5 Fix problems with get_rule and delete_rule
  209037. .UNINDENT
  209038. .IP \(bu 2
  209039. \fBISSUE\fP \fI\%#41778\fP: (\fI\%frogunder\fP) 2016.11.6 \- TCP Transport gives Exception (refs: \fI\%#41787\fP)
  209040. .IP \(bu 2
  209041. \fBPR\fP \fI\%#41787\fP: (\fI\%skizunov\fP) Fix \fI\%#41778\fP
  209042. @ \fI2017\-06\-20 20:11:23 UTC\fP
  209043. .INDENT 2.0
  209044. .IP \(bu 2
  209045. \fBPR\fP \fI\%#41436\fP: (\fI\%skizunov\fP) TCP transport: Fix occasional errors when using salt command (refs: \fI\%#41787\fP)
  209046. .IP \(bu 2
  209047. 938d4fddf1 Merge pull request \fI\%#41787\fP from skizunov/develop3
  209048. .IP \(bu 2
  209049. 2ffd20cede Fix \fI\%#41778\fP
  209050. .UNINDENT
  209051. .IP \(bu 2
  209052. \fBPR\fP \fI\%#41812\fP: (\fI\%skizunov\fP) TCP: Fix salt\-master in bad state if remote side closed connection
  209053. @ \fI2017\-06\-20 19:46:53 UTC\fP
  209054. .INDENT 2.0
  209055. .IP \(bu 2
  209056. 03b6ae5ea8 Merge pull request \fI\%#41812\fP from skizunov/develop4
  209057. .IP \(bu 2
  209058. 736420eb83 TCP: Fix salt\-master in bad state if remote side closed connection
  209059. .UNINDENT
  209060. .IP \(bu 2
  209061. \fBPR\fP \fI\%#41857\fP: (\fI\%dmurphy18\fP) Modified support for deprecated netstat being removed by utilizing ss
  209062. @ \fI2017\-06\-20 18:46:27 UTC\fP
  209063. .INDENT 2.0
  209064. .IP \(bu 2
  209065. cf2252bcea Merge pull request \fI\%#41857\fP from dmurphy18/netstat_fix
  209066. .IP \(bu 2
  209067. 017fbdbc53 Modified support for deprecated netstat being removed by utilizing ss
  209068. .UNINDENT
  209069. .IP \(bu 2
  209070. \fBISSUE\fP \fI\%#40878\fP: (\fI\%joewreschnig\fP) SSH modules spam warning about MD5 fingerprints when there aren\(aqt any (refs: \fI\%#41837\fP)
  209071. .IP \(bu 2
  209072. \fBISSUE\fP \fI\%#40005\fP: (\fI\%vutny\fP) \fIssh_known_hosts.present\fP does not support SHA256 key fingerprints (refs: \fI\%#40543\fP)
  209073. .IP \(bu 2
  209074. \fBPR\fP \fI\%#41837\fP: (\fI\%rallytime\fP) Add fingerpint_hash_type option to ssh_auth state and related functions
  209075. @ \fI2017\-06\-20 18:14:53 UTC\fP
  209076. .INDENT 2.0
  209077. .IP \(bu 2
  209078. \fBPR\fP \fI\%#40543\fP: (\fI\%rallytime\fP) Add the "fingerprint_hash_type" option to ssh state and module (refs: \fI\%#41837\fP)
  209079. .IP \(bu 2
  209080. 12ec5f9f23 Merge pull request \fI\%#41837\fP from rallytime/fix\-40878
  209081. .IP \(bu 2
  209082. 48ff5d2a62 Add fingerpint_hash_type option to ssh_auth state and related functions
  209083. .UNINDENT
  209084. .IP \(bu 2
  209085. \fBPR\fP \fI\%#41839\fP: (\fI\%cro\fP) Extend proxy to jinja
  209086. @ \fI2017\-06\-19 23:03:00 UTC\fP
  209087. .INDENT 2.0
  209088. .IP \(bu 2
  209089. e7fc30f482 Merge pull request \fI\%#41839\fP from cro/extend_proxy_to_jinja
  209090. .IP \(bu 2
  209091. 172d3520ea Merge branch \(aqextend_proxy_to_jinja\(aq of github.com:cro/salt into extend_proxy_to_jinja
  209092. .INDENT 2.0
  209093. .IP \(bu 2
  209094. 2e4a0633da Extend __proxy__ to jinja as \fIproxy\fP (like __salt__\->salt)
  209095. .UNINDENT
  209096. .IP \(bu 2
  209097. 2ffad2af35 Extend __proxy__ to jinja as \fIproxy\fP (like __salt__\->salt)
  209098. .UNINDENT
  209099. .IP \(bu 2
  209100. \fBISSUE\fP \fI\%#41733\fP: (\fI\%sumeetisp\fP) Salt Rest Api call (refs: \fI\%#41786\fP)
  209101. .IP \(bu 2
  209102. \fBISSUE\fP \fI\%#40845\fP: (\fI\%e\-senthilkumar\fP) /jobs call is broken in 2016.11.4 (refs: \fI\%#41786\fP)
  209103. .IP \(bu 2
  209104. \fBISSUE\fP \fI\%#38962\fP: (\fI\%gstachowiak\fP) Broken /jobs in salt\-api in salt 2016.11.1 (Carbon) (refs: \fI\%#39472\fP)
  209105. .IP \(bu 2
  209106. \fBPR\fP \fI\%#41786\fP: (\fI\%whiteinge\fP) Runner arg parsing regressions
  209107. @ \fI2017\-06\-19 23:00:07 UTC\fP
  209108. .INDENT 2.0
  209109. .IP \(bu 2
  209110. \fBPR\fP \fI\%#39472\fP: (\fI\%whiteinge\fP) Update _reformat_low to not run kwarg dicts through parse_input (refs: \fI\%#41786\fP)
  209111. .IP \(bu 2
  209112. 58387b127a Merge pull request \fI\%#41786\fP from whiteinge/runner\-arg\-parsing\-regressions
  209113. .IP \(bu 2
  209114. bf15c0bb5f Restore sending __current_eauth_* through to the function
  209115. .IP \(bu 2
  209116. 6be975da2c Fix regressions from not calling load_args_and_kwargs
  209117. .IP \(bu 2
  209118. 9d1cc1a176 Add test to check that runners ignore invalid kwargs
  209119. .UNINDENT
  209120. .IP \(bu 2
  209121. \fBPR\fP \fI\%#41776\fP: (\fI\%gtmanfred\fP) npm 5.0.0 added a second line after fsevents
  209122. @ \fI2017\-06\-19 16:53:43 UTC\fP
  209123. .INDENT 2.0
  209124. .IP \(bu 2
  209125. be0e9abedb Merge pull request \fI\%#41776\fP from gtmanfred/2016.11
  209126. .IP \(bu 2
  209127. 733a2279ca npm 5.0.0 added a second line after fsevents
  209128. .UNINDENT
  209129. .IP \(bu 2
  209130. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#41783\fP)
  209131. .IP \(bu 2
  209132. \fBPR\fP \fI\%#41783\fP: (\fI\%rallytime\fP) Add a bunch of config options to the various master/minion files that are missing
  209133. @ \fI2017\-06\-19 16:42:54 UTC\fP
  209134. .INDENT 2.0
  209135. .IP \(bu 2
  209136. d94d4e4d19 Merge pull request \fI\%#41783\fP from rallytime/config\-doc\-updates
  209137. .IP \(bu 2
  209138. c828ad803a Add a bunch of config options to the various master/minion files that are missing
  209139. .UNINDENT
  209140. .IP \(bu 2
  209141. \fBPR\fP \fI\%#41816\fP: (\fI\%twangboy\fP) Upgrade psutil to version 5.2.2
  209142. @ \fI2017\-06\-17 01:51:29 UTC\fP
  209143. .INDENT 2.0
  209144. .IP \(bu 2
  209145. 2c681887d3 Merge pull request \fI\%#41816\fP from twangboy/update_psutil_req
  209146. .IP \(bu 2
  209147. 8b4e3ad77d Upgrade psutil to version 5.2.2
  209148. .UNINDENT
  209149. .IP \(bu 2
  209150. \fBISSUE\fP \fI\%#41785\fP: (\fI\%UtahDave\fP) Using master tops without a top.sls file causes extra errors in minion log (refs: \fI\%#41803\fP)
  209151. .IP \(bu 2
  209152. \fBPR\fP \fI\%#41803\fP: (\fI\%terminalmage\fP) Don\(aqt log an error when no top.sls is found
  209153. @ \fI2017\-06\-16 22:49:08 UTC\fP
  209154. .INDENT 2.0
  209155. .IP \(bu 2
  209156. 3e5fe7ca4b Merge pull request \fI\%#41803\fP from terminalmage/issue41785
  209157. .IP \(bu 2
  209158. f9f4d49f05 Don\(aqt log an error when no top.sls is found
  209159. .UNINDENT
  209160. .IP \(bu 2
  209161. \fBPR\fP \fI\%#41801\fP: (\fI\%terminalmage\fP) Don\(aqt take hostname from name param when creating docker container (2016.11 branch)
  209162. @ \fI2017\-06\-16 17:02:02 UTC\fP
  209163. .INDENT 2.0
  209164. .IP \(bu 2
  209165. d12bc4ee68 Merge pull request \fI\%#41801\fP from terminalmage/issue41781\-2016.11
  209166. .IP \(bu 2
  209167. 8236d3e1c3 Don\(aqt take hostname from name param when creating docker container (2016.11 branch)
  209168. .UNINDENT
  209169. .IP \(bu 2
  209170. \fBPR\fP \fI\%#41768\fP: (\fI\%rallytime\fP) Manually back\-port the changes in PR \fI\%#41615\fP
  209171. @ \fI2017\-06\-15 20:41:45 UTC\fP
  209172. .INDENT 2.0
  209173. .IP \(bu 2
  209174. \fBPR\fP \fI\%#41615\fP: (\fI\%Ch3LL\fP) Fix get_hwclock_aix test on MacOSX (refs: \fI\%#41768\fP)
  209175. .IP \(bu 2
  209176. 87e2e72d94 Merge pull request \fI\%#41768\fP from rallytime/bp\-41615
  209177. .IP \(bu 2
  209178. b6cc0b6bf0 Manually backport the changes in PR \fI\%#41615\fP
  209179. .UNINDENT
  209180. .IP \(bu 2
  209181. \fBPR\fP \fI\%#41740\fP: (\fI\%terminalmage\fP) Fix spurious error when glob/regex used in publisher_acl
  209182. @ \fI2017\-06\-15 15:14:56 UTC\fP
  209183. .INDENT 2.0
  209184. .IP \(bu 2
  209185. 36cb223ab2 Merge pull request \fI\%#41740\fP from terminalmage/zd1532
  209186. .IP \(bu 2
  209187. e5f3d08751 Fix spurious error when glob/regex used in publisher_acl
  209188. .UNINDENT
  209189. .IP \(bu 2
  209190. \fBPR\fP \fI\%#41749\fP: (\fI\%terminalmage\fP) Fix bug in pkg_resource.parse_targets when version passed
  209191. @ \fI2017\-06\-15 15:05:52 UTC\fP
  209192. .INDENT 2.0
  209193. .IP \(bu 2
  209194. 126a36747b Merge pull request \fI\%#41749\fP from terminalmage/parse_targets
  209195. .IP \(bu 2
  209196. 698806fb09 No need to manually create pkg_params dict when name and version passed
  209197. .IP \(bu 2
  209198. 7484bcc6c6 parse_targets: include version in packed return data
  209199. .UNINDENT
  209200. .IP \(bu 2
  209201. \fBPR\fP \fI\%#41753\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41449\fP to 2016.11
  209202. @ \fI2017\-06\-14 22:16:10 UTC\fP
  209203. .INDENT 2.0
  209204. .IP \(bu 2
  209205. \fBPR\fP \fI\%#41449\fP: (\fI\%sebw\fP) Fix state "svn.latest" diff output in test mode (refs: \fI\%#41753\fP)
  209206. .IP \(bu 2
  209207. 2c24012ded Merge pull request \fI\%#41753\fP from rallytime/bp\-41449
  209208. .IP \(bu 2
  209209. fae41c2875 Adjusting SVN unit test
  209210. .IP \(bu 2
  209211. eac6b151eb Improved SVN output in test mode
  209212. .UNINDENT
  209213. .IP \(bu 2
  209214. \fBPR\fP \fI\%#41750\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209215. @ \fI2017\-06\-14 22:15:41 UTC\fP
  209216. .INDENT 2.0
  209217. .IP \(bu 2
  209218. e685858269 Merge pull request \fI\%#41750\fP from rallytime/merge\-2016.11
  209219. .IP \(bu 2
  209220. 89834e49c2 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209221. .INDENT 2.0
  209222. .IP \(bu 2
  209223. c5a79a1ea6 Merge pull request \fI\%#41695\fP from xiaoanyunfei/fixRecursion
  209224. .INDENT 2.0
  209225. .IP \(bu 2
  209226. c54fde69a0 fix spell error
  209227. .IP \(bu 2
  209228. bc855b4711 fix swallow exception
  209229. .IP \(bu 2
  209230. c0b1f57fc0 add exception
  209231. .IP \(bu 2
  209232. aacf9f0a44 fix maximum recursion depth exceeded
  209233. .UNINDENT
  209234. .IP \(bu 2
  209235. 4b43ba3366 Merge pull request \fI\%#41585\fP from cro/sign_minion_messages
  209236. .INDENT 2.0
  209237. .IP \(bu 2
  209238. 628f709c3c Correct test\-\-caching requires files on disk but the test just supplies what would have been read from disk.
  209239. .IP \(bu 2
  209240. 687872a488 Lint
  209241. .IP \(bu 2
  209242. dadf4b851c Add documentation to the example master and minion configuration files. Move minion event signing to a saner place. Enable dropping messages when signature does not verify or when minion is not adding the signature to its payloads.
  209243. .IP \(bu 2
  209244. e44673cdae Add caching of key.
  209245. .IP \(bu 2
  209246. c3917d1e91 Fat finger fix.
  209247. .IP \(bu 2
  209248. 3b9326fda7 Sign_minion_messages support
  209249. .UNINDENT
  209250. .UNINDENT
  209251. .UNINDENT
  209252. .IP \(bu 2
  209253. \fBPR\fP \fI\%#41756\fP: (\fI\%Ch3LL\fP) Add Change Log to 2016.11.6 Release Notes
  209254. @ \fI2017\-06\-14 20:57:08 UTC\fP
  209255. .INDENT 2.0
  209256. .IP \(bu 2
  209257. 36cc8f1e35 Merge pull request \fI\%#41756\fP from Ch3LL/2016.11.6_release
  209258. .IP \(bu 2
  209259. fa368f21ac Add Change Log to 2016.11.6 Release Notes
  209260. .UNINDENT
  209261. .IP \(bu 2
  209262. \fBISSUE\fP \fI\%#40155\fP: (\fI\%grichmond\-salt\fP) State module boto_vpc not working with boto 2 (refs: \fI\%#41692\fP)
  209263. .IP \(bu 2
  209264. \fBPR\fP \fI\%#41692\fP: (\fI\%rallytime\fP) Add boto and boto3 version dependencies to boto_vpc state docs
  209265. @ \fI2017\-06\-14 19:05:07 UTC\fP
  209266. .INDENT 2.0
  209267. .IP \(bu 2
  209268. edcafc6a26 Merge pull request \fI\%#41692\fP from rallytime/fix\-40155
  209269. .IP \(bu 2
  209270. 539c1b0692 Add boto and boto3 version dependencies to boto_vpc state docs
  209271. .UNINDENT
  209272. .IP \(bu 2
  209273. \fBISSUE\fP \fI\%#39918\fP: (\fI\%kivoli\fP) Enabling list merging leads to multiplying of unique list items (refs: \fI\%#40902\fP)
  209274. .IP \(bu 2
  209275. \fBPR\fP \fI\%#40902\fP: (\fI\%lorengordon\fP) Removes duplicates when merging pillar lists and adds pillar.get override for pillar_merge_lists
  209276. @ \fI2017\-06\-14 18:39:09 UTC\fP
  209277. .INDENT 2.0
  209278. .IP \(bu 2
  209279. bdaeb55a77 Merge pull request \fI\%#40902\fP from lorengordon/pillar\-get\-merge\-lists
  209280. .IP \(bu 2
  209281. 6e35673fe3 Preserves order when removing duplicates
  209282. .IP \(bu 2
  209283. 18eda7084c Updates list merge tests to check for sorted, unique lists
  209284. .IP \(bu 2
  209285. 74bf91f99e Sorts the list when removing duplicates
  209286. .IP \(bu 2
  209287. 26a4b1b17f Adds pillar.get param to control list merge/overwrite behavior
  209288. .IP \(bu 2
  209289. ed04bae94c Removes duplicate values when merging lists
  209290. .UNINDENT
  209291. .IP \(bu 2
  209292. \fBISSUE\fP \fI\%#32743\fP: (\fI\%tonybaloney\fP) Issue with salt\-cloud on OpenSUSE (refs: \fI\%#41723\fP)
  209293. .IP \(bu 2
  209294. \fBPR\fP \fI\%#41723\fP: (\fI\%rallytime\fP) Support apache\-libcloud work\-around for issue \fI\%#32743\fP for versions older than 2.0.0
  209295. @ \fI2017\-06\-14 17:13:38 UTC\fP
  209296. .INDENT 2.0
  209297. .IP \(bu 2
  209298. \fBPR\fP \fI\%#40837\fP: (\fI\%tonybaloney\fP) Upgrade apache\-libcloud package dependency for 2.0 (refs: \fI\%#41723\fP)
  209299. .IP \(bu 2
  209300. 203ec6730f Merge pull request \fI\%#41723\fP from rallytime/libcloud\-support
  209301. .IP \(bu 2
  209302. 1e9a06000b Bump version check down to 1.4.0 and use distutils.version lib
  209303. .IP \(bu 2
  209304. a30f654b04 Support apache\-libcloud work\-around for issue \fI\%#32743\fP for versions older than 2.0.0
  209305. .UNINDENT
  209306. .IP \(bu 2
  209307. \fBISSUE\fP \fI\%#41654\fP: (\fI\%Enquier\fP) Nova Cloud module doesn\(aqt work for python\-novaclient 8.0.0+ (refs: \fI\%#41655\fP)
  209308. .IP \(bu 2
  209309. \fBPR\fP \fI\%#41655\fP: (\fI\%Enquier\fP) Allow Nova cloud module to set a specific floating ip address
  209310. @ \fI2017\-06\-14 16:44:05 UTC\fP
  209311. .INDENT 2.0
  209312. .IP \(bu 2
  209313. 62dbf5083c Merge pull request \fI\%#41655\fP from Enquier/nova\-cloud\-set_ip_address
  209314. .IP \(bu 2
  209315. 293bc64158 Removed empty debug log
  209316. .IP \(bu 2
  209317. 3d9871fe11 Cleaning up, removing debugging tests
  209318. .IP \(bu 2
  209319. c78e5feea9 Fixing error message
  209320. .IP \(bu 2
  209321. 404dffb6b8 Debugging variable format
  209322. .IP \(bu 2
  209323. 6fa3b976a5 removing string call
  209324. .IP \(bu 2
  209325. 005995e1b0 modifying variable calls
  209326. .IP \(bu 2
  209327. 9e5e7a38ec Testing variable changes
  209328. .IP \(bu 2
  209329. 05e240f37f Debugging Format of floating_ip variable
  209330. .IP \(bu 2
  209331. 366aca00a8 Adding Max version check for Nova since Cloud no longer operates at higher versions
  209332. .IP \(bu 2
  209333. 6f66c9d10c Fixing response of floating_ip_show to align with other floating ip\(aqs. Spelling fix
  209334. .IP \(bu 2
  209335. 58459adbe8 Adding ability to set a Floating IP by a specific IP address
  209336. .UNINDENT
  209337. .IP \(bu 2
  209338. \fBPR\fP \fI\%#41731\fP: (\fI\%terminalmage\fP) Clarify that archive_format is required pre\-2016.11.0
  209339. @ \fI2017\-06\-14 15:05:21 UTC\fP
  209340. .INDENT 2.0
  209341. .IP \(bu 2
  209342. 82eab84883 Merge pull request \fI\%#41731\fP from terminalmage/docs
  209343. .IP \(bu 2
  209344. d3f4ea1a84 Clarify that archive_format is required pre\-2016.11.0
  209345. .UNINDENT
  209346. .IP \(bu 2
  209347. \fBPR\fP \fI\%#41663\fP: (\fI\%skizunov\fP) Don\(aqt invoke lspci if enable_lspci is False
  209348. @ \fI2017\-06\-13 21:19:42 UTC\fP
  209349. .INDENT 2.0
  209350. .IP \(bu 2
  209351. b6d27beac2 Merge pull request \fI\%#41663\fP from skizunov/develop3
  209352. .IP \(bu 2
  209353. 154d6ce59e Don\(aqt invoke lspci if enable_lspci is False
  209354. .UNINDENT
  209355. .IP \(bu 2
  209356. \fBISSUE\fP \fI\%#40446\fP: (\fI\%sumeetisp\fP) [Documentation] include list of kwargs for ec2.create_volume in cloud driver (refs: \fI\%#41693\fP)
  209357. .IP \(bu 2
  209358. \fBPR\fP \fI\%#41693\fP: (\fI\%rallytime\fP) Document available kwargs for ec2.create_volume function
  209359. @ \fI2017\-06\-13 19:51:10 UTC\fP
  209360. .INDENT 2.0
  209361. .IP \(bu 2
  209362. 46b8d5dc4b Merge pull request \fI\%#41693\fP from rallytime/fix\-40446
  209363. .IP \(bu 2
  209364. 569eb2bf7e Document available kwargs for ec2.create_volume function
  209365. .UNINDENT
  209366. .IP \(bu 2
  209367. \fBISSUE\fP \fI\%#41691\fP: (\fI\%jdonofrio728\fP) Can\(aqt pass integers as cmd.run environment variables (refs: \fI\%#41696\fP)
  209368. .IP \(bu 2
  209369. \fBPR\fP \fI\%#41696\fP: (\fI\%terminalmage\fP) Handle a few edge/corner cases with non\-string input to cmd.run
  209370. @ \fI2017\-06\-13 18:48:56 UTC\fP
  209371. .INDENT 2.0
  209372. .IP \(bu 2
  209373. aab55d304a Merge pull request \fI\%#41696\fP from terminalmage/issue41691
  209374. .IP \(bu 2
  209375. 0623e40d33 Apparently some funcs are passing tuples to cmd.run_*
  209376. .IP \(bu 2
  209377. cdbfb94cfe Handle a few edge/corner cases with non\-string input to cmd.run
  209378. .UNINDENT
  209379. .IP \(bu 2
  209380. \fBPR\fP \fI\%#41697\fP: (\fI\%terminalmage\fP) Resubmit \fI\%#41545\fP against 2016.11 branch
  209381. @ \fI2017\-06\-13 16:10:37 UTC\fP
  209382. .INDENT 2.0
  209383. .IP \(bu 2
  209384. \fBPR\fP \fI\%#41545\fP: (\fI\%kiorky\fP) Make print_cli resilient on slow systems (refs: \fI\%#41697\fP)
  209385. .IP \(bu 2
  209386. 97897d7a7a Merge pull request \fI\%#41697\fP from terminalmage/pr\-41545
  209387. .IP \(bu 2
  209388. faaacf88bf Use error name instead of error number
  209389. .IP \(bu 2
  209390. 7eacda5cbf Make print_cli resilient on slow systems
  209391. .UNINDENT
  209392. .IP \(bu 2
  209393. \fBISSUE\fP \fI\%#40605\fP: (\fI\%sumeetisp\fP) Salt\-run manage.bootstrap (refs: \fI\%#41711\fP)
  209394. .IP \(bu 2
  209395. \fBPR\fP \fI\%#41711\fP: (\fI\%rallytime\fP) Update deprecated version info in manage.bootstrap func for root_user
  209396. @ \fI2017\-06\-13 16:04:32 UTC\fP
  209397. .INDENT 2.0
  209398. .IP \(bu 2
  209399. 09260d7c08 Merge pull request \fI\%#41711\fP from rallytime/fix\-40605
  209400. .IP \(bu 2
  209401. 903c2ffca5 Update deprecated version info in manage.bootstrap fucn for root_user
  209402. .UNINDENT
  209403. .IP \(bu 2
  209404. \fBISSUE\fP \fI\%#39668\fP: (\fI\%mirceaulinic\fP) Master scheduled job not recorded on the event bus (refs: \fI\%#41658\fP)
  209405. .IP \(bu 2
  209406. \fBPR\fP \fI\%#41658\fP: (\fI\%garethgreenaway\fP) Fixes to the salt scheduler
  209407. @ \fI2017\-06\-13 16:00:57 UTC\fP
  209408. .INDENT 2.0
  209409. .IP \(bu 2
  209410. d563b3e345 Merge pull request \fI\%#41658\fP from garethgreenaway/39668_schedule_runners_fire_events
  209411. .IP \(bu 2
  209412. d688a1cd88 Enable jobs scheduled on the master to fire their return data to the event bus
  209413. .UNINDENT
  209414. .IP \(bu 2
  209415. \fBPR\fP \fI\%#41706\fP: (\fI\%twangboy\fP) Add missing batch files
  209416. @ \fI2017\-06\-13 15:32:53 UTC\fP
  209417. .INDENT 2.0
  209418. .IP \(bu 2
  209419. 3c3b9343b7 Merge pull request \fI\%#41706\fP from twangboy/batch_files
  209420. .IP \(bu 2
  209421. 0d4be0220b Add batch files for master
  209422. .UNINDENT
  209423. .IP \(bu 2
  209424. \fBPR\fP \fI\%#41710\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209425. @ \fI2017\-06\-13 15:11:38 UTC\fP
  209426. .INDENT 2.0
  209427. .IP \(bu 2
  209428. 1afc4adc5a Merge pull request \fI\%#41710\fP from rallytime/merge\-2016.11
  209429. .IP \(bu 2
  209430. 5150916556 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209431. .IP \(bu 2
  209432. 5058b0de1f Merge pull request \fI\%#41707\fP from terminalmage/master\-tops\-docs
  209433. .INDENT 2.0
  209434. .IP \(bu 2
  209435. 6ec9dfb7f3 Update version in master\-tops docs
  209436. .UNINDENT
  209437. .IP \(bu 2
  209438. 1c1964d807 Merge pull request \fI\%#41689\fP from yannj\-fr/fix\-41688
  209439. .INDENT 2.0
  209440. .IP \(bu 2
  209441. a47eddccd2 Fix \fI\%#41688\fP : fix mkfs command linux\-swap support
  209442. .UNINDENT
  209443. .UNINDENT
  209444. .IP \(bu 2
  209445. \fBPR\fP \fI\%#41702\fP: (\fI\%gtmanfred\fP) npm 5 and greater requires \-\-force for cache clean
  209446. @ \fI2017\-06\-12 23:21:56 UTC\fP
  209447. .INDENT 2.0
  209448. .IP \(bu 2
  209449. 5d763b9b7f Merge pull request \fI\%#41702\fP from gtmanfred/2016.11
  209450. .IP \(bu 2
  209451. 8bd19fcc17 fix version number
  209452. .IP \(bu 2
  209453. 0fa380f75c npm 5 and greater requires \-\-force for cache clean
  209454. .UNINDENT
  209455. .IP \(bu 2
  209456. \fBISSUE\fP \fI\%#41668\fP: (\fI\%yannj\-fr\fP) Parted modules mkfs command does not work with NTFS (refs: \fI\%#41670\fP)
  209457. .IP \(bu 2
  209458. \fBPR\fP \fI\%#41704\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41670\fP to 2016.11
  209459. @ \fI2017\-06\-12 23:20:31 UTC\fP
  209460. .INDENT 2.0
  209461. .IP \(bu 2
  209462. \fBPR\fP \fI\%#41670\fP: (\fI\%yannj\-fr\fP) fixes \fI\%#41668\fP ntfs case problem in parted module (refs: \fI\%#41704\fP)
  209463. .IP \(bu 2
  209464. f6519e7f80 Merge pull request \fI\%#41704\fP from rallytime/bp\-41670
  209465. .IP \(bu 2
  209466. 8afc8792d1 fixes \fI\%#41668\fP ntfs case problem in parted module
  209467. .UNINDENT
  209468. .IP \(bu 2
  209469. \fBISSUE\fP \fI\%#39939\fP: (\fI\%martinschipper\fP) Relative symlinks are changed with file.recurse 2016.11.3 (refs: \fI\%#41700\fP)
  209470. .IP \(bu 2
  209471. \fBPR\fP \fI\%#41700\fP: (\fI\%terminalmage\fP) roots: return actual link destination when listing symlinks
  209472. @ \fI2017\-06\-12 22:07:03 UTC\fP
  209473. .INDENT 2.0
  209474. .IP \(bu 2
  209475. 0b89377dce Merge pull request \fI\%#41700\fP from terminalmage/issue39939
  209476. .IP \(bu 2
  209477. bdbb265a0b roots: return actual link destination when listing symlinks
  209478. .UNINDENT
  209479. .IP \(bu 2
  209480. \fBPR\fP \fI\%#41699\fP: (\fI\%rallytime\fP) Remove note about version incompatibility with salt\-cloud
  209481. @ \fI2017\-06\-12 19:44:28 UTC\fP
  209482. .INDENT 2.0
  209483. .IP \(bu 2
  209484. 7cf47f9651 Merge pull request \fI\%#41699\fP from rallytime/troubleshooting\-doc\-update
  209485. .IP \(bu 2
  209486. c91ca5f809 Remove note about version incompatibility with salt\-cloud
  209487. .UNINDENT
  209488. .IP \(bu 2
  209489. \fBISSUE\fP \fI\%#40410\fP: (\fI\%DarrenDai\fP) Targeting Minions by IP Range via restful API doesn\(aqt work (refs: \fI\%#41694\fP)
  209490. .IP \(bu 2
  209491. \fBPR\fP \fI\%#41694\fP: (\fI\%rallytime\fP) Add ipcidr options to "Allowed Values" list in LocalClient expr_form docs
  209492. @ \fI2017\-06\-12 19:06:16 UTC\fP
  209493. .INDENT 2.0
  209494. .IP \(bu 2
  209495. d68a6316b8 Merge pull request \fI\%#41694\fP from rallytime/fix\-40410
  209496. .IP \(bu 2
  209497. 6de9da1d5d Add ipcidr options to "Allowed Values" list in LocalClient expr_form docs
  209498. .UNINDENT
  209499. .IP \(bu 2
  209500. \fBISSUE\fP \fI\%#41365\fP: (\fI\%lubyou\fP) file.managed chokes on windows paths when source_hash is set to the URI of a file that contains source hash strings (refs: \fI\%#41659\fP)
  209501. .IP \(bu 2
  209502. \fBPR\fP \fI\%#41659\fP: (\fI\%lubyou\fP) Use re.escape to escape paths before handing them to re.match
  209503. @ \fI2017\-06\-12 18:10:53 UTC\fP
  209504. .INDENT 2.0
  209505. .IP \(bu 2
  209506. 80d4a3ab98 Merge pull request \fI\%#41659\fP from lubyou/41365\-fix\-file\-managed
  209507. .IP \(bu 2
  209508. d49a1579b0 Use re.escape to escape paths, before handing them to re.match
  209509. .IP \(bu 2
  209510. ac240facca use correct variable
  209511. .IP \(bu 2
  209512. c777eba2c1 Use re.escape to escape paths, before handing them to re.match
  209513. .UNINDENT
  209514. .IP \(bu 2
  209515. \fBPR\fP \fI\%#41661\fP: (\fI\%whiteinge\fP) Add note about avoiding the \fI\-i\fP flag for the /keys endpoint
  209516. @ \fI2017\-06\-09 15:03:40 UTC\fP
  209517. .INDENT 2.0
  209518. .IP \(bu 2
  209519. 564d5fd9d3 Merge pull request \fI\%#41661\fP from whiteinge/rest_cherrypy\-keys\-headers
  209520. .IP \(bu 2
  209521. a66ffc9d3e Add note about avoiding the \fI\-i\fP flag for the /keys endpoint
  209522. .UNINDENT
  209523. .IP \(bu 2
  209524. \fBISSUE\fP \fI\%#41651\fP: (\fI\%Sakorah\fP) pkg.installed fails when unholding and test=true (refs: \fI\%#41660\fP)
  209525. .IP \(bu 2
  209526. \fBPR\fP \fI\%#41660\fP: (\fI\%garethgreenaway\fP) Fix to modules/aptpkg.py for unheld
  209527. @ \fI2017\-06\-09 14:53:23 UTC\fP
  209528. .INDENT 2.0
  209529. .IP \(bu 2
  209530. 38424f3e3e Merge pull request \fI\%#41660\fP from garethgreenaway/41651_fixing_aptpkg_held_unheld_with_test
  209531. .IP \(bu 2
  209532. 30da2370a4 Fix when test=True and packages were being set to unheld.
  209533. .UNINDENT
  209534. .IP \(bu 2
  209535. \fBPR\fP \fI\%#41656\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41575\fP to 2016.11
  209536. @ \fI2017\-06\-08 22:43:23 UTC\fP
  209537. .INDENT 2.0
  209538. .IP \(bu 2
  209539. \fBPR\fP \fI\%#41575\fP: (\fI\%dschaller\fP) Fix 41562 (refs: \fI\%#41656\fP)
  209540. .IP \(bu 2
  209541. a308b960d8 Merge pull request \fI\%#41656\fP from rallytime/bp\-41575
  209542. .IP \(bu 2
  209543. 4374e6b034 Replace "tbd" with release version information
  209544. .IP \(bu 2
  209545. 81413896d1 Lint: Add index numbers to format {} calls
  209546. .IP \(bu 2
  209547. 384570384e only list top level npm modules during {un)install
  209548. .UNINDENT
  209549. .IP \(bu 2
  209550. \fBPR\fP \fI\%#41456\fP: (\fI\%bdrung\fP) Fix pkgrepo.managed always return changes for test=true
  209551. @ \fI2017\-06\-08 18:21:05 UTC\fP
  209552. .INDENT 2.0
  209553. .IP \(bu 2
  209554. e6d37b5f3e Merge pull request \fI\%#41456\fP from bdrung/fix\-pkgrepo.managed\-changes\-check
  209555. .IP \(bu 2
  209556. d3ce7bf05f Fix pkgrepo.managed always return changes for test=true
  209557. .IP \(bu 2
  209558. 1592687294 Document aptpkg architectures parameter
  209559. .UNINDENT
  209560. .IP \(bu 2
  209561. \fBISSUE\fP \fI\%#41478\fP: (\fI\%jf\fP) security / information leak with consul pillar when subsitution values are not present (refs: \fI\%#41530\fP)
  209562. .IP \(bu 2
  209563. \fBPR\fP \fI\%#41530\fP: (\fI\%gtmanfred\fP) Set default for consul_pillar to None
  209564. @ \fI2017\-06\-08 18:13:15 UTC\fP
  209565. .INDENT 2.0
  209566. .IP \(bu 2
  209567. 721e5b6cb9 Merge pull request \fI\%#41530\fP from gtmanfred/2016.11
  209568. .IP \(bu 2
  209569. 2a4633ce16 Set default for consul_pillar to None
  209570. .UNINDENT
  209571. .IP \(bu 2
  209572. \fBISSUE\fP \fI\%#41629\fP: (\fI\%lubyou\fP) salt.states.cmd.script: Parameter "args" is overwritten if "name/id" contains spaces (refs: \fI\%#41638\fP)
  209573. .IP \(bu 2
  209574. \fBPR\fP \fI\%#41638\fP: (\fI\%gtmanfred\fP) don\(aqt overwrite args if they are passed to the script
  209575. @ \fI2017\-06\-08 17:48:48 UTC\fP
  209576. .INDENT 2.0
  209577. .IP \(bu 2
  209578. 8926d1c731 Merge pull request \fI\%#41638\fP from gtmanfred/cmdscript
  209579. .IP \(bu 2
  209580. 6c7d68b97d don\(aqt overwrite args if they are passed to the script
  209581. .UNINDENT
  209582. .IP \(bu 2
  209583. \fBPR\fP \fI\%#41639\fP: (\fI\%dmurphy18\fP) Update notrim check, netstat takes minutes if large number connections
  209584. @ \fI2017\-06\-07 23:03:24 UTC\fP
  209585. .INDENT 2.0
  209586. .IP \(bu 2
  209587. ecb09b8694 Merge pull request \fI\%#41639\fP from dmurphy18/minion_netstat_check
  209588. .IP \(bu 2
  209589. 7ab3319090 Update notrim check, netstat takes minutes if large number connections \- 260K
  209590. .UNINDENT
  209591. .IP \(bu 2
  209592. \fBISSUE\fP \fI\%#38894\fP: (\fI\%amendlik\fP) salt.runner and salt.wheel ignore test=True (refs: \fI\%#41309\fP, \fI\%#41611\fP)
  209593. .IP \(bu 2
  209594. \fBPR\fP \fI\%#41611\fP: (\fI\%garethgreenaway\fP) Additional fixes to states/saltmod.py
  209595. @ \fI2017\-06\-07 22:58:24 UTC\fP
  209596. .INDENT 2.0
  209597. .IP \(bu 2
  209598. 2913a33b27 Merge pull request \fI\%#41611\fP from garethgreenaway/41309_right_return_res
  209599. .IP \(bu 2
  209600. fda41ede76 Updating result values to be None for test cases.
  209601. .IP \(bu 2
  209602. 003f2d9323 Following the documentation, when passed the test=True argument the runner and wheel functions should return a result value of False.
  209603. .UNINDENT
  209604. .IP \(bu 2
  209605. \fBISSUE\fP \fI\%#41626\fP: (\fI\%ruiaylin\fP) When onlyif and bg are used together the (refs: \fI\%#41637\fP)
  209606. .IP \(bu 2
  209607. \fBPR\fP \fI\%#41637\fP: (\fI\%gtmanfred\fP) never run bg for onlyif or unless cmd states
  209608. @ \fI2017\-06\-07 17:37:47 UTC\fP
  209609. .INDENT 2.0
  209610. .IP \(bu 2
  209611. 334a5fc2a0 Merge pull request \fI\%#41637\fP from gtmanfred/cmd
  209612. .IP \(bu 2
  209613. 40fb6c6249 never run bg for onlyif or unless cmd states
  209614. .UNINDENT
  209615. .IP \(bu 2
  209616. \fBPR\fP \fI\%#41255\fP: (\fI\%lordcirth\fP) linux_syctl.default_config(): only return path, don\(aqt create it
  209617. @ \fI2017\-06\-07 14:13:07 UTC\fP
  209618. .INDENT 2.0
  209619. .IP \(bu 2
  209620. 34dd9ea862 Merge pull request \fI\%#41255\fP from lordcirth/fix\-sysctl\-test\-11
  209621. .IP \(bu 2
  209622. 0089be4440 linux_sysctl: use dirname() as suggested
  209623. .IP \(bu 2
  209624. 262d95e41d linux_syctl.default_config(): only return path, don\(aqt create it
  209625. .IP \(bu 2
  209626. 277232b3ac linux_sysctl.persist(): create config dir if needed
  209627. .UNINDENT
  209628. .IP \(bu 2
  209629. \fBISSUE\fP \fI\%#35481\fP: (\fI\%giany\fP) global_identifier does not work when using Softlayer driver (refs: \fI\%#41551\fP)
  209630. .IP \(bu 2
  209631. \fBPR\fP \fI\%#41616\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41551\fP to 2016.11
  209632. @ \fI2017\-06\-06 22:44:09 UTC\fP
  209633. .INDENT 2.0
  209634. .IP \(bu 2
  209635. \fBPR\fP \fI\%#41551\fP: (\fI\%darenjacobs\fP) Update __init__.py (refs: \fI\%#41616\fP)
  209636. .IP \(bu 2
  209637. 4cf577771b Merge pull request \fI\%#41616\fP from rallytime/bp\-41551
  209638. .IP \(bu 2
  209639. 53bca96328 Update __init__.py
  209640. .UNINDENT
  209641. .IP \(bu 2
  209642. \fBPR\fP \fI\%#41552\fP: (\fI\%Enquier\fP) Adding logic so that update_floatingip can dissassociate floatingip\(aqs
  209643. @ \fI2017\-06\-06 18:25:56 UTC\fP
  209644. .INDENT 2.0
  209645. .IP \(bu 2
  209646. 846ca54688 Merge pull request \fI\%#41552\fP from Enquier/neutron\-floatingip\-remove
  209647. .IP \(bu 2
  209648. aeed51c1e3 Adding port=None default and documentation
  209649. .IP \(bu 2
  209650. fcce05e1e4 Adding logic so that update_floatingip can dissassociate floatingip\(aqs Previously update_floatingip would cause an error if port is set to None.
  209651. .UNINDENT
  209652. .IP \(bu 2
  209653. \fBPR\fP \fI\%#41569\fP: (\fI\%gtmanfred\fP) Check all entries in result
  209654. @ \fI2017\-06\-06 18:18:17 UTC\fP
  209655. .INDENT 2.0
  209656. .IP \(bu 2
  209657. b720ecb732 Merge pull request \fI\%#41569\fP from gtmanfred/fix_test_result_check
  209658. .IP \(bu 2
  209659. 19ea5481b6 remove test that never passed
  209660. .IP \(bu 2
  209661. e2a4d5e1e2 Check all entries in result
  209662. .UNINDENT
  209663. .IP \(bu 2
  209664. \fBISSUE\fP \fI\%#41540\fP: (\fI\%UtahDave\fP) archive.extracted fails on second run (refs: \fI\%#41599\fP)
  209665. .IP \(bu 2
  209666. \fBPR\fP \fI\%#41599\fP: (\fI\%garethgreenaway\fP) Fixes to modules/archive.py
  209667. @ \fI2017\-06\-06 18:02:14 UTC\fP
  209668. .INDENT 2.0
  209669. .IP \(bu 2
  209670. d9546c6283 Merge pull request \fI\%#41599\fP from garethgreenaway/41540_fixes_to_archive_module
  209671. .IP \(bu 2
  209672. 66a136e6d8 Fixing issues raised in \fI\%#41540\fP when a zip file is created on a Windows system. The issue has two parts, first directories that end up in the archive end up in the results of aarchive.list twice as they show up as both files and directories because of the logic to handle the fact that Windows doesn\(aqt mark them as directories. This issue shows up when an extraction is run a second time since the module verified the file types and the subdirectory is not a file. The second issue is related to permissions, if Salt is told to extract permissions (which is the default) then the directory and files end up being unreadable since the permissions are not available. This change sets the permissions to what the default umask for the user running Salt is.
  209673. .UNINDENT
  209674. .IP \(bu 2
  209675. \fBISSUE\fP \fI\%#40950\fP: (\fI\%idokaplan\fP) Import certificate (refs: \fI\%#41453\fP, \fI\%#41383\fP)
  209676. .IP \(bu 2
  209677. \fBPR\fP \fI\%#41453\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py
  209678. @ \fI2017\-06\-06 17:15:55 UTC\fP
  209679. .INDENT 2.0
  209680. .IP \(bu 2
  209681. \fBPR\fP \fI\%#41383\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py (refs: \fI\%#41453\fP)
  209682. .IP \(bu 2
  209683. 10ac80ee96 Merge pull request \fI\%#41453\fP from peter\-funktionIT/fix_win_pki_state_import_cert
  209684. .IP \(bu 2
  209685. d146fd029c Update win_pki.py
  209686. .IP \(bu 2
  209687. ef8e3ef569 Update win_pki.py
  209688. .UNINDENT
  209689. .IP \(bu 2
  209690. \fBPR\fP \fI\%#41557\fP: (\fI\%dmurphy18\fP) Add symbolic link for salt\-proxy service similar to other serivce files
  209691. @ \fI2017\-06\-06 17:13:52 UTC\fP
  209692. .INDENT 2.0
  209693. .IP \(bu 2
  209694. 3335fcbc7d Merge pull request \fI\%#41557\fP from dmurphy18/fix\-proxy\-service
  209695. .IP \(bu 2
  209696. ffe492d6a9 Add symbolic link salt\-proxy service similar to other service files
  209697. .UNINDENT
  209698. .IP \(bu 2
  209699. \fBPR\fP \fI\%#41597\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41533\fP to 2016.11
  209700. @ \fI2017\-06\-06 15:15:09 UTC\fP
  209701. .INDENT 2.0
  209702. .IP \(bu 2
  209703. \fBPR\fP \fI\%#41533\fP: (\fI\%svinota\fP) unit tests: add pyroute2 interface dict test (refs: \fI\%#41597\fP)
  209704. .IP \(bu 2
  209705. 65ed230f45 Merge pull request \fI\%#41597\fP from rallytime/bp\-41533
  209706. .IP \(bu 2
  209707. 535b8e8d8e Update new pyroute2 unit test to conform with 2016.11 branch standards
  209708. .IP \(bu 2
  209709. 5c86dee73c unit tests: test_pyroute2 \-\- add skipIf
  209710. .IP \(bu 2
  209711. 026b39493f unit tests: add encoding clause into test_pyroute2
  209712. .IP \(bu 2
  209713. 9ab203d54b unit tests: fix absolute imports in test_pyroute2
  209714. .IP \(bu 2
  209715. 1f507cfa7a unit tests: add pyroute2 interface dict test
  209716. .UNINDENT
  209717. .IP \(bu 2
  209718. \fBPR\fP \fI\%#41596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41487\fP to 2016.11
  209719. @ \fI2017\-06\-06 02:44:17 UTC\fP
  209720. .INDENT 2.0
  209721. .IP \(bu 2
  209722. \fBPR\fP \fI\%#41487\fP: (\fI\%svinota\fP) clean up \fIchange\fP attribute from interface dict (refs: \fI\%#41596\fP)
  209723. .IP \(bu 2
  209724. bf8aed153d Merge pull request \fI\%#41596\fP from rallytime/bp\-41487
  209725. .IP \(bu 2
  209726. 7b497d9ec6 clean up \fIchange\fP attribute from interface dict
  209727. .UNINDENT
  209728. .IP \(bu 2
  209729. \fBISSUE\fP \fI\%#41435\fP: (\fI\%seanjnkns\fP) 2016.11: Keystone.endpoint_present overwrites all interfaces (refs: \fI\%#41509\fP)
  209730. .IP \(bu 2
  209731. \fBPR\fP \fI\%#41509\fP: (\fI\%seanjnkns\fP) Add keystone V3 API support for keystone.endpoint_present|absent
  209732. @ \fI2017\-06\-03 03:01:05 UTC\fP
  209733. .INDENT 2.0
  209734. .IP \(bu 2
  209735. cc6c98a8d8 Merge pull request \fI\%#41509\fP from seanjnkns/fix\-keystone\-v3\-endpoint_present
  209736. .IP \(bu 2
  209737. 095e5949a3 Fix unit tests for PR \fI\%#41509\fP
  209738. .IP \(bu 2
  209739. eb7ef3c856 Add keystone V3 API support for keystone.endpoint_present|get, endpoint_absent|delete.
  209740. .UNINDENT
  209741. .IP \(bu 2
  209742. \fBISSUE\fP \fI\%#38061\fP: (\fI\%Ch3LL\fP) x509.crl_managed ValueError when digest is not specified in the module (refs: \fI\%#41539\fP)
  209743. .IP \(bu 2
  209744. \fBPR\fP \fI\%#41539\fP: (\fI\%gtmanfred\fP) allow digest to be empty in create_crl
  209745. @ \fI2017\-06\-02 17:00:04 UTC\fP
  209746. .INDENT 2.0
  209747. .IP \(bu 2
  209748. 0a08649637 Merge pull request \fI\%#41539\fP from gtmanfred/x509
  209749. .IP \(bu 2
  209750. 0989be8919 allow digest to be empty in create_crl
  209751. .UNINDENT
  209752. .IP \(bu 2
  209753. \fBISSUE\fP \fI\%#41154\fP: (\fI\%mephi42\fP) archive.extracted outputs password embedded in archive URL (refs: \fI\%#41561\fP)
  209754. .IP \(bu 2
  209755. \fBPR\fP \fI\%#41561\fP: (\fI\%terminalmage\fP) Redact HTTP basic authentication in archive.extracted
  209756. @ \fI2017\-06\-02 15:33:14 UTC\fP
  209757. .INDENT 2.0
  209758. .IP \(bu 2
  209759. 3ae8336895 Merge pull request \fI\%#41561\fP from terminalmage/issue41154
  209760. .IP \(bu 2
  209761. cbf8acbafc Redact HTTP basic authentication in archive.extracted
  209762. .UNINDENT
  209763. .IP \(bu 2
  209764. \fBPR\fP \fI\%#41436\fP: (\fI\%skizunov\fP) TCP transport: Fix occasional errors when using salt command (refs: \fI\%#41787\fP)
  209765. @ \fI2017\-06\-01 16:37:43 UTC\fP
  209766. .INDENT 2.0
  209767. .IP \(bu 2
  209768. 39840bfe4e Merge pull request \fI\%#41436\fP from skizunov/develop2
  209769. .IP \(bu 2
  209770. 07d5862773 unit.transport.tcp_test: Clean up channel after use
  209771. .IP \(bu 2
  209772. 4b6aec7154 Preserve original IO Loop on cleanup
  209773. .IP \(bu 2
  209774. 892c6d4d24 TCP transport: Fix occasional errors when using salt command
  209775. .UNINDENT
  209776. .IP \(bu 2
  209777. \fBISSUE\fP \fI\%#41335\fP: (\fI\%syphernl\fP) [2016.11.5] ssh_auth.present: IndexError: list index out of range (refs: \fI\%#41337\fP)
  209778. .IP \(bu 2
  209779. \fBPR\fP \fI\%#41337\fP: (\fI\%Foxlik\fP) Fix \fI\%#41335\fP \- list index out of range on empty line in authorized_keys
  209780. @ \fI2017\-05\-31 19:59:17 UTC\fP
  209781. .INDENT 2.0
  209782. .IP \(bu 2
  209783. 06ed4f077b Merge pull request \fI\%#41337\fP from Foxlik/2016.11
  209784. .IP \(bu 2
  209785. 916fecb64f modify ssh_test.py, to check empty lines and comments in authorized_keys \fI\%#41335\fP
  209786. .IP \(bu 2
  209787. 011d6d65e7 Fix \fI\%#41335\fP \- list index out of range on empty line in authorized_keys
  209788. .UNINDENT
  209789. .IP \(bu 2
  209790. \fBPR\fP \fI\%#41512\fP: (\fI\%twangboy\fP) Use psutil where possible in win_status.py
  209791. @ \fI2017\-05\-31 19:56:00 UTC\fP
  209792. .INDENT 2.0
  209793. .IP \(bu 2
  209794. 1ace72d871 Merge pull request \fI\%#41512\fP from twangboy/fix_win_status
  209795. .IP \(bu 2
  209796. 582d09b484 Get psutil import
  209797. .IP \(bu 2
  209798. fd88bb277f Remove unused imports (lint)
  209799. .IP \(bu 2
  209800. 41a39dff00 Use psutil where possible
  209801. .UNINDENT
  209802. .IP \(bu 2
  209803. \fBPR\fP \fI\%#41490\fP: (\fI\%t0fik\fP) Backport of SELinux module installation and removal
  209804. @ \fI2017\-05\-31 19:38:00 UTC\fP
  209805. .INDENT 2.0
  209806. .IP \(bu 2
  209807. 683cc5f414 Merge pull request \fI\%#41490\fP from jdsieci/2016.11_selinux
  209808. .IP \(bu 2
  209809. e2fbada1c1 Backport of SELinux module installation and removal
  209810. .UNINDENT
  209811. .IP \(bu 2
  209812. \fBPR\fP \fI\%#41522\fP: (\fI\%jettero\fP) Sadly, you can\(aqt have \(aq.\(aqs and \(aq$\(aqs in dict keys in a mongodb doc.
  209813. @ \fI2017\-05\-31 15:55:24 UTC\fP
  209814. .INDENT 2.0
  209815. .IP \(bu 2
  209816. 2e7e84b8f2 Merge pull request \fI\%#41522\fP from jettero/mongodb\-keys\-are\-stupid
  209817. .IP \(bu 2
  209818. 12648f5439 dang, thought I already got that. Apparently only got the bottom one. This should do it.
  209819. .IP \(bu 2
  209820. 7c4a763518 ugh, forgot about this lint too. This one looks especially terrible.
  209821. .IP \(bu 2
  209822. c973988d8d forgot about the linter pass … fixed
  209823. .IP \(bu 2
  209824. da0d9e4045 Sadly, you can\(aqt have \(aq.\(aqs and \(aq$\(aqs in dict keys in a mongodb doc.
  209825. .UNINDENT
  209826. .IP \(bu 2
  209827. \fBISSUE\fP \fI\%#41504\fP: (\fI\%mtkennerly\fP) Can\(aqt set REG_DWORD registry value larger than 0x7FFFFFFF (refs: \fI\%#41506\fP)
  209828. .IP \(bu 2
  209829. \fBPR\fP \fI\%#41506\fP: (\fI\%gtmanfred\fP) check for integer types
  209830. @ \fI2017\-05\-31 00:48:21 UTC\fP
  209831. .INDENT 2.0
  209832. .IP \(bu 2
  209833. 30ad4fd9a0 Merge pull request \fI\%#41506\fP from gtmanfred/2016.11
  209834. .IP \(bu 2
  209835. 5fe2e9bbf5 check for integer types
  209836. .UNINDENT
  209837. .IP \(bu 2
  209838. \fBPR\fP \fI\%#41469\fP: (\fI\%Ch3LL\fP) Fix keep_jobs keyerror in redis returner
  209839. @ \fI2017\-05\-30 18:37:42 UTC\fP
  209840. .INDENT 2.0
  209841. .IP \(bu 2
  209842. 06ef17dec3 Merge pull request \fI\%#41469\fP from Ch3LL/fix_redis_error
  209843. .IP \(bu 2
  209844. 8ee1251a3a Fix keep_jobs keyerror in redis returner
  209845. .UNINDENT
  209846. .IP \(bu 2
  209847. \fBPR\fP \fI\%#41473\fP: (\fI\%twangboy\fP) Fix win_firewall execution and state modules
  209848. @ \fI2017\-05\-30 18:35:24 UTC\fP
  209849. .INDENT 2.0
  209850. .IP \(bu 2
  209851. 7a09b2b678 Merge pull request \fI\%#41473\fP from twangboy/fix_win_firewall
  209852. .IP \(bu 2
  209853. e503b455c3 Fix lint error
  209854. .IP \(bu 2
  209855. d3f0f8bcd2 Fix win_firewall execution and state modules
  209856. .UNINDENT
  209857. .IP \(bu 2
  209858. \fBPR\fP \fI\%#41499\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209859. @ \fI2017\-05\-30 18:06:03 UTC\fP
  209860. .INDENT 2.0
  209861. .IP \(bu 2
  209862. f635cb11c4 Merge pull request \fI\%#41499\fP from rallytime/merge\-2016.11
  209863. .IP \(bu 2
  209864. 20d893d397 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209865. .IP \(bu 2
  209866. 964b1ee027 Merge pull request \fI\%#41439\fP from terminalmage/salt\-cp\-base64
  209867. .INDENT 2.0
  209868. .IP \(bu 2
  209869. ebf6cc78c7 base64 encode binary data sent using salt\-cp
  209870. .UNINDENT
  209871. .UNINDENT
  209872. .IP \(bu 2
  209873. \fBPR\fP \fI\%#41464\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39850\fP to 2016.11
  209874. @ \fI2017\-05\-26 21:22:44 UTC\fP
  209875. .INDENT 2.0
  209876. .IP \(bu 2
  209877. \fBPR\fP \fI\%#39850\fP: (\fI\%epcim\fP) Fix endpoint handling per region (refs: \fI\%#41464\fP)
  209878. .IP \(bu 2
  209879. 83f1e48241 Merge pull request \fI\%#41464\fP from rallytime/bp\-39850
  209880. .IP \(bu 2
  209881. 9b84b751b2 Pylint fixes
  209882. .IP \(bu 2
  209883. 6db8915021 Endpoint handling per region, fixes \fI\%#35874\fP \- extend tests for multiple regions \- region arg by default set to None \- print verbose changes to be exec.
  209884. .UNINDENT
  209885. .IP \(bu 2
  209886. \fBPR\fP \fI\%#41443\fP: (\fI\%UtahDave\fP) use proper arg number
  209887. @ \fI2017\-05\-26 20:36:37 UTC\fP
  209888. .INDENT 2.0
  209889. .IP \(bu 2
  209890. 960c5767fa Merge pull request \fI\%#41443\fP from UtahDave/fix_args_masterpy
  209891. .IP \(bu 2
  209892. dfbdc275ca use proper arg number
  209893. .UNINDENT
  209894. .IP \(bu 2
  209895. \fBISSUE\fP \fI\%#41341\fP: (\fI\%lorengordon\fP) TypeError traceback in network.system with retain_settings=True (refs: \fI\%#41350\fP)
  209896. .IP \(bu 2
  209897. \fBPR\fP \fI\%#41350\fP: (\fI\%lorengordon\fP) Supports quoted values in /etc/sysconfig/network
  209898. @ \fI2017\-05\-26 16:22:03 UTC\fP
  209899. .INDENT 2.0
  209900. .IP \(bu 2
  209901. 88c28c18c3 Merge pull request \fI\%#41350\fP from lorengordon/issue\-41341
  209902. .IP \(bu 2
  209903. f2f6da7039 Supports quoted values in /etc/sysconfig/network
  209904. .UNINDENT
  209905. .IP \(bu 2
  209906. \fBPR\fP \fI\%#41398\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  209907. @ \fI2017\-05\-26 15:17:49 UTC\fP
  209908. .INDENT 2.0
  209909. .IP \(bu 2
  209910. 824f2d3b69 Merge pull request \fI\%#41398\fP from rallytime/merge\-2016.11
  209911. .IP \(bu 2
  209912. 2941e9c923 Merge pull request \fI\%#22\fP from terminalmage/merge\-2016.11
  209913. .INDENT 2.0
  209914. .IP \(bu 2
  209915. 087a958afc base64 encode binary data sent using salt\-cp
  209916. .UNINDENT
  209917. .IP \(bu 2
  209918. 503f925275 Add missing import
  209919. .IP \(bu 2
  209920. d2d9a3d29f Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  209921. .INDENT 2.0
  209922. .IP \(bu 2
  209923. d617c9fe72 Merge pull request \fI\%#41265\fP from terminalmage/issue41234
  209924. .INDENT 2.0
  209925. .IP \(bu 2
  209926. edf552fe9a Update PKG_TARGETS for RHEL\-based distros
  209927. .IP \(bu 2
  209928. 0ecc7b9b20 yumpkg: fix latest_version() when showdupesfromrepos=1 set in /etc/yum.conf
  209929. .UNINDENT
  209930. .IP \(bu 2
  209931. 26bd914580 Merge pull request \fI\%#41316\fP from Ch3LL/update_latest_2016.3
  209932. .INDENT 2.0
  209933. .IP \(bu 2
  209934. 520740d862 [2016.13] Bump latest release version to 2016.11.5
  209935. .UNINDENT
  209936. .IP \(bu 2
  209937. 18898b7d1f Merge pull request \fI\%#41216\fP from terminalmage/issue16592
  209938. .INDENT 2.0
  209939. .IP \(bu 2
  209940. 0e15fdbb1a Update salt\-cp integration test to reflect recent changes
  209941. .IP \(bu 2
  209942. 10dc695cc4 Make salt\-cp work with larger files
  209943. .IP \(bu 2
  209944. c078180539 Make KeyErrors more specific when interpreting returns
  209945. .IP \(bu 2
  209946. fc401c9eb4 Add generator functions for reading files
  209947. .UNINDENT
  209948. .UNINDENT
  209949. .UNINDENT
  209950. .IP \(bu 2
  209951. \fBPR\fP \fI\%#41442\fP: (\fI\%UtahDave\fP) use proper arg number
  209952. @ \fI2017\-05\-26 13:42:50 UTC\fP
  209953. .INDENT 2.0
  209954. .IP \(bu 2
  209955. ec08064b99 Merge pull request \fI\%#41442\fP from UtahDave/fix_args
  209956. .IP \(bu 2
  209957. 0324833c9e use proper arg number
  209958. .UNINDENT
  209959. .IP \(bu 2
  209960. \fBISSUE\fP \fI\%#37824\fP: (\fI\%dxiri\fP) SSLError Trying to use v3 API of Openstack Newton as provider. (refs: \fI\%#41397\fP, \fI\%#40752\fP)
  209961. .IP \(bu 2
  209962. \fBISSUE\fP \fI\%#36548\fP: (\fI\%abonillasuse\fP) openstack auth with nova driver (refs: \fI\%#38647\fP)
  209963. .IP \(bu 2
  209964. \fBPR\fP \fI\%#41397\fP: (\fI\%Enquier\fP) Updating Nova/Neutron modules to support KeystoneAuth and SSLVerify
  209965. @ \fI2017\-05\-25 21:16:14 UTC\fP
  209966. .INDENT 2.0
  209967. .IP \(bu 2
  209968. \fBPR\fP \fI\%#40752\fP: (\fI\%Enquier\fP) Add ability to specify a custom SSL certificate or disable SSL verification in KeystoneAuth v3 (refs: \fI\%#41397\fP)
  209969. .IP \(bu 2
  209970. \fBPR\fP \fI\%#38647\fP: (\fI\%gtmanfred\fP) Allow novaclient to use keystoneauth1 sessions for authentication (refs: \fI\%#41397\fP)
  209971. .IP \(bu 2
  209972. 22096d9213 Merge pull request \fI\%#41397\fP from Enquier/neutron\-ssl\-verify
  209973. .IP \(bu 2
  209974. d25dcf61d5 Small error in nova that was preventing execution
  209975. .IP \(bu 2
  209976. 0e7a1009ed Updated module docs to include changes made
  209977. .IP \(bu 2
  209978. 05e0192665 Adding missing os_auth_system
  209979. .IP \(bu 2
  209980. 4e0f4981e4 allow service_type to be specified default is now \(aqnetwork\(aq
  209981. .IP \(bu 2
  209982. 991e84343f Added non\-profile and defaults for Neutron
  209983. .IP \(bu 2
  209984. c93f112c9b Updating Nova Module to include use_keystone Auth
  209985. .IP \(bu 2
  209986. 66ab1e5184 Re\-adding neutron dependency check
  209987. .IP \(bu 2
  209988. cce07eefc2 Updating Neutron module to suport KeystoneAuth
  209989. .UNINDENT
  209990. .IP \(bu 2
  209991. \fBISSUE\fP \fI\%#34460\fP: (\fI\%Ch3LL\fP) Receive an error when using salt\-api to call a runner (refs: \fI\%#41409\fP)
  209992. .IP \(bu 2
  209993. \fBPR\fP \fI\%#41409\fP: (\fI\%garethgreenaway\fP) Fixes to ipc transport
  209994. @ \fI2017\-05\-25 21:06:27 UTC\fP
  209995. .INDENT 2.0
  209996. .IP \(bu 2
  209997. 14a58cf536 Merge pull request \fI\%#41409\fP from garethgreenaway/34460_fixes_ipc_transport
  209998. .IP \(bu 2
  209999. 5613b72dfe Updating the exception variable to be more in line with the rest of the exception code
  210000. .IP \(bu 2
  210001. 41eee8b333 Fixing a potential lint issue
  210002. .IP \(bu 2
  210003. 760d561dfa Fixing a potential lint issue
  210004. .IP \(bu 2
  210005. c11bcd0d12 Changing the approaching and including an except for the action socket.error exception, then logging a trace log if error number is 0 and an error log otherwise.
  210006. .IP \(bu 2
  210007. 3f950596f4 Fixing lint issues.
  210008. .IP \(bu 2
  210009. f3a6531a69 On occasion an exception will occur which results in the event not returning properly, even though the wire_bytes is correctly populated. In this situation, we log to trace and continue. \fI\%#34460\fP
  210010. .UNINDENT
  210011. .IP \(bu 2
  210012. \fBPR\fP \fI\%#41421\fP: (\fI\%UtahDave\fP) Correct doc to actually blacklist a module
  210013. @ \fI2017\-05\-25 21:01:46 UTC\fP
  210014. .INDENT 2.0
  210015. .IP \(bu 2
  210016. 824428700d Merge pull request \fI\%#41421\fP from UtahDave/fix_blacklist_docs
  210017. .IP \(bu 2
  210018. 5eb27571a0 Correct doc to actually blacklist a module
  210019. .UNINDENT
  210020. .IP \(bu 2
  210021. \fBISSUE\fP \fI\%#41353\fP: (\fI\%rmarchei\fP) Orchestrate runner needs saltenv on 2016.11.5 (refs: \fI\%#41431\fP)
  210022. .IP \(bu 2
  210023. \fBPR\fP \fI\%#41431\fP: (\fI\%terminalmage\fP) Fix regression in state orchestration
  210024. @ \fI2017\-05\-25 18:44:53 UTC\fP
  210025. .INDENT 2.0
  210026. .IP \(bu 2
  210027. b98d5e00d4 Merge pull request \fI\%#41431\fP from terminalmage/issue41353
  210028. .IP \(bu 2
  210029. 16eae64cca Fix regression in state orchestration
  210030. .UNINDENT
  210031. .IP \(bu 2
  210032. \fBISSUE\fP \fI\%#41338\fP: (\fI\%ricohouse\fP) Exception not raised when running config compare and the device (Juniper) returns error (refs: \fI\%#41429\fP)
  210033. .IP \(bu 2
  210034. \fBPR\fP \fI\%#41429\fP: (\fI\%ricohouse\fP) Issue \fI\%#41338\fP: Return false when compare config fails
  210035. @ \fI2017\-05\-25 17:18:02 UTC\fP
  210036. .INDENT 2.0
  210037. .IP \(bu 2
  210038. eeff3dd7fb Merge pull request \fI\%#41429\fP from ricohouse/fix\-compare\-bug
  210039. .IP \(bu 2
  210040. 9b61665c4c Issue \fI\%#41338\fP: Return false when compare config fails
  210041. .UNINDENT
  210042. .IP \(bu 2
  210043. \fBPR\fP \fI\%#41414\fP: (\fI\%Ch3LL\fP) Update bootstrap script verstion to latest release(v2017.05.24)
  210044. @ \fI2017\-05\-24 19:51:49 UTC\fP
  210045. .INDENT 2.0
  210046. .IP \(bu 2
  210047. 561a416cf3 Merge pull request \fI\%#41414\fP from Ch3LL/update_bootstrap
  210048. .IP \(bu 2
  210049. d8c03eef60 Update bootstrap script verstion to latest release(v2017.05.24)
  210050. .UNINDENT
  210051. .IP \(bu 2
  210052. \fBPR\fP \fI\%#41336\fP: (\fI\%mcalmer\fP) fix setting and getting locale on SUSE systems
  210053. @ \fI2017\-05\-24 17:46:08 UTC\fP
  210054. .INDENT 2.0
  210055. .IP \(bu 2
  210056. 88fd3c0ed9 Merge pull request \fI\%#41336\fP from mcalmer/fix\-locale\-on\-SUSE
  210057. .IP \(bu 2
  210058. f30f5c8a25 fix unit tests
  210059. .IP \(bu 2
  210060. 428baa9bce fix setting and getting locale on SUSE systems
  210061. .UNINDENT
  210062. .IP \(bu 2
  210063. \fBPR\fP \fI\%#41393\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41235\fP to 2016.11
  210064. @ \fI2017\-05\-24 16:08:56 UTC\fP
  210065. .INDENT 2.0
  210066. .IP \(bu 2
  210067. \fBPR\fP \fI\%#41235\fP: (\fI\%moio\fP) rest_cherrypy: remove sleep call (refs: \fI\%#41393\fP)
  210068. .IP \(bu 2
  210069. 4265959647 Merge pull request \fI\%#41393\fP from rallytime/bp\-41235
  210070. .IP \(bu 2
  210071. c79c0e3f43 rest_cherrypy: remove sleep call
  210072. .UNINDENT
  210073. .IP \(bu 2
  210074. \fBPR\fP \fI\%#41394\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41243\fP to 2016.11
  210075. @ \fI2017\-05\-24 16:00:17 UTC\fP
  210076. .INDENT 2.0
  210077. .IP \(bu 2
  210078. \fBPR\fP \fI\%#41243\fP: (\fI\%arif\-ali\fP) Remove the keys that don\(aqt exist in the new change (refs: \fI\%#41394\fP)
  210079. .IP \(bu 2
  210080. 83f54694f9 Merge pull request \fI\%#41394\fP from rallytime/bp\-41243
  210081. .IP \(bu 2
  210082. a5351302af Lint fix
  210083. .IP \(bu 2
  210084. 05fadc0af3 Remove the keys that don\(aqt exist in the new change
  210085. .UNINDENT
  210086. .IP \(bu 2
  210087. \fBPR\fP \fI\%#41401\fP: (\fI\%bdrung\fP) Add documentation key to systemd service files
  210088. @ \fI2017\-05\-24 15:49:54 UTC\fP
  210089. .INDENT 2.0
  210090. .IP \(bu 2
  210091. 3a45ac30f0 Merge pull request \fI\%#41401\fP from bdrung/systemd\-service\-documentation\-key
  210092. .IP \(bu 2
  210093. 3f7f30895d Add documentation key to systemd service files
  210094. .UNINDENT
  210095. .IP \(bu 2
  210096. \fBPR\fP \fI\%#41404\fP: (\fI\%bdrung\fP) Fix typos
  210097. @ \fI2017\-05\-24 14:42:44 UTC\fP
  210098. .INDENT 2.0
  210099. .IP \(bu 2
  210100. d34333c30b Merge pull request \fI\%#41404\fP from bdrung/fix\-typos
  210101. .IP \(bu 2
  210102. 33a7f8b2ec Fix typos
  210103. .UNINDENT
  210104. .IP \(bu 2
  210105. \fBPR\fP \fI\%#41388\fP: (\fI\%bdrung\fP) Do not require sphinx\-build for cleaning docs
  210106. @ \fI2017\-05\-23 19:32:41 UTC\fP
  210107. .INDENT 2.0
  210108. .IP \(bu 2
  210109. 3083764195 Merge pull request \fI\%#41388\fP from bdrung/clean\-doc\-without\-sphinx
  210110. .IP \(bu 2
  210111. 5b79a0a9f8 Do not require sphinx\-build for cleaning docs
  210112. .UNINDENT
  210113. .IP \(bu 2
  210114. \fBISSUE\fP \fI\%#41362\fP: (\fI\%automate\-solutions\fP) On AWS EC2: salt\-cloud \-f delete_keypair ec2 keyname=mykeypair doesn\(aqt delete the keypair (refs: \fI\%#41364\fP)
  210115. .IP \(bu 2
  210116. \fBPR\fP \fI\%#41364\fP: (\fI\%automate\-solutions\fP) Fix issue \fI\%#41362\fP invalid parameter used: KeyName.1 instead of KeyName
  210117. @ \fI2017\-05\-23 17:32:10 UTC\fP
  210118. .INDENT 2.0
  210119. .IP \(bu 2
  210120. 842875e590 Merge pull request \fI\%#41364\fP from automate\-solutions/fix\-issue\-41362
  210121. .IP \(bu 2
  210122. cfd8eb7a87 Set DescribeKeyPairs back to KeyName.1 according to documentation
  210123. .IP \(bu 2
  210124. 6a82ddc6fc Fix issue \fI\%#41362\fP invalid parameter used: KeyName.1 instead of KeyName
  210125. .UNINDENT
  210126. .IP \(bu 2
  210127. \fBISSUE\fP \fI\%#40950\fP: (\fI\%idokaplan\fP) Import certificate (refs: \fI\%#41453\fP, \fI\%#41383\fP)
  210128. .IP \(bu 2
  210129. \fBPR\fP \fI\%#41383\fP: (\fI\%peter\-funktionIT\fP) Update win_pki.py (refs: \fI\%#41453\fP)
  210130. @ \fI2017\-05\-23 17:26:43 UTC\fP
  210131. .INDENT 2.0
  210132. .IP \(bu 2
  210133. 92f94e66bc Merge pull request \fI\%#41383\fP from peter\-funktionIT/fix\-win_pki\-get_cert_file
  210134. .IP \(bu 2
  210135. 4d9bd06176 Update win_pki.py
  210136. .UNINDENT
  210137. .IP \(bu 2
  210138. \fBPR\fP \fI\%#41113\fP: (\fI\%cro\fP) Rescue proxy_auto_tests PR from git rebase hell
  210139. @ \fI2017\-05\-22 17:05:07 UTC\fP
  210140. .INDENT 2.0
  210141. .IP \(bu 2
  210142. \fBPR\fP \fI\%#39575\fP: (\fI\%cro\fP) WIP: Proxy auto test, feedback appreciated (refs: \fI\%#41113\fP)
  210143. .IP \(bu 2
  210144. 1ba95684a9 Merge pull request \fI\%#41113\fP from cro/proxy_auto_test2
  210145. .IP \(bu 2
  210146. 19db038b99 Fix test\-\-use proxy_config instead of minion_config
  210147. .IP \(bu 2
  210148. 7749ceadb6 Change default proxy minion opts so only the proxy\-specific ones are listed, and the rest are taken from DEFAULT_MINION_OPTS.
  210149. .IP \(bu 2
  210150. 106394c80c Lint.
  210151. .IP \(bu 2
  210152. 3be90cc9f4 Rescue proxy_auto_tests PR from git rebase hell
  210153. .UNINDENT
  210154. .IP \(bu 2
  210155. \fBPR\fP \fI\%#41360\fP: (\fI\%cro\fP) Sysrc on FreeBSD, YAML overeager to coerce to bool and int
  210156. @ \fI2017\-05\-22 15:54:31 UTC\fP
  210157. .INDENT 2.0
  210158. .IP \(bu 2
  210159. 375892d910 Merge pull request \fI\%#41360\fP from cro/sysrc_fix
  210160. .IP \(bu 2
  210161. 6db31ce52a Fix problem with sysrc on FreeBSD, YAML overeager to coerce to bool and int.
  210162. .UNINDENT
  210163. .IP \(bu 2
  210164. \fBISSUE\fP \fI\%#41190\fP: (\fI\%jheidbrink\fP) Cannot extract tar.xz archive when it exceeds size of /tmp (refs: \fI\%#41372\fP)
  210165. .IP \(bu 2
  210166. \fBPR\fP \fI\%#41372\fP: (\fI\%terminalmage\fP) Don\(aqt use intermediate file when listing contents of tar.xz file
  210167. @ \fI2017\-05\-22 15:36:45 UTC\fP
  210168. .INDENT 2.0
  210169. .IP \(bu 2
  210170. 01b71c75c1 Merge pull request \fI\%#41372\fP from terminalmage/issue41190
  210171. .IP \(bu 2
  210172. 1f08936d9c Remove unused import
  210173. .IP \(bu 2
  210174. 68cb897520 Replace reference to fileobj
  210175. .IP \(bu 2
  210176. 788874408a Remove \(aq*\(aq from mode
  210177. .IP \(bu 2
  210178. 3d4b833627 Don\(aqt use intermediate file when listing contents of tar.xz file
  210179. .UNINDENT
  210180. .IP \(bu 2
  210181. \fBPR\fP \fI\%#41373\fP: (\fI\%alex\-zel\fP) Allow HTTP authentication to ES.
  210182. @ \fI2017\-05\-22 15:32:09 UTC\fP
  210183. .INDENT 2.0
  210184. .IP \(bu 2
  210185. 5edfcf972c Merge pull request \fI\%#41373\fP from alex\-zel/patch\-3
  210186. .IP \(bu 2
  210187. 3192eab128 Allow HTTP authentication to ES.
  210188. .UNINDENT
  210189. .IP \(bu 2
  210190. \fBISSUE\fP \fI\%#40748\fP: (\fI\%djhaskin987\fP) Consul backend minion cache does not work (refs: \fI\%#41287\fP)
  210191. .IP \(bu 2
  210192. \fBPR\fP \fI\%#41287\fP: (\fI\%garethgreenaway\fP) Fix to consul cache
  210193. @ \fI2017\-05\-19 18:32:56 UTC\fP
  210194. .INDENT 2.0
  210195. .IP \(bu 2
  210196. 29bd7f48b7 Merge pull request \fI\%#41287\fP from garethgreenaway/40748_2016_11_consul
  210197. .IP \(bu 2
  210198. 5039fe12fb Removing chdir as it is no needed with this change
  210199. .IP \(bu 2
  210200. 4550c3ce49 Updating the code that is pulling in the list of cached minions to use self.cache.list instead of relying on checking the local file system, which only works for the localfs cache method. \fI\%#40748\fP
  210201. .UNINDENT
  210202. .IP \(bu 2
  210203. \fBISSUE\fP \fI\%#38894\fP: (\fI\%amendlik\fP) salt.runner and salt.wheel ignore test=True (refs: \fI\%#41309\fP, \fI\%#41611\fP)
  210204. .IP \(bu 2
  210205. \fBPR\fP \fI\%#41309\fP: (\fI\%garethgreenaway\fP) Adding test argument for runners & wheel orchestration modules
  210206. @ \fI2017\-05\-19 18:26:09 UTC\fP
  210207. .INDENT 2.0
  210208. .IP \(bu 2
  210209. 672aaa88d3 Merge pull request \fI\%#41309\fP from garethgreenaway/38894_allowing_test_argument
  210210. .IP \(bu 2
  210211. e1a88e8bf7 Allowing test=True to be passed for salt.runner and salt.wheel when used with orchestration
  210212. .UNINDENT
  210213. .IP \(bu 2
  210214. \fBISSUE\fP \fI\%#41306\fP: (\fI\%lomeroe\fP) win_lgpo does not properly pack group policy version number in gpt.ini (refs: \fI\%#41319\fP, \fI\%#41307\fP)
  210215. .IP \(bu 2
  210216. \fBPR\fP \fI\%#41319\fP: (\fI\%lomeroe\fP) backport \fI\%#41307\fP to 2016.11, properly pack version numbers into single
  210217. @ \fI2017\-05\-19 18:25:00 UTC\fP
  210218. .INDENT 2.0
  210219. .IP \(bu 2
  210220. \fBPR\fP \fI\%#41307\fP: (\fI\%lomeroe\fP) properly pack/unpack the verison numbers into a number (refs: \fI\%#41319\fP)
  210221. .IP \(bu 2
  210222. 140b0427e1 Merge pull request \fI\%#41319\fP from lomeroe/bp_41307
  210223. .IP \(bu 2
  210224. 4f0aa577a5 backport 41307 to 2016.11, properly pack version numbers into single number
  210225. .UNINDENT
  210226. .IP \(bu 2
  210227. \fBPR\fP \fI\%#41327\fP: (\fI\%Ch3LL\fP) Add 2016.11.6 Release Notes
  210228. @ \fI2017\-05\-19 18:05:09 UTC\fP
  210229. .INDENT 2.0
  210230. .IP \(bu 2
  210231. 6bdb7cca7d Merge pull request \fI\%#41327\fP from Ch3LL/add_2016.11.6_release
  210232. .IP \(bu 2
  210233. e5fc0aeb9c Add 2016.11.6 Release Notes
  210234. .UNINDENT
  210235. .IP \(bu 2
  210236. \fBPR\fP \fI\%#41329\fP: (\fI\%lorengordon\fP) Corrects versionadded for win_network.get_route
  210237. @ \fI2017\-05\-19 17:47:57 UTC\fP
  210238. .INDENT 2.0
  210239. .IP \(bu 2
  210240. 1faffd3932 Merge pull request \fI\%#41329\fP from lorengordon/doc\-fix
  210241. .IP \(bu 2
  210242. 3c471247f0 Corrects versionadded for win_network.get_route
  210243. .UNINDENT
  210244. .IP \(bu 2
  210245. \fBPR\fP \fI\%#41322\fP: (\fI\%Ch3LL\fP) Add patched packages warning to 2016.11.5 release notes
  210246. @ \fI2017\-05\-18 21:53:26 UTC\fP
  210247. .INDENT 2.0
  210248. .IP \(bu 2
  210249. 6ca65592da Merge pull request \fI\%#41322\fP from Ch3LL/fix_release_2016.11.5_notes
  210250. .IP \(bu 2
  210251. 9a1bf4205f fix url refs in rst
  210252. .IP \(bu 2
  210253. cde008ff77 Add patched packages warning to 2016.11.5 release notes
  210254. .UNINDENT
  210255. .IP \(bu 2
  210256. \fBPR\fP \fI\%#41208\fP: (\fI\%pkazmierczak\fP) Fix: zypper handling of multiple version packages
  210257. @ \fI2017\-05\-18 15:44:26 UTC\fP
  210258. .INDENT 2.0
  210259. .IP \(bu 2
  210260. 9f359d841f Merge pull request \fI\%#41208\fP from pkazmierczak/pkazmierczak\-zypper\-multiple\-ver\-pkgs
  210261. .IP \(bu 2
  210262. d411a91676 Reverted back to cascading with statements for python 2.6 compat
  210263. .IP \(bu 2
  210264. 7204013653 Compacted with statements in the unit test.
  210265. .IP \(bu 2
  210266. 6c4c08042c Added unit tests and copied the behavior to .upgrade method, too.
  210267. .IP \(bu 2
  210268. 5f952007f6 Fix: zypper handling of multiple version packages
  210269. .UNINDENT
  210270. .IP \(bu 2
  210271. \fBPR\fP \fI\%#41317\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.5
  210272. @ \fI2017\-05\-18 15:34:13 UTC\fP
  210273. .INDENT 2.0
  210274. .IP \(bu 2
  210275. bcef99adb6 Merge pull request \fI\%#41317\fP from Ch3LL/update_latest_2016.11
  210276. .IP \(bu 2
  210277. cdb072c207 [2016.11] Bump latest release version to 2016.11.5
  210278. .UNINDENT
  210279. .IP \(bu 2
  210280. \fBPR\fP \fI\%#41232\fP: (\fI\%axmetishe\fP) Add basic auth for SPM
  210281. @ \fI2017\-05\-17 19:08:56 UTC\fP
  210282. .INDENT 2.0
  210283. .IP \(bu 2
  210284. b8ddd7ee08 Merge pull request \fI\%#41232\fP from axmetishe/2016.11
  210285. .IP \(bu 2
  210286. 76104f23b4 Add basic auth for SPM
  210287. .UNINDENT
  210288. .IP \(bu 2
  210289. \fBPR\fP \fI\%#41236\fP: (\fI\%BenoitKnecht\fP) states: cron: show correct changes when using \fIspecial\fP
  210290. @ \fI2017\-05\-17 18:51:58 UTC\fP
  210291. .INDENT 2.0
  210292. .IP \(bu 2
  210293. 7bdb66d969 Merge pull request \fI\%#41236\fP from BenoitKnecht/2016.11
  210294. .IP \(bu 2
  210295. 33211d032e states: cron: show correct changes when using \fIspecial\fP
  210296. .UNINDENT
  210297. .IP \(bu 2
  210298. \fBPR\fP \fI\%#41269\fP: (\fI\%isbm\fP) Bugfix: Unable to use "127" as hostname for the Minion ID
  210299. @ \fI2017\-05\-17 18:31:15 UTC\fP
  210300. .INDENT 2.0
  210301. .IP \(bu 2
  210302. 1c1e092f56 Merge pull request \fI\%#41269\fP from isbm/isbm\-minion\-id\-127\-name
  210303. .IP \(bu 2
  210304. 5168ef8959 Add unit test for hostname can be started from 127
  210305. .IP \(bu 2
  210306. 0d0354198b Harden to 127. IP part
  210307. .IP \(bu 2
  210308. d9c8324a6b Unit test for accepting hosts names as 127
  210309. .IP \(bu 2
  210310. 65b03c667b Bugfix: unable to use 127 as hostname
  210311. .UNINDENT
  210312. .IP \(bu 2
  210313. \fBPR\fP \fI\%#41289\fP: (\fI\%garethgreenaway\fP) Fixing consul cache
  210314. @ \fI2017\-05\-17 16:54:12 UTC\fP
  210315. .INDENT 2.0
  210316. .IP \(bu 2
  210317. d0fa31d4ca Merge pull request \fI\%#41289\fP from garethgreenaway/2016_11_5_fix_consul_cache_ls
  210318. .IP \(bu 2
  210319. 780a28c9a0 Swapping the order in the func_alias so the ls function is available.
  210320. .UNINDENT
  210321. .IP \(bu 2
  210322. \fBISSUE\fP \fI\%#41291\fP: (\fI\%lomeroe\fP) win_lgpo does not properly convert large decimal values in regpol data (refs: \fI\%#41301\fP, \fI\%#41303\fP)
  210323. .IP \(bu 2
  210324. \fBPR\fP \fI\%#41303\fP: (\fI\%lomeroe\fP) backport \fI\%#41301\fP \-\- properly convert packed string to decimal values
  210325. @ \fI2017\-05\-17 16:32:22 UTC\fP
  210326. .INDENT 2.0
  210327. .IP \(bu 2
  210328. \fBPR\fP \fI\%#41301\fP: (\fI\%lomeroe\fP) properly convert packed string to decimal values (refs: \fI\%#41303\fP)
  210329. .IP \(bu 2
  210330. 6566648948 Merge pull request \fI\%#41303\fP from lomeroe/bp\-41301
  210331. .IP \(bu 2
  210332. f4b93f9d9a properly convert packed string to decimal values
  210333. .UNINDENT
  210334. .IP \(bu 2
  210335. \fBISSUE\fP \fI\%#41231\fP: (\fI\%kaihowl\fP) PR \fI\%#30777\fP misses an update to the documentation for pkg.installed and hold:true (refs: \fI\%#41251\fP)
  210336. .IP \(bu 2
  210337. \fBISSUE\fP \fI\%#30733\fP: (\fI\%ealphonse\fP) version\-controlled packages with hold: True can no longer be upgraded by salt (refs: \fI\%#30777\fP)
  210338. .IP \(bu 2
  210339. \fBPR\fP \fI\%#41283\fP: (\fI\%terminalmage\fP) Backport \fI\%#41251\fP to 2016.11
  210340. @ \fI2017\-05\-16 18:01:17 UTC\fP
  210341. .INDENT 2.0
  210342. .IP \(bu 2
  210343. \fBPR\fP \fI\%#41251\fP: (\fI\%abednarik\fP) Update apt module regarding upgrade against hold packages. (refs: \fI\%#41283\fP)
  210344. .IP \(bu 2
  210345. \fBPR\fP \fI\%#30777\fP: (\fI\%abednarik\fP) Fix update apt hold pkgs (refs: \fI\%#41251\fP)
  210346. .IP \(bu 2
  210347. 44598617be Merge pull request \fI\%#41283\fP from terminalmage/bp\-41251
  210348. .IP \(bu 2
  210349. ed03ca534f Update apt module regarding upgrade against hold packages.
  210350. .UNINDENT
  210351. .IP \(bu 2
  210352. \fBPR\fP \fI\%#41181\fP: (\fI\%gtmanfred\fP) add resolving extra flags to yum upgrade
  210353. @ \fI2017\-05\-16 04:07:47 UTC\fP
  210354. .INDENT 2.0
  210355. .IP \(bu 2
  210356. d8e9676fcf Merge pull request \fI\%#41181\fP from gtmanfred/2016.11
  210357. .IP \(bu 2
  210358. 2ca71713b1 use six and clean_kwargs
  210359. .IP \(bu 2
  210360. c9bf09a5a1 add resolving extra flags to yum upgrade
  210361. .UNINDENT
  210362. .IP \(bu 2
  210363. \fBISSUE\fP \fI\%#40177\fP: (\fI\%eldadru\fP) libcloud_dns state "global name \(aq__salt__\(aq is not defined" in salt.cmd runner (refs: \fI\%#40246\fP)
  210364. .IP \(bu 2
  210365. \fBPR\fP \fI\%#41220\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40246\fP to 2016.11
  210366. @ \fI2017\-05\-15 17:59:38 UTC\fP
  210367. .INDENT 2.0
  210368. .IP \(bu 2
  210369. \fBPR\fP \fI\%#40246\fP: (\fI\%tonybaloney\fP) Fix libcloud_dns state module bug (refs: \fI\%#41220\fP)
  210370. .IP \(bu 2
  210371. 75942235f0 Merge pull request \fI\%#41220\fP from rallytime/bp\-40246
  210372. .IP \(bu 2
  210373. 79f1bb2bba Remove unused/duplicate imports leftover from merge\-conflict resolution
  210374. .IP \(bu 2
  210375. 2f610680e5 remove unused imports
  210376. .IP \(bu 2
  210377. 9b7de2e7d7 fix unit tests
  210378. .IP \(bu 2
  210379. 49d94559ab linting
  210380. .IP \(bu 2
  210381. 4b260a4594 linting
  210382. .IP \(bu 2
  210383. 41d1adab5f fix up tests
  210384. .IP \(bu 2
  210385. b3822e03fc add fixes for incorrectly importing modules directly instead of using __salt__
  210386. .UNINDENT
  210387. .IP \(bu 2
  210388. \fBISSUE\fP \fI\%#41230\fP: (\fI\%RealKelsar\fP) 2016.11.5 IPv6 nameserver in resolv.conf leads to minion exception (refs: \fI\%#41244\fP)
  210389. .IP \(bu 2
  210390. \fBISSUE\fP \fI\%#40912\fP: (\fI\%razed11\fP) IPV6 Warning when ipv6 set to False (refs: \fI\%#40934\fP)
  210391. .IP \(bu 2
  210392. \fBPR\fP \fI\%#41244\fP: (\fI\%cachedout\fP) Fix ipv6 nameserver grains
  210393. @ \fI2017\-05\-15 17:55:39 UTC\fP
  210394. .INDENT 2.0
  210395. .IP \(bu 2
  210396. \fBPR\fP \fI\%#40934\fP: (\fI\%gtmanfred\fP) Only display IPvX warning if role is master (refs: \fI\%#41244\fP)
  210397. .IP \(bu 2
  210398. 53d5b3e816 Merge pull request \fI\%#41244\fP from cachedout/fix_ipv6_nameserver_grains
  210399. .IP \(bu 2
  210400. f745db1a43 Lint
  210401. .IP \(bu 2
  210402. 6e1ab69710 Partial revert of \fI\%#40934\fP
  210403. .IP \(bu 2
  210404. 88f49f9146 Revert "Only display IPvX warning if role is master"
  210405. .UNINDENT
  210406. .IP \(bu 2
  210407. \fBPR\fP \fI\%#41242\fP: (\fI\%pprkut\fP) Fix changing a mysql user to unix socket authentication.
  210408. @ \fI2017\-05\-15 17:00:06 UTC\fP
  210409. .INDENT 2.0
  210410. .IP \(bu 2
  210411. 895fe582eb Merge pull request \fI\%#41242\fP from M2Mobi/mysql_socket_auth
  210412. .IP \(bu 2
  210413. 7d8359766d Fix changing a mysql user to unix socket authentication.
  210414. .UNINDENT
  210415. .IP \(bu 2
  210416. \fBISSUE\fP \fI\%#40940\fP: (\fI\%djhaskin987\fP) When \fIstate_aggregate\fP is set to \fITrue\fP, the \fIlatest\fP keyword doesn\(aqt work with pkg.installed (refs: \fI\%#41101\fP)
  210417. .IP \(bu 2
  210418. \fBPR\fP \fI\%#41101\fP: (\fI\%terminalmage\fP) Fix "latest" keyword for version specification when used with aggregation
  210419. @ \fI2017\-05\-15 16:52:35 UTC\fP
  210420. .INDENT 2.0
  210421. .IP \(bu 2
  210422. 50d8fde123 Merge pull request \fI\%#41101\fP from terminalmage/issue40940
  210423. .IP \(bu 2
  210424. 7fe64219ae Add rtag check to integration test for pkg.refresh_db
  210425. .IP \(bu 2
  210426. 88a08aa3bf Add comments to explain what removing the rtag file actually does
  210427. .IP \(bu 2
  210428. 92011dbe5f Fix "latest" keyword for version specification when used with aggregation
  210429. .UNINDENT
  210430. .IP \(bu 2
  210431. \fBISSUE\fP \fI\%#34775\fP: (\fI\%babilen\fP) Please allow users to disable branch environment mapping in GitFS (refs: \fI\%#41144\fP)
  210432. .IP \(bu 2
  210433. \fBPR\fP \fI\%#41146\fP: (\fI\%terminalmage\fP) gitfs: Backport performance fixes for getting tree objects
  210434. @ \fI2017\-05\-12 17:35:47 UTC\fP
  210435. .INDENT 2.0
  210436. .IP \(bu 2
  210437. \fBPR\fP \fI\%#41144\fP: (\fI\%terminalmage\fP) gitfs: Add two new options to affect saltenv mapping (refs: \fI\%#41146\fP)
  210438. .IP \(bu 2
  210439. 049712ba53 Merge pull request \fI\%#41146\fP from terminalmage/backport\-get_tree\-performance\-improvement
  210440. .IP \(bu 2
  210441. f9d6734afe gitfs: Backport performance fixes for getting tree objects
  210442. .UNINDENT
  210443. .IP \(bu 2
  210444. \fBISSUE\fP \fI\%#41135\fP: (\fI\%shallot\fP) gpg renderer doesn\(aqt seem to work with salt\-ssh, tries to execute gpg on the minion? (refs: \fI\%#41161\fP)
  210445. .IP \(bu 2
  210446. \fBPR\fP \fI\%#41161\fP: (\fI\%The\-Loeki\fP) gpg renderer: fix gpg_keydir always reverting to default
  210447. @ \fI2017\-05\-12 17:19:07 UTC\fP
  210448. .INDENT 2.0
  210449. .IP \(bu 2
  210450. 4215a0b99d Merge pull request \fI\%#41161\fP from The\-Loeki/2016.11
  210451. .IP \(bu 2
  210452. 24946fef18 gpg renderer: fix gpg_keydir always reverting to default
  210453. .UNINDENT
  210454. .IP \(bu 2
  210455. \fBISSUE\fP \fI\%#41162\fP: (\fI\%onlyanegg\fP) Elasticsearch module functions should pass hosts and profile to index_exists() (refs: \fI\%#41163\fP)
  210456. .IP \(bu 2
  210457. \fBPR\fP \fI\%#41163\fP: (\fI\%onlyanegg\fP) Elasticsearch \- pass hosts and profile to index_exists()
  210458. @ \fI2017\-05\-12 17:18:06 UTC\fP
  210459. .INDENT 2.0
  210460. .IP \(bu 2
  210461. 5b10fc58ba Merge pull request \fI\%#41163\fP from onlyanegg/elasticsearch\-pass_profile_to_index_exists
  210462. .IP \(bu 2
  210463. 7f512c701b Pass hosts and profile to index_exists() method
  210464. .UNINDENT
  210465. .IP \(bu 2
  210466. \fBISSUE\fP \fI\%#41185\fP: (\fI\%jmarinaro\fP) package name collisions in chocolatey state (refs: \fI\%#41186\fP)
  210467. .IP \(bu 2
  210468. \fBPR\fP \fI\%#41186\fP: (\fI\%jmarinaro\fP) Fix package name collisions in chocolatey state
  210469. @ \fI2017\-05\-12 17:01:31 UTC\fP
  210470. .INDENT 2.0
  210471. .IP \(bu 2
  210472. d433cf850d Merge pull request \fI\%#41186\fP from jmarinaro/fix\-chocolatey\-package\-collision
  210473. .IP \(bu 2
  210474. 229f3bf9f3 apply changes to uninstalled function
  210475. .IP \(bu 2
  210476. ffd4c7ef04 Fix package name collisions in chocolatey state
  210477. .UNINDENT
  210478. .IP \(bu 2
  210479. \fBPR\fP \fI\%#41189\fP: (\fI\%github\-abcde\fP) utils/minions.py: Fixed case where data is an empty dict resulting in…
  210480. @ \fI2017\-05\-12 16:32:25 UTC\fP
  210481. .INDENT 2.0
  210482. .IP \(bu 2
  210483. bb5ef41ce0 Merge pull request \fI\%#41189\fP from github\-abcde/utils\-minions\-fix
  210484. .IP \(bu 2
  210485. 853dc5406c utils/minions.py: Fixed case where data is an empty dict resulting in errors.
  210486. .UNINDENT
  210487. .IP \(bu 2
  210488. \fBPR\fP \fI\%#41104\fP: (\fI\%Ch3LL\fP) Add test to query results of /jobs call in api
  210489. @ \fI2017\-05\-10 20:11:08 UTC\fP
  210490. .INDENT 2.0
  210491. .IP \(bu 2
  210492. b136b15330 Merge pull request \fI\%#41104\fP from Ch3LL/add_jobs_test
  210493. .IP \(bu 2
  210494. dac16583b7 add test to query results of /jobs call in api
  210495. .UNINDENT
  210496. .IP \(bu 2
  210497. \fBPR\fP \fI\%#41170\fP: (\fI\%lomeroe\fP) Backport \fI\%#41081\fP to 2016.11
  210498. @ \fI2017\-05\-10 19:58:52 UTC\fP
  210499. .INDENT 2.0
  210500. .IP \(bu 2
  210501. \fBPR\fP \fI\%#41081\fP: (\fI\%lomeroe\fP) Update win_dns_client to use reg.read_value and set_value (refs: \fI\%#41170\fP)
  210502. .IP \(bu 2
  210503. ca18b4df93 Merge pull request \fI\%#41170\fP from lomeroe/bp\-41081
  210504. .IP \(bu 2
  210505. 2af89f2165 update mock data
  210506. .IP \(bu 2
  210507. b7fa115a59 update win_dns_client tests with correct module names
  210508. .IP \(bu 2
  210509. 4d05a22675 Update win_dns_client to use reg.read_value and set_value
  210510. .UNINDENT
  210511. .IP \(bu 2
  210512. \fBPR\fP \fI\%#41173\fP: (\fI\%twangboy\fP) Add silent action to MsgBox for Path Actions
  210513. @ \fI2017\-05\-10 19:57:06 UTC\fP
  210514. .INDENT 2.0
  210515. .IP \(bu 2
  210516. d7ec37b003 Merge pull request \fI\%#41173\fP from twangboy/fix_installer
  210517. .IP \(bu 2
  210518. 24b11ffdc2 Add release notes
  210519. .IP \(bu 2
  210520. 96918dcfa6 Add silent action to MsgBox for Path Actions
  210521. .UNINDENT
  210522. .IP \(bu 2
  210523. \fBPR\fP \fI\%#41158\fP: (\fI\%Ch3LL\fP) 2016.11.5 release notes: add additional commits
  210524. @ \fI2017\-05\-09 22:41:40 UTC\fP
  210525. .INDENT 2.0
  210526. .IP \(bu 2
  210527. 88e93b7fe5 Merge pull request \fI\%#41158\fP from Ch3LL/update_2016.11.5
  210528. .IP \(bu 2
  210529. 28371aa035 2016.11.5 release notes: add additional commits
  210530. .UNINDENT
  210531. .IP \(bu 2
  210532. \fBPR\fP \fI\%#41148\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  210533. @ \fI2017\-05\-09 20:23:28 UTC\fP
  210534. .INDENT 2.0
  210535. .IP \(bu 2
  210536. d2ae7deff2 Merge pull request \fI\%#41148\fP from rallytime/merge\-2016.11
  210537. .IP \(bu 2
  210538. aba35e20dd Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  210539. .INDENT 2.0
  210540. .IP \(bu 2
  210541. 2969153097 Merge pull request \fI\%#41122\fP from terminalmage/masterless\-env_cache\-fix
  210542. .INDENT 2.0
  210543. .IP \(bu 2
  210544. be732f0577 gitfs: refresh env cache during update in masterless
  210545. .UNINDENT
  210546. .IP \(bu 2
  210547. b8f0a4f108 Merge pull request \fI\%#41123\fP from terminalmage/gitfs\-vsts\-note
  210548. .INDENT 2.0
  210549. .IP \(bu 2
  210550. f6a16956a0 Add note on lack of support for VSTS in older libssh2 releases.
  210551. .UNINDENT
  210552. .IP \(bu 2
  210553. 8f79b6f537 Merge pull request \fI\%#41090\fP from bbinet/rdurations_float
  210554. .IP \(bu 2
  210555. fd48a63653 rdurations should be floats so that they can be summed when profiling
  210556. .UNINDENT
  210557. .UNINDENT
  210558. .IP \(bu 2
  210559. \fBPR\fP \fI\%#41147\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39676\fP to 2016.11
  210560. @ \fI2017\-05\-09 18:40:44 UTC\fP
  210561. .INDENT 2.0
  210562. .IP \(bu 2
  210563. \fBPR\fP \fI\%#39676\fP: (\fI\%F30\fP) Fix comments about the "hash_type" option (refs: \fI\%#41147\fP)
  210564. .IP \(bu 2
  210565. 2156395b2e Merge pull request \fI\%#41147\fP from rallytime/bp\-39676
  210566. .IP \(bu 2
  210567. 5b55fb2452 Fix comments about the "hash_type" option
  210568. .UNINDENT
  210569. .IP \(bu 2
  210570. \fBPR\fP \fI\%#40852\fP: (\fI\%isbm\fP) Isbm fix coregrains constants bsc#1032931
  210571. @ \fI2017\-05\-09 18:35:46 UTC\fP
  210572. .INDENT 2.0
  210573. .IP \(bu 2
  210574. a2f359fa13 Merge pull request \fI\%#40852\fP from isbm/isbm\-fix\-coregrains\-constants\-bsc#1032931
  210575. .IP \(bu 2
  210576. f3b12a3f5b Do not use multiple variables in "with" statement as of lint issues
  210577. .IP \(bu 2
  210578. 35a8d99934 Disable the test for a while
  210579. .IP \(bu 2
  210580. 76cb1b7150 Rewrite test case for using no patch decorators
  210581. .IP \(bu 2
  210582. f71af0b625 Fix lint issues
  210583. .IP \(bu 2
  210584. 0e6abb3e37 Add UT on set_hw_clock on Gentoo
  210585. .IP \(bu 2
  210586. a2b1d4638c Add UT for set_hwclock on Debian
  210587. .IP \(bu 2
  210588. 5356a0821a Bugfix: use correct grain name for SUSE platform
  210589. .IP \(bu 2
  210590. 88e8184702 Add UT set_hwclock on SUSE
  210591. .IP \(bu 2
  210592. 0cd590f927 Fix UT names
  210593. .IP \(bu 2
  210594. bee94ade63 Add UT for set_hwclock on RedHat
  210595. .IP \(bu 2
  210596. dfe2610d05 Add UT for set_hwclock on Arch
  210597. .IP \(bu 2
  210598. d000a8a6f5 Add UT for set_hwclock on solaris
  210599. .IP \(bu 2
  210600. d2614aedaa Fix docstrings
  210601. .IP \(bu 2
  210602. 6d782191dc Add UT for set_hwclock on AIX
  210603. .IP \(bu 2
  210604. d303e0dd8a Add UT for AIX on get_hwclock
  210605. .IP \(bu 2
  210606. 86f2d83781 Add UT on Solaris
  210607. .IP \(bu 2
  210608. c3cafed6d5 Add UT for Debian on get_hwclock
  210609. .IP \(bu 2
  210610. d337c09357 Add UT for RedHat/SUSE platforms on get_hwclock
  210611. .IP \(bu 2
  210612. 501a59ca7e Bugfix: use correct grain for SUSE and RedHat platform
  210613. .IP \(bu 2
  210614. f25dc5c56c Add UT for get_hwclock on SUSE platform
  210615. .IP \(bu 2
  210616. 08e00c865c Remove dead code
  210617. .IP \(bu 2
  210618. 1216a0bf12 Add UT for get_hwclock on UTC/localtime
  210619. .IP \(bu 2
  210620. 39332c71d3 Remove duplicate code
  210621. .IP \(bu 2
  210622. 58676c568d Add UT for Debian on set_zone
  210623. .IP \(bu 2
  210624. 1b9ce37b1b Add UT for gentoo on set_zone
  210625. .IP \(bu 2
  210626. cf7f766a68 Bugfix: use correct os_family grain value for SUSE series
  210627. .IP \(bu 2
  210628. 6ed9be985e Adjust UT to use correct grain for SUSE series
  210629. .IP \(bu 2
  210630. ce4c836a60 Add UT for set_zone on SUSE series
  210631. .IP \(bu 2
  210632. 155a498b49 Doc fix
  210633. .IP \(bu 2
  210634. a40876cdac Remove unnecessary mock patch
  210635. .IP \(bu 2
  210636. ffab2db213 Fix doc for RH UT
  210637. .IP \(bu 2
  210638. 72388f7ae2 Add UT for RedHat\(aqs set_zone
  210639. .IP \(bu 2
  210640. 11595d3a42 Refactor with setup/teardown
  210641. .IP \(bu 2
  210642. ce6a06de98 Bugfix: use correct grain constant for platform
  210643. .IP \(bu 2
  210644. 28072c9e41 Adjust the test so it is using the right grain for SUSE systems
  210645. .IP \(bu 2
  210646. 7a0e4be4f8 Add unit test for get_zone and various platforms
  210647. .UNINDENT
  210648. .IP \(bu 2
  210649. \fBISSUE\fP \fI\%#41105\fP: (\fI\%terminalmage\fP) ssl_verify gitfs/git_pillar option does not work with pygit2 (refs: \fI\%#41111\fP)
  210650. .IP \(bu 2
  210651. \fBPR\fP \fI\%#41111\fP: (\fI\%terminalmage\fP) Allow "ssl_verify: False" to work with pygit2
  210652. @ \fI2017\-05\-09 17:56:12 UTC\fP
  210653. .INDENT 2.0
  210654. .IP \(bu 2
  210655. 6fa41dc89d Merge pull request \fI\%#41111\fP from terminalmage/issue41105
  210656. .IP \(bu 2
  210657. 8c6410e3cd Add notices about ssl_verify only working in 0.23.2 and newer
  210658. .IP \(bu 2
  210659. 98ce829729 Support ssl_verify in pygit2
  210660. .IP \(bu 2
  210661. f73c4b7167 Add http(s) auth config docs for GitPython
  210662. .UNINDENT
  210663. .IP \(bu 2
  210664. \fBPR\fP \fI\%#41008\fP: (\fI\%cro\fP) Look in /opt/\fI/lib instead of just /opt/local/lib on Illumos distros.
  210665. @ *2017\-05\-09 16:56:00 UTC\fP
  210666. .INDENT 2.0
  210667. .IP \(bu 2
  210668. 81add1b944 Merge pull request \fI\%#41008\fP from cro/rsax_smos
  210669. .IP \(bu 2
  210670. a4f7aa145e Look for libcrypto in both /opt/tools and /opt/local on Illumos\-based distros.
  210671. .UNINDENT
  210672. .IP \(bu 2
  210673. \fBPR\fP \fI\%#41124\fP: (\fI\%gtmanfred\fP) add user_data to digitalocean
  210674. @ \fI2017\-05\-09 16:47:42 UTC\fP
  210675. .INDENT 2.0
  210676. .IP \(bu 2
  210677. c649725e9b Merge pull request \fI\%#41124\fP from gtmanfred/do
  210678. .IP \(bu 2
  210679. 2370d9316b add user_data to digital ocean
  210680. .UNINDENT
  210681. .IP \(bu 2
  210682. \fBISSUE\fP \fI\%#41125\fP: (\fI\%tmeneau\fP) service.running returns True if enable=None and init script returns 0 (refs: \fI\%#41127\fP)
  210683. .IP \(bu 2
  210684. \fBPR\fP \fI\%#41127\fP: (\fI\%tmeneau\fP) Fix incorrect service.running state response when enable=None and init script returns 0
  210685. @ \fI2017\-05\-09 16:43:35 UTC\fP
  210686. .INDENT 2.0
  210687. .IP \(bu 2
  210688. d0a3fcf33a Merge pull request \fI\%#41127\fP from xetus\-oss/fix\-41125\-service\-running
  210689. .IP \(bu 2
  210690. d8766562c9 fix incorrect service.running success response
  210691. .UNINDENT
  210692. .UNINDENT
  210693. .SS Salt 2016.11.7 Release Notes
  210694. .sp
  210695. Version 2016.11.7 is a bugfix release for 2016.11.0\&.
  210696. .SS Security Fix
  210697. .sp
  210698. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  210699. traversals on the Salt\-master
  210700. .sp
  210701. This release corrects a flaw in minion ID validation which could allow certain
  210702. minions to authenticate to a master despite not having the correct credentials.
  210703. To exploit the vulnerability, an attacker must create a salt\-minion with an ID
  210704. containing characters that will cause a directory traversal. Credit for
  210705. discovering the security flaw goes to: \fI\%Vernhk@qq.com\fP
  210706. .SS Salt 2016.11.8 Release Notes
  210707. .sp
  210708. Version 2016.11.8 is a bugfix release for 2016.11.0\&.
  210709. .SS Statistics
  210710. .INDENT 0.0
  210711. .IP \(bu 2
  210712. Total Merges: \fB171\fP
  210713. .IP \(bu 2
  210714. Total Issue References: \fB68\fP
  210715. .IP \(bu 2
  210716. Total PR References: \fB202\fP
  210717. .IP \(bu 2
  210718. Contributors: \fB61\fP (\fI\%AFriemann\fP, \fI\%Ch3LL\fP, \fI\%CorvinM\fP, \fI\%Da\-Juan\fP, \fI\%DmitryKuzmenko\fP, \fI\%UtahDave\fP, \fI\%abulford\fP, \fI\%amalleo25\fP, \fI\%amendlik\fP, \fI\%aneeshusa\fP, \fI\%aogier\fP, \fI\%arount\fP, \fI\%arthurlogilab\fP, \fI\%astronouth7303\fP, \fI\%binocvlar\fP, \fI\%blarghmatey\fP, \fI\%cachedout\fP, \fI\%clem\-compilatio\fP, \fI\%corywright\fP, \fI\%cri\-epita\fP, \fI\%damon\-atkins\fP, \fI\%davidjb\fP, \fI\%dglloyd\fP, \fI\%dmurphy18\fP, \fI\%ferringb\fP, \fI\%garethgreenaway\fP, \fI\%gdubroeucq\fP, \fI\%gilbsgilbs\fP, \fI\%goten4\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jagguli\fP, \fI\%kevinanderson1\fP, \fI\%kojiromike\fP, \fI\%kstreee\fP, \fI\%leeclemens\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%lubyou\fP, \fI\%mcarlton00\fP, \fI\%meaksh\fP, \fI\%morganwillcock\fP, \fI\%nhavens\fP, \fI\%pabloh007\fP, \fI\%rallytime\fP, \fI\%remijouannet\fP, \fI\%renner\fP, \fI\%root360\-AndreasUlm\fP, \fI\%s\-sebastian\fP, \fI\%sarcasticadmin\fP, \fI\%sbojarski\fP, \fI\%shengis\fP, \fI\%tdutrion\fP, \fI\%terminalmage\fP, \fI\%toanju\fP, \fI\%twangboy\fP, \fI\%ushmodin\fP, \fI\%viktorkrivak\fP, \fI\%vutny\fP, \fI\%whiteinge\fP, \fI\%xiaoanyunfei\fP)
  210719. .UNINDENT
  210720. .SS Security Fix
  210721. .sp
  210722. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  210723. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  210724. a master via a crafted minion ID. Credit for discovering the security flaw goes
  210725. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  210726. .sp
  210727. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  210728. authentication request. Credit for discovering the security flaw goes to:
  210729. Julian Brost (\fI\%julian@0x4a42.net\fP)
  210730. .SS Anonymous Binds and LDAP/Active Directory
  210731. .sp
  210732. When \fBauth.ldap.anonymous\fP is set to \fBFalse\fP, the bind password can no
  210733. longer be empty.
  210734. .SS Changelog for v2016.11.7..v2016.11.8
  210735. .sp
  210736. \fIGenerated at: 2018\-05\-27 20:23:07 UTC\fP
  210737. .INDENT 0.0
  210738. .IP \(bu 2
  210739. \fBPR\fP \fI\%#43508\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43333\fP to 2016.11.8
  210740. @ \fI2017\-09\-14 21:40:19 UTC\fP
  210741. .INDENT 2.0
  210742. .IP \(bu 2
  210743. \fBPR\fP \fI\%#43333\fP: (\fI\%damon\-atkins\fP) Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed as params + 1 bug (refs: \fI\%#43508\fP)
  210744. .IP \(bu 2
  210745. a648f75949 Merge pull request \fI\%#43508\fP from rallytime/bp\-43333
  210746. .IP \(bu 2
  210747. d4981a2717 Update doco
  210748. .IP \(bu 2
  210749. a7c8b9e048 Update win_pkg.py
  210750. .IP \(bu 2
  210751. 1d6dc6fb72 Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  210752. .UNINDENT
  210753. .IP \(bu 2
  210754. \fBPR\fP \fI\%#43434\fP: (\fI\%rallytime\fP) Add 2016.11.8 release notes
  210755. @ \fI2017\-09\-11 17:06:29 UTC\fP
  210756. .INDENT 2.0
  210757. .IP \(bu 2
  210758. e7009877bc Merge pull request \fI\%#43434\fP from rallytime/2016.11.8\-release\-notes
  210759. .IP \(bu 2
  210760. 68f529ee5e Add 2016.11.8 release notes
  210761. .UNINDENT
  210762. .IP \(bu 2
  210763. \fBPR\fP \fI\%#43271\fP: (\fI\%twangboy\fP) Fix minor formatting issue
  210764. @ \fI2017\-08\-30 18:35:12 UTC\fP
  210765. .INDENT 2.0
  210766. .IP \(bu 2
  210767. cf21f91fb2 Merge pull request \fI\%#43271\fP from twangboy/win_fix_pkg.install
  210768. .IP \(bu 2
  210769. 91b062f564 Fix formatting issue, spaces surrounding +
  210770. .UNINDENT
  210771. .IP \(bu 2
  210772. \fBPR\fP \fI\%#43228\fP: (\fI\%twangboy\fP) Win fix pkg.install
  210773. @ \fI2017\-08\-30 14:26:21 UTC\fP
  210774. .INDENT 2.0
  210775. .IP \(bu 2
  210776. 3a0b02f3ae Merge pull request \fI\%#43228\fP from twangboy/win_fix_pkg.install
  210777. .IP \(bu 2
  210778. 13dfabb1ce Fix regex statement, add \fI\&.\fP
  210779. .IP \(bu 2
  210780. 31ff69f0ad Add underscore to regex search
  210781. .IP \(bu 2
  210782. 3cf2b6575c Fix spelling
  210783. .IP \(bu 2
  210784. ed030a35a5 Use regex to detect salt\-minion install
  210785. .IP \(bu 2
  210786. e5daff495a Fix pkg.install
  210787. .UNINDENT
  210788. .IP \(bu 2
  210789. \fBPR\fP \fI\%#43191\fP: (\fI\%viktorkrivak\fP) Fix apache.config with multiple statement
  210790. @ \fI2017\-08\-28 18:13:44 UTC\fP
  210791. .INDENT 2.0
  210792. .IP \(bu 2
  210793. b4c689dff5 Merge pull request \fI\%#43191\fP from viktorkrivak/fix\-apache\-config\-multi\-entity
  210794. .IP \(bu 2
  210795. c15bcbe1cc Merge remote\-tracking branch \(aqupstream/2016.11\(aq into fix\-apache\-config\-multi\-entity
  210796. .IP \(bu 2
  210797. 4164047951 Fix apache.config with multiple statement At this moment when you post more than one statement in config only last is used. Also file is rewrited multiple times until last statement is written. Example: salt \(aq*\(aq apache.config /etc/httpd/conf.d/ports.conf config="[{\(aqListen\(aq: \(aq8080\(aq}, {\(aqProxy\(aq: "Something"}]" Ends only with Proxy Something and ignore Listen 8080, This patch fix this issue.
  210798. .UNINDENT
  210799. .IP \(bu 2
  210800. \fBISSUE\fP \fI\%#42279\fP: (\fI\%dafyddj\fP) win_lgpo matches multiple policies due to startswith() (refs: \fI\%#43154\fP, \fI\%#43116\fP)
  210801. .IP \(bu 2
  210802. \fBPR\fP \fI\%#43154\fP: (\fI\%lomeroe\fP) Backport \fI\%#43116\fP to 2016.11
  210803. @ \fI2017\-08\-28 16:40:41 UTC\fP
  210804. .INDENT 2.0
  210805. .IP \(bu 2
  210806. \fBPR\fP \fI\%#43116\fP: (\fI\%lomeroe\fP) Fix 42279 in develop (refs: \fI\%#43154\fP)
  210807. .IP \(bu 2
  210808. b90e59ede9 Merge pull request \fI\%#43154\fP from lomeroe/bp\-43116\-2016.11
  210809. .IP \(bu 2
  210810. 8f593b0b02 verify that files exist before trying to remove them, win_file.remove raises an exception if the file does not exist
  210811. .IP \(bu 2
  210812. 33a30bac06 correcting bad format statement in search for policy to be disabled
  210813. .IP \(bu 2
  210814. acc3d7ac82 correct fopen calls from salt.utils for 2016.11\(aqs utils function
  210815. .IP \(bu 2
  210816. 2da1cdd109 lint fix
  210817. .IP \(bu 2
  210818. 61bd12c0de track xml namespace to ensure policies w/duplicate IDs or Names do not conflict
  210819. .IP \(bu 2
  210820. f232bed9f9 add additional checks for ADM policies that have the same ADMX policy ID (\fI\%#42279\fP)
  210821. .UNINDENT
  210822. .IP \(bu 2
  210823. \fBISSUE\fP \fI\%#42642\fP: (\fI\%githubcdr\fP) state.augeas (refs: \fI\%#42669\fP, \fI\%#43202\fP)
  210824. .IP \(bu 2
  210825. \fBPR\fP \fI\%#43202\fP: (\fI\%garethgreenaway\fP) Reverting previous augeas module changes
  210826. @ \fI2017\-08\-28 13:14:27 UTC\fP
  210827. .INDENT 2.0
  210828. .IP \(bu 2
  210829. 5308c27f9f Merge pull request \fI\%#43202\fP from garethgreenaway/42642_2016_11_augeas_module_revert_fix
  210830. .IP \(bu 2
  210831. ef7e93eb3f Reverting this change due to it breaking other uses.
  210832. .UNINDENT
  210833. .IP \(bu 2
  210834. \fBISSUE\fP \fI\%#43101\fP: (\fI\%aogier\fP) genesis.bootstrap fails if no pkg AND exclude_pkgs (which can\(aqt be a string) (refs: \fI\%#43103\fP)
  210835. .IP \(bu 2
  210836. \fBPR\fP \fI\%#43103\fP: (\fI\%aogier\fP) genesis.bootstrap deboostrap fix
  210837. @ \fI2017\-08\-25 20:48:23 UTC\fP
  210838. .INDENT 2.0
  210839. .IP \(bu 2
  210840. f16b7246e4 Merge pull request \fI\%#43103\fP from aogier/43101\-genesis\-bootstrap
  210841. .IP \(bu 2
  210842. db94f3bb1c better formatting
  210843. .IP \(bu 2
  210844. e5cc667762 tests: fix a leftover and simplify some parts
  210845. .IP \(bu 2
  210846. 13e5997457 lint
  210847. .IP \(bu 2
  210848. 216ced69e5 allow comma\-separated pkgs lists, quote args, test deb behaviour
  210849. .IP \(bu 2
  210850. d8612ae006 fix debootstrap and enhance packages selection/deletion via cmdline
  210851. .UNINDENT
  210852. .IP \(bu 2
  210853. \fBISSUE\fP \fI\%#42329\fP: (\fI\%jagguli\fP) State git.latest does not pull latest tags (refs: \fI\%#42663\fP)
  210854. .IP \(bu 2
  210855. \fBPR\fP \fI\%#42663\fP: (\fI\%jagguli\fP) Check remote tags before deciding to do a fetch \fI\%#42329\fP
  210856. @ \fI2017\-08\-25 20:14:32 UTC\fP
  210857. .INDENT 2.0
  210858. .IP \(bu 2
  210859. 4863771428 Merge pull request \fI\%#42663\fP from StreetHawkInc/fix_git_tag_check
  210860. .IP \(bu 2
  210861. 2b5af5b59d Remove refs/tags prefix from remote tags
  210862. .IP \(bu 2
  210863. 3f2e96e561 Convert set to list for serializer
  210864. .IP \(bu 2
  210865. 2728e5d977 Only include new tags in changes
  210866. .IP \(bu 2
  210867. 4b1df2f223 Exclude annotated tags from checks
  210868. .IP \(bu 2
  210869. 389c037285 Check remote tags before deciding to do a fetch \fI\%#42329\fP
  210870. .UNINDENT
  210871. .IP \(bu 2
  210872. \fBISSUE\fP \fI\%#43198\fP: (\fI\%corywright\fP) disk.format_ needs to be aliased to disk.format (refs: \fI\%#43199\fP)
  210873. .IP \(bu 2
  210874. \fBPR\fP \fI\%#43199\fP: (\fI\%corywright\fP) Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  210875. @ \fI2017\-08\-25 19:21:07 UTC\fP
  210876. .INDENT 2.0
  210877. .IP \(bu 2
  210878. 4193e7f0a2 Merge pull request \fI\%#43199\fP from corywright/disk\-format\-alias
  210879. .IP \(bu 2
  210880. f00d3a9ddc Add \fIdisk.format\fP alias for \fIdisk.format_\fP
  210881. .UNINDENT
  210882. .IP \(bu 2
  210883. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#495\fP: (\fI\%Ch3LL\fP) npm tests failing (refs: \fI\%#43196\fP)
  210884. .IP \(bu 2
  210885. \fBPR\fP \fI\%#43196\fP: (\fI\%gtmanfred\fP) Pin request install to version for npm tests
  210886. @ \fI2017\-08\-25 18:43:06 UTC\fP
  210887. .INDENT 2.0
  210888. .IP \(bu 2
  210889. 5471f9fe0c Merge pull request \fI\%#43196\fP from gtmanfred/2016.11
  210890. .IP \(bu 2
  210891. ccd2241777 Pin request install to version
  210892. .UNINDENT
  210893. .IP \(bu 2
  210894. \fBISSUE\fP \fI\%#43143\fP: (\fI\%abulford\fP) git.detached does not fetch if rev is missing from local (refs: \fI\%#43178\fP)
  210895. .IP \(bu 2
  210896. \fBPR\fP \fI\%#43178\fP: (\fI\%terminalmage\fP) git.detached: Fix traceback when rev is a SHA and is not present locally
  210897. @ \fI2017\-08\-25 13:58:37 UTC\fP
  210898. .INDENT 2.0
  210899. .IP \(bu 2
  210900. ace2715c60 Merge pull request \fI\%#43178\fP from terminalmage/issue43143
  210901. .IP \(bu 2
  210902. 2640833400 git.detached: Fix traceback when rev is a SHA and is not present locally
  210903. .UNINDENT
  210904. .IP \(bu 2
  210905. \fBPR\fP \fI\%#43179\fP: (\fI\%terminalmage\fP) Fix missed deprecation
  210906. @ \fI2017\-08\-24 22:52:34 UTC\fP
  210907. .INDENT 2.0
  210908. .IP \(bu 2
  210909. 12e9507b9e Merge pull request \fI\%#43179\fP from terminalmage/old\-deprecation
  210910. .IP \(bu 2
  210911. 3adf8ad04b Fix missed deprecation
  210912. .UNINDENT
  210913. .IP \(bu 2
  210914. \fBPR\fP \fI\%#43171\fP: (\fI\%terminalmage\fP) Add warning about adding new functions to salt/utils/__init__.py
  210915. @ \fI2017\-08\-24 19:10:23 UTC\fP
  210916. .INDENT 2.0
  210917. .IP \(bu 2
  210918. b595440d90 Merge pull request \fI\%#43171\fP from terminalmage/salt\-utils\-warning
  210919. .IP \(bu 2
  210920. 7b5943a31a Add warning about adding new functions to salt/utils/__init__.py
  210921. .UNINDENT
  210922. .IP \(bu 2
  210923. \fBPR\fP \fI\%#43173\fP: (\fI\%Ch3LL\fP) Add New Release Branch Strategy to Contribution Docs
  210924. @ \fI2017\-08\-24 19:04:56 UTC\fP
  210925. .INDENT 2.0
  210926. .IP \(bu 2
  210927. 4f273cac4f Merge pull request \fI\%#43173\fP from Ch3LL/add_branch_docs
  210928. .IP \(bu 2
  210929. 1b24244bd3 Add New Release Branch Strategy to Contribution Docs
  210930. .UNINDENT
  210931. .IP \(bu 2
  210932. \fBPR\fP \fI\%#43151\fP: (\fI\%ushmodin\fP) state.sls hangs on file.recurse with clean: True on windows
  210933. @ \fI2017\-08\-23 17:25:33 UTC\fP
  210934. .INDENT 2.0
  210935. .IP \(bu 2
  210936. \fBPR\fP \fI\%#42969\fP: (\fI\%ushmodin\fP) state.sls hangs on file.recurse with clean: True on windows (refs: \fI\%#43151\fP)
  210937. .IP \(bu 2
  210938. 669b376abf Merge pull request \fI\%#43151\fP from ushmodin/2016.11
  210939. .IP \(bu 2
  210940. c5841e2ade state.sls hangs on file.recurse with clean: True on windows
  210941. .UNINDENT
  210942. .IP \(bu 2
  210943. \fBPR\fP \fI\%#42986\fP: (\fI\%renner\fP) Notify systemd synchronously (via NOTIFY_SOCKET)
  210944. @ \fI2017\-08\-22 16:52:56 UTC\fP
  210945. .INDENT 2.0
  210946. .IP \(bu 2
  210947. ae9d2b7985 Merge pull request \fI\%#42986\fP from renner/systemd\-notify
  210948. .IP \(bu 2
  210949. 79c53f3f81 Fallback to systemd_notify_call() in case of socket.error
  210950. .IP \(bu 2
  210951. f1765472dd Notify systemd synchronously (via NOTIFY_SOCKET)
  210952. .UNINDENT
  210953. .IP \(bu 2
  210954. \fBISSUE\fP \fI\%#43036\fP: (\fI\%mcarlton00\fP) Linux VMs in Bhyve aren\(aqt displayed properly in grains (refs: \fI\%#43037\fP)
  210955. .IP \(bu 2
  210956. \fBPR\fP \fI\%#43037\fP: (\fI\%mcarlton00\fP) Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  210957. @ \fI2017\-08\-22 16:43:40 UTC\fP
  210958. .INDENT 2.0
  210959. .IP \(bu 2
  210960. b420fbe618 Merge pull request \fI\%#43037\fP from mcarlton00/fix\-bhyve\-grains
  210961. .IP \(bu 2
  210962. 73315f0cf0 Issue \fI\%#43036\fP Bhyve virtual grain in Linux VMs
  210963. .UNINDENT
  210964. .IP \(bu 2
  210965. \fBPR\fP \fI\%#43100\fP: (\fI\%vutny\fP) [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  210966. @ \fI2017\-08\-22 15:40:09 UTC\fP
  210967. .INDENT 2.0
  210968. .IP \(bu 2
  210969. 0a86f2d884 Merge pull request \fI\%#43100\fP from vutny/doc\-add\-missing\-utils\-ext
  210970. .IP \(bu 2
  210971. af743ff6c3 [DOCS] Add missing \fIutils\fP sub\-dir listed for \fIextension_modules\fP
  210972. .UNINDENT
  210973. .IP \(bu 2
  210974. \fBISSUE\fP \fI\%#15171\fP: (\fI\%JensRantil\fP) Maximum recursion limit hit related to requisites (refs: \fI\%#42985\fP)
  210975. .IP \(bu 2
  210976. \fBPR\fP \fI\%#42985\fP: (\fI\%DmitryKuzmenko\fP) Properly handle \fIprereq\fP having lost requisites.
  210977. @ \fI2017\-08\-21 22:49:39 UTC\fP
  210978. .INDENT 2.0
  210979. .IP \(bu 2
  210980. e2bf2f448e Merge pull request \fI\%#42985\fP from DSRCorporation/bugs/15171_recursion_limit
  210981. .IP \(bu 2
  210982. 651b1bab09 Properly handle \fIprereq\fP having lost requisites.
  210983. .UNINDENT
  210984. .IP \(bu 2
  210985. \fBPR\fP \fI\%#43092\fP: (\fI\%blarghmatey\fP) Fixed issue with silently passing all tests in Testinfra module
  210986. @ \fI2017\-08\-21 20:22:08 UTC\fP
  210987. .INDENT 2.0
  210988. .IP \(bu 2
  210989. e51333306c Merge pull request \fI\%#43092\fP from mitodl/2016.11
  210990. .IP \(bu 2
  210991. d4b113acdf Fixed issue with silently passing all tests in Testinfra module
  210992. .UNINDENT
  210993. .IP \(bu 2
  210994. \fBPR\fP \fI\%#43060\fP: (\fI\%twangboy\fP) Osx update pkg scripts
  210995. @ \fI2017\-08\-21 20:06:12 UTC\fP
  210996. .INDENT 2.0
  210997. .IP \(bu 2
  210998. 77a443ce8e Merge pull request \fI\%#43060\fP from twangboy/osx_update_pkg_scripts
  210999. .IP \(bu 2
  211000. ef8a14cdf9 Remove /opt/salt instead of /opt/salt/bin
  211001. .IP \(bu 2
  211002. 2dd62aa1da Add more information to the description
  211003. .IP \(bu 2
  211004. f44f5b70dc Only stop services if they are running
  211005. .IP \(bu 2
  211006. 3b62bf953c Remove salt from the path
  211007. .IP \(bu 2
  211008. ebdca3a0f5 Update pkg\-scripts
  211009. .UNINDENT
  211010. .IP \(bu 2
  211011. \fBISSUE\fP \fI\%#42869\fP: (\fI\%abednarik\fP) Git Module : Failed to update repository (refs: \fI\%#43064\fP)
  211012. .IP \(bu 2
  211013. \fBPR\fP \fI\%#43064\fP: (\fI\%terminalmage\fP) Fix race condition in git.latest
  211014. @ \fI2017\-08\-21 14:29:52 UTC\fP
  211015. .INDENT 2.0
  211016. .IP \(bu 2
  211017. 1b1b6da803 Merge pull request \fI\%#43064\fP from terminalmage/issue42869
  211018. .IP \(bu 2
  211019. 093c0c2f77 Fix race condition in git.latest
  211020. .UNINDENT
  211021. .IP \(bu 2
  211022. \fBISSUE\fP \fI\%#42041\fP: (\fI\%lorengordon\fP) pkg.list_repo_pkgs fails to find pkgs with spaces around yum repo enabled value (refs: \fI\%#43054\fP)
  211023. .IP \(bu 2
  211024. \fBPR\fP \fI\%#43054\fP: (\fI\%lorengordon\fP) Uses ConfigParser to read yum config files
  211025. @ \fI2017\-08\-18 20:49:44 UTC\fP
  211026. .INDENT 2.0
  211027. .IP \(bu 2
  211028. \fBPR\fP \fI\%#42045\fP: (\fI\%arount\fP) Fix: salt.modules.yumpkg: ConfigParser to read ini like files. (refs: \fI\%#43054\fP)
  211029. .IP \(bu 2
  211030. 96e8e836d1 Merge pull request \fI\%#43054\fP from lorengordon/fix/yumpkg/config\-parser
  211031. .IP \(bu 2
  211032. 3b2cb81a72 fix typo in salt.modules.yumpkg
  211033. .IP \(bu 2
  211034. 38add0e4a2 break if leading comments are all fetched
  211035. .IP \(bu 2
  211036. d7f65dc7a7 fix configparser import & log if error was raised
  211037. .IP \(bu 2
  211038. ca1b1bb633 use configparser to parse yum repo file
  211039. .UNINDENT
  211040. .IP \(bu 2
  211041. \fBPR\fP \fI\%#43048\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43031\fP to 2016.11
  211042. @ \fI2017\-08\-18 12:56:04 UTC\fP
  211043. .INDENT 2.0
  211044. .IP \(bu 2
  211045. \fBPR\fP \fI\%#43031\fP: (\fI\%gtmanfred\fP) use a ruby gem that doesn\(aqt have dependencies (refs: \fI\%#43048\fP)
  211046. .IP \(bu 2
  211047. 43aa46f512 Merge pull request \fI\%#43048\fP from rallytime/bp\-43031
  211048. .IP \(bu 2
  211049. 35e45049e2 use a ruby gem that doesn\(aqt have dependencies
  211050. .UNINDENT
  211051. .IP \(bu 2
  211052. \fBPR\fP \fI\%#43023\fP: (\fI\%terminalmage\fP) Fixes/improvements to Jenkins state/module
  211053. @ \fI2017\-08\-18 01:33:10 UTC\fP
  211054. .INDENT 2.0
  211055. .IP \(bu 2
  211056. ad89ff3104 Merge pull request \fI\%#43023\fP from terminalmage/fix\-jenkins\-xml\-caching
  211057. .IP \(bu 2
  211058. 33fd8ff939 Update jenkins.py
  211059. .IP \(bu 2
  211060. fc306fc8c3 Add missing colon in \fIif\fP statement
  211061. .IP \(bu 2
  211062. 822eabcc81 Catch exceptions raised when making changes to jenkins
  211063. .IP \(bu 2
  211064. 91b583b493 Improve and correct exception raising
  211065. .IP \(bu 2
  211066. f096917a0e Raise an exception if we fail to cache the config xml
  211067. .UNINDENT
  211068. .IP \(bu 2
  211069. \fBPR\fP \fI\%#43026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43020\fP to 2016.11
  211070. @ \fI2017\-08\-17 23:19:46 UTC\fP
  211071. .INDENT 2.0
  211072. .IP \(bu 2
  211073. \fBPR\fP \fI\%#43020\fP: (\fI\%gtmanfred\fP) test with gem that appears to be abandoned (refs: \fI\%#43026\fP)
  211074. .IP \(bu 2
  211075. 2957467ed7 Merge pull request \fI\%#43026\fP from rallytime/bp\-43020
  211076. .IP \(bu 2
  211077. 0eb15a1f67 test with gem that appears to be abandoned
  211078. .UNINDENT
  211079. .IP \(bu 2
  211080. \fBISSUE\fP \fI\%#40490\fP: (\fI\%alxwr\fP) saltstack x509 incompatible to m2crypto 0.26.0 (refs: \fI\%#42760\fP)
  211081. .IP \(bu 2
  211082. \fBPR\fP \fI\%#43033\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42760\fP to 2016.11
  211083. @ \fI2017\-08\-17 22:24:43 UTC\fP
  211084. .INDENT 2.0
  211085. .IP \(bu 2
  211086. \fBPR\fP \fI\%#42760\fP: (\fI\%AFriemann\fP) Catch TypeError thrown by m2crypto when parsing missing subjects in c… (refs: \fI\%#43033\fP)
  211087. .IP \(bu 2
  211088. 4150b094fe Merge pull request \fI\%#43033\fP from rallytime/bp\-42760
  211089. .IP \(bu 2
  211090. 3e3f7f5d8e Catch TypeError thrown by m2crypto when parsing missing subjects in certificate files.
  211091. .UNINDENT
  211092. .IP \(bu 2
  211093. \fBPR\fP \fI\%#43032\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42547\fP to 2016.11
  211094. @ \fI2017\-08\-17 21:53:50 UTC\fP
  211095. .INDENT 2.0
  211096. .IP \(bu 2
  211097. \fBPR\fP \fI\%#42547\fP: (\fI\%blarghmatey\fP) Updated testinfra modules to work with more recent versions (refs: \fI\%#43032\fP)
  211098. .IP \(bu 2
  211099. b124d3667e Merge pull request \fI\%#43032\fP from rallytime/bp\-42547
  211100. .IP \(bu 2
  211101. ea4d7f4176 Updated testinfra modules to work with more recent versions
  211102. .UNINDENT
  211103. .IP \(bu 2
  211104. \fBISSUE\fP \fI\%#42992\fP: (\fI\%pabloh007\fP) docker.save flag push does is ignored (refs: \fI\%#43027\fP)
  211105. .IP \(bu 2
  211106. \fBPR\fP \fI\%#43027\fP: (\fI\%pabloh007\fP) Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  211107. @ \fI2017\-08\-17 19:55:37 UTC\fP
  211108. .INDENT 2.0
  211109. .IP \(bu 2
  211110. a88386ad44 Merge pull request \fI\%#43027\fP from pabloh007/fix\-docker\-save\-push\-2016\-11
  211111. .IP \(bu 2
  211112. d0fd949f85 Fixes ignore push flag for docker.push module issue \fI\%#42992\fP
  211113. .UNINDENT
  211114. .IP \(bu 2
  211115. \fBISSUE\fP \fI\%#42627\fP: (\fI\%taigrrr8\fP) salt\-cp no longer works. Was working a few months back. (refs: \fI\%#42890\fP)
  211116. .IP \(bu 2
  211117. \fBPR\fP \fI\%#42890\fP: (\fI\%DmitryKuzmenko\fP) Make chunked mode in salt\-cp optional
  211118. @ \fI2017\-08\-17 18:37:44 UTC\fP
  211119. .INDENT 2.0
  211120. .IP \(bu 2
  211121. 51d16840bb Merge pull request \fI\%#42890\fP from DSRCorporation/bugs/42627_salt\-cp
  211122. .IP \(bu 2
  211123. cfddbf1c75 Apply code review: update the doc
  211124. .IP \(bu 2
  211125. afedd3b654 Typos and version fixes in the doc.
  211126. .IP \(bu 2
  211127. 9fedf6012e Fixed \(aqtest_valid_docs\(aq test.
  211128. .IP \(bu 2
  211129. 999388680c Make chunked mode in salt\-cp optional (disabled by default).
  211130. .UNINDENT
  211131. .IP \(bu 2
  211132. \fBPR\fP \fI\%#43009\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  211133. @ \fI2017\-08\-17 18:00:09 UTC\fP
  211134. .INDENT 2.0
  211135. .IP \(bu 2
  211136. b3c253cdfa Merge pull request \fI\%#43009\fP from rallytime/merge\-2016.11
  211137. .IP \(bu 2
  211138. 566ba4fe76 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  211139. .INDENT 2.0
  211140. .IP \(bu 2
  211141. 13b8637d53 Merge pull request \fI\%#42942\fP from Ch3LL/2016.3.6_follow_up
  211142. .INDENT 2.0
  211143. .IP \(bu 2
  211144. f281e1795f move additional minion config options to 2016.3.8 release notes
  211145. .IP \(bu 2
  211146. 168604ba6b remove merge conflict
  211147. .IP \(bu 2
  211148. 8a07d95212 update release notes with cve number
  211149. .IP \(bu 2
  211150. 149633fdca Add release notes for 2016.3.7 release
  211151. .IP \(bu 2
  211152. 7a4cddcd95 Add clean_id function to salt.utils.verify.py
  211153. .UNINDENT
  211154. .IP \(bu 2
  211155. bbb1b29ccb Merge pull request \fI\%#42954\fP from Ch3LL/latest_2016.3
  211156. .INDENT 2.0
  211157. .IP \(bu 2
  211158. b551e66744 [2016.3] Bump latest and previous versions
  211159. .UNINDENT
  211160. .IP \(bu 2
  211161. 5d5edc54b7 Merge pull request \fI\%#42949\fP from Ch3LL/2016.3.7_docs
  211162. .INDENT 2.0
  211163. .IP \(bu 2
  211164. d75d3741f8 Add Security Notice to 2016.3.7 Release Notes
  211165. .UNINDENT
  211166. .UNINDENT
  211167. .UNINDENT
  211168. .IP \(bu 2
  211169. \fBPR\fP \fI\%#43021\fP: (\fI\%terminalmage\fP) Use socket.AF_INET6 to get the correct value instead of doing an OS check
  211170. @ \fI2017\-08\-17 17:57:09 UTC\fP
  211171. .INDENT 2.0
  211172. .IP \(bu 2
  211173. \fBPR\fP \fI\%#43014\fP: (\fI\%Ch3LL\fP) Change AF_INET6 family for mac in test_host_to_ips (refs: \fI\%#43021\fP)
  211174. .IP \(bu 2
  211175. 37c63e7cf2 Merge pull request \fI\%#43021\fP from terminalmage/fix\-network\-test
  211176. .IP \(bu 2
  211177. 4089b7b1bc Use socket.AF_INET6 to get the correct value instead of doing an OS check
  211178. .UNINDENT
  211179. .IP \(bu 2
  211180. \fBPR\fP \fI\%#43019\fP: (\fI\%rallytime\fP) Update bootstrap script to latest stable: v2017.08.17
  211181. @ \fI2017\-08\-17 17:56:41 UTC\fP
  211182. .INDENT 2.0
  211183. .IP \(bu 2
  211184. 8f6423247c Merge pull request \fI\%#43019\fP from rallytime/bootstrap_2017.08.17
  211185. .IP \(bu 2
  211186. 2f762b3a17 Update bootstrap script to latest stable: v2017.08.17
  211187. .UNINDENT
  211188. .IP \(bu 2
  211189. \fBPR\fP \fI\%#43014\fP: (\fI\%Ch3LL\fP) Change AF_INET6 family for mac in test_host_to_ips (refs: \fI\%#43021\fP)
  211190. @ \fI2017\-08\-17 16:17:51 UTC\fP
  211191. .INDENT 2.0
  211192. .IP \(bu 2
  211193. ff1caeee68 Merge pull request \fI\%#43014\fP from Ch3LL/fix_network_mac
  211194. .IP \(bu 2
  211195. b8eee4401e Change AF_INET6 family for mac in test_host_to_ips
  211196. .UNINDENT
  211197. .IP \(bu 2
  211198. \fBPR\fP \fI\%#42968\fP: (\fI\%vutny\fP) [DOCS] Fix link to Salt Cloud Feature Matrix
  211199. @ \fI2017\-08\-16 13:16:16 UTC\fP
  211200. .INDENT 2.0
  211201. .IP \(bu 2
  211202. 1ee9499d28 Merge pull request \fI\%#42968\fP from vutny/doc\-salt\-cloud\-ref
  211203. .IP \(bu 2
  211204. 44ed53b1df [DOCS] Fix link to Salt Cloud Feature Matrix
  211205. .UNINDENT
  211206. .IP \(bu 2
  211207. \fBISSUE\fP \fI\%#38839\fP: (\fI\%DaveOHenry\fP) Invoking runner.cloud.action via reactor sls fails (refs: \fI\%#42291\fP)
  211208. .IP \(bu 2
  211209. \fBPR\fP \fI\%#42291\fP: (\fI\%vutny\fP) Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  211210. @ \fI2017\-08\-15 23:01:08 UTC\fP
  211211. .INDENT 2.0
  211212. .IP \(bu 2
  211213. 923f9741fe Merge pull request \fI\%#42291\fP from vutny/fix\-38839
  211214. .IP \(bu 2
  211215. 5f8f98a01f Fix \fI\%#38839\fP: remove \fIstate\fP from Reactor runner kwags
  211216. .UNINDENT
  211217. .IP \(bu 2
  211218. \fBISSUE\fP \fI\%#42644\fP: (\fI\%stamak\fP) nova salt\-cloud \-P Private IPs returned, but not public. Checking for misidentified IPs (refs: \fI\%#42940\fP)
  211219. .IP \(bu 2
  211220. \fBPR\fP \fI\%#42940\fP: (\fI\%gtmanfred\fP) create new ip address before checking list of allocated ips
  211221. @ \fI2017\-08\-15 21:47:18 UTC\fP
  211222. .INDENT 2.0
  211223. .IP \(bu 2
  211224. c20bc7d515 Merge pull request \fI\%#42940\fP from gtmanfred/2016.11
  211225. .IP \(bu 2
  211226. 253e216a8d fix IP address spelling
  211227. .IP \(bu 2
  211228. bd63074e7a create new ip address before checking list of allocated ips
  211229. .UNINDENT
  211230. .IP \(bu 2
  211231. \fBPR\fP \fI\%#42959\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42883\fP to 2016.11
  211232. @ \fI2017\-08\-15 21:25:48 UTC\fP
  211233. .INDENT 2.0
  211234. .IP \(bu 2
  211235. \fBPR\fP \fI\%#42883\fP: (\fI\%rallytime\fP) Fix failing boto tests (refs: \fI\%#42959\fP)
  211236. .IP \(bu 2
  211237. d6496eca72 Merge pull request \fI\%#42959\fP from rallytime/bp\-42883
  211238. .IP \(bu 2
  211239. c6b9ca4b9e Lint fix: add missing space
  211240. .IP \(bu 2
  211241. 5597b1a30e Skip 2 failing tests in Python 3 due to upstream bugs
  211242. .IP \(bu 2
  211243. a0b19bdc27 Update account id value in boto_secgroup module unit test
  211244. .IP \(bu 2
  211245. 60b406e088 @mock_elb needs to be changed to @mock_elb_deprecated as well
  211246. .IP \(bu 2
  211247. 6ae1111295 Replace @mock_ec2 calls with @mock_ec2_deprecated calls
  211248. .UNINDENT
  211249. .IP \(bu 2
  211250. \fBPR\fP \fI\%#42944\fP: (\fI\%Ch3LL\fP) [2016.11] Add clean_id function to salt.utils.verify.py
  211251. @ \fI2017\-08\-15 18:06:12 UTC\fP
  211252. .INDENT 2.0
  211253. .IP \(bu 2
  211254. 6366e05d0d Merge pull request \fI\%#42944\fP from Ch3LL/2016.11.6_follow_up
  211255. .IP \(bu 2
  211256. 7e0a20afca Add release notes for 2016.11.7 release
  211257. .IP \(bu 2
  211258. 63823f8c3e Add clean_id function to salt.utils.verify.py
  211259. .UNINDENT
  211260. .IP \(bu 2
  211261. \fBPR\fP \fI\%#42952\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest and previous versions
  211262. @ \fI2017\-08\-15 17:23:02 UTC\fP
  211263. .INDENT 2.0
  211264. .IP \(bu 2
  211265. 49d339c976 Merge pull request \fI\%#42952\fP from Ch3LL/latest_2016.11
  211266. .IP \(bu 2
  211267. 74e7055d54 [2016.11] Bump latest and previous versions
  211268. .UNINDENT
  211269. .IP \(bu 2
  211270. \fBPR\fP \fI\%#42950\fP: (\fI\%Ch3LL\fP) Add Security Notice to 2016.11.7 Release Notes
  211271. @ \fI2017\-08\-15 16:50:23 UTC\fP
  211272. .INDENT 2.0
  211273. .IP \(bu 2
  211274. b0d2e05a79 Merge pull request \fI\%#42950\fP from Ch3LL/2016.11.7_docs
  211275. .IP \(bu 2
  211276. a6f902db40 Add Security Notice to 2016.11.77 Release Notes
  211277. .UNINDENT
  211278. .IP \(bu 2
  211279. \fBPR\fP \fI\%#42836\fP: (\fI\%aneeshusa\fP) Backport salt.utils.versions from develop to 2016.11
  211280. @ \fI2017\-08\-14 20:56:54 UTC\fP
  211281. .INDENT 2.0
  211282. .IP \(bu 2
  211283. \fBPR\fP \fI\%#42835\fP: (\fI\%aneeshusa\fP) Fix typo in utils/versions.py module (refs: \fI\%#42836\fP)
  211284. .IP \(bu 2
  211285. c0ff69f88c Merge pull request \fI\%#42836\fP from lyft/backport\-utils.versions\-to\-2016.11
  211286. .IP \(bu 2
  211287. 86ce7004a2 Backport salt.utils.versions from develop to 2016.11
  211288. .UNINDENT
  211289. .IP \(bu 2
  211290. \fBPR\fP \fI\%#42919\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42871\fP to 2016.11
  211291. @ \fI2017\-08\-14 20:44:00 UTC\fP
  211292. .INDENT 2.0
  211293. .IP \(bu 2
  211294. \fBPR\fP \fI\%#42871\fP: (\fI\%amalleo25\fP) Update joyent.rst (refs: \fI\%#42919\fP)
  211295. .IP \(bu 2
  211296. 64a79dd5ac Merge pull request \fI\%#42919\fP from rallytime/bp\-42871
  211297. .IP \(bu 2
  211298. 4e46c968e6 Update joyent.rst
  211299. .UNINDENT
  211300. .IP \(bu 2
  211301. \fBISSUE\fP \fI\%#42803\fP: (\fI\%gmcwhistler\fP) master_type: str, not working as expected, parent salt\-minion process dies. (refs: \fI\%#42848\fP)
  211302. .IP \(bu 2
  211303. \fBISSUE\fP \fI\%#42753\fP: (\fI\%grichmond\-salt\fP) SaltReqTimeout Error on Some Minions when One Master in a Multi\-Master Configuration is Unavailable (refs: \fI\%#42848\fP)
  211304. .IP \(bu 2
  211305. \fBPR\fP \fI\%#42918\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42848\fP to 2016.11
  211306. @ \fI2017\-08\-14 20:43:43 UTC\fP
  211307. .INDENT 2.0
  211308. .IP \(bu 2
  211309. \fBPR\fP \fI\%#42848\fP: (\fI\%DmitryKuzmenko\fP) Execute fire_master asynchronously in the main minion thread. (refs: \fI\%#42918\fP)
  211310. .IP \(bu 2
  211311. bea8ec1098 Merge pull request \fI\%#42918\fP from rallytime/bp\-42848
  211312. .IP \(bu 2
  211313. cdb48126f7 Make lint happier.
  211314. .IP \(bu 2
  211315. 62eca9b00b Execute fire_master asynchronously in the main minion thread.
  211316. .UNINDENT
  211317. .IP \(bu 2
  211318. \fBPR\fP \fI\%#42861\fP: (\fI\%twangboy\fP) Fix pkg.install salt\-minion using salt\-call
  211319. @ \fI2017\-08\-14 19:07:22 UTC\fP
  211320. .INDENT 2.0
  211321. .IP \(bu 2
  211322. 52bce329cb Merge pull request \fI\%#42861\fP from twangboy/win_pkg_install_salt
  211323. .IP \(bu 2
  211324. 0d3789f0c6 Fix pkg.install salt\-minion using salt\-call
  211325. .UNINDENT
  211326. .IP \(bu 2
  211327. \fBPR\fP \fI\%#42798\fP: (\fI\%s\-sebastian\fP) Update return data before calling returners
  211328. @ \fI2017\-08\-14 15:51:30 UTC\fP
  211329. .INDENT 2.0
  211330. .IP \(bu 2
  211331. b9f4f87aa5 Merge pull request \fI\%#42798\fP from s\-sebastian/2016.11
  211332. .IP \(bu 2
  211333. 1cc86592ed Update return data before calling returners
  211334. .UNINDENT
  211335. .IP \(bu 2
  211336. \fBISSUE\fP \fI\%#41976\fP: (\fI\%abulford\fP) dockerng network states do not respect test=True (refs: \fI\%#41977\fP)
  211337. .IP \(bu 2
  211338. \fBPR\fP \fI\%#41977\fP: (\fI\%abulford\fP) Fix dockerng.network_* ignoring of tests=True
  211339. @ \fI2017\-08\-11 18:37:20 UTC\fP
  211340. .INDENT 2.0
  211341. .IP \(bu 2
  211342. c15d0034fe Merge pull request \fI\%#41977\fP from redmatter/fix\-dockerng\-network\-ignores\-test
  211343. .IP \(bu 2
  211344. 1cc2aa503a Fix dockerng.network_* ignoring of tests=True
  211345. .UNINDENT
  211346. .IP \(bu 2
  211347. \fBPR\fP \fI\%#42886\fP: (\fI\%sarcasticadmin\fP) Adding missing output flags to salt cli docs
  211348. @ \fI2017\-08\-11 18:35:19 UTC\fP
  211349. .INDENT 2.0
  211350. .IP \(bu 2
  211351. 3b9c3c5671 Merge pull request \fI\%#42886\fP from sarcasticadmin/adding_docs_salt_outputs
  211352. .IP \(bu 2
  211353. 744bf954ff Adding missing output flags to salt cli
  211354. .UNINDENT
  211355. .IP \(bu 2
  211356. \fBPR\fP \fI\%#42882\fP: (\fI\%gtmanfred\fP) make sure cmd is not run when npm isn\(aqt installed
  211357. @ \fI2017\-08\-11 17:53:14 UTC\fP
  211358. .INDENT 2.0
  211359. .IP \(bu 2
  211360. e5b98c8a88 Merge pull request \fI\%#42882\fP from gtmanfred/2016.11
  211361. .IP \(bu 2
  211362. da3402a53d make sure cmd is not run when npm isn\(aqt installed
  211363. .UNINDENT
  211364. .IP \(bu 2
  211365. \fBPR\fP \fI\%#42788\fP: (\fI\%amendlik\fP) Remove waits and retries from Saltify deployment
  211366. @ \fI2017\-08\-11 15:38:05 UTC\fP
  211367. .INDENT 2.0
  211368. .IP \(bu 2
  211369. 5962c9588b Merge pull request \fI\%#42788\fP from amendlik/saltify\-timeout
  211370. .IP \(bu 2
  211371. 928b523797 Remove waits and retries from Saltify deployment
  211372. .UNINDENT
  211373. .IP \(bu 2
  211374. \fBPR\fP \fI\%#42877\fP: (\fI\%terminalmage\fP) Add virtual func for cron state module
  211375. @ \fI2017\-08\-11 15:33:09 UTC\fP
  211376. .INDENT 2.0
  211377. .IP \(bu 2
  211378. 227ecddd13 Merge pull request \fI\%#42877\fP from terminalmage/add\-cron\-state\-virtual
  211379. .IP \(bu 2
  211380. f1de196740 Add virtual func for cron state module
  211381. .UNINDENT
  211382. .IP \(bu 2
  211383. \fBPR\fP \fI\%#42859\fP: (\fI\%terminalmage\fP) Add note about git CLI requirement for GitPython to GitFS tutorial
  211384. @ \fI2017\-08\-11 14:53:03 UTC\fP
  211385. .INDENT 2.0
  211386. .IP \(bu 2
  211387. ab9f6cef33 Merge pull request \fI\%#42859\fP from terminalmage/gitpython\-git\-cli\-note
  211388. .IP \(bu 2
  211389. 35e05c9515 Add note about git CLI requirement for GitPython to GitFS tutorial
  211390. .UNINDENT
  211391. .IP \(bu 2
  211392. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#475\fP: (\fI\%rallytime\fP) Arch is failing npm cache test (refs: \fI\%#42856\fP)
  211393. .IP \(bu 2
  211394. \fBISSUE\fP \fI\%#41770\fP: (\fI\%Ch3LL\fP) NPM v5 incompatible with salt.modules.cache_list (refs: \fI\%#42856\fP)
  211395. .IP \(bu 2
  211396. \fBPR\fP \fI\%#42856\fP: (\fI\%gtmanfred\fP) skip cache_clean test if npm version is >= 5.0.0
  211397. @ \fI2017\-08\-11 13:39:20 UTC\fP
  211398. .INDENT 2.0
  211399. .IP \(bu 2
  211400. 682b4a8d14 Merge pull request \fI\%#42856\fP from gtmanfred/2016.11
  211401. .IP \(bu 2
  211402. b458b89fb8 skip cache_clean test if npm version is >= 5.0.0
  211403. .UNINDENT
  211404. .IP \(bu 2
  211405. \fBPR\fP \fI\%#42864\fP: (\fI\%whiteinge\fP) Make syndic_log_file respect root_dir setting
  211406. @ \fI2017\-08\-11 13:28:21 UTC\fP
  211407. .INDENT 2.0
  211408. .IP \(bu 2
  211409. 01ea854029 Merge pull request \fI\%#42864\fP from whiteinge/syndic\-log\-root_dir
  211410. .IP \(bu 2
  211411. 4b1f55da9c Make syndic_log_file respect root_dir setting
  211412. .UNINDENT
  211413. .IP \(bu 2
  211414. \fBPR\fP \fI\%#42851\fP: (\fI\%terminalmage\fP) Backport \fI\%#42651\fP to 2016.11
  211415. @ \fI2017\-08\-10 18:02:39 UTC\fP
  211416. .INDENT 2.0
  211417. .IP \(bu 2
  211418. \fBPR\fP \fI\%#42651\fP: (\fI\%gtmanfred\fP) python2\- prefix for fedora 26 packages (refs: \fI\%#42851\fP)
  211419. .IP \(bu 2
  211420. 2dde1f77e9 Merge pull request \fI\%#42851\fP from terminalmage/bp\-42651
  211421. .IP \(bu 2
  211422. a3da86eea8 fix syntax
  211423. .IP \(bu 2
  211424. 6ecdbcec1d make sure names are correct
  211425. .IP \(bu 2
  211426. f83b553d6e add py3 for versionlock
  211427. .IP \(bu 2
  211428. 21934f61bb python2\- prefix for fedora 26 packages
  211429. .UNINDENT
  211430. .IP \(bu 2
  211431. \fBISSUE\fP \fI\%#42683\fP: (\fI\%rgcosma\fP) Gluster module broken in 2017.7 (refs: \fI\%#42806\fP)
  211432. .IP \(bu 2
  211433. \fBPR\fP \fI\%#42806\fP: (\fI\%rallytime\fP) Update doc references in glusterfs.volume_present
  211434. @ \fI2017\-08\-10 14:10:16 UTC\fP
  211435. .INDENT 2.0
  211436. .IP \(bu 2
  211437. c746f79a3a Merge pull request \fI\%#42806\fP from rallytime/fix\-42683
  211438. .IP \(bu 2
  211439. 8c8640d6b8 Update doc references in glusterfs.volume_present
  211440. .UNINDENT
  211441. .IP \(bu 2
  211442. \fBPR\fP \fI\%#42829\fP: (\fI\%twangboy\fP) Fix passing version in pkgs as shown in docs
  211443. @ \fI2017\-08\-10 14:07:24 UTC\fP
  211444. .INDENT 2.0
  211445. .IP \(bu 2
  211446. 27a8a2695a Merge pull request \fI\%#42829\fP from twangboy/win_pkg_fix_install
  211447. .IP \(bu 2
  211448. 83b9b230cd Add winrepo to docs about supporting versions in pkgs
  211449. .IP \(bu 2
  211450. 81fefa6e67 Add ability to pass version in pkgs list
  211451. .UNINDENT
  211452. .IP \(bu 2
  211453. \fBPR\fP \fI\%#42838\fP: (\fI\%twangboy\fP) Document requirements for win_pki
  211454. @ \fI2017\-08\-10 13:59:46 UTC\fP
  211455. .INDENT 2.0
  211456. .IP \(bu 2
  211457. 3c3ac6aeb2 Merge pull request \fI\%#42838\fP from twangboy/win_doc_pki
  211458. .IP \(bu 2
  211459. f0a1d06b46 Standardize PKI Client
  211460. .IP \(bu 2
  211461. 7de687aa57 Document requirements for win_pki
  211462. .UNINDENT
  211463. .IP \(bu 2
  211464. \fBPR\fP \fI\%#42805\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42552\fP to 2016.11
  211465. @ \fI2017\-08\-09 22:37:56 UTC\fP
  211466. .INDENT 2.0
  211467. .IP \(bu 2
  211468. \fBPR\fP \fI\%#42552\fP: (\fI\%remijouannet\fP) update consul module following this documentation \fI\%https://www.consul\fP\&.… (refs: \fI\%#42805\fP)
  211469. .IP \(bu 2
  211470. b3e2ae3c58 Merge pull request \fI\%#42805\fP from rallytime/bp\-42552
  211471. .IP \(bu 2
  211472. 5a91c1f2d1 update consul module following this documentation \fI\%https://www.consul.io/api/acl/acl.html\fP
  211473. .UNINDENT
  211474. .IP \(bu 2
  211475. \fBISSUE\fP \fI\%#42731\fP: (\fI\%infoveinx\fP) http.query template_data render exception (refs: \fI\%#42804\fP)
  211476. .IP \(bu 2
  211477. \fBPR\fP \fI\%#42804\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42784\fP to 2016.11
  211478. @ \fI2017\-08\-09 22:37:40 UTC\fP
  211479. .INDENT 2.0
  211480. .IP \(bu 2
  211481. \fBPR\fP \fI\%#42784\fP: (\fI\%gtmanfred\fP) only read file if ret is not a string in http.query (refs: \fI\%#42804\fP)
  211482. .IP \(bu 2
  211483. d2ee7934ed Merge pull request \fI\%#42804\fP from rallytime/bp\-42784
  211484. .IP \(bu 2
  211485. dbd29e4aaa only read file if it is not a string
  211486. .UNINDENT
  211487. .IP \(bu 2
  211488. \fBPR\fP \fI\%#42826\fP: (\fI\%terminalmage\fP) Fix misspelling of "versions"
  211489. @ \fI2017\-08\-09 19:39:43 UTC\fP
  211490. .INDENT 2.0
  211491. .IP \(bu 2
  211492. 4cbf8057b3 Merge pull request \fI\%#42826\fP from terminalmage/fix\-spelling
  211493. .IP \(bu 2
  211494. 00f93142e4 Fix misspelling of "versions"
  211495. .UNINDENT
  211496. .IP \(bu 2
  211497. \fBPR\fP \fI\%#42786\fP: (\fI\%Ch3LL\fP) Fix typo for template_dict in http docs
  211498. @ \fI2017\-08\-08 18:14:50 UTC\fP
  211499. .INDENT 2.0
  211500. .IP \(bu 2
  211501. de997edd90 Merge pull request \fI\%#42786\fP from Ch3LL/fix_typo
  211502. .IP \(bu 2
  211503. 90a2fb66a2 Fix typo for template_dict in http docs
  211504. .UNINDENT
  211505. .IP \(bu 2
  211506. \fBISSUE\fP \fI\%#42600\fP: (\fI\%twangboy\fP) Unable to set \(aqNot Configured\(aq using win_lgpo execution module (refs: \fI\%#42795\fP, \fI\%#42744\fP)
  211507. .IP \(bu 2
  211508. \fBPR\fP \fI\%#42795\fP: (\fI\%lomeroe\fP) backport \fI\%#42744\fP to 2016.11
  211509. @ \fI2017\-08\-08 17:17:15 UTC\fP
  211510. .INDENT 2.0
  211511. .IP \(bu 2
  211512. \fBPR\fP \fI\%#42744\fP: (\fI\%lomeroe\fP) fix \fI\%#42600\fP in develop (refs: \fI\%#42795\fP)
  211513. .IP \(bu 2
  211514. bf6153ebe5 Merge pull request \fI\%#42795\fP from lomeroe/bp\-42744_201611
  211515. .IP \(bu 2
  211516. 695f8c1ae4 fix \fI\%#42600\fP in develop
  211517. .UNINDENT
  211518. .IP \(bu 2
  211519. \fBISSUE\fP \fI\%#42747\fP: (\fI\%whiteinge\fP) Outputters mutate data which can be a problem for Runners and perhaps other things (refs: \fI\%#42748\fP)
  211520. .IP \(bu 2
  211521. \fBPR\fP \fI\%#42748\fP: (\fI\%whiteinge\fP) Workaround Orchestrate problem that highstate outputter mutates data
  211522. @ \fI2017\-08\-07 21:11:33 UTC\fP
  211523. .INDENT 2.0
  211524. .IP \(bu 2
  211525. 61fad97286 Merge pull request \fI\%#42748\fP from whiteinge/save\-before\-output
  211526. .IP \(bu 2
  211527. de60b77c82 Workaround Orchestrate problem that highstate outputter mutates data
  211528. .UNINDENT
  211529. .IP \(bu 2
  211530. \fBPR\fP \fI\%#42764\fP: (\fI\%amendlik\fP) Fix infinite loop with salt\-cloud and Windows nodes
  211531. @ \fI2017\-08\-07 20:47:07 UTC\fP
  211532. .INDENT 2.0
  211533. .IP \(bu 2
  211534. a4e3e7e786 Merge pull request \fI\%#42764\fP from amendlik/cloud\-win\-loop
  211535. .IP \(bu 2
  211536. f3dcfca4e0 Fix infinite loops on failed Windows deployments
  211537. .UNINDENT
  211538. .IP \(bu 2
  211539. \fBISSUE\fP \fI\%#42690\fP: (\fI\%ChristianBeer\fP) git.latest state with remote set fails on first try (refs: \fI\%#42694\fP)
  211540. .IP \(bu 2
  211541. \fBPR\fP \fI\%#42694\fP: (\fI\%gtmanfred\fP) allow adding extra remotes to a repository
  211542. @ \fI2017\-08\-07 18:08:11 UTC\fP
  211543. .INDENT 2.0
  211544. .IP \(bu 2
  211545. da85326ad4 Merge pull request \fI\%#42694\fP from gtmanfred/2016.11
  211546. .IP \(bu 2
  211547. 1a0457af51 allow adding extra remotes to a repository
  211548. .UNINDENT
  211549. .IP \(bu 2
  211550. \fBISSUE\fP \fI\%#42642\fP: (\fI\%githubcdr\fP) state.augeas (refs: \fI\%#42669\fP, \fI\%#43202\fP)
  211551. .IP \(bu 2
  211552. \fBPR\fP \fI\%#42669\fP: (\fI\%garethgreenaway\fP) [2016.11] Fixes to augeas module
  211553. @ \fI2017\-08\-06 17:58:03 UTC\fP
  211554. .INDENT 2.0
  211555. .IP \(bu 2
  211556. 7b2119feee Merge pull request \fI\%#42669\fP from garethgreenaway/42642_2016_11_augeas_module_fix
  211557. .IP \(bu 2
  211558. 24413084e2 Updating the call to shlex_split to pass the posix=False argument so that quotes are preserved.
  211559. .UNINDENT
  211560. .IP \(bu 2
  211561. \fBPR\fP \fI\%#42629\fP: (\fI\%xiaoanyunfei\fP) tornado api
  211562. @ \fI2017\-08\-03 22:21:20 UTC\fP
  211563. .INDENT 2.0
  211564. .IP \(bu 2
  211565. 30725769ed Merge pull request \fI\%#42629\fP from xiaoanyunfei/tornadoapi
  211566. .IP \(bu 2
  211567. 1e13383b95 tornado api
  211568. .UNINDENT
  211569. .IP \(bu 2
  211570. \fBPR\fP \fI\%#42655\fP: (\fI\%whiteinge\fP) Reenable cpstats for rest_cherrypy
  211571. @ \fI2017\-08\-03 20:44:10 UTC\fP
  211572. .INDENT 2.0
  211573. .IP \(bu 2
  211574. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug (refs: \fI\%#42655\fP)
  211575. .IP \(bu 2
  211576. f0f00fcee1 Merge pull request \fI\%#42655\fP from whiteinge/rest_cherrypy\-reenable\-stats
  211577. .IP \(bu 2
  211578. deb6316d67 Fix lint errors
  211579. .IP \(bu 2
  211580. 6bd91c8b03 Reenable cpstats for rest_cherrypy
  211581. .UNINDENT
  211582. .IP \(bu 2
  211583. \fBISSUE\fP \fI\%#42686\fP: (\fI\%gilbsgilbs\fP) Unable to set multiple RabbitMQ tags (refs: \fI\%#42693\fP)
  211584. .IP \(bu 2
  211585. \fBPR\fP \fI\%#42693\fP: (\fI\%gilbsgilbs\fP) Fix RabbitMQ tags not properly set.
  211586. @ \fI2017\-08\-03 20:23:08 UTC\fP
  211587. .INDENT 2.0
  211588. .IP \(bu 2
  211589. 21cf15f9c3 Merge pull request \fI\%#42693\fP from gilbsgilbs/fix\-rabbitmq\-tags
  211590. .IP \(bu 2
  211591. 78fccdc7e2 Cast to list in case tags is a tuple.
  211592. .IP \(bu 2
  211593. 287b57b5c5 Fix RabbitMQ tags not properly set.
  211594. .UNINDENT
  211595. .IP \(bu 2
  211596. \fBISSUE\fP \fI\%#41433\fP: (\fI\%sbojarski\fP) boto_cfn.present fails when reporting error for failed state (refs: \fI\%#42574\fP)
  211597. .IP \(bu 2
  211598. \fBPR\fP \fI\%#42574\fP: (\fI\%sbojarski\fP) Fixed error reporting in "boto_cfn.present" function.
  211599. @ \fI2017\-08\-01 17:55:29 UTC\fP
  211600. .INDENT 2.0
  211601. .IP \(bu 2
  211602. f2b0c9b4fa Merge pull request \fI\%#42574\fP from sbojarski/boto\-cfn\-error\-reporting
  211603. .IP \(bu 2
  211604. 5c945f10c2 Fix debug message in "boto_cfn._validate" function.
  211605. .IP \(bu 2
  211606. 181a1beecc Fixed error reporting in "boto_cfn.present" function.
  211607. .UNINDENT
  211608. .IP \(bu 2
  211609. \fBPR\fP \fI\%#42623\fP: (\fI\%terminalmage\fP) Fix unicode constructor in custom YAML loader
  211610. @ \fI2017\-07\-31 19:25:18 UTC\fP
  211611. .INDENT 2.0
  211612. .IP \(bu 2
  211613. bc1effc4f2 Merge pull request \fI\%#42623\fP from terminalmage/fix\-unicode\-constructor
  211614. .IP \(bu 2
  211615. fcf45889dd Fix unicode constructor in custom YAML loader
  211616. .UNINDENT
  211617. .IP \(bu 2
  211618. \fBPR\fP \fI\%#42515\fP: (\fI\%gtmanfred\fP) Allow not interpreting backslashes in the repl
  211619. @ \fI2017\-07\-28 16:00:09 UTC\fP
  211620. .INDENT 2.0
  211621. .IP \(bu 2
  211622. cbf752cd73 Merge pull request \fI\%#42515\fP from gtmanfred/backslash
  211623. .IP \(bu 2
  211624. cc4e45656d Allow not interpreting backslashes in the repl
  211625. .UNINDENT
  211626. .IP \(bu 2
  211627. \fBISSUE\fP \fI\%#42456\fP: (\fI\%gdubroeucq\fP) Use yum lib (refs: \fI\%#42586\fP)
  211628. .IP \(bu 2
  211629. \fBPR\fP \fI\%#42586\fP: (\fI\%gdubroeucq\fP) [Fix] yumpkg.py: add option to the command "check\-update"
  211630. @ \fI2017\-07\-27 23:52:00 UTC\fP
  211631. .INDENT 2.0
  211632. .IP \(bu 2
  211633. 549495831f Merge pull request \fI\%#42586\fP from gdubroeucq/2016.11
  211634. .IP \(bu 2
  211635. 9c0b5cc1d6 Remove extra newline
  211636. .IP \(bu 2
  211637. d2ef4483e4 yumpkg.py: clean
  211638. .IP \(bu 2
  211639. a96f7c09e0 yumpkg.py: add option to the command "check\-update"
  211640. .UNINDENT
  211641. .IP \(bu 2
  211642. \fBISSUE\fP \fI\%#41982\fP: (\fI\%abulford\fP) dockerng.network_* matches too easily (refs: \fI\%#41988\fP)
  211643. .IP \(bu 2
  211644. \fBPR\fP \fI\%#41988\fP: (\fI\%abulford\fP) Fix dockerng.network_* name matching
  211645. @ \fI2017\-07\-27 21:25:06 UTC\fP
  211646. .INDENT 2.0
  211647. .IP \(bu 2
  211648. 6b45debf28 Merge pull request \fI\%#41988\fP from redmatter/fix\-dockerng\-network\-matching
  211649. .IP \(bu 2
  211650. 9eea796da8 Add regression tests for \fI\%#41982\fP
  211651. .IP \(bu 2
  211652. 3369f0072f Fix broken unit test test_network_absent
  211653. .IP \(bu 2
  211654. 0ef6cf634c Add trace logging of dockerng.networks result
  211655. .IP \(bu 2
  211656. 515c612808 Fix dockerng.network_* name matching
  211657. .UNINDENT
  211658. .IP \(bu 2
  211659. \fBPR\fP \fI\%#42339\fP: (\fI\%isbm\fP) Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  211660. @ \fI2017\-07\-27 19:05:51 UTC\fP
  211661. .INDENT 2.0
  211662. .IP \(bu 2
  211663. 4b16109122 Merge pull request \fI\%#42339\fP from isbm/isbm\-jobs\-scheduled\-in\-a\-future\-bsc1036125
  211664. .IP \(bu 2
  211665. bbba84ce2d Bugfix: Jobs scheduled to run at a future time stay pending for Salt minions (bsc#1036125)
  211666. .UNINDENT
  211667. .IP \(bu 2
  211668. \fBISSUE\fP \fI\%#23516\fP: (\fI\%dkiser\fP) BUG: cron job scheduler sporadically works (refs: \fI\%#42077\fP)
  211669. .IP \(bu 2
  211670. \fBPR\fP \fI\%#42077\fP: (\fI\%vutny\fP) Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  211671. @ \fI2017\-07\-27 19:04:23 UTC\fP
  211672. .INDENT 2.0
  211673. .IP \(bu 2
  211674. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  211675. .IP \(bu 2
  211676. 6c5a7c604a Merge pull request \fI\%#42077\fP from vutny/fix\-jobs\-scheduled\-with\-whens
  211677. .IP \(bu 2
  211678. b1960cea44 Fix scheduled job run on Master if \fIwhen\fP parameter is a list
  211679. .UNINDENT
  211680. .IP \(bu 2
  211681. \fBPR\fP \fI\%#42414\fP: (\fI\%vutny\fP) DOCS: unify hash sum with hash type format
  211682. @ \fI2017\-07\-27 18:48:40 UTC\fP
  211683. .INDENT 2.0
  211684. .IP \(bu 2
  211685. f9cb536589 Merge pull request \fI\%#42414\fP from vutny/unify\-hash\-params\-format
  211686. .IP \(bu 2
  211687. d1f2a93368 DOCS: unify hash sum with hash type format
  211688. .UNINDENT
  211689. .IP \(bu 2
  211690. \fBISSUE\fP \fI\%#42375\fP: (\fI\%dragonpaw\fP) salt.modules.*.__virtualname__ doens\(aqt work as documented. (refs: \fI\%#42523\fP)
  211691. .IP \(bu 2
  211692. \fBPR\fP \fI\%#42523\fP: (\fI\%rallytime\fP) Add a mention of the True/False returns with __virtual__()
  211693. @ \fI2017\-07\-27 18:13:07 UTC\fP
  211694. .INDENT 2.0
  211695. .IP \(bu 2
  211696. 535c922511 Merge pull request \fI\%#42523\fP from rallytime/fix\-42375
  211697. .IP \(bu 2
  211698. 685c2cced6 Add information about returning a tuple with an error message
  211699. .IP \(bu 2
  211700. fa466519c4 Add a mention of the True/False returns with __virtual__()
  211701. .UNINDENT
  211702. .IP \(bu 2
  211703. \fBPR\fP \fI\%#42527\fP: (\fI\%twangboy\fP) Document changes to Windows Update in Windows 10/Server 2016
  211704. @ \fI2017\-07\-27 17:45:38 UTC\fP
  211705. .INDENT 2.0
  211706. .IP \(bu 2
  211707. 0df0e7e749 Merge pull request \fI\%#42527\fP from twangboy/win_wua
  211708. .IP \(bu 2
  211709. 0373791f2a Correct capatlization
  211710. .IP \(bu 2
  211711. af3bcc927b Document changes to Windows Update in 10/2016
  211712. .UNINDENT
  211713. .IP \(bu 2
  211714. \fBPR\fP \fI\%#42551\fP: (\fI\%binocvlar\fP) Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  211715. @ \fI2017\-07\-27 17:35:31 UTC\fP
  211716. .INDENT 2.0
  211717. .IP \(bu 2
  211718. 69b06586da Merge pull request \fI\%#42551\fP from binocvlar/fix\-lack\-of\-align\-check\-output
  211719. .IP \(bu 2
  211720. c4fabaa192 Remove \(aq\-s\(aq (\-\-script) argument to parted within align_check function
  211721. .UNINDENT
  211722. .IP \(bu 2
  211723. \fBISSUE\fP \fI\%#42403\fP: (\fI\%astronouth7303\fP) [2017.7] Pillar empty when state is applied from orchestrate (refs: \fI\%#42433\fP)
  211724. .IP \(bu 2
  211725. \fBPR\fP \fI\%#42573\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42433\fP to 2016.11
  211726. @ \fI2017\-07\-27 13:51:21 UTC\fP
  211727. .INDENT 2.0
  211728. .IP \(bu 2
  211729. \fBPR\fP \fI\%#42433\fP: (\fI\%terminalmage\fP) Only force saltenv/pillarenv to be a string when not None (refs: \fI\%#42573\fP)
  211730. .IP \(bu 2
  211731. 9e0b4e9faf Merge pull request \fI\%#42573\fP from rallytime/bp\-42433
  211732. .IP \(bu 2
  211733. 0293429e24 Only force saltenv/pillarenv to be a string when not None
  211734. .UNINDENT
  211735. .IP \(bu 2
  211736. \fBPR\fP \fI\%#42571\fP: (\fI\%twangboy\fP) Avoid loading system PYTHON* environment vars
  211737. @ \fI2017\-07\-26 22:48:55 UTC\fP
  211738. .INDENT 2.0
  211739. .IP \(bu 2
  211740. e931ed2517 Merge pull request \fI\%#42571\fP from twangboy/win_add_pythonpath
  211741. .IP \(bu 2
  211742. d55a44dd1a Avoid loading user site packages
  211743. .IP \(bu 2
  211744. 9af1eb2741 Ignore any PYTHON* environment vars already on the system
  211745. .IP \(bu 2
  211746. 4e2fb03a95 Add pythonpath to batch files and service
  211747. .UNINDENT
  211748. .IP \(bu 2
  211749. \fBISSUE\fP \fI\%#42371\fP: (\fI\%tsaridas\fP) Minion unresponsive after trying to failover (refs: \fI\%#42387\fP)
  211750. .IP \(bu 2
  211751. \fBPR\fP \fI\%#42387\fP: (\fI\%DmitryKuzmenko\fP) Fix race condition in usage of weakvaluedict
  211752. @ \fI2017\-07\-25 20:57:42 UTC\fP
  211753. .INDENT 2.0
  211754. .IP \(bu 2
  211755. de2f397041 Merge pull request \fI\%#42387\fP from DSRCorporation/bugs/42371_KeyError_WeakValueDict
  211756. .IP \(bu 2
  211757. e721c7eee2 Don\(aqt use \fIkey in weakvaluedict\fP because it could lie.
  211758. .UNINDENT
  211759. .IP \(bu 2
  211760. \fBISSUE\fP \fI\%#41955\fP: (\fI\%root360\-AndreasUlm\fP) rabbitmq 3.6.10 changed output => rabbitmq\-module broken (refs: \fI\%#41968\fP)
  211761. .IP \(bu 2
  211762. \fBPR\fP \fI\%#41968\fP: (\fI\%root360\-AndreasUlm\fP) Fix rabbitmqctl output sanitizer for version 3.6.10
  211763. @ \fI2017\-07\-25 19:12:36 UTC\fP
  211764. .INDENT 2.0
  211765. .IP \(bu 2
  211766. 641a9d7efd Merge pull request \fI\%#41968\fP from root360\-AndreasUlm/fix\-rabbitmqctl\-output\-handler
  211767. .IP \(bu 2
  211768. 76fd941d91 added tests for rabbitmq 3.6.10 output handler
  211769. .IP \(bu 2
  211770. 3602af1e1b Fix rabbitmqctl output handler for 3.6.10
  211771. .UNINDENT
  211772. .IP \(bu 2
  211773. \fBISSUE\fP \fI\%#42477\fP: (\fI\%aikar\fP) Invalid ssh_interface value prevents salt\-cloud provisioning without reason of why (refs: \fI\%#42479\fP)
  211774. .IP \(bu 2
  211775. \fBPR\fP \fI\%#42479\fP: (\fI\%gtmanfred\fP) validate ssh_interface for ec2
  211776. @ \fI2017\-07\-25 18:37:18 UTC\fP
  211777. .INDENT 2.0
  211778. .IP \(bu 2
  211779. 66fede378a Merge pull request \fI\%#42479\fP from gtmanfred/interface
  211780. .IP \(bu 2
  211781. c32c1b2803 fix pylint
  211782. .IP \(bu 2
  211783. 99ec634c6b validate ssh_interface for ec2
  211784. .UNINDENT
  211785. .IP \(bu 2
  211786. \fBISSUE\fP \fI\%#42405\fP: (\fI\%felrivero\fP) The documentation is incorrectly compiled (PILLAR section) (refs: \fI\%#42516\fP)
  211787. .IP \(bu 2
  211788. \fBPR\fP \fI\%#42516\fP: (\fI\%rallytime\fP) Add info about top file to pillar walk\-through example to include edit.vim
  211789. @ \fI2017\-07\-25 17:01:12 UTC\fP
  211790. .INDENT 2.0
  211791. .IP \(bu 2
  211792. a925c7029a Merge pull request \fI\%#42516\fP from rallytime/fix\-42405
  211793. .IP \(bu 2
  211794. e3a6717efa Add info about top file to pillar walk\-through example to include edit.vim
  211795. .UNINDENT
  211796. .IP \(bu 2
  211797. \fBISSUE\fP \fI\%#42417\fP: (\fI\%clem\-compilatio\fP) salt\-cloud \- openstack \- "no more floating IP addresses" error \- but public_ip in node (refs: \fI\%#42509\fP)
  211798. .IP \(bu 2
  211799. \fBPR\fP \fI\%#42509\fP: (\fI\%clem\-compilatio\fP) Fix _assign_floating_ips in openstack.py
  211800. @ \fI2017\-07\-24 17:14:13 UTC\fP
  211801. .INDENT 2.0
  211802. .IP \(bu 2
  211803. 1bd5bbccc2 Merge pull request \fI\%#42509\fP from clem\-compilatio/fix\-42417
  211804. .IP \(bu 2
  211805. 72924b06b8 Fix _assign_floating_ips in openstack.py
  211806. .UNINDENT
  211807. .IP \(bu 2
  211808. \fBPR\fP \fI\%#42464\fP: (\fI\%garethgreenaway\fP) [2016.11] Small fix to modules/git.py
  211809. @ \fI2017\-07\-21 21:28:57 UTC\fP
  211810. .INDENT 2.0
  211811. .IP \(bu 2
  211812. 4bf35a74de Merge pull request \fI\%#42464\fP from garethgreenaway/2016_11_remove_tmp_identity_file
  211813. .IP \(bu 2
  211814. ff24102d51 Uncomment the line that removes the temporary identity file.
  211815. .UNINDENT
  211816. .IP \(bu 2
  211817. \fBISSUE\fP \fI\%#42357\fP: (\fI\%Giandom\fP) Salt pillarenv problem with slack engine (refs: \fI\%#42443\fP)
  211818. .IP \(bu 2
  211819. \fBPR\fP \fI\%#42443\fP: (\fI\%garethgreenaway\fP) [2016.11] Fix to slack engine
  211820. @ \fI2017\-07\-21 15:48:57 UTC\fP
  211821. .INDENT 2.0
  211822. .IP \(bu 2
  211823. e2120dbd0e Merge pull request \fI\%#42443\fP from garethgreenaway/42357_pass_args_kwargs_correctly
  211824. .IP \(bu 2
  211825. 635810b3e3 Updating the slack engine in 2016.11 to pass the args and kwrags correctly to LocalClient
  211826. .UNINDENT
  211827. .IP \(bu 2
  211828. \fBISSUE\fP \fI\%#42198\fP: (\fI\%shengis\fP) state sqlite3.row_absent fail with "parameters are of unsupported type" (refs: \fI\%#42200\fP)
  211829. .IP \(bu 2
  211830. \fBPR\fP \fI\%#42200\fP: (\fI\%shengis\fP) Fix \fI\%#42198\fP
  211831. @ \fI2017\-07\-21 14:47:29 UTC\fP
  211832. .INDENT 2.0
  211833. .IP \(bu 2
  211834. 8262cc9054 Merge pull request \fI\%#42200\fP from shengis/sqlite3_fix_row_absent_2016.11
  211835. .IP \(bu 2
  211836. 407b8f4bb3 Fix \fI\%#42198\fP If where_args is not set, not using it in the delete request.
  211837. .UNINDENT
  211838. .IP \(bu 2
  211839. \fBISSUE\fP \fI\%#42413\fP: (\fI\%goten4\fP) Invalid error message when proxy_host is set and tornado not installed (refs: \fI\%#42424\fP)
  211840. .IP \(bu 2
  211841. \fBPR\fP \fI\%#42424\fP: (\fI\%goten4\fP) Fix error message when tornado or pycurl is not installed
  211842. @ \fI2017\-07\-20 21:53:40 UTC\fP
  211843. .INDENT 2.0
  211844. .IP \(bu 2
  211845. d9df97e5a3 Merge pull request \fI\%#42424\fP from goten4/2016.11
  211846. .IP \(bu 2
  211847. 1c0574d05e Fix error message when tornado or pycurl is not installed
  211848. .UNINDENT
  211849. .IP \(bu 2
  211850. \fBPR\fP \fI\%#42350\fP: (\fI\%twangboy\fP) Fixes problem with Version and OS Release related grains on certain versions of Python (2016.11)
  211851. @ \fI2017\-07\-19 17:07:26 UTC\fP
  211852. .INDENT 2.0
  211853. .IP \(bu 2
  211854. 42bb1a64ca Merge pull request \fI\%#42350\fP from twangboy/win_fix_ver_grains_2016.11
  211855. .IP \(bu 2
  211856. 8c048403d7 Detect Server OS with a desktop release name
  211857. .UNINDENT
  211858. .IP \(bu 2
  211859. \fBPR\fP \fI\%#42356\fP: (\fI\%meaksh\fP) Allow to check whether a function is available on the AliasesLoader wrapper
  211860. @ \fI2017\-07\-19 16:56:41 UTC\fP
  211861. .INDENT 2.0
  211862. .IP \(bu 2
  211863. 0a72e56f6b Merge pull request \fI\%#42356\fP from meaksh/2016.11\-AliasesLoader\-wrapper\-fix
  211864. .IP \(bu 2
  211865. 915d94219e Allow to check whether a function is available on the AliasesLoader wrapper
  211866. .UNINDENT
  211867. .IP \(bu 2
  211868. \fBPR\fP \fI\%#42368\fP: (\fI\%twangboy\fP) Remove build and dist directories before install (2016.11)
  211869. @ \fI2017\-07\-19 16:47:28 UTC\fP
  211870. .INDENT 2.0
  211871. .IP \(bu 2
  211872. 10eb7b7a79 Merge pull request \fI\%#42368\fP from twangboy/win_fix_build_2016.11
  211873. .IP \(bu 2
  211874. a7c910c31e Remove build and dist directories before install
  211875. .UNINDENT
  211876. .IP \(bu 2
  211877. \fBPR\fP \fI\%#42370\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  211878. @ \fI2017\-07\-18 22:39:41 UTC\fP
  211879. .INDENT 2.0
  211880. .IP \(bu 2
  211881. 016189f62f Merge pull request \fI\%#42370\fP from rallytime/merge\-2016.11
  211882. .IP \(bu 2
  211883. 0aa5dde1de Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  211884. .IP \(bu 2
  211885. e9b0f20f8a Merge pull request \fI\%#42359\fP from Ch3LL/doc\-update\-2016.3
  211886. .INDENT 2.0
  211887. .IP \(bu 2
  211888. dc85b5edbe [2016.3] Update version numbers in doc config for 2017.7.0 release
  211889. .UNINDENT
  211890. .UNINDENT
  211891. .IP \(bu 2
  211892. \fBPR\fP \fI\%#42360\fP: (\fI\%Ch3LL\fP) [2016.11] Update version numbers in doc config for 2017.7.0 release
  211893. @ \fI2017\-07\-18 19:23:30 UTC\fP
  211894. .INDENT 2.0
  211895. .IP \(bu 2
  211896. f06a6f1796 Merge pull request \fI\%#42360\fP from Ch3LL/doc\-update\-2016.11
  211897. .IP \(bu 2
  211898. b90b7a7506 [2016.11] Update version numbers in doc config for 2017.7.0 release
  211899. .UNINDENT
  211900. .IP \(bu 2
  211901. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#42319\fP)
  211902. .IP \(bu 2
  211903. \fBPR\fP \fI\%#42319\fP: (\fI\%rallytime\fP) Add more documentation for config options that are missing from master/minion docs
  211904. @ \fI2017\-07\-18 18:02:32 UTC\fP
  211905. .INDENT 2.0
  211906. .IP \(bu 2
  211907. e0595b0a0f Merge pull request \fI\%#42319\fP from rallytime/config\-docs
  211908. .IP \(bu 2
  211909. b40f980632 Add more documentation for config options that are missing from master/minion docs
  211910. .UNINDENT
  211911. .IP \(bu 2
  211912. \fBISSUE\fP \fI\%#42333\fP: (\fI\%b3hni4\fP) Getting "invalid type of dict, a list is required" when trying to configure engines in master config file (refs: \fI\%#42352\fP)
  211913. .IP \(bu 2
  211914. \fBPR\fP \fI\%#42352\fP: (\fI\%CorvinM\fP) Multiple documentation fixes
  211915. @ \fI2017\-07\-18 15:10:37 UTC\fP
  211916. .INDENT 2.0
  211917. .IP \(bu 2
  211918. 78940400e3 Merge pull request \fI\%#42352\fP from CorvinM/issue42333
  211919. .IP \(bu 2
  211920. 526b6ee14d Multiple documentation fixes
  211921. .UNINDENT
  211922. .IP \(bu 2
  211923. \fBPR\fP \fI\%#42353\fP: (\fI\%terminalmage\fP) is_windows is a function, not a propery/attribute
  211924. @ \fI2017\-07\-18 14:38:51 UTC\fP
  211925. .INDENT 2.0
  211926. .IP \(bu 2
  211927. b256001760 Merge pull request \fI\%#42353\fP from terminalmage/fix\-git\-test
  211928. .IP \(bu 2
  211929. 14cf6ce322 is_windows is a function, not a propery/attribute
  211930. .UNINDENT
  211931. .IP \(bu 2
  211932. \fBISSUE\fP \fI\%#41116\fP: (\fI\%hrumph\fP) FAQ has wrong instructions for upgrading Windows minion. (refs: \fI\%#42264\fP)
  211933. .IP \(bu 2
  211934. \fBPR\fP \fI\%#42264\fP: (\fI\%rallytime\fP) Update minion restart section in FAQ doc for windows
  211935. @ \fI2017\-07\-17 17:40:40 UTC\fP
  211936. .INDENT 2.0
  211937. .IP \(bu 2
  211938. 866a1febb4 Merge pull request \fI\%#42264\fP from rallytime/fix\-41116
  211939. .IP \(bu 2
  211940. bd638880e3 Add mono\-spacing to salt\-minion reference for consistency
  211941. .IP \(bu 2
  211942. 30d62f43da Update minion restart section in FAQ doc for windows
  211943. .UNINDENT
  211944. .IP \(bu 2
  211945. \fBISSUE\fP \fI\%#42194\fP: (\fI\%jryberg\fP) pkg version: latest are now broken, appending <package>\-latest to filename (refs: \fI\%#42275\fP)
  211946. .IP \(bu 2
  211947. \fBPR\fP \fI\%#42275\fP: (\fI\%terminalmage\fP) pkg.installed: pack name/version into pkgs argument
  211948. @ \fI2017\-07\-17 17:38:39 UTC\fP
  211949. .INDENT 2.0
  211950. .IP \(bu 2
  211951. 9a707088ad Merge pull request \fI\%#42275\fP from terminalmage/issue42194
  211952. .IP \(bu 2
  211953. 663874908a pkg.installed: pack name/version into pkgs argument
  211954. .UNINDENT
  211955. .IP \(bu 2
  211956. \fBISSUE\fP \fI\%#41721\fP: (\fI\%sazaro\fP) state.sysrc broken when setting the value to YES or NO (refs: \fI\%#42269\fP)
  211957. .IP \(bu 2
  211958. \fBPR\fP \fI\%#42269\fP: (\fI\%rallytime\fP) Add some clarity to "multiple quotes" section of yaml docs
  211959. @ \fI2017\-07\-17 17:38:18 UTC\fP
  211960. .INDENT 2.0
  211961. .IP \(bu 2
  211962. e588f235e0 Merge pull request \fI\%#42269\fP from rallytime/fix\-41721
  211963. .IP \(bu 2
  211964. f2250d474a Add a note about using different styles of quotes.
  211965. .IP \(bu 2
  211966. 38d9b3d553 Add some clarity to "multiple quotes" section of yaml docs
  211967. .UNINDENT
  211968. .IP \(bu 2
  211969. \fBISSUE\fP \fI\%#42152\fP: (\fI\%dubb\-b\fP) salt\-cloud errors on Rackspace driver using \-out=yaml (refs: \fI\%#42282\fP)
  211970. .IP \(bu 2
  211971. \fBPR\fP \fI\%#42282\fP: (\fI\%rallytime\fP) Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  211972. @ \fI2017\-07\-17 17:36:35 UTC\fP
  211973. .INDENT 2.0
  211974. .IP \(bu 2
  211975. 5aaa214a75 Merge pull request \fI\%#42282\fP from rallytime/fix\-42152
  211976. .IP \(bu 2
  211977. f032223843 Handle libcloud objects that throw RepresenterErrors with \-\-out=yaml
  211978. .UNINDENT
  211979. .IP \(bu 2
  211980. \fBISSUE\fP \fI\%#42295\fP: (\fI\%lubyou\fP) file.absent fails on windows if the file to be removed has the "readonly" attribute set (refs: \fI\%#42308\fP)
  211981. .IP \(bu 2
  211982. \fBPR\fP \fI\%#42308\fP: (\fI\%lubyou\fP) Force file removal on Windows. Fixes \fI\%#42295\fP
  211983. @ \fI2017\-07\-17 17:12:13 UTC\fP
  211984. .INDENT 2.0
  211985. .IP \(bu 2
  211986. fb5697a4bc Merge pull request \fI\%#42308\fP from lubyou/42295\-fix\-file\-absent\-windows
  211987. .IP \(bu 2
  211988. 026ccf401a Force file removal on Windows. Fixes \fI\%#42295\fP
  211989. .UNINDENT
  211990. .IP \(bu 2
  211991. \fBISSUE\fP \fI\%#42267\fP: (\fI\%gzcwnk\fP) salt\-ssh not creating ssh keys automatically as per documentation (refs: \fI\%#42314\fP)
  211992. .IP \(bu 2
  211993. \fBPR\fP \fI\%#42314\fP: (\fI\%rallytime\fP) Add clarification to salt ssh docs about key auto\-generation.
  211994. @ \fI2017\-07\-17 14:07:49 UTC\fP
  211995. .INDENT 2.0
  211996. .IP \(bu 2
  211997. da2a8a518f Merge pull request \fI\%#42314\fP from rallytime/fix\-42267
  211998. .IP \(bu 2
  211999. c406046940 Add clarification to salt ssh docs about key auto\-generation.
  212000. .UNINDENT
  212001. .IP \(bu 2
  212002. \fBISSUE\fP \fI\%#41936\fP: (\fI\%michaelkarrer81\fP) git.latest identity does not set the correct user for the private key file on the minion (refs: \fI\%#41945\fP)
  212003. .IP \(bu 2
  212004. \fBPR\fP \fI\%#41945\fP: (\fI\%garethgreenaway\fP) Fixes to modules/git.py
  212005. @ \fI2017\-07\-14 17:46:10 UTC\fP
  212006. .INDENT 2.0
  212007. .IP \(bu 2
  212008. acadd54013 Merge pull request \fI\%#41945\fP from garethgreenaway/41936_allow_identity_files_with_user
  212009. .IP \(bu 2
  212010. 44841e5626 Moving the call to cp.get_file inside the with block to ensure the umask is preserved when we grab the file.
  212011. .IP \(bu 2
  212012. f9ba60eed8 Merge pull request \fI\%#1\fP from terminalmage/pr\-41945
  212013. .INDENT 2.0
  212014. .IP \(bu 2
  212015. 1b6026177c Restrict set_umask to mkstemp call only
  212016. .UNINDENT
  212017. .IP \(bu 2
  212018. 68549f3496 Fixing umask to we can set files as executable.
  212019. .IP \(bu 2
  212020. 4949bf3ff3 Updating to swap on the new salt.utils.files.set_umask context_manager
  212021. .IP \(bu 2
  212022. 8faa9f6d92 Updating PR with requested changes.
  212023. .IP \(bu 2
  212024. 494765e939 Updating the git module to allow an identity file to be used when passing the user parameter
  212025. .UNINDENT
  212026. .IP \(bu 2
  212027. \fBISSUE\fP \fI\%#42240\fP: (\fI\%casselt\fP) empty_password in user.present always changes password, even with test=True (refs: \fI\%#42289\fP)
  212028. .IP \(bu 2
  212029. \fBPR\fP \fI\%#42289\fP: (\fI\%CorvinM\fP) Multiple empty_password fixes for state.user
  212030. @ \fI2017\-07\-14 16:14:02 UTC\fP
  212031. .INDENT 2.0
  212032. .IP \(bu 2
  212033. \fBPR\fP \fI\%#41543\fP: (\fI\%cri\-epita\fP) Fix user creation with empty password (refs: \fI\%#42289\fP)
  212034. .IP \(bu 2
  212035. f90e04a2bc Merge pull request \fI\%#42289\fP from CorvinM/bp\-41543
  212036. .IP \(bu 2
  212037. 357dc22f05 Fix user creation with empty password
  212038. .UNINDENT
  212039. .IP \(bu 2
  212040. \fBPR\fP \fI\%#42123\fP: (\fI\%vutny\fP) DOCS: describe importing custom util classes
  212041. @ \fI2017\-07\-12 15:53:24 UTC\fP
  212042. .INDENT 2.0
  212043. .IP \(bu 2
  212044. a91a3f81b1 Merge pull request \fI\%#42123\fP from vutny/fix\-master\-utils\-import
  212045. .IP \(bu 2
  212046. 6bb8b8f98c Add missing doc for \fButils_dirs\fP Minion config option
  212047. .IP \(bu 2
  212048. f1bc58f6d5 Utils: add example of module import
  212049. .UNINDENT
  212050. .IP \(bu 2
  212051. \fBPR\fP \fI\%#42261\fP: (\fI\%rallytime\fP) Some minor doc fixes for dnsutil module so they\(aqll render correctly
  212052. @ \fI2017\-07\-11 23:14:53 UTC\fP
  212053. .INDENT 2.0
  212054. .IP \(bu 2
  212055. e2aa5114e4 Merge pull request \fI\%#42261\fP from rallytime/minor\-doc\-fix
  212056. .IP \(bu 2
  212057. 8c76bbb53d Some minor doc fixes for dnsutil module so they\(aqll render correctly
  212058. .UNINDENT
  212059. .IP \(bu 2
  212060. \fBPR\fP \fI\%#42262\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42224\fP to 2016.11
  212061. @ \fI2017\-07\-11 23:14:25 UTC\fP
  212062. .INDENT 2.0
  212063. .IP \(bu 2
  212064. \fBPR\fP \fI\%#42224\fP: (\fI\%tdutrion\fP) Remove duplicate instruction in Openstack Rackspace config example (refs: \fI\%#42262\fP)
  212065. .IP \(bu 2
  212066. 3e9dfbc9cc Merge pull request \fI\%#42262\fP from rallytime/bp\-42224
  212067. .IP \(bu 2
  212068. c31ded341c Remove duplicate instruction in Openstack Rackspace config example
  212069. .UNINDENT
  212070. .IP \(bu 2
  212071. \fBISSUE\fP \fI\%#42137\fP: (\fI\%kiemlicz\fP) cmd.run with multiple commands \- random order of execution (refs: \fI\%#42181\fP)
  212072. .IP \(bu 2
  212073. \fBPR\fP \fI\%#42181\fP: (\fI\%garethgreenaway\fP) fixes to state.py for names parameter
  212074. @ \fI2017\-07\-11 21:21:32 UTC\fP
  212075. .INDENT 2.0
  212076. .IP \(bu 2
  212077. 7780579c36 Merge pull request \fI\%#42181\fP from garethgreenaway/42137_backport_fix_from_2017_7
  212078. .IP \(bu 2
  212079. a34970b45b Back porting the fix for 2017.7 that ensures the order of the names parameter.
  212080. .UNINDENT
  212081. .IP \(bu 2
  212082. \fBPR\fP \fI\%#42253\fP: (\fI\%gtmanfred\fP) Only use unassociated ips when unable to allocate
  212083. @ \fI2017\-07\-11 20:53:51 UTC\fP
  212084. .INDENT 2.0
  212085. .IP \(bu 2
  212086. \fBPR\fP \fI\%#38965\fP: (\fI\%toanju\fP) salt\-cloud will use list_floating_ips for OpenStack (refs: \fI\%#42253\fP)
  212087. .IP \(bu 2
  212088. \fBPR\fP \fI\%#34280\fP: (\fI\%kevinanderson1\fP) salt\-cloud will use list_floating_ips for Openstack (refs: \fI\%#38965\fP)
  212089. .IP \(bu 2
  212090. 72537868a6 Merge pull request \fI\%#42253\fP from gtmanfred/2016.11
  212091. .IP \(bu 2
  212092. 53e25760be Only use unassociated ips when unable to allocate
  212093. .UNINDENT
  212094. .IP \(bu 2
  212095. \fBPR\fP \fI\%#42252\fP: (\fI\%UtahDave\fP) simple docstring updates
  212096. @ \fI2017\-07\-11 20:48:33 UTC\fP
  212097. .INDENT 2.0
  212098. .IP \(bu 2
  212099. b2a4698b5d Merge pull request \fI\%#42252\fP from UtahDave/2016.11local
  212100. .IP \(bu 2
  212101. e6a9563d47 simple doc updates
  212102. .UNINDENT
  212103. .IP \(bu 2
  212104. \fBISSUE\fP \fI\%#42232\fP: (\fI\%astronouth7303\fP) Half of dnsutil refers to dig (refs: \fI\%#42235\fP)
  212105. .IP \(bu 2
  212106. \fBPR\fP \fI\%#42235\fP: (\fI\%astronouth7303\fP) Abolish references to \fIdig\fP in examples.
  212107. @ \fI2017\-07\-10 20:06:11 UTC\fP
  212108. .INDENT 2.0
  212109. .IP \(bu 2
  212110. 781fe13be7 Merge pull request \fI\%#42235\fP from astronouth7303/patch\-1\-2016.3
  212111. .IP \(bu 2
  212112. 4cb51bd03a Make note of dig partial requirement.
  212113. .IP \(bu 2
  212114. 08e7d8351a Abolish references to \fIdig\fP in examples.
  212115. .UNINDENT
  212116. .IP \(bu 2
  212117. \fBPR\fP \fI\%#42215\fP: (\fI\%twangboy\fP) Add missing config to example
  212118. @ \fI2017\-07\-07 20:18:44 UTC\fP
  212119. .INDENT 2.0
  212120. .IP \(bu 2
  212121. 83cbd76f16 Merge pull request \fI\%#42215\fP from twangboy/win_iis_docs
  212122. .IP \(bu 2
  212123. c07e22041a Add missing config to example
  212124. .UNINDENT
  212125. .IP \(bu 2
  212126. \fBPR\fP \fI\%#42211\fP: (\fI\%terminalmage\fP) Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  212127. @ \fI2017\-07\-07 20:16:35 UTC\fP
  212128. .INDENT 2.0
  212129. .IP \(bu 2
  212130. 274946ab00 Merge pull request \fI\%#42211\fP from terminalmage/issue40928
  212131. .IP \(bu 2
  212132. 22a18fa2ed Only pass a saltenv in orchestration if one was explicitly passed (2016.11)
  212133. .UNINDENT
  212134. .IP \(bu 2
  212135. \fBPR\fP \fI\%#42173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37424\fP to 2016.11
  212136. @ \fI2017\-07\-07 16:39:59 UTC\fP
  212137. .INDENT 2.0
  212138. .IP \(bu 2
  212139. \fBPR\fP \fI\%#37424\fP: (\fI\%kojiromike\fP) Avoid Early Convert ret[\(aqcomment\(aq] to String (refs: \fI\%#42173\fP)
  212140. .IP \(bu 2
  212141. 89261cf06c Merge pull request \fI\%#42173\fP from rallytime/bp\-37424
  212142. .IP \(bu 2
  212143. 01addb6053 Avoid Early Convert ret[\(aqcomment\(aq] to String
  212144. .UNINDENT
  212145. .IP \(bu 2
  212146. \fBISSUE\fP \fI\%#39365\fP: (\fI\%dglloyd\fP) service.running fails if sysv script has no status command and enable: True (refs: \fI\%#39366\fP)
  212147. .IP \(bu 2
  212148. \fBPR\fP \fI\%#42175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39366\fP to 2016.11
  212149. @ \fI2017\-07\-06 19:51:47 UTC\fP
  212150. .INDENT 2.0
  212151. .IP \(bu 2
  212152. \fBPR\fP \fI\%#39366\fP: (\fI\%dglloyd\fP) Pass sig to service.status in after_toggle (refs: \fI\%#42175\fP)
  212153. .IP \(bu 2
  212154. 3b17fb7f83 Merge pull request \fI\%#42175\fP from rallytime/bp\-39366
  212155. .IP \(bu 2
  212156. 53f7b987e8 Pass sig to service.status in after_toggle
  212157. .UNINDENT
  212158. .IP \(bu 2
  212159. \fBPR\fP \fI\%#42172\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  212160. @ \fI2017\-07\-06 18:16:29 UTC\fP
  212161. .INDENT 2.0
  212162. .IP \(bu 2
  212163. ea16f47f0a Merge pull request \fI\%#42172\fP from rallytime/merge\-2016.11
  212164. .IP \(bu 2
  212165. b1fa332a11 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  212166. .INDENT 2.0
  212167. .IP \(bu 2
  212168. 8fa1fa5bb1 Merge pull request \fI\%#42155\fP from phsteve/doc\-fix\-puppet
  212169. .INDENT 2.0
  212170. .IP \(bu 2
  212171. fb2cb78a31 Fix docs for puppet.plugin_sync so code\-block renders properly and sync is spelled consistently
  212172. .UNINDENT
  212173. .UNINDENT
  212174. .UNINDENT
  212175. .IP \(bu 2
  212176. \fBPR\fP \fI\%#42176\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42109\fP to 2016.11
  212177. @ \fI2017\-07\-06 18:15:35 UTC\fP
  212178. .INDENT 2.0
  212179. .IP \(bu 2
  212180. \fBPR\fP \fI\%#42109\fP: (\fI\%arthurlogilab\fP) [doc] Update aws.rst \- add Debian default username (refs: \fI\%#42176\fP)
  212181. .IP \(bu 2
  212182. 6307b9873f Merge pull request \fI\%#42176\fP from rallytime/bp\-42109
  212183. .IP \(bu 2
  212184. 686926daf7 Update aws.rst \- add Debian default username
  212185. .UNINDENT
  212186. .IP \(bu 2
  212187. \fBPR\fP \fI\%#42095\fP: (\fI\%terminalmage\fP) Add debug logging to dockerng.login
  212188. @ \fI2017\-07\-06 17:13:05 UTC\fP
  212189. .INDENT 2.0
  212190. .IP \(bu 2
  212191. 28c4e4c3b7 Merge pull request \fI\%#42095\fP from terminalmage/docker\-login\-debugging
  212192. .IP \(bu 2
  212193. bd27870a71 Add debug logging to dockerng.login
  212194. .UNINDENT
  212195. .IP \(bu 2
  212196. \fBISSUE\fP \fI\%#42116\fP: (\fI\%terminalmage\fP) CLI pillar override regression in 2017.7.0rc1 (refs: \fI\%#42119\fP)
  212197. .IP \(bu 2
  212198. \fBPR\fP \fI\%#42119\fP: (\fI\%terminalmage\fP) Fix regression in CLI pillar override for salt\-call
  212199. @ \fI2017\-07\-06 17:02:52 UTC\fP
  212200. .INDENT 2.0
  212201. .IP \(bu 2
  212202. 2b754bc5af Merge pull request \fI\%#42119\fP from terminalmage/issue42116
  212203. .IP \(bu 2
  212204. 9a268949e3 Add integration test for 42116
  212205. .IP \(bu 2
  212206. 1bb42bb609 Fix regression when CLI pillar override is used with salt\-call
  212207. .UNINDENT
  212208. .IP \(bu 2
  212209. \fBISSUE\fP \fI\%#42114\fP: (\fI\%clallen\fP) saltenv bug in pillar.get execution module function (refs: \fI\%#42121\fP)
  212210. .IP \(bu 2
  212211. \fBPR\fP \fI\%#42121\fP: (\fI\%terminalmage\fP) Fix pillar.get when saltenv is passed
  212212. @ \fI2017\-07\-06 16:52:34 UTC\fP
  212213. .INDENT 2.0
  212214. .IP \(bu 2
  212215. 8c0a83cbb5 Merge pull request \fI\%#42121\fP from terminalmage/issue42114
  212216. .IP \(bu 2
  212217. d14291267f Fix pillar.get when saltenv is passed
  212218. .UNINDENT
  212219. .IP \(bu 2
  212220. \fBPR\fP \fI\%#42094\fP: (\fI\%terminalmage\fP) Prevent command from showing in exception when output_loglevel=quiet
  212221. @ \fI2017\-07\-06 16:18:09 UTC\fP
  212222. .INDENT 2.0
  212223. .IP \(bu 2
  212224. 687992c240 Merge pull request \fI\%#42094\fP from terminalmage/quiet\-exception
  212225. .IP \(bu 2
  212226. 47d61f4edf Prevent command from showing in exception when output_loglevel=quiet
  212227. .UNINDENT
  212228. .IP \(bu 2
  212229. \fBISSUE\fP \fI\%#42115\fP: (\fI\%nomeelnoj\fP) Installing EPEL repo breaks salt\-cloud (refs: \fI\%#42163\fP)
  212230. .IP \(bu 2
  212231. \fBPR\fP \fI\%#42163\fP: (\fI\%vutny\fP) Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  212232. @ \fI2017\-07\-06 16:15:07 UTC\fP
  212233. .INDENT 2.0
  212234. .IP \(bu 2
  212235. dad255160c Merge pull request \fI\%#42163\fP from vutny/fix\-42115
  212236. .IP \(bu 2
  212237. b27b1e340a Fix \fI\%#42115\fP: parse libcloud "rc" version correctly
  212238. .UNINDENT
  212239. .IP \(bu 2
  212240. \fBPR\fP \fI\%#42164\fP: (\fI\%Ch3LL\fP) Fix kerberos create_keytab doc
  212241. @ \fI2017\-07\-06 15:55:33 UTC\fP
  212242. .INDENT 2.0
  212243. .IP \(bu 2
  212244. 2a8ae2b3b6 Merge pull request \fI\%#42164\fP from Ch3LL/fix_kerb_doc
  212245. .IP \(bu 2
  212246. 7c0fb248ec Fix kerberos create_keytab doc
  212247. .UNINDENT
  212248. .IP \(bu 2
  212249. \fBPR\fP \fI\%#42141\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42098\fP to 2016.11
  212250. @ \fI2017\-07\-06 15:11:49 UTC\fP
  212251. .INDENT 2.0
  212252. .IP \(bu 2
  212253. \fBPR\fP \fI\%#42098\fP: (\fI\%twangboy\fP) Change repo_ng to repo\-ng (refs: \fI\%#42141\fP)
  212254. .IP \(bu 2
  212255. 678d4d4098 Merge pull request \fI\%#42141\fP from rallytime/bp\-42098
  212256. .IP \(bu 2
  212257. bd80243233 Change repo_ng to repo\-ng
  212258. .UNINDENT
  212259. .IP \(bu 2
  212260. \fBPR\fP \fI\%#42140\fP: (\fI\%rallytime\fP) Back\-port \fI\%#42097\fP to 2016.11
  212261. @ \fI2017\-07\-06 15:11:29 UTC\fP
  212262. .INDENT 2.0
  212263. .IP \(bu 2
  212264. \fBPR\fP \fI\%#42097\fP: (\fI\%gtmanfred\fP) require large timediff for ipv6 warning (refs: \fI\%#42140\fP)
  212265. .IP \(bu 2
  212266. c8afd7a3c9 Merge pull request \fI\%#42140\fP from rallytime/bp\-42097
  212267. .IP \(bu 2
  212268. 9c4e132540 Import datetime
  212269. .IP \(bu 2
  212270. 1435bf177e require large timediff for ipv6 warning
  212271. .UNINDENT
  212272. .IP \(bu 2
  212273. \fBPR\fP \fI\%#42142\fP: (\fI\%Ch3LL\fP) Update builds available for rc1
  212274. @ \fI2017\-07\-05 21:11:56 UTC\fP
  212275. .INDENT 2.0
  212276. .IP \(bu 2
  212277. c239664c8b Merge pull request \fI\%#42142\fP from Ch3LL/change_builds
  212278. .IP \(bu 2
  212279. e1694af39c Update builds available for rc1
  212280. .UNINDENT
  212281. .IP \(bu 2
  212282. \fBPR\fP \fI\%#42078\fP: (\fI\%damon\-atkins\fP) pkg.install and pkg.remove fix version number input.
  212283. @ \fI2017\-07\-05 06:04:57 UTC\fP
  212284. .INDENT 2.0
  212285. .IP \(bu 2
  212286. 4780d7830a Merge pull request \fI\%#42078\fP from damon\-atkins/fix_convert_flt_str_version_on_cmd_line
  212287. .IP \(bu 2
  212288. 09d37dd892 Fix comment typo
  212289. .IP \(bu 2
  212290. 7167549425 Handle version=None when converted to a string it becomes \(aqNone\(aq parm should default to empty string rather than None, it would fix better with existing code.
  212291. .IP \(bu 2
  212292. 4fb2bb1856 Fix typo
  212293. .IP \(bu 2
  212294. cf55c3361c pkg.install and pkg.remove on the command line take number version numbers, store them within a float. However version is a string, to support versions numbers like 1.3.4
  212295. .UNINDENT
  212296. .IP \(bu 2
  212297. \fBPR\fP \fI\%#42105\fP: (\fI\%Ch3LL\fP) Update releasecanddiate doc with new 2017.7.0rc1 Release
  212298. @ \fI2017\-07\-04 03:14:42 UTC\fP
  212299. .INDENT 2.0
  212300. .IP \(bu 2
  212301. 46d575acbc Merge pull request \fI\%#42105\fP from Ch3LL/update_rc
  212302. .IP \(bu 2
  212303. d4e7b91608 Update releasecanddiate doc with new 2017.7.0rc1 Release
  212304. .UNINDENT
  212305. .IP \(bu 2
  212306. \fBISSUE\fP \fI\%#41885\fP: (\fI\%astronouth7303\fP) Recommended pip installation outdated? (refs: \fI\%#42099\fP)
  212307. .IP \(bu 2
  212308. \fBPR\fP \fI\%#42099\fP: (\fI\%rallytime\fP) Remove references in docs to pip install salt\-cloud
  212309. @ \fI2017\-07\-03 22:13:44 UTC\fP
  212310. .INDENT 2.0
  212311. .IP \(bu 2
  212312. d38548bbbd Merge pull request \fI\%#42099\fP from rallytime/fix\-41885
  212313. .IP \(bu 2
  212314. c2822e05ad Remove references in docs to pip install salt\-cloud
  212315. .UNINDENT
  212316. .IP \(bu 2
  212317. \fBISSUE\fP \fI\%#42076\fP: (\fI\%abulford\fP) dockerng.volume_present test looks as though it would cause a change (refs: \fI\%#42086\fP)
  212318. .IP \(bu 2
  212319. \fBPR\fP \fI\%#42086\fP: (\fI\%abulford\fP) Make result=true if Docker volume already exists
  212320. @ \fI2017\-07\-03 15:48:33 UTC\fP
  212321. .INDENT 2.0
  212322. .IP \(bu 2
  212323. 81d606a8cb Merge pull request \fI\%#42086\fP from redmatter/fix\-dockerng\-volume\-present\-result
  212324. .IP \(bu 2
  212325. 8d549685a7 Make result=true if Docker volume already exists
  212326. .UNINDENT
  212327. .IP \(bu 2
  212328. \fBISSUE\fP \fI\%#25842\fP: (\fI\%shikhartanwar\fP) Running salt\-minion as non\-root user to execute sudo commands always returns an error (refs: \fI\%#42021\fP)
  212329. .IP \(bu 2
  212330. \fBPR\fP \fI\%#42021\fP: (\fI\%gtmanfred\fP) Set concurrent to True when running states with sudo
  212331. @ \fI2017\-06\-30 21:02:15 UTC\fP
  212332. .INDENT 2.0
  212333. .IP \(bu 2
  212334. 7160697123 Merge pull request \fI\%#42021\fP from gtmanfred/2016.11
  212335. .IP \(bu 2
  212336. 26beb18aa5 Set concurrent to True when running states with sudo
  212337. .UNINDENT
  212338. .IP \(bu 2
  212339. \fBPR\fP \fI\%#42029\fP: (\fI\%terminalmage\fP) Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212340. @ \fI2017\-06\-30 20:58:56 UTC\fP
  212341. .INDENT 2.0
  212342. .IP \(bu 2
  212343. b784fbbdf8 Merge pull request \fI\%#42029\fP from terminalmage/host_to_ips
  212344. .IP \(bu 2
  212345. 26f848e111 Mock socket.getaddrinfo in unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212346. .UNINDENT
  212347. .IP \(bu 2
  212348. \fBPR\fP \fI\%#42055\fP: (\fI\%dmurphy18\fP) Upgrade support for gnupg v2.1 and higher
  212349. @ \fI2017\-06\-30 20:54:02 UTC\fP
  212350. .INDENT 2.0
  212351. .IP \(bu 2
  212352. e067020b9b Merge pull request \fI\%#42055\fP from dmurphy18/handle_gnupgv21
  212353. .IP \(bu 2
  212354. e20cea6350 Upgrade support for gnupg v2.1 and higher
  212355. .UNINDENT
  212356. .IP \(bu 2
  212357. \fBPR\fP \fI\%#42048\fP: (\fI\%Ch3LL\fP) Add initial 2016.11.7 Release Notes
  212358. @ \fI2017\-06\-30 16:00:05 UTC\fP
  212359. .INDENT 2.0
  212360. .IP \(bu 2
  212361. 74ba2abc48 Merge pull request \fI\%#42048\fP from Ch3LL/add_11.7
  212362. .IP \(bu 2
  212363. 1de5e008a0 Add initial 2016.11.7 Release Notes
  212364. .UNINDENT
  212365. .IP \(bu 2
  212366. \fBPR\fP \fI\%#42024\fP: (\fI\%leeclemens\fP) doc: Specify versionadded for SELinux policy install/uninstall
  212367. @ \fI2017\-06\-29 23:29:50 UTC\fP
  212368. .INDENT 2.0
  212369. .IP \(bu 2
  212370. ca4e619edb Merge pull request \fI\%#42024\fP from leeclemens/doc/selinux
  212371. .IP \(bu 2
  212372. b63a3c0fae doc: Specify versionadded for SELinux policy install/uninstall
  212373. .IP \(bu 2
  212374. \fBPR\fP \fI\%saltstack/salt#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3 (refs: \fI\%#42028\fP)
  212375. .UNINDENT
  212376. .IP \(bu 2
  212377. \fBPR\fP \fI\%#42030\fP: (\fI\%whiteinge\fP) Re\-add msgpack to mocked imports
  212378. @ \fI2017\-06\-29 20:47:59 UTC\fP
  212379. .INDENT 2.0
  212380. .IP \(bu 2
  212381. \fBPR\fP \fI\%#42028\fP: (\fI\%whiteinge\fP) Revert "Allow docs to be built under Python 3" (refs: \fI\%#42030\fP)
  212382. .IP \(bu 2
  212383. 50856d0e28 Merge pull request \fI\%#42030\fP from whiteinge/revert\-py3\-doc\-chagnes\-pt\-2
  212384. .IP \(bu 2
  212385. 18dfa9893c Re\-add msgpack to mocked imports
  212386. .IP \(bu 2
  212387. \fBPR\fP \fI\%saltstack/salt#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3 (refs: \fI\%#42028\fP)
  212388. .UNINDENT
  212389. .IP \(bu 2
  212390. \fBPR\fP \fI\%#42028\fP: (\fI\%whiteinge\fP) Revert "Allow docs to be built under Python 3" (refs: \fI\%#42030\fP)
  212391. @ \fI2017\-06\-29 19:47:46 UTC\fP
  212392. .INDENT 2.0
  212393. .IP \(bu 2
  212394. 53031d2f55 Merge pull request \fI\%#42028\fP from saltstack/revert\-41961\-py3_doc
  212395. .IP \(bu 2
  212396. 5592e6e5d4 Revert "Allow docs to be built under Python 3"
  212397. .UNINDENT
  212398. .IP \(bu 2
  212399. \fBISSUE\fP \fI\%#42013\fP: (\fI\%dusto\fP) Misspelled nozeroconf in salt/modules/rh_ip.py (refs: \fI\%#42017\fP)
  212400. .IP \(bu 2
  212401. \fBPR\fP \fI\%#42017\fP: (\fI\%lorengordon\fP) Fixes typo "nozerconf" \-> "nozeroconf"
  212402. @ \fI2017\-06\-29 17:30:48 UTC\fP
  212403. .INDENT 2.0
  212404. .IP \(bu 2
  212405. 1416bf70b9 Merge pull request \fI\%#42017\fP from lorengordon/issue\-42013
  212406. .IP \(bu 2
  212407. b6cf5f2528 Fixes typo nozerconf \-> nozeroconf
  212408. .UNINDENT
  212409. .IP \(bu 2
  212410. \fBPR\fP \fI\%#41906\fP: (\fI\%terminalmage\fP) Better support for numeric saltenvs
  212411. @ \fI2017\-06\-29 17:19:33 UTC\fP
  212412. .INDENT 2.0
  212413. .IP \(bu 2
  212414. 0ebb50b601 Merge pull request \fI\%#41906\fP from terminalmage/numeric\-saltenv
  212415. .IP \(bu 2
  212416. 2d798de982 Better support for numeric saltenvs
  212417. .UNINDENT
  212418. .IP \(bu 2
  212419. \fBPR\fP \fI\%#41995\fP: (\fI\%terminalmage\fP) Temporarily set the umask before writing an auth token
  212420. @ \fI2017\-06\-29 01:09:48 UTC\fP
  212421. .INDENT 2.0
  212422. .IP \(bu 2
  212423. 6a3c03c2d5 Merge pull request \fI\%#41995\fP from terminalmage/token\-umask
  212424. .IP \(bu 2
  212425. 4f54b0069f Temporarily set the umask before writing an auth token
  212426. .UNINDENT
  212427. .IP \(bu 2
  212428. \fBPR\fP \fI\%#41999\fP: (\fI\%terminalmage\fP) Update IP address for unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212429. @ \fI2017\-06\-29 01:01:31 UTC\fP
  212430. .INDENT 2.0
  212431. .IP \(bu 2
  212432. e3801b0e78 Merge pull request \fI\%#41999\fP from terminalmage/fix\-network\-test
  212433. .IP \(bu 2
  212434. fb6a93314f Update IP address for unit.utils.network_test.NetworkTestCase.test_host_to_ips
  212435. .UNINDENT
  212436. .IP \(bu 2
  212437. \fBISSUE\fP \fI\%#18659\fP: (\fI\%whiteinge\fP) mod_aggregate not working for list\-form configuration (refs: \fI\%#41991\fP)
  212438. .IP \(bu 2
  212439. \fBPR\fP \fI\%#41991\fP: (\fI\%Da\-Juan\fP) Accept a list for state_aggregate global setting
  212440. @ \fI2017\-06\-29 00:58:59 UTC\fP
  212441. .INDENT 2.0
  212442. .IP \(bu 2
  212443. a7f38929cb Merge pull request \fI\%#41991\fP from Da\-Juan/fix\-state_aggregate\-list
  212444. .IP \(bu 2
  212445. c9075b8f84 Accept a list for state_aggregate setting
  212446. .UNINDENT
  212447. .IP \(bu 2
  212448. \fBPR\fP \fI\%#41993\fP: (\fI\%UtahDave\fP) change out salt support link to SaltConf link
  212449. @ \fI2017\-06\-29 00:55:20 UTC\fP
  212450. .INDENT 2.0
  212451. .IP \(bu 2
  212452. 7424f879a3 Merge pull request \fI\%#41993\fP from UtahDave/2016.11local
  212453. .IP \(bu 2
  212454. bff050ad52 change out salt support link to SaltConf link
  212455. .UNINDENT
  212456. .IP \(bu 2
  212457. \fBPR\fP \fI\%#41987\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  212458. @ \fI2017\-06\-28 20:19:11 UTC\fP
  212459. .INDENT 2.0
  212460. .IP \(bu 2
  212461. 3b9ccf09d7 Merge pull request \fI\%#41987\fP from rallytime/merge\-2016.11
  212462. .IP \(bu 2
  212463. 48867c4a82 Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  212464. .INDENT 2.0
  212465. .IP \(bu 2
  212466. c589eae03f Merge pull request \fI\%#41981\fP from Ch3LL/11.6_3
  212467. .IP \(bu 2
  212468. 2516ae1349 [2016.3] Bump latest release version to 2016.11.6
  212469. .UNINDENT
  212470. .UNINDENT
  212471. .IP \(bu 2
  212472. \fBPR\fP \fI\%#41985\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41780\fP to 2016.11
  212473. @ \fI2017\-06\-28 20:18:57 UTC\fP
  212474. .INDENT 2.0
  212475. .IP \(bu 2
  212476. \fBPR\fP \fI\%#41780\fP: (\fI\%ferringb\fP) Fix salt.util.render_jinja_tmpl usage for when not used in an environmnet (refs: \fI\%#41985\fP)
  212477. .IP \(bu 2
  212478. 768339d734 Merge pull request \fI\%#41985\fP from rallytime/bp\-41780
  212479. .IP \(bu 2
  212480. 8f8d3a473a Fix salt.util.render_jinja_tmpl usage for when not used in an environment.
  212481. .UNINDENT
  212482. .IP \(bu 2
  212483. \fBISSUE\fP \fI\%#34963\fP: (\fI\%craigafinch\fP) Incorrect behavior or documentation for comments in salt.states.pkgrepo.managed (refs: \fI\%#41820\fP)
  212484. .IP \(bu 2
  212485. \fBPR\fP \fI\%#41986\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41820\fP to 2016.11
  212486. @ \fI2017\-06\-28 20:18:43 UTC\fP
  212487. .INDENT 2.0
  212488. .IP \(bu 2
  212489. \fBPR\fP \fI\%#41820\fP: (\fI\%nhavens\fP) Fix yum repo file comments to work as documented in pkgrepo.managed (refs: \fI\%#41986\fP)
  212490. .IP \(bu 2
  212491. bd9090c0bf Merge pull request \fI\%#41986\fP from rallytime/bp\-41820
  212492. .IP \(bu 2
  212493. 72320e35b9 Fix yum repo file comments to work as documented in pkgrepo.managed
  212494. .UNINDENT
  212495. .IP \(bu 2
  212496. \fBPR\fP \fI\%#41973\fP: (\fI\%vutny\fP) Fix Master/Minion scheduled jobs based on Cron expressions (refs: \fI\%#42077\fP)
  212497. @ \fI2017\-06\-28 16:39:02 UTC\fP
  212498. .INDENT 2.0
  212499. .IP \(bu 2
  212500. a31da52635 Merge pull request \fI\%#41973\fP from vutny/fix\-croniter\-scheduled\-jobs
  212501. .IP \(bu 2
  212502. 148788e652 Fix Master/Minion scheduled jobs based on Cron expressions
  212503. .UNINDENT
  212504. .IP \(bu 2
  212505. \fBPR\fP \fI\%#41980\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest release version to 2016.11.6
  212506. @ \fI2017\-06\-28 15:35:11 UTC\fP
  212507. .INDENT 2.0
  212508. .IP \(bu 2
  212509. 689ff93349 Merge pull request \fI\%#41980\fP from Ch3LL/11.6_11
  212510. .IP \(bu 2
  212511. fe4f5711d5 [2016.11] Bump latest release version to 2016.11.6
  212512. .UNINDENT
  212513. .IP \(bu 2
  212514. \fBPR\fP \fI\%#41961\fP: (\fI\%cachedout\fP) Allow docs to be built under Python 3
  212515. @ \fI2017\-06\-27 21:11:54 UTC\fP
  212516. .INDENT 2.0
  212517. .IP \(bu 2
  212518. 82b1eb28ab Merge pull request \fI\%#41961\fP from cachedout/py3_doc
  212519. .IP \(bu 2
  212520. 7aacddf6ef Allow docs to be built under Python 3
  212521. .UNINDENT
  212522. .IP \(bu 2
  212523. \fBPR\fP \fI\%#41948\fP: (\fI\%davidjb\fP) Fix Composer state\(aqs \fIname\fP docs; formatting
  212524. @ \fI2017\-06\-27 17:51:29 UTC\fP
  212525. .INDENT 2.0
  212526. .IP \(bu 2
  212527. \fBPR\fP \fI\%#41933\fP: (\fI\%davidjb\fP) Fix Composer state\(aqs \fIname\fP docs and improve formatting (refs: \fI\%#41948\fP)
  212528. .IP \(bu 2
  212529. f0eb51df17 Merge pull request \fI\%#41948\fP from davidjb/patch\-9
  212530. .IP \(bu 2
  212531. 0e4b3d9a42 Fix Composer state\(aqs \fIname\fP docs; formatting
  212532. .UNINDENT
  212533. .IP \(bu 2
  212534. \fBPR\fP \fI\%#41914\fP: (\fI\%vutny\fP) archive.extracted: fix hash sum verification for local archives
  212535. @ \fI2017\-06\-26 17:59:27 UTC\fP
  212536. .INDENT 2.0
  212537. .IP \(bu 2
  212538. e28e10ded2 Merge pull request \fI\%#41914\fP from vutny/fix\-archive\-extracted\-local\-file\-hash
  212539. .IP \(bu 2
  212540. 54910fe55f archive.extracted: fix hash sum verification for local archives
  212541. .UNINDENT
  212542. .IP \(bu 2
  212543. \fBPR\fP \fI\%#41912\fP: (\fI\%Ch3LL\fP) Allow pacman module to run on Manjaro
  212544. @ \fI2017\-06\-26 15:35:20 UTC\fP
  212545. .INDENT 2.0
  212546. .IP \(bu 2
  212547. 76ad6ff064 Merge pull request \fI\%#41912\fP from Ch3LL/fix_manjaro
  212548. .IP \(bu 2
  212549. e4dd72a3e7 Update os_name_map in core grains for new manjaro systems
  212550. .IP \(bu 2
  212551. aa7c839fc5 Allow pacman module to run on Manjaro
  212552. .UNINDENT
  212553. .IP \(bu 2
  212554. \fBISSUE\fP \fI\%#38093\fP: (\fI\%DmitryKuzmenko\fP) Make threads avoid blocking waiting while communicating using TCP transport. (refs: \fI\%#41516\fP)
  212555. .IP \(bu 2
  212556. \fBPR\fP \fI\%#41516\fP: (\fI\%kstreee\fP) Implements MessageClientPool to avoid blocking waiting for zeromq and tcp communications.
  212557. @ \fI2017\-06\-26 14:41:38 UTC\fP
  212558. .INDENT 2.0
  212559. .IP \(bu 2
  212560. \fBPR\fP \fI\%#37878\fP: (\fI\%kstreee\fP) Makes threads avoid blocking waiting while communicating using Zeromq. (refs: \fI\%#41516\fP)
  212561. .IP \(bu 2
  212562. ff67d47a2e Merge pull request \fI\%#41516\fP from kstreee/fix\-blocking\-waiting\-tcp\-connection
  212563. .IP \(bu 2
  212564. df96969959 Removes redundant closing statements.
  212565. .IP \(bu 2
  212566. 94b9ea51eb Implements MessageClientPool to avoid blocking waiting for zeromq and tcp communications.
  212567. .UNINDENT
  212568. .IP \(bu 2
  212569. \fBPR\fP \fI\%#41888\fP: (\fI\%Ch3LL\fP) Add additional commits to 2016.11.6 release notes
  212570. @ \fI2017\-06\-22 16:19:00 UTC\fP
  212571. .INDENT 2.0
  212572. .IP \(bu 2
  212573. c90cb6798a Merge pull request \fI\%#41888\fP from Ch3LL/change_release
  212574. .IP \(bu 2
  212575. 4e1239d980 Add additional commits to 2016.11.6 release notes
  212576. .UNINDENT
  212577. .IP \(bu 2
  212578. \fBPR\fP \fI\%#41882\fP: (\fI\%Ch3LL\fP) Add pycryptodome to crypt_test
  212579. @ \fI2017\-06\-21 19:51:10 UTC\fP
  212580. .INDENT 2.0
  212581. .IP \(bu 2
  212582. 4a326444fe Merge pull request \fI\%#41882\fP from Ch3LL/fix_crypt_test
  212583. .IP \(bu 2
  212584. 6f70dbd0e1 Add pycryptodome to crypt_test
  212585. .UNINDENT
  212586. .IP \(bu 2
  212587. \fBPR\fP \fI\%#41877\fP: (\fI\%Ch3LL\fP) Fix netstat and routes test
  212588. @ \fI2017\-06\-21 16:16:58 UTC\fP
  212589. .INDENT 2.0
  212590. .IP \(bu 2
  212591. 13df29ed9b Merge pull request \fI\%#41877\fP from Ch3LL/fix_netstat_test
  212592. .IP \(bu 2
  212593. d2076a6c93 Patch salt.utils.which for test_route test
  212594. .IP \(bu 2
  212595. 51f7e107dc Patch salt.utils.which for test_netstat test
  212596. .UNINDENT
  212597. .IP \(bu 2
  212598. \fBISSUE\fP \fI\%#41367\fP: (\fI\%lubyou\fP) certutil.add_store does not work on non english windows versions or on Windows 10 (localised or English) (refs: \fI\%#41566\fP)
  212599. .IP \(bu 2
  212600. \fBPR\fP \fI\%#41566\fP: (\fI\%morganwillcock\fP) win_certutil: workaround for reading serial numbers with non\-English languages
  212601. @ \fI2017\-06\-21 15:40:29 UTC\fP
  212602. .INDENT 2.0
  212603. .IP \(bu 2
  212604. 66f8c83c93 Merge pull request \fI\%#41566\fP from morganwillcock/certutil
  212605. .IP \(bu 2
  212606. c337d52d0c Fix test data for test_get_serial, and a typo
  212607. .IP \(bu 2
  212608. 7f6961378e test and lint fixes
  212609. .IP \(bu 2
  212610. 8ee48432f4 Suppress output of crypt context and be more specifc with whitespace vs. serial
  212611. .IP \(bu 2
  212612. 61f817d172 Match serials based on output position (fix for non\-English languages)
  212613. .UNINDENT
  212614. .IP \(bu 2
  212615. \fBPR\fP \fI\%#41679\fP: (\fI\%terminalmage\fP) Prevent unnecessary duplicate pillar compilation
  212616. @ \fI2017\-06\-21 15:32:42 UTC\fP
  212617. .INDENT 2.0
  212618. .IP \(bu 2
  212619. 4d0f5c433d Merge pull request \fI\%#41679\fP from terminalmage/get\-top\-file\-envs
  212620. .IP \(bu 2
  212621. a916e8da49 Improve normalization of saltenv/pillarenv usage for states
  212622. .IP \(bu 2
  212623. 02f293a19c Update state unit tests to reflect recent changes
  212624. .IP \(bu 2
  212625. b7e5c11165 Don\(aqt compile pillar data when getting top file envs
  212626. .IP \(bu 2
  212627. 8d6fdb7c9a Don\(aqt compile pillar twice for salt\-call
  212628. .IP \(bu 2
  212629. d2abfbf4ed Add initial_pillar argument to salt.state
  212630. .IP \(bu 2
  212631. 70186de532 salt.pillar: rename the "pillar" argument to "pillar_override"
  212632. .UNINDENT
  212633. .IP \(bu 2
  212634. \fBISSUE\fP \fI\%#39668\fP: (\fI\%mirceaulinic\fP) Master scheduled job not recorded on the event bus (refs: \fI\%#41658\fP)
  212635. .IP \(bu 2
  212636. \fBISSUE\fP \fI\%#12653\fP: (\fI\%pengyao\fP) salt schedule doesn\(aqt return jobs result info to master (refs: \fI\%#41853\fP)
  212637. .IP \(bu 2
  212638. \fBPR\fP \fI\%#41853\fP: (\fI\%vutny\fP) Fix master side scheduled jobs to return events
  212639. @ \fI2017\-06\-20 22:06:29 UTC\fP
  212640. .INDENT 2.0
  212641. .IP \(bu 2
  212642. \fBPR\fP \fI\%#41695\fP: (\fI\%xiaoanyunfei\fP) fix max RecursionError, Ellipsis (refs: \fI\%#41853\fP)
  212643. .IP \(bu 2
  212644. \fBPR\fP \fI\%#41658\fP: (\fI\%garethgreenaway\fP) Fixes to the salt scheduler (refs: \fI\%#41853\fP)
  212645. .IP \(bu 2
  212646. 29b0acc3a2 Merge pull request \fI\%#41853\fP from vutny/fix\-master\-schedule\-event
  212647. .IP \(bu 2
  212648. e206c381c6 Fix master side scheduled jobs to return events
  212649. .UNINDENT
  212650. .UNINDENT
  212651. .SS Salt 2016.11.9 Release Notes
  212652. .sp
  212653. Version 2016.11.9 is a bugfix release for 2016.11.0\&.
  212654. .SS Statistics
  212655. .INDENT 0.0
  212656. .IP \(bu 2
  212657. Total Merges: \fB143\fP
  212658. .IP \(bu 2
  212659. Total Issue References: \fB60\fP
  212660. .IP \(bu 2
  212661. Total PR References: \fB167\fP
  212662. .IP \(bu 2
  212663. Contributors: \fB54\fP (\fI\%Ch3LL\fP, \fI\%UtahDave\fP, \fI\%VertigoRay\fP, \fI\%akissa\fP, \fI\%aogier\fP, \fI\%arthtux\fP, \fI\%austinpapp\fP, \fI\%basepi\fP, \fI\%benediktwerner\fP, \fI\%bobrik\fP, \fI\%brejoc\fP, \fI\%cachedout\fP, \fI\%cetanu\fP, \fI\%corywright\fP, \fI\%creideiki\fP, \fI\%cro\fP, \fI\%cruscio\fP, \fI\%damon\-atkins\fP, \fI\%dayid\fP, \fI\%defanator\fP, \fI\%dereckson\fP, \fI\%dijit\fP, \fI\%doesitblend\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%gurubert\fP, \fI\%gvengel\fP, \fI\%jfindlay\fP, \fI\%johnj\fP, \fI\%jubrad\fP, \fI\%junovitch\fP, \fI\%lomeroe\fP, \fI\%lordcirth\fP, \fI\%lorengordon\fP, \fI\%mattLLVW\fP, \fI\%meaksh\fP, \fI\%moio\fP, \fI\%msummers42\fP, \fI\%mtkennerly\fP, \fI\%nicholasmhughes\fP, \fI\%oeuftete\fP, \fI\%rallytime\fP, \fI\%rasathus\fP, \fI\%roaldnefs\fP, \fI\%rossengeorgiev\fP, \fI\%seanjnkns\fP, \fI\%senthilkumar\-e\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP, \fI\%vernondcole\fP, \fI\%vutny\fP, \fI\%whiteinge\fP, \fI\%whytewolf\fP)
  212664. .UNINDENT
  212665. .SS Windows Changes
  212666. .SS \fBpkg\fP Execution Module\(ga
  212667. .sp
  212668. Significate changes (PR #43708 & #45390, damon\-atkins) have been made to the
  212669. pkg execution module. Users should test this release against their existing
  212670. package sls definition files.
  212671. .INDENT 0.0
  212672. .IP \(bu 2
  212673. \fBpkg.list_available\fP no longer
  212674. defaults to refreshing the winrepo meta database.
  212675. .IP \(bu 2
  212676. \fBpkg.install\fP without a \fBversion\fP
  212677. parameter no longer upgrades software if the software is already installed.
  212678. Use \fBpkg.install version=latest\fP (or simply use a \fBpkg.latest\fP state to get the old behavior.
  212679. .IP \(bu 2
  212680. \fBpkg.list_pkgs\fP now returns
  212681. multiple versions if software installed more than once.
  212682. .IP \(bu 2
  212683. \fBpkg.list_pkgs\fP now returns \fBNot
  212684. Found\fP when the version is not found instead of \fB(value not set)\fP which
  212685. matches the contents of the sls definitions.
  212686. .IP \(bu 2
  212687. \fBpkg.remove\fP will wait up to 3 seconds
  212688. (normally about a second) to detect changes in the registry after removing
  212689. software, improving reporting of version changes.
  212690. .IP \(bu 2
  212691. \fBpkg.remove\fP can remove \fBlatest\fP
  212692. software, if \fBlatest\fP is defined in sls definition.
  212693. .IP \(bu 2
  212694. Documentation was update for the execution module to match the style in new
  212695. versions, some corrections as well.
  212696. .IP \(bu 2
  212697. All install/remove commands are prefix with cmd.exe shell and cmdmod is
  212698. called with a command line string instead of a list. Some sls files in
  212699. saltstack/salt\-winrepo\-ng expected the commands to be prefixed with cmd.exe
  212700. (i.e. the use of \fB&\fP).
  212701. .IP \(bu 2
  212702. Some execution module functions results, now behave more like their
  212703. Unix/Linux versions.
  212704. .UNINDENT
  212705. .SS \fBcmd\fP Execution Module
  212706. .sp
  212707. Due to a difference in how Python\(aqs \fBsubprocess.Popen()\fP spawns processes on
  212708. Windows, passing the command as a list of arguments can result in problems.
  212709. This is because Windows\(aq \fICreateProcess\fP requires the command to be passed as a
  212710. single string. Therefore, \fBsubprocess\fP will attempt to re\-assemble the list
  212711. of arguments into as string. Some escaped characters and quotes can cause the
  212712. resulting string to be incorrectly\-assembled, resulting in a failure to execute
  212713. the command.
  212714. .sp
  212715. Salt now deals with these cases by joining the list of arguments correctly and
  212716. ensuring that the command is passed to \fBsubprocess.Popen()\fP as a string.
  212717. .SS Changelog for v2016.11.8..v2016.11.9
  212718. .sp
  212719. \fIGenerated at: 2018\-05\-27 20:28:05 UTC\fP
  212720. .INDENT 0.0
  212721. .IP \(bu 2
  212722. \fBPR\fP \fI\%#45638\fP: (\fI\%twangboy\fP) Win fix shell info
  212723. @ \fI2018\-01\-23 22:38:22 UTC\fP
  212724. .INDENT 2.0
  212725. .IP \(bu 2
  212726. 10812969f0 Merge pull request \fI\%#45638\fP from twangboy/win_fix_shell_info
  212727. .IP \(bu 2
  212728. 872da3ffba Only convert text types in the list_values function
  212729. .IP \(bu 2
  212730. 0e41535cdb Fix reg.py to only convert text types to unicode
  212731. .IP \(bu 2
  212732. 3579534ea5 Fix issue with detecting powershell
  212733. .UNINDENT
  212734. .IP \(bu 2
  212735. \fBPR\fP \fI\%#45564\fP: (\fI\%Ch3LL\fP) Add PR changes to 2016.11.9 Release Notes
  212736. @ \fI2018\-01\-19 21:36:05 UTC\fP
  212737. .INDENT 2.0
  212738. .IP \(bu 2
  212739. 2d1dd1186e Merge pull request \fI\%#45564\fP from Ch3LL/r\-notes\-2016
  212740. .IP \(bu 2
  212741. 325f4cbcda Add PR changes to 2016.11.9 Release Notes
  212742. .UNINDENT
  212743. .IP \(bu 2
  212744. \fBPR\fP \fI\%#45563\fP: (\fI\%Ch3LL\fP) Update man pages for 2016.11.9
  212745. @ \fI2018\-01\-19 21:19:00 UTC\fP
  212746. .INDENT 2.0
  212747. .IP \(bu 2
  212748. 28e4398150 Merge pull request \fI\%#45563\fP from Ch3LL/man_2016
  212749. .IP \(bu 2
  212750. 529bc0c680 update release number for salt\-call man page 2016.11.9
  212751. .IP \(bu 2
  212752. 11b7222148 Update man pages for 2016.11.9
  212753. .UNINDENT
  212754. .IP \(bu 2
  212755. \fBPR\fP \fI\%#45532\fP: (\fI\%gtmanfred\fP) fix mock for opensuse
  212756. @ \fI2018\-01\-18 22:48:30 UTC\fP
  212757. .INDENT 2.0
  212758. .IP \(bu 2
  212759. 654df0f526 Merge pull request \fI\%#45532\fP from gtmanfred/2016.11.9
  212760. .IP \(bu 2
  212761. 6c26025664 fix mock for opensuse
  212762. .UNINDENT
  212763. .IP \(bu 2
  212764. \fBPR\fP \fI\%#45518\fP: (\fI\%gtmanfred\fP) fix last 2016.11.9 failing tests
  212765. @ \fI2018\-01\-18 12:03:50 UTC\fP
  212766. .INDENT 2.0
  212767. .IP \(bu 2
  212768. 571c33aa39 Merge pull request \fI\%#45518\fP from gtmanfred/2016.11.9
  212769. .IP \(bu 2
  212770. 5455d2dee6 fix centos 6 pip test
  212771. .IP \(bu 2
  212772. 40255194b0 fix fedora pkg test
  212773. .UNINDENT
  212774. .IP \(bu 2
  212775. \fBISSUE\fP \fI\%#45394\fP: (\fI\%dmurphy18\fP) git.latest fails when "depth" is used with a non\-default branch (refs: \fI\%#45399\fP)
  212776. .IP \(bu 2
  212777. \fBPR\fP \fI\%#45443\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45399\fP to 2016.11.9
  212778. @ \fI2018\-01\-17 14:53:58 UTC\fP
  212779. .INDENT 2.0
  212780. .IP \(bu 2
  212781. \fBPR\fP \fI\%#45399\fP: (\fI\%terminalmage\fP) Fix git.latest failure when rev is not the default branch (refs: \fI\%#45443\fP)
  212782. .IP \(bu 2
  212783. 4e0a0eec1f Merge pull request \fI\%#45443\fP from rallytime/bp\-45399\-2016.11.9
  212784. .IP \(bu 2
  212785. 919e92c911 Fix git.latest failure when rev is not the default branch
  212786. .UNINDENT
  212787. .IP \(bu 2
  212788. \fBISSUE\fP \fI\%#45432\fP: (\fI\%TheBigBear\fP) winrepo\-ng fault pkg.refresh_db doesn\(aqt work \- it processes ANY stray .git metadata *.sls files present on minion (refs: \fI\%#45493\fP)
  212789. .IP \(bu 2
  212790. \fBPR\fP \fI\%#45493\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.refresh_db report an issue if a sls pkg definition does not contain a dict instead of aborting
  212791. @ \fI2018\-01\-17 14:52:03 UTC\fP
  212792. .INDENT 2.0
  212793. .IP \(bu 2
  212794. ebd4db66b8 Merge pull request \fI\%#45493\fP from damon\-atkins/2016.11_fix_sls_defintion_wrong_type
  212795. .IP \(bu 2
  212796. af108440df win_pkg lint space after ,
  212797. .IP \(bu 2
  212798. c6e922a236 win_pkg lint issues
  212799. .IP \(bu 2
  212800. f4627d7a80 fix quote i.e. change \(ga to \(aq
  212801. .IP \(bu 2
  212802. 6938a4c099 pkg.refresh_db report an issue if a sls pkg definition id not a dict instead of aborting.
  212803. .UNINDENT
  212804. .IP \(bu 2
  212805. \fBPR\fP \fI\%#45446\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45390\fP to 2016.11.9
  212806. @ \fI2018\-01\-16 20:08:38 UTC\fP
  212807. .INDENT 2.0
  212808. .IP \(bu 2
  212809. \fBPR\fP \fI\%#45390\fP: (\fI\%damon\-atkins\fP) win_pkg: fix pkg.remove, pkg.list_pkgs (refs: \fI\%#45446\fP)
  212810. .IP \(bu 2
  212811. 7322efba92 Merge pull request \fI\%#45446\fP from rallytime/bp\-45390
  212812. .IP \(bu 2
  212813. 69f045ea24 lint too\-many\-blank\-lines
  212814. .IP \(bu 2
  212815. 10a7501ede Update release notes
  212816. .IP \(bu 2
  212817. 6f2affe01c fix pkg.remove, pkg.list_pkgs
  212818. .UNINDENT
  212819. .IP \(bu 2
  212820. \fBPR\fP \fI\%#45424\fP: (\fI\%twangboy\fP) Fix some issues with reg.py
  212821. @ \fI2018\-01\-13 19:34:47 UTC\fP
  212822. .INDENT 2.0
  212823. .IP \(bu 2
  212824. b0ece9f4d4 Merge pull request \fI\%#45424\fP from twangboy/win_reg
  212825. .IP \(bu 2
  212826. 30f06205f7 Fix some issues with reg.py
  212827. .UNINDENT
  212828. .IP \(bu 2
  212829. \fBPR\fP \fI\%#45327\fP: (\fI\%lomeroe\fP) Backport \fI\%#44861\fP to 2016.11
  212830. @ \fI2018\-01\-08 21:10:41 UTC\fP
  212831. .INDENT 2.0
  212832. .IP \(bu 2
  212833. \fBPR\fP \fI\%#44861\fP: (\fI\%twangboy\fP) Fix win_lgpo for unknown values (refs: \fI\%#45327\fP)
  212834. .IP \(bu 2
  212835. 0959ae4ea3 Merge pull request \fI\%#45327\fP from lomeroe/bp\-44861_2016.11
  212836. .IP \(bu 2
  212837. 784139f734 Check for values other than 0 or 1
  212838. .UNINDENT
  212839. .IP \(bu 2
  212840. \fBPR\fP \fI\%#45268\fP: (\fI\%damon\-atkins\fP) Fix pkg.install packagename version=latest i.e. if on an old version is installed
  212841. @ \fI2018\-01\-08 17:34:15 UTC\fP
  212842. .INDENT 2.0
  212843. .IP \(bu 2
  212844. a6db5f95f0 Merge pull request \fI\%#45268\fP from damon\-atkins/2016.11_win_pkg_pkg_install_latest
  212845. .IP \(bu 2
  212846. 325a9f0f66 Update 2016.11.9.rst
  212847. .IP \(bu 2
  212848. 4da9200b9c Update 2016.11.9.rst
  212849. .IP \(bu 2
  212850. 126aee36ac Update 2016.11.9.rst
  212851. .IP \(bu 2
  212852. 1c01967943 Update 2016.11.9.rst
  212853. .IP \(bu 2
  212854. a0d89882b8 Fix pkg.install packagename version=latest i.e. if on an old version upgrade to the latest
  212855. .UNINDENT
  212856. .IP \(bu 2
  212857. \fBPR\fP \fI\%#45256\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45034\fP to 2016.11
  212858. @ \fI2018\-01\-04 14:25:42 UTC\fP
  212859. .INDENT 2.0
  212860. .IP \(bu 2
  212861. \fBPR\fP \fI\%#45034\fP: (\fI\%brejoc\fP) Fix for pidfile removal logging (refs: \fI\%#45256\fP)
  212862. .IP \(bu 2
  212863. 1c5e905b61 Merge pull request \fI\%#45256\fP from rallytime/bp\-45034
  212864. .IP \(bu 2
  212865. 68f971b38f Apply test fixes from \fI\%#45034\fP to parsers_test.py
  212866. .IP \(bu 2
  212867. 9454236694 Fix for pidfile removal logging
  212868. .UNINDENT
  212869. .IP \(bu 2
  212870. \fBISSUE\fP \fI\%saltstack/salt\-jenkins#598\fP: (\fI\%rallytime\fP) [oxygen] CentOS 7 is failing ~ 20 tests in the integration.ssh.test_state.SSHStateTest (refs: \fI\%#45209\fP)
  212871. .IP \(bu 2
  212872. \fBPR\fP \fI\%#45235\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45209\fP to 2016.11
  212873. @ \fI2018\-01\-02 20:20:15 UTC\fP
  212874. .INDENT 2.0
  212875. .IP \(bu 2
  212876. \fBPR\fP \fI\%#45209\fP: (\fI\%gtmanfred\fP) enable UsePAM for ssh tests (refs: \fI\%#45235\fP)
  212877. .IP \(bu 2
  212878. b75f50afe3 Merge pull request \fI\%#45235\fP from rallytime/bp\-45209
  212879. .IP \(bu 2
  212880. 2d0a9bbf7e enable UsePAM for ssh tests
  212881. .UNINDENT
  212882. .IP \(bu 2
  212883. \fBPR\fP \fI\%#44965\fP: (\fI\%gtmanfred\fP) check if VALUE is a string_type
  212884. @ \fI2018\-01\-02 16:42:39 UTC\fP
  212885. .INDENT 2.0
  212886. .IP \(bu 2
  212887. 3ab962b01a Merge pull request \fI\%#44965\fP from gtmanfred/2016.11
  212888. .IP \(bu 2
  212889. a5d8a6340e check if VALUE is a string_type
  212890. .UNINDENT
  212891. .IP \(bu 2
  212892. \fBISSUE\fP \fI\%#27160\fP: (\fI\%martinadolfi\fP) salt.states.mount persistence error using spaces in route (refs: \fI\%#45232\fP)
  212893. .IP \(bu 2
  212894. \fBPR\fP \fI\%#45232\fP: (\fI\%rasathus\fP) Backport \fI\%#27160\fP to 2016.11
  212895. @ \fI2018\-01\-02 15:48:22 UTC\fP
  212896. .INDENT 2.0
  212897. .IP \(bu 2
  212898. 40fb30f63f Merge pull request \fI\%#45232\fP from rasathus/2016.11
  212899. .IP \(bu 2
  212900. 7a2bd8f49b Merge branch \(aq2016.11\(aq into 2016.11
  212901. .UNINDENT
  212902. .IP \(bu 2
  212903. \fBISSUE\fP \fI\%#44516\fP: (\fI\%doesitblend\fP) Windows PY3 Minion Returns UTF16 UnicodeError (refs: \fI\%#44944\fP, \fI\%#45161\fP)
  212904. .IP \(bu 2
  212905. \fBPR\fP \fI\%#45161\fP: (\fI\%lomeroe\fP) Backport \fI\%#44944\fP to 2016.11
  212906. @ \fI2017\-12\-30 13:19:35 UTC\fP
  212907. .INDENT 2.0
  212908. .IP \(bu 2
  212909. \fBPR\fP \fI\%#44944\fP: (\fI\%lomeroe\fP) win_lgpo registry.pol encoding updates (refs: \fI\%#45161\fP)
  212910. .IP \(bu 2
  212911. 707ef55175 Merge pull request \fI\%#45161\fP from lomeroe/bp\-44944_2016.11
  212912. .IP \(bu 2
  212913. 0a4c6b5a83 remove references to six.unichr
  212914. .IP \(bu 2
  212915. f3196d795d lint fixes for static regexes
  212916. .IP \(bu 2
  212917. 11b637d108 lint fixes
  212918. .IP \(bu 2
  212919. c14d6282ad do not decode registry.pol file wholesale, but instead decode individual elements of the file
  212920. .UNINDENT
  212921. .IP \(bu 2
  212922. \fBISSUE\fP \fI\%#45188\fP: (\fI\%jak3kaj\fP) salt state status.process always returns false (refs: \fI\%#45199\fP)
  212923. .IP \(bu 2
  212924. \fBPR\fP \fI\%#45199\fP: (\fI\%gtmanfred\fP) status.pid returns pid ids not process names
  212925. @ \fI2017\-12\-28 19:06:11 UTC\fP
  212926. .INDENT 2.0
  212927. .IP \(bu 2
  212928. 6f52034e08 Merge pull request \fI\%#45199\fP from gtmanfred/status
  212929. .IP \(bu 2
  212930. fb07f9ea7d status.pid returns pid ids not process names
  212931. .UNINDENT
  212932. .IP \(bu 2
  212933. \fBISSUE\fP \fI\%#44728\fP: (\fI\%casselt\fP) Nodegroups can not be defined by glob with ? or seq (refs: \fI\%#45118\fP)
  212934. .IP \(bu 2
  212935. \fBPR\fP \fI\%#45118\fP: (\fI\%garethgreenaway\fP) [2016.11] Fix to allow nodegroups to include sequences
  212936. @ \fI2017\-12\-27 18:49:10 UTC\fP
  212937. .INDENT 2.0
  212938. .IP \(bu 2
  212939. d3381e27d0 Merge pull request \fI\%#45118\fP from garethgreenaway/44728_nodegroups_seq
  212940. .IP \(bu 2
  212941. 0ff811de70 Swapping import to be the old path for 2016.11
  212942. .IP \(bu 2
  212943. b3e2f388f5 Fix to allow nodegroups to include sequences
  212944. .UNINDENT
  212945. .IP \(bu 2
  212946. \fBPR\fP \fI\%#45127\fP: (\fI\%twangboy\fP) Fix issue with 1641 return code
  212947. @ \fI2017\-12\-22 15:18:28 UTC\fP
  212948. .INDENT 2.0
  212949. .IP \(bu 2
  212950. f969aca3a3 Merge pull request \fI\%#45127\fP from twangboy/win_fix_pkg
  212951. .IP \(bu 2
  212952. 14639739f2 Fix issue with 1641 return code
  212953. .UNINDENT
  212954. .IP \(bu 2
  212955. \fBPR\fP \fI\%#45137\fP: (\fI\%twangboy\fP) Catch correct error type in list_keys and list_values
  212956. @ \fI2017\-12\-22 14:45:22 UTC\fP
  212957. .INDENT 2.0
  212958. .IP \(bu 2
  212959. dc357b39f0 Merge pull request \fI\%#45137\fP from twangboy/win_fix_reg_tests
  212960. .IP \(bu 2
  212961. b6f4ef8d73 Catch correct error type in list_keys and list_values
  212962. .UNINDENT
  212963. .IP \(bu 2
  212964. \fBPR\fP \fI\%#45130\fP: (\fI\%rallytime\fP) Resolve groups for salt api
  212965. @ \fI2017\-12\-21 20:38:32 UTC\fP
  212966. .INDENT 2.0
  212967. .IP \(bu 2
  212968. 0aa1662731 Merge pull request \fI\%#45130\fP from rallytime/api\-groups
  212969. .IP \(bu 2
  212970. 2dcc8df845 Resolve groups for salt api
  212971. .UNINDENT
  212972. .IP \(bu 2
  212973. \fBPR\fP \fI\%#45114\fP: (\fI\%twangboy\fP) Move pam library load to try/except block
  212974. @ \fI2017\-12\-21 14:37:17 UTC\fP
  212975. .INDENT 2.0
  212976. .IP \(bu 2
  212977. 7dc3cc4641 Merge pull request \fI\%#45114\fP from twangboy/win_fix_pam
  212978. .IP \(bu 2
  212979. cf5eae1f77 Move pam library load to try/except block
  212980. .UNINDENT
  212981. .IP \(bu 2
  212982. \fBISSUE\fP \fI\%#45049\fP: (\fI\%vernondcole\fP) salt cloud module documentation is missing from the index. (refs: \fI\%#45070\fP)
  212983. .IP \(bu 2
  212984. \fBPR\fP \fI\%#45100\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45070\fP to 2016.11
  212985. @ \fI2017\-12\-20 14:55:01 UTC\fP
  212986. .INDENT 2.0
  212987. .IP \(bu 2
  212988. \fBPR\fP \fI\%#45070\fP: (\fI\%vernondcole\fP) insert clouds modules in index (refs: \fI\%#45100\fP)
  212989. .IP \(bu 2
  212990. 7e128e8f15 Merge pull request \fI\%#45100\fP from rallytime/bp\-45070
  212991. .IP \(bu 2
  212992. 0bdb46dab9 add clouds modules to index
  212993. .UNINDENT
  212994. .IP \(bu 2
  212995. \fBPR\fP \fI\%#45098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45092\fP to 2016.11
  212996. @ \fI2017\-12\-20 14:40:51 UTC\fP
  212997. .INDENT 2.0
  212998. .IP \(bu 2
  212999. \fBPR\fP \fI\%#45092\fP: (\fI\%terminalmage\fP) Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install (refs: \fI\%#45098\fP)
  213000. .IP \(bu 2
  213001. bdf93f339d Merge pull request \fI\%#45098\fP from rallytime/bp\-45092
  213002. .IP \(bu 2
  213003. 80b6bd6813 Fix integration.states.test_pip.PipStateTest.test_pip_installed_weird_install
  213004. .UNINDENT
  213005. .IP \(bu 2
  213006. \fBISSUE\fP \fI\%#41044\fP: (\fI\%pirxthepilot\fP) user.present \(aqdate\(aq parameter is not applying (refs: \fI\%#44078\fP)
  213007. .IP \(bu 2
  213008. \fBPR\fP \fI\%#44078\fP: (\fI\%rossengeorgiev\fP) user.present: allow date param to be 0
  213009. @ \fI2017\-12\-19 15:59:29 UTC\fP
  213010. .INDENT 2.0
  213011. .IP \(bu 2
  213012. 324b7d4058 Merge pull request \fI\%#44078\fP from rossengeorgiev/fix\-41044
  213013. .IP \(bu 2
  213014. a81a6fe23c fix \fI\%#41044\fP; allow for date param to be 0
  213015. .UNINDENT
  213016. .IP \(bu 2
  213017. \fBPR\fP \fI\%#44970\fP: (\fI\%rallytime\fP) Update bootstrap script to latest release: 2017.12.13
  213018. @ \fI2017\-12\-19 15:49:05 UTC\fP
  213019. .INDENT 2.0
  213020. .IP \(bu 2
  213021. 48a59761df Merge pull request \fI\%#44970\fP from rallytime/update\-bootstrap\-script
  213022. .IP \(bu 2
  213023. b2c8057427 Update bootstrap script to latest release: 2017.12.13
  213024. .UNINDENT
  213025. .IP \(bu 2
  213026. \fBISSUE\fP \fI\%#45036\fP: (\fI\%dijit\fP) Quiet installation of packaged minions fails due to redistributable not being quietly installed [py3] [Windows] (refs: \fI\%#45040\fP)
  213027. .IP \(bu 2
  213028. \fBPR\fP \fI\%#45069\fP: (\fI\%rallytime\fP) Back\-port \fI\%#45040\fP to 2016.11
  213029. @ \fI2017\-12\-19 14:25:57 UTC\fP
  213030. .INDENT 2.0
  213031. .IP \(bu 2
  213032. \fBPR\fP \fI\%#45040\fP: (\fI\%dijit\fP) Installation Fails on headless machines. (refs: \fI\%#45069\fP)
  213033. .IP \(bu 2
  213034. 637fdaed58 Merge pull request \fI\%#45069\fP from rallytime/bp\-45040
  213035. .IP \(bu 2
  213036. aa438e1605 Installation Fails on headless machines.
  213037. .INDENT 2.0
  213038. .INDENT 3.5
  213039. .INDENT 0.0
  213040. .IP \(bu 2
  213041. de53c45c29 Backport \fI\%#27160\fP to 2016.11
  213042. .UNINDENT
  213043. .UNINDENT
  213044. .UNINDENT
  213045. .UNINDENT
  213046. .IP \(bu 2
  213047. \fBISSUE\fP \fI\%#41286\fP: (\fI\%arthtux\fP) boto_vpc.accept_vpc_peering_connection wait a object (refs: \fI\%#41305\fP)
  213048. .IP \(bu 2
  213049. \fBPR\fP \fI\%#44969\fP: (\fI\%rallytime\fP) Back\-port \fI\%#41305\fP to 2016.11
  213050. @ \fI2017\-12\-15 17:22:18 UTC\fP
  213051. .INDENT 2.0
  213052. .IP \(bu 2
  213053. \fBPR\fP \fI\%#41305\fP: (\fI\%arthtux\fP) correct accept_vpc_peering_connection (refs: \fI\%#44969\fP)
  213054. .IP \(bu 2
  213055. 4d6d640381 Merge pull request \fI\%#44969\fP from rallytime/bp\-41305
  213056. .IP \(bu 2
  213057. 5c4bee43dc correct accept_vpc_peering_connection
  213058. .UNINDENT
  213059. .IP \(bu 2
  213060. \fBPR\fP \fI\%#45031\fP: (\fI\%terminalmage\fP) Fix invalid exception class in mysql returner
  213061. @ \fI2017\-12\-15 15:00:15 UTC\fP
  213062. .INDENT 2.0
  213063. .IP \(bu 2
  213064. 10de468f13 Merge pull request \fI\%#45031\fP from terminalmage/fix\-mysql\-returner
  213065. .IP \(bu 2
  213066. f3bd12c27c Fix invalid exception class in mysql returner
  213067. .UNINDENT
  213068. .IP \(bu 2
  213069. \fBISSUE\fP \fI\%#44820\fP: (\fI\%msteed\fP) Custom returner breaks manage runner (refs: \fI\%#44958\fP)
  213070. .IP \(bu 2
  213071. \fBPR\fP \fI\%#44972\fP: (\fI\%terminalmage\fP) Backport \fI\%#44958\fP to 2016.11 branch
  213072. @ \fI2017\-12\-14 16:56:02 UTC\fP
  213073. .INDENT 2.0
  213074. .IP \(bu 2
  213075. \fBPR\fP \fI\%#44958\fP: (\fI\%terminalmage\fP) Fix a race condition in manage runner (refs: \fI\%#44972\fP)
  213076. .IP \(bu 2
  213077. 9a7406207f Merge pull request \fI\%#44972\fP from terminalmage/bp\-44958
  213078. .IP \(bu 2
  213079. a416bf0112 No need to manually do connect_pub, use listen=True in run_job
  213080. .IP \(bu 2
  213081. 3ec004bd2e Fix a race condition in manage runner
  213082. .UNINDENT
  213083. .IP \(bu 2
  213084. \fBISSUE\fP \fI\%#44378\fP: (\fI\%llua\fP) minion: infinite loop during start when schedule key is null (refs: \fI\%#44385\fP)
  213085. .IP \(bu 2
  213086. \fBPR\fP \fI\%#44385\fP: (\fI\%gtmanfred\fP) schedule should be a dict in opts
  213087. @ \fI2017\-12\-12 20:44:02 UTC\fP
  213088. .INDENT 2.0
  213089. .IP \(bu 2
  213090. 1032ca3290 Merge pull request \fI\%#44385\fP from gtmanfred/schedule
  213091. .IP \(bu 2
  213092. 9e15c38da2 add comma
  213093. .IP \(bu 2
  213094. 855d933cb7 schedule should be a dict
  213095. .UNINDENT
  213096. .IP \(bu 2
  213097. \fBISSUE\fP \fI\%#44734\fP: (\fI\%cruscio\fP) Documentation inconsistency for minion ping_interval timing (refs: \fI\%#44770\fP)
  213098. .IP \(bu 2
  213099. \fBPR\fP \fI\%#44770\fP: (\fI\%cruscio\fP) Fix minion ping_interval documentation
  213100. @ \fI2017\-12\-11 19:50:19 UTC\fP
  213101. .INDENT 2.0
  213102. .IP \(bu 2
  213103. 68d901b12c Merge pull request \fI\%#44770\fP from cruscio/2016.11
  213104. .IP \(bu 2
  213105. e2682bf441 Fix minion ping_interval documentation
  213106. .UNINDENT
  213107. .IP \(bu 2
  213108. \fBISSUE\fP \fI\%#44292\fP: (\fI\%andrew\-regan\fP) grains[\(aqvirtual_subtype\(aq] assignment for Docker broken on Mac (refs: \fI\%#44335\fP)
  213109. .IP \(bu 2
  213110. \fBPR\fP \fI\%#44335\fP: (\fI\%gtmanfred\fP) add docker\-ce to docker subtype grains check
  213111. @ \fI2017\-12\-10 17:17:49 UTC\fP
  213112. .INDENT 2.0
  213113. .IP \(bu 2
  213114. d4ab55ec47 Merge pull request \fI\%#44335\fP from gtmanfred/2016.11
  213115. .IP \(bu 2
  213116. 3f1268d67f fix patching for python 2.6
  213117. .IP \(bu 2
  213118. 1d0bd5bb32 Merge branch \(aq2016.11\(aq into 2016.11
  213119. .IP \(bu 2
  213120. f02b02032d Merge pull request \fI\%#4\fP from terminalmage/pr\-44335
  213121. .INDENT 2.0
  213122. .IP \(bu 2
  213123. b4eb1527a6 Add test for PR 44335
  213124. .UNINDENT
  213125. .IP \(bu 2
  213126. a30af3252e add docker\-ce to docker subtype grains check
  213127. .UNINDENT
  213128. .IP \(bu 2
  213129. \fBISSUE\fP \fI\%#44530\fP: (\fI\%roaldnefs\fP) Identifier not working in salt.states.cron when special is used (refs: \fI\%#44579\fP)
  213130. .IP \(bu 2
  213131. \fBPR\fP \fI\%#44579\fP: (\fI\%roaldnefs\fP) Fix bug in cron module and state \- Fixes \fI\%#44530\fP
  213132. @ \fI2017\-12\-07 20:18:27 UTC\fP
  213133. .INDENT 2.0
  213134. .IP \(bu 2
  213135. bb1f8dceaf Merge pull request \fI\%#44579\fP from roaldnefs/fix\-cron\-identifier
  213136. .IP \(bu 2
  213137. df73a4c051 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  213138. .UNINDENT
  213139. .IP \(bu 2
  213140. \fBPR\fP \fI\%#44852\fP: (\fI\%damon\-atkins\fP) win_pkg fix spelling typos and minion option 2016.11
  213141. @ \fI2017\-12\-06 16:49:17 UTC\fP
  213142. .INDENT 2.0
  213143. .IP \(bu 2
  213144. af0131fa1f Merge pull request \fI\%#44852\fP from damon\-atkins/2016.11_win_pkg_typo_n_fix
  213145. .IP \(bu 2
  213146. 0e7c19084f Lint: Remove extra whitespace
  213147. .IP \(bu 2
  213148. 7c7e21f94d Fix spelling typo, and fix backwards campatible minion option for repo location
  213149. .UNINDENT
  213150. .IP \(bu 2
  213151. \fBISSUE\fP \fI\%#44365\fP: (\fI\%icycle77\fP) file.managed appears to ignore source_hash check (refs: \fI\%#44794\fP)
  213152. .IP \(bu 2
  213153. \fBPR\fP \fI\%#44794\fP: (\fI\%terminalmage\fP) Fix regression in file.managed when source_hash used with local file
  213154. @ \fI2017\-12\-04 14:23:29 UTC\fP
  213155. .INDENT 2.0
  213156. .IP \(bu 2
  213157. 88c0d66b4e Merge pull request \fI\%#44794\fP from terminalmage/issue44365
  213158. .IP \(bu 2
  213159. 3b8b6f25e6 Remove debugging line
  213160. .IP \(bu 2
  213161. 153bf45b03 Fix regression in file.managed when source_hash used with local file
  213162. .UNINDENT
  213163. .IP \(bu 2
  213164. \fBISSUE\fP \fI\%#35777\fP: (\fI\%rallytime\fP) Properly deprecate template context data in Fluorine (refs: \fI\%#44738\fP)
  213165. .IP \(bu 2
  213166. \fBISSUE\fP \fI\%#35523\fP: (\fI\%rallytime\fP) Come up with a reasonable alternative for lxc.edited_conf (refs: \fI\%#44738\fP)
  213167. .IP \(bu 2
  213168. \fBPR\fP \fI\%#44738\fP: (\fI\%rallytime\fP) Bump some deprecation warnings from Oxygen to Fluorine
  213169. @ \fI2017\-12\-01 23:10:08 UTC\fP
  213170. .INDENT 2.0
  213171. .IP \(bu 2
  213172. c8bb9dfbbb Merge pull request \fI\%#44738\fP from rallytime/bump\-oxygen\-warnings
  213173. .IP \(bu 2
  213174. ead3c569e1 Bump deprecation warnings from Oxygen to Fluorine
  213175. .UNINDENT
  213176. .IP \(bu 2
  213177. \fBISSUE\fP \fI\%#44730\fP: (\fI\%msciciel\fP) State network.routes could not add route without gateway on centos7 (refs: \fI\%#44741\fP)
  213178. .IP \(bu 2
  213179. \fBPR\fP \fI\%#44741\fP: (\fI\%gtmanfred\fP) if gateway is not specified use iface
  213180. @ \fI2017\-12\-01 23:09:03 UTC\fP
  213181. .INDENT 2.0
  213182. .IP \(bu 2
  213183. 88e3aab00d Merge pull request \fI\%#44741\fP from gtmanfred/rhip
  213184. .IP \(bu 2
  213185. 439dc8dce6 if gateway is not specified use iface
  213186. .UNINDENT
  213187. .IP \(bu 2
  213188. \fBISSUE\fP \fI\%#31405\fP: (\fI\%SEJeff\fP) Salt leaves tmp file when file.managed dest file is immutable (refs: \fI\%#44699\fP)
  213189. .IP \(bu 2
  213190. \fBPR\fP \fI\%#44699\fP: (\fI\%jfindlay\fP) utils/files.py remove temp file upon move failure
  213191. @ \fI2017\-12\-01 15:03:54 UTC\fP
  213192. .INDENT 2.0
  213193. .IP \(bu 2
  213194. 97e0cf569c Merge pull request \fI\%#44699\fP from jfindlay/attr_file
  213195. .IP \(bu 2
  213196. 9e5a40ea7c Merge branch \(aq2016.11\(aq into attr_file
  213197. .IP \(bu 2
  213198. 5c34607f6c utils/files remove temp file upon move failure
  213199. .UNINDENT
  213200. .IP \(bu 2
  213201. \fBISSUE\fP \fI\%#44556\fP: (\fI\%doesitblend\fP) \-\-static option doesn\(aqt return highstate output (refs: \fI\%#44714\fP)
  213202. .IP \(bu 2
  213203. \fBPR\fP \fI\%#44714\fP: (\fI\%rallytime\fP) Allow \-\-static option to display state runs with highstate output
  213204. @ \fI2017\-12\-01 14:31:19 UTC\fP
  213205. .INDENT 2.0
  213206. .IP \(bu 2
  213207. 7434e0afdf Merge pull request \fI\%#44714\fP from rallytime/fix\-44556
  213208. .IP \(bu 2
  213209. 1bbe1abeb2 Allow \-\-static option to display state runs with highstate output
  213210. .UNINDENT
  213211. .IP \(bu 2
  213212. \fBPR\fP \fI\%#44517\fP: (\fI\%whytewolf\fP) Publish port doc missing
  213213. @ \fI2017\-11\-28 21:50:19 UTC\fP
  213214. .INDENT 2.0
  213215. .IP \(bu 2
  213216. 998d714ee7 Merge pull request \fI\%#44517\fP from whytewolf/publish_port_doc_missing
  213217. .IP \(bu 2
  213218. 4b5855283a missed one place where i didnt chanbge master_port from my copy to publish_port
  213219. .IP \(bu 2
  213220. e4610baea5 update doc to have publish port
  213221. .UNINDENT
  213222. .IP \(bu 2
  213223. \fBPR\fP \fI\%#41279\fP: (\fI\%Ch3LL\fP) Add fqdn and dns core grain tests
  213224. @ \fI2017\-11\-27 21:28:10 UTC\fP
  213225. .INDENT 2.0
  213226. .IP \(bu 2
  213227. 6169b52749 Merge pull request \fI\%#41279\fP from Ch3LL/add_grain_tests
  213228. .IP \(bu 2
  213229. 1b64f15692 Merge branch \(aq2016.11\(aq into add_grain_tests
  213230. .IP \(bu 2
  213231. 095f1b7d7a Merge branch \(aq2016.11\(aq into add_grain_tests
  213232. .IP \(bu 2
  213233. 9ea4db4224 mock socket.getaddrinfo
  213234. .IP \(bu 2
  213235. 78a07e30f4 add more fqdn tests and remove some of the mocking
  213236. .IP \(bu 2
  213237. 5dbf4144ce add ipv6 in opts
  213238. .IP \(bu 2
  213239. eabc1b4f9c Add fqdn and dns core grain tests
  213240. .INDENT 2.0
  213241. .INDENT 3.5
  213242. .INDENT 0.0
  213243. .IP \(bu 2
  213244. 3ec4329307 Merge branch \(aq2016.11\(aq into fix\-cron\-identifier
  213245. .UNINDENT
  213246. .UNINDENT
  213247. .UNINDENT
  213248. .UNINDENT
  213249. .IP \(bu 2
  213250. \fBISSUE\fP \fI\%#44544\fP: (\fI\%creideiki\fP) pgjsonb returner sets wrong timezone on timestamps in database when using Python 2 (refs: \fI\%#44563\fP)
  213251. .IP \(bu 2
  213252. \fBPR\fP \fI\%#44563\fP: (\fI\%creideiki\fP) Send Unix timestamps to database in pgjsonb returner
  213253. @ \fI2017\-11\-21 17:44:32 UTC\fP
  213254. .INDENT 2.0
  213255. .IP \(bu 2
  213256. dc6de050a9 Merge pull request \fI\%#44563\fP from creideiki/pgjsonb\-timestamps\-44544
  213257. .IP \(bu 2
  213258. 231e412ca4 Merge branch \(aq2016.11\(aq into pgjsonb\-timestamps\-44544
  213259. .UNINDENT
  213260. .IP \(bu 2
  213261. \fBISSUE\fP \fI\%#44601\fP: (\fI\%rallytime\fP) CherryPy 12.0 removed support for "engine.timeout_monitor.on" config option (refs: \fI\%#44602\fP)
  213262. .IP \(bu 2
  213263. \fBPR\fP \fI\%#44602\fP: (\fI\%rallytime\fP) Handle timeout_monitor attribute error for new versions of CherryPy
  213264. @ \fI2017\-11\-20 21:38:40 UTC\fP
  213265. .INDENT 2.0
  213266. .IP \(bu 2
  213267. 4369df020b Merge pull request \fI\%#44602\fP from rallytime/fix\-44601
  213268. .IP \(bu 2
  213269. ff303fd060 Handle timeout_monitor/TimeoutError issues for new versions of CherryPy
  213270. .UNINDENT
  213271. .IP \(bu 2
  213272. \fBPR\fP \fI\%#44604\fP: (\fI\%lorengordon\fP) Documents the exclude argument in state execution module
  213273. @ \fI2017\-11\-20 18:19:18 UTC\fP
  213274. .INDENT 2.0
  213275. .IP \(bu 2
  213276. 4a4756fc37 Merge pull request \fI\%#44604\fP from lorengordon/doc\-exclude
  213277. .IP \(bu 2
  213278. c4a6c40eb3 Documents the exclude argument in state execution module
  213279. .IP \(bu 2
  213280. 15c445e6b9 Send Unix timestamps to database in pgjsonb
  213281. .INDENT 2.0
  213282. .INDENT 3.5
  213283. .INDENT 0.0
  213284. .IP \(bu 2
  213285. 99fa05a456 Fix for bug in cron state
  213286. .IP \(bu 2
  213287. 97328faeac Fix for bug in cron module
  213288. .UNINDENT
  213289. .UNINDENT
  213290. .UNINDENT
  213291. .UNINDENT
  213292. .IP \(bu 2
  213293. \fBPR\fP \fI\%#44434\fP: (\fI\%whytewolf\fP) add a note that describes grain rebuilding on restart and refresh
  213294. @ \fI2017\-11\-14 11:21:54 UTC\fP
  213295. .INDENT 2.0
  213296. .IP \(bu 2
  213297. 91d46d4cfc Merge pull request \fI\%#44434\fP from whytewolf/1837
  213298. .IP \(bu 2
  213299. d148e39dda change from md to rst for code reference
  213300. .IP \(bu 2
  213301. 955e305bda fix bad english, as requested by cachedout
  213302. .IP \(bu 2
  213303. 7256fcc1c9 update note to take into account grains_cache
  213304. .IP \(bu 2
  213305. 7a2981585e Merge branch \(aq2016.11\(aq into 1837
  213306. .IP \(bu 2
  213307. aca0405b26 add a note that describes grain rebuilding on restart and refresh
  213308. .UNINDENT
  213309. .IP \(bu 2
  213310. \fBISSUE\fP \fI\%#41474\fP: (\fI\%dmaziuk\fP) state.file.* line endings (refs: \fI\%#44321\fP)
  213311. .IP \(bu 2
  213312. \fBPR\fP \fI\%#44321\fP: (\fI\%gvengel\fP) Fix file.line diff formatting.
  213313. @ \fI2017\-11\-13 19:36:39 UTC\fP
  213314. .INDENT 2.0
  213315. .IP \(bu 2
  213316. a3bd99317f Merge pull request \fI\%#44321\fP from gvengel/fix\-file\-line\-diff\-output
  213317. .IP \(bu 2
  213318. 69a50204a6 Add newline for lint.
  213319. .IP \(bu 2
  213320. ef7b6bbb81 Fixed issue with file.line on Windows running Python 2.
  213321. .IP \(bu 2
  213322. 8f89c99fa5 Fix FileModuleTest setUp and tearDown to work on Windows.
  213323. .IP \(bu 2
  213324. 3ac5391f5f Namespace missing functions for file.line on Windows.
  213325. .IP \(bu 2
  213326. b2b8f075b9 Fixed test to work on Windows.
  213327. .IP \(bu 2
  213328. 5a5a2dd026 Added integration test for issue \fI\%#41474\fP
  213329. .IP \(bu 2
  213330. 24d7315f1a Fix file.line diff formatting.
  213331. .UNINDENT
  213332. .IP \(bu 2
  213333. \fBISSUE\fP \fI\%#43417\fP: (\fI\%damon\-atkins\fP) win_pkg: pkg.install and pkg.remove general issues (refs: \fI\%#43708\fP)
  213334. .IP \(bu 2
  213335. \fBPR\fP \fI\%#43708\fP: (\fI\%damon\-atkins\fP) Merge Ready : Backport develop win_pkg to 2016.11 with additional bug fixes
  213336. @ \fI2017\-11\-13 19:33:41 UTC\fP
  213337. .INDENT 2.0
  213338. .IP \(bu 2
  213339. 9ca563718d Merge pull request \fI\%#43708\fP from damon\-atkins/2016.11_43417_Backport_and_Fixes
  213340. .IP \(bu 2
  213341. 04d03ea6b8 Updated comment
  213342. .IP \(bu 2
  213343. 1dd565e585 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213344. .IP \(bu 2
  213345. dd48ba2616 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213346. .IP \(bu 2
  213347. a0d08598bf dco fix
  213348. .IP \(bu 2
  213349. 9467899fc6 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213350. .IP \(bu 2
  213351. 6dc180fd0e doco fixes
  213352. .IP \(bu 2
  213353. 2496a42ea4 lint fix
  213354. .IP \(bu 2
  213355. 2c937fbe19 Merge remote branch \(aqupstream/2016.11\(aq into 2016.11_43417_Backport_and_Fixes
  213356. .IP \(bu 2
  213357. c9c8c48a4d all remove/install commands are passed to cmd.exe /s /c and commands are passed as strings to cmdmod
  213358. .IP \(bu 2
  213359. 350244bd93 typo in comments and doc strings.
  213360. .IP \(bu 2
  213361. ec31f5a9bd 2017.11/develop version() was ignoring saltenv setting.
  213362. .IP \(bu 2
  213363. b314549a32 Backport of devlop to 2016.11 with additional bug fixes
  213364. .UNINDENT
  213365. .IP \(bu 2
  213366. \fBISSUE\fP \fI\%#44423\fP: (\fI\%mtkennerly\fP) The win_path.exists state cannot prepend to the very start of the PATH (refs: \fI\%#44424\fP)
  213367. .IP \(bu 2
  213368. \fBPR\fP \fI\%#44477\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44424\fP to 2016.11
  213369. @ \fI2017\-11\-13 17:33:29 UTC\fP
  213370. .INDENT 2.0
  213371. .IP \(bu 2
  213372. \fBPR\fP \fI\%#44424\fP: (\fI\%mtkennerly\fP) Fix \fI\%#44423\fP: Handle index=None and index=0 distinctly in the win_path.exists state (refs: \fI\%#44477\fP)
  213373. .IP \(bu 2
  213374. 68ea22188e Merge pull request \fI\%#44477\fP from rallytime/bp\-44424
  213375. .IP \(bu 2
  213376. 4a9f8dcc96 Fix \fI\%#44423\fP: Handle index=None and index=0 distinctly
  213377. .UNINDENT
  213378. .IP \(bu 2
  213379. \fBISSUE\fP \fI\%#44034\fP: (\fI\%seanjnkns\fP) salt\-call pillar overrides broken in 2016.11.8 and 2017.7.2 (refs: \fI\%#44483\fP)
  213380. .IP \(bu 2
  213381. \fBPR\fP \fI\%#44483\fP: (\fI\%terminalmage\fP) salt\-call: account for instances where __pillar__ is empty
  213382. @ \fI2017\-11\-13 17:30:36 UTC\fP
  213383. .INDENT 2.0
  213384. .IP \(bu 2
  213385. 2c89050a24 Merge pull request \fI\%#44483\fP from terminalmage/issue44034
  213386. .IP \(bu 2
  213387. a9db8becea salt\-call: account for instances where __pillar__ is empty
  213388. .UNINDENT
  213389. .IP \(bu 2
  213390. \fBPR\fP \fI\%#44489\fP: (\fI\%whytewolf\fP) update log\-granular\-levels to describe what they are filtering on
  213391. @ \fI2017\-11\-13 17:27:37 UTC\fP
  213392. .INDENT 2.0
  213393. .IP \(bu 2
  213394. b5c2028680 Merge pull request \fI\%#44489\fP from whytewolf/1956_log\-granular\-levels
  213395. .IP \(bu 2
  213396. 9cdeb4e903 update log\-granular\-levels to describe what they are filtering on
  213397. .UNINDENT
  213398. .IP \(bu 2
  213399. \fBPR\fP \fI\%#44193\fP: (\fI\%twangboy\fP) Fix reg.py for use with LGPO module
  213400. @ \fI2017\-11\-10 19:01:17 UTC\fP
  213401. .INDENT 2.0
  213402. .IP \(bu 2
  213403. ea07f9c54c Merge pull request \fI\%#44193\fP from twangboy/win_fix_reg
  213404. .IP \(bu 2
  213405. 44d6d9f46d Remove unused import (lint)
  213406. .IP \(bu 2
  213407. f7502436bd Fix various issues
  213408. .IP \(bu 2
  213409. 221e6e3b91 make salt.utils.to_unicode return none when passed none
  213410. .IP \(bu 2
  213411. ce41acc788 Fix many issues with reg.py
  213412. .IP \(bu 2
  213413. 4a19df1f7f Use six.text_type instead of str
  213414. .IP \(bu 2
  213415. 1b12acd303 Check type before casting
  213416. .IP \(bu 2
  213417. 03fa37b445 Cast vdata to its proper type
  213418. .UNINDENT
  213419. .IP \(bu 2
  213420. \fBPR\fP \fI\%#43863\fP: (\fI\%nicholasmhughes\fP) Atomicfile only copies mode and not user/group perms
  213421. @ \fI2017\-11\-10 18:47:55 UTC\fP
  213422. .INDENT 2.0
  213423. .IP \(bu 2
  213424. ed8da2450b Merge pull request \fI\%#43863\fP from nicholasmhughes/fix\-atomicfile\-permission\-copy
  213425. .IP \(bu 2
  213426. ea852ec5d3 remove index use with stat module attributes
  213427. .IP \(bu 2
  213428. dbeeb0e917 fixes \fI\%#38452\fP atomicfile only copies mode and not user/group perms
  213429. .UNINDENT
  213430. .IP \(bu 2
  213431. \fBISSUE\fP \fI\%#39901\fP: (\fI\%seanjnkns\fP) network.managed ipaddrs ignored (refs: \fI\%#44260\fP)
  213432. .IP \(bu 2
  213433. \fBPR\fP \fI\%#44260\fP: (\fI\%seanjnkns\fP) Fixes \fI\%#39901\fP for RH/CentOS 7
  213434. @ \fI2017\-11\-07 23:14:59 UTC\fP
  213435. .INDENT 2.0
  213436. .IP \(bu 2
  213437. a66cd67d15 Merge pull request \fI\%#44260\fP from seanjnkns/issue\-39901
  213438. .IP \(bu 2
  213439. ed8cccf457 \fI\%#39901\fP: Fix pylint
  213440. .IP \(bu 2
  213441. 43c81dfdee \fI\%#39901\fP: Add unit tests
  213442. .IP \(bu 2
  213443. 613d500876 Merge branch \(aq2016.11\(aq into issue\-39901
  213444. .IP \(bu 2
  213445. b97e8046ca Utilize salt.utils.validate.net.* and _raise_error_iface
  213446. .IP \(bu 2
  213447. 6818f3631d Fixes \fI\%#39901\fP for RH/CentOS 7
  213448. .UNINDENT
  213449. .IP \(bu 2
  213450. \fBPR\fP \fI\%#44383\fP: (\fI\%gtmanfred\fP) switch salt\-jenkins over to saltstack for kitchen\-salt tests
  213451. @ \fI2017\-11\-03 19:56:48 UTC\fP
  213452. .INDENT 2.0
  213453. .IP \(bu 2
  213454. 5e289f42ba Merge pull request \fI\%#44383\fP from gtmanfred/2016kitchen
  213455. .IP \(bu 2
  213456. b65f4ea4ea switch salt\-jenkins over to saltstack
  213457. .UNINDENT
  213458. .IP \(bu 2
  213459. \fBPR\fP \fI\%#44173\fP: (\fI\%twangboy\fP) Use google style docstrings in win_system.py
  213460. @ \fI2017\-10\-31 17:56:34 UTC\fP
  213461. .INDENT 2.0
  213462. .IP \(bu 2
  213463. cab54e34b5 Merge pull request \fI\%#44173\fP from twangboy/win_system_docs
  213464. .IP \(bu 2
  213465. 8e111b413d Fix some of the wording and grammer errors
  213466. .IP \(bu 2
  213467. a12bc5ae41 Use google style docstrings
  213468. .UNINDENT
  213469. .IP \(bu 2
  213470. \fBPR\fP \fI\%#44304\fP: (\fI\%jfindlay\fP) states.cron identifier defaults to name
  213471. @ \fI2017\-10\-31 16:39:47 UTC\fP
  213472. .INDENT 2.0
  213473. .IP \(bu 2
  213474. 7aaea1d179 Merge pull request \fI\%#44304\fP from jfindlay/cron_id
  213475. .IP \(bu 2
  213476. cc038c5bec states.cron identifier defaults to name
  213477. .UNINDENT
  213478. .IP \(bu 2
  213479. \fBISSUE\fP \fI\%#44313\fP: (\fI\%rossengeorgiev\fP) salt\-ssh: \-\-user option missing from the cli documentation (refs: \fI\%#44322\fP)
  213480. .IP \(bu 2
  213481. \fBPR\fP \fI\%#44322\fP: (\fI\%rossengeorgiev\fP) updated CLI docs for salt\-ssh
  213482. @ \fI2017\-10\-30 21:39:23 UTC\fP
  213483. .INDENT 2.0
  213484. .IP \(bu 2
  213485. e4dbbde734 Merge pull request \fI\%#44322\fP from rossengeorgiev/saltssh\-docs\-update
  213486. .IP \(bu 2
  213487. b18f2e5a6d fix program name and description for \-\-static
  213488. .IP \(bu 2
  213489. 5b10918f02 updated CLI docs for salt\-ssh
  213490. .UNINDENT
  213491. .IP \(bu 2
  213492. \fBPR\fP \fI\%#44345\fP: (\fI\%gtmanfred\fP) remove binding from erb template rendering
  213493. @ \fI2017\-10\-30 20:57:43 UTC\fP
  213494. .INDENT 2.0
  213495. .IP \(bu 2
  213496. 4e6f09e3eb Merge pull request \fI\%#44345\fP from gtmanfred/2016kitchen
  213497. .IP \(bu 2
  213498. 79b8b2d0bf remove binding
  213499. .UNINDENT
  213500. .IP \(bu 2
  213501. \fBPR\fP \fI\%#44342\fP: (\fI\%gtmanfred\fP) render template files platforms.yml and driver.yml
  213502. @ \fI2017\-10\-30 20:04:00 UTC\fP
  213503. .INDENT 2.0
  213504. .IP \(bu 2
  213505. 209847c8c2 Merge pull request \fI\%#44342\fP from gtmanfred/2016kitchen
  213506. .IP \(bu 2
  213507. c50508f0b7 render template files platforms.yml and driver.yml
  213508. .UNINDENT
  213509. .IP \(bu 2
  213510. \fBISSUE\fP \fI\%#44336\fP: (\fI\%corywright\fP) Docs for archive.tar should not use leading dash for tar options (refs: \fI\%#44339\fP)
  213511. .IP \(bu 2
  213512. \fBPR\fP \fI\%#44339\fP: (\fI\%corywright\fP) Remove leading dash from options in archive.tar docs (2016.11)
  213513. @ \fI2017\-10\-30 19:00:34 UTC\fP
  213514. .INDENT 2.0
  213515. .IP \(bu 2
  213516. 1be65224cb Merge pull request \fI\%#44339\fP from corywright/issue\-44336\-fix\-archive\-tar\-docs\-2016\-11
  213517. .IP \(bu 2
  213518. 9c1c35a59f Remove leading dash (\-) from options in archive.tar documentation
  213519. .UNINDENT
  213520. .IP \(bu 2
  213521. \fBISSUE\fP \fI\%#44272\fP: (\fI\%gurubert\fP) [patch] win_service.stop() fails (refs: \fI\%#44295\fP)
  213522. .IP \(bu 2
  213523. \fBPR\fP \fI\%#44295\fP: (\fI\%gurubert\fP) fixes issue \fI\%#44272\fP
  213524. @ \fI2017\-10\-27 14:28:57 UTC\fP
  213525. .INDENT 2.0
  213526. .IP \(bu 2
  213527. bebc33daf5 Merge pull request \fI\%#44295\fP from HeinleinSupport/issue44272
  213528. .IP \(bu 2
  213529. f972715a45 fixes issue \fI\%#44272\fP
  213530. .UNINDENT
  213531. .IP \(bu 2
  213532. \fBPR\fP \fI\%#44286\fP: (\fI\%gtmanfred\fP) use our git repo for kitchen\-salt
  213533. @ \fI2017\-10\-25 19:27:32 UTC\fP
  213534. .INDENT 2.0
  213535. .IP \(bu 2
  213536. e7ca9f8407 Merge pull request \fI\%#44286\fP from gtmanfred/2016.11
  213537. .IP \(bu 2
  213538. 193e715e37 use our git repo for kitchen\-salt
  213539. .UNINDENT
  213540. .IP \(bu 2
  213541. \fBPR\fP \fI\%#44259\fP: (\fI\%gtmanfred\fP) begin switching in kitchen\-salt for running the test suite
  213542. @ \fI2017\-10\-25 13:30:35 UTC\fP
  213543. .INDENT 2.0
  213544. .IP \(bu 2
  213545. 8a1ea165af Merge pull request \fI\%#44259\fP from gtmanfred/2016.11
  213546. .IP \(bu 2
  213547. 56a3ad8f68 fix pylint comments
  213548. .IP \(bu 2
  213549. 4add666db1 add comment to Gemfile and move copyartifacts
  213550. .IP \(bu 2
  213551. b4c8f7eb57 fix pylint
  213552. .IP \(bu 2
  213553. 392fd4f837 try newest salttesting
  213554. .IP \(bu 2
  213555. 79251287d0 add logging
  213556. .IP \(bu 2
  213557. 38963d5a82 use transport if not set in state_file
  213558. .IP \(bu 2
  213559. 10e309a64f which vagrant should go to stderr
  213560. .IP \(bu 2
  213561. 9307564de0 fix output columns
  213562. .IP \(bu 2
  213563. 2da22f87e1 test opennebula
  213564. .IP \(bu 2
  213565. 9f38f16905 add opennebula to Gemfile
  213566. .IP \(bu 2
  213567. 7465f9b27a add script for copying back artifacts
  213568. .IP \(bu 2
  213569. 255118cfd7 run tests with kitchen
  213570. .UNINDENT
  213571. .IP \(bu 2
  213572. \fBPR\fP \fI\%#44268\fP: (\fI\%twangboy\fP) Fix typo
  213573. @ \fI2017\-10\-25 13:01:35 UTC\fP
  213574. .INDENT 2.0
  213575. .IP \(bu 2
  213576. 9d6bc8509b Merge pull request \fI\%#44268\fP from twangboy/win_fix_lgpo_typo
  213577. .IP \(bu 2
  213578. a6a4c10a77 Fix typo
  213579. .UNINDENT
  213580. .IP \(bu 2
  213581. \fBPR\fP \fI\%#44269\fP: (\fI\%terminalmage\fP) Fix log message in salt.utils.gitfs
  213582. @ \fI2017\-10\-25 13:00:58 UTC\fP
  213583. .INDENT 2.0
  213584. .IP \(bu 2
  213585. 0beb65a283 Merge pull request \fI\%#44269\fP from terminalmage/fix\-log\-message
  213586. .IP \(bu 2
  213587. bc9cd65496 Fix log message in salt.utils.gitfs
  213588. .UNINDENT
  213589. .IP \(bu 2
  213590. \fBISSUE\fP \fI\%#44155\fP: (\fI\%rhoths\fP) file.directory with clean not triggering listener in test mode (refs: \fI\%#44160\fP)
  213591. .IP \(bu 2
  213592. \fBPR\fP \fI\%#44160\fP: (\fI\%gtmanfred\fP) add changes to test return
  213593. @ \fI2017\-10\-23 14:35:21 UTC\fP
  213594. .INDENT 2.0
  213595. .IP \(bu 2
  213596. 304dd2529d Merge pull request \fI\%#44160\fP from gtmanfred/directory
  213597. .IP \(bu 2
  213598. a7d3d668f4 missed removing changes in the next test
  213599. .IP \(bu 2
  213600. ac0b5ec440 fix test
  213601. .IP \(bu 2
  213602. d3d00c3e62 add changes to test return
  213603. .UNINDENT
  213604. .IP \(bu 2
  213605. \fBPR\fP \fI\%#44205\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44177\fP to 2016.11
  213606. @ \fI2017\-10\-23 14:09:07 UTC\fP
  213607. .INDENT 2.0
  213608. .IP \(bu 2
  213609. \fBPR\fP \fI\%#44177\fP: (\fI\%senthilkumar\-e\fP) Fixing default redis.host in documentation (refs: \fI\%#44205\fP)
  213610. .IP \(bu 2
  213611. e10395483d Merge pull request \fI\%#44205\fP from rallytime/bp\-44177
  213612. .IP \(bu 2
  213613. b9940f8521 Fixing default redis.host in documentation
  213614. .UNINDENT
  213615. .IP \(bu 2
  213616. \fBISSUE\fP \fI\%#44140\fP: (\fI\%vtolstov\fP) incorrect network interfaces settings with network.managed under debian jessie (refs: \fI\%#44167\fP)
  213617. .IP \(bu 2
  213618. \fBPR\fP \fI\%#44167\fP: (\fI\%garethgreenaway\fP) Fixes to modules/debian_ip
  213619. @ \fI2017\-10\-20 14:25:39 UTC\fP
  213620. .INDENT 2.0
  213621. .IP \(bu 2
  213622. 09ddfd0c08 Merge pull request \fI\%#44167\fP from garethgreenaway/44140_debian_ip_fixes
  213623. .IP \(bu 2
  213624. 5f7555846f When looping through the various pre, post, up and down commands put them into the interface dict using the right internet family variable.
  213625. .UNINDENT
  213626. .IP \(bu 2
  213627. \fBPR\fP \fI\%#43830\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43644\fP to 2016.11
  213628. @ \fI2017\-10\-19 22:57:51 UTC\fP
  213629. .INDENT 2.0
  213630. .IP \(bu 2
  213631. \fBPR\fP \fI\%#43644\fP: (\fI\%defanator\fP) Several fixes for RDS DB parameter group management (refs: \fI\%#43830\fP)
  213632. .IP \(bu 2
  213633. 9f9e936b52 Merge pull request \fI\%#43830\fP from rallytime/bp\-43644
  213634. .IP \(bu 2
  213635. 12845ae802 Several fixes for RDS DB parameter group management
  213636. .UNINDENT
  213637. .IP \(bu 2
  213638. \fBISSUE\fP \fI\%#43936\fP: (\fI\%oeuftete\fP) manage.present still reports \fIlost\fP minion (refs: \fI\%#43994\fP)
  213639. .IP \(bu 2
  213640. \fBISSUE\fP \fI\%#38367\fP: (\fI\%tyeapple\fP) logic error in connected_ids function of salt/utils/minions.py when using include_localhost=True (refs: \fI\%#43994\fP)
  213641. .IP \(bu 2
  213642. \fBPR\fP \fI\%#43994\fP: (\fI\%oeuftete\fP) Fix manage.present to show lost minions
  213643. @ \fI2017\-10\-19 22:27:59 UTC\fP
  213644. .INDENT 2.0
  213645. .IP \(bu 2
  213646. 07db6a3d8b Merge pull request \fI\%#43994\fP from oeuftete/fix\-manage\-runner\-presence
  213647. .IP \(bu 2
  213648. f3980d7d83 Fix manage.present to show lost minions
  213649. .UNINDENT
  213650. .IP \(bu 2
  213651. \fBISSUE\fP \fI\%#44150\fP: (\fI\%rossengeorgiev\fP) version param in pkg.installed broken in 2016.11.8/2017.7.2 in EL6\-7 (refs: \fI\%#44188\fP)
  213652. .IP \(bu 2
  213653. \fBPR\fP \fI\%#44188\fP: (\fI\%terminalmage\fP) yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  213654. @ \fI2017\-10\-19 22:20:35 UTC\fP
  213655. .INDENT 2.0
  213656. .IP \(bu 2
  213657. a07537e258 Merge pull request \fI\%#44188\fP from terminalmage/issue44150
  213658. .IP \(bu 2
  213659. 0692f442db yumpkg: Check pkgname instead of name to see if it is a kernel pkg
  213660. .UNINDENT
  213661. .IP \(bu 2
  213662. \fBISSUE\fP \fI\%#43427\fP: (\fI\%tylerjones4508\fP) Salt\-Cloud There was a profile error: invalid literal for int() with base 10: (refs: \fI\%#44089\fP)
  213663. .IP \(bu 2
  213664. \fBPR\fP \fI\%#44158\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44089\fP to 2016.11
  213665. @ \fI2017\-10\-19 20:38:15 UTC\fP
  213666. .INDENT 2.0
  213667. .IP \(bu 2
  213668. \fBPR\fP \fI\%#44089\fP: (\fI\%cetanu\fP) Catch on empty Virtualbox network addr \fI\%#43427\fP (refs: \fI\%#44158\fP)
  213669. .IP \(bu 2
  213670. 715edc0cea Merge pull request \fI\%#44158\fP from rallytime/bp\-44089
  213671. .IP \(bu 2
  213672. 534faf0b7a Catch on empty Virtualbox network addr \fI\%#43427\fP
  213673. .UNINDENT
  213674. .IP \(bu 2
  213675. \fBISSUE\fP \fI\%#43307\fP: (\fI\%marek\-knappe\fP) Filesystem creation is failing on newly created LV (refs: \fI\%#44029\fP)
  213676. .IP \(bu 2
  213677. \fBPR\fP \fI\%#44131\fP: (\fI\%rallytime\fP) Back\-port \fI\%#44029\fP to 2016.11
  213678. @ \fI2017\-10\-17 15:05:39 UTC\fP
  213679. .INDENT 2.0
  213680. .IP \(bu 2
  213681. \fBPR\fP \fI\%#44029\fP: (\fI\%msummers42\fP) addresses issue \fI\%#43307\fP, disk.format_ to disk.format (refs: \fI\%#44131\fP)
  213682. .IP \(bu 2
  213683. 0cd493b691 Merge pull request \fI\%#44131\fP from rallytime/bp\-44029
  213684. .IP \(bu 2
  213685. bebf301976 fixed test addressing issue \fI\%#43307\fP, disk.format_ to disk.format
  213686. .IP \(bu 2
  213687. b4ba7ae2fc addresses issue \fI\%#43307\fP, disk.format_ to disk.format
  213688. .UNINDENT
  213689. .IP \(bu 2
  213690. \fBISSUE\fP \fI\%#44087\fP: (\fI\%mfussenegger\fP) Using state.highstate with \fIterse=true\fP prevents useful error output (refs: \fI\%#44093\fP)
  213691. .IP \(bu 2
  213692. \fBPR\fP \fI\%#44093\fP: (\fI\%gtmanfred\fP) don\(aqt filter if return is not a dict
  213693. @ \fI2017\-10\-16 19:13:19 UTC\fP
  213694. .INDENT 2.0
  213695. .IP \(bu 2
  213696. 3a68e356f8 Merge pull request \fI\%#44093\fP from gtmanfred/fix\-44087
  213697. .IP \(bu 2
  213698. 5455c5053b fix pylint
  213699. .IP \(bu 2
  213700. f749cafa25 don\(aqt filter if return is not a dict
  213701. .UNINDENT
  213702. .IP \(bu 2
  213703. \fBPR\fP \fI\%#44122\fP: (\fI\%cachedout\fP) Add note about GPG signing to PR template
  213704. @ \fI2017\-10\-16 19:09:38 UTC\fP
  213705. .INDENT 2.0
  213706. .IP \(bu 2
  213707. c785d7a847 Merge pull request \fI\%#44122\fP from cachedout/gpg_pr_template
  213708. .IP \(bu 2
  213709. e41e3d76be Typo fix
  213710. .IP \(bu 2
  213711. 37c7980880 Add note about GPG signing to PR template
  213712. .UNINDENT
  213713. .IP \(bu 2
  213714. \fBPR\fP \fI\%#44124\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.11.8 to 2016.11
  213715. @ \fI2017\-10\-16 19:07:14 UTC\fP
  213716. .INDENT 2.0
  213717. .IP \(bu 2
  213718. bf90ea1f51 Merge pull request \fI\%#44124\fP from rallytime/merge\-2016.11
  213719. .IP \(bu 2
  213720. 59861291c8 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  213721. .INDENT 2.0
  213722. .IP \(bu 2
  213723. 57623e2abe Merge pull request \fI\%#44028\fP from rallytime/bp\-44011
  213724. .INDENT 2.0
  213725. .IP \(bu 2
  213726. 89e084bda3 Do not allow IDs with null bytes in decoded payloads
  213727. .IP \(bu 2
  213728. 206ae23f15 Don\(aqt allow path separators in minion ID
  213729. .UNINDENT
  213730. .UNINDENT
  213731. .UNINDENT
  213732. .IP \(bu 2
  213733. \fBPR\fP \fI\%#44097\fP: (\fI\%gtmanfred\fP) OpenNebula does not require the template_id to be specified
  213734. @ \fI2017\-10\-16 18:36:17 UTC\fP
  213735. .INDENT 2.0
  213736. .IP \(bu 2
  213737. 13f3ffa83a Merge pull request \fI\%#44097\fP from gtmanfred/openneb
  213738. .IP \(bu 2
  213739. c29655b2c2 Merge branch \(aq2016.11\(aq into openneb
  213740. .IP \(bu 2
  213741. bd2490b149 OpenNebula does not require the template_id to be specified
  213742. .UNINDENT
  213743. .IP \(bu 2
  213744. \fBPR\fP \fI\%#44110\fP: (\fI\%roaldnefs\fP) Format fix code example local returner doc
  213745. @ \fI2017\-10\-16 15:57:50 UTC\fP
  213746. .INDENT 2.0
  213747. .IP \(bu 2
  213748. ac3e4df964 Merge pull request \fI\%#44110\fP from roaldnefs/fix\-doc\-local\-returner
  213749. .IP \(bu 2
  213750. efd58f7594 Merge branch \(aq2016.11\(aq into fix\-doc\-local\-returner
  213751. .UNINDENT
  213752. .IP \(bu 2
  213753. \fBPR\fP \fI\%#44092\fP: (\fI\%techhat\fP) Made sure that unicoded data is sent to sha256()
  213754. @ \fI2017\-10\-13 21:20:12 UTC\fP
  213755. .INDENT 2.0
  213756. .IP \(bu 2
  213757. c960ca32c2 Merge pull request \fI\%#44092\fP from techhat/awsunicode
  213758. .IP \(bu 2
  213759. bbd9db4d00 One more encoding
  213760. .IP \(bu 2
  213761. 0e8b325667 Apparently __salt_system_encoding__ is a thing
  213762. .IP \(bu 2
  213763. 1e7211838d Use system encoding
  213764. .IP \(bu 2
  213765. 1af21bbe5e Made sure that unicoded data is sent to sha256()
  213766. .UNINDENT
  213767. .IP \(bu 2
  213768. \fBISSUE\fP \fI\%#43581\fP: (\fI\%jcourington\fP) cherrypy stats issue (refs: \fI\%#44021\fP)
  213769. .IP \(bu 2
  213770. \fBPR\fP \fI\%#44021\fP: (\fI\%whiteinge\fP) Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  213771. @ \fI2017\-10\-12 18:11:41 UTC\fP
  213772. .INDENT 2.0
  213773. .IP \(bu 2
  213774. \fBPR\fP \fI\%#42655\fP: (\fI\%whiteinge\fP) Reenable cpstats for rest_cherrypy (refs: \fI\%#44021\fP)
  213775. .IP \(bu 2
  213776. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug (refs: \fI\%#42655\fP)
  213777. .IP \(bu 2
  213778. d89c317d96 Merge pull request \fI\%#44021\fP from whiteinge/cpstats\-attribute\-error
  213779. .IP \(bu 2
  213780. bf14e5f578 Also catch cpstats AttributeError for bad CherryPy release ~5.6.0
  213781. .UNINDENT
  213782. .IP \(bu 2
  213783. \fBPR\fP \fI\%#44025\fP: (\fI\%dayid\fP) Typo correction of lover to lower
  213784. @ \fI2017\-10\-11 17:31:45 UTC\fP
  213785. .INDENT 2.0
  213786. .IP \(bu 2
  213787. bbdabe242a Merge pull request \fI\%#44025\fP from dayid/lover_typo
  213788. .IP \(bu 2
  213789. 385980c21a Merge branch \(aq2016.11\(aq of \fI\%https://github.com/saltstack/salt\fP into lover_typo
  213790. .IP \(bu 2
  213791. 266dc00a23 Typo correction of lover to lower
  213792. .UNINDENT
  213793. .IP \(bu 2
  213794. \fBPR\fP \fI\%#44030\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11
  213795. @ \fI2017\-10\-11 13:01:42 UTC\fP
  213796. .INDENT 2.0
  213797. .IP \(bu 2
  213798. d8f3891a5e Merge pull request \fI\%#44030\fP from rallytime/merge\-2016.11
  213799. .IP \(bu 2
  213800. 53eaf0d75c Merge branch \(aq2016.3\(aq into \(aq2016.11\(aq
  213801. .IP \(bu 2
  213802. 64fd839377 Merge pull request \fI\%#44010\fP from Ch3LL/2016.3.7_follow_up
  213803. .INDENT 2.0
  213804. .IP \(bu 2
  213805. 9a00302cd8 fix 2016.3.7 release notes merge conflict
  213806. .IP \(bu 2
  213807. 63da1214db Do not allow IDs with null bytes in decoded payloads
  213808. .IP \(bu 2
  213809. ee792581fc Don\(aqt allow path separators in minion ID
  213810. .IP \(bu 2
  213811. 8aab65c718 fix 2016.3.7 release notes merge conflict
  213812. .UNINDENT
  213813. .IP \(bu 2
  213814. bd73dcb02c Merge pull request \fI\%#43977\fP from Ch3LL/3.8_sec
  213815. .IP \(bu 2
  213816. 5fb3f5f6b1 Add Security Notes to 2016.3.8 Release Notes
  213817. .UNINDENT
  213818. .IP \(bu 2
  213819. \fBPR\fP \fI\%#44011\fP: (\fI\%Ch3LL\fP) Security Fixes for 2016.11.8 (refs: \fI\%#44028\fP)
  213820. @ \fI2017\-10\-10 20:04:36 UTC\fP
  213821. .INDENT 2.0
  213822. .IP \(bu 2
  213823. 0dbf41e79e Merge pull request \fI\%#44011\fP from Ch3LL/2016.11.7_follow_up
  213824. .IP \(bu 2
  213825. c0149101c0 Do not allow IDs with null bytes in decoded payloads
  213826. .IP \(bu 2
  213827. 19481423dd Don\(aqt allow path separators in minion ID
  213828. .UNINDENT
  213829. .IP \(bu 2
  213830. \fBPR\fP \fI\%#44023\fP: (\fI\%Ch3LL\fP) Add 2016.11.9 Release Note File
  213831. @ \fI2017\-10\-10 20:03:03 UTC\fP
  213832. .INDENT 2.0
  213833. .IP \(bu 2
  213834. d61300df20 Merge pull request \fI\%#44023\fP from Ch3LL/11.9rn
  213835. .IP \(bu 2
  213836. 7f9015eb41 Add 2016.11.9 Release Note File
  213837. .UNINDENT
  213838. .IP \(bu 2
  213839. \fBPR\fP \fI\%#44019\fP: (\fI\%benediktwerner\fP) Added missing docs to the tutorial index and fixed spelling mistake
  213840. @ \fI2017\-10\-10 19:57:06 UTC\fP
  213841. .INDENT 2.0
  213842. .IP \(bu 2
  213843. 9ff53bf63a Merge pull request \fI\%#44019\fP from benediktwerner/2016.11
  213844. .IP \(bu 2
  213845. bc53598027 Fixed spelling mistake in salt_bootstrap tutorial
  213846. .IP \(bu 2
  213847. 6c30344824 Added missing tutorial docs to the tutorial index
  213848. .UNINDENT
  213849. .IP \(bu 2
  213850. \fBPR\fP \fI\%#43955\fP: (\fI\%meaksh\fP) Enable a new \(aq\-\-with\-salt\-version\(aq parameter for the "setup.py" script
  213851. @ \fI2017\-10\-10 17:36:52 UTC\fP
  213852. .INDENT 2.0
  213853. .IP \(bu 2
  213854. 364523f5f8 Merge pull request \fI\%#43955\fP from meaksh/2016.11\-fix\-2291
  213855. .IP \(bu 2
  213856. a81b78381b Merge branch \(aq2016.11\(aq into 2016.11\-fix\-2291
  213857. .IP \(bu 2
  213858. 44bc91bb98 Enable \(aq\-\-with\-salt\-version\(aq parameter for setup.py script
  213859. .UNINDENT
  213860. .IP \(bu 2
  213861. \fBISSUE\fP \fI\%#43945\fP: (\fI\%bobrik\fP) kmod.present doesn\(aqt work with compiled\-in modules (refs: \fI\%#43962\fP)
  213862. .IP \(bu 2
  213863. \fBPR\fP \fI\%#43962\fP: (\fI\%bobrik\fP) Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  213864. @ \fI2017\-10\-10 16:31:39 UTC\fP
  213865. .INDENT 2.0
  213866. .IP \(bu 2
  213867. fec714b91d Merge pull request \fI\%#43962\fP from bobrik/kmod\-built\-in
  213868. .IP \(bu 2
  213869. 95ab901553 Report built\-in modiles in kmod.available, fixes \fI\%#43945\fP
  213870. .UNINDENT
  213871. .IP \(bu 2
  213872. \fBPR\fP \fI\%#43960\fP: (\fI\%cro\fP) Require that bindpw be non\-empty when auth.ldap.anonymous is False
  213873. @ \fI2017\-10\-09 23:09:02 UTC\fP
  213874. .INDENT 2.0
  213875. .IP \(bu 2
  213876. e434c39c4e Merge pull request \fI\%#43960\fP from cro/ldap_nopw_bind2
  213877. .IP \(bu 2
  213878. 962a20cf4b Require that bindpw be non\-empty if auth.ldap.anonymous=False
  213879. .IP \(bu 2
  213880. 9df3d91d8f Release notes blurb for change to bindpw requirements
  213881. .UNINDENT
  213882. .IP \(bu 2
  213883. \fBPR\fP \fI\%#43991\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2016.3.8 Release Notes
  213884. @ \fI2017\-10\-09 22:00:25 UTC\fP
  213885. .INDENT 2.0
  213886. .IP \(bu 2
  213887. e9dfda2177 Merge pull request \fI\%#43991\fP from Ch3LL/3.8_sec_2
  213888. .IP \(bu 2
  213889. 1977df8462 Add Security Notes to 2016.3.8 Release Notes
  213890. .UNINDENT
  213891. .IP \(bu 2
  213892. \fBISSUE\fP \fI\%#42947\fP: (\fI\%rossengeorgiev\fP) Zenoss state changes production state even when test=true (refs: \fI\%#43968\fP)
  213893. .IP \(bu 2
  213894. \fBPR\fP \fI\%#43968\fP: (\fI\%rossengeorgiev\fP) fix zenoss state module not respecting test=true
  213895. @ \fI2017\-10\-09 21:27:31 UTC\fP
  213896. .INDENT 2.0
  213897. .IP \(bu 2
  213898. 2346d2691e Merge pull request \fI\%#43968\fP from rossengeorgiev/fix\-zenoss\-prod_state
  213899. .IP \(bu 2
  213900. e6d31c1ea6 fix zenoss state module not respecting test=true
  213901. .UNINDENT
  213902. .IP \(bu 2
  213903. \fBPR\fP \fI\%#43776\fP: (\fI\%Ch3LL\fP) [2016.11] Bump latest and previous versions
  213904. @ \fI2017\-10\-09 17:22:15 UTC\fP
  213905. .INDENT 2.0
  213906. .IP \(bu 2
  213907. 8d56a5ac45 Merge pull request \fI\%#43776\fP from Ch3LL/2016.11.8_docs
  213908. .IP \(bu 2
  213909. f72bc00000 [2016.11] Bump latest and previous versions
  213910. .UNINDENT
  213911. .IP \(bu 2
  213912. \fBPR\fP \fI\%#43976\fP: (\fI\%Ch3LL\fP) Add Security Notes to 2016.11.8 Release Notes
  213913. @ \fI2017\-10\-09 17:20:54 UTC\fP
  213914. .INDENT 2.0
  213915. .IP \(bu 2
  213916. 21bf71c3f5 Merge pull request \fI\%#43976\fP from Ch3LL/11.8_sec
  213917. .IP \(bu 2
  213918. f0c3184288 Add Security Notes to 2016.11.8 Release Notes
  213919. .UNINDENT
  213920. .IP \(bu 2
  213921. \fBPR\fP \fI\%#43973\fP: (\fI\%terminalmage\fP) Fix grains.has_value when value is False
  213922. @ \fI2017\-10\-09 14:59:20 UTC\fP
  213923. .INDENT 2.0
  213924. .IP \(bu 2
  213925. 1d5397ab5b Merge pull request \fI\%#43973\fP from terminalmage/fix\-grains.has_value
  213926. .IP \(bu 2
  213927. bf45ae6e6a Fix grains.has_value when value is False
  213928. .UNINDENT
  213929. .IP \(bu 2
  213930. \fBPR\fP \fI\%#43888\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43841\fP to 2016.11
  213931. @ \fI2017\-10\-05 20:09:58 UTC\fP
  213932. .INDENT 2.0
  213933. .IP \(bu 2
  213934. \fBPR\fP \fI\%#43841\fP: (\fI\%austinpapp\fP) add \-n with netstat so we don\(aqt resolve IPs (refs: \fI\%#43888\fP)
  213935. .IP \(bu 2
  213936. 9ac3f2ea7b Merge pull request \fI\%#43888\fP from rallytime/bp\-43841
  213937. .IP \(bu 2
  213938. 87d676f08a add \-n with netstat so we don\(aqt resolve
  213939. .UNINDENT
  213940. .IP \(bu 2
  213941. \fBPR\fP \fI\%#43916\fP: (\fI\%dereckson\fP) Fix typo in salt\-cloud scaleway documentation
  213942. @ \fI2017\-10\-05 18:58:00 UTC\fP
  213943. .INDENT 2.0
  213944. .IP \(bu 2
  213945. f880ac4c08 Merge pull request \fI\%#43916\fP from dereckson/fix\-typo\-cloud\-scaleway
  213946. .IP \(bu 2
  213947. 15b8b8a9f4 Fix typo in salt\-cloud scaleway documentation
  213948. .UNINDENT
  213949. .IP \(bu 2
  213950. \fBPR\fP \fI\%#43884\fP: (\fI\%UtahDave\fP) Update SaltConf banner per Rhett\(aqs request
  213951. @ \fI2017\-10\-04 13:08:30 UTC\fP
  213952. .INDENT 2.0
  213953. .IP \(bu 2
  213954. 2ab7549d48 Merge pull request \fI\%#43884\fP from UtahDave/2016.11local
  213955. .IP \(bu 2
  213956. e3b2857285 Merge branch \(aq2016.11\(aq into 2016.11local
  213957. .UNINDENT
  213958. .IP \(bu 2
  213959. \fBPR\fP \fI\%#43869\fP: (\fI\%terminalmage\fP) Only join cmd if it\(aqs not a string
  213960. @ \fI2017\-10\-03 16:25:07 UTC\fP
  213961. .INDENT 2.0
  213962. .IP \(bu 2
  213963. 4b882d4272 Merge pull request \fI\%#43869\fP from terminalmage/issue43522
  213964. .IP \(bu 2
  213965. fe28b0d4fb Only join cmd if it\(aqs not a string
  213966. .IP \(bu 2
  213967. 8c671fd0c1 Update SaltConf banner per Rhett\(aqs request
  213968. .UNINDENT
  213969. .IP \(bu 2
  213970. \fBISSUE\fP \fI\%#43373\fP: (\fI\%rgcosma\fP) use keyword breaks sls_id (refs: \fI\%#43707\fP)
  213971. .IP \(bu 2
  213972. \fBPR\fP \fI\%#43707\fP: (\fI\%terminalmage\fP) Add missing support for use/use_in requisites to state.sls_id
  213973. @ \fI2017\-10\-01 14:07:53 UTC\fP
  213974. .INDENT 2.0
  213975. .IP \(bu 2
  213976. a2161efda3 Merge pull request \fI\%#43707\fP from terminalmage/issue43373
  213977. .IP \(bu 2
  213978. 3ebde1895f Merge branch \(aq2016.11\(aq into issue43373
  213979. .IP \(bu 2
  213980. e580ed4caa Merge branch \(aq2016.11\(aq into issue43373
  213981. .IP \(bu 2
  213982. 5b3be6e8af Fix failing unit test
  213983. .IP \(bu 2
  213984. f73764481b Add missing support for use/use_in requisites to state.sls_id
  213985. .UNINDENT
  213986. .IP \(bu 2
  213987. \fBPR\fP \fI\%#43807\fP: (\fI\%terminalmage\fP) cmdmod: Don\(aqt list\-ify string commands on Windows
  213988. @ \fI2017\-09\-29 02:48:36 UTC\fP
  213989. .INDENT 2.0
  213990. .IP \(bu 2
  213991. 85b3aa332a Merge pull request \fI\%#43807\fP from terminalmage/issue43522
  213992. .IP \(bu 2
  213993. d8708bf698 cmdmod: Don\(aqt list\-ify string commands on Windows
  213994. .UNINDENT
  213995. .IP \(bu 2
  213996. \fBPR\fP \fI\%#43768\fP: (\fI\%vutny\fP) Fix Pylint deprecated option warnings
  213997. @ \fI2017\-09\-28 12:27:36 UTC\fP
  213998. .INDENT 2.0
  213999. .IP \(bu 2
  214000. ea8d273c2b Merge pull request \fI\%#43768\fP from vutny/fix\-pylint\-deprecation\-warnings
  214001. .IP \(bu 2
  214002. f8b3fa9da1 Merge branch \(aq2016.11\(aq into fix\-pylint\-deprecation\-warnings
  214003. .UNINDENT
  214004. .IP \(bu 2
  214005. \fBISSUE\fP \fI\%#40311\fP: (\fI\%cralston0\fP) \-\-hide\-timeout used with \-\-output json \-\-static produces unparseable JSON (refs: \fI\%#43772\fP)
  214006. .IP \(bu 2
  214007. \fBPR\fP \fI\%#43772\fP: (\fI\%gtmanfred\fP) dont print Minion not responding with quiet
  214008. @ \fI2017\-09\-27 15:39:18 UTC\fP
  214009. .INDENT 2.0
  214010. .IP \(bu 2
  214011. 1a8cc60bb4 Merge pull request \fI\%#43772\fP from gtmanfred/2016.11
  214012. .IP \(bu 2
  214013. 0194c60960 dont print Minion not responding with quiet
  214014. .UNINDENT
  214015. .IP \(bu 2
  214016. \fBPR\fP \fI\%#43747\fP: (\fI\%rallytime\fP) Add GPG Verification section to Contributing Docs
  214017. @ \fI2017\-09\-26 21:25:37 UTC\fP
  214018. .INDENT 2.0
  214019. .IP \(bu 2
  214020. 9dee896fb9 Merge pull request \fI\%#43747\fP from rallytime/gpg\-verification
  214021. .IP \(bu 2
  214022. 7a70de19f4 Merge branch \(aq2016.11\(aq into gpg\-verification
  214023. .UNINDENT
  214024. .IP \(bu 2
  214025. \fBISSUE\fP \fI\%#43729\fP: (\fI\%The\-Loeki\fP) Docker events engine broken on newer docker.py (refs: \fI\%#43733\fP)
  214026. .IP \(bu 2
  214027. \fBPR\fP \fI\%#43733\fP: (\fI\%terminalmage\fP) Allow docker_events engine to work with newer docker\-py
  214028. @ \fI2017\-09\-26 16:47:40 UTC\fP
  214029. .INDENT 2.0
  214030. .IP \(bu 2
  214031. 1cc3ad1c8d Merge pull request \fI\%#43733\fP from terminalmage/issue43729
  214032. .IP \(bu 2
  214033. 6e5c99bda0 Allow docker_events engine to work with newer docker\-py
  214034. .UNINDENT
  214035. .IP \(bu 2
  214036. \fBISSUE\fP \fI\%#42082\fP: (\fI\%stamak\fP) [salt.utils.gitfs ][CRITICAL] Invalid gitfs configuration parameter \(aqsaltenv\(aq in remote git+ssh://git@ourgitserver/ourgitrepo.git. (refs: \fI\%#43458\fP)
  214037. .IP \(bu 2
  214038. \fBPR\fP \fI\%#43458\fP: (\fI\%terminalmage\fP) Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  214039. @ \fI2017\-09\-26 14:39:01 UTC\fP
  214040. .INDENT 2.0
  214041. .IP \(bu 2
  214042. 5d38be4ff7 Merge pull request \fI\%#43458\fP from terminalmage/issue42082
  214043. .IP \(bu 2
  214044. 5f90812b12 Fix missing PER_REMOTE_ONLY in cache.clear_git_lock runner
  214045. .INDENT 2.0
  214046. .INDENT 3.5
  214047. .INDENT 0.0
  214048. .IP \(bu 2
  214049. 23bb4a5dde Add GPG Verification section to Contributing Docs
  214050. .UNINDENT
  214051. .UNINDENT
  214052. .UNINDENT
  214053. .UNINDENT
  214054. .IP \(bu 2
  214055. \fBISSUE\fP \fI\%#43650\fP: (\fI\%rallytime\fP) Review contributing documentation and the merge\-forward process (refs: \fI\%#43727\fP)
  214056. .IP \(bu 2
  214057. \fBISSUE\fP \fI\%#42706\fP: (\fI\%blarghmatey\fP) Parallel Cache Failure (refs: \fI\%#43018\fP)
  214058. .IP \(bu 2
  214059. \fBPR\fP \fI\%#43727\fP: (\fI\%rallytime\fP) Revise "Contributing" docs: merge\-forwards/release branches explained!
  214060. @ \fI2017\-09\-26 12:43:16 UTC\fP
  214061. .INDENT 2.0
  214062. .IP \(bu 2
  214063. \fBPR\fP \fI\%#43018\fP: (\fI\%jubrad\fP) Update state.py (refs: \fI\%#43727\fP)
  214064. .IP \(bu 2
  214065. 023a563657 Merge pull request \fI\%#43727\fP from rallytime/fix\-43650
  214066. .IP \(bu 2
  214067. babad12d83 Revise "Contributing" docs: merge\-forwards/release branches explained!
  214068. .UNINDENT
  214069. .IP \(bu 2
  214070. \fBPR\fP \fI\%#43648\fP: (\fI\%rallytime\fP) Handle VPC/Subnet ID not found errors in boto_vpc module
  214071. @ \fI2017\-09\-22 17:40:43 UTC\fP
  214072. .INDENT 2.0
  214073. .IP \(bu 2
  214074. f46c858f25 Merge pull request \fI\%#43648\fP from rallytime/handle\-boto\-vpc\-errors
  214075. .IP \(bu 2
  214076. 54842b5012 Handle VPC/Subnet ID not found errors in boto_vpc module
  214077. .INDENT 2.0
  214078. .IP \(bu 2
  214079. 651ed16ad3 Fix Pylint deprecated option warnings
  214080. .UNINDENT
  214081. .UNINDENT
  214082. .IP \(bu 2
  214083. \fBPR\fP \fI\%#43575\fP: (\fI\%akissa\fP) Fix CSR not recreated if key changes
  214084. @ \fI2017\-09\-21 17:52:01 UTC\fP
  214085. .INDENT 2.0
  214086. .IP \(bu 2
  214087. 9dba34aa06 Merge pull request \fI\%#43575\fP from akissa/fix\-csr\-not\-recreated\-if\-key\-changes
  214088. .IP \(bu 2
  214089. b1b4dafd39 Fix CSR not recreated if key changes
  214090. .UNINDENT
  214091. .IP \(bu 2
  214092. \fBISSUE\fP \fI\%#42165\fP: (\fI\%arount\fP) top_file_merging_strategy: merge does not works (refs: \fI\%#43415\fP)
  214093. .IP \(bu 2
  214094. \fBPR\fP \fI\%#43672\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43415\fP to 2016.11
  214095. @ \fI2017\-09\-21 16:38:56 UTC\fP
  214096. .INDENT 2.0
  214097. .IP \(bu 2
  214098. \fBPR\fP \fI\%#43415\fP: (\fI\%mattLLVW\fP) Fix env_order in state.py (refs: \fI\%#43672\fP)
  214099. .IP \(bu 2
  214100. 1d4fa48209 Merge pull request \fI\%#43672\fP from rallytime/bp\-43415
  214101. .IP \(bu 2
  214102. 3fb42bc238 Fix env_order in state.py
  214103. .UNINDENT
  214104. .IP \(bu 2
  214105. \fBPR\fP \fI\%#43673\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43652\fP to 2016.11
  214106. @ \fI2017\-09\-21 16:37:36 UTC\fP
  214107. .INDENT 2.0
  214108. .IP \(bu 2
  214109. \fBPR\fP \fI\%#43652\fP: (\fI\%VertigoRay\fP) Salt Repo has Deb 9 and 8 (refs: \fI\%#43673\fP)
  214110. .IP \(bu 2
  214111. ff832ee607 Merge pull request \fI\%#43673\fP from rallytime/bp\-43652
  214112. .IP \(bu 2
  214113. d91c47c6f0 Salt Repo has Deb 9 and 8
  214114. .UNINDENT
  214115. .IP \(bu 2
  214116. \fBPR\fP \fI\%#43677\fP: (\fI\%terminalmage\fP) Fix RST headers for runners (2016.11 branch)
  214117. @ \fI2017\-09\-21 16:35:57 UTC\fP
  214118. .INDENT 2.0
  214119. .IP \(bu 2
  214120. 365cb9fba8 Merge pull request \fI\%#43677\fP from terminalmage/runners\-docs\-2016.11
  214121. .IP \(bu 2
  214122. 2fd88e94fa Fix RST headers for runners (2016.11 branch)
  214123. .UNINDENT
  214124. .IP \(bu 2
  214125. \fBPR\fP \fI\%#43534\fP: (\fI\%twangboy\fP) Fixes removal of double\-quotes by shlex_split in winrepo for 2016.11
  214126. @ \fI2017\-09\-21 14:39:42 UTC\fP
  214127. .INDENT 2.0
  214128. .IP \(bu 2
  214129. be38239e5d Merge pull request \fI\%#43534\fP from twangboy/win_fix_pkg.install_2016.11
  214130. .IP \(bu 2
  214131. 1546c1ca04 Add posix=False to call to salt.utils.shlex_split
  214132. .IP \(bu 2
  214133. \fBPR\fP \fI\%#43663\fP: (\fI\%moio\fP) multiprocessing minion option: documentation fixes (develop) (refs: \fI\%#43661\fP)
  214134. .UNINDENT
  214135. .IP \(bu 2
  214136. \fBPR\fP \fI\%#43661\fP: (\fI\%moio\fP) multiprocessing minion option: documentation fixes (2016.11)
  214137. @ \fI2017\-09\-21 13:02:27 UTC\fP
  214138. .INDENT 2.0
  214139. .IP \(bu 2
  214140. 0d3fd3d374 Merge pull request \fI\%#43661\fP from moio/2016.11\-multiprocessing\-doc\-fix
  214141. .IP \(bu 2
  214142. 625eabb83f multiprocessing minion option: documentation fixes
  214143. .UNINDENT
  214144. .IP \(bu 2
  214145. \fBPR\fP \fI\%#43646\fP: (\fI\%brejoc\fP) Added tests for pid\-file deletion in DaemonMixIn
  214146. @ \fI2017\-09\-20 19:21:54 UTC\fP
  214147. .INDENT 2.0
  214148. .IP \(bu 2
  214149. 6b4516c025 Merge pull request \fI\%#43646\fP from brejoc/2016.11.4\-pidfile\-tests
  214150. .IP \(bu 2
  214151. 96f39a420b Fixed linting
  214152. .IP \(bu 2
  214153. 08fba98735 Fixed several issues with the test
  214154. .IP \(bu 2
  214155. 3a089e450f Added tests for pid\-file deletion in DaemonMixIn
  214156. .UNINDENT
  214157. .IP \(bu 2
  214158. \fBPR\fP \fI\%#43591\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.11.8 to 2016.11
  214159. @ \fI2017\-09\-19 16:18:34 UTC\fP
  214160. .INDENT 2.0
  214161. .IP \(bu 2
  214162. cfb1625741 Merge pull request \fI\%#43591\fP from rallytime/merge\-2016.11
  214163. .IP \(bu 2
  214164. 57b9d642c2 Merge branch \(aq2016.11.8\(aq into \(aq2016.11\(aq
  214165. .INDENT 2.0
  214166. .IP \(bu 2
  214167. e83421694f Merge pull request \fI\%#43550\fP from twangboy/osx_fix_preinstall_2016.11.8
  214168. .IP \(bu 2
  214169. 1b0a4d39d2 Fix logic in \fI/etc/paths.d/salt\fP detection
  214170. .UNINDENT
  214171. .UNINDENT
  214172. .IP \(bu 2
  214173. \fBPR\fP \fI\%#43572\fP: (\fI\%vutny\fP) cloud.action: list_nodes_min returns all EC2 instances
  214174. @ \fI2017\-09\-18 20:36:44 UTC\fP
  214175. .INDENT 2.0
  214176. .IP \(bu 2
  214177. 8671b91f62 Merge pull request \fI\%#43572\fP from vutny/fix\-salt\-cloud\-list\-min\-instance\-set
  214178. .IP \(bu 2
  214179. 21966e7ce8 cloud.action: list_nodes_min returns all instances
  214180. .UNINDENT
  214181. .IP \(bu 2
  214182. \fBPR\fP \fI\%#43461\fP: (\fI\%twangboy\fP) Add \fI/norestart\fP switch to vcredist install
  214183. @ \fI2017\-09\-12 20:33:46 UTC\fP
  214184. .INDENT 2.0
  214185. .IP \(bu 2
  214186. f2b86fa2db Merge pull request \fI\%#43461\fP from twangboy/win_norestart
  214187. .IP \(bu 2
  214188. 2d269d1a76 Change all comment markers to \(aq#\(aq
  214189. .IP \(bu 2
  214190. d80aea16cb Handle ErrorCodes returned by VCRedist installer
  214191. .IP \(bu 2
  214192. fb31e9a530 Add /norestart switch to vcredist install
  214193. .UNINDENT
  214194. .IP \(bu 2
  214195. \fBISSUE\fP \fI\%#43267\fP: (\fI\%brejoc\fP) OSError \- Can\(aqt delete PIDfile when not root (refs: \fI\%#43366\fP)
  214196. .IP \(bu 2
  214197. \fBPR\fP \fI\%#43366\fP: (\fI\%brejoc\fP) Catching error when PIDfile cannot be deleted
  214198. @ \fI2017\-09\-12 15:31:16 UTC\fP
  214199. .INDENT 2.0
  214200. .IP \(bu 2
  214201. 90e8ca9c36 Merge pull request \fI\%#43366\fP from brejoc/2016.11.pidfile\-fix
  214202. .IP \(bu 2
  214203. 6e3eb76c79 Removed unused format argument
  214204. .IP \(bu 2
  214205. daf4948b3d Catching error when PIDfile cannot be deleted
  214206. .UNINDENT
  214207. .IP \(bu 2
  214208. \fBISSUE\fP \fI\%#43386\fP: (\fI\%rajvidhimar\fP) Scheduler\(aqs job_kwargs not working as expected. (refs: \fI\%#43442\fP)
  214209. .IP \(bu 2
  214210. \fBPR\fP \fI\%#43442\fP: (\fI\%garethgreenaway\fP) [2016.11] Fixes to scheduler __pub values in kwargs
  214211. @ \fI2017\-09\-12 15:16:20 UTC\fP
  214212. .INDENT 2.0
  214213. .IP \(bu 2
  214214. a6c458607a Merge pull request \fI\%#43442\fP from garethgreenaway/43386_2016_11_schedule_kwargs_pub
  214215. .IP \(bu 2
  214216. e637ecbe86 Merge branch \(aq2016.11\(aq into 43386_2016_11_schedule_kwargs_pub
  214217. .IP \(bu 2
  214218. 6114df8dc3 Adding a small check to ensure we do not continue to populate kwargs with __pub_ items from the kwargs item.
  214219. .UNINDENT
  214220. .IP \(bu 2
  214221. \fBISSUE\fP \fI\%#43223\fP: (\fI\%rallytime\fP) Properly deprecate describe_route_table function in boto_vpc module (refs: \fI\%#43445\fP)
  214222. .IP \(bu 2
  214223. \fBPR\fP \fI\%#43456\fP: (\fI\%rallytime\fP) Add Neon to version list
  214224. @ \fI2017\-09\-12 15:00:27 UTC\fP
  214225. .INDENT 2.0
  214226. .IP \(bu 2
  214227. \fBPR\fP \fI\%#43445\fP: (\fI\%rallytime\fP) Bump deprecation warning for boto_vpc.describe_route_table (refs: \fI\%#43456\fP)
  214228. .IP \(bu 2
  214229. 3c429299f9 Merge pull request \fI\%#43456\fP from rallytime/43445_follow_up
  214230. .IP \(bu 2
  214231. 35c1d8898d Add Neon to version list
  214232. .UNINDENT
  214233. .IP \(bu 2
  214234. \fBPR\fP \fI\%#43441\fP: (\fI\%meaksh\fP) Use $HOME to get the user home directory instead using \(aq~\(aq char
  214235. @ \fI2017\-09\-11 21:25:20 UTC\fP
  214236. .INDENT 2.0
  214237. .IP \(bu 2
  214238. 6db7a721c0 Merge pull request \fI\%#43441\fP from meaksh/2016.11\-salt\-bash\-completion\-fix
  214239. .IP \(bu 2
  214240. be4f26ab21 Use $HOME to get the user home directory instead using \(aq~\(aq char
  214241. .UNINDENT
  214242. .IP \(bu 2
  214243. \fBISSUE\fP \fI\%#43223\fP: (\fI\%rallytime\fP) Properly deprecate describe_route_table function in boto_vpc module (refs: \fI\%#43445\fP)
  214244. .IP \(bu 2
  214245. \fBPR\fP \fI\%#43445\fP: (\fI\%rallytime\fP) Bump deprecation warning for boto_vpc.describe_route_table (refs: \fI\%#43456\fP)
  214246. @ \fI2017\-09\-11 21:23:28 UTC\fP
  214247. .INDENT 2.0
  214248. .IP \(bu 2
  214249. 05fff44a50 Merge pull request \fI\%#43445\fP from rallytime/bump\-deprecation\-warning
  214250. .IP \(bu 2
  214251. c91cd1c6d9 Bump deprecation warning for boto_vpc.describe_route_table
  214252. .UNINDENT
  214253. .IP \(bu 2
  214254. \fBPR\fP \fI\%#43432\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43419\fP to 2016.11
  214255. @ \fI2017\-09\-11 17:36:37 UTC\fP
  214256. .INDENT 2.0
  214257. .IP \(bu 2
  214258. \fBPR\fP \fI\%#43419\fP: (\fI\%gtmanfred\fP) make cache dirs when spm starts (refs: \fI\%#43432\fP)
  214259. .IP \(bu 2
  214260. c57dc5f0e3 Merge pull request \fI\%#43432\fP from rallytime/bp\-43419
  214261. .IP \(bu 2
  214262. c471a29527 make cache dirs when spm starts
  214263. .UNINDENT
  214264. .IP \(bu 2
  214265. \fBISSUE\fP \fI\%#43387\fP: (\fI\%aogier\fP) genesis.bootstrap debootstrap fails if no qemu specified (refs: \fI\%#43390\fP)
  214266. .IP \(bu 2
  214267. \fBPR\fP \fI\%#43390\fP: (\fI\%aogier\fP) better qemu_static parameter mangle in deboostrap management, tests
  214268. @ \fI2017\-09\-11 13:18:30 UTC\fP
  214269. .INDENT 2.0
  214270. .IP \(bu 2
  214271. 57cccd75d0 Merge pull request \fI\%#43390\fP from aogier/43387\-genesis\-qemu
  214272. .IP \(bu 2
  214273. 496f14a7e7 forgot to mock the proper one
  214274. .IP \(bu 2
  214275. 51c7a1ba00 only check if static_qemu is_executable()
  214276. .IP \(bu 2
  214277. 70642e495d better qemu_static parameter mangle in deboostrap management, tests
  214278. .UNINDENT
  214279. .IP \(bu 2
  214280. \fBISSUE\fP \fI\%#43338\fP: (\fI\%LEMNX\fP) virtualenv never\-download (refs: \fI\%#43356\fP)
  214281. .IP \(bu 2
  214282. \fBPR\fP \fI\%#43356\fP: (\fI\%gtmanfred\fP) never\-download got readded
  214283. @ \fI2017\-09\-07 17:46:05 UTC\fP
  214284. .INDENT 2.0
  214285. .IP \(bu 2
  214286. 6106aec696 Merge pull request \fI\%#43356\fP from gtmanfred/2016.11
  214287. .IP \(bu 2
  214288. 3f19b247f3 Add handler.messages back in for test comparison
  214289. .IP \(bu 2
  214290. 9911b04208 fix test
  214291. .IP \(bu 2
  214292. 3c6ae99a77 never\-download got readded
  214293. .UNINDENT
  214294. .IP \(bu 2
  214295. \fBPR\fP \fI\%#43325\fP: (\fI\%doesitblend\fP) mine_interval option is minutes not seconds
  214296. @ \fI2017\-09\-07 16:58:11 UTC\fP
  214297. .INDENT 2.0
  214298. .IP \(bu 2
  214299. e638fac54e Merge pull request \fI\%#43325\fP from doesitblend/salt\-mine\-doc\-fix
  214300. .IP \(bu 2
  214301. 1e94d0ac3a Lint: Remove trailing whitespace
  214302. .IP \(bu 2
  214303. 51af8f8757 Fix mine_interval phrasing in default file
  214304. .IP \(bu 2
  214305. ba0cdd4536 Fix phrasing for mine_interval description
  214306. .IP \(bu 2
  214307. 9ff03c2d43 Update Salt Mine documentation to show that the mine_interval option is configured in minutes.
  214308. .UNINDENT
  214309. .IP \(bu 2
  214310. \fBISSUE\fP \fI\%#43086\fP: (\fI\%aogier\fP) pylint: Instance of \(aqtuple\(aq has no \(aqextend\(aq member (no\-member) (refs: \fI\%#43105\fP)
  214311. .IP \(bu 2
  214312. \fBPR\fP \fI\%#43105\fP: (\fI\%aogier\fP) groupadd module: string does not have attribute \(aqextend\(aq, plus homogeneous \fIcmd\fP parm building
  214313. @ \fI2017\-09\-06 15:49:44 UTC\fP
  214314. .INDENT 2.0
  214315. .IP \(bu 2
  214316. fc587f784a Merge pull request \fI\%#43105\fP from aogier/43086\-no\-member
  214317. .IP \(bu 2
  214318. 5111cf8bad Merge branch \(aq2016.11\(aq into 43086\-no\-member
  214319. .UNINDENT
  214320. .IP \(bu 2
  214321. \fBPR\fP \fI\%#43333\fP: (\fI\%damon\-atkins\fP) Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed as params + 1 bug
  214322. @ \fI2017\-09\-06 14:21:35 UTC\fP
  214323. .INDENT 2.0
  214324. .IP \(bu 2
  214325. d97a680372 Merge pull request \fI\%#43333\fP from damon\-atkins/2016.11
  214326. .IP \(bu 2
  214327. 92de2bb498 Update doco
  214328. .IP \(bu 2
  214329. fc9c61d12e Update win_pkg.py
  214330. .IP \(bu 2
  214331. c91fc14704 Merge branch \(aq2016.11\(aq into 2016.11
  214332. .IP \(bu 2
  214333. cb3af2bbbd Docs are wrong cache_dir (bool) and cache_file (str) cannot be passed on the cli (\fI\%#2\fP)
  214334. .UNINDENT
  214335. .IP \(bu 2
  214336. \fBISSUE\fP \fI\%#43295\fP: (\fI\%V3XATI0N\fP) salt.cache.redis_cache does not actually work. (refs: \fI\%#43329\fP)
  214337. .IP \(bu 2
  214338. \fBPR\fP \fI\%#43361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#43329\fP to 2016.11
  214339. @ \fI2017\-09\-05 23:23:01 UTC\fP
  214340. .INDENT 2.0
  214341. .IP \(bu 2
  214342. \fBPR\fP \fI\%#43329\fP: (\fI\%johnj\fP) Fix \fI\%#43295\fP, better handling of consul initialization (refs: \fI\%#43361\fP)
  214343. .IP \(bu 2
  214344. 0c986f5eba Merge pull request \fI\%#43361\fP from rallytime/bp\-43329
  214345. .IP \(bu 2
  214346. b09e5b4379 Fix \fI\%#43295\fP, better handling of consul initialization issues
  214347. .UNINDENT
  214348. .IP \(bu 2
  214349. \fBISSUE\fP \fI\%#35840\fP: (\fI\%junovitch\fP) preserve_minion_cache is broken in 2016.3+ (refs: \fI\%#42903\fP)
  214350. .IP \(bu 2
  214351. \fBPR\fP \fI\%#42903\fP: (\fI\%junovitch\fP) Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  214352. @ \fI2017\-09\-05 22:57:14 UTC\fP
  214353. .INDENT 2.0
  214354. .IP \(bu 2
  214355. 22287439e6 Merge pull request \fI\%#42903\fP from junovitch/issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214356. .IP \(bu 2
  214357. c9d4fdbd45 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214358. .IP \(bu 2
  214359. 93a68e32a5 Merge branch \(aq2016.11\(aq into issue\-35840\-fix\-preserve\-minion\-cache\-2016.11
  214360. .IP \(bu 2
  214361. 079f097985 Fix \(aqpreserve_minion_cache: True\(aq functionality (fixes \fI\%#35840\fP)
  214362. .UNINDENT
  214363. .IP \(bu 2
  214364. \fBPR\fP \fI\%#43360\fP: (\fI\%terminalmage\fP) Fix failing tests in Fedora
  214365. @ \fI2017\-09\-05 22:23:13 UTC\fP
  214366. .INDENT 2.0
  214367. .IP \(bu 2
  214368. 4860e10757 Merge pull request \fI\%#43360\fP from terminalmage/sj\-496
  214369. .IP \(bu 2
  214370. 433bca14b1 Fix KeyError in yumpkg configparser code on Python 3
  214371. .IP \(bu 2
  214372. f6c16935d8 Move \-\-showduplicates before repository\-packages
  214373. .UNINDENT
  214374. .IP \(bu 2
  214375. \fBPR\fP \fI\%#43244\fP: (\fI\%rallytime\fP) Update release branch section with a few more details
  214376. @ \fI2017\-09\-05 20:27:59 UTC\fP
  214377. .INDENT 2.0
  214378. .IP \(bu 2
  214379. 4ba2dbe41e Merge pull request \fI\%#43244\fP from rallytime/release\-branch\-clarifications
  214380. .IP \(bu 2
  214381. 0d5a46dbaa Update release branch section with a few more details
  214382. .UNINDENT
  214383. .IP \(bu 2
  214384. \fBISSUE\fP \fI\%#43348\fP: (\fI\%9maf4you\fP) network.managed doesn\(aqt work on CentOS 7 (refs: \fI\%#43359\fP)
  214385. .IP \(bu 2
  214386. \fBPR\fP \fI\%#43359\fP: (\fI\%gtmanfred\fP) ipaddr_start ipaddr_end for el7
  214387. @ \fI2017\-09\-05 19:44:24 UTC\fP
  214388. .INDENT 2.0
  214389. .IP \(bu 2
  214390. 1a012eb3d7 Merge pull request \fI\%#43359\fP from gtmanfred/ipaddr
  214391. .IP \(bu 2
  214392. 23d9abb560 ipaddr_start ipaddr_end for el7
  214393. .UNINDENT
  214394. .IP \(bu 2
  214395. \fBPR\fP \fI\%#43247\fP: (\fI\%rallytime\fP) Back\-port various mention bot settings to 2016.11
  214396. @ \fI2017\-09\-05 18:17:54 UTC\fP
  214397. .INDENT 2.0
  214398. .IP \(bu 2
  214399. \fBPR\fP \fI\%#43206\fP: (\fI\%rallytime\fP) Always notify tkwilliams when changes occur on boto files (refs: \fI\%#43247\fP)
  214400. .IP \(bu 2
  214401. \fBPR\fP \fI\%#43183\fP: (\fI\%basepi\fP) Add basepi to userBlacklist for mention bot (refs: \fI\%#43247\fP)
  214402. .IP \(bu 2
  214403. \fBPR\fP \fI\%#42923\fP: (\fI\%rallytime\fP) Always notify ryan\-lane when changes occur on boto files (refs: \fI\%#43247\fP)
  214404. .IP \(bu 2
  214405. 8f88111be8 Merge pull request \fI\%#43247\fP from rallytime/mentionbot\-backports
  214406. .IP \(bu 2
  214407. 2b85757d73 Always notify tkwilliams when changes occur on boto files
  214408. .IP \(bu 2
  214409. 40b5a29f90 Add basepi to userBlacklist for mention bot
  214410. .IP \(bu 2
  214411. bad8f56969 Always notify ryan\-lane when changes occur on boto files
  214412. .UNINDENT
  214413. .IP \(bu 2
  214414. \fBPR\fP \fI\%#43277\fP: (\fI\%rallytime\fP) Add CODEOWNERS file
  214415. @ \fI2017\-09\-01 16:56:53 UTC\fP
  214416. .INDENT 2.0
  214417. .IP \(bu 2
  214418. 02867fdcd2 Merge pull request \fI\%#43277\fP from rallytime/owners\-file
  214419. .IP \(bu 2
  214420. 2b4da0f0e7 Add CODEOWNERS file
  214421. .UNINDENT
  214422. .IP \(bu 2
  214423. \fBPR\fP \fI\%#43312\fP: (\fI\%lordcirth\fP) cron docs: Remind user to use quotes for special strings
  214424. @ \fI2017\-09\-01 16:24:15 UTC\fP
  214425. .INDENT 2.0
  214426. .IP \(bu 2
  214427. 1c1c484479 Merge pull request \fI\%#43312\fP from lordcirth/fix\-cron\-docs
  214428. .IP \(bu 2
  214429. ec94a13750 cron docs: Remind user to use quotes for special strings
  214430. .UNINDENT
  214431. .IP \(bu 2
  214432. \fBPR\fP \fI\%#43290\fP: (\fI\%lordcirth\fP) Clarify file.py docs
  214433. @ \fI2017\-09\-01 14:30:04 UTC\fP
  214434. .INDENT 2.0
  214435. .IP \(bu 2
  214436. 0d1ed4b750 Merge pull request \fI\%#43290\fP from lordcirth/fix\-file\-path\-docs
  214437. .IP \(bu 2
  214438. 14a4591854 file.py docs: correct group and mode
  214439. .IP \(bu 2
  214440. d4214ca283 file.py docs: specify absolute paths
  214441. .UNINDENT
  214442. .IP \(bu 2
  214443. \fBPR\fP \fI\%#43274\fP: (\fI\%terminalmage\fP) Use six.integer_types instead of int
  214444. @ \fI2017\-08\-30 21:32:42 UTC\fP
  214445. .INDENT 2.0
  214446. .IP \(bu 2
  214447. 26ff89539e Merge pull request \fI\%#43274\fP from terminalmage/fix\-int\-types
  214448. .IP \(bu 2
  214449. d533877743 Use six.integer_types instead of int
  214450. .IP \(bu 2
  214451. 42a118ff56 fixed cmd composition and unified his making across module
  214452. .IP \(bu 2
  214453. 881f1822f2 Format fix code example local returner doc
  214454. .UNINDENT
  214455. .UNINDENT
  214456. .SS Salt 2016.3.0 Release Notes \- Codename Boron
  214457. .SS Known Issues
  214458. .sp
  214459. \fBWARNING:\fP
  214460. .INDENT 0.0
  214461. .INDENT 3.5
  214462. \fBSome Salt Masters may need to apply a patch for Default Job Cache to
  214463. prevent a possible crash\fP
  214464. .sp
  214465. An issue exists that prevents the Salt master from cleaning the default job
  214466. cache. This issue can cause an overconsumption of resources resulting in a
  214467. crash. 2016.3.0 Salt masters should apply the patch in \fI\%PR #33555\fP\&. This
  214468. issue will be addressed in 2016.3.1.
  214469. .UNINDENT
  214470. .UNINDENT
  214471. .INDENT 0.0
  214472. .IP \(bu 2
  214473. \fI\%issue #33516\fP: When upgrading from 2015.8.10 to 2016.3.0 on centos7/redhat7
  214474. salt\-minion must be restarted twice.
  214475. .IP \(bu 2
  214476. \fI\%issue #33517\fP: SPM does not work on amazon linux 2015 in 2016.3.0.
  214477. .UNINDENT
  214478. .SS Backwards\-incompatible Changes
  214479. .INDENT 0.0
  214480. .IP \(bu 2
  214481. The default path for the \fBextension_modules\fP master config
  214482. option has been changed. Prior to this release, the location was a directory
  214483. named \fBextmods\fP in the Salt cachedir. On most platforms, this would put the
  214484. \fBextension_modules\fP directory in \fB/var/cache/salt/extmods\fP\&.
  214485. It has been moved one directory down, into the master cachedir. On most
  214486. platforms, this is \fB/var/cache/salt/master/extmods\fP\&. Most users won\(aqt have
  214487. to worry about this, but those who have been manually placing custom runners
  214488. into \fB/var/cache/salt/extmods/runners\fP, or outputters into
  214489. \fB/var/cache/salt/extmods/output\fP, etc. will be affected by this. To
  214490. transition, it is recommended not to simply move the extmods directory into
  214491. \fB/var/cache/salt/master\fP, but to copy the custom modules into the salt
  214492. fileserver under \fBsalt://_runners\fP, \fBsalt://_output\fP, etc. and sync them
  214493. using the functions in the new \fBsaltutil runner\fP\&.
  214494. .IP \(bu 2
  214495. The \fBpkg.check_db\fP function has been
  214496. removed for yum/dnf.
  214497. .UNINDENT
  214498. .SS Core Changes
  214499. .INDENT 0.0
  214500. .IP \(bu 2
  214501. The \fBonchanges\fP requisite now fires if \fBany\fP watched state changes. \fI\%issue #19592\fP\&.
  214502. .IP \(bu 2
  214503. The \fBext_pillar\fP functions \fBmust\fP now accept a minion ID as the first
  214504. argument. This stops the deprecation path started in Salt 0.17.x. Before this
  214505. minion ID first argument was introduced, the minion ID could be retrieved
  214506. accessing \fB__opts__[\(aqid\(aq]\fP losing the reference to the master ID initially
  214507. set in opts. This is no longer the case, \fB__opts__[\(aqid\(aq]\fP will be kept as
  214508. the master ID.
  214509. .IP \(bu 2
  214510. Custom types can now be synced to the master using the new \fBsaltutil
  214511. runner\fP\&. Before, these needed to manually be placed
  214512. under the \fBextension_modules\fP directory. This allows custom
  214513. modules to easily be synced to the master to make them available when
  214514. compiling Pillar data. Just place custom runners into \fBsalt://_runners\fP,
  214515. custom outputters into \fBsalt://_output\fP, etc. and use the functions from
  214516. the \fBsaltutil runner\fP to sync them.
  214517. .IP \(bu 2
  214518. The \fBclient_acl\fP configuration options were renamed to \fBpublisher_acl\fP\&.
  214519. .IP \(bu 2
  214520. Added a new \fB\-\-config\-dump\fP option (\fI\%issue #26639\fP).
  214521. .IP \(bu 2
  214522. TCP Transport presence events were updated to work with a NAT (\fI\%PR #30629\fP).
  214523. .IP \(bu 2
  214524. A \fBminion_pillar_cache\fP setting was added to save rendered
  214525. pillar data to cachedir for later use when file_client is set to local
  214526. (\fI\%PR #30428\fP).
  214527. .IP \(bu 2
  214528. Added the ability for binary data (such as a license key) to be distributed
  214529. via pillar using the \fBfile.managed\fP
  214530. (\fI\%issue #9569\fP).
  214531. .IP \(bu 2
  214532. Scheduled jobs now include \fBsuccess\fP and \fBretcode\fP (\fI\%issue #24237\fP).
  214533. .IP \(bu 2
  214534. The \fBsaltversioninfo\fP grain was changed from a string to a list to enable
  214535. reading values by index. (\fI\%PR #30082\fP).
  214536. .IP \(bu 2
  214537. A \fBpillar_merge_lists\fP option was added to enable recursively
  214538. merging pillar lists by aggregating them instead of replacing them
  214539. (\fI\%PR #30062\fP).
  214540. .IP \(bu 2
  214541. Grain values reported by Debian 8 (jessie) when lsb\-release is installed were
  214542. updated for consistency (\fI\%PR #28649\fP).
  214543. .IP \(bu 2
  214544. A new option for minions called master_tries has been added. This specifies
  214545. the number of times a minion should attempt to contact a master to attempt
  214546. a connection. This allows better handling of occasional master downtime in
  214547. a multi\-master topology.
  214548. .IP \(bu 2
  214549. The default directory for deploying the salt\-thin tarball has changed for
  214550. salt\-ssh. It is now /var/tmp instead of /tmp. Users may also wish
  214551. to delete any directories in /tmp ending with \fI_salt/\fP\&. (\fI\%issue #32771\fP)
  214552. .UNINDENT
  214553. .SS External Module Packaging
  214554. .sp
  214555. Modules may now be packaged via entry\-points in setuptools. See
  214556. external module packaging tutorial
  214557. for more information.
  214558. .SS Cloud Changes
  214559. .INDENT 0.0
  214560. .IP \(bu 2
  214561. Refactored the OpenNebula driver and added numerous \fB\-\-function\fP and
  214562. \fB\-\-action\fP commands to enhance Salt support for image, template, security group,
  214563. virtual network and virtual machine management in OpenNebula.
  214564. .IP \(bu 2
  214565. Added execution/state modules to support the deployment of AWS cognito
  214566. identity pools (\fI\%PR #31094\fP).
  214567. .IP \(bu 2
  214568. Added ability to set tags and listener policies on a AWS ELB (\fI\%PR #27552\fP).
  214569. .UNINDENT
  214570. .SS Platform Changes
  214571. .INDENT 0.0
  214572. .IP \(bu 2
  214573. Renamed modules related to macOS. The following module filenames were changed.
  214574. The virtual name remained unchanged.
  214575. .IP \(bu 2
  214576. \fI\%PR ##30558\fP: renamed osxdesktop.py to mac_desktop.py
  214577. .IP \(bu 2
  214578. \fI\%PR ##30557\fP: renamed macports.py to mac_ports.py
  214579. .IP \(bu 2
  214580. \fI\%PR ##30556\fP: renamed darwin_sysctl.py to mac_sysctl.py
  214581. .IP \(bu 2
  214582. \fI\%PR ##30555\fP: renamed brew.py to mac_brew.py
  214583. .IP \(bu 2
  214584. \fI\%PR ##30552\fP: renamed darwin_pkgutil.py to mac_pkgutil.py
  214585. .UNINDENT
  214586. .SS Package Support
  214587. .INDENT 0.0
  214588. .IP \(bu 2
  214589. Ubuntu Xenial: Packages for Ubuntu Xenial (16.04) are available for 2016.3.0 and
  214590. onwards. See \fI\%repo.saltstack.com\fP for more information. Note that Xenial comes
  214591. with Debian\(aqs packaged version of Salt 2015.8.8 and official \fI\%repo.saltstack.com\fP
  214592. packages are available for 2015.8 releases beginning with Salt 2015.8.11.
  214593. .UNINDENT
  214594. .SS Proxy Minion Changes
  214595. .sp
  214596. The deprecated config option \fBenumerate_proxy_minions\fP has been removed.
  214597. .sp
  214598. As mentioned in earlier documentation, the \fBadd_proxymodule_to_opts\fP
  214599. configuration variable defaults to \fBFalse\fP in this release. This means if you
  214600. have proxymodules or other code looking in \fB__opts__[\(aqproxymodule\(aq]\fP you
  214601. will need to set this variable in your \fB/etc/salt/proxy\fP file, or
  214602. modify your code to use the \fI__proxy__\fP injected variable.
  214603. .sp
  214604. The \fB__proxyenabled__\fP directive now only applies to grains and proxy modules
  214605. themselves. Standard execution modules and state modules are not prevented
  214606. from loading for proxy minions.
  214607. .sp
  214608. Support has been added to Salt\(aqs loader allowing custom proxymodules
  214609. to be placed in \fBsalt://_proxy\fP\&. Proxy minions that need these modules
  214610. will need to be restarted to pick up any changes. A corresponding utility function,
  214611. \fBsaltutil.sync_proxymodules\fP, has been added to sync these modules to minions.
  214612. .sp
  214613. Enhancements in grains processing have made the \fB__proxyenabled__\fP directive
  214614. somewhat redundant in dynamic grains code. It is still required, but best
  214615. practices for the \fB__virtual__\fP function in grains files have changed. It
  214616. is now recommended that the \fB__virtual__\fP functions check to make sure
  214617. they are being loaded for the correct proxytype, example below:
  214618. .INDENT 0.0
  214619. .INDENT 3.5
  214620. .sp
  214621. .nf
  214622. .ft C
  214623. def __virtual__():
  214624. \(aq\(aq\(aq
  214625. Only work on proxy
  214626. \(aq\(aq\(aq
  214627. try:
  214628. if salt.utils.is_proxy() and \e
  214629. __opts__[\(aqproxy\(aq][\(aqproxytype\(aq] == \(aqssh_sample\(aq:
  214630. return __virtualname__
  214631. except KeyError:
  214632. pass
  214633. return False
  214634. .ft P
  214635. .fi
  214636. .UNINDENT
  214637. .UNINDENT
  214638. .sp
  214639. \fBNOTE:\fP
  214640. .INDENT 0.0
  214641. .INDENT 3.5
  214642. \fBsalt.utils.is_proxy()\fP has been renamed to
  214643. \fBsalt.utils.platform.is_proxy\fP as of the Oxygen release.
  214644. .UNINDENT
  214645. .UNINDENT
  214646. .sp
  214647. The try/except block above exists because grains are processed very early
  214648. in the proxy minion startup process, sometimes earlier than the proxy
  214649. key in the \fB__opts__\fP dictionary is populated.
  214650. .sp
  214651. Grains are loaded so early in startup that no dunder dictionaries are
  214652. present, so \fB__proxy__\fP, \fB__salt__\fP, etc. are not available. Custom
  214653. grains located in \fB/srv/salt/_grains\fP and in the salt install grains
  214654. directory can now take a single argument, \fBproxy\fP, that is identical
  214655. to \fB__proxy__\fP\&. This enables patterns like
  214656. .INDENT 0.0
  214657. .INDENT 3.5
  214658. .sp
  214659. .nf
  214660. .ft C
  214661. def get_ip(proxy):
  214662. \(aq\(aq\(aq
  214663. Ask the remote device what IP it has
  214664. \(aq\(aq\(aq
  214665. return {\(aqip\(aq:proxy[\(aqproxymodulename.get_ip\(aq]()}
  214666. .ft P
  214667. .fi
  214668. .UNINDENT
  214669. .UNINDENT
  214670. .sp
  214671. Then the grain \fBip\fP will contain the result of calling the \fBget_ip()\fP function
  214672. in the proxymodule called \fBproxymodulename\fP\&.
  214673. .sp
  214674. Proxy modules now benefit from including a function called \fBinitialized()\fP\&. This
  214675. function should return \fBTrue\fP if the proxy\(aqs \fBinit()\fP function has been successfully
  214676. called. This is needed to make grains processing easier.
  214677. .sp
  214678. Finally, if there is a function called \fBgrains\fP in the proxymodule, it
  214679. will be executed on proxy\-minion startup and its contents will be merged with
  214680. the rest of the proxy\(aqs grains. Since older proxy\-minions might have used other
  214681. methods to call such a function and add its results to grains, this is config\-gated
  214682. by a new proxy configuration option called \fBproxy_merge_grains_in_module\fP\&. This
  214683. defaults to \fBFalse\fP in this release. It will default to True in the release after
  214684. next. The next release is codenamed \fBCarbon\fP, the following is \fBNitrogen\fP\&.
  214685. .sp
  214686. The example proxy minions \fBrest_sample\fP and \fBssh_sample\fP have been updated to
  214687. reflect these changes.
  214688. .SS Syndic Updates
  214689. .sp
  214690. A major performance and management issue was found and fixed in the syndic. This makes
  214691. the Salt Syndic substantially more reliable and performant. Please make sure that the
  214692. syndic and the master of masters which syndics attach to are updated, otherwise the
  214693. syndic fixes alone can cause minor performance issues with older master of masters.
  214694. Please update masters first, then syndics.
  214695. Minions do not need to be updated for this fix to work.
  214696. .SS Module Changes
  214697. .INDENT 0.0
  214698. .IP \(bu 2
  214699. \fBfile execution module\fP: \fBshow_diff\fP is deprecated in favor
  214700. of \fBshow_changes\fP\&. (\fI\%PR #30988\fP)
  214701. .IP \(bu 2
  214702. \fBreg execution module\fP:
  214703. .INDENT 2.0
  214704. .IP \(bu 2
  214705. Removed the following deprecated functions from the reg module (\fI\%PR #30956\fP):
  214706. .INDENT 2.0
  214707. .IP \(bu 2
  214708. read_key
  214709. .IP \(bu 2
  214710. set_key
  214711. .IP \(bu 2
  214712. create_key
  214713. .IP \(bu 2
  214714. delete_key
  214715. .UNINDENT
  214716. .IP \(bu 2
  214717. Removed force parameter from reg state module
  214718. .IP \(bu 2
  214719. Fixed virtual function in state
  214720. .IP \(bu 2
  214721. Improved error information for \fBreg.delete_value\fP function
  214722. .UNINDENT
  214723. .IP \(bu 2
  214724. \fBjboss7 execution module\fP: \fBdeployed\fP function was
  214725. decoupled from Artifactory by removing Artifactory\-specific functionality.
  214726. Note that the changes in some of the function arguments break existing state
  214727. files, see \fI\%issue #30515\fP and \fI\%PR #3080\fP for details.
  214728. .IP \(bu 2
  214729. \fBpkg state module\fP: The \fBwait\fP function was removed,
  214730. the functionality was replaced with the \fBonchanges\fP requisite (\fI\%PR #30297\fP).
  214731. .IP \(bu 2
  214732. \fBfirewalld state module\fP: A \fBpermanent\fP argument
  214733. was added \fBadd_port\fP\&. Note that \fBpermanent\fP defaults to \fBTrue\fP, which changes
  214734. previous behavior (\fI\%PR #30275\fP). A \fBbind\fP function was also added that allows
  214735. binding zones to interfaces and sources (\fI\%PR #29497\fP).
  214736. .IP \(bu 2
  214737. \fBjournald beacon module\fP: The event string was updated
  214738. to include a tag. Note this might impact existing reactors based on this beacon.
  214739. (\fI\%PR #30116\fP).
  214740. .IP \(bu 2
  214741. \fBpostgres_privileges state module\fP:
  214742. The default value of the \fBprepend\fP argument was changed from \fBNone\fP to
  214743. \fBpublic\fP\&.
  214744. .IP \(bu 2
  214745. \fBzenoss execution module\fP: The
  214746. \fBadd_device\fP function was updated with a default value of \fB1000\fP for
  214747. \fBprod_state\fP to match the documentation (\fI\%PR #28924\fP).
  214748. .IP \(bu 2
  214749. The etcd execution module, state module, returner module, and util module
  214750. were refactor (\fI\%PR #28599\fP). This refactor changes error returns for
  214751. several functions (primarily edge cases):
  214752. .INDENT 2.0
  214753. .IP \(bu 2
  214754. get: Used to return \(aq\(aq on key\-not\-found. Now returns None.
  214755. .IP \(bu 2
  214756. set: Used to return \(aq\(aq on issues setting keys. Now returns None.
  214757. .IP \(bu 2
  214758. ls: Used to return {path: {}} on key\-not\-found. Now returns None.
  214759. .IP \(bu 2
  214760. Tree: Used to return {} on key\-not\-found. Now returns None.
  214761. .UNINDENT
  214762. .IP \(bu 2
  214763. \fBsmartos_virt execution module\fP: Updated to
  214764. use most of the new smartos_vmadm (\fI\%PR #28284\fP).
  214765. .IP \(bu 2
  214766. \fBapache_conf state module\fP,
  214767. \fBapache_module state module\fP, and
  214768. \fBapache_site state module\fP: the \fBenable\fP and
  214769. \fBdisable\fP functions were renamed to \fBenabled\fP and \fBdisabled\fP,
  214770. respectively. In \fI\%PR #33562\fP, these functions were readded and properly
  214771. deprecated and will be removed in Salt 2017.7.0. This fix will be available
  214772. in 2016.3.1. As a workaround, try
  214773. .INDENT 2.0
  214774. .INDENT 3.5
  214775. .sp
  214776. .nf
  214777. .ft C
  214778. apache_module.enable{{ \(aqd\(aq if grains.saltversioninfo == [2016, 3, 0] else \(aq\(aq }}
  214779. .ft P
  214780. .fi
  214781. .UNINDENT
  214782. .UNINDENT
  214783. .UNINDENT
  214784. .SS New Features
  214785. .SS Thorium \- Provisional New Reactor
  214786. .sp
  214787. The 2016.3 release introduces the new Thorium Reactor. This reactor is an
  214788. experimental new feature that implements a flow programming interface using
  214789. the salt state system as the engine. This means that the Thorium reactor uses
  214790. a classic state tree approach to create a reactor that can aggregate event
  214791. data from multiple sources and make aggregate decisions about executing
  214792. reactions.
  214793. .sp
  214794. This feature is both experimental and provisional, it may be removed and APIs
  214795. may be changed. This system should be considered as ambitious as the Salt
  214796. State System in that the scope of adding a programmable logic engine of
  214797. this scale into the event systems is non trivial.
  214798. .sp
  214799. See Thorium Complex Reactor\&.
  214800. .SS Improved Mac OS Support
  214801. .SS Improved Solaris Support
  214802. .sp
  214803. A lot of work was done to improve support for SmartOS. This work also
  214804. resulted in improvements for Solaris and illumos as SmartOS.
  214805. .INDENT 0.0
  214806. .IP \(bu 2
  214807. rewrite of \fBvmadm module\fP (SmartOS)
  214808. .IP \(bu 2
  214809. rewrite of \fBimgadm module\fP (SmartOS)
  214810. .IP \(bu 2
  214811. deprecation of \fBvirt module\fP in favor of vmadm (SmartOS)
  214812. .IP \(bu 2
  214813. implemented \fBsmartos state\fP (SmartOS)
  214814. .IP \(bu 2
  214815. improved \fBzpool module\fP add SmartOS, illumos and Solaris support
  214816. .IP \(bu 2
  214817. improved \fBzfs module\fP add SmartOS, illumos and Solaris support
  214818. .IP \(bu 2
  214819. implemented \fBzpool state\fP
  214820. .IP \(bu 2
  214821. implemented \fBzfs state\fP
  214822. implemented \fBsolaris_system\fP system module to provide better Solaris support (\fI\%PR #30519\fP)
  214823. .IP \(bu 2
  214824. other minor fixes to grains, localmod, ...
  214825. .UNINDENT
  214826. .SS Tornado Transport
  214827. .sp
  214828. \fBIMPORTANT:\fP
  214829. .INDENT 0.0
  214830. .INDENT 3.5
  214831. The Tornado Transport wire protocol was changed in 2016.3, making it incompatible with 2015.8 (\fI\%PR #29339\fP).
  214832. .UNINDENT
  214833. .UNINDENT
  214834. .SS Windows DSC Integration (Experiemental)
  214835. .SS Dimension Data Cloud Support
  214836. .sp
  214837. A SaltStack Cloud driver for \fI\%Dimension Data Public Cloud\fP, provides the driver functionality to service automation for any of the Dimension
  214838. Data Public Cloud locations:
  214839. .INDENT 0.0
  214840. .IP \(bu 2
  214841. Deploy new virtual machines
  214842. .IP \(bu 2
  214843. List and query virtual machine images
  214844. .IP \(bu 2
  214845. Destroy and query virtual machines
  214846. .UNINDENT
  214847. .sp
  214848. Documentation of the Dimension Data SaltStack integration is found on \fI\%developer.dimensiondata.com\fP
  214849. .SS Minion Blackout
  214850. .sp
  214851. During a blackout, minions will not execute any remote execution commands,
  214852. except for \fBsaltutil.refresh_pillar\fP\&. Blackouts are enabled using a special
  214853. pillar key, \fBminion_blackout\fP set to \fBTrue\fP\&.
  214854. .sp
  214855. See Minion Blackout\&.
  214856. .SS Splunk Returner
  214857. .sp
  214858. A Splunk Returner that uses HTTP Event Collector is now available (\fI\%PR #30718\fP).
  214859. .SS SQLCipher Pillar Module
  214860. .sp
  214861. Support was added for retrieving pillar data via queries to SQLCiper databases (\fI\%PR #29782\fP).
  214862. .SS New Modules
  214863. .sp
  214864. The following list contains a link to the new modules added in this release.
  214865. .SS Beacons
  214866. .INDENT 0.0
  214867. .IP \(bu 2
  214868. \fBbeacons.adb\fP
  214869. .IP \(bu 2
  214870. \fBbeacons.glxinfo\fP
  214871. .IP \(bu 2
  214872. \fBbeacons.memusage\fP
  214873. .IP \(bu 2
  214874. \fBbeacons.network_settings\fP
  214875. .IP \(bu 2
  214876. \fBbeacons.proxy_example\fP
  214877. .IP \(bu 2
  214878. \fBbeacons.salt_proxy\fP
  214879. .UNINDENT
  214880. .SS Engines
  214881. .INDENT 0.0
  214882. .IP \(bu 2
  214883. \fBengines.docker_events\fP
  214884. .IP \(bu 2
  214885. \fBengines.redis_sentinel\fP
  214886. .IP \(bu 2
  214887. \fBengines.slack\fP
  214888. .IP \(bu 2
  214889. \fBengines.sqs_events\fP
  214890. .IP \(bu 2
  214891. \fBengines.thorium\fP
  214892. .UNINDENT
  214893. .SS Execution Modules
  214894. .INDENT 0.0
  214895. .IP \(bu 2
  214896. \fBmodules.bcache\fP
  214897. .IP \(bu 2
  214898. \fBmodules.beacons\fP
  214899. .IP \(bu 2
  214900. \fBmodules.boto_cloudtrail\fP
  214901. .IP \(bu 2
  214902. \fBmodules.boto_datapipeline\fP
  214903. .IP \(bu 2
  214904. \fBmodules.boto_iot\fP
  214905. .IP \(bu 2
  214906. \fBmodules.boto_lambda\fP
  214907. .IP \(bu 2
  214908. \fBmodules.boto_s3_bucket\fP
  214909. .IP \(bu 2
  214910. \fBmodules.chronos\fP
  214911. .IP \(bu 2
  214912. \fBmodules.cytest\fP
  214913. .IP \(bu 2
  214914. \fBmodules.dockercompose\fP
  214915. .IP \(bu 2
  214916. \fBmodules.dsc\fP
  214917. .IP \(bu 2
  214918. \fBmodules.ethtool\fP
  214919. .IP \(bu 2
  214920. \fBmodules.github\fP
  214921. .IP \(bu 2
  214922. \fBmodules.infoblox\fP
  214923. .IP \(bu 2
  214924. \fBmodules.iwtools\fP
  214925. .IP \(bu 2
  214926. \fBmodules.jenkins\fP
  214927. .IP \(bu 2
  214928. \fBmodules.linux_ip\fP
  214929. .IP \(bu 2
  214930. \fBmodules.mac_assistive\fP
  214931. .IP \(bu 2
  214932. \fBmodules.mac_brew\fP
  214933. .IP \(bu 2
  214934. \fBmodules.mac_defaults\fP
  214935. .IP \(bu 2
  214936. \fBmodules.mac_desktop\fP
  214937. .IP \(bu 2
  214938. \fBmodules.mac_keychain\fP
  214939. .IP \(bu 2
  214940. \fBmodules.mac_pkgutil\fP
  214941. .IP \(bu 2
  214942. \fBmodules.mac_ports\fP
  214943. .IP \(bu 2
  214944. \fBmodules.mac_power\fP
  214945. .IP \(bu 2
  214946. \fBmodules.mac_service\fP
  214947. .IP \(bu 2
  214948. \fBmodules.mac_shadow\fP
  214949. .IP \(bu 2
  214950. \fBmodules.mac_softwareupdate\fP
  214951. .IP \(bu 2
  214952. \fBmodules.mac_sysctl\fP
  214953. .IP \(bu 2
  214954. \fBmodules.mac_system\fP
  214955. .IP \(bu 2
  214956. \fBmodules.mac_timezone\fP
  214957. .IP \(bu 2
  214958. \fBmodules.mac_xattr\fP
  214959. .IP \(bu 2
  214960. \fBmodules.marathon\fP
  214961. .IP \(bu 2
  214962. \fBmodules.minion\fP
  214963. .IP \(bu 2
  214964. \fBmodules.openvswitch\fP
  214965. .IP \(bu 2
  214966. \fBmodules.opkg\fP
  214967. .IP \(bu 2
  214968. \fBmodules.philips_hue\fP
  214969. .IP \(bu 2
  214970. \fBmodules.proxy\fP
  214971. .IP \(bu 2
  214972. \fBmodules.pushbullet\fP
  214973. .IP \(bu 2
  214974. \fBmodules.restartcheck\fP
  214975. .IP \(bu 2
  214976. \fBmodules.s6\fP
  214977. .IP \(bu 2
  214978. \fBmodules.salt_proxy\fP
  214979. .IP \(bu 2
  214980. \fBmodules.ssh_package\fP
  214981. .IP \(bu 2
  214982. \fBmodules.ssh_service\fP
  214983. .IP \(bu 2
  214984. \fBmodules.sysfs\fP
  214985. .IP \(bu 2
  214986. \fBmodules.vboxmanage\fP
  214987. .IP \(bu 2
  214988. \fBmodules.win_certutil\fP
  214989. .IP \(bu 2
  214990. \fBmodules.win_dism\fP
  214991. .IP \(bu 2
  214992. \fBmodules.win_dism\fP
  214993. .IP \(bu 2
  214994. \fBmodules.win_license\fP
  214995. .IP \(bu 2
  214996. \fBmodules.win_iis\fP
  214997. .IP \(bu 2
  214998. \fBmodules.win_task\fP
  214999. .IP \(bu 2
  215000. \fBmodules.zabbix\fP
  215001. .UNINDENT
  215002. .SS Pillar
  215003. .INDENT 0.0
  215004. .IP \(bu 2
  215005. \fBpillar.http_yaml\fP
  215006. .IP \(bu 2
  215007. \fBpillar.stack\fP
  215008. .UNINDENT
  215009. .SS Proxy
  215010. .INDENT 0.0
  215011. .IP \(bu 2
  215012. \fBproxy.chronos\fP
  215013. .IP \(bu 2
  215014. \fBproxy.junos\fP
  215015. .IP \(bu 2
  215016. \fBproxy.marathon\fP
  215017. .IP \(bu 2
  215018. \fBproxy.phillips_hue\fP
  215019. .IP \(bu 2
  215020. \fBproxy.ssh_sample\fP
  215021. .UNINDENT
  215022. .SS Roster
  215023. .INDENT 0.0
  215024. .IP \(bu 2
  215025. \fBroster.range\fP
  215026. .UNINDENT
  215027. .SS States
  215028. .INDENT 0.0
  215029. .IP \(bu 2
  215030. \fBstates.apache_conf\fP
  215031. .IP \(bu 2
  215032. \fBstates.apache_site\fP
  215033. .IP \(bu 2
  215034. \fBstates.boto_cloudtrail\fP
  215035. .IP \(bu 2
  215036. \fBstates.boto_datapipeline\fP
  215037. .IP \(bu 2
  215038. \fBstates.boto_iot\fP
  215039. .IP \(bu 2
  215040. \fBstates.boto_lamda\fP
  215041. .IP \(bu 2
  215042. \fBstates.boto_s3_bucket\fP
  215043. .IP \(bu 2
  215044. \fBstates.chocolatey\fP
  215045. .IP \(bu 2
  215046. \fBstates.chronos_job\fP
  215047. .IP \(bu 2
  215048. \fBstates.firewall\fP
  215049. .IP \(bu 2
  215050. \fBstates.github\fP
  215051. .IP \(bu 2
  215052. \fBstates.gpg\fP
  215053. .IP \(bu 2
  215054. \fBstates.grafana_dashboard\fP
  215055. .IP \(bu 2
  215056. \fBstates.grafana_datasource\fP
  215057. .IP \(bu 2
  215058. \fBstates.infoblox\fP
  215059. .IP \(bu 2
  215060. \fBstates.jenkins\fP
  215061. .IP \(bu 2
  215062. \fBstates.mac_assistive\fP
  215063. .IP \(bu 2
  215064. \fBstates.mac_defaults\fP
  215065. .IP \(bu 2
  215066. \fBstates.mac_keychain\fP
  215067. .IP \(bu 2
  215068. \fBstates.mac_xattr\fP
  215069. .IP \(bu 2
  215070. \fBstates.marathon_app\fP
  215071. .IP \(bu 2
  215072. \fBstates.openvswitch_bridge\fP
  215073. .IP \(bu 2
  215074. \fBstates.openvswitch_port\fP
  215075. .IP \(bu 2
  215076. \fBstates.postgres_cluster\fP
  215077. .IP \(bu 2
  215078. \fBstates.proxy\fP
  215079. .IP \(bu 2
  215080. \fBstates.salt_proxy\fP
  215081. .IP \(bu 2
  215082. \fBstates.virt\fP
  215083. .IP \(bu 2
  215084. \fBstates.win_certutil\fP
  215085. .IP \(bu 2
  215086. \fBstates.win_dism\fP
  215087. .IP \(bu 2
  215088. \fBstates.win_license\fP
  215089. .IP \(bu 2
  215090. \fBstates.zabbix_host\fP
  215091. .IP \(bu 2
  215092. \fBstates.zabbix_hostgroup\fP
  215093. .IP \(bu 2
  215094. \fBstates.zabbix_user\fP
  215095. .IP \(bu 2
  215096. \fBstates.zabbix_usergroup\fP
  215097. .UNINDENT
  215098. .SS Salt 2016.3.1 Release Notes
  215099. .sp
  215100. Version 2016.3.1 is a bugfix release for 2016.3.0\&.
  215101. .SS Statistics
  215102. .INDENT 0.0
  215103. .IP \(bu 2
  215104. Total Merges: \fB87\fP
  215105. .IP \(bu 2
  215106. Total Issue References: \fB23\fP
  215107. .IP \(bu 2
  215108. Total PR References: \fB58\fP
  215109. .IP \(bu 2
  215110. Contributors: \fB25\fP (\fI\%abednarik\fP, \fI\%amontalban\fP, \fI\%anlutro\fP, \fI\%babilen\fP, \fI\%cachedout\fP, \fI\%clburlison\fP, \fI\%danslimmon\fP, \fI\%eliasp\fP, \fI\%glomium\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%kev009\fP, \fI\%lomeroe\fP, \fI\%michalsuba\fP, \fI\%neil\-williamson\fP, \fI\%onorua\fP, \fI\%opdude\fP, \fI\%rallytime\fP, \fI\%sjorge\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%ticosax\fP, \fI\%tomlaredo\fP, \fI\%twangboy\fP, \fI\%zigarn\fP)
  215111. .UNINDENT
  215112. .SS Final Release of Debian 7 Packages
  215113. .sp
  215114. Regular security support for Debian 7 ended on April 25th, 2016. As a result,
  215115. 2016.3.1 and 2015.8.10 will be the last Salt releases for which Debian 7
  215116. packages are created.
  215117. .SS Changelog for v2016.3.0..v2016.3.1
  215118. .sp
  215119. \fIGenerated at: 2018\-05\-27 04:31:54 UTC\fP
  215120. .INDENT 0.0
  215121. .INDENT 3.5
  215122. .INDENT 0.0
  215123. .IP \(bu 2
  215124. \fBPR\fP \fI\%#33883\fP: (\fI\%jfindlay\fP) add 2016.3.1 release notes
  215125. .UNINDENT
  215126. .UNINDENT
  215127. .UNINDENT
  215128. .INDENT 0.0
  215129. .IP \(bu 2
  215130. \fBPR\fP \fI\%#33866\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215131. @ \fI2016\-06\-08 19:49:56 UTC\fP
  215132. .INDENT 2.0
  215133. .IP \(bu 2
  215134. be20ce1bbf Merge pull request \fI\%#33866\fP from rallytime/merge\-2016.3
  215135. .IP \(bu 2
  215136. 595d4f2ac3 Fixup new groupadd tests for syntax change in 2016.3
  215137. .IP \(bu 2
  215138. c5b4ec0b0f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  215139. .INDENT 2.0
  215140. .IP \(bu 2
  215141. ec09095c45 Merge pull request \fI\%#33827\fP from cachedout/issue_33810
  215142. .INDENT 2.0
  215143. .IP \(bu 2
  215144. 9d36f1e474 Fix broken locate.locate function
  215145. .UNINDENT
  215146. .IP \(bu 2
  215147. f7b3d0eda0 Merge pull request \fI\%#33839\fP from cachedout/fix_pkgresource_test_stacktrace
  215148. .INDENT 2.0
  215149. .IP \(bu 2
  215150. 435547a747 Fix another unit test stacktrace in pkg_resource
  215151. .UNINDENT
  215152. .IP \(bu 2
  215153. 5f081ef31c Merge pull request \fI\%#33840\fP from cachedout/remove_matcher_unit_tests
  215154. .INDENT 2.0
  215155. .IP \(bu 2
  215156. 6297448377 Remove matcher tests
  215157. .UNINDENT
  215158. .IP \(bu 2
  215159. cda032dab2 Merge pull request \fI\%#33836\fP from cachedout/fix_winserver_manager_test
  215160. .INDENT 2.0
  215161. .IP \(bu 2
  215162. 453fb1ac91 Fixing more stupid unit tests
  215163. .UNINDENT
  215164. .IP \(bu 2
  215165. 1db559afe9 Merge pull request \fI\%#33805\fP from jfindlay/pkg_tests
  215166. .INDENT 2.0
  215167. .IP \(bu 2
  215168. 0c069ddc95 states.pkg int tests: skip if pkg mgr unavailable
  215169. .UNINDENT
  215170. .IP \(bu 2
  215171. 3984b65486 Merge pull request \fI\%#33808\fP from jfindlay/gem_tests
  215172. .INDENT 2.0
  215173. .IP \(bu 2
  215174. f7c19a1a58 modules.gem int tests: relax version checks
  215175. .IP \(bu 2
  215176. 6af47d2ba7 modules.gem int tests: remove pkgs before testing install
  215177. .UNINDENT
  215178. .IP \(bu 2
  215179. c30d8a8c61 Merge pull request \fI\%#33770\fP from jfindlay/service_tests
  215180. .INDENT 2.0
  215181. .IP \(bu 2
  215182. f13f914755 states.service: add integration tests
  215183. .IP \(bu 2
  215184. 90aee79c39 states.service.mod_watch: update unit test
  215185. .IP \(bu 2
  215186. d210a92f09 states.service.mod_watch: update sfun and force docs
  215187. .UNINDENT
  215188. .IP \(bu 2
  215189. 7fdfbe9a28 Merge pull request \fI\%#33691\fP from jtand/gem_integration_test
  215190. .INDENT 2.0
  215191. .IP \(bu 2
  215192. ff2dae103d ubuntu doesn\(aqt install default gems when ruby is installed
  215193. .IP \(bu 2
  215194. 504df9a65a Fixed lint error
  215195. .IP \(bu 2
  215196. 0cb1bfa0d3 Removed extra :
  215197. .IP \(bu 2
  215198. 86f59b3e80 Made more pythonic
  215199. .IP \(bu 2
  215200. 2f36f34981 Fixed salt.util import. Added status check to make sure external resource is available
  215201. .IP \(bu 2
  215202. 400a71ec33 Removed redundancies
  215203. .IP \(bu 2
  215204. 91db411bea A couple lint fixes
  215205. .IP \(bu 2
  215206. c97f3319b9 Add check for gem binary
  215207. .IP \(bu 2
  215208. 210aceb402 Refactored tests to not use return messages
  215209. .IP \(bu 2
  215210. 9d437bd45d Removed artifact from testing
  215211. .IP \(bu 2
  215212. 134e1fa888 Fixed typos, and added destructiveTest decorator
  215213. .IP \(bu 2
  215214. 37bc3ad8fd Fixed typo, uninstalled to uninstall
  215215. .IP \(bu 2
  215216. 5b23b91ac6 Integration test for gem module
  215217. .UNINDENT
  215218. .IP \(bu 2
  215219. bb4194bb79 Merge pull request \fI\%#33777\fP from sodium\-chloride/2015.8\-2016\-0604\-1939
  215220. .INDENT 2.0
  215221. .IP \(bu 2
  215222. c1fd830a1a Fix minor docstring issue of arg being missing
  215223. .UNINDENT
  215224. .IP \(bu 2
  215225. c749aea409 Merge pull request \fI\%#33759\fP from cachedout/issue_31219
  215226. .INDENT 2.0
  215227. .IP \(bu 2
  215228. 15a39f8646 Catch no minions exception in batch mode
  215229. .UNINDENT
  215230. .IP \(bu 2
  215231. 47d668e071 Merge pull request \fI\%#33719\fP from cachedout/fixup_33653
  215232. .INDENT 2.0
  215233. .IP \(bu 2
  215234. 635efa248b Change to just surround the mkdir
  215235. .IP \(bu 2
  215236. 21b7123a60 Catch oserror for race condition
  215237. .UNINDENT
  215238. .IP \(bu 2
  215239. 11e39e7203 Merge pull request \fI\%#33712\fP from meaksh/fix\-for\-groupadd\-module\-failures\-in\-SLE11\-2015.8
  215240. .INDENT 2.0
  215241. .IP \(bu 2
  215242. ab738416ba pylint fix
  215243. .IP \(bu 2
  215244. bf27e5d36e test_members cleanup
  215245. .IP \(bu 2
  215246. ba815dbf76 improvements on groupadd unit tests
  215247. .IP \(bu 2
  215248. 3bbc5ae0d9 one line is better
  215249. .IP \(bu 2
  215250. a53dc192c9 fix groupadd module for sles11 systems
  215251. .UNINDENT
  215252. .IP \(bu 2
  215253. 2c450a7494 Merge pull request \fI\%#33718\fP from rallytime/bp\-33700
  215254. .INDENT 2.0
  215255. .IP \(bu 2
  215256. a6a446121a Fix speed issue
  215257. .IP \(bu 2
  215258. a41146730a Fix incorrect args passed to timezone.set_hwclock
  215259. .UNINDENT
  215260. .IP \(bu 2
  215261. b07701f0a0 Merge pull request \fI\%#33727\fP from terminalmage/issue33725
  215262. .INDENT 2.0
  215263. .IP \(bu 2
  215264. d8ba7ed5a5 Fix git_pillar edge case for remote repos without a master branch
  215265. .UNINDENT
  215266. .IP \(bu 2
  215267. 015e50cec8 Merge pull request \fI\%#33728\fP from jfindlay/test_state_test
  215268. .INDENT 2.0
  215269. .IP \(bu 2
  215270. 87e018af2a states.test.configurable_test_state: add unit tests
  215271. .IP \(bu 2
  215272. c2d0679c4b states.test.configurable_test_state: refactor change_data
  215273. .IP \(bu 2
  215274. f06ff1af1f states.test.configurable_test_state test mode
  215275. .UNINDENT
  215276. .IP \(bu 2
  215277. 1cf8fe3f1d Merge pull request \fI\%#33729\fP from twangboy/fix_win_servermanager
  215278. .INDENT 2.0
  215279. .IP \(bu 2
  215280. 2de91d166f Fix docstring
  215281. .IP \(bu 2
  215282. 9870479d99 Add exclude option to state
  215283. .IP \(bu 2
  215284. 50bd76e206 Add exclude option
  215285. .UNINDENT
  215286. .IP \(bu 2
  215287. 6c150d840d Merge pull request \fI\%#33743\fP from vutny/drop\-debian\-community\-repo\-doc
  215288. .INDENT 2.0
  215289. .IP \(bu 2
  215290. 8621f5be54 Debian installation docs: drop section about community\-maintained repository
  215291. .UNINDENT
  215292. .IP \(bu 2
  215293. 56c0a42e12 Create missing jid dir if it doesn\(aqt exist (\fI\%#33653\fP)
  215294. .IP \(bu 2
  215295. 8a566ff4b9 Merge pull request \fI\%#33654\fP from twangboy/fix_win_servermanager
  215296. .INDENT 2.0
  215297. .IP \(bu 2
  215298. 6c7b21676a Fix lint and tests
  215299. .IP \(bu 2
  215300. 4775e6bdf0 Add additional params to state
  215301. .IP \(bu 2
  215302. b0af32346d Add additional params to install and remove
  215303. .UNINDENT
  215304. .IP \(bu 2
  215305. 996ff56dd4 Merge pull request \fI\%#33679\fP from terminalmage/issue33424
  215306. .INDENT 2.0
  215307. .IP \(bu 2
  215308. 9da40c4437 Append empty dictionaries for saltenvs with no top file
  215309. .IP \(bu 2
  215310. 5eb1b3ca62 Only compile the template contents if they evaluate to True
  215311. .UNINDENT
  215312. .UNINDENT
  215313. .UNINDENT
  215314. .IP \(bu 2
  215315. \fBISSUE\fP \fI\%#33843\fP: (\fI\%richardscollin\fP) 2016.3 Test Suite TCP Error (refs: \fI\%#33860\fP)
  215316. .IP \(bu 2
  215317. \fBPR\fP \fI\%#33860\fP: (\fI\%cachedout\fP) Allow socket closes when the socket is disconnected
  215318. @ \fI2016\-06\-08 18:26:16 UTC\fP
  215319. .INDENT 2.0
  215320. .IP \(bu 2
  215321. 669aa92d59 Merge pull request \fI\%#33860\fP from cachedout/issue_33843
  215322. .IP \(bu 2
  215323. 2c88e22c07 Use errno
  215324. .IP \(bu 2
  215325. e7de99dd0e Correct silly mistake
  215326. .IP \(bu 2
  215327. 7a46360a13 Allow socket closes when the socket is disconnected
  215328. .UNINDENT
  215329. .IP \(bu 2
  215330. \fBISSUE\fP \fI\%#33818\fP: (\fI\%saltuser\fP) 2016.3.0 minion default log level INFO (refs: \fI\%#33821\fP, \fI\%#33861\fP)
  215331. .INDENT 2.0
  215332. .IP \(bu 2
  215333. \fBPR\fP \fI\%#33861\fP: (\fI\%cachedout\fP) Set master and cloud to log level warning
  215334. .IP \(bu 2
  215335. \fBPR\fP \fI\%#33821\fP: (\fI\%cachedout\fP) Restore deafault log level to warning (refs: \fI\%#33861\fP)
  215336. .UNINDENT
  215337. .IP \(bu 2
  215338. \fBPR\fP \fI\%#33698\fP: (\fI\%opdude\fP) Vsphere fixes
  215339. @ \fI2016\-06\-08 14:12:17 UTC\fP
  215340. .INDENT 2.0
  215341. .IP \(bu 2
  215342. a3202f1ad6 Merge pull request \fI\%#33698\fP from Unity\-Technologies/vsphere\-fixes
  215343. .IP \(bu 2
  215344. 8ff5906fad Revert "Fix\ a bug when creating a new VM and changing the network info"
  215345. .IP \(bu 2
  215346. 636f4c00f0 Make sure we only use GetConnection if we are using a proxy salt minion
  215347. .IP \(bu 2
  215348. 64e9334d56 Fix a bug with self signed certificates and creating a new VM
  215349. .IP \(bu 2
  215350. 7834aeda7d Fix\ a bug when creating a new VM and changing the network info
  215351. .UNINDENT
  215352. .IP \(bu 2
  215353. \fBPR\fP \fI\%#33771\fP: (\fI\%twangboy\fP) Additional functionality to win_dism.py
  215354. @ \fI2016\-06\-08 13:58:20 UTC\fP
  215355. .INDENT 2.0
  215356. .IP \(bu 2
  215357. 01aaf3e2a9 Merge pull request \fI\%#33771\fP from twangboy/win_dism
  215358. .IP \(bu 2
  215359. 9be45fe37a Fix some more lint
  215360. .IP \(bu 2
  215361. 421dc97957 Fix/add unit tests for state
  215362. .IP \(bu 2
  215363. 8d66fac74c Add missing unit tests
  215364. .IP \(bu 2
  215365. 60f856f73d Fix unit tests for module
  215366. .IP \(bu 2
  215367. b574947afe Fix some lint errors
  215368. .IP \(bu 2
  215369. a32774c07d Add salt.utils.compare_lists
  215370. .IP \(bu 2
  215371. 7ff7050705 Fix incorrect parameters in the state
  215372. .IP \(bu 2
  215373. b8ee89f18e Fix typos
  215374. .IP \(bu 2
  215375. 10458d8a70 Remove multiple lookups, faster
  215376. .IP \(bu 2
  215377. d9b848c0d9 Change to dict instead of error
  215378. .IP \(bu 2
  215379. 6510e0a5b0 Add restart option
  215380. .IP \(bu 2
  215381. da8562dbc8 Add quiet and norestart options
  215382. .IP \(bu 2
  215383. 946371bf1f Handle errors, ensure add/remove
  215384. .IP \(bu 2
  215385. 7e6382a8b2 Use list instead of string for cmd
  215386. .IP \(bu 2
  215387. fbdd28f144 Add state functions
  215388. .IP \(bu 2
  215389. 90a4ee3d96 Merge branch \(aq2016.3\(aq of \fI\%https://github.com/saltstack/salt\fP into win_dism
  215390. .IP \(bu 2
  215391. 00c24abe1f Add get functions
  215392. .IP \(bu 2
  215393. c6621053fd Add additional functions
  215394. .IP \(bu 2
  215395. 36507845b6 Update documentation
  215396. .UNINDENT
  215397. .IP \(bu 2
  215398. \fBISSUE\fP \fI\%#33649\fP: (\fI\%tyhunt99\fP) 2016.3.0 dockerng state fails comparing cmd configuration (refs: \fI\%#33851\fP)
  215399. .IP \(bu 2
  215400. \fBPR\fP \fI\%#33851\fP: (\fI\%ticosax\fP) [dockerng] Add support for edge case when \fICmd\fP and \fIEntrypoint\fP can\(aqt be blanked
  215401. @ \fI2016\-06\-08 13:52:40 UTC\fP
  215402. .INDENT 2.0
  215403. .IP \(bu 2
  215404. f546e47552 Merge pull request \fI\%#33851\fP from ticosax/fix\-entrypoint\-support
  215405. .IP \(bu 2
  215406. 0d40e1c4f3 Add support for edge case when Cmd and Entrypoint can\(aqt be blanked
  215407. .UNINDENT
  215408. .IP \(bu 2
  215409. \fBISSUE\fP \fI\%#33818\fP: (\fI\%saltuser\fP) 2016.3.0 minion default log level INFO (refs: \fI\%#33821\fP, \fI\%#33861\fP)
  215410. .IP \(bu 2
  215411. \fBPR\fP \fI\%#33821\fP: (\fI\%cachedout\fP) Restore deafault log level to warning (refs: \fI\%#33861\fP)
  215412. @ \fI2016\-06\-07 16:51:46 UTC\fP
  215413. .INDENT 2.0
  215414. .IP \(bu 2
  215415. 3f6d06a060 Merge pull request \fI\%#33821\fP from cachedout/issue_33818
  215416. .IP \(bu 2
  215417. 52f1f77a38 Restore deafault log level to warning
  215418. .UNINDENT
  215419. .IP \(bu 2
  215420. \fBISSUE\fP \fI\%#33578\fP: (\fI\%ohauer\fP) 2016.3.0 FreeBSD Failed to load grains defined in grain file disks.disks in function <function disks at 0x80cff9320>, error: (refs: \fI\%#33604\fP, \fI\%#33767\fP)
  215421. .IP \(bu 2
  215422. \fBPR\fP \fI\%#33767\fP: (\fI\%amontalban\fP) Fix \fI\%#33604\fP implementation when \(aqgeom disk list\(aq does not output rotat…
  215423. @ \fI2016\-06\-07 14:41:56 UTC\fP
  215424. .INDENT 2.0
  215425. .IP \(bu 2
  215426. \fBPR\fP \fI\%#33604\fP: (\fI\%kev009\fP) Fix \fI\%#33578\fP disks grain (refs: \fI\%#33767\fP)
  215427. .IP \(bu 2
  215428. 3e48b701e3 Merge pull request \fI\%#33767\fP from amontalban/2016.3
  215429. .IP \(bu 2
  215430. b8c0dd5b4c Fix \fI\%#33604\fP implementation when \(aqgeom disk list\(aq does not output rotationrate. \fI\%#33578\fP
  215431. .UNINDENT
  215432. .IP \(bu 2
  215433. \fBPR\fP \fI\%#33806\fP: (\fI\%cachedout\fP) Work around upstream cherrypy bug
  215434. @ \fI2016\-06\-07 14:39:57 UTC\fP
  215435. .INDENT 2.0
  215436. .IP \(bu 2
  215437. a84588c788 Merge pull request \fI\%#33806\fP from cachedout/cherrypy_1444
  215438. .IP \(bu 2
  215439. 1b537d41b6 Work around upstream cherrypy bug
  215440. .UNINDENT
  215441. .IP \(bu 2
  215442. \fBISSUE\fP \fI\%#33754\fP: (\fI\%zerthimon\fP) boto_s3_bucket.present is not idempotent (refs: \fI\%#33776\fP)
  215443. .IP \(bu 2
  215444. \fBPR\fP \fI\%#33776\fP: (\fI\%danslimmon\fP) Fixed ACL user comparison. Resolves \fI\%#33754\fP\&.
  215445. @ \fI2016\-06\-06 11:11:15 UTC\fP
  215446. .INDENT 2.0
  215447. .IP \(bu 2
  215448. 94f98b4ab8 Merge pull request \fI\%#33776\fP from danslimmon/s3\-bucket\-idempotency\-33754
  215449. .IP \(bu 2
  215450. 35b84f1877 Fixed bug where _prep_acl_for_compare() would edit but not return
  215451. .IP \(bu 2
  215452. f87bc347fd Fixed ACL user comparison. Resolves \fI\%#33754\fP\&.
  215453. .UNINDENT
  215454. .IP \(bu 2
  215455. \fBISSUE\fP \fI\%#33741\fP: (\fI\%jopohl\fP) pkg.install: ERROR: Zypper command failure: Unknown option \(aq\-\-no\-refresh\(aq (refs: \fI\%#33763\fP)
  215456. .IP \(bu 2
  215457. \fBPR\fP \fI\%#33763\fP: (\fI\%abednarik\fP) Insert \-\-no\-refresh before install in Zypper.
  215458. @ \fI2016\-06\-06 10:53:27 UTC\fP
  215459. .INDENT 2.0
  215460. .IP \(bu 2
  215461. a92e155a04 Merge pull request \fI\%#33763\fP from abednarik/abednarik_zypper_no_refresh_fix
  215462. .IP \(bu 2
  215463. 7c909a1d7f Insert \-\-no\-refresh before install in Zypper.
  215464. .UNINDENT
  215465. .IP \(bu 2
  215466. \fBISSUE\fP \fI\%#33647\fP: (\fI\%closepin\fP) Pillars passed from command\-line override pillar subtrees instead of merging (refs: \fI\%#33764\fP)
  215467. .IP \(bu 2
  215468. \fBPR\fP \fI\%#33764\fP: (\fI\%terminalmage\fP) Merge instead of update pillar overrides
  215469. @ \fI2016\-06\-06 10:52:22 UTC\fP
  215470. .INDENT 2.0
  215471. .IP \(bu 2
  215472. 306848a2d7 Merge pull request \fI\%#33764\fP from terminalmage/issue33647
  215473. .IP \(bu 2
  215474. 914003c995 Merge instead of update pillar overrides
  215475. .UNINDENT
  215476. .IP \(bu 2
  215477. \fBPR\fP \fI\%#33772\fP: (\fI\%danslimmon\fP) Fixed spelling of "through"
  215478. @ \fI2016\-06\-06 10:50:54 UTC\fP
  215479. .INDENT 2.0
  215480. .IP \(bu 2
  215481. b37a862b70 Merge pull request \fI\%#33772\fP from danslimmon/trough\-through
  215482. .IP \(bu 2
  215483. ea3498aedc Fixed spelling of "through"
  215484. .UNINDENT
  215485. .IP \(bu 2
  215486. \fBISSUE\fP \fI\%#33614\fP: (\fI\%knuta\fP) grains.has_key() always returns false in 2016.3.0 (refs: \fI\%#33651\fP)
  215487. .IP \(bu 2
  215488. \fBPR\fP \fI\%#33651\fP: (\fI\%cachedout\fP) Restore grains context to renderers
  215489. @ \fI2016\-06\-03 20:48:44 UTC\fP
  215490. .INDENT 2.0
  215491. .IP \(bu 2
  215492. a8d9221631 Merge pull request \fI\%#33651\fP from cachedout/issue_33614
  215493. .IP \(bu 2
  215494. 5518e1dd14 Fix whitespace
  215495. .IP \(bu 2
  215496. 7b50e1766e Better fix
  215497. .IP \(bu 2
  215498. 4e18ff7000 Restore grains context to renderers
  215499. .UNINDENT
  215500. .IP \(bu 2
  215501. \fBPR\fP \fI\%#33757\fP: (\fI\%cachedout\fP) Reminder not to return non\-serializable data from states
  215502. @ \fI2016\-06\-03 19:23:54 UTC\fP
  215503. .INDENT 2.0
  215504. .IP \(bu 2
  215505. daf462e430 Merge pull request \fI\%#33757\fP from cachedout/state_set_doc
  215506. .IP \(bu 2
  215507. 500d4ccec2 Reminder not to return non\-serializable data from states
  215508. .UNINDENT
  215509. .IP \(bu 2
  215510. \fBISSUE\fP \fI\%#33605\fP: (\fI\%morganwillcock\fP) win_pkg: UnicodeEncodeError where DisplayName includes "Español" (refs: \fI\%#33670\fP)
  215511. .IP \(bu 2
  215512. \fBPR\fP \fI\%#33670\fP: (\fI\%rallytime\fP) Handle non\-ascii package names in state.format_log
  215513. @ \fI2016\-06\-03 16:16:53 UTC\fP
  215514. .INDENT 2.0
  215515. .IP \(bu 2
  215516. a5684ed123 Merge pull request \fI\%#33670\fP from rallytime/fix\-33605
  215517. .IP \(bu 2
  215518. 59bd51f4c8 Update test to correct iteration
  215519. .IP \(bu 2
  215520. a580d1c6e0 Add unit test for format_log change
  215521. .IP \(bu 2
  215522. e68097445c Revert "Track down more unicode instances and add a test"
  215523. .IP \(bu 2
  215524. 9729aed262 Track down more unicode instances and add a test
  215525. .IP \(bu 2
  215526. ae332d1f88 Handle non\-ascii package names in state.format_log
  215527. .UNINDENT
  215528. .IP \(bu 2
  215529. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#33641\fP)
  215530. .IP \(bu 2
  215531. \fBPR\fP \fI\%#33723\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33641\fP to 2016.3
  215532. @ \fI2016\-06\-03 16:07:53 UTC\fP
  215533. .INDENT 2.0
  215534. .IP \(bu 2
  215535. \fBPR\fP \fI\%#33641\fP: (\fI\%glomium\fP) check rabbitmq version and use different api to validate a users pass… (refs: \fI\%#33723\fP)
  215536. .IP \(bu 2
  215537. 56eab363ff Merge pull request \fI\%#33723\fP from rallytime/bp\-33641
  215538. .IP \(bu 2
  215539. 77a51a00a3 pylint W0141, W0702
  215540. .IP \(bu 2
  215541. f8518939a7 check rabbitmq version and use different api to validate a users password
  215542. .UNINDENT
  215543. .IP \(bu 2
  215544. \fBISSUE\fP \fI\%#32059\fP: (\fI\%fuzzy\-id\fP) dockerng fails with: create_container() got an unexpected keyword argument \(aqbinds\(aq (refs: \fI\%#33748\fP)
  215545. .IP \(bu 2
  215546. \fBPR\fP \fI\%#33748\fP: (\fI\%ticosax\fP) HostConfig has been introduced by docker api version 1.15
  215547. @ \fI2016\-06\-03 15:28:40 UTC\fP
  215548. .INDENT 2.0
  215549. .IP \(bu 2
  215550. c2b970789c Merge pull request \fI\%#33748\fP from ticosax/adjust\-api\-version\-host\-config
  215551. .IP \(bu 2
  215552. 134e4a9abf HostConfig has been intoriduced by docker api version 1.15
  215553. .UNINDENT
  215554. .IP \(bu 2
  215555. \fBPR\fP \fI\%#33745\fP: (\fI\%eliasp\fP) Typo (\fIprivilages\fP → \fIprivileges\fP)
  215556. @ \fI2016\-06\-03 15:14:37 UTC\fP
  215557. .INDENT 2.0
  215558. .IP \(bu 2
  215559. e08c685a6c Merge pull request \fI\%#33745\fP from eliasp/2016.3\-typo\-privilages\-privileges
  215560. .IP \(bu 2
  215561. 646bc426c6 Typo (\fIprivilages\fP → \fIprivileges\fP)
  215562. .UNINDENT
  215563. .IP \(bu 2
  215564. \fBISSUE\fP \fI\%#33537\fP: (\fI\%anlutro\fP) apache_module state functions changed names with no deprecation warning or backward compatibility (refs: \fI\%#33562\fP)
  215565. .IP \(bu 2
  215566. \fBPR\fP \fI\%#33562\fP: (\fI\%jfindlay\fP) states.apache_*: readd and deprecate enable and disable
  215567. @ \fI2016\-06\-02 19:51:37 UTC\fP
  215568. .INDENT 2.0
  215569. .IP \(bu 2
  215570. \fBPR\fP \fI\%#29651\fP: (\fI\%zigarn\fP) Deb apache fixes (refs: \fI\%#33562\fP)
  215571. .IP \(bu 2
  215572. 5f4c6902aa Merge pull request \fI\%#33562\fP from jfindlay/apache_funcs
  215573. .IP \(bu 2
  215574. 9b0eb858a6 add note and workaround to release notes
  215575. .IP \(bu 2
  215576. 17306bfc69 states.apache_*: readd and deprecate enable and disable
  215577. .UNINDENT
  215578. .IP \(bu 2
  215579. \fBISSUE\fP \fI\%#33632\fP: (\fI\%rbjorklin\fP) dockerng.volume_present: Dryrun isn\(aqt dry (refs: \fI\%#33659\fP)
  215580. .IP \(bu 2
  215581. \fBPR\fP \fI\%#33659\fP: (\fI\%danslimmon\fP) Added test mode to states.dockerng. Resolves \fI\%#33632\fP\&.
  215582. @ \fI2016\-06\-02 17:45:49 UTC\fP
  215583. .INDENT 2.0
  215584. .IP \(bu 2
  215585. d3253effe9 Merge pull request \fI\%#33659\fP from danslimmon/dockerng\-dryrun\-33632
  215586. .IP \(bu 2
  215587. ef885c1b7e Added test mode to dockerng.volume_present. Resolves \fI\%#33632\fP\&.
  215588. .UNINDENT
  215589. .IP \(bu 2
  215590. \fBPR\fP \fI\%#33696\fP: (\fI\%clburlison\fP) Update mac native package for upcoming release
  215591. @ \fI2016\-06\-02 17:44:01 UTC\fP
  215592. .INDENT 2.0
  215593. .IP \(bu 2
  215594. 1d6582b659 Merge pull request \fI\%#33696\fP from clburlison/2016.3\-pkg\-fix
  215595. .IP \(bu 2
  215596. b483d1d8a6 Update mac native package for upcoming release
  215597. .UNINDENT
  215598. .IP \(bu 2
  215599. \fBPR\fP \fI\%#33710\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215600. @ \fI2016\-06\-02 16:19:00 UTC\fP
  215601. .INDENT 2.0
  215602. .IP \(bu 2
  215603. 78966f5f30 Merge pull request \fI\%#33710\fP from rallytime/merge\-2016.3
  215604. .IP \(bu 2
  215605. b7accb0b3b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  215606. .IP \(bu 2
  215607. c8dc70b96a Merge pull request \fI\%#33685\fP from jfindlay/get_url_test
  215608. .INDENT 2.0
  215609. .IP \(bu 2
  215610. 2b5035fdc0 modules.cp.get_url: add test for \fI\%https://\fP
  215611. .UNINDENT
  215612. .IP \(bu 2
  215613. 5e022ff29c Merge pull request \fI\%#33581\fP from dincamihai/2015.8
  215614. .INDENT 2.0
  215615. .IP \(bu 2
  215616. 788730ea72 DRY test
  215617. .IP \(bu 2
  215618. 1d3769ccfa Improve zypper_patcher_config looks
  215619. .IP \(bu 2
  215620. 42d8d4195c Assert only gpgautoimport: True works
  215621. .IP \(bu 2
  215622. ced75e8e62 Reverse if conditions and rename variable
  215623. .IP \(bu 2
  215624. 80bfbe5c52 Reduce dicts and lists to one line where possible
  215625. .IP \(bu 2
  215626. 1d5d6d7d60 Update test method names to pass pylint
  215627. .IP \(bu 2
  215628. c7ae5907ee Call zypper refresh after adding/modifying a repository
  215629. .UNINDENT
  215630. .IP \(bu 2
  215631. 069ee15b7c Merge pull request \fI\%#33681\fP from rallytime/bp\-33599
  215632. .INDENT 2.0
  215633. .IP \(bu 2
  215634. 45143a599b use requests streaming for uploads/downloads to file (return_bin unchanged) allows downloading files larger than amount of memory (non\-stream reads into memory before writing to disk or uploading)
  215635. .IP \(bu 2
  215636. 4a9b23f03f first go at having requests use streaming for get/put requests
  215637. .UNINDENT
  215638. .IP \(bu 2
  215639. 13537c4891 Merge pull request \fI\%#33396\fP from babilen/issue\-33393
  215640. .INDENT 2.0
  215641. .IP \(bu 2
  215642. 57e0475cd4 Make pip InstallationError import more robust
  215643. .IP \(bu 2
  215644. 291a3e21fa Remove duplicated code.
  215645. .UNINDENT
  215646. .IP \(bu 2
  215647. 7bce4ece1a Merge pull request \fI\%#33652\fP from terminalmage/zh723
  215648. .INDENT 2.0
  215649. .IP \(bu 2
  215650. 411841603a Lower the log level for failed auths
  215651. .UNINDENT
  215652. .IP \(bu 2
  215653. 504989388a Merge pull request \fI\%#33615\fP from danslimmon/mysql\-traceback\-33582
  215654. .INDENT 2.0
  215655. .IP \(bu 2
  215656. 180099ae9f Wrote test for broken server connection
  215657. .IP \(bu 2
  215658. c6c3ff02e3 Added some error checking to resolve \fI\%#33582\fP\&.
  215659. .UNINDENT
  215660. .UNINDENT
  215661. .IP \(bu 2
  215662. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP, \fI\%#33682\fP)
  215663. .INDENT 2.0
  215664. .IP \(bu 2
  215665. \fBPR\fP \fI\%#33682\fP: (\fI\%lomeroe\fP) backport \fI\%#33599\fP to 2016.3
  215666. .IP \(bu 2
  215667. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP, \fI\%#33682\fP)
  215668. .UNINDENT
  215669. .IP \(bu 2
  215670. \fBISSUE\fP \fI\%#33532\fP: (\fI\%Routhinator\fP) 2016.3 breaks existing formulas that work on 2015.8 (refs: \fI\%#33688\fP)
  215671. .INDENT 2.0
  215672. .IP \(bu 2
  215673. \fBPR\fP \fI\%#33688\fP: (\fI\%terminalmage\fP) Undo __repr__() and __str__() parts of d5a7dcc
  215674. .UNINDENT
  215675. .IP \(bu 2
  215676. \fBISSUE\fP \fI\%#29265\fP: (\fI\%mbochenk\fP) mysql_user.present does not work with MySQL 5.7 (refs: \fI\%#33690\fP, \fI\%#32440\fP, \fI\%#30603\fP)
  215677. .INDENT 2.0
  215678. .IP \(bu 2
  215679. \fBPR\fP \fI\%#33690\fP: (\fI\%neil\-williamson\fP) Remove explicit PW column default from mysql_user
  215680. .IP \(bu 2
  215681. \fBPR\fP \fI\%#32440\fP: (\fI\%neil\-williamson\fP) Automatically detect correct MySQL password column for 5.7 and fix setting passwords (refs: \fI\%#33690\fP)
  215682. .IP \(bu 2
  215683. \fBPR\fP \fI\%#30603\fP: (\fI\%michalsuba\fP) addressing \fI\%#29265\fP (refs: \fI\%#32440\fP)
  215684. .UNINDENT
  215685. .IP \(bu 2
  215686. \fBPR\fP \fI\%#33680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32942\fP to 2016.3
  215687. @ \fI2016\-06\-01 22:14:20 UTC\fP
  215688. .INDENT 2.0
  215689. .IP \(bu 2
  215690. \fBPR\fP \fI\%#32942\fP: (\fI\%onorua\fP) Make tornado raise error configurable (refs: \fI\%#33680\fP)
  215691. .IP \(bu 2
  215692. c725854596 Merge pull request \fI\%#33680\fP from rallytime/bp\-32942
  215693. .IP \(bu 2
  215694. 09751ecb04 Make tornado raise error configurable (\fI\%#32942\fP)
  215695. .UNINDENT
  215696. .IP \(bu 2
  215697. \fBPR\fP \fI\%#33677\fP: (\fI\%twangboy\fP) Pass kwargs to cmd.run
  215698. @ \fI2016\-06\-01 20:20:08 UTC\fP
  215699. .INDENT 2.0
  215700. .IP \(bu 2
  215701. 9571dad678 Merge pull request \fI\%#33677\fP from twangboy/fix_runas
  215702. .IP \(bu 2
  215703. 4272afe0d5 Pass kwargs to cmd.run
  215704. .UNINDENT
  215705. .IP \(bu 2
  215706. \fBISSUE\fP \fI\%#33529\fP: (\fI\%djneades\fP) pkg.latest completely broken on FreeBSD in salt\-ssh 2016.3 (refs: \fI\%#33648\fP)
  215707. .IP \(bu 2
  215708. \fBPR\fP \fI\%#33648\fP: (\fI\%terminalmage\fP) salt.modules.pkgng: Fix incorrect usage of _pkg()
  215709. @ \fI2016\-06\-01 16:37:46 UTC\fP
  215710. .INDENT 2.0
  215711. .IP \(bu 2
  215712. d566ec4b31 Merge pull request \fI\%#33648\fP from terminalmage/issue33529
  215713. .IP \(bu 2
  215714. 4ad80d29b6 salt.modules.pkgng: Fix incorrect usage of _pkg()
  215715. .UNINDENT
  215716. .IP \(bu 2
  215717. \fBPR\fP \fI\%#33646\fP: (\fI\%jfindlay\fP) Fix more tmp paths on MacOS
  215718. @ \fI2016\-06\-01 16:36:33 UTC\fP
  215719. .INDENT 2.0
  215720. .IP \(bu 2
  215721. e92d6e214f Merge pull request \fI\%#33646\fP from jfindlay/mac_tests
  215722. .IP \(bu 2
  215723. c53a727c18 tests.runtests: use globally\-determined tempdir
  215724. .IP \(bu 2
  215725. 8295b48459 test.integration: use hard /tmp on MacOS
  215726. .UNINDENT
  215727. .IP \(bu 2
  215728. \fBPR\fP \fI\%#33656\fP: (\fI\%cachedout\fP) Fix indentation error in minion.py
  215729. @ \fI2016\-06\-01 16:23:20 UTC\fP
  215730. .INDENT 2.0
  215731. .IP \(bu 2
  215732. \fBPR\fP \fI\%#33076\fP: (\fI\%cachedout\fP) Avoid second grains load on windows multiprocessing (refs: \fI\%#33656\fP)
  215733. .IP \(bu 2
  215734. 9603cd3c0d Merge pull request \fI\%#33656\fP from cachedout/fix_33076
  215735. .IP \(bu 2
  215736. 8259d4091f Fix indentation error in minion.py
  215737. .UNINDENT
  215738. .IP \(bu 2
  215739. \fBPR\fP \fI\%#33637\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215740. @ \fI2016\-05\-31 18:43:17 UTC\fP
  215741. .INDENT 2.0
  215742. .IP \(bu 2
  215743. b379dc57fd Merge pull request \fI\%#33637\fP from rallytime/merge\-2016.3
  215744. .IP \(bu 2
  215745. cd05d2bed1 Fix zypper test
  215746. .IP \(bu 2
  215747. 74a7b78e00 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  215748. .INDENT 2.0
  215749. .IP \(bu 2
  215750. b47182e47c Merge pull request \fI\%#33558\fP from twangboy/fix_win_servermanager
  215751. .INDENT 2.0
  215752. .IP \(bu 2
  215753. 62a6bde0ea Fix comment when already installed
  215754. .IP \(bu 2
  215755. 79bc7195dc Fix unit tests
  215756. .IP \(bu 2
  215757. 56a6f6bb83 Fix changes
  215758. .IP \(bu 2
  215759. 8ebe99ec5e Fix restart_needed
  215760. .IP \(bu 2
  215761. 6e478cbda0 Add restart needed
  215762. .IP \(bu 2
  215763. 72ebf26616 Add missing import
  215764. .IP \(bu 2
  215765. 193583be96 Use dictionary compare for changes in remove
  215766. .IP \(bu 2
  215767. 1ae7dd76c1 Use dictionary compare for changes
  215768. .UNINDENT
  215769. .IP \(bu 2
  215770. 58d89d66e3 Merge pull request \fI\%#33555\fP from cachedout/issue_33544
  215771. .INDENT 2.0
  215772. .IP \(bu 2
  215773. fe7ee7a470 Fix crashing Maintenence process
  215774. .UNINDENT
  215775. .IP \(bu 2
  215776. d052908729 Merge pull request \fI\%#33501\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  215777. .INDENT 2.0
  215778. .IP \(bu 2
  215779. eaaef25c79 lint issue fixed
  215780. .IP \(bu 2
  215781. 6b6febb211 unit tests for rpm.checksum() and zypper.download()
  215782. .UNINDENT
  215783. .IP \(bu 2
  215784. e2d0c4abb1 Merge pull request \fI\%#33513\fP from rallytime/fix\-33319
  215785. .INDENT 2.0
  215786. .IP \(bu 2
  215787. 81c1471209 Add a section to the jinja docs about escaping jinja
  215788. .UNINDENT
  215789. .IP \(bu 2
  215790. fabc15e616 Merge pull request \fI\%#33520\fP from jacobhammons/release\-notes.8
  215791. .INDENT 2.0
  215792. .IP \(bu 2
  215793. 42e358af7d Updated version numbers in the docs for the 2016.3.0 release
  215794. .UNINDENT
  215795. .UNINDENT
  215796. .IP \(bu 2
  215797. \fBPR\fP \fI\%#33638\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33613\fP to 2016.3
  215798. .IP \(bu 2
  215799. \fBPR\fP \fI\%#33613\fP: (\fI\%abednarik\fP) Updated apache_module for backward compatible. (refs: \fI\%#33638\fP)
  215800. .UNINDENT
  215801. .IP \(bu 2
  215802. \fBISSUE\fP \fI\%#33590\fP: (\fI\%morganwillcock\fP) ini_manage.options_absent: only works in test mode (TypeError: unhashable type: \(aqlist\(aq) (refs: \fI\%#33606\fP)
  215803. .IP \(bu 2
  215804. \fBPR\fP \fI\%#33606\fP: (\fI\%danslimmon\fP) Fixed ini.options_absent. Resolves \fI\%#33590\fP\&.
  215805. @ \fI2016\-05\-31 15:51:35 UTC\fP
  215806. .INDENT 2.0
  215807. .IP \(bu 2
  215808. 23506f8279 Merge pull request \fI\%#33606\fP from danslimmon/ini\-optionsabsent\-33590
  215809. .IP \(bu 2
  215810. fb13852102 Fixed ini.options_absent. Resolves \fI\%#33590\fP\&.
  215811. .UNINDENT
  215812. .IP \(bu 2
  215813. \fBISSUE\fP \fI\%#33578\fP: (\fI\%ohauer\fP) 2016.3.0 FreeBSD Failed to load grains defined in grain file disks.disks in function <function disks at 0x80cff9320>, error: (refs: \fI\%#33604\fP, \fI\%#33767\fP)
  215814. .IP \(bu 2
  215815. \fBPR\fP \fI\%#33604\fP: (\fI\%kev009\fP) Fix \fI\%#33578\fP disks grain (refs: \fI\%#33767\fP)
  215816. @ \fI2016\-05\-31 15:17:37 UTC\fP
  215817. .INDENT 2.0
  215818. .IP \(bu 2
  215819. 44e8c9e720 Merge pull request \fI\%#33604\fP from kev009/fix\-33578
  215820. .IP \(bu 2
  215821. e452ec514e Ignore cdroms in disks grain
  215822. .IP \(bu 2
  215823. 8bf0290024 Make disks grain datatyper more resilient
  215824. .IP \(bu 2
  215825. \fBPR\fP \fI\%#33631\fP: (\fI\%babilen\fP) Fix \(aqvirt\(aq state names in cloud controller tutorial
  215826. .UNINDENT
  215827. .IP \(bu 2
  215828. \fBPR\fP \fI\%#33603\fP: (\fI\%sjorge\fP) allow esky packages to be build on base64 2015Q4
  215829. @ \fI2016\-05\-29 00:36:02 UTC\fP
  215830. .INDENT 2.0
  215831. .IP \(bu 2
  215832. e9a0c9304a Merge pull request \fI\%#33603\fP from sjorge/2016.3\-smartos\-esky
  215833. .IP \(bu 2
  215834. 1064102394 add no\-wheel, instructions were failing for someone testing due to wheel being used nog producing an egg
  215835. .IP \(bu 2
  215836. c85e03ecf7 allow for newer pyzmq in esky packages
  215837. .IP \(bu 2
  215838. 1620b8c0fa allow esky packages to be build on base64 2015Q4
  215839. .UNINDENT
  215840. .IP \(bu 2
  215841. \fBISSUE\fP \fI\%#33565\fP: (\fI\%jamesp9\fP) Typo in states/virtualenv_mod.py (refs: \fI\%#33576\fP)
  215842. .IP \(bu 2
  215843. \fBPR\fP \fI\%#33576\fP: (\fI\%tomlaredo\fP) Fix \fI\%#33565\fP (typo causes invalid syntax)
  215844. @ \fI2016\-05\-27 16:46:35 UTC\fP
  215845. .INDENT 2.0
  215846. .IP \(bu 2
  215847. afd3c1b9bd Merge pull request \fI\%#33576\fP from rodacom/2016.3
  215848. .IP \(bu 2
  215849. 9f7d81e0cc Fix \fI\%#33565\fP
  215850. .UNINDENT
  215851. .IP \(bu 2
  215852. \fBISSUE\fP \fI\%#33530\fP: (\fI\%kluoto\fP) Centos7 pkg.upgrade failure on 2016.3 (refs: \fI\%#33549\fP)
  215853. .IP \(bu 2
  215854. \fBPR\fP \fI\%#33549\fP: (\fI\%thatch45\fP) Fix for \fI\%#33530\fP
  215855. @ \fI2016\-05\-26 19:26:01 UTC\fP
  215856. .INDENT 2.0
  215857. .IP \(bu 2
  215858. 71145ddda7 Merge pull request \fI\%#33549\fP from thatch45/33530
  215859. .IP \(bu 2
  215860. b906859fce Fix for \fI\%#33530\fP
  215861. .UNINDENT
  215862. .IP \(bu 2
  215863. \fBPR\fP \fI\%#33538\fP: (\fI\%anlutro\fP) Fix a KeyError if group is provided but not user in cmd states
  215864. @ \fI2016\-05\-26 17:58:05 UTC\fP
  215865. .INDENT 2.0
  215866. .IP \(bu 2
  215867. 4831c6a353 Merge pull request \fI\%#33538\fP from alprs/fix\-cmd_user_runas_deprecation_bug
  215868. .IP \(bu 2
  215869. c738a0de76 fix a KeyError if group is provided but not user
  215870. .UNINDENT
  215871. .IP \(bu 2
  215872. \fBISSUE\fP \fI\%#33543\fP: (\fI\%arthurlogilab\fP) Thorium documentation is incorrectly formated and appears partially on docs.saltstack.com (refs: \fI\%#33550\fP)
  215873. .IP \(bu 2
  215874. \fBPR\fP \fI\%#33550\fP: (\fI\%jacobhammons\fP) Fixes display of thorium docs
  215875. @ \fI2016\-05\-26 17:57:05 UTC\fP
  215876. .INDENT 2.0
  215877. .IP \(bu 2
  215878. 5287a1b8c8 Merge pull request \fI\%#33550\fP from saltstack/jacobhammons\-patch\-1
  215879. .IP \(bu 2
  215880. 65df3a6fa2 Refs \fI\%#33543\fP
  215881. .UNINDENT
  215882. .IP \(bu 2
  215883. \fBPR\fP \fI\%#33509\fP: (\fI\%twangboy\fP) Detect System Architecture for Mac Build
  215884. @ \fI2016\-05\-26 14:40:54 UTC\fP
  215885. .INDENT 2.0
  215886. .IP \(bu 2
  215887. 3a95f8a977 Merge pull request \fI\%#33509\fP from twangboy/fix_arch
  215888. .IP \(bu 2
  215889. 7844059dcf Handle system architecture
  215890. .UNINDENT
  215891. .IP \(bu 2
  215892. \fBPR\fP \fI\%#33522\fP: (\fI\%jfindlay\fP) rework modules.mac_brew.latest_version to work around brew version inconsistency
  215893. @ \fI2016\-05\-26 14:19:25 UTC\fP
  215894. .INDENT 2.0
  215895. .IP \(bu 2
  215896. 0bc881b4da Merge pull request \fI\%#33522\fP from jfindlay/mac_pkg
  215897. .IP \(bu 2
  215898. 2781377b17 modules.mac_brew: update unit tests
  215899. .IP \(bu 2
  215900. 0ed3598fc9 modules.mac_brew int tests: add latest_version test
  215901. .IP \(bu 2
  215902. 8789c2d06d modules.mac_brew int tests: add list_upgrades,info_installed
  215903. .IP \(bu 2
  215904. be381e0fc9 modules.mac_brew int tests: move decorators to class
  215905. .IP \(bu 2
  215906. fa3ec8a2bf modules.mac_brew.latest_version: refactor to use standard methods
  215907. .IP \(bu 2
  215908. 58492c29cf modules.mac_brew: add info_installed function
  215909. .IP \(bu 2
  215910. 9abf8f4832 modules.mac_brew.list_upgrades: use brew\(aqs json output
  215911. .IP \(bu 2
  215912. 77a4f5b01e modules.mac_brew: move retcode check to _call_brew
  215913. .UNINDENT
  215914. .IP \(bu 2
  215915. \fBPR\fP \fI\%#33519\fP: (\fI\%jacobhammons\fP) New doc site layout, 2016.3.0 release note known issue additions
  215916. @ \fI2016\-05\-26 13:53:21 UTC\fP
  215917. .INDENT 2.0
  215918. .IP \(bu 2
  215919. 518713f5e5 Merge pull request \fI\%#33519\fP from jacobhammons/2016.3.0rel
  215920. .IP \(bu 2
  215921. a424c38f5d New doc site layout, 2016.3.0 release note known issue additions
  215922. .UNINDENT
  215923. .IP \(bu 2
  215924. \fBPR\fP \fI\%#33508\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  215925. @ \fI2016\-05\-25 20:34:49 UTC\fP
  215926. .INDENT 2.0
  215927. .IP \(bu 2
  215928. 9199101ef2 Merge pull request \fI\%#33508\fP from rallytime/merge\-2016.3
  215929. .IP \(bu 2
  215930. a5e0141eda Merge branch \(aq2015.8\(aq into \(aq2106.3\(aq
  215931. .IP \(bu 2
  215932. 5a6b037cbd Merge pull request \fI\%#33507\fP from rallytime/merge\-2015.8
  215933. .INDENT 2.0
  215934. .IP \(bu 2
  215935. 03b0c97520 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  215936. .IP \(bu 2
  215937. 6f7fda0354 Merge pull request \fI\%#33486\fP from jtand/2015.5
  215938. .INDENT 2.0
  215939. .IP \(bu 2
  215940. d1e210fff8 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  215941. .IP \(bu 2
  215942. ee2ae0ea8a Added docstring examples to glance.image_schema and schema_get
  215943. .IP \(bu 2
  215944. 59e90064e6 modules.swift.head does not have a body. Should not be checked for a docstring right now.
  215945. .UNINDENT
  215946. .IP \(bu 2
  215947. f72ec1479b Merge pull request \fI\%#33482\fP from rallytime/pillar\-opts\-docs
  215948. .INDENT 2.0
  215949. .IP \(bu 2
  215950. 087564528d Add pillar_opts docs to master.rst
  215951. .UNINDENT
  215952. .IP \(bu 2
  215953. dc644b145d Merge pull request \fI\%#33488\fP from rallytime/fix\-18752
  215954. .INDENT 2.0
  215955. .IP \(bu 2
  215956. b0a9f4181f Add docs for the syndic_finger config
  215957. .UNINDENT
  215958. .IP \(bu 2
  215959. a4e84aa7d2 Merge pull request \fI\%#33454\fP from scubahub/2015.5
  215960. .INDENT 2.0
  215961. .IP \(bu 2
  215962. df3c0b8e78 Correct (and make consistent) determination of the test flag.
  215963. .UNINDENT
  215964. .IP \(bu 2
  215965. 3a52ace673 manage account information for pam (\fI\%#33473\fP)
  215966. .UNINDENT
  215967. .IP \(bu 2
  215968. ee76be3b0b Merge pull request \fI\%#33503\fP from rallytime/fix\-15252
  215969. .INDENT 2.0
  215970. .IP \(bu 2
  215971. cfc07f7641 Add docs about minion config file in standalone minion docs
  215972. .UNINDENT
  215973. .IP \(bu 2
  215974. e9b648e461 Merge pull request \fI\%#33474\fP from cachedout/issue_29451
  215975. .INDENT 2.0
  215976. .IP \(bu 2
  215977. aa2bac3a0d Remove debugging
  215978. .IP \(bu 2
  215979. 68d8050cb8 Fix diskusage beacon
  215980. .UNINDENT
  215981. .IP \(bu 2
  215982. 3bfb6bf719 Merge pull request \fI\%#33465\fP from meaksh/check\-if\-job\-returns\-successfully\-2015.8
  215983. .INDENT 2.0
  215984. .IP \(bu 2
  215985. 9deb70fd8e jobs.exit_success() now works parsing the results of jobs.lookup_id()
  215986. .IP \(bu 2
  215987. 7ba40c4f31 jobs.exit_success allow to check if a job has executed and exit successfully
  215988. .UNINDENT
  215989. .IP \(bu 2
  215990. 70eb7b66f3 Merge pull request \fI\%#33487\fP from jtand/glance_doc_fixes
  215991. .INDENT 2.0
  215992. .IP \(bu 2
  215993. 0b1cae05d9 Added docstring examples to glance methods and nova.list
  215994. .IP \(bu 2
  215995. ebf1256545 Don\(aqt need to check swift.head due to it having no body
  215996. .UNINDENT
  215997. .IP \(bu 2
  215998. 56ea979916 Merge pull request \fI\%#33481\fP from rallytime/fix\-33423
  215999. .INDENT 2.0
  216000. .IP \(bu 2
  216001. 7fd3e8f361 Fix docs about etcd config options and add pillar_opts doc
  216002. .UNINDENT
  216003. .IP \(bu 2
  216004. 2394cdc4bf Merge pull request \fI\%#33490\fP from rallytime/fix\-16319
  216005. .INDENT 2.0
  216006. .IP \(bu 2
  216007. 0c5548f9d1 Document the postgres.psql_query function
  216008. .UNINDENT
  216009. .IP \(bu 2
  216010. ede232f0f1 Merge pull request \fI\%#33480\fP from jfindlay/service_doc
  216011. .INDENT 2.0
  216012. .IP \(bu 2
  216013. 29c00a1b1b states.service: clarify function description language
  216014. .IP \(bu 2
  216015. 6a9ae09e79 states.service.__virtual__: add load fail reason
  216016. .UNINDENT
  216017. .IP \(bu 2
  216018. 4f96cc1f54 Return full pending computer name (\fI\%#33483\fP)
  216019. .IP \(bu 2
  216020. a89be5e9d4 Use six.string_types in jobs runner (\fI\%#33499\fP)
  216021. .IP \(bu 2
  216022. 2e24a04565 Merge pull request \fI\%#33491\fP from BlaineAtAffirm/2015.8
  216023. .INDENT 2.0
  216024. .IP \(bu 2
  216025. 7599b18995 fix jobs.list_jobs failing with search_target
  216026. .UNINDENT
  216027. .IP \(bu 2
  216028. 1861af427e Merge pull request \fI\%#33478\fP from rallytime/bp\-32484
  216029. .INDENT 2.0
  216030. .IP \(bu 2
  216031. 042f17efa4 Only unsub if we have a jid
  216032. .UNINDENT
  216033. .IP \(bu 2
  216034. b8154b678e Merge pull request \fI\%#33457\fP from rallytime/doc\-formatting
  216035. .INDENT 2.0
  216036. .IP \(bu 2
  216037. 82f8f3efff Make doc formatting consistent and use correct versionadded
  216038. .UNINDENT
  216039. .IP \(bu 2
  216040. 1dfa95651c Don\(aqt allow a "repo" kwarg for pkgrepo.managed (\fI\%#33477\fP)
  216041. .IP \(bu 2
  216042. b4071b07f1 Allow for config entry to be a list in a dict for beacons (\fI\%#33476\fP)
  216043. .IP \(bu 2
  216044. 9f56ab4c45 Merge pull request \fI\%#33469\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  216045. .INDENT 2.0
  216046. .IP \(bu 2
  216047. a65071a6d1 simpler rpm.checksum function
  216048. .IP \(bu 2
  216049. 80fe303e38 Renamed check_sig to checksum and some refactoring
  216050. .IP \(bu 2
  216051. d56e3f4258 bugfix: showing errors when a package download fails using zypper pkg.download
  216052. .IP \(bu 2
  216053. 8a21b9149e check the signature of downloaded RPM files
  216054. .UNINDENT
  216055. .IP \(bu 2
  216056. 00f9090928 Add docs about PyYAML\(aqs 1024 character limitations for simple keys (\fI\%#33459\fP)
  216057. .IP \(bu 2
  216058. 3b12f396b4 Prevent several minion processes on the same machine (\fI\%#33464\fP)
  216059. .IP \(bu 2
  216060. c8b4f338d8 Make \-\-gpg\-auto\-import\-keys a global param when calling zypper (\fI\%#33432\fP)
  216061. .IP \(bu 2
  216062. 0c4e38ced4 Fix the saltutil.wheel function and add integration tests (\fI\%#33414\fP)
  216063. .UNINDENT
  216064. .IP \(bu 2
  216065. \fBPR\fP \fI\%#33505\fP: (\fI\%twangboy\fP) Fix build script where pip didn\(aqt work
  216066. @ \fI2016\-05\-25 18:15:27 UTC\fP
  216067. .INDENT 2.0
  216068. .IP \(bu 2
  216069. a43ffadcb7 Merge pull request \fI\%#33505\fP from twangboy/fix_build_script
  216070. .IP \(bu 2
  216071. 7d78e5d612 Fix build script where pip wouldn\(aqt work
  216072. .UNINDENT
  216073. .IP \(bu 2
  216074. \fBPR\fP \fI\%#33076\fP: (\fI\%cachedout\fP) Avoid second grains load on windows multiprocessing (refs: \fI\%#33656\fP)
  216075. @ \fI2016\-05\-25 17:10:06 UTC\fP
  216076. .INDENT 2.0
  216077. .IP \(bu 2
  216078. 4cf40da7d7 Merge pull request \fI\%#33076\fP from cachedout/win_grains
  216079. .IP \(bu 2
  216080. dab9825c88 Fix indentation error
  216081. .IP \(bu 2
  216082. b14e2cce9e Avoid second grains load on windows multiprocessing
  216083. .UNINDENT
  216084. .UNINDENT
  216085. .SS Salt 2016.3.2 Release Notes
  216086. .sp
  216087. Version 2016.3.2 is a bugfix release for 2016.3.0\&.
  216088. .SS Statistics
  216089. .INDENT 0.0
  216090. .IP \(bu 2
  216091. Total Merges: \fB200\fP
  216092. .IP \(bu 2
  216093. Total Issue References: \fB66\fP
  216094. .IP \(bu 2
  216095. Total PR References: \fB177\fP
  216096. .IP \(bu 2
  216097. Contributors: \fB52\fP (\fI\%Ch3LL\fP, \fI\%DarkKnightCZ\fP, \fI\%DmitryKuzmenko\fP, \fI\%Inveracity\fP, \fI\%abalashov\fP, \fI\%abednarik\fP, \fI\%adelcast\fP, \fI\%ajacoutot\fP, \fI\%amendlik\fP, \fI\%anlutro\fP, \fI\%aphor\fP, \fI\%artxki\fP, \fI\%bbinet\fP, \fI\%bensherman\fP, \fI\%cachedout\fP, \fI\%christoe\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%dmurphy18\fP, \fI\%dongweiming\fP, \fI\%eliasp\fP, \fI\%eradman\fP, \fI\%farcaller\fP, \fI\%garethgreenaway\fP, \fI\%glomium\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jacobhammons\fP, \fI\%jacobweinstock\fP, \fI\%jfindlay\fP, \fI\%jmacfar\fP, \fI\%jnhmcknight\fP, \fI\%justinta\fP, \fI\%l2ol33rt\fP, \fI\%lomeroe\fP, \fI\%meaksh\fP, \fI\%nulfox\fP, \fI\%opdude\fP, \fI\%peterdemin\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%secumod\fP, \fI\%sjmh\fP, \fI\%sjorge\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%themalkolm\fP, \fI\%ticosax\fP, \fI\%tmehlinger\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%whiteinge\fP)
  216098. .UNINDENT
  216099. .SS Returner Changes
  216100. .INDENT 0.0
  216101. .IP \(bu 2
  216102. Any returner which implements a \fBsave_load\fP function is now required to
  216103. accept a \fBminions\fP keyword argument. All returners which ship with Salt
  216104. have been modified to do so.
  216105. .UNINDENT
  216106. .SS Changelog for v2016.3.1..v2016.3.2
  216107. .sp
  216108. \fIGenerated at: 2018\-05\-27 04:37:58 UTC\fP
  216109. .INDENT 0.0
  216110. .IP \(bu 2
  216111. \fBPR\fP \fI\%#34988\fP: (\fI\%rallytime\fP) Update release notes with new changes
  216112. @ \fI2016\-07\-27 15:54:16 UTC\fP
  216113. .INDENT 2.0
  216114. .IP \(bu 2
  216115. 721e6dcce8 Merge pull request \fI\%#34988\fP from rallytime/release\-notes\-update
  216116. .IP \(bu 2
  216117. a2aae987a6 Update release notes with new changes
  216118. .UNINDENT
  216119. .IP \(bu 2
  216120. \fBPR\fP \fI\%#34946\fP: (\fI\%anlutro\fP) Fix virtualenv behavior when requirements files are in subdirectories
  216121. @ \fI2016\-07\-27 14:43:27 UTC\fP
  216122. .INDENT 2.0
  216123. .IP \(bu 2
  216124. d63ac1671c Merge pull request \fI\%#34946\fP from alprs/fix\-venv_reqs_subdir
  216125. .IP \(bu 2
  216126. f773d63cbb normalize requirements path to be absolute
  216127. .IP \(bu 2
  216128. bdec73bb03 remove unnecessary os.path.basename logic
  216129. .UNINDENT
  216130. .IP \(bu 2
  216131. \fBPR\fP \fI\%#34957\fP: (\fI\%sjmh\fP) Don\(aqt fall through to checking auth entries
  216132. @ \fI2016\-07\-26 22:16:17 UTC\fP
  216133. .INDENT 2.0
  216134. .IP \(bu 2
  216135. f765faa3aa Merge pull request \fI\%#34957\fP from sjmh/2016.3
  216136. .IP \(bu 2
  216137. 0095dbe530 Don\(aqt fall through to checking auth entries
  216138. .UNINDENT
  216139. .IP \(bu 2
  216140. \fBPR\fP \fI\%#34971\fP: (\fI\%cachedout\fP) Increase timeout for grains test
  216141. @ \fI2016\-07\-26 22:11:29 UTC\fP
  216142. .INDENT 2.0
  216143. .IP \(bu 2
  216144. 2d3b95dec9 Merge pull request \fI\%#34971\fP from cachedout/increase_timeout_grains_test
  216145. .IP \(bu 2
  216146. 82d271b43a Increase timeout for grains test
  216147. .UNINDENT
  216148. .IP \(bu 2
  216149. \fBISSUE\fP \fI\%saltstack/salt#34873\fP: (\fI\%Cashwini\fP) Scheduler on master does not recognize the date strings supported by python dateutil (refs: \fI\%#34951\fP)
  216150. .IP \(bu 2
  216151. \fBISSUE\fP \fI\%#34873\fP: (\fI\%Cashwini\fP) Scheduler on master does not recognize the date strings supported by python dateutil (refs: \fI\%#34951\fP)
  216152. .IP \(bu 2
  216153. \fBPR\fP \fI\%#34951\fP: (\fI\%vutny\fP) Fix \fI\%#34873\fP
  216154. @ \fI2016\-07\-26 17:07:48 UTC\fP
  216155. .INDENT 2.0
  216156. .IP \(bu 2
  216157. f23e8c525e Merge pull request \fI\%#34951\fP from vutny/fix\-schedule\-dateutil
  216158. .IP \(bu 2
  216159. 0faa490991 Fix job scheduling using \fBwhen\fP parameter (by \fBpython\-dateutil\fP)
  216160. .UNINDENT
  216161. .IP \(bu 2
  216162. \fBPR\fP \fI\%#34935\fP: (\fI\%rallytime\fP) Avoid UnboundLocalError in beacons module
  216163. @ \fI2016\-07\-26 17:01:23 UTC\fP
  216164. .INDENT 2.0
  216165. .IP \(bu 2
  216166. \fBPR\fP \fI\%#34894\fP: (\fI\%rallytime\fP) [develop] Merge forward from 2016.3 to develop (refs: \fI\%#34935\fP)
  216167. .IP \(bu 2
  216168. deb1331601 Merge pull request \fI\%#34935\fP from rallytime/beacons\-mod\-cleanup
  216169. .IP \(bu 2
  216170. 97a36ef367 Avoid UnboundLocalError in beacons module
  216171. .IP \(bu 2
  216172. \fBPR\fP \fI\%#34956\fP: (\fI\%cachedout\fP) Increase all run_script timeouts to 30s
  216173. .UNINDENT
  216174. .IP \(bu 2
  216175. \fBPR\fP \fI\%#34933\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216176. @ \fI2016\-07\-25 22:09:05 UTC\fP
  216177. .INDENT 2.0
  216178. .IP \(bu 2
  216179. 5d194f2d17 Merge pull request \fI\%#34933\fP from rallytime/merge\-2016.3
  216180. .IP \(bu 2
  216181. 8b295fe4ea Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216182. .IP \(bu 2
  216183. ec8fc058d4 Master performance improvement (\fI\%#34916\fP)
  216184. .IP \(bu 2
  216185. 34dc2fd792 Merge pull request \fI\%#34911\fP from cachedout/backport_34906
  216186. .INDENT 2.0
  216187. .IP \(bu 2
  216188. 8becec2f4f Backport \fI\%#34906\fP
  216189. .UNINDENT
  216190. .IP \(bu 2
  216191. 6ccc27f697 Merge pull request \fI\%#34898\fP from hrumph/list_upgrades_refresh
  216192. .INDENT 2.0
  216193. .IP \(bu 2
  216194. acd4b1a23b Fixes \fI\%#33620\fP
  216195. .UNINDENT
  216196. .IP \(bu 2
  216197. 5c13ee0e72 Merge pull request \fI\%#34606\fP from isbm/isbm\-config\-reading\-exit\-2015.8
  216198. .INDENT 2.0
  216199. .IP \(bu 2
  216200. 5f5b802c0c Add option to master config reader on ignoring system exit for wrong configuration
  216201. .IP \(bu 2
  216202. 6fc677f177 Ignore minion config errors everywhere but the minion itself
  216203. .IP \(bu 2
  216204. 8699194647 Remove deprecation: BaseException.message deprecated as of 2.6
  216205. .IP \(bu 2
  216206. 0e65cfec91 Fix lint: E8302
  216207. .IP \(bu 2
  216208. 67faa56bf1 Use Salt default exit codes instead of hard\-coded values
  216209. .IP \(bu 2
  216210. a84556e596 Exit immediately on configuration error
  216211. .IP \(bu 2
  216212. 43d965907c Raise an exception on any found wrong configuration file
  216213. .IP \(bu 2
  216214. 30ed728d05 Cover exception handling in the utils.parsers
  216215. .IP \(bu 2
  216216. 5e8c0c6bdb Introduce configuration error exception
  216217. .UNINDENT
  216218. .UNINDENT
  216219. .IP \(bu 2
  216220. \fBISSUE\fP \fI\%#34760\fP: (\fI\%nate\-byrnes\fP) XenServer 7 needs correct provider setup for services. (refs: \fI\%#34915\fP)
  216221. .INDENT 2.0
  216222. .IP \(bu 2
  216223. \fBPR\fP \fI\%#34915\fP: (\fI\%abednarik\fP) Update service_rh provider to exclude XenServer >= 7.
  216224. .UNINDENT
  216225. .IP \(bu 2
  216226. \fBPR\fP \fI\%#34926\fP: (\fI\%rallytime\fP) Lint \fI\%#34923\fP
  216227. @ \fI2016\-07\-25 14:53:42 UTC\fP
  216228. .INDENT 2.0
  216229. .IP \(bu 2
  216230. \fBPR\fP \fI\%#34923\fP: (\fI\%eliasp\fP) Handle exception when no Slack API key was provided (refs: \fI\%#34926\fP)
  216231. .IP \(bu 2
  216232. a7e7ec6d25 Merge pull request \fI\%#34926\fP from rallytime/lint\-34923
  216233. .IP \(bu 2
  216234. b3514abf1b Lint fixes for \fI\%#34923\fP
  216235. .IP \(bu 2
  216236. 69afcc4060 Handle exception when no Slack API key was provided
  216237. .UNINDENT
  216238. .IP \(bu 2
  216239. \fBISSUE\fP \fI\%saltstack/salt#34908\fP: (\fI\%Ch3LL\fP) Cannot start proxy minion due to keyerror in grains (refs: \fI\%#34910\fP)
  216240. .IP \(bu 2
  216241. \fBPR\fP \fI\%#34910\fP: (\fI\%cachedout\fP) Fix grains error on proxy minions
  216242. @ \fI2016\-07\-22 23:05:46 UTC\fP
  216243. .INDENT 2.0
  216244. .IP \(bu 2
  216245. c663c8bb5b Merge pull request \fI\%#34910\fP from cachedout/proxy_grains
  216246. .IP \(bu 2
  216247. 0970ebace8 Fix grains error on proxy minions
  216248. .IP \(bu 2
  216249. \fBPR\fP \fI\%#34864\fP: (\fI\%jmacfar\fP) Check for version in list of installed versions
  216250. .UNINDENT
  216251. .IP \(bu 2
  216252. \fBISSUE\fP \fI\%saltstack/salt#34816\fP: (\fI\%msdogado\fP) VirtuozzoLinux not realized as RedHat by pkg (refs: #\(gasaltstack/salt\(ga#34878\(ga_\(ga_, \fI\%#34878\fP)
  216253. .INDENT 2.0
  216254. .IP \(bu 2
  216255. \fBPR\fP \fI\%saltstack/salt#34878\fP: (\fI\%abednarik\fP) Add VirtuozzoLinux is yumpkg enable list. (refs: \fI\%#34902\fP)
  216256. .IP \(bu 2
  216257. \fBPR\fP \fI\%#34902\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34878\fP to 2016.3
  216258. .IP \(bu 2
  216259. \fBPR\fP \fI\%#34878\fP: (\fI\%abednarik\fP) Add VirtuozzoLinux is yumpkg enable list. (refs: \fI\%#34902\fP)
  216260. .UNINDENT
  216261. .IP \(bu 2
  216262. \fBISSUE\fP \fI\%saltstack/salt#34893\fP: (\fI\%msdogado\fP) rpm VirtuozzoLinux not working (refs: \fI\%#34901\fP)
  216263. .IP \(bu 2
  216264. \fBPR\fP \fI\%#34901\fP: (\fI\%rallytime\fP) Add VirtuozzoLinux to the list of enabled distros for rpm.py
  216265. @ \fI2016\-07\-22 22:23:48 UTC\fP
  216266. .INDENT 2.0
  216267. .IP \(bu 2
  216268. ad640cc046 Merge pull request \fI\%#34901\fP from rallytime/fix\-34893
  216269. .IP \(bu 2
  216270. 45e2ce10a4 Add VirtuozzoLinux to the list of enabled distros for rpm.py
  216271. .UNINDENT
  216272. .IP \(bu 2
  216273. \fBISSUE\fP \fI\%saltstack/salt#34890\fP: (\fI\%msdogado\fP) VirtuozzoLinux enabling services not working (refs: \fI\%#34900\fP)
  216274. .IP \(bu 2
  216275. \fBPR\fP \fI\%#34900\fP: (\fI\%rallytime\fP) Add VirtuozzoLinux to enabled platforms list in rh_service.py
  216276. @ \fI2016\-07\-22 22:21:20 UTC\fP
  216277. .INDENT 2.0
  216278. .IP \(bu 2
  216279. 5aa532f98b Merge pull request \fI\%#34900\fP from rallytime/fix\-34890
  216280. .IP \(bu 2
  216281. 12824487cc Add VirtuozzoLinux to enabled platforms list in rh_service.py
  216282. .UNINDENT
  216283. .IP \(bu 2
  216284. \fBPR\fP \fI\%#34887\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216285. @ \fI2016\-07\-22 18:04:47 UTC\fP
  216286. .INDENT 2.0
  216287. .IP \(bu 2
  216288. ebebfa647f Merge pull request \fI\%#34887\fP from rallytime/merge\-2016.3
  216289. .IP \(bu 2
  216290. 109b368d19 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216291. .INDENT 2.0
  216292. .IP \(bu 2
  216293. fb223e1bd4 Invalidate the target cache very quickly (\fI\%#34862\fP)
  216294. .IP \(bu 2
  216295. 1ca1367289 Fail git.latest states with uncommitted changes when force_reset=False (\fI\%#34869\fP)
  216296. .IP \(bu 2
  216297. 4f4381e5b9 Merge pull request \fI\%#34859\fP from cachedout/fix_wheel_test
  216298. .INDENT 2.0
  216299. .IP \(bu 2
  216300. b4be66dedf Fix wheel test
  216301. .UNINDENT
  216302. .UNINDENT
  216303. .UNINDENT
  216304. .IP \(bu 2
  216305. \fBPR\fP \fI\%#34632\fP: (\fI\%eliasp\fP) Try to create the log directory when not present yet
  216306. @ \fI2016\-07\-22 17:34:31 UTC\fP
  216307. .INDENT 2.0
  216308. .IP \(bu 2
  216309. eba34f7f4c Merge pull request \fI\%#34632\fP from eliasp/2016.3\-create\-logdir\-when\-needed
  216310. .IP \(bu 2
  216311. 9c89470661 Try to create the log directory when not present yet
  216312. .UNINDENT
  216313. .IP \(bu 2
  216314. \fBPR\fP \fI\%#34854\fP: (\fI\%rallytime\fP) Remove string_types import from state compiler
  216315. @ \fI2016\-07\-22 17:20:15 UTC\fP
  216316. .INDENT 2.0
  216317. .IP \(bu 2
  216318. 965f517889 Merge pull request \fI\%#34854\fP from rallytime/cleanup\-state\-imports
  216319. .IP \(bu 2
  216320. 73d3075ce9 Remove string_types import from state compiler
  216321. .UNINDENT
  216322. .IP \(bu 2
  216323. \fBISSUE\fP \fI\%saltstack/salt#26171\fP: (\fI\%HG00\fP) salt\-ssh from python2.6 master to python2.7 minion fails on "from _elementtree import *" (refs: \fI\%#34865\fP)
  216324. .IP \(bu 2
  216325. \fBPR\fP \fI\%#34865\fP: (\fI\%thatch45\fP) This needs discussion, since this breaks SUSE
  216326. @ \fI2016\-07\-22 17:19:34 UTC\fP
  216327. .INDENT 2.0
  216328. .IP \(bu 2
  216329. 584d7606d4 Merge pull request \fI\%#34865\fP from thatch45/break_suse
  216330. .IP \(bu 2
  216331. 6c5f363921 This needs discussion, since this breaks SUSE
  216332. .UNINDENT
  216333. .IP \(bu 2
  216334. \fBPR\fP \fI\%#34858\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216335. @ \fI2016\-07\-21 21:01:17 UTC\fP
  216336. .INDENT 2.0
  216337. .IP \(bu 2
  216338. aaede31f66 Merge pull request \fI\%#34858\fP from rallytime/merge\-2016.3
  216339. .IP \(bu 2
  216340. 9227c3dd26 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216341. .IP \(bu 2
  216342. acc9e31c02 Merge pull request \fI\%#34822\fP from thatch45/ssh_fixes
  216343. .INDENT 2.0
  216344. .IP \(bu 2
  216345. b5de492143 fix \fI\%#34798\fP
  216346. .IP \(bu 2
  216347. 5ad6bd7307 fix \fI\%#34796\fP
  216348. .UNINDENT
  216349. .IP \(bu 2
  216350. 5d91139bc9 Merge pull request \fI\%#34847\fP from cachedout/pwall
  216351. .INDENT 2.0
  216352. .IP \(bu 2
  216353. 2c8298dc6e Profile logging
  216354. .IP \(bu 2
  216355. 3affafa2e9 Add an option to skip the verification of client_acl users
  216356. .UNINDENT
  216357. .IP \(bu 2
  216358. 07d1d36653 Merge pull request \fI\%#34827\fP from thatch45/34691
  216359. .INDENT 2.0
  216360. .IP \(bu 2
  216361. 1ccf35eca4 fix beacon list to include all beacons being processed
  216362. .UNINDENT
  216363. .IP \(bu 2
  216364. b375720251 Merge pull request \fI\%#34833\fP from rallytime/bp\-28521
  216365. .INDENT 2.0
  216366. .IP \(bu 2
  216367. e50a6783ce SPM: packaging doesn\(aqt work in Python 2.6. Fixed.
  216368. .UNINDENT
  216369. .IP \(bu 2
  216370. 042646582f Merge pull request \fI\%#34823\fP from rallytime/bp\-25276
  216371. .INDENT 2.0
  216372. .IP \(bu 2
  216373. a028796eff copy spm.1 man page during setup Refs \fI\%#25213\fP
  216374. .UNINDENT
  216375. .IP \(bu 2
  216376. 6c35d88268 Fix \fI\%#34648\fP (\fI\%#34828\fP)
  216377. .UNINDENT
  216378. .IP \(bu 2
  216379. \fBPR\fP \fI\%#34852\fP: (\fI\%rallytime\fP) Skip GCE unit tests \- causes test suite to hang
  216380. @ \fI2016\-07\-21 17:52:31 UTC\fP
  216381. .INDENT 2.0
  216382. .IP \(bu 2
  216383. b3d8143d36 Merge pull request \fI\%#34852\fP from rallytime/skip\-gce\-tests
  216384. .IP \(bu 2
  216385. 15b4f5a8b3 Skip GCE unit tests \- causes test suite to hang
  216386. .IP \(bu 2
  216387. \fBPR\fP \fI\%#34850\fP: (\fI\%rallytime\fP) Update 2016.3.2 release notes
  216388. .UNINDENT
  216389. .IP \(bu 2
  216390. \fBISSUE\fP \fI\%#34215\fP: (\fI\%rvora\fP) salt\-master crashes every few days (refs: \fI\%#34683\fP)
  216391. .IP \(bu 2
  216392. \fBPR\fP \fI\%#34844\fP: (\fI\%vutny\fP) Fix getting total available memory without \fIpsutil\fP installed
  216393. @ \fI2016\-07\-21 17:12:38 UTC\fP
  216394. .INDENT 2.0
  216395. .IP \(bu 2
  216396. \fBPR\fP \fI\%#34683\fP: (\fI\%cachedout\fP) Fix publisher leak (refs: \fI\%#34844\fP)
  216397. .IP \(bu 2
  216398. 650674d14a Merge pull request \fI\%#34844\fP from vutny/fix\-grains\-load\-in\-config\-init
  216399. .IP \(bu 2
  216400. 4dc7827020 Fix comment in master config, prevents the service from starting
  216401. .IP \(bu 2
  216402. b4cfebb107 Fix Salt failure after merge of \fI\%#34683\fP
  216403. .IP \(bu 2
  216404. \fBPR\fP \fI\%#34848\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.2
  216405. .UNINDENT
  216406. .IP \(bu 2
  216407. \fBISSUE\fP \fI\%saltstack/salt#34345\fP: (\fI\%edgan\fP) Salt master mode\(aqs and salt\-ssh mode\(aqs top.sls processing aren\(aqt the same (refs: \fI\%#34837\fP)
  216408. .IP \(bu 2
  216409. \fBISSUE\fP \fI\%#34345\fP: (\fI\%edgan\fP) Salt master mode\(aqs and salt\-ssh mode\(aqs top.sls processing aren\(aqt the same (refs: \fI\%#34837\fP)
  216410. .IP \(bu 2
  216411. \fBPR\fP \fI\%#34837\fP: (\fI\%thatch45\fP) Fix \fI\%#34345\fP
  216412. @ \fI2016\-07\-21 14:36:15 UTC\fP
  216413. .INDENT 2.0
  216414. .IP \(bu 2
  216415. 52a95b2ea3 Merge pull request \fI\%#34837\fP from thatch45/34345
  216416. .IP \(bu 2
  216417. 1e8c585cd3 Fix \fI\%#34345\fP
  216418. .UNINDENT
  216419. .IP \(bu 2
  216420. \fBISSUE\fP \fI\%saltstack/salt#32591\fP: (\fI\%AndrewPashkin\fP) "RuntimeError: maximum recursion depth exceeded" in salt/utils/lazy.py, using Salt\-SSH (refs: \fI\%#34838\fP)
  216421. .IP \(bu 2
  216422. \fBPR\fP \fI\%#34838\fP: (\fI\%thatch45\fP) Check if a valid value is passed to unlyif/unless
  216423. @ \fI2016\-07\-21 14:34:29 UTC\fP
  216424. .INDENT 2.0
  216425. .IP \(bu 2
  216426. 96450ac74d Merge pull request \fI\%#34838\fP from thatch45/unless_valid
  216427. .IP \(bu 2
  216428. 1f34299a84 Check if a valid value is passed to unlyif/unless
  216429. .UNINDENT
  216430. .IP \(bu 2
  216431. \fBISSUE\fP \fI\%saltstack/salt#32525\fP: (\fI\%anlutro\fP) state.show_low_sls not working in salt\-ssh (refs: \fI\%#34840\fP)
  216432. .IP \(bu 2
  216433. \fBPR\fP \fI\%#34840\fP: (\fI\%thatch45\fP) update the state wrapper to include show_low_sls
  216434. @ \fI2016\-07\-21 14:34:02 UTC\fP
  216435. .INDENT 2.0
  216436. .IP \(bu 2
  216437. 3a5ef86d58 Merge pull request \fI\%#34840\fP from thatch45/state_update_ssh
  216438. .IP \(bu 2
  216439. 77dce3920c update the state wrapper to include show_low_sls
  216440. .UNINDENT
  216441. .IP \(bu 2
  216442. \fBISSUE\fP \fI\%#34762\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev (refs: \fI\%#34791\fP, \fI\%#34770\fP)
  216443. .IP \(bu 2
  216444. \fBPR\fP \fI\%#34842\fP: (\fI\%sjorge\fP) 2016.3 zpool cleanup and fixes
  216445. @ \fI2016\-07\-21 14:32:56 UTC\fP
  216446. .INDENT 2.0
  216447. .IP \(bu 2
  216448. \fBPR\fP \fI\%#34770\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev \fI\%#34762\fP (refs: \fI\%#34842\fP)
  216449. .IP \(bu 2
  216450. 5f67318fd7 Merge pull request \fI\%#34842\fP from sjorge/2016.3\-zpool\-simplifaction
  216451. .IP \(bu 2
  216452. a7ff9524b0 drop parsing of vdevs, error passthrough from zpool cli
  216453. .IP \(bu 2
  216454. 25d6c8139b eliminate hardcoded vdev type from zpool state
  216455. .IP \(bu 2
  216456. 47b8dc946c salt.states.zpool \- work with updates exec module
  216457. .IP \(bu 2
  216458. a5a98845c7 salt.module.zpool \- fix bug with properties on/off being parsed as true/false
  216459. .IP \(bu 2
  216460. dd64494a19 salt.modules.zpool \- drop vdev types to make it more future proof, fallback to zpool cli error messages
  216461. .IP \(bu 2
  216462. \fBPR\fP \fI\%#34825\fP: (\fI\%thatch45\fP) keep this beacon from stack tracing at the loader
  216463. .UNINDENT
  216464. .IP \(bu 2
  216465. \fBPR\fP \fI\%#34824\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216466. @ \fI2016\-07\-20 20:54:35 UTC\fP
  216467. .INDENT 2.0
  216468. .IP \(bu 2
  216469. b9db0b0036 Merge pull request \fI\%#34824\fP from rallytime/merge\-2016.3
  216470. .IP \(bu 2
  216471. 094731f4b6 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216472. .IP \(bu 2
  216473. 98fa4a404e Merge pull request \fI\%#34818\fP from jtand/mysql_state_integration_test_cleanup
  216474. .INDENT 2.0
  216475. .IP \(bu 2
  216476. 9abb6f91bb Skip mysql state test if mysqladmin is not available
  216477. .UNINDENT
  216478. .IP \(bu 2
  216479. 6636f2b449 Merge pull request \fI\%#34803\fP from junovitch/issue_24744
  216480. .INDENT 2.0
  216481. .IP \(bu 2
  216482. 64c850410f salt/state.py: set \(aqchunk[\(aqorder\(aq] = 0\(aq with \(aqorder: first\(aq; fixes \fI\%#24744\fP
  216483. .UNINDENT
  216484. .UNINDENT
  216485. .IP \(bu 2
  216486. \fBPR\fP \fI\%#34670\fP: (\fI\%isbm\fP) Add "osmajorrelease" grain (2016.3)
  216487. @ \fI2016\-07\-20 14:39:38 UTC\fP
  216488. .INDENT 2.0
  216489. .IP \(bu 2
  216490. 62ef8fdb35 Merge pull request \fI\%#34670\fP from isbm/isbm\-osmajorrelease\-grain\-suse
  216491. .IP \(bu 2
  216492. a6bcbd615f Lintfix PEP8: E262
  216493. .IP \(bu 2
  216494. 110a422d5a Keep osmajorrelease as a string type for 2016.3 release
  216495. .IP \(bu 2
  216496. 208fd33b48 Add unit test for osmajorrelease grain
  216497. .IP \(bu 2
  216498. 9a6b2175c6 Implement "osmajorrelease" by killing spaghetti
  216499. .UNINDENT
  216500. .IP \(bu 2
  216501. \fBISSUE\fP \fI\%#34215\fP: (\fI\%rvora\fP) salt\-master crashes every few days (refs: \fI\%#34683\fP)
  216502. .IP \(bu 2
  216503. \fBPR\fP \fI\%#34683\fP: (\fI\%cachedout\fP) Fix publisher leak (refs: \fI\%#34844\fP)
  216504. @ \fI2016\-07\-20 13:57:10 UTC\fP
  216505. .INDENT 2.0
  216506. .IP \(bu 2
  216507. 6ca9ffa7c7 Merge pull request \fI\%#34683\fP from cachedout/issue_34215
  216508. .IP \(bu 2
  216509. ccd53e9214 Lint
  216510. .IP \(bu 2
  216511. 76eb46fb08 Document master setting
  216512. .IP \(bu 2
  216513. 0dfe3aaf31 Set up dynamic config
  216514. .IP \(bu 2
  216515. 3cfb82cdd4 Fix silly error
  216516. .IP \(bu 2
  216517. 35a845fff5 Only set IPC with write buffer if set
  216518. .IP \(bu 2
  216519. b2d636017d Add IPC to minion opts
  216520. .IP \(bu 2
  216521. 2c1c92c48e Lint
  216522. .IP \(bu 2
  216523. c4395ae84e Dial down default buffer and apply to just write buffer
  216524. .IP \(bu 2
  216525. 3e3e2a997e Typo
  216526. .IP \(bu 2
  216527. 78f6251c09 Correct issues with config
  216528. .IP \(bu 2
  216529. c138cc03e3 Configuration settings for IPC buffers
  216530. .UNINDENT
  216531. .IP \(bu 2
  216532. \fBISSUE\fP \fI\%#34762\fP: (\fI\%aphor\fP) zpool state module needs support for disk vdev (refs: \fI\%#34791\fP, \fI\%#34770\fP)
  216533. .IP \(bu 2
  216534. \fBPR\fP \fI\%#34791\fP: (\fI\%sjorge\fP) salt.state.zpool tweaks
  216535. @ \fI2016\-07\-19 20:56:47 UTC\fP
  216536. .INDENT 2.0
  216537. .IP \(bu 2
  216538. 49ab3fd2b5 Merge pull request \fI\%#34791\fP from sjorge/zpool\-state\-tweaks
  216539. .IP \(bu 2
  216540. d48c6d2dcb accomidate use of "fake" vdev type disk, this behavior may be broken later if a disk vdev ever gets added to the cli tools. improve documentation explaining how to create a striped pool without the "fake" vdev type
  216541. .UNINDENT
  216542. .IP \(bu 2
  216543. \fBPR\fP \fI\%#34784\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216544. @ \fI2016\-07\-19 16:30:18 UTC\fP
  216545. .INDENT 2.0
  216546. .IP \(bu 2
  216547. 1617a7058a Merge pull request \fI\%#34784\fP from rallytime/merge\-2016.3
  216548. .IP \(bu 2
  216549. 3e032dc397 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216550. .IP \(bu 2
  216551. 58021035a9 Merge pull request \fI\%#34773\fP from randomed/mysql\-returner\-startup/2015.8
  216552. .INDENT 2.0
  216553. .IP \(bu 2
  216554. 0cd55eb7d7 Add jid=req handling for mysql returner. It should also store the return jid into the jid list table.
  216555. .UNINDENT
  216556. .IP \(bu 2
  216557. 10a1af9949 Remove unnedeed config test (\fI\%#34751\fP)
  216558. .IP \(bu 2
  216559. f19caac8e4 Merge pull request \fI\%#34754\fP from cachedout/disable_mid_test
  216560. .INDENT 2.0
  216561. .IP \(bu 2
  216562. 46901c6e65 Disable test
  216563. .UNINDENT
  216564. .IP \(bu 2
  216565. 81f29006f2 Merge pull request \fI\%#34741\fP from rallytime/bp\-34726
  216566. .INDENT 2.0
  216567. .IP \(bu 2
  216568. d949110993 Loop over updated keys in non recursive update
  216569. .UNINDENT
  216570. .UNINDENT
  216571. .IP \(bu 2
  216572. \fBISSUE\fP \fI\%saltstack/salt#34630\fP: (\fI\%bdrung\fP) Spelling errors (refs: \fI\%#34756\fP, \fI\%#34722\fP)
  216573. .IP \(bu 2
  216574. \fBISSUE\fP \fI\%saltstack/salt#33923\fP: (\fI\%pavankumar2203\fP) Salt module certutil install doesnt work (refs: \fI\%#34756\fP)
  216575. .INDENT 2.0
  216576. .IP \(bu 2
  216577. \fBPR\fP \fI\%#34756\fP: (\fI\%jacobhammons\fP) Rebuild man pages
  216578. .UNINDENT
  216579. .IP \(bu 2
  216580. \fBISSUE\fP \fI\%saltstack/salt#27980\fP: (\fI\%rayba\fP) salt\-cloud 2015.5.0 azure provider could not be loaded (refs: \fI\%#34746\fP)
  216581. .IP \(bu 2
  216582. \fBPR\fP \fI\%#34746\fP: (\fI\%rallytime\fP) Update azure lib dep to match the one in cloud.clouds.msazure
  216583. @ \fI2016\-07\-18 18:54:40 UTC\fP
  216584. .INDENT 2.0
  216585. .IP \(bu 2
  216586. 2a9738f00d Merge pull request \fI\%#34746\fP from rallytime/azure\-version
  216587. .IP \(bu 2
  216588. ead3eb1606 Update azure lib dep to match the one in cloud.clouds.msazure
  216589. .UNINDENT
  216590. .IP \(bu 2
  216591. \fBPR\fP \fI\%#34744\fP: (\fI\%justinta\fP) Test valid docs fix
  216592. @ \fI2016\-07\-18 18:22:47 UTC\fP
  216593. .INDENT 2.0
  216594. .IP \(bu 2
  216595. c0e2657c8e Merge pull request \fI\%#34744\fP from jtand/test_valid_docs_fix
  216596. .IP \(bu 2
  216597. 4fe33a7695 add directives example to ldap3.modify
  216598. .IP \(bu 2
  216599. 6fa40a0d46 Add cli examples for ldap3 module
  216600. .IP \(bu 2
  216601. b94e0dd95a ipset.long_range doesn\(aqt need a docstring
  216602. .UNINDENT
  216603. .IP \(bu 2
  216604. \fBPR\fP \fI\%#34740\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216605. @ \fI2016\-07\-18 16:28:56 UTC\fP
  216606. .INDENT 2.0
  216607. .IP \(bu 2
  216608. d4adf98b85 Merge pull request \fI\%#34740\fP from rallytime/merge\-2016.3
  216609. .IP \(bu 2
  216610. 7d106c78f0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216611. .INDENT 2.0
  216612. .IP \(bu 2
  216613. e9e5bbe38b Merge pull request \fI\%#34721\fP from rallytime/fix\-34703
  216614. .INDENT 2.0
  216615. .IP \(bu 2
  216616. 9c803d05a5 Add output_file option to master config docs
  216617. .UNINDENT
  216618. .UNINDENT
  216619. .UNINDENT
  216620. .IP \(bu 2
  216621. \fBPR\fP \fI\%#34607\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport)
  216622. @ \fI2016\-07\-18 15:15:21 UTC\fP
  216623. .INDENT 2.0
  216624. .IP \(bu 2
  216625. efc7599f85 Merge pull request \fI\%#34607\fP from isbm/isbm\-config\-reading\-exit\-2016.3
  216626. .IP \(bu 2
  216627. fb7542f920 Add option to master config reader on ignoring system exit for wrong configuration
  216628. .IP \(bu 2
  216629. abd10b5782 Ignore minion config errors everywhere but the minion itself
  216630. .IP \(bu 2
  216631. e5f43e6711 Remove deprecation: BaseException.message deprecated as of 2.6
  216632. .IP \(bu 2
  216633. 23d1031a09 Fix lint: E8302
  216634. .IP \(bu 2
  216635. 6b660678fa Use Salt default exit codes instead of hard\-coded values
  216636. .IP \(bu 2
  216637. 0c2d3511c9 Exit immediately on configuration error
  216638. .IP \(bu 2
  216639. c5de6c8c4a Raise an exception on any found wrong configuration file
  216640. .IP \(bu 2
  216641. 575767022b Cover exception handling in the utils.parsers
  216642. .IP \(bu 2
  216643. 2cf696671f Introduce configuration error exception
  216644. .IP \(bu 2
  216645. \fBPR\fP \fI\%saltstack/salt#34607\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34739\fP)
  216646. .UNINDENT
  216647. .IP \(bu 2
  216648. \fBPR\fP \fI\%#34739\fP: (\fI\%cachedout\fP) Remove unnedeed config test
  216649. @ \fI2016\-07\-18 15:15:15 UTC\fP
  216650. .INDENT 2.0
  216651. .IP \(bu 2
  216652. d0e0c0186b Merge pull request \fI\%#34739\fP from cachedout/remove_config_test
  216653. .IP \(bu 2
  216654. 4625ee65b8 Remove unnedeed config test
  216655. .UNINDENT
  216656. .IP \(bu 2
  216657. \fBISSUE\fP \fI\%saltstack/salt#34630\fP: (\fI\%bdrung\fP) Spelling errors (refs: \fI\%#34756\fP, \fI\%#34722\fP)
  216658. .IP \(bu 2
  216659. \fBPR\fP \fI\%#34722\fP: (\fI\%rallytime\fP) Various spelling fixes
  216660. @ \fI2016\-07\-16 19:49:54 UTC\fP
  216661. .INDENT 2.0
  216662. .IP \(bu 2
  216663. abf5b976ed Merge pull request \fI\%#34722\fP from rallytime/fix\-34630
  216664. .IP \(bu 2
  216665. cca9446c37 Various spelling fixes
  216666. .UNINDENT
  216667. .IP \(bu 2
  216668. \fBPR\fP \fI\%#34714\fP: (\fI\%sjmh\fP) Fix ldap auth for function matches
  216669. @ \fI2016\-07\-16 19:49:12 UTC\fP
  216670. .INDENT 2.0
  216671. .IP \(bu 2
  216672. 922cc5a8a7 Merge pull request \fI\%#34714\fP from sjmh/fix/ldap_auth
  216673. .IP \(bu 2
  216674. d4144039bc Fix ldap auth for function matches
  216675. .UNINDENT
  216676. .IP \(bu 2
  216677. \fBPR\fP \fI\%#34720\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216678. @ \fI2016\-07\-16 19:22:28 UTC\fP
  216679. .INDENT 2.0
  216680. .IP \(bu 2
  216681. 40626d786a Merge pull request \fI\%#34720\fP from rallytime/merge\-2016.3
  216682. .IP \(bu 2
  216683. c2130d5a04 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216684. .IP \(bu 2
  216685. 08d00f3a61 Merge pull request \fI\%#34689\fP from Azidburn/fix_pkg_sources
  216686. .INDENT 2.0
  216687. .IP \(bu 2
  216688. 2c0fc919b3 fix second run problems with pkg.installed using sources
  216689. .UNINDENT
  216690. .IP \(bu 2
  216691. 4cb1ded520 Merge pull request \fI\%#34695\fP from isbm/isbm\-zypper\-product\-boolean\-values
  216692. .INDENT 2.0
  216693. .IP \(bu 2
  216694. 5ed5142fbc Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  216695. .IP \(bu 2
  216696. 21444ee240 Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  216697. .UNINDENT
  216698. .IP \(bu 2
  216699. aaa6f7d80a update 2015.8.11 release notes (\fI\%#34682\fP)
  216700. .UNINDENT
  216701. .IP \(bu 2
  216702. \fBISSUE\fP \fI\%#34661\fP: (\fI\%chrimi\fP) Cron State documentation lacks information of "New in" for special parameter in cron.present (refs: \fI\%#34707\fP)
  216703. .INDENT 2.0
  216704. .IP \(bu 2
  216705. \fBPR\fP \fI\%#34707\fP: (\fI\%rallytime\fP) Add versionadded to "special" option in cron.present state
  216706. .UNINDENT
  216707. .IP \(bu 2
  216708. \fBPR\fP \fI\%#34696\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.list_products\fP returns False on some empty values (2016.3)
  216709. @ \fI2016\-07\-15 21:18:21 UTC\fP
  216710. .INDENT 2.0
  216711. .IP \(bu 2
  216712. 51fce770a5 Merge pull request \fI\%#34696\fP from isbm/isbm\-zypper\-product\-boolean\-values\-2016.3
  216713. .IP \(bu 2
  216714. 96021e257c Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  216715. .IP \(bu 2
  216716. 337eee33ac Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  216717. .UNINDENT
  216718. .IP \(bu 2
  216719. \fBPR\fP \fI\%#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags
  216720. @ \fI2016\-07\-15 20:50:35 UTC\fP
  216721. .INDENT 2.0
  216722. .IP \(bu 2
  216723. 45045f6900 Merge pull request \fI\%#34702\fP from farcaller/fixtags
  216724. .IP \(bu 2
  216725. 032e35a28e Fixed dockerng.list_tags
  216726. .UNINDENT
  216727. .IP \(bu 2
  216728. \fBISSUE\fP \fI\%saltstack/salt#34548\fP: (\fI\%Inveracity\fP) win_dsc.set_lcm_config does not set multiple values, missing semicolon (refs: \fI\%#34549\fP, #saltstack/salt\(ga#34549\(ga_)
  216729. .INDENT 2.0
  216730. .IP \(bu 2
  216731. \fBPR\fP \fI\%saltstack/salt#34549\fP: (\fI\%Inveracity\fP) fixes multiple values in mof configuration (refs: \fI\%#34681\fP)
  216732. .IP \(bu 2
  216733. \fBPR\fP \fI\%#34681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34549\fP to 2016.3
  216734. .IP \(bu 2
  216735. \fBPR\fP \fI\%#34549\fP: (\fI\%Inveracity\fP) fixes multiple values in mof configuration (refs: \fI\%#34681\fP)
  216736. .UNINDENT
  216737. .IP \(bu 2
  216738. \fBPR\fP \fI\%#34679\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216739. @ \fI2016\-07\-14 20:59:45 UTC\fP
  216740. .INDENT 2.0
  216741. .IP \(bu 2
  216742. d57507dde8 Merge pull request \fI\%#34679\fP from rallytime/merge\-2016.3
  216743. .IP \(bu 2
  216744. 0c566dce89 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216745. .IP \(bu 2
  216746. 3192e1674b Merge pull request \fI\%#34676\fP from cachedout/partial_revert_34644
  216747. .INDENT 2.0
  216748. .IP \(bu 2
  216749. 64a154826a Revert "Modify lodaer global test to use populated dunders"
  216750. .UNINDENT
  216751. .IP \(bu 2
  216752. 3b6f1089b2 Merge pull request \fI\%#34601\fP from lorengordon/clarify\-doc
  216753. .INDENT 2.0
  216754. .IP \(bu 2
  216755. bfe0dd0b8a Clarifies the proper way to reference states
  216756. .UNINDENT
  216757. .IP \(bu 2
  216758. bc63f25a6f Lint 34644 (\fI\%#34651\fP)
  216759. .IP \(bu 2
  216760. 50360263c5 Adjust the mine test a little bit to give it a better chance of success (\fI\%#34647\fP)
  216761. .IP \(bu 2
  216762. 8a0209101e Merge pull request \fI\%#34642\fP from jtand/mysql_integration_cleanup
  216763. .INDENT 2.0
  216764. .IP \(bu 2
  216765. dd1559a599 Check that mysqladmin exists before running mysql integration tests.
  216766. .UNINDENT
  216767. .IP \(bu 2
  216768. 3e612c3794 Merge pull request \fI\%#34618\fP from jtand/network_integration_fix
  216769. .INDENT 2.0
  216770. .IP \(bu 2
  216771. 34bcf9ccfc Changed network state test to use test=True
  216772. .IP \(bu 2
  216773. b2616833b0 Some small changes
  216774. .IP \(bu 2
  216775. ed59113e94 Change network state integration test to use test=True
  216776. .UNINDENT
  216777. .UNINDENT
  216778. .IP \(bu 2
  216779. \fBISSUE\fP \fI\%saltstack/salt#33452\fP: (\fI\%Ch3LL\fP) Digital Ocean does not return anything on deletion (refs: \fI\%#34605\fP)
  216780. .IP \(bu 2
  216781. \fBPR\fP \fI\%#34605\fP: (\fI\%gtmanfred\fP) catch error if no dns domains exist
  216782. @ \fI2016\-07\-14 15:20:46 UTC\fP
  216783. .INDENT 2.0
  216784. .IP \(bu 2
  216785. b88c39e1d2 Merge pull request \fI\%#34605\fP from gtmanfred/2016.3
  216786. .IP \(bu 2
  216787. 37b0943539 catch error if no dns domains exist
  216788. .UNINDENT
  216789. .IP \(bu 2
  216790. \fBPR\fP \fI\%#34557\fP: (\fI\%jacobweinstock\fP) handle jboss cli expression type in the parsing of output
  216791. @ \fI2016\-07\-14 15:09:49 UTC\fP
  216792. .INDENT 2.0
  216793. .IP \(bu 2
  216794. b3dc6031fe Merge pull request \fI\%#34557\fP from jacobweinstock/jboss7_cli\-handle\-expression\-type
  216795. .IP \(bu 2
  216796. 1945153399 handle jboss cli expression type in the parsing of the output
  216797. .IP \(bu 2
  216798. \fBPR\fP \fI\%#34652\fP: (\fI\%rallytime\fP) Spelling fixes found in sqlite3 pillar docs
  216799. .UNINDENT
  216800. .IP \(bu 2
  216801. \fBISSUE\fP \fI\%saltstack/salt#34382\fP: (\fI\%amontalban\fP) Exception: unsupported operand type(s) for \-: \(aqstr\(aq and \(aqint\(aq (refs: \fI\%#34565\fP)
  216802. .IP \(bu 2
  216803. \fBISSUE\fP \fI\%#34554\fP: (\fI\%stjack99\fP) num_cpus grain missing with Salt 2016.3.1 on FreeBSD 10.x (refs: \fI\%#34565\fP)
  216804. .INDENT 2.0
  216805. .IP \(bu 2
  216806. \fBPR\fP \fI\%#34565\fP: (\fI\%Ch3LL\fP) add num_cpus grain to freebsd
  216807. .IP \(bu 2
  216808. \fBPR\fP \fI\%#34621\fP: (\fI\%justinta\fP) Suse Leap doesn\(aqt have \(aqman\(aq
  216809. .UNINDENT
  216810. .IP \(bu 2
  216811. \fBPR\fP \fI\%#34619\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216812. @ \fI2016\-07\-12 21:52:01 UTC\fP
  216813. .INDENT 2.0
  216814. .IP \(bu 2
  216815. 61f5045a0d Merge pull request \fI\%#34619\fP from rallytime/merge\-2016.3
  216816. .IP \(bu 2
  216817. f734afd0b0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216818. .IP \(bu 2
  216819. 9f123543e5 Merge pull request \fI\%#34617\fP from rallytime/merge\-2015.8
  216820. .INDENT 2.0
  216821. .IP \(bu 2
  216822. 3026df346f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  216823. .IP \(bu 2
  216824. 57df38e685 Update github IP for ssh state integration tests (\fI\%#34592\fP)
  216825. .IP \(bu 2
  216826. 2e1007254b Avoid circular imports when calling salt.utils functions (\fI\%#34584\fP)
  216827. .UNINDENT
  216828. .IP \(bu 2
  216829. b90ae407f9 Add support for edge case when Cmd and Entrypoint can\(aqt be blanked (\fI\%#34593\fP)
  216830. .IP \(bu 2
  216831. 12b579c4e3 When sorting list actual_data, make it a list (\fI\%#34590\fP)
  216832. .IP \(bu 2
  216833. 7dd8035c62 Gate docker unit test to check for docker (\fI\%#34591\fP)
  216834. .IP \(bu 2
  216835. ae38c874da Add a bunch of documentation on getting files from other environments (\fI\%#34560\fP)
  216836. .IP \(bu 2
  216837. 91e0656d44 Merge pull request \fI\%#34531\fP from terminalmage/issue34397
  216838. .INDENT 2.0
  216839. .IP \(bu 2
  216840. d0fec1b8f6 salt/modules/zypper.py: accept ignore_epoch argument
  216841. .IP \(bu 2
  216842. 5ae9463c1f salt/modules/yumpkg.py: accept ignore_epoch argument
  216843. .IP \(bu 2
  216844. c2791117af salt/modules/rpm.py: accept ignore_epoch argument
  216845. .IP \(bu 2
  216846. c5de8b880d salt/modules/ebuild.py: accept ignore_epoch argument
  216847. .IP \(bu 2
  216848. 4ee8e8f037 salt/modules/aptpkg.py: accept ignore_epoch argument
  216849. .IP \(bu 2
  216850. 5b123b403c Pass ignore_epoch to salt.utils.compare_versions()
  216851. .IP \(bu 2
  216852. 07368fac40 Accept ignore_epoch argument for salt.utils.compare_versions()
  216853. .UNINDENT
  216854. .IP \(bu 2
  216855. e99befad47 Merge pull request \fI\%#34545\fP from terminalmage/docker\-exec\-driver
  216856. .INDENT 2.0
  216857. .IP \(bu 2
  216858. dd5838e242 Handle cases where Docker Remote API returns an empty ExecutionDriver
  216859. .UNINDENT
  216860. .IP \(bu 2
  216861. \fBPR\fP \fI\%#34585\fP: (\fI\%rallytime\fP) [2016.3] Avoid salt.utils circular imports when using "from"
  216862. .UNINDENT
  216863. .IP \(bu 2
  216864. \fBPR\fP \fI\%#34616\fP: (\fI\%jacobhammons\fP) Adds a mock required for the network settings beacon
  216865. @ \fI2016\-07\-12 19:09:30 UTC\fP
  216866. .INDENT 2.0
  216867. .IP \(bu 2
  216868. c8bdfb272d Merge pull request \fI\%#34616\fP from jacobhammons/network\-settings\-mock
  216869. .IP \(bu 2
  216870. 5e2ddb5eb0 Adds a mock required for the network settings beacon
  216871. .UNINDENT
  216872. .IP \(bu 2
  216873. \fBPR\fP \fI\%#34553\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216874. @ \fI2016\-07\-11 19:36:26 UTC\fP
  216875. .INDENT 2.0
  216876. .IP \(bu 2
  216877. d8c8b4ac6f Merge pull request \fI\%#34553\fP from rallytime/merge\-2016.3
  216878. .IP \(bu 2
  216879. 815c8b38d5 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216880. .INDENT 2.0
  216881. .IP \(bu 2
  216882. 7120d43df0 Merge pull request \fI\%#34546\fP from rallytime/rename\-boto\-secgroup\-test
  216883. .INDENT 2.0
  216884. .IP \(bu 2
  216885. f8a3622be7 Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  216886. .UNINDENT
  216887. .IP \(bu 2
  216888. ca92061821 Merge pull request \fI\%#34537\fP from rallytime/rename\-simple\-test
  216889. .INDENT 2.0
  216890. .IP \(bu 2
  216891. ceefb6e34c Rename tests.unit.simple to tests.unit.simple_test
  216892. .UNINDENT
  216893. .IP \(bu 2
  216894. fbab2f8c2b [2015.8] Update bootstrap script to latest stable (\fI\%#34527\fP)
  216895. .IP \(bu 2
  216896. 6b8c76af83 Prevent many errors in the test suite in loader tests (\fI\%#34521\fP)
  216897. .IP \(bu 2
  216898. c2f296c95b Fix wrong order of retention_policy_exists (\fI\%#34507\fP)
  216899. .IP \(bu 2
  216900. 685df80929 Merge pull request \fI\%#34518\fP from terminalmage/fix\-pkg.latest\-test
  216901. .INDENT 2.0
  216902. .IP \(bu 2
  216903. 4aef44ecdf Fix pkg.latest integration test for non\-LTS ubuntu
  216904. .UNINDENT
  216905. .UNINDENT
  216906. .UNINDENT
  216907. .IP \(bu 2
  216908. \fBPR\fP \fI\%#34569\fP: (\fI\%eliasp\fP) Minor doc fixes for PostgreSQL states
  216909. @ \fI2016\-07\-11 14:02:13 UTC\fP
  216910. .INDENT 2.0
  216911. .IP \(bu 2
  216912. 5b002e11b4 Merge pull request \fI\%#34569\fP from eliasp/2016.3\-postgres\-doc
  216913. .IP \(bu 2
  216914. 221da29ef5 Typo (\fIdefaul\fP → \fIdefault\fP)
  216915. .IP \(bu 2
  216916. ba3d7c624b Add code formatting
  216917. .IP \(bu 2
  216918. b3409c97a2 Fix typo (\fIseens\fP → \fIseen\fP)
  216919. .UNINDENT
  216920. .IP \(bu 2
  216921. \fBPR\fP \fI\%#34524\fP: (\fI\%terminalmage\fP) yumpkg: Avoid spurious logging in pkg.upgrade
  216922. @ \fI2016\-07\-07 22:06:01 UTC\fP
  216923. .INDENT 2.0
  216924. .IP \(bu 2
  216925. 7e1abd77ba Merge pull request \fI\%#34524\fP from terminalmage/yumpkg\-upgrade\-logging
  216926. .IP \(bu 2
  216927. 40992f0790 yumpkg: Avoid spurious logging in pkg.upgrade
  216928. .UNINDENT
  216929. .IP \(bu 2
  216930. \fBISSUE\fP \fI\%#34439\fP: (\fI\%edgan\fP) Fast memory leak on ctrl\-c out of salt \(aq*\(aq state.highstate (refs: \fI\%#34490\fP)
  216931. .INDENT 2.0
  216932. .IP \(bu 2
  216933. \fBPR\fP \fI\%#34490\fP: (\fI\%cachedout\fP) Fix master crash on ctl\-c for long\-running job
  216934. .UNINDENT
  216935. .IP \(bu 2
  216936. \fBPR\fP \fI\%#34520\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216937. @ \fI2016\-07\-07 19:22:40 UTC\fP
  216938. .INDENT 2.0
  216939. .IP \(bu 2
  216940. b9e87620f5 Merge pull request \fI\%#34520\fP from rallytime/merge\-2016.3
  216941. .IP \(bu 2
  216942. 27988dde48 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216943. .IP \(bu 2
  216944. a516f116d1 Merge pull request \fI\%#34513\fP from cachedout/lower_loader_log
  216945. .INDENT 2.0
  216946. .IP \(bu 2
  216947. 733c5d00c0 Lower the log level for modules which cannot be loaded to trace
  216948. .UNINDENT
  216949. .IP \(bu 2
  216950. 63f0451041 Merge pull request \fI\%#34498\fP from rallytime/bootstrap\-tutorial\-doc\-fix
  216951. .INDENT 2.0
  216952. .IP \(bu 2
  216953. 23c5739c3b Use \-O in wget develop example in bootstrap tutorial
  216954. .UNINDENT
  216955. .IP \(bu 2
  216956. 3ebba020b6 Rename some unit test files by adding _test (\fI\%#34503\fP)
  216957. .IP \(bu 2
  216958. 8722257b82 Improve top file merging documentation (\fI\%#34505\fP)
  216959. .IP \(bu 2
  216960. 6ce7cb9616 Gracefully handle non\-XML output in GlusterFS execution module. (\fI\%#34492\fP)
  216961. .IP \(bu 2
  216962. 75299456be Use skipTest for network state integration test (\fI\%#34489\fP)
  216963. .IP \(bu 2
  216964. 0f3f87fbc5 Update dnsmasq.get_config docs to use correct config_file param. (\fI\%#34488\fP)
  216965. .UNINDENT
  216966. .IP \(bu 2
  216967. \fBISSUE\fP \fI\%#34224\fP: (\fI\%tehsu\fP) salt\-cloud to rackspace uses public ip instead of private (refs: \fI\%#34499\fP)
  216968. .IP \(bu 2
  216969. \fBPR\fP \fI\%#34499\fP: (\fI\%gtmanfred\fP) remove unnecessary block parsing ip addrs for nova
  216970. @ \fI2016\-07\-07 16:23:46 UTC\fP
  216971. .INDENT 2.0
  216972. .IP \(bu 2
  216973. 58f46eae15 Merge pull request \fI\%#34499\fP from gtmanfred/2016.3
  216974. .IP \(bu 2
  216975. 019671d4c2 remove unnecessary block parsing ip addrs for nova
  216976. .IP \(bu 2
  216977. \fBPR\fP \fI\%#34468\fP: (\fI\%twangboy\fP) Use Python 2.7.12 for Windows Build
  216978. .IP \(bu 2
  216979. \fBPR\fP \fI\%#34493\fP: (\fI\%twangboy\fP) Use Python 2.7.12 for Mac Build
  216980. .UNINDENT
  216981. .IP \(bu 2
  216982. \fBPR\fP \fI\%#34486\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  216983. @ \fI2016\-07\-06 17:28:31 UTC\fP
  216984. .INDENT 2.0
  216985. .IP \(bu 2
  216986. 95094c73ff Merge pull request \fI\%#34486\fP from rallytime/merge\-2016.3
  216987. .IP \(bu 2
  216988. 2b307b7ea1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  216989. .IP \(bu 2
  216990. e2f576e847 Merge pull request \fI\%#34462\fP from terminalmage/git\-describe\-always
  216991. .INDENT 2.0
  216992. .IP \(bu 2
  216993. 6ef7ee198e Restrict use of \-\-always to git 1.5.6 and newer
  216994. .IP \(bu 2
  216995. c554b22fc8 modules/git: added \-\-always parameter for git.describe().
  216996. .UNINDENT
  216997. .IP \(bu 2
  216998. 85f1f18239 Merge pull request \fI\%#34467\fP from rallytime/bp\-34457
  216999. .INDENT 2.0
  217000. .IP \(bu 2
  217001. 746883741f Only access key metadata if we found key metadata
  217002. .UNINDENT
  217003. .IP \(bu 2
  217004. 9e15337b74 Merge pull request \fI\%#34432\fP from twangboy/fix_file.append
  217005. .INDENT 2.0
  217006. .IP \(bu 2
  217007. 13f11fddce Remove refactoring code
  217008. .IP \(bu 2
  217009. 78f7c530bb Remove unit tests, integration tests written
  217010. .IP \(bu 2
  217011. b83392edea Remove len() in favor of boolean test
  217012. .IP \(bu 2
  217013. 4373408163 Fix line error
  217014. .IP \(bu 2
  217015. 2479b53e2f Fix erroneous report on newline code
  217016. .IP \(bu 2
  217017. 75b6ed1fd5 Change back to binary read
  217018. .IP \(bu 2
  217019. 65753cff6d Use os.linesep instead of n
  217020. .IP \(bu 2
  217021. a55d63f086 Fix object names
  217022. .IP \(bu 2
  217023. 3e2fe12e5e Add new line if missing
  217024. .IP \(bu 2
  217025. 0b7821c8db Fix file.append state
  217026. .UNINDENT
  217027. .IP \(bu 2
  217028. 91e095bb41 Merge pull request \fI\%#34429\fP from terminalmage/pkg\-latest\-versioncheck
  217029. .INDENT 2.0
  217030. .IP \(bu 2
  217031. 667f31a72a Skip version checking for targeted packages in pkg.latest state
  217032. .UNINDENT
  217033. .IP \(bu 2
  217034. 0a264597ca Forgot reference to inotify (\fI\%#34455\fP)
  217035. .UNINDENT
  217036. .IP \(bu 2
  217037. \fBISSUE\fP \fI\%#33915\fP: (\fI\%mattglv\fP) Orchestration runner output on Success vs Failures in 2016.3.0 (refs: \fI\%#34459\fP)
  217038. .IP \(bu 2
  217039. \fBPR\fP \fI\%#34459\fP: (\fI\%terminalmage\fP) Ignore retcode when formatting highstate output
  217040. @ \fI2016\-07\-06 03:59:23 UTC\fP
  217041. .INDENT 2.0
  217042. .IP \(bu 2
  217043. 7867d49193 Merge pull request \fI\%#34459\fP from terminalmage/issue33915
  217044. .IP \(bu 2
  217045. 82a70e015f Ignore retcode when formatting highstate output
  217046. .UNINDENT
  217047. .IP \(bu 2
  217048. \fBISSUE\fP \fI\%#34371\fP: (\fI\%erikgrinaker\fP) git.detached does not work with commit ID as ref (refs: \fI\%#34463\fP)
  217049. .IP \(bu 2
  217050. \fBPR\fP \fI\%#34463\fP: (\fI\%terminalmage\fP) states/git: pass required cwd parameter to git.describe.
  217051. @ \fI2016\-07\-06 03:59:05 UTC\fP
  217052. .INDENT 2.0
  217053. .IP \(bu 2
  217054. ae6902290a Merge pull request \fI\%#34463\fP from terminalmage/issue34371
  217055. .IP \(bu 2
  217056. f981a5646a states/git: pass required cwd parameter to git.describe.
  217057. .UNINDENT
  217058. .IP \(bu 2
  217059. \fBISSUE\fP \fI\%#34395\fP: (\fI\%artxki\fP) Nonfunctioning default_password in states.postgres_user.present (refs: \fI\%#34436\fP)
  217060. .IP \(bu 2
  217061. \fBPR\fP \fI\%#34466\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34436\fP to 2016.3
  217062. @ \fI2016\-07\-06 03:57:15 UTC\fP
  217063. .INDENT 2.0
  217064. .IP \(bu 2
  217065. \fBPR\fP \fI\%#34436\fP: (\fI\%artxki\fP) Fix \fI\%#34395\fP Nonfunctional default_password in states.postgres_user.present (refs: \fI\%#34466\fP)
  217066. .IP \(bu 2
  217067. 8f8a6d2f68 Merge pull request \fI\%#34466\fP from rallytime/bp\-34436
  217068. .IP \(bu 2
  217069. e97c00b018 Fix \fI\%#34395\fP Nonfunctional default_password in states.postgres_user.present
  217070. .IP \(bu 2
  217071. \fBPR\fP \fI\%#34453\fP: (\fI\%justinta\fP) Arch linux does not have osrelease or osmajorrelease grains
  217072. .UNINDENT
  217073. .IP \(bu 2
  217074. \fBISSUE\fP \fI\%#33697\fP: (\fI\%asloboda\-cisco\fP) Client clash with Tornado IOLoop (refs: \fI\%#34456\fP)
  217075. .IP \(bu 2
  217076. \fBPR\fP \fI\%#34456\fP: (\fI\%thatch45\fP) Be more careful when making the SMinion
  217077. @ \fI2016\-07\-05 18:41:57 UTC\fP
  217078. .INDENT 2.0
  217079. .IP \(bu 2
  217080. fc67a4e216 Merge pull request \fI\%#34456\fP from thatch45/2016.3
  217081. .IP \(bu 2
  217082. edd6b95c60 we need to be more careful when making the SMinion
  217083. .UNINDENT
  217084. .IP \(bu 2
  217085. \fBPR\fP \fI\%#34452\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217086. @ \fI2016\-07\-05 17:49:19 UTC\fP
  217087. .INDENT 2.0
  217088. .IP \(bu 2
  217089. 72b4d6b52c Merge pull request \fI\%#34452\fP from rallytime/merge\-2016.3
  217090. .IP \(bu 2
  217091. 91120dba01 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217092. .IP \(bu 2
  217093. 7bb0868c66 Merge pull request \fI\%#34451\fP from rallytime/merge\-2015.8
  217094. .INDENT 2.0
  217095. .IP \(bu 2
  217096. 55a91e22be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217097. .IP \(bu 2
  217098. 8c72ee56e4 Merge pull request \fI\%#34435\fP from cachedout/backport_config_dir_integration
  217099. .INDENT 2.0
  217100. .IP \(bu 2
  217101. 0e2c71a537 Backport change to integraiton test suite
  217102. .UNINDENT
  217103. .UNINDENT
  217104. .IP \(bu 2
  217105. e65d1ae374 Merge pull request \fI\%#34401\fP from terminalmage/rpm\-version_cmp
  217106. .INDENT 2.0
  217107. .IP \(bu 2
  217108. 7cefd4182d Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  217109. .UNINDENT
  217110. .IP \(bu 2
  217111. 5ddf417432 Merge pull request \fI\%#34366\fP from steverweber/fix_servicerestart
  217112. .INDENT 2.0
  217113. .IP \(bu 2
  217114. 7847c39024 Update service.py
  217115. .UNINDENT
  217116. .IP \(bu 2
  217117. 485454febb Merge pull request \fI\%#34426\fP from cro/inotify\-linux\-only
  217118. .INDENT 2.0
  217119. .IP \(bu 2
  217120. 54a02f25ba Document that inotify is Linux only
  217121. .UNINDENT
  217122. .UNINDENT
  217123. .IP \(bu 2
  217124. \fBPR\fP \fI\%#34427\fP: (\fI\%twangboy\fP) Automated signing fixes for Ubuntu 16.04, 14.04, 12.04 (for dmurphy)
  217125. @ \fI2016\-07\-05 15:18:46 UTC\fP
  217126. .INDENT 2.0
  217127. .IP \(bu 2
  217128. 7508d291d2 Merge pull request \fI\%#34427\fP from twangboy/sign_fx
  217129. .IP \(bu 2
  217130. c804480982 Add changes suggested by @cachedout
  217131. .IP \(bu 2
  217132. 494deda074 Automated signing fixes for Ubuntu 16.04, 14.04, 12.04
  217133. .UNINDENT
  217134. .IP \(bu 2
  217135. \fBISSUE\fP \fI\%#34379\fP: (\fI\%UtahDave\fP) variable referenced before assignment (refs: \fI\%#34400\fP)
  217136. .IP \(bu 2
  217137. \fBPR\fP \fI\%#34400\fP: (\fI\%cachedout\fP) Fix uninitialized value
  217138. @ \fI2016\-07\-01 17:42:55 UTC\fP
  217139. .INDENT 2.0
  217140. .IP \(bu 2
  217141. b3875f397d Merge pull request \fI\%#34400\fP from cachedout/issue_34379
  217142. .IP \(bu 2
  217143. b413f05a4f Fix uninitialized value
  217144. .UNINDENT
  217145. .IP \(bu 2
  217146. \fBPR\fP \fI\%#34404\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217147. @ \fI2016\-07\-01 15:02:09 UTC\fP
  217148. .INDENT 2.0
  217149. .IP \(bu 2
  217150. d1cd36ab2b Merge pull request \fI\%#34404\fP from rallytime/merge\-2016.3
  217151. .IP \(bu 2
  217152. 8398de0baf Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217153. .IP \(bu 2
  217154. fe18bbb527 Merge pull request \fI\%#34392\fP from cro/salt\-cloud\-doc\-clarify
  217155. .INDENT 2.0
  217156. .IP \(bu 2
  217157. 6cce575d40 Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  217158. .UNINDENT
  217159. .IP \(bu 2
  217160. 45b8fb10d7 Merge pull request \fI\%#34373\fP from jtand/network_state_integration_test
  217161. .INDENT 2.0
  217162. .IP \(bu 2
  217163. 1d24053e36 network.system sls file
  217164. .IP \(bu 2
  217165. 4a9e6af542 network.routes sls file
  217166. .IP \(bu 2
  217167. 76c90b2ef6 network.managed sls file
  217168. .IP \(bu 2
  217169. 84a36369fa Added network state integration test
  217170. .UNINDENT
  217171. .IP \(bu 2
  217172. d6af1de0b7 Optimize pkg integration tests and add a couple new tests (\fI\%#34377\fP)
  217173. .UNINDENT
  217174. .IP \(bu 2
  217175. \fBPR\fP \fI\%#34292\fP: (\fI\%twangboy\fP) Fix runas function for System Account
  217176. @ \fI2016\-06\-30 18:25:09 UTC\fP
  217177. .INDENT 2.0
  217178. .IP \(bu 2
  217179. ad63b1d3d3 Merge pull request \fI\%#34292\fP from twangboy/fix_runas
  217180. .IP \(bu 2
  217181. 433f300eba Enable all privileges
  217182. .IP \(bu 2
  217183. 5584cc2c6f Handle users that aren\(aqt admin
  217184. .IP \(bu 2
  217185. e9d2402c0b Fix runas function for System Account
  217186. .UNINDENT
  217187. .IP \(bu 2
  217188. \fBPR\fP \fI\%#34388\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34378\fP to 2016.3
  217189. @ \fI2016\-06\-30 17:50:48 UTC\fP
  217190. .INDENT 2.0
  217191. .IP \(bu 2
  217192. \fBPR\fP \fI\%#34378\fP: (\fI\%adelcast\fP) network_settings.py: fix documentation (refs: \fI\%#34388\fP)
  217193. .IP \(bu 2
  217194. be9a831ef6 Merge pull request \fI\%#34388\fP from rallytime/bp\-34378
  217195. .IP \(bu 2
  217196. 2040dbeca5 network_settings.py: fix documentation
  217197. .IP \(bu 2
  217198. \fBPR\fP \fI\%#34352\fP: (\fI\%cro\fP) Esxi dvs
  217199. .IP \(bu 2
  217200. \fBPR\fP \fI\%#34386\fP: (\fI\%rallytime\fP) Beacon network docs
  217201. .UNINDENT
  217202. .IP \(bu 2
  217203. \fBPR\fP \fI\%#34376\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217204. @ \fI2016\-06\-30 14:31:28 UTC\fP
  217205. .INDENT 2.0
  217206. .IP \(bu 2
  217207. 5a44b077a0 Merge pull request \fI\%#34376\fP from rallytime/merge\-2016.3
  217208. .IP \(bu 2
  217209. 3149da1bcc Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217210. .IP \(bu 2
  217211. af8ef1e461 Merge pull request \fI\%#34368\fP from rallytime/merge\-2015.8
  217212. .INDENT 2.0
  217213. .IP \(bu 2
  217214. 3bce0cb510 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217215. .IP \(bu 2
  217216. 970aaa46d4 Merge pull request \fI\%#34252\fP from gtmanfred/2015.5
  217217. .INDENT 2.0
  217218. .IP \(bu 2
  217219. 82183f1572 return list of nodes for lxc driver when called directly
  217220. .UNINDENT
  217221. .UNINDENT
  217222. .IP \(bu 2
  217223. 94e094652c Back\-port \fI\%#34324\fP to 2015.8 (\fI\%#34344\fP)
  217224. .IP \(bu 2
  217225. 11dc0203b0 Making salt\-ssh pass proper return codes for jinja rendering errors (\fI\%#34342\fP)
  217226. .UNINDENT
  217227. .IP \(bu 2
  217228. \fBPR\fP \fI\%#34365\fP: (\fI\%sjorge\fP) fixes computenode_* grains on SmartOS compute nodes
  217229. @ \fI2016\-06\-29 17:55:24 UTC\fP
  217230. .INDENT 2.0
  217231. .IP \(bu 2
  217232. 3808d849fe Merge pull request \fI\%#34365\fP from sjorge/2016.3\-fix\-broken\-smartos\-grains
  217233. .IP \(bu 2
  217234. 3ff895cacf fixes computenode_* grains on SmartOS compute nodes
  217235. .UNINDENT
  217236. .IP \(bu 2
  217237. \fBPR\fP \fI\%#34353\fP: (\fI\%cro\fP) Remove proxy check and additional GetConnection\-\-this makes the proxy…
  217238. @ \fI2016\-06\-29 14:54:47 UTC\fP
  217239. .INDENT 2.0
  217240. .IP \(bu 2
  217241. 65efb55917 Merge pull request \fI\%#34353\fP from cro/pyvmomi\-ssl\-fail
  217242. .IP \(bu 2
  217243. 14ea29f446 Remove proxy check and additional GetConnection\-\-this makes the proxy fail to start. Need to check to see if proxy memory leak is back.
  217244. .UNINDENT
  217245. .IP \(bu 2
  217246. \fBPR\fP \fI\%#34348\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217247. @ \fI2016\-06\-28 23:28:45 UTC\fP
  217248. .INDENT 2.0
  217249. .IP \(bu 2
  217250. c89d1ad27f Merge pull request \fI\%#34348\fP from rallytime/merge\-2016.3
  217251. .IP \(bu 2
  217252. c87a108a12 Don\(aqt forget the pylint disables for range
  217253. .IP \(bu 2
  217254. 359e8ca2ce Pylint fixes
  217255. .IP \(bu 2
  217256. f9ab8ba46d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217257. .INDENT 2.0
  217258. .IP \(bu 2
  217259. f6bd1ad47e Revert py3modernize lint changes (\fI\%#34339\fP)
  217260. .IP \(bu 2
  217261. 046bdaa9f2 Merge pull request \fI\%#34306\fP from ghedo/iptables_flush_table
  217262. .INDENT 2.0
  217263. .IP \(bu 2
  217264. 882c6c9c86 Do not force \(aqfilter\(aq table when flushing
  217265. .UNINDENT
  217266. .IP \(bu 2
  217267. 0c60feac02 Doc clarifications to file modules, addition of new \fIprofile\fP log level to docs, fixed example in dnsmasq (\fI\%#34323\fP)
  217268. .IP \(bu 2
  217269. b793426c23 Remove unnecessarily\-disabled sanity check (\fI\%#34325\fP)
  217270. .IP \(bu 2
  217271. c5890a0eca Merge pull request \fI\%#34335\fP from rallytime/merge\-2015.8
  217272. .INDENT 2.0
  217273. .IP \(bu 2
  217274. 2296587536 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217275. .IP \(bu 2
  217276. 6cce545d92 Merge pull request \fI\%#34313\fP from rallytime/bootstrap\-2015.5
  217277. .INDENT 2.0
  217278. .IP \(bu 2
  217279. c7db73be92 [2015.5] Update to latest bootstrap script v2016.06.27
  217280. .UNINDENT
  217281. .UNINDENT
  217282. .IP \(bu 2
  217283. a6d3cc637b Typo in dockerio doc (\fI\%#34319\fP)
  217284. .IP \(bu 2
  217285. dd4c937009 Merge pull request \fI\%#34312\fP from rallytime/bootstrap\-2015.8
  217286. .INDENT 2.0
  217287. .IP \(bu 2
  217288. 944a393f89 [2015.8] Update to latest bootstrap script v2016.06.27
  217289. .UNINDENT
  217290. .IP \(bu 2
  217291. 91703d2dc4 Merge pull request \fI\%#34307\fP from rallytime/fix\-test\-example
  217292. .INDENT 2.0
  217293. .IP \(bu 2
  217294. f44a0543fe Fix test example in integration testing docs
  217295. .UNINDENT
  217296. .UNINDENT
  217297. .UNINDENT
  217298. .IP \(bu 2
  217299. \fBISSUE\fP \fI\%#34255\fP: (\fI\%tmehlinger\fP) fire_event requisite does not work in orchestration states (refs: \fI\%#34256\fP, \fI\%#34343\fP)
  217300. .INDENT 2.0
  217301. .IP \(bu 2
  217302. \fBPR\fP \fI\%#34343\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34256\fP to 2016.3
  217303. .IP \(bu 2
  217304. \fBPR\fP \fI\%#34256\fP: (\fI\%tmehlinger\fP) detect running from master in State.event method (refs: \fI\%#34343\fP)
  217305. .UNINDENT
  217306. .IP \(bu 2
  217307. \fBPR\fP \fI\%#34338\fP: (\fI\%themalkolm\fP) Add listen/listen_in support to stateconf.py
  217308. @ \fI2016\-06\-28 21:50:14 UTC\fP
  217309. .INDENT 2.0
  217310. .IP \(bu 2
  217311. 0b9cb602fe Merge pull request \fI\%#34338\fP from themalkolm/patch\-2
  217312. .IP \(bu 2
  217313. cd63541325 Add listen/listen_in support to stateconf.py
  217314. .UNINDENT
  217315. .IP \(bu 2
  217316. \fBPR\fP \fI\%#34283\fP: (\fI\%sjorge\fP) 2016.3 mount vfstab support
  217317. @ \fI2016\-06\-28 19:23:39 UTC\fP
  217318. .INDENT 2.0
  217319. .IP \(bu 2
  217320. 80a659bb51 Merge pull request \fI\%#34283\fP from sjorge/2016.3\-mount\-fstab
  217321. .IP \(bu 2
  217322. b8c6948cd5 fixes broken rm_fstab test due to missing __grain__.kernel
  217323. .IP \(bu 2
  217324. d633e774ea actually do the cleanup, oops
  217325. .IP \(bu 2
  217326. 987c240850 minor cleanup
  217327. .IP \(bu 2
  217328. c3667203bf add test for vfstab
  217329. .IP \(bu 2
  217330. 80e9d1d278 set __grains__ for fstab unit test
  217331. .IP \(bu 2
  217332. f0f5d449c3 mount.vfstab implemented on Solaris like platforms
  217333. .IP \(bu 2
  217334. 4398e8841b undo some changes to mount.fstab and mount.rm_fstab, create mount.vfstab and mount.rm_vfstab
  217335. .IP \(bu 2
  217336. 133d3bb2bb mount.set_fstab errors out on Solaris like platforms
  217337. .IP \(bu 2
  217338. c0863fb024 mount.rm_fstab works with Solaris like platforms
  217339. .IP \(bu 2
  217340. 151799ea74 initial vfstab support (Solaris like platforms)
  217341. .UNINDENT
  217342. .IP \(bu 2
  217343. \fBISSUE\fP \fI\%#34321\fP: (\fI\%Ch3LL\fP) Raspberry Pi salt\-minion missing osmajorrelease grain (refs: \fI\%#34322\fP)
  217344. .IP \(bu 2
  217345. \fBPR\fP \fI\%#34322\fP: (\fI\%Ch3LL\fP) add osmajorrelease grain for raspbian
  217346. @ \fI2016\-06\-28 19:08:39 UTC\fP
  217347. .INDENT 2.0
  217348. .IP \(bu 2
  217349. 75aad073a9 Merge pull request \fI\%#34322\fP from Ch3LL/add_grains_majorrelease_test
  217350. .IP \(bu 2
  217351. 693cc61aa4 add osmajorrelease to ubuntu and fix pylint
  217352. .IP \(bu 2
  217353. 2fc3e8a54b add osmajorrelease grain for raspbian
  217354. .UNINDENT
  217355. .IP \(bu 2
  217356. \fBPR\fP \fI\%#34337\fP: (\fI\%clinta\fP) Change merge\-if\-exists logic to properly report changes
  217357. @ \fI2016\-06\-28 18:41:56 UTC\fP
  217358. .INDENT 2.0
  217359. .IP \(bu 2
  217360. 81547f413d Merge pull request \fI\%#34337\fP from clinta/serialize\-merge
  217361. .IP \(bu 2
  217362. ebe7def2fb Change merge\-if\-exists logic to properly report changes
  217363. .UNINDENT
  217364. .IP \(bu 2
  217365. \fBPR\fP \fI\%#34300\fP: (\fI\%vutny\fP) Make apache.configfile state handle the Options list correctly
  217366. @ \fI2016\-06\-28 18:34:45 UTC\fP
  217367. .INDENT 2.0
  217368. .IP \(bu 2
  217369. affc65dc79 Merge pull request \fI\%#34300\fP from vutny/fix\-apache\-vhost\-options
  217370. .IP \(bu 2
  217371. 52001afdde Fix apache.configfile state example
  217372. .IP \(bu 2
  217373. 64a9442e38 apache.config: correctly output a list of the Options
  217374. .UNINDENT
  217375. .IP \(bu 2
  217376. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#34333\fP)
  217377. .INDENT 2.0
  217378. .IP \(bu 2
  217379. \fBPR\fP \fI\%#34333\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33734\fP to 2016.3
  217380. .IP \(bu 2
  217381. \fBPR\fP \fI\%#34304\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33734\fP to 2016.3 (refs: \fI\%#34333\fP)
  217382. .IP \(bu 2
  217383. \fBPR\fP \fI\%#33734\fP: (\fI\%glomium\fP) modules/rabbitmq.py version checking had a logical error (refs: \fI\%#34333\fP, \fI\%#34304\fP)
  217384. .UNINDENT
  217385. .IP \(bu 2
  217386. \fBISSUE\fP \fI\%#34329\fP: (\fI\%clinta\fP) file.serialize merge_if_exists fails: \(aqfunction\(aq object has no attribute \(aqdeserialize\(aq (refs: \fI\%#34330\fP)
  217387. .INDENT 2.0
  217388. .IP \(bu 2
  217389. \fBPR\fP \fI\%#34330\fP: (\fI\%clinta\fP) fix \fI\%#34329\fP
  217390. .UNINDENT
  217391. .IP \(bu 2
  217392. \fBISSUE\fP \fI\%#34170\fP: (\fI\%rodoyle\fP) ps.top raises ValueError "too many values to unpack" when psutil > 4.1.0 (refs: \fI\%#34318\fP)
  217393. .INDENT 2.0
  217394. .IP \(bu 2
  217395. \fBPR\fP \fI\%#34318\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32182\fP to 2016.3
  217396. .IP \(bu 2
  217397. \fBPR\fP \fI\%#32182\fP: (\fI\%dongweiming\fP) Fix psutil.cpu_times unpack error (refs: \fI\%#34318\fP)
  217398. .UNINDENT
  217399. .IP \(bu 2
  217400. \fBPR\fP \fI\%#34311\fP: (\fI\%rallytime\fP) [2016.3] Update to latest bootstrap script v2016.06.27
  217401. @ \fI2016\-06\-27 18:59:27 UTC\fP
  217402. .INDENT 2.0
  217403. .IP \(bu 2
  217404. 1398b1c51e Merge pull request \fI\%#34311\fP from rallytime/bootstrap\-2016.3
  217405. .IP \(bu 2
  217406. 75aa7047bc [2016.3] Update to latest bootstrap script v2016.06.27
  217407. .UNINDENT
  217408. .IP \(bu 2
  217409. \fBISSUE\fP \fI\%#34129\fP: (\fI\%onorua\fP) fqdn_ip4 and fqdn_ip6 are empty on 2016.3+ (refs: \fI\%#34284\fP)
  217410. .IP \(bu 2
  217411. \fBPR\fP \fI\%#34284\fP: (\fI\%rallytime\fP) Don\(aqt require \(aqdomain\(aq to be present before checking fqdn_ip* grains
  217412. @ \fI2016\-06\-27 17:06:17 UTC\fP
  217413. .INDENT 2.0
  217414. .IP \(bu 2
  217415. dc8462451d Merge pull request \fI\%#34284\fP from rallytime/fix\-34129
  217416. .IP \(bu 2
  217417. 5f45a8ff73 Don\(aqt require \(aqdomain\(aq to be present before checking fqdn_ip* grains
  217418. .UNINDENT
  217419. .IP \(bu 2
  217420. \fBISSUE\fP \fI\%#30493\fP: (\fI\%sjorge\fP) salt.modules.status mostly broken on solaris like operating systems. (refs: \fI\%#34296\fP)
  217421. .IP \(bu 2
  217422. \fBPR\fP \fI\%#34296\fP: (\fI\%sjorge\fP) 2016.3 status module now works on Solaris like platforms
  217423. @ \fI2016\-06\-27 16:49:41 UTC\fP
  217424. .INDENT 2.0
  217425. .IP \(bu 2
  217426. 259935d6d2 Merge pull request \fI\%#34296\fP from sjorge/2016.3\-module.status
  217427. .IP \(bu 2
  217428. a26340c555 make status.all_status work on Solaris like platforms
  217429. .IP \(bu 2
  217430. 33e24fa697 make status.cpustats work on Solaris like platforms
  217431. .IP \(bu 2
  217432. d214e9c776 correctly cast to int for status.netdevs on Solaris like platforms
  217433. .IP \(bu 2
  217434. b74761b52d make status.cpuinfo support Solaris like platforms and OpenBSD
  217435. .IP \(bu 2
  217436. 2cd76d5ab5 make status.diskstats work on Solaris like platforms
  217437. .IP \(bu 2
  217438. 3211538830 make status.diskusage work on Solaris like platforms
  217439. .IP \(bu 2
  217440. a12b311a62 make status.netdev compatible with Solaris like platforms
  217441. .IP \(bu 2
  217442. 3bc01458aa make status.netstats compatible with Solaris like platforms
  217443. .IP \(bu 2
  217444. 25678901fa avoid KeyError in ping_master
  217445. .IP \(bu 2
  217446. 81d7fc98d8 make status.vmstats work on Solaris like platforms and OpenBSD
  217447. .UNINDENT
  217448. .IP \(bu 2
  217449. \fBPR\fP \fI\%#34281\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217450. @ \fI2016\-06\-24 21:51:43 UTC\fP
  217451. .INDENT 2.0
  217452. .IP \(bu 2
  217453. 376bec0455 Merge pull request \fI\%#34281\fP from rallytime/merge\-2016.3
  217454. .IP \(bu 2
  217455. ae8ad9329c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217456. .IP \(bu 2
  217457. d235b1245b Merge pull request \fI\%#34233\fP from thegoodduke/for_2015.8_ipset
  217458. .INDENT 2.0
  217459. .IP \(bu 2
  217460. 4da5e35bf4 ipset: fix the comment containing blank
  217461. .UNINDENT
  217462. .IP \(bu 2
  217463. 65c5675a3f Merge pull request \fI\%#34257\fP from rallytime/fix\-34037
  217464. .INDENT 2.0
  217465. .IP \(bu 2
  217466. d7a5e9b10e Remove test that doesn\(aqt actually test anything
  217467. .IP \(bu 2
  217468. c4c037d600 Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  217469. .UNINDENT
  217470. .IP \(bu 2
  217471. 203870f147 Merge pull request \fI\%#34274\fP from clinta/2015.8
  217472. .INDENT 2.0
  217473. .IP \(bu 2
  217474. 6572454918 Don\(aqt escape source before calling managed
  217475. .UNINDENT
  217476. .IP \(bu 2
  217477. a59dc85a15 Merge pull request \fI\%#34258\fP from rallytime/merge\-2015.8
  217478. .INDENT 2.0
  217479. .IP \(bu 2
  217480. ea914b67cd Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217481. .IP \(bu 2
  217482. 8d5ed91980 Merge pull request \fI\%#34225\fP from richardscollin/fix\-win\-set\-datetime
  217483. .INDENT 2.0
  217484. .IP \(bu 2
  217485. 6286771ef7 Fix win_system.set_system_date_time
  217486. .UNINDENT
  217487. .IP \(bu 2
  217488. cb1e8bf082 Merge pull request \fI\%#34232\fP from thegoodduke/for_2015.5_ipset
  217489. .INDENT 2.0
  217490. .IP \(bu 2
  217491. 344eb60762 ipset: fix commont containing blank
  217492. .UNINDENT
  217493. .UNINDENT
  217494. .UNINDENT
  217495. .IP \(bu 2
  217496. \fBPR\fP \fI\%#34271\fP: (\fI\%opdude\fP) Fixed symlinks on windows where the slashes don\(aqt match
  217497. @ \fI2016\-06\-24 17:05:25 UTC\fP
  217498. .INDENT 2.0
  217499. .IP \(bu 2
  217500. 805171c949 Merge pull request \fI\%#34271\fP from Unity\-Technologies/hotfix/windows_symlinks
  217501. .IP \(bu 2
  217502. e0a1a55431 Fixed symlinks on windows where the slashes don\(aqt match
  217503. .UNINDENT
  217504. .IP \(bu 2
  217505. \fBISSUE\fP \fI\%#14915\fP: (\fI\%johngrasty\fP) SmartOS/OmniOS \- mount module fails. (refs: \fI\%#34254\fP)
  217506. .INDENT 2.0
  217507. .IP \(bu 2
  217508. \fBPR\fP \fI\%#34254\fP: (\fI\%sjorge\fP) Fix for \fI\%#14915\fP
  217509. .UNINDENT
  217510. .IP \(bu 2
  217511. \fBPR\fP \fI\%#34259\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217512. @ \fI2016\-06\-24 14:27:30 UTC\fP
  217513. .INDENT 2.0
  217514. .IP \(bu 2
  217515. 39579ce5f6 Merge pull request \fI\%#34259\fP from rallytime/merge\-2016.3
  217516. .IP \(bu 2
  217517. eeaf3cc1e7 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217518. .IP \(bu 2
  217519. 92962957c8 Merge pull request \fI\%#34093\fP from terminalmage/issue33873
  217520. .INDENT 2.0
  217521. .IP \(bu 2
  217522. 5edb45d746 win_pkg: refresh pkg database if refresh=True passed to version() or list_pkgs()
  217523. .IP \(bu 2
  217524. 0078adee35 Catch CommandExecutionError in pkg states
  217525. .UNINDENT
  217526. .IP \(bu 2
  217527. cb5399787c Merge pull request \fI\%#34136\fP from meaksh/salt\-suse\-os\-detection\-2015.8
  217528. .INDENT 2.0
  217529. .IP \(bu 2
  217530. 97f1958863 some cleanup and renaming
  217531. .IP \(bu 2
  217532. 72c8e5d78f better way to check for openSUSE Leap
  217533. .IP \(bu 2
  217534. 548971bdc9 Fix for SUSE OS grains in 2015.8
  217535. .UNINDENT
  217536. .UNINDENT
  217537. .IP \(bu 2
  217538. \fBPR\fP \fI\%#34134\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2016.3 (refs: \fI\%#34136\fP)
  217539. @ \fI2016\-06\-23 20:24:51 UTC\fP
  217540. .INDENT 2.0
  217541. .IP \(bu 2
  217542. \fBPR\fP \fI\%#33903\fP: (\fI\%meaksh\fP) Fetching grains[\(aqos\(aq] from /etc/os\-release on SUSE systems if it is possible (refs: \fI\%#34134\fP)
  217543. .IP \(bu 2
  217544. 3acda896f2 Merge pull request \fI\%#34134\fP from meaksh/salt\-suse\-os\-detection
  217545. .IP \(bu 2
  217546. 23ce0b431b some cleanup and renaming
  217547. .IP \(bu 2
  217548. 516bbc454d better way to check for openSUSE Leap
  217549. .IP \(bu 2
  217550. 44eda2ad9f Fix for openSUSE Tumbleweed
  217551. .IP \(bu 2
  217552. 0d4a710d86 fixes for fopen mock and some os_release_map for SLES11SP3
  217553. .IP \(bu 2
  217554. d6410a03b8 unit tests for SUSE os grains detection
  217555. .IP \(bu 2
  217556. 47ecb7013b Normalization of osfullname grain for openSUSE
  217557. .IP \(bu 2
  217558. 9c81f434fa one clause to set OS grain from CPE_NAME
  217559. .IP \(bu 2
  217560. d78d57b717 Test fixed: get OS grain from /etc/os\-release if possible
  217561. .IP \(bu 2
  217562. d80e0532ff fix: osarch_mock
  217563. .IP \(bu 2
  217564. db00ec756d osarch mock for unit test
  217565. .IP \(bu 2
  217566. dabc5cab7e lint fix
  217567. .IP \(bu 2
  217568. 9ac514724b testing if SUSE os grain is set from /etc/os\-release
  217569. .IP \(bu 2
  217570. bc671336a7 Getting the \(aqos\(aq grain from CPE_NAME inside /etc/os\-release for SUSE and openSUSE
  217571. .IP \(bu 2
  217572. 64af4d4145 Adding SLES_SAP to OS_FAMILY_MAP
  217573. .UNINDENT
  217574. .IP \(bu 2
  217575. \fBISSUE\fP \fI\%#34137\fP: (\fI\%christoe\fP) Win_task info function broken (refs: \fI\%#34159\fP)
  217576. .IP \(bu 2
  217577. \fBISSUE\fP \fI\%#34135\fP: (\fI\%christoe\fP) Arguments to Windows task creation module are not used (refs: \fI\%#34159\fP)
  217578. .IP \(bu 2
  217579. \fBPR\fP \fI\%#34159\fP: (\fI\%christoe\fP) Fixes to the win_task module
  217580. @ \fI2016\-06\-23 17:54:53 UTC\fP
  217581. .INDENT 2.0
  217582. .IP \(bu 2
  217583. 5f42fd4486 Merge pull request \fI\%#34159\fP from christoe/2016.3
  217584. .IP \(bu 2
  217585. f4143669db Fixes \fI\%#34135\fP, Fixes \fI\%#34137\fP
  217586. .UNINDENT
  217587. .IP \(bu 2
  217588. \fBPR\fP \fI\%#34223\fP: (\fI\%peterdemin\fP) Fixed typo in filtering LDAP\(aqs potential_ous
  217589. @ \fI2016\-06\-23 17:26:31 UTC\fP
  217590. .INDENT 2.0
  217591. .IP \(bu 2
  217592. 0a0267149f Merge pull request \fI\%#34223\fP from peterdemin/bugfix\-eauth\-ldap\-expanding
  217593. .IP \(bu 2
  217594. 8bb03ec109 Fixed typo in filtering LDAP\(aqs potential_ous
  217595. .UNINDENT
  217596. .IP \(bu 2
  217597. \fBPR\fP \fI\%#34239\fP: (\fI\%vutny\fP) file.find module: fix handling of broken symlinks
  217598. @ \fI2016\-06\-23 17:25:17 UTC\fP
  217599. .INDENT 2.0
  217600. .IP \(bu 2
  217601. f74f176bd5 Merge pull request \fI\%#34239\fP from vutny/file\-find\-broken\-symlinks
  217602. .IP \(bu 2
  217603. 7e164c4f86 file.find module: fix handling of broken symlinks
  217604. .UNINDENT
  217605. .IP \(bu 2
  217606. \fBPR\fP \fI\%#34229\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217607. @ \fI2016\-06\-22 22:57:00 UTC\fP
  217608. .INDENT 2.0
  217609. .IP \(bu 2
  217610. 4157f6fd39 Merge pull request \fI\%#34229\fP from rallytime/merge\-2016.3
  217611. .IP \(bu 2
  217612. 940ac86d4e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217613. .IP \(bu 2
  217614. 56c7267631 fix regression from \fI\%#33681\fP which causes pulling a list of s3 objects via s3.query to fail (\fI\%#34208\fP)
  217615. .IP \(bu 2
  217616. 02eb331494 Fix a pair of gitfs bugs (\fI\%#34218\fP)
  217617. .IP \(bu 2
  217618. 6d643cd528 Merge pull request \fI\%#34182\fP from rallytime/fix\-34043
  217619. .INDENT 2.0
  217620. .IP \(bu 2
  217621. b7d49c5052 Handle child PIDs differently depending on the availability of psutils
  217622. .UNINDENT
  217623. .IP \(bu 2
  217624. 5d3ec31564 Clarify pkg.list_repo_pkgs docstring for held packages (\fI\%#34188\fP)
  217625. .IP \(bu 2
  217626. 5bca5c42f1 Change target for dockerng assuming default status to Nitrogen release (\fI\%#34206\fP)
  217627. .UNINDENT
  217628. .IP \(bu 2
  217629. \fBISSUE\fP \fI\%#33879\fP: (\fI\%Ch3LL\fP) saltutil.wheel minions.connected does not return anything with remote minions (refs: \fI\%#34214\fP)
  217630. .IP \(bu 2
  217631. \fBPR\fP \fI\%#34214\fP: (\fI\%rallytime\fP) Update saltutil.wheel docs to specify remote vs local minion behavior
  217632. @ \fI2016\-06\-22 19:22:30 UTC\fP
  217633. .INDENT 2.0
  217634. .IP \(bu 2
  217635. b5ea1495af Merge pull request \fI\%#34214\fP from rallytime/fix\-33879
  217636. .IP \(bu 2
  217637. 1be05f6a87 Update saltutil.wheel docs to specify remote vs local minion behavior
  217638. .UNINDENT
  217639. .IP \(bu 2
  217640. \fBISSUE\fP \fI\%#34074\fP: (\fI\%fooka03\fP) Unable to use S3 file backend with 2016.3.1 on Ubuntu 14.04 or 16.04 (refs: \fI\%#34209\fP, \fI\%#34208\fP)
  217641. .IP \(bu 2
  217642. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP, \fI\%#33682\fP)
  217643. .IP \(bu 2
  217644. \fBPR\fP \fI\%#34209\fP: (\fI\%lomeroe\fP) fix regression in s3.query from \fI\%#33682\fP
  217645. @ \fI2016\-06\-22 18:50:19 UTC\fP
  217646. .INDENT 2.0
  217647. .IP \(bu 2
  217648. \fBPR\fP \fI\%#33682\fP: (\fI\%lomeroe\fP) backport \fI\%#33599\fP to 2016.3 (refs: \fI\%#34209\fP)
  217649. .IP \(bu 2
  217650. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP, \fI\%#33682\fP)
  217651. .IP \(bu 2
  217652. 4205fd605c Merge pull request \fI\%#34209\fP from lomeroe/fix_s3_utils_regression_33682
  217653. .IP \(bu 2
  217654. a2b99703b1 fix regression in s3.query from \fI\%#33682\fP
  217655. .UNINDENT
  217656. .IP \(bu 2
  217657. \fBPR\fP \fI\%#34222\fP: (\fI\%cachedout\fP) Lint 34200
  217658. @ \fI2016\-06\-22 18:48:54 UTC\fP
  217659. .INDENT 2.0
  217660. .IP \(bu 2
  217661. \fBPR\fP \fI\%#34200\fP: (\fI\%secumod\fP) Fix parted module set CLI example (refs: \fI\%#34222\fP)
  217662. .IP \(bu 2
  217663. 05a4785c8c Merge pull request \fI\%#34222\fP from cachedout/lint_34200
  217664. .IP \(bu 2
  217665. eadf80a56f Linted \fI\%#34200\fP
  217666. .IP \(bu 2
  217667. 2cd0433f8d Fix parted module set CLI example
  217668. .UNINDENT
  217669. .IP \(bu 2
  217670. \fBPR\fP \fI\%#34197\fP: (\fI\%eliasp\fP) Make \fImodule.ssh.recv_known_host()\fP more resilient against hosts not returning a key
  217671. @ \fI2016\-06\-22 17:26:02 UTC\fP
  217672. .INDENT 2.0
  217673. .IP \(bu 2
  217674. 0cbdb73fc5 Merge pull request \fI\%#34197\fP from eliasp/2016.3\-salt.modules.ssh.recv_known_host\-empty_results
  217675. .IP \(bu 2
  217676. 82c4b1229e Make \fImodule.ssh.recv_known_host()\fP more resilient against hosts not returning a key
  217677. .UNINDENT
  217678. .IP \(bu 2
  217679. \fBISSUE\fP \fI\%#34199\fP: (\fI\%DarkKnightCZ\fP) cmdmod.exec_all doesn\(aqt work with Windows PowerShell (refs: \fI\%#34201\fP)
  217680. .IP \(bu 2
  217681. \fBISSUE\fP \fI\%#34196\fP: (\fI\%DarkKnightCZ\fP) Salt call cmdmod.exec_code_all fails on Windows minion due to invalid file mode (refs: \fI\%#34198\fP)
  217682. .IP \(bu 2
  217683. \fBPR\fP \fI\%#34201\fP: (\fI\%DarkKnightCZ\fP) Suffix temp file with .sr1 and add mandatory argument when executing PowerShell script
  217684. @ \fI2016\-06\-22 17:21:24 UTC\fP
  217685. .INDENT 2.0
  217686. .IP \(bu 2
  217687. \fBPR\fP \fI\%#34198\fP: (\fI\%DarkKnightCZ\fP) Don\(aqt use binary mode for cmdmod.exec_code (refs: \fI\%#34201\fP)
  217688. .IP \(bu 2
  217689. 606ae3c886 Merge pull request \fI\%#34201\fP from DarkKnightCZ/cmdmod\-34199
  217690. .IP \(bu 2
  217691. 05748743bc Suffix temp file with .sr1 and add \-File argument when executing PowerShell code via cmdmod.exec_code
  217692. .UNINDENT
  217693. .IP \(bu 2
  217694. \fBISSUE\fP \fI\%#34196\fP: (\fI\%DarkKnightCZ\fP) Salt call cmdmod.exec_code_all fails on Windows minion due to invalid file mode (refs: \fI\%#34198\fP)
  217695. .IP \(bu 2
  217696. \fBPR\fP \fI\%#34198\fP: (\fI\%DarkKnightCZ\fP) Don\(aqt use binary mode for cmdmod.exec_code (refs: \fI\%#34201\fP)
  217697. @ \fI2016\-06\-22 17:14:06 UTC\fP
  217698. .INDENT 2.0
  217699. .IP \(bu 2
  217700. cb704b780b Merge pull request \fI\%#34198\fP from DarkKnightCZ/cmdmod\-34196
  217701. .IP \(bu 2
  217702. 04553cd3de Don\(aqt use binary mode for cmdmod.exec_code
  217703. .UNINDENT
  217704. .IP \(bu 2
  217705. \fBPR\fP \fI\%#34172\fP: (\fI\%dmurphy18\fP) Support for building with local packages on Debian and Ubuntu
  217706. @ \fI2016\-06\-22 16:36:44 UTC\fP
  217707. .INDENT 2.0
  217708. .IP \(bu 2
  217709. 0578a2f87d Merge pull request \fI\%#34172\fP from dmurphy18/debbuild_deps
  217710. .IP \(bu 2
  217711. f7f8a5d33f Fixed pylint issues
  217712. .IP \(bu 2
  217713. 82fa276141 Support for building with local packages on Debian and Ubuntu
  217714. .IP \(bu 2
  217715. \fBPR\fP \fI\%#34194\fP: (\fI\%vutny\fP) Correct the docstrings formatting in pkgbuild modules and state
  217716. .IP \(bu 2
  217717. \fBPR\fP \fI\%#34056\fP: (\fI\%vutny\fP) Make rpmbuild module work on non\-RPM based GNU/Linux systems (refs: \fI\%#34194\fP)
  217718. .UNINDENT
  217719. .IP \(bu 2
  217720. \fBPR\fP \fI\%#34186\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217721. @ \fI2016\-06\-21 23:26:34 UTC\fP
  217722. .INDENT 2.0
  217723. .IP \(bu 2
  217724. a8429c2595 Merge pull request \fI\%#34186\fP from rallytime/merge\-2016.3
  217725. .IP \(bu 2
  217726. 318c2ed6a1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217727. .IP \(bu 2
  217728. 1c4369d093 Merge pull request \fI\%#34184\fP from rallytime/merge\-2015.8
  217729. .INDENT 2.0
  217730. .IP \(bu 2
  217731. 8e36e90966 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217732. .IP \(bu 2
  217733. 5411ebb3b4 Merge pull request \fI\%#34141\fP from jtand/boto_vpc_test_fix
  217734. .INDENT 2.0
  217735. .IP \(bu 2
  217736. b7ac6c735a Moved imports to top, out of _get_moto_version function
  217737. .IP \(bu 2
  217738. 02f9ba99ba Updated version check. Moved check into its own function
  217739. .IP \(bu 2
  217740. d445026c56 Updated test to work with new moto version. Changed strings to unicode
  217741. .UNINDENT
  217742. .UNINDENT
  217743. .IP \(bu 2
  217744. c059d6c08c Merge pull request \fI\%#34176\fP from rallytime/bp\-34103
  217745. .INDENT 2.0
  217746. .IP \(bu 2
  217747. 2e5e7ed03c Fix diskusage beacon
  217748. .UNINDENT
  217749. .IP \(bu 2
  217750. 5cbaaed167 Merge pull request \fI\%#34179\fP from terminalmage/issue34114
  217751. .INDENT 2.0
  217752. .IP \(bu 2
  217753. 86d1b8e864 Raise the correct exception when gitfs lockfile is empty
  217754. .UNINDENT
  217755. .IP \(bu 2
  217756. 67deded119 Merge pull request \fI\%#34178\fP from terminalmage/remove\-comment
  217757. .INDENT 2.0
  217758. .IP \(bu 2
  217759. 4965be72b1 Remove unnecesssary comment
  217760. .UNINDENT
  217761. .IP \(bu 2
  217762. 6387d1636e fix salt \-\-summary to count not responding minions correctly (\fI\%#34165\fP)
  217763. .IP \(bu 2
  217764. e5949ea6f1 doc: add missing dot (\fI\%#34175\fP)
  217765. .IP \(bu 2
  217766. 47595d6795 Typo fix (\fI\%#34174\fP)
  217767. .IP \(bu 2
  217768. 3669048654 Merge pull request \fI\%#34077\fP from rallytime/grains\-tests
  217769. .INDENT 2.0
  217770. .IP \(bu 2
  217771. 2199bb8a78 Add integration tests for grains.append
  217772. .IP \(bu 2
  217773. 37cfe70724 Add some grains targeting tests
  217774. .UNINDENT
  217775. .UNINDENT
  217776. .IP \(bu 2
  217777. \fBISSUE\fP \fI\%#34162\fP: (\fI\%ryanwalder\fP) salt\-call default loglevel regression (refs: \fI\%#34173\fP)
  217778. .IP \(bu 2
  217779. \fBPR\fP \fI\%#34173\fP: (\fI\%rallytime\fP) Update docs to match log_level default
  217780. @ \fI2016\-06\-21 17:15:53 UTC\fP
  217781. .INDENT 2.0
  217782. .IP \(bu 2
  217783. 3413c494bd Merge pull request \fI\%#34173\fP from rallytime/fix\-34162
  217784. .IP \(bu 2
  217785. f577681f0b Update docs to match log_level warning default
  217786. .UNINDENT
  217787. .IP \(bu 2
  217788. \fBISSUE\fP \fI\%#34094\fP: (\fI\%avandendorpe\fP) cron.file is broken (refs: \fI\%#34095\fP)
  217789. .IP \(bu 2
  217790. \fBPR\fP \fI\%#34095\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32396\fP to 2016.3
  217791. @ \fI2016\-06\-21 16:12:39 UTC\fP
  217792. .INDENT 2.0
  217793. .IP \(bu 2
  217794. \fBPR\fP \fI\%#32396\fP: (\fI\%eradman\fP) Unbreak cron.file (refs: \fI\%#34095\fP)
  217795. .IP \(bu 2
  217796. c596bf5744 Merge pull request \fI\%#34095\fP from rallytime/bp\-32396
  217797. .IP \(bu 2
  217798. 074b6ab5c2 Correct pylint error
  217799. .IP \(bu 2
  217800. 20ff5c879a Unbreak cron.file
  217801. .UNINDENT
  217802. .IP \(bu 2
  217803. \fBPR\fP \fI\%#34108\fP: (\fI\%l2ol33rt\fP) Make dockerng.absent state honor test=true
  217804. @ \fI2016\-06\-21 15:55:29 UTC\fP
  217805. .INDENT 2.0
  217806. .IP \(bu 2
  217807. b98687875f Merge pull request \fI\%#34108\fP from l2ol33rt/docker_absent_dryrun
  217808. .IP \(bu 2
  217809. 5598cb4a21 Make docker.absent honor test=true
  217810. .UNINDENT
  217811. .IP \(bu 2
  217812. \fBISSUE\fP \fI\%#34012\fP: (\fI\%viq\fP) States mount.* fail on OpenBSD\(aqs tmpfs (refs: \fI\%#34133\fP)
  217813. .IP \(bu 2
  217814. \fBPR\fP \fI\%#34133\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34057\fP to 2016.3
  217815. @ \fI2016\-06\-21 15:53:46 UTC\fP
  217816. .INDENT 2.0
  217817. .IP \(bu 2
  217818. \fBPR\fP \fI\%#34057\fP: (\fI\%ajacoutot\fP) _active_mounts_openbsd: unbreak output for special filesystems (refs: \fI\%#34133\fP)
  217819. .IP \(bu 2
  217820. a75386a669 Merge pull request \fI\%#34133\fP from rallytime/bp\-34057
  217821. .IP \(bu 2
  217822. f7be5e182b _active_mounts_openbsd: unbreak output for special filesystems
  217823. .UNINDENT
  217824. .IP \(bu 2
  217825. \fBPR\fP \fI\%#34156\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217826. @ \fI2016\-06\-21 15:52:59 UTC\fP
  217827. .INDENT 2.0
  217828. .IP \(bu 2
  217829. dd989dac78 Merge pull request \fI\%#34156\fP from rallytime/merge\-2016.3
  217830. .IP \(bu 2
  217831. b061b86946 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217832. .INDENT 2.0
  217833. .IP \(bu 2
  217834. 65fba5b4d7 Merge pull request \fI\%#34142\fP from isbm/isbm\-getid\-loglevel\-shift
  217835. .INDENT 2.0
  217836. .IP \(bu 2
  217837. 236a67b702 Move log message from INFO to DEBUG.
  217838. .UNINDENT
  217839. .IP \(bu 2
  217840. 79a719b719 Update documentation on "refresh" behavior in pkg states (\fI\%#34100\fP)
  217841. .IP \(bu 2
  217842. 6d0d52fa86 modules.pkg int tests: skip refresh_db upon error (\fI\%#34072\fP)
  217843. .UNINDENT
  217844. .UNINDENT
  217845. .IP \(bu 2
  217846. \fBPR\fP \fI\%#34110\fP: (\fI\%garethgreenaway\fP) Fixes to git module & state module related to identity file
  217847. @ \fI2016\-06\-21 15:52:17 UTC\fP
  217848. .INDENT 2.0
  217849. .IP \(bu 2
  217850. b302cb03ef Merge pull request \fI\%#34110\fP from garethgreenaway/git_needs_saltenv_for_identity
  217851. .IP \(bu 2
  217852. 68092cdc8c When specifying the SSH identity to use with Git as a salt URL, eg. salt://files/identity, if that file exists outside of the default base environment the file won\(aqt be accessible so we need to include the saltenv.
  217853. .UNINDENT
  217854. .IP \(bu 2
  217855. \fBISSUE\fP \fI\%#34120\fP: (\fI\%rmohta\fP) Correct package name to systemd\-python for RHEL 7 in docs.saltstack.com (refs: \fI\%#34138\fP)
  217856. .IP \(bu 2
  217857. \fBISSUE\fP \fI\%#31402\fP: (\fI\%vutny\fP) [repo] systemd\-python required package is missing from RHEL7 archive (refs: \fI\%#34138\fP)
  217858. .IP \(bu 2
  217859. \fBPR\fP \fI\%#34138\fP: (\fI\%rallytime\fP) Update package dep note to systemd\-python for RHEL7 install
  217860. @ \fI2016\-06\-21 15:51:24 UTC\fP
  217861. .INDENT 2.0
  217862. .IP \(bu 2
  217863. 6c3405755a Merge pull request \fI\%#34138\fP from rallytime/fix\-34120
  217864. .IP \(bu 2
  217865. 73f3e12ce6 Update package dep note to systemd\-python for RHEL7 install
  217866. .IP \(bu 2
  217867. \fBPR\fP \fI\%#34166\fP: (\fI\%vutny\fP) Fix YAML indentation in Apache state docstrings
  217868. .IP \(bu 2
  217869. \fBPR\fP \fI\%#34098\fP: (\fI\%terminalmage\fP) Restore old refresh logic
  217870. .IP \(bu 2
  217871. \fBPR\fP \fI\%#34087\fP: (\fI\%bbinet\fP) Encourage to report issues to upstream PillarStack project
  217872. .UNINDENT
  217873. .IP \(bu 2
  217874. \fBPR\fP \fI\%#34075\fP: (\fI\%jfindlay\fP) modules.inspectlib.kiwiproc: import gate lxml
  217875. @ \fI2016\-06\-17 15:36:08 UTC\fP
  217876. .INDENT 2.0
  217877. .IP \(bu 2
  217878. 9da592a297 Merge pull request \fI\%#34075\fP from jfindlay/import_xml
  217879. .IP \(bu 2
  217880. f882a72348 modules.inspectlib.kiwiproc: import gate lxml
  217881. .UNINDENT
  217882. .IP \(bu 2
  217883. \fBPR\fP \fI\%#34056\fP: (\fI\%vutny\fP) Make rpmbuild module work on non\-RPM based GNU/Linux systems (refs: \fI\%#34194\fP)
  217884. @ \fI2016\-06\-17 15:14:51 UTC\fP
  217885. .INDENT 2.0
  217886. .IP \(bu 2
  217887. 52b852216a Merge pull request \fI\%#34056\fP from vutny/rpmbuild\-support\-debian
  217888. .IP \(bu 2
  217889. 8ff36d4f2b Expose virtual pkgbuild module as rpmbuild on non\-RPM based systems if all required utilities are in place
  217890. .IP \(bu 2
  217891. 758f5cd77c Make rpmbuild module work on Debian GNU/Linux and derivatives
  217892. .UNINDENT
  217893. .IP \(bu 2
  217894. \fBPR\fP \fI\%#34073\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  217895. @ \fI2016\-06\-16 23:02:32 UTC\fP
  217896. .INDENT 2.0
  217897. .IP \(bu 2
  217898. f2a2c2bf53 Merge pull request \fI\%#34073\fP from rallytime/merge\-2016.3
  217899. .IP \(bu 2
  217900. f6bfaede21 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  217901. .IP \(bu 2
  217902. 1b76de1557 Merge pull request \fI\%#34069\fP from rallytime/test\-minion\-return\-message
  217903. .INDENT 2.0
  217904. .IP \(bu 2
  217905. 60561ac6fc Add a test to check for disconnected minion messaging
  217906. .UNINDENT
  217907. .IP \(bu 2
  217908. 3119693dac Merge pull request \fI\%#34048\fP from terminalmage/issue30100
  217909. .INDENT 2.0
  217910. .IP \(bu 2
  217911. 715e7af8a4 Ensure only one fileserver update in a masterless run
  217912. .UNINDENT
  217913. .IP \(bu 2
  217914. dd03024931 Merge pull request \fI\%#34011\fP from rallytime/bp\-33948\-2015.8
  217915. .INDENT 2.0
  217916. .IP \(bu 2
  217917. a4660d1ff7 Warn when custom returners don\(aqt have minions kwarg in save_load
  217918. .IP \(bu 2
  217919. 78befde62f Add note to release notes about returner minions kwarg change
  217920. .IP \(bu 2
  217921. 4e7f35fa36 Fix loop over cache in auth checking!
  217922. .IP \(bu 2
  217923. 06963e0505 Save an entire minion cache traversal on each master pub
  217924. .UNINDENT
  217925. .IP \(bu 2
  217926. bca437128e Fixed a bug in the consul.py module that was preventing services (\fI\%#34051\fP)
  217927. .IP \(bu 2
  217928. 8ba117c7f6 Merge pull request \fI\%#34045\fP from jacobhammons/release\-prev
  217929. .INDENT 2.0
  217930. .IP \(bu 2
  217931. 43b4a12aa2 Updated latest release version
  217932. .UNINDENT
  217933. .IP \(bu 2
  217934. f9bfcde61f Always make changes to minion config if set (\fI\%#34020\fP)
  217935. .IP \(bu 2
  217936. e25dba49e2 More YAML indentation fixes in state module examples (\fI\%#34030\fP)
  217937. .IP \(bu 2
  217938. 5b5eae4ca9 Merge pull request \fI\%#34018\fP from rallytime/merge\-2015.8
  217939. .INDENT 2.0
  217940. .IP \(bu 2
  217941. 77f44f3087 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  217942. .IP \(bu 2
  217943. 871f7966ce Lint fix for \fI\%#34000\fP (\fI\%#34005\fP)
  217944. .IP \(bu 2
  217945. f758e42172 Fix incorrectly written test (\fI\%#34000\fP)
  217946. .IP \(bu 2
  217947. cf6281b4cf Add loader.utils() example to calling minion_mods (\fI\%#33953\fP)
  217948. .IP \(bu 2
  217949. 6b98e8a9ea Merge pull request \fI\%#33880\fP from terminalmage/zh744
  217950. .INDENT 2.0
  217951. .IP \(bu 2
  217952. ea726d11c8 pkg.uptodate: Pass kwargs to pkg.list_upgrades
  217953. .IP \(bu 2
  217954. de90b35d2b salt/modules/zypper.py: add fromrepo support to list_upgrades
  217955. .IP \(bu 2
  217956. 35fbb06df5 salt/modules/win_pkg.py: add kwargs to list_upgrades
  217957. .IP \(bu 2
  217958. bf5505f425 salt/modules/solarisips.py: add kwargs to list_upgrades
  217959. .IP \(bu 2
  217960. 6e89a8be98 salt/modules/pkgutil.py: add kwargs to list_upgrades
  217961. .IP \(bu 2
  217962. 5179dbcec4 salt/modules/pacman.py: add kwargs to list_upgrades
  217963. .IP \(bu 2
  217964. 46e5a52784 salt/modules/macports.py: add kwargs to list_upgrades
  217965. .IP \(bu 2
  217966. 76143b76ca salt/modules/ebuild.py: add kwargs to list_upgrades
  217967. .IP \(bu 2
  217968. b40fc9bc62 salt/modules/brew.py: add kwargs to list_upgrades
  217969. .IP \(bu 2
  217970. 4f11c16d86 salt/modules/aptpkg.py: add fromrepo support to list_upgrades
  217971. .UNINDENT
  217972. .IP \(bu 2
  217973. cb88960ed1 Merge pull request \fI\%#33904\fP from rallytime/bp\-33806
  217974. .INDENT 2.0
  217975. .IP \(bu 2
  217976. 638ccf501d Work around upstream cherrypy bug
  217977. .UNINDENT
  217978. .UNINDENT
  217979. .IP \(bu 2
  217980. 7d940aed1f states.file: fix indentation in YAML examples (\fI\%#34003\fP)
  217981. .IP \(bu 2
  217982. 4c7fac0aaa Remove loader test for pam module (\fI\%#34002\fP)
  217983. .IP \(bu 2
  217984. c4dab6a074 Merge pull request \fI\%#33990\fP from jacobhammons/community\-projects
  217985. .INDENT 2.0
  217986. .IP \(bu 2
  217987. b20213fd79 Adds links to several current Salt\-related projects Removes the salt_projects.rst file which hasn\(aqt been updated in a long time, this is replaced by the updated topics/projects/index.rst file Adds a note about Salt Pack to the installation doc
  217988. .UNINDENT
  217989. .IP \(bu 2
  217990. 444c15792c Merge pull request \fI\%#33983\fP from twangboy/fix_docs_join_domain
  217991. .INDENT 2.0
  217992. .IP \(bu 2
  217993. b057be04b4 Fix typo, more documentation
  217994. .IP \(bu 2
  217995. d8c2f3e57a Clarify the \fIaccount_exists\fP parameter
  217996. .UNINDENT
  217997. .IP \(bu 2
  217998. 9bd2317992 Merge pull request \fI\%#33951\fP from jfindlay/gem_tests
  217999. .INDENT 2.0
  218000. .IP \(bu 2
  218001. 2eb633ccad modules.gem int tests: only check known installed gems
  218002. .IP \(bu 2
  218003. 9f3e18b037 modules.gem int tests: (un)install a non\-core gem
  218004. .UNINDENT
  218005. .IP \(bu 2
  218006. 53baae6eb1 Merge pull request \fI\%#33984\fP from jfindlay/disk_capacity
  218007. .INDENT 2.0
  218008. .IP \(bu 2
  218009. 6cbe31e6c2 states.disk: rewrite unit tests
  218010. .IP \(bu 2
  218011. 82c77b533f states.disk.status: validate percent values
  218012. .IP \(bu 2
  218013. aedc4e15e5 states.disk: add documentation
  218014. .UNINDENT
  218015. .IP \(bu 2
  218016. fa5efb6a69 Merge pull request \fI\%#33985\fP from rallytime/more\-batch\-tests
  218017. .INDENT 2.0
  218018. .IP \(bu 2
  218019. 3e7ab8c7b3 Write some more simple batch command tests
  218020. .UNINDENT
  218021. .IP \(bu 2
  218022. 6080846cce acl.ClientACL: add unit tests (\fI\%#33684\fP)
  218023. .UNINDENT
  218024. .IP \(bu 2
  218025. \fBISSUE\fP \fI\%#33831\fP: (\fI\%astehlik\fP) file.managed state should not download a file if the checksum did not change (refs: \fI\%#34010\fP)
  218026. .IP \(bu 2
  218027. \fBPR\fP \fI\%#34010\fP: (\fI\%terminalmage\fP) Do not cache remote files if they are already cached
  218028. @ \fI2016\-06\-16 21:03:47 UTC\fP
  218029. .INDENT 2.0
  218030. .IP \(bu 2
  218031. 790384f413 Merge pull request \fI\%#34010\fP from terminalmage/issue33831
  218032. .IP \(bu 2
  218033. 636d081ae0 Do not cache remote files if they are already cached
  218034. .UNINDENT
  218035. .IP \(bu 2
  218036. \fBPR\fP \fI\%#34009\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP to 2016.3 + add log message (refs: \fI\%#34011\fP)
  218037. @ \fI2016\-06\-16 21:01:09 UTC\fP
  218038. .INDENT 2.0
  218039. .IP \(bu 2
  218040. \fBPR\fP \fI\%#33948\fP: (\fI\%cachedout\fP) Save an entire minion cache traversal on each master pub (refs: \fI\%#34011\fP, \fI\%#34009\fP)
  218041. .IP \(bu 2
  218042. dd26d6fd74 Merge pull request \fI\%#34009\fP from rallytime/bp\-33948
  218043. .IP \(bu 2
  218044. 239af9ae5e Warn when custom returners don\(aqt have minions kwarg in save_load
  218045. .IP \(bu 2
  218046. c776d2d795 Add note to release notes about returner minions kwarg change
  218047. .IP \(bu 2
  218048. 5f696082e3 Fix loop over cache in auth checking!
  218049. .IP \(bu 2
  218050. 180c312715 Save an entire minion cache traversal on each master pub
  218051. .UNINDENT
  218052. .IP \(bu 2
  218053. \fBISSUE\fP \fI\%#33927\fP: (\fI\%phil123456\fP) Salt \- windows minion cannot do anything (refs: \fI\%#33941\fP)
  218054. .IP \(bu 2
  218055. \fBPR\fP \fI\%#33941\fP: (\fI\%cachedout\fP) Don\(aqt call os.getppid() on Windows
  218056. @ \fI2016\-06\-16 20:56:17 UTC\fP
  218057. .INDENT 2.0
  218058. .IP \(bu 2
  218059. 5f4ef46d2f Merge pull request \fI\%#33941\fP from cachedout/issue_33927
  218060. .IP \(bu 2
  218061. 5fe889c7f1 Don\(aqt call os.getppid() on Windows
  218062. .UNINDENT
  218063. .IP \(bu 2
  218064. \fBPR\fP \fI\%#34067\fP: (\fI\%jacobhammons\fP) Fixes doc refresh bug on chrome mobile.
  218065. @ \fI2016\-06\-16 18:44:12 UTC\fP
  218066. .INDENT 2.0
  218067. .IP \(bu 2
  218068. fa253aa62b Merge pull request \fI\%#34067\fP from jacobhammons/mobile\-fix
  218069. .IP \(bu 2
  218070. ce027fd769 Fixes doc refresh bug on chrome mobile.
  218071. .IP \(bu 2
  218072. \fBPR\fP \fI\%#34050\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34026\fP to 2016.3
  218073. .IP \(bu 2
  218074. \fBPR\fP \fI\%#34026\fP: (\fI\%bensherman\fP) removed method that doesn\(aqt exist (refs: \fI\%#34050\fP)
  218075. .UNINDENT
  218076. .IP \(bu 2
  218077. \fBPR\fP \fI\%#33987\fP: (\fI\%isbm\fP) inspectlib cleanup
  218078. @ \fI2016\-06\-15 22:09:31 UTC\fP
  218079. .INDENT 2.0
  218080. .IP \(bu 2
  218081. 73ff11585e Merge pull request \fI\%#33987\fP from isbm/isbm\-inspectlib\-cleanup
  218082. .IP \(bu 2
  218083. e36821510f Fix documentation: add an example how to export system to the Kiwi
  218084. .IP \(bu 2
  218085. fe300ccf73 Lintfix
  218086. .IP \(bu 2
  218087. 96423076b1 Add unit test for file tree
  218088. .IP \(bu 2
  218089. 8975036b27 Add get_unmanaged_files test
  218090. .IP \(bu 2
  218091. be5f12fcaf Add initial unit test for inspectlib.collector.Inspector
  218092. .IP \(bu 2
  218093. 652c96d7e7 Stop build (not implemented yet)
  218094. .IP \(bu 2
  218095. 58e85ea0ab Refactor class caller
  218096. .IP \(bu 2
  218097. 878f67674a Sort package names
  218098. .IP \(bu 2
  218099. c31818b4aa Fix lint: PEP8 multiplication of 4.
  218100. .IP \(bu 2
  218101. c87fff3680 Add root\-only warning when exporting system with Kiwi
  218102. .IP \(bu 2
  218103. 9bd80f02fc Implement users Kiwi export
  218104. .IP \(bu 2
  218105. e191f338c7 Cleanup code
  218106. .IP \(bu 2
  218107. 80f45defae Implement packages and patterns gathering
  218108. .IP \(bu 2
  218109. ad45a265f5 Add Debian support for the repo generator
  218110. .IP \(bu 2
  218111. 6280ad137e Semifix: sometimes SQLite3 is locked. TODO: a proper handling required.
  218112. .IP \(bu 2
  218113. 51567ab61d Implement SUSE repositories export
  218114. .IP \(bu 2
  218115. e4ac113927 Add Kiwi support to the collector/inspector
  218116. .IP \(bu 2
  218117. eceeb4ecf2 Add ability to specify an additional PID file
  218118. .IP \(bu 2
  218119. f522a91ac6 Add ISO/image build (stub) and export to the Kiwi
  218120. .IP \(bu 2
  218121. bb19684606 Add Kiwi processor exception
  218122. .IP \(bu 2
  218123. 805e2ce204 Add Kiwi exported (initial)
  218124. .IP \(bu 2
  218125. a52f9f7107 Add default configuration
  218126. .UNINDENT
  218127. .IP \(bu 2
  218128. \fBISSUE\fP \fI\%#34038\fP: (\fI\%Ch3LL\fP) user.list_users does not work on smartos (refs: \fI\%#34042\fP)
  218129. .INDENT 2.0
  218130. .IP \(bu 2
  218131. \fBPR\fP \fI\%#34042\fP: (\fI\%sjorge\fP) fix \fI\%#34038\fP
  218132. .UNINDENT
  218133. .IP \(bu 2
  218134. \fBPR\fP \fI\%#34025\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218135. @ \fI2016\-06\-15 19:41:00 UTC\fP
  218136. .INDENT 2.0
  218137. .IP \(bu 2
  218138. f546a00dc9 Merge pull request \fI\%#34025\fP from rallytime/merge\-2016.3
  218139. .UNINDENT
  218140. .IP \(bu 2
  218141. \fBPR\fP \fI\%#34044\fP: (\fI\%jacobhammons\fP) Updated latest release to 2016.3.1
  218142. @ \fI2016\-06\-15 19:20:28 UTC\fP
  218143. .INDENT 2.0
  218144. .IP \(bu 2
  218145. 3035520594 Merge pull request \fI\%#34044\fP from jacobhammons/3.1
  218146. .IP \(bu 2
  218147. a4b67fd1e9 Updated latest release to 2016.3.1 Clean up installation instructions code\-block type updates Add link to jinja tutorial
  218148. .IP \(bu 2
  218149. \fBPR\fP \fI\%#34014\fP: (\fI\%jnhmcknight\fP) fix launch config creation params
  218150. .IP \(bu 2
  218151. \fBPR\fP \fI\%#34021\fP: (\fI\%twangboy\fP) Always make changes to minion config if set (2016.3)
  218152. .UNINDENT
  218153. .IP \(bu 2
  218154. \fBPR\fP \fI\%#34031\fP: (\fI\%eliasp\fP) \fIstates.postgres_privileges\fP expects a real list, not a comma\-separated string
  218155. @ \fI2016\-06\-15 16:34:04 UTC\fP
  218156. .INDENT 2.0
  218157. .IP \(bu 2
  218158. 5f90717fd3 Merge pull request \fI\%#34031\fP from eliasp/2016.3\-salt.states.postgres_privileges\-doc\-priv\-list
  218159. .IP \(bu 2
  218160. d3198ea538 \fIstates.postgres_privileges\fP expects a real list, not a comma\-separated string for \fIprivileges\fP
  218161. .UNINDENT
  218162. .IP \(bu 2
  218163. \fBISSUE\fP \fI\%#33023\fP: (\fI\%cmclaughlin\fP) rest_cherrypy eauth can\(aqt handle some characters (refs: \fI\%#33995\fP)
  218164. .IP \(bu 2
  218165. \fBISSUE\fP \fI\%#23522\fP: (\fI\%nbirnel\fP) Update the best practices documentation to include simpler examples of of jinja dictionaries (refs: \fI\%#33995\fP)
  218166. .IP \(bu 2
  218167. \fBISSUE\fP \fI\%#12470\fP: (\fI\%whiteinge\fP) Document how to (and not NOT to) use Jinja in states (refs: \fI\%#33995\fP)
  218168. .IP \(bu 2
  218169. \fBISSUE\fP \fI\%#10480\fP: (\fI\%gravyboat\fP) Create documentation that talks about using Jinja specifically for Salt. (refs: \fI\%#33995\fP)
  218170. .IP \(bu 2
  218171. \fBISSUE\fP \fI\%#10206\fP: (\fI\%rabits\fP) Jinja import: Jinja variable \(aqsalt\(aq is undefined (refs: \fI\%#33995\fP)
  218172. .IP \(bu 2
  218173. \fBPR\fP \fI\%#33995\fP: (\fI\%jacobhammons\fP) Understanding Jinja topic, Jinja doc issues.
  218174. @ \fI2016\-06\-14 02:00:29 UTC\fP
  218175. .INDENT 2.0
  218176. .IP \(bu 2
  218177. 1132bc5d0b Merge pull request \fI\%#33995\fP from jacobhammons/doc\-fixes
  218178. .IP \(bu 2
  218179. 887a415138 Adds new Understanding Jinja topic, and fixes several Jinja doc issues. Removes the "Full list of builtin ..." from each module reference list, leaving just the module type for scanability.
  218180. .UNINDENT
  218181. .IP \(bu 2
  218182. \fBPR\fP \fI\%#33900\fP: (\fI\%amendlik\fP) Document sudo policy for gitfs post\-recieve hook
  218183. @ \fI2016\-06\-14 01:04:35 UTC\fP
  218184. .INDENT 2.0
  218185. .IP \(bu 2
  218186. a400f6a6c3 Merge pull request \fI\%#33900\fP from amendlik/gitfs\-hook\-doc
  218187. .IP \(bu 2
  218188. b4a28e2684 Add clarifying documentation about the need for sudo in the git hook
  218189. .IP \(bu 2
  218190. 1046279cb7 Document sudo policy for gitfs post\-recieve hook
  218191. .UNINDENT
  218192. .IP \(bu 2
  218193. \fBPR\fP \fI\%#33980\fP: (\fI\%twangboy\fP) Use full path to python.exe
  218194. @ \fI2016\-06\-14 00:46:14 UTC\fP
  218195. .INDENT 2.0
  218196. .IP \(bu 2
  218197. 28c886edd0 Merge pull request \fI\%#33980\fP from twangboy/fix_build
  218198. .IP \(bu 2
  218199. dd7d55afb9 Use full path to python.exe
  218200. .UNINDENT
  218201. .IP \(bu 2
  218202. \fBPR\fP \fI\%#33993\fP: (\fI\%s0undt3ch\fP) Call \fIsys.exit()\fP instead of \fIexit()\fP
  218203. @ \fI2016\-06\-14 00:30:46 UTC\fP
  218204. .INDENT 2.0
  218205. .IP \(bu 2
  218206. 26fee377ec Merge pull request \fI\%#33993\fP from s0undt3ch/2016.3
  218207. .IP \(bu 2
  218208. 34f7d90d9f Call \fIsys.exit()\fP instead of \fIexit()\fP
  218209. .UNINDENT
  218210. .IP \(bu 2
  218211. \fBPR\fP \fI\%#33976\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218212. @ \fI2016\-06\-13 19:29:40 UTC\fP
  218213. .INDENT 2.0
  218214. .IP \(bu 2
  218215. 2e934cffef Merge pull request \fI\%#33976\fP from rallytime/merge\-2016.3
  218216. .IP \(bu 2
  218217. 19d49d94f2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218218. .INDENT 2.0
  218219. .IP \(bu 2
  218220. a74f1b8077 ZD 762 (\fI\%#33942\fP)
  218221. .IP \(bu 2
  218222. 0281d491c6 Merge pull request \fI\%#33946\fP from rallytime/bp\-33698
  218223. .INDENT 2.0
  218224. .IP \(bu 2
  218225. 5fdfed1cb9 Make sure we only use GetConnection if we are using a proxy salt minion
  218226. .IP \(bu 2
  218227. 1505c5724b Fix a bug with self signed certificates and creating a new VM
  218228. .UNINDENT
  218229. .IP \(bu 2
  218230. dff3f51955 Merge pull request \fI\%#33952\fP from rallytime/fix\-33911
  218231. .INDENT 2.0
  218232. .IP \(bu 2
  218233. 03b7cbbd2c Add base argument to salt\-ssh grains wrapper for filter_by func
  218234. .UNINDENT
  218235. .IP \(bu 2
  218236. 4a8064918a Adds a "Generated on <timestamp>" line to the footer of each doc html page in the doc (\fI\%#33962\fP)
  218237. .UNINDENT
  218238. .UNINDENT
  218239. .IP \(bu 2
  218240. \fBISSUE\fP \fI\%#33868\fP: (\fI\%abalashov\fP) Returner configuration override options don\(aqt work for scheduled jobs (schedule module) (refs: \fI\%#33912\fP)
  218241. .IP \(bu 2
  218242. \fBPR\fP \fI\%#33912\fP: (\fI\%abalashov\fP) utils/schedule.py:handle_func() \- Fix for accessing returner configur…
  218243. @ \fI2016\-06\-13 17:18:04 UTC\fP
  218244. .INDENT 2.0
  218245. .IP \(bu 2
  218246. 8d8ed59b85 Merge pull request \fI\%#33912\fP from abalashov/abalashov/fix\-schedule\-returner\-config
  218247. .IP \(bu 2
  218248. b5a4f8b313 utils/schedule.py:handle_func() \- Fix for accessing returner configuration attributes \(aqreturn_config\(aq and \(aqreturn_kwargs\(aq.
  218249. .UNINDENT
  218250. .IP \(bu 2
  218251. \fBPR\fP \fI\%#33945\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218252. @ \fI2016\-06\-13 15:44:30 UTC\fP
  218253. .INDENT 2.0
  218254. .IP \(bu 2
  218255. 81e16bb93f Merge pull request \fI\%#33945\fP from rallytime/merge\-2016.3
  218256. .IP \(bu 2
  218257. b4ab322ce1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218258. .INDENT 2.0
  218259. .IP \(bu 2
  218260. b3ec39d644 Correct issue with ping on rotate with minion cache (\fI\%#33765\fP)
  218261. .IP \(bu 2
  218262. 378dd7ca06 Merge pull request \fI\%#33888\fP from jfindlay/random_check
  218263. .INDENT 2.0
  218264. .IP \(bu 2
  218265. 6acee3cc30 modules.random_org._query: only return text if present
  218266. .IP \(bu 2
  218267. 82f95429db modules.random_org unit tests: skip if random.org down
  218268. .IP \(bu 2
  218269. 1f9422e0cd utils.http.query: also except gaierror with tornado
  218270. .UNINDENT
  218271. .IP \(bu 2
  218272. 2dc1914e7c Add connecting_settings to boto_elb state attributes list (\fI\%#33936\fP)
  218273. .IP \(bu 2
  218274. 91a2184f2d Wait for up to a minute for sync_after_install (\fI\%#33917\fP)
  218275. .IP \(bu 2
  218276. ef6da0be5d Merge pull request \fI\%#33877\fP from rallytime/merge\-2015.8
  218277. .IP \(bu 2
  218278. 398534a9e7 Fix ret return from merge\-conflict resolution
  218279. .IP \(bu 2
  218280. b8e4706074 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  218281. .IP \(bu 2
  218282. cdda593c50 Merge pull request \fI\%#33829\fP from terminalmage/update\-versionchanged
  218283. .INDENT 2.0
  218284. .IP \(bu 2
  218285. f7028eb1c6 Update versionchanged directive
  218286. .UNINDENT
  218287. .IP \(bu 2
  218288. b8e6c144d8 Merge pull request \fI\%#33833\fP from terminalmage/issue33645
  218289. .INDENT 2.0
  218290. .IP \(bu 2
  218291. 91745c2a67 Support syncing pillar modules to masterless minions
  218292. .UNINDENT
  218293. .IP \(bu 2
  218294. e061788e81 Merge pull request \fI\%#33814\fP from terminalmage/archive\-extracted\-xz
  218295. .INDENT 2.0
  218296. .IP \(bu 2
  218297. 897a716df2 Support extraction of XZ archives in archive.extracted state
  218298. .UNINDENT
  218299. .IP \(bu 2
  218300. fa983e91cf Merge pull request \fI\%#33778\fP from sodium\-chloride/2015.5\-2016\-0604\-1938
  218301. .INDENT 2.0
  218302. .IP \(bu 2
  218303. a5fb6d7a69 Fix minor docstring issues
  218304. .UNINDENT
  218305. .IP \(bu 2
  218306. b9133326c8 Merge pull request \fI\%#33726\fP from jtand/sysmod_skip_valid_docs_glance
  218307. .INDENT 2.0
  218308. .IP \(bu 2
  218309. ebee8a89af glance.warn_until shouldn\(aqt be checked for a doc string
  218310. .UNINDENT
  218311. .IP \(bu 2
  218312. 137f0b19f3 Merge pull request \fI\%#33611\fP from TargetHolding/2015.5
  218313. .IP \(bu 2
  218314. 1dd15a603b solve\(aq TypeError: expected string or buffer\(aq in json/decoder.py
  218315. .IP \(bu 2
  218316. eaf42ca892 solve AttributeError: \(aqmodule\(aq object has no attribute \(aqexception\(aq
  218317. .UNINDENT
  218318. .UNINDENT
  218319. .IP \(bu 2
  218320. \fBPR\fP \fI\%#33960\fP: (\fI\%nulfox\fP) Fix mongo get_load to return full mongo record instead of non\-existant \(aqload\(aq key
  218321. @ \fI2016\-06\-13 15:37:46 UTC\fP
  218322. .INDENT 2.0
  218323. .IP \(bu 2
  218324. 68d261fe5b Merge pull request \fI\%#33960\fP from mecarus/2016.3
  218325. .IP \(bu 2
  218326. d622133a49 The jid load comes in directly, not as \(aqload\(aq key. Should return the mongo record directly without accessing keys
  218327. .UNINDENT
  218328. .IP \(bu 2
  218329. \fBPR\fP \fI\%#33961\fP: (\fI\%jacobhammons\fP) 2016.3.0 known issues update
  218330. @ \fI2016\-06\-13 02:59:21 UTC\fP
  218331. .INDENT 2.0
  218332. .IP \(bu 2
  218333. 8f56406507 Merge pull request \fI\%#33961\fP from jacobhammons/release
  218334. .IP \(bu 2
  218335. 2cf787d4ba 2016.3.0 known issues update
  218336. .IP \(bu 2
  218337. \fBPR\fP \fI\%#33908\fP: (\fI\%ticosax\fP) [boto_lambda] handle ommitted Permissions parameter
  218338. .UNINDENT
  218339. .IP \(bu 2
  218340. \fBISSUE\fP \fI\%#33575\fP: (\fI\%anlutro\fP) File states seem slower in 2016.3, especially on first cache retrieval (refs: \fI\%#33896\fP)
  218341. .IP \(bu 2
  218342. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  218343. .IP \(bu 2
  218344. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  218345. .IP \(bu 2
  218346. \fBPR\fP \fI\%#33896\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt deep copy context dict values.
  218347. @ \fI2016\-06\-10 15:32:54 UTC\fP
  218348. .INDENT 2.0
  218349. .IP \(bu 2
  218350. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#33896\fP)
  218351. .IP \(bu 2
  218352. 16b5e9dcc1 Merge pull request \fI\%#33896\fP from DSRCompany/issues/33575_do_not_deep_copy_context
  218353. .IP \(bu 2
  218354. 8e34d0a9c3 Don\(aqt deep copy context dict values.
  218355. .UNINDENT
  218356. .IP \(bu 2
  218357. \fBISSUE\fP \fI\%#3077\fP: (\fI\%torhve\fP) Client ACL and external auth system should have support for limiting functions to certain arguments (refs: \fI\%#29153\fP)
  218358. .IP \(bu 2
  218359. \fBPR\fP \fI\%#33905\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33847\fP to 2016.3
  218360. @ \fI2016\-06\-10 15:22:34 UTC\fP
  218361. .INDENT 2.0
  218362. .IP \(bu 2
  218363. \fBPR\fP \fI\%#33847\fP: (\fI\%whiteinge\fP) Add docs for arg/kwarg eauth matching (refs: \fI\%#33905\fP)
  218364. .IP \(bu 2
  218365. \fBPR\fP \fI\%#29153\fP: (\fI\%DmitryKuzmenko\fP) ACL limit args (refs: \fI\%#33847\fP)
  218366. .IP \(bu 2
  218367. 01323322b0 Merge pull request \fI\%#33905\fP from rallytime/bp\-33847
  218368. .INDENT 2.0
  218369. .IP \(bu 2
  218370. b6ebd7b6ef Add docs for arg/kwarg eauth matching
  218371. .UNINDENT
  218372. .IP \(bu 2
  218373. 261baeb5b5 Ensure tht pillar have freshest grains (\fI\%#33910\fP)
  218374. .IP \(bu 2
  218375. 00e016ecfc Add note about Xenial packages to 2016.3.0 release notes (\fI\%#33870\fP)
  218376. .UNINDENT
  218377. .UNINDENT
  218378. .SS Salt 2016.3.3 Release Notes
  218379. .sp
  218380. Version 2016.3.3 is a bugfix release for 2016.3.0\&.
  218381. .SS Statistics
  218382. .INDENT 0.0
  218383. .IP \(bu 2
  218384. Total Merges: \fB108\fP
  218385. .IP \(bu 2
  218386. Total Issue References: \fB26\fP
  218387. .IP \(bu 2
  218388. Total PR References: \fB115\fP
  218389. .IP \(bu 2
  218390. Contributors: \fB36\fP (\fI\%The\-Loeki\fP, \fI\%abednarik\fP, \fI\%cachedout\fP, \fI\%cro\fP, \fI\%deniszh\fP, \fI\%dkruger\fP, \fI\%dmurphy18\fP, \fI\%eliasp\fP, \fI\%farcaller\fP, \fI\%galet\fP, \fI\%gtmanfred\fP, \fI\%hu\-dabao\fP, \fI\%isbm\fP, \fI\%jacobhammons\fP, \fI\%jacobweinstock\fP, \fI\%jfindlay\fP, \fI\%justinta\fP, \fI\%kstreee\fP, \fI\%lubyou\fP, \fI\%markuskramerIgitt\fP, \fI\%meaksh\fP, \fI\%miihael\fP, \fI\%mzupan\fP, \fI\%nishigori\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%skizunov\fP, \fI\%tankywoo\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%theredcat\fP, \fI\%ticosax\fP, \fI\%tonybaloney\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%whiteinge\fP)
  218391. .UNINDENT
  218392. .SS Known Issues
  218393. .sp
  218394. \fI\%issue #36055\fP: Salt Cloud events (\fBsalt/cloud\fP) are not generated on the
  218395. master event bus when provisioning cloud systems.
  218396. .sp
  218397. \fI\%Bootstrap Issue #973\fP: \fBpython\-futures\fP is not installed when installing
  218398. from a git tag on RedHat\-based distributions. \fBPython futures\fP is needed when
  218399. .sp
  218400. running Salt with the TCP transport. This is fixed on the \fBdevelop\fP branch of
  218401. the \fI\%salt\-bootstrap repo\fP and the fix will be included in the upcoming release
  218402. of salt\-bootstrap, but is a bug in the bootstrap release that ships with this
  218403. version of Salt. Please see the \fI\%salt\-bootstrap repo\fP for more information on
  218404. how to update your bootstrap version.
  218405. .SS Changelog for v2016.3.2..v2016.3.3
  218406. .sp
  218407. \fIGenerated at: 2018\-05\-27 04:47:36 UTC\fP
  218408. .INDENT 0.0
  218409. .IP \(bu 2
  218410. \fBPR\fP \fI\%#35603\fP: (\fI\%rallytime\fP) Make sure version label is correct in header
  218411. .IP \(bu 2
  218412. \fBPR\fP \fI\%#35602\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.3
  218413. .IP \(bu 2
  218414. \fBISSUE\fP \fI\%#35102\fP: (\fI\%TheBigBear\fP) Exception raised when processing __virtual__ function for mac_system \- (mac os x installation relies on un\-installed \(aqmac_service_helper.sh\(aq) (refs: \fI\%#35580\fP)
  218415. .IP \(bu 2
  218416. \fBPR\fP \fI\%#35580\fP: (\fI\%twangboy\fP) Fix mac_service attempts to parse non\-plist files
  218417. @ \fI2016\-08\-19 09:24:38 UTC\fP
  218418. .INDENT 2.0
  218419. .IP \(bu 2
  218420. 9683bb3c58 Merge pull request \fI\%#35580\fP from twangboy/fix_35102
  218421. .IP \(bu 2
  218422. 4122e66ed5 Handle malformed plist files
  218423. .IP \(bu 2
  218424. 52feff9309 Fix mac_service attempts to parse non\-plist files
  218425. .UNINDENT
  218426. .IP \(bu 2
  218427. \fBPR\fP \fI\%#35586\fP: (\fI\%hu\-dabao\fP) Fix 35420, add run_on_start in build_schedule_item
  218428. @ \fI2016\-08\-19 09:23:32 UTC\fP
  218429. .INDENT 2.0
  218430. .IP \(bu 2
  218431. c4ec94d6e8 Merge pull request \fI\%#35586\fP from hu\-dabao/fix\-35420
  218432. .IP \(bu 2
  218433. 2d3a882cc2 fix 35420, add run_on_start in build_schedule_item, remove redundancy of enabled
  218434. .IP \(bu 2
  218435. \fBPR\fP \fI\%#35583\fP: (\fI\%terminalmage\fP) Fix localemod tests
  218436. .UNINDENT
  218437. .IP \(bu 2
  218438. \fBPR\fP \fI\%#35579\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218439. @ \fI2016\-08\-18 22:00:41 UTC\fP
  218440. .INDENT 2.0
  218441. .IP \(bu 2
  218442. d1339fd9f5 Merge pull request \fI\%#35579\fP from rallytime/merge\-2016.3
  218443. .IP \(bu 2
  218444. 00dff9dcbd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218445. .IP \(bu 2
  218446. 26a7f7d9f7 Merge pull request \fI\%#35577\fP from terminalmage/unit\-file\-changes
  218447. .INDENT 2.0
  218448. .IP \(bu 2
  218449. 6cb0fb47f3 pkg/salt\-syndic.service: change Type to notify
  218450. .IP \(bu 2
  218451. 175ba99e0e pkg/salt\-minion.service: remove KillMode, change Type to notify
  218452. .IP \(bu 2
  218453. 540ec28954 pkg/salt\-master.service: remove KillMode
  218454. .IP \(bu 2
  218455. 69fad464ab pkg/salt\-api.service: change Type to notify
  218456. .UNINDENT
  218457. .UNINDENT
  218458. .IP \(bu 2
  218459. \fBPR\fP \fI\%#35571\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218460. @ \fI2016\-08\-18 19:50:03 UTC\fP
  218461. .INDENT 2.0
  218462. .IP \(bu 2
  218463. f7a18234db Merge pull request \fI\%#35571\fP from rallytime/merge\-2016.3
  218464. .IP \(bu 2
  218465. 2930df924e Update localemod_test systemd.sd_booted mock to use salt.utils.systemd.booted
  218466. .IP \(bu 2
  218467. e61b04a707 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218468. .INDENT 2.0
  218469. .IP \(bu 2
  218470. 2a5d1a0eee fix\-35384, fix the logic caused by wrong indent (\fI\%#35566\fP)
  218471. .IP \(bu 2
  218472. feb852f8c0 Clarify config.get docstring (\fI\%#35492\fP)
  218473. .IP \(bu 2
  218474. 205d8e2e7b Merge pull request \fI\%#35483\fP from gtmanfred/2015.8
  218475. .INDENT 2.0
  218476. .IP \(bu 2
  218477. 2d8ec1e9db use __opts__ in salt.utils.cloud for cache functions
  218478. .UNINDENT
  218479. .IP \(bu 2
  218480. 70fa2d0901 Merge pull request \fI\%#35546\fP from whiteinge/salt\-api\-eauth\-fail\-gracefully
  218481. .INDENT 2.0
  218482. .IP \(bu 2
  218483. eb3574adae Don\(aqt fail hard if the user\(aqs permissions cannot be found
  218484. .IP \(bu 2
  218485. ec597bd54c Change groups check in token to look for truthy values
  218486. .UNINDENT
  218487. .IP \(bu 2
  218488. 61fec6caa9 add missing glob import (\fI\%#35525\fP)
  218489. .IP \(bu 2
  218490. 0e3f2fc6cb Whitespace fix for 2015.8 (\fI\%#35540\fP)
  218491. .IP \(bu 2
  218492. fd3274c800 Merge pull request \fI\%#35510\fP from terminalmage/issue33516
  218493. .INDENT 2.0
  218494. .IP \(bu 2
  218495. 5b5f19d269 Update zypper unit test to reflect call to config.get
  218496. .IP \(bu 2
  218497. 2730edb516 Add note about systemd\-run usage in package states
  218498. .IP \(bu 2
  218499. e2d9e87e10 salt/modules/systemd.py: Use systemd\-run \-\-scope where needed
  218500. .IP \(bu 2
  218501. 22919a25bc Notify systemd on salt\-api start
  218502. .IP \(bu 2
  218503. a40b3f8a08 Notify systemd on syndic start
  218504. .IP \(bu 2
  218505. e847d3af30 Notify systemd on minion start
  218506. .IP \(bu 2
  218507. d648887afc salt/modules/zypper.py: Use systemd\-run \-\-scope where needed
  218508. .IP \(bu 2
  218509. 2e17976722 salt/modules/yumpkg.py: Use systemd\-run \-\-scope where needed
  218510. .IP \(bu 2
  218511. 86b59c1e74 salt/modules/pacman.py: Use systemd\-run \-\-scope where needed
  218512. .IP \(bu 2
  218513. e32d92c6d5 salt/modules/ebuild.py: Use systemd\-run \-\-scope where needed
  218514. .IP \(bu 2
  218515. c7d21d3ae3 salt/modules/aptpkg.py: Use systemd\-run \-\-scope where needed
  218516. .IP \(bu 2
  218517. f83e0ef242 Add unit tests for salt.utils.systemd
  218518. .IP \(bu 2
  218519. 5b12f030c6 Add func to salt.utils.systemd to tell if scopes are available
  218520. .UNINDENT
  218521. .UNINDENT
  218522. .IP \(bu 2
  218523. \fBPR\fP \fI\%#35573\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33337\fP to 2016.3
  218524. .IP \(bu 2
  218525. \fBPR\fP \fI\%#33337\fP: (\fI\%mzupan\fP) adding the () to make changes work (refs: \fI\%#35573\fP)
  218526. .UNINDENT
  218527. .IP \(bu 2
  218528. \fBPR\fP \fI\%#35572\fP: (\fI\%terminalmage\fP) Fix poor formatting in pkg state docs
  218529. @ \fI2016\-08\-18 18:15:52 UTC\fP
  218530. .INDENT 2.0
  218531. .IP \(bu 2
  218532. 73b549ed00 Merge pull request \fI\%#35572\fP from terminalmage/docs
  218533. .IP \(bu 2
  218534. 7d7a7de9e6 Fix poor formatting in pkg state docs
  218535. .IP \(bu 2
  218536. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  218537. .IP \(bu 2
  218538. \fBPR\fP \fI\%saltstack/salt#35463\fP: (\fI\%skizunov\fP) Make \fIauth_timeout\fP user configurable again (refs: \fI\%#35489\fP)
  218539. .UNINDENT
  218540. .IP \(bu 2
  218541. \fBPR\fP \fI\%#35489\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35463\fP to 2016.3
  218542. @ \fI2016\-08\-18 07:16:03 UTC\fP
  218543. .INDENT 2.0
  218544. .IP \(bu 2
  218545. \fBPR\fP \fI\%#35463\fP: (\fI\%skizunov\fP) Make \fIauth_timeout\fP user configurable again (refs: \fI\%#35489\fP)
  218546. .IP \(bu 2
  218547. f2eb3dc105 Merge pull request \fI\%#35489\fP from rallytime/bp\-35463
  218548. .IP \(bu 2
  218549. bbf7ce121b Remove final self.MINION_CONNECT_TIMEOUT ref
  218550. .IP \(bu 2
  218551. cf2e2daab9 Make \fIauth_timeout\fP user configurable again
  218552. .IP \(bu 2
  218553. \fBPR\fP \fI\%#35538\fP: (\fI\%thatch45\fP) Treat python XML as an optdep
  218554. .UNINDENT
  218555. .IP \(bu 2
  218556. \fBPR\fP \fI\%#35526\fP: (\fI\%thatch45\fP) Always deploy the thin to /var/tmp
  218557. @ \fI2016\-08\-17 19:44:26 UTC\fP
  218558. .INDENT 2.0
  218559. .IP \(bu 2
  218560. e2bd575461 Merge pull request \fI\%#35526\fP from thatch45/ssh_W_tmp
  218561. .IP \(bu 2
  218562. a381f02cfe Always deploy the thin to /var/tmp
  218563. .UNINDENT
  218564. .IP \(bu 2
  218565. \fBPR\fP \fI\%#35522\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218566. @ \fI2016\-08\-17 18:07:16 UTC\fP
  218567. .INDENT 2.0
  218568. .IP \(bu 2
  218569. 8b770869e4 Merge pull request \fI\%#35522\fP from rallytime/merge\-2016.3
  218570. .IP \(bu 2
  218571. ff212d8976 Whitespace fix
  218572. .IP \(bu 2
  218573. c305d8d99b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218574. .IP \(bu 2
  218575. b3b28cb760 Might be a good idea to be able to download the software we make (\fI\%#35513\fP)
  218576. .IP \(bu 2
  218577. 9f87081cef Merge pull request \fI\%#35302\fP from Ch3LL/add_job_cache_test
  218578. .INDENT 2.0
  218579. .IP \(bu 2
  218580. ccb2a5cadf remove unused imports
  218581. .IP \(bu 2
  218582. 512ae81dfd remove TMP and add integration.TMP
  218583. .IP \(bu 2
  218584. c9b7c3cf80 need to add returners option in other places
  218585. .IP \(bu 2
  218586. 7316df7a02 fix pylint
  218587. .IP \(bu 2
  218588. 50a4f0fe6a fix comment
  218589. .IP \(bu 2
  218590. 6837acf742 add job cache integration tests
  218591. .UNINDENT
  218592. .IP \(bu 2
  218593. 1c82c6bee5 Merge pull request \fI\%#35512\fP from cachedout/fixup_35419
  218594. .INDENT 2.0
  218595. .IP \(bu 2
  218596. 253662541a Fix import
  218597. .IP \(bu 2
  218598. f16a30786b Fixes consul.agent_service_register which was broken for registering service checks.
  218599. .UNINDENT
  218600. .IP \(bu 2
  218601. e1a373fa4c Merge pull request \fI\%#35497\fP from deepakhj/2015.8
  218602. .INDENT 2.0
  218603. .IP \(bu 2
  218604. 685db4ab88 Fix spacing
  218605. .UNINDENT
  218606. .IP \(bu 2
  218607. 4048255ed6 Merge pull request \fI\%#35508\fP from terminalmage/update\-docstring
  218608. .INDENT 2.0
  218609. .IP \(bu 2
  218610. 67c945fce0 Add Carbon to versionadded for git.diff
  218611. .UNINDENT
  218612. .UNINDENT
  218613. .IP \(bu 2
  218614. \fBPR\fP \fI\%#35516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34441\fP to 2016.3
  218615. @ \fI2016\-08\-17 15:47:23 UTC\fP
  218616. .INDENT 2.0
  218617. .IP \(bu 2
  218618. \fBPR\fP \fI\%#34441\fP: (\fI\%markuskramerIgitt\fP) Copy and delete silently, do not list each file (refs: \fI\%#35516\fP)
  218619. .IP \(bu 2
  218620. e86a39a115 Merge pull request \fI\%#35516\fP from rallytime/bp\-34441
  218621. .IP \(bu 2
  218622. e47c661cb0 Copy and delete silently, do not list each file
  218623. .IP \(bu 2
  218624. \fBPR\fP \fI\%saltstack/salt#34502\fP: (\fI\%markuskramerIgitt\fP) Windows installer build scripts will exit on error (refs: \fI\%#35517\fP)
  218625. .UNINDENT
  218626. .IP \(bu 2
  218627. \fBPR\fP \fI\%#35517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34502\fP to 2016.3
  218628. @ \fI2016\-08\-17 15:47:10 UTC\fP
  218629. .INDENT 2.0
  218630. .IP \(bu 2
  218631. \fBPR\fP \fI\%#34502\fP: (\fI\%markuskramerIgitt\fP) Windows installer build scripts will exit on error (refs: \fI\%#35517\fP)
  218632. .IP \(bu 2
  218633. 45080d9860 Merge pull request \fI\%#35517\fP from rallytime/bp\-34502
  218634. .IP \(bu 2
  218635. 32da48df08 setup.py will not print each individual file
  218636. .IP \(bu 2
  218637. 698a076a39 Completely remove Python and verify
  218638. .IP \(bu 2
  218639. 7406bd22a6 Errors will stop the scripts
  218640. .UNINDENT
  218641. .IP \(bu 2
  218642. \fBPR\fP \fI\%#35429\fP: (\fI\%tankywoo\fP) Fix iptables target options with no arguments
  218643. @ \fI2016\-08\-17 10:05:17 UTC\fP
  218644. .INDENT 2.0
  218645. .IP \(bu 2
  218646. c1deb945d7 Merge pull request \fI\%#35429\fP from tankywoo/fix\-iptables\-target\-options
  218647. .IP \(bu 2
  218648. 914eb60d51 Fix iptables target options with no arguments
  218649. .UNINDENT
  218650. .IP \(bu 2
  218651. \fBISSUE\fP \fI\%#35458\fP: (\fI\%iggy\fP) SALT.STATES.APACHE_MODULE needs version annotations (refs: \fI\%#35495\fP)
  218652. .IP \(bu 2
  218653. \fBPR\fP \fI\%#35495\fP: (\fI\%rallytime\fP) Use correct deprecated notation instead of a warning for apache_module.enable state function.
  218654. @ \fI2016\-08\-17 09:36:40 UTC\fP
  218655. .INDENT 2.0
  218656. .IP \(bu 2
  218657. 678759ba6c Merge pull request \fI\%#35495\fP from rallytime/fix\-35458
  218658. .IP \(bu 2
  218659. 9bae3d09a6 Use correct deprecated notation instead of a warning.
  218660. .UNINDENT
  218661. .IP \(bu 2
  218662. \fBISSUE\fP \fI\%#35336\fP: (\fI\%Sylvain303\fP) documentation state.file.managed parameter template not reflecting TEMPLATE_REGISTRY (refs: \fI\%#35360\fP, \fI\%#35498\fP, \fI\%#35406\fP, #saltstack/salt\(ga#35360\(ga_)
  218663. .INDENT 2.0
  218664. .IP \(bu 2
  218665. \fBPR\fP \fI\%saltstack/salt#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35406\fP)
  218666. .UNINDENT
  218667. .IP \(bu 2
  218668. \fBPR\fP \fI\%#35498\fP: (\fI\%rallytime\fP) Add supported templates list to all template doc references in file state
  218669. @ \fI2016\-08\-17 09:33:36 UTC\fP
  218670. .INDENT 2.0
  218671. .IP \(bu 2
  218672. \fBPR\fP \fI\%#35406\fP: (\fI\%rallytime\fP) Provide links to the renderers in the template docs (refs: \fI\%#35498\fP)
  218673. .IP \(bu 2
  218674. \fBPR\fP \fI\%#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35498\fP)
  218675. .IP \(bu 2
  218676. 5bd44b10a7 Merge pull request \fI\%#35498\fP from rallytime/file\-state\-docs
  218677. .IP \(bu 2
  218678. 6190b2d738 Add supported templates list to all template doc references in file state
  218679. .UNINDENT
  218680. .IP \(bu 2
  218681. \fBPR\fP \fI\%#35487\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218682. @ \fI2016\-08\-16 18:36:21 UTC\fP
  218683. .INDENT 2.0
  218684. .IP \(bu 2
  218685. 6df4648765 Merge pull request \fI\%#35487\fP from rallytime/merge\-2016.3
  218686. .IP \(bu 2
  218687. c6c82be1de Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218688. .IP \(bu 2
  218689. bfe7107a87 Update bootstrap script to latest stable (2016.08.16) (\fI\%#35486\fP)
  218690. .IP \(bu 2
  218691. 240fc12863 Merge pull request \fI\%#35413\fP from cachedout/issue_35296
  218692. .INDENT 2.0
  218693. .IP \(bu 2
  218694. fb8a12d677 Fix silly error
  218695. .IP \(bu 2
  218696. 3646cf1afa Additional checks on master and integration test
  218697. .IP \(bu 2
  218698. 09efde7634 Splat the list into os.path.join
  218699. .IP \(bu 2
  218700. fc0d5878bc Set file_recv on test master
  218701. .IP \(bu 2
  218702. 81c4d136c5 Transition file push paths to lists
  218703. .UNINDENT
  218704. .IP \(bu 2
  218705. c3319b2a8b Merge pull request \fI\%#35476\fP from cachedout/issue_35380
  218706. .INDENT 2.0
  218707. .IP \(bu 2
  218708. c05fcf33d1 Fixup SSH bug where sudo without sudo user would break
  218709. .UNINDENT
  218710. .IP \(bu 2
  218711. 004778c966 Merge pull request \fI\%#35471\fP from terminalmage/issue34479
  218712. .INDENT 2.0
  218713. .IP \(bu 2
  218714. e243c63e43 win_pkg: Fix traceback when package is not installed
  218715. .UNINDENT
  218716. .IP \(bu 2
  218717. 5c9428c32d Merge pull request \fI\%#35448\fP from isbm/isbm\-zypper\-106\-fix
  218718. .INDENT 2.0
  218719. .IP \(bu 2
  218720. dd82e6a848 Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on unavailable repos
  218721. .UNINDENT
  218722. .IP \(bu 2
  218723. 1473474b04 Merge pull request \fI\%#35451\fP from isbm/isbm\-zypper\-mod_repo\-unchanged
  218724. .INDENT 2.0
  218725. .IP \(bu 2
  218726. 8790197d86 Fix Unit test for suppressing the exception removal on non\-modified repos
  218727. .IP \(bu 2
  218728. 3f00c6997a Remove zypper\(aqs raise exception if mod_repo has no arguments and/or no changes
  218729. .UNINDENT
  218730. .IP \(bu 2
  218731. a8c4f17f50 Merge pull request \fI\%#35453\fP from theothergraham/fix_CacheDisk
  218732. .INDENT 2.0
  218733. .IP \(bu 2
  218734. ae5b233d51 fixes \fI\%#34279\fP
  218735. .UNINDENT
  218736. .IP \(bu 2
  218737. d8c35b5260 Merge pull request \fI\%#35459\fP from thatch45/shim_fix
  218738. .INDENT 2.0
  218739. .IP \(bu 2
  218740. 10037b00cb Some environments refuse to return the command output
  218741. .UNINDENT
  218742. .IP \(bu 2
  218743. 38b60a32e5 [2015.8] Update bootstrap script to latest stable (2016.08.15) (\fI\%#35460\fP)
  218744. .UNINDENT
  218745. .IP \(bu 2
  218746. \fBISSUE\fP \fI\%#34161\fP: (\fI\%bobrik\fP) Salt command can hang forever because of one broken minion (refs: \fI\%#35446\fP)
  218747. .INDENT 2.0
  218748. .IP \(bu 2
  218749. \fBPR\fP \fI\%#35446\fP: (\fI\%cachedout\fP) Make salt\-client aware of edge\-case where saltutil might be broken
  218750. .UNINDENT
  218751. .IP \(bu 2
  218752. \fBISSUE\fP \fI\%#35422\fP: (\fI\%ViaviSolutions\fP) aptpkg.py: install_recommends: True does not force "\-\-install\-recommends" (refs: \fI\%#35449\fP)
  218753. .IP \(bu 2
  218754. \fBPR\fP \fI\%#35449\fP: (\fI\%dkruger\fP) aptpkg will specify \-\-install\-recommends if enabled by the SLS
  218755. @ \fI2016\-08\-16 01:38:56 UTC\fP
  218756. .INDENT 2.0
  218757. .IP \(bu 2
  218758. f90ecbb15e Merge pull request \fI\%#35449\fP from dkruger/fix\-35422
  218759. .IP \(bu 2
  218760. f54bf445b5 aptpkg will specify \-\-install\-recommends if enabled by the SLS
  218761. .UNINDENT
  218762. .IP \(bu 2
  218763. \fBISSUE\fP \fI\%#33367\fP: (\fI\%supertom\fP) [salt\-cloud] libcloud >= 1.0.0 incompatible regarding node_state (refs: \fI\%#33518\fP)
  218764. .IP \(bu 2
  218765. \fBPR\fP \fI\%#35467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33518\fP to 2016.3
  218766. @ \fI2016\-08\-16 01:17:01 UTC\fP
  218767. .INDENT 2.0
  218768. .IP \(bu 2
  218769. \fBPR\fP \fI\%#35235\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33518\fP to 2016.3 (refs: \fI\%#35467\fP)
  218770. .IP \(bu 2
  218771. \fBPR\fP \fI\%#33518\fP: (\fI\%tonybaloney\fP) Fix libcloud bug \fI\%#33367\fP (refs: \fI\%#35235\fP, \fI\%#35467\fP)
  218772. .IP \(bu 2
  218773. d2dd78e25b Merge pull request \fI\%#35467\fP from rallytime/bp\-33518
  218774. .IP \(bu 2
  218775. e427815caf fix clrf
  218776. .IP \(bu 2
  218777. be41a400fa commit fix
  218778. .IP \(bu 2
  218779. 06530b5461 add a test to check existing functionality is broken
  218780. .IP \(bu 2
  218781. \fBPR\fP \fI\%#35461\fP: (\fI\%rallytime\fP) [2016.3] Update bootstrap script to latest stable (2016.08.15)
  218782. .UNINDENT
  218783. .IP \(bu 2
  218784. \fBPR\fP \fI\%#35456\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218785. @ \fI2016\-08\-15 19:16:23 UTC\fP
  218786. .INDENT 2.0
  218787. .IP \(bu 2
  218788. 9b2c075611 Merge pull request \fI\%#35456\fP from rallytime/merge\-2016.3
  218789. .IP \(bu 2
  218790. 6a86a12294 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218791. .IP \(bu 2
  218792. d75005c519 Fix cp.push_dir pushing empty dirs (\fI\%#35442\fP)
  218793. .IP \(bu 2
  218794. 09925ba353 Minor doc fixup (\fI\%#35436\fP)
  218795. .IP \(bu 2
  218796. a0b128a85a Merge pull request \fI\%#35132\fP from sjorge/2015.8\-35121
  218797. .INDENT 2.0
  218798. .IP \(bu 2
  218799. 5cb38c8ae0 switch to fpread().splitlines(), as per @lorengordon suggestion
  218800. .IP \(bu 2
  218801. 634f1dded5 fixes \fI\%#35121\fP, causing lots of mayham (onchange) with 2016.3.2 for me
  218802. .UNINDENT
  218803. .IP \(bu 2
  218804. \fBPR\fP \fI\%saltstack/salt#35308\fP: (\fI\%farcaller\fP) Actually fixed dockerng.list_tags (refs: \fI\%#35447\fP)
  218805. .IP \(bu 2
  218806. \fBPR\fP \fI\%saltstack/salt#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags (refs: \fI\%#35447\fP)
  218807. .IP \(bu 2
  218808. \fBPR\fP \fI\%#35447\fP: (\fI\%ticosax\fP) [dockerng] RepoTags can be also be None with docker 1.12
  218809. .IP \(bu 2
  218810. \fBPR\fP \fI\%#34702\fP: (\fI\%farcaller\fP) Fixed dockerng.list_tags (refs: #\(gasaltstack/salt#35308\(ga_)
  218811. .UNINDENT
  218812. .IP \(bu 2
  218813. \fBISSUE\fP \fI\%saltstack/salt#35403\fP: (\fI\%randomed\fP) Setting ext_job_cache breaks on salt\-master (refs: \fI\%#35427\fP)
  218814. .INDENT 2.0
  218815. .IP \(bu 2
  218816. \fBPR\fP \fI\%#35427\fP: (\fI\%cachedout\fP) Correct errant call to argspec from master. Fix ext_job_cache.
  218817. .UNINDENT
  218818. .IP \(bu 2
  218819. \fBISSUE\fP \fI\%#35423\fP: (\fI\%Ch3LL\fP) Stacktrace when running state.sls against an sls does not exist (refs: \fI\%#35428\fP)
  218820. .INDENT 2.0
  218821. .IP \(bu 2
  218822. \fBPR\fP \fI\%#35428\fP: (\fI\%cachedout\fP) Resolve stacktrace logged by highstate outputter if sls cannot be found
  218823. .UNINDENT
  218824. .IP \(bu 2
  218825. \fBPR\fP \fI\%#35412\fP: (\fI\%s0undt3ch\fP) Only allow one sync read to happen at a time.
  218826. @ \fI2016\-08\-12 23:57:29 UTC\fP
  218827. .INDENT 2.0
  218828. .IP \(bu 2
  218829. 607169a01b Merge pull request \fI\%#35412\fP from s0undt3ch/2016.3
  218830. .IP \(bu 2
  218831. f54b3cc514 Only allow one sync read to happen at a time.
  218832. .UNINDENT
  218833. .IP \(bu 2
  218834. \fBISSUE\fP \fI\%#35336\fP: (\fI\%Sylvain303\fP) documentation state.file.managed parameter template not reflecting TEMPLATE_REGISTRY (refs: \fI\%#35360\fP, \fI\%#35498\fP, \fI\%#35406\fP, #saltstack/salt\(ga#35360\(ga_)
  218835. .INDENT 2.0
  218836. .IP \(bu 2
  218837. \fBPR\fP \fI\%saltstack/salt#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35406\fP)
  218838. .IP \(bu 2
  218839. \fBPR\fP \fI\%#35406\fP: (\fI\%rallytime\fP) Provide links to the renderers in the template docs (refs: \fI\%#35498\fP)
  218840. .UNINDENT
  218841. .IP \(bu 2
  218842. \fBPR\fP \fI\%#35393\fP: (\fI\%deniszh\fP) No need to run ddns update every time
  218843. @ \fI2016\-08\-12 12:40:36 UTC\fP
  218844. .INDENT 2.0
  218845. .IP \(bu 2
  218846. b3e9e98b40 Merge pull request \fI\%#35393\fP from deniszh/2016.3_fix35350
  218847. .IP \(bu 2
  218848. 6f2f080f4a No need to run dns update every time
  218849. .UNINDENT
  218850. .IP \(bu 2
  218851. \fBPR\fP \fI\%#35407\fP: (\fI\%hu\-dabao\fP) [Fix\-35094] None will not be added to grains which generate [none]
  218852. @ \fI2016\-08\-12 12:34:05 UTC\fP
  218853. .INDENT 2.0
  218854. .IP \(bu 2
  218855. a5fe05b7f9 Merge pull request \fI\%#35407\fP from hu\-dabao/fix\-35094
  218856. .IP \(bu 2
  218857. a23108f795 None will not be added to grains which generate [none]
  218858. .UNINDENT
  218859. .IP \(bu 2
  218860. \fBPR\fP \fI\%#35411\fP: (\fI\%eliasp\fP) modules.event.send(): Prevent backtrace for masterless Minions
  218861. @ \fI2016\-08\-12 12:29:02 UTC\fP
  218862. .INDENT 2.0
  218863. .IP \(bu 2
  218864. 4dc776ffbf Merge pull request \fI\%#35411\fP from eliasp/2016.3\-modules.event\-handle\-file_client\-opt
  218865. .IP \(bu 2
  218866. 8d7244bdd9 modules.event.send(): Also check for \fIfile_client\fP and \fIuse_master_when_local\fP opts
  218867. .UNINDENT
  218868. .IP \(bu 2
  218869. \fBPR\fP \fI\%#35395\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218870. @ \fI2016\-08\-11 20:59:37 UTC\fP
  218871. .INDENT 2.0
  218872. .IP \(bu 2
  218873. c032506e6b Merge pull request \fI\%#35395\fP from rallytime/merge\-2016.3
  218874. .IP \(bu 2
  218875. 0d1aa630f1 Lint fix
  218876. .IP \(bu 2
  218877. cf038ee3fe Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218878. .IP \(bu 2
  218879. d9c20c0456 Update freebsd.rst (\fI\%#35394\fP)
  218880. .IP \(bu 2
  218881. a375dd7e1f Clean up open filehandles (\fI\%#35359\fP)
  218882. .IP \(bu 2
  218883. 9ea7a34c30 Merge pull request \fI\%#35339\fP from isbm/isbm\-2015.8\-minion\-importerror\-fix
  218884. .INDENT 2.0
  218885. .IP \(bu 2
  218886. 12af60b7be Fix continuous minion restart if a dependency wasn\(aqt installed
  218887. .UNINDENT
  218888. .IP \(bu 2
  218889. fd9b05ace4 Merge pull request \fI\%#35357\fP from twangboy/file.recurse.clean.2015.8
  218890. .INDENT 2.0
  218891. .IP \(bu 2
  218892. d328ec0157 Fix file.recurse with clean: True
  218893. .UNINDENT
  218894. .UNINDENT
  218895. .IP \(bu 2
  218896. \fBISSUE\fP \fI\%#35226\fP: (\fI\%mathieubouchard\fP) Do not throw an exception when an invalid requisite is set (refs: \fI\%#35373\fP)
  218897. .INDENT 2.0
  218898. .IP \(bu 2
  218899. \fBPR\fP \fI\%#35373\fP: (\fI\%cachedout\fP) Raise SaltRenderError on bad requisite
  218900. .UNINDENT
  218901. .IP \(bu 2
  218902. \fBPR\fP \fI\%#35352\fP: (\fI\%twangboy\fP) Fix file.recurse with clean: True on Windows (2016.3)
  218903. @ \fI2016\-08\-11 00:46:11 UTC\fP
  218904. .INDENT 2.0
  218905. .IP \(bu 2
  218906. 72f3548671 Merge pull request \fI\%#35352\fP from twangboy/file.recurse.clean
  218907. .IP \(bu 2
  218908. ecad616d08 Fix file.recurse with clean: True
  218909. .UNINDENT
  218910. .IP \(bu 2
  218911. \fBPR\fP \fI\%#35356\fP: (\fI\%jfindlay\fP) document log levels and warn on all logging below info
  218912. @ \fI2016\-08\-11 00:45:56 UTC\fP
  218913. .INDENT 2.0
  218914. .IP \(bu 2
  218915. 0fcfc70cc8 Merge pull request \fI\%#35356\fP from jfindlay/log_levels
  218916. .IP \(bu 2
  218917. 2fc3a55338 utils.verify.verify_log: warn at all levels less than info
  218918. .IP \(bu 2
  218919. 72a3f18a2e log.setup: minor optimization
  218920. .IP \(bu 2
  218921. 66332510c6 doc.ref.configuration.logging: document log levels
  218922. .IP \(bu 2
  218923. 93616eff3e doc.ref.configuration.logging: fix formatting
  218924. .IP \(bu 2
  218925. 472a2d31de doc.ref.configuration.logging: cleanup formatting
  218926. .UNINDENT
  218927. .IP \(bu 2
  218928. \fBPR\fP \fI\%#35358\fP: (\fI\%twangboy\fP) Update libsodium deps
  218929. @ \fI2016\-08\-11 00:36:30 UTC\fP
  218930. .INDENT 2.0
  218931. .IP \(bu 2
  218932. 2f7be03053 Merge pull request \fI\%#35358\fP from twangboy/update_libsodium_deps
  218933. .IP \(bu 2
  218934. d120a8906f Add vcredist 14 dlls
  218935. .UNINDENT
  218936. .IP \(bu 2
  218937. \fBISSUE\fP \fI\%#35336\fP: (\fI\%Sylvain303\fP) documentation state.file.managed parameter template not reflecting TEMPLATE_REGISTRY (refs: \fI\%#35360\fP, \fI\%#35498\fP, \fI\%#35406\fP, #saltstack/salt\(ga#35360\(ga_)
  218938. .IP \(bu 2
  218939. \fBPR\fP \fI\%#35360\fP: (\fI\%rallytime\fP) Add all template registery templates to file.managed docs (refs: \fI\%#35498\fP)
  218940. @ \fI2016\-08\-11 00:35:20 UTC\fP
  218941. .INDENT 2.0
  218942. .IP \(bu 2
  218943. f9e03b9c59 Merge pull request \fI\%#35360\fP from rallytime/fix\-35336
  218944. .IP \(bu 2
  218945. 30badb5402 Add all template registery templates to file.managed docs
  218946. .UNINDENT
  218947. .IP \(bu 2
  218948. \fBISSUE\fP \fI\%#24745\fP: (\fI\%The\-Loeki\fP) RFC: disk versus blockdev (refs: \fI\%#24893\fP)
  218949. .INDENT 2.0
  218950. .IP \(bu 2
  218951. \fBPR\fP \fI\%saltstack/salt#25267\fP: (\fI\%jfindlay\fP) Disk module improvements (refs: \fI\%#35361\fP)
  218952. .UNINDENT
  218953. .IP \(bu 2
  218954. \fBPR\fP \fI\%#35362\fP: (\fI\%rallytime\fP) Correct deprecation version tags
  218955. @ \fI2016\-08\-11 00:34:38 UTC\fP
  218956. .INDENT 2.0
  218957. .IP \(bu 2
  218958. \fBPR\fP \fI\%#35361\fP: (\fI\%rallytime\fP) Blockdev deprecations (refs: \fI\%#35362\fP)
  218959. .IP \(bu 2
  218960. \fBPR\fP \fI\%#25267\fP: (\fI\%jfindlay\fP) Disk module improvements (refs: \fI\%#35362\fP)
  218961. .IP \(bu 2
  218962. \fBPR\fP \fI\%#24893\fP: (\fI\%The\-Loeki\fP) Contribution: Disk module improvements (refs: #\(gasaltstack/salt\(ga#25267\(ga_\(ga_, \fI\%#25267\fP)
  218963. .IP \(bu 2
  218964. 3c628d3cbc Merge pull request \fI\%#35362\fP from rallytime/correct\-deprecated\-tag
  218965. .IP \(bu 2
  218966. 507827a014 Correct deprecation version tags
  218967. .UNINDENT
  218968. .IP \(bu 2
  218969. \fBPR\fP \fI\%#35347\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  218970. @ \fI2016\-08\-10 20:07:42 UTC\fP
  218971. .INDENT 2.0
  218972. .IP \(bu 2
  218973. 87e29188c0 Merge pull request \fI\%#35347\fP from rallytime/merge\-2016.3
  218974. .IP \(bu 2
  218975. a651962e95 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  218976. .IP \(bu 2
  218977. 4618b433e9 Merge pull request \fI\%#35323\fP from thatch45/ssh_crazy
  218978. .INDENT 2.0
  218979. .IP \(bu 2
  218980. 8a5b47b5d7 Collect all error data from the wfuncs call
  218981. .IP \(bu 2
  218982. 11864c31b7 supress a stack trace to show clean ssh error
  218983. .IP \(bu 2
  218984. 9fbfa282fa wow this solves an issue!
  218985. .UNINDENT
  218986. .IP \(bu 2
  218987. cfae862972 Merge pull request \fI\%#35325\fP from kev009/fbsd\-netstat\-route
  218988. .INDENT 2.0
  218989. .IP \(bu 2
  218990. 0d49dd3c29 Fix fbsd netstat route on fbsd 10+
  218991. .UNINDENT
  218992. .IP \(bu 2
  218993. 244c3bd495 Pass port to ssh.check_known_host, closes \fI\%#35264\fP (\fI\%#35301\fP)
  218994. .IP \(bu 2
  218995. 243909f39d file.recurse: Do not convert octal mode string to int (\fI\%#35309\fP)
  218996. .IP \(bu 2
  218997. \fBPR\fP \fI\%#35334\fP: (\fI\%cachedout\fP) Restore random_master functionality
  218998. .UNINDENT
  218999. .IP \(bu 2
  219000. \fBPR\fP \fI\%#35331\fP: (\fI\%hu\-dabao\fP) fix 35165, salt\-run jobs.exit_success jid is broken
  219001. @ \fI2016\-08\-10 11:50:10 UTC\fP
  219002. .INDENT 2.0
  219003. .IP \(bu 2
  219004. 78dfd18ec6 Merge pull request \fI\%#35331\fP from hu\-dabao/fix\-35165
  219005. .IP \(bu 2
  219006. 4dcce18d01 fix 35165, salt\-run jobs.exit_success jid is broken
  219007. .UNINDENT
  219008. .IP \(bu 2
  219009. \fBPR\fP \fI\%#35318\fP: (\fI\%rallytime\fP) Remove legacy compat docs in mysql pillar since the code was removed already
  219010. @ \fI2016\-08\-10 11:34:48 UTC\fP
  219011. .INDENT 2.0
  219012. .IP \(bu 2
  219013. \fBPR\fP \fI\%#30913\fP: (\fI\%justinta\fP) Deprecated code removed. (refs: \fI\%#35318\fP)
  219014. .IP \(bu 2
  219015. fcca0b9333 Merge pull request \fI\%#35318\fP from rallytime/remove\-deprecation\-docs
  219016. .IP \(bu 2
  219017. 75f205e485 Remove legacy compat docs in mysql pillar since the code was removed already
  219018. .UNINDENT
  219019. .IP \(bu 2
  219020. \fBPR\fP \fI\%#35329\fP: (\fI\%hu\-dabao\fP) sys.doc will skip all not connected minions
  219021. @ \fI2016\-08\-10 11:18:22 UTC\fP
  219022. .INDENT 2.0
  219023. .IP \(bu 2
  219024. 3446dc9ec6 Merge pull request \fI\%#35329\fP from hu\-dabao/fix\-tiny\-salt\-cli
  219025. .IP \(bu 2
  219026. 4b806a70ea sys.doc will skip all not connected minions
  219027. .UNINDENT
  219028. .IP \(bu 2
  219029. \fBPR\fP \fI\%#35306\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219030. @ \fI2016\-08\-09 18:50:44 UTC\fP
  219031. .INDENT 2.0
  219032. .IP \(bu 2
  219033. 31f7d307a7 Merge pull request \fI\%#35306\fP from rallytime/merge\-2016.3
  219034. .IP \(bu 2
  219035. 2d3eadfe49 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219036. .IP \(bu 2
  219037. 2efc1b333b Merge pull request \fI\%#35290\fP from terminalmage/issue35051
  219038. .INDENT 2.0
  219039. .IP \(bu 2
  219040. d621aa7b61 Update runner/wheel unit tests to reflect new key in ret dict
  219041. .IP \(bu 2
  219042. 90c12a9c7b Add __orchestration__ key to orch returns for runner/wheel funcs
  219043. .IP \(bu 2
  219044. 7b8c3b86e7 Suppress error about invalid changes data for orchestration jobs
  219045. .IP \(bu 2
  219046. 54a1704d6c Suppress event for wheel/runner funcs executed from orchestration
  219047. .IP \(bu 2
  219048. f409f62bf2 Accept print_event option in WheelClient.cmd()
  219049. .IP \(bu 2
  219050. b42b25ccce Add cmd func for RunnerClient
  219051. .IP \(bu 2
  219052. 480065fe00 Add print_event option to client mixins
  219053. .UNINDENT
  219054. .UNINDENT
  219055. .IP \(bu 2
  219056. \fBPR\fP \fI\%#35229\fP: (\fI\%lubyou\fP) Ignore import error for pwd module in mac_shadow
  219057. @ \fI2016\-08\-09 15:48:16 UTC\fP
  219058. .INDENT 2.0
  219059. .IP \(bu 2
  219060. 94529d0578 Merge pull request \fI\%#35229\fP from lubyou/fix\-mac_shadow
  219061. .IP \(bu 2
  219062. b45039c240 Do not blindly ignore import failures
  219063. .IP \(bu 2
  219064. c1d5670b79 Ignore import error for pwd module
  219065. .UNINDENT
  219066. .IP \(bu 2
  219067. \fBPR\fP \fI\%#35227\fP: (\fI\%isbm\fP) Isbm osfinger ubuntu fix
  219068. @ \fI2016\-08\-09 15:38:31 UTC\fP
  219069. .INDENT 2.0
  219070. .IP \(bu 2
  219071. ce7aeb6ca4 Merge pull request \fI\%#35227\fP from isbm/isbm\-osfinger\-ubuntu\-fix
  219072. .IP \(bu 2
  219073. fe5da97283 Lintfix: E8303
  219074. .IP \(bu 2
  219075. 6eea62d4ec Add a deprecation warning
  219076. .IP \(bu 2
  219077. 4dc45f2509 Add grains unit test for Ubuntu systems
  219078. .IP \(bu 2
  219079. 3904e4b81c Bugfix: Ubuntu osfinger should contain also minor version
  219080. .IP \(bu 2
  219081. a69f97f9ad Bugfix: use oscodename if lsb_distrib_codename key exists empty.
  219082. .UNINDENT
  219083. .IP \(bu 2
  219084. \fBPR\fP \fI\%#35286\fP: (\fI\%hu\-dabao\fP) fix 34425, a bug that sys.doc cannot output format
  219085. @ \fI2016\-08\-09 09:50:12 UTC\fP
  219086. .INDENT 2.0
  219087. .IP \(bu 2
  219088. 47e328f755 Merge pull request \fI\%#35286\fP from hu\-dabao/fix\-34425
  219089. .IP \(bu 2
  219090. 86fb359f58 fix 34425, a bug that sys.doc cannot output format
  219091. .UNINDENT
  219092. .IP \(bu 2
  219093. \fBISSUE\fP \fI\%#27294\fP: (\fI\%stenstad\fP) salt\-cloud should support Openstack Identitiy v3 for authentication (refs: \fI\%#35213\fP)
  219094. .IP \(bu 2
  219095. \fBPR\fP \fI\%#35275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35213\fP to 2016.3
  219096. @ \fI2016\-08\-09 00:02:43 UTC\fP
  219097. .INDENT 2.0
  219098. .IP \(bu 2
  219099. \fBPR\fP \fI\%#35213\fP: (\fI\%gtmanfred\fP) add identity v3 support to openstack driver (refs: \fI\%#35275\fP)
  219100. .IP \(bu 2
  219101. d79cb1b4ec Merge pull request \fI\%#35275\fP from rallytime/bp\-35213
  219102. .IP \(bu 2
  219103. 9b9fc508cc add identity v3 support to openstack driver
  219104. .IP \(bu 2
  219105. \fBPR\fP \fI\%#35278\fP: (\fI\%dmurphy18\fP) Increase timeout for siging to 10 seconds when signing rpm packages
  219106. .UNINDENT
  219107. .IP \(bu 2
  219108. \fBPR\fP \fI\%#35276\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219109. @ \fI2016\-08\-08 18:20:29 UTC\fP
  219110. .INDENT 2.0
  219111. .IP \(bu 2
  219112. 959a00e4b7 Merge pull request \fI\%#35276\fP from rallytime/merge\-2016.3
  219113. .IP \(bu 2
  219114. 2b4c156df1 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219115. .IP \(bu 2
  219116. f8158124d5 Merge pull request \fI\%#35211\fP from cachedout/issue_31074
  219117. .INDENT 2.0
  219118. .IP \(bu 2
  219119. 6f53232e6d Better error handling and a workaround for group mismatch.
  219120. .IP \(bu 2
  219121. 5b56a4acf7 Docs
  219122. .IP \(bu 2
  219123. ae04e7aaeb Initial POC
  219124. .UNINDENT
  219125. .IP \(bu 2
  219126. 3e4eb13daa Merge pull request \fI\%#35271\fP from bobrik/default\-output\-profile
  219127. .INDENT 2.0
  219128. .IP \(bu 2
  219129. 6cdee21036 Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  219130. .UNINDENT
  219131. .IP \(bu 2
  219132. 673e1aa1aa Merge pull request \fI\%#35233\fP from terminalmage/issue32719
  219133. .INDENT 2.0
  219134. .IP \(bu 2
  219135. 730a077041 Do not attempt to get fqdn_ip{4,6} grains when ipv{4,6} grains are empty
  219136. .UNINDENT
  219137. .IP \(bu 2
  219138. cdf3c0fe73 Merge pull request \fI\%#35202\fP from multani/fix/test\-doc
  219139. .INDENT 2.0
  219140. .IP \(bu 2
  219141. 1642dba5d1 doc: fix broken links in the test documentation page
  219142. .UNINDENT
  219143. .IP \(bu 2
  219144. e1331cd2a3 Merge pull request \fI\%#35236\fP from rallytime/bp\-35119
  219145. .INDENT 2.0
  219146. .IP \(bu 2
  219147. 9ade78de7b Revise unnecessary code duplication
  219148. .IP \(bu 2
  219149. 7c15f5b20a Fix formatting
  219150. .IP \(bu 2
  219151. 64f93f8938 Assume two EVRs are equal if E and V are equal but one R is missing.
  219152. .UNINDENT
  219153. .IP \(bu 2
  219154. 4f2b8aa5b6 Merge pull request \fI\%#35240\fP from derekmaciel/bp\-35225
  219155. .INDENT 2.0
  219156. .IP \(bu 2
  219157. 9ed47f713a Add missing documentation for pkg.installed
  219158. .UNINDENT
  219159. .IP \(bu 2
  219160. 4bcfaa97d0 Merge pull request \fI\%#35241\fP from terminalmage/gitfs\-fixes
  219161. .INDENT 2.0
  219162. .IP \(bu 2
  219163. e05648cc2d Break from loop when file is found
  219164. .IP \(bu 2
  219165. 6764a88601 Ensure that failed recursion results in no blob object being returned
  219166. .UNINDENT
  219167. .IP \(bu 2
  219168. f6d7360e0b Merge pull request \fI\%#35245\fP from rallytime/bp\-35039
  219169. .INDENT 2.0
  219170. .IP \(bu 2
  219171. 51ab9cd6d4 Add saltenv support to module.run
  219172. .UNINDENT
  219173. .IP \(bu 2
  219174. d65a5c7134 Merge pull request \fI\%#35249\fP from terminalmage/issue35214
  219175. .INDENT 2.0
  219176. .IP \(bu 2
  219177. bcd5129e9f Fix regression in git.latest when update is fast\-forward
  219178. .IP \(bu 2
  219179. e2e8bbbfde Add integration test for \fI\%#35214\fP
  219180. .UNINDENT
  219181. .UNINDENT
  219182. .IP \(bu 2
  219183. \fBISSUE\fP \fI\%#35003\fP: (\fI\%edgan\fP) rabbitmq_user.present broken on Ubuntu 16.04 Xenial (refs: \fI\%#35232\fP)
  219184. .IP \(bu 2
  219185. \fBISSUE\fP \fI\%#34481\fP: (\fI\%L4rS6\fP) rabbitmq_user.present with password keyword throws exception (refs: \fI\%#35232\fP)
  219186. .IP \(bu 2
  219187. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#35232\fP)
  219188. .IP \(bu 2
  219189. \fBPR\fP \fI\%#35274\fP: (\fI\%rallytime\fP) Lint fixes for 2016.3 branch
  219190. @ \fI2016\-08\-08 16:45:41 UTC\fP
  219191. .INDENT 2.0
  219192. .IP \(bu 2
  219193. \fBPR\fP \fI\%#35232\fP: (\fI\%theredcat\fP) fix rabbitmq version detection using a package\-agnostic version (refs: \fI\%#35274\fP)
  219194. .IP \(bu 2
  219195. 157939d5b0 Merge pull request \fI\%#35274\fP from rallytime/lint\-2016.3
  219196. .IP \(bu 2
  219197. 0d3d711e9c Lint fixes for 2016.3 branch
  219198. .UNINDENT
  219199. .IP \(bu 2
  219200. \fBPR\fP \fI\%#35269\fP: (\fI\%meaksh\fP) Checksum validation for zypper pkg.download in 2016.3 and develop
  219201. @ \fI2016\-08\-08 14:45:16 UTC\fP
  219202. .INDENT 2.0
  219203. .IP \(bu 2
  219204. c58bb18624 Merge pull request \fI\%#35269\fP from meaksh/checksum\-during\-zypper\-pkg\-download\-for\-2016.3\-and\-develop
  219205. .IP \(bu 2
  219206. 18700e821e unit tests for rpm.checksum() and zypper.download()
  219207. .IP \(bu 2
  219208. c3f29ab205 checksum validation during zypper pkg.download
  219209. .UNINDENT
  219210. .IP \(bu 2
  219211. \fBPR\fP \fI\%#35197\fP: (\fI\%vutny\fP) Make \fIpkgbuild.repo\fP state recognize \fIcreaterepo\fP command return code
  219212. @ \fI2016\-08\-06 23:20:47 UTC\fP
  219213. .INDENT 2.0
  219214. .IP \(bu 2
  219215. d3f2ce2a1a Merge pull request \fI\%#35197\fP from vutny/pkgbuild\-repo\-failure\-detection
  219216. .IP \(bu 2
  219217. a5f6630e97 Make \fIpkgbuild.repo\fP state recognize \fIcreaterepo\fP command return code
  219218. .UNINDENT
  219219. .IP \(bu 2
  219220. \fBISSUE\fP \fI\%#34446\fP: (\fI\%mirceaulinic\fP) Proxy minions & straight minion using the same caching directory (refs: \fI\%#35178\fP)
  219221. .IP \(bu 2
  219222. \fBPR\fP \fI\%#35178\fP: (\fI\%cro\fP) Add append_minionid_config_dirs option
  219223. @ \fI2016\-08\-06 22:21:14 UTC\fP
  219224. .INDENT 2.0
  219225. .IP \(bu 2
  219226. f004b831d2 Merge pull request \fI\%#35178\fP from cro/proxy_cache_fix2
  219227. .IP \(bu 2
  219228. 84cc7d67c0 Add documentation for append_minionid_config_dirs.
  219229. .IP \(bu 2
  219230. f0961e741e Merge with 2016.3
  219231. .UNINDENT
  219232. .IP \(bu 2
  219233. \fBISSUE\fP \fI\%#35234\fP: (\fI\%Sylvain303\fP) Bug: module disk.wipe dont wipe the filesystem information (refs: \fI\%#35253\fP)
  219234. .IP \(bu 2
  219235. \fBPR\fP \fI\%#35259\fP: (\fI\%cachedout\fP) Fixup 35253
  219236. @ \fI2016\-08\-06 21:59:48 UTC\fP
  219237. .INDENT 2.0
  219238. .IP \(bu 2
  219239. \fBPR\fP \fI\%#35253\fP: (\fI\%abednarik\fP) Fix disk.wipe missing option. (refs: \fI\%#35259\fP)
  219240. .IP \(bu 2
  219241. 6eb1c48469 Merge pull request \fI\%#35259\fP from cachedout/fixup_35253
  219242. .IP \(bu 2
  219243. 104116f464 Add release notes and include entry about disk.wipe fix
  219244. .IP \(bu 2
  219245. 6714e8f386 Fix mock call in disk wipe test
  219246. .UNINDENT
  219247. .IP \(bu 2
  219248. \fBISSUE\fP \fI\%#35234\fP: (\fI\%Sylvain303\fP) Bug: module disk.wipe dont wipe the filesystem information (refs: \fI\%#35253\fP)
  219249. .IP \(bu 2
  219250. \fBPR\fP \fI\%#35253\fP: (\fI\%abednarik\fP) Fix disk.wipe missing option. (refs: \fI\%#35259\fP)
  219251. @ \fI2016\-08\-06 21:55:01 UTC\fP
  219252. .INDENT 2.0
  219253. .IP \(bu 2
  219254. 4e7d7f8e4c Merge pull request \fI\%#35253\fP from abednarik/disk_wipe_fix
  219255. .IP \(bu 2
  219256. ff33df4ba1 Fix disk.wipe missing option.
  219257. .UNINDENT
  219258. .IP \(bu 2
  219259. \fBPR\fP \fI\%#35206\fP: (\fI\%hu\-dabao\fP) Make the log level back to warning for unclassified exc
  219260. @ \fI2016\-08\-06 21:40:38 UTC\fP
  219261. .INDENT 2.0
  219262. .IP \(bu 2
  219263. eeede82109 Merge pull request \fI\%#35206\fP from hu\-dabao/fix\-exc\-log
  219264. .IP \(bu 2
  219265. 676be7d711 Make the log level back to warning for unclassified exc
  219266. .UNINDENT
  219267. .IP \(bu 2
  219268. \fBPR\fP \fI\%#35196\fP: (\fI\%isbm\fP) Deprecate status.uptime one version later
  219269. @ \fI2016\-08\-06 08:39:40 UTC\fP
  219270. .INDENT 2.0
  219271. .IP \(bu 2
  219272. 21808e27d5 Merge pull request \fI\%#35196\fP from isbm/isbm\-too\-fast\-uptime\-deprecation
  219273. .IP \(bu 2
  219274. 6f3a32dace Deprecate status.uptime one version later
  219275. .UNINDENT
  219276. .IP \(bu 2
  219277. \fBPR\fP \fI\%#35207\fP: (\fI\%eliasp\fP) Handle exceptions in \fI_get_virtual()\fP and in \fI_get_virtual()\fP consumers
  219278. @ \fI2016\-08\-06 08:29:08 UTC\fP
  219279. .INDENT 2.0
  219280. .IP \(bu 2
  219281. 100645e557 Merge pull request \fI\%#35207\fP from eliasp/2016.3\-modules.aptpkg\-handle\-exceptions
  219282. .IP \(bu 2
  219283. 2f11df98ca Handle exceptions in \fI_get_virtual()\fP and in \fI_get_virtual()\fP consumers
  219284. .UNINDENT
  219285. .IP \(bu 2
  219286. \fBISSUE\fP \fI\%#35003\fP: (\fI\%edgan\fP) rabbitmq_user.present broken on Ubuntu 16.04 Xenial (refs: \fI\%#35232\fP)
  219287. .IP \(bu 2
  219288. \fBISSUE\fP \fI\%#34481\fP: (\fI\%L4rS6\fP) rabbitmq_user.present with password keyword throws exception (refs: \fI\%#35232\fP)
  219289. .IP \(bu 2
  219290. \fBISSUE\fP \fI\%#33588\fP: (\fI\%whytewolf\fP) rabbitmq_user.present error (refs: \fI\%#35232\fP)
  219291. .IP \(bu 2
  219292. \fBPR\fP \fI\%#35232\fP: (\fI\%theredcat\fP) fix rabbitmq version detection using a package\-agnostic version (refs: \fI\%#35274\fP)
  219293. @ \fI2016\-08\-06 08:13:02 UTC\fP
  219294. .INDENT 2.0
  219295. .IP \(bu 2
  219296. 7302a8a6e5 Merge pull request \fI\%#35232\fP from theredcat/fix\-rabbitmq\-version\-detection
  219297. .IP \(bu 2
  219298. f75eb2ecc7 Fix runas in code order and make the check_password work with the new >3.5.7 version
  219299. .IP \(bu 2
  219300. 4d8119b88b fix rabbitmq version detection using a package\-agnostic version
  219301. .UNINDENT
  219302. .IP \(bu 2
  219303. \fBPR\fP \fI\%#35244\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31677\fP to 2016.3
  219304. @ \fI2016\-08\-06 07:53:28 UTC\fP
  219305. .INDENT 2.0
  219306. .IP \(bu 2
  219307. \fBPR\fP \fI\%#31677\fP: (\fI\%miihael\fP) Return correct value for services that must be enabled in Systemd (refs: \fI\%#35244\fP)
  219308. .IP \(bu 2
  219309. 2e9fa3799c Merge pull request \fI\%#35244\fP from rallytime/bp\-31677
  219310. .IP \(bu 2
  219311. 45d563d5ac Return correct value for services that must be enabled in Systemd, not in SysV
  219312. .UNINDENT
  219313. .IP \(bu 2
  219314. \fBPR\fP \fI\%#35182\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219315. @ \fI2016\-08\-03 20:57:29 UTC\fP
  219316. .INDENT 2.0
  219317. .IP \(bu 2
  219318. bd0496eef5 Merge pull request \fI\%#35182\fP from rallytime/merge\-2016.3
  219319. .IP \(bu 2
  219320. c35974f78f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219321. .IP \(bu 2
  219322. 67d8dd0fd0 Don\(aqt discard running beacons config when listing becaons (\fI\%#35174\fP)
  219323. .IP \(bu 2
  219324. 3754550dd2 Add missing CLI Examples to aws_sqs module funcs (\fI\%#35173\fP)
  219325. .IP \(bu 2
  219326. 4967ed275f doc version update to 2015.8.11, updates to release notes (\fI\%#35145\fP)
  219327. .UNINDENT
  219328. .IP \(bu 2
  219329. \fBPR\fP \fI\%#35150\fP: (\fI\%rallytime\fP) Start release notes for 2016.3.3
  219330. @ \fI2016\-08\-03 13:46:31 UTC\fP
  219331. .INDENT 2.0
  219332. .IP \(bu 2
  219333. f9f92ad326 Merge pull request \fI\%#35150\fP from rallytime/2016.3.3\-release\-notes
  219334. .IP \(bu 2
  219335. a64026fc99 Start release notes for 2016.3.3
  219336. .UNINDENT
  219337. .IP \(bu 2
  219338. \fBPR\fP \fI\%#35157\fP: (\fI\%hu\-dabao\fP) master returned from func should be a string as designed so far
  219339. @ \fI2016\-08\-03 13:29:16 UTC\fP
  219340. .INDENT 2.0
  219341. .IP \(bu 2
  219342. 518ecf897a Merge pull request \fI\%#35157\fP from hu\-dabao/func\-return\-string
  219343. .IP \(bu 2
  219344. a7506af4c9 master returned from func should be a string as designed so far
  219345. .IP \(bu 2
  219346. \fBPR\fP \fI\%#35147\fP: (\fI\%jacobhammons\fP) doc version updated to 2016.3.2
  219347. .UNINDENT
  219348. .IP \(bu 2
  219349. \fBPR\fP \fI\%#35136\fP: (\fI\%s0undt3ch\fP) Don\(aqt restart processes if the manager is not set to restart them
  219350. @ \fI2016\-08\-02 18:40:05 UTC\fP
  219351. .INDENT 2.0
  219352. .IP \(bu 2
  219353. dc7d7db3d5 Merge pull request \fI\%#35136\fP from s0undt3ch/2016.3
  219354. .IP \(bu 2
  219355. 7b8bf2d2b4 Don\(aqt restart processes if the manager is not set to restart them
  219356. .UNINDENT
  219357. .IP \(bu 2
  219358. \fBPR\fP \fI\%#35133\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219359. @ \fI2016\-08\-02 18:06:18 UTC\fP
  219360. .INDENT 2.0
  219361. .IP \(bu 2
  219362. bf04bd3316 Merge pull request \fI\%#35133\fP from rallytime/merge\-2016.3
  219363. .IP \(bu 2
  219364. 0d5f0b6016 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219365. .IP \(bu 2
  219366. 81845ee31d Merge pull request \fI\%#35114\fP from terminalmage/git_pillar\-env\-remap\-docs
  219367. .INDENT 2.0
  219368. .IP \(bu 2
  219369. 5951554e9f Add clarification docs on a common git_pillar misconfiguration
  219370. .UNINDENT
  219371. .IP \(bu 2
  219372. 88a9fb1b31 Merge pull request \fI\%#34768\fP from hrumph/bad\-installed\-state
  219373. .INDENT 2.0
  219374. .IP \(bu 2
  219375. e1fcb8311d Put pkg.latest_version in try/except structure Move refreshed or refresh to different spot (just for code tidyness)
  219376. .IP \(bu 2
  219377. e0b6261659 changed name of varibale \(aqrefreshed\(aq to \(aqwas_refreshed\(aq
  219378. .IP \(bu 2
  219379. 340110b4b4 Move check for rtag to outermost\-nesting in function
  219380. .IP \(bu 2
  219381. ac67c6b493 Lint fix
  219382. .IP \(bu 2
  219383. 0435a1375e Get rid of repetition in code by using new "refreshed" variable instead
  219384. .IP \(bu 2
  219385. 3b1dc978e2 Lint fix
  219386. .IP \(bu 2
  219387. a9bd1b92b9 lint fixes
  219388. .IP \(bu 2
  219389. 71d69343ef Fixes \fI\%#34767\fP
  219390. .UNINDENT
  219391. .IP \(bu 2
  219392. 343576408f Merge pull request \fI\%#35043\fP from rallytime/new\-release\-notes
  219393. .INDENT 2.0
  219394. .IP \(bu 2
  219395. bdcc81a384 Start release notes file for 2015.8.12
  219396. .UNINDENT
  219397. .UNINDENT
  219398. .IP \(bu 2
  219399. \fBPR\fP \fI\%#35120\fP: (\fI\%kstreee\fP) The \(aq_handle_event_socket_recv\(aq function in Salt Api is missing first data of stream.
  219400. @ \fI2016\-08\-02 16:22:50 UTC\fP
  219401. .INDENT 2.0
  219402. .IP \(bu 2
  219403. dd91006ed7 Merge pull request \fI\%#35120\fP from kstreee/fix\-missing\-first\-stream\-data
  219404. .IP \(bu 2
  219405. 28f793caac Fix missing first data in stream when subscribing stream using a function \(aqread_async\(aq.
  219406. .IP \(bu 2
  219407. \fBPR\fP \fI\%saltstack/salt#35011\fP: (\fI\%nishigori\fP) Fix docstring for code\-block of rst (refs: \fI\%#35131\fP)
  219408. .IP \(bu 2
  219409. \fBPR\fP \fI\%#35131\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35011\fP to 2016.3
  219410. .IP \(bu 2
  219411. \fBPR\fP \fI\%#35011\fP: (\fI\%nishigori\fP) Fix docstring for code\-block of rst (refs: \fI\%#35131\fP)
  219412. .UNINDENT
  219413. .IP \(bu 2
  219414. \fBPR\fP \fI\%#35110\fP: (\fI\%hu\-dabao\fP) Do not return job status back to master for master_alive and master_failback schedules
  219415. @ \fI2016\-08\-02 07:49:46 UTC\fP
  219416. .INDENT 2.0
  219417. .IP \(bu 2
  219418. 77b1f43b0d Merge pull request \fI\%#35110\fP from hu\-dabao/master\-check\-lighter
  219419. .IP \(bu 2
  219420. 3a3b66e27d dont return job status back to master for master_alive and master_failback schedules
  219421. .UNINDENT
  219422. .IP \(bu 2
  219423. \fBPR\fP \fI\%#35104\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219424. @ \fI2016\-08\-01 18:56:43 UTC\fP
  219425. .INDENT 2.0
  219426. .IP \(bu 2
  219427. 94a983f129 Merge pull request \fI\%#35104\fP from rallytime/merge\-2016.3
  219428. .IP \(bu 2
  219429. dda2c32325 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219430. .INDENT 2.0
  219431. .IP \(bu 2
  219432. 848bf0272f Merge pull request \fI\%#35050\fP from terminalmage/fix\-saltdev\-arg
  219433. .INDENT 2.0
  219434. .IP \(bu 2
  219435. 40cfa7cf17 Avoid needlessly running 2 argspecs in salt.utils.format_call()
  219436. .IP \(bu 2
  219437. fd186b7e4c Pass environment as \(aqsaltdev\(aq if runner/wheel func accepts a saltdev argument
  219438. .IP \(bu 2
  219439. 951b52ab93 Pass __env__ from saltmod orch states to to saltutil.{runner,wheel}
  219440. .UNINDENT
  219441. .IP \(bu 2
  219442. 2144178ae0 Merge pull request \fI\%#35066\fP from jfindlay/postgres_log
  219443. .INDENT 2.0
  219444. .IP \(bu 2
  219445. c2c442234f returners.postgres_local_cache: do not log in __virtual__
  219446. .UNINDENT
  219447. .IP \(bu 2
  219448. 7121618142 Merge pull request \fI\%#35024\fP from bobrik/daemon\-reload\-fix
  219449. .INDENT 2.0
  219450. .IP \(bu 2
  219451. c300615e9d Cache systemd unit update check per unit, closes \fI\%#34927\fP
  219452. .UNINDENT
  219453. .IP \(bu 2
  219454. 865c29f126 Expressly deny a minion if a key cannot be found instead of raising stacktrace (\fI\%#35026\fP)
  219455. .UNINDENT
  219456. .UNINDENT
  219457. .IP \(bu 2
  219458. \fBISSUE\fP \fI\%#32761\fP: (\fI\%notpeter\fP) Ubuntu 16.04 Xenial Xerus Support (refs: #\(gasaltstack/salt#33870\(ga_)
  219459. .INDENT 2.0
  219460. .IP \(bu 2
  219461. \fBPR\fP \fI\%saltstack/salt#33870\fP: (\fI\%rallytime\fP) Add note about Xenial packages to 2016.3.0 release notes (refs: \fI\%#35105\fP)
  219462. .UNINDENT
  219463. .IP \(bu 2
  219464. \fBPR\fP \fI\%#35105\fP: (\fI\%rallytime\fP) Update 2016.3.0 release notes with repo.saltstack.com Xenial pkg availability
  219465. @ \fI2016\-08\-01 17:26:55 UTC\fP
  219466. .INDENT 2.0
  219467. .IP \(bu 2
  219468. 6c056a829e Merge pull request \fI\%#35105\fP from rallytime/update\-2016.3.0\-release\-notes
  219469. .IP \(bu 2
  219470. fbaff3e98e Update 2016.3.0 release notes with repo.saltstack.com Xenial pkg availability
  219471. .UNINDENT
  219472. .IP \(bu 2
  219473. \fBPR\fP \fI\%#35059\fP: (\fI\%vutny\fP) Add \fIfun_args\fP field to events generated by execution of Master modules
  219474. @ \fI2016\-08\-01 13:01:42 UTC\fP
  219475. .INDENT 2.0
  219476. .IP \(bu 2
  219477. 1f8a0fd1e7 Merge pull request \fI\%#35059\fP from vutny/event\-function\-args
  219478. .IP \(bu 2
  219479. 19d080445b Add \fIfun_args\fP field to events generated by execution of Master modules
  219480. .UNINDENT
  219481. .IP \(bu 2
  219482. \fBPR\fP \fI\%#34955\fP: (\fI\%lubyou\fP) force dism to always output english text
  219483. @ \fI2016\-08\-01 12:54:03 UTC\fP
  219484. .INDENT 2.0
  219485. .IP \(bu 2
  219486. d137c4b986 Merge pull request \fI\%#34955\fP from lubyou/fix\-dism\-on\-non\-english\-systems
  219487. .IP \(bu 2
  219488. 63c974a3d0 add missing comma
  219489. .IP \(bu 2
  219490. 775ea73578 fix unit tests
  219491. .IP \(bu 2
  219492. 51869807f1 force dism to always output english text
  219493. .UNINDENT
  219494. .IP \(bu 2
  219495. \fBPR\fP \fI\%#35078\fP: (\fI\%jacobweinstock\fP) added missing non\-keyword argument skip_verify to __get_artifact func…
  219496. @ \fI2016\-08\-01 12:22:47 UTC\fP
  219497. .INDENT 2.0
  219498. .IP \(bu 2
  219499. ff7ddf0b68 Merge pull request \fI\%#35078\fP from jacobweinstock/fix\-missing\-non\-keyword\-argument
  219500. .IP \(bu 2
  219501. c40314ba80 added missing non\-keyword argument skip_verify to __get_artifact function
  219502. .UNINDENT
  219503. .IP \(bu 2
  219504. \fBPR\fP \fI\%#35008\fP: (\fI\%hu\-dabao\fP) Fix multimaster failover on more than two masters and failback behaviour
  219505. @ \fI2016\-07\-29 16:34:37 UTC\fP
  219506. .INDENT 2.0
  219507. .IP \(bu 2
  219508. 878e200cd9 Merge pull request \fI\%#35008\fP from hu\-dabao/fix\-multimaster
  219509. .IP \(bu 2
  219510. 12da890910 Fix multimaster failover on more than two masters and failback behaviour
  219511. .UNINDENT
  219512. .IP \(bu 2
  219513. \fBISSUE\fP \fI\%saltstack/salt#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  219514. .IP \(bu 2
  219515. \fBISSUE\fP \fI\%#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  219516. .IP \(bu 2
  219517. \fBPR\fP \fI\%#35055\fP: (\fI\%galet\fP) \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True"
  219518. @ \fI2016\-07\-29 15:40:15 UTC\fP
  219519. .INDENT 2.0
  219520. .IP \(bu 2
  219521. 11ed147448 Merge pull request \fI\%#35055\fP from galet/2016.3
  219522. .IP \(bu 2
  219523. d70796bbfe \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True"
  219524. .UNINDENT
  219525. .IP \(bu 2
  219526. \fBPR\fP \fI\%#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  219527. @ \fI2016\-07\-29 14:01:03 UTC\fP
  219528. .INDENT 2.0
  219529. .IP \(bu 2
  219530. ebaee39b2b Merge pull request \fI\%#35039\fP from whiteinge/module\-run\-saltenv
  219531. .IP \(bu 2
  219532. 7ef287e09e Add saltenv support to module.run
  219533. .UNINDENT
  219534. .IP \(bu 2
  219535. \fBPR\fP \fI\%#35046\fP: (\fI\%eliasp\fP) Prevent backtrace in \fIsalt.states.network\fP
  219536. @ \fI2016\-07\-29 13:59:09 UTC\fP
  219537. .INDENT 2.0
  219538. .IP \(bu 2
  219539. 32ed78a399 Merge pull request \fI\%#35046\fP from eliasp/2016.3\-salt.states.network\-prevent\-backtrace
  219540. .IP \(bu 2
  219541. 1542cd5124 Prevent backtrace in \fIsalt.states.network\fP
  219542. .UNINDENT
  219543. .IP \(bu 2
  219544. \fBPR\fP \fI\%#35054\fP: (\fI\%lubyou\fP) Only fail user lookup is the user parameter is required
  219545. @ \fI2016\-07\-29 13:58:41 UTC\fP
  219546. .INDENT 2.0
  219547. .IP \(bu 2
  219548. f34bb7a8de Merge pull request \fI\%#35054\fP from lubyou/fix\-win_dacl\-disable_inheritance
  219549. .IP \(bu 2
  219550. 1e4e856fb2 Only fail user lookup is the user parameter is required
  219551. .UNINDENT
  219552. .IP \(bu 2
  219553. \fBPR\fP \fI\%#35029\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219554. @ \fI2016\-07\-28 18:01:35 UTC\fP
  219555. .INDENT 2.0
  219556. .IP \(bu 2
  219557. bee303db51 Merge pull request \fI\%#35029\fP from rallytime/merge\-2016.3
  219558. .IP \(bu 2
  219559. 65f9365ee0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219560. .IP \(bu 2
  219561. 2b511f3013 Merge pull request \fI\%#35000\fP from rallytime/bp\-33875
  219562. .INDENT 2.0
  219563. .IP \(bu 2
  219564. 35696ad637 Pylint fix
  219565. .IP \(bu 2
  219566. f9fd6ddd8a Fixup \fI\%#33875\fP
  219567. .IP \(bu 2
  219568. 56b1f6c651 Fix naive fileserver map diff algorithm
  219569. .UNINDENT
  219570. .IP \(bu 2
  219571. 837bc6ba7d Merge pull request \fI\%#34994\fP from rallytime/bp\-34835
  219572. .INDENT 2.0
  219573. .IP \(bu 2
  219574. 9268a793de same thing for the mine in salt\-ssh
  219575. .IP \(bu 2
  219576. 3e11e19714 Fix the mine in salt ssh
  219577. .UNINDENT
  219578. .IP \(bu 2
  219579. \fBPR\fP \fI\%#35021\fP: (\fI\%terminalmage\fP) Don\(aqt add \(aq.\(aq to strerror when passed string ends in ? or !
  219580. .IP \(bu 2
  219581. \fBPR\fP \fI\%#34983\fP: (\fI\%eliasp\fP) modules.slack.post_message: Allow sending messages to direct\-message …
  219582. .UNINDENT
  219583. .IP \(bu 2
  219584. \fBPR\fP \fI\%#34996\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219585. @ \fI2016\-07\-27 19:03:04 UTC\fP
  219586. .INDENT 2.0
  219587. .IP \(bu 2
  219588. 05cfb1cefc Merge pull request \fI\%#34996\fP from rallytime/merge\-2016.3
  219589. .IP \(bu 2
  219590. a7d4f93697 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219591. .INDENT 2.0
  219592. .IP \(bu 2
  219593. b58c663d8d Merge pull request \fI\%#34991\fP from cachedout/ssh_timeout
  219594. .INDENT 2.0
  219595. .IP \(bu 2
  219596. 39cd8da399 Lint diff against salt\-testing
  219597. .IP \(bu 2
  219598. 443e5cdde2 Add timeout to ssh tests
  219599. .UNINDENT
  219600. .IP \(bu 2
  219601. 5f8370ae8d Refine errors in client (\fI\%#34976\fP)
  219602. .IP \(bu 2
  219603. a83cdf9339 Merge pull request \fI\%#34831\fP from thatch45/recoverssh
  219604. .IP \(bu 2
  219605. fa73041a49 If the thin does not match, then redeploy, don\(aqt error
  219606. .UNINDENT
  219607. .IP \(bu 2
  219608. \fBPR\fP \fI\%#34987\fP: (\fI\%eliasp\fP) salt.states.slack: check correct result attribute
  219609. .UNINDENT
  219610. .IP \(bu 2
  219611. \fBISSUE\fP \fI\%saltstack/salt#34526\fP: (\fI\%danielmotaleite\fP) salt\-ssh + mine = weird error (refs: \fI\%#34835\fP, #saltstack/salt\(ga#34835\(ga_)
  219612. .IP \(bu 2
  219613. \fBPR\fP \fI\%#34835\fP: (\fI\%thatch45\fP) Make the mine and publish combine minion and master opts in salt\-ssh (refs: \fI\%#34994\fP)
  219614. @ \fI2016\-07\-27 17:25:26 UTC\fP
  219615. .INDENT 2.0
  219616. .IP \(bu 2
  219617. edeb0eda36 Merge pull request \fI\%#34835\fP from thatch45/34526_
  219618. .IP \(bu 2
  219619. 1d2477df05 same thing for the mine in salt\-ssh
  219620. .IP \(bu 2
  219621. 6b6c5ff278 Fix the mine in salt ssh
  219622. .UNINDENT
  219623. .UNINDENT
  219624. .SS Salt 2016.3.4 Release Notes
  219625. .sp
  219626. Version 2016.3.4 is a bugfix release for 2016.3.0\&.
  219627. .SS Statistics
  219628. .INDENT 0.0
  219629. .IP \(bu 2
  219630. Total Merges: \fB275\fP
  219631. .IP \(bu 2
  219632. Total Issue References: \fB119\fP
  219633. .IP \(bu 2
  219634. Total PR References: \fB374\fP
  219635. .IP \(bu 2
  219636. Contributors: \fB80\fP (\fI\%BenoitKnecht\fP, \fI\%Ch3LL\fP, \fI\%DavidWittman\fP, \fI\%DmitryKuzmenko\fP, \fI\%Jlin317\fP, \fI\%Kimamisa\fP, \fI\%UtahDave\fP, \fI\%aaronm\-cloudtek\fP, \fI\%abednarik\fP, \fI\%ahammond\fP, \fI\%alertedsnake\fP, \fI\%alexander\-bauer\fP, \fI\%amontalban\fP, \fI\%basepi\fP, \fI\%bl4ckcontact\fP, \fI\%bx2\fP, \fI\%cachedout\fP, \fI\%clarkperkins\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%damon\-atkins\fP, \fI\%danlsgiga\fP, \fI\%darkalia\fP, \fI\%dmurphy18\fP, \fI\%do3meli\fP, \fI\%edhgoose\fP, \fI\%efficks\fP, \fI\%eliasp\fP, \fI\%eradman\fP, \fI\%fix7\fP, \fI\%galet\fP, \fI\%goestin\fP, \fI\%gtmanfred\fP, \fI\%hrumph\fP, \fI\%hu\-dabao\fP, \fI\%isbm\fP, \fI\%jackywu\fP, \fI\%jacobhammons\fP, \fI\%jbonachera\fP, \fI\%jf\fP, \fI\%jfindlay\fP, \fI\%jizhilong\fP, \fI\%justinta\fP, \fI\%kstreee\fP, \fI\%l2ol33rt\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%maximeguillet\fP, \fI\%meaksh\fP, \fI\%mikeadamz\fP, \fI\%mirceaulinic\fP, \fI\%morganwillcock\fP, \fI\%mrproper\fP, \fI\%multani\fP, \fI\%nvtkaszpir\fP, \fI\%oba11\fP, \fI\%onorua\fP, \fI\%opdude\fP, \fI\%orymate\fP, \fI\%oz123\fP, \fI\%pass\-by\-value\fP, \fI\%pbdeuchler\fP, \fI\%rallytime\fP, \fI\%roosri\fP, \fI\%silenius\fP, \fI\%skizunov\fP, \fI\%slinn0\fP, \fI\%stanislavb\fP, \fI\%swiftgist\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%theredcat\fP, \fI\%ticosax\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%whiteinge\fP, \fI\%xbglowx\fP, \fI\%xiaoanyunfei\fP, \fI\%yhekma\fP)
  219637. .UNINDENT
  219638. .SS Known Issues
  219639. .sp
  219640. The Salt Minion does not clean up files in \fB/tmp\fP when rendering templates.
  219641. This potentially results in either running out of disk space or running out of
  219642. inodes. Please see \fI\%issue #37541\fP for more information. This bug was fixed with
  219643. \fI\%PR #37540\fP, which will be available in the \fB2016.3.5\fP release of
  219644. Salt.
  219645. .sp
  219646. The release of the \fBbootstrap\-salt.sh\fP script that is included with 2016.3.4
  219647. release has a bug in it that fails to install salt correctly for git installs
  219648. using tags in the 2015.5 branch. This bug has not been fixed in the
  219649. \fI\%salt\-bootstrap repository\fP yet, but the \fI\%previous bootstrap release\fP
  219650. (v2016.08.16) does not contain this bug.
  219651. .SS Changes
  219652. .INDENT 0.0
  219653. .IP \(bu 2
  219654. The \fIdisk.wipe\fP execution module function has been modified
  219655. so that it correctly wipes a disk.
  219656. .IP \(bu 2
  219657. Add ability to clone from a snapshot to the VMWare salt\-cloud driver.
  219658. .IP \(bu 2
  219659. Add ability to specify disk backing mode in the VMWare salt cloud profile.
  219660. .UNINDENT
  219661. .SS Changelog for v2016.3.3..v2016.3.4
  219662. .sp
  219663. \fIGenerated at: 2018\-05\-27 04:56:54 UTC\fP
  219664. .INDENT 0.0
  219665. .IP \(bu 2
  219666. \fBPR\fP \fI\%#37285\fP: (\fI\%rallytime\fP) Update 2016.3.4 release notes
  219667. .IP \(bu 2
  219668. \fBISSUE\fP \fI\%#37281\fP: (\fI\%frogunder\fP) 2016.3.4: Raet Transport not working (refs: \fI\%#37282\fP)
  219669. .IP \(bu 2
  219670. \fBPR\fP \fI\%#37282\fP: (\fI\%thatch45\fP) add cpub to raet event for compat
  219671. @ \fI2016\-10\-27 21:33:48 UTC\fP
  219672. .INDENT 2.0
  219673. .IP \(bu 2
  219674. 3b62a89e45 Merge pull request \fI\%#37282\fP from thatch45/raet_cpub
  219675. .IP \(bu 2
  219676. 90f778dbc1 Add func for compat with main event system
  219677. .IP \(bu 2
  219678. 8e52f425e4 add cpub to raet event for compat
  219679. .IP \(bu 2
  219680. \fBPR\fP \fI\%#37278\fP: (\fI\%jfindlay\fP) update 2016.3.4 release notes
  219681. .UNINDENT
  219682. .IP \(bu 2
  219683. \fBPR\fP \fI\%#37252\fP: (\fI\%vutny\fP) Set logging level to \(aqinfo\(aq for message about init system detection
  219684. @ \fI2016\-10\-27 06:15:01 UTC\fP
  219685. .INDENT 2.0
  219686. .IP \(bu 2
  219687. d0ce3de50c Merge pull request \fI\%#37252\fP from vutny/suppress\-init\-grain\-error
  219688. .IP \(bu 2
  219689. 3f20cc01ed Set logging level to \(aqinfo\(aq for message about init system detection
  219690. .IP \(bu 2
  219691. \fBPR\fP \fI\%#37259\fP: (\fI\%rallytime\fP) [2016.3] Update man pages for the 2016.3 branch
  219692. .UNINDENT
  219693. .IP \(bu 2
  219694. \fBPR\fP \fI\%#37257\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219695. @ \fI2016\-10\-26 17:32:36 UTC\fP
  219696. .INDENT 2.0
  219697. .IP \(bu 2
  219698. 2087cfce90 Merge pull request \fI\%#37257\fP from rallytime/merge\-2016.3
  219699. .IP \(bu 2
  219700. 2066f10d7b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219701. .INDENT 2.0
  219702. .IP \(bu 2
  219703. f49ccdf30f Merge pull request \fI\%#37234\fP from rallytime/bp\-37167
  219704. .INDENT 2.0
  219705. .IP \(bu 2
  219706. a7dbb5bfc9 fixes pkgrepo for fedora>22 \fI\%saltstack/salt#31240\fP
  219707. .UNINDENT
  219708. .UNINDENT
  219709. .UNINDENT
  219710. .IP \(bu 2
  219711. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37254\fP)
  219712. .IP \(bu 2
  219713. \fBISSUE\fP \fI\%#37192\fP: (\fI\%Ch3LL\fP) 2016.3.4: Windows minion does not kill process running in foreground (refs: \fI\%#37254\fP)
  219714. .IP \(bu 2
  219715. \fBISSUE\fP \fI\%#37191\fP: (\fI\%Ch3LL\fP) 2016.3.4: Multi\-Master Failover minion hangs when masters not running (refs: \fI\%#37254\fP)
  219716. .IP \(bu 2
  219717. \fBISSUE\fP \fI\%#35480\fP: (\fI\%jelenak\fP) 200 processes of salt\-master (2016.3.2) (refs: \fI\%#36184\fP, \fI\%#36555\fP, \fI\%#37254\fP)
  219718. .IP \(bu 2
  219719. \fBPR\fP \fI\%#37254\fP: (\fI\%DmitryKuzmenko\fP) Bugs/37191 minion hangs
  219720. @ \fI2016\-10\-26 16:28:41 UTC\fP
  219721. .INDENT 2.0
  219722. .IP \(bu 2
  219723. ea6155c3f4 Merge pull request \fI\%#37254\fP from DSRCorporation/bugs/37191_minion_hangs
  219724. .IP \(bu 2
  219725. 9ee24b2d70 Revert "Don\(aqt set the \fIdaemon\fP flag for LoggingQueue process."
  219726. .UNINDENT
  219727. .IP \(bu 2
  219728. \fBISSUE\fP \fI\%#37187\fP: (\fI\%darkalia\fP) Supervisord is considered as "systemd" in grains (refs: \fI\%#37218\fP)
  219729. .IP \(bu 2
  219730. \fBPR\fP \fI\%#37218\fP: (\fI\%darkalia\fP) Issue \fI\%#37187\fP Do not parse first /proc/1/cmdline binary if it\(aqs not \fIb…
  219731. @ *2016\-10\-26 01:41:03 UTC\fP
  219732. .INDENT 2.0
  219733. .IP \(bu 2
  219734. d1a6bb72ac Merge pull request \fI\%#37218\fP from darkalia/37187_supervisor_2016.3
  219735. .IP \(bu 2
  219736. a8dfc6bb96 Issue \fI\%#37187\fP Do not parse first /proc/1/cmdline binary if it\(aqs not *bin/init and set supervisord
  219737. .UNINDENT
  219738. .IP \(bu 2
  219739. \fBPR\fP \fI\%#37239\fP: (\fI\%Ch3LL\fP) Fix cloud tests timeout
  219740. @ \fI2016\-10\-26 01:11:52 UTC\fP
  219741. .INDENT 2.0
  219742. .IP \(bu 2
  219743. 760ed9f56d Merge pull request \fI\%#37239\fP from Ch3LL/fix_cloud_timeout
  219744. .IP \(bu 2
  219745. 394fccf556 fix run_cloud timeout
  219746. .IP \(bu 2
  219747. 23947c5944 change timeout for cloud tests
  219748. .UNINDENT
  219749. .IP \(bu 2
  219750. \fBPR\fP \fI\%#37244\fP: (\fI\%rallytime\fP) Update bootstrap release to 2016.10.25
  219751. @ \fI2016\-10\-26 00:46:29 UTC\fP
  219752. .INDENT 2.0
  219753. .IP \(bu 2
  219754. 6c5f619398 Merge pull request \fI\%#37244\fP from rallytime/update\-bootstrap
  219755. .IP \(bu 2
  219756. f728a5bc7b Update bootstrap release to 2016.10.25
  219757. .IP \(bu 2
  219758. \fBPR\fP \fI\%saltstack/salt#36334\fP: (\fI\%pass\-by\-value\fP) Add ability to specify disk backing mode for VMware cloud profile (refs: \fI\%#37245\fP)
  219759. .UNINDENT
  219760. .IP \(bu 2
  219761. \fBPR\fP \fI\%#37245\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36334\fP to 2016.3
  219762. @ \fI2016\-10\-26 00:41:00 UTC\fP
  219763. .INDENT 2.0
  219764. .IP \(bu 2
  219765. \fBPR\fP \fI\%#36334\fP: (\fI\%pass\-by\-value\fP) Add ability to specify disk backing mode for VMware cloud profile (refs: \fI\%#37245\fP)
  219766. .IP \(bu 2
  219767. bb7caf8c42 Merge pull request \fI\%#37245\fP from rallytime/bp\-36334
  219768. .IP \(bu 2
  219769. f64ca3c442 Update release notes and version added
  219770. .IP \(bu 2
  219771. 0a3d266d6b Add ability to specify disk backing mode for VMware cloud profile
  219772. .UNINDENT
  219773. .IP \(bu 2
  219774. \fBISSUE\fP \fI\%#37132\fP: (\fI\%bl4ckcontact\fP) Incorrect flag defined for disabling AD computer account in win_system.py (refs: \fI\%#37154\fP)
  219775. .IP \(bu 2
  219776. \fBPR\fP \fI\%#37233\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37154\fP to 2016.3
  219777. @ \fI2016\-10\-25 18:32:56 UTC\fP
  219778. .INDENT 2.0
  219779. .IP \(bu 2
  219780. \fBPR\fP \fI\%#37154\fP: (\fI\%bl4ckcontact\fP) modules.win_system.py: Fix flag disabling AD Computer objects (refs: \fI\%#37233\fP)
  219781. .IP \(bu 2
  219782. 3c94315d35 Merge pull request \fI\%#37233\fP from rallytime/bp\-37154
  219783. .IP \(bu 2
  219784. 849af162f1 modules.win_system.py: Fix flag disabling AD Computer objects
  219785. .UNINDENT
  219786. .IP \(bu 2
  219787. \fBPR\fP \fI\%#37232\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37153\fP to 2016.3
  219788. @ \fI2016\-10\-25 18:32:41 UTC\fP
  219789. .INDENT 2.0
  219790. .IP \(bu 2
  219791. \fBPR\fP \fI\%#37153\fP: (\fI\%eradman\fP) Update configuration examples for Joyent (refs: \fI\%#37232\fP)
  219792. .IP \(bu 2
  219793. 94852f2eb1 Merge pull request \fI\%#37232\fP from rallytime/bp\-37153
  219794. .IP \(bu 2
  219795. 3829b7592f Update configuration examples for Joyent
  219796. .UNINDENT
  219797. .IP \(bu 2
  219798. \fBPR\fP \fI\%#37228\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219799. @ \fI2016\-10\-25 18:22:57 UTC\fP
  219800. .INDENT 2.0
  219801. .IP \(bu 2
  219802. a913eed92a Merge pull request \fI\%#37228\fP from rallytime/merge\-2016.3
  219803. .IP \(bu 2
  219804. b99d6733b6 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219805. .IP \(bu 2
  219806. d608465d77 Merge pull request \fI\%#37178\fP from isbm/isbm\-fix\-saltapi\-ssh\-crash
  219807. .INDENT 2.0
  219808. .IP \(bu 2
  219809. 44da411c3a Do not prematurily raise an exception, let the main loop take care of it instead
  219810. .IP \(bu 2
  219811. ee48deeded Do not restart the whole thing if roster is not around
  219812. .IP \(bu 2
  219813. b8f4e46920 Fix PEP8
  219814. .UNINDENT
  219815. .UNINDENT
  219816. .IP \(bu 2
  219817. \fBPR\fP \fI\%#37213\fP: (\fI\%cachedout\fP) More salttesting fixes
  219818. @ \fI2016\-10\-25 07:53:33 UTC\fP
  219819. .INDENT 2.0
  219820. .IP \(bu 2
  219821. 6aaf6bf399 Merge pull request \fI\%#37213\fP from cachedout/more_salttesting_fixes
  219822. .IP \(bu 2
  219823. 0bbf06bd86 Lint fix
  219824. .IP \(bu 2
  219825. f609917760 Workaround for utils
  219826. .IP \(bu 2
  219827. a6a24c2b3b Workaround for tornado test startup error
  219828. .IP \(bu 2
  219829. 88bcfa2c0a Fix TCP test
  219830. .UNINDENT
  219831. .IP \(bu 2
  219832. \fBISSUE\fP \fI\%#37194\fP: (\fI\%sjorge\fP) function_cache in modules.mine docs? (refs: \fI\%#37207\fP)
  219833. .IP \(bu 2
  219834. \fBPR\fP \fI\%#37207\fP: (\fI\%cachedout\fP) Correct documentation for mine_functions
  219835. @ \fI2016\-10\-25 07:25:09 UTC\fP
  219836. .INDENT 2.0
  219837. .IP \(bu 2
  219838. b448455c31 Merge pull request \fI\%#37207\fP from cachedout/issue_37194
  219839. .IP \(bu 2
  219840. 9fcdf6da94 Correct documentation for mine_functions
  219841. .UNINDENT
  219842. .IP \(bu 2
  219843. \fBISSUE\fP \fI\%#37182\fP: (\fI\%Ch3LL\fP) 2016.3.4: multi\-master minion stack trace when killed with ctrl+c (refs: \fI\%#37208\fP)
  219844. .IP \(bu 2
  219845. \fBPR\fP \fI\%#37208\fP: (\fI\%cachedout\fP) Give multimion a process manager and its own destroy method
  219846. @ \fI2016\-10\-25 07:24:52 UTC\fP
  219847. .INDENT 2.0
  219848. .IP \(bu 2
  219849. a5e1c041cc Merge pull request \fI\%#37208\fP from cachedout/issue_37182
  219850. .IP \(bu 2
  219851. 1449770b0b Give multimion a process manager and its own destroy method
  219852. .UNINDENT
  219853. .IP \(bu 2
  219854. \fBPR\fP \fI\%#37206\fP: (\fI\%cachedout\fP) Address transport test hang
  219855. @ \fI2016\-10\-25 05:25:55 UTC\fP
  219856. .INDENT 2.0
  219857. .IP \(bu 2
  219858. e19ee88b6b Merge pull request \fI\%#37206\fP from cachedout/transport_test_hang
  219859. .IP \(bu 2
  219860. c4393d5e9e Address transport test hang
  219861. .UNINDENT
  219862. .IP \(bu 2
  219863. \fBPR\fP \fI\%#37179\fP: (\fI\%isbm\fP) Fix Salt\-API ssh crash (2016.3)
  219864. @ \fI2016\-10\-25 04:52:19 UTC\fP
  219865. .INDENT 2.0
  219866. .IP \(bu 2
  219867. 6737fd3ad9 Merge pull request \fI\%#37179\fP from isbm/isbm\-fix\-saltapi\-ssh\-crash\-2016\-3
  219868. .IP \(bu 2
  219869. 28edda457e Do not prematurily raise an exception, let the main loop take care of it instead
  219870. .IP \(bu 2
  219871. 372f2bbd93 Do not restart the whole thing if roster is not around
  219872. .IP \(bu 2
  219873. 8d1450cc47 Fix PEP8
  219874. .UNINDENT
  219875. .IP \(bu 2
  219876. \fBISSUE\fP \fI\%saltstack/salt#37176\fP: (\fI\%guettli\fP) docs for "load tags" explains "import_yaml" (refs: \fI\%#37183\fP)
  219877. .IP \(bu 2
  219878. \fBPR\fP \fI\%#37183\fP: (\fI\%gtmanfred\fP) load tags should reference the actual load tags
  219879. @ \fI2016\-10\-25 04:38:00 UTC\fP
  219880. .INDENT 2.0
  219881. .IP \(bu 2
  219882. 815dfd1c04 Merge pull request \fI\%#37183\fP from gtmanfred/2016.3
  219883. .IP \(bu 2
  219884. 1b7b4b1a0c load tags should reference the actual load tags
  219885. .UNINDENT
  219886. .IP \(bu 2
  219887. \fBPR\fP \fI\%#37188\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219888. @ \fI2016\-10\-25 04:37:26 UTC\fP
  219889. .INDENT 2.0
  219890. .IP \(bu 2
  219891. ca63376c97 Merge pull request \fI\%#37188\fP from rallytime/merge\-2016.3
  219892. .IP \(bu 2
  219893. ccb664050d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219894. .IP \(bu 2
  219895. b3e79dcd51 Merge pull request \fI\%#37139\fP from awerner/fix\-spm\-download\-remote\-download
  219896. .INDENT 2.0
  219897. .IP \(bu 2
  219898. a606a42575 Minor style change
  219899. .IP \(bu 2
  219900. e3916813bb Download spm package from remote repository and save it to cache directory
  219901. .UNINDENT
  219902. .IP \(bu 2
  219903. 35b4494157 Merge pull request \fI\%#37162\fP from rallytime/bp\-36823
  219904. .INDENT 2.0
  219905. .IP \(bu 2
  219906. 3032a542d9 Use NotifyAccess=all in all unit files
  219907. .IP \(bu 2
  219908. 4826995973 Remove EnvironmentFile and Restart lines from unit files
  219909. .IP \(bu 2
  219910. 3be15694d2 Use Type=notify for debian systemd units
  219911. .IP \(bu 2
  219912. d58fda6f67 Use control\-group default for killmode
  219913. .UNINDENT
  219914. .IP \(bu 2
  219915. \fBPR\fP \fI\%#37186\fP: (\fI\%rallytime\fP) Pylint fix for 2016.3
  219916. .IP \(bu 2
  219917. \fBPR\fP \fI\%#37175\fP: (\fI\%cachedout\fP) Fix test hang (refs: \fI\%#37186\fP)
  219918. .UNINDENT
  219919. .IP \(bu 2
  219920. \fBPR\fP \fI\%#37175\fP: (\fI\%cachedout\fP) Fix test hang (refs: \fI\%#37186\fP)
  219921. @ \fI2016\-10\-24 09:55:37 UTC\fP
  219922. .INDENT 2.0
  219923. .IP \(bu 2
  219924. 0d7af935e5 Merge pull request \fI\%#37175\fP from cachedout/fix_test_hange
  219925. .IP \(bu 2
  219926. 0fecb5ff2e Remove sleep. Thanks @s0undt3ch
  219927. .IP \(bu 2
  219928. cedc609503 Fix test suite hang on salt testing
  219929. .UNINDENT
  219930. .IP \(bu 2
  219931. \fBISSUE\fP \fI\%#36866\fP: (\fI\%sjorge\fP) [2016.11.0rc1] salt\-master <> salt\-minion communication borken due to master_alive_interval (refs: \fI\%#37144\fP, \fI\%#37117\fP, \fI\%#37142\fP)
  219932. .IP \(bu 2
  219933. \fBPR\fP \fI\%#37144\fP: (\fI\%DmitryKuzmenko\fP) Bugs/36866 salt minion communication broken 2016.3
  219934. @ \fI2016\-10\-24 03:19:06 UTC\fP
  219935. .INDENT 2.0
  219936. .IP \(bu 2
  219937. \fBPR\fP \fI\%#37142\fP: (\fI\%DmitryKuzmenko\fP) status.master: don\(aqt fail if host_to_ips returns None (refs: \fI\%#37144\fP)
  219938. .IP \(bu 2
  219939. \fBPR\fP \fI\%#37117\fP: (\fI\%DmitryKuzmenko\fP) Updated host_to_ip to return all the IPs instead of the first one. (refs: \fI\%#37144\fP, \fI\%#37142\fP)
  219940. .IP \(bu 2
  219941. 334313ec64 Merge pull request \fI\%#37144\fP from DSRCorporation/bugs/36866_salt\-minion_communication_broken_2016.3
  219942. .IP \(bu 2
  219943. 87c2e93e40 Don\(aqt fail if host_to_ips returns None.
  219944. .IP \(bu 2
  219945. f625e6d3a9 Updated host_to_ip to return all the IPs instead of the first one.
  219946. .UNINDENT
  219947. .IP \(bu 2
  219948. \fBPR\fP \fI\%#37158\fP: (\fI\%jfindlay\fP) add mock for \fIstatus.uptime\fP unit test (refs: \fI\%#37157\fP)
  219949. @ \fI2016\-10\-24 03:13:53 UTC\fP
  219950. .INDENT 2.0
  219951. .IP \(bu 2
  219952. \fBPR\fP \fI\%#37157\fP: (\fI\%jfindlay\fP) Implement \fIstatus.uptime\fP on macOS (refs: \fI\%#37158\fP)
  219953. .IP \(bu 2
  219954. c5d81a8ade Merge pull request \fI\%#37158\fP from jfindlay/mac_skip_uptime
  219955. .IP \(bu 2
  219956. 094eac06eb modules.status.uptime unit test: mock on linux
  219957. .UNINDENT
  219958. .IP \(bu 2
  219959. \fBISSUE\fP \fI\%#37037\fP: (\fI\%mikeadamz\fP) schedule state always reports changed when running in highstate (refs: \fI\%#37098\fP)
  219960. .IP \(bu 2
  219961. \fBPR\fP \fI\%#37161\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37098\fP to 2016.3
  219962. @ \fI2016\-10\-24 03:13:14 UTC\fP
  219963. .INDENT 2.0
  219964. .IP \(bu 2
  219965. \fBPR\fP \fI\%#37098\fP: (\fI\%mikeadamz\fP) Add run_on_start to SCHEDULE_CONF (refs: \fI\%#37161\fP)
  219966. .IP \(bu 2
  219967. e51f90b459 Merge pull request \fI\%#37161\fP from rallytime/bp\-37098
  219968. .IP \(bu 2
  219969. 36bc2a1ded Add run_on_start to SCHEDULE_CONF
  219970. .UNINDENT
  219971. .IP \(bu 2
  219972. \fBPR\fP \fI\%#37159\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37107\fP to 2016.3
  219973. @ \fI2016\-10\-22 13:55:47 UTC\fP
  219974. .INDENT 2.0
  219975. .IP \(bu 2
  219976. \fBPR\fP \fI\%#37107\fP: (\fI\%do3meli\fP) use versionadded and deprecated warnings in apache_module (refs: \fI\%#37159\fP)
  219977. .IP \(bu 2
  219978. b5025c044e Merge pull request \fI\%#37159\fP from rallytime/bp\-37107
  219979. .IP \(bu 2
  219980. c63126a2f0 removed trailing whitespaces in apache_module.py
  219981. .IP \(bu 2
  219982. a812cbfea7 use versionadded and deprecated warnings in apache_module
  219983. .UNINDENT
  219984. .IP \(bu 2
  219985. \fBPR\fP \fI\%#37163\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  219986. @ \fI2016\-10\-22 13:52:37 UTC\fP
  219987. .INDENT 2.0
  219988. .IP \(bu 2
  219989. 1e520b3f48 Merge pull request \fI\%#37163\fP from rallytime/merge\-2016.3
  219990. .IP \(bu 2
  219991. 8fff95b3b4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  219992. .IP \(bu 2
  219993. a5335a2f15 Merge pull request \fI\%#37137\fP from awerner/fix\-spm\-msgpack
  219994. .INDENT 2.0
  219995. .IP \(bu 2
  219996. 52d47cece9 SPM\-METADATA are now loaded as yaml from remote URLs
  219997. .UNINDENT
  219998. .IP \(bu 2
  219999. 8c46d69251 Merge pull request \fI\%#37109\fP from meaksh/zypper\-distupgrade\-support\-2015.8
  220000. .INDENT 2.0
  220001. .IP \(bu 2
  220002. 330f830c9b Disables \(aqnovendorchange\(aq for old SLEs versions
  220003. .IP \(bu 2
  220004. 01b0a6917c Minor pylint fixes
  220005. .IP \(bu 2
  220006. 7dbb0bd252 Unit tests fixes
  220007. .IP \(bu 2
  220008. e89982b6d2 Improves \(aqdryrun\(aq outputting. Setting \(aqnovendorchange\(aq as not supported for SLE11
  220009. .IP \(bu 2
  220010. c5a34cbadf Adds multiple repositories support to \(aqfromrepo\(aq parameter
  220011. .UNINDENT
  220012. .IP \(bu 2
  220013. 38fdd28962 Merge pull request \fI\%#37087\fP from vutny/gpg\-fix\-short\-keyid
  220014. .INDENT 2.0
  220015. .IP \(bu 2
  220016. c589cba8a9 salt.modules.gpg: allow getting keys by short key ID
  220017. .UNINDENT
  220018. .IP \(bu 2
  220019. 3a37a22366 Merge pull request \fI\%#37088\fP from meaksh/zypper\-distupgrade\-support\-2015.8
  220020. .INDENT 2.0
  220021. .IP \(bu 2
  220022. c0641a4027 Fix in log message
  220023. .IP \(bu 2
  220024. a092a974da Refactor: Cleanup and pylint fixes
  220025. .IP \(bu 2
  220026. 1331ae5c72 Unit tests for zypper upgrade and dist\-upgrade
  220027. .IP \(bu 2
  220028. 4bcfef2ba2 Adding \(aqdist\-upgrade\(aq support to zypper module
  220029. .UNINDENT
  220030. .IP \(bu 2
  220031. 2f29e9e956 Merge pull request \fI\%#37090\fP from zer0def/silence\-prereq\-supervisord\-warnings
  220032. .INDENT 2.0
  220033. .IP \(bu 2
  220034. 6a4bfbb485 Silence warnings about "__prerequired__" being an invalid kwarg when using \fIprereq\fP\&. (no refs)
  220035. .UNINDENT
  220036. .IP \(bu 2
  220037. \fBPR\fP \fI\%#37150\fP: (\fI\%rallytime\fP) Allow the minion test daemons a couple of tries to connect to the master
  220038. .IP \(bu 2
  220039. \fBPR\fP \fI\%#37152\fP: (\fI\%rallytime\fP) Add note about salt\-bootstrap known issue for 2016.3.4
  220040. .UNINDENT
  220041. .IP \(bu 2
  220042. \fBPR\fP \fI\%#37135\fP: (\fI\%aaronm\-cloudtek\fP) Fix example signing policy in salt.states.x509 docs
  220043. @ \fI2016\-10\-21 11:45:24 UTC\fP
  220044. .INDENT 2.0
  220045. .IP \(bu 2
  220046. 8de7b39b5e Merge pull request \fI\%#37135\fP from Cloudtek/x509\-docs\-fix
  220047. .IP \(bu 2
  220048. ce87f7311b Fix example signing policy in salt.states.x509 docs
  220049. .UNINDENT
  220050. .IP \(bu 2
  220051. \fBPR\fP \fI\%#37140\fP: (\fI\%vutny\fP) pkgbuild.repo: fix GPG signing with \fIuse_passphrase=False\fP
  220052. @ \fI2016\-10\-21 09:37:54 UTC\fP
  220053. .INDENT 2.0
  220054. .IP \(bu 2
  220055. 41ae90d3c3 Merge pull request \fI\%#37140\fP from vutny/pkgbuild\-repo\-sign\-with\-no\-passphrase
  220056. .IP \(bu 2
  220057. 409a3100a7 pkgbuild.repo: fix GPG signing with \fIuse_passphrase=False\fP
  220058. .UNINDENT
  220059. .IP \(bu 2
  220060. \fBPR\fP \fI\%#37071\fP: (\fI\%vutny\fP) pkgbuild.repo: add \fItimeout\fP parameter for waiting passphrase prompt
  220061. @ \fI2016\-10\-21 05:20:26 UTC\fP
  220062. .INDENT 2.0
  220063. .IP \(bu 2
  220064. 96a1292a7e Merge pull request \fI\%#37071\fP from vutny/pkgbuild\-repo\-gpg\-sign\-timeout
  220065. .IP \(bu 2
  220066. cfc3a0ed92 pkgbuild.repo: add \fItimeout\fP parameter for waiting passphrase prompt
  220067. .UNINDENT
  220068. .IP \(bu 2
  220069. \fBISSUE\fP \fI\%saltstack/salt#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36024\fP)
  220070. .IP \(bu 2
  220071. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37115\fP)
  220072. .IP \(bu 2
  220073. \fBISSUE\fP \fI\%#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36720\fP)
  220074. .IP \(bu 2
  220075. \fBPR\fP \fI\%#37115\fP: (\fI\%DmitryKuzmenko\fP) Backport/36720 fix race condition
  220076. @ \fI2016\-10\-21 05:16:15 UTC\fP
  220077. .INDENT 2.0
  220078. .IP \(bu 2
  220079. \fBPR\fP \fI\%#36720\fP: (\fI\%skizunov\fP) Fix race condition when returning events from commands (refs: \fI\%#37115\fP)
  220080. .IP \(bu 2
  220081. \fBPR\fP \fI\%#36024\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt subscribe to events if not sure it would read them. (refs: \fI\%#36720\fP)
  220082. .IP \(bu 2
  220083. 274120300d Merge pull request \fI\%#37115\fP from DSRCorporation/backport/36720_fix_race_condition
  220084. .IP \(bu 2
  220085. d7e3209e13 For IPCClient, remove entry from instance map on close
  220086. .IP \(bu 2
  220087. 82e27634a7 Fix race condition when returning events from commands
  220088. .UNINDENT
  220089. .IP \(bu 2
  220090. \fBPR\fP \fI\%#37119\fP: (\fI\%jfindlay\fP) log.setup: only assign user if defined
  220091. @ \fI2016\-10\-21 05:14:55 UTC\fP
  220092. .INDENT 2.0
  220093. .IP \(bu 2
  220094. \fBPR\fP \fI\%#36203\fP: (\fI\%xiaoanyunfei\fP) fix owner of MultiprocessingLoggingQueue (refs: \fI\%#37119\fP)
  220095. .IP \(bu 2
  220096. 169a82e62b Merge pull request \fI\%#37119\fP from jfindlay/log_proc_user
  220097. .IP \(bu 2
  220098. 8c29949a0e log.setup: only assign user if defined
  220099. .IP \(bu 2
  220100. 1d503f032c tests.integration: pass opts as a dict
  220101. .IP \(bu 2
  220102. \fBPR\fP \fI\%#37126\fP: (\fI\%Ch3LL\fP) fix digital ocean image name in profile
  220103. .IP \(bu 2
  220104. \fBPR\fP \fI\%#37125\fP: (\fI\%jfindlay\fP) add 2016.3.4 release notes
  220105. .UNINDENT
  220106. .IP \(bu 2
  220107. \fBPR\fP \fI\%#37120\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3
  220108. @ \fI2016\-10\-20 19:38:32 UTC\fP
  220109. .INDENT 2.0
  220110. .IP \(bu 2
  220111. \fBPR\fP \fI\%#36418\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3 (refs: \fI\%#37120\fP)
  220112. .IP \(bu 2
  220113. \fBPR\fP \fI\%#36246\fP: (\fI\%twangboy\fP) Fix test_issue_6833_pip_upgrade_pip test on OS X (refs: \fI\%#36418\fP, \fI\%#37120\fP)
  220114. .IP \(bu 2
  220115. 2a35f57be8 Merge pull request \fI\%#37120\fP from rallytime/bp\-36246
  220116. .IP \(bu 2
  220117. f1c8d98119 Skip weird_install test on Mac OS X
  220118. .IP \(bu 2
  220119. 90de794290 Fix test_issue_6833_pip_upgrade_pip test on OSX
  220120. .UNINDENT
  220121. .IP \(bu 2
  220122. \fBPR\fP \fI\%#37103\fP: (\fI\%cachedout\fP) Remove unnecessary sleep from unit.utils.process_test.TestProcessMana…
  220123. @ \fI2016\-10\-20 08:45:07 UTC\fP
  220124. .INDENT 2.0
  220125. .IP \(bu 2
  220126. 0b87e7890a Merge pull request \fI\%#37103\fP from cachedout/fix_proc_test
  220127. .IP \(bu 2
  220128. d7aebd1877 Remove unnecessary sleep from unit.utils.process_test.TestProcessManager.test_restarting
  220129. .UNINDENT
  220130. .IP \(bu 2
  220131. \fBPR\fP \fI\%#36823\fP: (\fI\%terminalmage\fP) Update debian systemd unit files to use default KillMode, Type=notify (refs: \fI\%#37162\fP)
  220132. @ \fI2016\-10\-20 05:54:42 UTC\fP
  220133. .INDENT 2.0
  220134. .IP \(bu 2
  220135. \fBPR\fP \fI\%#36806\fP: (\fI\%l2ol33rt\fP) Deb systemd should use control\-group default for killmode (refs: \fI\%#36823\fP)
  220136. .IP \(bu 2
  220137. 326bbd5e30 Merge pull request \fI\%#36823\fP from terminalmage/pr\-36806
  220138. .IP \(bu 2
  220139. fb6e545f78 Use NotifyAccess=all in all unit files
  220140. .IP \(bu 2
  220141. 0ccf789172 Remove EnvironmentFile and Restart lines from unit files
  220142. .IP \(bu 2
  220143. ddd44e9b13 Use Type=notify for debian systemd units
  220144. .IP \(bu 2
  220145. 036d73f31b Use control\-group default for killmode
  220146. .UNINDENT
  220147. .IP \(bu 2
  220148. \fBPR\fP \fI\%#37030\fP: (\fI\%isbm\fP) Fix status.uptime for Solaris 9, 10 and 11.
  220149. @ \fI2016\-10\-20 05:52:53 UTC\fP
  220150. .INDENT 2.0
  220151. .IP \(bu 2
  220152. 0c40e71e17 Merge pull request \fI\%#37030\fP from isbm/isbm\-solaris\-status\-fix
  220153. .IP \(bu 2
  220154. 7d7b5ef9a9 Lintfix: E8303 too many blank lines
  220155. .IP \(bu 2
  220156. c11940d14c Fix status.uptime for Solaris 9, 10 and 11.
  220157. .UNINDENT
  220158. .IP \(bu 2
  220159. \fBPR\fP \fI\%#37101\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2016.3 to carbon
  220160. @ \fI2016\-10\-20 05:39:24 UTC\fP
  220161. .INDENT 2.0
  220162. .IP \(bu 2
  220163. eb88c73222 Merge pull request \fI\%#37101\fP from rallytime/merge\-2016.3
  220164. .IP \(bu 2
  220165. b445a5e579 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220166. .IP \(bu 2
  220167. 68eeb29783 Add warning about GitPython 2.0.9 incompatibility with Python 2.6 (\fI\%#37099\fP)
  220168. .IP \(bu 2
  220169. 39d59ab0df Merge pull request \fI\%#36880\fP from vutny/cp\-get\-salt\-url
  220170. .INDENT 2.0
  220171. .IP \(bu 2
  220172. d1ab98b459 cp.get_url: update usage doc and add tests for \fIfile://\fP URL with \fIdest=None\fP
  220173. .IP \(bu 2
  220174. c7cf79e959 cp.get_url: add note and test for \fI\%https://\fP URL with \fBdest=None\fP
  220175. .IP \(bu 2
  220176. ff55f77179 cp.get_url: write more verbose docstring
  220177. .IP \(bu 2
  220178. 94a34a08ba cp.get_url: add integration tests
  220179. .IP \(bu 2
  220180. 983f82fcf4 cp.get_url: fix variable type check
  220181. .IP \(bu 2
  220182. b33f4d7b93 cp.get_url: log error message if no file could be fetched from \fIsalt://\fP URL
  220183. .IP \(bu 2
  220184. 99cf3038cc cp.get_url: fix \fIdest=None\fP behaviour with \fIsalt://\fP URL
  220185. .UNINDENT
  220186. .UNINDENT
  220187. .IP \(bu 2
  220188. \fBPR\fP \fI\%#36958\fP: (\fI\%twangboy\fP) Fix bug where cmd.powershell fails to return
  220189. @ \fI2016\-10\-19 16:03:58 UTC\fP
  220190. .INDENT 2.0
  220191. .IP \(bu 2
  220192. 8d44efed78 Merge pull request \fI\%#36958\fP from twangboy/fix_cmd_powershell
  220193. .IP \(bu 2
  220194. 427be7b422 Add versionadded
  220195. .IP \(bu 2
  220196. d8e0e0e482 Fix missing comma
  220197. .IP \(bu 2
  220198. 7b46d04a84 Add note about increased completion times
  220199. .IP \(bu 2
  220200. 9365581a36 Clarify docs, add depth option
  220201. .UNINDENT
  220202. .IP \(bu 2
  220203. \fBPR\fP \fI\%#37086\fP: (\fI\%cachedout\fP) Make salt\-call a first\-class citizen for multi\-master
  220204. @ \fI2016\-10\-19 15:19:09 UTC\fP
  220205. .INDENT 2.0
  220206. .IP \(bu 2
  220207. beb54b3ffa Merge pull request \fI\%#37086\fP from cachedout/mm_req
  220208. .IP \(bu 2
  220209. 7dc15c1a48 Lint utils
  220210. .IP \(bu 2
  220211. 9bbe3c998b Lint error in publish
  220212. .IP \(bu 2
  220213. e22a3d2be6 Add multi\-master support to publish.publish
  220214. .IP \(bu 2
  220215. 7f141ba38c Add function to search for substr in list
  220216. .IP \(bu 2
  220217. 007eef84d7 Extend support to event.fire_master
  220218. .IP \(bu 2
  220219. 8171c73b00 Multi\-master support for salt\-call
  220220. .UNINDENT
  220221. .IP \(bu 2
  220222. \fBISSUE\fP \fI\%#36814\fP: (\fI\%martin\-helmich\fP) x509.create_csr creates invalid CSR (refs: \fI\%#36898\fP)
  220223. .IP \(bu 2
  220224. \fBPR\fP \fI\%#36898\fP: (\fI\%clinta\fP) X509 fixes
  220225. @ \fI2016\-10\-19 03:03:43 UTC\fP
  220226. .INDENT 2.0
  220227. .IP \(bu 2
  220228. 6b94153ea6 Merge pull request \fI\%#36898\fP from clinta/x509\-fixes
  220229. .IP \(bu 2
  220230. e732fe7725 fix docs on CSR state
  220231. .IP \(bu 2
  220232. 9b6f1a336c fix quotes and remove dependency on pkg_resources
  220233. .IP \(bu 2
  220234. eb4433d1ae return early if there are no requested extensions in the csr
  220235. .IP \(bu 2
  220236. d00cf8ef87 allow specifying digest for crl
  220237. .IP \(bu 2
  220238. dd50705e58 fix \fI\%#36814\fP
  220239. .UNINDENT
  220240. .IP \(bu 2
  220241. \fBISSUE\fP \fI\%#34872\fP: (\fI\%cbuechler\fP) "Minion did not return" executing state with long running command, 2016.3 regression (refs: \fI\%#37025\fP)
  220242. .IP \(bu 2
  220243. \fBPR\fP \fI\%#37025\fP: (\fI\%cro\fP) Make salt.utils.minion._check_cmdline work on OSes without /proc.
  220244. @ \fI2016\-10\-19 03:00:10 UTC\fP
  220245. .INDENT 2.0
  220246. .IP \(bu 2
  220247. a32b8cd741 Merge pull request \fI\%#37025\fP from cro/freebsd_no_proc
  220248. .IP \(bu 2
  220249. 1ac87e0efd Make salt.utils.minion._check_cmdline work on OSes without /proc.
  220250. .UNINDENT
  220251. .IP \(bu 2
  220252. \fBPR\fP \fI\%#37050\fP: (\fI\%twangboy\fP) Fix service state for Windows (DO NOT MERGE FORWARD)
  220253. @ \fI2016\-10\-19 02:46:27 UTC\fP
  220254. .INDENT 2.0
  220255. .IP \(bu 2
  220256. \fBPR\fP \fI\%#36923\fP: (\fI\%twangboy\fP) Fix service state for Windows (refs: \fI\%#37050\fP)
  220257. .IP \(bu 2
  220258. e09d9f85c5 Merge pull request \fI\%#37050\fP from twangboy/fix_win_service_state
  220259. .IP \(bu 2
  220260. b3b688e298 Fix tests
  220261. .IP \(bu 2
  220262. 1e1ee786c9 Set service to manual if disabled on start
  220263. .IP \(bu 2
  220264. \fBPR\fP \fI\%saltstack/salt#29322\fP: (\fI\%mrproper\fP) add http proxy support for tornado (refs: \fI\%#37076\fP)
  220265. .UNINDENT
  220266. .IP \(bu 2
  220267. \fBPR\fP \fI\%#37076\fP: (\fI\%jfindlay\fP) Document proxy settings
  220268. @ \fI2016\-10\-19 02:30:27 UTC\fP
  220269. .INDENT 2.0
  220270. .IP \(bu 2
  220271. 5e998638a4 Merge pull request \fI\%#37076\fP from jfindlay/proxy_doc
  220272. .IP \(bu 2
  220273. 7328df68f5 doc.topic.tutorials.http.query: add proxy section
  220274. .IP \(bu 2
  220275. 331072b35d doc.topic.tutorials.http.query: add subheadings
  220276. .IP \(bu 2
  220277. 478def4923 doc.ref.configuration.minion: add proxy vars
  220278. .UNINDENT
  220279. .IP \(bu 2
  220280. \fBISSUE\fP \fI\%#37001\fP: (\fI\%phil123456\fP) URGENT : archive.extracted does not work anymore (refs: \fI\%#37081\fP)
  220281. .IP \(bu 2
  220282. \fBPR\fP \fI\%#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification
  220283. @ \fI2016\-10\-19 02:22:22 UTC\fP
  220284. .INDENT 2.0
  220285. .IP \(bu 2
  220286. 9ec366833e Merge pull request \fI\%#37081\fP from terminalmage/issue37001
  220287. .IP \(bu 2
  220288. a3c4deeb82 Fix archive.extracted remote source_hash verification
  220289. .UNINDENT
  220290. .IP \(bu 2
  220291. \fBISSUE\fP \fI\%#35097\fP: (\fI\%jwhite530\fP) Minions die with "un\-handled exception from the multiprocessing process" (refs: \fI\%#37064\fP)
  220292. .IP \(bu 2
  220293. \fBPR\fP \fI\%#37064\fP: (\fI\%cachedout\fP) Unify job check in scheduler
  220294. @ \fI2016\-10\-19 02:08:06 UTC\fP
  220295. .INDENT 2.0
  220296. .IP \(bu 2
  220297. 67faee1f94 Merge pull request \fI\%#37064\fP from cachedout/issue_35097
  220298. .IP \(bu 2
  220299. 980ba892c9 Unify job check in scheduler
  220300. .UNINDENT
  220301. .IP \(bu 2
  220302. \fBPR\fP \fI\%#37072\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220303. @ \fI2016\-10\-18 15:23:17 UTC\fP
  220304. .INDENT 2.0
  220305. .IP \(bu 2
  220306. 7ef10f6de6 Merge pull request \fI\%#37072\fP from rallytime/merge\-2016.3
  220307. .IP \(bu 2
  220308. 78a144f19a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220309. .IP \(bu 2
  220310. 7dd91c2880 Merge pull request \fI\%#37053\fP from rallytime/update\-fedora\-install\-docs
  220311. .INDENT 2.0
  220312. .IP \(bu 2
  220313. 24e0f5e024 Update the Fedora installation docs
  220314. .UNINDENT
  220315. .IP \(bu 2
  220316. 4eb0a89b7c remove options from pylint (\fI\%#37054\fP)
  220317. .UNINDENT
  220318. .IP \(bu 2
  220319. \fBPR\fP \fI\%#37049\fP: (\fI\%terminalmage\fP) Further clarification on new grains docs from \fI\%#37028\fP
  220320. @ \fI2016\-10\-18 01:47:57 UTC\fP
  220321. .INDENT 2.0
  220322. .IP \(bu 2
  220323. \fBPR\fP \fI\%#37028\fP: (\fI\%damon\-atkins\fP) Update topics/grains doco, about considerations before adding a Grain (refs: \fI\%#37049\fP)
  220324. .IP \(bu 2
  220325. 71fd01ab8d Merge pull request \fI\%#37049\fP from terminalmage/grains\-docs
  220326. .IP \(bu 2
  220327. 854586c6a4 Add one more paragraph
  220328. .IP \(bu 2
  220329. a0502a7b90 Restructure grain writing docs
  220330. .IP \(bu 2
  220331. 4e419e90ac Further clarification on new grains docs from \fI\%#37028\fP
  220332. .UNINDENT
  220333. .IP \(bu 2
  220334. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  220335. .IP \(bu 2
  220336. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  220337. .IP \(bu 2
  220338. \fBPR\fP \fI\%#37057\fP: (\fI\%rallytime\fP) [2016.3] Update salt.utils.cloud references to __utils__ for cache funcs
  220339. @ \fI2016\-10\-18 01:31:43 UTC\fP
  220340. .INDENT 2.0
  220341. .IP \(bu 2
  220342. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  220343. .IP \(bu 2
  220344. 9a6671ce69 Merge pull request \fI\%#37057\fP from rallytime/cloud\-utils\-cleanup
  220345. .IP \(bu 2
  220346. d0dc7d4e55 [2016.3] Update salt.utils.cloud references to __utils__ for cache funcs
  220347. .UNINDENT
  220348. .IP \(bu 2
  220349. \fBPR\fP \fI\%#36977\fP: (\fI\%twangboy\fP) Remove whitespace from string commands
  220350. @ \fI2016\-10\-17 22:32:03 UTC\fP
  220351. .INDENT 2.0
  220352. .IP \(bu 2
  220353. f8cd7b7b28 Merge pull request \fI\%#36977\fP from twangboy/fix_cmd_run
  220354. .IP \(bu 2
  220355. 6586050736 Move strip to powershell block, add \-NoProfile
  220356. .UNINDENT
  220357. .IP \(bu 2
  220358. \fBPR\fP \fI\%#37048\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220359. @ \fI2016\-10\-17 16:05:48 UTC\fP
  220360. .INDENT 2.0
  220361. .IP \(bu 2
  220362. 9378b22d80 Merge pull request \fI\%#37048\fP from rallytime/merge\-2016.3
  220363. .IP \(bu 2
  220364. 5efd6d3df9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220365. .IP \(bu 2
  220366. 7f5aced50e Merge pull request \fI\%#36972\fP from zer0def/supervisor\-state\-fixes
  220367. .INDENT 2.0
  220368. .IP \(bu 2
  220369. 53801c6e80 Mitigates failure reports when making sure an existing supervisor process group is running, despite success.
  220370. .UNINDENT
  220371. .IP \(bu 2
  220372. 4e2ad07b0f Prevent source files in /tmp from being deleted by file.managed states (\fI\%#37023\fP)
  220373. .IP \(bu 2
  220374. 4e9824a65e args does not always exist (\fI\%#37019\fP)
  220375. .UNINDENT
  220376. .IP \(bu 2
  220377. \fBPR\fP \fI\%#37028\fP: (\fI\%damon\-atkins\fP) Update topics/grains doco, about considerations before adding a Grain (refs: \fI\%#37049\fP)
  220378. @ \fI2016\-10\-17 09:54:21 UTC\fP
  220379. .INDENT 2.0
  220380. .IP \(bu 2
  220381. 104a153a1f Merge pull request \fI\%#37028\fP from damon\-atkins/update_topics_grains_doco
  220382. .IP \(bu 2
  220383. 01e83a715e doc/topics/grains Update doco on when a grain should be created
  220384. .IP \(bu 2
  220385. a0e1fcc951 Add information to consider before adding a Grain to doco\(aqs for Grains
  220386. .UNINDENT
  220387. .IP \(bu 2
  220388. \fBPR\fP \fI\%#37012\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220389. @ \fI2016\-10\-14 18:07:03 UTC\fP
  220390. .INDENT 2.0
  220391. .IP \(bu 2
  220392. c30656814d Merge pull request \fI\%#37012\fP from rallytime/merge\-2016.3
  220393. .IP \(bu 2
  220394. a7c9a72104 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220395. .IP \(bu 2
  220396. c6254d59fd Merge pull request \fI\%#36807\fP from terminalmage/issue36723
  220397. .INDENT 2.0
  220398. .IP \(bu 2
  220399. 7d60e73308 Fix pillar merging when ext_pillar_first is enabled
  220400. .UNINDENT
  220401. .IP \(bu 2
  220402. e2bc94b029 cp.get_file_str: do not fail if file not found (\fI\%#36936\fP)
  220403. .UNINDENT
  220404. .IP \(bu 2
  220405. \fBISSUE\fP \fI\%#34397\fP: (\fI\%jaredhanson11\fP) ignore_epoch needs to be passed through to version_cmp functions (refs: \fI\%#34531\fP)
  220406. .INDENT 2.0
  220407. .IP \(bu 2
  220408. \fBPR\fP \fI\%#37007\fP: (\fI\%skizunov\fP) opkg: Support ignore_epoch argument in version comparisons
  220409. .IP \(bu 2
  220410. \fBPR\fP \fI\%#34531\fP: (\fI\%terminalmage\fP) Support ignore_epoch argument in version comparisons (refs: \fI\%#37007\fP)
  220411. .UNINDENT
  220412. .IP \(bu 2
  220413. \fBPR\fP \fI\%#36808\fP: (\fI\%gtmanfred\fP) allow for closing stuff in beacons (refs: \fI\%#36835\fP)
  220414. @ \fI2016\-10\-14 15:50:09 UTC\fP
  220415. .INDENT 2.0
  220416. .IP \(bu 2
  220417. 8b3e65448d Merge pull request \fI\%#36808\fP from gtmanfred/beacons
  220418. .IP \(bu 2
  220419. 727d4f309a allow for closing stuff in beacons
  220420. .IP \(bu 2
  220421. \fBPR\fP \fI\%#36993\fP: (\fI\%terminalmage\fP) Make helper funcs private
  220422. .UNINDENT
  220423. .IP \(bu 2
  220424. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  220425. .IP \(bu 2
  220426. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  220427. .IP \(bu 2
  220428. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  220429. .IP \(bu 2
  220430. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  220431. .INDENT 2.0
  220432. .IP \(bu 2
  220433. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  220434. .UNINDENT
  220435. .IP \(bu 2
  220436. \fBPR\fP \fI\%#36986\fP: (\fI\%jfindlay\fP) modules.archive.unzip: zipfile is stdlib
  220437. @ \fI2016\-10\-13 21:38:00 UTC\fP
  220438. .INDENT 2.0
  220439. .IP \(bu 2
  220440. \fBPR\fP \fI\%#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36986\fP)
  220441. .IP \(bu 2
  220442. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220443. .IP \(bu 2
  220444. \fBPR\fP \fI\%#31116\fP: (\fI\%UtahDave\fP) Add password support for zip files in archive module and state (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220445. .IP \(bu 2
  220446. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220447. .IP \(bu 2
  220448. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd. (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220449. .IP \(bu 2
  220450. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220451. .IP \(bu 2
  220452. a75761de87 Merge pull request \fI\%#36986\fP from jfindlay/arch_test
  220453. .IP \(bu 2
  220454. 2ec2684860 modules.archive.unzip: zipfile is stdlib
  220455. .UNINDENT
  220456. .IP \(bu 2
  220457. \fBISSUE\fP \fI\%#36422\fP: (\fI\%rippiedoos\fP) No error Reporting for (yum)pkg.upgrade (refs: #\(gasaltstack/salt#36450\(ga_)
  220458. .INDENT 2.0
  220459. .IP \(bu 2
  220460. \fBPR\fP \fI\%saltstack/salt#36980\fP: (\fI\%rallytime\fP) Skip pkg.upgrade test if pkg install/upgrade has problems (refs: \fI\%#36981\fP)
  220461. .IP \(bu 2
  220462. \fBPR\fP \fI\%saltstack/salt#36450\fP: (\fI\%terminalmage\fP) Normalize pkg.upgrade and raise CommandExecutionError on failure (refs: \fI\%#36981\fP, #\(gasaltstack/salt#36980\(ga_)
  220463. .UNINDENT
  220464. .IP \(bu 2
  220465. \fBPR\fP \fI\%#36981\fP: (\fI\%rallytime\fP) Skip pkg.upgrades test on distros other that Suse in 2016.3
  220466. @ \fI2016\-10\-13 21:29:36 UTC\fP
  220467. .INDENT 2.0
  220468. .IP \(bu 2
  220469. c7595b84a7 Merge pull request \fI\%#36981\fP from rallytime/upgrades\-test\-fix
  220470. .IP \(bu 2
  220471. a5ae737057 Skip pkg.upgrades test on distros other that Suse in 2016.3
  220472. .UNINDENT
  220473. .IP \(bu 2
  220474. \fBISSUE\fP \fI\%#36671\fP: (\fI\%wrigtim\fP) systemd.py available() breaks on latest LSB\-compliant versions of systemd (refs: \fI\%#36755\fP)
  220475. .IP \(bu 2
  220476. \fBPR\fP \fI\%#36755\fP: (\fI\%terminalmage\fP) systemd.py: check retcode for service availability in systemd >= 231
  220477. @ \fI2016\-10\-13 19:41:50 UTC\fP
  220478. .INDENT 2.0
  220479. .IP \(bu 2
  220480. 6b782c15e1 Merge pull request \fI\%#36755\fP from terminalmage/issue36671
  220481. .IP \(bu 2
  220482. d916c2b49c Handle cases where retcode/output feature is backported
  220483. .IP \(bu 2
  220484. b3364646ad Update systemd module unit tests
  220485. .IP \(bu 2
  220486. a2439acbc9 systemd.py: check retcode for service availability in systemd >= 231
  220487. .UNINDENT
  220488. .IP \(bu 2
  220489. \fBISSUE\fP \fI\%#36746\fP: (\fI\%Ch3LL\fP) Carbon: When killing a job jid output missing (refs: \fI\%#36750\fP)
  220490. .IP \(bu 2
  220491. \fBPR\fP \fI\%#36750\fP: (\fI\%terminalmage\fP) Add the CLI client and pub_data as class attributes
  220492. @ \fI2016\-10\-13 19:38:33 UTC\fP
  220493. .INDENT 2.0
  220494. .IP \(bu 2
  220495. 10d255c511 Merge pull request \fI\%#36750\fP from terminalmage/issue36746
  220496. .IP \(bu 2
  220497. 0e7c600e02 Only display Ctrl\-c message on SIGINT
  220498. .IP \(bu 2
  220499. 9025be48c5 Include the jid (when available) in SystemExit message on Ctrl\-c
  220500. .IP \(bu 2
  220501. 9c9f1f620b Add the CLI client and pub_data as class attributes
  220502. .UNINDENT
  220503. .IP \(bu 2
  220504. \fBISSUE\fP \fI\%#36240\fP: (\fI\%hrumph\fP) win_certutil add_store state not installing certificates (refs: \fI\%#36241\fP)
  220505. .IP \(bu 2
  220506. \fBPR\fP \fI\%#36241\fP: (\fI\%hrumph\fP) Fixes \fI\%#36240\fP
  220507. @ \fI2016\-10\-12 23:28:35 UTC\fP
  220508. .INDENT 2.0
  220509. .IP \(bu 2
  220510. 3ac9ced202 Merge pull request \fI\%#36241\fP from hrumph/cert_problem
  220511. .IP \(bu 2
  220512. 51230fc263 Merge pull request \fI\%#1\fP from rallytime/pr\-36241
  220513. .INDENT 2.0
  220514. .IP \(bu 2
  220515. 32846794c8 Update mocks for failing tests in win_certutil_test
  220516. .UNINDENT
  220517. .IP \(bu 2
  220518. b26578d1ac Fixes \fI\%#36240\fP
  220519. .UNINDENT
  220520. .IP \(bu 2
  220521. \fBPR\fP \fI\%#36950\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220522. @ \fI2016\-10\-12 20:57:41 UTC\fP
  220523. .INDENT 2.0
  220524. .IP \(bu 2
  220525. c1f84388d6 Merge pull request \fI\%#36950\fP from rallytime/merge\-2016.3
  220526. .IP \(bu 2
  220527. 1d3ce45ac0 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220528. .INDENT 2.0
  220529. .IP \(bu 2
  220530. 2ccc44f314 Merge pull request \fI\%#36914\fP from rallytime/suse_show_link
  220531. .INDENT 2.0
  220532. .IP \(bu 2
  220533. b8ffd9f53f Allow alternatives.show_link function to work on Suse distros
  220534. .UNINDENT
  220535. .UNINDENT
  220536. .IP \(bu 2
  220537. 5362e5183e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220538. .IP \(bu 2
  220539. fe2f094838 salt.modules.gpg: initialize GnuPG home dir with correct ownership (\fI\%#36824\fP)
  220540. .IP \(bu 2
  220541. 4b21cca909 Fix race condition in which files were removed during a file.directory (\fI\%#36928\fP)
  220542. .IP \(bu 2
  220543. 7838d8d3f9 Remove "Targeting with Executions" section from docs (\fI\%#36925\fP)
  220544. .IP \(bu 2
  220545. a56bf8bd2d Update references to future default value change that was reverted (\fI\%#36924\fP)
  220546. .UNINDENT
  220547. .IP \(bu 2
  220548. \fBPR\fP \fI\%#36948\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36943\fP to 2016.3
  220549. @ \fI2016\-10\-12 18:33:02 UTC\fP
  220550. .INDENT 2.0
  220551. .IP \(bu 2
  220552. \fBPR\fP \fI\%#36943\fP: (\fI\%orymate\fP) doc: document what the argument of salt \-\-subset means (refs: \fI\%#36948\fP)
  220553. .IP \(bu 2
  220554. 7e2128c05d Merge pull request \fI\%#36948\fP from rallytime/bp\-36943
  220555. .IP \(bu 2
  220556. d2f8f18430 doc: document what the argument of salt \-\-subset means
  220557. .UNINDENT
  220558. .IP \(bu 2
  220559. \fBPR\fP \fI\%#36946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36892\fP to 2016.3
  220560. @ \fI2016\-10\-12 18:32:35 UTC\fP
  220561. .INDENT 2.0
  220562. .IP \(bu 2
  220563. \fBPR\fP \fI\%#36892\fP: (\fI\%nvtkaszpir\fP) Update tutorial.rst (refs: \fI\%#36946\fP)
  220564. .IP \(bu 2
  220565. f43a10252d Merge pull request \fI\%#36946\fP from rallytime/bp\-36892
  220566. .IP \(bu 2
  220567. 94c97ee726 Update tutorial.rst
  220568. .UNINDENT
  220569. .IP \(bu 2
  220570. \fBISSUE\fP \fI\%#35198\fP: (\fI\%goestin\fP) beacons modules: service fails (refs: \fI\%#35199\fP)
  220571. .IP \(bu 2
  220572. \fBPR\fP \fI\%#36945\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35199\fP to 2016.3
  220573. @ \fI2016\-10\-12 18:31:16 UTC\fP
  220574. .INDENT 2.0
  220575. .IP \(bu 2
  220576. \fBPR\fP \fI\%#35199\fP: (\fI\%goestin\fP) fix for issue \fI\%#35198\fP (refs: \fI\%#36945\fP)
  220577. .IP \(bu 2
  220578. 5c70669ac0 Merge pull request \fI\%#36945\fP from rallytime/bp\-35199
  220579. .IP \(bu 2
  220580. 390b906c2f adhere pep8 e713
  220581. .IP \(bu 2
  220582. 79c9905fc5 Re\-added accidentally removed line 85
  220583. .IP \(bu 2
  220584. 8bba13896a Fixed issue \fI\%#35198\fP now without deprecated code.
  220585. .IP \(bu 2
  220586. 1241d87f1d fix for issue \fI\%#35198\fP
  220587. .IP \(bu 2
  220588. \fBPR\fP \fI\%#36949\fP: (\fI\%terminalmage\fP) Fix versionadded
  220589. .IP \(bu 2
  220590. \fBPR\fP \fI\%#36930\fP: (\fI\%jfindlay\fP) return opennebula errors to user
  220591. .UNINDENT
  220592. .IP \(bu 2
  220593. \fBPR\fP \fI\%#36929\fP: (\fI\%rallytime\fP) [yumpkg] Skip test_pkg_upgrade_has_pending_upgrades if there are no upgrades
  220594. @ \fI2016\-10\-11 22:55:49 UTC\fP
  220595. .INDENT 2.0
  220596. .IP \(bu 2
  220597. 6ea1f59058 Merge pull request \fI\%#36929\fP from rallytime/fix\-pending\-upgrade\-test
  220598. .IP \(bu 2
  220599. 32829b9474 [yumpkg] Skip test_pkg_upgrade_has_pending_upgrades if there are no upgrades
  220600. .UNINDENT
  220601. .IP \(bu 2
  220602. \fBISSUE\fP \fI\%#36906\fP: (\fI\%sjorge\fP) [docs] comments about targetting execution still correct? (refs: \fI\%#36926\fP, #\(gasaltstack/salt\(ga#36925\(ga_\(ga_, \fI\%#36925\fP)
  220603. .INDENT 2.0
  220604. .IP \(bu 2
  220605. \fBPR\fP \fI\%saltstack/salt#36925\fP: (\fI\%rallytime\fP) Remove "Targeting with Executions" section from docs (refs: \fI\%#36926\fP)
  220606. .IP \(bu 2
  220607. \fBPR\fP \fI\%#36926\fP: (\fI\%rallytime\fP) [2016.3] Remove "Targeting with Executions" section from docs
  220608. .UNINDENT
  220609. .IP \(bu 2
  220610. \fBPR\fP \fI\%#36915\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220611. @ \fI2016\-10\-11 19:49:42 UTC\fP
  220612. .INDENT 2.0
  220613. .IP \(bu 2
  220614. b7f87e0aed Merge pull request \fI\%#36915\fP from rallytime/merge\-2016.3
  220615. .IP \(bu 2
  220616. 971c27cba2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220617. .IP \(bu 2
  220618. f3443fb992 Properly handle "shared" arg in git.init when it is a bool (\fI\%#36912\fP)
  220619. .IP \(bu 2
  220620. bdbf1619cb Check for test=True in salt.wait_for_event orchestration events (\fI\%#36897\fP)
  220621. .IP \(bu 2
  220622. \fBPR\fP \fI\%#36820\fP: (\fI\%BenoitKnecht\fP) Fix diff output of test runs for Debian slave interfaces
  220623. .UNINDENT
  220624. .IP \(bu 2
  220625. \fBISSUE\fP \fI\%#36855\fP: (\fI\%edwardsdanielj\fP) Issue with setting up schedule job via state.apply (refs: \fI\%#36894\fP)
  220626. .INDENT 2.0
  220627. .IP \(bu 2
  220628. \fBPR\fP \fI\%#36894\fP: (\fI\%jfindlay\fP) states.schedule: splay is not ordereddict
  220629. .UNINDENT
  220630. .IP \(bu 2
  220631. \fBPR\fP \fI\%#36885\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220632. @ \fI2016\-10\-10 19:30:25 UTC\fP
  220633. .INDENT 2.0
  220634. .IP \(bu 2
  220635. 86ac8bd680 Merge pull request \fI\%#36885\fP from rallytime/merge\-2016.3
  220636. .IP \(bu 2
  220637. c09b9d6e6a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220638. .INDENT 2.0
  220639. .IP \(bu 2
  220640. 3ce4897b97 Merge pull request \fI\%#36857\fP from terminalmage/systemd\-unit\-tests
  220641. .INDENT 2.0
  220642. .IP \(bu 2
  220643. 7c78d6f419 Add unit tests for systemd scope usage
  220644. .UNINDENT
  220645. .UNINDENT
  220646. .IP \(bu 2
  220647. \fBPR\fP \fI\%#36889\fP: (\fI\%terminalmage\fP) salt\-ssh: Try "command \-v" before falling back to "which"
  220648. .UNINDENT
  220649. .IP \(bu 2
  220650. \fBISSUE\fP \fI\%#36804\fP: (\fI\%Ch3LL\fP) CARBON: error when using pkg.installed with url source (refs: \fI\%#36830\fP)
  220651. .INDENT 2.0
  220652. .IP \(bu 2
  220653. \fBPR\fP \fI\%#36830\fP: (\fI\%terminalmage\fP) fileclient: Change queryarg comparison from None to simple boolean check
  220654. .UNINDENT
  220655. .IP \(bu 2
  220656. \fBPR\fP \fI\%#36853\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33939\fP to 2016.3
  220657. @ \fI2016\-10\-07 21:44:33 UTC\fP
  220658. .INDENT 2.0
  220659. .IP \(bu 2
  220660. \fBPR\fP \fI\%#33939\fP: (\fI\%bx2\fP) Removed \fI!\fP\-password check for salt\-cloud vultr provider (refs: \fI\%#36853\fP)
  220661. .IP \(bu 2
  220662. 6a6bdf3e3f Merge pull request \fI\%#36853\fP from rallytime/bp\-33939
  220663. .IP \(bu 2
  220664. efbc09c1a6 Removed \fI!\fP\-password check
  220665. .UNINDENT
  220666. .IP \(bu 2
  220667. \fBPR\fP \fI\%#36852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36743\fP to 2016.3
  220668. @ \fI2016\-10\-07 21:35:43 UTC\fP
  220669. .INDENT 2.0
  220670. .IP \(bu 2
  220671. \fBPR\fP \fI\%#36743\fP: (\fI\%do3meli\fP) corrected OS Name in openbsd_sysctl module load error message (refs: \fI\%#36852\fP)
  220672. .IP \(bu 2
  220673. 01348bde18 Merge pull request \fI\%#36852\fP from rallytime/bp\-36743
  220674. .IP \(bu 2
  220675. 899130d11f corrected OS Name in module load error message
  220676. .UNINDENT
  220677. .IP \(bu 2
  220678. \fBPR\fP \fI\%#36844\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  220679. @ \fI2016\-10\-07 19:20:31 UTC\fP
  220680. .INDENT 2.0
  220681. .IP \(bu 2
  220682. 0b7661244d Merge pull request \fI\%#36844\fP from rallytime/merge\-2016.3
  220683. .IP \(bu 2
  220684. 1c3a9a3ee9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220685. .INDENT 2.0
  220686. .IP \(bu 2
  220687. 3e6b16de2b Merge pull request \fI\%#36786\fP from cachedout/fixup_36676
  220688. .INDENT 2.0
  220689. .IP \(bu 2
  220690. 3c93134e57 Typo
  220691. .IP \(bu 2
  220692. 13eb463bd9 Fixup alterernatives module
  220693. .UNINDENT
  220694. .IP \(bu 2
  220695. c126f2e132 Merge pull request \fI\%#36757\fP from cachedout/issue_33841
  220696. .INDENT 2.0
  220697. .IP \(bu 2
  220698. 4bce452500 Resolve issue with minion failing to restart on failure
  220699. .UNINDENT
  220700. .IP \(bu 2
  220701. 89f9fc8c0d Merge pull request \fI\%#36749\fP from jacobhammons/file\-dict
  220702. .INDENT 2.0
  220703. .IP \(bu 2
  220704. 71f91b3a50 Fixes the cli examples to reference the correct function
  220705. .UNINDENT
  220706. .IP \(bu 2
  220707. 804a2a1ab0 Merge pull request \fI\%#36730\fP from rallytime/bp\-36028
  220708. .INDENT 2.0
  220709. .IP \(bu 2
  220710. 4be4f900ee Back\-port \fI\%#36028\fP to 2015.8
  220711. .UNINDENT
  220712. .UNINDENT
  220713. .UNINDENT
  220714. .IP \(bu 2
  220715. \fBPR\fP \fI\%#36835\fP: (\fI\%jfindlay\fP) unify and expand beacon documentation
  220716. @ \fI2016\-10\-07 15:59:34 UTC\fP
  220717. .INDENT 2.0
  220718. .IP \(bu 2
  220719. \fBPR\fP \fI\%#36808\fP: (\fI\%gtmanfred\fP) allow for closing stuff in beacons (refs: \fI\%#36835\fP)
  220720. .IP \(bu 2
  220721. dc5d821be6 Merge pull request \fI\%#36835\fP from jfindlay/beacon_doc
  220722. .IP \(bu 2
  220723. b2eccdefd5 doc.topics.beacons: reflow text at 80 chars
  220724. .IP \(bu 2
  220725. b181f9890d doc.topics.{reactor|beacons}: unify examples, many minor edits
  220726. .IP \(bu 2
  220727. 28b4e30009 doc.glossary: use parenthesis
  220728. .IP \(bu 2
  220729. 82cf39db00 doc.glossary: add JID
  220730. .IP \(bu 2
  220731. cc071b75cb doc.glossary: add idempotent
  220732. .UNINDENT
  220733. .IP \(bu 2
  220734. \fBISSUE\fP \fI\%#36787\fP: (\fI\%maximeguillet\fP) postgres.* calls fail with postgresql 9.6 and .psqlrc custom file (refs: \fI\%#36789\fP)
  220735. .IP \(bu 2
  220736. \fBPR\fP \fI\%#36789\fP: (\fI\%maximeguillet\fP) Fix behavior of psql \-c option with postgresql 9.6
  220737. @ \fI2016\-10\-06 11:24:51 UTC\fP
  220738. .INDENT 2.0
  220739. .IP \(bu 2
  220740. 1284de27fc Merge pull request \fI\%#36789\fP from maximeguillet/fix\-psqlrc\-pg9.6
  220741. .IP \(bu 2
  220742. b59c23bef1 Fix one remaining postgresql tests linked to \fI\%#36787\fP\&.
  220743. .IP \(bu 2
  220744. 8b92ae2061 Fix postgresql tests using position in the argument list of psql.
  220745. .IP \(bu 2
  220746. 21f2a17a07 Fix postgresql tests by adding \-\-no\-psqlrc option introduced by \fI\%#36787\fP\&.
  220747. .IP \(bu 2
  220748. 574e30e915 Fix behavior of psql \-c option with postgresql 9.6
  220749. .UNINDENT
  220750. .IP \(bu 2
  220751. \fBISSUE\fP \fI\%#36579\fP: (\fI\%scubahub\fP) No error generated when reactor file does not exist. (refs: \fI\%#36797\fP)
  220752. .IP \(bu 2
  220753. \fBPR\fP \fI\%#36797\fP: (\fI\%cachedout\fP) Error on reaction with missing SLS file
  220754. @ \fI2016\-10\-06 11:19:27 UTC\fP
  220755. .INDENT 2.0
  220756. .IP \(bu 2
  220757. a1d59f4d2f Merge pull request \fI\%#36797\fP from cachedout/issue_36579
  220758. .IP \(bu 2
  220759. 6ce4653fa3 Error on reaction with missing SLS file
  220760. .UNINDENT
  220761. .IP \(bu 2
  220762. \fBISSUE\fP \fI\%saltstack/salt#36788\fP: (\fI\%damon\-atkins\fP) pillar/libvirt.py assume certtool is available and works everytime (refs: \fI\%#36803\fP)
  220763. .IP \(bu 2
  220764. \fBPR\fP \fI\%#36803\fP: (\fI\%gtmanfred\fP) do not load libvirt pillar if certtool is unavailable
  220765. @ \fI2016\-10\-06 11:15:14 UTC\fP
  220766. .INDENT 2.0
  220767. .IP \(bu 2
  220768. b75130be2d Merge pull request \fI\%#36803\fP from gtmanfred/2016.3
  220769. .IP \(bu 2
  220770. 2183737085 do not load libvirt pillar if certtool is unavailable
  220771. .UNINDENT
  220772. .IP \(bu 2
  220773. \fBPR\fP \fI\%#36815\fP: (\fI\%BenoitKnecht\fP) Fix glance.image_present state
  220774. @ \fI2016\-10\-06 10:29:44 UTC\fP
  220775. .INDENT 2.0
  220776. .IP \(bu 2
  220777. 39148dc711 Merge pull request \fI\%#36815\fP from BenoitKnecht/fix\-glance\-image\-present\-state\-2016.3
  220778. .IP \(bu 2
  220779. 342eee444d states: glance: handle image list instead of dict
  220780. .IP \(bu 2
  220781. 02b91ecf15 states: glance: import keystone exceptions from new location
  220782. .UNINDENT
  220783. .IP \(bu 2
  220784. \fBISSUE\fP \fI\%#36738\fP: (\fI\%edhgoose\fP) rpmdev\-vercmp throws lots of warnings on Amazon Linux (refs: \fI\%#36739\fP)
  220785. .IP \(bu 2
  220786. \fBPR\fP \fI\%#36754\fP: (\fI\%terminalmage\fP) Base rpmdev\-vercmp comparison result on retcode
  220787. @ \fI2016\-10\-05 12:50:23 UTC\fP
  220788. .INDENT 2.0
  220789. .IP \(bu 2
  220790. \fBPR\fP \fI\%#36739\fP: (\fI\%edhgoose\fP) Add support for rpmdevtools returning < / > / == (refs: \fI\%#36754\fP)
  220791. .IP \(bu 2
  220792. 81c935f210 Merge pull request \fI\%#36754\fP from terminalmage/issue36738
  220793. .IP \(bu 2
  220794. 928c99d2f7 Base rpmdev\-vercmp comparison result on retcode
  220795. .IP \(bu 2
  220796. \fBPR\fP \fI\%saltstack/salt#36728\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36785\fP)
  220797. .UNINDENT
  220798. .IP \(bu 2
  220799. \fBPR\fP \fI\%#36785\fP: (\fI\%cachedout\fP) Fixup merge forward \fI\%#36728\fP
  220800. @ \fI2016\-10\-05 11:02:16 UTC\fP
  220801. .INDENT 2.0
  220802. .IP \(bu 2
  220803. \fBPR\fP \fI\%#36728\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36785\fP)
  220804. .IP \(bu 2
  220805. 4bdb997dae Merge pull request \fI\%#36785\fP from cachedout/pr\-36728
  220806. .IP \(bu 2
  220807. 118ba8a772 Update alternatives module to strip newline chars
  220808. .IP \(bu 2
  220809. 24b8bba145 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  220810. .INDENT 2.0
  220811. .IP \(bu 2
  220812. a01a68d4be Merge pull request \fI\%#36676\fP from vutny/redhat\-alternatives\-detect\-fail
  220813. .INDENT 2.0
  220814. .IP \(bu 2
  220815. bba9d0d105 \fIalternatives.install\fP state: detect \fIalternatives\fP command failed
  220816. .UNINDENT
  220817. .IP \(bu 2
  220818. eab4fd563a Merge pull request \fI\%#36700\fP from terminalmage/update\-faq
  220819. .INDENT 2.0
  220820. .IP \(bu 2
  220821. 3d15eedfe0 Add additional information about onchanges/onchanges_in
  220822. .IP \(bu 2
  220823. 57ecbe6c53 Update minion restart example to use onchanges instead of cmd.wait
  220824. .UNINDENT
  220825. .UNINDENT
  220826. .UNINDENT
  220827. .IP \(bu 2
  220828. \fBISSUE\fP \fI\%#36766\fP: (\fI\%bx2\fP) salt\-cloud (vultr) throws NameError: global name \(aq__opts__\(aq is not defined (refs: \fI\%#36768\fP)
  220829. .IP \(bu 2
  220830. \fBPR\fP \fI\%#36768\fP: (\fI\%gtmanfred\fP) add __utils__ to vultr cloud provider
  220831. @ \fI2016\-10\-05 06:59:27 UTC\fP
  220832. .INDENT 2.0
  220833. .IP \(bu 2
  220834. 90cca6b135 Merge pull request \fI\%#36768\fP from gtmanfred/2016.3
  220835. .IP \(bu 2
  220836. 9df2fd11dd add __utils__ to vultr cloud provider
  220837. .UNINDENT
  220838. .IP \(bu 2
  220839. \fBPR\fP \fI\%#36764\fP: (\fI\%cachedout\fP) Another bit of detection for failed pip tests
  220840. @ \fI2016\-10\-04 13:05:29 UTC\fP
  220841. .INDENT 2.0
  220842. .IP \(bu 2
  220843. 8ff69bf0c7 Merge pull request \fI\%#36764\fP from cachedout/more_pip_test_fixing
  220844. .IP \(bu 2
  220845. b9f5343449 Another bit of detection for failed pip tests
  220846. .UNINDENT
  220847. .IP \(bu 2
  220848. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  220849. .IP \(bu 2
  220850. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  220851. .IP \(bu 2
  220852. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  220853. .IP \(bu 2
  220854. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  220855. .INDENT 2.0
  220856. .IP \(bu 2
  220857. \fBPR\fP \fI\%saltstack/salt#36722\fP: (\fI\%rallytime\fP) Skip cmd_unzip test if salt.utils.which(\(aqzip\(aq) isn\(aqt available (refs: \fI\%#36747\fP)
  220858. .IP \(bu 2
  220859. \fBPR\fP \fI\%saltstack/salt#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36747\fP)
  220860. .IP \(bu 2
  220861. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  220862. .UNINDENT
  220863. .IP \(bu 2
  220864. \fBPR\fP \fI\%#36747\fP: (\fI\%jfindlay\fP) modules.archive integration tests: check for gzip, rar
  220865. @ \fI2016\-10\-04 11:47:32 UTC\fP
  220866. .INDENT 2.0
  220867. .IP \(bu 2
  220868. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220869. .IP \(bu 2
  220870. \fBPR\fP \fI\%#31116\fP: (\fI\%UtahDave\fP) Add password support for zip files in archive module and state (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220871. .IP \(bu 2
  220872. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220873. .IP \(bu 2
  220874. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd. (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220875. .IP \(bu 2
  220876. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  220877. .IP \(bu 2
  220878. 5c0cbfc4c6 Merge pull request \fI\%#36747\fP from jfindlay/arch_test
  220879. .IP \(bu 2
  220880. b5fcca9983 modules.archive int tests: check for gzip, rar
  220881. .UNINDENT
  220882. .IP \(bu 2
  220883. \fBPR\fP \fI\%#36744\fP: (\fI\%cachedout\fP) Fix issue where test suite could hang on shutdown
  220884. @ \fI2016\-10\-03 15:37:00 UTC\fP
  220885. .INDENT 2.0
  220886. .IP \(bu 2
  220887. 93f1daa4ce Merge pull request \fI\%#36744\fP from cachedout/fix_test_shutdown
  220888. .IP \(bu 2
  220889. cdf2a56564 Fix issue where test suite could hang on shutdown
  220890. .UNINDENT
  220891. .IP \(bu 2
  220892. \fBISSUE\fP \fI\%saltstack/salt#32490\fP: (\fI\%davegiles\fP) __proxy__ not available when called from state.sls_id, fine from state.highstate (refs: \fI\%#36696\fP)
  220893. .IP \(bu 2
  220894. \fBPR\fP \fI\%#36696\fP: (\fI\%cro\fP) pass __proxy__ in state.sls_id
  220895. @ \fI2016\-10\-01 09:37:50 UTC\fP
  220896. .INDENT 2.0
  220897. .IP \(bu 2
  220898. 6fa9ec36d2 Merge pull request \fI\%#36696\fP from cro/proxy_in_sls_id
  220899. .IP \(bu 2
  220900. 891004f3be try/except for when __proxy__ is not injected.
  220901. .IP \(bu 2
  220902. e8e53d60be pass __proxy__ in state.sls_id
  220903. .UNINDENT
  220904. .IP \(bu 2
  220905. \fBPR\fP \fI\%#36716\fP: (\fI\%vutny\fP) salt.modules.ini_manage: fix creating options in empty file
  220906. @ \fI2016\-10\-01 09:35:11 UTC\fP
  220907. .INDENT 2.0
  220908. .IP \(bu 2
  220909. e0b288feb3 Merge pull request \fI\%#36716\fP from vutny/fix\-ini\-manage
  220910. .IP \(bu 2
  220911. 73eb773fb0 salt.modules.ini_manage: fix creating options in empty file
  220912. .UNINDENT
  220913. .IP \(bu 2
  220914. \fBISSUE\fP \fI\%#29421\fP: (\fI\%scbunn\fP) pillar data leaks through environments (refs: \fI\%#36435\fP, #saltstack/salt\(ga#36435\(ga_)
  220915. .INDENT 2.0
  220916. .IP \(bu 2
  220917. \fBPR\fP \fI\%saltstack/salt#36628\fP: (\fI\%yhekma\fP) Update doc to reflect the version where \(aqnone\(aq was added as a pillar_… (refs: \fI\%#36724\fP)
  220918. .IP \(bu 2
  220919. \fBPR\fP \fI\%saltstack/salt#36435\fP: (\fI\%yhekma\fP) Add "none" as a pillar merging strategy (refs: #\(gasaltstack/salt\(ga#36628\(ga_\(ga_, \fI\%#36628\fP)
  220920. .UNINDENT
  220921. .IP \(bu 2
  220922. \fBPR\fP \fI\%#36724\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36628\fP to 2016.3
  220923. @ \fI2016\-10\-01 09:33:43 UTC\fP
  220924. .INDENT 2.0
  220925. .IP \(bu 2
  220926. \fBPR\fP \fI\%#36628\fP: (\fI\%yhekma\fP) Update doc to reflect the version where \(aqnone\(aq was added as a pillar_… (refs: \fI\%#36724\fP)
  220927. .IP \(bu 2
  220928. 97713b09f5 Merge pull request \fI\%#36724\fP from rallytime/bp\-36628
  220929. .IP \(bu 2
  220930. 3bb2cb6379 Update doc to reflect the version where \(aqnone\(aq was added as a pillar_source_merging_strategy
  220931. .IP \(bu 2
  220932. \fBPR\fP \fI\%saltstack/salt#36643\fP: (\fI\%roosri\fP) a small, and unfortunate error (refs: \fI\%#36725\fP)
  220933. .UNINDENT
  220934. .IP \(bu 2
  220935. \fBPR\fP \fI\%#36725\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36643\fP to 2016.3
  220936. @ \fI2016\-10\-01 09:33:13 UTC\fP
  220937. .INDENT 2.0
  220938. .IP \(bu 2
  220939. \fBPR\fP \fI\%#36643\fP: (\fI\%roosri\fP) a small, and unfortunate error (refs: \fI\%#36725\fP)
  220940. .IP \(bu 2
  220941. 8e7529764b Merge pull request \fI\%#36725\fP from rallytime/bp\-36643
  220942. .IP \(bu 2
  220943. c5b8e442f9 a small, and unfortunate error
  220944. .UNINDENT
  220945. .IP \(bu 2
  220946. \fBPR\fP \fI\%#36726\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36722\fP to 2016.3
  220947. @ \fI2016\-10\-01 09:32:53 UTC\fP
  220948. .INDENT 2.0
  220949. .IP \(bu 2
  220950. \fBPR\fP \fI\%#36722\fP: (\fI\%rallytime\fP) Skip cmd_unzip test if salt.utils.which(\(aqzip\(aq) isn\(aqt available (refs: \fI\%#36726\fP)
  220951. .IP \(bu 2
  220952. cf32c59b6a Merge pull request \fI\%#36726\fP from rallytime/bp\-36722
  220953. .IP \(bu 2
  220954. 5904cc04c6 Skip cmd_unzip test if salt.utils.which(\(aqzip\(aq) isn\(aqt available
  220955. .UNINDENT
  220956. .IP \(bu 2
  220957. \fBISSUE\fP \fI\%saltstack/salt#36718\fP: (\fI\%Ch3LL\fP) Error when using archive.zip on python2.6 (refs: \fI\%#36719\fP)
  220958. .INDENT 2.0
  220959. .IP \(bu 2
  220960. \fBPR\fP \fI\%#36719\fP: (\fI\%Ch3LL\fP) fix python26 archive zip module
  220961. .IP \(bu 2
  220962. \fBPR\fP \fI\%saltstack/salt#36616\fP: (\fI\%cro\fP) Zypper fix test (refs: \fI\%#36699\fP)
  220963. .UNINDENT
  220964. .IP \(bu 2
  220965. \fBPR\fP \fI\%#36699\fP: (\fI\%cachedout\fP) Fix error in test
  220966. @ \fI2016\-09\-30 11:28:18 UTC\fP
  220967. .INDENT 2.0
  220968. .IP \(bu 2
  220969. 7d022a3f39 Merge pull request \fI\%#36699\fP from cachedout/fixup_36616
  220970. .IP \(bu 2
  220971. 16f5bb70ec Remove line that checks against unordered keys
  220972. .IP \(bu 2
  220973. 0e9148293a Fix error in test
  220974. .UNINDENT
  220975. .IP \(bu 2
  220976. \fBISSUE\fP \fI\%#36669\fP: (\fI\%jackywu\fP) fix bug of including loopback addr will never work (refs: \fI\%#36670\fP)
  220977. .IP \(bu 2
  220978. \fBPR\fP \fI\%#36670\fP: (\fI\%jackywu\fP) fix bug for including loopback addr
  220979. @ \fI2016\-09\-30 10:21:53 UTC\fP
  220980. .INDENT 2.0
  220981. .IP \(bu 2
  220982. 0aa35596c0 Merge pull request \fI\%#36670\fP from jackywu/2016.3
  220983. .IP \(bu 2
  220984. 48d2d512d8 fix bug for including loopback addr
  220985. .UNINDENT
  220986. .IP \(bu 2
  220987. \fBISSUE\fP \fI\%#36692\fP: (\fI\%lorengordon\fP) Expose \fIignore_if_missing\fP param to the file.replace state (refs: \fI\%#36694\fP)
  220988. .IP \(bu 2
  220989. \fBPR\fP \fI\%#36694\fP: (\fI\%lorengordon\fP) Exposes \fIignore_if_missing\fP to file.replace state module
  220990. @ \fI2016\-09\-30 10:12:27 UTC\fP
  220991. .INDENT 2.0
  220992. .IP \(bu 2
  220993. 0e8c9abe8d Merge pull request \fI\%#36694\fP from lorengordon/issue\-36692
  220994. .IP \(bu 2
  220995. 35f3bb3a8a Exposes \fIignore_if_missing\fP to file.replace state module
  220996. .IP \(bu 2
  220997. \fBPR\fP \fI\%saltstack/salt#35356\fP: (\fI\%jfindlay\fP) document log levels and warn on all logging below info (refs: \fI\%#36686\fP)
  220998. .UNINDENT
  220999. .IP \(bu 2
  221000. \fBPR\fP \fI\%#36686\fP: (\fI\%jfindlay\fP) log levels doc: try long form table
  221001. @ \fI2016\-09\-29 18:21:47 UTC\fP
  221002. .INDENT 2.0
  221003. .IP \(bu 2
  221004. c089ac6c67 Merge pull request \fI\%#36686\fP from jfindlay/log_levels
  221005. .IP \(bu 2
  221006. 4dd4fc94dc log levels doc: try long form table
  221007. .UNINDENT
  221008. .IP \(bu 2
  221009. \fBPR\fP \fI\%#36690\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221010. @ \fI2016\-09\-29 17:46:24 UTC\fP
  221011. .INDENT 2.0
  221012. .IP \(bu 2
  221013. e0a851b2f1 Merge pull request \fI\%#36690\fP from rallytime/merge\-2016.3
  221014. .IP \(bu 2
  221015. 7fc38c9aca Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221016. .IP \(bu 2
  221017. 7d1972bd5c Merge pull request \fI\%#36684\fP from rallytime/merge\-2015.8
  221018. .INDENT 2.0
  221019. .IP \(bu 2
  221020. 838722d225 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  221021. .IP \(bu 2
  221022. 8f1ba2fa26 Merge pull request \fI\%#36678\fP from rallytime/merge\-2015.5
  221023. .IP \(bu 2
  221024. 51240ecb13 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  221025. .IP \(bu 2
  221026. 86dc3dc9f7 Merge pull request \fI\%#36641\fP from fuzzy\-id/fix\-lvm\-thin\-argument
  221027. .IP \(bu 2
  221028. 740516aace fix thin argument for \(aqlvm.lv_create\(aq
  221029. .UNINDENT
  221030. .UNINDENT
  221031. .IP \(bu 2
  221032. \fBPR\fP \fI\%#36680\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221033. @ \fI2016\-09\-29 16:49:16 UTC\fP
  221034. .INDENT 2.0
  221035. .IP \(bu 2
  221036. f95dd696e5 Merge pull request \fI\%#36680\fP from rallytime/merge\-2016.3
  221037. .IP \(bu 2
  221038. 3e4ac617d3 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221039. .IP \(bu 2
  221040. e4c5d0bfd6 Merge pull request \fI\%#36664\fP from cachedout/remove_useless_size_check
  221041. .INDENT 2.0
  221042. .IP \(bu 2
  221043. 3d098c64ef Remove possible race between grains dumps in test
  221044. .UNINDENT
  221045. .IP \(bu 2
  221046. 8cfe371a5a Merge pull request \fI\%#36663\fP from cachedout/skip_pip_tests_on_download_fail
  221047. .INDENT 2.0
  221048. .IP \(bu 2
  221049. 0c7fb91dc5 Fix error
  221050. .UNINDENT
  221051. .IP \(bu 2
  221052. e3f8618982 Merge pull request \fI\%#36662\fP from cachedout/skip_pip_tests_on_download_fail
  221053. .INDENT 2.0
  221054. .IP \(bu 2
  221055. 0bbc60ccd7 Skip over tests where upstream pip isn\(aqt there
  221056. .UNINDENT
  221057. .IP \(bu 2
  221058. 3249a11e71 Merge pull request \fI\%#36661\fP from cachedout/fix_grain_test_race
  221059. .INDENT 2.0
  221060. .IP \(bu 2
  221061. 2dcb92134d Fix race between minion job timeout and cli test timeout
  221062. .UNINDENT
  221063. .IP \(bu 2
  221064. b0190f248e Merge pull request \fI\%#36660\fP from cachedout/fix_2068_issue_test
  221065. .INDENT 2.0
  221066. .IP \(bu 2
  221067. f4906fe771 Fix test not to rely on external resources
  221068. .UNINDENT
  221069. .UNINDENT
  221070. .IP \(bu 2
  221071. \fBISSUE\fP \fI\%#28125\fP: (\fI\%peter\-slovak\fP) [2015.8] support for __env__ in Git external pillar (refs: \fI\%#36659\fP)
  221072. .IP \(bu 2
  221073. \fBPR\fP \fI\%#36659\fP: (\fI\%terminalmage\fP) Support dynamic env in new\-style git_pillar
  221074. @ \fI2016\-09\-29 05:04:38 UTC\fP
  221075. .INDENT 2.0
  221076. .IP \(bu 2
  221077. eab1680f3f Merge pull request \fI\%#36659\fP from terminalmage/issue28125
  221078. .IP \(bu 2
  221079. 45352b36bd Support dynamic env in new\-style git_pillar
  221080. .UNINDENT
  221081. .IP \(bu 2
  221082. \fBISSUE\fP \fI\%#34927\fP: (\fI\%bobrik\fP) Salt does not run "systemd daemon\-reload" on unit override (refs: \fI\%#36538\fP)
  221083. .IP \(bu 2
  221084. \fBPR\fP \fI\%#36538\fP: (\fI\%clinta\fP) daemon\-reload on call to service.avaliable
  221085. @ \fI2016\-09\-29 02:28:00 UTC\fP
  221086. .INDENT 2.0
  221087. .IP \(bu 2
  221088. 0c2bd4b66b Merge pull request \fI\%#36538\fP from clinta/daemon\-reload
  221089. .IP \(bu 2
  221090. 833beb9b36 Merge pull request \fI\%#1\fP from terminalmage/pr\-36538
  221091. .INDENT 2.0
  221092. .IP \(bu 2
  221093. c4060ba2c1 Move check for service availability to a helper function
  221094. .UNINDENT
  221095. .IP \(bu 2
  221096. 20c2c91bba daemon\-reload on call to service.avaliable
  221097. .UNINDENT
  221098. .IP \(bu 2
  221099. \fBPR\fP \fI\%#36616\fP: (\fI\%cro\fP) Zypper fix test
  221100. @ \fI2016\-09\-29 02:26:22 UTC\fP
  221101. .INDENT 2.0
  221102. .IP \(bu 2
  221103. d8a61eb9f6 Merge pull request \fI\%#36616\fP from cro/zypper_fix_test
  221104. .IP \(bu 2
  221105. b618a5c07d Remove debugging
  221106. .IP \(bu 2
  221107. 3870589462 Test for pkg.upgrade. Most robust on Suse but better than nothing elsewhere
  221108. .IP \(bu 2
  221109. 867638ff48 Test for pkg.upgrade. Most robust on Suse but better than nothing elsewhere
  221110. .UNINDENT
  221111. .IP \(bu 2
  221112. \fBPR\fP \fI\%#36621\fP: (\fI\%terminalmage\fP) Fix shadowed builtins
  221113. @ \fI2016\-09\-29 02:25:54 UTC\fP
  221114. .INDENT 2.0
  221115. .IP \(bu 2
  221116. ccd92d22d2 Merge pull request \fI\%#36621\fP from terminalmage/fix\-shadowed\-builtins
  221117. .IP \(bu 2
  221118. 62729eff8d Update tests to include fix for renamed function
  221119. .IP \(bu 2
  221120. 283aca8f2a Update test to reflect new function signature
  221121. .IP \(bu 2
  221122. 0f158b5edd Fix shadowed builtins
  221123. .IP \(bu 2
  221124. \fBPR\fP \fI\%saltstack/salt#36618\fP: (\fI\%onorua\fP) Fix memory leak for 0mq transport in case of TCP DDOS (refs: \fI\%#36636\fP)
  221125. .UNINDENT
  221126. .IP \(bu 2
  221127. \fBPR\fP \fI\%#36636\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36618\fP to 2016.3
  221128. @ \fI2016\-09\-29 02:23:09 UTC\fP
  221129. .INDENT 2.0
  221130. .IP \(bu 2
  221131. \fBPR\fP \fI\%#36618\fP: (\fI\%onorua\fP) Fix memory leak for 0mq transport in case of TCP DDOS (refs: \fI\%#36636\fP)
  221132. .IP \(bu 2
  221133. 24f82b2809 Merge pull request \fI\%#36636\fP from rallytime/bp\-36618
  221134. .IP \(bu 2
  221135. 275845c3d2 Fix memory leak for 0mq transport
  221136. .UNINDENT
  221137. .IP \(bu 2
  221138. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  221139. .IP \(bu 2
  221140. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  221141. .IP \(bu 2
  221142. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  221143. .IP \(bu 2
  221144. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  221145. .INDENT 2.0
  221146. .IP \(bu 2
  221147. \fBPR\fP \fI\%saltstack/salt#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip (refs: #\(gasaltstack/salt\(ga#36648\(ga_\(ga_, \fI\%#36648\fP)
  221148. .UNINDENT
  221149. .IP \(bu 2
  221150. \fBPR\fP \fI\%#36648\fP: (\fI\%jfindlay\fP) Integration tests for archive execution module (refs: \fI\%#36986\fP)
  221151. @ \fI2016\-09\-29 02:16:54 UTC\fP
  221152. .INDENT 2.0
  221153. .IP \(bu 2
  221154. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221155. .IP \(bu 2
  221156. \fBPR\fP \fI\%#31116\fP: (\fI\%UtahDave\fP) Add password support for zip files in archive module and state (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221157. .IP \(bu 2
  221158. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221159. .IP \(bu 2
  221160. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd. (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221161. .IP \(bu 2
  221162. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221163. .IP \(bu 2
  221164. 750ff8220c Merge pull request \fI\%#36648\fP from jfindlay/arch_test
  221165. .IP \(bu 2
  221166. cc4d958557 modules.archive: add integration tests
  221167. .IP \(bu 2
  221168. 99bf89447b modules.archive: add opts arg to g(un)zip
  221169. .IP \(bu 2
  221170. c1219e68c5 modules.archive.unzip: depend on zipfile module
  221171. .IP \(bu 2
  221172. 315b031de9 modules.archive: use less redundant message
  221173. .IP \(bu 2
  221174. \fBPR\fP \fI\%saltstack/salt#36389\fP: (\fI\%cachedout\fP) Pr 36386 (refs: \fI\%#36650\fP)
  221175. .UNINDENT
  221176. .IP \(bu 2
  221177. \fBPR\fP \fI\%#36650\fP: (\fI\%rallytime\fP) Revert "Pr 36386"
  221178. @ \fI2016\-09\-29 02:11:15 UTC\fP
  221179. .INDENT 2.0
  221180. .IP \(bu 2
  221181. \fBPR\fP \fI\%#36386\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master \fI\%#35734\fP (refs: \fI\%#36389\fP, \fI\%#36650\fP, #saltstack/salt\(ga#36389\(ga_)
  221182. .IP \(bu 2
  221183. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: \fI\%#36386\fP)
  221184. .IP \(bu 2
  221185. 91aa464d5d Merge pull request \fI\%#36650\fP from saltstack/revert\-36389\-pr\-36386
  221186. .IP \(bu 2
  221187. 33ef5bffe6 Revert "Pr 36386"
  221188. .UNINDENT
  221189. .IP \(bu 2
  221190. \fBISSUE\fP \fI\%#36304\fP: (\fI\%Ch3LL\fP) stack trace when transport is not a currently supported transport (refs: \fI\%#36646\fP)
  221191. .IP \(bu 2
  221192. \fBPR\fP \fI\%#36646\fP: (\fI\%rallytime\fP) Provide an error message when invalid transport is set
  221193. @ \fI2016\-09\-28 22:52:11 UTC\fP
  221194. .INDENT 2.0
  221195. .IP \(bu 2
  221196. ab5c0e9e65 Merge pull request \fI\%#36646\fP from rallytime/fix\-36304
  221197. .IP \(bu 2
  221198. ae021d6dec Provide an error message when invalid transport is set
  221199. .UNINDENT
  221200. .IP \(bu 2
  221201. \fBPR\fP \fI\%#36635\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221202. @ \fI2016\-09\-28 21:10:25 UTC\fP
  221203. .INDENT 2.0
  221204. .IP \(bu 2
  221205. 6d9b28506c Merge pull request \fI\%#36635\fP from rallytime/merge\-2016.3
  221206. .IP \(bu 2
  221207. 787c1f557e Pylint fix
  221208. .IP \(bu 2
  221209. da574e5b03 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221210. .IP \(bu 2
  221211. f0d561a229 Merge pull request \fI\%#36632\fP from isbm/isbm\-thin\-modules\-config\-15.8
  221212. .INDENT 2.0
  221213. .IP \(bu 2
  221214. 975f8bb27d Add extra\-mods options to the Salt\-Thin via SSH CLI
  221215. .IP \(bu 2
  221216. a441b35588 Add documentation about Salt Thin configuration
  221217. .IP \(bu 2
  221218. 3bfb17ee62 Add a description of the thin/min parameters to the master config
  221219. .IP \(bu 2
  221220. 3d878f9da5 Get the thin Salt with configured extra modules on SSH
  221221. .IP \(bu 2
  221222. 2be9330be6 Add thin options to the master config.
  221223. .IP \(bu 2
  221224. 58577d342e Generate thin with configured extrta modules
  221225. .UNINDENT
  221226. .UNINDENT
  221227. .IP \(bu 2
  221228. \fBISSUE\fP \fI\%#36553\fP: (\fI\%nilliams\fP) states.hg.latest claims to succeed despite errors (refs: \fI\%#36620\fP)
  221229. .IP \(bu 2
  221230. \fBPR\fP \fI\%#36620\fP: (\fI\%rallytime\fP) Don\(aqt allow mercurial states to return True with errors
  221231. @ \fI2016\-09\-28 05:50:50 UTC\fP
  221232. .INDENT 2.0
  221233. .IP \(bu 2
  221234. 83da81cdfd Merge pull request \fI\%#36620\fP from rallytime/fix\-36553
  221235. .IP \(bu 2
  221236. a828bdd0b8 Update test mocks for cmd.run_all dicts
  221237. .IP \(bu 2
  221238. 3904dfc5a8 Don\(aqt allow mercurial states to return True with errors
  221239. .UNINDENT
  221240. .IP \(bu 2
  221241. \fBPR\fP \fI\%#36622\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221242. @ \fI2016\-09\-28 05:39:43 UTC\fP
  221243. .INDENT 2.0
  221244. .IP \(bu 2
  221245. 1c001d0ee1 Merge pull request \fI\%#36622\fP from rallytime/merge\-2016.3
  221246. .IP \(bu 2
  221247. 90c66ef756 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221248. .INDENT 2.0
  221249. .IP \(bu 2
  221250. 9b9e167b47 Merge pull request \fI\%#36562\fP from kiorky/s2015.8
  221251. .INDENT 2.0
  221252. .IP \(bu 2
  221253. 47c3d03035 Fix pkg.latest_version using localized output
  221254. .UNINDENT
  221255. .IP \(bu 2
  221256. 4ab52ae0f6 Merge pull request \fI\%#36607\fP from vutny/detect\-service\-fail
  221257. .INDENT 2.0
  221258. .IP \(bu 2
  221259. c4f899b3b3 \fIsalt.states.service\fP: detect that service failed to start/stop
  221260. .UNINDENT
  221261. .IP \(bu 2
  221262. 5de036b56c Merge pull request \fI\%#36611\fP from multani/2015.8
  221263. .INDENT 2.0
  221264. .IP \(bu 2
  221265. 79fdc12395 jinja: fix YAML terminator removal in Jinja\(aqs "yaml" filter
  221266. .UNINDENT
  221267. .IP \(bu 2
  221268. 6e36191fc4 Fix trust key 2015.8 (\fI\%#36540\fP)
  221269. .UNINDENT
  221270. .UNINDENT
  221271. .IP \(bu 2
  221272. \fBPR\fP \fI\%#36520\fP: (\fI\%twangboy\fP) Fix cmd.script runas for Windows
  221273. @ \fI2016\-09\-28 04:07:00 UTC\fP
  221274. .INDENT 2.0
  221275. .IP \(bu 2
  221276. e7def534b1 Merge pull request \fI\%#36520\fP from twangboy/fix_cmd.script_runas
  221277. .IP \(bu 2
  221278. 377ced5c24 Remove directory in Windows with runas
  221279. .IP \(bu 2
  221280. 25d52efeac Fix mkdir
  221281. .IP \(bu 2
  221282. 18d41f7711 Add mkdir
  221283. .IP \(bu 2
  221284. 9d55bff914 Use cachedir for Windows
  221285. .UNINDENT
  221286. .IP \(bu 2
  221287. \fBISSUE\fP \fI\%saltstack/salt#32368\fP: (\fI\%vitaliyf\fP) Low timeout values causes duplicate commands to execute (refs: \fI\%#36564\fP)
  221288. .IP \(bu 2
  221289. \fBPR\fP \fI\%#36564\fP: (\fI\%DmitryKuzmenko\fP) Improve and fix \fI_check_cache_minions\fP
  221290. @ \fI2016\-09\-28 02:50:54 UTC\fP
  221291. .INDENT 2.0
  221292. .IP \(bu 2
  221293. 798bf3086b Merge pull request \fI\%#36564\fP from DSRCorporation/bugs/32368_grains_match_bug
  221294. .IP \(bu 2
  221295. be61f97db3 Minor: syntax error fixes.
  221296. .IP \(bu 2
  221297. 29660ed672 Improve and fix \fI_check_cache_minions\fP
  221298. .UNINDENT
  221299. .IP \(bu 2
  221300. \fBPR\fP \fI\%#36606\fP: (\fI\%danlsgiga\fP) Add support for ACL Tokens in consul_pillar with the option consul.token
  221301. @ \fI2016\-09\-28 02:46:03 UTC\fP
  221302. .INDENT 2.0
  221303. .IP \(bu 2
  221304. 133705d567 Merge pull request \fI\%#36606\fP from danlsgiga/consul_pillar_token
  221305. .IP \(bu 2
  221306. a5907c9c89 Add support for ACL Tokens in consul_pillar with the option consul.token
  221307. .UNINDENT
  221308. .IP \(bu 2
  221309. \fBPR\fP \fI\%#36613\fP: (\fI\%slinn0\fP) Remove file.check_managed_changes when not needed (backport of PR \fI\%#36589\fP to 2016.3)
  221310. @ \fI2016\-09\-28 02:35:56 UTC\fP
  221311. .INDENT 2.0
  221312. .IP \(bu 2
  221313. \fBPR\fP \fI\%#36589\fP: (\fI\%slinn0\fP) Do not generate pchanges in file.managed unless test=True (refs: \fI\%#36613\fP)
  221314. .IP \(bu 2
  221315. b365f1e34d Merge pull request \fI\%#36613\fP from slinn0/2016.3_36588_fixes
  221316. .IP \(bu 2
  221317. d9da5cb2d4 Backport of PR \fI\%#36589\fP / Issue \fI\%#36588\fP to 2016.3 branch.
  221318. .UNINDENT
  221319. .IP \(bu 2
  221320. \fBPR\fP \fI\%#36609\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221321. @ \fI2016\-09\-27 18:34:22 UTC\fP
  221322. .INDENT 2.0
  221323. .IP \(bu 2
  221324. e23af98d97 Merge pull request \fI\%#36609\fP from rallytime/merge\-2016.3
  221325. .IP \(bu 2
  221326. f15d4a38bd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221327. .IP \(bu 2
  221328. 57ec792f6b Merge pull request \fI\%#36550\fP from rickyninja/2015.8
  221329. .INDENT 2.0
  221330. .IP \(bu 2
  221331. f9ef30aabe Add version_cmp for FreeBSD pkg.
  221332. .UNINDENT
  221333. .UNINDENT
  221334. .IP \(bu 2
  221335. \fBPR\fP \fI\%#36595\fP: (\fI\%cachedout\fP) Remove tests which no longer apply
  221336. @ \fI2016\-09\-27 07:38:15 UTC\fP
  221337. .INDENT 2.0
  221338. .IP \(bu 2
  221339. 25fa754d94 Merge pull request \fI\%#36595\fP from cachedout/issue_7754_fix
  221340. .IP \(bu 2
  221341. 3a83b0bd16 Remove tests which no longer apply
  221342. .UNINDENT
  221343. .IP \(bu 2
  221344. \fBISSUE\fP \fI\%#36586\fP: (\fI\%gehzumteufel\fP) Documentation update (refs: \fI\%#36594\fP)
  221345. .IP \(bu 2
  221346. \fBPR\fP \fI\%#36594\fP: (\fI\%cachedout\fP) Update boostrap docs to recent versions of Ubuntu
  221347. @ \fI2016\-09\-27 06:18:49 UTC\fP
  221348. .INDENT 2.0
  221349. .IP \(bu 2
  221350. aed98f47de Merge pull request \fI\%#36594\fP from cachedout/issue_36586
  221351. .IP \(bu 2
  221352. 1e6a60ab01 Update boostrap docs to recent versions of Ubuntu
  221353. .UNINDENT
  221354. .IP \(bu 2
  221355. \fBPR\fP \fI\%#36585\fP: (\fI\%twangboy\fP) Add pyOpenSSL to req file for Windows
  221356. @ \fI2016\-09\-27 05:49:42 UTC\fP
  221357. .INDENT 2.0
  221358. .IP \(bu 2
  221359. c79f525863 Merge pull request \fI\%#36585\fP from twangboy/add_pyopenssl
  221360. .IP \(bu 2
  221361. 5fc63a1054 Add pyOpenSSL to req file for Windows
  221362. .UNINDENT
  221363. .IP \(bu 2
  221364. \fBISSUE\fP \fI\%#36568\fP: (\fI\%lkx007\fP) cp.push remove_source problem (refs: \fI\%#36572\fP)
  221365. .INDENT 2.0
  221366. .IP \(bu 2
  221367. \fBPR\fP \fI\%#36572\fP: (\fI\%cachedout\fP) Fix salt.utils.rm_rf to delete files too
  221368. .UNINDENT
  221369. .IP \(bu 2
  221370. \fBISSUE\fP \fI\%#36491\fP: (\fI\%cro\fP) pkg.upgrade does not upgrade on Leap 42.1 or Tumbleweed (refs: \fI\%#36495\fP)
  221371. .IP \(bu 2
  221372. \fBPR\fP \fI\%#36495\fP: (\fI\%cro\fP) Fix pkg.upgrade for zypper
  221373. @ \fI2016\-09\-26 10:02:39 UTC\fP
  221374. .INDENT 2.0
  221375. .IP \(bu 2
  221376. d0dd92b037 Merge pull request \fI\%#36495\fP from cro/zypper_fix
  221377. .IP \(bu 2
  221378. 6c5807c4be Fix pkg.upgrade for zypper
  221379. .UNINDENT
  221380. .IP \(bu 2
  221381. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  221382. .IP \(bu 2
  221383. \fBISSUE\fP \fI\%#27207\fP: (\fI\%PredatorVI\fP) archive.extracted state not preserving file permissions (refs: \fI\%#33906\fP)
  221384. .IP \(bu 2
  221385. \fBISSUE\fP \fI\%#26569\fP: (\fI\%ssgward\fP) Add support for password\-protected zip files in archive.extracted on Windows (refs: \fI\%#31116\fP)
  221386. .IP \(bu 2
  221387. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  221388. .IP \(bu 2
  221389. \fBPR\fP \fI\%#36539\fP: (\fI\%jfindlay\fP) Prefer archive.cmd_unzip
  221390. @ \fI2016\-09\-26 10:02:11 UTC\fP
  221391. .INDENT 2.0
  221392. .IP \(bu 2
  221393. \fBPR\fP \fI\%#33906\fP: (\fI\%lomeroe\fP) Archive unzip permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221394. .IP \(bu 2
  221395. \fBPR\fP \fI\%#31116\fP: (\fI\%UtahDave\fP) Add password support for zip files in archive module and state (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221396. .IP \(bu 2
  221397. \fBPR\fP \fI\%#27764\fP: (\fI\%basepi\fP) Merge forward from 2015.8 to develop (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221398. .IP \(bu 2
  221399. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd. (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221400. .IP \(bu 2
  221401. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#36539\fP, #saltstack/salt\(ga#36539\(ga_)
  221402. .IP \(bu 2
  221403. 4bca246a27 Merge pull request \fI\%#36539\fP from jfindlay/arch_perms
  221404. .IP \(bu 2
  221405. d64ae48783 states.archive: use archive.cmd_unzip when possible
  221406. .IP \(bu 2
  221407. 928a7891b4 modules.archive.unzip: log a warning about perms
  221408. .UNINDENT
  221409. .IP \(bu 2
  221410. \fBISSUE\fP \fI\%#36514\fP: (\fI\%nilliams\fP) salt.stages.hg errors when \-identity option is used (refs: \fI\%#36546\fP)
  221411. .IP \(bu 2
  221412. \fBPR\fP \fI\%#36546\fP: (\fI\%rallytime\fP) Mercurial Module: Pass the identity_path portion as own arg
  221413. @ \fI2016\-09\-26 09:44:30 UTC\fP
  221414. .INDENT 2.0
  221415. .IP \(bu 2
  221416. ab50cde391 Merge pull request \fI\%#36546\fP from rallytime/fix\-36514
  221417. .IP \(bu 2
  221418. 9afe76759e Mercurial Module: Pass the identity_path portion as own arg
  221419. .UNINDENT
  221420. .IP \(bu 2
  221421. \fBISSUE\fP \fI\%#35480\fP: (\fI\%jelenak\fP) 200 processes of salt\-master (2016.3.2) (refs: \fI\%#36184\fP, \fI\%#36555\fP, \fI\%#37254\fP)
  221422. .IP \(bu 2
  221423. \fBPR\fP \fI\%#36555\fP: (\fI\%DmitryKuzmenko\fP) Bugs/35480 master shutdown
  221424. @ \fI2016\-09\-26 09:25:43 UTC\fP
  221425. .INDENT 2.0
  221426. .IP \(bu 2
  221427. aea55fce61 Merge pull request \fI\%#36555\fP from DSRCorporation/bugs/35480_master_shutdown
  221428. .IP \(bu 2
  221429. 6ad2998715 Wait for kill in ProcessManager should be greater in main process than in subprocess.
  221430. .IP \(bu 2
  221431. c9c45a5d79 Don\(aqt set the \fIdaemon\fP flag for LoggingQueue process.
  221432. .UNINDENT
  221433. .IP \(bu 2
  221434. \fBPR\fP \fI\%#36542\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221435. @ \fI2016\-09\-23 22:47:26 UTC\fP
  221436. .INDENT 2.0
  221437. .IP \(bu 2
  221438. a1e0afe1c7 Merge pull request \fI\%#36542\fP from rallytime/merge\-2016.3
  221439. .IP \(bu 2
  221440. 861a001749 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221441. .IP \(bu 2
  221442. 07c9d040c0 Fixup the rabbitmq_user state test failure (\fI\%#36541\fP)
  221443. .UNINDENT
  221444. .IP \(bu 2
  221445. \fBISSUE\fP \fI\%#29421\fP: (\fI\%scbunn\fP) pillar data leaks through environments (refs: \fI\%#36435\fP, \fI\%saltstack/salt#36435\fP)
  221446. .INDENT 2.0
  221447. .IP \(bu 2
  221448. \fBPR\fP \fI\%#36532\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36435\fP to 2016.3
  221449. .IP \(bu 2
  221450. \fBPR\fP \fI\%#36435\fP: (\fI\%yhekma\fP) Add "none" as a pillar merging strategy (refs: \fI\%#36532\fP)
  221451. .IP \(bu 2
  221452. \fBPR\fP \fI\%#36535\fP: (\fI\%rallytime\fP) Be explicit about the salt.utils.templates import
  221453. .IP \(bu 2
  221454. \fBPR\fP \fI\%#36537\fP: (\fI\%rallytime\fP) Wrap the entire GrainsAppendTestCase class with destructiveTest
  221455. .UNINDENT
  221456. .IP \(bu 2
  221457. \fBPR\fP \fI\%#36529\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221458. @ \fI2016\-09\-23 16:42:42 UTC\fP
  221459. .INDENT 2.0
  221460. .IP \(bu 2
  221461. 55cf4d6a04 Merge pull request \fI\%#36529\fP from rallytime/merge\-2016.3
  221462. .IP \(bu 2
  221463. 52cf40db8c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221464. .IP \(bu 2
  221465. 1c3758544c Merge pull request \fI\%#36441\fP from twangboy/update_setup
  221466. .INDENT 2.0
  221467. .IP \(bu 2
  221468. fc4a03a75d Check for existing library on Windows
  221469. .UNINDENT
  221470. .UNINDENT
  221471. .IP \(bu 2
  221472. \fBPR\fP \fI\%#36483\fP: (\fI\%dmurphy18\fP) Isolate sun IPv6 fix to Sun OS only
  221473. @ \fI2016\-09\-23 09:24:54 UTC\fP
  221474. .INDENT 2.0
  221475. .IP \(bu 2
  221476. 03491634ff Merge pull request \fI\%#36483\fP from dmurphy18/aix_fix_ipv6
  221477. .IP \(bu 2
  221478. b68f982c6a Updated check as per code review
  221479. .IP \(bu 2
  221480. cbcdb472fe Isolate SUN IPv6 fix to Sun Os only
  221481. .UNINDENT
  221482. .IP \(bu 2
  221483. \fBISSUE\fP \fI\%#36279\fP: (\fI\%alertedsnake\fP) state.postgres_privileges should allow grants to ALL tables/sequences. (refs: \fI\%#36280\fP)
  221484. .IP \(bu 2
  221485. \fBPR\fP \fI\%#36280\fP: (\fI\%alertedsnake\fP) Feature/2016.3 better postgresql grants
  221486. @ \fI2016\-09\-23 07:55:32 UTC\fP
  221487. .INDENT 2.0
  221488. .IP \(bu 2
  221489. \fBPR\fP \fI\%#36249\fP: (\fI\%alertedsnake\fP) Quote postgres privilege target names (refs: \fI\%#36280\fP)
  221490. .IP \(bu 2
  221491. 654fa8d770 Merge pull request \fI\%#36280\fP from jwplayer/feature/2016.3\-better\-postgresql\-grants
  221492. .IP \(bu 2
  221493. e7a597da00 Bugfix: don\(aqt concatenate when not needed
  221494. .IP \(bu 2
  221495. ba60b7972a Additional documentation.
  221496. .IP \(bu 2
  221497. 8b877f014d \(aqAll\(aq grants for PostgreSQL.
  221498. .UNINDENT
  221499. .IP \(bu 2
  221500. \fBPR\fP \fI\%#36508\fP: (\fI\%twangboy\fP) Fix chocolatey
  221501. @ \fI2016\-09\-23 07:36:03 UTC\fP
  221502. .INDENT 2.0
  221503. .IP \(bu 2
  221504. 8104d5c92a Merge pull request \fI\%#36508\fP from twangboy/fix_chocolatey
  221505. .IP \(bu 2
  221506. a7c858d9ab Fix retcodes
  221507. .IP \(bu 2
  221508. feadd827a7 Add additional functionality to upgrade
  221509. .IP \(bu 2
  221510. fb5eb4dc03 Fix retcodes, add upgrade function
  221511. .UNINDENT
  221512. .IP \(bu 2
  221513. \fBPR\fP \fI\%#36519\fP: (\fI\%terminalmage\fP) Rewrite minionfs walkthrough
  221514. @ \fI2016\-09\-23 05:19:59 UTC\fP
  221515. .INDENT 2.0
  221516. .IP \(bu 2
  221517. 364f74dfc9 Merge pull request \fI\%#36519\fP from terminalmage/docs
  221518. .IP \(bu 2
  221519. 2df51ce3e9 Rewrite minionfs walkthrough
  221520. .IP \(bu 2
  221521. cc9d41fb0e Change items in minionfs blacklist/whitelist example
  221522. .UNINDENT
  221523. .IP \(bu 2
  221524. \fBPR\fP \fI\%#36505\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221525. @ \fI2016\-09\-22 17:37:33 UTC\fP
  221526. .INDENT 2.0
  221527. .IP \(bu 2
  221528. 6f54e16cdf Merge pull request \fI\%#36505\fP from rallytime/merge\-2016.3
  221529. .IP \(bu 2
  221530. 5bd4d6430b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221531. .IP \(bu 2
  221532. bf6195b9a6 \fIpostgres_extension\fP state: small corrections in docstrings (\fI\%#36500\fP)
  221533. .IP \(bu 2
  221534. b021ea5d40 Merge pull request \fI\%#36464\fP from vutny/postgres\-tablespace\-options
  221535. .INDENT 2.0
  221536. .IP \(bu 2
  221537. 580aed87b9 Fix \fIoptions\fP parameter processing in \fIpostgres_tablespace.present\fP
  221538. .UNINDENT
  221539. .UNINDENT
  221540. .IP \(bu 2
  221541. \fBISSUE\fP \fI\%#35813\fP: (\fI\%UtahCampusD\fP) Empty dictionary returned from grains.items command within local client (refs: \fI\%#36496\fP)
  221542. .IP \(bu 2
  221543. \fBPR\fP \fI\%#36496\fP: (\fI\%cachedout\fP) Add repr to namespacedict
  221544. @ \fI2016\-09\-22 04:34:11 UTC\fP
  221545. .INDENT 2.0
  221546. .IP \(bu 2
  221547. 464c4305f9 Merge pull request \fI\%#36496\fP from cachedout/namespace_repr
  221548. .IP \(bu 2
  221549. 333842c319 Add repr to namespacedict
  221550. .UNINDENT
  221551. .IP \(bu 2
  221552. \fBPR\fP \fI\%#36474\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221553. @ \fI2016\-09\-22 04:16:58 UTC\fP
  221554. .INDENT 2.0
  221555. .IP \(bu 2
  221556. a0f838af36 Merge pull request \fI\%#36474\fP from rallytime/merge\-2016.3
  221557. .IP \(bu 2
  221558. 8805b57a1e Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221559. .INDENT 2.0
  221560. .IP \(bu 2
  221561. 41d3c09857 Merge pull request \fI\%#35433\fP from terminalmage/issue34790
  221562. .INDENT 2.0
  221563. .IP \(bu 2
  221564. 71b51f49ba Add integration tests for PR \fI\%#35433\fP
  221565. .IP \(bu 2
  221566. 82515eccde Add an additional hint for cases where rev == \(aqHEAD\(aq
  221567. .IP \(bu 2
  221568. 4b7e2f9475 git.latest: Add a hint for possible rev changes resulting in non\-fast\-forward failures
  221569. .UNINDENT
  221570. .IP \(bu 2
  221571. 87263b9387 Merge pull request \fI\%#36445\fP from notpeter/salt_cloud_iam_role
  221572. .INDENT 2.0
  221573. .IP \(bu 2
  221574. 469d1a61fe Remove (required).
  221575. .IP \(bu 2
  221576. 98449e66f5 Better docs for use\-instance\-role\-credentials.
  221577. .UNINDENT
  221578. .UNINDENT
  221579. .UNINDENT
  221580. .IP \(bu 2
  221581. \fBISSUE\fP \fI\%#36475\fP: (\fI\%amendlik\fP) GitFS online documentation is missing a section present in the code (refs: \fI\%#36478\fP)
  221582. .IP \(bu 2
  221583. \fBPR\fP \fI\%#36478\fP: (\fI\%rallytime\fP) Add the "bash" option to the "code\-block"directive.
  221584. @ \fI2016\-09\-22 04:15:14 UTC\fP
  221585. .INDENT 2.0
  221586. .IP \(bu 2
  221587. ec4f4f49ca Merge pull request \fI\%#36478\fP from rallytime/fix\-36475
  221588. .IP \(bu 2
  221589. 7be7d5832f Add the "bash" option to the "code\-block"directive.
  221590. .UNINDENT
  221591. .IP \(bu 2
  221592. \fBPR\fP \fI\%#36484\fP: (\fI\%terminalmage\fP) Fix for temp files being left over by salt\-cloud execution
  221593. @ \fI2016\-09\-22 04:11:58 UTC\fP
  221594. .INDENT 2.0
  221595. .IP \(bu 2
  221596. \fBPR\fP \fI\%#36482\fP: (\fI\%clarkperkins\fP) Have salt\-cloud clean up tmp files (refs: \fI\%#36484\fP)
  221597. .IP \(bu 2
  221598. 4c6e7bf873 Merge pull request \fI\%#36484\fP from terminalmage/salt\-cloud\-tmp\-files
  221599. .IP \(bu 2
  221600. 0bf520e089 Ensure temp file is actually removed
  221601. .IP \(bu 2
  221602. 072fd823f7 Use os.write() on file descriptor instead of opening a filehandle
  221603. .IP \(bu 2
  221604. f61e8d6366 Fix for temp files being left over by salt\-cloud execution
  221605. .UNINDENT
  221606. .IP \(bu 2
  221607. \fBPR\fP \fI\%#36486\fP: (\fI\%terminalmage\fP) Improve the rebase docs in contributing guidelines
  221608. @ \fI2016\-09\-21 19:21:10 UTC\fP
  221609. .INDENT 2.0
  221610. .IP \(bu 2
  221611. 9005a87635 Merge pull request \fI\%#36486\fP from terminalmage/rebase\-docs
  221612. .IP \(bu 2
  221613. 4839c325ae Improve the rebase docs in contributing guidelines
  221614. .UNINDENT
  221615. .IP \(bu 2
  221616. \fBPR\fP \fI\%#36455\fP: (\fI\%twangboy\fP) Update docs for Windows
  221617. @ \fI2016\-09\-21 14:28:28 UTC\fP
  221618. .INDENT 2.0
  221619. .IP \(bu 2
  221620. bc5ac9adae Merge pull request \fI\%#36455\fP from twangboy/windows_installation_docs
  221621. .IP \(bu 2
  221622. ec67a9bb2f Add cachedout\(aqs recommendations
  221623. .IP \(bu 2
  221624. 26a40dadbe Update docs for Windows
  221625. .UNINDENT
  221626. .IP \(bu 2
  221627. \fBPR\fP \fI\%#36459\fP: (\fI\%cachedout\fP) Pr 36426
  221628. @ \fI2016\-09\-21 06:34:29 UTC\fP
  221629. .INDENT 2.0
  221630. .IP \(bu 2
  221631. 3d23371ca2 Merge pull request \fI\%#36459\fP from cachedout/pr\-36426
  221632. .IP \(bu 2
  221633. bb5c01ae9d Lint
  221634. .IP \(bu 2
  221635. 85d2068326 Refactor for testing and adding related engine tests
  221636. .IP \(bu 2
  221637. 266adae2fd Make sqs_events engine support owner_acct_id
  221638. .UNINDENT
  221639. .IP \(bu 2
  221640. \fBPR\fP \fI\%#36442\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221641. @ \fI2016\-09\-20 23:16:30 UTC\fP
  221642. .INDENT 2.0
  221643. .IP \(bu 2
  221644. c8e15dcdca Merge pull request \fI\%#36442\fP from rallytime/merge\-2016.3
  221645. .IP \(bu 2
  221646. 2740fb7bfd Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221647. .IP \(bu 2
  221648. 266dd7c00a Merge pull request \fI\%#36379\fP from twangboy/windows_grains
  221649. .INDENT 2.0
  221650. .IP \(bu 2
  221651. 6138390da7 Fix typo
  221652. .IP \(bu 2
  221653. cf045e5c03 Remove comment
  221654. .IP \(bu 2
  221655. ddb6e11bcb Remove refactoring
  221656. .IP \(bu 2
  221657. 45dc920db0 Clarify comments
  221658. .IP \(bu 2
  221659. 211fd3b47e Improve version checking
  221660. .IP \(bu 2
  221661. 88be5a3761 Check for Python 2.7.12 and 3.5.2
  221662. .IP \(bu 2
  221663. 6f80f0062a Add osservicepack grain
  221664. .IP \(bu 2
  221665. 04c4ec4f81 Fix lint
  221666. .IP \(bu 2
  221667. 5789ea99cf Force string
  221668. .IP \(bu 2
  221669. 6c5bd7664b Fix join syntax
  221670. .IP \(bu 2
  221671. ac8610d523 Add ServicePack to osrelease
  221672. .IP \(bu 2
  221673. 92034936c1 Fix windows grains for os
  221674. .UNINDENT
  221675. .IP \(bu 2
  221676. 5625827ee2 Merge pull request \fI\%#36378\fP from terminalmage/issue36321
  221677. .INDENT 2.0
  221678. .IP \(bu 2
  221679. 7b1f621206 Fix git.latest test with local changes to reflect changes in state
  221680. .IP \(bu 2
  221681. 0364fedb76 Use a single conditional
  221682. .IP \(bu 2
  221683. 0dd1e7b53e git.latest Treat an up\-to\-date checkout with local changes as up\-to\-date
  221684. .UNINDENT
  221685. .UNINDENT
  221686. .IP \(bu 2
  221687. \fBPR\fP \fI\%#36310\fP: (\fI\%thatch45\fP) Fix bug where the client will destroy the loop
  221688. @ \fI2016\-09\-20 13:14:23 UTC\fP
  221689. .INDENT 2.0
  221690. .IP \(bu 2
  221691. d0a495f08b Merge pull request \fI\%#36310\fP from thatch45/keep_loop
  221692. .IP \(bu 2
  221693. a3c0d4a0ab Add docstring
  221694. .IP \(bu 2
  221695. 083f1d998a Fix bug where the client will destroy the loop
  221696. .UNINDENT
  221697. .IP \(bu 2
  221698. \fBPR\fP \fI\%#36394\fP: (\fI\%oba11\fP) fix accound_id in boto_iam and get_region in boto_sns
  221699. @ \fI2016\-09\-20 13:11:28 UTC\fP
  221700. .INDENT 2.0
  221701. .IP \(bu 2
  221702. 6e16ca46ed Merge pull request \fI\%#36394\fP from oba11/module\-fixes
  221703. .IP \(bu 2
  221704. 966685020c fix accound_id in boto_iam and get_region in boto_sns
  221705. .UNINDENT
  221706. .IP \(bu 2
  221707. \fBPR\fP \fI\%#36424\fP: (\fI\%jfindlay\fP) skip some mac_timezone tests
  221708. @ \fI2016\-09\-20 06:43:47 UTC\fP
  221709. .INDENT 2.0
  221710. .IP \(bu 2
  221711. \fBPR\fP \fI\%#36194\fP: (\fI\%jfindlay\fP) skip some mac_timezone tests (refs: \fI\%#36424\fP)
  221712. .IP \(bu 2
  221713. ae1fc430c2 Merge pull request \fI\%#36424\fP from jfindlay/bp\-36194
  221714. .IP \(bu 2
  221715. a20a2148bf skip some mac_timezone tests
  221716. .UNINDENT
  221717. .IP \(bu 2
  221718. \fBISSUE\fP \fI\%#36388\fP: (\fI\%qurczak\fP) pkg.list_upgrades return debug information rather than packages list (refs: \fI\%#36428\fP)
  221719. .IP \(bu 2
  221720. \fBPR\fP \fI\%#36428\fP: (\fI\%terminalmage\fP) A couple fixes for Antergos Linux
  221721. @ \fI2016\-09\-20 06:42:16 UTC\fP
  221722. .INDENT 2.0
  221723. .IP \(bu 2
  221724. 6319e3419a Merge pull request \fI\%#36428\fP from terminalmage/issue36388
  221725. .IP \(bu 2
  221726. b0069ad0d8 pacman.py: use os_family grain to assign as pkg virtual module
  221727. .IP \(bu 2
  221728. 5d632dbfca Properly set os grain for Antergos
  221729. .IP \(bu 2
  221730. 0ae8dca2d0 pkg.list_upgrades: Ignore "downloading" lines in pacman output
  221731. .UNINDENT
  221732. .IP \(bu 2
  221733. \fBISSUE\fP \fI\%#36373\fP: (\fI\%frioux\fP) Salt\-API does not validate input properly (refs: \fI\%#36425\fP)
  221734. .IP \(bu 2
  221735. \fBPR\fP \fI\%#36425\fP: (\fI\%whiteinge\fP) Check for dictionary explicitly since we\(aqre accessing it as one
  221736. @ \fI2016\-09\-20 06:41:40 UTC\fP
  221737. .INDENT 2.0
  221738. .IP \(bu 2
  221739. 155bd14b5e Merge pull request \fI\%#36425\fP from whiteinge/salt\-api\-dict\-payload
  221740. .IP \(bu 2
  221741. 0b63ed258f Check for dictionary explicitly since we\(aqre accessing it as one
  221742. .UNINDENT
  221743. .IP \(bu 2
  221744. \fBISSUE\fP \fI\%saltstack/salt#18341\fP: (\fI\%falzm\fP) Dry\-running state.highstate only returns the first change (refs: \fI\%#36199\fP)
  221745. .IP \(bu 2
  221746. \fBPR\fP \fI\%#36199\fP: (\fI\%thatch45\fP) skip all failhards if test=True
  221747. @ \fI2016\-09\-20 05:38:32 UTC\fP
  221748. .INDENT 2.0
  221749. .IP \(bu 2
  221750. 420be364ee Merge pull request \fI\%#36199\fP from thatch45/fix_18341
  221751. .IP \(bu 2
  221752. e13d61f06a skip all failhards if test=True
  221753. .UNINDENT
  221754. .IP \(bu 2
  221755. \fBPR\fP \fI\%#36418\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36246\fP to 2016.3 (refs: \fI\%#37120\fP)
  221756. @ \fI2016\-09\-19 21:56:52 UTC\fP
  221757. .INDENT 2.0
  221758. .IP \(bu 2
  221759. \fBPR\fP \fI\%#36246\fP: (\fI\%twangboy\fP) Fix test_issue_6833_pip_upgrade_pip test on OS X (refs: \fI\%#36418\fP, \fI\%#37120\fP)
  221760. .IP \(bu 2
  221761. b2365f553e Merge pull request \fI\%#36418\fP from rallytime/bp\-36246
  221762. .IP \(bu 2
  221763. aab02f28b4 Ensure we have a test venv created using virtualenv < 13.0
  221764. .UNINDENT
  221765. .IP \(bu 2
  221766. \fBPR\fP \fI\%#36419\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36329\fP to 2016.3
  221767. @ \fI2016\-09\-19 21:56:33 UTC\fP
  221768. .INDENT 2.0
  221769. .IP \(bu 2
  221770. \fBPR\fP \fI\%#36329\fP: (\fI\%oz123\fP) Fix a minor typo in docs (refs: \fI\%#36419\fP)
  221771. .IP \(bu 2
  221772. bc703e2062 Merge pull request \fI\%#36419\fP from rallytime/bp\-36329
  221773. .IP \(bu 2
  221774. ffdebf7a25 Fix a minor typo in docs
  221775. .UNINDENT
  221776. .IP \(bu 2
  221777. \fBPR\fP \fI\%#36420\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36365\fP to 2016.3
  221778. @ \fI2016\-09\-19 21:56:17 UTC\fP
  221779. .INDENT 2.0
  221780. .IP \(bu 2
  221781. \fBPR\fP \fI\%#36365\fP: (\fI\%Kimamisa\fP) Fix a minor typo in docs (refs: \fI\%#36420\fP)
  221782. .IP \(bu 2
  221783. fbfa0657fc Merge pull request \fI\%#36420\fP from rallytime/bp\-36365
  221784. .IP \(bu 2
  221785. 864e513fca Fix a minor typo in docs
  221786. .UNINDENT
  221787. .IP \(bu 2
  221788. \fBPR\fP \fI\%#36413\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221789. @ \fI2016\-09\-19 18:59:31 UTC\fP
  221790. .INDENT 2.0
  221791. .IP \(bu 2
  221792. 3dd2590e28 Merge pull request \fI\%#36413\fP from rallytime/merge\-2016.3
  221793. .IP \(bu 2
  221794. c64e489f6f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221795. .INDENT 2.0
  221796. .IP \(bu 2
  221797. 9bc4eeb71e Fix typo (\fI\%#36409\fP)
  221798. .IP \(bu 2
  221799. ac5c812e4b Fix OS identification for CloudLinux (\fI\%#36408\fP)
  221800. .IP \(bu 2
  221801. bb4d69f58a git.latest: fail gracefully for misconfigured remote repo (\fI\%#36391\fP)
  221802. .IP \(bu 2
  221803. ad7045ad3b Merge pull request \fI\%#36315\fP from puneetk/patch\-6
  221804. .INDENT 2.0
  221805. .IP \(bu 2
  221806. 3ac308ac76 Update aptpkg.py
  221807. .IP \(bu 2
  221808. 892cc4cd48 Update aptpkg.py
  221809. .IP \(bu 2
  221810. cbe98d97a3 Fix pylint whitespace errors
  221811. .IP \(bu 2
  221812. e5371ac720 No force_yes parameter to pkg.upgrade \fI\%#21248\fP
  221813. .UNINDENT
  221814. .IP \(bu 2
  221815. 2aa6df859a Merge pull request \fI\%#36381\fP from twangboy/fix_win_service
  221816. .INDENT 2.0
  221817. .IP \(bu 2
  221818. 04edea5c59 Add \(aq/y\(aq switch to the net stop and start commands
  221819. .UNINDENT
  221820. .IP \(bu 2
  221821. 373c5db180 Merge pull request \fI\%#36384\fP from twangboy/update_setup_req
  221822. .INDENT 2.0
  221823. .IP \(bu 2
  221824. a817aef1c2 Add windows requirements file
  221825. .UNINDENT
  221826. .UNINDENT
  221827. .UNINDENT
  221828. .IP \(bu 2
  221829. \fBISSUE\fP \fI\%#36371\fP: (\fI\%nasenbaer13\fP) _extern_path in fileclient is broken (refs: \fI\%#36305\fP)
  221830. .IP \(bu 2
  221831. \fBPR\fP \fI\%#36305\fP: (\fI\%gtmanfred\fP) cache query args with url as well
  221832. @ \fI2016\-09\-19 18:30:51 UTC\fP
  221833. .INDENT 2.0
  221834. .IP \(bu 2
  221835. a8a3a9f021 Merge pull request \fI\%#36305\fP from gtmanfred/2016.3
  221836. .IP \(bu 2
  221837. 70e7f6d58b cache query args with url as well
  221838. .UNINDENT
  221839. .IP \(bu 2
  221840. \fBPR\fP \fI\%#36389\fP: (\fI\%cachedout\fP) Pr 36386
  221841. @ \fI2016\-09\-17 11:54:37 UTC\fP
  221842. .INDENT 2.0
  221843. .IP \(bu 2
  221844. \fBPR\fP \fI\%#36386\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master \fI\%#35734\fP (refs: \fI\%#36389\fP, \fI\%#36650\fP, #saltstack/salt\(ga#36389\(ga_)
  221845. .IP \(bu 2
  221846. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: \fI\%#36386\fP)
  221847. .IP \(bu 2
  221848. 602bd2d1ef Merge pull request \fI\%#36389\fP from cachedout/pr\-36386
  221849. .IP \(bu 2
  221850. f5d63d93cc Lint
  221851. .IP \(bu 2
  221852. 93269cfb65 fix salt\-api log and pid
  221853. .IP \(bu 2
  221854. \fBPR\fP \fI\%#36352\fP: (\fI\%pass\-by\-value\fP) Update versionadded and release notes
  221855. .UNINDENT
  221856. .IP \(bu 2
  221857. \fBPR\fP \fI\%#36369\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221858. @ \fI2016\-09\-16 16:31:14 UTC\fP
  221859. .INDENT 2.0
  221860. .IP \(bu 2
  221861. 495d365e54 Merge pull request \fI\%#36369\fP from rallytime/merge\-2016.3
  221862. .IP \(bu 2
  221863. 37aea4188a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221864. .IP \(bu 2
  221865. 40b2e3d189 Merge pull request \fI\%#36353\fP from rallytime/refresh\-db\-cleanup
  221866. .INDENT 2.0
  221867. .IP \(bu 2
  221868. 275319193a Check for Ign/Hit membership instead of == in aptpkg.refresh_db
  221869. .UNINDENT
  221870. .IP \(bu 2
  221871. df9d9b3624 Merge pull request \fI\%#36355\fP from rallytime/bp\-36288
  221872. .INDENT 2.0
  221873. .IP \(bu 2
  221874. 70ffdafbf0 Schema test requires jsonschema 2.5.0 or above
  221875. .UNINDENT
  221876. .IP \(bu 2
  221877. 3f308d7694 postgres_extension: report changes when an extension was installed (\fI\%#36335\fP)
  221878. .IP \(bu 2
  221879. d2a583bc22 Merge pull request \fI\%#36337\fP from cachedout/conduct
  221880. .INDENT 2.0
  221881. .IP \(bu 2
  221882. 2fb61b9c9f SaltStack\(aqs code of conduct
  221883. .UNINDENT
  221884. .IP \(bu 2
  221885. ef128ad0b0 Return None when find_file identifies the path as a directory (\fI\%#36342\fP)
  221886. .IP \(bu 2
  221887. \fBPR\fP \fI\%#36249\fP: (\fI\%alertedsnake\fP) Quote postgres privilege target names (refs: \fI\%#36280\fP)
  221888. .IP \(bu 2
  221889. \fBPR\fP \fI\%#36330\fP: (\fI\%silenius\fP) set __virtualname__ to \(aqservice\(aq
  221890. .UNINDENT
  221891. .IP \(bu 2
  221892. \fBISSUE\fP \fI\%#36338\fP: (\fI\%jbonachera\fP) infoblox.present state does not use "infoblox_server", "infoblox_user" or "infoblox_password" arguments (refs: \fI\%#36339\fP)
  221893. .INDENT 2.0
  221894. .IP \(bu 2
  221895. \fBPR\fP \fI\%#36339\fP: (\fI\%jbonachera\fP) Use infoblox_* values if present in arguments
  221896. .IP \(bu 2
  221897. \fBPR\fP \fI\%#36345\fP: (\fI\%gtmanfred\fP) remove help message from glance module
  221898. .IP \(bu 2
  221899. \fBPR\fP \fI\%#36346\fP: (\fI\%rallytime\fP) Add resize2fs unit test from blockdev_test to disk_test
  221900. .IP \(bu 2
  221901. \fBPR\fP \fI\%#36344\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36346\fP)
  221902. .UNINDENT
  221903. .IP \(bu 2
  221904. \fBISSUE\fP \fI\%#36292\fP: (\fI\%lorengordon\fP) pkg.check_db is not available in salt 2016.3? (refs: \fI\%#36350\fP)
  221905. .IP \(bu 2
  221906. \fBPR\fP \fI\%#36350\fP: (\fI\%terminalmage\fP) Add note about yumpkg.check_db removal in Boron
  221907. @ \fI2016\-09\-15 20:32:32 UTC\fP
  221908. .INDENT 2.0
  221909. .IP \(bu 2
  221910. f09c3e499f Merge pull request \fI\%#36350\fP from terminalmage/docs
  221911. .IP \(bu 2
  221912. b815c98577 Add note about yumpkg.check_db removal in Boron
  221913. .UNINDENT
  221914. .IP \(bu 2
  221915. \fBPR\fP \fI\%#36344\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3 (refs: \fI\%#36346\fP)
  221916. @ \fI2016\-09\-15 17:38:57 UTC\fP
  221917. .INDENT 2.0
  221918. .IP \(bu 2
  221919. a33da842c0 Merge pull request \fI\%#36344\fP from rallytime/merge\-2016.3
  221920. .IP \(bu 2
  221921. d1f560147d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221922. .IP \(bu 2
  221923. dc518c5340 Skip test_resize2fs if resize2fs does not exists (\fI\%#36325\fP)
  221924. .UNINDENT
  221925. .IP \(bu 2
  221926. \fBISSUE\fP \fI\%#36308\fP: (\fI\%ahammond\fP) salt\-cloud defaults to IPv6 rather than IPv6 (refs: \fI\%#36312\fP)
  221927. .INDENT 2.0
  221928. .IP \(bu 2
  221929. \fBPR\fP \fI\%#36312\fP: (\fI\%ahammond\fP) merge error overwrites correct ssh_host with stale data in ip_address
  221930. .UNINDENT
  221931. .IP \(bu 2
  221932. \fBISSUE\fP \fI\%#35819\fP: (\fI\%cable2999\fP) pkg.group_installed doesn\(aqt handle missing package group (refs: #\(gasaltstack/salt\(ga#35907\(ga_\(ga_, \fI\%#35907\fP)
  221933. .INDENT 2.0
  221934. .IP \(bu 2
  221935. \fBPR\fP \fI\%saltstack/salt#35907\fP: (\fI\%rallytime\fP) Catch CommandExecutionError when the group in group_installed doesn\(aqt exist (refs: \fI\%#36299\fP)
  221936. .UNINDENT
  221937. .IP \(bu 2
  221938. \fBPR\fP \fI\%#36299\fP: (\fI\%rallytime\fP) Gate the pkg.group_installed state test: not all pkg modules have group_install
  221939. @ \fI2016\-09\-14 19:04:26 UTC\fP
  221940. .INDENT 2.0
  221941. .IP \(bu 2
  221942. 6a3019bbf1 Merge pull request \fI\%#36299\fP from rallytime/gate\-pkg\-group\-installed\-test
  221943. .IP \(bu 2
  221944. 9e15df9b23 Switch the order of the decorator
  221945. .IP \(bu 2
  221946. ee997be6d8 Fix pkg group test by passing a list instead of str
  221947. .IP \(bu 2
  221948. c7d8867096 Gate the pkg.group_installed state test: not all pkg modules have group_install
  221949. .UNINDENT
  221950. .IP \(bu 2
  221951. \fBISSUE\fP \fI\%#33686\fP: (\fI\%BretFisher\fP) blockreplace marker_end isn\(aqt applied with newline (refs: #\(gasaltstack/salt\(ga#36273\(ga_\(ga_, \fI\%#36273\fP)
  221952. .INDENT 2.0
  221953. .IP \(bu 2
  221954. \fBPR\fP \fI\%saltstack/salt#36273\fP: (\fI\%techhat\fP) Add append_newline flag for \fI\%#33686\fP (refs: \fI\%#36295\fP)
  221955. .IP \(bu 2
  221956. \fBPR\fP \fI\%#36295\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36273\fP to 2016.3
  221957. .IP \(bu 2
  221958. \fBPR\fP \fI\%#36273\fP: (\fI\%techhat\fP) Add append_newline flag for \fI\%#33686\fP (refs: \fI\%#36295\fP)
  221959. .IP \(bu 2
  221960. \fBPR\fP \fI\%#36296\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36124\fP to 2016.3
  221961. .IP \(bu 2
  221962. \fBPR\fP \fI\%#36124\fP: (\fI\%twangboy\fP) Skip test on all OS\(aqs but linux (refs: \fI\%#36296\fP)
  221963. .UNINDENT
  221964. .IP \(bu 2
  221965. \fBPR\fP \fI\%#36297\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  221966. @ \fI2016\-09\-14 16:07:30 UTC\fP
  221967. .INDENT 2.0
  221968. .IP \(bu 2
  221969. a8a72c985f Merge pull request \fI\%#36297\fP from rallytime/merge\-2016.3
  221970. .IP \(bu 2
  221971. e2f1cf6025 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  221972. .INDENT 2.0
  221973. .IP \(bu 2
  221974. b9b8e45362 Merge pull request \fI\%#36272\fP from terminalmage/improved\-gitfs\-logging
  221975. .INDENT 2.0
  221976. .IP \(bu 2
  221977. 223a20e987 Improved gitfs/git_pillar error logging
  221978. .UNINDENT
  221979. .IP \(bu 2
  221980. abb6aacb4b Merge pull request \fI\%#36277\fP from terminalmage/gitfs\-check\-key\-path
  221981. .INDENT 2.0
  221982. .IP \(bu 2
  221983. 4fee18c820 salt.utils.gitfs: Check for existence of ssh keys
  221984. .UNINDENT
  221985. .IP \(bu 2
  221986. ed2d2bd331 Integration tests fixes for 2015.8 (\fI\%#36262\fP)
  221987. .IP \(bu 2
  221988. 297a12c387 Fix misspelling of "occurred" in log messages/exceptions (\fI\%#36270\fP)
  221989. .UNINDENT
  221990. .IP \(bu 2
  221991. \fBPR\fP \fI\%#36178\fP: (\fI\%cachedout\fP) Filter out pub kwargs from cloud runner
  221992. .UNINDENT
  221993. .IP \(bu 2
  221994. \fBPR\fP \fI\%#36238\fP: (\fI\%pass\-by\-value\fP) Add ability to clone from a snapshot to salt\-cloud vmware driver
  221995. @ \fI2016\-09\-14 05:31:51 UTC\fP
  221996. .INDENT 2.0
  221997. .IP \(bu 2
  221998. fc7a1d536f Merge pull request \fI\%#36238\fP from pass\-by\-value/vmware_clone_from_snapshot
  221999. .IP \(bu 2
  222000. dd670bd18f Fix lint error and add try except
  222001. .IP \(bu 2
  222002. d96981639b Add ability to clone from a snapshot to salt\-cloud vmware driver
  222003. .IP \(bu 2
  222004. \fBPR\fP \fI\%#36263\fP: (\fI\%meaksh\fP) Integration tests fixes for 2016.3
  222005. .UNINDENT
  222006. .IP \(bu 2
  222007. \fBPR\fP \fI\%#36264\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222008. @ \fI2016\-09\-13 18:25:41 UTC\fP
  222009. .INDENT 2.0
  222010. .IP \(bu 2
  222011. d634fd8628 Merge pull request \fI\%#36264\fP from rallytime/merge\-2016.3
  222012. .IP \(bu 2
  222013. f603757b55 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222014. .IP \(bu 2
  222015. 931486ba35 Merge pull request \fI\%#36096\fP from twangboy/update_setup
  222016. .INDENT 2.0
  222017. .IP \(bu 2
  222018. dc1988add5 fix download when requests not present
  222019. .IP \(bu 2
  222020. b4479bff5f Add additional required dll\(aqs
  222021. .UNINDENT
  222022. .IP \(bu 2
  222023. b0dd6ff5c8 Merge pull request \fI\%#36244\fP from terminalmage/gen\-back\-bug
  222024. .INDENT 2.0
  222025. .IP \(bu 2
  222026. 363b21fd9b salt.fileserver.Fileserver: Don\(aqt try to split a list in _gen_back
  222027. .UNINDENT
  222028. .IP \(bu 2
  222029. dcc9380996 Merge pull request \fI\%#36245\fP from terminalmage/roots\-bug
  222030. .INDENT 2.0
  222031. .IP \(bu 2
  222032. 75d4997b70 roots backend: Don\(aqt include \(aq.\(aq or \(aq..\(aq in empty_dirs
  222033. .UNINDENT
  222034. .IP \(bu 2
  222035. fdf40907b7 Some unit tests fixes (\fI\%#36227\fP)
  222036. .UNINDENT
  222037. .IP \(bu 2
  222038. \fBISSUE\fP \fI\%#33525\fP: (\fI\%anlutro\fP) file.serialize no longer indents/pretty\-prints in 2016.3 (refs: \fI\%#35688\fP)
  222039. .IP \(bu 2
  222040. \fBPR\fP \fI\%#35688\fP: (\fI\%cachedout\fP) Splat serializer default configs into the serializer kwargs
  222041. @ \fI2016\-09\-13 09:21:46 UTC\fP
  222042. .INDENT 2.0
  222043. .IP \(bu 2
  222044. de06116075 Merge pull request \fI\%#35688\fP from cachedout/issue_33525
  222045. .IP \(bu 2
  222046. 4910e8191c Provide fallback for serializers without opts
  222047. .IP \(bu 2
  222048. a238666aba Add serializer test
  222049. .IP \(bu 2
  222050. 345fd2a9e5 Splat serializer default configs into the serializer kwargs
  222051. .UNINDENT
  222052. .IP \(bu 2
  222053. \fBISSUE\fP \fI\%#36021\fP: (\fI\%mirceaulinic\fP) Scheduled runners not executed (for proxy minions, at least) (refs: \fI\%#36025\fP)
  222054. .IP \(bu 2
  222055. \fBPR\fP \fI\%#36025\fP: (\fI\%mirceaulinic\fP) Potential fix for \fI\%#36021\fP
  222056. @ \fI2016\-09\-13 07:46:41 UTC\fP
  222057. .INDENT 2.0
  222058. .IP \(bu 2
  222059. d9d477ed45 Merge pull request \fI\%#36025\fP from cloudflare/CF\-FIX\-36021
  222060. .IP \(bu 2
  222061. 03007be6b1 Potential fix for \fI\%#36021\fP
  222062. .IP \(bu 2
  222063. \fBPR\fP \fI\%#36183\fP: (\fI\%opdude\fP) Fix timezones states on OS X
  222064. .UNINDENT
  222065. .IP \(bu 2
  222066. \fBPR\fP \fI\%#36235\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222067. @ \fI2016\-09\-12 17:40:42 UTC\fP
  222068. .INDENT 2.0
  222069. .IP \(bu 2
  222070. fcbebb40c3 Merge pull request \fI\%#36235\fP from rallytime/merge\-2016.3
  222071. .IP \(bu 2
  222072. 99dcf84b62 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222073. .INDENT 2.0
  222074. .IP \(bu 2
  222075. 4e9490eebe Merge pull request \fI\%#36214\fP from vutny/postgres\-extension\-doc
  222076. .INDENT 2.0
  222077. .IP \(bu 2
  222078. 5fe548f043 \fIpostgres_extension\fP state module: fix docstrings
  222079. .UNINDENT
  222080. .IP \(bu 2
  222081. 5b7b96c0b7 Merge pull request \fI\%#36205\fP from vutny/postgres\-tablespace\-doc
  222082. .INDENT 2.0
  222083. .IP \(bu 2
  222084. 78296b90d8 Add missing \fImaintenance_db\fP kwarg to \fIpostgres_tablespace.present\fP docstring
  222085. .UNINDENT
  222086. .IP \(bu 2
  222087. 6a5f7cb346 Ignore states that do not have a numeric jid, i.e. \(aqreq\(aq (\fI\%#36185\fP)
  222088. .UNINDENT
  222089. .UNINDENT
  222090. .IP \(bu 2
  222091. \fBISSUE\fP \fI\%#35423\fP: (\fI\%Ch3LL\fP) Stacktrace when running state.sls against an sls does not exist (refs: \fI\%#36137\fP)
  222092. .IP \(bu 2
  222093. \fBISSUE\fP \fI\%#33915\fP: (\fI\%mattglv\fP) Orchestration runner output on Success vs Failures in 2016.3.0 (refs: \fI\%#36137\fP)
  222094. .IP \(bu 2
  222095. \fBISSUE\fP \fI\%#25664\fP: (\fI\%sdm24\fP) 2015.5.2 MySQL Returner: salt\-run jobs.lookup_jid doesn\(aqt return full result for highstate output (refs: \fI\%#35559\fP)
  222096. .IP \(bu 2
  222097. \fBPR\fP \fI\%#36137\fP: (\fI\%cachedout\fP) Allow highstate outputter to show all results
  222098. @ \fI2016\-09\-12 16:37:49 UTC\fP
  222099. .INDENT 2.0
  222100. .IP \(bu 2
  222101. \fBPR\fP \fI\%#35559\fP: (\fI\%Jlin317\fP) Fix highstate outputter when it\(aqs given multiple results (refs: \fI\%#36137\fP)
  222102. .IP \(bu 2
  222103. 7b96197c5e Merge pull request \fI\%#36137\fP from cachedout/issue_35423
  222104. .IP \(bu 2
  222105. 1e8431f2b8 Allow highstate outputter to show all results
  222106. .UNINDENT
  222107. .IP \(bu 2
  222108. \fBISSUE\fP \fI\%#35340\fP: (\fI\%dqminh\fP) Custom modules are only resynced to minions at highstate (refs: \fI\%#36217\fP)
  222109. .INDENT 2.0
  222110. .IP \(bu 2
  222111. \fBPR\fP \fI\%#36217\fP: (\fI\%cachedout\fP) Docs clarification for module sync and state.apply
  222112. .UNINDENT
  222113. .IP \(bu 2
  222114. \fBISSUE\fP \fI\%#35480\fP: (\fI\%jelenak\fP) 200 processes of salt\-master (2016.3.2) (refs: \fI\%#36184\fP, \fI\%#36555\fP, \fI\%#37254\fP)
  222115. .IP \(bu 2
  222116. \fBPR\fP \fI\%#36184\fP: (\fI\%DmitryKuzmenko\fP) Disable signal handling while handling signal
  222117. @ \fI2016\-09\-11 22:59:08 UTC\fP
  222118. .INDENT 2.0
  222119. .IP \(bu 2
  222120. 6ebe655e17 Merge pull request \fI\%#36184\fP from DSRCorporation/bugs/35480_master_shutdown
  222121. .IP \(bu 2
  222122. 229504efef Removed unused import.
  222123. .IP \(bu 2
  222124. ca8eb7e076 Don\(aqt run the same signal handler twice. Catch os.kill errors.
  222125. .UNINDENT
  222126. .IP \(bu 2
  222127. \fBPR\fP \fI\%#36203\fP: (\fI\%xiaoanyunfei\fP) fix owner of MultiprocessingLoggingQueue (refs: \fI\%#37119\fP)
  222128. @ \fI2016\-09\-11 09:15:15 UTC\fP
  222129. .INDENT 2.0
  222130. .IP \(bu 2
  222131. f11f093f8c Merge pull request \fI\%#36203\fP from xiaoanyunfei/logowner
  222132. .IP \(bu 2
  222133. 74dc90c7bb cancle pr last
  222134. .IP \(bu 2
  222135. 90e4a25dd0 Merge branch \(aqlogowner\(aq of \fI\%https://github.com/xiaoanyunfei/salt\fP into logowner
  222136. .INDENT 2.0
  222137. .IP \(bu 2
  222138. bd61b88fc8 fix log owner
  222139. .IP \(bu 2
  222140. 58160ed6c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222141. .IP \(bu 2
  222142. f2de71782b move back
  222143. .IP \(bu 2
  222144. b8214824fd add simplify code
  222145. .IP \(bu 2
  222146. aec9385c6b Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222147. .IP \(bu 2
  222148. 1074b3355d Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into 2016.3
  222149. .IP \(bu 2
  222150. ea0d74cd27 fix salt\-api opts
  222151. .UNINDENT
  222152. .IP \(bu 2
  222153. ffd87b2f2f fix logqueue owner
  222154. .IP \(bu 2
  222155. \fBPR\fP \fI\%#36193\fP: (\fI\%thatch45\fP) Fix stack trace in salt\-ssh gitfs
  222156. .UNINDENT
  222157. .IP \(bu 2
  222158. \fBPR\fP \fI\%#36188\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222159. @ \fI2016\-09\-09 18:59:20 UTC\fP
  222160. .INDENT 2.0
  222161. .IP \(bu 2
  222162. f035121291 Merge pull request \fI\%#36188\fP from rallytime/merge\-2016.3
  222163. .IP \(bu 2
  222164. 521a7b2470 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222165. .IP \(bu 2
  222166. d4628f3c6b Allow additional kwargs in states.dockerng.image_present (\fI\%#36156\fP)
  222167. .IP \(bu 2
  222168. 24b0387b92 Back\-port \fI\%#36070\fP to 2015.8 (\fI\%#36169\fP)
  222169. .IP \(bu 2
  222170. 116d7ac3e5 If windows pkg db hasn\(aqt been created yet, refresh the db instead of stacktracing (\fI\%#36008\fP)
  222171. .UNINDENT
  222172. .IP \(bu 2
  222173. \fBISSUE\fP \fI\%#35819\fP: (\fI\%cable2999\fP) pkg.group_installed doesn\(aqt handle missing package group (refs: #\(gasaltstack/salt\(ga#35907\(ga_\(ga_, \fI\%#35907\fP)
  222174. .IP \(bu 2
  222175. \fBPR\fP \fI\%#35907\fP: (\fI\%rallytime\fP) Catch CommandExecutionError when the group in group_installed doesn\(aqt exist
  222176. @ \fI2016\-09\-09 10:14:16 UTC\fP
  222177. .INDENT 2.0
  222178. .IP \(bu 2
  222179. 1d5f97d36b Merge pull request \fI\%#35907\fP from rallytime/fix\-35819
  222180. .IP \(bu 2
  222181. d7380d83be requires_system_grains decorator needs a grains=None kwarg
  222182. .IP \(bu 2
  222183. b20f6b9384 Catch CommandExecutionError when group_installed doesn\(aqt exist
  222184. .UNINDENT
  222185. .IP \(bu 2
  222186. \fBISSUE\fP \fI\%saltstack/salt#35972\fP: (\fI\%tjyang\fP) DeprecationWarning: The "osmajorrelease" will be a type of an integer. (refs: \fI\%#36068\fP)
  222187. .INDENT 2.0
  222188. .IP \(bu 2
  222189. \fBPR\fP \fI\%saltstack/salt#35637\fP: (\fI\%cachedout\fP) Add Nitrogen release notes (refs: \fI\%#36068\fP)
  222190. .UNINDENT
  222191. .IP \(bu 2
  222192. \fBPR\fP \fI\%#36068\fP: (\fI\%rallytime\fP) Remove grains type deprecation warning from 2016.3
  222193. @ \fI2016\-09\-09 10:00:50 UTC\fP
  222194. .INDENT 2.0
  222195. .IP \(bu 2
  222196. 40127b6bf3 Merge pull request \fI\%#36068\fP from rallytime/fix\-35972
  222197. .IP \(bu 2
  222198. 2b7679c9f6 Remove grains type deprecation warning from 2016.3
  222199. .UNINDENT
  222200. .IP \(bu 2
  222201. \fBISSUE\fP \fI\%#36094\fP: (\fI\%UtahDave\fP) Windows stacktraces on msgpack on Carbon (refs: \fI\%#36152\fP)
  222202. .IP \(bu 2
  222203. \fBPR\fP \fI\%#36152\fP: (\fI\%cachedout\fP) Remove unnecessary unpack
  222204. @ \fI2016\-09\-09 09:13:47 UTC\fP
  222205. .INDENT 2.0
  222206. .IP \(bu 2
  222207. 24bd03734d Merge pull request \fI\%#36152\fP from cachedout/issue_36094
  222208. .IP \(bu 2
  222209. 95eb95a0f8 Remove unnecessary unpack
  222210. .UNINDENT
  222211. .IP \(bu 2
  222212. \fBPR\fP \fI\%#36158\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222213. @ \fI2016\-09\-08 21:53:50 UTC\fP
  222214. .INDENT 2.0
  222215. .IP \(bu 2
  222216. dc3a68ed8c Merge pull request \fI\%#36158\fP from rallytime/merge\-2016.3
  222217. .IP \(bu 2
  222218. 7f955bda0a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222219. .INDENT 2.0
  222220. .IP \(bu 2
  222221. 6242702288 Fix issue with cp.push (\fI\%#36136\fP)
  222222. .IP \(bu 2
  222223. 0e13118f6e Document \fIowner\fP kwarg for \fIpostgres_schema.present\fP state function (\fI\%#36147\fP)
  222224. .IP \(bu 2
  222225. 4cc8ea9577 Merge pull request \fI\%#36146\fP from meaksh/tests\-fixes\-for\-2015.8
  222226. .INDENT 2.0
  222227. .IP \(bu 2
  222228. 9f9aa4779c rename darwin_sysctl.py to mac_sysctl.py
  222229. .IP \(bu 2
  222230. 2cf6f36d89 modules.darwin_sysctl: __virtual__ return err msg.
  222231. .IP \(bu 2
  222232. f74ca15f50 Remove test for file dir behavior
  222233. .IP \(bu 2
  222234. c65aefee20 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222235. .IP \(bu 2
  222236. f8c0b439b8 Fixed more lint
  222237. .IP \(bu 2
  222238. 63ff731009 Fixed tests
  222239. .IP \(bu 2
  222240. 04b1a4a9ca Fixed use of assert_has_calls in tests.
  222241. .IP \(bu 2
  222242. 46e4bb58e5 Fixed LoadAuthTestCase
  222243. .IP \(bu 2
  222244. 4e9733ad6d Rename dockerio.py unit tests to dockerio_test.py
  222245. .IP \(bu 2
  222246. ec0cc943e0 Make sure spm tests are picked up by runtests.
  222247. .IP \(bu 2
  222248. 2605f34849 Fix missing first data in stream when subscribing stream using a function \(aqread_async\(aq.
  222249. .IP \(bu 2
  222250. 305bab8be0 Fixed _interfaces_ifconfig output for SunOS test
  222251. .IP \(bu 2
  222252. b5ca02c867 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222253. .IP \(bu 2
  222254. 1fb6340fef Fix tests (\fI\%#35693\fP)
  222255. .IP \(bu 2
  222256. 5977f1f54c Skip utils_test if timelib is not installed (\fI\%#32699\fP)
  222257. .IP \(bu 2
  222258. d1b9a4061e Fixing skipped boto tests to prevent errors if boto3 does not exists.
  222259. .UNINDENT
  222260. .IP \(bu 2
  222261. c4ddfe3887 Merge pull request \fI\%#35954\fP from morganwillcock/upgrade\-on\-batteries
  222262. .INDENT 2.0
  222263. .IP \(bu 2
  222264. 108f9470f2 win_pkg: report failure for failed launch of Scheduled Task
  222265. .IP \(bu 2
  222266. e0978220f7 win_pkg: allow minion upgrade when using batteries
  222267. .UNINDENT
  222268. .IP \(bu 2
  222269. 94b7659304 Merge pull request \fI\%#36129\fP from terminalmage/pygit2\-ssl_verify
  222270. .INDENT 2.0
  222271. .IP \(bu 2
  222272. 640f0c17c6 pygit2: Prevent traceback on initial gitfs setup
  222273. .UNINDENT
  222274. .IP \(bu 2
  222275. 7cdbc546f1 Back\-port \fI\%#36062\fP to 2015.8 (\fI\%#36118\fP)
  222276. .UNINDENT
  222277. .IP \(bu 2
  222278. \fBPR\fP \fI\%#36170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36154\fP to 2016.3
  222279. .IP \(bu 2
  222280. \fBPR\fP \fI\%#36154\fP: (\fI\%DavidWittman\fP) Remove unclosed backticks in walkthrough doc (refs: \fI\%#36170\fP)
  222281. .UNINDENT
  222282. .IP \(bu 2
  222283. \fBISSUE\fP \fI\%#36055\fP: (\fI\%gladiatr72\fP) 2016.3.3 \-\- missing salt\-cloud events on the master event bus (refs: \fI\%#36161\fP)
  222284. .IP \(bu 2
  222285. \fBPR\fP \fI\%#36161\fP: (\fI\%jacobhammons\fP) Adds \fI\%#36055\fP to release notes
  222286. @ \fI2016\-09\-08 17:11:36 UTC\fP
  222287. .INDENT 2.0
  222288. .IP \(bu 2
  222289. 4ccf8a841f Merge pull request \fI\%#36161\fP from jacobhammons/relnotes
  222290. .IP \(bu 2
  222291. ecb0979be7 Adds \fI\%#36055\fP to release notes
  222292. .UNINDENT
  222293. .IP \(bu 2
  222294. \fBPR\fP \fI\%#36139\fP: (\fI\%meaksh\fP) Fixing unit tests for 2016.3
  222295. @ \fI2016\-09\-08 13:20:21 UTC\fP
  222296. .INDENT 2.0
  222297. .IP \(bu 2
  222298. 1f909038f0 Merge pull request \fI\%#36139\fP from meaksh/tests\-fixes\-for\-2016.3
  222299. .IP \(bu 2
  222300. 52a7ed605e Fixed _interfaces_ifconfig output for SunOS test
  222301. .IP \(bu 2
  222302. 158bcbff65 Fix tests that assert CommandExecutionError (\fI\%#32485\fP)
  222303. .IP \(bu 2
  222304. 8b480167e1 Fix tests (\fI\%#35693\fP)
  222305. .IP \(bu 2
  222306. 29814f9d43 Skip utils_test if timelib is not installed (\fI\%#32699\fP)
  222307. .IP \(bu 2
  222308. d1d806f893 Fix PortageConfigTestCase in case of portage is not present
  222309. .IP \(bu 2
  222310. 1c260e4bd0 Fix tests to prevent errors when libcloud is not present
  222311. .IP \(bu 2
  222312. 71ebf2c8cd Fixing skipped boto tests to prevent errors if boto3 does not exists.
  222313. .UNINDENT
  222314. .IP \(bu 2
  222315. \fBPR\fP \fI\%#36143\fP: (\fI\%multani\fP) doc: fix doc formatting for salt.states.mount
  222316. @ \fI2016\-09\-08 13:11:03 UTC\fP
  222317. .INDENT 2.0
  222318. .IP \(bu 2
  222319. 3eb3df55ad Merge pull request \fI\%#36143\fP from multani/fix\-doc\-state\-mount
  222320. .IP \(bu 2
  222321. 035a212a9b doc: fix doc formatting for salt.states.mount
  222322. .UNINDENT
  222323. .IP \(bu 2
  222324. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  222325. .IP \(bu 2
  222326. \fBISSUE\fP \fI\%#36057\fP: (\fI\%Inveracity\fP) Regression in opennebula cloud provider (refs: \fI\%#36070\fP)
  222327. .IP \(bu 2
  222328. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  222329. .IP \(bu 2
  222330. \fBPR\fP \fI\%#36070\fP: (\fI\%rallytime\fP) Use __utils__ instead of salt.utils.cloud in opennebula driver (refs: \fI\%#36169\fP)
  222331. @ \fI2016\-09\-08 01:18:45 UTC\fP
  222332. .INDENT 2.0
  222333. .IP \(bu 2
  222334. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  222335. .IP \(bu 2
  222336. 70da628018 Merge pull request \fI\%#36070\fP from rallytime/fix\-36057
  222337. .IP \(bu 2
  222338. de4f77cb68 Fixup failing test: need to mock __utils__ instead of salt.utils.cloud call
  222339. .IP \(bu 2
  222340. 25e3f2b4b8 Use __utils__ instead of salt.utils.cloud in opennebula driver
  222341. .UNINDENT
  222342. .IP \(bu 2
  222343. \fBPR\fP \fI\%#36089\fP: (\fI\%terminalmage\fP) Support running git states / remote exec funcs as a different user in Windows
  222344. @ \fI2016\-09\-08 01:17:23 UTC\fP
  222345. .INDENT 2.0
  222346. .IP \(bu 2
  222347. b7556a2aeb Merge pull request \fI\%#36089\fP from terminalmage/issue35565
  222348. .IP \(bu 2
  222349. 796156c5f5 Add attribution
  222350. .IP \(bu 2
  222351. 2e56527ead Move command logging to before win_runas
  222352. .IP \(bu 2
  222353. 91eafddda6 Pass the "password" param to git module functions
  222354. .IP \(bu 2
  222355. 7871065d32 Use "user" instead of "runas" in _git_run() helper
  222356. .IP \(bu 2
  222357. 5943b4662c Add "password" param to funcs which support the user parameter
  222358. .IP \(bu 2
  222359. 5c7b9f0341 Make "password" an explicit argument, not a kwarg
  222360. .UNINDENT
  222361. .IP \(bu 2
  222362. \fBPR\fP \fI\%#35923\fP: (\fI\%kstreee\fP) Fixes a bug that Ctrl\-c not working on Salt CLI.
  222363. @ \fI2016\-09\-07 11:47:50 UTC\fP
  222364. .INDENT 2.0
  222365. .IP \(bu 2
  222366. 45ba2e806b Merge pull request \fI\%#35923\fP from kstreee/fix\-cli\-stalling
  222367. .IP \(bu 2
  222368. 6569267afc Fixes a bug that Ctrl\-c not working on Salt CLI.
  222369. .UNINDENT
  222370. .IP \(bu 2
  222371. \fBISSUE\fP \fI\%#18341\fP: (\fI\%falzm\fP) Dry\-running state.highstate only returns the first change (refs: \fI\%#36078\fP)
  222372. .IP \(bu 2
  222373. \fBPR\fP \fI\%#36078\fP: (\fI\%thatch45\fP) Failhard test=True fix
  222374. @ \fI2016\-09\-07 05:10:35 UTC\fP
  222375. .INDENT 2.0
  222376. .IP \(bu 2
  222377. 48dc5ad4ee Merge pull request \fI\%#36078\fP from thatch45/failhard_test
  222378. .IP \(bu 2
  222379. 9b36904149 Fix failhard causing test=True to failhard too soon
  222380. .UNINDENT
  222381. .IP \(bu 2
  222382. \fBISSUE\fP \fI\%#34515\fP: (\fI\%vernondcole\fP) Please actually implement skip_verify for archive.extracted (refs: \fI\%#34529\fP)
  222383. .IP \(bu 2
  222384. \fBPR\fP \fI\%#34529\fP: (\fI\%Ch3LL\fP) Add skip_verify for archive.extracted
  222385. @ \fI2016\-09\-06 21:05:31 UTC\fP
  222386. .INDENT 2.0
  222387. .IP \(bu 2
  222388. 40081176af Merge pull request \fI\%#34529\fP from Ch3LL/add_skip_verify_archive
  222389. .IP \(bu 2
  222390. 38203e3d2c add tornado web app to serve up static file for test
  222391. .IP \(bu 2
  222392. 617f5680e4 add windows path and add custom tar
  222393. .IP \(bu 2
  222394. c5035118bf add skip_verify option to archive.extracted
  222395. .UNINDENT
  222396. .IP \(bu 2
  222397. \fBPR\fP \fI\%#36073\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222398. @ \fI2016\-09\-06 19:45:48 UTC\fP
  222399. .INDENT 2.0
  222400. .IP \(bu 2
  222401. fc41c744a0 Merge pull request \fI\%#36073\fP from rallytime/merge\-2016.3
  222402. .IP \(bu 2
  222403. e9c634685b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222404. .IP \(bu 2
  222405. fa09050150 consul: fix formatting of consul.agent_join (\fI\%#36061\fP)
  222406. .IP \(bu 2
  222407. \fBPR\fP \fI\%saltstack/salt#36030\fP: (\fI\%whiteinge\fP) Add include_* kwargs to the *_dict key functions (refs: \fI\%#36040\fP)
  222408. .IP \(bu 2
  222409. \fBPR\fP \fI\%#36040\fP: (\fI\%rallytime\fP) Add docs for new kwargs added to the wheel key module
  222410. .IP \(bu 2
  222411. \fBPR\fP \fI\%#36047\fP: (\fI\%whiteinge\fP) Doc cherrypy deemphasize urlencoded
  222412. .UNINDENT
  222413. .IP \(bu 2
  222414. \fBPR\fP \fI\%#36039\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222415. @ \fI2016\-09\-02 21:50:47 UTC\fP
  222416. .INDENT 2.0
  222417. .IP \(bu 2
  222418. 74143999d3 Merge pull request \fI\%#36039\fP from rallytime/merge\-2016.3
  222419. .IP \(bu 2
  222420. 5f499cfd41 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222421. .IP \(bu 2
  222422. 1b39c7ed48 Merge pull request \fI\%#35978\fP from DSRCorporation/bugs/28462_update_auth_data_on_reauth
  222423. .INDENT 2.0
  222424. .IP \(bu 2
  222425. 778ae9a9ff Update auth data on reauth.
  222426. .UNINDENT
  222427. .IP \(bu 2
  222428. b652271ddc Fix type error in networkfbsd osmajorrelease compare (\fI\%#36016\fP)
  222429. .IP \(bu 2
  222430. bc81818075 Merge pull request \fI\%#36018\fP from meaksh/bp\-36000\-to\-2015.8
  222431. .INDENT 2.0
  222432. .IP \(bu 2
  222433. 8c05d2aac5 Lint for \fI\%#35916\fP
  222434. .IP \(bu 2
  222435. b5fe6100ee Check for single quote before splitting on single quote
  222436. .UNINDENT
  222437. .UNINDENT
  222438. .IP \(bu 2
  222439. \fBISSUE\fP \fI\%saltstack/salt#35683\fP: (\fI\%JensRantil\fP) Salt wheel key documentation improvements (refs: \fI\%#35824\fP, #saltstack/salt\(ga#35824\(ga_)
  222440. .INDENT 2.0
  222441. .IP \(bu 2
  222442. \fBPR\fP \fI\%saltstack/salt#35824\fP: (\fI\%rallytime\fP) Add more documentation to the wheel key module (refs: \fI\%#36038\fP)
  222443. .IP \(bu 2
  222444. \fBPR\fP \fI\%#36038\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35824\fP to 2016.3
  222445. .IP \(bu 2
  222446. \fBPR\fP \fI\%#35824\fP: (\fI\%rallytime\fP) Add more documentation to the wheel key module (refs: \fI\%#36038\fP)
  222447. .IP \(bu 2
  222448. \fBPR\fP \fI\%#36033\fP: (\fI\%gtmanfred\fP) catch unicode encoding errors in json outputter
  222449. .IP \(bu 2
  222450. \fBPR\fP \fI\%#36010\fP: (\fI\%eliasp\fP) modules.service: Do not default to OpenRC on Gentoo, also allow systemd
  222451. .UNINDENT
  222452. .IP \(bu 2
  222453. \fBISSUE\fP \fI\%#33969\fP: (\fI\%Inveracity\fP) Redis returner stacktrace in clean_old_jobs 2016.3.0 (refs: \fI\%#33998\fP)
  222454. .INDENT 2.0
  222455. .IP \(bu 2
  222456. \fBPR\fP \fI\%#36014\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33998\fP to 2016.3
  222457. .IP \(bu 2
  222458. \fBPR\fP \fI\%#33998\fP: (\fI\%jizhilong\fP) fix redis_return\(aqs clean_old_jobs. (refs: \fI\%#36014\fP)
  222459. .UNINDENT
  222460. .IP \(bu 2
  222461. \fBISSUE\fP \fI\%#35618\fP: (\fI\%komljen\fP) [salt\-cloud] With \(aqmake_master: True\(aq minions are configured with the masters public IP address on AWS (refs: \fI\%#35919\fP, #saltstack/salt\(ga#35919\(ga_)
  222462. .INDENT 2.0
  222463. .IP \(bu 2
  222464. \fBPR\fP \fI\%saltstack/salt#35919\fP: (\fI\%rallytime\fP) Add documentation about salt_interface to EC2 docs (refs: \fI\%#36015\fP)
  222465. .IP \(bu 2
  222466. \fBPR\fP \fI\%#36015\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35919\fP to 2016.3
  222467. .IP \(bu 2
  222468. \fBPR\fP \fI\%#35919\fP: (\fI\%rallytime\fP) Add documentation about salt_interface to EC2 docs (refs: \fI\%#36015\fP)
  222469. .IP \(bu 2
  222470. \fBPR\fP \fI\%saltstack/salt#36000\fP: (\fI\%rallytime\fP) Lint \fI\%#35916\fP (refs: \fI\%#36019\fP, \fI\%#36018\fP)
  222471. .IP \(bu 2
  222472. \fBPR\fP \fI\%saltstack/salt#35916\fP: (\fI\%swiftgist\fP) Check for single quote before splitting on single quote (refs: \fI\%#36019\fP, \fI\%#36018\fP)
  222473. .UNINDENT
  222474. .IP \(bu 2
  222475. \fBPR\fP \fI\%#36019\fP: (\fI\%meaksh\fP) Back\-port \fI\%#36000\fP to 2016.3
  222476. @ \fI2016\-09\-02 20:34:30 UTC\fP
  222477. .INDENT 2.0
  222478. .IP \(bu 2
  222479. \fBPR\fP \fI\%#36000\fP: (\fI\%rallytime\fP) Lint \fI\%#35916\fP (refs: \fI\%#36019\fP, \fI\%#36018\fP)
  222480. .IP \(bu 2
  222481. \fBPR\fP \fI\%#35916\fP: (\fI\%swiftgist\fP) Check for single quote before splitting on single quote (refs: #\(gasaltstack/salt\(ga#36000\(ga_\(ga_, \fI\%#36000\fP)
  222482. .IP \(bu 2
  222483. e88df5845d Merge pull request \fI\%#36019\fP from meaksh/bp\-36000\-to\-2016.3
  222484. .IP \(bu 2
  222485. 1b2abeabd1 Lint for \fI\%#35916\fP
  222486. .IP \(bu 2
  222487. 8b4f46fbd0 Check for single quote before splitting on single quote
  222488. .IP \(bu 2
  222489. \fBPR\fP \fI\%#36028\fP: (\fI\%thatch45\fP) Fix error when profiling is turned on and minions don\(aqt return (refs: \fI\%#36730\fP)
  222490. .IP \(bu 2
  222491. \fBPR\fP \fI\%#36030\fP: (\fI\%whiteinge\fP) Add include_* kwargs to the *_dict key functions
  222492. .UNINDENT
  222493. .IP \(bu 2
  222494. \fBISSUE\fP \fI\%saltstack/salt#31454\fP: (\fI\%johje349\fP) Salt Mine memory leak (refs: \fI\%#36024\fP)
  222495. .IP \(bu 2
  222496. \fBPR\fP \fI\%#36024\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt subscribe to events if not sure it would read them. (refs: \fI\%#36720\fP)
  222497. @ \fI2016\-09\-02 15:41:01 UTC\fP
  222498. .INDENT 2.0
  222499. .IP \(bu 2
  222500. cd60ec5d57 Merge pull request \fI\%#36024\fP from DSRCorporation/bugs/31454_local_client_memleak
  222501. .IP \(bu 2
  222502. 01911c530e Don\(aqt subscribe to events if not sure it would read them.
  222503. .UNINDENT
  222504. .IP \(bu 2
  222505. \fBPR\fP \fI\%#36023\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222506. @ \fI2016\-09\-02 15:37:59 UTC\fP
  222507. .INDENT 2.0
  222508. .IP \(bu 2
  222509. 32d5f896d4 Merge pull request \fI\%#36023\fP from rallytime/merge\-2016.3
  222510. .IP \(bu 2
  222511. a63c9dfc6a Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222512. .IP \(bu 2
  222513. e6b93c2380 Merge pull request \fI\%#36022\fP from saltstack/revert\-33770\-service_tests
  222514. .INDENT 2.0
  222515. .IP \(bu 2
  222516. 6cf56843d4 Revert "service state integration tests"
  222517. .UNINDENT
  222518. .UNINDENT
  222519. .IP \(bu 2
  222520. \fBPR\fP \fI\%#36004\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222521. @ \fI2016\-09\-01 21:11:06 UTC\fP
  222522. .INDENT 2.0
  222523. .IP \(bu 2
  222524. d248ab0120 Merge pull request \fI\%#36004\fP from rallytime/merge\-2016.3
  222525. .IP \(bu 2
  222526. 318bffed1d Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222527. .IP \(bu 2
  222528. 678f10cf8b Avoid traceback in mac_user.py when user.chhome is invoked from a user state (\fI\%#35901\fP)
  222529. .IP \(bu 2
  222530. 2da501071e Merge pull request \fI\%#35967\fP from twangboy/improve_show_sls_2015.8
  222531. .INDENT 2.0
  222532. .IP \(bu 2
  222533. 2ed9a82ef8 Allow full path to be passed to show_sls
  222534. .UNINDENT
  222535. .IP \(bu 2
  222536. d86fba15b3 Merge pull request \fI\%#35981\fP from cachedout/cptestcase_license
  222537. .INDENT 2.0
  222538. .IP \(bu 2
  222539. dd562dd200 Update Salt\(aqs licensing information to include cptestcase
  222540. .UNINDENT
  222541. .UNINDENT
  222542. .IP \(bu 2
  222543. \fBPR\fP \fI\%#35952\fP: (\fI\%twangboy\fP) Load UserProfile when using RunAs (2016.3)
  222544. @ \fI2016\-09\-01 15:18:15 UTC\fP
  222545. .INDENT 2.0
  222546. .IP \(bu 2
  222547. f7b85cb70b Merge pull request \fI\%#35952\fP from twangboy/fix_win_runas_2016.3
  222548. .IP \(bu 2
  222549. 3721a09ea3 Load UserProfile on RunAs
  222550. .UNINDENT
  222551. .IP \(bu 2
  222552. \fBPR\fP \fI\%#35959\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222553. @ \fI2016\-08\-31 22:14:54 UTC\fP
  222554. .INDENT 2.0
  222555. .IP \(bu 2
  222556. b8ca3f5e4d Merge pull request \fI\%#35959\fP from rallytime/merge\-2016.3
  222557. .IP \(bu 2
  222558. bb4605ffee Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222559. .IP \(bu 2
  222560. 0f0f15d048 Merge pull request \fI\%#35956\fP from jacobhammons/dot12
  222561. .INDENT 2.0
  222562. .IP \(bu 2
  222563. 3e21e35933 Version docs to 2015.8.12
  222564. .UNINDENT
  222565. .IP \(bu 2
  222566. d2db4ea7a2 cachedir should be /cloud not /master (\fI\%#35897\fP)
  222567. .IP \(bu 2
  222568. f4cdcc0d66 Better logging when file_recv_max_size is exceeded (\fI\%#35914\fP)
  222569. .UNINDENT
  222570. .IP \(bu 2
  222571. \fBPR\fP \fI\%#35955\fP: (\fI\%jacobhammons\fP) Version docs to 2016.3.3
  222572. @ \fI2016\-08\-31 20:35:55 UTC\fP
  222573. .INDENT 2.0
  222574. .IP \(bu 2
  222575. a87b91a8ea Merge pull request \fI\%#35955\fP from jacobhammons/dot3
  222576. .IP \(bu 2
  222577. ac8fe6ff9e Version docs to 2016.3.3
  222578. .UNINDENT
  222579. .IP \(bu 2
  222580. \fBISSUE\fP \fI\%#875\fP: (\fI\%dhoffutt\fP) state pkg won\(aqt install package nscd (refs: \fI\%#35865\fP)
  222581. .INDENT 2.0
  222582. .IP \(bu 2
  222583. \fBPR\fP \fI\%#35865\fP: (\fI\%jacobhammons\fP) Fix incremental doc builds \- OS X, postgres returner, tcp transport doc updates
  222584. .UNINDENT
  222585. .IP \(bu 2
  222586. \fBISSUE\fP \fI\%#35829\fP: (\fI\%amontalban\fP) FreeBSD pkg.latest speed improvement (refs: \fI\%#35904\fP)
  222587. .INDENT 2.0
  222588. .IP \(bu 2
  222589. \fBPR\fP \fI\%#35904\fP: (\fI\%amontalban\fP) Fixes \fI\%#35829\fP for branch 2016.3
  222590. .IP \(bu 2
  222591. \fBPR\fP \fI\%#35931\fP: (\fI\%vutny\fP) Salt Cloud: add \fIcentos\fP default user for official CentOS AMIs
  222592. .IP \(bu 2
  222593. \fBPR\fP \fI\%saltstack/salt#35892\fP: (\fI\%cachedout\fP) Fixup Docker test (refs: \fI\%#35926\fP)
  222594. .IP \(bu 2
  222595. \fBPR\fP \fI\%saltstack/salt#35581\fP: (\fI\%pbdeuchler\fP) Correctly check if image is in current tags (refs: \fI\%#35926\fP)
  222596. .IP \(bu 2
  222597. \fBPR\fP \fI\%#35926\fP: (\fI\%ticosax\fP) [dockerng] Mention that docker image names must be given with repository
  222598. .IP \(bu 2
  222599. \fBPR\fP \fI\%#35581\fP: (\fI\%pbdeuchler\fP) Correctly check if image is in current tags (refs: \fI\%#35926\fP)
  222600. .UNINDENT
  222601. .IP \(bu 2
  222602. \fBISSUE\fP \fI\%#35825\fP: (\fI\%tjyang\fP) "\(aqdrac\(aq __virtual__ returned False" from salt\-run drac.version host (refs: \fI\%#35868\fP)
  222603. .IP \(bu 2
  222604. \fBPR\fP \fI\%#35868\fP: (\fI\%rallytime\fP) Add more helpful return messages for drac runner
  222605. @ \fI2016\-08\-31 01:33:27 UTC\fP
  222606. .INDENT 2.0
  222607. .IP \(bu 2
  222608. ca06c62900 Merge pull request \fI\%#35868\fP from rallytime/fix\-35825
  222609. .IP \(bu 2
  222610. 00ae17248e Update error message to be more helpful and fix doc formatting
  222611. .IP \(bu 2
  222612. 30a422bfe0 Add more helpful return messages for drac runner
  222613. .UNINDENT
  222614. .IP \(bu 2
  222615. \fBPR\fP \fI\%#35903\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 into 2016.3
  222616. @ \fI2016\-08\-30 17:15:36 UTC\fP
  222617. .INDENT 2.0
  222618. .IP \(bu 2
  222619. 95b89dbce9 Merge pull request \fI\%#35903\fP from rallytime/merge\-2016.3
  222620. .IP \(bu 2
  222621. 9e55bee5d5 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222622. .IP \(bu 2
  222623. 08e10f69eb Clarifies how to create aliased functions (\fI\%#35891\fP)
  222624. .IP \(bu 2
  222625. 6dd5f68a08 Merge pull request \fI\%#35856\fP from vutny/2015.8
  222626. .INDENT 2.0
  222627. .IP \(bu 2
  222628. eceedadfa5 salt\-cloud: fix path to Salt Master socket dir
  222629. .UNINDENT
  222630. .IP \(bu 2
  222631. 336d1a700d Merge pull request \fI\%#35880\fP from terminalmage/issue35747
  222632. .INDENT 2.0
  222633. .IP \(bu 2
  222634. 123a611066 pacman.py: Fix incorrect return in pkg.latest_version
  222635. .UNINDENT
  222636. .IP \(bu 2
  222637. 6383451c99 Merge pull request \fI\%#35884\fP from terminalmage/clarify\-pkg\-latest\-logic
  222638. .INDENT 2.0
  222639. .IP \(bu 2
  222640. b0b419d1d8 Fix condition for Gentoo USE flag update
  222641. .IP \(bu 2
  222642. 1542fd4716 Add clarifying comments to the pkg.latest state
  222643. .UNINDENT
  222644. .UNINDENT
  222645. .IP \(bu 2
  222646. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  222647. .IP \(bu 2
  222648. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  222649. .IP \(bu 2
  222650. \fBPR\fP \fI\%#35855\fP: (\fI\%vutny\fP) [REGRESSION] salt\-cloud: fix path to Salt Master socket dir (refs: \fI\%#35856\fP)
  222651. @ \fI2016\-08\-30 07:09:04 UTC\fP
  222652. .INDENT 2.0
  222653. .IP \(bu 2
  222654. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud (refs: \fI\%#35855\fP, \fI\%#37057\fP, \fI\%#36070\fP)
  222655. .IP \(bu 2
  222656. cf8f081401 Merge pull request \fI\%#35855\fP from vutny/salt\-cloud\-fix\-sock_dir
  222657. .IP \(bu 2
  222658. a662ea5337 salt\-cloud: fix path to Salt Master socket dir
  222659. .UNINDENT
  222660. .IP \(bu 2
  222661. \fBPR\fP \fI\%#35881\fP: (\fI\%whiteinge\fP) Add fail\-safe in case Salt gives us data we can\(aqt serialize
  222662. @ \fI2016\-08\-30 06:43:11 UTC\fP
  222663. .INDENT 2.0
  222664. .IP \(bu 2
  222665. f0987cf27a Merge pull request \fI\%#35881\fP from whiteinge/salt\-api\-catch\-serializer\-error
  222666. .IP \(bu 2
  222667. 6e27fad21f Add fail\-safe in case Salt gives us data we can\(aqt serialize
  222668. .UNINDENT
  222669. .IP \(bu 2
  222670. \fBISSUE\fP \fI\%#35837\fP: (\fI\%JensRantil\fP) Doc improvement: Mention engine under extension modules (refs: \fI\%#35864\fP)
  222671. .INDENT 2.0
  222672. .IP \(bu 2
  222673. \fBPR\fP \fI\%#35864\fP: (\fI\%rallytime\fP) Add engines to list of extension module options in master config docs
  222674. .UNINDENT
  222675. .IP \(bu 2
  222676. \fBISSUE\fP \fI\%#35835\fP: (\fI\%JensRantil\fP) Incorrect SQS config documentation statement (refs: \fI\%#35861\fP)
  222677. .INDENT 2.0
  222678. .IP \(bu 2
  222679. \fBPR\fP \fI\%#35861\fP: (\fI\%rallytime\fP) Fix IAM roles statement to be boto version specific in sqs_events
  222680. .UNINDENT
  222681. .IP \(bu 2
  222682. \fBISSUE\fP \fI\%#35834\fP: (\fI\%JensRantil\fP) Incorrect SQS engine config (refs: \fI\%#35860\fP)
  222683. .INDENT 2.0
  222684. .IP \(bu 2
  222685. \fBPR\fP \fI\%#35860\fP: (\fI\%rallytime\fP) Fix doc formatting for sqs_events engine example config
  222686. .UNINDENT
  222687. .IP \(bu 2
  222688. \fBPR\fP \fI\%#35859\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222689. @ \fI2016\-08\-29 18:21:04 UTC\fP
  222690. .INDENT 2.0
  222691. .IP \(bu 2
  222692. 96747bc3bb Merge pull request \fI\%#35859\fP from rallytime/merge\-2016.3
  222693. .IP \(bu 2
  222694. 5f93d682aa Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222695. .IP \(bu 2
  222696. eda2ae0add Merge pull request \fI\%#35781\fP from thatch45/ssh_deploy_more
  222697. .INDENT 2.0
  222698. .IP \(bu 2
  222699. 2558dcc100 follow up on the re\-deploy if there is a checksum missmatch
  222700. .UNINDENT
  222701. .IP \(bu 2
  222702. 165237412c Merge pull request \fI\%#35815\fP from gtmanfred/2015.8
  222703. .INDENT 2.0
  222704. .IP \(bu 2
  222705. 805d43598e list_nodes_min should return a minimum dictionary
  222706. .UNINDENT
  222707. .IP \(bu 2
  222708. b12c6577d2 Merge pull request \fI\%#35833\fP from terminalmage/2015.8\-top\-file\-merging\-docs
  222709. .INDENT 2.0
  222710. .IP \(bu 2
  222711. c534d88280 More clarification/correction in minion docs
  222712. .IP \(bu 2
  222713. e9e6ea8485 One more tweak to top file merging docs
  222714. .UNINDENT
  222715. .UNINDENT
  222716. .IP \(bu 2
  222717. \fBISSUE\fP \fI\%#34478\fP: (\fI\%hujunya\fP) makedir bug in the file module (refs: \fI\%#35849\fP)
  222718. .IP \(bu 2
  222719. \fBPR\fP \fI\%#35849\fP: (\fI\%theredcat\fP) Fix potential infinite loop with no error when using recursive makedirs
  222720. @ \fI2016\-08\-29 11:37:19 UTC\fP
  222721. .INDENT 2.0
  222722. .IP \(bu 2
  222723. dc705ff675 Merge pull request \fI\%#35849\fP from theredcat/fix_file_makedirs_infinite_loop
  222724. .IP \(bu 2
  222725. 86d5398b28 Fix potential infinite loop with no error when using recursive makedirs
  222726. .UNINDENT
  222727. .IP \(bu 2
  222728. \fBPR\fP \fI\%#35682\fP: (\fI\%vutny\fP) [BACKPORT] Fix empty \fIfun_agrs\fP field in Reactor generated events
  222729. @ \fI2016\-08\-29 04:11:06 UTC\fP
  222730. .INDENT 2.0
  222731. .IP \(bu 2
  222732. \fBPR\fP \fI\%#35659\fP: (\fI\%vutny\fP) Fix empty \fIfun_agrs\fP field in Reactor generated events (refs: \fI\%#35682\fP)
  222733. .IP \(bu 2
  222734. \fBPR\fP \fI\%#35059\fP: (\fI\%vutny\fP) Add \fIfun_args\fP field to events generated by execution of Master modules (refs: \fI\%#35659\fP, \fI\%#35682\fP)
  222735. .IP \(bu 2
  222736. 433743f609 Merge pull request \fI\%#35682\fP from vutny/backport\-35659
  222737. .IP \(bu 2
  222738. 78d16a8057 [BACKPORT] Fix empty \fIfun_agrs\fP field in Reactor generated events
  222739. .UNINDENT
  222740. .IP \(bu 2
  222741. \fBISSUE\fP \fI\%#34973\fP: (\fI\%szjur\fP) Syndic stops forwarding job results if the local salt\-master is restarted (refs: \fI\%#35792\fP)
  222742. .IP \(bu 2
  222743. \fBPR\fP \fI\%#35792\fP: (\fI\%DmitryKuzmenko\fP) Reconnect syndic to event bus if master disappeared.
  222744. @ \fI2016\-08\-29 02:13:19 UTC\fP
  222745. .INDENT 2.0
  222746. .IP \(bu 2
  222747. 30c2db7b09 Merge pull request \fI\%#35792\fP from DSRCorporation/bugs/34973_syndic_reconnect_master_2016.3
  222748. .IP \(bu 2
  222749. 9afdbb0e97 Reconnect syndic to master event bus if master disappears.
  222750. .IP \(bu 2
  222751. ab1afd002e Fixed syndic event bus connection.
  222752. .IP \(bu 2
  222753. ea8e1385c1 Fixed syndic unhandled future exception if master is stopped.
  222754. .UNINDENT
  222755. .IP \(bu 2
  222756. \fBPR\fP \fI\%#35817\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222757. @ \fI2016\-08\-26 20:44:18 UTC\fP
  222758. .INDENT 2.0
  222759. .IP \(bu 2
  222760. 43c08ae431 Merge pull request \fI\%#35817\fP from rallytime/merge\-2016.3
  222761. .IP \(bu 2
  222762. e8e73b55ac Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222763. .IP \(bu 2
  222764. d285fe64b7 Merge pull request \fI\%#35811\fP from rallytime/bp\-35576
  222765. .INDENT 2.0
  222766. .IP \(bu 2
  222767. 04c063b315 Updated user.py to redact password when test=true
  222768. .UNINDENT
  222769. .IP \(bu 2
  222770. e212c55b7a Schedule documentation update (\fI\%#35745\fP)
  222771. .IP \(bu 2
  222772. eb4d2f299b Better unicode handling in gitfs (\fI\%#35802\fP)
  222773. .IP \(bu 2
  222774. 0ee237a9cb Remove extra "to" in top.rst docs (\fI\%#35808\fP)
  222775. .IP \(bu 2
  222776. 2fc61763d8 Correct the top_file_merging_strategy documentation (\fI\%#35774\fP)
  222777. .IP \(bu 2
  222778. \fBPR\fP \fI\%#35788\fP: (\fI\%hu\-dabao\fP) fix 34241, webutil.useradd_all is deprecated
  222779. .UNINDENT
  222780. .IP \(bu 2
  222781. \fBISSUE\fP \fI\%saltstack/salt#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  222782. .IP \(bu 2
  222783. \fBISSUE\fP \fI\%#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP, \fI\%#35806\fP)
  222784. .INDENT 2.0
  222785. .IP \(bu 2
  222786. \fBPR\fP \fI\%#35810\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35806\fP to 2016.3
  222787. .IP \(bu 2
  222788. \fBPR\fP \fI\%#35806\fP: (\fI\%rallytime\fP) Bump the deprecation warning in pkgrepo state to Nitrogen (refs: \fI\%#35810\fP)
  222789. .IP \(bu 2
  222790. \fBPR\fP \fI\%#35055\fP: (\fI\%galet\fP) \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35806\fP)
  222791. .UNINDENT
  222792. .IP \(bu 2
  222793. \fBISSUE\fP \fI\%#35741\fP: (\fI\%fix7\fP) modjk: use of auth credentials to access jk\-status broken (refs: \fI\%#35796\fP)
  222794. .INDENT 2.0
  222795. .IP \(bu 2
  222796. \fBPR\fP \fI\%#35796\fP: (\fI\%fix7\fP) Fix \fI\%#35741\fP
  222797. .IP \(bu 2
  222798. \fBPR\fP \fI\%#35807\fP: (\fI\%jacobhammons\fP) Adds mock for tornado.locks
  222799. .IP \(bu 2
  222800. \fBPR\fP \fI\%#35800\fP: (\fI\%alexander\-bauer\fP) Trivial documentation spelling fix
  222801. .UNINDENT
  222802. .IP \(bu 2
  222803. \fBPR\fP \fI\%#35763\fP: (\fI\%isbm\fP) Sphinx crash: documentation config fix
  222804. @ \fI2016\-08\-25 21:12:39 UTC\fP
  222805. .INDENT 2.0
  222806. .IP \(bu 2
  222807. 9b5ee2155e Merge pull request \fI\%#35763\fP from isbm/isbm\-doc\-conf\-sphinx\-crashfix
  222808. .IP \(bu 2
  222809. a56ae4e8f5 Configure importing Mock to handle \(aqtotal\(aq method from psutils properly
  222810. .IP \(bu 2
  222811. 9c057d0266 Return psutil back to the list of mocked imports
  222812. .IP \(bu 2
  222813. 3d7758461e Improve Mock to be flexible and able to mock methods from the mocked modules
  222814. .UNINDENT
  222815. .IP \(bu 2
  222816. \fBISSUE\fP \fI\%#35771\fP: (\fI\%bdrung\fP) Spelling errors in salt 2016.3.2 (refs: \fI\%#35773\fP)
  222817. .INDENT 2.0
  222818. .IP \(bu 2
  222819. \fBPR\fP \fI\%#35773\fP: (\fI\%rallytime\fP) Documentation spelling fixes
  222820. .UNINDENT
  222821. .IP \(bu 2
  222822. \fBPR\fP \fI\%#35767\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222823. @ \fI2016\-08\-25 16:09:37 UTC\fP
  222824. .INDENT 2.0
  222825. .IP \(bu 2
  222826. e355c1cf90 Merge pull request \fI\%#35767\fP from rallytime/merge\-2016.3
  222827. .IP \(bu 2
  222828. 8ad6a12c80 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222829. .IP \(bu 2
  222830. 2a12795bac Fixes Windows download paths (\fI\%#35742\fP)
  222831. .UNINDENT
  222832. .IP \(bu 2
  222833. \fBISSUE\fP \fI\%#20575\fP: (\fI\%starchy\fP) "salt \-\-subset=n" appears to always choose the same nodes (refs: \fI\%#35753\fP)
  222834. .IP \(bu 2
  222835. \fBPR\fP \fI\%#35753\fP: (\fI\%rallytime\fP) Fixup the unit.client_test.LocalClientTestCase.test_cmd_subset from \fI\%#35720\fP
  222836. @ \fI2016\-08\-25 15:55:23 UTC\fP
  222837. .INDENT 2.0
  222838. .IP \(bu 2
  222839. \fBPR\fP \fI\%#35720\fP: (\fI\%hu\-dabao\fP) fix 20575, make subset really return random subset (refs: \fI\%#35753\fP)
  222840. .IP \(bu 2
  222841. b3f6367621 Merge pull request \fI\%#35753\fP from rallytime/fix\-client\-unit\-test
  222842. .IP \(bu 2
  222843. 92f8c836e8 Add cmd_mock back in to function spec
  222844. .IP \(bu 2
  222845. a671f0a092 Fixup the unit.client_test.LocalClientTestCase.test_cmd_subset from \fI\%#35720\fP
  222846. .UNINDENT
  222847. .IP \(bu 2
  222848. \fBISSUE\fP \fI\%#35458\fP: (\fI\%iggy\fP) SALT.STATES.APACHE_MODULE needs version annotations (refs: \fI\%#35732\fP)
  222849. .INDENT 2.0
  222850. .IP \(bu 2
  222851. \fBPR\fP \fI\%#35732\fP: (\fI\%rallytime\fP) Add versionadded for enabled function in apache_module state
  222852. .UNINDENT
  222853. .IP \(bu 2
  222854. \fBPR\fP \fI\%#35737\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222855. @ \fI2016\-08\-24 19:48:45 UTC\fP
  222856. .INDENT 2.0
  222857. .IP \(bu 2
  222858. bab0e3d449 Merge pull request \fI\%#35737\fP from rallytime/merge\-2016.3
  222859. .IP \(bu 2
  222860. 61e37d5956 Merge branch \(aq2015.8\(aq into \(aq2106.3\(aq
  222861. .IP \(bu 2
  222862. 06a75be8bd Merge pull request \fI\%#35701\fP from gtmanfred/2015.8
  222863. .INDENT 2.0
  222864. .IP \(bu 2
  222865. 2d2bc1ffea use aws.get_location in s3 modules
  222866. .UNINDENT
  222867. .IP \(bu 2
  222868. 79bc01b88c Make test runs behave better (\fI\%#35708\fP)
  222869. .UNINDENT
  222870. .IP \(bu 2
  222871. \fBPR\fP \fI\%#35729\fP: (\fI\%cachedout\fP) Remove docs mocks for msgpack and psutils
  222872. @ \fI2016\-08\-24 14:42:06 UTC\fP
  222873. .INDENT 2.0
  222874. .IP \(bu 2
  222875. 7877ff1d5e Merge pull request \fI\%#35729\fP from cachedout/fix_docs_build
  222876. .IP \(bu 2
  222877. fdbf01d5ad Remove docs mocks for msgpack and psutils
  222878. .UNINDENT
  222879. .IP \(bu 2
  222880. \fBPR\fP \fI\%#35628\fP: (\fI\%jf\fP) Fix user.present state reporting for groups when remove_groups=false
  222881. @ \fI2016\-08\-24 08:15:31 UTC\fP
  222882. .INDENT 2.0
  222883. .IP \(bu 2
  222884. 962e493304 Merge pull request \fI\%#35628\fP from jf/fix_user.present_reporting_when_remove_groups=false
  222885. .IP \(bu 2
  222886. 1f818c832e Fix user.present state reporting for groups when remove_groups=false
  222887. .UNINDENT
  222888. .IP \(bu 2
  222889. \fBPR\fP \fI\%#35696\fP: (\fI\%xiaoanyunfei\fP) fix maximum recursion depth bug
  222890. @ \fI2016\-08\-24 08:01:16 UTC\fP
  222891. .INDENT 2.0
  222892. .IP \(bu 2
  222893. 02d86c6550 Merge pull request \fI\%#35696\fP from xiaoanyunfei/2016.3
  222894. .IP \(bu 2
  222895. 5db9255926 fix maximum recursion depth
  222896. .UNINDENT
  222897. .IP \(bu 2
  222898. \fBPR\fP \fI\%#35720\fP: (\fI\%hu\-dabao\fP) fix 20575, make subset really return random subset (refs: \fI\%#35753\fP)
  222899. @ \fI2016\-08\-24 07:03:58 UTC\fP
  222900. .INDENT 2.0
  222901. .IP \(bu 2
  222902. 79d10aea2d Merge pull request \fI\%#35720\fP from hu\-dabao/fix\-20575
  222903. .IP \(bu 2
  222904. 70af980c01 fix 20575, make subset really return random subset
  222905. .UNINDENT
  222906. .IP \(bu 2
  222907. \fBPR\fP \fI\%#35700\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222908. @ \fI2016\-08\-23 17:23:40 UTC\fP
  222909. .INDENT 2.0
  222910. .IP \(bu 2
  222911. 5d0b9a248e Merge pull request \fI\%#35700\fP from rallytime/merge\-2016.3
  222912. .IP \(bu 2
  222913. 9e9923c3f4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222914. .IP \(bu 2
  222915. aee5b62542 Merge pull request \fI\%#35680\fP from terminalmage/issue35630
  222916. .INDENT 2.0
  222917. .IP \(bu 2
  222918. d76659a63a Don\(aqt use six.text_type() in salt.utils.gitfs
  222919. .UNINDENT
  222920. .IP \(bu 2
  222921. 74678923b8 Fixup doc formatting for the sqs_events engine (\fI\%#35663\fP)
  222922. .UNINDENT
  222923. .IP \(bu 2
  222924. \fBPR\fP \fI\%#35634\fP: (\fI\%hu\-dabao\fP) fix 34922, StopIteration should not throw exception out
  222925. @ \fI2016\-08\-23 08:13:08 UTC\fP
  222926. .INDENT 2.0
  222927. .IP \(bu 2
  222928. f305389172 Merge pull request \fI\%#35634\fP from hu\-dabao/fix\-34922
  222929. .IP \(bu 2
  222930. fe338ff41f fix 34922, StopIteration should not throw exception out
  222931. .UNINDENT
  222932. .IP \(bu 2
  222933. \fBPR\fP \fI\%#35679\fP: (\fI\%twangboy\fP) Revert to vcredist 12 (2013)
  222934. @ \fI2016\-08\-23 08:05:40 UTC\fP
  222935. .INDENT 2.0
  222936. .IP \(bu 2
  222937. e45aa55d79 Merge pull request \fI\%#35679\fP from twangboy/change.vcredist.version.2016.3
  222938. .IP \(bu 2
  222939. 3d6d473d48 Revert to vcredist 12 (2013)
  222940. .UNINDENT
  222941. .IP \(bu 2
  222942. \fBPR\fP \fI\%#35662\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  222943. @ \fI2016\-08\-22 19:03:43 UTC\fP
  222944. .INDENT 2.0
  222945. .IP \(bu 2
  222946. 9fe0972761 Merge pull request \fI\%#35662\fP from rallytime/merge\-2016.3
  222947. .IP \(bu 2
  222948. 1d819d7cc2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  222949. .INDENT 2.0
  222950. .IP \(bu 2
  222951. 399e9f57cc Update release notes for 2015.8.12 (\fI\%#35614\fP)
  222952. .IP \(bu 2
  222953. f7f8221169 Everything in the sample master config file should be commented out (\fI\%#35611\fP)
  222954. .IP \(bu 2
  222955. c9070c212f Merge pull request \fI\%#35569\fP from rallytime/test\-for\-35384
  222956. .INDENT 2.0
  222957. .IP \(bu 2
  222958. 30f42d5352 Write test for multiple unless commands where 1st cmd passes and 2nd fails
  222959. .UNINDENT
  222960. .UNINDENT
  222961. .IP \(bu 2
  222962. \fBPR\fP \fI\%#35661\fP: (\fI\%justinta\fP) Backport \fI\%#35627\fP to 2016.3
  222963. .IP \(bu 2
  222964. \fBPR\fP \fI\%#35627\fP: (\fI\%cachedout\fP) Comment boto lambda test (refs: \fI\%#35661\fP)
  222965. .UNINDENT
  222966. .IP \(bu 2
  222967. \fBPR\fP \fI\%#35615\fP: (\fI\%hu\-dabao\fP) fix 35591, verify the acl file exist before proceed
  222968. @ \fI2016\-08\-21 04:41:32 UTC\fP
  222969. .INDENT 2.0
  222970. .IP \(bu 2
  222971. 67692f868c Merge pull request \fI\%#35615\fP from hu\-dabao/fix\-35591
  222972. .IP \(bu 2
  222973. 402b83e4d3 change file verification to exist
  222974. .IP \(bu 2
  222975. 7355eb4ecd move python lib import after absolute_import
  222976. .IP \(bu 2
  222977. 69a2427670 fix 35591, verify the acl file exist before proceed
  222978. .UNINDENT
  222979. .IP \(bu 2
  222980. \fBPR\fP \fI\%#35485\fP: (\fI\%cro\fP) Cassandra returner bugfixes and documentation.
  222981. @ \fI2016\-08\-20 02:42:28 UTC\fP
  222982. .INDENT 2.0
  222983. .IP \(bu 2
  222984. de6fca3909 Merge pull request \fI\%#35485\fP from cro/jpmc_cass_return
  222985. .IP \(bu 2
  222986. 0b01a7a266 Six import for range.
  222987. .IP \(bu 2
  222988. 7e87d4170d Fix Py3 lint?
  222989. .IP \(bu 2
  222990. d4336d011c [1,2,3] \-> range(1,4)
  222991. .IP \(bu 2
  222992. cec7f6a7ec remove unneeded import
  222993. .IP \(bu 2
  222994. e31555345f Add timeout documentation.
  222995. .IP \(bu 2
  222996. 901ab8b74c Remove unnecessary log statements
  222997. .IP \(bu 2
  222998. 1954c1a3f3 Update cassandra returner for JPMC
  222999. .UNINDENT
  223000. .IP \(bu 2
  223001. \fBISSUE\fP \fI\%#35519\fP: (\fI\%morganwillcock\fP) win_dism state doesn\(aqt handle all success return codes (refs: \fI\%#35520\fP)
  223002. .IP \(bu 2
  223003. \fBPR\fP \fI\%#35520\fP: (\fI\%morganwillcock\fP) Check for all success return codes in win_dism state
  223004. @ \fI2016\-08\-20 02:35:01 UTC\fP
  223005. .INDENT 2.0
  223006. .IP \(bu 2
  223007. edefff51d4 Merge pull request \fI\%#35520\fP from morganwillcock/dism\-return\-codes
  223008. .IP \(bu 2
  223009. 0b95b85e69 Check for all success return codes in dism state
  223010. .UNINDENT
  223011. .IP \(bu 2
  223012. \fBPR\fP \fI\%#35616\fP: (\fI\%xbglowx\fP) Remove duplicate auth_tries in minion docs
  223013. @ \fI2016\-08\-20 02:32:50 UTC\fP
  223014. .INDENT 2.0
  223015. .IP \(bu 2
  223016. 27211dbd64 Merge pull request \fI\%#35616\fP from xbglowx/2016.3
  223017. .IP \(bu 2
  223018. 2801f0fdcc Remove duplicate auth_tries in minion docs
  223019. .UNINDENT
  223020. .IP \(bu 2
  223021. \fBISSUE\fP \fI\%#34992\fP: (\fI\%szjur\fP) Syndic strips vital parts of events (such as \(aqretcode\(aq and \(aqsuccess\(aq) (refs: \fI\%#35552\fP)
  223022. .IP \(bu 2
  223023. \fBPR\fP \fI\%#35552\fP: (\fI\%DmitryKuzmenko\fP) Syndic fix: don\(aqt strip \(aqretcode\(aq and \(aqsuccess\(aq from events.
  223024. @ \fI2016\-08\-20 02:00:40 UTC\fP
  223025. .INDENT 2.0
  223026. .IP \(bu 2
  223027. 25ac9bacc6 Merge pull request \fI\%#35552\fP from DSRCorporation/bugs/34992_syndic_strip_retcode
  223028. .IP \(bu 2
  223029. d036299f6f Syndic fix: don\(aqt strip \(aqretcode\(aq and \(aqsuccess\(aq from events.
  223030. .UNINDENT
  223031. .IP \(bu 2
  223032. \fBISSUE\fP \fI\%#25664\fP: (\fI\%sdm24\fP) 2015.5.2 MySQL Returner: salt\-run jobs.lookup_jid doesn\(aqt return full result for highstate output (refs: \fI\%#35559\fP)
  223033. .IP \(bu 2
  223034. \fBPR\fP \fI\%#35559\fP: (\fI\%Jlin317\fP) Fix highstate outputter when it\(aqs given multiple results (refs: \fI\%#36137\fP)
  223035. @ \fI2016\-08\-20 01:56:25 UTC\fP
  223036. .INDENT 2.0
  223037. .IP \(bu 2
  223038. bec8322e13 Merge pull request \fI\%#35559\fP from Jlin317/fix_highstate_outputter
  223039. .IP \(bu 2
  223040. 27aa038cc6 Fix highstate outputter when it\(aqs given multiple results
  223041. .UNINDENT
  223042. .IP \(bu 2
  223043. \fBISSUE\fP \fI\%#32478\fP: (\fI\%oliver\-dungey\fP) rsync.synchronized \- user/group options required (refs: \fI\%#32739\fP)
  223044. .IP \(bu 2
  223045. \fBPR\fP \fI\%#35605\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32739\fP to 2016.3
  223046. @ \fI2016\-08\-20 01:39:38 UTC\fP
  223047. .INDENT 2.0
  223048. .IP \(bu 2
  223049. \fBPR\fP \fI\%#32739\fP: (\fI\%abednarik\fP) Rsync synchronized updates. (refs: \fI\%#35605\fP)
  223050. .IP \(bu 2
  223051. 4153aeba29 Merge pull request \fI\%#35605\fP from rallytime/bp\-32739
  223052. .IP \(bu 2
  223053. 36d8b4a409 Rsync synchronized updates.
  223054. .UNINDENT
  223055. .IP \(bu 2
  223056. \fBPR\fP \fI\%#35606\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223057. @ \fI2016\-08\-19 22:19:05 UTC\fP
  223058. .INDENT 2.0
  223059. .IP \(bu 2
  223060. 6eabe6356f Merge pull request \fI\%#35606\fP from rallytime/merge\-2016.3
  223061. .IP \(bu 2
  223062. f2eb625778 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223063. .IP \(bu 2
  223064. 0c7aa802f5 Update release notes for 2015.8.12 (\fI\%#35600\fP)
  223065. .IP \(bu 2
  223066. dd12b48239 Update release notes for 2015.8.12 (\fI\%#35599\fP)
  223067. .IP \(bu 2
  223068. beb6ca8ef9 Update linux_sysctl tests to reflect new context key (\fI\%#35584\fP)
  223069. .IP \(bu 2
  223070. fd08d33597 Add warning about AWS flagging of nmap usage (\fI\%#35575\fP)
  223071. .UNINDENT
  223072. .UNINDENT
  223073. .SS Salt 2016.3.5 Release Notes
  223074. .sp
  223075. Version 2016.3.5 is a bugfix release for 2016.3.0\&.
  223076. .SS Statistics
  223077. .INDENT 0.0
  223078. .IP \(bu 2
  223079. Total Merges: \fB190\fP
  223080. .IP \(bu 2
  223081. Total Issue References: \fB112\fP
  223082. .IP \(bu 2
  223083. Total PR References: \fB281\fP
  223084. .IP \(bu 2
  223085. Contributors: \fB74\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%Firewire2002\fP, \fI\%Mrten\fP, \fI\%Talkless\fP, \fI\%TronPaul\fP, \fI\%UtahDave\fP, \fI\%aaronm\-cloudtek\fP, \fI\%alex\-zel\fP, \fI\%alexandr\-orlov\fP, \fI\%alexbleotu\fP, \fI\%attiasr\fP, \fI\%basepi\fP, \fI\%bdrung\fP, \fI\%bshelton229\fP, \fI\%cachedout\fP, \fI\%calve\fP, \fI\%clan\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%dere\fP, \fI\%dereckson\fP, \fI\%dhaines\fP, \fI\%dincamihai\fP, \fI\%do3meli\fP, \fI\%dragon788\fP, \fI\%edgan\fP, \fI\%fedusia\fP, \fI\%fj40crawler\fP, \fI\%genuss\fP, \fI\%gtmanfred\fP, \fI\%haeac\fP, \fI\%heewa\fP, \fI\%hu\-dabao\fP, \fI\%jeanpralo\fP, \fI\%jfindlay\fP, \fI\%jinm\fP, \fI\%kevinquinnyo\fP, \fI\%kontrolld\fP, \fI\%laleocen\fP, \fI\%lorengordon\fP, \fI\%m03\fP, \fI\%mcalmer\fP, \fI\%mchugh19\fP, \fI\%meaksh\fP, \fI\%mikejford\fP, \fI\%moio\fP, \fI\%multani\fP, \fI\%nevins\-b\fP, \fI\%pass\-by\-value\fP, \fI\%rallytime\fP, \fI\%rbjorklin\fP, \fI\%siccrusher\fP, \fI\%silenius\fP, \fI\%sjmh\fP, \fI\%sjorge\fP, \fI\%skizunov\fP, \fI\%slinn0\fP, \fI\%sofixa\fP, \fI\%techhat\fP, \fI\%tedski\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%thusoy\fP, \fI\%toanju\fP, \fI\%tobithiel\fP, \fI\%twangboy\fP, \fI\%tyhunt99\fP, \fI\%vutny\fP, \fI\%wanparo\fP, \fI\%whiteinge\fP, \fI\%xiaoanyunfei\fP, \fI\%yhekma\fP, \fI\%zwo\-bot\fP)
  223086. .UNINDENT
  223087. .SS Security Fixes
  223088. .sp
  223089. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  223090. .sp
  223091. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  223092. credentials and so access to it from salt\-api has been removed for now. This
  223093. vulnerability allows code execution for already\-authenticated users and is only
  223094. in effect when running salt\-api as the \fBroot\fP user.
  223095. .sp
  223096. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master via
  223097. Salt\(aqs ssh_client
  223098. .sp
  223099. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  223100. hole when both systems were enabled.
  223101. .sp
  223102. We recommend everyone on the 2016.3 branch upgrade to a patched release as soon
  223103. as possible.
  223104. .SS Improved Checksum Handling in \fBfile.managed\fP, \fBarchive.extracted\fP States
  223105. .sp
  223106. When the \fBsource_hash\fP argument for these states refers to a file containing
  223107. checksums, Salt now looks for checksums matching the name of the source URI, as
  223108. well as the file being managed. Prior releases only looked for checksums
  223109. matching the filename being managed. Additionally, a new argument
  223110. (\fBsource_hash_name\fP) has been added, which allows the user to disambiguate
  223111. ambiguous matches when more than one matching checksum is found in the
  223112. \fBsource_hash\fP file.
  223113. .sp
  223114. A more detailed explanation of this functionality can be found in the
  223115. \fBfile.managed\fP documentation, in the
  223116. section for the new \fBsource_hash_name\fP argument.
  223117. .SS Changelog for v2016.3.4..v2016.3.5
  223118. .sp
  223119. \fIGenerated at: 2018\-05\-27 05:09:33 UTC\fP
  223120. .INDENT 0.0
  223121. .IP \(bu 2
  223122. \fBPR\fP \fI\%#38833\fP: (\fI\%Ch3LL\fP) add 2016.3.5 changelog to release notes
  223123. @ \fI2017\-01\-19 23:27:26 UTC\fP
  223124. .INDENT 2.0
  223125. .IP \(bu 2
  223126. a04ab86da1 Merge pull request \fI\%#38833\fP from Ch3LL/add_release_notes_2016.3.5
  223127. .IP \(bu 2
  223128. 374dc1ab88 skip 2016.3.5 due to :doc: references
  223129. .IP \(bu 2
  223130. 31f324c4ff add 2016.3.5 changelog to release notes
  223131. .UNINDENT
  223132. .IP \(bu 2
  223133. \fBPR\fP \fI\%#38812\fP: (\fI\%rallytime\fP) Update pyobjects test to be a list
  223134. @ \fI2017\-01\-18 21:06:01 UTC\fP
  223135. .INDENT 2.0
  223136. .IP \(bu 2
  223137. d14f0c64eb Merge pull request \fI\%#38812\fP from rallytime/pyobjects\-test
  223138. .IP \(bu 2
  223139. f3e84c1ab7 Update pyobjects test to be a list
  223140. .UNINDENT
  223141. .IP \(bu 2
  223142. \fBISSUE\fP \fI\%#36598\fP: (\fI\%ikkaro\fP) CloudClient vmware driver reusing SI bug (refs: \fI\%#38813\fP)
  223143. .IP \(bu 2
  223144. \fBPR\fP \fI\%#38813\fP: (\fI\%gtmanfred\fP) catch SIGPIPE in vmware connection
  223145. @ \fI2017\-01\-18 21:05:42 UTC\fP
  223146. .INDENT 2.0
  223147. .IP \(bu 2
  223148. 50f03f8057 Merge pull request \fI\%#38813\fP from gtmanfred/2016.3
  223149. .IP \(bu 2
  223150. ce3472cec2 catch SIGPIPE in vmware connection
  223151. .UNINDENT
  223152. .IP \(bu 2
  223153. \fBPR\fP \fI\%#38809\fP: (\fI\%twangboy\fP) Fix get_hostname to handle longer computer names
  223154. @ \fI2017\-01\-18 19:32:00 UTC\fP
  223155. .INDENT 2.0
  223156. .IP \(bu 2
  223157. 23b8b47258 Merge pull request \fI\%#38809\fP from twangboy/fix_hostname_2016.3
  223158. .IP \(bu 2
  223159. d57a51f9f9 Fix tests for get_hostname
  223160. .IP \(bu 2
  223161. 7ca3fd7484 Fix get_hostname to handle longer computer names
  223162. .UNINDENT
  223163. .IP \(bu 2
  223164. \fBISSUE\fP \fI\%#38388\fP: (\fI\%johje349\fP) No INFO logs in minion log file (refs: \fI\%#38808\fP)
  223165. .IP \(bu 2
  223166. \fBPR\fP \fI\%#38808\fP: (\fI\%vutny\fP) Fix \fI\%#38388\fP
  223167. @ \fI2017\-01\-18 18:19:36 UTC\fP
  223168. .INDENT 2.0
  223169. .IP \(bu 2
  223170. 1033bbdde8 Merge pull request \fI\%#38808\fP from vutny/fix\-38388
  223171. .IP \(bu 2
  223172. 9bd203ffcc Fix \fI\%#38388\fP
  223173. .UNINDENT
  223174. .IP \(bu 2
  223175. \fBISSUE\fP \fI\%#38604\fP: (\fI\%jsandas\fP) Using "batch" with saltmod errors with "ValueError: need more than 2 values to unpack" (refs: \fI\%#38668\fP)
  223176. .IP \(bu 2
  223177. \fBPR\fP \fI\%#38668\fP: (\fI\%terminalmage\fP) Fix proposal for \fI\%#38604\fP
  223178. @ \fI2017\-01\-18 17:53:09 UTC\fP
  223179. .INDENT 2.0
  223180. .IP \(bu 2
  223181. f3ae3cd5c8 Merge pull request \fI\%#38668\fP from terminalmage/issue38604
  223182. .IP \(bu 2
  223183. 0ea97cdad9 Merge pull request \fI\%#10\fP from cachedout/pr\-38668
  223184. .INDENT 2.0
  223185. .IP \(bu 2
  223186. db81afc035 Munge retcode into return data for batching
  223187. .UNINDENT
  223188. .IP \(bu 2
  223189. a642a995dc Return the ret data from batch execution instead of raw data
  223190. .UNINDENT
  223191. .IP \(bu 2
  223192. \fBISSUE\fP \fI\%#38622\fP: (\fI\%mikejford\fP) Incorrect saltenv argument documentation in salt.modules.state (refs: \fI\%#38789\fP)
  223193. .IP \(bu 2
  223194. \fBPR\fP \fI\%#38789\fP: (\fI\%rallytime\fP) Update some saltenv refs to environment in salt.modules.state docs
  223195. @ \fI2017\-01\-18 15:39:22 UTC\fP
  223196. .INDENT 2.0
  223197. .IP \(bu 2
  223198. c6a19a9e5a Merge pull request \fI\%#38789\fP from rallytime/fix\-38622
  223199. .IP \(bu 2
  223200. af41fe0c6e Update some saltenv refs to environment in salt.modules.state docs
  223201. .UNINDENT
  223202. .IP \(bu 2
  223203. \fBPR\fP \fI\%#38790\fP: (\fI\%cachedout\fP) Fix typo in pyobjects test
  223204. @ \fI2017\-01\-18 15:38:57 UTC\fP
  223205. .INDENT 2.0
  223206. .IP \(bu 2
  223207. e0bf700020 Merge pull request \fI\%#38790\fP from cachedout/fix_pyobjects_test_typo
  223208. .IP \(bu 2
  223209. a66afb5f0f Fix typo in pyobjects test
  223210. .UNINDENT
  223211. .IP \(bu 2
  223212. \fBISSUE\fP \fI\%#38629\fP: (\fI\%Arabus\fP) Conflicting documentation about default value of pillar_opts (refs: \fI\%#38792\fP)
  223213. .IP \(bu 2
  223214. \fBPR\fP \fI\%#38792\fP: (\fI\%rallytime\fP) Update pillar tutorial lanuage regarding pillar_opts settings
  223215. @ \fI2017\-01\-18 15:38:19 UTC\fP
  223216. .INDENT 2.0
  223217. .IP \(bu 2
  223218. 6e9785edea Merge pull request \fI\%#38792\fP from rallytime/fix\-38629
  223219. .IP \(bu 2
  223220. 1e125e2844 Update pillar tutorial lanuage regarding pillar_opts settings
  223221. .IP \(bu 2
  223222. \fBPR\fP \fI\%saltstack/salt#38707\fP: (\fI\%alexbleotu\fP) Fixed prepending of root_dir override to the other paths (refs: \fI\%#38796\fP)
  223223. .UNINDENT
  223224. .IP \(bu 2
  223225. \fBPR\fP \fI\%#38796\fP: (\fI\%cachedout\fP) Revert "Fixed prepending of root_dir override to the other paths"
  223226. @ \fI2017\-01\-17 23:18:18 UTC\fP
  223227. .INDENT 2.0
  223228. .IP \(bu 2
  223229. 3417adc617 Merge pull request \fI\%#38796\fP from saltstack/revert\-38707\-root_dir_fix\-gh
  223230. .IP \(bu 2
  223231. cb080f3bbe Revert "Fixed prepending of root_dir override to the other paths"
  223232. .UNINDENT
  223233. .IP \(bu 2
  223234. \fBISSUE\fP \fI\%#38524\fP: (\fI\%rbjorklin\fP) salt\-api seems to ignore rest_timeout since 2016.11.0 (refs: \fI\%#38585\fP, \fI\%#38527\fP)
  223235. .IP \(bu 2
  223236. \fBISSUE\fP \fI\%#38479\fP: (\fI\%tyeapple\fP) api_logfile setting takes no effect (refs: \fI\%#38585\fP)
  223237. .IP \(bu 2
  223238. \fBPR\fP \fI\%#38585\fP: (\fI\%rallytime\fP) Follow up to PR \fI\%#38527\fP
  223239. @ \fI2017\-01\-17 18:40:01 UTC\fP
  223240. .INDENT 2.0
  223241. .IP \(bu 2
  223242. \fBPR\fP \fI\%#38570\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38585\fP)
  223243. .IP \(bu 2
  223244. \fBPR\fP \fI\%#38560\fP: (\fI\%Ch3LL\fP) fix api logfile (refs: \fI\%#38585\fP)
  223245. .IP \(bu 2
  223246. \fBPR\fP \fI\%#38527\fP: (\fI\%rbjorklin\fP) salt\-api no longer forces the default timeout (refs: \fI\%#38585\fP)
  223247. .IP \(bu 2
  223248. bab3479a3c Merge pull request \fI\%#38585\fP from rallytime/follow\-up\-38527
  223249. .IP \(bu 2
  223250. 05587201b6 Pylint fix: add line at end of file
  223251. .IP \(bu 2
  223252. fa01367599 Keep a copy of the DEFAULT_API_OPTS and restore them after the test run
  223253. .IP \(bu 2
  223254. 2ad07634d9 Test clean up
  223255. .IP \(bu 2
  223256. fd2ee7db30 Add some simple unit tests for salt.config.api_config function
  223257. .IP \(bu 2
  223258. 3d2fefc83b Make sure the pidfile and log_file values are overriden by api opts
  223259. .IP \(bu 2
  223260. 1f6b540e46 Make sure the pidfile and log_file values are overriden by api opts
  223261. .IP \(bu 2
  223262. 04d307f917 salt\-api no longer forces the default timeout
  223263. .UNINDENT
  223264. .IP \(bu 2
  223265. \fBPR\fP \fI\%#38707\fP: (\fI\%alexbleotu\fP) Fixed prepending of root_dir override to the other paths
  223266. @ \fI2017\-01\-17 15:40:13 UTC\fP
  223267. .INDENT 2.0
  223268. .IP \(bu 2
  223269. 0fb6bb7b77 Merge pull request \fI\%#38707\fP from alexbleotu/root_dir_fix\-gh
  223270. .IP \(bu 2
  223271. 0bac8c8be3 Fixed prepending of root_dir override to the other paths
  223272. .UNINDENT
  223273. .IP \(bu 2
  223274. \fBPR\fP \fI\%#38774\fP: (\fI\%vutny\fP) DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  223275. @ \fI2017\-01\-17 15:21:00 UTC\fP
  223276. .INDENT 2.0
  223277. .IP \(bu 2
  223278. 96c9dc10f7 Merge pull request \fI\%#38774\fP from vutny/dev\-test\-docs
  223279. .IP \(bu 2
  223280. 4620dc4afa DOCS: add C++ compiler installation on RHEL required for bundled 0mq
  223281. .UNINDENT
  223282. .IP \(bu 2
  223283. \fBPR\fP \fI\%#38749\fP: (\fI\%vutny\fP) pkg build modules throw better exception message if keyid wasn\(aqt found
  223284. @ \fI2017\-01\-17 02:13:08 UTC\fP
  223285. .INDENT 2.0
  223286. .IP \(bu 2
  223287. aedfbb7a43 Merge pull request \fI\%#38749\fP from vutny/pkg\-build\-better\-exception\-msg
  223288. .IP \(bu 2
  223289. 53f2be5b21 pkg build modules throw better exception message if keyid wasn\(aqt found
  223290. .UNINDENT
  223291. .IP \(bu 2
  223292. \fBPR\fP \fI\%#38743\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  223293. @ \fI2017\-01\-17 01:46:01 UTC\fP
  223294. .INDENT 2.0
  223295. .IP \(bu 2
  223296. 8466b34e82 Merge pull request \fI\%#38743\fP from rallytime/merge\-2016.3
  223297. .IP \(bu 2
  223298. d24776f5e9 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  223299. .IP \(bu 2
  223300. 6869621ed1 Merge pull request \fI\%#38731\fP from rallytime/merge\-2015.8
  223301. .INDENT 2.0
  223302. .IP \(bu 2
  223303. 9eb191b6ac Pylint fix
  223304. .IP \(bu 2
  223305. b910499dbe Various follow up fixes
  223306. .IP \(bu 2
  223307. e8309a6bbf Add release notes for 2015.8.13
  223308. .IP \(bu 2
  223309. f881f366b7 Merge pull request \fI\%#20\fP from rallytime/2015.8.12_follow_up\-batch\-tests
  223310. .INDENT 2.0
  223311. .IP \(bu 2
  223312. 34282322c0 Clean up tests and docs for batch execution
  223313. .UNINDENT
  223314. .IP \(bu 2
  223315. c80b20b957 Merge pull request \fI\%#19\fP from whiteinge/batchclient
  223316. .INDENT 2.0
  223317. .IP \(bu 2
  223318. 3d8f3d18f6 Remove batch execution from NetapiClient and Saltnado
  223319. .UNINDENT
  223320. .IP \(bu 2
  223321. 97b0f64923 Lintfix
  223322. .IP \(bu 2
  223323. d1516664f7 Add explanation comment
  223324. .IP \(bu 2
  223325. 62f2c87080 Add docstring
  223326. .IP \(bu 2
  223327. 9b0a786aeb Explain what it is about and how to configure that
  223328. .IP \(bu 2
  223329. 5ea3579e10 Pick up a specified roster file from the configured locations
  223330. .IP \(bu 2
  223331. 3a8614c5df Disable custom rosters in API
  223332. .IP \(bu 2
  223333. c0e5a1171d Add roster disable flag
  223334. .UNINDENT
  223335. .IP \(bu 2
  223336. e9c59e9b8f Merge pull request \fI\%#38602\fP from terminalmage/fix\-boto\-test
  223337. .INDENT 2.0
  223338. .IP \(bu 2
  223339. 3424a108ac Fix failing unit.states.boto_vpc_test.BotoVpcRouteTableTestCase.test_present_with_routes
  223340. .UNINDENT
  223341. .UNINDENT
  223342. .IP \(bu 2
  223343. \fBISSUE\fP \fI\%#38674\fP: (\fI\%jackywu\fP) There is no code to use parameter \(aqevent_publisher_pub_hwm\(aq in saltstack\-2016.3 (refs: \fI\%#38723\fP)
  223344. .IP \(bu 2
  223345. \fBPR\fP \fI\%#38723\fP: (\fI\%rallytime\fP) Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  223346. @ \fI2017\-01\-15 18:36:14 UTC\fP
  223347. .INDENT 2.0
  223348. .IP \(bu 2
  223349. \fBPR\fP \fI\%#29294\fP: (\fI\%skizunov\fP) ZeroMQ no longer required when transport is TCP (refs: \fI\%#38723\fP)
  223350. .IP \(bu 2
  223351. a642cdef79 Merge pull request \fI\%#38723\fP from rallytime/fix\-38674
  223352. .IP \(bu 2
  223353. 706c885f55 Remove "event_publisher_pub_hwm" and "salt_event_pub_hwm" from config/__init__.py
  223354. .UNINDENT
  223355. .IP \(bu 2
  223356. \fBPR\fP \fI\%#38669\fP: (\fI\%rallytime\fP) Update bootstrap script verstion to latest release
  223357. @ \fI2017\-01\-15 18:03:27 UTC\fP
  223358. .INDENT 2.0
  223359. .IP \(bu 2
  223360. fc545af10b Merge pull request \fI\%#38669\fP from rallytime/update\-bootstrap\-script
  223361. .IP \(bu 2
  223362. 78ba76e34c Update bootstrap script verstion to latest release
  223363. .UNINDENT
  223364. .IP \(bu 2
  223365. \fBPR\fP \fI\%#38693\fP: (\fI\%twangboy\fP) Update jinja2 to 2.9.4
  223366. @ \fI2017\-01\-15 14:40:46 UTC\fP
  223367. .INDENT 2.0
  223368. .IP \(bu 2
  223369. 50d417f267 Merge pull request \fI\%#38693\fP from twangboy/update_jinja
  223370. .IP \(bu 2
  223371. e0c7e5549b Update jinja2 to 2.9.4
  223372. .UNINDENT
  223373. .IP \(bu 2
  223374. \fBPR\fP \fI\%#38739\fP: (\fI\%vutny\fP) DOCS: correct examples of running test suite
  223375. @ \fI2017\-01\-15 14:35:47 UTC\fP
  223376. .INDENT 2.0
  223377. .IP \(bu 2
  223378. f4233bb18d Merge pull request \fI\%#38739\fP from vutny/fix\-runtests\-doc
  223379. .IP \(bu 2
  223380. b872bb63f6 DOCS: correct examples of running test suite
  223381. .IP \(bu 2
  223382. \fBPR\fP \fI\%#38735\fP: (\fI\%vutny\fP) DOCS: add links to File State Backups page where necessary
  223383. .IP \(bu 2
  223384. \fBPR\fP \fI\%#38720\fP: (\fI\%dereckson\fP) Proofread jinja_to_execution_module tutorial
  223385. .UNINDENT
  223386. .IP \(bu 2
  223387. \fBISSUE\fP \fI\%#36548\fP: (\fI\%abonillasuse\fP) openstack auth with nova driver (refs: \fI\%#38647\fP)
  223388. .IP \(bu 2
  223389. \fBPR\fP \fI\%#38647\fP: (\fI\%gtmanfred\fP) Allow novaclient to use keystoneauth1 sessions for authentication
  223390. @ \fI2017\-01\-10 17:48:26 UTC\fP
  223391. .INDENT 2.0
  223392. .IP \(bu 2
  223393. 7b850d472d Merge pull request \fI\%#38647\fP from gtmanfred/nova
  223394. .IP \(bu 2
  223395. 5be9b60851 add documentation about using keystoneauth for v3
  223396. .IP \(bu 2
  223397. 7b657ca4ae add the ability to use keystone v2 and v3
  223398. .IP \(bu 2
  223399. 5646ae1b34 add ability to use keystoneauth to authenitcate in nova driver
  223400. .UNINDENT
  223401. .IP \(bu 2
  223402. \fBISSUE\fP \fI\%#38648\fP: (\fI\%ericuldall\fP) No release file error from PPA on Ubuntu (refs: \fI\%#38650\fP)
  223403. .IP \(bu 2
  223404. \fBISSUE\fP \fI\%#38572\fP: (\fI\%COLABORATI\fP) ppa:saltstack/salt failure (refs: \fI\%#38650\fP)
  223405. .IP \(bu 2
  223406. \fBISSUE\fP \fI\%#34504\fP: (\fI\%AvinashDeluxeVR\fP) Installation documentation for Ubuntu server and Windows minion leads the user to use different salt versions. (refs: \fI\%#38650\fP)
  223407. .IP \(bu 2
  223408. \fBPR\fP \fI\%#38650\fP: (\fI\%rallytime\fP) Remove the installation instructions for out\-of\-date community ppa
  223409. @ \fI2017\-01\-10 17:47:45 UTC\fP
  223410. .INDENT 2.0
  223411. .IP \(bu 2
  223412. 383768d838 Merge pull request \fI\%#38650\fP from rallytime/remove\-ubuntu\-ppa\-docs
  223413. .IP \(bu 2
  223414. 30429b2e44 Remove the installation instructions for out\-of\-date community ppa
  223415. .UNINDENT
  223416. .IP \(bu 2
  223417. \fBISSUE\fP \fI\%#38087\fP: (\fI\%UtahDave\fP) The \(aqdata\(aq field in the return from a minion below a syndic is wrapped in an extra \(aqdata\(aq field. (refs: \fI\%#38657\fP)
  223418. .IP \(bu 2
  223419. \fBPR\fP \fI\%#38657\fP: (\fI\%DmitryKuzmenko\fP) Publish the \(aqdata\(aq field content for Syndic evets
  223420. @ \fI2017\-01\-10 16:59:33 UTC\fP
  223421. .INDENT 2.0
  223422. .IP \(bu 2
  223423. 7d9f56e3b5 Merge pull request \fI\%#38657\fP from DSRCorporation/bugs/38087_syndic_event_format_fix
  223424. .IP \(bu 2
  223425. 594c33f396 Publish the \(aqdata\(aq field content for Syndic evets
  223426. .UNINDENT
  223427. .IP \(bu 2
  223428. \fBPR\fP \fI\%#38649\fP: (\fI\%Ch3LL\fP) fix unit.modules.file_test
  223429. @ \fI2017\-01\-10 16:44:45 UTC\fP
  223430. .INDENT 2.0
  223431. .IP \(bu 2
  223432. 83987511fd Merge pull request \fI\%#38649\fP from Ch3LL/test_apply_template
  223433. .IP \(bu 2
  223434. 47f8b68e0b fix unit.modules.file_test
  223435. .UNINDENT
  223436. .IP \(bu 2
  223437. \fBISSUE\fP \fI\%#37355\fP: (\fI\%Firewire2002\fP) salt\-ssh \- ImportError: No module named backports.ssl_match_hostname (refs: \fI\%#38626\fP, #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223438. .IP \(bu 2
  223439. \fBISSUE\fP \fI\%#34600\fP: (\fI\%davidpsv17\fP) Error trying a salt\-ssh test.ping (refs: #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223440. .IP \(bu 2
  223441. \fBISSUE\fP \fI\%#27355\fP: (\fI\%jerob\fP) salt ssh error with debian 7 on target (refs: #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223442. .INDENT 2.0
  223443. .IP \(bu 2
  223444. \fBPR\fP \fI\%saltstack/salt#37358\fP: (\fI\%Firewire2002\fP) Fix/workaround for issue \fI\%#37355\fP (refs: \fI\%#38626\fP)
  223445. .UNINDENT
  223446. .IP \(bu 2
  223447. \fBPR\fP \fI\%#38626\fP: (\fI\%cachedout\fP) Revert "Fix/workaround for issue \fI\%#37355\fP"
  223448. @ \fI2017\-01\-06 21:28:09 UTC\fP
  223449. .INDENT 2.0
  223450. .IP \(bu 2
  223451. 74ddc71be3 Merge pull request \fI\%#38626\fP from saltstack/revert\-37358\-2016.3.3_issue37355
  223452. .IP \(bu 2
  223453. e912ac99c2 Revert "Fix/workaround for issue \fI\%#37355\fP"
  223454. .UNINDENT
  223455. .IP \(bu 2
  223456. \fBISSUE\fP \fI\%#37355\fP: (\fI\%Firewire2002\fP) salt\-ssh \- ImportError: No module named backports.ssl_match_hostname (refs: \fI\%#38626\fP, #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223457. .IP \(bu 2
  223458. \fBISSUE\fP \fI\%#34600\fP: (\fI\%davidpsv17\fP) Error trying a salt\-ssh test.ping (refs: #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223459. .IP \(bu 2
  223460. \fBISSUE\fP \fI\%#27355\fP: (\fI\%jerob\fP) salt ssh error with debian 7 on target (refs: #\(gasaltstack/salt\(ga#37358\(ga_\(ga_, \fI\%#37358\fP)
  223461. .IP \(bu 2
  223462. \fBPR\fP \fI\%#37358\fP: (\fI\%Firewire2002\fP) Fix/workaround for issue \fI\%#37355\fP
  223463. @ \fI2017\-01\-06 18:58:47 UTC\fP
  223464. .INDENT 2.0
  223465. .IP \(bu 2
  223466. 5e58b32934 Merge pull request \fI\%#37358\fP from Firewire2002/2016.3.3_issue37355
  223467. .IP \(bu 2
  223468. 910da18bfd fixed typo
  223469. .IP \(bu 2
  223470. 4fbc5ddd06 fixed wrong renamed variable and spaces
  223471. .IP \(bu 2
  223472. 92366e646c issue \fI\%#37355\fP
  223473. .IP \(bu 2
  223474. 7dc87ab7b8 issue \fI\%#37355\fP
  223475. .IP \(bu 2
  223476. 2878180405 issue \fI\%#37355\fP
  223477. .UNINDENT
  223478. .IP \(bu 2
  223479. \fBPR\fP \fI\%#35390\fP: (\fI\%alexandr\-orlov\fP) Returns back missed proper grains dictionary for file module
  223480. @ \fI2017\-01\-06 18:02:13 UTC\fP
  223481. .INDENT 2.0
  223482. .IP \(bu 2
  223483. 6c2fe615aa Merge pull request \fI\%#35390\fP from alexandr\-orlov/2016.3
  223484. .IP \(bu 2
  223485. cd5ae17e8d fxd missed proper grains dictionary
  223486. .UNINDENT
  223487. .IP \(bu 2
  223488. \fBISSUE\fP \fI\%#38558\fP: (\fI\%multani\fP) pillar.get("...", default=var, merge=true) updates default value (refs: \fI\%#38579\fP)
  223489. .IP \(bu 2
  223490. \fBPR\fP \fI\%#38618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38579\fP to 2016.3
  223491. @ \fI2017\-01\-06 17:37:56 UTC\fP
  223492. .INDENT 2.0
  223493. .IP \(bu 2
  223494. \fBPR\fP \fI\%#38579\fP: (\fI\%zwo\-bot\fP) Fix \fI\%#38558\fP \- pillar.get with default= ...,merge=true influence subsequent calls of pillar.get (refs: \fI\%#38618\fP)
  223495. .IP \(bu 2
  223496. 2579cfa42d Merge pull request \fI\%#38618\fP from rallytime/bp\-38579
  223497. .IP \(bu 2
  223498. 2052ecee2c Add copy import
  223499. .IP \(bu 2
  223500. 2c8845aaa0 add test for pillar.get() + default value
  223501. .IP \(bu 2
  223502. c2f98d2f04 ticket 38558: add unit test, deepcopy() only if necessary
  223503. .IP \(bu 2
  223504. 30ae0a1958 added deepcopy of default if merge=True
  223505. .UNINDENT
  223506. .IP \(bu 2
  223507. \fBPR\fP \fI\%#38601\fP: (\fI\%terminalmage\fP) pillar.get: Raise exception when merge=True and default is not a dict
  223508. @ \fI2017\-01\-05 23:15:51 UTC\fP
  223509. .INDENT 2.0
  223510. .IP \(bu 2
  223511. da676cebd6 Merge pull request \fI\%#38601\fP from terminalmage/pillar\-get
  223512. .IP \(bu 2
  223513. 8613d7254d pillar.get: Raise exception when merge=True and default is not a dict
  223514. .UNINDENT
  223515. .IP \(bu 2
  223516. \fBPR\fP \fI\%#38600\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (2016.3 branch)
  223517. @ \fI2017\-01\-05 20:57:09 UTC\fP
  223518. .INDENT 2.0
  223519. .IP \(bu 2
  223520. \fBPR\fP \fI\%#38598\fP: (\fI\%terminalmage\fP) Avoid errors when sudo_user is set (refs: \fI\%#38600\fP)
  223521. .IP \(bu 2
  223522. 224fc7712a Merge pull request \fI\%#38600\fP from terminalmage/issue38459\-2016.3
  223523. .IP \(bu 2
  223524. 8a45b13e76 Avoid errors when sudo_user is set
  223525. .UNINDENT
  223526. .IP \(bu 2
  223527. \fBPR\fP \fI\%#38589\fP: (\fI\%tobithiel\fP) State Gem: fix incorrect warning about missing rvm/rbenv
  223528. @ \fI2017\-01\-05 20:12:15 UTC\fP
  223529. .INDENT 2.0
  223530. .IP \(bu 2
  223531. a376970f88 Merge pull request \fI\%#38589\fP from tobithiel/fix_rvm_rbenv_warning
  223532. .IP \(bu 2
  223533. 9ec470b4a5 State Gem: fix incorrect warning about missing rvm/rbenv
  223534. .UNINDENT
  223535. .IP \(bu 2
  223536. \fBPR\fP \fI\%#38567\fP: (\fI\%pass\-by\-value\fP) Create queue if one doesn\(aqt exist
  223537. @ \fI2017\-01\-05 18:46:11 UTC\fP
  223538. .INDENT 2.0
  223539. .IP \(bu 2
  223540. 02e6a78254 Merge pull request \fI\%#38567\fP from pass\-by\-value/pgjsonb_queue_changes_2016.3
  223541. .IP \(bu 2
  223542. 67879ebe65 Create queue if one doesn\(aqt exist
  223543. .UNINDENT
  223544. .IP \(bu 2
  223545. \fBISSUE\fP \fI\%#37498\fP: (\fI\%githubcdr\fP) service.restart salt\-minion fails on Ubuntu 14.04.5 LTS (refs: \fI\%#37748\fP, \fI\%#38587\fP)
  223546. .IP \(bu 2
  223547. \fBPR\fP \fI\%#38587\fP: (\fI\%rallytime\fP) Change daemontools __virtualname__ from service to daemontools
  223548. @ \fI2017\-01\-05 18:06:01 UTC\fP
  223549. .INDENT 2.0
  223550. .IP \(bu 2
  223551. 0889cbdb31 Merge pull request \fI\%#38587\fP from rallytime/fix\-37498
  223552. .IP \(bu 2
  223553. 2a5880966f Change daemontools __virtualname__ from service to daemontools
  223554. .UNINDENT
  223555. .IP \(bu 2
  223556. \fBPR\fP \fI\%#38562\fP: (\fI\%rallytime\fP) Update arch installation docs with correct package name
  223557. @ \fI2017\-01\-04 20:04:28 UTC\fP
  223558. .INDENT 2.0
  223559. .IP \(bu 2
  223560. 7b74436d13 Merge pull request \fI\%#38562\fP from rallytime/arch\-install\-docs
  223561. .IP \(bu 2
  223562. 8b1897ace9 Update arch installation docs with correct package name
  223563. .UNINDENT
  223564. .IP \(bu 2
  223565. \fBPR\fP \fI\%#38560\fP: (\fI\%Ch3LL\fP) fix api logfile (refs: \fI\%#38585\fP)
  223566. @ \fI2017\-01\-04 19:03:17 UTC\fP
  223567. .INDENT 2.0
  223568. .IP \(bu 2
  223569. 01860702cb Merge pull request \fI\%#38560\fP from Ch3LL/fix_api_log
  223570. .IP \(bu 2
  223571. 1b45e9670b fix api logfile
  223572. .UNINDENT
  223573. .IP \(bu 2
  223574. \fBPR\fP \fI\%#38531\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33601\fP to 2016.3
  223575. @ \fI2017\-01\-04 16:56:53 UTC\fP
  223576. .INDENT 2.0
  223577. .IP \(bu 2
  223578. \fBPR\fP \fI\%#33601\fP: (\fI\%mchugh19\fP) Fix slack engine to run on python2.6 (refs: \fI\%#38531\fP)
  223579. .IP \(bu 2
  223580. 0056620a53 Merge pull request \fI\%#38531\fP from rallytime/bp\-33601
  223581. .IP \(bu 2
  223582. c36cb39825 remove the unnecessary double trigger
  223583. .IP \(bu 2
  223584. 38414493bf fix spacing lint error
  223585. .IP \(bu 2
  223586. 8c1defc710 Remove uncessary type from alias commands. Deduplicate alias handling to autodetect function selection. Add error reporting to slack connectivty problems. Cleanup slack\(aqs unicode conversion
  223587. .IP \(bu 2
  223588. c2f23bc45e Fix slack engine to run on python2.6
  223589. .UNINDENT
  223590. .IP \(bu 2
  223591. \fBISSUE\fP \fI\%#38187\fP: (\fI\%curiositycasualty\fP) username/password saved as cleartext when using URIs with user:pass@ format (refs: \fI\%#38541\fP)
  223592. .IP \(bu 2
  223593. \fBPR\fP \fI\%#38541\fP: (\fI\%techhat\fP) Strip user:pass from cached URLs
  223594. @ \fI2017\-01\-04 15:39:57 UTC\fP
  223595. .INDENT 2.0
  223596. .IP \(bu 2
  223597. 50242c7f17 Merge pull request \fI\%#38541\fP from techhat/issue38187
  223598. .IP \(bu 2
  223599. eae3a435dd Strip user:pass from cached URLs
  223600. .UNINDENT
  223601. .IP \(bu 2
  223602. \fBISSUE\fP \fI\%#30454\fP: (\fI\%favoretti\fP) Using yaml serializer inside jinja template results in unicode being prepended by \(aq!!python/unicode\(aq (refs: \fI\%#30481\fP, \fI\%#38554\fP)
  223603. .IP \(bu 2
  223604. \fBPR\fP \fI\%#38554\fP: (\fI\%multani\fP) Fix YAML deserialization of unicode
  223605. @ \fI2017\-01\-04 15:31:16 UTC\fP
  223606. .INDENT 2.0
  223607. .IP \(bu 2
  223608. \fBPR\fP \fI\%#30481\fP: (\fI\%basepi\fP) Add yaml_safe jinja filter (refs: \fI\%#38554\fP)
  223609. .IP \(bu 2
  223610. 325dc56e59 Merge pull request \fI\%#38554\fP from multani/fix/30454
  223611. .IP \(bu 2
  223612. 2e7f743371 yaml: support unicode serialization/deserialization
  223613. .IP \(bu 2
  223614. df76113c5c jinja: test the "yaml" filter with ordered dicts
  223615. .IP \(bu 2
  223616. f7712d417f Revert "Add yaml_safe filter"
  223617. .IP \(bu 2
  223618. \fBPR\fP \fI\%#38536\fP: (\fI\%UtahDave\fP) add note about pyVmomi locale workaround
  223619. .UNINDENT
  223620. .IP \(bu 2
  223621. \fBISSUE\fP \fI\%#38353\fP: (\fI\%Ch3LL\fP) salt\-cloud gce specifying (refs: \fI\%#38542\fP)
  223622. .INDENT 2.0
  223623. .IP \(bu 2
  223624. \fBPR\fP \fI\%#38542\fP: (\fI\%Ch3LL\fP) fix gce image bug
  223625. .UNINDENT
  223626. .IP \(bu 2
  223627. \fBISSUE\fP \fI\%#38449\fP: (\fI\%swalladge\fP) Parsing issues in \fIlist_tab\fP (salt/modules/cron.py) (refs: \fI\%#38487\fP)
  223628. .IP \(bu 2
  223629. \fBPR\fP \fI\%#38487\fP: (\fI\%gtmanfred\fP) Fix crontab issues with spaces
  223630. @ \fI2017\-01\-01 20:33:29 UTC\fP
  223631. .INDENT 2.0
  223632. .IP \(bu 2
  223633. ec60f9c721 Merge pull request \fI\%#38487\fP from gtmanfred/2016.3
  223634. .IP \(bu 2
  223635. 048b9f6b9d add test
  223636. .IP \(bu 2
  223637. c480c11528 allow spaces in cron env
  223638. .IP \(bu 2
  223639. c529ec8c34 allow crons to have multiple spaces
  223640. .UNINDENT
  223641. .IP \(bu 2
  223642. \fBISSUE\fP \fI\%#37684\fP: (\fI\%thusoy\fP) State execution duration is timezone\-dependent (refs: \fI\%#38491\fP)
  223643. .IP \(bu 2
  223644. \fBPR\fP \fI\%#38491\fP: (\fI\%gtmanfred\fP) Use UTC for timing in case timezone changes
  223645. @ \fI2017\-01\-01 20:30:57 UTC\fP
  223646. .INDENT 2.0
  223647. .IP \(bu 2
  223648. c5ba11b5e0 Merge pull request \fI\%#38491\fP from gtmanfred/timing
  223649. .IP \(bu 2
  223650. 79368c7528 Use UTC for timing in case timezone changes
  223651. .UNINDENT
  223652. .IP \(bu 2
  223653. \fBISSUE\fP \fI\%#38472\fP: (\fI\%jinm\fP) file.managed Unable to manage file: \(aqhash_type\(aq (2016.3.4) (refs: \fI\%#38503\fP)
  223654. .IP \(bu 2
  223655. \fBPR\fP \fI\%#38503\fP: (\fI\%jinm\fP) Hash type fallback for file management
  223656. @ \fI2017\-01\-01 17:36:51 UTC\fP
  223657. .INDENT 2.0
  223658. .IP \(bu 2
  223659. 86f0aa0bb3 Merge pull request \fI\%#38503\fP from jinm/issue_38472_jinm
  223660. .IP \(bu 2
  223661. 0cd9df299f Hash type fallback for file management
  223662. .UNINDENT
  223663. .IP \(bu 2
  223664. \fBPR\fP \fI\%#38457\fP: (\fI\%bshelton229\fP) Stops git.latest checking for local changes in a bare repo
  223665. @ \fI2016\-12\-30 14:28:47 UTC\fP
  223666. .INDENT 2.0
  223667. .IP \(bu 2
  223668. ed2ba4bd1b Merge pull request \fI\%#38457\fP from bshelton229/git\-latest\-head\-bug
  223669. .IP \(bu 2
  223670. 558e7a771a Stops git.latest checking for local changes in a bare repo
  223671. .UNINDENT
  223672. .IP \(bu 2
  223673. \fBPR\fP \fI\%#38385\fP: (\fI\%dragon788\fP) Use unambigous long names with double dashes
  223674. @ \fI2016\-12\-29 17:10:48 UTC\fP
  223675. .INDENT 2.0
  223676. .IP \(bu 2
  223677. 36e21b22cb Merge pull request \fI\%#38385\fP from dragon788/2016.3\-double\-dash
  223678. .IP \(bu 2
  223679. 86c4b56f47 Newline for lint compat
  223680. .IP \(bu 2
  223681. 9d9b686057 Address review comments, consistency of quotes
  223682. .IP \(bu 2
  223683. df9bd5e7f9 Use unambigous long names with double dashes
  223684. .UNINDENT
  223685. .IP \(bu 2
  223686. \fBISSUE\fP \fI\%#38209\fP: (\fI\%limited\fP) Accepting a minion causes tornado to exit (refs: \fI\%#38474\fP)
  223687. .IP \(bu 2
  223688. \fBPR\fP \fI\%#38474\fP: (\fI\%cachedout\fP) Allow an existing ioloop to be passed to salt\-key
  223689. @ \fI2016\-12\-29 16:28:51 UTC\fP
  223690. .INDENT 2.0
  223691. .IP \(bu 2
  223692. 59f2560d88 Merge pull request \fI\%#38474\fP from cachedout/key_loop
  223693. .IP \(bu 2
  223694. de504538e1 Allow an existing ioloop to be passed to salt\-key
  223695. .UNINDENT
  223696. .IP \(bu 2
  223697. \fBISSUE\fP \fI\%#38438\fP: (\fI\%jf\fP) file.line with mode=delete breaks on empty file (refs: \fI\%#38467\fP)
  223698. .IP \(bu 2
  223699. \fBPR\fP \fI\%#38467\fP: (\fI\%gtmanfred\fP) file.line fail with mode=delete
  223700. @ \fI2016\-12\-28 20:00:33 UTC\fP
  223701. .INDENT 2.0
  223702. .IP \(bu 2
  223703. 3d0c752acd Merge pull request \fI\%#38467\fP from gtmanfred/2016.3
  223704. .IP \(bu 2
  223705. 7b7c6b3878 file.line fail with mode=delete
  223706. .UNINDENT
  223707. .IP \(bu 2
  223708. \fBPR\fP \fI\%#38434\fP: (\fI\%slinn0\fP) Make sysctl.persist fail when failing to set a value into the running kernel
  223709. @ \fI2016\-12\-27 15:37:53 UTC\fP
  223710. .INDENT 2.0
  223711. .IP \(bu 2
  223712. 940025d5c4 Merge pull request \fI\%#38434\fP from slinn0/issue_38433_fixes
  223713. .IP \(bu 2
  223714. 22af87a3fc Fixes for \fI\%https://github.com/saltstack/salt/issues/38433\fP
  223715. .IP \(bu 2
  223716. \fBPR\fP \fI\%#38421\fP: (\fI\%rallytime\fP) Update deprecation notices to the correct version
  223717. .IP \(bu 2
  223718. \fBPR\fP \fI\%#38420\fP: (\fI\%rallytime\fP) Removed various deprecation notices from salt/modules/* files (refs: \fI\%#38421\fP)
  223719. .UNINDENT
  223720. .IP \(bu 2
  223721. \fBISSUE\fP \fI\%#38282\fP: (\fI\%sash\-kan\fP) file.managed fails when file (which contains utf\-characters in the name) exists (refs: \fI\%#38415\fP)
  223722. .INDENT 2.0
  223723. .IP \(bu 2
  223724. \fBPR\fP \fI\%#38415\fP: (\fI\%terminalmage\fP) file.managed: Fix failure when filename contains unicode chars
  223725. .UNINDENT
  223726. .IP \(bu 2
  223727. \fBPR\fP \fI\%#38419\fP: (\fI\%Ch3LL\fP) fix scsci docs example
  223728. @ \fI2016\-12\-22 18:57:51 UTC\fP
  223729. .INDENT 2.0
  223730. .IP \(bu 2
  223731. 2cdb59d055 Merge pull request \fI\%#38419\fP from Ch3LL/fix_doc_scsi
  223732. .IP \(bu 2
  223733. 234043b8bb fix scsci docs example
  223734. .IP \(bu 2
  223735. \fBPR\fP \fI\%#38407\fP: (\fI\%terminalmage\fP) Improve pillar documentation
  223736. .UNINDENT
  223737. .IP \(bu 2
  223738. \fBISSUE\fP \fI\%#38372\fP: (\fI\%fanirama\fP) Issue with cron.file. Source: salt://path/to/crontab_file not found (refs: \fI\%#38398\fP)
  223739. .IP \(bu 2
  223740. \fBPR\fP \fI\%#38398\fP: (\fI\%terminalmage\fP) Fix call to file.get_managed in cron.file state
  223741. @ \fI2016\-12\-22 16:46:14 UTC\fP
  223742. .INDENT 2.0
  223743. .IP \(bu 2
  223744. 423b1fddff Merge pull request \fI\%#38398\fP from terminalmage/issue38372
  223745. .IP \(bu 2
  223746. c80dbaa914 Fix call to file.get_managed in cron.file state
  223747. .IP \(bu 2
  223748. \fBPR\fP \fI\%#38382\fP: (\fI\%heewa\fP) Fix http.query when result has no text
  223749. .UNINDENT
  223750. .IP \(bu 2
  223751. \fBPR\fP \fI\%#38390\fP: (\fI\%meaksh\fP) Add "try\-restart" to fix autorestarting on SUSE systems
  223752. @ \fI2016\-12\-21 16:06:24 UTC\fP
  223753. .INDENT 2.0
  223754. .IP \(bu 2
  223755. b74b5c7d38 Merge pull request \fI\%#38390\fP from meaksh/2016.3\-fix\-try\-restart\-for\-autorestarting\-on\-SUSE\-systems
  223756. .IP \(bu 2
  223757. de6ec05ec0 add try\-restart to fix autorestarting on SUSE systems
  223758. .UNINDENT
  223759. .IP \(bu 2
  223760. \fBPR\fP \fI\%#38221\fP: (\fI\%UtahDave\fP) Fix default returner
  223761. @ \fI2016\-12\-20 20:34:36 UTC\fP
  223762. .INDENT 2.0
  223763. .IP \(bu 2
  223764. 2c3a39760a Merge pull request \fI\%#38221\fP from UtahDave/fix_default_returner
  223765. .IP \(bu 2
  223766. 385640765b remove a blank line to satisfy linter
  223767. .IP \(bu 2
  223768. 9c248aa14c validate return opt, remove default.
  223769. .IP \(bu 2
  223770. 8bb37f9fe7 specify allowed types and default for "returner"
  223771. .IP \(bu 2
  223772. 11863a4bfe add examples of default minion returners
  223773. .IP \(bu 2
  223774. e7c6012655 add support for default returners using \fIreturn\fP
  223775. .UNINDENT
  223776. .IP \(bu 2
  223777. \fBPR\fP \fI\%#38288\fP: (\fI\%terminalmage\fP) archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  223778. @ \fI2016\-12\-18 13:07:11 UTC\fP
  223779. .INDENT 2.0
  223780. .IP \(bu 2
  223781. 09d9cff992 Merge pull request \fI\%#38288\fP from terminalmage/archive\-extracted\-local\-source\-2016.3
  223782. .IP \(bu 2
  223783. 845e3d0e75 Update tests to reflect change in cache behavior
  223784. .IP \(bu 2
  223785. 5a08d7c70a archive.extracted: don\(aqt try to cache local sources (2016.3 branch)
  223786. .UNINDENT
  223787. .IP \(bu 2
  223788. \fBPR\fP \fI\%#38312\fP: (\fI\%cro\fP) Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy
  223789. @ \fI2016\-12\-18 12:39:01 UTC\fP
  223790. .INDENT 2.0
  223791. .IP \(bu 2
  223792. bf37667f8a Merge pull request \fI\%#38312\fP from cro/proxy_config_in_cfg
  223793. .IP \(bu 2
  223794. 2006c4000e Typo
  223795. .IP \(bu 2
  223796. 689d95b10f Backport feature allowing proxy config to live in pillar OR /etc/salt/proxy.
  223797. .UNINDENT
  223798. .IP \(bu 2
  223799. \fBISSUE\fP \fI\%#12788\fP: (\fI\%whiteinge\fP) Comb through docs to replace :doc: roles with :ref: (refs: \fI\%#38320\fP)
  223800. .IP \(bu 2
  223801. \fBPR\fP \fI\%#38320\fP: (\fI\%rallytime\fP) Cleanup doc internal markup references
  223802. @ \fI2016\-12\-18 12:31:28 UTC\fP
  223803. .INDENT 2.0
  223804. .IP \(bu 2
  223805. c83db5a785 Merge pull request \fI\%#38320\fP from rallytime/cleanup\-doc\-refs
  223806. .IP \(bu 2
  223807. 62978cb7a0 Don\(aqt check the doc/conf.py file for doc markup refs
  223808. .IP \(bu 2
  223809. 770e732d76 Add a unit test to search for new doc markup refs
  223810. .IP \(bu 2
  223811. 5c42a361a0 Remove ":doc:" references from all doc/topics/installation/* files
  223812. .IP \(bu 2
  223813. 23bce1c929 Remove ":doc:" references from all doc/topics/releases/* files
  223814. .IP \(bu 2
  223815. 4aafa41d22 Remove ":doc:" references from a bunch of doc/* files
  223816. .IP \(bu 2
  223817. 02bfe7912c Remove more ":doc:" references from doc/* files
  223818. .IP \(bu 2
  223819. 6e32267d0c Remove ":doc:" references in salt/* files
  223820. .IP \(bu 2
  223821. \fBPR\fP \fI\%#38281\fP: (\fI\%mikejford\fP) Add nick to args for create_multi
  223822. .UNINDENT
  223823. .IP \(bu 2
  223824. \fBISSUE\fP \fI\%#38290\fP: (\fI\%dragon788\fP) Need to use machine automation friendly output (refs: \fI\%#38313\fP)
  223825. .IP \(bu 2
  223826. \fBPR\fP \fI\%#38313\fP: (\fI\%dragon788\fP) 2016.3 chocolatey fix
  223827. @ \fI2016\-12\-16 17:20:39 UTC\fP
  223828. .INDENT 2.0
  223829. .IP \(bu 2
  223830. 235682b1e6 Merge pull request \fI\%#38313\fP from dragon788/2016.3\-chocolatey\-fix
  223831. .IP \(bu 2
  223832. 1f5fc17551 Use machine readable output for list
  223833. .IP \(bu 2
  223834. cdbd2fbe3c Added limit\-output to eliminate false packages
  223835. .UNINDENT
  223836. .IP \(bu 2
  223837. \fBISSUE\fP \fI\%#38174\fP: (\fI\%NickDubelman\fP) [syndic] Why can\(aqt a syndic node signal when all of its minions have returned? (refs: \fI\%#38279\fP)
  223838. .IP \(bu 2
  223839. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#38279\fP)
  223840. .IP \(bu 2
  223841. \fBPR\fP \fI\%#38279\fP: (\fI\%rallytime\fP) Add docs for syndic_wait setting
  223842. @ \fI2016\-12\-15 18:30:31 UTC\fP
  223843. .INDENT 2.0
  223844. .IP \(bu 2
  223845. 9e78ddc80e Merge pull request \fI\%#38279\fP from rallytime/fix\-38174
  223846. .IP \(bu 2
  223847. 4a62d01577 Add docs for syndic_wait setting
  223848. .UNINDENT
  223849. .IP \(bu 2
  223850. \fBPR\fP \fI\%#38248\fP: (\fI\%meaksh\fP) Successfully exit of salt\-api child processes when SIGTERM is received
  223851. @ \fI2016\-12\-15 09:16:27 UTC\fP
  223852. .INDENT 2.0
  223853. .IP \(bu 2
  223854. fc9e1dff35 Merge pull request \fI\%#38248\fP from meaksh/salt\-api\-successfully\-close\-child\-processes
  223855. .IP \(bu 2
  223856. ee6eae9855 Successfully exit of salt\-api child processes when SIGTERM.
  223857. .UNINDENT
  223858. .IP \(bu 2
  223859. \fBPR\fP \fI\%#38254\fP: (\fI\%terminalmage\fP) Also check if pillarenv is in opts
  223860. @ \fI2016\-12\-15 09:10:24 UTC\fP
  223861. .INDENT 2.0
  223862. .IP \(bu 2
  223863. 3c718ed35e Merge pull request \fI\%#38254\fP from terminalmage/check\-pillarenv
  223864. .IP \(bu 2
  223865. fa9ad311c6 Also check if pillarenv is in opts
  223866. .IP \(bu 2
  223867. \fBPR\fP \fI\%#38256\fP: (\fI\%rallytime\fP) [2016.3] Bump latest release version to 2016.11.1
  223868. .UNINDENT
  223869. .IP \(bu 2
  223870. \fBPR\fP \fI\%#38198\fP: (\fI\%vutny\fP) Add missing requirements for running unit tests: libcloud and boto3
  223871. @ \fI2016\-12\-13 14:12:20 UTC\fP
  223872. .INDENT 2.0
  223873. .IP \(bu 2
  223874. 004e46afe7 Merge pull request \fI\%#38198\fP from vutny/unit\-tests\-require\-libcloud\-boto3
  223875. .IP \(bu 2
  223876. a6098bac1a Remove note about SaltTesting installation, now it is in the requirements
  223877. .IP \(bu 2
  223878. 004bff113e Add missing requirements for running unit tests: libcloud and boto3
  223879. .UNINDENT
  223880. .IP \(bu 2
  223881. \fBPR\fP \fI\%#38213\fP: (\fI\%rallytime\fP) Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  223882. @ \fI2016\-12\-13 12:05:01 UTC\fP
  223883. .INDENT 2.0
  223884. .IP \(bu 2
  223885. 9d497bc74c Merge pull request \fI\%#38213\fP from rallytime/skip\-tls\-test
  223886. .IP \(bu 2
  223887. bdb807fc7c Skip test_cert_info tls unit test on pyOpenSSL upstream errors
  223888. .UNINDENT
  223889. .IP \(bu 2
  223890. \fBPR\fP \fI\%#38224\fP: (\fI\%whiteinge\fP) Allow CORS OPTIONS requests to be unauthenticated
  223891. @ \fI2016\-12\-13 12:02:30 UTC\fP
  223892. .INDENT 2.0
  223893. .IP \(bu 2
  223894. 203109dd17 Merge pull request \fI\%#38224\fP from whiteinge/cors\-options\-unauthed
  223895. .IP \(bu 2
  223896. de4d3227ab Allow CORS OPTIONS requests to be unauthenticated
  223897. .UNINDENT
  223898. .IP \(bu 2
  223899. \fBPR\fP \fI\%#38223\fP: (\fI\%whiteinge\fP) Add root_dir to salt\-api file paths
  223900. @ \fI2016\-12\-13 07:44:19 UTC\fP
  223901. .INDENT 2.0
  223902. .IP \(bu 2
  223903. \fBPR\fP \fI\%#37272\fP: (\fI\%vutny\fP) Get default logging level and log file from default opts dict (refs: \fI\%#38223\fP)
  223904. .IP \(bu 2
  223905. 721a5feccd Merge pull request \fI\%#38223\fP from whiteinge/salt\-api\-root_dirs
  223906. .IP \(bu 2
  223907. bfbf390c0e Add root_dir to salt\-api file paths
  223908. .UNINDENT
  223909. .IP \(bu 2
  223910. \fBISSUE\fP \fI\%#38162\fP: (\fI\%747project\fP) git_pillar does not detect changes to remote repository when told to update (refs: \fI\%#38191\fP)
  223911. .IP \(bu 2
  223912. \fBPR\fP \fI\%#38191\fP: (\fI\%terminalmage\fP) Clarify the fact that git_pillar.update does not fast\-forward
  223913. @ \fI2016\-12\-12 09:45:48 UTC\fP
  223914. .INDENT 2.0
  223915. .IP \(bu 2
  223916. 70f7d22ad6 Merge pull request \fI\%#38191\fP from terminalmage/issue38162
  223917. .IP \(bu 2
  223918. 1ae543a98a Clarify the fact that git_pillar.update does not fast\-forward
  223919. .UNINDENT
  223920. .IP \(bu 2
  223921. \fBPR\fP \fI\%#38194\fP: (\fI\%vutny\fP) Document the requirements for running ZeroMQ\-based integration tests
  223922. @ \fI2016\-12\-12 09:42:11 UTC\fP
  223923. .INDENT 2.0
  223924. .IP \(bu 2
  223925. 28171cbfc5 Merge pull request \fI\%#38194\fP from vutny/integration\-test\-requirements\-doc
  223926. .IP \(bu 2
  223927. e9f419ff64 Document the requirements for running ZeroMQ\-based integration tests
  223928. .UNINDENT
  223929. .IP \(bu 2
  223930. \fBPR\fP \fI\%#38185\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38181\fP to 2016.3
  223931. @ \fI2016\-12\-09 22:27:44 UTC\fP
  223932. .INDENT 2.0
  223933. .IP \(bu 2
  223934. \fBPR\fP \fI\%#38181\fP: (\fI\%rallytime\fP) Reset socket default timeout to None (fixes daemons_tests failures) (refs: \fI\%#38185\fP)
  223935. .IP \(bu 2
  223936. a4ef037ab1 Merge pull request \fI\%#38185\fP from rallytime/bp\-38181
  223937. .IP \(bu 2
  223938. 609f814454 Reset socket default timeout to None (fixes daemons_tests failures)
  223939. .UNINDENT
  223940. .IP \(bu 2
  223941. \fBPR\fP \fI\%#38163\fP: (\fI\%Ch3LL\fP) enabled ec2 cloud tests
  223942. @ \fI2016\-12\-09 18:01:57 UTC\fP
  223943. .INDENT 2.0
  223944. .IP \(bu 2
  223945. 65b2ad7b14 Merge pull request \fI\%#38163\fP from Ch3LL/enabled_ec2_cloud
  223946. .IP \(bu 2
  223947. be74c45463 enabled ec2 cloud tests
  223948. .UNINDENT
  223949. .IP \(bu 2
  223950. \fBPR\fP \fI\%#38177\fP: (\fI\%vutny\fP) Correct \fIcp.get_file_str\fP docstring and add integration tests
  223951. @ \fI2016\-12\-09 16:55:35 UTC\fP
  223952. .INDENT 2.0
  223953. .IP \(bu 2
  223954. b63f74e034 Merge pull request \fI\%#38177\fP from vutny/fix\-cp\-get\-file\-str
  223955. .IP \(bu 2
  223956. a449980672 Correct \fIcp.get_file_str\fP docstring and add integration tests
  223957. .UNINDENT
  223958. .IP \(bu 2
  223959. \fBPR\fP \fI\%#38153\fP: (\fI\%vutny\fP) Master config includes may contain errors and be safely skipped
  223960. @ \fI2016\-12\-08 17:43:34 UTC\fP
  223961. .INDENT 2.0
  223962. .IP \(bu 2
  223963. 7596313be0 Merge pull request \fI\%#38153\fP from vutny/master\-includes\-error\-tolerance
  223964. .IP \(bu 2
  223965. cd0154ee93 Master config includes may contain errors and be safely skipped
  223966. .IP \(bu 2
  223967. \fBPR\fP \fI\%#38134\fP: (\fI\%rallytime\fP) Skip daemon unit tests when running on Python 2.6
  223968. .UNINDENT
  223969. .IP \(bu 2
  223970. \fBISSUE\fP \fI\%#38091\fP: (\fI\%tjyang\fP) [WARNING ] salt.loaded.int.module.zenoss.__virtual__() is wrongly returning \fINone\fP\&. (refs: \fI\%#38102\fP)
  223971. .IP \(bu 2
  223972. \fBPR\fP \fI\%#38102\fP: (\fI\%rallytime\fP) Add False + msg tuple return if requests is missing for zenoss module
  223973. @ \fI2016\-12\-07 13:24:37 UTC\fP
  223974. .INDENT 2.0
  223975. .IP \(bu 2
  223976. d3d98fd4eb Merge pull request \fI\%#38102\fP from rallytime/fix\-38091
  223977. .IP \(bu 2
  223978. 4f79d5a0d1 Add False + msg tuple return if requests is missing for zenoss module
  223979. .UNINDENT
  223980. .IP \(bu 2
  223981. \fBISSUE\fP \fI\%#36707\fP: (\fI\%do3meli\fP) slow FreeBSD sysctl module with test=true (refs: \fI\%#36794\fP)
  223982. .IP \(bu 2
  223983. \fBPR\fP \fI\%#38104\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36794\fP to 2016.3
  223984. @ \fI2016\-12\-07 13:23:48 UTC\fP
  223985. .INDENT 2.0
  223986. .IP \(bu 2
  223987. \fBPR\fP \fI\%#36794\fP: (\fI\%do3meli\fP) FreeBSD sysctl module now handels config_file parameter in show method (refs: \fI\%#38104\fP)
  223988. .IP \(bu 2
  223989. 8c8cbc2734 Merge pull request \fI\%#38104\fP from rallytime/bp\-36794
  223990. .IP \(bu 2
  223991. c906c8a0d5 Pylint fixes
  223992. .IP \(bu 2
  223993. da3ebf83e6 FreeBSD sysctl module now handels config_file parameter in show method
  223994. .UNINDENT
  223995. .IP \(bu 2
  223996. \fBISSUE\fP \fI\%#35342\fP: (\fI\%morganwillcock\fP) win_pkg: refresh_db doesn\(aqt remove cached items which have been renamed or removed (refs: \fI\%#38083\fP)
  223997. .IP \(bu 2
  223998. \fBPR\fP \fI\%#38083\fP: (\fI\%twangboy\fP) Only delete .sls files from winrepo\-ng [DO NOT MERGE FORWARD]
  223999. @ \fI2016\-12\-06 14:13:35 UTC\fP
  224000. .INDENT 2.0
  224001. .IP \(bu 2
  224002. fbc87769b9 Merge pull request \fI\%#38083\fP from twangboy/fix_refresh_db
  224003. .IP \(bu 2
  224004. 978af6d83c Remove only .sls files from the cached winrepo\-ng
  224005. .UNINDENT
  224006. .IP \(bu 2
  224007. \fBPR\fP \fI\%#38059\fP: (\fI\%rallytime\fP) Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  224008. @ \fI2016\-12\-04 04:18:41 UTC\fP
  224009. .INDENT 2.0
  224010. .IP \(bu 2
  224011. \fBPR\fP \fI\%#38057\fP: (\fI\%rallytime\fP) [2016.11] Merge forward from 2016.3 to 2016.11 (refs: \fI\%#38059\fP)
  224012. .IP \(bu 2
  224013. \fBPR\fP \fI\%#38034\fP: (\fI\%cachedout\fP) Modify daemons test to use multiprocessing (refs: \fI\%#38059\fP)
  224014. .IP \(bu 2
  224015. 9dcfdeef6b Merge pull request \fI\%#38059\fP from rallytime/daemons\-test\-fix
  224016. .IP \(bu 2
  224017. eb372b27d8 Add missing "not" statement: The last syndic test should assertFalse()
  224018. .IP \(bu 2
  224019. 4e10f8e018 Call exec_test for the Syndic daemon in tests.unit.daemons_test.py
  224020. .UNINDENT
  224021. .IP \(bu 2
  224022. \fBISSUE\fP \fI\%#37939\fP: (\fI\%Talkless\fP) file.comment always report changes in test=True mode (refs: \fI\%#38039\fP)
  224023. .IP \(bu 2
  224024. \fBPR\fP \fI\%#38039\fP: (\fI\%rallytime\fP) Check to see if a line is already commented before moving on
  224025. @ \fI2016\-12\-02 20:08:35 UTC\fP
  224026. .INDENT 2.0
  224027. .IP \(bu 2
  224028. 9cd42b9b3f Merge pull request \fI\%#38039\fP from rallytime/fix\-37939
  224029. .IP \(bu 2
  224030. 1da7aacfbe Update unit tests to account for additional file.search call
  224031. .IP \(bu 2
  224032. 8a685b1820 Check to see if a line is already commented before moving on
  224033. .IP \(bu 2
  224034. f2c045520d Write an integration test demonstrating the issue
  224035. .UNINDENT
  224036. .IP \(bu 2
  224037. \fBISSUE\fP \fI\%#38037\fP: (\fI\%dmurphy18\fP) pkg.latest and yumpkg.latest_version return incorrect package versions 2016.3 and 2016.11 (refs: \fI\%#38045\fP)
  224038. .IP \(bu 2
  224039. \fBPR\fP \fI\%#38045\fP: (\fI\%terminalmage\fP) yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  224040. @ \fI2016\-12\-02 20:07:38 UTC\fP
  224041. .INDENT 2.0
  224042. .IP \(bu 2
  224043. a34a763984 Merge pull request \fI\%#38045\fP from terminalmage/issue38037
  224044. .IP \(bu 2
  224045. 65289503d9 Simplify logic for matching desired pkg arch with actual pkg arch
  224046. .IP \(bu 2
  224047. 3babbcda94 yumpkg.py: don\(aqt include non\-upgrade versions found by "yum list available"
  224048. .IP \(bu 2
  224049. \fBPR\fP \fI\%#38034\fP: (\fI\%cachedout\fP) Modify daemons test to use multiprocessing (refs: \fI\%#38059\fP)
  224050. .UNINDENT
  224051. .IP \(bu 2
  224052. \fBPR\fP \fI\%#37995\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224053. @ \fI2016\-11\-30 20:12:55 UTC\fP
  224054. .INDENT 2.0
  224055. .IP \(bu 2
  224056. 6942d5d95b Merge pull request \fI\%#37995\fP from rallytime/merge\-2016.3
  224057. .IP \(bu 2
  224058. b44e17921c Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224059. .INDENT 2.0
  224060. .IP \(bu 2
  224061. 7a7e36728f Merge pull request \fI\%#37978\fP from terminalmage/ext_pillar_first\-docs
  224062. .INDENT 2.0
  224063. .IP \(bu 2
  224064. 61ed9a8657 Add clarifying language to ext_pillar_first docs
  224065. .UNINDENT
  224066. .UNINDENT
  224067. .IP \(bu 2
  224068. \fBPR\fP \fI\%#38002\fP: (\fI\%laleocen\fP) fix broken yaml code block
  224069. .UNINDENT
  224070. .IP \(bu 2
  224071. \fBISSUE\fP \fI\%#35088\fP: (\fI\%Modulus\fP) salt/cloud/ec2.py encoding problems. (refs: \fI\%#37912\fP)
  224072. .IP \(bu 2
  224073. \fBPR\fP \fI\%#37912\fP: (\fI\%attiasr\fP) fix encoding problem aws responses
  224074. @ \fI2016\-11\-30 18:10:30 UTC\fP
  224075. .INDENT 2.0
  224076. .IP \(bu 2
  224077. 3dd45fbedf Merge pull request \fI\%#37912\fP from attiasr/fix_aws_response_encoding
  224078. .IP \(bu 2
  224079. ba4ec4e7f1 use Requests result encoding to encode the text
  224080. .IP \(bu 2
  224081. abe4eb3b98 fix encoding problem aws responses
  224082. .UNINDENT
  224083. .IP \(bu 2
  224084. \fBPR\fP \fI\%#37950\fP: (\fI\%vutny\fP) Set default Salt Master address for a Syndic (like for a Minion)
  224085. @ \fI2016\-11\-30 18:09:04 UTC\fP
  224086. .INDENT 2.0
  224087. .IP \(bu 2
  224088. 69a74a4d2d Merge pull request \fI\%#37950\fP from vutny/fix\-starting\-up\-syndic
  224089. .IP \(bu 2
  224090. 7d9bc9abce syndic_master: correct default value, documentation and example config
  224091. .IP \(bu 2
  224092. 92a7c7ed1b Set default Salt Master address for a Syndic (like for a Minion)
  224093. .IP \(bu 2
  224094. \fBPR\fP \fI\%#37964\fP: (\fI\%terminalmage\fP) Add clarification on expr_form usage and future deprecation
  224095. .UNINDENT
  224096. .IP \(bu 2
  224097. \fBISSUE\fP \fI\%#37867\fP: (\fI\%tobiasBora\fP) Bug into lsb_release that crash salt (refs: \fI\%#37962\fP)
  224098. .INDENT 2.0
  224099. .IP \(bu 2
  224100. \fBPR\fP \fI\%#37962\fP: (\fI\%cachedout\fP) Catch possible exception from lsb_release
  224101. .UNINDENT
  224102. .IP \(bu 2
  224103. \fBISSUE\fP \fI\%#37945\fP: (\fI\%gstachowiak\fP) Missing exception handling in salt.master.Maintenance. Process never completes. (refs: \fI\%#37961\fP)
  224104. .INDENT 2.0
  224105. .IP \(bu 2
  224106. \fBPR\fP \fI\%#37961\fP: (\fI\%cachedout\fP) Handle empty tokens safely
  224107. .UNINDENT
  224108. .IP \(bu 2
  224109. \fBPR\fP \fI\%#37272\fP: (\fI\%vutny\fP) Get default logging level and log file from default opts dict (refs: \fI\%#38223\fP)
  224110. @ \fI2016\-11\-28 23:04:20 UTC\fP
  224111. .INDENT 2.0
  224112. .IP \(bu 2
  224113. ea46639ce7 Merge pull request \fI\%#37272\fP from vutny/fix\-getting\-default\-logging\-opts
  224114. .IP \(bu 2
  224115. e5ce52388a Fix description in the Salt Syndic usage info
  224116. .IP \(bu 2
  224117. 518a3dd7ee Add unit tests for Salt parsers processing logging options
  224118. .IP \(bu 2
  224119. 83d6a44254 Add \fIssh_log_file\fP option to master config and documentation
  224120. .IP \(bu 2
  224121. c8a0915460 Fix configuration example and documentation for \fIsyndic_log_file\fP option
  224122. .IP \(bu 2
  224123. e64dd3ed6b Correct default attributes for various parser classes
  224124. .IP \(bu 2
  224125. 82a2e216b3 Fix default usage string for Salt command line programs
  224126. .IP \(bu 2
  224127. 45dffa292f Fix readding and updating logfile and pidfile config options for Salt API
  224128. .IP \(bu 2
  224129. f47253c21b Fix reading and applying Salt Cloud default configuration
  224130. .IP \(bu 2
  224131. fad5bec936 Work with a copy of default opts dictionaries
  224132. .IP \(bu 2
  224133. b7c24811e5 Fix \fIlog_level_logfile\fP config value type
  224134. .IP \(bu 2
  224135. 1bd76a1d96 Fix setting temporary log level if CLI option omitted
  224136. .IP \(bu 2
  224137. 121848cc77 Fix obtaining \fIlog_granular_levels\fP config setting
  224138. .IP \(bu 2
  224139. 44cf07fec2 Make CLI options take precedence for setting up logfile_logger
  224140. .IP \(bu 2
  224141. 61afaf1792 Fix setting option attributes when processing \fIlog_level\fP and \fIlog_file\fP
  224142. .IP \(bu 2
  224143. 3c60e2388e Fix processing of \fIlog_level_logfile\fP config setting
  224144. .IP \(bu 2
  224145. 55a0af5bbd Use attribute functions for getting/setting options and config values
  224146. .IP \(bu 2
  224147. c25f2d091e Fix getting Salt API default logfile option
  224148. .IP \(bu 2
  224149. f2422373c1 Remove processing of unused and undocumented \fIcli_*_log_*\fP config options
  224150. .IP \(bu 2
  224151. 2065e8311c Get default logging level and file from default opts dict
  224152. .UNINDENT
  224153. .IP \(bu 2
  224154. \fBPR\fP \fI\%#37925\fP: (\fI\%kontrolld\fP) Fix missing ipv6 options centos network
  224155. @ \fI2016\-11\-28 22:38:43 UTC\fP
  224156. .INDENT 2.0
  224157. .IP \(bu 2
  224158. f2f957da6c Merge pull request \fI\%#37925\fP from kontrolld/add\-ipv6\-centos\-network
  224159. .IP \(bu 2
  224160. ac2b477412 Adding IPv6 functionality for CentOS /etc/sysconfig/network
  224161. .UNINDENT
  224162. .IP \(bu 2
  224163. \fBISSUE\fP \fI\%#37059\fP: (\fI\%basepi\fP) Beacon fileserver operations cause scheduled jobs with fileserver operations to hang (refs: \fI\%#37899\fP)
  224164. .IP \(bu 2
  224165. \fBPR\fP \fI\%#37899\fP: (\fI\%DmitryKuzmenko\fP) Clear functions context in schedule tasks for ZeroMQ.
  224166. @ \fI2016\-11\-28 22:23:45 UTC\fP
  224167. .INDENT 2.0
  224168. .IP \(bu 2
  224169. c07ad11279 Merge pull request \fI\%#37899\fP from DSRCorporation/bugs/37059_schedule_task_hang
  224170. .IP \(bu 2
  224171. 9497748546 Clear functions context in schedule tasks for ZeroMQ.
  224172. .UNINDENT
  224173. .IP \(bu 2
  224174. \fBISSUE\fP \fI\%#37737\fP: (\fI\%b\-harper\fP) python client api CloudClient multiple calls needed (refs: \fI\%#37928\fP)
  224175. .IP \(bu 2
  224176. \fBPR\fP \fI\%#37928\fP: (\fI\%techhat\fP) Don\(aqt modify self.opts directly
  224177. @ \fI2016\-11\-28 21:07:40 UTC\fP
  224178. .INDENT 2.0
  224179. .IP \(bu 2
  224180. a55519db40 Merge pull request \fI\%#37928\fP from techhat/issue37737
  224181. .IP \(bu 2
  224182. a09a60e89b Don\(aqt modify self.opts directly
  224183. .UNINDENT
  224184. .IP \(bu 2
  224185. \fBPR\fP \fI\%#37929\fP: (\fI\%gtmanfred\fP) add list_nodes_min to nova driver
  224186. @ \fI2016\-11\-28 21:05:40 UTC\fP
  224187. .INDENT 2.0
  224188. .IP \(bu 2
  224189. 9d17f1ce90 Merge pull request \fI\%#37929\fP from gtmanfred/2016.3
  224190. .IP \(bu 2
  224191. c7d2c73503 add list_nodes_min to nova driver
  224192. .UNINDENT
  224193. .IP \(bu 2
  224194. \fBPR\fP \fI\%#37926\fP: (\fI\%kontrolld\fP) Fixes no IPv6 functionality in /etc/sysconfig/network
  224195. @ \fI2016\-11\-28 20:40:00 UTC\fP
  224196. .INDENT 2.0
  224197. .IP \(bu 2
  224198. 3bb743b59f Merge pull request \fI\%#37926\fP from kontrolld/fix\-ipv6\-centos\-network
  224199. .IP \(bu 2
  224200. 3ed42e5b44 updated
  224201. .IP \(bu 2
  224202. 3b3bc4f239 Fixes no IPv6 functionality in /etc/sysconfig/network
  224203. .UNINDENT
  224204. .IP \(bu 2
  224205. \fBPR\fP \fI\%#37921\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224206. @ \fI2016\-11\-28 19:54:40 UTC\fP
  224207. .INDENT 2.0
  224208. .IP \(bu 2
  224209. 271170a9f3 Merge pull request \fI\%#37921\fP from rallytime/merge\-2016.3
  224210. .IP \(bu 2
  224211. 523a67c422 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224212. .INDENT 2.0
  224213. .IP \(bu 2
  224214. 4cdc6cf5ec Update earlier release channels\(aq docs with Carbon release notes (\fI\%#37914\fP)
  224215. .IP \(bu 2
  224216. d31491a7fe [2015.8] Update version numbers in doc config for 2016.11.0 release (\fI\%#37918\fP)
  224217. .UNINDENT
  224218. .UNINDENT
  224219. .IP \(bu 2
  224220. \fBPR\fP \fI\%#37924\fP: (\fI\%cachedout\fP) Update test for new gem ver
  224221. @ \fI2016\-11\-28 18:17:53 UTC\fP
  224222. .INDENT 2.0
  224223. .IP \(bu 2
  224224. 6cd6429ac0 Merge pull request \fI\%#37924\fP from cachedout/fix_gem_states
  224225. .IP \(bu 2
  224226. 894cca3427 Update test for new gem ver
  224227. .UNINDENT
  224228. .IP \(bu 2
  224229. \fBPR\fP \fI\%#37916\fP: (\fI\%rallytime\fP) [2016.3] Update version numbers in doc config for 2016.11.0 release
  224230. @ \fI2016\-11\-28 17:09:08 UTC\fP
  224231. .INDENT 2.0
  224232. .IP \(bu 2
  224233. c35ba1f390 Merge pull request \fI\%#37916\fP from rallytime/doc\-update\-2016.3
  224234. .IP \(bu 2
  224235. bd40592289 [2016.3] Update version numbers in doc config for 2016.11.0 release
  224236. .UNINDENT
  224237. .IP \(bu 2
  224238. \fBISSUE\fP \fI\%#37287\fP: (\fI\%aaronm\-cloudtek\fP) salt.states.ddns.present: \(aqNS\(aq record type always returns as changed (refs: \fI\%#37785\fP)
  224239. .IP \(bu 2
  224240. \fBPR\fP \fI\%#37785\fP: (\fI\%aaronm\-cloudtek\fP) respect trailing dot in ddns name parameter
  224241. @ \fI2016\-11\-28 14:02:10 UTC\fP
  224242. .INDENT 2.0
  224243. .IP \(bu 2
  224244. e13a2488c8 Merge pull request \fI\%#37785\fP from Cloudtek/ddns\-respect\-trailing\-dot
  224245. .IP \(bu 2
  224246. 262e3b3697 respect trailing dot in ddns name parameter
  224247. .UNINDENT
  224248. .IP \(bu 2
  224249. \fBISSUE\fP \fI\%#37870\fP: (\fI\%fj40crawler\fP) salt.states.augeas.change returns None when test=True (refs: \fI\%#37895\fP)
  224250. .IP \(bu 2
  224251. \fBPR\fP \fI\%#37895\fP: (\fI\%fj40crawler\fP) Change return value for salt/states/augeas.py to be True instead of N…
  224252. @ \fI2016\-11\-28 13:49:27 UTC\fP
  224253. .INDENT 2.0
  224254. .IP \(bu 2
  224255. c03b389422 Merge pull request \fI\%#37895\fP from fj40crawler/fix\-augeas\-return\-for\-test
  224256. .IP \(bu 2
  224257. ddc238df36 Fixed augeas_test.py to match True v.s. None for test_change_in_test_mode
  224258. .IP \(bu 2
  224259. ef75c459c0 Merge branch \(aq2016.3\(aq of github.com:saltstack/salt into fix\-augeas\-return\-for\-test
  224260. .IP \(bu 2
  224261. b0fe0cd256 Change return value for salt/states/augeas.py to be True instead of None for cases where salt is run with test=True. Fixes \fI\%#37870\fP
  224262. .UNINDENT
  224263. .IP \(bu 2
  224264. \fBPR\fP \fI\%#37907\fP: (\fI\%Talkless\fP) Fix server trust in test run of svn.latest
  224265. @ \fI2016\-11\-28 13:47:39 UTC\fP
  224266. .INDENT 2.0
  224267. .IP \(bu 2
  224268. fdbc31e8d8 Merge pull request \fI\%#37907\fP from Talkless/patch\-2
  224269. .IP \(bu 2
  224270. 072a319490 Fix server trust in test run of svn.latest
  224271. .UNINDENT
  224272. .IP \(bu 2
  224273. \fBPR\fP \fI\%#37896\fP: (\fI\%toanju\fP) rh networking: add missing values
  224274. @ \fI2016\-11\-27 10:30:35 UTC\fP
  224275. .INDENT 2.0
  224276. .IP \(bu 2
  224277. f39fdf443f Merge pull request \fI\%#37896\fP from toanju/2016.3
  224278. .IP \(bu 2
  224279. c95304188e rh networking: add missing values
  224280. .UNINDENT
  224281. .IP \(bu 2
  224282. \fBPR\fP \fI\%#37886\fP: (\fI\%bdrung\fP) Fix various spelling mistakes
  224283. @ \fI2016\-11\-25 02:59:36 UTC\fP
  224284. .INDENT 2.0
  224285. .IP \(bu 2
  224286. ea935c5a91 Merge pull request \fI\%#37886\fP from bdrung/fix\-typos
  224287. .IP \(bu 2
  224288. 9a51ba5c5b Fix various spelling mistakes
  224289. .UNINDENT
  224290. .IP \(bu 2
  224291. \fBISSUE\fP \fI\%#37732\fP: (\fI\%dhaines\fP) list_semod() (from modules/selinux.py) incompatible with policycoreutils\-2.5 (RHEL 7.3) (refs: \fI\%#37736\fP)
  224292. .IP \(bu 2
  224293. \fBPR\fP \fI\%#37736\fP: (\fI\%dhaines\fP) handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  224294. @ \fI2016\-11\-24 01:44:20 UTC\fP
  224295. .INDENT 2.0
  224296. .IP \(bu 2
  224297. 371b0a86d9 Merge pull request \fI\%#37736\fP from dhaines/issue\-37732
  224298. .IP \(bu 2
  224299. 7ef590a505 Update selinux.py
  224300. .IP \(bu 2
  224301. 516a67e6a3 fix indexing error
  224302. .IP \(bu 2
  224303. 4e49c1e991 fix typo
  224304. .IP \(bu 2
  224305. b16f2d8400 handle semodule version >=2.4 (\fI\%#37732\fP) and fix typo
  224306. .UNINDENT
  224307. .IP \(bu 2
  224308. \fBPR\fP \fI\%#37797\fP: (\fI\%clan\fP) check count of columns after split
  224309. @ \fI2016\-11\-24 01:28:59 UTC\fP
  224310. .INDENT 2.0
  224311. .IP \(bu 2
  224312. 87aeb66fbf Merge pull request \fI\%#37797\fP from clan/extfs
  224313. .IP \(bu 2
  224314. acf0f960ef check count of columns after split
  224315. .UNINDENT
  224316. .IP \(bu 2
  224317. \fBPR\fP \fI\%#37762\fP: (\fI\%twangboy\fP) Add pre_versions to chocolatey.installed
  224318. @ \fI2016\-11\-24 01:27:29 UTC\fP
  224319. .INDENT 2.0
  224320. .IP \(bu 2
  224321. f7c7109152 Merge pull request \fI\%#37762\fP from twangboy/fix_chocolatey_state
  224322. .IP \(bu 2
  224323. 9696b6dfa5 Use keyword args instead of relying on ordering
  224324. .IP \(bu 2
  224325. 398eaa074d Add pre_versions to the available arguments
  224326. .UNINDENT
  224327. .IP \(bu 2
  224328. \fBPR\fP \fI\%#37866\fP: (\fI\%meaksh\fP) Backport \fI\%#37149\fP \fI\%#36938\fP and \fI\%#36784\fP to 2016.3
  224329. @ \fI2016\-11\-23 21:54:17 UTC\fP
  224330. .INDENT 2.0
  224331. .IP \(bu 2
  224332. \fBPR\fP \fI\%#37857\fP: (\fI\%meaksh\fP) Backport \fI\%#37149\fP and \fI\%#36938\fP to 2015.8 (refs: \fI\%#37866\fP)
  224333. .IP \(bu 2
  224334. \fBPR\fP \fI\%#37856\fP: (\fI\%meaksh\fP) Backport \fI\%#36784\fP to 2015.8 (refs: \fI\%#37866\fP)
  224335. .IP \(bu 2
  224336. \fBPR\fP \fI\%#37149\fP: (\fI\%dincamihai\fP) Fix pkg.latest_version when latest already installed (refs: \fI\%#37857\fP, \fI\%#37866\fP)
  224337. .IP \(bu 2
  224338. \fBPR\fP \fI\%#36938\fP: (\fI\%wanparo\fP) acl.delfacl: fix position of \-X option to setfacl (refs: \fI\%#37857\fP, \fI\%#37866\fP)
  224339. .IP \(bu 2
  224340. \fBPR\fP \fI\%#36784\fP: (\fI\%moio\fP) OS grains for SLES Expanded Support (refs: \fI\%#37856\fP, \fI\%#37866\fP)
  224341. .IP \(bu 2
  224342. 56baa92d55 Merge pull request \fI\%#37866\fP from meaksh/2016.3\-bp\-37149\-36938\-36784
  224343. .IP \(bu 2
  224344. 9d8d578109 Fix pkg.latest_version when latest already installed
  224345. .IP \(bu 2
  224346. ffca0d491c \- acl.delfacl: fix position of \-X option to setfacl
  224347. .IP \(bu 2
  224348. 3dfed6b841 Adjust linux_acl unit test argument ordering
  224349. .IP \(bu 2
  224350. f185ecdde1 core.py: quote style fixed
  224351. .IP \(bu 2
  224352. 8404d13424 Setting up OS grains for SLES Expanded Support (SUSE\(aqs Red Hat compatible platform)
  224353. .UNINDENT
  224354. .IP \(bu 2
  224355. \fBISSUE\fP \fI\%#32829\fP: (\fI\%tyhunt99\fP) Dockerng appears to not be using docker registries pillar data (refs: \fI\%#36893\fP)
  224356. .IP \(bu 2
  224357. \fBPR\fP \fI\%#37863\fP: (\fI\%rallytime\fP) Back\-port \fI\%#36893\fP to 2016.3
  224358. @ \fI2016\-11\-23 17:09:09 UTC\fP
  224359. .INDENT 2.0
  224360. .IP \(bu 2
  224361. \fBPR\fP \fI\%#36893\fP: (\fI\%tyhunt99\fP) add option to force a reauth for a docker registry (refs: \fI\%#37863\fP)
  224362. .IP \(bu 2
  224363. d0cc7f0d56 Merge pull request \fI\%#37863\fP from rallytime/bp\-36893
  224364. .IP \(bu 2
  224365. 4c70534991 Add versionadded to reauth option in dockerng module
  224366. .IP \(bu 2
  224367. 5ca2c388c2 added documentation for the new reuth option in docker registry configuration
  224368. .IP \(bu 2
  224369. 5b0c11ab47 add option to force a reauth for a docker registry
  224370. .IP \(bu 2
  224371. \fBPR\fP \fI\%#37847\fP: (\fI\%laleocen\fP) add multiline encryption documentation to nacl
  224372. .UNINDENT
  224373. .IP \(bu 2
  224374. \fBISSUE\fP \fI\%#37787\fP: (\fI\%elyulka\fP) user.present state fails to change loginclass on FreeBSD (refs: \fI\%#37827\fP)
  224375. .INDENT 2.0
  224376. .IP \(bu 2
  224377. \fBPR\fP \fI\%#37827\fP: (\fI\%silenius\fP) add missing chloginclass
  224378. .IP \(bu 2
  224379. \fBPR\fP \fI\%#37826\fP: (\fI\%rallytime\fP) Update branch refs to more relevant branch
  224380. .IP \(bu 2
  224381. \fBPR\fP \fI\%#37822\fP: (\fI\%laleocen\fP) add documenation for multiline encryption using nacl (refs: \fI\%#37826\fP)
  224382. .UNINDENT
  224383. .IP \(bu 2
  224384. \fBISSUE\fP \fI\%#19269\fP: (\fI\%markuskramerIgitt\fP) Undocumented feature \fInames:\fP of \fIfile.directory\fP (refs: \fI\%#37823\fP)
  224385. .INDENT 2.0
  224386. .IP \(bu 2
  224387. \fBPR\fP \fI\%#37823\fP: (\fI\%rallytime\fP) Add "names" option to file state docs: point users to highstate doc examples
  224388. .UNINDENT
  224389. .IP \(bu 2
  224390. \fBISSUE\fP \fI\%#15697\fP: (\fI\%arthurlogilab\fP) keystone.user_present should not re\-set the password when user exists (refs: \fI\%#37821\fP)
  224391. .INDENT 2.0
  224392. .IP \(bu 2
  224393. \fBPR\fP \fI\%#37821\fP: (\fI\%rallytime\fP) Clarify keystone.user_present password state docs with default behavior
  224394. .UNINDENT
  224395. .IP \(bu 2
  224396. \fBISSUE\fP \fI\%#5999\fP: (\fI\%pille\fP) libvirt.keys does not work (refs: \fI\%#37820\fP)
  224397. .INDENT 2.0
  224398. .IP \(bu 2
  224399. \fBPR\fP \fI\%#37820\fP: (\fI\%rallytime\fP) Add some dependency documentation to libvirt docs
  224400. .UNINDENT
  224401. .IP \(bu 2
  224402. \fBPR\fP \fI\%#37772\fP: (\fI\%bdrung\fP) Support initializing OpenSSL 1.1
  224403. @ \fI2016\-11\-21 20:28:51 UTC\fP
  224404. .INDENT 2.0
  224405. .IP \(bu 2
  224406. 485270f74e Merge pull request \fI\%#37772\fP from bdrung/openssl1.1
  224407. .IP \(bu 2
  224408. 819c9658ed Support initializing OpenSSL 1.1
  224409. .UNINDENT
  224410. .IP \(bu 2
  224411. \fBISSUE\fP \fI\%#37383\fP: (\fI\%edwardsdanielj\fP) Orchestration arguments (kwarg) not being interperted / How I learned to stop worrying about documentation and love experimenting (refs: \fI\%#37817\fP)
  224412. .INDENT 2.0
  224413. .IP \(bu 2
  224414. \fBPR\fP \fI\%#37817\fP: (\fI\%rallytime\fP) Update orchestrate runner file.copy doc example
  224415. .UNINDENT
  224416. .IP \(bu 2
  224417. \fBISSUE\fP \fI\%#37653\fP: (\fI\%gravyboat\fP) Salt.cron docs don\(aqt wrap @hourly and @daily correctly in quotes for the examples (refs: \fI\%#37816\fP)
  224418. .IP \(bu 2
  224419. \fBISSUE\fP \fI\%#31953\fP: (\fI\%sjorge\fP) Documentation for salt.states.cron is incorrect (refs: \fI\%#32157\fP)
  224420. .IP \(bu 2
  224421. \fBPR\fP \fI\%#37816\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32157\fP to 2016.3
  224422. @ \fI2016\-11\-21 20:22:27 UTC\fP
  224423. .INDENT 2.0
  224424. .IP \(bu 2
  224425. \fBPR\fP \fI\%#32157\fP: (\fI\%cachedout\fP) Add quotes to cron doc (refs: \fI\%#37816\fP)
  224426. .IP \(bu 2
  224427. c5d3d8b66a Merge pull request \fI\%#37816\fP from rallytime/bp\-32157
  224428. .IP \(bu 2
  224429. d9c297119e Add quotes to cron doc
  224430. .UNINDENT
  224431. .IP \(bu 2
  224432. \fBPR\fP \fI\%#37812\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37790\fP to 2016.3
  224433. @ \fI2016\-11\-21 18:46:40 UTC\fP
  224434. .INDENT 2.0
  224435. .IP \(bu 2
  224436. \fBPR\fP \fI\%#37790\fP: (\fI\%sofixa\fP) Update cloud/proxmox.rst with more options and LXC (refs: \fI\%#37812\fP)
  224437. .IP \(bu 2
  224438. 97e6b6aabe Merge pull request \fI\%#37812\fP from rallytime/bp\-37790
  224439. .IP \(bu 2
  224440. ca3b6e7874 Update proxmox.rst with more options and LXC
  224441. .UNINDENT
  224442. .IP \(bu 2
  224443. \fBISSUE\fP \fI\%#37751\fP: (\fI\%freach\fP) Documentation salt.states.dockerng.running: "privileged" property undocumented (refs: \fI\%#37789\fP)
  224444. .IP \(bu 2
  224445. \fBPR\fP \fI\%#37811\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37789\fP to 2016.3
  224446. @ \fI2016\-11\-21 18:46:21 UTC\fP
  224447. .INDENT 2.0
  224448. .IP \(bu 2
  224449. \fBPR\fP \fI\%#37789\fP: (\fI\%fedusia\fP) issue: 37751 (refs: \fI\%#37811\fP)
  224450. .IP \(bu 2
  224451. 27703c54bc Merge pull request \fI\%#37811\fP from rallytime/bp\-37789
  224452. .IP \(bu 2
  224453. ba3fef48e1 fix comment
  224454. .IP \(bu 2
  224455. a021f76a9b issue: 37751 Add documentation for option privileged
  224456. .UNINDENT
  224457. .IP \(bu 2
  224458. \fBPR\fP \fI\%#37810\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37775\fP to 2016.3
  224459. @ \fI2016\-11\-21 18:45:53 UTC\fP
  224460. .INDENT 2.0
  224461. .IP \(bu 2
  224462. \fBPR\fP \fI\%#37775\fP: (\fI\%calve\fP) Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP (refs: \fI\%#37810\fP)
  224463. .IP \(bu 2
  224464. adac9d7c0c Merge pull request \fI\%#37810\fP from rallytime/bp\-37775
  224465. .IP \(bu 2
  224466. 2bed91437b Document \fIpython\fP argument in \fIsalt.states.virtualenv_mod\fP
  224467. .UNINDENT
  224468. .IP \(bu 2
  224469. \fBISSUE\fP \fI\%#37742\fP: (\fI\%blaketmiller\fP) Cannot match on nodegroup when checking minions (refs: \fI\%#37763\fP)
  224470. .INDENT 2.0
  224471. .IP \(bu 2
  224472. \fBPR\fP \fI\%#37763\fP: (\fI\%cachedout\fP) Add nodegroup check to ckminions
  224473. .UNINDENT
  224474. .IP \(bu 2
  224475. \fBISSUE\fP \fI\%#37725\fP: (\fI\%secumod\fP) salt\-call incorrectly parses master hostname:port from minion config (refs: \fI\%#37766\fP)
  224476. .INDENT 2.0
  224477. .IP \(bu 2
  224478. \fBPR\fP \fI\%#37766\fP: (\fI\%cachedout\fP) Fix ip/port issue with salt\-call
  224479. .UNINDENT
  224480. .IP \(bu 2
  224481. \fBISSUE\fP \fI\%#33709\fP: (\fI\%msummers42\fP) Any/All Salt\-SSH invocations in 2016.3.0 Fails with AttributeError: \(aqmodule\(aq object has no attribute \(aqBASE_THORIUM_ROOTS_DIR\(aq (refs: \fI\%#37767\fP)
  224482. .INDENT 2.0
  224483. .IP \(bu 2
  224484. \fBPR\fP \fI\%#37767\fP: (\fI\%cachedout\fP) Add thorium path to syspaths
  224485. .UNINDENT
  224486. .IP \(bu 2
  224487. \fBPR\fP \fI\%#37760\fP: (\fI\%hu\-dabao\fP) Fix couchbase returner and add couple of more features
  224488. @ \fI2016\-11\-18 00:28:23 UTC\fP
  224489. .INDENT 2.0
  224490. .IP \(bu 2
  224491. bff949f4e9 Merge pull request \fI\%#37760\fP from hu\-dabao/fix_cb_returner
  224492. .IP \(bu 2
  224493. de372f277e 1. returner no need to check whether the jid exists for external job cache setup 2. add full_ret to return doc so that the document will be informative 3. make ttl as a config attribute because salt\-minion does not have keep_jobs attribute 4. add password into config attribute 5. update the documents accordingly
  224494. .UNINDENT
  224495. .IP \(bu 2
  224496. \fBISSUE\fP \fI\%#36629\fP: (\fI\%yhekma\fP) The pillar run module does not honor saltenv (refs: \fI\%#37738\fP)
  224497. .IP \(bu 2
  224498. \fBPR\fP \fI\%#37738\fP: (\fI\%terminalmage\fP) Allow pillar.get to retrieve fresh pillar data when saltenv passed
  224499. @ \fI2016\-11\-17 23:13:04 UTC\fP
  224500. .INDENT 2.0
  224501. .IP \(bu 2
  224502. 1f976ac212 Merge pull request \fI\%#37738\fP from terminalmage/issue36629
  224503. .IP \(bu 2
  224504. da46678c51 Allow pillar.get to retrieve fresh pillar data when saltenv passed
  224505. .IP \(bu 2
  224506. \fBPR\fP \fI\%#37745\fP: (\fI\%cro\fP) Switch default filter tag for ONE resources from user only to all resources
  224507. .UNINDENT
  224508. .IP \(bu 2
  224509. \fBISSUE\fP \fI\%#37498\fP: (\fI\%githubcdr\fP) service.restart salt\-minion fails on Ubuntu 14.04.5 LTS (refs: \fI\%#37748\fP, \fI\%#38587\fP)
  224510. .INDENT 2.0
  224511. .IP \(bu 2
  224512. \fBPR\fP \fI\%#37748\fP: (\fI\%silenius\fP) check for SERVICE_DIR in __virtual__ in salt.modules.daemontools
  224513. .UNINDENT
  224514. .IP \(bu 2
  224515. \fBISSUE\fP \fI\%#37734\fP: (\fI\%Ch3LL\fP) Joyent Cloud Size Issue (refs: \fI\%#37735\fP)
  224516. .IP \(bu 2
  224517. \fBPR\fP \fI\%#37735\fP: (\fI\%Ch3LL\fP) change size and image of joyent profile
  224518. @ \fI2016\-11\-16 21:07:52 UTC\fP
  224519. .INDENT 2.0
  224520. .IP \(bu 2
  224521. fa7883115e Merge pull request \fI\%#37735\fP from Ch3LL/fix_joyent_profile
  224522. .IP \(bu 2
  224523. 9ef41dcdfc change size and image of joyent profile
  224524. .UNINDENT
  224525. .IP \(bu 2
  224526. \fBPR\fP \fI\%#37731\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224527. @ \fI2016\-11\-16 17:13:02 UTC\fP
  224528. .INDENT 2.0
  224529. .IP \(bu 2
  224530. 98e25c68aa Merge pull request \fI\%#37731\fP from rallytime/merge\-2016.3
  224531. .IP \(bu 2
  224532. ec1389711f Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224533. .INDENT 2.0
  224534. .IP \(bu 2
  224535. f417dbbe99 Merge pull request \fI\%#37718\fP from terminalmage/docs
  224536. .INDENT 2.0
  224537. .IP \(bu 2
  224538. 23b8b2a3f4 Fix incorrectly\-formatted RST
  224539. .UNINDENT
  224540. .UNINDENT
  224541. .IP \(bu 2
  224542. \fBPR\fP \fI\%#37724\fP: (\fI\%cachedout\fP) Warn on AES test for systems with > 1 core
  224543. .UNINDENT
  224544. .IP \(bu 2
  224545. \fBPR\fP \fI\%#37721\fP: (\fI\%terminalmage\fP) Fix for pillar setting \(aqenvironment\(aq key in __gen_opts()
  224546. @ \fI2016\-11\-16 16:04:53 UTC\fP
  224547. .INDENT 2.0
  224548. .IP \(bu 2
  224549. 35655d521f Merge pull request \fI\%#37721\fP from terminalmage/zd909
  224550. .IP \(bu 2
  224551. acdd5513da Update git_pillar docs to reflect info from bugfix
  224552. .IP \(bu 2
  224553. 433737d2dc Fix for pillar setting \(aqenvironment\(aq key in __gen_opts()
  224554. .UNINDENT
  224555. .IP \(bu 2
  224556. \fBPR\fP \fI\%#37719\fP: (\fI\%terminalmage\fP) Fix incorrectly\-formatted RST (2016.3 branch)
  224557. @ \fI2016\-11\-16 08:20:53 UTC\fP
  224558. .INDENT 2.0
  224559. .IP \(bu 2
  224560. 99cda7c003 Merge pull request \fI\%#37719\fP from terminalmage/docs\-2016.3
  224561. .IP \(bu 2
  224562. f163b4c724 Fix incorrectly\-formatted RST
  224563. .UNINDENT
  224564. .IP \(bu 2
  224565. \fBPR\fP \fI\%#37694\fP: (\fI\%cachedout\fP) Catch differences in git URLs in npm state
  224566. @ \fI2016\-11\-16 01:56:18 UTC\fP
  224567. .INDENT 2.0
  224568. .IP \(bu 2
  224569. 8dea695c7c Merge pull request \fI\%#37694\fP from cachedout/npm_git
  224570. .IP \(bu 2
  224571. 0e3bc2366a Catch differences in git URLs in npm state
  224572. .UNINDENT
  224573. .IP \(bu 2
  224574. \fBISSUE\fP \fI\%#37665\fP: (\fI\%kluoto\fP) boto_elb state fails as key is overwritten by the code (refs: \fI\%#37705\fP)
  224575. .IP \(bu 2
  224576. \fBPR\fP \fI\%#37705\fP: (\fI\%rallytime\fP) Don\(aqt overwrite the "key" variable passed in to _listeners_present func
  224577. @ \fI2016\-11\-15 21:26:37 UTC\fP
  224578. .INDENT 2.0
  224579. .IP \(bu 2
  224580. 329448ccd7 Merge pull request \fI\%#37705\fP from rallytime/fix\-37665
  224581. .IP \(bu 2
  224582. 3b7e9c5e3b Don\(aqt overwrite the "key" variable passed in to _listeners_present func
  224583. .UNINDENT
  224584. .IP \(bu 2
  224585. \fBPR\fP \fI\%#37707\fP: (\fI\%Ch3LL\fP) add timeout increase on azure tests
  224586. @ \fI2016\-11\-15 21:24:25 UTC\fP
  224587. .INDENT 2.0
  224588. .IP \(bu 2
  224589. \fBPR\fP \fI\%#37239\fP: (\fI\%Ch3LL\fP) Fix cloud tests timeout (refs: \fI\%#37707\fP)
  224590. .IP \(bu 2
  224591. ac9a316b50 Merge pull request \fI\%#37707\fP from Ch3LL/fix_timeout_azure
  224592. .IP \(bu 2
  224593. 363122c675 add timeout increase on azure tests
  224594. .UNINDENT
  224595. .IP \(bu 2
  224596. \fBPR\fP \fI\%#37704\fP: (\fI\%twangboy\fP) Fix test disabled 2016.3 [DO NOT MERGE FORWARD]
  224597. @ \fI2016\-11\-15 16:48:52 UTC\fP
  224598. .INDENT 2.0
  224599. .IP \(bu 2
  224600. 1ece265354 Merge pull request \fI\%#37704\fP from twangboy/fix_test_disabled_2016.3
  224601. .IP \(bu 2
  224602. a0429cf839 Use nfsd instead of apsd for test_disabled
  224603. .UNINDENT
  224604. .IP \(bu 2
  224605. \fBPR\fP \fI\%#37690\fP: (\fI\%twangboy\fP) Update pyzmq to 15.3.0 for 2016.3 [DO NOT MERGE FORWARD]
  224606. @ \fI2016\-11\-15 03:10:36 UTC\fP
  224607. .INDENT 2.0
  224608. .IP \(bu 2
  224609. 44f05acbff Merge pull request \fI\%#37690\fP from twangboy/update_pyzmq_2016.3
  224610. .IP \(bu 2
  224611. cf55342150 Update pyzmq to version 15.3.0
  224612. .UNINDENT
  224613. .IP \(bu 2
  224614. \fBPR\fP \fI\%#37680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32965\fP to 2016.3
  224615. @ \fI2016\-11\-15 02:56:46 UTC\fP
  224616. .INDENT 2.0
  224617. .IP \(bu 2
  224618. \fBPR\fP \fI\%#32965\fP: (\fI\%kevinquinnyo\fP) Fix \(aqpresent\(aq option when used without \(aqkey_type\(aq (refs: \fI\%#37680\fP)
  224619. .IP \(bu 2
  224620. a743d8b5e6 Merge pull request \fI\%#37680\fP from rallytime/bp\-32965
  224621. .IP \(bu 2
  224622. 1865b13645 Fix \(aqpresent\(aq option when used without \(aqkey_type\(aq
  224623. .UNINDENT
  224624. .IP \(bu 2
  224625. \fBISSUE\fP \fI\%#35964\fP: (\fI\%edgan\fP) salt\-ssh doesn\(aqt set the return code to non\-zero on highstate rendering error (refs: \fI\%#35965\fP)
  224626. .IP \(bu 2
  224627. \fBPR\fP \fI\%#37681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35965\fP to 2016.3
  224628. @ \fI2016\-11\-14 21:19:22 UTC\fP
  224629. .INDENT 2.0
  224630. .IP \(bu 2
  224631. \fBPR\fP \fI\%#35965\fP: (\fI\%edgan\fP) Set the return code to 1 on salt\-ssh highstate errors (refs: \fI\%#37681\fP)
  224632. .IP \(bu 2
  224633. 1c2d6ff293 Merge pull request \fI\%#37681\fP from rallytime/bp\-35965
  224634. .IP \(bu 2
  224635. 700f3fa57f Set the return code to 1 on salt\-ssh highstate errors
  224636. .UNINDENT
  224637. .IP \(bu 2
  224638. \fBPR\fP \fI\%#37668\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  224639. @ \fI2016\-11\-14 15:43:25 UTC\fP
  224640. .INDENT 2.0
  224641. .IP \(bu 2
  224642. 1b456b55dc Merge pull request \fI\%#37668\fP from rallytime/merge\-2016.3
  224643. .IP \(bu 2
  224644. ef684c6b02 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  224645. .IP \(bu 2
  224646. a01b66556f Add docs for rotate_aes_key (\fI\%#37641\fP)
  224647. .UNINDENT
  224648. .IP \(bu 2
  224649. \fBISSUE\fP \fI\%#37492\fP: (\fI\%JensRantil\fP) Failing \fIsalt \-b 1 minion state.highstate\fP has wrong exit code (refs: \fI\%#37625\fP)
  224650. .IP \(bu 2
  224651. \fBPR\fP \fI\%#37625\fP: (\fI\%cachedout\fP) Return with proper retcodes in batch mode
  224652. @ \fI2016\-11\-12 20:29:09 UTC\fP
  224653. .INDENT 2.0
  224654. .IP \(bu 2
  224655. 305e51d1c0 Merge pull request \fI\%#37625\fP from cachedout/issue_37492
  224656. .IP \(bu 2
  224657. b6031524e5 Return with proper retcodes in batch mode
  224658. .UNINDENT
  224659. .IP \(bu 2
  224660. \fBISSUE\fP \fI\%#34547\fP: (\fI\%sebw\fP) salt\-cloud deployment fails when deploy: True (refs: \fI\%#37607\fP)
  224661. .IP \(bu 2
  224662. \fBPR\fP \fI\%#37639\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37607\fP to 2016.3
  224663. @ \fI2016\-11\-11 20:29:20 UTC\fP
  224664. .INDENT 2.0
  224665. .IP \(bu 2
  224666. \fBPR\fP \fI\%#37607\fP: (\fI\%techhat\fP) Try the connection again, in case it\(aqs been reset (refs: \fI\%#37639\fP)
  224667. .IP \(bu 2
  224668. \fBPR\fP \fI\%#35673\fP: (\fI\%cro\fP) Proxies don\(aqt handle reusing the SmartConnect instances very well. D… (refs: \fI\%#37607\fP)
  224669. .IP \(bu 2
  224670. \fBPR\fP \fI\%#34059\fP: (\fI\%alexbleotu\fP) Vmware common gh (refs: \fI\%#37607\fP)
  224671. .IP \(bu 2
  224672. 7510cd4da9 Merge pull request \fI\%#37639\fP from rallytime/bp\-37607
  224673. .IP \(bu 2
  224674. 9914c93bc4 Pylint: Remove kwargs that are not in the 2016.3 branch
  224675. .IP \(bu 2
  224676. d941e9354d Disable pylint warning
  224677. .IP \(bu 2
  224678. 940ee49a0b Lint fix
  224679. .IP \(bu 2
  224680. 69893f0c38 Try the connection again, in case it\(aqs been reset
  224681. .UNINDENT
  224682. .IP \(bu 2
  224683. \fBISSUE\fP \fI\%saltstack/salt#37118\fP: (\fI\%gtmanfred\fP) group in file.find module unable to be a list (refs: \fI\%#37349\fP)
  224684. .IP \(bu 2
  224685. \fBISSUE\fP \fI\%#37118\fP: (\fI\%gtmanfred\fP) group in file.find module unable to be a list (refs: \fI\%#37349\fP)
  224686. .IP \(bu 2
  224687. \fBPR\fP \fI\%#37638\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37349\fP to 2016.3
  224688. @ \fI2016\-11\-11 20:29:01 UTC\fP
  224689. .INDENT 2.0
  224690. .IP \(bu 2
  224691. \fBPR\fP \fI\%#37349\fP: (\fI\%haeac\fP) Pull request for Bug \fI\%#37118\fP (refs: \fI\%#37638\fP)
  224692. .IP \(bu 2
  224693. 24ca96010d Merge pull request \fI\%#37638\fP from rallytime/bp\-37349
  224694. .IP \(bu 2
  224695. ba2105bc39 Fix for Bug \fI\%#37118\fP, the wrong parameter was being used to convert the group name to group id.
  224696. .UNINDENT
  224697. .IP \(bu 2
  224698. \fBISSUE\fP \fI\%#37643\fP: (\fI\%Ch3LL\fP) digital ocean list_keypairs limits to 20 keys (refs: \fI\%#37644\fP)
  224699. .IP \(bu 2
  224700. \fBPR\fP \fI\%#37644\fP: (\fI\%Ch3LL\fP) digital ocean list_keypairs: increase limit for ssh keys parsed
  224701. @ \fI2016\-11\-11 20:28:46 UTC\fP
  224702. .INDENT 2.0
  224703. .IP \(bu 2
  224704. e1e8b81d16 Merge pull request \fI\%#37644\fP from Ch3LL/fix_37643
  224705. .IP \(bu 2
  224706. c02961a2f5 list_keypairs: increase limit for ssh keys parsed
  224707. .UNINDENT
  224708. .IP \(bu 2
  224709. \fBISSUE\fP \fI\%#37541\fP: (\fI\%yhekma\fP) salt\-minion does not clean up temp files for templates (refs: \fI\%#37540\fP, \fI\%#37640\fP)
  224710. .IP \(bu 2
  224711. \fBPR\fP \fI\%#37640\fP: (\fI\%rallytime\fP) Add known issue \fI\%#37541\fP to 2016.3.4 release notes
  224712. @ \fI2016\-11\-11 20:28:12 UTC\fP
  224713. .INDENT 2.0
  224714. .IP \(bu 2
  224715. a97c2ad34b Merge pull request \fI\%#37640\fP from rallytime/update\-release\-notes
  224716. .IP \(bu 2
  224717. 6d6de12aff Grammatical fix
  224718. .IP \(bu 2
  224719. 24d7f20e16 Add known issue \fI\%#37541\fP to 2016.3.4 release notes
  224720. .UNINDENT
  224721. .IP \(bu 2
  224722. \fBPR\fP \fI\%#37642\fP: (\fI\%cro\fP) Forward\-port change from 2015.8 adding release note for rotate_aes_key
  224723. @ \fI2016\-11\-11 20:27:07 UTC\fP
  224724. .INDENT 2.0
  224725. .IP \(bu 2
  224726. fab3eaa237 Merge pull request \fI\%#37642\fP from cro/rotate_aes_doc
  224727. .IP \(bu 2
  224728. 1ca5b958c6 Forward\-port change from 2015.8 adding release note for rotate_aes_key
  224729. .UNINDENT
  224730. .IP \(bu 2
  224731. \fBISSUE\fP \fI\%#37628\fP: (\fI\%TronPaul\fP) [git 2016.3] Refreshing of an s3 file server results in an exception (refs: \fI\%#37629\fP)
  224732. .IP \(bu 2
  224733. \fBPR\fP \fI\%#37629\fP: (\fI\%TronPaul\fP) fix __opts__ and provider being None in salt.utils.aws:get_location
  224734. @ \fI2016\-11\-11 09:49:47 UTC\fP
  224735. .INDENT 2.0
  224736. .IP \(bu 2
  224737. 4c07b3534a Merge pull request \fI\%#37629\fP from TronPaul/fix\-s3fs\-opts
  224738. .IP \(bu 2
  224739. a452cded20 fix __opts__ and provider being None issue
  224740. .UNINDENT
  224741. .IP \(bu 2
  224742. \fBPR\fP \fI\%#37481\fP: (\fI\%thatch45\fP) Raet internal client reference fix
  224743. @ \fI2016\-11\-11 04:39:41 UTC\fP
  224744. .INDENT 2.0
  224745. .IP \(bu 2
  224746. 200d9fcb6e Merge pull request \fI\%#37481\fP from thatch45/raet_client
  224747. .IP \(bu 2
  224748. 50d911160b Attempted fix, needs user verification
  224749. .UNINDENT
  224750. .IP \(bu 2
  224751. \fBPR\fP \fI\%#37611\fP: (\fI\%jeanpralo\fP) Fix cmd batch raw
  224752. @ \fI2016\-11\-11 02:53:58 UTC\fP
  224753. .INDENT 2.0
  224754. .IP \(bu 2
  224755. b14faf1c68 Merge pull request \fI\%#37611\fP from jeanpralo/fix\-cmd\-batch\-raw
  224756. .IP \(bu 2
  224757. 4f16840ef1 add integration test for salt.client.LocalClient.cmd_batch
  224758. .IP \(bu 2
  224759. ead47e4bba update ret dict to avoid hanging
  224760. .IP \(bu 2
  224761. 0a2f153b6e fix dict key for raw support to avoid exception
  224762. .UNINDENT
  224763. .IP \(bu 2
  224764. \fBPR\fP \fI\%#37614\fP: (\fI\%gtmanfred\fP) remove redundant code
  224765. @ \fI2016\-11\-11 02:49:13 UTC\fP
  224766. .INDENT 2.0
  224767. .IP \(bu 2
  224768. 35c8333d04 Merge pull request \fI\%#37614\fP from gtmanfred/2016.3
  224769. .IP \(bu 2
  224770. 71c2df89a9 remove redundent code
  224771. .UNINDENT
  224772. .IP \(bu 2
  224773. \fBPR\fP \fI\%#37627\fP: (\fI\%cachedout\fP) Exempt pip.iteritems from test_valid_docs test
  224774. @ \fI2016\-11\-11 02:48:37 UTC\fP
  224775. .INDENT 2.0
  224776. .IP \(bu 2
  224777. 4fab707bdd Merge pull request \fI\%#37627\fP from cachedout/pr\-36706
  224778. .IP \(bu 2
  224779. 94df2f8e6f Exempt pip.iteritems from test_valid_docs test
  224780. .UNINDENT
  224781. .IP \(bu 2
  224782. \fBISSUE\fP \fI\%#36644\fP: (\fI\%b1naryth1ef\fP) env_vars not properly validated/casted to strings w/ virtualenv.manage/pip.install (refs: \fI\%#36706\fP)
  224783. .IP \(bu 2
  224784. \fBPR\fP \fI\%#36706\fP: (\fI\%siccrusher\fP) Add basic sanity checks for env_vars in pip.install function
  224785. @ \fI2016\-11\-11 02:47:16 UTC\fP
  224786. .INDENT 2.0
  224787. .IP \(bu 2
  224788. ee74f3116e Merge pull request \fI\%#36706\fP from siccrusher/fix_env_var_validation
  224789. .IP \(bu 2
  224790. fb27f8b69e Revert change
  224791. .IP \(bu 2
  224792. 79f3e83f8d Use fully\-qualified path for six
  224793. .IP \(bu 2
  224794. 0ca1222833 Update pip.py
  224795. .IP \(bu 2
  224796. b15de371c1 * Ensure src is python3 compatible
  224797. .IP \(bu 2
  224798. 0976a2d1ae * Before passing on the env_vars dictionary ensure all values are strings. Fixes \fI\%#36644\fP
  224799. .UNINDENT
  224800. .IP \(bu 2
  224801. \fBISSUE\fP \fI\%#37491\fP: (\fI\%JensRantil\fP) "Failed to authenticate! ..." error should exit non\-zero (refs: \fI\%#37626\fP)
  224802. .IP \(bu 2
  224803. \fBPR\fP \fI\%#37626\fP: (\fI\%cachedout\fP) Exit with proper retcode on hard client failures
  224804. @ \fI2016\-11\-11 02:38:47 UTC\fP
  224805. .INDENT 2.0
  224806. .IP \(bu 2
  224807. 902a97575e Merge pull request \fI\%#37626\fP from cachedout/issue_37491
  224808. .IP \(bu 2
  224809. bab9a729b1 Exit with proper retcode on hard client failures
  224810. .UNINDENT
  224811. .IP \(bu 2
  224812. \fBPR\fP \fI\%#37617\fP: (\fI\%terminalmage\fP) Clarify docs for git_pillar dynamic env feature
  224813. @ \fI2016\-11\-11 01:52:52 UTC\fP
  224814. .INDENT 2.0
  224815. .IP \(bu 2
  224816. 845f835177 Merge pull request \fI\%#37617\fP from terminalmage/git_pillar\-docs
  224817. .IP \(bu 2
  224818. 8cdf5dbb51 Clarify docs for git_pillar dynamic env feature
  224819. .UNINDENT
  224820. .IP \(bu 2
  224821. \fBPR\fP \fI\%#36627\fP: (\fI\%sjmh\fP) Skip rest of loop on failed func match
  224822. @ \fI2016\-11\-10 23:47:12 UTC\fP
  224823. .INDENT 2.0
  224824. .IP \(bu 2
  224825. 3079d78332 Merge pull request \fI\%#36627\fP from sjmh/fix/auth_skip_nomatch
  224826. .IP \(bu 2
  224827. b3baaf30d0 Skip rest of loop on failed func match
  224828. .UNINDENT
  224829. .IP \(bu 2
  224830. \fBPR\fP \fI\%#37600\fP: (\fI\%mcalmer\fP) change TIMEZONE on SUSE systems (bsc#1008933)
  224831. @ \fI2016\-11\-10 21:54:04 UTC\fP
  224832. .INDENT 2.0
  224833. .IP \(bu 2
  224834. a71e7c77b3 Merge pull request \fI\%#37600\fP from mcalmer/fix\-timezone\-on\-SUSE
  224835. .IP \(bu 2
  224836. 3530b542f0 change TIMEZONE on SUSE systems (bsc#1008933)
  224837. .UNINDENT
  224838. .IP \(bu 2
  224839. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  224840. .IP \(bu 2
  224841. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  224842. .IP \(bu 2
  224843. \fBPR\fP \fI\%#37602\fP: (\fI\%DmitryKuzmenko\fP) Handle master restart in appropriate places using \fIsalt.event\fP listener.
  224844. @ \fI2016\-11\-10 21:53:20 UTC\fP
  224845. .INDENT 2.0
  224846. .IP \(bu 2
  224847. \fBPR\fP \fI\%#37438\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fI\%#37238\fP salt hang on master restart (refs: \fI\%#37602\fP)
  224848. .IP \(bu 2
  224849. 39b75878cf Merge pull request \fI\%#37602\fP from DSRCorporation/bugs/37238_salt_hang_on_master_restart
  224850. .IP \(bu 2
  224851. d3d987b19c Handle master restart in appropriate places using \fIsalt.event\fP listener.
  224852. .UNINDENT
  224853. .IP \(bu 2
  224854. \fBPR\fP \fI\%#37608\fP: (\fI\%gtmanfred\fP) allow multiline returns from docker for mac
  224855. @ \fI2016\-11\-10 21:48:59 UTC\fP
  224856. .INDENT 2.0
  224857. .IP \(bu 2
  224858. 019e1a721b Merge pull request \fI\%#37608\fP from gtmanfred/2016.3
  224859. .IP \(bu 2
  224860. 74aee1e372 allow multiline returns from docker for mac
  224861. .UNINDENT
  224862. .IP \(bu 2
  224863. \fBISSUE\fP \fI\%#37592\fP: (\fI\%craigafinch\fP) State git.latest does not work with SSH (refs: \fI\%#37604\fP)
  224864. .IP \(bu 2
  224865. \fBISSUE\fP \fI\%#37551\fP: (\fI\%viict\fP) git.latest "Not a valid commit name" (refs: \fI\%#37604\fP, \fI\%#37571\fP)
  224866. .INDENT 2.0
  224867. .IP \(bu 2
  224868. \fBPR\fP \fI\%#37604\fP: (\fI\%terminalmage\fP) Documentation improvements and corrections
  224869. .IP \(bu 2
  224870. \fBPR\fP \fI\%#37579\fP: (\fI\%pass\-by\-value\fP) Use existing VM\(aqs VDD size if not specified in the cloud profile
  224871. .UNINDENT
  224872. .IP \(bu 2
  224873. \fBISSUE\fP \fI\%#37541\fP: (\fI\%yhekma\fP) salt\-minion does not clean up temp files for templates (refs: \fI\%#37540\fP, \fI\%#37640\fP)
  224874. .IP \(bu 2
  224875. \fBPR\fP \fI\%#37540\fP: (\fI\%yhekma\fP) Added prefix to tempfile for template
  224876. @ \fI2016\-11\-10 00:37:18 UTC\fP
  224877. .INDENT 2.0
  224878. .IP \(bu 2
  224879. fdd13b4145 Merge pull request \fI\%#37540\fP from yhekma/2016.3
  224880. .IP \(bu 2
  224881. 93a59f8034 Added prefix to tempfile for template
  224882. .UNINDENT
  224883. .IP \(bu 2
  224884. \fBISSUE\fP \fI\%#37084\fP: (\fI\%aaronm\-cloudtek\fP) x509.certificate_managed does not work with m2crypto >=0.25 (refs: \fI\%#37578\fP)
  224885. .INDENT 2.0
  224886. .IP \(bu 2
  224887. \fBPR\fP \fI\%#37578\fP: (\fI\%clinta\fP) Update for m2crypto changes removing lhash
  224888. .IP \(bu 2
  224889. \fBPR\fP \fI\%#37584\fP: (\fI\%clinta\fP) Fix eauth example for limiting args
  224890. .UNINDENT
  224891. .IP \(bu 2
  224892. \fBISSUE\fP \fI\%#37551\fP: (\fI\%viict\fP) git.latest "Not a valid commit name" (refs: \fI\%#37604\fP, \fI\%#37571\fP)
  224893. .INDENT 2.0
  224894. .IP \(bu 2
  224895. \fBPR\fP \fI\%#37571\fP: (\fI\%terminalmage\fP) Add a test to ensure we don\(aqt check for fast\-forward before fetching
  224896. .UNINDENT
  224897. .IP \(bu 2
  224898. \fBISSUE\fP \fI\%#33645\fP: (\fI\%ketzacoatl\fP) saltutil.sync_all does not sync custom pillar modules to masterless minions (refs: \fI\%#33833\fP)
  224899. .IP \(bu 2
  224900. \fBISSUE\fP \fI\%#25297\fP: (\fI\%Akilesh1597\fP) perform \(aqrefresh_pillar\(aq as a part of \(aqsync_all\(aq (refs: \fI\%#25361\fP, \fI\%#37521\fP)
  224901. .IP \(bu 2
  224902. \fBPR\fP \fI\%#37553\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37521\fP to 2016.3
  224903. @ \fI2016\-11\-08 23:11:07 UTC\fP
  224904. .INDENT 2.0
  224905. .IP \(bu 2
  224906. \fBPR\fP \fI\%#37521\fP: (\fI\%genuss\fP) refresh_pillar() should be called always with refresh=True during saltutil.sync_all (refs: \fI\%#37553\fP)
  224907. .IP \(bu 2
  224908. \fBPR\fP \fI\%#33833\fP: (\fI\%terminalmage\fP) Support syncing pillar modules to masterless minions (refs: \fI\%#37521\fP)
  224909. .IP \(bu 2
  224910. \fBPR\fP \fI\%#25361\fP: (\fI\%tedski\fP) perform \fIrefresh_pillar\fP as part of \fIsync_all\fP when \fIrefresh=True\fP (refs: \fI\%#37521\fP)
  224911. .IP \(bu 2
  224912. b01c247ea9 Merge pull request \fI\%#37553\fP from rallytime/bp\-37521
  224913. .IP \(bu 2
  224914. 30f92b05f4 refresh_pillar() should be called always
  224915. .IP \(bu 2
  224916. \fBPR\fP \fI\%saltstack/salt#37549\fP: (\fI\%Mrten\fP) sqlite is not found in 2015.8 (refs: \fI\%#37565\fP)
  224917. .UNINDENT
  224918. .IP \(bu 2
  224919. \fBPR\fP \fI\%#37565\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37549\fP to 2016.3
  224920. @ \fI2016\-11\-08 23:10:25 UTC\fP
  224921. .INDENT 2.0
  224922. .IP \(bu 2
  224923. \fBPR\fP \fI\%#37549\fP: (\fI\%Mrten\fP) sqlite is not found in 2015.8 (refs: \fI\%#37565\fP)
  224924. .IP \(bu 2
  224925. 694df30d40 Merge pull request \fI\%#37565\fP from rallytime/bp\-37549
  224926. .IP \(bu 2
  224927. c92a90b8e5 Update sqlite3.py
  224928. .IP \(bu 2
  224929. fb76557a2a sqlite is not found in 2015.8
  224930. .UNINDENT
  224931. .IP \(bu 2
  224932. \fBISSUE\fP \fI\%#37511\fP: (\fI\%jdelic\fP) service.dead now only operates if the service file exists (refs: \fI\%#37562\fP)
  224933. .INDENT 2.0
  224934. .IP \(bu 2
  224935. \fBPR\fP \fI\%#37562\fP: (\fI\%terminalmage\fP) Fix regression in service.dead state
  224936. .UNINDENT
  224937. .IP \(bu 2
  224938. \fBISSUE\fP \fI\%#37554\fP: (\fI\%sjmh\fP) salt\-api doesn\(aqt dynamically re\-read nodegroups configuration (refs: \fI\%#37560\fP)
  224939. .INDENT 2.0
  224940. .IP \(bu 2
  224941. \fBPR\fP \fI\%#37560\fP: (\fI\%whiteinge\fP) Skip config type checking for sdb values
  224942. .IP \(bu 2
  224943. \fBPR\fP \fI\%#37556\fP: (\fI\%rallytime\fP) Don\(aqt pass the vpc id to boto.vpc.create_internet_gateway func
  224944. .IP \(bu 2
  224945. \fBPR\fP \fI\%#37543\fP: (\fI\%multani\fP) Documentation rendering fixes
  224946. .UNINDENT
  224947. .IP \(bu 2
  224948. \fBISSUE\fP \fI\%saltstack/salt#31081\fP: (\fI\%JensRantil\fP) salt.modules.file.line documentation unclarities (refs: \fI\%#37457\fP)
  224949. .IP \(bu 2
  224950. \fBPR\fP \fI\%#37457\fP: (\fI\%rallytime\fP) Fixup file.line docs to be more clear and consistent
  224951. @ \fI2016\-11\-08 00:29:20 UTC\fP
  224952. .INDENT 2.0
  224953. .IP \(bu 2
  224954. 96b8b9a849 Merge pull request \fI\%#37457\fP from rallytime/fix\-31081
  224955. .IP \(bu 2
  224956. 25821bb8db Clarify which modes use "before", "after", and "indent" options
  224957. .IP \(bu 2
  224958. 8b2d2b9e7b Clarify file.line state docs as well
  224959. .IP \(bu 2
  224960. b2615892eb Move note about using mode=insert with location options to mode section
  224961. .IP \(bu 2
  224962. db0b0cefb8 Fixup file.line docs to be more clear and consistent
  224963. .UNINDENT
  224964. .IP \(bu 2
  224965. \fBISSUE\fP \fI\%#35799\fP: (\fI\%davegiles\fP) dsc.apply_config hangs (no error) on empty directory on target (refs: \fI\%#37526\fP)
  224966. .IP \(bu 2
  224967. \fBPR\fP \fI\%#37526\fP: (\fI\%twangboy\fP) Remove loop from dsc.apply_config
  224968. @ \fI2016\-11\-08 00:23:11 UTC\fP
  224969. .INDENT 2.0
  224970. .IP \(bu 2
  224971. 7de790ffed Merge pull request \fI\%#37526\fP from twangboy/fix_35799
  224972. .IP \(bu 2
  224973. fc4260911c Remove unnecessary format
  224974. .IP \(bu 2
  224975. c934a2bfa7 Remove the loop from apply_config
  224976. .IP \(bu 2
  224977. \fBPR\fP \fI\%saltstack/salt#37515\fP: (\fI\%rallytime\fP) [carbon] Merge forward from 2016.3 to carbon (refs: \fI\%#37534\fP)
  224978. .UNINDENT
  224979. .IP \(bu 2
  224980. \fBPR\fP \fI\%#37534\fP: (\fI\%rallytime\fP) Back\-port fix needed from \fI\%#37515\fP
  224981. @ \fI2016\-11\-08 00:14:46 UTC\fP
  224982. .INDENT 2.0
  224983. .IP \(bu 2
  224984. \fBPR\fP \fI\%#37515\fP: (\fI\%rallytime\fP) [carbon] Merge forward from 2016.3 to carbon (refs: \fI\%#37534\fP)
  224985. .IP \(bu 2
  224986. 94811df2ea Merge pull request \fI\%#37534\fP from rallytime/bp\-merge\-foward\-fix
  224987. .IP \(bu 2
  224988. d1b2af1d69 Add missing source_hash_name args to a couple funcs
  224989. .UNINDENT
  224990. .IP \(bu 2
  224991. \fBPR\fP \fI\%#37533\fP: (\fI\%whiteinge\fP) Return a 504 response instead of 500 for Salt timeouts
  224992. @ \fI2016\-11\-08 00:14:15 UTC\fP
  224993. .INDENT 2.0
  224994. .IP \(bu 2
  224995. 17adbb0c9f Merge pull request \fI\%#37533\fP from whiteinge/salt\-api\-504\-timeouts
  224996. .IP \(bu 2
  224997. 63226aeda6 Return a 504 response instead of 500 for Salt timeouts
  224998. .UNINDENT
  224999. .IP \(bu 2
  225000. \fBISSUE\fP \fI\%saltstack/salt#36679\fP: (\fI\%lorengordon\fP) Command \(aqImport\-Module ServerManager\(aq failed with return code: 1 (refs: #\(gasaltstack/salt\(ga#36736\(ga_\(ga_, \fI\%#36736\fP)
  225001. .INDENT 2.0
  225002. .IP \(bu 2
  225003. \fBPR\fP \fI\%saltstack/salt#36736\fP: (\fI\%m03\fP) Fix issue 36679 win_servermanager error (refs: \fI\%#37529\fP)
  225004. .UNINDENT
  225005. .IP \(bu 2
  225006. \fBPR\fP \fI\%#37529\fP: (\fI\%lorengordon\fP) Backport: PR 36736 to 2016.3
  225007. @ \fI2016\-11\-08 00:04:10 UTC\fP
  225008. .INDENT 2.0
  225009. .IP \(bu 2
  225010. \fBPR\fP \fI\%#36736\fP: (\fI\%m03\fP) Fix issue 36679 win_servermanager error
  225011. .IP \(bu 2
  225012. a9f03eee6f Merge pull request \fI\%#37529\fP from lorengordon/bp\-36736
  225013. .IP \(bu 2
  225014. 21c2664b6a Fix issue 36679 win_servermanager failure
  225015. .UNINDENT
  225016. .IP \(bu 2
  225017. \fBISSUE\fP \fI\%#37444\fP: (\fI\%Tanoti\fP) Returning False from __virtual__ in a returner does not return expected error (refs: #\(gasaltstack/salt\(ga#37502\(ga_\(ga_, \fI\%#37519\fP, \fI\%#37502\fP)
  225018. .INDENT 2.0
  225019. .IP \(bu 2
  225020. \fBPR\fP \fI\%saltstack/salt#37502\fP: (\fI\%cachedout\fP) Log proper message on returners that cannot be loaded (refs: \fI\%#37519\fP)
  225021. .UNINDENT
  225022. .IP \(bu 2
  225023. \fBPR\fP \fI\%#37519\fP: (\fI\%rallytime\fP) Update returner __virtual__() return messages for loader
  225024. @ \fI2016\-11\-07 23:06:23 UTC\fP
  225025. .INDENT 2.0
  225026. .IP \(bu 2
  225027. 19475aada6 Merge pull request \fI\%#37519\fP from rallytime/returner\-load\-errors
  225028. .IP \(bu 2
  225029. fb261a31f3 Update returner __virtual__() return messages for loader
  225030. .UNINDENT
  225031. .IP \(bu 2
  225032. \fBISSUE\fP \fI\%#35016\fP: (\fI\%pingangit\fP) TypeError: save_minions() got an unexpected keyword argument \(aqsyndic_id\(aq (refs: \fI\%#37527\fP)
  225033. .IP \(bu 2
  225034. \fBPR\fP \fI\%#37527\fP: (\fI\%rallytime\fP) Add syndic_id=None kwarg to save_minions funcs in returners
  225035. @ \fI2016\-11\-07 23:04:03 UTC\fP
  225036. .INDENT 2.0
  225037. .IP \(bu 2
  225038. fefdfab850 Merge pull request \fI\%#37527\fP from rallytime/fix\-35016
  225039. .IP \(bu 2
  225040. 2944b244aa Add syndic_id=None kwarg to save_minions funcs in returners
  225041. .IP \(bu 2
  225042. \fBPR\fP \fI\%#37530\fP: (\fI\%gtmanfred\fP) fix Lithium to 2015.5.0
  225043. .UNINDENT
  225044. .IP \(bu 2
  225045. \fBPR\fP \fI\%#37514\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225046. @ \fI2016\-11\-07 16:51:06 UTC\fP
  225047. .INDENT 2.0
  225048. .IP \(bu 2
  225049. 743164844d Merge pull request \fI\%#37514\fP from rallytime/merge\-2016.3
  225050. .IP \(bu 2
  225051. 41166aede4 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225052. .IP \(bu 2
  225053. c505a059ef [2015.8] Doc version updated to 2016.3.4 (\fI\%#37482\fP)
  225054. .UNINDENT
  225055. .IP \(bu 2
  225056. \fBISSUE\fP \fI\%#36713\fP: (\fI\%Tanoti\fP) ExtraData: unpack(b) received extra data after upgrading to 2016.3.3 (refs: \fI\%#37503\fP)
  225057. .IP \(bu 2
  225058. \fBPR\fP \fI\%#37503\fP: (\fI\%cachedout\fP) Catch loader error on returners without save_load
  225059. @ \fI2016\-11\-07 09:33:57 UTC\fP
  225060. .INDENT 2.0
  225061. .IP \(bu 2
  225062. 2d924d0820 Merge pull request \fI\%#37503\fP from cachedout/issue_36713
  225063. .IP \(bu 2
  225064. 5f7f971b2c Catch loader error on returners without save_load
  225065. .UNINDENT
  225066. .IP \(bu 2
  225067. \fBISSUE\fP \fI\%#37448\fP: (\fI\%alisson276\fP) In \(aqsalt/key\(aq events there are acts that never happen (refs: \fI\%#37499\fP)
  225068. .IP \(bu 2
  225069. \fBPR\fP \fI\%#37499\fP: (\fI\%cachedout\fP) Clarify docs on salt\-key events
  225070. @ \fI2016\-11\-07 09:33:20 UTC\fP
  225071. .INDENT 2.0
  225072. .IP \(bu 2
  225073. d95bf59f97 Merge pull request \fI\%#37499\fP from cachedout/key_docs_clarify
  225074. .IP \(bu 2
  225075. 2758e74785 Clarify docs on salt\-key events
  225076. .UNINDENT
  225077. .IP \(bu 2
  225078. \fBPR\fP \fI\%#37500\fP: (\fI\%cachedout\fP) Remove unused flag
  225079. @ \fI2016\-11\-07 09:33:04 UTC\fP
  225080. .INDENT 2.0
  225081. .IP \(bu 2
  225082. 1dd1408ae6 Merge pull request \fI\%#37500\fP from cachedout/remove_include_errors
  225083. .IP \(bu 2
  225084. 6c705b11e0 Remove unused flag
  225085. .UNINDENT
  225086. .IP \(bu 2
  225087. \fBISSUE\fP \fI\%#37444\fP: (\fI\%Tanoti\fP) Returning False from __virtual__ in a returner does not return expected error (refs: #\(gasaltstack/salt\(ga#37502\(ga_\(ga_, \fI\%#37519\fP, \fI\%#37502\fP)
  225088. .IP \(bu 2
  225089. \fBPR\fP \fI\%#37502\fP: (\fI\%cachedout\fP) Log proper message on returners that cannot be loaded
  225090. @ \fI2016\-11\-07 09:32:45 UTC\fP
  225091. .INDENT 2.0
  225092. .IP \(bu 2
  225093. 4b6f1ab1c4 Merge pull request \fI\%#37502\fP from cachedout/issue_37444
  225094. .IP \(bu 2
  225095. 4c5ab057ce Remove debugging
  225096. .IP \(bu 2
  225097. 17d01e4f4c Log proper message on returners that cannot be loaded
  225098. .UNINDENT
  225099. .IP \(bu 2
  225100. \fBISSUE\fP \fI\%#37389\fP: (\fI\%d101nelson\fP) Some core grains are inaccurate or incomplete for Solaris (refs: \fI\%#37472\fP)
  225101. .IP \(bu 2
  225102. \fBPR\fP \fI\%#37494\fP: (\fI\%sjorge\fP) Forgot to update os_family map in \fI\%#37472\fP
  225103. @ \fI2016\-11\-06 22:18:54 UTC\fP
  225104. .INDENT 2.0
  225105. .IP \(bu 2
  225106. \fBPR\fP \fI\%#37472\fP: (\fI\%sjorge\fP) 2016.3 solaris grains improvements (refs: \fI\%#37494\fP)
  225107. .IP \(bu 2
  225108. 2422dafd52 Merge pull request \fI\%#37494\fP from sjorge/2016.3\-osfam_map
  225109. .IP \(bu 2
  225110. 96ba545492 Forgot to update os_family map in \fI\%#37472\fP
  225111. .UNINDENT
  225112. .IP \(bu 2
  225113. \fBPR\fP \fI\%#37496\fP: (\fI\%mcalmer\fP) fix status handling in sysv init scripts
  225114. @ \fI2016\-11\-06 22:18:00 UTC\fP
  225115. .INDENT 2.0
  225116. .IP \(bu 2
  225117. 41bd8e3f52 Merge pull request \fI\%#37496\fP from mcalmer/fix\-status\-handling\-in\-sysv\-init\-scripts
  225118. .IP \(bu 2
  225119. 1fb2c4dfcf fix status handling in sysv init scripts
  225120. .UNINDENT
  225121. .IP \(bu 2
  225122. \fBPR\fP \fI\%#37497\fP: (\fI\%terminalmage\fP) Update 2016.3.5 release notes with source_hash_name explanation
  225123. @ \fI2016\-11\-06 22:17:40 UTC\fP
  225124. .INDENT 2.0
  225125. .IP \(bu 2
  225126. e741a773a5 Merge pull request \fI\%#37497\fP from terminalmage/release_notes
  225127. .IP \(bu 2
  225128. c08038d9ea Update 2016.3.5 release notes with source_hash_name explanation
  225129. .UNINDENT
  225130. .IP \(bu 2
  225131. \fBPR\fP \fI\%#37486\fP: (\fI\%twangboy\fP) Add requirement for PowerShell 3 on Windows
  225132. @ \fI2016\-11\-06 06:01:07 UTC\fP
  225133. .INDENT 2.0
  225134. .IP \(bu 2
  225135. f4426c2233 Merge pull request \fI\%#37486\fP from twangboy/fix_win_docs
  225136. .IP \(bu 2
  225137. 9e0631a1ae Add docs denoting the requirement for at least PowerShell 3
  225138. .UNINDENT
  225139. .IP \(bu 2
  225140. \fBPR\fP \fI\%#37493\fP: (\fI\%cachedout\fP) Add sdb support to minion and master configs
  225141. @ \fI2016\-11\-06 06:00:18 UTC\fP
  225142. .INDENT 2.0
  225143. .IP \(bu 2
  225144. a1f355a569 Merge pull request \fI\%#37493\fP from cachedout/minion_master_sdb
  225145. .IP \(bu 2
  225146. 9761a462c2 Add sdb support to minion and master configs
  225147. .UNINDENT
  225148. .IP \(bu 2
  225149. \fBISSUE\fP \fI\%#31135\fP: (\fI\%jeffreyctang\fP) file.line mode=replace breaks on empty file. (refs: \fI\%#37452\fP)
  225150. .IP \(bu 2
  225151. \fBPR\fP \fI\%#37452\fP: (\fI\%rallytime\fP) file.line with mode=replace on an empty file should return False, not stacktrace
  225152. @ \fI2016\-11\-06 01:55:11 UTC\fP
  225153. .INDENT 2.0
  225154. .IP \(bu 2
  225155. be93710fee Merge pull request \fI\%#37452\fP from rallytime/fix\-31135
  225156. .IP \(bu 2
  225157. c792f76d2f Bump log level from debug to warning on empty file
  225158. .IP \(bu 2
  225159. 5f181cf00d file.line with mode=replace on an empty file should return False
  225160. .IP \(bu 2
  225161. 94a00c66eb Write a unit test demonstrating stack trace in \fI\%#31135\fP
  225162. .UNINDENT
  225163. .IP \(bu 2
  225164. \fBISSUE\fP \fI\%#37001\fP: (\fI\%phil123456\fP) URGENT : archive.extracted does not work anymore (refs: \fI\%#37081\fP, #saltstack/salt\(ga#37081\(ga_)
  225165. .IP \(bu 2
  225166. \fBISSUE\fP \fI\%#29010\fP: (\fI\%The\-Loeki\fP) file.managed download failing checksum testing for Ubuntu initrd w/source_hash (refs: \fI\%#37469\fP)
  225167. .INDENT 2.0
  225168. .IP \(bu 2
  225169. \fBPR\fP \fI\%saltstack/salt#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification (refs: \fI\%#37469\fP)
  225170. .UNINDENT
  225171. .IP \(bu 2
  225172. \fBPR\fP \fI\%#37469\fP: (\fI\%terminalmage\fP) Rewrite file.extract_hash to improve its matching ability
  225173. @ \fI2016\-11\-06 01:50:01 UTC\fP
  225174. .INDENT 2.0
  225175. .IP \(bu 2
  225176. \fBPR\fP \fI\%#37081\fP: (\fI\%terminalmage\fP) Fix archive.extracted remote source_hash verification (refs: \fI\%#37469\fP)
  225177. .IP \(bu 2
  225178. 129b0387e6 Merge pull request \fI\%#37469\fP from terminalmage/issue29010
  225179. .IP \(bu 2
  225180. a3f38e5a9f Update file.extract_hash unit tests
  225181. .IP \(bu 2
  225182. b26b528f79 Add the source_hash_name param to file.managed states
  225183. .IP \(bu 2
  225184. 52fe72d402 Rewrite file.extract_hash
  225185. .UNINDENT
  225186. .IP \(bu 2
  225187. \fBISSUE\fP \fI\%#37389\fP: (\fI\%d101nelson\fP) Some core grains are inaccurate or incomplete for Solaris (refs: \fI\%#37472\fP)
  225188. .IP \(bu 2
  225189. \fBPR\fP \fI\%#37472\fP: (\fI\%sjorge\fP) 2016.3 solaris grains improvements (refs: \fI\%#37494\fP)
  225190. @ \fI2016\-11\-06 01:46:10 UTC\fP
  225191. .INDENT 2.0
  225192. .IP \(bu 2
  225193. 9426b9d5c4 Merge pull request \fI\%#37472\fP from sjorge/2016.3\-solaris\-grains
  225194. .IP \(bu 2
  225195. 2958f5ce52 detect and properly handle OmniOS
  225196. .IP \(bu 2
  225197. 37c3a7f5ab handle Oracle Solaris better
  225198. .IP \(bu 2
  225199. 69706d32be parse minorrelease if it has a / in it
  225200. .IP \(bu 2
  225201. d1cf4a0e56 improve regex for parsing /etc/release using files from Solaris 8 SPARC and Solaris 10
  225202. .IP \(bu 2
  225203. 88eddef765 some more cleanup for smartos
  225204. .IP \(bu 2
  225205. d3ff39f09c improve smartos os version grains
  225206. .UNINDENT
  225207. .IP \(bu 2
  225208. \fBPR\fP \fI\%#37478\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225209. @ \fI2016\-11\-04 20:30:08 UTC\fP
  225210. .INDENT 2.0
  225211. .IP \(bu 2
  225212. 4ba63aba48 Merge pull request \fI\%#37478\fP from rallytime/merge\-2016.3
  225213. .IP \(bu 2
  225214. 3483a445f2 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225215. .INDENT 2.0
  225216. .IP \(bu 2
  225217. 35888c2e30 Merge pull request \fI\%#37408\fP from terminalmage/issue37286
  225218. .INDENT 2.0
  225219. .IP \(bu 2
  225220. 4e4a05731e Strip slashes from gitfs mountpoints
  225221. .UNINDENT
  225222. .IP \(bu 2
  225223. b6c57c6c8d Merge pull request \fI\%#37418\fP from terminalmage/issue36849
  225224. .INDENT 2.0
  225225. .IP \(bu 2
  225226. 740bc54239 Do not use compression in tornado httpclient requests
  225227. .UNINDENT
  225228. .IP \(bu 2
  225229. 7fba8aaa7e Merge pull request \fI\%#37441\fP from rallytime/bp\-37428
  225230. .INDENT 2.0
  225231. .IP \(bu 2
  225232. 6fe3ef49de Fix incorrect reference of __utils__ in salt.utils
  225233. .UNINDENT
  225234. .UNINDENT
  225235. .IP \(bu 2
  225236. \fBPR\fP \fI\%#37485\fP: (\fI\%rallytime\fP) Get release notes started for 2016.3.5
  225237. .IP \(bu 2
  225238. \fBPR\fP \fI\%#37483\fP: (\fI\%rallytime\fP) [2016.3] Doc version updated to 2016.3.4
  225239. .UNINDENT
  225240. .IP \(bu 2
  225241. \fBISSUE\fP \fI\%#37123\fP: (\fI\%nevins\-b\fP) file.recurse state doesn\(aqt support pulling from other environments (refs: \fI\%#37121\fP)
  225242. .IP \(bu 2
  225243. \fBPR\fP \fI\%#37121\fP: (\fI\%nevins\-b\fP) allow the file.recurse state to support saltenv
  225244. @ \fI2016\-11\-04 05:59:28 UTC\fP
  225245. .INDENT 2.0
  225246. .IP \(bu 2
  225247. 580eca709b Merge pull request \fI\%#37121\fP from nevins\-b/2016.3
  225248. .IP \(bu 2
  225249. 99d2c360ed making messaging in tests match new return
  225250. .IP \(bu 2
  225251. bc4b0e7cda adding test for saltenv in file.recurse source url
  225252. .IP \(bu 2
  225253. 3315b67075 fixing saltenv if not set in url
  225254. .IP \(bu 2
  225255. a9683cbbd8 allow the file.recurse state to support saltenv (salt://example/dir?saltenv=dev)
  225256. .UNINDENT
  225257. .IP \(bu 2
  225258. \fBPR\fP \fI\%#37426\fP: (\fI\%jfindlay\fP) Wait for macOS to change system settings
  225259. @ \fI2016\-11\-04 04:35:52 UTC\fP
  225260. .INDENT 2.0
  225261. .IP \(bu 2
  225262. \fBPR\fP \fI\%#37351\fP: (\fI\%jfindlay\fP) modules.mac_power: give macOS time to change setting (refs: \fI\%#37426\fP)
  225263. .IP \(bu 2
  225264. 766b1437c2 Merge pull request \fI\%#37426\fP from jfindlay/mac_sleep
  225265. .IP \(bu 2
  225266. 43a8e199bf modules.mac_power: wait for system to make change
  225267. .IP \(bu 2
  225268. feabca6e0b modules.mac_system: wait for system to make change
  225269. .IP \(bu 2
  225270. 0213eb9a07 utils.mac_utils: add confirm_updated
  225271. .UNINDENT
  225272. .IP \(bu 2
  225273. \fBISSUE\fP \fI\%#37238\fP: (\fI\%cmclaughlin\fP) Restarting master causes minion to hang (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225274. .IP \(bu 2
  225275. \fBISSUE\fP \fI\%#37018\fP: (\fI\%tsaridas\fP) get events from python (refs: \fI\%#37438\fP, \fI\%#37602\fP)
  225276. .IP \(bu 2
  225277. \fBPR\fP \fI\%#37438\fP: (\fI\%DmitryKuzmenko\fP) Fix for \fI\%#37238\fP salt hang on master restart (refs: \fI\%#37602\fP)
  225278. @ \fI2016\-11\-04 04:10:51 UTC\fP
  225279. .INDENT 2.0
  225280. .IP \(bu 2
  225281. 9eab5c8f71 Merge pull request \fI\%#37438\fP from DSRCorporation/bugs/37238_salt_hang_on_master_restart
  225282. .IP \(bu 2
  225283. f253d3ce4a Auto reconnect \fIsalt\fP to master if the connection was lost.
  225284. .IP \(bu 2
  225285. \fBPR\fP \fI\%saltstack/salt#31207\fP: (\fI\%thusoy\fP) Remove error logging of missing boto libraries (refs: \fI\%#37440\fP)
  225286. .UNINDENT
  225287. .IP \(bu 2
  225288. \fBPR\fP \fI\%#37440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31207\fP to 2016.3
  225289. @ \fI2016\-11\-04 04:09:33 UTC\fP
  225290. .INDENT 2.0
  225291. .IP \(bu 2
  225292. \fBPR\fP \fI\%#31207\fP: (\fI\%thusoy\fP) Remove error logging of missing boto libraries (refs: \fI\%#37440\fP)
  225293. .IP \(bu 2
  225294. 9aa7073f70 Merge pull request \fI\%#37440\fP from rallytime/bp\-31207
  225295. .IP \(bu 2
  225296. c71ae61271 Remove error logging of missing boto libraries
  225297. .UNINDENT
  225298. .IP \(bu 2
  225299. \fBPR\fP \fI\%#37442\fP: (\fI\%twangboy\fP) Create paths.d directory
  225300. @ \fI2016\-11\-04 04:07:19 UTC\fP
  225301. .INDENT 2.0
  225302. .IP \(bu 2
  225303. edbfadca21 Merge pull request \fI\%#37442\fP from twangboy/fix_osx_postinstall
  225304. .IP \(bu 2
  225305. 8091a3065e Create paths.d directory
  225306. .UNINDENT
  225307. .IP \(bu 2
  225308. \fBPR\fP \fI\%#37445\fP: (\fI\%twangboy\fP) Check for Server os before checking [DO NOT MERGE FORWARD]
  225309. @ \fI2016\-11\-04 04:04:49 UTC\fP
  225310. .INDENT 2.0
  225311. .IP \(bu 2
  225312. afb1b3cee5 Merge pull request \fI\%#37445\fP from twangboy/fix_import_error_2016.3
  225313. .IP \(bu 2
  225314. c0d5ebdd8a Check for Server os before checking
  225315. .UNINDENT
  225316. .IP \(bu 2
  225317. \fBPR\fP \fI\%#37446\fP: (\fI\%twangboy\fP) Detect VC++ for Python on Win32
  225318. @ \fI2016\-11\-04 04:04:02 UTC\fP
  225319. .INDENT 2.0
  225320. .IP \(bu 2
  225321. 7a9f95ab3b Merge pull request \fI\%#37446\fP from twangboy/fix_build_32
  225322. .IP \(bu 2
  225323. 2de69f48f8 Detect VC for Python correctly on 32bit Windows
  225324. .UNINDENT
  225325. .IP \(bu 2
  225326. \fBISSUE\fP \fI\%saltstack/salt#36961\fP: (\fI\%nullify005\fP) boto_secgroup assumes a string when checking ip_protocol validity when not tcp|udp|all|\-1 (refs: \fI\%#37447\fP)
  225327. .IP \(bu 2
  225328. \fBPR\fP \fI\%#37447\fP: (\fI\%rallytime\fP) Cast ip_protocol rule as a str() in boto_secgroup.present
  225329. @ \fI2016\-11\-04 04:03:45 UTC\fP
  225330. .INDENT 2.0
  225331. .IP \(bu 2
  225332. 651e0f728f Merge pull request \fI\%#37447\fP from rallytime/fix\-36961
  225333. .IP \(bu 2
  225334. 6b930ac7aa Cast ip_protocol rule as a str() in boto_secgroup.present
  225335. .UNINDENT
  225336. .IP \(bu 2
  225337. \fBISSUE\fP \fI\%#36446\fP: (\fI\%whiteinge\fP) Custom salt\-api config problem (refs: \fI\%#37455\fP)
  225338. .INDENT 2.0
  225339. .IP \(bu 2
  225340. \fBPR\fP \fI\%saltstack/salt#36386\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master \fI\%#35734\fP (refs: \fI\%#37455\fP)
  225341. .UNINDENT
  225342. .IP \(bu 2
  225343. \fBPR\fP \fI\%#37455\fP: (\fI\%techhat\fP) Make api opts respect correct root_dir
  225344. @ \fI2016\-11\-04 03:25:40 UTC\fP
  225345. .INDENT 2.0
  225346. .IP \(bu 2
  225347. \fBPR\fP \fI\%#35734\fP: (\fI\%xiaoanyunfei\fP) fix salt\-api\(aqs default opts were covered by salt\-master (refs: #\(gasaltstack/salt#36386\(ga_)
  225348. .IP \(bu 2
  225349. a51d944c7c Merge pull request \fI\%#37455\fP from techhat/issue36446
  225350. .IP \(bu 2
  225351. 7eff90d61d Make api opts respect correct root_dir
  225352. .UNINDENT
  225353. .IP \(bu 2
  225354. \fBPR\fP \fI\%#37459\fP: (\fI\%twangboy\fP) Fix error message when ConvertTo\-Json not supported [DO NOT MERGE FORWARD]
  225355. @ \fI2016\-11\-04 03:22:31 UTC\fP
  225356. .INDENT 2.0
  225357. .IP \(bu 2
  225358. 3591bf0f58 Merge pull request \fI\%#37459\fP from twangboy/fix_dsc_json_msg_2016.3
  225359. .IP \(bu 2
  225360. 949b70913d Use cmd.run_all instead of cmd.shell
  225361. .UNINDENT
  225362. .IP \(bu 2
  225363. \fBPR\fP \fI\%#37430\fP: (\fI\%meaksh\fP) Including resolution parameters in the Zypper debug\-solver call during a dry\-run dist\-upgrade (2016.3)
  225364. @ \fI2016\-11\-03 14:35:46 UTC\fP
  225365. .INDENT 2.0
  225366. .IP \(bu 2
  225367. \fBPR\fP \fI\%#37353\fP: (\fI\%meaksh\fP) Including resolution parameters in the Zypper debug\-solver call during a dry\-run dist\-upgrade (refs: \fI\%#37430\fP)
  225368. .IP \(bu 2
  225369. 80a99c4cc5 Merge pull request \fI\%#37430\fP from meaksh/zypper\-dist\-upgrade\-debug\-solver\-fix\-2016.3
  225370. .IP \(bu 2
  225371. ffc596f215 Including resolver params for Zypper debug\-solver
  225372. .UNINDENT
  225373. .IP \(bu 2
  225374. \fBISSUE\fP \fI\%#37388\fP: (\fI\%tyhunt99\fP) [2016.3.4] Refreshing of an s3 file server results in an exception. (refs: \fI\%#37428\fP)
  225375. .INDENT 2.0
  225376. .IP \(bu 2
  225377. \fBPR\fP \fI\%#37428\fP: (\fI\%cachedout\fP) Fix incorrect reference of __utils__ in salt.utils (refs: \fI\%#37441\fP)
  225378. .UNINDENT
  225379. .IP \(bu 2
  225380. \fBPR\fP \fI\%#37419\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  225381. @ \fI2016\-11\-02 21:40:04 UTC\fP
  225382. .INDENT 2.0
  225383. .IP \(bu 2
  225384. 7864f9b79d Merge pull request \fI\%#37419\fP from rallytime/merge\-2016.3
  225385. .IP \(bu 2
  225386. bce47c9175 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  225387. .INDENT 2.0
  225388. .IP \(bu 2
  225389. 7b1d3b5562 Merge pull request \fI\%#37392\fP from rallytime/bp\-33190
  225390. .IP \(bu 2
  225391. 4063bae5de catch None cases for comments in jboss7 state module
  225392. .UNINDENT
  225393. .IP \(bu 2
  225394. \fBPR\fP \fI\%#37416\fP: (\fI\%terminalmage\fP) Fix regression in output for Ctrl\-c\(aqed CLI jobs
  225395. .IP \(bu 2
  225396. \fBPR\fP \fI\%#37414\fP: (\fI\%pass\-by\-value\fP) Add unit tests for cloning from snapshot
  225397. .IP \(bu 2
  225398. \fBPR\fP \fI\%#37350\fP: (\fI\%pass\-by\-value\fP) Add handling for full and linked clone (refs: \fI\%#37414\fP)
  225399. .IP \(bu 2
  225400. \fBPR\fP \fI\%saltstack/salt#37401\fP: (\fI\%cachedout\fP) Bootstrap delay option for salt\-cloud (refs: \fI\%#37404\fP)
  225401. .UNINDENT
  225402. .IP \(bu 2
  225403. \fBPR\fP \fI\%#37404\fP: (\fI\%cachedout\fP) Revert "Bootstrap delay option for salt\-cloud"
  225404. @ \fI2016\-11\-02 09:48:53 UTC\fP
  225405. .INDENT 2.0
  225406. .IP \(bu 2
  225407. ecd794a233 Merge pull request \fI\%#37404\fP from saltstack/revert\-37401\-bootstrap_delay
  225408. .IP \(bu 2
  225409. e864de8f03 Revert "Bootstrap delay option for salt\-cloud"
  225410. .UNINDENT
  225411. .IP \(bu 2
  225412. \fBPR\fP \fI\%#37401\fP: (\fI\%cachedout\fP) Bootstrap delay option for salt\-cloud
  225413. @ \fI2016\-11\-02 09:02:13 UTC\fP
  225414. .INDENT 2.0
  225415. .IP \(bu 2
  225416. 2eb44fbd11 Merge pull request \fI\%#37401\fP from cachedout/bootstrap_delay
  225417. .IP \(bu 2
  225418. 6e42b0e157 Bootstrap delay option for salt\-cloud
  225419. .UNINDENT
  225420. .IP \(bu 2
  225421. \fBPR\fP \fI\%#37350\fP: (\fI\%pass\-by\-value\fP) Add handling for full and linked clone (refs: \fI\%#37414\fP)
  225422. @ \fI2016\-11\-02 08:02:29 UTC\fP
  225423. .INDENT 2.0
  225424. .IP \(bu 2
  225425. 9446e48da0 Merge pull request \fI\%#37350\fP from pass\-by\-value/full_and_linked_clone_v1
  225426. .IP \(bu 2
  225427. d8b1c9c777 Add handling for full and linked clone and commit disk mode additions
  225428. .UNINDENT
  225429. .IP \(bu 2
  225430. \fBISSUE\fP \fI\%#34841\fP: (\fI\%Ch3LL\fP) Wrong return when using \fIuser.chgroups\fP on windows (refs: \fI\%#37386\fP)
  225431. .IP \(bu 2
  225432. \fBPR\fP \fI\%#37386\fP: (\fI\%rallytime\fP) Fix win_useradd.chgroups return when cmd.run_all retcode != 0
  225433. @ \fI2016\-11\-02 06:34:12 UTC\fP
  225434. .INDENT 2.0
  225435. .IP \(bu 2
  225436. c7f4d7f76a Merge pull request \fI\%#37386\fP from rallytime/fix\-34841
  225437. .IP \(bu 2
  225438. c70492a1fe Fix win_useradd.chgroups return when cmd.run_all retcode != 0
  225439. .UNINDENT
  225440. .IP \(bu 2
  225441. \fBISSUE\fP \fI\%#34263\fP: (\fI\%vernondcole\fP) Use of dnsmasq.set_config injects unintentional text into the configuration file. (refs: \fI\%#37390\fP)
  225442. .IP \(bu 2
  225443. \fBPR\fP \fI\%#37390\fP: (\fI\%rallytime\fP) Don\(aqt insert __pub* keys into dnsmasq config file with set_config function
  225444. @ \fI2016\-11\-02 06:31:53 UTC\fP
  225445. .INDENT 2.0
  225446. .IP \(bu 2
  225447. 34b6c6459a Merge pull request \fI\%#37390\fP from rallytime/fix\-34263
  225448. .IP \(bu 2
  225449. e082ff538b Fix failing test now that we\(aqre raising a CommandExecutionError
  225450. .IP \(bu 2
  225451. c6a3476abb Filter out the __pub keys passed via **kwargs for dnsmasq.set_config
  225452. .IP \(bu 2
  225453. fd380c79b9 Add test case to reproduce dnsmasq.set_config failure in \fI\%#34263\fP
  225454. .UNINDENT
  225455. .IP \(bu 2
  225456. \fBISSUE\fP \fI\%#35163\fP: (\fI\%SolarisYan\fP) salt file.mkdir (refs: \fI\%#35287\fP, \fI\%#35189\fP)
  225457. .IP \(bu 2
  225458. \fBPR\fP \fI\%#37391\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35287\fP to 2016.3
  225459. @ \fI2016\-11\-02 06:18:26 UTC\fP
  225460. .INDENT 2.0
  225461. .IP \(bu 2
  225462. \fBPR\fP \fI\%#35287\fP: (\fI\%dere\fP) 2016.3 (refs: \fI\%#37391\fP)
  225463. .IP \(bu 2
  225464. \fBPR\fP \fI\%#35189\fP: (\fI\%dere\fP) return value for file.mkdir instead of None (refs: \fI\%#35287\fP)
  225465. .IP \(bu 2
  225466. 798b2acbe3 Merge pull request \fI\%#37391\fP from rallytime/bp\-35287
  225467. .IP \(bu 2
  225468. 0e1ebea5a4 Simplify return value to "True".
  225469. .IP \(bu 2
  225470. 13022c5cc4 return value for mkdir instead of None
  225471. .UNINDENT
  225472. .IP \(bu 2
  225473. \fBISSUE\fP \fI\%#37264\fP: (\fI\%junster1\fP) Parsing __grains__ with json.dumps in a module is returning an empty dict in 2016.3.3 (refs: \fI\%#37279\fP)
  225474. .IP \(bu 2
  225475. \fBPR\fP \fI\%#37279\fP: (\fI\%gtmanfred\fP) initialize super class of NamespacedDictWrapper
  225476. @ \fI2016\-11\-01 15:12:49 UTC\fP
  225477. .INDENT 2.0
  225478. .IP \(bu 2
  225479. 1a4833b3a1 Merge pull request \fI\%#37279\fP from gtmanfred/2016.3
  225480. .IP \(bu 2
  225481. 597f346d57 initialize super class of NamespacedDictWrapper
  225482. .UNINDENT
  225483. .IP \(bu 2
  225484. \fBPR\fP \fI\%#37351\fP: (\fI\%jfindlay\fP) modules.mac_power: give macOS time to change setting (refs: \fI\%#37426\fP)
  225485. @ \fI2016\-10\-31 19:15:40 UTC\fP
  225486. .INDENT 2.0
  225487. .IP \(bu 2
  225488. 351175931c Merge pull request \fI\%#37351\fP from jfindlay/mac_set
  225489. .IP \(bu 2
  225490. 0c58056d84 modules.mac_power: give macOS time to change setting
  225491. .UNINDENT
  225492. .IP \(bu 2
  225493. \fBPR\fP \fI\%#37340\fP: (\fI\%cachedout\fP) SIGILL \-> SIGKILL in process test
  225494. @ \fI2016\-10\-31 08:50:10 UTC\fP
  225495. .INDENT 2.0
  225496. .IP \(bu 2
  225497. 25c987e33a Merge pull request \fI\%#37340\fP from cachedout/ill_kill_3
  225498. .IP \(bu 2
  225499. a6b7417fe9 SIGILL \-> SIGKILL in process test
  225500. .UNINDENT
  225501. .IP \(bu 2
  225502. \fBISSUE\fP \fI\%#35480\fP: (\fI\%jelenak\fP) 200 processes of salt\-master (2016.3.2) (refs: \fI\%#37306\fP)
  225503. .IP \(bu 2
  225504. \fBPR\fP \fI\%#37306\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt use os.wait() on subprocesses managed by \fImultiprocessing\fP\&.
  225505. @ \fI2016\-10\-31 06:55:30 UTC\fP
  225506. .INDENT 2.0
  225507. .IP \(bu 2
  225508. 7f1654894d Merge pull request \fI\%#37306\fP from DSRCorporation/bugs/35480_master_shutdown_no_process_error
  225509. .IP \(bu 2
  225510. b6937ebaa8 Don\(aqt use os.wait() on subprocesses managed by \fImultiprocessing\fP\&.
  225511. .UNINDENT
  225512. .IP \(bu 2
  225513. \fBISSUE\fP \fI\%#34998\fP: (\fI\%exowaucka\fP) placementgroup parameter for salt\-cloud is undocumented (refs: \fI\%#37314\fP)
  225514. .IP \(bu 2
  225515. \fBPR\fP \fI\%#37314\fP: (\fI\%rallytime\fP) Document the existence of placementgroup option in ec2 driver
  225516. @ \fI2016\-10\-31 06:42:33 UTC\fP
  225517. .INDENT 2.0
  225518. .IP \(bu 2
  225519. bf8ba97d54 Merge pull request \fI\%#37314\fP from rallytime/fix\-34998
  225520. .IP \(bu 2
  225521. 39459ed30b Document the existence of placementgroup option in ec2 driver
  225522. .UNINDENT
  225523. .IP \(bu 2
  225524. \fBISSUE\fP \fI\%#36148\fP: (\fI\%alex\-zel\fP) Eauth error with openLDAP groups (refs: \fI\%#37219\fP)
  225525. .IP \(bu 2
  225526. \fBPR\fP \fI\%#37219\fP: (\fI\%alex\-zel\fP) Fix freeipa ldap groups
  225527. @ \fI2016\-10\-28 04:33:37 UTC\fP
  225528. .INDENT 2.0
  225529. .IP \(bu 2
  225530. e0baf4b193 Merge pull request \fI\%#37219\fP from alex\-zel/fix\-freeipa\-ldap\-groups
  225531. .IP \(bu 2
  225532. b5b2e7e097 Remove trailing whitespaces
  225533. .IP \(bu 2
  225534. 32f906b020 Add support for FreeIPA
  225535. .UNINDENT
  225536. .UNINDENT
  225537. .SS Salt 2016.3.6 Release Notes
  225538. .sp
  225539. Version 2016.3.6 is a bugfix release for 2016.3.0\&.
  225540. .SS Statistics
  225541. .INDENT 0.0
  225542. .IP \(bu 2
  225543. Total Merges: \fB119\fP
  225544. .IP \(bu 2
  225545. Total Issue References: \fB52\fP
  225546. .IP \(bu 2
  225547. Total PR References: \fB163\fP
  225548. .IP \(bu 2
  225549. Contributors: \fB43\fP (\fI\%Adaephon\-GH\fP, \fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%Foxlik\fP, \fI\%GideonRed\-zz\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%alexbleotu\fP, \fI\%anlutro\fP, \fI\%bobrik\fP, \fI\%cachedout\fP, \fI\%cro\fP, \fI\%dincamihai\fP, \fI\%drawsmcgraw\fP, \fI\%fboismenu\fP, \fI\%galet\fP, \fI\%garethgreenaway\fP, \fI\%grep4linux\fP, \fI\%gtmanfred\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%joe\-niland\fP, \fI\%lvg01\fP, \fI\%mbom2004\fP, \fI\%mcalmer\fP, \fI\%mchugh19\fP, \fI\%meaksh\fP, \fI\%mirceaulinic\fP, \fI\%morganwillcock\fP, \fI\%narendraingale2\fP, \fI\%nasenbaer13\fP, \fI\%ni3mm4nd\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%sergeizv\fP, \fI\%smarsching\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%twangboy\fP, \fI\%velom\fP, \fI\%vutny\fP, \fI\%yue9944882\fP)
  225550. .UNINDENT
  225551. .SS Security Fix
  225552. .sp
  225553. \fBCVE\-2017\-7893\fP Compromised salt\-minions can impersonate the salt\-master.
  225554. (Discovery credit: Frank Spierings)
  225555. .SS Changelog for v2016.3.5..v2016.3.6
  225556. .sp
  225557. \fIGenerated at: 2018\-05\-27 13:45:07 UTC\fP
  225558. .INDENT 0.0
  225559. .IP \(bu 2
  225560. \fBPR\fP \fI\%#40232\fP: (\fI\%rallytime\fP) Update release notes for 2016.3.6
  225561. @ \fI2017\-03\-22 21:09:35 UTC\fP
  225562. .INDENT 2.0
  225563. .IP \(bu 2
  225564. 24c4ae9c21 Merge pull request \fI\%#40232\fP from rallytime/update\-release\-notes
  225565. .IP \(bu 2
  225566. 2ead188b4f Update release notes for 2016.3.6
  225567. .UNINDENT
  225568. .IP \(bu 2
  225569. \fBISSUE\fP \fI\%#39854\fP: (\fI\%Foxlik\fP) quoted space in authorized_keys confuses ssh.py (refs: \fI\%#39855\fP)
  225570. .IP \(bu 2
  225571. \fBPR\fP \fI\%#39855\fP: (\fI\%Foxlik\fP) Use regular expression instead of split when replacing authorized_keys
  225572. @ \fI2017\-03\-22 18:28:32 UTC\fP
  225573. .INDENT 2.0
  225574. .IP \(bu 2
  225575. c59ae9a82c Merge pull request \fI\%#39855\fP from Foxlik/use_regex_to_compare_authorized_keys
  225576. .IP \(bu 2
  225577. d46845a5b6 Add newline at end of file
  225578. .IP \(bu 2
  225579. d4a3c8a66a Use regular expression instead of split when replacing authorized_keys
  225580. .UNINDENT
  225581. .IP \(bu 2
  225582. \fBPR\fP \fI\%#40221\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39179\fP to 2016.3
  225583. @ \fI2017\-03\-22 17:40:34 UTC\fP
  225584. .INDENT 2.0
  225585. .IP \(bu 2
  225586. \fBPR\fP \fI\%#39179\fP: (\fI\%mcalmer\fP) fix error parsing (refs: \fI\%#40221\fP)
  225587. .IP \(bu 2
  225588. fd10430018 Merge pull request \fI\%#40221\fP from rallytime/bp\-39179
  225589. .IP \(bu 2
  225590. 07dc2de084 fix error parsing
  225591. .UNINDENT
  225592. .IP \(bu 2
  225593. \fBISSUE\fP \fI\%#40203\fP: (\fI\%frogunder\fP) 2016.3.6. Minion don\(aqt connect to older master. (refs: \fI\%#40206\fP)
  225594. .IP \(bu 2
  225595. \fBPR\fP \fI\%#40206\fP: (\fI\%cro\fP) Leave sign_pub_messages off by default.
  225596. @ \fI2017\-03\-22 16:43:03 UTC\fP
  225597. .INDENT 2.0
  225598. .IP \(bu 2
  225599. a27a2cc3bb Merge pull request \fI\%#40206\fP from cro/sign_pub_take2
  225600. .IP \(bu 2
  225601. 01048de83f leave sign_pub_messages off on minion by default.
  225602. .IP \(bu 2
  225603. a82b005507 Leave sign_pub_messages off by default.
  225604. .UNINDENT
  225605. .IP \(bu 2
  225606. \fBPR\fP \fI\%#40193\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40117\fP to 2016.3
  225607. @ \fI2017\-03\-22 16:42:21 UTC\fP
  225608. .INDENT 2.0
  225609. .IP \(bu 2
  225610. \fBPR\fP \fI\%#40117\fP: (\fI\%narendraingale2\fP) Fix force remove (refs: \fI\%#40193\fP)
  225611. .IP \(bu 2
  225612. d1abb4cbaa Merge pull request \fI\%#40193\fP from rallytime/bp\-40117
  225613. .IP \(bu 2
  225614. cf1857904b More optimization.
  225615. .IP \(bu 2
  225616. 5a08266814 Removed debug statemnt
  225617. .IP \(bu 2
  225618. f557f7c6bb Added fix for issue 39393
  225619. .IP \(bu 2
  225620. bb62278b73 Reverting changes.
  225621. .IP \(bu 2
  225622. a9107cde44 Added if condition for broken link.
  225623. .UNINDENT
  225624. .IP \(bu 2
  225625. \fBPR\fP \fI\%#40196\fP: (\fI\%twangboy\fP) Update dependencies for PyOpenSSL
  225626. @ \fI2017\-03\-22 16:40:46 UTC\fP
  225627. .INDENT 2.0
  225628. .IP \(bu 2
  225629. 0f1ff4d4a8 Merge pull request \fI\%#40196\fP from twangboy/win_fix_deps
  225630. .IP \(bu 2
  225631. 6761527793 Update dependencies for PyOpenSSL
  225632. .UNINDENT
  225633. .IP \(bu 2
  225634. \fBPR\fP \fI\%#40184\fP: (\fI\%terminalmage\fP) Link to minion start reactor example from FAQ.
  225635. @ \fI2017\-03\-21 17:33:09 UTC\fP
  225636. .INDENT 2.0
  225637. .IP \(bu 2
  225638. b0501515cb Merge pull request \fI\%#40184\fP from terminalmage/link\-reactor\-example
  225639. .IP \(bu 2
  225640. a42be82993 Link to minion start reactor example from FAQ.
  225641. .UNINDENT
  225642. .IP \(bu 2
  225643. \fBPR\fP \fI\%#40182\fP: (\fI\%terminalmage\fP) Add support for "stopped" state to dockerng\(aqs mod_watch
  225644. @ \fI2017\-03\-21 15:40:29 UTC\fP
  225645. .INDENT 2.0
  225646. .IP \(bu 2
  225647. d4e6c58526 Merge pull request \fI\%#40182\fP from terminalmage/dockerng\-mod_watch\-stopped
  225648. .IP \(bu 2
  225649. 4629a26fb7 Add support for "stopped" state to dockerng\(aqs mod_watch
  225650. .UNINDENT
  225651. .IP \(bu 2
  225652. \fBPR\fP \fI\%#40171\fP: (\fI\%Ch3LL\fP) additional PRs/issues for 2016.3.6 release notes
  225653. @ \fI2017\-03\-20 22:14:17 UTC\fP
  225654. .INDENT 2.0
  225655. .IP \(bu 2
  225656. a0b4082484 Merge pull request \fI\%#40171\fP from Ch3LL/2016.3.6_release
  225657. .IP \(bu 2
  225658. 9c6d8d892f additional PRs/issues for 2016.3.6 release notes
  225659. .UNINDENT
  225660. .IP \(bu 2
  225661. \fBPR\fP \fI\%#40120\fP: (\fI\%sergeizv\fP) gce: Exclude GCENodeDriver objects from _expand_node result
  225662. @ \fI2017\-03\-20 21:44:42 UTC\fP
  225663. .INDENT 2.0
  225664. .IP \(bu 2
  225665. 33ba7821f7 Merge pull request \fI\%#40120\fP from sergeizv/gce\-expand\-node\-fix
  225666. .IP \(bu 2
  225667. 9d0fbe7e01 gce: Exclude GCENodeDriver objects from _expand_node result
  225668. .UNINDENT
  225669. .IP \(bu 2
  225670. \fBPR\fP \fI\%#40122\fP: (\fI\%meaksh\fP) Adding "pkg.install downloadonly=True" support to yum/dnf execution module
  225671. @ \fI2017\-03\-20 21:44:15 UTC\fP
  225672. .INDENT 2.0
  225673. .IP \(bu 2
  225674. 48843977c3 Merge pull request \fI\%#40122\fP from meaksh/2016.3\-yum\-downloadonly\-support
  225675. .IP \(bu 2
  225676. 067f3f77c2 Adding downloadonly support to yum/dnf module
  225677. .UNINDENT
  225678. .IP \(bu 2
  225679. \fBPR\fP \fI\%#40159\fP: (\fI\%cro\fP) Turn on sign_pub_messages by default.
  225680. @ \fI2017\-03\-20 21:00:49 UTC\fP
  225681. .INDENT 2.0
  225682. .IP \(bu 2
  225683. 60e1d4e2f3 Merge pull request \fI\%#40159\fP from cro/sign_pub
  225684. .IP \(bu 2
  225685. e663b761fb Fix small syntax error
  225686. .IP \(bu 2
  225687. 0a0f46fb14 Turn on sign_pub_messages by default. Make sure messages with no \(aqsig\(aq are dropped with error when sign_pub_messages is True.
  225688. .UNINDENT
  225689. .IP \(bu 2
  225690. \fBPR\fP \fI\%#40123\fP: (\fI\%twangboy\fP) Adds support for inet_pton in Windows to network util
  225691. @ \fI2017\-03\-20 16:25:47 UTC\fP
  225692. .INDENT 2.0
  225693. .IP \(bu 2
  225694. 28e4fc17b6 Merge pull request \fI\%#40123\fP from twangboy/win_fix_network
  225695. .IP \(bu 2
  225696. 06dfd55ef9 Adds support for inet_pton in Windows to network util
  225697. .UNINDENT
  225698. .IP \(bu 2
  225699. \fBISSUE\fP \fI\%#39995\fP: (\fI\%frogunder\fP) Head of Develop \- Multimaster error (refs: \fI\%#40141\fP)
  225700. .IP \(bu 2
  225701. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  225702. .IP \(bu 2
  225703. \fBPR\fP \fI\%#40141\fP: (\fI\%bobrik\fP) Use the first address if cannot connect to any
  225704. @ \fI2017\-03\-20 15:06:57 UTC\fP
  225705. .INDENT 2.0
  225706. .IP \(bu 2
  225707. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  225708. .IP \(bu 2
  225709. 35ddb79f59 Merge pull request \fI\%#40141\fP from bobrik/fallback\-resolve
  225710. .IP \(bu 2
  225711. af1545deed Use the first address if cannot connect to any
  225712. .UNINDENT
  225713. .IP \(bu 2
  225714. \fBPR\fP \fI\%#40059\fP: (\fI\%terminalmage\fP) Fix traceback when virtualenv.managed is invoked with nonexistant user
  225715. @ \fI2017\-03\-16 20:46:43 UTC\fP
  225716. .INDENT 2.0
  225717. .IP \(bu 2
  225718. 116201f345 Merge pull request \fI\%#40059\fP from terminalmage/fix\-virtualenv\-traceback
  225719. .IP \(bu 2
  225720. e3cfd29d6b Fix traceback when virtualenv.managed is invoked with nonexistant user
  225721. .UNINDENT
  225722. .IP \(bu 2
  225723. \fBPR\fP \fI\%#40090\fP: (\fI\%rallytime\fP) Back\-port \fI\%#40056\fP to 2016.3
  225724. @ \fI2017\-03\-16 19:42:58 UTC\fP
  225725. .INDENT 2.0
  225726. .IP \(bu 2
  225727. \fBPR\fP \fI\%#40056\fP: (\fI\%thatch45\fP) update mention bot blacklist (refs: \fI\%#40090\fP)
  225728. .IP \(bu 2
  225729. a01b52b9a3 Merge pull request \fI\%#40090\fP from rallytime/bp\-40056
  225730. .IP \(bu 2
  225731. ae012db87a update mention bot blacklist
  225732. .UNINDENT
  225733. .IP \(bu 2
  225734. \fBPR\fP \fI\%#40057\fP: (\fI\%cachedout\fP) More mentionbot blacklists
  225735. @ \fI2017\-03\-16 18:10:11 UTC\fP
  225736. .INDENT 2.0
  225737. .IP \(bu 2
  225738. d1570bba4c Merge pull request \fI\%#40057\fP from cachedout/ollie_blacklist
  225739. .IP \(bu 2
  225740. 0ac2e83d37 Merge branch \(aq2016.3\(aq into ollie_blacklist
  225741. .UNINDENT
  225742. .IP \(bu 2
  225743. \fBPR\fP \fI\%#40070\fP: (\fI\%Ch3LL\fP) update 2016.3.6 release notes with additional PR\(aqs
  225744. @ \fI2017\-03\-16 15:43:22 UTC\fP
  225745. .INDENT 2.0
  225746. .IP \(bu 2
  225747. d36bdb1a6e Merge pull request \fI\%#40070\fP from Ch3LL/2016.3.6_release
  225748. .IP \(bu 2
  225749. a1f8b49bd1 update 2016.3.6 release notes with additional PR\(aqs
  225750. .UNINDENT
  225751. .IP \(bu 2
  225752. \fBPR\fP \fI\%#40018\fP: (\fI\%meaksh\fP) Allows overriding \(aqtimeout\(aq and \(aqgather_job_timeout\(aq to \(aqmanage.up\(aq runner call
  225753. @ \fI2017\-03\-15 19:43:01 UTC\fP
  225754. .INDENT 2.0
  225755. .IP \(bu 2
  225756. 8dcffc7751 Merge pull request \fI\%#40018\fP from meaksh/2016.3\-handling\-timeouts\-for\-manage.up\-runner
  225757. .IP \(bu 2
  225758. 9f5c3b7dcd Allows to set custom timeouts for \(aqmanage.up\(aq and \(aqmanage.status\(aq
  225759. .IP \(bu 2
  225760. 2102d9c75c Allows to set \(aqtimeout\(aq and \(aqgather_job_timeout\(aq via kwargs
  225761. .UNINDENT
  225762. .IP \(bu 2
  225763. \fBPR\fP \fI\%#40038\fP: (\fI\%velom\fP) correctly parse "pkg_name===version" from pip freeze
  225764. @ \fI2017\-03\-15 19:30:03 UTC\fP
  225765. .INDENT 2.0
  225766. .IP \(bu 2
  225767. 22fc5299a2 Merge pull request \fI\%#40038\fP from velom/fix\-pip\-freeze\-parsing
  225768. .IP \(bu 2
  225769. 3fae91d879 correctly parse "pkg_name===version" from pip freeze
  225770. .UNINDENT
  225771. .IP \(bu 2
  225772. \fBISSUE\fP \fI\%#40036\fP: (\fI\%oogali\fP) UnboundLocalError: local variable \(aqifcfg\(aq referenced before assignment (refs: \fI\%#40053\fP)
  225773. .IP \(bu 2
  225774. \fBPR\fP \fI\%#40053\fP: (\fI\%gtmanfred\fP) Update rh_ip.py
  225775. @ \fI2017\-03\-15 18:57:32 UTC\fP
  225776. .INDENT 2.0
  225777. .IP \(bu 2
  225778. 3584f935fa Merge pull request \fI\%#40053\fP from saltstack/rh_ip_patch
  225779. .IP \(bu 2
  225780. 219947acdb Update rh_ip.py
  225781. .UNINDENT
  225782. .IP \(bu 2
  225783. \fBISSUE\fP \fI\%#40011\fP: (\fI\%tsaridas\fP) salt\-minion does not shutdown properly 2016.11.3 rh6 (refs: \fI\%#40041\fP)
  225784. .IP \(bu 2
  225785. \fBPR\fP \fI\%#40041\fP: (\fI\%terminalmage\fP) Fix transposed lines in salt.utils.process
  225786. @ \fI2017\-03\-15 17:58:24 UTC\fP
  225787. .INDENT 2.0
  225788. .IP \(bu 2
  225789. 837432d3d2 Merge pull request \fI\%#40041\fP from terminalmage/issue40011
  225790. .IP \(bu 2
  225791. 5b5d1b375c Fix transposed lines in salt.utils.process
  225792. .UNINDENT
  225793. .IP \(bu 2
  225794. \fBPR\fP \fI\%#40021\fP: (\fI\%Ch3LL\fP) 2016.3.6 release notes with change log
  225795. @ \fI2017\-03\-14 21:06:18 UTC\fP
  225796. .INDENT 2.0
  225797. .IP \(bu 2
  225798. ee7f3b1200 Merge pull request \fI\%#40021\fP from Ch3LL/2016.3.6_release
  225799. .IP \(bu 2
  225800. f3e7e4fb2a Add 2016.3.6 Release Notes
  225801. .UNINDENT
  225802. .IP \(bu 2
  225803. \fBPR\fP \fI\%#40016\fP: (\fI\%terminalmage\fP) Attempt to fix failing grains tests in 2016.3
  225804. @ \fI2017\-03\-14 18:34:32 UTC\fP
  225805. .INDENT 2.0
  225806. .IP \(bu 2
  225807. 26895b7be2 Merge pull request \fI\%#40016\fP from terminalmage/fix\-grains\-test
  225808. .IP \(bu 2
  225809. 0ec81a4cde Fixup a syntax error
  225810. .IP \(bu 2
  225811. 5d84b40bfd Attempt to fix failing grains tests in 2016.3
  225812. .UNINDENT
  225813. .IP \(bu 2
  225814. \fBPR\fP \fI\%#39980\fP: (\fI\%vutny\fP) [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  225815. @ \fI2017\-03\-14 17:16:14 UTC\fP
  225816. .INDENT 2.0
  225817. .IP \(bu 2
  225818. 0c61d064ad Merge pull request \fI\%#39980\fP from vutny/cmd\-run\-state\-bg
  225819. .IP \(bu 2
  225820. a81dc9dfc1 [2016.3] Allow to use \fIbg\fP kwarg for \fIcmd.run\fP state function
  225821. .UNINDENT
  225822. .IP \(bu 2
  225823. \fBISSUE\fP \fI\%#39942\fP: (\fI\%Foxlik\fP) Web Documentation not in sync with release 2016.11.3 (refs: \fI\%#39994\fP)
  225824. .IP \(bu 2
  225825. \fBPR\fP \fI\%#39994\fP: (\fI\%rallytime\fP) Add a versionadded tag for dockerng ulimits addition
  225826. @ \fI2017\-03\-13 20:58:02 UTC\fP
  225827. .INDENT 2.0
  225828. .IP \(bu 2
  225829. b042484455 Merge pull request \fI\%#39994\fP from rallytime/ulimits\-dockerng\-version
  225830. .IP \(bu 2
  225831. 37bd800fac Add a versionadded tag for dockerng ulimits addition
  225832. .UNINDENT
  225833. .IP \(bu 2
  225834. \fBPR\fP \fI\%#39988\fP: (\fI\%terminalmage\fP) Add comment explaining change from \fI\%#39973\fP
  225835. @ \fI2017\-03\-13 18:37:29 UTC\fP
  225836. .INDENT 2.0
  225837. .IP \(bu 2
  225838. \fBPR\fP \fI\%#39973\fP: (\fI\%terminalmage\fP) Don\(aqt use docker.Client instance from context if missing attributes (refs: \fI\%#39988\fP)
  225839. .IP \(bu 2
  225840. e125c94ba5 Merge pull request \fI\%#39988\fP from terminalmage/dockerng\-timeout
  225841. .IP \(bu 2
  225842. bd2519ed1b Add comment explaining change from \fI\%#39973\fP
  225843. .UNINDENT
  225844. .IP \(bu 2
  225845. \fBPR\fP \fI\%#39973\fP: (\fI\%terminalmage\fP) Don\(aqt use docker.Client instance from context if missing attributes (refs: \fI\%#39988\fP)
  225846. @ \fI2017\-03\-11 14:57:50 UTC\fP
  225847. .INDENT 2.0
  225848. .IP \(bu 2
  225849. cd0336e868 Merge pull request \fI\%#39973\fP from terminalmage/dockerng\-timeout
  225850. .IP \(bu 2
  225851. 869416e7db Don\(aqt use docker.Client instance from context if missing attributes
  225852. .UNINDENT
  225853. .IP \(bu 2
  225854. \fBPR\fP \fI\%#39962\fP: (\fI\%cachedout\fP) Disable mention bot delay on 2016.3
  225855. @ \fI2017\-03\-10 20:24:08 UTC\fP
  225856. .INDENT 2.0
  225857. .IP \(bu 2
  225858. 282c607d26 Merge pull request \fI\%#39962\fP from cachedout/disable_mentionbot_delay_3
  225859. .IP \(bu 2
  225860. 7a638f204b Disable mention bot delay on 2016.3
  225861. .INDENT 2.0
  225862. .IP \(bu 2
  225863. 5592c680b5 More mentionbot blacklists
  225864. .UNINDENT
  225865. .UNINDENT
  225866. .IP \(bu 2
  225867. \fBPR\fP \fI\%#39937\fP: (\fI\%cachedout\fP) Fix \-\-non\-gpg\-checks in zypper module
  225868. @ \fI2017\-03\-10 18:02:51 UTC\fP
  225869. .INDENT 2.0
  225870. .IP \(bu 2
  225871. 1e0c88ae08 Merge pull request \fI\%#39937\fP from cachedout/gpg_zypper
  225872. .IP \(bu 2
  225873. 13ed0d1209 Fix \-\-non\-gpg\-checks in zypper module
  225874. .UNINDENT
  225875. .IP \(bu 2
  225876. \fBPR\fP \fI\%#39929\fP: (\fI\%terminalmage\fP) Scrap event\-based approach for refreshing grains (2016.3 branch)
  225877. @ \fI2017\-03\-09 22:03:16 UTC\fP
  225878. .INDENT 2.0
  225879. .IP \(bu 2
  225880. 4526fc6e08 Merge pull request \fI\%#39929\fP from terminalmage/pr\-39770\-2016.3
  225881. .IP \(bu 2
  225882. cf0100dabe Scrap event\-based approach for refreshing grains
  225883. .UNINDENT
  225884. .IP \(bu 2
  225885. \fBISSUE\fP \fI\%#22080\fP: (\fI\%The\-Loeki\fP) CIDR matching for IPv6 / improve IPv6 support in utils.network (refs: \fI\%#39919\fP)
  225886. .IP \(bu 2
  225887. \fBPR\fP \fI\%#39919\fP: (\fI\%The\-Loeki\fP) CIDR matching supports IPv6, update docs
  225888. @ \fI2017\-03\-09 16:03:00 UTC\fP
  225889. .INDENT 2.0
  225890. .IP \(bu 2
  225891. 111110caf8 Merge pull request \fI\%#39919\fP from The\-Loeki/patch\-1
  225892. .IP \(bu 2
  225893. 170cbadc54 CIDR matching supports IPv6, update docs
  225894. .UNINDENT
  225895. .IP \(bu 2
  225896. \fBPR\fP \fI\%#39899\fP: (\fI\%techhat\fP) Update cleanup function for azure
  225897. @ \fI2017\-03\-08 23:28:33 UTC\fP
  225898. .INDENT 2.0
  225899. .IP \(bu 2
  225900. caf10e9988 Merge pull request \fI\%#39899\fP from techhat/cleanupdisks
  225901. .IP \(bu 2
  225902. baf4579e63 Update cleanup function for azure
  225903. .UNINDENT
  225904. .IP \(bu 2
  225905. \fBPR\fP \fI\%#39871\fP: (\fI\%terminalmage\fP) Squelch warning for pygit2 import
  225906. @ \fI2017\-03\-07 20:40:18 UTC\fP
  225907. .INDENT 2.0
  225908. .IP \(bu 2
  225909. fcf95f3654 Merge pull request \fI\%#39871\fP from terminalmage/squelch\-import\-warning
  225910. .IP \(bu 2
  225911. 2b2ec69d04 Squelch warning for pygit2 import
  225912. .UNINDENT
  225913. .IP \(bu 2
  225914. \fBPR\fP \fI\%#39794\fP: (\fI\%cachedout\fP) Clean up errors which might be thrown when the monitor socket shuts down
  225915. @ \fI2017\-03\-04 16:12:37 UTC\fP
  225916. .INDENT 2.0
  225917. .IP \(bu 2
  225918. f223fa8906 Merge pull request \fI\%#39794\fP from cachedout/clean_monitor_socket_shutdown
  225919. .IP \(bu 2
  225920. 2e683e788b Clean up errors which might be thrown when the monitor socket shuts down
  225921. .UNINDENT
  225922. .IP \(bu 2
  225923. \fBPR\fP \fI\%#39819\fP: (\fI\%terminalmage\fP) Improve the Top File matching docs
  225924. @ \fI2017\-03\-04 16:06:40 UTC\fP
  225925. .INDENT 2.0
  225926. .IP \(bu 2
  225927. 4002dc1947 Merge pull request \fI\%#39819\fP from terminalmage/top\-file\-matching\-docs
  225928. .IP \(bu 2
  225929. 7178e77eee Improve the Top File matching docs
  225930. .UNINDENT
  225931. .IP \(bu 2
  225932. \fBPR\fP \fI\%#39820\fP: (\fI\%ni3mm4nd\fP) Add missing apostrophe in Beacons topic documentation
  225933. @ \fI2017\-03\-04 16:05:29 UTC\fP
  225934. .INDENT 2.0
  225935. .IP \(bu 2
  225936. c08aaeb7fd Merge pull request \fI\%#39820\fP from ni3mm4nd/beacons_topic_doc_typo
  225937. .IP \(bu 2
  225938. 804b12048c Add missing apostrophe
  225939. .UNINDENT
  225940. .IP \(bu 2
  225941. \fBPR\fP \fI\%#39826\fP: (\fI\%cachedout\fP) Add group func to yubikey auth
  225942. @ \fI2017\-03\-04 16:02:14 UTC\fP
  225943. .INDENT 2.0
  225944. .IP \(bu 2
  225945. cbd2a4e3cc Merge pull request \fI\%#39826\fP from cachedout/yubikey_fix
  225946. .IP \(bu 2
  225947. 6125eff02d Add group func to yubikey auth
  225948. .UNINDENT
  225949. .IP \(bu 2
  225950. \fBISSUE\fP \fI\%#39622\fP: (\fI\%drawsmcgraw\fP) boto_vpc.create_subnet does not properly assign tags (refs: \fI\%#39624\fP)
  225951. .IP \(bu 2
  225952. \fBPR\fP \fI\%#39624\fP: (\fI\%drawsmcgraw\fP) Address issue 39622
  225953. @ \fI2017\-03\-03 15:59:04 UTC\fP
  225954. .INDENT 2.0
  225955. .IP \(bu 2
  225956. f575ef459f Merge pull request \fI\%#39624\fP from drawsmcgraw/39622
  225957. .IP \(bu 2
  225958. 13da50be33 Fix indention lint errors
  225959. .IP \(bu 2
  225960. 545026352f Address issue 39622
  225961. .UNINDENT
  225962. .IP \(bu 2
  225963. \fBISSUE\fP \fI\%#39119\fP: (\fI\%frogunder\fP) Head of 2016.3 \- Salt\-Master uses 90 seconds to restart (refs: \fI\%#39796\fP)
  225964. .IP \(bu 2
  225965. \fBPR\fP \fI\%#39796\fP: (\fI\%cachedout\fP) Stop the process manager when it no longer has processes to manage
  225966. @ \fI2017\-03\-02 23:03:13 UTC\fP
  225967. .INDENT 2.0
  225968. .IP \(bu 2
  225969. 1f3619c1e5 Merge pull request \fI\%#39796\fP from cachedout/master_shutdown
  225970. .IP \(bu 2
  225971. e31d46c1b8 Stop the process manager when it no longer has processes to manage
  225972. .UNINDENT
  225973. .IP \(bu 2
  225974. \fBISSUE\fP \fI\%#39333\fP: (\fI\%jagguli\fP) Not Available error \- Scheduling custom runner functions (refs: \fI\%#39791\fP)
  225975. .IP \(bu 2
  225976. \fBISSUE\fP \fI\%#38514\fP: (\fI\%githubcdr\fP) Unable to schedule runners (refs: \fI\%#39791\fP)
  225977. .IP \(bu 2
  225978. \fBPR\fP \fI\%#39791\fP: (\fI\%gtmanfred\fP) load runners if role is master
  225979. @ \fI2017\-03\-02 19:43:41 UTC\fP
  225980. .INDENT 2.0
  225981. .IP \(bu 2
  225982. 53341cf152 Merge pull request \fI\%#39791\fP from gtmanfred/2016.3
  225983. .IP \(bu 2
  225984. 3ab4f843bf load runners if role is master
  225985. .UNINDENT
  225986. .IP \(bu 2
  225987. \fBISSUE\fP \fI\%#39782\fP: (\fI\%sergeizv\fP) salt\-cloud show_instance action fails on EC2 instances (refs: \fI\%#39784\fP)
  225988. .IP \(bu 2
  225989. \fBISSUE\fP \fI\%#33162\fP: (\fI\%jfindlay\fP) Key error with salt.utils.cloud.cache_node and EC2 (refs: \fI\%#39784\fP, \fI\%#33164\fP)
  225990. .IP \(bu 2
  225991. \fBPR\fP \fI\%#39784\fP: (\fI\%sergeizv\fP) Fix 39782
  225992. @ \fI2017\-03\-02 16:08:51 UTC\fP
  225993. .INDENT 2.0
  225994. .IP \(bu 2
  225995. \fBPR\fP \fI\%#33164\fP: (\fI\%jfindlay\fP) cloud.clouds.ec2: cache each named node (refs: \fI\%#39784\fP)
  225996. .IP \(bu 2
  225997. c234c25092 Merge pull request \fI\%#39784\fP from sergeizv/fix\-39782
  225998. .IP \(bu 2
  225999. b71c3fe13c Revert "cloud.clouds.ec2: cache each named node (\fI\%#33164\fP)"
  226000. .UNINDENT
  226001. .IP \(bu 2
  226002. \fBISSUE\fP \fI\%#39336\fP: (\fI\%GevatterGaul\fP) salt\-minion fails with IPv6 (refs: \fI\%#39766\fP)
  226003. .IP \(bu 2
  226004. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226005. .IP \(bu 2
  226006. \fBPR\fP \fI\%#39766\fP: (\fI\%rallytime\fP) Restore ipv6 connectivity and "master: <ip>:<port>" support
  226007. @ \fI2017\-03\-02 02:55:55 UTC\fP
  226008. .INDENT 2.0
  226009. .IP \(bu 2
  226010. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  226011. .IP \(bu 2
  226012. \fBPR\fP \fI\%#25021\fP: (\fI\%GideonRed\-zz\fP) Introduce ip:port minion config (refs: \fI\%#39766\fP)
  226013. .IP \(bu 2
  226014. 4ee59be22c Merge pull request \fI\%#39766\fP from rallytime/fix\-ipv6\-connection
  226015. .IP \(bu 2
  226016. 65b239664e Restore ipv6 connectivity and "master: <ip>:<port>" support
  226017. .UNINDENT
  226018. .IP \(bu 2
  226019. \fBISSUE\fP \fI\%#33187\fP: (\fI\%usbportnoy\fP) Deploy to jboss TypeError at boss7.py:469 (refs: \fI\%#39761\fP, \fI\%#39170\fP)
  226020. .IP \(bu 2
  226021. \fBPR\fP \fI\%#39761\fP: (\fI\%cachedout\fP) Properly display error in jboss7 state
  226022. @ \fI2017\-03\-01 18:43:23 UTC\fP
  226023. .INDENT 2.0
  226024. .IP \(bu 2
  226025. a24da31131 Merge pull request \fI\%#39761\fP from cachedout/issue_33187
  226026. .IP \(bu 2
  226027. c2df29edb2 Properly display error in jboss7 state
  226028. .UNINDENT
  226029. .IP \(bu 2
  226030. \fBPR\fP \fI\%#39728\fP: (\fI\%rallytime\fP) [2016.3] Bump latest release version to 2016.11.3
  226031. @ \fI2017\-02\-28 18:07:44 UTC\fP
  226032. .INDENT 2.0
  226033. .IP \(bu 2
  226034. 0888bc32ef Merge pull request \fI\%#39728\fP from rallytime/update\-release\-ver\-2016.3
  226035. .IP \(bu 2
  226036. c9bc8af8f2 [2016.3] Bump latest release version to 2016.11.3
  226037. .UNINDENT
  226038. .IP \(bu 2
  226039. \fBPR\fP \fI\%#39619\fP: (\fI\%terminalmage\fP) Add a function to simply refresh the grains
  226040. @ \fI2017\-02\-28 00:20:27 UTC\fP
  226041. .INDENT 2.0
  226042. .IP \(bu 2
  226043. b52dbeec68 Merge pull request \fI\%#39619\fP from terminalmage/zd1207
  226044. .IP \(bu 2
  226045. c7dfb494a6 Fix mocking for grains refresh
  226046. .IP \(bu 2
  226047. 7e0ced3b45 Properly hand proxy minions
  226048. .IP \(bu 2
  226049. 692c456da3 Add a function to simply refresh the grains
  226050. .UNINDENT
  226051. .IP \(bu 2
  226052. \fBISSUE\fP \fI\%#39482\fP: (\fI\%bobrik\fP) file.managed and file mode don\(aqt mention default mode (refs: \fI\%#39487\fP)
  226053. .IP \(bu 2
  226054. \fBPR\fP \fI\%#39487\fP: (\fI\%bobrik\fP) Document default permission modes for file module
  226055. @ \fI2017\-02\-24 23:49:00 UTC\fP
  226056. .INDENT 2.0
  226057. .IP \(bu 2
  226058. 3f8b5e6733 Merge pull request \fI\%#39487\fP from bobrik/mode\-docs
  226059. .IP \(bu 2
  226060. 41ef69b3ca Document default permission modes for file module
  226061. .UNINDENT
  226062. .IP \(bu 2
  226063. \fBISSUE\fP \fI\%#39169\fP: (\fI\%blueyed\fP) Using batch\-mode with \fIsalt.state\fP in orchestration runner considers all minions to have failed (refs: \fI\%#39641\fP)
  226064. .IP \(bu 2
  226065. \fBPR\fP \fI\%#39641\fP: (\fI\%smarsching\fP) Return runner return code in a way compatible with check_state_result
  226066. @ \fI2017\-02\-24 23:07:11 UTC\fP
  226067. .INDENT 2.0
  226068. .IP \(bu 2
  226069. f7389bf1f5 Merge pull request \fI\%#39641\fP from smarsching/issue\-39169\-2016.3
  226070. .IP \(bu 2
  226071. 88c2d9a540 Fix return data structure for runner (issue \fI\%#39169\fP).
  226072. .UNINDENT
  226073. .IP \(bu 2
  226074. \fBPR\fP \fI\%#39633\fP: (\fI\%terminalmage\fP) Fix misspelled argument in salt.modules.systemd.disable()
  226075. @ \fI2017\-02\-24 18:21:36 UTC\fP
  226076. .INDENT 2.0
  226077. .IP \(bu 2
  226078. fc970b6a16 Merge pull request \fI\%#39633\fP from terminalmage/fix\-systemd\-typo
  226079. .IP \(bu 2
  226080. ca54541abe Add missing unit test for disable func
  226081. .IP \(bu 2
  226082. 17109e1522 Fix misspelled argument in salt.modules.systemd.disable()
  226083. .UNINDENT
  226084. .IP \(bu 2
  226085. \fBPR\fP \fI\%#39613\fP: (\fI\%terminalmage\fP) Fix inaccurate documentation
  226086. @ \fI2017\-02\-24 06:07:35 UTC\fP
  226087. .INDENT 2.0
  226088. .IP \(bu 2
  226089. 53e78d67f6 Merge pull request \fI\%#39613\fP from terminalmage/fix\-docs
  226090. .IP \(bu 2
  226091. 9342eda377 Fix inaccurate documentation
  226092. .UNINDENT
  226093. .IP \(bu 2
  226094. \fBPR\fP \fI\%#39600\fP: (\fI\%vutny\fP) state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  226095. @ \fI2017\-02\-23 16:55:27 UTC\fP
  226096. .INDENT 2.0
  226097. .IP \(bu 2
  226098. 4e2b852f83 Merge pull request \fI\%#39600\fP from vutny/state\-file\-docs
  226099. .IP \(bu 2
  226100. 9b0427c27a state.file: drop non\-relevant examples for \fIsource_hash\fP parameter
  226101. .UNINDENT
  226102. .IP \(bu 2
  226103. \fBPR\fP \fI\%#39584\fP: (\fI\%cachedout\fP) A note in the docs about mentionbot
  226104. @ \fI2017\-02\-23 15:12:13 UTC\fP
  226105. .INDENT 2.0
  226106. .IP \(bu 2
  226107. ed83420417 Merge pull request \fI\%#39584\fP from cachedout/mentionbot_docs
  226108. .IP \(bu 2
  226109. 652044b18f A note in the docs about mentionbot
  226110. .UNINDENT
  226111. .IP \(bu 2
  226112. \fBPR\fP \fI\%#39583\fP: (\fI\%cachedout\fP) Add empty blacklist to mention bot
  226113. @ \fI2017\-02\-23 02:22:57 UTC\fP
  226114. .INDENT 2.0
  226115. .IP \(bu 2
  226116. d3e50b4f2f Merge pull request \fI\%#39583\fP from cachedout/mentionbot_blacklist
  226117. .IP \(bu 2
  226118. 62491c900d Add empty blacklist to mention bot
  226119. .UNINDENT
  226120. .IP \(bu 2
  226121. \fBPR\fP \fI\%#39579\fP: (\fI\%rallytime\fP) [2016.3] Pylint: Remove unused import
  226122. @ \fI2017\-02\-22 23:46:33 UTC\fP
  226123. .INDENT 2.0
  226124. .IP \(bu 2
  226125. 8352e6b44b Merge pull request \fI\%#39579\fP from rallytime/fix\-lint
  226126. .IP \(bu 2
  226127. 65889e1f30 [2016.3] Pylint: Remove unused import
  226128. .UNINDENT
  226129. .IP \(bu 2
  226130. \fBPR\fP \fI\%#39578\fP: (\fI\%cachedout\fP) Add mention\-bot configuration
  226131. @ \fI2017\-02\-22 23:39:24 UTC\fP
  226132. .INDENT 2.0
  226133. .IP \(bu 2
  226134. 43dba3254c Merge pull request \fI\%#39578\fP from cachedout/2016.3
  226135. .IP \(bu 2
  226136. 344499eef7 Add mention\-bot configuration
  226137. .UNINDENT
  226138. .IP \(bu 2
  226139. \fBPR\fP \fI\%#39542\fP: (\fI\%twangboy\fP) Gate ssh_known_hosts state against Windows
  226140. @ \fI2017\-02\-22 20:16:41 UTC\fP
  226141. .INDENT 2.0
  226142. .IP \(bu 2
  226143. 8f7a0f9d96 Merge pull request \fI\%#39542\fP from twangboy/gate_ssh_known_hosts
  226144. .IP \(bu 2
  226145. c90a52ef27 Remove expensive check
  226146. .IP \(bu 2
  226147. 6d645cae0e Add __virtual__ function
  226148. .UNINDENT
  226149. .IP \(bu 2
  226150. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226151. .IP \(bu 2
  226152. \fBPR\fP \fI\%#39289\fP: (\fI\%bobrik\fP) Autodetect IPv6 connectivity from minion to master (refs: \fI\%#39766\fP, \fI\%#40141\fP)
  226153. @ \fI2017\-02\-22 19:05:32 UTC\fP
  226154. .INDENT 2.0
  226155. .IP \(bu 2
  226156. c10965833a Merge pull request \fI\%#39289\fP from bobrik/autodetect\-ipv6
  226157. .IP \(bu 2
  226158. 2761a1b244 Move new kwargs to the end of argument list
  226159. .IP \(bu 2
  226160. 0df6b922e7 Narrow down connection exception to socket.error
  226161. .IP \(bu 2
  226162. e8a2cc0488 Do no try to connect to salt master in syndic config test
  226163. .IP \(bu 2
  226164. af9578631e Properly log address that failed to resolve or pass connection check
  226165. .IP \(bu 2
  226166. 9a34fbeba9 Actually connect to master instead of checking route availability
  226167. .IP \(bu 2
  226168. c494839c65 Avoid bare exceptions in dns_check
  226169. .IP \(bu 2
  226170. 29f376676d Rewrite dns_check to try to connect to address
  226171. .IP \(bu 2
  226172. 55965ce505 Autodetect IPv6 connectivity from minion to master
  226173. .UNINDENT
  226174. .IP \(bu 2
  226175. \fBPR\fP \fI\%#39569\fP: (\fI\%s0undt3ch\fP) Don\(aqt use our own six dictionary fixes in this branch
  226176. @ \fI2017\-02\-22 18:59:49 UTC\fP
  226177. .INDENT 2.0
  226178. .IP \(bu 2
  226179. 3fb928b63a Merge pull request \fI\%#39569\fP from s0undt3ch/2016.3
  226180. .IP \(bu 2
  226181. 49da135abd Don\(aqt use our own six dictionary fixes in this branch
  226182. .UNINDENT
  226183. .IP \(bu 2
  226184. \fBPR\fP \fI\%#39508\fP: (\fI\%dincamihai\fP) Openscap
  226185. @ \fI2017\-02\-22 18:36:36 UTC\fP
  226186. .INDENT 2.0
  226187. .IP \(bu 2
  226188. 91e3319df8 Merge pull request \fI\%#39508\fP from dincamihai/openscap
  226189. .IP \(bu 2
  226190. 9fedb84607 Always return oscap\(aqs stderr
  226191. .IP \(bu 2
  226192. 0ecde2cd02 Include oscap returncode in response
  226193. .UNINDENT
  226194. .IP \(bu 2
  226195. \fBISSUE\fP \fI\%#30802\fP: (\fI\%kjelle\fP) Missing ulimits on docker.running / dockerng.running (refs: \fI\%#39562\fP)
  226196. .IP \(bu 2
  226197. \fBPR\fP \fI\%#39562\fP: (\fI\%terminalmage\fP) Add ulimits to dockerng state/exec module
  226198. @ \fI2017\-02\-22 16:31:49 UTC\fP
  226199. .INDENT 2.0
  226200. .IP \(bu 2
  226201. fbe2194a93 Merge pull request \fI\%#39562\fP from terminalmage/issue30802
  226202. .IP \(bu 2
  226203. c50374041d Add ulimits to dockerng state/exec module
  226204. .IP \(bu 2
  226205. da42040c1a Try the docker\-py 2.0 client name first
  226206. .IP \(bu 2
  226207. \fBPR\fP \fI\%#39544\fP: (\fI\%terminalmage\fP) dockerng.get_client_args: Fix path for endpoint config for some versions of docker\-py
  226208. .UNINDENT
  226209. .IP \(bu 2
  226210. \fBISSUE\fP \fI\%#39447\fP: (\fI\%Foxlik\fP) dockerng keeps restarting privileged container (refs: \fI\%#39483\fP)
  226211. .IP \(bu 2
  226212. \fBPR\fP \fI\%#39498\fP: (\fI\%terminalmage\fP) Resubmit PR \fI\%#39483\fP against 2016.3 branch
  226213. @ \fI2017\-02\-20 19:35:33 UTC\fP
  226214. .INDENT 2.0
  226215. .IP \(bu 2
  226216. \fBPR\fP \fI\%#39483\fP: (\fI\%Foxlik\fP) dockerng: compare sets instead of lists of security_opt (refs: \fI\%#39498\fP)
  226217. .IP \(bu 2
  226218. dff35b58f8 Merge pull request \fI\%#39498\fP from terminalmage/pr\-39483
  226219. .IP \(bu 2
  226220. 20b097a745 dockerng: compare sets instead of lists of security_opt
  226221. .UNINDENT
  226222. .IP \(bu 2
  226223. \fBPR\fP \fI\%#39497\fP: (\fI\%terminalmage\fP) Two dockerng compatibility fixes
  226224. @ \fI2017\-02\-19 17:43:36 UTC\fP
  226225. .INDENT 2.0
  226226. .IP \(bu 2
  226227. 6418e725ed Merge pull request \fI\%#39497\fP from terminalmage/docker\-compat\-fixes
  226228. .IP \(bu 2
  226229. cbd0270bac docker: make docker\-exec the default execution driver
  226230. .IP \(bu 2
  226231. a6a17d58aa Handle docker\-py 2.0\(aqs new host_config path
  226232. .UNINDENT
  226233. .IP \(bu 2
  226234. \fBPR\fP \fI\%#39423\fP: (\fI\%dincamihai\fP) Openscap module
  226235. @ \fI2017\-02\-17 18:31:04 UTC\fP
  226236. .INDENT 2.0
  226237. .IP \(bu 2
  226238. 9c4292fb4e Merge pull request \fI\%#39423\fP from dincamihai/openscap
  226239. .IP \(bu 2
  226240. 9d13422ac1 OpenSCAP module
  226241. .UNINDENT
  226242. .IP \(bu 2
  226243. \fBISSUE\fP \fI\%#39444\fP: (\fI\%clem\-compilatio\fP) salt\-cloud \- IPv6 and IPv4 private_ips \- preferred_ip sends False to is_public_ip (refs: \fI\%#39464\fP)
  226244. .IP \(bu 2
  226245. \fBPR\fP \fI\%#39464\fP: (\fI\%gtmanfred\fP) skip false values from preferred_ip
  226246. @ \fI2017\-02\-16 22:48:32 UTC\fP
  226247. .INDENT 2.0
  226248. .IP \(bu 2
  226249. 7dd2502360 Merge pull request \fI\%#39464\fP from gtmanfred/2016.3
  226250. .IP \(bu 2
  226251. f829d6f9fc skip false values from preferred_ip
  226252. .UNINDENT
  226253. .IP \(bu 2
  226254. \fBPR\fP \fI\%#39460\fP: (\fI\%cachedout\fP) Fix mocks in win_disim tests
  226255. @ \fI2017\-02\-16 19:27:48 UTC\fP
  226256. .INDENT 2.0
  226257. .IP \(bu 2
  226258. db359ff2c3 Merge pull request \fI\%#39460\fP from cachedout/win_dism_test_fix
  226259. .IP \(bu 2
  226260. e652a45592 Fix mocks in win_disim tests
  226261. .UNINDENT
  226262. .IP \(bu 2
  226263. \fBPR\fP \fI\%#39426\fP: (\fI\%morganwillcock\fP) win_dism: Return failure when package path does not exist
  226264. @ \fI2017\-02\-16 00:09:22 UTC\fP
  226265. .INDENT 2.0
  226266. .IP \(bu 2
  226267. 9dbfba9b57 Merge pull request \fI\%#39426\fP from morganwillcock/dism
  226268. .IP \(bu 2
  226269. a7d5118262 Return failure when package path does not exist
  226270. .UNINDENT
  226271. .IP \(bu 2
  226272. \fBPR\fP \fI\%#39431\fP: (\fI\%UtahDave\fP) Fix grains.setval performance
  226273. @ \fI2017\-02\-15 23:56:30 UTC\fP
  226274. .INDENT 2.0
  226275. .IP \(bu 2
  226276. 56162706e3 Merge pull request \fI\%#39431\fP from UtahDave/fix_grains.setval_performance
  226277. .IP \(bu 2
  226278. 391bbecd90 add docs
  226279. .IP \(bu 2
  226280. 709c197f84 allow sync_grains to be disabled on grains.setval
  226281. .UNINDENT
  226282. .IP \(bu 2
  226283. \fBISSUE\fP \fI\%#39304\fP: (\fI\%Auha\fP) boto_s3_bucket documentation dependency clarification (refs: \fI\%#39405\fP)
  226284. .IP \(bu 2
  226285. \fBPR\fP \fI\%#39405\fP: (\fI\%rallytime\fP) Update :depends: docs for boto states and modules
  226286. @ \fI2017\-02\-15 17:32:08 UTC\fP
  226287. .INDENT 2.0
  226288. .IP \(bu 2
  226289. 239e16e612 Merge pull request \fI\%#39405\fP from rallytime/fix\-39304
  226290. .IP \(bu 2
  226291. bd1fe03ce7 Update :depends: docs for boto states and modules
  226292. .UNINDENT
  226293. .IP \(bu 2
  226294. \fBISSUE\fP \fI\%#38762\fP: (\fI\%oz123\fP) Configuration information for custom returners (refs: \fI\%#39411\fP)
  226295. .IP \(bu 2
  226296. \fBPR\fP \fI\%#39411\fP: (\fI\%rallytime\fP) Update external_cache docs with other configuration options
  226297. @ \fI2017\-02\-15 17:30:40 UTC\fP
  226298. .INDENT 2.0
  226299. .IP \(bu 2
  226300. 415102f346 Merge pull request \fI\%#39411\fP from rallytime/fix\-38762
  226301. .IP \(bu 2
  226302. e13febe58d Update external_cache docs with other configuration options
  226303. .IP \(bu 2
  226304. \fBPR\fP \fI\%#39421\fP: (\fI\%terminalmage\fP) Update docs on upstream EPEL7 pygit2/libgit2 issues
  226305. .IP \(bu 2
  226306. \fBPR\fP \fI\%#39409\fP: (\fI\%terminalmage\fP) salt.fileserver.roots: Fix regression in symlink_list
  226307. .IP \(bu 2
  226308. \fBPR\fP \fI\%#39337\fP: (\fI\%terminalmage\fP) Don\(aqt re\-walk the roots fileserver in symlink_list() (refs: \fI\%#39409\fP)
  226309. .UNINDENT
  226310. .IP \(bu 2
  226311. \fBPR\fP \fI\%#39362\fP: (\fI\%dincamihai\fP) Add cp.push test
  226312. @ \fI2017\-02\-14 18:42:11 UTC\fP
  226313. .INDENT 2.0
  226314. .IP \(bu 2
  226315. 8b8ab8ef8e Merge pull request \fI\%#39362\fP from dincamihai/cp\-push\-test\-2016.3
  226316. .IP \(bu 2
  226317. 91383c5a19 Add cp.push test
  226318. .UNINDENT
  226319. .IP \(bu 2
  226320. \fBPR\fP \fI\%#39380\fP: (\fI\%joe\-niland\fP) Quote numeric user names so pwd.getpwnam handles them properly
  226321. @ \fI2017\-02\-14 18:33:33 UTC\fP
  226322. .INDENT 2.0
  226323. .IP \(bu 2
  226324. 4b726f955b Merge pull request \fI\%#39380\fP from joe\-niland/quote\-numeric\-usernames
  226325. .IP \(bu 2
  226326. c2edfdd464 Quote numeric user names so pwd.getpwnam handles them properly
  226327. .UNINDENT
  226328. .IP \(bu 2
  226329. \fBPR\fP \fI\%#39400\fP: (\fI\%meaksh\fP) Prevents \(aqOSError\(aq exception in case certain job cache path doesn\(aqt exist
  226330. @ \fI2017\-02\-14 18:27:04 UTC\fP
  226331. .INDENT 2.0
  226332. .IP \(bu 2
  226333. 1116d32df9 Merge pull request \fI\%#39400\fP from meaksh/2016.3\-fix\-local\-cache\-issue
  226334. .IP \(bu 2
  226335. e7e559ef5c Prevents \(aqOSError\(aq exception in case path doesn\(aqt exist
  226336. .UNINDENT
  226337. .IP \(bu 2
  226338. \fBPR\fP \fI\%#39300\fP: (\fI\%terminalmage\fP) Replace more usage of str.format in the loader
  226339. @ \fI2017\-02\-13 19:01:19 UTC\fP
  226340. .INDENT 2.0
  226341. .IP \(bu 2
  226342. \fBPR\fP \fI\%#39227\fP: (\fI\%terminalmage\fP) Loader optimzation (refs: \fI\%#39300\fP)
  226343. .IP \(bu 2
  226344. 6c854da1d4 Merge pull request \fI\%#39300\fP from terminalmage/loader\-optimization
  226345. .IP \(bu 2
  226346. d3e5d1525e Replace more usage of str.format in the loader
  226347. .UNINDENT
  226348. .IP \(bu 2
  226349. \fBPR\fP \fI\%#39337\fP: (\fI\%terminalmage\fP) Don\(aqt re\-walk the roots fileserver in symlink_list() (refs: \fI\%#39409\fP)
  226350. @ \fI2017\-02\-13 18:41:17 UTC\fP
  226351. .INDENT 2.0
  226352. .IP \(bu 2
  226353. 5286b5ff1b Merge pull request \fI\%#39337\fP from terminalmage/issue34428
  226354. .IP \(bu 2
  226355. a7d2135dc2 Don\(aqt re\-walk the roots fileserver in symlink_list()
  226356. .UNINDENT
  226357. .IP \(bu 2
  226358. \fBPR\fP \fI\%#39339\fP: (\fI\%cro\fP) Add link to external pillar documentation for clarification.
  226359. @ \fI2017\-02\-13 18:40:13 UTC\fP
  226360. .INDENT 2.0
  226361. .IP \(bu 2
  226362. ce781deeb5 Merge pull request \fI\%#39339\fP from cro/pillar_filetree_doc
  226363. .IP \(bu 2
  226364. 410810cea2 Clarification on external pillar usage.
  226365. .IP \(bu 2
  226366. \fBPR\fP \fI\%#39316\fP: (\fI\%terminalmage\fP) Document the upstream RedHat bug with their pygit2 package
  226367. .UNINDENT
  226368. .IP \(bu 2
  226369. \fBPR\fP \fI\%#39313\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  226370. @ \fI2017\-02\-10 16:23:23 UTC\fP
  226371. .INDENT 2.0
  226372. .IP \(bu 2
  226373. 9de559ff4e Merge pull request \fI\%#39313\fP from rallytime/merge\-2016.3
  226374. .IP \(bu 2
  226375. 0b8dddf12b Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  226376. .IP \(bu 2
  226377. fc551bcf5d Merge pull request \fI\%#39293\fP from sergeizv/grammar\-fix
  226378. .INDENT 2.0
  226379. .IP \(bu 2
  226380. 70f2b586d3 Rewrap paragraph
  226381. .IP \(bu 2
  226382. e6ab5178ea Grammar fix
  226383. .UNINDENT
  226384. .IP \(bu 2
  226385. 8a1b45632a Merge pull request \fI\%#39295\fP from sergeizv/typo\-fix
  226386. .INDENT 2.0
  226387. .IP \(bu 2
  226388. 5d9f36d58d Fix typo
  226389. .UNINDENT
  226390. .IP \(bu 2
  226391. cfaafece34 Merge pull request \fI\%#39296\fP from sergeizv/whitespace\-fix
  226392. .INDENT 2.0
  226393. .IP \(bu 2
  226394. 1d4c1dc140 Whitespace fix in docs Makefile
  226395. .UNINDENT
  226396. .IP \(bu 2
  226397. 0b4dcf4a47 Merge pull request \fI\%#39294\fP from sergeizv/fix\-link
  226398. .INDENT 2.0
  226399. .IP \(bu 2
  226400. 04bde6eed2 Fix link in proxyminion guide
  226401. .UNINDENT
  226402. .UNINDENT
  226403. .IP \(bu 2
  226404. \fBISSUE\fP \fI\%#38595\fP: (\fI\%yue9944882\fP) Redis ext job cache occurred error (refs: \fI\%#38610\fP)
  226405. .INDENT 2.0
  226406. .IP \(bu 2
  226407. \fBPR\fP \fI\%#39299\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38610\fP to 2016.3
  226408. .IP \(bu 2
  226409. \fBPR\fP \fI\%#38610\fP: (\fI\%yue9944882\fP) Fix \fI\%#38595\fP \- Unexpected error log from redis retuner in master\(aqs log (refs: \fI\%#39299\fP)
  226410. .UNINDENT
  226411. .IP \(bu 2
  226412. \fBPR\fP \fI\%#39297\fP: (\fI\%cro\fP) Add doc to recommend pgjsonb for master job caches
  226413. @ \fI2017\-02\-09 22:49:59 UTC\fP
  226414. .INDENT 2.0
  226415. .IP \(bu 2
  226416. f16027d30e Merge pull request \fI\%#39297\fP from cro/pg_returner_docs
  226417. .IP \(bu 2
  226418. 28bac649ae Typo
  226419. .IP \(bu 2
  226420. 19fedcdd23 Add doc to recommend pgjsonb for master job caches
  226421. .UNINDENT
  226422. .IP \(bu 2
  226423. \fBPR\fP \fI\%#39286\fP: (\fI\%terminalmage\fP) Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  226424. @ \fI2017\-02\-09 21:22:46 UTC\fP
  226425. .INDENT 2.0
  226426. .IP \(bu 2
  226427. 77e50ed8b7 Merge pull request \fI\%#39286\fP from terminalmage/fix\-pillarenv\-precedence
  226428. .IP \(bu 2
  226429. 3cb9833e57 Allow minion/CLI saltenv/pillarenv to override master when compiling pillar
  226430. .UNINDENT
  226431. .IP \(bu 2
  226432. \fBISSUE\fP \fI\%#39220\fP: (\fI\%lvg01\fP) state file.line skips leading spaces in content with mode:ensure and indent:False (refs: \fI\%#39221\fP)
  226433. .IP \(bu 2
  226434. \fBPR\fP \fI\%#39221\fP: (\fI\%lvg01\fP) Fix bug 39220
  226435. @ \fI2017\-02\-09 18:12:29 UTC\fP
  226436. .INDENT 2.0
  226437. .IP \(bu 2
  226438. 52440416ca Merge pull request \fI\%#39221\fP from lvg01/fix\-bug\-39220
  226439. .IP \(bu 2
  226440. e8a41d6341 Removes to early content stripping (stripping is allready done when needed with ident:true), fixes \fI\%#39220\fP
  226441. .IP \(bu 2
  226442. a4b169e0bd Fixed wrong logic, fixes \fI\%#39220\fP
  226443. .UNINDENT
  226444. .IP \(bu 2
  226445. \fBISSUE\fP \fI\%#36913\fP: (\fI\%terminalmage\fP) Support custom refspecs in GitFS (refs: \fI\%#39210\fP)
  226446. .INDENT 2.0
  226447. .IP \(bu 2
  226448. \fBPR\fP \fI\%#39280\fP: (\fI\%terminalmage\fP) Add warning for Dulwich removal
  226449. .IP \(bu 2
  226450. \fBPR\fP \fI\%#39210\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: remove dulwich support, make refspecs configurable (refs: \fI\%#39280\fP)
  226451. .IP \(bu 2
  226452. \fBPR\fP \fI\%#39260\fP: (\fI\%terminalmage\fP) Update jsonschema tests to reflect change in jsonschema 2.6.0
  226453. .UNINDENT
  226454. .IP \(bu 2
  226455. \fBISSUE\fP \fI\%saltstack/salt#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  226456. .IP \(bu 2
  226457. \fBISSUE\fP \fI\%#33536\fP: (\fI\%murzick\fP) pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#35055\fP)
  226458. .INDENT 2.0
  226459. .IP \(bu 2
  226460. \fBPR\fP \fI\%#39251\fP: (\fI\%terminalmage\fP) Better handling of enabled/disabled arguments in pkgrepo.managed
  226461. .IP \(bu 2
  226462. \fBPR\fP \fI\%#35055\fP: (\fI\%galet\fP) \fI\%#33536\fP pkgrepo.managed does not disable a yum repo with "disabled: True" (refs: \fI\%#39251\fP)
  226463. .UNINDENT
  226464. .IP \(bu 2
  226465. \fBPR\fP \fI\%#39227\fP: (\fI\%terminalmage\fP) Loader optimzation (refs: \fI\%#39300\fP)
  226466. @ \fI2017\-02\-08 19:38:21 UTC\fP
  226467. .INDENT 2.0
  226468. .IP \(bu 2
  226469. 8e88f71dd9 Merge pull request \fI\%#39227\fP from terminalmage/loader\-optimization
  226470. .IP \(bu 2
  226471. c750662946 Loader optimzation
  226472. .UNINDENT
  226473. .IP \(bu 2
  226474. \fBISSUE\fP \fI\%#38856\fP: (\fI\%fhaynes\fP) salt\-cloud throws an exception when ec2 does not return encoding (refs: \fI\%#39228\fP)
  226475. .IP \(bu 2
  226476. \fBPR\fP \fI\%#39228\fP: (\fI\%gtmanfred\fP) default to utf8 encoding if not specified
  226477. @ \fI2017\-02\-08 19:36:57 UTC\fP
  226478. .INDENT 2.0
  226479. .IP \(bu 2
  226480. bc89b297f8 Merge pull request \fI\%#39228\fP from gtmanfred/2016.3
  226481. .IP \(bu 2
  226482. afee047b08 default to utf8 encoding if not specified
  226483. .UNINDENT
  226484. .IP \(bu 2
  226485. \fBPR\fP \fI\%#39231\fP: (\fI\%terminalmage\fP) Add clarification for jenkins execution module
  226486. @ \fI2017\-02\-08 19:34:45 UTC\fP
  226487. .INDENT 2.0
  226488. .IP \(bu 2
  226489. d9b0671dbd Merge pull request \fI\%#39231\fP from terminalmage/clarify\-jenkins\-depends
  226490. .IP \(bu 2
  226491. ad1b1255f2 Add clarification for jenkins execution module
  226492. .UNINDENT
  226493. .IP \(bu 2
  226494. \fBPR\fP \fI\%#39232\fP: (\fI\%terminalmage\fP) Avoid recursion in s3/svn ext_pillars
  226495. @ \fI2017\-02\-08 19:33:28 UTC\fP
  226496. .INDENT 2.0
  226497. .IP \(bu 2
  226498. ddcff89a84 Merge pull request \fI\%#39232\fP from terminalmage/issue21342
  226499. .IP \(bu 2
  226500. c88896c277 Avoid recursion in s3/svn ext_pillars
  226501. .UNINDENT
  226502. .IP \(bu 2
  226503. \fBISSUE\fP \fI\%#38697\fP: (\fI\%fboismenu\fP) On Windows, ip.get_all_interfaces returns at most 2 DNS/WINS Servers (refs: \fI\%#38793\fP)
  226504. .INDENT 2.0
  226505. .IP \(bu 2
  226506. \fBPR\fP \fI\%#39230\fP: (\fI\%rallytime\fP) Fix the win_ip_test failures
  226507. .IP \(bu 2
  226508. \fBPR\fP \fI\%#38793\fP: (\fI\%fboismenu\fP) Fix for \fI\%#38697\fP (refs: \fI\%#39197\fP, \fI\%#39230\fP)
  226509. .UNINDENT
  226510. .IP \(bu 2
  226511. \fBISSUE\fP \fI\%#33187\fP: (\fI\%usbportnoy\fP) Deploy to jboss TypeError at boss7.py:469 (refs: \fI\%#39761\fP, \fI\%#39170\fP)
  226512. .IP \(bu 2
  226513. \fBPR\fP \fI\%#39199\fP: (\fI\%rallytime\fP) Back\-port \fI\%#39170\fP to 2016.3
  226514. @ \fI2017\-02\-07 16:19:32 UTC\fP
  226515. .INDENT 2.0
  226516. .IP \(bu 2
  226517. \fBPR\fP \fI\%#39170\fP: (\fI\%grep4linux\fP) Added missing source_hash_name argument in get_managed function (refs: \fI\%#39199\fP)
  226518. .IP \(bu 2
  226519. df5f934c34 Merge pull request \fI\%#39199\fP from rallytime/bp\-39170
  226520. .IP \(bu 2
  226521. c129905310 Added missing source_hash_name argument in get_managed function Additional fix to \fI\%#33187\fP Customer was still seeing errors, this should now work. Tested with 2015.8.13 and 2016.11.2
  226522. .UNINDENT
  226523. .IP \(bu 2
  226524. \fBISSUE\fP \fI\%#37174\fP: (\fI\%mikeadamz\fP) The State execution failed to record the order in which all states were executed spam while running pkg.upgrade from orchestration runner (refs: \fI\%#39206\fP)
  226525. .IP \(bu 2
  226526. \fBPR\fP \fI\%#39206\fP: (\fI\%cachedout\fP) Ignore empty dicts in highstate outputter
  226527. @ \fI2017\-02\-07 16:11:36 UTC\fP
  226528. .INDENT 2.0
  226529. .IP \(bu 2
  226530. 2621c119fd Merge pull request \fI\%#39206\fP from cachedout/issue_issue_37174
  226531. .IP \(bu 2
  226532. be31e0559c Ignore empty dicts in highstate outputter
  226533. .UNINDENT
  226534. .IP \(bu 2
  226535. \fBPR\fP \fI\%#39209\fP: (\fI\%terminalmage\fP) Sort the return list from the fileserver.envs runner
  226536. @ \fI2017\-02\-07 16:07:08 UTC\fP
  226537. .INDENT 2.0
  226538. .IP \(bu 2
  226539. dd440452ea Merge pull request \fI\%#39209\fP from terminalmage/sorted\-envs
  226540. .IP \(bu 2
  226541. e6dda4a625 Sort the return list from the fileserver.envs runner
  226542. .IP \(bu 2
  226543. \fBPR\fP \fI\%#39202\fP: (\fI\%rallytime\fP) [2016.3] Pylint fix
  226544. .UNINDENT
  226545. .IP \(bu 2
  226546. \fBISSUE\fP \fI\%#38697\fP: (\fI\%fboismenu\fP) On Windows, ip.get_all_interfaces returns at most 2 DNS/WINS Servers (refs: \fI\%#38793\fP)
  226547. .IP \(bu 2
  226548. \fBPR\fP \fI\%#39197\fP: (\fI\%cachedout\fP) Pr 38793
  226549. @ \fI2017\-02\-06 19:23:12 UTC\fP
  226550. .INDENT 2.0
  226551. .IP \(bu 2
  226552. \fBPR\fP \fI\%#38793\fP: (\fI\%fboismenu\fP) Fix for \fI\%#38697\fP (refs: \fI\%#39197\fP, \fI\%#39230\fP)
  226553. .IP \(bu 2
  226554. ab76054127 Merge pull request \fI\%#39197\fP from cachedout/pr\-38793
  226555. .IP \(bu 2
  226556. f3d35fb5c6 Lint fixes
  226557. .IP \(bu 2
  226558. 624f25b78d Fix for \fI\%#38697\fP
  226559. .UNINDENT
  226560. .IP \(bu 2
  226561. \fBPR\fP \fI\%#39166\fP: (\fI\%Ch3LL\fP) fix boto ec2 module create_image doc
  226562. @ \fI2017\-02\-06 18:27:17 UTC\fP
  226563. .INDENT 2.0
  226564. .IP \(bu 2
  226565. fa45cbc359 Merge pull request \fI\%#39166\fP from Ch3LL/fix_boto_ec2_docs
  226566. .IP \(bu 2
  226567. 90af696331 fix boto ec2 module create_image doc
  226568. .UNINDENT
  226569. .IP \(bu 2
  226570. \fBPR\fP \fI\%#39173\fP: (\fI\%rallytime\fP) Restore "Salt Community" doc section
  226571. @ \fI2017\-02\-06 18:19:11 UTC\fP
  226572. .INDENT 2.0
  226573. .IP \(bu 2
  226574. \fBPR\fP \fI\%#30770\fP: (\fI\%jacobhammons\fP) Doc restructuring, organization, and cleanup (refs: \fI\%#39173\fP)
  226575. .IP \(bu 2
  226576. \fBPR\fP \fI\%#10792\fP: (\fI\%cachedout\fP) Documentation overhaul (refs: \fI\%#39173\fP)
  226577. .IP \(bu 2
  226578. a40cb46249 Merge pull request \fI\%#39173\fP from rallytime/restore\-community\-docs
  226579. .IP \(bu 2
  226580. 5aeddf42a0 Restore "Salt Community" doc section
  226581. .UNINDENT
  226582. .IP \(bu 2
  226583. \fBISSUE\fP \fI\%#38704\fP: (\fI\%nasenbaer13\fP) Archive extracted fails when another state run is queued (refs: \fI\%#38705\fP)
  226584. .INDENT 2.0
  226585. .IP \(bu 2
  226586. \fBPR\fP \fI\%#39077\fP: (\fI\%terminalmage\fP) Apply fix from \fI\%#38705\fP to 2016.3 branch
  226587. .IP \(bu 2
  226588. \fBPR\fP \fI\%#38705\fP: (\fI\%nasenbaer13\fP) Fix for \fI\%#38704\fP archive extracted and dockerio states (refs: \fI\%#39077\fP)
  226589. .IP \(bu 2
  226590. \fBPR\fP \fI\%#39146\fP: (\fI\%gtmanfred\fP) update vmware getting started doc
  226591. .IP \(bu 2
  226592. \fBPR\fP \fI\%#39145\fP: (\fI\%garethgreenaway\fP) [2016.3] Fix when targeting via pillar with Salt syndic
  226593. .UNINDENT
  226594. .IP \(bu 2
  226595. \fBPR\fP \fI\%#38804\fP: (\fI\%alexbleotu\fP) Second attempt to fix prepending of root_dir to paths
  226596. @ \fI2017\-02\-02 16:10:37 UTC\fP
  226597. .INDENT 2.0
  226598. .IP \(bu 2
  226599. cd8077ab81 Merge pull request \fI\%#38804\fP from alexbleotu/root_dir_fix\-2016.3\-gh
  226600. .IP \(bu 2
  226601. b3bdd3b04a Add missing whiteline
  226602. .IP \(bu 2
  226603. c7715acd53 Merge pull request \fI\%#3\fP from cro/ab_rootdirfix
  226604. .INDENT 2.0
  226605. .IP \(bu 2
  226606. e8cbafaaf1 When running testsuite, salt.syspaths.ROOT_DIR is often empty.
  226607. .UNINDENT
  226608. .IP \(bu 2
  226609. b12dd44a26 Merge pull request \fI\%#1\fP from cro/ab_rootdirfix
  226610. .INDENT 2.0
  226611. .IP \(bu 2
  226612. bffc537aca Remove extra if statements (rstrip will check for the presence anyway).
  226613. .UNINDENT
  226614. .IP \(bu 2
  226615. 97521b3468 Second attempt to fix prepending of root_dir to paths
  226616. .UNINDENT
  226617. .IP \(bu 2
  226618. \fBISSUE\fP \fI\%#39118\fP: (\fI\%bobrik\fP) Minion ipv6 option is not documented (refs: \fI\%#39289\fP, \fI\%#39131\fP)
  226619. .INDENT 2.0
  226620. .IP \(bu 2
  226621. \fBPR\fP \fI\%#39131\fP: (\fI\%bobrik\fP) Clarify ipv6 option for minion and inteface for master, closes \fI\%#39118\fP
  226622. .IP \(bu 2
  226623. \fBPR\fP \fI\%#39116\fP: (\fI\%terminalmage\fP) Don\(aqt abort pillar.get with merge=True if default is None
  226624. .UNINDENT
  226625. .IP \(bu 2
  226626. \fBPR\fP \fI\%#39091\fP: (\fI\%terminalmage\fP) Run test_valid_docs in batches
  226627. @ \fI2017\-02\-01 19:09:05 UTC\fP
  226628. .INDENT 2.0
  226629. .IP \(bu 2
  226630. cc9b69b6bc Merge pull request \fI\%#39091\fP from terminalmage/update\-test\-valid\-docs
  226631. .IP \(bu 2
  226632. d76f0380d0 add debug logging for batch vars
  226633. .IP \(bu 2
  226634. b4afea2a25 Don\(aqt fail test if data is empty
  226635. .IP \(bu 2
  226636. b3a5d549c1 Account for trimmed value in \(aqsalt \-d\(aq output
  226637. .IP \(bu 2
  226638. 909916c78e Run test_valid_docs in batches
  226639. .IP \(bu 2
  226640. \fBPR\fP \fI\%#39081\fP: (\fI\%terminalmage\fP) Move fileclient tests to tests/integration/fileserver/fileclient_test.py
  226641. .IP \(bu 2
  226642. \fBPR\fP \fI\%#39067\fP: (\fI\%rallytime\fP) Bump openstack deprecation notice to Oxygen
  226643. .UNINDENT
  226644. .IP \(bu 2
  226645. \fBPR\fP \fI\%#39047\fP: (\fI\%rallytime\fP) [2016.3] Merge forward from 2015.8 to 2016.3
  226646. @ \fI2017\-01\-30 23:48:14 UTC\fP
  226647. .INDENT 2.0
  226648. .IP \(bu 2
  226649. a24af5ac46 Merge pull request \fI\%#39047\fP from rallytime/merge\-2016.3
  226650. .IP \(bu 2
  226651. b732a1f646 Merge branch \(aq2015.8\(aq into \(aq2016.3\(aq
  226652. .IP \(bu 2
  226653. 56ccae6ff7 Add 2015.8.14 release notes file (\fI\%#39046\fP)
  226654. .IP \(bu 2
  226655. 5943fe65d3 Update 2015.8.13 release notes (\fI\%#39037\fP)
  226656. .IP \(bu 2
  226657. \fBPR\fP \fI\%#39045\fP: (\fI\%rallytime\fP) Add 2016.3.6 release notes file
  226658. .IP \(bu 2
  226659. \fBPR\fP \fI\%#39042\fP: (\fI\%rallytime\fP) [2016.3] Update release numbers for doc build
  226660. .IP \(bu 2
  226661. \fBPR\fP \fI\%#39038\fP: (\fI\%rallytime\fP) Update 2016.3.5 release notes
  226662. .UNINDENT
  226663. .IP \(bu 2
  226664. \fBPR\fP \fI\%#39028\fP: (\fI\%terminalmage\fP) Clarify delimiter argument
  226665. @ \fI2017\-01\-30 18:20:26 UTC\fP
  226666. .INDENT 2.0
  226667. .IP \(bu 2
  226668. 5b09dc4198 Merge pull request \fI\%#39028\fP from terminalmage/clarify\-delimiter\-argument
  226669. .IP \(bu 2
  226670. f29ef071f3 Clarify delimiter argument
  226671. .IP \(bu 2
  226672. \fBPR\fP \fI\%#39030\fP: (\fI\%rallytime\fP) Back\-port \fI\%#38972\fP to 2016.3
  226673. .IP \(bu 2
  226674. \fBPR\fP \fI\%#38972\fP: (\fI\%rallytime\fP) Add CLI Example for rest_sample_utils.get_test_string function (refs: \fI\%#39030\fP)
  226675. .UNINDENT
  226676. .IP \(bu 2
  226677. \fBISSUE\fP \fI\%#38753\fP: (\fI\%alexbleotu\fP) \fI__proxy__\fP dunder is not injected when invoking the \fIsalt\fP variable in sls files (refs: \fI\%#38899\fP, \fI\%#38829\fP)
  226678. .IP \(bu 2
  226679. \fBISSUE\fP \fI\%#38557\fP: (\fI\%alexbleotu\fP) Proxy not working on develop (refs: \fI\%#38829\fP)
  226680. .IP \(bu 2
  226681. \fBISSUE\fP \fI\%#38265\fP: (\fI\%mirceaulinic\fP) \fI__utils__\fP object not available in proxy module (refs: \fI\%#38899\fP, \fI\%#38829\fP)
  226682. .IP \(bu 2
  226683. \fBISSUE\fP \fI\%#32918\fP: (\fI\%mirceaulinic\fP) Proxy minions reconnection (refs: \fI\%#38829\fP)
  226684. .INDENT 2.0
  226685. .IP \(bu 2
  226686. \fBPR\fP \fI\%#38899\fP: (\fI\%cro\fP) Enable __proxy__ availability in states, highstate, and utils. Enable __utils__ for proxies.
  226687. .IP \(bu 2
  226688. \fBPR\fP \fI\%#38829\fP: (\fI\%cro\fP) MANY dunder variable fixes for proxies + proxy keepalive from @mirceaulinic (refs: \fI\%#38899\fP)
  226689. .IP \(bu 2
  226690. \fBPR\fP \fI\%#37864\fP: (\fI\%mirceaulinic\fP) Proxy keepalive feature (refs: \fI\%#38829\fP)
  226691. .UNINDENT
  226692. .IP \(bu 2
  226693. \fBISSUE\fP \fI\%#37938\fP: (\fI\%johje349\fP) Memory leak in Reactor (refs: \fI\%#38951\fP)
  226694. .IP \(bu 2
  226695. \fBISSUE\fP \fI\%#33890\fP: (\fI\%hvnsweeting\fP) salt memleak when running state.sls (refs: \fI\%#38951\fP)
  226696. .IP \(bu 2
  226697. \fBPR\fP \fI\%#38951\fP: (\fI\%DmitryKuzmenko\fP) Keep the only one record per module\-function in depends decorator.
  226698. @ \fI2017\-01\-27 17:05:42 UTC\fP
  226699. .INDENT 2.0
  226700. .IP \(bu 2
  226701. da96221741 Merge pull request \fI\%#38951\fP from DSRCorporation/bugs/37938_fix_depends_decorator_memleak
  226702. .IP \(bu 2
  226703. 0b18f34678 Keep the only one record per module\-function in depends decorator.
  226704. .UNINDENT
  226705. .IP \(bu 2
  226706. \fBISSUE\fP \fI\%#34780\fP: (\fI\%joehoyle\fP) S3fs broken in 2016.3.1 (refs: \fI\%#38982\fP)
  226707. .IP \(bu 2
  226708. \fBPR\fP \fI\%#38982\fP: (\fI\%rallytime\fP) Set response when using "GET" method in s3 utils
  226709. @ \fI2017\-01\-27 17:04:48 UTC\fP
  226710. .INDENT 2.0
  226711. .IP \(bu 2
  226712. 85165edb70 Merge pull request \fI\%#38982\fP from rallytime/fix\-34780
  226713. .IP \(bu 2
  226714. 1583c5579a Set response when using "GET" method in s3 utils
  226715. .UNINDENT
  226716. .IP \(bu 2
  226717. \fBPR\fP \fI\%#38989\fP: (\fI\%anlutro\fP) Documentation: fix SLS in environment variable examples
  226718. @ \fI2017\-01\-27 17:00:08 UTC\fP
  226719. .INDENT 2.0
  226720. .IP \(bu 2
  226721. cfdbc99e12 Merge pull request \fI\%#38989\fP from alprs/docfix\-state_pt3_environ
  226722. .IP \(bu 2
  226723. 52a9ad1c60 fix SLS in environment variable examples
  226724. .UNINDENT
  226725. .IP \(bu 2
  226726. \fBPR\fP \fI\%#39000\fP: (\fI\%rallytime\fP) Skip the test_badload test until Jenkins move is complete
  226727. @ \fI2017\-01\-27 16:58:21 UTC\fP
  226728. .INDENT 2.0
  226729. .IP \(bu 2
  226730. 55e4d2572e Merge pull request \fI\%#39000\fP from rallytime/skip\-badload\-test
  226731. .IP \(bu 2
  226732. 4b3ff0fe0f Skip the test_badload test until Jenkins move is complete
  226733. .UNINDENT
  226734. .IP \(bu 2
  226735. \fBPR\fP \fI\%#38995\fP: (\fI\%terminalmage\fP) Fix pillar.item docstring
  226736. @ \fI2017\-01\-27 16:58:00 UTC\fP
  226737. .INDENT 2.0
  226738. .IP \(bu 2
  226739. fe054eb772 Merge pull request \fI\%#38995\fP from terminalmage/fix\-pillar.item\-docstring
  226740. .IP \(bu 2
  226741. 06d094dd8f Fix pillar.item docstring
  226742. .UNINDENT
  226743. .IP \(bu 2
  226744. \fBISSUE\fP \fI\%#34551\fP: (\fI\%mbom2004\fP) salt.engines.logstash not loading (refs: \fI\%#38950\fP)
  226745. .IP \(bu 2
  226746. \fBPR\fP \fI\%#38950\fP: (\fI\%mbom2004\fP) Fixed Logstash Engine in file logstash.py
  226747. @ \fI2017\-01\-26 19:10:07 UTC\fP
  226748. .INDENT 2.0
  226749. .IP \(bu 2
  226750. b66b6f6423 Merge pull request \fI\%#38950\fP from mbom2004/2016.3
  226751. .IP \(bu 2
  226752. c09f39d6c9 Remove unused json import
  226753. .IP \(bu 2
  226754. 249efa3068 Fixed Logstash Engine in file logstash.py
  226755. .IP \(bu 2
  226756. \fBPR\fP \fI\%#38973\fP: (\fI\%rallytime\fP) Handle changing "is_default" value in moto package for boto test mock
  226757. .UNINDENT
  226758. .IP \(bu 2
  226759. \fBPR\fP \fI\%#38952\fP: (\fI\%terminalmage\fP) Make the ext_pillars available to pillar.ext tunable
  226760. @ \fI2017\-01\-26 19:01:56 UTC\fP
  226761. .INDENT 2.0
  226762. .IP \(bu 2
  226763. b965b5dcc2 Merge pull request \fI\%#38952\fP from terminalmage/zd1168
  226764. .IP \(bu 2
  226765. 6b014e53fc Rename on_demand_pillar to on_demand_ext_pillar
  226766. .IP \(bu 2
  226767. d216f90c63 Document new on_demand_pillar option and add to config template
  226768. .IP \(bu 2
  226769. 426b20f02f Add documentation for on\-demand pillar to pillar.ext docstring
  226770. .IP \(bu 2
  226771. 7b10274b6b Make on\-demand ext_pillars tunable
  226772. .IP \(bu 2
  226773. d54723ccae Add on_demand_pillar config option
  226774. .UNINDENT
  226775. .IP \(bu 2
  226776. \fBISSUE\fP \fI\%#35777\fP: (\fI\%rallytime\fP) Properly deprecate template context data in Fluorine (refs: \fI\%#38948\fP)
  226777. .IP \(bu 2
  226778. \fBPR\fP \fI\%#38948\fP: (\fI\%rallytime\fP) Bump the template context deprecation version to Oxygen
  226779. @ \fI2017\-01\-25 19:45:59 UTC\fP
  226780. .INDENT 2.0
  226781. .IP \(bu 2
  226782. 2c4ad85a78 Merge pull request \fI\%#38948\fP from rallytime/bump\-template\-context\-deprecation
  226783. .IP \(bu 2
  226784. 749e0031d7 Bump the template context deprecation version to Oxygen
  226785. .UNINDENT
  226786. .IP \(bu 2
  226787. \fBPR\fP \fI\%#38946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#37632\fP to 2016.3
  226788. @ \fI2017\-01\-25 19:40:40 UTC\fP
  226789. .INDENT 2.0
  226790. .IP \(bu 2
  226791. \fBPR\fP \fI\%#37632\fP: (\fI\%twangboy\fP) Fix versions report for Windows Server platforms (refs: \fI\%#38946\fP)
  226792. .IP \(bu 2
  226793. e4514ca7d8 Merge pull request \fI\%#38946\fP from rallytime/bp\-37632
  226794. .IP \(bu 2
  226795. ee37cdace9 Fix some lint
  226796. .IP \(bu 2
  226797. c08071e182 Fix versions report for server OSs
  226798. .UNINDENT
  226799. .IP \(bu 2
  226800. \fBPR\fP \fI\%#38913\fP: (\fI\%Adaephon\-GH\fP) Ignore plist files without Label key
  226801. @ \fI2017\-01\-25 19:07:27 UTC\fP
  226802. .INDENT 2.0
  226803. .IP \(bu 2
  226804. 953a20350a Merge pull request \fI\%#38913\fP from Adaephon\-GH/patch\-1
  226805. .IP \(bu 2
  226806. e2f4a16fdd Removing trailing whitespace
  226807. .IP \(bu 2
  226808. 616292c6b1 Ignore plist files without Label key
  226809. .UNINDENT
  226810. .IP \(bu 2
  226811. \fBPR\fP \fI\%#38917\fP: (\fI\%twangboy\fP) Update Jinja2 to 2.9.4
  226812. @ \fI2017\-01\-25 19:05:38 UTC\fP
  226813. .INDENT 2.0
  226814. .IP \(bu 2
  226815. 826dce1059 Merge pull request \fI\%#38917\fP from twangboy/update_jinja_mac
  226816. .IP \(bu 2
  226817. 62e608b627 Update Jinja2 to 2.9.4
  226818. .UNINDENT
  226819. .IP \(bu 2
  226820. \fBISSUE\fP \fI\%#38540\fP: (\fI\%amendlik\fP) API wheel client throws exception and success=true (refs: \fI\%#38925\fP)
  226821. .IP \(bu 2
  226822. \fBISSUE\fP \fI\%#38537\fP: (\fI\%amendlik\fP) API client wheel_async always returns status 500 (refs: \fI\%#38925\fP)
  226823. .IP \(bu 2
  226824. \fBPR\fP \fI\%#38925\fP: (\fI\%terminalmage\fP) Fix two wheel issues in netapi
  226825. @ \fI2017\-01\-25 18:28:52 UTC\fP
  226826. .INDENT 2.0
  226827. .IP \(bu 2
  226828. b27733cc33 Merge pull request \fI\%#38925\fP from terminalmage/issue38540
  226829. .IP \(bu 2
  226830. 76392fc6ad Fix traceback when a netapi module uses wheel_async
  226831. .IP \(bu 2
  226832. bd4474fa62 Fix \(aqsuccess\(aq value for wheel commands
  226833. .UNINDENT
  226834. .IP \(bu 2
  226835. \fBPR\fP \fI\%#38926\fP: (\fI\%gtmanfred\fP) add note about pysss for pam eauth
  226836. @ \fI2017\-01\-25 18:12:20 UTC\fP
  226837. .INDENT 2.0
  226838. .IP \(bu 2
  226839. 618596f0cc Merge pull request \fI\%#38926\fP from gtmanfred/2016.3
  226840. .IP \(bu 2
  226841. 9cae953c93 add note about pysss for pam eauth
  226842. .UNINDENT
  226843. .IP \(bu 2
  226844. \fBISSUE\fP \fI\%#38825\fP: (\fI\%IshMalik\fP) file.managed multiple sources for redundency failure (refs: \fI\%#38847\fP)
  226845. .IP \(bu 2
  226846. \fBPR\fP \fI\%#38847\fP: (\fI\%terminalmage\fP) Catch MinionError in file.source_list
  226847. @ \fI2017\-01\-24 16:03:10 UTC\fP
  226848. .INDENT 2.0
  226849. .IP \(bu 2
  226850. 405d86a2ca Merge pull request \fI\%#38847\fP from terminalmage/issue38825
  226851. .IP \(bu 2
  226852. 11a47803ce Use log.exception() instead
  226853. .IP \(bu 2
  226854. e40fac589a Catch MinionError in file.source_list
  226855. .UNINDENT
  226856. .IP \(bu 2
  226857. \fBISSUE\fP \fI\%#36121\fP: (\fI\%Ashald\fP) TemplateNotFound/Unable to cache file (refs: \fI\%#38875\fP)
  226858. .IP \(bu 2
  226859. \fBPR\fP \fI\%#38875\fP: (\fI\%terminalmage\fP) Reactor: fix traceback when salt:// path is nonexistant
  226860. @ \fI2017\-01\-24 15:23:39 UTC\fP
  226861. .INDENT 2.0
  226862. .IP \(bu 2
  226863. b5df104fc2 Merge pull request \fI\%#38875\fP from terminalmage/issue36121
  226864. .IP \(bu 2
  226865. fbc4d2a2c4 reactor: ensure glob_ref is a string
  226866. .IP \(bu 2
  226867. 2e443d79a3 cp.cache_file: add note re: return for nonexistant salt:// path
  226868. .UNINDENT
  226869. .IP \(bu 2
  226870. \fBISSUE\fP \fI\%#37413\fP: (\fI\%Snarfingcode666\fP) Salt\-cloud vmware missing reboot command (refs: \fI\%#38887\fP, \fI\%#38890\fP)
  226871. .IP \(bu 2
  226872. \fBPR\fP \fI\%#38890\fP: (\fI\%cro\fP) Backport \fI\%#38887\fP to 2016.3: Enable resetting a VM via salt\-cloud & VMware driver
  226873. @ \fI2017\-01\-24 15:15:35 UTC\fP
  226874. .INDENT 2.0
  226875. .IP \(bu 2
  226876. \fBPR\fP \fI\%#38887\fP: (\fI\%cro\fP) Enable resetting a VM via salt\-cloud & VMware driver (refs: \fI\%#38890\fP)
  226877. .IP \(bu 2
  226878. e9ebec4d80 Merge pull request \fI\%#38890\fP from cro/vmware_reset_vm_20163
  226879. .IP \(bu 2
  226880. 0146562fb4 Call correct function for resetting a VM
  226881. .UNINDENT
  226882. .IP \(bu 2
  226883. \fBPR\fP \fI\%#38883\fP: (\fI\%techhat\fP) Don\(aqt require text_out path to exist
  226884. @ \fI2017\-01\-23 18:20:42 UTC\fP
  226885. .INDENT 2.0
  226886. .IP \(bu 2
  226887. \fBPR\fP \fI\%#38867\fP: (\fI\%mchugh19\fP) Touch deploy.sh before use (refs: \fI\%#38883\fP)
  226888. .IP \(bu 2
  226889. \fBPR\fP \fI\%#32026\fP: (\fI\%techhat\fP) Don\(aqt require the decode_out file to already exist (refs: \fI\%#38883\fP)
  226890. .IP \(bu 2
  226891. c3fbfcd231 Merge pull request \fI\%#38883\fP from techhat/dontrequire
  226892. .IP \(bu 2
  226893. 67bc4d6687 Don\(aqt require text_out path to exist
  226894. .UNINDENT
  226895. .IP \(bu 2
  226896. \fBPR\fP \fI\%#38851\fP: (\fI\%terminalmage\fP) Support docker\-py 2.0 in dockerng
  226897. @ \fI2017\-01\-23 16:48:12 UTC\fP
  226898. .INDENT 2.0
  226899. .IP \(bu 2
  226900. 6430a45196 Merge pull request \fI\%#38851\fP from terminalmage/docker\-py\-2.0
  226901. .IP \(bu 2
  226902. 3c061b21fe Support docker\-py 2.0 in dockerng
  226903. .UNINDENT
  226904. .IP \(bu 2
  226905. \fBPR\fP \fI\%#38844\fP: (\fI\%cachedout\fP) Fix memory leak in HTTP client
  226906. @ \fI2017\-01\-20 20:59:14 UTC\fP
  226907. .INDENT 2.0
  226908. .IP \(bu 2
  226909. ac8008d843 Merge pull request \fI\%#38844\fP from cachedout/http_memory_leak
  226910. .IP \(bu 2
  226911. c46bf85518 Fix memory leak in HTTP client
  226912. .UNINDENT
  226913. .IP \(bu 2
  226914. \fBISSUE\fP \fI\%#38798\fP: (\fI\%ripta\fP) \fImatch.compound\fP fails to match when pillar data is used (refs: \fI\%#38823\fP)
  226915. .IP \(bu 2
  226916. \fBPR\fP \fI\%#38823\fP: (\fI\%gtmanfred\fP) pass pillar to compound matcher in match module
  226917. @ \fI2017\-01\-20 19:19:09 UTC\fP
  226918. .INDENT 2.0
  226919. .IP \(bu 2
  226920. dfe6dfe963 Merge pull request \fI\%#38823\fP from gtmanfred/2016.3
  226921. .IP \(bu 2
  226922. f0a71e8707 pass pillar to compound matcher in match module
  226923. .UNINDENT
  226924. .UNINDENT
  226925. .SS Salt 2016.3.7 Release Notes
  226926. .sp
  226927. Version 2016.3.7 is a bugfix release for 2016.3.0\&.
  226928. .SS Security Fix
  226929. .sp
  226930. \fBCVE\-2017\-12791\fP Maliciously crafted minion IDs can cause unwanted directory
  226931. traversals on the Salt\-master
  226932. .sp
  226933. This release corrects a flaw in minion ID validation which could allow certain minions to
  226934. authenticate to a master despite not having the correct credentials. To exploit
  226935. the vulnerability, an attacker must create a salt\-minion with an ID containing
  226936. characters that will cause a directory traversal. Credit for discovering the
  226937. security flaw goes to: \fI\%Vernhk@qq.com\fP
  226938. .SS Changelog for v2016.3.6..v2016.3.7
  226939. .sp
  226940. \fIGenerated at: 2018\-05\-27 14:09:17 UTC\fP
  226941. .INDENT 0.0
  226942. .IP \(bu 2
  226943. 11d176ff1b Add release notes for 2016.3.7 release
  226944. .IP \(bu 2
  226945. dc649ded51 Add clean_id function to salt.utils.verify.py
  226946. .UNINDENT
  226947. .SS Salt 2016.3.8 Release Notes
  226948. .sp
  226949. Version 2016.3.8 is a bugfix release for 2016.3.0\&.
  226950. .SS Security Fix
  226951. .sp
  226952. \fBCVE\-2017\-14695\fP Directory traversal vulnerability in minion id validation in
  226953. SaltStack. Allows remote minions with incorrect credentials to authenticate to
  226954. a master via a crafted minion ID. Credit for discovering the security flaw goes
  226955. to: Julian Brost (\fI\%julian@0x4a42.net\fP)
  226956. .sp
  226957. \fBCVE\-2017\-14696\fP Remote Denial of Service with a specially crafted
  226958. authentication request. Credit for discovering the security flaw goes to:
  226959. Julian Brost (\fI\%julian@0x4a42.net\fP)
  226960. .SS Changelog for v2016.3.7..v2016.3.8
  226961. .sp
  226962. \fIGenerated at: 2018\-05\-27 14:11:36 UTC\fP
  226963. .INDENT 0.0
  226964. .IP \(bu 2
  226965. 8cf08bd7be Update 2016.3.7 Release Notes
  226966. .IP \(bu 2
  226967. 0425defe84 Do not allow IDs with null bytes in decoded payloads
  226968. .IP \(bu 2
  226969. 31b38f50eb Don\(aqt allow path separators in minion ID
  226970. .UNINDENT
  226971. .SS Salt 2016.3.9 Release Notes
  226972. .sp
  226973. Version 2016.3.9 is a bugfix release for 2016.3.0\&.
  226974. .SS Master Changes
  226975. .sp
  226976. The following options have been added to the master config file:
  226977. .INDENT 0.0
  226978. .IP \(bu 2
  226979. \fBallow_minion_key_revoke\fP \- This option controls whether a
  226980. minion can request that the master revoke its key. When \fBTrue\fP, a minion
  226981. can request a key revocation and the master will comply. If it is \fBFalse\fP,
  226982. the key will not be revoked by the msater.
  226983. .IP \(bu 2
  226984. \fBrequire_minion_sign_messages\fP \- This requires that minions
  226985. cryptographically sign the messages they publish to the master. If minions
  226986. are not signing, then log this information at loglevel \fBINFO\fP and drop the
  226987. message without acting on it.
  226988. .IP \(bu 2
  226989. \fBdrop_messages_signature_fail\fP \- Drop messages from minions when
  226990. their signatures do not validate. Note that when this option is \fBFalse\fP but
  226991. \fIrequire_minion_sign_messages\fP is \fBTrue\fP, minions \fIMUST\fP sign their
  226992. messages, but the validity of their signatures is ignored.
  226993. .IP \(bu 2
  226994. \fBminion_sign_messages\fP \- Causes the minion to cryptographically
  226995. sign the payload of messages it places on the event bus for the master. The
  226996. payloads are signed with the minion\(aqs private key so the master can verify
  226997. the signature with its public key.
  226998. .UNINDENT
  226999. .SS Salt 2015.8.0 Release Notes \- Codename Beryllium
  227000. .SS 2015.8.0 Detailed Change List
  227001. .sp
  227002. Extended changelog courtesy of Todd Stansell (\fI\%https://github.com/tjstansell/salt\-changelogs\fP)
  227003. .sp
  227004. \fIGenerated at: 2015\-09\-09T18:15:43Z\fP
  227005. .sp
  227006. This list includes all pull requests merged into the 2015.8 branch between the
  227007. forking of the branch from develop and the release of 2015.8.0.
  227008. .sp
  227009. Statistics:
  227010. .INDENT 0.0
  227011. .IP \(bu 2
  227012. Total Merges: \fB682\fP
  227013. .IP \(bu 2
  227014. Total Issue references: \fB342\fP
  227015. .IP \(bu 2
  227016. Total PR references: \fB866\fP
  227017. .UNINDENT
  227018. .sp
  227019. Pull Requests:
  227020. .INDENT 0.0
  227021. .IP \(bu 2
  227022. \fI\%#26993\fP: (\fIwhiteinge\fP) Backport \fI\%#26975\fP
  227023. .IP \(bu 2
  227024. \fI\%#26970\fP: (\fIcachedout\fP) Revert "better path query parsing in fileserver"
  227025. .IP \(bu 2
  227026. \fI\%#26980\fP: (\fIterminalmage\fP) Use human\-readable cachedirs for gitfs\-backed winrepo
  227027. .IP \(bu 2
  227028. \fI\%#26969\fP: (\fITheBigBear\fP) URL of salt windows downloads has changed
  227029. .IP \(bu 2
  227030. \fI\%#26968\fP: (\fITheBigBear\fP) URL of salt windows downloads has changed
  227031. .IP \(bu 2
  227032. \fI\%#26958\fP: (\fIs0undt3ch\fP) Bradthurber bootstrap command line help doc update
  227033. .IP \(bu 2
  227034. \fI\%#26949\fP: (\fIrallytime\fP) Back\-port \fI\%#25148\fP to 2015.8
  227035. .IP \(bu 2
  227036. \fI\%#26914\fP: (\fIcro\fP) Add salt\-proxy script and manpage to setup.py so they will get installed.
  227037. .IP \(bu 2
  227038. \fI\%#26909\fP: (\fIterminalmage\fP) Don\(aqt try to git clone from /tmp on Windows
  227039. .IP \(bu 2
  227040. \fI\%#26910\fP: (\fIs0undt3ch\fP) Sometimes the event system is just too fast
  227041. .IP \(bu 2
  227042. \fI\%#26905\fP: (\fIs0undt3ch\fP) Exit the loop if run_once is true
  227043. .IP \(bu 2
  227044. \fI\%#26897\fP: (\fImsteed\fP) spm file hash part deux
  227045. .IP \(bu 2
  227046. \fI\%#26900\fP: (\fIs0undt3ch\fP) If no tag is passed, don\(aqt actually subscribe to anything.
  227047. .IP \(bu 2
  227048. \fI\%#26880\fP: (\fIs0undt3ch\fP) Restore backwards compatibility to \fIsalt.utils.event\fP
  227049. .IP \(bu 2
  227050. \fI\%#26896\fP: (\fImsteed\fP) spm remove: use pkgfiles to calculate file hashes
  227051. .IP \(bu 2
  227052. \fI\%#26891\fP: (\fIjtand\fP) Fixed an unboundlocalerror
  227053. .IP \(bu 2
  227054. \fI\%#26892\fP: (\fIcachedout\fP) Make the testing ioloop the current one
  227055. .IP \(bu 2
  227056. \fI\%#26886\fP: (\fIjtand\fP) Gets the azure version correctly on python\-azure 1.0.0
  227057. .IP \(bu 2
  227058. \fI\%#26870\fP: (\fIrallytime\fP) Back\-port \fI\%#26834\fP to 2015.8
  227059. .IP \(bu 2
  227060. \fI\%#26865\fP: (\fIdmurphy18\fP) Fix apt preferences for apts, repos for pbuilder building for Debian
  227061. .IP \(bu 2
  227062. \fI\%#26873\fP: (\fIterminalmage\fP) Properly handle getting local config values in older git versions
  227063. .IP \(bu 2
  227064. \fI\%#26869\fP: (\fIrallytime\fP) Fix provider \-\-> driver change for salt\-cloud lxc
  227065. .IP \(bu 2
  227066. \fI\%#26858\fP: (\fIterminalmage\fP) Fix a couple version checks for git state and execution module
  227067. .IP \(bu 2
  227068. \fI\%#26853\fP: (\fIUtahDave\fP) Fix salt\-cloud on windows
  227069. .IP \(bu 2
  227070. \fI\%#26852\fP: (\fIbasepi\fP) [2015.8] Only reference msgpack if it imported successfully
  227071. .IP \(bu 2
  227072. \fI\%#26835\fP: (\fIterminalmage\fP) Backport \fI\%#26572\fP to 2015.8
  227073. .IP \(bu 2
  227074. \fI\%#26836\fP: (\fIjacobhammons\fP) Added rst source for salt\-proxy man page, added build and copy lines …
  227075. .IP \(bu 2
  227076. \fI\%#26818\fP: (\fIterminalmage\fP) Support empty repositories in git.latest
  227077. .IP \(bu 2
  227078. \fI\%#26819\fP: (\fIrallytime\fP) Make sure we\(aqre calling _validate_name in the correct place in 2015.8 Linode driver
  227079. .IP \(bu 2
  227080. \fI\%#26841\fP: (\fIl2ol33rt\fP) Fix reference before assignment in sqs engine
  227081. .IP \(bu 2
  227082. \fI\%#26822\fP: (\fIterminalmage\fP) Add some missing imports for masterless winrepo
  227083. .IP \(bu 2
  227084. \fI\%#26831\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227085. .IP \(bu 2
  227086. \fI\%#26826\fP: (\fItechhat\fP) Pass a package name to unregister_file()
  227087. .IP \(bu 2
  227088. \fI\%#26757\fP: (\fIcachedout\fP) Fix various filehandle leaks
  227089. .IP \(bu 2
  227090. \fI\%#26816\fP: (\fIgtmanfred\fP) rev defaults to HEAD
  227091. .IP \(bu 2
  227092. \fI\%#26801\fP: (\fIjacobhammons\fP) Added doc for dockerng minion configuration options
  227093. .IP \(bu 2
  227094. \fI\%#26808\fP: (\fIanlutro\fP) Fix git init argument formatting
  227095. .IP \(bu 2
  227096. \fI\%#26807\fP: (\fIterminalmage\fP) Move salt.utils.itersplit() to salt.utils.itertools.split()
  227097. .IP \(bu 2
  227098. \fI\%#26796\fP: (\fIjacobhammons\fP) Add doc for __states__
  227099. .IP \(bu 2
  227100. \fI\%#26764\fP: (\fIsjorge\fP) salt.utils.is_proxy() is no longer always true on SunOS/Illumos/SmartOS
  227101. .IP \(bu 2
  227102. \fI\%#26772\fP: (\fIsjorge\fP) pull in smartos \(aqvirt\(aq module from develop
  227103. .IP \(bu 2
  227104. \fI\%#26726\fP: (\fIterminalmage\fP) Redact HTTPS Basic Auth in states/funcs which deal with git remotes
  227105. .IP \(bu 2
  227106. \fI\%#26769\fP: (\fIterminalmage\fP) Use \-\-track to set tracking branch on older git versions
  227107. .IP \(bu 2
  227108. \fI\%#26765\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227109. .IP \(bu 2
  227110. \fI\%#26761\fP: (\fIsjorge\fP) fix SPM paths on smartos/illumos esky
  227111. .IP \(bu 2
  227112. \fI\%#26751\fP: (\fIterminalmage\fP) Fixes for masterless winrepo
  227113. .IP \(bu 2
  227114. \fI\%#26745\fP: (\fIrallytime\fP) Make sure pyrax configs are in place before checking for deps
  227115. .IP \(bu 2
  227116. \fI\%#26746\fP: (\fIrallytime\fP) Make sure nova configs are set before checking for dependencies
  227117. .IP \(bu 2
  227118. \fI\%#26750\fP: (\fIbasepi\fP) [2015.8] Add __utils__ to state modules
  227119. .IP \(bu 2
  227120. \fI\%#26752\fP: (\fIcro\fP) Fix typo in some diagram labels
  227121. .IP \(bu 2
  227122. \fI\%#26747\fP: (\fIbasepi\fP) [2015.8] Add __states__ to state modules, for cross\-calling states
  227123. .IP \(bu 2
  227124. \fI\%#26744\fP: (\fIbasepi\fP) [2015.8] Fix issue from \fI\%#26717\fP
  227125. .IP \(bu 2
  227126. \fI\%#26737\fP: (\fIdmurphy18\fP) Fix to allow for package naming other than just salt
  227127. .IP \(bu 2
  227128. \fI\%#26742\fP: (\fIrallytime\fP) Only warn about vsphere deprecation if vsphere is configured
  227129. .IP \(bu 2
  227130. \fI\%#26733\fP: (\fIsjorge\fP) Refactor of smartos_vmadm module
  227131. .IP \(bu 2
  227132. \fI\%#26735\fP: (\fIs0undt3ch\fP) Add \fI\&.hg\fP and \fI\&.cvs\fP to spm_build_exclude
  227133. .IP \(bu 2
  227134. \fI\%#26720\fP: (\fIUtahDave\fP) Updates for winrepo in 2015.8 to support jinja, while maintaining backwards compat
  227135. .IP \(bu 2
  227136. \fI\%#26719\fP: (\fIjodv\fP) Backport 26532 to 2015.8
  227137. .IP \(bu 2
  227138. \fI\%#26721\fP: (\fIrallytime\fP) Linode Driver Cleanup
  227139. .IP \(bu 2
  227140. \fI\%#26707\fP: (\fItechhat\fP) Add top_level_dir to FORMULAs
  227141. .IP \(bu 2
  227142. \fI\%#26723\fP: (\fIs0undt3ch\fP) Handle SPM paths in the setup script
  227143. .IP \(bu 2
  227144. \fI\%#26717\fP: (\fIbasepi\fP) [2015.8] Revert loader changes from \fI\%#26645\fP
  227145. .IP \(bu 2
  227146. \fI\%#26712\fP: (\fItechhat\fP) Move SPM paths around
  227147. .IP \(bu 2
  227148. \fI\%#26680\fP: (\fITheBigBear\fP) add more python libs info in \(aq\-\-versions\-report\(aq
  227149. .IP \(bu 2
  227150. \fI\%#26716\fP: (\fIterminalmage\fP) Allow git identity to be a list
  227151. .IP \(bu 2
  227152. \fI\%#26691\fP: (\fIgarethgreenaway\fP) Fixes to ipset module for 2015.8
  227153. .IP \(bu 2
  227154. \fI\%#26701\fP: (\fIkev009\fP) Ignore the first element of kern.disks split, which is the sysctl name (new disks grain)
  227155. .IP \(bu 2
  227156. \fI\%#26678\fP: (\fIterminalmage\fP) Restructure git.latest rewrite to work better when following HEAD
  227157. .IP \(bu 2
  227158. \fI\%#26679\fP: (\fIrallytime\fP) Back\-port \fI\%#26661\fP to 2015.8
  227159. .IP \(bu 2
  227160. \fI\%#26684\fP: (\fItechhat\fP) Add reactor formulas to spm
  227161. .IP \(bu 2
  227162. \fI\%#26682\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227163. .IP \(bu 2
  227164. \fI\%#26671\fP: (\fIrallytime\fP) Warn users if cloud driver dependencies are missing.
  227165. .IP \(bu 2
  227166. \fI\%#26674\fP: (\fIrallytime\fP) Back\-port \fI\%#26583\fP to 2015.8
  227167. .IP \(bu 2
  227168. \fI\%#26670\fP: (\fItechhat\fP) Set up SPM to install \-conf packages
  227169. .IP \(bu 2
  227170. \fI\%#26657\fP: (\fIjfindlay\fP) top file compilation fixes
  227171. .IP \(bu 2
  227172. \fI\%#26659\fP: (\fITheBigBear\fP) minor doc edits \- spelling
  227173. .IP \(bu 2
  227174. \fI\%#26654\fP: (\fIjfindlay\fP) merge \fI\%#26650\fP
  227175. .IP \(bu 2
  227176. \fI\%#26567\fP: (\fIjtand\fP) Added git version check to git module
  227177. .IP \(bu 2
  227178. \fI\%#26649\fP: (\fItwangboy\fP) Fixed Lint for real in win_repo.py
  227179. .IP \(bu 2
  227180. \fI\%#26608\fP: (\fIjacobhammons\fP) 2015.8.0 release notes and doc/conf.py updates
  227181. .IP \(bu 2
  227182. \fI\%#26646\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227183. .IP \(bu 2
  227184. \fI\%#26645\fP: (\fIrallytime\fP) Back\-port \fI\%#26390\fP to 2015.8
  227185. .IP \(bu 2
  227186. \fI\%#26642\fP: (\fItwangboy\fP) Added function to render winrepo Jinja
  227187. .IP \(bu 2
  227188. \fI\%#26625\fP: (\fItwangboy\fP) Correctly detect packages with no version, docs
  227189. .IP \(bu 2
  227190. \fI\%#26575\fP: (\fImsteed\fP) Update spm for integration into raas
  227191. .IP \(bu 2
  227192. \fI\%#26635\fP: (\fIcro\fP) Don\(aqt report windows as a proxy.
  227193. .IP \(bu 2
  227194. \fI\%#26622\fP: (\fIrallytime\fP) [2015.8] Also add \-Z to script args for cloud tests
  227195. .IP \(bu 2
  227196. \fI\%#26619\fP: (\fIrallytime\fP) Apply cloud test fixes from 2015.5 to 2015.8
  227197. .IP \(bu 2
  227198. \fI\%#26603\fP: (\fIterminalmage\fP) Fixes for git.latest, git module integration tests, etc.
  227199. .IP \(bu 2
  227200. \fI\%#26577\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227201. .IP \(bu 2
  227202. \fI\%#26534\fP: (\fIcachedout\fP) Bump required Tornado version to 4.2.1
  227203. .IP \(bu 2
  227204. \fI\%#26566\fP: (\fIcachedout\fP) Don\(aqt stacktrace trying to publish without a master
  227205. .IP \(bu 2
  227206. \fI\%#26541\fP: (\fIterminalmage\fP) Make winrepo execution module use the same code as the runner
  227207. .IP \(bu 2
  227208. \fI\%#26530\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227209. .IP \(bu 2
  227210. \fI\%#26570\fP: (\fIcachedout\fP) Fix haproxy docs to be valid
  227211. .IP \(bu 2
  227212. \fI\%#26562\fP: (\fIcachedout\fP) Fix suprious error message with systemd\-detect
  227213. .IP \(bu 2
  227214. \fI\%#26557\fP: (\fIjfindlay\fP) add docs to \fI\%#26550\fP
  227215. .IP \(bu 2
  227216. \fI\%#26544\fP: (\fInmadhok\fP) Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  227217. .IP \(bu 2
  227218. \fI\%#26501\fP: (\fIterminalmage\fP) Update git_pillar docs, add git.list_worktrees function
  227219. .IP \(bu 2
  227220. \fI\%#26521\fP: (\fIterminalmage\fP) Work around upstream git bug when cloning repo as root
  227221. .IP \(bu 2
  227222. \fI\%#26518\fP: (\fIkrak3n\fP) Fix for \fI\%#25492\fP
  227223. .IP \(bu 2
  227224. \fI\%#26514\fP: (\fIevverx\fP) Unmask a runtime masked services too
  227225. .IP \(bu 2
  227226. \fI\%#26529\fP: (\fImnalt\fP) bugfix: fix service.enable for missing rc.conf
  227227. .IP \(bu 2
  227228. \fI\%#26516\fP: (\fItechhat\fP) Move more path operations into SPM loader
  227229. .IP \(bu 2
  227230. \fI\%#26533\fP: (\fIcachedout\fP) Fix too aggressive even init check
  227231. .IP \(bu 2
  227232. \fI\%#26522\fP: (\fIcro\fP) Do not load package provider if its not a proxy
  227233. .IP \(bu 2
  227234. \fI\%#26531\fP: (\fIcachedout\fP) Fix failing event tests and modify event init
  227235. .IP \(bu 2
  227236. \fI\%#26433\fP: (\fIcro\fP) Add support for default proxy config options, change default location of proxy config and log to /etc/salt/proxy and /var/log/proxy
  227237. .IP \(bu 2
  227238. \fI\%#26504\fP: (\fInmadhok\fP) [Backport] Adding ability to specify the virtual hardware version when creating VM
  227239. .IP \(bu 2
  227240. \fI\%#26517\fP: (\fIcachedout\fP) Better fix for opensuse tornado httpclient
  227241. .IP \(bu 2
  227242. \fI\%#26479\fP: (\fIrallytime\fP) Don\(aqt allow VMs with duplicate names to be created in EC2/AWS
  227243. .IP \(bu 2
  227244. \fI\%#26488\fP: (\fIcachedout\fP) Don\(aqt pass unsupported kwarg to tornado
  227245. .IP \(bu 2
  227246. \fI\%#26451\fP: (\fIterminalmage\fP) Use \(aqrpm \-qa\(aq instead of repoquery to list installed packages
  227247. .IP \(bu 2
  227248. \fI\%#26491\fP: (\fIjacobhammons\fP) doc site css fix for tiny fonts that appeared in code or pre tags in …
  227249. .IP \(bu 2
  227250. \fI\%#26442\fP: (\fIrallytime\fP) Hide API Key from debug logs for Linode Driver
  227251. .IP \(bu 2
  227252. \fI\%#26441\fP: (\fIrallytime\fP) Refactor a few linode functions to be useful with salt\-cloud command
  227253. .IP \(bu 2
  227254. \fI\%#26485\fP: (\fIs0undt3ch\fP) One more missed typo
  227255. .IP \(bu 2
  227256. \fI\%#26495\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227257. .IP \(bu 2
  227258. \fI\%#26492\fP: (\fIcachedout\fP) Fix schedule test error on py26
  227259. .IP \(bu 2
  227260. \fI\%#26489\fP: (\fIcachedout\fP) Fixing more tarfile tests on py2.6
  227261. .IP \(bu 2
  227262. \fI\%#26475\fP: (\fIcachedout\fP) Better object checking on asyncreq cleanup
  227263. .IP \(bu 2
  227264. \fI\%#26477\fP: (\fIcachedout\fP) Fix integration.modules.git.GitModuleTest.test_archive on py26
  227265. .IP \(bu 2
  227266. \fI\%#26469\fP: (\fIjtand\fP) \-\-annotate and \-\-message aren\(aqt valid options in older versions of git.
  227267. .IP \(bu 2
  227268. \fI\%#26439\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227269. .IP \(bu 2
  227270. \fI\%#26464\fP: (\fIrallytime\fP) Back\-port \fI\%#26456\fP to 2015.8
  227271. .IP \(bu 2
  227272. \fI\%#26463\fP: (\fIrallytime\fP) Back\-port \fI\%#26455\fP to 2015.8
  227273. .IP \(bu 2
  227274. \fI\%#26449\fP: (\fIs0undt3ch\fP) The CLI options are not meant to include underscores.
  227275. .IP \(bu 2
  227276. \fI\%#26270\fP: (\fIsjorge\fP) salt.modules.network now supports SmartOS and SunOS < Solaris 11
  227277. .IP \(bu 2
  227278. \fI\%#26436\fP: (\fITheBigBear\fP) minor edits
  227279. .IP \(bu 2
  227280. \fI\%#26410\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227281. .IP \(bu 2
  227282. \fI\%#26427\fP: (\fIanlutro\fP) git.latest with no rev: fix concatenation error (NoneType and str)
  227283. .IP \(bu 2
  227284. \fI\%#26307\fP: (\fIcachedout\fP) Fix bug in top file ordering
  227285. .IP \(bu 2
  227286. \fI\%#26428\fP: (\fIcro\fP) Update docs to reflect new pillar structure
  227287. .IP \(bu 2
  227288. \fI\%#26429\fP: (\fIcachedout\fP) Add release note regarding tcp transport on freebsd
  227289. .IP \(bu 2
  227290. \fI\%#26418\fP: (\fIdriskell\fP) Fix forward\-merged caching from 2015.5 into 2015.8 to be compatible with the new match_func
  227291. .IP \(bu 2
  227292. \fI\%#26252\fP: (\fIDmitryKuzmenko\fP) Issues/24048 http client 2015.8
  227293. .IP \(bu 2
  227294. \fI\%#26413\fP: (\fIevverx\fP) Fix service.{start,restart,reload,force\-reload} for masked services
  227295. .IP \(bu 2
  227296. \fI\%#26393\fP: (\fIdmurphy18\fP) Added option parameters to make_repo to allow for configuration settings
  227297. .IP \(bu 2
  227298. \fI\%#26422\fP: (\fITheBigBear\fP) no dots in SLS filename __AND__ any directories (incl git repos)
  227299. .IP \(bu 2
  227300. \fI\%#26323\fP: (\fI0xf10e\fP) Fix Credentials used in \fIglance\fP Exec Module
  227301. .IP \(bu 2
  227302. \fI\%#26341\fP: (\fIterminalmage\fP) Rewrite git state and execution modules
  227303. .IP \(bu 2
  227304. \fI\%#26419\fP: (\fIterminalmage\fP) Only use pygit2.errors if it exists
  227305. .IP \(bu 2
  227306. \fI\%#26423\fP: (\fIeliasp\fP) doc \- Correct function name for peer configuration
  227307. .IP \(bu 2
  227308. \fI\%#26401\fP: (\fIcachedout\fP) Adapt proxy minion to tornado (w/lint)
  227309. .IP \(bu 2
  227310. \fI\%#26400\fP: (\fIrallytime\fP) Back\-port \fI\%#26318\fP to 2015.8
  227311. .IP \(bu 2
  227312. \fI\%#26397\fP: (\fIs0undt3ch\fP) A single \fIisinstance()\fP check for all types is enough
  227313. .IP \(bu 2
  227314. \fI\%#26385\fP: (\fIgtmanfred\fP) don\(aqt require volume endpoint in nova driver
  227315. .IP \(bu 2
  227316. \fI\%#26287\fP: (\fItechhat\fP) Break out SPM components into loaders
  227317. .IP \(bu 2
  227318. \fI\%#26384\fP: (\fITheBigBear\fP) Fix shell quoting for cmd.run
  227319. .IP \(bu 2
  227320. \fI\%#26391\fP: (\fIrallytime\fP) Back\-port \fI\%#26367\fP to 2015.8
  227321. .IP \(bu 2
  227322. \fI\%#26383\fP: (\fIrallytime\fP) Allow the creation of a VM without a profile
  227323. .IP \(bu 2
  227324. \fI\%#26375\fP: (\fIs0undt3ch\fP) [2015.8] Schema DictItem required attribute fixes
  227325. .IP \(bu 2
  227326. \fI\%#26363\fP: (\fIgarethgreenaway\fP) Fixes to mount state 2015.8
  227327. .IP \(bu 2
  227328. \fI\%#26347\fP: (\fI0xf10e\fP) Load \(aqpkgng\(aq as \(aqpkg\(aq on FreeBSD 9 when \fIproviders:pkg\fP == \(aqpkgng\(aq
  227329. .IP \(bu 2
  227330. \fI\%#26361\fP: (\fITronPaul\fP) sign security token
  227331. .IP \(bu 2
  227332. \fI\%#26346\fP: (\fITronPaul\fP) Fix s3 using IAM credentials
  227333. .IP \(bu 2
  227334. \fI\%#26331\fP: (\fImnalt\fP) fix bug in sysrc to allow for empty rc variables
  227335. .IP \(bu 2
  227336. \fI\%#26334\fP: (\fIrallytime\fP) Call salt.utils.cloud.bootstrap in GCE Driver provisioning
  227337. .IP \(bu 2
  227338. \fI\%#26308\fP: (\fIdmurphy18\fP) Support for environment overrides building packages
  227339. .IP \(bu 2
  227340. \fI\%#26279\fP: (\fITheScriptSage\fP) Merge changes for pull\(ga#26083\(ga_ and pull\(ga#25632\(ga_ into 2015.8
  227341. .IP \(bu 2
  227342. \fI\%#26224\fP: (\fIcachedout\fP) Cleanup of a few cases to move to salt.utils.fopen
  227343. .IP \(bu 2
  227344. \fI\%#26260\fP: (\fInmadhok\fP) Correct spelling of integration in docs
  227345. .IP \(bu 2
  227346. \fI\%#26226\fP: (\fIrallytime\fP) Fix \fI\%#25463\fP
  227347. .IP \(bu 2
  227348. \fI\%#26248\fP: (\fInmadhok\fP) Initial commit of unit tests for vmware cloud driver
  227349. .IP \(bu 2
  227350. \fI\%#26228\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227351. .IP \(bu 2
  227352. \fI\%#26244\fP: (\fInmadhok\fP) Backport additions to VMware cloud driver from develop to 2015.8 branch
  227353. .IP \(bu 2
  227354. \fI\%#26235\fP: (\fIsjorge\fP) salt.utils.is_smartos_zone, inverse of is_smartos_globalzone
  227355. .IP \(bu 2
  227356. \fI\%#26221\fP: (\fIsjorge\fP) SmartOS grain fixes
  227357. .IP \(bu 2
  227358. \fI\%#26218\fP: (\fIterminalmage\fP) Add warning about file.recurse unicode errors with vim swap files.
  227359. .IP \(bu 2
  227360. \fI\%#26214\fP: (\fIrallytime\fP) Back\-port \fI\%#24878\fP to 2015.8
  227361. .IP \(bu 2
  227362. \fI\%#26211\fP: (\fItechhat\fP) Move SPM to its own directory
  227363. .IP \(bu 2
  227364. \fI\%#26197\fP: (\fITronPaul\fP) Fix GitFS when whitelisting base
  227365. .IP \(bu 2
  227366. \fI\%#26200\fP: (\fIanlutro\fP) Make it possible to run salt\-cloud as current user
  227367. .IP \(bu 2
  227368. \fI\%#26201\fP: (\fIkev009\fP) Avoid VBOX storage emulation bugs in FreeBSD disks grain
  227369. .IP \(bu 2
  227370. \fI\%#26188\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227371. .IP \(bu 2
  227372. \fI\%#26194\fP: (\fIbasepi\fP) Allow virtual grains to be generated even if virt\-what is not available
  227373. .IP \(bu 2
  227374. \fI\%#26176\fP: (\fIrallytime\fP) Back\-port \fI\%#26165\fP to 2015.8
  227375. .IP \(bu 2
  227376. \fI\%#26169\fP: (\fIterminalmage\fP) Fix attribute error in gitfs\(aq find_file functions
  227377. .IP \(bu 2
  227378. \fI\%#26170\fP: (\fInmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it.
  227379. .IP \(bu 2
  227380. \fI\%#26143\fP: (\fInmadhok\fP) VMware cloud driver fixes [forward port from 2015.5 into 2015.8]
  227381. .IP \(bu 2
  227382. \fI\%#26173\fP: (\fIjacobhammons\fP) Updates to cloud docs for the provider > driver change
  227383. .IP \(bu 2
  227384. \fI\%#26125\fP: (\fIevverx\fP) Use timedatectl set\-timezone to tzsetting if available
  227385. .IP \(bu 2
  227386. \fI\%#26145\fP: (\fIsjorge\fP) smartos_imgadm cleanup
  227387. .IP \(bu 2
  227388. \fI\%#26148\fP: (\fIterminalmage\fP) Refactor winrepo support
  227389. .IP \(bu 2
  227390. \fI\%#26128\fP: (\fIsjorge\fP) imgadm.avail should return multiple results
  227391. .IP \(bu 2
  227392. \fI\%#26109\fP: (\fIjfindlay\fP) fix quote indent
  227393. .IP \(bu 2
  227394. \fI\%#26089\fP: (\fIanlutro\fP) User state/module: fix coercing of None into string "None" in GECOS
  227395. .IP \(bu 2
  227396. \fI\%#26081\fP: (\fIcachedout\fP) Move invocation routine up
  227397. .IP \(bu 2
  227398. \fI\%#26086\fP: (\fIrallytime\fP) Back\-port \fI\%#26019\fP to 2015.8
  227399. .IP \(bu 2
  227400. \fI\%#26087\fP: (\fIrallytime\fP) Back\-port \fI\%#26059\fP to 2015.8
  227401. .IP \(bu 2
  227402. \fI\%#26052\fP: (\fIjtand\fP) Rh_ip fix
  227403. .IP \(bu 2
  227404. \fI\%#26078\fP: (\fIcachedout\fP) Fix missing key in error return
  227405. .IP \(bu 2
  227406. \fI\%#26074\fP: (\fIbasepi\fP) [2015.8] Re\-apply \fI\%#25358\fP in 2015.8
  227407. .IP \(bu 2
  227408. \fI\%#26069\fP: (\fIjfindlay\fP) fix win_firewall.delete_rule
  227409. .IP \(bu 2
  227410. \fI\%#26066\fP: (\fIs0undt3ch\fP) [2015.8] Update to latest bootstrap stable release v2015.06.08
  227411. .IP \(bu 2
  227412. \fI\%#26049\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227413. .IP \(bu 2
  227414. \fI\%#26026\fP: (\fIanlutro\fP) Fix httpasswd result false positive in test mode
  227415. .IP \(bu 2
  227416. \fI\%#26037\fP: (\fIrallytime\fP) Back\-port \fI\%#25489\fP to 2015.8
  227417. .IP \(bu 2
  227418. \fI\%#26004\fP: (\fItechhat\fP) Allow updating a single SPM repo at a time
  227419. .IP \(bu 2
  227420. \fI\%#26012\fP: (\fIcachedout\fP) Merge kwargs into opts for tcp client
  227421. .IP \(bu 2
  227422. \fI\%#26007\fP: (\fIanlutro\fP) file.managed: wrap os.remove in if isfile, don\(aqt remove on success
  227423. .IP \(bu 2
  227424. \fI\%#26009\fP: (\fIterminalmage\fP) Add winrepo and dockerng information to 2015.8.0 release notes
  227425. .IP \(bu 2
  227426. \fI\%#26006\fP: (\fIbasepi\fP) Revert \fI\%#25727\fP in favor of \fI\%#25645\fP
  227427. .IP \(bu 2
  227428. \fI\%#26001\fP: (\fIcachedout\fP) Fix failing tests
  227429. .IP \(bu 2
  227430. \fI\%#25978\fP: (\fIanlutro\fP) Correct service state changes in test mode
  227431. .IP \(bu 2
  227432. \fI\%#25982\fP: (\fIsjorge\fP) salt.modules.smartos_* limit to global zone only
  227433. .IP \(bu 2
  227434. \fI\%#25989\fP: (\fIrallytime\fP) Back\-port \fI\%#25832\fP to 2015.8
  227435. .IP \(bu 2
  227436. \fI\%#25988\fP: (\fIcachedout\fP) Move \fI\%#25642\fP to 2015.8
  227437. .IP \(bu 2
  227438. \fI\%#25999\fP: (\fIs0undt3ch\fP) Include subschema defaults
  227439. .IP \(bu 2
  227440. \fI\%#25997\fP: (\fIs0undt3ch\fP) Allow getting a defaults dictionary from schema defaults
  227441. .IP \(bu 2
  227442. \fI\%#25979\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227443. .IP \(bu 2
  227444. \fI\%#25902\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227445. .IP \(bu 2
  227446. \fI\%#25956\fP: (\fIanlutro\fP) Fix user argument to cron functions
  227447. .IP \(bu 2
  227448. \fI\%#25946\fP: (\fIsjorge\fP) Fix for salt.utils.decorators under esky
  227449. .IP \(bu 2
  227450. \fI\%#25957\fP: (\fIanlutro\fP) Remove temporary file after file.managed with checkcmd
  227451. .IP \(bu 2
  227452. \fI\%#25874\fP: (\fIrallytime\fP) Back\-port \fI\%#25668\fP to 2015.8
  227453. .IP \(bu 2
  227454. \fI\%#25929\fP: (\fIsjorge\fP) salt.module.pkgin\(aqs __virtual__() should not return None if pkg_info is not present
  227455. .IP \(bu 2
  227456. \fI\%#25952\fP: (\fIgarethgreenaway\fP) Log when event.fire and event.fire_master fail 2015.8
  227457. .IP \(bu 2
  227458. \fI\%#25944\fP: (\fIsjorge\fP) Smartos libcrypto nonesky fix
  227459. .IP \(bu 2
  227460. \fI\%#25906\fP: (\fIdmurphy18\fP) Cherry\-pick of pkgbuild changes from develop branch
  227461. .IP \(bu 2
  227462. \fI\%#25925\fP: (\fIsjorge\fP) Create default log location in smartos esky buildscript
  227463. .IP \(bu 2
  227464. \fI\%#25928\fP: (\fIcachedout\fP) Fix stacktrace for non\-existant states
  227465. .IP \(bu 2
  227466. \fI\%#25922\fP: (\fIjacksontj\fP) Correct max_wait \-> max_auth_wait in MultiMinion
  227467. .IP \(bu 2
  227468. \fI\%#25907\fP: (\fIrallytime\fP) Back\-port \fI\%#25892\fP to 2015.8
  227469. .IP \(bu 2
  227470. \fI\%#25910\fP: (\fIterminalmage\fP) Pass osarch to check_32()
  227471. .IP \(bu 2
  227472. \fI\%#25849\fP: (\fIbasepi\fP) Repress template error for GPG renderer (can\(aqt seek an OrderedDict)
  227473. .IP \(bu 2
  227474. \fI\%#25868\fP: (\fIrallytime\fP) Back\-port \fI\%#25404\fP to 2015.8
  227475. .IP \(bu 2
  227476. \fI\%#25896\fP: (\fIcachedout\fP) Lint
  227477. .IP \(bu 2
  227478. \fI\%#25876\fP: (\fIjacksontj\fP) Fixes for 2015.8
  227479. .IP \(bu 2
  227480. \fI\%#25867\fP: (\fIrallytime\fP) Back\-port \fI\%#25370\fP to 2015.8
  227481. .IP \(bu 2
  227482. \fI\%#25845\fP: (\fIjacobhammons\fP) updated versionadded
  227483. .IP \(bu 2
  227484. \fI\%#25836\fP: (\fIjacksontj\fP) Keep track of SyncWrapper\(aqs IOLoop usage
  227485. .IP \(bu 2
  227486. \fI\%#25859\fP: (\fI0xf10e\fP) warn_until(Carbon,...) instead of Boron
  227487. .IP \(bu 2
  227488. \fI\%#25505\fP: (\fI0xf10e\fP) Glance state module for 2015.8 "Beryllium"
  227489. .IP \(bu 2
  227490. \fI\%#25843\fP: (\fIjtand\fP) Fixed a lint error in parsers.py
  227491. .IP \(bu 2
  227492. \fI\%#25835\fP: (\fItechhat\fP) spm update_repo doesn\(aqt always require arguments
  227493. .IP \(bu 2
  227494. \fI\%#25837\fP: (\fIjacobhammons\fP) regenerated man pages
  227495. .IP \(bu 2
  227496. \fI\%#25830\fP: (\fIsjorge\fP) Loading of libcrypto on smartos esky fixed
  227497. .IP \(bu 2
  227498. \fI\%#25808\fP: (\fIjfindlay\fP) add highstate opts to config/__init__.py, update docs
  227499. .IP \(bu 2
  227500. \fI\%#25820\fP: (\fIsjorge\fP) Prerequisite to fix the smartos libcrypto loading
  227501. .IP \(bu 2
  227502. \fI\%#25781\fP: (\fIanlutro\fP) Fix iptables.build_rule
  227503. .IP \(bu 2
  227504. \fI\%#25764\fP: (\fIgtmanfred\fP) allow use of cloudnetworks in ssh_interface
  227505. .IP \(bu 2
  227506. \fI\%#25736\fP: (\fIjfindlay\fP) insert explicit formatter number
  227507. .IP \(bu 2
  227508. \fI\%#25742\fP: (\fIrallytime\fP) Back\-port \fI\%#25731\fP to 2015.8
  227509. .IP \(bu 2
  227510. \fI\%#25741\fP: (\fIrallytime\fP) Back\-port \fI\%#25727\fP to 2015.8
  227511. .IP \(bu 2
  227512. \fI\%#25712\fP: (\fIcachedout\fP) Fix outputter for state.apply
  227513. .IP \(bu 2
  227514. \fI\%#25698\fP: (\fIrallytime\fP) Back\-port \fI\%#25659\fP to 2015.8
  227515. .IP \(bu 2
  227516. \fI\%#25690\fP: (\fIanlutro\fP) Fix highstate duration alignment (again)
  227517. .IP \(bu 2
  227518. \fI\%#25684\fP: (\fIdavidjb\fP) Fix doc around Include/Exclude for states
  227519. .IP \(bu 2
  227520. \fI\%#25549\fP: (\fItechhat\fP) Switch Scaleway to salt.utils.cloud.bootstrap()
  227521. .IP \(bu 2
  227522. \fI\%#25667\fP: (\fIjfindlay\fP) add 2015.8.0rc2 autogenerated changelog
  227523. .IP \(bu 2
  227524. \fI\%#25653\fP: (\fIanlutro\fP) Properly align highstate duration sum
  227525. .IP \(bu 2
  227526. \fI\%#25663\fP: (\fIrallytime\fP) Back\-port \fI\%#25638\fP to 2015.8
  227527. .IP \(bu 2
  227528. \fI\%#25639\fP: (\fIterminalmage\fP) Don\(aqt do pre\-flight check on git_pillar if it is not configured
  227529. .IP \(bu 2
  227530. \fI\%#25587\fP: (\fIcachedout\fP) Fix prereq in salt.state
  227531. .IP \(bu 2
  227532. \fI\%#25628\fP: (\fIanlutro\fP) Highstate output: show duration in seconds instead of milliseconds when appropriate
  227533. .IP \(bu 2
  227534. \fI\%#25631\fP: (\fIbasepi\fP) Remove trailing whitespace
  227535. .IP \(bu 2
  227536. \fI\%#25627\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227537. .IP \(bu 2
  227538. \fI\%#25626\fP: (\fIbasepi\fP) Fix the highstate outputter if \(aqduration\(aq is not present
  227539. .IP \(bu 2
  227540. \fI\%#25601\fP: (\fIterminalmage\fP) Fix error message when local bin pkg path is not absolute
  227541. .IP \(bu 2
  227542. \fI\%#25595\fP: (\fIterminalmage\fP) Bring git_pillar up to feature parity with gitfs
  227543. .IP \(bu 2
  227544. \fI\%#25619\fP: (\fIcachedout\fP) Lint stateconf changes
  227545. .IP \(bu 2
  227546. \fI\%#25578\fP: (\fIdavidjb\fP) Allow parent relative includes in state files
  227547. .IP \(bu 2
  227548. \fI\%#25610\fP: (\fIs0undt3ch\fP) [2015.8] Update the bootstrap script to latest release v2015.07.22
  227549. .IP \(bu 2
  227550. \fI\%#25599\fP: (\fIjfindlay\fP) fix transport settings in \fI\%#25596\fP
  227551. .IP \(bu 2
  227552. \fI\%#25596\fP: (\fIjfindlay\fP) Tcp test
  227553. .IP \(bu 2
  227554. \fI\%#25591\fP: (\fIgarethgreenaway\fP) Return data for scheduled jobs in 2015.8 default to True.
  227555. .IP \(bu 2
  227556. \fI\%#25588\fP: (\fIbasepi\fP) Fix some of the retcode work from \fI\%#23105\fP
  227557. .IP \(bu 2
  227558. \fI\%#25583\fP: (\fIjtand\fP) Fixed lint error where pprint wasn\(aqt imported.
  227559. .IP \(bu 2
  227560. \fI\%#25572\fP: (\fIrallytime\fP) Back\-port \fI\%#25570\fP to 2015.8
  227561. .IP \(bu 2
  227562. \fI\%#25575\fP: (\fIrallytime\fP) Make Sure Scaleway driver works with deprecation paths
  227563. .IP \(bu 2
  227564. \fI\%#25564\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227565. .IP \(bu 2
  227566. \fI\%#25566\fP: (\fItechhat\fP) Fix download process for SPM repo updates
  227567. .IP \(bu 2
  227568. \fI\%#25553\fP: (\fItechhat\fP) Switch SoftLayer to salt.utils.cloud.bootstrap()
  227569. .IP \(bu 2
  227570. \fI\%#25552\fP: (\fItechhat\fP) Update pricing for SoftlayerHW
  227571. .IP \(bu 2
  227572. \fI\%#25547\fP: (\fItechhat\fP) Switch Parallels to salt.utils.cloud.bootstrap()
  227573. .IP \(bu 2
  227574. \fI\%#25548\fP: (\fItechhat\fP) Switch Proxmox to salt.utils.cloud.bootstrap()
  227575. .IP \(bu 2
  227576. \fI\%#25543\fP: (\fItechhat\fP) Switch GCE to salt.utils.cloud.bootstrap()
  227577. .IP \(bu 2
  227578. \fI\%#25546\fP: (\fItechhat\fP) Switch CloudStack to salt.utils.cloud.bootstrap()
  227579. .IP \(bu 2
  227580. \fI\%#25558\fP: (\fIcachedout\fP) Lint config_test
  227581. .IP \(bu 2
  227582. \fI\%#25515\fP: (\fIs0undt3ch\fP) salt.utils.schema fixes
  227583. .IP \(bu 2
  227584. \fI\%#25514\fP: (\fIgarethgreenaway\fP) fixes to schedule.add documentation in 2015.8
  227585. .IP \(bu 2
  227586. \fI\%#25508\fP: (\fIs0undt3ch\fP) [2015.8] Update bootstrap script to latest stable release, v2015.07.17
  227587. .IP \(bu 2
  227588. \fI\%#25501\fP: (\fIbasepi\fP) Add optional job end time to the local_cache returner
  227589. .IP \(bu 2
  227590. \fI\%#25491\fP: (\fIs0undt3ch\fP) Let\(aqs call it for what it is!
  227591. .IP \(bu 2
  227592. \fI\%#25462\fP: (\fIrallytime\fP) Wrap is_profile_configrured calls in try/except block
  227593. .IP \(bu 2
  227594. \fI\%#25439\fP: (\fIrallytime\fP) Reduce digital_ocean API call frequency
  227595. .IP \(bu 2
  227596. \fI\%#25451\fP: (\fIs0undt3ch\fP) Salt\-SSH Scan roster bugfixes (And Py3 support)
  227597. .IP \(bu 2
  227598. \fI\%#25449\fP: (\fIruzarowski\fP) Exclude dotfiles and directories from minion key lists (Fixes \fI\%#25448\fP)
  227599. .IP \(bu 2
  227600. \fI\%#25421\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227601. .IP \(bu 2
  227602. \fI\%#25412\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227603. .IP \(bu 2
  227604. \fI\%#25415\fP: (\fIbechtoldt\fP) [docs] declare YAML as code block
  227605. .IP \(bu 2
  227606. \fI\%#25407\fP: (\fIrallytime\fP) Back\-port \fI\%#23236\fP to 2015.8
  227607. .IP \(bu 2
  227608. \fI\%#25409\fP: (\fIrallytime\fP) Back\-port \fI\%#24422\fP to 2015.8
  227609. .IP \(bu 2
  227610. \fI\%#25394\fP: (\fIrallytime\fP) Back\-port \fI\%#25355\fP to 2015.8
  227611. .IP \(bu 2
  227612. \fI\%#25393\fP: (\fIrallytime\fP) Back\-port \fI\%#25289\fP to 2015.8
  227613. .IP \(bu 2
  227614. \fI\%#25387\fP: (\fIcachedout\fP) Lint \fI\%#25319\fP
  227615. .IP \(bu 2
  227616. \fI\%#25319\fP: (\fIruzarowski\fP) [cloud:EC2] Move SourceDest logic to _update_enis and add alias for delete_interface_on_terminate
  227617. .IP \(bu 2
  227618. \fI\%#25310\fP: (\fIanlutro\fP) Add an "is list" test to the jinja environment
  227619. .IP \(bu 2
  227620. \fI\%#25264\fP: (\fIruzarowski\fP) Fix AttributeError in fileserver update_opts
  227621. .IP \(bu 2
  227622. \fI\%#25372\fP: (\fIrallytime\fP) Don\(aqt stacktrace when provisioning instances with softlayer* drivers
  227623. .IP \(bu 2
  227624. \fI\%#25315\fP: (\fIruzarowski\fP) [cloud:EC2] Move handling of AssociatePublicIpAddress to associate_eip/allocate_new_eip logic depending on value type
  227625. .IP \(bu 2
  227626. \fI\%#25312\fP: (\fIruzarowski\fP) [cloud:EC2] Introduce eni Name property to set name tag value after its creation
  227627. .IP \(bu 2
  227628. \fI\%#25311\fP: (\fIruzarowski\fP) [cloud:EC2] Add ability to attach an existing eni
  227629. .IP \(bu 2
  227630. \fI\%#25280\fP: (\fIrallytime\fP) Remove deprecation warnings for Beryllium
  227631. .IP \(bu 2
  227632. \fI\%#25329\fP: (\fItwangboy\fP) Fixed some documentation errors
  227633. .IP \(bu 2
  227634. \fI\%#25300\fP: (\fIs0undt3ch\fP) Fix ordering issue & Added requirements support
  227635. .IP \(bu 2
  227636. \fI\%#25283\fP: (\fIjfindlay\fP) ensure ret is always defined
  227637. .IP \(bu 2
  227638. \fI\%#25252\fP: (\fIjfindlay\fP) make args optional with default values in win_firewall.delete_rule
  227639. .IP \(bu 2
  227640. \fI\%#25257\fP: (\fInotpeter\fP) Document SourceDestCheck added in \fI\%#25242\fP\&.
  227641. .IP \(bu 2
  227642. \fI\%#25298\fP: (\fItwangboy\fP) Continue if profile not found
  227643. .IP \(bu 2
  227644. \fI\%#25296\fP: (\fItwangboy\fP) Fixed file.comment for windows
  227645. .IP \(bu 2
  227646. \fI\%#25254\fP: (\fIrallytime\fP) Change versionadded/changed references from Beryllium to 2015.8.0
  227647. .IP \(bu 2
  227648. \fI\%#25285\fP: (\fIthusoy\fP) Remove error logging of missing victorops keys
  227649. .IP \(bu 2
  227650. \fI\%#25266\fP: (\fIruzarowski\fP) cloud: EC2 eni property SourceDestCheck is a AttributeBooleanValue
  227651. .IP \(bu 2
  227652. \fI\%#25216\fP: (\fIjfindlay\fP) replace shell code with native python code
  227653. .IP \(bu 2
  227654. \fI\%#25278\fP: (\fIrallytime\fP) Don\(aqt require size for all cloud drivers when checking profile configs
  227655. .IP \(bu 2
  227656. \fI\%#25271\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227657. .IP \(bu 2
  227658. \fI\%#25263\fP: (\fItechhat\fP) Allow non\-standard HTTP requests on tornado
  227659. .IP \(bu 2
  227660. \fI\%#25253\fP: (\fIs0undt3ch\fP) Remove the deprecation warning. The driver has been renamed.
  227661. .IP \(bu 2
  227662. \fI\%#25248\fP: (\fItechhat\fP) Do not resize while iterating
  227663. .IP \(bu 2
  227664. \fI\%#25244\fP: (\fIrallytime\fP) Remove parted deprecations and fix failing tests
  227665. .IP \(bu 2
  227666. \fI\%#25242\fP: (\fIruzarowski\fP) Make SourceDestCheck flag available to network interface definition
  227667. .IP \(bu 2
  227668. \fI\%#25226\fP: (\fInmadhok\fP) Backporting fix for issue \fI\%#25223\fP on 2015.8 branch
  227669. .IP \(bu 2
  227670. \fI\%#25234\fP: (\fIkrak3n\fP) Fix: Bug in boto_asg state argument passing to boto_asg module
  227671. .IP \(bu 2
  227672. \fI\%#25222\fP: (\fIrallytime\fP) Back\-port \fI\%#25219\fP to 2015.8
  227673. .IP \(bu 2
  227674. \fI\%#25188\fP: (\fIrallytime\fP) Use linode status descriptions instead of ints when logging status to CLI
  227675. .IP \(bu 2
  227676. \fI\%#25203\fP: (\fIs0undt3ch\fP) Added DictConfig with tests & More tests
  227677. .IP \(bu 2
  227678. \fI\%#25189\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227679. .IP \(bu 2
  227680. \fI\%#25184\fP: (\fIrallytime\fP) Back\-port \fI\%#25126\fP to 2015.8
  227681. .IP \(bu 2
  227682. \fI\%#25172\fP: (\fIs0undt3ch\fP) Comment out imports while the YAML and RST rendering is not in\-place.
  227683. .IP \(bu 2
  227684. \fI\%#25158\fP: (\fIs0undt3ch\fP) Comment out not implemented code
  227685. .IP \(bu 2
  227686. \fI\%#25145\fP: (\fIs0undt3ch\fP) Implement \fIoneOf\fP, \fIanyOf\fP, \fIallOf\fP and \fInot\fP with unit tests
  227687. .IP \(bu 2
  227688. \fI\%#25140\fP: (\fIs0undt3ch\fP) Make the detection code work under Python 3.4
  227689. .IP \(bu 2
  227690. \fI\%#25131\fP: (\fIs0undt3ch\fP) Array support in salt.utils.config
  227691. .IP \(bu 2
  227692. \fI\%#25130\fP: (\fIbasepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  227693. .UNINDENT
  227694. .sp
  227695. The 2015.8.0 feature release of Salt contains several major new features. As
  227696. usual the release notes are not exhaustive and primarily include the most
  227697. notable additions and improvements. Hundreds of bugs have been fixed and many
  227698. modules have been substantially updated and added.
  227699. .SS New SaltStack Installation Repositories
  227700. .sp
  227701. SaltStack now provides installation repositories for several platforms, with more to come.
  227702. See the following links for instructions:
  227703. .INDENT 0.0
  227704. .IP \(bu 2
  227705. Red Hat / CentOS 5, 6, 7
  227706. .IP \(bu 2
  227707. Debian 8
  227708. .IP \(bu 2
  227709. Windows
  227710. .UNINDENT
  227711. .SS Send Event on State Completion
  227712. .sp
  227713. A \fBfire_event\fP global state keyword argument was added that allows any state to
  227714. send an event upon completion. Useful for custom progress bars and checking in
  227715. on long state runs. See fire_event\&.
  227716. .SS ZeroMQ socket monitoring
  227717. .sp
  227718. If \fBzmq_monitor\fP is enabled, log all ZMQ events for socket monitoring
  227719. purposes. Verbose, but useful.
  227720. .SS SPM (Salt Package Manager)
  227721. .sp
  227722. Allows Salt formulas to be packaged for ease of deployment. See spm\&.
  227723. .sp
  227724. \fBNOTE:\fP
  227725. .INDENT 0.0
  227726. .INDENT 3.5
  227727. The spm executable was not included in the Debian or Ubuntu packages for the
  227728. 2015.8.0 or the 2015.8.1 releases. This executable will be included in an
  227729. upcoming release. As a workaround, copy the SPM script from the salt library
  227730. installation into \fB/usr/local/bin\fP or your local equivalent.
  227731. .UNINDENT
  227732. .UNINDENT
  227733. .SS Specify a Single Environment for Top Files
  227734. .sp
  227735. A new \fBdefault_top\fP option was added to load the state top file
  227736. from a single, specific environment, rather than merging top data across all
  227737. environments. Additionally, new \fBtop_file_merge_strategy\fP and
  227738. \fBenv_order\fP options were added for more control over top file
  227739. merging. See The Top File\&.
  227740. .SS Tornado TCP Transport
  227741. .sp
  227742. Implemented a pure\-TCP transport, in addition to ZeroMQ and RAET. The new
  227743. transport uses Tornado, which allows Salt to use a standardized set of libraries
  227744. for asynchronous behavior, which should greatly improve reliability and
  227745. performance.
  227746. .sp
  227747. \fBNOTE:\fP
  227748. .INDENT 0.0
  227749. .INDENT 3.5
  227750. Tornado is considered expiremental in this release. The following known
  227751. issues were being investigated at the time of release:
  227752. .INDENT 0.0
  227753. .IP \(bu 2
  227754. TCP tests show performance degredation over time (\fI\%issue #26051\fP)
  227755. .IP \(bu 2
  227756. TCP transport stacktrace on windows minion: Future exception was never
  227757. retrieved (\fI\%issue #25718\fP)
  227758. .IP \(bu 2
  227759. [freebsd] TCP transport not working in 2015.8.0rc3 (\fI\%issue #26364\fP)
  227760. .UNINDENT
  227761. .UNINDENT
  227762. .UNINDENT
  227763. .SS Proxy Minion Enhancements
  227764. .sp
  227765. Proxy Minions have undergone a significant overhaul in 2015.8, see Proxy Minion Enhancements\&.
  227766. .SS Engines
  227767. .sp
  227768. Salt engines are long\-running, external processes that leverage Salt. See Salt Engines\&.
  227769. .SS Core Changes
  227770. .INDENT 0.0
  227771. .IP \(bu 2
  227772. Add system version info to \fBversions_report\fP, which appears in both \fBsalt
  227773. \-\-versions\-report\fP and \fBsalt \(aq*\(aq test.versions_report\fP\&. Also added is an
  227774. alias \fBtest.versions\fP to \fBtest.versions_report\fP\&. (\fI\%issue #21906\fP)
  227775. .IP \(bu 2
  227776. Add colorized console logging support. This is activated by using
  227777. \fB%(colorlevel)s\fP, \fB%(colorname)s\fP, \fB%(colorprocess)s\fP, \fB%(colormsg)s\fP
  227778. in \fBlog_fmt_console\fP in the config file for any of \fBsalt\-master\fP,
  227779. \fBsalt\-minion\fP, and \fBsalt\-cloud\fP\&.
  227780. .UNINDENT
  227781. .SS Git Pillar
  227782. .sp
  227783. The git external pillar has been rewritten to bring it up to feature parity
  227784. with \fBgitfs\fP\&. Support for \fI\%pygit2\fP has been added,
  227785. bringing with it the ability to access authenticated repositories.
  227786. .sp
  227787. Using the new features will require updates to the git ext_pillar
  227788. configuration, further details can be found in the pillar.git_pillar docs.
  227789. .SS Salt Cloud Improvements
  227790. .INDENT 0.0
  227791. .IP \(bu 2
  227792. Pricing data from several cloud providers (GCE, DigitalOcean, SoftLayer_HW, EC2)
  227793. .IP \(bu 2
  227794. All cloud providers now use standardized bootstrapping code.
  227795. .IP \(bu 2
  227796. Modified the Linode Salt Cloud driver to use Linode\(aqs native API instead of
  227797. depending on apache\-libcloud or linode\-python.
  227798. .UNINDENT
  227799. .SS Salt Cloud Changes
  227800. .INDENT 0.0
  227801. .IP \(bu 2
  227802. Changed the default behavior of \fBrename_on_destroy\fP to be set to \fBTrue\fP
  227803. in the EC2 and AWS drivers.
  227804. .IP \(bu 2
  227805. Changed the default behavior of the EC2 and AWS drivers to always check for
  227806. duplicate names of VMs before trying to create a new VM. Will now throw an
  227807. error similarly to other salt\-cloud drivers when trying to create a VM of the
  227808. same name, even if the VM is in the \fBterminated\fP state.
  227809. .IP \(bu 2
  227810. When querying for VMs in \fBdigital_ocean.py\fP, the number of VMs to include in
  227811. a page was changed from 20 (default) to 200 to reduce the number of API calls
  227812. to Digital Ocean.Ocean.
  227813. .UNINDENT
  227814. .SS State and Execution Module Improvements
  227815. .INDENT 0.0
  227816. .IP \(bu 2
  227817. New and improved Docker state and execution modules (\fBstate\fP and \fBexecution module\fP).
  227818. .UNINDENT
  227819. .SS Git State and Execution Modules Rewritten
  227820. .sp
  227821. The git state and execution modules have gone through an extensive overhaul.
  227822. .SS Changes in the \fBgit.latest\fP State
  227823. .INDENT 0.0
  227824. .IP \(bu 2
  227825. The \fBbranch\fP argument has been added, allowing for a custom branch name to
  227826. be used in the local checkout maintained by the \fBgit.latest\fP state. This can be helpful in avoiding ambiguous
  227827. refs in the local checkout when a tag is used as the \fBrev\fP argument. If no
  227828. \fBbranch\fP is specified, then the state uses the value of \fBrev\fP as the
  227829. branch name.
  227830. .IP \(bu 2
  227831. The \fBalways_fetch\fP argument no longer has any effect, and will be removed
  227832. in a future release. The state now detects whether or not a fetch is needed
  227833. based on comparisons made between the local and remote repositories.
  227834. .IP \(bu 2
  227835. The \fBforce_fetch\fP argument has been added to force a fetch if the fetch is
  227836. not a fast\-forward (for instance, if someone has done a reset and
  227837. force\-pushed to the remote repository).
  227838. .IP \(bu 2
  227839. The \fBremote_name\fP argument has been deprecated and renamed to \fBremote\fP\&.
  227840. .IP \(bu 2
  227841. The \fBforce\fP argument has been deprecated and renamed to \fBforce_clone\fP to
  227842. reduce ambiguity with the other "force" arguments.
  227843. .IP \(bu 2
  227844. Using SHA1 hashes (full or shortened) in the \fBrev\fP argument is now
  227845. properly supported.
  227846. .IP \(bu 2
  227847. Non\-fast\-forward merges are now detected before the repository is updated,
  227848. and the state will not update the repository if the change is not a
  227849. fast\-forward. Non\-fast\-forward updates must be overridden with the
  227850. \fBforce_reset\fP argument. If \fBforce_reset\fP is set to \fBTrue\fP, the state
  227851. will only reset the repository if it cannot be fast\-forwarded. This is in
  227852. contrast to the earlier behavior, in which a hard\-reset would be performed
  227853. every time the state was run if \fBforce_reset\fP was set to \fBTrue\fP\&.
  227854. .IP \(bu 2
  227855. A \fBgit pull\fP is no longer performed by this state, dropped in favor of a
  227856. fetch\-and\-merge (or fetch\-and\-reset) workflow.
  227857. .UNINDENT
  227858. .SS \fBgit.config_unset\fP state added
  227859. .sp
  227860. This state allows for configuration values (or entire keys) to be unset. See
  227861. \fBhere\fP for more information and example
  227862. SLS.
  227863. .SS git.config State Renamed to \fBgit.config_set\fP
  227864. .sp
  227865. To reduce confusion after the addition of \fBgit.config_unset\fP, the git.config state has been renamed to
  227866. \fBgit.config_set\fP\&. The old config.get name
  227867. will still work for a couple releases, allowing time for SLS files to be
  227868. updated.
  227869. .sp
  227870. In addition, this state now supports managing multivar git configuration
  227871. values. See \fBhere\fP for more information
  227872. and example SLS.
  227873. .SS Initial Support for Git Worktrees in Execution Module
  227874. .sp
  227875. Several functions have been added to the execution module to manage \fI\%worktrees\fP
  227876. (a feature new to Git 2.5.0). State support does not exist yet, but will follow
  227877. soon.
  227878. .SS New Functions in Git Execution Module
  227879. .INDENT 0.0
  227880. .IP \(bu 2
  227881. \fBgit.config_get_regexp\fP
  227882. .IP \(bu 2
  227883. \fBgit.config_unset\fP
  227884. .IP \(bu 2
  227885. \fBgit.is_worktree\fP
  227886. .IP \(bu 2
  227887. \fBgit.list_branches\fP
  227888. .IP \(bu 2
  227889. \fBgit.list_tags\fP
  227890. .IP \(bu 2
  227891. \fBgit.list_worktrees\fP
  227892. .IP \(bu 2
  227893. \fBgit.merge_base\fP
  227894. .IP \(bu 2
  227895. \fBgit.merge_tree\fP
  227896. .IP \(bu 2
  227897. \fBgit.rev_parse\fP
  227898. .IP \(bu 2
  227899. \fBgit.version\fP
  227900. .IP \(bu 2
  227901. \fBgit.worktree_rm\fP
  227902. .IP \(bu 2
  227903. \fBgit.worktree_add\fP
  227904. .IP \(bu 2
  227905. \fBgit.worktree_prune\fP
  227906. .UNINDENT
  227907. .SS Changes to Functions in Git Execution Module
  227908. .SS \fBgit.add\fP
  227909. .INDENT 0.0
  227910. .IP \(bu 2
  227911. \fB\-\-verbose\fP is now implied when running the \fBgit add\fP command, to provide
  227912. a list of the files added in the return data.
  227913. .UNINDENT
  227914. .SS \fBgit.archive\fP
  227915. .INDENT 0.0
  227916. .IP \(bu 2
  227917. Now returns \fBTrue\fP when the \fBgit archive\fP command was successful, and
  227918. otherwise raises an error.
  227919. .IP \(bu 2
  227920. The \fBoverwrite\fP argument has been added to prevent an existing archive from
  227921. being overwritten by this function.
  227922. .IP \(bu 2
  227923. The \fBfmt\fP argument has been deprecated and renamed to \fBformat\fP\&.
  227924. .IP \(bu 2
  227925. Trailing slash no longer implied in \fBprefix\fP argument, must be included if
  227926. this argument is passed.
  227927. .UNINDENT
  227928. .SS \fBgit.checkout\fP
  227929. .INDENT 0.0
  227930. .IP \(bu 2
  227931. The \fBrev\fP argument is now optional when using \fB\-b\fP or \fB\-B\fP in \fBopts\fP,
  227932. allowing for a branch to be created (or reset) using \fBHEAD\fP as the starting
  227933. point.
  227934. .UNINDENT
  227935. .SS \fBgit.clone\fP
  227936. .INDENT 0.0
  227937. .IP \(bu 2
  227938. The \fBname\fP argument has been added to specify the name of the directory in
  227939. which to clone the repository. If this option is specified, then the clone
  227940. will be made within the directory specified by the \fBcwd\fP, instead of at
  227941. that location.
  227942. .IP \(bu 2
  227943. The \fBrepository\fP argument has been deprecated and renamed to \fBurl\fP\&.
  227944. .UNINDENT
  227945. .SS \fBgit.config_get\fP
  227946. .INDENT 0.0
  227947. .IP \(bu 2
  227948. The \fBsetting_name\fP argument has been deprecated and renamed to \fBkey\fP\&.
  227949. .IP \(bu 2
  227950. The \fBglobal\fP argument has been added, to query the global git configuration
  227951. .IP \(bu 2
  227952. The \fBall\fP argument has been added to return a list of all values for the
  227953. specified key, allowing for all values in a multivar to be returned.
  227954. .IP \(bu 2
  227955. The \fBcwd\fP argument is now optional if \fBglobal\fP is set to \fBTrue\fP
  227956. .UNINDENT
  227957. .SS \fBgit.config_set\fP
  227958. .INDENT 0.0
  227959. .IP \(bu 2
  227960. The value(s) of the key being set are now returned
  227961. .IP \(bu 2
  227962. The \fBsetting_name\fP argument has been deprecated and renamed to \fBkey\fP\&.
  227963. .IP \(bu 2
  227964. The \fBsetting_value\fP argument has been deprecated and renamed to \fBvalue\fP\&.
  227965. .IP \(bu 2
  227966. The \fBis_global\fP argument has been deprecated and renamed to \fBglobal\fP\&.
  227967. .IP \(bu 2
  227968. The \fBmultivar\fP argument has been added to specify a list of values to set
  227969. for the specified key. The \fBvalue\fP argument is not compatible with
  227970. \fBmultivar\fP\&.
  227971. .IP \(bu 2
  227972. The \fBadd\fP argument has been added to add a value to a key (this essentially
  227973. just adds an \fB\-\-add\fP to the \fBgit config\fP command that is run to set the
  227974. value).
  227975. .UNINDENT
  227976. .SS \fBgit.fetch\fP
  227977. .INDENT 0.0
  227978. .IP \(bu 2
  227979. The \fBforce\fP argument has been added to force the fetch when it is not a
  227980. fast\-forward. This could have been achieved in previous Salt versions by
  227981. including \fB\-\-force\fP in the \fBopts\fP argument, this argument is just for
  227982. convenience and to match the usage of other functions with \fBforce\fP
  227983. arguments.
  227984. .IP \(bu 2
  227985. The \fBrefspecs\fP argument has been added to allow for one or more refspecs to
  227986. be provided which override the one(s) specified by the
  227987. \fBremote.remote_name.fetch\fP git configuration option.
  227988. .UNINDENT
  227989. .SS \fBgit.ls_remote\fP
  227990. .INDENT 0.0
  227991. .IP \(bu 2
  227992. The \fBrepository\fP argument has been deprecated and renamed to \fBremote\fP\&.
  227993. .IP \(bu 2
  227994. The \fBbranch\fP argument has been deprecated and renamed to \fBref\fP\&.
  227995. .IP \(bu 2
  227996. The \fBopts\fP argument has been added to allow for additional CLI options to
  227997. be passed to the \fBgit ls\-remote\fP command.
  227998. .UNINDENT
  227999. .SS \fBgit.merge\fP
  228000. .INDENT 0.0
  228001. .IP \(bu 2
  228002. The \fBbranch\fP argument has been deprecated and renamed to \fBrev\fP\&.
  228003. .UNINDENT
  228004. .SS \fBgit.status\fP
  228005. .INDENT 0.0
  228006. .IP \(bu 2
  228007. Return data has been changed from a list of lists to a dictionary containing
  228008. lists of files in the modified, added, deleted, and untracked states.
  228009. .UNINDENT
  228010. .SS \fBgit.submodule\fP
  228011. .INDENT 0.0
  228012. .IP \(bu 2
  228013. Added the \fBcommand\fP argument to allow for operations other than \fBupdate\fP
  228014. to be run on submodules, and deprecated the \fBinit\fP argument. To do a
  228015. submodule update with \fBinit=True\fP moving forward, use \fBcommand=update
  228016. opts=\(aq\-\-init\(aq\fP\&.
  228017. .UNINDENT
  228018. .INDENT 0.0
  228019. .IP \(bu 2
  228020. OpenStack Glance API V2 execution module
  228021. .IP \(bu 2
  228022. Amazon VPC state module
  228023. .IP \(bu 2
  228024. RallyDev execution module
  228025. .IP \(bu 2
  228026. BambooHR execution module
  228027. .IP \(bu 2
  228028. Stormpath execution, state modules
  228029. .IP \(bu 2
  228030. Remove unused argument \fBtimeout\fP in jboss7.status.
  228031. .IP \(bu 2
  228032. Deprecate \fBenabled\fP argument in \fBpkgrepo.managed\fP in favor of \fBdisabled\fP\&.
  228033. .IP \(bu 2
  228034. Archive module changes: In the \fBarchive.tar\fP and \fBarchive.cmd_unzip\fP
  228035. module functions, remove the arbitrary prefixing of the options string with
  228036. \fB\-\fP\&. An options string beginning with a \fB\-\-long\-option\fP, would have
  228037. uncharacteristically needed its first \fB\-\fP removed under the former scheme.
  228038. Also, tar will parse its options differently if short options are used with or
  228039. without a preceding \fB\-\fP, so it is better to not confuse the user into
  228040. thinking they\(aqre using the non\- \fB\-\fP format, when really they are using the
  228041. with\- \fB\-\fP format.
  228042. .IP \(bu 2
  228043. Added \fB__states__\fP to state modules, for cross\-calling states. This enables
  228044. using existing states when writing custom states. See cross calling states\&.
  228045. .UNINDENT
  228046. .SS Windows Improvements
  228047. .INDENT 0.0
  228048. .IP \(bu 2
  228049. Enhanced the windows minion silent installation with command line parameters
  228050. to configure the salt master and minion name. See Silent Installer
  228051. Options\&.
  228052. .IP \(bu 2
  228053. Improved user management with additional capabilities in the user module for Windows.
  228054. .IP \(bu 2
  228055. Improved patch management with a new module for managing windows updates (\fBwin_wua\fP).
  228056. .IP \(bu 2
  228057. Turned on multi\-processing by default for windows in minion configuration.
  228058. .UNINDENT
  228059. .SS Windows Software Repo Changes
  228060. .sp
  228061. A next\-generation (ng) windows software repo is available for 2015.8.0 and
  228062. later minions. When using this new repository, the repo cache is compiled on
  228063. the Salt Minion, which enables pillar, grains and other things to be available
  228064. during compilation time.
  228065. .sp
  228066. See the Windows Software Repository
  228067. documentation for more information.
  228068. .SS Changes to legacy Windows repository
  228069. .sp
  228070. If you have pre 2015.8 Windows minions connecting to your 2015.8 Salt master, you
  228071. can continue to use the legacy Windows repository for these Salt minions.
  228072. .sp
  228073. If you were previously using this repository and have customized settings, be
  228074. aware that several config options have been renamed to make their naming more
  228075. consistent.
  228076. .sp
  228077. See the Windows Software Repository
  228078. documentation for more information.
  228079. .SS Win System Module
  228080. .sp
  228081. The unit of the \fBtimeout\fP parameter in the \fBsystem.halt\fP,
  228082. \fBsystem.poweroff\fP, \fBsystem.reboot\fP, and \fBsystem.shutdown\fP functions has
  228083. been changed from seconds to minutes in order to be consistent with the linux
  228084. timeout setting. (\fI\%issue #24411\fP) Optionally, the unit can be reverted to
  228085. seconds by specifying \fBin_seconds=True\fP\&.
  228086. .SS Other Improvements
  228087. .INDENT 0.0
  228088. .IP \(bu 2
  228089. Sanitize sensitive fields in http.query
  228090. .IP \(bu 2
  228091. Allow authorization to be read from Django and eauth
  228092. .IP \(bu 2
  228093. Add templating to SMTP returner
  228094. .IP \(bu 2
  228095. New REST module for SDB
  228096. .IP \(bu 2
  228097. Added rest_timeout config option and timeout argument to jobs api call
  228098. .IP \(bu 2
  228099. Provide config options for Raet lane and road buffer count. (Useful for BSD kernels)
  228100. .IP \(bu 2
  228101. Implemented ZeroMQ socket monitor for master and minion
  228102. .IP \(bu 2
  228103. Add end time to master job cache for jobs (optional, off by default)
  228104. .IP \(bu 2
  228105. Tornado is now the default backend for http.request
  228106. .IP \(bu 2
  228107. Support pillarenv selection as it\(aqs done for saltenv
  228108. .IP \(bu 2
  228109. salt was updated to use python\-crypto version 2.6.1, which removes the dependency on python\-m2crypto.
  228110. .UNINDENT
  228111. .SS Deprecations
  228112. .INDENT 0.0
  228113. .IP \(bu 2
  228114. The \fBdigital_ocean.py\fP Salt Cloud driver was removed in favor of the
  228115. \fBdigital_ocean_v2.py\fP driver as DigitalOcean has removed support for APIv1.
  228116. The \fBdigital_ocean_v2.py\fP was renamed to \fBdigital_ocean.py\fP and supports
  228117. DigitalOcean\(aqs APIv2.
  228118. .IP \(bu 2
  228119. The \fBvsphere.py\fP Salt Cloud driver has been deprecated in favor of the
  228120. \fBvmware.py\fP driver.
  228121. .IP \(bu 2
  228122. The \fBopenstack.py\fP Salt Cloud driver has been deprecated in favor of the
  228123. \fBnova.py\fP driver.
  228124. .IP \(bu 2
  228125. The use of \fBprovider\fP in Salt Cloud provider files to define cloud drivers
  228126. has been deprecated in favor of using \fBdriver\fP\&. Both terms will work until
  228127. the 2017.7.0 release of Salt. Example provider file:
  228128. .UNINDENT
  228129. .INDENT 0.0
  228130. .INDENT 3.5
  228131. .sp
  228132. .nf
  228133. .ft C
  228134. my\-ec2\-cloud\-config:
  228135. id: \(aqHJGRYCILJLKJYG\(aq
  228136. key: \(aqkdjgfsgm;woormgl/aserigjksjdhasdfgn\(aq
  228137. private_key: /etc/salt/my_test_key.pem
  228138. keyname: my_test_key
  228139. securitygroup: default
  228140. driver: ec2
  228141. .ft P
  228142. .fi
  228143. .UNINDENT
  228144. .UNINDENT
  228145. .INDENT 0.0
  228146. .IP \(bu 2
  228147. The use of \fBlock\fP has been deprecated and from \fBsalt.utils.fopen\fP\&.
  228148. \fBsalt.utils.flopen\fP should be used instead.
  228149. .IP \(bu 2
  228150. The following args have been deprecated from the \fBrabbitmq_vhost.present\fP
  228151. state: \fBuser\fP, \fBowner\fP, \fBconf\fP, \fBwrite\fP, \fBread\fP, and \fBrunas\fP\&.
  228152. .IP \(bu 2
  228153. The use of \fBrunas\fP has been deprecated from the \fBrabbitmq_vhost.absent\fP
  228154. state.
  228155. .IP \(bu 2
  228156. Support for \fBoutput\fP in \fBmine.get\fP was removed. \fB\-\-out\fP should be used
  228157. instead.
  228158. .IP \(bu 2
  228159. The use of \fBdelim\fP was removed from the following functions in the \fBmatch\fP
  228160. execution module: \fBpillar_pcre\fP, \fBpillar\fP, \fBgrain_pcre\fP,
  228161. .UNINDENT
  228162. .SS Security Fixes
  228163. .sp
  228164. CVE\-2015\-6918 \- Git modules leaking HTTPS auth credentials to debug log
  228165. .sp
  228166. Updated the Git state and execution modules to no longer display HTTPS basic authentication credentials in loglevel debug output on the Salt master. These credentials are now replaced with \fBREDACTED\fP in the debug output. Thanks to Andreas Stieger <\fI\%asteiger@suse.com\fP> for bringing this to our attention.
  228167. .SS Major Bug Fixes
  228168. .INDENT 0.0
  228169. .IP \(bu 2
  228170. Fixed minion failover to next master on DNS errors (\fI\%issue #21082\fP)
  228171. .IP \(bu 2
  228172. Fixed memory consumption in SaltEvents (\fI\%issue #25557\fP)
  228173. .IP \(bu 2
  228174. Don\(aqt lookup outside system path in which() util (\fI\%issue #24085\fP)
  228175. .IP \(bu 2
  228176. Fixed broken jobs rest api call (\fI\%issue #23408\fP)
  228177. .IP \(bu 2
  228178. Fixed stale grains data using in modules (\fI\%issue #24073\fP)
  228179. .IP \(bu 2
  228180. Added ssh_identities_only config flag for ssh\-agent configured environments
  228181. (\fI\%issue #24096\fP)
  228182. .IP \(bu 2
  228183. Fixed "object has no attribute" errors for Raet transport (\fI\%issue #21640\fP)
  228184. .IP \(bu 2
  228185. Flush event returners before master exit (\fI\%issue #22814\fP)
  228186. .IP \(bu 2
  228187. Fix CommandExecutionError in grains generation with lspci missing (\fI\%issue #23342\fP)
  228188. .IP \(bu 2
  228189. Fix salt\-ssh against CentOS 7 when python\-zmq not installed (\fI\%issue #23503\fP)
  228190. .IP \(bu 2
  228191. Fix salt\-ssh issues related to out\-of\-date six module (\fI\%issue #20949\fP)
  228192. .IP \(bu 2
  228193. Fix salt\-ssh thin generation after previous run was interrupted (\fI\%issue #24376\fP)
  228194. .IP \(bu 2
  228195. Use proper line endings on Windows with "file.managed" w/contents (\fI\%issue #25675\fP)
  228196. .IP \(bu 2
  228197. Fixed broken comment/uncomment functions in file.py (\fI\%issue #24620\fP)
  228198. .IP \(bu 2
  228199. Fixed problem with unicode when changing computer description (\fI\%issue #12255\fP)
  228200. .IP \(bu 2
  228201. Fixed problem with chocolatey module not loading (\fI\%issue #25717\fP)
  228202. .IP \(bu 2
  228203. Fixed problem adding users to groups with spaces in the name (\fI\%issue #25144\fP)
  228204. .IP \(bu 2
  228205. Fixed problem adding full name to user account (\fI\%issue #25206\fP)
  228206. .IP \(bu 2
  228207. Fixed gem module stack trace (\fI\%issue #21041\fP)
  228208. .IP \(bu 2
  228209. Fixed problem with file.managed when test=True (\fI\%issue #20441\fP)
  228210. .IP \(bu 2
  228211. Fixed problem with powershell hanging while waiting for user input (\fI\%issue #13943\fP)
  228212. .IP \(bu 2
  228213. Fixed problem where the salt\-minion service would not consistently start
  228214. (\fI\%issue #25272\fP)
  228215. .IP \(bu 2
  228216. Fixed problem where pkg.refresh_db would return True even when winrepo.p was not
  228217. found (\fI\%issue #18919\fP)
  228218. .IP \(bu 2
  228219. Could someone please provide end to end example for Proxy Minion with REST
  228220. (\fI\%issue #25500\fP)
  228221. .IP \(bu 2
  228222. Proxy minions stopped working between 2014.7 and 2015.5 (\fI\%issue #25053\fP)
  228223. .IP \(bu 2
  228224. Proxy minion documentation includes outdated code sample (\fI\%issue #24018\fP)
  228225. .IP \(bu 2
  228226. Proxy Minion documentation missing grains example (\fI\%issue #18273\fP)
  228227. .IP \(bu 2
  228228. Improve process management in proxy minion (\fI\%issue #12024\fP)
  228229. .IP \(bu 2
  228230. Proxy minion never comes up with message \(aq I am XXX and I am not supposed to
  228231. start any proxies.\(aq (\fI\%issue #25908\fP)
  228232. .IP \(bu 2
  228233. Fixed an issue that caused an exception when using Salt mine from pillar. (\fI\%issue #11509\fP)
  228234. .UNINDENT
  228235. .SS Salt 2015.8.1 Release Notes
  228236. .sp
  228237. Version 2015.8.1 is a bugfix release for 2015.8.0\&.
  228238. .SS Statistics
  228239. .INDENT 0.0
  228240. .IP \(bu 2
  228241. Total Merges: \fB201\fP
  228242. .IP \(bu 2
  228243. Total Issue References: \fB39\fP
  228244. .IP \(bu 2
  228245. Total PR References: \fB135\fP
  228246. .IP \(bu 2
  228247. Contributors: \fB40\fP (\fI\%DmitryKuzmenko\fP, \fI\%The\-Loeki\fP, \fI\%TheBigBear\fP, \fI\%basepi\fP, \fI\%bechtoldt\fP, \fI\%bernieke\fP, \fI\%blueyed\fP, \fI\%cachedout\fP, \fI\%cedwards\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%deuscapturus\fP, \fI\%dmurphy18\fP, \fI\%dsumsky\fP, \fI\%eliasp\fP, \fI\%flowhamster\fP, \fI\%isbm\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%justinta\fP, \fI\%l2ol33rt\fP, \fI\%macgyver13\fP, \fI\%meggiebot\fP, \fI\%msteed\fP, \fI\%multani\fP, \fI\%nasenbaer13\fP, \fI\%perfinion\fP, \fI\%pprkut\fP, \fI\%rallytime\fP, \fI\%rhealitycheck\fP, \fI\%ruzarowski\fP, \fI\%ryan\-lane\fP, \fI\%s0undt3ch\fP, \fI\%systembell\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%ticosax\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  228248. .UNINDENT
  228249. .SS Security Fixes
  228250. .sp
  228251. \fBCVE\-2015\-6941\fP The Windows \fBuser\fP module and
  228252. \fBsalt\-cloud\fP display passwords in log when log level is set to \fBdebug\fP
  228253. or more verbose.
  228254. .sp
  228255. For the Windows \fBuser\fP module, the password is
  228256. now replaced with the string \fBXXX\-REDACTED\-XXX\fP\&.
  228257. .sp
  228258. For salt\-cloud, debug logging no longer displays \fBwin_password\fP and
  228259. \fBsudo_password\fP authentication credentials.
  228260. .sp
  228261. \fBCVE\-2015\-6918\fP Git state/execution modules log HTTPS auth credentials when
  228262. log level is set to \fBdebug\fP or more verbose.
  228263. .sp
  228264. These credentials are now replaced with \fBREDACTED\fP in the debug output.
  228265. Thanks to Andreas Stieger <\fI\%asteiger@suse.com\fP> for bringing this to our
  228266. attention.
  228267. .SS Major Bug Fixes
  228268. .INDENT 0.0
  228269. .IP \(bu 2
  228270. Add support for \fBspm.d/*.conf\fP configuration of SPM (\fI\%issue #27010\fP)
  228271. .IP \(bu 2
  228272. Fix \fBproxy\fP grains breakage for non\-proxy minions (\fI\%issue #27039\fP)
  228273. .IP \(bu 2
  228274. Fix global key management for git state
  228275. .IP \(bu 2
  228276. Fix passing http auth to \fButil.http\fP from \fBstate.file\fP (\fI\%issue #21917\fP)
  228277. .IP \(bu 2
  228278. Fix \fBmultiprocessing: True\fP in windows (on by default\(ga)
  228279. .IP \(bu 2
  228280. Add \fBpkg.info\fP to pkg modules
  228281. .IP \(bu 2
  228282. Fix name of \fBserial\fP grain (this was accidentally renamed in 2015.8.0\(ga)
  228283. .IP \(bu 2
  228284. Merge config values from \fBmaster.d\fP/\fBminion.d\fP conf files (rather than flat update\(ga)
  228285. .IP \(bu 2
  228286. Clean grains cache on grains sync (\fI\%issue #19853\fP)
  228287. .IP \(bu 2
  228288. Remove streamed response for fileclient to avoid HTTP redirection problems (\fI\%issue #27093\fP)
  228289. .IP \(bu 2
  228290. Fixed incorrect warning about \fBosrelease\fP grain (\fI\%issue #27065\fP)
  228291. .IP \(bu 2
  228292. Fix authentication via Salt\-API with tokens (\fI\%issue #27270\fP)
  228293. .IP \(bu 2
  228294. Fix winrepo downloads from https locations (\fI\%issue #27081\fP)
  228295. .IP \(bu 2
  228296. Fix potential error with salt\-call as non\-root user (\fI\%issue #26889\fP)
  228297. .IP \(bu 2
  228298. Fix global minion provider overrides (\fI\%issue #27209\fP)
  228299. .IP \(bu 2
  228300. Fix backward compatibility issues for pecl modules
  228301. .IP \(bu 2
  228302. Fix Windows uninstaller to only remove \fB\&./bin\fP, \fBsalt*\fP, \fBnssm.exe\fP, \fBuninst.exe\fP (\fI\%issue #27383\fP)
  228303. .IP \(bu 2
  228304. Fix misc issues with mongo returner.
  228305. .IP \(bu 2
  228306. Add sudo option to cloud config files (\fI\%issue #27398\fP)
  228307. .IP \(bu 2
  228308. Fix regression in RunnerClient argument handling (\fI\%issue #25107\fP)
  228309. .IP \(bu 2
  228310. Fix \fBdockerng.running\fP replacing creation hostconfig with runtime hostconfig (\fI\%issue #27265\fP)
  228311. .IP \(bu 2
  228312. Fix dockerng.running replacing creation hostconfig with runtime hostconfig (\fI\%issue #27265\fP)
  228313. .IP \(bu 2
  228314. Increased performance on boto asg/elb states due to \fB__states__\fP integration
  228315. .IP \(bu 2
  228316. Windows minion no longer requires powershell to restart (\fI\%issue #26629\fP)
  228317. .IP \(bu 2
  228318. Fix x509 module to support recent versions of OpenSSL (\fI\%issue #27326\fP)
  228319. .IP \(bu 2
  228320. Some issues with proxy minions were corrected.
  228321. .UNINDENT
  228322. .SS Known Issues
  228323. .INDENT 0.0
  228324. .IP \(bu 2
  228325. Proxy minions currently cannot execute a highstate because of the way
  228326. the proxymodule is being loaded internally. This will be fixed in a
  228327. future release.
  228328. .UNINDENT
  228329. .SS Changelog for v2015.8.0..v2015.8.1
  228330. .sp
  228331. \fIGenerated at: 2018\-05\-27 22:48:32 UTC\fP
  228332. .INDENT 0.0
  228333. .IP \(bu 2
  228334. \fBPR\fP \fI\%#27588\fP: (\fI\%jfindlay\fP) add autogenerated 2015.8.1 release notes
  228335. @ \fI2015\-10\-01 04:52:32 UTC\fP
  228336. .INDENT 2.0
  228337. .IP \(bu 2
  228338. 87d86e4b3e Merge pull request \fI\%#27588\fP from jfindlay/2015.8
  228339. .IP \(bu 2
  228340. f2eb20f26b add autogenerated 2015.8.1 release notes
  228341. .UNINDENT
  228342. .IP \(bu 2
  228343. \fBPR\fP \fI\%#27584\fP: (\fI\%jacobhammons\fP) added changes list to 2015.8.1 release notes
  228344. @ \fI2015\-10\-01 04:32:47 UTC\fP
  228345. .INDENT 2.0
  228346. .IP \(bu 2
  228347. f7510baf33 Merge pull request \fI\%#27584\fP from jacobhammons/release\-notes
  228348. .IP \(bu 2
  228349. ee4a3b3549 added changes list for 2015.8.1
  228350. .UNINDENT
  228351. .IP \(bu 2
  228352. \fBISSUE\fP \fI\%#27532\fP: (\fI\%centromere\fP) salt\-cloud does not recognize terminated instances (refs: \fI\%#27575\fP)
  228353. .IP \(bu 2
  228354. \fBPR\fP \fI\%#27575\fP: (\fI\%rallytime\fP) Don\(aqt report existing instances as running only if they\(aqre actually terminated in EC2
  228355. @ \fI2015\-09\-30 22:17:24 UTC\fP
  228356. .INDENT 2.0
  228357. .IP \(bu 2
  228358. 1a31b19f15 Merge pull request \fI\%#27575\fP from rallytime/fix\-27532
  228359. .IP \(bu 2
  228360. 57c6535fc2 Make sure message is the most accurate. Instance may be stopped or shutting down.
  228361. .IP \(bu 2
  228362. da6b4b3604 Don\(aqt report existing instances as running only if they\(aqre actually terminated
  228363. .UNINDENT
  228364. .IP \(bu 2
  228365. \fBISSUE\fP \fI\%#27290\fP: (\fI\%pirogoeth\fP) Grains set in minion_opts do not appear in a call to \fIgrains.items\fP\&. (refs: \fI\%#27573\fP)
  228366. .IP \(bu 2
  228367. \fBPR\fP \fI\%#27573\fP: (\fI\%basepi\fP) [2015.8] Use the custom yaml serializer for minion_opts for salt\-ssh
  228368. @ \fI2015\-09\-30 21:16:22 UTC\fP
  228369. .INDENT 2.0
  228370. .IP \(bu 2
  228371. bee78a4e5c Merge pull request \fI\%#27573\fP from basepi/salt\-ssh.grains.minion_opts.27290
  228372. .IP \(bu 2
  228373. 0785438b3f Use the custom yaml serializer for minion_opts for salt\-ssh
  228374. .UNINDENT
  228375. .IP \(bu 2
  228376. \fBISSUE\fP \fI\%#27326\fP: (\fI\%ralphvanetten\fP) Signing the X509 CA certificate does not work on Debian 8 (refs: \fI\%#27514\fP)
  228377. .IP \(bu 2
  228378. \fBPR\fP \fI\%#27514\fP: (\fI\%clinta\fP) Recent Versions of OpenSSL don\(aqt allow importing incomplete PEMs
  228379. @ \fI2015\-09\-30 19:33:12 UTC\fP
  228380. .INDENT 2.0
  228381. .IP \(bu 2
  228382. a4a53ecff5 Merge pull request \fI\%#27514\fP from clinta/2015.8\-27326
  228383. .IP \(bu 2
  228384. 515e62bfa7 change "None" to empty string
  228385. .IP \(bu 2
  228386. 2989f24169 fix 27326 and fix minor errors in docs.
  228387. .UNINDENT
  228388. .IP \(bu 2
  228389. \fBPR\fP \fI\%#27564\fP: (\fI\%jacobhammons\fP) Man pages
  228390. @ \fI2015\-09\-30 19:29:37 UTC\fP
  228391. .INDENT 2.0
  228392. .IP \(bu 2
  228393. 6cf0228adc Merge pull request \fI\%#27564\fP from jacobhammons/man\-pages
  228394. .IP \(bu 2
  228395. cc37dc1087 updated version in salt.7
  228396. .IP \(bu 2
  228397. a9dcb23a13 regenerated man pages for 2015.8.1
  228398. .UNINDENT
  228399. .IP \(bu 2
  228400. \fBISSUE\fP \fI\%#26629\fP: (\fI\%efficks\fP) Windows minion: Remove powershell dependencies (refs: \fI\%#27522\fP)
  228401. .IP \(bu 2
  228402. \fBPR\fP \fI\%#27522\fP: (\fI\%twangboy\fP) Removed dependency on powershell to restart salt\-minion
  228403. @ \fI2015\-09\-30 16:19:29 UTC\fP
  228404. .INDENT 2.0
  228405. .IP \(bu 2
  228406. fd11e0cd95 Merge pull request \fI\%#27522\fP from twangboy/fix_26629
  228407. .IP \(bu 2
  228408. 163c54505d Fixed tests... hopefully
  228409. .IP \(bu 2
  228410. dc8c01ed07 Fixed some lint
  228411. .IP \(bu 2
  228412. 2cb0f12696 Removed dependency on powershell to restart salt\-minion
  228413. .UNINDENT
  228414. .IP \(bu 2
  228415. \fBPR\fP \fI\%#27550\fP: (\fI\%rallytime\fP) [2015.8] Clean up salt\-cloud logging and make it more useful
  228416. @ \fI2015\-09\-30 15:48:53 UTC\fP
  228417. .INDENT 2.0
  228418. .IP \(bu 2
  228419. eb76531e96 Merge pull request \fI\%#27550\fP from rallytime/cloud\-logging
  228420. .IP \(bu 2
  228421. 9e0fccd543 Don\(aqt commit private\-ip changes from testing another bug...
  228422. .IP \(bu 2
  228423. 78c85fbb31 Add unit tests for new recursive function
  228424. .IP \(bu 2
  228425. d9a2dc6bc5 [2015.8] Clean up salt\-cloud logging and make it more useful
  228426. .UNINDENT
  228427. .IP \(bu 2
  228428. \fBISSUE\fP \fI\%#27281\fP: (\fI\%lrhazi\fP) Wrong path for yum repo in installation\-rhel\-repo (refs: \fI\%#27517\fP)
  228429. .IP \(bu 2
  228430. \fBISSUE\fP \fI\%#27179\fP: (\fI\%samhamilton\fP) Debian Install Instructions Shows Two Different Repos (refs: \fI\%#27517\fP)
  228431. .IP \(bu 2
  228432. \fBPR\fP \fI\%#27517\fP: (\fI\%jacobhammons\fP) Updated install docs
  228433. @ \fI2015\-09\-30 15:19:51 UTC\fP
  228434. .INDENT 2.0
  228435. .IP \(bu 2
  228436. 1f7ea7c764 Merge pull request \fI\%#27517\fP from jacobhammons/install\-docs
  228437. .IP \(bu 2
  228438. 167fd2304e Fixed a duplicated link ID
  228439. .IP \(bu 2
  228440. c05fa71f91 Updated install docs Refs \fI\%#27281\fP Refs \fI\%#27179\fP
  228441. .UNINDENT
  228442. .IP \(bu 2
  228443. \fBPR\fP \fI\%#27526\fP: (\fI\%eliasp\fP) Add missing newlines before param listing to fix doc rendering
  228444. @ \fI2015\-09\-30 15:19:04 UTC\fP
  228445. .INDENT 2.0
  228446. .IP \(bu 2
  228447. 2a4c11ae24 Merge pull request \fI\%#27526\fP from eliasp/2015.8\-modules.slack_notify\-doc\-params
  228448. .IP \(bu 2
  228449. 204e66943f Add missing newlines before param listing to fix doc rendering
  228450. .UNINDENT
  228451. .IP \(bu 2
  228452. \fBPR\fP \fI\%#27525\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  228453. @ \fI2015\-09\-30 03:38:22 UTC\fP
  228454. .INDENT 2.0
  228455. .IP \(bu 2
  228456. e5de9409c2 Merge pull request \fI\%#27525\fP from basepi/merge\-forward\-2015.8
  228457. .IP \(bu 2
  228458. 1f3eb1c526 Remove useless mocked unit test
  228459. .IP \(bu 2
  228460. 73b90f155e Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  228461. .INDENT 2.0
  228462. .IP \(bu 2
  228463. 6d773f66c3 Merge pull request \fI\%#27516\fP from basepi/merge\-forward\-2015.5
  228464. .INDENT 2.0
  228465. .IP \(bu 2
  228466. a08951f0fa Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  228467. .IP \(bu 2
  228468. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  228469. .INDENT 2.0
  228470. .IP \(bu 2
  228471. adeb1dcad4 Pylint Fix
  228472. .IP \(bu 2
  228473. 588c13783c Salt\-cloud logging clean up for windows functions
  228474. .IP \(bu 2
  228475. 9b6000135c [2014.7] Fixup salt\-cloud logging
  228476. .UNINDENT
  228477. .UNINDENT
  228478. .IP \(bu 2
  228479. 68d784c3dd Merge pull request \fI\%#27472\fP from cachedout/fix_27447
  228480. .INDENT 2.0
  228481. .IP \(bu 2
  228482. 5e745ad6da Change recommeded schema for data field in mysql event table
  228483. .UNINDENT
  228484. .IP \(bu 2
  228485. ee6e0ed057 Merge pull request \fI\%#27468\fP from cachedout/fix_27351
  228486. .INDENT 2.0
  228487. .IP \(bu 2
  228488. 0bc37c0d41 Fix test
  228489. .IP \(bu 2
  228490. f9a19720de fix sysctl truncating newline on os x
  228491. .UNINDENT
  228492. .IP \(bu 2
  228493. a214c7f84e Merge pull request \fI\%#27479\fP from aboe76/fix_locale_suse
  228494. .INDENT 2.0
  228495. .IP \(bu 2
  228496. a8f2dad1be fix locale on opensuse and suse \fI\%#27438\fP
  228497. .UNINDENT
  228498. .IP \(bu 2
  228499. 931f593b51 Merge pull request \fI\%#27483\fP from rallytime/fix\-17103
  228500. .INDENT 2.0
  228501. .IP \(bu 2
  228502. 441241eb90 Change sync_outputters to sync_output for consistency, but alias sync_outputters
  228503. .IP \(bu 2
  228504. 105528720b Outputters should sync to output, not outputters, on the minion.
  228505. .UNINDENT
  228506. .IP \(bu 2
  228507. 9c2c028953 Merge pull request \fI\%#27484\fP from rallytime/bp\-27434\-and\-27470
  228508. .INDENT 2.0
  228509. .IP \(bu 2
  228510. 5de2ee35ab Minor doc fixup.
  228511. .IP \(bu 2
  228512. af656c7e87 Doc: copy key to server via ssh\-copy\-id
  228513. .UNINDENT
  228514. .IP \(bu 2
  228515. 927874d316 Merge pull request \fI\%#27469\fP from twangboy/fix_27433
  228516. .INDENT 2.0
  228517. .IP \(bu 2
  228518. a996ea46e2 Added quotes to version numbers example
  228519. .UNINDENT
  228520. .IP \(bu 2
  228521. 382a53403f Merge pull request \fI\%#27467\fP from cachedout/lint_27375
  228522. .INDENT 2.0
  228523. .IP \(bu 2
  228524. 4e54a98f5e Lint \fI\%#27375\fP
  228525. .IP \(bu 2
  228526. 278ade52d2 file.managed: check contents_{pillar|grain} result
  228527. .UNINDENT
  228528. .IP \(bu 2
  228529. ed6207a438 Merge pull request \fI\%#27419\fP from rallytime/fix\-9856
  228530. .INDENT 2.0
  228531. .IP \(bu 2
  228532. 551396564a Ammend error log to include multiple tips for troubleshooting.
  228533. .UNINDENT
  228534. .IP \(bu 2
  228535. 73fa89edf7 Merge pull request \fI\%#27426\fP from rallytime/fix\-16753
  228536. .INDENT 2.0
  228537. .IP \(bu 2
  228538. f6cbd81e66 Don\(aqt stacktrace if there are conflicting id errors in highstate
  228539. .UNINDENT
  228540. .IP \(bu 2
  228541. 5dd1b70475 Merge pull request \fI\%#27408\fP from rallytime/fix\-27406\-for\-2015.5
  228542. .INDENT 2.0
  228543. .IP \(bu 2
  228544. 39a4ae5a6c Remove hdd: 19 refs from SL docs \- no longer available from SoftLayer.
  228545. .IP \(bu 2
  228546. de2f9234d3 Use correct default for bandwith
  228547. .IP \(bu 2
  228548. 42d8127f79 Don\(aqt set the optional_products default to a boolean, and then try to loop.
  228549. .IP \(bu 2
  228550. 9d8a3d8303 Fix avail_locations function for the softlayer_hw driver in 2015.5
  228551. .UNINDENT
  228552. .IP \(bu 2
  228553. 8f9a3cfbaf Merge pull request \fI\%#27410\fP from jacobhammons/doc\-updates
  228554. .INDENT 2.0
  228555. .IP \(bu 2
  228556. a9fdecada1 Fix css layout Refs \fI\%#27389\fP sample typo fix in linux_acl additional module folders listed in dynamic\-modules
  228557. .UNINDENT
  228558. .IP \(bu 2
  228559. 3746085587 Merge pull request \fI\%#27336\fP from rallytime/cloud\-logging\-five
  228560. .INDENT 2.0
  228561. .IP \(bu 2
  228562. 7956b36076 [2015.5] Fixup salt\-cloud logging
  228563. .UNINDENT
  228564. .IP \(bu 2
  228565. 5a3be10a3e Merge pull request \fI\%#27358\fP from lorengordon/escape\-search\-replacement\-text
  228566. .INDENT 2.0
  228567. .IP \(bu 2
  228568. 88bb1fbfff Escape search replacement text, fixes \fI\%#27356\fP
  228569. .UNINDENT
  228570. .IP \(bu 2
  228571. 6759f79d6d Merge pull request \fI\%#27345\fP from rallytime/docs\-for\-19236
  228572. .INDENT 2.0
  228573. .IP \(bu 2
  228574. 1d3925bbfb Added version tag for ex_disk_type option
  228575. .IP \(bu 2
  228576. f23369300c Allow use of rst header links by separating options out from yaml example
  228577. .UNINDENT
  228578. .IP \(bu 2
  228579. c2efb291e2 Merge pull request \fI\%#26903\fP from bersace/fix\-defaults\-modules
  228580. .INDENT 2.0
  228581. .IP \(bu 2
  228582. 474d7afc95 fixup! Review defaults loading
  228583. .IP \(bu 2
  228584. 36141d226e fixup! Review defaults loading
  228585. .IP \(bu 2
  228586. 62b6495358 fixup! Review defaults loading
  228587. .IP \(bu 2
  228588. cf0624e8b8 fixup! Review defaults loading
  228589. .IP \(bu 2
  228590. 2c58bab977 fixup! Review defaults loading
  228591. .IP \(bu 2
  228592. 82c5b1d8fd Review defaults loading
  228593. .UNINDENT
  228594. .IP \(bu 2
  228595. a372466922 Merge pull request \fI\%#27317\fP from efficks/fix27316
  228596. .INDENT 2.0
  228597. .IP \(bu 2
  228598. bf216c101e State unzip should use unzip command instead of unzip_cmd. Issue \fI\%#27316\fP
  228599. .UNINDENT
  228600. .IP \(bu 2
  228601. bd3771e80f Merge pull request \fI\%#27309\fP from rallytime/fix\-15514
  228602. .INDENT 2.0
  228603. .IP \(bu 2
  228604. 9383d91ff8 Change a value list to a comma\-separated string in boto_route53.present
  228605. .UNINDENT
  228606. .IP \(bu 2
  228607. b5fe944875 Merge pull request \fI\%#27311\fP from jfindlay/maxoc
  228608. .INDENT 2.0
  228609. .IP \(bu 2
  228610. 8ec2e921bd discuss replacement occurrences in file doc
  228611. .UNINDENT
  228612. .UNINDENT
  228613. .UNINDENT
  228614. .IP \(bu 2
  228615. \fBPR\fP \fI\%#27513\fP: (\fI\%terminalmage\fP) Fix integration tests for worktree addition in git >= 2.6
  228616. @ \fI2015\-09\-29 18:39:19 UTC\fP
  228617. .INDENT 2.0
  228618. .IP \(bu 2
  228619. 0e37fb3bd3 Merge pull request \fI\%#27513\fP from terminalmage/fix\-worktree\-tests
  228620. .IP \(bu 2
  228621. 519bdd6438 Fix integration tests for worktree addition in git >= 2.6
  228622. .UNINDENT
  228623. .IP \(bu 2
  228624. \fBPR\fP \fI\%#27510\fP: (\fI\%rallytime\fP) Merge \fI\%#27475\fP with test fixes
  228625. @ \fI2015\-09\-29 18:34:32 UTC\fP
  228626. .INDENT 2.0
  228627. .IP \(bu 2
  228628. \fBPR\fP \fI\%#27475\fP: (\fI\%ryan\-lane\fP) Use __states__ for calls to other boto states (refs: \fI\%#27510\fP)
  228629. .IP \(bu 2
  228630. e974a3c8aa Merge pull request \fI\%#27510\fP from rallytime/ryan\-lane\-test\-fix
  228631. .IP \(bu 2
  228632. cae2c4e715 Syntax fix
  228633. .IP \(bu 2
  228634. 458547ba03 Fix test failures for boto __state__ changes
  228635. .IP \(bu 2
  228636. 5e25454fc1 Followups for using __states__
  228637. .IP \(bu 2
  228638. a01f8ac62c Use __states__ for calls to other boto states
  228639. .UNINDENT
  228640. .IP \(bu 2
  228641. \fBISSUE\fP \fI\%#27265\fP: (\fI\%Arabus\fP) State: dockerng.running; creation hostconfig replaced with runtime hostconfig when using runtime options (refs: \fI\%#27451\fP)
  228642. .IP \(bu 2
  228643. \fBPR\fP \fI\%#27451\fP: (\fI\%ticosax\fP) [dockerng] Enforce usage of host_config and require docker\-py>=1.4.0
  228644. @ \fI2015\-09\-29 15:51:28 UTC\fP
  228645. .INDENT 2.0
  228646. .IP \(bu 2
  228647. d85b0cbd69 Merge pull request \fI\%#27451\fP from ticosax/dockerng\-host\-config\-support
  228648. .IP \(bu 2
  228649. b184faa55b Enforce usage of host_config and require docker\-py>=1.4.0
  228650. .UNINDENT
  228651. .IP \(bu 2
  228652. \fBPR\fP \fI\%#27461\fP: (\fI\%cachedout\fP) Only clean context if it exists
  228653. @ \fI2015\-09\-29 15:49:52 UTC\fP
  228654. .INDENT 2.0
  228655. .IP \(bu 2
  228656. e8f58a6a3f Merge pull request \fI\%#27461\fP from cachedout/clean_context_ioloop
  228657. .IP \(bu 2
  228658. 7367a4e32b Only clean context if it exists
  228659. .UNINDENT
  228660. .IP \(bu 2
  228661. \fBISSUE\fP \fI\%#27220\fP: (\fI\%TheBigBear\fP) [ERROR ] Exception \(aqclose_fds is not supported on Windows platforms if you redirect stdin/stdout/stderr\(aq (refs: \fI\%#27473\fP)
  228662. .IP \(bu 2
  228663. \fBPR\fP \fI\%#27473\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: Don\(aqt use close_fds=True on Windows
  228664. @ \fI2015\-09\-29 15:34:03 UTC\fP
  228665. .INDENT 2.0
  228666. .IP \(bu 2
  228667. 25a30a5621 Merge pull request \fI\%#27473\fP from terminalmage/issue27220
  228668. .IP \(bu 2
  228669. fa70ef2e31 salt.utils.gitfs: Don\(aqt use close_fds=True on Windows
  228670. .UNINDENT
  228671. .IP \(bu 2
  228672. \fBPR\fP \fI\%#27496\fP: (\fI\%blueyed\fP) Fix version reporting of gitpython
  228673. @ \fI2015\-09\-29 15:31:48 UTC\fP
  228674. .INDENT 2.0
  228675. .IP \(bu 2
  228676. 3807cd5c4e Merge pull request \fI\%#27496\fP from blueyed/fix\-gitpython\-version
  228677. .IP \(bu 2
  228678. d8969363c8 Fix version reporting of gitpython
  228679. .UNINDENT
  228680. .IP \(bu 2
  228681. \fBPR\fP \fI\%#27502\fP: (\fI\%ticosax\fP) Add test to check we don\(aqt call inspect_image on absent images.
  228682. @ \fI2015\-09\-29 15:15:09 UTC\fP
  228683. .INDENT 2.0
  228684. .IP \(bu 2
  228685. \fBPR\fP \fI\%#25162\fP: (\fI\%ticosax\fP) [dockerng] Do not call inspect_image if we know the image is not downloaded (refs: \fI\%#27502\fP)
  228686. .IP \(bu 2
  228687. 057fd0729d Merge pull request \fI\%#27502\fP from ticosax/backport\-test\-from\-develop
  228688. .IP \(bu 2
  228689. fadd9bd43e Add test to check we don\(aqt call inspect_image on absent images.
  228690. .UNINDENT
  228691. .IP \(bu 2
  228692. \fBPR\fP \fI\%#27497\fP: (\fI\%blueyed\fP) dockerng: fix image_present for forced, non\-existent image
  228693. @ \fI2015\-09\-29 13:49:46 UTC\fP
  228694. .INDENT 2.0
  228695. .IP \(bu 2
  228696. f3da6e4bb3 Merge pull request \fI\%#27497\fP from blueyed/dockerng\-fix\-404\-private\-forced
  228697. .IP \(bu 2
  228698. e3c66cea3a dockerng: fix image_present for forced, non\-existent image
  228699. .UNINDENT
  228700. .IP \(bu 2
  228701. \fBISSUE\fP \fI\%#27205\fP: (\fI\%msummers42\fP) In git.config_set state CommandExecutionError occurs when global=True when using salt 2015.8.0 (refs: \fI\%#27411\fP)
  228702. .IP \(bu 2
  228703. \fBPR\fP \fI\%#27411\fP: (\fI\%terminalmage\fP) Fix invocation of git.config_get and git.config_set
  228704. @ \fI2015\-09\-28 22:53:01 UTC\fP
  228705. .INDENT 2.0
  228706. .IP \(bu 2
  228707. 284984e6ba Merge pull request \fI\%#27411\fP from terminalmage/issue27205
  228708. .IP \(bu 2
  228709. c3a17ae992 add missing commas
  228710. .IP \(bu 2
  228711. f2751ef7c4 Fix shadowed outer\-scope attributes
  228712. .IP \(bu 2
  228713. 81a6c27010 Fix invocation of git.config_get and git.config_set
  228714. .UNINDENT
  228715. .IP \(bu 2
  228716. \fBISSUE\fP \fI\%#27217\fP: (\fI\%nasenbaer13\fP) Gitfs cleans up wrong directories (refs: \fI\%#27218\fP, \fI\%#27477\fP, \fI\%#27276\fP, \fI\%#27382\fP)
  228717. .IP \(bu 2
  228718. \fBPR\fP \fI\%#27477\fP: (\fI\%terminalmage\fP) Don\(aqt append role to hash_cachedir
  228719. @ \fI2015\-09\-28 22:26:34 UTC\fP
  228720. .INDENT 2.0
  228721. .IP \(bu 2
  228722. cbcb5475b6 Merge pull request \fI\%#27477\fP from terminalmage/issue27217
  228723. .IP \(bu 2
  228724. c185e99970 Second attempt to fix \fI\%#27217\fP
  228725. .UNINDENT
  228726. .IP \(bu 2
  228727. \fBPR\fP \fI\%#27474\fP: (\fI\%whiteinge\fP) Add fake pymongo version attribute for the docs
  228728. @ \fI2015\-09\-28 21:49:25 UTC\fP
  228729. .INDENT 2.0
  228730. .IP \(bu 2
  228731. 2f71833260 Merge pull request \fI\%#27474\fP from whiteinge/docs\-pymongo\-fix
  228732. .IP \(bu 2
  228733. 64b54e668a Add fake pymongo version attribute for the docs
  228734. .UNINDENT
  228735. .IP \(bu 2
  228736. \fBPR\fP \fI\%#27466\fP: (\fI\%blueyed\fP) Fix version reporting of python\-gnupg and mysql\-python
  228737. @ \fI2015\-09\-28 20:25:01 UTC\fP
  228738. .INDENT 2.0
  228739. .IP \(bu 2
  228740. 9202f956f3 Merge pull request \fI\%#27466\fP from blueyed/fix\-gnupg\-version
  228741. .IP \(bu 2
  228742. 9c1454fe59 Fix version reporting of mysql\-python
  228743. .IP \(bu 2
  228744. 437fb4407e Fix version reporting of python\-gnupg
  228745. .UNINDENT
  228746. .IP \(bu 2
  228747. \fBPR\fP \fI\%#27465\fP: (\fI\%ticosax\fP) Fix usage of dockerng "cmd" was \fI\%#27459\fP
  228748. @ \fI2015\-09\-28 19:27:41 UTC\fP
  228749. .INDENT 2.0
  228750. .IP \(bu 2
  228751. \fBPR\fP \fI\%#27459\fP: (\fI\%terminalmage\fP) Fix usage of dockerng "cmd" (refs: \fI\%#27465\fP)
  228752. .IP \(bu 2
  228753. \fBPR\fP \fI\%#27444\fP: (\fI\%ticosax\fP) docker\-py expect only \fIcommand\fP argument not \fIcmd\fP (refs: \fI\%#27459\fP)
  228754. .IP \(bu 2
  228755. \fBPR\fP \fI\%#27331\fP: (\fI\%terminalmage\fP) dockerng: Allow both cmd and command to be used to specify command (refs: \fI\%#27459\fP, \fI\%#27444\fP)
  228756. .IP \(bu 2
  228757. 6d8e9af297 Merge pull request \fI\%#27465\fP from ticosax/fix\-dockerng\-cmd
  228758. .IP \(bu 2
  228759. a1ed6cda56 Skip test if docker\-py is not installed
  228760. .IP \(bu 2
  228761. 6f7769aa94 Correct log messages/docstrings
  228762. .IP \(bu 2
  228763. cc8471bd1b dockerpy expect only \fIcommand\fP argument not \fIcmd\fP
  228764. .UNINDENT
  228765. .IP \(bu 2
  228766. \fBISSUE\fP \fI\%#27409\fP: (\fI\%pcn\fP) 2015.8.0 API (cherrypy) fails to lookup job id via pepper (refs: \fI\%#27417\fP)
  228767. .IP \(bu 2
  228768. \fBISSUE\fP \fI\%#25107\fP: (\fI\%whiteinge\fP) Regression in RunnerClient argument handling (refs: \fI\%#25243\fP)
  228769. .IP \(bu 2
  228770. \fBPR\fP \fI\%#27417\fP: (\fI\%whiteinge\fP) Backport \fI\%#25243\fP into 2015.8
  228771. @ \fI2015\-09\-28 19:15:53 UTC\fP
  228772. .INDENT 2.0
  228773. .IP \(bu 2
  228774. \fBPR\fP \fI\%#25243\fP: (\fI\%DmitryKuzmenko\fP) Runnerclient regression fix (refs: \fI\%#27417\fP)
  228775. .IP \(bu 2
  228776. aefe6d794a Merge pull request \fI\%#27417\fP from whiteinge/bp\-25243
  228777. .IP \(bu 2
  228778. 53e7a6b7c5 RunnerClient support old style commands with kwargs on top level.
  228779. .IP \(bu 2
  228780. 10b522b86c Revert "Fixed GET /jobs/<id> requests"
  228781. .UNINDENT
  228782. .IP \(bu 2
  228783. \fBPR\fP \fI\%#27423\fP: (\fI\%dmurphy18\fP) Changes to support configurable repository for Debian / Ubuntu
  228784. @ \fI2015\-09\-28 17:34:22 UTC\fP
  228785. .INDENT 2.0
  228786. .IP \(bu 2
  228787. a07411a4d9 Merge pull request \fI\%#27423\fP from dmurphy18/dgm_envfix
  228788. .IP \(bu 2
  228789. 63407fd2a9 Changes to support configurable repository for Debian / Ubuntu
  228790. .UNINDENT
  228791. .IP \(bu 2
  228792. \fBISSUE\fP \fI\%#26689\fP: (\fI\%double\-yaya\fP) Salt \- SSH using machine IP to execute commands, without having to write a roster file (refs: \fI\%#27398\fP)
  228793. .IP \(bu 2
  228794. \fBPR\fP \fI\%#27428\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27398\fP to 2015.8
  228795. @ \fI2015\-09\-28 15:03:16 UTC\fP
  228796. .INDENT 2.0
  228797. .IP \(bu 2
  228798. \fBPR\fP \fI\%#27398\fP: (\fI\%flowhamster\fP) Allow cloud roster to use sudo (refs: \fI\%#27428\fP)
  228799. .IP \(bu 2
  228800. d4d96bb3fc Merge pull request \fI\%#27428\fP from rallytime/bp\-27398
  228801. .IP \(bu 2
  228802. 6969326ae2 doc: added documentation to cloud roster and fixed whitespace
  228803. .IP \(bu 2
  228804. b4334649d5 Allow cloud roster to use sudo
  228805. .UNINDENT
  228806. .IP \(bu 2
  228807. \fBPR\fP \fI\%#27429\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27344\fP to 2015.8
  228808. @ \fI2015\-09\-28 15:01:20 UTC\fP
  228809. .INDENT 2.0
  228810. .IP \(bu 2
  228811. \fBPR\fP \fI\%#27344\fP: (\fI\%rhealitycheck\fP) Mongo returners patch 1 (refs: \fI\%#27429\fP)
  228812. .IP \(bu 2
  228813. 668c69bd7e Merge pull request \fI\%#27429\fP from rallytime/bp\-27344
  228814. .IP \(bu 2
  228815. e39a57afe1 Update mongo_return.py
  228816. .IP \(bu 2
  228817. f796c9a44b Update mongo_return.py
  228818. .IP \(bu 2
  228819. 30d07cbb27 Update mongo_return.py
  228820. .IP \(bu 2
  228821. 44ef4b48fb Update mongo_future_return.py
  228822. .IP \(bu 2
  228823. 34b160b841 Update mongo_return.py
  228824. .IP \(bu 2
  228825. b2b5623da3 Update mongo_future_return.py
  228826. .IP \(bu 2
  228827. 07f9a8b95b Update mongo_return.py
  228828. .IP \(bu 2
  228829. b7ddc83b4d Update mongo_future_return.py
  228830. .IP \(bu 2
  228831. 540b3f2690 Update mongo_return.py
  228832. .IP \(bu 2
  228833. 405edd0718 Update mongo_future_return.py
  228834. .IP \(bu 2
  228835. 5c753a54ff Update mongo_return.py
  228836. .IP \(bu 2
  228837. 06e05befa7 Update mongo_future_return.py
  228838. .UNINDENT
  228839. .IP \(bu 2
  228840. \fBPR\fP \fI\%#27450\fP: (\fI\%ticosax\fP) [dockerng] Fix typo in docstring
  228841. @ \fI2015\-09\-28 14:27:35 UTC\fP
  228842. .INDENT 2.0
  228843. .IP \(bu 2
  228844. c639931340 Merge pull request \fI\%#27450\fP from ticosax/fix\-typo
  228845. .IP \(bu 2
  228846. 9cea62de67 Fix typo in docstring
  228847. .UNINDENT
  228848. .IP \(bu 2
  228849. \fBPR\fP \fI\%#27430\fP: (\fI\%jacksontj\fP) Fix bug introduced in eee0291ff8b65ff1e22f4dc2447a74aa28a3ce7f
  228850. @ \fI2015\-09\-26 01:09:40 UTC\fP
  228851. .INDENT 2.0
  228852. .IP \(bu 2
  228853. 333c305ba0 Merge pull request \fI\%#27430\fP from jacksontj/2015.8
  228854. .IP \(bu 2
  228855. d2aff12f8f Fix bug introduced in eee0291ff8b65ff1e22f4dc2447a74aa28a3ce7f
  228856. .UNINDENT
  228857. .IP \(bu 2
  228858. \fBPR\fP \fI\%#27418\fP: (\fI\%terminalmage\fP) Don\(aqt always remove dest path in salt.utils.files.rename()
  228859. @ \fI2015\-09\-25 23:09:59 UTC\fP
  228860. .INDENT 2.0
  228861. .IP \(bu 2
  228862. 1f4ca089a2 Merge pull request \fI\%#27418\fP from terminalmage/file\-rename
  228863. .IP \(bu 2
  228864. 7bc0949d48 Don\(aqt always remove dest path in salt.utils.files.rename()
  228865. .UNINDENT
  228866. .IP \(bu 2
  228867. \fBISSUE\fP \fI\%#27032\fP: (\fI\%lorengordon\fP) Windows Installer: Please be more kind to existing configurations (refs: \fI\%#27383\fP)
  228868. .IP \(bu 2
  228869. \fBPR\fP \fI\%#27383\fP: (\fI\%twangboy\fP) Uninstaller only removes specific files and dirs
  228870. @ \fI2015\-09\-25 22:47:24 UTC\fP
  228871. .INDENT 2.0
  228872. .IP \(bu 2
  228873. ec5faf1829 Merge pull request \fI\%#27383\fP from twangboy/fix_27032
  228874. .IP \(bu 2
  228875. 63a7305ae9 Uninstaller only removes specific files and dirs
  228876. .UNINDENT
  228877. .IP \(bu 2
  228878. \fBPR\fP \fI\%#27416\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27399\fP to 2015.8
  228879. @ \fI2015\-09\-25 22:39:07 UTC\fP
  228880. .INDENT 2.0
  228881. .IP \(bu 2
  228882. \fBPR\fP \fI\%#27399\fP: (\fI\%multani\fP) Various documentation fixes (refs: \fI\%#27416\fP)
  228883. .IP \(bu 2
  228884. 9ab3c6dc5d Merge pull request \fI\%#27416\fP from rallytime/bp\-27399
  228885. .IP \(bu 2
  228886. 1d848118c9 doc: fixed indentation in salt.renderers.jinja\(aqs documentation
  228887. .IP \(bu 2
  228888. f5d053a033 doc: fixed indentation in salt.modules.consul\(aqs documentation
  228889. .IP \(bu 2
  228890. 06beea6b2f doc: fix etcd state documentation typos
  228891. .IP \(bu 2
  228892. 97e69ebb97 doc: fix state\(aqs top documentation typo
  228893. .IP \(bu 2
  228894. b411730d60 doc: fix documentation formatting for state blockdev
  228895. .IP \(bu 2
  228896. ce91bb9446 doc: fix formatting in state boto_elb
  228897. .IP \(bu 2
  228898. c69229875e doc: fix links in Docker state documentation
  228899. .IP \(bu 2
  228900. 15b751d6e2 doc: Docker state use ports and not port_bindings anymore
  228901. .IP \(bu 2
  228902. 880b6e0944 doc: fix link to docker\-py documentation
  228903. .IP \(bu 2
  228904. 33db0c27f8 doc: fix RAET links
  228905. .IP \(bu 2
  228906. e69ba2f943 doc: fix rendering of salt.states.hipchat
  228907. .UNINDENT
  228908. .IP \(bu 2
  228909. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#27394\fP, \fI\%#27163\fP)
  228910. .IP \(bu 2
  228911. \fBPR\fP \fI\%#27394\fP: (\fI\%jacksontj\fP) Remove streamed response for fileclient to avoid HTTP redirection problems
  228912. @ \fI2015\-09\-25 21:55:31 UTC\fP
  228913. .INDENT 2.0
  228914. .IP \(bu 2
  228915. \fBPR\fP \fI\%#27163\fP: (\fI\%terminalmage\fP) Workaround upstream tornado bug affecting redirects (refs: \fI\%#27394\fP)
  228916. .IP \(bu 2
  228917. 9842d9728b Merge pull request \fI\%#27394\fP from jacksontj/2015.8
  228918. .IP \(bu 2
  228919. 01132c305c Re\-add files.rename call instead of os.rename
  228920. .IP \(bu 2
  228921. acf2d51440 Remove streamed response for fileclient to avoid HTTP redirection problems
  228922. .IP \(bu 2
  228923. a6ecf35f25 Revert "Remove unused import"
  228924. .IP \(bu 2
  228925. 66c73a3996 Revert "Workaround upstream tornado bug affecting redirects"
  228926. .UNINDENT
  228927. .IP \(bu 2
  228928. \fBPR\fP \fI\%#27415\fP: (\fI\%ryan\-lane\fP) Backwards compat fixes for pecl module
  228929. @ \fI2015\-09\-25 19:40:55 UTC\fP
  228930. .INDENT 2.0
  228931. .IP \(bu 2
  228932. 44b246bf93 Merge pull request \fI\%#27415\fP from lyft/fix\-pecl
  228933. .IP \(bu 2
  228934. 8be8ef585c Backwards compat fixes for pecl module
  228935. .UNINDENT
  228936. .IP \(bu 2
  228937. \fBPR\fP \fI\%#27407\fP: (\fI\%meggiebot\fP) Adding stretch label definition
  228938. @ \fI2015\-09\-25 18:10:46 UTC\fP
  228939. .INDENT 2.0
  228940. .IP \(bu 2
  228941. d76a77c911 Merge pull request \fI\%#27407\fP from saltstack/meggiebot\-patch\-1
  228942. .IP \(bu 2
  228943. 1c779700f6 Adding stretch label definition
  228944. .UNINDENT
  228945. .IP \(bu 2
  228946. \fBISSUE\fP \fI\%#27209\fP: (\fI\%justinta\fP) Provider overrides appear to be broken (refs: \fI\%#27388\fP)
  228947. .IP \(bu 2
  228948. \fBPR\fP \fI\%#27388\fP: (\fI\%basepi\fP) [2015.8] Fix global provider overrides
  228949. @ \fI2015\-09\-25 16:49:03 UTC\fP
  228950. .INDENT 2.0
  228951. .IP \(bu 2
  228952. db6acfd832 Merge pull request \fI\%#27388\fP from basepi/provider.overrides.27209
  228953. .IP \(bu 2
  228954. d87147e14b Don\(aqt use ret.items(), forces load of all modules
  228955. .IP \(bu 2
  228956. a5ee33a9ad pack __salt__ before loading provider overrides
  228957. .UNINDENT
  228958. .IP \(bu 2
  228959. \fBISSUE\fP \fI\%#27354\fP: (\fI\%gravyboat\fP) salt\-ssh roster docs should note the requiretty option (refs: \fI\%#27386\fP)
  228960. .IP \(bu 2
  228961. \fBPR\fP \fI\%#27386\fP: (\fI\%rallytime\fP) Document tty: True usage in salt\-ssh roster file
  228962. @ \fI2015\-09\-25 15:44:12 UTC\fP
  228963. .INDENT 2.0
  228964. .IP \(bu 2
  228965. b72e0b1133 Merge pull request \fI\%#27386\fP from rallytime/fix\-27354
  228966. .IP \(bu 2
  228967. 08c04da48b Document tty: True usage in salt\-ssh roster file
  228968. .UNINDENT
  228969. .IP \(bu 2
  228970. \fBPR\fP \fI\%#27380\fP: (\fI\%justinta\fP) Skipping Async tests
  228971. @ \fI2015\-09\-25 15:13:04 UTC\fP
  228972. .INDENT 2.0
  228973. .IP \(bu 2
  228974. 51e765078a Merge pull request \fI\%#27380\fP from jtand/async_tests
  228975. .IP \(bu 2
  228976. fd0dedeb99 Skipping Async tests
  228977. .UNINDENT
  228978. .IP \(bu 2
  228979. \fBISSUE\fP \fI\%#27217\fP: (\fI\%nasenbaer13\fP) Gitfs cleans up wrong directories (refs: \fI\%#27218\fP, \fI\%#27477\fP, \fI\%#27276\fP, \fI\%#27382\fP)
  228980. .IP \(bu 2
  228981. \fBPR\fP \fI\%#27382\fP: (\fI\%terminalmage\fP) Revert "fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)"
  228982. @ \fI2015\-09\-24 22:54:23 UTC\fP
  228983. .INDENT 2.0
  228984. .IP \(bu 2
  228985. 633af56517 Merge pull request \fI\%#27382\fP from terminalmage/revert\-27218
  228986. .IP \(bu 2
  228987. 2379748f9e Revert "fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)"
  228988. .UNINDENT
  228989. .IP \(bu 2
  228990. \fBPR\fP \fI\%#27361\fP: (\fI\%cro\fP) Correct some issues with proxy minions
  228991. @ \fI2015\-09\-24 16:03:38 UTC\fP
  228992. .INDENT 2.0
  228993. .IP \(bu 2
  228994. 12a021da11 Merge pull request \fI\%#27361\fP from cro/pxm_doc
  228995. .IP \(bu 2
  228996. 1a2c41c9e3 Add versionadded.
  228997. .IP \(bu 2
  228998. 93a6397598 func_alias should be list_ and should have a corresponding list_ fn.
  228999. .IP \(bu 2
  229000. 0221f7ee4e Pylint
  229001. .IP \(bu 2
  229002. 3a297d8036 Add release notes for proxy fixes.
  229003. .IP \(bu 2
  229004. 39df44b841 Pylint
  229005. .IP \(bu 2
  229006. e3ebff9bce Fix some problems with the rest_sample, remove unnecessary file and make sure that rest_service has the right contents.
  229007. .IP \(bu 2
  229008. f4944fe68a Fix typo in docs
  229009. .UNINDENT
  229010. .IP \(bu 2
  229011. \fBPR\fP \fI\%#27364\fP: (\fI\%ruzarowski\fP) SaltCloud[EC2] Fix missing credentials in modify_eni_properties api call
  229012. @ \fI2015\-09\-24 13:55:39 UTC\fP
  229013. .INDENT 2.0
  229014. .IP \(bu 2
  229015. cff74510de Merge pull request \fI\%#27364\fP from ruzarowski/2015.8\-modify\-eni\-properties\-api\-call
  229016. .IP \(bu 2
  229017. 100eea46d5 Issue \fI\%#27121\fP \- Remove leftover code comment
  229018. .IP \(bu 2
  229019. c58e7a00f3 Issue \fI\%#27121\fP \- Attempt to fix missing credentials when modifying eni properties
  229020. .IP \(bu 2
  229021. 5d292a221e Merge remote\-tracking branch \(aqupstream/2015.8\(aq into 2015.8
  229022. .IP \(bu 2
  229023. 4dbd9ebb30 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into 2015.8
  229024. .UNINDENT
  229025. .IP \(bu 2
  229026. \fBPR\fP \fI\%#27349\fP: (\fI\%jfindlay\fP) add freebsd install docs to release notes
  229027. @ \fI2015\-09\-24 13:51:02 UTC\fP
  229028. .INDENT 2.0
  229029. .IP \(bu 2
  229030. 928ef59a8a Merge pull request \fI\%#27349\fP from jfindlay/doc_typos
  229031. .IP \(bu 2
  229032. e509cfca17 fix typo in 2015.8.0 pull list
  229033. .IP \(bu 2
  229034. 7137e731d3 add FreeBSD documentation to 2015.8.0 notes
  229035. .UNINDENT
  229036. .IP \(bu 2
  229037. \fBISSUE\fP \fI\%#26889\fP: (\fI\%UtahDave\fP) salt\-call w/non root user outputs repeating error (refs: \fI\%#27343\fP)
  229038. .IP \(bu 2
  229039. \fBPR\fP \fI\%#27343\fP: (\fI\%cachedout\fP) Close io loop before deleting attribute
  229040. @ \fI2015\-09\-24 13:49:55 UTC\fP
  229041. .INDENT 2.0
  229042. .IP \(bu 2
  229043. 331230ea4f Merge pull request \fI\%#27343\fP from cachedout/issue_26889
  229044. .IP \(bu 2
  229045. 2b648e51af Close io loop before deleting attribute
  229046. .UNINDENT
  229047. .IP \(bu 2
  229048. \fBPR\fP \fI\%#27337\fP: (\fI\%rallytime\fP) [2015.8] Fixup salt\-cloud logging
  229049. @ \fI2015\-09\-24 13:49:17 UTC\fP
  229050. .INDENT 2.0
  229051. .IP \(bu 2
  229052. cd82ead005 Merge pull request \fI\%#27337\fP from rallytime/cloud\-logging\-eight
  229053. .IP \(bu 2
  229054. ed18384108 Merge pull request \fI\%#7\fP from jtand/cloud\-logging\-eight
  229055. .INDENT 2.0
  229056. .IP \(bu 2
  229057. a6c1d0b408 Fixed a bug where logging_command wasnt set as a key in a couple spots
  229058. .UNINDENT
  229059. .IP \(bu 2
  229060. 8bb7cb7ff4 Use correct indexes
  229061. .IP \(bu 2
  229062. c3483002b0 [2015.8] Fixup salt\-cloud logging
  229063. .UNINDENT
  229064. .IP \(bu 2
  229065. \fBPR\fP \fI\%#27332\fP: (\fI\%terminalmage\fP) Adjust dockerng/dockerio docstrings
  229066. @ \fI2015\-09\-24 13:45:34 UTC\fP
  229067. .INDENT 2.0
  229068. .IP \(bu 2
  229069. b2f8418ffc Merge pull request \fI\%#27332\fP from terminalmage/adjust\-dockerng\-docstring
  229070. .IP \(bu 2
  229071. bdbf4d8e5c Add deprecation notice to dockerio state module
  229072. .IP \(bu 2
  229073. 17829ab38d Fix name of dockerng module in dockerio docstring
  229074. .IP \(bu 2
  229075. ed5ae75180 Adjust dockerng docstrings
  229076. .UNINDENT
  229077. .IP \(bu 2
  229078. \fBPR\fP \fI\%#27353\fP: (\fI\%cachedout\fP) Fix case where var not set in config
  229079. @ \fI2015\-09\-23 21:45:32 UTC\fP
  229080. .INDENT 2.0
  229081. .IP \(bu 2
  229082. ac9e6c2532 Merge pull request \fI\%#27353\fP from cachedout/fix_retry_get
  229083. .IP \(bu 2
  229084. ea286e1874 Fix case where var not set in config
  229085. .UNINDENT
  229086. .IP \(bu 2
  229087. \fBISSUE\fP \fI\%#21390\fP: (\fI\%fyatzeck\fP) Having trouble with GCE cloud profile assigning static IP and enabling IP forward (refs: \fI\%#27350\fP)
  229088. .IP \(bu 2
  229089. \fBPR\fP \fI\%#27350\fP: (\fI\%rallytime\fP) Allow IP\-forwarding in GCE driver
  229090. @ \fI2015\-09\-23 21:36:41 UTC\fP
  229091. .INDENT 2.0
  229092. .IP \(bu 2
  229093. 3f6b06116f Merge pull request \fI\%#27350\fP from rallytime/fix\-21390
  229094. .IP \(bu 2
  229095. 2bf566d934 Allow IP\-forwarding in GCE driver
  229096. .IP \(bu 2
  229097. 484015a7a3 Added version tag for ex_disk_type option
  229098. .IP \(bu 2
  229099. a71ebc97b2 Allow use of rst header links by separating options out from yaml example
  229100. .UNINDENT
  229101. .IP \(bu 2
  229102. \fBISSUE\fP \fI\%#27103\fP: (\fI\%twangboy\fP) Salt\-Minion doesn\(aqt display logs for new processes with multiprocessing on (refs: \fI\%#27305\fP)
  229103. .IP \(bu 2
  229104. \fBPR\fP \fI\%#27305\fP: (\fI\%cachedout\fP) Re\-init logging system on Windows when using multiprocessing
  229105. @ \fI2015\-09\-23 15:32:32 UTC\fP
  229106. .INDENT 2.0
  229107. .IP \(bu 2
  229108. 6f3da863fc Merge pull request \fI\%#27305\fP from cachedout/issue_27103
  229109. .IP \(bu 2
  229110. 7a7492d186 Fix typo
  229111. .IP \(bu 2
  229112. 22c653482c Re\-init logging system on Windows when using multiprocessing
  229113. .UNINDENT
  229114. .IP \(bu 2
  229115. \fBPR\fP \fI\%#27331\fP: (\fI\%terminalmage\fP) dockerng: Allow both cmd and command to be used to specify command (refs: \fI\%#27459\fP, \fI\%#27444\fP)
  229116. @ \fI2015\-09\-23 15:27:43 UTC\fP
  229117. .INDENT 2.0
  229118. .IP \(bu 2
  229119. 684e33aeb2 Merge pull request \fI\%#27331\fP from terminalmage/dockerng\-cmd
  229120. .IP \(bu 2
  229121. 7d4eaac8ae dockerng: Allow both cmd and command to be used to specify command
  229122. .UNINDENT
  229123. .IP \(bu 2
  229124. \fBPR\fP \fI\%#27327\fP: (\fI\%isbm\fP) Fix a typo in the RPM output
  229125. @ \fI2015\-09\-23 14:27:42 UTC\fP
  229126. .INDENT 2.0
  229127. .IP \(bu 2
  229128. a3f4fa1106 Merge pull request \fI\%#27327\fP from isbm/isbm\-pkg\-info\-typofix
  229129. .IP \(bu 2
  229130. 7912f8c13b Fix typo
  229131. .UNINDENT
  229132. .IP \(bu 2
  229133. \fBPR\fP \fI\%#27312\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229134. @ \fI2015\-09\-22 22:52:14 UTC\fP
  229135. .INDENT 2.0
  229136. .IP \(bu 2
  229137. a789303d75 Merge pull request \fI\%#27312\fP from basepi/merge\-forward\-2015.8
  229138. .IP \(bu 2
  229139. 647080d064 Add missing import
  229140. .IP \(bu 2
  229141. 95e70f0bef Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229142. .IP \(bu 2
  229143. ca4597b93a Merge pull request \fI\%#27310\fP from basepi/merge\-forward\-2015.5
  229144. .INDENT 2.0
  229145. .IP \(bu 2
  229146. 7b75e4aed1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  229147. .IP \(bu 2
  229148. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  229149. .INDENT 2.0
  229150. .IP \(bu 2
  229151. 3d28307a00 2014.7 \-> 2014.7.0
  229152. .UNINDENT
  229153. .UNINDENT
  229154. .IP \(bu 2
  229155. 982c21c79f Merge pull request \fI\%#27308\fP from terminalmage/fix\-refresh_db\-regression
  229156. .INDENT 2.0
  229157. .IP \(bu 2
  229158. 77686fb7ce Fix refresh_db regression in yumpkg.py
  229159. .UNINDENT
  229160. .IP \(bu 2
  229161. 775a4f9ad0 Merge pull request \fI\%#27286\fP from terminalmage/return_retry_timer
  229162. .INDENT 2.0
  229163. .IP \(bu 2
  229164. 540a7dfcf1 Add default values for new minion config options
  229165. .IP \(bu 2
  229166. 453b883820 Add a configurable timer for minion return retries
  229167. .UNINDENT
  229168. .IP \(bu 2
  229169. 02482c0572 Merge pull request \fI\%#27278\fP from rallytime/bp\-27256
  229170. .INDENT 2.0
  229171. .IP \(bu 2
  229172. 1beddf6311 Fix error handling in salt.modules.file.statvfs
  229173. .UNINDENT
  229174. .IP \(bu 2
  229175. e36c019c37 Merge pull request \fI\%#27277\fP from rallytime/bp\-27230
  229176. .INDENT 2.0
  229177. .IP \(bu 2
  229178. 3ce77db1bc Fix typo in AWS doc config
  229179. .UNINDENT
  229180. .IP \(bu 2
  229181. b22286476e Merge pull request \fI\%#27253\fP from jfindlay/version.2015.5
  229182. .INDENT 2.0
  229183. .IP \(bu 2
  229184. 967e3bb72a 2015.5 \-> 2015.5.0
  229185. .UNINDENT
  229186. .IP \(bu 2
  229187. 51a0193b54 Merge pull request \fI\%#27244\fP from garethgreenaway/ec2_create_snapshot_no_return_data_exception
  229188. .INDENT 2.0
  229189. .IP \(bu 2
  229190. 820fd576b9 Fixing the cause when the r_data from aws.query is empty and an exception happens when looking for the snapshotID
  229191. .UNINDENT
  229192. .IP \(bu 2
  229193. 26540f15bc Merge pull request \fI\%#27231\fP from jfindlay/cronchange
  229194. .INDENT 2.0
  229195. .IP \(bu 2
  229196. 1e335297e2 only write cron file if it is changed
  229197. .UNINDENT
  229198. .UNINDENT
  229199. .IP \(bu 2
  229200. \fBPR\fP \fI\%#27303\fP: (\fI\%jacobhammons\fP) Updated module doc index using \fI\%https://github.com/saltstack/salt/pull\fP…
  229201. @ \fI2015\-09\-22 19:29:04 UTC\fP
  229202. .INDENT 2.0
  229203. .IP \(bu 2
  229204. c3b690273b Merge pull request \fI\%#27303\fP from jacobhammons/ref\-updates
  229205. .IP \(bu 2
  229206. 7ac98a03b6 Updated module doc index using \fI\%https://github.com/saltstack/salt/pull/27203\fP
  229207. .UNINDENT
  229208. .IP \(bu 2
  229209. \fBISSUE\fP \fI\%#27081\fP: (\fI\%TheBigBear\fP) winrepo \- SSLError: [Errno 1] _ssl.c:510: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed (refs: \fI\%#27301\fP)
  229210. .IP \(bu 2
  229211. \fBPR\fP \fI\%#27301\fP: (\fI\%twangboy\fP) Pass ca_bundle for windows (fixes SSL Error)
  229212. @ \fI2015\-09\-22 19:00:45 UTC\fP
  229213. .INDENT 2.0
  229214. .IP \(bu 2
  229215. aaa2db9943 Merge pull request \fI\%#27301\fP from twangboy/fix_27081
  229216. .IP \(bu 2
  229217. 5c4f5f8944 Changed windows gate to check for verify_ssl option
  229218. .IP \(bu 2
  229219. e2fe5a60b5 Pass ca_bundle for windows (fixes SSL Error)
  229220. .UNINDENT
  229221. .IP \(bu 2
  229222. \fBPR\fP \fI\%#27300\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27287\fP to 2015.8
  229223. @ \fI2015\-09\-22 16:59:07 UTC\fP
  229224. .INDENT 2.0
  229225. .IP \(bu 2
  229226. \fBPR\fP \fI\%#27287\fP: (\fI\%rhealitycheck\fP) Mongo returners patch 1 (refs: \fI\%#27300\fP)
  229227. .IP \(bu 2
  229228. 55f4050146 Merge pull request \fI\%#27300\fP from rallytime/bp\-27287
  229229. .IP \(bu 2
  229230. e49a6dc449 Update mongo_return.py
  229231. .IP \(bu 2
  229232. 63153322b9 Update mongo_future_return.py
  229233. .UNINDENT
  229234. .IP \(bu 2
  229235. \fBPR\fP \fI\%#27288\fP: (\fI\%rallytime\fP) Filter on \(aqname\(aq, not \(aqid\(aq, when listing images
  229236. @ \fI2015\-09\-21 22:37:26 UTC\fP
  229237. .INDENT 2.0
  229238. .IP \(bu 2
  229239. d96462af48 Merge pull request \fI\%#27288\fP from rallytime/do\-cleanup
  229240. .IP \(bu 2
  229241. 6e16fad760 Use name in all places, not id.
  229242. .IP \(bu 2
  229243. 9b34542cb0 Filter on \(aqname\(aq, not \(aqid\(aq, when listing images
  229244. .UNINDENT
  229245. .IP \(bu 2
  229246. \fBPR\fP \fI\%#27283\fP: (\fI\%justinta\fP) __grains__[\(aqosrelease\(aq] returns a string
  229247. @ \fI2015\-09\-21 19:18:44 UTC\fP
  229248. .INDENT 2.0
  229249. .IP \(bu 2
  229250. 688f24e9e4 Merge pull request \fI\%#27283\fP from jtand/yumpkg_yum_fix
  229251. .IP \(bu 2
  229252. b73f5289b4 __grains__[\(aqosrelease\(aq] returns a string. Cast to int for correct comparison
  229253. .UNINDENT
  229254. .IP \(bu 2
  229255. \fBISSUE\fP \fI\%#27217\fP: (\fI\%nasenbaer13\fP) Gitfs cleans up wrong directories (refs: \fI\%#27218\fP, \fI\%#27477\fP, \fI\%#27276\fP, \fI\%#27382\fP)
  229256. .IP \(bu 2
  229257. \fBPR\fP \fI\%#27276\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27218\fP to 2015.8
  229258. @ \fI2015\-09\-21 19:05:54 UTC\fP
  229259. .INDENT 2.0
  229260. .IP \(bu 2
  229261. \fBPR\fP \fI\%#27218\fP: (\fI\%nasenbaer13\fP) fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs) (refs: \fI\%#27276\fP)
  229262. .IP \(bu 2
  229263. 78d44a5c74 Merge pull request \fI\%#27276\fP from rallytime/bp\-27218
  229264. .IP \(bu 2
  229265. 8c0991d527 fixes \fI\%#27217\fP clear_old_remotes clears wrong directory (gitfs)
  229266. .UNINDENT
  229267. .IP \(bu 2
  229268. \fBPR\fP \fI\%#27275\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27213\fP to 2015.8
  229269. @ \fI2015\-09\-21 19:05:18 UTC\fP
  229270. .INDENT 2.0
  229271. .IP \(bu 2
  229272. \fBPR\fP \fI\%#27213\fP: (\fI\%macgyver13\fP) Make get_event compatible with salt/client (refs: \fI\%#27275\fP)
  229273. .IP \(bu 2
  229274. d5ce81e8e7 Merge pull request \fI\%#27275\fP from rallytime/bp\-27213
  229275. .IP \(bu 2
  229276. 5d4c90c479 Make get_event compatible with salt/client
  229277. .UNINDENT
  229278. .IP \(bu 2
  229279. \fBPR\fP \fI\%#27274\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27272\fP to 2015.8
  229280. @ \fI2015\-09\-21 18:54:48 UTC\fP
  229281. .INDENT 2.0
  229282. .IP \(bu 2
  229283. \fBPR\fP \fI\%#27272\fP: (\fI\%techhat\fP) Make sure list_nodes_full contains a name attribute (refs: \fI\%#27274\fP)
  229284. .IP \(bu 2
  229285. 2be21d6451 Merge pull request \fI\%#27274\fP from rallytime/bp\-27272
  229286. .IP \(bu 2
  229287. f3ea3259a5 Make sure list_nodes_full contains a name attribute
  229288. .UNINDENT
  229289. .IP \(bu 2
  229290. \fBPR\fP \fI\%#27271\fP: (\fI\%isbm\fP) Bugfix: crash on token authentication via API
  229291. @ \fI2015\-09\-21 15:53:09 UTC\fP
  229292. .INDENT 2.0
  229293. .IP \(bu 2
  229294. c0943dd4d1 Merge pull request \fI\%#27271\fP from isbm/isbm\-bufix\-27270
  229295. .IP \(bu 2
  229296. fc524c17b9 Reduce the criteria that would match empty iterables as well as None or False values
  229297. .IP \(bu 2
  229298. 3152af78b5 Fix the crash on token auth via API (\fI\%http://git.io/vn4tx\fP)
  229299. .UNINDENT
  229300. .IP \(bu 2
  229301. \fBISSUE\fP \fI\%#19947\fP: (\fI\%gczuczy\fP) Unable to supply provisioning script to softlayer create() (refs: \fI\%#27251\fP)
  229302. .IP \(bu 2
  229303. \fBPR\fP \fI\%#27251\fP: (\fI\%rallytime\fP) Add support for post_uri in SoftLayer cloud drivers
  229304. @ \fI2015\-09\-21 15:43:16 UTC\fP
  229305. .INDENT 2.0
  229306. .IP \(bu 2
  229307. b11ce6ac2a Merge pull request \fI\%#27251\fP from rallytime/fix\-19947
  229308. .IP \(bu 2
  229309. aafb776808 Add support for post_uri in SoftLayer cloud drivers
  229310. .UNINDENT
  229311. .IP \(bu 2
  229312. \fBISSUE\fP \fI\%#21879\fP: (\fI\%bechtoldt\fP) Reference pages in documentation are outdated again (refs: \fI\%#27260\fP, \fI\%#25019\fP, \fI\%#21880\fP)
  229313. .IP \(bu 2
  229314. \fBISSUE\fP \fI\%#19262\fP: (\fI\%bechtoldt\fP) salt.pillar.file_tree doesn\(aqt appear in the documentation (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229315. .IP \(bu 2
  229316. \fBPR\fP \fI\%#27260\fP: (\fI\%bechtoldt\fP) add missing module doc references
  229317. @ \fI2015\-09\-21 05:48:38 UTC\fP
  229318. .INDENT 2.0
  229319. .IP \(bu 2
  229320. \fBPR\fP \fI\%#25019\fP: (\fI\%bechtoldt\fP) add missing module documentation to references (refs: \fI\%#27260\fP)
  229321. .IP \(bu 2
  229322. \fBPR\fP \fI\%#24421\fP: (\fI\%bechtoldt\fP) add missing module documentation (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229323. .IP \(bu 2
  229324. \fBPR\fP \fI\%#21880\fP: (\fI\%bechtoldt\fP) update references, fixes \fI\%#21879\fP (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229325. .IP \(bu 2
  229326. \fBPR\fP \fI\%#20039\fP: (\fI\%bechtoldt\fP) completing some doc references (refs: \fI\%#27260\fP, \fI\%#25019\fP)
  229327. .IP \(bu 2
  229328. de6e5abe6c Merge pull request \fI\%#27260\fP from bechtoldt/missing_refs
  229329. .IP \(bu 2
  229330. 3a7d31a91c add missing module references
  229331. .UNINDENT
  229332. .IP \(bu 2
  229333. \fBPR\fP \fI\%#27254\fP: (\fI\%jfindlay\fP) 2015.2,2015.8,Beryllium \-> 2015.8.0
  229334. @ \fI2015\-09\-18 23:44:46 UTC\fP
  229335. .INDENT 2.0
  229336. .IP \(bu 2
  229337. 1a32b9f778 Merge pull request \fI\%#27254\fP from jfindlay/version.2015.8
  229338. .IP \(bu 2
  229339. 8ea15f498e 2015.2,2015.8,Beryllium \-> 2015.8.0
  229340. .UNINDENT
  229341. .IP \(bu 2
  229342. \fBISSUE\fP \fI\%#25079\fP: (\fI\%jondonas\fP) Salt\-cloud does not check for duplicate ssh keys when using provider such as DigitalOcean (refs: \fI\%#27245\fP)
  229343. .IP \(bu 2
  229344. \fBPR\fP \fI\%#27245\fP: (\fI\%rallytime\fP) If two ssh keynames are found in DigitalOcean, abort and warn the user.
  229345. @ \fI2015\-09\-18 21:42:36 UTC\fP
  229346. .INDENT 2.0
  229347. .IP \(bu 2
  229348. f3a847823b Merge pull request \fI\%#27245\fP from rallytime/fix\-25079
  229349. .IP \(bu 2
  229350. 4b0f7cce1d If two ssh keynames are found in DigitalOcean, abort.
  229351. .UNINDENT
  229352. .IP \(bu 2
  229353. \fBISSUE\fP \fI\%#27065\fP: (\fI\%lorengordon\fP) 2015.8.0: yumpkg reporting "Unexpected osrelease grain \(aq6.7\(aq" (refs: \fI\%#27241\fP)
  229354. .IP \(bu 2
  229355. \fBPR\fP \fI\%#27241\fP: (\fI\%jfindlay\fP) osrelease is only an integer for fedora
  229356. @ \fI2015\-09\-18 21:40:50 UTC\fP
  229357. .INDENT 2.0
  229358. .IP \(bu 2
  229359. e4a5b004ae Merge pull request \fI\%#27241\fP from jfindlay/yumwarn
  229360. .IP \(bu 2
  229361. 1f7570250f osrelease is only an integer for fedora
  229362. .UNINDENT
  229363. .IP \(bu 2
  229364. \fBPR\fP \fI\%#27234\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229365. @ \fI2015\-09\-18 20:41:38 UTC\fP
  229366. .INDENT 2.0
  229367. .IP \(bu 2
  229368. f8e71f6d7d Merge pull request \fI\%#27234\fP from basepi/merge\-forward\-2015.8
  229369. .IP \(bu 2
  229370. be2b0fc497 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229371. .INDENT 2.0
  229372. .IP \(bu 2
  229373. 579f375f74 Merge pull request \fI\%#27233\fP from basepi/release.notes.stubs
  229374. .INDENT 2.0
  229375. .IP \(bu 2
  229376. f4563ea9b7 Add stub release notes for 2015.5.6
  229377. .UNINDENT
  229378. .IP \(bu 2
  229379. f5a322e3f2 Merge pull request \fI\%#27208\fP from basepi/nop.state.25423
  229380. .INDENT 2.0
  229381. .IP \(bu 2
  229382. 9414b05b2c Add test.nop example
  229383. .IP \(bu 2
  229384. a84ce67b8f Add test.nop state
  229385. .UNINDENT
  229386. .IP \(bu 2
  229387. 59a07cae68 Merge pull request \fI\%#27201\fP from jfindlay/sshhash
  229388. .INDENT 2.0
  229389. .IP \(bu 2
  229390. 1b620b77cd rename hash_host arg to hash_known_hosts
  229391. .IP \(bu 2
  229392. 12f14ae37c update hash_known_hosts docs in ssh module
  229393. .UNINDENT
  229394. .IP \(bu 2
  229395. 560545c4c5 Merge pull request \fI\%#27214\fP from jacksontj/2015.5
  229396. .INDENT 2.0
  229397. .IP \(bu 2
  229398. e7526bdb44 Correctly support https, port 443 is not a requirement
  229399. .UNINDENT
  229400. .IP \(bu 2
  229401. 7a34c7742d Merge pull request \fI\%#27172\fP from rallytime/bp\-27150
  229402. .INDENT 2.0
  229403. .IP \(bu 2
  229404. 0d7ee4b209 Merge config values from master.d/minion.d conf files
  229405. .UNINDENT
  229406. .UNINDENT
  229407. .UNINDENT
  229408. .IP \(bu 2
  229409. \fBPR\fP \fI\%#27240\fP: (\fI\%isbm\fP) Backport of the fix of \(aqpkg.info*\(aq for Beryllium
  229410. @ \fI2015\-09\-18 20:02:15 UTC\fP
  229411. .INDENT 2.0
  229412. .IP \(bu 2
  229413. 2d6c75cbd7 Merge pull request \fI\%#27240\fP from isbm/isbm\-pkg.info\-tz\-bugfix\-backport\-2015.8
  229414. .IP \(bu 2
  229415. 19a361851a Return install date only if possible.
  229416. .IP \(bu 2
  229417. ff857bc8aa Return RPM package time in UTC timezone
  229418. .IP \(bu 2
  229419. eaa0f370bf Remove time fraction and return ISO in UTC
  229420. .IP \(bu 2
  229421. ce9570fce6 Return UTC timestamp for modification of path.
  229422. .UNINDENT
  229423. .IP \(bu 2
  229424. \fBISSUE\fP \fI\%#27222\fP: (\fI\%pprkut\fP) Support firewalld zone configuration in network.managed state for rh7 systems (refs: \fI\%#27223\fP)
  229425. .IP \(bu 2
  229426. \fBPR\fP \fI\%#27223\fP: (\fI\%pprkut\fP) Support firewalld per interface zone config on rh7 systems
  229427. @ \fI2015\-09\-18 19:44:45 UTC\fP
  229428. .INDENT 2.0
  229429. .IP \(bu 2
  229430. 80a45b74ed Merge pull request \fI\%#27223\fP from M2Mobi/zone
  229431. .IP \(bu 2
  229432. 48023669e7 Support permanent per interface firewalld zone configuration on rh7 systems.
  229433. .IP \(bu 2
  229434. \fBPR\fP \fI\%#27239\fP: (\fI\%bechtoldt\fP) test \fI\%#27238\fP prevent keyerror when partition doesn\(aqt exist (refs: \fI\%#27238\fP)
  229435. .UNINDENT
  229436. .IP \(bu 2
  229437. \fBPR\fP \fI\%#27238\fP: (\fI\%bechtoldt\fP) salt.modules.disk.percent() throws KeyError when partition doesn\(aqt exist (refs: \fI\%#27239\fP)
  229438. @ \fI2015\-09\-18 19:37:00 UTC\fP
  229439. .INDENT 2.0
  229440. .IP \(bu 2
  229441. 652b2998af Merge pull request \fI\%#27238\fP from bechtoldt/fix_disk_percent_keyerror
  229442. .IP \(bu 2
  229443. 0511f611bb prevent KeyError by checking whether partition even exists
  229444. .UNINDENT
  229445. .IP \(bu 2
  229446. \fBPR\fP \fI\%#27232\fP: (\fI\%basepi\fP) [2015.8] Add stub release notes for 2015.8.1
  229447. @ \fI2015\-09\-18 16:53:01 UTC\fP
  229448. .INDENT 2.0
  229449. .IP \(bu 2
  229450. 253ac5e0c3 Merge pull request \fI\%#27232\fP from basepi/release.notes.stubs
  229451. .IP \(bu 2
  229452. 25410706ee Add stub release notes for 2015.8.1
  229453. .UNINDENT
  229454. .IP \(bu 2
  229455. \fBISSUE\fP \fI\%#24573\fP: (\fI\%bailsman\fP) cloud.profile RuntimeError: dictionary changed size during iteration (refs: \fI\%#27199\fP)
  229456. .IP \(bu 2
  229457. \fBPR\fP \fI\%#27199\fP: (\fI\%rallytime\fP) Avoid RunTimeError (dictionary changed size during iteration) with keys()
  229458. @ \fI2015\-09\-18 15:44:27 UTC\fP
  229459. .INDENT 2.0
  229460. .IP \(bu 2
  229461. c542cd49d0 Merge pull request \fI\%#27199\fP from rallytime/fix\-24573
  229462. .IP \(bu 2
  229463. 6b2a00e947 Avoid RunTimeError (dictionary changed size during iteration) with keys()
  229464. .UNINDENT
  229465. .IP \(bu 2
  229466. \fBPR\fP \fI\%#27206\fP: (\fI\%rallytime\fP) Don\(aqt repeat GCE setup instructions, and make the use of .json files clearer
  229467. @ \fI2015\-09\-18 14:38:40 UTC\fP
  229468. .INDENT 2.0
  229469. .IP \(bu 2
  229470. 6b79ad69a9 Merge pull request \fI\%#27206\fP from rallytime/gce\-doc\-cleanup
  229471. .IP \(bu 2
  229472. cced6e9031 Don\(aqt repeat GCE setup instructions, and make the use of .json files clearer
  229473. .UNINDENT
  229474. .IP \(bu 2
  229475. \fBPR\fP \fI\%#27210\fP: (\fI\%rallytime\fP) Refactor some digital ocean functions
  229476. @ \fI2015\-09\-18 14:38:01 UTC\fP
  229477. .INDENT 2.0
  229478. .IP \(bu 2
  229479. 1d022eb5de Merge pull request \fI\%#27210\fP from rallytime/do\-clean\-up
  229480. .IP \(bu 2
  229481. 808a5b3b81 Make sure we set the full data to the ret variable
  229482. .IP \(bu 2
  229483. 9b635004e2 Refactor some digital_ocean functions to help simplify the driver
  229484. .UNINDENT
  229485. .IP \(bu 2
  229486. \fBPR\fP \fI\%#27197\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229487. @ \fI2015\-09\-17 19:53:22 UTC\fP
  229488. .INDENT 2.0
  229489. .IP \(bu 2
  229490. 8c204a45ab Merge pull request \fI\%#27197\fP from basepi/merge\-forward\-2015.8
  229491. .IP \(bu 2
  229492. 2c2a5f85ac Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229493. .INDENT 2.0
  229494. .IP \(bu 2
  229495. e956d88f5f Merge pull request \fI\%#27194\fP from rallytime/bp\-27180
  229496. .INDENT 2.0
  229497. .IP \(bu 2
  229498. 327d343fef file copy ret result True if no change in test mode
  229499. .UNINDENT
  229500. .IP \(bu 2
  229501. a02d043309 Merge pull request \fI\%#27176\fP from basepi/merge\-forward\-2015.5
  229502. .INDENT 2.0
  229503. .IP \(bu 2
  229504. 66f4641be3 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  229505. .IP \(bu 2
  229506. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  229507. .INDENT 2.0
  229508. .IP \(bu 2
  229509. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  229510. .UNINDENT
  229511. .IP \(bu 2
  229512. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  229513. .INDENT 2.0
  229514. .IP \(bu 2
  229515. 507fb04683 Issue warning that some log levels may contain sensitive data
  229516. .UNINDENT
  229517. .IP \(bu 2
  229518. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  229519. .IP \(bu 2
  229520. c0689e3215 Replaced password with redacted when displayed
  229521. .UNINDENT
  229522. .IP \(bu 2
  229523. de2027426e Merge pull request \fI\%#27170\fP from rallytime/gce\-docs
  229524. .INDENT 2.0
  229525. .IP \(bu 2
  229526. a07db909bd Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  229527. .UNINDENT
  229528. .IP \(bu 2
  229529. 28cfdfd067 Merge pull request \fI\%#27167\fP from rallytime/bp\-27148
  229530. .INDENT 2.0
  229531. .IP \(bu 2
  229532. d12be52355 Pass filepointers to the serialize load functions.
  229533. .UNINDENT
  229534. .IP \(bu 2
  229535. 4495f4f4d0 Merge pull request \fI\%#27168\fP from techhat/gateimpacket
  229536. .INDENT 2.0
  229537. .IP \(bu 2
  229538. cc448bfdc1 Add further gating of impacket library
  229539. .UNINDENT
  229540. .IP \(bu 2
  229541. 3e5ef0dc30 Merge pull request \fI\%#27166\fP from rallytime/fix\-27100
  229542. .INDENT 2.0
  229543. .IP \(bu 2
  229544. 50fb3a489a Allow a full\-query for EC2, even if there are no profiles defined
  229545. .UNINDENT
  229546. .IP \(bu 2
  229547. f1c9de7ed9 Merge pull request \fI\%#27162\fP from rallytime/softlayer\-service
  229548. .INDENT 2.0
  229549. .IP \(bu 2
  229550. d281068c70 Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  229551. .UNINDENT
  229552. .IP \(bu 2
  229553. 59e9dfd8de Merge pull request \fI\%#27149\fP from twangboy/fix_27133
  229554. .INDENT 2.0
  229555. .IP \(bu 2
  229556. 7992b7e20a Fixed some tests... hopefully...
  229557. .IP \(bu 2
  229558. d4c8e30f5d Fixed problem with add/remove path
  229559. .UNINDENT
  229560. .IP \(bu 2
  229561. 097fcd1017 Merge pull request \fI\%#27147\fP from rallytime/fix\-11669
  229562. .INDENT 2.0
  229563. .IP \(bu 2
  229564. 55312ea03f Provide a more friendly error message.
  229565. .IP \(bu 2
  229566. 36555856c7 Enforce bounds in the GCE Regex
  229567. .UNINDENT
  229568. .IP \(bu 2
  229569. f5c3f157dd Merge pull request \fI\%#27128\fP from eguven/2015.5\-fix\-test\-diff
  229570. .INDENT 2.0
  229571. .IP \(bu 2
  229572. ec2d68a84a don\(aqt show diff for test run if show_diff=False
  229573. .UNINDENT
  229574. .IP \(bu 2
  229575. 088b1dbb3e Merge pull request \fI\%#27116\fP from jacobhammons/release\-docs\-2015.5
  229576. .INDENT 2.0
  229577. .IP \(bu 2
  229578. 6e323b6dd3 Update latest to 2015.8, 2015.5 is now previous Assorted style and minor updates
  229579. .UNINDENT
  229580. .IP \(bu 2
  229581. 440855b182 Merge pull request \fI\%#27033\fP from jfindlay/n0ne
  229582. .INDENT 2.0
  229583. .IP \(bu 2
  229584. 3334b9d548 fix comment and unit test for reg state
  229585. .IP \(bu 2
  229586. 391a09d5ac update reg state unit tests
  229587. .IP \(bu 2
  229588. ebbf2b05ca Fixed reg state module for None, 0, and \(aq\(aq values
  229589. .UNINDENT
  229590. .IP \(bu 2
  229591. 35fc74132a Merge pull request \fI\%#26942\fP from Arabus/fix\-docker.run
  229592. .INDENT 2.0
  229593. .IP \(bu 2
  229594. e61e1de1f5 Fixes value typo for dockerio.loaded state
  229595. .IP \(bu 2
  229596. 39fa11b696 further linting
  229597. .IP \(bu 2
  229598. 4aec37397c Further Linting to quiet the linter
  229599. .IP \(bu 2
  229600. 7eff8ad070 Code Linting and cmd call fix
  229601. .IP \(bu 2
  229602. a51676e0eb Fixes \fI\%#17088\fP olyif and unless should run on the host
  229603. .IP \(bu 2
  229604. d0c6128b8f Fixes \fI\%#17088\fP retcode now returns True or False based on return status
  229605. .IP \(bu 2
  229606. 8b2e7cc4f5 Syntax clarification
  229607. .UNINDENT
  229608. .UNINDENT
  229609. .UNINDENT
  229610. .IP \(bu 2
  229611. \fBPR\fP \fI\%#27195\fP: (\fI\%jacobhammons\fP) Fixed sphinx / latex build warnings and errors
  229612. @ \fI2015\-09\-17 17:28:37 UTC\fP
  229613. .INDENT 2.0
  229614. .IP \(bu 2
  229615. 430c48c5ea Merge pull request \fI\%#27195\fP from jacobhammons/doc\-build
  229616. .IP \(bu 2
  229617. fad87e34a2 Fixed lint errors
  229618. .IP \(bu 2
  229619. e56f02b025 re\-add cheatsheet do\-over
  229620. .IP \(bu 2
  229621. 60a8330561 re\-added cheatsheet.tex
  229622. .IP \(bu 2
  229623. f7a9e25d52 Fixed sphinx / latex build warnings and errors Added missing modules to contents
  229624. .UNINDENT
  229625. .IP \(bu 2
  229626. \fBPR\fP \fI\%#27182\fP: (\fI\%bernieke\fP) fix restart_on_error
  229627. @ \fI2015\-09\-17 17:24:01 UTC\fP
  229628. .INDENT 2.0
  229629. .IP \(bu 2
  229630. 8f8e75c5ff Merge pull request \fI\%#27182\fP from Awingu/2015.8
  229631. .IP \(bu 2
  229632. 693b81f7e4 fix restart_on_error \fI\%#27127\fP
  229633. .UNINDENT
  229634. .IP \(bu 2
  229635. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#27394\fP, \fI\%#27163\fP)
  229636. .IP \(bu 2
  229637. \fBPR\fP \fI\%#27163\fP: (\fI\%terminalmage\fP) Workaround upstream tornado bug affecting redirects (refs: \fI\%#27394\fP)
  229638. @ \fI2015\-09\-17 16:09:01 UTC\fP
  229639. .INDENT 2.0
  229640. .IP \(bu 2
  229641. 97d2a5fddc Merge pull request \fI\%#27163\fP from terminalmage/issue27093
  229642. .IP \(bu 2
  229643. 80b396db73 Handle potential ValueError when checking content length
  229644. .IP \(bu 2
  229645. a89c987943 Remove unused import
  229646. .IP \(bu 2
  229647. 469e18f74c Workaround upstream tornado bug affecting redirects
  229648. .IP \(bu 2
  229649. f2a562ac60 Add salt.utils.files.rename() for cross\-platform renaming
  229650. .UNINDENT
  229651. .IP \(bu 2
  229652. \fBISSUE\fP \fI\%#19954\fP: (\fI\%gczuczy\fP) Multiple disks on softlayer (refs: \fI\%#27173\fP)
  229653. .IP \(bu 2
  229654. \fBPR\fP \fI\%#27177\fP: (\fI\%rallytime\fP) Remove note \- incorrect info
  229655. @ \fI2015\-09\-17 01:34:04 UTC\fP
  229656. .INDENT 2.0
  229657. .IP \(bu 2
  229658. \fBPR\fP \fI\%#27173\fP: (\fI\%rallytime\fP) Add the ability to specify multiple disks on the SoftLayer driver (refs: \fI\%#27177\fP)
  229659. .IP \(bu 2
  229660. 65c59ec2ea Merge pull request \fI\%#27177\fP from rallytime/fix\-19954
  229661. .IP \(bu 2
  229662. 531b44243d Remove note \- incorrect info
  229663. .UNINDENT
  229664. .IP \(bu 2
  229665. \fBISSUE\fP \fI\%#19954\fP: (\fI\%gczuczy\fP) Multiple disks on softlayer (refs: \fI\%#27173\fP)
  229666. .IP \(bu 2
  229667. \fBPR\fP \fI\%#27173\fP: (\fI\%rallytime\fP) Add the ability to specify multiple disks on the SoftLayer driver (refs: \fI\%#27177\fP)
  229668. @ \fI2015\-09\-17 00:32:57 UTC\fP
  229669. .INDENT 2.0
  229670. .IP \(bu 2
  229671. cbb7e7f1a5 Merge pull request \fI\%#27173\fP from rallytime/fix\-19954
  229672. .IP \(bu 2
  229673. 45c6aabde9 DeviceID \(aq1\(aq is reserved for the SWAP disk; let\(aqs skip it.
  229674. .IP \(bu 2
  229675. 54e104cf5b Don\(aqt stacktrace if local_disk isn\(aqt set
  229676. .IP \(bu 2
  229677. fe74d203f5 Add the ability to specify multiple disks on the SoftLayer driver
  229678. .UNINDENT
  229679. .IP \(bu 2
  229680. \fBISSUE\fP \fI\%#22724\fP: (\fI\%ty2u\fP) digital_ocean_v2.py doesn\(aqt restore snapshot (refs: \fI\%#26824\fP)
  229681. .IP \(bu 2
  229682. \fBPR\fP \fI\%#27164\fP: (\fI\%rallytime\fP) Make sure changes from \fI\%#26824\fP to digital_ocean_v2.py driver make it to digital_ocean.py in 2015.8
  229683. @ \fI2015\-09\-16 18:55:17 UTC\fP
  229684. .INDENT 2.0
  229685. .IP \(bu 2
  229686. \fBPR\fP \fI\%#26824\fP: (\fI\%systembell\fP) [salt\-cloud] Fix creating droplet from snapshot in digital_ocean provider (refs: \fI\%#27164\fP)
  229687. .IP \(bu 2
  229688. 0e04588d58 Merge pull request \fI\%#27164\fP from rallytime/add\-26824\-changes\-to\-2015.8
  229689. .IP \(bu 2
  229690. a44bd763dd Make sure changes from \fI\%#26824\fP to digital_ocean_v2.py driver make it to digital_ocean.py in 2015.8
  229691. .UNINDENT
  229692. .IP \(bu 2
  229693. \fBISSUE\fP \fI\%#19853\fP: (\fI\%ksalman\fP) master needs a way to invalidate grains on the minion (refs: \fI\%#27143\fP)
  229694. .IP \(bu 2
  229695. \fBPR\fP \fI\%#27143\fP: (\fI\%cachedout\fP) Clean grains cache on grains sync
  229696. @ \fI2015\-09\-16 16:27:06 UTC\fP
  229697. .INDENT 2.0
  229698. .IP \(bu 2
  229699. 38d93a96fe Merge pull request \fI\%#27143\fP from cachedout/clean_grains_cache_on_sync
  229700. .IP \(bu 2
  229701. 0a660a9f80 Break apart long line
  229702. .IP \(bu 2
  229703. 6de2c2a50c Better error checking
  229704. .IP \(bu 2
  229705. 252f7c7ea9 Clean grains cache on grains sync
  229706. .UNINDENT
  229707. .IP \(bu 2
  229708. \fBISSUE\fP \fI\%#18582\fP: (\fI\%mainframe\fP) Allow merging file_roots and pillar_roots from different config files included from master.d (refs: \fI\%#27150\fP)
  229709. .IP \(bu 2
  229710. \fBPR\fP \fI\%#27150\fP: (\fI\%cachedout\fP) Merge config values from master.d/minion.d conf files (refs: \fI\%#27172\fP)
  229711. @ \fI2015\-09\-16 15:36:41 UTC\fP
  229712. .INDENT 2.0
  229713. .IP \(bu 2
  229714. 626cbe61ce Merge pull request \fI\%#27150\fP from cachedout/issue_18582
  229715. .IP \(bu 2
  229716. 6351a94d08 Merge config values from master.d/minion.d conf files
  229717. .UNINDENT
  229718. .IP \(bu 2
  229719. \fBISSUE\fP \fI\%#27135\fP: (\fI\%SEJeff\fP) Regression in core grains in the latest version of salt (refs: \fI\%#27137\fP)
  229720. .IP \(bu 2
  229721. \fBPR\fP \fI\%#27137\fP: (\fI\%jfindlay\fP) revert serial grain regression
  229722. @ \fI2015\-09\-15 21:52:25 UTC\fP
  229723. .INDENT 2.0
  229724. .IP \(bu 2
  229725. \fBPR\fP \fI\%#22267\fP: (\fI\%The\-Loeki\fP) modify _hw core grains to use the new smbios module, add system uuid (refs: \fI\%#27137\fP)
  229726. .IP \(bu 2
  229727. 72fad569b0 Merge pull request \fI\%#27137\fP from jfindlay/serial
  229728. .IP \(bu 2
  229729. 78c9687f0e revert serial grain regression
  229730. .UNINDENT
  229731. .IP \(bu 2
  229732. \fBPR\fP \fI\%#27144\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on softlayer_hw.show_all_prices if a code isn\(aqt supplied
  229733. @ \fI2015\-09\-15 21:52:09 UTC\fP
  229734. .INDENT 2.0
  229735. .IP \(bu 2
  229736. 58b56b9d78 Merge pull request \fI\%#27144\fP from rallytime/softlayer\-fixes
  229737. .IP \(bu 2
  229738. 3963a5cf0f Don\(aqt stacktrace on softlayer_hw.show_all_prices if a code isn\(aqt supplied
  229739. .UNINDENT
  229740. .IP \(bu 2
  229741. \fBPR\fP \fI\%#27139\fP: (\fI\%jacobhammons\fP) Updated key instruction on rhel7
  229742. @ \fI2015\-09\-15 16:06:14 UTC\fP
  229743. .INDENT 2.0
  229744. .IP \(bu 2
  229745. b71de75c1c Merge pull request \fI\%#27139\fP from jacobhammons/rhel\-doc
  229746. .IP \(bu 2
  229747. 7ed9f6260f Updated key instruction on rhel7
  229748. .UNINDENT
  229749. .IP \(bu 2
  229750. \fBPR\fP \fI\%#27134\fP: (\fI\%isbm\fP) Backport to 2015.8: "pkg.info"
  229751. @ \fI2015\-09\-15 15:57:46 UTC\fP
  229752. .INDENT 2.0
  229753. .IP \(bu 2
  229754. 0d8248930e Merge pull request \fI\%#27134\fP from isbm/isbm\-pkg.info\-backport\-2015.8
  229755. .IP \(bu 2
  229756. b60e6a37a7 Lintfix: E7801, C0321
  229757. .IP \(bu 2
  229758. cb4706c7e8 Add license extraction for Dpkg.
  229759. .IP \(bu 2
  229760. 38753fe8b2 Enhance filter for the "technical" fields that are not generally needed as a package information for the CMDB
  229761. .IP \(bu 2
  229762. ffe8f14dae Implement additional package information merger
  229763. .IP \(bu 2
  229764. 2aafc469d0 Fix the size and installed\-size keys
  229765. .IP \(bu 2
  229766. 3fc389435b Add homepage translator key
  229767. .IP \(bu 2
  229768. 25040c9c71 Docfix
  229769. .IP \(bu 2
  229770. 911bae1baf Add alias for \(aqinfo\(aq of deprecation in v. Boron
  229771. .IP \(bu 2
  229772. 306958dad0 Fix renamed method
  229773. .IP \(bu 2
  229774. 6ba269fbc6 Remove \(aqN/A\(aq when no data.
  229775. .IP \(bu 2
  229776. 137eb75ca2 Rename existing \(aqinfo\(aq to \(aqinfo_available\(aq
  229777. .IP \(bu 2
  229778. 7b376fd5c3 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  229779. .IP \(bu 2
  229780. ca7d0d5025 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  229781. .IP \(bu 2
  229782. c1faebf0b5 Implement compatible \(aqinfo_installed\(aq. Returned keys are common to other systems with other package managers
  229783. .IP \(bu 2
  229784. f14f4036df Lint: regexp as a string
  229785. .IP \(bu 2
  229786. cabe863b81 Implement package info function
  229787. .IP \(bu 2
  229788. 0668f1da53 Implement getting package installation time
  229789. .IP \(bu 2
  229790. e03716e5b5 Implement getting general packages information
  229791. .IP \(bu 2
  229792. 8737d690fe Extract package description
  229793. .IP \(bu 2
  229794. a283d53737 Lintfix the regexp string
  229795. .IP \(bu 2
  229796. fc9c959678 Convert time to ISO 8601
  229797. .IP \(bu 2
  229798. 9fb9296276 Return a detailed information about package(s)
  229799. .UNINDENT
  229800. .IP \(bu 2
  229801. \fBPR\fP \fI\%#27119\fP: (\fI\%l2ol33rt\fP) Boto dynamodb module should be using layer 2 abstractions
  229802. @ \fI2015\-09\-15 14:09:57 UTC\fP
  229803. .INDENT 2.0
  229804. .IP \(bu 2
  229805. 7f512852ef Merge pull request \fI\%#27119\fP from l2ol33rt/boto_dynamo_module_fix
  229806. .IP \(bu 2
  229807. 46c7aee367 Boto dynamodb util should be using layer 2 abstractions
  229808. .UNINDENT
  229809. .IP \(bu 2
  229810. \fBPR\fP \fI\%#27092\fP: (\fI\%perfinion\fP) salt/master: chdir to root not homedir
  229811. @ \fI2015\-09\-15 14:09:24 UTC\fP
  229812. .INDENT 2.0
  229813. .IP \(bu 2
  229814. 100e340111 Merge pull request \fI\%#27092\fP from perfinion/chdir\-fix\-2015.8
  229815. .IP \(bu 2
  229816. 284d268855 salt/master: chdir to root not homedir
  229817. .UNINDENT
  229818. .IP \(bu 2
  229819. \fBPR\fP \fI\%#27131\fP: (\fI\%jacobhammons\fP) Install docs
  229820. @ \fI2015\-09\-15 12:34:38 UTC\fP
  229821. .INDENT 2.0
  229822. .IP \(bu 2
  229823. 7483556b5f Merge pull request \fI\%#27131\fP from jacobhammons/install\-docs
  229824. .IP \(bu 2
  229825. d1e8af9be6 added command to remove key from rhel6
  229826. .IP \(bu 2
  229827. 69d64f177d moved rhel5 commands to separate lines
  229828. .IP \(bu 2
  229829. 90431278ea Install instruction updates for rhel6 and debian
  229830. .UNINDENT
  229831. .IP \(bu 2
  229832. \fBPR\fP \fI\%#27124\fP: (\fI\%jfindlay\fP) Backport \fI\%#27123\fP
  229833. @ \fI2015\-09\-15 08:37:43 UTC\fP
  229834. .INDENT 2.0
  229835. .IP \(bu 2
  229836. \fBPR\fP \fI\%#27123\fP: (\fI\%cedwards\fP) update for freebsd installation documentation (refs: \fI\%#27124\fP)
  229837. .IP \(bu 2
  229838. fc8afcc9f9 Merge pull request \fI\%#27124\fP from jfindlay/bp\-27123
  229839. .IP \(bu 2
  229840. 016fb5fafe Update freebsd.rst
  229841. .IP \(bu 2
  229842. 026fc9a884 update for freebsd installation documentation
  229843. .UNINDENT
  229844. .IP \(bu 2
  229845. \fBPR\fP \fI\%#27111\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  229846. @ \fI2015\-09\-15 07:29:30 UTC\fP
  229847. .INDENT 2.0
  229848. .IP \(bu 2
  229849. 0d62d3470c Merge pull request \fI\%#27111\fP from basepi/merge\-forward\-2015.8
  229850. .IP \(bu 2
  229851. ab519fb5ff Remove heavily\-mocked unit tests
  229852. .IP \(bu 2
  229853. 274464a85b Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  229854. .INDENT 2.0
  229855. .IP \(bu 2
  229856. 59f2a0c7ae Merge pull request \fI\%#26977\fP from abh/2015.5\-ntppeer
  229857. .INDENT 2.0
  229858. .IP \(bu 2
  229859. df3d6e817f Add support for PEERNTP network interface configuration on RH derived systems
  229860. .UNINDENT
  229861. .IP \(bu 2
  229862. e05b1f3951 Merge pull request \fI\%#27023\fP from jfindlay/htwebutilpass
  229863. .INDENT 2.0
  229864. .IP \(bu 2
  229865. 9f3d7890a6 add test support for htpasswd state mod
  229866. .UNINDENT
  229867. .IP \(bu 2
  229868. 9f999c0027 Merge pull request \fI\%#27074\fP from twangboy/fix_password_2015.5
  229869. .INDENT 2.0
  229870. .IP \(bu 2
  229871. fdd3537456 Replaced password with redacted when displayed
  229872. .UNINDENT
  229873. .IP \(bu 2
  229874. 46b44f85ed Merge pull request \fI\%#27073\fP from rallytime/remove\-lxc\-warning
  229875. .INDENT 2.0
  229876. .IP \(bu 2
  229877. 76c056d02b Remove "use develop branch" warning from LXC tutorial now that 2015.5.0 has been released
  229878. .UNINDENT
  229879. .IP \(bu 2
  229880. caab21d99c Merge pull request \fI\%#27054\fP from rallytime/bp\-27029
  229881. .INDENT 2.0
  229882. .IP \(bu 2
  229883. 0be393be22 Removed check for no package name
  229884. .UNINDENT
  229885. .IP \(bu 2
  229886. 0227e1cb57 Merge pull request \fI\%#27053\fP from rallytime/bp\-26992
  229887. .INDENT 2.0
  229888. .IP \(bu 2
  229889. 83798aff3c Do not use full return for documentation.
  229890. .IP \(bu 2
  229891. d9d5bbaa68 Summary requires full return information.
  229892. .UNINDENT
  229893. .IP \(bu 2
  229894. b72a0ef86d Merge pull request \fI\%#27052\fP from rallytime/bp\-26930
  229895. .INDENT 2.0
  229896. .IP \(bu 2
  229897. d9787aa318 aptpkg.mod_repo: Raise when key_url doesn\(aqt exist
  229898. .UNINDENT
  229899. .IP \(bu 2
  229900. 8b554dd16f Merge pull request \fI\%#27049\fP from johanek/repoquery\-dedupe
  229901. .INDENT 2.0
  229902. .IP \(bu 2
  229903. c113916a23 When running repoquery to check for available versions of packages, run once for all packages rather than once per package
  229904. .UNINDENT
  229905. .IP \(bu 2
  229906. cc2cbf9869 Merge pull request \fI\%#27070\fP from stanislavb/2015.5
  229907. .INDENT 2.0
  229908. .IP \(bu 2
  229909. 1e6e5ddc9c Deprecate salt.utils.iam in Carbon
  229910. .UNINDENT
  229911. .IP \(bu 2
  229912. e23caa8ccf Merge pull request \fI\%#27030\fP from jfindlay/winreg
  229913. .INDENT 2.0
  229914. .IP \(bu 2
  229915. 120fbe78e0 remove trailing line in win_path exec module
  229916. .IP \(bu 2
  229917. b36a7107b2 update win_path exec module unit tests
  229918. .IP \(bu 2
  229919. a2dc6f2dd7 Fixes win_path module, migrates from reg.(set|get)_key to reg.(set|get)_value
  229920. .UNINDENT
  229921. .IP \(bu 2
  229922. 843c28b435 Merge pull request \fI\%#27025\fP from cachedout/issue_25581
  229923. .INDENT 2.0
  229924. .IP \(bu 2
  229925. ecc09d9b93 Lint
  229926. .IP \(bu 2
  229927. bfcaab9ef4 Better try and error handling for prep_jid
  229928. .UNINDENT
  229929. .IP \(bu 2
  229930. b9baa0b39a Merge pull request \fI\%#27035\fP from terminalmage/useradd\-contextmanager
  229931. .INDENT 2.0
  229932. .IP \(bu 2
  229933. e430e97f6c Update user states to reflect changes to login class handling
  229934. .IP \(bu 2
  229935. f24b979c7c useradd.py: Use contextmanager to prevent leaked filehandles
  229936. .UNINDENT
  229937. .IP \(bu 2
  229938. 1cdfdf7a92 Merge pull request \fI\%#27034\fP from rallytime/softlayer\-doc\-fix
  229939. .INDENT 2.0
  229940. .IP \(bu 2
  229941. cb641f8145 Update softlayer docs for where to find apikey
  229942. .UNINDENT
  229943. .IP \(bu 2
  229944. 9e06d3f01a Merge pull request \fI\%#27024\fP from rallytime/bp\-27004
  229945. .INDENT 2.0
  229946. .IP \(bu 2
  229947. 54d6fcf4c7 Fix \(aqdict\(aq object has no attribute split
  229948. .IP \(bu 2
  229949. bb29d73c71 Fix \(aqdict\(aq object has no attribute split
  229950. .IP \(bu 2
  229951. 5f1a9c46aa Fix \(aqdict\(aq object has no attribute split
  229952. .IP \(bu 2
  229953. 2bfdd9724e Fix \(aqdict\(aq object has no attribute split
  229954. .UNINDENT
  229955. .IP \(bu 2
  229956. 9ab2cae1e4 Merge pull request \fI\%#27027\fP from rallytime/bp\-27013
  229957. .INDENT 2.0
  229958. .IP \(bu 2
  229959. 19a6e9cb1c Remove unwanted debug statement.
  229960. .UNINDENT
  229961. .IP \(bu 2
  229962. 2c8beb238f Merge pull request \fI\%#27026\fP from rallytime/bp\-27011
  229963. .INDENT 2.0
  229964. .IP \(bu 2
  229965. f8518d545f Move giant eventlisten.sh example out of the state.event docstring
  229966. .UNINDENT
  229967. .IP \(bu 2
  229968. e8cdcc62f7 Merge pull request \fI\%#26972\fP from twangboy/fix_20522
  229969. .INDENT 2.0
  229970. .IP \(bu 2
  229971. 0110786fa9 Catch the 404 error from fileclient
  229972. .UNINDENT
  229973. .IP \(bu 2
  229974. fbc95f4685 Merge pull request \fI\%#26951\fP from terminalmage/fix\-timezone
  229975. .INDENT 2.0
  229976. .IP \(bu 2
  229977. 30a4915762 Update tests to reflect changes to timezone module
  229978. .IP \(bu 2
  229979. b6f926919f Fix timezone module for CentOS
  229980. .UNINDENT
  229981. .IP \(bu 2
  229982. f2ad3c333c Merge pull request \fI\%#26875\fP from marccardinal/patch\-2
  229983. .INDENT 2.0
  229984. .IP \(bu 2
  229985. 36d5a62262 LXC gateway provisioned only when IP is provided
  229986. .UNINDENT
  229987. .IP \(bu 2
  229988. 7b2e7b1b37 Merge pull request \fI\%#26997\fP from twangboy/fix_symlink_windows
  229989. .INDENT 2.0
  229990. .IP \(bu 2
  229991. 89cc02d4e0 Added \fIversionadded\fP
  229992. .IP \(bu 2
  229993. 835177b0c8 Fixed symlinks for windows (don\(aqt use user root)
  229994. .UNINDENT
  229995. .IP \(bu 2
  229996. 5389a85894 Merge pull request \fI\%#27001\fP from twangboy/fix_reg_docs
  229997. .INDENT 2.0
  229998. .IP \(bu 2
  229999. 2980bbda17 Minor clarification
  230000. .IP \(bu 2
  230001. 4684b2ddd1 Added CLI example for reg.delete_key_recursive
  230002. .UNINDENT
  230003. .IP \(bu 2
  230004. 37814f5dff Merge pull request \fI\%#26996\fP from jacobhammons/beacon\-doc
  230005. .INDENT 2.0
  230006. .IP \(bu 2
  230007. e475ea688e Fixed typo
  230008. .IP \(bu 2
  230009. 2401533d9e New content added to beacon docs.
  230010. .UNINDENT
  230011. .IP \(bu 2
  230012. 4ba7eed711 Merge pull request \fI\%#26868\fP from joejulian/2015.5_lvm_vg_symlink_fix
  230013. .INDENT 2.0
  230014. .IP \(bu 2
  230015. 3dfb33849a Use the actual device name when checking vgdisplay
  230016. .UNINDENT
  230017. .IP \(bu 2
  230018. 1537e945be Merge pull request \fI\%#26955\fP from dsumsky/s3\-pillar\-module\-cache\-fix\-2015.5
  230019. .INDENT 2.0
  230020. .IP \(bu 2
  230021. 8219acffe7 \- fixed pylint warnings
  230022. .IP \(bu 2
  230023. a3b10e8ab1 \- fixed broken caching in S3 ext_pillar module (file_md5 was a list) \- added debugging messages \- static parameters are available as module parameters now
  230024. .UNINDENT
  230025. .IP \(bu 2
  230026. 3e902e86b1 Merge pull request \fI\%#26987\fP from rallytime/bp\-26966
  230027. .INDENT 2.0
  230028. .IP \(bu 2
  230029. 6a29eac003 URL has changed
  230030. .UNINDENT
  230031. .IP \(bu 2
  230032. eddb532713 Merge pull request \fI\%#26915\fP from rallytime/joyent\-tests
  230033. .INDENT 2.0
  230034. .IP \(bu 2
  230035. d4ad42d697 Update Joyent Cloud Tests
  230036. .UNINDENT
  230037. .IP \(bu 2
  230038. f86814b2a4 Merge pull request \fI\%#26971\fP from rallytime/reactor\-doc\-fix
  230039. .INDENT 2.0
  230040. .IP \(bu 2
  230041. 0214daad19 Fix a couple of typos in reactor docs
  230042. .UNINDENT
  230043. .IP \(bu 2
  230044. 57b1080f94 Merge pull request \fI\%#26976\fP from saltstack/revert\-26899\-fix_26730
  230045. .INDENT 2.0
  230046. .IP \(bu 2
  230047. 6dd54e6bec Revert "file.symlink gets windows account instead of root"
  230048. .UNINDENT
  230049. .IP \(bu 2
  230050. 67be01f5fe Merge pull request \fI\%#26975\fP from whiteinge/rest_cherrypy\-integration
  230051. .INDENT 2.0
  230052. .IP \(bu 2
  230053. 9a0989585b Add additional \(aqgroups\(aq check to rest_cherrypy if groups are not used
  230054. .IP \(bu 2
  230055. d68aefcfde Remove mocks from rest_cherrypy integration tests
  230056. .IP \(bu 2
  230057. 2aa3da8911 Rename the rest_cherrypy tests to conform to our convention
  230058. .UNINDENT
  230059. .IP \(bu 2
  230060. 20a48f7f2e Merge pull request \fI\%#26899\fP from twangboy/fix_26730
  230061. .INDENT 2.0
  230062. .IP \(bu 2
  230063. 9d9b3bb47a file.symlink gets windows account instead of root
  230064. .UNINDENT
  230065. .IP \(bu 2
  230066. dbc6b862f4 Merge pull request \fI\%#26960\fP from rallytime/cherrypy\-docs
  230067. .INDENT 2.0
  230068. .IP \(bu 2
  230069. c1420711db Fix bash code block formatting
  230070. .UNINDENT
  230071. .IP \(bu 2
  230072. f733e048c9 Merge pull request \fI\%#26940\fP from rallytime/api\-doc\-fix
  230073. .INDENT 2.0
  230074. .IP \(bu 2
  230075. 00fe6a225c Fix minor doc typo in client api
  230076. .UNINDENT
  230077. .IP \(bu 2
  230078. de9350466e Merge pull request \fI\%#26871\fP from rallytime/bp\-26852
  230079. .INDENT 2.0
  230080. .IP \(bu 2
  230081. 5a4c8dd2f5 Only reference msgpack if it imported successfully
  230082. .UNINDENT
  230083. .IP \(bu 2
  230084. a563af29d3 Merge pull request \fI\%#26851\fP from jacobhammons/doc\-bugs
  230085. .INDENT 2.0
  230086. .IP \(bu 2
  230087. ac3bd47440 states/pkgrepo examples, suse installation updates Refs \fI\%#26644\fP Refs \fI\%#26638\fP
  230088. .UNINDENT
  230089. .IP \(bu 2
  230090. 5b1b934192 Merge pull request \fI\%#26817\fP from jfindlay/grouparg
  230091. .INDENT 2.0
  230092. .IP \(bu 2
  230093. 82d33939f3 modify groupadd for rhel 5
  230094. .UNINDENT
  230095. .IP \(bu 2
  230096. cdc0ea2fe3 Merge pull request \fI\%#26824\fP from pravka/fix\-droplet\-creation\-from\-snapshot\-in\-dov2
  230097. .INDENT 2.0
  230098. .IP \(bu 2
  230099. 00e3192536 removing log
  230100. .IP \(bu 2
  230101. e4a82d78d9 removing stringification of every value in the image dict
  230102. .IP \(bu 2
  230103. cdc2b4584a fixing condition for slug check
  230104. .UNINDENT
  230105. .IP \(bu 2
  230106. 4af6951a4c Merge pull request \fI\%#26823\fP from joejulian/ctlfix
  230107. .INDENT 2.0
  230108. .IP \(bu 2
  230109. a9928cb143 pep8 fixes
  230110. .IP \(bu 2
  230111. 6108ec4280 Gated dbus for os families that use it
  230112. .IP \(bu 2
  230113. e154c7b16f remove trailing spaces
  230114. .IP \(bu 2
  230115. c1c1266cc3 fix indent change
  230116. .IP \(bu 2
  230117. 0a35320aa7 Use dbus directly
  230118. .UNINDENT
  230119. .IP \(bu 2
  230120. a1749b76b8 Merge pull request \fI\%#26820\fP from jfindlay/ctlfix
  230121. .INDENT 2.0
  230122. .IP \(bu 2
  230123. 3a2c0d5fbb add default param in _parse_localectl in locale mod
  230124. .UNINDENT
  230125. .IP \(bu 2
  230126. ff733547c4 Merge pull request \fI\%#26821\fP from twangboy/fix_26788
  230127. .INDENT 2.0
  230128. .IP \(bu 2
  230129. cf979e4877 Fixed user.rename function in windows
  230130. .UNINDENT
  230131. .IP \(bu 2
  230132. c892be3255 Merge pull request \fI\%#26803\fP from twangboy/fix_26754
  230133. .INDENT 2.0
  230134. .IP \(bu 2
  230135. 23576c65eb Added check for PyMySQL if MySQLdb import fails
  230136. .UNINDENT
  230137. .IP \(bu 2
  230138. 6edfa36083 Merge pull request \fI\%#26815\fP from jfindlay/linstr
  230139. .IP \(bu 2
  230140. 2ff5823944 stringify linode id before performing str actions
  230141. .UNINDENT
  230142. .UNINDENT
  230143. .IP \(bu 2
  230144. \fBPR\fP \fI\%#27122\fP: (\fI\%terminalmage\fP) Fix broken link to git\-config(1) docs
  230145. @ \fI2015\-09\-15 07:25:05 UTC\fP
  230146. .INDENT 2.0
  230147. .IP \(bu 2
  230148. 886e7bc234 Merge pull request \fI\%#27122\fP from terminalmage/fix\-broken\-link
  230149. .IP \(bu 2
  230150. 0b212ea5b3 Fix broken link to git\-config(1) docs
  230151. .UNINDENT
  230152. .IP \(bu 2
  230153. \fBPR\fP \fI\%#27115\fP: (\fI\%jacobhammons\fP) Release docs
  230154. @ \fI2015\-09\-14 22:19:18 UTC\fP
  230155. .INDENT 2.0
  230156. .IP \(bu 2
  230157. 551bbe70af Merge pull request \fI\%#27115\fP from jacobhammons/release\-docs
  230158. .IP \(bu 2
  230159. 42eaa80997 Restored missing css
  230160. .IP \(bu 2
  230161. 9ab642295e Fixed a release notes typo and bad file rename
  230162. .IP \(bu 2
  230163. daa3f4eee0 Updated release notes, change 2015.8 to latest release for doc site
  230164. .IP \(bu 2
  230165. d939a38c8c release notes updates
  230166. .UNINDENT
  230167. .IP \(bu 2
  230168. \fBISSUE\fP \fI\%#11993\fP: (\fI\%UtahDave\fP) salt\-cloud \-Q output not consistent across providers (refs: \fI\%#27110\fP)
  230169. .IP \(bu 2
  230170. \fBPR\fP \fI\%#27110\fP: (\fI\%rallytime\fP) Make sure \-Q output is consistent across salt\-cloud drivers
  230171. @ \fI2015\-09\-14 21:48:40 UTC\fP
  230172. .INDENT 2.0
  230173. .IP \(bu 2
  230174. 89c90df909 Merge pull request \fI\%#27110\fP from rallytime/fix\-11993
  230175. .IP \(bu 2
  230176. c1abc5a19f Remove implied Nones
  230177. .IP \(bu 2
  230178. 5d7d357cdd digital_ocean list_nodes function should list public and private ips like other drivers
  230179. .IP \(bu 2
  230180. 4b27aef406 Add \(aqname\(aq to the output of salt\-cloud \-Q commands, where needed, for consistency.
  230181. .UNINDENT
  230182. .IP \(bu 2
  230183. \fBPR\fP \fI\%#27050\fP: (\fI\%twangboy\fP) Turned multiprocessing on
  230184. @ \fI2015\-09\-14 17:34:18 UTC\fP
  230185. .INDENT 2.0
  230186. .IP \(bu 2
  230187. 860de8d877 Merge pull request \fI\%#27050\fP from twangboy/fix_minion_conf
  230188. .IP \(bu 2
  230189. 7e35b13022 Turned multiprocessing on
  230190. .UNINDENT
  230191. .IP \(bu 2
  230192. \fBPR\fP \fI\%#27086\fP: (\fI\%techhat\fP) Document develoment of SPM loader modules
  230193. @ \fI2015\-09\-13 04:52:55 UTC\fP
  230194. .INDENT 2.0
  230195. .IP \(bu 2
  230196. c78d833540 Merge pull request \fI\%#27086\fP from techhat/spmdevdocs
  230197. .IP \(bu 2
  230198. ee0c8955dd Document develoment of SPM loader modules
  230199. .UNINDENT
  230200. .IP \(bu 2
  230201. \fBISSUE\fP \fI\%#23125\fP: (\fI\%bemeyert\fP) Elasticsearch as master_job_cache throws critical (refs: \fI\%#26941\fP)
  230202. .IP \(bu 2
  230203. \fBPR\fP \fI\%#26941\fP: (\fI\%msteed\fP) Make elasticsearch work as master job cache
  230204. @ \fI2015\-09\-12 17:13:44 UTC\fP
  230205. .INDENT 2.0
  230206. .IP \(bu 2
  230207. 25b11759f9 Merge pull request \fI\%#26941\fP from msteed/issue\-23125
  230208. .IP \(bu 2
  230209. ff88fe402c add versionadded info to save_load() & get_load()
  230210. .IP \(bu 2
  230211. 5d2fae8a89 make master job cache index configurable
  230212. .IP \(bu 2
  230213. bc041fa4a7 Merge branch \(aqissue\-23125\(aq of github.com:msteed/salt into issue\-23125
  230214. .INDENT 2.0
  230215. .IP \(bu 2
  230216. 9aedc2662e issue\-23125
  230217. .UNINDENT
  230218. .IP \(bu 2
  230219. 593c4d6b2f issue\-23125
  230220. .UNINDENT
  230221. .IP \(bu 2
  230222. \fBPR\fP \fI\%#27080\fP: (\fI\%bechtoldt\fP) [Proposal] Add Github SPM label for issues
  230223. @ \fI2015\-09\-12 14:32:58 UTC\fP
  230224. .INDENT 2.0
  230225. .IP \(bu 2
  230226. b763d0ba52 Merge pull request \fI\%#27080\fP from bechtoldt/spm_doc
  230227. .IP \(bu 2
  230228. b9e5095bf5 add GH issue label SPM to docs
  230229. .UNINDENT
  230230. .IP \(bu 2
  230231. \fBPR\fP \fI\%#27064\fP: (\fI\%twangboy\fP) Fixed user docs
  230232. @ \fI2015\-09\-11 22:37:19 UTC\fP
  230233. .INDENT 2.0
  230234. .IP \(bu 2
  230235. cf59a03432 Merge pull request \fI\%#27064\fP from twangboy/user_docs
  230236. .IP \(bu 2
  230237. db03ca198e Fixed user docs
  230238. .UNINDENT
  230239. .IP \(bu 2
  230240. \fBPR\fP \fI\%#27072\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26840\fP to 2015.8
  230241. @ \fI2015\-09\-11 22:35:52 UTC\fP
  230242. .INDENT 2.0
  230243. .IP \(bu 2
  230244. \fBPR\fP \fI\%#26840\fP: (\fI\%deuscapturus\fP) Update http.py (refs: \fI\%#27072\fP)
  230245. .IP \(bu 2
  230246. 71c12cbf46 Merge pull request \fI\%#27072\fP from rallytime/bp\-26840
  230247. .IP \(bu 2
  230248. d0b9ececa4 Update http.py
  230249. .UNINDENT
  230250. .IP \(bu 2
  230251. \fBPR\fP \fI\%#27060\fP: (\fI\%cro\fP) Fix grains breakage when hosts are not Linux, Windows, or SunOS
  230252. @ \fI2015\-09\-11 17:28:49 UTC\fP
  230253. .INDENT 2.0
  230254. .IP \(bu 2
  230255. 0e7555089f Merge pull request \fI\%#27060\fP from cro/proxy_grains_breakage
  230256. .IP \(bu 2
  230257. e697326f1b Don\(aqt check for proxy in the individual is_linux/is_windows/etc functions. This breaks too many things.
  230258. .UNINDENT
  230259. .IP \(bu 2
  230260. \fBPR\fP \fI\%#27051\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26953\fP to 2015.8
  230261. @ \fI2015\-09\-11 16:28:20 UTC\fP
  230262. .INDENT 2.0
  230263. .IP \(bu 2
  230264. \fBPR\fP \fI\%#26953\fP: (\fI\%dsumsky\fP) S3 ext_pillar module has broken caching mechanism (refs: \fI\%#27051\fP)
  230265. .IP \(bu 2
  230266. 8ee87b9f61 Merge pull request \fI\%#27051\fP from rallytime/bp\-26953
  230267. .IP \(bu 2
  230268. eac9d9aba9 Pylint Fix
  230269. .IP \(bu 2
  230270. 453440753c \- fixed pylint warnings
  230271. .IP \(bu 2
  230272. b40dfa459e \- fixed broken caching in S3 ext_pillar module (file_md5 was a list) \- added debugging messages \- static parameters are available as module parameters now
  230273. .UNINDENT
  230274. .IP \(bu 2
  230275. \fBPR\fP \fI\%#26864\fP: (\fI\%terminalmage\fP) Only do git_pillar preflight checks on new\-style git_pillar configs
  230276. @ \fI2015\-09\-11 07:47:12 UTC\fP
  230277. .INDENT 2.0
  230278. .IP \(bu 2
  230279. 249f55cd8c Merge pull request \fI\%#26864\fP from terminalmage/fix\-git_pillar\-tests
  230280. .IP \(bu 2
  230281. 0b5a653f7c Only do git_pillar preflight checks on new\-style git_pillar configs
  230282. .UNINDENT
  230283. .IP \(bu 2
  230284. \fBPR\fP \fI\%#26967\fP: (\fI\%TheBigBear\fP) new URL for windows salt downloads
  230285. @ \fI2015\-09\-10 20:51:33 UTC\fP
  230286. .INDENT 2.0
  230287. .IP \(bu 2
  230288. efaedb8aea Merge pull request \fI\%#26967\fP from TheBigBear/patch\-4
  230289. .IP \(bu 2
  230290. 8d2c042cf7 new URL for windows salt downloads
  230291. .UNINDENT
  230292. .IP \(bu 2
  230293. \fBPR\fP \fI\%#26921\fP: (\fI\%terminalmage\fP) Get rid of error in legacy git pillar when using branch mapping notation
  230294. @ \fI2015\-09\-10 20:06:29 UTC\fP
  230295. .INDENT 2.0
  230296. .IP \(bu 2
  230297. 757d3c4eab Merge pull request \fI\%#26921\fP from terminalmage/legacy_git_pillar_tests
  230298. .IP \(bu 2
  230299. 28e07d5d06 Get rid of error in legacy git pillar when using branch mapping notation
  230300. .UNINDENT
  230301. .IP \(bu 2
  230302. \fBPR\fP \fI\%#26923\fP: (\fI\%rallytime\fP) Code clean up of cloud drivers and files
  230303. @ \fI2015\-09\-10 16:37:26 UTC\fP
  230304. .INDENT 2.0
  230305. .IP \(bu 2
  230306. 68eb508e6c Merge pull request \fI\%#26923\fP from rallytime/cloud\-cleanup
  230307. .IP \(bu 2
  230308. bf33c99b08 Remove redundant parentheses
  230309. .IP \(bu 2
  230310. 5045989be7 Make sure function names comply
  230311. .IP \(bu 2
  230312. e327d9a8a4 Remove redundant parens
  230313. .IP \(bu 2
  230314. eee0291ff8 Code clean up of cloud drivers and files
  230315. .UNINDENT
  230316. .IP \(bu 2
  230317. \fBPR\fP \fI\%#27010\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26988\fP to 2015.8
  230318. @ \fI2015\-09\-10 16:30:30 UTC\fP
  230319. .INDENT 2.0
  230320. .IP \(bu 2
  230321. \fBPR\fP \fI\%#26988\fP: (\fI\%s0undt3ch\fP) Process \fIspm.d/*.conf\fP and add prefix root dir support to SPM directories (refs: \fI\%#27010\fP)
  230322. .IP \(bu 2
  230323. 590c46f4e3 Merge pull request \fI\%#27010\fP from rallytime/bp\-26988
  230324. .IP \(bu 2
  230325. 93b30b5ba8 Whitespace
  230326. .IP \(bu 2
  230327. 685fa911e7 Version Added for new apply_spm_config function
  230328. .IP \(bu 2
  230329. 9612a6c7ad Process \fIspm.d/*.conf\fP and add prefix root dir support to SPM directories
  230330. .UNINDENT
  230331. .IP \(bu 2
  230332. \fBPR\fP \fI\%#26985\fP: (\fI\%rallytime\fP) Fix versionadded tag
  230333. @ \fI2015\-09\-10 16:29:38 UTC\fP
  230334. .INDENT 2.0
  230335. .IP \(bu 2
  230336. ec185d77fa Merge pull request \fI\%#26985\fP from rallytime/versionadded\-fix
  230337. .IP \(bu 2
  230338. 79eb606cb7 Fix versionadded tag
  230339. .UNINDENT
  230340. .UNINDENT
  230341. .SS Salt 2015.8.10 Release Notes
  230342. .sp
  230343. Version 2015.8.10 is a bugfix release for 2015.8.0\&.
  230344. .sp
  230345. This release includes fixes for two issues discovered in 2015.8.9:
  230346. .INDENT 0.0
  230347. .IP \(bu 2
  230348. Pip state broken in 2015.8.9 with pip <6.0 (\fI\%issue #33376\fP)
  230349. .IP \(bu 2
  230350. Fix traceback in logging for config validation (\fI\%PR #33386\fP)
  230351. .UNINDENT
  230352. .SS Final Release of Debian 7 Packages
  230353. .sp
  230354. Regular security support for Debian 7 ended on April 25th 2016. As a result,
  230355. 2016.3.1 and 2015.8.10 will be the last Salt releases for which Debian
  230356. 7 packages are created.
  230357. .SS Important Post\-Upgrade Instructions for Linux Mint
  230358. .sp
  230359. As a result of some upstream changes, the \fBos\fP grain on Mint Linux is now
  230360. being detected as \fBLinuxMint\fP (\fI\%issue #33295\fP). Run the following command
  230361. \fBafter you upgrade to 2015.8.10\fP to reset the \fBos\fP grain to \fBMint\fP and
  230362. the \fBos_family\fP grain to \fBDebian\fP:
  230363. .INDENT 0.0
  230364. .INDENT 3.5
  230365. .sp
  230366. .nf
  230367. .ft C
  230368. salt \-G \(aqos:LinuxMint\(aq grains.setvals "{\(aqos\(aq: \(aqMint\(aq, \(aqos_family\(aq: \(aqDebian\(aq}"
  230369. .ft P
  230370. .fi
  230371. .UNINDENT
  230372. .UNINDENT
  230373. .SS Changelog for v2015.8.9..v2015.8.10
  230374. .sp
  230375. \fIGenerated at: 2018\-05\-28 00:51:57 UTC\fP
  230376. .INDENT 0.0
  230377. .IP \(bu 2
  230378. c3d2c4eaae Fix traceback in logging for config validation (\fI\%#33386\fP)
  230379. .IP \(bu 2
  230380. 2a060ea1e8 restore whitespace
  230381. .IP \(bu 2
  230382. aa1f45d664 blast, put the try/except int he right place
  230383. .IP \(bu 2
  230384. be1a7659a3 maintain the fallabck because I am totally sick of this crap
  230385. .UNINDENT
  230386. .SS Salt 2015.8.11 Release Notes
  230387. .sp
  230388. Version 2015.8.11 is a bugfix release for 2015.8.0\&.
  230389. .SS Statistics
  230390. .INDENT 0.0
  230391. .IP \(bu 2
  230392. Total Merges: \fB122\fP
  230393. .IP \(bu 2
  230394. Total Issue References: \fB70\fP
  230395. .IP \(bu 2
  230396. Total PR References: \fB221\fP
  230397. .IP \(bu 2
  230398. Contributors: \fB48\fP (\fI\%AAbouZaid\fP, \fI\%BlaineAtAffirm\fP, \fI\%DmitryKuzmenko\fP, \fI\%The\-Loeki\fP, \fI\%abednarik\fP, \fI\%babilen\fP, \fI\%bebehei\fP, \fI\%cachedout\fP, \fI\%clinta\fP, \fI\%complexsplit\fP, \fI\%cro\fP, \fI\%danslimmon\fP, \fI\%dcolish\fP, \fI\%dincamihai\fP, \fI\%edgan\fP, \fI\%gerhardqux\fP, \fI\%ghedo\fP, \fI\%isbm\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%jodv\fP, \fI\%justinta\fP, \fI\%l13t\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%lvg01\fP, \fI\%mcalmer\fP, \fI\%meaksh\fP, \fI\%morganwillcock\fP, \fI\%oeuftete\fP, \fI\%opdude\fP, \fI\%phistrom\fP, \fI\%rallytime\fP, \fI\%rmarcinik\fP, \fI\%ryan\-lane\fP, \fI\%sacren\fP, \fI\%steverweber\fP, \fI\%techhat\fP, \fI\%tegbert\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%the\-glu\fP, \fI\%thegoodduke\fP, \fI\%ticosax\fP, \fI\%tveastman\fP, \fI\%twangboy\fP, \fI\%vutny\fP, \fI\%zer0def\fP)
  230399. .UNINDENT
  230400. .SS Ubuntu 16.04 Packages
  230401. .sp
  230402. SaltStack is now providing official Salt 2015.8 \fI\%packages\fP for Ubuntu 16.04.
  230403. .SS Returner Changes
  230404. .INDENT 0.0
  230405. .IP \(bu 2
  230406. Any returner which implements a \fBsave_load\fP function is now required to
  230407. accept a \fBminions\fP keyword argument. All returners which ship with Salt
  230408. have been modified to do so.
  230409. .UNINDENT
  230410. .SS New Master Configuration Parameter
  230411. .INDENT 0.0
  230412. .IP \(bu 2
  230413. \fBrotate_aes_key\fP \- if \fBTrue\fP, causes Salt to generate a new
  230414. AES key whenever a minion key is deleted. This eliminates the chance that a
  230415. deleted minion could continue to eavesdrop on communications with the master
  230416. if it continues to run after its key is deleted.
  230417. .UNINDENT
  230418. .SS Changelog for v2015.8.10..v2015.8.11
  230419. .sp
  230420. \fIGenerated at: 2018\-05\-28 01:16:12 UTC\fP
  230421. .INDENT 0.0
  230422. .IP \(bu 2
  230423. \fBPR\fP \fI\%#34682\fP: (\fI\%jfindlay\fP) update 2015.8.11 release notes
  230424. .IP \(bu 2
  230425. \fBPR\fP \fI\%#34676\fP: (\fI\%cachedout\fP) Revert "Modify lodaer global test to use populated dunders"
  230426. @ \fI2016\-07\-14 18:12:55 UTC\fP
  230427. .INDENT 2.0
  230428. .IP \(bu 2
  230429. 3192e1674b Merge pull request \fI\%#34676\fP from cachedout/partial_revert_34644
  230430. .IP \(bu 2
  230431. 64a154826a Revert "Modify lodaer global test to use populated dunders"
  230432. .UNINDENT
  230433. .IP \(bu 2
  230434. \fBPR\fP \fI\%#34601\fP: (\fI\%lorengordon\fP) Clarifies the proper way to reference states
  230435. @ \fI2016\-07\-14 14:20:41 UTC\fP
  230436. .INDENT 2.0
  230437. .IP \(bu 2
  230438. 3b6f1089b2 Merge pull request \fI\%#34601\fP from lorengordon/clarify\-doc
  230439. .IP \(bu 2
  230440. bfe0dd0b8a Clarifies the proper way to reference states
  230441. .IP \(bu 2
  230442. \fBPR\fP \fI\%saltstack/salt#34644\fP: (\fI\%cachedout\fP) Cleanup loader errors (refs: \fI\%#34651\fP)
  230443. .IP \(bu 2
  230444. \fBPR\fP \fI\%#34651\fP: (\fI\%rallytime\fP) Lint 34644
  230445. .IP \(bu 2
  230446. \fBPR\fP \fI\%#34647\fP: (\fI\%cachedout\fP) Adjust the mine test a little bit to give it a better chance of success
  230447. .UNINDENT
  230448. .IP \(bu 2
  230449. \fBPR\fP \fI\%#34642\fP: (\fI\%justinta\fP) Check that mysqladmin exists before running mysql integration tests
  230450. @ \fI2016\-07\-13 18:12:44 UTC\fP
  230451. .INDENT 2.0
  230452. .IP \(bu 2
  230453. 8a0209101e Merge pull request \fI\%#34642\fP from jtand/mysql_integration_cleanup
  230454. .IP \(bu 2
  230455. dd1559a599 Check that mysqladmin exists before running mysql integration tests.
  230456. .UNINDENT
  230457. .IP \(bu 2
  230458. \fBPR\fP \fI\%#34618\fP: (\fI\%justinta\fP) Network state integration test test=True
  230459. @ \fI2016\-07\-13 16:30:15 UTC\fP
  230460. .INDENT 2.0
  230461. .IP \(bu 2
  230462. 3e612c3794 Merge pull request \fI\%#34618\fP from jtand/network_integration_fix
  230463. .IP \(bu 2
  230464. 34bcf9ccfc Changed network state test to use test=True
  230465. .IP \(bu 2
  230466. b2616833b0 Some small changes
  230467. .IP \(bu 2
  230468. ed59113e94 Change network state integration test to use test=True
  230469. .UNINDENT
  230470. .IP \(bu 2
  230471. \fBPR\fP \fI\%#34617\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230472. @ \fI2016\-07\-12 20:11:40 UTC\fP
  230473. .INDENT 2.0
  230474. .IP \(bu 2
  230475. 9f123543e5 Merge pull request \fI\%#34617\fP from rallytime/merge\-2015.8
  230476. .IP \(bu 2
  230477. 3026df346f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230478. .IP \(bu 2
  230479. 57df38e685 Update github IP for ssh state integration tests (\fI\%#34592\fP)
  230480. .IP \(bu 2
  230481. 2e1007254b Avoid circular imports when calling salt.utils functions (\fI\%#34584\fP)
  230482. .UNINDENT
  230483. .IP \(bu 2
  230484. \fBISSUE\fP \fI\%#33649\fP: (\fI\%tyhunt99\fP) 2016.3.0 dockerng state fails comparing cmd configuration (refs: #saltstack/salt\(ga#33851\(ga_, \fI\%#33851\fP)
  230485. .INDENT 2.0
  230486. .IP \(bu 2
  230487. \fBPR\fP \fI\%saltstack/salt#33851\fP: (\fI\%ticosax\fP) [dockerng] Add support for edge case when \fICmd\fP and \fIEntrypoint\fP can\(aqt be blanked (refs: \fI\%#34593\fP)
  230488. .IP \(bu 2
  230489. \fBPR\fP \fI\%#34593\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33851\fP to 2015.8
  230490. .IP \(bu 2
  230491. \fBPR\fP \fI\%#33851\fP: (\fI\%ticosax\fP) [dockerng] Add support for edge case when \fICmd\fP and \fIEntrypoint\fP can\(aqt be blanked (refs: \fI\%#34593\fP)
  230492. .IP \(bu 2
  230493. \fBPR\fP \fI\%#34590\fP: (\fI\%oeuftete\fP) [2015.8] dockerng: When sorting list actual_data, make it a list
  230494. .IP \(bu 2
  230495. \fBPR\fP \fI\%#34591\fP: (\fI\%justinta\fP) Gate docker unit test to check for docker
  230496. .IP \(bu 2
  230497. \fBPR\fP \fI\%#34560\fP: (\fI\%terminalmage\fP) Add a bunch of documentation on getting files from other environments
  230498. .UNINDENT
  230499. .IP \(bu 2
  230500. \fBISSUE\fP \fI\%#34397\fP: (\fI\%jaredhanson11\fP) ignore_epoch needs to be passed through to version_cmp functions (refs: \fI\%#34531\fP)
  230501. .IP \(bu 2
  230502. \fBPR\fP \fI\%#34531\fP: (\fI\%terminalmage\fP) Support ignore_epoch argument in version comparisons
  230503. @ \fI2016\-07\-08 16:43:36 UTC\fP
  230504. .INDENT 2.0
  230505. .IP \(bu 2
  230506. 91e0656d44 Merge pull request \fI\%#34531\fP from terminalmage/issue34397
  230507. .IP \(bu 2
  230508. d0fec1b8f6 salt/modules/zypper.py: accept ignore_epoch argument
  230509. .IP \(bu 2
  230510. 5ae9463c1f salt/modules/yumpkg.py: accept ignore_epoch argument
  230511. .IP \(bu 2
  230512. c2791117af salt/modules/rpm.py: accept ignore_epoch argument
  230513. .IP \(bu 2
  230514. c5de8b880d salt/modules/ebuild.py: accept ignore_epoch argument
  230515. .IP \(bu 2
  230516. 4ee8e8f037 salt/modules/aptpkg.py: accept ignore_epoch argument
  230517. .IP \(bu 2
  230518. 5b123b403c Pass ignore_epoch to salt.utils.compare_versions()
  230519. .IP \(bu 2
  230520. 07368fac40 Accept ignore_epoch argument for salt.utils.compare_versions()
  230521. .UNINDENT
  230522. .IP \(bu 2
  230523. \fBPR\fP \fI\%#34545\fP: (\fI\%terminalmage\fP) Handle cases where Docker Remote API returns an empty ExecutionDriver
  230524. @ \fI2016\-07\-08 16:34:30 UTC\fP
  230525. .INDENT 2.0
  230526. .IP \(bu 2
  230527. e99befad47 Merge pull request \fI\%#34545\fP from terminalmage/docker\-exec\-driver
  230528. .IP \(bu 2
  230529. dd5838e242 Handle cases where Docker Remote API returns an empty ExecutionDriver
  230530. .UNINDENT
  230531. .IP \(bu 2
  230532. \fBPR\fP \fI\%#34546\fP: (\fI\%rallytime\fP) Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  230533. @ \fI2016\-07\-08 16:16:42 UTC\fP
  230534. .INDENT 2.0
  230535. .IP \(bu 2
  230536. 7120d43df0 Merge pull request \fI\%#34546\fP from rallytime/rename\-boto\-secgroup\-test
  230537. .IP \(bu 2
  230538. f8a3622be7 Rename unit.states.boto_secgroup to unit.states.boto_secgroup_test
  230539. .UNINDENT
  230540. .IP \(bu 2
  230541. \fBPR\fP \fI\%#34537\fP: (\fI\%rallytime\fP) Rename tests.unit.simple to tests.unit.simple_test
  230542. @ \fI2016\-07\-08 00:08:36 UTC\fP
  230543. .INDENT 2.0
  230544. .IP \(bu 2
  230545. ca92061821 Merge pull request \fI\%#34537\fP from rallytime/rename\-simple\-test
  230546. .IP \(bu 2
  230547. ceefb6e34c Rename tests.unit.simple to tests.unit.simple_test
  230548. .IP \(bu 2
  230549. \fBPR\fP \fI\%#34527\fP: (\fI\%rallytime\fP) [2015.8] Update bootstrap script to latest stable
  230550. .IP \(bu 2
  230551. \fBPR\fP \fI\%#34521\fP: (\fI\%cachedout\fP) Prevent many errors in the test suite in loader tests
  230552. .IP \(bu 2
  230553. \fBPR\fP \fI\%#34507\fP: (\fI\%AAbouZaid\fP) Fix wrong order of retention_policy_exists.
  230554. .UNINDENT
  230555. .IP \(bu 2
  230556. \fBPR\fP \fI\%#34518\fP: (\fI\%terminalmage\fP) Fix pkg.latest integration test for non\-LTS ubuntu
  230557. @ \fI2016\-07\-07 19:29:13 UTC\fP
  230558. .INDENT 2.0
  230559. .IP \(bu 2
  230560. 685df80929 Merge pull request \fI\%#34518\fP from terminalmage/fix\-pkg.latest\-test
  230561. .IP \(bu 2
  230562. 4aef44ecdf Fix pkg.latest integration test for non\-LTS ubuntu
  230563. .UNINDENT
  230564. .IP \(bu 2
  230565. \fBPR\fP \fI\%#34513\fP: (\fI\%cachedout\fP) Lower the log level for modules which cannot be loaded to trace
  230566. @ \fI2016\-07\-07 17:00:48 UTC\fP
  230567. .INDENT 2.0
  230568. .IP \(bu 2
  230569. a516f116d1 Merge pull request \fI\%#34513\fP from cachedout/lower_loader_log
  230570. .IP \(bu 2
  230571. 733c5d00c0 Lower the log level for modules which cannot be loaded to trace
  230572. .UNINDENT
  230573. .IP \(bu 2
  230574. \fBPR\fP \fI\%#34498\fP: (\fI\%rallytime\fP) Use \-O in the wget example in the bootstrap tutorial for the develop branch
  230575. @ \fI2016\-07\-07 16:30:46 UTC\fP
  230576. .INDENT 2.0
  230577. .IP \(bu 2
  230578. 63f0451041 Merge pull request \fI\%#34498\fP from rallytime/bootstrap\-tutorial\-doc\-fix
  230579. .IP \(bu 2
  230580. 23c5739c3b Use \-O in wget develop example in bootstrap tutorial
  230581. .IP \(bu 2
  230582. \fBPR\fP \fI\%#34503\fP: (\fI\%rallytime\fP) Rename some unit test files by adding _test
  230583. .UNINDENT
  230584. .IP \(bu 2
  230585. \fBISSUE\fP \fI\%#34302\fP: (\fI\%ghost\fP) Salt gitfs loads top files from all branches and tags (refs: \fI\%#34505\fP)
  230586. .INDENT 2.0
  230587. .IP \(bu 2
  230588. \fBPR\fP \fI\%#34505\fP: (\fI\%terminalmage\fP) Improve top file merging documentation
  230589. .IP \(bu 2
  230590. \fBPR\fP \fI\%#34492\fP: (\fI\%zer0def\fP) Gracefully handle non\-XML output in GlusterFS execution module.
  230591. .IP \(bu 2
  230592. \fBPR\fP \fI\%#34489\fP: (\fI\%justinta\fP) Use skipTest for network state integration test
  230593. .UNINDENT
  230594. .IP \(bu 2
  230595. \fBISSUE\fP \fI\%#34261\fP: (\fI\%vernondcole\fP) salt.modules.dnsmasq documentation errors (refs: \fI\%#34488\fP, \fI\%#34323\fP)
  230596. .INDENT 2.0
  230597. .IP \(bu 2
  230598. \fBPR\fP \fI\%#34488\fP: (\fI\%rallytime\fP) Update dnsmasq.get_config docs to use correct config_file param.
  230599. .UNINDENT
  230600. .IP \(bu 2
  230601. \fBPR\fP \fI\%#34462\fP: (\fI\%terminalmage\fP) Use \-\-always when available to git describe
  230602. @ \fI2016\-07\-06 03:59:33 UTC\fP
  230603. .INDENT 2.0
  230604. .IP \(bu 2
  230605. e2f576e847 Merge pull request \fI\%#34462\fP from terminalmage/git\-describe\-always
  230606. .IP \(bu 2
  230607. 6ef7ee198e Restrict use of \-\-always to git 1.5.6 and newer
  230608. .IP \(bu 2
  230609. c554b22fc8 modules/git: added \-\-always parameter for git.describe().
  230610. .UNINDENT
  230611. .IP \(bu 2
  230612. \fBPR\fP \fI\%#34467\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34457\fP to 2015.8
  230613. @ \fI2016\-07\-06 03:56:58 UTC\fP
  230614. .INDENT 2.0
  230615. .IP \(bu 2
  230616. \fBPR\fP \fI\%#34457\fP: (\fI\%ryan\-lane\fP) Only access key metadata if we found key metadata (refs: \fI\%#34467\fP)
  230617. .IP \(bu 2
  230618. 85f1f18239 Merge pull request \fI\%#34467\fP from rallytime/bp\-34457
  230619. .IP \(bu 2
  230620. 746883741f Only access key metadata if we found key metadata
  230621. .UNINDENT
  230622. .IP \(bu 2
  230623. \fBPR\fP \fI\%#34432\fP: (\fI\%twangboy\fP) Fix file.append
  230624. @ \fI2016\-07\-05 23:14:22 UTC\fP
  230625. .INDENT 2.0
  230626. .IP \(bu 2
  230627. 9e15337b74 Merge pull request \fI\%#34432\fP from twangboy/fix_file.append
  230628. .IP \(bu 2
  230629. 13f11fddce Remove refactoring code
  230630. .IP \(bu 2
  230631. 78f7c530bb Remove unit tests, integration tests written
  230632. .IP \(bu 2
  230633. b83392edea Remove len() in favor of boolean test
  230634. .IP \(bu 2
  230635. 4373408163 Fix line error
  230636. .IP \(bu 2
  230637. 2479b53e2f Fix erroneous report on newline code
  230638. .IP \(bu 2
  230639. 75b6ed1fd5 Change back to binary read
  230640. .IP \(bu 2
  230641. 65753cff6d Use os.linesep instead of n
  230642. .IP \(bu 2
  230643. a55d63f086 Fix object names
  230644. .IP \(bu 2
  230645. 3e2fe12e5e Add new line if missing
  230646. .IP \(bu 2
  230647. 0b7821c8db Fix file.append state
  230648. .UNINDENT
  230649. .IP \(bu 2
  230650. \fBPR\fP \fI\%#34429\fP: (\fI\%terminalmage\fP) Skip version checking for targeted packages in pkg.latest state
  230651. @ \fI2016\-07\-05 17:50:41 UTC\fP
  230652. .INDENT 2.0
  230653. .IP \(bu 2
  230654. 91e095bb41 Merge pull request \fI\%#34429\fP from terminalmage/pkg\-latest\-versioncheck
  230655. .IP \(bu 2
  230656. 667f31a72a Skip version checking for targeted packages in pkg.latest state
  230657. .IP \(bu 2
  230658. \fBPR\fP \fI\%#34455\fP: (\fI\%cro\fP) Forgot reference to inotify
  230659. .UNINDENT
  230660. .IP \(bu 2
  230661. \fBPR\fP \fI\%#34451\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230662. @ \fI2016\-07\-05 15:57:54 UTC\fP
  230663. .INDENT 2.0
  230664. .IP \(bu 2
  230665. 7bb0868c66 Merge pull request \fI\%#34451\fP from rallytime/merge\-2015.8
  230666. .IP \(bu 2
  230667. 55a91e22be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230668. .IP \(bu 2
  230669. 8c72ee56e4 Merge pull request \fI\%#34435\fP from cachedout/backport_config_dir_integration
  230670. .INDENT 2.0
  230671. .IP \(bu 2
  230672. 0e2c71a537 Backport change to integraiton test suite
  230673. .UNINDENT
  230674. .UNINDENT
  230675. .IP \(bu 2
  230676. \fBISSUE\fP \fI\%#34390\fP: (\fI\%mgresser\fP) Use rpmdev\-vercmp to determine correct version of rpms in CentOS5 (refs: \fI\%#34401\fP)
  230677. .IP \(bu 2
  230678. \fBPR\fP \fI\%#34401\fP: (\fI\%terminalmage\fP) Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  230679. @ \fI2016\-07\-01 17:42:24 UTC\fP
  230680. .INDENT 2.0
  230681. .IP \(bu 2
  230682. e65d1ae374 Merge pull request \fI\%#34401\fP from terminalmage/rpm\-version_cmp
  230683. .IP \(bu 2
  230684. 7cefd4182d Use rpmdev\-vercmp as a fallback for version comparison on RHEL5
  230685. .UNINDENT
  230686. .IP \(bu 2
  230687. \fBPR\fP \fI\%#34366\fP: (\fI\%steverweber\fP) Update service.py
  230688. @ \fI2016\-07\-01 17:40:31 UTC\fP
  230689. .INDENT 2.0
  230690. .IP \(bu 2
  230691. 5ddf417432 Merge pull request \fI\%#34366\fP from steverweber/fix_servicerestart
  230692. .IP \(bu 2
  230693. 7847c39024 Update service.py
  230694. .UNINDENT
  230695. .IP \(bu 2
  230696. \fBPR\fP \fI\%#34426\fP: (\fI\%cro\fP) Document that inotify is Linux only
  230697. @ \fI2016\-07\-01 17:04:38 UTC\fP
  230698. .INDENT 2.0
  230699. .IP \(bu 2
  230700. 485454febb Merge pull request \fI\%#34426\fP from cro/inotify\-linux\-only
  230701. .IP \(bu 2
  230702. 54a02f25ba Document that inotify is Linux only
  230703. .UNINDENT
  230704. .IP \(bu 2
  230705. \fBPR\fP \fI\%#34392\fP: (\fI\%cro\fP) Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  230706. @ \fI2016\-06\-30 18:16:23 UTC\fP
  230707. .INDENT 2.0
  230708. .IP \(bu 2
  230709. fe18bbb527 Merge pull request \fI\%#34392\fP from cro/salt\-cloud\-doc\-clarify
  230710. .IP \(bu 2
  230711. 6cce575d40 Clarify that salt\-cloud doesn\(aqt get installed by bootstrap
  230712. .UNINDENT
  230713. .IP \(bu 2
  230714. \fBPR\fP \fI\%#34373\fP: (\fI\%justinta\fP) Network state integration test
  230715. @ \fI2016\-06\-30 15:05:44 UTC\fP
  230716. .INDENT 2.0
  230717. .IP \(bu 2
  230718. 45b8fb10d7 Merge pull request \fI\%#34373\fP from jtand/network_state_integration_test
  230719. .IP \(bu 2
  230720. 1d24053e36 network.system sls file
  230721. .IP \(bu 2
  230722. 4a9e6af542 network.routes sls file
  230723. .IP \(bu 2
  230724. 76c90b2ef6 network.managed sls file
  230725. .IP \(bu 2
  230726. 84a36369fa Added network state integration test
  230727. .IP \(bu 2
  230728. \fBPR\fP \fI\%#34377\fP: (\fI\%terminalmage\fP) Optimize pkg integration tests and add a couple new tests
  230729. .UNINDENT
  230730. .IP \(bu 2
  230731. \fBPR\fP \fI\%#34368\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230732. @ \fI2016\-06\-29 17:54:49 UTC\fP
  230733. .INDENT 2.0
  230734. .IP \(bu 2
  230735. af8ef1e461 Merge pull request \fI\%#34368\fP from rallytime/merge\-2015.8
  230736. .IP \(bu 2
  230737. 3bce0cb510 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230738. .IP \(bu 2
  230739. 970aaa46d4 Merge pull request \fI\%#34252\fP from gtmanfred/2015.5
  230740. .INDENT 2.0
  230741. .IP \(bu 2
  230742. 82183f1572 return list of nodes for lxc driver when called directly
  230743. .UNINDENT
  230744. .IP \(bu 2
  230745. \fBPR\fP \fI\%#34344\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34324\fP to 2015.8
  230746. .IP \(bu 2
  230747. \fBPR\fP \fI\%#34324\fP: (\fI\%cachedout\fP) Test custom grains matcher (refs: \fI\%#34344\fP)
  230748. .UNINDENT
  230749. .IP \(bu 2
  230750. \fBISSUE\fP \fI\%#33674\fP: (\fI\%edgan\fP) salt\-ssh returns a zero code on jinja template failure. (refs: \fI\%#34316\fP)
  230751. .IP \(bu 2
  230752. \fBISSUE\fP \fI\%#28300\fP: (\fI\%srkunze\fP) [salt\-ssh] Does not return non\-zero exit code (refs: \fI\%#34316\fP)
  230753. .INDENT 2.0
  230754. .IP \(bu 2
  230755. \fBPR\fP \fI\%#34342\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34316\fP to 2015.8
  230756. .IP \(bu 2
  230757. \fBPR\fP \fI\%#34316\fP: (\fI\%edgan\fP) Making salt\-ssh pass proper return codes for jinja rendering errors (refs: \fI\%#34342\fP)
  230758. .IP \(bu 2
  230759. \fBPR\fP \fI\%#34339\fP: (\fI\%terminalmage\fP) Revert py3modernize lint changes
  230760. .UNINDENT
  230761. .IP \(bu 2
  230762. \fBPR\fP \fI\%#34306\fP: (\fI\%ghedo\fP) Fix iptables.flush state: Do not force \(aqfilter\(aq table when flushing
  230763. @ \fI2016\-06\-28 19:03:14 UTC\fP
  230764. .INDENT 2.0
  230765. .IP \(bu 2
  230766. 046bdaa9f2 Merge pull request \fI\%#34306\fP from ghedo/iptables_flush_table
  230767. .IP \(bu 2
  230768. 882c6c9c86 Do not force \(aqfilter\(aq table when flushing
  230769. .UNINDENT
  230770. .IP \(bu 2
  230771. \fBISSUE\fP \fI\%#34261\fP: (\fI\%vernondcole\fP) salt.modules.dnsmasq documentation errors (refs: \fI\%#34488\fP, \fI\%#34323\fP)
  230772. .IP \(bu 2
  230773. \fBISSUE\fP \fI\%#34249\fP: (\fI\%ssgward\fP) Clarify doc on file.copy (refs: \fI\%#34323\fP)
  230774. .IP \(bu 2
  230775. \fBISSUE\fP \fI\%#34247\fP: (\fI\%gravyboat\fP) Update logging docs to mention profile level (refs: \fI\%#34323\fP)
  230776. .IP \(bu 2
  230777. \fBISSUE\fP \fI\%#33694\fP: (\fI\%hjc\fP) Document That Local Files Can Be Used as a Source for File States (refs: \fI\%#34323\fP)
  230778. .INDENT 2.0
  230779. .IP \(bu 2
  230780. \fBPR\fP \fI\%#34323\fP: (\fI\%jacobhammons\fP) Doc clarifications to file modules, addition of new \fIprofile\fP log lev…
  230781. .IP \(bu 2
  230782. \fBPR\fP \fI\%#34325\fP: (\fI\%terminalmage\fP) Remove unnecessarily\-disabled sanity check
  230783. .UNINDENT
  230784. .IP \(bu 2
  230785. \fBPR\fP \fI\%#34335\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230786. @ \fI2016\-06\-28 15:07:15 UTC\fP
  230787. .INDENT 2.0
  230788. .IP \(bu 2
  230789. c5890a0eca Merge pull request \fI\%#34335\fP from rallytime/merge\-2015.8
  230790. .IP \(bu 2
  230791. 2296587536 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230792. .IP \(bu 2
  230793. 6cce545d92 Merge pull request \fI\%#34313\fP from rallytime/bootstrap\-2015.5
  230794. .INDENT 2.0
  230795. .IP \(bu 2
  230796. c7db73be92 [2015.5] Update to latest bootstrap script v2016.06.27
  230797. .UNINDENT
  230798. .IP \(bu 2
  230799. \fBPR\fP \fI\%#34319\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34244\fP to 2015.8
  230800. .IP \(bu 2
  230801. \fBPR\fP \fI\%#34244\fP: (\fI\%the\-glu\fP) Typo in dockerio doc (refs: \fI\%#34319\fP)
  230802. .UNINDENT
  230803. .IP \(bu 2
  230804. \fBPR\fP \fI\%#34312\fP: (\fI\%rallytime\fP) [2015.8] Update to latest bootstrap script v2016.06.27
  230805. @ \fI2016\-06\-27 18:59:59 UTC\fP
  230806. .INDENT 2.0
  230807. .IP \(bu 2
  230808. dd4c937009 Merge pull request \fI\%#34312\fP from rallytime/bootstrap\-2015.8
  230809. .IP \(bu 2
  230810. 944a393f89 [2015.8] Update to latest bootstrap script v2016.06.27
  230811. .UNINDENT
  230812. .IP \(bu 2
  230813. \fBPR\fP \fI\%#34307\fP: (\fI\%rallytime\fP) Fix test example in integration testing docs
  230814. @ \fI2016\-06\-27 17:41:24 UTC\fP
  230815. .INDENT 2.0
  230816. .IP \(bu 2
  230817. 91703d2dc4 Merge pull request \fI\%#34307\fP from rallytime/fix\-test\-example
  230818. .IP \(bu 2
  230819. f44a0543fe Fix test example in integration testing docs
  230820. .UNINDENT
  230821. .IP \(bu 2
  230822. \fBPR\fP \fI\%#34233\fP: (\fI\%thegoodduke\fP) ipset: fix the comment containing blank
  230823. @ \fI2016\-06\-24 19:28:34 UTC\fP
  230824. .INDENT 2.0
  230825. .IP \(bu 2
  230826. d235b1245b Merge pull request \fI\%#34233\fP from thegoodduke/for_2015.8_ipset
  230827. .IP \(bu 2
  230828. 4da5e35bf4 ipset: fix the comment containing blank
  230829. .UNINDENT
  230830. .IP \(bu 2
  230831. \fBISSUE\fP \fI\%#34037\fP: (\fI\%bobrik\fP) salt\-call ignores \-\-config\-dir resulting in failing gpg renderer (refs: \fI\%#34257\fP)
  230832. .IP \(bu 2
  230833. \fBPR\fP \fI\%#34257\fP: (\fI\%rallytime\fP) Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  230834. @ \fI2016\-06\-24 17:25:04 UTC\fP
  230835. .INDENT 2.0
  230836. .IP \(bu 2
  230837. 65c5675a3f Merge pull request \fI\%#34257\fP from rallytime/fix\-34037
  230838. .IP \(bu 2
  230839. d7a5e9b10e Remove test that doesn\(aqt actually test anything
  230840. .IP \(bu 2
  230841. c4c037d600 Use \(aqconfig_dir\(aq setting instead of CONFIG_DIR in gpg renderer
  230842. .UNINDENT
  230843. .IP \(bu 2
  230844. \fBISSUE\fP \fI\%#34273\fP: (\fI\%clinta\fP) file.recurse does not properly cache files, adds a pipe to path (refs: \fI\%#34274\fP)
  230845. .IP \(bu 2
  230846. \fBPR\fP \fI\%#34274\fP: (\fI\%clinta\fP) Don\(aqt escape source before calling managed
  230847. @ \fI2016\-06\-24 17:23:35 UTC\fP
  230848. .INDENT 2.0
  230849. .IP \(bu 2
  230850. 203870f147 Merge pull request \fI\%#34274\fP from clinta/2015.8
  230851. .IP \(bu 2
  230852. 6572454918 Don\(aqt escape source before calling managed
  230853. .UNINDENT
  230854. .IP \(bu 2
  230855. \fBPR\fP \fI\%#34258\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230856. @ \fI2016\-06\-24 14:27:06 UTC\fP
  230857. .INDENT 2.0
  230858. .IP \(bu 2
  230859. a59dc85a15 Merge pull request \fI\%#34258\fP from rallytime/merge\-2015.8
  230860. .IP \(bu 2
  230861. ea914b67cd Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230862. .IP \(bu 2
  230863. 8d5ed91980 Merge pull request \fI\%#34225\fP from richardscollin/fix\-win\-set\-datetime
  230864. .INDENT 2.0
  230865. .IP \(bu 2
  230866. 6286771ef7 Fix win_system.set_system_date_time
  230867. .UNINDENT
  230868. .IP \(bu 2
  230869. cb1e8bf082 Merge pull request \fI\%#34232\fP from thegoodduke/for_2015.5_ipset
  230870. .INDENT 2.0
  230871. .IP \(bu 2
  230872. 344eb60762 ipset: fix commont containing blank
  230873. .UNINDENT
  230874. .UNINDENT
  230875. .IP \(bu 2
  230876. \fBISSUE\fP \fI\%#33873\fP: (\fI\%hrumph\fP) refresh: True not working with pkg.installed state (refs: \fI\%#34093\fP)
  230877. .IP \(bu 2
  230878. \fBPR\fP \fI\%#34093\fP: (\fI\%terminalmage\fP) Catch CommandExecutionError in pkg states
  230879. @ \fI2016\-06\-23 21:00:13 UTC\fP
  230880. .INDENT 2.0
  230881. .IP \(bu 2
  230882. 92962957c8 Merge pull request \fI\%#34093\fP from terminalmage/issue33873
  230883. .IP \(bu 2
  230884. 5edb45d746 win_pkg: refresh pkg database if refresh=True passed to version() or list_pkgs()
  230885. .IP \(bu 2
  230886. 0078adee35 Catch CommandExecutionError in pkg states
  230887. .UNINDENT
  230888. .IP \(bu 2
  230889. \fBPR\fP \fI\%#34136\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2015.8
  230890. @ \fI2016\-06\-23 20:24:58 UTC\fP
  230891. .INDENT 2.0
  230892. .IP \(bu 2
  230893. \fBPR\fP \fI\%#34134\fP: (\fI\%meaksh\fP) Fixed behavior for SUSE OS grains in 2016.3 (refs: \fI\%#34136\fP)
  230894. .IP \(bu 2
  230895. \fBPR\fP \fI\%#33903\fP: (\fI\%meaksh\fP) Fetching grains[\(aqos\(aq] from /etc/os\-release on SUSE systems if it is possible (refs: \fI\%#34134\fP)
  230896. .IP \(bu 2
  230897. cb5399787c Merge pull request \fI\%#34136\fP from meaksh/salt\-suse\-os\-detection\-2015.8
  230898. .IP \(bu 2
  230899. 97f1958863 some cleanup and renaming
  230900. .IP \(bu 2
  230901. 72c8e5d78f better way to check for openSUSE Leap
  230902. .IP \(bu 2
  230903. 548971bdc9 Fix for SUSE OS grains in 2015.8
  230904. .UNINDENT
  230905. .IP \(bu 2
  230906. \fBISSUE\fP \fI\%#34074\fP: (\fI\%fooka03\fP) Unable to use S3 file backend with 2016.3.1 on Ubuntu 14.04 or 16.04 (refs: \fI\%#34208\fP)
  230907. .IP \(bu 2
  230908. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP)
  230909. .INDENT 2.0
  230910. .IP \(bu 2
  230911. \fBPR\fP \fI\%#34208\fP: (\fI\%lomeroe\fP) fix regression from \fI\%#33681\fP which causes pulling a list of s3 objects …
  230912. .IP \(bu 2
  230913. \fBPR\fP \fI\%#33681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33599\fP to 2015.8 (refs: \fI\%#34208\fP)
  230914. .IP \(bu 2
  230915. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP)
  230916. .UNINDENT
  230917. .IP \(bu 2
  230918. \fBISSUE\fP \fI\%#34213\fP: (\fI\%terminalmage\fP) gitfs w/pygit2 \- corner case, traceback with short hexidecimal environment names (refs: \fI\%#34218\fP)
  230919. .IP \(bu 2
  230920. \fBISSUE\fP \fI\%#34212\fP: (\fI\%terminalmage\fP) gitfs: commit SHAs no longer available as fileserver environments (refs: \fI\%#34218\fP)
  230921. .INDENT 2.0
  230922. .IP \(bu 2
  230923. \fBPR\fP \fI\%#34218\fP: (\fI\%terminalmage\fP) Fix a pair of gitfs bugs
  230924. .UNINDENT
  230925. .IP \(bu 2
  230926. \fBISSUE\fP \fI\%#34043\fP: (\fI\%rallytime\fP) state execution stacktraces when psutil isn\(aqt installed (refs: \fI\%#34182\fP)
  230927. .IP \(bu 2
  230928. \fBPR\fP \fI\%#34182\fP: (\fI\%rallytime\fP) Handle child PIDs differently depending on the availability of psutils
  230929. @ \fI2016\-06\-22 19:22:06 UTC\fP
  230930. .INDENT 2.0
  230931. .IP \(bu 2
  230932. \fBPR\fP \fI\%#33942\fP: (\fI\%cachedout\fP) ZD 762 (refs: \fI\%#34182\fP)
  230933. .IP \(bu 2
  230934. 6d643cd528 Merge pull request \fI\%#34182\fP from rallytime/fix\-34043
  230935. .IP \(bu 2
  230936. b7d49c5052 Handle child PIDs differently depending on the availability of psutils
  230937. .IP \(bu 2
  230938. \fBPR\fP \fI\%#34188\fP: (\fI\%terminalmage\fP) Clarify pkg.list_repo_pkgs docstring for held packages
  230939. .IP \(bu 2
  230940. \fBPR\fP \fI\%#34206\fP: (\fI\%terminalmage\fP) Change target for dockerng assuming default status to Nitrogen release
  230941. .UNINDENT
  230942. .IP \(bu 2
  230943. \fBPR\fP \fI\%#34184\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  230944. @ \fI2016\-06\-21 21:43:46 UTC\fP
  230945. .INDENT 2.0
  230946. .IP \(bu 2
  230947. 1c4369d093 Merge pull request \fI\%#34184\fP from rallytime/merge\-2015.8
  230948. .IP \(bu 2
  230949. 8e36e90966 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  230950. .IP \(bu 2
  230951. 5411ebb3b4 Merge pull request \fI\%#34141\fP from jtand/boto_vpc_test_fix
  230952. .INDENT 2.0
  230953. .IP \(bu 2
  230954. b7ac6c735a Moved imports to top, out of _get_moto_version function
  230955. .IP \(bu 2
  230956. 02f9ba99ba Updated version check. Moved check into its own function
  230957. .IP \(bu 2
  230958. d445026c56 Updated test to work with new moto version. Changed strings to unicode
  230959. .UNINDENT
  230960. .UNINDENT
  230961. .IP \(bu 2
  230962. \fBISSUE\fP \fI\%#33972\fP: (\fI\%morganwillcock\fP) 2016.3.1 breaks diskusage beacon (refs: \fI\%#34176\fP, \fI\%#34103\fP)
  230963. .IP \(bu 2
  230964. \fBPR\fP \fI\%#34176\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34103\fP to 2015.8
  230965. @ \fI2016\-06\-21 20:01:46 UTC\fP
  230966. .INDENT 2.0
  230967. .IP \(bu 2
  230968. \fBPR\fP \fI\%#34103\fP: (\fI\%morganwillcock\fP) Fix diskusage beacon (refs: \fI\%#34176\fP)
  230969. .IP \(bu 2
  230970. \fBPR\fP \fI\%#33474\fP: (\fI\%cachedout\fP) Fix diskusage beacon (refs: \fI\%#34103\fP)
  230971. .IP \(bu 2
  230972. c059d6c08c Merge pull request \fI\%#34176\fP from rallytime/bp\-34103
  230973. .IP \(bu 2
  230974. 2e5e7ed03c Fix diskusage beacon
  230975. .UNINDENT
  230976. .IP \(bu 2
  230977. \fBISSUE\fP \fI\%#34114\fP: (\fI\%onorua\fP) can\(aqt read PID from lock file due to exception if gitfs_global_lock is enabled (refs: \fI\%#34179\fP)
  230978. .IP \(bu 2
  230979. \fBPR\fP \fI\%#34179\fP: (\fI\%terminalmage\fP) Raise the correct exception when gitfs lockfile is empty
  230980. @ \fI2016\-06\-21 20:00:59 UTC\fP
  230981. .INDENT 2.0
  230982. .IP \(bu 2
  230983. 5cbaaed167 Merge pull request \fI\%#34179\fP from terminalmage/issue34114
  230984. .IP \(bu 2
  230985. 86d1b8e864 Raise the correct exception when gitfs lockfile is empty
  230986. .UNINDENT
  230987. .IP \(bu 2
  230988. \fBPR\fP \fI\%#34178\fP: (\fI\%terminalmage\fP) Remove unnecesssary comment
  230989. @ \fI2016\-06\-21 19:15:37 UTC\fP
  230990. .INDENT 2.0
  230991. .IP \(bu 2
  230992. 67deded119 Merge pull request \fI\%#34178\fP from terminalmage/remove\-comment
  230993. .IP \(bu 2
  230994. 4965be72b1 Remove unnecesssary comment
  230995. .IP \(bu 2
  230996. \fBPR\fP \fI\%#34165\fP: (\fI\%mcalmer\fP) fix salt \-\-summary to count not responding minions correctly
  230997. .IP \(bu 2
  230998. \fBPR\fP \fI\%#34175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34128\fP to 2015.8
  230999. .IP \(bu 2
  231000. \fBPR\fP \fI\%#34128\fP: (\fI\%bebehei\fP) doc: add missing dot (refs: \fI\%#34175\fP)
  231001. .IP \(bu 2
  231002. \fBPR\fP \fI\%#34174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34066\fP to 2015.8
  231003. .IP \(bu 2
  231004. \fBPR\fP \fI\%#34066\fP: (\fI\%complexsplit\fP) Typo fix (refs: \fI\%#34174\fP)
  231005. .UNINDENT
  231006. .IP \(bu 2
  231007. \fBPR\fP \fI\%#34077\fP: (\fI\%rallytime\fP) Add some grains targeting tests
  231008. @ \fI2016\-06\-21 16:06:30 UTC\fP
  231009. .INDENT 2.0
  231010. .IP \(bu 2
  231011. 3669048654 Merge pull request \fI\%#34077\fP from rallytime/grains\-tests
  231012. .IP \(bu 2
  231013. 2199bb8a78 Add integration tests for grains.append
  231014. .IP \(bu 2
  231015. 37cfe70724 Add some grains targeting tests
  231016. .UNINDENT
  231017. .IP \(bu 2
  231018. \fBPR\fP \fI\%#34142\fP: (\fI\%isbm\fP) Move log message from INFO to DEBUG.
  231019. @ \fI2016\-06\-20 18:57:34 UTC\fP
  231020. .INDENT 2.0
  231021. .IP \(bu 2
  231022. 65fba5b4d7 Merge pull request \fI\%#34142\fP from isbm/isbm\-getid\-loglevel\-shift
  231023. .IP \(bu 2
  231024. 236a67b702 Move log message from INFO to DEBUG.
  231025. .IP \(bu 2
  231026. \fBPR\fP \fI\%#34100\fP: (\fI\%terminalmage\fP) Update documentation on "refresh" behavior in pkg states
  231027. .IP \(bu 2
  231028. \fBPR\fP \fI\%#34072\fP: (\fI\%jfindlay\fP) modules.pkg int tests: skip refresh_db upon error
  231029. .UNINDENT
  231030. .IP \(bu 2
  231031. \fBPR\fP \fI\%#34069\fP: (\fI\%rallytime\fP) Add a test to check for disconnected minion messaging
  231032. @ \fI2016\-06\-16 21:18:38 UTC\fP
  231033. .INDENT 2.0
  231034. .IP \(bu 2
  231035. 1b76de1557 Merge pull request \fI\%#34069\fP from rallytime/test\-minion\-return\-message
  231036. .IP \(bu 2
  231037. 60561ac6fc Add a test to check for disconnected minion messaging
  231038. .UNINDENT
  231039. .IP \(bu 2
  231040. \fBISSUE\fP \fI\%#30100\fP: (\fI\%armooo\fP) Masterless gitfs performance (refs: \fI\%#34048\fP)
  231041. .IP \(bu 2
  231042. \fBPR\fP \fI\%#34048\fP: (\fI\%terminalmage\fP) RFC: proposed fix for multiple fileserver updates in masterless runs
  231043. @ \fI2016\-06\-16 21:10:59 UTC\fP
  231044. .INDENT 2.0
  231045. .IP \(bu 2
  231046. 3119693dac Merge pull request \fI\%#34048\fP from terminalmage/issue30100
  231047. .IP \(bu 2
  231048. 715e7af8a4 Ensure only one fileserver update in a masterless run
  231049. .UNINDENT
  231050. .IP \(bu 2
  231051. \fBPR\fP \fI\%#34011\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP and \fI\%#34009\fP to 2015.8
  231052. @ \fI2016\-06\-16 15:41:02 UTC\fP
  231053. .INDENT 2.0
  231054. .IP \(bu 2
  231055. \fBPR\fP \fI\%#34009\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33948\fP to 2016.3 + add log message (refs: \fI\%#34011\fP)
  231056. .IP \(bu 2
  231057. \fBPR\fP \fI\%#33948\fP: (\fI\%cachedout\fP) Save an entire minion cache traversal on each master pub (refs: \fI\%#34011\fP, \fI\%#34009\fP)
  231058. .IP \(bu 2
  231059. dd03024931 Merge pull request \fI\%#34011\fP from rallytime/bp\-33948\-2015.8
  231060. .IP \(bu 2
  231061. a4660d1ff7 Warn when custom returners don\(aqt have minions kwarg in save_load
  231062. .IP \(bu 2
  231063. 78befde62f Add note to release notes about returner minions kwarg change
  231064. .IP \(bu 2
  231065. 4e7f35fa36 Fix loop over cache in auth checking!
  231066. .IP \(bu 2
  231067. 06963e0505 Save an entire minion cache traversal on each master pub
  231068. .IP \(bu 2
  231069. \fBPR\fP \fI\%#34051\fP: (\fI\%tegbert\fP) Fixed a bug in the consul.py module that was preventing services
  231070. .UNINDENT
  231071. .IP \(bu 2
  231072. \fBPR\fP \fI\%#34045\fP: (\fI\%jacobhammons\fP) Updated latest release version
  231073. @ \fI2016\-06\-15 19:22:43 UTC\fP
  231074. .INDENT 2.0
  231075. .IP \(bu 2
  231076. 8ba117c7f6 Merge pull request \fI\%#34045\fP from jacobhammons/release\-prev
  231077. .IP \(bu 2
  231078. 43b4a12aa2 Updated latest release version
  231079. .IP \(bu 2
  231080. \fBPR\fP \fI\%#34020\fP: (\fI\%twangboy\fP) Always make changes to minion config if set (2015.8)
  231081. .IP \(bu 2
  231082. \fBPR\fP \fI\%#34030\fP: (\fI\%vutny\fP) More YAML indentation fixes in state module examples
  231083. .IP \(bu 2
  231084. \fBPR\fP \fI\%#34003\fP: (\fI\%vutny\fP) states.file: fix indentation in YAML examples (refs: \fI\%#34030\fP)
  231085. .UNINDENT
  231086. .IP \(bu 2
  231087. \fBPR\fP \fI\%#34018\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231088. @ \fI2016\-06\-14 22:53:19 UTC\fP
  231089. .INDENT 2.0
  231090. .IP \(bu 2
  231091. 5b5eae4ca9 Merge pull request \fI\%#34018\fP from rallytime/merge\-2015.8
  231092. .IP \(bu 2
  231093. 77f44f3087 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231094. .IP \(bu 2
  231095. 871f7966ce Lint fix for \fI\%#34000\fP (\fI\%#34005\fP)
  231096. .IP \(bu 2
  231097. f758e42172 Fix incorrectly written test (\fI\%#34000\fP)
  231098. .IP \(bu 2
  231099. cf6281b4cf Add loader.utils() example to calling minion_mods (\fI\%#33953\fP)
  231100. .IP \(bu 2
  231101. 6b98e8a9ea Merge pull request \fI\%#33880\fP from terminalmage/zh744
  231102. .INDENT 2.0
  231103. .IP \(bu 2
  231104. ea726d11c8 pkg.uptodate: Pass kwargs to pkg.list_upgrades
  231105. .IP \(bu 2
  231106. de90b35d2b salt/modules/zypper.py: add fromrepo support to list_upgrades
  231107. .IP \(bu 2
  231108. 35fbb06df5 salt/modules/win_pkg.py: add kwargs to list_upgrades
  231109. .IP \(bu 2
  231110. bf5505f425 salt/modules/solarisips.py: add kwargs to list_upgrades
  231111. .IP \(bu 2
  231112. 6e89a8be98 salt/modules/pkgutil.py: add kwargs to list_upgrades
  231113. .IP \(bu 2
  231114. 5179dbcec4 salt/modules/pacman.py: add kwargs to list_upgrades
  231115. .IP \(bu 2
  231116. 46e5a52784 salt/modules/macports.py: add kwargs to list_upgrades
  231117. .IP \(bu 2
  231118. 76143b76ca salt/modules/ebuild.py: add kwargs to list_upgrades
  231119. .IP \(bu 2
  231120. b40fc9bc62 salt/modules/brew.py: add kwargs to list_upgrades
  231121. .IP \(bu 2
  231122. 4f11c16d86 salt/modules/aptpkg.py: add fromrepo support to list_upgrades
  231123. .UNINDENT
  231124. .IP \(bu 2
  231125. cb88960ed1 Merge pull request \fI\%#33904\fP from rallytime/bp\-33806
  231126. .INDENT 2.0
  231127. .IP \(bu 2
  231128. 638ccf501d Work around upstream cherrypy bug
  231129. .UNINDENT
  231130. .IP \(bu 2
  231131. \fBPR\fP \fI\%#34003\fP: (\fI\%vutny\fP) states.file: fix indentation in YAML examples (refs: \fI\%#34030\fP)
  231132. .UNINDENT
  231133. .IP \(bu 2
  231134. \fBISSUE\fP \fI\%#20809\fP: (\fI\%lorengordon\fP) Function pam.read_file is not available? (refs: \fI\%#34002\fP)
  231135. .INDENT 2.0
  231136. .IP \(bu 2
  231137. \fBPR\fP \fI\%#34002\fP: (\fI\%lorengordon\fP) Remove loader test for pam module
  231138. .UNINDENT
  231139. .IP \(bu 2
  231140. \fBPR\fP \fI\%#33990\fP: (\fI\%jacobhammons\fP) Adds links to several current Salt\-related projects
  231141. @ \fI2016\-06\-14 01:15:20 UTC\fP
  231142. .INDENT 2.0
  231143. .IP \(bu 2
  231144. c4dab6a074 Merge pull request \fI\%#33990\fP from jacobhammons/community\-projects
  231145. .IP \(bu 2
  231146. b20213fd79 Adds links to several current Salt\-related projects Removes the salt_projects.rst file which hasn\(aqt been updated in a long time, this is replaced by the updated topics/projects/index.rst file Adds a note about Salt Pack to the installation doc
  231147. .UNINDENT
  231148. .IP \(bu 2
  231149. \fBPR\fP \fI\%#33983\fP: (\fI\%twangboy\fP) Clarify the \fIaccount_exists\fP parameter
  231150. @ \fI2016\-06\-14 01:11:48 UTC\fP
  231151. .INDENT 2.0
  231152. .IP \(bu 2
  231153. 444c15792c Merge pull request \fI\%#33983\fP from twangboy/fix_docs_join_domain
  231154. .IP \(bu 2
  231155. b057be04b4 Fix typo, more documentation
  231156. .IP \(bu 2
  231157. d8c2f3e57a Clarify the \fIaccount_exists\fP parameter
  231158. .UNINDENT
  231159. .IP \(bu 2
  231160. \fBPR\fP \fI\%#33951\fP: (\fI\%jfindlay\fP) modules.gem int tests: more fixes
  231161. @ \fI2016\-06\-14 00:46:43 UTC\fP
  231162. .INDENT 2.0
  231163. .IP \(bu 2
  231164. 9bd2317992 Merge pull request \fI\%#33951\fP from jfindlay/gem_tests
  231165. .IP \(bu 2
  231166. 2eb633ccad modules.gem int tests: only check known installed gems
  231167. .IP \(bu 2
  231168. 9f3e18b037 modules.gem int tests: (un)install a non\-core gem
  231169. .UNINDENT
  231170. .IP \(bu 2
  231171. \fBPR\fP \fI\%#33984\fP: (\fI\%jfindlay\fP) Add docs and tests to disk state
  231172. @ \fI2016\-06\-14 00:43:38 UTC\fP
  231173. .INDENT 2.0
  231174. .IP \(bu 2
  231175. 53baae6eb1 Merge pull request \fI\%#33984\fP from jfindlay/disk_capacity
  231176. .IP \(bu 2
  231177. 6cbe31e6c2 states.disk: rewrite unit tests
  231178. .IP \(bu 2
  231179. 82c77b533f states.disk.status: validate percent values
  231180. .IP \(bu 2
  231181. aedc4e15e5 states.disk: add documentation
  231182. .UNINDENT
  231183. .IP \(bu 2
  231184. \fBPR\fP \fI\%#33985\fP: (\fI\%rallytime\fP) Write some more simple batch command tests
  231185. @ \fI2016\-06\-14 00:38:05 UTC\fP
  231186. .INDENT 2.0
  231187. .IP \(bu 2
  231188. fa5efb6a69 Merge pull request \fI\%#33985\fP from rallytime/more\-batch\-tests
  231189. .IP \(bu 2
  231190. 3e7ab8c7b3 Write some more simple batch command tests
  231191. .IP \(bu 2
  231192. \fBPR\fP \fI\%#33684\fP: (\fI\%jfindlay\fP) add acl unit tests
  231193. .IP \(bu 2
  231194. \fBPR\fP \fI\%#33942\fP: (\fI\%cachedout\fP) ZD 762 (refs: \fI\%#34182\fP)
  231195. .UNINDENT
  231196. .IP \(bu 2
  231197. \fBPR\fP \fI\%#33946\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33698\fP to 2015.8
  231198. @ \fI2016\-06\-13 15:55:22 UTC\fP
  231199. .INDENT 2.0
  231200. .IP \(bu 2
  231201. \fBPR\fP \fI\%#33698\fP: (\fI\%opdude\fP) Vsphere fixes (refs: \fI\%#33946\fP)
  231202. .IP \(bu 2
  231203. 0281d491c6 Merge pull request \fI\%#33946\fP from rallytime/bp\-33698
  231204. .IP \(bu 2
  231205. 5fdfed1cb9 Make sure we only use GetConnection if we are using a proxy salt minion
  231206. .IP \(bu 2
  231207. 1505c5724b Fix a bug with self signed certificates and creating a new VM
  231208. .UNINDENT
  231209. .IP \(bu 2
  231210. \fBISSUE\fP \fI\%#33911\fP: (\fI\%xlotlu\fP) salt\-ssh + grains.filter_by Type error: filter_by() got an unexpected keyword argument \(aqbase\(aq (refs: \fI\%#33952\fP)
  231211. .IP \(bu 2
  231212. \fBPR\fP \fI\%#33952\fP: (\fI\%rallytime\fP) Add base argument to salt\-ssh grains wrapper for filter_by func
  231213. @ \fI2016\-06\-13 15:51:33 UTC\fP
  231214. .INDENT 2.0
  231215. .IP \(bu 2
  231216. dff3f51955 Merge pull request \fI\%#33952\fP from rallytime/fix\-33911
  231217. .IP \(bu 2
  231218. 03b7cbbd2c Add base argument to salt\-ssh grains wrapper for filter_by func
  231219. .IP \(bu 2
  231220. \fBPR\fP \fI\%#33962\fP: (\fI\%jacobhammons\fP) Adds a "Generated on <timestamp>" line to the html footer
  231221. .UNINDENT
  231222. .IP \(bu 2
  231223. \fBISSUE\fP \fI\%#29525\fP: (\fI\%apergos\fP) master config setting ping_on_rotate is broken if minion_data_cache is disabled (refs: \fI\%#33765\fP)
  231224. .INDENT 2.0
  231225. .IP \(bu 2
  231226. \fBPR\fP \fI\%#33765\fP: (\fI\%cachedout\fP) Correct issue with ping on rotate with minion cache
  231227. .UNINDENT
  231228. .IP \(bu 2
  231229. \fBPR\fP \fI\%#33888\fP: (\fI\%jfindlay\fP) random.org checks
  231230. @ \fI2016\-06\-10 15:45:07 UTC\fP
  231231. .INDENT 2.0
  231232. .IP \(bu 2
  231233. 378dd7ca06 Merge pull request \fI\%#33888\fP from jfindlay/random_check
  231234. .IP \(bu 2
  231235. 6acee3cc30 modules.random_org._query: only return text if present
  231236. .IP \(bu 2
  231237. 82f95429db modules.random_org unit tests: skip if random.org down
  231238. .IP \(bu 2
  231239. 1f9422e0cd utils.http.query: also except gaierror with tornado
  231240. .UNINDENT
  231241. .IP \(bu 2
  231242. \fBISSUE\fP \fI\%#31499\fP: (\fI\%Reiner030\fP) FeatureRequest: boto_elb misses connection_settings \- idle_timeout (refs: \fI\%#33936\fP)
  231243. .INDENT 2.0
  231244. .IP \(bu 2
  231245. \fBPR\fP \fI\%#33936\fP: (\fI\%rallytime\fP) Add connecting_settings to boto_elb state attributes list
  231246. .UNINDENT
  231247. .IP \(bu 2
  231248. \fBISSUE\fP \fI\%#29249\fP: (\fI\%timcharper\fP) \fIsalt\-cloud\fP \fIsync_after_install: all\fP does not seem to sync anything at all (refs: \fI\%#33917\fP)
  231249. .INDENT 2.0
  231250. .IP \(bu 2
  231251. \fBPR\fP \fI\%#33917\fP: (\fI\%techhat\fP) Wait for up to a minute for sync_after_install
  231252. .UNINDENT
  231253. .IP \(bu 2
  231254. \fBPR\fP \fI\%#33877\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231255. @ \fI2016\-06\-09 14:50:42 UTC\fP
  231256. .INDENT 2.0
  231257. .IP \(bu 2
  231258. ef6da0be5d Merge pull request \fI\%#33877\fP from rallytime/merge\-2015.8
  231259. .IP \(bu 2
  231260. 398534a9e7 Fix ret return from merge\-conflict resolution
  231261. .IP \(bu 2
  231262. b8e4706074 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231263. .IP \(bu 2
  231264. cdda593c50 Merge pull request \fI\%#33829\fP from terminalmage/update\-versionchanged
  231265. .INDENT 2.0
  231266. .IP \(bu 2
  231267. f7028eb1c6 Update versionchanged directive
  231268. .UNINDENT
  231269. .IP \(bu 2
  231270. b8e6c144d8 Merge pull request \fI\%#33833\fP from terminalmage/issue33645
  231271. .INDENT 2.0
  231272. .IP \(bu 2
  231273. 91745c2a67 Support syncing pillar modules to masterless minions
  231274. .UNINDENT
  231275. .IP \(bu 2
  231276. e061788e81 Merge pull request \fI\%#33814\fP from terminalmage/archive\-extracted\-xz
  231277. .INDENT 2.0
  231278. .IP \(bu 2
  231279. 897a716df2 Support extraction of XZ archives in archive.extracted state
  231280. .UNINDENT
  231281. .IP \(bu 2
  231282. fa983e91cf Merge pull request \fI\%#33778\fP from sodium\-chloride/2015.5\-2016\-0604\-1938
  231283. .INDENT 2.0
  231284. .IP \(bu 2
  231285. a5fb6d7a69 Fix minor docstring issues
  231286. .UNINDENT
  231287. .IP \(bu 2
  231288. b9133326c8 Merge pull request \fI\%#33726\fP from jtand/sysmod_skip_valid_docs_glance
  231289. .INDENT 2.0
  231290. .IP \(bu 2
  231291. ebee8a89af glance.warn_until shouldn\(aqt be checked for a doc string
  231292. .UNINDENT
  231293. .IP \(bu 2
  231294. 137f0b19f3 Merge pull request \fI\%#33611\fP from TargetHolding/2015.5
  231295. .INDENT 2.0
  231296. .IP \(bu 2
  231297. 1dd15a603b solve\(aq TypeError: expected string or buffer\(aq in json/decoder.py
  231298. .IP \(bu 2
  231299. eaf42ca892 solve AttributeError: \(aqmodule\(aq object has no attribute \(aqexception\(aq
  231300. .UNINDENT
  231301. .UNINDENT
  231302. .IP \(bu 2
  231303. \fBISSUE\fP \fI\%#33810\fP: (\fI\%chiro79\fP) locate.locate fails always (refs: \fI\%#33827\fP)
  231304. .IP \(bu 2
  231305. \fBPR\fP \fI\%#33827\fP: (\fI\%cachedout\fP) Fix broken locate.locate function
  231306. @ \fI2016\-06\-08 13:49:57 UTC\fP
  231307. .INDENT 2.0
  231308. .IP \(bu 2
  231309. ec09095c45 Merge pull request \fI\%#33827\fP from cachedout/issue_33810
  231310. .IP \(bu 2
  231311. 9d36f1e474 Fix broken locate.locate function
  231312. .UNINDENT
  231313. .IP \(bu 2
  231314. \fBPR\fP \fI\%#33839\fP: (\fI\%cachedout\fP) Fix another unit test stacktrace in pkg_resource
  231315. @ \fI2016\-06\-08 13:32:55 UTC\fP
  231316. .INDENT 2.0
  231317. .IP \(bu 2
  231318. f7b3d0eda0 Merge pull request \fI\%#33839\fP from cachedout/fix_pkgresource_test_stacktrace
  231319. .IP \(bu 2
  231320. 435547a747 Fix another unit test stacktrace in pkg_resource
  231321. .UNINDENT
  231322. .IP \(bu 2
  231323. \fBPR\fP \fI\%#33840\fP: (\fI\%cachedout\fP) Remove matcher tests
  231324. @ \fI2016\-06\-08 13:31:41 UTC\fP
  231325. .INDENT 2.0
  231326. .IP \(bu 2
  231327. 5f081ef31c Merge pull request \fI\%#33840\fP from cachedout/remove_matcher_unit_tests
  231328. .IP \(bu 2
  231329. 6297448377 Remove matcher tests
  231330. .UNINDENT
  231331. .IP \(bu 2
  231332. \fBPR\fP \fI\%#33836\fP: (\fI\%cachedout\fP) Fixing more stupid unit tests
  231333. @ \fI2016\-06\-07 21:34:04 UTC\fP
  231334. .INDENT 2.0
  231335. .IP \(bu 2
  231336. cda032dab2 Merge pull request \fI\%#33836\fP from cachedout/fix_winserver_manager_test
  231337. .IP \(bu 2
  231338. 453fb1ac91 Fixing more stupid unit tests
  231339. .UNINDENT
  231340. .IP \(bu 2
  231341. \fBPR\fP \fI\%#33805\fP: (\fI\%jfindlay\fP) states.pkg int tests: skip if pkg mgr unavailable
  231342. @ \fI2016\-06\-07 14:40:47 UTC\fP
  231343. .INDENT 2.0
  231344. .IP \(bu 2
  231345. 1db559afe9 Merge pull request \fI\%#33805\fP from jfindlay/pkg_tests
  231346. .IP \(bu 2
  231347. 0c069ddc95 states.pkg int tests: skip if pkg mgr unavailable
  231348. .UNINDENT
  231349. .IP \(bu 2
  231350. \fBPR\fP \fI\%#33808\fP: (\fI\%jfindlay\fP) fix some problems with the gem module integration tests
  231351. @ \fI2016\-06\-07 14:40:25 UTC\fP
  231352. .INDENT 2.0
  231353. .IP \(bu 2
  231354. 3984b65486 Merge pull request \fI\%#33808\fP from jfindlay/gem_tests
  231355. .IP \(bu 2
  231356. f7c19a1a58 modules.gem int tests: relax version checks
  231357. .IP \(bu 2
  231358. 6af47d2ba7 modules.gem int tests: remove pkgs before testing install
  231359. .UNINDENT
  231360. .IP \(bu 2
  231361. \fBPR\fP \fI\%#33770\fP: (\fI\%jfindlay\fP) service state integration tests
  231362. @ \fI2016\-06\-07 14:37:54 UTC\fP
  231363. .INDENT 2.0
  231364. .IP \(bu 2
  231365. c30d8a8c61 Merge pull request \fI\%#33770\fP from jfindlay/service_tests
  231366. .IP \(bu 2
  231367. f13f914755 states.service: add integration tests
  231368. .IP \(bu 2
  231369. 90aee79c39 states.service.mod_watch: update unit test
  231370. .IP \(bu 2
  231371. d210a92f09 states.service.mod_watch: update sfun and force docs
  231372. .UNINDENT
  231373. .IP \(bu 2
  231374. \fBPR\fP \fI\%#33691\fP: (\fI\%justinta\fP) Gem integration test
  231375. @ \fI2016\-06\-06 11:13:23 UTC\fP
  231376. .INDENT 2.0
  231377. .IP \(bu 2
  231378. 7fdfbe9a28 Merge pull request \fI\%#33691\fP from jtand/gem_integration_test
  231379. .IP \(bu 2
  231380. ff2dae103d ubuntu doesn\(aqt install default gems when ruby is installed
  231381. .IP \(bu 2
  231382. 504df9a65a Fixed lint error
  231383. .IP \(bu 2
  231384. 0cb1bfa0d3 Removed extra :
  231385. .IP \(bu 2
  231386. 86f59b3e80 Made more pythonic
  231387. .IP \(bu 2
  231388. 2f36f34981 Fixed salt.util import. Added status check to make sure external resource is available
  231389. .IP \(bu 2
  231390. 400a71ec33 Removed redundancies
  231391. .IP \(bu 2
  231392. 91db411bea A couple lint fixes
  231393. .IP \(bu 2
  231394. c97f3319b9 Add check for gem binary
  231395. .IP \(bu 2
  231396. 210aceb402 Refactored tests to not use return messages
  231397. .IP \(bu 2
  231398. 9d437bd45d Removed artifact from testing
  231399. .IP \(bu 2
  231400. 134e1fa888 Fixed typos, and added destructiveTest decorator
  231401. .IP \(bu 2
  231402. 37bc3ad8fd Fixed typo, uninstalled to uninstall
  231403. .IP \(bu 2
  231404. 5b23b91ac6 Integration test for gem module
  231405. .UNINDENT
  231406. .IP \(bu 2
  231407. \fBPR\fP \fI\%#33777\fP: (\fI\%sacren\fP) Fix minor docstring issue of arg being missing
  231408. @ \fI2016\-06\-06 10:44:59 UTC\fP
  231409. .INDENT 2.0
  231410. .IP \(bu 2
  231411. bb4194bb79 Merge pull request \fI\%#33777\fP from sodium\-chloride/2015.8\-2016\-0604\-1939
  231412. .IP \(bu 2
  231413. c1fd830a1a Fix minor docstring issue of arg being missing
  231414. .UNINDENT
  231415. .IP \(bu 2
  231416. \fBISSUE\fP \fI\%#31219\fP: (\fI\%gladiatr72\fP) when the minions have all been destroyed... (refs: \fI\%#33759\fP)
  231417. .IP \(bu 2
  231418. \fBPR\fP \fI\%#33759\fP: (\fI\%cachedout\fP) Catch no minions exception in batch mode
  231419. @ \fI2016\-06\-03 21:22:49 UTC\fP
  231420. .INDENT 2.0
  231421. .IP \(bu 2
  231422. c749aea409 Merge pull request \fI\%#33759\fP from cachedout/issue_31219
  231423. .IP \(bu 2
  231424. 15a39f8646 Catch no minions exception in batch mode
  231425. .UNINDENT
  231426. .IP \(bu 2
  231427. \fBISSUE\fP \fI\%#33554\fP: (\fI\%jfindlay\fP) local cache missing directories while running test suite (refs: \fI\%#33653\fP)
  231428. .IP \(bu 2
  231429. \fBPR\fP \fI\%#33719\fP: (\fI\%cachedout\fP) Catch oserror for race condition
  231430. @ \fI2016\-06\-03 17:25:26 UTC\fP
  231431. .INDENT 2.0
  231432. .IP \(bu 2
  231433. \fBPR\fP \fI\%#33653\fP: (\fI\%cachedout\fP) Create missing jid dir if it doesn\(aqt exist (refs: \fI\%#33719\fP)
  231434. .IP \(bu 2
  231435. 47d668e071 Merge pull request \fI\%#33719\fP from cachedout/fixup_33653
  231436. .IP \(bu 2
  231437. 635efa248b Change to just surround the mkdir
  231438. .IP \(bu 2
  231439. 21b7123a60 Catch oserror for race condition
  231440. .UNINDENT
  231441. .IP \(bu 2
  231442. \fBPR\fP \fI\%#33712\fP: (\fI\%meaksh\fP) Fix for groupadd execution module failures in SLES11 systems
  231443. @ \fI2016\-06\-03 16:13:06 UTC\fP
  231444. .INDENT 2.0
  231445. .IP \(bu 2
  231446. 11e39e7203 Merge pull request \fI\%#33712\fP from meaksh/fix\-for\-groupadd\-module\-failures\-in\-SLE11\-2015.8
  231447. .IP \(bu 2
  231448. ab738416ba pylint fix
  231449. .IP \(bu 2
  231450. bf27e5d36e test_members cleanup
  231451. .IP \(bu 2
  231452. ba815dbf76 improvements on groupadd unit tests
  231453. .IP \(bu 2
  231454. 3bbc5ae0d9 one line is better
  231455. .IP \(bu 2
  231456. a53dc192c9 fix groupadd module for sles11 systems
  231457. .UNINDENT
  231458. .IP \(bu 2
  231459. \fBPR\fP \fI\%#33718\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33700\fP to 2015.8
  231460. @ \fI2016\-06\-03 16:10:44 UTC\fP
  231461. .INDENT 2.0
  231462. .IP \(bu 2
  231463. \fBPR\fP \fI\%#33700\fP: (\fI\%sacren\fP) Fix incorrect args passed to timezone.set_hwclock (refs: \fI\%#33718\fP)
  231464. .IP \(bu 2
  231465. 2c450a7494 Merge pull request \fI\%#33718\fP from rallytime/bp\-33700
  231466. .IP \(bu 2
  231467. a6a446121a Fix speed issue
  231468. .IP \(bu 2
  231469. a41146730a Fix incorrect args passed to timezone.set_hwclock
  231470. .UNINDENT
  231471. .IP \(bu 2
  231472. \fBISSUE\fP \fI\%#33725\fP: (\fI\%terminalmage\fP) git_pillar w/pygit2 fails to checkout a non\-master branch when remote repo has no master branch (refs: \fI\%#33727\fP)
  231473. .IP \(bu 2
  231474. \fBPR\fP \fI\%#33727\fP: (\fI\%terminalmage\fP) Fix git_pillar edge case for remote repos without a master branch
  231475. @ \fI2016\-06\-03 16:03:59 UTC\fP
  231476. .INDENT 2.0
  231477. .IP \(bu 2
  231478. b07701f0a0 Merge pull request \fI\%#33727\fP from terminalmage/issue33725
  231479. .IP \(bu 2
  231480. d8ba7ed5a5 Fix git_pillar edge case for remote repos without a master branch
  231481. .UNINDENT
  231482. .IP \(bu 2
  231483. \fBPR\fP \fI\%#33728\fP: (\fI\%jfindlay\fP) Make \fIconfigurable_test_state\fP configurable in test mode
  231484. @ \fI2016\-06\-03 16:02:57 UTC\fP
  231485. .INDENT 2.0
  231486. .IP \(bu 2
  231487. 015e50cec8 Merge pull request \fI\%#33728\fP from jfindlay/test_state_test
  231488. .IP \(bu 2
  231489. 87e018af2a states.test.configurable_test_state: add unit tests
  231490. .IP \(bu 2
  231491. c2d0679c4b states.test.configurable_test_state: refactor change_data
  231492. .IP \(bu 2
  231493. f06ff1af1f states.test.configurable_test_state test mode
  231494. .UNINDENT
  231495. .IP \(bu 2
  231496. \fBPR\fP \fI\%#33729\fP: (\fI\%twangboy\fP) Add exclude option to win_servermanager
  231497. @ \fI2016\-06\-03 15:53:13 UTC\fP
  231498. .INDENT 2.0
  231499. .IP \(bu 2
  231500. 1cf8fe3f1d Merge pull request \fI\%#33729\fP from twangboy/fix_win_servermanager
  231501. .IP \(bu 2
  231502. 2de91d166f Fix docstring
  231503. .IP \(bu 2
  231504. 9870479d99 Add exclude option to state
  231505. .IP \(bu 2
  231506. 50bd76e206 Add exclude option
  231507. .UNINDENT
  231508. .IP \(bu 2
  231509. \fBISSUE\fP \fI\%#31816\fP: (\fI\%vutny\fP) Deprecate or update the \fI\%http://debian.saltstack.com/\fP (refs: \fI\%#33743\fP)
  231510. .IP \(bu 2
  231511. \fBPR\fP \fI\%#33743\fP: (\fI\%vutny\fP) Debian installation docs: drop section about community\-maintained repo
  231512. @ \fI2016\-06\-03 15:29:45 UTC\fP
  231513. .INDENT 2.0
  231514. .IP \(bu 2
  231515. 6c150d840d Merge pull request \fI\%#33743\fP from vutny/drop\-debian\-community\-repo\-doc
  231516. .IP \(bu 2
  231517. 8621f5be54 Debian installation docs: drop section about community\-maintained repository
  231518. .UNINDENT
  231519. .IP \(bu 2
  231520. \fBISSUE\fP \fI\%#33554\fP: (\fI\%jfindlay\fP) local cache missing directories while running test suite (refs: \fI\%#33653\fP)
  231521. .INDENT 2.0
  231522. .IP \(bu 2
  231523. \fBPR\fP \fI\%#33653\fP: (\fI\%cachedout\fP) Create missing jid dir if it doesn\(aqt exist (refs: \fI\%#33719\fP)
  231524. .UNINDENT
  231525. .IP \(bu 2
  231526. \fBPR\fP \fI\%#33654\fP: (\fI\%twangboy\fP) Fix win servermanager
  231527. @ \fI2016\-06\-02 17:55:45 UTC\fP
  231528. .INDENT 2.0
  231529. .IP \(bu 2
  231530. 8a566ff4b9 Merge pull request \fI\%#33654\fP from twangboy/fix_win_servermanager
  231531. .IP \(bu 2
  231532. 6c7b21676a Fix lint and tests
  231533. .IP \(bu 2
  231534. 4775e6bdf0 Add additional params to state
  231535. .IP \(bu 2
  231536. b0af32346d Add additional params to install and remove
  231537. .UNINDENT
  231538. .IP \(bu 2
  231539. \fBISSUE\fP \fI\%#33424\fP: (\fI\%thusoy\fP) Error logging with non\-environment branches in gitfs (refs: \fI\%#33679\fP)
  231540. .IP \(bu 2
  231541. \fBPR\fP \fI\%#33679\fP: (\fI\%terminalmage\fP) Only compile the template contents if they evaluate to True
  231542. @ \fI2016\-06\-02 17:20:00 UTC\fP
  231543. .INDENT 2.0
  231544. .IP \(bu 2
  231545. 996ff56dd4 Merge pull request \fI\%#33679\fP from terminalmage/issue33424
  231546. .IP \(bu 2
  231547. 9da40c4437 Append empty dictionaries for saltenvs with no top file
  231548. .IP \(bu 2
  231549. 5eb1b3ca62 Only compile the template contents if they evaluate to True
  231550. .UNINDENT
  231551. .IP \(bu 2
  231552. \fBPR\fP \fI\%#33685\fP: (\fI\%jfindlay\fP) modules.cp.get_url: add test for \fI\%https://\fP
  231553. @ \fI2016\-06\-01 22:25:41 UTC\fP
  231554. .INDENT 2.0
  231555. .IP \(bu 2
  231556. c8dc70b96a Merge pull request \fI\%#33685\fP from jfindlay/get_url_test
  231557. .IP \(bu 2
  231558. 2b5035fdc0 modules.cp.get_url: add test for \fI\%https://\fP
  231559. .UNINDENT
  231560. .IP \(bu 2
  231561. \fBPR\fP \fI\%#33581\fP: (\fI\%dincamihai\fP) Call zypper refresh after adding/modifying a repository
  231562. @ \fI2016\-06\-01 22:25:11 UTC\fP
  231563. .INDENT 2.0
  231564. .IP \(bu 2
  231565. 5e022ff29c Merge pull request \fI\%#33581\fP from dincamihai/2015.8
  231566. .IP \(bu 2
  231567. 788730ea72 DRY test
  231568. .IP \(bu 2
  231569. 1d3769ccfa Improve zypper_patcher_config looks
  231570. .IP \(bu 2
  231571. 42d8d4195c Assert only gpgautoimport: True works
  231572. .IP \(bu 2
  231573. ced75e8e62 Reverse if conditions and rename variable
  231574. .IP \(bu 2
  231575. 80bfbe5c52 Reduce dicts and lists to one line where possible
  231576. .IP \(bu 2
  231577. 1d5d6d7d60 Update test method names to pass pylint
  231578. .IP \(bu 2
  231579. c7ae5907ee Call zypper refresh after adding/modifying a repository
  231580. .UNINDENT
  231581. .IP \(bu 2
  231582. \fBISSUE\fP \fI\%#32916\fP: (\fI\%giannello\fP) file.managed memory usage with s3 sources (refs: \fI\%#33599\fP)
  231583. .IP \(bu 2
  231584. \fBPR\fP \fI\%#33681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33599\fP to 2015.8 (refs: \fI\%#34208\fP)
  231585. @ \fI2016\-06\-01 21:14:29 UTC\fP
  231586. .INDENT 2.0
  231587. .IP \(bu 2
  231588. \fBPR\fP \fI\%#33599\fP: (\fI\%lomeroe\fP) Fix s3 large file download (refs: \fI\%#33681\fP)
  231589. .IP \(bu 2
  231590. 069ee15b7c Merge pull request \fI\%#33681\fP from rallytime/bp\-33599
  231591. .IP \(bu 2
  231592. 45143a599b use requests streaming for uploads/downloads to file (return_bin unchanged) allows downloading files larger than amount of memory (non\-stream reads into memory before writing to disk or uploading)
  231593. .IP \(bu 2
  231594. 4a9b23f03f first go at having requests use streaming for get/put requests
  231595. .UNINDENT
  231596. .IP \(bu 2
  231597. \fBISSUE\fP \fI\%#33393\fP: (\fI\%babilen\fP) pip.installed does not work with ancient pip versions (refs: \fI\%#33396\fP)
  231598. .IP \(bu 2
  231599. \fBPR\fP \fI\%#33396\fP: (\fI\%babilen\fP) Issue 33393
  231600. @ \fI2016\-06\-01 21:12:03 UTC\fP
  231601. .INDENT 2.0
  231602. .IP \(bu 2
  231603. 13537c4891 Merge pull request \fI\%#33396\fP from babilen/issue\-33393
  231604. .IP \(bu 2
  231605. 57e0475cd4 Make pip InstallationError import more robust
  231606. .IP \(bu 2
  231607. 291a3e21fa Remove duplicated code.
  231608. .UNINDENT
  231609. .IP \(bu 2
  231610. \fBPR\fP \fI\%#33652\fP: (\fI\%terminalmage\fP) Lower the log level for failed auths
  231611. @ \fI2016\-06\-01 16:37:09 UTC\fP
  231612. .INDENT 2.0
  231613. .IP \(bu 2
  231614. 7bce4ece1a Merge pull request \fI\%#33652\fP from terminalmage/zh723
  231615. .IP \(bu 2
  231616. 411841603a Lower the log level for failed auths
  231617. .UNINDENT
  231618. .IP \(bu 2
  231619. \fBISSUE\fP \fI\%#33582\fP: (\fI\%waxie\fP) mysql module gives traceback if no working authentication (refs: \fI\%#33615\fP)
  231620. .IP \(bu 2
  231621. \fBPR\fP \fI\%#33615\fP: (\fI\%danslimmon\fP) Fix crash on unconnectable MySQL server (resolves \fI\%#33582\fP)
  231622. @ \fI2016\-05\-31 16:03:51 UTC\fP
  231623. .INDENT 2.0
  231624. .IP \(bu 2
  231625. 504989388a Merge pull request \fI\%#33615\fP from danslimmon/mysql\-traceback\-33582
  231626. .IP \(bu 2
  231627. 180099ae9f Wrote test for broken server connection
  231628. .IP \(bu 2
  231629. c6c3ff02e3 Added some error checking to resolve \fI\%#33582\fP\&.
  231630. .UNINDENT
  231631. .IP \(bu 2
  231632. \fBPR\fP \fI\%#33558\fP: (\fI\%twangboy\fP) Fix win servermanager
  231633. @ \fI2016\-05\-27 22:05:43 UTC\fP
  231634. .INDENT 2.0
  231635. .IP \(bu 2
  231636. b47182e47c Merge pull request \fI\%#33558\fP from twangboy/fix_win_servermanager
  231637. .IP \(bu 2
  231638. 62a6bde0ea Fix comment when already installed
  231639. .IP \(bu 2
  231640. 79bc7195dc Fix unit tests
  231641. .IP \(bu 2
  231642. 56a6f6bb83 Fix changes
  231643. .IP \(bu 2
  231644. 8ebe99ec5e Fix restart_needed
  231645. .IP \(bu 2
  231646. 6e478cbda0 Add restart needed
  231647. .IP \(bu 2
  231648. 72ebf26616 Add missing import
  231649. .IP \(bu 2
  231650. 193583be96 Use dictionary compare for changes in remove
  231651. .IP \(bu 2
  231652. 1ae7dd76c1 Use dictionary compare for changes
  231653. .UNINDENT
  231654. .IP \(bu 2
  231655. \fBISSUE\fP \fI\%#33544\fP: (\fI\%tjuup\fP) Salt 2016.3.0 (Boron) clean_old_jobs fails (refs: \fI\%#33555\fP)
  231656. .IP \(bu 2
  231657. \fBPR\fP \fI\%#33555\fP: (\fI\%cachedout\fP) Fix crashing Maintenence process
  231658. @ \fI2016\-05\-26 19:25:39 UTC\fP
  231659. .INDENT 2.0
  231660. .IP \(bu 2
  231661. 58d89d66e3 Merge pull request \fI\%#33555\fP from cachedout/issue_33544
  231662. .IP \(bu 2
  231663. fe7ee7a470 Fix crashing Maintenence process
  231664. .UNINDENT
  231665. .IP \(bu 2
  231666. \fBPR\fP \fI\%#33501\fP: (\fI\%meaksh\fP) unit tests for rpm.checksum() and zypper.download()
  231667. @ \fI2016\-05\-26 14:34:27 UTC\fP
  231668. .INDENT 2.0
  231669. .IP \(bu 2
  231670. d052908729 Merge pull request \fI\%#33501\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  231671. .IP \(bu 2
  231672. eaaef25c79 lint issue fixed
  231673. .IP \(bu 2
  231674. 6b6febb211 unit tests for rpm.checksum() and zypper.download()
  231675. .UNINDENT
  231676. .IP \(bu 2
  231677. \fBISSUE\fP \fI\%#33319\fP: (\fI\%ghost\fP) Salt interpets jinja syntax in contents pillar (refs: \fI\%#33513\fP)
  231678. .IP \(bu 2
  231679. \fBPR\fP \fI\%#33513\fP: (\fI\%rallytime\fP) Add a section to the jinja docs about escaping jinja
  231680. @ \fI2016\-05\-26 14:24:58 UTC\fP
  231681. .INDENT 2.0
  231682. .IP \(bu 2
  231683. e2d0c4abb1 Merge pull request \fI\%#33513\fP from rallytime/fix\-33319
  231684. .IP \(bu 2
  231685. 81c1471209 Add a section to the jinja docs about escaping jinja
  231686. .UNINDENT
  231687. .IP \(bu 2
  231688. \fBPR\fP \fI\%#33520\fP: (\fI\%jacobhammons\fP) Updated version numbers in the docs for the 2016.3.0 release
  231689. @ \fI2016\-05\-26 14:15:00 UTC\fP
  231690. .INDENT 2.0
  231691. .IP \(bu 2
  231692. fabc15e616 Merge pull request \fI\%#33520\fP from jacobhammons/release\-notes.8
  231693. .IP \(bu 2
  231694. 42e358af7d Updated version numbers in the docs for the 2016.3.0 release
  231695. .UNINDENT
  231696. .IP \(bu 2
  231697. \fBPR\fP \fI\%#33507\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231698. @ \fI2016\-05\-25 19:14:41 UTC\fP
  231699. .INDENT 2.0
  231700. .IP \(bu 2
  231701. 5a6b037cbd Merge pull request \fI\%#33507\fP from rallytime/merge\-2015.8
  231702. .IP \(bu 2
  231703. 03b0c97520 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231704. .IP \(bu 2
  231705. 6f7fda0354 Merge pull request \fI\%#33486\fP from jtand/2015.5
  231706. .INDENT 2.0
  231707. .IP \(bu 2
  231708. d1e210fff8 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  231709. .IP \(bu 2
  231710. ee2ae0ea8a Added docstring examples to glance.image_schema and schema_get
  231711. .IP \(bu 2
  231712. 59e90064e6 modules.swift.head does not have a body. Should not be checked for a docstring right now.
  231713. .UNINDENT
  231714. .IP \(bu 2
  231715. f72ec1479b Merge pull request \fI\%#33482\fP from rallytime/pillar\-opts\-docs
  231716. .INDENT 2.0
  231717. .IP \(bu 2
  231718. 087564528d Add pillar_opts docs to master.rst
  231719. .UNINDENT
  231720. .IP \(bu 2
  231721. dc644b145d Merge pull request \fI\%#33488\fP from rallytime/fix\-18752
  231722. .INDENT 2.0
  231723. .IP \(bu 2
  231724. b0a9f4181f Add docs for the syndic_finger config
  231725. .UNINDENT
  231726. .IP \(bu 2
  231727. a4e84aa7d2 Merge pull request \fI\%#33454\fP from scubahub/2015.5
  231728. .INDENT 2.0
  231729. .IP \(bu 2
  231730. df3c0b8e78 Correct (and make consistent) determination of the test flag.
  231731. .UNINDENT
  231732. .IP \(bu 2
  231733. 3a52ace673 manage account information for pam (\fI\%#33473\fP)
  231734. .UNINDENT
  231735. .IP \(bu 2
  231736. \fBISSUE\fP \fI\%#15252\fP: (\fI\%gravyboat\fP) Standalone minion docs don\(aqt explain what file is being modified. (refs: \fI\%#33503\fP)
  231737. .IP \(bu 2
  231738. \fBPR\fP \fI\%#33503\fP: (\fI\%rallytime\fP) Add docs about minion config file in standalone minion docs
  231739. @ \fI2016\-05\-25 17:23:08 UTC\fP
  231740. .INDENT 2.0
  231741. .IP \(bu 2
  231742. ee76be3b0b Merge pull request \fI\%#33503\fP from rallytime/fix\-15252
  231743. .IP \(bu 2
  231744. cfc07f7641 Add docs about minion config file in standalone minion docs
  231745. .UNINDENT
  231746. .IP \(bu 2
  231747. \fBPR\fP \fI\%#33474\fP: (\fI\%cachedout\fP) Fix diskusage beacon (refs: \fI\%#34103\fP)
  231748. @ \fI2016\-05\-25 17:10:54 UTC\fP
  231749. .INDENT 2.0
  231750. .IP \(bu 2
  231751. e9b648e461 Merge pull request \fI\%#33474\fP from cachedout/issue_29451
  231752. .IP \(bu 2
  231753. aa2bac3a0d Remove debugging
  231754. .IP \(bu 2
  231755. 68d8050cb8 Fix diskusage beacon
  231756. .UNINDENT
  231757. .IP \(bu 2
  231758. \fBPR\fP \fI\%#33465\fP: (\fI\%meaksh\fP) jobs.exit_success allow to check if a job has executed and exit successfully
  231759. @ \fI2016\-05\-25 16:52:53 UTC\fP
  231760. .INDENT 2.0
  231761. .IP \(bu 2
  231762. 3bfb6bf719 Merge pull request \fI\%#33465\fP from meaksh/check\-if\-job\-returns\-successfully\-2015.8
  231763. .IP \(bu 2
  231764. 9deb70fd8e jobs.exit_success() now works parsing the results of jobs.lookup_id()
  231765. .IP \(bu 2
  231766. 7ba40c4f31 jobs.exit_success allow to check if a job has executed and exit successfully
  231767. .IP \(bu 2
  231768. \fBPR\fP \fI\%saltstack/salt\-jenkins#175\fP: (\fI\%justinta\fP) Adding back shade to setup states (refs: \fI\%#33487\fP)
  231769. .UNINDENT
  231770. .IP \(bu 2
  231771. \fBPR\fP \fI\%#33487\fP: (\fI\%justinta\fP) Add docstring examples to glance.py and nova.py [2015.8]
  231772. @ \fI2016\-05\-25 16:47:25 UTC\fP
  231773. .INDENT 2.0
  231774. .IP \(bu 2
  231775. 70eb7b66f3 Merge pull request \fI\%#33487\fP from jtand/glance_doc_fixes
  231776. .IP \(bu 2
  231777. 0b1cae05d9 Added docstring examples to glance methods and nova.list
  231778. .IP \(bu 2
  231779. ebf1256545 Don\(aqt need to check swift.head due to it having no body
  231780. .UNINDENT
  231781. .IP \(bu 2
  231782. \fBISSUE\fP \fI\%#33423\fP: (\fI\%warden\fP) etcd profile doesn\(aqt work when used in master conf file (refs: \fI\%#33481\fP)
  231783. .IP \(bu 2
  231784. \fBPR\fP \fI\%#33481\fP: (\fI\%rallytime\fP) Fix docs about etcd config options and add pillar_opts doc (refs: \fI\%#33482\fP)
  231785. @ \fI2016\-05\-25 16:41:56 UTC\fP
  231786. .INDENT 2.0
  231787. .IP \(bu 2
  231788. 56ea979916 Merge pull request \fI\%#33481\fP from rallytime/fix\-33423
  231789. .IP \(bu 2
  231790. 7fd3e8f361 Fix docs about etcd config options and add pillar_opts doc
  231791. .UNINDENT
  231792. .IP \(bu 2
  231793. \fBISSUE\fP \fI\%#16319\fP: (\fI\%lsh\-0\fP) create a postgresql \fIquery\fP function (refs: \fI\%#33490\fP)
  231794. .IP \(bu 2
  231795. \fBPR\fP \fI\%#33490\fP: (\fI\%rallytime\fP) Document the postgres.psql_query function
  231796. @ \fI2016\-05\-25 16:41:22 UTC\fP
  231797. .INDENT 2.0
  231798. .IP \(bu 2
  231799. 2394cdc4bf Merge pull request \fI\%#33490\fP from rallytime/fix\-16319
  231800. .IP \(bu 2
  231801. 0c5548f9d1 Document the postgres.psql_query function
  231802. .UNINDENT
  231803. .IP \(bu 2
  231804. \fBPR\fP \fI\%#33480\fP: (\fI\%jfindlay\fP) states.service: minor doc updates
  231805. @ \fI2016\-05\-25 16:38:14 UTC\fP
  231806. .INDENT 2.0
  231807. .IP \(bu 2
  231808. ede232f0f1 Merge pull request \fI\%#33480\fP from jfindlay/service_doc
  231809. .IP \(bu 2
  231810. 29c00a1b1b states.service: clarify function description language
  231811. .IP \(bu 2
  231812. 6a9ae09e79 states.service.__virtual__: add load fail reason
  231813. .IP \(bu 2
  231814. \fBPR\fP \fI\%#33483\fP: (\fI\%twangboy\fP) Return full pending computer name (2015.8)
  231815. .UNINDENT
  231816. .IP \(bu 2
  231817. \fBISSUE\fP \fI\%#32444\fP: (\fI\%justindesilets\fP) Feature Request \- jobs runner list by target (refs: \fI\%#33491\fP)
  231818. .INDENT 2.0
  231819. .IP \(bu 2
  231820. \fBPR\fP \fI\%#33499\fP: (\fI\%cachedout\fP) Use six.string_types in jobs runner
  231821. .IP \(bu 2
  231822. \fBPR\fP \fI\%#33491\fP: (\fI\%BlaineAtAffirm\fP) fix jobs.list_jobs failing with search_target (refs: \fI\%#33499\fP)
  231823. .UNINDENT
  231824. .IP \(bu 2
  231825. \fBISSUE\fP \fI\%#32444\fP: (\fI\%justindesilets\fP) Feature Request \- jobs runner list by target (refs: \fI\%#33491\fP)
  231826. .IP \(bu 2
  231827. \fBPR\fP \fI\%#33491\fP: (\fI\%BlaineAtAffirm\fP) fix jobs.list_jobs failing with search_target (refs: \fI\%#33499\fP)
  231828. @ \fI2016\-05\-25 15:11:22 UTC\fP
  231829. .INDENT 2.0
  231830. .IP \(bu 2
  231831. 2e24a04565 Merge pull request \fI\%#33491\fP from BlaineAtAffirm/2015.8
  231832. .IP \(bu 2
  231833. 7599b18995 fix jobs.list_jobs failing with search_target
  231834. .UNINDENT
  231835. .IP \(bu 2
  231836. \fBISSUE\fP \fI\%#33467\fP: (\fI\%beelit94\fP) Orchestration gives exception when a target does not exist (refs: \fI\%#33478\fP)
  231837. .IP \(bu 2
  231838. \fBISSUE\fP \fI\%#32479\fP: (\fI\%ssgward\fP) Orchestration gives exception when a target does not exist (refs: \fI\%#32484\fP, \fI\%#33478\fP)
  231839. .IP \(bu 2
  231840. \fBPR\fP \fI\%#33478\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32484\fP to 2015.8
  231841. @ \fI2016\-05\-24 19:14:23 UTC\fP
  231842. .INDENT 2.0
  231843. .IP \(bu 2
  231844. \fBPR\fP \fI\%#32484\fP: (\fI\%cachedout\fP) Only unsub if we have a jid (refs: \fI\%#33478\fP)
  231845. .IP \(bu 2
  231846. 1861af427e Merge pull request \fI\%#33478\fP from rallytime/bp\-32484
  231847. .IP \(bu 2
  231848. 042f17efa4 Only unsub if we have a jid
  231849. .UNINDENT
  231850. .IP \(bu 2
  231851. \fBPR\fP \fI\%#33457\fP: (\fI\%rallytime\fP) Make doc formatting consistent and use correct versionadded
  231852. @ \fI2016\-05\-24 17:52:34 UTC\fP
  231853. .INDENT 2.0
  231854. .IP \(bu 2
  231855. b8154b678e Merge pull request \fI\%#33457\fP from rallytime/doc\-formatting
  231856. .IP \(bu 2
  231857. 82f8f3efff Make doc formatting consistent and use correct versionadded
  231858. .IP \(bu 2
  231859. \fBPR\fP \fI\%#33477\fP: (\fI\%terminalmage\fP) Don\(aqt allow a "repo" kwarg for pkgrepo.managed
  231860. .UNINDENT
  231861. .IP \(bu 2
  231862. \fBISSUE\fP \fI\%#29451\fP: (\fI\%githubcdr\fP) 2015.8.3 pillar beacons bugged? (refs: \fI\%#33476\fP)
  231863. .INDENT 2.0
  231864. .IP \(bu 2
  231865. \fBPR\fP \fI\%#33476\fP: (\fI\%cachedout\fP) Allow for config entry to be a list in a dict for beacons
  231866. .UNINDENT
  231867. .IP \(bu 2
  231868. \fBPR\fP \fI\%#33469\fP: (\fI\%meaksh\fP) check the RPM signature of zypper pkg.download packages and report errors
  231869. @ \fI2016\-05\-24 16:09:05 UTC\fP
  231870. .INDENT 2.0
  231871. .IP \(bu 2
  231872. 9f56ab4c45 Merge pull request \fI\%#33469\fP from meaksh/zypper\-download\-check\-signature\-2015.8
  231873. .IP \(bu 2
  231874. a65071a6d1 simpler rpm.checksum function
  231875. .IP \(bu 2
  231876. 80fe303e38 Renamed check_sig to checksum and some refactoring
  231877. .IP \(bu 2
  231878. d56e3f4258 bugfix: showing errors when a package download fails using zypper pkg.download
  231879. .IP \(bu 2
  231880. 8a21b9149e check the signature of downloaded RPM files
  231881. .UNINDENT
  231882. .IP \(bu 2
  231883. \fBISSUE\fP \fI\%#33389\fP: (\fI\%DaveQB\fP) Too many hostnames in pillar? (refs: \fI\%#33459\fP)
  231884. .INDENT 2.0
  231885. .IP \(bu 2
  231886. \fBPR\fP \fI\%#33459\fP: (\fI\%rallytime\fP) Add docs about PyYAML\(aqs 1024 character limitations for simple keys
  231887. .IP \(bu 2
  231888. \fBPR\fP \fI\%#33464\fP: (\fI\%isbm\fP) Prevent several minion processes on the same machine
  231889. .IP \(bu 2
  231890. \fBPR\fP \fI\%#33432\fP: (\fI\%dincamihai\fP) Make \-\-gpg\-auto\-import\-keys a global param when calling zypper
  231891. .UNINDENT
  231892. .IP \(bu 2
  231893. \fBISSUE\fP \fI\%#32446\fP: (\fI\%sel\-fish\fP) " salt \(aq*\(aq saltutil.wheel minions.connected " not work (refs: \fI\%#33414\fP)
  231894. .INDENT 2.0
  231895. .IP \(bu 2
  231896. \fBPR\fP \fI\%#33414\fP: (\fI\%rallytime\fP) Fix the saltutil.wheel function and add integration tests
  231897. .UNINDENT
  231898. .IP \(bu 2
  231899. \fBISSUE\fP \fI\%#29286\fP: (\fI\%harlanbarnes\fP) Can\(aqt disable Job Cache? (refs: \fI\%#33328\fP)
  231900. .INDENT 2.0
  231901. .IP \(bu 2
  231902. \fBPR\fP \fI\%#33440\fP: (\fI\%rallytime\fP) Make sure the path we\(aqre removing is present first \- avoid an OSError
  231903. .IP \(bu 2
  231904. \fBPR\fP \fI\%#33328\fP: (\fI\%rallytime\fP) Update job_cache and keep_jobs docs to be more specific to their behavior (refs: \fI\%#33440\fP)
  231905. .UNINDENT
  231906. .IP \(bu 2
  231907. \fBISSUE\fP \fI\%#26913\fP: (\fI\%imchairmanm\fP) manage.bootstrap runner quotation escape bug (refs: \fI\%#33443\fP)
  231908. .INDENT 2.0
  231909. .IP \(bu 2
  231910. \fBPR\fP \fI\%#33443\fP: (\fI\%rallytime\fP) Avoid a syntax error by using " instead of escaped \(aq
  231911. .IP \(bu 2
  231912. \fBPR\fP \fI\%#33436\fP: (\fI\%rmarcinik\fP) Fix virtual function
  231913. .UNINDENT
  231914. .IP \(bu 2
  231915. \fBPR\fP \fI\%#33438\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231916. @ \fI2016\-05\-23 17:50:51 UTC\fP
  231917. .INDENT 2.0
  231918. .IP \(bu 2
  231919. 6e94a4a03b Merge pull request \fI\%#33438\fP from rallytime/merge\-2015.8
  231920. .IP \(bu 2
  231921. 7c41c34528 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231922. .INDENT 2.0
  231923. .IP \(bu 2
  231924. 2cc650965a update 2015.5.11 release notes (\fI\%#33412\fP)
  231925. .IP \(bu 2
  231926. dc8ce2d8b1 Fix traceback in logging for config validation (\fI\%#33386\fP) (\fI\%#33405\fP)
  231927. .UNINDENT
  231928. .UNINDENT
  231929. .IP \(bu 2
  231930. \fBISSUE\fP \fI\%#33395\fP: (\fI\%fmnisme\fP) salt doc error (refs: \fI\%#33421\fP)
  231931. .INDENT 2.0
  231932. .IP \(bu 2
  231933. \fBPR\fP \fI\%#33421\fP: (\fI\%abednarik\fP) Documentation update in file.serialize.
  231934. .IP \(bu 2
  231935. \fBPR\fP \fI\%#33398\fP: (\fI\%lvg01\fP) Fix LVM parameter devices as a pure list. Comma seperated lists are c…
  231936. .IP \(bu 2
  231937. \fBPR\fP \fI\%#33406\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33387\fP to 2015.8
  231938. .IP \(bu 2
  231939. \fBPR\fP \fI\%#33387\fP: (\fI\%tveastman\fP) Spelling correction. (refs: \fI\%#33406\fP)
  231940. .UNINDENT
  231941. .IP \(bu 2
  231942. \fBISSUE\fP \fI\%#33298\fP: (\fI\%lorengordon\fP) Windows: pkg.install returns failed for msiexec/instmsi exit code 3010 (ERROR_SUCCESS_REBOOT_REQUIRED) (refs: \fI\%#33321\fP)
  231943. .INDENT 2.0
  231944. .IP \(bu 2
  231945. \fBPR\fP \fI\%#33321\fP: (\fI\%lorengordon\fP) Update windows pkg.[install|remove] error logic
  231946. .UNINDENT
  231947. .IP \(bu 2
  231948. \fBISSUE\fP \fI\%#29252\fP: (\fI\%mitar\fP) reload_modules is not documented for the pkg state (refs: \fI\%#33374\fP)
  231949. .INDENT 2.0
  231950. .IP \(bu 2
  231951. \fBPR\fP \fI\%#33374\fP: (\fI\%rallytime\fP) Add note about reload_modules functionality for pkg.installed
  231952. .UNINDENT
  231953. .IP \(bu 2
  231954. \fBISSUE\fP \fI\%#31430\fP: (\fI\%The\-Loeki\fP) Salt Coding Style regarding absolute_imports (refs: \fI\%#33377\fP)
  231955. .INDENT 2.0
  231956. .IP \(bu 2
  231957. \fBPR\fP \fI\%#33377\fP: (\fI\%rallytime\fP) Add note to absolute_imports practice about __future__ import
  231958. .UNINDENT
  231959. .IP \(bu 2
  231960. \fBISSUE\fP \fI\%#21720\fP: (\fI\%kaithar\fP) Revisiting aliases.file option. (refs: \fI\%#33380\fP)
  231961. .INDENT 2.0
  231962. .IP \(bu 2
  231963. \fBPR\fP \fI\%#33380\fP: (\fI\%rallytime\fP) Document how to set the alias file location for alias state
  231964. .UNINDENT
  231965. .IP \(bu 2
  231966. \fBPR\fP \fI\%#33403\fP: (\fI\%jacobhammons\fP) 2015.8.10 release notes
  231967. @ \fI2016\-05\-20 16:02:50 UTC\fP
  231968. .INDENT 2.0
  231969. .IP \(bu 2
  231970. 3c9def310c Merge pull request \fI\%#33403\fP from jacobhammons/dot10
  231971. .IP \(bu 2
  231972. e850c298a9 2015.8.10 release notes
  231973. .UNINDENT
  231974. .IP \(bu 2
  231975. \fBPR\fP \fI\%#33381\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  231976. @ \fI2016\-05\-20 15:58:11 UTC\fP
  231977. .INDENT 2.0
  231978. .IP \(bu 2
  231979. 91059224f6 Merge pull request \fI\%#33381\fP from rallytime/merge\-2015.8
  231980. .IP \(bu 2
  231981. 5aec32b20f Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231982. .INDENT 2.0
  231983. .IP \(bu 2
  231984. d15f5e2cef Merge pull request \fI\%#33383\fP from thatch45/2015.5
  231985. .INDENT 2.0
  231986. .IP \(bu 2
  231987. f5ebcba21c restore whitespace
  231988. .IP \(bu 2
  231989. 1d8b289db1 blast, put the try/except int he right place
  231990. .IP \(bu 2
  231991. 081e6c5b83 maintain the fallabck because I am totally sick of this crap
  231992. .UNINDENT
  231993. .IP \(bu 2
  231994. 755acfb97e Improve doc clarity for disable_modules documentation (\fI\%#33379\fP)
  231995. .UNINDENT
  231996. .IP \(bu 2
  231997. 8ef7697806 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  231998. .INDENT 2.0
  231999. .IP \(bu 2
  232000. 2b5ad128bf Better YAML syntax error handling (\fI\%#33375\fP)
  232001. .IP \(bu 2
  232002. bb3e98cad2 Merge pull request \fI\%#33372\fP from jacobhammons/release\-update
  232003. .INDENT 2.0
  232004. .IP \(bu 2
  232005. 5ce502160b revved 2015.8 branch to .9 in version selector
  232006. .UNINDENT
  232007. .UNINDENT
  232008. .IP \(bu 2
  232009. \fBPR\fP \fI\%#33386\fP: (\fI\%terminalmage\fP) Fix traceback in logging for config validation (refs: \fI\%#33405\fP)
  232010. .UNINDENT
  232011. .IP \(bu 2
  232012. \fBISSUE\fP \fI\%#27737\fP: (\fI\%mpaolini\fP) name param never mentioned in pillar_ext git documentation (refs: \fI\%#33369\fP)
  232013. .INDENT 2.0
  232014. .IP \(bu 2
  232015. \fBPR\fP \fI\%#33369\fP: (\fI\%rallytime\fP) Add note about name parameter in git_pillar docs
  232016. .UNINDENT
  232017. .IP \(bu 2
  232018. \fBISSUE\fP \fI\%#32913\fP: (\fI\%hrumph\fP) Possible problem with salt.states.pkg.installed documentation (refs: \fI\%#33362\fP)
  232019. .INDENT 2.0
  232020. .IP \(bu 2
  232021. \fBPR\fP \fI\%#33362\fP: (\fI\%rallytime\fP) Add win_pkg to list of modules that support "version" in pkg.installed
  232022. .UNINDENT
  232023. .IP \(bu 2
  232024. \fBISSUE\fP \fI\%#27779\fP: (\fI\%jbouse\fP) [Doc] Hipchat returner documentation update (refs: \fI\%#33365\fP)
  232025. .INDENT 2.0
  232026. .IP \(bu 2
  232027. \fBPR\fP \fI\%#33365\fP: (\fI\%rallytime\fP) Add note to docs about api settings for Hipchat API v2
  232028. .IP \(bu 2
  232029. \fBPR\fP \fI\%saltstack/salt\-bootstrap#828\fP: (\fI\%vutny\fP) Fix bootstrapping from git on Debian 8 by installing latest \fItornado\fP via pip (refs: \fI\%#32857\fP)
  232030. .IP \(bu 2
  232031. \fBPR\fP \fI\%#820\fP: (\fI\%dcolish\fP) Refactor of cli parsers, normalize around conf_file (refs: #\(gasaltstack/salt\-bootstrap#828\(ga_)
  232032. .IP \(bu 2
  232033. \fBPR\fP \fI\%#32857\fP: (\fI\%vutny\fP) Add initscripts, SystemD service units and environment files for Debian
  232034. .UNINDENT
  232035. .IP \(bu 2
  232036. \fBPR\fP \fI\%#33370\fP: (\fI\%jacobhammons\fP) Update docs version to 2015.8.9
  232037. @ \fI2016\-05\-19 19:59:15 UTC\fP
  232038. .INDENT 2.0
  232039. .IP \(bu 2
  232040. 80f52a658e Merge pull request \fI\%#33370\fP from jacobhammons/2015.8.9
  232041. .IP \(bu 2
  232042. 146b4df6be Updates docs version to 2015.8.9 Adds note regarding the os grain on Mint Linux Adds an FAQ regarding grains that change due to upstream changes
  232043. .UNINDENT
  232044. .IP \(bu 2
  232045. \fBPR\fP \fI\%#33366\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232046. @ \fI2016\-05\-19 19:41:40 UTC\fP
  232047. .INDENT 2.0
  232048. .IP \(bu 2
  232049. 3e5689abbf Merge pull request \fI\%#33366\fP from rallytime/merge\-2015.8
  232050. .IP \(bu 2
  232051. 52b3128678 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232052. .IP \(bu 2
  232053. 55be0abf4d Expanded documentation for boto_elb state and module (\fI\%#33341\fP)
  232054. .UNINDENT
  232055. .IP \(bu 2
  232056. \fBISSUE\fP \fI\%#33313\fP: (\fI\%morganwillcock\fP) pkg.py: pkgs parameter documented as not supported on Windows (refs: \fI\%#33361\fP)
  232057. .IP \(bu 2
  232058. \fBISSUE\fP \fI\%#3313\fP: (\fI\%mou\fP) If no fileserver backend initialized there should be warning or error message on performing various file operations (refs: \fI\%#33361\fP)
  232059. .INDENT 2.0
  232060. .IP \(bu 2
  232061. \fBPR\fP \fI\%#33361\fP: (\fI\%rallytime\fP) Remove mentions of windows not supporting pkgs param
  232062. .UNINDENT
  232063. .IP \(bu 2
  232064. \fBISSUE\fP \fI\%#29286\fP: (\fI\%harlanbarnes\fP) Can\(aqt disable Job Cache? (refs: \fI\%#33328\fP)
  232065. .INDENT 2.0
  232066. .IP \(bu 2
  232067. \fBPR\fP \fI\%#33328\fP: (\fI\%rallytime\fP) Update job_cache and keep_jobs docs to be more specific to their behavior (refs: \fI\%#33440\fP)
  232068. .UNINDENT
  232069. .IP \(bu 2
  232070. \fBISSUE\fP \fI\%#33295\fP: (\fI\%andrew\-vant\fP) Linux Mint service module not correctly detected. (refs: \fI\%#33359\fP)
  232071. .INDENT 2.0
  232072. .IP \(bu 2
  232073. \fBPR\fP \fI\%#33359\fP: (\fI\%terminalmage\fP) Properly detect newer Linux Mint distros
  232074. .UNINDENT
  232075. .IP \(bu 2
  232076. \fBISSUE\fP \fI\%#32260\fP: (\fI\%jagguli\fP) git.latest UnboundLocalError: local variable \(aqdesired_upstream\(aq referenced before assignmen (refs: \fI\%#33340\fP)
  232077. .INDENT 2.0
  232078. .IP \(bu 2
  232079. \fBPR\fP \fI\%#33340\fP: (\fI\%terminalmage\fP) Fix UnboundLocalError in git.latest
  232080. .IP \(bu 2
  232081. \fBPR\fP \fI\%#33339\fP: (\fI\%phistrom\fP) states.boto_elb Describe parameters in register_instances function
  232082. .IP \(bu 2
  232083. \fBPR\fP \fI\%#33347\fP: (\fI\%rallytime\fP) Fix some link errors in the test writing tutorial
  232084. .IP \(bu 2
  232085. \fBPR\fP \fI\%#33312\fP: (\fI\%twangboy\fP) Fix network.managed for windows
  232086. .IP \(bu 2
  232087. \fBPR\fP \fI\%#33327\fP: (\fI\%cro\fP) Bp 28467 calm mine
  232088. .IP \(bu 2
  232089. \fBPR\fP \fI\%#28467\fP: (\fI\%jodv\fP) Make mine.update more manageable for large environments (refs: \fI\%#33327\fP)
  232090. .IP \(bu 2
  232091. \fBPR\fP \fI\%#33334\fP: (\fI\%jfindlay\fP) import ps from psutil_compat in beacons
  232092. .UNINDENT
  232093. .IP \(bu 2
  232094. \fBISSUE\fP \fI\%#21520\fP: (\fI\%jfindlay\fP) sudo.salt_call is broken (refs: \fI\%#25089\fP)
  232095. .INDENT 2.0
  232096. .IP \(bu 2
  232097. \fBPR\fP \fI\%#33318\fP: (\fI\%jfindlay\fP) remove redundant, incorrect sudo_runas config documentation
  232098. .IP \(bu 2
  232099. \fBPR\fP \fI\%#25089\fP: (\fI\%jfindlay\fP) fix minion sudo (refs: \fI\%#33318\fP)
  232100. .IP \(bu 2
  232101. \fBPR\fP \fI\%#22480\fP: (\fI\%thatch45\fP) Add sudo user docs into salt (refs: \fI\%#33318\fP)
  232102. .IP \(bu 2
  232103. \fBPR\fP \fI\%#20226\fP: (\fI\%thatch45\fP) Allow sudo priv escalation (refs: \fI\%#25089\fP, \fI\%#33318\fP)
  232104. .UNINDENT
  232105. .IP \(bu 2
  232106. \fBISSUE\fP \fI\%#33323\fP: (\fI\%terminalmage\fP) Overeager globbing in systemd.py for sysv service detection (refs: \fI\%#33324\fP)
  232107. .INDENT 2.0
  232108. .IP \(bu 2
  232109. \fBPR\fP \fI\%#33324\fP: (\fI\%terminalmage\fP) Disambiguate non\-exact matches when checking if sysv service is enabled
  232110. .UNINDENT
  232111. .IP \(bu 2
  232112. \fBISSUE\fP \fI\%#30130\fP: (\fI\%dreampuf\fP) Non\-root minion not work with state.sls module (refs: \fI\%#33325\fP)
  232113. .INDENT 2.0
  232114. .IP \(bu 2
  232115. \fBPR\fP \fI\%#33325\fP: (\fI\%cachedout\fP) Allow concurrency mode in state runs if using sudo
  232116. .UNINDENT
  232117. .IP \(bu 2
  232118. \fBISSUE\fP \fI\%#29674\fP: (\fI\%jakehilton\fP) Salt Master Hang (refs: \fI\%#33333\fP)
  232119. .INDENT 2.0
  232120. .IP \(bu 2
  232121. \fBPR\fP \fI\%#33333\fP: (\fI\%DmitryKuzmenko\fP) Fix master hanging after a request from minion with removed key.
  232122. .UNINDENT
  232123. .IP \(bu 2
  232124. \fBISSUE\fP \fI\%#33266\fP: (\fI\%Timandes\fP) Method \fIgrains.items\fP returns unexpected \fImanufacturer\fP information (refs: \fI\%#33302\fP)
  232125. .INDENT 2.0
  232126. .IP \(bu 2
  232127. \fBPR\fP \fI\%#33306\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33302\fP to 2015.8
  232128. .IP \(bu 2
  232129. \fBPR\fP \fI\%#33302\fP: (\fI\%The\-Loeki\fP) Cleanup comments in smbios.get output (fixes \fI\%#33266\fP) (refs: \fI\%#33306\fP)
  232130. .UNINDENT
  232131. .IP \(bu 2
  232132. \fBISSUE\fP \fI\%#23643\fP: (\fI\%falzm\fP) Error in iptables module: argument \-\-match\-set: expected 2 argument(s) (refs: \fI\%#33314\fP, \fI\%#33301\fP, \fI\%#28325\fP)
  232133. .INDENT 2.0
  232134. .IP \(bu 2
  232135. \fBPR\fP \fI\%#33314\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP)
  232136. .IP \(bu 2
  232137. \fBPR\fP \fI\%#33301\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP) (refs: \fI\%#33314\fP)
  232138. .IP \(bu 2
  232139. \fBPR\fP \fI\%#28325\fP: (\fI\%l13t\fP) Fix issue wiith \-\-match\-set option. \fI\%#23643\fP (refs: \fI\%#33314\fP)
  232140. .UNINDENT
  232141. .IP \(bu 2
  232142. \fBPR\fP \fI\%#33308\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  232143. @ \fI2016\-05\-17 19:26:05 UTC\fP
  232144. .INDENT 2.0
  232145. .IP \(bu 2
  232146. d0ed1616b0 Merge pull request \fI\%#33308\fP from rallytime/merge\-2015.8
  232147. .IP \(bu 2
  232148. 1c43a62f85 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232149. .INDENT 2.0
  232150. .IP \(bu 2
  232151. 9b42a05519 Added some more docs for master and minion config settings (\fI\%#33292\fP)
  232152. .UNINDENT
  232153. .IP \(bu 2
  232154. 5004d2fa61 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  232155. .IP \(bu 2
  232156. 8acee5e06c Fix iptables \-\-match\-set (\fI\%#23643\fP) (\fI\%#33301\fP)
  232157. .IP \(bu 2
  232158. 757ef20a31 fix "loose" typo (\fI\%#33290\fP)
  232159. .IP \(bu 2
  232160. b7d98da64d Add auth_tries config option to minion.rst docs (\fI\%#33287\fP)
  232161. .IP \(bu 2
  232162. 061851bcbf Document minion_id_caching config value (\fI\%#33282\fP)
  232163. .UNINDENT
  232164. .UNINDENT
  232165. .SS Salt 2015.8.12 Release Notes
  232166. .sp
  232167. Version 2015.8.12 is a bugfix release for 2015.8.0\&.
  232168. .SS Statistics
  232169. .INDENT 0.0
  232170. .IP \(bu 2
  232171. Total Merges: \fB58\fP
  232172. .IP \(bu 2
  232173. Total Issue References: \fB43\fP
  232174. .IP \(bu 2
  232175. Total PR References: \fB117\fP
  232176. .IP \(bu 2
  232177. Contributors: \fB29\fP (\fI\%Azidburn\fP, \fI\%Ch3LL\fP, \fI\%UtahDave\fP, \fI\%bobrik\fP, \fI\%cachedout\fP, \fI\%cedwards\fP, \fI\%deepakhj\fP, \fI\%dere\fP, \fI\%gongled\fP, \fI\%gtmanfred\fP, \fI\%hrumph\fP, \fI\%hu\-dabao\fP, \fI\%isbm\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%jmesquita\fP, \fI\%junovitch\fP, \fI\%justinta\fP, \fI\%kev009\fP, \fI\%martinhoefling\fP, \fI\%multani\fP, \fI\%rallytime\fP, \fI\%randomed\fP, \fI\%sjorge\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%theothergraham\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  232178. .UNINDENT
  232179. .SS Changelog for v2015.8.11..v2015.8.12
  232180. .sp
  232181. \fIGenerated at: 2018\-05\-28 01:19:12 UTC\fP
  232182. .INDENT 0.0
  232183. .IP \(bu 2
  232184. \fBPR\fP \fI\%#35614\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232185. .IP \(bu 2
  232186. \fBPR\fP \fI\%#35611\fP: (\fI\%rallytime\fP) Everything in the sample master config file should be commented out
  232187. .IP \(bu 2
  232188. \fBISSUE\fP \fI\%#35384\fP: (\fI\%ghost\fP) The unless requisite stops at first successful command (refs: \fI\%#35569\fP)
  232189. .INDENT 2.0
  232190. .IP \(bu 2
  232191. \fBPR\fP \fI\%saltstack/salt#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  232192. .UNINDENT
  232193. .IP \(bu 2
  232194. \fBPR\fP \fI\%#35569\fP: (\fI\%rallytime\fP) Write test for multiple unless commands where 1st cmd passes and 2nd fails
  232195. @ \fI2016\-08\-19 19:28:01 UTC\fP
  232196. .INDENT 2.0
  232197. .IP \(bu 2
  232198. \fBPR\fP \fI\%#35566\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35545\fP to 2015.8 (refs: \fI\%#35569\fP)
  232199. .IP \(bu 2
  232200. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35569\fP, \fI\%#35566\fP)
  232201. .IP \(bu 2
  232202. c9070c212f Merge pull request \fI\%#35569\fP from rallytime/test\-for\-35384
  232203. .IP \(bu 2
  232204. 30f42d5352 Write test for multiple unless commands where 1st cmd passes and 2nd fails
  232205. .IP \(bu 2
  232206. \fBPR\fP \fI\%#35600\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232207. .IP \(bu 2
  232208. \fBPR\fP \fI\%#35599\fP: (\fI\%rallytime\fP) Update release notes for 2015.8.12
  232209. .IP \(bu 2
  232210. \fBPR\fP \fI\%#35584\fP: (\fI\%terminalmage\fP) Update linux_sysctl tests to reflect new context key
  232211. .IP \(bu 2
  232212. \fBPR\fP \fI\%#35575\fP: (\fI\%terminalmage\fP) Add warning about AWS flagging of nmap usage
  232213. .UNINDENT
  232214. .IP \(bu 2
  232215. \fBPR\fP \fI\%#35577\fP: (\fI\%terminalmage\fP) Unit file changes for 2015.8.12, 2016.3.3
  232216. @ \fI2016\-08\-18 20:36:25 UTC\fP
  232217. .INDENT 2.0
  232218. .IP \(bu 2
  232219. 26a7f7d9f7 Merge pull request \fI\%#35577\fP from terminalmage/unit\-file\-changes
  232220. .IP \(bu 2
  232221. 6cb0fb47f3 pkg/salt\-syndic.service: change Type to notify
  232222. .IP \(bu 2
  232223. 175ba99e0e pkg/salt\-minion.service: remove KillMode, change Type to notify
  232224. .IP \(bu 2
  232225. 540ec28954 pkg/salt\-master.service: remove KillMode
  232226. .IP \(bu 2
  232227. 69fad464ab pkg/salt\-api.service: change Type to notify
  232228. .IP \(bu 2
  232229. \fBPR\fP \fI\%saltstack/salt#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35566\fP)
  232230. .IP \(bu 2
  232231. \fBPR\fP \fI\%#35566\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35545\fP to 2015.8 (refs: \fI\%#35569\fP)
  232232. .IP \(bu 2
  232233. \fBPR\fP \fI\%#35545\fP: (\fI\%hu\-dabao\fP) fix\-35384, fix cmd.run unless (refs: \fI\%#35569\fP, \fI\%#35566\fP)
  232234. .IP \(bu 2
  232235. \fBPR\fP \fI\%#35492\fP: (\fI\%terminalmage\fP) Clarify config.get docstring
  232236. .UNINDENT
  232237. .IP \(bu 2
  232238. \fBISSUE\fP \fI\%saltstack/salt#18419\fP: (\fI\%jasonrm\fP) salt\-cloud fails to run as non\-root user (refs: \fI\%#35483\fP)
  232239. .IP \(bu 2
  232240. \fBISSUE\fP \fI\%#34806\fP: (\fI\%jerrykan\fP) salt\-cloud ignores sock_dir when firing event (refs: \fI\%#35483\fP)
  232241. .IP \(bu 2
  232242. \fBPR\fP \fI\%#35483\fP: (\fI\%gtmanfred\fP) use __utils__ in salt.cloud
  232243. @ \fI2016\-08\-18 13:32:22 UTC\fP
  232244. .INDENT 2.0
  232245. .IP \(bu 2
  232246. 205d8e2e7b Merge pull request \fI\%#35483\fP from gtmanfred/2015.8
  232247. .IP \(bu 2
  232248. 2d8ec1e9db use __opts__ in salt.utils.cloud for cache functions
  232249. .UNINDENT
  232250. .IP \(bu 2
  232251. \fBPR\fP \fI\%#35546\fP: (\fI\%whiteinge\fP) Salt api eauth fail gracefully
  232252. @ \fI2016\-08\-18 07:21:55 UTC\fP
  232253. .INDENT 2.0
  232254. .IP \(bu 2
  232255. 70fa2d0901 Merge pull request \fI\%#35546\fP from whiteinge/salt\-api\-eauth\-fail\-gracefully
  232256. .IP \(bu 2
  232257. eb3574adae Don\(aqt fail hard if the user\(aqs permissions cannot be found
  232258. .IP \(bu 2
  232259. ec597bd54c Change groups check in token to look for truthy values
  232260. .IP \(bu 2
  232261. \fBPR\fP \fI\%#35525\fP: (\fI\%UtahDave\fP) add missing glob import
  232262. .IP \(bu 2
  232263. \fBPR\fP \fI\%#35540\fP: (\fI\%rallytime\fP) Whitespace fix for 2015.8
  232264. .UNINDENT
  232265. .IP \(bu 2
  232266. \fBISSUE\fP \fI\%#33803\fP: (\fI\%dmurphy18\fP) systemd notification is not fully supported by Salt (refs: \fI\%#35510\fP)
  232267. .IP \(bu 2
  232268. \fBISSUE\fP \fI\%#33516\fP: (\fI\%Ch3LL\fP) When upgrading from 2015.8.10 to 2016.3.0 on centos7/redhat7 I have to restart the salt\-minion twice (refs: \fI\%#35510\fP)
  232269. .IP \(bu 2
  232270. \fBPR\fP \fI\%#35510\fP: (\fI\%terminalmage\fP) Better systemd integration
  232271. @ \fI2016\-08\-17 18:54:11 UTC\fP
  232272. .INDENT 2.0
  232273. .IP \(bu 2
  232274. fd3274c800 Merge pull request \fI\%#35510\fP from terminalmage/issue33516
  232275. .IP \(bu 2
  232276. 5b5f19d269 Update zypper unit test to reflect call to config.get
  232277. .IP \(bu 2
  232278. 2730edb516 Add note about systemd\-run usage in package states
  232279. .IP \(bu 2
  232280. e2d9e87e10 salt/modules/systemd.py: Use systemd\-run \-\-scope where needed
  232281. .IP \(bu 2
  232282. 22919a25bc Notify systemd on salt\-api start
  232283. .IP \(bu 2
  232284. a40b3f8a08 Notify systemd on syndic start
  232285. .IP \(bu 2
  232286. e847d3af30 Notify systemd on minion start
  232287. .IP \(bu 2
  232288. d648887afc salt/modules/zypper.py: Use systemd\-run \-\-scope where needed
  232289. .IP \(bu 2
  232290. 2e17976722 salt/modules/yumpkg.py: Use systemd\-run \-\-scope where needed
  232291. .IP \(bu 2
  232292. 86b59c1e74 salt/modules/pacman.py: Use systemd\-run \-\-scope where needed
  232293. .IP \(bu 2
  232294. e32d92c6d5 salt/modules/ebuild.py: Use systemd\-run \-\-scope where needed
  232295. .IP \(bu 2
  232296. c7d21d3ae3 salt/modules/aptpkg.py: Use systemd\-run \-\-scope where needed
  232297. .IP \(bu 2
  232298. f83e0ef242 Add unit tests for salt.utils.systemd
  232299. .IP \(bu 2
  232300. 5b12f030c6 Add func to salt.utils.systemd to tell if scopes are available
  232301. .IP \(bu 2
  232302. \fBPR\fP \fI\%#35513\fP: (\fI\%cachedout\fP) Might be a good idea to be able to download the software we make
  232303. .UNINDENT
  232304. .IP \(bu 2
  232305. \fBPR\fP \fI\%#35302\fP: (\fI\%Ch3LL\fP) Add job cache test
  232306. @ \fI2016\-08\-17 10:45:28 UTC\fP
  232307. .INDENT 2.0
  232308. .IP \(bu 2
  232309. 9f87081cef Merge pull request \fI\%#35302\fP from Ch3LL/add_job_cache_test
  232310. .IP \(bu 2
  232311. ccb2a5cadf remove unused imports
  232312. .IP \(bu 2
  232313. 512ae81dfd remove TMP and add integration.TMP
  232314. .IP \(bu 2
  232315. c9b7c3cf80 need to add returners option in other places
  232316. .IP \(bu 2
  232317. 7316df7a02 fix pylint
  232318. .IP \(bu 2
  232319. 50a4f0fe6a fix comment
  232320. .IP \(bu 2
  232321. 6837acf742 add job cache integration tests
  232322. .UNINDENT
  232323. .IP \(bu 2
  232324. \fBPR\fP \fI\%#35512\fP: (\fI\%cachedout\fP) Fixup 35419
  232325. @ \fI2016\-08\-17 10:11:17 UTC\fP
  232326. .INDENT 2.0
  232327. .IP \(bu 2
  232328. 1c82c6bee5 Merge pull request \fI\%#35512\fP from cachedout/fixup_35419
  232329. .IP \(bu 2
  232330. 253662541a Fix import
  232331. .IP \(bu 2
  232332. f16a30786b Fixes consul.agent_service_register which was broken for registering service checks.
  232333. .UNINDENT
  232334. .IP \(bu 2
  232335. \fBPR\fP \fI\%#35497\fP: (\fI\%deepakhj\fP) Fixes spacing in requirements files
  232336. @ \fI2016\-08\-17 09:34:15 UTC\fP
  232337. .INDENT 2.0
  232338. .IP \(bu 2
  232339. e1a373fa4c Merge pull request \fI\%#35497\fP from deepakhj/2015.8
  232340. .IP \(bu 2
  232341. 685db4ab88 Fix spacing
  232342. .UNINDENT
  232343. .IP \(bu 2
  232344. \fBPR\fP \fI\%#35508\fP: (\fI\%terminalmage\fP) Add Carbon to versionadded for git.diff
  232345. @ \fI2016\-08\-17 06:17:12 UTC\fP
  232346. .INDENT 2.0
  232347. .IP \(bu 2
  232348. 4048255ed6 Merge pull request \fI\%#35508\fP from terminalmage/update\-docstring
  232349. .IP \(bu 2
  232350. 67c945fce0 Add Carbon to versionadded for git.diff
  232351. .IP \(bu 2
  232352. \fBPR\fP \fI\%#35486\fP: (\fI\%rallytime\fP) Update bootstrap script to latest stable (2016.08.16)
  232353. .UNINDENT
  232354. .IP \(bu 2
  232355. \fBISSUE\fP \fI\%#35296\fP: (\fI\%szjur\fP) cp.push_dir gets confused when using upload_path and is probably insecure too (refs: \fI\%#35413\fP)
  232356. .IP \(bu 2
  232357. \fBPR\fP \fI\%#35413\fP: (\fI\%cachedout\fP) Resolve path issues with cp.push
  232358. @ \fI2016\-08\-16 16:40:39 UTC\fP
  232359. .INDENT 2.0
  232360. .IP \(bu 2
  232361. 240fc12863 Merge pull request \fI\%#35413\fP from cachedout/issue_35296
  232362. .IP \(bu 2
  232363. fb8a12d677 Fix silly error
  232364. .IP \(bu 2
  232365. 3646cf1afa Additional checks on master and integration test
  232366. .IP \(bu 2
  232367. 09efde7634 Splat the list into os.path.join
  232368. .IP \(bu 2
  232369. fc0d5878bc Set file_recv on test master
  232370. .IP \(bu 2
  232371. 81c4d136c5 Transition file push paths to lists
  232372. .UNINDENT
  232373. .IP \(bu 2
  232374. \fBISSUE\fP \fI\%saltstack/salt#35380\fP: (\fI\%anlutro\fP) salt\-ssh with sudo stopped working (refs: \fI\%#35476\fP)
  232375. .IP \(bu 2
  232376. \fBPR\fP \fI\%#35476\fP: (\fI\%cachedout\fP) Fixup SSH bug where sudo without sudo user would break
  232377. @ \fI2016\-08\-16 15:41:25 UTC\fP
  232378. .INDENT 2.0
  232379. .IP \(bu 2
  232380. c3319b2a8b Merge pull request \fI\%#35476\fP from cachedout/issue_35380
  232381. .IP \(bu 2
  232382. c05fcf33d1 Fixup SSH bug where sudo without sudo user would break
  232383. .UNINDENT
  232384. .IP \(bu 2
  232385. \fBPR\fP \fI\%#35471\fP: (\fI\%terminalmage\fP) win_pkg: Fix traceback when package is not installed
  232386. @ \fI2016\-08\-16 02:02:00 UTC\fP
  232387. .INDENT 2.0
  232388. .IP \(bu 2
  232389. 004778c966 Merge pull request \fI\%#35471\fP from terminalmage/issue34479
  232390. .IP \(bu 2
  232391. e243c63e43 win_pkg: Fix traceback when package is not installed
  232392. .UNINDENT
  232393. .IP \(bu 2
  232394. \fBPR\fP \fI\%#35448\fP: (\fI\%isbm\fP) Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on …
  232395. @ \fI2016\-08\-16 01:39:43 UTC\fP
  232396. .INDENT 2.0
  232397. .IP \(bu 2
  232398. 5c9428c32d Merge pull request \fI\%#35448\fP from isbm/isbm\-zypper\-106\-fix
  232399. .IP \(bu 2
  232400. dd82e6a848 Add ignore_repo_failure option to suppress zypper\(aqs exit code 106 on unavailable repos
  232401. .UNINDENT
  232402. .IP \(bu 2
  232403. \fBPR\fP \fI\%#35451\fP: (\fI\%isbm\fP) Bugfix: zypper mod repo unchanged
  232404. @ \fI2016\-08\-16 01:38:25 UTC\fP
  232405. .INDENT 2.0
  232406. .IP \(bu 2
  232407. 1473474b04 Merge pull request \fI\%#35451\fP from isbm/isbm\-zypper\-mod_repo\-unchanged
  232408. .IP \(bu 2
  232409. 8790197d86 Fix Unit test for suppressing the exception removal on non\-modified repos
  232410. .IP \(bu 2
  232411. 3f00c6997a Remove zypper\(aqs raise exception if mod_repo has no arguments and/or no changes
  232412. .UNINDENT
  232413. .IP \(bu 2
  232414. \fBISSUE\fP \fI\%saltstack/salt#34279\fP: (\fI\%vmadura\fP) Salt 2016.3.1 \- Master Side Pillar Cache (backend: Disk) never Expires. (refs: \fI\%#35453\fP)
  232415. .IP \(bu 2
  232416. \fBISSUE\fP \fI\%#34279\fP: (\fI\%vmadura\fP) Salt 2016.3.1 \- Master Side Pillar Cache (backend: Disk) never Expires. (refs: \fI\%#35453\fP)
  232417. .IP \(bu 2
  232418. \fBPR\fP \fI\%#35453\fP: (\fI\%theothergraham\fP) fixes \fI\%#34279\fP \- disk cache ttl expiry
  232419. @ \fI2016\-08\-16 01:34:33 UTC\fP
  232420. .INDENT 2.0
  232421. .IP \(bu 2
  232422. a8c4f17f50 Merge pull request \fI\%#35453\fP from theothergraham/fix_CacheDisk
  232423. .IP \(bu 2
  232424. ae5b233d51 fixes \fI\%#34279\fP
  232425. .UNINDENT
  232426. .IP \(bu 2
  232427. \fBPR\fP \fI\%#35459\fP: (\fI\%thatch45\fP) Ensure that output for salt\-ssh gets back
  232428. @ \fI2016\-08\-16 01:29:16 UTC\fP
  232429. .INDENT 2.0
  232430. .IP \(bu 2
  232431. d8c35b5260 Merge pull request \fI\%#35459\fP from thatch45/shim_fix
  232432. .IP \(bu 2
  232433. 10037b00cb Some environments refuse to return the command output
  232434. .IP \(bu 2
  232435. \fBPR\fP \fI\%#35460\fP: (\fI\%rallytime\fP) [2015.8] Update bootstrap script to latest stable (2016.08.15)
  232436. .UNINDENT
  232437. .IP \(bu 2
  232438. \fBISSUE\fP \fI\%saltstack/salt#35010\fP: (\fI\%vchav73\fP) cp.push_dir returns incorrect result for non\-existent directories (refs: \fI\%#35442\fP)
  232439. .INDENT 2.0
  232440. .IP \(bu 2
  232441. \fBPR\fP \fI\%#35442\fP: (\fI\%cachedout\fP) Fix cp.push_dir pushing empty dirs
  232442. .UNINDENT
  232443. .IP \(bu 2
  232444. \fBISSUE\fP \fI\%saltstack/salt#35387\fP: (\fI\%mzealey\fP) Document reload_grains and reload_pillar (refs: \fI\%#35436\fP)
  232445. .INDENT 2.0
  232446. .IP \(bu 2
  232447. \fBPR\fP \fI\%#35436\fP: (\fI\%cachedout\fP) Minor doc fixup
  232448. .UNINDENT
  232449. .IP \(bu 2
  232450. \fBISSUE\fP \fI\%saltstack/salt#35121\fP: (\fI\%sjorge\fP) file.append always results in change (refs: \fI\%#35132\fP)
  232451. .IP \(bu 2
  232452. \fBPR\fP \fI\%#35132\fP: (\fI\%sjorge\fP) fixes , causing lots of mayham (onchange) with 2016.3.2 for me
  232453. @ \fI2016\-08\-15 07:11:22 UTC\fP
  232454. .INDENT 2.0
  232455. .IP \(bu 2
  232456. a0b128a85a Merge pull request \fI\%#35132\fP from sjorge/2015.8\-35121
  232457. .IP \(bu 2
  232458. 5cb38c8ae0 switch to fpread().splitlines(), as per @lorengordon suggestion
  232459. .IP \(bu 2
  232460. 634f1dded5 fixes \fI\%#35121\fP, causing lots of mayham (onchange) with 2016.3.2 for me
  232461. .IP \(bu 2
  232462. \fBPR\fP \fI\%saltstack/salt#34573\fP: (\fI\%cedwards\fP) Update freebsd.rst (refs: \fI\%#35394\fP)
  232463. .IP \(bu 2
  232464. \fBPR\fP \fI\%#35394\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34573\fP to 2015.8
  232465. .IP \(bu 2
  232466. \fBPR\fP \fI\%#34573\fP: (\fI\%cedwards\fP) Update freebsd.rst (refs: \fI\%#35394\fP)
  232467. .IP \(bu 2
  232468. \fBPR\fP \fI\%#35359\fP: (\fI\%terminalmage\fP) Clean up open filehandles
  232469. .UNINDENT
  232470. .IP \(bu 2
  232471. \fBPR\fP \fI\%#35339\fP: (\fI\%isbm\fP) Bugfix: Prevent continuous restart, if a dependency wasn\(aqt installed
  232472. @ \fI2016\-08\-11 16:15:17 UTC\fP
  232473. .INDENT 2.0
  232474. .IP \(bu 2
  232475. 9ea7a34c30 Merge pull request \fI\%#35339\fP from isbm/isbm\-2015.8\-minion\-importerror\-fix
  232476. .IP \(bu 2
  232477. 12af60b7be Fix continuous minion restart if a dependency wasn\(aqt installed
  232478. .UNINDENT
  232479. .IP \(bu 2
  232480. \fBPR\fP \fI\%#35357\fP: (\fI\%twangboy\fP) Fix file.recurse with clean: True on Windows (2015.8)
  232481. @ \fI2016\-08\-11 00:44:14 UTC\fP
  232482. .INDENT 2.0
  232483. .IP \(bu 2
  232484. fd9b05ace4 Merge pull request \fI\%#35357\fP from twangboy/file.recurse.clean.2015.8
  232485. .IP \(bu 2
  232486. d328ec0157 Fix file.recurse with clean: True
  232487. .UNINDENT
  232488. .IP \(bu 2
  232489. \fBPR\fP \fI\%#35323\fP: (\fI\%thatch45\fP) Fix issue with bad error check in salt\-vt
  232490. @ \fI2016\-08\-10 11:33:49 UTC\fP
  232491. .INDENT 2.0
  232492. .IP \(bu 2
  232493. 4618b433e9 Merge pull request \fI\%#35323\fP from thatch45/ssh_crazy
  232494. .IP \(bu 2
  232495. 8a5b47b5d7 Collect all error data from the wfuncs call
  232496. .IP \(bu 2
  232497. 11864c31b7 supress a stack trace to show clean ssh error
  232498. .IP \(bu 2
  232499. 9fbfa282fa wow this solves an issue!
  232500. .UNINDENT
  232501. .IP \(bu 2
  232502. \fBPR\fP \fI\%#35325\fP: (\fI\%kev009\fP) Fix freebsd netstat route on fbsd 10+
  232503. @ \fI2016\-08\-10 11:33:12 UTC\fP
  232504. .INDENT 2.0
  232505. .IP \(bu 2
  232506. cfae862972 Merge pull request \fI\%#35325\fP from kev009/fbsd\-netstat\-route
  232507. .IP \(bu 2
  232508. 0d49dd3c29 Fix fbsd netstat route on fbsd 10+
  232509. .UNINDENT
  232510. .IP \(bu 2
  232511. \fBISSUE\fP \fI\%#35264\fP: (\fI\%bobrik\fP) ssh_known_hosts.present is not idempotent in test=true with port (refs: \fI\%#35301\fP)
  232512. .INDENT 2.0
  232513. .IP \(bu 2
  232514. \fBPR\fP \fI\%#35301\fP: (\fI\%bobrik\fP) Pass port to ssh.check_known_host, closes \fI\%#35264\fP
  232515. .UNINDENT
  232516. .IP \(bu 2
  232517. \fBISSUE\fP \fI\%#34945\fP: (\fI\%babilen\fP) file.recurse breaks directory permissions (refs: \fI\%#35309\fP)
  232518. .INDENT 2.0
  232519. .IP \(bu 2
  232520. \fBPR\fP \fI\%#35309\fP: (\fI\%terminalmage\fP) file.recurse: Do not convert octal mode string to int
  232521. .UNINDENT
  232522. .IP \(bu 2
  232523. \fBISSUE\fP \fI\%#35051\fP: (\fI\%terminalmage\fP) Runner/Wheel funcs still print return data to console when invoked from orchestration (refs: \fI\%#35290\fP)
  232524. .IP \(bu 2
  232525. \fBPR\fP \fI\%#35290\fP: (\fI\%terminalmage\fP) Resolve a couple bugs in orchestration output
  232526. @ \fI2016\-08\-09 15:27:00 UTC\fP
  232527. .INDENT 2.0
  232528. .IP \(bu 2
  232529. 2efc1b333b Merge pull request \fI\%#35290\fP from terminalmage/issue35051
  232530. .IP \(bu 2
  232531. d621aa7b61 Update runner/wheel unit tests to reflect new key in ret dict
  232532. .IP \(bu 2
  232533. 90c12a9c7b Add __orchestration__ key to orch returns for runner/wheel funcs
  232534. .IP \(bu 2
  232535. 7b8c3b86e7 Suppress error about invalid changes data for orchestration jobs
  232536. .IP \(bu 2
  232537. 54a1704d6c Suppress event for wheel/runner funcs executed from orchestration
  232538. .IP \(bu 2
  232539. f409f62bf2 Accept print_event option in WheelClient.cmd()
  232540. .IP \(bu 2
  232541. b42b25ccce Add cmd func for RunnerClient
  232542. .IP \(bu 2
  232543. 480065fe00 Add print_event option to client mixins
  232544. .UNINDENT
  232545. .IP \(bu 2
  232546. \fBISSUE\fP \fI\%#31074\fP: (\fI\%turtletraction\fP) salt\-ssh sudo_user execution not running as sudo_user (refs: \fI\%#35211\fP)
  232547. .IP \(bu 2
  232548. \fBPR\fP \fI\%#35211\fP: (\fI\%cachedout\fP) Alternative sudo users for salt\-ssh
  232549. @ \fI2016\-08\-08 15:40:55 UTC\fP
  232550. .INDENT 2.0
  232551. .IP \(bu 2
  232552. f8158124d5 Merge pull request \fI\%#35211\fP from cachedout/issue_31074
  232553. .IP \(bu 2
  232554. 6f53232e6d Better error handling and a workaround for group mismatch.
  232555. .IP \(bu 2
  232556. 5b56a4acf7 Docs
  232557. .IP \(bu 2
  232558. ae04e7aaeb Initial POC
  232559. .UNINDENT
  232560. .IP \(bu 2
  232561. \fBISSUE\fP \fI\%#35166\fP: (\fI\%bobrik\fP) state_output_profile defaults are confusing (refs: \fI\%#35271\fP)
  232562. .IP \(bu 2
  232563. \fBPR\fP \fI\%#35271\fP: (\fI\%bobrik\fP) Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  232564. @ \fI2016\-08\-08 14:36:24 UTC\fP
  232565. .INDENT 2.0
  232566. .IP \(bu 2
  232567. 3e4eb13daa Merge pull request \fI\%#35271\fP from bobrik/default\-output\-profile
  232568. .IP \(bu 2
  232569. 6cdee21036 Default state_output_profile to True everywhere, closes \fI\%#35166\fP
  232570. .UNINDENT
  232571. .IP \(bu 2
  232572. \fBISSUE\fP \fI\%#32719\fP: (\fI\%azweb76\fP) Salt\-Call Hangs when IPv6 is disabled on System (refs: \fI\%#35233\fP)
  232573. .IP \(bu 2
  232574. \fBPR\fP \fI\%#35233\fP: (\fI\%terminalmage\fP) Do not attempt to get fqdn_ip{4,6} grains when ipv{4,6} grains are empty
  232575. @ \fI2016\-08\-06 22:58:32 UTC\fP
  232576. .INDENT 2.0
  232577. .IP \(bu 2
  232578. 673e1aa1aa Merge pull request \fI\%#35233\fP from terminalmage/issue32719
  232579. .IP \(bu 2
  232580. 730a077041 Do not attempt to get fqdn_ip{4,6} grains when ipv{4,6} grains are empty
  232581. .UNINDENT
  232582. .IP \(bu 2
  232583. \fBPR\fP \fI\%#35202\fP: (\fI\%multani\fP) doc: fix broken links in the test documentation page
  232584. @ \fI2016\-08\-06 08:29:41 UTC\fP
  232585. .INDENT 2.0
  232586. .IP \(bu 2
  232587. cdf3c0fe73 Merge pull request \fI\%#35202\fP from multani/fix/test\-doc
  232588. .IP \(bu 2
  232589. 1642dba5d1 doc: fix broken links in the test documentation page
  232590. .UNINDENT
  232591. .IP \(bu 2
  232592. \fBISSUE\fP \fI\%saltstack/salt#34861\fP: (\fI\%dere\fP) minion incorrectly reports package cannot be installed (refs: \fI\%#35119\fP)
  232593. .IP \(bu 2
  232594. \fBPR\fP \fI\%#35236\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35119\fP to 2015.8
  232595. @ \fI2016\-08\-06 08:10:54 UTC\fP
  232596. .INDENT 2.0
  232597. .IP \(bu 2
  232598. \fBPR\fP \fI\%#35119\fP: (\fI\%dere\fP) Assume two EVRs are equal if E and V are equal but one R is missing. (refs: \fI\%#35236\fP)
  232599. .IP \(bu 2
  232600. e1331cd2a3 Merge pull request \fI\%#35236\fP from rallytime/bp\-35119
  232601. .IP \(bu 2
  232602. 9ade78de7b Revise unnecessary code duplication
  232603. .IP \(bu 2
  232604. 7c15f5b20a Fix formatting
  232605. .IP \(bu 2
  232606. 64f93f8938 Assume two EVRs are equal if E and V are equal but one R is missing.
  232607. .UNINDENT
  232608. .IP \(bu 2
  232609. \fBISSUE\fP \fI\%saltstack/salt#29785\fP: (\fI\%paul\-mulvihill\fP) pkg.installed to accept \(aqlatest\(aq as a version keyword (refs: \fI\%#35225\fP)
  232610. .IP \(bu 2
  232611. \fBISSUE\fP \fI\%#29785\fP: (\fI\%paul\-mulvihill\fP) pkg.installed to accept \(aqlatest\(aq as a version keyword (refs: \fI\%#35240\fP)
  232612. .IP \(bu 2
  232613. \fBPR\fP \fI\%#35240\fP: (\fI\%dere\fP) Backport \fI\%#35225\fP to 2015.8
  232614. @ \fI2016\-08\-06 07:54:19 UTC\fP
  232615. .INDENT 2.0
  232616. .IP \(bu 2
  232617. \fBPR\fP \fI\%#35225\fP: (\fI\%dere\fP) Add missing documentation for pkg.installed (refs: \fI\%#35240\fP)
  232618. .IP \(bu 2
  232619. 4f2b8aa5b6 Merge pull request \fI\%#35240\fP from derekmaciel/bp\-35225
  232620. .IP \(bu 2
  232621. 9ed47f713a Add missing documentation for pkg.installed
  232622. .UNINDENT
  232623. .IP \(bu 2
  232624. \fBPR\fP \fI\%#35241\fP: (\fI\%terminalmage\fP) Ensure max recursion in gitfs results in no blob object being returned.
  232625. @ \fI2016\-08\-06 07:53:49 UTC\fP
  232626. .INDENT 2.0
  232627. .IP \(bu 2
  232628. 4bcfaa97d0 Merge pull request \fI\%#35241\fP from terminalmage/gitfs\-fixes
  232629. .IP \(bu 2
  232630. e05648cc2d Break from loop when file is found
  232631. .IP \(bu 2
  232632. 6764a88601 Ensure that failed recursion results in no blob object being returned
  232633. .IP \(bu 2
  232634. \fBPR\fP \fI\%saltstack/salt#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  232635. .UNINDENT
  232636. .IP \(bu 2
  232637. \fBPR\fP \fI\%#35245\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35039\fP to 2015.8
  232638. @ \fI2016\-08\-06 07:52:44 UTC\fP
  232639. .INDENT 2.0
  232640. .IP \(bu 2
  232641. \fBPR\fP \fI\%#35039\fP: (\fI\%whiteinge\fP) Add saltenv support to module.run (refs: \fI\%#35245\fP)
  232642. .IP \(bu 2
  232643. f6d7360e0b Merge pull request \fI\%#35245\fP from rallytime/bp\-35039
  232644. .IP \(bu 2
  232645. 51ab9cd6d4 Add saltenv support to module.run
  232646. .UNINDENT
  232647. .IP \(bu 2
  232648. \fBISSUE\fP \fI\%#35214\fP: (\fI\%tdenny\fP) git.latest fails on non\-fast\-forward when a fast\-forward is possible (refs: \fI\%#35249\fP)
  232649. .IP \(bu 2
  232650. \fBPR\fP \fI\%#35249\fP: (\fI\%terminalmage\fP) Fix regression in git.latest
  232651. @ \fI2016\-08\-06 07:52:15 UTC\fP
  232652. .INDENT 2.0
  232653. .IP \(bu 2
  232654. d65a5c7134 Merge pull request \fI\%#35249\fP from terminalmage/issue35214
  232655. .IP \(bu 2
  232656. bcd5129e9f Fix regression in git.latest when update is fast\-forward
  232657. .IP \(bu 2
  232658. e2e8bbbfde Add integration test for \fI\%#35214\fP
  232659. .UNINDENT
  232660. .IP \(bu 2
  232661. \fBISSUE\fP \fI\%saltstack/salt#34691\fP: (\fI\%dmacvicar\fP) beacons.list does not include beacons configured from the pillar/ext_pillar (refs: #saltstack/salt\(ga#34827\(ga_, \fI\%#34827\fP)
  232662. .INDENT 2.0
  232663. .IP \(bu 2
  232664. \fBPR\fP \fI\%saltstack/salt#35146\fP: (\fI\%cachedout\fP) Don\(aqt discard running beacons config when listing becaons (refs: \fI\%#35174\fP)
  232665. .IP \(bu 2
  232666. \fBPR\fP \fI\%saltstack/salt#34827\fP: (\fI\%thatch45\fP) fix beacon list to include all beacons being processed (refs: \fI\%#35146\fP, #\(gasaltstack/salt\(ga#35146\(ga_\(ga_)
  232667. .IP \(bu 2
  232668. \fBPR\fP \fI\%#35174\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35146\fP to 2015.8
  232669. .IP \(bu 2
  232670. \fBPR\fP \fI\%#35146\fP: (\fI\%cachedout\fP) Don\(aqt discard running beacons config when listing becaons (refs: \fI\%#35174\fP)
  232671. .IP \(bu 2
  232672. \fBPR\fP \fI\%saltstack/salt#35135\fP: (\fI\%rallytime\fP) Add missing CLI Examples to aws_sqs module funcs (refs: \fI\%#35173\fP)
  232673. .IP \(bu 2
  232674. \fBPR\fP \fI\%#35173\fP: (\fI\%rallytime\fP) Back\-port \fI\%#35135\fP to 2015.8
  232675. .IP \(bu 2
  232676. \fBPR\fP \fI\%#35135\fP: (\fI\%rallytime\fP) Add missing CLI Examples to aws_sqs module funcs (refs: \fI\%#35173\fP)
  232677. .IP \(bu 2
  232678. \fBPR\fP \fI\%#35145\fP: (\fI\%jacobhammons\fP) doc version update to 2015.8.11, updates to release notes
  232679. .UNINDENT
  232680. .IP \(bu 2
  232681. \fBPR\fP \fI\%#35114\fP: (\fI\%terminalmage\fP) Add clarification docs on a common git_pillar misconfiguration
  232682. @ \fI2016\-08\-02 00:30:48 UTC\fP
  232683. .INDENT 2.0
  232684. .IP \(bu 2
  232685. 81845ee31d Merge pull request \fI\%#35114\fP from terminalmage/git_pillar\-env\-remap\-docs
  232686. .IP \(bu 2
  232687. 5951554e9f Add clarification docs on a common git_pillar misconfiguration
  232688. .UNINDENT
  232689. .IP \(bu 2
  232690. \fBISSUE\fP \fI\%saltstack/salt#34767\fP: (\fI\%hrumph\fP) Ensure that pkg.installed function refreshes properly with windows. (refs: \fI\%#34768\fP)
  232691. .IP \(bu 2
  232692. \fBISSUE\fP \fI\%#34767\fP: (\fI\%hrumph\fP) Ensure that pkg.installed function refreshes properly with windows. (refs: \fI\%#34768\fP)
  232693. .IP \(bu 2
  232694. \fBPR\fP \fI\%#34768\fP: (\fI\%hrumph\fP) Fixes \fI\%#34767\fP
  232695. @ \fI2016\-08\-01 21:46:16 UTC\fP
  232696. .INDENT 2.0
  232697. .IP \(bu 2
  232698. 88a9fb1b31 Merge pull request \fI\%#34768\fP from hrumph/bad\-installed\-state
  232699. .IP \(bu 2
  232700. e1fcb8311d Put pkg.latest_version in try/except structure Move refreshed or refresh to different spot (just for code tidyness)
  232701. .IP \(bu 2
  232702. e0b6261659 changed name of varibale \(aqrefreshed\(aq to \(aqwas_refreshed\(aq
  232703. .IP \(bu 2
  232704. 340110b4b4 Move check for rtag to outermost\-nesting in function
  232705. .IP \(bu 2
  232706. ac67c6b493 Lint fix
  232707. .IP \(bu 2
  232708. 0435a1375e Get rid of repetition in code by using new "refreshed" variable instead
  232709. .IP \(bu 2
  232710. 3b1dc978e2 Lint fix
  232711. .IP \(bu 2
  232712. a9bd1b92b9 lint fixes
  232713. .IP \(bu 2
  232714. 71d69343ef Fixes \fI\%#34767\fP
  232715. .UNINDENT
  232716. .IP \(bu 2
  232717. \fBPR\fP \fI\%#35043\fP: (\fI\%rallytime\fP) Start release notes file for 2015.8.12
  232718. @ \fI2016\-08\-01 17:22:04 UTC\fP
  232719. .INDENT 2.0
  232720. .IP \(bu 2
  232721. 343576408f Merge pull request \fI\%#35043\fP from rallytime/new\-release\-notes
  232722. .IP \(bu 2
  232723. bdcc81a384 Start release notes file for 2015.8.12
  232724. .UNINDENT
  232725. .IP \(bu 2
  232726. \fBPR\fP \fI\%#35050\fP: (\fI\%terminalmage\fP) [orchestration] Properly handle runner/wheel funcs which accept a \(aqsaltdev\(aq argument
  232727. @ \fI2016\-08\-01 15:48:08 UTC\fP
  232728. .INDENT 2.0
  232729. .IP \(bu 2
  232730. 848bf0272f Merge pull request \fI\%#35050\fP from terminalmage/fix\-saltdev\-arg
  232731. .IP \(bu 2
  232732. 40cfa7cf17 Avoid needlessly running 2 argspecs in salt.utils.format_call()
  232733. .IP \(bu 2
  232734. fd186b7e4c Pass environment as \(aqsaltdev\(aq if runner/wheel func accepts a saltdev argument
  232735. .IP \(bu 2
  232736. 951b52ab93 Pass __env__ from saltmod orch states to to saltutil.{runner,wheel}
  232737. .UNINDENT
  232738. .IP \(bu 2
  232739. \fBPR\fP \fI\%#35066\fP: (\fI\%jfindlay\fP) returners.postgres_local_cache: do not log in __virtual__
  232740. @ \fI2016\-07\-30 01:32:17 UTC\fP
  232741. .INDENT 2.0
  232742. .IP \(bu 2
  232743. 2144178ae0 Merge pull request \fI\%#35066\fP from jfindlay/postgres_log
  232744. .IP \(bu 2
  232745. c2c442234f returners.postgres_local_cache: do not log in __virtual__
  232746. .UNINDENT
  232747. .IP \(bu 2
  232748. \fBISSUE\fP \fI\%#34927\fP: (\fI\%bobrik\fP) Salt does not run "systemd daemon\-reload" on unit override (refs: \fI\%#35024\fP)
  232749. .IP \(bu 2
  232750. \fBPR\fP \fI\%#35024\fP: (\fI\%bobrik\fP) Cache systemd unit update check per unit, closes \fI\%#34927\fP
  232751. @ \fI2016\-07\-28 17:56:29 UTC\fP
  232752. .INDENT 2.0
  232753. .IP \(bu 2
  232754. 7121618142 Merge pull request \fI\%#35024\fP from bobrik/daemon\-reload\-fix
  232755. .IP \(bu 2
  232756. c300615e9d Cache systemd unit update check per unit, closes \fI\%#34927\fP
  232757. .IP \(bu 2
  232758. \fBPR\fP \fI\%#35026\fP: (\fI\%cachedout\fP) Expressly deny a minion if a key cannot be found
  232759. .IP \(bu 2
  232760. \fBPR\fP \fI\%saltstack/salt#33875\fP: (\fI\%jmesquita\fP) Fix naive fileserver map diff algorithm (refs: \fI\%#35000\fP)
  232761. .UNINDENT
  232762. .IP \(bu 2
  232763. \fBPR\fP \fI\%#35000\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33875\fP and \fI\%#34999\fP to 2015.8
  232764. @ \fI2016\-07\-27 21:55:58 UTC\fP
  232765. .INDENT 2.0
  232766. .IP \(bu 2
  232767. \fBPR\fP \fI\%#34999\fP: (\fI\%cachedout\fP) Fixup \fI\%#33875\fP (refs: \fI\%#35000\fP)
  232768. .IP \(bu 2
  232769. \fBPR\fP \fI\%#33875\fP: (\fI\%jmesquita\fP) Fix naive fileserver map diff algorithm (refs: \fI\%#35000\fP, \fI\%#34999\fP)
  232770. .IP \(bu 2
  232771. 2b511f3013 Merge pull request \fI\%#35000\fP from rallytime/bp\-33875
  232772. .IP \(bu 2
  232773. 35696ad637 Pylint fix
  232774. .IP \(bu 2
  232775. f9fd6ddd8a Fixup \fI\%#33875\fP
  232776. .IP \(bu 2
  232777. 56b1f6c651 Fix naive fileserver map diff algorithm
  232778. .UNINDENT
  232779. .IP \(bu 2
  232780. \fBISSUE\fP \fI\%saltstack/salt#34526\fP: (\fI\%danielmotaleite\fP) salt\-ssh + mine = weird error (refs: \fI\%#34835\fP, #\(gasaltstack/salt\(ga#34835\(ga_\(ga_)
  232781. .INDENT 2.0
  232782. .IP \(bu 2
  232783. \fBPR\fP \fI\%saltstack/salt#34835\fP: (\fI\%thatch45\fP) Make the mine and publish combine minion and master opts in salt\-ssh (refs: \fI\%#34994\fP)
  232784. .UNINDENT
  232785. .IP \(bu 2
  232786. \fBPR\fP \fI\%#34994\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34835\fP to 2015.8
  232787. @ \fI2016\-07\-27 18:21:10 UTC\fP
  232788. .INDENT 2.0
  232789. .IP \(bu 2
  232790. \fBPR\fP \fI\%#34835\fP: (\fI\%thatch45\fP) Make the mine and publish combine minion and master opts in salt\-ssh (refs: \fI\%#34994\fP)
  232791. .IP \(bu 2
  232792. 837bc6ba7d Merge pull request \fI\%#34994\fP from rallytime/bp\-34835
  232793. .IP \(bu 2
  232794. 9268a793de same thing for the mine in salt\-ssh
  232795. .IP \(bu 2
  232796. 3e11e19714 Fix the mine in salt ssh
  232797. .UNINDENT
  232798. .IP \(bu 2
  232799. \fBPR\fP \fI\%#34991\fP: (\fI\%cachedout\fP) SSH timeout
  232800. @ \fI2016\-07\-27 17:24:38 UTC\fP
  232801. .INDENT 2.0
  232802. .IP \(bu 2
  232803. b58c663d8d Merge pull request \fI\%#34991\fP from cachedout/ssh_timeout
  232804. .IP \(bu 2
  232805. 39cd8da399 Lint diff against salt\-testing
  232806. .IP \(bu 2
  232807. 443e5cdde2 Add timeout to ssh tests
  232808. .IP \(bu 2
  232809. \fBPR\fP \fI\%#34976\fP: (\fI\%cachedout\fP) Refine errors in client
  232810. .UNINDENT
  232811. .IP \(bu 2
  232812. \fBISSUE\fP \fI\%#34509\fP: (\fI\%srkunze\fP) No atomic thin.tgz deploy (refs: \fI\%#34831\fP)
  232813. .IP \(bu 2
  232814. \fBPR\fP \fI\%#34831\fP: (\fI\%thatch45\fP) If the thin does not match, then redeploy, don\(aqt error
  232815. @ \fI2016\-07\-26 22:27:01 UTC\fP
  232816. .INDENT 2.0
  232817. .IP \(bu 2
  232818. a83cdf9339 Merge pull request \fI\%#34831\fP from thatch45/recoverssh
  232819. .IP \(bu 2
  232820. fa73041a49 If the thin does not match, then redeploy, don\(aqt error
  232821. .IP \(bu 2
  232822. \fBPR\fP \fI\%#34916\fP: (\fI\%cachedout\fP) Master performance improvement
  232823. .UNINDENT
  232824. .IP \(bu 2
  232825. \fBPR\fP \fI\%#34911\fP: (\fI\%cachedout\fP) Backport \fI\%#34906\fP
  232826. @ \fI2016\-07\-22 23:23:24 UTC\fP
  232827. .INDENT 2.0
  232828. .IP \(bu 2
  232829. \fBPR\fP \fI\%#34906\fP: (\fI\%cachedout\fP) Set timeout for run_salt in test suite (refs: \fI\%#34911\fP)
  232830. .IP \(bu 2
  232831. 34dc2fd792 Merge pull request \fI\%#34911\fP from cachedout/backport_34906
  232832. .IP \(bu 2
  232833. 8becec2f4f Backport \fI\%#34906\fP
  232834. .UNINDENT
  232835. .IP \(bu 2
  232836. \fBISSUE\fP \fI\%saltstack/salt#33620\fP: (\fI\%TheBigBear\fP) [2016.3.0] win_pkg: pkg.list_upgrades loops (almost) endlessly \- cmds take VERY long (refs: \fI\%#34898\fP)
  232837. .IP \(bu 2
  232838. \fBPR\fP \fI\%#34898\fP: (\fI\%hrumph\fP) Stop multiple refreshes during call to pkg.list_upgrades
  232839. @ \fI2016\-07\-22 22:28:42 UTC\fP
  232840. .INDENT 2.0
  232841. .IP \(bu 2
  232842. 6ccc27f697 Merge pull request \fI\%#34898\fP from hrumph/list_upgrades_refresh
  232843. .IP \(bu 2
  232844. acd4b1a23b Fixes \fI\%#33620\fP
  232845. .UNINDENT
  232846. .IP \(bu 2
  232847. \fBPR\fP \fI\%#34606\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34751\fP)
  232848. @ \fI2016\-07\-22 17:35:18 UTC\fP
  232849. .INDENT 2.0
  232850. .IP \(bu 2
  232851. 5c13ee0e72 Merge pull request \fI\%#34606\fP from isbm/isbm\-config\-reading\-exit\-2015.8
  232852. .IP \(bu 2
  232853. 5f5b802c0c Add option to master config reader on ignoring system exit for wrong configuration
  232854. .IP \(bu 2
  232855. 6fc677f177 Ignore minion config errors everywhere but the minion itself
  232856. .IP \(bu 2
  232857. 8699194647 Remove deprecation: BaseException.message deprecated as of 2.6
  232858. .IP \(bu 2
  232859. 0e65cfec91 Fix lint: E8302
  232860. .IP \(bu 2
  232861. 67faa56bf1 Use Salt default exit codes instead of hard\-coded values
  232862. .IP \(bu 2
  232863. a84556e596 Exit immediately on configuration error
  232864. .IP \(bu 2
  232865. 43d965907c Raise an exception on any found wrong configuration file
  232866. .IP \(bu 2
  232867. 30ed728d05 Cover exception handling in the utils.parsers
  232868. .IP \(bu 2
  232869. 5e8c0c6bdb Introduce configuration error exception
  232870. .UNINDENT
  232871. .IP \(bu 2
  232872. \fBISSUE\fP \fI\%saltstack/salt#27783\fP: (\fI\%anlutro\fP) salt\-ssh not properly updating file_lists, causing file.recurse to fail (refs: \fI\%#34862\fP)
  232873. .INDENT 2.0
  232874. .IP \(bu 2
  232875. \fBPR\fP \fI\%#34862\fP: (\fI\%thatch45\fP) Fix salt\-ssh cacheing issue
  232876. .UNINDENT
  232877. .IP \(bu 2
  232878. \fBISSUE\fP \fI\%#34725\fP: (\fI\%akoumjian\fP) \fIgit.latest\fP with \fIforce_reset\fP set to \fITrue\fP does not reset local changes, causing it to fail. (refs: \fI\%#34869\fP)
  232879. .INDENT 2.0
  232880. .IP \(bu 2
  232881. \fBPR\fP \fI\%#34869\fP: (\fI\%terminalmage\fP) Fail git.latest states with uncommitted changes when force_reset=False
  232882. .UNINDENT
  232883. .IP \(bu 2
  232884. \fBPR\fP \fI\%#34859\fP: (\fI\%cachedout\fP) Fix wheel test
  232885. @ \fI2016\-07\-21 19:55:25 UTC\fP
  232886. .INDENT 2.0
  232887. .IP \(bu 2
  232888. 4f4381e5b9 Merge pull request \fI\%#34859\fP from cachedout/fix_wheel_test
  232889. .IP \(bu 2
  232890. b4be66dedf Fix wheel test
  232891. .UNINDENT
  232892. .IP \(bu 2
  232893. \fBISSUE\fP \fI\%saltstack/salt#34798\fP: (\fI\%Ch3LL\fP) exception when running state.low over salt\-ssh (refs: \fI\%#34822\fP)
  232894. .IP \(bu 2
  232895. \fBISSUE\fP \fI\%saltstack/salt#34796\fP: (\fI\%Ch3LL\fP) exception when running state.high over salt\-ssh (refs: \fI\%#34822\fP)
  232896. .IP \(bu 2
  232897. \fBPR\fP \fI\%#34822\fP: (\fI\%thatch45\fP) Fix salt\-ssh state.high and state.low
  232898. @ \fI2016\-07\-21 19:16:19 UTC\fP
  232899. .INDENT 2.0
  232900. .IP \(bu 2
  232901. acc9e31c02 Merge pull request \fI\%#34822\fP from thatch45/ssh_fixes
  232902. .IP \(bu 2
  232903. b5de492143 fix \fI\%#34798\fP
  232904. .IP \(bu 2
  232905. 5ad6bd7307 fix \fI\%#34796\fP
  232906. .UNINDENT
  232907. .IP \(bu 2
  232908. \fBPR\fP \fI\%#34847\fP: (\fI\%cachedout\fP) Add an option to skip the verification of client_acl users
  232909. @ \fI2016\-07\-21 17:55:55 UTC\fP
  232910. .INDENT 2.0
  232911. .IP \(bu 2
  232912. 5d91139bc9 Merge pull request \fI\%#34847\fP from cachedout/pwall
  232913. .IP \(bu 2
  232914. 2c8298dc6e Profile logging
  232915. .IP \(bu 2
  232916. 3affafa2e9 Add an option to skip the verification of client_acl users
  232917. .UNINDENT
  232918. .IP \(bu 2
  232919. \fBISSUE\fP \fI\%saltstack/salt#34691\fP: (\fI\%dmacvicar\fP) beacons.list does not include beacons configured from the pillar/ext_pillar (refs: #saltstack/salt\(ga#34827\(ga_, \fI\%#34827\fP)
  232920. .IP \(bu 2
  232921. \fBPR\fP \fI\%#34827\fP: (\fI\%thatch45\fP) fix beacon list to include all beacons being processed
  232922. @ \fI2016\-07\-21 14:49:56 UTC\fP
  232923. .INDENT 2.0
  232924. .IP \(bu 2
  232925. 07d1d36653 Merge pull request \fI\%#34827\fP from thatch45/34691
  232926. .IP \(bu 2
  232927. 1ccf35eca4 fix beacon list to include all beacons being processed
  232928. .IP \(bu 2
  232929. \fBPR\fP \fI\%saltstack/salt#28521\fP: (\fI\%gongled\fP) SPM: packaging doesn\(aqt work in Python 2.6. Fixed. (refs: \fI\%#34833\fP)
  232930. .UNINDENT
  232931. .IP \(bu 2
  232932. \fBPR\fP \fI\%#34833\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28521\fP to 2015.8
  232933. @ \fI2016\-07\-21 14:37:24 UTC\fP
  232934. .INDENT 2.0
  232935. .IP \(bu 2
  232936. \fBPR\fP \fI\%#28521\fP: (\fI\%gongled\fP) SPM: packaging doesn\(aqt work in Python 2.6. Fixed. (refs: \fI\%#34833\fP)
  232937. .IP \(bu 2
  232938. b375720251 Merge pull request \fI\%#34833\fP from rallytime/bp\-28521
  232939. .IP \(bu 2
  232940. e50a6783ce SPM: packaging doesn\(aqt work in Python 2.6. Fixed.
  232941. .UNINDENT
  232942. .IP \(bu 2
  232943. \fBISSUE\fP \fI\%#25213\fP: (\fI\%aboe76\fP) Add spm man page to setup.py (refs: #saltstack/salt\(ga#25276\(ga_, \fI\%#25276\fP)
  232944. .INDENT 2.0
  232945. .IP \(bu 2
  232946. \fBPR\fP \fI\%saltstack/salt#25276\fP: (\fI\%jacobhammons\fP) copy spm.1 man page during setup (refs: \fI\%#34823\fP)
  232947. .UNINDENT
  232948. .IP \(bu 2
  232949. \fBPR\fP \fI\%#34823\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25276\fP to 2015.8
  232950. @ \fI2016\-07\-20 20:56:04 UTC\fP
  232951. .INDENT 2.0
  232952. .IP \(bu 2
  232953. \fBPR\fP \fI\%#25276\fP: (\fI\%jacobhammons\fP) copy spm.1 man page during setup (refs: \fI\%#34823\fP)
  232954. .IP \(bu 2
  232955. 042646582f Merge pull request \fI\%#34823\fP from rallytime/bp\-25276
  232956. .IP \(bu 2
  232957. a028796eff copy spm.1 man page during setup Refs \fI\%#25213\fP
  232958. .UNINDENT
  232959. .IP \(bu 2
  232960. \fBISSUE\fP \fI\%saltstack/salt#34648\fP: (\fI\%bortels\fP) Error that % cannot start token (refs: \fI\%#34828\fP)
  232961. .IP \(bu 2
  232962. \fBISSUE\fP \fI\%#34648\fP: (\fI\%bortels\fP) Error that % cannot start token (refs: \fI\%#34828\fP)
  232963. .INDENT 2.0
  232964. .IP \(bu 2
  232965. \fBPR\fP \fI\%#34828\fP: (\fI\%thatch45\fP) Fix \fI\%#34648\fP
  232966. .IP \(bu 2
  232967. \fBPR\fP \fI\%saltstack/salt#34642\fP: (\fI\%justinta\fP) Check that mysqladmin exists before running mysql integration tests (refs: \fI\%#34818\fP)
  232968. .UNINDENT
  232969. .IP \(bu 2
  232970. \fBPR\fP \fI\%#34818\fP: (\fI\%justinta\fP) Skip mysql state test if mysqladmin is not available
  232971. @ \fI2016\-07\-20 16:10:35 UTC\fP
  232972. .INDENT 2.0
  232973. .IP \(bu 2
  232974. 98fa4a404e Merge pull request \fI\%#34818\fP from jtand/mysql_state_integration_test_cleanup
  232975. .IP \(bu 2
  232976. 9abb6f91bb Skip mysql state test if mysqladmin is not available
  232977. .UNINDENT
  232978. .IP \(bu 2
  232979. \fBISSUE\fP \fI\%saltstack/salt#26278\fP: (\fI\%jiahua\-h\fP) "order: first" doesn\(aqt work? (refs: \fI\%#34803\fP)
  232980. .IP \(bu 2
  232981. \fBISSUE\fP \fI\%saltstack/salt#24744\fP: (\fI\%anlutro\fP) Allow states to define order: first (refs: \fI\%#34803\fP)
  232982. .IP \(bu 2
  232983. \fBISSUE\fP \fI\%#24744\fP: (\fI\%anlutro\fP) Allow states to define order: first (refs: \fI\%#34803\fP)
  232984. .IP \(bu 2
  232985. \fBPR\fP \fI\%#34803\fP: (\fI\%junovitch\fP) salt/state.py: set \(aqchunk[\(aqorder\(aq] = 0\(aq with \(aqorder: first\(aq; fixes \fI\%#24744\fP
  232986. @ \fI2016\-07\-20 13:56:20 UTC\fP
  232987. .INDENT 2.0
  232988. .IP \(bu 2
  232989. 6636f2b449 Merge pull request \fI\%#34803\fP from junovitch/issue_24744
  232990. .IP \(bu 2
  232991. 64c850410f salt/state.py: set \(aqchunk[\(aqorder\(aq] = 0\(aq with \(aqorder: first\(aq; fixes \fI\%#24744\fP
  232992. .UNINDENT
  232993. .IP \(bu 2
  232994. \fBPR\fP \fI\%#34773\fP: (\fI\%randomed\fP) Bugfix: Startup states on minions are not being written to mysql returner
  232995. @ \fI2016\-07\-19 12:39:53 UTC\fP
  232996. .INDENT 2.0
  232997. .IP \(bu 2
  232998. 58021035a9 Merge pull request \fI\%#34773\fP from randomed/mysql\-returner\-startup/2015.8
  232999. .IP \(bu 2
  233000. 0cd55eb7d7 Add jid=req handling for mysql returner. It should also store the return jid into the jid list table.
  233001. .IP \(bu 2
  233002. \fBPR\fP \fI\%#34751\fP: (\fI\%cachedout\fP) Remove unnedeed config test
  233003. .IP \(bu 2
  233004. \fBPR\fP \fI\%#34606\fP: (\fI\%isbm\fP) Bugfix: Exit on configuration read (backport) (refs: \fI\%#34751\fP)
  233005. .UNINDENT
  233006. .IP \(bu 2
  233007. \fBPR\fP \fI\%#34754\fP: (\fI\%cachedout\fP) Disable test
  233008. @ \fI2016\-07\-18 18:40:50 UTC\fP
  233009. .INDENT 2.0
  233010. .IP \(bu 2
  233011. f19caac8e4 Merge pull request \fI\%#34754\fP from cachedout/disable_mid_test
  233012. .IP \(bu 2
  233013. 46901c6e65 Disable test
  233014. .UNINDENT
  233015. .IP \(bu 2
  233016. \fBISSUE\fP \fI\%saltstack/salt#34678\fP: (\fI\%martinhoefling\fP) config.get module is broken due to bug in dictupdate.py (refs: \fI\%#34726\fP, #\(gasaltstack/salt\(ga#34726\(ga_\(ga_, \fI\%#34741\fP)
  233017. .INDENT 2.0
  233018. .IP \(bu 2
  233019. \fBPR\fP \fI\%saltstack/salt#34726\fP: (\fI\%martinhoefling\fP) Always loop over updated keys in non recursive update (refs: \fI\%#34741\fP)
  233020. .UNINDENT
  233021. .IP \(bu 2
  233022. \fBPR\fP \fI\%#34741\fP: (\fI\%rallytime\fP) Back\-port \fI\%#34726\fP to 2015.8
  233023. @ \fI2016\-07\-18 18:00:23 UTC\fP
  233024. .INDENT 2.0
  233025. .IP \(bu 2
  233026. \fBPR\fP \fI\%#34726\fP: (\fI\%martinhoefling\fP) Always loop over updated keys in non recursive update (refs: \fI\%#34741\fP)
  233027. .IP \(bu 2
  233028. 81f29006f2 Merge pull request \fI\%#34741\fP from rallytime/bp\-34726
  233029. .IP \(bu 2
  233030. d949110993 Loop over updated keys in non recursive update
  233031. .UNINDENT
  233032. .IP \(bu 2
  233033. \fBISSUE\fP \fI\%saltstack/salt#34703\fP: (\fI\%Cashwini\fP) Is it possible to return output from python execution module to a file on salt master? (refs: \fI\%#34721\fP)
  233034. .IP \(bu 2
  233035. \fBPR\fP \fI\%#34721\fP: (\fI\%rallytime\fP) Add output_file option to master config docs
  233036. @ \fI2016\-07\-16 20:04:03 UTC\fP
  233037. .INDENT 2.0
  233038. .IP \(bu 2
  233039. e9e5bbe38b Merge pull request \fI\%#34721\fP from rallytime/fix\-34703
  233040. .IP \(bu 2
  233041. 9c803d05a5 Add output_file option to master config docs
  233042. .UNINDENT
  233043. .IP \(bu 2
  233044. \fBISSUE\fP \fI\%saltstack/salt#32276\fP: (\fI\%javicacheiro\fP) pkg.installed using sources from master fails with file not found after first succesful run (refs: \fI\%#34689\fP)
  233045. .IP \(bu 2
  233046. \fBPR\fP \fI\%#34689\fP: (\fI\%Azidburn\fP) fix second run problems with pkg.installed using sources
  233047. @ \fI2016\-07\-15 21:19:39 UTC\fP
  233048. .INDENT 2.0
  233049. .IP \(bu 2
  233050. 08d00f3a61 Merge pull request \fI\%#34689\fP from Azidburn/fix_pkg_sources
  233051. .IP \(bu 2
  233052. 2c0fc919b3 fix second run problems with pkg.installed using sources
  233053. .UNINDENT
  233054. .IP \(bu 2
  233055. \fBPR\fP \fI\%#34695\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.list_products\fP returns False on some empty values (2015.8)
  233056. @ \fI2016\-07\-15 21:08:00 UTC\fP
  233057. .INDENT 2.0
  233058. .IP \(bu 2
  233059. 4cb1ded520 Merge pull request \fI\%#34695\fP from isbm/isbm\-zypper\-product\-boolean\-values
  233060. .IP \(bu 2
  233061. 5ed5142fbc Update test data for \(aqregisterrelease\(aq and \(aqproductline\(aq fields
  233062. .IP \(bu 2
  233063. 21444ee240 Bugfix: return boolean only for \(aqisbase\(aq and \(aqinstalled\(aq attributes
  233064. .UNINDENT
  233065. .UNINDENT
  233066. .SS Salt 2015.8.13 Release Notes
  233067. .sp
  233068. Version 2015.8.13 is a bugfix release for 2015.8.0\&.
  233069. .SS Security Fixes
  233070. .sp
  233071. \fBCVE\-2017\-5192\fP local_batch client external authentication not respected
  233072. .sp
  233073. The \fBLocalClient.cmd_batch()\fP method client does not accept \fBexternal_auth\fP
  233074. credentials and so access to it from salt\-api has been removed for now. This
  233075. vulnerability allows code execution for already\-authenticated users and is only
  233076. in effect when running salt\-api as the \fBroot\fP user.
  233077. .sp
  233078. \fBCVE\-2017\-5200\fP Salt\-api allows arbitrary command execution on a salt\-master
  233079. via Salt\(aqs ssh_client
  233080. .sp
  233081. Users of Salt\-API and salt\-ssh could execute a command on the salt master via a
  233082. hole when both systems were enabled.
  233083. .sp
  233084. We recommend everyone on the 2015.8 branch upgrade to a patched release as soon
  233085. as possible.
  233086. .SS Salt 2015.8.2 Release Notes
  233087. .sp
  233088. Version 2015.8.2 is a bugfix release for 2015.8.0\&.
  233089. .SS Statistics
  233090. .INDENT 0.0
  233091. .IP \(bu 2
  233092. Total Merges: \fB379\fP
  233093. .IP \(bu 2
  233094. Total Issue References: \fB138\fP
  233095. .IP \(bu 2
  233096. Total PR References: \fB351\fP
  233097. .IP \(bu 2
  233098. Contributors: \fB83\fP (\fI\%DmitryKuzmenko\fP, \fI\%JaseFace\fP, \fI\%LoveIsGrief\fP, \fI\%MasterNayru\fP, \fI\%Oro\fP, \fI\%SmithSamuelM\fP, \fI\%The\-Loeki\fP, \fI\%TheBigBear\fP, \fI\%aboe76\fP, \fI\%ajacoutot\fP, \fI\%anlutro\fP, \fI\%avinassh\fP, \fI\%basepi\fP, \fI\%bdrung\fP, \fI\%bechtoldt\fP, \fI\%bernieke\fP, \fI\%blueyed\fP, \fI\%cachedout\fP, \fI\%cbuechler\fP, \fI\%cedwards\fP, \fI\%clarkperkins\fP, \fI\%cro\fP, \fI\%dkiser\fP, \fI\%douglas\-vaz\fP, \fI\%dr4Ke\fP, \fI\%eguven\fP, \fI\%eliasp\fP, \fI\%erchn\fP, \fI\%eyj\fP, \fI\%favadi\fP, \fI\%flavio\fP, \fI\%garethgreenaway\fP, \fI\%gravyboat\fP, \fI\%gtmanfred\fP, \fI\%hedinfaok\fP, \fI\%hexedpackets\fP, \fI\%hyn\-salt\fP, \fI\%isbm\fP, \fI\%itsamenathan\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jeffreyctang\fP, \fI\%jejenone\fP, \fI\%jfindlay\fP, \fI\%johnsocp\fP, \fI\%justinta\fP, \fI\%keesbos\fP, \fI\%lathama\fP, \fI\%ldobson\fP, \fI\%lomeroe\fP, \fI\%martinhoefling\fP, \fI\%mbarrien\fP, \fI\%mbologna\fP, \fI\%merll\fP, \fI\%mrosedale\fP, \fI\%msteed\fP, \fI\%multani\fP, \fI\%nasenbaer13\fP, \fI\%nmadhok\fP, \fI\%notpeter\fP, \fI\%opdude\fP, \fI\%papertigers\fP, \fI\%pass\-by\-value\fP, \fI\%plastikos\fP, \fI\%quantonganh\fP, \fI\%rallytime\fP, \fI\%redmcg\fP, \fI\%rowillia\fP, \fI\%ruzarowski\fP, \fI\%ryan\-lane\fP, \fI\%s0undt3ch\fP, \fI\%sdm24\fP, \fI\%sjansen\fP, \fI\%skizunov\fP, \fI\%srkunze\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%ticosax\fP, \fI\%tkwilliams\fP, \fI\%toddtomkinson\fP, \fI\%twangboy\fP, \fI\%twellspring\fP, \fI\%whiteinge\fP)
  233099. .UNINDENT
  233100. .sp
  233101. \fBIMPORTANT:\fP
  233102. .INDENT 0.0
  233103. .INDENT 3.5
  233104. A significant orchestrate issue (\fI\%issue ##29110\fP) was discovered during the
  233105. release process of 2015.8.2, so it has not been officially released.
  233106. Please use 2015.8.3 instead.
  233107. .UNINDENT
  233108. .UNINDENT
  233109. .SS Changelog for v2015.8.1..v2015.8.2
  233110. .sp
  233111. \fIGenerated at: 2018\-05\-27 23:17:44 UTC\fP
  233112. .INDENT 0.0
  233113. .IP \(bu 2
  233114. \fBPR\fP \fI\%#28865\fP: (\fI\%jfindlay\fP) add 2015.8.2 release notes
  233115. @ \fI2015\-11\-13 17:30:18 UTC\fP
  233116. .INDENT 2.0
  233117. .IP \(bu 2
  233118. af297bb0ae Merge pull request \fI\%#28865\fP from jfindlay/2015.8
  233119. .IP \(bu 2
  233120. 1f847fc9ba add 2015.8.2 release notes
  233121. .UNINDENT
  233122. .IP \(bu 2
  233123. \fBISSUE\fP \fI\%#27392\fP: (\fI\%ahammond\fP) schedule running state.orchestrate fails (refs: \fI\%#28730\fP)
  233124. .IP \(bu 2
  233125. \fBPR\fP \fI\%#28730\fP: (\fI\%garethgreenaway\fP) Fixes to how return_job is handled in the scheduler for the salt master.
  233126. @ \fI2015\-11\-13 16:58:20 UTC\fP
  233127. .INDENT 2.0
  233128. .IP \(bu 2
  233129. 15672a3faa Merge pull request \fI\%#28730\fP from garethgreenaway/27392_2015_8_scheduler_return_job_master
  233130. .IP \(bu 2
  233131. 882350a543 Fixing the salt scheduler so that it only attempts to return the job data to the master if the scheduled job is running from a minion\(aqs scheduler.
  233132. .UNINDENT
  233133. .IP \(bu 2
  233134. \fBPR\fP \fI\%#28848\fP: (\fI\%cro\fP) Lint
  233135. @ \fI2015\-11\-13 13:46:36 UTC\fP
  233136. .INDENT 2.0
  233137. .IP \(bu 2
  233138. 5560cb662b Merge pull request \fI\%#28848\fP from cro/fx2_multi_creds
  233139. .IP \(bu 2
  233140. f032bffd7c Lint
  233141. .IP \(bu 2
  233142. 6bb6703c3e Merge branch \(aqfx2_multi_creds\(aq of git://github.com/cro/salt into cro
  233143. .IP \(bu 2
  233144. 3b7d22248c Fix fallback credentials, add grains based on dracr.server_info and dracr.inventory, fix short\-circuited for loop that was preventing retrieval of most data from CMC and DRAC devices, format responses from racadm more clearly.
  233145. .IP \(bu 2
  233146. b86c614564 Better logic around fallback credentials.
  233147. .IP \(bu 2
  233148. 2701826a99 Update fx2.py, fix typos in new fallback parameters.
  233149. .IP \(bu 2
  233150. 8ce5348808 Better variable name.
  233151. .IP \(bu 2
  233152. 92038b8718 Default configuration file for proxy minions.
  233153. .UNINDENT
  233154. .IP \(bu 2
  233155. \fBPR\fP \fI\%#28842\fP: (\fI\%cachedout\fP) Add transport setting to shell test
  233156. @ \fI2015\-11\-12 21:43:11 UTC\fP
  233157. .INDENT 2.0
  233158. .IP \(bu 2
  233159. 778ace3ca5 Merge pull request \fI\%#28842\fP from cachedout/tcp_shell_test
  233160. .IP \(bu 2
  233161. 785bf94f55 Add transport setting to shell test
  233162. .UNINDENT
  233163. .IP \(bu 2
  233164. \fBPR\fP \fI\%#28837\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  233165. @ \fI2015\-11\-12 21:17:14 UTC\fP
  233166. .INDENT 2.0
  233167. .IP \(bu 2
  233168. 5639971744 Merge pull request \fI\%#28837\fP from basepi/merge\-forward\-2015.8
  233169. .IP \(bu 2
  233170. 1c91ad6765 fix lint
  233171. .IP \(bu 2
  233172. 4b706ac76a Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233173. .INDENT 2.0
  233174. .IP \(bu 2
  233175. eb904665dc Merge pull request \fI\%#28832\fP from basepi/backport.28826
  233176. .INDENT 2.0
  233177. .IP \(bu 2
  233178. 57be72eb91 Add backports_abc and singledispatch_helpers to thin as well
  233179. .IP \(bu 2
  233180. 897cad627b Add singledispatch to the thin
  233181. .UNINDENT
  233182. .IP \(bu 2
  233183. eff811a0ad Merge pull request \fI\%#28833\fP from basepi/increase.gather_job_timeout.8647
  233184. .INDENT 2.0
  233185. .IP \(bu 2
  233186. c09243dd01 Increase the default gather_job_timeout
  233187. .UNINDENT
  233188. .IP \(bu 2
  233189. e4a036365d Merge pull request \fI\%#28829\fP from basepi/merge\-forward\-2015.5
  233190. .INDENT 2.0
  233191. .IP \(bu 2
  233192. f8b8441485 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  233193. .IP \(bu 2
  233194. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  233195. .INDENT 2.0
  233196. .IP \(bu 2
  233197. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  233198. .UNINDENT
  233199. .IP \(bu 2
  233200. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  233201. .INDENT 2.0
  233202. .IP \(bu 2
  233203. 32e7bd3ea0 Account for new headers class in tornado 4.3
  233204. .UNINDENT
  233205. .IP \(bu 2
  233206. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  233207. .INDENT 2.0
  233208. .IP \(bu 2
  233209. 1874300e08 Add note about recommended umask
  233210. .UNINDENT
  233211. .UNINDENT
  233212. .UNINDENT
  233213. .IP \(bu 2
  233214. 5aeab71f76 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233215. .INDENT 2.0
  233216. .IP \(bu 2
  233217. 93562631aa Merge pull request \fI\%#28756\fP from MrCitron/fix\-25775
  233218. .INDENT 2.0
  233219. .IP \(bu 2
  233220. 82075c809c Add logs and correct pylint error
  233221. .IP \(bu 2
  233222. e31e22d96a Fix 25775
  233223. .UNINDENT
  233224. .IP \(bu 2
  233225. 30cc48e37f Merge pull request \fI\%#28786\fP from chrigl/fix\-28783
  233226. .INDENT 2.0
  233227. .IP \(bu 2
  233228. ba6d814553 closes \fI\%#28783\fP
  233229. .UNINDENT
  233230. .IP \(bu 2
  233231. 8f1d0b636e Merge pull request \fI\%#28776\fP from rallytime/bp\-28740\-2015.5
  233232. .INDENT 2.0
  233233. .IP \(bu 2
  233234. 49256b7d90 Back\-port \fI\%#28740\fP to 2015.5
  233235. .UNINDENT
  233236. .IP \(bu 2
  233237. 77d4b980f1 Merge pull request \fI\%#28760\fP from dmyerscough/28732\-Fix\-cherrypi\-api\-keys\-endpoint
  233238. .INDENT 2.0
  233239. .IP \(bu 2
  233240. 206d1684b2 Fixing CherryPy key bug
  233241. .UNINDENT
  233242. .IP \(bu 2
  233243. 6f8f04975f Merge pull request \fI\%#28746\fP from rallytime/bp\-28718
  233244. .INDENT 2.0
  233245. .IP \(bu 2
  233246. 092f441cad Account for no POST data
  233247. .UNINDENT
  233248. .UNINDENT
  233249. .UNINDENT
  233250. .IP \(bu 2
  233251. \fBISSUE\fP \fI\%#28549\fP: (\fI\%ldelossa\fP) dockerng module issue (refs: \fI\%#28827\fP)
  233252. .IP \(bu 2
  233253. \fBPR\fP \fI\%#28827\fP: (\fI\%jacksontj\fP) Cleanup virtual_timer in loader
  233254. @ \fI2015\-11\-12 19:39:29 UTC\fP
  233255. .INDENT 2.0
  233256. .IP \(bu 2
  233257. c4fb185147 Merge pull request \fI\%#28827\fP from jacksontj/2015.8
  233258. .IP \(bu 2
  233259. f49502fd48 \fI__modules__\fP isn\(aqt a global, although \fI__salt__\fP is
  233260. .IP \(bu 2
  233261. c734cb8876 Fix virtual_timer branch such that it will catch exceptions.
  233262. .UNINDENT
  233263. .IP \(bu 2
  233264. \fBPR\fP \fI\%#28836\fP: (\fI\%cachedout\fP) Cast to dict to fix wheel tests in tcp
  233265. @ \fI2015\-11\-12 19:22:44 UTC\fP
  233266. .INDENT 2.0
  233267. .IP \(bu 2
  233268. 21520c6c1d Merge pull request \fI\%#28836\fP from cachedout/fix_tcp_wheel_tests
  233269. .IP \(bu 2
  233270. 8d3244166b Cast to dict to fix wheel tests in tcp
  233271. .UNINDENT
  233272. .IP \(bu 2
  233273. \fBPR\fP \fI\%#28834\fP: (\fI\%cachedout\fP) Fix breakage in tcp server
  233274. @ \fI2015\-11\-12 18:57:18 UTC\fP
  233275. .INDENT 2.0
  233276. .IP \(bu 2
  233277. 560671a170 Merge pull request \fI\%#28834\fP from cachedout/tcp_revert_master_uri
  233278. .IP \(bu 2
  233279. 755d493bed Fix breakage in tcp server
  233280. .UNINDENT
  233281. .IP \(bu 2
  233282. \fBPR\fP \fI\%#28804\fP: (\fI\%cachedout\fP) TCP test fixes
  233283. @ \fI2015\-11\-12 18:39:25 UTC\fP
  233284. .INDENT 2.0
  233285. .IP \(bu 2
  233286. 224602437a Merge pull request \fI\%#28804\fP from cachedout/tcp_test_fixes
  233287. .IP \(bu 2
  233288. f799971280 Change logic
  233289. .IP \(bu 2
  233290. 52ed06500a Fix typo
  233291. .IP \(bu 2
  233292. 9b18f372e6 Normalize IPC check among transports
  233293. .IP \(bu 2
  233294. e8ead2bfed Allow for tcp transport in publish
  233295. .IP \(bu 2
  233296. e33b903e7b Allow for tcp transport in mine
  233297. .IP \(bu 2
  233298. 3d80e67a2d Allow for tcp transport in auth
  233299. .UNINDENT
  233300. .IP \(bu 2
  233301. \fBISSUE\fP \fI\%#28828\fP: (\fI\%basepi\fP) salt\-ssh doesn\(aqt package tornado\(aqs new deps in the thin (refs: \fI\%#28826\fP)
  233302. .IP \(bu 2
  233303. \fBPR\fP \fI\%#28826\fP: (\fI\%basepi\fP) [2015.8] Add new tornado deps to salt\-ssh thin (refs: \fI\%#28832\fP)
  233304. @ \fI2015\-11\-12 18:14:43 UTC\fP
  233305. .INDENT 2.0
  233306. .IP \(bu 2
  233307. 49992070db Merge pull request \fI\%#28826\fP from basepi/salt\-ssh.singledispatch.thin
  233308. .IP \(bu 2
  233309. 1e1a74fd61 Add backports_abc and singledispatch_helpers to thin as well
  233310. .IP \(bu 2
  233311. da1a2773dd Add singledispatch to the thin
  233312. .UNINDENT
  233313. .IP \(bu 2
  233314. \fBPR\fP \fI\%#28759\fP: (\fI\%jfindlay\fP) simplify stdin use of stdin in at.present state
  233315. @ \fI2015\-11\-12 18:11:55 UTC\fP
  233316. .INDENT 2.0
  233317. .IP \(bu 2
  233318. \fBPR\fP \fI\%#28187\fP: (\fI\%sjansen\fP) fix at.present (refs: \fI\%#28759\fP)
  233319. .IP \(bu 2
  233320. af52c3272f Merge pull request \fI\%#28759\fP from jfindlay/at
  233321. .IP \(bu 2
  233322. 987d1fee7c simplify stdin use of stdin in at.present state
  233323. .UNINDENT
  233324. .IP \(bu 2
  233325. \fBPR\fP \fI\%#28824\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28778\fP and \fI\%#28820\fP to 2015.8
  233326. @ \fI2015\-11\-12 18:06:31 UTC\fP
  233327. .INDENT 2.0
  233328. .IP \(bu 2
  233329. \fBPR\fP \fI\%#28820\fP: (\fI\%cro\fP) Add versionadded directives for chronos and marathon proxy grains. (refs: \fI\%#28824\fP)
  233330. .IP \(bu 2
  233331. \fBPR\fP \fI\%#28778\fP: (\fI\%toddtomkinson\fP) marathon and chronos proxy minions (refs: \fI\%#28824\fP)
  233332. .IP \(bu 2
  233333. 08891cb210 Merge pull request \fI\%#28824\fP from rallytime/bp\-28778\-and\-28820
  233334. .IP \(bu 2
  233335. ab5943995b Change versionaddeds to 2015.8.2 from Boron
  233336. .IP \(bu 2
  233337. da7ad0df99 Add versionadded directives.
  233338. .IP \(bu 2
  233339. 4bdd10fdf5 documentation updates
  233340. .IP \(bu 2
  233341. 675bc2acce more pylint fixes
  233342. .IP \(bu 2
  233343. 8e19b5c518 pylint fixes
  233344. .IP \(bu 2
  233345. ba94878f45 marathon and chronos proxy minions
  233346. .UNINDENT
  233347. .IP \(bu 2
  233348. \fBISSUE\fP \fI\%#23271\fP: (\fI\%twisty7867\fP) Unicode paths break file states with masterless minion on Vagrant/Ubuntu 14.04 (refs: \fI\%#28803\fP)
  233349. .IP \(bu 2
  233350. \fBPR\fP \fI\%#28803\fP: (\fI\%jfindlay\fP) decode strings to utf\-8
  233351. @ \fI2015\-11\-12 04:59:38 UTC\fP
  233352. .INDENT 2.0
  233353. .IP \(bu 2
  233354. 30ea94439c Merge pull request \fI\%#28803\fP from jfindlay/sdecodes
  233355. .IP \(bu 2
  233356. 11163380cf sdecode chunk name in state compiler
  233357. .IP \(bu 2
  233358. 7f95c483e1 sdecode strings in file state
  233359. .IP \(bu 2
  233360. fe4d08526d sdecode strings in highstate outputter
  233361. .UNINDENT
  233362. .IP \(bu 2
  233363. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  233364. .IP \(bu 2
  233365. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  233366. .IP \(bu 2
  233367. \fBPR\fP \fI\%#28782\fP: (\fI\%rallytime\fP) Fixes to rabbitmq user state
  233368. @ \fI2015\-11\-12 00:59:57 UTC\fP
  233369. .INDENT 2.0
  233370. .IP \(bu 2
  233371. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  233372. .IP \(bu 2
  233373. 59b505ff7c Merge pull request \fI\%#28782\fP from rallytime/rabbitmq\-user\-state
  233374. .IP \(bu 2
  233375. e2b0fee57e Don\(aqt change perms list, only existing perms should be a dictionary.
  233376. .IP \(bu 2
  233377. 7601647d69 Revert "rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list."
  233378. .UNINDENT
  233379. .IP \(bu 2
  233380. \fBISSUE\fP \fI\%#28429\fP: (\fI\%cbuechler\fP) salt\-cloud VMware driver fails with uncustomizable guest when not customizing guest (refs: \fI\%#28789\fP)
  233381. .IP \(bu 2
  233382. \fBPR\fP \fI\%#28789\fP: (\fI\%nmadhok\fP) Provide ability to enable/disable customization for newly create VMs using VMware salt\-cloud driver
  233383. @ \fI2015\-11\-11 22:48:57 UTC\fP
  233384. .INDENT 2.0
  233385. .IP \(bu 2
  233386. 098d48ad26 Merge pull request \fI\%#28789\fP from nmadhok/2015.8\-customization\-fix
  233387. .IP \(bu 2
  233388. 9294ebd984 Provide ability to enable/disable customization for new VMs. Fixes \fI\%#28429\fP
  233389. .UNINDENT
  233390. .IP \(bu 2
  233391. \fBISSUE\fP \fI\%#28692\fP: (\fI\%mrosedale\fP) puppet.run fails with arguments (refs: \fI\%#28768\fP)
  233392. .IP \(bu 2
  233393. \fBPR\fP \fI\%#28768\fP: (\fI\%mrosedale\fP) 2015.8
  233394. @ \fI2015\-11\-11 19:29:11 UTC\fP
  233395. .INDENT 2.0
  233396. .IP \(bu 2
  233397. 1e510be55b Merge pull request \fI\%#28768\fP from mrosedale/2015.8
  233398. .IP \(bu 2
  233399. fbbbdcc02e Update puppet.py
  233400. .IP \(bu 2
  233401. 1c1a4b4410 Update puppet.py
  233402. .IP \(bu 2
  233403. 59bd6aef5c Merge pull request \fI\%#1\fP from mrosedale/mrosedale\-patch\-1
  233404. .INDENT 2.0
  233405. .IP \(bu 2
  233406. c26ea916aa Update puppet.py
  233407. .UNINDENT
  233408. .UNINDENT
  233409. .IP \(bu 2
  233410. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  233411. .IP \(bu 2
  233412. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  233413. .IP \(bu 2
  233414. \fBPR\fP \fI\%#28772\fP: (\fI\%rallytime\fP) rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list.
  233415. @ \fI2015\-11\-11 18:17:09 UTC\fP
  233416. .INDENT 2.0
  233417. .IP \(bu 2
  233418. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  233419. .IP \(bu 2
  233420. a6cad46301 Merge pull request \fI\%#28772\fP from rallytime/rabbitmq\-user\-state
  233421. .IP \(bu 2
  233422. 07482211eb rabbitmq.list_user_permissions returns a dict, not a list. Don\(aqt expect a list.
  233423. .UNINDENT
  233424. .IP \(bu 2
  233425. \fBISSUE\fP \fI\%#28724\fP: (\fI\%quantonganh\fP) Exception occurred when calling boto_vpc.route_table_present with test=True (refs: \fI\%#28725\fP)
  233426. .IP \(bu 2
  233427. \fBPR\fP \fI\%#28774\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28725\fP to 2015.8
  233428. @ \fI2015\-11\-11 18:16:27 UTC\fP
  233429. .INDENT 2.0
  233430. .IP \(bu 2
  233431. \fBPR\fP \fI\%#28725\fP: (\fI\%quantonganh\fP) boto_vpc: return an empty dict in case cannot get the route tables (refs: \fI\%#28774\fP)
  233432. .IP \(bu 2
  233433. d570ac48f4 Merge pull request \fI\%#28774\fP from rallytime/bp\-28725
  233434. .IP \(bu 2
  233435. c3420461c3 boto_vpc: return an empty dict in case cannot get the route tables
  233436. .UNINDENT
  233437. .IP \(bu 2
  233438. \fBPR\fP \fI\%#28775\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2015.8
  233439. @ \fI2015\-11\-11 17:57:24 UTC\fP
  233440. .INDENT 2.0
  233441. .IP \(bu 2
  233442. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28775\fP, \fI\%#28776\fP)
  233443. .IP \(bu 2
  233444. 806d1b3669 Merge pull request \fI\%#28775\fP from rallytime/bp\-28740
  233445. .IP \(bu 2
  233446. 8a2780da18 Add missing S3 module import
  233447. .UNINDENT
  233448. .IP \(bu 2
  233449. \fBPR\fP \fI\%#28755\fP: (\fI\%rallytime\fP) Move most vmware driver list_* functions to use salt.utils.vmware functions
  233450. @ \fI2015\-11\-11 17:49:16 UTC\fP
  233451. .INDENT 2.0
  233452. .IP \(bu 2
  233453. f273c46f07 Merge pull request \fI\%#28755\fP from rallytime/vmware\-utils
  233454. .IP \(bu 2
  233455. 5abe010023 Move most vmware driver list_* functions to use salt.utils.vmware functions
  233456. .UNINDENT
  233457. .IP \(bu 2
  233458. \fBISSUE\fP \fI\%#28655\fP: (\fI\%sjorge\fP) possible issue with state module boto_cfn/docker/... (refs: \fI\%#28744\fP)
  233459. .IP \(bu 2
  233460. \fBPR\fP \fI\%#28744\fP: (\fI\%jfindlay\fP) import gate elementtree
  233461. @ \fI2015\-11\-11 16:29:12 UTC\fP
  233462. .INDENT 2.0
  233463. .IP \(bu 2
  233464. 0d912bf0d4 Merge pull request \fI\%#28744\fP from jfindlay/elementttree
  233465. .IP \(bu 2
  233466. e321d60002 import gate elementtree in artifactory module
  233467. .IP \(bu 2
  233468. f20f3f697b import gate elementtree in boto_iam state
  233469. .IP \(bu 2
  233470. 9845d2f2c6 import gate elementtree in boto_cfn state
  233471. .UNINDENT
  233472. .IP \(bu 2
  233473. \fBISSUE\fP \fI\%#28726\fP: (\fI\%feigenblatt\fP) user.present ignores "createhome: False" (refs: \fI\%#28758\fP)
  233474. .IP \(bu 2
  233475. \fBPR\fP \fI\%#28758\fP: (\fI\%jfindlay\fP) remove redundant logic in useradd execution module
  233476. @ \fI2015\-11\-11 16:22:21 UTC\fP
  233477. .INDENT 2.0
  233478. .IP \(bu 2
  233479. b65e786351 Merge pull request \fI\%#28758\fP from jfindlay/user
  233480. .IP \(bu 2
  233481. dbd582cd8d fix doc formatting in user.present state
  233482. .IP \(bu 2
  233483. 3824d2e9fc only change/report new home when createhome is True
  233484. .IP \(bu 2
  233485. 3fbf81611f remove redundant logic in useradd execution module
  233486. .UNINDENT
  233487. .IP \(bu 2
  233488. \fBPR\fP \fI\%#28757\fP: (\fI\%mbarrien\fP) Bug fix: pip command to not quote spaces in cmd line args
  233489. @ \fI2015\-11\-11 16:08:46 UTC\fP
  233490. .INDENT 2.0
  233491. .IP \(bu 2
  233492. 6eced26013 Merge pull request \fI\%#28757\fP from mbarrien/fix\-pip\-cmd
  233493. .IP \(bu 2
  233494. 6df6cb82a6 Fix pip command to not quote spaces in cmd line args
  233495. .UNINDENT
  233496. .IP \(bu 2
  233497. \fBPR\fP \fI\%#28764\fP: (\fI\%multani\fP) Various documentation fixes
  233498. @ \fI2015\-11\-11 16:06:10 UTC\fP
  233499. .INDENT 2.0
  233500. .IP \(bu 2
  233501. 356bf2987d Merge pull request \fI\%#28764\fP from multani/fix/docs
  233502. .IP \(bu 2
  233503. 1a31b69763 doc: fix documentation formatting in salt.utils.jinja
  233504. .IP \(bu 2
  233505. 59c105b4b9 doc: fix documentation formatting in salt.states.boto_iam*
  233506. .IP \(bu 2
  233507. cbb167c8ee doc: fix documentation formatting in in salt.modules.lxc
  233508. .IP \(bu 2
  233509. cb03a89e52 doc: fix documentation formatting in salt.modules.aptpkg
  233510. .UNINDENT
  233511. .IP \(bu 2
  233512. \fBPR\fP \fI\%#28752\fP: (\fI\%aboe76\fP) Update openSUSE grain for tumbleweed
  233513. @ \fI2015\-11\-11 03:54:37 UTC\fP
  233514. .INDENT 2.0
  233515. .IP \(bu 2
  233516. d77c24e70d Merge pull request \fI\%#28752\fP from aboe76/suse_tumbleweed_grain
  233517. .IP \(bu 2
  233518. 764cb16ef0 Update openSUSE grain for tumbleweed
  233519. .UNINDENT
  233520. .IP \(bu 2
  233521. \fBISSUE\fP \fI\%#28712\fP: (\fI\%hexedpackets\fP) Service registration in the Consul module is broken (refs: \fI\%#28713\fP)
  233522. .IP \(bu 2
  233523. \fBPR\fP \fI\%#28713\fP: (\fI\%hexedpackets\fP) Rename consul.list to consul.list_keys.
  233524. @ \fI2015\-11\-11 00:57:23 UTC\fP
  233525. .INDENT 2.0
  233526. .IP \(bu 2
  233527. a620bc5596 Merge pull request \fI\%#28713\fP from hexedpackets/fix\-consul\-module
  233528. .IP \(bu 2
  233529. 0889907b3c Make consul.list a function alias.
  233530. .UNINDENT
  233531. .IP \(bu 2
  233532. \fBPR\fP \fI\%#28719\fP: (\fI\%jacobhammons\fP) removed dependencies info from docs
  233533. @ \fI2015\-11\-10 00:04:53 UTC\fP
  233534. .INDENT 2.0
  233535. .IP \(bu 2
  233536. decc31a766 Merge pull request \fI\%#28719\fP from jacobhammons/spm
  233537. .IP \(bu 2
  233538. d7017be031 removed dependencies info from docs
  233539. .UNINDENT
  233540. .IP \(bu 2
  233541. \fBPR\fP \fI\%#28709\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  233542. @ \fI2015\-11\-09 23:38:27 UTC\fP
  233543. .INDENT 2.0
  233544. .IP \(bu 2
  233545. 989069f44a Merge pull request \fI\%#28709\fP from basepi/merge\-forward\-2015.8
  233546. .IP \(bu 2
  233547. 2d04ddc108 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233548. .INDENT 2.0
  233549. .IP \(bu 2
  233550. f40c617bad Merge pull request \fI\%#28705\fP from cachedout/tornado_http_headers
  233551. .INDENT 2.0
  233552. .IP \(bu 2
  233553. 7ac6cde1ee Account for new headers class in tornado 4.3
  233554. .UNINDENT
  233555. .UNINDENT
  233556. .IP \(bu 2
  233557. c90431eddc Rip out unit test that doesn\(aqt apply anymore
  233558. .IP \(bu 2
  233559. aeeaa7c90d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  233560. .INDENT 2.0
  233561. .IP \(bu 2
  233562. 604a7b4199 Merge pull request \fI\%#28699\fP from rallytime/bp\-28670
  233563. .INDENT 2.0
  233564. .IP \(bu 2
  233565. e436b23296 psutil can fail to look\-up a uid and raise a KeyError
  233566. .UNINDENT
  233567. .IP \(bu 2
  233568. 7bd3eb8370 Merge pull request \fI\%#28703\fP from rallytime/bp\-28690
  233569. .INDENT 2.0
  233570. .IP \(bu 2
  233571. a0988dab58 Fix 28689 : Check s3 ext pillar cache file before calculating expiration
  233572. .UNINDENT
  233573. .IP \(bu 2
  233574. 2a40f57b93 Merge pull request \fI\%#28694\fP from s0undt3ch/2015.5
  233575. .INDENT 2.0
  233576. .IP \(bu 2
  233577. 0910c6ffe4 Update to latest bootstrap script v2015.11.09
  233578. .UNINDENT
  233579. .IP \(bu 2
  233580. 3249b322e8 Merge pull request \fI\%#28669\fP from rallytime/fix\-26592
  233581. .INDENT 2.0
  233582. .IP \(bu 2
  233583. 098fb815af Use the \-q argument to strip extraneous messages from rabbitmq
  233584. .UNINDENT
  233585. .IP \(bu 2
  233586. 29e8250d0c Merge pull request \fI\%#28645\fP from jacksontj/2015.5
  233587. .INDENT 2.0
  233588. .IP \(bu 2
  233589. f63c2d70a7 Rework minion return_retry_timer
  233590. .UNINDENT
  233591. .IP \(bu 2
  233592. 1bbaea8aad Merge pull request \fI\%#28668\fP from twangboy/fix_15177
  233593. .INDENT 2.0
  233594. .IP \(bu 2
  233595. 745b8f75f6 Fixed some lint
  233596. .IP \(bu 2
  233597. a43eb53f28 Added version added notes in docs
  233598. .IP \(bu 2
  233599. 6b537c8640 Fixed join_domain and unjoin_domain for Windows
  233600. .UNINDENT
  233601. .IP \(bu 2
  233602. 4ad5056066 Merge pull request \fI\%#28666\fP from jfindlay/r_data
  233603. .INDENT 2.0
  233604. .IP \(bu 2
  233605. 29228f445f define r_data before using it in file module
  233606. .UNINDENT
  233607. .IP \(bu 2
  233608. e129e889ad Merge pull request \fI\%#28662\fP from cachedout/issue_24758
  233609. .INDENT 2.0
  233610. .IP \(bu 2
  233611. 78f4894333 Add note about disabling master_alive_interval
  233612. .UNINDENT
  233613. .IP \(bu 2
  233614. df121d0cec Merge pull request \fI\%#28627\fP from twangboy/backport_win_useradd
  233615. .INDENT 2.0
  233616. .IP \(bu 2
  233617. 87282b6354 Backport win_useradd
  233618. .UNINDENT
  233619. .UNINDENT
  233620. .UNINDENT
  233621. .IP \(bu 2
  233622. \fBISSUE\fP \fI\%#28469\fP: (\fI\%mlalpho\fP) state boto_secgroup.present fails to find vpc_name (refs: \fI\%#28710\fP, \fI\%#28534\fP)
  233623. .IP \(bu 2
  233624. \fBPR\fP \fI\%#28710\fP: (\fI\%rallytime\fP) Pass kwargs correctly to _get_group from get_group_id
  233625. @ \fI2015\-11\-09 22:29:09 UTC\fP
  233626. .INDENT 2.0
  233627. .IP \(bu 2
  233628. 8d5ab15c16 Merge pull request \fI\%#28710\fP from rallytime/fix\-28469
  233629. .IP \(bu 2
  233630. 0571608f5d Pass kwargs correctly to _get_group from get_group_id
  233631. .UNINDENT
  233632. .IP \(bu 2
  233633. \fBPR\fP \fI\%#28698\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28530\fP to 2015.8
  233634. @ \fI2015\-11\-09 18:11:51 UTC\fP
  233635. .INDENT 2.0
  233636. .IP \(bu 2
  233637. \fBPR\fP \fI\%#28530\fP: (\fI\%skizunov\fP) AsyncTCPReqChannel will fail after 10 uses (refs: \fI\%#28614\fP, \fI\%#28698\fP)
  233638. .IP \(bu 2
  233639. cfa0cec19c Merge pull request \fI\%#28698\fP from rallytime/bp\-28530
  233640. .IP \(bu 2
  233641. d94d0db805 AsyncTCPReqChannel will fail after 10 uses
  233642. .UNINDENT
  233643. .IP \(bu 2
  233644. \fBISSUE\fP \fI\%#28678\fP: (\fI\%johnsocp\fP) Error in netapi/rest_tornado preventing it from starting (refs: \fI\%#28679\fP)
  233645. .IP \(bu 2
  233646. \fBPR\fP \fI\%#28700\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28679\fP to 2015.8
  233647. @ \fI2015\-11\-09 18:07:44 UTC\fP
  233648. .INDENT 2.0
  233649. .IP \(bu 2
  233650. \fBPR\fP \fI\%#28679\fP: (\fI\%johnsocp\fP) Adding err variable definition to fix error that is preventing rest_tornado from initializing (refs: \fI\%#28700\fP)
  233651. .IP \(bu 2
  233652. 2fe9e2e7c5 Merge pull request \fI\%#28700\fP from rallytime/bp\-28679
  233653. .IP \(bu 2
  233654. 4e0870e636 Adding variable definition for issue \fI\%#28678\fP
  233655. .IP \(bu 2
  233656. \fBPR\fP \fI\%saltstack/salt\-bootstrap#868\fP: (\fI\%cachedout\fP) Always refresh the Arch Linux keyring if needed (refs: \fI\%#28695\fP, \fI\%#28694\fP)
  233657. .UNINDENT
  233658. .IP \(bu 2
  233659. \fBPR\fP \fI\%#28695\fP: (\fI\%s0undt3ch\fP) [2015.8] Update to latest bootstrap script v2015.11.09
  233660. @ \fI2015\-11\-09 17:50:15 UTC\fP
  233661. .INDENT 2.0
  233662. .IP \(bu 2
  233663. 8ccea2a855 Merge pull request \fI\%#28695\fP from s0undt3ch/2015.8
  233664. .IP \(bu 2
  233665. bb6c60a330 Update to latest bootstrap script v2015.11.09
  233666. .UNINDENT
  233667. .IP \(bu 2
  233668. \fBISSUE\fP \fI\%#28526\fP: (\fI\%clarkperkins\fP) yumpkg.installed broken in salt v2015.8.1 on CentOS 6 minions (refs: \fI\%#28656\fP)
  233669. .IP \(bu 2
  233670. \fBPR\fP \fI\%#28656\fP: (\fI\%clarkperkins\fP) \fI\%#28526\fP fixed yumpkg module issue with pkg.installed
  233671. @ \fI2015\-11\-09 05:16:00 UTC\fP
  233672. .INDENT 2.0
  233673. .IP \(bu 2
  233674. 61ba00b1c3 Merge pull request \fI\%#28656\fP from clarkperkins/bugfix/fix\-yumpkg\-module
  233675. .IP \(bu 2
  233676. e11f87be93 \fI\%#28526\fP fixed yumpkg module
  233677. .UNINDENT
  233678. .IP \(bu 2
  233679. \fBISSUE\fP \fI\%#28588\fP: (\fI\%aboe76\fP) openSUSE Leap not recognized as \(aqSuse\(aq os grain and os_family grain (2015.8.1 ) (refs: \fI\%#28672\fP)
  233680. .IP \(bu 2
  233681. \fBPR\fP \fI\%#28672\fP: (\fI\%jfindlay\fP) add OS grain support for SuSE Leap
  233682. @ \fI2015\-11\-08 01:05:51 UTC\fP
  233683. .INDENT 2.0
  233684. .IP \(bu 2
  233685. 54484e4e29 Merge pull request \fI\%#28672\fP from jfindlay/suse_grain
  233686. .IP \(bu 2
  233687. b44ba6fa9c add OS grain support for SuSE Leap
  233688. .UNINDENT
  233689. .IP \(bu 2
  233690. \fBISSUE\fP \fI\%#28603\fP: (\fI\%alexharrington\fP) MooseFS/LizardFS mount options force remount (refs: \fI\%#28673\fP)
  233691. .IP \(bu 2
  233692. \fBPR\fP \fI\%#28673\fP: (\fI\%jfindlay\fP) add hidden_opts to mount.mounted
  233693. @ \fI2015\-11\-08 00:51:19 UTC\fP
  233694. .INDENT 2.0
  233695. .IP \(bu 2
  233696. 476f55ebc0 Merge pull request \fI\%#28673\fP from jfindlay/mount_hide
  233697. .IP \(bu 2
  233698. 1dcaa8e1d7 add hidden_opts to mount.mounted
  233699. .IP \(bu 2
  233700. d3aff8f6b8 minor refactor of mount state
  233701. .UNINDENT
  233702. .IP \(bu 2
  233703. \fBPR\fP \fI\%#28667\fP: (\fI\%cro\fP) saltutil.sync_all should sync proxymodules as well as the rest.
  233704. @ \fI2015\-11\-07 01:09:28 UTC\fP
  233705. .INDENT 2.0
  233706. .IP \(bu 2
  233707. 24d75709fa Merge pull request \fI\%#28667\fP from cro/proxy_sync_all
  233708. .IP \(bu 2
  233709. 08e53b317f Sync proxymodules with sync_all
  233710. .UNINDENT
  233711. .IP \(bu 2
  233712. \fBPR\fP \fI\%#28665\fP: (\fI\%jfindlay\fP) fixes to windows execution and state modules
  233713. @ \fI2015\-11\-07 00:47:38 UTC\fP
  233714. .INDENT 2.0
  233715. .IP \(bu 2
  233716. 019c13948a Merge pull request \fI\%#28665\fP from jfindlay/win_fixorz
  233717. .IP \(bu 2
  233718. e8c7371b56 fix minor doc issues in win_system module
  233719. .IP \(bu 2
  233720. 5828f391b9 handle error on nonexistent net dev in win_network
  233721. .IP \(bu 2
  233722. d1560f9ea9 check for wua time setting as a str
  233723. .UNINDENT
  233724. .IP \(bu 2
  233725. \fBISSUE\fP \fI\%#28542\fP: (\fI\%Ch3LL\fP) s3.get execution module returns error (refs: \fI\%#28660\fP)
  233726. .IP \(bu 2
  233727. \fBPR\fP \fI\%#28660\fP: (\fI\%techhat\fP) Don\(aqt sign empty regions
  233728. @ \fI2015\-11\-06 20:49:25 UTC\fP
  233729. .INDENT 2.0
  233730. .IP \(bu 2
  233731. ce3ce7ddf2 Merge pull request \fI\%#28660\fP from techhat/emptyregion
  233732. .IP \(bu 2
  233733. a52518494a Don\(aqt sign empty regions
  233734. .UNINDENT
  233735. .IP \(bu 2
  233736. \fBPR\fP \fI\%#28632\fP: (\fI\%terminalmage\fP) Fixes/improvements to pkgbuild state/modules
  233737. @ \fI2015\-11\-06 20:48:07 UTC\fP
  233738. .INDENT 2.0
  233739. .IP \(bu 2
  233740. 0583575f82 Merge pull request \fI\%#28632\fP from terminalmage/pkgbuild\-fixes
  233741. .IP \(bu 2
  233742. 59f31b4dca Initialize logging in pkgbuild state
  233743. .IP \(bu 2
  233744. af0b2c4a33 Fix false\-positives for pkgbuild.built state
  233745. .IP \(bu 2
  233746. d83e779eac rpmbuild: Change return data to include a list of packages built
  233747. .IP \(bu 2
  233748. 03d9321379 debbuild: Change return data to include a list of packages built
  233749. .UNINDENT
  233750. .IP \(bu 2
  233751. \fBISSUE\fP \fI\%#28591\fP: (\fI\%ssgward\fP) SPM package install error (refs: \fI\%#28658\fP)
  233752. .IP \(bu 2
  233753. \fBPR\fP \fI\%#28658\fP: (\fI\%techhat\fP) Remove _pkgdb_fun() references
  233754. @ \fI2015\-11\-06 20:25:59 UTC\fP
  233755. .INDENT 2.0
  233756. .IP \(bu 2
  233757. b82abadd9b Merge pull request \fI\%#28658\fP from techhat/issue28591
  233758. .IP \(bu 2
  233759. 4f2b175467 Remove _pkgdb_fun() references
  233760. .UNINDENT
  233761. .IP \(bu 2
  233762. \fBISSUE\fP \fI\%#28470\fP: (\fI\%mlalpho\fP) salt boto_rds.present fails to execute, too many arguments (refs: \fI\%#28612\fP, \fI\%#28653\fP)
  233763. .IP \(bu 2
  233764. \fBPR\fP \fI\%#28653\fP: (\fI\%rallytime\fP) Provide possible parameters for boto_rds.present engine values
  233765. @ \fI2015\-11\-06 18:58:35 UTC\fP
  233766. .INDENT 2.0
  233767. .IP \(bu 2
  233768. e59d160120 Merge pull request \fI\%#28653\fP from rallytime/boto_rds_engine_docs
  233769. .IP \(bu 2
  233770. 7b30d7e002 Provide possible parameters for boto_rds.present engine values
  233771. .UNINDENT
  233772. .IP \(bu 2
  233773. \fBPR\fP \fI\%#28649\fP: (\fI\%bdrung\fP) Fix OS related grains on Debian
  233774. @ \fI2015\-11\-06 18:25:46 UTC\fP
  233775. .INDENT 2.0
  233776. .IP \(bu 2
  233777. 911761d8bc Merge pull request \fI\%#28649\fP from bdrung/2015.8
  233778. .IP \(bu 2
  233779. 92a17d4cae Fix OS related grains on Debian
  233780. .UNINDENT
  233781. .IP \(bu 2
  233782. \fBISSUE\fP \fI\%#26889\fP: (\fI\%UtahDave\fP) salt\-call w/non root user outputs repeating error (refs: \fI\%#28113\fP, \fI\%#27343\fP)
  233783. .IP \(bu 2
  233784. \fBPR\fP \fI\%#28646\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28614\fP to 2015.8
  233785. @ \fI2015\-11\-06 18:19:08 UTC\fP
  233786. .INDENT 2.0
  233787. .IP \(bu 2
  233788. \fBPR\fP \fI\%#28614\fP: (\fI\%skizunov\fP) Fixed memory leak in AsyncTCPReqChannel (refs: \fI\%#28646\fP)
  233789. .IP \(bu 2
  233790. \fBPR\fP \fI\%#28530\fP: (\fI\%skizunov\fP) AsyncTCPReqChannel will fail after 10 uses (refs: \fI\%#28614\fP, \fI\%#28698\fP)
  233791. .IP \(bu 2
  233792. \fBPR\fP \fI\%#28113\fP: (\fI\%skizunov\fP) \(aqRuntimeError: IOLoop is closing\(aq thrown in Minion on TCP transport (refs: \fI\%#28614\fP)
  233793. .IP \(bu 2
  233794. \fBPR\fP \fI\%#27343\fP: (\fI\%cachedout\fP) Close io loop before deleting attribute (refs: \fI\%#28614\fP)
  233795. .IP \(bu 2
  233796. 7531bc7334 Merge pull request \fI\%#28646\fP from rallytime/bp\-28614
  233797. .IP \(bu 2
  233798. 034cf28e57 Fixed memory leak in AsyncTCPReqChannel
  233799. .UNINDENT
  233800. .IP \(bu 2
  233801. \fBPR\fP \fI\%#28647\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28624\fP to 2015.8
  233802. @ \fI2015\-11\-06 18:18:32 UTC\fP
  233803. .INDENT 2.0
  233804. .IP \(bu 2
  233805. \fBPR\fP \fI\%#28624\fP: (\fI\%hyn\-salt\fP) Added reasoning why boto_cloudwatch.py cannot be loaded. (refs: \fI\%#28647\fP)
  233806. .IP \(bu 2
  233807. a829120746 Merge pull request \fI\%#28647\fP from rallytime/bp\-28624
  233808. .IP \(bu 2
  233809. 3b59cfae5f Added reasoning why boto_cloudwatch.py cannot be loaded.
  233810. .UNINDENT
  233811. .IP \(bu 2
  233812. \fBPR\fP \fI\%#28648\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  233813. @ \fI2015\-11\-06 17:46:59 UTC\fP
  233814. .INDENT 2.0
  233815. .IP \(bu 2
  233816. 52d70c986d Merge pull request \fI\%#28648\fP from rallytime/merge\-2015.8
  233817. .IP \(bu 2
  233818. 81c4974fde Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  233819. .INDENT 2.0
  233820. .IP \(bu 2
  233821. 64a20228c6 Merge pull request \fI\%#28617\fP from cachedout/umask_module_sync
  233822. .INDENT 2.0
  233823. .IP \(bu 2
  233824. 227792e158 Set restrictive umask on module sync
  233825. .UNINDENT
  233826. .IP \(bu 2
  233827. 065f8c7fb3 Merge pull request \fI\%#28622\fP from gravyboat/update_puppet_module_docs
  233828. .INDENT 2.0
  233829. .IP \(bu 2
  233830. 4ea28bed30 Update puppet module wording
  233831. .UNINDENT
  233832. .UNINDENT
  233833. .UNINDENT
  233834. .IP \(bu 2
  233835. \fBPR\fP \fI\%#28638\fP: (\fI\%anlutro\fP) Salt\-SSH: Return more concise error when SSH command fails
  233836. @ \fI2015\-11\-06 16:54:46 UTC\fP
  233837. .INDENT 2.0
  233838. .IP \(bu 2
  233839. 4722e41787 Merge pull request \fI\%#28638\fP from alprs/saltssh\-handle_ssh_errors
  233840. .IP \(bu 2
  233841. 5419b98363 return concise error when ssh fails
  233842. .UNINDENT
  233843. .IP \(bu 2
  233844. \fBPR\fP \fI\%#28644\fP: (\fI\%pass\-by\-value\fP) Make sure versionchanged is correct
  233845. @ \fI2015\-11\-06 16:53:31 UTC\fP
  233846. .INDENT 2.0
  233847. .IP \(bu 2
  233848. e72e60d4b4 Merge pull request \fI\%#28644\fP from pass\-by\-value/update_versionchanged
  233849. .IP \(bu 2
  233850. f4c297e794 Make sure versionchanged is correct
  233851. .UNINDENT
  233852. .IP \(bu 2
  233853. \fBISSUE\fP \fI\%#8\fP: (\fI\%thatch45\fP) Network persistence (refs: \fI\%#28615\fP)
  233854. .IP \(bu 2
  233855. \fBISSUE\fP \fI\%#64\fP: (\fI\%thatch45\fP) State file rendering system (refs: \fI\%#28615\fP)
  233856. .IP \(bu 2
  233857. \fBISSUE\fP \fI\%#54\fP: (\fI\%thatch45\fP) Release items (refs: \fI\%#28615\fP)
  233858. .IP \(bu 2
  233859. \fBPR\fP \fI\%#28615\fP: (\fI\%The\-Loeki\fP) Fixes to FreeBSD pkg
  233860. @ \fI2015\-11\-05 23:43:33 UTC\fP
  233861. .INDENT 2.0
  233862. .IP \(bu 2
  233863. \fBPR\fP \fI\%#198\fP: (\fI\%techhat\fP) Basic salt support for Tomcat (refs: \fI\%#28615\fP)
  233864. .IP \(bu 2
  233865. cf79722260 Merge pull request \fI\%#28615\fP from The\-Loeki/patch\-1
  233866. .IP \(bu 2
  233867. a9ee178e0d rehash is a shell builtin, needs cmd.shell to work
  233868. .IP \(bu 2
  233869. 17f3852bdd environ.get has no output_loglevel
  233870. .UNINDENT
  233871. .IP \(bu 2
  233872. \fBPR\fP \fI\%#28613\fP: (\fI\%cachedout\fP) Add facility to deepcopy bound methods in Py2.6 and apply to grains
  233873. @ \fI2015\-11\-05 23:28:50 UTC\fP
  233874. .INDENT 2.0
  233875. .IP \(bu 2
  233876. \fBPR\fP \fI\%#28587\fP: (\fI\%cachedout\fP) Reset yaml rendering hooks to avoid leaks (refs: \fI\%#28613\fP)
  233877. .IP \(bu 2
  233878. 9196c57e3f Merge pull request \fI\%#28613\fP from cachedout/py26_method_deepcopy
  233879. .IP \(bu 2
  233880. 0935fcf4fc Spelling is hard
  233881. .IP \(bu 2
  233882. 2435b45195 Move to compat module to avoid namespace collisions in salt.utils
  233883. .IP \(bu 2
  233884. f519661875 Add facility to deepcopy bound methods in Py2.6 and apply to grains
  233885. .UNINDENT
  233886. .IP \(bu 2
  233887. \fBISSUE\fP \fI\%#28527\fP: (\fI\%Oro\fP) boto_rds.create needs storage_type, which does not exist in boto.rds2 create_db_instance (refs: \fI\%#28561\fP)
  233888. .IP \(bu 2
  233889. \fBISSUE\fP \fI\%#28470\fP: (\fI\%mlalpho\fP) salt boto_rds.present fails to execute, too many arguments (refs: \fI\%#28612\fP, \fI\%#28653\fP)
  233890. .IP \(bu 2
  233891. \fBPR\fP \fI\%#28612\fP: (\fI\%rallytime\fP) Remove unsupported storage_type argument for parity with boto_rds module
  233892. @ \fI2015\-11\-05 19:07:42 UTC\fP
  233893. .INDENT 2.0
  233894. .IP \(bu 2
  233895. \fBPR\fP \fI\%#28561\fP: (\fI\%Oro\fP) Issue \fI\%#28527\fP boto_rds.create does not work (refs: \fI\%#28612\fP)
  233896. .IP \(bu 2
  233897. 2032d61e68 Merge pull request \fI\%#28612\fP from rallytime/fix\-28470
  233898. .IP \(bu 2
  233899. 8fd26a5488 Remove unsupported storage_type argument for parity with boto_rds module
  233900. .UNINDENT
  233901. .IP \(bu 2
  233902. \fBPR\fP \fI\%#28611\fP: (\fI\%rallytime\fP) [2015.8] Be explicit about salt.utils.vmware function calls
  233903. @ \fI2015\-11\-05 18:43:36 UTC\fP
  233904. .INDENT 2.0
  233905. .IP \(bu 2
  233906. d81330ac7f Merge pull request \fI\%#28611\fP from rallytime/vmware\-utils\-fix
  233907. .IP \(bu 2
  233908. f46547eb56 [2015.8] Be explicit about salt.utils.vmware function calls and avoid namespacing
  233909. .UNINDENT
  233910. .IP \(bu 2
  233911. \fBPR\fP \fI\%#28610\fP: (\fI\%pass\-by\-value\fP) Lxc config additions
  233912. @ \fI2015\-11\-05 18:43:05 UTC\fP
  233913. .INDENT 2.0
  233914. .IP \(bu 2
  233915. 35dbca24e7 Merge pull request \fI\%#28610\fP from pass\-by\-value/lxc_config_additions
  233916. .IP \(bu 2
  233917. 83193641ca Add doc about cloud lxc options
  233918. .IP \(bu 2
  233919. 8977ddad59 Add argument to init
  233920. .IP \(bu 2
  233921. 2be3f8b5bb Add bootstrap delay and systemd check options
  233922. .UNINDENT
  233923. .IP \(bu 2
  233924. \fBISSUE\fP \fI\%#28601\fP: (\fI\%nasenbaer13\fP) boto_asg.present overwrites custom dimensions in alarms (refs: \fI\%#28602\fP)
  233925. .IP \(bu 2
  233926. \fBPR\fP \fI\%#28602\fP: (\fI\%nasenbaer13\fP) Allow setting of custom dimensions in asg alarm specification
  233927. @ \fI2015\-11\-05 15:00:24 UTC\fP
  233928. .INDENT 2.0
  233929. .IP \(bu 2
  233930. 464aa6b062 Merge pull request \fI\%#28602\fP from eyj/fix\-28601
  233931. .IP \(bu 2
  233932. 963ad4250a Allow setting of custom dimensions in asg alarm specification
  233933. .UNINDENT
  233934. .IP \(bu 2
  233935. \fBPR\fP \fI\%#28596\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  233936. @ \fI2015\-11\-05 14:25:09 UTC\fP
  233937. .INDENT 2.0
  233938. .IP \(bu 2
  233939. 572d95b3e1 Merge pull request \fI\%#28596\fP from rallytime/merge\-2015.8
  233940. .IP \(bu 2
  233941. eec9d69387 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  233942. .INDENT 2.0
  233943. .IP \(bu 2
  233944. 08295de5a5 Merge pull request \fI\%#28563\fP from s0undt3ch/2015.5
  233945. .INDENT 2.0
  233946. .IP \(bu 2
  233947. 16f4db79a0 Update to latest bootstrap script v2015.11.04
  233948. .UNINDENT
  233949. .IP \(bu 2
  233950. 1e09f186ce Merge pull request \fI\%#28541\fP from twangboy/fix_28173
  233951. .INDENT 2.0
  233952. .IP \(bu 2
  233953. 7edf5ce370 Fixed problem with system.set_computer_name
  233954. .UNINDENT
  233955. .IP \(bu 2
  233956. f44ed780b5 Merge pull request \fI\%#28537\fP from jfindlay/decode_state_2015.5
  233957. .INDENT 2.0
  233958. .IP \(bu 2
  233959. 06e514940c decode filename to utf\-8 in file.recurse state
  233960. .UNINDENT
  233961. .IP \(bu 2
  233962. 6acf87593f Merge pull request \fI\%#28529\fP from rallytime/fix\-28272
  233963. .INDENT 2.0
  233964. .IP \(bu 2
  233965. a959681858 Add link to Sending a GH PR to documentation docs
  233966. .IP \(bu 2
  233967. 1c612e2772 Update contributing and documentation pages to recommend submitting against branches
  233968. .UNINDENT
  233969. .IP \(bu 2
  233970. 025bff2bf0 Merge pull request \fI\%#28548\fP from nmadhok/2015.5\-task\-error
  233971. .INDENT 2.0
  233972. .IP \(bu 2
  233973. 804a0a6537 Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  233974. .UNINDENT
  233975. .IP \(bu 2
  233976. 63bd3e52b3 Merge pull request \fI\%#28531\fP from rallytime/fix\-24585
  233977. .INDENT 2.0
  233978. .IP \(bu 2
  233979. bc577b2531 Add versionadded directives to virtualenv_mod state/module
  233980. .UNINDENT
  233981. .IP \(bu 2
  233982. ea3bf972c4 Merge pull request \fI\%#28508\fP from twangboy/fix_unit_tests_windows
  233983. .INDENT 2.0
  233984. .IP \(bu 2
  233985. 0da6ff7c50 Fixed some logic
  233986. .IP \(bu 2
  233987. cf1e059be5 Fixed windows tests
  233988. .UNINDENT
  233989. .IP \(bu 2
  233990. 73c5735fc1 Merge pull request \fI\%#28525\fP from rallytime/route53_spacing
  233991. .INDENT 2.0
  233992. .IP \(bu 2
  233993. 6ab2ce615c Fix spacing in doc examples for boto_route53 state and module
  233994. .UNINDENT
  233995. .IP \(bu 2
  233996. 2d7f934f67 Merge pull request \fI\%#28517\fP from rallytime/fix\-28243
  233997. .INDENT 2.0
  233998. .IP \(bu 2
  233999. be8f650901 Punctuation.
  234000. .IP \(bu 2
  234001. fd846822c1 Add state_auto_order defaults to True note to ordering docs
  234002. .UNINDENT
  234003. .UNINDENT
  234004. .UNINDENT
  234005. .IP \(bu 2
  234006. \fBPR\fP \fI\%#28593\fP: (\fI\%blueyed\fP) doc: fix typo with salt.states.file: s/preseve/preserve/
  234007. @ \fI2015\-11\-04 22:33:25 UTC\fP
  234008. .INDENT 2.0
  234009. .IP \(bu 2
  234010. 73c33e0b4a Merge pull request \fI\%#28593\fP from blueyed/fix\-typo\-preserve
  234011. .IP \(bu 2
  234012. eaf27d6ee7 doc: fix typo with salt.states.file: s/preseve/preserve/
  234013. .UNINDENT
  234014. .IP \(bu 2
  234015. \fBPR\fP \fI\%#28578\fP: (\fI\%twangboy\fP) Fixed the script... something got broke...
  234016. @ \fI2015\-11\-04 22:00:18 UTC\fP
  234017. .INDENT 2.0
  234018. .IP \(bu 2
  234019. 8b483ee354 Merge pull request \fI\%#28578\fP from twangboy/fix_windows_installer_script
  234020. .IP \(bu 2
  234021. 90b19a3279 Fixed the script... something got broke...
  234022. .UNINDENT
  234023. .IP \(bu 2
  234024. \fBPR\fP \fI\%#28579\fP: (\fI\%jfindlay\fP) fix __virtual__ returns: tls,uptime mods
  234025. @ \fI2015\-11\-04 22:00:02 UTC\fP
  234026. .INDENT 2.0
  234027. .IP \(bu 2
  234028. 7ca7ed4b37 Merge pull request \fI\%#28579\fP from jfindlay/virt_ret
  234029. .IP \(bu 2
  234030. 333c132378 fix __virtual__ returns: tls,uptime mods
  234031. .UNINDENT
  234032. .IP \(bu 2
  234033. \fBISSUE\fP \fI\%#27574\fP: (\fI\%jgill\fP) salt\-cloud: Could not associate elastic ip address <None> with network interface <eni\-xxxxxxxx> (refs: \fI\%#28584\fP)
  234034. .IP \(bu 2
  234035. \fBPR\fP \fI\%#28584\fP: (\fI\%rallytime\fP) If AssociatePublicIpAddress is set to True, don\(aqt auto\-assign eip.
  234036. @ \fI2015\-11\-04 21:59:38 UTC\fP
  234037. .INDENT 2.0
  234038. .IP \(bu 2
  234039. \fBPR\fP \fI\%#25315\fP: (\fI\%ruzarowski\fP) [cloud:EC2] Move handling of AssociatePublicIpAddress to associate_eip/allocate_new_eip logic depending on value type (refs: \fI\%#28584\fP)
  234040. .IP \(bu 2
  234041. ae764c6b5c Merge pull request \fI\%#28584\fP from rallytime/fix\-27574
  234042. .IP \(bu 2
  234043. 490e1bd5bb If AssociatePublicIpAddress is set to True, don\(aqt auto\-assign eip.
  234044. .UNINDENT
  234045. .IP \(bu 2
  234046. \fBISSUE\fP \fI\%#28392\fP: (\fI\%jacksontj\fP) AsyncZeroMQReqChannel does not implement \fItries\fP (2015.8) (refs: \fI\%#28410\fP)
  234047. .IP \(bu 2
  234048. \fBPR\fP \fI\%#28576\fP: (\fI\%jacksontj\fP) Only encode the zmq message once
  234049. @ \fI2015\-11\-04 21:59:20 UTC\fP
  234050. .INDENT 2.0
  234051. .IP \(bu 2
  234052. \fBPR\fP \fI\%#28410\fP: (\fI\%jacksontj\fP) Add retries to the zeromq.AsyncReqMessageClient (refs: \fI\%#28576\fP)
  234053. .IP \(bu 2
  234054. 231cdd4316 Merge pull request \fI\%#28576\fP from jacksontj/transport
  234055. .IP \(bu 2
  234056. b29fc676a3 Only encode the zmq message once
  234057. .UNINDENT
  234058. .IP \(bu 2
  234059. \fBPR\fP \fI\%#28587\fP: (\fI\%cachedout\fP) Reset yaml rendering hooks to avoid leaks (refs: \fI\%#28613\fP)
  234060. @ \fI2015\-11\-04 21:37:11 UTC\fP
  234061. .INDENT 2.0
  234062. .IP \(bu 2
  234063. ab62f5cd12 Merge pull request \fI\%#28587\fP from cachedout/fix_yaml_render_leak
  234064. .IP \(bu 2
  234065. 2da64bd736 Reset yaml rendering hooks to avoid leaks
  234066. .UNINDENT
  234067. .IP \(bu 2
  234068. \fBISSUE\fP \fI\%#3436\fP: (\fI\%madduck\fP) Pillar does not handle Unicode data (refs: \fI\%#28134\fP, #saltstack/salt\(ga#28134\(ga_)
  234069. .INDENT 2.0
  234070. .IP \(bu 2
  234071. \fBPR\fP \fI\%saltstack/salt#28134\fP: (\fI\%bernieke\fP) fix unicode pillar values \fI\%#3436\fP (refs: \fI\%#28581\fP)
  234072. .UNINDENT
  234073. .IP \(bu 2
  234074. \fBPR\fP \fI\%#28581\fP: (\fI\%basepi\fP) Revert b4875e585a165482c4c1ddc8987d76b0a71ef1b0
  234075. @ \fI2015\-11\-04 19:28:20 UTC\fP
  234076. .INDENT 2.0
  234077. .IP \(bu 2
  234078. 69081d00e0 Merge pull request \fI\%#28581\fP from saltstack/revert\-28134\-2015.8
  234079. .IP \(bu 2
  234080. 0a07c90d5e Revert b4875e585a165482c4c1ddc8987d76b0a71ef1b0
  234081. .UNINDENT
  234082. .IP \(bu 2
  234083. \fBISSUE\fP \fI\%#28477\fP: (\fI\%anlutro\fP) KeyError with file.managed HTTPS source (refs: \fI\%#28573\fP)
  234084. .IP \(bu 2
  234085. \fBPR\fP \fI\%#28573\fP: (\fI\%jacksontj\fP) Add \fIbody\fP to salt.utils.http.query returns
  234086. @ \fI2015\-11\-04 17:18:19 UTC\fP
  234087. .INDENT 2.0
  234088. .IP \(bu 2
  234089. ea3658eac8 Merge pull request \fI\%#28573\fP from jacksontj/2015.8
  234090. .IP \(bu 2
  234091. d55ea7550b Add \fIbody\fP to salt.utils.http.query returns
  234092. .UNINDENT
  234093. .IP \(bu 2
  234094. \fBISSUE\fP \fI\%#655\fP: (\fI\%thatch45\fP) Add general command management to service (refs: #\(gasaltstack/salt\-bootstrap#656\(ga_)
  234095. .INDENT 2.0
  234096. .IP \(bu 2
  234097. \fBPR\fP \fI\%saltstack/salt\-bootstrap#674\fP: (\fI\%jfindlay\fP) add support for repo.saltstack.com (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234098. .IP \(bu 2
  234099. \fBPR\fP \fI\%saltstack/salt\-bootstrap#665\fP: (\fI\%mbologna\fP) Change to \(aqdnf\(aq as package manager for Fedora 22\-> (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234100. .IP \(bu 2
  234101. \fBPR\fP \fI\%saltstack/salt\-bootstrap#656\fP: (\fI\%eyj\fP) Add bootstrap \-b flag (don\(aqt install dependencies) (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234102. .IP \(bu 2
  234103. \fBPR\fP \fI\%saltstack/salt\-bootstrap#654\fP: (\fI\%hedinfaok\fP) Fixes error finding python\-jinja2 in RHEL 7 (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234104. .IP \(bu 2
  234105. \fBPR\fP \fI\%saltstack/salt\-bootstrap#653\fP: (\fI\%cbuechler\fP) Make bootstrap work with FreeBSD 11\-CURRENT. (refs: \fI\%#28564\fP, \fI\%#28563\fP)
  234106. .UNINDENT
  234107. .IP \(bu 2
  234108. \fBPR\fP \fI\%#28564\fP: (\fI\%s0undt3ch\fP) [2015.8] Update to latest bootstrap script v2015.11.04
  234109. @ \fI2015\-11\-04 15:29:46 UTC\fP
  234110. .INDENT 2.0
  234111. .IP \(bu 2
  234112. 3a729c2b40 Merge pull request \fI\%#28564\fP from s0undt3ch/2015.8
  234113. .IP \(bu 2
  234114. b6a53a6bfb Update to latest bootstrap script v2015.11.04
  234115. .UNINDENT
  234116. .IP \(bu 2
  234117. \fBISSUE\fP \fI\%#28527\fP: (\fI\%Oro\fP) boto_rds.create needs storage_type, which does not exist in boto.rds2 create_db_instance (refs: \fI\%#28561\fP)
  234118. .IP \(bu 2
  234119. \fBPR\fP \fI\%#28561\fP: (\fI\%Oro\fP) Issue \fI\%#28527\fP boto_rds.create does not work (refs: \fI\%#28612\fP)
  234120. @ \fI2015\-11\-04 15:13:09 UTC\fP
  234121. .INDENT 2.0
  234122. .IP \(bu 2
  234123. fed4c6f482 Merge pull request \fI\%#28561\fP from Oro/fix\-boto\-rds\-create
  234124. .IP \(bu 2
  234125. 54782b6fd9 Removed exception message where there is no exception
  234126. .IP \(bu 2
  234127. e08f45c824 Issue \fI\%#28527\fP boto_rds.create does not work
  234128. .UNINDENT
  234129. .IP \(bu 2
  234130. \fBPR\fP \fI\%#28560\fP: (\fI\%bdrung\fP) Fix various typos
  234131. @ \fI2015\-11\-04 15:06:36 UTC\fP
  234132. .INDENT 2.0
  234133. .IP \(bu 2
  234134. ec924e8410 Merge pull request \fI\%#28560\fP from bdrung/2015.8
  234135. .IP \(bu 2
  234136. 89dcb66310 Fix the wrong "allow to do" phrase
  234137. .IP \(bu 2
  234138. 859b6b46a6 Fix typo an nonexistant \-> nonexistent
  234139. .IP \(bu 2
  234140. 66921cc61e Fix typo an succesfully \-> successfully
  234141. .IP \(bu 2
  234142. c1e3ef7c8d Fix typo an explicitely \-> explicitly
  234143. .IP \(bu 2
  234144. 029a95398c Fix typo an superflous \-> superfluous
  234145. .IP \(bu 2
  234146. 026c215933 Fix typo an unecessary \-> unnecessary
  234147. .IP \(bu 2
  234148. 5f7fc5f94b Fix typo an edditable \-> editable
  234149. .IP \(bu 2
  234150. 0b768944c2 Fix typo an deamon \-> daemon
  234151. .IP \(bu 2
  234152. 5af49881d7 Fix typo an completly \-> completely
  234153. .IP \(bu 2
  234154. 14d2a16f74 Fix typos of compatibility
  234155. .IP \(bu 2
  234156. 46a5a9b073 Fix typo an suppored \-> supported
  234157. .IP \(bu 2
  234158. abc490a78e Fix typo an usefull \-> useful
  234159. .IP \(bu 2
  234160. ddd412180c Fix typo an targetting \-> targeting
  234161. .IP \(bu 2
  234162. 610a6a77ae Fix typo an verison \-> version
  234163. .IP \(bu 2
  234164. e0a5d46a1e Fix typo an seperated \-> separated
  234165. .IP \(bu 2
  234166. 7f11cfd5e1 Fix typo an helpfull \-> helpful
  234167. .IP \(bu 2
  234168. 2e9b520d84 Fix typos of omitted
  234169. .IP \(bu 2
  234170. 3029f64481 Fix typo an compatbility \-> compatibility
  234171. .IP \(bu 2
  234172. 470e82f17f Fix typo an dictionnary \-> dictionary
  234173. .IP \(bu 2
  234174. 5843c7aa24 Fix typo an optionnal \-> optional
  234175. .IP \(bu 2
  234176. 730d0f95e7 Fix typo an transfered \-> transferred
  234177. .IP \(bu 2
  234178. c7e7884de2 Fix typo an recieved \-> received
  234179. .IP \(bu 2
  234180. 50eea287f3 Fix typo an managment \-> management
  234181. .IP \(bu 2
  234182. cb01da81c6 Fix typos of parameter
  234183. .IP \(bu 2
  234184. 45fcc7d339 Fix typo an dont \-> don\(aqt
  234185. .IP \(bu 2
  234186. 3624935d32 Fix typo an other \-> another
  234187. .IP \(bu 2
  234188. d16afe2607 Fix typo sofwares \-> software
  234189. .IP \(bu 2
  234190. b9b7cbe525 Fix typo sofware \-> software
  234191. .IP \(bu 2
  234192. 8edd2c1add Fix typos of dependency
  234193. .IP \(bu 2
  234194. 3a5e2e3437 Fix typo documention \-> documentation
  234195. .UNINDENT
  234196. .IP \(bu 2
  234197. \fBISSUE\fP \fI\%#28528\fP: (\fI\%schlagify\fP) timezone.system error: CommandExecutionError: Failed to parse timedatectl output, this is likely a bug (refs: \fI\%#28550\fP)
  234198. .IP \(bu 2
  234199. \fBPR\fP \fI\%#28550\fP: (\fI\%jfindlay\fP) check timedatectl errno and return stdout on failure
  234200. @ \fI2015\-11\-04 15:00:24 UTC\fP
  234201. .INDENT 2.0
  234202. .IP \(bu 2
  234203. bd0b291b63 Merge pull request \fI\%#28550\fP from jfindlay/ctl_err
  234204. .IP \(bu 2
  234205. 11a9a5868f simplify timezone module unit test mocks
  234206. .IP \(bu 2
  234207. 476b651c94 update timezone module unit tests for timedatectl
  234208. .IP \(bu 2
  234209. 5c0e5dacc0 check timedatectl errno and return stdout on failure
  234210. .UNINDENT
  234211. .IP \(bu 2
  234212. \fBISSUE\fP \fI\%#19249\fP: (\fI\%ahetmanski\fP) Cannot create cache_dir salt master exception. (refs: \fI\%#28545\fP)
  234213. .IP \(bu 2
  234214. \fBPR\fP \fI\%#28545\fP: (\fI\%jfindlay\fP) pass on concurrent create of jid_dir in local_cache
  234215. @ \fI2015\-11\-04 14:54:11 UTC\fP
  234216. .INDENT 2.0
  234217. .IP \(bu 2
  234218. e048667c91 Merge pull request \fI\%#28545\fP from jfindlay/concurrent_dir
  234219. .IP \(bu 2
  234220. 58ad699331 pass on concurrent create of cache_dir in roots fs
  234221. .IP \(bu 2
  234222. e456184b04 pass on concurrent create of jid_dir in local_cache
  234223. .UNINDENT
  234224. .IP \(bu 2
  234225. \fBPR\fP \fI\%#28544\fP: (\fI\%rallytime\fP) Start moving some vmware.py cloud funcs to utils/vmware.py
  234226. @ \fI2015\-11\-04 14:52:59 UTC\fP
  234227. .INDENT 2.0
  234228. .IP \(bu 2
  234229. 082ffd5734 Merge pull request \fI\%#28544\fP from rallytime/vmware\-utils
  234230. .IP \(bu 2
  234231. 403fe37704 Pylint.
  234232. .IP \(bu 2
  234233. d9301eea95 Don\(aqt move _set_cd_or_dvd_backing_type yet
  234234. .IP \(bu 2
  234235. 8d69639230 Start moving some vmware.py cloud funcs to utils/vmware.py
  234236. .UNINDENT
  234237. .IP \(bu 2
  234238. \fBPR\fP \fI\%#28543\fP: (\fI\%gtmanfred\fP) clean up changes for pkg.uptodate and supervisord.dead
  234239. @ \fI2015\-11\-04 14:49:46 UTC\fP
  234240. .INDENT 2.0
  234241. .IP \(bu 2
  234242. bf4f7cdc4b Merge pull request \fI\%#28543\fP from gtmanfred/2015.8
  234243. .IP \(bu 2
  234244. 3d57b392cb return changes if supervisord stopped process
  234245. .IP \(bu 2
  234246. 5547a34acc return empty changes if server is uptodate
  234247. .UNINDENT
  234248. .IP \(bu 2
  234249. \fBISSUE\fP \fI\%#28524\fP: (\fI\%bmcorser\fP) UnicodeDecodeError in states.file (refs: \fI\%#28537\fP, \fI\%#28538\fP)
  234250. .IP \(bu 2
  234251. \fBPR\fP \fI\%#28538\fP: (\fI\%jfindlay\fP) decode path and url to utf\-8 in url.create (refs: \fI\%#28537\fP)
  234252. @ \fI2015\-11\-04 14:48:34 UTC\fP
  234253. .INDENT 2.0
  234254. .IP \(bu 2
  234255. d345768b81 Merge pull request \fI\%#28538\fP from jfindlay/decode_state
  234256. .IP \(bu 2
  234257. b05dfc5c58 decode path and url to utf\-8 in url.create
  234258. .UNINDENT
  234259. .IP \(bu 2
  234260. \fBISSUE\fP \fI\%#28476\fP: (\fI\%ColorFuzzy\fP) state.sls UnicodeDecodeError (refs: \fI\%#28533\fP)
  234261. .IP \(bu 2
  234262. \fBPR\fP \fI\%#28533\fP: (\fI\%jfindlay\fP) decode highstate error messages to utf\-8
  234263. @ \fI2015\-11\-04 14:47:55 UTC\fP
  234264. .INDENT 2.0
  234265. .IP \(bu 2
  234266. 2e0c8264db Merge pull request \fI\%#28533\fP from jfindlay/decode_err
  234267. .IP \(bu 2
  234268. 9c9bb75c37 decode highstate error messages to utf\-8
  234269. .UNINDENT
  234270. .IP \(bu 2
  234271. \fBPR\fP \fI\%#28547\fP: (\fI\%nmadhok\fP) [Backport] [2015.8] Tasks can be in queued state instead of running
  234272. @ \fI2015\-11\-04 04:13:30 UTC\fP
  234273. .INDENT 2.0
  234274. .IP \(bu 2
  234275. cfc3146b2d Merge pull request \fI\%#28547\fP from nmadhok/2015.8\-task\-error
  234276. .IP \(bu 2
  234277. 3fb1f9ee6b Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  234278. .UNINDENT
  234279. .IP \(bu 2
  234280. \fBPR\fP \fI\%#28535\fP: (\fI\%techhat\fP) Fail gracefully if 169.254* isn\(aqt available
  234281. @ \fI2015\-11\-03 22:39:38 UTC\fP
  234282. .INDENT 2.0
  234283. .IP \(bu 2
  234284. 7e22e7cf24 Merge pull request \fI\%#28535\fP from techhat/fixcreds
  234285. .IP \(bu 2
  234286. 8d9224bd09 Catch timeouts too
  234287. .IP \(bu 2
  234288. fa46dbb2a3 Lint
  234289. .IP \(bu 2
  234290. f05a5e0936 Fail gracefully if 169.254* isn\(aqt available
  234291. .UNINDENT
  234292. .IP \(bu 2
  234293. \fBPR\fP \fI\%#28536\fP: (\fI\%cro\fP) Default configuration file for proxy minions.
  234294. @ \fI2015\-11\-03 21:26:27 UTC\fP
  234295. .INDENT 2.0
  234296. .IP \(bu 2
  234297. 9a5208e8aa Merge pull request \fI\%#28536\fP from cro/proxyconf
  234298. .IP \(bu 2
  234299. 1e031c4940 Default configuration file for proxy minions.
  234300. .UNINDENT
  234301. .IP \(bu 2
  234302. \fBISSUE\fP \fI\%#28469\fP: (\fI\%mlalpho\fP) state boto_secgroup.present fails to find vpc_name (refs: \fI\%#28710\fP, \fI\%#28534\fP)
  234303. .IP \(bu 2
  234304. \fBPR\fP \fI\%#28534\fP: (\fI\%rallytime\fP) Add versionadded directive for vpc_name arg in boto_secgroup.present
  234305. @ \fI2015\-11\-03 19:30:04 UTC\fP
  234306. .INDENT 2.0
  234307. .IP \(bu 2
  234308. 2bc78a32ef Merge pull request \fI\%#28534\fP from rallytime/fix\-28469
  234309. .IP \(bu 2
  234310. ebe3b34ae7 Add versionadded directive for vpc_name arg in boto_secgroup.present
  234311. .UNINDENT
  234312. .IP \(bu 2
  234313. \fBPR\fP \fI\%#28516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28489\fP to 2015.8
  234314. @ \fI2015\-11\-03 14:05:54 UTC\fP
  234315. .INDENT 2.0
  234316. .IP \(bu 2
  234317. \fBPR\fP \fI\%#28489\fP: (\fI\%TheBigBear\fP) Update windows\-package\-manager.rst (minor edit) adding missing single quote pairs. (refs: \fI\%#28516\fP)
  234318. .IP \(bu 2
  234319. c6a6fe0089 Merge pull request \fI\%#28516\fP from rallytime/bp\-28489
  234320. .IP \(bu 2
  234321. 2e5684a1e4 Update windows\-package\-manager.rst
  234322. .UNINDENT
  234323. .IP \(bu 2
  234324. \fBPR\fP \fI\%#28506\fP: (\fI\%basepi\fP) [2015.8] Log minion list for all rosters, at debug level
  234325. @ \fI2015\-11\-03 14:05:22 UTC\fP
  234326. .INDENT 2.0
  234327. .IP \(bu 2
  234328. 36a217acbd Merge pull request \fI\%#28506\fP from basepi/salt\-ssh.minions.log.debug
  234329. .IP \(bu 2
  234330. 06cdb50494 Log minion list for all rosters, at debug level
  234331. .UNINDENT
  234332. .IP \(bu 2
  234333. \fBPR\fP \fI\%#28514\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  234334. @ \fI2015\-11\-03 01:19:33 UTC\fP
  234335. .INDENT 2.0
  234336. .IP \(bu 2
  234337. 8cbea63e40 Merge pull request \fI\%#28514\fP from basepi/merge\-forward\-2015.8
  234338. .IP \(bu 2
  234339. 463a03b2a9 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  234340. .IP \(bu 2
  234341. 63ce8f78d5 Merge pull request \fI\%#28512\fP from basepi/merge\-forward\-2015.5
  234342. .INDENT 2.0
  234343. .IP \(bu 2
  234344. 61c382133a Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  234345. .IP \(bu 2
  234346. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  234347. .INDENT 2.0
  234348. .IP \(bu 2
  234349. 097838ec0c Wrap all cache calls in state.sls in correct umask
  234350. .UNINDENT
  234351. .IP \(bu 2
  234352. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  234353. .INDENT 2.0
  234354. .IP \(bu 2
  234355. b7b5bec309 Don\(aqt request creds if auth with key.
  234356. .UNINDENT
  234357. .UNINDENT
  234358. .UNINDENT
  234359. .IP \(bu 2
  234360. \fBPR\fP \fI\%#28502\fP: (\fI\%cachedout\fP) Lint \fI\%#28427\fP
  234361. @ \fI2015\-11\-02 21:09:20 UTC\fP
  234362. .INDENT 2.0
  234363. .IP \(bu 2
  234364. \fBPR\fP \fI\%#28427\fP: (\fI\%cro\fP) More updates (refs: \fI\%#28502\fP)
  234365. .IP \(bu 2
  234366. b919f55f8d Merge pull request \fI\%#28502\fP from cachedout/lint_28427
  234367. .IP \(bu 2
  234368. 459a342102 Lint \fI\%#28427\fP
  234369. .IP \(bu 2
  234370. d354885c3d Lint
  234371. .IP \(bu 2
  234372. dbb1f0899e Lint
  234373. .IP \(bu 2
  234374. 749383c413 Lint
  234375. .IP \(bu 2
  234376. 0fa067ea30 Add datacenter getter/setter, change \(aqdell_switch\(aq to just \(aqswitch\(aq, trap call to change_password.
  234377. .IP \(bu 2
  234378. 4bcb5a508b Add datacenter getter/setter, change \(aqdell_switch\(aq to just \(aqswitch\(aq, trap call to change_password.
  234379. .UNINDENT
  234380. .IP \(bu 2
  234381. \fBPR\fP \fI\%#28464\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  234382. @ \fI2015\-11\-02 20:18:21 UTC\fP
  234383. .INDENT 2.0
  234384. .IP \(bu 2
  234385. 238411c8ce Merge pull request \fI\%#28464\fP from basepi/merge\-forward\-2015.8
  234386. .IP \(bu 2
  234387. 6f6e687cb4 Mock master_uri for even tests
  234388. .IP \(bu 2
  234389. 3286a5250f Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  234390. .INDENT 2.0
  234391. .IP \(bu 2
  234392. 37ceae1e88 Merge pull request \fI\%#28448\fP from gwaters/add\-redhat\-notes
  234393. .INDENT 2.0
  234394. .IP \(bu 2
  234395. e70990704a added a note to the tutorial for those that redhat so they can use the state file too.
  234396. .UNINDENT
  234397. .IP \(bu 2
  234398. 5ef50d60cd Merge pull request \fI\%#28406\fP from rallytime/bp\-28381
  234399. .INDENT 2.0
  234400. .IP \(bu 2
  234401. e5322d2c44 Add FreeBSD detection for VirtualBox
  234402. .UNINDENT
  234403. .IP \(bu 2
  234404. 30d5f7bbae Merge pull request \fI\%#28413\fP from rallytime/bp\-28400
  234405. .INDENT 2.0
  234406. .IP \(bu 2
  234407. ae1921b922 Do not execute _preflight_check if not_installed list is empty in _find_install_targets. Calling with empty list on rhel/centos cause execution of repoquery \-\-whatprovides without pkg list which is memory consumptive task for host and also for red hat satellite server.
  234408. .UNINDENT
  234409. .IP \(bu 2
  234410. 045d540aff Merge pull request \fI\%#28366\fP from erchn/fix_yumpkg_mod_repo_disabled
  234411. .INDENT 2.0
  234412. .IP \(bu 2
  234413. 8187a4ce20 re\-arrange things a bit to have less overall changes
  234414. .IP \(bu 2
  234415. f1d570ff18 move todelete above disabled check, add comment
  234416. .IP \(bu 2
  234417. 64feec413f also remove disabled key from repo_opts
  234418. .IP \(bu 2
  234419. 2f2ebb7bb6 mark repo not enabled when pkgrepo state passes in disable: True
  234420. .UNINDENT
  234421. .IP \(bu 2
  234422. 3923f4a569 Merge pull request \fI\%#28373\fP from beverlcl/fix\-use_carrier\-28372
  234423. .INDENT 2.0
  234424. .IP \(bu 2
  234425. 32cffeceb6 Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  234426. .UNINDENT
  234427. .IP \(bu 2
  234428. e07e3f257b Merge pull request \fI\%#28359\fP from rallytime/bp\-28358
  234429. .INDENT 2.0
  234430. .IP \(bu 2
  234431. 9cacbf582b docstring typo fix \- list returners not runners
  234432. .UNINDENT
  234433. .IP \(bu 2
  234434. 282be7ba5a Merge pull request \fI\%#28346\fP from twangboy/fix_installer
  234435. .INDENT 2.0
  234436. .IP \(bu 2
  234437. f65e3e5275 Updated documentation to reflect the new parameter
  234438. .IP \(bu 2
  234439. a0c5223554 Fixes \fI\%#27923\fP and \fI\%#28000\fP
  234440. .UNINDENT
  234441. .IP \(bu 2
  234442. 7858f04ebc Merge pull request \fI\%#28315\fP from gwaters/update\-pillar\-doc
  234443. .INDENT 2.0
  234444. .IP \(bu 2
  234445. b15285c0b4 adding a working example of setting pillar data on the cli
  234446. .UNINDENT
  234447. .IP \(bu 2
  234448. 45305ccf29 Merge pull request \fI\%#28211\fP from terminalmage/legacy_git_pillar\-2015.5
  234449. .INDENT 2.0
  234450. .IP \(bu 2
  234451. 0d6a4ac115 Remove non\-functional test
  234452. .IP \(bu 2
  234453. ab991d61d9 Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  234454. .UNINDENT
  234455. .IP \(bu 2
  234456. a6cc84c407 Merge pull request \fI\%#28263\fP from cachedout/issue_26411\-1
  234457. .INDENT 2.0
  234458. .IP \(bu 2
  234459. 3b880a5f07 New channel for event.fire_master
  234460. .IP \(bu 2
  234461. 29e9533aab Stand up a new channel if using salt\-call
  234462. .UNINDENT
  234463. .IP \(bu 2
  234464. 788e1463d8 Merge pull request \fI\%#28293\fP from cachedout/fix_28271
  234465. .INDENT 2.0
  234466. .IP \(bu 2
  234467. 499ed8519b Minor grammar changes to \fI\%#28271\fP
  234468. .UNINDENT
  234469. .IP \(bu 2
  234470. e178af0b90 Merge pull request \fI\%#28271\fP from gwaters/update\-tutorial\-documentation
  234471. .INDENT 2.0
  234472. .IP \(bu 2
  234473. f96d39483d updated the tutorial with gravyboat\(aqs suggestions
  234474. .IP \(bu 2
  234475. b1f4a2bdf4 i think i changed the wrong header, updated to fix
  234476. .IP \(bu 2
  234477. 846b3aece1 I found you can not run the cp.push commands until after enabling the feature in the conf, so I wanted to update the docs so others who try these commands wont bump into the same issue I had.
  234478. .UNINDENT
  234479. .IP \(bu 2
  234480. e3eff9b909 Merge pull request \fI\%#28280\fP from 0xf10e/patch\-1
  234481. .INDENT 2.0
  234482. .IP \(bu 2
  234483. 6d4316b0ac Correct Jinja function load_* to import_*
  234484. .UNINDENT
  234485. .IP \(bu 2
  234486. 909fa3dc97 Merge pull request \fI\%#28255\fP from cachedout/cli_opt
  234487. .INDENT 2.0
  234488. .IP \(bu 2
  234489. a2408157de Add __cli opt
  234490. .UNINDENT
  234491. .IP \(bu 2
  234492. 0fa094ae11 Merge pull request \fI\%#28213\fP from rallytime/boto_route53_state
  234493. .INDENT 2.0
  234494. .IP \(bu 2
  234495. 237d64ff11 If record returned None, don\(aqt continue with the state. Something went wrong.
  234496. .UNINDENT
  234497. .IP \(bu 2
  234498. 1768014705 Merge pull request \fI\%#28238\fP from basepi/fix.schedule.present.28217
  234499. .INDENT 2.0
  234500. .IP \(bu 2
  234501. 087a8dc3c2 Only insert enabled if it\(aqs a dict
  234502. .IP \(bu 2
  234503. 5b49f41fab Fix schedule comparison to adjust for \(aqenabled\(aq being added in schedule.list
  234504. .IP \(bu 2
  234505. 2dc1226ab8 Build new item with \(aqenabled\(aq if available
  234506. .UNINDENT
  234507. .IP \(bu 2
  234508. bdd48c92de Merge pull request \fI\%#28174\fP from lorengordon/file\-replace\-multiline
  234509. .INDENT 2.0
  234510. .IP \(bu 2
  234511. acdef2da60 Update docstrings with new guidance
  234512. .IP \(bu 2
  234513. 0835b005b7 Use a test that makes the extra file read unnecessary
  234514. .IP \(bu 2
  234515. 6d6121a6e5 Use \fIflags\fP when checking whether content was added previously
  234516. .IP \(bu 2
  234517. b25e609e9e Set \fIflags=8\fP since now the file is read as a MULTILINE string by default
  234518. .IP \(bu 2
  234519. 89e8dcdffd Use \fIfinally\fP block to ensure mmap object is closed
  234520. .IP \(bu 2
  234521. 5aea6647c9 Add support for multiline regex in file.replace
  234522. .UNINDENT
  234523. .IP \(bu 2
  234524. 2225925fb5 Merge pull request \fI\%#28175\fP from twangboy/fix_19673
  234525. .INDENT 2.0
  234526. .IP \(bu 2
  234527. ae8fbb208f Fixes \fI\%#19673\fP
  234528. .UNINDENT
  234529. .UNINDENT
  234530. .UNINDENT
  234531. .IP \(bu 2
  234532. \fBISSUE\fP \fI\%#15583\fP: (\fI\%dr4Ke\fP) state grain.present should accept dict values (isn\(aqt it?) (refs: \fI\%#26945\fP)
  234533. .IP \(bu 2
  234534. \fBISSUE\fP \fI\%#11870\fP: (\fI\%gpkvt\fP) Nested Grain\-Support for grains.present / grains.absent (refs: \fI\%#26945\fP)
  234535. .IP \(bu 2
  234536. \fBPR\fP \fI\%#28486\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26945\fP to 2015.8
  234537. @ \fI2015\-11\-02 18:43:35 UTC\fP
  234538. .INDENT 2.0
  234539. .IP \(bu 2
  234540. \fBPR\fP \fI\%#26945\fP: (\fI\%dr4Ke\fP) Feature state grains support nested and dict (refs: \fI\%#28486\fP)
  234541. .IP \(bu 2
  234542. a25ce38fda Merge pull request \fI\%#28486\fP from rallytime/bp\-26945
  234543. .IP \(bu 2
  234544. 8d26bbd777 grains module and state: documentation fixes
  234545. .IP \(bu 2
  234546. df7e936910 grains module and state: use a unique object...
  234547. .IP \(bu 2
  234548. df8ec1184c grains module documentation fixes
  234549. .IP \(bu 2
  234550. 25e9a5c9ad grains state and module: fix version strings
  234551. .IP \(bu 2
  234552. eee2318873 grains state: allow deleting grain with \(aqFalse\(aq value
  234553. .IP \(bu 2
  234554. c92326f5ea grains module: yaml representer for OrderedDict
  234555. .IP \(bu 2
  234556. 2c9c8d4073 grains state doc update
  234557. .IP \(bu 2
  234558. 576252da05 grains state: list_present, list_absent support nested grain
  234559. .IP \(bu 2
  234560. 62a1f37d86 grains state: nested support for grains.append
  234561. .IP \(bu 2
  234562. 3019a055c9 grains state: rewrite doc + example
  234563. .IP \(bu 2
  234564. c19cff517a grains state: more tests
  234565. .IP \(bu 2
  234566. cc844e4a2c grains state tests: test the grain file content as well
  234567. .IP \(bu 2
  234568. 1c5cd4c82d grains state: changes comment more accurate
  234569. .IP \(bu 2
  234570. 563fd2b56c grains state: use DEFAULT_TARGET_DELIM
  234571. .IP \(bu 2
  234572. c63913e602 grains module: simpler comment for already set key
  234573. .IP \(bu 2
  234574. 2000180791 grains.present uses grains.set
  234575. .IP \(bu 2
  234576. a03c79b13b module grains.set default comment is a string
  234577. .IP \(bu 2
  234578. 64e9e2c3b3 grains.absent uses set(None)
  234579. .IP \(bu 2
  234580. 6b8c245b87 grains state: new tests for nested grains
  234581. .UNINDENT
  234582. .IP \(bu 2
  234583. \fBPR\fP \fI\%#28472\fP: (\fI\%gtmanfred\fP) overwrite more than one value with names
  234584. @ \fI2015\-11\-02 17:56:53 UTC\fP
  234585. .INDENT 2.0
  234586. .IP \(bu 2
  234587. f3640b3ad6 Merge pull request \fI\%#28472\fP from gtmanfred/2015.8
  234588. .IP \(bu 2
  234589. 8b90ccedf5 overwrite more than one value with names
  234590. .UNINDENT
  234591. .IP \(bu 2
  234592. \fBPR\fP \fI\%#28493\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28492\fP to 2015.8
  234593. @ \fI2015\-11\-02 17:54:09 UTC\fP
  234594. .INDENT 2.0
  234595. .IP \(bu 2
  234596. \fBPR\fP \fI\%#28492\fP: (\fI\%cedwards\fP) Updated FreeBSD installation docs (refs: \fI\%#28493\fP)
  234597. .IP \(bu 2
  234598. e31ef51053 Merge pull request \fI\%#28493\fP from rallytime/bp\-28492
  234599. .IP \(bu 2
  234600. ffc77259c9 Updated FreeBSD installation docs:
  234601. .UNINDENT
  234602. .IP \(bu 2
  234603. \fBPR\fP \fI\%#28494\fP: (\fI\%whiteinge\fP) Fix filter_by passing incorrect parameters to match functions
  234604. @ \fI2015\-11\-02 17:53:55 UTC\fP
  234605. .INDENT 2.0
  234606. .IP \(bu 2
  234607. 38c77206db Merge pull request \fI\%#28494\fP from whiteinge/match\-filter_by\-argfix
  234608. .IP \(bu 2
  234609. e61ac75d6f Fix filter_by passing incorrect parameters to match functions
  234610. .UNINDENT
  234611. .IP \(bu 2
  234612. \fBISSUE\fP \fI\%#23685\fP: (\fI\%Snergster\fP) inotify beacon on file. \(aqchange\(aq event to reactor to reset file to known state will cause loop (refs: \fI\%#28388\fP)
  234613. .IP \(bu 2
  234614. \fBPR\fP \fI\%#28491\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28388\fP to 2015.8
  234615. @ \fI2015\-11\-02 17:13:23 UTC\fP
  234616. .INDENT 2.0
  234617. .IP \(bu 2
  234618. \fBPR\fP \fI\%#28388\fP: (\fI\%cachedout\fP) Beacon state disable (refs: \fI\%#28491\fP)
  234619. .IP \(bu 2
  234620. d19affd44d Merge pull request \fI\%#28491\fP from rallytime/bp\-28388
  234621. .IP \(bu 2
  234622. f740a19477 Working right now
  234623. .IP \(bu 2
  234624. 700eaebad0 Disable starting to come to life
  234625. .IP \(bu 2
  234626. f8b17748ef More fixing
  234627. .IP \(bu 2
  234628. 04585a2878 Documentation for disable_during_state_run
  234629. .IP \(bu 2
  234630. dbbd53689d Add documentation note in inotify beacon
  234631. .IP \(bu 2
  234632. 40217fe813 More refactoring and add new option to disable during state run
  234633. .IP \(bu 2
  234634. 19af5e5ed3 Starting on refactor of beacon config parsing
  234635. .UNINDENT
  234636. .IP \(bu 2
  234637. \fBISSUE\fP \fI\%#12363\fP: (\fI\%joehealy\fP) unable to manage password expiry of windows users (refs: \fI\%#28465\fP)
  234638. .IP \(bu 2
  234639. \fBPR\fP \fI\%#28465\fP: (\fI\%twangboy\fP) Fix \fI\%#12363\fP: Password Expiration in Windows
  234640. @ \fI2015\-11\-02 17:01:18 UTC\fP
  234641. .INDENT 2.0
  234642. .IP \(bu 2
  234643. f7042ba967 Merge pull request \fI\%#28465\fP from twangboy/fix_12363
  234644. .IP \(bu 2
  234645. bcf7d58dbb Fixed array if there\(aqs a problem with user.info
  234646. .IP \(bu 2
  234647. 4b36cb8b6e Added documentation to win_shadow
  234648. .IP \(bu 2
  234649. fc8f197f69 Fix \fI\%#12363\fP
  234650. .UNINDENT
  234651. .IP \(bu 2
  234652. \fBISSUE\fP \fI\%#28484\fP: (\fI\%nasenbaer13\fP) Elasticcache subnet group creation raises TypeError (refs: \fI\%#28485\fP)
  234653. .IP \(bu 2
  234654. \fBPR\fP \fI\%#28485\fP: (\fI\%nasenbaer13\fP) Fix invalid usage of _get_conn causing \fI\%#28484\fP
  234655. @ \fI2015\-11\-02 16:47:52 UTC\fP
  234656. .INDENT 2.0
  234657. .IP \(bu 2
  234658. ec0cbec00b Merge pull request \fI\%#28485\fP from eyj/fix_28484
  234659. .IP \(bu 2
  234660. 9d80fb6070 Fix invalid usage of _get_conn causing \fI\%#28484\fP
  234661. .UNINDENT
  234662. .IP \(bu 2
  234663. \fBISSUE\fP \fI\%#28453\fP: (\fI\%sdm24\fP) Fix Formatting for Nodegroup Targetting Docs (refs: \fI\%#28454\fP)
  234664. .IP \(bu 2
  234665. \fBISSUE\fP \fI\%#28268\fP: (\fI\%gravyboat\fP) Update nodegroup docs to explain how to target via nodegroups (refs: \fI\%#28306\fP)
  234666. .IP \(bu 2
  234667. \fBPR\fP \fI\%#28454\fP: (\fI\%sdm24\fP) Fixed nodegroup doc formatting to correctly link to pillar_opts in the master config
  234668. @ \fI2015\-11\-02 15:14:40 UTC\fP
  234669. .INDENT 2.0
  234670. .IP \(bu 2
  234671. \fBPR\fP \fI\%#28306\fP: (\fI\%sdm24\fP) Updated the Nodegroup docs to include how to target nodegroups in SLS Jinja (refs: \fI\%#28454\fP)
  234672. .IP \(bu 2
  234673. 1116798f21 Merge pull request \fI\%#28454\fP from sdm24/fix\-formatting\-in\-nodegroup\-docs
  234674. .IP \(bu 2
  234675. b968581eb1 Fixed nodegroup doc formatting to correctly link to pillar_opts in the master config
  234676. .UNINDENT
  234677. .IP \(bu 2
  234678. \fBPR\fP \fI\%#28487\fP: (\fI\%cachedout\fP) Lint 28456
  234679. @ \fI2015\-11\-02 14:52:27 UTC\fP
  234680. .INDENT 2.0
  234681. .IP \(bu 2
  234682. fac7803a59 Merge pull request \fI\%#28487\fP from cachedout/lint_28456
  234683. .IP \(bu 2
  234684. 58fe15437a Lint \fI\%#28456\fP
  234685. .IP \(bu 2
  234686. 322a28bb06 updated states.virtualenv_mod comments to reflect that some kwargs need \(aqdistribute: True\(aq
  234687. .UNINDENT
  234688. .IP \(bu 2
  234689. \fBISSUE\fP \fI\%#24775\fP: (\fI\%ymote\fP) jinja returned host ip address with square bracket (refs: \fI\%#28457\fP)
  234690. .IP \(bu 2
  234691. \fBPR\fP \fI\%#28457\fP: (\fI\%sdm24\fP) Clarified comments for grains/core.py for ip_interfaces, ip4_interfac…
  234692. @ \fI2015\-11\-02 14:47:59 UTC\fP
  234693. .INDENT 2.0
  234694. .IP \(bu 2
  234695. 22a4f14625 Merge pull request \fI\%#28457\fP from sdm24/update\-grain\-ip\-interfaces\-comments
  234696. .IP \(bu 2
  234697. eb92afe238 Clarified comments for grains/core.py for ip_interfaces, ip4_interfaces, and ip6_interfaces, to explicitly state that the ips for each interface are passed as a list
  234698. .UNINDENT
  234699. .IP \(bu 2
  234700. \fBPR\fP \fI\%#28473\fP: (\fI\%anlutro\fP) Show check_cmd output on failure
  234701. @ \fI2015\-11\-02 14:15:30 UTC\fP
  234702. .INDENT 2.0
  234703. .IP \(bu 2
  234704. 5818b28c85 Merge pull request \fI\%#28473\fP from alprs/feature\-cmd_check_output
  234705. .IP \(bu 2
  234706. a772ce330a fix tests
  234707. .IP \(bu 2
  234708. 90b01e9e0d show check_cmd output on failure
  234709. .UNINDENT
  234710. .IP \(bu 2
  234711. \fBPR\fP \fI\%#28460\fP: (\fI\%justinta\fP) Skipped wipefs test if wipefs does not exist on OS
  234712. @ \fI2015\-10\-31 04:09:32 UTC\fP
  234713. .INDENT 2.0
  234714. .IP \(bu 2
  234715. cfe39df7ac Merge pull request \fI\%#28460\fP from jtand/wipe_fs_fix
  234716. .IP \(bu 2
  234717. 7ca79f1f7b Skipped wipefs test if wipefs does not exist on OS
  234718. .UNINDENT
  234719. .IP \(bu 2
  234720. \fBPR\fP \fI\%#28426\fP: (\fI\%terminalmage\fP) pkgbuild.built: make template engine optional
  234721. @ \fI2015\-10\-30 17:13:36 UTC\fP
  234722. .INDENT 2.0
  234723. .IP \(bu 2
  234724. 9b44b5e347 Merge pull request \fI\%#28426\fP from terminalmage/pkgbuild\-template
  234725. .IP \(bu 2
  234726. 6d32497848 pkgbuild.built: make template engine optional
  234727. .UNINDENT
  234728. .IP \(bu 2
  234729. \fBISSUE\fP \fI\%#28123\fP: (\fI\%hrumph\fP) local.cmd not working for windows minions (refs: \fI\%#28422\fP)
  234730. .IP \(bu 2
  234731. \fBPR\fP \fI\%#28422\fP: (\fI\%cachedout\fP) Handle windows logging on thread_multi [WIP]
  234732. @ \fI2015\-10\-30 17:12:26 UTC\fP
  234733. .INDENT 2.0
  234734. .IP \(bu 2
  234735. 31777cb4e9 Merge pull request \fI\%#28422\fP from cachedout/issue_28123
  234736. .IP \(bu 2
  234737. fd3b2a9e20 Handle windows logging on thread_multi
  234738. .UNINDENT
  234739. .IP \(bu 2
  234740. \fBISSUE\fP \fI\%#13513\fP: (\fI\%ironwilliamcash\fP) Windows Registry Key Problem on 64bit Machine (refs: \fI\%#28425\fP)
  234741. .IP \(bu 2
  234742. \fBPR\fP \fI\%#28425\fP: (\fI\%twangboy\fP) Fix \fI\%#13513\fP \- Reflection
  234743. @ \fI2015\-10\-30 17:07:23 UTC\fP
  234744. .INDENT 2.0
  234745. .IP \(bu 2
  234746. f9992fc948 Merge pull request \fI\%#28425\fP from twangboy/fix_13513
  234747. .IP \(bu 2
  234748. beb141df69 Fixed some lint
  234749. .IP \(bu 2
  234750. 0d747355c4 Fix \fI\%#13513\fP
  234751. .UNINDENT
  234752. .IP \(bu 2
  234753. \fBISSUE\fP \fI\%#27980\fP: (\fI\%rayba\fP) salt\-cloud 2015.5.0 azure provider could not be loaded (refs: \fI\%#28417\fP)
  234754. .IP \(bu 2
  234755. \fBPR\fP \fI\%#28417\fP: (\fI\%rallytime\fP) Add note about azure sdk version to getting started docs
  234756. @ \fI2015\-10\-29 19:47:05 UTC\fP
  234757. .INDENT 2.0
  234758. .IP \(bu 2
  234759. 4c8cd064a4 Merge pull request \fI\%#28417\fP from rallytime/azure\-version\-warning
  234760. .IP \(bu 2
  234761. 8e3a2ba7e7 Add note about azure sdk version to getting started docs
  234762. .UNINDENT
  234763. .IP \(bu 2
  234764. \fBISSUE\fP \fI\%#28392\fP: (\fI\%jacksontj\fP) AsyncZeroMQReqChannel does not implement \fItries\fP (2015.8) (refs: \fI\%#28410\fP)
  234765. .IP \(bu 2
  234766. \fBPR\fP \fI\%#28410\fP: (\fI\%jacksontj\fP) Add retries to the zeromq.AsyncReqMessageClient (refs: \fI\%#28576\fP)
  234767. @ \fI2015\-10\-29 18:05:50 UTC\fP
  234768. .INDENT 2.0
  234769. .IP \(bu 2
  234770. 7ead823731 Merge pull request \fI\%#28410\fP from jacksontj/2015.8
  234771. .IP \(bu 2
  234772. 70b5ae9b1d Add retries to the zeromq.AsyncReqMessageClient
  234773. .UNINDENT
  234774. .IP \(bu 2
  234775. \fBISSUE\fP \fI\%#28382\fP: (\fI\%cedwards\fP) [FreeBSD] user state option \fIempty_password: True\fP fails with Traceback (refs: \fI\%#28395\fP)
  234776. .IP \(bu 2
  234777. \fBPR\fP \fI\%#28404\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28395\fP to 2015.8
  234778. @ \fI2015\-10\-29 16:09:20 UTC\fP
  234779. .INDENT 2.0
  234780. .IP \(bu 2
  234781. \fBPR\fP \fI\%#28395\fP: (\fI\%cedwards\fP) Updating bsd_shadow to match mainline shadow (refs: \fI\%#28404\fP)
  234782. .IP \(bu 2
  234783. 50845a1e91 Merge pull request \fI\%#28404\fP from rallytime/bp\-28395
  234784. .IP \(bu 2
  234785. badcb677e9 Use correct version release number
  234786. .IP \(bu 2
  234787. c5c66b8bab Updating bsd_shadow to match mainline shadow
  234788. .UNINDENT
  234789. .IP \(bu 2
  234790. \fBPR\fP \fI\%#28405\fP: (\fI\%opdude\fP) Detect legacy versions of chocolatey correctly
  234791. @ \fI2015\-10\-29 15:57:30 UTC\fP
  234792. .INDENT 2.0
  234793. .IP \(bu 2
  234794. e746b564b4 Merge pull request \fI\%#28405\fP from Unity\-Technologies/hotfix/choco\-version\-detect
  234795. .IP \(bu 2
  234796. 0076d73872 Make sure we exit out correctly when checking for choco version
  234797. .IP \(bu 2
  234798. 157e0f446d Detect legacy versions of chocolatey correctly
  234799. .UNINDENT
  234800. .IP \(bu 2
  234801. \fBPR\fP \fI\%#28187\fP: (\fI\%sjansen\fP) fix at.present (refs: \fI\%#28759\fP)
  234802. @ \fI2015\-10\-29 15:49:18 UTC\fP
  234803. .INDENT 2.0
  234804. .IP \(bu 2
  234805. 4304001a8f Merge pull request \fI\%#28187\fP from sjansen/patch\-1
  234806. .IP \(bu 2
  234807. 52c915e29d fix at.present
  234808. .UNINDENT
  234809. .IP \(bu 2
  234810. \fBPR\fP \fI\%#28375\fP: (\fI\%merll\fP) Merge pillar includes correctly
  234811. @ \fI2015\-10\-29 15:12:48 UTC\fP
  234812. .INDENT 2.0
  234813. .IP \(bu 2
  234814. 5efac26c10 Merge pull request \fI\%#28375\fP from Precis/fix\-pillar\-include\-loop
  234815. .IP \(bu 2
  234816. f8e2c26473 Variable err is from previous loop, too.
  234817. .IP \(bu 2
  234818. 042314246f Unit test for merging included pillars.
  234819. .IP \(bu 2
  234820. a42c51f9bf Do not merge previous values in pillar include loop.
  234821. .UNINDENT
  234822. .IP \(bu 2
  234823. \fBPR\fP \fI\%#28376\fP: (\fI\%ryan\-lane\fP) Support update of route53 records with multiple values
  234824. @ \fI2015\-10\-29 14:54:47 UTC\fP
  234825. .INDENT 2.0
  234826. .IP \(bu 2
  234827. \fBPR\fP \fI\%#28374\fP: (\fI\%ryan\-lane\fP) Support update of route53 records with multiple values (refs: \fI\%#28376\fP)
  234828. .IP \(bu 2
  234829. a69b124aaa Merge pull request \fI\%#28376\fP from lyft/multivalue\-route53\-values\-2015.8
  234830. .IP \(bu 2
  234831. cd221515a1 Support update of route53 records with multiple values
  234832. .UNINDENT
  234833. .IP \(bu 2
  234834. \fBPR\fP \fI\%#28377\fP: (\fI\%terminalmage\fP) Deprecate \(aqalways\(aq in favor of \(aqforce\(aq in pkgbuild.built
  234835. @ \fI2015\-10\-29 14:42:22 UTC\fP
  234836. .INDENT 2.0
  234837. .IP \(bu 2
  234838. 9e5a510e73 Merge pull request \fI\%#28377\fP from terminalmage/force\-pkgbuild
  234839. .IP \(bu 2
  234840. f18305e19e Add versionadded directive
  234841. .IP \(bu 2
  234842. 7046d0d896 Deprecate \(aqalways\(aq in favor of \(aqforce\(aq in pkgbuild.built
  234843. .UNINDENT
  234844. .IP \(bu 2
  234845. \fBPR\fP \fI\%#28380\fP: (\fI\%cro\fP) Add missing call for service provider
  234846. @ \fI2015\-10\-29 14:26:55 UTC\fP
  234847. .INDENT 2.0
  234848. .IP \(bu 2
  234849. cd632f798d Merge pull request \fI\%#28380\fP from cro/sshprox_fix
  234850. .IP \(bu 2
  234851. 7bcc275dce Lint + logic error.
  234852. .IP \(bu 2
  234853. 92d712a54b Add a missing call for the service provider
  234854. .UNINDENT
  234855. .IP \(bu 2
  234856. \fBISSUE\fP \fI\%#28202\fP: (\fI\%guettli\fP) Docs: Difference between modules.cron.rm_job and modules.cron.rm (refs: \fI\%#28348\fP)
  234857. .IP \(bu 2
  234858. \fBPR\fP \fI\%#28348\fP: (\fI\%jfindlay\fP) salt.utils.alias informs user they are using a renamed function
  234859. @ \fI2015\-10\-28 20:46:36 UTC\fP
  234860. .INDENT 2.0
  234861. .IP \(bu 2
  234862. e7571e6d61 Merge pull request \fI\%#28348\fP from jfindlay/alias
  234863. .IP \(bu 2
  234864. 7915d7e5e8 use alias util to formally alias module functions
  234865. .IP \(bu 2
  234866. 6a8b61bd12 create function alias to improve api documentation
  234867. .UNINDENT
  234868. .IP \(bu 2
  234869. \fBPR\fP \fI\%#28364\fP: (\fI\%justinta\fP) In CentOS 5 the .split() causes a stacktrace.
  234870. @ \fI2015\-10\-28 20:46:02 UTC\fP
  234871. .INDENT 2.0
  234872. .IP \(bu 2
  234873. 072eb98a26 Merge pull request \fI\%#28364\fP from jtand/blockdev_test_fix
  234874. .IP \(bu 2
  234875. 3b4d03ff1a In CentOS 5 the .split() causes a stacktrace. Confirmed.split() appears to be unneeded in other OSs.
  234876. .UNINDENT
  234877. .IP \(bu 2
  234878. \fBISSUE\fP \fI\%#26415\fP: (\fI\%CaesarC\fP) salt.wheel.WheelClient doesn\(aqt work follow the python api(AttributeError: \(aqNoneType\(aq object has no attribute \(aqget\(aq) (refs: \fI\%#28087\fP)
  234879. .IP \(bu 2
  234880. \fBPR\fP \fI\%#28361\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28087\fP to 2015.8
  234881. @ \fI2015\-10\-28 20:44:32 UTC\fP
  234882. .INDENT 2.0
  234883. .IP \(bu 2
  234884. \fBPR\fP \fI\%#28087\fP: (\fI\%DmitryKuzmenko\fP) Revert "Update __init__.py" (refs: \fI\%#28361\fP)
  234885. .IP \(bu 2
  234886. 06b928cfdb Merge pull request \fI\%#28361\fP from rallytime/bp\-28087
  234887. .IP \(bu 2
  234888. 41536e55b9 Revert "Update __init__.py"
  234889. .UNINDENT
  234890. .IP \(bu 2
  234891. \fBPR\fP \fI\%#28360\fP: (\fI\%multani\fP) Various documentation fixes
  234892. @ \fI2015\-10\-28 20:43:20 UTC\fP
  234893. .INDENT 2.0
  234894. .IP \(bu 2
  234895. d9e5fba9b5 Merge pull request \fI\%#28360\fP from multani/fix/docs
  234896. .IP \(bu 2
  234897. ed4a54f839 doc: fix warnings in clouds.linode
  234898. .IP \(bu 2
  234899. 5a9c4c2d60 doc: simplified states.postgres_tablespace introduction
  234900. .IP \(bu 2
  234901. cf38ff1384 doc: fix rendering of titles in the /ref/states/all/ index page
  234902. .UNINDENT
  234903. .IP \(bu 2
  234904. \fBPR\fP \fI\%#28370\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28276\fP to 2015.8
  234905. @ \fI2015\-10\-28 20:37:49 UTC\fP
  234906. .INDENT 2.0
  234907. .IP \(bu 2
  234908. \fBPR\fP \fI\%#28276\fP: (\fI\%plastikos\fP) Correct state pkg.updtodate to succeed when packages are up\-to\-date (refs: \fI\%#28370\fP)
  234909. .IP \(bu 2
  234910. 4157c8331b Merge pull request \fI\%#28370\fP from rallytime/bp\-28276
  234911. .IP \(bu 2
  234912. 227ddbcb24 Simplify setting success when there are no pkg updates.
  234913. .IP \(bu 2
  234914. cd58165138 Correct state pkg.updtodate to succeed when packages are up\-to\-date
  234915. .UNINDENT
  234916. .IP \(bu 2
  234917. \fBISSUE\fP \fI\%#27890\fP: (\fI\%dkiser\fP) pillar recurse list strategy (refs: \fI\%#27891\fP)
  234918. .IP \(bu 2
  234919. \fBISSUE\fP \fI\%#25954\fP: (\fI\%tbaker57\fP) [2015.8.0rc2] pillar merge strategy default behaviour change (refs: \fI\%#28353\fP)
  234920. .IP \(bu 2
  234921. \fBPR\fP \fI\%#28353\fP: (\fI\%merll\fP) Consider each pillar match only once.
  234922. @ \fI2015\-10\-28 15:05:21 UTC\fP
  234923. .INDENT 2.0
  234924. .IP \(bu 2
  234925. \fBPR\fP \fI\%#27891\fP: (\fI\%dkiser\fP) introduce recurse_list pillar_source_merging_strategy (refs: \fI\%#28353\fP, \fI\%#28013\fP)
  234926. .IP \(bu 2
  234927. 3942b4d0e6 Merge pull request \fI\%#28353\fP from Precis/fix\-pillar\-sls\-matches
  234928. .IP \(bu 2
  234929. 2f3f2d6f29 Consider each pillar match only once.
  234930. .UNINDENT
  234931. .IP \(bu 2
  234932. \fBPR\fP \fI\%#28334\fP: (\fI\%anlutro\fP) iptables needs \-m comment for \-\-comment to work
  234933. @ \fI2015\-10\-28 14:24:52 UTC\fP
  234934. .INDENT 2.0
  234935. .IP \(bu 2
  234936. 0d8bea6c43 Merge pull request \fI\%#28334\fP from alprs/fix\-iptables_comment
  234937. .IP \(bu 2
  234938. 170ea7c50d iptables needs \-m comment for \-\-comment to work
  234939. .UNINDENT
  234940. .IP \(bu 2
  234941. \fBISSUE\fP \fI\%#27789\fP: (\fI\%eduherraiz\fP) UnicodeDecodeError: \(aqascii\(aq codec can\(aqt decode byte in 2015.8.0 (refs: \fI\%#28340\fP, \fI\%#27833\fP)
  234942. .IP \(bu 2
  234943. \fBPR\fP \fI\%#28340\fP: (\fI\%jfindlay\fP) sdecode file and dir lists in fileclient
  234944. @ \fI2015\-10\-28 14:23:10 UTC\fP
  234945. .INDENT 2.0
  234946. .IP \(bu 2
  234947. 7000b6ee8f Merge pull request \fI\%#28340\fP from jfindlay/decode_client
  234948. .IP \(bu 2
  234949. bd9151b5e3 sdecode file and dir lists in fileclient
  234950. .UNINDENT
  234951. .IP \(bu 2
  234952. \fBPR\fP \fI\%#28344\fP: (\fI\%ryan\-lane\fP) Fix iptables state for non\-filter tables
  234953. @ \fI2015\-10\-28 14:21:54 UTC\fP
  234954. .INDENT 2.0
  234955. .IP \(bu 2
  234956. 48448c9a48 Merge pull request \fI\%#28344\fP from lyft/fix\-iptables\-non\-filter
  234957. .IP \(bu 2
  234958. 21ba070b3d Fix iptables state for non\-filter tables
  234959. .UNINDENT
  234960. .IP \(bu 2
  234961. \fBPR\fP \fI\%#28343\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28342\fP to 2015.8
  234962. @ \fI2015\-10\-28 13:58:28 UTC\fP
  234963. .INDENT 2.0
  234964. .IP \(bu 2
  234965. \fBPR\fP \fI\%#28342\fP: (\fI\%gravyboat\fP) Fix up a dup doc entry for the file state. (refs: \fI\%#28343\fP)
  234966. .IP \(bu 2
  234967. 72f0c106cf Merge pull request \fI\%#28343\fP from rallytime/bp\-28342
  234968. .IP \(bu 2
  234969. 03d15dd090 Fix up a dup doc entry.
  234970. .UNINDENT
  234971. .IP \(bu 2
  234972. \fBPR\fP \fI\%#28330\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28305\fP to 2015.8
  234973. @ \fI2015\-10\-27 17:20:35 UTC\fP
  234974. .INDENT 2.0
  234975. .IP \(bu 2
  234976. \fBPR\fP \fI\%#28305\fP: (\fI\%rowillia\fP) Fix Cabal states. (refs: \fI\%#28330\fP)
  234977. .IP \(bu 2
  234978. 64d5c2362a Merge pull request \fI\%#28330\fP from rallytime/bp\-28305
  234979. .IP \(bu 2
  234980. a46dbcb62b Fix Cabal states.
  234981. .UNINDENT
  234982. .IP \(bu 2
  234983. \fBISSUE\fP \fI\%#21216\fP: (\fI\%syphernl\fP) State rabbitmq_plugin missing proper error handling (refs: \fI\%#28270\fP)
  234984. .IP \(bu 2
  234985. \fBPR\fP \fI\%#28270\fP: (\fI\%rallytime\fP) Refactor RabbitMQ Plugin State to correctly use test=true and format errors
  234986. @ \fI2015\-10\-27 17:18:35 UTC\fP
  234987. .INDENT 2.0
  234988. .IP \(bu 2
  234989. a44c8d8dab Merge pull request \fI\%#28270\fP from rallytime/refactor_rabbitmq_plugin_state
  234990. .IP \(bu 2
  234991. 9e40c3a6a6 Fine tuning and fix tests
  234992. .IP \(bu 2
  234993. d50916ccdd Pylint fix
  234994. .IP \(bu 2
  234995. 196b18146d Refactor RabbitMQ Plugin State to correctly use test=true and format errors
  234996. .UNINDENT
  234997. .IP \(bu 2
  234998. \fBISSUE\fP \fI\%#25363\fP: (\fI\%syphernl\fP) rabbitmq_{user|vhost}.present in test=True reports unnecessary changes (refs: \fI\%#28269\fP)
  234999. .IP \(bu 2
  235000. \fBISSUE\fP \fI\%#24856\fP: (\fI\%pruiz\fP) rabbitmq_user state incorrectly reports result=True when using test=true (refs: \fI\%#28269\fP)
  235001. .IP \(bu 2
  235002. \fBPR\fP \fI\%#28269\fP: (\fI\%rallytime\fP) Refactor rabbitmq_user state to use test=True correctly (refs: \fI\%#28782\fP, \fI\%#28772\fP)
  235003. @ \fI2015\-10\-27 17:17:42 UTC\fP
  235004. .INDENT 2.0
  235005. .IP \(bu 2
  235006. 4efd07eba5 Merge pull request \fI\%#28269\fP from rallytime/refactor_rabbitmq_user_state
  235007. .IP \(bu 2
  235008. aebbcb88ea Pylint fix
  235009. .IP \(bu 2
  235010. 19b8b868a3 Clean\-up/fixes to rabbitmq_user state and test adjustments
  235011. .IP \(bu 2
  235012. 3e0e8fc8c6 Refactor rabbitmq_user state to use test=True correctly
  235013. .UNINDENT
  235014. .IP \(bu 2
  235015. \fBISSUE\fP \fI\%#27855\fP: (\fI\%dverbeek84\fP) boto_vpc is not reading availability_zone (refs: \fI\%#28299\fP, \fI\%#28168\fP)
  235016. .IP \(bu 2
  235017. \fBPR\fP \fI\%#28299\fP: (\fI\%rallytime\fP) Add test for availability_zone check to boto_vpc_tests
  235018. @ \fI2015\-10\-27 14:17:11 UTC\fP
  235019. .INDENT 2.0
  235020. .IP \(bu 2
  235021. \fBPR\fP \fI\%#28168\fP: (\fI\%rallytime\fP) Make sure availability zone gets passed in boto_vpc module when creating subnet (refs: \fI\%#28299\fP)
  235022. .IP \(bu 2
  235023. 93a930615e Merge pull request \fI\%#28299\fP from rallytime/tests\-for\-28168
  235024. .IP \(bu 2
  235025. 65fdb50246 Get the list indice to compart before looking at keys
  235026. .IP \(bu 2
  235027. 95defb87c5 Add test for availability_zone check to boto_vpc_tests
  235028. .UNINDENT
  235029. .IP \(bu 2
  235030. \fBISSUE\fP \fI\%#28268\fP: (\fI\%gravyboat\fP) Update nodegroup docs to explain how to target via nodegroups (refs: \fI\%#28306\fP)
  235031. .IP \(bu 2
  235032. \fBPR\fP \fI\%#28306\fP: (\fI\%sdm24\fP) Updated the Nodegroup docs to include how to target nodegroups in SLS Jinja (refs: \fI\%#28454\fP)
  235033. @ \fI2015\-10\-27 14:07:12 UTC\fP
  235034. .INDENT 2.0
  235035. .IP \(bu 2
  235036. 0ab7c0053d Merge pull request \fI\%#28306\fP from sdm24/update\-nodegroup\-docs\-with\-state\-targeting
  235037. .IP \(bu 2
  235038. 02cac9d8c0 Update nodegroups.rst
  235039. .IP \(bu 2
  235040. b2c3307c2e Update nodegroups.rst
  235041. .IP \(bu 2
  235042. e79a930f57 updated nodegroups.rst
  235043. .IP \(bu 2
  235044. f2a6bc94df Updated the Nodegroup docs to include how to target nodegroups in SLS Jinja
  235045. .UNINDENT
  235046. .IP \(bu 2
  235047. \fBISSUE\fP \fI\%#27435\fP: (\fI\%LukeCarrier\fP) firewalld state: firewalld.prepare calls new_service, not add_service (refs: \fI\%#28308\fP)
  235048. .IP \(bu 2
  235049. \fBPR\fP \fI\%#28308\fP: (\fI\%rallytime\fP) Firewalld state services should use \-\-add\-service, not \-\-new\-service
  235050. @ \fI2015\-10\-27 14:02:45 UTC\fP
  235051. .INDENT 2.0
  235052. .IP \(bu 2
  235053. bba26ffeca Merge pull request \fI\%#28308\fP from rallytime/fix\-27435
  235054. .IP \(bu 2
  235055. d37298f973 Don\(aqt forget to pass the zone!
  235056. .IP \(bu 2
  235057. fcafe6f355 Firewalld state services should use \-\-add\-service, not \-\-new\-service
  235058. .UNINDENT
  235059. .IP \(bu 2
  235060. \fBISSUE\fP \fI\%#21744\fP: (\fI\%rallytime\fP) [2015.5] Multi\-Master Minions Block on Authentication (refs: \fI\%#28302\fP)
  235061. .IP \(bu 2
  235062. \fBPR\fP \fI\%#28302\fP: (\fI\%DmitryKuzmenko\fP) Always close socket even if there is no stream.
  235063. @ \fI2015\-10\-27 01:08:41 UTC\fP
  235064. .INDENT 2.0
  235065. .IP \(bu 2
  235066. 044737ba6e Merge pull request \fI\%#28302\fP from DSRCompany/issues/21744_fix_context_term
  235067. .IP \(bu 2
  235068. b0fc66fa68 Always close socket even if there is no stream.
  235069. .UNINDENT
  235070. .IP \(bu 2
  235071. \fBPR\fP \fI\%#28282\fP: (\fI\%keesbos\fP) Fix for __env__ in legacy git_pillar
  235072. @ \fI2015\-10\-26 21:20:25 UTC\fP
  235073. .INDENT 2.0
  235074. .IP \(bu 2
  235075. 2f2f51906d Merge pull request \fI\%#28282\fP from keesbos/git\-pillar\-env\-fix
  235076. .IP \(bu 2
  235077. d46e09afc6 Fix for __env__ in legacy git_pillar
  235078. .UNINDENT
  235079. .IP \(bu 2
  235080. \fBPR\fP \fI\%#28258\fP: (\fI\%pass\-by\-value\fP) Add service module for ssh proxy example
  235081. @ \fI2015\-10\-26 14:57:47 UTC\fP
  235082. .INDENT 2.0
  235083. .IP \(bu 2
  235084. 6a92bfbd42 Merge pull request \fI\%#28258\fP from pass\-by\-value/ssh_service
  235085. .IP \(bu 2
  235086. 04bc1c64ad Add versionadded information
  235087. .IP \(bu 2
  235088. 76d8d859f1 Add service module for ssh proxy example
  235089. .UNINDENT
  235090. .IP \(bu 2
  235091. \fBPR\fP \fI\%#28294\fP: (\fI\%bechtoldt\fP) correct a bad default value in http utility
  235092. @ \fI2015\-10\-26 14:45:27 UTC\fP
  235093. .INDENT 2.0
  235094. .IP \(bu 2
  235095. \fBPR\fP \fI\%#25668\fP: (\fI\%techhat\fP) Sanitize sensitive fields in http.query() (refs: \fI\%#28294\fP)
  235096. .IP \(bu 2
  235097. 25778cf1ba Merge pull request \fI\%#28294\fP from bechtoldt/fix_bad_param_default_val
  235098. .IP \(bu 2
  235099. 4852c03d08 don\(aqt iterate over var that is NoneType
  235100. .UNINDENT
  235101. .IP \(bu 2
  235102. \fBPR\fP \fI\%#28185\fP: (\fI\%justinta\fP) Added single package return for latest_version, fixed other bug.
  235103. @ \fI2015\-10\-26 14:09:40 UTC\fP
  235104. .INDENT 2.0
  235105. .IP \(bu 2
  235106. 0245820b73 Merge pull request \fI\%#28185\fP from jtand/zypper_pkg
  235107. .IP \(bu 2
  235108. 457ff5d085 Added back nfo.get lines after finding the problem in them
  235109. .IP \(bu 2
  235110. 5cdb15c9e3 Added single package return for latest_version, fixed other bug.
  235111. .UNINDENT
  235112. .IP \(bu 2
  235113. \fBPR\fP \fI\%#28297\fP: (\fI\%cachedout\fP) Lint fix proxy junos
  235114. @ \fI2015\-10\-26 13:59:44 UTC\fP
  235115. .INDENT 2.0
  235116. .IP \(bu 2
  235117. \fBPR\fP \fI\%#28116\fP: (\fI\%jejenone\fP) converted junos proxy minion to new __proxy__ global (refs: \fI\%#28297\fP)
  235118. .IP \(bu 2
  235119. 443b486c22 Merge pull request \fI\%#28297\fP from cachedout/lint_fix_proxy_junos
  235120. .IP \(bu 2
  235121. 5194d9a2ef Lint
  235122. .IP \(bu 2
  235123. 28eff3caf2 converted junos proxy minion to new __proxy__ global added cli() in junos.py module to execute arbitrary command
  235124. .UNINDENT
  235125. .IP \(bu 2
  235126. \fBISSUE\fP \fI\%#28209\fP: (\fI\%basepi\fP) Legacy git_pillar configs cause duplicate ext_pillar calls (refs: \fI\%#28210\fP)
  235127. .IP \(bu 2
  235128. \fBPR\fP \fI\%#28210\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (refs: \fI\%#28211\fP)
  235129. @ \fI2015\-10\-26 12:36:58 UTC\fP
  235130. .INDENT 2.0
  235131. .IP \(bu 2
  235132. c8dd79d683 Merge pull request \fI\%#28210\fP from terminalmage/legacy_git_pillar
  235133. .IP \(bu 2
  235134. 86f00e71bf Remove non\-functional test
  235135. .IP \(bu 2
  235136. b80da6e23a Fix for ext_pillar being compiled twice in legacy git_pillar code
  235137. .UNINDENT
  235138. .IP \(bu 2
  235139. \fBISSUE\fP \fI\%#28203\fP: (\fI\%edhgoose\fP) blockdev.formatted failing on 2nd+ run, despite disk already being formatted (refs: \fI\%#28265\fP)
  235140. .IP \(bu 2
  235141. \fBPR\fP \fI\%#28265\fP: (\fI\%jfindlay\fP) fix blockdev execution and state modules
  235142. @ \fI2015\-10\-26 12:27:36 UTC\fP
  235143. .INDENT 2.0
  235144. .IP \(bu 2
  235145. 62485e567f Merge pull request \fI\%#28265\fP from jfindlay/blockdev
  235146. .IP \(bu 2
  235147. 0dc72135de update blockdev exec and state module unit tests
  235148. .IP \(bu 2
  235149. 07253cb5fb move fstype checks to blockdev execution module
  235150. .IP \(bu 2
  235151. 20ec4a1dc6 move fs create logic from blockdev state to module
  235152. .IP \(bu 2
  235153. 613671a85c safer examples in blockdev exec module docs
  235154. .IP \(bu 2
  235155. 359df1bcf7 refactor dump in blockdev exec module
  235156. .IP \(bu 2
  235157. 88acc9356d check, notify for deps in blockdev exec/state mods
  235158. .UNINDENT
  235159. .IP \(bu 2
  235160. \fBPR\fP \fI\%#28266\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28260\fP to 2015.8
  235161. @ \fI2015\-10\-26 12:20:56 UTC\fP
  235162. .INDENT 2.0
  235163. .IP \(bu 2
  235164. \fBPR\fP \fI\%#28260\fP: (\fI\%justinta\fP) Ioflo lint (refs: \fI\%#28266\fP)
  235165. .IP \(bu 2
  235166. 556d7d583e Merge pull request \fI\%#28266\fP from rallytime/bp\-28260
  235167. .IP \(bu 2
  235168. 03509e60b2 Removed unnecessary blank line
  235169. .IP \(bu 2
  235170. 2d06c97879 Moved lint disable to end of offending line
  235171. .IP \(bu 2
  235172. d13fe0cf53 Disabled lint check for ioflo
  235173. .UNINDENT
  235174. .IP \(bu 2
  235175. \fBPR\fP \fI\%#28253\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28063\fP to 2015.8
  235176. @ \fI2015\-10\-23 18:10:56 UTC\fP
  235177. .INDENT 2.0
  235178. .IP \(bu 2
  235179. \fBPR\fP \fI\%#28063\fP: (\fI\%SmithSamuelM\fP) Fixes broken Salt Raet. master.flo file path broken (refs: \fI\%#28253\fP)
  235180. .IP \(bu 2
  235181. acd2214c9d Merge pull request \fI\%#28253\fP from rallytime/bp\-28063
  235182. .IP \(bu 2
  235183. db4aa58f7b Changed reference to reflect refactor of ioflo package locations as of ioflo 1.2.3 Deprecated package locations still supported in ioflo for now
  235184. .IP \(bu 2
  235185. 87abf84b54 Changed reference to reflect refactor of ioflo package locations as of ioflo 1.2.3 Deprecated package locations still supported in ioflo for now
  235186. .IP \(bu 2
  235187. 19a81dcb77 Fixed exception in loader when no file extension
  235188. .IP \(bu 2
  235189. 2afbe6803c Raet Salt broken when config moved to package directory The path to the master.flo file no longer worked This fixes
  235190. .IP \(bu 2
  235191. a177bf8f47 fixed unittests missing close of roadstack caused error on other tests
  235192. .UNINDENT
  235193. .IP \(bu 2
  235194. \fBISSUE\fP \fI\%#28227\fP: (\fI\%jfindlay\fP) DigitalOcean FreeBSD profile fails with \fIimage: 10.2\fP (refs: \fI\%#28231\fP)
  235195. .IP \(bu 2
  235196. \fBPR\fP \fI\%#28231\fP: (\fI\%rallytime\fP) Make sure we\(aqre compairing strings when getting images in the DO driver
  235197. @ \fI2015\-10\-23 13:49:37 UTC\fP
  235198. .INDENT 2.0
  235199. .IP \(bu 2
  235200. 570e7faa3b Merge pull request \fI\%#28231\fP from rallytime/fix\-28227
  235201. .IP \(bu 2
  235202. 0985780f12 Make sure we\(aqre compairing strings when getting images in the DO driver
  235203. .UNINDENT
  235204. .IP \(bu 2
  235205. \fBPR\fP \fI\%#28224\fP: (\fI\%techhat\fP) Optimize create_repo for large packages
  235206. @ \fI2015\-10\-23 13:40:06 UTC\fP
  235207. .INDENT 2.0
  235208. .IP \(bu 2
  235209. 1c55513ce3 Merge pull request \fI\%#28224\fP from techhat/spmoptimize
  235210. .IP \(bu 2
  235211. faeef55d2f Optimize create_repo for large packages
  235212. .UNINDENT
  235213. .IP \(bu 2
  235214. \fBISSUE\fP \fI\%#27374\fP: (\fI\%mool\fP) boto_route53 state doesn\(aqt create a record (refs: \fI\%#28214\fP, \fI\%#28213\fP)
  235215. .IP \(bu 2
  235216. \fBPR\fP \fI\%#28214\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if invalid credentials are passed to boto_route53 state
  235217. @ \fI2015\-10\-23 13:37:30 UTC\fP
  235218. .INDENT 2.0
  235219. .IP \(bu 2
  235220. \fBPR\fP \fI\%#28213\fP: (\fI\%rallytime\fP) If record returned None, don\(aqt continue with the state. Something went wrong (refs: \fI\%#28214\fP)
  235221. .IP \(bu 2
  235222. f269f40905 Merge pull request \fI\%#28214\fP from rallytime/fix_boto_route53_stacktrace
  235223. .IP \(bu 2
  235224. cdeb8caabe Pylint Fix
  235225. .IP \(bu 2
  235226. 11c475b0ad Don\(aqt stacktrace if invalid credentials are passed to boto_route53 state
  235227. .UNINDENT
  235228. .IP \(bu 2
  235229. \fBPR\fP \fI\%#28228\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27562\fP to 2015.8
  235230. @ \fI2015\-10\-23 13:34:42 UTC\fP
  235231. .INDENT 2.0
  235232. .IP \(bu 2
  235233. \fBPR\fP \fI\%#27562\fP: (\fI\%techhat\fP) Add dependency resolution to SPM (refs: \fI\%#28228\fP)
  235234. .IP \(bu 2
  235235. 0775d159f8 Merge pull request \fI\%#28228\fP from rallytime/bp\-27562
  235236. .IP \(bu 2
  235237. 847809541e Updates as per @s0undt3ch
  235238. .IP \(bu 2
  235239. cf5fefdf5f Add dependency resolution to SPM
  235240. .UNINDENT
  235241. .IP \(bu 2
  235242. \fBISSUE\fP \fI\%#28230\fP: (\fI\%jfindlay\fP) DigitalOcean FreeBSD fails to bootstrap: \fIPlease use the freebsd@ user to access this droplet.\fP (refs: \fI\%#28232\fP)
  235243. .IP \(bu 2
  235244. \fBPR\fP \fI\%#28232\fP: (\fI\%rallytime\fP) Add documentation to supply the ssh_username: freebsd config to DO docs
  235245. @ \fI2015\-10\-23 13:31:52 UTC\fP
  235246. .INDENT 2.0
  235247. .IP \(bu 2
  235248. af241dc054 Merge pull request \fI\%#28232\fP from rallytime/fix\-28230
  235249. .IP \(bu 2
  235250. 8b06ab4335 Add documentation to supply the ssh_username: freebsd config to DO docs
  235251. .UNINDENT
  235252. .IP \(bu 2
  235253. \fBPR\fP \fI\%#28198\fP: (\fI\%jacobhammons\fP) Added note regarding missing spm exe on Debian/Ubuntu
  235254. @ \fI2015\-10\-22 04:40:18 UTC\fP
  235255. .INDENT 2.0
  235256. .IP \(bu 2
  235257. 36dc12c62c Merge pull request \fI\%#28198\fP from jacobhammons/docs
  235258. .IP \(bu 2
  235259. cfadda0c0c Added note regarding missing spm exe on Debian/Ubuntu Minor fixes to spm docs
  235260. .UNINDENT
  235261. .IP \(bu 2
  235262. \fBPR\fP \fI\%#28182\fP: (\fI\%erchn\fP) Some fixes for nova driver for Rackspace
  235263. @ \fI2015\-10\-21 21:26:18 UTC\fP
  235264. .INDENT 2.0
  235265. .IP \(bu 2
  235266. fbad88fb99 Merge pull request \fI\%#28182\fP from erchn/fix_nova_rackspace
  235267. .IP \(bu 2
  235268. 7b54f04ba2 wrap server_list[_detailed] in try/except block for TypeError
  235269. .IP \(bu 2
  235270. b7f8487615 rackconnectv3 default to False, not \(aqFalse\(aq get private_ips in rackconnectv2 environment and populate data object get public_ips and put in data object before returning "result" structure
  235271. .UNINDENT
  235272. .IP \(bu 2
  235273. \fBISSUE\fP \fI\%#27454\fP: (\fI\%MrFishFinger\fP) firewalld returns a dictionary rather than a string in the ret[\(aqcomment\(aq] (refs: \fI\%#28181\fP)
  235274. .IP \(bu 2
  235275. \fBPR\fP \fI\%#28181\fP: (\fI\%rallytime\fP) Revamp firewalld state to be more stateful.
  235276. @ \fI2015\-10\-21 21:19:18 UTC\fP
  235277. .INDENT 2.0
  235278. .IP \(bu 2
  235279. a1a924f170 Merge pull request \fI\%#28181\fP from rallytime/fix\-27454
  235280. .IP \(bu 2
  235281. 3e13880af8 Make sure we catch all potential exceptions
  235282. .IP \(bu 2
  235283. cb4efa87e8 Make sure state returns False when execution module calls fail
  235284. .IP \(bu 2
  235285. 232b2825e4 Revamp firewalld state to be more stateful.
  235286. .UNINDENT
  235287. .IP \(bu 2
  235288. \fBPR\fP \fI\%#28176\fP: (\fI\%cro\fP) Add ping function
  235289. @ \fI2015\-10\-21 20:49:54 UTC\fP
  235290. .INDENT 2.0
  235291. .IP \(bu 2
  235292. d93ad103c7 Merge pull request \fI\%#28176\fP from cro/ssh_no_ping
  235293. .IP \(bu 2
  235294. 3e05437f15 Add ping function
  235295. .UNINDENT
  235296. .IP \(bu 2
  235297. \fBPR\fP \fI\%#28167\fP: (\fI\%The\-Loeki\fP) file.serialize needs to add a final newline to serialized files
  235298. @ \fI2015\-10\-21 17:12:33 UTC\fP
  235299. .INDENT 2.0
  235300. .IP \(bu 2
  235301. 8e08f39381 Merge pull request \fI\%#28167\fP from The\-Loeki/patch\-1
  235302. .IP \(bu 2
  235303. 46bf6d4fa3 Update file.serialize test for Python serialized
  235304. .IP \(bu 2
  235305. 66831fd087 file.serialize needs to add a final newline to serialized files
  235306. .UNINDENT
  235307. .IP \(bu 2
  235308. \fBISSUE\fP \fI\%#27855\fP: (\fI\%dverbeek84\fP) boto_vpc is not reading availability_zone (refs: \fI\%#28299\fP, \fI\%#28168\fP)
  235309. .IP \(bu 2
  235310. \fBPR\fP \fI\%#28168\fP: (\fI\%rallytime\fP) Make sure availability zone gets passed in boto_vpc module when creating subnet (refs: \fI\%#28299\fP)
  235311. @ \fI2015\-10\-21 14:48:03 UTC\fP
  235312. .INDENT 2.0
  235313. .IP \(bu 2
  235314. 559a517ad6 Merge pull request \fI\%#28168\fP from rallytime/fix\-27855
  235315. .IP \(bu 2
  235316. 50fb77dc50 Make sure availability zone gets passed in boto_vpc module when creating subnet
  235317. .UNINDENT
  235318. .IP \(bu 2
  235319. \fBISSUE\fP \fI\%#26107\fP: (\fI\%thecosmicfrog\fP) Issue targeting nodegroups \- Invalid compound target: ( L@ ... ) (refs: \fI\%#28148\fP)
  235320. .IP \(bu 2
  235321. \fBISSUE\fP \fI\%#24660\fP: (\fI\%Mrten\fP) nodegroups not backwards compatible (refs: \fI\%#28148\fP)
  235322. .IP \(bu 2
  235323. \fBPR\fP \fI\%#28148\fP: (\fI\%basepi\fP) [2015.8] Only expand nodegroups to lists if there is a nested nodegroup
  235324. @ \fI2015\-10\-21 13:20:06 UTC\fP
  235325. .INDENT 2.0
  235326. .IP \(bu 2
  235327. dcd90363fe Merge pull request \fI\%#28148\fP from basepi/fix.nodegroup.backwards.compat.24660
  235328. .IP \(bu 2
  235329. 11d6a2b6ac Add some docs
  235330. .IP \(bu 2
  235331. 036d767a98 Keep track of recursive nodegroup_comp calls, keep list format if it\(aqs recursing
  235332. .IP \(bu 2
  235333. 155634a0aa Finish thought
  235334. .IP \(bu 2
  235335. 528b16756b Only expand nodegroups to lists if there is a nested nodegroup
  235336. .UNINDENT
  235337. .IP \(bu 2
  235338. \fBPR\fP \fI\%#28155\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  235339. @ \fI2015\-10\-20 23:48:41 UTC\fP
  235340. .INDENT 2.0
  235341. .IP \(bu 2
  235342. 053ad408c7 Merge pull request \fI\%#28155\fP from basepi/merge\-forward\-2015.8
  235343. .IP \(bu 2
  235344. c4c889f97b Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  235345. .IP \(bu 2
  235346. ab18dcf637 Merge pull request \fI\%#28140\fP from rallytime/bsd\-installation\-doc
  235347. .INDENT 2.0
  235348. .IP \(bu 2
  235349. 458a544d83 Add OpenBSD installation documentation to 2015.5 branch
  235350. .UNINDENT
  235351. .IP \(bu 2
  235352. fad38eb3c3 Merge pull request \fI\%#28138\fP from rallytime/bp\-28130\-sizes\-only
  235353. .INDENT 2.0
  235354. .IP \(bu 2
  235355. 6ab31e1886 Pylint
  235356. .IP \(bu 2
  235357. 37e4ed58a9 Added missing comma
  235358. .IP \(bu 2
  235359. 667f5e669f Added a bunch of instance sizes and updated some outdated ones
  235360. .UNINDENT
  235361. .IP \(bu 2
  235362. ce8f858536 Merge pull request \fI\%#28097\fP from jacksontj/2015.5
  235363. .INDENT 2.0
  235364. .IP \(bu 2
  235365. 75e04bcbbc For all multi\-part messages, check the headers. If the header is not your minion_id, skip the message
  235366. .UNINDENT
  235367. .IP \(bu 2
  235368. 9cdb970289 Merge pull request \fI\%#28117\fP from rallytime/fix\-23655
  235369. .INDENT 2.0
  235370. .IP \(bu 2
  235371. dfb908e405 Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  235372. .UNINDENT
  235373. .IP \(bu 2
  235374. bf7ed0a397 Merge pull request \fI\%#28110\fP from terminalmage/masterless\-mode
  235375. .INDENT 2.0
  235376. .IP \(bu 2
  235377. ed90103124 Add explanation of file_client: local setting masterless mode
  235378. .UNINDENT
  235379. .IP \(bu 2
  235380. a569ef4980 Merge pull request \fI\%#28109\fP from rallytime/fix\-27940
  235381. .INDENT 2.0
  235382. .IP \(bu 2
  235383. 18b2245611 Add created reactor event to lxc cloud driver
  235384. .UNINDENT
  235385. .IP \(bu 2
  235386. d4604fdb26 Merge pull request \fI\%#27996\fP from rallytime/fix\-21845
  235387. .INDENT 2.0
  235388. .IP \(bu 2
  235389. f8380d751e Provide empty string as default stdout instead of None
  235390. .IP \(bu 2
  235391. f9406b5828 Don\(aqt fail if pip package is already present and pip1 is installed
  235392. .UNINDENT
  235393. .IP \(bu 2
  235394. 28b97c514f Merge pull request \fI\%#28056\fP from rallytime/bp\-28033
  235395. .INDENT 2.0
  235396. .IP \(bu 2
  235397. af2c5ab759 Fixed win_useradd.py
  235398. .UNINDENT
  235399. .IP \(bu 2
  235400. dfc3aaec74 Merge pull request \fI\%#28059\fP from rallytime/bp\-28040
  235401. .INDENT 2.0
  235402. .IP \(bu 2
  235403. 76a0d4937b Revert "Allow passing in auth_version, defaulting to 2."
  235404. .IP \(bu 2
  235405. 63d5675d34 default auth_version = 2
  235406. .IP \(bu 2
  235407. 8072716888 remove extra spaces
  235408. .IP \(bu 2
  235409. 9770f56f04 cleanup whitespace, default to None to be consistent with profile
  235410. .IP \(bu 2
  235411. f4adfe98c0 Allow passing in auth_version, defaulting to 2.
  235412. .IP \(bu 2
  235413. fab1ad39af Rackspace support for switft module.
  235414. .UNINDENT
  235415. .IP \(bu 2
  235416. d1fa036b55 Merge pull request \fI\%#28047\fP from cachedout/issue_27534
  235417. .INDENT 2.0
  235418. .IP \(bu 2
  235419. 6ea37ddbca Context manager
  235420. .IP \(bu 2
  235421. 4d6f6bb371 Lint
  235422. .IP \(bu 2
  235423. 59018289dc Restore FTP functionality to file client
  235424. .UNINDENT
  235425. .IP \(bu 2
  235426. fd2ca2df1b Merge pull request \fI\%#28032\fP from twangboy/fix_win_path
  235427. .INDENT 2.0
  235428. .IP \(bu 2
  235429. 2bcac93314 Fixed win_path.py
  235430. .UNINDENT
  235431. .IP \(bu 2
  235432. 88c1770be4 Merge pull request \fI\%#28037\fP from rallytime/bp\-28003
  235433. .INDENT 2.0
  235434. .IP \(bu 2
  235435. 4fcf51fb1e Fix PR \fI\%#26336\fP
  235436. .UNINDENT
  235437. .IP \(bu 2
  235438. de727d8bd2 Merge pull request \fI\%#28031\fP from jacobhammons/relnotes6
  235439. .INDENT 2.0
  235440. .IP \(bu 2
  235441. 05927bb6f0 Updated release notes with additional CVE information
  235442. .UNINDENT
  235443. .IP \(bu 2
  235444. 16c0272849 Merge pull request \fI\%#28008\fP from jfindlay/host_path
  235445. .INDENT 2.0
  235446. .IP \(bu 2
  235447. 9f7047dd3c platform independent line endings in hosts mod
  235448. .UNINDENT
  235449. .IP \(bu 2
  235450. d41018fa8e Merge pull request \fI\%#28012\fP from rallytime/fix\-28010
  235451. .INDENT 2.0
  235452. .IP \(bu 2
  235453. 0d7059e0c2 Clean up stack trace when something goes wrong with minion output
  235454. .UNINDENT
  235455. .IP \(bu 2
  235456. f728307001 Merge pull request \fI\%#27995\fP from jacobhammons/pillar\-doc
  235457. .INDENT 2.0
  235458. .IP \(bu 2
  235459. 2870af2ba3 added link to grains security FAQ to targeting and pillar topics.
  235460. .UNINDENT
  235461. .IP \(bu 2
  235462. efede904a7 Merge pull request \fI\%#27986\fP from jacobhammons/dot6
  235463. .INDENT 2.0
  235464. .IP \(bu 2
  235465. bb61c68c11 Changed current release to 5.6 and added CVE to release notes
  235466. .UNINDENT
  235467. .IP \(bu 2
  235468. 831ec680d9 Merge pull request \fI\%#27913\fP from pass\-by\-value/proxmox_verify_ssl
  235469. .INDENT 2.0
  235470. .IP \(bu 2
  235471. 0b721efe37 Set default
  235472. .UNINDENT
  235473. .IP \(bu 2
  235474. 41cccb3a30 Merge pull request \fI\%#27876\fP from terminalmage/git_pillar\-AttributeError\-2015.5
  235475. .INDENT 2.0
  235476. .IP \(bu 2
  235477. 07794c837a 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  235478. .UNINDENT
  235479. .UNINDENT
  235480. .IP \(bu 2
  235481. \fBPR\fP \fI\%#28149\fP: (\fI\%pass\-by\-value\fP) Add clarification to cloud profile doc about host
  235482. @ \fI2015\-10\-20 19:46:05 UTC\fP
  235483. .INDENT 2.0
  235484. .IP \(bu 2
  235485. 53dd01fc24 Merge pull request \fI\%#28149\fP from pass\-by\-value/proxmox_profile_doc_change
  235486. .IP \(bu 2
  235487. bc371c55cd Add clarification to cloud profile doc about host
  235488. .UNINDENT
  235489. .IP \(bu 2
  235490. \fBPR\fP \fI\%#28146\fP: (\fI\%cachedout\fP) Lint dracr.py
  235491. @ \fI2015\-10\-20 17:55:07 UTC\fP
  235492. .INDENT 2.0
  235493. .IP \(bu 2
  235494. 7badd634ae Merge pull request \fI\%#28146\fP from cachedout/lint_dracr
  235495. .IP \(bu 2
  235496. 8b057f39e8 Lint dracr.py
  235497. .UNINDENT
  235498. .IP \(bu 2
  235499. \fBISSUE\fP \fI\%#28118\fP: (\fI\%basepi\fP) Salt\-cloud Linode driver using RAM number for disk size (refs: \fI\%#28141\fP)
  235500. .IP \(bu 2
  235501. \fBPR\fP \fI\%#28141\fP: (\fI\%rallytime\fP) Don\(aqt use RAM for root disk size in linode.py
  235502. @ \fI2015\-10\-20 17:32:29 UTC\fP
  235503. .INDENT 2.0
  235504. .IP \(bu 2
  235505. 5f99bd4dc6 Merge pull request \fI\%#28141\fP from rallytime/fix\-28118
  235506. .IP \(bu 2
  235507. 59f8e41554 Don\(aqt use RAM for root disk size in linode.py
  235508. .UNINDENT
  235509. .IP \(bu 2
  235510. \fBPR\fP \fI\%#28143\fP: (\fI\%justinta\fP) Removed blank line at end of chassis.py
  235511. @ \fI2015\-10\-20 16:39:35 UTC\fP
  235512. .INDENT 2.0
  235513. .IP \(bu 2
  235514. 7cd0440c33 Merge pull request \fI\%#28143\fP from jtand/lint_fix
  235515. .IP \(bu 2
  235516. 427df95515 removed extraneous file
  235517. .IP \(bu 2
  235518. 1a58283f23 Removed blank line at end of chassis.py
  235519. .UNINDENT
  235520. .IP \(bu 2
  235521. \fBPR\fP \fI\%#28021\fP: (\fI\%blueyed\fP) Handle includes in \fIinclude_config\fP recursively
  235522. @ \fI2015\-10\-20 16:19:37 UTC\fP
  235523. .INDENT 2.0
  235524. .IP \(bu 2
  235525. 858875e9fd Merge pull request \fI\%#28021\fP from blueyed/recursive\-include
  235526. .IP \(bu 2
  235527. 1d80520958 Handle includes in \fIinclude_config\fP recursively
  235528. .UNINDENT
  235529. .IP \(bu 2
  235530. \fBISSUE\fP \fI\%#27998\fP: (\fI\%papertigers\fP) pkgin install broken (refs: \fI\%#28001\fP)
  235531. .IP \(bu 2
  235532. \fBPR\fP \fI\%#28095\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28001\fP to 2015.8
  235533. @ \fI2015\-10\-20 16:18:11 UTC\fP
  235534. .INDENT 2.0
  235535. .IP \(bu 2
  235536. \fBPR\fP \fI\%#28001\fP: (\fI\%papertigers\fP) \fI\%#27998\fP Cleanup pkgin isatty mess (refs: \fI\%#28095\fP)
  235537. .IP \(bu 2
  235538. 4dbaec6b0c Merge pull request \fI\%#28095\fP from rallytime/bp\-28001
  235539. .IP \(bu 2
  235540. ddf8a8d2bb Cleanup pkgin isatty mess
  235541. .UNINDENT
  235542. .IP \(bu 2
  235543. \fBISSUE\fP \fI\%#28060\fP: (\fI\%LoveIsGrief\fP) Default paths for test environment (refs: \fI\%#28061\fP)
  235544. .IP \(bu 2
  235545. \fBPR\fP \fI\%#28096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28061\fP to 2015.8
  235546. @ \fI2015\-10\-20 16:15:34 UTC\fP
  235547. .INDENT 2.0
  235548. .IP \(bu 2
  235549. \fBPR\fP \fI\%#28061\fP: (\fI\%LoveIsGrief\fP) Fix \fI\%#28060\fP \- Default paths for test environment (refs: \fI\%#28096\fP)
  235550. .IP \(bu 2
  235551. 572487073c Merge pull request \fI\%#28096\fP from rallytime/bp\-28061
  235552. .IP \(bu 2
  235553. cb8a72d580 Fix \fI\%#28060\fP
  235554. .UNINDENT
  235555. .IP \(bu 2
  235556. \fBPR\fP \fI\%#28139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28103\fP to 2015.8
  235557. @ \fI2015\-10\-20 16:15:05 UTC\fP
  235558. .INDENT 2.0
  235559. .IP \(bu 2
  235560. \fBPR\fP \fI\%#28103\fP: (\fI\%ajacoutot\fP) OpenBSD salt package: update list of dependencies. (refs: \fI\%#28140\fP, \fI\%#28139\fP)
  235561. .IP \(bu 2
  235562. 9ce526260b Merge pull request \fI\%#28139\fP from rallytime/bp\-28103
  235563. .IP \(bu 2
  235564. bc9159a126 OpenBSD salt package: update list of dependencies.
  235565. .UNINDENT
  235566. .IP \(bu 2
  235567. \fBISSUE\fP \fI\%#26844\fP: (\fI\%double\-yaya\fP) The function "state.sls" is running as PID XXXX and was started at .... with jid XXXX always shows the current jid (refs: \fI\%#28098\fP, \fI\%#28097\fP)
  235568. .IP \(bu 2
  235569. \fBPR\fP \fI\%#28098\fP: (\fI\%jacksontj\fP) For all multi\-part messages, check the headers. If the header is not …
  235570. @ \fI2015\-10\-20 15:00:08 UTC\fP
  235571. .INDENT 2.0
  235572. .IP \(bu 2
  235573. 97dfb00a68 Merge pull request \fI\%#28098\fP from jacksontj/2015.8
  235574. .IP \(bu 2
  235575. 6d26842925 For all multi\-part messages, check the headers. If the header is not your minion\-id or a broadcast, drop the message.
  235576. .UNINDENT
  235577. .IP \(bu 2
  235578. \fBISSUE\fP \fI\%#3436\fP: (\fI\%madduck\fP) Pillar does not handle Unicode data (refs: \fI\%#28134\fP, #saltstack/salt\(ga#28134\(ga_)
  235579. .IP \(bu 2
  235580. \fBPR\fP \fI\%#28134\fP: (\fI\%bernieke\fP) fix unicode pillar values \fI\%#3436\fP
  235581. @ \fI2015\-10\-20 14:51:10 UTC\fP
  235582. .INDENT 2.0
  235583. .IP \(bu 2
  235584. b4875e585a Merge pull request \fI\%#28134\fP from Awingu/2015.8
  235585. .IP \(bu 2
  235586. 53285f7781 fix unicode pillar values \fI\%#3436\fP
  235587. .UNINDENT
  235588. .IP \(bu 2
  235589. \fBPR\fP \fI\%#28076\fP: (\fI\%redmcg\fP) Replace option \(aqi\(aq with an explicit queryformat
  235590. @ \fI2015\-10\-20 13:59:57 UTC\fP
  235591. .INDENT 2.0
  235592. .IP \(bu 2
  235593. f990a21029 Merge pull request \fI\%#28076\fP from redmcg/2015.8
  235594. .IP \(bu 2
  235595. 07413ec162 Remove unnecessary padding from rpm.info
  235596. .IP \(bu 2
  235597. 4987530986 Replace option \(aqi\(aq with an explicit queryformat
  235598. .UNINDENT
  235599. .IP \(bu 2
  235600. \fBPR\fP \fI\%#28119\fP: (\fI\%jacksontj\fP) Check if the remote exists before casting to a string.
  235601. @ \fI2015\-10\-20 12:34:10 UTC\fP
  235602. .INDENT 2.0
  235603. .IP \(bu 2
  235604. 3fdb52d1bf Merge pull request \fI\%#28119\fP from jacksontj/fetch_issue
  235605. .IP \(bu 2
  235606. c012dcc2f6 Check if the remote exists before casting to a string.
  235607. .UNINDENT
  235608. .IP \(bu 2
  235609. \fBISSUE\fP \fI\%#28080\fP: (\fI\%githubcdr\fP) Salt minion locale module missing on Archlinux (refs: \fI\%#28105\fP)
  235610. .IP \(bu 2
  235611. \fBPR\fP \fI\%#28105\fP: (\fI\%jfindlay\fP) add reason for not loading localemod
  235612. @ \fI2015\-10\-20 12:25:40 UTC\fP
  235613. .INDENT 2.0
  235614. .IP \(bu 2
  235615. 69ab1d30e2 Merge pull request \fI\%#28105\fP from jfindlay/locale_msg
  235616. .IP \(bu 2
  235617. 1e75665a9a add reason for not loading localemod
  235618. .UNINDENT
  235619. .IP \(bu 2
  235620. \fBISSUE\fP \fI\%#28074\fP: (\fI\%eliasp\fP) Salt logfiles are created world\-readable (refs: \fI\%#28108\fP)
  235621. .IP \(bu 2
  235622. \fBPR\fP \fI\%#28108\fP: (\fI\%cachedout\fP) Set logfile permsissions correctly
  235623. @ \fI2015\-10\-20 12:25:22 UTC\fP
  235624. .INDENT 2.0
  235625. .IP \(bu 2
  235626. 8db7e016ec Merge pull request \fI\%#28108\fP from cachedout/issue_28074
  235627. .IP \(bu 2
  235628. b416dcc07b Set logfile permsissions correctly
  235629. .UNINDENT
  235630. .IP \(bu 2
  235631. \fBPR\fP \fI\%#27922\fP: (\fI\%cro\fP) WIP States/Modules for managing Dell FX2 chassis via salt\-proxy
  235632. @ \fI2015\-10\-19 23:29:21 UTC\fP
  235633. .INDENT 2.0
  235634. .IP \(bu 2
  235635. 1085eeab2b Merge pull request \fI\%#27922\fP from cro/fx2
  235636. .IP \(bu 2
  235637. 6ccafa2ae5 Lint
  235638. .IP \(bu 2
  235639. 104c3cbe7f Lint
  235640. .IP \(bu 2
  235641. fe75594737 Lint
  235642. .IP \(bu 2
  235643. 479137cef8 Lint
  235644. .IP \(bu 2
  235645. 3712066fc9 More docs.
  235646. .IP \(bu 2
  235647. 2a3ebf5688 More Documentation.
  235648. .IP \(bu 2
  235649. 4ce2f8bb11 Documentation.
  235650. .IP \(bu 2
  235651. 18663306fb Cleanup, add blade_idrac stub
  235652. .IP \(bu 2
  235653. 0957beea46 Lint fixes and some changes by @rallytime
  235654. .IP \(bu 2
  235655. cca310eee0 WIP modules and states for managing Dell FX2 chassis via salt\-proxy
  235656. .UNINDENT
  235657. .IP \(bu 2
  235658. \fBPR\fP \fI\%#28104\fP: (\fI\%pass\-by\-value\fP) Add documentation for proxy minion ssh
  235659. @ \fI2015\-10\-19 19:30:20 UTC\fP
  235660. .INDENT 2.0
  235661. .IP \(bu 2
  235662. a715803c92 Merge pull request \fI\%#28104\fP from pass\-by\-value/proxy_ssh_docs
  235663. .IP \(bu 2
  235664. 7c8f236115 Add documentation for proxy minion ssh
  235665. .UNINDENT
  235666. .IP \(bu 2
  235667. \fBISSUE\fP \fI\%#27130\fP: (\fI\%githubcdr\fP) salt\-run broken in 2015.8? (refs: \fI\%#28020\fP)
  235668. .IP \(bu 2
  235669. \fBPR\fP \fI\%#28020\fP: (\fI\%DmitryKuzmenko\fP) LazyLoader deepcopy fix.
  235670. @ \fI2015\-10\-19 13:17:57 UTC\fP
  235671. .INDENT 2.0
  235672. .IP \(bu 2
  235673. 07cac0b434 Merge pull request \fI\%#28020\fP from DSRCompany/issues/27130_loader_deepcopy_fix
  235674. .IP \(bu 2
  235675. 5353518623 Fix lint errors
  235676. .IP \(bu 2
  235677. 8c256c94f4 LazyLoader deepcopy fix.
  235678. .UNINDENT
  235679. .IP \(bu 2
  235680. \fBISSUE\fP \fI\%#27932\fP: (\fI\%eliasp\fP) Can\(aqt include Pillar SLS across GitPillar repositories (refs: \fI\%#27933\fP)
  235681. .IP \(bu 2
  235682. \fBPR\fP \fI\%#27933\fP: (\fI\%eliasp\fP) Provide all git pillar dirs in \fIopts[pillar_roots]\fP
  235683. @ \fI2015\-10\-19 13:05:54 UTC\fP
  235684. .INDENT 2.0
  235685. .IP \(bu 2
  235686. f884df5d78 Merge pull request \fI\%#27933\fP from eliasp/fix\-27932
  235687. .IP \(bu 2
  235688. 05782aa78f Provide all git pillar dirs in \fIopts[pillar_roots]\fP
  235689. .UNINDENT
  235690. .IP \(bu 2
  235691. \fBISSUE\fP \fI\%#27890\fP: (\fI\%dkiser\fP) pillar recurse list strategy (refs: \fI\%#27891\fP)
  235692. .IP \(bu 2
  235693. \fBPR\fP \fI\%#28013\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27891\fP to 2015.8
  235694. @ \fI2015\-10\-19 12:57:51 UTC\fP
  235695. .INDENT 2.0
  235696. .IP \(bu 2
  235697. \fBPR\fP \fI\%#27891\fP: (\fI\%dkiser\fP) introduce recurse_list pillar_source_merging_strategy (refs: \fI\%#28353\fP, \fI\%#28013\fP)
  235698. .IP \(bu 2
  235699. 1db6406bef Merge pull request \fI\%#28013\fP from rallytime/bp\-27891
  235700. .IP \(bu 2
  235701. 9ea33bf0e4 Pylint fixes
  235702. .IP \(bu 2
  235703. 4af5b5c33f introduce recurse_list pillar_source_merging_strategy
  235704. .UNINDENT
  235705. .IP \(bu 2
  235706. \fBISSUE\fP \fI\%#27938\fP: (\fI\%mostafahussein\fP) Grains are not rendering correctly (refs: \fI\%#28018\fP)
  235707. .IP \(bu 2
  235708. \fBPR\fP \fI\%#28018\fP: (\fI\%rallytime\fP) Add example to Writing Grains of how grains can be loaded twice
  235709. @ \fI2015\-10\-19 12:47:10 UTC\fP
  235710. .INDENT 2.0
  235711. .IP \(bu 2
  235712. 26b3e01dda Merge pull request \fI\%#28018\fP from rallytime/fix\-27938
  235713. .IP \(bu 2
  235714. c23af0d8e2 Clarify loading vs rendering the final grains data structure
  235715. .IP \(bu 2
  235716. a4d7fb7e60 Add example to Writing Grains of how grains can be loaded twice
  235717. .UNINDENT
  235718. .IP \(bu 2
  235719. \fBPR\fP \fI\%#28084\fP: (\fI\%cachedout\fP) \fI\%#28069\fP with lint
  235720. @ \fI2015\-10\-19 12:18:38 UTC\fP
  235721. .INDENT 2.0
  235722. .IP \(bu 2
  235723. \fBPR\fP \fI\%#28069\fP: (\fI\%blueyed\fP) dockerng: use error from modules.dockerng in states\(aq __virtual__ (refs: \fI\%#28084\fP)
  235724. .IP \(bu 2
  235725. c6e7dd4812 Merge pull request \fI\%#28084\fP from cachedout/lint_28069
  235726. .IP \(bu 2
  235727. 8026212733 Lint
  235728. .IP \(bu 2
  235729. 7a2c80cf6f dockerng: use error from modules.dockerng in states\(aq __virtual__
  235730. .UNINDENT
  235731. .IP \(bu 2
  235732. \fBPR\fP \fI\%#28079\fP: (\fI\%The\-Loeki\fP) Fix for trace dump on failing imports for win32com & pythoncom 4 win_task
  235733. @ \fI2015\-10\-19 12:12:11 UTC\fP
  235734. .INDENT 2.0
  235735. .IP \(bu 2
  235736. 428e64e24d Merge pull request \fI\%#28079\fP from The\-Loeki/fix\-trace\-on\-windows\-tasks
  235737. .IP \(bu 2
  235738. 869e212e81 Fix for trace dump on failing imports for win32com & pythoncom 4 win_task
  235739. .UNINDENT
  235740. .IP \(bu 2
  235741. \fBPR\fP \fI\%#28081\fP: (\fI\%The\-Loeki\fP) fix for glance state trace error on import failure
  235742. @ \fI2015\-10\-19 12:08:47 UTC\fP
  235743. .INDENT 2.0
  235744. .IP \(bu 2
  235745. 2ac8fd793d Merge pull request \fI\%#28081\fP from The\-Loeki/fix\-trace\-on\-keystone\-state
  235746. .IP \(bu 2
  235747. 258e11f754 fix for glance state trace error on import failure
  235748. .UNINDENT
  235749. .IP \(bu 2
  235750. \fBISSUE\fP \fI\%#27794\fP: (\fI\%The\-Loeki\fP) Requests backend for HTTP fetches is broken after removing streamed response handlers (refs: \fI\%#28066\fP)
  235751. .IP \(bu 2
  235752. \fBPR\fP \fI\%#28066\fP: (\fI\%jacksontj\fP) Use the generic \fItext\fP attribute, not .body of the handler
  235753. @ \fI2015\-10\-18 16:17:12 UTC\fP
  235754. .INDENT 2.0
  235755. .IP \(bu 2
  235756. a2128c8f80 Merge pull request \fI\%#28066\fP from jacksontj/issue_27794
  235757. .IP \(bu 2
  235758. b1bf79821d Use the generic \fItext\fP attribute, not .body of the handler
  235759. .UNINDENT
  235760. .IP \(bu 2
  235761. \fBISSUE\fP \fI\%#27828\fP: (\fI\%cubranic\fP) Note the version when \(aquser\(aq and \(aqgroup\(aq became available in docs for archive.extracted (refs: \fI\%#28019\fP)
  235762. .IP \(bu 2
  235763. \fBPR\fP \fI\%#28019\fP: (\fI\%rallytime\fP) Clean up version added and deprecated msgs to be accurate
  235764. @ \fI2015\-10\-17 17:31:50 UTC\fP
  235765. .INDENT 2.0
  235766. .IP \(bu 2
  235767. 9c974c9a41 Merge pull request \fI\%#28019\fP from rallytime/fix\-27828
  235768. .IP \(bu 2
  235769. aca864643f Clean up version added and deprecated msgs to be accurate
  235770. .UNINDENT
  235771. .IP \(bu 2
  235772. \fBPR\fP \fI\%#28058\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28041\fP to 2015.8
  235773. @ \fI2015\-10\-17 17:27:19 UTC\fP
  235774. .INDENT 2.0
  235775. .IP \(bu 2
  235776. \fBPR\fP \fI\%#28041\fP: (\fI\%gtmanfred\fP) use the correct discover_extensions (refs: \fI\%#28058\fP)
  235777. .IP \(bu 2
  235778. 9adcd3b90d Merge pull request \fI\%#28058\fP from rallytime/bp\-28041
  235779. .IP \(bu 2
  235780. 04ad8dc521 use the correct discover_extensions
  235781. .UNINDENT
  235782. .IP \(bu 2
  235783. \fBPR\fP \fI\%#28055\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28043\fP to 2015.8
  235784. @ \fI2015\-10\-17 17:26:37 UTC\fP
  235785. .INDENT 2.0
  235786. .IP \(bu 2
  235787. \fBPR\fP \fI\%#28043\fP: (\fI\%gtmanfred\fP) the nova driver does not require libcloud (refs: \fI\%#28055\fP)
  235788. .IP \(bu 2
  235789. 6db970c93a Merge pull request \fI\%#28055\fP from rallytime/bp\-28043
  235790. .IP \(bu 2
  235791. 744e556be7 the nova driver does not require libcloud
  235792. .UNINDENT
  235793. .IP \(bu 2
  235794. \fBPR\fP \fI\%#28046\fP: (\fI\%pass\-by\-value\fP) Add pkg install and remove functions
  235795. @ \fI2015\-10\-17 14:56:24 UTC\fP
  235796. .INDENT 2.0
  235797. .IP \(bu 2
  235798. d7263d2a8e Merge pull request \fI\%#28046\fP from pass\-by\-value/proxy_minion_ssh_example_additions
  235799. .IP \(bu 2
  235800. 3435d28fc9 Add pkg install and remove functions
  235801. .UNINDENT
  235802. .IP \(bu 2
  235803. \fBPR\fP \fI\%#28050\fP: (\fI\%ryan\-lane\fP) Use a better method for checking dynamodb table existence
  235804. @ \fI2015\-10\-17 14:55:52 UTC\fP
  235805. .INDENT 2.0
  235806. .IP \(bu 2
  235807. dd0fdd827e Merge pull request \fI\%#28050\fP from lyft/better\-dynamo\-exists\-check\-2015.8
  235808. .IP \(bu 2
  235809. 24fff4ea12 Use a better method for checking dynamodb table existence
  235810. .UNINDENT
  235811. .IP \(bu 2
  235812. \fBISSUE\fP \fI\%#28038\fP: (\fI\%gtmanfred\fP) [Docs] the ubuntu repo documentation needs to be fixed (refs: \fI\%#28042\fP)
  235813. .IP \(bu 2
  235814. \fBPR\fP \fI\%#28042\fP: (\fI\%jfindlay\fP) fix repo path in ubuntu installation documentation
  235815. @ \fI2015\-10\-16 19:30:52 UTC\fP
  235816. .INDENT 2.0
  235817. .IP \(bu 2
  235818. 027092e2fb Merge pull request \fI\%#28042\fP from jfindlay/ubuntu_docs
  235819. .IP \(bu 2
  235820. ae92a8a1dc fix repo path in ubuntu installation documentation
  235821. .UNINDENT
  235822. .IP \(bu 2
  235823. \fBPR\fP \fI\%#28033\fP: (\fI\%twangboy\fP) Fixed win_useradd.py (refs: \fI\%#28056\fP)
  235824. @ \fI2015\-10\-16 19:19:44 UTC\fP
  235825. .INDENT 2.0
  235826. .IP \(bu 2
  235827. a3390cfbe6 Merge pull request \fI\%#28033\fP from twangboy/fix_win_useradd
  235828. .IP \(bu 2
  235829. 2137b5f79a Fixed win_useradd.py
  235830. .UNINDENT
  235831. .IP \(bu 2
  235832. \fBPR\fP \fI\%#28027\fP: (\fI\%cro\fP) Make ssh conn persistent.
  235833. @ \fI2015\-10\-16 18:50:51 UTC\fP
  235834. .INDENT 2.0
  235835. .IP \(bu 2
  235836. 4f81358e9a Merge pull request \fI\%#28027\fP from cro/persistent_ssh
  235837. .IP \(bu 2
  235838. 8b4067b6db Spelling, lint.
  235839. .IP \(bu 2
  235840. 76a93d5922 Spelling.
  235841. .IP \(bu 2
  235842. c800f60338 Default multiprocessing to False since anything that needs salt.vt will have trouble with our forking model.
  235843. .IP \(bu 2
  235844. cc0ad81b3d Lint, remove debug.
  235845. .IP \(bu 2
  235846. e41b677450 Make SSH connection \(aqpersistent\(aq. Note that right now this requires \(aqmultiprocessing: False\(aq in /etc/salt/proxy.
  235847. .UNINDENT
  235848. .IP \(bu 2
  235849. \fBPR\fP \fI\%#28029\fP: (\fI\%jacobhammons\fP) Updated release notes with additional CVE information
  235850. @ \fI2015\-10\-16 16:19:33 UTC\fP
  235851. .INDENT 2.0
  235852. .IP \(bu 2
  235853. 4dec2f9307 Merge pull request \fI\%#28029\fP from jacobhammons/relnotes8
  235854. .IP \(bu 2
  235855. 0d1b691549 Updated release notes with additional CVE information
  235856. .UNINDENT
  235857. .IP \(bu 2
  235858. \fBPR\fP \fI\%#28022\fP: (\fI\%jacobhammons\fP) Updated Debian and Ubuntu repo paths with new structure for 2015.8.1
  235859. @ \fI2015\-10\-16 15:31:36 UTC\fP
  235860. .INDENT 2.0
  235861. .IP \(bu 2
  235862. 5286c01f39 Merge pull request \fI\%#28022\fP from jacobhammons/install
  235863. .IP \(bu 2
  235864. e4d7df8695 Updated Debian and Ubuntu repo paths with new structure for 2015.8.1
  235865. .UNINDENT
  235866. .IP \(bu 2
  235867. \fBISSUE\fP \fI\%#27971\fP: (\fI\%srkunze\fP) pip.installed returned Result: None (refs: \fI\%#27983\fP)
  235868. .IP \(bu 2
  235869. \fBPR\fP \fI\%#27983\fP: (\fI\%rallytime\fP) Pip state run result should be False, not None, if installation error occurs.
  235870. @ \fI2015\-10\-16 13:37:42 UTC\fP
  235871. .INDENT 2.0
  235872. .IP \(bu 2
  235873. 340229355c Merge pull request \fI\%#27983\fP from rallytime/fix\-27971
  235874. .IP \(bu 2
  235875. 9855290b99 Maintain stateful output if something went wrong running the pip command
  235876. .IP \(bu 2
  235877. 5bcc89bb8e Pip state run result should be False, not None, if installation error occurs.
  235878. .UNINDENT
  235879. .IP \(bu 2
  235880. \fBISSUE\fP \fI\%#20678\fP: (\fI\%damon\-atkins\fP) Windows Installer (Separation/Downloader/Contains VC++) (refs: \fI\%#27991\fP)
  235881. .IP \(bu 2
  235882. \fBPR\fP \fI\%#27991\fP: (\fI\%twangboy\fP) Fix for \fI\%#20678\fP
  235883. @ \fI2015\-10\-16 13:33:48 UTC\fP
  235884. .INDENT 2.0
  235885. .IP \(bu 2
  235886. 97d473af0d Merge pull request \fI\%#27991\fP from twangboy/fix_20678
  235887. .IP \(bu 2
  235888. 5254ba18b3 Fix for \fI\%#20678\fP
  235889. .UNINDENT
  235890. .IP \(bu 2
  235891. \fBISSUE\fP \fI\%#21845\fP: (\fI\%kitsemets\fP) pip.install: fails in v2015.2.0rc1 when the package is already installed (pip v1.0) (refs: \fI\%#27996\fP)
  235892. .IP \(bu 2
  235893. \fBPR\fP \fI\%#27997\fP: (\fI\%rallytime\fP) Remove note about pip bug with pip v1 vs pip v2 return codes
  235894. @ \fI2015\-10\-16 13:23:58 UTC\fP
  235895. .INDENT 2.0
  235896. .IP \(bu 2
  235897. \fBPR\fP \fI\%#27996\fP: (\fI\%rallytime\fP) Don\(aqt fail if pip package is already present and pip1 is installed (refs: \fI\%#27997\fP)
  235898. .IP \(bu 2
  235899. bd7b39bc18 Merge pull request \fI\%#27997\fP from rallytime/remove\-pip\-bug\-note
  235900. .IP \(bu 2
  235901. f08d488313 Remove note about pip bug with pip v1 vs pip v2 return codes
  235902. .UNINDENT
  235903. .IP \(bu 2
  235904. \fBPR\fP \fI\%#27994\fP: (\fI\%justinta\fP) Fix schedule_test failure
  235905. @ \fI2015\-10\-16 13:20:56 UTC\fP
  235906. .INDENT 2.0
  235907. .IP \(bu 2
  235908. 3256e38932 Merge pull request \fI\%#27994\fP from jtand/schedule_test\-fix
  235909. .IP \(bu 2
  235910. cd67843bd0 Fix schedule_test failure
  235911. .UNINDENT
  235912. .IP \(bu 2
  235913. \fBISSUE\fP \fI\%#27949\fP: (\fI\%itsamenathan\fP) Error enabling or disabling a beacon on a minion (refs: \fI\%#27992\fP)
  235914. .IP \(bu 2
  235915. \fBPR\fP \fI\%#27992\fP: (\fI\%cachedout\fP) Make load beacon config into list
  235916. @ \fI2015\-10\-16 12:43:53 UTC\fP
  235917. .INDENT 2.0
  235918. .IP \(bu 2
  235919. 4a7a25eef7 Merge pull request \fI\%#27992\fP from cachedout/issue_27949
  235920. .IP \(bu 2
  235921. 8944e1395a Make load beacon config into list
  235922. .UNINDENT
  235923. .IP \(bu 2
  235924. \fBISSUE\fP \fI\%#26336\fP: (\fI\%jfindlay\fP) windows user.present broken (refs: \fI\%#28003\fP)
  235925. .IP \(bu 2
  235926. \fBPR\fP \fI\%#28003\fP: (\fI\%twangboy\fP) Fix \fI\%#26336\fP (refs: \fI\%#28037\fP)
  235927. @ \fI2015\-10\-16 12:43:07 UTC\fP
  235928. .INDENT 2.0
  235929. .IP \(bu 2
  235930. bae81d3a8d Merge pull request \fI\%#28003\fP from twangboy/fix_26336
  235931. .IP \(bu 2
  235932. 6c94146d86 Fix PR \fI\%#26336\fP
  235933. .UNINDENT
  235934. .IP \(bu 2
  235935. \fBPR\fP \fI\%#27984\fP: (\fI\%rallytime\fP) Versionadded for clean_file option for pkgrepo
  235936. @ \fI2015\-10\-15 18:57:54 UTC\fP
  235937. .INDENT 2.0
  235938. .IP \(bu 2
  235939. \fBPR\fP \fI\%#19561\fP: (\fI\%favadi\fP) add pkgrepo.managed clean_file option (refs: \fI\%#27984\fP)
  235940. .IP \(bu 2
  235941. e15eeee2d3 Merge pull request \fI\%#27984\fP from rallytime/version\-clean\-file
  235942. .IP \(bu 2
  235943. b094c8843e Versionadded for clean_file option for pkgrepo
  235944. .UNINDENT
  235945. .IP \(bu 2
  235946. \fBPR\fP \fI\%#27989\fP: (\fI\%ryan\-lane\fP) Do not try to remove the main route table association
  235947. @ \fI2015\-10\-15 18:57:42 UTC\fP
  235948. .INDENT 2.0
  235949. .IP \(bu 2
  235950. 6efa71a482 Merge pull request \fI\%#27989\fP from lyft/boto_vpc\-main\-route\-association2\-2015.8
  235951. .IP \(bu 2
  235952. 296931d29f Do not try to remove the main route table association
  235953. .UNINDENT
  235954. .IP \(bu 2
  235955. \fBPR\fP \fI\%#27982\fP: (\fI\%pass\-by\-value\fP) Add example for salt\-proxy over SSH
  235956. @ \fI2015\-10\-15 17:27:57 UTC\fP
  235957. .INDENT 2.0
  235958. .IP \(bu 2
  235959. 7169fad02d Merge pull request \fI\%#27982\fP from pass\-by\-value/proxy_ssh_sample
  235960. .IP \(bu 2
  235961. b85f6ab339 Add example for salt\-proxy over SSH
  235962. .UNINDENT
  235963. .IP \(bu 2
  235964. \fBPR\fP \fI\%#27985\fP: (\fI\%jacobhammons\fP) Changed current release to 8.1 and added CVEs to release notes
  235965. @ \fI2015\-10\-15 17:27:05 UTC\fP
  235966. .INDENT 2.0
  235967. .IP \(bu 2
  235968. d0be1ab98e Merge pull request \fI\%#27985\fP from jacobhammons/dot1
  235969. .IP \(bu 2
  235970. 236992b2be Changed current release to 8.1 and added CVEs to release notes
  235971. .UNINDENT
  235972. .IP \(bu 2
  235973. \fBISSUE\fP \fI\%#27750\fP: (\fI\%justyns\fP) Salt\-master too sensitive to whitespace in public keys (again) (refs: \fI\%#27979\fP)
  235974. .IP \(bu 2
  235975. \fBISSUE\fP \fI\%#21910\fP: (\fI\%justyns\fP) Salt\-master too whitespace\-sensitive when dealing with minion pub keys (refs: \fI\%#22115\fP)
  235976. .IP \(bu 2
  235977. \fBPR\fP \fI\%#27979\fP: (\fI\%cachedout\fP) Fix regression with key whitespace
  235978. @ \fI2015\-10\-15 15:26:08 UTC\fP
  235979. .INDENT 2.0
  235980. .IP \(bu 2
  235981. \fBPR\fP \fI\%#22115\fP: (\fI\%douglas\-vaz\fP) Strip whitespace characters using strip() for pub key check (refs: \fI\%#27979\fP)
  235982. .IP \(bu 2
  235983. 7e4058605d Merge pull request \fI\%#27979\fP from cachedout/issue_27750
  235984. .IP \(bu 2
  235985. 12c6bf4358 Fix regression with key whitespace
  235986. .UNINDENT
  235987. .IP \(bu 2
  235988. \fBISSUE\fP \fI\%#27712\fP: (\fI\%eduherraiz\fP) saltutil.sync_all can\(aqt sync with the minion (refs: \fI\%#27977\fP)
  235989. .IP \(bu 2
  235990. \fBPR\fP \fI\%#27977\fP: (\fI\%cachedout\fP) Decode unicode names in fileclient/server
  235991. @ \fI2015\-10\-15 15:17:01 UTC\fP
  235992. .INDENT 2.0
  235993. .IP \(bu 2
  235994. 6f8925ee84 Merge pull request \fI\%#27977\fP from cachedout/issuse_27712
  235995. .IP \(bu 2
  235996. 5173ef43c8 Decode unicode names in fileclient/server
  235997. .UNINDENT
  235998. .IP \(bu 2
  235999. \fBPR\fP \fI\%#27981\fP: (\fI\%justinta\fP) Fixed trailing whitespace lint
  236000. @ \fI2015\-10\-15 15:10:15 UTC\fP
  236001. .INDENT 2.0
  236002. .IP \(bu 2
  236003. fc1375fc39 Merge pull request \fI\%#27981\fP from jtand/cloudstack\-lint
  236004. .IP \(bu 2
  236005. 5dfad190c2 Fixed trailing whitespace lint
  236006. .UNINDENT
  236007. .IP \(bu 2
  236008. \fBPR\fP \fI\%#27969\fP: (\fI\%jeffreyctang\fP) fix parse of { on next line
  236009. @ \fI2015\-10\-15 15:04:33 UTC\fP
  236010. .INDENT 2.0
  236011. .IP \(bu 2
  236012. 1ae302b202 Merge pull request \fI\%#27969\fP from jeffreyctang/logrotate_parse
  236013. .IP \(bu 2
  236014. 2c9b2bc367 lint fixes
  236015. .IP \(bu 2
  236016. 8c6197d42e fix parse of { on next line
  236017. .UNINDENT
  236018. .IP \(bu 2
  236019. \fBPR\fP \fI\%#27978\fP: (\fI\%terminalmage\fP) Add note about dockerng.inspect_image usage
  236020. @ \fI2015\-10\-15 14:54:10 UTC\fP
  236021. .INDENT 2.0
  236022. .IP \(bu 2
  236023. a4ba982b1d Merge pull request \fI\%#27978\fP from terminalmage/dockerng\-inspect_image\-docstring
  236024. .IP \(bu 2
  236025. 595f4a6939 Add note about dockerng.inspect_image usage
  236026. .UNINDENT
  236027. .IP \(bu 2
  236028. \fBPR\fP \fI\%#27955\fP: (\fI\%pass\-by\-value\fP) Bp 27868
  236029. @ \fI2015\-10\-15 12:43:37 UTC\fP
  236030. .INDENT 2.0
  236031. .IP \(bu 2
  236032. \fBPR\fP \fI\%#27868\fP: (\fI\%pass\-by\-value\fP) Add SSHConnection object
  236033. .IP \(bu 2
  236034. bd9d1ed8b5 Merge pull request \fI\%#27955\fP from pass\-by\-value/bp\-27868
  236035. .IP \(bu 2
  236036. c02ec8b943 Fix pylint errors
  236037. .IP \(bu 2
  236038. 6553d135d0 Add SSHConnection object
  236039. .UNINDENT
  236040. .IP \(bu 2
  236041. \fBPR\fP \fI\%#27953\fP: (\fI\%The\-Loeki\fP) Fix CloudStack cloud for new \(aqdriver\(aq syntax
  236042. @ \fI2015\-10\-15 12:38:58 UTC\fP
  236043. .INDENT 2.0
  236044. .IP \(bu 2
  236045. c50802a80f Merge pull request \fI\%#27953\fP from The\-Loeki/patch\-1
  236046. .IP \(bu 2
  236047. f0d5c9f375 Pop deprecated \(aqprovider\(aq into new \(aqdriver\(aq key
  236048. .IP \(bu 2
  236049. 4e6b09edd1 Fix CloudStack cloud for new \(aqdriver\(aq syntax
  236050. .UNINDENT
  236051. .IP \(bu 2
  236052. \fBPR\fP \fI\%#27965\fP: (\fI\%ryan\-lane\fP) Fail in boto_asg.present if alarms fail
  236053. @ \fI2015\-10\-15 12:32:53 UTC\fP
  236054. .INDENT 2.0
  236055. .IP \(bu 2
  236056. 7006c37627 Merge pull request \fI\%#27965\fP from lyft/HOTFIX\-boto\-asg\-fix
  236057. .IP \(bu 2
  236058. b8f4079c33 Fail in boto_asg.present if alarms fail
  236059. .UNINDENT
  236060. .IP \(bu 2
  236061. \fBPR\fP \fI\%#27958\fP: (\fI\%twangboy\fP) Added new functionality to win_task.py
  236062. @ \fI2015\-10\-15 12:30:31 UTC\fP
  236063. .INDENT 2.0
  236064. .IP \(bu 2
  236065. 6624ec1f48 Merge pull request \fI\%#27958\fP from twangboy/update_win_task
  236066. .IP \(bu 2
  236067. 6ecbdba246 Added run_wait function
  236068. .IP \(bu 2
  236069. 5731bdcadb Clarified an error
  236070. .IP \(bu 2
  236071. 23b9c1c199 Added new functionality
  236072. .UNINDENT
  236073. .IP \(bu 2
  236074. \fBISSUE\fP \fI\%#27956\fP: (\fI\%The\-Loeki\fP) Salt\-cloud CLI 2015.8 borks out with global name \(aq__opts__\(aq is not defined (refs: \fI\%#27959\fP)
  236075. .IP \(bu 2
  236076. \fBPR\fP \fI\%#27959\fP: (\fI\%techhat\fP) Change __opts__ to self.opts
  236077. @ \fI2015\-10\-14 22:29:13 UTC\fP
  236078. .INDENT 2.0
  236079. .IP \(bu 2
  236080. 1efa87a964 Merge pull request \fI\%#27959\fP from techhat/issue27956
  236081. .IP \(bu 2
  236082. bc01c48122 Change __opts__ to self.opts
  236083. .UNINDENT
  236084. .IP \(bu 2
  236085. \fBPR\fP \fI\%#27943\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27910\fP to 2015.8
  236086. @ \fI2015\-10\-14 20:27:20 UTC\fP
  236087. .INDENT 2.0
  236088. .IP \(bu 2
  236089. \fBPR\fP \fI\%#27910\fP: (\fI\%twellspring\fP) htpasswd state add comment about dependency on apache2\-utils (refs: \fI\%#27943\fP)
  236090. .IP \(bu 2
  236091. 877e217388 Merge pull request \fI\%#27943\fP from rallytime/bp\-27910
  236092. .IP \(bu 2
  236093. 33b3d8f5b3 Clarify that apache2\-utils is for Debian\-based distros
  236094. .IP \(bu 2
  236095. 8ca0bc823c Add dependency on apache2\-utils
  236096. .UNINDENT
  236097. .IP \(bu 2
  236098. \fBPR\fP \fI\%#27944\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27909\fP to 2015.8
  236099. @ \fI2015\-10\-14 20:26:52 UTC\fP
  236100. .INDENT 2.0
  236101. .IP \(bu 2
  236102. \fBPR\fP \fI\%#27909\fP: (\fI\%twellspring\fP) htpasswd module add comment about dependency on apache2\-utils (refs: \fI\%#27944\fP)
  236103. .IP \(bu 2
  236104. 5f6edc8ac2 Merge pull request \fI\%#27944\fP from rallytime/bp\-27909
  236105. .IP \(bu 2
  236106. a3401c11b1 Clarify that apache2\-utils is for Debian\-based distros
  236107. .IP \(bu 2
  236108. 08b7bdeb97 Add dependency on apache2\-utils
  236109. .UNINDENT
  236110. .IP \(bu 2
  236111. \fBPR\fP \fI\%#27946\fP: (\fI\%justinta\fP) Changed grain to look at osmajorrelease instead of osrelease
  236112. @ \fI2015\-10\-14 19:54:08 UTC\fP
  236113. .INDENT 2.0
  236114. .IP \(bu 2
  236115. f29ca5f87b Merge pull request \fI\%#27946\fP from jtand/pkgrepo\-fix
  236116. .IP \(bu 2
  236117. d88ac2589f Changed grain to look at osmajorrelease instead of osrelease
  236118. .UNINDENT
  236119. .IP \(bu 2
  236120. \fBISSUE\fP \fI\%#27815\fP: (\fI\%tbaker57\fP) Documentation regarding associate_eip for EC2 profiles (refs: \fI\%#27914\fP)
  236121. .IP \(bu 2
  236122. \fBPR\fP \fI\%#27914\fP: (\fI\%rallytime\fP) Use eipalloc instead of eni in EC2 interface properties example
  236123. @ \fI2015\-10\-14 14:37:52 UTC\fP
  236124. .INDENT 2.0
  236125. .IP \(bu 2
  236126. bb900d428b Merge pull request \fI\%#27914\fP from rallytime/fix\-27815
  236127. .IP \(bu 2
  236128. 13a9bc9053 Use eipalloc instead of eni in EC2 interface properties example
  236129. .UNINDENT
  236130. .IP \(bu 2
  236131. \fBPR\fP \fI\%#27926\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27905\fP to 2015.8
  236132. @ \fI2015\-10\-14 14:35:37 UTC\fP
  236133. .INDENT 2.0
  236134. .IP \(bu 2
  236135. \fBPR\fP \fI\%#27905\fP: (\fI\%itsamenathan\fP) Small documentation error for beacon disable (refs: \fI\%#27926\fP)
  236136. .IP \(bu 2
  236137. 679e603905 Merge pull request \fI\%#27926\fP from rallytime/bp\-27905
  236138. .IP \(bu 2
  236139. 30e6b055ec Small documentation error fixed
  236140. .UNINDENT
  236141. .IP \(bu 2
  236142. \fBISSUE\fP \fI\%#27911\fP: (\fI\%ryan\-lane\fP) rules_egress in boto_secgroup should not manage egress rules, if set to None (refs: \fI\%#27927\fP)
  236143. .IP \(bu 2
  236144. \fBPR\fP \fI\%#27927\fP: (\fI\%ryan\-lane\fP) Do not manage ingress or egress rules if set to None
  236145. @ \fI2015\-10\-14 14:03:17 UTC\fP
  236146. .INDENT 2.0
  236147. .IP \(bu 2
  236148. 3b4d86467b Merge pull request \fI\%#27927\fP from lyft/boto_secgroup\-fixes\-2015.8
  236149. .IP \(bu 2
  236150. 0fedcc9a0b Update docs
  236151. .IP \(bu 2
  236152. 9cc65bba76 Do not manage ingress or egress rules if set to None
  236153. .UNINDENT
  236154. .IP \(bu 2
  236155. \fBPR\fP \fI\%#27928\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27908\fP to 2015.8
  236156. @ \fI2015\-10\-14 14:00:50 UTC\fP
  236157. .INDENT 2.0
  236158. .IP \(bu 2
  236159. \fBPR\fP \fI\%#27908\fP: (\fI\%lathama\fP) Documentation note kwargs for mdadm state already mentioned in module (refs: \fI\%#27928\fP)
  236160. .IP \(bu 2
  236161. b0f9db409d Merge pull request \fI\%#27928\fP from rallytime/bp\-27908
  236162. .IP \(bu 2
  236163. 7febb06223 Sneaky white space
  236164. .IP \(bu 2
  236165. 31d54bbe63 Note kwags for mdadm in state
  236166. .UNINDENT
  236167. .IP \(bu 2
  236168. \fBISSUE\fP \fI\%#27661\fP: (\fI\%alf\fP) The dockerng module uses deprecated API in docker\-py (refs: \fI\%#27676\fP)
  236169. .IP \(bu 2
  236170. \fBPR\fP \fI\%#27676\fP: (\fI\%ticosax\fP) [dockerng] WIP No more runtime args passed to docker.start()
  236171. @ \fI2015\-10\-14 13:38:41 UTC\fP
  236172. .INDENT 2.0
  236173. .IP \(bu 2
  236174. 2d0b16559e Merge pull request \fI\%#27676\fP from ticosax/no\-more\-arg\-to\-docker\-start
  236175. .IP \(bu 2
  236176. a1d0ba392f fixup! Do not pass any argument to docker.start
  236177. .IP \(bu 2
  236178. 8cddbb15c4 prevent potential error while reporting mismatch versions to user.
  236179. .IP \(bu 2
  236180. 65c8762e1f Do not pass any argument to docker.start
  236181. .IP \(bu 2
  236182. d8cca2a009 docker.version_info is now provided.
  236183. .UNINDENT
  236184. .IP \(bu 2
  236185. \fBPR\fP \fI\%#27885\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  236186. @ \fI2015\-10\-13 22:44:20 UTC\fP
  236187. .INDENT 2.0
  236188. .IP \(bu 2
  236189. 722327ee5f Merge pull request \fI\%#27885\fP from basepi/merge\-forward\-2015.8
  236190. .IP \(bu 2
  236191. 5ecd5615f2 Remove failing heavily\-mocked test
  236192. .IP \(bu 2
  236193. 3b5e16db67 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  236194. .INDENT 2.0
  236195. .IP \(bu 2
  236196. c9c3b7760e Merge pull request \fI\%#27726\fP from jfindlay/hashhosts
  236197. .INDENT 2.0
  236198. .IP \(bu 2
  236199. ebce47de7c add docs to ssh.recv_known_host exec module fcn
  236200. .IP \(bu 2
  236201. b6ee16b1e5 deprecate hash_hostname in favor of hash_known_hosts
  236202. .UNINDENT
  236203. .IP \(bu 2
  236204. 18e31584b0 Merge pull request \fI\%#27776\fP from jfindlay/local_msg
  236205. .INDENT 2.0
  236206. .IP \(bu 2
  236207. 03afa3cffa return message when local jobs_cache not found
  236208. .UNINDENT
  236209. .IP \(bu 2
  236210. 86cc7b5537 Merge pull request \fI\%#27766\fP from jfindlay/debmail
  236211. .INDENT 2.0
  236212. .IP \(bu 2
  236213. ee78da2c27 better check for debian userdel error
  236214. .UNINDENT
  236215. .IP \(bu 2
  236216. c224386c9a Merge pull request \fI\%#27758\fP from iggy/patch\-1
  236217. .INDENT 2.0
  236218. .IP \(bu 2
  236219. 0994fb6a8c Remove redundant text from syslog returner
  236220. .UNINDENT
  236221. .IP \(bu 2
  236222. 34a005041f Merge pull request \fI\%#27841\fP from terminalmage/issue27832
  236223. .INDENT 2.0
  236224. .IP \(bu 2
  236225. 8e09fbd6a3 Detect Manjaro Linux as Arch derivative
  236226. .UNINDENT
  236227. .IP \(bu 2
  236228. 3944a498ad Merge pull request \fI\%#27852\fP from rallytime/bp\-27806
  236229. .INDENT 2.0
  236230. .IP \(bu 2
  236231. a84bf18bc4 Empty string is falsy
  236232. .UNINDENT
  236233. .IP \(bu 2
  236234. 7508a1c474 Merge pull request \fI\%#27838\fP from basepi/fix.runner.highstate.outputter.27831
  236235. .INDENT 2.0
  236236. .IP \(bu 2
  236237. 8ae9b66fd9 Don\(aqt pop \(aqoutputter\(aq, we expect it further down
  236238. .UNINDENT
  236239. .IP \(bu 2
  236240. d178315f93 Merge pull request \fI\%#27791\fP from eguven/2015.5\-postgres\-user\-groups\-backport
  236241. .INDENT 2.0
  236242. .IP \(bu 2
  236243. 2caf1d21d6 fix test
  236244. .IP \(bu 2
  236245. bc90c5bffe improve change reporting for postgres_user groups
  236246. .IP \(bu 2
  236247. 8712bce91a backport postgres_user groups
  236248. .UNINDENT
  236249. .UNINDENT
  236250. .UNINDENT
  236251. .IP \(bu 2
  236252. \fBISSUE\fP \fI\%#26908\fP: (\fI\%twangboy\fP) Fix \fIservice.restart salt\-minion\fP for other locales (refs: \fI\%#27882\fP)
  236253. .IP \(bu 2
  236254. \fBISSUE\fP \fI\%#26906\fP: (\fI\%mblixter\fP) Bug fix #22020 causes a new bug due to the expected date format for the /SD parameter in schtask.exe (refs: \fI\%#27882\fP)
  236255. .IP \(bu 2
  236256. \fBPR\fP \fI\%#27882\fP: (\fI\%twangboy\fP) Created win_task.py module
  236257. @ \fI2015\-10\-13 16:54:13 UTC\fP
  236258. .INDENT 2.0
  236259. .IP \(bu 2
  236260. 36f05fb526 Merge pull request \fI\%#27882\fP from twangboy/win_task_module
  236261. .IP \(bu 2
  236262. 56c3f3ebb2 Fixed an egregious error with an import
  236263. .IP \(bu 2
  236264. 07939ea29c More lint
  236265. .IP \(bu 2
  236266. 14e060ed9c Fixed some tests
  236267. .IP \(bu 2
  236268. 1e1bd29426 Fixed some lint
  236269. .IP \(bu 2
  236270. 082277a727 Win_service.py to use the new task module
  236271. .IP \(bu 2
  236272. 2212b52620 Created win_task.py module
  236273. .UNINDENT
  236274. .IP \(bu 2
  236275. \fBISSUE\fP \fI\%#27738\fP: (\fI\%fphhotchips\fP) Git Pillar locks not managed by fileserver runner (refs: \fI\%#27802\fP)
  236276. .IP \(bu 2
  236277. \fBPR\fP \fI\%#27802\fP: (\fI\%terminalmage\fP) Correct warning logging when update lock is present for git_pillar/winrepo, add runner function for clearing git_pillar/winrepo locks
  236278. @ \fI2015\-10\-13 15:09:11 UTC\fP
  236279. .INDENT 2.0
  236280. .IP \(bu 2
  236281. 577191696d Merge pull request \fI\%#27802\fP from terminalmage/issue27738
  236282. .IP \(bu 2
  236283. 1dbc3b5489 Fix comment in docstring that trailed off mid\-sentence
  236284. .IP \(bu 2
  236285. 94b5fc572f Process both old and ng winrepo configs when clearing git locks
  236286. .IP \(bu 2
  236287. 7f4366d42e Add CLI example
  236288. .IP \(bu 2
  236289. 3952c66888 Change log message to reflect new runner function
  236290. .IP \(bu 2
  236291. c00ef718bf Add cache.clear_git_lock runner function
  236292. .IP \(bu 2
  236293. d7ca297f7b Add salt.fileserver.clear_lock()
  236294. .IP \(bu 2
  236295. 947ed5f739 Clarify docstring
  236296. .UNINDENT
  236297. .IP \(bu 2
  236298. \fBISSUE\fP \fI\%#26632\fP: (\fI\%ryanwalder\fP) postgres_user crashes when trying to add groups formed in a list (refs: \fI\%#27886\fP)
  236299. .IP \(bu 2
  236300. \fBPR\fP \fI\%#27886\fP: (\fI\%rallytime\fP) Handle group lists as well as comma\-separated group strings.
  236301. @ \fI2015\-10\-13 15:00:10 UTC\fP
  236302. .INDENT 2.0
  236303. .IP \(bu 2
  236304. d655bb3616 Merge pull request \fI\%#27886\fP from rallytime/fix\-26632
  236305. .IP \(bu 2
  236306. d235abf907 Handle group lists as well as comma\-separated group strings.
  236307. .UNINDENT
  236308. .IP \(bu 2
  236309. \fBISSUE\fP \fI\%#26313\fP: (\fI\%anlutro\fP) Timezone module error when timedatectl fails to query server (refs: \fI\%#27746\fP)
  236310. .IP \(bu 2
  236311. \fBPR\fP \fI\%#27746\fP: (\fI\%anlutro\fP) timezone module: handle timedatectl errors
  236312. @ \fI2015\-10\-13 14:55:27 UTC\fP
  236313. .INDENT 2.0
  236314. .IP \(bu 2
  236315. a158cd50e6 Merge pull request \fI\%#27746\fP from alprs/fix\-timedatectl_failure
  236316. .IP \(bu 2
  236317. f616b550b2 lint \- use indexed curly brace formatting
  236318. .IP \(bu 2
  236319. bc0f167850 update timezone mod unit tests for errors
  236320. .IP \(bu 2
  236321. ef26f067b2 timezone module: handle timedatectl errors
  236322. .UNINDENT
  236323. .IP \(bu 2
  236324. \fBISSUE\fP \fI\%#27710\fP: (\fI\%anlutro\fP) salt\-ssh and system.reboot/shutdown (refs: \fI\%#27816\fP)
  236325. .IP \(bu 2
  236326. \fBPR\fP \fI\%#27816\fP: (\fI\%anlutro\fP) Make system.reboot use \fIshutdown \-r\fP when available
  236327. @ \fI2015\-10\-13 14:52:06 UTC\fP
  236328. .INDENT 2.0
  236329. .IP \(bu 2
  236330. 9dc19caa79 Merge pull request \fI\%#27816\fP from alprs/fix\-reboot_delay
  236331. .IP \(bu 2
  236332. 04ef51e524 make system.reboot use \fIshutdown \-r\fP when available
  236333. .UNINDENT
  236334. .IP \(bu 2
  236335. \fBPR\fP \fI\%#27874\fP: (\fI\%rallytime\fP) Add mention of Periodic Table naming scheme to deprecation docs
  236336. @ \fI2015\-10\-13 14:51:45 UTC\fP
  236337. .INDENT 2.0
  236338. .IP \(bu 2
  236339. dd92b8a2e3 Merge pull request \fI\%#27874\fP from rallytime/deprecation\-docs
  236340. .IP \(bu 2
  236341. 8c056ba501 Add mention of Periodic Table naming scheme to deprecation docs
  236342. .UNINDENT
  236343. .IP \(bu 2
  236344. \fBPR\fP \fI\%#27883\fP: (\fI\%terminalmage\fP) Work around \-\-is\-ancestor not being present in git\-merge\-base before git 1.8.0
  236345. @ \fI2015\-10\-13 14:51:27 UTC\fP
  236346. .INDENT 2.0
  236347. .IP \(bu 2
  236348. 7f96ebd69e Merge pull request \fI\%#27883\fP from terminalmage/git\-merge_base\-is_ancestor
  236349. .IP \(bu 2
  236350. 45c666e8dd Work around \-\-is\-ancestor not being present in git\-merge\-base before git 1.8.0
  236351. .IP \(bu 2
  236352. 38d715ec0a Remove redundant SaltInvocationError raises
  236353. .UNINDENT
  236354. .IP \(bu 2
  236355. \fBISSUE\fP \fI\%#24111\fP: (\fI\%yermulnik\fP) cli option \(aq\-\-summary\(aq got broken after upgrade to 2015.5.1 (refs: \fI\%#24732\fP)
  236356. .IP \(bu 2
  236357. \fBPR\fP \fI\%#27877\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27774\fP to 2015.8
  236358. @ \fI2015\-10\-13 14:50:45 UTC\fP
  236359. .INDENT 2.0
  236360. .IP \(bu 2
  236361. \fBPR\fP \fI\%#27774\fP: (\fI\%plastikos\fP) Summary is not correctly inspecting return data to identify not responding|connected minions (refs: \fI\%#27877\fP)
  236362. .IP \(bu 2
  236363. \fBPR\fP \fI\%#27099\fP: (\fI\%plastikos\fP) Fix access to ret parameter of _print_returns_summary() (reverts 54b33dd35948 \fI\%#24732\fP) (refs: \fI\%#27774\fP)
  236364. .IP \(bu 2
  236365. \fBPR\fP \fI\%#24732\fP: (\fI\%msteed\fP) Fix stacktrace when \fI\-\-summary\fP is used (refs: \fI\%#27099\fP)
  236366. .IP \(bu 2
  236367. 4fb20d9b4f Merge pull request \fI\%#27877\fP from rallytime/bp\-27774
  236368. .IP \(bu 2
  236369. d940d87306 Summary is not correctly inspecting return data to identify not responding|connected minions.
  236370. .UNINDENT
  236371. .IP \(bu 2
  236372. \fBISSUE\fP \fI\%#26284\fP: (\fI\%storner\fP) apache_module.enable fails on SUSE (SLES 11 SP3) (refs: \fI\%#27878\fP)
  236373. .IP \(bu 2
  236374. \fBPR\fP \fI\%#27878\fP: (\fI\%rallytime\fP) Use apache2ctl binary on SUSE in apache module
  236375. @ \fI2015\-10\-13 14:45:56 UTC\fP
  236376. .INDENT 2.0
  236377. .IP \(bu 2
  236378. 97da0a87e3 Merge pull request \fI\%#27878\fP from rallytime/fix\-26284
  236379. .IP \(bu 2
  236380. 87f0d987a3 Use apache2ctl binary on SUSE in apache module
  236381. .UNINDENT
  236382. .IP \(bu 2
  236383. \fBPR\fP \fI\%#27879\fP: (\fI\%cro\fP) Add docs for 2015.8.2+ changes to proxies
  236384. @ \fI2015\-10\-13 14:45:30 UTC\fP
  236385. .INDENT 2.0
  236386. .IP \(bu 2
  236387. 067968c0e4 Merge pull request \fI\%#27879\fP from cro/proxydoc
  236388. .IP \(bu 2
  236389. 5b33df9d19 Add docs for 2015.8.2+ changes
  236390. .UNINDENT
  236391. .IP \(bu 2
  236392. \fBPR\fP \fI\%#27731\fP: (\fI\%cro\fP) Add __proxy__ to replace opts[\(aqproxymodule\(aq]
  236393. @ \fI2015\-10\-12 20:41:22 UTC\fP
  236394. .INDENT 2.0
  236395. .IP \(bu 2
  236396. 922e2018ef Merge pull request \fI\%#27731\fP from cro/dunder_proxy
  236397. .IP \(bu 2
  236398. ba3e423b87 Missing object item throws an AttributeError not a NameError.
  236399. .IP \(bu 2
  236400. 4cf2b56d5f Lint.
  236401. .IP \(bu 2
  236402. dc07245df2 @rallytime is awesome. Moved proxy=None to end of def minion_mods
  236403. .IP \(bu 2
  236404. 3152d8ee3f Minor loader fix
  236405. .IP \(bu 2
  236406. b15083d719 Flip sense of test for grains load at end of regular minion startup
  236407. .IP \(bu 2
  236408. 37c145bcd5 More places where salt.state.State needs a proxy param, sysmod had wrong __proxyenabled__, core grains were checking for proxy the wrong way.
  236409. .IP \(bu 2
  236410. ed23f36279 One more check for presence of __proxy__
  236411. .IP \(bu 2
  236412. 62d9f5092e what was I thinking?
  236413. .IP \(bu 2
  236414. ccf366e1a5 Lint
  236415. .IP \(bu 2
  236416. 8aef6e8aa9 Fix comment
  236417. .IP \(bu 2
  236418. 48f9755103 Oops, forgot temp var.
  236419. .IP \(bu 2
  236420. f0360ca00e More cleanup, found another spot where proxy needed to be passed to a load_modules.
  236421. .IP \(bu 2
  236422. 81a4abfe5a __proxy__ is getting nuked somewhere
  236423. .IP \(bu 2
  236424. f9461ff298 Add config option so old\-style proxymodules will keep loading
  236425. .IP \(bu 2
  236426. 3d6ed5b7ff Remove debug statement.
  236427. .IP \(bu 2
  236428. b5a19a9740 Enable syncing proxymodules from the master. Proxymodules can go in /srv/salt/_proxy.
  236429. .IP \(bu 2
  236430. f878011543 Lint, and some parameter fixes to add proxy= to some overridden load_modules fns.
  236431. .IP \(bu 2
  236432. 22f035d8eb Remove debug statement
  236433. .IP \(bu 2
  236434. 4432499b45 More progress toward __proxy__
  236435. .IP \(bu 2
  236436. 1a229c17b2 Further work on __proxy__
  236437. .IP \(bu 2
  236438. 85fd6a41c7 One more check for presence of __proxy__
  236439. .IP \(bu 2
  236440. 15e1d3e3df Forgot absolute_import.
  236441. .IP \(bu 2
  236442. c5d9d54f19 Fix py3 lint
  236443. .IP \(bu 2
  236444. dd50c33543 This module was accidentally overwriting core grains during tests.
  236445. .IP \(bu 2
  236446. 525256fa68 Some calls to highstate won\(aqt have __proxy__ in scope
  236447. .IP \(bu 2
  236448. a615e5a876 what was I thinking?
  236449. .IP \(bu 2
  236450. fae3f3ca83 Lint
  236451. .IP \(bu 2
  236452. b049377cbe Remove rest_sample_test, it wasn\(aqt testing anything
  236453. .IP \(bu 2
  236454. 42188480d4 Fix comment
  236455. .IP \(bu 2
  236456. 4112c583e4 Oops, forgot temp var.
  236457. .IP \(bu 2
  236458. e9b281041c More cleanup, found another spot where proxy needed to be passed to a load_modules.
  236459. .IP \(bu 2
  236460. 64f967d731 __proxy__ is getting nuked somewhere
  236461. .IP \(bu 2
  236462. bdffb9f57b Add config option so old\-style proxymodules will keep loading
  236463. .IP \(bu 2
  236464. b79b6a39dd Remove debug statement.
  236465. .IP \(bu 2
  236466. 02fc2d9323 Enable syncing proxymodules from the master. Proxymodules can go in /srv/salt/_proxy.
  236467. .IP \(bu 2
  236468. 72032650b8 Add __proxy__ to the list of builtins.
  236469. .IP \(bu 2
  236470. db4c034596 Lint, and some parameter fixes to add proxy= to some overridden load_modules fns.
  236471. .IP \(bu 2
  236472. 1032ad28fc Remove debug statement
  236473. .IP \(bu 2
  236474. c41e49d8e5 Make sure that the __proxy__ gets passed all the way into the state system.
  236475. .IP \(bu 2
  236476. 4a20d48b35 More progress toward __proxy__
  236477. .IP \(bu 2
  236478. d337f4329e Further work on __proxy__
  236479. .UNINDENT
  236480. .IP \(bu 2
  236481. \fBISSUE\fP \fI\%#26904\fP: (\fI\%anlutro\fP) pip install \-\-upgrade with virtualenv.managed? (refs: \fI\%#27745\fP)
  236482. .IP \(bu 2
  236483. \fBPR\fP \fI\%#27745\fP: (\fI\%anlutro\fP) Add pip_upgrade arg to virtualenv.managed state
  236484. @ \fI2015\-10\-12 16:11:02 UTC\fP
  236485. .INDENT 2.0
  236486. .IP \(bu 2
  236487. 644f003fb2 Merge pull request \fI\%#27745\fP from alprs/fix\-virtualenv_pip_upgrade
  236488. .IP \(bu 2
  236489. 4bd219f8d4 add pip_upgrade arg to virtualenv.managed state, clean up docstring
  236490. .UNINDENT
  236491. .IP \(bu 2
  236492. \fBPR\fP \fI\%#27809\fP: (\fI\%ticosax\fP) [dockerng] Remove dockerng.ps caching
  236493. @ \fI2015\-10\-12 16:07:48 UTC\fP
  236494. .INDENT 2.0
  236495. .IP \(bu 2
  236496. 698f477336 Merge pull request \fI\%#27809\fP from ticosax/remove\-dockerng.ps\-caching
  236497. .IP \(bu 2
  236498. 0eb1145856 Remove caching to prevent returning stale data from dockerng.ps
  236499. .UNINDENT
  236500. .IP \(bu 2
  236501. \fBPR\fP \fI\%#27859\fP: (\fI\%ticosax\fP) [dockerng] Clarify doc port bindings
  236502. @ \fI2015\-10\-12 16:06:27 UTC\fP
  236503. .INDENT 2.0
  236504. .IP \(bu 2
  236505. e96d06d71a Merge pull request \fI\%#27859\fP from ticosax/clarify\-doc\-port\-bindings
  236506. .IP \(bu 2
  236507. 75f7a3ec55 Must be a string
  236508. .UNINDENT
  236509. .IP \(bu 2
  236510. \fBISSUE\fP \fI\%#8646\fP: (\fI\%micahhausler\fP) Make the clean parameter in the file.directory state respect foreign require_in (refs: \fI\%#27748\fP)
  236511. .IP \(bu 2
  236512. \fBPR\fP \fI\%#27748\fP: (\fI\%multani\fP) Fix \fI\%#8646\fP
  236513. @ \fI2015\-10\-12 15:55:57 UTC\fP
  236514. .INDENT 2.0
  236515. .IP \(bu 2
  236516. ba2a39d4b7 Merge pull request \fI\%#27748\fP from multani/fix\-8646
  236517. .IP \(bu 2
  236518. 6d95cbc998 Fix lint errors
  236519. .IP \(bu 2
  236520. 4ff9f4be2a Fix file.directory with clean=true and require_in with states ID
  236521. .IP \(bu 2
  236522. 0d391275de Test cases to demonstrate bug \fI\%#8646\fP
  236523. .UNINDENT
  236524. .IP \(bu 2
  236525. \fBISSUE\fP \fI\%#27721\fP: (\fI\%ldobson\fP) boto_cloudwatch_alarm.present returns diff on no change (refs: \fI\%#27722\fP)
  236526. .IP \(bu 2
  236527. \fBPR\fP \fI\%#27850\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27722\fP to 2015.8
  236528. @ \fI2015\-10\-12 15:31:58 UTC\fP
  236529. .INDENT 2.0
  236530. .IP \(bu 2
  236531. \fBPR\fP \fI\%#27722\fP: (\fI\%ldobson\fP) Sorted compare for alarm actions (refs: \fI\%#27850\fP)
  236532. .IP \(bu 2
  236533. ce1493e06b Merge pull request \fI\%#27850\fP from rallytime/bp\-27722
  236534. .IP \(bu 2
  236535. 33936605a0 Sorted compare for alarm actions
  236536. .UNINDENT
  236537. .IP \(bu 2
  236538. \fBPR\fP \fI\%#27851\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27771\fP to 2015.8
  236539. @ \fI2015\-10\-12 15:31:06 UTC\fP
  236540. .INDENT 2.0
  236541. .IP \(bu 2
  236542. \fBPR\fP \fI\%#27771\fP: (\fI\%srkunze\fP) [VIRTUALENV_MOD] added docs strings to explain parameters (refs: \fI\%#27851\fP)
  236543. .IP \(bu 2
  236544. c95437a710 Merge pull request \fI\%#27851\fP from rallytime/bp\-27771
  236545. .IP \(bu 2
  236546. 144a743503 added docs strings to explain parameters
  236547. .UNINDENT
  236548. .IP \(bu 2
  236549. \fBISSUE\fP \fI\%#27789\fP: (\fI\%eduherraiz\fP) UnicodeDecodeError: \(aqascii\(aq codec can\(aqt decode byte in 2015.8.0 (refs: \fI\%#28340\fP, \fI\%#27833\fP)
  236550. .IP \(bu 2
  236551. \fBPR\fP \fI\%#27833\fP: (\fI\%jfindlay\fP) decode path before string ops in fileclient
  236552. @ \fI2015\-10\-12 15:26:39 UTC\fP
  236553. .INDENT 2.0
  236554. .IP \(bu 2
  236555. a41b59bf6e Merge pull request \fI\%#27833\fP from jfindlay/path_decode
  236556. .IP \(bu 2
  236557. 66c74e591e decode path before string ops in fileclient
  236558. .UNINDENT
  236559. .IP \(bu 2
  236560. \fBISSUE\fP \fI\%#27804\fP: (\fI\%chrismcmacken\fP) cmd.run/cmd.run_all documentation contradictory for python_shell argument (refs: \fI\%#27837\fP)
  236561. .IP \(bu 2
  236562. \fBPR\fP \fI\%#27837\fP: (\fI\%jfindlay\fP) reverse truth in python_shell documentation
  236563. @ \fI2015\-10\-12 15:25:13 UTC\fP
  236564. .INDENT 2.0
  236565. .IP \(bu 2
  236566. e264db7702 Merge pull request \fI\%#27837\fP from jfindlay/true_shell
  236567. .IP \(bu 2
  236568. 1c9708a457 reverse truth in python_shell documentation
  236569. .UNINDENT
  236570. .IP \(bu 2
  236571. \fBPR\fP \fI\%#27860\fP: (\fI\%flavio\fP) Fix OS related grains on openSUSE and SUSE Linux Enterprise
  236572. @ \fI2015\-10\-12 15:22:59 UTC\fP
  236573. .INDENT 2.0
  236574. .IP \(bu 2
  236575. faec838744 Merge pull request \fI\%#27860\fP from flavio/fix\-os\-grains\-on\-suse\-and\-opensuse
  236576. .IP \(bu 2
  236577. fc8d296d72 Fix OS related grains on openSUSE and SUSE Linux Enterprise
  236578. .UNINDENT
  236579. .IP \(bu 2
  236580. \fBPR\fP \fI\%#27768\fP: (\fI\%rallytime\fP) Clean up bootstrap function to be slightly cleaner
  236581. @ \fI2015\-10\-12 15:06:54 UTC\fP
  236582. .INDENT 2.0
  236583. .IP \(bu 2
  236584. 4ac5344c31 Merge pull request \fI\%#27768\fP from rallytime/cleanup_bootstrap
  236585. .IP \(bu 2
  236586. 9df6e106c3 Clean up bootstrap function to be slightly cleaner
  236587. .UNINDENT
  236588. .IP \(bu 2
  236589. \fBPR\fP \fI\%#27797\fP: (\fI\%isbm\fP) Zypper module clusterfix
  236590. @ \fI2015\-10\-12 15:06:02 UTC\fP
  236591. .INDENT 2.0
  236592. .IP \(bu 2
  236593. e1bd91e392 Merge pull request \fI\%#27797\fP from isbm/isbm\-zypper\-fixes
  236594. .IP \(bu 2
  236595. 36281f6b06 Bugfix: crash if no package specified on adding a lock
  236596. .IP \(bu 2
  236597. 29806a1af9 Bugfix: crash if no package specified on removing lock
  236598. .IP \(bu 2
  236599. 453a18ea15 Return an actual amount of removed locks.
  236600. .IP \(bu 2
  236601. eaa6af9898 Bugfix: sometimes error goes to the STDOUT instead of STDERR in the RPM
  236602. .IP \(bu 2
  236603. 350340dafa Bugfix: use boolean type instead of string "Yes" or "No" (NOTE: this was forgotten)
  236604. .IP \(bu 2
  236605. decb989eb4 Bugfix and refactor due to the crash on unknown package and incorrect return value
  236606. .IP \(bu 2
  236607. a6c285bd12 Initialization fix
  236608. .IP \(bu 2
  236609. 510dedd29f Bugfix: newer Zypper includes also a version of installed package
  236610. .IP \(bu 2
  236611. f9bef516de Bugfix: broken "upgrade_available" and should always return dict.
  236612. .UNINDENT
  236613. .IP \(bu 2
  236614. \fBISSUE\fP \fI\%#27821\fP: (\fI\%leodus\fP) Deploy VM on Proxmox requires \(aqsize\(aq configuration setting? Not according the docs! (refs: \fI\%#27849\fP)
  236615. .IP \(bu 2
  236616. \fBPR\fP \fI\%#27849\fP: (\fI\%rallytime\fP) Don\(aqt require a size parameter for proxmox profiles
  236617. @ \fI2015\-10\-11 01:33:28 UTC\fP
  236618. .INDENT 2.0
  236619. .IP \(bu 2
  236620. 286b08a0f5 Merge pull request \fI\%#27849\fP from rallytime/fix\-27821
  236621. .IP \(bu 2
  236622. 1bf17c7d48 Don\(aqt require a size parameter for proxmox profiles
  236623. .UNINDENT
  236624. .IP \(bu 2
  236625. \fBPR\fP \fI\%#27827\fP: (\fI\%techhat\fP) Add additional error checking to SPM
  236626. @ \fI2015\-10\-09 18:23:09 UTC\fP
  236627. .INDENT 2.0
  236628. .IP \(bu 2
  236629. 4a69db27cd Merge pull request \fI\%#27827\fP from techhat/spmfixes
  236630. .IP \(bu 2
  236631. ffc8df223b Add additional error checking to SPM
  236632. .UNINDENT
  236633. .IP \(bu 2
  236634. \fBISSUE\fP \fI\%#27825\fP: (\fI\%martinhoefling\fP) Salt\-api is not adding cors headers if auth fails (refs: \fI\%#27826\fP)
  236635. .IP \(bu 2
  236636. \fBPR\fP \fI\%#27826\fP: (\fI\%martinhoefling\fP) Fixes \fI\%#27825\fP
  236637. @ \fI2015\-10\-09 16:08:05 UTC\fP
  236638. .INDENT 2.0
  236639. .IP \(bu 2
  236640. 9bc19ba7d2 Merge pull request \fI\%#27826\fP from martinhoefling/fix\-27825
  236641. .IP \(bu 2
  236642. 401e7de33d Fixes \fI\%#27825\fP
  236643. .UNINDENT
  236644. .IP \(bu 2
  236645. \fBPR\fP \fI\%#27824\fP: (\fI\%techhat\fP) Update Azure errors
  236646. @ \fI2015\-10\-09 15:25:14 UTC\fP
  236647. .INDENT 2.0
  236648. .IP \(bu 2
  236649. 1e2dede122 Merge pull request \fI\%#27824\fP from techhat/azureerrors
  236650. .IP \(bu 2
  236651. 5b23ac7099 Update Azure errors
  236652. .UNINDENT
  236653. .IP \(bu 2
  236654. \fBPR\fP \fI\%#27795\fP: (\fI\%eguven\fP) better change reporting for postgres_user groups
  236655. @ \fI2015\-10\-08 23:56:53 UTC\fP
  236656. .INDENT 2.0
  236657. .IP \(bu 2
  236658. ec35666ff2 Merge pull request \fI\%#27795\fP from eguven/2015.8\-postgres_user\-group\-change
  236659. .IP \(bu 2
  236660. ffffede412 better change reporting for postgres_user groups
  236661. .UNINDENT
  236662. .IP \(bu 2
  236663. \fBISSUE\fP \fI\%#27703\fP: (\fI\%ryan\-lane\fP) git.latest seems to ignore the user argument in 2015.8 (refs: \fI\%#27799\fP)
  236664. .IP \(bu 2
  236665. \fBPR\fP \fI\%#27799\fP: (\fI\%terminalmage\fP) Fix usage of identity file in git.latest
  236666. @ \fI2015\-10\-08 23:36:19 UTC\fP
  236667. .INDENT 2.0
  236668. .IP \(bu 2
  236669. 5420006209 Merge pull request \fI\%#27799\fP from terminalmage/issue27703
  236670. .IP \(bu 2
  236671. 75d2b07b0c Pass user in calls to git.rev_parse
  236672. .IP \(bu 2
  236673. 786786a245 Fix wrong argument name for _git_run()
  236674. .UNINDENT
  236675. .IP \(bu 2
  236676. \fBPR\fP \fI\%#27717\fP: (\fI\%pass\-by\-value\fP) Proxy beacon example
  236677. @ \fI2015\-10\-08 22:58:49 UTC\fP
  236678. .INDENT 2.0
  236679. .IP \(bu 2
  236680. 0533a2b1dd Merge pull request \fI\%#27717\fP from pass\-by\-value/proxy_beacon_example
  236681. .IP \(bu 2
  236682. cac3da1ffa Fix pylint error
  236683. .IP \(bu 2
  236684. 7fef5ea08c Make a call to beacon end point
  236685. .IP \(bu 2
  236686. 497f965c33 Comment
  236687. .IP \(bu 2
  236688. 8ad7082913 Add example beacon that works with salt\-proxy
  236689. .UNINDENT
  236690. .IP \(bu 2
  236691. \fBPR\fP \fI\%#27793\fP: (\fI\%anlutro\fP) update code that changes log level of salt\-ssh shim command
  236692. @ \fI2015\-10\-08 19:20:12 UTC\fP
  236693. .INDENT 2.0
  236694. .IP \(bu 2
  236695. dd9dba8f59 Merge pull request \fI\%#27793\fP from alprs/fix\-salt_ssh_b64_log
  236696. .IP \(bu 2
  236697. 2597d13fc8 update code that changes log level of salt\-ssh shim command
  236698. .UNINDENT
  236699. .IP \(bu 2
  236700. \fBISSUE\fP \fI\%#27714\fP: (\fI\%The\-Loeki\fP) 2015.8 git_pillar merge inconsistency/bug (refs: \fI\%#27761\fP)
  236701. .IP \(bu 2
  236702. \fBPR\fP \fI\%#27761\fP: (\fI\%terminalmage\fP) Merge git pillar data instead of using dict.update()
  236703. @ \fI2015\-10\-08 15:00:18 UTC\fP
  236704. .INDENT 2.0
  236705. .IP \(bu 2
  236706. bccb74ffc5 Merge pull request \fI\%#27761\fP from terminalmage/issue27714
  236707. .IP \(bu 2
  236708. d149095bb0 Merge git pillar data instead of using dict.update()
  236709. .UNINDENT
  236710. .IP \(bu 2
  236711. \fBPR\fP \fI\%#27741\fP: (\fI\%ticosax\fP) [dockerng] pass filters argument to dockerng.ps
  236712. @ \fI2015\-10\-08 03:40:14 UTC\fP
  236713. .INDENT 2.0
  236714. .IP \(bu 2
  236715. 2ae7ada3c9 Merge pull request \fI\%#27741\fP from ticosax/docker.containers\-filters
  236716. .IP \(bu 2
  236717. 821ed72f37 pass filters argument to dockerng.ps
  236718. .UNINDENT
  236719. .IP \(bu 2
  236720. \fBPR\fP \fI\%#27760\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  236721. @ \fI2015\-10\-07 19:11:17 UTC\fP
  236722. .INDENT 2.0
  236723. .IP \(bu 2
  236724. 82a51cebde Merge pull request \fI\%#27760\fP from basepi/merge\-forward\-2015.8
  236725. .IP \(bu 2
  236726. 35425b14ad Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  236727. .IP \(bu 2
  236728. b2937b6a16 Merge pull request \fI\%#27759\fP from basepi/merge\-forward\-2015.5
  236729. .INDENT 2.0
  236730. .IP \(bu 2
  236731. 792ee084bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  236732. .IP \(bu 2
  236733. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  236734. .IP \(bu 2
  236735. 563db71bfd Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  236736. .UNINDENT
  236737. .IP \(bu 2
  236738. 4b9128b491 Merge pull request \fI\%#27732\fP from jacobhammons/26673
  236739. .INDENT 2.0
  236740. .IP \(bu 2
  236741. 75cc07cf10 noted that __virtual__ can return False and an error string
  236742. .IP \(bu 2
  236743. b928e1afa8 update docs for __virtual__ and __virtualname__ Refs \fI\%#26673\fP
  236744. .UNINDENT
  236745. .IP \(bu 2
  236746. a130896d1c Merge pull request \fI\%#27747\fP from Sacro/fix\-chocolatey\-version
  236747. .INDENT 2.0
  236748. .IP \(bu 2
  236749. 8f1fa9e78e Chocolatey doesn\(aqt have a help command.
  236750. .UNINDENT
  236751. .IP \(bu 2
  236752. 4e48651de0 Merge pull request \fI\%#27733\fP from jacobhammons/bug\-fixes
  236753. .INDENT 2.0
  236754. .IP \(bu 2
  236755. cbecd4f553 Updated saltstack2 theme to add SaltConf16 banner
  236756. .IP \(bu 2
  236757. 117e0c2bcc Added hardening topic based on the information in Refs \fI\%#27088\fP
  236758. .UNINDENT
  236759. .IP \(bu 2
  236760. c58da846bf Merge pull request \fI\%#27706\fP from jacobhammons/bug\-fixes
  236761. .INDENT 2.0
  236762. .IP \(bu 2
  236763. 76dc8de71b Assorted doc bugs Refs \fI\%#9051\fP Refs \fI\%#13407\fP Refs \fI\%#21475\fP Refs \fI\%#14876\fP Refs \fI\%#27005\fP
  236764. .UNINDENT
  236765. .IP \(bu 2
  236766. 43fba89865 Merge pull request \fI\%#27695\fP from rallytime/bp\-27671
  236767. .INDENT 2.0
  236768. .IP \(bu 2
  236769. 2a88028595 Added skip test_ext_pillar_env_mapping if git module does not exist.
  236770. .UNINDENT
  236771. .IP \(bu 2
  236772. cb3d92676e Merge pull request \fI\%#27524\fP from jfindlay/pkgng_quiet
  236773. .INDENT 2.0
  236774. .IP \(bu 2
  236775. 5e9107b970 parse pkgng output in quiet mode for >= 1.6.0
  236776. .UNINDENT
  236777. .IP \(bu 2
  236778. 5b88c55cc3 Merge pull request \fI\%#27686\fP from rallytime/bp\-27476
  236779. .INDENT 2.0
  236780. .IP \(bu 2
  236781. 3e08d3de8a fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP
  236782. .UNINDENT
  236783. .IP \(bu 2
  236784. f9ddd4647f Merge pull request \fI\%#27684\fP from rallytime/bp\-27656
  236785. .INDENT 2.0
  236786. .IP \(bu 2
  236787. d3780cba00 Fix \fI\%#27655\fP: handling of success in postgres_local_cache
  236788. .UNINDENT
  236789. .IP \(bu 2
  236790. 7ca6f854ff Merge pull request \fI\%#27683\fP from rallytime/bp\-27659
  236791. .INDENT 2.0
  236792. .IP \(bu 2
  236793. 84b6ee0c58 .pub as public key is what we should send to remote
  236794. .UNINDENT
  236795. .IP \(bu 2
  236796. a0f3e34656 Merge pull request \fI\%#27682\fP from rallytime/bp\-27566
  236797. .INDENT 2.0
  236798. .IP \(bu 2
  236799. 2a44255748 minor: fix/format doc for returners.local_cache.prep_jid
  236800. .IP \(bu 2
  236801. fd485e2396 returners.local_cache: fix endless loop on OSError
  236802. .UNINDENT
  236803. .IP \(bu 2
  236804. 0b9ba911c4 Merge pull request \fI\%#27681\fP from rallytime/bp\-25928
  236805. .INDENT 2.0
  236806. .IP \(bu 2
  236807. 17e1ddf137 Fix stacktrace for non\-existant states
  236808. .UNINDENT
  236809. .IP \(bu 2
  236810. 23da0d316a Merge pull request \fI\%#27680\fP from rallytime/bp\-27535
  236811. .INDENT 2.0
  236812. .IP \(bu 2
  236813. 04aed5e105 Versionadded change since 2015.5.6 has already been tagged
  236814. .IP \(bu 2
  236815. 579f2646ba .. versionadded:: 2015.5.6
  236816. .IP \(bu 2
  236817. cbaf46e066 python <2.7 compability (pylint issue)
  236818. .IP \(bu 2
  236819. ecde499478 s/bin/b to avoid confusion with bin()
  236820. .IP \(bu 2
  236821. 4237c5db80 add a __virtual__ to check that daemontools is installed properly
  236822. .IP \(bu 2
  236823. 623935a1bc fix doc
  236824. .IP \(bu 2
  236825. 573de3abd6 fix pylint issue
  236826. .IP \(bu 2
  236827. 5eb6a30d40 fix pep8 issues
  236828. .IP \(bu 2
  236829. 298cf4f5c0 import missing logging module
  236830. .IP \(bu 2
  236831. fe0ad36609 log was missing
  236832. .IP \(bu 2
  236833. e457083465 s/systemd/FreeBSD
  236834. .IP \(bu 2
  236835. 3512712e89 forgot service name..
  236836. .IP \(bu 2
  236837. 8f193a7bcc fixes \fI\%#27505\fP
  236838. .UNINDENT
  236839. .IP \(bu 2
  236840. 7d7b97eab6 Merge pull request \fI\%#27442\fP from JaseFace/fix\-27391\-for\-2015.5
  236841. .INDENT 2.0
  236842. .IP \(bu 2
  236843. bfbf63e1cc Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  236844. .UNINDENT
  236845. .IP \(bu 2
  236846. ccbba8656b Merge pull request \fI\%#27641\fP from rallytime/gate\-psutil\-diskusage
  236847. .INDENT 2.0
  236848. .IP \(bu 2
  236849. da2d93a3dd Gate the psutil import and add depends doc for diskusage beacon
  236850. .UNINDENT
  236851. .IP \(bu 2
  236852. 09183994f9 Merge pull request \fI\%#27644\fP from rallytime/bp\-27640
  236853. .INDENT 2.0
  236854. .IP \(bu 2
  236855. a9063a9745 fix typo in default pillar path
  236856. .UNINDENT
  236857. .IP \(bu 2
  236858. 27fcecccbe Merge pull request \fI\%#27612\fP from rallytime/fix\-27609
  236859. .INDENT 2.0
  236860. .IP \(bu 2
  236861. 8dc047dc18 If external_up is set to None, don\(aqt stacktrace, just use the private ip.
  236862. .IP \(bu 2
  236863. 2ebf790f9f [salt\-cloud] gce: don\(aqt stacktrace if Ephemeral is given instead of ephemeral
  236864. .UNINDENT
  236865. .IP \(bu 2
  236866. c84a1edc1b Merge pull request \fI\%#27568\fP from jacobhammons/man\-pages\-five
  236867. .INDENT 2.0
  236868. .IP \(bu 2
  236869. b59c03d20d regenerated man pages
  236870. .UNINDENT
  236871. .IP \(bu 2
  236872. 304dc68f7f Merge pull request \fI\%#27582\fP from jfindlay/2015.5
  236873. .INDENT 2.0
  236874. .IP \(bu 2
  236875. 4f0d55cda6 add 2015.5.6 release notes
  236876. .UNINDENT
  236877. .IP \(bu 2
  236878. 7201ce71e4 Merge pull request \fI\%#27557\fP from jfindlay/mine_doc
  236879. .INDENT 2.0
  236880. .IP \(bu 2
  236881. 3727d79bad edit mine doc for style and markup
  236882. .IP \(bu 2
  236883. 7e037a4666 add doc motivating mine vs grains
  236884. .UNINDENT
  236885. .IP \(bu 2
  236886. 59c3d5f93e Merge pull request \fI\%#27515\fP from jfindlay/suse_fire
  236887. .INDENT 2.0
  236888. .IP \(bu 2
  236889. 4460ad2785 save iptables rules on SuSE
  236890. .UNINDENT
  236891. .IP \(bu 2
  236892. 9b26357b19 Merge pull request \fI\%#27509\fP from jfindlay/gluster_reason
  236893. .INDENT 2.0
  236894. .IP \(bu 2
  236895. 1ccda538d2 tell the user why the gluster module does not work
  236896. .UNINDENT
  236897. .IP \(bu 2
  236898. 989733ea86 Merge pull request \fI\%#27379\fP from jfindlay/pip_vars
  236899. .IP \(bu 2
  236900. aee51ffdef document and check dict type for pip env_vars
  236901. .UNINDENT
  236902. .IP \(bu 2
  236903. \fBISSUE\fP \fI\%#27643\fP: (\fI\%blueyed\fP) Please document extended return values of __virtual__ (refs: \fI\%#27724\fP)
  236904. .IP \(bu 2
  236905. \fBISSUE\fP \fI\%#26755\fP: (\fI\%lorengordon\fP) Associate package dependencies to modules/states? (refs: \fI\%#27724\fP)
  236906. .IP \(bu 2
  236907. \fBPR\fP \fI\%#27757\fP: (\fI\%jfindlay\fP) fix virtual fcn return doc indentation
  236908. @ \fI2015\-10\-07 17:50:18 UTC\fP
  236909. .INDENT 2.0
  236910. .IP \(bu 2
  236911. \fBPR\fP \fI\%#27724\fP: (\fI\%jfindlay\fP) update __virtual__ return documentation (refs: \fI\%#27757\fP)
  236912. .IP \(bu 2
  236913. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous (refs: \fI\%#27724\fP)
  236914. .IP \(bu 2
  236915. aced4229cb Merge pull request \fI\%#27757\fP from jfindlay/virtret
  236916. .IP \(bu 2
  236917. 03400ef45b fix virtual fcn return doc indentation
  236918. .UNINDENT
  236919. .IP \(bu 2
  236920. \fBISSUE\fP \fI\%#27636\fP: (\fI\%brian\-bk\fP) Salt\-ssh cannot do simple state \(aqtest.nop\(aq: "\(aqtest.nop\(aq is not available." (refs: \fI\%#27754\fP)
  236921. .IP \(bu 2
  236922. \fBPR\fP \fI\%#27754\fP: (\fI\%rallytime\fP) Change test.nop version directive to 2015.8.1
  236923. @ \fI2015\-10\-07 15:59:55 UTC\fP
  236924. .INDENT 2.0
  236925. .IP \(bu 2
  236926. 57b5b594bd Merge pull request \fI\%#27754\fP from rallytime/fix\-27636
  236927. .IP \(bu 2
  236928. 31b9852d9a Change test.nop version directive to 2015.8.1
  236929. .UNINDENT
  236930. .IP \(bu 2
  236931. \fBPR\fP \fI\%#27734\fP: (\fI\%jacobhammons\fP) Updated saltstack2 theme to add SaltConf16 banner
  236932. @ \fI2015\-10\-07 01:43:53 UTC\fP
  236933. .INDENT 2.0
  236934. .IP \(bu 2
  236935. 9a0171089d Merge pull request \fI\%#27734\fP from jacobhammons/theme\-updates
  236936. .IP \(bu 2
  236937. 3a52d3606b Updated saltstack2 theme to add SaltConf16 banner
  236938. .UNINDENT
  236939. .IP \(bu 2
  236940. \fBISSUE\fP \fI\%#27595\fP: (\fI\%ralphvanetten\fP) Debian package does not depend on python\-m2crypto which is required by the x509 state/module (refs: \fI\%#27719\fP)
  236941. .IP \(bu 2
  236942. \fBPR\fP \fI\%#27727\fP: (\fI\%rallytime\fP) Merge \fI\%#27719\fP w/pylint fix
  236943. @ \fI2015\-10\-06 21:13:37 UTC\fP
  236944. .INDENT 2.0
  236945. .IP \(bu 2
  236946. \fBPR\fP \fI\%#27719\fP: (\fI\%jfindlay\fP) tell user when x509 exec/state module can\(aqt load (refs: \fI\%#27727\fP)
  236947. .IP \(bu 2
  236948. d3f2dfe835 Merge pull request \fI\%#27727\fP from rallytime/merge\-27719
  236949. .IP \(bu 2
  236950. a7fd156162 Pylint
  236951. .IP \(bu 2
  236952. 6bf2ee2751 tell user when x509 exec/state module can\(aqt load
  236953. .UNINDENT
  236954. .IP \(bu 2
  236955. \fBISSUE\fP \fI\%#27643\fP: (\fI\%blueyed\fP) Please document extended return values of __virtual__ (refs: \fI\%#27724\fP)
  236956. .IP \(bu 2
  236957. \fBISSUE\fP \fI\%#26755\fP: (\fI\%lorengordon\fP) Associate package dependencies to modules/states? (refs: \fI\%#27724\fP)
  236958. .IP \(bu 2
  236959. \fBPR\fP \fI\%#27724\fP: (\fI\%jfindlay\fP) update __virtual__ return documentation (refs: \fI\%#27757\fP)
  236960. @ \fI2015\-10\-06 21:06:47 UTC\fP
  236961. .INDENT 2.0
  236962. .IP \(bu 2
  236963. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous (refs: \fI\%#27724\fP)
  236964. .IP \(bu 2
  236965. f26bcd2d21 Merge pull request \fI\%#27724\fP from jfindlay/virtret
  236966. .IP \(bu 2
  236967. 6bddf80546 update __virtual__ return documentation
  236968. .UNINDENT
  236969. .IP \(bu 2
  236970. \fBISSUE\fP \fI\%#27481\fP: (\fI\%basepi\fP) Fix issues with cross\-calling states (refs: \fI\%#27725\fP)
  236971. .IP \(bu 2
  236972. \fBPR\fP \fI\%#27725\fP: (\fI\%basepi\fP) Fix global injection for state cross calls
  236973. @ \fI2015\-10\-06 21:02:15 UTC\fP
  236974. .INDENT 2.0
  236975. .IP \(bu 2
  236976. d67e8c5c2c Merge pull request \fI\%#27725\fP from basepi/states.cross.call.27481
  236977. .IP \(bu 2
  236978. e12269d871 Remove unused import
  236979. .IP \(bu 2
  236980. 4e6505b2e7 Return the wrapper (whoops)
  236981. .IP \(bu 2
  236982. fadb954676 Use new method for injecting globals into state functions
  236983. .IP \(bu 2
  236984. 17b267470a Add decorator for injecting globals into functions in the loader
  236985. .UNINDENT
  236986. .IP \(bu 2
  236987. \fBPR\fP \fI\%#27628\fP: (\fI\%ticosax\fP) [dockerng] Add support of \fIlabels\fP parameter for dockerng
  236988. @ \fI2015\-10\-06 13:58:40 UTC\fP
  236989. .INDENT 2.0
  236990. .IP \(bu 2
  236991. 06e67d25f8 Merge pull request \fI\%#27628\fP from ticosax/dockerng\-container\-label
  236992. .IP \(bu 2
  236993. edf625c8b4 Add support of \fIlabels\fP parameter for dockerng
  236994. .UNINDENT
  236995. .IP \(bu 2
  236996. \fBISSUE\fP \fI\%#26604\fP: (\fI\%ari\fP) Poor compound matcher documentation (2015.8 docs) (refs: \fI\%#27704\fP)
  236997. .IP \(bu 2
  236998. \fBPR\fP \fI\%#27704\fP: (\fI\%jacobhammons\fP) Update compound matcher docs to clarify the usage of alternate delimi…
  236999. @ \fI2015\-10\-06 05:36:55 UTC\fP
  237000. .INDENT 2.0
  237001. .IP \(bu 2
  237002. e47d849af6 Merge pull request \fI\%#27704\fP from jacobhammons/26604
  237003. .IP \(bu 2
  237004. 1c51ce28a9 Update compound matcher docs to clarify the usage of alternate delimiters Refs \fI\%#26604\fP
  237005. .UNINDENT
  237006. .IP \(bu 2
  237007. \fBPR\fP \fI\%#27705\fP: (\fI\%rallytime\fP) Merge \fI\%#27602\fP with final pylint fix
  237008. @ \fI2015\-10\-05 23:36:50 UTC\fP
  237009. .INDENT 2.0
  237010. .IP \(bu 2
  237011. \fBPR\fP \fI\%#27602\fP: (\fI\%blueyed\fP) dockerng: fix/enhance version warning in __virtual__ (refs: \fI\%#27705\fP)
  237012. .IP \(bu 2
  237013. 2491ce40f1 Merge pull request \fI\%#27705\fP from rallytime/merge\-27602
  237014. .IP \(bu 2
  237015. 81aad83386 Ignore import error
  237016. .IP \(bu 2
  237017. 561dc4cf94 dockerng: fix/enhance version warning in __virtual__
  237018. .UNINDENT
  237019. .IP \(bu 2
  237020. \fBISSUE\fP \fI\%#13850\fP: (\fI\%ryan\-lane\fP) s3:// urls in file.managed (and likely elsewhere) require s3.key and s3.keyid to be in minion config (refs: \fI\%#27691\fP)
  237021. .IP \(bu 2
  237022. \fBPR\fP \fI\%#27691\fP: (\fI\%notpeter\fP) Faster timeout (3s vs 2min) for instance metadata lookups. \fI\%#13850\fP\&.
  237023. @ \fI2015\-10\-05 22:55:52 UTC\fP
  237024. .INDENT 2.0
  237025. .IP \(bu 2
  237026. b76eb08c68 Merge pull request \fI\%#27691\fP from notpeter/iam_fail_faster
  237027. .IP \(bu 2
  237028. 3d9483b4e2 Faster timeout (3s vs 2min) for instance metadata lookups. \fI\%#13850\fP\&.
  237029. .UNINDENT
  237030. .IP \(bu 2
  237031. \fBPR\fP \fI\%#27696\fP: (\fI\%blueyed\fP) loader.proxy: call \fI_modules_dirs\fP only once
  237032. @ \fI2015\-10\-05 22:42:32 UTC\fP
  237033. .INDENT 2.0
  237034. .IP \(bu 2
  237035. fc78f49dc5 Merge pull request \fI\%#27696\fP from blueyed/load\-proxy\-call\-_module_dirs\-only\-once
  237036. .IP \(bu 2
  237037. 55a76be6c1 loader.proxy: call \fI_modules_dirs\fP only once
  237038. .UNINDENT
  237039. .IP \(bu 2
  237040. \fBPR\fP \fI\%#27630\fP: (\fI\%ticosax\fP) Expose container_id in mine.get_docker
  237041. @ \fI2015\-10\-05 21:56:53 UTC\fP
  237042. .INDENT 2.0
  237043. .IP \(bu 2
  237044. 77516912fa Merge pull request \fI\%#27630\fP from ticosax/include\-container\-id\-docker\-mine
  237045. .IP \(bu 2
  237046. 7293ded2f6 fixup! Expose container_id in mine.get_docker
  237047. .IP \(bu 2
  237048. 9e56a7e9db Expose container_id in mine.get_docker
  237049. .UNINDENT
  237050. .IP \(bu 2
  237051. \fBPR\fP \fI\%#27600\fP: (\fI\%blueyed\fP) dockerng: use docker.version=auto by default
  237052. @ \fI2015\-10\-05 21:29:14 UTC\fP
  237053. .INDENT 2.0
  237054. .IP \(bu 2
  237055. 8453cb3eb1 Merge pull request \fI\%#27600\fP from blueyed/dockerng\-auto\-version
  237056. .IP \(bu 2
  237057. 53c6e3b3de dockerng: use docker.version=auto by default
  237058. .UNINDENT
  237059. .IP \(bu 2
  237060. \fBPR\fP \fI\%#27689\fP: (\fI\%rallytime\fP) Merge \fI\%#27448\fP with test fixes
  237061. @ \fI2015\-10\-05 21:17:41 UTC\fP
  237062. .INDENT 2.0
  237063. .IP \(bu 2
  237064. \fBPR\fP \fI\%#27448\fP: (\fI\%JaseFace\fP) Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() (refs: \fI\%#27689\fP)
  237065. .IP \(bu 2
  237066. 7a4291008e Merge pull request \fI\%#27689\fP from rallytime/fix\-tests\-27448
  237067. .IP \(bu 2
  237068. 05a506ec9f Use correct comment in test
  237069. .IP \(bu 2
  237070. 8296fefb31 Merge \fI\%#27448\fP with test fixes
  237071. .IP \(bu 2
  237072. d9f5e9fd2f Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  237073. .UNINDENT
  237074. .IP \(bu 2
  237075. \fBISSUE\fP \fI\%#27520\fP: (\fI\%rmarcinik\fP) winrepo is unavailable in 2015.8 (refs: \fI\%#27616\fP, \fI\%#27693\fP)
  237076. .IP \(bu 2
  237077. \fBISSUE\fP \fI\%#23239\fP: (\fI\%cachedout\fP) [RFC] Deprecate ext_processses (refs: \fI\%#27693\fP)
  237078. .IP \(bu 2
  237079. \fBPR\fP \fI\%#27693\fP: (\fI\%jacobhammons\fP) initial engines topic, updates to windows repo docs
  237080. @ \fI2015\-10\-05 21:05:26 UTC\fP
  237081. .INDENT 2.0
  237082. .IP \(bu 2
  237083. 4ddc87157a Merge pull request \fI\%#27693\fP from jacobhammons/doc\-updates
  237084. .IP \(bu 2
  237085. 5a3e72fc8e __ops__ to __opts__
  237086. .IP \(bu 2
  237087. 5a9867aad1 initial engines topic, updates to windows repo docs Refs \fI\%#23239\fP Refs \fI\%#27520\fP
  237088. .UNINDENT
  237089. .IP \(bu 2
  237090. \fBPR\fP \fI\%#27601\fP: (\fI\%blueyed\fP) dockerng: handle None in container.Names
  237091. @ \fI2015\-10\-05 20:32:19 UTC\fP
  237092. .INDENT 2.0
  237093. .IP \(bu 2
  237094. f7f48d1eef Merge pull request \fI\%#27601\fP from blueyed/dockerng\-none\-names
  237095. .IP \(bu 2
  237096. b1442ac904 dockerng: handle None in container.Names
  237097. .UNINDENT
  237098. .IP \(bu 2
  237099. \fBPR\fP \fI\%#27596\fP: (\fI\%blueyed\fP) gitfs: fix UnboundLocalError for \(aqmsg\(aq
  237100. @ \fI2015\-10\-05 20:18:00 UTC\fP
  237101. .INDENT 2.0
  237102. .IP \(bu 2
  237103. 3ffb5a3369 Merge pull request \fI\%#27596\fP from blueyed/fix\-gitfs\-UnboundLocalError
  237104. .IP \(bu 2
  237105. e70cbda490 gitfs: fix UnboundLocalError for \(aqmsg\(aq
  237106. .UNINDENT
  237107. .IP \(bu 2
  237108. \fBPR\fP \fI\%#27651\fP: (\fI\%eliasp\fP) Check for existence of \(aqsubnetId\(aq key in subnet dict
  237109. @ \fI2015\-10\-05 17:01:34 UTC\fP
  237110. .INDENT 2.0
  237111. .IP \(bu 2
  237112. 4d7be3f972 Merge pull request \fI\%#27651\fP from eliasp/2015.8\-cloud.clouds.ec2\-check\-for\-subnetId\-before\-using\-it
  237113. .IP \(bu 2
  237114. f21a763809 Check for existence of \(aqsubnetId\(aq key in subnet dict
  237115. .UNINDENT
  237116. .IP \(bu 2
  237117. \fBISSUE\fP \fI\%#23370\fP: (\fI\%lisa2lisa\fP) salt artifactory.downloaded module ignore classifier (refs: \fI\%#27639\fP)
  237118. .IP \(bu 2
  237119. \fBPR\fP \fI\%#27639\fP: (\fI\%rallytime\fP) Docement version added for new artifactory options
  237120. @ \fI2015\-10\-05 17:01:21 UTC\fP
  237121. .INDENT 2.0
  237122. .IP \(bu 2
  237123. d9266505a7 Merge pull request \fI\%#27639\fP from rallytime/fix\-23370
  237124. .IP \(bu 2
  237125. 6de99bd5b7 Docement version added for new artifactory options
  237126. .UNINDENT
  237127. .IP \(bu 2
  237128. \fBPR\fP \fI\%#27677\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27675\fP to 2015.8
  237129. @ \fI2015\-10\-05 15:47:34 UTC\fP
  237130. .INDENT 2.0
  237131. .IP \(bu 2
  237132. \fBPR\fP \fI\%#27675\fP: (\fI\%avinassh\fP) Fix a typo (refs: \fI\%#27677\fP)
  237133. .IP \(bu 2
  237134. 771e5136f1 Merge pull request \fI\%#27677\fP from rallytime/bp\-27675
  237135. .IP \(bu 2
  237136. bfa0acfbfe Fix a typo
  237137. .UNINDENT
  237138. .IP \(bu 2
  237139. \fBPR\fP \fI\%#27637\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27604\fP to 2015.8
  237140. @ \fI2015\-10\-05 14:54:59 UTC\fP
  237141. .INDENT 2.0
  237142. .IP \(bu 2
  237143. \fBPR\fP \fI\%#27604\fP: (\fI\%plastikos\fP) Fix module path to SaltCacheError (refs: \fI\%#27637\fP)
  237144. .IP \(bu 2
  237145. 6bc5ddc561 Merge pull request \fI\%#27637\fP from rallytime/bp\-27604
  237146. .IP \(bu 2
  237147. 3d2ee4297d Fix module path to SaltCacheError
  237148. .UNINDENT
  237149. .IP \(bu 2
  237150. \fBISSUE\fP \fI\%#19291\fP: (\fI\%gfa\fP) pkg module could accept version: latest (refs: \fI\%#27657\fP)
  237151. .IP \(bu 2
  237152. \fBPR\fP \fI\%#27657\fP: (\fI\%garethgreenaway\fP) Fix to pkg state module
  237153. @ \fI2015\-10\-03 23:56:02 UTC\fP
  237154. .INDENT 2.0
  237155. .IP \(bu 2
  237156. 905acc6229 Merge pull request \fI\%#27657\fP from garethgreenaway/19291_pkg_state_latest_fix
  237157. .IP \(bu 2
  237158. c950527b24 When latest is passed in the state as the version to install, once the package is installed the state runs will fail. pkg.latest_version returned an empty string once the package is installed so we need to grab the installed version in that case to avoid passing an empty string to the pkg module in question.
  237159. .UNINDENT
  237160. .IP \(bu 2
  237161. \fBISSUE\fP \fI\%#27538\fP: (\fI\%lomeroe\fP) boto_iam is not passing parameters properly on a handful of function calls (refs: \fI\%#27539\fP)
  237162. .IP \(bu 2
  237163. \fBPR\fP \fI\%#27632\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27539\fP to 2015.8
  237164. @ \fI2015\-10\-02 19:28:39 UTC\fP
  237165. .INDENT 2.0
  237166. .IP \(bu 2
  237167. \fBPR\fP \fI\%#27539\fP: (\fI\%lomeroe\fP) boto_iam updates to function calls that were not passing arguments properly (refs: \fI\%#27632\fP)
  237168. .IP \(bu 2
  237169. 83ae6a1432 Merge pull request \fI\%#27632\fP from rallytime/bp\-27539
  237170. .IP \(bu 2
  237171. 2b0afd0230 Add versionadded to new path option
  237172. .IP \(bu 2
  237173. e54afed73a moving path kwarg to end of function definition
  237174. .UNINDENT
  237175. .IP \(bu 2
  237176. \fBISSUE\fP \fI\%#27545\fP: (\fI\%lomeroe\fP) boto_asg allow removing launch configuration with \(aqabsent\(aq state (refs: \fI\%#27546\fP)
  237177. .IP \(bu 2
  237178. \fBISSUE\fP \fI\%#27544\fP: (\fI\%lomeroe\fP) boto_asg state incorrectly processes return from boto_vpc.get_subnet_association (refs: \fI\%#27559\fP, \fI\%#27546\fP)
  237179. .IP \(bu 2
  237180. \fBPR\fP \fI\%#27633\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27559\fP to 2015.8
  237181. @ \fI2015\-10\-02 19:22:07 UTC\fP
  237182. .INDENT 2.0
  237183. .IP \(bu 2
  237184. \fBPR\fP \fI\%#27559\fP: (\fI\%lomeroe\fP) vpc_id fix for boto_vpc.get_subnet_association (refs: \fI\%#27633\fP)
  237185. .IP \(bu 2
  237186. \fBPR\fP \fI\%#27546\fP: (\fI\%lomeroe\fP) boto_asg state updates (refs: \fI\%#27559\fP)
  237187. .IP \(bu 2
  237188. 888e9bdf5d Merge pull request \fI\%#27633\fP from rallytime/bp\-27559
  237189. .IP \(bu 2
  237190. 3f03815ada rebasing
  237191. .UNINDENT
  237192. .IP \(bu 2
  237193. \fBISSUE\fP \fI\%#27463\fP: (\fI\%ryan\-lane\fP) boto_route53 module should default to region universal, rather then None (refs: \fI\%#27579\fP)
  237194. .IP \(bu 2
  237195. \fBPR\fP \fI\%#27579\fP: (\fI\%rallytime\fP) Change boto_route53 region default to \(aquniversal\(aq to avoid problems with boto library
  237196. @ \fI2015\-10\-02 18:56:17 UTC\fP
  237197. .INDENT 2.0
  237198. .IP \(bu 2
  237199. 8b7da5e469 Merge pull request \fI\%#27579\fP from rallytime/fix\-27463
  237200. .IP \(bu 2
  237201. d5956132ef Change boto_route53 region default to \(aquniversal\(aq to avoid problems with boto library
  237202. .UNINDENT
  237203. .IP \(bu 2
  237204. \fBPR\fP \fI\%#27581\fP: (\fI\%tkwilliams\fP) Add support for \(aqvpc_name\(aq tag in boto_secgroup module and state
  237205. @ \fI2015\-10\-02 15:40:40 UTC\fP
  237206. .INDENT 2.0
  237207. .IP \(bu 2
  237208. ce4c64a2e3 Merge pull request \fI\%#27581\fP from tkwilliams/boto_secgroup_add_vpc_name
  237209. .IP \(bu 2
  237210. 159cccf43f Faulty check logic around optional params
  237211. .IP \(bu 2
  237212. 84ab0bbd74 One last bug to squash. Seriously. It\(aqs the last one. Ever! \- fixed param vpc_id being passed where vpc_name was intended.
  237213. .IP \(bu 2
  237214. 002cbf5cde Grrr. Add back the import of SaltInvocationError that pylint wanted me to remove :)
  237215. .IP \(bu 2
  237216. 0671c0d8d9 Consolidate some redundant code \- thanks @ryan\-lane !
  237217. .IP \(bu 2
  237218. fae1199276 Followed @ryan\-lane\(aqs suggestion to remove duplicated code from boto_vpc and instead call into that module
  237219. .IP \(bu 2
  237220. 3a38a440b7 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into boto_secgroup_add_vpc_name
  237221. .IP \(bu 2
  237222. f7ef0bcd4c Fixups for picayune pylint pedantery :)
  237223. .IP \(bu 2
  237224. 35b66e28a3 Merge remote\-tracking branch \(aqupstream/2015.8\(aq into boto_secgroup_add_vpc_name
  237225. .IP \(bu 2
  237226. 6770f721f8 Add support for \(aqvpc_name\(aq tag in boto_secgroup module and state
  237227. .UNINDENT
  237228. .IP \(bu 2
  237229. \fBPR\fP \fI\%#27624\fP: (\fI\%nasenbaer13\fP) Wait for sync is not passed to boto_route53 state
  237230. @ \fI2015\-10\-02 15:37:44 UTC\fP
  237231. .INDENT 2.0
  237232. .IP \(bu 2
  237233. fb6f6b9ce4 Merge pull request \fI\%#27624\fP from eyj/fix_wait_for_sync
  237234. .IP \(bu 2
  237235. ed6a8c0aa6 Wait for sync is not passed to boto_route53 state
  237236. .UNINDENT
  237237. .IP \(bu 2
  237238. \fBPR\fP \fI\%#27614\fP: (\fI\%blueyed\fP) doc: minor fixes to doc and comments
  237239. @ \fI2015\-10\-02 15:34:02 UTC\fP
  237240. .INDENT 2.0
  237241. .IP \(bu 2
  237242. eb59cb8d1c Merge pull request \fI\%#27614\fP from blueyed/doc\-minor
  237243. .IP \(bu 2
  237244. 98a8c0f055 doc: minor fixes to doc and comments
  237245. .UNINDENT
  237246. .IP \(bu 2
  237247. \fBPR\fP \fI\%#27627\fP: (\fI\%eyj\fP) Fix crash in boto_asg.get_instances if the requested attribute is None
  237248. @ \fI2015\-10\-02 15:33:32 UTC\fP
  237249. .INDENT 2.0
  237250. .IP \(bu 2
  237251. 61f8a6f39f Merge pull request \fI\%#27627\fP from eyj/pr\-instance\-attribute
  237252. .IP \(bu 2
  237253. 03d7c6af3d Fix crash in boto_asg.get_instances if the requested attribute may be None
  237254. .UNINDENT
  237255. .IP \(bu 2
  237256. \fBISSUE\fP \fI\%#27549\fP: (\fI\%carlpett\fP) Document winrepo_remotes_ng (refs: \fI\%#27616\fP)
  237257. .IP \(bu 2
  237258. \fBISSUE\fP \fI\%#27520\fP: (\fI\%rmarcinik\fP) winrepo is unavailable in 2015.8 (refs: \fI\%#27616\fP, \fI\%#27693\fP)
  237259. .IP \(bu 2
  237260. \fBPR\fP \fI\%#27616\fP: (\fI\%jacobhammons\fP) Updated windows software repository docs
  237261. @ \fI2015\-10\-02 05:04:37 UTC\fP
  237262. .INDENT 2.0
  237263. .IP \(bu 2
  237264. 764d70af79 Merge pull request \fI\%#27616\fP from jacobhammons/win\-repo\-docs
  237265. .IP \(bu 2
  237266. 1c8b32ce26 Updated windows software repository docs
  237267. .UNINDENT
  237268. .IP \(bu 2
  237269. \fBISSUE\fP \fI\%#27543\fP: (\fI\%lomeroe\fP) boto_elb incorrectly processes return from boto_vpc.get_subnet_assocaition (refs: \fI\%#27569\fP)
  237270. .IP \(bu 2
  237271. \fBPR\fP \fI\%#27569\fP: (\fI\%lomeroe\fP) boto_vpc.get_subnet_association now returns a dict w/key of vpc_id, a…
  237272. @ \fI2015\-10\-01 16:03:06 UTC\fP
  237273. .INDENT 2.0
  237274. .IP \(bu 2
  237275. db963b7864 Merge pull request \fI\%#27569\fP from lomeroe/fix_boto_elb
  237276. .IP \(bu 2
  237277. ae09a0fb61 boto_vpc.get_subnet_association now returns a dict w/key of vpc_id, adding code to handle the dict now
  237278. .UNINDENT
  237279. .IP \(bu 2
  237280. \fBISSUE\fP \fI\%#25441\fP: (\fI\%ahammond\fP) modules.ps documentation missing (refs: \fI\%#27567\fP)
  237281. .IP \(bu 2
  237282. \fBPR\fP \fI\%#27567\fP: (\fI\%whiteinge\fP) Use getattr to fetch psutil.version_info
  237283. @ \fI2015\-10\-01 15:39:59 UTC\fP
  237284. .INDENT 2.0
  237285. .IP \(bu 2
  237286. b269cd4754 Merge pull request \fI\%#27567\fP from whiteinge/psutil\-version\-fix
  237287. .IP \(bu 2
  237288. 7ebe9acc44 Use getattr to fetch psutil.version_info
  237289. .UNINDENT
  237290. .IP \(bu 2
  237291. \fBPR\fP \fI\%#27583\fP: (\fI\%tkwilliams\fP) Fixup zypper module
  237292. @ \fI2015\-10\-01 15:38:53 UTC\fP
  237293. .INDENT 2.0
  237294. .IP \(bu 2
  237295. 9cc69e2440 Merge pull request \fI\%#27583\fP from tkwilliams/fix_zypper
  237296. .IP \(bu 2
  237297. cdd44e4128 Fixup zypper module \- expected return type of pkg.latest was changed without updating zypper module \- unchecked list deref fixed \- "zypper info \-t" out\-of\-date status field format has changed
  237298. .UNINDENT
  237299. .IP \(bu 2
  237300. \fBPR\fP \fI\%#27597\fP: (\fI\%blueyed\fP) gitfs: remove unused variable "bad_per_remote_conf"
  237301. @ \fI2015\-10\-01 15:38:15 UTC\fP
  237302. .INDENT 2.0
  237303. .IP \(bu 2
  237304. 5ca7e72c70 Merge pull request \fI\%#27597\fP from blueyed/gitfs\-remove\-unused\-bad_per_remote_conf
  237305. .IP \(bu 2
  237306. 58af4d68f0 gitfs: remove unused variable "bad_per_remote_conf"
  237307. .UNINDENT
  237308. .IP \(bu 2
  237309. \fBPR\fP \fI\%#27585\fP: (\fI\%ryan\-lane\fP) Fix undefined variable in cron state module
  237310. @ \fI2015\-10\-01 05:05:58 UTC\fP
  237311. .INDENT 2.0
  237312. .IP \(bu 2
  237313. 9805bdeddf Merge pull request \fI\%#27585\fP from lyft/cron\-fix
  237314. .IP \(bu 2
  237315. 5474666b61 Fix undefined variable in cron state module
  237316. .UNINDENT
  237317. .UNINDENT
  237318. .SS Salt 2015.8.3 Release Notes
  237319. .sp
  237320. Version 2015.8.3 is a bugfix release for 2015.8.0\&.
  237321. .SS Statistics
  237322. .INDENT 0.0
  237323. .IP \(bu 2
  237324. Total Merges: \fB74\fP
  237325. .IP \(bu 2
  237326. Total Issue References: \fB26\fP
  237327. .IP \(bu 2
  237328. Total PR References: \fB64\fP
  237329. .IP \(bu 2
  237330. Contributors: \fB30\fP (\fI\%DmitryKuzmenko\fP, \fI\%RealKelsar\fP, \fI\%alexproca\fP, \fI\%anlutro\fP, \fI\%basepi\fP, \fI\%bogdanr\fP, \fI\%cachedout\fP, \fI\%cedwards\fP, \fI\%chrigl\fP, \fI\%cro\fP, \fI\%fcrozat\fP, \fI\%gtmanfred\fP, \fI\%isbm\fP, \fI\%jfindlay\fP, \fI\%kiorky\fP, \fI\%kt97679\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%mhoogendoorn\fP, \fI\%nmadhok\fP, \fI\%optix2000\fP, \fI\%paulnivin\fP, \fI\%quantonganh\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%schwing\fP, \fI\%sjorge\fP, \fI\%tampakrap\fP, \fI\%terminalmage\fP, \fI\%ticosax\fP)
  237331. .UNINDENT
  237332. .SS Security Fix
  237333. .sp
  237334. \fBCVE\-2015\-8034\fP Saving \fBstate.sls\fP cache
  237335. data to disk with insecure permissions
  237336. .sp
  237337. This affects users of the \fBstate.sls\fP
  237338. function. The state run cache on the minion was being created with incorrect
  237339. permissions. This file could potentially contain sensitive data that was
  237340. inserted via jinja into the state SLS files. The permissions for this file are
  237341. now being set correctly. Thanks to \fI\%zmalone\fP for bringing this issue to our
  237342. attention.
  237343. .SS Changelog for v2015.8.2..v2015.8.3
  237344. .sp
  237345. \fIGenerated at: 2018\-05\-27 23:24:21 UTC\fP
  237346. .INDENT 0.0
  237347. .IP \(bu 2
  237348. \fBPR\fP \fI\%#29173\fP: (\fI\%jfindlay\fP) add 2015.8.3 release notes
  237349. @ \fI2015\-11\-25 00:07:51 UTC\fP
  237350. .INDENT 2.0
  237351. .IP \(bu 2
  237352. 345206b68e Merge pull request \fI\%#29173\fP from jfindlay/2015.8
  237353. .IP \(bu 2
  237354. 212f7dd281 add 2015.8.3 release notes
  237355. .IP \(bu 2
  237356. cafbb49cb6 add note on 2015.8.2 release notes
  237357. .UNINDENT
  237358. .IP \(bu 2
  237359. \fBPR\fP \fI\%#29172\fP: (\fI\%basepi\fP) [2015.8] Backport new philips_hue proxy features from develop
  237360. @ \fI2015\-11\-24 23:52:55 UTC\fP
  237361. .INDENT 2.0
  237362. .IP \(bu 2
  237363. 5e88e9e9c0 Merge pull request \fI\%#29172\fP from basepi/philips_backport
  237364. .IP \(bu 2
  237365. 1df6c3083b Backport new philips_hue proxy features from develop
  237366. .UNINDENT
  237367. .IP \(bu 2
  237368. \fBPR\fP \fI\%#29167\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237369. @ \fI2015\-11\-24 21:40:34 UTC\fP
  237370. .INDENT 2.0
  237371. .IP \(bu 2
  237372. 2fb1ca0eac Merge pull request \fI\%#29167\fP from basepi/merge\-forward\-2015.8
  237373. .IP \(bu 2
  237374. 525f9fbbbb Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237375. .IP \(bu 2
  237376. a26c10a811 Merge pull request \fI\%#29164\fP from jfindlay/bp\-29113
  237377. .INDENT 2.0
  237378. .IP \(bu 2
  237379. 50fab35188 kill unneeded import
  237380. .UNINDENT
  237381. .IP \(bu 2
  237382. 4f03196e7d Merge pull request \fI\%#29138\fP from jfindlay/2015.5
  237383. .INDENT 2.0
  237384. .IP \(bu 2
  237385. be045f5cb1 add 2015.5.8 release notes
  237386. .UNINDENT
  237387. .UNINDENT
  237388. .IP \(bu 2
  237389. \fBPR\fP \fI\%#29141\fP: (\fI\%optix2000\fP) Add test case for require: sls with only import statements
  237390. @ \fI2015\-11\-24 16:17:57 UTC\fP
  237391. .INDENT 2.0
  237392. .IP \(bu 2
  237393. 68d6c454b8 Merge pull request \fI\%#29141\fP from optix2000/full_sls_import
  237394. .IP \(bu 2
  237395. 596843e8d6 Add test case for sls with only import Tests \fI\%https://github.com/saltstack/salt/issues/10852\fP
  237396. .UNINDENT
  237397. .IP \(bu 2
  237398. \fBISSUE\fP \fI\%#29015\fP: (\fI\%jakehilton\fP) git_pillar not honoring git_pillar_base (refs: \fI\%#29072\fP)
  237399. .IP \(bu 2
  237400. \fBISSUE\fP \fI\%#28311\fP: (\fI\%strocknar\fP) git_pillar conflicts (refs: \fI\%#29072\fP)
  237401. .IP \(bu 2
  237402. \fBISSUE\fP \fI\%#27432\fP: (\fI\%mafrosis\fP) Using specific tag as GitFS remote (refs: \fI\%#29072\fP)
  237403. .IP \(bu 2
  237404. \fBPR\fP \fI\%#29072\fP: (\fI\%terminalmage\fP) Several gitfs/git_pillar fixes
  237405. @ \fI2015\-11\-24 16:04:39 UTC\fP
  237406. .INDENT 2.0
  237407. .IP \(bu 2
  237408. 732f5364a2 Merge pull request \fI\%#29072\fP from terminalmage/issue28311
  237409. .IP \(bu 2
  237410. dae738fda3 Use common code to detect envs
  237411. .IP \(bu 2
  237412. a9c0cacb77 Don\(aqt add head ref if head red matches desired ref
  237413. .IP \(bu 2
  237414. e7540e956b pygit2: Don\(aqt clean local heads along with stale remote refs
  237415. .IP \(bu 2
  237416. 1e6c46f554 pygit2: Properly resolve base saltenv from tag ref
  237417. .IP \(bu 2
  237418. 0c592ab552 Support string whitelist/blacklist
  237419. .IP \(bu 2
  237420. 744487864d Fix base branch detection for git_pillar
  237421. .IP \(bu 2
  237422. 1cd9a4d1b4 Add some debug logging for git_pillar
  237423. .IP \(bu 2
  237424. fac588c0bb Add HEAD ref in git_pillar/winrepo checkout
  237425. .UNINDENT
  237426. .IP \(bu 2
  237427. \fBPR\fP \fI\%#29118\fP: (\fI\%ticosax\fP) [dockerng] Add networking capabilities
  237428. @ \fI2015\-11\-24 15:47:36 UTC\fP
  237429. .INDENT 2.0
  237430. .IP \(bu 2
  237431. 95689ee1a4 Merge pull request \fI\%#29118\fP from ticosax/dockerng\-network
  237432. .IP \(bu 2
  237433. e98d18ba41 Expose docker networking as state
  237434. .IP \(bu 2
  237435. 94135d91c3 cosmetic
  237436. .IP \(bu 2
  237437. 17ff5c1ab5 Add expose networking to modules.dockerng
  237438. .UNINDENT
  237439. .IP \(bu 2
  237440. \fBISSUE\fP \fI\%#29144\fP: (\fI\%anlutro\fP) Error in fileclient with file.managed (refs: \fI\%#29145\fP)
  237441. .IP \(bu 2
  237442. \fBPR\fP \fI\%#29145\fP: (\fI\%anlutro\fP) Remove duplicate import of salt.utils.s3
  237443. @ \fI2015\-11\-24 15:36:05 UTC\fP
  237444. .INDENT 2.0
  237445. .IP \(bu 2
  237446. 4b4f212d2d Merge pull request \fI\%#29145\fP from alprs/fix\-duplicate_import
  237447. .IP \(bu 2
  237448. e1101bea19 Remove duplicate import of salt.utils.s3
  237449. .UNINDENT
  237450. .IP \(bu 2
  237451. \fBISSUE\fP \fI\%#29147\fP: (\fI\%lomeroe\fP) boto_route53 unexpected keyword arguments in create_zone() (refs: \fI\%#29148\fP)
  237452. .IP \(bu 2
  237453. \fBPR\fP \fI\%#29148\fP: (\fI\%lomeroe\fP) correcting parameter calls to boto get_zone/create_zone functions in …
  237454. @ \fI2015\-11\-24 15:33:53 UTC\fP
  237455. .INDENT 2.0
  237456. .IP \(bu 2
  237457. 6079569580 Merge pull request \fI\%#29148\fP from lomeroe/boto_route53_create_zone_fix\-backport
  237458. .IP \(bu 2
  237459. 75408ccf99 correcting parameter calls to boto get_zone/create_zone functions in create_zone parameter check on create_zone on private_zone=True add boto version requirement
  237460. .UNINDENT
  237461. .IP \(bu 2
  237462. \fBISSUE\fP \fI\%#29107\fP: (\fI\%lorengordon\fP) Salt hangs when passing a string representation as the \fIlength\fP parameter to \fIrandom.get_str()\fP (refs: \fI\%#29108\fP)
  237463. .IP \(bu 2
  237464. \fBPR\fP \fI\%#29108\fP: (\fI\%lorengordon\fP) Enforce length as an int, fixes \fI\%#29107\fP
  237465. @ \fI2015\-11\-23 19:06:52 UTC\fP
  237466. .INDENT 2.0
  237467. .IP \(bu 2
  237468. 17638c734b Merge pull request \fI\%#29108\fP from lorengordon/type\-enforce\-length
  237469. .IP \(bu 2
  237470. c71825d3b0 Enforce length as an int, fixes \fI\%#29107\fP
  237471. .UNINDENT
  237472. .IP \(bu 2
  237473. \fBPR\fP \fI\%#29125\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237474. @ \fI2015\-11\-23 18:48:46 UTC\fP
  237475. .INDENT 2.0
  237476. .IP \(bu 2
  237477. 233ab8a474 Merge pull request \fI\%#29125\fP from basepi/merge\-forward\-2015.8
  237478. .IP \(bu 2
  237479. 1432cc806d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237480. .INDENT 2.0
  237481. .IP \(bu 2
  237482. 219367a23d Merge pull request \fI\%#29128\fP from cachedout/tweak_29122
  237483. .INDENT 2.0
  237484. .IP \(bu 2
  237485. b08858b040 Missed check
  237486. .IP \(bu 2
  237487. 584efe81ee Set a safer default value for ret in saltmod
  237488. .UNINDENT
  237489. .UNINDENT
  237490. .IP \(bu 2
  237491. 8d86bc3056 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237492. .INDENT 2.0
  237493. .IP \(bu 2
  237494. 2250a36647 Merge pull request \fI\%#29122\fP from cachedout/issue_29110
  237495. .INDENT 2.0
  237496. .IP \(bu 2
  237497. 4b9302d794 Fix broken state orchestration
  237498. .UNINDENT
  237499. .IP \(bu 2
  237500. 200e771efb Merge pull request \fI\%#29096\fP from rallytime/bp\-29093
  237501. .INDENT 2.0
  237502. .IP \(bu 2
  237503. f5734423a4 Compare gem versions as a string.
  237504. .UNINDENT
  237505. .IP \(bu 2
  237506. d8a2018bc8 Merge pull request \fI\%#29084\fP from rallytime/bp\-29055
  237507. .INDENT 2.0
  237508. .IP \(bu 2
  237509. 52e650aed9 Add section to style guide
  237510. .UNINDENT
  237511. .IP \(bu 2
  237512. b5cff1a351 Merge pull request \fI\%#29083\fP from rallytime/bp\-29053
  237513. .INDENT 2.0
  237514. .IP \(bu 2
  237515. f1884de0e7 Update rabbitmq_user.py
  237516. .UNINDENT
  237517. .IP \(bu 2
  237518. b3e3bebef0 Merge pull request \fI\%#28932\fP from twangboy/fix_28928
  237519. .INDENT 2.0
  237520. .IP \(bu 2
  237521. 0653a04887 Fixed user.present / user.absent in windows
  237522. .UNINDENT
  237523. .IP \(bu 2
  237524. a2e4a227e0 Merge pull request \fI\%#29011\fP from rallytime/bp\-28630
  237525. .INDENT 2.0
  237526. .IP \(bu 2
  237527. 7baccc1b05 Lint \- newline before def
  237528. .IP \(bu 2
  237529. 9e5c16d4da Reading S3 credentials from Pillar
  237530. .IP \(bu 2
  237531. a3216f813d Fixed requests HTTPError handler, it was still in urllib2 style
  237532. .UNINDENT
  237533. .IP \(bu 2
  237534. 1a4cd6002f Merge pull request \fI\%#28982\fP from basepi/merge\-forward\-2015.5
  237535. .INDENT 2.0
  237536. .IP \(bu 2
  237537. bfbb109fbd Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  237538. .IP \(bu 2
  237539. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  237540. .IP \(bu 2
  237541. 215b26c06f Revert \fI\%#28740\fP
  237542. .UNINDENT
  237543. .UNINDENT
  237544. .UNINDENT
  237545. .IP \(bu 2
  237546. \fBISSUE\fP \fI\%#29005\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-call call in salt\-ssh (refs: \fI\%#29126\fP)
  237547. .IP \(bu 2
  237548. \fBISSUE\fP \fI\%#28830\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-ssh deployement (refs: \fI\%#29126\fP)
  237549. .IP \(bu 2
  237550. \fBPR\fP \fI\%#29126\fP: (\fI\%fcrozat\fP) Fix deployment when umask is non\-standard
  237551. @ \fI2015\-11\-23 17:53:46 UTC\fP
  237552. .INDENT 2.0
  237553. .IP \(bu 2
  237554. dc0d47fa2e Merge pull request \fI\%#29126\fP from fcrozat/2015.8
  237555. .IP \(bu 2
  237556. 4da11a5f3c Fix deployment when umask is non\-standard. Fixes \fI\%#29005\fP
  237557. .IP \(bu 2
  237558. bbccb752f9 Fix deployment when umask is non\-standard. Fixes \fI\%#28830\fP
  237559. .UNINDENT
  237560. .IP \(bu 2
  237561. \fBPR\fP \fI\%#29124\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28130\fP to 2015.8
  237562. @ \fI2015\-11\-23 17:31:00 UTC\fP
  237563. .INDENT 2.0
  237564. .IP \(bu 2
  237565. \fBPR\fP \fI\%#29120\fP: (\fI\%alexproca\fP) Import keypair (refs: \fI\%#29124\fP)
  237566. .IP \(bu 2
  237567. \fBPR\fP \fI\%#28130\fP: (\fI\%bogdanr\fP) Ec2 upload public key and updated instances size list (refs: \fI\%#29124\fP)
  237568. .IP \(bu 2
  237569. 994d8bd71a Merge pull request \fI\%#29124\fP from rallytime/bp\-28130
  237570. .IP \(bu 2
  237571. e290ea4a3f Pylint Fix
  237572. .IP \(bu 2
  237573. 9d8e5c8b4d Added missing comma
  237574. .IP \(bu 2
  237575. 4a7eee08a8 Documented import_keypair for the ec2 driver
  237576. .IP \(bu 2
  237577. 715c12014c Added a bunch of instance sizes and updated some outdated ones
  237578. .IP \(bu 2
  237579. 506ff01f65 Import public key
  237580. .UNINDENT
  237581. .IP \(bu 2
  237582. \fBPR\fP \fI\%#29076\fP: (\fI\%RealKelsar\fP) We can\(aqt query installed use flags for a non installed pkg
  237583. @ \fI2015\-11\-23 16:19:40 UTC\fP
  237584. .INDENT 2.0
  237585. .IP \(bu 2
  237586. d9c32011b4 Merge pull request \fI\%#29076\fP from RealKelsar/2015.8
  237587. .IP \(bu 2
  237588. f3d1ba1509 We can\(aqt query installed use flags for a non installed pkg. Also one if is enough...
  237589. .IP \(bu 2
  237590. 96566d3060 We can\(aqt query installed use flags for a non installed pkg
  237591. .UNINDENT
  237592. .IP \(bu 2
  237593. \fBISSUE\fP \fI\%#29100\fP: (\fI\%quantonganh\fP) boto_ec2.exists does not use region when checking? (refs: \fI\%#29070\fP)
  237594. .IP \(bu 2
  237595. \fBPR\fP \fI\%#29097\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29070\fP to 2015.8
  237596. @ \fI2015\-11\-22 17:03:04 UTC\fP
  237597. .INDENT 2.0
  237598. .IP \(bu 2
  237599. \fBPR\fP \fI\%#29070\fP: (\fI\%quantonganh\fP) boto_ec2: missing region when checking existence of an EC2 instance (refs: \fI\%#29097\fP)
  237600. .IP \(bu 2
  237601. 1931870f26 Merge pull request \fI\%#29097\fP from rallytime/bp\-29070
  237602. .IP \(bu 2
  237603. 3b202efadc boto_ec2: missing region when checking existence of an EC2 instance
  237604. .UNINDENT
  237605. .IP \(bu 2
  237606. \fBPR\fP \fI\%#29090\fP: (\fI\%gtmanfred\fP) clean up novaclient module
  237607. @ \fI2015\-11\-21 15:43:58 UTC\fP
  237608. .INDENT 2.0
  237609. .IP \(bu 2
  237610. bb28b9186b Merge pull request \fI\%#29090\fP from gtmanfred/2015.8
  237611. .IP \(bu 2
  237612. 2aab45f9d2 clean up novaclient module
  237613. .UNINDENT
  237614. .IP \(bu 2
  237615. \fBPR\fP \fI\%#29095\fP: (\fI\%terminalmage\fP) Add warning about pygit2 API instability
  237616. @ \fI2015\-11\-21 15:38:59 UTC\fP
  237617. .INDENT 2.0
  237618. .IP \(bu 2
  237619. 4ff54c6429 Merge pull request \fI\%#29095\fP from terminalmage/pygit2\-warning
  237620. .IP \(bu 2
  237621. 139f5ba4c3 Add warning about pygit2 API instability
  237622. .UNINDENT
  237623. .IP \(bu 2
  237624. \fBPR\fP \fI\%#28919\fP: (\fI\%cro\fP) Update Philips Hue proxy minion to support __proxy__ instead of proxymodule stored in __opts__
  237625. @ \fI2015\-11\-21 15:31:36 UTC\fP
  237626. .INDENT 2.0
  237627. .IP \(bu 2
  237628. 27160b0454 Merge pull request \fI\%#28919\fP from cro/hue_proxy_backport
  237629. .IP \(bu 2
  237630. 8823225c81 Add \(aqversionadded\(aq
  237631. .IP \(bu 2
  237632. 6bdf98d2c6 Backport philips_hue proxy module to 2015.8, use __proxy__ instead of opts[\(aqproxymodule\(aq]
  237633. .IP \(bu 2
  237634. 0945d3b5b2 Add the license
  237635. .IP \(bu 2
  237636. a8be2d7382 Fix the docstring
  237637. .IP \(bu 2
  237638. 13a8973f94 Validate if "requests" are around. NOTE: this will be changed soon!
  237639. .IP \(bu 2
  237640. 835e84181b Fix the documentation
  237641. .IP \(bu 2
  237642. 68accf6180 Allow view status from all lamps, if not specified
  237643. .IP \(bu 2
  237644. 96adc9cca9 Fix lint issues
  237645. .IP \(bu 2
  237646. cd00c5d99f Remove dead code
  237647. .IP \(bu 2
  237648. 6a08d2b6b5 Implement static grains for the Philips HUE
  237649. .IP \(bu 2
  237650. 5d3c3e09fc Bugfix: show all devices, if no specific IDs were passed
  237651. .IP \(bu 2
  237652. 76e86d2d7d Implement color temperature
  237653. .IP \(bu 2
  237654. a2d87a18cc Fix the documentation
  237655. .IP \(bu 2
  237656. adeecb49d4 Implement brightness
  237657. .IP \(bu 2
  237658. a2b1a71e01 Fix crash if the controller is down
  237659. .IP \(bu 2
  237660. a7d5aafbe3 Update documentation for the color settings
  237661. .IP \(bu 2
  237662. 15f83e180d Add more preset colors
  237663. .IP \(bu 2
  237664. 44339f3dc1 Impement color setter with transition
  237665. .IP \(bu 2
  237666. 0f4d5b9eac Implement effects method
  237667. .IP \(bu 2
  237668. f341910174 Implement alert function
  237669. .IP \(bu 2
  237670. e0c95b4c7f Separate device (lamps) getter
  237671. .IP \(bu 2
  237672. 37ed834a63 Implement lamp rename
  237673. .IP \(bu 2
  237674. 66b155c3db Enhance _set method so it can set more than just lights status
  237675. .IP \(bu 2
  237676. 8e94aad5c1 Enhance internal ping report on failures (device is not reachable)
  237677. .IP \(bu 2
  237678. 3bf79e6920 Implement blink function
  237679. .IP \(bu 2
  237680. 334371d660 Use blink on internal ping
  237681. .IP \(bu 2
  237682. a8e4c2162c Fix bug: call in a proper order, if all devices
  237683. .IP \(bu 2
  237684. a98d5187f8 Remove the debug
  237685. .IP \(bu 2
  237686. a1244223bf Enhance switch method
  237687. .IP \(bu 2
  237688. e902764e25 Switch all lamps if IDs are not passed
  237689. .IP \(bu 2
  237690. 1e508e9155 Fix bug: crash, if only one lamp ID is passed
  237691. .IP \(bu 2
  237692. c0e6706d9a Implement status
  237693. .IP \(bu 2
  237694. 6d8e6d6e23 Fix lint
  237695. .IP \(bu 2
  237696. db053fbd8b Add licence
  237697. .IP \(bu 2
  237698. 2abdb19934 Implement proxy minion configuration
  237699. .IP \(bu 2
  237700. 1a75be3f71 Cleanup code
  237701. .IP \(bu 2
  237702. 1a46a180bc Implement light switch ON/OFF
  237703. .IP \(bu 2
  237704. cc5ee382c5 Implement lights method.
  237705. .IP \(bu 2
  237706. bfbe4160b2 Add constants class\-struct
  237707. .IP \(bu 2
  237708. 7a8d72de3f Implement device state change
  237709. .IP \(bu 2
  237710. d769bc85a7 Implement available device listing
  237711. .IP \(bu 2
  237712. c9e7f4dc18 Cleanup code
  237713. .IP \(bu 2
  237714. 5503b6f20e Implement Philips HUE wrapper caller for Minion Proxy
  237715. .IP \(bu 2
  237716. 1b11d1ec74 Initial implementation of Philips HUE proxy
  237717. .UNINDENT
  237718. .IP \(bu 2
  237719. \fBISSUE\fP \fI\%#28810\fP: (\fI\%syedaali\fP) test.ping is not available (refs: \fI\%#29065\fP)
  237720. .IP \(bu 2
  237721. \fBISSUE\fP \fI\%#28761\fP: (\fI\%syedaali\fP) Numerous module import errors in /var/log/salt/minion (test,oracle,archive) (refs: \fI\%#29065\fP)
  237722. .IP \(bu 2
  237723. \fBISSUE\fP \fI\%#25756\fP: (\fI\%nshalman\fP) Esky builds on SmartOS broken in 2015.5 branch (refs: \fI\%#25946\fP, \fI\%#25923\fP)
  237724. .IP \(bu 2
  237725. \fBPR\fP \fI\%#29065\fP: (\fI\%cachedout\fP) Handle failures inside python\(aqs inspect if a module is reloaded
  237726. @ \fI2015\-11\-20 18:10:42 UTC\fP
  237727. .INDENT 2.0
  237728. .IP \(bu 2
  237729. \fBPR\fP \fI\%#25946\fP: (\fI\%sjorge\fP) Fix for salt.utils.decorators under esky (refs: \fI\%#29065\fP)
  237730. .IP \(bu 2
  237731. \fBPR\fP \fI\%#25923\fP: (\fI\%sjorge\fP) Fix for salt.utils.decorators and module.__name__ under esky (refs: \fI\%#25946\fP)
  237732. .IP \(bu 2
  237733. 88c0354c0c Merge pull request \fI\%#29065\fP from cachedout/issue_28810
  237734. .IP \(bu 2
  237735. 4767503eb2 Remove trailing whitespace
  237736. .IP \(bu 2
  237737. c5b667f048 Handle failures inside python\(aqs inspect if a module is reloaded
  237738. .UNINDENT
  237739. .IP \(bu 2
  237740. \fBPR\fP \fI\%#29057\fP: (\fI\%paulnivin\fP) Add local file support for file.managed source list
  237741. @ \fI2015\-11\-19 21:57:34 UTC\fP
  237742. .INDENT 2.0
  237743. .IP \(bu 2
  237744. 714ef8ff27 Merge pull request \fI\%#29057\fP from lyft/file\-manage\-local\-source\-list
  237745. .IP \(bu 2
  237746. 3d7aa19cd8 Support local files in list of sources
  237747. .IP \(bu 2
  237748. d175061c5d Add tests for file.source_list with local files
  237749. .IP \(bu 2
  237750. 4f8e2a30fe Update documentation to clarify URL support for lists of sources with file.managed
  237751. .UNINDENT
  237752. .IP \(bu 2
  237753. \fBISSUE\fP \fI\%#28981\fP: (\fI\%mimianddaniel\fP) 2015.8.2 import pagerduty error (refs: \fI\%#29017\fP)
  237754. .IP \(bu 2
  237755. \fBPR\fP \fI\%#29017\fP: (\fI\%jfindlay\fP) pagerduty runner: add missing salt.utils import
  237756. @ \fI2015\-11\-19 19:28:35 UTC\fP
  237757. .INDENT 2.0
  237758. .IP \(bu 2
  237759. f4f43381fc Merge pull request \fI\%#29017\fP from jfindlay/pager_util
  237760. .IP \(bu 2
  237761. 5cc06207fe pagerduty runner: add missing salt.utils import
  237762. .UNINDENT
  237763. .IP \(bu 2
  237764. \fBPR\fP \fI\%#29039\fP: (\fI\%anlutro\fP) Allow passing list of pip packages to virtualenv.managed
  237765. @ \fI2015\-11\-19 19:13:50 UTC\fP
  237766. .INDENT 2.0
  237767. .IP \(bu 2
  237768. 1c61bce0a6 Merge pull request \fI\%#29039\fP from alprs/feature\-virtualenv_pip_pkgs
  237769. .IP \(bu 2
  237770. f9bff51382 allow passing list of pip packages to virtualenv.managed
  237771. .UNINDENT
  237772. .IP \(bu 2
  237773. \fBPR\fP \fI\%#29047\fP: (\fI\%schwing\fP) Fix salt.modules.gpg.import_key exception: \(aqGPG_1_3_1 referenced before assignment\(aq
  237774. @ \fI2015\-11\-19 19:07:36 UTC\fP
  237775. .INDENT 2.0
  237776. .IP \(bu 2
  237777. b692ab1cfb Merge pull request \fI\%#29047\fP from schwing/fix\-gpg\-exception
  237778. .IP \(bu 2
  237779. 813f6e6808 Fix \(aqGPG_1_3_1 referenced before assignment\(aq
  237780. .UNINDENT
  237781. .IP \(bu 2
  237782. \fBPR\fP \fI\%#29050\fP: (\fI\%terminalmage\fP) Make git_pillar global config option docs more prominent
  237783. @ \fI2015\-11\-19 19:06:38 UTC\fP
  237784. .INDENT 2.0
  237785. .IP \(bu 2
  237786. b4fc2f28a4 Merge pull request \fI\%#29050\fP from terminalmage/issue29015
  237787. .IP \(bu 2
  237788. 20da057a94 Make git_pillar global config option docs more prominent
  237789. .UNINDENT
  237790. .IP \(bu 2
  237791. \fBPR\fP \fI\%#29048\fP: (\fI\%nmadhok\fP) Fix incorrect debug log statement
  237792. @ \fI2015\-11\-19 19:04:10 UTC\fP
  237793. .INDENT 2.0
  237794. .IP \(bu 2
  237795. 4b3b2fe1e7 Merge pull request \fI\%#29048\fP from nmadhok/patch\-1
  237796. .IP \(bu 2
  237797. 9489d6c3b6 Update vmware.py
  237798. .UNINDENT
  237799. .IP \(bu 2
  237800. \fBPR\fP \fI\%#29024\fP: (\fI\%jfindlay\fP) cache runner test: add new unit tests
  237801. @ \fI2015\-11\-19 19:02:54 UTC\fP
  237802. .INDENT 2.0
  237803. .IP \(bu 2
  237804. e52c117368 Merge pull request \fI\%#29024\fP from jfindlay/run_test
  237805. .IP \(bu 2
  237806. 0c0bce3ea6 cache runner test: add new unit tests
  237807. .UNINDENT
  237808. .IP \(bu 2
  237809. \fBPR\fP \fI\%#28967\fP: (\fI\%cro\fP) Fix some issues with password changes
  237810. @ \fI2015\-11\-19 18:57:39 UTC\fP
  237811. .INDENT 2.0
  237812. .IP \(bu 2
  237813. bcec8d8608 Merge pull request \fI\%#28967\fP from cro/fx2_switch
  237814. .IP \(bu 2
  237815. 67b5b9b8d2 Add docs on automatic lockout on failed auth attempts.
  237816. .IP \(bu 2
  237817. 8a3cea4d95 Lint.
  237818. .IP \(bu 2
  237819. 04095e3b74 Prevent stacktrace if something goes wrong retrieving inventory
  237820. .IP \(bu 2
  237821. e7cbce15a5 Don\(aqt need to get grains at init time here now that we are confirming username and password differently.
  237822. .IP \(bu 2
  237823. e42100cf8a Switch from admin_password and fallback_admin_password to a list of passwords to try.
  237824. .IP \(bu 2
  237825. 4b382e977d Add \(aqversionadded\(aq
  237826. .UNINDENT
  237827. .IP \(bu 2
  237828. \fBISSUE\fP \fI\%#8516\fP: (\fI\%xoJIog\fP) salt\-ssh not working with nodegroups and lists (refs: \fI\%#29020\fP)
  237829. .IP \(bu 2
  237830. \fBPR\fP \fI\%#29020\fP: (\fI\%basepi\fP) [2015.8] Add special list\-only nodegroup support to salt\-ssh
  237831. @ \fI2015\-11\-18 21:15:50 UTC\fP
  237832. .INDENT 2.0
  237833. .IP \(bu 2
  237834. 14b5d0ed0f Merge pull request \fI\%#29020\fP from basepi/salt\-ssh.nodegroups.8516
  237835. .IP \(bu 2
  237836. 6433abf36f Rename ssh_nodegroups to ssh_list_nodegroups
  237837. .IP \(bu 2
  237838. bd8487b3b9 Properly save minion list in local_cache for ssh jobs
  237839. .IP \(bu 2
  237840. 4b1bf7d5e2 Add support for comma separated list matching in salt\-ssh
  237841. .IP \(bu 2
  237842. 65c6528cbc Add "nodegroup" matching to salt\-ssh
  237843. .IP \(bu 2
  237844. 688a78c08c Add new ssh_nodegroups config
  237845. .UNINDENT
  237846. .IP \(bu 2
  237847. \fBISSUE\fP \fI\%#28911\fP: (\fI\%ccmills\fP) GitFS numeric tags cause errors with environments (refs: \fI\%#28970\fP)
  237848. .IP \(bu 2
  237849. \fBPR\fP \fI\%#28970\fP: (\fI\%terminalmage\fP) Properly handle non\-string saltenvs
  237850. @ \fI2015\-11\-18 20:38:41 UTC\fP
  237851. .INDENT 2.0
  237852. .IP \(bu 2
  237853. 89801b172a Merge pull request \fI\%#28970\fP from terminalmage/issue28911
  237854. .IP \(bu 2
  237855. ec64ec85d6 Force file_roots environments to be strings
  237856. .IP \(bu 2
  237857. b2690140c7 Properly handle non\-string saltenvs
  237858. .UNINDENT
  237859. .IP \(bu 2
  237860. \fBISSUE\fP \fI\%#28945\fP: (\fI\%rallytime\fP) Dell Chassis State Example Improvements (refs: \fI\%#28959\fP)
  237861. .IP \(bu 2
  237862. \fBPR\fP \fI\%#28959\fP: (\fI\%rallytime\fP) Add blade password example and make note of timeout
  237863. @ \fI2015\-11\-18 19:39:04 UTC\fP
  237864. .INDENT 2.0
  237865. .IP \(bu 2
  237866. 83c54351c9 Merge pull request \fI\%#28959\fP from rallytime/fix\-28945
  237867. .IP \(bu 2
  237868. 2f326b57bf Clarify chassis password functionality
  237869. .IP \(bu 2
  237870. 3614a88811 Add blade password example and make note of timeout
  237871. .UNINDENT
  237872. .IP \(bu 2
  237873. \fBPR\fP \fI\%#29000\fP: (\fI\%kiorky\fP) [Mergeable] Fix up LXC
  237874. @ \fI2015\-11\-18 18:02:47 UTC\fP
  237875. .INDENT 2.0
  237876. .IP \(bu 2
  237877. d8dc81bb2c Merge pull request \fI\%#29000\fP from kiorky/2015.8_lxc
  237878. .IP \(bu 2
  237879. a4d197821a LXC: doc
  237880. .IP \(bu 2
  237881. 43fb0eff02 lxc: remove useless and error prone uses_systemd knob
  237882. .IP \(bu 2
  237883. 7ec08cd41c Fix bootstrap delay kwarg exchange
  237884. .UNINDENT
  237885. .IP \(bu 2
  237886. \fBISSUE\fP \fI\%#28995\fP: (\fI\%timcharper\fP) systemd.get_all broken on non\-bsd systems / salt\-bootstrap failure (refs: \fI\%#29014\fP)
  237887. .IP \(bu 2
  237888. \fBPR\fP \fI\%#29014\fP: (\fI\%jfindlay\fP) systemd module: remove unneeded col command
  237889. @ \fI2015\-11\-18 17:58:59 UTC\fP
  237890. .INDENT 2.0
  237891. .IP \(bu 2
  237892. eedd50e7c3 Merge pull request \fI\%#29014\fP from jfindlay/sysctl_col
  237893. .IP \(bu 2
  237894. d75e4d5d21 systemd module: line wrap function comment
  237895. .IP \(bu 2
  237896. 960d2b936d systemd module: remove unneeded col command
  237897. .UNINDENT
  237898. .IP \(bu 2
  237899. \fBPR\fP \fI\%#28983\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  237900. @ \fI2015\-11\-18 00:49:36 UTC\fP
  237901. .INDENT 2.0
  237902. .IP \(bu 2
  237903. ac85cfdbd0 Merge pull request \fI\%#28983\fP from basepi/merge\-forward\-2015.8
  237904. .IP \(bu 2
  237905. f1c80ab943 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  237906. .IP \(bu 2
  237907. edd26d763a Merge pull request \fI\%#28949\fP from whiteinge/sync\-sdb
  237908. .INDENT 2.0
  237909. .IP \(bu 2
  237910. b0ec9ab25b Add sync_sdb execution function
  237911. .UNINDENT
  237912. .IP \(bu 2
  237913. 43da1bc4ce Merge pull request \fI\%#28930\fP from twangboy/fix_28888
  237914. .INDENT 2.0
  237915. .IP \(bu 2
  237916. f5c489eaad Added missing import mmap required by file.py
  237917. .UNINDENT
  237918. .IP \(bu 2
  237919. 2488b873b8 Merge pull request \fI\%#28908\fP from rallytime/doc\-convention\-spelling
  237920. .INDENT 2.0
  237921. .IP \(bu 2
  237922. 60e6eddb77 A couple of spelling fixes for doc conventions page.
  237923. .UNINDENT
  237924. .IP \(bu 2
  237925. 827a1ae020 Merge pull request \fI\%#28902\fP from whiteinge/json\-keys
  237926. .INDENT 2.0
  237927. .IP \(bu 2
  237928. 9745903301 Fix missing JSON support for /keys endpoint
  237929. .UNINDENT
  237930. .IP \(bu 2
  237931. d23bd49130 Merge pull request \fI\%#28897\fP from rallytime/bp\-28873
  237932. .INDENT 2.0
  237933. .IP \(bu 2
  237934. 077e671ead Fix salt\-cloud help output typo
  237935. .UNINDENT
  237936. .IP \(bu 2
  237937. a9dc8b6ca6 Merge pull request \fI\%#28871\fP from basepi/mdadm.fix.28870
  237938. .INDENT 2.0
  237939. .IP \(bu 2
  237940. 323bc2d2ac Fix command generation for mdadm.assemble
  237941. .UNINDENT
  237942. .IP \(bu 2
  237943. ec7fdc539b Merge pull request \fI\%#28864\fP from jfindlay/2015.5
  237944. .INDENT 2.0
  237945. .IP \(bu 2
  237946. 648b697951 add 2015.5.7 release notes
  237947. .UNINDENT
  237948. .IP \(bu 2
  237949. bed45f4208 Merge pull request \fI\%#28731\fP from garethgreenaway/27392_2015_5_scheduler_return_job_master
  237950. .INDENT 2.0
  237951. .IP \(bu 2
  237952. 771e9f7b6f Fixing the salt scheduler so that it only attempts to return the job data to the master if the scheduled job is running from a minion\(aqs scheduler.
  237953. .UNINDENT
  237954. .IP \(bu 2
  237955. 06f4932876 Merge pull request \fI\%#28857\fP from rallytime/bp\-28851
  237956. .INDENT 2.0
  237957. .IP \(bu 2
  237958. aa4b193f87 [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs
  237959. .UNINDENT
  237960. .IP \(bu 2
  237961. 0934a52b34 Merge pull request \fI\%#28856\fP from rallytime/bp\-28853
  237962. .IP \(bu 2
  237963. 37eeab2683 Typo (with → which)
  237964. .UNINDENT
  237965. .IP \(bu 2
  237966. \fBPR\fP \fI\%#28969\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28825\fP to 2015.8
  237967. @ \fI2015\-11\-17 20:43:30 UTC\fP
  237968. .INDENT 2.0
  237969. .IP \(bu 2
  237970. \fBPR\fP \fI\%#28825\fP: (\fI\%s0undt3ch\fP) Take into account a pygit2 bug (refs: \fI\%#28969\fP)
  237971. .IP \(bu 2
  237972. f172a0ee03 Merge pull request \fI\%#28969\fP from rallytime/bp\-28825
  237973. .IP \(bu 2
  237974. 40f4ac5b21 Add missing import
  237975. .IP \(bu 2
  237976. 2c43da1578 Take into account a pygit2 bug
  237977. .UNINDENT
  237978. .IP \(bu 2
  237979. \fBISSUE\fP \fI\%#28784\fP: (\fI\%chrigl\fP) iptables.get_saved_rules tests pretty much useless (refs: \fI\%#28787\fP)
  237980. .IP \(bu 2
  237981. \fBISSUE\fP \fI\%#28783\fP: (\fI\%chrigl\fP) iptables.get_saved_rules does not handle family=ipv6 (refs: \fI\%#28787\fP)
  237982. .IP \(bu 2
  237983. \fBPR\fP \fI\%#28787\fP: (\fI\%chrigl\fP) closes \fI\%#28784\fP
  237984. @ \fI2015\-11\-17 15:54:04 UTC\fP
  237985. .INDENT 2.0
  237986. .IP \(bu 2
  237987. 1e9214f4e4 Merge pull request \fI\%#28787\fP from chrigl/fix\-28784
  237988. .IP \(bu 2
  237989. 8639e3e9c3 closes \fI\%#28784\fP
  237990. .UNINDENT
  237991. .IP \(bu 2
  237992. \fBPR\fP \fI\%#28944\fP: (\fI\%rallytime\fP) The ret result must contain \(aqname\(aq, not \(aqchassis_name\(aq for the state compiler.
  237993. @ \fI2015\-11\-17 15:34:21 UTC\fP
  237994. .INDENT 2.0
  237995. .IP \(bu 2
  237996. d63344575a Merge pull request \fI\%#28944\fP from rallytime/dellchassis\-state\-name\-fix
  237997. .IP \(bu 2
  237998. f3ea01bbfa Make sure dellchassis.blade_idrac has a name arg and a ret[\(aqname\(aq]
  237999. .IP \(bu 2
  238000. fb718539e9 The ret result must contain \(aqname\(aq, not \(aqchassis_name\(aq for the state compiler
  238001. .UNINDENT
  238002. .IP \(bu 2
  238003. \fBPR\fP \fI\%#28957\fP: (\fI\%terminalmage\fP) Fix version number for new state option
  238004. @ \fI2015\-11\-17 15:33:50 UTC\fP
  238005. .INDENT 2.0
  238006. .IP \(bu 2
  238007. fcef9f8995 Merge pull request \fI\%#28957\fP from terminalmage/fix\-docstring
  238008. .IP \(bu 2
  238009. f159000de2 Fix version number for new state option
  238010. .UNINDENT
  238011. .IP \(bu 2
  238012. \fBPR\fP \fI\%#28950\fP: (\fI\%DmitryKuzmenko\fP) PR 28812 which test fix
  238013. @ \fI2015\-11\-17 15:32:16 UTC\fP
  238014. .INDENT 2.0
  238015. .IP \(bu 2
  238016. \fBPR\fP \fI\%#28812\fP: (\fI\%isbm\fP) Enhance \(aqwhich\(aq decorator reliability (refs: \fI\%#28950\fP)
  238017. .IP \(bu 2
  238018. 5b680c938a Merge pull request \fI\%#28950\fP from DSRCompany/pr/28812_which
  238019. .IP \(bu 2
  238020. 18571000c5 Fix which test in PR\(ga#28812\(ga_
  238021. .UNINDENT
  238022. .IP \(bu 2
  238023. \fBPR\fP \fI\%#28812\fP: (\fI\%isbm\fP) Enhance \(aqwhich\(aq decorator reliability (refs: \fI\%#28950\fP)
  238024. @ \fI2015\-11\-17 15:32:10 UTC\fP
  238025. .INDENT 2.0
  238026. .IP \(bu 2
  238027. 73719928f9 Merge pull request \fI\%#28812\fP from isbm/isbm\-which\-decorator\-enhancement
  238028. .IP \(bu 2
  238029. 20033eeeb7 Save modified environment path
  238030. .IP \(bu 2
  238031. 2d43199d20 Preserve \(aqfirst found first win\(aq ordering
  238032. .IP \(bu 2
  238033. 1c59eedec2 Enhance \(aqwhich\(aq decorator reliability for peculiar environments
  238034. .UNINDENT
  238035. .IP \(bu 2
  238036. \fBPR\fP \fI\%#28934\fP: (\fI\%terminalmage\fP) git.latest: Add update_head option to prevent local HEAD from being updated
  238037. @ \fI2015\-11\-17 15:15:16 UTC\fP
  238038. .INDENT 2.0
  238039. .IP \(bu 2
  238040. facc34efed Merge pull request \fI\%#28934\fP from terminalmage/issue27883
  238041. .IP \(bu 2
  238042. 6a35a39ca5 Add update_head option to git.latest
  238043. .IP \(bu 2
  238044. 3787f7ed00 Change return output of git.fetch to a dict
  238045. .IP \(bu 2
  238046. 9ca0f8f440 Add redirect_stderr argument to cmd.run_all
  238047. .UNINDENT
  238048. .IP \(bu 2
  238049. \fBPR\fP \fI\%#28937\fP: (\fI\%rallytime\fP) Update dellchassis state example to use correct jinja syntax
  238050. @ \fI2015\-11\-17 15:12:28 UTC\fP
  238051. .INDENT 2.0
  238052. .IP \(bu 2
  238053. 7da93aad5b Merge pull request \fI\%#28937\fP from rallytime/chassis\-doc\-fix
  238054. .IP \(bu 2
  238055. d53713ddba We only need one fancy pillar example to match our state.
  238056. .IP \(bu 2
  238057. e2926b1996 Update dellchassis state example to use correct jinja syntax
  238058. .UNINDENT
  238059. .IP \(bu 2
  238060. \fBISSUE\fP \fI\%#27961\fP: (\fI\%ahammond\fP) aggregate: False should disable aggregation even when state_aggregate: True enabled (refs: \fI\%#28889\fP)
  238061. .IP \(bu 2
  238062. \fBPR\fP \fI\%#28889\fP: (\fI\%jfindlay\fP) state compiler: relax aggregate conditional check
  238063. @ \fI2015\-11\-16 17:39:24 UTC\fP
  238064. .INDENT 2.0
  238065. .IP \(bu 2
  238066. 16ebda999e Merge pull request \fI\%#28889\fP from jfindlay/aggregate
  238067. .IP \(bu 2
  238068. eb9970019a state compiler: relax aggregate conditional check
  238069. .UNINDENT
  238070. .IP \(bu 2
  238071. \fBISSUE\fP \fI\%#24803\fP: (\fI\%cachedout\fP) Rewrite GPG renderer tests (refs: \fI\%#25470\fP)
  238072. .IP \(bu 2
  238073. \fBPR\fP \fI\%#28921\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25470\fP to 2015.8
  238074. @ \fI2015\-11\-16 17:38:59 UTC\fP
  238075. .INDENT 2.0
  238076. .IP \(bu 2
  238077. \fBPR\fP \fI\%#25470\fP: (\fI\%jfindlay\fP) \fI\%#24314\fP with tests (refs: \fI\%#28921\fP)
  238078. .IP \(bu 2
  238079. \fBPR\fP \fI\%#24314\fP: (\fI\%cedwards\fP) refactor gpg renderer; removing dependency on python\-gnupg (refs: \fI\%#28921\fP, \fI\%#25470\fP)
  238080. .IP \(bu 2
  238081. 91a327bbce Merge pull request \fI\%#28921\fP from rallytime/bp\-25470
  238082. .IP \(bu 2
  238083. a5eee74c20 Change Beryllium to 2015.8.3 release
  238084. .IP \(bu 2
  238085. 5ce61abf57 rewrite GPG unit tests
  238086. .IP \(bu 2
  238087. 7aa424209e reduce globals in GPG renderer for easier testing
  238088. .IP \(bu 2
  238089. de5b6682ef log error and return ciphered txt on decrypt error
  238090. .IP \(bu 2
  238091. 6afb344fe3 updated logic to properly detect GPG_KEYDIR path
  238092. .IP \(bu 2
  238093. bc9750b85e refactor gpg renderer; removing dependency on python\-gnupg
  238094. .UNINDENT
  238095. .IP \(bu 2
  238096. \fBPR\fP \fI\%#28922\fP: (\fI\%rallytime\fP) Change 2015.8.2 release note title to reflect proper version
  238097. @ \fI2015\-11\-16 16:47:33 UTC\fP
  238098. .INDENT 2.0
  238099. .IP \(bu 2
  238100. 3707eb1e7c Merge pull request \fI\%#28922\fP from rallytime/release\-notes\-ver
  238101. .IP \(bu 2
  238102. 61029f8db1 Change 2015.8.2 release note title to reflect proper version
  238103. .UNINDENT
  238104. .IP \(bu 2
  238105. \fBISSUE\fP \fI\%#23971\fP: (\fI\%dumol\fP) Problems disabling a service in SLES11 SP3. (refs: \fI\%#28891\fP)
  238106. .IP \(bu 2
  238107. \fBPR\fP \fI\%#28891\fP: (\fI\%jfindlay\fP) rh_service module: fix logic in _chkconfig_is_enabled
  238108. @ \fI2015\-11\-16 02:44:14 UTC\fP
  238109. .INDENT 2.0
  238110. .IP \(bu 2
  238111. 23eae0d9e0 Merge pull request \fI\%#28891\fP from jfindlay/chkconfig_check
  238112. .IP \(bu 2
  238113. e32a9aab85 rh_service._chkconfig_is_enabled unit tests
  238114. .IP \(bu 2
  238115. 5a93b7e53c rh_service module: fix logic in _chkconfig_is_enabled
  238116. .UNINDENT
  238117. .IP \(bu 2
  238118. \fBISSUE\fP \fI\%#24019\fP: (\fI\%dumol\fP) SUSE Linux Enterprise Server 11 SP3 not detected as SLES. (refs: \fI\%#28892\fP)
  238119. .IP \(bu 2
  238120. \fBPR\fP \fI\%#28892\fP: (\fI\%jfindlay\fP) grains.core: correctly identify SLES 11 distrib_id
  238121. @ \fI2015\-11\-16 02:30:30 UTC\fP
  238122. .INDENT 2.0
  238123. .IP \(bu 2
  238124. 8e6acd97ae Merge pull request \fI\%#28892\fP from jfindlay/sles_grain
  238125. .IP \(bu 2
  238126. 1cfdc500c9 grains.core: correctly identify SLES 11 distrib_id
  238127. .UNINDENT
  238128. .IP \(bu 2
  238129. \fBPR\fP \fI\%#28910\fP: (\fI\%lorengordon\fP) Fix winrepo command in windows pkg mgmt doc
  238130. @ \fI2015\-11\-16 02:29:12 UTC\fP
  238131. .INDENT 2.0
  238132. .IP \(bu 2
  238133. cf929c3847 Merge pull request \fI\%#28910\fP from lorengordon/patch\-1
  238134. .IP \(bu 2
  238135. 64655398b3 Fix winrepo command in windows pkg mgmt doc
  238136. .UNINDENT
  238137. .IP \(bu 2
  238138. \fBPR\fP \fI\%#28896\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28855\fP to 2015.8
  238139. @ \fI2015\-11\-15 00:43:15 UTC\fP
  238140. .INDENT 2.0
  238141. .IP \(bu 2
  238142. \fBPR\fP \fI\%#28855\fP: (\fI\%tampakrap\fP) fix the os grain in sle11sp4 to be SUSE instead of SLES (refs: \fI\%#28896\fP)
  238143. .IP \(bu 2
  238144. 7a4fb9a790 Merge pull request \fI\%#28896\fP from rallytime/bp\-28855
  238145. .IP \(bu 2
  238146. baf238f270 fix the os grain in sle11sp4 to be SUSE instead of SLES
  238147. .UNINDENT
  238148. .IP \(bu 2
  238149. \fBPR\fP \fI\%#28895\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28823\fP to 2015.8
  238150. @ \fI2015\-11\-15 00:43:07 UTC\fP
  238151. .INDENT 2.0
  238152. .IP \(bu 2
  238153. \fBPR\fP \fI\%#28823\fP: (\fI\%tampakrap\fP) Add support for priority and humanname in pkrepo zypper backend (refs: \fI\%#28895\fP)
  238154. .IP \(bu 2
  238155. 64dc3c23e0 Merge pull request \fI\%#28895\fP from rallytime/bp\-28823
  238156. .IP \(bu 2
  238157. d167a6b83d Add support for priority and humanname in pkrepo zypper backend
  238158. .UNINDENT
  238159. .IP \(bu 2
  238160. \fBISSUE\fP \fI\%#28754\fP: (\fI\%kt97679\fP) service.enabled fails on xen server (refs: \fI\%#28885\fP)
  238161. .IP \(bu 2
  238162. \fBPR\fP \fI\%#28885\fP: (\fI\%kt97679\fP) fix for: service.enabled fails on xen server \fI\%#28754\fP
  238163. @ \fI2015\-11\-14 04:55:38 UTC\fP
  238164. .INDENT 2.0
  238165. .IP \(bu 2
  238166. a45ce78e20 Merge pull request \fI\%#28885\fP from kt97679/2015.8
  238167. .IP \(bu 2
  238168. 7d0f1f11cb fix for: service.enabled fails on xen server \fI\%#28754\fP
  238169. .UNINDENT
  238170. .IP \(bu 2
  238171. \fBPR\fP \fI\%#28880\fP: (\fI\%terminalmage\fP) Add "profile" loglevel
  238172. @ \fI2015\-11\-14 02:07:25 UTC\fP
  238173. .INDENT 2.0
  238174. .IP \(bu 2
  238175. 58b57e77be Merge pull request \fI\%#28880\fP from terminalmage/profile\-logging
  238176. .IP \(bu 2
  238177. a62852d407 Add @wraps decorator
  238178. .IP \(bu 2
  238179. cac9f17307 Add profile logging for template rendering
  238180. .IP \(bu 2
  238181. c625725f70 Add decorator to do profile\-level logging for a function
  238182. .IP \(bu 2
  238183. 5a2b94ce39 Add "profile" loglevel
  238184. .UNINDENT
  238185. .IP \(bu 2
  238186. \fBISSUE\fP \fI\%#28881\fP: (\fI\%basepi\fP) salt\-ssh stacktraces on first run (refs: \fI\%#28882\fP)
  238187. .IP \(bu 2
  238188. \fBPR\fP \fI\%#28882\fP: (\fI\%basepi\fP) [2015.8] salt\-ssh: Check return type to make sure it\(aqs an error
  238189. @ \fI2015\-11\-14 00:14:46 UTC\fP
  238190. .INDENT 2.0
  238191. .IP \(bu 2
  238192. 5dc7fccb07 Merge pull request \fI\%#28882\fP from basepi/salt\-ssh.stacktrace.28881
  238193. .IP \(bu 2
  238194. f1a1cad607 Check return type to make sure it\(aqs actually an error
  238195. .UNINDENT
  238196. .IP \(bu 2
  238197. \fBPR\fP \fI\%#28867\fP: (\fI\%rallytime\fP) [fx2 grains] Grains functions should return dictionaries
  238198. @ \fI2015\-11\-13 21:14:13 UTC\fP
  238199. .INDENT 2.0
  238200. .IP \(bu 2
  238201. 430e9376f6 Merge pull request \fI\%#28867\fP from rallytime/fx2\-grains\-patch
  238202. .IP \(bu 2
  238203. 022cf5d230 [fx2 grains] Grains functions should return dictionaries
  238204. .UNINDENT
  238205. .IP \(bu 2
  238206. \fBISSUE\fP \fI\%#28859\fP: (\fI\%mhoogendoorn\fP) ebuild.install runs \fIrefresh_db()\fP when \fIrefresh=False\fP is given. (refs: \fI\%#28863\fP)
  238207. .IP \(bu 2
  238208. \fBPR\fP \fI\%#28863\fP: (\fI\%mhoogendoorn\fP) Fix ebuild.install causing extra refresh_db calls.
  238209. @ \fI2015\-11\-13 18:46:03 UTC\fP
  238210. .INDENT 2.0
  238211. .IP \(bu 2
  238212. 304072456e Merge pull request \fI\%#28863\fP from mhoogendoorn/fix\-issue\-28859
  238213. .IP \(bu 2
  238214. eca09b89a4 Fix ebuild.install causing extra refresh_db calls.
  238215. .UNINDENT
  238216. .UNINDENT
  238217. .SS Salt 2015.8.4 Release Notes
  238218. .sp
  238219. Version 2015.8.4 is a bugfix release for 2015.8.0\&.
  238220. .SS Statistics
  238221. .INDENT 0.0
  238222. .IP \(bu 2
  238223. Total Merges: \fB322\fP
  238224. .IP \(bu 2
  238225. Total Issue References: \fB120\fP
  238226. .IP \(bu 2
  238227. Total PR References: \fB312\fP
  238228. .IP \(bu 2
  238229. Contributors: \fB78\fP (\fI\%AkhterAli\fP, \fI\%DmitryKuzmenko\fP, \fI\%MadsRC\fP, \fI\%Oro\fP, \fI\%The\-Loeki\fP, \fI\%abednarik\fP, \fI\%akissa\fP, \fI\%anlutro\fP, \fI\%basepi\fP, \fI\%bastiaanb\fP, \fI\%bdrung\fP, \fI\%borgstrom\fP, \fI\%cachedout\fP, \fI\%clan\fP, \fI\%clinta\fP, \fI\%cournape\fP, \fI\%cro\fP, \fI\%ctrlrsf\fP, \fI\%dmacvicar\fP, \fI\%dmurphy18\fP, \fI\%dnd\fP, \fI\%dr4Ke\fP, \fI\%eliasp\fP, \fI\%fcrozat\fP, \fI\%frioux\fP, \fI\%galet\fP, \fI\%garethgreenaway\fP, \fI\%gqgunhed\fP, \fI\%gtmanfred\fP, \fI\%hexedpackets\fP, \fI\%isbm\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%jleimbach\fP, \fI\%job\fP, \fI\%joejulian\fP, \fI\%julianbrost\fP, \fI\%justinta\fP, \fI\%kingsquirrel152\fP, \fI\%kiorky\fP, \fI\%l2ol33rt\fP, \fI\%lagesag\fP, \fI\%lorengordon\fP, \fI\%mbarrien\fP, \fI\%mpreziuso\fP, \fI\%multani\fP, \fI\%nmadhok\fP, \fI\%oeuftete\fP, \fI\%opdude\fP, \fI\%optix2000\fP, \fI\%pass\-by\-value\fP, \fI\%paulnivin\fP, \fI\%plastikos\fP, \fI\%pritambaral\fP, \fI\%rallytime\fP, \fI\%rasathus\fP, \fI\%rmatulat\fP, \fI\%ruxandraburtica\fP, \fI\%ryan\-lane\fP, \fI\%s0undt3ch\fP, \fI\%seanjnkns\fP, \fI\%serge\-p\fP, \fI\%sjorge\fP, \fI\%stanislavb\fP, \fI\%tbaker57\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%thegoodduke\fP, \fI\%thomaso\-mirodin\fP, \fI\%ticosax\fP, \fI\%timcharper\fP, \fI\%tkunicki\fP, \fI\%trevor\-h\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP, \fI\%whytewolf\fP)
  238230. .UNINDENT
  238231. .SS Known Issues
  238232. .INDENT 0.0
  238233. .IP \(bu 2
  238234. \fB*_in\fP requisites (\fI\%issue #30820\fP)
  238235. .sp
  238236. This issue affects all users targeting an explicit \fB\- name: <name>\fP with a
  238237. \fB_in\fP requisite (such as \fBwatch_in\fP or \fBrequire_in\fP). If you are not
  238238. using explicit \fB\- name: <name>\fP arguments, are targeting with the state ID
  238239. instead of the name, or are not using \fB_in\fP requisites, then you should be
  238240. safe to upgrade to 2015.8.4.
  238241. .sp
  238242. This issue is resolved in the 2015.8.5 release.
  238243. .UNINDENT
  238244. .SS Security Fix
  238245. .sp
  238246. \fBCVE\-2016\-1866\fP Improper handling of clear messages on the minion, which
  238247. could result in executing commands not sent by the master.
  238248. .sp
  238249. This issue affects only the 2015.8.x releases of Salt. In order for an attacker
  238250. to use this attack vector, they would have to execute a successful attack on an
  238251. existing TCP connection between minion and master on the pub port. It does not
  238252. allow an external attacker to obtain the shared secret or decrypt any encrypted
  238253. traffic between minion and master. Thank you to Sebastian Krahmer
  238254. <\fI\%krahmer@suse.com\fP> for bringing this issue to our attention.
  238255. .sp
  238256. We recommend everyone upgrade to 2015.8.4 as soon as possible.
  238257. .SS Core Changes
  238258. .INDENT 0.0
  238259. .IP \(bu 2
  238260. Support for IAM roles added to S3 module
  238261. .IP \(bu 2
  238262. Added option \fBmock=True\fP for \fBstate.sls\fP
  238263. and \fBstate.highstate\fP\&. This allows
  238264. the state compiler to process sls data in a state run without actually
  238265. calling the state functions, thus providing feedback on the validity of the
  238266. arguments used for the functions beyond the preprocessing validation provided
  238267. by \fBstate.show_sls\fP (\fI\%issue #30118\fP
  238268. and \fI\%issue #30189\fP).
  238269. .INDENT 2.0
  238270. .INDENT 3.5
  238271. .sp
  238272. .nf
  238273. .ft C
  238274. salt \(aq*\(aq state.sls core,edit.vim mock=True
  238275. salt \(aq*\(aq state.highstate mock=True
  238276. salt \(aq*\(aq state.apply edit.vim mock=True
  238277. .ft P
  238278. .fi
  238279. .UNINDENT
  238280. .UNINDENT
  238281. .UNINDENT
  238282. .SS Changelog for v2015.8.3..v2015.8.4
  238283. .sp
  238284. \fIGenerated at: 2018\-05\-27 23:28:18 UTC\fP
  238285. .INDENT 0.0
  238286. .IP \(bu 2
  238287. \fBPR\fP \fI\%#30615\fP: (\fI\%jfindlay\fP) add 2015.8.4 release notes
  238288. @ \fI2016\-01\-25 18:11:02 UTC\fP
  238289. .INDENT 2.0
  238290. .IP \(bu 2
  238291. 1c6c394d0e Merge pull request \fI\%#30615\fP from jfindlay/2015.8
  238292. .IP \(bu 2
  238293. e4043403e4 add 2015.8.4 release notes
  238294. .UNINDENT
  238295. .IP \(bu 2
  238296. \fBPR\fP \fI\%#30612\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29940\fP to 2015.8
  238297. @ \fI2016\-01\-25 17:52:43 UTC\fP
  238298. .INDENT 2.0
  238299. .IP \(bu 2
  238300. \fBPR\fP \fI\%#29940\fP: (\fI\%dr4Ke\fP) file.line: better diff (refs: \fI\%#30612\fP)
  238301. .IP \(bu 2
  238302. ec50581aad Merge pull request \fI\%#30612\fP from rallytime/bp\-29940
  238303. .IP \(bu 2
  238304. 3ebb8249d7 file.line: better diff
  238305. .UNINDENT
  238306. .IP \(bu 2
  238307. \fBPR\fP \fI\%#30613\fP: (\fI\%basepi\fP) Fix minion/syndic clearfuncs
  238308. @ \fI2016\-01\-25 17:40:59 UTC\fP
  238309. .INDENT 2.0
  238310. .IP \(bu 2
  238311. 48373e0ea9 Merge pull request \fI\%#30613\fP from basepi/minion_clearfuncs_2015.8
  238312. .IP \(bu 2
  238313. a3c3182f39 Correctly handle clearfuncs on the syndic
  238314. .IP \(bu 2
  238315. 098ce4335d Correct handle clearfuncs on the minion
  238316. .UNINDENT
  238317. .IP \(bu 2
  238318. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  238319. .IP \(bu 2
  238320. \fBPR\fP \fI\%#30609\fP: (\fI\%seanjnkns\fP) Fix documentation for pillar_merge_lists which default is False, not …
  238321. @ \fI2016\-01\-25 17:15:45 UTC\fP
  238322. .INDENT 2.0
  238323. .IP \(bu 2
  238324. \fBPR\fP \fI\%#30062\fP: (\fI\%seanjnkns\fP) Remove recurse_list from pillar_source_merging_strategy and add pilla… (refs: \fI\%#30609\fP, \fI\%#30458\fP)
  238325. .IP \(bu 2
  238326. 89b4f3de1b Merge pull request \fI\%#30609\fP from seanjnkns/backport_30602
  238327. .IP \(bu 2
  238328. 9924acdc43 Fix documentation for pillar_merge_lists which default is False, not True. From PR \fI\%#30062\fP
  238329. .UNINDENT
  238330. .IP \(bu 2
  238331. \fBPR\fP \fI\%#30584\fP: (\fI\%julianbrost\fP) file.line state: add missing colon in docstring
  238332. @ \fI2016\-01\-25 16:37:38 UTC\fP
  238333. .INDENT 2.0
  238334. .IP \(bu 2
  238335. 24ead62c41 Merge pull request \fI\%#30584\fP from julianbrost/fix\-doc\-file\-line\-missing\-colon
  238336. .IP \(bu 2
  238337. 2ab367f95b file.line state: add missing colon in docstring
  238338. .UNINDENT
  238339. .IP \(bu 2
  238340. \fBPR\fP \fI\%#30589\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8
  238341. @ \fI2016\-01\-25 16:20:41 UTC\fP
  238342. .INDENT 2.0
  238343. .IP \(bu 2
  238344. a7ba2df5e2 Merge pull request \fI\%#30589\fP from terminalmage/2015.5\-2015.8
  238345. .IP \(bu 2
  238346. d649551fbf Merge branch \(aq2015.5\(aq into 2015.5\-2015.8
  238347. .INDENT 2.0
  238348. .IP \(bu 2
  238349. a823e21428 Merge pull request \fI\%#30582\fP from terminalmage/dnf\-repoquery\-multiple\-targets
  238350. .INDENT 2.0
  238351. .IP \(bu 2
  238352. 410da789f9 yumpkg.check_db: run separate repoquery commands when multiple names passed
  238353. .UNINDENT
  238354. .IP \(bu 2
  238355. 8e56be7f4c Merge pull request \fI\%#30548\fP from jacobhammons/doc\-fixes
  238356. .INDENT 2.0
  238357. .IP \(bu 2
  238358. 03c51bb54d Added placeholder release notes for 2015.5.10 Changed old doc links from docs.saltstack.org to docs.saltstack.com
  238359. .UNINDENT
  238360. .IP \(bu 2
  238361. 1aafd4c5b5 Merge pull request \fI\%#30530\fP from terminalmage/yumpkg\-dnf\-cleanup
  238362. .INDENT 2.0
  238363. .IP \(bu 2
  238364. 2586f71bcf 2015.5 tweaks from \fI\%#30529\fP
  238365. .UNINDENT
  238366. .UNINDENT
  238367. .UNINDENT
  238368. .IP \(bu 2
  238369. \fBPR\fP \fI\%#30599\fP: (\fI\%multani\fP) Documentation formatting fixes
  238370. @ \fI2016\-01\-25 15:37:46 UTC\fP
  238371. .INDENT 2.0
  238372. .IP \(bu 2
  238373. 3a55d11916 Merge pull request \fI\%#30599\fP from multani/fix/docs
  238374. .IP \(bu 2
  238375. 038ecc4acd For doc formatting of salt.states.module
  238376. .IP \(bu 2
  238377. 4062c63b9f Fix doc formatting for yaml_idiosyncrasies
  238378. .IP \(bu 2
  238379. 6efb77bc04 Fix doc formatting of salt.modules.parted
  238380. .IP \(bu 2
  238381. a329adfb21 Add missing salt.queues.* documentation
  238382. .IP \(bu 2
  238383. 2465cf4ba5 Remove non\-existing documentation
  238384. .IP \(bu 2
  238385. 814e64c304 Fix documentation markup in salt.modules.osquery
  238386. .IP \(bu 2
  238387. d2614d6169 Fix documentation markup for salt.modules.ipmi
  238388. .IP \(bu 2
  238389. 276eb3a843 Fix GCE documentation
  238390. .UNINDENT
  238391. .IP \(bu 2
  238392. \fBISSUE\fP \fI\%#10157\fP: (\fI\%martinb3\fP) salt\-cloud actions don\(aqt have very useful error messages (refs: \fI\%#30554\fP)
  238393. .IP \(bu 2
  238394. \fBPR\fP \fI\%#30554\fP: (\fI\%rallytime\fP) Make the salt\-cloud actions output more verbose and helpful
  238395. @ \fI2016\-01\-22 20:23:18 UTC\fP
  238396. .INDENT 2.0
  238397. .IP \(bu 2
  238398. b1e604add3 Merge pull request \fI\%#30554\fP from rallytime/fix\-10157
  238399. .IP \(bu 2
  238400. 6fa952f16d Make the salt\-cloud actions output more verbose and helpful
  238401. .UNINDENT
  238402. .IP \(bu 2
  238403. \fBPR\fP \fI\%#30549\fP: (\fI\%techhat\fP) Salt Virt cleanup
  238404. @ \fI2016\-01\-22 18:45:18 UTC\fP
  238405. .INDENT 2.0
  238406. .IP \(bu 2
  238407. 2eb5a3803d Merge pull request \fI\%#30549\fP from techhat/virtcleanup
  238408. .IP \(bu 2
  238409. 9baab73cd0 Fix copy pasta
  238410. .IP \(bu 2
  238411. 6413c11f29 Salt Virt cleanup
  238412. .UNINDENT
  238413. .IP \(bu 2
  238414. \fBPR\fP \fI\%#30553\fP: (\fI\%techhat\fP) AWS: Support 17\-character IDs
  238415. @ \fI2016\-01\-22 18:41:46 UTC\fP
  238416. .INDENT 2.0
  238417. .IP \(bu 2
  238418. f63b183e43 Merge pull request \fI\%#30553\fP from techhat/awsid
  238419. .IP \(bu 2
  238420. a95fbff4bc Support 17\-character IDs
  238421. .UNINDENT
  238422. .IP \(bu 2
  238423. \fBPR\fP \fI\%#30532\fP: (\fI\%whiteinge\fP) Add execution module for working in sls files
  238424. @ \fI2016\-01\-22 17:25:16 UTC\fP
  238425. .INDENT 2.0
  238426. .IP \(bu 2
  238427. 05d05263ab Merge pull request \fI\%#30532\fP from whiteinge/slsutil\-mod
  238428. .IP \(bu 2
  238429. a57d9984e4 Add slsutil to doc index
  238430. .IP \(bu 2
  238431. 155966c9d2 Add execution module for working in sls files
  238432. .UNINDENT
  238433. .IP \(bu 2
  238434. \fBPR\fP \fI\%#30529\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8 (refs: \fI\%#30530\fP)
  238435. @ \fI2016\-01\-22 17:19:39 UTC\fP
  238436. .INDENT 2.0
  238437. .IP \(bu 2
  238438. 1da1bb9afc Merge pull request \fI\%#30529\fP from terminalmage/2015.5\-2015.8
  238439. .IP \(bu 2
  238440. e85ad690fb Lint fixes
  238441. .IP \(bu 2
  238442. 43829ecee6 Docstring tweaks
  238443. .IP \(bu 2
  238444. 92d5a2a49c Fix spelling
  238445. .IP \(bu 2
  238446. fdc60fc04a Modify pkg.group_installed to reflect changes in yumpkg.py
  238447. .IP \(bu 2
  238448. a118eb5d2e Merge branch \(aq2015.5\(aq into 2015.5\-2015.8
  238449. .IP \(bu 2
  238450. 7798d42272 Merge pull request \fI\%#30484\fP from terminalmage/dnf\-yumpkg\-2015.5
  238451. .INDENT 2.0
  238452. .IP \(bu 2
  238453. 330e26d1da Hide get_locked_packages
  238454. .IP \(bu 2
  238455. 5a637420e8 Backport DNF support to 2015.5 branch
  238456. .UNINDENT
  238457. .UNINDENT
  238458. .IP \(bu 2
  238459. \fBPR\fP \fI\%#30526\fP: (\fI\%twangboy\fP) Added FlushKey to make sure its changes are saved to disk
  238460. @ \fI2016\-01\-22 02:33:13 UTC\fP
  238461. .INDENT 2.0
  238462. .IP \(bu 2
  238463. e366f6a7fd Merge pull request \fI\%#30526\fP from twangboy/reg_flushkey
  238464. .IP \(bu 2
  238465. 23085ffbbb Added FlushKey to make sure its changes are saved to disk
  238466. .UNINDENT
  238467. .IP \(bu 2
  238468. \fBPR\fP \fI\%#30521\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  238469. @ \fI2016\-01\-21 23:05:03 UTC\fP
  238470. .INDENT 2.0
  238471. .IP \(bu 2
  238472. cdc731b8c5 Merge pull request \fI\%#30521\fP from basepi/merge\-forward\-2015.8
  238473. .IP \(bu 2
  238474. f22f5ff851 Fix lint
  238475. .IP \(bu 2
  238476. 117fb205de Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  238477. .INDENT 2.0
  238478. .IP \(bu 2
  238479. b348f804b1 Merge pull request \fI\%#30512\fP from jfindlay/repo_test
  238480. .INDENT 2.0
  238481. .IP \(bu 2
  238482. 66f06f2bd3 disable pkgrepo test for ubuntu 15.10+
  238483. .UNINDENT
  238484. .IP \(bu 2
  238485. a9348dfef8 Merge pull request \fI\%#30478\fP from jtand/pip_8_update
  238486. .INDENT 2.0
  238487. .IP \(bu 2
  238488. 6227368830 Convert version to int, instead of comparing strings to ints
  238489. .IP \(bu 2
  238490. 20384a4810 Added InstallationError to except block
  238491. .IP \(bu 2
  238492. baa274bca9 Updated pip_state to work with pip 8.0
  238493. .UNINDENT
  238494. .IP \(bu 2
  238495. a30147c64f Merge pull request \fI\%#30482\fP from borgstrom/pyobjects_recursive
  238496. .INDENT 2.0
  238497. .IP \(bu 2
  238498. 2c55a7580b Fixup lint errors
  238499. .IP \(bu 2
  238500. b46df0e4b5 Allow recursive salt:// imports
  238501. .IP \(bu 2
  238502. 51bfa16173 Add test to prove that recursive imports are currently broken
  238503. .UNINDENT
  238504. .IP \(bu 2
  238505. 5c7cc51937 Merge pull request \fI\%#30459\fP from jfindlay/pkg_tests
  238506. .INDENT 2.0
  238507. .IP \(bu 2
  238508. fb9972f590 modules.pkg: disable repo int test for ubuntu 15.10
  238509. .UNINDENT
  238510. .IP \(bu 2
  238511. dd2ceb4c07 Merge pull request \fI\%#30443\fP from jtand/boto_vpc_5
  238512. .INDENT 2.0
  238513. .IP \(bu 2
  238514. 2f77152479 Boto uses False for is_default instead of None
  238515. .UNINDENT
  238516. .IP \(bu 2
  238517. 62d9dddced Merge pull request \fI\%#30420\fP from attiasr/patch\-1
  238518. .INDENT 2.0
  238519. .IP \(bu 2
  238520. 4de343c5a1 Backport \fI\%#26853\fP
  238521. .UNINDENT
  238522. .UNINDENT
  238523. .UNINDENT
  238524. .IP \(bu 2
  238525. \fBPR\fP \fI\%#30485\fP: (\fI\%justinta\fP) Updated pip_state to work with pip 8.0 on 2015.8
  238526. @ \fI2016\-01\-21 22:55:38 UTC\fP
  238527. .INDENT 2.0
  238528. .IP \(bu 2
  238529. 019af349af Merge pull request \fI\%#30485\fP from jtand/pip_8_update_2015.8
  238530. .IP \(bu 2
  238531. 9cb17332fa Updated pip_state to work with pip 8.0 on 2015.8
  238532. .UNINDENT
  238533. .IP \(bu 2
  238534. \fBPR\fP \fI\%#30494\fP: (\fI\%isbm\fP) Zypper: info_installed — \(aqerrors\(aq flag change to type \(aqboolean\(aq
  238535. @ \fI2016\-01\-21 22:55:05 UTC\fP
  238536. .INDENT 2.0
  238537. .IP \(bu 2
  238538. 3259fde362 Merge pull request \fI\%#30494\fP from isbm/isbm\-zypper\-nfoinst\-bool\-fix
  238539. .IP \(bu 2
  238540. 4d7659270e Place the boolean check
  238541. .IP \(bu 2
  238542. 58db1c3b16 Fix typo
  238543. .IP \(bu 2
  238544. 43254aa993 Update docstring according to the boolean flag
  238545. .IP \(bu 2
  238546. a7d3e0d5ad Change \(aqerrors\(aq flag to boolean.
  238547. .UNINDENT
  238548. .IP \(bu 2
  238549. \fBPR\fP \fI\%#30506\fP: (\fI\%jacksontj\fP) Properly remove newlines after reading the file
  238550. @ \fI2016\-01\-21 22:53:57 UTC\fP
  238551. .INDENT 2.0
  238552. .IP \(bu 2
  238553. 596892326d Merge pull request \fI\%#30506\fP from jacksontj/2015.8
  238554. .IP \(bu 2
  238555. e1dea6f843 Properly remove newlines after reading the file
  238556. .UNINDENT
  238557. .IP \(bu 2
  238558. \fBISSUE\fP \fI\%#30444\fP: (\fI\%dnd\fP) Cloning linode server with salt\-cloud fails trying to create disk config (refs: \fI\%#30508\fP)
  238559. .IP \(bu 2
  238560. \fBISSUE\fP \fI\%#30432\fP: (\fI\%dnd\fP) Cloning linode server with salt\-cloud requires payment term (refs: \fI\%#30508\fP)
  238561. .IP \(bu 2
  238562. \fBPR\fP \fI\%#30508\fP: (\fI\%rallytime\fP) Fix Linode driver cloning functionality
  238563. @ \fI2016\-01\-21 22:53:36 UTC\fP
  238564. .INDENT 2.0
  238565. .IP \(bu 2
  238566. 15c7aedd46 Merge pull request \fI\%#30508\fP from rallytime/linode\-clone\-fixes
  238567. .IP \(bu 2
  238568. d26ed74bde Make sure the correct profile parameters are being checked when cloning
  238569. .IP \(bu 2
  238570. 1d7e229377 Fix Linode driver cloning functionality.
  238571. .UNINDENT
  238572. .IP \(bu 2
  238573. \fBPR\fP \fI\%#30522\fP: (\fI\%terminalmage\fP) Update git.list_worktree tests to reflect new return data
  238574. @ \fI2016\-01\-21 22:34:20 UTC\fP
  238575. .INDENT 2.0
  238576. .IP \(bu 2
  238577. 79528c59c3 Merge pull request \fI\%#30522\fP from terminalmage/fix\-worktree\-tests
  238578. .IP \(bu 2
  238579. ea0ca70187 Add git.list_worktrees unit test
  238580. .IP \(bu 2
  238581. 393015edbb Remove git.list_worktrees tests
  238582. .UNINDENT
  238583. .IP \(bu 2
  238584. \fBISSUE\fP \fI\%#30465\fP: (\fI\%alandrees\fP) Nested imports with pyobjects (refs: \fI\%#30483\fP, \fI\%#30482\fP)
  238585. .IP \(bu 2
  238586. \fBPR\fP \fI\%#30483\fP: (\fI\%borgstrom\fP) Pyobjects recursive import support (for 2015.8)
  238587. @ \fI2016\-01\-21 15:55:27 UTC\fP
  238588. .INDENT 2.0
  238589. .IP \(bu 2
  238590. 119f025073 Merge pull request \fI\%#30483\fP from borgstrom/pyobjects_recursive\-2015.8
  238591. .IP \(bu 2
  238592. 788b672e3a Fixup lint errors
  238593. .IP \(bu 2
  238594. e148ea2d52 Allow recursive salt:// imports
  238595. .IP \(bu 2
  238596. 6bbac64d3a Add test to prove that recursive imports are currently broken
  238597. .UNINDENT
  238598. .IP \(bu 2
  238599. \fBPR\fP \fI\%#30491\fP: (\fI\%jacksontj\fP) Add multi\-IP support to network state
  238600. @ \fI2016\-01\-21 15:51:42 UTC\fP
  238601. .INDENT 2.0
  238602. .IP \(bu 2
  238603. d8d19cf75d Merge pull request \fI\%#30491\fP from jacksontj/2015.8
  238604. .IP \(bu 2
  238605. 82213555ca Normalize yaml spacing to 2 space
  238606. .IP \(bu 2
  238607. 3d1469b8d9 Add example of multiple addrs/ipv6addrs to docs
  238608. .IP \(bu 2
  238609. 91c8a1b4e4 Add support for multiple IP addresses per interface to rh_ip
  238610. .UNINDENT
  238611. .IP \(bu 2
  238612. \fBPR\fP \fI\%#30496\fP: (\fI\%anlutro\fP) Fix KeyError when adding ignored pillars
  238613. @ \fI2016\-01\-21 15:51:03 UTC\fP
  238614. .INDENT 2.0
  238615. .IP \(bu 2
  238616. 56332ca504 Merge pull request \fI\%#30496\fP from alprs/fix\-ignored_pillars_keyerror
  238617. .IP \(bu 2
  238618. bbcb783621 fix KeyError when adding ignored pillars
  238619. .UNINDENT
  238620. .IP \(bu 2
  238621. \fBPR\fP \fI\%#30359\fP: (\fI\%kingsquirrel152\fP) Removes suspected copy/paste error for zmq_filtering functionailty
  238622. @ \fI2016\-01\-20 18:42:42 UTC\fP
  238623. .INDENT 2.0
  238624. .IP \(bu 2
  238625. e425cbd654 Merge pull request \fI\%#30359\fP from distil/zmq_filtering_bug_fix
  238626. .IP \(bu 2
  238627. 44bfbbf15b Removes suspected copy/paste error.
  238628. .UNINDENT
  238629. .IP \(bu 2
  238630. \fBPR\fP \fI\%#30448\fP: (\fI\%cournape\fP) Fix osx scripts location
  238631. @ \fI2016\-01\-20 17:59:29 UTC\fP
  238632. .INDENT 2.0
  238633. .IP \(bu 2
  238634. 13add7d142 Merge pull request \fI\%#30448\fP from cournape/fix\-osx\-scripts\-location
  238635. .IP \(bu 2
  238636. 3c27ab5310 BUG: fix osx .pkg script locations to match the .plist files.
  238637. .IP \(bu 2
  238638. ed9ab68d3b BUG: fix missing sudo when linking certify cert.
  238639. .UNINDENT
  238640. .IP \(bu 2
  238641. \fBISSUE\fP \fI\%#22820\fP: (\fI\%VynceMontgomery\fP) some docs missing again (cf #22720) (refs: \fI\%#30457\fP)
  238642. .IP \(bu 2
  238643. \fBPR\fP \fI\%#30457\fP: (\fI\%rallytime\fP) Remove fsutils references from modules list
  238644. @ \fI2016\-01\-20 16:43:50 UTC\fP
  238645. .INDENT 2.0
  238646. .IP \(bu 2
  238647. 2b7d20cee7 Merge pull request \fI\%#30457\fP from rallytime/fix\-22820
  238648. .IP \(bu 2
  238649. 3288ff104d Remove fsutils references from modules list
  238650. .UNINDENT
  238651. .IP \(bu 2
  238652. \fBISSUE\fP \fI\%#30442\fP: (\fI\%ssplatt\fP) salt\-cloud linode query only lists private or public IP, not both (refs: \fI\%#30453\fP)
  238653. .IP \(bu 2
  238654. \fBPR\fP \fI\%#30453\fP: (\fI\%rallytime\fP) Make sure private AND public IPs are listed for Linode driver
  238655. @ \fI2016\-01\-20 16:41:51 UTC\fP
  238656. .INDENT 2.0
  238657. .IP \(bu 2
  238658. e706b71871 Merge pull request \fI\%#30453\fP from rallytime/fix\-30442
  238659. .IP \(bu 2
  238660. a1f882f4fe Make sure private AND public IPs are listed for Linode driver
  238661. .UNINDENT
  238662. .IP \(bu 2
  238663. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  238664. .IP \(bu 2
  238665. \fBPR\fP \fI\%#30458\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30062\fP to 2015.8
  238666. @ \fI2016\-01\-20 16:40:23 UTC\fP
  238667. .INDENT 2.0
  238668. .IP \(bu 2
  238669. \fBPR\fP \fI\%#30062\fP: (\fI\%seanjnkns\fP) Remove recurse_list from pillar_source_merging_strategy and add pilla… (refs: \fI\%#30609\fP, \fI\%#30458\fP)
  238670. .IP \(bu 2
  238671. 73f372dc98 Merge pull request \fI\%#30458\fP from rallytime/bp\-30062
  238672. .IP \(bu 2
  238673. 9665d9655f Set (pillar_)merge_lists to default for PR \fI\%#30062\fP
  238674. .IP \(bu 2
  238675. 7ea4dbf478 Fix lint for PR30062
  238676. .IP \(bu 2
  238677. e44a30620b Remove recurse_list from pillar_source_merging_strategy and add pillar_merge_list (bool) instead
  238678. .UNINDENT
  238679. .IP \(bu 2
  238680. \fBPR\fP \fI\%#30468\fP: (\fI\%timcharper\fP) make note of s3 role assumption in upcoming changelog
  238681. @ \fI2016\-01\-20 16:28:04 UTC\fP
  238682. .INDENT 2.0
  238683. .IP \(bu 2
  238684. c3fb4006b0 Merge pull request \fI\%#30468\fP from timcharper/2015.8
  238685. .IP \(bu 2
  238686. 721c1c871b make note of s3 role assumption in upcoming changelog
  238687. .UNINDENT
  238688. .IP \(bu 2
  238689. \fBPR\fP \fI\%#30470\fP: (\fI\%whiteinge\fP) Add example of the match_dict format to accept_dict wheel function
  238690. @ \fI2016\-01\-20 16:26:16 UTC\fP
  238691. .INDENT 2.0
  238692. .IP \(bu 2
  238693. c611541916 Merge pull request \fI\%#30470\fP from whiteinge/match_dict
  238694. .IP \(bu 2
  238695. 5034e13f5d Add example of the match_dict format to accept_dict wheel function
  238696. .UNINDENT
  238697. .IP \(bu 2
  238698. \fBISSUE\fP \fI\%#28017\fP: (\fI\%ThomasZhou\fP) Using salt\-cloud nova driver, raise error: SaltNova\(aq object has no attribute \(aq_discover_extensions\(aq (refs: \fI\%#30450\fP)
  238699. .IP \(bu 2
  238700. \fBPR\fP \fI\%#30450\fP: (\fI\%gtmanfred\fP) fix extension loading in novaclient
  238701. @ \fI2016\-01\-19 21:16:32 UTC\fP
  238702. .INDENT 2.0
  238703. .IP \(bu 2
  238704. d70e6b312a Merge pull request \fI\%#30450\fP from gtmanfred/2015.8
  238705. .IP \(bu 2
  238706. 4aa6faaf48 fix extension loading in novaclient
  238707. .UNINDENT
  238708. .IP \(bu 2
  238709. \fBISSUE\fP \fI\%#30150\fP: (\fI\%rapenne\-s\fP) file.line reset permissions to 600 (refs: \fI\%#30212\fP, \fI\%#30168\fP)
  238710. .IP \(bu 2
  238711. \fBPR\fP \fI\%#30212\fP: (\fI\%abednarik\fP) Fix incorrect file permissions in file.line
  238712. @ \fI2016\-01\-19 21:15:48 UTC\fP
  238713. .INDENT 2.0
  238714. .IP \(bu 2
  238715. 0af5e16809 Merge pull request \fI\%#30212\fP from abednarik/fix_file_line_permissions
  238716. .IP \(bu 2
  238717. dec15d1357 Fix incorrect file permissions in file.line
  238718. .UNINDENT
  238719. .IP \(bu 2
  238720. \fBISSUE\fP \fI\%#29918\fP: (\fI\%WangWenchao\fP) UnicodeDecodeError when saltutil.sync_modules for Windows salt\-minion 2015.8.3 (refs: \fI\%#29947\fP)
  238721. .IP \(bu 2
  238722. \fBPR\fP \fI\%#29947\fP: (\fI\%jfindlay\fP) fileclient: decode file list from master
  238723. @ \fI2016\-01\-19 20:36:32 UTC\fP
  238724. .INDENT 2.0
  238725. .IP \(bu 2
  238726. 3c12b451fe Merge pull request \fI\%#29947\fP from jfindlay/remote_decode
  238727. .IP \(bu 2
  238728. b9241fb6b0 state: use simple string formatting for messages
  238729. .IP \(bu 2
  238730. f6162f168c fileclient: decode file list from master
  238731. .UNINDENT
  238732. .IP \(bu 2
  238733. \fBISSUE\fP \fI\%#30203\fP: (\fI\%terminalmage\fP) Update salt.modules.git.list_worktrees() to use \(aqgit worktree list\(aq for Git >= 2.7.0 (refs: \fI\%#30363\fP)
  238734. .IP \(bu 2
  238735. \fBPR\fP \fI\%#30363\fP: (\fI\%terminalmage\fP) Use native "list" subcommand to list git worktrees
  238736. @ \fI2016\-01\-19 20:35:41 UTC\fP
  238737. .INDENT 2.0
  238738. .IP \(bu 2
  238739. 6e8b1e89a5 Merge pull request \fI\%#30363\fP from terminalmage/issue30203
  238740. .IP \(bu 2
  238741. ee40491166 Fix redefined variable
  238742. .IP \(bu 2
  238743. 5f95851987 Use native "list" subcommand to list git worktrees
  238744. .IP \(bu 2
  238745. 911105f27c Fix incorrect missing gitdir file detection
  238746. .UNINDENT
  238747. .IP \(bu 2
  238748. \fBPR\fP \fI\%#30445\fP: (\fI\%justinta\fP) Boto uses False for is_default instead of None
  238749. @ \fI2016\-01\-19 18:28:18 UTC\fP
  238750. .INDENT 2.0
  238751. .IP \(bu 2
  238752. dfb9dec84f Merge pull request \fI\%#30445\fP from jtand/boto_vpc_8
  238753. .IP \(bu 2
  238754. 00943ff1e6 Boto uses False for is_default instead of None
  238755. .UNINDENT
  238756. .IP \(bu 2
  238757. \fBPR\fP \fI\%#30406\fP: (\fI\%frioux\fP) Add an example of how to use file.managed/check_cmd
  238758. @ \fI2016\-01\-19 18:23:49 UTC\fP
  238759. .INDENT 2.0
  238760. .IP \(bu 2
  238761. f9b3f3f038 Merge pull request \fI\%#30406\fP from ZipRecruiter/check\-cmd\-example
  238762. .IP \(bu 2
  238763. 92e0d77a9a Add an example of how to use file.managed/check_cmd
  238764. .UNINDENT
  238765. .IP \(bu 2
  238766. \fBPR\fP \fI\%#30424\fP: (\fI\%isbm\fP) Check if byte strings are properly encoded in UTF\-8
  238767. @ \fI2016\-01\-19 17:52:25 UTC\fP
  238768. .INDENT 2.0
  238769. .IP \(bu 2
  238770. 05ad3dcc94 Merge pull request \fI\%#30424\fP from isbm/isbm\-zypper\-utf\-8\-errors
  238771. .IP \(bu 2
  238772. a0f263f411 Clarify the error message
  238773. .IP \(bu 2
  238774. 12f8e93247 Update documentation accordingly.
  238775. .IP \(bu 2
  238776. 1d384b6abd Add error handling to the RPM broken strings
  238777. .IP \(bu 2
  238778. cf0dad3a6c Rename keywords arguments variable to a default name.
  238779. .IP \(bu 2
  238780. 26aa801342 Check if byte strings are properly encoded in UTF\-8
  238781. .UNINDENT
  238782. .IP \(bu 2
  238783. \fBISSUE\fP \fI\%#30051\fP: (\fI\%joejulian\fP) glusterfs.status fails with glusterfs 3.7 (refs: \fI\%#30075\fP)
  238784. .IP \(bu 2
  238785. \fBPR\fP \fI\%#30405\fP: (\fI\%justinta\fP) Updated glusterfs.py for python2.6 compatibility.
  238786. @ \fI2016\-01\-15 22:50:06 UTC\fP
  238787. .INDENT 2.0
  238788. .IP \(bu 2
  238789. \fBPR\fP \fI\%#30075\fP: (\fI\%joejulian\fP) Convert glusterfs module to use xml (refs: \fI\%#30405\fP)
  238790. .IP \(bu 2
  238791. 1bace55e45 Merge pull request \fI\%#30405\fP from jtand/glusterfs_py26
  238792. .IP \(bu 2
  238793. a332e06c4a Fixed lint error
  238794. .IP \(bu 2
  238795. 522b4990ef Updated the rest of glusterfs.py for python2.6 compatibility
  238796. .IP \(bu 2
  238797. 971ce58cd6 updated list_peers to be python2.6 compatible
  238798. .UNINDENT
  238799. .IP \(bu 2
  238800. \fBPR\fP \fI\%#30396\fP: (\fI\%pass\-by\-value\fP) Remove hardcoded val
  238801. @ \fI2016\-01\-15 22:03:53 UTC\fP
  238802. .INDENT 2.0
  238803. .IP \(bu 2
  238804. cb1c0958bd Merge pull request \fI\%#30396\fP from pass\-by\-value/remove_hardcoded_val
  238805. .IP \(bu 2
  238806. dd90b325e7 Get vm info
  238807. .IP \(bu 2
  238808. 9430ad1465 Remove hardcoded value
  238809. .UNINDENT
  238810. .IP \(bu 2
  238811. \fBPR\fP \fI\%#30391\fP: (\fI\%justinta\fP) Added else statements
  238812. @ \fI2016\-01\-15 19:17:55 UTC\fP
  238813. .INDENT 2.0
  238814. .IP \(bu 2
  238815. \fBPR\fP \fI\%#30389\fP: (\fI\%justinta\fP) Older versions of ipset don\(aqt support comments (refs: \fI\%#30391\fP)
  238816. .IP \(bu 2
  238817. 60737c970e Merge pull request \fI\%#30391\fP from jtand/ipset
  238818. .IP \(bu 2
  238819. 345b056406 Fixed lint error
  238820. .IP \(bu 2
  238821. c20f9b6a87 Added else statements
  238822. .UNINDENT
  238823. .IP \(bu 2
  238824. \fBISSUE\fP \fI\%#30277\fP: (\fI\%webtrekker\fP) [salt\-cloud] Error actioning machines: \(aqascii\(aq codec can\(aqt encode character u\(aq\e\exa0\(aq in position 20 (refs: \fI\%#30374\fP)
  238825. .IP \(bu 2
  238826. \fBPR\fP \fI\%#30375\fP: (\fI\%rallytime\fP) Wrap formatted log statements with six.u() in cloud/__init__.py
  238827. @ \fI2016\-01\-15 18:41:55 UTC\fP
  238828. .INDENT 2.0
  238829. .IP \(bu 2
  238830. \fBPR\fP \fI\%#30374\fP: (\fI\%rallytime\fP) Wrap formatted log statements with six.u() in the VMware module (refs: \fI\%#30375\fP)
  238831. .IP \(bu 2
  238832. 6ac1f6cf54 Merge pull request \fI\%#30375\fP from rallytime/fix\-cloud\-log\-formatting
  238833. .IP \(bu 2
  238834. 5e7fb0c428 Wrap formatted log statements with six.u() in cloud/__init__.py
  238835. .UNINDENT
  238836. .IP \(bu 2
  238837. \fBPR\fP \fI\%#30384\fP: (\fI\%isbm\fP) Bugfix: info_available does not work correctly on SLE 11 series
  238838. @ \fI2016\-01\-15 18:31:57 UTC\fP
  238839. .INDENT 2.0
  238840. .IP \(bu 2
  238841. c478148b60 Merge pull request \fI\%#30384\fP from isbm/isbm\-zypper\-info\-avaiable\-fix
  238842. .IP \(bu 2
  238843. c7bc20e865 Split information, that is compatible with the Zypper\(aqs output on SLE11.
  238844. .UNINDENT
  238845. .IP \(bu 2
  238846. \fBPR\fP \fI\%#30376\fP: (\fI\%pritambaral\fP) Fix FLO_DIR path in 2015.8
  238847. @ \fI2016\-01\-15 18:25:49 UTC\fP
  238848. .INDENT 2.0
  238849. .IP \(bu 2
  238850. 9fe2df82bd Merge pull request \fI\%#30376\fP from pritambaral/fix/flo\-dir
  238851. .IP \(bu 2
  238852. 534879e79f Revert "Raet Salt broken when config moved to package directory"
  238853. .UNINDENT
  238854. .IP \(bu 2
  238855. \fBPR\fP \fI\%#30389\fP: (\fI\%justinta\fP) Older versions of ipset don\(aqt support comments (refs: \fI\%#30391\fP)
  238856. @ \fI2016\-01\-15 17:41:02 UTC\fP
  238857. .INDENT 2.0
  238858. .IP \(bu 2
  238859. 3ac3804ddc Merge pull request \fI\%#30389\fP from jtand/ipset
  238860. .IP \(bu 2
  238861. fac6c3f6ae Fixed some typos from testing
  238862. .IP \(bu 2
  238863. 67d4997316 Older versions of ipset don\(aqt support comments
  238864. .UNINDENT
  238865. .IP \(bu 2
  238866. \fBPR\fP \fI\%#30373\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  238867. @ \fI2016\-01\-15 16:23:38 UTC\fP
  238868. .INDENT 2.0
  238869. .IP \(bu 2
  238870. 4cc9422bf8 Merge pull request \fI\%#30373\fP from basepi/merge\-forward\-2015.8
  238871. .IP \(bu 2
  238872. 5b53bf2597 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  238873. .INDENT 2.0
  238874. .IP \(bu 2
  238875. 5a923b3aa9 Merge pull request \fI\%#30364\fP from rallytime/fix\-30341
  238876. .INDENT 2.0
  238877. .IP \(bu 2
  238878. 79bcf151cb Add TLS version imports and add linode driver documentation notices
  238879. .UNINDENT
  238880. .IP \(bu 2
  238881. f037fd9c27 Merge pull request \fI\%#30184\fP from rallytime/bp\-30166
  238882. .INDENT 2.0
  238883. .IP \(bu 2
  238884. fa6b1b3022 adding split_env call to cp.hash_file to pick up saltenv in file query parameter
  238885. .UNINDENT
  238886. .IP \(bu 2
  238887. 1d8413fd2f Merge pull request \fI\%#30291\fP from thegoodduke/for_fix_ipset
  238888. .INDENT 2.0
  238889. .IP \(bu 2
  238890. 62d6ccf561 ipset: fix test=true & add comment for every entry
  238891. .UNINDENT
  238892. .IP \(bu 2
  238893. 92889db638 Merge pull request \fI\%#30248\fP from jfindlay/2015.5
  238894. .INDENT 2.0
  238895. .IP \(bu 2
  238896. 741f7aba31 add 2015.5.9 release notes
  238897. .UNINDENT
  238898. .IP \(bu 2
  238899. 7a329d89d7 Merge pull request \fI\%#30237\fP from jacobhammons/man\-pages\-prev
  238900. .INDENT 2.0
  238901. .IP \(bu 2
  238902. 2431c4c5c3 Updated man page and doc conf.py copyright year to 2016
  238903. .IP \(bu 2
  238904. fe3da1c174 Updated man pages and doc version for 2015.5.9
  238905. .UNINDENT
  238906. .IP \(bu 2
  238907. 2c0b725924 Merge pull request \fI\%#30207\fP from rallytime/rabbitmq_states_doc_fix
  238908. .INDENT 2.0
  238909. .IP \(bu 2
  238910. 8d48c24182 Use correct spacing in rabbitmq state examples
  238911. .UNINDENT
  238912. .IP \(bu 2
  238913. b49cf910f4 Merge pull request \fI\%#30191\fP from jacobhammons/banner\-prev
  238914. .INDENT 2.0
  238915. .IP \(bu 2
  238916. c3390955b0 Updated doc site banners
  238917. .UNINDENT
  238918. .UNINDENT
  238919. .UNINDENT
  238920. .IP \(bu 2
  238921. \fBPR\fP \fI\%#30372\fP: (\fI\%jacobhammons\fP) Updated man pages for 2015.8.4, updated copyright to 2016
  238922. @ \fI2016\-01\-14 23:18:40 UTC\fP
  238923. .INDENT 2.0
  238924. .IP \(bu 2
  238925. a9edb194a4 Merge pull request \fI\%#30372\fP from jacobhammons/man\-pages
  238926. .IP \(bu 2
  238927. 891ddafcba Updated man pages for 2015.8.4, updated copyright to 2016
  238928. .UNINDENT
  238929. .IP \(bu 2
  238930. \fBPR\fP \fI\%#30370\fP: (\fI\%rallytime\fP) Remove incomplete function
  238931. @ \fI2016\-01\-14 22:49:45 UTC\fP
  238932. .INDENT 2.0
  238933. .IP \(bu 2
  238934. e77585de17 Merge pull request \fI\%#30370\fP from rallytime/remove\-incomplete\-func
  238935. .IP \(bu 2
  238936. e220fa5125 Remove incomplete function
  238937. .UNINDENT
  238938. .IP \(bu 2
  238939. \fBISSUE\fP \fI\%#23215\fP: (\fI\%lichtamberg\fP) Rbenv: gem.installed not using correct ruby version if it\(aqs not default on 2015.02 (refs: \fI\%#28702\fP)
  238940. .IP \(bu 2
  238941. \fBPR\fP \fI\%#30366\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28702\fP to 2015.8
  238942. @ \fI2016\-01\-14 21:10:03 UTC\fP
  238943. .INDENT 2.0
  238944. .IP \(bu 2
  238945. \fBPR\fP \fI\%#28702\fP: (\fI\%dnd\fP) Pass RBENV_VERSION in env dict, and protect shlex.split (refs: \fI\%#30366\fP)
  238946. .IP \(bu 2
  238947. eb1ecd9732 Merge pull request \fI\%#30366\fP from rallytime/bp\-28702
  238948. .IP \(bu 2
  238949. 4f2274a275 Remove extra line
  238950. .IP \(bu 2
  238951. 048b13cf73 Pass RBENV_VERSION in env dict, and protect shlex.split
  238952. .UNINDENT
  238953. .IP \(bu 2
  238954. \fBPR\fP \fI\%#30361\fP: (\fI\%cro\fP) Flip the sense of the test for proxymodule imports, add more fns for esxi proxy
  238955. @ \fI2016\-01\-14 20:54:08 UTC\fP
  238956. .INDENT 2.0
  238957. .IP \(bu 2
  238958. 40594efc0b Merge pull request \fI\%#30361\fP from cro/esxi\-proxy2
  238959. .IP \(bu 2
  238960. 8f7490ca98 Missed return statement.
  238961. .IP \(bu 2
  238962. 389ede9e3e Lint
  238963. .IP \(bu 2
  238964. 9db34d6ffe Lint
  238965. .IP \(bu 2
  238966. b5c7a46f7a Lint
  238967. .IP \(bu 2
  238968. 1a3b1f2626 Don\(aqt use short variables
  238969. .IP \(bu 2
  238970. b80577182a Remove stub functions.
  238971. .IP \(bu 2
  238972. 58f7fc3285 Don\(aqt use single character variables.
  238973. .IP \(bu 2
  238974. e712664bcf Better comment.
  238975. .IP \(bu 2
  238976. 9e9a37d0d4 Indentation.
  238977. .IP \(bu 2
  238978. 6c9bf76e19 Revert earlier vmware change for ssl cert checking.
  238979. .IP \(bu 2
  238980. db8a281ab8 Flip the sense of the test for items (modules, etc) loaded by the proxy. Now load everything a regular minion would load, and only check to make sure __proxyenabled__ is present for proxymodules and grains
  238981. .IP \(bu 2
  238982. 00c4ef6ec2 Need a list
  238983. .IP \(bu 2
  238984. 0da7a6d6d1 Recreate the pr
  238985. .UNINDENT
  238986. .IP \(bu 2
  238987. \fBPR\fP \fI\%#30267\fP: (\fI\%isbm\fP) Fix RPM issues with the date/time and add package attributes filtering
  238988. @ \fI2016\-01\-14 18:00:01 UTC\fP
  238989. .INDENT 2.0
  238990. .IP \(bu 2
  238991. f4118be6e4 Merge pull request \fI\%#30267\fP from isbm/isbm\-zypper\-isotimefix
  238992. .IP \(bu 2
  238993. 18281e7e0b Add "*time_t" as a separate attributes
  238994. .IP \(bu 2
  238995. 4105157cfd Add *time_t to the docs
  238996. .IP \(bu 2
  238997. 78e16a7b00 Construct RPM query dynamically
  238998. .IP \(bu 2
  238999. 6992d74806 Update documentation for the valid package attributes
  239000. .IP \(bu 2
  239001. 6710e4900d Use renamed variable (filter_attrs to attr)
  239002. .IP \(bu 2
  239003. b68e1228e9 Remove unnecessary check for the "name" key
  239004. .IP \(bu 2
  239005. e5b3e77186 Remove key transformations
  239006. .IP \(bu 2
  239007. 9ac52c9123 Add zone to the ISO from unix time
  239008. .IP \(bu 2
  239009. d352c08305 Fix lint: unused import
  239010. .IP \(bu 2
  239011. d571381f76 Update the documentation for the Zypper module
  239012. .IP \(bu 2
  239013. 5651a043e6 Update documentation for lowpkg
  239014. .IP \(bu 2
  239015. 7edb0e8f3f Replace "*_date_iso" with "*_date" and use Unix time as "*_date_time_t"
  239016. .IP \(bu 2
  239017. b2b21f877a Add epoch (note: this is empty on SUSE systems)
  239018. .IP \(bu 2
  239019. 0eebe10d9a Clarify description
  239020. .IP \(bu 2
  239021. a745d9ecdf Fix syntax for the documentation in zypper module
  239022. .IP \(bu 2
  239023. c95c2d24db Fix the documentation syntax
  239024. .IP \(bu 2
  239025. 1fb84538b1 Update documentation
  239026. .IP \(bu 2
  239027. 43ebff4dd7 Return build date in Unix ticks
  239028. .IP \(bu 2
  239029. bdaa1e4d6e Add package architecture attribute
  239030. .IP \(bu 2
  239031. ba64df4def Update documentation
  239032. .IP \(bu 2
  239033. 6e3743dce6 Incorporate lowpkg.info into info_installed
  239034. .IP \(bu 2
  239035. b72b8d5323 Fix the documentation
  239036. .IP \(bu 2
  239037. 181314b20e Add filtering per attributes feature
  239038. .IP \(bu 2
  239039. 39e70ef762 Fix ISO and Unix time of the package for RPM systems on C locale.
  239040. .UNINDENT
  239041. .IP \(bu 2
  239042. \fBISSUE\fP \fI\%#30330\fP: (\fI\%JensRantil\fP) salt.state.file.absent doesn\(aqt document recursiveness (refs: \fI\%#30360\fP)
  239043. .IP \(bu 2
  239044. \fBPR\fP \fI\%#30360\fP: (\fI\%jfindlay\fP) file.remove, file.absent: mention recursive dir removal
  239045. @ \fI2016\-01\-14 17:30:26 UTC\fP
  239046. .INDENT 2.0
  239047. .IP \(bu 2
  239048. b61cb7a238 Merge pull request \fI\%#30360\fP from jfindlay/remove_doc
  239049. .IP \(bu 2
  239050. a21ccd2700 file.remove, file.absent: mention recursive dir removal
  239051. .UNINDENT
  239052. .IP \(bu 2
  239053. \fBISSUE\fP \fI\%#26845\fP: (\fI\%maio\fP) Postgres module (user_exists) doesn\(aqt work with PostgreSQL 9.5 (refs: \fI\%#30221\fP)
  239054. .IP \(bu 2
  239055. \fBPR\fP \fI\%#30221\fP: (\fI\%mbarrien\fP) No rolcatupdate for user_exist in Postgres>=9.5 \fI\%#26845\fP
  239056. @ \fI2016\-01\-14 16:52:49 UTC\fP
  239057. .INDENT 2.0
  239058. .IP \(bu 2
  239059. ba8d128025 Merge pull request \fI\%#30221\fP from mbarrien/postgres\-9.5
  239060. .IP \(bu 2
  239061. a8f2bc7998 No rolcatupdate for user_exist in Postgres>=9.5 \fI\%#26845\fP
  239062. .UNINDENT
  239063. .IP \(bu 2
  239064. \fBPR\fP \fI\%#30358\fP: (\fI\%terminalmage\fP) Add libgit2 version to versions\-report
  239065. @ \fI2016\-01\-14 16:37:28 UTC\fP
  239066. .INDENT 2.0
  239067. .IP \(bu 2
  239068. 4787c2c9ad Merge pull request \fI\%#30358\fP from terminalmage/libgit2\-version
  239069. .IP \(bu 2
  239070. 89fe571791 Add libgit2 version to versions\-report
  239071. .UNINDENT
  239072. .IP \(bu 2
  239073. \fBPR\fP \fI\%#30346\fP: (\fI\%pass\-by\-value\fP) Prevent orphaned volumes
  239074. @ \fI2016\-01\-14 16:37:08 UTC\fP
  239075. .INDENT 2.0
  239076. .IP \(bu 2
  239077. af2ddfd31c Merge pull request \fI\%#30346\fP from pass\-by\-value/aws_vols_attach
  239078. .IP \(bu 2
  239079. 19fce03ee2 Prevent orphaned volumes
  239080. .UNINDENT
  239081. .IP \(bu 2
  239082. \fBPR\fP \fI\%#30349\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30347\fP to 2015.8
  239083. @ \fI2016\-01\-14 16:26:37 UTC\fP
  239084. .INDENT 2.0
  239085. .IP \(bu 2
  239086. \fBPR\fP \fI\%#30347\fP: (\fI\%rallytime\fP) Merge \fI\%#30231\fP with updates to dependency documentation (refs: \fI\%#30349\fP)
  239087. .IP \(bu 2
  239088. \fBPR\fP \fI\%#30231\fP: (\fI\%nmadhok\fP) Fix issue where pyVmomi 6.0.0 raises SSL Error for systems using Python2.7+ (refs: \fI\%#30347\fP)
  239089. .IP \(bu 2
  239090. bccb8f3b5b Merge pull request \fI\%#30349\fP from rallytime/bp\-30347
  239091. .IP \(bu 2
  239092. df70afdaa3 Merge \fI\%#30231\fP with updates to dependency documentation
  239093. .IP \(bu 2
  239094. a7c2ad5505 Fix issue where pyVmomi 6.0.0 raises SSL Error for systems using Python2.7+
  239095. .UNINDENT
  239096. .IP \(bu 2
  239097. \fBPR\fP \fI\%#30354\fP: (\fI\%anlutro\fP) Make sure all ignore_missing SLSes are catched
  239098. @ \fI2016\-01\-14 16:24:19 UTC\fP
  239099. .INDENT 2.0
  239100. .IP \(bu 2
  239101. \fBPR\fP \fI\%#19429\fP: (\fI\%ryan\-lane\fP) Add new ignore_missing option to pillar top (refs: \fI\%#30354\fP)
  239102. .IP \(bu 2
  239103. 7ee61f0d62 Merge pull request \fI\%#30354\fP from alprs/fix\-pillar_ignore_missing
  239104. .IP \(bu 2
  239105. 2f662bbc8d make sure \fIall\fP ignore_missing slses are catched
  239106. .UNINDENT
  239107. .IP \(bu 2
  239108. \fBPR\fP \fI\%#30356\fP: (\fI\%nmadhok\fP) Adding code author
  239109. @ \fI2016\-01\-14 16:23:08 UTC\fP
  239110. .INDENT 2.0
  239111. .IP \(bu 2
  239112. 4bdade6010 Merge pull request \fI\%#30356\fP from nmadhok/patch\-1
  239113. .IP \(bu 2
  239114. 581e4f5dc7 Adding code author
  239115. .UNINDENT
  239116. .IP \(bu 2
  239117. \fBPR\fP \fI\%#30340\fP: (\fI\%justinta\fP) Updated seed_test.py for changes made to seed module
  239118. @ \fI2016\-01\-13 22:50:34 UTC\fP
  239119. .INDENT 2.0
  239120. .IP \(bu 2
  239121. d5b8776355 Merge pull request \fI\%#30340\fP from jtand/seed_test_fix
  239122. .IP \(bu 2
  239123. ee764ee952 Updated seed_test.py for changes made to seed module
  239124. .UNINDENT
  239125. .IP \(bu 2
  239126. \fBISSUE\fP \fI\%#26478\fP: (\fI\%rasathus\fP) nested upstart services are not supported (refs: \fI\%#26511\fP)
  239127. .IP \(bu 2
  239128. \fBPR\fP \fI\%#30339\fP: (\fI\%jfindlay\fP) Backport \fI\%#26511\fP
  239129. @ \fI2016\-01\-13 22:35:17 UTC\fP
  239130. .INDENT 2.0
  239131. .IP \(bu 2
  239132. \fBPR\fP \fI\%#26511\fP: (\fI\%rasathus\fP) Adds support for nested upstart scripts in the form of subfolder/serv… (refs: \fI\%#30339\fP)
  239133. .IP \(bu 2
  239134. 3bbed62d07 Merge pull request \fI\%#30339\fP from jfindlay/bp\-26511
  239135. .IP \(bu 2
  239136. 89d9cd5e38 Adds support for nested upstart scripts in the form of subfolder/service. This is implemented via an os.walk through the /etc/init folder, rather than the previous glob for *.conf method.
  239137. .UNINDENT
  239138. .IP \(bu 2
  239139. \fBISSUE\fP \fI\%#28339\fP: (\fI\%boboli\fP) salt\-call state.highstate fails with ZMQError when minion has no id set in /etc/salt/minion (refs: \fI\%#28423\fP, \fI\%#28431\fP)
  239140. .IP \(bu 2
  239141. \fBPR\fP \fI\%#30343\fP: (\fI\%rallytime\fP) Fix 2015.8 from incomplete back\-port
  239142. @ \fI2016\-01\-13 21:56:26 UTC\fP
  239143. .INDENT 2.0
  239144. .IP \(bu 2
  239145. \fBPR\fP \fI\%#30187\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27606\fP to 2015.8 (refs: \fI\%#30343\fP)
  239146. .IP \(bu 2
  239147. \fBPR\fP \fI\%#28431\fP: (\fI\%plastikos\fP) Use a broader test for unset "id" (refs: \fI\%#30343\fP)
  239148. .IP \(bu 2
  239149. \fBPR\fP \fI\%#28423\fP: (\fI\%cachedout\fP) Fix issue with empty str as default minion id (refs: \fI\%#28431\fP)
  239150. .IP \(bu 2
  239151. \fBPR\fP \fI\%#28189\fP: (\fI\%plastikos\fP) Always get default option settings from salt.config (refs: \fI\%#30343\fP, \fI\%#28431\fP)
  239152. .IP \(bu 2
  239153. \fBPR\fP \fI\%#28131\fP: (\fI\%cachedout\fP) Set a fallback HWM (refs: \fI\%#30343\fP)
  239154. .IP \(bu 2
  239155. \fBPR\fP \fI\%#27606\fP: (\fI\%plastikos\fP) RFC: Add additional ZMQ tuning parameters necessary for 1k+ minions per master [WIP] (refs: \fI\%#30343\fP, \fI\%#30187\fP)
  239156. .IP \(bu 2
  239157. 6079a96e6e Merge pull request \fI\%#30343\fP from rallytime/fix\-2015.8
  239158. .IP \(bu 2
  239159. 5eef9d5067 Use a broader test for unset "id"
  239160. .IP \(bu 2
  239161. 460a3c98cc Additional corrections to use option defaults directly from salt.config
  239162. .IP \(bu 2
  239163. 4e53ef0bf6 Always get default option settings from salt.config
  239164. .IP \(bu 2
  239165. 94ee6f88af Set a fallback HWM
  239166. .UNINDENT
  239167. .IP \(bu 2
  239168. \fBPR\fP \fI\%#30342\fP: (\fI\%eliasp\fP) Correct whitespace placement in error message
  239169. @ \fI2016\-01\-13 21:32:26 UTC\fP
  239170. .INDENT 2.0
  239171. .IP \(bu 2
  239172. 7276d808ff Merge pull request \fI\%#30342\fP from eliasp/2015.8\-log\-message\-format
  239173. .IP \(bu 2
  239174. 8e37e36ac7 Correct whitespace placement in error message
  239175. .UNINDENT
  239176. .IP \(bu 2
  239177. \fBISSUE\fP \fI\%#30250\fP: (\fI\%mbarrien\fP) npm.bootstrap state runs even when test=True (refs: \fI\%#30257\fP)
  239178. .IP \(bu 2
  239179. \fBPR\fP \fI\%#30308\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30257\fP to 2015.8
  239180. @ \fI2016\-01\-13 19:20:13 UTC\fP
  239181. .INDENT 2.0
  239182. .IP \(bu 2
  239183. \fBPR\fP \fI\%#30257\fP: (\fI\%abednarik\fP) Add test in npm state. (refs: \fI\%#30308\fP)
  239184. .IP \(bu 2
  239185. 10b5728f84 Merge pull request \fI\%#30308\fP from rallytime/bp\-30257
  239186. .IP \(bu 2
  239187. 0b0d73756e Fix typos in nmp module.
  239188. .IP \(bu 2
  239189. deeeb71dda Add test in npm state.
  239190. .UNINDENT
  239191. .IP \(bu 2
  239192. \fBPR\fP \fI\%#30187\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27606\fP to 2015.8 (refs: \fI\%#30343\fP)
  239193. @ \fI2016\-01\-13 19:03:11 UTC\fP
  239194. .INDENT 2.0
  239195. .IP \(bu 2
  239196. \fBPR\fP \fI\%#27606\fP: (\fI\%plastikos\fP) RFC: Add additional ZMQ tuning parameters necessary for 1k+ minions per master [WIP] (refs: \fI\%#30343\fP, \fI\%#30187\fP)
  239197. .IP \(bu 2
  239198. afa61c03db Merge pull request \fI\%#30187\fP from rallytime/bp\-27606
  239199. .IP \(bu 2
  239200. 8ef6d6c6fd Add additional ZMQ tuning parameters necessary for 1,000+ minions per server. Start collecting tuning parameters together in the master config file.
  239201. .UNINDENT
  239202. .IP \(bu 2
  239203. \fBPR\fP \fI\%#30223\fP: (\fI\%serge\-p\fP) adding support for DragonFly BSD
  239204. @ \fI2016\-01\-13 18:24:29 UTC\fP
  239205. .INDENT 2.0
  239206. .IP \(bu 2
  239207. 7e89a460e4 Merge pull request \fI\%#30223\fP from serge\-p/patch\-11
  239208. .IP \(bu 2
  239209. ec798acbcd Update pkgng.py
  239210. .IP \(bu 2
  239211. 45206dfe3d adding support for DragonFly BSD
  239212. .UNINDENT
  239213. .IP \(bu 2
  239214. \fBISSUE\fP \fI\%#28396\fP: (\fI\%ymote\fP) salt\-cloud parallel provisioning (\-P option) failed on 2015.8.1 (refs: \fI\%#30238\fP)
  239215. .IP \(bu 2
  239216. \fBISSUE\fP \fI\%#23824\fP: (\fI\%kiorky\fP) salt.crypt broken in develop (refs: \fI\%#23825\fP)
  239217. .IP \(bu 2
  239218. \fBPR\fP \fI\%#30238\fP: (\fI\%rallytime\fP) Reinit crypto before calling RSA.generate when generating keys.
  239219. @ \fI2016\-01\-13 18:22:11 UTC\fP
  239220. .INDENT 2.0
  239221. .IP \(bu 2
  239222. \fBPR\fP \fI\%#23825\fP: (\fI\%kiorky\fP) Fix crypto (refs: \fI\%#30238\fP)
  239223. .IP \(bu 2
  239224. 5a8da62008 Merge pull request \fI\%#30238\fP from rallytime/fix\-28396
  239225. .IP \(bu 2
  239226. 41d9df45bb Reinit crypto before calling RSA.generate when generating keys.
  239227. .UNINDENT
  239228. .IP \(bu 2
  239229. \fBISSUE\fP \fI\%#24237\fP: (\fI\%Grokzen\fP) Minion schedule return data missing some fields (refs: \fI\%#30246\fP)
  239230. .IP \(bu 2
  239231. \fBPR\fP \fI\%#30246\fP: (\fI\%dmacvicar\fP) Add missing return data to scheduled jobs (\fI\%#24237\fP)
  239232. @ \fI2016\-01\-13 17:51:49 UTC\fP
  239233. .INDENT 2.0
  239234. .IP \(bu 2
  239235. 15707e0ac8 Merge pull request \fI\%#30246\fP from dmacvicar/dmacvicar\-2015.8\-24237
  239236. .IP \(bu 2
  239237. c462139dbb lint: E8713(test\-for\-membership\-should\-be\-not\-in)
  239238. .IP \(bu 2
  239239. 5a1b2ca486 include the \(aqsuccess\(aq field in scheduled jobs return data (part of \fI\%#24237\fP)
  239240. .IP \(bu 2
  239241. f72a4ca42d add retcode to scheduled jobs return data (part of \fI\%#24237\fP)
  239242. .UNINDENT
  239243. .IP \(bu 2
  239244. \fBPR\fP \fI\%#30292\fP: (\fI\%thegoodduke\fP) ipset: fix test=true & add comment for every entry
  239245. @ \fI2016\-01\-13 17:49:16 UTC\fP
  239246. .INDENT 2.0
  239247. .IP \(bu 2
  239248. \fBPR\fP \fI\%#30170\fP: (\fI\%thegoodduke\fP) ipset: fix comment and test (refs: \fI\%#30291\fP, \fI\%#30292\fP)
  239249. .IP \(bu 2
  239250. 8706720148 Merge pull request \fI\%#30292\fP from thegoodduke/fix_ipset
  239251. .IP \(bu 2
  239252. 49d70bff16 ipset: fix test=true & add comment for every entry
  239253. .UNINDENT
  239254. .IP \(bu 2
  239255. \fBISSUE\fP \fI\%#30240\fP: (\fI\%snw1968\fP) firewalld inconsistent permanent option used for services but not ports \- other options required (refs: \fI\%#30275\fP)
  239256. .IP \(bu 2
  239257. \fBPR\fP \fI\%#30275\fP: (\fI\%abednarik\fP) Add permanent argument in firewalld.
  239258. @ \fI2016\-01\-13 17:44:43 UTC\fP
  239259. .INDENT 2.0
  239260. .IP \(bu 2
  239261. ea607675f5 Merge pull request \fI\%#30275\fP from abednarik/fix_firewalld_ports_permanent
  239262. .IP \(bu 2
  239263. e3d4bf51da Add permanent argument in firewalld.
  239264. .UNINDENT
  239265. .IP \(bu 2
  239266. \fBPR\fP \fI\%#30328\fP: (\fI\%cachedout\fP) Fix file test
  239267. @ \fI2016\-01\-13 17:42:22 UTC\fP
  239268. .INDENT 2.0
  239269. .IP \(bu 2
  239270. f02db44757 Merge pull request \fI\%#30328\fP from cachedout/fix_file_test
  239271. .IP \(bu 2
  239272. dcfba51556 Lint
  239273. .IP \(bu 2
  239274. b9921128af Kill pointless tests
  239275. .IP \(bu 2
  239276. 63c157d0a3 Fix test_managed
  239277. .UNINDENT
  239278. .IP \(bu 2
  239279. \fBPR\fP \fI\%#30310\fP: (\fI\%pass\-by\-value\fP) Empty bucket fix
  239280. @ \fI2016\-01\-13 17:30:45 UTC\fP
  239281. .INDENT 2.0
  239282. .IP \(bu 2
  239283. edd94aea2c Merge pull request \fI\%#30310\fP from pass\-by\-value/empty_bucket_fix
  239284. .IP \(bu 2
  239285. aef5a8898c Add fix for else code path
  239286. .IP \(bu 2
  239287. 9398c44945 Check and report empty S3 bucket
  239288. .UNINDENT
  239289. .IP \(bu 2
  239290. \fBPR\fP \fI\%#30211\fP: (\fI\%techhat\fP) Execute choot on the correct path
  239291. @ \fI2016\-01\-13 16:53:40 UTC\fP
  239292. .INDENT 2.0
  239293. .IP \(bu 2
  239294. f23f0f30d4 Merge pull request \fI\%#30211\fP from techhat/tmppath
  239295. .IP \(bu 2
  239296. 11ac2ff0bf Revert "We\(aqre putting the keys directly in place; \-c isn\(aqt used"
  239297. .IP \(bu 2
  239298. e75b48f5ff We\(aqre putting the keys directly in place; \-c isn\(aqt used
  239299. .IP \(bu 2
  239300. 5d7a0f6d81 Execute choot on the correct path
  239301. .UNINDENT
  239302. .IP \(bu 2
  239303. \fBISSUE\fP \fI\%#30286\fP: (\fI\%tkunicki\fP) salt\-cloud ec2 spot requests fail with userdata_file in config or profile (refs: \fI\%#30304\fP)
  239304. .IP \(bu 2
  239305. \fBPR\fP \fI\%#30309\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30304\fP to 2015.8
  239306. @ \fI2016\-01\-13 16:41:53 UTC\fP
  239307. .INDENT 2.0
  239308. .IP \(bu 2
  239309. \fBPR\fP \fI\%#30304\fP: (\fI\%tkunicki\fP) add spot_prefix to UserData param (refs: \fI\%#30309\fP)
  239310. .IP \(bu 2
  239311. 5154c71127 Merge pull request \fI\%#30309\fP from rallytime/bp\-30304
  239312. .IP \(bu 2
  239313. 4a8cc87b47 add spot_prefix to UserData param
  239314. .UNINDENT
  239315. .IP \(bu 2
  239316. \fBPR\fP \fI\%#30278\fP: (\fI\%nmadhok\fP) If datacenter is specified in the config, then look for managed objects under it
  239317. @ \fI2016\-01\-13 15:29:36 UTC\fP
  239318. .INDENT 2.0
  239319. .IP \(bu 2
  239320. 1624d6cebd Merge pull request \fI\%#30278\fP from nmadhok/2015.8\-samename\-objects\-fix
  239321. .IP \(bu 2
  239322. b0e86afa00 get_mor_by_property needs container_ref to be a positional parameter
  239323. .IP \(bu 2
  239324. 56dfc63f91 If datacenter is specified, start all searches under datacenter
  239325. .IP \(bu 2
  239326. fcf77b738e If datacenter is specified then look under it instead of looking under inventory root folder
  239327. .UNINDENT
  239328. .IP \(bu 2
  239329. \fBPR\fP \fI\%#30305\fP: (\fI\%jacobhammons\fP) Changed examples to use the "example.com" domain instead of "mycompan…
  239330. @ \fI2016\-01\-12 20:42:10 UTC\fP
  239331. .INDENT 2.0
  239332. .IP \(bu 2
  239333. fc9304f7f8 Merge pull request \fI\%#30305\fP from jacobhammons/example\-domain
  239334. .IP \(bu 2
  239335. 53d17f1f85 Changed examples to use the "example.com" domain instead of "mycompany.com" or "company.com"
  239336. .UNINDENT
  239337. .IP \(bu 2
  239338. \fBPR\fP \fI\%#30249\fP: (\fI\%mpreziuso\fP) Fixes performance and timeout issues on win_pkg.install
  239339. @ \fI2016\-01\-12 20:14:54 UTC\fP
  239340. .INDENT 2.0
  239341. .IP \(bu 2
  239342. 3bd02a898f Merge pull request \fI\%#30249\fP from mpreziuso/patch\-2
  239343. .IP \(bu 2
  239344. d6e6e10534 Fixes lint issues
  239345. .IP \(bu 2
  239346. 3251424838 Fixes performance and timeout issues on win_pkg.install
  239347. .UNINDENT
  239348. .IP \(bu 2
  239349. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run
  239350. @ \fI2016\-01\-12 20:11:13 UTC\fP
  239351. .INDENT 2.0
  239352. .IP \(bu 2
  239353. 461a741e14 Merge pull request \fI\%#30217\fP from pass\-by\-value/cloud_actions_dispatch
  239354. .IP \(bu 2
  239355. 1f68ce05bc Fix pylint error
  239356. .IP \(bu 2
  239357. d5b1b60b99 Add CLI Example
  239358. .IP \(bu 2
  239359. 5264449fdb Make sure cloud actions can be called via salt run
  239360. .UNINDENT
  239361. .IP \(bu 2
  239362. \fBISSUE\fP \fI\%#9569\fP: (\fI\%clearclaw\fP) How can a binary file, such as a license key, be distributed via Pillar? (refs: \fI\%#30268\fP)
  239363. .IP \(bu 2
  239364. \fBPR\fP \fI\%#30268\fP: (\fI\%terminalmage\fP) Optimize file_tree ext_pillar and update file.managed to allow for binary contents
  239365. @ \fI2016\-01\-12 20:09:19 UTC\fP
  239366. .INDENT 2.0
  239367. .IP \(bu 2
  239368. 4a6b53f329 Merge pull request \fI\%#30268\fP from terminalmage/issue9569
  239369. .IP \(bu 2
  239370. 724b2f36ce Add file_tree/file.managed/contents_pillar example to FAQ
  239371. .IP \(bu 2
  239372. 854c7d9978 Remove old FAQ item referencing gitfs bug in 0.16.x
  239373. .IP \(bu 2
  239374. e9a6d709f9 salt.states.file.managed: Allow for binary contents
  239375. .IP \(bu 2
  239376. 1ba448b619 salt.pillar.file_tree: Optimizations, deprecate raw_data
  239377. .IP \(bu 2
  239378. 650cc0af5c salt.modules.file: Improve docstrings
  239379. .UNINDENT
  239380. .IP \(bu 2
  239381. \fBISSUE\fP \fI\%#29078\fP: (\fI\%Reiner030\fP) boto_secgroup didn\(aqt work as expected in Debian Jessie (refs: \fI\%#30155\fP)
  239382. .IP \(bu 2
  239383. \fBPR\fP \fI\%#30245\fP: (\fI\%rallytime\fP) Boto secgroup/iam_role: Add note stating us\-east\-1 is default region
  239384. @ \fI2016\-01\-12 20:04:31 UTC\fP
  239385. .INDENT 2.0
  239386. .IP \(bu 2
  239387. \fBPR\fP \fI\%#30155\fP: (\fI\%rallytime\fP) Update boto_secgroup and boto_iam_role docs to only use region OR profile (refs: \fI\%#30245\fP)
  239388. .IP \(bu 2
  239389. dbe7bcdc9a Merge pull request \fI\%#30245\fP from rallytime/botosecgroup\-docs
  239390. .IP \(bu 2
  239391. 406a138f76 Boto secgroup/iam_role: Add note stating us\-east\-1 is default region
  239392. .UNINDENT
  239393. .IP \(bu 2
  239394. \fBPR\fP \fI\%#30299\fP: (\fI\%rallytime\fP) ESXi Proxy minions states are located at salt.states.esxi, not vsphere.
  239395. @ \fI2016\-01\-12 20:03:31 UTC\fP
  239396. .INDENT 2.0
  239397. .IP \(bu 2
  239398. 6b183778f1 Merge pull request \fI\%#30299\fP from rallytime/esxi\-proxy\-doc\-fix
  239399. .IP \(bu 2
  239400. db68fc48a8 Fix CLI Example syntax
  239401. .IP \(bu 2
  239402. 1cb9f29798 ESXi Proxy minions states are located at salt.states.esxi, not vsphere.
  239403. .UNINDENT
  239404. .IP \(bu 2
  239405. \fBPR\fP \fI\%#30202\fP: (\fI\%opdude\fP) Fixed the periodic call to beacons
  239406. @ \fI2016\-01\-12 19:58:44 UTC\fP
  239407. .INDENT 2.0
  239408. .IP \(bu 2
  239409. 903289d3fb Merge pull request \fI\%#30202\fP from Unity\-Technologies/hotfix/beacon_periodic
  239410. .IP \(bu 2
  239411. ea7a86fa7d Fixed the periodic call to beacons
  239412. .UNINDENT
  239413. .IP \(bu 2
  239414. \fBPR\fP \fI\%#30303\fP: (\fI\%jacobhammons\fP) Changed notes to indicate that functions are matched using regular ex…
  239415. @ \fI2016\-01\-12 19:15:16 UTC\fP
  239416. .INDENT 2.0
  239417. .IP \(bu 2
  239418. 48d2bd9e78 Merge pull request \fI\%#30303\fP from jacobhammons/pcre\-match
  239419. .IP \(bu 2
  239420. e5079ab4c9 Changed notes to indicate that functions are matched using regular expressions instead of minions
  239421. .UNINDENT
  239422. .IP \(bu 2
  239423. \fBISSUE\fP \fI\%#29684\fP: (\fI\%snarfmonkey\fP) Upgrade from 2015.8.1 to 2015.8.3 via apt for Ubuntu 14.04 causes Dulwich\-backed gitfs to stop working (refs: \fI\%#30284\fP)
  239424. .IP \(bu 2
  239425. \fBPR\fP \fI\%#30284\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: Fix Dulwich env detection and submodule handling
  239426. @ \fI2016\-01\-12 19:11:36 UTC\fP
  239427. .INDENT 2.0
  239428. .IP \(bu 2
  239429. 675ac4b43f Merge pull request \fI\%#30284\fP from terminalmage/issue29684
  239430. .IP \(bu 2
  239431. a746014f7e salt.utils.gitfs: Fix Dulwich env detection and submodule handling
  239432. .UNINDENT
  239433. .IP \(bu 2
  239434. \fBPR\fP \fI\%#30280\fP: (\fI\%jfindlay\fP) add state mocking to release notes
  239435. @ \fI2016\-01\-12 19:10:40 UTC\fP
  239436. .INDENT 2.0
  239437. .IP \(bu 2
  239438. 8f65e822d7 Merge pull request \fI\%#30280\fP from jfindlay/state_mock_doc
  239439. .IP \(bu 2
  239440. 22c1129f02 modules.state.sls,highstate: mock versionadded
  239441. .IP \(bu 2
  239442. 934de30939 add state mock to 2015.8.4 release notes
  239443. .UNINDENT
  239444. .IP \(bu 2
  239445. \fBISSUE\fP \fI\%#30117\fP: (\fI\%MadsRC\fP) Service beacons fails with Stacktraces (refs: \fI\%#30121\fP)
  239446. .IP \(bu 2
  239447. \fBPR\fP \fI\%#30273\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30121\fP to 2015.8
  239448. @ \fI2016\-01\-12 19:10:16 UTC\fP
  239449. .INDENT 2.0
  239450. .IP \(bu 2
  239451. \fBPR\fP \fI\%#30121\fP: (\fI\%MadsRC\fP) Patch for issue \fI\%#30117\fP (refs: \fI\%#30273\fP)
  239452. .IP \(bu 2
  239453. c9ade42d10 Merge pull request \fI\%#30273\fP from rallytime/bp\-30121
  239454. .IP \(bu 2
  239455. c8c30f2105 I fail at linting... Fixed my uppercase/lowercase problem
  239456. .IP \(bu 2
  239457. 0877b33026 Fixed some linting issues
  239458. .IP \(bu 2
  239459. 8ec36497a1 Added note about systemd and uncleanshutdown. Also fixed line lenght of comments to max 80 characters as per PEP0008
  239460. .IP \(bu 2
  239461. a50428d02c On an unclean shutdown, if oncleanshutdown is given a path, an keyy:value of shutdown:unclean is added to the returned data. The documentation states that the key should be \(aquncleanshutdown\(aq and that the value should either be True or False. This is fixed in the code
  239462. .IP \(bu 2
  239463. 51b57f1820 Fixed issue number \fI\%#30117\fP \- When no parameters are given to a service, the service object is of type None and thus isn\(aqt iterable. This is contrary to the documentation which states that there are default values. Default values added as False
  239464. .UNINDENT
  239465. .IP \(bu 2
  239466. \fBPR\fP \fI\%#30301\fP: (\fI\%cachedout\fP) Accept whatever comes into hightstate mock for state tests
  239467. @ \fI2016\-01\-12 18:33:14 UTC\fP
  239468. .INDENT 2.0
  239469. .IP \(bu 2
  239470. 3a5a84a790 Merge pull request \fI\%#30301\fP from cachedout/fix_state_tests
  239471. .IP \(bu 2
  239472. 2c62b464b1 Accept whatever comes into hightstate mock for state tests
  239473. .UNINDENT
  239474. .IP \(bu 2
  239475. \fBISSUE\fP \fI\%#28586\fP: (\fI\%zmalone\fP) file.append does not differentiate between tabs and spaces (refs: \fI\%#30156\fP)
  239476. .IP \(bu 2
  239477. \fBPR\fP \fI\%#30282\fP: (\fI\%cachedout\fP) Fix file.append logic
  239478. @ \fI2016\-01\-12 18:27:30 UTC\fP
  239479. .INDENT 2.0
  239480. .IP \(bu 2
  239481. \fBPR\fP \fI\%#30156\fP: (\fI\%abednarik\fP) Add option in file.append to ignore_whitespace. (refs: \fI\%#30282\fP)
  239482. .IP \(bu 2
  239483. 8438d19815 Merge pull request \fI\%#30282\fP from cachedout/fix_30156
  239484. .IP \(bu 2
  239485. 3f633ff15e Lint
  239486. .IP \(bu 2
  239487. 99dd11dec2 Remove debugging
  239488. .IP \(bu 2
  239489. 35ef585c54 Fix logic error in file.append
  239490. .UNINDENT
  239491. .IP \(bu 2
  239492. \fBPR\fP \fI\%#30289\fP: (\fI\%cro\fP) Fix problems with targeting proxies by grains
  239493. @ \fI2016\-01\-12 18:16:57 UTC\fP
  239494. .INDENT 2.0
  239495. .IP \(bu 2
  239496. 530c9ec6ec Merge pull request \fI\%#30289\fP from cro/proxy_grains_fix
  239497. .IP \(bu 2
  239498. 8362d76440 Add comments.
  239499. .IP \(bu 2
  239500. 4e50962642 Merge branch \(aqproxy_grains_fix\(aq of github.com:cro/salt into proxy_grains_fix
  239501. .INDENT 2.0
  239502. .IP \(bu 2
  239503. 61bb6a9a14 Lint.
  239504. .IP \(bu 2
  239505. 7c35333509 Force a grains sync after we load the proxy\(aqs grains.
  239506. .IP \(bu 2
  239507. 2855ba7da5 Disallow non\-proxyenabled modules and grains
  239508. .UNINDENT
  239509. .IP \(bu 2
  239510. 8fd8f3beb7 Lint.
  239511. .IP \(bu 2
  239512. 144fea02e5 Force a grains sync after we load the proxy\(aqs grains.
  239513. .IP \(bu 2
  239514. 5ecf85017b Disallow non\-proxyenabled modules and grains
  239515. .UNINDENT
  239516. .IP \(bu 2
  239517. \fBPR\fP \fI\%#30293\fP: (\fI\%cro\fP) Ensure we don\(aqt log stuff we shouldn\(aqt
  239518. @ \fI2016\-01\-12 18:04:25 UTC\fP
  239519. .INDENT 2.0
  239520. .IP \(bu 2
  239521. 75b83453cf Merge pull request \fI\%#30293\fP from cro/proxy_log_cleanup
  239522. .IP \(bu 2
  239523. b358fe370c Merge remote\-tracking branch \(aqorigin/proxy_log_cleanup\(aq into proxy_log_cleanup
  239524. .INDENT 2.0
  239525. .IP \(bu 2
  239526. c9a5680427 Add unused \(aqoutput_loglevel\(aq kwarg. This is here for when we alias cmd.run_all directly to _run_all_quiet in certain chicken\-and\-egg situations where modules need to work both before and after the __salt__ dictionary is populated (cf dracr.py).
  239527. .IP \(bu 2
  239528. 8c46de12e4 Ensure we don\(aqt log stuff we shouldn\(aqt.
  239529. .UNINDENT
  239530. .IP \(bu 2
  239531. 3267d92216 Add unused \(aqoutput_loglevel\(aq kwarg. This is here for when we alias cmd.run_all directly to _run_all_quiet in certain chicken\-and\-egg situations where modules need to work both before and after the __salt__ dictionary is populated (cf dracr.py).
  239532. .IP \(bu 2
  239533. 6a86bdc6da Ensure we don\(aqt log stuff we shouldn\(aqt.
  239534. .UNINDENT
  239535. .IP \(bu 2
  239536. \fBPR\fP \fI\%#30279\fP: (\fI\%cachedout\fP) Allow modules to be packed into boto utils
  239537. @ \fI2016\-01\-12 16:53:54 UTC\fP
  239538. .INDENT 2.0
  239539. .IP \(bu 2
  239540. 46681658e0 Merge pull request \fI\%#30279\fP from cachedout/boto_pack
  239541. .IP \(bu 2
  239542. 11d27ba694 Mock config module in utils test
  239543. .IP \(bu 2
  239544. 62a1818287 Lint
  239545. .IP \(bu 2
  239546. cf440036dd Remove unused import
  239547. .IP \(bu 2
  239548. 36d55ea0ad Allow modules to be packed into boto utils
  239549. .UNINDENT
  239550. .IP \(bu 2
  239551. \fBISSUE\fP \fI\%#29951\fP: (\fI\%Reiner030\fP) boto_ec2 params needed (refs: \fI\%#30186\fP)
  239552. .IP \(bu 2
  239553. \fBPR\fP \fI\%#30186\fP: (\fI\%rallytime\fP) Update CLI Examples in boto_ec2 module to reflect correct arg/kwarg positioning
  239554. @ \fI2016\-01\-08 19:00:45 UTC\fP
  239555. .INDENT 2.0
  239556. .IP \(bu 2
  239557. 54b9641330 Merge pull request \fI\%#30186\fP from rallytime/fix\-29951
  239558. .IP \(bu 2
  239559. a943b505cc Update CLI Examples in boto_ec2 module to reflect correct arg/kwarg positioning
  239560. .UNINDENT
  239561. .IP \(bu 2
  239562. \fBISSUE\fP \fI\%#28586\fP: (\fI\%zmalone\fP) file.append does not differentiate between tabs and spaces (refs: \fI\%#30156\fP)
  239563. .IP \(bu 2
  239564. \fBPR\fP \fI\%#30156\fP: (\fI\%abednarik\fP) Add option in file.append to ignore_whitespace. (refs: \fI\%#30282\fP)
  239565. @ \fI2016\-01\-08 16:07:23 UTC\fP
  239566. .INDENT 2.0
  239567. .IP \(bu 2
  239568. 1256fd11e1 Merge pull request \fI\%#30156\fP from abednarik/ignore_whitespace_file_append
  239569. .IP \(bu 2
  239570. af68086e5c Add option in file.append to ignore_whitespace.
  239571. .UNINDENT
  239572. .IP \(bu 2
  239573. \fBPR\fP \fI\%#30189\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30185\fP to 2015.8
  239574. @ \fI2016\-01\-07 23:32:05 UTC\fP
  239575. .INDENT 2.0
  239576. .IP \(bu 2
  239577. \fBPR\fP \fI\%#30185\fP: (\fI\%cachedout\fP) Fix \fI\%#30118\fP (refs: \fI\%#30189\fP)
  239578. .IP \(bu 2
  239579. \fBPR\fP \fI\%#30118\fP: (\fI\%thatch45\fP) State mock (refs: \fI\%#30185\fP, \fI\%#30189\fP)
  239580. .IP \(bu 2
  239581. ad7522c98d Merge pull request \fI\%#30189\fP from rallytime/bp\-30185
  239582. .IP \(bu 2
  239583. 70681bf03b Fix for mock state PR \fI\%#30118\fP
  239584. .IP \(bu 2
  239585. f9480f66d8 change arg to mocked to try test suite collision fix
  239586. .IP \(bu 2
  239587. 2fbdcda703 fix some typos
  239588. .IP \(bu 2
  239589. 6f757b8c81 Add Mock to state.sls
  239590. .IP \(bu 2
  239591. fb0cbd185e fix issue where the name may be in 2 places
  239592. .IP \(bu 2
  239593. 5f0326e521 Start on the state mock system
  239594. .UNINDENT
  239595. .IP \(bu 2
  239596. \fBISSUE\fP \fI\%#9319\fP: (\fI\%gravyboat\fP) Update Reactor docs with an example using salt\-cloud from the commandline. (refs: \fI\%#30215\fP)
  239597. .IP \(bu 2
  239598. \fBISSUE\fP \fI\%#8146\fP: (\fI\%basepi\fP) Make implications of extra accepted keys on timeouts more obvious (refs: \fI\%#30215\fP)
  239599. .IP \(bu 2
  239600. \fBISSUE\fP \fI\%#6853\fP: (\fI\%Psycojoker\fP) Salt formulas should be way more visible in the documentation (refs: \fI\%#30215\fP)
  239601. .IP \(bu 2
  239602. \fBISSUE\fP \fI\%#4381\fP: (\fI\%mlister2006\fP) peer_run: glob, pcre matching. Better docs (refs: \fI\%#30215\fP)
  239603. .IP \(bu 2
  239604. \fBISSUE\fP \fI\%#2229\fP: (\fI\%alekibango\fP) how to debug zeromq problem with hanging salt communication? (refs: \fI\%#30215\fP)
  239605. .IP \(bu 2
  239606. \fBISSUE\fP \fI\%#15042\fP: (\fI\%cvrebert\fP) percent signs not escaped in cron commands (refs: \fI\%#30215\fP)
  239607. .IP \(bu 2
  239608. \fBISSUE\fP \fI\%#14946\fP: (\fI\%ryan\-lane\fP) reload_modules not documented in global state arguments documentation (refs: \fI\%#30215\fP)
  239609. .IP \(bu 2
  239610. \fBISSUE\fP \fI\%#13777\fP: (\fI\%gravyboat\fP) Update top module docs with more concise examples (refs: \fI\%#30215\fP)
  239611. .IP \(bu 2
  239612. \fBISSUE\fP \fI\%#13036\fP: (\fI\%tminn\fP) salstack tomcat module (refs: \fI\%#30215\fP)
  239613. .IP \(bu 2
  239614. \fBPR\fP \fI\%#30215\fP: (\fI\%jacobhammons\fP) Assorted doc bug fixes
  239615. @ \fI2016\-01\-07 21:53:27 UTC\fP
  239616. .INDENT 2.0
  239617. .IP \(bu 2
  239618. 8f30f7045a Merge pull request \fI\%#30215\fP from jacobhammons/doc\-issues
  239619. .IP \(bu 2
  239620. 44ce704206 Updated \fIzmq_monitor\fP docs
  239621. .IP \(bu 2
  239622. 0d2111d397 Assorted doc bug fixes
  239623. .UNINDENT
  239624. .IP \(bu 2
  239625. \fBISSUE\fP \fI\%#30204\fP: (\fI\%anlutro\fP) salt can\(aqt find local cache return file (refs: \fI\%#30206\fP)
  239626. .IP \(bu 2
  239627. \fBPR\fP \fI\%#30206\fP: (\fI\%cachedout\fP) Revert "Fix incorrect file permissions in file.line"
  239628. @ \fI2016\-01\-07 17:55:48 UTC\fP
  239629. .INDENT 2.0
  239630. .IP \(bu 2
  239631. 2000800915 Merge pull request \fI\%#30206\fP from cachedout/revert_30168
  239632. .IP \(bu 2
  239633. ee786293e7 Revert "Fix incorrect file permissions in file.line"
  239634. .UNINDENT
  239635. .IP \(bu 2
  239636. \fBPR\fP \fI\%#30190\fP: (\fI\%jacobhammons\fP) Updated doc site banners
  239637. @ \fI2016\-01\-06 22:37:34 UTC\fP
  239638. .INDENT 2.0
  239639. .IP \(bu 2
  239640. 5632ccb796 Merge pull request \fI\%#30190\fP from jacobhammons/banners
  239641. .IP \(bu 2
  239642. 266023baf1 Updated doc site banners
  239643. .UNINDENT
  239644. .IP \(bu 2
  239645. \fBISSUE\fP \fI\%#30171\fP: (\fI\%jamusj\fP) Python 2.7 dependency in x509.py (refs: \fI\%#30180\fP)
  239646. .IP \(bu 2
  239647. \fBPR\fP \fI\%#30180\fP: (\fI\%jfindlay\fP) modules.x509._dec2hex: add fmt index for 2.6 compat
  239648. @ \fI2016\-01\-06 19:48:50 UTC\fP
  239649. .INDENT 2.0
  239650. .IP \(bu 2
  239651. 9a83247992 Merge pull request \fI\%#30180\fP from jfindlay/2.7x509
  239652. .IP \(bu 2
  239653. 907469d04a modules.x509._dec2hex: add fmt index for 2.6 compat
  239654. .UNINDENT
  239655. .IP \(bu 2
  239656. \fBPR\fP \fI\%#30179\fP: (\fI\%terminalmage\fP) Backport \fI\%#26962\fP to 2015.8 branch
  239657. @ \fI2016\-01\-06 19:48:30 UTC\fP
  239658. .INDENT 2.0
  239659. .IP \(bu 2
  239660. \fBPR\fP \fI\%#26962\fP: (\fI\%ctrlrsf\fP) Add \-\-state\-verbose command line option to salt cmd (refs: \fI\%#30179\fP)
  239661. .IP \(bu 2
  239662. 6516d5b5d0 Merge pull request \fI\%#30179\fP from terminalmage/bp\-26962
  239663. .IP \(bu 2
  239664. 08f2021f52 Fix pylint warnings: unnecessary parens after if keyword
  239665. .IP \(bu 2
  239666. a2ec721661 Add \-\-state\-verbose command line option to salt cmd
  239667. .UNINDENT
  239668. .IP \(bu 2
  239669. \fBISSUE\fP \fI\%#29654\fP: (\fI\%schaarsc\fP) ssh_auth should report missing source (refs: \fI\%#29693\fP)
  239670. .IP \(bu 2
  239671. \fBPR\fP \fI\%#29693\fP: (\fI\%abednarik\fP) Handle missing source file in ssh_auth.
  239672. @ \fI2016\-01\-06 17:13:06 UTC\fP
  239673. .INDENT 2.0
  239674. .IP \(bu 2
  239675. 27df7276bc Merge pull request \fI\%#29693\fP from abednarik/handle_missing_source_in_ssh_auth
  239676. .IP \(bu 2
  239677. fc024e3cf4 Handle missing source file in ssh_auth.
  239678. .UNINDENT
  239679. .IP \(bu 2
  239680. \fBISSUE\fP \fI\%#29078\fP: (\fI\%Reiner030\fP) boto_secgroup didn\(aqt work as expected in Debian Jessie (refs: \fI\%#30155\fP)
  239681. .IP \(bu 2
  239682. \fBPR\fP \fI\%#30155\fP: (\fI\%rallytime\fP) Update boto_secgroup and boto_iam_role docs to only use region OR profile (refs: \fI\%#30245\fP)
  239683. @ \fI2016\-01\-06 17:09:50 UTC\fP
  239684. .INDENT 2.0
  239685. .IP \(bu 2
  239686. f9863dd9fb Merge pull request \fI\%#30155\fP from rallytime/boto\-secgroup\-docfix
  239687. .IP \(bu 2
  239688. f0381a955f Update boto_secgroup and boto_iam_role docs to only use region OR profile.
  239689. .UNINDENT
  239690. .IP \(bu 2
  239691. \fBISSUE\fP \fI\%#29905\fP: (\fI\%Reiner030\fP) pillar referencing for boto profiles seems not completely working right / docu missing (refs: \fI\%#30158\fP)
  239692. .IP \(bu 2
  239693. \fBPR\fP \fI\%#30158\fP: (\fI\%rallytime\fP) Move _option(value) calls to __salt__[\(aqconfig.option\(aq] in boto utils
  239694. @ \fI2016\-01\-06 16:35:59 UTC\fP
  239695. .INDENT 2.0
  239696. .IP \(bu 2
  239697. e36e8e2e73 Merge pull request \fI\%#30158\fP from rallytime/fix\-29905
  239698. .IP \(bu 2
  239699. 3321c5d408 Move _option(value) calls to __salt__[\(aqconfig.option\(aq] in boto utils
  239700. .UNINDENT
  239701. .IP \(bu 2
  239702. \fBISSUE\fP \fI\%#29770\fP: (\fI\%Ch3LL\fP) disk.usage does not work on AIX (refs: \fI\%#30160\fP)
  239703. .IP \(bu 2
  239704. \fBPR\fP \fI\%#30160\fP: (\fI\%dmurphy18\fP) Fix parsing disk usage for line with no number and AIX values in Kilos
  239705. @ \fI2016\-01\-06 16:34:45 UTC\fP
  239706. .INDENT 2.0
  239707. .IP \(bu 2
  239708. ec009a6812 Merge pull request \fI\%#30160\fP from saltstack/aix_dskusage
  239709. .IP \(bu 2
  239710. 8450df0483 Fix parsing disk usage for line with no number and AIX values in Kilos
  239711. .UNINDENT
  239712. .IP \(bu 2
  239713. \fBISSUE\fP \fI\%#29919\fP: (\fI\%abcfy2\fP) State \fBgrains.append\fP cannot append to a non\-exist grain name. (refs: \fI\%#30162\fP)
  239714. .IP \(bu 2
  239715. \fBPR\fP \fI\%#30162\fP: (\fI\%rallytime\fP) Update list_present and append grains state function docs to be more clear.
  239716. @ \fI2016\-01\-06 16:33:25 UTC\fP
  239717. .INDENT 2.0
  239718. .IP \(bu 2
  239719. f808ffbbbd Merge pull request \fI\%#30162\fP from rallytime/fix\-29919
  239720. .IP \(bu 2
  239721. 9bbd129c60 Update list_present and append grains state function docs to be more clear
  239722. .UNINDENT
  239723. .IP \(bu 2
  239724. \fBISSUE\fP \fI\%#28923\fP: (\fI\%aabognah\fP) passing argument with \(aq=no\(aq to file.line (refs: \fI\%#30163\fP)
  239725. .IP \(bu 2
  239726. \fBPR\fP \fI\%#30163\fP: (\fI\%rallytime\fP) Add warning about using "=" in file.line function
  239727. @ \fI2016\-01\-06 16:32:39 UTC\fP
  239728. .INDENT 2.0
  239729. .IP \(bu 2
  239730. 83245930a6 Merge pull request \fI\%#30163\fP from rallytime/fix\-28923
  239731. .IP \(bu 2
  239732. 0e4f91fca2 Add warning about using "=" in file.line function
  239733. .UNINDENT
  239734. .IP \(bu 2
  239735. \fBPR\fP \fI\%#30164\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  239736. @ \fI2016\-01\-06 16:28:59 UTC\fP
  239737. .INDENT 2.0
  239738. .IP \(bu 2
  239739. 106efd258a Merge pull request \fI\%#30164\fP from basepi/merge\-forward\-2015.8
  239740. .IP \(bu 2
  239741. d73a7d6c4d Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  239742. .INDENT 2.0
  239743. .IP \(bu 2
  239744. 9363d6f5b6 Merge pull request \fI\%#30125\fP from abednarik/update_user_home
  239745. .INDENT 2.0
  239746. .IP \(bu 2
  239747. 56544a77f6 Update user home event when createhome is set to False
  239748. .UNINDENT
  239749. .IP \(bu 2
  239750. 1a5d585d91 Merge pull request \fI\%#30127\fP from jsutton/clarify\-documenation\-for\-random_master
  239751. .INDENT 2.0
  239752. .IP \(bu 2
  239753. 01dbf385ef Adding random_master to reference and updating master_shuffle. Adding master_shuffle to the minion example config file as it is needed for multi\-master PKI.
  239754. .UNINDENT
  239755. .IP \(bu 2
  239756. 28b1bbbe77 Merge pull request \fI\%#30110\fP from markckimball/fix\-verify_ssl\-in\-joyent\-cloud
  239757. .INDENT 2.0
  239758. .IP \(bu 2
  239759. e1c08cb269 Fixed flag sent to salt.utils.http in order for verify_ssl to work appropriately.
  239760. .UNINDENT
  239761. .IP \(bu 2
  239762. 040412b0b1 Merge pull request \fI\%#30093\fP from zmalone/pillar\-notes
  239763. .INDENT 2.0
  239764. .IP \(bu 2
  239765. cfbfd58afe Noting that file_roots and "state tree" should both be avoided, because in some environments, the actual states show up another level down. Adding notes about why this is undesirable.
  239766. .UNINDENT
  239767. .IP \(bu 2
  239768. 25edefc93a Merge pull request \fI\%#30097\fP from cachedout/note_on_password_process_list
  239769. .INDENT 2.0
  239770. .IP \(bu 2
  239771. 58aec884ef Note concern about cleartext password in docs for shadow.gen_password
  239772. .UNINDENT
  239773. .IP \(bu 2
  239774. 6b1c3a6bf2 Merge pull request \fI\%#30089\fP from mpreziuso/patch\-1
  239775. .INDENT 2.0
  239776. .IP \(bu 2
  239777. 50533add40 Fixes terminology and adds more accurate details about the algorithms
  239778. .UNINDENT
  239779. .IP \(bu 2
  239780. 200d09385d Merge pull request \fI\%#30086\fP from cachedout/issue_29921
  239781. .INDENT 2.0
  239782. .IP \(bu 2
  239783. 8c29e2dd6a Document that gitfs needs recent libs
  239784. .UNINDENT
  239785. .IP \(bu 2
  239786. 404414bf57 Merge pull request \fI\%#30070\fP from cachedout/issue_27835
  239787. .INDENT 2.0
  239788. .IP \(bu 2
  239789. 60431e342a Add documentation on debugging salt\-ssh
  239790. .UNINDENT
  239791. .UNINDENT
  239792. .UNINDENT
  239793. .IP \(bu 2
  239794. \fBISSUE\fP \fI\%#30150\fP: (\fI\%rapenne\-s\fP) file.line reset permissions to 600 (refs: \fI\%#30212\fP, \fI\%#30168\fP)
  239795. .IP \(bu 2
  239796. \fBPR\fP \fI\%#30168\fP: (\fI\%abednarik\fP) Fix incorrect file permissions in file.line
  239797. @ \fI2016\-01\-06 16:25:08 UTC\fP
  239798. .INDENT 2.0
  239799. .IP \(bu 2
  239800. e5d87a02b9 Merge pull request \fI\%#30168\fP from abednarik/2015.8
  239801. .IP \(bu 2
  239802. 79daa25a15 Fix incorrect file permissions in file.line
  239803. .UNINDENT
  239804. .IP \(bu 2
  239805. \fBPR\fP \fI\%#30154\fP: (\fI\%Oro\fP) Fix file serialize on windows
  239806. @ \fI2016\-01\-05 18:08:40 UTC\fP
  239807. .INDENT 2.0
  239808. .IP \(bu 2
  239809. bed38d1a65 Merge pull request \fI\%#30154\fP from Oro/fix\-file\-serialize\-windows
  239810. .IP \(bu 2
  239811. 071a675f8a Fix file serialize on windows
  239812. .UNINDENT
  239813. .IP \(bu 2
  239814. \fBPR\fP \fI\%#30144\fP: (\fI\%rallytime\fP) Added generic ESXCLI command ability to ESXi Proxy Minion
  239815. @ \fI2016\-01\-05 16:23:38 UTC\fP
  239816. .INDENT 2.0
  239817. .IP \(bu 2
  239818. 7d51d8bb46 Merge pull request \fI\%#30144\fP from rallytime/vsphere\-esxcli\-cmd
  239819. .IP \(bu 2
  239820. 2f9ec5db96 Added generic ESXCLI command ability to ESXi Proxy Minion
  239821. .UNINDENT
  239822. .IP \(bu 2
  239823. \fBISSUE\fP \fI\%#29994\fP: (\fI\%adithep\fP) dockerng.push should not auto tag :latest (refs: \fI\%#30142\fP)
  239824. .IP \(bu 2
  239825. \fBISSUE\fP \fI\%#29993\fP: (\fI\%adithep\fP) Dockerng as a whole is not compatible with v2 registries. (refs: \fI\%#30142\fP)
  239826. .IP \(bu 2
  239827. \fBPR\fP \fI\%#30142\fP: (\fI\%terminalmage\fP) Fix dockerng.push, and allow for multiple images
  239828. @ \fI2016\-01\-04 22:53:50 UTC\fP
  239829. .INDENT 2.0
  239830. .IP \(bu 2
  239831. 1a21b3d46b Merge pull request \fI\%#30142\fP from terminalmage/issue29994
  239832. .IP \(bu 2
  239833. 66698986e4 Fix dockerng.push, and allow for multiple images
  239834. .UNINDENT
  239835. .IP \(bu 2
  239836. \fBISSUE\fP \fI\%#30051\fP: (\fI\%joejulian\fP) glusterfs.status fails with glusterfs 3.7 (refs: \fI\%#30075\fP)
  239837. .IP \(bu 2
  239838. \fBPR\fP \fI\%#30075\fP: (\fI\%joejulian\fP) Convert glusterfs module to use xml (refs: \fI\%#30405\fP)
  239839. @ \fI2016\-01\-04 20:33:58 UTC\fP
  239840. .INDENT 2.0
  239841. .IP \(bu 2
  239842. 5419699bd2 Merge pull request \fI\%#30075\fP from iodatacenters/2015.8_gluster_usexml
  239843. .IP \(bu 2
  239844. 01a8e7ee10 Convert glusterfs module to use xml
  239845. .UNINDENT
  239846. .IP \(bu 2
  239847. \fBPR\fP \fI\%#30129\fP: (\fI\%optix2000\fP) Clean up _uptodate() in git state
  239848. @ \fI2016\-01\-04 20:23:18 UTC\fP
  239849. .INDENT 2.0
  239850. .IP \(bu 2
  239851. a6d94358ed Merge pull request \fI\%#30129\fP from optix2000/2015.8
  239852. .IP \(bu 2
  239853. c68ea6332a No point to recast comments to a string. _uptodate() should only accept strings for comments.
  239854. .IP \(bu 2
  239855. 6c5bac4909 Properly fix concat list issue in git state.
  239856. .UNINDENT
  239857. .IP \(bu 2
  239858. \fBISSUE\fP \fI\%#28814\fP: (\fI\%peter\-slovak\fP) The "virtual" grain detection with virt\-what on LXC incorrectly yields "physical" (refs: \fI\%#29589\fP)
  239859. .IP \(bu 2
  239860. \fBPR\fP \fI\%#30139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29589\fP to 2015.8
  239861. @ \fI2016\-01\-04 20:22:47 UTC\fP
  239862. .INDENT 2.0
  239863. .IP \(bu 2
  239864. \fBPR\fP \fI\%#29589\fP: (\fI\%abednarik\fP) Added lxc in virt\-what list. (refs: \fI\%#30139\fP)
  239865. .IP \(bu 2
  239866. 68dfa0f5de Merge pull request \fI\%#30139\fP from rallytime/bp\-29589
  239867. .IP \(bu 2
  239868. 2c73990ff2 Added lxc in virt\-what list.
  239869. .UNINDENT
  239870. .IP \(bu 2
  239871. \fBISSUE\fP \fI\%#29833\fP: (\fI\%iMilnb\fP) salt minion won\(aqt start: Non valid IP address match on BSD alias format (refs: \fI\%#30124\fP)
  239872. .IP \(bu 2
  239873. \fBPR\fP \fI\%#30124\fP: (\fI\%abednarik\fP) Update regex to detect ip alias in OpenBSD.
  239874. @ \fI2016\-01\-04 19:48:28 UTC\fP
  239875. .INDENT 2.0
  239876. .IP \(bu 2
  239877. dd8d3e6f6b Merge pull request \fI\%#30124\fP from abednarik/fix_openbsd_ip_alias
  239878. .IP \(bu 2
  239879. 595a12977d Update regex to detect ip alias in OpenBSD.
  239880. .UNINDENT
  239881. .IP \(bu 2
  239882. \fBPR\fP \fI\%#30133\fP: (\fI\%stanislavb\fP) Fix typo in gpgkey URL
  239883. @ \fI2016\-01\-04 19:29:57 UTC\fP
  239884. .INDENT 2.0
  239885. .IP \(bu 2
  239886. c3014be84b Merge pull request \fI\%#30133\fP from stanislavb/fix\-gpg\-key\-url\-typo
  239887. .IP \(bu 2
  239888. d81f6f7206 Fix typo in gpgkey URL
  239889. .UNINDENT
  239890. .IP \(bu 2
  239891. \fBISSUE\fP \fI\%#29912\fP: (\fI\%rterbush\fP) s3 ext_pillar fails if key and keyid are not provided (refs: \fI\%#30126\fP)
  239892. .IP \(bu 2
  239893. \fBPR\fP \fI\%#30126\fP: (\fI\%stanislavb\fP) Log S3 API error message
  239894. @ \fI2016\-01\-04 19:22:39 UTC\fP
  239895. .INDENT 2.0
  239896. .IP \(bu 2
  239897. c06671a259 Merge pull request \fI\%#30126\fP from stanislavb/2015.8
  239898. .IP \(bu 2
  239899. 8c4a101c8f Log S3 API error message
  239900. .UNINDENT
  239901. .IP \(bu 2
  239902. \fBPR\fP \fI\%#30128\fP: (\fI\%oeuftete\fP) Log retryable transport errors as warnings
  239903. @ \fI2016\-01\-04 19:15:31 UTC\fP
  239904. .INDENT 2.0
  239905. .IP \(bu 2
  239906. aeec21ea65 Merge pull request \fI\%#30128\fP from oeuftete/fileclient\-attempt\-error\-to\-warning
  239907. .IP \(bu 2
  239908. a5d99b13e1 Log retryable transport errors as warnings
  239909. .UNINDENT
  239910. .IP \(bu 2
  239911. \fBISSUE\fP \fI\%#28171\fP: (\fI\%srkunze\fP) cron.rm cannot remove @special entries (refs: \fI\%#30096\fP)
  239912. .IP \(bu 2
  239913. \fBPR\fP \fI\%#30096\fP: (\fI\%cachedout\fP) Add rm_special to crontab module
  239914. @ \fI2016\-01\-01 00:56:08 UTC\fP
  239915. .INDENT 2.0
  239916. .IP \(bu 2
  239917. 941bcaed07 Merge pull request \fI\%#30096\fP from cachedout/issue_28171
  239918. .IP \(bu 2
  239919. 259a0582ac Add docs
  239920. .IP \(bu 2
  239921. ad9424820e Add rm_special to crontab module
  239922. .UNINDENT
  239923. .IP \(bu 2
  239924. \fBPR\fP \fI\%#30106\fP: (\fI\%techhat\fP) Ensure last dir
  239925. @ \fI2016\-01\-01 00:52:54 UTC\fP
  239926. .INDENT 2.0
  239927. .IP \(bu 2
  239928. cb0f80831f Merge pull request \fI\%#30106\fP from techhat/seeddirs
  239929. .IP \(bu 2
  239930. 01d1a49937 Ensure last dir
  239931. .UNINDENT
  239932. .IP \(bu 2
  239933. \fBPR\fP \fI\%#30101\fP: (\fI\%gtmanfred\fP) fix bug where nova driver exits with no adminPass
  239934. @ \fI2015\-12\-31 13:45:16 UTC\fP
  239935. .INDENT 2.0
  239936. .IP \(bu 2
  239937. 6bc968db9a Merge pull request \fI\%#30101\fP from gtmanfred/2015.8
  239938. .IP \(bu 2
  239939. 1b98f7af38 fix bug where nova driver exits with no adminPass
  239940. .UNINDENT
  239941. .IP \(bu 2
  239942. \fBPR\fP \fI\%#30090\fP: (\fI\%techhat\fP) Add argument to isdir()
  239943. @ \fI2015\-12\-30 22:41:02 UTC\fP
  239944. .INDENT 2.0
  239945. .IP \(bu 2
  239946. 3652dbae76 Merge pull request \fI\%#30090\fP from techhat/seeddirs
  239947. .IP \(bu 2
  239948. f7c7d9c7c2 Add lstrip
  239949. .IP \(bu 2
  239950. c70257163b Add argument to isdir()
  239951. .UNINDENT
  239952. .IP \(bu 2
  239953. \fBPR\fP \fI\%#30094\fP: (\fI\%rallytime\fP) Fix doc formatting for cloud.create example in module.py state
  239954. @ \fI2015\-12\-30 22:40:24 UTC\fP
  239955. .INDENT 2.0
  239956. .IP \(bu 2
  239957. a12bda4b30 Merge pull request \fI\%#30094\fP from rallytime/module_state_doc_fix
  239958. .IP \(bu 2
  239959. 8fbee322b9 Fix doc formatting for cloud.create example in module.py state
  239960. .UNINDENT
  239961. .IP \(bu 2
  239962. \fBPR\fP \fI\%#30095\fP: (\fI\%rallytime\fP) Add the list_nodes_select function to linode driver
  239963. @ \fI2015\-12\-30 21:06:58 UTC\fP
  239964. .INDENT 2.0
  239965. .IP \(bu 2
  239966. d7f46b5438 Merge pull request \fI\%#30095\fP from rallytime/select_query_linode
  239967. .IP \(bu 2
  239968. 4731d9442e Add the list_nodes_select function to linode driver
  239969. .UNINDENT
  239970. .IP \(bu 2
  239971. \fBISSUE\fP \fI\%#28763\fP: (\fI\%cybacolt\fP) grain saltversioninfo not returning values by index (refs: \fI\%#30082\fP)
  239972. .IP \(bu 2
  239973. \fBPR\fP \fI\%#30082\fP: (\fI\%abednarik\fP) Fixed saltversioninfo grain return
  239974. @ \fI2015\-12\-30 18:23:17 UTC\fP
  239975. .INDENT 2.0
  239976. .IP \(bu 2
  239977. dce64c0868 Merge pull request \fI\%#30082\fP from abednarik/fix_grain_saltversion_index
  239978. .IP \(bu 2
  239979. 882e9ac9ed Fixed saltversioninfo grain return.
  239980. .UNINDENT
  239981. .IP \(bu 2
  239982. \fBPR\fP \fI\%#30084\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29987\fP to 2015.8
  239983. @ \fI2015\-12\-30 18:19:09 UTC\fP
  239984. .INDENT 2.0
  239985. .IP \(bu 2
  239986. \fBPR\fP \fI\%#29987\fP: (\fI\%pass\-by\-value\fP) Make sure output file works for salt cloud (refs: \fI\%#30084\fP)
  239987. .IP \(bu 2
  239988. 5602b8833e Merge pull request \fI\%#30084\fP from rallytime/bp\-29987
  239989. .IP \(bu 2
  239990. 16e1df90e9 Make sure output file works for salt cloud
  239991. .UNINDENT
  239992. .IP \(bu 2
  239993. \fBPR\fP \fI\%#30071\fP: (\fI\%rallytime\fP) Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  239994. @ \fI2015\-12\-29 23:18:00 UTC\fP
  239995. .INDENT 2.0
  239996. .IP \(bu 2
  239997. 654cab0314 Merge pull request \fI\%#30071\fP from rallytime/merge\-forward\-2015.8
  239998. .IP \(bu 2
  239999. 394d7548c5 Additional spelling fixes for boto_vpc module
  240000. .IP \(bu 2
  240001. f7e58a241c Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  240002. .INDENT 2.0
  240003. .IP \(bu 2
  240004. 84db12212d Merge pull request \fI\%#30059\fP from mpreziuso/patch\-1
  240005. .INDENT 2.0
  240006. .IP \(bu 2
  240007. 1cb1c2da07 Fixes wrong function scope
  240008. .UNINDENT
  240009. .IP \(bu 2
  240010. 1c6c9b1a06 Merge pull request \fI\%#30025\fP from jtand/boto_tests
  240011. .INDENT 2.0
  240012. .IP \(bu 2
  240013. e706642152 Skipping some Boto tests until resolved moto issue
  240014. .UNINDENT
  240015. .IP \(bu 2
  240016. 0f91021c59 Merge pull request \fI\%#29949\fP from aletourneau/2015.5
  240017. .INDENT 2.0
  240018. .IP \(bu 2
  240019. cf855fe262 Fixed trailing white spaces
  240020. .IP \(bu 2
  240021. 864801e002 fixed version
  240022. .IP \(bu 2
  240023. 041d9346c4 Enhanced netscaler docstring
  240024. .UNINDENT
  240025. .IP \(bu 2
  240026. 229d3eb60b Merge pull request \fI\%#29941\fP from cachedout/boto_spelling
  240027. .INDENT 2.0
  240028. .IP \(bu 2
  240029. b11bfd07b8 Fix spelling error in boto_vpc
  240030. .UNINDENT
  240031. .IP \(bu 2
  240032. 69c5ada636 Merge pull request \fI\%#29908\fP from cachedout/issue_29880
  240033. .INDENT 2.0
  240034. .IP \(bu 2
  240035. 4cd77b4118 Allow kwargs to be passed to pacman provide for update func
  240036. .UNINDENT
  240037. .IP \(bu 2
  240038. ad0de4d563 Merge pull request \fI\%#29909\fP from abednarik/freebsd_pkgng_non_interactive_fix
  240039. .INDENT 2.0
  240040. .IP \(bu 2
  240041. 8ac213001a FreeBSD pkgng fix for non\-interactive install.
  240042. .UNINDENT
  240043. .UNINDENT
  240044. .UNINDENT
  240045. .IP \(bu 2
  240046. \fBPR\fP \fI\%#30067\fP: (\fI\%ryan\-lane\fP) Pass in kwargs to boto_secgroup.convert_to_group_ids explicitly
  240047. @ \fI2015\-12\-29 23:04:33 UTC\fP
  240048. .INDENT 2.0
  240049. .IP \(bu 2
  240050. 1bf9853808 Merge pull request \fI\%#30067\fP from lyft/boto\-elb\-stable\-fix
  240051. .IP \(bu 2
  240052. ae22edb1b4 Pass in kwargs to boto_secgroup.convert_to_group_ids explicitly
  240053. .UNINDENT
  240054. .IP \(bu 2
  240055. \fBPR\fP \fI\%#30069\fP: (\fI\%techhat\fP) Ensure that pki_dir exists
  240056. @ \fI2015\-12\-29 23:03:23 UTC\fP
  240057. .INDENT 2.0
  240058. .IP \(bu 2
  240059. 0a37c4de1a Merge pull request \fI\%#30069\fP from techhat/seeddirs
  240060. .IP \(bu 2
  240061. 0f05d49bde Ensure that pki_dir exists
  240062. .UNINDENT
  240063. .IP \(bu 2
  240064. \fBISSUE\fP \fI\%#30045\fP: (\fI\%AkhterAli\fP) salt\-cloud make syndic not possible. (refs: \fI\%#30064\fP)
  240065. .IP \(bu 2
  240066. \fBPR\fP \fI\%#30064\fP: (\fI\%rallytime\fP) Add Syndic documentation to miscellaneous Salt Cloud config options
  240067. @ \fI2015\-12\-29 20:15:45 UTC\fP
  240068. .INDENT 2.0
  240069. .IP \(bu 2
  240070. 896655602e Merge pull request \fI\%#30064\fP from rallytime/fix\-30045
  240071. .IP \(bu 2
  240072. 6176f383e5 Spelling fixes
  240073. .IP \(bu 2
  240074. 83c05729d6 Add Syndic documentation to miscellaneous Salt Cloud config options
  240075. .UNINDENT
  240076. .IP \(bu 2
  240077. \fBPR\fP \fI\%#30049\fP: (\fI\%rallytime\fP) Add some more unit tests for the vsphere execution module
  240078. @ \fI2015\-12\-29 17:07:41 UTC\fP
  240079. .INDENT 2.0
  240080. .IP \(bu 2
  240081. bad6daca93 Merge pull request \fI\%#30049\fP from rallytime/esxi\-unit\-tests
  240082. .IP \(bu 2
  240083. 1a83147986 Remove unnecessary import block
  240084. .IP \(bu 2
  240085. 695107ae6e Add some more unit tests for the vsphere execution module
  240086. .UNINDENT
  240087. .IP \(bu 2
  240088. \fBPR\fP \fI\%#30060\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27104\fP to 2015.8
  240089. @ \fI2015\-12\-29 17:06:58 UTC\fP
  240090. .INDENT 2.0
  240091. .IP \(bu 2
  240092. \fBPR\fP \fI\%#27104\fP: (\fI\%hexedpackets\fP) Remove only the file extension when checking missing cached nodes. (refs: \fI\%#30060\fP)
  240093. .IP \(bu 2
  240094. cedee772d7 Merge pull request \fI\%#30060\fP from rallytime/bp\-27104
  240095. .IP \(bu 2
  240096. f0566c4b8f Remove only the file extension on cached node files instead of replacing every \(aq.p\(aq substring.
  240097. .UNINDENT
  240098. .IP \(bu 2
  240099. \fBISSUE\fP \fI\%#28540\fP: (\fI\%whiteinge\fP) The rest_cherrypy automodule docs are hard to digest (refs: \fI\%#30048\fP)
  240100. .IP \(bu 2
  240101. \fBPR\fP \fI\%#30048\fP: (\fI\%jacobhammons\fP) Remove internal APIs from rest_cherrypy docs.
  240102. @ \fI2015\-12\-28 23:24:13 UTC\fP
  240103. .INDENT 2.0
  240104. .IP \(bu 2
  240105. 87667e2de6 Merge pull request \fI\%#30048\fP from jacobhammons/28540
  240106. .IP \(bu 2
  240107. a04cebd48c Remove internal APIs from rest_cherrypy docs. Refs \fI\%#28540\fP
  240108. .UNINDENT
  240109. .IP \(bu 2
  240110. \fBISSUE\fP \fI\%#29960\fP: (\fI\%anlutro\fP) Circular import in salt.utils.jinja (refs: \fI\%#30043\fP)
  240111. .IP \(bu 2
  240112. \fBPR\fP \fI\%#30043\fP: (\fI\%rallytime\fP) Be explicit about importing from salt.utils.jinja to avoid circular imports
  240113. @ \fI2015\-12\-28 21:35:18 UTC\fP
  240114. .INDENT 2.0
  240115. .IP \(bu 2
  240116. 3c63527313 Merge pull request \fI\%#30043\fP from rallytime/fix\-29960
  240117. .IP \(bu 2
  240118. a157c78bc8 Be explicit about importing from salt.utils.jinja to avoid circular imports
  240119. .UNINDENT
  240120. .IP \(bu 2
  240121. \fBPR\fP \fI\%#30038\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30017\fP to 2015.8
  240122. @ \fI2015\-12\-28 20:41:45 UTC\fP
  240123. .INDENT 2.0
  240124. .IP \(bu 2
  240125. \fBPR\fP \fI\%#30017\fP: (\fI\%anlutro\fP) Change how alternatives states check for installed (refs: \fI\%#30038\fP)
  240126. .IP \(bu 2
  240127. 6cdca314c7 Merge pull request \fI\%#30038\fP from rallytime/bp\-30017
  240128. .IP \(bu 2
  240129. aab35b883e Add versionadded directive for new check_exists function.
  240130. .IP \(bu 2
  240131. ca290ec3e1 change how alternatives states check for installed
  240132. .UNINDENT
  240133. .IP \(bu 2
  240134. \fBPR\fP \fI\%#30036\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29995\fP to 2015.8
  240135. @ \fI2015\-12\-28 20:41:04 UTC\fP
  240136. .INDENT 2.0
  240137. .IP \(bu 2
  240138. \fBPR\fP \fI\%#29995\fP: (\fI\%ruxandraburtica\fP) Location from profiles not correctly set (refs: \fI\%#30036\fP)
  240139. .IP \(bu 2
  240140. c846e7bc86 Merge pull request \fI\%#30036\fP from rallytime/bp\-29995
  240141. .IP \(bu 2
  240142. 129a6d7b9f Added vm_ to the get_location query.
  240143. .IP \(bu 2
  240144. af8d01a367 Updated ec2 file to correctly propagate location.
  240145. .UNINDENT
  240146. .IP \(bu 2
  240147. \fBPR\fP \fI\%#30035\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29895\fP to 2015.8
  240148. @ \fI2015\-12\-28 20:20:58 UTC\fP
  240149. .INDENT 2.0
  240150. .IP \(bu 2
  240151. \fBPR\fP \fI\%#29895\fP: (\fI\%pass\-by\-value\fP) Do not SSH to the instance if deploy is False (refs: \fI\%#30035\fP)
  240152. .IP \(bu 2
  240153. 27b0bd2c34 Merge pull request \fI\%#30035\fP from rallytime/bp\-29895
  240154. .IP \(bu 2
  240155. 09f208fe63 Do not SSH to the instance if deploy is False
  240156. .UNINDENT
  240157. .IP \(bu 2
  240158. \fBPR\fP \fI\%#30034\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29893\fP to 2015.8
  240159. @ \fI2015\-12\-28 20:20:51 UTC\fP
  240160. .INDENT 2.0
  240161. .IP \(bu 2
  240162. \fBPR\fP \fI\%#29893\fP: (\fI\%pass\-by\-value\fP) Add info about VolumeType (refs: \fI\%#30034\fP)
  240163. .IP \(bu 2
  240164. 9e385369b7 Merge pull request \fI\%#30034\fP from rallytime/bp\-29893
  240165. .IP \(bu 2
  240166. 2fcf1590b8 Add info about VolumeType
  240167. .UNINDENT
  240168. .IP \(bu 2
  240169. \fBPR\fP \fI\%#30033\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29876\fP to 2015.8
  240170. @ \fI2015\-12\-28 20:20:42 UTC\fP
  240171. .INDENT 2.0
  240172. .IP \(bu 2
  240173. \fBPR\fP \fI\%#29876\fP: (\fI\%abednarik\fP) Updated Cloud msic section. (refs: \fI\%#30033\fP)
  240174. .IP \(bu 2
  240175. 4d4dfd692a Merge pull request \fI\%#30033\fP from rallytime/bp\-29876
  240176. .IP \(bu 2
  240177. a257249789 Add versionadded to SSH Port docs
  240178. .IP \(bu 2
  240179. 0bb83e51aa Updated Cloud msic section.
  240180. .UNINDENT
  240181. .IP \(bu 2
  240182. \fBPR\fP \fI\%#30029\fP: (\fI\%terminalmage\fP) git.latest: Fix handling of nonexistant branches
  240183. @ \fI2015\-12\-28 19:39:29 UTC\fP
  240184. .INDENT 2.0
  240185. .IP \(bu 2
  240186. a5f7d9c2fc Merge pull request \fI\%#30029\fP from terminalmage/git.latest\-nonexistant\-branch
  240187. .IP \(bu 2
  240188. 0b95894c9f git.latest: Fix handling of nonexistant branches
  240189. .UNINDENT
  240190. .IP \(bu 2
  240191. \fBPR\fP \fI\%#30016\fP: (\fI\%anlutro\fP) Properly normalize locales in locale.gen_locale
  240192. @ \fI2015\-12\-28 15:33:48 UTC\fP
  240193. .INDENT 2.0
  240194. .IP \(bu 2
  240195. e7fe24dc64 Merge pull request \fI\%#30016\fP from alprs/fix\-gen_locale_normalize
  240196. .IP \(bu 2
  240197. 75eb4511d3 properly normalize locales in locale.gen_locale
  240198. .UNINDENT
  240199. .IP \(bu 2
  240200. \fBPR\fP \fI\%#30015\fP: (\fI\%anlutro\fP) locale module: don\(aqt escape the slash in \en
  240201. @ \fI2015\-12\-28 15:31:20 UTC\fP
  240202. .INDENT 2.0
  240203. .IP \(bu 2
  240204. 90611e95f4 Merge pull request \fI\%#30015\fP from alprs/fix\-gen_locale_escaped_newline
  240205. .IP \(bu 2
  240206. 5799729aee locale module: don\(aqt escape the slash in n
  240207. .UNINDENT
  240208. .IP \(bu 2
  240209. \fBPR\fP \fI\%#30022\fP: (\fI\%gqgunhed\fP) Two minor typos fixed
  240210. @ \fI2015\-12\-28 15:22:24 UTC\fP
  240211. .INDENT 2.0
  240212. .IP \(bu 2
  240213. b871ce5310 Merge pull request \fI\%#30022\fP from gqgunhed/winrepo_typo
  240214. .IP \(bu 2
  240215. a052ff016e fixed minor typos and a :ref: link
  240216. .IP \(bu 2
  240217. e47db1a076 Merge remote\-tracking branch \(aqrefs/remotes/saltstack/2015.8\(aq into winrepo_typo
  240218. .IP \(bu 2
  240219. 0c4c8b9b5c Merge remote\-tracking branch \(aqrefs/remotes/saltstack/2015.8\(aq into 2015.8
  240220. .UNINDENT
  240221. .IP \(bu 2
  240222. \fBPR\fP \fI\%#30026\fP: (\fI\%anlutro\fP) states.at: fix wrong variable being used
  240223. @ \fI2015\-12\-28 15:21:23 UTC\fP
  240224. .INDENT 2.0
  240225. .IP \(bu 2
  240226. 4b8ac20d45 Merge pull request \fI\%#30026\fP from alprs/fix\-at_without_tag_job
  240227. .IP \(bu 2
  240228. c0fe9c09bd states.at: fix wrong variable being used
  240229. .UNINDENT
  240230. .IP \(bu 2
  240231. \fBPR\fP \fI\%#29966\fP: (\fI\%multani\fP) Fix bigip state/module documentation + serializers documentation
  240232. @ \fI2015\-12\-23 15:06:46 UTC\fP
  240233. .INDENT 2.0
  240234. .IP \(bu 2
  240235. a3410fdf41 Merge pull request \fI\%#29966\fP from multani/fix/docs
  240236. .IP \(bu 2
  240237. e6e36372a4 doc: fix documentation link for salt.serializers
  240238. .IP \(bu 2
  240239. 23ef472a07 bigip: fix documentation formatting, remove warnings during doc building
  240240. .UNINDENT
  240241. .IP \(bu 2
  240242. \fBPR\fP \fI\%#29904\fP: (\fI\%twangboy\fP) Improvements to osx packaging scripts
  240243. @ \fI2015\-12\-22 21:40:23 UTC\fP
  240244. .INDENT 2.0
  240245. .IP \(bu 2
  240246. \fBPR\fP \fI\%#29858\fP: (\fI\%twangboy\fP) Osx build (refs: \fI\%#29904\fP)
  240247. .IP \(bu 2
  240248. 8f8c8cedd0 Merge pull request \fI\%#29904\fP from twangboy/osx_build
  240249. .IP \(bu 2
  240250. 0be53953af Added function to download and check hashes, added hash files
  240251. .IP \(bu 2
  240252. 7f0b87bfb3 Added pre/post flight scripts (not running)
  240253. .IP \(bu 2
  240254. 9eeb6da7bd Improvements to osx packaging scripts
  240255. .UNINDENT
  240256. .IP \(bu 2
  240257. \fBPR\fP \fI\%#29950\fP: (\fI\%multani\fP) boto_iam: fix deletion of IAM users when using delete_keys=true
  240258. @ \fI2015\-12\-22 18:43:07 UTC\fP
  240259. .INDENT 2.0
  240260. .IP \(bu 2
  240261. 9522bdf4a5 Merge pull request \fI\%#29950\fP from multani/fix/states.boto_iam\-delete\-user
  240262. .IP \(bu 2
  240263. 516c8661f4 boto_iam: fix deletion of IAM users when using delete_keys=true
  240264. .UNINDENT
  240265. .IP \(bu 2
  240266. \fBPR\fP \fI\%#29937\fP: (\fI\%multani\fP) Fix states.boto_iam group users
  240267. @ \fI2015\-12\-22 17:33:02 UTC\fP
  240268. .INDENT 2.0
  240269. .IP \(bu 2
  240270. be95d4d79a Merge pull request \fI\%#29937\fP from multani/fix/states.boto_iam\-group\-users
  240271. .IP \(bu 2
  240272. 5c86a78d75 boto_iam: handle group\(aqs users empty list by removing all users of the group
  240273. .IP \(bu 2
  240274. f3461053df boto_iam: passes connection information down to callees
  240275. .UNINDENT
  240276. .IP \(bu 2
  240277. \fBPR\fP \fI\%#29934\fP: (\fI\%multani\fP) Fix state.boto_iam virtual name
  240278. @ \fI2015\-12\-22 17:16:25 UTC\fP
  240279. .INDENT 2.0
  240280. .IP \(bu 2
  240281. 4f2cc5eba7 Merge pull request \fI\%#29934\fP from multani/fix/boto_iam
  240282. .IP \(bu 2
  240283. 503ede4178 Fix state.boto_iam virtual name
  240284. .UNINDENT
  240285. .IP \(bu 2
  240286. \fBISSUE\fP \fI\%#29933\fP: (\fI\%Reiner030\fP) boto_rds.absent misses pillar variables for final backup (refs: \fI\%#29943\fP)
  240287. .IP \(bu 2
  240288. \fBPR\fP \fI\%#29943\fP: (\fI\%cachedout\fP) Check args correctly in boto_rds
  240289. @ \fI2015\-12\-22 17:15:48 UTC\fP
  240290. .INDENT 2.0
  240291. .IP \(bu 2
  240292. b36302291d Merge pull request \fI\%#29943\fP from cachedout/issue_29933
  240293. .IP \(bu 2
  240294. 8bab5eaeaa Check args correctly in boto_rds
  240295. .UNINDENT
  240296. .IP \(bu 2
  240297. \fBPR\fP \fI\%#29924\fP: (\fI\%gqgunhed\fP) fixed: uptime now working on non\-US Windows
  240298. @ \fI2015\-12\-22 15:03:17 UTC\fP
  240299. .INDENT 2.0
  240300. .IP \(bu 2
  240301. 02ed5b8fd1 Merge pull request \fI\%#29924\fP from gqgunhed/gqgunhed\-2015.8
  240302. .IP \(bu 2
  240303. b67c3b45e1 removed duplicate datetime line
  240304. .IP \(bu 2
  240305. ed8ee91dcf fixed: uptime now working on non\-US Windows
  240306. .UNINDENT
  240307. .IP \(bu 2
  240308. \fBPR\fP \fI\%#29883\fP: (\fI\%serge\-p\fP) fix for nfs mounts in _active_mounts_openbsd()
  240309. @ \fI2015\-12\-21 18:26:49 UTC\fP
  240310. .INDENT 2.0
  240311. .IP \(bu 2
  240312. 5e44639334 Merge pull request \fI\%#29883\fP from serge\-p/patch\-6
  240313. .IP \(bu 2
  240314. dd94332f24 Update mount.py
  240315. .IP \(bu 2
  240316. 9d059a1ea5 fix for nfs mounts in _active_mounts_openbsd()
  240317. .UNINDENT
  240318. .IP \(bu 2
  240319. \fBISSUE\fP \fI\%#29866\fP: (\fI\%tony\fP) spm(1) command should obey Saltfile (refs: \fI\%#29894\fP)
  240320. .IP \(bu 2
  240321. \fBPR\fP \fI\%#29894\fP: (\fI\%techhat\fP) Support Saltfile in SPM
  240322. @ \fI2015\-12\-21 18:03:07 UTC\fP
  240323. .INDENT 2.0
  240324. .IP \(bu 2
  240325. 08fd81cc3d Merge pull request \fI\%#29894\fP from techhat/spmsaltfile
  240326. .IP \(bu 2
  240327. 279ec61274 Support Saltfile in SPM
  240328. .UNINDENT
  240329. .IP \(bu 2
  240330. \fBPR\fP \fI\%#29856\fP: (\fI\%rallytime\fP) Added some initial unit tests for the salt.modules.vsphere.py file
  240331. @ \fI2015\-12\-21 17:12:20 UTC\fP
  240332. .INDENT 2.0
  240333. .IP \(bu 2
  240334. 4f46255044 Merge pull request \fI\%#29856\fP from rallytime/esxi\-unit\-tests
  240335. .IP \(bu 2
  240336. b908ebd123 Added some initial unit tests for the salt.modules.vsphere.py file
  240337. .UNINDENT
  240338. .IP \(bu 2
  240339. \fBPR\fP \fI\%#29855\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29740\fP to 2015.8
  240340. @ \fI2015\-12\-21 17:11:28 UTC\fP
  240341. .INDENT 2.0
  240342. .IP \(bu 2
  240343. \fBPR\fP \fI\%#29740\fP: (\fI\%kiorky\fP) Type mess in git.latest (refs: \fI\%#29855\fP)
  240344. .IP \(bu 2
  240345. 096fec6182 Merge pull request \fI\%#29855\fP from rallytime/bp\-29740
  240346. .IP \(bu 2
  240347. 4c5e277367 Type mess in git.latest
  240348. .UNINDENT
  240349. .IP \(bu 2
  240350. \fBPR\fP \fI\%#29890\fP: (\fI\%multani\fP) Various documentation fixes
  240351. @ \fI2015\-12\-21 16:25:15 UTC\fP
  240352. .INDENT 2.0
  240353. .IP \(bu 2
  240354. 02ab9b8858 Merge pull request \fI\%#29890\fP from multani/fix/docs
  240355. .IP \(bu 2
  240356. 5aa0e9b1e0 Fix documentation typo for pillars
  240357. .IP \(bu 2
  240358. f2b41d04d7 Fix rendering issues for Cherrypy netapi documentation.
  240359. .IP \(bu 2
  240360. 6922da46dc doc: fix warnings + some rendering issues
  240361. .UNINDENT
  240362. .IP \(bu 2
  240363. \fBPR\fP \fI\%#29850\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  240364. @ \fI2015\-12\-18 21:33:49 UTC\fP
  240365. .INDENT 2.0
  240366. .IP \(bu 2
  240367. 50f48c4bf3 Merge pull request \fI\%#29850\fP from basepi/merge\-forward\-2015.8
  240368. .IP \(bu 2
  240369. 7402599c62 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  240370. .IP \(bu 2
  240371. f43f3d166c Merge pull request \fI\%#29730\fP from rallytime/fix\-24698
  240372. .INDENT 2.0
  240373. .IP \(bu 2
  240374. 120fd5fdf0 Update docker\-py version requirement to 0.6.0 for dockerio.py files
  240375. .UNINDENT
  240376. .IP \(bu 2
  240377. c393a4175a Merge pull request \fI\%#29715\fP from rallytime/fix\-23343
  240378. .INDENT 2.0
  240379. .IP \(bu 2
  240380. a0ed857c37 Install correct package version, if provided, for npm state.
  240381. .UNINDENT
  240382. .IP \(bu 2
  240383. 1310afbbc2 Merge pull request \fI\%#29721\fP from terminalmage/nested\-output\-multiline\-fix
  240384. .INDENT 2.0
  240385. .IP \(bu 2
  240386. 761be9cb93 Fix display of multiline strings when iterating over a list
  240387. .UNINDENT
  240388. .IP \(bu 2
  240389. 52cc07cec9 Merge pull request \fI\%#29646\fP from rallytime/fix\-29488
  240390. .INDENT 2.0
  240391. .IP \(bu 2
  240392. c5fa9e9351 Don\(aqt stacktrace on kwargs.get if kwargs=None
  240393. .UNINDENT
  240394. .UNINDENT
  240395. .IP \(bu 2
  240396. \fBPR\fP \fI\%#29811\fP: (\fI\%anlutro\fP) influxdb: add retention policy module functions
  240397. @ \fI2015\-12\-18 17:19:02 UTC\fP
  240398. .INDENT 2.0
  240399. .IP \(bu 2
  240400. 05d2aaaef2 Merge pull request \fI\%#29811\fP from alprs/feature\-influxdb_retention
  240401. .IP \(bu 2
  240402. 51088d938a add tests, rename a function to more closely mirror influxdb
  240403. .IP \(bu 2
  240404. 785da17a67 missing comma
  240405. .IP \(bu 2
  240406. 7e9e9a1030 influxdb: add retention policy module functions
  240407. .UNINDENT
  240408. .IP \(bu 2
  240409. \fBISSUE\fP \fI\%#29396\fP: (\fI\%Ch3LL\fP) Windows 2012 Multi\-Master ZMQError (refs: \fI\%#29814\fP)
  240410. .IP \(bu 2
  240411. \fBPR\fP \fI\%#29814\fP: (\fI\%basepi\fP) [2015.8][Windows] Fix multi\-master on windows
  240412. @ \fI2015\-12\-18 17:16:52 UTC\fP
  240413. .INDENT 2.0
  240414. .IP \(bu 2
  240415. 7eefaac58a Merge pull request \fI\%#29814\fP from basepi/multi\-master.windows.29396
  240416. .IP \(bu 2
  240417. 2405501d75 Add documentation for tcp ipc_mode and multi\-master
  240418. .IP \(bu 2
  240419. 307e867980 For tcp ipc_mode, give each minion different pub/pull ports
  240420. .IP \(bu 2
  240421. 5a21893e82 Fix ipc_mode check in windows
  240422. .UNINDENT
  240423. .IP \(bu 2
  240424. \fBPR\fP \fI\%#29819\fP: (\fI\%rallytime\fP) Add esxi module and state to docs build
  240425. @ \fI2015\-12\-18 16:20:27 UTC\fP
  240426. .INDENT 2.0
  240427. .IP \(bu 2
  240428. fb4eb28645 Merge pull request \fI\%#29819\fP from rallytime/esxi\-docs
  240429. .IP \(bu 2
  240430. e7c5863468 Add esxi module and state to docs build
  240431. .UNINDENT
  240432. .IP \(bu 2
  240433. \fBPR\fP \fI\%#29832\fP: (\fI\%jleimbach\fP) Fixed typo in order to use the keyboard module for RHEL without systemd
  240434. @ \fI2015\-12\-18 16:04:57 UTC\fP
  240435. .INDENT 2.0
  240436. .IP \(bu 2
  240437. e865c787a4 Merge pull request \fI\%#29832\fP from jleimbach/fix\-keyboard.py\-for\-rhel\-without\-systemd
  240438. .IP \(bu 2
  240439. 7b72b3c52c Fixed typo in order to use the keyboard module for RHEL without systemd
  240440. .UNINDENT
  240441. .IP \(bu 2
  240442. \fBPR\fP \fI\%#29803\fP: (\fI\%rallytime\fP) Add vSphere module to doc ref module tree
  240443. @ \fI2015\-12\-17 18:52:56 UTC\fP
  240444. .INDENT 2.0
  240445. .IP \(bu 2
  240446. 4044f3bb93 Merge pull request \fI\%#29803\fP from rallytime/vsphere\-docs
  240447. .IP \(bu 2
  240448. 3b7f5540ec Add vSphere module to doc ref module tree
  240449. .UNINDENT
  240450. .IP \(bu 2
  240451. \fBISSUE\fP \fI\%#29751\fP: (\fI\%ether42\fP) mod_hostname behavior is systemd dependant (refs: \fI\%#29767\fP)
  240452. .IP \(bu 2
  240453. \fBPR\fP \fI\%#29767\fP: (\fI\%abednarik\fP) Hosts file update in mod_hostname.
  240454. @ \fI2015\-12\-17 18:31:18 UTC\fP
  240455. .INDENT 2.0
  240456. .IP \(bu 2
  240457. 9b4c2194f6 Merge pull request \fI\%#29767\fP from abednarik/network_mod_hpstname_fix
  240458. .IP \(bu 2
  240459. eebd3e3e4a Hosts file update in mod_hostname.
  240460. .UNINDENT
  240461. .IP \(bu 2
  240462. \fBISSUE\fP \fI\%#29631\fP: (\fI\%joshughes\fP) pygit2: git submodules cause traceback in file_list (refs: \fI\%#29772\fP)
  240463. .IP \(bu 2
  240464. \fBPR\fP \fI\%#29772\fP: (\fI\%terminalmage\fP) pygit2: skip submodules when traversing tree
  240465. @ \fI2015\-12\-17 18:23:16 UTC\fP
  240466. .INDENT 2.0
  240467. .IP \(bu 2
  240468. 0c65eeb82b Merge pull request \fI\%#29772\fP from terminalmage/issue29631
  240469. .IP \(bu 2
  240470. 8c4ea64b0d pygit2: skip submodules when traversing tree
  240471. .UNINDENT
  240472. .IP \(bu 2
  240473. \fBPR\fP \fI\%#29765\fP: (\fI\%gtmanfred\fP) allow nova driver to be boot from volume
  240474. @ \fI2015\-12\-17 18:20:33 UTC\fP
  240475. .INDENT 2.0
  240476. .IP \(bu 2
  240477. 1b430b251f Merge pull request \fI\%#29765\fP from gtmanfred/2015.8
  240478. .IP \(bu 2
  240479. e95f7561c5 cloudnetworks should be making public_ips a list
  240480. .IP \(bu 2
  240481. ec7e45fbfb add documentation for boot from volume on nova driver
  240482. .IP \(bu 2
  240483. eafcc5e3ac Add boot from volume for openstack nova
  240484. .UNINDENT
  240485. .IP \(bu 2
  240486. \fBPR\fP \fI\%#29773\fP: (\fI\%l2ol33rt\fP) Append missing wget in debian installation guide
  240487. @ \fI2015\-12\-17 17:29:18 UTC\fP
  240488. .INDENT 2.0
  240489. .IP \(bu 2
  240490. c4f226f31e Merge pull request \fI\%#29773\fP from l2ol33rt/debian_install_docfix
  240491. .IP \(bu 2
  240492. 64cb4b0540 Append missing wget in debian installation guide
  240493. .UNINDENT
  240494. .IP \(bu 2
  240495. \fBPR\fP \fI\%#29800\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29769\fP to 2015.8
  240496. @ \fI2015\-12\-17 17:28:52 UTC\fP
  240497. .INDENT 2.0
  240498. .IP \(bu 2
  240499. \fBPR\fP \fI\%#29769\fP: (\fI\%pass\-by\-value\fP) Add documentation about scopes (GCE) (refs: \fI\%#29800\fP)
  240500. .IP \(bu 2
  240501. aca4da3abc Merge pull request \fI\%#29800\fP from rallytime/bp\-29769
  240502. .IP \(bu 2
  240503. 10bfcb8cb0 Add documentation about scopes (GCE)
  240504. .UNINDENT
  240505. .IP \(bu 2
  240506. \fBPR\fP \fI\%#29775\fP: (\fI\%paulnivin\fP) Change listen requisite resolution from name to ID declaration
  240507. @ \fI2015\-12\-16 22:56:03 UTC\fP
  240508. .INDENT 2.0
  240509. .IP \(bu 2
  240510. ab61f78295 Merge pull request \fI\%#29775\fP from lyft/listen\-id\-declaration\-resolution\-stable
  240511. .IP \(bu 2
  240512. ff3a809c11 Change listen requisite resolution from name to ID declaration
  240513. .UNINDENT
  240514. .IP \(bu 2
  240515. \fBPR\fP \fI\%#29754\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29719\fP to 2015.8
  240516. @ \fI2015\-12\-16 17:25:51 UTC\fP
  240517. .INDENT 2.0
  240518. .IP \(bu 2
  240519. \fBPR\fP \fI\%#29719\fP: (\fI\%gqgunhed\fP) fixed: include all items from kern.disks split (refs: \fI\%#29754\fP)
  240520. .IP \(bu 2
  240521. 5af64b64f2 Merge pull request \fI\%#29754\fP from rallytime/bp\-29719
  240522. .IP \(bu 2
  240523. ed275977e3 fixed: include all items from kern.disks split
  240524. .UNINDENT
  240525. .IP \(bu 2
  240526. \fBPR\fP \fI\%#29713\fP: (\fI\%The\-Loeki\fP) Pillar\-based cloud providers still forcing use of deprecated \(aqprovider\(aq
  240527. @ \fI2015\-12\-16 14:51:31 UTC\fP
  240528. .INDENT 2.0
  240529. .IP \(bu 2
  240530. \fBPR\fP \fI\%#27953\fP: (\fI\%The\-Loeki\fP) Fix CloudStack cloud for new \(aqdriver\(aq syntax (refs: \fI\%#29713\fP)
  240531. .IP \(bu 2
  240532. b3f17fdaf8 Merge pull request \fI\%#29713\fP from The\-Loeki/patch\-1
  240533. .IP \(bu 2
  240534. 35fe2a5c18 lint fix
  240535. .IP \(bu 2
  240536. dfab6f8186 Update __init__.py
  240537. .IP \(bu 2
  240538. 65e2d9ac1e Pillar\-based cloud providers still forcing use of deprecated \(aqprovider\(aq
  240539. .UNINDENT
  240540. .IP \(bu 2
  240541. \fBISSUE\fP \fI\%#14634\fP: (\fI\%Sacro\fP) \(aqunless\(aq documentation isn\(aqt logically plausible (refs: \fI\%#29729\fP)
  240542. .IP \(bu 2
  240543. \fBPR\fP \fI\%#29729\fP: (\fI\%rallytime\fP) Further clarifications on "unless" and "onlyif" requisites.
  240544. @ \fI2015\-12\-16 14:45:06 UTC\fP
  240545. .INDENT 2.0
  240546. .IP \(bu 2
  240547. 1f4810be0f Merge pull request \fI\%#29729\fP from rallytime/fix\-14634
  240548. .IP \(bu 2
  240549. 45b77fb288 Add note about shell truthiness vs python truthiness
  240550. .IP \(bu 2
  240551. 3bfb87c031 Spelling fixes
  240552. .IP \(bu 2
  240553. 15c466cc12 Further clarifications on "unless" and "onlyif" requisites.
  240554. .UNINDENT
  240555. .IP \(bu 2
  240556. \fBISSUE\fP \fI\%#29736\fP: (\fI\%akissa\fP) Pillar sqlite3 examples incorrect (refs: \fI\%#29737\fP)
  240557. .IP \(bu 2
  240558. \fBPR\fP \fI\%#29737\fP: (\fI\%akissa\fP) fix pillar sqlite3 documentation examples
  240559. @ \fI2015\-12\-16 14:41:57 UTC\fP
  240560. .INDENT 2.0
  240561. .IP \(bu 2
  240562. 7084f79199 Merge pull request \fI\%#29737\fP from akissa/fix\-pillar\-sqlite3\-examples
  240563. .IP \(bu 2
  240564. 1c98f8d609 fix pillar sqlite3 documentation examples
  240565. .UNINDENT
  240566. .IP \(bu 2
  240567. \fBISSUE\fP \fI\%#29741\fP: (\fI\%akissa\fP) Pillar Sqlite3 does not honour database config option when using salt\-call (refs: \fI\%#29743\fP)
  240568. .IP \(bu 2
  240569. \fBPR\fP \fI\%#29743\fP: (\fI\%akissa\fP) fix pillar sqlite not honouring config options
  240570. @ \fI2015\-12\-16 14:40:27 UTC\fP
  240571. .INDENT 2.0
  240572. .IP \(bu 2
  240573. e977096409 Merge pull request \fI\%#29743\fP from akissa/fix\-pillar\-sqlite3\-does\-not\-honour\-config
  240574. .IP \(bu 2
  240575. 6184fb1ae1 fix pillar sqlite not honouring config options
  240576. .UNINDENT
  240577. .IP \(bu 2
  240578. \fBISSUE\fP \fI\%#29152\fP: (\fI\%guettli\fP) docs for states.postgres_user.present: name and password twice? (refs: \fI\%#29723\fP)
  240579. .IP \(bu 2
  240580. \fBPR\fP \fI\%#29723\fP: (\fI\%rallytime\fP) Clarify db_user and db_password kwargs for postgres_user.present state function
  240581. @ \fI2015\-12\-15 23:58:43 UTC\fP
  240582. .INDENT 2.0
  240583. .IP \(bu 2
  240584. 2cea0b0a2d Merge pull request \fI\%#29723\fP from rallytime/fix\-29152
  240585. .IP \(bu 2
  240586. 8d8fdd0a27 Clarify db_user and db_password kwargs for postgres_user.present state function
  240587. .UNINDENT
  240588. .IP \(bu 2
  240589. \fBISSUE\fP \fI\%#29154\fP: (\fI\%guettli\fP) [Docs] for cmd.run. Missing link to details for "stateful" (refs: \fI\%#29722\fP)
  240590. .IP \(bu 2
  240591. \fBPR\fP \fI\%#29722\fP: (\fI\%rallytime\fP) Link "stateful" kwargs to definition of what "stateful" means for cmd state.
  240592. @ \fI2015\-12\-15 23:25:48 UTC\fP
  240593. .INDENT 2.0
  240594. .IP \(bu 2
  240595. 30eab23c43 Merge pull request \fI\%#29722\fP from rallytime/fix\-29154
  240596. .IP \(bu 2
  240597. 5c045a86af Link "stateful" kwargs to definition of what "stateful" means for cmd state.
  240598. .UNINDENT
  240599. .IP \(bu 2
  240600. \fBISSUE\fP \fI\%#29091\fP: (\fI\%gravyboat\fP) Salt pillar best practices should show 2 matchers in base (refs: \fI\%#29724\fP)
  240601. .IP \(bu 2
  240602. \fBPR\fP \fI\%#29724\fP: (\fI\%rallytime\fP) Add examples of using multiple matching levels to Pillar docs
  240603. @ \fI2015\-12\-15 23:02:32 UTC\fP
  240604. .INDENT 2.0
  240605. .IP \(bu 2
  240606. c9ca1a371e Merge pull request \fI\%#29724\fP from rallytime/fix\-29091
  240607. .IP \(bu 2
  240608. 45080f3629 Add examples of using multiple matching levels to Pillar docs
  240609. .UNINDENT
  240610. .IP \(bu 2
  240611. \fBPR\fP \fI\%#29726\fP: (\fI\%cachedout\fP) Disable some boto tests per resolution of moto issue
  240612. @ \fI2015\-12\-15 22:15:35 UTC\fP
  240613. .INDENT 2.0
  240614. .IP \(bu 2
  240615. 4985cc57f1 Merge pull request \fI\%#29726\fP from cachedout/disable_moto_2015_8
  240616. .IP \(bu 2
  240617. d19827fd3a Disable some boto tests per resolution of moto issue
  240618. .UNINDENT
  240619. .IP \(bu 2
  240620. \fBISSUE\fP \fI\%#25723\fP: (\fI\%jamesog\fP) file.directory fails in test mode when using recurse ignore_files (refs: \fI\%#29708\fP)
  240621. .IP \(bu 2
  240622. \fBPR\fP \fI\%#29708\fP: (\fI\%lagesag\fP) Fix test=True for file.directory with recurse ignore_files/ignore_dirs.
  240623. @ \fI2015\-12\-15 19:15:14 UTC\fP
  240624. .INDENT 2.0
  240625. .IP \(bu 2
  240626. aba82abffd Merge pull request \fI\%#29708\fP from lagesag/fix\-file\-directory\-test\-mode
  240627. .IP \(bu 2
  240628. a872b5eecf PyLint fix \fI\%#25723\fP
  240629. .IP \(bu 2
  240630. 3e46cb9213 Fix test=True for file.directory with recurse ignore_files/ignore_dirs.
  240631. .UNINDENT
  240632. .IP \(bu 2
  240633. \fBISSUE\fP \fI\%#29199\fP: (\fI\%hubez\fP) 2015.8.1 and 2015.5.6: salt\-minion self\-restart doesn\(aqt work in daemon mode. Works when not a daemon (refs: \fI\%#29642\fP)
  240634. .IP \(bu 2
  240635. \fBPR\fP \fI\%#29642\fP: (\fI\%cachedout\fP) Correctly restart daemonized minions on failure
  240636. @ \fI2015\-12\-15 19:02:40 UTC\fP
  240637. .INDENT 2.0
  240638. .IP \(bu 2
  240639. 7c38dec0ad Merge pull request \fI\%#29642\fP from cachedout/issue_29199
  240640. .IP \(bu 2
  240641. 8b2c6817cf Sleep before restart
  240642. .IP \(bu 2
  240643. 4105e2abfb Correctly restart daemonized minions on failure
  240644. .UNINDENT
  240645. .IP \(bu 2
  240646. \fBPR\fP \fI\%#29599\fP: (\fI\%cachedout\fP) Clean up minion shutdown
  240647. @ \fI2015\-12\-15 19:01:35 UTC\fP
  240648. .INDENT 2.0
  240649. .IP \(bu 2
  240650. bd918394c3 Merge pull request \fI\%#29599\fP from cachedout/clean_minion_shutdown
  240651. .IP \(bu 2
  240652. 0b917971fe Log at debug level instead
  240653. .IP \(bu 2
  240654. a04280ceb3 Re\-raise error to preserve restart behavior
  240655. .IP \(bu 2
  240656. dc480e332a Clean up warning on failed master ping.
  240657. .IP \(bu 2
  240658. 049a3dbbbc Additional fixes.
  240659. .IP \(bu 2
  240660. 8a4969b730 Clean up minion shutdown
  240661. .UNINDENT
  240662. .IP \(bu 2
  240663. \fBPR\fP \fI\%#29675\fP: (\fI\%clinta\fP) allow returning all refs
  240664. @ \fI2015\-12\-15 18:55:36 UTC\fP
  240665. .INDENT 2.0
  240666. .IP \(bu 2
  240667. 31eb291caf Merge pull request \fI\%#29675\fP from clinta/git\-ls\-remote\-noref
  240668. .IP \(bu 2
  240669. f8c34b0c76 version updated
  240670. .IP \(bu 2
  240671. 73b169e7dd lint, remove trainling whitespace
  240672. .IP \(bu 2
  240673. 8400e68426 allow returning all refs
  240674. .UNINDENT
  240675. .IP \(bu 2
  240676. \fBPR\fP \fI\%#29683\fP: (\fI\%rallytime\fP) Catch more specific error to pass the error message through elegantly.
  240677. @ \fI2015\-12\-15 18:41:54 UTC\fP
  240678. .INDENT 2.0
  240679. .IP \(bu 2
  240680. 7c50533d3f Merge pull request \fI\%#29683\fP from rallytime/vsan_fixes
  240681. .IP \(bu 2
  240682. afc003079e Catch more specifc error to pass the error message through elegantly.
  240683. .UNINDENT
  240684. .IP \(bu 2
  240685. \fBPR\fP \fI\%#29687\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  240686. @ \fI2015\-12\-15 18:38:46 UTC\fP
  240687. .INDENT 2.0
  240688. .IP \(bu 2
  240689. 30499e4896 Merge pull request \fI\%#29687\fP from basepi/merge\-forward\-2015.8
  240690. .IP \(bu 2
  240691. b51cba59c0 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  240692. .INDENT 2.0
  240693. .IP \(bu 2
  240694. f606c23ea8 Merge pull request \fI\%#29673\fP from rallytime/fix\-29661
  240695. .INDENT 2.0
  240696. .IP \(bu 2
  240697. e4af7a1157 Default value should be False and not \(aqFalse\(aq
  240698. .UNINDENT
  240699. .IP \(bu 2
  240700. f77c8e7baf Merge pull request \fI\%#29527\fP from jfindlay/2015.5
  240701. .INDENT 2.0
  240702. .IP \(bu 2
  240703. 1a8044f0c9 2015.5.7 notes: add note about not being released
  240704. .UNINDENT
  240705. .UNINDENT
  240706. .UNINDENT
  240707. .IP \(bu 2
  240708. \fBISSUE\fP \fI\%#27611\fP: (\fI\%benburkert\fP) PR #26818 broke git.latest with :mirror/:bare (refs: \fI\%#29681\fP)
  240709. .IP \(bu 2
  240710. \fBPR\fP \fI\%#29681\fP: (\fI\%clinta\fP) fix bare/mirror in git.latest
  240711. @ \fI2015\-12\-15 18:37:16 UTC\fP
  240712. .INDENT 2.0
  240713. .IP \(bu 2
  240714. 3c427e82bf Merge pull request \fI\%#29681\fP from clinta/git\-mirror
  240715. .IP \(bu 2
  240716. b387072a6f fix bare/mirror in git.latest
  240717. .UNINDENT
  240718. .IP \(bu 2
  240719. \fBPR\fP \fI\%#29644\fP: (\fI\%rallytime\fP) Fixed a couple more ESXi proxy minion bugs
  240720. @ \fI2015\-12\-14 18:36:28 UTC\fP
  240721. .INDENT 2.0
  240722. .IP \(bu 2
  240723. fe0778dad5 Merge pull request \fI\%#29644\fP from rallytime/esxi\-fixes
  240724. .IP \(bu 2
  240725. 577d5487a3 Fixed a couple more ESXi proxy minion bugs
  240726. .UNINDENT
  240727. .IP \(bu 2
  240728. \fBPR\fP \fI\%#29645\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29558\fP to 2015.8
  240729. @ \fI2015\-12\-14 18:11:38 UTC\fP
  240730. .INDENT 2.0
  240731. .IP \(bu 2
  240732. \fBPR\fP \fI\%#29558\fP: (\fI\%ruxandraburtica\fP) Returning security group when no VPC id is given (refs: \fI\%#29645\fP)
  240733. .IP \(bu 2
  240734. ef2c9e3f61 Merge pull request \fI\%#29645\fP from rallytime/bp\-29558
  240735. .IP \(bu 2
  240736. 2cf9374342 Replaced tabs with spaces.
  240737. .IP \(bu 2
  240738. 5e7e3fe682 Returning security group when no VPC id is given, even if the group is not in EC2\-classic.
  240739. .UNINDENT
  240740. .IP \(bu 2
  240741. \fBISSUE\fP \fI\%#29630\fP: (\fI\%c4t3l\fP) Fresh minion install (2015.8.3) returns service __virtual__ is False errors on salt\-calls (refs: \fI\%#29632\fP)
  240742. .IP \(bu 2
  240743. \fBISSUE\fP \fI\%#29581\fP: (\fI\%zmalone\fP) Complaints about pyOpenSSL version on Saltstack 2015.8.3 (refs: \fI\%#29632\fP)
  240744. .IP \(bu 2
  240745. \fBPR\fP \fI\%#29632\fP: (\fI\%jfindlay\fP) reduce severity of tls module __virtual__ logging
  240746. @ \fI2015\-12\-11 20:11:32 UTC\fP
  240747. .INDENT 2.0
  240748. .IP \(bu 2
  240749. a2a7f1527b Merge pull request \fI\%#29632\fP from jfindlay/tls_virt
  240750. .IP \(bu 2
  240751. 3ed6a052fd modules.tls.__virtual__: don\(aqt spam everyone\(aqs error log
  240752. .IP \(bu 2
  240753. 76a200e780 modules.tls.__virtual__: refactor cert path comment
  240754. .IP \(bu 2
  240755. 0a0532e598 modules.tls.__virtual__: remove redundant parens
  240756. .UNINDENT
  240757. .IP \(bu 2
  240758. \fBISSUE\fP \fI\%#29598\fP: (\fI\%javicacheiro\fP) Duplicated MTU entry added (refs: \fI\%#29606\fP)
  240759. .IP \(bu 2
  240760. \fBPR\fP \fI\%#29606\fP: (\fI\%abednarik\fP) Fixed duplicate mtu entry in RedHat 7 network configuration.
  240761. @ \fI2015\-12\-11 17:24:45 UTC\fP
  240762. .INDENT 2.0
  240763. .IP \(bu 2
  240764. f6f3aa6613 Merge pull request \fI\%#29606\fP from abednarik/remove_duplicate_mtu_entry_rh7_net_template
  240765. .IP \(bu 2
  240766. afb2f887ba Fixed duplicate mtu entry in RedHat 7 network configuration.
  240767. .UNINDENT
  240768. .IP \(bu 2
  240769. \fBPR\fP \fI\%#29613\fP: (\fI\%rallytime\fP) Various ESXi Proxy Minion Bug Fixes
  240770. @ \fI2015\-12\-11 17:18:58 UTC\fP
  240771. .INDENT 2.0
  240772. .IP \(bu 2
  240773. c7e73bc4c8 Merge pull request \fI\%#29613\fP from rallytime/esxi\-fixes
  240774. .IP \(bu 2
  240775. aa5dd88b6f Various ESXi Proxy Minion Bug Fixes
  240776. .UNINDENT
  240777. .IP \(bu 2
  240778. \fBISSUE\fP \fI\%#26364\fP: (\fI\%cedwards\fP) [freebsd] TCP transport not working in 2015.8.0rc3 (refs: \fI\%#29628\fP)
  240779. .IP \(bu 2
  240780. \fBPR\fP \fI\%#29628\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt create io_loop before fork
  240781. @ \fI2015\-12\-11 17:15:11 UTC\fP
  240782. .INDENT 2.0
  240783. .IP \(bu 2
  240784. a56c763423 Merge pull request \fI\%#29628\fP from DSRCompany/bug/26364_freebsd_tcp
  240785. .IP \(bu 2
  240786. 729ffcae36 Don\(aqt create io_loop before fork
  240787. .UNINDENT
  240788. .IP \(bu 2
  240789. \fBPR\fP \fI\%#29609\fP: (\fI\%basepi\fP) [2015.8][salt\-ssh] Add ability to set salt\-ssh command umask in roster
  240790. @ \fI2015\-12\-10 22:52:27 UTC\fP
  240791. .INDENT 2.0
  240792. .IP \(bu 2
  240793. 41b8117237 Merge pull request \fI\%#29609\fP from basepi/salt\-ssh.umask.29574
  240794. .IP \(bu 2
  240795. 0afa5b0d5d Add cmd_umask to roster docs
  240796. .IP \(bu 2
  240797. 5c03f892bc Allow setting the cmd_umask from within the roster
  240798. .UNINDENT
  240799. .IP \(bu 2
  240800. \fBISSUE\fP \fI\%#29586\fP: (\fI\%basepi\fP) Orchestrate doesn\(aqt handle minion error properly (refs: \fI\%#29603\fP)
  240801. .IP \(bu 2
  240802. \fBISSUE\fP \fI\%#29546\fP: (\fI\%jefferyharrell\fP) Can\(aqt seem to get orchestrate to recognize a failed state (refs: \fI\%#29603\fP)
  240803. .IP \(bu 2
  240804. \fBPR\fP \fI\%#29603\fP: (\fI\%basepi\fP) Fix orchestration failure\-checking
  240805. @ \fI2015\-12\-10 21:23:57 UTC\fP
  240806. .INDENT 2.0
  240807. .IP \(bu 2
  240808. 1e394f5ab1 Merge pull request \fI\%#29603\fP from basepi/orchestrate.failures.29546
  240809. .IP \(bu 2
  240810. 2bdcadaa27 Remove unnecessary and
  240811. .IP \(bu 2
  240812. 501f91a388 Fix error in failure checking for salt.state within orchestration
  240813. .UNINDENT
  240814. .IP \(bu 2
  240815. \fBISSUE\fP \fI\%#29584\fP: (\fI\%kwilliams057\fP) dockerng image\-present fails when trying to pull from registry (refs: \fI\%#29597\fP)
  240816. .IP \(bu 2
  240817. \fBPR\fP \fI\%#29597\fP: (\fI\%terminalmage\fP) dockerng: Prevent exception when API response contains empty dictionary
  240818. @ \fI2015\-12\-10 19:57:42 UTC\fP
  240819. .INDENT 2.0
  240820. .IP \(bu 2
  240821. b5b80b9324 Merge pull request \fI\%#29597\fP from terminalmage/issue29584
  240822. .IP \(bu 2
  240823. d68067b5db dockerng: Prevent exception when API response contains empty dictionary
  240824. .UNINDENT
  240825. .IP \(bu 2
  240826. \fBISSUE\fP \fI\%#29585\fP: (\fI\%job\fP) cidr argument in salt.modules.network.ip_addrs6() is broken (refs: \fI\%#29587\fP)
  240827. .IP \(bu 2
  240828. \fBPR\fP \fI\%#29596\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29587\fP to 2015.8
  240829. @ \fI2015\-12\-10 19:57:18 UTC\fP
  240830. .INDENT 2.0
  240831. .IP \(bu 2
  240832. \fBPR\fP \fI\%#29587\fP: (\fI\%job\fP) Fix the \(aqcidr\(aq arg in salt.modules.network.ip_addrs6() (refs: \fI\%#29596\fP)
  240833. .IP \(bu 2
  240834. ffb54cced7 Merge pull request \fI\%#29596\fP from rallytime/bp\-29587
  240835. .IP \(bu 2
  240836. bfb75ce363 Fix the \(aqcidr\(aq arg in salt.modules.network.ip_addrs6()
  240837. .UNINDENT
  240838. .IP \(bu 2
  240839. \fBPR\fP \fI\%#29588\fP: (\fI\%rallytime\fP) Added ESXi Proxy Minion Tutorial
  240840. @ \fI2015\-12\-10 16:17:51 UTC\fP
  240841. .INDENT 2.0
  240842. .IP \(bu 2
  240843. 08dd663a27 Merge pull request \fI\%#29588\fP from rallytime/esxi\-proxy\-tutorial
  240844. .IP \(bu 2
  240845. 5a2bb260d3 Added ESXi Proxy Minion Tutorial
  240846. .UNINDENT
  240847. .IP \(bu 2
  240848. \fBISSUE\fP \fI\%#29557\fP: (\fI\%arthurlogilab\fP) [modules/nova] AttributeError: \(aqmodule\(aq object has no attribute \(aqdiscover_extensions\(aq when using nova.image_list (refs: \fI\%#29572\fP)
  240849. .IP \(bu 2
  240850. \fBPR\fP \fI\%#29572\fP: (\fI\%gtmanfred\fP) [nova] use old discover_extensions if available
  240851. @ \fI2015\-12\-09 17:35:42 UTC\fP
  240852. .INDENT 2.0
  240853. .IP \(bu 2
  240854. fe5db23863 Merge pull request \fI\%#29572\fP from gtmanfred/2015.8
  240855. .IP \(bu 2
  240856. d0ffa520f4 use old discover_extensions if available
  240857. .UNINDENT
  240858. .IP \(bu 2
  240859. \fBISSUE\fP \fI\%#29009\fP: (\fI\%LoveIsGrief\fP) git.latest doesn\(aqt checkout submodules (refs: \fI\%#29545\fP)
  240860. .IP \(bu 2
  240861. \fBPR\fP \fI\%#29545\fP: (\fI\%terminalmage\fP) git.latest: init submodules if not yet initialized
  240862. @ \fI2015\-12\-09 16:19:42 UTC\fP
  240863. .INDENT 2.0
  240864. .IP \(bu 2
  240865. ecbc60ba05 Merge pull request \fI\%#29545\fP from terminalmage/issue29009
  240866. .IP \(bu 2
  240867. 6619503aec git.latest: init submodules if not yet initialized
  240868. .UNINDENT
  240869. .IP \(bu 2
  240870. \fBPR\fP \fI\%#29548\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29449\fP to 2015.8
  240871. @ \fI2015\-12\-09 16:19:07 UTC\fP
  240872. .INDENT 2.0
  240873. .IP \(bu 2
  240874. \fBPR\fP \fI\%#29449\fP: (\fI\%AkhterAli\fP) Adding message for null public IP (refs: \fI\%#29548\fP)
  240875. .IP \(bu 2
  240876. 3b2c93a2e5 Merge pull request \fI\%#29548\fP from rallytime/bp\-29449
  240877. .IP \(bu 2
  240878. 3715cd7d65 Adding message for null public IP
  240879. .UNINDENT
  240880. .IP \(bu 2
  240881. \fBPR\fP \fI\%#29547\fP: (\fI\%rallytime\fP) Refactored ESXCLI\-based functions to accept a list of esxi_hosts
  240882. @ \fI2015\-12\-09 16:08:03 UTC\fP
  240883. .INDENT 2.0
  240884. .IP \(bu 2
  240885. fd67903bf9 Merge pull request \fI\%#29547\fP from rallytime/esxi\-proxy
  240886. .IP \(bu 2
  240887. 469648dd07 Refactored ESXCLI\-based functions to accept a list of esxi_hosts
  240888. .UNINDENT
  240889. .IP \(bu 2
  240890. \fBPR\fP \fI\%#29563\fP: (\fI\%anlutro\fP) Fix a call to deprecated method in python\-influxdb
  240891. @ \fI2015\-12\-09 16:00:24 UTC\fP
  240892. .INDENT 2.0
  240893. .IP \(bu 2
  240894. 21437f9235 Merge pull request \fI\%#29563\fP from alprs/fix\-influx_deprecated_method
  240895. .IP \(bu 2
  240896. 7c69c177ed update test
  240897. .IP \(bu 2
  240898. 46d7d92069 fix a call to deprecated method in python\-influxdb
  240899. .UNINDENT
  240900. .IP \(bu 2
  240901. \fBPR\fP \fI\%#29565\fP: (\fI\%bdrung\fP) Fix typos and missing release note
  240902. @ \fI2015\-12\-09 15:59:21 UTC\fP
  240903. .INDENT 2.0
  240904. .IP \(bu 2
  240905. f29e0a7021 Merge pull request \fI\%#29565\fP from bdrung/2015.8
  240906. .IP \(bu 2
  240907. b96d8ff1d9 Minor update to release notes for missing fix
  240908. .IP \(bu 2
  240909. e72354aac4 Fix typo specfic \-> specific
  240910. .IP \(bu 2
  240911. 5708355762 Fix typo comparsion \-> comparison
  240912. .UNINDENT
  240913. .IP \(bu 2
  240914. \fBPR\fP \fI\%#29540\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  240915. @ \fI2015\-12\-08 21:27:01 UTC\fP
  240916. .INDENT 2.0
  240917. .IP \(bu 2
  240918. 25d3a75d8c Merge pull request \fI\%#29540\fP from basepi/merge\-forward\-2015.8
  240919. .IP \(bu 2
  240920. e59364ad1d Fix failing unit test
  240921. .IP \(bu 2
  240922. 9673fd0937 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  240923. .INDENT 2.0
  240924. .IP \(bu 2
  240925. 867d550271 Merge pull request \fI\%#29539\fP from basepi/merge\-forward\-2015.5
  240926. .INDENT 2.0
  240927. .IP \(bu 2
  240928. 2c9c4ba430 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  240929. .IP \(bu 2
  240930. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  240931. .INDENT 2.0
  240932. .IP \(bu 2
  240933. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  240934. .UNINDENT
  240935. .UNINDENT
  240936. .IP \(bu 2
  240937. de7f3d5a59 Merge pull request \fI\%#29504\fP from rallytime/fix\-12072
  240938. .INDENT 2.0
  240939. .IP \(bu 2
  240940. 8357c95dc2 Document userdata_file option for EC2 driver
  240941. .UNINDENT
  240942. .IP \(bu 2
  240943. 65deba8bb5 Merge pull request \fI\%#29507\fP from rallytime/ec2\-doc\-fix
  240944. .INDENT 2.0
  240945. .IP \(bu 2
  240946. 90b4823bc2 Switch volumes and del_*_on_destroy example ordering
  240947. .UNINDENT
  240948. .IP \(bu 2
  240949. 0918c9294f Merge pull request \fI\%#29469\fP from abednarik/doc_note_for_saltcloud_connection_timeout
  240950. .INDENT 2.0
  240951. .IP \(bu 2
  240952. 8e5c3e366a Added Documentation note in salt cloud.
  240953. .UNINDENT
  240954. .IP \(bu 2
  240955. e43c7c05a6 Merge pull request \fI\%#29461\fP from dmyerscough/fix\-resource\-limits
  240956. .INDENT 2.0
  240957. .IP \(bu 2
  240958. 85a8a3b033 Fix resource limits, systemd sets the default number of open files to 4096 causing te master to complain about limits when you have a large number of keys
  240959. .UNINDENT
  240960. .IP \(bu 2
  240961. 730f02fbdf Merge pull request \fI\%#29439\fP from rallytime/bp\-28656
  240962. .INDENT 2.0
  240963. .IP \(bu 2
  240964. 2f11bb021f \fI\%#28526\fP fixed yumpkg module
  240965. .UNINDENT
  240966. .IP \(bu 2
  240967. 197210d52e Merge pull request \fI\%#29418\fP from jacobhammons/dot8
  240968. .INDENT 2.0
  240969. .IP \(bu 2
  240970. 4f51a737f9 Added CVE 2015\-8034 to 2015.5.8 release notes
  240971. .UNINDENT
  240972. .IP \(bu 2
  240973. b3452f2a1a Merge pull request \fI\%#29389\fP from jacobhammons/2015.5
  240974. .INDENT 2.0
  240975. .IP \(bu 2
  240976. 824721ff36 updated version numbers
  240977. .UNINDENT
  240978. .IP \(bu 2
  240979. 6a7a95f28a Merge pull request \fI\%#28501\fP from twangboy/jmoney_26898
  240980. .INDENT 2.0
  240981. .IP \(bu 2
  240982. c0cf33332c Fixed some Lint...
  240983. .IP \(bu 2
  240984. df17fc59d3 Merge pull request \fI\%#6\fP from jfindlay/twang_test
  240985. .INDENT 2.0
  240986. .IP \(bu 2
  240987. bc7e0cfe64 add file.symlink unit tests
  240988. .IP \(bu 2
  240989. 9381dc7215 orthogonalize file.symlink unit tests
  240990. .UNINDENT
  240991. .IP \(bu 2
  240992. 8f462ba044 Merge pull request \fI\%#5\fP from cachedout/fix_twangboy_test
  240993. .INDENT 2.0
  240994. .IP \(bu 2
  240995. 5293150d25 Fix tests
  240996. .UNINDENT
  240997. .IP \(bu 2
  240998. 7d39091c91 Fixed some more lint
  240999. .IP \(bu 2
  241000. 3dbd62af2c Fixed some tests... hopefully
  241001. .IP \(bu 2
  241002. f187db3288 Removed unnecessary logic
  241003. .IP \(bu 2
  241004. 89ebd268e6 Added file attributes restore on fail
  241005. .IP \(bu 2
  241006. 9ec72ca724 fix file state unit tests for win symlink feature
  241007. .IP \(bu 2
  241008. 69c32a663e Fixed some lint
  241009. .IP \(bu 2
  241010. 638dec5027 Fixed some tests... let\(aqs see if they\(aqre really are
  241011. .IP \(bu 2
  241012. 5ed7a99792 Replaced instances of shutil.rmtree in file state
  241013. .IP \(bu 2
  241014. 2651ce509f Fix file.remove for windows
  241015. .UNINDENT
  241016. .IP \(bu 2
  241017. 760a521603 Merge pull request \fI\%#29348\fP from jtand/file_search_fix
  241018. .INDENT 2.0
  241019. .IP \(bu 2
  241020. 04f82bd4fd Fixes an file.search on python2.6
  241021. .UNINDENT
  241022. .IP \(bu 2
  241023. 51ea88d489 Merge pull request \fI\%#29336\fP from rallytime/bp\-29276
  241024. .INDENT 2.0
  241025. .IP \(bu 2
  241026. 3a0e19debb Prevent adding port twice when adding entry in known hosts
  241027. .UNINDENT
  241028. .IP \(bu 2
  241029. 28255af52a Merge pull request \fI\%#29333\fP from rallytime/bp\-29280
  241030. .INDENT 2.0
  241031. .IP \(bu 2
  241032. 722d02ff4a Lint
  241033. .IP \(bu 2
  241034. 4a0040c1b4 [Doc] Add note for SVN state
  241035. .UNINDENT
  241036. .UNINDENT
  241037. .UNINDENT
  241038. .IP \(bu 2
  241039. \fBPR\fP \fI\%#29499\fP: (\fI\%rallytime\fP) Initial commit of ESXi Proxy Minion
  241040. @ \fI2015\-12\-08 21:10:13 UTC\fP
  241041. .INDENT 2.0
  241042. .IP \(bu 2
  241043. 3ae096b7ac Merge pull request \fI\%#29499\fP from rallytime/esxi\-proxy
  241044. .IP \(bu 2
  241045. d8b1ba3991 Make sure ESXCLI gating is correct in vsphere __virtual__
  241046. .IP \(bu 2
  241047. 55589f8021 Provide some more inline comments for longer functions
  241048. .IP \(bu 2
  241049. baf2f8ce7a Pylint fix
  241050. .IP \(bu 2
  241051. 763ae5d676 VMotion functions, gate ESXCLI requirement, allow protocol/port for ESXCLI function
  241052. .IP \(bu 2
  241053. d909df254e Bug fixes for esxi states
  241054. .IP \(bu 2
  241055. 7102677679 Bug fixes and move ntp and ssh service start/stop/restart to single funcs
  241056. .IP \(bu 2
  241057. 77b37add84 Added syslog_configured state, and some minor bug fixes
  241058. .IP \(bu 2
  241059. df49f533f6 More state functions and a couple of bug fixes
  241060. .IP \(bu 2
  241061. a50c74cfe2 Merge pull request \fI\%#13\fP from cro/esxi\-proxy3
  241062. .INDENT 2.0
  241063. .IP \(bu 2
  241064. 87fc980f33 Add syslog config and network firewall rules enable
  241065. .UNINDENT
  241066. .IP \(bu 2
  241067. 42be49f481 Merge pull request \fI\%#11\fP from cro/esxi\-proxy
  241068. .INDENT 2.0
  241069. .IP \(bu 2
  241070. d858642f05 Add documentation.
  241071. .IP \(bu 2
  241072. 43879d1dfe Functions for setting network coredumps
  241073. .UNINDENT
  241074. .IP \(bu 2
  241075. 7d7d2afa7f Initial commit of ESXi state and refactored vsan_add_disks to include a get function.
  241076. .IP \(bu 2
  241077. bc945a48db Add execution module functions to upload ssh key for root and retrieve ssh key for root.
  241078. .IP \(bu 2
  241079. 238b0f5bea Update error return policy and add service running/policy functions
  241080. .IP \(bu 2
  241081. 9ba9019419 Initial commit of ESXi proxy work.
  241082. .UNINDENT
  241083. .IP \(bu 2
  241084. \fBPR\fP \fI\%#29526\fP: (\fI\%jfindlay\fP) 2015.8.2 notes: add note about not being released
  241085. @ \fI2015\-12\-08 21:09:50 UTC\fP
  241086. .INDENT 2.0
  241087. .IP \(bu 2
  241088. 873f6a9460 Merge pull request \fI\%#29526\fP from jfindlay/2015.8
  241089. .IP \(bu 2
  241090. 917e6f850c 2015.8.2 notes: add note about not being released
  241091. .UNINDENT
  241092. .IP \(bu 2
  241093. \fBISSUE\fP \fI\%#29484\fP: (\fI\%m7v8\fP) patchlevel detection broken for openSuSE (refs: \fI\%#29531\fP)
  241094. .IP \(bu 2
  241095. \fBPR\fP \fI\%#29531\fP: (\fI\%jfindlay\fP) grains.core: handle undefined variable
  241096. @ \fI2015\-12\-08 21:07:38 UTC\fP
  241097. .INDENT 2.0
  241098. .IP \(bu 2
  241099. 3de61e3655 Merge pull request \fI\%#29531\fP from jfindlay/suse_patch
  241100. .IP \(bu 2
  241101. 1ad5a088fc grains.core: handle undefined variable
  241102. .UNINDENT
  241103. .IP \(bu 2
  241104. \fBISSUE\fP \fI\%#29486\fP: (\fI\%m7v8\fP) Pull request breaks our setup (umask) (refs: \fI\%#29538\fP)
  241105. .IP \(bu 2
  241106. \fBISSUE\fP \fI\%#29005\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-call call in salt\-ssh (refs: \fI\%#29126\fP)
  241107. .IP \(bu 2
  241108. \fBISSUE\fP \fI\%#28830\fP: (\fI\%fcrozat\fP) non\-standard umask breaks salt\-ssh deployement (refs: \fI\%#29126\fP)
  241109. .IP \(bu 2
  241110. \fBPR\fP \fI\%#29538\fP: (\fI\%basepi\fP) [2015.8] [salt\-ssh] Remove umask around actual execution for salt\-ssh
  241111. @ \fI2015\-12\-08 20:45:58 UTC\fP
  241112. .INDENT 2.0
  241113. .IP \(bu 2
  241114. \fBPR\fP \fI\%#29126\fP: (\fI\%fcrozat\fP) Fix deployment when umask is non\-standard (refs: \fI\%#29538\fP)
  241115. .IP \(bu 2
  241116. 1d8014411a Merge pull request \fI\%#29538\fP from basepi/salt\-ssh.umask.29486
  241117. .IP \(bu 2
  241118. 5edfa014f5 Remove umask around actual execution for salt\-ssh
  241119. .UNINDENT
  241120. .IP \(bu 2
  241121. \fBISSUE\fP \fI\%#28715\fP: (\fI\%mlalpho\fP) Tagging Resources with boto_rds (refs: \fI\%#29505\fP)
  241122. .IP \(bu 2
  241123. \fBPR\fP \fI\%#29505\fP: (\fI\%rallytime\fP) Update boto_rds state docs to include funky yaml syntax for "tags" option.
  241124. @ \fI2015\-12\-08 17:05:02 UTC\fP
  241125. .INDENT 2.0
  241126. .IP \(bu 2
  241127. fb02fc1ef1 Merge pull request \fI\%#29505\fP from rallytime/fix\-28715
  241128. .IP \(bu 2
  241129. f43f851a92 Update boto_rds state docs to include funky yaml syntax for "tags" option.
  241130. .UNINDENT
  241131. .IP \(bu 2
  241132. \fBPR\fP \fI\%#29513\fP: (\fI\%bdrung\fP) Drop obsolete syslog.target from systemd services
  241133. @ \fI2015\-12\-08 16:05:01 UTC\fP
  241134. .INDENT 2.0
  241135. .IP \(bu 2
  241136. 38888add5e Merge pull request \fI\%#29513\fP from bdrung/2015.8
  241137. .IP \(bu 2
  241138. b1a4ade618 Drop obsolete syslog.target from systemd services
  241139. .UNINDENT
  241140. .IP \(bu 2
  241141. \fBPR\fP \fI\%#29500\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29467\fP to 2015.8
  241142. @ \fI2015\-12\-07 23:24:00 UTC\fP
  241143. .INDENT 2.0
  241144. .IP \(bu 2
  241145. \fBPR\fP \fI\%#29467\fP: (\fI\%serge\-p\fP) Update module.py (refs: \fI\%#29500\fP)
  241146. .IP \(bu 2
  241147. 148dad6674 Merge pull request \fI\%#29500\fP from rallytime/bp\-29467
  241148. .IP \(bu 2
  241149. ca0be8bff0 Update module.py
  241150. .UNINDENT
  241151. .IP \(bu 2
  241152. \fBISSUE\fP \fI\%#29001\fP: (\fI\%olfway\fP) debconf.set doesn\(aqt support "prereq" in states (refs: \fI\%#29463\fP)
  241153. .IP \(bu 2
  241154. \fBPR\fP \fI\%#29463\fP: (\fI\%abednarik\fP) Add **kwargs to debconf.set.
  241155. @ \fI2015\-12\-07 19:56:05 UTC\fP
  241156. .INDENT 2.0
  241157. .IP \(bu 2
  241158. 9d11acc7db Merge pull request \fI\%#29463\fP from abednarik/debconf_fix_prereq_support
  241159. .IP \(bu 2
  241160. b17f1fed43 Add **kwargs to debconf.set.
  241161. .UNINDENT
  241162. .IP \(bu 2
  241163. \fBISSUE\fP \fI\%#29311\fP: (\fI\%Reiner030\fP) Feature Request: System uptime also in seconds (refs: \fI\%#29399\fP)
  241164. .IP \(bu 2
  241165. \fBPR\fP \fI\%#29399\fP: (\fI\%jfindlay\fP) modules.status: add human_readable option to uptime
  241166. @ \fI2015\-12\-07 19:53:52 UTC\fP
  241167. .INDENT 2.0
  241168. .IP \(bu 2
  241169. 7efd6dd140 Merge pull request \fI\%#29399\fP from jfindlay/second_up
  241170. .IP \(bu 2
  241171. 1903124814 modules.win_status: add reason to virtual ret
  241172. .IP \(bu 2
  241173. 35ba7da470 modules.status: add reason to __virtual__ return
  241174. .IP \(bu 2
  241175. 48e7beb0eb modules.status: add in_seconds option to uptime
  241176. .UNINDENT
  241177. .IP \(bu 2
  241178. \fBPR\fP \fI\%#29433\fP: (\fI\%cro\fP) Files for building .pkg files for MacOS X
  241179. @ \fI2015\-12\-07 19:47:23 UTC\fP
  241180. .INDENT 2.0
  241181. .IP \(bu 2
  241182. 042daf91b8 Merge pull request \fI\%#29433\fP from cro/mac_native_pkg
  241183. .IP \(bu 2
  241184. 8e191ae264 Add web references
  241185. .IP \(bu 2
  241186. 5f1459d708 Update mac packaging
  241187. .IP \(bu 2
  241188. 092b7ddd0a First crack at build files for Mac OS X Native package
  241189. .UNINDENT
  241190. .IP \(bu 2
  241191. \fBISSUE\fP \fI\%#29445\fP: (\fI\%shawnbutts\fP) salt.loaded.int.module.nova.__virtual__() is wrongly returning \fINone\fP\&. (refs: \fI\%#29455\fP)
  241192. .IP \(bu 2
  241193. \fBPR\fP \fI\%#29455\fP: (\fI\%jfindlay\fP) modules.nova.__init__: do not return \fBNone\fP
  241194. @ \fI2015\-12\-07 19:44:00 UTC\fP
  241195. .INDENT 2.0
  241196. .IP \(bu 2
  241197. 5ff3749108 Merge pull request \fI\%#29455\fP from jfindlay/nova_none
  241198. .IP \(bu 2
  241199. 19da8233c8 modules.nova.__init__: do not return \fBNone\fP
  241200. .UNINDENT
  241201. .IP \(bu 2
  241202. \fBPR\fP \fI\%#29454\fP: (\fI\%jfindlay\fP) rh_service module __virtual__ return error messages
  241203. @ \fI2015\-12\-07 19:32:15 UTC\fP
  241204. .INDENT 2.0
  241205. .IP \(bu 2
  241206. 289e9d169e Merge pull request \fI\%#29454\fP from jfindlay/rh_service
  241207. .IP \(bu 2
  241208. 9975508f86 modules.rh_service.__virtual__: handle SUSE osrelease as num
  241209. .IP \(bu 2
  241210. d7ab7bf51f modules.rh_service: __virtual__ error messages
  241211. .UNINDENT
  241212. .IP \(bu 2
  241213. \fBPR\fP \fI\%#29476\fP: (\fI\%tbaker57\fP) Doc fix \- route_table_present needs subnet_names (not subnets) as a key
  241214. @ \fI2015\-12\-07 18:47:22 UTC\fP
  241215. .INDENT 2.0
  241216. .IP \(bu 2
  241217. cb465927d6 Merge pull request \fI\%#29476\fP from tbaker57/boto_vpc_docfix
  241218. .IP \(bu 2
  241219. 36946640b8 Fix \- don\(aqt specify \(aqname\(aq key inside the list \- just the subnet names
  241220. .IP \(bu 2
  241221. 5cab4b775a Doc fix \- route_table_present needs subnet_names (not subnets) as a key
  241222. .UNINDENT
  241223. .IP \(bu 2
  241224. \fBPR\fP \fI\%#29487\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29450\fP to 2015.8
  241225. @ \fI2015\-12\-07 17:25:23 UTC\fP
  241226. .INDENT 2.0
  241227. .IP \(bu 2
  241228. \fBPR\fP \fI\%#29450\fP: (\fI\%pass\-by\-value\fP) Raise error if dracr password is above 20 chars (refs: \fI\%#29487\fP)
  241229. .IP \(bu 2
  241230. 6696cf6eb5 Merge pull request \fI\%#29487\fP from rallytime/bp\-29450
  241231. .IP \(bu 2
  241232. 2c55c55ff1 Raise error if dracr password is above 20 chars
  241233. .UNINDENT
  241234. .IP \(bu 2
  241235. \fBISSUE\fP \fI\%#29133\fP: (\fI\%cedwards\fP) FX2 proxy\-minion dellchassis idrac state incomplete (refs: \fI\%#29441\fP)
  241236. .IP \(bu 2
  241237. \fBPR\fP \fI\%#29441\fP: (\fI\%rallytime\fP) Make sure docs line up with blade_idrac function specs
  241238. @ \fI2015\-12\-05 16:30:27 UTC\fP
  241239. .INDENT 2.0
  241240. .IP \(bu 2
  241241. a1ffc5aacb Merge pull request \fI\%#29441\fP from rallytime/fix\-doc\-dellchassis
  241242. .IP \(bu 2
  241243. cf62361830 Make sure docs line up with blade_idrac function specs
  241244. .UNINDENT
  241245. .IP \(bu 2
  241246. \fBPR\fP \fI\%#29440\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28925\fP to 2015.8
  241247. @ \fI2015\-12\-05 00:21:26 UTC\fP
  241248. .INDENT 2.0
  241249. .IP \(bu 2
  241250. \fBPR\fP \fI\%#28925\fP: (\fI\%pass\-by\-value\fP) Fx2 firmware update (refs: \fI\%#29440\fP)
  241251. .IP \(bu 2
  241252. 6cc6f776bc Merge pull request \fI\%#29440\fP from rallytime/bp\-28925
  241253. .IP \(bu 2
  241254. 1b57a57c48 Lint fixes
  241255. .IP \(bu 2
  241256. 7cea3afb4f Support multiple hosts
  241257. .IP \(bu 2
  241258. 0be3620715 Set kwarg
  241259. .IP \(bu 2
  241260. b7324b5102 Add doc for new state
  241261. .IP \(bu 2
  241262. 613dd0b7a2 Make sure creds are set before \fBracadm update\fP
  241263. .IP \(bu 2
  241264. 929e679b25 Add firmware update state to dellchassis
  241265. .IP \(bu 2
  241266. 6356af3b99 Raise error
  241267. .IP \(bu 2
  241268. 820ad7b3df Validate file existence
  241269. .IP \(bu 2
  241270. 94704304ec Add firmware update functions to module
  241271. .UNINDENT
  241272. .IP \(bu 2
  241273. \fBISSUE\fP \fI\%#29425\fP: (\fI\%paclat\fP) services for older OEL releases. (refs: \fI\%#29435\fP)
  241274. .IP \(bu 2
  241275. \fBPR\fP \fI\%#29435\fP: (\fI\%galet\fP) Grains return wrong OS version and other OS related values for Oracle Linux
  241276. @ \fI2015\-12\-05 00:19:11 UTC\fP
  241277. .INDENT 2.0
  241278. .IP \(bu 2
  241279. 129f45f7c3 Merge pull request \fI\%#29435\fP from galet/2015.8
  241280. .IP \(bu 2
  241281. fdaa81ccf8 Grains return wrong OS version and other OS related values for Oracle Linux
  241282. .IP \(bu 2
  241283. c494ddd5fc Grains return wrong OS version and other OS related values for Oracle Linux
  241284. .UNINDENT
  241285. .IP \(bu 2
  241286. \fBISSUE\fP \fI\%saltstack/salt#29313\fP: (\fI\%rmatulat\fP) state/host.present and alias\-assignment to multiple IPs fails (refs: \fI\%#29430\fP)
  241287. .IP \(bu 2
  241288. \fBPR\fP \fI\%#29430\fP: (\fI\%rmatulat\fP) Fix host.present state limitation
  241289. @ \fI2015\-12\-04 23:08:20 UTC\fP
  241290. .INDENT 2.0
  241291. .IP \(bu 2
  241292. e2b43a3f1e Merge pull request \fI\%#29430\fP from rall0r/2015.8
  241293. .IP \(bu 2
  241294. d3dacff4a2 Fix host.present state limitation
  241295. .UNINDENT
  241296. .IP \(bu 2
  241297. \fBPR\fP \fI\%#29417\fP: (\fI\%jacobhammons\fP) Repo install updates
  241298. @ \fI2015\-12\-04 02:39:41 UTC\fP
  241299. .INDENT 2.0
  241300. .IP \(bu 2
  241301. ab890b632a Merge pull request \fI\%#29417\fP from jacobhammons/repo\-install\-updates
  241302. .IP \(bu 2
  241303. d58182c5fa updated repo path for RHEL installation
  241304. .IP \(bu 2
  241305. 5e54359869 Updated Debian, RHEL / Cent, Ubuntu installation instructions with new repo structure for 2015.8.3. Added CVE\-2015\-8034 to release notes.
  241306. .UNINDENT
  241307. .IP \(bu 2
  241308. \fBPR\fP \fI\%#29402\fP: (\fI\%techhat\fP) Add rate limiting to linode
  241309. @ \fI2015\-12\-03 20:27:10 UTC\fP
  241310. .INDENT 2.0
  241311. .IP \(bu 2
  241312. cb1e2e6e73 Merge pull request \fI\%#29402\fP from techhat/ratelimit
  241313. .IP \(bu 2
  241314. f0a4d93077 Add rate limiting to linode
  241315. .UNINDENT
  241316. .IP \(bu 2
  241317. \fBISSUE\fP \fI\%#19332\fP: (\fI\%QuinnyPig\fP) Nondeterminism in Pillar (refs: \fI\%#29400\fP)
  241318. .IP \(bu 2
  241319. \fBPR\fP \fI\%#29400\fP: (\fI\%twangboy\fP) Fix \fI\%#19332\fP
  241320. @ \fI2015\-12\-03 20:25:16 UTC\fP
  241321. .INDENT 2.0
  241322. .IP \(bu 2
  241323. 8fe39d0ef8 Merge pull request \fI\%#29400\fP from twangboy/fix_19332
  241324. .IP \(bu 2
  241325. 7bdddaca53 Fixed grammer
  241326. .IP \(bu 2
  241327. d965d00a09 Fix \fI\%#19332\fP
  241328. .UNINDENT
  241329. .IP \(bu 2
  241330. \fBPR\fP \fI\%#29398\fP: (\fI\%cachedout\fP) Lint 29288
  241331. @ \fI2015\-12\-03 18:03:53 UTC\fP
  241332. .INDENT 2.0
  241333. .IP \(bu 2
  241334. d2c0fcbc97 Merge pull request \fI\%#29398\fP from cachedout/lint_29288
  241335. .IP \(bu 2
  241336. 3b0033e529 Lint \fI\%#29288\fP
  241337. .IP \(bu 2
  241338. 386459ca6d Merge pull request \fI\%#1\fP from jfindlay/glustest
  241339. .INDENT 2.0
  241340. .IP \(bu 2
  241341. 4d6c71aa80 modules.glusterfs: fix start_volume unit test
  241342. .UNINDENT
  241343. .IP \(bu 2
  241344. f336c44630 Bootstrap failed, retrying
  241345. .IP \(bu 2
  241346. bd729cb3ea Set default GlusterFS version to 6
  241347. .IP \(bu 2
  241348. 443bfc6a81 Fixed volume status for >= 3.7 in glusterfs.py
  241349. .UNINDENT
  241350. .IP \(bu 2
  241351. \fBISSUE\fP \fI\%#29116\fP: (\fI\%johnsocp\fP) Unresolvable masters in the minions masters list cause minion to raise an error (refs: \fI\%#29331\fP)
  241352. .IP \(bu 2
  241353. \fBPR\fP \fI\%#29331\fP: (\fI\%DmitryKuzmenko\fP) Bugfix \- \fI\%#29116\fP raet dns error
  241354. @ \fI2015\-12\-03 17:10:40 UTC\fP
  241355. .INDENT 2.0
  241356. .IP \(bu 2
  241357. 5b8e7820ac Merge pull request \fI\%#29331\fP from DSRCompany/bug/29116_raet_dns_error_2
  241358. .IP \(bu 2
  241359. 8c2b217af5 Make pylint happy
  241360. .IP \(bu 2
  241361. e5672ee716 Don\(aqt exit if no master found
  241362. .IP \(bu 2
  241363. 1c324f5467 Don\(aqt fail if can\(aqt connect to master
  241364. .UNINDENT
  241365. .IP \(bu 2
  241366. \fBPR\fP \fI\%#29390\fP: (\fI\%jacobhammons\fP) updated version numbers in documentation
  241367. @ \fI2015\-12\-03 17:02:05 UTC\fP
  241368. .INDENT 2.0
  241369. .IP \(bu 2
  241370. 7bc6b1210d Merge pull request \fI\%#29390\fP from jacobhammons/2015.8
  241371. .IP \(bu 2
  241372. 486935b233 updated version numbers
  241373. .UNINDENT
  241374. .IP \(bu 2
  241375. \fBISSUE\fP \fI\%#25446\fP: (\fI\%DmitryKuzmenko\fP) Stack overflow on LazyLoader deep copying (refs: \fI\%#29381\fP)
  241376. .IP \(bu 2
  241377. \fBPR\fP \fI\%#29381\fP: (\fI\%nmadhok\fP) No need to deepcopy since six.iterkeys() creates a copy
  241378. @ \fI2015\-12\-03 15:54:52 UTC\fP
  241379. .INDENT 2.0
  241380. .IP \(bu 2
  241381. fd677e1d58 Merge pull request \fI\%#29381\fP from nmadhok/2015.8\-runtime\-fix
  241382. .IP \(bu 2
  241383. f109698196 No need to deepcopy since six.iterkeys() creates a copy
  241384. .UNINDENT
  241385. .IP \(bu 2
  241386. \fBPR\fP \fI\%#29349\fP: (\fI\%cro\fP) Fix mis\-setting chassis names
  241387. @ \fI2015\-12\-03 00:56:54 UTC\fP
  241388. .INDENT 2.0
  241389. .IP \(bu 2
  241390. 2973025058 Merge pull request \fI\%#29349\fP from cro/fx2_name_fix
  241391. .IP \(bu 2
  241392. 95d6d72a5d Fix mis\-setting the name of the chassis.
  241393. .UNINDENT
  241394. .IP \(bu 2
  241395. \fBISSUE\fP \fI\%#29236\fP: (\fI\%sjorge\fP) network.mod_bufsize has wrong docstring (refs: \fI\%#29237\fP)
  241396. .IP \(bu 2
  241397. \fBISSUE\fP \fI\%#29235\fP: (\fI\%sjorge\fP) network.get_bufsize has wrong docstring (refs: \fI\%#29237\fP)
  241398. .IP \(bu 2
  241399. \fBISSUE\fP \fI\%#29234\fP: (\fI\%sjorge\fP) network.dig should only be available if we have the \(aqdig\(aq binary (refs: \fI\%#29237\fP)
  241400. .IP \(bu 2
  241401. \fBISSUE\fP \fI\%#29233\fP: (\fI\%sjorge\fP) network.default_route does not seem to honor the family parameter (refs: \fI\%#29237\fP)
  241402. .IP \(bu 2
  241403. \fBISSUE\fP \fI\%#29232\fP: (\fI\%sjorge\fP) network.active_tcp seems linux specific (refs: \fI\%#29237\fP)
  241404. .IP \(bu 2
  241405. \fBISSUE\fP \fI\%#29231\fP: (\fI\%sjorge\fP) docstrings in salt/utils/network.py are incorrect (refs: \fI\%#29237\fP)
  241406. .IP \(bu 2
  241407. \fBPR\fP \fI\%#29334\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29237\fP to 2015.8
  241408. @ \fI2015\-12\-02 19:37:31 UTC\fP
  241409. .INDENT 2.0
  241410. .IP \(bu 2
  241411. \fBPR\fP \fI\%#29237\fP: (\fI\%sjorge\fP) Module network fixes (refs: \fI\%#29334\fP)
  241412. .IP \(bu 2
  241413. 17d80c051a Merge pull request \fI\%#29334\fP from rallytime/bp\-29237
  241414. .IP \(bu 2
  241415. 598226def1 fix unit test (attempt 1)
  241416. .IP \(bu 2
  241417. a461d7bf12 changed from Boron to 2015.8.4, so this can be backported
  241418. .IP \(bu 2
  241419. 3892b12514 fix up a few remarks from jfindlay
  241420. .IP \(bu 2
  241421. 2f940e22aa also we should keep returning {} for other systems
  241422. .IP \(bu 2
  241423. 4953f58894 forgot to remove a debug line, how embarasing
  241424. .IP \(bu 2
  241425. e96f3c0c3b fix docs in salt/utils/network.py \fI\%#29231\fP \- looks like this got copied at some point
  241426. .IP \(bu 2
  241427. 3888bb403f fixup network.default_route with family set on SunOS \fI\%#29233\fP
  241428. .IP \(bu 2
  241429. c0e6ea98a6 fix network.active_tcp on SunOS (we fake it until we make it) \fI\%#29232\fP
  241430. .IP \(bu 2
  241431. 92f881284e add decorator to network.dig \fI\%#29234\fP
  241432. .IP \(bu 2
  241433. 77950eb55c fix docstring for get_bufsize \fI\%#29235\fP
  241434. .IP \(bu 2
  241435. 52fb80cd18 fix docstring for mod_bufsize \fI\%#29236\fP
  241436. .UNINDENT
  241437. .IP \(bu 2
  241438. \fBISSUE\fP \fI\%#28990\fP: (\fI\%adithep\fP) Dockerng volume (refs: \fI\%#29300\fP)
  241439. .IP \(bu 2
  241440. \fBPR\fP \fI\%#29300\fP: (\fI\%ticosax\fP) [dockerng] Add support for volume management in dockerng
  241441. @ \fI2015\-12\-02 17:48:53 UTC\fP
  241442. .INDENT 2.0
  241443. .IP \(bu 2
  241444. 5ec7947595 Merge pull request \fI\%#29300\fP from ticosax/dockerng\-volumes
  241445. .IP \(bu 2
  241446. 80d085ea92 fix typo
  241447. .IP \(bu 2
  241448. cb9cb463b0 Provide states for managing docker volumes
  241449. .IP \(bu 2
  241450. dff6fa1fb2 Add execution module to manage docker volumes
  241451. .UNINDENT
  241452. .IP \(bu 2
  241453. \fBPR\fP \fI\%#29218\fP: (\fI\%clan\fP) check service enable state in test mode
  241454. @ \fI2015\-12\-02 15:31:00 UTC\fP
  241455. .INDENT 2.0
  241456. .IP \(bu 2
  241457. 99b7d87688 Merge pull request \fI\%#29218\fP from clan/service_state
  241458. .IP \(bu 2
  241459. a1250a9729 check service enable state in test mode
  241460. .UNINDENT
  241461. .IP \(bu 2
  241462. \fBPR\fP \fI\%#29315\fP: (\fI\%jfindlay\fP) dev tutorial doc: fix markup errors
  241463. @ \fI2015\-12\-01 21:42:17 UTC\fP
  241464. .INDENT 2.0
  241465. .IP \(bu 2
  241466. 08ced73b13 Merge pull request \fI\%#29315\fP from jfindlay/docs
  241467. .IP \(bu 2
  241468. e8e23dc444 dev tutorial doc: fix markup errors
  241469. .UNINDENT
  241470. .IP \(bu 2
  241471. \fBPR\fP \fI\%#29317\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  241472. @ \fI2015\-12\-01 21:28:30 UTC\fP
  241473. .INDENT 2.0
  241474. .IP \(bu 2
  241475. a3a463ff8b Merge pull request \fI\%#29317\fP from basepi/merge\-forward\-2015.8
  241476. .IP \(bu 2
  241477. 0d90dd3a19 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  241478. .IP \(bu 2
  241479. 14e94b3593 Merge pull request \fI\%#29316\fP from basepi/merge\-forward\-2015.5
  241480. .INDENT 2.0
  241481. .IP \(bu 2
  241482. 33f40b3c47 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  241483. .IP \(bu 2
  241484. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  241485. .IP \(bu 2
  241486. d2885390f4 Use process KillMode on Debian systems also
  241487. .UNINDENT
  241488. .IP \(bu 2
  241489. 6a2ffbfb7c Merge pull request \fI\%#29216\fP from clan/file_search_on_proc_file
  241490. .INDENT 2.0
  241491. .IP \(bu 2
  241492. 91a20c07a1 try mmap first
  241493. .IP \(bu 2
  241494. 8aa4f2053e remove extra space to fix lint failure
  241495. .IP \(bu 2
  241496. d34e6b1a9a use read only if has read() method
  241497. .IP \(bu 2
  241498. 3209c1cdb5 size is 0 doesn\(aqt mean no data, e.g, /proc/version
  241499. .UNINDENT
  241500. .IP \(bu 2
  241501. d6aaae8d7b Merge pull request \fI\%#29261\fP from attiasr/patch\-1
  241502. .INDENT 2.0
  241503. .IP \(bu 2
  241504. 7a99b90596 add log and return if pkg already installed
  241505. .IP \(bu 2
  241506. 1843c7ab8e fix incorrect reinstallation of windows pkg
  241507. .UNINDENT
  241508. .IP \(bu 2
  241509. 9236188867 Merge pull request \fI\%#29214\fP from cro/ssl_verify_ssl
  241510. .INDENT 2.0
  241511. .IP \(bu 2
  241512. e9c13c561b Doc bug\-\-salt.utils.http takes verify_ssl not ssl_verify.
  241513. .UNINDENT
  241514. .IP \(bu 2
  241515. df7b35a86b Merge pull request \fI\%#29204\fP from lorengordon/fix\-29202
  241516. .IP \(bu 2
  241517. b1dae5e6fe Use os.path.join to return full path to ca bundle
  241518. .UNINDENT
  241519. .IP \(bu 2
  241520. \fBPR\fP \fI\%#29240\fP: (\fI\%clan\fP) handle acl_type [[d]efault:][user|group|mask|other]
  241521. @ \fI2015\-12\-01 17:56:20 UTC\fP
  241522. .INDENT 2.0
  241523. .IP \(bu 2
  241524. 39667fda12 Merge pull request \fI\%#29240\fP from clan/linux_acl
  241525. .IP \(bu 2
  241526. 02429aca69 handle acl_type [[d]efault:][user|group|mask|other]
  241527. .UNINDENT
  241528. .IP \(bu 2
  241529. \fBPR\fP \fI\%#29305\fP: (\fI\%lorengordon\fP) Add \(aqfile\(aq as a source_hash proto
  241530. @ \fI2015\-12\-01 17:39:37 UTC\fP
  241531. .INDENT 2.0
  241532. .IP \(bu 2
  241533. 027bed7c90 Merge pull request \fI\%#29305\fP from lorengordon/source_hash_protos
  241534. .IP \(bu 2
  241535. 53fdf0bf97 Update message for invalid source_hash
  241536. .IP \(bu 2
  241537. 2d20d71bd5 Add \fIfile\fP as a source_hash proto
  241538. .UNINDENT
  241539. .IP \(bu 2
  241540. \fBISSUE\fP \fI\%#29251\fP: (\fI\%adamsewell\fP) status.uptime causes exception on Windows minion 2015.8.1 (refs: \fI\%#29272\fP)
  241541. .IP \(bu 2
  241542. \fBPR\fP \fI\%#29272\fP: (\fI\%jfindlay\fP) win_status module: handle 12 hour time in uptime
  241543. @ \fI2015\-12\-01 16:33:12 UTC\fP
  241544. .INDENT 2.0
  241545. .IP \(bu 2
  241546. 1129ee1d2e Merge pull request \fI\%#29272\fP from jfindlay/win_up_time
  241547. .IP \(bu 2
  241548. 6a2315109e win_status module: python timedelta to find uptime
  241549. .IP \(bu 2
  241550. b7a535341f win_status module: handle 12 hour time in uptime
  241551. .UNINDENT
  241552. .IP \(bu 2
  241553. \fBISSUE\fP \fI\%#26526\fP: (\fI\%JensRantil\fP) Managing a \fI\%file://\fP source fails (refs: \fI\%#29289\fP)
  241554. .IP \(bu 2
  241555. \fBPR\fP \fI\%#29289\fP: (\fI\%terminalmage\fP) file.managed: Allow local file sources to use source_hash
  241556. @ \fI2015\-12\-01 16:19:27 UTC\fP
  241557. .INDENT 2.0
  241558. .IP \(bu 2
  241559. 0fd3e8b0fb Merge pull request \fI\%#29289\fP from terminalmage/issue26526
  241560. .IP \(bu 2
  241561. 64ae3f996e file.managed: Allow local file sources to use source_hash
  241562. .UNINDENT
  241563. .IP \(bu 2
  241564. \fBISSUE\fP \fI\%#29262\fP: (\fI\%anlutro\fP) ssh_auth.absent removes keys when test=True (refs: \fI\%#29264\fP)
  241565. .IP \(bu 2
  241566. \fBPR\fP \fI\%#29264\fP: (\fI\%anlutro\fP) Prevent ssh_auth.absent from running when test=True
  241567. @ \fI2015\-11\-30 21:54:15 UTC\fP
  241568. .INDENT 2.0
  241569. .IP \(bu 2
  241570. 8d32d8d43d Merge pull request \fI\%#29264\fP from alprs/fix\-ssh_auth_absent_test
  241571. .IP \(bu 2
  241572. 9193676f9c fix ssh_auth_test
  241573. .IP \(bu 2
  241574. febbfa792f prevent ssh_auth.absent from running when test=True
  241575. .UNINDENT
  241576. .IP \(bu 2
  241577. \fBISSUE\fP \fI\%#29071\fP: (\fI\%eliasp\fP) \fIgit_pillar.update\fP runner can\(aqt handle >=2015.8.0 configuration (refs: \fI\%#29277\fP)
  241578. .IP \(bu 2
  241579. \fBPR\fP \fI\%#29277\fP: (\fI\%terminalmage\fP) Update git_pillar runner to support new git ext_pillar config schema
  241580. @ \fI2015\-11\-30 21:39:51 UTC\fP
  241581. .INDENT 2.0
  241582. .IP \(bu 2
  241583. 459d30f27f Merge pull request \fI\%#29277\fP from terminalmage/issue29071
  241584. .IP \(bu 2
  241585. 6981bb3be7 Update git_pillar runner to support new git ext_pillar config schema
  241586. .IP \(bu 2
  241587. 293c8e635c Separate repo locking logic into its own function
  241588. .UNINDENT
  241589. .IP \(bu 2
  241590. \fBPR\fP \fI\%#29283\fP: (\fI\%cachedout\fP) Single\-quotes and use format
  241591. @ \fI2015\-11\-30 21:34:41 UTC\fP
  241592. .INDENT 2.0
  241593. .IP \(bu 2
  241594. \fBPR\fP \fI\%#29139\fP: (\fI\%thomaso\-mirodin\fP) [salt\-ssh] Add a range roster and range targeting options for the flat roster (refs: \fI\%#29283\fP)
  241595. .IP \(bu 2
  241596. df1f0d93c7 Merge pull request \fI\%#29283\fP from cachedout/style_29139
  241597. .IP \(bu 2
  241598. d764497b17 Single\-quotes and use format
  241599. .UNINDENT
  241600. .IP \(bu 2
  241601. \fBPR\fP \fI\%#29139\fP: (\fI\%thomaso\-mirodin\fP) [salt\-ssh] Add a range roster and range targeting options for the flat roster (refs: \fI\%#29283\fP)
  241602. @ \fI2015\-11\-30 21:25:50 UTC\fP
  241603. .INDENT 2.0
  241604. .IP \(bu 2
  241605. 3aa84b6763 Merge pull request \fI\%#29139\fP from thomaso\-mirodin/salt\-ssh\-flat\-roster\-range\-filter
  241606. .IP \(bu 2
  241607. 56b3302fe9 Pylint fixes for PR \fI\%#29139\fP
  241608. .IP \(bu 2
  241609. e010f2d3b5 Add a range roster for salt\-ssh
  241610. .IP \(bu 2
  241611. c5eeb77ebc Add range support to salt\-ssh\(aqs flat roster
  241612. .UNINDENT
  241613. .IP \(bu 2
  241614. \fBPR\fP \fI\%#29282\fP: (\fIcachedout\fP) dev docs: add development tutorial (refs: \fI\%#29282\fP)
  241615. @ \fI2015\-11\-30 21:14:50 UTC\fP
  241616. .INDENT 2.0
  241617. .IP \(bu 2
  241618. dbf7755aa2 Merge pull request \fI\%#29282\fP from cachedout/fix_29279
  241619. .IP \(bu 2
  241620. 1efaab2dd5 Fix typo in \fI\%#29279\fP
  241621. .IP \(bu 2
  241622. a5ea39132f dev docs: add development tutorial
  241623. .UNINDENT
  241624. .IP \(bu 2
  241625. \fBISSUE\fP \fI\%#28991\fP: (\fI\%timcharper\fP) allow role\-assumption with s3 credentials (refs: \fI\%#28994\fP)
  241626. .IP \(bu 2
  241627. \fBPR\fP \fI\%#28994\fP: (\fI\%timcharper\fP) add support to s3 for aws role assumption
  241628. @ \fI2015\-11\-30 20:52:18 UTC\fP
  241629. .INDENT 2.0
  241630. .IP \(bu 2
  241631. 87e4aa4fae Merge pull request \fI\%#28994\fP from timcharper/2015.8.1\-dev
  241632. .IP \(bu 2
  241633. e060986828 add support to s3 for aws role assumption
  241634. .UNINDENT
  241635. .IP \(bu 2
  241636. \fBISSUE\fP \fI\%#29209\fP: (\fI\%ssgward\fP) SPM logging level doesn\(aqt seem to be functional (refs: \fI\%#29278\fP)
  241637. .IP \(bu 2
  241638. \fBPR\fP \fI\%#29278\fP: (\fI\%techhat\fP) Add verify_log to SPM
  241639. @ \fI2015\-11\-30 20:48:32 UTC\fP
  241640. .INDENT 2.0
  241641. .IP \(bu 2
  241642. 3d16434f14 Merge pull request \fI\%#29278\fP from techhat/issue29209
  241643. .IP \(bu 2
  241644. 759e8c4542 Add verify_log to SPM
  241645. .UNINDENT
  241646. .IP \(bu 2
  241647. \fBPR\fP \fI\%#29067\fP: (\fI\%jacksontj\fP) Fix infinite recursion in state compiler for prereq of SLSs
  241648. @ \fI2015\-11\-30 20:27:09 UTC\fP
  241649. .INDENT 2.0
  241650. .IP \(bu 2
  241651. d651d7167e Merge pull request \fI\%#29067\fP from jacksontj/2015.8
  241652. .IP \(bu 2
  241653. 64e439cda2 Add test for infinite recursion with sls prerequisites
  241654. .IP \(bu 2
  241655. d687682016 No reason to continuously resolve the k, v pair here since it doesn\(aqt change in the inner loop
  241656. .IP \(bu 2
  241657. 6d747df5db Correctly resolve requisite_in for SLS requisites
  241658. .UNINDENT
  241659. .IP \(bu 2
  241660. \fBISSUE\fP \fI\%#29161\fP: (\fI\%jefferyharrell\fP) saltmod.state\(aqs ret argument seems to do nothing (refs: \fI\%#29207\fP)
  241661. .IP \(bu 2
  241662. \fBPR\fP \fI\%#29207\fP: (\fI\%jfindlay\fP) do not shadow ret function argument
  241663. @ \fI2015\-11\-30 20:14:06 UTC\fP
  241664. .INDENT 2.0
  241665. .IP \(bu 2
  241666. d42bcea905 Merge pull request \fI\%#29207\fP from jfindlay/ret_non_shadow
  241667. .IP \(bu 2
  241668. 5de0b93ac6 saltutil.cmd module: do not shadow ret function argument
  241669. .IP \(bu 2
  241670. 7809f2a389 saltmod.state state: do not shadow ret function argument
  241671. .UNINDENT
  241672. .IP \(bu 2
  241673. \fBPR\fP \fI\%#29215\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29192\fP to 2015.8
  241674. @ \fI2015\-11\-30 20:12:30 UTC\fP
  241675. .INDENT 2.0
  241676. .IP \(bu 2
  241677. \fBPR\fP \fI\%#29192\fP: (\fI\%bastiaanb\fP) fix issue 29191: only try partial matches when a wildcard has been sp… (refs: \fI\%#29215\fP)
  241678. .IP \(bu 2
  241679. 8cc1d8de46 Merge pull request \fI\%#29215\fP from rallytime/bp\-29192
  241680. .IP \(bu 2
  241681. 5226cd8f79 remove trailing whitespace fix subdict_match test cases
  241682. .IP \(bu 2
  241683. 44713cdb95 fix issue 29191: only try partial matches when a wildcard has been specified
  241684. .UNINDENT
  241685. .IP \(bu 2
  241686. \fBPR\fP \fI\%#29217\fP: (\fI\%clan\fP) show duration only if state_output_profile is False
  241687. @ \fI2015\-11\-30 20:11:18 UTC\fP
  241688. .INDENT 2.0
  241689. .IP \(bu 2
  241690. \fBPR\fP \fI\%#19320\fP: (\fI\%clan\fP) add \(aqstate_output_profile\(aq option for profile output (refs: \fI\%#29217\fP)
  241691. .IP \(bu 2
  241692. f488d25911 Merge pull request \fI\%#29217\fP from clan/highstate_duration
  241693. .IP \(bu 2
  241694. 9bdaae8325 show duration only if state_output_profile is False
  241695. .UNINDENT
  241696. .IP \(bu 2
  241697. \fBPR\fP \fI\%#29221\fP: (\fI\%ticosax\fP) [dokcerng] Docu network mode
  241698. @ \fI2015\-11\-30 19:22:49 UTC\fP
  241699. .INDENT 2.0
  241700. .IP \(bu 2
  241701. e5bd1c293d Merge pull request \fI\%#29221\fP from ticosax/docu\-network_mode
  241702. .IP \(bu 2
  241703. a0b674a0ea Extend documentation of network_mode parameter.
  241704. .UNINDENT
  241705. .IP \(bu 2
  241706. \fBISSUE\fP \fI\%#29250\fP: (\fI\%adamsewell\fP) status.cpu_load is not available on Salt 2015.8.1 (refs: \fI\%#29269\fP)
  241707. .IP \(bu 2
  241708. \fBPR\fP \fI\%#29269\fP: (\fI\%jfindlay\fP) win_status module: fix function names in docs
  241709. @ \fI2015\-11\-30 19:14:24 UTC\fP
  241710. .INDENT 2.0
  241711. .IP \(bu 2
  241712. 7fd02c2145 Merge pull request \fI\%#29269\fP from jfindlay/winstatus
  241713. .IP \(bu 2
  241714. f2f2dab491 win_status module: fix function names in docs
  241715. .UNINDENT
  241716. .IP \(bu 2
  241717. \fBPR\fP \fI\%#29213\fP: (\fI\%rallytime\fP) Move _wait_for_task func from vmware cloud to vmware utils
  241718. @ \fI2015\-11\-30 18:53:24 UTC\fP
  241719. .INDENT 2.0
  241720. .IP \(bu 2
  241721. 6c2e62f7d4 Merge pull request \fI\%#29213\fP from rallytime/vmware_utils_wait_for_task
  241722. .IP \(bu 2
  241723. 44e7f83686 Move _wait_for_task func from vmware cloud to vmware utils
  241724. .UNINDENT
  241725. .IP \(bu 2
  241726. \fBPR\fP \fI\%#29271\fP: (\fI\%techhat\fP) Pass full path for digest (SPM)
  241727. @ \fI2015\-11\-30 18:35:42 UTC\fP
  241728. .INDENT 2.0
  241729. .IP \(bu 2
  241730. 69cbc09ca0 Merge pull request \fI\%#29271\fP from techhat/issue29212
  241731. .IP \(bu 2
  241732. 6cd6a0ace0 Pass full path for digest (SPM)
  241733. .UNINDENT
  241734. .IP \(bu 2
  241735. \fBPR\fP \fI\%#29244\fP: (\fI\%isbm\fP) List products consistently across all SLES systems
  241736. @ \fI2015\-11\-30 18:31:42 UTC\fP
  241737. .INDENT 2.0
  241738. .IP \(bu 2
  241739. 1efe484309 Merge pull request \fI\%#29244\fP from isbm/isbm\-zypper\-products
  241740. .IP \(bu 2
  241741. db36a73b16 Remove code duplication
  241742. .IP \(bu 2
  241743. d62abedbf7 Remove dead code
  241744. .IP \(bu 2
  241745. 302b5d3bc1 List products consistently across all SLES systems
  241746. .UNINDENT
  241747. .IP \(bu 2
  241748. \fBISSUE\fP \fI\%#29119\fP: (\fI\%mo\-mughrabi\fP) salt.modules.consul.catalog_register does not accept address as a string (refs: \fI\%#29255\fP)
  241749. .IP \(bu 2
  241750. \fBPR\fP \fI\%#29255\fP: (\fI\%garethgreenaway\fP) fixes to consul module
  241751. @ \fI2015\-11\-30 18:30:02 UTC\fP
  241752. .INDENT 2.0
  241753. .IP \(bu 2
  241754. 318ad36449 Merge pull request \fI\%#29255\fP from garethgreenaway/29119_consul_module_fixes
  241755. .IP \(bu 2
  241756. 655b0ec403 various fixes to the consul execution module, in particular a fix to address \fI\%#29119\fP
  241757. .UNINDENT
  241758. .IP \(bu 2
  241759. \fBPR\fP \fI\%#29208\fP: (\fI\%whytewolf\fP) Glance more profile errors
  241760. @ \fI2015\-11\-25 23:50:27 UTC\fP
  241761. .INDENT 2.0
  241762. .IP \(bu 2
  241763. b225263279 Merge pull request \fI\%#29208\fP from whytewolf/glance_more_profile_errors
  241764. .IP \(bu 2
  241765. c8fe514ec1 found 3 more spots where the profile was not being passed through.
  241766. .IP \(bu 2
  241767. b2e3c1f8de Merge pull request \fI\%#1\fP from saltstack/2015.8
  241768. .UNINDENT
  241769. .IP \(bu 2
  241770. \fBISSUE\fP \fI\%#29140\fP: (\fI\%davidballano\fP) mount.unmounted is not behaving as I would expect (refs: \fI\%#29200\fP)
  241771. .IP \(bu 2
  241772. \fBPR\fP \fI\%#29200\fP: (\fI\%jfindlay\fP) mount state: unmount by device is optional
  241773. @ \fI2015\-11\-25 20:03:22 UTC\fP
  241774. .INDENT 2.0
  241775. .IP \(bu 2
  241776. 6d3c04516f Merge pull request \fI\%#29200\fP from jfindlay/singular_umount
  241777. .IP \(bu 2
  241778. b54de47b1b mount state: unmount by device is optional
  241779. .UNINDENT
  241780. .IP \(bu 2
  241781. \fBISSUE\fP \fI\%#29187\fP: (\fI\%trevor\-h\fP) salt\-cloud Windows provisioning on EC2 fails to use winrm (refs: \fI\%#29205\fP)
  241782. .IP \(bu 2
  241783. \fBPR\fP \fI\%#29205\fP: (\fI\%trevor\-h\fP) Fixes \fI\%#29187\fP \- using winrm on EC2
  241784. @ \fI2015\-11\-25 20:00:01 UTC\fP
  241785. .INDENT 2.0
  241786. .IP \(bu 2
  241787. fffcf9fef6 Merge pull request \fI\%#29205\fP from trevor\-h/fix\-salt\-cloud\-winrm\-ec2
  241788. .IP \(bu 2
  241789. 48e0edd0d2 Fixes \fI\%#29187\fP \- using winrm on EC2
  241790. .UNINDENT
  241791. .IP \(bu 2
  241792. \fBPR\fP \fI\%#29170\fP: (\fI\%cachedout\fP) Migrate pydsl tests to integration test suite
  241793. @ \fI2015\-11\-25 19:56:48 UTC\fP
  241794. .INDENT 2.0
  241795. .IP \(bu 2
  241796. 1937a47dec Merge pull request \fI\%#29170\fP from cachedout/refactor_pydsl_test
  241797. .IP \(bu 2
  241798. 2477ff2eab Add __init__ and pydsl test
  241799. .IP \(bu 2
  241800. 063f075a99 Add integration renderer tests to the suite
  241801. .IP \(bu 2
  241802. 81bf332be4 Migrate pydsl tests to integration test suite
  241803. .UNINDENT
  241804. .IP \(bu 2
  241805. \fBISSUE\fP \fI\%#29137\fP: (\fI\%Dravu\fP) MTU is output twice when used in network.managed (refs: \fI\%#29198\fP)
  241806. .IP \(bu 2
  241807. \fBPR\fP \fI\%#29198\fP: (\fI\%jfindlay\fP) rh_ip module: only set the mtu once
  241808. @ \fI2015\-11\-25 18:11:09 UTC\fP
  241809. .INDENT 2.0
  241810. .IP \(bu 2
  241811. 11d68f7b1c Merge pull request \fI\%#29198\fP from jfindlay/single_mtu
  241812. .IP \(bu 2
  241813. 0a8952f6ac rh_ip module: only set the mtu once
  241814. .UNINDENT
  241815. .IP \(bu 2
  241816. \fBISSUE\fP \fI\%#29111\fP: (\fI\%eliasp\fP) Backtrace in state \fIssh_known_hosts.present\fP when \fIssh\-keygen\fP is not available (refs: \fI\%#29135\fP)
  241817. .IP \(bu 2
  241818. \fBPR\fP \fI\%#29135\fP: (\fI\%jfindlay\fP) ssh_known_hosts.present state: catch not found exc
  241819. @ \fI2015\-11\-25 18:10:43 UTC\fP
  241820. .INDENT 2.0
  241821. .IP \(bu 2
  241822. f19355e0bb Merge pull request \fI\%#29135\fP from jfindlay/ssh_except
  241823. .IP \(bu 2
  241824. 363add7131 ssh_known_hosts.present state: catch not found exc
  241825. .UNINDENT
  241826. .IP \(bu 2
  241827. \fBPR\fP \fI\%#29196\fP: (\fI\%s0undt3ch\fP) We need novaclient imported to compare versions
  241828. @ \fI2015\-11\-25 17:16:27 UTC\fP
  241829. .INDENT 2.0
  241830. .IP \(bu 2
  241831. 6a12197e13 Merge pull request \fI\%#29196\fP from s0undt3ch/2015.8
  241832. .IP \(bu 2
  241833. 78a7c34f2b We need novaclient imported to compare versions
  241834. .UNINDENT
  241835. .IP \(bu 2
  241836. \fBISSUE\fP \fI\%#28072\fP: (\fI\%jchv\fP) pygit 0.23.2 is not supported in Salt 2015.8.1 (refs: \fI\%#29059\fP)
  241837. .IP \(bu 2
  241838. \fBPR\fP \fI\%#29059\fP: (\fI\%terminalmage\fP) Work around upstream pygit2 bug
  241839. @ \fI2015\-11\-25 16:39:30 UTC\fP
  241840. .INDENT 2.0
  241841. .IP \(bu 2
  241842. 0c0e15d4e9 Merge pull request \fI\%#29059\fP from terminalmage/issue28072
  241843. .IP \(bu 2
  241844. 82e223087e Work around upstream pygit2 bug
  241845. .UNINDENT
  241846. .IP \(bu 2
  241847. \fBPR\fP \fI\%#29112\fP: (\fI\%eliasp\fP) Prevent backtrace (KeyError) in \fIssh_known_hosts.present\fP state
  241848. @ \fI2015\-11\-25 16:25:57 UTC\fP
  241849. .INDENT 2.0
  241850. .IP \(bu 2
  241851. cc69c87dd2 Merge pull request \fI\%#29112\fP from eliasp/ssh_known_hosts.present\-backtrace\-test
  241852. .IP \(bu 2
  241853. 3f19c311e8 Prevent backtrace (KeyError) in \fIssh_known_hosts.present\fP state
  241854. .UNINDENT
  241855. .IP \(bu 2
  241856. \fBPR\fP \fI\%#29178\fP: (\fI\%whytewolf\fP) Profile not being passed to keystone.endpoint_get in _auth. so if a p…
  241857. @ \fI2015\-11\-25 16:09:49 UTC\fP
  241858. .INDENT 2.0
  241859. .IP \(bu 2
  241860. 7775d65089 Merge pull request \fI\%#29178\fP from whytewolf/glance_keystone_profile_fix
  241861. .IP \(bu 2
  241862. 807dd426a6 Profile not being passed to keystone.endpoint_get in _auth. so if a profiles are being used, then keystone.endpoint_get will not be able to authenticate causing glance to not be able to get its endpoint.
  241863. .UNINDENT
  241864. .UNINDENT
  241865. .SS Salt 2015.8.5 Release Notes
  241866. .sp
  241867. Version 2015.8.5 is a bugfix release for 2015.8.0\&.
  241868. .sp
  241869. \fBIMPORTANT:\fP
  241870. .INDENT 0.0
  241871. .INDENT 3.5
  241872. About this Release
  241873. Salt 2015.8.5 is identical to the 2015.8.4 release with the addition of a
  241874. fix for \fI\%issue #30820\fP, fixed by \fI\%PR #30833\fP\&. See here for the 2015.8.4 release notes.
  241875. .UNINDENT
  241876. .UNINDENT
  241877. .SS Known Issue in \fBboto_*\fP execution modules
  241878. .sp
  241879. This release contains an issue that causes the \fBboto_*\fP execution modules to
  241880. display a \fB__salt__ not defined\fP error (\fI\%issue #30300\fP). This issue will be
  241881. fixed in an upcoming release, but can be manually resolved by completing the
  241882. following:
  241883. .INDENT 0.0
  241884. .IP 1. 3
  241885. Download the \fBboto_*\fP execution modules that you would like to update from
  241886. the 2015.8 branch of Salt. A complete list of affected modules with the
  241887. specific changes is available in :pull\(ga30867\(ga.
  241888. .sp
  241889. A simple way to get the updated modules is to \fI\%download\fP a zip file of the
  241890. 2015.8 branch from GitHub. The updated modules are in the \fBsalt\emodules\fP
  241891. directory.
  241892. .IP 2. 3
  241893. Place the \fBboto_*\fP modules into \fBsalt://_modules\fP\&.
  241894. .IP 3. 3
  241895. Run the following command to sync these modules to all Salt minions:
  241896. .INDENT 3.0
  241897. .INDENT 3.5
  241898. .sp
  241899. .nf
  241900. .ft C
  241901. salt \(aq*\(aq saltutil.sync_modules
  241902. .ft P
  241903. .fi
  241904. .UNINDENT
  241905. .UNINDENT
  241906. .UNINDENT
  241907. .SS Changelog for v2015.8.4..v2015.8.5
  241908. .sp
  241909. \fIGenerated at: 2018\-05\-27 23:47:32 UTC\fP
  241910. .INDENT 0.0
  241911. .IP \(bu 2
  241912. c7db4350d5 Fix regression in scanning for state with \(aqname\(aq param
  241913. .UNINDENT
  241914. .SS Salt 2015.8.7 Release Notes
  241915. .sp
  241916. Version 2015.8.7 is a bugfix release for 2015.8.0\&.
  241917. .sp
  241918. \fBNOTE:\fP
  241919. .INDENT 0.0
  241920. .INDENT 3.5
  241921. Salt 2015.8.4, 2015.8.5, and 2015.8.7 were all released within a short
  241922. period due to regressions found soon after the releases of 2015.8.4 and
  241923. 2015.8.5. See here for the 2015.8.4 release
  241924. notes, and here for the 2015.8.5 release notes.
  241925. .UNINDENT
  241926. .UNINDENT
  241927. .SS Statistics
  241928. .INDENT 0.0
  241929. .IP \(bu 2
  241930. Total Merges: \fB2\fP
  241931. .IP \(bu 2
  241932. Total Issue References: \fB1\fP
  241933. .IP \(bu 2
  241934. Total PR References: \fB5\fP
  241935. .IP \(bu 2
  241936. Contributors: \fB4\fP (\fI\%gtmanfred\fP, \fI\%justinta\fP, \fI\%pass\-by\-value\fP, \fI\%terminalmage\fP)
  241937. .UNINDENT
  241938. .SS Change to Epoch Support for YUM/DNF
  241939. .sp
  241940. For \fBpkg.installed\fP states, on Linux
  241941. distributions which use yum/dnf, packages which have a non\-zero epoch in the
  241942. version number now require this epoch to be included when specifying an exact
  241943. version for a package. For example:
  241944. .INDENT 0.0
  241945. .INDENT 3.5
  241946. .sp
  241947. .nf
  241948. .ft C
  241949. vim\-enhanced:
  241950. pkg.installed:
  241951. \- version: 2:7.4.160\-1.el7
  241952. .ft P
  241953. .fi
  241954. .UNINDENT
  241955. .UNINDENT
  241956. .sp
  241957. The \fBpkg.latest_version\fP and
  241958. \fBpkg.list_repo_pkgs\fP functions
  241959. can be used to get the correct version string to use, as they will now contain
  241960. the epoch when it is non\-zero.
  241961. .SS Changelog for v2015.8.5..v2015.8.7
  241962. .sp
  241963. \fIGenerated at: 2018\-05\-28 00:17:59 UTC\fP
  241964. .INDENT 0.0
  241965. .IP \(bu 2
  241966. \fBPR\fP \fI\%#31111\fP: (\fI\%justinta\fP) Fixes failing npm test on arch.
  241967. @ \fI2016\-02\-10 21:51:47 UTC\fP
  241968. .INDENT 2.0
  241969. .IP \(bu 2
  241970. 8d84c636cf Merge pull request \fI\%#31111\fP from jtand/8_4_npm_fix
  241971. .IP \(bu 2
  241972. b0a48e5ef2 Fixes failing npm test on arch.
  241973. .IP \(bu 2
  241974. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run
  241975. .UNINDENT
  241976. .IP \(bu 2
  241977. \fBISSUE\fP \fI\%#31014\fP: (\fI\%gtmanfred\fP) [2015.8] pkg breaks for yum pkgs.latest if the packages has an epoch (refs: \fI\%#31031\fP, \fI\%#31015\fP)
  241978. .IP \(bu 2
  241979. \fBPR\fP \fI\%#31092\fP: (\fI\%terminalmage\fP) Apply PR \fI\%#31031\fP to 2015.8.4.follow_up
  241980. @ \fI2016\-02\-10 20:54:37 UTC\fP
  241981. .INDENT 2.0
  241982. .IP \(bu 2
  241983. \fBPR\fP \fI\%#31031\fP: (\fI\%terminalmage\fP) More complete fix for \fI\%#31014\fP (refs: \fI\%#31092\fP)
  241984. .IP \(bu 2
  241985. \fBPR\fP \fI\%#31015\fP: (\fI\%gtmanfred\fP) include possible epoch in version for rpm (refs: \fI\%#31031\fP)
  241986. .IP \(bu 2
  241987. 5a6a93e98b Merge pull request \fI\%#31092\fP from terminalmage/issue31014\-2015.8.4.follow_up
  241988. .INDENT 2.0
  241989. .IP \(bu 2
  241990. 2767a4e519 Don\(aqt handle epoch specially for dnf
  241991. .IP \(bu 2
  241992. e5dfcc0ef2 More efficient way to add the epoch before version number
  241993. .IP \(bu 2
  241994. ed7462793c include possible epoch in version for rpm
  241995. .UNINDENT
  241996. .IP \(bu 2
  241997. 6c6b66aedd Comment multiprocessing line in minion config
  241998. .IP \(bu 2
  241999. 1f7dfefc4a Set multiprocessing to true in config.py
  242000. .IP \(bu 2
  242001. 433c645c20 Fix remove placeholder files
  242002. .IP \(bu 2
  242003. 71037560d4 Remove placeholder files
  242004. .IP \(bu 2
  242005. 20b381fdf7 Set overwrite to off
  242006. .IP \(bu 2
  242007. ca50f56d6c Fix boto_secgroup
  242008. .IP \(bu 2
  242009. fd571d23de Fix boto test failures
  242010. .IP \(bu 2
  242011. cfb6588744 Fix regression when contents_pillar/contents_grains is a list.
  242012. .IP \(bu 2
  242013. 881d8669e3 utils.aws: use time lib to conver to epoch seconds
  242014. .IP \(bu 2
  242015. 31412920fc The call to cp.get_url needs the saltenv, if you\(aqre using environments other than base, it will fail.
  242016. .IP \(bu 2
  242017. a8694014a9 Fix regression in git_pillar when multiple remotes are configured
  242018. .IP \(bu 2
  242019. 2243f25be5 Properly set the default value for pillar_merge_lists
  242020. .IP \(bu 2
  242021. c7472ff6aa Lint
  242022. .IP \(bu 2
  242023. d868711a83 Fix failing boto_vpc module unit tests
  242024. .IP \(bu 2
  242025. ed09516469 Fix failing state module tests
  242026. .IP \(bu 2
  242027. fd0e940088 Pylint fix
  242028. .IP \(bu 2
  242029. bc780a7c25 Don\(aqt use pack=pack. Just pass in pack=__salt__ always.
  242030. .IP \(bu 2
  242031. 1ae022dbfe Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules.
  242032. .IP \(bu 2
  242033. 1efaff107d Remove bad symlinks in osx pkg dirs
  242034. .UNINDENT
  242035. .UNINDENT
  242036. .SS Salt 2015.8.8 Release Notes
  242037. .sp
  242038. Version 2015.8.8 is a bugfix release for 2015.8.0\&.
  242039. .sp
  242040. \fBIMPORTANT:\fP
  242041. .INDENT 0.0
  242042. .INDENT 3.5
  242043. Version 2015.8.8.2 was released shortly after
  242044. 2015.8.8 to fix several known issues. If you installed 2015.8.8 before
  242045. 03/30/2016, you likely have installed 2015.8.8 and can optionally upgrade
  242046. (find out which version you have installed using \fBsalt \-\-version\fP\&.
  242047. .UNINDENT
  242048. .UNINDENT
  242049. .SS Statistics
  242050. .INDENT 0.0
  242051. .IP \(bu 2
  242052. Total Merges: \fB313\fP
  242053. .IP \(bu 2
  242054. Total Issue References: \fB146\fP
  242055. .IP \(bu 2
  242056. Total PR References: \fB312\fP
  242057. .IP \(bu 2
  242058. Contributors: \fB74\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%JohannesEbke\fP, \fI\%RabidCicada\fP, \fI\%Talkless\fP, \fI\%The\-Loeki\fP, \fI\%abednarik\fP, \fI\%anlutro\fP, \fI\%basepi\fP, \fI\%bdrung\fP, \fI\%cachedout\fP, \fI\%captaininspiration\fP, \fI\%clarkperkins\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%darix\fP, \fI\%dmacvicar\fP, \fI\%dr4Ke\fP, \fI\%dschaller\fP, \fI\%edencrane\fP, \fI\%garethgreenaway\fP, \fI\%gladiatr72\fP, \fI\%gtmanfred\fP, \fI\%iacopo\-papalini\fP, \fI\%isbm\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jakehilton\fP, \fI\%jespada\fP, \fI\%jfindlay\fP, \fI\%joejulian\fP, \fI\%justinta\fP, \fI\%kiorky\fP, \fI\%kraney\fP, \fI\%llua\fP, \fI\%mcalmer\fP, \fI\%mchugh19\fP, \fI\%mew1033\fP, \fI\%mlalpho\fP, \fI\%moltob\fP, \fI\%multani\fP, \fI\%myii\fP, \fI\%opdude\fP, \fI\%paiou\fP, \fI\%pass\-by\-value\fP, \fI\%peripatetic\-sojourner\fP, \fI\%pprince\fP, \fI\%rallytime\fP, \fI\%redmcg\fP, \fI\%replicant0wnz\fP, \fI\%rhansen\fP, \fI\%rmtmckenzie\fP, \fI\%s0undt3ch\fP, \fI\%sakateka\fP, \fI\%sbreidba\fP, \fI\%seanjnkns\fP, \fI\%sjmh\fP, \fI\%sjorge\fP, \fI\%skizunov\fP, \fI\%szeestraten\fP, \fI\%tbaker57\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thusoy\fP, \fI\%ticosax\fP, \fI\%twangboy\fP, \fI\%virtualguy\fP, \fI\%vutny\fP, \fI\%whiteinge\fP, \fI\%xmj\fP, \fI\%xopher\-mc\fP, \fI\%yannis666\fP, \fI\%youngnick\fP, \fI\%zygiss\fP)
  242059. .UNINDENT
  242060. .SS Security Fix
  242061. .sp
  242062. \fBCVE\-2016\-3176\fP Insecure configuration of PAM external authentication service
  242063. .sp
  242064. This issue affects all Salt versions prior to 2015.8.8/2015.5.10 when PAM
  242065. external authentication is enabled. This issue involves
  242066. passing an alternative PAM authentication service with a command that is sent
  242067. to LocalClient, enabling the attacker to bypass the
  242068. configured authentication service. Thank you to Dylan Frese <\fI\%dmfrese@gmail.com\fP>
  242069. for bringing this issue to our attention.
  242070. .sp
  242071. This update defines the PAM eAuth \fBservice\fP that users authenticate against
  242072. in the Salt Master configuration.
  242073. .SS Read Before Upgrading Debian 7 (Wheezy) from 2015.8.7 to 2015.8.8
  242074. .sp
  242075. Before you upgrade from 2015.8.7 on Debian 7, you must run the following
  242076. commands to remove previous packages:
  242077. .INDENT 0.0
  242078. .INDENT 3.5
  242079. .sp
  242080. .nf
  242081. .ft C
  242082. sudo apt\-get remove python\-pycrypto
  242083. sudo apt\-get remove python\-apache\-libcloud
  242084. .ft P
  242085. .fi
  242086. .UNINDENT
  242087. .UNINDENT
  242088. .sp
  242089. Note that \fBpython\-pycrypto\fP will likely remove \fBpython\-apache\-libcloud\fP, so
  242090. the second command might not be necessary. These have been replaced by
  242091. \fBpython\-crypto\fP and \fBpython\-libcloud\fP with ~bpo70+1 moniker.
  242092. .SS Read Before Upgrading Debian 8 (Jessie) from Salt Versions Earlier than 2015.8.4
  242093. .sp
  242094. Salt \fBsystemd\fP service files are missing the following statement in these
  242095. versions:
  242096. .INDENT 0.0
  242097. .INDENT 3.5
  242098. .sp
  242099. .nf
  242100. .ft C
  242101. [Service]
  242102. KillMode=process
  242103. .ft P
  242104. .fi
  242105. .UNINDENT
  242106. .UNINDENT
  242107. .sp
  242108. This statement must be added to successfully upgrade on these earlier versions
  242109. of Salt.
  242110. .SS Changelog for v2015.8.7..v2015.8.8
  242111. .sp
  242112. \fIGenerated at: 2018\-05\-28 00:23:11 UTC\fP
  242113. .INDENT 0.0
  242114. .IP \(bu 2
  242115. \fBPR\fP \fI\%#31964\fP: (\fI\%jfindlay\fP) update 2015.8.8 release notes
  242116. @ \fI2016\-03\-17 21:22:04 UTC\fP
  242117. .INDENT 2.0
  242118. .IP \(bu 2
  242119. b9d0336cf8 Merge pull request \fI\%#31964\fP from jfindlay/2015.8
  242120. .IP \(bu 2
  242121. b984659678 update 2015.8.8 release notes
  242122. .UNINDENT
  242123. .IP \(bu 2
  242124. \fBISSUE\fP \fI\%#31586\fP: (\fI\%frogunder\fP) Proxy minion service.modules fails (refs: \fI\%#31601\fP)
  242125. .IP \(bu 2
  242126. \fBISSUE\fP \fI\%#31585\fP: (\fI\%frogunder\fP) Proxy minion commands causing exceptions (refs: \fI\%#31601\fP)
  242127. .IP \(bu 2
  242128. \fBPR\fP \fI\%#31947\fP: (\fI\%cro\fP) Move proxymodule assignment earlier in proxy minion init
  242129. @ \fI2016\-03\-17 18:14:23 UTC\fP
  242130. .INDENT 2.0
  242131. .IP \(bu 2
  242132. \fBPR\fP \fI\%#31601\fP: (\fI\%cro\fP) Proxy fixes for \fI\%#31585\fP and \fI\%#31586\fP
  242133. .IP \(bu 2
  242134. fefb694104 Merge pull request \fI\%#31947\fP from cro/bp\-31601
  242135. .IP \(bu 2
  242136. 4eb193edb7 Lint, unrelated but fixed anyway.
  242137. .IP \(bu 2
  242138. d661081016 Lint.
  242139. .IP \(bu 2
  242140. 59e0a6f923 Dont add this file
  242141. .IP \(bu 2
  242142. c68b968403 Old\-style proxymodules need to be setup earlier in minion init. Also include more correct comments in config.py
  242143. .UNINDENT
  242144. .IP \(bu 2
  242145. \fBPR\fP \fI\%#31948\fP: (\fI\%rallytime\fP) Revert "not not" deletion and add comment as to why that is there
  242146. @ \fI2016\-03\-17 17:00:22 UTC\fP
  242147. .INDENT 2.0
  242148. .IP \(bu 2
  242149. a86490ee68 Merge pull request \fI\%#31948\fP from rallytime/disable\-pylint\-error
  242150. .IP \(bu 2
  242151. 86196cd59d Revert "not not" deletion and add comment as to why that is there
  242152. .UNINDENT
  242153. .IP \(bu 2
  242154. \fBPR\fP \fI\%#31952\fP: (\fI\%rallytime\fP) Fix lint for 2015.8 branch
  242155. @ \fI2016\-03\-17 16:59:49 UTC\fP
  242156. .INDENT 2.0
  242157. .IP \(bu 2
  242158. db3af864ae Merge pull request \fI\%#31952\fP from rallytime/lint\-2015.8
  242159. .IP \(bu 2
  242160. 3e964ec9d4 Fix lint for 2015.8 branch
  242161. .UNINDENT
  242162. .IP \(bu 2
  242163. \fBPR\fP \fI\%#31933\fP: (\fI\%rallytime\fP) Fix linking syntax in testing docs
  242164. @ \fI2016\-03\-17 14:44:13 UTC\fP
  242165. .INDENT 2.0
  242166. .IP \(bu 2
  242167. 9ab4d6164b Merge pull request \fI\%#31933\fP from rallytime/fix\-test\-links
  242168. .IP \(bu 2
  242169. 06dd2c0411 Fix linking syntax in testing docs
  242170. .UNINDENT
  242171. .IP \(bu 2
  242172. \fBISSUE\fP \fI\%#31586\fP: (\fI\%frogunder\fP) Proxy minion service.modules fails (refs: \fI\%#31601\fP)
  242173. .IP \(bu 2
  242174. \fBISSUE\fP \fI\%#31585\fP: (\fI\%frogunder\fP) Proxy minion commands causing exceptions (refs: \fI\%#31601\fP)
  242175. .IP \(bu 2
  242176. \fBPR\fP \fI\%#31930\fP: (\fI\%cro\fP) Backport changes from 2016.3
  242177. @ \fI2016\-03\-16 22:12:29 UTC\fP
  242178. .INDENT 2.0
  242179. .IP \(bu 2
  242180. \fBPR\fP \fI\%#31601\fP: (\fI\%cro\fP) Proxy fixes for \fI\%#31585\fP and \fI\%#31586\fP
  242181. .IP \(bu 2
  242182. 723d0ca19f Merge pull request \fI\%#31930\fP from cro/bp\-31601
  242183. .IP \(bu 2
  242184. aa9a288b5a Add these files back in
  242185. .IP \(bu 2
  242186. 916ef26957 Remove .orig file mistakenly added, reformat example.
  242187. .IP \(bu 2
  242188. 3c8185571d Lint.
  242189. .IP \(bu 2
  242190. 9de9b9e86d Missin import
  242191. .IP \(bu 2
  242192. d571f3b8fe Backport PR\(ga#31601\(ga_
  242193. .UNINDENT
  242194. .IP \(bu 2
  242195. \fBPR\fP \fI\%#31924\fP: (\fI\%jfindlay\fP) update 2015.8.8 release notes
  242196. @ \fI2016\-03\-16 22:10:15 UTC\fP
  242197. .INDENT 2.0
  242198. .IP \(bu 2
  242199. ce765ad2df Merge pull request \fI\%#31924\fP from jfindlay/2015.8
  242200. .IP \(bu 2
  242201. 64dd8aebb2 update 2015.8.8 release notes
  242202. .UNINDENT
  242203. .IP \(bu 2
  242204. \fBISSUE\fP \fI\%#31890\fP: (\fI\%damon\-atkins\fP) salt/fileclient.py get_url should include the URL in any error message (refs: \fI\%#31922\fP)
  242205. .IP \(bu 2
  242206. \fBPR\fP \fI\%#31922\fP: (\fI\%cachedout\fP) For 2015.8 head
  242207. @ \fI2016\-03\-16 19:07:11 UTC\fP
  242208. .INDENT 2.0
  242209. .IP \(bu 2
  242210. 390ef9fea7 Merge pull request \fI\%#31922\fP from cachedout/issue_31890_1
  242211. .IP \(bu 2
  242212. da075d9341 For 2015.8 head
  242213. .UNINDENT
  242214. .IP \(bu 2
  242215. \fBPR\fP \fI\%#31904\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  242216. @ \fI2016\-03\-16 17:23:54 UTC\fP
  242217. .INDENT 2.0
  242218. .IP \(bu 2
  242219. 03e8b72655 Merge pull request \fI\%#31904\fP from rallytime/merge\-2015.8
  242220. .IP \(bu 2
  242221. f8b4b1b211 last pylint!
  242222. .IP \(bu 2
  242223. 892591a39c More pylint fixes
  242224. .IP \(bu 2
  242225. 35b2076584 Pylint fixes
  242226. .IP \(bu 2
  242227. 1a1ce05186 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  242228. .INDENT 2.0
  242229. .IP \(bu 2
  242230. 440e0dcbe0 Merge pull request \fI\%#31825\fP from jtand/udpate_pylintrc
  242231. .INDENT 2.0
  242232. .IP \(bu 2
  242233. 9a14e02766 Updated beacons/sh.py to work with enumerate()
  242234. .IP \(bu 2
  242235. 0ecec691a0 Adjusted beacons to work with enumerate better
  242236. .IP \(bu 2
  242237. f509b4113e Fixed final lint error
  242238. .IP \(bu 2
  242239. 5945b3f11f Fix and disable pylint errors
  242240. .IP \(bu 2
  242241. 06ae6eaf55 Fixed pylint errors on jboss state and module
  242242. .IP \(bu 2
  242243. de96db97c8 Fixed more pylint errors, and disabled some more
  242244. .IP \(bu 2
  242245. c07b0a20b5 Merge branch \(aqlint_fixes\(aq into udpate_pylintrc
  242246. .INDENT 2.0
  242247. .IP \(bu 2
  242248. 2e6a152308 Fixed lint error in lxc.py
  242249. .IP \(bu 2
  242250. 908ca1a439 Fixed lint error in ssh_py_shim
  242251. .IP \(bu 2
  242252. 404c1b50f7 Changed range(len()) to enumerate()
  242253. .IP \(bu 2
  242254. 1e13586546 Changed range(len()) to enumerate()
  242255. .UNINDENT
  242256. .IP \(bu 2
  242257. 9ccce7a9a5 Added more disables
  242258. .IP \(bu 2
  242259. 9c1aab3b4e Updated .testing.pylintrc to match newer versions of pylint
  242260. .UNINDENT
  242261. .IP \(bu 2
  242262. 471c9444a3 Merge pull request \fI\%#31900\fP from rallytime/fix\-psutil\-warning
  242263. .INDENT 2.0
  242264. .IP \(bu 2
  242265. 22403d69ae Add "python module" clarification to ps __virtual__ warning.
  242266. .UNINDENT
  242267. .IP \(bu 2
  242268. c44c1b5e59 Merge pull request \fI\%#31878\fP from rallytime/fix\-psutil\-warning
  242269. .INDENT 2.0
  242270. .IP \(bu 2
  242271. 44b29f72a1 Make sure __virtual__ error message is helpful when psutil is missing
  242272. .UNINDENT
  242273. .IP \(bu 2
  242274. 5c592b6768 Merge pull request \fI\%#31852\fP from rallytime/merge\-2015.5
  242275. .INDENT 2.0
  242276. .IP \(bu 2
  242277. 1470de17fa Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  242278. .IP \(bu 2
  242279. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  242280. .INDENT 2.0
  242281. .IP \(bu 2
  242282. 358fdad0c8 add 2014.7.8 release notes
  242283. .UNINDENT
  242284. .IP \(bu 2
  242285. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  242286. .INDENT 2.0
  242287. .IP \(bu 2
  242288. 6910fcc584 add 2014.7.9 release notes
  242289. .UNINDENT
  242290. .IP \(bu 2
  242291. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  242292. .IP \(bu 2
  242293. d73f70ebb2 Remove ability of authenticating user to specify pam service
  242294. .UNINDENT
  242295. .IP \(bu 2
  242296. 0cc1d5db03 Merge pull request \fI\%#31827\fP from gtmanfred/2015.5
  242297. .INDENT 2.0
  242298. .IP \(bu 2
  242299. 979173b78a Remove ability of authenticating user to specify pam service
  242300. .UNINDENT
  242301. .IP \(bu 2
  242302. 8cf0b9eb3d Merge pull request \fI\%#31810\fP from whiteinge/saltenv\-jinja\-var
  242303. .INDENT 2.0
  242304. .IP \(bu 2
  242305. cb72b19240 Fix outdated Jinja \(aqenv\(aq variable reference
  242306. .UNINDENT
  242307. .UNINDENT
  242308. .UNINDENT
  242309. .IP \(bu 2
  242310. \fBPR\fP \fI\%#31906\fP: (\fI\%sbreidba\fP) Win_dacl module: fix FULLCONTROL / FILE_ALL_ACCESS definition
  242311. @ \fI2016\-03\-16 15:20:19 UTC\fP
  242312. .INDENT 2.0
  242313. .IP \(bu 2
  242314. a4b3462346 Merge pull request \fI\%#31906\fP from sbreidba/win_dacl_fixes
  242315. .IP \(bu 2
  242316. 54d81b9b42 Fix FULLCONTROL / FILE_ALL_ACCESS definition (bugfix and code simplification). Use consistent mechanism fro obtaining user SID. Allow wildcarding (via optional parameters) for a variety of methods (get, rm_ace, check_ace).
  242317. .UNINDENT
  242318. .IP \(bu 2
  242319. \fBPR\fP \fI\%#31745\fP: (\fI\%isbm\fP) Fix the always\-false behavior on checking state
  242320. @ \fI2016\-03\-15 23:02:20 UTC\fP
  242321. .INDENT 2.0
  242322. .IP \(bu 2
  242323. b068eaa963 Merge pull request \fI\%#31745\fP from isbm/isbm\-always\-minion\-errcode\-2\-fix
  242324. .IP \(bu 2
  242325. 1882e1c960 Adjust test
  242326. .IP \(bu 2
  242327. f96c8f9b5e Keep first level away from lists.
  242328. .IP \(bu 2
  242329. baaed005b8 Fix PEP8 continuation
  242330. .IP \(bu 2
  242331. 1db61ea59a Fix the always\-false behavior on checking state (there are always lists at some point!)
  242332. .UNINDENT
  242333. .IP \(bu 2
  242334. \fBPR\fP \fI\%#31911\fP: (\fI\%rallytime\fP) Merge \fI\%#31903\fP with pylint fix
  242335. @ \fI2016\-03\-15 20:35:35 UTC\fP
  242336. .INDENT 2.0
  242337. .IP \(bu 2
  242338. \fBPR\fP \fI\%#31903\fP: (\fI\%terminalmage\fP) Use remote_ref instead of local_ref to see if checkout is necessary (refs: \fI\%#31911\fP)
  242339. .IP \(bu 2
  242340. d05c3eeba9 Merge pull request \fI\%#31911\fP from rallytime/merge\-31903\-with\-pylint
  242341. .IP \(bu 2
  242342. 85e5acd11a Merge \fI\%#31903\fP with pylint fix
  242343. .UNINDENT
  242344. .IP \(bu 2
  242345. \fBPR\fP \fI\%#31883\fP: (\fI\%paiou\fP) Fix scaleway cloud provider and manage x86 servers
  242346. @ \fI2016\-03\-15 20:31:18 UTC\fP
  242347. .INDENT 2.0
  242348. .IP \(bu 2
  242349. 819a4a8b54 Merge pull request \fI\%#31883\fP from mvpstars/scaleway\-x86
  242350. .IP \(bu 2
  242351. 1662a080e1 Update scaleway cloud provider to manage x86 servers
  242352. .UNINDENT
  242353. .IP \(bu 2
  242354. \fBPR\fP \fI\%#31903\fP: (\fI\%terminalmage\fP) Use remote_ref instead of local_ref to see if checkout is necessary (refs: \fI\%#31911\fP)
  242355. @ \fI2016\-03\-15 20:04:56 UTC\fP
  242356. .INDENT 2.0
  242357. .IP \(bu 2
  242358. 142c47c50d Merge pull request \fI\%#31903\fP from terminalmage/fix\-git\-pillar
  242359. .IP \(bu 2
  242360. af29940e1c Use remote_ref instead of local_ref to see if checkout is necessary
  242361. .UNINDENT
  242362. .IP \(bu 2
  242363. \fBPR\fP \fI\%#31845\fP: (\fI\%sakateka\fP) Now a check_file_meta deletes temporary files when test=True
  242364. @ \fI2016\-03\-15 19:55:21 UTC\fP
  242365. .INDENT 2.0
  242366. .IP \(bu 2
  242367. ffd65c36e5 Merge pull request \fI\%#31845\fP from sakateka/check_file_meta_clean_tmp
  242368. .IP \(bu 2
  242369. 5b30336b89 Now a check_file_meta deletes temporary files when test=True
  242370. .UNINDENT
  242371. .IP \(bu 2
  242372. \fBISSUE\fP \fI\%#31791\fP: (\fI\%alexbleotu\fP) Proxy minion starts spinning after running state.highstate (refs: \fI\%#31846\fP)
  242373. .IP \(bu 2
  242374. \fBISSUE\fP \fI\%#31728\fP: (\fI\%bgridley\fP) Custom grains syncing problem with proxy minion which causes high CPU utilization (refs: \fI\%#31846\fP)
  242375. .IP \(bu 2
  242376. \fBPR\fP \fI\%#31901\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31846\fP to 2015.8
  242377. @ \fI2016\-03\-15 19:12:43 UTC\fP
  242378. .INDENT 2.0
  242379. .IP \(bu 2
  242380. \fBPR\fP \fI\%#31846\fP: (\fI\%cro\fP) Proxy infinite loop (refs: \fI\%#31901\fP)
  242381. .IP \(bu 2
  242382. 7428c73724 Merge pull request \fI\%#31901\fP from rallytime/bp\-31846
  242383. .IP \(bu 2
  242384. 1edd6ce302 Extra comment.
  242385. .IP \(bu 2
  242386. 6c2ef03b11 Fix event bus flood caused by unexpected recursive call.
  242387. .UNINDENT
  242388. .IP \(bu 2
  242389. \fBPR\fP \fI\%#31905\fP: (\fI\%terminalmage\fP) Update versionadded directive
  242390. @ \fI2016\-03\-15 18:43:06 UTC\fP
  242391. .INDENT 2.0
  242392. .IP \(bu 2
  242393. 37f1ce9be2 Merge pull request \fI\%#31905\fP from terminalmage/update\-versionadded
  242394. .IP \(bu 2
  242395. dcc196c9e1 Update versionadded directive
  242396. .UNINDENT
  242397. .IP \(bu 2
  242398. \fBPR\fP \fI\%#31902\fP: (\fI\%rallytime\fP) Update versionadded tag for new funcs
  242399. @ \fI2016\-03\-15 18:41:08 UTC\fP
  242400. .INDENT 2.0
  242401. .IP \(bu 2
  242402. \fBPR\fP \fI\%#31857\fP: (\fI\%sjorge\fP) gen_password and del_password missing from solaris_shadow (refs: \fI\%#31902\fP)
  242403. .IP \(bu 2
  242404. 35f6407d11 Merge pull request \fI\%#31902\fP from rallytime/update\-version\-31857
  242405. .IP \(bu 2
  242406. 5cd09150cd Update versionadded tag for new funcs
  242407. .UNINDENT
  242408. .IP \(bu 2
  242409. \fBPR\fP \fI\%#31888\fP: (\fI\%terminalmage\fP) Fix salt.utils.decorators.Depends
  242410. @ \fI2016\-03\-15 17:09:54 UTC\fP
  242411. .INDENT 2.0
  242412. .IP \(bu 2
  242413. 1be9c91761 Merge pull request \fI\%#31888\fP from terminalmage/fix\-depends\-decorator
  242414. .IP \(bu 2
  242415. 394410e2b0 Add integration test for depends decorator
  242416. .IP \(bu 2
  242417. caa3cc1007 Fix salt.utils.decorators.Depends
  242418. .UNINDENT
  242419. .IP \(bu 2
  242420. \fBPR\fP \fI\%#31857\fP: (\fI\%sjorge\fP) gen_password and del_password missing from solaris_shadow (refs: \fI\%#31902\fP)
  242421. @ \fI2016\-03\-14 20:29:51 UTC\fP
  242422. .INDENT 2.0
  242423. .IP \(bu 2
  242424. d357e4ea44 Merge pull request \fI\%#31857\fP from sjorge/solarish_shadow
  242425. .IP \(bu 2
  242426. 38231303f3 .9 release as mentioned by rallytime
  242427. .IP \(bu 2
  242428. 3e25f70968 fix version added
  242429. .IP \(bu 2
  242430. d768ed25b4 develop, 2016.3 and 2015.8 has missing gen_password and del_password for shadow module
  242431. .UNINDENT
  242432. .IP \(bu 2
  242433. \fBPR\fP \fI\%#31879\fP: (\fI\%cro\fP) Clarify some comments
  242434. @ \fI2016\-03\-14 19:59:35 UTC\fP
  242435. .INDENT 2.0
  242436. .IP \(bu 2
  242437. 1b0b2d3f1a Merge pull request \fI\%#31879\fP from cro/idrac_fixes_0314
  242438. .IP \(bu 2
  242439. 42ef3a7970 Extra comment.
  242440. .UNINDENT
  242441. .IP \(bu 2
  242442. \fBISSUE\fP \fI\%#8927\fP: (\fI\%brutasse\fP) file state: unable to use \fIcontents_pillar\fP with \fItemplate: jinja\fP (refs: \fI\%#31815\fP)
  242443. .IP \(bu 2
  242444. \fBISSUE\fP \fI\%#26944\fP: (\fI\%boltronics\fP) file.managed contents and contents_pillar should support a template rendering engine (refs: \fI\%#31815\fP)
  242445. .IP \(bu 2
  242446. \fBISSUE\fP \fI\%#14664\fP: (\fI\%jacksontj\fP) Unable to have a template with file.managed contents (or contents_pillar) (refs: \fI\%#31815\fP)
  242447. .IP \(bu 2
  242448. \fBPR\fP \fI\%#31815\fP: (\fI\%dr4Ke\fP) Fix template on contents 2015.8
  242449. @ \fI2016\-03\-14 17:41:46 UTC\fP
  242450. .INDENT 2.0
  242451. .IP \(bu 2
  242452. fb81bbea23 Merge pull request \fI\%#31815\fP from dr4Ke/fix_template_on_contents_2015.8
  242453. .IP \(bu 2
  242454. dcd6f5a5a9 test for file.apply_template_on_contents
  242455. .IP \(bu 2
  242456. 10d882296d file.managed: templating contents, not just files
  242457. .UNINDENT
  242458. .IP \(bu 2
  242459. \fBPR\fP \fI\%#31818\fP: (\fI\%anlutro\fP) Prevent event logs from writing huge amounts of data
  242460. @ \fI2016\-03\-14 17:27:47 UTC\fP
  242461. .INDENT 2.0
  242462. .IP \(bu 2
  242463. aa120cb716 Merge pull request \fI\%#31818\fP from alprs/fix\-event_logging_spam
  242464. .IP \(bu 2
  242465. 83fa136da7 work on event logging
  242466. .UNINDENT
  242467. .IP \(bu 2
  242468. \fBISSUE\fP \fI\%#31293\fP: (\fI\%deuscapturus\fP) Git Pillars lose HEAD reference over time (refs: \fI\%#31836\fP)
  242469. .IP \(bu 2
  242470. \fBISSUE\fP \fI\%#29239\fP: (\fI\%timwsuqld\fP) Occasionaly git_pillar pull fails causing incorrect results of highstate (when running highstate for multiple minions) (refs: \fI\%#31836\fP)
  242471. .IP \(bu 2
  242472. \fBPR\fP \fI\%#31836\fP: (\fI\%terminalmage\fP) Fix git_pillar race condition
  242473. @ \fI2016\-03\-14 15:48:28 UTC\fP
  242474. .INDENT 2.0
  242475. .IP \(bu 2
  242476. f2445bdbdc Merge pull request \fI\%#31836\fP from terminalmage/issue31293
  242477. .IP \(bu 2
  242478. 5048fa857c Fix duplicate output
  242479. .IP \(bu 2
  242480. 155b84b88a salt.fileserver: Add ability to clear checkout locks
  242481. .IP \(bu 2
  242482. af410d8dd1 Pass through the lock_type
  242483. .IP \(bu 2
  242484. 3d7796d5dd salt.runners.cache: Add ability to clear checkout locks
  242485. .IP \(bu 2
  242486. 8e086099f5 salt.utils.gitfs: rewrite locking code
  242487. .IP \(bu 2
  242488. 06b212519c Add GitLockError exception class
  242489. .IP \(bu 2
  242490. ad04ccfb93 Strip whitespace when splitting
  242491. .UNINDENT
  242492. .IP \(bu 2
  242493. \fBPR\fP \fI\%#31824\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31819\fP to 2015.8
  242494. @ \fI2016\-03\-13 19:59:32 UTC\fP
  242495. .INDENT 2.0
  242496. .IP \(bu 2
  242497. \fBPR\fP \fI\%#31819\fP: (\fI\%mchugh19\fP) raise error on unsupported distro (refs: \fI\%#31824\fP)
  242498. .IP \(bu 2
  242499. 5464be07b1 Merge pull request \fI\%#31824\fP from rallytime/bp\-31819
  242500. .IP \(bu 2
  242501. 4d516adade raise error on unsupported distro
  242502. .UNINDENT
  242503. .IP \(bu 2
  242504. \fBISSUE\fP \fI\%#24559\fP: (\fI\%iacopo\-papalini\fP) salt\-cloud \- Azure \- should be possible to specify virtual network & subnet in profile (refs: \fI\%#31856\fP, \fI\%#24569\fP)
  242505. .IP \(bu 2
  242506. \fBPR\fP \fI\%#31856\fP: (\fI\%szeestraten\fP) Adds missing docs for Virtual Network and Subnet options in salt\-cloud Azure cloud profile
  242507. @ \fI2016\-03\-13 19:06:52 UTC\fP
  242508. .INDENT 2.0
  242509. .IP \(bu 2
  242510. \fBPR\fP \fI\%#24569\fP: (\fI\%iacopo\-papalini\fP) Fix Issue \fI\%#24559\fP \- salt\-cloud \- Azure \- should be possible to specify… (refs: \fI\%#31856\fP)
  242511. .IP \(bu 2
  242512. 7781b357e0 Merge pull request \fI\%#31856\fP from szeestraten/add\-missing\-docs\-for\-azure\-cloud\-profile
  242513. .IP \(bu 2
  242514. a1a2229405 Adds missing docs for Azure cloud profile
  242515. .UNINDENT
  242516. .IP \(bu 2
  242517. \fBPR\fP \fI\%#31839\fP: (\fI\%jfindlay\fP) add 2015.8.8 release notes
  242518. @ \fI2016\-03\-11 23:23:34 UTC\fP
  242519. .INDENT 2.0
  242520. .IP \(bu 2
  242521. 3f88f3a8cf Merge pull request \fI\%#31839\fP from jfindlay/2015.8
  242522. .IP \(bu 2
  242523. 47ac41ba27 add 2015.8.8 release notes
  242524. .UNINDENT
  242525. .IP \(bu 2
  242526. \fBPR\fP \fI\%#31828\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  242527. @ \fI2016\-03\-11 20:40:37 UTC\fP
  242528. .INDENT 2.0
  242529. .IP \(bu 2
  242530. 46bdd10a56 Merge pull request \fI\%#31828\fP from gtmanfred/2015.8
  242531. .IP \(bu 2
  242532. 7c3134a3d3 Remove ability of authenticating user to specify pam service
  242533. .UNINDENT
  242534. .IP \(bu 2
  242535. \fBISSUE\fP \fI\%#30489\fP: (\fI\%chris\-martin\fP) influxdb_user.present fails: "InfluxDBClient\(aq object has no attribute \(aqget_list_cluster_admins" (refs: \fI\%#31787\fP, \fI\%#31770\fP)
  242536. .IP \(bu 2
  242537. \fBPR\fP \fI\%#31787\fP: (\fI\%anlutro\fP) Fix user_create and db_create for new versions of influxdb
  242538. @ \fI2016\-03\-11 15:19:22 UTC\fP
  242539. .INDENT 2.0
  242540. .IP \(bu 2
  242541. 3d370b471c Merge pull request \fI\%#31787\fP from alprs/fix\-influxdb_user
  242542. .IP \(bu 2
  242543. 6a5211c8d8 don\(aqt swallow exceptions
  242544. .IP \(bu 2
  242545. a7e9c1e381 fix db_create for influxdb 0.9+
  242546. .IP \(bu 2
  242547. 5a8a645d4b fix create_user for new versions of influxdb
  242548. .UNINDENT
  242549. .IP \(bu 2
  242550. \fBPR\fP \fI\%#31800\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  242551. @ \fI2016\-03\-10 20:49:53 UTC\fP
  242552. .INDENT 2.0
  242553. .IP \(bu 2
  242554. 7fb2331ebc Merge pull request \fI\%#31800\fP from rallytime/merge\-2015.8
  242555. .IP \(bu 2
  242556. 44c15f0b16 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  242557. .IP \(bu 2
  242558. 970ef0e445 Merge pull request \fI\%#31744\fP from brejoc/fix\-attribute\-error\-with\-older\-libcloud/2015.5
  242559. .INDENT 2.0
  242560. .IP \(bu 2
  242561. bb29dc2283 Added version to libcloud depends statement
  242562. .IP \(bu 2
  242563. 87f9534fce Added log message with update suggestion for libcloud
  242564. .IP \(bu 2
  242565. 72eab406cd Fix for AttributeError with libcloud <0.15
  242566. .UNINDENT
  242567. .IP \(bu 2
  242568. df2d23ba5d Merge pull request \fI\%#31740\fP from terminalmage/issue31666
  242569. .INDENT 2.0
  242570. .IP \(bu 2
  242571. aeaf5864cd Fall back to False when pillar_opts not set
  242572. .IP \(bu 2
  242573. fe19d77eb4 Add default value for pillar_opts on minion
  242574. .UNINDENT
  242575. .IP \(bu 2
  242576. e22f5c0a26 Merge pull request \fI\%#31750\fP from rallytime/bp\-26170
  242577. .INDENT 2.0
  242578. .IP \(bu 2
  242579. 3c11234a05 Make sure variable is a dictionary before popping something from it.
  242580. .UNINDENT
  242581. .IP \(bu 2
  242582. 9162925dd0 Merge pull request \fI\%#31689\fP from rallytime/bp\-29467
  242583. .INDENT 2.0
  242584. .IP \(bu 2
  242585. 1f8f4cb99b Update module.py
  242586. .UNINDENT
  242587. .UNINDENT
  242588. .IP \(bu 2
  242589. \fBPR\fP \fI\%#31797\fP: (\fI\%Ch3LL\fP) Change pkg name to less for suse pkg.info_installed test
  242590. @ \fI2016\-03\-10 19:08:16 UTC\fP
  242591. .INDENT 2.0
  242592. .IP \(bu 2
  242593. 75dfb2ed40 Merge pull request \fI\%#31797\fP from Ch3LL/fix_pkginfo_test
  242594. .IP \(bu 2
  242595. 910f0d9ffc change pkg name to less for suse
  242596. .UNINDENT
  242597. .IP \(bu 2
  242598. \fBISSUE\fP \fI\%#31617\fP: (\fI\%tampakrap\fP) service.running fails on sle11 sp3 and sp4 (refs: \fI\%#31629\fP, \fI\%#31793\fP)
  242599. .IP \(bu 2
  242600. \fBPR\fP \fI\%#31793\fP: (\fI\%xopher\-mc\fP) fixing init system detection on sles 11, refs \fI\%#31617\fP
  242601. @ \fI2016\-03\-10 18:42:27 UTC\fP
  242602. .INDENT 2.0
  242603. .IP \(bu 2
  242604. 1386b72bbf Merge pull request \fI\%#31793\fP from xopher\-mc/fix_sles_state_service_module
  242605. .IP \(bu 2
  242606. d242cb19b4 fixing init system dectection on sles 11, refs \fI\%#31617\fP
  242607. .UNINDENT
  242608. .IP \(bu 2
  242609. \fBPR\fP \fI\%#31786\fP: (\fI\%isbm\fP) Bugfix: zypper doesn\(aqt detect base product on SLE11 series
  242610. @ \fI2016\-03\-10 18:12:46 UTC\fP
  242611. .INDENT 2.0
  242612. .IP \(bu 2
  242613. 2f28c166dd Merge pull request \fI\%#31786\fP from isbm/isbm\-zypper\-list\-products\-sles11
  242614. .IP \(bu 2
  242615. ee1a002673 Update test case to cover SLE11 and SLE12
  242616. .IP \(bu 2
  242617. 4b134fb2ab Add SLE11 product info snapshot, rename previous
  242618. .IP \(bu 2
  242619. 3c5fc857b2 Bugfix: on SLE11 series base product reported as additional
  242620. .UNINDENT
  242621. .IP \(bu 2
  242622. \fBISSUE\fP \fI\%#31776\fP: (\fI\%gtmanfred\fP) ProxyMinion does not close connections (at least with esxi proxy) (refs: \fI\%#31780\fP)
  242623. .IP \(bu 2
  242624. \fBPR\fP \fI\%#31780\fP: (\fI\%gtmanfred\fP) use already created vsphere connection
  242625. @ \fI2016\-03\-10 17:41:53 UTC\fP
  242626. .INDENT 2.0
  242627. .IP \(bu 2
  242628. d6f669623c Merge pull request \fI\%#31780\fP from gtmanfred/2015.8
  242629. .IP \(bu 2
  242630. 070eaf07f0 use already created vsphere connection
  242631. .UNINDENT
  242632. .IP \(bu 2
  242633. \fBISSUE\fP \fI\%#31772\fP: (\fI\%sbreidba\fP) win_dacl state causes state.apply output to be YAML, not highstate (refs: \fI\%#31779\fP)
  242634. .IP \(bu 2
  242635. \fBPR\fP \fI\%#31779\fP: (\fI\%sbreidba\fP) win_dacl state & module: return comment field as strings, not lists.
  242636. @ \fI2016\-03\-10 17:41:08 UTC\fP
  242637. .INDENT 2.0
  242638. .IP \(bu 2
  242639. a067de3712 Merge pull request \fI\%#31779\fP from sbreidba/win\-dacl\-highstate\-output\-2015.8
  242640. .IP \(bu 2
  242641. aeb2bfcf46 win_dacl state & module: return comment field as strings, not lists.
  242642. .UNINDENT
  242643. .IP \(bu 2
  242644. \fBISSUE\fP \fI\%#31563\fP: (\fI\%sjorge\fP) regression in 2016.3 from today? (refs: \fI\%#31723\fP, \fI\%#31707\fP)
  242645. .IP \(bu 2
  242646. \fBPR\fP \fI\%#31723\fP: (\fI\%sjorge\fP) file_ignore_regex is a list, not bool
  242647. @ \fI2016\-03\-09 23:36:10 UTC\fP
  242648. .INDENT 2.0
  242649. .IP \(bu 2
  242650. \fBPR\fP \fI\%#31707\fP: (\fI\%sjorge\fP) Fix incorrect default types for master_tops and file_ignore_regex (refs: \fI\%#31723\fP)
  242651. .IP \(bu 2
  242652. baeefac252 Merge pull request \fI\%#31723\fP from sjorge/2015.8\-file_ignore_regex
  242653. .IP \(bu 2
  242654. df1ba94cbb file_ignore_regex is a list, not bool
  242655. .UNINDENT
  242656. .IP \(bu 2
  242657. \fBISSUE\fP \fI\%#27960\fP: (\fI\%The\-Loeki\fP) salt\-cloud CLI 2015.8 borks out with SaltClientError: \(aqtimeout\(aq (refs: \fI\%#31747\fP)
  242658. .IP \(bu 2
  242659. \fBPR\fP \fI\%#31747\fP: (\fI\%techhat\fP) Use get_local_client with MASTER opts, not MINION
  242660. @ \fI2016\-03\-09 23:14:58 UTC\fP
  242661. .INDENT 2.0
  242662. .IP \(bu 2
  242663. cd43cf919c Merge pull request \fI\%#31747\fP from techhat/issue27960
  242664. .IP \(bu 2
  242665. 44c100d610 Use get_local_client with MASTER opts, not MINION
  242666. .UNINDENT
  242667. .IP \(bu 2
  242668. \fBPR\fP \fI\%#31688\fP: (\fI\%whiteinge\fP) Various SMTP returner fixes
  242669. @ \fI2016\-03\-09 22:40:37 UTC\fP
  242670. .INDENT 2.0
  242671. .IP \(bu 2
  242672. 286ea1f61b Merge pull request \fI\%#31688\fP from whiteinge/smtp\-renderer
  242673. .IP \(bu 2
  242674. 76671b6a81 Check if we have a StringIO and grab the string instead
  242675. .IP \(bu 2
  242676. 17b8cd755f Add a default for the subject
  242677. .IP \(bu 2
  242678. 26479bee24 Clean up the SMTP returner docstring and show an actual config example
  242679. .IP \(bu 2
  242680. 74563f17ed Make sure the email subject and body are strings
  242681. .IP \(bu 2
  242682. fc69d08e8e Default to just \(aqjinja\(aq for the SMTP renderer
  242683. .IP \(bu 2
  242684. 2af7cd2789 Add missing \(aqport\(aq to smtp options
  242685. .UNINDENT
  242686. .IP \(bu 2
  242687. \fBPR\fP \fI\%#31752\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31686\fP to 2015.8
  242688. @ \fI2016\-03\-09 21:23:01 UTC\fP
  242689. .INDENT 2.0
  242690. .IP \(bu 2
  242691. \fBPR\fP \fI\%#31686\fP: (\fI\%myii\fP) Fix typo in example for section \fIwinrepo_dir_ng\fP (refs: \fI\%#31752\fP)
  242692. .IP \(bu 2
  242693. 1d6d982e5c Merge pull request \fI\%#31752\fP from rallytime/bp\-31686
  242694. .IP \(bu 2
  242695. e4df5d9a55 Fix typo in example for section \fIwinrepo_dir_ng\fP
  242696. .UNINDENT
  242697. .IP \(bu 2
  242698. \fBPR\fP \fI\%#31733\fP: (\fI\%jacobhammons\fP) docs to clarify cloud configuration
  242699. @ \fI2016\-03\-09 20:54:10 UTC\fP
  242700. .INDENT 2.0
  242701. .IP \(bu 2
  242702. ec90294442 Merge pull request \fI\%#31733\fP from jacobhammons/cloud\-docs
  242703. .IP \(bu 2
  242704. 209c641a41 Made udpates as suggested by @rallytime
  242705. .IP \(bu 2
  242706. 26d4991cb3 moved previous intro to new quick start topic (topics/cloud/qs.rst) added new intro that explains the salt cloud configuration files added an inheritance and minion startup state example to topics/cloud/config.rst
  242707. .UNINDENT
  242708. .IP \(bu 2
  242709. \fBISSUE\fP \fI\%#26498\fP: (\fI\%rallytime\fP) [salt\-cloud] Able to create multiple VMs with the same name across providers (refs: \fI\%#31754\fP, \fI\%#31775\fP)
  242710. .IP \(bu 2
  242711. \fBPR\fP \fI\%#31775\fP: (\fI\%techhat\fP) Show correct provider/driver name
  242712. @ \fI2016\-03\-09 20:53:10 UTC\fP
  242713. .INDENT 2.0
  242714. .IP \(bu 2
  242715. 92ba7f3495 Merge pull request \fI\%#31775\fP from techhat/correctmsg
  242716. .IP \(bu 2
  242717. c1433650b4 Show correct provider/driver name
  242718. .UNINDENT
  242719. .IP \(bu 2
  242720. \fBISSUE\fP \fI\%#26498\fP: (\fI\%rallytime\fP) [salt\-cloud] Able to create multiple VMs with the same name across providers (refs: \fI\%#31754\fP, \fI\%#31775\fP)
  242721. .IP \(bu 2
  242722. \fBPR\fP \fI\%#31754\fP: (\fI\%techhat\fP) Check all providers, not just the current one
  242723. @ \fI2016\-03\-09 18:38:19 UTC\fP
  242724. .INDENT 2.0
  242725. .IP \(bu 2
  242726. 249a3602eb Merge pull request \fI\%#31754\fP from techhat/issue26498
  242727. .IP \(bu 2
  242728. 08c61446b7 Check all providers, not just the current one
  242729. .UNINDENT
  242730. .IP \(bu 2
  242731. \fBISSUE\fP \fI\%#31639\fP: (\fI\%mshirley\fP) salt\-cloud digital ocean api v2 doesn\(aqt implement all available actions (refs: \fI\%#31735\fP)
  242732. .IP \(bu 2
  242733. \fBPR\fP \fI\%#31735\fP: (\fI\%rallytime\fP) Add reboot, start, and stop actions to digital ocean driver
  242734. @ \fI2016\-03\-09 17:57:58 UTC\fP
  242735. .INDENT 2.0
  242736. .IP \(bu 2
  242737. 7ad521f7a5 Merge pull request \fI\%#31735\fP from rallytime/fix\-31639
  242738. .IP \(bu 2
  242739. 67d1aa6740 Remove experimental/incomplete function
  242740. .IP \(bu 2
  242741. b209623ca9 Add reboot, start, and stop actions to digital ocean driver
  242742. .UNINDENT
  242743. .IP \(bu 2
  242744. \fBISSUE\fP \fI\%#30489\fP: (\fI\%chris\-martin\fP) influxdb_user.present fails: "InfluxDBClient\(aq object has no attribute \(aqget_list_cluster_admins" (refs: \fI\%#31787\fP, \fI\%#31770\fP)
  242745. .IP \(bu 2
  242746. \fBPR\fP \fI\%#31770\fP: (\fI\%anlutro\fP) Fix influxdb user functionality for version 0.9+
  242747. @ \fI2016\-03\-09 17:09:26 UTC\fP
  242748. .INDENT 2.0
  242749. .IP \(bu 2
  242750. fd3610c6a4 Merge pull request \fI\%#31770\fP from alprs/fix\-influxdb_user
  242751. .IP \(bu 2
  242752. 1349bdd2e8 fix influxdb user functionality for version 0.9+
  242753. .UNINDENT
  242754. .IP \(bu 2
  242755. \fBPR\fP \fI\%#31743\fP: (\fI\%Talkless\fP) Fix parentheses missmatch in documentation
  242756. @ \fI2016\-03\-08 18:01:23 UTC\fP
  242757. .INDENT 2.0
  242758. .IP \(bu 2
  242759. c0868307df Merge pull request \fI\%#31743\fP from Talkless/patch\-1
  242760. .IP \(bu 2
  242761. 26ff46dbc6 Fix parenthesis missmatch in documentation
  242762. .UNINDENT
  242763. .IP \(bu 2
  242764. \fBPR\fP \fI\%#31162\fP: (\fI\%isbm\fP) Remove MD5 digest from everywhere and default to SHA256
  242765. @ \fI2016\-03\-07 19:11:36 UTC\fP
  242766. .INDENT 2.0
  242767. .IP \(bu 2
  242768. 826fea6582 Merge pull request \fI\%#31162\fP from isbm/isbm\-md5\-to\-sha1
  242769. .IP \(bu 2
  242770. 9d64abed0c Fix PyLint
  242771. .IP \(bu 2
  242772. 327ea11139 Add daemons unit test to verify hash_type settings
  242773. .IP \(bu 2
  242774. f3aecc0b22 Standardize logging
  242775. .IP \(bu 2
  242776. 51f556243d Verify if hash_type is using vulnerable algorithms
  242777. .IP \(bu 2
  242778. 95ec634f00 Report environment failure, if any
  242779. .IP \(bu 2
  242780. 63eedefe54 Use mixin for the daemon classes
  242781. .IP \(bu 2
  242782. 82dd383630 Create a mixin class that will be reused in the similar instances (daemons)
  242783. .IP \(bu 2
  242784. 36da8f5efa Use MD5 hash algorithm by default (until deprecated)
  242785. .IP \(bu 2
  242786. 584325797c Remove SHA1 in favor of SHA256
  242787. .IP \(bu 2
  242788. 373493c13f Remove SHA1 for SHA256
  242789. .IP \(bu 2
  242790. d5cb4dd424 Remove sha1 to sha265
  242791. .IP \(bu 2
  242792. 73b8d35e01 Add note to the Tomcat module for SHA256
  242793. .IP \(bu 2
  242794. efb78f1055 Remove SHA1 to SHA265 by default
  242795. .IP \(bu 2
  242796. 6198976edb Use SHA1 by default instead of MD5
  242797. .IP \(bu 2
  242798. 73f2df76ce Use SHA1 hash by default in Tomcat module, refactor for support different algorithms
  242799. .IP \(bu 2
  242800. 0d4e4e31f8 Use SHA1 hash by default
  242801. .IP \(bu 2
  242802. 785717703b Use configurable hash_type for general Key fingerprinting
  242803. .IP \(bu 2
  242804. f0d931f4d0 Use hash_type configuration for the Cloud
  242805. .IP \(bu 2
  242806. 95cb59dec7 Set defalt hash as SHA1 in config and explain why.
  242807. .IP \(bu 2
  242808. 8f9543c292 Set config hash_type to SHA1
  242809. .IP \(bu 2
  242810. 413eca124d Set default checksum for key fingerprint to SHA1
  242811. .UNINDENT
  242812. .IP \(bu 2
  242813. \fBISSUE\fP \fI\%#30528\fP: (\fI\%UtahDave\fP) Missing Minion notifications missing from job cache (refs: \fI\%#31670\fP)
  242814. .IP \(bu 2
  242815. \fBPR\fP \fI\%#31670\fP: (\fI\%terminalmage\fP) Write lists of minions targeted by syndic masters to job cache
  242816. @ \fI2016\-03\-07 18:51:53 UTC\fP
  242817. .INDENT 2.0
  242818. .IP \(bu 2
  242819. a1f32b71bd Merge pull request \fI\%#31670\fP from terminalmage/issue30528
  242820. .IP \(bu 2
  242821. 65e5a3c53e Pass syndic_id to save_minions()
  242822. .IP \(bu 2
  242823. cf94c2597a Add argument to save_minions() to pass a syndic ID
  242824. .IP \(bu 2
  242825. cb92114377 Add syndic_id param for API compatibility
  242826. .IP \(bu 2
  242827. 1d39eec69b Skip events with minion lists but no jid
  242828. .IP \(bu 2
  242829. 651e3926f7 lint fixes
  242830. .IP \(bu 2
  242831. 0f175a4edf salt.returners.sqlite3_return: add no\-op save_minions() func for API compatibility
  242832. .IP \(bu 2
  242833. f8664103b1 salt.returners.redis_return: add no\-op save_minions() func for API compatibility
  242834. .IP \(bu 2
  242835. 0ea1b76c22 salt.returners.postgres_local_cache: add no\-op save_minions() func for API compatibility
  242836. .IP \(bu 2
  242837. d6d794b484 salt.returners.postgres: add no\-op save_minions() func for API compatibility
  242838. .IP \(bu 2
  242839. 82750ab699 salt.returners.pgjsonb: add no\-op save_minions() func for API compatibility
  242840. .IP \(bu 2
  242841. d8f90f6578 salt.returners.odbc: add no\-op save_minions() func for API compatibility
  242842. .IP \(bu 2
  242843. a1957c3706 salt.returners.mysql: add no\-op save_minions() func for API compatibility
  242844. .IP \(bu 2
  242845. ef6aa5de1c salt.returners.multi_returner: add no\-op save_minions() func for API compatibility
  242846. .IP \(bu 2
  242847. 5b4eb58d99 salt.returners.mongo_return: add no\-op save_minions() func for API compatibility
  242848. .IP \(bu 2
  242849. da1acbb8f2 salt.returners.mongo_future_return: add no\-op save_minions() func for API compatibility
  242850. .IP \(bu 2
  242851. c13bb6549c salt.returners.memcache_return: add no\-op save_minions() func for API compatibility
  242852. .IP \(bu 2
  242853. 4322ad9ef3 salt.returners.influxdb_return: add no\-op save_minions() func for API compatibility
  242854. .IP \(bu 2
  242855. 1dd106183c salt.returners.etcd_return: add no\-op save_minions() func for API compatibility
  242856. .IP \(bu 2
  242857. 8e80535516 salt.returners.couchdb_return: add no\-op save_minions() func for API compatibility
  242858. .IP \(bu 2
  242859. 44538dfced salt.returners.cassandra_cql_return: add no\-op save_minions() func for API compatibility
  242860. .IP \(bu 2
  242861. 084a78407a salt.returners.couchbase_return: move minion list updates to new save_minions() func
  242862. .IP \(bu 2
  242863. f731dc5d32 Update a job\(aqs minion list to include minion lists forwarded by syndic
  242864. .IP \(bu 2
  242865. 504f7df460 Add utils function to invoke a returner\(aqs save_minions() func
  242866. .IP \(bu 2
  242867. 0b4616a3eb Separate writing of serialized minion list into its own function
  242868. .IP \(bu 2
  242869. 214fedc3f6 Simplify jobs.get_jobs logic, generally improve jobs runner docs
  242870. .IP \(bu 2
  242871. 3f527be748 Add an exception class for errors encountered while locking files.
  242872. .IP \(bu 2
  242873. 1e6b43eef8 Add a contextmanager for file locking
  242874. .IP \(bu 2
  242875. 978b6cb32f Add missing RST file for slsutil module
  242876. .IP \(bu 2
  242877. 2ad8ceffc2 Add salt.utils.split_input()
  242878. .UNINDENT
  242879. .IP \(bu 2
  242880. \fBISSUE\fP \fI\%#31595\fP: (\fI\%dverbeek84\fP) dockerng ports specified in Dockerfile must be in sls file otherwise salt gives an error (refs: \fI\%#31711\fP)
  242881. .IP \(bu 2
  242882. \fBPR\fP \fI\%#31711\fP: (\fI\%ticosax\fP) [dockerng] Port and Volume comparison should consider Dockerfile
  242883. @ \fI2016\-03\-07 18:25:19 UTC\fP
  242884. .INDENT 2.0
  242885. .IP \(bu 2
  242886. 24568b1a5d Merge pull request \fI\%#31711\fP from ticosax/fix\-port\-and\-volume\-discovery
  242887. .IP \(bu 2
  242888. cf38691597 Port and Volume comparison should consider Dockerfile
  242889. .UNINDENT
  242890. .IP \(bu 2
  242891. \fBISSUE\fP \fI\%#31579\fP: (\fI\%bradthurber\fP) salt\-cloud delete with a map file fails when multiple providers defined (refs: \fI\%#31719\fP)
  242892. .IP \(bu 2
  242893. \fBPR\fP \fI\%#31719\fP: (\fI\%techhat\fP) Don\(aqt worry about KeyErrors if the node is already removed
  242894. @ \fI2016\-03\-07 18:16:40 UTC\fP
  242895. .INDENT 2.0
  242896. .IP \(bu 2
  242897. b936e09fb3 Merge pull request \fI\%#31719\fP from techhat/issue31579
  242898. .IP \(bu 2
  242899. 88905095c9 Don\(aqt worry about KeyErrors if the node is already removed
  242900. .UNINDENT
  242901. .IP \(bu 2
  242902. \fBPR\fP \fI\%#31713\fP: (\fI\%ticosax\fP) [dockerng] Fix dockerng.network_present when container is given by name
  242903. @ \fI2016\-03\-07 15:14:41 UTC\fP
  242904. .INDENT 2.0
  242905. .IP \(bu 2
  242906. 604eb87e82 Merge pull request \fI\%#31713\fP from ticosax/fix\-dockerng\-networking\-container_id
  242907. .IP \(bu 2
  242908. 3837cf44ca Fix network_present by dealing with containers ID\(aqs instead of names.
  242909. .UNINDENT
  242910. .IP \(bu 2
  242911. \fBISSUE\fP \fI\%#31704\fP: (\fI\%peripatetic\-sojourner\fP) Foreman external pillar doesn\(aqt load (refs: \fI\%#31705\fP)
  242912. .IP \(bu 2
  242913. \fBPR\fP \fI\%#31705\fP: (\fI\%peripatetic\-sojourner\fP) Foreman pillar
  242914. @ \fI2016\-03\-07 14:24:58 UTC\fP
  242915. .INDENT 2.0
  242916. .IP \(bu 2
  242917. 8f28e4510d Merge pull request \fI\%#31705\fP from peripatetic\-sojourner/foreman_pillar
  242918. .IP \(bu 2
  242919. ba33d75949 passing lint test
  242920. .IP \(bu 2
  242921. 63e39a8999 refactored parameter population for foreman pillar
  242922. .IP \(bu 2
  242923. c3325bc15d add return of virtualname
  242924. .UNINDENT
  242925. .IP \(bu 2
  242926. \fBPR\fP \fI\%#31702\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  242927. @ \fI2016\-03\-06 19:24:47 UTC\fP
  242928. .INDENT 2.0
  242929. .IP \(bu 2
  242930. aa5c13f0b8 Merge pull request \fI\%#31702\fP from rallytime/merge\-2015.8
  242931. .IP \(bu 2
  242932. 6559ea15b0 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  242933. .IP \(bu 2
  242934. d7914cdb14 Merge pull request \fI\%#31687\fP from cachedout/rm_gpg_test
  242935. .INDENT 2.0
  242936. .IP \(bu 2
  242937. 8b00513ebb Removed useless tests
  242938. .UNINDENT
  242939. .IP \(bu 2
  242940. bd4d12a155 Merge pull request \fI\%#31660\fP from terminalmage/issue31619
  242941. .INDENT 2.0
  242942. .IP \(bu 2
  242943. da954d7b92 Add integration test for packages with epoch in version
  242944. .IP \(bu 2
  242945. 4fa7e4defe Move epoch removal
  242946. .IP \(bu 2
  242947. 290192af56 Remove epoch from version string if present when installing with yum
  242948. .UNINDENT
  242949. .IP \(bu 2
  242950. e33c1f456a Merge pull request \fI\%#31683\fP from rallytime/bp\-31578
  242951. .INDENT 2.0
  242952. .IP \(bu 2
  242953. 8fe46789b7 allow queueing of state runs through saltmod
  242954. .UNINDENT
  242955. .IP \(bu 2
  242956. 27f443895d Merge pull request \fI\%#31682\fP from cachedout/cache_meaning
  242957. .INDENT 2.0
  242958. .IP \(bu 2
  242959. a75e146125 Add definition of job cache to glossary
  242960. .UNINDENT
  242961. .IP \(bu 2
  242962. bd04c964d1 Merge pull request \fI\%#31658\fP from rallytime/add\-style\-to\-contrib
  242963. .INDENT 2.0
  242964. .IP \(bu 2
  242965. 6b526b5878 Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  242966. .UNINDENT
  242967. .IP \(bu 2
  242968. 10658dffe6 Merge pull request \fI\%#31655\fP from rallytime/pylint\-docs
  242969. .INDENT 2.0
  242970. .IP \(bu 2
  242971. 6e0377d376 Make note of pylint dependencies in docs
  242972. .UNINDENT
  242973. .IP \(bu 2
  242974. 6075774a01 Merge pull request \fI\%#31440\fP from cachedout/master_tops_type
  242975. .INDENT 2.0
  242976. .IP \(bu 2
  242977. f49cc75049 Set correct type for master_tops config value
  242978. .UNINDENT
  242979. .UNINDENT
  242980. .IP \(bu 2
  242981. \fBPR\fP \fI\%#31700\fP: (\fI\%s0undt3ch\fP) It\(aqs a function!
  242982. @ \fI2016\-03\-06 17:33:58 UTC\fP
  242983. .INDENT 2.0
  242984. .IP \(bu 2
  242985. ace290629e Merge pull request \fI\%#31700\fP from s0undt3ch/2015.8
  242986. .IP \(bu 2
  242987. 1ca2beea3e It\(aqs a function!
  242988. .UNINDENT
  242989. .IP \(bu 2
  242990. \fBPR\fP \fI\%#31679\fP: (\fI\%cro\fP) Fix bad link to the sample REST endpoint in salt\-contrib.
  242991. @ \fI2016\-03\-04 21:05:50 UTC\fP
  242992. .INDENT 2.0
  242993. .IP \(bu 2
  242994. cf438aa873 Merge pull request \fI\%#31679\fP from cro/proxy_contrib_doc_fix
  242995. .IP \(bu 2
  242996. d638971b73 Correct url to salt\-contrib
  242997. .UNINDENT
  242998. .IP \(bu 2
  242999. \fBISSUE\fP \fI\%#21932\fP: (\fI\%clinta\fP) Salt Coding Style docs should list requirements for salt pylintrc (refs: \fI\%#31655\fP)
  243000. .IP \(bu 2
  243001. \fBPR\fP \fI\%#31668\fP: (\fI\%rallytime\fP) Some more testing documentation improvements
  243002. @ \fI2016\-03\-04 20:48:57 UTC\fP
  243003. .INDENT 2.0
  243004. .IP \(bu 2
  243005. \fBPR\fP \fI\%#31658\fP: (\fI\%rallytime\fP) Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs (refs: \fI\%#31668\fP)
  243006. .IP \(bu 2
  243007. \fBPR\fP \fI\%#31655\fP: (\fI\%rallytime\fP) Make note of pylint dependencies in docs (refs: \fI\%#31668\fP)
  243008. .IP \(bu 2
  243009. \fBPR\fP \fI\%#31641\fP: (\fI\%rallytime\fP) Improve Salt Testing tutorial to be a more comprehensive intro (refs: \fI\%#31668\fP)
  243010. .IP \(bu 2
  243011. 97127a8b83 Merge pull request \fI\%#31668\fP from rallytime/testing\-docs
  243012. .IP \(bu 2
  243013. beb9d0fe84 Ensure all integration test classes and funcs are documented w/examples
  243014. .IP \(bu 2
  243015. 7f8ebf7c97 Found another spelling error
  243016. .IP \(bu 2
  243017. c8c188535f Spelling fix
  243018. .IP \(bu 2
  243019. f260c51762 Some more testing documentation improvements
  243020. .UNINDENT
  243021. .IP \(bu 2
  243022. \fBISSUE\fP \fI\%#29753\fP: (\fI\%jakehilton\fP) New minion fails to authenticate properly to multi\-master setup (refs: \fI\%#31653\fP)
  243023. .IP \(bu 2
  243024. \fBPR\fP \fI\%#31653\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt attempt to verify token if it wasn\(aqt sent to master.
  243025. @ \fI2016\-03\-03 17:39:35 UTC\fP
  243026. .INDENT 2.0
  243027. .IP \(bu 2
  243028. 2ed7286af1 Merge pull request \fI\%#31653\fP from DSRCompany/issues/29753_multimaster_auth_fail
  243029. .IP \(bu 2
  243030. 2557707cc7 Don\(aqt attempt to verify token if it wasn\(aqt sent to master.
  243031. .UNINDENT
  243032. .IP \(bu 2
  243033. \fBISSUE\fP \fI\%#31617\fP: (\fI\%tampakrap\fP) service.running fails on sle11 sp3 and sp4 (refs: \fI\%#31629\fP, \fI\%#31793\fP)
  243034. .IP \(bu 2
  243035. \fBPR\fP \fI\%#31629\fP: (\fI\%darix\fP) Fix services on sles
  243036. @ \fI2016\-03\-03 16:41:27 UTC\fP
  243037. .INDENT 2.0
  243038. .IP \(bu 2
  243039. 118fcde425 Merge pull request \fI\%#31629\fP from darix/fix\-services\-on\-sles
  243040. .IP \(bu 2
  243041. 9b8d6cbb72 make the suse check consistent with rh_service.py
  243042. .IP \(bu 2
  243043. c0c8a77242 Fix numerical check of osrelease
  243044. .UNINDENT
  243045. .IP \(bu 2
  243046. \fBPR\fP \fI\%#31641\fP: (\fI\%rallytime\fP) Improve Salt Testing tutorial to be a more comprehensive intro (refs: \fI\%#31668\fP)
  243047. @ \fI2016\-03\-03 16:08:47 UTC\fP
  243048. .INDENT 2.0
  243049. .IP \(bu 2
  243050. 4d1701de60 Merge pull request \fI\%#31641\fP from rallytime/testing\-tutorial
  243051. .IP \(bu 2
  243052. 6ab3961748 Improve Salt Testing tutorial to be a more comprehensive intro
  243053. .UNINDENT
  243054. .IP \(bu 2
  243055. \fBISSUE\fP \fI\%#30651\fP: (\fI\%sjorge\fP) salt.states.grains.list_present should not show changes if none are made! (refs: \fI\%#31651\fP, \fI\%#30689\fP)
  243056. .IP \(bu 2
  243057. \fBPR\fP \fI\%#31651\fP: (\fI\%dr4Ke\fP) test case: test_list_present_nested_already
  243058. @ \fI2016\-03\-03 16:02:55 UTC\fP
  243059. .INDENT 2.0
  243060. .IP \(bu 2
  243061. \fBPR\fP \fI\%#30689\fP: (\fI\%sjorge\fP) fix for \fI\%#30651\fP grains.list_present and grains.list_absent (refs: \fI\%#31651\fP, \fI\%#31271\fP)
  243062. .IP \(bu 2
  243063. 584f8401b8 Merge pull request \fI\%#31651\fP from dr4Ke/test_case_for_30689
  243064. .IP \(bu 2
  243065. fc9dd356e8 test case: test_list_present_nested_already
  243066. .UNINDENT
  243067. .IP \(bu 2
  243068. \fBPR\fP \fI\%#31643\fP: (\fI\%opdude\fP) Make sure we are really updating the mercurial repository
  243069. @ \fI2016\-03\-03 14:30:53 UTC\fP
  243070. .INDENT 2.0
  243071. .IP \(bu 2
  243072. 5566f1f2a7 Merge pull request \fI\%#31643\fP from Unity\-Technologies/hotfix/hg\-fix\-repo\-updated
  243073. .IP \(bu 2
  243074. ca41c4b8c1 Make sure we are really updating the mercurial repository
  243075. .UNINDENT
  243076. .IP \(bu 2
  243077. \fBISSUE\fP \fI\%#30761\fP: (\fI\%sjmh\fP) Cannot target subsets of minions when using pillar and external_auth (refs: \fI\%#31598\fP)
  243078. .IP \(bu 2
  243079. \fBPR\fP \fI\%#31598\fP: (\fI\%terminalmage\fP) Remove limitations on validation types for eauth targets
  243080. @ \fI2016\-03\-02 22:14:41 UTC\fP
  243081. .INDENT 2.0
  243082. .IP \(bu 2
  243083. 36c790eede Merge pull request \fI\%#31598\fP from terminalmage/issue30761
  243084. .IP \(bu 2
  243085. 5dedaa2d9d Remove limitations on validation types for eauth targets
  243086. .UNINDENT
  243087. .IP \(bu 2
  243088. \fBPR\fP \fI\%#31627\fP: (\fI\%jakehilton\fP) Handling error from using gevent 1.1.
  243089. @ \fI2016\-03\-02 22:01:22 UTC\fP
  243090. .INDENT 2.0
  243091. .IP \(bu 2
  243092. cc4c31cf7f Merge pull request \fI\%#31627\fP from jakehilton/2015.8
  243093. .IP \(bu 2
  243094. 02fb5ed616 Handling error from using gevent 1.1.
  243095. .UNINDENT
  243096. .IP \(bu 2
  243097. \fBPR\fP \fI\%#31630\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243098. @ \fI2016\-03\-02 20:49:52 UTC\fP
  243099. .INDENT 2.0
  243100. .IP \(bu 2
  243101. 191241e71a Merge pull request \fI\%#31630\fP from rallytime/merge\-2015.8
  243102. .IP \(bu 2
  243103. 75bb692990 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243104. .IP \(bu 2
  243105. 6d31b8918f Merge pull request \fI\%#31622\fP from jfindlay/query_doc
  243106. .INDENT 2.0
  243107. .IP \(bu 2
  243108. 4e48fec806 doc/topics/tutorials/http: update query decoding docs
  243109. .UNINDENT
  243110. .IP \(bu 2
  243111. dbf6e0786c Merge pull request \fI\%#31558\fP from cachedout/ensure_ssh_installed
  243112. .INDENT 2.0
  243113. .IP \(bu 2
  243114. cecc6e0a5f Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  243115. .UNINDENT
  243116. .UNINDENT
  243117. .IP \(bu 2
  243118. \fBPR\fP \fI\%#31594\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31589\fP to 2015.8
  243119. @ \fI2016\-03\-02 16:33:24 UTC\fP
  243120. .INDENT 2.0
  243121. .IP \(bu 2
  243122. \fBPR\fP \fI\%#31589\fP: (\fI\%techhat\fP) Ensure that the latest node data is returned (refs: \fI\%#31594\fP)
  243123. .IP \(bu 2
  243124. 38ddd62aef Merge pull request \fI\%#31594\fP from rallytime/bp\-31589
  243125. .IP \(bu 2
  243126. 6cd89459c7 Ensure that the latest node data is returned
  243127. .UNINDENT
  243128. .IP \(bu 2
  243129. \fBISSUE\fP \fI\%#31596\fP: (\fI\%joejulian\fP) gluster \-\-xml does not always produce xml with legacy versions (refs: \fI\%#31604\fP)
  243130. .IP \(bu 2
  243131. \fBPR\fP \fI\%#31604\fP: (\fI\%joejulian\fP) Workaround for non\-xml output from gluster cli when not tty
  243132. @ \fI2016\-03\-02 15:53:44 UTC\fP
  243133. .INDENT 2.0
  243134. .IP \(bu 2
  243135. 86a0fc46b4 Merge pull request \fI\%#31604\fP from joejulian/2015.8_31596_workaround_no_xml_when_not_tty
  243136. .IP \(bu 2
  243137. c567a823a9 Workaround for non\-xml output from gluster cli when not tty
  243138. .UNINDENT
  243139. .IP \(bu 2
  243140. \fBPR\fP \fI\%#31583\fP: (\fI\%vutny\fP) Remove trailing white spaces
  243141. @ \fI2016\-03\-02 15:38:01 UTC\fP
  243142. .INDENT 2.0
  243143. .IP \(bu 2
  243144. 36ce240596 Merge pull request \fI\%#31583\fP from vutny/remove\-trailing\-white\-spaces
  243145. .IP \(bu 2
  243146. bbcad93a8d Fix trailing white spaces in Salt PRM spec file
  243147. .IP \(bu 2
  243148. 86433f2378 Revert changes in files used by \fIroots_test.py\fP integration test
  243149. .IP \(bu 2
  243150. e7a8dbf498 Remove trailing white spaces in tests files
  243151. .IP \(bu 2
  243152. 776b2ea9a6 Remove trailing white spaces in files under \fIsalt/\fP dir
  243153. .IP \(bu 2
  243154. fbfc3abccf Remove trailing white spaces in files under \fIpkg/\fP dir
  243155. .IP \(bu 2
  243156. aebc48163d Remove trailing white spaces in documentation files
  243157. .IP \(bu 2
  243158. 7eaf778695 Remove trailing white spaces in conf dir file
  243159. .UNINDENT
  243160. .IP \(bu 2
  243161. \fBPR\fP \fI\%#31592\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31546\fP to 2015.8
  243162. @ \fI2016\-03\-01 23:51:02 UTC\fP
  243163. .INDENT 2.0
  243164. .IP \(bu 2
  243165. \fBPR\fP \fI\%#31546\fP: (\fI\%terminalmage\fP) Rework of PR \fI\%#31529\fP (refs: \fI\%#31592\fP)
  243166. .IP \(bu 2
  243167. \fBPR\fP \fI\%#31529\fP: (\fI\%llua\fP) nspawn.py: Fix bad keyword assignment (refs: \fI\%#31546\fP)
  243168. .IP \(bu 2
  243169. c9fe8d87f3 Merge pull request \fI\%#31592\fP from rallytime/bp\-31546
  243170. .IP \(bu 2
  243171. 9a296bd1bf Use clean_kwargs and invalid_kwargs utils funcs to handle invalid kwargs
  243172. .IP \(bu 2
  243173. 43099a2b63 nspawn.py: Fix bad keyword assignment
  243174. .UNINDENT
  243175. .IP \(bu 2
  243176. \fBISSUE\fP \fI\%#30866\fP: (\fI\%kevinquinnyo\fP) WheelClient cmd returns None but wheel functions called directly work (refs: \fI\%#31570\fP)
  243177. .IP \(bu 2
  243178. \fBISSUE\fP \fI\%#26415\fP: (\fI\%CaesarC\fP) salt.wheel.WheelClient doesn\(aqt work follow the python api(AttributeError: \(aqNoneType\(aq object has no attribute \(aqget\(aq) (refs: \fI\%#28087\fP)
  243179. .IP \(bu 2
  243180. \fBPR\fP \fI\%#31593\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31570\fP to 2015.8
  243181. @ \fI2016\-03\-01 23:50:05 UTC\fP
  243182. .INDENT 2.0
  243183. .IP \(bu 2
  243184. \fBPR\fP \fI\%#31570\fP: (\fI\%cro\fP) Need to return the value (refs: \fI\%#31593\fP)
  243185. .IP \(bu 2
  243186. \fBPR\fP \fI\%#28087\fP: (\fI\%DmitryKuzmenko\fP) Revert "Update __init__.py" (refs: \fI\%#31570\fP)
  243187. .IP \(bu 2
  243188. c8dbc93ac6 Merge pull request \fI\%#31593\fP from rallytime/bp\-31570
  243189. .IP \(bu 2
  243190. b2294d0a28 Need to return the value
  243191. .UNINDENT
  243192. .IP \(bu 2
  243193. \fBISSUE\fP \fI\%#28585\fP: (\fI\%robthralls\fP) FIPS compliance (2015.8.1\-1) (refs: \fI\%#31567\fP)
  243194. .IP \(bu 2
  243195. \fBPR\fP \fI\%#31567\fP: (\fI\%cachedout\fP) Restore FIPS compliance when using master_finger
  243196. @ \fI2016\-03\-01 19:50:03 UTC\fP
  243197. .INDENT 2.0
  243198. .IP \(bu 2
  243199. 068807558a Merge pull request \fI\%#31567\fP from cachedout/issue_28585
  243200. .IP \(bu 2
  243201. 7006a1eecf Fix failed unit test
  243202. .IP \(bu 2
  243203. 10cd328dda Lint
  243204. .IP \(bu 2
  243205. 174337d020 Restore FIPS compliance when using master_finger
  243206. .UNINDENT
  243207. .IP \(bu 2
  243208. \fBPR\fP \fI\%#31568\fP: (\fI\%twangboy\fP) Grant permissions using SID instead of name
  243209. @ \fI2016\-03\-01 04:22:53 UTC\fP
  243210. .INDENT 2.0
  243211. .IP \(bu 2
  243212. 77d9aae8bb Merge pull request \fI\%#31568\fP from twangboy/fix_perms
  243213. .IP \(bu 2
  243214. 1f6a95694d Grant permissions using SID instead of name
  243215. .UNINDENT
  243216. .IP \(bu 2
  243217. \fBISSUE\fP \fI\%#31516\fP: (\fI\%justinta\fP) beacons.enable_beacon does not write to beacons.conf on some OS\(aqs (refs: \fI\%#31561\fP)
  243218. .IP \(bu 2
  243219. \fBPR\fP \fI\%#31561\fP: (\fI\%justinta\fP) Skipped test
  243220. @ \fI2016\-03\-01 04:11:22 UTC\fP
  243221. .INDENT 2.0
  243222. .IP \(bu 2
  243223. ada5ab344d Merge pull request \fI\%#31561\fP from jtand/beacons_test_fix
  243224. .IP \(bu 2
  243225. 196dd4db99 Skipped test
  243226. .UNINDENT
  243227. .IP \(bu 2
  243228. \fBISSUE\fP \fI\%#31041\fP: (\fI\%fredrikaverpil\fP) Reading about win_service in 2015.8.5 docs, but it\(aqs not available in 2015.8.5 (refs: \fI\%#31550\fP, \fI\%#31049\fP)
  243229. .IP \(bu 2
  243230. \fBPR\fP \fI\%#31550\fP: (\fI\%rallytime\fP) Correct versionadded tag for win_service.config
  243231. @ \fI2016\-02\-29 21:11:24 UTC\fP
  243232. .INDENT 2.0
  243233. .IP \(bu 2
  243234. \fBPR\fP \fI\%#31049\fP: (\fI\%twangboy\fP) Fix versionadded in win_service.config (refs: \fI\%#31550\fP)
  243235. .IP \(bu 2
  243236. 658c1865ab Merge pull request \fI\%#31550\fP from rallytime/win_service\-docs
  243237. .IP \(bu 2
  243238. 51aa26334c Correct versionadded tag for win_service.config
  243239. .UNINDENT
  243240. .IP \(bu 2
  243241. \fBPR\fP \fI\%#31549\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243242. @ \fI2016\-02\-29 18:46:35 UTC\fP
  243243. .INDENT 2.0
  243244. .IP \(bu 2
  243245. 9bb9a54f8d Merge pull request \fI\%#31549\fP from rallytime/merge\-2015.8
  243246. .IP \(bu 2
  243247. b683df9b82 Pylint fix
  243248. .IP \(bu 2
  243249. 24505d2dcf Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243250. .INDENT 2.0
  243251. .IP \(bu 2
  243252. 060a60fd90 Merge pull request \fI\%#31521\fP from terminalmage/issue24753
  243253. .INDENT 2.0
  243254. .IP \(bu 2
  243255. 0d352bbc16 Add fileclient tests
  243256. .IP \(bu 2
  243257. d9370a8041 Update cp module salt\-ssh wrapper to use new cachedir param
  243258. .IP \(bu 2
  243259. 0320494b1d Update the SSH state module wrappers to pass an alternate cachedir
  243260. .IP \(bu 2
  243261. 65bdcb3afa Accept and pass through the alternate cachedir when prepping the thin tar
  243262. .IP \(bu 2
  243263. c3f7a2f2e5 Add ability to specify an alternate base dir for file caching
  243264. .UNINDENT
  243265. .IP \(bu 2
  243266. 92f8f89218 Merge pull request \fI\%#31497\fP from rallytime/remove\-timeout\-dup
  243267. .INDENT 2.0
  243268. .IP \(bu 2
  243269. 83e6480d20 Remove duplicate "timeout" definition in Roster docs
  243270. .UNINDENT
  243271. .IP \(bu 2
  243272. da001bcb49 Merge pull request \fI\%#31472\fP from rallytime/update\-contributing\-docs
  243273. .INDENT 2.0
  243274. .IP \(bu 2
  243275. 5871e4d1e0 Update contributing docs
  243276. .UNINDENT
  243277. .IP \(bu 2
  243278. f35e2dd1d3 Merge pull request \fI\%#31461\fP from DSRCompany/issues/30183_fix_multimaster_failover_2015.5
  243279. .INDENT 2.0
  243280. .IP \(bu 2
  243281. 3d09c3b7a3 Set auth retry count to 0 if multimaster mode is failover.
  243282. .UNINDENT
  243283. .UNINDENT
  243284. .UNINDENT
  243285. .IP \(bu 2
  243286. \fBISSUE\fP \fI\%#29701\fP: (\fI\%tonyyang132\fP) Running salt\-call on salt master would crash the master node with code level 2015.8.3 (refs: \fI\%#31544\fP)
  243287. .IP \(bu 2
  243288. \fBISSUE\fP \fI\%#27063\fP: (\fI\%lorengordon\fP) 2015.8.0: Error writing to \fI/var/log/salt/minion\fP? (refs: \fI\%#31544\fP)
  243289. .IP \(bu 2
  243290. \fBPR\fP \fI\%#31544\fP: (\fI\%DmitryKuzmenko\fP) Protect getattr from recursion
  243291. @ \fI2016\-02\-29 17:48:15 UTC\fP
  243292. .INDENT 2.0
  243293. .IP \(bu 2
  243294. 5a6aff1791 Merge pull request \fI\%#31544\fP from DSRCompany/issues/29701_getattr_recursion_protection
  243295. .IP \(bu 2
  243296. b7a45b8fae Protect getattr from recursion
  243297. .UNINDENT
  243298. .IP \(bu 2
  243299. \fBISSUE\fP \fI\%#30643\fP: (\fI\%Ch3LL\fP) multi\-master failover stack trace when minion fails over to other master (refs: \fI\%#31512\fP, \fI\%#31525\fP)
  243300. .IP \(bu 2
  243301. \fBISSUE\fP \fI\%#30181\fP: (\fI\%jakehilton\fP) Minion failover only works once (refs: \fI\%#31512\fP)
  243302. .IP \(bu 2
  243303. \fBISSUE\fP \fI\%#29567\fP: (\fI\%freebsdly\fP) multi master failover successful but execute command ‘salt * test.ping’ on second master return ‘Minion did not return. [No response]’ (refs: \fI\%#31512\fP)
  243304. .IP \(bu 2
  243305. \fBPR\fP \fI\%#31525\fP: (\fI\%DmitryKuzmenko\fP) Issues/30643 merge forward fixes
  243306. @ \fI2016\-02\-29 16:08:47 UTC\fP
  243307. .INDENT 2.0
  243308. .IP \(bu 2
  243309. \fBPR\fP \fI\%#31512\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt fork in try with critical finally logic. (refs: \fI\%#31525\fP)
  243310. .IP \(bu 2
  243311. \fBPR\fP \fI\%#30796\fP: (\fI\%skizunov\fP) Fix minion failover after disconnect (refs: \fI\%#31512\fP, \fI\%#31525\fP)
  243312. .IP \(bu 2
  243313. d5a4daa17b Merge pull request \fI\%#31525\fP from DSRCompany/issues/30643_merge_forward_fixes
  243314. .IP \(bu 2
  243315. a50b33d96a Don\(aqt fork in try with critical finally logic.
  243316. .IP \(bu 2
  243317. 877bc25381 Fix minion failover after disconnect
  243318. .UNINDENT
  243319. .IP \(bu 2
  243320. \fBISSUE\fP \fI\%#24955\fP: (\fI\%damonnk\fP) Minion fails to start after bootstrap on Raspberry PI (refs: \fI\%#31536\fP)
  243321. .IP \(bu 2
  243322. \fBPR\fP \fI\%#31536\fP: (\fI\%virtualguy\fP) Remove debian repo from raspbian installation
  243323. @ \fI2016\-02\-29 15:32:52 UTC\fP
  243324. .INDENT 2.0
  243325. .IP \(bu 2
  243326. 95af21325f Merge pull request \fI\%#31536\fP from virtrnd/remove\-jessie\-backports\-from\-raspbian\-install
  243327. .IP \(bu 2
  243328. e48900ac55 Use python\-tornado from jessie\-backports for pure debian
  243329. .IP \(bu 2
  243330. 6e338e2601 Remove debian repo from raspbian installation
  243331. .UNINDENT
  243332. .IP \(bu 2
  243333. \fBISSUE\fP \fI\%#31193\fP: (\fI\%gwaters\fP) RHEL7 gpg key problem (refs: \fI\%#31528\fP)
  243334. .IP \(bu 2
  243335. \fBPR\fP \fI\%#31528\fP: (\fI\%vutny\fP) Correct Salt Cloud documentation about updating Salt Bootstrap script
  243336. @ \fI2016\-02\-29 15:30:59 UTC\fP
  243337. .INDENT 2.0
  243338. .IP \(bu 2
  243339. 5965319600 Merge pull request \fI\%#31528\fP from vutny/cloud\-bootstrap\-doc
  243340. .IP \(bu 2
  243341. f7beeb69f2 Correct Salt Cloud documentation about updating Salt Bootstrap script
  243342. .UNINDENT
  243343. .IP \(bu 2
  243344. \fBISSUE\fP \fI\%#31365\fP: (\fI\%cwicklein\fP) osrelease_info broken for CentOS 7 (refs: \fI\%#31539\fP)
  243345. .IP \(bu 2
  243346. \fBPR\fP \fI\%#31539\fP: (\fI\%DmitryKuzmenko\fP) Added temporary workaround for CentOS 7 os\-release id bug.
  243347. @ \fI2016\-02\-29 15:30:34 UTC\fP
  243348. .INDENT 2.0
  243349. .IP \(bu 2
  243350. 96c0926298 Merge pull request \fI\%#31539\fP from DSRCompany/issues/31365_centos7_osrelease_fix
  243351. .IP \(bu 2
  243352. a3b806d126 Added temporary workaround for CentOS 7 os\-release id bug.
  243353. .UNINDENT
  243354. .IP \(bu 2
  243355. \fBPR\fP \fI\%#31508\fP: (\fI\%mcalmer\fP) Zypper correct exit code checking
  243356. @ \fI2016\-02\-26 15:21:23 UTC\fP
  243357. .INDENT 2.0
  243358. .IP \(bu 2
  243359. 95db870325 Merge pull request \fI\%#31508\fP from mcalmer/zypper\-correct\-exit\-code\-checking
  243360. .IP \(bu 2
  243361. 66e8f6aa37 restructure the code a bit
  243362. .IP \(bu 2
  243363. f5c125de19 remove new lines between zypper command and check result
  243364. .IP \(bu 2
  243365. 1425c6496c use specialized assert functions for tests
  243366. .IP \(bu 2
  243367. f266cfdaac test _zypper_check_result()
  243368. .IP \(bu 2
  243369. aff6467782 adapt tests to new zypper_check_result() output
  243370. .IP \(bu 2
  243371. edad780cdf use _zypper_check_result()
  243372. .IP \(bu 2
  243373. 7c5d5a2b7a add _zypper_check_result() to raise and error or return stdout
  243374. .IP \(bu 2
  243375. a6785ef7a9 check zypper exit code everywhere
  243376. .IP \(bu 2
  243377. 935b0510c9 add function to check zypper exit codes
  243378. .UNINDENT
  243379. .IP \(bu 2
  243380. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#695\fP: (\fI\%mtippett\fP) Install Failures With Raspbian Jessie (refs: \fI\%#31510\fP, \fI\%#31477\fP, \fI\%#31458\fP)
  243381. .IP \(bu 2
  243382. \fBPR\fP \fI\%#31510\fP: (\fI\%vutny\fP) Add installation guide for Raspbian (Debian on Raspberry Pi)
  243383. @ \fI2016\-02\-26 15:06:57 UTC\fP
  243384. .INDENT 2.0
  243385. .IP \(bu 2
  243386. e51126179c Merge pull request \fI\%#31510\fP from vutny/debian\-raspbian\-install\-guide
  243387. .IP \(bu 2
  243388. 50f3e072b1 Add instruction how to install salt\-minion on Debian Jessie from Stretch
  243389. .IP \(bu 2
  243390. abcd505178 Update Debian installation guide with information about Raspbian
  243391. .UNINDENT
  243392. .IP \(bu 2
  243393. \fBPR\fP \fI\%#31498\fP: (\fI\%Ch3LL\fP) rename methods in pkg states test
  243394. @ \fI2016\-02\-25 23:29:51 UTC\fP
  243395. .INDENT 2.0
  243396. .IP \(bu 2
  243397. 9d458bb420 Merge pull request \fI\%#31498\fP from Ch3LL/rename_test
  243398. .IP \(bu 2
  243399. 29a53f4353 rename methods in pkg states test
  243400. .UNINDENT
  243401. .IP \(bu 2
  243402. \fBISSUE\fP \fI\%#31427\fP: (\fI\%githubcdr\fP) salt.states.grains.list_present adds duplicates names (refs: \fI\%#31471\fP)
  243403. .IP \(bu 2
  243404. \fBPR\fP \fI\%#31471\fP: (\fI\%cachedout\fP) Correct issue where duplicate items in grains list during state run will result in duplicate grains
  243405. @ \fI2016\-02\-25 20:15:20 UTC\fP
  243406. .INDENT 2.0
  243407. .IP \(bu 2
  243408. 625da0d261 Merge pull request \fI\%#31471\fP from cachedout/issue_31427
  243409. .IP \(bu 2
  243410. 74c3053c91 Remove debugging
  243411. .IP \(bu 2
  243412. 30eb5fccf7 Additional tests, but disable the test for distinct lists, because of a problem with context in test suite
  243413. .IP \(bu 2
  243414. 3d2aec05e5 Check for duplicate grains during list insertion
  243415. .UNINDENT
  243416. .IP \(bu 2
  243417. \fBISSUE\fP \fI\%#29727\fP: (\fI\%oeuftete\fP) dockerng.running does not pull image as documented (refs: \fI\%#31352\fP, \fI\%#31455\fP)
  243418. .IP \(bu 2
  243419. \fBPR\fP \fI\%#31455\fP: (\fI\%ticosax\fP) [dockerng] Disable notset check
  243420. @ \fI2016\-02\-25 19:15:09 UTC\fP
  243421. .INDENT 2.0
  243422. .IP \(bu 2
  243423. e85ae2341a Merge pull request \fI\%#31455\fP from ticosax/diable\-NOTSET\-check
  243424. .IP \(bu 2
  243425. e072937243 dockerd returns sometimes \fINone\fP or \fI[]\fP for ports.
  243426. .IP \(bu 2
  243427. 5630401889 _api_mismatch was a good idea
  243428. .UNINDENT
  243429. .IP \(bu 2
  243430. \fBPR\fP \fI\%#31488\fP: (\fI\%isbm\fP) Unit Test for Zypper\(aqs "remove" and "purge"
  243431. @ \fI2016\-02\-25 17:52:33 UTC\fP
  243432. .INDENT 2.0
  243433. .IP \(bu 2
  243434. e68a0947b7 Merge pull request \fI\%#31488\fP from isbm/isbm\-zypper\-ut\-removepurge
  243435. .IP \(bu 2
  243436. d30f2e4627 Implement unit test for remove and purge
  243437. .IP \(bu 2
  243438. 4caf201052 Refactor code (a bit)
  243439. .IP \(bu 2
  243440. df89da4d15 Fix the docstring
  243441. .UNINDENT
  243442. .IP \(bu 2
  243443. \fBPR\fP \fI\%#31485\fP: (\fI\%jacobhammons\fP) Fixed transport description in minion / master config
  243444. @ \fI2016\-02\-25 17:04:15 UTC\fP
  243445. .INDENT 2.0
  243446. .IP \(bu 2
  243447. cd87760c87 Merge pull request \fI\%#31485\fP from jacobhammons/2015.8
  243448. .IP \(bu 2
  243449. 748acab8b5 Fixed zeromq casing in transport settings
  243450. .IP \(bu 2
  243451. 765a226907 Fixed transport description in minion / master config
  243452. .UNINDENT
  243453. .IP \(bu 2
  243454. \fBPR\fP \fI\%#31411\fP: (\fI\%justinta\fP) Added some beacons execution module integration tests
  243455. @ \fI2016\-02\-25 16:16:26 UTC\fP
  243456. .INDENT 2.0
  243457. .IP \(bu 2
  243458. fb1ef92e2b Merge pull request \fI\%#31411\fP from jtand/beacons_tests
  243459. .IP \(bu 2
  243460. 7d32b56015 Added some more checks to verify beacon changes were actually happening
  243461. .IP \(bu 2
  243462. 2da5285c03 Added codeauthor
  243463. .IP \(bu 2
  243464. fd1e2838ea Lint
  243465. .IP \(bu 2
  243466. 421a112914 Added config_dir to test minion config
  243467. .IP \(bu 2
  243468. bf6a4c0983 Fixed lint error
  243469. .IP \(bu 2
  243470. 3566fbbcca More updates to beacons test
  243471. .IP \(bu 2
  243472. 37c4bf22d2 Updated beacons integration test
  243473. .IP \(bu 2
  243474. 6db628be1a Basic integration tests for beacons execution module
  243475. .IP \(bu 2
  243476. 3b238c2e68 Started adding beacons execution module tests
  243477. .UNINDENT
  243478. .IP \(bu 2
  243479. \fBISSUE\fP \fI\%#31216\fP: (\fI\%oliver\-dungey\fP) pkg.installed documentation not consistent with implementation (refs: \fI\%#31475\fP)
  243480. .IP \(bu 2
  243481. \fBISSUE\fP \fI\%#30464\fP: (\fI\%sjmh\fP) pillar_env minion config option needs to be documented (refs: \fI\%#31475\fP)
  243482. .IP \(bu 2
  243483. \fBISSUE\fP \fI\%#30261\fP: (\fI\%MadsRC\fP) Add ability to define custom beacons (refs: \fI\%#31475\fP)
  243484. .IP \(bu 2
  243485. \fBISSUE\fP \fI\%#29636\fP: (\fI\%ronnix\fP) Documentation for the refresh_password arg in postgres_user.present is confusing (refs: \fI\%#31475\fP)
  243486. .IP \(bu 2
  243487. \fBISSUE\fP \fI\%#29528\fP: (\fI\%apergos\fP) nitpick for "Using Salt at scale" tutorial (refs: \fI\%#31475\fP)
  243488. .IP \(bu 2
  243489. \fBISSUE\fP \fI\%#29520\fP: (\fI\%arthurlogilab\fP) [doc] transport option not in default master configuration nor in the example file of the documentation (refs: \fI\%#31475\fP)
  243490. .IP \(bu 2
  243491. \fBISSUE\fP \fI\%#10330\fP: (\fI\%jhenry82\fP) exclude keyword not working (refs: \fI\%#31475\fP)
  243492. .IP \(bu 2
  243493. \fBPR\fP \fI\%#31475\fP: (\fI\%jacobhammons\fP) Assorted doc issues
  243494. @ \fI2016\-02\-25 16:03:54 UTC\fP
  243495. .INDENT 2.0
  243496. .IP \(bu 2
  243497. 2e9a705e75 Merge pull request \fI\%#31475\fP from jacobhammons/2015.8
  243498. .IP \(bu 2
  243499. a72dc15720 Assorted doc issues Fixes \fI\%#10330\fP Fixes \fI\%#31216\fP Fixes \fI\%#30464\fP Fixes \fI\%#29520\fP Fixes \fI\%#30261\fP Fixes \fI\%#29636\fP Fixes \fI\%#29528\fP
  243500. .UNINDENT
  243501. .IP \(bu 2
  243502. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#695\fP: (\fI\%mtippett\fP) Install Failures With Raspbian Jessie (refs: \fI\%#31510\fP, \fI\%#31477\fP, \fI\%#31458\fP)
  243503. .IP \(bu 2
  243504. \fBPR\fP \fI\%#31477\fP: (\fI\%vutny\fP) Correct installation documentation for Ubuntu
  243505. @ \fI2016\-02\-25 16:01:38 UTC\fP
  243506. .INDENT 2.0
  243507. .IP \(bu 2
  243508. 3905dd81d3 Merge pull request \fI\%#31477\fP from vutny/correct\-doc\-install\-ubuntu
  243509. .IP \(bu 2
  243510. 172f34a6ca Correct headers in Debian/Ubuntu/SUSE install instructions
  243511. .IP \(bu 2
  243512. 4248f9ea0a Add common packages installation section to Debian install guide
  243513. .IP \(bu 2
  243514. 8c6e179870 Add note about \fIamd64\fP packages to Ubuntu install guide
  243515. .IP \(bu 2
  243516. afaa24723a Update Ubuntu install guide:
  243517. .UNINDENT
  243518. .IP \(bu 2
  243519. \fBPR\fP \fI\%#31479\fP: (\fI\%isbm\fP) Zypper unit tests & fixes
  243520. @ \fI2016\-02\-25 15:58:15 UTC\fP
  243521. .INDENT 2.0
  243522. .IP \(bu 2
  243523. f027dc0cf8 Merge pull request \fI\%#31479\fP from isbm/isbm\-zypper\-unittest
  243524. .IP \(bu 2
  243525. 9f64333ccb Do not use Zypper purge (reason: too dangerous)
  243526. .IP \(bu 2
  243527. bc05acf7c3 Fix PyLint
  243528. .IP \(bu 2
  243529. c0eab8b549 Add space before "assert" keyword
  243530. .IP \(bu 2
  243531. 6bcb89a8f6 Implement list packages test
  243532. .IP \(bu 2
  243533. 78837d2926 Add mocking data
  243534. .IP \(bu 2
  243535. 0b64b8137f Implement test for version compare, where python fall\-back algorithm is called
  243536. .IP \(bu 2
  243537. 18b30a3274 Implement test for version compare, where RPM algorithm is called
  243538. .IP \(bu 2
  243539. 59eca53441 Adjust test case for the third package in the test static data
  243540. .IP \(bu 2
  243541. 8034cf0b91 Add third test package static info
  243542. .IP \(bu 2
  243543. 90f209569a Implement test for the upgrade_available
  243544. .IP \(bu 2
  243545. ad87e719d6 Bugfix: when only one package, no dict is returned. Still upgrade_available should return boolean.
  243546. .IP \(bu 2
  243547. 7eb5f19cb4 Implement test for latest_available
  243548. .IP \(bu 2
  243549. e372c0b596 Implement test for the info_available
  243550. .IP \(bu 2
  243551. 447771c0fc Add Zypper static data for the available packages
  243552. .IP \(bu 2
  243553. 6989871d27 Implement test for info_installed
  243554. .IP \(bu 2
  243555. 0cc6bce4aa Use strings instead of unicode strings
  243556. .IP \(bu 2
  243557. 3342c03987 Implement list upgrades test
  243558. .IP \(bu 2
  243559. 8862d7af65 Add list upgrades Zypper static data
  243560. .IP \(bu 2
  243561. 4d38d318f4 Implement error handling test for listing upgrades
  243562. .IP \(bu 2
  243563. 080b4ee617 Do not strip the output
  243564. .IP \(bu 2
  243565. 53338402a5 Use renamed zypper products data file
  243566. .IP \(bu 2
  243567. c6135975b0 Rename Zypper products static test data file
  243568. .IP \(bu 2
  243569. ab3ff53d89 Reimplement list_upgrades to use XML output from Zypper instead
  243570. .IP \(bu 2
  243571. e87864986d Add Zypper unit test: test_list_products and test_refresh_db
  243572. .IP \(bu 2
  243573. cd6419fc9c Add Zypper Unit Test installed products sample data
  243574. .UNINDENT
  243575. .IP \(bu 2
  243576. \fBISSUE\fP \fI\%#31370\fP: (\fI\%Ch3LL\fP) pkg.info_installed on ubuntu12 does not output info and stack trace (refs: \fI\%#31439\fP)
  243577. .IP \(bu 2
  243578. \fBISSUE\fP \fI\%#31366\fP: (\fI\%Ch3LL\fP) pkg.info_installed on centos5 does not output info (refs: \fI\%#31445\fP)
  243579. .IP \(bu 2
  243580. \fBPR\fP \fI\%#31445\fP: (\fI\%rallytime\fP) Only use LONGSIZE in rpm.info if available. Otherwise, use SIZE.
  243581. @ \fI2016\-02\-24 18:35:31 UTC\fP
  243582. .INDENT 2.0
  243583. .IP \(bu 2
  243584. \fBPR\fP \fI\%#31439\fP: (\fI\%rallytime\fP) Fix lowpkg.info function for Ubuntu 12 \- make sure we have a pkg name (refs: \fI\%#31445\fP)
  243585. .IP \(bu 2
  243586. 987dd89979 Merge pull request \fI\%#31445\fP from rallytime/fix\-31366
  243587. .IP \(bu 2
  243588. 42415a4a7b Make rpm_tags query more concise
  243589. .IP \(bu 2
  243590. 9965fe188a Added to pkg.info_installed test for RedHat and Suse systems
  243591. .IP \(bu 2
  243592. 47cc7c3466 Add error check when retcode is 0, but stderr is present
  243593. .IP \(bu 2
  243594. 294371243d Only use LONGSIZE in rpm.info if available. Otherwise, use SIZE.
  243595. .UNINDENT
  243596. .IP \(bu 2
  243597. \fBPR\fP \fI\%#31464\fP: (\fI\%Ch3LL\fP) integartion test: ensure decorator only runs on one method and not class
  243598. @ \fI2016\-02\-24 18:35:00 UTC\fP
  243599. .INDENT 2.0
  243600. .IP \(bu 2
  243601. 979c8b4faa Merge pull request \fI\%#31464\fP from Ch3LL/fix_int_test
  243602. .IP \(bu 2
  243603. a387d175d8 integartion test\- ensure decorator only runs on one method and not entire class
  243604. .UNINDENT
  243605. .IP \(bu 2
  243606. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#695\fP: (\fI\%mtippett\fP) Install Failures With Raspbian Jessie (refs: \fI\%#31510\fP, \fI\%#31477\fP, \fI\%#31458\fP)
  243607. .IP \(bu 2
  243608. \fBPR\fP \fI\%#31458\fP: (\fI\%vutny\fP) Correct installation documentation for Debian
  243609. @ \fI2016\-02\-24 17:01:09 UTC\fP
  243610. .INDENT 2.0
  243611. .IP \(bu 2
  243612. aa0a9a03dd Merge pull request \fI\%#31458\fP from vutny/correct\-doc\-install\-debian
  243613. .IP \(bu 2
  243614. 42aa7eeafd Add section about installation from the Debian Main Repository
  243615. .IP \(bu 2
  243616. 07dece2f8f Remove duplicate post\-installation section for Debian install guide
  243617. .IP \(bu 2
  243618. 10c05f6943 Add install section for Debian Stretch (Testing) from community repository
  243619. .IP \(bu 2
  243620. b2c78e08dc Add note about supported Debian architectures on SaltStack corp repo
  243621. .UNINDENT
  243622. .IP \(bu 2
  243623. \fBPR\fP \fI\%#31457\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  243624. @ \fI2016\-02\-24 16:42:17 UTC\fP
  243625. .INDENT 2.0
  243626. .IP \(bu 2
  243627. 330c4d8b0f Merge pull request \fI\%#31457\fP from rallytime/merge\-2015.8
  243628. .IP \(bu 2
  243629. 94b3cf08c7 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  243630. .INDENT 2.0
  243631. .IP \(bu 2
  243632. 26733ce988 Merge pull request \fI\%#31442\fP from sastorsl/salt\-modules\-file.py\-copy\-check\-src
  243633. .INDENT 2.0
  243634. .IP \(bu 2
  243635. 0a4132866d removed lint in the exception string
  243636. .IP \(bu 2
  243637. f8b5d498c3 Add os.path.exists(src) to file.py, def copy
  243638. .UNINDENT
  243639. .IP \(bu 2
  243640. e480727d27 Merge pull request \fI\%#31441\fP from cachedout/issue_30739
  243641. .INDENT 2.0
  243642. .IP \(bu 2
  243643. ffcfad1570 Include localhost minions in presence detection for runner
  243644. .UNINDENT
  243645. .IP \(bu 2
  243646. 91ff95f093 Merge pull request \fI\%#31416\fP from carlwgeorge/selinux_doc_fix
  243647. .INDENT 2.0
  243648. .IP \(bu 2
  243649. 0e6846d72e selinux module documentation fix
  243650. .UNINDENT
  243651. .IP \(bu 2
  243652. 7d01979898 Merge pull request \fI\%#31336\fP from terminalmage/config\-validation\-logging
  243653. .INDENT 2.0
  243654. .IP \(bu 2
  243655. 795008bad1 Improve config validation logging
  243656. .UNINDENT
  243657. .IP \(bu 2
  243658. fed096a29d Merge pull request \fI\%#31374\fP from sjorge/solarish_hwaddr
  243659. .INDENT 2.0
  243660. .IP \(bu 2
  243661. bdf2576dfb missed a .format and messed up the join
  243662. .IP \(bu 2
  243663. bbd2fdc96d fix for illumos/solaris hwaddr
  243664. .UNINDENT
  243665. .IP \(bu 2
  243666. 6ee17f905b Merge pull request \fI\%#31339\fP from jacobhammons/dot7prev
  243667. .INDENT 2.0
  243668. .IP \(bu 2
  243669. 07120a8d48 changed latest release to 2015.8.7
  243670. .UNINDENT
  243671. .UNINDENT
  243672. .UNINDENT
  243673. .IP \(bu 2
  243674. \fBISSUE\fP \fI\%#31370\fP: (\fI\%Ch3LL\fP) pkg.info_installed on ubuntu12 does not output info and stack trace (refs: \fI\%#31439\fP)
  243675. .IP \(bu 2
  243676. \fBPR\fP \fI\%#31439\fP: (\fI\%rallytime\fP) Fix lowpkg.info function for Ubuntu 12 \- make sure we have a pkg name (refs: \fI\%#31445\fP)
  243677. @ \fI2016\-02\-24 16:24:46 UTC\fP
  243678. .INDENT 2.0
  243679. .IP \(bu 2
  243680. e553f18dc4 Merge pull request \fI\%#31439\fP from rallytime/fix\-31370
  243681. .IP \(bu 2
  243682. 1931c61563 Only run this pkg.info_installed test on distros that have that func
  243683. .IP \(bu 2
  243684. 0488668a00 Fix lowpkg.info function for Ubuntu 12 \- make sure we have a pkg name
  243685. .UNINDENT
  243686. .IP \(bu 2
  243687. \fBPR\fP \fI\%#31456\fP: (\fI\%RabidCicada\fP) Clarified the form of requisite targets/requisite\-references
  243688. @ \fI2016\-02\-24 16:24:00 UTC\fP
  243689. .INDENT 2.0
  243690. .IP \(bu 2
  243691. fcb12dbe96 Merge pull request \fI\%#31456\fP from RabidCicada/clarify\-requisites\-doc
  243692. .IP \(bu 2
  243693. 87f4843490 Clarified the form of requisite targets/requisite\-references
  243694. .UNINDENT
  243695. .IP \(bu 2
  243696. \fBISSUE\fP \fI\%#30431\fP: (\fI\%nbow\fP) cp.get_url with large files results in an Uncaught Exception (refs: \fI\%#30704\fP)
  243697. .IP \(bu 2
  243698. \fBISSUE\fP \fI\%#27093\fP: (\fI\%TheBigBear\fP) 2015.8.0 winrepo downloader corrupts some installers (refs: \fI\%#30704\fP)
  243699. .IP \(bu 2
  243700. \fBPR\fP \fI\%#31453\fP: (\fI\%DmitryKuzmenko\fP) Backport cp_geturl fix for large files into 2015.8
  243701. @ \fI2016\-02\-24 15:38:24 UTC\fP
  243702. .INDENT 2.0
  243703. .IP \(bu 2
  243704. \fBPR\fP \fI\%#30704\fP: (\fI\%DmitryKuzmenko\fP) Issues/30431 get url large file (refs: \fI\%#31453\fP)
  243705. .IP \(bu 2
  243706. 7dac1db55d Merge pull request \fI\%#31453\fP from DSRCompany/issues/30431_get_url_large_file_2015.8_backbort
  243707. .IP \(bu 2
  243708. 664bdec2b3 Backport cp_geturl fix for large files into 2015.8
  243709. .UNINDENT
  243710. .IP \(bu 2
  243711. \fBPR\fP \fI\%#31444\fP: (\fI\%jacobhammons\fP) Documentation updates \- ddns state, file.line state/exe function, installation dependencies
  243712. @ \fI2016\-02\-23 22:40:05 UTC\fP
  243713. .INDENT 2.0
  243714. .IP \(bu 2
  243715. 8f6c4be618 Merge pull request \fI\%#31444\fP from jacobhammons/ddns\-docs
  243716. .IP \(bu 2
  243717. 0b8fce1de4 Fixes \fI\%#31402\fP Added arguments to state \fIfile.line\fP to fix issue where exe module uses \fIline\fP and state module uses \fIname\fP\&. Reformatted parameters in exe module \fIfile.line\fP placeholder release notes for 2015.5.8
  243718. .IP \(bu 2
  243719. 0b1fdf7e21 Added note clarifying when dnspython is not required
  243720. .UNINDENT
  243721. .IP \(bu 2
  243722. \fBPR\fP \fI\%#31341\fP: (\fI\%twangboy\fP) Clarification on Windows Package Manager docs
  243723. @ \fI2016\-02\-23 16:09:18 UTC\fP
  243724. .INDENT 2.0
  243725. .IP \(bu 2
  243726. 42027e0d72 Merge pull request \fI\%#31341\fP from twangboy/package_manager_docs
  243727. .IP \(bu 2
  243728. c16cfc6360 Fix typos
  243729. .IP \(bu 2
  243730. 8dff065cec Fix some formatting issues
  243731. .IP \(bu 2
  243732. dfef24f13b Merge branch \(aq2015.8\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.8
  243733. .IP \(bu 2
  243734. 807257b138 Clarification for Windows Package Manger
  243735. .UNINDENT
  243736. .IP \(bu 2
  243737. \fBPR\fP \fI\%#31380\fP: (\fI\%kiorky\fP) Bring up ext_pillar rendering errors as well
  243738. @ \fI2016\-02\-23 16:08:39 UTC\fP
  243739. .INDENT 2.0
  243740. .IP \(bu 2
  243741. 30d968c0a7 Merge pull request \fI\%#31380\fP from kiorky/p
  243742. .IP \(bu 2
  243743. e3e97a43ce Bring up ext_pillar rendering errors as well
  243744. .UNINDENT
  243745. .IP \(bu 2
  243746. \fBISSUE\fP \fI\%#31410\fP: (\fI\%terminalmage\fP) Debian GNU/Linux grains broken in head of 2015.8 branch (refs: \fI\%#31418\fP)
  243747. .IP \(bu 2
  243748. \fBPR\fP \fI\%#31418\fP: (\fI\%terminalmage\fP) Fix core grains when Debian OS detected as \(aqDebian GNU/Linux\(aq
  243749. @ \fI2016\-02\-23 15:49:49 UTC\fP
  243750. .INDENT 2.0
  243751. .IP \(bu 2
  243752. 64ed9fcd01 Merge pull request \fI\%#31418\fP from terminalmage/fix\-debian\-grains
  243753. .IP \(bu 2
  243754. 5c833efc01 Support running grains tests
  243755. .IP \(bu 2
  243756. 0e0cd17160 Rename core.py to core_test.py
  243757. .IP \(bu 2
  243758. d3cd1b596d Add unit test for core grains
  243759. .IP \(bu 2
  243760. e3d549d376 Fix debian grains setup
  243761. .UNINDENT
  243762. .IP \(bu 2
  243763. \fBPR\fP \fI\%#31429\fP: (\fI\%mcalmer\fP) fix argument handling for pkg.download
  243764. @ \fI2016\-02\-23 15:48:23 UTC\fP
  243765. .INDENT 2.0
  243766. .IP \(bu 2
  243767. ec01b994bd Merge pull request \fI\%#31429\fP from mcalmer/fix\-refresh\-arguments
  243768. .IP \(bu 2
  243769. 299c07fa7d fix argument handling for pkg.download
  243770. .UNINDENT
  243771. .IP \(bu 2
  243772. \fBPR\fP \fI\%#31432\fP: (\fI\%ticosax\fP) [dockerng] Hotfix docker 1.10.2
  243773. @ \fI2016\-02\-23 15:39:04 UTC\fP
  243774. .INDENT 2.0
  243775. .IP \(bu 2
  243776. 05c12b9ba1 Merge pull request \fI\%#31432\fP from ticosax/hotfix\-docker\-1.10.2
  243777. .IP \(bu 2
  243778. 1e9f6ff324 handle inconsistencies in dockerd API
  243779. .IP \(bu 2
  243780. 8484815f58 pep8
  243781. .UNINDENT
  243782. .IP \(bu 2
  243783. \fBPR\fP \fI\%#31420\fP: (\fI\%twangboy\fP) Handle Unversioned Packages
  243784. @ \fI2016\-02\-22 23:46:24 UTC\fP
  243785. .INDENT 2.0
  243786. .IP \(bu 2
  243787. fb81e905e4 Merge pull request \fI\%#31420\fP from twangboy/unversioned_pkgs
  243788. .IP \(bu 2
  243789. 816e991e87 Fix version check
  243790. .IP \(bu 2
  243791. 85d8b938ad Match unversioned packages to winrepo
  243792. .UNINDENT
  243793. .IP \(bu 2
  243794. \fBPR\fP \fI\%#31417\fP: (\fI\%jacobhammons\fP) ddns state docs updated with notes regarding the name, zone, and keyfile.
  243795. @ \fI2016\-02\-22 23:16:48 UTC\fP
  243796. .INDENT 2.0
  243797. .IP \(bu 2
  243798. 19d7810478 Merge pull request \fI\%#31417\fP from jacobhammons/ddns\-docs
  243799. .IP \(bu 2
  243800. 5c4cbbb572 Added notes regarding the name, zone, and keyfile.
  243801. .UNINDENT
  243802. .IP \(bu 2
  243803. \fBPR\fP \fI\%#31391\fP: (\fI\%redmcg\fP) Added sanity check: is \(aqpillar\(aq in self.opts
  243804. @ \fI2016\-02\-22 20:05:27 UTC\fP
  243805. .INDENT 2.0
  243806. .IP \(bu 2
  243807. ac6af79abc Merge pull request \fI\%#31391\fP from redmcg/master_schedule_fix
  243808. .IP \(bu 2
  243809. 91e74feaf3 Added sanity check: is \(aqpillar\(aq in self.opts
  243810. .UNINDENT
  243811. .IP \(bu 2
  243812. \fBPR\fP \fI\%#31376\fP: (\fI\%cro\fP) Some distros don\(aqt have a /lib/systemd
  243813. @ \fI2016\-02\-22 18:11:39 UTC\fP
  243814. .INDENT 2.0
  243815. .IP \(bu 2
  243816. c7bd13c9c9 Merge pull request \fI\%#31376\fP from cro/suse_service2
  243817. .IP \(bu 2
  243818. f3fec5562e We need one more mocked return from listdir.
  243819. .IP \(bu 2
  243820. ab9d9e7008 Can\(aqt add a tuple and a string.
  243821. .IP \(bu 2
  243822. 8f12bdb1a0 Check to see if a path is a link, because it\(aqs likely that if it IS a link, one of the other paths points to it. Ignore so we don\(aqt get duplicates.
  243823. .IP \(bu 2
  243824. 8f0e866f1b Some distros do not seem to have a /lib/systemd, but do have a /usr/lib/systemd
  243825. .UNINDENT
  243826. .IP \(bu 2
  243827. \fBISSUE\fP \fI\%#29727\fP: (\fI\%oeuftete\fP) dockerng.running does not pull image as documented (refs: \fI\%#31352\fP, \fI\%#31455\fP)
  243828. .IP \(bu 2
  243829. \fBISSUE\fP \fI\%#27976\fP: (\fI\%syphernl\fP) Module dockerng.inspect_image always returns 404 (refs: \fI\%#31352\fP)
  243830. .IP \(bu 2
  243831. \fBPR\fP \fI\%#31352\fP: (\fI\%ticosax\fP) [dockerng] Pull missing images when calling dockerng.running
  243832. @ \fI2016\-02\-22 16:54:10 UTC\fP
  243833. .INDENT 2.0
  243834. .IP \(bu 2
  243835. 105821efc7 Merge pull request \fI\%#31352\fP from ticosax/pull\-image\-on\-running
  243836. .IP \(bu 2
  243837. 8c86eeb4dc Pull missing images when calling dockerng.running
  243838. .UNINDENT
  243839. .IP \(bu 2
  243840. \fBPR\fP \fI\%#31378\fP: (\fI\%mcalmer\fP) Zypper refresh handling
  243841. @ \fI2016\-02\-22 16:50:28 UTC\fP
  243842. .INDENT 2.0
  243843. .IP \(bu 2
  243844. 83294e4f3a Merge pull request \fI\%#31378\fP from mcalmer/zypper\-refresh\-handling
  243845. .IP \(bu 2
  243846. 274e6467be do not change kwargs in refresh while checking a value
  243847. .IP \(bu 2
  243848. 644b14c273 simplify checking the refresh paramater
  243849. .IP \(bu 2
  243850. db0e0de2fd add refresh option to more functions
  243851. .IP \(bu 2
  243852. 5836be3f59 unify behavior of refresh
  243853. .UNINDENT
  243854. .IP \(bu 2
  243855. \fBISSUE\fP \fI\%#31229\fP: (\fI\%eykd\fP) git.latest broken behavior in 2015.8.x on older Git (refs: \fI\%#31373\fP)
  243856. .IP \(bu 2
  243857. \fBPR\fP \fI\%#31373\fP: (\fI\%terminalmage\fP) Use \-\-set\-upstream instead of \-\-track to set upstream on older git
  243858. @ \fI2016\-02\-22 16:46:00 UTC\fP
  243859. .INDENT 2.0
  243860. .IP \(bu 2
  243861. e24685b89a Merge pull request \fI\%#31373\fP from terminalmage/issue31229
  243862. .IP \(bu 2
  243863. 28f0a75cc1 Use \-\-set\-upstream instead of \-\-track to set upstream on older git
  243864. .UNINDENT
  243865. .IP \(bu 2
  243866. \fBISSUE\fP \fI\%#31137\fP: (\fI\%jeffreyctang\fP) logrotate creates .bak files in /etc/logrotate.d which logrotate reads. (refs: \fI\%#31390\fP)
  243867. .IP \(bu 2
  243868. \fBPR\fP \fI\%#31390\fP: (\fI\%abednarik\fP) Fix Logrotate module.
  243869. @ \fI2016\-02\-22 16:09:15 UTC\fP
  243870. .INDENT 2.0
  243871. .IP \(bu 2
  243872. c5790bc4d6 Merge pull request \fI\%#31390\fP from abednarik/remove_deprecated_psed_in_lorgotate
  243873. .IP \(bu 2
  243874. c1e0ff7785 Fix Logrotate module.
  243875. .UNINDENT
  243876. .IP \(bu 2
  243877. \fBISSUE\fP \fI\%#28004\fP: (\fI\%warden\fP) dockerng.image_present should allow public repository pulling by default (refs: \fI\%#31354\fP)
  243878. .IP \(bu 2
  243879. \fBPR\fP \fI\%#31354\fP: (\fI\%ticosax\fP) [dockerng] Dont require auth for all registries
  243880. @ \fI2016\-02\-20 05:45:10 UTC\fP
  243881. .INDENT 2.0
  243882. .IP \(bu 2
  243883. 174ee10fc2 Merge pull request \fI\%#31354\fP from ticosax/dont\-require\-auth\-for\-all\-registries
  243884. .IP \(bu 2
  243885. 4a9f661d66 It exists public registries where auth is not required.
  243886. .UNINDENT
  243887. .IP \(bu 2
  243888. \fBPR\fP \fI\%#31368\fP: (\fI\%whiteinge\fP) Update list of netapi clients for autoclass
  243889. @ \fI2016\-02\-19 20:57:28 UTC\fP
  243890. .INDENT 2.0
  243891. .IP \(bu 2
  243892. 8d0498eff4 Merge pull request \fI\%#31368\fP from whiteinge/netapi\-client\-list
  243893. .IP \(bu 2
  243894. 0cfe5d89a0 Update list of netapi clients for autoclass
  243895. .UNINDENT
  243896. .IP \(bu 2
  243897. \fBPR\fP \fI\%#31367\fP: (\fI\%techhat\fP) Add docs on how to actually use SDB
  243898. @ \fI2016\-02\-19 20:07:17 UTC\fP
  243899. .INDENT 2.0
  243900. .IP \(bu 2
  243901. 9b0e29107b Merge pull request \fI\%#31367\fP from techhat/sdbdocs
  243902. .IP \(bu 2
  243903. eea192a545 Add docs on how to actually use SDB
  243904. .UNINDENT
  243905. .IP \(bu 2
  243906. \fBPR\fP \fI\%#31357\fP: (\fI\%ticosax\fP) [dockerng] Support docker inconsistencies
  243907. @ \fI2016\-02\-19 20:02:08 UTC\fP
  243908. .INDENT 2.0
  243909. .IP \(bu 2
  243910. 7e599f0e27 Merge pull request \fI\%#31357\fP from ticosax/support\-docker\-inconsistencies
  243911. .IP \(bu 2
  243912. 3672b8e7b1 docker daemon returns sometimes empty list and sometimes None
  243913. .UNINDENT
  243914. .IP \(bu 2
  243915. \fBPR\fP \fI\%#31353\fP: (\fI\%ticosax\fP) [dockerng] Fix when ports are integers
  243916. @ \fI2016\-02\-19 19:55:30 UTC\fP
  243917. .INDENT 2.0
  243918. .IP \(bu 2
  243919. \fBPR\fP \fI\%#31326\fP: (\fI\%ticosax\fP) [dockerng ] Detect settings removal (refs: \fI\%#31353\fP)
  243920. .IP \(bu 2
  243921. 18bd78260d Merge pull request \fI\%#31353\fP from ticosax/fix\-when\-port\-are\-integers
  243922. .IP \(bu 2
  243923. 20fdc43968 Follow up for \fI\%#31326\fP
  243924. .UNINDENT
  243925. .IP \(bu 2
  243926. \fBPR\fP \fI\%#31346\fP: (\fI\%ticosax\fP) Backport \fI\%#31130\fP to 2015.8
  243927. @ \fI2016\-02\-19 19:46:48 UTC\fP
  243928. .INDENT 2.0
  243929. .IP \(bu 2
  243930. \fBPR\fP \fI\%#31130\fP: (\fI\%ticosax\fP) Saltnado: provide also get parameters to the context (refs: \fI\%#31346\fP)
  243931. .IP \(bu 2
  243932. dec254a7a2 Merge pull request \fI\%#31346\fP from ticosax/backport\-31130\-to\-2015.8
  243933. .IP \(bu 2
  243934. a8dc33a5e3 Saltnado provide also get parameters to the context
  243935. .UNINDENT
  243936. .IP \(bu 2
  243937. \fBPR\fP \fI\%#31332\fP: (\fI\%terminalmage\fP) Clarify documentation for gitfs/hgfs/svnfs mountpoint and root options
  243938. @ \fI2016\-02\-19 18:31:29 UTC\fP
  243939. .INDENT 2.0
  243940. .IP \(bu 2
  243941. d639d65381 Merge pull request \fI\%#31332\fP from terminalmage/issue31167
  243942. .IP \(bu 2
  243943. eebc325040 Clarify documentation for gitfs/hgfs/svnfs mountpoint and root options
  243944. .UNINDENT
  243945. .IP \(bu 2
  243946. \fBPR\fP \fI\%#31305\fP: (\fI\%mcalmer\fP) call zypper with option \-\-non\-interactive everywhere
  243947. @ \fI2016\-02\-19 18:14:57 UTC\fP
  243948. .INDENT 2.0
  243949. .IP \(bu 2
  243950. d067e77fee Merge pull request \fI\%#31305\fP from mcalmer/zypper\-non\-interactive\-everywhere
  243951. .IP \(bu 2
  243952. 75e776761c write a zypper command builder function
  243953. .IP \(bu 2
  243954. 3df302fcb7 call zypper with option \-\-non\-interactive everywhere
  243955. .UNINDENT
  243956. .IP \(bu 2
  243957. \fBPR\fP \fI\%#31337\fP: (\fI\%jacobhammons\fP) Release notes and versioning for 2015.8.7
  243958. @ \fI2016\-02\-19 00:20:30 UTC\fP
  243959. .INDENT 2.0
  243960. .IP \(bu 2
  243961. 98a14f8090 Merge pull request \fI\%#31337\fP from jacobhammons/dot7
  243962. .IP \(bu 2
  243963. d4fb33939e Release notes and versioning for 2015.8.7
  243964. .UNINDENT
  243965. .IP \(bu 2
  243966. \fBPR\fP \fI\%#31326\fP: (\fI\%ticosax\fP) [dockerng ] Detect settings removal (refs: \fI\%#31353\fP)
  243967. @ \fI2016\-02\-18 22:02:50 UTC\fP
  243968. .INDENT 2.0
  243969. .IP \(bu 2
  243970. f0ba9c1eca Merge pull request \fI\%#31326\fP from ticosax/2015.8\-dockerng\-detect\-settings\-removal
  243971. .IP \(bu 2
  243972. 7bedd86ebe Add detection of removed settings.
  243973. .UNINDENT
  243974. .IP \(bu 2
  243975. \fBPR\fP \fI\%#31292\fP: (\fI\%twangboy\fP) Fix dunder virtual to check for Remote Administration Tools
  243976. @ \fI2016\-02\-18 18:57:26 UTC\fP
  243977. .INDENT 2.0
  243978. .IP \(bu 2
  243979. 130f515391 Merge pull request \fI\%#31292\fP from twangboy/win_servermanager
  243980. .IP \(bu 2
  243981. 89b47ab3c5 Update return documentation for install/remove
  243982. .IP \(bu 2
  243983. a0be43120b Fix cmd_quote error
  243984. .IP \(bu 2
  243985. 13cd57a890 Remove repeating Import ServerManager command
  243986. .IP \(bu 2
  243987. 3270a2859f Add check for server manager module
  243988. .IP \(bu 2
  243989. 4bdae47a44 Added checks for Windows 2008 R2
  243990. .UNINDENT
  243991. .IP \(bu 2
  243992. \fBISSUE\fP \fI\%#30932\fP: (\fI\%johje349\fP) Glusterfs peered fails on secondary host in 2015.8.4 (refs: \fI\%#31287\fP)
  243993. .IP \(bu 2
  243994. \fBPR\fP \fI\%#31287\fP: (\fI\%joejulian\fP) Rework tests and fix reverse peering with gluster 3.7
  243995. @ \fI2016\-02\-18 17:57:23 UTC\fP
  243996. .INDENT 2.0
  243997. .IP \(bu 2
  243998. 5d31714b44 Merge pull request \fI\%#31287\fP from joejulian/2015.8_30932_peer_probe_by_ip
  243999. .IP \(bu 2
  244000. 783e9b2e13 Rework tests and fix reverse peering with gluster 3.7
  244001. .UNINDENT
  244002. .IP \(bu 2
  244003. \fBPR\fP \fI\%#31196\fP: (\fI\%sakateka\fP) Here are a few fixes utils.network
  244004. @ \fI2016\-02\-18 17:27:00 UTC\fP
  244005. .INDENT 2.0
  244006. .IP \(bu 2
  244007. a2f6447f8d Merge pull request \fI\%#31196\fP from sakateka/utils\-network\-fix
  244008. .IP \(bu 2
  244009. a7b11024dd fix typo
  244010. .IP \(bu 2
  244011. 92fd48fcf7 Do not Fallback to use lsof if proc available
  244012. .UNINDENT
  244013. .IP \(bu 2
  244014. \fBISSUE\fP \fI\%#29795\fP: (\fI\%vutny\fP) Unable to override state\-output setting in command line (refs: \fI\%#31299\fP)
  244015. .IP \(bu 2
  244016. \fBPR\fP \fI\%#31299\fP: (\fI\%rallytime\fP) Allow state\-output and state\-verbose default settings to be set from CLI
  244017. @ \fI2016\-02\-18 17:25:23 UTC\fP
  244018. .INDENT 2.0
  244019. .IP \(bu 2
  244020. d20a30b8be Merge pull request \fI\%#31299\fP from rallytime/fix\-29795
  244021. .IP \(bu 2
  244022. 483f31922b Allow state\-output and state\-verbose default settings to be set from CLI
  244023. .UNINDENT
  244024. .IP \(bu 2
  244025. \fBPR\fP \fI\%#31317\fP: (\fI\%terminalmage\fP) Fix versonadded directive
  244026. @ \fI2016\-02\-18 16:56:32 UTC\fP
  244027. .INDENT 2.0
  244028. .IP \(bu 2
  244029. 25d8af21c9 Merge pull request \fI\%#31317\fP from terminalmage/git\-version\-audit
  244030. .IP \(bu 2
  244031. acc3b54621 Fix versonadded directive
  244032. .UNINDENT
  244033. .IP \(bu 2
  244034. \fBISSUE\fP \fI\%#30999\fP: (\fI\%orymate\fP) git.latest rev=tag fails with old git(1) (refs: \fI\%#31245\fP, \fI\%#31301\fP)
  244035. .IP \(bu 2
  244036. \fBPR\fP \fI\%#31301\fP: (\fI\%terminalmage\fP) Corrected fix for \fI\%#30999\fP
  244037. @ \fI2016\-02\-18 15:59:40 UTC\fP
  244038. .INDENT 2.0
  244039. .IP \(bu 2
  244040. \fBPR\fP \fI\%#31245\fP: (\fI\%jespada\fP) fix git state for git version older than 1.9.2 (refs: \fI\%#31301\fP)
  244041. .IP \(bu 2
  244042. f2b662371c Merge pull request \fI\%#31301\fP from terminalmage/issue30999
  244043. .IP \(bu 2
  244044. 625af70e08 Fix \-\-unset\-upstream handling
  244045. .IP \(bu 2
  244046. 7940881797 fix git state github issue \fI\%#30999\fP
  244047. .UNINDENT
  244048. .IP \(bu 2
  244049. \fBPR\fP \fI\%#31302\fP: (\fI\%terminalmage\fP) Audit CLI opts used in git states
  244050. @ \fI2016\-02\-18 15:58:48 UTC\fP
  244051. .INDENT 2.0
  244052. .IP \(bu 2
  244053. 408d89e174 Merge pull request \fI\%#31302\fP from terminalmage/git\-version\-audit
  244054. .IP \(bu 2
  244055. ca410c0a94 Audit CLI opts used in git states
  244056. .UNINDENT
  244057. .IP \(bu 2
  244058. \fBPR\fP \fI\%#31312\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8
  244059. @ \fI2016\-02\-18 15:57:08 UTC\fP
  244060. .INDENT 2.0
  244061. .IP \(bu 2
  244062. 098f05eb3c Merge pull request \fI\%#31312\fP from terminalmage/merge\-forward\-2015.5\-2015.8
  244063. .IP \(bu 2
  244064. 808d150fe4 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.5\-2015.8
  244065. .IP \(bu 2
  244066. cd3400e67e Merge pull request \fI\%#31288\fP from notpeter/ssh_known_hosts_docs
  244067. .INDENT 2.0
  244068. .IP \(bu 2
  244069. 3f573d89a2 Improve salt.states.ssh_known_hosts documentation.
  244070. .UNINDENT
  244071. .IP \(bu 2
  244072. 875d9925fa Merge pull request \fI\%#31183\fP from heyfife/fix\-gce\-named\-static\-ip\-reservation
  244073. .INDENT 2.0
  244074. .IP \(bu 2
  244075. 26774e2323 Fixed named external_ip reservation/re\-use code.
  244076. .UNINDENT
  244077. .IP \(bu 2
  244078. e56c402c0c Merge pull request \fI\%#31032\fP from terminalmage/issue31001
  244079. .INDENT 2.0
  244080. .IP \(bu 2
  244081. 42daea4509 yumpkg.py: Remove repoquery usage everywhere but check_db
  244082. .IP \(bu 2
  244083. 50befbc149 backport salt.utils.pkg.rpm to 2015.5
  244084. .IP \(bu 2
  244085. a1ad14994a Move salt.utils.itersplit() to salt.utils.itertools.split()
  244086. .IP \(bu 2
  244087. 5b8646ce64 Ignore failure to install new enough dnf\-plugins\-core
  244088. .IP \(bu 2
  244089. defe0859fd Ensure that dnf\-plugins\-core 0.1.15 is installed
  244090. .UNINDENT
  244091. .IP \(bu 2
  244092. cec69b74f0 Merge pull request \fI\%#31264\fP from sjorge/if_missing\-155\-fix
  244093. .INDENT 2.0
  244094. .IP \(bu 2
  244095. 545edbf5e1 fix if_missing gets appended to dirs list, take III
  244096. .UNINDENT
  244097. .UNINDENT
  244098. .IP \(bu 2
  244099. \fBISSUE\fP \fI\%#31223\fP: (\fI\%pprince\fP) file_tree pillar: fails when data files at root end in \(aq\e\en\(aq (refs: \fI\%#31225\fP)
  244100. .IP \(bu 2
  244101. \fBPR\fP \fI\%#31225\fP: (\fI\%pprince\fP) Fix in file_tree pillar (Fixes \fI\%#31223\fP\&.)
  244102. @ \fI2016\-02\-18 06:06:12 UTC\fP
  244103. .INDENT 2.0
  244104. .IP \(bu 2
  244105. c58f654bc3 Merge pull request \fI\%#31225\fP from pprince/PR/bugfix/file_tree
  244106. .IP \(bu 2
  244107. d592d8636b Fix regression in file_tree pillar (Fixes \fI\%#31223\fP\&.)
  244108. .UNINDENT
  244109. .IP \(bu 2
  244110. \fBPR\fP \fI\%#31233\fP: (\fI\%mcalmer\fP) implement version_cmp for zypper
  244111. @ \fI2016\-02\-17 20:20:19 UTC\fP
  244112. .INDENT 2.0
  244113. .IP \(bu 2
  244114. fe9e5d27e6 Merge pull request \fI\%#31233\fP from mcalmer/2015.8\-zypperpy\-add\-version_cmp
  244115. .IP \(bu 2
  244116. 389a4b2548 Check if rpm\-python can be imported
  244117. .IP \(bu 2
  244118. 6ad6a90955 pylint changes
  244119. .IP \(bu 2
  244120. 7beaf26068 implement version_cmp for zypper
  244121. .UNINDENT
  244122. .IP \(bu 2
  244123. \fBPR\fP \fI\%#31273\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  244124. @ \fI2016\-02\-17 20:14:05 UTC\fP
  244125. .INDENT 2.0
  244126. .IP \(bu 2
  244127. 93c03a400b Merge pull request \fI\%#31273\fP from rallytime/merge\-2015.5
  244128. .IP \(bu 2
  244129. 11cfb636fb Pylint fix
  244130. .IP \(bu 2
  244131. 023ad4635c Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  244132. .INDENT 2.0
  244133. .IP \(bu 2
  244134. fa3f474de9 Merge pull request \fI\%#31110\fP from cachedout/fixup_30730
  244135. .INDENT 2.0
  244136. .IP \(bu 2
  244137. 5bf5848e04 Fixup unit test
  244138. .IP \(bu 2
  244139. f558f68e0a Fixes pylint warnings
  244140. .IP \(bu 2
  244141. 56a975ec43 Attempt to fix pylint warnings
  244142. .IP \(bu 2
  244143. 55d71be057 Make documentation and code examples consistent with code
  244144. .IP \(bu 2
  244145. 1f04fed6f8 Change parameter name from includes to skips
  244146. .IP \(bu 2
  244147. ccf5e13e7d Adding support for skipHidden in SetInclude
  244148. .IP \(bu 2
  244149. 4f2d4af2e7 Variable names standardization
  244150. .IP \(bu 2
  244151. f5917ac1e8 Fixes typo
  244152. .IP \(bu 2
  244153. 26e5236073 Invert RebootRequired logic
  244154. .IP \(bu 2
  244155. 8065a7abf6 Add basic documentation and define how the skips parameter works.
  244156. .IP \(bu 2
  244157. 389fea7508 Change parameter name from includes to skips
  244158. .IP \(bu 2
  244159. 30e1fef906 Adding support for skipHidden in SetInclude
  244160. .IP \(bu 2
  244161. 1244eea5be Variable names standardization, consistent if/else logic with states.win_update
  244162. .UNINDENT
  244163. .UNINDENT
  244164. .UNINDENT
  244165. .IP \(bu 2
  244166. \fBPR\fP \fI\%#31253\fP: (\fI\%gtmanfred\fP) allow for nova servers to be built with premade volumes
  244167. @ \fI2016\-02\-17 17:55:39 UTC\fP
  244168. .INDENT 2.0
  244169. .IP \(bu 2
  244170. dc2e7c8956 Merge pull request \fI\%#31253\fP from gtmanfred/2015.8
  244171. .IP \(bu 2
  244172. 36bf06e539 fix doc for boot_volume
  244173. .IP \(bu 2
  244174. 9660c91b57 allow for nova servers to be built with premade volumes
  244175. .UNINDENT
  244176. .IP \(bu 2
  244177. \fBISSUE\fP \fI\%#30651\fP: (\fI\%sjorge\fP) salt.states.grains.list_present should not show changes if none are made! (refs: \fI\%#31651\fP, \fI\%#30689\fP)
  244178. .IP \(bu 2
  244179. \fBPR\fP \fI\%#31271\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30689\fP to 2015.8
  244180. @ \fI2016\-02\-17 16:52:36 UTC\fP
  244181. .INDENT 2.0
  244182. .IP \(bu 2
  244183. \fBPR\fP \fI\%#30689\fP: (\fI\%sjorge\fP) fix for \fI\%#30651\fP grains.list_present and grains.list_absent (refs: \fI\%#31651\fP, \fI\%#31271\fP)
  244184. .IP \(bu 2
  244185. 29e3dd091d Merge pull request \fI\%#31271\fP from rallytime/bp\-30689
  244186. .IP \(bu 2
  244187. 3dae79d516 fix nested grains always show update due to __grains__.get() not supporting the ":" seperator
  244188. .UNINDENT
  244189. .IP \(bu 2
  244190. \fBISSUE\fP \fI\%#30461\fP: (\fI\%jfindlay\fP) update documentation on bootstrap\-supported platforms (refs: \fI\%#31255\fP)
  244191. .IP \(bu 2
  244192. \fBPR\fP \fI\%#31255\fP: (\fI\%jacobhammons\fP) Fixes \fI\%#30461\fP
  244193. @ \fI2016\-02\-17 02:23:46 UTC\fP
  244194. .INDENT 2.0
  244195. .IP \(bu 2
  244196. fcfc6f4fd3 Merge pull request \fI\%#31255\fP from jacobhammons/doc\-fixes
  244197. .IP \(bu 2
  244198. 3c4f8215c3 Fixes \fI\%#30461\fP Credited Sebastian Kramer for finding CVE 2016\-1866 in release notes Added note about salt virt not working on KVM in a VM
  244199. .UNINDENT
  244200. .IP \(bu 2
  244201. \fBISSUE\fP \fI\%#31106\fP: (\fI\%rvandegrift\fP) Exception from scheduled runner (refs: \fI\%#31189\fP)
  244202. .IP \(bu 2
  244203. \fBPR\fP \fI\%#31189\fP: (\fI\%dmacvicar\fP) Fix crash with scheduler and runners (\fI\%#31106\fP)
  244204. @ \fI2016\-02\-16 18:49:36 UTC\fP
  244205. .INDENT 2.0
  244206. .IP \(bu 2
  244207. 62d76902ce Merge pull request \fI\%#31189\fP from dmacvicar/dmacvicar\-2015.8\-31106
  244208. .IP \(bu 2
  244209. 9ad8cb1e6b Fix crash with scheduler and runners (\fI\%#31106\fP)
  244210. .UNINDENT
  244211. .IP \(bu 2
  244212. \fBISSUE\fP \fI\%#30962\fP: (\fI\%fantasy86\fP) Targeting by matching ip address doesn\(aqt work (refs: \fI\%#31201\fP)
  244213. .IP \(bu 2
  244214. \fBISSUE\fP \fI\%#30169\fP: (\fI\%colinlabs\fP) Can\(aqt use Subnet/IP Address Matching (refs: \fI\%#31201\fP)
  244215. .IP \(bu 2
  244216. \fBISSUE\fP \fI\%#29733\fP: (\fI\%roshan3133\fP) salt \-S <ipaddress> test.ping command output getting list of minions which did not not return. (refs: \fI\%#31201\fP)
  244217. .IP \(bu 2
  244218. \fBISSUE\fP \fI\%#29188\fP: (\fI\%bergemalm\fP) Unable to target minions via ipcidr in 2015.8 (refs: \fI\%#31201\fP)
  244219. .IP \(bu 2
  244220. \fBPR\fP \fI\%#31201\fP: (\fI\%The\-Loeki\fP) Utilize prepared grains var in master\-side ipcidr matching
  244221. @ \fI2016\-02\-16 18:36:10 UTC\fP
  244222. .INDENT 2.0
  244223. .IP \(bu 2
  244224. dc78d0a504 Merge pull request \fI\%#31201\fP from The\-Loeki/patch\-1
  244225. .IP \(bu 2
  244226. 318689d728 Correct ordering of address/network matching, improve performance of master\-side cidr matching
  244227. .IP \(bu 2
  244228. 4e4e0926da Utilize prepared grains var in master\-side ipcidr matching
  244229. .UNINDENT
  244230. .IP \(bu 2
  244231. \fBPR\fP \fI\%#31239\fP: (\fI\%terminalmage\fP) Improve logging when master cannot decode a payload
  244232. @ \fI2016\-02\-16 16:35:46 UTC\fP
  244233. .INDENT 2.0
  244234. .IP \(bu 2
  244235. 60bbac36fa Merge pull request \fI\%#31239\fP from terminalmage/better\-bad\-load\-logging
  244236. .IP \(bu 2
  244237. 1fbe3cba1f Improve logging when master cannot decode a payload
  244238. .UNINDENT
  244239. .IP \(bu 2
  244240. \fBISSUE\fP \fI\%#31185\fP: (\fI\%twangboy\fP) pkg.refresh_db leaves old sls files if the name changes (refs: \fI\%#31190\fP)
  244241. .IP \(bu 2
  244242. \fBPR\fP \fI\%#31190\fP: (\fI\%twangboy\fP) Clear minion cache before caching from master
  244243. @ \fI2016\-02\-16 16:11:26 UTC\fP
  244244. .INDENT 2.0
  244245. .IP \(bu 2
  244246. 80f1c3553b Merge pull request \fI\%#31190\fP from twangboy/refresh_db
  244247. .IP \(bu 2
  244248. 860437665d Fix some lint
  244249. .IP \(bu 2
  244250. 799d938d6a Clear minion cache before caching from master
  244251. .UNINDENT
  244252. .IP \(bu 2
  244253. \fBPR\fP \fI\%#31226\fP: (\fI\%pprince\fP) Minor docs fix: file_tree pillar (Fixes \fI\%#31124\fP)
  244254. @ \fI2016\-02\-16 15:25:33 UTC\fP
  244255. .INDENT 2.0
  244256. .IP \(bu 2
  244257. \fBPR\fP \fI\%#31124\fP: (\fI\%zygiss\fP) Make load beacon cross\-platform (refs: \fI\%#31226\fP)
  244258. .IP \(bu 2
  244259. 28a2b8097b Merge pull request \fI\%#31226\fP from pprince/PR/docfix/file_tree
  244260. .IP \(bu 2
  244261. c13852fbbf Minor docs fix: file_tree pillar (Fixes \fI\%#31124\fP)
  244262. .UNINDENT
  244263. .IP \(bu 2
  244264. \fBPR\fP \fI\%#31234\fP: (\fI\%mcalmer\fP) improve doc for list_pkgs
  244265. @ \fI2016\-02\-16 15:25:06 UTC\fP
  244266. .INDENT 2.0
  244267. .IP \(bu 2
  244268. 9afad13306 Merge pull request \fI\%#31234\fP from mcalmer/zypperpy\-comment\-list_pkgs
  244269. .IP \(bu 2
  244270. e3bb862a32 improve doc for list_pkgs
  244271. .UNINDENT
  244272. .IP \(bu 2
  244273. \fBPR\fP \fI\%#31237\fP: (\fI\%mcalmer\fP) add handling for OEM products
  244274. @ \fI2016\-02\-16 15:12:21 UTC\fP
  244275. .INDENT 2.0
  244276. .IP \(bu 2
  244277. e8f3a707ae Merge pull request \fI\%#31237\fP from mcalmer/zypper_py\-add\-OEM\-product\-handling
  244278. .IP \(bu 2
  244279. d773b7317b add handling for OEM products
  244280. .UNINDENT
  244281. .IP \(bu 2
  244282. \fBPR\fP \fI\%#31182\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31172\fP to 2015.8
  244283. @ \fI2016\-02\-13 21:36:07 UTC\fP
  244284. .INDENT 2.0
  244285. .IP \(bu 2
  244286. \fBPR\fP \fI\%#31172\fP: (\fI\%techhat\fP) Use correct deploy directory (refs: \fI\%#31182\fP)
  244287. .IP \(bu 2
  244288. 415654ee9e Merge pull request \fI\%#31182\fP from rallytime/bp\-31172
  244289. .IP \(bu 2
  244290. a743778e98 Use correct deploy directory
  244291. .UNINDENT
  244292. .IP \(bu 2
  244293. \fBISSUE\fP \fI\%#27498\fP: (\fI\%arthurlogilab\fP) [runner] salt\-run cache.clear_mine_func broken, can\(aqt take clear_mine_func (refs: \fI\%#31191\fP)
  244294. .IP \(bu 2
  244295. \fBPR\fP \fI\%#31191\fP: (\fI\%rallytime\fP) Make sure doc example matches kwarg
  244296. @ \fI2016\-02\-13 21:34:57 UTC\fP
  244297. .INDENT 2.0
  244298. .IP \(bu 2
  244299. 434e05667a Merge pull request \fI\%#31191\fP from rallytime/fix\-27498
  244300. .IP \(bu 2
  244301. 0bdbaa49d1 Make sure doc example matches kwarg
  244302. .UNINDENT
  244303. .IP \(bu 2
  244304. \fBPR\fP \fI\%#31171\fP: (\fI\%Ch3LL\fP) added logic to check for installed package
  244305. @ \fI2016\-02\-12 22:10:21 UTC\fP
  244306. .INDENT 2.0
  244307. .IP \(bu 2
  244308. c5e5af827c Merge pull request \fI\%#31171\fP from Ch3LL/megan\-20158
  244309. .IP \(bu 2
  244310. a12e2f566b fix lint error
  244311. .IP \(bu 2
  244312. a123efd4ef added logic to check for installed package
  244313. .UNINDENT
  244314. .IP \(bu 2
  244315. \fBISSUE\fP \fI\%#30934\fP: (\fI\%marnovdm\fP) contents_pillar no longer works with lists in 2015.8.5 (refs: \fI\%#31026\fP, \fI\%#31177\fP)
  244316. .IP \(bu 2
  244317. \fBPR\fP \fI\%#31177\fP: (\fI\%Ch3LL\fP) add integration test for issue \fI\%#30934\fP
  244318. @ \fI2016\-02\-12 22:09:31 UTC\fP
  244319. .INDENT 2.0
  244320. .IP \(bu 2
  244321. a024d3536f Merge pull request \fI\%#31177\fP from Ch3LL/test_content_pillars
  244322. .IP \(bu 2
  244323. 9204e3f562 add integration test for issue 30934w
  244324. .UNINDENT
  244325. .IP \(bu 2
  244326. \fBPR\fP \fI\%#31181\fP: (\fI\%cachedout\fP) Lint 2015.8 branch
  244327. @ \fI2016\-02\-12 21:57:02 UTC\fP
  244328. .INDENT 2.0
  244329. .IP \(bu 2
  244330. 1f22335e28 Merge pull request \fI\%#31181\fP from cachedout/lint_20158
  244331. .IP \(bu 2
  244332. 4c0be11627 Lint 2015.8 branch
  244333. .UNINDENT
  244334. .IP \(bu 2
  244335. \fBISSUE\fP \fI\%#29423\fP: (\fI\%l13t\fP) iptables and match\-set with two parameters (refs: \fI\%#29718\fP)
  244336. .IP \(bu 2
  244337. \fBPR\fP \fI\%#31169\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29718\fP to 2015.8
  244338. @ \fI2016\-02\-12 18:28:13 UTC\fP
  244339. .INDENT 2.0
  244340. .IP \(bu 2
  244341. \fBPR\fP \fI\%#29718\fP: (\fI\%thusoy\fP) Support match\-sets in iptables module (refs: \fI\%#31169\fP)
  244342. .IP \(bu 2
  244343. 4d1b49c1e7 Merge pull request \fI\%#31169\fP from rallytime/bp\-29718
  244344. .IP \(bu 2
  244345. ceae2a16f8 Support match\-sets in iptables module
  244346. .UNINDENT
  244347. .IP \(bu 2
  244348. \fBPR\fP \fI\%#31170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31157\fP to 2015.8
  244349. @ \fI2016\-02\-12 18:27:49 UTC\fP
  244350. .INDENT 2.0
  244351. .IP \(bu 2
  244352. \fBPR\fP \fI\%#31157\fP: (\fI\%captaininspiration\fP) Fix locale generation on Ubuntu (refs: \fI\%#31170\fP)
  244353. .IP \(bu 2
  244354. f2efd3e6c1 Merge pull request \fI\%#31170\fP from rallytime/bp\-31157
  244355. .IP \(bu 2
  244356. 27776b5f4e Fix locale generation on Ubuntu
  244357. .UNINDENT
  244358. .IP \(bu 2
  244359. \fBPR\fP \fI\%#31147\fP: (\fI\%cro\fP) Documentation clarifications.
  244360. @ \fI2016\-02\-12 17:16:27 UTC\fP
  244361. .INDENT 2.0
  244362. .IP \(bu 2
  244363. 7f49fbb70d Merge pull request \fI\%#31147\fP from cro/fx2_doc
  244364. .IP \(bu 2
  244365. a005e4af55 Documentation clarifications.
  244366. .UNINDENT
  244367. .IP \(bu 2
  244368. \fBPR\fP \fI\%#31153\fP: (\fI\%edencrane\fP) Fixed invalid host causing \(aqreference to variable before assignment\(aq
  244369. @ \fI2016\-02\-12 16:30:19 UTC\fP
  244370. .INDENT 2.0
  244371. .IP \(bu 2
  244372. 7986b9e033 Merge pull request \fI\%#31153\fP from edencrane/fix\-network\-connect\-invalid\-hostname
  244373. .IP \(bu 2
  244374. a14c4bb5f2 Fixed invalid host causing \(aqreference to variable before assignment\(aq
  244375. .UNINDENT
  244376. .IP \(bu 2
  244377. \fBISSUE\fP \fI\%#30994\fP: (\fI\%onorua\fP) beacon enable from state is failing (refs: \fI\%#31152\fP)
  244378. .IP \(bu 2
  244379. \fBPR\fP \fI\%#31152\fP: (\fI\%garethgreenaway\fP) fixes to beacon module, state module and friends
  244380. @ \fI2016\-02\-12 16:27:40 UTC\fP
  244381. .INDENT 2.0
  244382. .IP \(bu 2
  244383. f5ab76801b Merge pull request \fI\%#31152\fP from garethgreenaway/30994_beacon_add_failing_and_other_fixes
  244384. .IP \(bu 2
  244385. 91b14dca40 fixing the beacon module and state module to handle passing enabled properly. Also reworking how what is returned from the validating functions is handled to ensure when beacon configurations aren\(aqt validate the results indicate exactly why.
  244386. .UNINDENT
  244387. .IP \(bu 2
  244388. \fBPR\fP \fI\%#31149\fP: (\fI\%jfindlay\fP) add 2015.8.7 release notes
  244389. @ \fI2016\-02\-12 00:06:15 UTC\fP
  244390. .INDENT 2.0
  244391. .IP \(bu 2
  244392. c8047d979d Merge pull request \fI\%#31149\fP from jfindlay/2015.8
  244393. .IP \(bu 2
  244394. b58783b895 add 2015.8.7 release notes
  244395. .UNINDENT
  244396. .IP \(bu 2
  244397. \fBPR\fP \fI\%#31134\fP: (\fI\%isbm\fP) Fix types in the output data and return just a list of products
  244398. @ \fI2016\-02\-11 20:19:22 UTC\fP
  244399. .INDENT 2.0
  244400. .IP \(bu 2
  244401. 5c394ac49c Merge pull request \fI\%#31134\fP from isbm/isbm\-zypper\-list\-products
  244402. .IP \(bu 2
  244403. 670a326e3d Fix types in the output data and return just a list of products
  244404. .UNINDENT
  244405. .IP \(bu 2
  244406. \fBISSUE\fP \fI\%#31115\fP: (\fI\%nfillot\fP) 2015.8.5 salt\-cloud nova valid ip address was not found (refs: \fI\%#31120\fP)
  244407. .IP \(bu 2
  244408. \fBISSUE\fP \fI\%#29758\fP: (\fI\%zaide\fP) 2015.8.3 salt\-call runners.cloud : local variable \(aqaccess_ip\(aq referenced before assignment (refs: \fI\%#31120\fP)
  244409. .IP \(bu 2
  244410. \fBISSUE\fP \fI\%#29666\fP: (\fI\%tminn\fP) Nova driver broken for 2015.8.[1\-3] (refs: \fI\%#31120\fP)
  244411. .IP \(bu 2
  244412. \fBPR\fP \fI\%#31120\fP: (\fI\%gtmanfred\fP) Clean up some bugs in the nova driver
  244413. @ \fI2016\-02\-11 20:17:41 UTC\fP
  244414. .INDENT 2.0
  244415. .IP \(bu 2
  244416. 8f2e3a26e5 Merge pull request \fI\%#31120\fP from gtmanfred/2015.8
  244417. .IP \(bu 2
  244418. 4a411c0817 fix comment
  244419. .IP \(bu 2
  244420. 47ecb7a150 include all ips in public_ips or private_ips
  244421. .IP \(bu 2
  244422. b2e8202f5d dont exit on a missing server
  244423. .IP \(bu 2
  244424. 8ad1ee6db4 clean up references to access_ip extra network
  244425. .UNINDENT
  244426. .IP \(bu 2
  244427. \fBISSUE\fP \fI\%#31099\fP: (\fI\%Ch3LL\fP) Cannot specify size in map file in 2015.8 (refs: \fI\%#31132\fP)
  244428. .IP \(bu 2
  244429. \fBPR\fP \fI\%#31132\fP: (\fI\%rallytime\fP) Make sure required profile configurations passed in a map file work
  244430. @ \fI2016\-02\-11 20:16:46 UTC\fP
  244431. .INDENT 2.0
  244432. .IP \(bu 2
  244433. 2d592a398e Merge pull request \fI\%#31132\fP from rallytime/fix\-31099
  244434. .IP \(bu 2
  244435. 1da03da9df Pylint fix
  244436. .IP \(bu 2
  244437. 337592ec56 Make sure required profile configurations passed in a map file work
  244438. .UNINDENT
  244439. .IP \(bu 2
  244440. \fBISSUE\fP \fI\%#31014\fP: (\fI\%gtmanfred\fP) [2015.8] pkg breaks for yum pkgs.latest if the packages has an epoch (refs: \fI\%#31131\fP, \fI\%#31015\fP, \fI\%#31031\fP)
  244441. .IP \(bu 2
  244442. \fBPR\fP \fI\%#31131\fP: (\fI\%Ch3LL\fP) integration test for issue \fI\%#31014\fP
  244443. @ \fI2016\-02\-11 17:33:23 UTC\fP
  244444. .INDENT 2.0
  244445. .IP \(bu 2
  244446. b831e0a865 Merge pull request \fI\%#31131\fP from Ch3LL/megan\-20158
  244447. .IP \(bu 2
  244448. af82b1233a integration test for issue \fI\%#31014\fP
  244449. .UNINDENT
  244450. .IP \(bu 2
  244451. \fBPR\fP \fI\%#31133\fP: (\fI\%cachedout\fP) Fixup 31121
  244452. @ \fI2016\-02\-11 17:32:24 UTC\fP
  244453. .INDENT 2.0
  244454. .IP \(bu 2
  244455. e378afd891 Merge pull request \fI\%#31133\fP from cachedout/fixup_31121
  244456. .IP \(bu 2
  244457. a4040da46d Fix bad unit test
  244458. .IP \(bu 2
  244459. 0e68fafb74 Fix alternative module and state.
  244460. .UNINDENT
  244461. .IP \(bu 2
  244462. \fBPR\fP \fI\%#31125\fP: (\fI\%isbm\fP) Force\-kill websocket\(aqs child processes faster than default two minutes.
  244463. @ \fI2016\-02\-11 16:50:57 UTC\fP
  244464. .INDENT 2.0
  244465. .IP \(bu 2
  244466. a4a40262f8 Merge pull request \fI\%#31125\fP from isbm/isbm\-salt\-api\-service
  244467. .IP \(bu 2
  244468. f73f70375c Force\-kill websocket\(aqs child processes faster than default two minutes.
  244469. .UNINDENT
  244470. .IP \(bu 2
  244471. \fBPR\fP \fI\%#31119\fP: (\fI\%sakateka\fP) fixes for ipv6\-only multi\-master faliover
  244472. @ \fI2016\-02\-11 16:21:45 UTC\fP
  244473. .INDENT 2.0
  244474. .IP \(bu 2
  244475. 79c85859bc Merge pull request \fI\%#31119\fP from sakateka/fix\-for\-ipv6only\-failover
  244476. .IP \(bu 2
  244477. 2c45d151d1 fix unintentional breaking changes
  244478. .IP \(bu 2
  244479. 043a5e6fd7 fixes for ipv6\-only multi\-master faliover
  244480. .UNINDENT
  244481. .IP \(bu 2
  244482. \fBPR\fP \fI\%#31107\fP: (\fI\%techhat\fP) Don\(aqt try to add a non\-existent IP address
  244483. @ \fI2016\-02\-10 21:52:42 UTC\fP
  244484. .INDENT 2.0
  244485. .IP \(bu 2
  244486. 825b510030 Merge pull request \fI\%#31107\fP from techhat/nebulaprivip
  244487. .IP \(bu 2
  244488. 1fa69982c4 Don\(aqt try to add a non\-existent IP address
  244489. .UNINDENT
  244490. .IP \(bu 2
  244491. \fBPR\fP \fI\%#31108\fP: (\fI\%justinta\fP) Changed npm integration test to install request.
  244492. @ \fI2016\-02\-10 21:52:02 UTC\fP
  244493. .INDENT 2.0
  244494. .IP \(bu 2
  244495. c56a819fd8 Merge pull request \fI\%#31108\fP from jtand/npm_test_fix
  244496. .IP \(bu 2
  244497. a5eac47b25 Changed npm integration test to install request.
  244498. .UNINDENT
  244499. .IP \(bu 2
  244500. \fBPR\fP \fI\%#31105\fP: (\fI\%cachedout\fP) Lint 30975
  244501. @ \fI2016\-02\-10 21:11:21 UTC\fP
  244502. .INDENT 2.0
  244503. .IP \(bu 2
  244504. de1abae9d1 Merge pull request \fI\%#31105\fP from cachedout/lint_30975
  244505. .IP \(bu 2
  244506. 446b4c2aff Lint \fI\%#30975\fP
  244507. .IP \(bu 2
  244508. b4fe9aaa11 fixes issue in which s3.role_arn was defaulting to \(aq\(aq
  244509. .UNINDENT
  244510. .IP \(bu 2
  244511. \fBISSUE\fP \fI\%#31069\fP: (\fI\%symphorien\fP) Wrong filename in documentation for x509 state (refs: \fI\%#31100\fP)
  244512. .IP \(bu 2
  244513. \fBPR\fP \fI\%#31100\fP: (\fI\%jfindlay\fP) states.x509: docs: peer.sls \-> peer.conf
  244514. @ \fI2016\-02\-10 20:47:45 UTC\fP
  244515. .INDENT 2.0
  244516. .IP \(bu 2
  244517. 2e5499748a Merge pull request \fI\%#31100\fP from jfindlay/x509_sls
  244518. .IP \(bu 2
  244519. 6c303b99c2 states.x509: docs: peer.sls \-> peer.conf
  244520. .UNINDENT
  244521. .IP \(bu 2
  244522. \fBPR\fP \fI\%#31103\fP: (\fI\%twangboy\fP) Point to reg.delete_key_recursive
  244523. @ \fI2016\-02\-10 20:46:53 UTC\fP
  244524. .INDENT 2.0
  244525. .IP \(bu 2
  244526. f2bede1c00 Merge pull request \fI\%#31103\fP from twangboy/fix_reg_state
  244527. .IP \(bu 2
  244528. fe1ca906d2 Point to reg.delete_key_recursive
  244529. .UNINDENT
  244530. .IP \(bu 2
  244531. \fBPR\fP \fI\%#31093\fP: (\fI\%techhat\fP) Ensure double directories don\(aqt get created
  244532. @ \fI2016\-02\-10 18:53:47 UTC\fP
  244533. .INDENT 2.0
  244534. .IP \(bu 2
  244535. 94fa76831f Merge pull request \fI\%#31093\fP from techhat/spmfix
  244536. .IP \(bu 2
  244537. 4f4c8877ad Ensure double directories don\(aqt get created
  244538. .UNINDENT
  244539. .IP \(bu 2
  244540. \fBISSUE\fP \fI\%#31056\fP: (\fI\%JensRantil\fP) file.symlink documentation improvement (refs: \fI\%#31095\fP)
  244541. .IP \(bu 2
  244542. \fBPR\fP \fI\%#31095\fP: (\fI\%jfindlay\fP) modules.file, states.file: explain symbolic links
  244543. @ \fI2016\-02\-10 18:53:24 UTC\fP
  244544. .INDENT 2.0
  244545. .IP \(bu 2
  244546. c015ca865c Merge pull request \fI\%#31095\fP from jfindlay/link_doc
  244547. .IP \(bu 2
  244548. 7d9df6b26c modules.file, states.file: explain symbolic links
  244549. .UNINDENT
  244550. .IP \(bu 2
  244551. \fBISSUE\fP \fI\%#31059\fP: (\fI\%mf\-collinhayden\fP) salt\-cloud rename fails in 2015.8.5 (refs: \fI\%#31061\fP)
  244552. .IP \(bu 2
  244553. \fBISSUE\fP \fI\%#30950\fP: (\fI\%tmaulik\fP) Salt\-cloud create_snapshot is not recognizing snapshot_name parameter in salt 2015.8.5 (refs: \fI\%#31061\fP)
  244554. .IP \(bu 2
  244555. \fBPR\fP \fI\%#31061\fP: (\fI\%rallytime\fP) Revert \fI\%#30217\fP \- was causing salt\-cloud \-a breakage
  244556. @ \fI2016\-02\-10 18:13:59 UTC\fP
  244557. .INDENT 2.0
  244558. .IP \(bu 2
  244559. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run (refs: \fI\%#31061\fP, \fI\%#30691\fP)
  244560. .IP \(bu 2
  244561. 4d6706b3e7 Merge pull request \fI\%#31061\fP from rallytime/revert\-breakage
  244562. .IP \(bu 2
  244563. ced2d9f922 Revert \fI\%#30217\fP
  244564. .UNINDENT
  244565. .IP \(bu 2
  244566. \fBISSUE\fP \fI\%#31088\fP: (\fI\%gladiatr72\fP) request for color logging fix backport (refs: \fI\%#31090\fP)
  244567. .IP \(bu 2
  244568. \fBPR\fP \fI\%#31090\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30542\fP to 2015.8
  244569. @ \fI2016\-02\-10 18:06:38 UTC\fP
  244570. .INDENT 2.0
  244571. .IP \(bu 2
  244572. \fBPR\fP \fI\%#30542\fP: (\fI\%gladiatr72\fP) address color log dict lookup exceptions w/ non\-posix log level names (refs: \fI\%#31090\fP)
  244573. .IP \(bu 2
  244574. 482eea9883 Merge pull request \fI\%#31090\fP from rallytime/bp\-30542
  244575. .IP \(bu 2
  244576. 67a713f2f6 Some 3rd\-party modules (e.g. gnupg) define custom log levels that emit at INFO level and above. This patch sets the color data lookups to default to TextFormat(\(aqreset\(aq) rather than producing a stack trace every time a log message is generated from an affected module.
  244577. .UNINDENT
  244578. .IP \(bu 2
  244579. \fBPR\fP \fI\%#31085\fP: (\fI\%jacksontj\fP) Correctly remove path we added after loader is completed
  244580. @ \fI2016\-02\-10 17:47:22 UTC\fP
  244581. .INDENT 2.0
  244582. .IP \(bu 2
  244583. 5dcaa8d387 Merge pull request \fI\%#31085\fP from jacksontj/2015.8
  244584. .IP \(bu 2
  244585. dd5051c9e6 Correctly pop the path we added after loader is completed.
  244586. .UNINDENT
  244587. .IP \(bu 2
  244588. \fBISSUE\fP \fI\%#28142\fP: (\fI\%zmalone\fP) Deprecate or update the copr repo (refs: \fI\%#31037\fP)
  244589. .IP \(bu 2
  244590. \fBPR\fP \fI\%#31037\fP: (\fI\%vutny\fP) Update RHEL installation guide to reflect latest repo changes
  244591. @ \fI2016\-02\-10 17:36:04 UTC\fP
  244592. .INDENT 2.0
  244593. .IP \(bu 2
  244594. 27bf83fa59 Merge pull request \fI\%#31037\fP from vutny/correct\-doc\-install\-on\-rhel
  244595. .IP \(bu 2
  244596. 6370ddda9f Update RHEL installation guide
  244597. .IP \(bu 2
  244598. afdaefbf3d Add \fIsystemctl\fP examples for RHEL 7 to the installation guide
  244599. .IP \(bu 2
  244600. 069a661eb1 Correct ZeroMQ4 repo install guide for RHEL
  244601. .IP \(bu 2
  244602. d2a9d67b5b Update installation instruction for community repos on RHEL
  244603. .IP \(bu 2
  244604. bbdf2523c8 Add workaround for RHEL 7 systems mentioned in the issue \fI\%#29094\fP
  244605. .UNINDENT
  244606. .IP \(bu 2
  244607. \fBPR\fP \fI\%#31050\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  244608. @ \fI2016\-02\-09 20:13:34 UTC\fP
  244609. .INDENT 2.0
  244610. .IP \(bu 2
  244611. 8704750cf9 Merge pull request \fI\%#31050\fP from basepi/merge\-forward\-2015.8
  244612. .IP \(bu 2
  244613. d86e014a39 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  244614. .INDENT 2.0
  244615. .IP \(bu 2
  244616. 1c699a1664 Merge pull request \fI\%#30974\fP from rallytime/bp\-30949
  244617. .INDENT 2.0
  244618. .IP \(bu 2
  244619. ff6542f593 Replace cfdisk with sfdisk
  244620. .UNINDENT
  244621. .IP \(bu 2
  244622. c7f87cc371 Merge pull request \fI\%#30942\fP from rallytime/bp\-30897
  244623. .INDENT 2.0
  244624. .IP \(bu 2
  244625. 885e00ba54 Only remove the word linux from distroname when its not part of the name
  244626. .UNINDENT
  244627. .IP \(bu 2
  244628. 35b7f62669 Merge pull request \fI\%#30922\fP from jacobhammons/prev\-rel\-notes
  244629. .INDENT 2.0
  244630. .IP \(bu 2
  244631. 57c1ec637a Rev latest version to 2015.8.5
  244632. .UNINDENT
  244633. .IP \(bu 2
  244634. 2488bb902e Merge pull request \fI\%#30865\fP from abednarik/better_boto_elb_error
  244635. .INDENT 2.0
  244636. .IP \(bu 2
  244637. 3561e8c19b Better boto elb error message.
  244638. .UNINDENT
  244639. .IP \(bu 2
  244640. 4da04f82c8 Merge pull request \fI\%#30831\fP from jacobhammons/readme\-update
  244641. .INDENT 2.0
  244642. .IP \(bu 2
  244643. 01a92f5d98 Updated readme
  244644. .UNINDENT
  244645. .IP \(bu 2
  244646. 90c1ea9f6c Merge pull request \fI\%#30829\fP from jacobhammons/release\-2015.5
  244647. .INDENT 2.0
  244648. .IP \(bu 2
  244649. c95bb60148 Version to 2015.8.4
  244650. .UNINDENT
  244651. .IP \(bu 2
  244652. 80a36793cb Merge pull request \fI\%#30784\fP from rallytime/bp\-24952
  244653. .INDENT 2.0
  244654. .IP \(bu 2
  244655. a07908bdea Don\(aqt split the string on a single line
  244656. .UNINDENT
  244657. .IP \(bu 2
  244658. e978f5392f Merge pull request \fI\%#30764\fP from terminalmage/issue30560
  244659. .INDENT 2.0
  244660. .IP \(bu 2
  244661. 39736afcd7 Work around yum versionlock\(aqs inability to remove holds by package name alone
  244662. .UNINDENT
  244663. .IP \(bu 2
  244664. 6f565c0d76 Merge pull request \fI\%#30760\fP from toanju/2015.5
  244665. .INDENT 2.0
  244666. .IP \(bu 2
  244667. dc4256f7df Changed output format of arp_ip_target from list to comma delimited string
  244668. .UNINDENT
  244669. .IP \(bu 2
  244670. 1c205b4898 Merge pull request \fI\%#30757\fP from yannis666/fix\-for\-mine\-update\-merge
  244671. .INDENT 2.0
  244672. .IP \(bu 2
  244673. 61bb23e256 Fix to mine update to merge configuration
  244674. .UNINDENT
  244675. .IP \(bu 2
  244676. f9fde8f6a7 Merge pull request \fI\%#30749\fP from abednarik/fix_network_system_test
  244677. .INDENT 2.0
  244678. .IP \(bu 2
  244679. 1e9e97df59 Fix Netwotk hostname Module in Debian systems.
  244680. .UNINDENT
  244681. .UNINDENT
  244682. .UNINDENT
  244683. .IP \(bu 2
  244684. \fBPR\fP \fI\%#31053\fP: (\fI\%cachedout\fP) Fix boto test failures
  244685. @ \fI2016\-02\-09 20:02:16 UTC\fP
  244686. .INDENT 2.0
  244687. .IP \(bu 2
  244688. f13ffd4608 Merge pull request \fI\%#31053\fP from cachedout/boto_test_fix
  244689. .IP \(bu 2
  244690. c73b5a4a66 Fix boto_secgroup
  244691. .IP \(bu 2
  244692. 25bcc68357 Fix boto test failures
  244693. .UNINDENT
  244694. .IP \(bu 2
  244695. \fBISSUE\fP \fI\%#30938\fP: (\fI\%lorengordon\fP) Windows: Upgrade overwrites minion config file (refs: \fI\%#31029\fP, \fI\%#31028\fP)
  244696. .IP \(bu 2
  244697. \fBPR\fP \fI\%#31029\fP: (\fI\%twangboy\fP) Windows defaults to multiprocessing true
  244698. @ \fI2016\-02\-09 18:20:36 UTC\fP
  244699. .INDENT 2.0
  244700. .IP \(bu 2
  244701. 87f2816ef5 Merge pull request \fI\%#31029\fP from twangboy/win_defaults
  244702. .IP \(bu 2
  244703. baffbbdb74 Comment multiprocessing line in minion config
  244704. .IP \(bu 2
  244705. 933544b8c8 Set multiprocessing to true in config.py
  244706. .UNINDENT
  244707. .IP \(bu 2
  244708. \fBISSUE\fP \fI\%#27796\fP: (\fI\%onsmribah\fP) IOError: [Errno 13] Permission denied: \(aq/var/cache/salt/master/.dfn\(aq when using python salt.wheel module (refs: \fI\%#30998\fP)
  244709. .IP \(bu 2
  244710. \fBPR\fP \fI\%#30998\fP: (\fI\%dmacvicar\fP) add_key/reject_key: do not crash w/Permission denied: \(aq/var/cache/salt/master/.dfn\(aq (\fI\%#27796\fP)
  244711. @ \fI2016\-02\-09 17:57:36 UTC\fP
  244712. .INDENT 2.0
  244713. .IP \(bu 2
  244714. 0dcdd0a2a7 Merge pull request \fI\%#30998\fP from dmacvicar/dmacvicar\-2015.8\-27796
  244715. .IP \(bu 2
  244716. 9602fe2aeb Do not crash on add_key/reject_key if the previous one set the drop file. (\fI\%#27796\fP)
  244717. .UNINDENT
  244718. .IP \(bu 2
  244719. \fBISSUE\fP \fI\%#31041\fP: (\fI\%fredrikaverpil\fP) Reading about win_service in 2015.8.5 docs, but it\(aqs not available in 2015.8.5 (refs: \fI\%#31550\fP, \fI\%#31049\fP)
  244720. .IP \(bu 2
  244721. \fBPR\fP \fI\%#31049\fP: (\fI\%twangboy\fP) Fix versionadded in win_service.config (refs: \fI\%#31550\fP)
  244722. @ \fI2016\-02\-09 17:55:07 UTC\fP
  244723. .INDENT 2.0
  244724. .IP \(bu 2
  244725. e773fc822a Merge pull request \fI\%#31049\fP from twangboy/win_svc_docs
  244726. .IP \(bu 2
  244727. 98005255d1 Fix versionadded in win_service.config
  244728. .UNINDENT
  244729. .IP \(bu 2
  244730. \fBPR\fP \fI\%#30987\fP: (\fI\%youngnick\fP) Changed glusterfs.peer() module so state can handle localhost peering attempts.
  244731. @ \fI2016\-02\-09 17:51:58 UTC\fP
  244732. .INDENT 2.0
  244733. .IP \(bu 2
  244734. c3f115724a Merge pull request \fI\%#30987\fP from youngnick/add\-back\-localhost\-peer\-handling
  244735. .IP \(bu 2
  244736. 730b5ef3e2 Update tests to cover new peering return val.
  244737. .IP \(bu 2
  244738. b2407305e8 Changed glusterfs.peer() module call return val so state can handle localhost peering attempts.
  244739. .UNINDENT
  244740. .IP \(bu 2
  244741. \fBPR\fP \fI\%#31042\fP: (\fI\%moltob\fP) Allow using Windows path in archive.extracted name attribute
  244742. @ \fI2016\-02\-09 17:47:20 UTC\fP
  244743. .INDENT 2.0
  244744. .IP \(bu 2
  244745. 8518655bfb Merge pull request \fI\%#31042\fP from moltob/fix\-archive\-winpath
  244746. .IP \(bu 2
  244747. 9dcc617a53 Allow using Windows path in archive.extracted name attribute, including drive letter colon and backslashes.
  244748. .UNINDENT
  244749. .IP \(bu 2
  244750. \fBPR\fP \fI\%#31012\fP: (\fI\%terminalmage\fP) Fix gitfs/git_pillar/winrepo provider to allow lowercase values
  244751. @ \fI2016\-02\-09 17:24:25 UTC\fP
  244752. .INDENT 2.0
  244753. .IP \(bu 2
  244754. 1950359580 Merge pull request \fI\%#31012\fP from terminalmage/fix\-gitfs\-provider\-lc
  244755. .IP \(bu 2
  244756. 763581798b Add unit tests to ensure a valid provider
  244757. .IP \(bu 2
  244758. 49ec61d58b Fix gitfs/git_pillar/winrepo provider to allow lowercase values
  244759. .UNINDENT
  244760. .IP \(bu 2
  244761. \fBISSUE\fP \fI\%#30983\fP: (\fI\%JensRantil\fP) salt.modules.aptpkg.upgrade does not necessarily do \fIapt\-get dist\-upgrade\fP (refs: \fI\%#31024\fP)
  244762. .IP \(bu 2
  244763. \fBPR\fP \fI\%#31024\fP: (\fI\%jfindlay\fP) modules.aptpkg.upgrade: clarify dist\-upgrade usage
  244764. @ \fI2016\-02\-09 17:20:57 UTC\fP
  244765. .INDENT 2.0
  244766. .IP \(bu 2
  244767. 3d8681b63e Merge pull request \fI\%#31024\fP from jfindlay/dist_upgrade
  244768. .IP \(bu 2
  244769. 3d1be080ad modules.aptpkg.upgrade: clarify dist\-upgrade usage
  244770. .UNINDENT
  244771. .IP \(bu 2
  244772. \fBISSUE\fP \fI\%#30938\fP: (\fI\%lorengordon\fP) Windows: Upgrade overwrites minion config file (refs: \fI\%#31029\fP, \fI\%#31028\fP)
  244773. .IP \(bu 2
  244774. \fBPR\fP \fI\%#31028\fP: (\fI\%twangboy\fP) Fix config overwrite by windows installer
  244775. @ \fI2016\-02\-09 17:20:24 UTC\fP
  244776. .INDENT 2.0
  244777. .IP \(bu 2
  244778. a0454ffb00 Merge pull request \fI\%#31028\fP from twangboy/fix_installer
  244779. .IP \(bu 2
  244780. 8876893b5c Fix remove placeholder files
  244781. .IP \(bu 2
  244782. 788855cc94 Remove placeholder files
  244783. .IP \(bu 2
  244784. c834a9d5e5 Set overwrite to off
  244785. .UNINDENT
  244786. .IP \(bu 2
  244787. \fBISSUE\fP \fI\%#31014\fP: (\fI\%gtmanfred\fP) [2015.8] pkg breaks for yum pkgs.latest if the packages has an epoch (refs: \fI\%#31131\fP, \fI\%#31015\fP, \fI\%#31031\fP)
  244788. .IP \(bu 2
  244789. \fBPR\fP \fI\%#31031\fP: (\fI\%terminalmage\fP) More complete fix for \fI\%#31014\fP
  244790. @ \fI2016\-02\-09 17:04:42 UTC\fP
  244791. .INDENT 2.0
  244792. .IP \(bu 2
  244793. \fBPR\fP \fI\%#31015\fP: (\fI\%gtmanfred\fP) include possible epoch in version for rpm (refs: \fI\%#31031\fP)
  244794. .IP \(bu 2
  244795. 071b9d4904 Merge pull request \fI\%#31031\fP from terminalmage/issue31014
  244796. .IP \(bu 2
  244797. 6d15a17d6b Fix yumpkg _get_branch_option()
  244798. .IP \(bu 2
  244799. 4b855a85ee Don\(aqt handle epoch specially for dnf
  244800. .IP \(bu 2
  244801. 5244de2fae More efficient way to add the epoch before version number
  244802. .IP \(bu 2
  244803. e1211ed89f include possible epoch in version for rpm
  244804. .UNINDENT
  244805. .IP \(bu 2
  244806. \fBISSUE\fP \fI\%#30934\fP: (\fI\%marnovdm\fP) contents_pillar no longer works with lists in 2015.8.5 (refs: \fI\%#31026\fP, \fI\%#31177\fP)
  244807. .IP \(bu 2
  244808. \fBPR\fP \fI\%#31026\fP: (\fI\%terminalmage\fP) Fix regression when contents_pillar/contents_grains is a list.
  244809. @ \fI2016\-02\-09 00:03:15 UTC\fP
  244810. .INDENT 2.0
  244811. .IP \(bu 2
  244812. 2b8f7a12e7 Merge pull request \fI\%#31026\fP from terminalmage/issue30934
  244813. .IP \(bu 2
  244814. f43aaf4dff Fix regression when contents_pillar/contents_grains is a list.
  244815. .UNINDENT
  244816. .IP \(bu 2
  244817. \fBISSUE\fP \fI\%#30472\fP: (\fI\%sjorge\fP) KeyError with schedule (refs: \fI\%#30978\fP)
  244818. .IP \(bu 2
  244819. \fBPR\fP \fI\%#30978\fP: (\fI\%garethgreenaway\fP) fixes to state.py in 2015.8
  244820. @ \fI2016\-02\-08 18:49:05 UTC\fP
  244821. .INDENT 2.0
  244822. .IP \(bu 2
  244823. de215bd0cd Merge pull request \fI\%#30978\fP from garethgreenaway/30472_state_functions_no_default_retcode
  244824. .IP \(bu 2
  244825. e33b5140f6 removing extra spaces.
  244826. .IP \(bu 2
  244827. f668ccf1f7 removing duplicate code, just set the default in the _set_retcode function
  244828. .IP \(bu 2
  244829. 5f2f0f60c0 The functions in the state module that return a retcode when something goes wrong, eg. a 1 or a 2, do not return a 0 when things go the way they\(aqre supposed to go. With the recent changes to the scheduler to ensure that the retcode is returned this is problematic and results in exceptions when a state function is run from the schedule. This simple fix ensures a default retcode of 0 exists, it is then override in the _set_retcode function if there is an issue with the run
  244830. .UNINDENT
  244831. .IP \(bu 2
  244832. \fBPR\fP \fI\%#30893\fP: (\fI\%bdrung\fP) Make build reproducible
  244833. @ \fI2016\-02\-08 18:44:35 UTC\fP
  244834. .INDENT 2.0
  244835. .IP \(bu 2
  244836. 65fbf980cf Merge pull request \fI\%#30893\fP from bdrung/reproducible
  244837. .IP \(bu 2
  244838. 089c869ec3 Make build reproducible
  244839. .UNINDENT
  244840. .IP \(bu 2
  244841. \fBPR\fP \fI\%#30945\fP: (\fI\%cachedout\fP) Note that pillar cli args are sent via pub
  244842. @ \fI2016\-02\-08 18:43:59 UTC\fP
  244843. .INDENT 2.0
  244844. .IP \(bu 2
  244845. 5b0c7649c7 Merge pull request \fI\%#30945\fP from cachedout/note_pillar_cli
  244846. .IP \(bu 2
  244847. 3ff7d49555 Note that pillar cli args are sent via pub
  244848. .UNINDENT
  244849. .IP \(bu 2
  244850. \fBISSUE\fP \fI\%#31000\fP: (\fI\%rmtmckenzie\fP) Salt\-cloud profile state fails to create LXC minion (refs: \fI\%#31002\fP)
  244851. .IP \(bu 2
  244852. \fBPR\fP \fI\%#31002\fP: (\fI\%rmtmckenzie\fP) Fix lxc cloud provided minion reporting present
  244853. @ \fI2016\-02\-08 18:14:50 UTC\fP
  244854. .INDENT 2.0
  244855. .IP \(bu 2
  244856. 3b7b6f2398 Merge pull request \fI\%#31002\fP from rmtmckenzie/cloud\-lxc\-provide\-fix
  244857. .IP \(bu 2
  244858. 9b17fdce5e Fix lxc cloud provided minion reporting present
  244859. .UNINDENT
  244860. .IP \(bu 2
  244861. \fBPR\fP \fI\%#31007\fP: (\fI\%justinta\fP) Fixed rabbitmq_vhost test failure.
  244862. @ \fI2016\-02\-08 17:48:00 UTC\fP
  244863. .INDENT 2.0
  244864. .IP \(bu 2
  244865. c48122ae9a Merge pull request \fI\%#31007\fP from jtand/rabbitmq_vhost_test_fix
  244866. .IP \(bu 2
  244867. 962e0deda5 Fixed rabbitmq_vhost test failure.
  244868. .UNINDENT
  244869. .IP \(bu 2
  244870. \fBISSUE\fP \fI\%#30993\fP: (\fI\%fredrikaverpil\fP) Overstate: "This documentation has been moved here" (dead end) (refs: \fI\%#31004\fP)
  244871. .IP \(bu 2
  244872. \fBPR\fP \fI\%#31004\fP: (\fI\%rallytime\fP) Remove overstate docs and a few references.
  244873. @ \fI2016\-02\-08 17:08:24 UTC\fP
  244874. .INDENT 2.0
  244875. .IP \(bu 2
  244876. 811461e4b4 Merge pull request \fI\%#31004\fP from rallytime/fix\-30993
  244877. .IP \(bu 2
  244878. 33eb6ba125 Remove overstate docs and a few references.
  244879. .UNINDENT
  244880. .IP \(bu 2
  244881. \fBPR\fP \fI\%#30965\fP: (\fI\%anlutro\fP) Fix rabbitmq_vhost.present result when test=True
  244882. @ \fI2016\-02\-08 04:34:45 UTC\fP
  244883. .INDENT 2.0
  244884. .IP \(bu 2
  244885. 64125de6c7 Merge pull request \fI\%#30965\fP from alprs/fix\-rabbitmq_vhost_present_test
  244886. .IP \(bu 2
  244887. 2313747958 return changes when test=True
  244888. .IP \(bu 2
  244889. 95c8e74b72 make the code a bit simpler
  244890. .IP \(bu 2
  244891. aba29a73c4 fix rabbitmq_vhost.present result when test=True
  244892. .UNINDENT
  244893. .IP \(bu 2
  244894. \fBPR\fP \fI\%#30955\fP: (\fI\%Ch3LL\fP) docs: add clarification when source is not defined
  244895. @ \fI2016\-02\-06 18:29:33 UTC\fP
  244896. .INDENT 2.0
  244897. .IP \(bu 2
  244898. ef02779391 Merge pull request \fI\%#30955\fP from Ch3LL/clarify_file_doc
  244899. .IP \(bu 2
  244900. 97b57ed2b1 docs: add clarification when source is not defined
  244901. .UNINDENT
  244902. .IP \(bu 2
  244903. \fBPR\fP \fI\%#30941\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30879\fP to 2015.8
  244904. @ \fI2016\-02\-05 21:15:20 UTC\fP
  244905. .INDENT 2.0
  244906. .IP \(bu 2
  244907. \fBPR\fP \fI\%#30879\fP: (\fI\%rhansen\fP) Don\(aqt delete a Docker volume if the volume\(aqs driver differs (refs: \fI\%#30941\fP)
  244908. .IP \(bu 2
  244909. d9785451c0 Merge pull request \fI\%#30941\fP from rallytime/bp\-30879
  244910. .IP \(bu 2
  244911. eb6f289fc1 change default for volume_present()\(aqs force parameter to False
  244912. .IP \(bu 2
  244913. 34f3057e04 add \(aqforce\(aq to replace (or not) volumes with driver mismatch
  244914. .IP \(bu 2
  244915. d6d3b15738 typo fixes
  244916. .UNINDENT
  244917. .IP \(bu 2
  244918. \fBPR\fP \fI\%#30940\fP: (\fI\%twangboy\fP) Fix Build Process for OSX
  244919. @ \fI2016\-02\-05 18:44:34 UTC\fP
  244920. .INDENT 2.0
  244921. .IP \(bu 2
  244922. 21a83065aa Merge pull request \fI\%#30940\fP from twangboy/mac_build_3
  244923. .IP \(bu 2
  244924. 3654a0e0c2 Change 2015 to 2016 in license file
  244925. .IP \(bu 2
  244926. aa7d0602a8 Update instructions in readme.md for shasum
  244927. .IP \(bu 2
  244928. 6f1a8f4146 Added code to add /opt/salt/bin to the path
  244929. .IP \(bu 2
  244930. 1e7468a08c Disable master, syndic, and api in postinstall
  244931. .IP \(bu 2
  244932. d49b3dcf1b Re\-added start on load and keep alive
  244933. .IP \(bu 2
  244934. 3ff50a2254 Removed keepalive option
  244935. .IP \(bu 2
  244936. eb5d04bdf1 Remove autostart for api, master, and syndic
  244937. .IP \(bu 2
  244938. 3c0cce34c9 Added minimum requirements for installation
  244939. .IP \(bu 2
  244940. 1dcc23c85b Fix error on kickstart command
  244941. .IP \(bu 2
  244942. 7a163c46d8 Change to new way of starting and stopping services
  244943. .IP \(bu 2
  244944. 23d47722b7 Fix preinstall and postinstall scripts
  244945. .IP \(bu 2
  244946. 7ef723d815 Upgrade to latest pip
  244947. .IP \(bu 2
  244948. 0f09ad517f Updated pip dependencies
  244949. .IP \(bu 2
  244950. d3d4c1d13f Removed GPL Licensed software from build
  244951. .UNINDENT
  244952. .IP \(bu 2
  244953. \fBPR\fP \fI\%#30944\fP: (\fI\%jacobhammons\fP) 2015.8.5 release notes linking and clean up
  244954. @ \fI2016\-02\-05 17:40:10 UTC\fP
  244955. .INDENT 2.0
  244956. .IP \(bu 2
  244957. 183b500055 Merge pull request \fI\%#30944\fP from jacobhammons/rel\-notes
  244958. .IP \(bu 2
  244959. fbb7605366 2015.8.5 release notes linking and clean up
  244960. .UNINDENT
  244961. .IP \(bu 2
  244962. \fBISSUE\fP \fI\%#30882\fP: (\fI\%hoonetorg\fP) state lvm.vg_present broken with pv on devicemapper\-dev (centos 7.2) (refs: \fI\%#30905\fP)
  244963. .IP \(bu 2
  244964. \fBISSUE\fP \fI\%#26867\fP: (\fI\%joejulian\fP) lvm pv\(aqs can show as not belonging to their vg if symlink is used (refs: \fI\%#30905\fP)
  244965. .IP \(bu 2
  244966. \fBPR\fP \fI\%#30905\fP: (\fI\%joejulian\fP) Add realpath to lvm.pvdisplay and use it in vg_present
  244967. @ \fI2016\-02\-05 17:05:32 UTC\fP
  244968. .INDENT 2.0
  244969. .IP \(bu 2
  244970. 91806b03b9 Merge pull request \fI\%#30905\fP from joejulian/2015.8_fix_lvm_pv_mapper
  244971. .IP \(bu 2
  244972. f96650f3c3 Add realpath to lvm.pvdisplay and use it in vg_present
  244973. .UNINDENT
  244974. .IP \(bu 2
  244975. \fBISSUE\fP \fI\%#30923\fP: (\fI\%youngnick\fP) Starting a glusterfs volume after creation fails with an exception in 2015.8 and after. (refs: \fI\%#30924\fP)
  244976. .IP \(bu 2
  244977. \fBPR\fP \fI\%#30924\fP: (\fI\%youngnick\fP) Fix small bug with starting volumes after creation.
  244978. @ \fI2016\-02\-05 16:58:22 UTC\fP
  244979. .INDENT 2.0
  244980. .IP \(bu 2
  244981. af2832b69d Merge pull request \fI\%#30924\fP from youngnick/glusterfs\-start\-volume\-bug
  244982. .IP \(bu 2
  244983. be5295cf7b Fix small bug with starting volumes after creation.
  244984. .UNINDENT
  244985. .IP \(bu 2
  244986. \fBPR\fP \fI\%#30910\fP: (\fI\%cro\fP) fix iDRAC state
  244987. @ \fI2016\-02\-05 16:49:06 UTC\fP
  244988. .INDENT 2.0
  244989. .IP \(bu 2
  244990. 3a6666ad25 Merge pull request \fI\%#30910\fP from cro/fx2_idrac
  244991. .IP \(bu 2
  244992. 68af2ab185 Lint.
  244993. .IP \(bu 2
  244994. c274c7ef6c Lint.
  244995. .IP \(bu 2
  244996. 3e38b762bf Add generic command for executing racadm commands on individual blades in a chassis.
  244997. .IP \(bu 2
  244998. 05979010f5 Finish the idrac state, fix problem with grains not loading sometimes.
  244999. .UNINDENT
  245000. .IP \(bu 2
  245001. \fBPR\fP \fI\%#30919\fP: (\fI\%garethgreenaway\fP) Fixes to ssh_auth state module
  245002. @ \fI2016\-02\-05 16:15:28 UTC\fP
  245003. .INDENT 2.0
  245004. .IP \(bu 2
  245005. 101fa12479 Merge pull request \fI\%#30919\fP from garethgreenaway/ssh_auth_cp_get_url_needs_saltenv
  245006. .IP \(bu 2
  245007. c9ba038553 The call to cp.get_url needs the saltenv, if you\(aqre using environments other than base, it will fail.
  245008. .UNINDENT
  245009. .IP \(bu 2
  245010. \fBISSUE\fP \fI\%#30300\fP: (\fI\%AkhterAli\fP) boto_route53 __salt__ not defined. (refs: \fI\%#30867\fP, \fI\%#30920\fP)
  245011. .IP \(bu 2
  245012. \fBPR\fP \fI\%#30920\fP: (\fI\%jacobhammons\fP) Versioned to 2015.8.5, added known issue \fI\%#30300\fP to release notes
  245013. @ \fI2016\-02\-05 01:12:17 UTC\fP
  245014. .INDENT 2.0
  245015. .IP \(bu 2
  245016. 6d4fd11dd0 Merge pull request \fI\%#30920\fP from jacobhammons/release\-notes
  245017. .IP \(bu 2
  245018. 93d47f8615 Versioned to 2015.8.5, added known issue \fI\%#30300\fP to release notes
  245019. .UNINDENT
  245020. .IP \(bu 2
  245021. \fBPR\fP \fI\%#30894\fP: (\fI\%terminalmage\fP) git module/state: Handle identity files more gracefully
  245022. @ \fI2016\-02\-04 23:55:01 UTC\fP
  245023. .INDENT 2.0
  245024. .IP \(bu 2
  245025. 3d3321ab92 Merge pull request \fI\%#30894\fP from terminalmage/issue30858
  245026. .IP \(bu 2
  245027. 08741eb969 Update versionadded/versionchanged
  245028. .IP \(bu 2
  245029. 8909d430e1 salt.states.git.latest(): Prevent tracebacks when git ssh auth fails
  245030. .IP \(bu 2
  245031. c961cf1c7d git: only use passphrase\-protected key if invoked using salt\-call
  245032. .IP \(bu 2
  245033. 0b286f1bc3 Add global ssh_config path to git ssh wrapper
  245034. .IP \(bu 2
  245035. f813cce4ad Add salt.modules.ssh.key_is_encrypted()
  245036. .IP \(bu 2
  245037. 1ae7c53e17 Add salt.utils.files.process_read_exception()
  245038. .UNINDENT
  245039. .IP \(bu 2
  245040. \fBISSUE\fP \fI\%#30694\fP: (\fI\%pankajghadge\fP) Tomcat war deployment version issue in new SALT version (refs: \fI\%#30750\fP)
  245041. .IP \(bu 2
  245042. \fBPR\fP \fI\%#30750\fP: (\fI\%jfindlay\fP) extract whole war version
  245043. @ \fI2016\-02\-04 21:41:01 UTC\fP
  245044. .INDENT 2.0
  245045. .IP \(bu 2
  245046. 2415b3e62e Merge pull request \fI\%#30750\fP from jfindlay/war_version
  245047. .IP \(bu 2
  245048. 4b01c28ff9 modules,states.tomcat: allow specifying war version
  245049. .IP \(bu 2
  245050. 6deecdca0f states.tomcat: _extract_war_version parses path
  245051. .IP \(bu 2
  245052. 8dd3b6dfe9 modules.war._extract_war_version: allow non\-semver
  245053. .UNINDENT
  245054. .IP \(bu 2
  245055. \fBISSUE\fP \fI\%#30817\fP: (\fI\%bogdanr\fP) If the private_key filespecified in the provider is missing then the driver will be disabled (refs: \fI\%#30884\fP)
  245056. .IP \(bu 2
  245057. \fBPR\fP \fI\%#30884\fP: (\fI\%rallytime\fP) Move checks for private_key file existence and permissions to create function
  245058. @ \fI2016\-02\-04 21:03:23 UTC\fP
  245059. .INDENT 2.0
  245060. .IP \(bu 2
  245061. 6a6456eaa6 Merge pull request \fI\%#30884\fP from rallytime/fix\-30817
  245062. .IP \(bu 2
  245063. 086ddae476 We need to check for a key_filename before looking for the path
  245064. .IP \(bu 2
  245065. e79321b418 Move checks for private_key file existence and permissions to create function
  245066. .UNINDENT
  245067. .IP \(bu 2
  245068. \fBPR\fP \fI\%#30888\fP: (\fI\%ticosax\fP) Backport \fI\%#30797\fP to 2015.8
  245069. @ \fI2016\-02\-04 21:02:25 UTC\fP
  245070. .INDENT 2.0
  245071. .IP \(bu 2
  245072. \fBPR\fP \fI\%#30797\fP: (\fI\%rhansen\fP) don\(aqt delete existing Docker volume if driver unspecified (refs: \fI\%#30888\fP)
  245073. .IP \(bu 2
  245074. 4ae2d829f0 Merge pull request \fI\%#30888\fP from ticosax/backport\-30797
  245075. .IP \(bu 2
  245076. 413c47a45f don\(aqt delete existing Docker volume if driver unspecified
  245077. .IP \(bu 2
  245078. 68b51be869 add additional states.dockerng.volume_present() unit tests
  245079. .IP \(bu 2
  245080. 849b94ed73 document the behavior if the driver is unspecified
  245081. .UNINDENT
  245082. .IP \(bu 2
  245083. \fBPR\fP \fI\%#30895\fP: (\fI\%bdrung\fP) Fix various typos
  245084. @ \fI2016\-02\-04 20:55:10 UTC\fP
  245085. .INDENT 2.0
  245086. .IP \(bu 2
  245087. 4372851ad9 Merge pull request \fI\%#30895\fP from bdrung/2015.8
  245088. .IP \(bu 2
  245089. 708f2ff8ea Fix typo reponse \-> response
  245090. .IP \(bu 2
  245091. 72c4eab6d7 Fix typo propogate \-> propagate
  245092. .IP \(bu 2
  245093. 4912e365cb Fix typo directores \-> directories
  245094. .IP \(bu 2
  245095. 74c8aba03e Fix typo exeption \-> exception
  245096. .IP \(bu 2
  245097. 4692d84b07 Fix typos of improvement
  245098. .IP \(bu 2
  245099. 213fc2d858 Fix typo occuring \-> occurring
  245100. .IP \(bu 2
  245101. fe6124003b Fix typo nonexistant \-> nonexistent
  245102. .IP \(bu 2
  245103. 56ce7479b1 Fix typo catched \-> caught
  245104. .IP \(bu 2
  245105. 821e690e65 Fix typo develoment \-> development
  245106. .IP \(bu 2
  245107. b51279e086 Fix typo overide \-> override
  245108. .IP \(bu 2
  245109. 4f2f04ea7d Fix typo relevent \-> relevant
  245110. .IP \(bu 2
  245111. fe8be562c5 Fix typo existance \-> existence
  245112. .IP \(bu 2
  245113. 4a2f4de1a8 Fix typo accross \-> across
  245114. .IP \(bu 2
  245115. 9ae50c993e Fix typo Lenth \-> Length
  245116. .IP \(bu 2
  245117. 20e79981e1 Fix typo preferrably \-> preferably
  245118. .IP \(bu 2
  245119. f8d9f608dd Fix typo addres \-> address
  245120. .IP \(bu 2
  245121. a7f12a13f0 Fix typo keywork \-> keyword
  245122. .IP \(bu 2
  245123. bf92c3663b Fix typo formating \-> formatting
  245124. .IP \(bu 2
  245125. ca4450d881 Fix typo wont \-> won\(aqt
  245126. .IP \(bu 2
  245127. cd72b12161 Fix typo thats \-> that\(aqs
  245128. .IP \(bu 2
  245129. 6db9724ec7 Fix typo doesnt \-> doesn\(aqt
  245130. .IP \(bu 2
  245131. 58d46a7e98 Fix typo certficate \-> certificate
  245132. .UNINDENT
  245133. .IP \(bu 2
  245134. \fBISSUE\fP \fI\%#30887\fP: (\fI\%anlutro\fP) salt\-ssh fails on import msgpack \- 2015.8 (refs: \fI\%#30889\fP)
  245135. .IP \(bu 2
  245136. \fBPR\fP \fI\%#30889\fP: (\fI\%anlutro\fP) Make msgpack an optional dependency in salt.utils.cache
  245137. @ \fI2016\-02\-04 20:53:39 UTC\fP
  245138. .INDENT 2.0
  245139. .IP \(bu 2
  245140. cdca33021a Merge pull request \fI\%#30889\fP from alprs/fix\-cache_msgpack_optional
  245141. .IP \(bu 2
  245142. ab7aae3221 make msgpack an optional dependency in salt.utils.cache
  245143. .UNINDENT
  245144. .IP \(bu 2
  245145. \fBISSUE\fP \fI\%#6602\fP: (\fI\%corywright\fP) Add ability to match on nodegroups to the compound matcher (refs: \fI\%#30896\fP)
  245146. .IP \(bu 2
  245147. \fBISSUE\fP \fI\%#25292\fP: (\fI\%lichtamberg\fP) Nodegroup matching in pillars via salt\-SSH? (refs: \fI\%#30896\fP)
  245148. .IP \(bu 2
  245149. \fBPR\fP \fI\%#30896\fP: (\fI\%vutny\fP) Update nodegroups parameter examples in master config example and docs
  245150. @ \fI2016\-02\-04 20:52:35 UTC\fP
  245151. .INDENT 2.0
  245152. .IP \(bu 2
  245153. 0dff45b4ac Merge pull request \fI\%#30896\fP from vutny/nodegroups\-in\-master\-config\-example
  245154. .IP \(bu 2
  245155. 936c1ff6c8 Add explanation about \fIN@\fP classifier. Inspired by \fI\%#25292\fP
  245156. .IP \(bu 2
  245157. 8bc2426816 Update example in master config documentation reference
  245158. .IP \(bu 2
  245159. ca8c0bdc3f Update nodegroups section example in master config according to docs
  245160. .UNINDENT
  245161. .IP \(bu 2
  245162. \fBISSUE\fP \fI\%#30792\fP: (\fI\%bender\-the\-greatest\fP) Specifying version in pkgs list returns failure even though it succeeds (on Ubuntu) (refs: \fI\%#30898\fP)
  245163. .IP \(bu 2
  245164. \fBPR\fP \fI\%#30898\fP: (\fI\%abednarik\fP) Fix pkg install with version.
  245165. @ \fI2016\-02\-04 20:52:14 UTC\fP
  245166. .INDENT 2.0
  245167. .IP \(bu 2
  245168. 33a400e943 Merge pull request \fI\%#30898\fP from abednarik/fix_pkg_version_debian_family
  245169. .IP \(bu 2
  245170. b15cdfd799 Fix pkg install with version.
  245171. .UNINDENT
  245172. .IP \(bu 2
  245173. \fBISSUE\fP \fI\%#30843\fP: (\fI\%HeathNaylor\fP) SALT.STATES.BOTO_ELB register_instances error (refs: \fI\%#30867\fP)
  245174. .IP \(bu 2
  245175. \fBISSUE\fP \fI\%#30808\fP: (\fI\%Reiner030\fP) Nice2have: better boto error handling when AWS service isn\(aqt available (here: some authentication problems) (refs: \fI\%#30867\fP)
  245176. .IP \(bu 2
  245177. \fBISSUE\fP \fI\%#30300\fP: (\fI\%AkhterAli\fP) boto_route53 __salt__ not defined. (refs: \fI\%#30867\fP, \fI\%#30920\fP)
  245178. .IP \(bu 2
  245179. \fBPR\fP \fI\%#30867\fP: (\fI\%rallytime\fP) Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules
  245180. @ \fI2016\-02\-04 18:37:05 UTC\fP
  245181. .INDENT 2.0
  245182. .IP \(bu 2
  245183. \fBPR\fP \fI\%#30279\fP: (\fI\%cachedout\fP) Allow modules to be packed into boto utils (refs: \fI\%#30867\fP)
  245184. .IP \(bu 2
  245185. 89bac9076a Merge pull request \fI\%#30867\fP from rallytime/boto\-utils\-fix
  245186. .IP \(bu 2
  245187. 6ad7642f6d Lint
  245188. .IP \(bu 2
  245189. 58778dfc88 Fix failing boto_vpc module unit tests
  245190. .IP \(bu 2
  245191. adb85892de Fix failing state module tests
  245192. .IP \(bu 2
  245193. b5ec0991b0 Pylint fix
  245194. .IP \(bu 2
  245195. c26c01568f Don\(aqt use pack=pack. Just pass in pack=__salt__ always.
  245196. .IP \(bu 2
  245197. 6146209c53 Pass in \(aqpack\(aq variable to utils.boto.assign_funcs function from ALL boto modules.
  245198. .UNINDENT
  245199. .IP \(bu 2
  245200. \fBISSUE\fP \fI\%#30798\fP: (\fI\%tbaker57\fP) salt/utils/aws.py has Python 2.7 dependency (refs: \fI\%#30849\fP)
  245201. .IP \(bu 2
  245202. \fBPR\fP \fI\%#30849\fP: (\fI\%jfindlay\fP) utils.aws: use time lib to conver to epoch seconds
  245203. @ \fI2016\-02\-03 22:47:31 UTC\fP
  245204. .INDENT 2.0
  245205. .IP \(bu 2
  245206. 276cf626b0 Merge pull request \fI\%#30849\fP from jfindlay/aws_seconds
  245207. .IP \(bu 2
  245208. 17ae74dab1 utils.aws: use time lib to conver to epoch seconds
  245209. .UNINDENT
  245210. .IP \(bu 2
  245211. \fBISSUE\fP \fI\%#30869\fP: (\fI\%Ch3LL\fP) git pillar: do not see all pillar data with multiple repos in 2015.8.4 (refs: \fI\%#30874\fP)
  245212. .IP \(bu 2
  245213. \fBPR\fP \fI\%#30874\fP: (\fI\%terminalmage\fP) Fix regression in git_pillar when multiple remotes are configured
  245214. @ \fI2016\-02\-03 22:24:02 UTC\fP
  245215. .INDENT 2.0
  245216. .IP \(bu 2
  245217. 4cbc8a8250 Merge pull request \fI\%#30874\fP from terminalmage/issue30869
  245218. .IP \(bu 2
  245219. 9cf0c8126d Fix regression in git_pillar when multiple remotes are configured
  245220. .UNINDENT
  245221. .IP \(bu 2
  245222. \fBISSUE\fP \fI\%#30814\fP: (\fI\%gpenin\fP) [2015.8.*][Ubuntu 12.04 LTS][dpkg.py] Invalid "${binary:Package}" field in dpkg\-query (refs: \fI\%#30850\fP)
  245223. .IP \(bu 2
  245224. \fBPR\fP \fI\%#30850\fP: (\fI\%jfindlay\fP) modules.dpkg._get_pkg_info: allow for ubuntu 12.04
  245225. @ \fI2016\-02\-03 16:33:26 UTC\fP
  245226. .INDENT 2.0
  245227. .IP \(bu 2
  245228. 8410842aea Merge pull request \fI\%#30850\fP from jfindlay/dpkg_var
  245229. .IP \(bu 2
  245230. d53a88762e modules.dpkg._get_pkg_info: handle older ubuntu
  245231. .IP \(bu 2
  245232. d3c6732539 modules.dpkg._get_pkg_info: use pythonic initializers
  245233. .UNINDENT
  245234. .IP \(bu 2
  245235. \fBPR\fP \fI\%#30852\fP: (\fI\%replicant0wnz\fP) Added more descriptive error message
  245236. @ \fI2016\-02\-03 16:30:15 UTC\fP
  245237. .INDENT 2.0
  245238. .IP \(bu 2
  245239. 9a3ec9d028 Merge pull request \fI\%#30852\fP from replicant0wnz/error\-message\-libgit
  245240. .IP \(bu 2
  245241. c3649023b5 Added more descriptive error message
  245242. .UNINDENT
  245243. .IP \(bu 2
  245244. \fBPR\fP \fI\%#30847\fP: (\fI\%terminalmage\fP) Backport \fI\%#30844\fP to 2015.8 branch
  245245. @ \fI2016\-02\-03 16:26:46 UTC\fP
  245246. .INDENT 2.0
  245247. .IP \(bu 2
  245248. \fBPR\fP \fI\%#30844\fP: (\fI\%terminalmage\fP) Perform initial gitfs/git_pillar fetch when init\(aqing remotes on masterless minion (refs: \fI\%#30847\fP)
  245249. .IP \(bu 2
  245250. \fBPR\fP \fI\%#30703\fP: (\fI\%kraney\fP) Fix for gitfs ext_pillar on standalone minion (refs: \fI\%#30844\fP)
  245251. .IP \(bu 2
  245252. 0338f445d9 Merge pull request \fI\%#30847\fP from terminalmage/bp\-30844
  245253. .IP \(bu 2
  245254. 58c4c01743 Add __role to master opts for gitfs integration tests
  245255. .IP \(bu 2
  245256. 17dfec2dd4 Only perform initial fetch when running on a minion
  245257. .IP \(bu 2
  245258. 53c4b4aaa4 gitfs: add initial fetch to pygit2 and dulwich
  245259. .IP \(bu 2
  245260. 78f92e9ab2 Fix for gitfs ext_pillar on standalone minion
  245261. .UNINDENT
  245262. .IP \(bu 2
  245263. \fBPR\fP \fI\%#30860\fP: (\fI\%vutny\fP) Correct installation documentation for RHEL\-based distributions
  245264. @ \fI2016\-02\-03 16:13:09 UTC\fP
  245265. .INDENT 2.0
  245266. .IP \(bu 2
  245267. e51182495c Merge pull request \fI\%#30860\fP from vutny/correct\-doc\-install\-on\-rhel
  245268. .IP \(bu 2
  245269. 6648fd4c62 Correct links to Fedora COPR repositories
  245270. .IP \(bu 2
  245271. 083037fccc Remove duplicate post\-installation tasks section
  245272. .UNINDENT
  245273. .IP \(bu 2
  245274. \fBPR\fP \fI\%#30841\fP: (\fI\%jacobhammons\fP) Release notes for 2015.8.5
  245275. @ \fI2016\-02\-03 00:04:05 UTC\fP
  245276. .INDENT 2.0
  245277. .IP \(bu 2
  245278. f1cf027308 Merge pull request \fI\%#30841\fP from jacobhammons/release\-notes
  245279. .IP \(bu 2
  245280. 6d0562ef86 Release notes for 2015.8.5
  245281. .UNINDENT
  245282. .IP \(bu 2
  245283. \fBISSUE\fP \fI\%#30820\fP: (\fI\%Supermathie\fP) State runs involving watch_in or extending break on 2015.8.4 (refs: \fI\%#30837\fP, \fI\%#30835\fP, \fI\%#30833\fP)
  245284. .IP \(bu 2
  245285. \fBPR\fP \fI\%#30835\fP: (\fI\%terminalmage\fP) Integration test for \fI\%#30820\fP
  245286. @ \fI2016\-02\-02 23:51:53 UTC\fP
  245287. .INDENT 2.0
  245288. .IP \(bu 2
  245289. f8ac6002d3 Merge pull request \fI\%#30835\fP from terminalmage/issue30820
  245290. .IP \(bu 2
  245291. ef14956db0 Integration test for \fI\%#30820\fP
  245292. .UNINDENT
  245293. .IP \(bu 2
  245294. \fBISSUE\fP \fI\%#30820\fP: (\fI\%Supermathie\fP) State runs involving watch_in or extending break on 2015.8.4 (refs: \fI\%#30837\fP, \fI\%#30835\fP, \fI\%#30833\fP)
  245295. .IP \(bu 2
  245296. \fBPR\fP \fI\%#30837\fP: (\fI\%jacobhammons\fP) Added known issue \fI\%#30820\fP to release notes
  245297. @ \fI2016\-02\-02 22:33:43 UTC\fP
  245298. .INDENT 2.0
  245299. .IP \(bu 2
  245300. e0901854ce Merge pull request \fI\%#30837\fP from jacobhammons/release\-notes
  245301. .IP \(bu 2
  245302. 29e12a7fef Added known issue \fI\%#30820\fP to release notes
  245303. .UNINDENT
  245304. .IP \(bu 2
  245305. \fBISSUE\fP \fI\%#28790\fP: (\fI\%jfindlay\fP) add grains (and others?) to salt modindex (refs: \fI\%#30832\fP)
  245306. .IP \(bu 2
  245307. \fBPR\fP \fI\%#30832\fP: (\fI\%rallytime\fP) Add grains modules to salt modindex
  245308. @ \fI2016\-02\-02 21:47:46 UTC\fP
  245309. .INDENT 2.0
  245310. .IP \(bu 2
  245311. b512c7757a Merge pull request \fI\%#30832\fP from rallytime/fix\-28790
  245312. .IP \(bu 2
  245313. ca044dd201 Add grains modules to salt modindex
  245314. .UNINDENT
  245315. .IP \(bu 2
  245316. \fBISSUE\fP \fI\%#28971\fP: (\fI\%belt\-ascendlearning\fP) if the user exists, but has no permissions, rabbitmq_user.list_user_permissions() blows (refs: \fI\%#30822\fP)
  245317. .IP \(bu 2
  245318. \fBPR\fP \fI\%#30822\fP: (\fI\%rallytime\fP) Make sure setting list_user_permissions to [\(aq\(aq, \(aq\(aq, \(aq\(aq] doesn\(aqt stacktrace
  245319. @ \fI2016\-02\-02 21:42:26 UTC\fP
  245320. .INDENT 2.0
  245321. .IP \(bu 2
  245322. 75db37a97d Merge pull request \fI\%#30822\fP from rallytime/rabbitmq\-user\-state\-fixes
  245323. .IP \(bu 2
  245324. 272cc653ca Make sure setting list_user_permissions to [\(aq\(aq, \(aq\(aq, \(aq\(aq] doesn\(aqt stacktrace
  245325. .IP \(bu 2
  245326. a7afa7a368 Don\(aqt return a set() when checking for new tags in rabbitmq_user state
  245327. .UNINDENT
  245328. .IP \(bu 2
  245329. \fBISSUE\fP \fI\%#30820\fP: (\fI\%Supermathie\fP) State runs involving watch_in or extending break on 2015.8.4 (refs: \fI\%#30837\fP, \fI\%#30835\fP, \fI\%#30833\fP)
  245330. .IP \(bu 2
  245331. \fBPR\fP \fI\%#30833\fP: (\fI\%terminalmage\fP) Fix regression in scanning for state with \(aqname\(aq param
  245332. @ \fI2016\-02\-02 21:25:09 UTC\fP
  245333. .INDENT 2.0
  245334. .IP \(bu 2
  245335. 557766f20b Merge pull request \fI\%#30833\fP from terminalmage/issue30820
  245336. .IP \(bu 2
  245337. be3b8e2be6 Fix regression in scanning for state with \(aqname\(aq param
  245338. .UNINDENT
  245339. .IP \(bu 2
  245340. \fBISSUE\fP \fI\%#30722\fP: (\fI\%yannis666\fP) mine config is not merged from minion config and pillar (refs: \fI\%#30757\fP, \fI\%#30823\fP)
  245341. .IP \(bu 2
  245342. \fBPR\fP \fI\%#30823\fP: (\fI\%yannis666\fP) Fix for mine to merge configuration on update.
  245343. @ \fI2016\-02\-02 20:21:24 UTC\fP
  245344. .INDENT 2.0
  245345. .IP \(bu 2
  245346. ec4e2bb9bb Merge pull request \fI\%#30823\fP from yannis666/fix\-for\-mine\-update\-merge2
  245347. .IP \(bu 2
  245348. 99c7c12aba Fix for mine to merge configuration on update. This fix was previously applied to 2015.5. It fixes \fI\%#30722\fP
  245349. .UNINDENT
  245350. .IP \(bu 2
  245351. \fBPR\fP \fI\%#30827\fP: (\fI\%jacobhammons\fP) Version to 2015.8.4, added CVE 2016\-1866 to release notes
  245352. @ \fI2016\-02\-02 20:03:31 UTC\fP
  245353. .INDENT 2.0
  245354. .IP \(bu 2
  245355. d24b9f1ea1 Merge pull request \fI\%#30827\fP from jacobhammons/release\-2015.8
  245356. .IP \(bu 2
  245357. dfc1f7a57d Version to 2015.8.4, added CVE 2016\-1866 to release notes
  245358. .UNINDENT
  245359. .IP \(bu 2
  245360. \fBISSUE\fP \fI\%#30809\fP: (\fI\%anlutro\fP) Master configuration "pillar_merge_lists" has no effect (refs: \fI\%#30813\fP)
  245361. .IP \(bu 2
  245362. \fBISSUE\fP \fI\%#29601\fP: (\fI\%seanjnkns\fP) pillars not merging properly with 2015.8.3 (refs: \fI\%#30062\fP)
  245363. .IP \(bu 2
  245364. \fBPR\fP \fI\%#30813\fP: (\fI\%anlutro\fP) Properly set the default value for pillar_merge_lists
  245365. @ \fI2016\-02\-02 19:53:52 UTC\fP
  245366. .INDENT 2.0
  245367. .IP \(bu 2
  245368. \fBPR\fP \fI\%#30458\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30062\fP to 2015.8 (refs: \fI\%#30813\fP)
  245369. .IP \(bu 2
  245370. \fBPR\fP \fI\%#30062\fP: (\fI\%seanjnkns\fP) Remove recurse_list from pillar_source_merging_strategy and add pilla… (refs: \fI\%#30813\fP, \fI\%#30458\fP)
  245371. .IP \(bu 2
  245372. f83845d7c3 Merge pull request \fI\%#30813\fP from alprs/fix\-pillar_merge_list_default
  245373. .IP \(bu 2
  245374. ec34cabee8 Properly set the default value for pillar_merge_lists
  245375. .UNINDENT
  245376. .IP \(bu 2
  245377. \fBPR\fP \fI\%#30826\fP: (\fI\%cachedout\fP) Fix 30682
  245378. @ \fI2016\-02\-02 19:40:05 UTC\fP
  245379. .INDENT 2.0
  245380. .IP \(bu 2
  245381. a3feba4a26 Merge pull request \fI\%#30826\fP from cachedout/fix_30682
  245382. .IP \(bu 2
  245383. 3b246db0b0 Fix stupid test
  245384. .IP \(bu 2
  245385. 12dc677628 Changed list conversion to use correct method and return whole set
  245386. .IP \(bu 2
  245387. 97eb4b8bf7 Pop values from new_tags set before loading into dict value
  245388. .UNINDENT
  245389. .IP \(bu 2
  245390. \fBPR\fP \fI\%#30818\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30790\fP to 2015.8
  245391. @ \fI2016\-02\-02 18:57:55 UTC\fP
  245392. .INDENT 2.0
  245393. .IP \(bu 2
  245394. \fBPR\fP \fI\%#30790\fP: (\fI\%xmj\fP) salt/modules/sysrc.py: Fix documentation for set_ (refs: \fI\%#30818\fP)
  245395. .IP \(bu 2
  245396. b25b845d05 Merge pull request \fI\%#30818\fP from rallytime/bp\-30790
  245397. .IP \(bu 2
  245398. c7c66afd0c salt/modules/sysrc.py: Fix documentation for set_
  245399. .UNINDENT
  245400. .IP \(bu 2
  245401. \fBISSUE\fP \fI\%#30604\fP: (\fI\%vutny\fP) Reactor overwrites \fIuser\fP argument when calling runner or wheel module (refs: \fI\%#30815\fP)
  245402. .IP \(bu 2
  245403. \fBPR\fP \fI\%#30815\fP: (\fI\%vutny\fP) Pick right user argument for updating reactor function\(aqs low data
  245404. @ \fI2016\-02\-02 16:50:23 UTC\fP
  245405. .INDENT 2.0
  245406. .IP \(bu 2
  245407. 3cb7a9ee54 Merge pull request \fI\%#30815\fP from vutny/reactor\-low\-data\-fix
  245408. .IP \(bu 2
  245409. 4d4d67f9ac Pick right user argument for updating reactor function\(aqs low data
  245410. .UNINDENT
  245411. .IP \(bu 2
  245412. \fBISSUE\fP \fI\%#30676\fP: (\fI\%bwillcox\fP) testsystemd.sh tries to use \(aqwhich\(aq that does not exist in centos 7 lxc rootfs (refs: \fI\%#30747\fP)
  245413. .IP \(bu 2
  245414. \fBPR\fP \fI\%#30747\fP: (\fI\%jfindlay\fP) modules.lxc.running_systemd: use \fIcommand \-v\fP not \fIwhich\fP
  245415. @ \fI2016\-02\-02 14:54:17 UTC\fP
  245416. .INDENT 2.0
  245417. .IP \(bu 2
  245418. 36752906c4 Merge pull request \fI\%#30747\fP from jfindlay/lxc_which
  245419. .IP \(bu 2
  245420. f8f867570f modules.lxc.running_systemd: use \fIcommand \-v\fP not \fIwhich\fP
  245421. .UNINDENT
  245422. .IP \(bu 2
  245423. \fBPR\fP \fI\%#30800\fP: (\fI\%twangboy\fP) Ability to handle special case installations
  245424. @ \fI2016\-02\-02 14:25:44 UTC\fP
  245425. .INDENT 2.0
  245426. .IP \(bu 2
  245427. 8abb5b30ad Merge pull request \fI\%#30800\fP from twangboy/chrome
  245428. .IP \(bu 2
  245429. fe0747c14e Fix another typo
  245430. .IP \(bu 2
  245431. 2815efc522 Fixes spelling
  245432. .IP \(bu 2
  245433. 6027e1ec53 Updates documentation to reflect new features
  245434. .IP \(bu 2
  245435. 1444ab1a48 Adds return success/failure for reg.broadcast_change
  245436. .IP \(bu 2
  245437. f2a36904d2 Fixes problem with missing key in old
  245438. .IP \(bu 2
  245439. 581a4df523 Added logic for dealing with latest in remove
  245440. .IP \(bu 2
  245441. c4357a6d80 Adds more logic for detecting latest
  245442. .IP \(bu 2
  245443. 40a66a2501 Logic for handling version: latest
  245444. .IP \(bu 2
  245445. b7dadd3b9b Fixes message formatting
  245446. .IP \(bu 2
  245447. a305c8ceae Added more descriptive failure message
  245448. .IP \(bu 2
  245449. fe49dcb57c Added broadcast change to force registry update
  245450. .UNINDENT
  245451. .IP \(bu 2
  245452. \fBPR\fP \fI\%#30794\fP: (\fI\%rallytime\fP) A spelling fix and some spacing fixes for the boto_ec2 module docs
  245453. @ \fI2016\-02\-01 21:45:33 UTC\fP
  245454. .INDENT 2.0
  245455. .IP \(bu 2
  245456. 7b44c0844d Merge pull request \fI\%#30794\fP from rallytime/boto_ec2\-mod\-doc\-fix
  245457. .IP \(bu 2
  245458. 5188bc4b96 A spelling fix and some spacing fixes for the boto_ec2 module docs
  245459. .UNINDENT
  245460. .IP \(bu 2
  245461. \fBISSUE\fP \fI\%#23789\fP: (\fI\%hoonetorg\fP) log output of salt orchestrate run changed between 2014.7.5 and 2015.5.0 significantly \- hard to debug (refs: \fI\%#30756\fP)
  245462. .IP \(bu 2
  245463. \fBPR\fP \fI\%#30756\fP: (\fI\%basepi\fP) [2015.8] Fix two error conditions in the highstate outputter
  245464. @ \fI2016\-02\-01 21:39:23 UTC\fP
  245465. .INDENT 2.0
  245466. .IP \(bu 2
  245467. 1f87ad0387 Merge pull request \fI\%#30756\fP from basepi/highstate.outputter.23789
  245468. .IP \(bu 2
  245469. 16ad24d42c Import the logger
  245470. .IP \(bu 2
  245471. 1b5c6a240c Handle non\-string types in comment
  245472. .IP \(bu 2
  245473. 11e34d047b Ensure rdurations are all floats for the highstate outputter
  245474. .UNINDENT
  245475. .IP \(bu 2
  245476. \fBPR\fP \fI\%#30788\fP: (\fI\%rallytime\fP) Fix incorrect doc example for dellchassis blade_idrac state
  245477. @ \fI2016\-02\-01 21:20:29 UTC\fP
  245478. .INDENT 2.0
  245479. .IP \(bu 2
  245480. 46adb2d1af Merge pull request \fI\%#30788\fP from rallytime/fix\-dellchassis\-doc\-example
  245481. .IP \(bu 2
  245482. bfc16d9f7a Fix incorrect doc example for dellchassis blade_idrac state
  245483. .UNINDENT
  245484. .IP \(bu 2
  245485. \fBISSUE\fP \fI\%#29161\fP: (\fI\%jefferyharrell\fP) saltmod.state\(aqs ret argument seems to do nothing (refs: \fI\%#30791\fP, \fI\%#29207\fP)
  245486. .IP \(bu 2
  245487. \fBPR\fP \fI\%#30791\fP: (\fI\%Ch3LL\fP) do not shadow ret function argument for salt.function
  245488. @ \fI2016\-02\-01 20:07:31 UTC\fP
  245489. .INDENT 2.0
  245490. .IP \(bu 2
  245491. \fBPR\fP \fI\%#29207\fP: (\fI\%jfindlay\fP) do not shadow ret function argument (refs: \fI\%#30791\fP)
  245492. .IP \(bu 2
  245493. 333041aeb1 Merge pull request \fI\%#30791\fP from Ch3LL/2015.8
  245494. .IP \(bu 2
  245495. d54f220c0a do not shadow ret function argument for salt.function
  245496. .UNINDENT
  245497. .IP \(bu 2
  245498. \fBISSUE\fP \fI\%#30706\fP: (\fI\%carsonoid\fP) minion traceback when Log4mongo installed but not configured (refs: \fI\%#30726\fP)
  245499. .IP \(bu 2
  245500. \fBPR\fP \fI\%#30726\fP: (\fI\%sjmh\fP) Fix improper use of yield in generator
  245501. @ \fI2016\-02\-01 18:13:24 UTC\fP
  245502. .INDENT 2.0
  245503. .IP \(bu 2
  245504. ce3be26e8f Merge pull request \fI\%#30726\fP from sjmh/fix/log4mongo
  245505. .IP \(bu 2
  245506. d501f1cc03 Fix improper use of yield in generator
  245507. .UNINDENT
  245508. .IP \(bu 2
  245509. \fBPR\fP \fI\%#30752\fP: (\fI\%terminalmage\fP) Backport systemd and yum/dnf optimizations from develop into 2015.8
  245510. @ \fI2016\-02\-01 18:11:42 UTC\fP
  245511. .INDENT 2.0
  245512. .IP \(bu 2
  245513. a49b75e065 Merge pull request \fI\%#30752\fP from terminalmage/zh459
  245514. .IP \(bu 2
  245515. 8a836c88f4 Update systemd tests
  245516. .IP \(bu 2
  245517. 54ddb92474 Backport yum/dnf optimizations from develop into 2015.8
  245518. .IP \(bu 2
  245519. 1ec13699b6 Backport systemd optimizations from develop into 2015.8
  245520. .UNINDENT
  245521. .IP \(bu 2
  245522. \fBPR\fP \fI\%#30759\fP: (\fI\%thusoy\fP) Allow managing empty files
  245523. @ \fI2016\-01\-31 19:06:37 UTC\fP
  245524. .INDENT 2.0
  245525. .IP \(bu 2
  245526. ea15628446 Merge pull request \fI\%#30759\fP from thusoy/empty\-files
  245527. .IP \(bu 2
  245528. c6244b46ac Allow managing empty files
  245529. .UNINDENT
  245530. .IP \(bu 2
  245531. \fBPR\fP \fI\%#30758\fP: (\fI\%thusoy\fP) Support mounting labelled volumes with multiple drives
  245532. @ \fI2016\-01\-31 19:04:03 UTC\fP
  245533. .INDENT 2.0
  245534. .IP \(bu 2
  245535. 120d8344e4 Merge pull request \fI\%#30758\fP from thusoy/multi\-device\-mount
  245536. .IP \(bu 2
  245537. 9a6dc4898f Support mounting labelled volumes with multiple drives
  245538. .UNINDENT
  245539. .IP \(bu 2
  245540. \fBPR\fP \fI\%#30686\fP: (\fI\%cachedout\fP) Master\-side pillar caching
  245541. @ \fI2016\-01\-31 18:52:47 UTC\fP
  245542. .INDENT 2.0
  245543. .IP \(bu 2
  245544. 9e8af2f994 Merge pull request \fI\%#30686\fP from cachedout/pillar_cache_2015_8
  245545. .IP \(bu 2
  245546. 02d8ff626a Pillar cache for master
  245547. .UNINDENT
  245548. .IP \(bu 2
  245549. \fBISSUE\fP \fI\%#30662\fP: (\fI\%JoaquinVeira\fP) UnicodeDecodeError on 2015.8 (refs: \fI\%#30675\fP)
  245550. .IP \(bu 2
  245551. \fBPR\fP \fI\%#30675\fP: (\fI\%jfindlay\fP) handle non\-ascii minion IDs
  245552. @ \fI2016\-01\-29 23:12:10 UTC\fP
  245553. .INDENT 2.0
  245554. .IP \(bu 2
  245555. 4008e1719a Merge pull request \fI\%#30675\fP from jfindlay/decode_id
  245556. .IP \(bu 2
  245557. 8f6737b6c4 output.key: decode minion ids to unicode
  245558. .IP \(bu 2
  245559. 7a16f1c941 config: decode id to unicode
  245560. .UNINDENT
  245561. .IP \(bu 2
  245562. \fBISSUE\fP \fI\%#29602\fP: (\fI\%multani\fP) cloud.action start raises "got an unexpected keyword argument \(aqkwargs\(aq" (refs: \fI\%#30691\fP)
  245563. .IP \(bu 2
  245564. \fBPR\fP \fI\%#30691\fP: (\fI\%rallytime\fP) Make sure we use the "instance" kwarg in cloud.action.
  245565. @ \fI2016\-01\-29 23:11:37 UTC\fP
  245566. .INDENT 2.0
  245567. .IP \(bu 2
  245568. \fBPR\fP \fI\%#30217\fP: (\fI\%pass\-by\-value\fP) Make sure cloud actions can be called via salt run (refs: \fI\%#31061\fP, \fI\%#30691\fP)
  245569. .IP \(bu 2
  245570. 5ca75fbdc9 Merge pull request \fI\%#30691\fP from rallytime/cloud\-action\-instance
  245571. .IP \(bu 2
  245572. 0873a41601 Make note of empty dict return in docstring
  245573. .IP \(bu 2
  245574. 64a73502ed Make sure we just the "instance" kwarg in cloud.action.
  245575. .UNINDENT
  245576. .IP \(bu 2
  245577. \fBPR\fP \fI\%#30713\fP: (\fI\%rallytime\fP) Fix\-up autodoc proxy modules for consistency
  245578. @ \fI2016\-01\-29 23:10:54 UTC\fP
  245579. .INDENT 2.0
  245580. .IP \(bu 2
  245581. 7c632d61d3 Merge pull request \fI\%#30713\fP from rallytime/proxy\-module\-docs
  245582. .IP \(bu 2
  245583. 86c3f2016e Fix\-up autodoc proxy modules for consistency
  245584. .UNINDENT
  245585. .IP \(bu 2
  245586. \fBISSUE\fP \fI\%#30654\fP: (\fI\%Horgix\fP) Misleading locale(mod) module behavior (refs: \fI\%#30741\fP)
  245587. .IP \(bu 2
  245588. \fBPR\fP \fI\%#30741\fP: (\fI\%jfindlay\fP) states.locale.__virtual__: return exec mod load err
  245589. @ \fI2016\-01\-29 23:00:41 UTC\fP
  245590. .INDENT 2.0
  245591. .IP \(bu 2
  245592. 1f5f41cc07 Merge pull request \fI\%#30741\fP from jfindlay/locale_state
  245593. .IP \(bu 2
  245594. a3a2a44735 states.locale.__virtual__: return exec mod load err
  245595. .UNINDENT
  245596. .IP \(bu 2
  245597. \fBPR\fP \fI\%#30751\fP: (\fI\%basepi\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  245598. @ \fI2016\-01\-29 22:43:41 UTC\fP
  245599. .INDENT 2.0
  245600. .IP \(bu 2
  245601. 716c2bb7c8 Merge pull request \fI\%#30751\fP from basepi/merge\-forward\-2015.8
  245602. .IP \(bu 2
  245603. 84eeab7720 Merge remote\-tracking branch \(aqupstream/2015.5\(aq into merge\-forward\-2015.8
  245604. .IP \(bu 2
  245605. 076268089a Merge pull request \fI\%#30699\fP from abednarik/save_load_retry_time
  245606. .INDENT 2.0
  245607. .IP \(bu 2
  245608. 186872cf49 Add Retry to save_load.
  245609. .UNINDENT
  245610. .IP \(bu 2
  245611. 8d79d1b9c7 Merge pull request \fI\%#30659\fP from sjmh/fix\-scsi
  245612. .INDENT 2.0
  245613. .IP \(bu 2
  245614. 3544dd995e Fix lsscsi issues for certain platforms
  245615. .UNINDENT
  245616. .UNINDENT
  245617. .IP \(bu 2
  245618. \fBPR\fP \fI\%#30720\fP: (\fI\%clinta\fP) x509.pem_managed does not return changes dict
  245619. @ \fI2016\-01\-29 17:07:26 UTC\fP
  245620. .INDENT 2.0
  245621. .IP \(bu 2
  245622. 1f0d0f591e Merge pull request \fI\%#30720\fP from clinta/fix\-pem\-managed\-changes
  245623. .IP \(bu 2
  245624. 5c28efa9d3 return changes on test as well
  245625. .IP \(bu 2
  245626. e611f0269c fix typos and no changes returned for pem_managed
  245627. .UNINDENT
  245628. .IP \(bu 2
  245629. \fBPR\fP \fI\%#30687\fP: (\fI\%clarkperkins\fP) Setting \(aqdel_root_vol_on_destroy\(aq changes the root volume type to \(aqstandard\(aq
  245630. @ \fI2016\-01\-28 00:02:26 UTC\fP
  245631. .INDENT 2.0
  245632. .IP \(bu 2
  245633. \fBPR\fP \fI\%#30677\fP: (\fI\%clarkperkins\fP) Fix EC2 volume creation logic (refs: \fI\%#30687\fP)
  245634. .IP \(bu 2
  245635. 36db0f99ed Merge pull request \fI\%#30687\fP from clarkperkins/bugfix/del\-root\-vol\-loses\-type
  245636. .IP \(bu 2
  245637. a71e181c18 Don\(aqt set on a volume when creating from a snapshot
  245638. .IP \(bu 2
  245639. 8cef43c68d When setting del_root_vol_on_destroy, preserve the existing volumeType on the AMI
  245640. .UNINDENT
  245641. .IP \(bu 2
  245642. \fBISSUE\fP \fI\%#28257\fP: (\fI\%peterzalewski\fP) git_pillar remote with multiple branches yields conflicting cachedirs or checkout conflict (refs: \fI\%#30673\fP)
  245643. .IP \(bu 2
  245644. \fBPR\fP \fI\%#30673\fP: (\fI\%terminalmage\fP) Properly derive the git_pillar cachedir from the id instead of the URL
  245645. @ \fI2016\-01\-27 23:52:01 UTC\fP
  245646. .INDENT 2.0
  245647. .IP \(bu 2
  245648. 690b8d26b9 Merge pull request \fI\%#30673\fP from terminalmage/issue28257
  245649. .IP \(bu 2
  245650. 8b5933fab4 Properly derive the git_pillar cachedir from the id instead of the URL
  245651. .IP \(bu 2
  245652. 62654ade1d Add additional reason for pillar env being found
  245653. .UNINDENT
  245654. .IP \(bu 2
  245655. \fBPR\fP \fI\%#30666\fP: (\fI\%cachedout\fP) Fix grains cache
  245656. @ \fI2016\-01\-27 22:23:12 UTC\fP
  245657. .INDENT 2.0
  245658. .IP \(bu 2
  245659. 9f0e97693c Merge pull request \fI\%#30666\fP from cachedout/grains_cache_fix
  245660. .IP \(bu 2
  245661. 52716694f5 Fix grains cache
  245662. .UNINDENT
  245663. .IP \(bu 2
  245664. \fBPR\fP \fI\%#30623\fP: (\fI\%twangboy\fP) Added service.config function
  245665. @ \fI2016\-01\-27 21:08:12 UTC\fP
  245666. .INDENT 2.0
  245667. .IP \(bu 2
  245668. 8b17c77d72 Merge pull request \fI\%#30623\fP from twangboy/add_config
  245669. .IP \(bu 2
  245670. c70e182cdf Fixed indenting... got messed up somehow...
  245671. .IP \(bu 2
  245672. 246f75f2dd Renamed variables, updated docs, added tag
  245673. .IP \(bu 2
  245674. a4534ee94c Fixed documentation
  245675. .IP \(bu 2
  245676. 54b50236a6 Fixed another error
  245677. .IP \(bu 2
  245678. 76a0cf33e5 Fixed syntax error
  245679. .IP \(bu 2
  245680. 3937380b79 Added service.config function
  245681. .UNINDENT
  245682. .IP \(bu 2
  245683. \fBPR\fP \fI\%#30678\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30668\fP to 2015.8
  245684. @ \fI2016\-01\-27 20:39:25 UTC\fP
  245685. .INDENT 2.0
  245686. .IP \(bu 2
  245687. \fBPR\fP \fI\%#30668\fP: (\fI\%multani\fP) Fix salt.modules.mount documentation (refs: \fI\%#30678\fP)
  245688. .IP \(bu 2
  245689. 6af1927bd3 Merge pull request \fI\%#30678\fP from rallytime/bp\-30668
  245690. .IP \(bu 2
  245691. 7c7076e6af Fix salt.modules.mount documentation
  245692. .UNINDENT
  245693. .IP \(bu 2
  245694. \fBPR\fP \fI\%#30677\fP: (\fI\%clarkperkins\fP) Fix EC2 volume creation logic (refs: \fI\%#30687\fP)
  245695. @ \fI2016\-01\-27 18:09:29 UTC\fP
  245696. .INDENT 2.0
  245697. .IP \(bu 2
  245698. 6c71b29f25 Merge pull request \fI\%#30677\fP from clarkperkins/bugfix/ec2\-volume\-logic
  245699. .IP \(bu 2
  245700. bfec052e7d Added some extra documentation
  245701. .IP \(bu 2
  245702. ed2eee8e39 Allow volume params to be set even when specifying a snapshot
  245703. .UNINDENT
  245704. .IP \(bu 2
  245705. \fBISSUE\fP \fI\%#18980\fP: (\fI\%lrhazi\fP) salt\-cloud: ExtraData: unpack(b) received extra data. (refs: \fI\%#30671\fP)
  245706. .IP \(bu 2
  245707. \fBPR\fP \fI\%#30680\fP: (\fI\%cro\fP) Merge forward from 2015.5, primarily for \fI\%#30671\fP
  245708. @ \fI2016\-01\-27 17:56:48 UTC\fP
  245709. .INDENT 2.0
  245710. .IP \(bu 2
  245711. \fBPR\fP \fI\%#30671\fP: (\fI\%techhat\fP) Add file locking to cloud index (refs: \fI\%#30680\fP)
  245712. .IP \(bu 2
  245713. 36142390d4 Merge pull request \fI\%#30680\fP from cro/mf20155\-20158\-20160127
  245714. .IP \(bu 2
  245715. f8ae3a20ff Merge remote\-tracking branch \(aqupstream/2015.5\(aq into mf20155\-20158\-20160127 Mergeforward from 2015.5.
  245716. .IP \(bu 2
  245717. 516919525a Merge pull request \fI\%#30671\fP from techhat/lockcloud
  245718. .INDENT 2.0
  245719. .IP \(bu 2
  245720. 4719f8d4ea Whitespace
  245721. .IP \(bu 2
  245722. 8e7eca23e4 Add file locking to cloud index
  245723. .UNINDENT
  245724. .UNINDENT
  245725. .IP \(bu 2
  245726. \fBPR\fP \fI\%#30663\fP: (\fI\%isbm\fP) Zypper: latest version bugfix and epoch support feature
  245727. @ \fI2016\-01\-27 17:10:42 UTC\fP
  245728. .INDENT 2.0
  245729. .IP \(bu 2
  245730. f6feddecb4 Merge pull request \fI\%#30663\fP from isbm/isbm\-zypper\-latest\-versionfail
  245731. .IP \(bu 2
  245732. 4336487765 Add support for epoch in Zypper
  245733. .IP \(bu 2
  245734. 12d515fa0c Fix package status filtering on latest version
  245735. .UNINDENT
  245736. .IP \(bu 2
  245737. \fBPR\fP \fI\%#30652\fP: (\fI\%mew1033\fP) Fix sh beacon
  245738. @ \fI2016\-01\-27 17:00:29 UTC\fP
  245739. .INDENT 2.0
  245740. .IP \(bu 2
  245741. 9d8ddeb525 Merge pull request \fI\%#30652\fP from mew1033/fix\-sh\-beacon
  245742. .IP \(bu 2
  245743. 256d037e0f Fix sh beacon
  245744. .UNINDENT
  245745. .IP \(bu 2
  245746. \fBISSUE\fP \fI\%#29678\fP: (\fI\%dschaller\fP) NPM Install Forces Silent (refs: \fI\%#29650\fP)
  245747. .IP \(bu 2
  245748. \fBPR\fP \fI\%#30657\fP: (\fI\%jfindlay\fP) [2015.8] Backport \fI\%#30378\fP and \fI\%#29650\fP
  245749. @ \fI2016\-01\-27 00:34:00 UTC\fP
  245750. .INDENT 2.0
  245751. .IP \(bu 2
  245752. \fBPR\fP \fI\%#30378\fP: (\fI\%dschaller\fP) Adding silent flag to npm.bootstrap (refs: \fI\%#30657\fP)
  245753. .IP \(bu 2
  245754. \fBPR\fP \fI\%#29650\fP: (\fI\%dschaller\fP) Adding ability to disable npm install silent flag (refs: \fI\%#30657\fP)
  245755. .IP \(bu 2
  245756. 1fa1963895 Merge pull request \fI\%#30657\fP from jfindlay/backport_quiet
  245757. .IP \(bu 2
  245758. ca4adbf382 Adding ability to disable npm install silent flag
  245759. .IP \(bu 2
  245760. afe149eb6d Adding ability to disable npm install silent flag
  245761. .IP \(bu 2
  245762. c1101b5f0b Adding ability to disable npm install silent flag
  245763. .IP \(bu 2
  245764. d29ad8bbf6 Adding ability to disable npm install silent flag
  245765. .IP \(bu 2
  245766. 7a21dbf0d9 Adding silent flag to npm.bootstrap
  245767. .IP \(bu 2
  245768. 354c0bdf26 Adding silent flag to npm.bootstrap
  245769. .UNINDENT
  245770. .IP \(bu 2
  245771. \fBPR\fP \fI\%#30656\fP: (\fI\%rallytime\fP) [2015.8] Merge 2015.5 into 2015.8
  245772. @ \fI2016\-01\-27 00:33:30 UTC\fP
  245773. .INDENT 2.0
  245774. .IP \(bu 2
  245775. 3621651bf8 Merge pull request \fI\%#30656\fP from rallytime/merge\-forward\-2015.8
  245776. .IP \(bu 2
  245777. 76ab6981a5 Merge branch \(aq2015.5\(aq into 2015.8
  245778. .IP \(bu 2
  245779. 643c9c9616 Merge pull request \fI\%#30586\fP from abednarik/fix_comment_line_perms
  245780. .IP \(bu 2
  245781. 8b395a42cb Fix comment_line permissions.
  245782. .UNINDENT
  245783. .IP \(bu 2
  245784. \fBPR\fP \fI\%#30644\fP: (\fI\%tbaker57\fP) Another go at fixing 30573
  245785. @ \fI2016\-01\-26 20:18:41 UTC\fP
  245786. .INDENT 2.0
  245787. .IP \(bu 2
  245788. 30e03a8b0c Merge pull request \fI\%#30644\fP from tbaker57/another_go_at_30573
  245789. .IP \(bu 2
  245790. 267b8827fd Another go at fixing 30573
  245791. .UNINDENT
  245792. .IP \(bu 2
  245793. \fBPR\fP \fI\%#30611\fP: (\fI\%isbm\fP) Bugfix: Zypper \fIpkg.latest\fP crash fix
  245794. @ \fI2016\-01\-26 16:35:47 UTC\fP
  245795. .INDENT 2.0
  245796. .IP \(bu 2
  245797. 7d307e2a04 Merge pull request \fI\%#30611\fP from isbm/isbm\-zypper\-latest
  245798. .IP \(bu 2
  245799. a7141be651 Put \(aqkwargs\(aq on its own line according to the common pattern
  245800. .IP \(bu 2
  245801. ee9b3f859b Bugfix: do not treat SLS id as a package name if an empty \(aqpkgs\(aq list specified.
  245802. .IP \(bu 2
  245803. d3cfd8ed41 Cleanup formatting
  245804. .IP \(bu 2
  245805. 1bdbaac658 Add error handling
  245806. .IP \(bu 2
  245807. 2ec5cec8a4 Add a new line before the last return
  245808. .IP \(bu 2
  245809. 424383b8c4 Remove unnecessary complexity and string increment
  245810. .IP \(bu 2
  245811. 48e8d90343 Avoid backslashes where they are not needed
  245812. .IP \(bu 2
  245813. 6df5d500f0 Use regexp type for the string.
  245814. .IP \(bu 2
  245815. c2ca141956 Get version as an explicit parameter
  245816. .IP \(bu 2
  245817. 9e944db706 Check the version of the package, instead of the package name
  245818. .IP \(bu 2
  245819. 59ea758efb Fix formatting
  245820. .IP \(bu 2
  245821. 514f6349d4 Bugfix: crash on "key not found" error
  245822. .IP \(bu 2
  245823. ea75f55a1a Fix PEP8: line continuation
  245824. .IP \(bu 2
  245825. ece35ebc26 Replace old fashion string memcopy with the list
  245826. .IP \(bu 2
  245827. 716445e588 Fix PEP8: line continuation
  245828. .IP \(bu 2
  245829. 0f11079ff9 Fix PEP8 for the operator
  245830. .UNINDENT
  245831. .IP \(bu 2
  245832. \fBISSUE\fP \fI\%#7811\fP: (\fI\%kiall\fP) RabbitMQ Cluster/Plugins/Policy etc states do not track changes, preventing "watch" from working (refs: \fI\%#30631\fP)
  245833. .IP \(bu 2
  245834. \fBPR\fP \fI\%#30631\fP: (\fI\%rallytime\fP) Refactor rabbitmq_cluster states to use test=true functionality correctly
  245835. @ \fI2016\-01\-26 16:23:49 UTC\fP
  245836. .INDENT 2.0
  245837. .IP \(bu 2
  245838. 5bc11d7539 Merge pull request \fI\%#30631\fP from rallytime/fix\-7811
  245839. .IP \(bu 2
  245840. bf9ffded6d Refactor rabbitmq_cluster states to use test=true functionality correctly
  245841. .UNINDENT
  245842. .IP \(bu 2
  245843. \fBISSUE\fP \fI\%#25658\fP: (\fI\%tsaridas\fP) rabbitmq_policy.present state (refs: \fI\%#30628\fP)
  245844. .IP \(bu 2
  245845. \fBPR\fP \fI\%#30628\fP: (\fI\%rallytime\fP) Refactor rabbitmq_policy states to use test=true functionality correctly
  245846. @ \fI2016\-01\-26 00:21:03 UTC\fP
  245847. .INDENT 2.0
  245848. .IP \(bu 2
  245849. ef6c4e8377 Merge pull request \fI\%#30628\fP from rallytime/fix\-25658
  245850. .IP \(bu 2
  245851. 1e8e86007c Refactor rabbitmq_policy states to use test=true functionality correctly
  245852. .UNINDENT
  245853. .IP \(bu 2
  245854. \fBPR\fP \fI\%#30624\fP: (\fI\%cro\fP) Remove bad symlinks from osx pkg dir
  245855. @ \fI2016\-01\-26 00:02:25 UTC\fP
  245856. .INDENT 2.0
  245857. .IP \(bu 2
  245858. 80d0e428aa Merge pull request \fI\%#30624\fP from cro/remove_bad_symlinks
  245859. .IP \(bu 2
  245860. f5fd38624e Remove bad symlinks in osx pkg dirs
  245861. .UNINDENT
  245862. .IP \(bu 2
  245863. \fBISSUE\fP \fI\%#30621\fP: (\fI\%zer0def\fP) Current latest (2015.8.3) list of builtin states docu doesn\(aqt list \(aqglance\(aq (refs: \fI\%#30622\fP)
  245864. .IP \(bu 2
  245865. \fBPR\fP \fI\%#30622\fP: (\fI\%rallytime\fP) Add glance state to list of state modules
  245866. @ \fI2016\-01\-25 23:55:54 UTC\fP
  245867. .INDENT 2.0
  245868. .IP \(bu 2
  245869. 330ea9a292 Merge pull request \fI\%#30622\fP from rallytime/fix\-30621
  245870. .IP \(bu 2
  245871. 57b7e6cc93 Add glance state to list of state modules
  245872. .UNINDENT
  245873. .IP \(bu 2
  245874. \fBISSUE\fP \fI\%#19288\fP: (\fI\%oba11\fP) AssociatePublicIpAddress doesnt work with salt\-cloud 2014.7.0 (refs: \fI\%#20972\fP, \fI\%#30591\fP)
  245875. .IP \(bu 2
  245876. \fBPR\fP \fI\%#30618\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30591\fP to 2015.8
  245877. @ \fI2016\-01\-25 23:55:20 UTC\fP
  245878. .INDENT 2.0
  245879. .IP \(bu 2
  245880. \fBPR\fP \fI\%#30591\fP: (\fI\%mlalpho\fP) salt\-cloud\-clouds\-ec2 AssociatePublicIpAddress fix (refs: \fI\%#30618\fP)
  245881. .IP \(bu 2
  245882. \fBPR\fP \fI\%#20972\fP: (\fI\%JohannesEbke\fP) Fix interface cleanup when using AssociatePublicIpAddress in \fI\%#19288\fP (refs: \fI\%#30591\fP)
  245883. .IP \(bu 2
  245884. f00d8f398a Merge pull request \fI\%#30618\fP from rallytime/bp\-30591
  245885. .IP \(bu 2
  245886. 2c9d59fa42 looks like a re\-merge of PR \fI\%#20972\fP which relates to \fI\%#19288\fP
  245887. .UNINDENT
  245888. .IP \(bu 2
  245889. \fBISSUE\fP \fI\%#30587\fP: (\fI\%sjorge\fP) [docs] docs confusing on client_acl and external_auth usage (refs: \fI\%#30625\fP)
  245890. .IP \(bu 2
  245891. \fBPR\fP \fI\%#30625\fP: (\fI\%jfindlay\fP) doc.topics.eauth: clarify client_acl vs eauth
  245892. @ \fI2016\-01\-25 23:03:24 UTC\fP
  245893. .INDENT 2.0
  245894. .IP \(bu 2
  245895. 6b940d9655 Merge pull request \fI\%#30625\fP from jfindlay/eauth_acl
  245896. .IP \(bu 2
  245897. b5e2cff028 doc.topics.eauth: clarify client_acl vs eauth
  245898. .UNINDENT
  245899. .UNINDENT
  245900. .SS Salt 2015.8.8.2 Release Notes
  245901. .sp
  245902. Version 2015.8.8.2 is a bugfix release for 2015.8.0\&.
  245903. .SS Fixes to 2015.8.8
  245904. .sp
  245905. Salt 2015.8.8.2 includes fixes for the following known issues in 2015.8.8:
  245906. .INDENT 0.0
  245907. .IP \(bu 2
  245908. Key master with value [...] has an invalid type of list Error (\fI\%issue #32044\fP)
  245909. .IP \(bu 2
  245910. Failed to import module win_dacl Error (\fI\%issue #32004\fP)
  245911. .IP \(bu 2
  245912. Wrong validation type for file_ignore_glob key (\fI\%issue #32114\fP)
  245913. .IP \(bu 2
  245914. Fix file.managed for windows (\fI\%issue #31969\fP)
  245915. .UNINDENT
  245916. .sp
  245917. \fBIMPORTANT:\fP
  245918. .INDENT 0.0
  245919. .INDENT 3.5
  245920. \fI\%issue #32183\fP prevents Salt Cloud from installing the Salt minion on new
  245921. systems. To workaround this issue, call \fBsalt\-cloud \-u\fP to update the
  245922. bootstrap script to the latest version.
  245923. .UNINDENT
  245924. .UNINDENT
  245925. .SS Changelog for v2015.8.8..v2015.8.8.2
  245926. .sp
  245927. \fIGenerated at: 2018\-05\-28 00:29:12 UTC\fP
  245928. .INDENT 0.0
  245929. .IP \(bu 2
  245930. 403563e441 Change type check errors to debug loglevel
  245931. .IP \(bu 2
  245932. 8323005b3d Support multiple valid option types when performing type checks
  245933. .IP \(bu 2
  245934. 2f95082a96 Fixed validation type for file_ignore_glob Fixes \fI\%#32114\fP
  245935. .IP \(bu 2
  245936. 2685e61d9e Move constant declaration into member variable to avoid issues when modules can\(aqt be loaded.
  245937. .IP \(bu 2
  245938. bc10d7dede Add apply_template_on_contents for windows
  245939. .UNINDENT
  245940. .SS Salt 2015.8.9 Release Notes
  245941. .sp
  245942. Version 2015.8.9 is a bugfix release for 2015.8.0\&.
  245943. .SS Statistics
  245944. .INDENT 0.0
  245945. .IP \(bu 2
  245946. Total Merges: \fB145\fP
  245947. .IP \(bu 2
  245948. Total Issue References: \fB110\fP
  245949. .IP \(bu 2
  245950. Total PR References: \fB264\fP
  245951. .IP \(bu 2
  245952. Contributors: \fB71\fP (\fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%DylanFrese\fP, \fI\%Ferbla\fP, \fI\%Kurocon\fP, \fI\%Lothiraldan\fP, \fI\%RuriRyan\fP, \fI\%Talkless\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%Xiami2012\fP, \fI\%abednarik\fP, \fI\%afletch\fP, \fI\%ahammond\fP, \fI\%ahus1\fP, \fI\%aletourneau\fP, \fI\%alxf\fP, \fI\%amontalban\fP, \fI\%anlutro\fP, \fI\%arthurlogilab\fP, \fI\%atengler\fP, \fI\%basepi\fP, \fI\%bdrung\fP, \fI\%bradthurber\fP, \fI\%cachedout\fP, \fI\%captaininspiration\fP, \fI\%cedwards\fP, \fI\%clarkperkins\fP, \fI\%clinta\fP, \fI\%cro\fP, \fI\%dmurphy18\fP, \fI\%exowaucka\fP, \fI\%garethgreenaway\fP, \fI\%guettli\fP, \fI\%idonin\fP, \fI\%isbm\fP, \fI\%jacobhammons\fP, \fI\%jbonachera\fP, \fI\%jfindlay\fP, \fI\%jfray\fP, \fI\%junster1\fP, \fI\%justinta\fP, \fI\%krak3n\fP, \fI\%lalmeras\fP, \fI\%lloydoliver\fP, \fI\%lomeroe\fP, \fI\%mcalmer\fP, \fI\%mitar\fP, \fI\%mrproper\fP, \fI\%multani\fP, \fI\%nmadhok\fP, \fI\%notpeter\fP, \fI\%onorua\fP, \fI\%paclat\fP, \fI\%papertigers\fP, \fI\%rallytime\fP, \fI\%rkgrunt\fP, \fI\%sakateka\fP, \fI\%sbreidba\fP, \fI\%schancel\fP, \fI\%sjorge\fP, \fI\%stk0vrfl0w\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%ticosax\fP, \fI\%tomlaredo\fP, \fI\%twangboy\fP, \fI\%twellspring\fP, \fI\%vutny\fP, \fI\%whiteinge\fP)
  245953. .UNINDENT
  245954. .SS Important Post\-Upgrade Instructions for Linux Mint
  245955. .sp
  245956. As a result of some upstream changes, the \fBos\fP grain on Mint Linux is now
  245957. being detected as \fBLinuxMint\fP (\fI\%issue #33295\fP). Run the following command
  245958. \fBafter you upgrade to 2015.8.9\fP to reset the \fBos\fP grain to \fBMint\fP and the
  245959. \fBos_family\fP grain to \fBDebian\fP:
  245960. .INDENT 0.0
  245961. .INDENT 3.5
  245962. .sp
  245963. .nf
  245964. .ft C
  245965. salt \-G \(aqos:LinuxMint\(aq grains.setvals "{\(aqos\(aq: \(aqMint\(aq, \(aqos_family\(aq: \(aqDebian\(aq}"
  245966. .ft P
  245967. .fi
  245968. .UNINDENT
  245969. .UNINDENT
  245970. .SS Changelog for v2015.8.8.2..v2015.8.9
  245971. .sp
  245972. \fIGenerated at: 2018\-05\-28 00:36:04 UTC\fP
  245973. .INDENT 0.0
  245974. .IP \(bu 2
  245975. \fBPR\fP \fI\%#33310\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  245976. .IP \(bu 2
  245977. \fBPR\fP \fI\%#33293\fP: (\fI\%twangboy\fP) Fix minion start retry on Windows (2015.8)
  245978. @ \fI2016\-05\-17 17:03:41 UTC\fP
  245979. .INDENT 2.0
  245980. .IP \(bu 2
  245981. e3eff27c55 Merge pull request \fI\%#33293\fP from twangboy/fix_33277_2015_8
  245982. .IP \(bu 2
  245983. 652f0079db Fix minion start retry on Windows
  245984. .UNINDENT
  245985. .IP \(bu 2
  245986. \fBISSUE\fP \fI\%#31270\fP: (\fI\%4001982248998\fP) acl.present: TypeError on subsequent runs (refs: \fI\%#33172\fP)
  245987. .INDENT 2.0
  245988. .IP \(bu 2
  245989. \fBPR\fP \fI\%#33305\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33172\fP to 2015.8
  245990. .IP \(bu 2
  245991. \fBPR\fP \fI\%#33172\fP: (\fI\%Kurocon\fP) linux_acl: Allow \(aq\-\(aq as a separation character in ACL permissions. Fi… (refs: \fI\%#33305\fP)
  245992. .UNINDENT
  245993. .IP \(bu 2
  245994. \fBISSUE\fP \fI\%#33299\fP: (\fI\%jbonachera\fP) salt\-cloud: scp_file() and sftp_file() don\(aqt work with ipv4\-only hosts (refs: \fI\%#33300\fP)
  245995. .IP \(bu 2
  245996. \fBISSUE\fP \fI\%#33243\fP: (\fI\%jbonachera\fP) salt\-cloud: wait_for_port() doesn\(aqt work with ipv4\-only hosts (refs: \fI\%#33246\fP, \fI\%#33300\fP)
  245997. .INDENT 2.0
  245998. .IP \(bu 2
  245999. \fBPR\fP \fI\%#33300\fP: (\fI\%jbonachera\fP) Handle more ipv6 error as an exception \fI\%#33299\fP
  246000. .UNINDENT
  246001. .IP \(bu 2
  246002. \fBISSUE\fP \fI\%#26062\fP: (\fI\%silenius\fP) service.status is broken under FreeBSD (refs: \fI\%#33294\fP)
  246003. .IP \(bu 2
  246004. \fBISSUE\fP \fI\%#23435\fP: (\fI\%JaseFace\fP) service.status currently reports an error on FreeBSD if the service isn\(aqt running (refs: \fI\%#33294\fP)
  246005. .INDENT 2.0
  246006. .IP \(bu 2
  246007. \fBPR\fP \fI\%#33294\fP: (\fI\%terminalmage\fP) Ignore retcode when checking service\(aqs status
  246008. .UNINDENT
  246009. .IP \(bu 2
  246010. \fBPR\fP \fI\%#33274\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246011. @ \fI2016\-05\-16 16:41:32 UTC\fP
  246012. .INDENT 2.0
  246013. .IP \(bu 2
  246014. 06edba448e Merge pull request \fI\%#33274\fP from rallytime/merge\-2015.8
  246015. .IP \(bu 2
  246016. bf641d3a66 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246017. .IP \(bu 2
  246018. 8fa72f6588 Clarify file.replace MULTILINE flag interaction with regex anchors (\fI\%#33137\fP)
  246019. .IP \(bu 2
  246020. 4b1f460256 update 2015.5.11 release notes (\fI\%#33236\fP)
  246021. .UNINDENT
  246022. .IP \(bu 2
  246023. \fBISSUE\fP \fI\%#30258\fP: (\fI\%rallytime\fP) Changes dictionary return should be mentioned in test state docs (refs: \fI\%#33254\fP)
  246024. .INDENT 2.0
  246025. .IP \(bu 2
  246026. \fBPR\fP \fI\%#33254\fP: (\fI\%rallytime\fP) Add comment for test=true w/o changes ret and add changes dict example
  246027. .UNINDENT
  246028. .IP \(bu 2
  246029. \fBISSUE\fP \fI\%#30946\fP: (\fI\%rallytime\fP) Update SaltStack Git Policy Documentation (refs: \fI\%#33252\fP)
  246030. .INDENT 2.0
  246031. .IP \(bu 2
  246032. \fBPR\fP \fI\%#33252\fP: (\fI\%rallytime\fP) Update Git Policy docs to match Contribution guide
  246033. .UNINDENT
  246034. .IP \(bu 2
  246035. \fBISSUE\fP \fI\%#33238\fP: (\fI\%clinta\fP) x509 CSR fails if the csr does not contain any extensions (refs: \fI\%#33239\fP)
  246036. .INDENT 2.0
  246037. .IP \(bu 2
  246038. \fBPR\fP \fI\%#33239\fP: (\fI\%clinta\fP) Fix \fI\%#33238\fP
  246039. .IP \(bu 2
  246040. \fBPR\fP \fI\%#33245\fP: (\fI\%terminalmage\fP) Backport \fI\%#33244\fP to 2015.8
  246041. .IP \(bu 2
  246042. \fBPR\fP \fI\%#33244\fP: (\fI\%terminalmage\fP) Properly report on invalid gitfs/git_pillar/winrepo repos (refs: \fI\%#33245\fP)
  246043. .IP \(bu 2
  246044. \fBPR\fP \fI\%#32238\fP: (\fI\%ticosax\fP) [gitfs] only 2 argument are passed to this template when render error message (refs: \fI\%#33244\fP, \fI\%#33245\fP)
  246045. .UNINDENT
  246046. .IP \(bu 2
  246047. \fBISSUE\fP \fI\%#30605\fP: (\fI\%eyj\fP) Update development/conventions/release.rst docs \- they\(aqre out of date with the current process. (refs: \fI\%#33253\fP)
  246048. .IP \(bu 2
  246049. \fBPR\fP \fI\%#33253\fP: (\fI\%rallytime\fP) Update the release process docs
  246050. @ \fI2016\-05\-13 21:28:11 UTC\fP
  246051. .INDENT 2.0
  246052. .IP \(bu 2
  246053. 94a53da92e Merge pull request \fI\%#33253\fP from rallytime/fix\-30605
  246054. .IP \(bu 2
  246055. a129d05b6d Update the release process docs
  246056. .IP \(bu 2
  246057. \fBPR\fP \fI\%#33251\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246058. .UNINDENT
  246059. .IP \(bu 2
  246060. \fBISSUE\fP \fI\%#33243\fP: (\fI\%jbonachera\fP) salt\-cloud: wait_for_port() doesn\(aqt work with ipv4\-only hosts (refs: \fI\%#33246\fP, \fI\%#33300\fP)
  246061. .INDENT 2.0
  246062. .IP \(bu 2
  246063. \fBPR\fP \fI\%#33246\fP: (\fI\%techhat\fP) Handle ipv6 error as an exception
  246064. .UNINDENT
  246065. .IP \(bu 2
  246066. \fBISSUE\fP \fI\%#33073\fP: (\fI\%robnagler\fP) TypeError: unhashable type: \(aqdict\(aq (refs: \fI\%#33213\fP)
  246067. .INDENT 2.0
  246068. .IP \(bu 2
  246069. \fBPR\fP \fI\%#33213\fP: (\fI\%terminalmage\fP) Check rendered YAML for invalid keys
  246070. .UNINDENT
  246071. .IP \(bu 2
  246072. \fBISSUE\fP \fI\%#21903\fP: (\fI\%basepi\fP) Document _file.conf pattern for master.d/ and minion.d/ (refs: \fI\%#33224\fP)
  246073. .INDENT 2.0
  246074. .IP \(bu 2
  246075. \fBPR\fP \fI\%#33224\fP: (\fI\%rallytime\fP) Make note of files that begin with \(aq_\(aq in master.d or minion.d dirs
  246076. .UNINDENT
  246077. .IP \(bu 2
  246078. \fBISSUE\fP \fI\%#31975\fP: (\fI\%rajvidhimar\fP) Docstrings not reflected in the salt documenation. (refs: \fI\%#33150\fP)
  246079. .INDENT 2.0
  246080. .IP \(bu 2
  246081. \fBPR\fP \fI\%#33150\fP: (\fI\%rallytime\fP) Gate jnpr imports in salt.proxy.junos.py
  246082. .UNINDENT
  246083. .IP \(bu 2
  246084. \fBISSUE\fP \fI\%#21315\fP: (\fI\%ryan\-lane\fP) No example documentation for http.query state (refs: \fI\%#33222\fP)
  246085. .INDENT 2.0
  246086. .IP \(bu 2
  246087. \fBPR\fP \fI\%#33222\fP: (\fI\%rallytime\fP) Add docs for the http state
  246088. .UNINDENT
  246089. .IP \(bu 2
  246090. \fBISSUE\fP \fI\%#29796\fP: (\fI\%vutny\fP) Fail to use \(aqhighstate\(aq outputter explicitly (refs: \fI\%#33215\fP)
  246091. .INDENT 2.0
  246092. .IP \(bu 2
  246093. \fBPR\fP \fI\%#33215\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace when using \-\-out=highstate at CLI during state run.
  246094. .IP \(bu 2
  246095. \fBPR\fP \fI\%#33219\fP: (\fI\%lalmeras\fP) propagate opts to salt.util.http call
  246096. .IP \(bu 2
  246097. \fBPR\fP \fI\%#33154\fP: (\fI\%lalmeras\fP) propagate opts to salt.util.http call (refs: \fI\%#33219\fP)
  246098. .IP \(bu 2
  246099. \fBPR\fP \fI\%#33237\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246100. .UNINDENT
  246101. .IP \(bu 2
  246102. \fBPR\fP \fI\%#33217\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246103. @ \fI2016\-05\-12 22:45:39 UTC\fP
  246104. .INDENT 2.0
  246105. .IP \(bu 2
  246106. 6dc5d605b1 Merge pull request \fI\%#33217\fP from rallytime/merge\-forward\-2015.8
  246107. .IP \(bu 2
  246108. 4655607b58 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246109. .IP \(bu 2
  246110. 698f1eb657 Merge pull request \fI\%#33211\fP from cachedout/user_kill
  246111. .INDENT 2.0
  246112. .IP \(bu 2
  246113. d4f2e5baa7 Don\(aqt try to kill a parent proc if we can\(aqt
  246114. .UNINDENT
  246115. .IP \(bu 2
  246116. f86832911e Resolve issue with pkg module on Mint Linux (\fI\%#33205\fP)
  246117. .IP \(bu 2
  246118. a09e1b6335 Add pip installed and removed test (\fI\%#33178\fP)
  246119. .IP \(bu 2
  246120. 96e3586f12 update 2015.5.11 release notes (\fI\%#33197\fP)
  246121. .IP \(bu 2
  246122. 09b072a412 Fix file.managed for Windows (\fI\%#33181\fP)
  246123. .IP \(bu 2
  246124. \fBPR\fP \fI\%#33207\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246125. .UNINDENT
  246126. .IP \(bu 2
  246127. \fBISSUE\fP \fI\%#32917\fP: (\fI\%bradthurber\fP) standalone minion pygit2 pillar data doesn\(aqt refresh without manual git fetch (refs: \fI\%#33204\fP)
  246128. .INDENT 2.0
  246129. .IP \(bu 2
  246130. \fBPR\fP \fI\%#33204\fP: (\fI\%terminalmage\fP) Add a fetch when compiling git_pillar for masterless minions
  246131. .UNINDENT
  246132. .IP \(bu 2
  246133. \fBISSUE\fP \fI\%#33162\fP: (\fI\%jfindlay\fP) Key error with salt.utils.cloud.cache_node and EC2 (refs: \fI\%#33164\fP)
  246134. .INDENT 2.0
  246135. .IP \(bu 2
  246136. \fBPR\fP \fI\%#33164\fP: (\fI\%jfindlay\fP) cloud.clouds.ec2: cache each named node
  246137. .UNINDENT
  246138. .IP \(bu 2
  246139. \fBISSUE\fP \fI\%#32385\fP: (\fI\%aronneagu\fP) git.latest throws expected string or buffer (refs: \fI\%#33203\fP)
  246140. .INDENT 2.0
  246141. .IP \(bu 2
  246142. \fBPR\fP \fI\%#33203\fP: (\fI\%terminalmage\fP) Properly handle failed git commands when redirect_stderr=True
  246143. .UNINDENT
  246144. .IP \(bu 2
  246145. \fBISSUE\fP \fI\%#32685\fP: (\fI\%gidantribal\fP) git state does not take into account ssh config file (refs: \fI\%#33152\fP)
  246146. .INDENT 2.0
  246147. .IP \(bu 2
  246148. \fBPR\fP \fI\%#33152\fP: (\fI\%terminalmage\fP) Don\(aqt force use of global ssh_config when git identity file is specified
  246149. .IP \(bu 2
  246150. \fBPR\fP \fI\%#33198\fP: (\fI\%jfindlay\fP) update 2015.8.9 release notes
  246151. .UNINDENT
  246152. .IP \(bu 2
  246153. \fBPR\fP \fI\%#33188\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246154. @ \fI2016\-05\-11 22:32:29 UTC\fP
  246155. .INDENT 2.0
  246156. .IP \(bu 2
  246157. 6177a6a36f Merge pull request \fI\%#33188\fP from rallytime/merge\-2015.8
  246158. .IP \(bu 2
  246159. f12bba6ebc Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246160. .IP \(bu 2
  246161. 30868ab06c [2015.5] Update to latest bootstrap script v2016.05.11 (\fI\%#33185\fP)
  246162. .IP \(bu 2
  246163. 264ad34b3b Pip fix (\fI\%#33180\fP)
  246164. .IP \(bu 2
  246165. 43288b268d add 2015.5.11 release notes (\fI\%#33160\fP)
  246166. .IP \(bu 2
  246167. e0da8fda7d [2015.5] Update to latest bootstrap script v2016.05.10 (\fI\%#33155\fP)
  246168. .IP \(bu 2
  246169. \fBPR\fP \fI\%#33161\fP: (\fI\%jfindlay\fP) add 2015.8.9 release notes
  246170. .IP \(bu 2
  246171. \fBPR\fP \fI\%#33156\fP: (\fI\%rallytime\fP) [2015.8] Update to latest bootstrap script v2016.05.10
  246172. .UNINDENT
  246173. .IP \(bu 2
  246174. \fBISSUE\fP \fI\%#25040\fP: (\fI\%yi9\fP) grains.get can\(aqt get minion\(aqs /etc/salt/grains value in multi\-master set up (refs: \fI\%#33142\fP)
  246175. .INDENT 2.0
  246176. .IP \(bu 2
  246177. \fBPR\fP \fI\%#33142\fP: (\fI\%cachedout\fP) Hash fileclients by opts
  246178. .UNINDENT
  246179. .IP \(bu 2
  246180. \fBISSUE\fP \fI\%#22142\fP: (\fI\%multani\fP) State \fIacl.present\fP doesn\(aqt allow to set "default" ACLs (refs: \fI\%#31769\fP)
  246181. .INDENT 2.0
  246182. .IP \(bu 2
  246183. \fBPR\fP \fI\%#33139\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31769\fP to 2015.8
  246184. .IP \(bu 2
  246185. \fBPR\fP \fI\%#31769\fP: (\fI\%DylanFrese\fP) Fix acl.present and acl.absent when adding default ACLs (refs: \fI\%#33139\fP)
  246186. .UNINDENT
  246187. .IP \(bu 2
  246188. \fBPR\fP \fI\%#33144\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246189. @ \fI2016\-05\-10 19:40:31 UTC\fP
  246190. .INDENT 2.0
  246191. .IP \(bu 2
  246192. 2800762b44 Merge pull request \fI\%#33144\fP from rallytime/merge\-2015.8
  246193. .IP \(bu 2
  246194. 449176f06e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246195. .IP \(bu 2
  246196. 6cd1641840 Merge pull request \fI\%#33141\fP from jtand/disable_local_pkg_install_test
  246197. .INDENT 2.0
  246198. .IP \(bu 2
  246199. 8b1e34fb17 Skipping salt\-call \-\-local test
  246200. .UNINDENT
  246201. .UNINDENT
  246202. .IP \(bu 2
  246203. \fBPR\fP \fI\%#33140\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246204. @ \fI2016\-05\-10 16:57:55 UTC\fP
  246205. .INDENT 2.0
  246206. .IP \(bu 2
  246207. 72d075e14e Merge pull request \fI\%#33140\fP from rallytime/merge\-2015.8
  246208. .IP \(bu 2
  246209. c732c8104b Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246210. .IP \(bu 2
  246211. 878d34a865 Doc mock decorators (\fI\%#33132\fP)
  246212. .UNINDENT
  246213. .IP \(bu 2
  246214. \fBISSUE\fP \fI\%#32834\fP: (\fI\%beardedeagle\fP) Masterless Minion \- Unable to query job cache (refs: \fI\%#33017\fP, \fI\%#33100\fP)
  246215. .INDENT 2.0
  246216. .IP \(bu 2
  246217. \fBPR\fP \fI\%#33100\fP: (\fI\%rallytime\fP) If cache_jobs: True is set, populate the local job cache when running salt\-call
  246218. .IP \(bu 2
  246219. \fBPR\fP \fI\%#33135\fP: (\fI\%stk0vrfl0w\fP) Fix broken parsing of usermgmt.conf on OpenBSD
  246220. .IP \(bu 2
  246221. \fBPR\fP \fI\%#33129\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33101\fP to 2015.8
  246222. .IP \(bu 2
  246223. \fBPR\fP \fI\%#33101\fP: (\fI\%thatch45\fP) Add a check that the cmdline of the found proc matches (refs: \fI\%#33129\fP)
  246224. .IP \(bu 2
  246225. \fBPR\fP \fI\%#33064\fP: (\fI\%terminalmage\fP) salt.utils.gitfs: fix formatting for warning messages
  246226. .UNINDENT
  246227. .IP \(bu 2
  246228. \fBISSUE\fP \fI\%#33058\fP: (\fI\%aclemetson\fP) Unable to run "win_servermanager.list_available" on minion. (refs: \fI\%#33099\fP)
  246229. .INDENT 2.0
  246230. .IP \(bu 2
  246231. \fBPR\fP \fI\%#33099\fP: (\fI\%twangboy\fP) Fix 33058
  246232. .UNINDENT
  246233. .IP \(bu 2
  246234. \fBISSUE\fP \fI\%#32999\fP: (\fI\%basepi\fP) Stacktrace for \fImaster_finger\fP mismatch on minion (refs: \fI\%#33106\fP)
  246235. .IP \(bu 2
  246236. \fBPR\fP \fI\%#33106\fP: (\fI\%abednarik\fP) Moved _finger_fail method to parent class.
  246237. @ \fI2016\-05\-09 16:31:09 UTC\fP
  246238. .INDENT 2.0
  246239. .IP \(bu 2
  246240. 8acc3147d6 Merge pull request \fI\%#33106\fP from abednarik/abednarik_master_Finger_stacktrace
  246241. .IP \(bu 2
  246242. 91a69ba54a Moved _finger_fail method to parent class.
  246243. .IP \(bu 2
  246244. \fBPR\fP \fI\%#33102\fP: (\fI\%Ch3LL\fP) clarify docs that map is designed to be run once. is not stateful
  246245. .IP \(bu 2
  246246. \fBPR\fP \fI\%#33098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33061\fP to 2015.8
  246247. .IP \(bu 2
  246248. \fBPR\fP \fI\%#33061\fP: (\fI\%ahammond\fP) cloud.query needs to define mapper.opts (refs: \fI\%#33098\fP)
  246249. .UNINDENT
  246250. .IP \(bu 2
  246251. \fBPR\fP \fI\%#33096\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246252. @ \fI2016\-05\-06 19:27:57 UTC\fP
  246253. .INDENT 2.0
  246254. .IP \(bu 2
  246255. c1f7aed8a5 Merge pull request \fI\%#33096\fP from rallytime/merge\-2015.8
  246256. .IP \(bu 2
  246257. 0fd5e9d157 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246258. .IP \(bu 2
  246259. 30edeadafd Lower display of msgpack failure msg to debug (\fI\%#33078\fP)
  246260. .IP \(bu 2
  246261. d4928c5a22 Use saltstack repo in buildpackage.py on CentOS 5 (\fI\%#33080\fP)
  246262. .IP \(bu 2
  246263. 61d126cb98 add test for installing package while using salt\-call \-\-local (\fI\%#33025\fP)
  246264. .IP \(bu 2
  246265. 6d3e4e8935 File and User test fixes for 2015.5 on Fedora23 (\fI\%#33055\fP)
  246266. .IP \(bu 2
  246267. d48b2b8b52 test pillar.items output (\fI\%#33060\fP)
  246268. .IP \(bu 2
  246269. 398793bfc0 Fix minor document error of test.assertion (\fI\%#33067\fP)
  246270. .IP \(bu 2
  246271. f8757631b2 Saltfile with pillar tests (\fI\%#33045\fP)
  246272. .IP \(bu 2
  246273. 1d7892421e Backport \fI\%#33021\fP manually to 2015.5 (\fI\%#33044\fP)
  246274. .IP \(bu 2
  246275. f00b5f91b3 Add run_on_start docs to schedule.rst (\fI\%#32958\fP)
  246276. .IP \(bu 2
  246277. \fBPR\fP \fI\%#32865\fP: (\fI\%idonin\fP) salt\-cloud: fix ipv6\-only virtual machines
  246278. .IP \(bu 2
  246279. \fBPR\fP \fI\%#33084\fP: (\fI\%jfindlay\fP) modules.npm: do not log npm \-\-version at info level
  246280. .UNINDENT
  246281. .IP \(bu 2
  246282. \fBISSUE\fP \fI\%#33068\fP: (\fI\%pythonwood\fP) salt\-ssh do not support centos5 because old\-version\-python ? (refs: \fI\%#33081\fP)
  246283. .IP \(bu 2
  246284. \fBPR\fP \fI\%#33081\fP: (\fI\%jfindlay\fP) ssh docs: install py\-2.6 for RHEL 5
  246285. @ \fI2016\-05\-06 15:18:39 UTC\fP
  246286. .INDENT 2.0
  246287. .IP \(bu 2
  246288. 3808d05838 Merge pull request \fI\%#33081\fP from jfindlay/ssh_doc
  246289. .IP \(bu 2
  246290. a2c927b173 ssh docs: install py\-2.6 for RHEL 5
  246291. .UNINDENT
  246292. .IP \(bu 2
  246293. \fBPR\fP \fI\%#33088\fP: (\fI\%isbm\fP) Bugfix: Restore boolean values from the repo configuration
  246294. @ \fI2016\-05\-06 15:13:27 UTC\fP
  246295. .INDENT 2.0
  246296. .IP \(bu 2
  246297. 6d604926d3 Merge pull request \fI\%#33088\fP from isbm/isbm\-zypper\-fix\-booleans
  246298. .IP \(bu 2
  246299. 3ca203eb8e Bugfix (follow\-up): setting priority requires non\-positive integer
  246300. .IP \(bu 2
  246301. 79a46e091c Add repo config test
  246302. .IP \(bu 2
  246303. 222b8369ca Add test data for repos
  246304. .IP \(bu 2
  246305. b746fa35f0 Bugfix: Restore boolean values from the repo configuration
  246306. .UNINDENT
  246307. .IP \(bu 2
  246308. \fBISSUE\fP \fI\%#12422\fP: (\fI\%creaky\fP) Bug: file.blockreplace inserts additional blank line on multi\-line content (refs: \fI\%#33049\fP)
  246309. .INDENT 2.0
  246310. .IP \(bu 2
  246311. \fBPR\fP \fI\%#33082\fP: (\fI\%Ch3LL\fP) Fix tests for file.blockplace to remove newline
  246312. .IP \(bu 2
  246313. \fBPR\fP \fI\%#33049\fP: (\fI\%thatch45\fP) Don\(aqt append a newline when creating new content with blockreplace (refs: \fI\%#33082\fP)
  246314. .UNINDENT
  246315. .IP \(bu 2
  246316. \fBPR\fP \fI\%#32892\fP: (\fI\%isbm\fP) Resolve Zypper locks on asynchronous calls
  246317. @ \fI2016\-05\-05 14:34:59 UTC\fP
  246318. .INDENT 2.0
  246319. .IP \(bu 2
  246320. fb89877cf2 Merge pull request \fI\%#32892\fP from isbm/isbm\-zypper\-env\-variables
  246321. .IP \(bu 2
  246322. 1601a7e07a Prevent the use of "refreshable" together with "nolock" option.
  246323. .IP \(bu 2
  246324. 52e1be2fa9 Remove unused variable in a constructor. Adjust the docstring accordingly.
  246325. .IP \(bu 2
  246326. 7e00f566ef Move log message down to the point where it actually sleeps. Rephrase the message.
  246327. .IP \(bu 2
  246328. 4b7dab83ff Fix PID file path for SLE11
  246329. .IP \(bu 2
  246330. 7f37961d4b Rename tags
  246331. .IP \(bu 2
  246332. c55b0fab58 Test DOM parsing
  246333. .IP \(bu 2
  246334. c54e928e4f Add exception handling test
  246335. .IP \(bu 2
  246336. 3d245bbe84 Parse DOM out of the box, when XML mode is called
  246337. .IP \(bu 2
  246338. 6a98f523ac Add Zypper caller test suite
  246339. .IP \(bu 2
  246340. f189f90124 Bugfix: always trigger __getattr__ to reset and increment the configuration before the call.
  246341. .IP \(bu 2
  246342. 7e1712dd80 Fix tests according to the new calling model
  246343. .IP \(bu 2
  246344. 3a30b7fbcd Remove an obsolete test case
  246345. .IP \(bu 2
  246346. 6e5877a2ee Add Zypper Call mock
  246347. .IP \(bu 2
  246348. bb5540cb4a Bugfix: inverted logic on raising (or not) exceptions
  246349. .IP \(bu 2
  246350. ce9262fe71 Make Zypper caller module\-level reusable
  246351. .IP \(bu 2
  246352. 77dc8695af Update docstrings according to the bugfix
  246353. .IP \(bu 2
  246354. 46d86b21d5 Bugfix: accept refresh override param
  246355. .IP \(bu 2
  246356. cb40618262 Fire an event about released Zypper with its result
  246357. .IP \(bu 2
  246358. 0728f0bc00 Replace string values with the constants
  246359. .IP \(bu 2
  246360. 6af3f7141b Check if zypper lock exists and add more debug logging
  246361. .IP \(bu 2
  246362. 0167b30a75 Add Zypper lock constant
  246363. .IP \(bu 2
  246364. 370ff21d36 Fire an event to the Master about blocked Zypper.
  246365. .IP \(bu 2
  246366. 1727ca3de2 Use new Zypper call implementation
  246367. .IP \(bu 2
  246368. 485164aa5c Remove blocking\-prone Zypper call implementation
  246369. .IP \(bu 2
  246370. f161f0612c Implement block\-proof Zypper call implementation
  246371. .IP \(bu 2
  246372. baf35ed708 Remove one\-char variables
  246373. .IP \(bu 2
  246374. 2c94eb016f Remove an unused variable
  246375. .IP \(bu 2
  246376. 6869ebc557 Remove an empty line
  246377. .IP \(bu 2
  246378. 7e06489da9 Remove verbose wrapping
  246379. .IP \(bu 2
  246380. 2131ff04af Standarize zypper call to "run_all"
  246381. .IP \(bu 2
  246382. 046ef44ca3 Bugfix: version_cmp crashes in CLI if there are versions, that looks like integer or float.
  246383. .IP \(bu 2
  246384. b869a92eea Change Zypper calls to a single point
  246385. .UNINDENT
  246386. .IP \(bu 2
  246387. \fBISSUE\fP \fI\%#24237\fP: (\fI\%Grokzen\fP) Minion schedule return data missing some fields (refs: \fI\%#33039\fP)
  246388. .INDENT 2.0
  246389. .IP \(bu 2
  246390. \fBPR\fP \fI\%#33039\fP: (\fI\%The\-Loeki\fP) Add fun_args to scheduled return data (part of \fI\%#24237\fP)
  246391. .UNINDENT
  246392. .IP \(bu 2
  246393. \fBISSUE\fP \fI\%#12422\fP: (\fI\%creaky\fP) Bug: file.blockreplace inserts additional blank line on multi\-line content (refs: \fI\%#33049\fP)
  246394. .INDENT 2.0
  246395. .IP \(bu 2
  246396. \fBPR\fP \fI\%#33049\fP: (\fI\%thatch45\fP) Don\(aqt append a newline when creating new content with blockreplace (refs: \fI\%#33082\fP)
  246397. .UNINDENT
  246398. .IP \(bu 2
  246399. \fBISSUE\fP \fI\%#24996\fP: (\fI\%danlsgiga\fP) \-\-failhard option not working as expected (refs: \fI\%#33048\fP)
  246400. .INDENT 2.0
  246401. .IP \(bu 2
  246402. \fBPR\fP \fI\%#33048\fP: (\fI\%rallytime\fP) Pass all data to batch.run() call when using \-\-failhard
  246403. .UNINDENT
  246404. .IP \(bu 2
  246405. \fBISSUE\fP \fI\%#32452\fP: (\fI\%nicholascapo\fP) cmd.run_all with \-\-batch and \-\-failhard gives no output on failure (refs: \fI\%#33050\fP)
  246406. .INDENT 2.0
  246407. .IP \(bu 2
  246408. \fBPR\fP \fI\%#33050\fP: (\fI\%rallytime\fP) Display command output when command fails with batch + failhard options
  246409. .UNINDENT
  246410. .IP \(bu 2
  246411. \fBISSUE\fP \fI\%#33041\fP: (\fI\%anitakrueger\fP) boto_elb.present security_groups kwarg is a list \- needs documentation (refs: \fI\%#33053\fP)
  246412. .INDENT 2.0
  246413. .IP \(bu 2
  246414. \fBPR\fP \fI\%#33053\fP: (\fI\%rallytime\fP) Allow security_groups kwarg for boto_elb.present to be string or list
  246415. .IP \(bu 2
  246416. \fBPR\fP \fI\%#33054\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246417. .IP \(bu 2
  246418. \fBPR\fP \fI\%#33056\fP: (\fI\%justinta\fP) File and User test fixes for 2015.8 on Fedora23
  246419. .UNINDENT
  246420. .IP \(bu 2
  246421. \fBISSUE\fP \fI\%#32472\fP: (\fI\%esn89\fP) salt\-minion is stuck in a restart loop with not much info: (refs: \fI\%#33030\fP)
  246422. .INDENT 2.0
  246423. .IP \(bu 2
  246424. \fBPR\fP \fI\%#33040\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33030\fP to 2015.8
  246425. .IP \(bu 2
  246426. \fBPR\fP \fI\%#33030\fP: (\fI\%thatch45\fP) When we restart the minion we should show the error that caused it (refs: \fI\%#33040\fP)
  246427. .UNINDENT
  246428. .IP \(bu 2
  246429. \fBISSUE\fP \fI\%#32834\fP: (\fI\%beardedeagle\fP) Masterless Minion \- Unable to query job cache (refs: \fI\%#33017\fP, \fI\%#33100\fP)
  246430. .INDENT 2.0
  246431. .IP \(bu 2
  246432. \fBPR\fP \fI\%#33017\fP: (\fI\%rallytime\fP) Update the docs for saltutil.find_job to be more clear/accurate
  246433. .IP \(bu 2
  246434. \fBPR\fP \fI\%#33031\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33002\fP to 2015.8
  246435. .IP \(bu 2
  246436. \fBPR\fP \fI\%#33002\fP: (\fI\%whiteinge\fP) Add saltenv to the cmd.script state function (refs: \fI\%#33031\fP)
  246437. .IP \(bu 2
  246438. \fBPR\fP \fI\%#33021\fP: (\fI\%UtahDave\fP) Fix syndic regression (refs: \fI\%#33044\fP)
  246439. .UNINDENT
  246440. .IP \(bu 2
  246441. \fBISSUE\fP \fI\%#11801\fP: (\fI\%slai\fP) Salt does not match user names properly under Windows (refs: \fI\%#32674\fP)
  246442. .INDENT 2.0
  246443. .IP \(bu 2
  246444. \fBPR\fP \fI\%#32674\fP: (\fI\%twangboy\fP) Compare uid and gid instead of name and group
  246445. .UNINDENT
  246446. .IP \(bu 2
  246447. \fBISSUE\fP \fI\%#32856\fP: (\fI\%DeanScothern\fP) jjid not shown when running the salt command line with \-\-batch\-size using either \-\-verbose or \-\-show\-jid with certain salt versions (refs: \fI\%#32996\fP)
  246448. .IP \(bu 2
  246449. \fBISSUE\fP \fI\%#31738\fP: (\fI\%igorwidlinski\fP) salt \-\-show\-jid does not show job id when run in batch mode (refs: \fI\%#32450\fP)
  246450. .INDENT 2.0
  246451. .IP \(bu 2
  246452. \fBPR\fP \fI\%#32996\fP: (\fI\%rallytime\fP) Allow batch mode to use verbose option, as well as show_jid.
  246453. .IP \(bu 2
  246454. \fBPR\fP \fI\%#32450\fP: (\fI\%cachedout\fP) Pass parser options into batch mode (refs: \fI\%#32996\fP)
  246455. .UNINDENT
  246456. .IP \(bu 2
  246457. \fBISSUE\fP \fI\%#32954\fP: (\fI\%atengler\fP) glusterfs.peered fails with \(aqNoneType\(aq object is not iterable (refs: \fI\%#32955\fP)
  246458. .INDENT 2.0
  246459. .IP \(bu 2
  246460. \fBPR\fP \fI\%#32955\fP: (\fI\%atengler\fP) Fixed glusterfs.peered output
  246461. .UNINDENT
  246462. .IP \(bu 2
  246463. \fBISSUE\fP \fI\%#26011\fP: (\fI\%rodriguezsergio\fP) states.virtualenv != modules.virtualenv (refs: \fI\%#32994\fP)
  246464. .INDENT 2.0
  246465. .IP \(bu 2
  246466. \fBPR\fP \fI\%#32994\fP: (\fI\%rallytime\fP) Clarify some arg docs for virtualenv state
  246467. .IP \(bu 2
  246468. \fBPR\fP \fI\%#32986\fP: (\fI\%justinta\fP) Fix boto_secgroup_test
  246469. .UNINDENT
  246470. .IP \(bu 2
  246471. \fBISSUE\fP \fI\%#32777\fP: (\fI\%sjorge\fP) cron.present broken on Solarish systems if user specified (refs: \fI\%#32970\fP)
  246472. .INDENT 2.0
  246473. .IP \(bu 2
  246474. \fBPR\fP \fI\%#32970\fP: (\fI\%sjorge\fP) fix user cron on solarish operating systems
  246475. .IP \(bu 2
  246476. \fBPR\fP \fI\%#32796\fP: (\fI\%jfindlay\fP) salt.log.setup: process user args before format
  246477. .UNINDENT
  246478. .IP \(bu 2
  246479. \fBISSUE\fP \fI\%#32891\fP: (\fI\%guettli\fP) docs: Note " This document represents behavior exhibited by Salt requisites as of version 0.9.7 of Salt." (refs: \fI\%#32934\fP)
  246480. .INDENT 2.0
  246481. .IP \(bu 2
  246482. \fBPR\fP \fI\%#32934\fP: (\fI\%jfindlay\fP) doc.ref.states.ordering: clarify requisite change
  246483. .UNINDENT
  246484. .IP \(bu 2
  246485. \fBISSUE\fP \fI\%#32882\fP: (\fI\%papertigers\fP) carbon_return is missing a default value. (refs: \fI\%#32883\fP)
  246486. .INDENT 2.0
  246487. .IP \(bu 2
  246488. \fBPR\fP \fI\%#32928\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32883\fP to 2015.8
  246489. .IP \(bu 2
  246490. \fBPR\fP \fI\%#32883\fP: (\fI\%papertigers\fP) mode should default to \(aqtext\(aq (refs: \fI\%#32928\fP)
  246491. .UNINDENT
  246492. .IP \(bu 2
  246493. \fBISSUE\fP \fI\%#32646\fP: (\fI\%deamen\fP) FileClient Class ( client = salt.minion.FileClient(__opts__) ) does not exist (refs: \fI\%#32925\fP)
  246494. .INDENT 2.0
  246495. .IP \(bu 2
  246496. \fBPR\fP \fI\%#32925\fP: (\fI\%rallytime\fP) Remove FileClient class references from docs \- it doesn\(aqt exist.
  246497. .UNINDENT
  246498. .IP \(bu 2
  246499. \fBISSUE\fP \fI\%#23683\fP: (\fI\%gravyboat\fP) contents_grains should have an example (refs: \fI\%#32922\fP)
  246500. .INDENT 2.0
  246501. .IP \(bu 2
  246502. \fBPR\fP \fI\%#32922\fP: (\fI\%rallytime\fP) Update contents_grains option with relevant docs
  246503. .UNINDENT
  246504. .IP \(bu 2
  246505. \fBPR\fP \fI\%#32926\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246506. @ \fI2016\-04\-28 19:47:52 UTC\fP
  246507. .INDENT 2.0
  246508. .IP \(bu 2
  246509. e60c12640d Merge pull request \fI\%#32926\fP from rallytime/merge\-2015.8
  246510. .IP \(bu 2
  246511. 5a184881be Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246512. .IP \(bu 2
  246513. edce22a143 backport PR \fI\%#32732\fP to 2015.5 fixes \fI\%#23714\fP (\fI\%#32848\fP)
  246514. .IP \(bu 2
  246515. \fBPR\fP \fI\%#32908\fP: (\fI\%Ch3LL\fP) Specify EBS volume tags in profile configuration in aws
  246516. .UNINDENT
  246517. .IP \(bu 2
  246518. \fBISSUE\fP \fI\%#23952\fP: (\fI\%neogenix\fP) iptables state append doesn\(aqt honor position \-1 (refs: \fI\%#32906\fP)
  246519. .INDENT 2.0
  246520. .IP \(bu 2
  246521. \fBPR\fP \fI\%#32906\fP: (\fI\%rallytime\fP) Update docs to warn users that \-1 isn\(aqt valid for iptables insert state
  246522. .UNINDENT
  246523. .IP \(bu 2
  246524. \fBISSUE\fP \fI\%#32510\fP: (\fI\%Ch3LL\fP) Cannot specify image in provider file when using map file (refs: \fI\%#32900\fP)
  246525. .INDENT 2.0
  246526. .IP \(bu 2
  246527. \fBPR\fP \fI\%#32900\fP: (\fI\%rallytime\fP) Allow profile options to be specified in provider file when using maps
  246528. .UNINDENT
  246529. .IP \(bu 2
  246530. \fBISSUE\fP \fI\%#30855\fP: (\fI\%guettli\fP) Docs: does salt.states.service support systemd? (refs: \fI\%#32880\fP)
  246531. .INDENT 2.0
  246532. .IP \(bu 2
  246533. \fBPR\fP \fI\%#32880\fP: (\fI\%rallytime\fP) Clarify service state opening docs \- uses \(aqservice\(aq virtualname
  246534. .UNINDENT
  246535. .IP \(bu 2
  246536. \fBPR\fP \fI\%#32884\fP: (\fI\%terminalmage\fP) Fix incorrect deprecation notice
  246537. @ \fI2016\-04\-27 15:47:35 UTC\fP
  246538. .INDENT 2.0
  246539. .IP \(bu 2
  246540. e1b40b3b76 Merge pull request \fI\%#32884\fP from terminalmage/fix\-incorrect\-deprecation\-notice
  246541. .IP \(bu 2
  246542. b307c5452a Fix incorrect deprecation notice
  246543. .UNINDENT
  246544. .IP \(bu 2
  246545. \fBPR\fP \fI\%#32878\fP: (\fI\%jacobhammons\fP) added note about updating the bootstrap script in salt\-cloud using th…
  246546. @ \fI2016\-04\-26 21:09:51 UTC\fP
  246547. .INDENT 2.0
  246548. .IP \(bu 2
  246549. a2921b9da0 Merge pull request \fI\%#32878\fP from jacobhammons/salt\-cloud
  246550. .IP \(bu 2
  246551. 3887938727 added note about updating the bootstrap script in salt\-cloud using the \-u flag, removed the saltconf banner.
  246552. .UNINDENT
  246553. .IP \(bu 2
  246554. \fBISSUE\fP \fI\%#32861\fP: (\fI\%bradthurber\fP) Is it master_syndic or syndic_master? (refs: \fI\%#32869\fP)
  246555. .IP \(bu 2
  246556. \fBPR\fP \fI\%#32869\fP: (\fI\%rallytime\fP) Use correct config setting in cloud syndic docs
  246557. @ \fI2016\-04\-26 19:13:21 UTC\fP
  246558. .INDENT 2.0
  246559. .IP \(bu 2
  246560. 71db10fd2c Merge pull request \fI\%#32869\fP from rallytime/fix\-32861
  246561. .IP \(bu 2
  246562. 0e73daa126 Use correct config setting in cloud syndic docs
  246563. .UNINDENT
  246564. .IP \(bu 2
  246565. \fBPR\fP \fI\%#32844\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246566. @ \fI2016\-04\-26 17:38:08 UTC\fP
  246567. .INDENT 2.0
  246568. .IP \(bu 2
  246569. 02c681311f Merge pull request \fI\%#32844\fP from rallytime/merge\-2015.8
  246570. .IP \(bu 2
  246571. 1fc9de1d04 Add \(aqfile.source_list\(aq mock to archive state unit tests
  246572. .IP \(bu 2
  246573. 9064d3bbfb Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246574. .INDENT 2.0
  246575. .IP \(bu 2
  246576. 9b5c14c37c \fIsalt\-cloud \-u\fP downloads stable version from bootstrap.saltstack.com by default (\fI\%#32837\fP)
  246577. .IP \(bu 2
  246578. 9725804448 update bootstrap to 2016.04.18 release (\fI\%#32667\fP)
  246579. .IP \(bu 2
  246580. c842e1e437 Merge pull request \fI\%#32776\fP from rallytime/merge\-2015.5
  246581. .INDENT 2.0
  246582. .IP \(bu 2
  246583. 7ecbf9f885 Merge pull request #14 from whiteinge/runner\-async\-low
  246584. .INDENT 2.0
  246585. .IP \(bu 2
  246586. 211f7b4af1 Format low data correct for runner_async
  246587. .UNINDENT
  246588. .IP \(bu 2
  246589. ce72851861 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  246590. .IP \(bu 2
  246591. 2775edc176 Saltnado /run fix (\fI\%#32590\fP)
  246592. .IP \(bu 2
  246593. b19c5a5ce7 Verify auth in saltnado run (\fI\%#32552\fP)
  246594. .UNINDENT
  246595. .IP \(bu 2
  246596. 67d0c81184 Support remote sources in a source list (\fI\%#32691\fP)
  246597. .IP \(bu 2
  246598. bd5442d768 Merge pull request \fI\%#32686\fP from cachedout/issue_32661
  246599. .INDENT 2.0
  246600. .IP \(bu 2
  246601. f704df90bc Fix stacktrace in batch with dup minion ids
  246602. .UNINDENT
  246603. .IP \(bu 2
  246604. 3ec9502a86 Update "Low Hanging Fruit" to "Help Wanted" (\fI\%#32675\fP)
  246605. .IP \(bu 2
  246606. 77bea56b68 Additional documentation on calling exec modules from templates (\fI\%#32657\fP)
  246607. .IP \(bu 2
  246608. c910b8dd51 Fixing critical bug to remove only the specified Host instead of the entire Host cluster (\fI\%#32639\fP)
  246609. .IP \(bu 2
  246610. 4568565d45 Add _syspaths.py to .gitignore (\fI\%#32638\fP)
  246611. .UNINDENT
  246612. .UNINDENT
  246613. .IP \(bu 2
  246614. \fBISSUE\fP \fI\%#32799\fP: (\fI\%belt\fP) ssh_auth.present creates ~/~${USER}/.ssh (refs: \fI\%#32868\fP)
  246615. .INDENT 2.0
  246616. .IP \(bu 2
  246617. \fBPR\fP \fI\%#32868\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31139\fP to 2015.8
  246618. .IP \(bu 2
  246619. \fBPR\fP \fI\%#31139\fP: (\fI\%exowaucka\fP) Improve %h and %u handling in SSH module (refs: \fI\%#32868\fP)
  246620. .UNINDENT
  246621. .IP \(bu 2
  246622. \fBISSUE\fP \fI\%#23714\fP: (\fI\%naemono\fP) file.copy force ignored during highstate, but not with \(aqsalt\-call state.sls_id\(aq (refs: \fI\%#32732\fP, \fI\%#32847\fP, \fI\%#32848\fP)
  246623. .INDENT 2.0
  246624. .IP \(bu 2
  246625. \fBPR\fP \fI\%#32847\fP: (\fI\%lomeroe\fP) backport PR \fI\%#32732\fP for issue \fI\%#23714\fP
  246626. .IP \(bu 2
  246627. \fBPR\fP \fI\%#32732\fP: (\fI\%lomeroe\fP) correct use of force flag in file.copy \fI\%#23714\fP (refs: \fI\%#32847\fP, \fI\%#32848\fP)
  246628. .UNINDENT
  246629. .IP \(bu 2
  246630. \fBISSUE\fP \fI\%#32824\fP: (\fI\%bradthurber\fP) salt\-cloud vmware: wrong pyvmomi installed for RHEL/CentOS 6 (refs: \fI\%#32845\fP)
  246631. .INDENT 2.0
  246632. .IP \(bu 2
  246633. \fBPR\fP \fI\%#32845\fP: (\fI\%rallytime\fP) Add pyvmomi version warning to Getting Started with VMware docs
  246634. .UNINDENT
  246635. .IP \(bu 2
  246636. \fBISSUE\fP \fI\%#25492\fP: (\fI\%hernanc\fP) "docker\-py mem_limit has been moved to host_config in API version 1.19" error (refs: \fI\%#26518\fP, \fI\%#32818\fP)
  246637. .INDENT 2.0
  246638. .IP \(bu 2
  246639. \fBPR\fP \fI\%#32841\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32818\fP to 2015.8
  246640. .IP \(bu 2
  246641. \fBPR\fP \fI\%#32818\fP: (\fI\%mitar\fP) Pass None as memory limit (refs: \fI\%#32841\fP)
  246642. .IP \(bu 2
  246643. \fBPR\fP \fI\%#26518\fP: (\fI\%krak3n\fP) Fix for \fI\%#25492\fP (refs: \fI\%#32818\fP)
  246644. .UNINDENT
  246645. .IP \(bu 2
  246646. \fBISSUE\fP \fI\%#32605\fP: (\fI\%Talkless\fP) pkgrepo.managed with apt does not add comments value later (refs: \fI\%#32813\fP)
  246647. .INDENT 2.0
  246648. .IP \(bu 2
  246649. \fBPR\fP \fI\%#32839\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32813\fP to 2015.8
  246650. .IP \(bu 2
  246651. \fBPR\fP \fI\%#32813\fP: (\fI\%abednarik\fP) Add comments as an option for apt in pkgrepo.managed. (refs: \fI\%#32839\fP)
  246652. .IP \(bu 2
  246653. \fBPR\fP \fI\%#32659\fP: (\fI\%anlutro\fP) Various improvements on cloud deploy script docs
  246654. .IP \(bu 2
  246655. \fBPR\fP \fI\%#32668\fP: (\fI\%jfindlay\fP) [2015.8] update bootstrap to 2016.04.18 release
  246656. .IP \(bu 2
  246657. \fBPR\fP \fI\%#32785\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29322\fP to 2015.8
  246658. .IP \(bu 2
  246659. \fBPR\fP \fI\%#29322\fP: (\fI\%mrproper\fP) add http proxy support for tornado (refs: \fI\%#32785\fP)
  246660. .UNINDENT
  246661. .IP \(bu 2
  246662. \fBISSUE\fP \fI\%#32710\fP: (\fI\%bradthurber\fP) conf/master missing many gitfs and git_pillar parameters (refs: \fI\%#32722\fP)
  246663. .IP \(bu 2
  246664. \fBPR\fP \fI\%#32787\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32722\fP to 2015.8
  246665. @ \fI2016\-04\-25 15:19:21 UTC\fP
  246666. .INDENT 2.0
  246667. .IP \(bu 2
  246668. \fBPR\fP \fI\%#32722\fP: (\fI\%bradthurber\fP) Catch up the conf/master file to include gitfs/git_pillar parms from … (refs: \fI\%#32787\fP)
  246669. .IP \(bu 2
  246670. 96a3d4e556 Merge pull request \fI\%#32787\fP from rallytime/bp\-32722
  246671. .IP \(bu 2
  246672. 8d7148d41b Catch up the conf/master file to include gitfs/git_pillar parms from recent releases
  246673. .UNINDENT
  246674. .IP \(bu 2
  246675. \fBPR\fP \fI\%#32786\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32703\fP to 2015.8
  246676. @ \fI2016\-04\-25 15:19:13 UTC\fP
  246677. .INDENT 2.0
  246678. .IP \(bu 2
  246679. \fBPR\fP \fI\%#32703\fP: (\fI\%schancel\fP) Make example top file match templated version (refs: \fI\%#32786\fP)
  246680. .IP \(bu 2
  246681. 36f70f5847 Merge pull request \fI\%#32786\fP from rallytime/bp\-32703
  246682. .IP \(bu 2
  246683. baa4df25c9 Make example top file match templated version
  246684. .IP \(bu 2
  246685. 227ef4aabb Fix unnecessary capitalization
  246686. .IP \(bu 2
  246687. 73cd9f26c3 Merge branch \(aqgitfs_perremote_doc_updates\(aq of \fI\%https://github.com/l2ol33rt/salt\fP into pr\-32775
  246688. .IP \(bu 2
  246689. b69d406ada Including name per\-remote config option in example
  246690. .IP \(bu 2
  246691. \fBPR\fP \fI\%#32779\fP: (\fI\%terminalmage\fP) Improve documentation on pygit2 versions
  246692. .UNINDENT
  246693. .IP \(bu 2
  246694. \fBISSUE\fP \fI\%#32609\fP: (\fI\%anlutro\fP) Tornado ioloop fails when master disconnects? (refs: \fI\%#32749\fP)
  246695. .INDENT 2.0
  246696. .IP \(bu 2
  246697. \fBPR\fP \fI\%#32749\fP: (\fI\%DmitryKuzmenko\fP) Properly handle minion failback failure.
  246698. .UNINDENT
  246699. .IP \(bu 2
  246700. \fBISSUE\fP \fI\%#32144\fP: (\fI\%vutny\fP) Pillar targeting starts to work only after calling \fIsaltutil.refresh_pillar\fP (refs: \fI\%#32643\fP)
  246701. .INDENT 2.0
  246702. .IP \(bu 2
  246703. \fBPR\fP \fI\%#32643\fP: (\fI\%vutny\fP) Document pillar cache options
  246704. .UNINDENT
  246705. .IP \(bu 2
  246706. \fBISSUE\fP \fI\%#32705\fP: (\fI\%joakimkarlsson\fP) win_dacl.present: Specifying propagations for a directory fails (refs: \fI\%#32720\fP)
  246707. .INDENT 2.0
  246708. .IP \(bu 2
  246709. \fBPR\fP \fI\%#32720\fP: (\fI\%jfindlay\fP) modules.win_dacl: consistent case of dacl constants
  246710. .UNINDENT
  246711. .IP \(bu 2
  246712. \fBISSUE\fP \fI\%#30761\fP: (\fI\%sjmh\fP) Cannot target subsets of minions when using pillar and external_auth (refs: \fI\%#31598\fP)
  246713. .IP \(bu 2
  246714. \fBISSUE\fP \fI\%#21303\fP: (\fI\%Lothiraldan\fP) Explicit and document ACL rules format (refs: \fI\%#32733\fP)
  246715. .INDENT 2.0
  246716. .IP \(bu 2
  246717. \fBPR\fP \fI\%#32733\fP: (\fI\%Lothiraldan\fP) Update external auth documentation to list supported matcher.
  246718. .IP \(bu 2
  246719. \fBPR\fP \fI\%#31598\fP: (\fI\%terminalmage\fP) Remove limitations on validation types for eauth targets (refs: \fI\%#32733\fP)
  246720. .IP \(bu 2
  246721. \fBPR\fP \fI\%#32693\fP: (\fI\%techhat\fP) Check dependencies type before appling str operations
  246722. .IP \(bu 2
  246723. \fBPR\fP \fI\%#32692\fP: (\fI\%garethgreenaway\fP) Handle when beacon not configured and we try to enable/disable them
  246724. .UNINDENT
  246725. .IP \(bu 2
  246726. \fBPR\fP \fI\%#32718\fP: (\fI\%garethgreenaway\fP) Fixes to schedule.list in 2015.8
  246727. @ \fI2016\-04\-20 19:51:24 UTC\fP
  246728. .INDENT 2.0
  246729. .IP \(bu 2
  246730. f52af5a596 Merge pull request \fI\%#32718\fP from garethgreenaway/2015_8_schedule_list_fix
  246731. .IP \(bu 2
  246732. 7fa5d809d2 backporting a fix from develop where the use of splay would result in seconds=0 in the schedule.list when there was no seconds specified in the origina schedule
  246733. .UNINDENT
  246734. .IP \(bu 2
  246735. \fBPR\fP \fI\%#32684\fP: (\fI\%captaininspiration\fP) Fix routes for redhat < 6
  246736. @ \fI2016\-04\-19 19:18:20 UTC\fP
  246737. .INDENT 2.0
  246738. .IP \(bu 2
  246739. \fBPR\fP \fI\%#32682\fP: (\fI\%captaininspiration\fP) Fix routes for redhat < 6 (refs: \fI\%#32684\fP)
  246740. .IP \(bu 2
  246741. f63566e452 Merge pull request \fI\%#32684\fP from captaininspiration/2015.8
  246742. .IP \(bu 2
  246743. 640c7a90da Fix routes for redhat < 6
  246744. .IP \(bu 2
  246745. \fBPR\fP \fI\%#32683\fP: (\fI\%techhat\fP) Handle a couple of arguments better (Azure)
  246746. .UNINDENT
  246747. .IP \(bu 2
  246748. \fBISSUE\fP \fI\%#32523\fP: (\fI\%junster1\fP) network.py/loader.py failing because cfn variable is not defined before use. (refs: \fI\%#32672\fP)
  246749. .INDENT 2.0
  246750. .IP \(bu 2
  246751. \fBPR\fP \fI\%#32672\fP: (\fI\%junster1\fP) Fix for issue 32523
  246752. .UNINDENT
  246753. .IP \(bu 2
  246754. \fBISSUE\fP \fI\%#32517\fP: (\fI\%Ch3LL\fP) Minion restarting and erroring when cannot reach the masters in multi\-master failover (refs: \fI\%#32555\fP, \fI\%#32556\fP)
  246755. .INDENT 2.0
  246756. .IP \(bu 2
  246757. \fBPR\fP \fI\%#32556\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt access deprecated Exception.message attribute.
  246758. .IP \(bu 2
  246759. \fBPR\fP \fI\%#32655\fP: (\fI\%cachedout\fP) Lower log level for pillar cache
  246760. .UNINDENT
  246761. .IP \(bu 2
  246762. \fBISSUE\fP \fI\%#31542\fP: (\fI\%duk3luk3\fP) jinja stringifies dict before passing it to execution module (maybe salt\-ssh specific?) (refs: \fI\%#32588\fP)
  246763. .IP \(bu 2
  246764. \fBPR\fP \fI\%#32588\fP: (\fI\%anlutro\fP) Fix salt\-ssh module function call argument type juggling by JSON encoding them
  246765. @ \fI2016\-04\-18 15:57:14 UTC\fP
  246766. .INDENT 2.0
  246767. .IP \(bu 2
  246768. a6a427463d Merge pull request \fI\%#32588\fP from alprs/fix\-salt_ssh_module_types
  246769. .IP \(bu 2
  246770. d912f1c3c6 json encode arguments passed to an execution module function call
  246771. .UNINDENT
  246772. .IP \(bu 2
  246773. \fBISSUE\fP \fI\%#32229\fP: (\fI\%seanjnkns\fP) 2015.8.8.2: pkg.installed fails to update packages with epoch (refs: \fI\%#32563\fP)
  246774. .INDENT 2.0
  246775. .IP \(bu 2
  246776. \fBPR\fP \fI\%#32563\fP: (\fI\%terminalmage\fP) yumpkg: Ignore epoch in version comparison for explict versions without an epoch
  246777. .IP \(bu 2
  246778. \fBPR\fP \fI\%#32640\fP: (\fI\%nmadhok\fP) [2015.8] \- Fixing critical bug to remove only the specified Host instead of the entire Host cluster
  246779. .IP \(bu 2
  246780. \fBPR\fP \fI\%#32649\fP: (\fI\%mcalmer\fP) align OS grains from older SLES with current one
  246781. .IP \(bu 2
  246782. \fBPR\fP \fI\%#32652\fP: (\fI\%isbm\fP) Prevent crash if pygit2 package is requesting re\-compilation of the e…
  246783. .UNINDENT
  246784. .IP \(bu 2
  246785. \fBPR\fP \fI\%#32614\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246786. @ \fI2016\-04\-15 19:27:47 UTC\fP
  246787. .INDENT 2.0
  246788. .IP \(bu 2
  246789. 05a41a13cd Merge pull request \fI\%#32614\fP from rallytime/merge\-2015.8
  246790. .IP \(bu 2
  246791. 046e401dd8 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246792. .INDENT 2.0
  246793. .IP \(bu 2
  246794. 027b502335 Merge pull request \fI\%#32561\fP from gtmanfred/user_passwords
  246795. .INDENT 2.0
  246796. .IP \(bu 2
  246797. 3db5e78d5d redact passwords and hashes from user.present updates
  246798. .UNINDENT
  246799. .UNINDENT
  246800. .UNINDENT
  246801. .IP \(bu 2
  246802. \fBPR\fP \fI\%#32616\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32547\fP to 2015.8
  246803. @ \fI2016\-04\-15 19:27:36 UTC\fP
  246804. .INDENT 2.0
  246805. .IP \(bu 2
  246806. \fBPR\fP \fI\%#32547\fP: (\fI\%cro\fP) Expand on the open\-source vs open\-core FAQ (refs: \fI\%#32616\fP)
  246807. .IP \(bu 2
  246808. ef17bde054 Merge pull request \fI\%#32616\fP from rallytime/bp\-32547
  246809. .IP \(bu 2
  246810. 4242bc7399 Language clarification.
  246811. .IP \(bu 2
  246812. 965e3bc1d1 Expand on the open\-source vs open\-core FAQ
  246813. .IP \(bu 2
  246814. \fBPR\fP \fI\%#32604\fP: (\fI\%Talkless\fP) Fix comments value in salt.states.pkgrepo example
  246815. .IP \(bu 2
  246816. \fBPR\fP \fI\%#32558\fP: (\fI\%terminalmage\fP) Revert PR \fI\%#32480\fP and apply \fI\%#32314\fP with fixes / documentation
  246817. .IP \(bu 2
  246818. \fBPR\fP \fI\%#32480\fP: (\fI\%terminalmage\fP) Clear VCS fsbackend and git_pillar locks on master start (refs: \fI\%#32558\fP)
  246819. .IP \(bu 2
  246820. \fBPR\fP \fI\%#32314\fP: (\fI\%onorua\fP) prevent eternal gitfs lock due to process crash (refs: \fI\%#32480\fP, \fI\%#32558\fP)
  246821. .UNINDENT
  246822. .IP \(bu 2
  246823. \fBISSUE\fP \fI\%#32519\fP: (\fI\%Ch3LL\fP) Minion restarting and erroring when cannot reach the master (refs: \fI\%#32576\fP)
  246824. .INDENT 2.0
  246825. .IP \(bu 2
  246826. \fBPR\fP \fI\%#32576\fP: (\fI\%DmitryKuzmenko\fP) Better log message on minion restart if master couldn\(aqt be reached.
  246827. .UNINDENT
  246828. .IP \(bu 2
  246829. \fBISSUE\fP \fI\%#32517\fP: (\fI\%Ch3LL\fP) Minion restarting and erroring when cannot reach the masters in multi\-master failover (refs: \fI\%#32555\fP, \fI\%#32556\fP)
  246830. .INDENT 2.0
  246831. .IP \(bu 2
  246832. \fBPR\fP \fI\%#32555\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt return None from eval_master
  246833. .UNINDENT
  246834. .IP \(bu 2
  246835. \fBPR\fP \fI\%#32536\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31898\fP to 2015.8
  246836. @ \fI2016\-04\-13 18:49:05 UTC\fP
  246837. .INDENT 2.0
  246838. .IP \(bu 2
  246839. \fBPR\fP \fI\%#31898\fP: (\fI\%afletch\fP) Ensure rh_service not used on CloudLinux 7 (refs: \fI\%#32536\fP)
  246840. .IP \(bu 2
  246841. 27e91e40cc Merge pull request \fI\%#32536\fP from rallytime/bp\-31898
  246842. .IP \(bu 2
  246843. 60d80c4dee Ensure rh_service not used on CloudLinux 7
  246844. .IP \(bu 2
  246845. \fBPR\fP \fI\%#32542\fP: (\fI\%twangboy\fP) Fix binary search and replace
  246846. .UNINDENT
  246847. .IP \(bu 2
  246848. \fBPR\fP \fI\%#32539\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246849. @ \fI2016\-04\-13 15:10:08 UTC\fP
  246850. .INDENT 2.0
  246851. .IP \(bu 2
  246852. cce7de76b0 Merge pull request \fI\%#32539\fP from rallytime/merge\-2015.8
  246853. .IP \(bu 2
  246854. fbaeb165c9 Merge branch \(aq2015.5\(aq into merge\-2015.8
  246855. .IP \(bu 2
  246856. 7307bcb88e Merge pull request \fI\%#32538\fP from rallytime/bp\-32528
  246857. .INDENT 2.0
  246858. .IP \(bu 2
  246859. 46a4e8a310 Remove merge conflict line
  246860. .IP \(bu 2
  246861. e0d947c707 Document "grains" setting in the minion configuration reference
  246862. .UNINDENT
  246863. .UNINDENT
  246864. .IP \(bu 2
  246865. \fBISSUE\fP \fI\%#32493\fP: (\fI\%bberberov\fP) dockerng.volume_present fails when no volumes already exist on the system (refs: \fI\%#32531\fP)
  246866. .IP \(bu 2
  246867. \fBPR\fP \fI\%#32531\fP: (\fI\%ticosax\fP) [dockerng] Fix support of dockerng.volume_present when no volume is on present.
  246868. @ \fI2016\-04\-13 14:42:13 UTC\fP
  246869. .INDENT 2.0
  246870. .IP \(bu 2
  246871. 1834bdefe3 Merge pull request \fI\%#32531\fP from ticosax/support\-no\-volumes
  246872. .IP \(bu 2
  246873. 958b2ec749 Fix support of dockerng.volume_present when no volume is on present.
  246874. .IP \(bu 2
  246875. \fBPR\fP \fI\%#32475\fP: (\fI\%ticosax\fP) [dockerng] Enhance dockerng.wait() to control success on exit_code and on already stopped containers
  246876. .IP \(bu 2
  246877. \fBPR\fP \fI\%#32436\fP: (\fI\%isbm\fP) Bugfix: salt\-key crashes if tries to generate keys to the directory w/o write access
  246878. .IP \(bu 2
  246879. \fBPR\fP \fI\%#32515\fP: (\fI\%terminalmage\fP) Turn on exc_info when logging failed minion startup
  246880. .IP \(bu 2
  246881. \fBPR\fP \fI\%#32520\fP: (\fI\%terminalmage\fP) Add ignore_epoch option to pkg.installed/removed/purged states
  246882. .IP \(bu 2
  246883. \fBPR\fP \fI\%#32505\fP: (\fI\%isbm\fP) Isbm zypper list products sles11 crash
  246884. .IP \(bu 2
  246885. \fBPR\fP \fI\%#32480\fP: (\fI\%terminalmage\fP) Clear VCS fsbackend and git_pillar locks on master start (refs: \fI\%#32558\fP)
  246886. .IP \(bu 2
  246887. \fBPR\fP \fI\%#32314\fP: (\fI\%onorua\fP) prevent eternal gitfs lock due to process crash (refs: \fI\%#32480\fP, \fI\%#32558\fP)
  246888. .UNINDENT
  246889. .IP \(bu 2
  246890. \fBISSUE\fP \fI\%#32327\fP: (\fI\%joakimkarlsson\fP) salt\-minion fails to start on Windows (refs: \fI\%#32491\fP)
  246891. .INDENT 2.0
  246892. .IP \(bu 2
  246893. \fBPR\fP \fI\%#32491\fP: (\fI\%twangboy\fP) Use win32api to get Total System Memory
  246894. .UNINDENT
  246895. .IP \(bu 2
  246896. \fBISSUE\fP \fI\%#31927\fP: (\fI\%afletch\fP) pkg.installed compares version including package epoch (pkg.version problem?) (refs: \fI\%#32487\fP)
  246897. .IP \(bu 2
  246898. \fBPR\fP \fI\%#32487\fP: (\fI\%terminalmage\fP) Add explanation of nonzero epoch requirement to pkg.installed state documentation
  246899. @ \fI2016\-04\-11 20:48:57 UTC\fP
  246900. .INDENT 2.0
  246901. .IP \(bu 2
  246902. e335e313fe Merge pull request \fI\%#32487\fP from terminalmage/epoch\-documentation
  246903. .IP \(bu 2
  246904. e04cf879b6 Document new behavior of pkg.installed for yum/dnf packages with non\-zero epoch
  246905. .IP \(bu 2
  246906. 61e9761224 Add explanation of nonzero epoch requirement to pkg.installed state documentation
  246907. .UNINDENT
  246908. .IP \(bu 2
  246909. \fBPR\fP \fI\%#32482\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  246910. @ \fI2016\-04\-11 20:12:26 UTC\fP
  246911. .INDENT 2.0
  246912. .IP \(bu 2
  246913. e8de50ff37 Merge pull request \fI\%#32482\fP from rallytime/merge\-2015.8
  246914. .IP \(bu 2
  246915. 1b04f0ddec Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  246916. .IP \(bu 2
  246917. 29333e533e Add documentation for some master/minion configs (\fI\%#32454\fP)
  246918. .IP \(bu 2
  246919. 100c6e1b25 Merge pull request \fI\%#32458\fP from terminalmage/clarify\-providers\-docs
  246920. .INDENT 2.0
  246921. .IP \(bu 2
  246922. 500d3ebbaa Add link to provider override docs to all group providers
  246923. .IP \(bu 2
  246924. 83ca01f620 dd link to provider override docs to all shadow providers
  246925. .IP \(bu 2
  246926. c5fe38789d Add link to provider override docs to all user providers
  246927. .IP \(bu 2
  246928. 5c1c1dda59 Add link to provider override docs to all service providers
  246929. .IP \(bu 2
  246930. 736f2befc9 Add link to provider override docs to all package providers
  246931. .IP \(bu 2
  246932. f9306347cc Clarify the scope of the provider param in states.
  246933. .IP \(bu 2
  246934. af24c82ab0 Add documentation on virtual module provider overrides to the module docs
  246935. .IP \(bu 2
  246936. 0bc6c97a63 Improve docstrings
  246937. .IP \(bu 2
  246938. 1948920674 Add external ref to windows package manager docs
  246939. .IP \(bu 2
  246940. e7fa21438c Add new doc pages to toctree
  246941. .IP \(bu 2
  246942. f0de1236ec Move the tables of virtual modules to individual documentation pages
  246943. .UNINDENT
  246944. .UNINDENT
  246945. .IP \(bu 2
  246946. \fBISSUE\fP \fI\%#30183\fP: (\fI\%jakehilton\fP) Minion startup extremely delayed when first master in failover multi master setup is down (refs: \fI\%#31364\fP, \fI\%#31382\fP, \fI\%#32143\fP)
  246947. .IP \(bu 2
  246948. \fBISSUE\fP \fI\%#29643\fP: (\fI\%matthayes\fP) Can\(aqt get batch mode and \-\-failhard to work as expected (refs: \fI\%#31164\fP)
  246949. .IP \(bu 2
  246950. \fBISSUE\fP \fI\%#28569\fP: (\fI\%andrejohansson\fP) Reactor alert on highstate fail (refs: \fI\%#31164\fP)
  246951. .INDENT 2.0
  246952. .IP \(bu 2
  246953. \fBPR\fP \fI\%#32474\fP: (\fI\%DmitryKuzmenko\fP) Backport 31164 and 31364
  246954. .IP \(bu 2
  246955. \fBPR\fP \fI\%#32441\fP: (\fI\%cachedout\fP) Backport 31164 31364 (refs: \fI\%#32474\fP)
  246956. .IP \(bu 2
  246957. \fBPR\fP \fI\%#31364\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt send REQ while another one is waiting for response. (refs: \fI\%#32441\fP, \fI\%#32474\fP)
  246958. .IP \(bu 2
  246959. \fBPR\fP \fI\%#31164\fP: (\fI\%DmitryKuzmenko\fP) Issues/29643 fix invalid retcode (refs: \fI\%#32441\fP, \fI\%#32474\fP)
  246960. .UNINDENT
  246961. .IP \(bu 2
  246962. \fBISSUE\fP \fI\%#31738\fP: (\fI\%igorwidlinski\fP) salt \-\-show\-jid does not show job id when run in batch mode (refs: \fI\%#32450\fP)
  246963. .IP \(bu 2
  246964. \fBPR\fP \fI\%#32450\fP: (\fI\%cachedout\fP) Pass parser options into batch mode (refs: \fI\%#32996\fP)
  246965. @ \fI2016\-04\-08 23:03:49 UTC\fP
  246966. .INDENT 2.0
  246967. .IP \(bu 2
  246968. 7bf44aea72 Merge pull request \fI\%#32450\fP from cachedout/issue_31738
  246969. .IP \(bu 2
  246970. 74d0fa06b4 Pass parser options into batch mode
  246971. .UNINDENT
  246972. .IP \(bu 2
  246973. \fBISSUE\fP \fI\%#28706\fP: (\fI\%kkaig\fP) user.present:groups vs group.present:members (refs: \fI\%#30824\fP, \fI\%#32448\fP)
  246974. .INDENT 2.0
  246975. .IP \(bu 2
  246976. \fBPR\fP \fI\%#32448\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30824\fP to 2015.8
  246977. .IP \(bu 2
  246978. \fBPR\fP \fI\%#30824\fP: (\fI\%alxf\fP) Issue \fI\%#28706\fP: Fix state user.present behavior. (refs: \fI\%#32448\fP)
  246979. .UNINDENT
  246980. .IP \(bu 2
  246981. \fBISSUE\fP \fI\%#31851\fP: (\fI\%rhansen\fP) error using module.run \-> saltutil.runner \-> state.orchestrate: "The following arguments are missing: _fun" (refs: \fI\%#32445\fP)
  246982. .INDENT 2.0
  246983. .IP \(bu 2
  246984. \fBPR\fP \fI\%#32445\fP: (\fI\%rallytime\fP) Argument name in docs should match actual arg name
  246985. .IP \(bu 2
  246986. \fBPR\fP \fI\%#26676\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26648\fP to 2015.5 (refs: \fI\%#32445\fP)
  246987. .IP \(bu 2
  246988. \fBPR\fP \fI\%#26648\fP: (\fI\%whiteinge\fP) Free \(aqfun\(aq from the function signature namespace (refs: \fI\%#26676\fP)
  246989. .UNINDENT
  246990. .IP \(bu 2
  246991. \fBISSUE\fP \fI\%#32033\fP: (\fI\%timcharper\fP) SaltStack \fImodules.dockerng\fP \fI_compare\fP does not handle docker implicit Domainname properly (issue when using network_mode: host) (refs: \fI\%#32116\fP, \fI\%#32432\fP)
  246992. .IP \(bu 2
  246993. \fBPR\fP \fI\%#32432\fP: (\fI\%ticosax\fP) [dockerng] Fix Domainname introspection
  246994. @ \fI2016\-04\-08 16:12:19 UTC\fP
  246995. .INDENT 2.0
  246996. .IP \(bu 2
  246997. a36f9499fc Merge pull request \fI\%#32432\fP from ticosax/fix\-domainname\-introspection
  246998. .IP \(bu 2
  246999. 505b5b0168 Fix Domainname introspection
  247000. .UNINDENT
  247001. .IP \(bu 2
  247002. \fBPR\fP \fI\%#32427\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247003. @ \fI2016\-04\-08 15:39:13 UTC\fP
  247004. .INDENT 2.0
  247005. .IP \(bu 2
  247006. def911974c Merge pull request \fI\%#32427\fP from rallytime/merge\-2015.8
  247007. .IP \(bu 2
  247008. 9531ea6ef5 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247009. .IP \(bu 2
  247010. 0809126d8e Merge \fI\%#32293\fP with test fixes (\fI\%#32418\fP)
  247011. .IP \(bu 2
  247012. bbd8260a42 Ignore Raspbian in service.py __virtual__ (\fI\%#32421\fP)
  247013. .IP \(bu 2
  247014. 690addf0b4 FreeBSD supports packages in format java/openjdk7 so the prior commit broke that functionality. Check freebsd/pkg#1409 for more info.
  247015. .IP \(bu 2
  247016. a36866d7db Merge pull request \fI\%#32399\fP from amontalban/2015.5
  247017. .INDENT 2.0
  247018. .IP \(bu 2
  247019. e1ffbd615a Fixes \fI\%saltstack/salt#28262\fP for 2015.5 branch
  247020. .UNINDENT
  247021. .IP \(bu 2
  247022. 3f03c5fcf9 Merge pull request \fI\%#32374\fP from cachedout/issue_32066
  247023. .INDENT 2.0
  247024. .IP \(bu 2
  247025. 62389d1d1a Update proxmox documentation
  247026. .UNINDENT
  247027. .IP \(bu 2
  247028. 8578089beb Merge pull request \fI\%#32339\fP from Ch3LL/fix_doc_multi\-master
  247029. .INDENT 2.0
  247030. .IP \(bu 2
  247031. 2774da288d remove reference to master_alive_check
  247032. .UNINDENT
  247033. .UNINDENT
  247034. .IP \(bu 2
  247035. \fBISSUE\fP \fI\%#32311\fP: (\fI\%rkgrunt\fP) glusterfs module incorrectly indexes into name of bricks (refs: \fI\%#32312\fP)
  247036. .IP \(bu 2
  247037. \fBPR\fP \fI\%#32423\fP: (\fI\%justinta\fP) Update glusterfs_test to be inline with \fI\%#32312\fP
  247038. @ \fI2016\-04\-07 21:53:03 UTC\fP
  247039. .INDENT 2.0
  247040. .IP \(bu 2
  247041. \fBPR\fP \fI\%#32312\fP: (\fI\%rkgrunt\fP) Fixed glusterfs module (refs: \fI\%#32423\fP)
  247042. .IP \(bu 2
  247043. 5bc8c326ce Merge pull request \fI\%#32423\fP from jtand/glusterfs_test_fix
  247044. .IP \(bu 2
  247045. 6f98bd50eb Update glusterfs_test to be inline with \fI\%#32312\fP
  247046. .UNINDENT
  247047. .IP \(bu 2
  247048. \fBISSUE\fP \fI\%#31632\fP: (\fI\%zieba88\fP) salt\-cloud map parallel provisioning \-P option failed on 2015.8.5 (refs: \fI\%#32425\fP)
  247049. .IP \(bu 2
  247050. \fBPR\fP \fI\%#32425\fP: (\fI\%cachedout\fP) Fix salt\-cloud paralell provisioning
  247051. @ \fI2016\-04\-07 21:52:06 UTC\fP
  247052. .INDENT 2.0
  247053. .IP \(bu 2
  247054. c07e02bacb Merge pull request \fI\%#32425\fP from cachedout/issue_31632
  247055. .IP \(bu 2
  247056. 127c0829ee Fix salt\-cloud paralell provisioning
  247057. .UNINDENT
  247058. .IP \(bu 2
  247059. \fBPR\fP \fI\%#32323\fP: (\fI\%mcalmer\fP) fix sorting by latest version when called with an attribute
  247060. @ \fI2016\-04\-07 06:24:35 UTC\fP
  247061. .INDENT 2.0
  247062. .IP \(bu 2
  247063. 2cc054bbc0 Merge pull request \fI\%#32323\fP from mcalmer/fix\-ensure\-installed\-latest\-with\-attributes
  247064. .IP \(bu 2
  247065. cb1f30ee10 fix sorting by latest version when called with an attribute
  247066. .UNINDENT
  247067. .IP \(bu 2
  247068. \fBISSUE\fP \fI\%saltstack/salt#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP)
  247069. .IP \(bu 2
  247070. \fBISSUE\fP \fI\%#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP, \fI\%#32399\fP)
  247071. .IP \(bu 2
  247072. \fBPR\fP \fI\%#32376\fP: (\fI\%amontalban\fP) Fixes \fI\%saltstack/salt#28262\fP (refs: \fI\%#32399\fP)
  247073. @ \fI2016\-04\-06 20:30:10 UTC\fP
  247074. .INDENT 2.0
  247075. .IP \(bu 2
  247076. 802580ee1a Merge pull request \fI\%#32376\fP from amontalban/2015.8
  247077. .IP \(bu 2
  247078. 823d0c362b Fixes \fI\%saltstack/salt#28262\fP
  247079. .UNINDENT
  247080. .IP \(bu 2
  247081. \fBISSUE\fP \fI\%#32375\fP: (\fI\%truescotw\fP) jinja template copying file but not replacing tags (refs: \fI\%#32393\fP)
  247082. .IP \(bu 2
  247083. \fBPR\fP \fI\%#32393\fP: (\fI\%jfindlay\fP) modules.win_timezone: don\(aqt list all zones in debug log
  247084. @ \fI2016\-04\-06 18:10:43 UTC\fP
  247085. .INDENT 2.0
  247086. .IP \(bu 2
  247087. ad77d76cad Merge pull request \fI\%#32393\fP from jfindlay/win_zone
  247088. .IP \(bu 2
  247089. c01c1b9da2 modules.win_timezone: don\(aqt list all zones in debug log
  247090. .UNINDENT
  247091. .IP \(bu 2
  247092. \fBPR\fP \fI\%#32372\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32358\fP to 2015.8
  247093. @ \fI2016\-04\-06 16:35:05 UTC\fP
  247094. .INDENT 2.0
  247095. .IP \(bu 2
  247096. \fBPR\fP \fI\%#32358\fP: (\fI\%arthurlogilab\fP) outputter virt_list does not exist anymore (refs: \fI\%#32372\fP)
  247097. .IP \(bu 2
  247098. 76ae95863d Merge pull request \fI\%#32372\fP from rallytime/bp\-32358
  247099. .IP \(bu 2
  247100. 95e0fe7744 outputter virt_list does not exist anymore
  247101. .UNINDENT
  247102. .IP \(bu 2
  247103. \fBPR\fP \fI\%#32392\fP: (\fI\%multani\fP) Fix documentation on boto_asg and boto_elb modules and states
  247104. @ \fI2016\-04\-06 16:34:36 UTC\fP
  247105. .INDENT 2.0
  247106. .IP \(bu 2
  247107. c612baa119 Merge pull request \fI\%#32392\fP from multani/2015.8
  247108. .IP \(bu 2
  247109. 77c4772752 Fix documentation on boto_asg and boto_elb modules and states
  247110. .UNINDENT
  247111. .IP \(bu 2
  247112. \fBISSUE\fP \fI\%#32201\fP: (\fI\%boltronics\fP) salt\-minion memory leak waiting on master to accept key (refs: \fI\%#32373\fP)
  247113. .IP \(bu 2
  247114. \fBPR\fP \fI\%#32373\fP: (\fI\%cachedout\fP) Resolve memory leak in authentication
  247115. @ \fI2016\-04\-06 15:19:55 UTC\fP
  247116. .INDENT 2.0
  247117. .IP \(bu 2
  247118. b706d3aa4d Merge pull request \fI\%#32373\fP from cachedout/issue_32201
  247119. .IP \(bu 2
  247120. d9e4a0f372 Resolve memory leak in authentication
  247121. .UNINDENT
  247122. .IP \(bu 2
  247123. \fBPR\fP \fI\%#32126\fP: (\fI\%cro\fP) Add a couple CLI examples for the highstate outputter.
  247124. @ \fI2016\-04\-05 17:23:29 UTC\fP
  247125. .INDENT 2.0
  247126. .IP \(bu 2
  247127. 097aa7ccfc Merge pull request \fI\%#32126\fP from cro/outputter_terse_docs
  247128. .IP \(bu 2
  247129. dafe279e60 Lint
  247130. .IP \(bu 2
  247131. abc2de0119 More clarification.
  247132. .IP \(bu 2
  247133. 85221e515b Expand docs for highstate outputter. Add CLI examples for when \(aqstate_output: filter\(aq is set.
  247134. .UNINDENT
  247135. .IP \(bu 2
  247136. \fBPR\fP \fI\%#32353\fP: (\fI\%mcalmer\fP) Prevent metadata download when listing installed products
  247137. @ \fI2016\-04\-05 17:02:15 UTC\fP
  247138. .INDENT 2.0
  247139. .IP \(bu 2
  247140. eab3b99be2 Merge pull request \fI\%#32353\fP from mcalmer/prevent\-refresh\-on\-list\-installed\-products
  247141. .IP \(bu 2
  247142. e32212ad53 Prevent metadata download when listing installed products
  247143. .UNINDENT
  247144. .IP \(bu 2
  247145. \fBISSUE\fP \fI\%#32255\fP: (\fI\%jakosky\fP) Salt\-minion 2015.8.8 should display helpful error when regular file /var/log/salt/minion exists but a directory is expected. (refs: \fI\%#32321\fP)
  247146. .IP \(bu 2
  247147. \fBPR\fP \fI\%#32321\fP: (\fI\%abednarik\fP) Better message when minion fail to start
  247148. @ \fI2016\-04\-05 16:28:06 UTC\fP
  247149. .INDENT 2.0
  247150. .IP \(bu 2
  247151. 64abec94e7 Merge pull request \fI\%#32321\fP from abednarik/minion_start_fail_log
  247152. .IP \(bu 2
  247153. 4c72adc03a Better message when minion fail to start
  247154. .UNINDENT
  247155. .IP \(bu 2
  247156. \fBISSUE\fP \fI\%#30147\fP: (\fI\%anandnevase\fP) salt.cloud.CloudClient method create() not working for VMware driver (refs: \fI\%#32344\fP)
  247157. .IP \(bu 2
  247158. \fBPR\fP \fI\%#32345\fP: (\fI\%nmadhok\fP) [2015.8] Check if profile key exists in vm_ dict
  247159. @ \fI2016\-04\-05 16:16:36 UTC\fP
  247160. .INDENT 2.0
  247161. .IP \(bu 2
  247162. \fBPR\fP \fI\%#32344\fP: (\fI\%nmadhok\fP) Check if profile key exists in vm_ dict (refs: \fI\%#32345\fP)
  247163. .IP \(bu 2
  247164. 59aca733ea Merge pull request \fI\%#32345\fP from nmadhok/patch\-4
  247165. .IP \(bu 2
  247166. 42d7a54240 Check if profile key exists in vm_ dict
  247167. .UNINDENT
  247168. .IP \(bu 2
  247169. \fBPR\fP \fI\%#32343\fP: (\fI\%Ferbla\fP) Fixed win_wua example documentation
  247170. @ \fI2016\-04\-05 16:14:37 UTC\fP
  247171. .INDENT 2.0
  247172. .IP \(bu 2
  247173. bb033c238d Merge pull request \fI\%#32343\fP from Ferbla/2015.8
  247174. .IP \(bu 2
  247175. e2f0f16564 Fixed win_wua example documentation
  247176. .UNINDENT
  247177. .IP \(bu 2
  247178. \fBISSUE\fP \fI\%#32354\fP: (\fI\%elsmorian\fP) Incorrect capitalisation when telling users to change hash_type to SHA256 (refs: \fI\%#32360\fP)
  247179. .IP \(bu 2
  247180. \fBPR\fP \fI\%#32360\fP: (\fI\%rallytime\fP) Make sure hash_type is lowercase in master/minion config files
  247181. @ \fI2016\-04\-05 16:10:46 UTC\fP
  247182. .INDENT 2.0
  247183. .IP \(bu 2
  247184. 3219a8d176 Merge pull request \fI\%#32360\fP from rallytime/fix\-32354
  247185. .IP \(bu 2
  247186. 8b47c205df Make sure hash_type is lowercase in master/minion config files
  247187. .UNINDENT
  247188. .IP \(bu 2
  247189. \fBPR\fP \fI\%#32361\fP: (\fI\%cro\fP) SDB is no longer experimental
  247190. @ \fI2016\-04\-05 16:10:23 UTC\fP
  247191. .INDENT 2.0
  247192. .IP \(bu 2
  247193. fb530256f6 Merge pull request \fI\%#32361\fP from cro/remove_sdb_exp_flag
  247194. .IP \(bu 2
  247195. 3bbe284d89 Remove \(aqexperimental\(aq warning from SDB docs.
  247196. .UNINDENT
  247197. .IP \(bu 2
  247198. \fBPR\fP \fI\%#32336\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28639\fP to 2015.8
  247199. @ \fI2016\-04\-04 20:53:11 UTC\fP
  247200. .INDENT 2.0
  247201. .IP \(bu 2
  247202. \fBPR\fP \fI\%#28639\fP: (\fI\%RuriRyan\fP) Fixed handling of the disabled option for yumpkg (refs: \fI\%#32336\fP)
  247203. .IP \(bu 2
  247204. e1ef4a9d66 Merge pull request \fI\%#32336\fP from rallytime/bp\-28639
  247205. .IP \(bu 2
  247206. 0829143dd1 Fixed handling of the disabled option for yumpkg
  247207. .UNINDENT
  247208. .IP \(bu 2
  247209. \fBISSUE\fP \fI\%#32305\fP: (\fI\%Ch3LL\fP) Receiving NoResponse Errors when running commands that take a longer time (refs: \fI\%#32332\fP)
  247210. .IP \(bu 2
  247211. \fBPR\fP \fI\%#32332\fP: (\fI\%rallytime\fP) Don\(aqt unsubscribe from open events on the CLI too early on long\-running commands
  247212. @ \fI2016\-04\-04 20:39:39 UTC\fP
  247213. .INDENT 2.0
  247214. .IP \(bu 2
  247215. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#32332\fP)
  247216. .IP \(bu 2
  247217. 6ee5a9729c Merge pull request \fI\%#32332\fP from rallytime/fix\-32305
  247218. .IP \(bu 2
  247219. 8dc1161c8a Don\(aqt unsubscribe from open events on the CLI too early on long\-running commands
  247220. .UNINDENT
  247221. .IP \(bu 2
  247222. \fBPR\fP \fI\%#32333\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247223. @ \fI2016\-04\-04 20:06:02 UTC\fP
  247224. .INDENT 2.0
  247225. .IP \(bu 2
  247226. 22b296d2fd Merge pull request \fI\%#32333\fP from rallytime/merge\-2015.8
  247227. .IP \(bu 2
  247228. d7b4b8b081 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247229. .IP \(bu 2
  247230. fbdc47cc55 Merge pull request \fI\%#32284\fP from rallytime/config\-audit
  247231. .INDENT 2.0
  247232. .IP \(bu 2
  247233. 0491513204 Don\(aqt be so explicit. Just use string_types.
  247234. .IP \(bu 2
  247235. 083c477fd3 Use six.string_types in config default tuples
  247236. .IP \(bu 2
  247237. 7e642b8381 Audit config.py default types and values \- first sweep
  247238. .UNINDENT
  247239. .IP \(bu 2
  247240. 0a6d44e57b Merge pull request \fI\%#32302\fP from terminalmage/fix\-missing\-release
  247241. .INDENT 2.0
  247242. .IP \(bu 2
  247243. 413c371ccd Properly support packages with blank "Release" param in pkg.latest_version
  247244. .UNINDENT
  247245. .UNINDENT
  247246. .IP \(bu 2
  247247. \fBISSUE\fP \fI\%#32246\fP: (\fI\%danlsgiga\fP) IMPORTANT: Do not use md5 hashing algorithm! Please set "hash_type" to SHA256 in Salt Minion config! (refs: \fI\%#32289\fP)
  247248. .IP \(bu 2
  247249. \fBPR\fP \fI\%#32289\fP: (\fI\%rallytime\fP) New salt\-cloud instances should not use old hash_type default.
  247250. @ \fI2016\-04\-04 17:52:09 UTC\fP
  247251. .INDENT 2.0
  247252. .IP \(bu 2
  247253. \fBPR\fP \fI\%#31162\fP: (\fI\%isbm\fP) Remove MD5 digest from everywhere and default to SHA256 (refs: \fI\%#32289\fP)
  247254. .IP \(bu 2
  247255. 28cc054244 Merge pull request \fI\%#32289\fP from rallytime/fix\-32246
  247256. .IP \(bu 2
  247257. 66acc00c71 New salt\-cloud instances should not use old hash_type default.
  247258. .UNINDENT
  247259. .IP \(bu 2
  247260. \fBISSUE\fP \fI\%#14277\fP: (\fI\%Sacro\fP) Chocolatey.version doesn\(aqt tell you anything informative. (refs: \fI\%#32291\fP)
  247261. .IP \(bu 2
  247262. \fBPR\fP \fI\%#32291\fP: (\fI\%twangboy\fP) Fix bad output for chocolatey.version (fixes \fI\%#14277\fP)
  247263. @ \fI2016\-04\-04 17:50:54 UTC\fP
  247264. .INDENT 2.0
  247265. .IP \(bu 2
  247266. 5fb90a1040 Merge pull request \fI\%#32291\fP from twangboy/fix_14277
  247267. .IP \(bu 2
  247268. 53f6a28297 Fix problem with return on installed packages
  247269. .IP \(bu 2
  247270. f5bd004ab0 Fix chocolatey.version function
  247271. .UNINDENT
  247272. .IP \(bu 2
  247273. \fBISSUE\fP \fI\%#32183\fP: (\fI\%llamallama\fP) Salt Cloud 2015.8.8 not installing salt minions on new nodes (refs: \fI\%#32295\fP)
  247274. .IP \(bu 2
  247275. \fBPR\fP \fI\%#32295\fP: (\fI\%rallytime\fP) Test the contents of \(aqdeploy_scripts_search_path\(aq in salt.config.cloud_config
  247276. @ \fI2016\-04\-04 17:38:47 UTC\fP
  247277. .INDENT 2.0
  247278. .IP \(bu 2
  247279. edbab99164 Merge pull request \fI\%#32295\fP from rallytime/test\-cloud\-deploy\-dir
  247280. .IP \(bu 2
  247281. 4037476f40 Patch call to os.path.isdir so we know both search paths are in tuple
  247282. .IP \(bu 2
  247283. 49a4eec051 Test the contents of \(aqdeploy_scripts_search_path\(aq in salt.config.cloud_config
  247284. .UNINDENT
  247285. .IP \(bu 2
  247286. \fBISSUE\fP \fI\%#23617\fP: (\fI\%porterjamesj\fP) file.managed with proxy broken in 2015.5 (refs: \fI\%#32315\fP)
  247287. .IP \(bu 2
  247288. \fBPR\fP \fI\%#32315\fP: (\fI\%ahus1\fP) fixing file.managed with requests lib
  247289. @ \fI2016\-04\-04 17:20:11 UTC\fP
  247290. .INDENT 2.0
  247291. .IP \(bu 2
  247292. 4389680bc5 Merge pull request \fI\%#32315\fP from ahus1/fix_file_managed_http_requests
  247293. .IP \(bu 2
  247294. a867d23383 ensure streaming mode (use for example by file.managed) will works for requests backend
  247295. .UNINDENT
  247296. .IP \(bu 2
  247297. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#782\fP: (\fI\%ninjada\fP) Bootstrap and Links & Documentation still broken due to fedoraproject redirect to fedorainfracloud.org (refs: \fI\%#32316\fP)
  247298. .IP \(bu 2
  247299. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#742\fP: (\fI\%dennisfoconnor\fP) Non\-Development Script Broken on Amazon Linux (refs: \fI\%#32316\fP)
  247300. .IP \(bu 2
  247301. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#695\fP: (\fI\%mtippett\fP) Install Failures With Raspbian Jessie (refs: \fI\%#32316\fP)
  247302. .IP \(bu 2
  247303. \fBPR\fP \fI\%#32316\fP: (\fI\%vutny\fP) Update Salt Bootstrap tutorial
  247304. @ \fI2016\-04\-04 17:18:12 UTC\fP
  247305. .INDENT 2.0
  247306. .IP \(bu 2
  247307. 9065201761 Merge pull request \fI\%#32316\fP from vutny/update\-bootstrap\-tutorial
  247308. .IP \(bu 2
  247309. b9698f015d Update Salt Bootstrap tutorial
  247310. .UNINDENT
  247311. .IP \(bu 2
  247312. \fBPR\fP \fI\%#32325\fP: (\fI\%bdrung\fP) Re\-add shebang to ssh\-id\-wrapper shell script
  247313. @ \fI2016\-04\-04 17:08:41 UTC\fP
  247314. .INDENT 2.0
  247315. .IP \(bu 2
  247316. 352f3c01d1 Merge pull request \fI\%#32325\fP from bdrung/fix\-shebang
  247317. .IP \(bu 2
  247318. ffe585f078 Re\-add shebang to ssh\-id\-wrapper shell script
  247319. .UNINDENT
  247320. .IP \(bu 2
  247321. \fBPR\fP \fI\%#32326\fP: (\fI\%bdrung\fP) Fix typos
  247322. @ \fI2016\-04\-04 16:41:41 UTC\fP
  247323. .INDENT 2.0
  247324. .IP \(bu 2
  247325. f16e332b3a Merge pull request \fI\%#32326\fP from bdrung/fix\-typos
  247326. .IP \(bu 2
  247327. a7db152333 Fix typo dont \-> don\(aqt
  247328. .IP \(bu 2
  247329. d4c037301b Fix typo missmatch \-> mismatch
  247330. .IP \(bu 2
  247331. 70dba70ff0 Fix typo additonal \-> addition
  247332. .IP \(bu 2
  247333. 68c60903aa Fix typo mutliple \-> multiple
  247334. .IP \(bu 2
  247335. 0f2c779b90 Fix typo fucntion \-> function
  247336. .IP \(bu 2
  247337. 0c9e4c8c80 Fix typo avilable \-> available
  247338. .IP \(bu 2
  247339. 920abe2ec7 Fix typo formated \-> formatted
  247340. .IP \(bu 2
  247341. e56dd4bb23 Fix typo ommitted \-> omitted
  247342. .IP \(bu 2
  247343. f99e6f1f13 Fix typo ouptut \-> output
  247344. .IP \(bu 2
  247345. d3804094f2 Fix typo wether \-> whether
  247346. .IP \(bu 2
  247347. 538fb6fae2 Fix typo perfomed \-> performed
  247348. .IP \(bu 2
  247349. db7af998ee Fix typo santized \-> sanitized
  247350. .IP \(bu 2
  247351. d7af01da2b Fix typo coresponding \-> corresponding
  247352. .IP \(bu 2
  247353. 301e78b5be Fix typo vaules \-> values
  247354. .IP \(bu 2
  247355. 8cada9573f Fix typos of retrieve
  247356. .IP \(bu 2
  247357. b484d6f9c9 Fix typo directorys \-> directories
  247358. .UNINDENT
  247359. .IP \(bu 2
  247360. \fBPR\fP \fI\%#32300\fP: (\fI\%twangboy\fP) Add documentation to disable winrepo/winrepo_ng
  247361. @ \fI2016\-04\-01 21:23:09 UTC\fP
  247362. .INDENT 2.0
  247363. .IP \(bu 2
  247364. 664043d7e7 Merge pull request \fI\%#32300\fP from twangboy/fix_28767
  247365. .IP \(bu 2
  247366. c971a3b054 Add documentation for disabled the winrepos
  247367. .UNINDENT
  247368. .IP \(bu 2
  247369. \fBISSUE\fP \fI\%#18429\fP: (\fI\%somenick\fP) Pillars passed from command\-line override pillar subtrees instead of merging (refs: \fI\%#32288\fP)
  247370. .IP \(bu 2
  247371. \fBPR\fP \fI\%#32288\fP: (\fI\%terminalmage\fP) use dictupdate.merge instead of dict.update to merge CLI pillar overrides
  247372. @ \fI2016\-04\-01 16:30:30 UTC\fP
  247373. .INDENT 2.0
  247374. .IP \(bu 2
  247375. 42a25f6b9d Merge pull request \fI\%#32288\fP from terminalmage/issue18429
  247376. .IP \(bu 2
  247377. db31732137 use dictupdate.merge instead of dict.update to merge CLI pillar overrides
  247378. .UNINDENT
  247379. .IP \(bu 2
  247380. \fBPR\fP \fI\%#32243\fP: (\fI\%isbm\fP) Ensure latest pkg.info_installed ensure latest
  247381. @ \fI2016\-03\-31 16:09:59 UTC\fP
  247382. .INDENT 2.0
  247383. .IP \(bu 2
  247384. 3e374e7ec6 Merge pull request \fI\%#32243\fP from isbm/isbm\-zypper\-list\-installed\-ensure\-latest
  247385. .IP \(bu 2
  247386. fba3d509ac Fix the documentation
  247387. .IP \(bu 2
  247388. 73ad8a2bfc Fix lint
  247389. .IP \(bu 2
  247390. f07c7ea792 Add lowpkg tests for version comparison
  247391. .IP \(bu 2
  247392. afdf451d87 Remove tests from the zypper_test that belongs to rpm_test
  247393. .IP \(bu 2
  247394. 3706a21c29 Fix condition from returning None on 0
  247395. .IP \(bu 2
  247396. 0a68ebff16 Remove suse/redhat checks, refactor code.
  247397. .IP \(bu 2
  247398. 30c8f7216b Move "string to EVR" function to the utilities
  247399. .IP \(bu 2
  247400. fb014a40b0 Sort installed pkgs data by version_cmp
  247401. .IP \(bu 2
  247402. b57e439d57 Merge yumpkg\(aqs and zypper\(aqs version_cmp for a common use
  247403. .IP \(bu 2
  247404. ebd13a283c Remove version_cmp from Zypper module and use just lowpkg alias
  247405. .IP \(bu 2
  247406. b46d5b526a Remove version_cmp from the yumpkg and use just a lowpkg alias
  247407. .IP \(bu 2
  247408. f4d9881e61 Force\-sort the RPM output to ensure latest version of the multi\-package on top of the list.
  247409. .UNINDENT
  247410. .IP \(bu 2
  247411. \fBISSUE\fP \fI\%#32261\fP: (\fI\%arthurlogilab\fP) dockerng : AttributeError: \(aqmodule\(aq object has no attribute \(aqversion_info\(aq (refs: \fI\%#32262\fP, \fI\%#32268\fP)
  247412. .IP \(bu 2
  247413. \fBPR\fP \fI\%#32268\fP: (\fI\%ticosax\fP) [dockerng] Improve detection for older versions of docker\-py
  247414. @ \fI2016\-03\-31 14:51:46 UTC\fP
  247415. .INDENT 2.0
  247416. .IP \(bu 2
  247417. \fBPR\fP \fI\%#32262\fP: (\fI\%arthurlogilab\fP) Catch Attribute Error when docker.version_info doesn\(aqt exist (refs: \fI\%#32268\fP)
  247418. .IP \(bu 2
  247419. 88fa3c5f71 Merge pull request \fI\%#32268\fP from ticosax/handle\-dockerpy\-old
  247420. .IP \(bu 2
  247421. 05116aaa40 Improve detection for older versions of docker\-py
  247422. .UNINDENT
  247423. .IP \(bu 2
  247424. \fBPR\fP \fI\%#32258\fP: (\fI\%jacobhammons\fP) Replaces incorrect reference to \fImaster_alive_check\fP
  247425. @ \fI2016\-03\-31 14:41:09 UTC\fP
  247426. .INDENT 2.0
  247427. .IP \(bu 2
  247428. a491897a3b Merge pull request \fI\%#32258\fP from jacobhammons/alive\-interval\-docs
  247429. .IP \(bu 2
  247430. ff8ca5ac2e Replaces incorrect reference to \fImaster_alive_check\fP with \fImaster_alive_interval\fP in docs
  247431. .UNINDENT
  247432. .IP \(bu 2
  247433. \fBPR\fP \fI\%#32254\fP: (\fI\%twangboy\fP) Fix Display Name with spaces in win_servermanager
  247434. @ \fI2016\-03\-31 14:38:22 UTC\fP
  247435. .INDENT 2.0
  247436. .IP \(bu 2
  247437. 8c68d8ac41 Merge pull request \fI\%#32254\fP from twangboy/fix_31334
  247438. .IP \(bu 2
  247439. e5f02c52be Fix a pylint error
  247440. .IP \(bu 2
  247441. 5ca4ad6675 Fix unit tests for state
  247442. .IP \(bu 2
  247443. 12d530f8f0 Fix win_servermanager state
  247444. .IP \(bu 2
  247445. b26cb76abb Fix unit tests
  247446. .IP \(bu 2
  247447. 1d5bcee390 Fix 31344
  247448. .UNINDENT
  247449. .IP \(bu 2
  247450. \fBPR\fP \fI\%#32248\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247451. @ \fI2016\-03\-30 21:10:01 UTC\fP
  247452. .INDENT 2.0
  247453. .IP \(bu 2
  247454. 0f5e67de5d Merge pull request \fI\%#32248\fP from rallytime/merge\-2015.8
  247455. .IP \(bu 2
  247456. d743f8cc4e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247457. .INDENT 2.0
  247458. .IP \(bu 2
  247459. 5d08db7c92 Merge pull request \fI\%#32162\fP from terminalmage/issue31963
  247460. .INDENT 2.0
  247461. .IP \(bu 2
  247462. 5c1bdb812c Fix pkgrepo integration test
  247463. .IP \(bu 2
  247464. e7fb3095ce Properly handle yum/zypper repositories in pkgrepo.managed
  247465. .IP \(bu 2
  247466. add2111fec Use six.iteritems instead of dict.items
  247467. .IP \(bu 2
  247468. 6c21881c38 Docstring tweaks
  247469. .IP \(bu 2
  247470. ecbb78b649 Remove useless function
  247471. .IP \(bu 2
  247472. 06f3309552 Normalize variable naming to match other functions
  247473. .IP \(bu 2
  247474. 690537ca8b Look for apt\-add\-repository in PATH instead of assuming it\(aqs there
  247475. .IP \(bu 2
  247476. 709d80bb1b aptpkg: Accept **kwargs instead of a dict for pkg.expand_repo_def
  247477. .UNINDENT
  247478. .IP \(bu 2
  247479. 4fcdaab428 Merge pull request \fI\%#32223\fP from twangboy/fix_31976
  247480. .INDENT 2.0
  247481. .IP \(bu 2
  247482. b7fcae97ce Create minion.d directory, fixes \fI\%#31976\fP
  247483. .UNINDENT
  247484. .IP \(bu 2
  247485. 3309ff6a29 Merge pull request \fI\%#32218\fP from cachedout/issue_31501
  247486. .INDENT 2.0
  247487. .IP \(bu 2
  247488. 6795d6aef0 Only display error when tty is True in salt\-ssh
  247489. .UNINDENT
  247490. .IP \(bu 2
  247491. 6e0cb22c96 Merge pull request \fI\%#32196\fP from jtand/cherrypy_pam_test_lint_fix
  247492. .INDENT 2.0
  247493. .IP \(bu 2
  247494. bd3942e0fd Fixed pylint error in app_pam_test.py
  247495. .UNINDENT
  247496. .UNINDENT
  247497. .UNINDENT
  247498. .IP \(bu 2
  247499. \fBISSUE\fP \fI\%#32169\fP: (\fI\%sknutsonsf\fP) CommandNotFoundError: update\-rc.d during service.enabled on Centos 7 (refs: \fI\%#32230\fP)
  247500. .IP \(bu 2
  247501. \fBPR\fP \fI\%#32230\fP: (\fI\%terminalmage\fP) systemd.py: Support both update\-rc.d and chkconfig as managers of sysv services
  247502. @ \fI2016\-03\-30 21:09:43 UTC\fP
  247503. .INDENT 2.0
  247504. .IP \(bu 2
  247505. 6216c37885 Merge pull request \fI\%#32230\fP from terminalmage/issue32169
  247506. .IP \(bu 2
  247507. 45af3e902a systemd.py: Support both update\-rc.d and chkconfig as managers of sysv services
  247508. .UNINDENT
  247509. .IP \(bu 2
  247510. \fBPR\fP \fI\%#32249\fP: (\fI\%jacobhammons\fP) Fixes windows download paths to account for patch
  247511. @ \fI2016\-03\-30 20:26:53 UTC\fP
  247512. .INDENT 2.0
  247513. .IP \(bu 2
  247514. bde2a1fc98 Merge pull request \fI\%#32249\fP from jacobhammons/dot8
  247515. .IP \(bu 2
  247516. 50d1df2482 Fixes windows download paths to account for patch
  247517. .UNINDENT
  247518. .IP \(bu 2
  247519. \fBPR\fP \fI\%#32221\fP: (\fI\%dmurphy18\fP) Fix version check, fix extracting Major and Minor versions from __ver…
  247520. @ \fI2016\-03\-30 14:50:31 UTC\fP
  247521. .INDENT 2.0
  247522. .IP \(bu 2
  247523. 1d9321d043 Merge pull request \fI\%#32221\fP from dmurphy18/fix_version_check
  247524. .IP \(bu 2
  247525. 96cf024e63 Fix version check, fix extracting Major and Minor versions from __version__
  247526. .UNINDENT
  247527. .IP \(bu 2
  247528. \fBISSUE\fP \fI\%#32031\fP: (\fI\%travispaul\fP) Unable to manage Windows services that contain a space in the service name (refs: \fI\%#32227\fP)
  247529. .IP \(bu 2
  247530. \fBPR\fP \fI\%#32227\fP: (\fI\%twangboy\fP) Remove list2cmdline usage from win_service.py
  247531. @ \fI2016\-03\-30 14:43:17 UTC\fP
  247532. .INDENT 2.0
  247533. .IP \(bu 2
  247534. 22bd1e6b29 Merge pull request \fI\%#32227\fP from twangboy/fix_32031
  247535. .IP \(bu 2
  247536. 58772b036d Remove list2cmdline usage
  247537. .UNINDENT
  247538. .IP \(bu 2
  247539. \fBPR\fP \fI\%#32239\fP: (\fI\%anlutro\fP) Add state file name to warning log line
  247540. @ \fI2016\-03\-30 14:37:54 UTC\fP
  247541. .INDENT 2.0
  247542. .IP \(bu 2
  247543. 7fce438b67 Merge pull request \fI\%#32239\fP from alprs/fix\-file_log_warning
  247544. .IP \(bu 2
  247545. 72adae3702 add state file name to log line
  247546. .UNINDENT
  247547. .IP \(bu 2
  247548. \fBISSUE\fP \fI\%#31365\fP: (\fI\%cwicklein\fP) osrelease_info broken for CentOS 7 (refs: \fI\%#32215\fP)
  247549. .IP \(bu 2
  247550. \fBPR\fP \fI\%#32215\fP: (\fI\%DmitryKuzmenko\fP) rhel oscodename
  247551. @ \fI2016\-03\-29 19:14:50 UTC\fP
  247552. .INDENT 2.0
  247553. .IP \(bu 2
  247554. 3c3028f347 Merge pull request \fI\%#32215\fP from DSRCompany/issues/rhel_oscodename
  247555. .IP \(bu 2
  247556. dc2a3b81ac Ignore lsb codename from os\-release for newest RHEL
  247557. .UNINDENT
  247558. .IP \(bu 2
  247559. \fBPR\fP \fI\%#32217\fP: (\fI\%jacobhammons\fP) 2015.8.8.2 release notes
  247560. @ \fI2016\-03\-29 17:53:22 UTC\fP
  247561. .INDENT 2.0
  247562. .IP \(bu 2
  247563. bf59f06733 Merge pull request \fI\%#32217\fP from jacobhammons/dot8
  247564. .IP \(bu 2
  247565. 596444e2b4 2015.8.8.2 release notes Adds banner notifiying user when they are viewing release notes for an old release
  247566. .UNINDENT
  247567. .IP \(bu 2
  247568. \fBISSUE\fP \fI\%#31844\fP: (\fI\%Talkless\fP) slspath is not documented (refs: \fI\%#32197\fP)
  247569. .IP \(bu 2
  247570. \fBPR\fP \fI\%#32212\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32197\fP to 2015.8
  247571. @ \fI2016\-03\-29 15:50:58 UTC\fP
  247572. .INDENT 2.0
  247573. .IP \(bu 2
  247574. \fBPR\fP \fI\%#32197\fP: (\fI\%twellspring\fP) documentation fix issue 31844 (refs: \fI\%#32212\fP)
  247575. .IP \(bu 2
  247576. ab8b70d985 Merge pull request \fI\%#32212\fP from rallytime/bp\-32197
  247577. .IP \(bu 2
  247578. 5fdd81ace9 documentation fix issue 31844
  247579. .UNINDENT
  247580. .IP \(bu 2
  247581. \fBISSUE\fP \fI\%#31931\fP: (\fI\%gravyboat\fP) Ordering States documentation should note top.sls adheres to this rule (refs: \fI\%#32193\fP)
  247582. .IP \(bu 2
  247583. \fBPR\fP \fI\%#32211\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32210\fP to 2015.8
  247584. @ \fI2016\-03\-29 15:50:42 UTC\fP
  247585. .INDENT 2.0
  247586. .IP \(bu 2
  247587. \fBPR\fP \fI\%#32210\fP: (\fI\%rallytime\fP) Merge \fI\%#32193\fP with pylint fix (refs: \fI\%#32211\fP)
  247588. .IP \(bu 2
  247589. \fBPR\fP \fI\%#32193\fP: (\fI\%twellspring\fP) Documentation fix 31931 (refs: \fI\%#32210\fP, \fI\%#32211\fP)
  247590. .IP \(bu 2
  247591. 200d82cc3e Merge pull request \fI\%#32211\fP from rallytime/bp\-32210
  247592. .IP \(bu 2
  247593. 7b9c05487c Whitespace fix.
  247594. .IP \(bu 2
  247595. abd432746c documentation\-fix\-31931
  247596. .IP \(bu 2
  247597. 79086f8f04 service.py documentation update for 32084
  247598. .UNINDENT
  247599. .IP \(bu 2
  247600. \fBISSUE\fP \fI\%#32084\fP: (\fI\%guettli\fP) Docs: Please provide a link from "service.running" to "watch" (refs: \fI\%#32192\fP)
  247601. .IP \(bu 2
  247602. \fBPR\fP \fI\%#32209\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32208\fP to 2015.8
  247603. @ \fI2016\-03\-29 15:50:27 UTC\fP
  247604. .INDENT 2.0
  247605. .IP \(bu 2
  247606. \fBPR\fP \fI\%#32208\fP: (\fI\%rallytime\fP) Merge \fI\%#32192\fP with pylint fix (refs: \fI\%#32209\fP)
  247607. .IP \(bu 2
  247608. \fBPR\fP \fI\%#32192\fP: (\fI\%twellspring\fP) service.py documentation update for 32084 (refs: \fI\%#32208\fP, \fI\%#32209\fP)
  247609. .IP \(bu 2
  247610. 32da8d4c57 Merge pull request \fI\%#32209\fP from rallytime/bp\-32208
  247611. .IP \(bu 2
  247612. 777a2c4e83 Whitespace fix.
  247613. .IP \(bu 2
  247614. e3db0640ec service.py documentation update for 32084
  247615. .UNINDENT
  247616. .IP \(bu 2
  247617. \fBISSUE\fP \fI\%#31595\fP: (\fI\%dverbeek84\fP) dockerng ports specified in Dockerfile must be in sls file otherwise salt gives an error (refs: \fI\%#32204\fP)
  247618. .IP \(bu 2
  247619. \fBPR\fP \fI\%#32204\fP: (\fI\%ticosax\fP) [dockerng] Consider labels carried by the image when comparing user defined labels.
  247620. @ \fI2016\-03\-29 14:39:22 UTC\fP
  247621. .INDENT 2.0
  247622. .IP \(bu 2
  247623. 7154104591 Merge pull request \fI\%#32204\fP from ticosax/label\-from\-image
  247624. .IP \(bu 2
  247625. c989ae5a7e Merge user defined labels with one carried by the image
  247626. .UNINDENT
  247627. .IP \(bu 2
  247628. \fBPR\fP \fI\%#32186\fP: (\fI\%rallytime\fP) Add some "best practices" information to test documentation
  247629. @ \fI2016\-03\-29 00:22:48 UTC\fP
  247630. .INDENT 2.0
  247631. .IP \(bu 2
  247632. 5877a19f59 Merge pull request \fI\%#32186\fP from rallytime/testing\-docs
  247633. .IP \(bu 2
  247634. 40d09c822e Add some "best practices" information to test documentation
  247635. .UNINDENT
  247636. .IP \(bu 2
  247637. \fBPR\fP \fI\%#32176\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247638. @ \fI2016\-03\-28 23:16:09 UTC\fP
  247639. .INDENT 2.0
  247640. .IP \(bu 2
  247641. b44adffc12 Merge pull request \fI\%#32176\fP from rallytime/merge\-2015.8
  247642. .IP \(bu 2
  247643. e8658697a6 Pylint fix for integration import
  247644. .IP \(bu 2
  247645. 527bc3e491 Pylint fix
  247646. .IP \(bu 2
  247647. e9abd2d420 Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247648. .IP \(bu 2
  247649. 6b8b8b51c0 Merge pull request \fI\%#32154\fP from Ch3LL/ch3ll_pam_2015.5
  247650. .INDENT 2.0
  247651. .IP \(bu 2
  247652. ba605b0128 fix more pylint and add ability to close cherrypy engine
  247653. .IP \(bu 2
  247654. 2d4dc4da05 add teardown call
  247655. .IP \(bu 2
  247656. d115878714 fix pylint error
  247657. .IP \(bu 2
  247658. 4c1ab082b6 add pam salt\-api tests
  247659. .UNINDENT
  247660. .IP \(bu 2
  247661. 230443be6c Merge pull request \fI\%#32170\fP from gtmanfred/lxc_cloud_name
  247662. .INDENT 2.0
  247663. .IP \(bu 2
  247664. eb7d82e7be add name for lxc for use with cloud cache
  247665. .UNINDENT
  247666. .IP \(bu 2
  247667. 32b0421a34 Merge pull request \fI\%#32164\fP from terminalmage/issue31731\-2015.5
  247668. .INDENT 2.0
  247669. .IP \(bu 2
  247670. 18439c4f89 Make __virtual__ for rhservice.py more robust (2015.5 branch)
  247671. .UNINDENT
  247672. .IP \(bu 2
  247673. 6212e9aa56 Merge pull request \fI\%#32141\fP from paclat/issue_32108
  247674. .INDENT 2.0
  247675. .IP \(bu 2
  247676. 72c5d12d43 fixes 32108
  247677. .UNINDENT
  247678. .UNINDENT
  247679. .IP \(bu 2
  247680. \fBISSUE\fP \fI\%#27605\fP: (\fI\%jmcook1\fP) nacl module documentation/possible bug (refs: \fI\%#32163\fP)
  247681. .IP \(bu 2
  247682. \fBPR\fP \fI\%#32163\fP: (\fI\%rallytime\fP) Update nacl.config docs to use key value instead of \(aqNone\(aq
  247683. @ \fI2016\-03\-28 14:46:40 UTC\fP
  247684. .INDENT 2.0
  247685. .IP \(bu 2
  247686. 1afb048801 Merge pull request \fI\%#32163\fP from rallytime/fix\-27605
  247687. .IP \(bu 2
  247688. e2d09f57dc Update nacl.config docs to use key value instead of \(aqNone\(aq
  247689. .UNINDENT
  247690. .IP \(bu 2
  247691. \fBPR\fP \fI\%#32166\fP: (\fI\%vutny\fP) \fIsalt.states.file\fP: correct examples with multiline YAML string
  247692. @ \fI2016\-03\-28 14:45:32 UTC\fP
  247693. .INDENT 2.0
  247694. .IP \(bu 2
  247695. c08ba3f8a9 Merge pull request \fI\%#32166\fP from vutny/fix\-multiline\-yaml\-string\-example
  247696. .IP \(bu 2
  247697. 34aaea93b4 Another indentation fix in \fIsalt.states.alternatives\fP
  247698. .IP \(bu 2
  247699. 85d0576583 \fIsalt.states.file\fP: correct examples with multiline YAML string
  247700. .UNINDENT
  247701. .IP \(bu 2
  247702. \fBPR\fP \fI\%#32168\fP: (\fI\%rallytime\fP) Lint 2015.8
  247703. @ \fI2016\-03\-27 18:26:50 UTC\fP
  247704. .INDENT 2.0
  247705. .IP \(bu 2
  247706. f2e986cf65 Merge pull request \fI\%#32168\fP from rallytime/lint\-2015.8
  247707. .IP \(bu 2
  247708. ba6b19d72c Lint 2015.8
  247709. .UNINDENT
  247710. .IP \(bu 2
  247711. \fBISSUE\fP \fI\%#31731\fP: (\fI\%sjorge\fP) rh_service references osrelease before it is available, also does not return bool (refs: \fI\%#32165\fP)
  247712. .IP \(bu 2
  247713. \fBPR\fP \fI\%#32165\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (refs: \fI\%#32164\fP)
  247714. @ \fI2016\-03\-27 18:21:16 UTC\fP
  247715. .INDENT 2.0
  247716. .IP \(bu 2
  247717. \fBPR\fP \fI\%#32164\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (2015.5 branch) (refs: \fI\%#32165\fP)
  247718. .IP \(bu 2
  247719. ae472617af Merge pull request \fI\%#32165\fP from terminalmage/issue31731
  247720. .IP \(bu 2
  247721. 559eb7da52 Make __virtual__ for rhservice.py more robust
  247722. .UNINDENT
  247723. .IP \(bu 2
  247724. \fBISSUE\fP \fI\%#31944\fP: (\fI\%Inveracity\fP) traceback in _determine_beacon_config(...) in beacon/__init__.py line 105 (refs: \fI\%#32160\fP)
  247725. .IP \(bu 2
  247726. \fBPR\fP \fI\%#32160\fP: (\fI\%cachedout\fP) Fix beacon tutorial docs
  247727. @ \fI2016\-03\-25 22:32:51 UTC\fP
  247728. .INDENT 2.0
  247729. .IP \(bu 2
  247730. 63c8bf3542 Merge pull request \fI\%#32160\fP from cachedout/issue_31944
  247731. .IP \(bu 2
  247732. 104ada5b6f Fix beacon tutorial docs
  247733. .UNINDENT
  247734. .IP \(bu 2
  247735. \fBPR\fP \fI\%#32145\fP: (\fI\%paclat\fP) fixes 29817 (refs: \fI\%#32332\fP)
  247736. @ \fI2016\-03\-25 16:55:47 UTC\fP
  247737. .INDENT 2.0
  247738. .IP \(bu 2
  247739. bff94a5160 Merge pull request \fI\%#32145\fP from paclat/issue_29817
  247740. .IP \(bu 2
  247741. 5d970ca031 fixes 29817
  247742. .UNINDENT
  247743. .IP \(bu 2
  247744. \fBPR\fP \fI\%#32133\fP: (\fI\%basepi\fP) Pass eauth user/groups through salt\-api to destination functions
  247745. @ \fI2016\-03\-25 16:49:46 UTC\fP
  247746. .INDENT 2.0
  247747. .IP \(bu 2
  247748. 245249d347 Merge pull request \fI\%#32133\fP from basepi/api_user_passthrough
  247749. .IP \(bu 2
  247750. 41ba309839 Change the kwarg names to be more specific
  247751. .IP \(bu 2
  247752. 40f7e596d8 Pass eauth user/groups through salt\-api to destination functions
  247753. .UNINDENT
  247754. .IP \(bu 2
  247755. \fBPR\fP \fI\%#32127\fP: (\fI\%rallytime\fP) Add runners to __salt__ docs
  247756. @ \fI2016\-03\-25 15:54:02 UTC\fP
  247757. .INDENT 2.0
  247758. .IP \(bu 2
  247759. a09aa18036 Merge pull request \fI\%#32127\fP from rallytime/dunder\-docs
  247760. .IP \(bu 2
  247761. 482690ef33 Add note to docs about __salt__ referencing runner modules
  247762. .IP \(bu 2
  247763. a11d2e413a Add runners to __salt__ docs
  247764. .UNINDENT
  247765. .IP \(bu 2
  247766. \fBISSUE\fP \fI\%#30183\fP: (\fI\%jakehilton\fP) Minion startup extremely delayed when first master in failover multi master setup is down (refs: \fI\%#31364\fP, \fI\%#31382\fP, \fI\%#32143\fP)
  247767. .IP \(bu 2
  247768. \fBPR\fP \fI\%#32143\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover.
  247769. @ \fI2016\-03\-25 15:23:09 UTC\fP
  247770. .INDENT 2.0
  247771. .IP \(bu 2
  247772. \fBPR\fP \fI\%#31382\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover (refs: \fI\%#32143\fP)
  247773. .IP \(bu 2
  247774. cc224b877a Merge pull request \fI\%#32143\fP from DSRCompany/issues/30183_failover_fix
  247775. .IP \(bu 2
  247776. 93d34a2573 Set auth retry count to 0 if multimaster mode is failover.
  247777. .UNINDENT
  247778. .IP \(bu 2
  247779. \fBPR\fP \fI\%#32134\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247780. @ \fI2016\-03\-25 15:22:08 UTC\fP
  247781. .INDENT 2.0
  247782. .IP \(bu 2
  247783. 0679a61871 Merge pull request \fI\%#32134\fP from rallytime/merge\-2015.8
  247784. .IP \(bu 2
  247785. 6886681410 Fix test failures
  247786. .IP \(bu 2
  247787. 7554d0f42d Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247788. .INDENT 2.0
  247789. .IP \(bu 2
  247790. bdd7ea89d5 Merge pull request \fI\%#32129\fP from terminalmage/issue32044
  247791. .INDENT 2.0
  247792. .IP \(bu 2
  247793. 34ca1ea12e Change type check errors to debug loglevel
  247794. .IP \(bu 2
  247795. 5462081488 Support multiple valid option types when performing type checks
  247796. .UNINDENT
  247797. .IP \(bu 2
  247798. c42014eb54 Merge pull request \fI\%#32056\fP from bstevenson/fix\-list_absent
  247799. .INDENT 2.0
  247800. .IP \(bu 2
  247801. 1500aae027 set deleted value to list
  247802. .IP \(bu 2
  247803. 1dc8f5f289 unit test update
  247804. .IP \(bu 2
  247805. 39adf86fec Fixed negation logic
  247806. .IP \(bu 2
  247807. be9388173b Removed has_key in lieu of in
  247808. .IP \(bu 2
  247809. e48593ed81 Comments and Changes output fixes
  247810. .IP \(bu 2
  247811. b98f5517de Updated to conform to proper ret values
  247812. .IP \(bu 2
  247813. d18b4be80b remove whitespace end of line 186:q
  247814. .IP \(bu 2
  247815. d2b89c85ad fix formating
  247816. .IP \(bu 2
  247817. 103cee9e29 cleaned up formating
  247818. .IP \(bu 2
  247819. 7a4d7f0bff added whitespace
  247820. .IP \(bu 2
  247821. 8ea5b545b0 Loop through list values in list_absent
  247822. .UNINDENT
  247823. .IP \(bu 2
  247824. 848ce5647f Merge pull request \fI\%#32096\fP from rallytime/bp\-32065
  247825. .INDENT 2.0
  247826. .IP \(bu 2
  247827. 36a9d6a374 Fix an issue with the minion targeting example
  247828. .UNINDENT
  247829. .IP \(bu 2
  247830. 9b332d48b9 Merge pull request \fI\%#32104\fP from jacobhammons/dot10
  247831. .INDENT 2.0
  247832. .IP \(bu 2
  247833. b9fc882a1e One additional known issue for 2015.5.10 release notes
  247834. .UNINDENT
  247835. .IP \(bu 2
  247836. ff51d548e1 Merge pull request \fI\%#32100\fP from jacobhammons/dot10
  247837. .INDENT 2.0
  247838. .IP \(bu 2
  247839. 544a1661ce 2015.5.10 release docs
  247840. .UNINDENT
  247841. .IP \(bu 2
  247842. 72a20f9799 Merge pull request \fI\%#32038\fP from terminalmage/issue32037
  247843. .INDENT 2.0
  247844. .IP \(bu 2
  247845. 8b2d983324 Add reference to state tutorial to state.apply docstring
  247846. .IP \(bu 2
  247847. 9b4fe8443e Move highstate usage details to top of state.apply docstring
  247848. .IP \(bu 2
  247849. 74ee8c54bc Clarify prior role of state.highstate in states tutorial
  247850. .IP \(bu 2
  247851. 1b97e4a3df Improve state module docs, replace references to state.highstate/state.sls with state.apply
  247852. .UNINDENT
  247853. .UNINDENT
  247854. .UNINDENT
  247855. .IP \(bu 2
  247856. \fBISSUE\fP \fI\%#26129\fP: (\fI\%GreatSnoopy\fP) salt yumpkg implementation painfully slow in some circumstances (refs: \fI\%#32091\fP)
  247857. .IP \(bu 2
  247858. \fBPR\fP \fI\%#32091\fP: (\fI\%clarkperkins\fP) Fixed the regression in 410da78
  247859. @ \fI2016\-03\-25 14:53:08 UTC\fP
  247860. .INDENT 2.0
  247861. .IP \(bu 2
  247862. ad924226ca Merge pull request \fI\%#32091\fP from clarkperkins/bugfix/yumpkg\-repoquery
  247863. .IP \(bu 2
  247864. d2119ea608 Added comment so this issue doesn\(aqt regress again
  247865. .IP \(bu 2
  247866. 1455fab9e3 Fixed the regression in 410da78
  247867. .UNINDENT
  247868. .IP \(bu 2
  247869. \fBISSUE\fP \fI\%#32044\fP: (\fI\%ScoreUnder\fP) Multiple masters throwing warnings? "Key master with value [...] has an invalid type of list, a str is required for this value" (refs: \fI\%#32129\fP)
  247870. .IP \(bu 2
  247871. \fBPR\fP \fI\%#32135\fP: (\fI\%rallytime\fP) [2015.8] Support multiple valid option types when performing type checks
  247872. @ \fI2016\-03\-24 22:42:28 UTC\fP
  247873. .INDENT 2.0
  247874. .IP \(bu 2
  247875. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32135\fP, \fI\%#32284\fP)
  247876. .IP \(bu 2
  247877. b84908d51f Merge pull request \fI\%#32135\fP from rallytime/32129\-to\-2915.8
  247878. .IP \(bu 2
  247879. 7d43bdd721 Change type check errors to debug loglevel
  247880. .IP \(bu 2
  247881. ed5abf4381 Support multiple valid option types when performing type checks
  247882. .UNINDENT
  247883. .IP \(bu 2
  247884. \fBPR\fP \fI\%#31760\fP: (\fI\%sakateka\fP) SMinion need wait future from eval_master
  247885. @ \fI2016\-03\-24 22:08:56 UTC\fP
  247886. .INDENT 2.0
  247887. .IP \(bu 2
  247888. b23a08f3f4 Merge pull request \fI\%#31760\fP from sakateka/fix_master_switch
  247889. .IP \(bu 2
  247890. 3d7874029a Run self.eval_master in self.io_loop.run_sync
  247891. .IP \(bu 2
  247892. 3b4425652b SMinion need wait future from eval_master
  247893. .UNINDENT
  247894. .IP \(bu 2
  247895. \fBPR\fP \fI\%#32106\fP: (\fI\%jfindlay\fP) update suse master service patch
  247896. @ \fI2016\-03\-24 21:34:01 UTC\fP
  247897. .INDENT 2.0
  247898. .IP \(bu 2
  247899. 5efe37ddc8 Merge pull request \fI\%#32106\fP from jfindlay/suse_patch
  247900. .IP \(bu 2
  247901. 8de84b4251 update suse master service patch
  247902. .UNINDENT
  247903. .IP \(bu 2
  247904. \fBPR\fP \fI\%#32130\fP: (\fI\%jacobhammons\fP) Added known issues 32004 and 32044 to 2015.8.8 release notes
  247905. @ \fI2016\-03\-24 19:59:41 UTC\fP
  247906. .INDENT 2.0
  247907. .IP \(bu 2
  247908. 939c1b17d5 Merge pull request \fI\%#32130\fP from jacobhammons/dot8
  247909. .IP \(bu 2
  247910. 21eee08842 Added known issues 32004 and 32044 to 2015.8.8 release notes
  247911. .UNINDENT
  247912. .IP \(bu 2
  247913. \fBPR\fP \fI\%#32105\fP: (\fI\%clarkperkins\fP) Fixed invalid deploy_scripts_search_path
  247914. @ \fI2016\-03\-24 17:36:27 UTC\fP
  247915. .INDENT 2.0
  247916. .IP \(bu 2
  247917. 2d8abf4717 Merge pull request \fI\%#32105\fP from clarkperkins/bugfix/invalid\-deploy\-script\-path
  247918. .IP \(bu 2
  247919. 5a9f4e947e Fixed invalid deploy_scripts_search_path
  247920. .UNINDENT
  247921. .IP \(bu 2
  247922. \fBISSUE\fP \fI\%#32114\fP: (\fI\%tomlaredo\fP) Wrong validation type for file_ignore_glob key (refs: \fI\%#32117\fP)
  247923. .IP \(bu 2
  247924. \fBPR\fP \fI\%#32117\fP: (\fI\%tomlaredo\fP) Fixed validation type for file_ignore_glob
  247925. @ \fI2016\-03\-24 17:28:22 UTC\fP
  247926. .INDENT 2.0
  247927. .IP \(bu 2
  247928. fe4112d7f9 Merge pull request \fI\%#32117\fP from rodacom/fix_32114
  247929. .IP \(bu 2
  247930. c6f83ba00b Fixed validation type for file_ignore_glob Fixes \fI\%#32114\fP
  247931. .UNINDENT
  247932. .IP \(bu 2
  247933. \fBPR\fP \fI\%#32113\fP: (\fI\%sakateka\fP) Fix log message for AsyncAuth initialization
  247934. @ \fI2016\-03\-24 17:27:04 UTC\fP
  247935. .INDENT 2.0
  247936. .IP \(bu 2
  247937. 93d86d249c Merge pull request \fI\%#32113\fP from sakateka/correct_log_message
  247938. .IP \(bu 2
  247939. 71148d77ab Fix log message for AsyncAuth initialization
  247940. .UNINDENT
  247941. .IP \(bu 2
  247942. \fBISSUE\fP \fI\%#32033\fP: (\fI\%timcharper\fP) SaltStack \fImodules.dockerng\fP \fI_compare\fP does not handle docker implicit Domainname properly (issue when using network_mode: host) (refs: \fI\%#32116\fP, \fI\%#32432\fP)
  247943. .IP \(bu 2
  247944. \fBPR\fP \fI\%#32116\fP: (\fI\%ticosax\fP) Obtain default value of \fImemory_swap\fP from the container.
  247945. @ \fI2016\-03\-24 15:56:54 UTC\fP
  247946. .INDENT 2.0
  247947. .IP \(bu 2
  247948. 294177f428 Merge pull request \fI\%#32116\fP from ticosax/memory_swap\-default\-from\-container
  247949. .IP \(bu 2
  247950. fe439db4d3 Obtain default value of \fImemory_swap\fP from the container.
  247951. .UNINDENT
  247952. .IP \(bu 2
  247953. \fBPR\fP \fI\%#32098\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32083\fP to 2015.8
  247954. @ \fI2016\-03\-23 21:49:01 UTC\fP
  247955. .INDENT 2.0
  247956. .IP \(bu 2
  247957. \fBPR\fP \fI\%#32083\fP: (\fI\%guettli\fP) "Fire Event Notifications" moved down (refs: \fI\%#32098\fP)
  247958. .IP \(bu 2
  247959. d5bb8f6372 Merge pull request \fI\%#32098\fP from rallytime/bp\-32083
  247960. .IP \(bu 2
  247961. 4a3a6629ce "Fire Event Notifications" moved down
  247962. .UNINDENT
  247963. .IP \(bu 2
  247964. \fBPR\fP \fI\%#32099\fP: (\fI\%jacobhammons\fP) 2015.8.8 release docs
  247965. @ \fI2016\-03\-23 20:02:40 UTC\fP
  247966. .INDENT 2.0
  247967. .IP \(bu 2
  247968. e45107ce96 Merge pull request \fI\%#32099\fP from jacobhammons/dot8
  247969. .IP \(bu 2
  247970. 8ec5d989ad 2015.8.8 release docs
  247971. .UNINDENT
  247972. .IP \(bu 2
  247973. \fBPR\fP \fI\%#32088\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  247974. @ \fI2016\-03\-23 17:52:37 UTC\fP
  247975. .INDENT 2.0
  247976. .IP \(bu 2
  247977. 9e11f3aac5 Merge pull request \fI\%#32088\fP from rallytime/merge\-2015.8
  247978. .IP \(bu 2
  247979. 59c3b7e82e Merge branch \(aq2015.5\(aq into \(aq2015.8\(aq
  247980. .IP \(bu 2
  247981. 908a7bf5cd Merge pull request \fI\%#32051\fP from terminalmage/fix\-state\-apply\-output
  247982. .INDENT 2.0
  247983. .IP \(bu 2
  247984. 7d7cb45565 Fix outputter for state.apply
  247985. .UNINDENT
  247986. .IP \(bu 2
  247987. 0e66f678d4 Merge pull request \fI\%#32002\fP from abednarik/pkg_manjaron_issue31788
  247988. .INDENT 2.0
  247989. .IP \(bu 2
  247990. 1b052d0a66 Added Manajro Linux to virtual. List extended with ManajaroLinux in order su load pacman module.
  247991. .UNINDENT
  247992. .IP \(bu 2
  247993. ba5bf62c1a Merge pull request \fI\%#31957\fP from rallytime/merge\-2015.5
  247994. .INDENT 2.0
  247995. .IP \(bu 2
  247996. 1b6ec5d445 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  247997. .INDENT 2.0
  247998. .IP \(bu 2
  247999. ba73deee46 Merge pull request \fI\%#31929\fP from twangboy/fix_build_script
  248000. .IP \(bu 2
  248001. 2c5599d2bc Backport build script from 2015.8
  248002. .IP \(bu 2
  248003. ce74991dd0 Fix nsi script to work with new build process
  248004. .UNINDENT
  248005. .UNINDENT
  248006. .IP \(bu 2
  248007. a52e3ad7a1 Merge pull request \fI\%#31972\fP from terminalmage/zh\-584
  248008. .INDENT 2.0
  248009. .IP \(bu 2
  248010. 1e5639e495 Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  248011. .UNINDENT
  248012. .UNINDENT
  248013. .IP \(bu 2
  248014. \fBPR\fP \fI\%#32074\fP: (\fI\%Xiami2012\fP) Fix code for proto args in modules.iptables
  248015. @ \fI2016\-03\-23 16:37:58 UTC\fP
  248016. .INDENT 2.0
  248017. .IP \(bu 2
  248018. bc9a899bc8 Merge pull request \fI\%#32074\fP from Xiami2012/fix_iptables
  248019. .IP \(bu 2
  248020. aae3af7e49 Fix code for proto args in modules.iptables
  248021. .UNINDENT
  248022. .IP \(bu 2
  248023. \fBPR\fP \fI\%#32053\fP: (\fI\%basepi\fP) [2015.8] Fix rabbitmq_user.present tag handling
  248024. @ \fI2016\-03\-22 20:33:51 UTC\fP
  248025. .INDENT 2.0
  248026. .IP \(bu 2
  248027. 3e08dd0a93 Merge pull request \fI\%#32053\fP from basepi/fix_rabbitmq
  248028. .IP \(bu 2
  248029. 95c08f55e9 Tear out useless unit test
  248030. .IP \(bu 2
  248031. bed048e1e7 Remove leftover arg (lint)
  248032. .IP \(bu 2
  248033. 08868cb32a Fix tag handling code for rabbitmq_user.present
  248034. .IP \(bu 2
  248035. 3b6d25b4e9 Remove leading whitespace on tags
  248036. .UNINDENT
  248037. .IP \(bu 2
  248038. \fBISSUE\fP \fI\%#32004\fP: (\fI\%sjorge\fP) win_dacl module stacktrace: NameError: name \(aqntsecuritycon\(aq is not defined (refs: \fI\%#32023\fP)
  248039. .IP \(bu 2
  248040. \fBPR\fP \fI\%#32023\fP: (\fI\%sbreidba\fP) Move constant declaration into member variable to avoid issues when m…
  248041. @ \fI2016\-03\-21 20:18:23 UTC\fP
  248042. .INDENT 2.0
  248043. .IP \(bu 2
  248044. 553ecaca25 Merge pull request \fI\%#32023\fP from sbreidba/bugfix_32004
  248045. .IP \(bu 2
  248046. 711a0a9844 Move constant declaration into member variable to avoid issues when modules can\(aqt be loaded.
  248047. .UNINDENT
  248048. .IP \(bu 2
  248049. \fBPR\fP \fI\%#32026\fP: (\fI\%techhat\fP) Don\(aqt require the decode_out file to already exist
  248050. @ \fI2016\-03\-21 20:17:05 UTC\fP
  248051. .INDENT 2.0
  248052. .IP \(bu 2
  248053. 65c634d197 Merge pull request \fI\%#32026\fP from techhat/decodeout
  248054. .IP \(bu 2
  248055. f27da41b71 Don\(aqt require the decode_out file to already exist
  248056. .UNINDENT
  248057. .IP \(bu 2
  248058. \fBPR\fP \fI\%#32019\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32012\fP to 2015.8
  248059. @ \fI2016\-03\-21 15:54:31 UTC\fP
  248060. .INDENT 2.0
  248061. .IP \(bu 2
  248062. \fBPR\fP \fI\%#32012\fP: (\fI\%jfray\fP) There were two identical blocks concerning Windows Deploy Timeouts. This (refs: \fI\%#32019\fP)
  248063. .IP \(bu 2
  248064. 1d4246bfd7 Merge pull request \fI\%#32019\fP from rallytime/bp\-32012
  248065. .IP \(bu 2
  248066. 26eee1505f There were two identical blocks concerning Windows Deploy Timeouts. This pull request removes the extra block of text.
  248067. .UNINDENT
  248068. .IP \(bu 2
  248069. \fBISSUE\fP \fI\%#32013\fP: (\fI\%timcharper\fP) SaltStack dockerng.running state ports configuration responding to Docker\(aqs injection of UDP params (refs: \fI\%#32015\fP)
  248070. .IP \(bu 2
  248071. \fBPR\fP \fI\%#32015\fP: (\fI\%ticosax\fP) [dockerng] Fix ports exposition when protocol is passed.
  248072. @ \fI2016\-03\-21 15:22:19 UTC\fP
  248073. .INDENT 2.0
  248074. .IP \(bu 2
  248075. d117db3efb Merge pull request \fI\%#32015\fP from ticosax/fix\-port\-comparison\-udp
  248076. .IP \(bu 2
  248077. e511864a55 Fix ports exposition when protocol is passed.
  248078. .UNINDENT
  248079. .IP \(bu 2
  248080. \fBPR\fP \fI\%#31999\fP: (\fI\%jacobhammons\fP) Fixes a doc build exception caused by missing mocks for modules.win_dacl
  248081. @ \fI2016\-03\-19 15:49:40 UTC\fP
  248082. .INDENT 2.0
  248083. .IP \(bu 2
  248084. c72ab6a073 Merge pull request \fI\%#31999\fP from jacobhammons/mock\-modules2
  248085. .IP \(bu 2
  248086. 31bb573abc Fixes a doc build exception caused by missing mocks for modules.win_dacl
  248087. .UNINDENT
  248088. .IP \(bu 2
  248089. \fBPR\fP \fI\%#31992\fP: (\fI\%notpeter\fP) salt\-cloud: add D2 and G2 EC2 instance types
  248090. @ \fI2016\-03\-18 21:37:21 UTC\fP
  248091. .INDENT 2.0
  248092. .IP \(bu 2
  248093. 398ab909f0 Merge pull request \fI\%#31992\fP from notpeter/2015.8
  248094. .IP \(bu 2
  248095. e3854c8569 D2 and G2 EC2 instance types.
  248096. .UNINDENT
  248097. .IP \(bu 2
  248098. \fBPR\fP \fI\%#31981\fP: (\fI\%lloydoliver\fP) include rotational disks in grains under linux
  248099. @ \fI2016\-03\-18 15:54:00 UTC\fP
  248100. .INDENT 2.0
  248101. .IP \(bu 2
  248102. ad8ada7eef Merge pull request \fI\%#31981\fP from lloydoliver/linux\-disk\-grain\-fix
  248103. .IP \(bu 2
  248104. 9c44604438 include rotational disks in grains under linux
  248105. .UNINDENT
  248106. .IP \(bu 2
  248107. \fBPR\fP \fI\%#31970\fP: (\fI\%twangboy\fP) Add apply_template_on_contents for windows
  248108. @ \fI2016\-03\-18 15:37:29 UTC\fP
  248109. .INDENT 2.0
  248110. .IP \(bu 2
  248111. 9be508e8f0 Merge pull request \fI\%#31970\fP from twangboy/fix_win_file
  248112. .IP \(bu 2
  248113. dfeae191c1 Add apply_template_on_contents for windows
  248114. .UNINDENT
  248115. .IP \(bu 2
  248116. \fBPR\fP \fI\%#31960\fP: (\fI\%aletourneau\fP) fixed ec2 get_console_output
  248117. @ \fI2016\-03\-18 15:13:48 UTC\fP
  248118. .INDENT 2.0
  248119. .IP \(bu 2
  248120. 810c6dbcbe Merge pull request \fI\%#31960\fP from aletourneau/2015.8_ec2\-getconsoleoutput
  248121. .IP \(bu 2
  248122. 8305978879 fixed ec2 get_console_output
  248123. .UNINDENT
  248124. .IP \(bu 2
  248125. \fBPR\fP \fI\%#31958\fP: (\fI\%rallytime\fP) [2015.8] Merge forward from 2015.5 to 2015.8
  248126. @ \fI2016\-03\-18 15:12:44 UTC\fP
  248127. .INDENT 2.0
  248128. .IP \(bu 2
  248129. 1c7dc364ad Merge pull request \fI\%#31958\fP from rallytime/merge\-2015.8
  248130. .UNINDENT
  248131. .IP \(bu 2
  248132. \fBPR\fP \fI\%#31935\fP: (\fI\%twangboy\fP) Back port nullsoft build script from 2015.8
  248133. @ \fI2016\-03\-17 14:54:50 UTC\fP
  248134. .INDENT 2.0
  248135. .IP \(bu 2
  248136. 2d1f2a0c2e Merge pull request \fI\%#31935\fP from twangboy/fix_build_script2
  248137. .IP \(bu 2
  248138. 4af8c9dbfc Back port nullsoft build script from 2015.8
  248139. .UNINDENT
  248140. .IP \(bu 2
  248141. \fBPR\fP \fI\%#31912\fP: (\fI\%jfindlay\fP) log.mixins: remove extemporaneous .record
  248142. @ \fI2016\-03\-16 01:56:46 UTC\fP
  248143. .INDENT 2.0
  248144. .IP \(bu 2
  248145. 43240dc566 Merge pull request \fI\%#31912\fP from jfindlay/log_mixin
  248146. .IP \(bu 2
  248147. 9f9c694654 log.mixins: remove extemporaneous .record
  248148. .UNINDENT
  248149. .UNINDENT
  248150. .SS Salt 2015.5.0 Release Notes \- Codename Lithium
  248151. .sp
  248152. The 2015.5.0 feature release of Salt is focused on hardening Salt and mostly
  248153. on improving existing systems. A few major additions are present, primarily
  248154. the new Beacon system. Most enhancements have been focused around improving
  248155. existing features and interfaces.
  248156. .sp
  248157. As usual the release notes are not exhaustive and primarily include the most
  248158. notable additions and improvements. Hundreds of bugs have been fixed and many
  248159. modules have been substantially updated and added.
  248160. .sp
  248161. \fBWARNING:\fP
  248162. .INDENT 0.0
  248163. .INDENT 3.5
  248164. In order to fix potential shell injection vulnerabilities in salt modules,
  248165. a change has been made to the various \fBcmd\fP module functions. These
  248166. functions now default to \fBpython_shell=False\fP, which means that the
  248167. commands will not be sent to an actual shell.
  248168. .sp
  248169. The largest side effect of this change is that "shellisms", such as pipes,
  248170. will not work by default. The modules shipped with salt have been audited
  248171. to fix any issues that might have arisen from this change. Additionally,
  248172. the \fBcmd\fP state module has been unaffected, and use of \fBcmd.run\fP in
  248173. jinja is also unaffected. \fBcmd.run\fP calls on the CLI will also allow
  248174. shellisms.
  248175. .sp
  248176. However, custom execution modules which use shellisms in \fBcmd\fP calls
  248177. will break, unless you pass \fBpython_shell=True\fP to these calls.
  248178. .sp
  248179. As a temporary workaround, you can set \fBcmd_safe: False\fP in your minion
  248180. and master configs. This will revert the default, but is also less secure,
  248181. as it will allow shell injection vulnerabilities to be written in custom
  248182. code. We recommend you only set this setting for as long as it takes to
  248183. resolve these issues in your custom code, then remove the override.
  248184. .UNINDENT
  248185. .UNINDENT
  248186. .sp
  248187. \fBNOTE:\fP
  248188. .INDENT 0.0
  248189. .INDENT 3.5
  248190. Starting in this version of salt, \fBpillar_opts\fP defaults to False instead
  248191. of True. This means that master opts will not be present in minion pillar,
  248192. and as a result, \fBconfig.get\fP calls will not include master opts.
  248193. .sp
  248194. We recommend pillar is used for configuration options which need to make it
  248195. to the minion.
  248196. .UNINDENT
  248197. .UNINDENT
  248198. .SS Beacons
  248199. .sp
  248200. The beacon system allows the minion to hook into system processes and
  248201. continually translate external events into the salt event bus. The primary
  248202. example of this is the \fBinotify\fP beacon. This beacon uses
  248203. inotify to watch configured files or directories on the minion for changes,
  248204. creation, deletion etc.
  248205. .sp
  248206. This allows for the changes to be sent up to the master where the reactor can
  248207. respond to changes.
  248208. .SS Sudo Minion Settings
  248209. .sp
  248210. It is now possible to run the minion as a non\-root user and for the minion to
  248211. execute commands via sudo. Simply add \fIsudo_user: root\fP to the minion config,
  248212. run the minion as a non\-root user and grant that user sudo rights to execute
  248213. salt\-call.
  248214. .SS Lazy Loader
  248215. .sp
  248216. The Lazy Loader is a significant overhaul of Salt\(aqs module loader system. The
  248217. Lazy Loader will lazily load modules on access instead of all on start. In
  248218. addition to a major performance improvement, this "sandboxes" modules so a
  248219. bad/broken import of a single module will only affect jobs that require
  248220. accessing the broken module. (:issue: \fI20274\fP)
  248221. .SS Enhanced Active Directory Support
  248222. .sp
  248223. The eauth system for LDAP has been extended to support Microsoft Active
  248224. Directory out of the box. This includes Active Directory and LDAP group support
  248225. for eauth.
  248226. .SS Salt LXC Enhancements
  248227. .sp
  248228. The LXC systems have been overhauled to be more consistent and to fix many
  248229. bugs.
  248230. .sp
  248231. This overhaul makes using LXC with Salt much easier and substantially improves
  248232. the underlying capabilities of Salt\(aqs LXC integration.
  248233. .SS Salt SSH
  248234. .INDENT 0.0
  248235. .IP \(bu 2
  248236. Additional configuration options and command line flags have been added to
  248237. configure the scan roster on the fly
  248238. .IP \(bu 2
  248239. Added support for \fBstate.single\fP in \fBsalt\-ssh\fP
  248240. .IP \(bu 2
  248241. Added support for \fBpublish.publish\fP, \fBpublish.full_data\fP, and
  248242. \fBpublish.runner\fP in \fBsalt\-ssh\fP
  248243. .IP \(bu 2
  248244. Added support for \fBmine.get\fP in \fBsalt\-ssh\fP
  248245. .UNINDENT
  248246. .SS New Windows Installer
  248247. .sp
  248248. The new Windows installer changes how Salt is installed on Windows.
  248249. The old installer used bbfreeze to create an isolated python environment to
  248250. execute in. This made adding modules and python libraries difficult. The new
  248251. installer sets up a more flexible python environment making it easy to manage
  248252. the python install and add python modules.
  248253. .sp
  248254. Instead of frozen packages, a full python implementation resides in the bin
  248255. directory (\fBC:\esalt\ebin\fP). By executing pip or easy_install from within the
  248256. Scripts directory (\fBC:\esalt\ebin\eScripts\fP) you can install any additional
  248257. python modules you may need for your custom environment.
  248258. .sp
  248259. The .exe\(aqs that once resided at the root of the salt directory (\fBC:\esalt\fP)
  248260. have been replaced by .bat files and should function the same way as the .exe\(aqs
  248261. in previous versions.
  248262. .sp
  248263. The new Windows Installer will not replace the minion config file and key if
  248264. they already exist on the target system. Only the salt program files will be
  248265. replaced. \fBC:\esalt\econf\fP and \fBC:\esalt\evar\fP will remain unchanged.
  248266. .SS Removed Requests Dependency
  248267. .sp
  248268. The hard dependency on the requests library has been removed. Requests is still
  248269. required by a number of cloud modules but is no longer required for normal Salt
  248270. operations.
  248271. .sp
  248272. This removal fixes issues that were introduced with requests and salt\-ssh, as
  248273. well as issues users experienced from the many different packaging methods used
  248274. by requests package maintainers.
  248275. .SS Python 3 Updates
  248276. .sp
  248277. While Salt does not YET run on Python 3 it has been updated to INSTALL on
  248278. Python 3, taking us one step closer. What remains is getting the test suite to
  248279. the point where it can run on Python 3 so that we can verify compatibility.
  248280. .SS RAET Additions
  248281. .sp
  248282. The RAET support continues to improve. RAET now supports multi\-master and many
  248283. bugs and performance issues have been fixed. RAET is much closer to being a
  248284. first class citizen.
  248285. .SS Modified File Detection
  248286. .sp
  248287. A number of functions have been added to the RPM\-based package managers to
  248288. detect and diff files that are modified from the original package installs.
  248289. This can be found in the new pkg.modified functions.
  248290. .SS Reactor Update
  248291. .sp
  248292. Fix an infinite recursion problem for runner/wheel reactor jobs by passing a
  248293. "user" (Reactor) to all jobs that the reactor starts. The reactor skips all
  248294. events created by that username \-\- thereby only reacting to events not caused
  248295. by itself. Because of this, runner and wheel executions from the runner will
  248296. have user "Reactor" in the job cache.
  248297. .SS Misc Fixes/Additions
  248298. .INDENT 0.0
  248299. .IP \(bu 2
  248300. SDB driver for etcd. (:issue: \fI22043\fP)
  248301. .IP \(bu 2
  248302. Add \fBonly_upgrade\fP argument to apt\-based \fBpkg.install\fP to only install a
  248303. package version if the package is already installed. (Great for security
  248304. updates!)
  248305. .IP \(bu 2
  248306. Joyent now requires a \fBkeyname\fP to be specified in the provider
  248307. configuration. This change was necessitated upstream by the 7.0+ API.
  248308. .IP \(bu 2
  248309. Add \fBargs\fP argument to \fBcmd.script_retcode\fP to match \fBcmd.script\fP in
  248310. the \fBcmd module\fP\&. (:issue: \fI21122\fP)
  248311. .IP \(bu 2
  248312. Fixed bug where TCP keepalive was not being sent on the defined interval on
  248313. the return port (4506) from minion to master. (:issue: \fI21465\fP)
  248314. .IP \(bu 2
  248315. LocalClient may now optionally raise SaltClientError exceptions. If using
  248316. this class directly, checking for and handling this exception is recommended.
  248317. (:issue: \fI21501\fP)
  248318. .IP \(bu 2
  248319. The SAuth object is now a singleton, meaning authentication state is global
  248320. (per master) on each minion. This reduces sign\-ins of minions from 3\->1 per
  248321. startup.
  248322. .IP \(bu 2
  248323. Nested outputter has been optimized, it is now much faster.
  248324. .IP \(bu 2
  248325. Extensive fileserver backend updates.
  248326. .UNINDENT
  248327. .SS Deprecations
  248328. .INDENT 0.0
  248329. .IP \(bu 2
  248330. Removed \fBparameter\fP keyword argument from \fBeselect.exec_action\fP execution
  248331. module.
  248332. .IP \(bu 2
  248333. Removed \fBrunas\fP parameter from the following \fBpip\(ga\fP execution module
  248334. functions: \fBinstall\fP, \fBuninstall\fP, \fBfreeze\fP, \fBlist_\fP,
  248335. \fBlist_upgrades\fP, \fBupgrade_available\fP, \fBupgrade\fP\&. Please migrate to
  248336. \fBuser\fP\&.
  248337. .IP \(bu 2
  248338. Removed \fBrunas\fP parameter from the following \fBpip\fP state module
  248339. functions: \fBinstalled\fP, \fBremoved\fP, \fBuptodate\fP . Please migrate to
  248340. \fBuser\fP\&.
  248341. .IP \(bu 2
  248342. Removed \fBquiet\fP option from all functions in \fBcmdmod\fP execution module.
  248343. Please use \fBoutput_loglevel=quiet\fP instead.
  248344. .IP \(bu 2
  248345. Removed \fBparameter\fP argument from \fBeselect.set_\fP state. Please migrate to
  248346. \fBmodule_parameter\fP or \fBaction_parameter\fP\&.
  248347. .IP \(bu 2
  248348. The \fBsalt_events\fP table schema has changed to include an additional field
  248349. called \fBmaster_id\fP to distinguish between events flowing into a database
  248350. from multiple masters. If \fBevent_return\fP is enabled in the master config,
  248351. the database schema must first be updated to add the \fBmaster_id\fP field.
  248352. This alteration can be accomplished as follows:
  248353. .INDENT 2.0
  248354. .INDENT 3.5
  248355. \fBALTER TABLE salt_events ADD master_id VARCHAR(255) NOT NULL;\fP
  248356. .UNINDENT
  248357. .UNINDENT
  248358. .UNINDENT
  248359. .SS Known Issues
  248360. .INDENT 0.0
  248361. .IP \(bu 2
  248362. In multi\-master mode, a minion may become temporarily unresponsive if modules
  248363. or pillars are refreshed at the same time that one or more masters are down.
  248364. This can be worked around by setting \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to
  248365. shorter periods.
  248366. .UNINDENT
  248367. .SS Salt 2015.5.1 Release Notes
  248368. .INDENT 0.0
  248369. .TP
  248370. .B release
  248371. 2015\-05\-20
  248372. .UNINDENT
  248373. .sp
  248374. Version 2015.5.1 is a bugfix release for 2015.5.0\&.
  248375. .SS Statistics
  248376. .INDENT 0.0
  248377. .IP \(bu 2
  248378. Total Merges: \fB203\fP
  248379. .IP \(bu 2
  248380. Total Issue References: \fB30\fP
  248381. .IP \(bu 2
  248382. Total PR References: \fB177\fP
  248383. .IP \(bu 2
  248384. Contributors: \fB49\fP (\fI\%Arabus\fP, \fI\%Lothiraldan\fP, \fI\%Snergster\fP, \fI\%TaiSHiNet\fP, \fI\%The\-Loeki\fP, \fI\%UtahDave\fP, \fI\%aboe76\fP, \fI\%ahus1\fP, \fI\%basepi\fP, \fI\%bastiaanb\fP, \fI\%bradthurber\fP, \fI\%cachedout\fP, \fI\%cellscape\fP, \fI\%corywright\fP, \fI\%cro\fP, \fI\%dennisjac\fP, \fI\%dmyerscough\fP, \fI\%galet\fP, \fI\%garethgreenaway\fP, \fI\%gladiatr72\fP, \fI\%gtmanfred\fP, \fI\%iggy\fP, \fI\%ionutbalutoiu\fP, \fI\%jacobhammons\fP, \fI\%jayeshka\fP, \fI\%jfindlay\fP, \fI\%joejulian\fP, \fI\%jpic\fP, \fI\%justinta\fP, \fI\%kaidokert\fP, \fI\%kaithar\fP, \fI\%kiorky\fP, \fI\%lisa2lisa\fP, \fI\%msciciel\fP, \fI\%nleib\fP, \fI\%notpeter\fP, \fI\%optix2000\fP, \fI\%rahulhan\fP, \fI\%rallytime\fP, \fI\%rubic\fP, \fI\%ryan\-lane\fP, \fI\%s0undt3ch\fP, \fI\%slinu3d\fP, \fI\%steverweber\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%ticosax\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  248385. .UNINDENT
  248386. .SS Cloud Runner Changes
  248387. .sp
  248388. The \fBfun\fP argument to the \fBcloud.action\fP
  248389. runner has changed to \fBfunc\fP\&. Please update any calls to this runner.
  248390. .SS Changelog for v2015.5.0..v2015.5.1
  248391. .sp
  248392. \fIGenerated at: 2018\-05\-27 20:58:00 UTC\fP
  248393. .INDENT 0.0
  248394. .IP \(bu 2
  248395. \fBPR\fP \fI\%#23998\fP: (\fI\%rallytime\fP) Update release note for 2015.5.1
  248396. @ \fI2015\-05\-20 20:58:55 UTC\fP
  248397. .INDENT 2.0
  248398. .IP \(bu 2
  248399. 2422760ebd Merge pull request \fI\%#23998\fP from rallytime/release_notes
  248400. .IP \(bu 2
  248401. 113c6049f5 Update release note for 2015.5.1
  248402. .UNINDENT
  248403. .IP \(bu 2
  248404. \fBPR\fP \fI\%#23989\fP: (\fI\%rallytime\fP) Backport \fI\%#23980\fP to 2015.5
  248405. @ \fI2015\-05\-20 19:33:41 UTC\fP
  248406. .INDENT 2.0
  248407. .IP \(bu 2
  248408. \fBPR\fP \fI\%#23980\fP: (\fI\%iggy\fP) template: jinja2 \-> jinja (refs: \fI\%#23989\fP)
  248409. .IP \(bu 2
  248410. 117ecb1fe0 Merge pull request \fI\%#23989\fP from rallytime/bp\-23980
  248411. .IP \(bu 2
  248412. 8f8557c47d template: jinja2 \-> jinja
  248413. .UNINDENT
  248414. .IP \(bu 2
  248415. \fBPR\fP \fI\%#23988\fP: (\fI\%rallytime\fP) Backport \fI\%#23977\fP to 2015.5
  248416. @ \fI2015\-05\-20 19:13:36 UTC\fP
  248417. .INDENT 2.0
  248418. .IP \(bu 2
  248419. \fBPR\fP \fI\%#23977\fP: (\fI\%ionutbalutoiu\fP) Fixed glance image_create (refs: \fI\%#23988\fP)
  248420. .IP \(bu 2
  248421. d4f1ba02d7 Merge pull request \fI\%#23988\fP from rallytime/bp\-23977
  248422. .IP \(bu 2
  248423. 46fc7c6b69 Fixed glance image_create
  248424. .UNINDENT
  248425. .IP \(bu 2
  248426. \fBPR\fP \fI\%#23986\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248427. @ \fI2015\-05\-20 18:41:33 UTC\fP
  248428. .INDENT 2.0
  248429. .IP \(bu 2
  248430. 9566e7d412 Merge pull request \fI\%#23986\fP from basepi/merge\-forward\-2015.5
  248431. .IP \(bu 2
  248432. 0b78156592 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248433. .INDENT 2.0
  248434. .IP \(bu 2
  248435. 314e4db512 Merge pull request \fI\%#23965\fP from hvnsweeting/20147\-fix\-gitfs\-gitpython\-exception
  248436. .INDENT 2.0
  248437. .IP \(bu 2
  248438. 2576301631 handle all exception gitpython can raise
  248439. .UNINDENT
  248440. .UNINDENT
  248441. .UNINDENT
  248442. .IP \(bu 2
  248443. \fBPR\fP \fI\%#23985\fP: (\fI\%UtahDave\fP) Add 2014.7.5\-2 and 2015.5.0\-2 Windows installer download links
  248444. @ \fI2015\-05\-20 18:32:44 UTC\fP
  248445. .INDENT 2.0
  248446. .IP \(bu 2
  248447. 9d1130ef8e Merge pull request \fI\%#23985\fP from UtahDave/2015.5local
  248448. .IP \(bu 2
  248449. 10338d0c54 Add links to Windows 2015.5.0\-2 install downloads
  248450. .IP \(bu 2
  248451. b84f9756c5 updated Windows 2014.7.5\-2 installer download link
  248452. .UNINDENT
  248453. .IP \(bu 2
  248454. \fBPR\fP \fI\%#23983\fP: (\fI\%rallytime\fP) Versionadded tags for https_user and https_pass args new in 2015.5.0
  248455. @ \fI2015\-05\-20 18:05:27 UTC\fP
  248456. .INDENT 2.0
  248457. .IP \(bu 2
  248458. ca7729d023 Merge pull request \fI\%#23983\fP from rallytime/versionadded_git_options
  248459. .IP \(bu 2
  248460. 14eae22c91 Versionadded tags for https_user and https_pass args new in 2015.5.0
  248461. .UNINDENT
  248462. .IP \(bu 2
  248463. \fBPR\fP \fI\%#23970\fP: (\fI\%jayeshka\fP) adding system unit test case
  248464. @ \fI2015\-05\-20 17:12:57 UTC\fP
  248465. .INDENT 2.0
  248466. .IP \(bu 2
  248467. b06df57e03 Merge pull request \fI\%#23970\fP from jayeshka/system\-unit\-test
  248468. .IP \(bu 2
  248469. 89eb00815e adding system unit test case
  248470. .UNINDENT
  248471. .IP \(bu 2
  248472. \fBPR\fP \fI\%#23967\fP: (\fI\%jayeshka\fP) adding states/memcached unit test case
  248473. @ \fI2015\-05\-20 17:12:26 UTC\fP
  248474. .INDENT 2.0
  248475. .IP \(bu 2
  248476. 38d5f75756 Merge pull request \fI\%#23967\fP from jayeshka/memcached\-states\-unit\-test
  248477. .IP \(bu 2
  248478. 8ef9240e25 adding states/memcached unit test case
  248479. .UNINDENT
  248480. .IP \(bu 2
  248481. \fBPR\fP \fI\%#23966\fP: (\fI\%jayeshka\fP) adding states/modjk unit test case
  248482. @ \fI2015\-05\-20 17:11:48 UTC\fP
  248483. .INDENT 2.0
  248484. .IP \(bu 2
  248485. 868e807d8a Merge pull request \fI\%#23966\fP from jayeshka/modjk\-states\-unit\-test
  248486. .IP \(bu 2
  248487. 422a96497d adding states/modjk unit test case
  248488. .UNINDENT
  248489. .IP \(bu 2
  248490. \fBPR\fP \fI\%#23942\fP: (\fI\%jacobhammons\fP) Updates to sphinx saltstack2 doc theme
  248491. @ \fI2015\-05\-20 15:43:54 UTC\fP
  248492. .INDENT 2.0
  248493. .IP \(bu 2
  248494. 63164900bd Merge pull request \fI\%#23942\fP from jacobhammons/2015.5
  248495. .IP \(bu 2
  248496. 31023c8915 Updates to sphinx saltstack2 doc theme
  248497. .UNINDENT
  248498. .IP \(bu 2
  248499. \fBISSUE\fP \fI\%#23872\fP: (\fI\%joejulian\fP) create_ca_signed_cert can error if dereferenced dict is used for args (refs: \fI\%#23874\fP)
  248500. .IP \(bu 2
  248501. \fBPR\fP \fI\%#23874\fP: (\fI\%joejulian\fP) Validate keyword arguments to be valid
  248502. @ \fI2015\-05\-20 04:53:40 UTC\fP
  248503. .INDENT 2.0
  248504. .IP \(bu 2
  248505. 587957badc Merge pull request \fI\%#23874\fP from joejulian/2015.5_tls_validate_kwargs
  248506. .IP \(bu 2
  248507. 30102acd04 Fix py3 and ordering inconsistency problems.
  248508. .IP \(bu 2
  248509. 493f7ad5f0 Validate keyword arguments to be valid
  248510. .UNINDENT
  248511. .IP \(bu 2
  248512. \fBPR\fP \fI\%#23960\fP: (\fI\%rallytime\fP) Backport \fI\%#22114\fP to 2015.5
  248513. @ \fI2015\-05\-20 04:37:09 UTC\fP
  248514. .INDENT 2.0
  248515. .IP \(bu 2
  248516. \fBPR\fP \fI\%#22114\fP: (\fI\%dmyerscough\fP) Fixing KeyError when there are no additional pages (refs: \fI\%#23960\fP)
  248517. .IP \(bu 2
  248518. 00c5c22867 Merge pull request \fI\%#23960\fP from rallytime/bp\-22114
  248519. .IP \(bu 2
  248520. f3e1d63fce Catch KeyError
  248521. .IP \(bu 2
  248522. 306b1ea6b8 Fixing KeyError
  248523. .IP \(bu 2
  248524. 6b2cda2861 Fix PEP8 complaint
  248525. .IP \(bu 2
  248526. 239e50f30d Fixing KeyError when there are no additional pages
  248527. .UNINDENT
  248528. .IP \(bu 2
  248529. \fBPR\fP \fI\%#23961\fP: (\fI\%rallytime\fP) Backport \fI\%#23944\fP to 2015.5
  248530. @ \fI2015\-05\-20 04:35:41 UTC\fP
  248531. .INDENT 2.0
  248532. .IP \(bu 2
  248533. \fBPR\fP \fI\%#23944\fP: (\fI\%ryan\-lane\fP) Add missing loginclass argument to _changes call (refs: \fI\%#23961\fP)
  248534. .IP \(bu 2
  248535. 4648b46e05 Merge pull request \fI\%#23961\fP from rallytime/bp\-23944
  248536. .IP \(bu 2
  248537. 970d19a31e Add missing loginclass argument to _changes call
  248538. .UNINDENT
  248539. .IP \(bu 2
  248540. \fBPR\fP \fI\%#23948\fP: (\fI\%jfindlay\fP) augeas.change state now returns changes as a dict
  248541. @ \fI2015\-05\-20 04:00:10 UTC\fP
  248542. .INDENT 2.0
  248543. .IP \(bu 2
  248544. 0cb5cd3938 Merge pull request \fI\%#23948\fP from jfindlay/augeas_changes
  248545. .IP \(bu 2
  248546. f09b80a8b5 augeas.change state now returns changes as a dict
  248547. .UNINDENT
  248548. .IP \(bu 2
  248549. \fBPR\fP \fI\%#23957\fP: (\fI\%rallytime\fP) Backport \fI\%#23951\fP to 2015.5
  248550. @ \fI2015\-05\-20 03:04:24 UTC\fP
  248551. .INDENT 2.0
  248552. .IP \(bu 2
  248553. \fBPR\fP \fI\%#23951\fP: (\fI\%ryan\-lane\fP) Do not check perms in file.copy if preserve (refs: \fI\%#23957\fP)
  248554. .IP \(bu 2
  248555. 2d185f78f7 Merge pull request \fI\%#23957\fP from rallytime/bp\-23951
  248556. .IP \(bu 2
  248557. 996b431252 Update file.py
  248558. .IP \(bu 2
  248559. 85d461f748 Do not check perms in file.copy if preserve
  248560. .UNINDENT
  248561. .IP \(bu 2
  248562. \fBISSUE\fP \fI\%#23839\fP: (\fI\%gladiatr72\fP) wonky loader syndrome (refs: \fI\%#23906\fP)
  248563. .IP \(bu 2
  248564. \fBISSUE\fP \fI\%#23373\fP: (\fI\%tnypex\fP) reactor/orchestrate race condition on salt[\(aqpillar.get\(aq] (refs: \fI\%#23906\fP)
  248565. .IP \(bu 2
  248566. \fBPR\fP \fI\%#23956\fP: (\fI\%rallytime\fP) Backport \fI\%#23906\fP to 2015.5
  248567. @ \fI2015\-05\-20 03:04:14 UTC\fP
  248568. .INDENT 2.0
  248569. .IP \(bu 2
  248570. \fBPR\fP \fI\%#23906\fP: (\fI\%gladiatr72\fP) Added exception handler to trap the RuntimeError raised when (refs: \fI\%#23956\fP)
  248571. .IP \(bu 2
  248572. ebff1ff967 Merge pull request \fI\%#23956\fP from rallytime/bp\-23906
  248573. .IP \(bu 2
  248574. 9d87fd335c add proper marker for format argument
  248575. .IP \(bu 2
  248576. 197688ef0c Added exception handler to trap the RuntimeError raised when Depends.enforce_dependency() class method fires unsuccessfully. There appears to be no synchronization within the Depends decorator class wrt the class global dependency_dict which results in incomplete population of any loader instantiation occuring at the time of one of these exceptions.
  248577. .UNINDENT
  248578. .IP \(bu 2
  248579. \fBISSUE\fP \fI\%#19852\fP: (\fI\%TaiSHiNet\fP) DigitalOcean APIv2 can\(aqt delete machines when there is only 1 page (refs: \fI\%#23955\fP)
  248580. .IP \(bu 2
  248581. \fBISSUE\fP \fI\%#19304\fP: (\fI\%TaiSHiNet\fP) DigitalOcean API v2 cannot delete VMs on 2nd page (refs: \fI\%#19305\fP)
  248582. .IP \(bu 2
  248583. \fBPR\fP \fI\%#23955\fP: (\fI\%rallytime\fP) Backport \fI\%#19305\fP to 2015.5
  248584. @ \fI2015\-05\-20 03:03:55 UTC\fP
  248585. .INDENT 2.0
  248586. .IP \(bu 2
  248587. \fBPR\fP \fI\%#19305\fP: (\fI\%TaiSHiNet\fP) Fixes droplet listing past page 1 (refs: \fI\%#23955\fP)
  248588. .IP \(bu 2
  248589. da3f9197d3 Merge pull request \fI\%#23955\fP from rallytime/bp\-19305
  248590. .IP \(bu 2
  248591. bbf2429bce Fixes droplet listing past page 1
  248592. .UNINDENT
  248593. .IP \(bu 2
  248594. \fBPR\fP \fI\%#23940\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248595. @ \fI2015\-05\-19 22:37:58 UTC\fP
  248596. .INDENT 2.0
  248597. .IP \(bu 2
  248598. 02a78fce3d Merge pull request \fI\%#23940\fP from basepi/merge\-forward\-2015.5
  248599. .IP \(bu 2
  248600. 36f0065faf Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248601. .INDENT 2.0
  248602. .IP \(bu 2
  248603. 913391207a Merge pull request \fI\%#23939\fP from basepi/v2014.7.6release
  248604. .INDENT 2.0
  248605. .IP \(bu 2
  248606. 32b65dc2a9 Add extended changelog to 2014.7.6 release notes
  248607. .UNINDENT
  248608. .IP \(bu 2
  248609. 0031ca2631 Merge pull request \fI\%#23881\fP from garethgreenaway/23820_2014_7_schedule_list_issue
  248610. .INDENT 2.0
  248611. .IP \(bu 2
  248612. b207f2a433 Missing continue in the list function when deleting unused attributes.
  248613. .UNINDENT
  248614. .IP \(bu 2
  248615. 63bd21ecd2 Merge pull request \fI\%#23887\fP from basepi/salt\-ssh.pillar.get.22131
  248616. .INDENT 2.0
  248617. .IP \(bu 2
  248618. bc84502f46 Bring salt\-ssh pillar.get in line with mainline pillar.get
  248619. .UNINDENT
  248620. .UNINDENT
  248621. .UNINDENT
  248622. .IP \(bu 2
  248623. \fBPR\fP \fI\%#23932\fP: (\fI\%rallytime\fP) Backport \fI\%#23908\fP to 2015.5
  248624. @ \fI2015\-05\-19 21:41:28 UTC\fP
  248625. .INDENT 2.0
  248626. .IP \(bu 2
  248627. \fBPR\fP \fI\%#23908\fP: (\fI\%nleib\fP) fix connection function to mongo (refs: \fI\%#23932\fP)
  248628. .IP \(bu 2
  248629. ee4c01bf30 Merge pull request \fI\%#23932\fP from rallytime/bp\-23908
  248630. .IP \(bu 2
  248631. 5d520c9377 fix connection function to mongo
  248632. .UNINDENT
  248633. .IP \(bu 2
  248634. \fBPR\fP \fI\%#23931\fP: (\fI\%rallytime\fP) Backport \fI\%#23880\fP to 2015.5
  248635. @ \fI2015\-05\-19 21:41:18 UTC\fP
  248636. .INDENT 2.0
  248637. .IP \(bu 2
  248638. \fBPR\fP \fI\%#23880\fP: (\fI\%bastiaanb\fP) if setting client_config_dir to \(aq~\(aq, expand path (refs: \fI\%#23931\fP)
  248639. .IP \(bu 2
  248640. 70bd407920 Merge pull request \fI\%#23931\fP from rallytime/bp\-23880
  248641. .IP \(bu 2
  248642. 8ce59a2e16 if setting client_config_dir to \(aq~\(aq, expand path
  248643. .UNINDENT
  248644. .IP \(bu 2
  248645. \fBISSUE\fP \fI\%#23847\fP: (\fI\%kiorky\fP) lxc: systemd containers cant be seeded (refs: \fI\%#23806\fP, \fI\%#23898\fP, \fI\%#23897\fP, \fI\%#23808\fP)
  248646. .IP \(bu 2
  248647. \fBISSUE\fP \fI\%#23833\fP: (\fI\%kiorky\fP) lxc.set_dns fails intermittently (refs: \fI\%#23807\fP, \fI\%#23898\fP, \fI\%#23897\fP, \fI\%#23808\fP)
  248648. .IP \(bu 2
  248649. \fBISSUE\fP \fI\%#23772\fP: (\fI\%cheuschober\fP) lxc.init fails to bootstrap container (refs: \fI\%#23806\fP, \fI\%#23808\fP, \fI\%#23807\fP, \fI\%#23898\fP, \fI\%#23897\fP)
  248650. .IP \(bu 2
  248651. \fBISSUE\fP \fI\%#23658\fP: (\fI\%arthurlogilab\fP) [salt\-cloud lxc] too verbose, shows host: True multiple times when starting (refs: \fI\%#23898\fP, \fI\%#23897\fP)
  248652. .IP \(bu 2
  248653. \fBISSUE\fP \fI\%#23657\fP: (\fI\%arthurlogilab\fP) [salt\-cloud lxc] NameError: global name \(aq__salt__\(aq is not defined (refs: \fI\%#23898\fP, \fI\%#23727\fP, \fI\%#23897\fP)
  248654. .IP \(bu 2
  248655. \fBPR\fP \fI\%#23898\fP: (\fI\%kiorky\fP) Lxc profiles (refs: \fI\%#23897\fP)
  248656. @ \fI2015\-05\-19 21:08:28 UTC\fP
  248657. .INDENT 2.0
  248658. .IP \(bu 2
  248659. \fBPR\fP \fI\%#23897\fP: (\fI\%kiorky\fP) Lxc seed and prof ports (refs: \fI\%#23898\fP)
  248660. .IP \(bu 2
  248661. \fBPR\fP \fI\%#23808\fP: (\fI\%kiorky\fP) Lxc seed and prof ports (refs: \fI\%#23807\fP, \fI\%#23897\fP)
  248662. .IP \(bu 2
  248663. \fBPR\fP \fI\%#23807\fP: (\fI\%kiorky\fP) Lxc profiles (refs: \fI\%#23898\fP)
  248664. .IP \(bu 2
  248665. \fBPR\fP \fI\%#23806\fP: (\fI\%kiorky\fP) Lxc seeding (refs: \fI\%#23807\fP)
  248666. .IP \(bu 2
  248667. 5bdbf0af9b Merge pull request \fI\%#23898\fP from makinacorpus/lxc_profiles
  248668. .IP \(bu 2
  248669. d9051a047a lxc: systemd support
  248670. .IP \(bu 2
  248671. e8d674fed4 lxc: chroot fallback toggle
  248672. .IP \(bu 2
  248673. e2887a0d44 lxc: sync func name with develop
  248674. .IP \(bu 2
  248675. e96e345799 lxc more fixes (lxc.set_dns)
  248676. .IP \(bu 2
  248677. fdb64245d4 lxc: Fix salt config (no more a kwarg)
  248678. .IP \(bu 2
  248679. 63e63fa527 repair salt cloud lxc api on develop
  248680. .IP \(bu 2
  248681. 80eabe2703 lxc salt cloud doc
  248682. .IP \(bu 2
  248683. 73f229d966 lxc: unificate saltconfig/master/master_port
  248684. .IP \(bu 2
  248685. 0bc1f08a6b lxc: refactor a bit saltcloud/lxc interface
  248686. .IP \(bu 2
  248687. 7a80370da9 lxc: get networkprofile from saltcloud
  248688. .IP \(bu 2
  248689. 47acb2e159 lxc: default net profile has now correct options
  248690. .IP \(bu 2
  248691. 7eadf4863c lxc: select the appropriate default bridge
  248692. .UNINDENT
  248693. .IP \(bu 2
  248694. \fBISSUE\fP \fI\%#23900\fP: (\fI\%hashi825\fP) salt ubuntu network building issue 2015.5.0 (refs: \fI\%#23922\fP)
  248695. .IP \(bu 2
  248696. \fBPR\fP \fI\%#23922\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py
  248697. @ \fI2015\-05\-19 18:50:53 UTC\fP
  248698. .INDENT 2.0
  248699. .IP \(bu 2
  248700. b818f72dce Merge pull request \fI\%#23922\fP from garethgreenaway/23900_2015_5_bonding_interface_fixes
  248701. .IP \(bu 2
  248702. 0bba536d6d Fixing issue reported when using bonded interfaces on Ubuntu. Attributes should be bond\-, but the code was attempting to split just on bond_. Fix accounts for both, but the debian_ip.py module will write out bond attributes with bond\-
  248703. .UNINDENT
  248704. .IP \(bu 2
  248705. \fBPR\fP \fI\%#23925\fP: (\fI\%jpic\fP) Fixed wrong path in LXC cloud documentation
  248706. @ \fI2015\-05\-19 18:23:56 UTC\fP
  248707. .INDENT 2.0
  248708. .IP \(bu 2
  248709. \fBPR\fP \fI\%#23924\fP: (\fI\%jpic\fP) Fixed wrong path in LXC cloud documentation (refs: \fI\%#23925\fP)
  248710. .IP \(bu 2
  248711. b1c98a38ed Merge pull request \fI\%#23925\fP from jpic/fix/wrong_lxc_path
  248712. .IP \(bu 2
  248713. a4bcd75171 Fixed wrong path in LXC cloud documentation
  248714. .UNINDENT
  248715. .IP \(bu 2
  248716. \fBPR\fP \fI\%#23894\fP: (\fI\%whiteinge\fP) Add __all__ attribute to Mock class for docs
  248717. @ \fI2015\-05\-19 17:17:35 UTC\fP
  248718. .INDENT 2.0
  248719. .IP \(bu 2
  248720. 7f6a716a8a Merge pull request \fI\%#23894\fP from whiteinge/doc\-mock__all__
  248721. .IP \(bu 2
  248722. 6eeca46158 Add __all__ attribute to Mock class for docs
  248723. .UNINDENT
  248724. .IP \(bu 2
  248725. \fBISSUE\fP \fI\%#23767\fP: (\fI\%chrimi\fP) Salt system.locale fails on non existent default locale (refs: \fI\%#23884\fP)
  248726. .IP \(bu 2
  248727. \fBPR\fP \fI\%#23884\fP: (\fI\%jfindlay\fP) Fix locale.set_locale on debian
  248728. @ \fI2015\-05\-19 15:51:22 UTC\fP
  248729. .INDENT 2.0
  248730. .IP \(bu 2
  248731. 8108a9bd19 Merge pull request \fI\%#23884\fP from jfindlay/fix_locale
  248732. .IP \(bu 2
  248733. 91c2d51400 use append_if_not_found in locale.set_locale
  248734. .IP \(bu 2
  248735. e63260391c (re)generate /etc/default/locale
  248736. .UNINDENT
  248737. .IP \(bu 2
  248738. \fBPR\fP \fI\%#23866\fP: (\fI\%jfindlay\fP) backport \fI\%#23834\fP, change portage.dep.strip_empty to list comprehension
  248739. @ \fI2015\-05\-19 15:50:43 UTC\fP
  248740. .INDENT 2.0
  248741. .IP \(bu 2
  248742. \fBPR\fP \fI\%#23834\fP: (\fI\%Arabus\fP) Avoid deprecation warning from portage.dep.strip_empty() (refs: \fI\%#23866\fP)
  248743. .IP \(bu 2
  248744. 6bae12fa8b Merge pull request \fI\%#23866\fP from jfindlay/flag_strip
  248745. .IP \(bu 2
  248746. aa032ccfaf replace portage.dep.strip_empty() with list comprehension
  248747. .IP \(bu 2
  248748. 7576872280 Proper replacement for portage.dep.strip_empty() with list comprehension, pep8fix
  248749. .IP \(bu 2
  248750. 2851a5cf13 Switch portage.dep.strip_empty(...) to filter(None,...) to avoid deprecation warning and do essentially the same
  248751. .UNINDENT
  248752. .IP \(bu 2
  248753. \fBISSUE\fP \fI\%#23904\fP: (\fI\%mbrgm\fP) Network config bonding section cannot be parsed when attribute names use dashes (refs: \fI\%#23917\fP)
  248754. .IP \(bu 2
  248755. \fBPR\fP \fI\%#23917\fP: (\fI\%corywright\fP) Split debian bonding options on dash instead of underscore
  248756. @ \fI2015\-05\-19 15:44:35 UTC\fP
  248757. .INDENT 2.0
  248758. .IP \(bu 2
  248759. a67a008913 Merge pull request \fI\%#23917\fP from corywright/issue23904
  248760. .IP \(bu 2
  248761. c06f8cf831 Split debian bonding options on dash instead of underscore
  248762. .UNINDENT
  248763. .IP \(bu 2
  248764. \fBPR\fP \fI\%#23909\fP: (\fI\%jayeshka\fP) \(aqstr\(aq object has no attribute \(aqcapitalized\(aq
  248765. @ \fI2015\-05\-19 15:41:53 UTC\fP
  248766. .INDENT 2.0
  248767. .IP \(bu 2
  248768. e8fcd0994d Merge pull request \fI\%#23909\fP from jayeshka/file\-exe\-module
  248769. .IP \(bu 2
  248770. e422d9d200 \(aqstr\(aq object has no attribute \(aqcapitalized\(aq
  248771. .UNINDENT
  248772. .IP \(bu 2
  248773. \fBPR\fP \fI\%#23903\fP: (\fI\%garethgreenaway\fP) Adding docs for missing schedule state module parameters.
  248774. @ \fI2015\-05\-19 06:29:34 UTC\fP
  248775. .INDENT 2.0
  248776. .IP \(bu 2
  248777. c73bf38927 Merge pull request \fI\%#23903\fP from garethgreenaway/missing_docs_schedule_state
  248778. .IP \(bu 2
  248779. acd8ab9e1d Adding docs for missing schedule state module parameters.
  248780. .IP \(bu 2
  248781. a56697bd6e Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248782. .IP \(bu 2
  248783. 1c2af5c685 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248784. .IP \(bu 2
  248785. ef581283fa Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248786. .IP \(bu 2
  248787. 8664e8bc8d Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5\-2
  248788. .IP \(bu 2
  248789. 46eb2655ee saltstack2 sphinx theme updates
  248790. .IP \(bu 2
  248791. e7442d3b1e Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248792. .IP \(bu 2
  248793. ee3c1bd4a7 missed one
  248794. .IP \(bu 2
  248795. 3872921dd0 More updates to sphinx2 theme
  248796. .IP \(bu 2
  248797. fcd48657ef Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248798. .IP \(bu 2
  248799. 8c32152be0 removed TOC numbering, additional tweaks to layout.html
  248800. .IP \(bu 2
  248801. 73dfaeff28 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into 2015.5
  248802. .IP \(bu 2
  248803. 16d8a753ad saltstack2 sphinx theme and build settings
  248804. .UNINDENT
  248805. .IP \(bu 2
  248806. \fBISSUE\fP \fI\%#23847\fP: (\fI\%kiorky\fP) lxc: systemd containers cant be seeded (refs: \fI\%#23806\fP, \fI\%#23898\fP, \fI\%#23897\fP, \fI\%#23808\fP)
  248807. .IP \(bu 2
  248808. \fBISSUE\fP \fI\%#23772\fP: (\fI\%cheuschober\fP) lxc.init fails to bootstrap container (refs: \fI\%#23806\fP, \fI\%#23808\fP, \fI\%#23807\fP, \fI\%#23898\fP, \fI\%#23897\fP)
  248809. .IP \(bu 2
  248810. \fBPR\fP \fI\%#23806\fP: (\fI\%kiorky\fP) Lxc seeding (refs: \fI\%#23807\fP)
  248811. @ \fI2015\-05\-18 23:18:33 UTC\fP
  248812. .INDENT 2.0
  248813. .IP \(bu 2
  248814. ff3cc7d331 Merge pull request \fI\%#23806\fP from makinacorpus/lxc_seeding
  248815. .IP \(bu 2
  248816. 61b7aad308 runners/lxc: optim
  248817. .UNINDENT
  248818. .IP \(bu 2
  248819. \fBPR\fP \fI\%#23892\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248820. @ \fI2015\-05\-18 23:07:57 UTC\fP
  248821. .INDENT 2.0
  248822. .IP \(bu 2
  248823. 5f1a93d966 Merge pull request \fI\%#23892\fP from basepi/merge\-forward\-2015.5
  248824. .IP \(bu 2
  248825. c2eed77691 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248826. .IP \(bu 2
  248827. 17c5810c04 Merge pull request \fI\%#23891\fP from basepi/releasenotes
  248828. .INDENT 2.0
  248829. .IP \(bu 2
  248830. dec153bcea Update the release notes index page
  248831. .UNINDENT
  248832. .IP \(bu 2
  248833. a93e58f80f Merge pull request \fI\%#23888\fP from basepi/v2014.7.6release
  248834. .INDENT 2.0
  248835. .IP \(bu 2
  248836. 49921b6cb2 Update the 2014.7.6 release notes with CVE details
  248837. .UNINDENT
  248838. .IP \(bu 2
  248839. 50730287bb Merge pull request \fI\%#23871\fP from rallytime/bp\-23848
  248840. .INDENT 2.0
  248841. .IP \(bu 2
  248842. 379c09c3a5 Updated for SLES 12.
  248843. .UNINDENT
  248844. .UNINDENT
  248845. .IP \(bu 2
  248846. \fBPR\fP \fI\%#23875\fP: (\fI\%rallytime\fP) Backport \fI\%#23838\fP to 2015.5
  248847. @ \fI2015\-05\-18 22:28:55 UTC\fP
  248848. .INDENT 2.0
  248849. .IP \(bu 2
  248850. \fBPR\fP \fI\%#23838\fP: (\fI\%gtmanfred\fP) add refresh_beacons and sync_beacons (refs: \fI\%#23875\fP)
  248851. .IP \(bu 2
  248852. 66d13356b3 Merge pull request \fI\%#23875\fP from rallytime/bp\-23838
  248853. .IP \(bu 2
  248854. 3174227e8e Add versionadded directives to new beacon saltutil functions
  248855. .IP \(bu 2
  248856. 4a94b2c17b add refresh_beacons and sync_beacons
  248857. .UNINDENT
  248858. .IP \(bu 2
  248859. \fBPR\fP \fI\%#23876\fP: (\fI\%rallytime\fP) Switch digital ocean tests to v2 driver
  248860. @ \fI2015\-05\-18 22:17:13 UTC\fP
  248861. .INDENT 2.0
  248862. .IP \(bu 2
  248863. d294cf260b Merge pull request \fI\%#23876\fP from rallytime/switch_digital_ocean_tests_v2
  248864. .IP \(bu 2
  248865. dce9b540a6 Remove extra line
  248866. .IP \(bu 2
  248867. 4acf58e758 Switch digital ocean tests to v2 driver
  248868. .UNINDENT
  248869. .IP \(bu 2
  248870. \fBISSUE\fP \fI\%#23792\fP: (\fI\%neogenix\fP) Salt Scheduler Incorrect Response (True, should be False) (refs: \fI\%#23882\fP)
  248871. .IP \(bu 2
  248872. \fBPR\fP \fI\%#23882\fP: (\fI\%garethgreenaway\fP) Fixes to scheduler in 2015.5
  248873. @ \fI2015\-05\-18 22:09:24 UTC\fP
  248874. .INDENT 2.0
  248875. .IP \(bu 2
  248876. b97a48c7f5 Merge pull request \fI\%#23882\fP from garethgreenaway/23792_2015_5_wrong_return_code
  248877. .IP \(bu 2
  248878. 37dbde6d57 Job already exists in schedule, should return False.
  248879. .UNINDENT
  248880. .IP \(bu 2
  248881. \fBPR\fP \fI\%#23868\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  248882. @ \fI2015\-05\-18 18:35:54 UTC\fP
  248883. .INDENT 2.0
  248884. .IP \(bu 2
  248885. 61c922ea1a Merge pull request \fI\%#23868\fP from basepi/merge\-forward\-2015.5
  248886. .IP \(bu 2
  248887. c9ed23394c Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  248888. .IP \(bu 2
  248889. aee00c83df Merge pull request \fI\%#23810\fP from rallytime/bp\-23757
  248890. .INDENT 2.0
  248891. .IP \(bu 2
  248892. fb32c32065 use abspath, do not eliminating symlinks
  248893. .UNINDENT
  248894. .IP \(bu 2
  248895. 6b3352bb1a Merge pull request \fI\%#23809\fP from rallytime/virt_get_nics_fix
  248896. .INDENT 2.0
  248897. .IP \(bu 2
  248898. 0616fb7884 Fix virtualport section of virt.get_nics loop
  248899. .UNINDENT
  248900. .IP \(bu 2
  248901. 188f03f567 Merge pull request \fI\%#23823\fP from gtmanfred/2014.7
  248902. .INDENT 2.0
  248903. .IP \(bu 2
  248904. 5ef006d59d add link local for ipv6
  248905. .UNINDENT
  248906. .IP \(bu 2
  248907. f3ca682f92 Merge pull request \fI\%#23802\fP from gtmanfred/2014.7
  248908. .INDENT 2.0
  248909. .IP \(bu 2
  248910. 2da98b58c8 if it is ipv6 ip_to_int will fail
  248911. .UNINDENT
  248912. .UNINDENT
  248913. .IP \(bu 2
  248914. \fBPR\fP \fI\%#23863\fP: (\fI\%rahulhan\fP) Adding states/timezone.py unit test
  248915. @ \fI2015\-05\-18 17:02:19 UTC\fP
  248916. .INDENT 2.0
  248917. .IP \(bu 2
  248918. 433f87372c Merge pull request \fI\%#23863\fP from rahulhan/states_timezone_unit_test
  248919. .IP \(bu 2
  248920. 72fcabc690 Adding states/timezone.py unit test
  248921. .UNINDENT
  248922. .IP \(bu 2
  248923. \fBPR\fP \fI\%#23862\fP: (\fI\%rahulhan\fP) Adding states/tomcat.py unit tests
  248924. @ \fI2015\-05\-18 17:02:10 UTC\fP
  248925. .INDENT 2.0
  248926. .IP \(bu 2
  248927. 37b3ee5421 Merge pull request \fI\%#23862\fP from rahulhan/states_tomcat_unit_test
  248928. .IP \(bu 2
  248929. 65d7752d2a Adding states/tomcat.py unit tests
  248930. .UNINDENT
  248931. .IP \(bu 2
  248932. \fBPR\fP \fI\%#23860\fP: (\fI\%rahulhan\fP) Adding states/test.py unit tests
  248933. @ \fI2015\-05\-18 17:01:49 UTC\fP
  248934. .INDENT 2.0
  248935. .IP \(bu 2
  248936. dde7207acb Merge pull request \fI\%#23860\fP from rahulhan/states_test_unit_test
  248937. .IP \(bu 2
  248938. 1f4cf86500 Adding states/test.py unit tests
  248939. .UNINDENT
  248940. .IP \(bu 2
  248941. \fBPR\fP \fI\%#23859\fP: (\fI\%rahulhan\fP) Adding states/sysrc.py unit tests
  248942. @ \fI2015\-05\-18 17:01:46 UTC\fP
  248943. .INDENT 2.0
  248944. .IP \(bu 2
  248945. 3c9b8139e8 Merge pull request \fI\%#23859\fP from rahulhan/states_sysrc_unit_test
  248946. .IP \(bu 2
  248947. 6a903b054d Adding states/sysrc.py unit tests
  248948. .UNINDENT
  248949. .IP \(bu 2
  248950. \fBPR\fP \fI\%#23812\fP: (\fI\%rallytime\fP) Backport \fI\%#23790\fP to 2015.5
  248951. @ \fI2015\-05\-18 15:30:34 UTC\fP
  248952. .INDENT 2.0
  248953. .IP \(bu 2
  248954. \fBPR\fP \fI\%#23790\fP: (\fI\%aboe76\fP) updated suse spec file to version 2015.5.0 (refs: \fI\%#23812\fP)
  248955. .IP \(bu 2
  248956. 4cf30a7ffa Merge pull request \fI\%#23812\fP from rallytime/bp\-23790
  248957. .IP \(bu 2
  248958. 3f65631cb6 updated suse spec file to version 2015.5.0
  248959. .UNINDENT
  248960. .IP \(bu 2
  248961. \fBPR\fP \fI\%#23811\fP: (\fI\%rallytime\fP) Backport \fI\%#23786\fP to 2015.5
  248962. @ \fI2015\-05\-18 15:30:27 UTC\fP
  248963. .INDENT 2.0
  248964. .IP \(bu 2
  248965. \fBPR\fP \fI\%#23786\fP: (\fI\%kaithar\fP) Log the error generated that causes returns.mysql.returner to except. (refs: \fI\%#23811\fP)
  248966. .IP \(bu 2
  248967. c6f939adfb Merge pull request \fI\%#23811\fP from rallytime/bp\-23786
  248968. .IP \(bu 2
  248969. 346f30bdda Log the error generated that causes returns.mysql.returner to except.
  248970. .UNINDENT
  248971. .IP \(bu 2
  248972. \fBPR\fP \fI\%#23850\fP: (\fI\%jayeshka\fP) adding sysbench unit test case
  248973. @ \fI2015\-05\-18 15:28:04 UTC\fP
  248974. .INDENT 2.0
  248975. .IP \(bu 2
  248976. ce60582de4 Merge pull request \fI\%#23850\fP from jayeshka/sysbench\-unit\-test
  248977. .IP \(bu 2
  248978. 280abdec7c adding sysbench unit test case
  248979. .UNINDENT
  248980. .IP \(bu 2
  248981. \fBPR\fP \fI\%#23843\fP: (\fI\%The\-Loeki\fP) Fix erroneous virtual:physical core grain detection
  248982. @ \fI2015\-05\-18 15:24:22 UTC\fP
  248983. .INDENT 2.0
  248984. .IP \(bu 2
  248985. 060902fefa Merge pull request \fI\%#23843\fP from The\-Loeki/patch\-1
  248986. .IP \(bu 2
  248987. 9e2cf606eb Fix erroneous virtual:physical core grain detection
  248988. .UNINDENT
  248989. .IP \(bu 2
  248990. \fBISSUE\fP \fI\%#23815\fP: (\fI\%Snergster\fP) [beacons] inotify errors on subdir creation (refs: \fI\%#23816\fP)
  248991. .IP \(bu 2
  248992. \fBISSUE\fP \fI\%#23685\fP: (\fI\%Snergster\fP) inotify beacon on file. \(aqchange\(aq event to reactor to reset file to known state will cause loop (refs: \fI\%#23816\fP)
  248993. .IP \(bu 2
  248994. \fBPR\fP \fI\%#23816\fP: (\fI\%Snergster\fP) Doc for \fI\%#23685\fP Added prereq, caution, and additional mask information
  248995. @ \fI2015\-05\-18 15:18:03 UTC\fP
  248996. .INDENT 2.0
  248997. .IP \(bu 2
  248998. 3257a9bead Merge pull request \fI\%#23816\fP from Snergster/23685\-doc\-fix
  248999. .IP \(bu 2
  249000. 0fca49d52a Added prereq, caution, and additional mask information
  249001. .UNINDENT
  249002. .IP \(bu 2
  249003. \fBPR\fP \fI\%#23832\fP: (\fI\%ahus1\fP) make saltify provider use standard boostrap procedure
  249004. @ \fI2015\-05\-18 02:18:29 UTC\fP
  249005. .INDENT 2.0
  249006. .IP \(bu 2
  249007. \fBPR\fP \fI\%#23829\fP: (\fI\%ahus1\fP) make saltify provider use standard boostrap procedure (refs: \fI\%#23832\fP)
  249008. .IP \(bu 2
  249009. 3df3b85090 Merge pull request \fI\%#23832\fP from ahus1/ahus1_saltify_bootstrap_2015.5
  249010. .IP \(bu 2
  249011. f5b1734782 fixing problem in unit test
  249012. .IP \(bu 2
  249013. cba47f6856 make saltify to use standard boostrap procedure, therefore providing all options like master_sign_pub_file
  249014. .UNINDENT
  249015. .IP \(bu 2
  249016. \fBPR\fP \fI\%#23791\fP: (\fI\%optix2000\fP) Psutil compat
  249017. @ \fI2015\-05\-16 04:05:54 UTC\fP
  249018. .INDENT 2.0
  249019. .IP \(bu 2
  249020. 8ec4fb2a73 Merge pull request \fI\%#23791\fP from optix2000/psutil_compat
  249021. .IP \(bu 2
  249022. 5470cf58db Fix pylint errors and sloppy inline comments
  249023. .IP \(bu 2
  249024. 64634b6349 Update psutil.pid_list to use psutil.pids
  249025. .IP \(bu 2
  249026. 5dd6d69192 Fix imports that aren\(aqt in __all__
  249027. .IP \(bu 2
  249028. 8a1da33ada Fix test cases by mocking psutil_compat
  249029. .IP \(bu 2
  249030. 558798df1f Fix net_io_counters deprecation issue
  249031. .IP \(bu 2
  249032. 8140f92ba8 Override unecessary pylint errors
  249033. .IP \(bu 2
  249034. 7d02ad4f06 Fix some of the mock names for the new API
  249035. .IP \(bu 2
  249036. 9b3023e851 Fix overloaded getters/setters. Fix line lengths
  249037. .IP \(bu 2
  249038. 180eb87a46 Fix whitespace
  249039. .IP \(bu 2
  249040. f8edf72f98 Use new psutil API in ps module
  249041. .IP \(bu 2
  249042. e48982ff9c Fix version checking in psutil_compat
  249043. .IP \(bu 2
  249044. 93ee411fd5 Create compatability psutil. psutil 3.0 drops 1.0 API, but we still support old psutil versions.
  249045. .UNINDENT
  249046. .IP \(bu 2
  249047. \fBPR\fP \fI\%#23782\fP: (\fI\%terminalmage\fP) Replace "command \-v" with "which" and get rid of spurious log messages
  249048. @ \fI2015\-05\-16 04:03:10 UTC\fP
  249049. .INDENT 2.0
  249050. .IP \(bu 2
  249051. 405517be8b Merge pull request \fI\%#23782\fP from terminalmage/issue23772
  249052. .IP \(bu 2
  249053. 0f6f239052 More ignore_retcode to suppress spurious log msgs
  249054. .IP \(bu 2
  249055. b4c48e62ea Ignore return code in lxc.attachable
  249056. .IP \(bu 2
  249057. 08658c0177 Replace "command \-v" with "which"
  249058. .UNINDENT
  249059. .IP \(bu 2
  249060. \fBPR\fP \fI\%#23783\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249061. @ \fI2015\-05\-15 21:38:51 UTC\fP
  249062. .INDENT 2.0
  249063. .IP \(bu 2
  249064. cb2eb401f3 Merge pull request \fI\%#23783\fP from basepi/merge\-forward\-2015.5
  249065. .IP \(bu 2
  249066. 9df51caf28 __opts__.get
  249067. .IP \(bu 2
  249068. 51d23ed9d0 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249069. .INDENT 2.0
  249070. .IP \(bu 2
  249071. d9af0c3e82 Merge pull request \fI\%#23488\fP from cellscape/lxc\-cloud\-fixes
  249072. .INDENT 2.0
  249073. .IP \(bu 2
  249074. 64250a67e5 Remove profile from opts after creating LXC container
  249075. .IP \(bu 2
  249076. c4047d2a71 Set destroy=True in opts when destroying cloud instance
  249077. .IP \(bu 2
  249078. 9e1311a7cd Store instance names in opts when performing cloud action
  249079. .IP \(bu 2
  249080. 934bc57c73 Correctly pass custom env to lxc\-attach
  249081. .IP \(bu 2
  249082. 7fb85f7be1 Preserve test=True option in cloud states
  249083. .IP \(bu 2
  249084. 9771b5a313 Fix detection of absent LXC container in cloud state
  249085. .IP \(bu 2
  249086. fb24f0cf02 Report failure when failed to create/clone LXC container
  249087. .IP \(bu 2
  249088. 2d9aa2bb97 Avoid shadowing variables in lxc module
  249089. .IP \(bu 2
  249090. 792e1021f2 Allow to override profile options in lxc.cloud_init_interface
  249091. .IP \(bu 2
  249092. 42bd64b9b3 Return changes on successful lxc.create from salt\-cloud
  249093. .IP \(bu 2
  249094. 4409eabb83 Return correct result when creating cloud LXC container
  249095. .IP \(bu 2
  249096. 377015c881 Issue \fI\%#16424\fP: List all providers when creating salt\-cloud instance without profile
  249097. .UNINDENT
  249098. .IP \(bu 2
  249099. 808bbe1cb2 Merge pull request \fI\%#23748\fP from basepi/salt\-ssh.roster.host.check
  249100. .INDENT 2.0
  249101. .IP \(bu 2
  249102. bc53e049e0 Log entire exception for render errors in roster
  249103. .IP \(bu 2
  249104. 753de6a621 Log render errors in roster to error level
  249105. .IP \(bu 2
  249106. e01a7a90b3 Always let the real YAML error through
  249107. .UNINDENT
  249108. .IP \(bu 2
  249109. 72cf360255 Merge pull request \fI\%#23731\fP from twangboy/fix_22959
  249110. .INDENT 2.0
  249111. .IP \(bu 2
  249112. 88e5495b2d Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  249113. .UNINDENT
  249114. .IP \(bu 2
  249115. 2610195262 Merge pull request \fI\%#23730\fP from rallytime/bp\-23729
  249116. .INDENT 2.0
  249117. .IP \(bu 2
  249118. 1877caecba adding support for nested grains to grains.item
  249119. .UNINDENT
  249120. .IP \(bu 2
  249121. 3e9df883d6 Merge pull request \fI\%#23688\fP from twangboy/fix_23415
  249122. .INDENT 2.0
  249123. .IP \(bu 2
  249124. 6a91169bae Fixed unused\-import pylint error
  249125. .IP \(bu 2
  249126. 5e25b3f355 fixed pylint errors
  249127. .IP \(bu 2
  249128. 1a9676626f Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  249129. .UNINDENT
  249130. .UNINDENT
  249131. .UNINDENT
  249132. .IP \(bu 2
  249133. \fBPR\fP \fI\%#23781\fP: (\fI\%jfindlay\fP) fix unit test mock errors on arch
  249134. @ \fI2015\-05\-15 19:40:07 UTC\fP
  249135. .INDENT 2.0
  249136. .IP \(bu 2
  249137. 982f87316d Merge pull request \fI\%#23781\fP from jfindlay/fix_locale_tests
  249138. .IP \(bu 2
  249139. 14c711eeb3 fix unit test mock errors on arch
  249140. .UNINDENT
  249141. .IP \(bu 2
  249142. \fBISSUE\fP \fI\%#23566\fP: (\fI\%rks2286\fP) Salt\-cp corrupting the file after transfer to minion (refs: \fI\%#23740\fP)
  249143. .IP \(bu 2
  249144. \fBPR\fP \fI\%#23740\fP: (\fI\%jfindlay\fP) Binary write
  249145. @ \fI2015\-05\-15 18:10:44 UTC\fP
  249146. .INDENT 2.0
  249147. .IP \(bu 2
  249148. 916b1c4f7c Merge pull request \fI\%#23740\fP from jfindlay/binary_write
  249149. .IP \(bu 2
  249150. 626930a4e5 update incorrect comment wording
  249151. .IP \(bu 2
  249152. a978f5c091 always use binary file write mode on windows
  249153. .UNINDENT
  249154. .IP \(bu 2
  249155. \fBISSUE\fP \fI\%#23682\fP: (\fI\%chrish42\fP) Pip module requires system pip, even when not used (with env_bin) (refs: \fI\%#23736\fP)
  249156. .IP \(bu 2
  249157. \fBPR\fP \fI\%#23736\fP: (\fI\%jfindlay\fP) always load pip execution module
  249158. @ \fI2015\-05\-15 18:10:16 UTC\fP
  249159. .INDENT 2.0
  249160. .IP \(bu 2
  249161. 348645ecd5 Merge pull request \fI\%#23736\fP from jfindlay/fix_pip
  249162. .IP \(bu 2
  249163. b8867a8c23 update pip tests
  249164. .IP \(bu 2
  249165. 040bbc42d2 only check pip version in one place
  249166. .IP \(bu 2
  249167. 6c453a5a2a check for executable status of bin_env
  249168. .IP \(bu 2
  249169. 3337257833 always load the pip module as pip could be anywhere
  249170. .UNINDENT
  249171. .IP \(bu 2
  249172. \fBPR\fP \fI\%#23770\fP: (\fI\%cellscape\fP) Fix cloud LXC container destruction
  249173. @ \fI2015\-05\-15 17:38:59 UTC\fP
  249174. .INDENT 2.0
  249175. .IP \(bu 2
  249176. 10cedfb174 Merge pull request \fI\%#23770\fP from cellscape/fix\-cloud\-lxc\-destruction
  249177. .IP \(bu 2
  249178. 4f6021c884 Fix cloud LXC container destruction
  249179. .UNINDENT
  249180. .IP \(bu 2
  249181. \fBPR\fP \fI\%#23759\fP: (\fI\%lisa2lisa\fP) fixed the problem for not beable to revoke \fI\&.\fP, for more detail https…
  249182. @ \fI2015\-05\-15 17:38:38 UTC\fP
  249183. .INDENT 2.0
  249184. .IP \(bu 2
  249185. ddea822b02 Merge pull request \fI\%#23759\fP from lisa2lisa/iss23664
  249186. .IP \(bu 2
  249187. a29f161a58 fixed the problem for not beable to revoke \fI\&.\fP, for more detail \fI\%https://github.com/saltstack/salt/issues/23201\fP, fixed mysql cannot create user with pure digit password, for more info \fI\%https://github.com/saltstack/salt/issues/23664\fP
  249188. .UNINDENT
  249189. .IP \(bu 2
  249190. \fBPR\fP \fI\%#23769\fP: (\fI\%cellscape\fP) Fix file_roots CA lookup in salt.utils.http.get_ca_bundle
  249191. @ \fI2015\-05\-15 16:21:49 UTC\fP
  249192. .INDENT 2.0
  249193. .IP \(bu 2
  249194. 10615ff5a7 Merge pull request \fI\%#23769\fP from cellscape/utils\-http\-ca\-file\-roots
  249195. .IP \(bu 2
  249196. 8e90f3291b Fix file_roots CA lookup in salt.utils.http.get_ca_bundle
  249197. .UNINDENT
  249198. .IP \(bu 2
  249199. \fBPR\fP \fI\%#23765\fP: (\fI\%jayeshka\fP) adding states/makeconf unit test case
  249200. @ \fI2015\-05\-15 14:29:43 UTC\fP
  249201. .INDENT 2.0
  249202. .IP \(bu 2
  249203. fd8a1b797f Merge pull request \fI\%#23765\fP from jayeshka/makeconf_states\-unit\-test
  249204. .IP \(bu 2
  249205. 26e31afa31 adding states/makeconf unit test case
  249206. .UNINDENT
  249207. .IP \(bu 2
  249208. \fBPR\fP \fI\%#23760\fP: (\fI\%ticosax\fP) [doc] document refresh argument
  249209. @ \fI2015\-05\-15 14:23:47 UTC\fP
  249210. .INDENT 2.0
  249211. .IP \(bu 2
  249212. ee13b08027 Merge pull request \fI\%#23760\fP from ticosax/2015.5
  249213. .IP \(bu 2
  249214. e3ca859ba6 document refresh argument
  249215. .UNINDENT
  249216. .IP \(bu 2
  249217. \fBPR\fP \fI\%#23766\fP: (\fI\%jayeshka\fP) adding svn unit test case
  249218. @ \fI2015\-05\-15 14:23:18 UTC\fP
  249219. .INDENT 2.0
  249220. .IP \(bu 2
  249221. a017f725a4 Merge pull request \fI\%#23766\fP from jayeshka/svn\-unit\-test
  249222. .IP \(bu 2
  249223. 19939cfa98 adding svn unit test case
  249224. .UNINDENT
  249225. .IP \(bu 2
  249226. \fBISSUE\fP \fI\%#23734\fP: (\fI\%bradthurber\fP) 2015.5.0 modules/archive.py ZipFile instance has no attribute \(aq__exit__\(aq \- only python 2.6? (refs: \fI\%#23737\fP)
  249227. .IP \(bu 2
  249228. \fBPR\fP \fI\%#23751\fP: (\fI\%rallytime\fP) Backport \fI\%#23737\fP to 2015.5
  249229. @ \fI2015\-05\-15 03:58:37 UTC\fP
  249230. .INDENT 2.0
  249231. .IP \(bu 2
  249232. \fBPR\fP \fI\%#23737\fP: (\fI\%bradthurber\fP) fix for 2015.5.0 modules/archive.py ZipFile instance has no attribute… (refs: \fI\%#23751\fP)
  249233. .IP \(bu 2
  249234. 0ed9d45114 Merge pull request \fI\%#23751\fP from rallytime/bp\-23737
  249235. .IP \(bu 2
  249236. 8d1eb326d0 fix for 2015.5.0 modules/archive.py ZipFile instance has no attribute \(aq__exit__\(aq \- only python 2.6? \fI\%#23734\fP
  249237. .UNINDENT
  249238. .IP \(bu 2
  249239. \fBISSUE\fP \fI\%#23709\fP: (\fI\%kiorky\fP) cmdmod: enhancement is really needed for stateful commands (refs: \fI\%#23710\fP)
  249240. .IP \(bu 2
  249241. \fBPR\fP \fI\%#23710\fP: (\fI\%kiorky\fP) Get more useful output from stateful commands
  249242. @ \fI2015\-05\-14 21:58:10 UTC\fP
  249243. .INDENT 2.0
  249244. .IP \(bu 2
  249245. d73984ec9c Merge pull request \fI\%#23710\fP from makinacorpus/i23709
  249246. .IP \(bu 2
  249247. c70690969e Get more useful output from stateful commands
  249248. .UNINDENT
  249249. .IP \(bu 2
  249250. \fBISSUE\fP \fI\%#23608\fP: (\fI\%kaidokert\fP) salt\-cloud file_map with non\-root user (refs: \fI\%#23609\fP)
  249251. .IP \(bu 2
  249252. \fBPR\fP \fI\%#23724\fP: (\fI\%rallytime\fP) Backport \fI\%#23609\fP to 2015.5
  249253. @ \fI2015\-05\-14 19:34:22 UTC\fP
  249254. .INDENT 2.0
  249255. .IP \(bu 2
  249256. \fBPR\fP \fI\%#23609\fP: (\fI\%kaidokert\fP) file_map: chown created directories if not root \fI\%#23608\fP (refs: \fI\%#23724\fP)
  249257. .IP \(bu 2
  249258. cdf421b9ed Merge pull request \fI\%#23724\fP from rallytime/bp\-23609
  249259. .IP \(bu 2
  249260. fe3a762673 file_map: chmod created directories if not root
  249261. .UNINDENT
  249262. .IP \(bu 2
  249263. \fBPR\fP \fI\%#23723\fP: (\fI\%rallytime\fP) Backport \fI\%#23568\fP to 2015.5
  249264. @ \fI2015\-05\-14 19:34:11 UTC\fP
  249265. .INDENT 2.0
  249266. .IP \(bu 2
  249267. \fBPR\fP \fI\%#23568\fP: (\fI\%techhat\fP) Allow Salt Cloud to use either SCP or SFTP, as configured (refs: \fI\%#23723\fP)
  249268. .IP \(bu 2
  249269. 94f9099307 Merge pull request \fI\%#23723\fP from rallytime/bp\-23568
  249270. .IP \(bu 2
  249271. bbec34abd3 Allow Salt Cloud to use either SCP or SFTP, as configured
  249272. .UNINDENT
  249273. .IP \(bu 2
  249274. \fBPR\fP \fI\%#23725\fP: (\fI\%rallytime\fP) Backport \fI\%#23691\fP to 2015.5
  249275. @ \fI2015\-05\-14 19:32:30 UTC\fP
  249276. .INDENT 2.0
  249277. .IP \(bu 2
  249278. \fBPR\fP \fI\%#23691\fP: (\fI\%dennisjac\fP) add initial configuration documentation for varstack pillar (refs: \fI\%#23725\fP)
  249279. .IP \(bu 2
  249280. 137e5eefd0 Merge pull request \fI\%#23725\fP from rallytime/bp\-23691
  249281. .IP \(bu 2
  249282. 28a846ebe8 add initial configuration documentation for varstack pillar
  249283. .UNINDENT
  249284. .IP \(bu 2
  249285. \fBPR\fP \fI\%#23722\fP: (\fI\%rallytime\fP) Backport \fI\%#23472\fP to 2015.5
  249286. @ \fI2015\-05\-14 19:31:52 UTC\fP
  249287. .INDENT 2.0
  249288. .IP \(bu 2
  249289. \fBPR\fP \fI\%#23472\fP: (\fI\%techhat\fP) Allow neutron network list to be used as pillar data (refs: \fI\%#23722\fP)
  249290. .IP \(bu 2
  249291. 0c00995dfb Merge pull request \fI\%#23722\fP from rallytime/bp\-23472
  249292. .IP \(bu 2
  249293. c3d0f39515 Change versionadded tag for backport
  249294. .IP \(bu 2
  249295. 023e88f264 Allow neutron network list to be used as pillar data
  249296. .UNINDENT
  249297. .IP \(bu 2
  249298. \fBISSUE\fP \fI\%#23657\fP: (\fI\%arthurlogilab\fP) [salt\-cloud lxc] NameError: global name \(aq__salt__\(aq is not defined (refs: \fI\%#23898\fP, \fI\%#23727\fP, \fI\%#23897\fP)
  249299. .IP \(bu 2
  249300. \fBPR\fP \fI\%#23727\fP: (\fI\%jfindlay\fP) fix npm execution module stacktrace
  249301. @ \fI2015\-05\-14 18:14:12 UTC\fP
  249302. .INDENT 2.0
  249303. .IP \(bu 2
  249304. cbf4ca8d91 Merge pull request \fI\%#23727\fP from jfindlay/npm_salt
  249305. .IP \(bu 2
  249306. 05392f282e fix npm execution module stacktrace
  249307. .UNINDENT
  249308. .IP \(bu 2
  249309. \fBPR\fP \fI\%#23718\fP: (\fI\%rahulhan\fP) Adding states/user.py unit tests
  249310. @ \fI2015\-05\-14 17:15:38 UTC\fP
  249311. .INDENT 2.0
  249312. .IP \(bu 2
  249313. ef536d58de Merge pull request \fI\%#23718\fP from rahulhan/states_user_unit_tests
  249314. .IP \(bu 2
  249315. aad27db513 Adding states/user.py unit tests
  249316. .UNINDENT
  249317. .IP \(bu 2
  249318. \fBPR\fP \fI\%#23720\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249319. @ \fI2015\-05\-14 17:13:02 UTC\fP
  249320. .INDENT 2.0
  249321. .IP \(bu 2
  249322. a529d74079 Merge pull request \fI\%#23720\fP from basepi/merge\-forward\-2015.5
  249323. .IP \(bu 2
  249324. 06a3ebd9d1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249325. .IP \(bu 2
  249326. 1b86460d73 Merge pull request \fI\%#23680\fP from cachedout/issue_23403
  249327. .INDENT 2.0
  249328. .IP \(bu 2
  249329. d5986c21b4 Rename kwarg in cloud runner
  249330. .UNINDENT
  249331. .IP \(bu 2
  249332. cd64af0ce4 Merge pull request \fI\%#23674\fP from cachedout/issue_23548
  249333. .INDENT 2.0
  249334. .IP \(bu 2
  249335. da8a2f5cb3 Handle lists correctly in grains.list_prsesent
  249336. .UNINDENT
  249337. .IP \(bu 2
  249338. d322a19213 Merge pull request \fI\%#23672\fP from twangboy/fix_user_present
  249339. .INDENT 2.0
  249340. .IP \(bu 2
  249341. 731e7af3dd Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_user_present
  249342. .IP \(bu 2
  249343. d6f70a4545 Fixed user.present to create password in windows
  249344. .UNINDENT
  249345. .IP \(bu 2
  249346. 43f7025000 Merge pull request \fI\%#23670\fP from rallytime/bp\-23607
  249347. .INDENT 2.0
  249348. .IP \(bu 2
  249349. ed30dc4642 Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok
  249350. .UNINDENT
  249351. .UNINDENT
  249352. .IP \(bu 2
  249353. \fBPR\fP \fI\%#23704\fP: (\fI\%jayeshka\fP) adding states/lvs_server unit test case
  249354. @ \fI2015\-05\-14 14:22:10 UTC\fP
  249355. .INDENT 2.0
  249356. .IP \(bu 2
  249357. 13facbf077 Merge pull request \fI\%#23704\fP from jayeshka/lvs_server_states\-unit\-test
  249358. .IP \(bu 2
  249359. da323dab0b adding states/lvs_server unit test case
  249360. .UNINDENT
  249361. .IP \(bu 2
  249362. \fBPR\fP \fI\%#23703\fP: (\fI\%jayeshka\fP) adding states/lvs_service unit test case
  249363. @ \fI2015\-05\-14 14:21:23 UTC\fP
  249364. .INDENT 2.0
  249365. .IP \(bu 2
  249366. f95ca3188f Merge pull request \fI\%#23703\fP from jayeshka/lvs_service_states\-unit\-test
  249367. .IP \(bu 2
  249368. 66717c8133 adding states/lvs_service unit test case
  249369. .UNINDENT
  249370. .IP \(bu 2
  249371. \fBPR\fP \fI\%#23702\fP: (\fI\%jayeshka\fP) Remove superfluous return statement.
  249372. @ \fI2015\-05\-14 14:20:42 UTC\fP
  249373. .INDENT 2.0
  249374. .IP \(bu 2
  249375. 07e987e327 Merge pull request \fI\%#23702\fP from jayeshka/fix_lvs_service
  249376. .IP \(bu 2
  249377. ecff2181e4 fix lvs_service
  249378. .UNINDENT
  249379. .IP \(bu 2
  249380. \fBPR\fP \fI\%#23686\fP: (\fI\%jfindlay\fP) remove superflous return statement
  249381. @ \fI2015\-05\-14 14:20:18 UTC\fP
  249382. .INDENT 2.0
  249383. .IP \(bu 2
  249384. 39973d4095 Merge pull request \fI\%#23686\fP from jfindlay/fix_lvs_server
  249385. .IP \(bu 2
  249386. 5aaeb73532 remove superflous return statement
  249387. .UNINDENT
  249388. .IP \(bu 2
  249389. \fBPR\fP \fI\%#23690\fP: (\fI\%rallytime\fP) Backport \fI\%#23424\fP to 2015.5
  249390. @ \fI2015\-05\-13 23:04:36 UTC\fP
  249391. .INDENT 2.0
  249392. .IP \(bu 2
  249393. \fBPR\fP \fI\%#23424\fP: (\fI\%justinta\fP) Added python_shell=True for refresh_db in pacman.py (refs: \fI\%#23690\fP)
  249394. .IP \(bu 2
  249395. be7c7ef3fd Merge pull request \fI\%#23690\fP from rallytime/bp\-23424
  249396. .IP \(bu 2
  249397. 94574b7367 Added python_shell=True for refresh_db in pacman.py
  249398. .UNINDENT
  249399. .IP \(bu 2
  249400. \fBPR\fP \fI\%#23681\fP: (\fI\%cachedout\fP) Start on 2015.5.1 release notes
  249401. @ \fI2015\-05\-13 19:44:22 UTC\fP
  249402. .INDENT 2.0
  249403. .IP \(bu 2
  249404. 1a0db43097 Merge pull request \fI\%#23681\fP from cachedout/2015_5_1_release_notes
  249405. .IP \(bu 2
  249406. bdbbfa6ee7 Start on 2015.5.1 release notes
  249407. .UNINDENT
  249408. .IP \(bu 2
  249409. \fBPR\fP \fI\%#23679\fP: (\fI\%jfindlay\fP) Merge \fI\%#23616\fP
  249410. @ \fI2015\-05\-13 19:03:53 UTC\fP
  249411. .INDENT 2.0
  249412. .IP \(bu 2
  249413. \fBPR\fP \fI\%#23616\fP: (\fI\%Snergster\fP) virtual returning none warning fixed in dev but missed in 2015.5 (refs: \fI\%#23679\fP)
  249414. .IP \(bu 2
  249415. b54075a2ac Merge pull request \fI\%#23679\fP from jfindlay/merge_23616
  249416. .IP \(bu 2
  249417. 6e15e19907 appease pylint\(aqs blank line strictures
  249418. .IP \(bu 2
  249419. 8750680d9e virtual returning none warning fixed in dev but missed in 2015.5
  249420. .UNINDENT
  249421. .IP \(bu 2
  249422. \fBPR\fP \fI\%#23675\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249423. @ \fI2015\-05\-13 18:35:54 UTC\fP
  249424. .INDENT 2.0
  249425. .IP \(bu 2
  249426. e480f13688 Merge pull request \fI\%#23675\fP from basepi/merge\-forward\-2015.5
  249427. .IP \(bu 2
  249428. bd635488ef Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249429. .INDENT 2.0
  249430. .IP \(bu 2
  249431. 0f006ac1d8 Merge pull request \fI\%#23661\fP from rallytime/merge\-23640
  249432. .INDENT 2.0
  249433. .IP \(bu 2
  249434. 4427f42bb6 Whitespace fix
  249435. .IP \(bu 2
  249436. dd9115466e Add warning to get_or_set_hash about reserved chars
  249437. .UNINDENT
  249438. .IP \(bu 2
  249439. 84e2ef88fc Merge pull request \fI\%#23639\fP from cachedout/issue_23452
  249440. .INDENT 2.0
  249441. .IP \(bu 2
  249442. d418b49a77 Syntax error!
  249443. .IP \(bu 2
  249444. 45b4015d7d Handle exceptions raised by __virtual__
  249445. .UNINDENT
  249446. .IP \(bu 2
  249447. bd9b94ba8c Merge pull request \fI\%#23637\fP from cachedout/issue_23611
  249448. .INDENT 2.0
  249449. .IP \(bu 2
  249450. 56cb1f52e3 Fix typo
  249451. .IP \(bu 2
  249452. f6fcf19a7f Convert str master to list
  249453. .UNINDENT
  249454. .IP \(bu 2
  249455. f20c0e42ce Merge pull request \fI\%#23595\fP from rallytime/bp\-23549
  249456. .INDENT 2.0
  249457. .IP \(bu 2
  249458. 6efcac09ad Update __init__.py
  249459. .UNINDENT
  249460. .IP \(bu 2
  249461. 1acaf86da7 Merge pull request \fI\%#23594\fP from rallytime/bp\-23496
  249462. .INDENT 2.0
  249463. .IP \(bu 2
  249464. d5ae1d268a Fix for issue \fI\%#23110\fP This resolves issues when the freshly created directory is removed by fileserver.update.
  249465. .UNINDENT
  249466. .IP \(bu 2
  249467. 2c221c7332 Merge pull request \fI\%#23593\fP from rallytime/bp\-23442
  249468. .INDENT 2.0
  249469. .IP \(bu 2
  249470. 39869a15bd check w/ low[\(aqname\(aq] only
  249471. .IP \(bu 2
  249472. 304cc499e9 another fix for file defined w/ id, but require name
  249473. .IP \(bu 2
  249474. 8814d4180e add directory itself to keep list
  249475. .UNINDENT
  249476. .IP \(bu 2
  249477. fadd1ef63c Merge pull request \fI\%#23606\fP from twangboy/fix_installer
  249478. .INDENT 2.0
  249479. .IP \(bu 2
  249480. 038331edab Fixed checkbox for starting service and actually starting it
  249481. .UNINDENT
  249482. .UNINDENT
  249483. .IP \(bu 2
  249484. acdd3fc6bd Fix lint
  249485. .IP \(bu 2
  249486. 680e88f058 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249487. .INDENT 2.0
  249488. .IP \(bu 2
  249489. 10b3f0f643 Merge pull request \fI\%#23592\fP from rallytime/bp\-23389
  249490. .INDENT 2.0
  249491. .IP \(bu 2
  249492. 734cc43801 Correct fail_hard typo
  249493. .UNINDENT
  249494. .IP \(bu 2
  249495. cd34b9b6c4 Merge pull request \fI\%#23573\fP from techhat/novaquery
  249496. .INDENT 2.0
  249497. .IP \(bu 2
  249498. f92db5e92f Linting
  249499. .IP \(bu 2
  249500. 26e00d3ccc Scan all available networks for public and private IPs
  249501. .UNINDENT
  249502. .IP \(bu 2
  249503. 2a72cd71c2 Merge pull request \fI\%#23558\fP from jfindlay/fix_ebuild
  249504. .INDENT 2.0
  249505. .IP \(bu 2
  249506. 45404fb2a6 reorder emerge command line
  249507. .UNINDENT
  249508. .IP \(bu 2
  249509. a664a3c6fd Merge pull request \fI\%#23530\fP from dr4Ke/fix_salt\-ssh_to_include_pkg_sources
  249510. .INDENT 2.0
  249511. .IP \(bu 2
  249512. 5df6a8008c fix pylint warning
  249513. .IP \(bu 2
  249514. d0549e56ba salt\-ssh state: fix including all salt:// references
  249515. .UNINDENT
  249516. .IP \(bu 2
  249517. 55c3869861 Merge pull request \fI\%#23433\fP from twangboy/list_pkgs_fix
  249518. .INDENT 2.0
  249519. .IP \(bu 2
  249520. 8ab5b1b86f Fix pylint error
  249521. .IP \(bu 2
  249522. 2d11d6545e Obtain all software from the registry
  249523. .UNINDENT
  249524. .IP \(bu 2
  249525. 755bed0abd Merge pull request \fI\%#23554\fP from jleroy/debian\-hostname\-fix
  249526. .INDENT 2.0
  249527. .IP \(bu 2
  249528. 5ff749e487 Debian: Hostname always updated
  249529. .UNINDENT
  249530. .IP \(bu 2
  249531. 6ec87ce9f5 Merge pull request \fI\%#23551\fP from dr4Ke/grains.append_unit_tests
  249532. .INDENT 2.0
  249533. .IP \(bu 2
  249534. ebff9df5b2 fix pylint errors
  249535. .IP \(bu 2
  249536. c4954046ad unit tests for grains.append module function
  249537. .IP \(bu 2
  249538. 0c9a32326c use MagickMock
  249539. .IP \(bu 2
  249540. c838a22377 unit tests for grains.append module function
  249541. .UNINDENT
  249542. .IP \(bu 2
  249543. e96c5c5bf3 Merge pull request \fI\%#23474\fP from dr4Ke/fix_grains.append_nested
  249544. .INDENT 2.0
  249545. .IP \(bu 2
  249546. a01a5bb51e grains.get, parameter delimititer, versionadded: 2014.7.6
  249547. .IP \(bu 2
  249548. b39f50475d remove debugging output
  249549. .IP \(bu 2
  249550. b6e15e295c fix grains.append in nested dictionnary grains \fI\%#23411\fP
  249551. .UNINDENT
  249552. .IP \(bu 2
  249553. ab7e1aed8e Merge pull request \fI\%#23537\fP from t0rrant/patch\-1
  249554. .INDENT 2.0
  249555. .IP \(bu 2
  249556. 8e03cc99d3 Update changelog
  249557. .UNINDENT
  249558. .UNINDENT
  249559. .UNINDENT
  249560. .IP \(bu 2
  249561. \fBPR\fP \fI\%#23669\fP: (\fI\%rallytime\fP) Backport \fI\%#23586\fP to 2015.5
  249562. @ \fI2015\-05\-13 18:27:11 UTC\fP
  249563. .INDENT 2.0
  249564. .IP \(bu 2
  249565. \fBPR\fP \fI\%#23586\fP: (\fI\%Lothiraldan\fP) Fix salt.state.file._unify_sources_and_hashes when sources is used without sources_hashes (refs: \fI\%#23669\fP)
  249566. .IP \(bu 2
  249567. 0dad6be0fc Merge pull request \fI\%#23669\fP from rallytime/bp\-23586
  249568. .IP \(bu 2
  249569. ef4c6adae3 Remove another unused import
  249570. .IP \(bu 2
  249571. 73cfda751a Remove unused import
  249572. .IP \(bu 2
  249573. 52b68d695a Use the zip_longest from six module for python 3 compatiblity
  249574. .IP \(bu 2
  249575. 18d5ff9a8e Fix salt.state.file._unify_sources_and_hashes when sources is used without sources_hashes
  249576. .UNINDENT
  249577. .IP \(bu 2
  249578. \fBPR\fP \fI\%#23662\fP: (\fI\%rallytime\fP) Merge \fI\%#23642\fP with pylint fix
  249579. @ \fI2015\-05\-13 15:46:51 UTC\fP
  249580. .INDENT 2.0
  249581. .IP \(bu 2
  249582. \fBPR\fP \fI\%#23642\fP: (\fI\%cachedout\fP) Let saltmod handle lower\-level exceptions gracefully (refs: \fI\%#23662\fP)
  249583. .IP \(bu 2
  249584. fabef759e0 Merge pull request \fI\%#23662\fP from rallytime/merge\-23642
  249585. .IP \(bu 2
  249586. aa7bbd84fa Remove unused import
  249587. .IP \(bu 2
  249588. 9e66d4c88e Let saltmod handle lower\-level exceptions gracefully
  249589. .UNINDENT
  249590. .IP \(bu 2
  249591. \fBPR\fP \fI\%#23622\fP: (\fI\%jfindlay\fP) merge \fI\%#23508\fP
  249592. @ \fI2015\-05\-13 15:36:49 UTC\fP
  249593. .INDENT 2.0
  249594. .IP \(bu 2
  249595. \fBPR\fP \fI\%#23508\fP: (\fI\%cro\fP) Port mysql returner to postgres using jsonb datatype (refs: \fI\%#23622\fP)
  249596. .IP \(bu 2
  249597. 072b92733d Merge pull request \fI\%#23622\fP from jfindlay/pgjsonb
  249598. .IP \(bu 2
  249599. 454322c7e4 appease pylint\(aqs proscription on blank line excess
  249600. .IP \(bu 2
  249601. 57c617136d Get time with timezone correct also in job return.
  249602. .IP \(bu 2
  249603. e109d0f643 Get time with timezone correct.
  249604. .IP \(bu 2
  249605. 21e06b9112 Fix SQL, remove unneeded imports.
  249606. .IP \(bu 2
  249607. 653f360723 Stop making changes in 2 places.
  249608. .IP \(bu 2
  249609. d6daaa0292 Typo.
  249610. .IP \(bu 2
  249611. 7d748bff75 SSL is handled differently by Pg, so don\(aqt set it here.
  249612. .IP \(bu 2
  249613. cc7c377bcd Fill alter_time field in salt_events with current time with timezone.
  249614. .IP \(bu 2
  249615. 43defe9b20 Port mysql module to Postgres using jsonb datatypes
  249616. .UNINDENT
  249617. .IP \(bu 2
  249618. \fBPR\fP \fI\%#23651\fP: (\fI\%jayeshka\fP) adding solr unit test case
  249619. @ \fI2015\-05\-13 15:26:15 UTC\fP
  249620. .INDENT 2.0
  249621. .IP \(bu 2
  249622. c1bdd4d377 Merge pull request \fI\%#23651\fP from jayeshka/solr\-unit\-test
  249623. .IP \(bu 2
  249624. 6e05148962 adding solr unit test case
  249625. .UNINDENT
  249626. .IP \(bu 2
  249627. \fBPR\fP \fI\%#23649\fP: (\fI\%jayeshka\fP) adding states/libvirt unit test case
  249628. @ \fI2015\-05\-13 15:24:48 UTC\fP
  249629. .INDENT 2.0
  249630. .IP \(bu 2
  249631. ee43411677 Merge pull request \fI\%#23649\fP from jayeshka/libvirt_states\-unit\-test
  249632. .IP \(bu 2
  249633. 0fb923a283 adding states/libvirt unit test case
  249634. .UNINDENT
  249635. .IP \(bu 2
  249636. \fBPR\fP \fI\%#23648\fP: (\fI\%jayeshka\fP) adding states/linux_acl unit test case
  249637. @ \fI2015\-05\-13 15:24:11 UTC\fP
  249638. .INDENT 2.0
  249639. .IP \(bu 2
  249640. c7fc466f1e Merge pull request \fI\%#23648\fP from jayeshka/linux_acl_states\-unit\-test
  249641. .IP \(bu 2
  249642. 3f0ab29eb0 removed error.
  249643. .IP \(bu 2
  249644. 11081c121c adding states/linux_acl unit test case
  249645. .UNINDENT
  249646. .IP \(bu 2
  249647. \fBPR\fP \fI\%#23650\fP: (\fI\%jayeshka\fP) adding states/kmod unit test case
  249648. @ \fI2015\-05\-13 15:09:18 UTC\fP
  249649. .INDENT 2.0
  249650. .IP \(bu 2
  249651. 4cba7ba35c Merge pull request \fI\%#23650\fP from jayeshka/kmod_states\-unit\-test
  249652. .IP \(bu 2
  249653. 1987015033 adding states/kmod unit test case
  249654. .UNINDENT
  249655. .IP \(bu 2
  249656. \fBPR\fP \fI\%#23633\fP: (\fI\%jayeshka\fP) made changes to test_interfaces function.
  249657. @ \fI2015\-05\-13 06:51:07 UTC\fP
  249658. .INDENT 2.0
  249659. .IP \(bu 2
  249660. bc8faf1543 Merge pull request \fI\%#23633\fP from jayeshka/win_network\-2015.5\-unit\-test
  249661. .IP \(bu 2
  249662. 0936e1d386 made changes to test_interfaces function.
  249663. .UNINDENT
  249664. .IP \(bu 2
  249665. \fBPR\fP \fI\%#23619\fP: (\fI\%jfindlay\fP) fix kmod.present processing of module loading
  249666. @ \fI2015\-05\-13 01:16:56 UTC\fP
  249667. .INDENT 2.0
  249668. .IP \(bu 2
  249669. 7df3579bbc Merge pull request \fI\%#23619\fP from jfindlay/fix_kmod_state
  249670. .IP \(bu 2
  249671. 73facbfc1f fix kmod.present processing of module loading
  249672. .UNINDENT
  249673. .IP \(bu 2
  249674. \fBPR\fP \fI\%#23598\fP: (\fI\%rahulhan\fP) Adding states/win_dns_client.py unit tests
  249675. @ \fI2015\-05\-12 21:47:36 UTC\fP
  249676. .INDENT 2.0
  249677. .IP \(bu 2
  249678. d4f30955fa Merge pull request \fI\%#23598\fP from rahulhan/states_win_dns_client_unit_test
  249679. .IP \(bu 2
  249680. d08d885828 Adding states/win_dns_client.py unit tests
  249681. .UNINDENT
  249682. .IP \(bu 2
  249683. \fBPR\fP \fI\%#23597\fP: (\fI\%rahulhan\fP) Adding states/vbox_guest.py unit tests
  249684. @ \fI2015\-05\-12 21:46:30 UTC\fP
  249685. .INDENT 2.0
  249686. .IP \(bu 2
  249687. 811c6a1d89 Merge pull request \fI\%#23597\fP from rahulhan/states_vbox_guest_unit_test
  249688. .IP \(bu 2
  249689. 6a2909eeea Removed errors
  249690. .IP \(bu 2
  249691. 4cde78a58a Adding states/vbox_guest.py unit tests
  249692. .UNINDENT
  249693. .IP \(bu 2
  249694. \fBPR\fP \fI\%#23615\fP: (\fI\%rallytime\fP) Backport \fI\%#23577\fP to 2015.5
  249695. @ \fI2015\-05\-12 21:19:11 UTC\fP
  249696. .INDENT 2.0
  249697. .IP \(bu 2
  249698. \fBPR\fP \fI\%#23577\fP: (\fI\%msciciel\fP) Fix find and remove functions to pass database param (refs: \fI\%#23615\fP)
  249699. .IP \(bu 2
  249700. 029ff1103d Merge pull request \fI\%#23615\fP from rallytime/bp\-23577
  249701. .IP \(bu 2
  249702. 6f74477129 Fix find and remove functions to pass database param
  249703. .UNINDENT
  249704. .IP \(bu 2
  249705. \fBPR\fP \fI\%#23603\fP: (\fI\%rahulhan\fP) Adding states/winrepo.py unit tests
  249706. @ \fI2015\-05\-12 18:40:12 UTC\fP
  249707. .INDENT 2.0
  249708. .IP \(bu 2
  249709. b8589532d1 Merge pull request \fI\%#23603\fP from rahulhan/states_winrepo_unit_test
  249710. .IP \(bu 2
  249711. a66e7e7f1f Adding states/winrepo.py unit tests
  249712. .UNINDENT
  249713. .IP \(bu 2
  249714. \fBPR\fP \fI\%#23602\fP: (\fI\%rahulhan\fP) Adding states/win_path.py unit tests
  249715. @ \fI2015\-05\-12 18:39:37 UTC\fP
  249716. .INDENT 2.0
  249717. .IP \(bu 2
  249718. 3cbbd6d277 Merge pull request \fI\%#23602\fP from rahulhan/states_win_path_unit_test
  249719. .IP \(bu 2
  249720. 122c29f71a Adding states/win_path.py unit tests
  249721. .UNINDENT
  249722. .IP \(bu 2
  249723. \fBPR\fP \fI\%#23600\fP: (\fI\%rahulhan\fP) Adding states/win_network.py unit tests
  249724. @ \fI2015\-05\-12 18:39:01 UTC\fP
  249725. .INDENT 2.0
  249726. .IP \(bu 2
  249727. 3c904e8739 Merge pull request \fI\%#23600\fP from rahulhan/states_win_network_unit_test
  249728. .IP \(bu 2
  249729. b418404eb7 removed lint error
  249730. .IP \(bu 2
  249731. 1be802300b Adding states/win_network.py unit tests
  249732. .UNINDENT
  249733. .IP \(bu 2
  249734. \fBPR\fP \fI\%#23599\fP: (\fI\%rahulhan\fP) Adding win_firewall.py unit tests
  249735. @ \fI2015\-05\-12 18:37:49 UTC\fP
  249736. .INDENT 2.0
  249737. .IP \(bu 2
  249738. 10243a7742 Merge pull request \fI\%#23599\fP from rahulhan/states_win_firewall_unit_test
  249739. .IP \(bu 2
  249740. 6cda890517 Adding win_firewall.py unit tests
  249741. .UNINDENT
  249742. .IP \(bu 2
  249743. \fBPR\fP \fI\%#23601\fP: (\fI\%basepi\fP) Add versionadded for jboss module/state
  249744. @ \fI2015\-05\-12 17:22:59 UTC\fP
  249745. .INDENT 2.0
  249746. .IP \(bu 2
  249747. e73071dbdf Merge pull request \fI\%#23601\fP from basepi/jboss.version.added
  249748. .IP \(bu 2
  249749. 0174c8fe58 Add versionadded for jboss module/state
  249750. .UNINDENT
  249751. .IP \(bu 2
  249752. \fBPR\fP \fI\%#23469\fP: (\fI\%s0undt3ch\fP) Call the windows specific function not the general one
  249753. @ \fI2015\-05\-12 16:47:22 UTC\fP
  249754. .INDENT 2.0
  249755. .IP \(bu 2
  249756. 9beb7bc529 Merge pull request \fI\%#23469\fP from s0undt3ch/hotfix/call\-the\-win\-func
  249757. .IP \(bu 2
  249758. 83e88a3eb1 Call the windows specific function not the general one
  249759. .UNINDENT
  249760. .IP \(bu 2
  249761. \fBPR\fP \fI\%#23583\fP: (\fI\%jayeshka\fP) adding states/ipset unit test case
  249762. @ \fI2015\-05\-12 16:31:55 UTC\fP
  249763. .INDENT 2.0
  249764. .IP \(bu 2
  249765. d2f097584c Merge pull request \fI\%#23583\fP from jayeshka/ipset_states\-unit\-test
  249766. .IP \(bu 2
  249767. 4330cf4a6e adding states/ipset unit test case
  249768. .UNINDENT
  249769. .IP \(bu 2
  249770. \fBPR\fP \fI\%#23582\fP: (\fI\%jayeshka\fP) adding states/keyboard unit test case
  249771. @ \fI2015\-05\-12 16:31:17 UTC\fP
  249772. .INDENT 2.0
  249773. .IP \(bu 2
  249774. 82a47e8cbf Merge pull request \fI\%#23582\fP from jayeshka/keyboard_states\-unit\-test
  249775. .IP \(bu 2
  249776. fa94d7ab5c adding states/keyboard unit test case
  249777. .UNINDENT
  249778. .IP \(bu 2
  249779. \fBPR\fP \fI\%#23581\fP: (\fI\%jayeshka\fP) adding states/layman unit test case
  249780. @ \fI2015\-05\-12 16:30:36 UTC\fP
  249781. .INDENT 2.0
  249782. .IP \(bu 2
  249783. 77e5b28566 Merge pull request \fI\%#23581\fP from jayeshka/layman_states\-unit\-test
  249784. .IP \(bu 2
  249785. 297b055b1c adding states/layman unit test case
  249786. .UNINDENT
  249787. .IP \(bu 2
  249788. \fBPR\fP \fI\%#23580\fP: (\fI\%jayeshka\fP) adding smf unit test case
  249789. @ \fI2015\-05\-12 16:29:58 UTC\fP
  249790. .INDENT 2.0
  249791. .IP \(bu 2
  249792. cbe32828ef Merge pull request \fI\%#23580\fP from jayeshka/smf\-unit\-test
  249793. .IP \(bu 2
  249794. 4f9719157b adding smf unit test case
  249795. .UNINDENT
  249796. .IP \(bu 2
  249797. \fBISSUE\fP \fI\%#21603\fP: (\fI\%ipmb\fP) ssh_auth.present fails on key without comment (refs: \fI\%#23572\fP)
  249798. .IP \(bu 2
  249799. \fBPR\fP \fI\%#23572\fP: (\fI\%The\-Loeki\fP) Fix regression of \fI\%#21355\fP introduced by \fI\%#21603\fP
  249800. @ \fI2015\-05\-12 16:28:05 UTC\fP
  249801. .INDENT 2.0
  249802. .IP \(bu 2
  249803. \fBPR\fP \fI\%#21355\fP: (\fI\%The\-Loeki\fP) Fix for comments containing whitespaces (refs: \fI\%#23572\fP)
  249804. .IP \(bu 2
  249805. 16a333832a Merge pull request \fI\%#23572\fP from The\-Loeki/ssh_auth_fix
  249806. .IP \(bu 2
  249807. d8248dd368 Fix regression of \fI\%#21355\fP introduced by \fI\%#21603\fP
  249808. .UNINDENT
  249809. .IP \(bu 2
  249810. \fBISSUE\fP \fI\%#23490\fP: (\fI\%lichtamberg\fP) salt.modules.aptpkg.upgrade should have default "dist_upgrade=False" (refs: \fI\%#23565\fP)
  249811. .IP \(bu 2
  249812. \fBPR\fP \fI\%#23565\fP: (\fI\%garethgreenaway\fP) fix to aptpkg module
  249813. @ \fI2015\-05\-12 16:25:46 UTC\fP
  249814. .INDENT 2.0
  249815. .IP \(bu 2
  249816. f843f89cd7 Merge pull request \fI\%#23565\fP from garethgreenaway/2015_2_aptpkg_upgrade_default_to_upgrade
  249817. .IP \(bu 2
  249818. 97ae514641 aptpkg.upgrade should default to upgrade instead of dist_upgrade.
  249819. .UNINDENT
  249820. .IP \(bu 2
  249821. \fBISSUE\fP \fI\%#23473\fP: (\fI\%terminalmage\fP) unit.modules.rh_ip_test.RhipTestCase.test_build_bond is not properly mocked (refs: \fI\%#23550\fP)
  249822. .IP \(bu 2
  249823. \fBPR\fP \fI\%#23550\fP: (\fI\%jfindlay\fP) additional mock for rh_ip_test test_build_bond
  249824. @ \fI2015\-05\-12 15:17:16 UTC\fP
  249825. .INDENT 2.0
  249826. .IP \(bu 2
  249827. c1157cdaee Merge pull request \fI\%#23550\fP from jfindlay/fix_rh_ip_test
  249828. .IP \(bu 2
  249829. e9b94d36d3 additional mock for rh_ip_test test_build_bond
  249830. .UNINDENT
  249831. .IP \(bu 2
  249832. \fBPR\fP \fI\%#23552\fP: (\fI\%garethgreenaway\fP) Fix for an issue caused by a previous pull request
  249833. @ \fI2015\-05\-11 21:54:59 UTC\fP
  249834. .INDENT 2.0
  249835. .IP \(bu 2
  249836. b593328176 Merge pull request \fI\%#23552\fP from garethgreenaway/2015_5_returner_fix_broken_previous_pr
  249837. .IP \(bu 2
  249838. 7d70e2b334 Passed argumentes in the call _fetch_profile_opts to were in the wrong order
  249839. .UNINDENT
  249840. .IP \(bu 2
  249841. \fBPR\fP \fI\%#23547\fP: (\fI\%slinu3d\fP) Added AWS v4 signature support for 2015.5
  249842. @ \fI2015\-05\-11 21:52:24 UTC\fP
  249843. .INDENT 2.0
  249844. .IP \(bu 2
  249845. d0f96825dd Merge pull request \fI\%#23547\fP from slinu3d/2015.5
  249846. .IP \(bu 2
  249847. f3bfdb561b Fixed urlparse and urlencode calls
  249848. .IP \(bu 2
  249849. 802dbdb965 Added AWS v4 signature support for 2015.5
  249850. .UNINDENT
  249851. .IP \(bu 2
  249852. \fBPR\fP \fI\%#23544\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  249853. @ \fI2015\-05\-11 18:02:06 UTC\fP
  249854. .INDENT 2.0
  249855. .IP \(bu 2
  249856. 06c6a1f44a Merge pull request \fI\%#23544\fP from basepi/merge\-forward\-2015.5
  249857. .IP \(bu 2
  249858. f8a36bc155 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  249859. .INDENT 2.0
  249860. .IP \(bu 2
  249861. b79fed3a92 Merge pull request \fI\%#23538\fP from cro/licupdate
  249862. .INDENT 2.0
  249863. .IP \(bu 2
  249864. 345efe25c9 Update date in LICENSE file
  249865. .UNINDENT
  249866. .IP \(bu 2
  249867. a123a36f05 Merge pull request \fI\%#23505\fP from aneeshusa/remove\-unused\-ssh\-config\-validator
  249868. .INDENT 2.0
  249869. .IP \(bu 2
  249870. 90af1672ca Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  249871. .UNINDENT
  249872. .IP \(bu 2
  249873. ca2c21a63c Merge pull request \fI\%#23467\fP from slinu3d/2014.7
  249874. .INDENT 2.0
  249875. .IP \(bu 2
  249876. 0b4081d8f4 Fixed pylint error at line 363
  249877. .IP \(bu 2
  249878. 5be5eb5b14 Fixed pylink errors
  249879. .IP \(bu 2
  249880. e64f374ffa Fixed lint errors
  249881. .IP \(bu 2
  249882. b9d1ac4f1f Added AWS v4 signature support
  249883. .UNINDENT
  249884. .IP \(bu 2
  249885. e6f9eec02e Merge pull request \fI\%#23444\fP from techhat/novacreateattach
  249886. .INDENT 2.0
  249887. .IP \(bu 2
  249888. ebdb7eae2d Add create_attach_volume to nova driver
  249889. .UNINDENT
  249890. .IP \(bu 2
  249891. e331463319 Merge pull request \fI\%#23460\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  249892. .INDENT 2.0
  249893. .IP \(bu 2
  249894. edcd0c41f2 Update to latest stable bootstrap script v2015.05.07
  249895. .UNINDENT
  249896. .IP \(bu 2
  249897. 7a8ce1a954 Merge pull request \fI\%#23439\fP from techhat/maxtries
  249898. .INDENT 2.0
  249899. .IP \(bu 2
  249900. 0ad3ff2c88 Add wait_for_passwd_maxtries variable
  249901. .UNINDENT
  249902. .UNINDENT
  249903. .UNINDENT
  249904. .IP \(bu 2
  249905. \fBISSUE\fP \fI\%#23426\fP: (\fI\%twangboy\fP) Can\(aqt restart salt\-minion on 64 bit windows (2015.5.0) (refs: \fI\%#23470\fP)
  249906. .IP \(bu 2
  249907. \fBPR\fP \fI\%#23470\fP: (\fI\%twangboy\fP) Fixed service.restart for salt\-minion
  249908. @ \fI2015\-05\-11 17:54:47 UTC\fP
  249909. .INDENT 2.0
  249910. .IP \(bu 2
  249911. aa5b896d3e Merge pull request \fI\%#23470\fP from twangboy/fix_svc_restart
  249912. .IP \(bu 2
  249913. b3f284c517 Fixed tests
  249914. .IP \(bu 2
  249915. ad44d79f26 Fixed service.restart for salt\-minion
  249916. .UNINDENT
  249917. .IP \(bu 2
  249918. \fBPR\fP \fI\%#23539\fP: (\fI\%rahulhan\fP) Adding states/virtualenv_mod.py unit tests
  249919. @ \fI2015\-05\-11 17:02:31 UTC\fP
  249920. .INDENT 2.0
  249921. .IP \(bu 2
  249922. 67988b21ee Merge pull request \fI\%#23539\fP from rahulhan/states_virtualenv_mod_unit_test
  249923. .IP \(bu 2
  249924. 750bb07d1c Adding states/virtualenv_mod.py unit tests
  249925. .IP \(bu 2
  249926. c96619653e Merge pull request \fI\%#23423\fP from cachedout/remove_jid_event_from_orch
  249927. .INDENT 2.0
  249928. .IP \(bu 2
  249929. f81aab7627 Remove jid_event from state.orch
  249930. .UNINDENT
  249931. .IP \(bu 2
  249932. 2bb09b7ee7 Merge pull request \fI\%#23509\fP from keesbos/Catch_empty_environment
  249933. .INDENT 2.0
  249934. .IP \(bu 2
  249935. 6dedeaccd2 Catch the unset (empty/None) environment case
  249936. .UNINDENT
  249937. .IP \(bu 2
  249938. 6d42f30271 Merge pull request \fI\%#23245\fP from freimer/issue_23244
  249939. .INDENT 2.0
  249940. .IP \(bu 2
  249941. 24cf6ebad5 Add Caller functionality to reactors.
  249942. .UNINDENT
  249943. .UNINDENT
  249944. .IP \(bu 2
  249945. \fBPR\fP \fI\%#23513\fP: (\fI\%gladiatr72\fP) short\-circuit auto\-failure of iptables.delete state
  249946. @ \fI2015\-05\-11 15:18:33 UTC\fP
  249947. .INDENT 2.0
  249948. .IP \(bu 2
  249949. c3f03d827d Merge pull request \fI\%#23513\fP from gladiatr72/RFC_stop_iptables.check_from_short\-circuiting_position\-only_delete_rule
  249950. .IP \(bu 2
  249951. c71714c364 short\-circuit auto\-failure of iptables.delete state if position argument is set without the other accoutrements that check_rule requires.
  249952. .UNINDENT
  249953. .IP \(bu 2
  249954. \fBPR\fP \fI\%#23534\fP: (\fI\%jayeshka\fP) adding states/ini_manage unit test case
  249955. @ \fI2015\-05\-11 14:32:06 UTC\fP
  249956. .INDENT 2.0
  249957. .IP \(bu 2
  249958. 4e77f6f8c4 Merge pull request \fI\%#23534\fP from jayeshka/ini_manage_states\-unit\-test
  249959. .IP \(bu 2
  249960. 831223c31c adding states/ini_manage unit test case
  249961. .UNINDENT
  249962. .IP \(bu 2
  249963. \fBPR\fP \fI\%#23533\fP: (\fI\%jayeshka\fP) adding states/hipchat unit test case
  249964. @ \fI2015\-05\-11 14:30:22 UTC\fP
  249965. .INDENT 2.0
  249966. .IP \(bu 2
  249967. 11ba9ed99b Merge pull request \fI\%#23533\fP from jayeshka/hipchat\-states\-unit\-test
  249968. .IP \(bu 2
  249969. 41d14b322d adding states/hipchat unit test case
  249970. .UNINDENT
  249971. .IP \(bu 2
  249972. \fBPR\fP \fI\%#23532\fP: (\fI\%jayeshka\fP) adding states/ipmi unit test case
  249973. @ \fI2015\-05\-11 14:28:15 UTC\fP
  249974. .INDENT 2.0
  249975. .IP \(bu 2
  249976. e5421139d3 Merge pull request \fI\%#23532\fP from jayeshka/ipmi\-states\-unit\-test
  249977. .IP \(bu 2
  249978. fc3e64a8a4 adding states/ipmi unit test case
  249979. .UNINDENT
  249980. .IP \(bu 2
  249981. \fBPR\fP \fI\%#23531\fP: (\fI\%jayeshka\fP) adding service unit test case
  249982. @ \fI2015\-05\-11 14:27:12 UTC\fP
  249983. .INDENT 2.0
  249984. .IP \(bu 2
  249985. 9ba85fd31a Merge pull request \fI\%#23531\fP from jayeshka/service\-unit\-test
  249986. .IP \(bu 2
  249987. 3ad5314ee0 adding service unit test case
  249988. .UNINDENT
  249989. .IP \(bu 2
  249990. \fBISSUE\fP \fI\%#23512\fP: (\fI\%mostafahussein\fP) hipchat_returner / slack_returner not work correctly (refs: \fI\%#23517\fP)
  249991. .IP \(bu 2
  249992. \fBPR\fP \fI\%#23517\fP: (\fI\%garethgreenaway\fP) fix to returners
  249993. @ \fI2015\-05\-11 14:20:51 UTC\fP
  249994. .INDENT 2.0
  249995. .IP \(bu 2
  249996. 32838cd888 Merge pull request \fI\%#23517\fP from garethgreenaway/23512_2015_5_returners_with_profiles
  249997. .IP \(bu 2
  249998. 81e31e27cf fix for returners that utilize profile attributes. code in the if else statement was backwards. \fI\%#23512\fP
  249999. .UNINDENT
  250000. .IP \(bu 2
  250001. \fBPR\fP \fI\%#23502\fP: (\fI\%rahulhan\fP) Adding states/win_servermanager.py unit tests
  250002. @ \fI2015\-05\-08 19:47:18 UTC\fP
  250003. .INDENT 2.0
  250004. .IP \(bu 2
  250005. 6be7d8d13b Merge pull request \fI\%#23502\fP from rahulhan/states_win_servermanager_unit_test
  250006. .IP \(bu 2
  250007. 2490074aa2 Adding states/win_servermanager.py unit tests
  250008. .UNINDENT
  250009. .IP \(bu 2
  250010. \fBPR\fP \fI\%#23495\fP: (\fI\%jayeshka\fP) adding seed unit test case
  250011. @ \fI2015\-05\-08 17:30:38 UTC\fP
  250012. .INDENT 2.0
  250013. .IP \(bu 2
  250014. 604857811e Merge pull request \fI\%#23495\fP from jayeshka/seed\-unit\-test
  250015. .IP \(bu 2
  250016. 3f134bc573 adding seed unit test case
  250017. .UNINDENT
  250018. .IP \(bu 2
  250019. \fBPR\fP \fI\%#23494\fP: (\fI\%jayeshka\fP) adding sensors unit test case
  250020. @ \fI2015\-05\-08 17:30:18 UTC\fP
  250021. .INDENT 2.0
  250022. .IP \(bu 2
  250023. 70bc3c1415 Merge pull request \fI\%#23494\fP from jayeshka/sensors\-unit\-test
  250024. .IP \(bu 2
  250025. 1fb48a31a8 adding sensors unit test case
  250026. .UNINDENT
  250027. .IP \(bu 2
  250028. \fBPR\fP \fI\%#23493\fP: (\fI\%jayeshka\fP) adding states/incron unit test case
  250029. @ \fI2015\-05\-08 17:29:59 UTC\fP
  250030. .INDENT 2.0
  250031. .IP \(bu 2
  250032. b981b20d44 Merge pull request \fI\%#23493\fP from jayeshka/incron\-states\-unit\-test
  250033. .IP \(bu 2
  250034. cc7bc170f3 adding states/incron unit test case
  250035. .UNINDENT
  250036. .IP \(bu 2
  250037. \fBPR\fP \fI\%#23492\fP: (\fI\%jayeshka\fP) adding states/influxdb_database unit test case
  250038. @ \fI2015\-05\-08 17:29:51 UTC\fP
  250039. .INDENT 2.0
  250040. .IP \(bu 2
  250041. 4019c493a1 Merge pull request \fI\%#23492\fP from jayeshka/influxdb_database\-states\-unit\-test
  250042. .IP \(bu 2
  250043. e1fcac815d adding states/influxdb_database unit test case
  250044. .UNINDENT
  250045. .IP \(bu 2
  250046. \fBPR\fP \fI\%#23491\fP: (\fI\%jayeshka\fP) adding states/influxdb_user unit test case
  250047. @ \fI2015\-05\-08 16:24:07 UTC\fP
  250048. .INDENT 2.0
  250049. .IP \(bu 2
  250050. d317a77afb Merge pull request \fI\%#23491\fP from jayeshka/influxdb_user\-states\-unit\-test
  250051. .IP \(bu 2
  250052. 9d4043f9ff adding states/influxdb_user unit test case
  250053. .UNINDENT
  250054. .IP \(bu 2
  250055. \fBPR\fP \fI\%#23477\fP: (\fI\%galet\fP) LDAP auth: Escape filter value for group membership search
  250056. @ \fI2015\-05\-07 22:04:48 UTC\fP
  250057. .INDENT 2.0
  250058. .IP \(bu 2
  250059. e0b2a73eb4 Merge pull request \fI\%#23477\fP from galet/ldap\-filter\-escaping
  250060. .IP \(bu 2
  250061. 33038b9f86 LDAP auth: Escape filter value for group membership search
  250062. .UNINDENT
  250063. .IP \(bu 2
  250064. \fBPR\fP \fI\%#23476\fP: (\fI\%cachedout\fP) Lint becaon
  250065. @ \fI2015\-05\-07 19:55:36 UTC\fP
  250066. .INDENT 2.0
  250067. .IP \(bu 2
  250068. \fBPR\fP \fI\%#23431\fP: (\fI\%UtahDave\fP) Beacon fixes (refs: \fI\%#23476\fP)
  250069. .IP \(bu 2
  250070. e1719fe26b Merge pull request \fI\%#23476\fP from cachedout/lint_23431
  250071. .IP \(bu 2
  250072. 8d1ff209eb Lint becaon
  250073. .UNINDENT
  250074. .IP \(bu 2
  250075. \fBPR\fP \fI\%#23431\fP: (\fI\%UtahDave\fP) Beacon fixes (refs: \fI\%#23476\fP)
  250076. @ \fI2015\-05\-07 19:53:47 UTC\fP
  250077. .INDENT 2.0
  250078. .IP \(bu 2
  250079. 1e299ede4f Merge pull request \fI\%#23431\fP from UtahDave/beacon_fixes
  250080. .IP \(bu 2
  250081. 152f2235c2 remove unused import
  250082. .IP \(bu 2
  250083. 81198f9399 fix interval logic and example
  250084. .IP \(bu 2
  250085. 5504778adf update to proper examples
  250086. .IP \(bu 2
  250087. 6890439d58 fix list for mask
  250088. .IP \(bu 2
  250089. ee7b579e90 remove custom interval code.
  250090. .UNINDENT
  250091. .IP \(bu 2
  250092. \fBPR\fP \fI\%#23468\fP: (\fI\%rahulhan\fP) Adding states/win_system.py unit tests
  250093. @ \fI2015\-05\-07 19:20:50 UTC\fP
  250094. .INDENT 2.0
  250095. .IP \(bu 2
  250096. ea55c44bbb Merge pull request \fI\%#23468\fP from rahulhan/states_win_system_unit_test
  250097. .IP \(bu 2
  250098. 33f8c12e9f Adding states/win_system.py unit tests
  250099. .UNINDENT
  250100. .IP \(bu 2
  250101. \fBPR\fP \fI\%#23466\fP: (\fI\%UtahDave\fP) minor spelling fix
  250102. @ \fI2015\-05\-07 19:19:06 UTC\fP
  250103. .INDENT 2.0
  250104. .IP \(bu 2
  250105. e6e11147af Merge pull request \fI\%#23466\fP from UtahDave/2015.5local
  250106. .IP \(bu 2
  250107. b2c399a137 minor spelling fix
  250108. .UNINDENT
  250109. .IP \(bu 2
  250110. \fBISSUE\fP \fI\%#529\fP: (\fI\%rubic\fP) run salt in user space (refs: \fI\%#543\fP)
  250111. .INDENT 2.0
  250112. .IP \(bu 2
  250113. \fBPR\fP \fI\%saltstack/salt\-bootstrap#563\fP: (\fI\%notpeter\fP) Ubuntu alternate ppas (refs: \fI\%#23461\fP, \fI\%#23460\fP)
  250114. .IP \(bu 2
  250115. \fBPR\fP \fI\%#543\fP: (\fI\%rubic\fP) updated documentation for user, fixed configuration template links (refs: #\(gasaltstack/salt\-bootstrap#563\(ga_)
  250116. .UNINDENT
  250117. .IP \(bu 2
  250118. \fBPR\fP \fI\%#23461\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest stable bootstrap script v2015.05.07
  250119. @ \fI2015\-05\-07 19:16:18 UTC\fP
  250120. .INDENT 2.0
  250121. .IP \(bu 2
  250122. 4eeb1e627a Merge pull request \fI\%#23461\fP from s0undt3ch/hotfix/bootstrap\-script
  250123. .IP \(bu 2
  250124. 638c63d635 Update to latest stable bootstrap script v2015.05.07
  250125. .UNINDENT
  250126. .IP \(bu 2
  250127. \fBPR\fP \fI\%#23450\fP: (\fI\%jayeshka\fP) adding scsi unit test case
  250128. @ \fI2015\-05\-07 19:00:28 UTC\fP
  250129. .INDENT 2.0
  250130. .IP \(bu 2
  250131. 865127844a Merge pull request \fI\%#23450\fP from jayeshka/scsi\-unit\-test
  250132. .IP \(bu 2
  250133. e7269ff29b adding scsi unit test case
  250134. .UNINDENT
  250135. .IP \(bu 2
  250136. \fBPR\fP \fI\%#23449\fP: (\fI\%jayeshka\fP) adding s3 unit test case
  250137. @ \fI2015\-05\-07 18:59:45 UTC\fP
  250138. .INDENT 2.0
  250139. .IP \(bu 2
  250140. 8b374ae64d Merge pull request \fI\%#23449\fP from jayeshka/s3\-unit\-test
  250141. .IP \(bu 2
  250142. 85786bfe7f adding s3 unit test case
  250143. .UNINDENT
  250144. .IP \(bu 2
  250145. \fBPR\fP \fI\%#23448\fP: (\fI\%jayeshka\fP) adding states/keystone unit test case
  250146. @ \fI2015\-05\-07 18:58:59 UTC\fP
  250147. .INDENT 2.0
  250148. .IP \(bu 2
  250149. 49b431c8e4 Merge pull request \fI\%#23448\fP from jayeshka/keystone\-states\-unit\-test
  250150. .IP \(bu 2
  250151. a3050eb3e2 adding states/keystone unit test case
  250152. .UNINDENT
  250153. .IP \(bu 2
  250154. \fBPR\fP \fI\%#23447\fP: (\fI\%jayeshka\fP) adding states/grafana unit test case
  250155. @ \fI2015\-05\-07 18:58:20 UTC\fP
  250156. .INDENT 2.0
  250157. .IP \(bu 2
  250158. 23d7e7ef92 Merge pull request \fI\%#23447\fP from jayeshka/grafana\-states\-unit\-test
  250159. .IP \(bu 2
  250160. 7e90a4aaca adding states/grafana unit test case
  250161. .UNINDENT
  250162. .IP \(bu 2
  250163. \fBPR\fP \fI\%#23438\fP: (\fI\%techhat\fP) Gate requests import
  250164. @ \fI2015\-05\-07 07:22:58 UTC\fP
  250165. .INDENT 2.0
  250166. .IP \(bu 2
  250167. 1fd0bc2011 Merge pull request \fI\%#23438\fP from techhat/gaterequests
  250168. .IP \(bu 2
  250169. d5b15fc6ce Gate requests import
  250170. .UNINDENT
  250171. .IP \(bu 2
  250172. \fBPR\fP \fI\%#23429\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  250173. @ \fI2015\-05\-07 05:35:13 UTC\fP
  250174. .INDENT 2.0
  250175. .IP \(bu 2
  250176. 3c4f734332 Merge pull request \fI\%#23429\fP from basepi/merge\-forward\-2015.5
  250177. .IP \(bu 2
  250178. 7729834d92 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  250179. .IP \(bu 2
  250180. 644eb75fec Merge pull request \fI\%#23422\fP from cro/gce_sh_home
  250181. .INDENT 2.0
  250182. .IP \(bu 2
  250183. 4ef9e6ba06 Don\(aqt use $HOME to find user\(aqs directory, some shells don\(aqt set it
  250184. .UNINDENT
  250185. .IP \(bu 2
  250186. ef17ab4b2a Merge pull request \fI\%#23425\fP from basepi/functionwrapper_typo
  250187. .INDENT 2.0
  250188. .IP \(bu 2
  250189. c390737f3e Fix typo in FunctionWrapper
  250190. .UNINDENT
  250191. .IP \(bu 2
  250192. 1b13ec04c2 Merge pull request \fI\%#23385\fP from rallytime/bp\-23346
  250193. .INDENT 2.0
  250194. .IP \(bu 2
  250195. 9efc13c810 more linting fixes
  250196. .IP \(bu 2
  250197. cf131c9a5a cleaned up some pylint errors
  250198. .IP \(bu 2
  250199. f981699c75 added logic to sftp_file and file_map to allow folder uploads using file_map
  250200. .UNINDENT
  250201. .IP \(bu 2
  250202. f8c7a62089 Merge pull request \fI\%#23414\fP from jfindlay/update_branch
  250203. .INDENT 2.0
  250204. .IP \(bu 2
  250205. 8074d16d52 2015.2 \-> 2015.5
  250206. .UNINDENT
  250207. .IP \(bu 2
  250208. 54b3bd43e4 Merge pull request \fI\%#23404\fP from hvnsweeting/cherrypy\-post\-emptybody\-fix
  250209. .INDENT 2.0
  250210. .IP \(bu 2
  250211. f85f8f954c initialize var when POST body is empty
  250212. .UNINDENT
  250213. .IP \(bu 2
  250214. 160f703296 Merge pull request \fI\%#23409\fP from terminalmage/update\-lithium\-docstrings\-2014.7
  250215. .INDENT 2.0
  250216. .IP \(bu 2
  250217. bc97d011ba Fix sphinx typo
  250218. .IP \(bu 2
  250219. 20006b06f6 Update Lithium docstrings in 2014.7 branch
  250220. .UNINDENT
  250221. .IP \(bu 2
  250222. aa5fb0aa46 Merge pull request \fI\%#23397\fP from jfindlay/fix_locale_gen
  250223. .INDENT 2.0
  250224. .IP \(bu 2
  250225. 0941fefd2b add more flexible whitespace to locale_gen search
  250226. .UNINDENT
  250227. .UNINDENT
  250228. .IP \(bu 2
  250229. \fBPR\fP \fI\%#23396\fP: (\fI\%basepi\fP) [2015.2] Merge forward from 2014.7 to 2015.2
  250230. @ \fI2015\-05\-06 21:42:35 UTC\fP
  250231. .INDENT 2.0
  250232. .IP \(bu 2
  250233. 1fb84450f4 Merge pull request \fI\%#23396\fP from basepi/merge\-forward\-2015.2
  250234. .IP \(bu 2
  250235. 2766c8cb4b Fix typo in FunctionWrapper
  250236. .IP \(bu 2
  250237. fd09cdae6f Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.2
  250238. .INDENT 2.0
  250239. .IP \(bu 2
  250240. 0c76dd4d8a Merge pull request \fI\%#23368\fP from kaithar/bp\-23367
  250241. .INDENT 2.0
  250242. .IP \(bu 2
  250243. 577f41972e Pylint fix
  250244. .IP \(bu 2
  250245. 8d9acd1f89 Put the sed insert statement back in to the output.
  250246. .UNINDENT
  250247. .IP \(bu 2
  250248. 3493cc1fca Merge pull request \fI\%#23350\fP from lorengordon/file.replace_assume_line
  250249. .INDENT 2.0
  250250. .IP \(bu 2
  250251. b60e224beb Append/prepend: search for full line
  250252. .UNINDENT
  250253. .IP \(bu 2
  250254. 7be5c48ad5 Merge pull request \fI\%#23341\fP from cachedout/issue_23026
  250255. .INDENT 2.0
  250256. .IP \(bu 2
  250257. e98e65e787 Fix tests
  250258. .IP \(bu 2
  250259. 6011b437ca Fix syndic pid and logfile path
  250260. .UNINDENT
  250261. .IP \(bu 2
  250262. ea61abfa68 Merge pull request \fI\%#23272\fP from basepi/salt\-ssh.minion.config.19114
  250263. .INDENT 2.0
  250264. .IP \(bu 2
  250265. c223309bb7 Add versionadded
  250266. .IP \(bu 2
  250267. be7407feae Lint
  250268. .IP \(bu 2
  250269. c2c337567e Missing comma
  250270. .IP \(bu 2
  250271. 8e3e8e073a Pass the minion_opts through the FunctionWrapper
  250272. .IP \(bu 2
  250273. cb69cd07de Match the master config template in the master config reference
  250274. .IP \(bu 2
  250275. 87fc3161f9 Add Salt\-SSH section to master config template
  250276. .IP \(bu 2
  250277. 91dd9dcbdc Add ssh_minion_opts to master config ref
  250278. .IP \(bu 2
  250279. c273ea14c6 Add minion config to salt\-ssh doc
  250280. .IP \(bu 2
  250281. a0b6b760c3 Add minion_opts to roster docs
  250282. .IP \(bu 2
  250283. 5212c35260 Accept minion_opts from the target information
  250284. .IP \(bu 2
  250285. e2099b6e1b Process \fIssh_minion_opts\fP from master config
  250286. .IP \(bu 2
  250287. 3b64214377 Revert "Work around bug in salt\-ssh in config.get for gpg renderer"
  250288. .IP \(bu 2
  250289. 494953a208 Remove the strip (embracing multi\-line YAML dump)
  250290. .IP \(bu 2
  250291. fe87f0fe39 Dump multi\-line yaml into the SHIM
  250292. .IP \(bu 2
  250293. b751a7281c Inject local minion config into shim if available
  250294. .UNINDENT
  250295. .IP \(bu 2
  250296. 4f760dd9cb Merge pull request \fI\%#23347\fP from basepi/salt\-ssh.functionwrapper.contains.19114
  250297. .INDENT 2.0
  250298. .IP \(bu 2
  250299. 30595e3ff7 Backport FunctionWrapper.__contains__
  250300. .UNINDENT
  250301. .IP \(bu 2
  250302. 02658b1e60 Merge pull request \fI\%#23344\fP from cachedout/issue_22742
  250303. .INDENT 2.0
  250304. .IP \(bu 2
  250305. 5adc96ce7f Explicitely set file_client on master
  250306. .UNINDENT
  250307. .IP \(bu 2
  250308. ba7605d1cb Merge pull request \fI\%#23318\fP from cellscape/honor\-seed\-argument
  250309. .INDENT 2.0
  250310. .IP \(bu 2
  250311. 228b1be299 Honor seed argument in LXC container initializaton
  250312. .UNINDENT
  250313. .IP \(bu 2
  250314. 4ac4509c57 Merge pull request \fI\%#23307\fP from jfindlay/fix_locale_gen
  250315. .INDENT 2.0
  250316. .IP \(bu 2
  250317. 101199ac14 check for /etc/locale.gen
  250318. .UNINDENT
  250319. .IP \(bu 2
  250320. f790f42ed6 Merge pull request \fI\%#23324\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  250321. .IP \(bu 2
  250322. 6643e47ce5 Update to the latest stable release of the bootstrap script v2015.05.04
  250323. .UNINDENT
  250324. .UNINDENT
  250325. .IP \(bu 2
  250326. \fBPR\fP \fI\%#23412\fP: (\fI\%rahulhan\fP) Adding states/win_update.py unit tests
  250327. @ \fI2015\-05\-06 18:31:09 UTC\fP
  250328. .INDENT 2.0
  250329. .IP \(bu 2
  250330. b3c16720f6 Merge pull request \fI\%#23412\fP from rahulhan/states_win_update_unit_test
  250331. .IP \(bu 2
  250332. 9bc1519ee7 Removed unwanted imports
  250333. .IP \(bu 2
  250334. f12bfcf248 Adding states/win_update.py unit tests
  250335. .UNINDENT
  250336. .IP \(bu 2
  250337. \fBPR\fP \fI\%#23413\fP: (\fI\%terminalmage\fP) Update manpages for 2015.2 \-> 2015.5
  250338. @ \fI2015\-05\-06 17:12:57 UTC\fP
  250339. .INDENT 2.0
  250340. .IP \(bu 2
  250341. f2d7646a58 Merge pull request \fI\%#23413\fP from terminalmage/update\-manpages
  250342. .IP \(bu 2
  250343. 23fa4402dc Update manpages to reflect 2015.2 rename to 2015.5
  250344. .IP \(bu 2
  250345. 0fdaa73c84 Fix missed docstring updates from 2015.2 \-> 2015.5
  250346. .IP \(bu 2
  250347. 4fea5ba477 Add missing RST file
  250348. .UNINDENT
  250349. .IP \(bu 2
  250350. \fBPR\fP \fI\%#23410\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2015.2 branch
  250351. @ \fI2015\-05\-06 15:53:52 UTC\fP
  250352. .INDENT 2.0
  250353. .IP \(bu 2
  250354. \fBPR\fP \fI\%#23409\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2014.7 branch (refs: \fI\%#23410\fP)
  250355. .IP \(bu 2
  250356. bafbea7bc7 Merge pull request \fI\%#23410\fP from terminalmage/update\-lithium\-docstrings\-2015.2
  250357. .IP \(bu 2
  250358. d395565bf7 Update Lithium docstrings in 2015.2 branch
  250359. .UNINDENT
  250360. .IP \(bu 2
  250361. \fBPR\fP \fI\%#23407\fP: (\fI\%jayeshka\fP) adding rsync unit test case
  250362. @ \fI2015\-05\-06 15:52:23 UTC\fP
  250363. .INDENT 2.0
  250364. .IP \(bu 2
  250365. 02ef41a549 Merge pull request \fI\%#23407\fP from jayeshka/rsync\-unit\-test
  250366. .IP \(bu 2
  250367. a4dd836125 adding rsync unit test case
  250368. .UNINDENT
  250369. .IP \(bu 2
  250370. \fBPR\fP \fI\%#23406\fP: (\fI\%jayeshka\fP) adding states/lxc unit test case
  250371. @ \fI2015\-05\-06 15:51:50 UTC\fP
  250372. .INDENT 2.0
  250373. .IP \(bu 2
  250374. 58ec2a24c1 Merge pull request \fI\%#23406\fP from jayeshka/lxc\-states\-unit\-test
  250375. .IP \(bu 2
  250376. 32a0d03093 adding states/lxc unit test case
  250377. .UNINDENT
  250378. .IP \(bu 2
  250379. \fBPR\fP \fI\%#23395\fP: (\fI\%basepi\fP) [2015.2] Add note to 2015.2.0 release notes about master opts in pillar
  250380. @ \fI2015\-05\-05 22:15:20 UTC\fP
  250381. .INDENT 2.0
  250382. .IP \(bu 2
  250383. 8837d0038e Merge pull request \fI\%#23395\fP from basepi/2015.2.0masteropts
  250384. .IP \(bu 2
  250385. b261c95cd6 Add note to 2015.2.0 release notes about master opts in pillar
  250386. .UNINDENT
  250387. .IP \(bu 2
  250388. \fBPR\fP \fI\%#23393\fP: (\fI\%basepi\fP) [2015.2] Add warning about python_shell changes to 2015.2.0 release notes
  250389. @ \fI2015\-05\-05 22:12:46 UTC\fP
  250390. .INDENT 2.0
  250391. .IP \(bu 2
  250392. f79aed5fe1 Merge pull request \fI\%#23393\fP from basepi/2015.2.0python_shell
  250393. .IP \(bu 2
  250394. b2f033f485 Add CLI note
  250395. .IP \(bu 2
  250396. 48e7b3ee4f Add warning about python_shell changes to 2015.2.0 release notes
  250397. .UNINDENT
  250398. .IP \(bu 2
  250399. \fBPR\fP \fI\%#23380\fP: (\fI\%gladiatr72\fP) Fix for double output with static salt cli/v2015.2
  250400. @ \fI2015\-05\-05 21:44:28 UTC\fP
  250401. .INDENT 2.0
  250402. .IP \(bu 2
  250403. a9777761d8 Merge pull request \fI\%#23380\fP from gladiatr72/fix_for_double_output_with_static__salt_CLI/v2015.2
  250404. .IP \(bu 2
  250405. c47fdd79c7 Actually removed the \fBstatic\fP bits from below the else: fold this time.
  250406. .IP \(bu 2
  250407. 4ee367956c Fix for incorrect output with salt CLI \-\-static option
  250408. .UNINDENT
  250409. .IP \(bu 2
  250410. \fBPR\fP \fI\%#23379\fP: (\fI\%rahulhan\fP) Adding states/rabbitmq_cluster.py
  250411. @ \fI2015\-05\-05 21:44:06 UTC\fP
  250412. .INDENT 2.0
  250413. .IP \(bu 2
  250414. 5c9543c1d2 Merge pull request \fI\%#23379\fP from rahulhan/states_rabbitmq_cluster_test
  250415. .IP \(bu 2
  250416. 04c22d1acf Adding states/rabbitmq_cluster.py
  250417. .UNINDENT
  250418. .IP \(bu 2
  250419. \fBPR\fP \fI\%#23377\fP: (\fI\%rahulhan\fP) Adding states/xmpp.py unit tests
  250420. @ \fI2015\-05\-05 21:43:35 UTC\fP
  250421. .INDENT 2.0
  250422. .IP \(bu 2
  250423. 430f080a3a Merge pull request \fI\%#23377\fP from rahulhan/states_xmpp_test
  250424. .IP \(bu 2
  250425. 32923b53c3 Adding states/xmpp.py unit tests
  250426. .UNINDENT
  250427. .IP \(bu 2
  250428. \fBPR\fP \fI\%#23335\fP: (\fI\%steverweber\fP) 2015.2: include doc in master config for module_dirs
  250429. @ \fI2015\-05\-05 21:28:58 UTC\fP
  250430. .INDENT 2.0
  250431. .IP \(bu 2
  250432. 8c057e6794 Merge pull request \fI\%#23335\fP from steverweber/2015.2
  250433. .IP \(bu 2
  250434. 5e3bae95d8 help installing python pysphere lib
  250435. .IP \(bu 2
  250436. 97513b060a include module_dirs
  250437. .IP \(bu 2
  250438. 36b1c87dd2 include module_dirs
  250439. .UNINDENT
  250440. .IP \(bu 2
  250441. \fBPR\fP \fI\%#23362\fP: (\fI\%jayeshka\fP) adding states/zk_concurrency unit test case
  250442. @ \fI2015\-05\-05 15:50:06 UTC\fP
  250443. .INDENT 2.0
  250444. .IP \(bu 2
  250445. 1648253675 Merge pull request \fI\%#23362\fP from jayeshka/zk_concurrency\-states\-unit\-test
  250446. .IP \(bu 2
  250447. f60dda4b1d adding states/zk_concurrency unit test case
  250448. .UNINDENT
  250449. .IP \(bu 2
  250450. \fBPR\fP \fI\%#23363\fP: (\fI\%jayeshka\fP) adding riak unit test case
  250451. @ \fI2015\-05\-05 14:23:05 UTC\fP
  250452. .INDENT 2.0
  250453. .IP \(bu 2
  250454. 1cdaeed868 Merge pull request \fI\%#23363\fP from jayeshka/riak\-unit\-test
  250455. .IP \(bu 2
  250456. f9da6db459 adding riak unit test case
  250457. .UNINDENT
  250458. .UNINDENT
  250459. .SS Salt 2015.5.10 Release Notes
  250460. .INDENT 0.0
  250461. .TP
  250462. .B release
  250463. 2015\-03\-22
  250464. .UNINDENT
  250465. .sp
  250466. Version 2015.5.10 is a bugfix release for 2015.5.0\&.
  250467. .SS Security Fix
  250468. .sp
  250469. \fBCVE\-2016\-3176\fP Insecure configuration of PAM external authentication service
  250470. .sp
  250471. This issue affects all Salt versions prior to 2015.8.8/2015.5.10 when PAM
  250472. external authentication is enabled. This issue involves
  250473. passing an alternative PAM authentication service with a command that is sent
  250474. to LocalClient, enabling the attacker to bypass the
  250475. configured authentication service. Thank you to Dylan Frese <\fI\%dmfrese@gmail.com\fP>
  250476. for bringing this issue to our attention.
  250477. .sp
  250478. This update defines the PAM eAuth \fBservice\fP that users authenticate against
  250479. in the Salt Master configuration.
  250480. .sp
  250481. No additional fixes are included in this release.
  250482. .SS Read Before Upgrading Debian 8 (Jessie) from Salt Versions Earlier than 2015.5.9
  250483. .sp
  250484. Salt \fBsystemd\fP service files are missing the following statement in these versions:
  250485. .INDENT 0.0
  250486. .INDENT 3.5
  250487. .sp
  250488. .nf
  250489. .ft C
  250490. [Service]
  250491. KillMode=process
  250492. .ft P
  250493. .fi
  250494. .UNINDENT
  250495. .UNINDENT
  250496. .sp
  250497. This statement must be added to successfully upgrade on these earlier versions
  250498. of Salt.
  250499. .SS Changelog for v2015.5.9..v2015.5.10
  250500. .sp
  250501. \fIGenerated at: 2018\-05\-27 22:39:26 UTC\fP
  250502. .INDENT 0.0
  250503. .IP \(bu 2
  250504. 69ba1de71d Remove ability of authenticating user to specify pam service
  250505. .UNINDENT
  250506. .SS Salt 2015.5.11 Release Notes
  250507. .INDENT 0.0
  250508. .TP
  250509. .B release
  250510. 2015\-07\-22
  250511. .UNINDENT
  250512. .sp
  250513. Version 2015.5.11 is a bugfix release for 2015.5.0\&.
  250514. .SS Statistics
  250515. .INDENT 0.0
  250516. .IP \(bu 2
  250517. Total Merges: \fB101\fP
  250518. .IP \(bu 2
  250519. Total Issue References: \fB73\fP
  250520. .IP \(bu 2
  250521. Total PR References: \fB162\fP
  250522. .IP \(bu 2
  250523. Contributors: \fB46\fP (\fI\%AndrewPashkin\fP, \fI\%Ch3LL\fP, \fI\%DmitryKuzmenko\fP, \fI\%TheNullByte\fP, \fI\%UtahDave\fP, \fI\%abednarik\fP, \fI\%amontalban\fP, \fI\%anlutro\fP, \fI\%attiasr\fP, \fI\%basepi\fP, \fI\%borgstrom\fP, \fI\%brejoc\fP, \fI\%bstevenson\fP, \fI\%cachedout\fP, \fI\%carlwgeorge\fP, \fI\%efficks\fP, \fI\%gerhardqux\fP, \fI\%gtmanfred\fP, \fI\%heyfife\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%justinta\fP, \fI\%lomeroe\fP, \fI\%lorengordon\fP, \fI\%mtorromeo\fP, \fI\%nmadhok\fP, \fI\%notpeter\fP, \fI\%paclat\fP, \fI\%pcn\fP, \fI\%phistrom\fP, \fI\%rallytime\fP, \fI\%robgott\fP, \fI\%sacren\fP, \fI\%sastorsl\fP, \fI\%serge\-p\fP, \fI\%sjmh\fP, \fI\%sjorge\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%thegoodduke\fP, \fI\%toanju\fP, \fI\%tomwalsh\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP, \fI\%yannis666\fP)
  250524. .UNINDENT
  250525. .SS Changelog for v2015.5.10..v2015.5.11
  250526. .sp
  250527. \fIGenerated at: 2018\-05\-27 22:41:56 UTC\fP
  250528. .INDENT 0.0
  250529. .IP \(bu 2
  250530. \fBPR\fP \fI\%#33412\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  250531. .IP \(bu 2
  250532. \fBPR\fP \fI\%#33405\fP: (\fI\%rallytime\fP) Back\-port \fI\%#33386\fP to 2015.5
  250533. .IP \(bu 2
  250534. \fBPR\fP \fI\%#33386\fP: (\fI\%terminalmage\fP) Fix traceback in logging for config validation (refs: \fI\%#33405\fP)
  250535. .IP \(bu 2
  250536. \fBISSUE\fP \fI\%#33376\fP: (\fI\%tmehlinger\fP) pip state broken in 2015.8.9 with pip <6.0 (refs: \fI\%#33383\fP)
  250537. .IP \(bu 2
  250538. \fBPR\fP \fI\%#33383\fP: (\fI\%thatch45\fP) maintain the fallabck because I am totally sick of this crap
  250539. @ \fI2016\-05\-20 00:03:59 UTC\fP
  250540. .INDENT 2.0
  250541. .IP \(bu 2
  250542. d15f5e2cef Merge pull request \fI\%#33383\fP from thatch45/2015.5
  250543. .IP \(bu 2
  250544. f5ebcba21c restore whitespace
  250545. .IP \(bu 2
  250546. 1d8b289db1 blast, put the try/except int he right place
  250547. .IP \(bu 2
  250548. 081e6c5b83 maintain the fallabck because I am totally sick of this crap
  250549. .IP \(bu 2
  250550. \fBPR\fP \fI\%#33379\fP: (\fI\%cachedout\fP) Improve doc clarity for disable_modules documentation
  250551. .UNINDENT
  250552. .IP \(bu 2
  250553. \fBISSUE\fP \fI\%#26574\fP: (\fI\%jfindlay\fP) minion stacktrace on top file yaml syntax error (refs: \fI\%#33375\fP)
  250554. .INDENT 2.0
  250555. .IP \(bu 2
  250556. \fBPR\fP \fI\%#33375\fP: (\fI\%cachedout\fP) Better YAML syntax error handling
  250557. .UNINDENT
  250558. .IP \(bu 2
  250559. \fBPR\fP \fI\%#33372\fP: (\fI\%jacobhammons\fP) revved 2015.8 branch to .9 in version selector
  250560. @ \fI2016\-05\-19 20:05:35 UTC\fP
  250561. .INDENT 2.0
  250562. .IP \(bu 2
  250563. bb3e98cad2 Merge pull request \fI\%#33372\fP from jacobhammons/release\-update
  250564. .IP \(bu 2
  250565. 5ce502160b revved 2015.8 branch to .9 in version selector
  250566. .IP \(bu 2
  250567. \fBPR\fP \fI\%#33341\fP: (\fI\%phistrom\fP) Expanded documentation for boto_elb state and module
  250568. .UNINDENT
  250569. .IP \(bu 2
  250570. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#33286\fP, \fI\%#33292\fP, \fI\%#32538\fP, \fI\%#33287\fP, \fI\%#32454\fP, \fI\%#33282\fP)
  250571. .INDENT 2.0
  250572. .IP \(bu 2
  250573. \fBPR\fP \fI\%#33292\fP: (\fI\%rallytime\fP) Added some more docs for master and minion config settings
  250574. .UNINDENT
  250575. .IP \(bu 2
  250576. \fBISSUE\fP \fI\%#23643\fP: (\fI\%falzm\fP) Error in iptables module: argument \-\-match\-set: expected 2 argument(s) (refs: \fI\%#33301\fP)
  250577. .INDENT 2.0
  250578. .IP \(bu 2
  250579. \fBPR\fP \fI\%#33301\fP: (\fI\%gerhardqux\fP) Fix iptables \-\-match\-set (\fI\%#23643\fP)
  250580. .IP \(bu 2
  250581. \fBPR\fP \fI\%#33290\fP: (\fI\%UtahDave\fP) fix "loose" typo
  250582. .UNINDENT
  250583. .IP \(bu 2
  250584. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#33286\fP, \fI\%#33292\fP, \fI\%#32538\fP, \fI\%#33287\fP, \fI\%#32454\fP, \fI\%#33282\fP)
  250585. .INDENT 2.0
  250586. .IP \(bu 2
  250587. \fBPR\fP \fI\%#33287\fP: (\fI\%rallytime\fP) Add auth_tries config option to minion.rst docs
  250588. .IP \(bu 2
  250589. \fBPR\fP \fI\%#33286\fP: (\fI\%rallytime\fP) Document new master and minion config opts for 2016.3.0 (refs: \fI\%#33287\fP)
  250590. .UNINDENT
  250591. .IP \(bu 2
  250592. \fBISSUE\fP \fI\%#33276\fP: (\fI\%sjmh\fP) minion_id_caching has no documentation (refs: \fI\%#33282\fP)
  250593. .IP \(bu 2
  250594. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#33286\fP, \fI\%#33292\fP, \fI\%#32538\fP, \fI\%#33287\fP, \fI\%#32454\fP, \fI\%#33282\fP)
  250595. .INDENT 2.0
  250596. .IP \(bu 2
  250597. \fBPR\fP \fI\%#33282\fP: (\fI\%rallytime\fP) Document minion_id_caching config value
  250598. .UNINDENT
  250599. .IP \(bu 2
  250600. \fBISSUE\fP \fI\%#33118\fP: (\fI\%saltuser\fP) file.replace not working correctly on newer minions (refs: \fI\%#33137\fP)
  250601. .INDENT 2.0
  250602. .IP \(bu 2
  250603. \fBPR\fP \fI\%#33137\fP: (\fI\%lorengordon\fP) Clarify file.replace MULTILINE flag interaction with regex anchors
  250604. .IP \(bu 2
  250605. \fBPR\fP \fI\%#33236\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  250606. .UNINDENT
  250607. .IP \(bu 2
  250608. \fBISSUE\fP \fI\%#32250\fP: (\fI\%ikryten\fP) Cannot run salt\-minion as unprivileged user using \(aquser\(aq directive (refs: \fI\%#33211\fP)
  250609. .IP \(bu 2
  250610. \fBPR\fP \fI\%#33211\fP: (\fI\%cachedout\fP) Don\(aqt try to kill a parent proc if we can\(aqt
  250611. @ \fI2016\-05\-12 21:29:50 UTC\fP
  250612. .INDENT 2.0
  250613. .IP \(bu 2
  250614. 698f1eb657 Merge pull request \fI\%#33211\fP from cachedout/user_kill
  250615. .IP \(bu 2
  250616. d4f2e5baa7 Don\(aqt try to kill a parent proc if we can\(aqt
  250617. .UNINDENT
  250618. .IP \(bu 2
  250619. \fBISSUE\fP \fI\%#32198\fP: (\fI\%goatjam\fP) State \(aqpkg.installed\(aq was not found in SLS (refs: \fI\%#33205\fP)
  250620. .INDENT 2.0
  250621. .IP \(bu 2
  250622. \fBPR\fP \fI\%#33205\fP: (\fI\%cachedout\fP) Resolve issue with pkg module on Mint Linux
  250623. .IP \(bu 2
  250624. \fBPR\fP \fI\%#33178\fP: (\fI\%justinta\fP) Add pip installed and removed test
  250625. .IP \(bu 2
  250626. \fBPR\fP \fI\%#33197\fP: (\fI\%jfindlay\fP) update 2015.5.11 release notes
  250627. .IP \(bu 2
  250628. \fBPR\fP \fI\%#33181\fP: (\fI\%twangboy\fP) Fix file.managed for Windows
  250629. .IP \(bu 2
  250630. \fBPR\fP \fI\%#33185\fP: (\fI\%rallytime\fP) [2015.5] Update to latest bootstrap script v2016.05.11
  250631. .UNINDENT
  250632. .IP \(bu 2
  250633. \fBISSUE\fP \fI\%#33163\fP: (\fI\%jaybocc2\fP) Salt 2015.8.5 incompatible with Pip v8.1.2 (refs: \fI\%#33180\fP)
  250634. .INDENT 2.0
  250635. .IP \(bu 2
  250636. \fBPR\fP \fI\%#33180\fP: (\fI\%thatch45\fP) Pip fix
  250637. .IP \(bu 2
  250638. \fBPR\fP \fI\%#33160\fP: (\fI\%jfindlay\fP) add 2015.5.11 release notes
  250639. .IP \(bu 2
  250640. \fBPR\fP \fI\%#33155\fP: (\fI\%rallytime\fP) [2015.5] Update to latest bootstrap script v2016.05.10
  250641. .UNINDENT
  250642. .IP \(bu 2
  250643. \fBPR\fP \fI\%#33141\fP: (\fI\%justinta\fP) Skipping salt\-call \-\-local test
  250644. @ \fI2016\-05\-10 17:05:17 UTC\fP
  250645. .INDENT 2.0
  250646. .IP \(bu 2
  250647. 6cd1641840 Merge pull request \fI\%#33141\fP from jtand/disable_local_pkg_install_test
  250648. .IP \(bu 2
  250649. 8b1e34fb17 Skipping salt\-call \-\-local test
  250650. .UNINDENT
  250651. .IP \(bu 2
  250652. \fBISSUE\fP \fI\%#33085\fP: (\fI\%fmnisme\fP) salt doc err (refs: \fI\%#33132\fP)
  250653. .INDENT 2.0
  250654. .IP \(bu 2
  250655. \fBPR\fP \fI\%#33132\fP: (\fI\%whiteinge\fP) Doc mock decorators
  250656. .UNINDENT
  250657. .IP \(bu 2
  250658. \fBISSUE\fP \fI\%#33074\fP: (\fI\%robnagler\fP) Critical error in msgpack exposes pillar data (refs: \fI\%#33078\fP)
  250659. .INDENT 2.0
  250660. .IP \(bu 2
  250661. \fBPR\fP \fI\%#33078\fP: (\fI\%cachedout\fP) Lower display of msgpack failure msg to debug
  250662. .IP \(bu 2
  250663. \fBPR\fP \fI\%#33080\fP: (\fI\%justinta\fP) Use saltstack repo in buildpackage.py on CentOS 5
  250664. .IP \(bu 2
  250665. \fBPR\fP \fI\%#33025\fP: (\fI\%Ch3LL\fP) add test for installing package while using salt\-call \-\-local
  250666. .IP \(bu 2
  250667. \fBPR\fP \fI\%#33055\fP: (\fI\%justinta\fP) File and User test fixes for 2015.5 on Fedora23
  250668. .IP \(bu 2
  250669. \fBPR\fP \fI\%#33060\fP: (\fI\%Ch3LL\fP) Test pillar.items output
  250670. .IP \(bu 2
  250671. \fBPR\fP \fI\%#33067\fP: (\fI\%sacren\fP) Fix minor document error of test.assertion
  250672. .IP \(bu 2
  250673. \fBPR\fP \fI\%#33045\fP: (\fI\%Ch3LL\fP) Saltfile with pillar tests
  250674. .IP \(bu 2
  250675. \fBPR\fP \fI\%#33044\fP: (\fI\%thatch45\fP) Backport \fI\%#33021\fP manually to 2015.5
  250676. .IP \(bu 2
  250677. \fBPR\fP \fI\%#33021\fP: (\fI\%UtahDave\fP) Fix syndic regression (refs: \fI\%#33044\fP)
  250678. .UNINDENT
  250679. .IP \(bu 2
  250680. \fBISSUE\fP \fI\%#22580\fP: (\fI\%ryanwalder\fP) minion runs highstate on start if schedule set in pillar (refs: \fI\%#32958\fP)
  250681. .INDENT 2.0
  250682. .IP \(bu 2
  250683. \fBPR\fP \fI\%#32958\fP: (\fI\%rallytime\fP) Add run_on_start docs to schedule.rst
  250684. .UNINDENT
  250685. .IP \(bu 2
  250686. \fBISSUE\fP \fI\%#23714\fP: (\fI\%naemono\fP) file.copy force ignored during highstate, but not with \(aqsalt\-call state.sls_id\(aq (refs: \fI\%#32732\fP, \fI\%#32848\fP)
  250687. .INDENT 2.0
  250688. .IP \(bu 2
  250689. \fBPR\fP \fI\%#32848\fP: (\fI\%lomeroe\fP) backport PR \fI\%#32732\fP to 2015.5 fixes \fI\%#23714\fP
  250690. .IP \(bu 2
  250691. \fBPR\fP \fI\%#32732\fP: (\fI\%lomeroe\fP) correct use of force flag in file.copy \fI\%#23714\fP (refs: \fI\%#32848\fP)
  250692. .IP \(bu 2
  250693. \fBPR\fP \fI\%#32837\fP: (\fI\%jfindlay\fP) \fIsalt\-cloud \-u\fP downloads stable version from bootstrap.saltstack.com by default
  250694. .IP \(bu 2
  250695. \fBPR\fP \fI\%#32667\fP: (\fI\%jfindlay\fP) [2015.5] update bootstrap to 2016.04.18 release
  250696. .UNINDENT
  250697. .IP \(bu 2
  250698. \fBPR\fP \fI\%#32776\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  250699. @ \fI2016\-04\-25 15:18:12 UTC\fP
  250700. .INDENT 2.0
  250701. .IP \(bu 2
  250702. c842e1e437 Merge pull request \fI\%#32776\fP from rallytime/merge\-2015.5
  250703. .IP \(bu 2
  250704. 7ecbf9f885 Merge pull request \fI\%#14\fP from whiteinge/runner\-async\-low
  250705. .INDENT 2.0
  250706. .IP \(bu 2
  250707. 211f7b4af1 Format low data correct for runner_async
  250708. .UNINDENT
  250709. .IP \(bu 2
  250710. ce72851861 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  250711. .IP \(bu 2
  250712. 2775edc176 Saltnado /run fix (\fI\%#32590\fP)
  250713. .IP \(bu 2
  250714. b19c5a5ce7 Verify auth in saltnado run (\fI\%#32552\fP)
  250715. .IP \(bu 2
  250716. \fBPR\fP \fI\%#32691\fP: (\fI\%terminalmage\fP) Support remote sources in a source list
  250717. .UNINDENT
  250718. .IP \(bu 2
  250719. \fBISSUE\fP \fI\%#32661\fP: (\fI\%dergrunepunkt\fP) Batch exception w/dulpicated minion IDs (refs: \fI\%#32686\fP)
  250720. .IP \(bu 2
  250721. \fBPR\fP \fI\%#32686\fP: (\fI\%cachedout\fP) Fix stacktrace in batch with dup minion ids
  250722. @ \fI2016\-04\-19 19:18:50 UTC\fP
  250723. .INDENT 2.0
  250724. .IP \(bu 2
  250725. bd5442d768 Merge pull request \fI\%#32686\fP from cachedout/issue_32661
  250726. .IP \(bu 2
  250727. f704df90bc Fix stacktrace in batch with dup minion ids
  250728. .IP \(bu 2
  250729. \fBPR\fP \fI\%#32675\fP: (\fI\%basepi\fP) [2015.5] Update "Low Hanging Fruit" to "Help Wanted"
  250730. .UNINDENT
  250731. .IP \(bu 2
  250732. \fBISSUE\fP \fI\%#32612\fP: (\fI\%oliver\-dungey\fP) Calling Salt Modules from Templates \- more complex examples would be great (refs: \fI\%#32657\fP)
  250733. .INDENT 2.0
  250734. .IP \(bu 2
  250735. \fBPR\fP \fI\%#32657\fP: (\fI\%cachedout\fP) Additional documentation on calling exec modules from templates
  250736. .IP \(bu 2
  250737. \fBPR\fP \fI\%#32639\fP: (\fI\%nmadhok\fP) [2015.5] \- Fixing critical bug to remove only the specified Host instead of the entire Host cluster
  250738. .IP \(bu 2
  250739. \fBPR\fP \fI\%#32638\fP: (\fI\%nmadhok\fP) [2015.5] Adding _syspaths.py to .gitignore
  250740. .UNINDENT
  250741. .IP \(bu 2
  250742. \fBISSUE\fP \fI\%#32381\fP: (\fI\%tbaker57\fP) user.present state includes shadow hash in return when user updated (refs: \fI\%#32561\fP)
  250743. .IP \(bu 2
  250744. \fBPR\fP \fI\%#32561\fP: (\fI\%gtmanfred\fP) redact passwords and hashes from user.present updates
  250745. @ \fI2016\-04\-14 15:48:59 UTC\fP
  250746. .INDENT 2.0
  250747. .IP \(bu 2
  250748. 027b502335 Merge pull request \fI\%#32561\fP from gtmanfred/user_passwords
  250749. .IP \(bu 2
  250750. 3db5e78d5d redact passwords and hashes from user.present updates
  250751. .UNINDENT
  250752. .IP \(bu 2
  250753. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#33286\fP, \fI\%#33292\fP, \fI\%#32538\fP, \fI\%#33287\fP, \fI\%#32454\fP, \fI\%#33282\fP)
  250754. .IP \(bu 2
  250755. \fBPR\fP \fI\%#32538\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32528\fP to 2015.5
  250756. @ \fI2016\-04\-13 15:06:14 UTC\fP
  250757. .INDENT 2.0
  250758. .IP \(bu 2
  250759. \fBPR\fP \fI\%#32528\fP: (\fI\%AndrewPashkin\fP) Document "grains" setting in the minion configuration reference (refs: \fI\%#32538\fP)
  250760. .IP \(bu 2
  250761. 7307bcb88e Merge pull request \fI\%#32538\fP from rallytime/bp\-32528
  250762. .IP \(bu 2
  250763. 46a4e8a310 Remove merge conflict line
  250764. .IP \(bu 2
  250765. e0d947c707 Document "grains" setting in the minion configuration reference
  250766. .UNINDENT
  250767. .IP \(bu 2
  250768. \fBISSUE\fP \fI\%#32400\fP: (\fI\%rallytime\fP) Document Default Config Values (refs: \fI\%#33286\fP, \fI\%#33292\fP, \fI\%#32538\fP, \fI\%#33287\fP, \fI\%#32454\fP, \fI\%#33282\fP)
  250769. .INDENT 2.0
  250770. .IP \(bu 2
  250771. \fBPR\fP \fI\%#32454\fP: (\fI\%rallytime\fP) Add documentation for some master/minion configs
  250772. .UNINDENT
  250773. .IP \(bu 2
  250774. \fBISSUE\fP \fI\%#32413\fP: (\fI\%commutecat\fP) Raspbian detected by both systemd.py and service.py __virtual__ functions (refs: \fI\%#32421\fP, \fI\%#32458\fP)
  250775. .IP \(bu 2
  250776. \fBPR\fP \fI\%#32458\fP: (\fI\%terminalmage\fP) Improve and clarify docs on provider overrides.
  250777. @ \fI2016\-04\-09 14:25:42 UTC\fP
  250778. .INDENT 2.0
  250779. .IP \(bu 2
  250780. 100c6e1b25 Merge pull request \fI\%#32458\fP from terminalmage/clarify\-providers\-docs
  250781. .IP \(bu 2
  250782. 500d3ebbaa Add link to provider override docs to all group providers
  250783. .IP \(bu 2
  250784. 83ca01f620 dd link to provider override docs to all shadow providers
  250785. .IP \(bu 2
  250786. c5fe38789d Add link to provider override docs to all user providers
  250787. .IP \(bu 2
  250788. 5c1c1dda59 Add link to provider override docs to all service providers
  250789. .IP \(bu 2
  250790. 736f2befc9 Add link to provider override docs to all package providers
  250791. .IP \(bu 2
  250792. f9306347cc Clarify the scope of the provider param in states.
  250793. .IP \(bu 2
  250794. af24c82ab0 Add documentation on virtual module provider overrides to the module docs
  250795. .IP \(bu 2
  250796. 0bc6c97a63 Improve docstrings
  250797. .IP \(bu 2
  250798. 1948920674 Add external ref to windows package manager docs
  250799. .IP \(bu 2
  250800. e7fa21438c Add new doc pages to toctree
  250801. .IP \(bu 2
  250802. f0de1236ec Move the tables of virtual modules to individual documentation pages
  250803. .UNINDENT
  250804. .IP \(bu 2
  250805. \fBISSUE\fP \fI\%#11497\fP: (\fI\%eeaston\fP) cmd.run cwd should not be checked before preconditions (refs: \fI\%#32293\fP)
  250806. .INDENT 2.0
  250807. .IP \(bu 2
  250808. \fBPR\fP \fI\%#32418\fP: (\fI\%rallytime\fP) Merge \fI\%#32293\fP with test fixes
  250809. .IP \(bu 2
  250810. \fBPR\fP \fI\%#32293\fP: (\fI\%efficks\fP) Fix issue \fI\%#11497\fP (refs: \fI\%#32418\fP)
  250811. .UNINDENT
  250812. .IP \(bu 2
  250813. \fBISSUE\fP \fI\%#32413\fP: (\fI\%commutecat\fP) Raspbian detected by both systemd.py and service.py __virtual__ functions (refs: \fI\%#32421\fP, \fI\%#32458\fP)
  250814. .INDENT 2.0
  250815. .IP \(bu 2
  250816. \fBPR\fP \fI\%#32421\fP: (\fI\%terminalmage\fP) Ignore Raspbian in service.py __virtual__
  250817. .UNINDENT
  250818. .IP \(bu 2
  250819. \fBISSUE\fP \fI\%#1409\fP: (\fI\%twinshadow\fP) module/network.py: Interfaces do not list multiple addesses
  250820. .IP \(bu 2
  250821. \fBISSUE\fP \fI\%saltstack/salt#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32376\fP)
  250822. .IP \(bu 2
  250823. \fBISSUE\fP \fI\%#28262\fP: (\fI\%palica\fP) FreeBSD pkgng provider raising error for minion (refs: \fI\%#32399\fP, \fI\%#32376\fP)
  250824. .IP \(bu 2
  250825. \fBPR\fP \fI\%#32399\fP: (\fI\%amontalban\fP) Backport to fix \fI\%#28262\fP for 2015.5 as requested in PR \fI\%#32376\fP
  250826. @ \fI2016\-04\-06 22:48:23 UTC\fP
  250827. .INDENT 2.0
  250828. .IP \(bu 2
  250829. \fBPR\fP \fI\%#32376\fP: (\fI\%amontalban\fP) Fixes \fI\%saltstack/salt#28262\fP (refs: \fI\%#32399\fP)
  250830. .IP \(bu 2
  250831. a36866d7db Merge pull request \fI\%#32399\fP from amontalban/2015.5
  250832. .IP \(bu 2
  250833. e1ffbd615a Fixes \fI\%saltstack/salt#28262\fP for 2015.5 branch
  250834. .UNINDENT
  250835. .IP \(bu 2
  250836. \fBISSUE\fP \fI\%#32066\fP: (\fI\%guettli\fP) Proxmox docs outdated (refs: \fI\%#32374\fP)
  250837. .IP \(bu 2
  250838. \fBPR\fP \fI\%#32374\fP: (\fI\%cachedout\fP) Update proxmox documentation
  250839. @ \fI2016\-04\-05 22:25:16 UTC\fP
  250840. .INDENT 2.0
  250841. .IP \(bu 2
  250842. 3f03c5fcf9 Merge pull request \fI\%#32374\fP from cachedout/issue_32066
  250843. .IP \(bu 2
  250844. 62389d1d1a Update proxmox documentation
  250845. .UNINDENT
  250846. .IP \(bu 2
  250847. \fBPR\fP \fI\%#32339\fP: (\fI\%Ch3LL\fP) remove reference to master_alive_check in 2015.5
  250848. @ \fI2016\-04\-04 20:39:24 UTC\fP
  250849. .INDENT 2.0
  250850. .IP \(bu 2
  250851. 8578089beb Merge pull request \fI\%#32339\fP from Ch3LL/fix_doc_multi\-master
  250852. .IP \(bu 2
  250853. 2774da288d remove reference to master_alive_check
  250854. .UNINDENT
  250855. .IP \(bu 2
  250856. \fBISSUE\fP \fI\%#32044\fP: (\fI\%ScoreUnder\fP) Multiple masters throwing warnings? "Key master with value [...] has an invalid type of list, a str is required for this value" (refs: \fI\%#32129\fP)
  250857. .IP \(bu 2
  250858. \fBPR\fP \fI\%#32284\fP: (\fI\%rallytime\fP) Audit config.py default types and values
  250859. @ \fI2016\-04\-02 02:00:38 UTC\fP
  250860. .INDENT 2.0
  250861. .IP \(bu 2
  250862. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32284\fP)
  250863. .IP \(bu 2
  250864. fbdc47cc55 Merge pull request \fI\%#32284\fP from rallytime/config\-audit
  250865. .IP \(bu 2
  250866. 0491513204 Don\(aqt be so explicit. Just use string_types.
  250867. .IP \(bu 2
  250868. 083c477fd3 Use six.string_types in config default tuples
  250869. .IP \(bu 2
  250870. 7e642b8381 Audit config.py default types and values \- first sweep
  250871. .UNINDENT
  250872. .IP \(bu 2
  250873. \fBISSUE\fP \fI\%#32301\fP: (\fI\%terminalmage\fP) pkg.latest_version returns inaccurate version when blank "Release" param set in package metadata (refs: \fI\%#32302\fP)
  250874. .IP \(bu 2
  250875. \fBPR\fP \fI\%#32302\fP: (\fI\%terminalmage\fP) Properly support packages with blank "Release" param in pkg.latest_version
  250876. @ \fI2016\-04\-01 22:13:27 UTC\fP
  250877. .INDENT 2.0
  250878. .IP \(bu 2
  250879. 0a6d44e57b Merge pull request \fI\%#32302\fP from terminalmage/fix\-missing\-release
  250880. .IP \(bu 2
  250881. 413c371ccd Properly support packages with blank "Release" param in pkg.latest_version
  250882. .UNINDENT
  250883. .IP \(bu 2
  250884. \fBISSUE\fP \fI\%#31963\fP: (\fI\%UtahDave\fP) pkgrepo.managed state test=True doesn\(aqt actually test if changes need to be made. (refs: \fI\%#32162\fP)
  250885. .IP \(bu 2
  250886. \fBPR\fP \fI\%#32162\fP: (\fI\%terminalmage\fP) Properly handle yum/zypper repositories in pkgrepo.managed
  250887. @ \fI2016\-03\-30 17:51:05 UTC\fP
  250888. .INDENT 2.0
  250889. .IP \(bu 2
  250890. 5d08db7c92 Merge pull request \fI\%#32162\fP from terminalmage/issue31963
  250891. .IP \(bu 2
  250892. 5c1bdb812c Fix pkgrepo integration test
  250893. .IP \(bu 2
  250894. e7fb3095ce Properly handle yum/zypper repositories in pkgrepo.managed
  250895. .IP \(bu 2
  250896. add2111fec Use six.iteritems instead of dict.items
  250897. .IP \(bu 2
  250898. 6c21881c38 Docstring tweaks
  250899. .IP \(bu 2
  250900. ecbb78b649 Remove useless function
  250901. .IP \(bu 2
  250902. 06f3309552 Normalize variable naming to match other functions
  250903. .IP \(bu 2
  250904. 690537ca8b Look for apt\-add\-repository in PATH instead of assuming it\(aqs there
  250905. .IP \(bu 2
  250906. 709d80bb1b aptpkg: Accept **kwargs instead of a dict for pkg.expand_repo_def
  250907. .UNINDENT
  250908. .IP \(bu 2
  250909. \fBISSUE\fP \fI\%#31976\fP: (\fI\%moltob\fP) Schedules not persisted on Windows minion (Installer issue) (refs: \fI\%#32223\fP)
  250910. .IP \(bu 2
  250911. \fBPR\fP \fI\%#32223\fP: (\fI\%twangboy\fP) Create minion.d directory on install for Windows
  250912. @ \fI2016\-03\-30 14:43:27 UTC\fP
  250913. .INDENT 2.0
  250914. .IP \(bu 2
  250915. 4fcdaab428 Merge pull request \fI\%#32223\fP from twangboy/fix_31976
  250916. .IP \(bu 2
  250917. b7fcae97ce Create minion.d directory, fixes \fI\%#31976\fP
  250918. .UNINDENT
  250919. .IP \(bu 2
  250920. \fBISSUE\fP \fI\%#31501\fP: (\fI\%grep4linux\fP) Salt states fail with error \(aqFailed to return clean data\(aq when using salt\-ssh in Amazon EC2 (refs: \fI\%#32218\fP)
  250921. .IP \(bu 2
  250922. \fBPR\fP \fI\%#32218\fP: (\fI\%cachedout\fP) Only display error when tty is True in salt\-ssh
  250923. @ \fI2016\-03\-29 19:13:44 UTC\fP
  250924. .INDENT 2.0
  250925. .IP \(bu 2
  250926. 3309ff6a29 Merge pull request \fI\%#32218\fP from cachedout/issue_31501
  250927. .IP \(bu 2
  250928. 6795d6aef0 Only display error when tty is True in salt\-ssh
  250929. .UNINDENT
  250930. .IP \(bu 2
  250931. \fBPR\fP \fI\%#32196\fP: (\fI\%justinta\fP) Fixed pylint error in app_pam_test.py
  250932. @ \fI2016\-03\-28 23:59:42 UTC\fP
  250933. .INDENT 2.0
  250934. .IP \(bu 2
  250935. 6e0cb22c96 Merge pull request \fI\%#32196\fP from jtand/cherrypy_pam_test_lint_fix
  250936. .IP \(bu 2
  250937. bd3942e0fd Fixed pylint error in app_pam_test.py
  250938. .UNINDENT
  250939. .IP \(bu 2
  250940. \fBPR\fP \fI\%#32154\fP: (\fI\%Ch3LL\fP) Add integration tests for salt\-api using pam eauth
  250941. @ \fI2016\-03\-28 16:06:36 UTC\fP
  250942. .INDENT 2.0
  250943. .IP \(bu 2
  250944. \fBPR\fP \fI\%#31826\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service (refs: \fI\%#32154\fP)
  250945. .IP \(bu 2
  250946. 6b8b8b51c0 Merge pull request \fI\%#32154\fP from Ch3LL/ch3ll_pam_2015.5
  250947. .IP \(bu 2
  250948. ba605b0128 fix more pylint and add ability to close cherrypy engine
  250949. .IP \(bu 2
  250950. 2d4dc4da05 add teardown call
  250951. .IP \(bu 2
  250952. d115878714 fix pylint error
  250953. .IP \(bu 2
  250954. 4c1ab082b6 add pam salt\-api tests
  250955. .UNINDENT
  250956. .IP \(bu 2
  250957. \fBPR\fP \fI\%#32170\fP: (\fI\%gtmanfred\fP) add name for lxc for use with cloud cache
  250958. @ \fI2016\-03\-28 14:34:16 UTC\fP
  250959. .INDENT 2.0
  250960. .IP \(bu 2
  250961. 230443be6c Merge pull request \fI\%#32170\fP from gtmanfred/lxc_cloud_name
  250962. .IP \(bu 2
  250963. eb7d82e7be add name for lxc for use with cloud cache
  250964. .UNINDENT
  250965. .IP \(bu 2
  250966. \fBISSUE\fP \fI\%#31731\fP: (\fI\%sjorge\fP) rh_service references osrelease before it is available, also does not return bool (refs: \fI\%#32165\fP)
  250967. .INDENT 2.0
  250968. .IP \(bu 2
  250969. \fBPR\fP \fI\%#32165\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (refs: \fI\%#32164\fP)
  250970. .UNINDENT
  250971. .IP \(bu 2
  250972. \fBPR\fP \fI\%#32164\fP: (\fI\%terminalmage\fP) Make __virtual__ for rhservice.py more robust (2015.5 branch) (refs: \fI\%#32165\fP)
  250973. @ \fI2016\-03\-27 18:21:52 UTC\fP
  250974. .INDENT 2.0
  250975. .IP \(bu 2
  250976. 32b0421a34 Merge pull request \fI\%#32164\fP from terminalmage/issue31731\-2015.5
  250977. .IP \(bu 2
  250978. 18439c4f89 Make __virtual__ for rhservice.py more robust (2015.5 branch)
  250979. .UNINDENT
  250980. .IP \(bu 2
  250981. \fBPR\fP \fI\%#32141\fP: (\fI\%paclat\fP) fixes 32108
  250982. @ \fI2016\-03\-25 16:50:59 UTC\fP
  250983. .INDENT 2.0
  250984. .IP \(bu 2
  250985. 6212e9aa56 Merge pull request \fI\%#32141\fP from paclat/issue_32108
  250986. .IP \(bu 2
  250987. 72c5d12d43 fixes 32108
  250988. .UNINDENT
  250989. .IP \(bu 2
  250990. \fBISSUE\fP \fI\%#32044\fP: (\fI\%ScoreUnder\fP) Multiple masters throwing warnings? "Key master with value [...] has an invalid type of list, a str is required for this value" (refs: \fI\%#32129\fP)
  250991. .IP \(bu 2
  250992. \fBPR\fP \fI\%#32129\fP: (\fI\%terminalmage\fP) Support multiple valid option types when performing type checks (refs: \fI\%#32284\fP)
  250993. @ \fI2016\-03\-24 21:16:29 UTC\fP
  250994. .INDENT 2.0
  250995. .IP \(bu 2
  250996. bdd7ea89d5 Merge pull request \fI\%#32129\fP from terminalmage/issue32044
  250997. .IP \(bu 2
  250998. 34ca1ea12e Change type check errors to debug loglevel
  250999. .IP \(bu 2
  251000. 5462081488 Support multiple valid option types when performing type checks
  251001. .UNINDENT
  251002. .IP \(bu 2
  251003. \fBISSUE\fP \fI\%#32052\fP: (\fI\%bstevenson\fP) list_absent function doesn\(aqt loop through list of values (refs: \fI\%#32056\fP)
  251004. .IP \(bu 2
  251005. \fBPR\fP \fI\%#32056\fP: (\fI\%bstevenson\fP) Fix list absent
  251006. @ \fI2016\-03\-24 17:35:00 UTC\fP
  251007. .INDENT 2.0
  251008. .IP \(bu 2
  251009. c42014eb54 Merge pull request \fI\%#32056\fP from bstevenson/fix\-list_absent
  251010. .IP \(bu 2
  251011. 1500aae027 set deleted value to list
  251012. .IP \(bu 2
  251013. 1dc8f5f289 unit test update
  251014. .IP \(bu 2
  251015. 39adf86fec Fixed negation logic
  251016. .IP \(bu 2
  251017. be9388173b Removed has_key in lieu of in
  251018. .IP \(bu 2
  251019. e48593ed81 Comments and Changes output fixes
  251020. .IP \(bu 2
  251021. b98f5517de Updated to conform to proper ret values
  251022. .IP \(bu 2
  251023. d18b4be80b remove whitespace end of line 186:q
  251024. .IP \(bu 2
  251025. d2b89c85ad fix formating
  251026. .IP \(bu 2
  251027. 103cee9e29 cleaned up formating
  251028. .IP \(bu 2
  251029. 7a4d7f0bff added whitespace
  251030. .IP \(bu 2
  251031. 8ea5b545b0 Loop through list values in list_absent
  251032. .UNINDENT
  251033. .IP \(bu 2
  251034. \fBPR\fP \fI\%#32096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#32065\fP to 2015.5
  251035. @ \fI2016\-03\-23 22:01:36 UTC\fP
  251036. .INDENT 2.0
  251037. .IP \(bu 2
  251038. \fBPR\fP \fI\%#32065\fP: (\fI\%TheNullByte\fP) Fix an issue with the minion targeting example in docs (refs: \fI\%#32096\fP)
  251039. .IP \(bu 2
  251040. 848ce5647f Merge pull request \fI\%#32096\fP from rallytime/bp\-32065
  251041. .IP \(bu 2
  251042. 36a9d6a374 Fix an issue with the minion targeting example
  251043. .UNINDENT
  251044. .IP \(bu 2
  251045. \fBPR\fP \fI\%#32104\fP: (\fI\%jacobhammons\fP) One additional known issue for 2015.5.10 release notes
  251046. @ \fI2016\-03\-23 21:20:50 UTC\fP
  251047. .INDENT 2.0
  251048. .IP \(bu 2
  251049. 9b332d48b9 Merge pull request \fI\%#32104\fP from jacobhammons/dot10
  251050. .IP \(bu 2
  251051. b9fc882a1e One additional known issue for 2015.5.10 release notes
  251052. .UNINDENT
  251053. .IP \(bu 2
  251054. \fBPR\fP \fI\%#32100\fP: (\fI\%jacobhammons\fP) 2015.5.10 release docs
  251055. @ \fI2016\-03\-23 20:05:21 UTC\fP
  251056. .INDENT 2.0
  251057. .IP \(bu 2
  251058. ff51d548e1 Merge pull request \fI\%#32100\fP from jacobhammons/dot10
  251059. .IP \(bu 2
  251060. 544a1661ce 2015.5.10 release docs
  251061. .UNINDENT
  251062. .IP \(bu 2
  251063. \fBISSUE\fP \fI\%#32037\fP: (\fI\%terminalmage\fP) Increase the visibility of state.apply in Salt\(aqs documentation (refs: \fI\%#32038\fP)
  251064. .IP \(bu 2
  251065. \fBPR\fP \fI\%#32038\fP: (\fI\%terminalmage\fP) Improve state module docs, replace references to state.highstate/state.sls with state.apply
  251066. @ \fI2016\-03\-23 17:08:02 UTC\fP
  251067. .INDENT 2.0
  251068. .IP \(bu 2
  251069. 72a20f9799 Merge pull request \fI\%#32038\fP from terminalmage/issue32037
  251070. .IP \(bu 2
  251071. 8b2d983324 Add reference to state tutorial to state.apply docstring
  251072. .IP \(bu 2
  251073. 9b4fe8443e Move highstate usage details to top of state.apply docstring
  251074. .IP \(bu 2
  251075. 74ee8c54bc Clarify prior role of state.highstate in states tutorial
  251076. .IP \(bu 2
  251077. 1b97e4a3df Improve state module docs, replace references to state.highstate/state.sls with state.apply
  251078. .UNINDENT
  251079. .IP \(bu 2
  251080. \fBPR\fP \fI\%#32051\fP: (\fI\%terminalmage\fP) Fix outputter for state.apply
  251081. @ \fI2016\-03\-23 16:42:43 UTC\fP
  251082. .INDENT 2.0
  251083. .IP \(bu 2
  251084. 908a7bf5cd Merge pull request \fI\%#32051\fP from terminalmage/fix\-state\-apply\-output
  251085. .IP \(bu 2
  251086. 7d7cb45565 Fix outputter for state.apply
  251087. .UNINDENT
  251088. .IP \(bu 2
  251089. \fBISSUE\fP \fI\%#31788\fP: (\fI\%crocket\fP) pkg.installed doesn\(aqt work on Manjaro. (refs: \fI\%#32002\fP)
  251090. .IP \(bu 2
  251091. \fBPR\fP \fI\%#32002\fP: (\fI\%abednarik\fP) Added Manajro Linux to virtual.
  251092. @ \fI2016\-03\-21 17:55:16 UTC\fP
  251093. .INDENT 2.0
  251094. .IP \(bu 2
  251095. 0e66f678d4 Merge pull request \fI\%#32002\fP from abednarik/pkg_manjaron_issue31788
  251096. .IP \(bu 2
  251097. 1b052d0a66 Added Manajro Linux to virtual. List extended with ManajaroLinux in order su load pacman module.
  251098. .UNINDENT
  251099. .IP \(bu 2
  251100. \fBPR\fP \fI\%#31957\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  251101. @ \fI2016\-03\-18 15:12:22 UTC\fP
  251102. .INDENT 2.0
  251103. .IP \(bu 2
  251104. ba5bf62c1a Merge pull request \fI\%#31957\fP from rallytime/merge\-2015.5
  251105. .IP \(bu 2
  251106. 1b6ec5d445 Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  251107. .INDENT 2.0
  251108. .IP \(bu 2
  251109. ba73deee46 Merge pull request \fI\%#31929\fP from twangboy/fix_build_script
  251110. .INDENT 2.0
  251111. .IP \(bu 2
  251112. 2c5599d2bc Backport build script from 2015.8
  251113. .IP \(bu 2
  251114. ce74991dd0 Fix nsi script to work with new build process
  251115. .UNINDENT
  251116. .UNINDENT
  251117. .UNINDENT
  251118. .IP \(bu 2
  251119. \fBPR\fP \fI\%#31972\fP: (\fI\%terminalmage\fP) Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  251120. @ \fI2016\-03\-18 15:11:59 UTC\fP
  251121. .INDENT 2.0
  251122. .IP \(bu 2
  251123. a52e3ad7a1 Merge pull request \fI\%#31972\fP from terminalmage/zh\-584
  251124. .IP \(bu 2
  251125. 1e5639e495 Make lack of python\-ldap module more explicit when LDAP eauth is enabled
  251126. .UNINDENT
  251127. .IP \(bu 2
  251128. \fBPR\fP \fI\%#31935\fP: (\fI\%twangboy\fP) Back port nullsoft build script from 2015.8
  251129. @ \fI2016\-03\-17 14:54:50 UTC\fP
  251130. .INDENT 2.0
  251131. .IP \(bu 2
  251132. 2d1f2a0c2e Merge pull request \fI\%#31935\fP from twangboy/fix_build_script2
  251133. .IP \(bu 2
  251134. 4af8c9dbfc Back port nullsoft build script from 2015.8
  251135. .UNINDENT
  251136. .IP \(bu 2
  251137. \fBPR\fP \fI\%#31912\fP: (\fI\%jfindlay\fP) log.mixins: remove extemporaneous .record
  251138. @ \fI2016\-03\-16 01:56:46 UTC\fP
  251139. .INDENT 2.0
  251140. .IP \(bu 2
  251141. 43240dc566 Merge pull request \fI\%#31912\fP from jfindlay/log_mixin
  251142. .IP \(bu 2
  251143. 9f9c694654 log.mixins: remove extemporaneous .record
  251144. .UNINDENT
  251145. .IP \(bu 2
  251146. \fBPR\fP \fI\%#31825\fP: (\fI\%justinta\fP) Updated .testing.pylintrc to match newer versions of pylint
  251147. @ \fI2016\-03\-15 18:12:44 UTC\fP
  251148. .INDENT 2.0
  251149. .IP \(bu 2
  251150. 440e0dcbe0 Merge pull request \fI\%#31825\fP from jtand/udpate_pylintrc
  251151. .IP \(bu 2
  251152. 9a14e02766 Updated beacons/sh.py to work with enumerate()
  251153. .IP \(bu 2
  251154. 0ecec691a0 Adjusted beacons to work with enumerate better
  251155. .IP \(bu 2
  251156. f509b4113e Fixed final lint error
  251157. .IP \(bu 2
  251158. 5945b3f11f Fix and disable pylint errors
  251159. .IP \(bu 2
  251160. 06ae6eaf55 Fixed pylint errors on jboss state and module
  251161. .IP \(bu 2
  251162. de96db97c8 Fixed more pylint errors, and disabled some more
  251163. .IP \(bu 2
  251164. c07b0a20b5 Merge branch \(aqlint_fixes\(aq into udpate_pylintrc
  251165. .INDENT 2.0
  251166. .IP \(bu 2
  251167. 2e6a152308 Fixed lint error in lxc.py
  251168. .IP \(bu 2
  251169. 908ca1a439 Fixed lint error in ssh_py_shim
  251170. .IP \(bu 2
  251171. 404c1b50f7 Changed range(len()) to enumerate()
  251172. .IP \(bu 2
  251173. 1e13586546 Changed range(len()) to enumerate()
  251174. .UNINDENT
  251175. .IP \(bu 2
  251176. 9ccce7a9a5 Added more disables
  251177. .IP \(bu 2
  251178. 9c1aab3b4e Updated .testing.pylintrc to match newer versions of pylint
  251179. .UNINDENT
  251180. .IP \(bu 2
  251181. \fBISSUE\fP \fI\%#31867\fP: (\fI\%damon\-atkins\fP) " __virtual__ returned False" is not a clear error message (refs: \fI\%#31878\fP, \fI\%#31900\fP)
  251182. .IP \(bu 2
  251183. \fBPR\fP \fI\%#31900\fP: (\fI\%rallytime\fP) Add "python module" clarification to ps __virtual__ warning.
  251184. @ \fI2016\-03\-15 17:59:35 UTC\fP
  251185. .INDENT 2.0
  251186. .IP \(bu 2
  251187. 471c9444a3 Merge pull request \fI\%#31900\fP from rallytime/fix\-psutil\-warning
  251188. .IP \(bu 2
  251189. 22403d69ae Add "python module" clarification to ps __virtual__ warning.
  251190. .UNINDENT
  251191. .IP \(bu 2
  251192. \fBISSUE\fP \fI\%#31867\fP: (\fI\%damon\-atkins\fP) " __virtual__ returned False" is not a clear error message (refs: \fI\%#31878\fP, \fI\%#31900\fP)
  251193. .IP \(bu 2
  251194. \fBISSUE\fP \fI\%#19659\fP: (\fI\%wonderslug\fP) state process.absent is failing on Ubuntu 14.04 because psutil is not installed (refs: \fI\%#31878\fP)
  251195. .IP \(bu 2
  251196. \fBPR\fP \fI\%#31878\fP: (\fI\%rallytime\fP) Make sure __virtual__ error message is helpful when psutil is missing
  251197. @ \fI2016\-03\-14 21:31:42 UTC\fP
  251198. .INDENT 2.0
  251199. .IP \(bu 2
  251200. c44c1b5e59 Merge pull request \fI\%#31878\fP from rallytime/fix\-psutil\-warning
  251201. .IP \(bu 2
  251202. 44b29f72a1 Make sure __virtual__ error message is helpful when psutil is missing
  251203. .UNINDENT
  251204. .IP \(bu 2
  251205. \fBPR\fP \fI\%#31852\fP: (\fI\%rallytime\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  251206. @ \fI2016\-03\-13 02:47:02 UTC\fP
  251207. .INDENT 2.0
  251208. .IP \(bu 2
  251209. 5c592b6768 Merge pull request \fI\%#31852\fP from rallytime/merge\-2015.5
  251210. .IP \(bu 2
  251211. 1470de17fa Merge branch \(aq2014.7\(aq into \(aq2015.5\(aq
  251212. .IP \(bu 2
  251213. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  251214. .INDENT 2.0
  251215. .IP \(bu 2
  251216. 358fdad0c8 add 2014.7.8 release notes
  251217. .UNINDENT
  251218. .IP \(bu 2
  251219. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  251220. .INDENT 2.0
  251221. .IP \(bu 2
  251222. 6910fcc584 add 2014.7.9 release notes
  251223. .UNINDENT
  251224. .IP \(bu 2
  251225. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  251226. .IP \(bu 2
  251227. d73f70ebb2 Remove ability of authenticating user to specify pam service
  251228. .UNINDENT
  251229. .IP \(bu 2
  251230. \fBPR\fP \fI\%#31827\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  251231. @ \fI2016\-03\-11 20:40:19 UTC\fP
  251232. .INDENT 2.0
  251233. .IP \(bu 2
  251234. 0cc1d5db03 Merge pull request \fI\%#31827\fP from gtmanfred/2015.5
  251235. .IP \(bu 2
  251236. 979173b78a Remove ability of authenticating user to specify pam service
  251237. .UNINDENT
  251238. .IP \(bu 2
  251239. \fBPR\fP \fI\%#31810\fP: (\fI\%whiteinge\fP) Fix outdated Jinja \(aqenv\(aq variable reference
  251240. @ \fI2016\-03\-11 03:52:21 UTC\fP
  251241. .INDENT 2.0
  251242. .IP \(bu 2
  251243. 8cf0b9eb3d Merge pull request \fI\%#31810\fP from whiteinge/saltenv\-jinja\-var
  251244. .IP \(bu 2
  251245. cb72b19240 Fix outdated Jinja \(aqenv\(aq variable reference
  251246. .UNINDENT
  251247. .IP \(bu 2
  251248. \fBISSUE\fP \fI\%#31729\fP: (\fI\%brejoc\fP) Creating VM with salt\-cloud fails for provider Exoscale (Cloudstack) (refs: \fI\%#31744\fP)
  251249. .IP \(bu 2
  251250. \fBPR\fP \fI\%#31744\fP: (\fI\%brejoc\fP) Fix for AttributeError with libcloud <0.15
  251251. @ \fI2016\-03\-10 00:15:26 UTC\fP
  251252. .INDENT 2.0
  251253. .IP \(bu 2
  251254. 970ef0e445 Merge pull request \fI\%#31744\fP from brejoc/fix\-attribute\-error\-with\-older\-libcloud/2015.5
  251255. .IP \(bu 2
  251256. bb29dc2283 Added version to libcloud depends statement
  251257. .IP \(bu 2
  251258. 87f9534fce Added log message with update suggestion for libcloud
  251259. .IP \(bu 2
  251260. 72eab406cd Fix for AttributeError with libcloud <0.15
  251261. .UNINDENT
  251262. .IP \(bu 2
  251263. \fBISSUE\fP \fI\%#31666\fP: (\fI\%sjorge\fP) salt\-call \-\-local pillar.items is overly eager to give data (refs: \fI\%#31740\fP)
  251264. .IP \(bu 2
  251265. \fBPR\fP \fI\%#31740\fP: (\fI\%terminalmage\fP) Assume pillar_opts is False when not specified in masterless mode
  251266. @ \fI2016\-03\-09 22:57:57 UTC\fP
  251267. .INDENT 2.0
  251268. .IP \(bu 2
  251269. df2d23ba5d Merge pull request \fI\%#31740\fP from terminalmage/issue31666
  251270. .IP \(bu 2
  251271. aeaf5864cd Fall back to False when pillar_opts not set
  251272. .IP \(bu 2
  251273. fe19d77eb4 Add default value for pillar_opts on minion
  251274. .UNINDENT
  251275. .IP \(bu 2
  251276. \fBISSUE\fP \fI\%#31749\fP: (\fI\%milan\-milo\fP) salt\-cloud spitting out error \(aqAttributeError: \(aqNoneType\(aq object has no attribute \(aqpop\(aq\(aq (refs: \fI\%#31750\fP)
  251277. .IP \(bu 2
  251278. \fBISSUE\fP \fI\%#26162\fP: (\fI\%nmadhok\fP) VMware cloud driver create function failing with traceback on latest develop (refs: \fI\%#26170\fP)
  251279. .IP \(bu 2
  251280. \fBPR\fP \fI\%#31750\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26170\fP to 2015.5
  251281. @ \fI2016\-03\-09 17:44:14 UTC\fP
  251282. .INDENT 2.0
  251283. .IP \(bu 2
  251284. \fBPR\fP \fI\%#26170\fP: (\fI\%nmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it. (refs: \fI\%#31750\fP)
  251285. .IP \(bu 2
  251286. e22f5c0a26 Merge pull request \fI\%#31750\fP from rallytime/bp\-26170
  251287. .IP \(bu 2
  251288. 3c11234a05 Make sure variable is a dictionary before popping something from it.
  251289. .UNINDENT
  251290. .IP \(bu 2
  251291. \fBISSUE\fP \fI\%#30559\fP: (\fI\%kaidokert\fP) module.wait does not fail when called state fails (refs: \fI\%#31689\fP)
  251292. .IP \(bu 2
  251293. \fBPR\fP \fI\%#31689\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29467\fP to 2015.5
  251294. @ \fI2016\-03\-06 19:26:11 UTC\fP
  251295. .INDENT 2.0
  251296. .IP \(bu 2
  251297. \fBPR\fP \fI\%#29467\fP: (\fI\%serge\-p\fP) Update module.py (refs: \fI\%#31689\fP)
  251298. .IP \(bu 2
  251299. 9162925dd0 Merge pull request \fI\%#31689\fP from rallytime/bp\-29467
  251300. .IP \(bu 2
  251301. 1f8f4cb99b Update module.py
  251302. .UNINDENT
  251303. .IP \(bu 2
  251304. \fBPR\fP \fI\%#31687\fP: (\fI\%cachedout\fP) Removed useless GPG tests
  251305. @ \fI2016\-03\-05 00:08:27 UTC\fP
  251306. .INDENT 2.0
  251307. .IP \(bu 2
  251308. d7914cdb14 Merge pull request \fI\%#31687\fP from cachedout/rm_gpg_test
  251309. .IP \(bu 2
  251310. 8b00513ebb Removed useless tests
  251311. .UNINDENT
  251312. .IP \(bu 2
  251313. \fBISSUE\fP \fI\%#31619\fP: (\fI\%alexxannar\fP) 2015.8.7 pkg.installed problem with version parameter (refs: \fI\%#31660\fP)
  251314. .IP \(bu 2
  251315. \fBPR\fP \fI\%#31660\fP: (\fI\%terminalmage\fP) Remove epoch from version string if present when installing with yum
  251316. @ \fI2016\-03\-04 20:49:23 UTC\fP
  251317. .INDENT 2.0
  251318. .IP \(bu 2
  251319. bd4d12a155 Merge pull request \fI\%#31660\fP from terminalmage/issue31619
  251320. .IP \(bu 2
  251321. da954d7b92 Add integration test for packages with epoch in version
  251322. .IP \(bu 2
  251323. 4fa7e4defe Move epoch removal
  251324. .IP \(bu 2
  251325. 290192af56 Remove epoch from version string if present when installing with yum
  251326. .UNINDENT
  251327. .IP \(bu 2
  251328. \fBPR\fP \fI\%#31683\fP: (\fI\%rallytime\fP) Back\-port \fI\%#31578\fP to 2015.5
  251329. @ \fI2016\-03\-04 20:47:41 UTC\fP
  251330. .INDENT 2.0
  251331. .IP \(bu 2
  251332. \fBPR\fP \fI\%#31578\fP: (\fI\%anlutro\fP) Allow queueing of state runs through saltmod (refs: \fI\%#31683\fP)
  251333. .IP \(bu 2
  251334. e33c1f456a Merge pull request \fI\%#31683\fP from rallytime/bp\-31578
  251335. .IP \(bu 2
  251336. 8fe46789b7 allow queueing of state runs through saltmod
  251337. .UNINDENT
  251338. .IP \(bu 2
  251339. \fBISSUE\fP \fI\%#31671\fP: (\fI\%guettli\fP) Word "Job Cache" does not match (refs: \fI\%#31682\fP)
  251340. .IP \(bu 2
  251341. \fBPR\fP \fI\%#31682\fP: (\fI\%cachedout\fP) Add definition of job cache to glossary
  251342. @ \fI2016\-03\-04 20:07:19 UTC\fP
  251343. .INDENT 2.0
  251344. .IP \(bu 2
  251345. 27f443895d Merge pull request \fI\%#31682\fP from cachedout/cache_meaning
  251346. .IP \(bu 2
  251347. a75e146125 Add definition of job cache to glossary
  251348. .UNINDENT
  251349. .IP \(bu 2
  251350. \fBPR\fP \fI\%#31658\fP: (\fI\%rallytime\fP) Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  251351. @ \fI2016\-03\-03 22:14:57 UTC\fP
  251352. .INDENT 2.0
  251353. .IP \(bu 2
  251354. bd04c964d1 Merge pull request \fI\%#31658\fP from rallytime/add\-style\-to\-contrib
  251355. .IP \(bu 2
  251356. 6b526b5878 Add mentioned of Salt\(aqs Coding Style docs to the Contributing docs
  251357. .UNINDENT
  251358. .IP \(bu 2
  251359. \fBISSUE\fP \fI\%#21932\fP: (\fI\%clinta\fP) Salt Coding Style docs should list requirements for salt pylintrc (refs: \fI\%#31655\fP)
  251360. .IP \(bu 2
  251361. \fBPR\fP \fI\%#31655\fP: (\fI\%rallytime\fP) Make note of pylint dependencies in docs
  251362. @ \fI2016\-03\-03 18:37:06 UTC\fP
  251363. .INDENT 2.0
  251364. .IP \(bu 2
  251365. 10658dffe6 Merge pull request \fI\%#31655\fP from rallytime/pylint\-docs
  251366. .IP \(bu 2
  251367. 6e0377d376 Make note of pylint dependencies in docs
  251368. .UNINDENT
  251369. .IP \(bu 2
  251370. \fBPR\fP \fI\%#31440\fP: (\fI\%cachedout\fP) Set correct type for master_tops config value
  251371. @ \fI2016\-03\-02 21:17:14 UTC\fP
  251372. .INDENT 2.0
  251373. .IP \(bu 2
  251374. 6075774a01 Merge pull request \fI\%#31440\fP from cachedout/master_tops_type
  251375. .IP \(bu 2
  251376. f49cc75049 Set correct type for master_tops config value
  251377. .UNINDENT
  251378. .IP \(bu 2
  251379. \fBISSUE\fP \fI\%#31614\fP: (\fI\%frizzby\fP) salt.utils.http.query() implementation contradicts its documentation. decode arg (refs: \fI\%#31622\fP)
  251380. .IP \(bu 2
  251381. \fBPR\fP \fI\%#31622\fP: (\fI\%jfindlay\fP) doc/topics/tutorials/http: update query decoding docs
  251382. @ \fI2016\-03\-02 18:23:44 UTC\fP
  251383. .INDENT 2.0
  251384. .IP \(bu 2
  251385. 6d31b8918f Merge pull request \fI\%#31622\fP from jfindlay/query_doc
  251386. .IP \(bu 2
  251387. 4e48fec806 doc/topics/tutorials/http: update query decoding docs
  251388. .UNINDENT
  251389. .IP \(bu 2
  251390. \fBPR\fP \fI\%#31558\fP: (\fI\%cachedout\fP) Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  251391. @ \fI2016\-02\-29 22:15:44 UTC\fP
  251392. .INDENT 2.0
  251393. .IP \(bu 2
  251394. dbf6e0786c Merge pull request \fI\%#31558\fP from cachedout/ensure_ssh_installed
  251395. .IP \(bu 2
  251396. cecc6e0a5f Don\(aqt stacktrace if ssh binary is not installed with salt\-ssh
  251397. .UNINDENT
  251398. .IP \(bu 2
  251399. \fBPR\fP \fI\%#31521\fP: (\fI\%terminalmage\fP) salt\-ssh: Fix race condition when caching files to build the thin tarball
  251400. @ \fI2016\-02\-29 15:32:22 UTC\fP
  251401. .INDENT 2.0
  251402. .IP \(bu 2
  251403. 060a60fd90 Merge pull request \fI\%#31521\fP from terminalmage/issue24753
  251404. .IP \(bu 2
  251405. 0d352bbc16 Add fileclient tests
  251406. .IP \(bu 2
  251407. d9370a8041 Update cp module salt\-ssh wrapper to use new cachedir param
  251408. .IP \(bu 2
  251409. 0320494b1d Update the SSH state module wrappers to pass an alternate cachedir
  251410. .IP \(bu 2
  251411. 65bdcb3afa Accept and pass through the alternate cachedir when prepping the thin tar
  251412. .IP \(bu 2
  251413. c3f7a2f2e5 Add ability to specify an alternate base dir for file caching
  251414. .UNINDENT
  251415. .IP \(bu 2
  251416. \fBPR\fP \fI\%#31497\fP: (\fI\%rallytime\fP) Remove duplicate "timeout" definition in Roster docs
  251417. @ \fI2016\-02\-26 15:01:30 UTC\fP
  251418. .INDENT 2.0
  251419. .IP \(bu 2
  251420. 92f8f89218 Merge pull request \fI\%#31497\fP from rallytime/remove\-timeout\-dup
  251421. .IP \(bu 2
  251422. 83e6480d20 Remove duplicate "timeout" definition in Roster docs
  251423. .UNINDENT
  251424. .IP \(bu 2
  251425. \fBPR\fP \fI\%#31472\fP: (\fI\%rallytime\fP) Update contributing docs
  251426. @ \fI2016\-02\-25 16:05:59 UTC\fP
  251427. .INDENT 2.0
  251428. .IP \(bu 2
  251429. da001bcb49 Merge pull request \fI\%#31472\fP from rallytime/update\-contributing\-docs
  251430. .IP \(bu 2
  251431. 5871e4d1e0 Update contributing docs
  251432. .UNINDENT
  251433. .IP \(bu 2
  251434. \fBISSUE\fP \fI\%#30183\fP: (\fI\%jakehilton\fP) Minion startup extremely delayed when first master in failover multi master setup is down (refs: \fI\%#31382\fP)
  251435. .IP \(bu 2
  251436. \fBPR\fP \fI\%#31461\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover.
  251437. @ \fI2016\-02\-24 17:15:30 UTC\fP
  251438. .INDENT 2.0
  251439. .IP \(bu 2
  251440. \fBPR\fP \fI\%#31382\fP: (\fI\%DmitryKuzmenko\fP) Set auth retry count to 0 if multimaster mode is failover (refs: \fI\%#31461\fP)
  251441. .IP \(bu 2
  251442. f35e2dd1d3 Merge pull request \fI\%#31461\fP from DSRCompany/issues/30183_fix_multimaster_failover_2015.5
  251443. .IP \(bu 2
  251444. 3d09c3b7a3 Set auth retry count to 0 if multimaster mode is failover.
  251445. .UNINDENT
  251446. .IP \(bu 2
  251447. \fBISSUE\fP \fI\%#31356\fP: (\fI\%sastorsl\fP) file.copy module with recurse=true and non\-existing src dir does not fail and resets dst dir permissions (refs: \fI\%#31442\fP)
  251448. .IP \(bu 2
  251449. \fBPR\fP \fI\%#31442\fP: (\fI\%sastorsl\fP) Add os.path.exists(src) to file.py, def copy
  251450. @ \fI2016\-02\-23 23:40:03 UTC\fP
  251451. .INDENT 2.0
  251452. .IP \(bu 2
  251453. 26733ce988 Merge pull request \fI\%#31442\fP from sastorsl/salt\-modules\-file.py\-copy\-check\-src
  251454. .IP \(bu 2
  251455. 0a4132866d removed lint in the exception string
  251456. .IP \(bu 2
  251457. f8b5d498c3 Add os.path.exists(src) to file.py, def copy
  251458. .UNINDENT
  251459. .IP \(bu 2
  251460. \fBISSUE\fP \fI\%#30739\fP: (\fI\%paclat\fP) manage.present does not work when minion is using localhost (refs: \fI\%#31441\fP)
  251461. .IP \(bu 2
  251462. \fBPR\fP \fI\%#31441\fP: (\fI\%cachedout\fP) Include localhost minions in presence detection for runner
  251463. @ \fI2016\-02\-23 23:36:59 UTC\fP
  251464. .INDENT 2.0
  251465. .IP \(bu 2
  251466. e480727d27 Merge pull request \fI\%#31441\fP from cachedout/issue_30739
  251467. .IP \(bu 2
  251468. ffcfad1570 Include localhost minions in presence detection for runner
  251469. .UNINDENT
  251470. .IP \(bu 2
  251471. \fBPR\fP \fI\%#31416\fP: (\fI\%carlwgeorge\fP) selinux module documentation fix
  251472. @ \fI2016\-02\-22 21:49:28 UTC\fP
  251473. .INDENT 2.0
  251474. .IP \(bu 2
  251475. 91ff95f093 Merge pull request \fI\%#31416\fP from carlwgeorge/selinux_doc_fix
  251476. .IP \(bu 2
  251477. 0e6846d72e selinux module documentation fix
  251478. .UNINDENT
  251479. .IP \(bu 2
  251480. \fBPR\fP \fI\%#31336\fP: (\fI\%terminalmage\fP) Improve config validation logging
  251481. @ \fI2016\-02\-22 19:34:24 UTC\fP
  251482. .INDENT 2.0
  251483. .IP \(bu 2
  251484. 7d01979898 Merge pull request \fI\%#31336\fP from terminalmage/config\-validation\-logging
  251485. .IP \(bu 2
  251486. 795008bad1 Improve config validation logging
  251487. .UNINDENT
  251488. .IP \(bu 2
  251489. \fBISSUE\fP \fI\%#31369\fP: (\fI\%sjorge\fP) illumos/solaris/smartos display compacted hwaddrs (refs: \fI\%#31374\fP)
  251490. .IP \(bu 2
  251491. \fBPR\fP \fI\%#31374\fP: (\fI\%sjorge\fP) fix for \fI\%#31369\fP
  251492. @ \fI2016\-02\-22 16:22:21 UTC\fP
  251493. .INDENT 2.0
  251494. .IP \(bu 2
  251495. fed096a29d Merge pull request \fI\%#31374\fP from sjorge/solarish_hwaddr
  251496. .IP \(bu 2
  251497. bdf2576dfb missed a .format and messed up the join
  251498. .IP \(bu 2
  251499. bbd2fdc96d fix for illumos/solaris hwaddr
  251500. .UNINDENT
  251501. .IP \(bu 2
  251502. \fBPR\fP \fI\%#31339\fP: (\fI\%jacobhammons\fP) changed latest release to 2015.8.7
  251503. @ \fI2016\-02\-19 00:30:24 UTC\fP
  251504. .INDENT 2.0
  251505. .IP \(bu 2
  251506. 6ee17f905b Merge pull request \fI\%#31339\fP from jacobhammons/dot7prev
  251507. .IP \(bu 2
  251508. 07120a8d48 changed latest release to 2015.8.7
  251509. .UNINDENT
  251510. .IP \(bu 2
  251511. \fBPR\fP \fI\%#31288\fP: (\fI\%notpeter\fP) Improve salt.states.ssh_known_hosts documentation.
  251512. @ \fI2016\-02\-17 22:09:18 UTC\fP
  251513. .INDENT 2.0
  251514. .IP \(bu 2
  251515. cd3400e67e Merge pull request \fI\%#31288\fP from notpeter/ssh_known_hosts_docs
  251516. .IP \(bu 2
  251517. 3f573d89a2 Improve salt.states.ssh_known_hosts documentation.
  251518. .UNINDENT
  251519. .IP \(bu 2
  251520. \fBPR\fP \fI\%#31183\fP: (\fI\%heyfife\fP) Fixed named external_ip reservation/re\-use code in gce driver.
  251521. @ \fI2016\-02\-17 19:02:27 UTC\fP
  251522. .INDENT 2.0
  251523. .IP \(bu 2
  251524. 875d9925fa Merge pull request \fI\%#31183\fP from heyfife/fix\-gce\-named\-static\-ip\-reservation
  251525. .IP \(bu 2
  251526. 26774e2323 Fixed named external_ip reservation/re\-use code.
  251527. .UNINDENT
  251528. .IP \(bu 2
  251529. \fBISSUE\fP \fI\%#31001\fP: (\fI\%toanju\fP) Fedora 23 check installed packages fails (refs: \fI\%#31032\fP)
  251530. .IP \(bu 2
  251531. \fBPR\fP \fI\%#31032\fP: (\fI\%terminalmage\fP) (2015.5 branch) yumpkg: ensure that dnf\-plugins\-core >= 0.1.15 is installed
  251532. @ \fI2016\-02\-17 19:02:03 UTC\fP
  251533. .INDENT 2.0
  251534. .IP \(bu 2
  251535. e56c402c0c Merge pull request \fI\%#31032\fP from terminalmage/issue31001
  251536. .IP \(bu 2
  251537. 42daea4509 yumpkg.py: Remove repoquery usage everywhere but check_db
  251538. .IP \(bu 2
  251539. 50befbc149 backport salt.utils.pkg.rpm to 2015.5
  251540. .IP \(bu 2
  251541. a1ad14994a Move salt.utils.itersplit() to salt.utils.itertools.split()
  251542. .IP \(bu 2
  251543. 5b8646ce64 Ignore failure to install new enough dnf\-plugins\-core
  251544. .IP \(bu 2
  251545. defe0859fd Ensure that dnf\-plugins\-core 0.1.15 is installed
  251546. .UNINDENT
  251547. .IP \(bu 2
  251548. \fBISSUE\fP \fI\%#31174\fP: (\fI\%sjorge\fP) salt.states.archive.extacted displays incorrect message: (refs: \fI\%#31176\fP)
  251549. .IP \(bu 2
  251550. \fBPR\fP \fI\%#31264\fP: (\fI\%sjorge\fP) fix if_missing gets appended to dirs list, take III
  251551. @ \fI2016\-02\-17 17:12:25 UTC\fP
  251552. .INDENT 2.0
  251553. .IP \(bu 2
  251554. \fBPR\fP \fI\%#31250\fP: (\fI\%sjorge\fP) if_missing append to array as far back as 2014.1 (refs: \fI\%#31264\fP)
  251555. .IP \(bu 2
  251556. \fBPR\fP \fI\%#31176\fP: (\fI\%sjorge\fP) if_missing incorrected appended to directories_created (refs: \fI\%#31250\fP, \fI\%#31264\fP)
  251557. .IP \(bu 2
  251558. cec69b74f0 Merge pull request \fI\%#31264\fP from sjorge/if_missing\-155\-fix
  251559. .IP \(bu 2
  251560. 545edbf5e1 fix if_missing gets appended to dirs list, take III
  251561. .UNINDENT
  251562. .IP \(bu 2
  251563. \fBPR\fP \fI\%#31110\fP: (\fI\%cachedout\fP) Fixup 30730
  251564. @ \fI2016\-02\-10 21:37:55 UTC\fP
  251565. .INDENT 2.0
  251566. .IP \(bu 2
  251567. fa3f474de9 Merge pull request \fI\%#31110\fP from cachedout/fixup_30730
  251568. .IP \(bu 2
  251569. 5bf5848e04 Fixup unit test
  251570. .IP \(bu 2
  251571. f558f68e0a Fixes pylint warnings
  251572. .IP \(bu 2
  251573. 56a975ec43 Attempt to fix pylint warnings
  251574. .IP \(bu 2
  251575. 55d71be057 Make documentation and code examples consistent with code
  251576. .IP \(bu 2
  251577. 1f04fed6f8 Change parameter name from includes to skips
  251578. .IP \(bu 2
  251579. ccf5e13e7d Adding support for skipHidden in SetInclude
  251580. .IP \(bu 2
  251581. 4f2d4af2e7 Variable names standardization
  251582. .IP \(bu 2
  251583. f5917ac1e8 Fixes typo
  251584. .IP \(bu 2
  251585. 26e5236073 Invert RebootRequired logic
  251586. .IP \(bu 2
  251587. 8065a7abf6 Add basic documentation and define how the skips parameter works.
  251588. .IP \(bu 2
  251589. 389fea7508 Change parameter name from includes to skips
  251590. .IP \(bu 2
  251591. 30e1fef906 Adding support for skipHidden in SetInclude
  251592. .IP \(bu 2
  251593. 1244eea5be Variable names standardization, consistent if/else logic with states.win_update
  251594. .UNINDENT
  251595. .IP \(bu 2
  251596. \fBISSUE\fP \fI\%#30900\fP: (\fI\%mchugh19\fP) modules/qemu_nbd.py assumes versions of utilities that don\(aqt exist on ubuntu (refs: \fI\%#30949\fP)
  251597. .IP \(bu 2
  251598. \fBPR\fP \fI\%#30974\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30949\fP to 2015.5
  251599. @ \fI2016\-02\-08 16:38:46 UTC\fP
  251600. .INDENT 2.0
  251601. .IP \(bu 2
  251602. \fBPR\fP \fI\%#30949\fP: (\fI\%techhat\fP) Replace cfdisk with sfdisk (refs: \fI\%#30974\fP)
  251603. .IP \(bu 2
  251604. 1c699a1664 Merge pull request \fI\%#30974\fP from rallytime/bp\-30949
  251605. .IP \(bu 2
  251606. ff6542f593 Replace cfdisk with sfdisk
  251607. .UNINDENT
  251608. .IP \(bu 2
  251609. \fBISSUE\fP \fI\%#28951\fP: (\fI\%ClaudiuPID\fP) CloudLinux 7 changes (refs: \fI\%#30897\fP)
  251610. .IP \(bu 2
  251611. \fBPR\fP \fI\%#30942\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30897\fP to 2015.5
  251612. @ \fI2016\-02\-05 19:00:55 UTC\fP
  251613. .INDENT 2.0
  251614. .IP \(bu 2
  251615. \fBPR\fP \fI\%#30897\fP: (\fI\%mtorromeo\fP) Only remove the word linux from distroname when its not part of the name (refs: \fI\%#30942\fP)
  251616. .IP \(bu 2
  251617. c7f87cc371 Merge pull request \fI\%#30942\fP from rallytime/bp\-30897
  251618. .IP \(bu 2
  251619. 885e00ba54 Only remove the word linux from distroname when its not part of the name
  251620. .UNINDENT
  251621. .IP \(bu 2
  251622. \fBPR\fP \fI\%#30922\fP: (\fI\%jacobhammons\fP) Rev latest version to 2015.8.5
  251623. @ \fI2016\-02\-05 01:20:27 UTC\fP
  251624. .INDENT 2.0
  251625. .IP \(bu 2
  251626. 35b7f62669 Merge pull request \fI\%#30922\fP from jacobhammons/prev\-rel\-notes
  251627. .IP \(bu 2
  251628. 57c1ec637a Rev latest version to 2015.8.5
  251629. .UNINDENT
  251630. .IP \(bu 2
  251631. \fBISSUE\fP \fI\%#30840\fP: (\fI\%HeathNaylor\fP) Generic Error for SALT.STATES.BOTO_ELB (refs: \fI\%#30865\fP)
  251632. .IP \(bu 2
  251633. \fBPR\fP \fI\%#30865\fP: (\fI\%abednarik\fP) Better boto elb error message.
  251634. @ \fI2016\-02\-04 21:02:05 UTC\fP
  251635. .INDENT 2.0
  251636. .IP \(bu 2
  251637. 2488bb902e Merge pull request \fI\%#30865\fP from abednarik/better_boto_elb_error
  251638. .IP \(bu 2
  251639. 3561e8c19b Better boto elb error message.
  251640. .UNINDENT
  251641. .IP \(bu 2
  251642. \fBPR\fP \fI\%#30831\fP: (\fI\%jacobhammons\fP) Updated readme
  251643. @ \fI2016\-02\-02 21:06:02 UTC\fP
  251644. .INDENT 2.0
  251645. .IP \(bu 2
  251646. 4da04f82c8 Merge pull request \fI\%#30831\fP from jacobhammons/readme\-update
  251647. .IP \(bu 2
  251648. 01a92f5d98 Updated readme
  251649. .UNINDENT
  251650. .IP \(bu 2
  251651. \fBPR\fP \fI\%#30829\fP: (\fI\%jacobhammons\fP) Updated latest version to 2015.8.4
  251652. @ \fI2016\-02\-02 20:06:13 UTC\fP
  251653. .INDENT 2.0
  251654. .IP \(bu 2
  251655. 90c1ea9f6c Merge pull request \fI\%#30829\fP from jacobhammons/release\-2015.5
  251656. .IP \(bu 2
  251657. c95bb60148 Version to 2015.8.4
  251658. .UNINDENT
  251659. .IP \(bu 2
  251660. \fBISSUE\fP \fI\%#24575\fP: (\fI\%BrandKNY\fP) raid.present inside mdadm.py triggers IndexError: list index out of range (refs: \fI\%#30784\fP)
  251661. .IP \(bu 2
  251662. \fBISSUE\fP \fI\%#23694\fP: (\fI\%gmolight\fP) mdadm.py module (refs: \fI\%#30784\fP)
  251663. .IP \(bu 2
  251664. \fBPR\fP \fI\%#30784\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24952\fP to 2015.5
  251665. @ \fI2016\-02\-01 21:43:01 UTC\fP
  251666. .INDENT 2.0
  251667. .IP \(bu 2
  251668. \fBPR\fP \fI\%#24952\fP: (\fI\%pcn\fP) Don\(aqt split the string on a single line (refs: \fI\%#30784\fP)
  251669. .IP \(bu 2
  251670. 80a36793cb Merge pull request \fI\%#30784\fP from rallytime/bp\-24952
  251671. .IP \(bu 2
  251672. a07908bdea Don\(aqt split the string on a single line
  251673. .UNINDENT
  251674. .IP \(bu 2
  251675. \fBISSUE\fP \fI\%#30560\fP: (\fI\%terminalmage\fP) yumpkg.py: pkg.unhold fails in yum (refs: \fI\%#30764\fP)
  251676. .IP \(bu 2
  251677. \fBPR\fP \fI\%#30764\fP: (\fI\%terminalmage\fP) Work around yum versionlock\(aqs inability to remove holds by package name alone
  251678. @ \fI2016\-02\-01 18:14:27 UTC\fP
  251679. .INDENT 2.0
  251680. .IP \(bu 2
  251681. e978f5392f Merge pull request \fI\%#30764\fP from terminalmage/issue30560
  251682. .IP \(bu 2
  251683. 39736afcd7 Work around yum versionlock\(aqs inability to remove holds by package name alone
  251684. .UNINDENT
  251685. .IP \(bu 2
  251686. \fBPR\fP \fI\%#30760\fP: (\fI\%toanju\fP) Changed output format of arp_ip_target from list to comma delimited...
  251687. @ \fI2016\-01\-31 19:05:02 UTC\fP
  251688. .INDENT 2.0
  251689. .IP \(bu 2
  251690. \fBPR\fP \fI\%#27952\fP: (\fI\%tomwalsh\fP) Corrected format of arp_ip_target in network config files and modprobe files (refs: \fI\%#30760\fP)
  251691. .IP \(bu 2
  251692. 6f565c0d76 Merge pull request \fI\%#30760\fP from toanju/2015.5
  251693. .IP \(bu 2
  251694. dc4256f7df Changed output format of arp_ip_target from list to comma delimited string
  251695. .UNINDENT
  251696. .IP \(bu 2
  251697. \fBISSUE\fP \fI\%#30722\fP: (\fI\%yannis666\fP) mine config is not merged from minion config and pillar (refs: \fI\%#30757\fP)
  251698. .IP \(bu 2
  251699. \fBPR\fP \fI\%#30757\fP: (\fI\%yannis666\fP) Fix to mine update to merge configuration
  251700. @ \fI2016\-01\-31 19:02:44 UTC\fP
  251701. .INDENT 2.0
  251702. .IP \(bu 2
  251703. 1c205b4898 Merge pull request \fI\%#30757\fP from yannis666/fix\-for\-mine\-update\-merge
  251704. .IP \(bu 2
  251705. 61bb23e256 Fix to mine update to merge configuration
  251706. .UNINDENT
  251707. .IP \(bu 2
  251708. \fBISSUE\fP \fI\%#28751\fP: (\fI\%olfway\fP) network.system state ignores test=True on debian/ubuntu (refs: \fI\%#30749\fP)
  251709. .IP \(bu 2
  251710. \fBPR\fP \fI\%#30749\fP: (\fI\%abednarik\fP) Fix Netwotk hostname Module in Debian systems.
  251711. @ \fI2016\-01\-29 23:01:09 UTC\fP
  251712. .INDENT 2.0
  251713. .IP \(bu 2
  251714. f9fde8f6a7 Merge pull request \fI\%#30749\fP from abednarik/fix_network_system_test
  251715. .IP \(bu 2
  251716. 1e9e97df59 Fix Netwotk hostname Module in Debian systems.
  251717. .UNINDENT
  251718. .IP \(bu 2
  251719. \fBISSUE\fP \fI\%#28438\fP: (\fI\%vakulich\fP) Master failed to save job cache file: "Could not write job invocation cache file: [Errno 2] No such file or directory" (refs: \fI\%#30699\fP)
  251720. .IP \(bu 2
  251721. \fBPR\fP \fI\%#30699\fP: (\fI\%abednarik\fP) Add Retry to save_load.
  251722. @ \fI2016\-01\-29 16:08:30 UTC\fP
  251723. .INDENT 2.0
  251724. .IP \(bu 2
  251725. 076268089a Merge pull request \fI\%#30699\fP from abednarik/save_load_retry_time
  251726. .IP \(bu 2
  251727. 186872cf49 Add Retry to save_load.
  251728. .UNINDENT
  251729. .IP \(bu 2
  251730. \fBISSUE\fP \fI\%#30565\fP: (\fI\%heaje\fP) scsi.ls fails to run both on CentOS 6 and CentOS 7 (refs: \fI\%#30659\fP)
  251731. .IP \(bu 2
  251732. \fBPR\fP \fI\%#30659\fP: (\fI\%sjmh\fP) Fix lsscsi issues for certain platforms
  251733. @ \fI2016\-01\-28 15:53:38 UTC\fP
  251734. .INDENT 2.0
  251735. .IP \(bu 2
  251736. 8d79d1b9c7 Merge pull request \fI\%#30659\fP from sjmh/fix\-scsi
  251737. .IP \(bu 2
  251738. 3544dd995e Fix lsscsi issues for certain platforms
  251739. .UNINDENT
  251740. .IP \(bu 2
  251741. \fBISSUE\fP \fI\%#18980\fP: (\fI\%lrhazi\fP) salt\-cloud: ExtraData: unpack(b) received extra data. (refs: \fI\%#30671\fP)
  251742. .IP \(bu 2
  251743. \fBPR\fP \fI\%#30671\fP: (\fI\%techhat\fP) Add file locking to cloud index
  251744. @ \fI2016\-01\-27 17:14:55 UTC\fP
  251745. .INDENT 2.0
  251746. .IP \(bu 2
  251747. 516919525a Merge pull request \fI\%#30671\fP from techhat/lockcloud
  251748. .IP \(bu 2
  251749. 4719f8d4ea Whitespace
  251750. .IP \(bu 2
  251751. 8e7eca23e4 Add file locking to cloud index
  251752. .UNINDENT
  251753. .IP \(bu 2
  251754. \fBISSUE\fP \fI\%#28320\fP: (\fI\%Grokzen\fP) file.comment & file.uncomment changes file permissions on edit (refs: \fI\%#30586\fP)
  251755. .IP \(bu 2
  251756. \fBPR\fP \fI\%#30586\fP: (\fI\%abednarik\fP) Fix comment_line permissions.
  251757. @ \fI2016\-01\-25 23:24:02 UTC\fP
  251758. .INDENT 2.0
  251759. .IP \(bu 2
  251760. 643c9c9616 Merge pull request \fI\%#30586\fP from abednarik/fix_comment_line_perms
  251761. .IP \(bu 2
  251762. 8b395a42cb Fix comment_line permissions.
  251763. .UNINDENT
  251764. .IP \(bu 2
  251765. \fBPR\fP \fI\%#30582\fP: (\fI\%terminalmage\fP) yumpkg.check_db: run separate repoquery commands when multiple names passed
  251766. @ \fI2016\-01\-24 17:15:04 UTC\fP
  251767. .INDENT 2.0
  251768. .IP \(bu 2
  251769. a823e21428 Merge pull request \fI\%#30582\fP from terminalmage/dnf\-repoquery\-multiple\-targets
  251770. .IP \(bu 2
  251771. 410da789f9 yumpkg.check_db: run separate repoquery commands when multiple names passed
  251772. .UNINDENT
  251773. .IP \(bu 2
  251774. \fBPR\fP \fI\%#30548\fP: (\fI\%jacobhammons\fP) Added placeholder release notes for 2015.5.10
  251775. @ \fI2016\-01\-22 18:36:01 UTC\fP
  251776. .INDENT 2.0
  251777. .IP \(bu 2
  251778. 8e56be7f4c Merge pull request \fI\%#30548\fP from jacobhammons/doc\-fixes
  251779. .IP \(bu 2
  251780. 03c51bb54d Added placeholder release notes for 2015.5.10 Changed old doc links from docs.saltstack.org to docs.saltstack.com
  251781. .UNINDENT
  251782. .IP \(bu 2
  251783. \fBPR\fP \fI\%#30530\fP: (\fI\%terminalmage\fP) 2015.5 tweaks from \fI\%#30529\fP
  251784. @ \fI2016\-01\-22 16:26:21 UTC\fP
  251785. .INDENT 2.0
  251786. .IP \(bu 2
  251787. \fBPR\fP \fI\%#30529\fP: (\fI\%terminalmage\fP) Merge 2015.5 into 2015.8 (refs: \fI\%#30530\fP)
  251788. .IP \(bu 2
  251789. 1aafd4c5b5 Merge pull request \fI\%#30530\fP from terminalmage/yumpkg\-dnf\-cleanup
  251790. .IP \(bu 2
  251791. 2586f71bcf 2015.5 tweaks from \fI\%#30529\fP
  251792. .UNINDENT
  251793. .IP \(bu 2
  251794. \fBISSUE\fP \fI\%#23553\fP: (\fI\%aboe76\fP) dnf a new package provider for fedora 22 (refs: \fI\%#30484\fP)
  251795. .IP \(bu 2
  251796. \fBPR\fP \fI\%#30484\fP: (\fI\%terminalmage\fP) Backport DNF support to 2015.5 branch
  251797. @ \fI2016\-01\-21 22:14:46 UTC\fP
  251798. .INDENT 2.0
  251799. .IP \(bu 2
  251800. 7798d42272 Merge pull request \fI\%#30484\fP from terminalmage/dnf\-yumpkg\-2015.5
  251801. .IP \(bu 2
  251802. 330e26d1da Hide get_locked_packages
  251803. .IP \(bu 2
  251804. 5a637420e8 Backport DNF support to 2015.5 branch
  251805. .UNINDENT
  251806. .IP \(bu 2
  251807. \fBPR\fP \fI\%#30512\fP: (\fI\%jfindlay\fP) disable pkgrepo test for ubuntu 15.10+
  251808. @ \fI2016\-01\-21 21:32:58 UTC\fP
  251809. .INDENT 2.0
  251810. .IP \(bu 2
  251811. b348f804b1 Merge pull request \fI\%#30512\fP from jfindlay/repo_test
  251812. .IP \(bu 2
  251813. 66f06f2bd3 disable pkgrepo test for ubuntu 15.10+
  251814. .UNINDENT
  251815. .IP \(bu 2
  251816. \fBPR\fP \fI\%#30478\fP: (\fI\%justinta\fP) Updated pip_state to work with pip 8.0
  251817. @ \fI2016\-01\-21 16:02:41 UTC\fP
  251818. .INDENT 2.0
  251819. .IP \(bu 2
  251820. a9348dfef8 Merge pull request \fI\%#30478\fP from jtand/pip_8_update
  251821. .IP \(bu 2
  251822. 6227368830 Convert version to int, instead of comparing strings to ints
  251823. .IP \(bu 2
  251824. 20384a4810 Added InstallationError to except block
  251825. .IP \(bu 2
  251826. baa274bca9 Updated pip_state to work with pip 8.0
  251827. .UNINDENT
  251828. .IP \(bu 2
  251829. \fBISSUE\fP \fI\%#30465\fP: (\fI\%alandrees\fP) Nested imports with pyobjects (refs: \fI\%#30482\fP)
  251830. .IP \(bu 2
  251831. \fBPR\fP \fI\%#30482\fP: (\fI\%borgstrom\fP) Pyobjects recursive import support (for 2015.5)
  251832. @ \fI2016\-01\-21 15:54:32 UTC\fP
  251833. .INDENT 2.0
  251834. .IP \(bu 2
  251835. a30147c64f Merge pull request \fI\%#30482\fP from borgstrom/pyobjects_recursive
  251836. .IP \(bu 2
  251837. 2c55a7580b Fixup lint errors
  251838. .IP \(bu 2
  251839. b46df0e4b5 Allow recursive salt:// imports
  251840. .IP \(bu 2
  251841. 51bfa16173 Add test to prove that recursive imports are currently broken
  251842. .UNINDENT
  251843. .IP \(bu 2
  251844. \fBPR\fP \fI\%#30459\fP: (\fI\%jfindlay\fP) modules.pkg: disable repo int test for ubuntu 15.10
  251845. @ \fI2016\-01\-20 16:41:12 UTC\fP
  251846. .INDENT 2.0
  251847. .IP \(bu 2
  251848. 5c7cc51937 Merge pull request \fI\%#30459\fP from jfindlay/pkg_tests
  251849. .IP \(bu 2
  251850. fb9972f590 modules.pkg: disable repo int test for ubuntu 15.10
  251851. .UNINDENT
  251852. .IP \(bu 2
  251853. \fBPR\fP \fI\%#30443\fP: (\fI\%justinta\fP) Boto uses False for is_default instead of None
  251854. @ \fI2016\-01\-19 18:28:08 UTC\fP
  251855. .INDENT 2.0
  251856. .IP \(bu 2
  251857. dd2ceb4c07 Merge pull request \fI\%#30443\fP from jtand/boto_vpc_5
  251858. .IP \(bu 2
  251859. 2f77152479 Boto uses False for is_default instead of None
  251860. .UNINDENT
  251861. .IP \(bu 2
  251862. \fBISSUE\fP \fI\%#26833\fP: (\fI\%twangboy\fP) salt\-cloud fails to spin up windows minion on 2015.8 Head (refs: \fI\%#26853\fP)
  251863. .IP \(bu 2
  251864. \fBISSUE\fP \fI\%#21256\fP: (\fI\%dhs\-rec\fP) win.exe package for RH 6 (refs: \fI\%#26853\fP)
  251865. .IP \(bu 2
  251866. \fBPR\fP \fI\%#30420\fP: (\fI\%attiasr\fP) Backport \fI\%#26853\fP
  251867. @ \fI2016\-01\-19 17:33:58 UTC\fP
  251868. .INDENT 2.0
  251869. .IP \(bu 2
  251870. \fBPR\fP \fI\%#26853\fP: (\fI\%UtahDave\fP) Fix salt\-cloud on windows (refs: \fI\%#30420\fP)
  251871. .IP \(bu 2
  251872. 62d9dddced Merge pull request \fI\%#30420\fP from attiasr/patch\-1
  251873. .IP \(bu 2
  251874. 4de343c5a1 Backport \fI\%#26853\fP
  251875. .UNINDENT
  251876. .IP \(bu 2
  251877. \fBISSUE\fP \fI\%#30341\fP: (\fI\%dnd\fP) salt\-cloud linode connection reset by peer (refs: \fI\%#30364\fP)
  251878. .IP \(bu 2
  251879. \fBPR\fP \fI\%#30364\fP: (\fI\%rallytime\fP) Add TLS version imports and add linode driver documentation notices
  251880. @ \fI2016\-01\-14 19:04:47 UTC\fP
  251881. .INDENT 2.0
  251882. .IP \(bu 2
  251883. 5a923b3aa9 Merge pull request \fI\%#30364\fP from rallytime/fix\-30341
  251884. .IP \(bu 2
  251885. 79bcf151cb Add TLS version imports and add linode driver documentation notices
  251886. .UNINDENT
  251887. .IP \(bu 2
  251888. \fBISSUE\fP \fI\%#28822\fP: (\fI\%HerrBerg\fP) saltenv url\-parameter not working in file.managed for salt:// sources since 2015.8 (refs: \fI\%#30166\fP)
  251889. .IP \(bu 2
  251890. \fBPR\fP \fI\%#30184\fP: (\fI\%rallytime\fP) Back\-port \fI\%#30166\fP to 2015.5
  251891. @ \fI2016\-01\-13 18:27:36 UTC\fP
  251892. .INDENT 2.0
  251893. .IP \(bu 2
  251894. \fBPR\fP \fI\%#30166\fP: (\fI\%robgott\fP) adding split_env call to cp.hash_file to pick up saltenv in file quer… (refs: \fI\%#30184\fP)
  251895. .IP \(bu 2
  251896. f037fd9c27 Merge pull request \fI\%#30184\fP from rallytime/bp\-30166
  251897. .IP \(bu 2
  251898. fa6b1b3022 adding split_env call to cp.hash_file to pick up saltenv in file query parameter
  251899. .UNINDENT
  251900. .IP \(bu 2
  251901. \fBPR\fP \fI\%#30291\fP: (\fI\%thegoodduke\fP) ipset: fix test=true & add comment for every entry
  251902. @ \fI2016\-01\-12 19:40:23 UTC\fP
  251903. .INDENT 2.0
  251904. .IP \(bu 2
  251905. \fBPR\fP \fI\%#30170\fP: (\fI\%thegoodduke\fP) ipset: fix comment and test (refs: \fI\%#30291\fP)
  251906. .IP \(bu 2
  251907. 1d8413fd2f Merge pull request \fI\%#30291\fP from thegoodduke/for_fix_ipset
  251908. .IP \(bu 2
  251909. 62d6ccf561 ipset: fix test=true & add comment for every entry
  251910. .UNINDENT
  251911. .UNINDENT
  251912. .SS Salt 2015.5.2 Release Notes
  251913. .INDENT 0.0
  251914. .TP
  251915. .B release
  251916. 2015\-06\-10
  251917. .UNINDENT
  251918. .sp
  251919. Version 2015.5.2 is a bugfix release for 2015.5.0\&.
  251920. .SS Statistics
  251921. .INDENT 0.0
  251922. .IP \(bu 2
  251923. Total Merges: \fB112\fP
  251924. .IP \(bu 2
  251925. Total Issue References: \fB36\fP
  251926. .IP \(bu 2
  251927. Total PR References: \fB145\fP
  251928. .IP \(bu 2
  251929. Contributors: \fB49\fP (\fI\%Sacro\fP, \fI\%The\-Loeki\fP, \fI\%YanChii\fP, \fI\%aboe76\fP, \fI\%anlutro\fP, \fI\%awdrius\fP, \fI\%basepi\fP, \fI\%cdarwin\fP, \fI\%cedwards\fP, \fI\%clan\fP, \fI\%corywright\fP, \fI\%cro\fP, \fI\%djcrabhat\fP, \fI\%dmyerscough\fP, \fI\%dr4Ke\fP, \fI\%fayetted\fP, \fI\%galet\fP, \fI\%garethgreenaway\fP, \fI\%ghost\fP, \fI\%hazelesque\fP, \fI\%hvnsweeting\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jayeshka\fP, \fI\%jbq\fP, \fI\%jfindlay\fP, \fI\%joejulian\fP, \fI\%justinta\fP, \fI\%kartiksubbarao\fP, \fI\%kiorky\fP, \fI\%merll\fP, \fI\%msteed\fP, \fI\%neogenix\fP, \fI\%nicholascapo\fP, \fI\%nleib\fP, \fI\%pengyao\fP, \fI\%pruiz\fP, \fI\%rallytime\fP, \fI\%randybias\fP, \fI\%ryan\-lane\fP, \fI\%steverweber\fP, \fI\%swdream\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thcipriani\fP, \fI\%thusoy\fP, \fI\%trevor\-h\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  251930. .UNINDENT
  251931. .SS Changelog for v2015.5.1..v2015.5.2
  251932. .sp
  251933. \fIGenerated at: 2018\-05\-27 21:13:02 UTC\fP
  251934. .INDENT 0.0
  251935. .IP \(bu 2
  251936. \fBPR\fP \fI\%#24372\fP: (\fI\%rallytime\fP) Add 2015.5.2 release notes
  251937. @ \fI2015\-06\-03 19:30:46 UTC\fP
  251938. .INDENT 2.0
  251939. .IP \(bu 2
  251940. d71d75e2ec Merge pull request \fI\%#24372\fP from rallytime/release_notes
  251941. .IP \(bu 2
  251942. f5ec1a1693 Add 2015.5.2 release notes
  251943. .UNINDENT
  251944. .IP \(bu 2
  251945. \fBPR\fP \fI\%#24346\fP: (\fI\%rallytime\fP) Backport \fI\%#24271\fP to 2015.5
  251946. @ \fI2015\-06\-03 18:44:31 UTC\fP
  251947. .INDENT 2.0
  251948. .IP \(bu 2
  251949. \fBPR\fP \fI\%#24271\fP: (\fI\%randybias\fP) Fixed the setup instructions (refs: \fI\%#24346\fP)
  251950. .IP \(bu 2
  251951. 76927c9ea1 Merge pull request \fI\%#24346\fP from rallytime/bp\-24271
  251952. .IP \(bu 2
  251953. 04067b6833 Fixed the setup instructions
  251954. .UNINDENT
  251955. .IP \(bu 2
  251956. \fBISSUE\fP \fI\%#24012\fP: (\fI\%jbq\fP) Enabling a service does not create the appropriate rc.d symlinks on Ubuntu (refs: \fI\%#24013\fP)
  251957. .IP \(bu 2
  251958. \fBPR\fP \fI\%#24345\fP: (\fI\%rallytime\fP) Backport \fI\%#24013\fP to 2015.5
  251959. @ \fI2015\-06\-03 18:39:41 UTC\fP
  251960. .INDENT 2.0
  251961. .IP \(bu 2
  251962. \fBPR\fP \fI\%#24013\fP: (\fI\%jbq\fP) Fix enabling a service on Ubuntu \fI\%#24012\fP (refs: \fI\%#24345\fP)
  251963. .IP \(bu 2
  251964. 4afa03d8e3 Merge pull request \fI\%#24345\fP from rallytime/bp\-24013
  251965. .IP \(bu 2
  251966. 16e0732b50 Fix enabling a service on Ubuntu \fI\%#24012\fP
  251967. .UNINDENT
  251968. .IP \(bu 2
  251969. \fBPR\fP \fI\%#24365\fP: (\fI\%jacobhammons\fP) Fixes for PDF build errors
  251970. @ \fI2015\-06\-03 17:50:02 UTC\fP
  251971. .INDENT 2.0
  251972. .IP \(bu 2
  251973. c3392c246a Merge pull request \fI\%#24365\fP from jacobhammons/DocFixes
  251974. .IP \(bu 2
  251975. 0fc190267f Fixes for PDF build errors
  251976. .UNINDENT
  251977. .IP \(bu 2
  251978. \fBISSUE\fP \fI\%#22991\fP: (\fI\%nicholascapo\fP) npm.installed ignores test=True (refs: \fI\%#24313\fP)
  251979. .IP \(bu 2
  251980. \fBPR\fP \fI\%#24313\fP: (\fI\%nicholascapo\fP) Fix \fI\%#22991\fP Correctly set result when test=True
  251981. @ \fI2015\-06\-03 14:49:18 UTC\fP
  251982. .INDENT 2.0
  251983. .IP \(bu 2
  251984. ae681a4db1 Merge pull request \fI\%#24313\fP from nicholascapo/fix\-22991\-npm.installed\-test\-true
  251985. .IP \(bu 2
  251986. ac9644cb19 Fix \fI\%#22991\fP npm.installed correctly set result on test=True
  251987. .UNINDENT
  251988. .IP \(bu 2
  251989. \fBISSUE\fP \fI\%#18966\fP: (\fI\%bechtoldt\fP) file.serialize ignores test=True (refs: \fI\%#24312\fP)
  251990. .IP \(bu 2
  251991. \fBPR\fP \fI\%#24312\fP: (\fI\%nicholascapo\fP) Fix \fI\%#18966\fP: file.serialize supports test=True
  251992. @ \fI2015\-06\-03 14:49:06 UTC\fP
  251993. .INDENT 2.0
  251994. .IP \(bu 2
  251995. d57a9a267c Merge pull request \fI\%#24312\fP from nicholascapo/fix\-18966\-file.serialize\-test\-true
  251996. .IP \(bu 2
  251997. e7328e7043 Fix \fI\%#18966\fP file.serialize correctly set result on test=True
  251998. .UNINDENT
  251999. .IP \(bu 2
  252000. \fBPR\fP \fI\%#24302\fP: (\fI\%jfindlay\fP) fix pkg hold/unhold integration test
  252001. @ \fI2015\-06\-03 03:27:43 UTC\fP
  252002. .INDENT 2.0
  252003. .IP \(bu 2
  252004. 6b694e3495 Merge pull request \fI\%#24302\fP from jfindlay/pkg_tests
  252005. .IP \(bu 2
  252006. c2db0b1758 fix pkg hold/unhold integration test
  252007. .UNINDENT
  252008. .IP \(bu 2
  252009. \fBISSUE\fP \fI\%#14021\fP: (\fI\%emostar\fP) EC2 doc mentions mount_point, but unable to use properly (refs: \fI\%#24349\fP)
  252010. .IP \(bu 2
  252011. \fBPR\fP \fI\%#24349\fP: (\fI\%rallytime\fP) Remove references to mount_points in ec2 docs
  252012. @ \fI2015\-06\-03 01:54:09 UTC\fP
  252013. .INDENT 2.0
  252014. .IP \(bu 2
  252015. aca8447ced Merge pull request \fI\%#24349\fP from rallytime/fix\-14021
  252016. .IP \(bu 2
  252017. a235b114d7 Remove references to mount_points in ec2 docs
  252018. .UNINDENT
  252019. .IP \(bu 2
  252020. \fBPR\fP \fI\%#24328\fP: (\fI\%dr4Ke\fP) Fix state grains silently fails 2015.5
  252021. @ \fI2015\-06\-02 15:18:46 UTC\fP
  252022. .INDENT 2.0
  252023. .IP \(bu 2
  252024. 88a997e6ee Merge pull request \fI\%#24328\fP from dr4Ke/fix_state_grains_silently_fails_2015.5
  252025. .IP \(bu 2
  252026. 8a63d1ebbe fix state grains silently fails \fI\%#24319\fP
  252027. .IP \(bu 2
  252028. ca1af20203 grains state: add some tests
  252029. .UNINDENT
  252030. .IP \(bu 2
  252031. \fBISSUE\fP \fI\%#9772\fP: (\fI\%s0undt3ch\fP) Delete VM\(aqs in a map does not delete them all (refs: \fI\%#24310\fP)
  252032. .IP \(bu 2
  252033. \fBISSUE\fP \fI\%#24036\fP: (\fI\%arthurlogilab\fP) [salt\-cloud] Protect against passing command line arguments as names for the \-\-destroy command in map files (refs: \fI\%#24310\fP)
  252034. .IP \(bu 2
  252035. \fBPR\fP \fI\%#24310\fP: (\fI\%techhat\fP) Add warning about destroying maps
  252036. @ \fI2015\-06\-02 03:01:28 UTC\fP
  252037. .INDENT 2.0
  252038. .IP \(bu 2
  252039. 7dcd9bb5de Merge pull request \fI\%#24310\fP from techhat/mapwarning
  252040. .IP \(bu 2
  252041. ca535a6ff4 Add warning about destroying maps
  252042. .UNINDENT
  252043. .IP \(bu 2
  252044. \fBPR\fP \fI\%#24281\fP: (\fI\%steverweber\fP) Ipmi docfix
  252045. @ \fI2015\-06\-01 17:45:36 UTC\fP
  252046. .INDENT 2.0
  252047. .IP \(bu 2
  252048. 02bfb254d6 Merge pull request \fI\%#24281\fP from steverweber/ipmi_docfix
  252049. .IP \(bu 2
  252050. dd36f2c555 yaml formating
  252051. .IP \(bu 2
  252052. f6deef3047 include api_kg kwarg in ipmi state
  252053. .IP \(bu 2
  252054. a7d4e97bb9 doc cleanup
  252055. .IP \(bu 2
  252056. 0ded2fdbef save more cleanup to doc
  252057. .IP \(bu 2
  252058. 08872f2da3 fix name api_key to api_kg
  252059. .IP \(bu 2
  252060. 165a387681 doc fix add api_kg kwargs
  252061. .IP \(bu 2
  252062. 1ec78887e4 cleanup docs
  252063. .UNINDENT
  252064. .IP \(bu 2
  252065. \fBPR\fP \fI\%#24287\fP: (\fI\%jfindlay\fP) fix pkg test on ubuntu 12.04 for realz
  252066. @ \fI2015\-06\-01 14:16:37 UTC\fP
  252067. .INDENT 2.0
  252068. .IP \(bu 2
  252069. 73cd2cbe1f Merge pull request \fI\%#24287\fP from jfindlay/pkg_test
  252070. .IP \(bu 2
  252071. 98944d8c7f fix pkg test on ubuntu 12.04 for realz
  252072. .UNINDENT
  252073. .IP \(bu 2
  252074. \fBPR\fP \fI\%#24279\fP: (\fI\%rallytime\fP) Backport \fI\%#24263\fP to 2015.5
  252075. @ \fI2015\-06\-01 04:29:34 UTC\fP
  252076. .INDENT 2.0
  252077. .IP \(bu 2
  252078. \fBPR\fP \fI\%#24263\fP: (\fI\%cdarwin\fP) Correct usage of import_yaml in formula documentation (refs: \fI\%#24279\fP)
  252079. .IP \(bu 2
  252080. 02017a074c Merge pull request \fI\%#24279\fP from rallytime/bp\-24263
  252081. .IP \(bu 2
  252082. beff7c7785 Correct usage of import_yaml in formula documentation
  252083. .UNINDENT
  252084. .IP \(bu 2
  252085. \fBISSUE\fP \fI\%#24226\fP: (\fI\%c4urself\fP) iptables state needs to keep ordering of flags (refs: \fI\%#24277\fP)
  252086. .IP \(bu 2
  252087. \fBPR\fP \fI\%#24277\fP: (\fI\%rallytime\fP) Put a space between after_jump commands
  252088. @ \fI2015\-06\-01 04:28:26 UTC\fP
  252089. .INDENT 2.0
  252090. .IP \(bu 2
  252091. 2ba696d54a Merge pull request \fI\%#24277\fP from rallytime/fix_iptables_jump
  252092. .IP \(bu 2
  252093. e2d1606b19 Move after_jump split out of loop
  252094. .IP \(bu 2
  252095. d14f1307b6 Remove extra loop
  252096. .IP \(bu 2
  252097. 42ed5320b6 Put a space between after_jump commands
  252098. .UNINDENT
  252099. .IP \(bu 2
  252100. \fBPR\fP \fI\%#24262\fP: (\fI\%basepi\fP) More dictupdate after \fI\%#24142\fP
  252101. @ \fI2015\-05\-31 04:09:37 UTC\fP
  252102. .INDENT 2.0
  252103. .IP \(bu 2
  252104. \fBPR\fP \fI\%#24142\fP: (\fI\%basepi\fP) Optimize dictupdate.update and add \fI\%#24097\fP functionality (refs: \fI\%#24262\fP)
  252105. .IP \(bu 2
  252106. \fBPR\fP \fI\%#24097\fP: (\fI\%kiorky\fP) Optimize dictupdate (refs: \fI\%#24142\fP)
  252107. .IP \(bu 2
  252108. 113eba34ec Merge pull request \fI\%#24262\fP from basepi/dictupdatefix
  252109. .IP \(bu 2
  252110. 0c4832c0d4 Raise a typeerror if non\-dict types
  252111. .IP \(bu 2
  252112. be21aaa122 Pylint
  252113. .IP \(bu 2
  252114. bb8a6c6cc9 More optimization
  252115. .IP \(bu 2
  252116. c933249d1a py3 compat
  252117. .IP \(bu 2
  252118. ff6b2a781f Further optimize dictupdate.update()
  252119. .IP \(bu 2
  252120. c73f5ba37c Remove unused valtype
  252121. .UNINDENT
  252122. .IP \(bu 2
  252123. \fBPR\fP \fI\%#24269\fP: (\fI\%kiorky\fP) zfs: Fix spurious retcode hijacking in virtual
  252124. @ \fI2015\-05\-30 17:47:49 UTC\fP
  252125. .INDENT 2.0
  252126. .IP \(bu 2
  252127. 785d5a1bfc Merge pull request \fI\%#24269\fP from makinacorpus/zfs
  252128. .IP \(bu 2
  252129. 0bf23ce701 zfs: Fix spurious retcode hijacking in virtual
  252130. .UNINDENT
  252131. .IP \(bu 2
  252132. \fBPR\fP \fI\%#24257\fP: (\fI\%jfindlay\fP) fix pkg mod integration test on ubuntu 12.04
  252133. @ \fI2015\-05\-29 23:09:00 UTC\fP
  252134. .INDENT 2.0
  252135. .IP \(bu 2
  252136. 3d885c04f0 Merge pull request \fI\%#24257\fP from jfindlay/pkg_tests
  252137. .IP \(bu 2
  252138. 9508924c02 fix pkg mod integration test on ubuntu 12.04
  252139. .UNINDENT
  252140. .IP \(bu 2
  252141. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  252142. .IP \(bu 2
  252143. \fBISSUE\fP \fI\%#23657\fP: (\fI\%arthurlogilab\fP) [salt\-cloud lxc] NameError: global name \(aq__salt__\(aq is not defined (refs: \fI\%#23982\fP, \fI\%#24080\fP)
  252144. .IP \(bu 2
  252145. \fBPR\fP \fI\%#24260\fP: (\fI\%basepi\fP) Fix some typos from \fI\%#24080\fP
  252146. @ \fI2015\-05\-29 22:54:58 UTC\fP
  252147. .INDENT 2.0
  252148. .IP \(bu 2
  252149. \fBPR\fP \fI\%#24080\fP: (\fI\%kiorky\fP) Lxc consistency2 (refs: \fI\%#24066\fP, \fI\%#24260\fP, \fI\%#23982\fP)
  252150. .IP \(bu 2
  252151. \fBPR\fP \fI\%#24066\fP: (\fI\%kiorky\fP) Merge forward 2015.5 \-> develop (refs: \fI\%#23982\fP)
  252152. .IP \(bu 2
  252153. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  252154. .IP \(bu 2
  252155. \fBPR\fP \fI\%#23982\fP: (\fI\%kiorky\fP) lxc: path support (refs: \fI\%#24080\fP)
  252156. .IP \(bu 2
  252157. 08a10755b3 Merge pull request \fI\%#24260\fP from basepi/lxctypos24080
  252158. .IP \(bu 2
  252159. 0fa1ad3977 Fix another lxc typo
  252160. .IP \(bu 2
  252161. 669938f28d s/you ll/you\(aqll/
  252162. .UNINDENT
  252163. .IP \(bu 2
  252164. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  252165. .IP \(bu 2
  252166. \fBISSUE\fP \fI\%#23657\fP: (\fI\%arthurlogilab\fP) [salt\-cloud lxc] NameError: global name \(aq__salt__\(aq is not defined (refs: \fI\%#23982\fP, \fI\%#24080\fP)
  252167. .IP \(bu 2
  252168. \fBPR\fP \fI\%#24080\fP: (\fI\%kiorky\fP) Lxc consistency2 (refs: \fI\%#24066\fP, \fI\%#24260\fP, \fI\%#23982\fP)
  252169. @ \fI2015\-05\-29 22:51:54 UTC\fP
  252170. .INDENT 2.0
  252171. .IP \(bu 2
  252172. \fBPR\fP \fI\%#24066\fP: (\fI\%kiorky\fP) Merge forward 2015.5 \-> develop (refs: \fI\%#23982\fP)
  252173. .IP \(bu 2
  252174. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  252175. .IP \(bu 2
  252176. \fBPR\fP \fI\%#23982\fP: (\fI\%kiorky\fP) lxc: path support (refs: \fI\%#24080\fP)
  252177. .IP \(bu 2
  252178. 75590cf490 Merge pull request \fI\%#24080\fP from makinacorpus/lxc_consistency2
  252179. .IP \(bu 2
  252180. 81f80674a2 lxc: fix old lxc test
  252181. .IP \(bu 2
  252182. 458f50617b seed: lint
  252183. .IP \(bu 2
  252184. 96b8d55f14 Fix seed.mkconfig yamldump
  252185. .IP \(bu 2
  252186. 76ddb683f4 lxc/applynet: conservative
  252187. .IP \(bu 2
  252188. ce7096fdb7 variable collision
  252189. .IP \(bu 2
  252190. 8a8b28d652 lxc: lint
  252191. .IP \(bu 2
  252192. 458b18b7e6 more lxc docs
  252193. .IP \(bu 2
  252194. ef1f95231a lxc docs: typos
  252195. .IP \(bu 2
  252196. d67a43dc1f more lxc docs
  252197. .IP \(bu 2
  252198. 608da5ef5d modules/lxc: merge resolution
  252199. .IP \(bu 2
  252200. 27c4689a24 modules/lxc: more consistent comparsion
  252201. .IP \(bu 2
  252202. 07c365a23b lxc: merge conflict spotted
  252203. .IP \(bu 2
  252204. 999391551c modules/lxc: rework settings for consistency
  252205. .IP \(bu 2
  252206. ce11d8352e lxc: Global doc refresh
  252207. .IP \(bu 2
  252208. 61ed2f5e76 clouds/lxc: profile key is conflicting
  252209. .UNINDENT
  252210. .IP \(bu 2
  252211. \fBISSUE\fP \fI\%#24210\fP: (\fI\%damonnk\fP) salt\-cloud vsphere.py should allow key_filename param (refs: \fI\%#24220\fP)
  252212. .IP \(bu 2
  252213. \fBPR\fP \fI\%#24247\fP: (\fI\%rallytime\fP) Backport \fI\%#24220\fP to 2015.5
  252214. @ \fI2015\-05\-29 21:40:01 UTC\fP
  252215. .INDENT 2.0
  252216. .IP \(bu 2
  252217. \fBPR\fP \fI\%#24220\fP: (\fI\%djcrabhat\fP) adding key_filename param to vsphere provider (refs: \fI\%#24247\fP)
  252218. .IP \(bu 2
  252219. da14f3b976 Merge pull request \fI\%#24247\fP from rallytime/bp\-24220
  252220. .IP \(bu 2
  252221. 0b1041dd72 adding key_filename param to vsphere provider
  252222. .UNINDENT
  252223. .IP \(bu 2
  252224. \fBPR\fP \fI\%#24254\fP: (\fI\%rallytime\fP) Add deprecation warning to Digital Ocean v1 Driver
  252225. @ \fI2015\-05\-29 21:39:25 UTC\fP
  252226. .INDENT 2.0
  252227. .IP \(bu 2
  252228. \fBPR\fP \fI\%#22731\fP: (\fI\%dmyerscough\fP) Decommission DigitalOcean APIv1 and have users use the new DigitalOcean APIv2 (refs: \fI\%#24254\fP)
  252229. .IP \(bu 2
  252230. 21d6126c34 Merge pull request \fI\%#24254\fP from rallytime/add_deprecation_warning_digitalocean
  252231. .IP \(bu 2
  252232. cafe37bdf8 Add note to docs about deprecation
  252233. .IP \(bu 2
  252234. ea0f1e0921 Add deprecation warning to digital ocean driver to move to digital_ocean_v2
  252235. .UNINDENT
  252236. .IP \(bu 2
  252237. \fBPR\fP \fI\%#24252\fP: (\fI\%aboe76\fP) Updated suse spec to 2015.5.1
  252238. @ \fI2015\-05\-29 21:38:45 UTC\fP
  252239. .INDENT 2.0
  252240. .IP \(bu 2
  252241. dac055dd8b Merge pull request \fI\%#24252\fP from aboe76/opensuse_package
  252242. .IP \(bu 2
  252243. 0ad617df21 Updated suse spec to 2015.5.1
  252244. .UNINDENT
  252245. .IP \(bu 2
  252246. \fBPR\fP \fI\%#24251\fP: (\fI\%garethgreenaway\fP) Returners broken in 2015.5
  252247. @ \fI2015\-05\-29 21:37:52 UTC\fP
  252248. .INDENT 2.0
  252249. .IP \(bu 2
  252250. 49e7fe8a5e Merge pull request \fI\%#24251\fP from garethgreenaway/2015_5_returner_brokenness
  252251. .IP \(bu 2
  252252. 5df6b52568 The code calling cfg as a function vs treating it as a dictionary and using get is currently backwards causing returners to fail when used from the CLI and in scheduled jobs.
  252253. .UNINDENT
  252254. .IP \(bu 2
  252255. \fBISSUE\fP \fI\%#21498\fP: (\fI\%rallytime\fP) Clarify Digital Ocean Documentation (refs: \fI\%#24255\fP)
  252256. .IP \(bu 2
  252257. \fBPR\fP \fI\%#24255\fP: (\fI\%rallytime\fP) Clarify digital ocean documentation and mention v1 driver deprecation
  252258. @ \fI2015\-05\-29 21:37:07 UTC\fP
  252259. .INDENT 2.0
  252260. .IP \(bu 2
  252261. bfb946123e Merge pull request \fI\%#24255\fP from rallytime/clarify_digital_ocean_driver_docs
  252262. .IP \(bu 2
  252263. 8d51f75aa5 Clarify digital ocean documentation and mention v1 driver deprecation
  252264. .UNINDENT
  252265. .IP \(bu 2
  252266. \fBPR\fP \fI\%#24232\fP: (\fI\%rallytime\fP) Backport \fI\%#23308\fP to 2015.5
  252267. @ \fI2015\-05\-29 21:36:46 UTC\fP
  252268. .INDENT 2.0
  252269. .IP \(bu 2
  252270. \fBPR\fP \fI\%#23308\fP: (\fI\%thusoy\fP) Don\(aqt merge: Add missing jump arguments to iptables module (refs: \fI\%#24232\fP)
  252271. .IP \(bu 2
  252272. 41f5756f36 Merge pull request \fI\%#24232\fP from rallytime/bp\-23308
  252273. .IP \(bu 2
  252274. 2733f66449 Import string
  252275. .IP \(bu 2
  252276. 9097cca099 Add missing jump arguments to iptables module
  252277. .UNINDENT
  252278. .IP \(bu 2
  252279. \fBPR\fP \fI\%#24245\fP: (\fI\%Sacro\fP) Unset PYTHONHOME when starting the service
  252280. @ \fI2015\-05\-29 20:00:31 UTC\fP
  252281. .INDENT 2.0
  252282. .IP \(bu 2
  252283. a95982c722 Merge pull request \fI\%#24245\fP from Sacro/patch\-2
  252284. .IP \(bu 2
  252285. 6632d06e94 Unset PYTHONHOME when starting the service
  252286. .UNINDENT
  252287. .IP \(bu 2
  252288. \fBPR\fP \fI\%#24121\fP: (\fI\%hvnsweeting\fP) deprecate setting user permission in rabbitmq_vhost.present
  252289. @ \fI2015\-05\-29 15:55:40 UTC\fP
  252290. .INDENT 2.0
  252291. .IP \(bu 2
  252292. 1504c76d3a Merge pull request \fI\%#24121\fP from hvnsweeting/rabbitmq\-host\-deprecate\-set\-permission
  252293. .IP \(bu 2
  252294. 2223158e76 deprecate setting user permission in rabbitmq_host.present
  252295. .UNINDENT
  252296. .IP \(bu 2
  252297. \fBPR\fP \fI\%#24179\fP: (\fI\%merll\fP) Changing user and group only possible for existing ids.
  252298. @ \fI2015\-05\-29 15:52:43 UTC\fP
  252299. .INDENT 2.0
  252300. .IP \(bu 2
  252301. \fBPR\fP \fI\%#24169\fP: (\fI\%merll\fP) Changing user and group only possible for existing ids. (refs: \fI\%#24179\fP)
  252302. .IP \(bu 2
  252303. ba02f6509e Merge pull request \fI\%#24179\fP from Precis/fix\-file\-uid\-gid\-2015.0
  252304. .IP \(bu 2
  252305. ee4c9d59ab Use ids if user or group is not present.
  252306. .UNINDENT
  252307. .IP \(bu 2
  252308. \fBISSUE\fP \fI\%#24147\fP: (\fI\%paclat\fP) Syndication issues when using authentication on master of masters. (refs: \fI\%#24229\fP)
  252309. .IP \(bu 2
  252310. \fBPR\fP \fI\%#24229\fP: (\fI\%msteed\fP) Fix auth failure on syndic with external_auth
  252311. @ \fI2015\-05\-29 15:04:06 UTC\fP
  252312. .INDENT 2.0
  252313. .IP \(bu 2
  252314. 9bfb066c2c Merge pull request \fI\%#24229\fP from msteed/issue\-24147
  252315. .IP \(bu 2
  252316. 482d1cfc64 Fix auth failure on syndic with external_auth
  252317. .UNINDENT
  252318. .IP \(bu 2
  252319. \fBPR\fP \fI\%#24234\fP: (\fI\%jayeshka\fP) adding states/quota unit test case.
  252320. @ \fI2015\-05\-29 14:14:27 UTC\fP
  252321. .INDENT 2.0
  252322. .IP \(bu 2
  252323. 19fa43c290 Merge pull request \fI\%#24234\fP from jayeshka/quota\-states\-unit\-test
  252324. .IP \(bu 2
  252325. c23356500b adding states/quota unit test case.
  252326. .UNINDENT
  252327. .IP \(bu 2
  252328. \fBPR\fP \fI\%#24217\fP: (\fI\%jfindlay\fP) disable intermittently failing tests
  252329. @ \fI2015\-05\-29 03:08:39 UTC\fP
  252330. .INDENT 2.0
  252331. .IP \(bu 2
  252332. \fBPR\fP \fI\%#23623\fP: (\fI\%jfindlay\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#24217\fP)
  252333. .IP \(bu 2
  252334. \fBPR\fP \fI\%#22857\fP: (\fI\%jacksontj\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#23623\fP)
  252335. .IP \(bu 2
  252336. e15142c629 Merge pull request \fI\%#24217\fP from jfindlay/disable_bad_tests
  252337. .IP \(bu 2
  252338. 6b6280442c disable intermittently failing tests
  252339. .UNINDENT
  252340. .IP \(bu 2
  252341. \fBPR\fP \fI\%#24199\fP: (\fI\%ryan\-lane\fP) Various fixes for boto_route53 and boto_elb
  252342. @ \fI2015\-05\-29 03:02:41 UTC\fP
  252343. .INDENT 2.0
  252344. .IP \(bu 2
  252345. ce8e43b774 Merge pull request \fI\%#24199\fP from lyft/route53\-fix\-elb
  252346. .IP \(bu 2
  252347. d8dc9a7b5b Better unit tests for boto_elb state
  252348. .IP \(bu 2
  252349. 62f214b535 Remove cnames_present test
  252350. .IP \(bu 2
  252351. 7b9ae82951 Lint fix
  252352. .IP \(bu 2
  252353. b74b0d1413 Various fixes for boto_route53 and boto_elb
  252354. .UNINDENT
  252355. .IP \(bu 2
  252356. \fBPR\fP \fI\%#24142\fP: (\fI\%basepi\fP) Optimize dictupdate.update and add \fI\%#24097\fP functionality (refs: \fI\%#24262\fP)
  252357. @ \fI2015\-05\-29 03:00:56 UTC\fP
  252358. .INDENT 2.0
  252359. .IP \(bu 2
  252360. \fBPR\fP \fI\%#24097\fP: (\fI\%kiorky\fP) Optimize dictupdate (refs: \fI\%#24142\fP)
  252361. .IP \(bu 2
  252362. a43465d235 Merge pull request \fI\%#24142\fP from basepi/dictupdate24097
  252363. .IP \(bu 2
  252364. 5c6e210c8b Deepcopy on merge_recurse
  252365. .IP \(bu 2
  252366. a13c84ade8 Fix None check from \fI\%#21968\fP
  252367. .IP \(bu 2
  252368. 9ef2c64098 Add docstring
  252369. .IP \(bu 2
  252370. 8579429314 Add in recursive_update from \fI\%#24097\fP
  252371. .IP \(bu 2
  252372. 8599143200 if key not in dest, don\(aqt recurse
  252373. .IP \(bu 2
  252374. d8a84b3017 Rename klass to valtype
  252375. .UNINDENT
  252376. .IP \(bu 2
  252377. \fBPR\fP \fI\%#24208\fP: (\fI\%jayeshka\fP) adding states/ports unit test case.
  252378. @ \fI2015\-05\-28 23:06:33 UTC\fP
  252379. .INDENT 2.0
  252380. .IP \(bu 2
  252381. 526698ba8d Merge pull request \fI\%#24208\fP from jayeshka/ports\-states\-unit\-test
  252382. .IP \(bu 2
  252383. 657b709932 adding states/ports unit test case.
  252384. .UNINDENT
  252385. .IP \(bu 2
  252386. \fBISSUE\fP \fI\%#20635\fP: (\fI\%dennisjac\fP) 2015.2.0rc1: zfs errors in log after update (refs: \fI\%#24219\fP)
  252387. .IP \(bu 2
  252388. \fBPR\fP \fI\%#24219\fP: (\fI\%jfindlay\fP) find zfs without modinfo
  252389. @ \fI2015\-05\-28 21:07:26 UTC\fP
  252390. .INDENT 2.0
  252391. .IP \(bu 2
  252392. d00945fd40 Merge pull request \fI\%#24219\fP from jfindlay/zfs_check
  252393. .IP \(bu 2
  252394. 15d401907c use the salt loader in the zfs mod
  252395. .IP \(bu 2
  252396. 5599b67a46 try to search for zfs if modinfo is unavailable
  252397. .UNINDENT
  252398. .IP \(bu 2
  252399. \fBPR\fP \fI\%#24190\fP: (\fI\%msteed\fP) Fix issue 23815
  252400. @ \fI2015\-05\-28 20:10:34 UTC\fP
  252401. .INDENT 2.0
  252402. .IP \(bu 2
  252403. 3dc4b85295 Merge pull request \fI\%#24190\fP from msteed/issue\-23815
  252404. .IP \(bu 2
  252405. 086a1a94e8 lint
  252406. .IP \(bu 2
  252407. 65de62f852 fix \fI\%#23815\fP
  252408. .IP \(bu 2
  252409. d04e9162de spelling
  252410. .IP \(bu 2
  252411. db9f6820b8 add inotify beacon unit tests
  252412. .UNINDENT
  252413. .IP \(bu 2
  252414. \fBPR\fP \fI\%#24211\fP: (\fI\%rallytime\fP) Backport \fI\%#24205\fP to 2015.5
  252415. @ \fI2015\-05\-28 18:28:15 UTC\fP
  252416. .INDENT 2.0
  252417. .IP \(bu 2
  252418. \fBPR\fP \fI\%#24205\fP: (\fI\%hazelesque\fP) Docstring fix in salt.modules.yumpkg.hold (refs: \fI\%#24211\fP)
  252419. .IP \(bu 2
  252420. 436634b508 Merge pull request \fI\%#24211\fP from rallytime/bp\-24205
  252421. .IP \(bu 2
  252422. 23284b5d47 Docstring fix in salt.modules.yumpkg.hold
  252423. .UNINDENT
  252424. .IP \(bu 2
  252425. \fBPR\fP \fI\%#24212\fP: (\fI\%terminalmage\fP) Clarify error in rendering template for top file
  252426. @ \fI2015\-05\-28 18:26:20 UTC\fP
  252427. .INDENT 2.0
  252428. .IP \(bu 2
  252429. cc58624c7e Merge pull request \fI\%#24212\fP from terminalmage/clarify\-error\-msg
  252430. .IP \(bu 2
  252431. ca807fb032 Clarify error in rendering template for top file
  252432. .UNINDENT
  252433. .IP \(bu 2
  252434. \fBISSUE\fP \fI\%#23904\fP: (\fI\%mbrgm\fP) Network config bonding section cannot be parsed when attribute names use dashes (refs: \fI\%#23917\fP)
  252435. .IP \(bu 2
  252436. \fBISSUE\fP \fI\%#23900\fP: (\fI\%hashi825\fP) salt ubuntu network building issue 2015.5.0 (refs: \fI\%#23922\fP)
  252437. .IP \(bu 2
  252438. \fBPR\fP \fI\%#24213\fP: (\fI\%The\-Loeki\fP) ShouldFix _\- troubles in debian_ip
  252439. @ \fI2015\-05\-28 18:24:39 UTC\fP
  252440. .INDENT 2.0
  252441. .IP \(bu 2
  252442. \fBPR\fP \fI\%#23922\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py (refs: \fI\%#24213\fP)
  252443. .IP \(bu 2
  252444. \fBPR\fP \fI\%#23917\fP: (\fI\%corywright\fP) Split debian bonding options on dash instead of underscore (refs: \fI\%#24213\fP)
  252445. .IP \(bu 2
  252446. 9825160b1a Merge pull request \fI\%#24213\fP from The\-Loeki/patch\-3
  252447. .IP \(bu 2
  252448. a68d515973 ShouldFix _\- troubles in debian_ip
  252449. .UNINDENT
  252450. .IP \(bu 2
  252451. \fBPR\fP \fI\%#24214\fP: (\fI\%basepi\fP) 2015.5.1release
  252452. @ \fI2015\-05\-28 16:23:57 UTC\fP
  252453. .INDENT 2.0
  252454. .IP \(bu 2
  252455. 071751d13f Merge pull request \fI\%#24214\fP from basepi/2015.5.1release
  252456. .IP \(bu 2
  252457. e5ba31b5b5 2015.5.1 release date
  252458. .IP \(bu 2
  252459. 768494c819 Update latest release in docs
  252460. .UNINDENT
  252461. .IP \(bu 2
  252462. \fBPR\fP \fI\%#24202\fP: (\fI\%rallytime\fP) Backport \fI\%#24186\fP to 2015.5
  252463. @ \fI2015\-05\-28 05:16:48 UTC\fP
  252464. .INDENT 2.0
  252465. .IP \(bu 2
  252466. \fBPR\fP \fI\%#24186\fP: (\fI\%thcipriani\fP) Update salt vagrant provisioner info (refs: \fI\%#24202\fP)
  252467. .IP \(bu 2
  252468. c2f1fdb244 Merge pull request \fI\%#24202\fP from rallytime/bp\-24186
  252469. .IP \(bu 2
  252470. db793dd0de Update salt vagrant provisioner info
  252471. .UNINDENT
  252472. .IP \(bu 2
  252473. \fBPR\fP \fI\%#24192\fP: (\fI\%rallytime\fP) Backport \fI\%#20474\fP to 2015.5
  252474. @ \fI2015\-05\-28 05:16:18 UTC\fP
  252475. .INDENT 2.0
  252476. .IP \(bu 2
  252477. \fBPR\fP \fI\%#20474\fP: (\fI\%djcrabhat\fP) add sudo, sudo_password params to vsphere deploy to allow for non\-root deploys (refs: \fI\%#24192\fP)
  252478. .IP \(bu 2
  252479. 8a085a2592 Merge pull request \fI\%#24192\fP from rallytime/bp\-20474
  252480. .IP \(bu 2
  252481. fd3c783f3e add sudo, sudo_password params to deploy to allow for non\-root deploys
  252482. .UNINDENT
  252483. .IP \(bu 2
  252484. \fBPR\fP \fI\%#24184\fP: (\fI\%rallytime\fP) Backport \fI\%#24129\fP to 2015.5
  252485. @ \fI2015\-05\-28 05:15:08 UTC\fP
  252486. .INDENT 2.0
  252487. .IP \(bu 2
  252488. \fBPR\fP \fI\%#24129\fP: (\fI\%pengyao\fP) Wheel client doc (refs: \fI\%#24184\fP)
  252489. .IP \(bu 2
  252490. 7cc535bf4a Merge pull request \fI\%#24184\fP from rallytime/bp\-24129
  252491. .IP \(bu 2
  252492. 722a662479 fixed a typo
  252493. .IP \(bu 2
  252494. 565eb46ff5 Add cmd doc for WheelClient
  252495. .UNINDENT
  252496. .IP \(bu 2
  252497. \fBPR\fP \fI\%#24183\fP: (\fI\%rallytime\fP) Backport \fI\%#19320\fP to 2015.5
  252498. @ \fI2015\-05\-28 05:14:36 UTC\fP
  252499. .INDENT 2.0
  252500. .IP \(bu 2
  252501. \fBPR\fP \fI\%#19320\fP: (\fI\%clan\fP) add \(aqstate_output_profile\(aq option for profile output (refs: \fI\%#24183\fP)
  252502. .IP \(bu 2
  252503. eb0af70e5b Merge pull request \fI\%#24183\fP from rallytime/bp\-19320
  252504. .IP \(bu 2
  252505. 55db1bf8b5 sate_output_profile default to True
  252506. .IP \(bu 2
  252507. 991922703b fix type: statei \-> state
  252508. .IP \(bu 2
  252509. 0549ca6266 add \(aqstate_output_profile\(aq option for profile output
  252510. .UNINDENT
  252511. .IP \(bu 2
  252512. \fBPR\fP \fI\%#24201\fP: (\fI\%whiteinge\fP) Add list of client libraries for the rest_cherrypy module to the top\-level documentation
  252513. @ \fI2015\-05\-28 02:12:09 UTC\fP
  252514. .INDENT 2.0
  252515. .IP \(bu 2
  252516. 1b5bf23187 Merge pull request \fI\%#24201\fP from whiteinge/rest_cherrypy\-client\-libs
  252517. .IP \(bu 2
  252518. 5f718027ca Add list of client libraries for the rest_cherrypy module
  252519. .IP \(bu 2
  252520. 28fc77f6f6 Fix rest_cherrypy config example indentation
  252521. .UNINDENT
  252522. .IP \(bu 2
  252523. \fBPR\fP \fI\%#24195\fP: (\fI\%rallytime\fP) Merge \fI\%#24185\fP with a couple of fixes
  252524. @ \fI2015\-05\-27 22:18:37 UTC\fP
  252525. .INDENT 2.0
  252526. .IP \(bu 2
  252527. \fBPR\fP \fI\%#24185\fP: (\fI\%jacobhammons\fP) Fixes for doc build errors (refs: \fI\%#24195\fP)
  252528. .IP \(bu 2
  252529. 3307ec20d9 Merge pull request \fI\%#24195\fP from rallytime/merge\-24185
  252530. .IP \(bu 2
  252531. d8daa9dcd7 Merge \fI\%#24185\fP with a couple of fixes
  252532. .IP \(bu 2
  252533. 634d56bca0 Fixed pylon error
  252534. .IP \(bu 2
  252535. 0689815d0e Fixes for doc build errors
  252536. .UNINDENT
  252537. .IP \(bu 2
  252538. \fBPR\fP \fI\%#24166\fP: (\fI\%jayeshka\fP) adding states/pkgng unit test case.
  252539. @ \fI2015\-05\-27 20:27:49 UTC\fP
  252540. .INDENT 2.0
  252541. .IP \(bu 2
  252542. 7e400bc3d7 Merge pull request \fI\%#24166\fP from jayeshka/pkgng\-states\-unit\-test
  252543. .IP \(bu 2
  252544. 2234bb0b70 adding states/pkgng unit test case.
  252545. .UNINDENT
  252546. .IP \(bu 2
  252547. \fBPR\fP \fI\%#24189\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  252548. @ \fI2015\-05\-27 20:26:31 UTC\fP
  252549. .INDENT 2.0
  252550. .IP \(bu 2
  252551. 9fcda79cd4 Merge pull request \fI\%#24189\fP from basepi/merge\-forward\-2015.5
  252552. .IP \(bu 2
  252553. 8839e9c22e Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  252554. .IP \(bu 2
  252555. 9d7331c87d Merge pull request \fI\%#24178\fP from rallytime/bp\-24118
  252556. .INDENT 2.0
  252557. .IP \(bu 2
  252558. e2217a09e8 removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  252559. .UNINDENT
  252560. .IP \(bu 2
  252561. 4e8c5031b0 Merge pull request \fI\%#24159\fP from rallytime/keystone_doc_examples
  252562. .INDENT 2.0
  252563. .IP \(bu 2
  252564. dadac8d076 Fill out modules/keystone.py CLI Examples
  252565. .UNINDENT
  252566. .IP \(bu 2
  252567. fc10ee8ed5 Merge pull request \fI\%#24158\fP from rallytime/fix_doc_error
  252568. .INDENT 2.0
  252569. .IP \(bu 2
  252570. 49a517e2ca Fix test_valid_docs test for tls module
  252571. .UNINDENT
  252572. .UNINDENT
  252573. .IP \(bu 2
  252574. \fBPR\fP \fI\%#24181\fP: (\fI\%justinta\fP) Fixed error where file was evaluated as a symlink in test_absent
  252575. @ \fI2015\-05\-27 18:26:28 UTC\fP
  252576. .INDENT 2.0
  252577. .IP \(bu 2
  252578. 2303dec0e9 Merge pull request \fI\%#24181\fP from jtand/file_test
  252579. .IP \(bu 2
  252580. 5f0e601589 Fixed error where file was evaluated as a symlink in test_absent
  252581. .UNINDENT
  252582. .IP \(bu 2
  252583. \fBPR\fP \fI\%#24180\fP: (\fI\%terminalmage\fP) Skip libvirt tests if not running as root
  252584. @ \fI2015\-05\-27 18:18:47 UTC\fP
  252585. .INDENT 2.0
  252586. .IP \(bu 2
  252587. a16276852b Merge pull request \fI\%#24180\fP from terminalmage/fix\-libvirt\-test
  252588. .IP \(bu 2
  252589. 72e7416ad2 Skip libvirt tests if not running as root
  252590. .UNINDENT
  252591. .IP \(bu 2
  252592. \fBPR\fP \fI\%#24165\fP: (\fI\%jayeshka\fP) adding states/portage_config unit test case.
  252593. @ \fI2015\-05\-27 17:15:08 UTC\fP
  252594. .INDENT 2.0
  252595. .IP \(bu 2
  252596. 1fbc5b25e6 Merge pull request \fI\%#24165\fP from jayeshka/portage_config\-states\-unit\-test
  252597. .IP \(bu 2
  252598. 8cf1505392 adding states/portage_config unit test case.
  252599. .UNINDENT
  252600. .IP \(bu 2
  252601. \fBPR\fP \fI\%#24164\fP: (\fI\%jayeshka\fP) adding states/pecl unit test case.
  252602. @ \fI2015\-05\-27 17:14:26 UTC\fP
  252603. .INDENT 2.0
  252604. .IP \(bu 2
  252605. 4747856411 Merge pull request \fI\%#24164\fP from jayeshka/pecl\-states\-unit\-test
  252606. .IP \(bu 2
  252607. 563a5b3c30 adding states/pecl unit test case.
  252608. .UNINDENT
  252609. .IP \(bu 2
  252610. \fBPR\fP \fI\%#24160\fP: (\fI\%The\-Loeki\fP) small enhancement to data module; pop()
  252611. @ \fI2015\-05\-27 17:03:10 UTC\fP
  252612. .INDENT 2.0
  252613. .IP \(bu 2
  252614. cdaaa19324 Merge pull request \fI\%#24160\fP from The\-Loeki/patch\-1
  252615. .IP \(bu 2
  252616. 2175ff3c75 doc & merge fix
  252617. .IP \(bu 2
  252618. eba382cdda small enhancement to data module; pop()
  252619. .UNINDENT
  252620. .IP \(bu 2
  252621. \fBPR\fP \fI\%#24153\fP: (\fI\%techhat\fP) Batch mode sometimes improperly builds lists of minions to process
  252622. @ \fI2015\-05\-27 16:21:53 UTC\fP
  252623. .INDENT 2.0
  252624. .IP \(bu 2
  252625. 4a8dbc7f13 Merge pull request \fI\%#24153\fP from techhat/batchlist
  252626. .IP \(bu 2
  252627. 467ba64612 Make sure that minion IDs are strings
  252628. .UNINDENT
  252629. .IP \(bu 2
  252630. \fBPR\fP \fI\%#24167\fP: (\fI\%jayeshka\fP) adding states/pagerduty unit test case.
  252631. @ \fI2015\-05\-27 16:14:01 UTC\fP
  252632. .INDENT 2.0
  252633. .IP \(bu 2
  252634. ed8ccf57a2 Merge pull request \fI\%#24167\fP from jayeshka/pagerduty\-states\-unit\-test
  252635. .IP \(bu 2
  252636. 1af8c8334d adding states/pagerduty unit test case.
  252637. .UNINDENT
  252638. .IP \(bu 2
  252639. \fBPR\fP \fI\%#24156\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  252640. @ \fI2015\-05\-27 15:05:01 UTC\fP
  252641. .INDENT 2.0
  252642. .IP \(bu 2
  252643. b9507d1567 Merge pull request \fI\%#24156\fP from basepi/merge\-forward\-2015.5
  252644. .IP \(bu 2
  252645. e52b5ab2e2 Remove stray >>>>>
  252646. .IP \(bu 2
  252647. 7dfbd929ff Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  252648. .INDENT 2.0
  252649. .IP \(bu 2
  252650. c0d32e0b5e Merge pull request \fI\%#24125\fP from hvnsweeting/fix\-rabbitmq\-test\-mode
  252651. .INDENT 2.0
  252652. .IP \(bu 2
  252653. 71862c69b9 enhance log
  252654. .IP \(bu 2
  252655. 28e2594162 change according to new output of rabbitmq module functions
  252656. .IP \(bu 2
  252657. cd0212e8ed processes and returns better output for rabbitmq module
  252658. .UNINDENT
  252659. .IP \(bu 2
  252660. 39a8f30f06 Merge pull request \fI\%#24093\fP from msteed/issue\-23464
  252661. .INDENT 2.0
  252662. .IP \(bu 2
  252663. fd35903d75 Fix failing test
  252664. .IP \(bu 2
  252665. 41b344c7d3 Make LocalClient.cmd_iter_no_block() not block
  252666. .UNINDENT
  252667. .IP \(bu 2
  252668. 5bffd3045e Merge pull request \fI\%#24008\fP from davidjb/2014.7
  252669. .INDENT 2.0
  252670. .IP \(bu 2
  252671. 8b8d0293d4 Correct reST formatting for documentation
  252672. .UNINDENT
  252673. .IP \(bu 2
  252674. 1aa0420040 Merge pull request \fI\%#23933\fP from jacobhammons/2014.7
  252675. .IP \(bu 2
  252676. a3613e68e4 removed numbering from doc TOC
  252677. .IP \(bu 2
  252678. 78b737c5e6 removed 2015.* release from release notes, updated index page to remove PDF/epub links
  252679. .IP \(bu 2
  252680. e867f7df77 Changed build settings to use saltstack2 theme and update release versions.
  252681. .IP \(bu 2
  252682. 81ed9c9f59 sphinx saltstack2 doc theme
  252683. .UNINDENT
  252684. .UNINDENT
  252685. .IP \(bu 2
  252686. \fBISSUE\fP \fI\%#24102\fP: (\fI\%bormotov\fP) win_update encondig problems (refs: \fI\%#24145\fP)
  252687. .IP \(bu 2
  252688. \fBPR\fP \fI\%#24145\fP: (\fI\%jfindlay\fP) attempt to decode win update package
  252689. @ \fI2015\-05\-26 23:20:20 UTC\fP
  252690. .INDENT 2.0
  252691. .IP \(bu 2
  252692. 05745fa931 Merge pull request \fI\%#24145\fP from jfindlay/win_update_encoding
  252693. .IP \(bu 2
  252694. cc5e17e61f attempt to decode win update package
  252695. .UNINDENT
  252696. .IP \(bu 2
  252697. \fBISSUE\fP \fI\%#24122\fP: (\fI\%kiorky\fP) service.dead is no more stateful: services does not handle correctly enable/disable change state (refs: \fI\%#24123\fP)
  252698. .IP \(bu 2
  252699. \fBPR\fP \fI\%#24123\fP: (\fI\%kiorky\fP) fix service enable/disable change
  252700. @ \fI2015\-05\-26 21:24:19 UTC\fP
  252701. .INDENT 2.0
  252702. .IP \(bu 2
  252703. 70247890de Merge pull request \fI\%#24123\fP from makinacorpus/ss
  252704. .IP \(bu 2
  252705. 2e2e1d262d fix service enable/disable change
  252706. .UNINDENT
  252707. .IP \(bu 2
  252708. \fBPR\fP \fI\%#24146\fP: (\fI\%rallytime\fP) Fixes the boto_vpc_test failure on CentOS 5 tests
  252709. @ \fI2015\-05\-26 20:15:19 UTC\fP
  252710. .INDENT 2.0
  252711. .IP \(bu 2
  252712. 51c3cec5d7 Merge pull request \fI\%#24146\fP from rallytime/fix_centos_boto_failure
  252713. .IP \(bu 2
  252714. ac0f97de51 Fixes the boto_vpc_test failure on CentOS 5 tests
  252715. .UNINDENT
  252716. .IP \(bu 2
  252717. \fBISSUE\fP \fI\%#24052\fP: (\fI\%twangboy\fP) v2015.5.1 Changes the way it interprets the minion_master.pub file (refs: \fI\%#24144\fP, \fI\%#24089\fP)
  252718. .IP \(bu 2
  252719. \fBISSUE\fP \fI\%#23566\fP: (\fI\%rks2286\fP) Salt\-cp corrupting the file after transfer to minion (refs: \fI\%#24144\fP, \fI\%#23740\fP)
  252720. .IP \(bu 2
  252721. \fBPR\fP \fI\%#24144\fP: (\fI\%twangboy\fP) Compare Keys ignores all newlines and carriage returns
  252722. @ \fI2015\-05\-26 19:25:48 UTC\fP
  252723. .INDENT 2.0
  252724. .IP \(bu 2
  252725. \fBPR\fP \fI\%#23740\fP: (\fI\%jfindlay\fP) Binary write (refs: \fI\%#24144\fP)
  252726. .IP \(bu 2
  252727. 1c91a2176f Merge pull request \fI\%#24144\fP from twangboy/fix_24052
  252728. .IP \(bu 2
  252729. c197b41494 Compare Keys removing all newlines and carriage returns
  252730. .UNINDENT
  252731. .IP \(bu 2
  252732. \fBPR\fP \fI\%#24139\fP: (\fI\%rallytime\fP) Backport \fI\%#24118\fP to 2015.5
  252733. @ \fI2015\-05\-26 18:24:27 UTC\fP
  252734. .INDENT 2.0
  252735. .IP \(bu 2
  252736. \fBPR\fP \fI\%#24118\fP: (\fI\%trevor\-h\fP) removed deprecated pymongo usage (refs: \fI\%#24178\fP, \fI\%#24139\fP)
  252737. .IP \(bu 2
  252738. 084166747c Merge pull request \fI\%#24139\fP from rallytime/bp\-24118
  252739. .IP \(bu 2
  252740. 4bb519b8da removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  252741. .UNINDENT
  252742. .IP \(bu 2
  252743. \fBPR\fP \fI\%#24138\fP: (\fI\%rallytime\fP) Backport \fI\%#24116\fP to 2015.5
  252744. @ \fI2015\-05\-26 18:23:51 UTC\fP
  252745. .INDENT 2.0
  252746. .IP \(bu 2
  252747. \fBPR\fP \fI\%#24116\fP: (\fI\%awdrius\fP) Fixed typo in chown username (ending dot) that fails the command. (refs: \fI\%#24138\fP)
  252748. .IP \(bu 2
  252749. 742eca29f7 Merge pull request \fI\%#24138\fP from rallytime/bp\-24116
  252750. .IP \(bu 2
  252751. 7f08641800 Fixed typo in chown username (ending dot) that fails the command.
  252752. .UNINDENT
  252753. .IP \(bu 2
  252754. \fBPR\fP \fI\%#24137\fP: (\fI\%rallytime\fP) Backport \fI\%#24105\fP to 2015.5
  252755. @ \fI2015\-05\-26 18:23:40 UTC\fP
  252756. .INDENT 2.0
  252757. .IP \(bu 2
  252758. \fBPR\fP \fI\%#24105\fP: (\fI\%cedwards\fP) Updated some beacon\-specific documentation formatting (refs: \fI\%#24137\fP)
  252759. .IP \(bu 2
  252760. e01536d098 Merge pull request \fI\%#24137\fP from rallytime/bp\-24105
  252761. .IP \(bu 2
  252762. f0778a0a60 Updated some beacon\-specific documentation formatting
  252763. .UNINDENT
  252764. .IP \(bu 2
  252765. \fBISSUE\fP \fI\%#23364\fP: (\fI\%pruiz\fP) Unable to destroy host using proxmox cloud: There was an error destroying machines: 501 Server Error: Method \(aqDELETE /nodes/pmx1/openvz/openvz/100\(aq not implemented (refs: \fI\%#24104\fP)
  252766. .IP \(bu 2
  252767. \fBPR\fP \fI\%#24136\fP: (\fI\%rallytime\fP) Backport \fI\%#24104\fP to 2015.5
  252768. @ \fI2015\-05\-26 15:58:47 UTC\fP
  252769. .INDENT 2.0
  252770. .IP \(bu 2
  252771. \fBPR\fP \fI\%#24104\fP: (\fI\%pruiz\fP) Only try to stop a VM if it\(aqs not already stopped. (fixes \fI\%#23364\fP) (refs: \fI\%#24136\fP)
  252772. .IP \(bu 2
  252773. 89cdf976e1 Merge pull request \fI\%#24136\fP from rallytime/bp\-24104
  252774. .IP \(bu 2
  252775. c53888415f Only try to stop a VM if it\(aqs not already stopped. (fixes \fI\%#23364\fP)
  252776. .UNINDENT
  252777. .IP \(bu 2
  252778. \fBPR\fP \fI\%#24135\fP: (\fI\%rallytime\fP) Backport \fI\%#24083\fP to 2015.5
  252779. @ \fI2015\-05\-26 15:58:27 UTC\fP
  252780. .INDENT 2.0
  252781. .IP \(bu 2
  252782. \fBPR\fP \fI\%#24083\fP: (\fI\%swdream\fP) fix code block syntax (refs: \fI\%#24135\fP)
  252783. .IP \(bu 2
  252784. 67c4373577 Merge pull request \fI\%#24135\fP from rallytime/bp\-24083
  252785. .IP \(bu 2
  252786. e1d06f9764 fix code block syntax
  252787. .UNINDENT
  252788. .IP \(bu 2
  252789. \fBPR\fP \fI\%#24131\fP: (\fI\%jayeshka\fP) adding states/mysql_user unit test case
  252790. @ \fI2015\-05\-26 15:58:10 UTC\fP
  252791. .INDENT 2.0
  252792. .IP \(bu 2
  252793. a83371e0ed Merge pull request \fI\%#24131\fP from jayeshka/mysql_user\-states\-unit\-test
  252794. .IP \(bu 2
  252795. ed1ef69856 adding states/mysql_user unit test case
  252796. .UNINDENT
  252797. .IP \(bu 2
  252798. \fBPR\fP \fI\%#24130\fP: (\fI\%jayeshka\fP) adding states/ntp unit test case
  252799. @ \fI2015\-05\-26 15:57:29 UTC\fP
  252800. .INDENT 2.0
  252801. .IP \(bu 2
  252802. 1dc1d2a6e5 Merge pull request \fI\%#24130\fP from jayeshka/ntp\-states\-unit\-test
  252803. .IP \(bu 2
  252804. ede4a9f2f1 adding states/ntp unit test case
  252805. .UNINDENT
  252806. .IP \(bu 2
  252807. \fBPR\fP \fI\%#24128\fP: (\fI\%jayeshka\fP) adding states/openstack_config unit test case
  252808. @ \fI2015\-05\-26 15:56:08 UTC\fP
  252809. .INDENT 2.0
  252810. .IP \(bu 2
  252811. 39434179a8 Merge pull request \fI\%#24128\fP from jayeshka/openstack_config\-states\-unit\-test
  252812. .IP \(bu 2
  252813. ca09e0f7c1 adding states/openstack_config unit test case
  252814. .UNINDENT
  252815. .IP \(bu 2
  252816. \fBPR\fP \fI\%#24127\fP: (\fI\%jayeshka\fP) adding states/npm unit test case
  252817. @ \fI2015\-05\-26 15:55:18 UTC\fP
  252818. .INDENT 2.0
  252819. .IP \(bu 2
  252820. 23f25c4298 Merge pull request \fI\%#24127\fP from jayeshka/npm\-states\-unit\-test
  252821. .IP \(bu 2
  252822. c3ecabbae0 adding states/npm unit test case
  252823. .UNINDENT
  252824. .IP \(bu 2
  252825. \fBISSUE\fP \fI\%#24009\fP: (\fI\%hvnsweeting\fP) state_verbose False summary is wrong (refs: \fI\%#24077\fP)
  252826. .IP \(bu 2
  252827. \fBPR\fP \fI\%#24077\fP: (\fI\%anlutro\fP) Change how state_verbose output is filtered
  252828. @ \fI2015\-05\-26 15:41:11 UTC\fP
  252829. .INDENT 2.0
  252830. .IP \(bu 2
  252831. 07488a4415 Merge pull request \fI\%#24077\fP from alprs/fix\-outputter_highstate_nonverbose_count
  252832. .IP \(bu 2
  252833. 7790408c3c Change how state_verbose output is filtered
  252834. .UNINDENT
  252835. .IP \(bu 2
  252836. \fBPR\fP \fI\%#24119\fP: (\fI\%jfindlay\fP) Update contrib docs
  252837. @ \fI2015\-05\-26 15:37:01 UTC\fP
  252838. .INDENT 2.0
  252839. .IP \(bu 2
  252840. 224820febf Merge pull request \fI\%#24119\fP from jfindlay/update_contrib_docs
  252841. .IP \(bu 2
  252842. fa2d411f53 update example release branch in contrib docs
  252843. .IP \(bu 2
  252844. a0b76b57b3 clarify git rebase instructions
  252845. .IP \(bu 2
  252846. 3517e0095f fix contribution docs link typos
  252847. .IP \(bu 2
  252848. 651629c6a4 backport dev contrib doc updates to 2015.5
  252849. .UNINDENT
  252850. .IP \(bu 2
  252851. \fBPR\fP \fI\%#23928\fP: (\fI\%joejulian\fP) Add the ability to replace existing certificates
  252852. @ \fI2015\-05\-25 19:47:26 UTC\fP
  252853. .INDENT 2.0
  252854. .IP \(bu 2
  252855. 5488c4aaa2 Merge pull request \fI\%#23928\fP from joejulian/2015.5_tls_module_replace_existing
  252856. .IP \(bu 2
  252857. 4a4cbdd266 Add the ability to replace existing certificates
  252858. .UNINDENT
  252859. .IP \(bu 2
  252860. \fBISSUE\fP \fI\%#23221\fP: (\fI\%Reiner030\fP) Debian Jessie: locale.present not working again (refs: \fI\%#24078\fP)
  252861. .IP \(bu 2
  252862. \fBPR\fP \fI\%#24078\fP: (\fI\%jfindlay\fP) if a charmap is not supplied, set it to the codeset
  252863. @ \fI2015\-05\-25 19:39:19 UTC\fP
  252864. .INDENT 2.0
  252865. .IP \(bu 2
  252866. dd90ef09b9 Merge pull request \fI\%#24078\fP from jfindlay/locale_charmap
  252867. .IP \(bu 2
  252868. 5eb97f0973 if a charmap is not supplied, set it to the codeset
  252869. .UNINDENT
  252870. .IP \(bu 2
  252871. \fBPR\fP \fI\%#24088\fP: (\fI\%jfindlay\fP) pkg module integration tests
  252872. @ \fI2015\-05\-25 19:39:02 UTC\fP
  252873. .INDENT 2.0
  252874. .IP \(bu 2
  252875. 9cec5d3dc9 Merge pull request \fI\%#24088\fP from jfindlay/pkg_tests
  252876. .IP \(bu 2
  252877. f1bd5ec404 adding pkg module integration tests
  252878. .IP \(bu 2
  252879. 739b2ef3bd rework yumpkg refresh_db so args are not mandatory
  252880. .UNINDENT
  252881. .IP \(bu 2
  252882. \fBISSUE\fP \fI\%#24052\fP: (\fI\%twangboy\fP) v2015.5.1 Changes the way it interprets the minion_master.pub file (refs: \fI\%#24144\fP, \fI\%#24089\fP)
  252883. .IP \(bu 2
  252884. \fBPR\fP \fI\%#24089\fP: (\fI\%jfindlay\fP) allow override of binary file mode on windows
  252885. @ \fI2015\-05\-25 19:38:44 UTC\fP
  252886. .INDENT 2.0
  252887. .IP \(bu 2
  252888. 517552caa6 Merge pull request \fI\%#24089\fP from jfindlay/binary_write
  252889. .IP \(bu 2
  252890. b2259a6370 allow override of binary file mode on windows
  252891. .UNINDENT
  252892. .IP \(bu 2
  252893. \fBISSUE\fP \fI\%#23973\fP: (\fI\%mschiff\fP) state file.managed: setting contents_pillar to a pillar which is a list throws exception instead giving descriptive error message (refs: \fI\%#24092\fP)
  252894. .IP \(bu 2
  252895. \fBPR\fP \fI\%#24092\fP: (\fI\%jfindlay\fP) collect scattered contents edits, ensure it\(aqs a str
  252896. @ \fI2015\-05\-25 19:38:10 UTC\fP
  252897. .INDENT 2.0
  252898. .IP \(bu 2
  252899. 121ab9f857 Merge pull request \fI\%#24092\fP from jfindlay/file_state
  252900. .IP \(bu 2
  252901. cfa0f1358e collect scattered contents edits, ensure it\(aqs a str
  252902. .UNINDENT
  252903. .IP \(bu 2
  252904. \fBPR\fP \fI\%#24112\fP: (\fI\%The\-Loeki\fP) thin_gen breaks when thinver doesn\(aqt exist
  252905. @ \fI2015\-05\-25 19:37:47 UTC\fP
  252906. .INDENT 2.0
  252907. .IP \(bu 2
  252908. 84e65dece7 Merge pull request \fI\%#24112\fP from The\-Loeki/patch\-1
  252909. .IP \(bu 2
  252910. 34646eae16 thin_gen breaks when thinver doesn\(aqt exist
  252911. .UNINDENT
  252912. .IP \(bu 2
  252913. \fBPR\fP \fI\%#24108\fP: (\fI\%jayeshka\fP) adding states/mysql_query unit test case
  252914. @ \fI2015\-05\-25 12:30:48 UTC\fP
  252915. .INDENT 2.0
  252916. .IP \(bu 2
  252917. ec509ed272 Merge pull request \fI\%#24108\fP from jayeshka/mysql_query\-states\-unit\-test
  252918. .IP \(bu 2
  252919. ec50450460 adding states/mysql_query unit test case
  252920. .UNINDENT
  252921. .IP \(bu 2
  252922. \fBPR\fP \fI\%#24110\fP: (\fI\%jayeshka\fP) adding varnish unit test case
  252923. @ \fI2015\-05\-25 12:30:21 UTC\fP
  252924. .INDENT 2.0
  252925. .IP \(bu 2
  252926. f2e5d6c2fd Merge pull request \fI\%#24110\fP from jayeshka/varnish\-unit\-test
  252927. .IP \(bu 2
  252928. e11988969f adding varnish unit test case
  252929. .UNINDENT
  252930. .IP \(bu 2
  252931. \fBPR\fP \fI\%#24109\fP: (\fI\%jayeshka\fP) adding states/mysql_grants unit test case
  252932. @ \fI2015\-05\-25 12:29:53 UTC\fP
  252933. .INDENT 2.0
  252934. .IP \(bu 2
  252935. 4fca2b49e3 Merge pull request \fI\%#24109\fP from jayeshka/mysql_grants\-states\-unit\-test
  252936. .IP \(bu 2
  252937. 11a93cb80c adding states/mysql_grants unit test case
  252938. .UNINDENT
  252939. .IP \(bu 2
  252940. \fBPR\fP \fI\%#24028\fP: (\fI\%nleib\fP) send a disable message to disable puppet
  252941. @ \fI2015\-05\-25 04:02:11 UTC\fP
  252942. .INDENT 2.0
  252943. .IP \(bu 2
  252944. 6b43c9a8cb Merge pull request \fI\%#24028\fP from nleib/2015.5
  252945. .IP \(bu 2
  252946. 15f24b42b2 update format of string in disabled msg
  252947. .IP \(bu 2
  252948. 7690e5b008 remove trailing whitespaces
  252949. .IP \(bu 2
  252950. 56a972034f Update puppet.py
  252951. .IP \(bu 2
  252952. 9686391d81 Update puppet.py
  252953. .IP \(bu 2
  252954. 33f3d68489 send a disable message to disable puppet
  252955. .UNINDENT
  252956. .IP \(bu 2
  252957. \fBPR\fP \fI\%#24100\fP: (\fI\%jfindlay\fP) adding states/file unit test case
  252958. @ \fI2015\-05\-24 05:17:54 UTC\fP
  252959. .INDENT 2.0
  252960. .IP \(bu 2
  252961. \fBPR\fP \fI\%#23963\fP: (\fI\%jayeshka\fP) adding states/file unit test case (refs: \fI\%#24100\fP)
  252962. .IP \(bu 2
  252963. 52c9acafc2 Merge pull request \fI\%#24100\fP from jfindlay/merge_23963
  252964. .IP \(bu 2
  252965. 7d59deb3d6 adding states/file unit test case
  252966. .UNINDENT
  252967. .IP \(bu 2
  252968. \fBISSUE\fP \fI\%#21446\fP: (\fI\%dpheasant\fP) check for systemd on Oracle Linux (refs: \fI\%#24098\fP)
  252969. .IP \(bu 2
  252970. \fBPR\fP \fI\%#24098\fP: (\fI\%galet\fP) Systemd not recognized properly on Oracle Linux 7
  252971. @ \fI2015\-05\-24 04:07:31 UTC\fP
  252972. .INDENT 2.0
  252973. .IP \(bu 2
  252974. 0eb9f15d20 Merge pull request \fI\%#24098\fP from galet/2015.5
  252975. .IP \(bu 2
  252976. 4d6ab21c74 Systemd not recognized properly on Oracle Linux 7
  252977. .UNINDENT
  252978. .IP \(bu 2
  252979. \fBPR\fP \fI\%#24090\fP: (\fI\%jfindlay\fP) adding states/mount unit test case
  252980. @ \fI2015\-05\-22 23:02:57 UTC\fP
  252981. .INDENT 2.0
  252982. .IP \(bu 2
  252983. \fBPR\fP \fI\%#24062\fP: (\fI\%jayeshka\fP) adding states/mount unit test case (refs: \fI\%#24090\fP)
  252984. .IP \(bu 2
  252985. 8e04db76de Merge pull request \fI\%#24090\fP from jfindlay/merge_24062
  252986. .IP \(bu 2
  252987. a81a9225b8 adding states/mount unit test case
  252988. .UNINDENT
  252989. .IP \(bu 2
  252990. \fBISSUE\fP \fI\%#22574\fP: (\fI\%unicolet\fP) error when which is not available (refs: \fI\%#22806\fP)
  252991. .IP \(bu 2
  252992. \fBPR\fP \fI\%#24086\fP: (\fI\%rallytime\fP) Backport \fI\%#22806\fP to 2015.5
  252993. @ \fI2015\-05\-22 21:18:20 UTC\fP
  252994. .INDENT 2.0
  252995. .IP \(bu 2
  252996. \fBPR\fP \fI\%#22806\fP: (\fI\%jfindlay\fP) use cmd.run_all instead of cmd.run_stdout (refs: \fI\%#24086\fP)
  252997. .IP \(bu 2
  252998. c0079f5dc7 Merge pull request \fI\%#24086\fP from rallytime/bp\-22806
  252999. .IP \(bu 2
  253000. f728f55160 use cmd.run_all instead of cmd.run_stdout
  253001. .UNINDENT
  253002. .IP \(bu 2
  253003. \fBPR\fP \fI\%#24024\fP: (\fI\%jayeshka\fP) adding states/mongodb_user unit test case
  253004. @ \fI2015\-05\-22 20:53:19 UTC\fP
  253005. .INDENT 2.0
  253006. .IP \(bu 2
  253007. 09de253373 Merge pull request \fI\%#24024\fP from jayeshka/mongodb_user\-states\-unit\-test
  253008. .IP \(bu 2
  253009. f31dc921f5 resolved errors
  253010. .IP \(bu 2
  253011. d038b1fdbb adding states/mongodb_user unit test case
  253012. .UNINDENT
  253013. .IP \(bu 2
  253014. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  253015. .IP \(bu 2
  253016. \fBPR\fP \fI\%#24065\fP: (\fI\%kiorky\fP) continue to fix \fI\%#23883\fP (refs: \fI\%#24066\fP, \fI\%#24080\fP)
  253017. @ \fI2015\-05\-22 18:59:21 UTC\fP
  253018. .INDENT 2.0
  253019. .IP \(bu 2
  253020. bfd812c56b Merge pull request \fI\%#24065\fP from makinacorpus/real23883
  253021. .IP \(bu 2
  253022. 028282e01d continue to fix \fI\%#23883\fP
  253023. .UNINDENT
  253024. .IP \(bu 2
  253025. \fBISSUE\fP \fI\%#24017\fP: (\fI\%arthurlogilab\fP) [salt\-cloud openstack] TypeError: unhashable type: \(aqdict\(aq on map creation (refs: \fI\%#24029\fP)
  253026. .IP \(bu 2
  253027. \fBPR\fP \fI\%#24029\fP: (\fI\%kiorky\fP) Fix providers handling
  253028. @ \fI2015\-05\-22 16:56:06 UTC\fP
  253029. .INDENT 2.0
  253030. .IP \(bu 2
  253031. 429adfe00a Merge pull request \fI\%#24029\fP from makinacorpus/fixproviders
  253032. .IP \(bu 2
  253033. 412b39b802 Fix providers handling
  253034. .UNINDENT
  253035. .IP \(bu 2
  253036. \fBPR\fP \fI\%#23936\fP: (\fI\%jfindlay\fP) remove unreachable returns in file state
  253037. @ \fI2015\-05\-22 16:26:49 UTC\fP
  253038. .INDENT 2.0
  253039. .IP \(bu 2
  253040. a42ccccd98 Merge pull request \fI\%#23936\fP from jfindlay/file_state
  253041. .IP \(bu 2
  253042. ac29c0cdd0 also validate file.recurse source parameter
  253043. .IP \(bu 2
  253044. 57f73887fe remove unreachable returns in file state
  253045. .UNINDENT
  253046. .IP \(bu 2
  253047. \fBPR\fP \fI\%#24063\fP: (\fI\%jayeshka\fP) removed tuple index error
  253048. @ \fI2015\-05\-22 14:58:20 UTC\fP
  253049. .INDENT 2.0
  253050. .IP \(bu 2
  253051. 8b69b41a42 Merge pull request \fI\%#24063\fP from jayeshka/mount\-states\-module
  253052. .IP \(bu 2
  253053. b9745d5c4f removed tuple index error
  253054. .UNINDENT
  253055. .IP \(bu 2
  253056. \fBPR\fP \fI\%#24057\fP: (\fI\%rallytime\fP) Backport \fI\%#22572\fP to 2015.5
  253057. @ \fI2015\-05\-22 05:36:25 UTC\fP
  253058. .INDENT 2.0
  253059. .IP \(bu 2
  253060. \fBPR\fP \fI\%#22572\fP: (\fI\%The\-Loeki\fP) Small docfix for GitPillar (refs: \fI\%#24057\fP)
  253061. .IP \(bu 2
  253062. 02ac4aa288 Merge pull request \fI\%#24057\fP from rallytime/bp\-22572
  253063. .IP \(bu 2
  253064. 49aad84b17 Small docfix for GitPillar
  253065. .UNINDENT
  253066. .IP \(bu 2
  253067. \fBISSUE\fP \fI\%#23088\fP: (\fI\%ghost\fP) Segfault when adding a Zypper repo on SLES 11.3 (refs: \fI\%#24027\fP)
  253068. .IP \(bu 2
  253069. \fBPR\fP \fI\%#24040\fP: (\fI\%rallytime\fP) Backport \fI\%#24027\fP to 2015.5
  253070. @ \fI2015\-05\-21 23:43:54 UTC\fP
  253071. .INDENT 2.0
  253072. .IP \(bu 2
  253073. \fBPR\fP \fI\%#24027\fP: (\fI\%ghost\fP) Add baseurl to salt.modules.zypper.mod_repo (refs: \fI\%#24040\fP)
  253074. .IP \(bu 2
  253075. 82de059891 Merge pull request \fI\%#24040\fP from rallytime/bp\-24027
  253076. .IP \(bu 2
  253077. 37d25d8bc6 Added baseurl as alias for url and mirrorlist in salt.modules.zypper.mod_repo.
  253078. .UNINDENT
  253079. .IP \(bu 2
  253080. \fBPR\fP \fI\%#24039\fP: (\fI\%rallytime\fP) Backport \fI\%#24015\fP to 2015.5
  253081. @ \fI2015\-05\-21 23:43:25 UTC\fP
  253082. .INDENT 2.0
  253083. .IP \(bu 2
  253084. \fBPR\fP \fI\%#24015\fP: (\fI\%YanChii\fP) minor improvement of solarisips docs & fix typos (refs: \fI\%#24039\fP)
  253085. .IP \(bu 2
  253086. d909781d97 Merge pull request \fI\%#24039\fP from rallytime/bp\-24015
  253087. .IP \(bu 2
  253088. 6bfaa94a8c minor improovement of solarisips docs & fix typos
  253089. .UNINDENT
  253090. .IP \(bu 2
  253091. \fBISSUE\fP \fI\%#19598\fP: (\fI\%fayetted\fP) ssh_auth.present test=true incorectly reports changes will be made (refs: \fI\%#19599\fP)
  253092. .IP \(bu 2
  253093. \fBPR\fP \fI\%#24038\fP: (\fI\%rallytime\fP) Backport \fI\%#19599\fP to 2015.5
  253094. @ \fI2015\-05\-21 23:43:10 UTC\fP
  253095. .INDENT 2.0
  253096. .IP \(bu 2
  253097. \fBPR\fP \fI\%#19599\fP: (\fI\%fayetted\fP) Fix ssh_auth test mode, compare lines not just key (refs: \fI\%#24038\fP)
  253098. .IP \(bu 2
  253099. 4a0f254d22 Merge pull request \fI\%#24038\fP from rallytime/bp\-19599
  253100. .IP \(bu 2
  253101. ea00d3e786 Fix ssh_auth test mode, compare lines not just key
  253102. .UNINDENT
  253103. .IP \(bu 2
  253104. \fBPR\fP \fI\%#24046\fP: (\fI\%rallytime\fP) Remove key management test from digital ocean cloud tests
  253105. @ \fI2015\-05\-21 22:32:04 UTC\fP
  253106. .INDENT 2.0
  253107. .IP \(bu 2
  253108. 42b87f1049 Merge pull request \fI\%#24046\fP from rallytime/remove_key_test
  253109. .IP \(bu 2
  253110. 1d031caa78 Remove key management test from digital ocean cloud tests
  253111. .UNINDENT
  253112. .IP \(bu 2
  253113. \fBPR\fP \fI\%#24044\fP: (\fI\%cro\fP) Remove spurious log message, fix typo in doc
  253114. @ \fI2015\-05\-21 22:31:49 UTC\fP
  253115. .INDENT 2.0
  253116. .IP \(bu 2
  253117. eff54b1c5a Merge pull request \fI\%#24044\fP from cro/pgjsonb
  253118. .IP \(bu 2
  253119. de0663314a Remove spurious log message, fix typo in doc
  253120. .UNINDENT
  253121. .IP \(bu 2
  253122. \fBISSUE\fP \fI\%#23883\fP: (\fI\%kaithar\fP) max_event_size seems broken (refs: \fI\%#24001\fP, \fI\%#24065\fP)
  253123. .IP \(bu 2
  253124. \fBPR\fP \fI\%#24001\fP: (\fI\%msteed\fP) issue \fI\%#23883\fP
  253125. @ \fI2015\-05\-21 20:32:30 UTC\fP
  253126. .INDENT 2.0
  253127. .IP \(bu 2
  253128. ac32000b5d Merge pull request \fI\%#24001\fP from msteed/issue\-23883
  253129. .IP \(bu 2
  253130. bea97a8b98 issue \fI\%#23883\fP
  253131. .UNINDENT
  253132. .IP \(bu 2
  253133. \fBPR\fP \fI\%#23995\fP: (\fI\%kiorky\fP) Lxc path pre
  253134. @ \fI2015\-05\-21 17:26:03 UTC\fP
  253135. .INDENT 2.0
  253136. .IP \(bu 2
  253137. f7fae26059 Merge pull request \fI\%#23995\fP from makinacorpus/lxc_path_pre
  253138. .IP \(bu 2
  253139. 319282af5f lint
  253140. .IP \(bu 2
  253141. 1dc67e5678 lxc: versionadded
  253142. .IP \(bu 2
  253143. fcad7cb804 lxc: states improvments
  253144. .IP \(bu 2
  253145. 644bd729f7 lxc: more consistence for profiles
  253146. .IP \(bu 2
  253147. 139372c055 lxc: remove merge cruft
  253148. .IP \(bu 2
  253149. 725b0462ca lxc: Repair merge
  253150. .UNINDENT
  253151. .IP \(bu 2
  253152. \fBISSUE\fP \fI\%#16383\fP: (\fI\%interjection\fP) salt.states.augeas.change example from docs fails with exception (refs: \fI\%#24032\fP)
  253153. .IP \(bu 2
  253154. \fBPR\fP \fI\%#24032\fP: (\fI\%kartiksubbarao\fP) Update augeas_cfg.py
  253155. @ \fI2015\-05\-21 17:03:42 UTC\fP
  253156. .INDENT 2.0
  253157. .IP \(bu 2
  253158. 26d6851666 Merge pull request \fI\%#24032\fP from kartiksubbarao/augeas_insert_16383
  253159. .IP \(bu 2
  253160. 3686dcd4c7 Update augeas_cfg.py
  253161. .UNINDENT
  253162. .IP \(bu 2
  253163. \fBPR\fP \fI\%#24025\fP: (\fI\%jayeshka\fP) adding timezone unit test case
  253164. @ \fI2015\-05\-21 16:50:53 UTC\fP
  253165. .INDENT 2.0
  253166. .IP \(bu 2
  253167. 55c9245075 Merge pull request \fI\%#24025\fP from jayeshka/timezone\-unit\-test
  253168. .IP \(bu 2
  253169. 1ec33e22a7 removed assertion error
  253170. .IP \(bu 2
  253171. 16ecb28950 adding timezone unit test case
  253172. .UNINDENT
  253173. .IP \(bu 2
  253174. \fBPR\fP \fI\%#24023\fP: (\fI\%jayeshka\fP) adding states/mongodb_database unit test case
  253175. @ \fI2015\-05\-21 16:49:17 UTC\fP
  253176. .INDENT 2.0
  253177. .IP \(bu 2
  253178. e243617659 Merge pull request \fI\%#24023\fP from jayeshka/mongodb_database\-states\-unit\-test
  253179. .IP \(bu 2
  253180. 5a9ac7effb adding states/mongodb_database unit test case
  253181. .UNINDENT
  253182. .IP \(bu 2
  253183. \fBPR\fP \fI\%#24022\fP: (\fI\%jayeshka\fP) adding states/modjk_worker unit test case
  253184. @ \fI2015\-05\-21 16:48:29 UTC\fP
  253185. .INDENT 2.0
  253186. .IP \(bu 2
  253187. b377bd93e6 Merge pull request \fI\%#24022\fP from jayeshka/modjk_worker\-states\-unit\-test
  253188. .IP \(bu 2
  253189. 05c0a985db adding states/modjk_worker unit test case
  253190. .UNINDENT
  253191. .IP \(bu 2
  253192. \fBISSUE\fP \fI\%#23776\fP: (\fI\%enblde\fP) Presence change events constantly reporting all minions as new in 2015.5 (refs: \fI\%#24005\fP)
  253193. .IP \(bu 2
  253194. \fBPR\fP \fI\%#24005\fP: (\fI\%msteed\fP) issue \fI\%#23776\fP
  253195. @ \fI2015\-05\-21 01:55:34 UTC\fP
  253196. .INDENT 2.0
  253197. .IP \(bu 2
  253198. 701c51ba7a Merge pull request \fI\%#24005\fP from msteed/issue\-23776
  253199. .IP \(bu 2
  253200. 62e67d8ca0 issue \fI\%#23776\fP
  253201. .UNINDENT
  253202. .IP \(bu 2
  253203. \fBISSUE\fP \fI\%#23950\fP: (\fI\%neogenix\fP) iptables state generates a 0 position which is invalid in iptables cli (refs: \fI\%#23996\fP)
  253204. .IP \(bu 2
  253205. \fBPR\fP \fI\%#23996\fP: (\fI\%neogenix\fP) iptables state generates a 0 position which is invalid in iptables cli \fI\%#23950\fP
  253206. @ \fI2015\-05\-20 22:44:27 UTC\fP
  253207. .INDENT 2.0
  253208. .IP \(bu 2
  253209. 17b7c0b741 Merge pull request \fI\%#23996\fP from neogenix/2015.5\-23950
  253210. .IP \(bu 2
  253211. ad417a57c2 fix for \fI\%#23950\fP
  253212. .UNINDENT
  253213. .IP \(bu 2
  253214. \fBPR\fP \fI\%#23994\fP: (\fI\%rallytime\fP) Skip the gpodder pkgrepo test for Ubuntu 15 \- they don\(aqt have vivid ppa up yet
  253215. @ \fI2015\-05\-20 21:18:21 UTC\fP
  253216. .INDENT 2.0
  253217. .IP \(bu 2
  253218. 4cb877307c Merge pull request \fI\%#23994\fP from rallytime/skip_test_ubuntu_15
  253219. .IP \(bu 2
  253220. 9e0ec07d85 Skip the gpodder pkgrepo test \- they don\(aqt have vivid ppa up yet
  253221. .UNINDENT
  253222. .UNINDENT
  253223. .SS Salt 2015.5.3 Release Notes
  253224. .INDENT 0.0
  253225. .TP
  253226. .B release
  253227. 2015\-07\-07
  253228. .UNINDENT
  253229. .sp
  253230. Version 2015.5.3 is a bugfix release for 2015.5.0\&.
  253231. .SS Statistics
  253232. .INDENT 0.0
  253233. .IP \(bu 2
  253234. Total Merges: \fB178\fP
  253235. .IP \(bu 2
  253236. Total Issue References: \fB69\fP
  253237. .IP \(bu 2
  253238. Total PR References: \fB207\fP
  253239. .IP \(bu 2
  253240. Contributors: \fB62\fP (\fI\%CameronNemo\fP, \fI\%Lanzaa\fP, \fI\%Starblade42\fP, \fI\%The\-Loeki\fP, \fI\%TheScriptSage\fP, \fI\%aboe76\fP, \fI\%ahus1\fP, \fI\%aneeshusa\fP, \fI\%anlutro\fP, \fI\%arthurlogilab\fP, \fI\%basepi\fP, \fI\%borutmrak\fP, \fI\%cachedout\fP, \fI\%cgtx\fP, \fI\%codertux\fP, \fI\%cro\fP, \fI\%dkiser\fP, \fI\%driskell\fP, \fI\%eliasp\fP, \fI\%garethgreenaway\fP, \fI\%grischa\fP, \fI\%gthb\fP, \fI\%heewa\fP, \fI\%infestdead\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jayeshka\fP, \fI\%jeanpralo\fP, \fI\%jfindlay\fP, \fI\%jodv\fP, \fI\%joejulian\fP, \fI\%justinta\fP, \fI\%kartiksubbarao\fP, \fI\%kev009\fP, \fI\%kiorky\fP, \fI\%lorengordon\fP, \fI\%msciciel\fP, \fI\%msteed\fP, \fI\%nmadhok\fP, \fI\%notpeter\fP, \fI\%obestwalter\fP, \fI\%pengyao\fP, \fI\%pille\fP, \fI\%porterjamesj\fP, \fI\%pruiz\fP, \fI\%quixoten\fP, \fI\%rallytime\fP, \fI\%rhertzog\fP, \fI\%ruzarowski\fP, \fI\%ryan\-lane\fP, \fI\%steverweber\fP, \fI\%tankywoo\fP, \fI\%tbaker57\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%thenewwazoo\fP, \fI\%trevor\-h\fP, \fI\%twangboy\fP, \fI\%variia\fP, \fI\%zefrog\fP, \fI\%zhujinhe\fP)
  253241. .UNINDENT
  253242. .SS Changelog for v2015.5.2..v2015.5.3
  253243. .sp
  253244. \fIGenerated at: 2018\-05\-27 21:20:01 UTC\fP
  253245. .INDENT 0.0
  253246. .IP \(bu 2
  253247. \fBPR\fP \fI\%#25109\fP: (\fI\%jfindlay\fP) add 2015.5.3 release notes
  253248. @ \fI2015\-07\-01 19:45:56 UTC\fP
  253249. .INDENT 2.0
  253250. .IP \(bu 2
  253251. f0f512a4da Merge pull request \fI\%#25109\fP from jfindlay/2015.5
  253252. .IP \(bu 2
  253253. 3187d5d5aa add 2015.5.3 release notes
  253254. .UNINDENT
  253255. .IP \(bu 2
  253256. \fBPR\fP \fI\%#25096\fP: (\fI\%jfindlay\fP) Postgres group test
  253257. @ \fI2015\-07\-01 18:48:26 UTC\fP
  253258. .INDENT 2.0
  253259. .IP \(bu 2
  253260. \fBPR\fP \fI\%#24330\fP: (\fI\%jayeshka\fP) adding states/postgres_group unit test case. (refs: \fI\%#25096\fP)
  253261. .IP \(bu 2
  253262. 21709aa483 Merge pull request \fI\%#25096\fP from jfindlay/postgres_group_test
  253263. .IP \(bu 2
  253264. 3c379dc115 declobber postgres state unit test mocking
  253265. .IP \(bu 2
  253266. a162ffa3d8 adding states/postgres_group unit test case.
  253267. .UNINDENT
  253268. .IP \(bu 2
  253269. \fBISSUE\fP \fI\%#25041\fP: (\fI\%wt\fP) REGRESSION: pillar.get of integer fails to render in sls (refs: \fI\%#25085\fP)
  253270. .IP \(bu 2
  253271. \fBPR\fP \fI\%#25085\fP: (\fI\%jfindlay\fP) accept all sources in the file state
  253272. @ \fI2015\-07\-01 18:23:45 UTC\fP
  253273. .INDENT 2.0
  253274. .IP \(bu 2
  253275. 0a846400c6 Merge pull request \fI\%#25085\fP from jfindlay/fix_file
  253276. .IP \(bu 2
  253277. 937a252e16 remove unnecessary file state tests
  253278. .IP \(bu 2
  253279. 6f238e924c integration test file.managed sources
  253280. .IP \(bu 2
  253281. a5978d30c2 iterate an iterable source othwerise list+str it
  253282. .UNINDENT
  253283. .IP \(bu 2
  253284. \fBPR\fP \fI\%#25095\fP: (\fI\%jfindlay\fP) Win groupadd unit tests
  253285. @ \fI2015\-07\-01 18:18:53 UTC\fP
  253286. .INDENT 2.0
  253287. .IP \(bu 2
  253288. \fBPR\fP \fI\%#24207\fP: (\fI\%jayeshka\fP) adding win_groupadd unit test case. (refs: \fI\%#25095\fP)
  253289. .IP \(bu 2
  253290. a98394210e Merge pull request \fI\%#25095\fP from jfindlay/win_groupadd_test
  253291. .IP \(bu 2
  253292. 564dffd14a depend on win libs rather than mocking them
  253293. .IP \(bu 2
  253294. 9b9aeb8628 resolved all erors.
  253295. .IP \(bu 2
  253296. aaf89354c0 adding win_groupadd unit test case.
  253297. .UNINDENT
  253298. .IP \(bu 2
  253299. \fBISSUE\fP \fI\%#21520\fP: (\fI\%jfindlay\fP) sudo.salt_call is broken (refs: \fI\%#25089\fP)
  253300. .IP \(bu 2
  253301. \fBPR\fP \fI\%#25089\fP: (\fI\%jfindlay\fP) fix minion sudo
  253302. @ \fI2015\-07\-01 15:53:16 UTC\fP
  253303. .INDENT 2.0
  253304. .IP \(bu 2
  253305. \fBPR\fP \fI\%#20226\fP: (\fI\%thatch45\fP) Allow sudo priv escalation (refs: \fI\%#25089\fP)
  253306. .IP \(bu 2
  253307. 7c8d2a8656 Merge pull request \fI\%#25089\fP from jfindlay/fix_sudo
  253308. .IP \(bu 2
  253309. d8f91d4a19 add some apprehension to the sudo exec module
  253310. .IP \(bu 2
  253311. a9269c072a adding sudo exec module docs
  253312. .IP \(bu 2
  253313. e4a40b7bd8 comment whitespace in minion config
  253314. .IP \(bu 2
  253315. 44cb167744 adding sudo_user minion config docs
  253316. .IP \(bu 2
  253317. d461060efe adding sudo_user minion config to default
  253318. .UNINDENT
  253319. .IP \(bu 2
  253320. \fBISSUE\fP \fI\%#24875\fP: (\fI\%ahammond\fP) ValueError: list.remove(x): x not in list in File "/usr/lib/python2.6/site\-packages/salt/cli/batch.py", line 179, in run active.remove(minion) (refs: \fI\%#25099\fP)
  253321. .IP \(bu 2
  253322. \fBPR\fP \fI\%#25099\fP: (\fI\%driskell\fP) Fix broken batch results
  253323. @ \fI2015\-07\-01 15:51:29 UTC\fP
  253324. .INDENT 2.0
  253325. .IP \(bu 2
  253326. 4d6078e5dd Merge pull request \fI\%#25099\fP from driskell/patch\-1
  253327. .IP \(bu 2
  253328. 59b23e5f6e Fix broken batch results
  253329. .UNINDENT
  253330. .IP \(bu 2
  253331. \fBPR\fP \fI\%#25083\fP: (\fI\%steverweber\fP) ipmi: get_sensor_data would always fail
  253332. @ \fI2015\-06\-30 20:57:21 UTC\fP
  253333. .INDENT 2.0
  253334. .IP \(bu 2
  253335. 46350796b6 Merge pull request \fI\%#25083\fP from steverweber/fix_ipmi_stat
  253336. .IP \(bu 2
  253337. 836f48c378 include _ in IpmiCommand
  253338. .IP \(bu 2
  253339. 817e434591 get_sensor_data would always fail
  253340. .UNINDENT
  253341. .IP \(bu 2
  253342. \fBPR\fP \fI\%#25067\fP: (\fI\%The\-Loeki\fP) Fix for maxdepth=0 in find
  253343. @ \fI2015\-06\-30 20:54:06 UTC\fP
  253344. .INDENT 2.0
  253345. .IP \(bu 2
  253346. 15f2a4077c Merge pull request \fI\%#25067\fP from The\-Loeki/patch\-1
  253347. .IP \(bu 2
  253348. 61edad3a80 Fix for maxdepth=0 in find
  253349. .UNINDENT
  253350. .IP \(bu 2
  253351. \fBPR\fP \fI\%#25078\fP: (\fI\%terminalmage\fP) Use smaller number for upper limit of mac_user\(aqs _first_avail_uid helper function
  253352. @ \fI2015\-06\-30 20:53:24 UTC\fP
  253353. .INDENT 2.0
  253354. .IP \(bu 2
  253355. 58d933cfa8 Merge pull request \fI\%#25078\fP from terminalmage/fix\-mac\-uid
  253356. .IP \(bu 2
  253357. df2ab7ee2b Use smaller number for upper limit of mac_user\(aqs _first_avail_uid helper function
  253358. .UNINDENT
  253359. .IP \(bu 2
  253360. \fBISSUE\fP \fI\%#24521\fP: (\fI\%multani\fP) State network.managed fails on Debian (Jessie) (refs: \fI\%#25045\fP)
  253361. .IP \(bu 2
  253362. \fBPR\fP \fI\%#25045\fP: (\fI\%garethgreenaway\fP) Fixes to debian_ip.py in 2015.5
  253363. @ \fI2015\-06\-30 17:36:43 UTC\fP
  253364. .INDENT 2.0
  253365. .IP \(bu 2
  253366. ebd6cdc412 Merge pull request \fI\%#25045\fP from garethgreenaway/24521_debian_networking
  253367. .IP \(bu 2
  253368. 6f2a6c940b having proto default to static since it\(aqs needed to build the template.
  253369. .UNINDENT
  253370. .IP \(bu 2
  253371. \fBPR\fP \fI\%#25065\fP: (\fI\%lorengordon\fP) Add download links for 2015.5.1\-3 and 2015.5.2 Windows installers
  253372. @ \fI2015\-06\-30 15:29:31 UTC\fP
  253373. .INDENT 2.0
  253374. .IP \(bu 2
  253375. ae31b279cc Merge pull request \fI\%#25065\fP from lorengordon/update\-windows\-installer\-links
  253376. .IP \(bu 2
  253377. 40a0c132d4 Add download links for 2015.5.1\-3 and 2015.5.2, Fixes \fI\%#25057\fP
  253378. .UNINDENT
  253379. .IP \(bu 2
  253380. \fBPR\fP \fI\%#25052\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253381. @ \fI2015\-06\-30 01:05:00 UTC\fP
  253382. .INDENT 2.0
  253383. .IP \(bu 2
  253384. ddaeb0fb8e Merge pull request \fI\%#25052\fP from basepi/merge\-forward\-2015.5
  253385. .IP \(bu 2
  253386. 2c5e664a58 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253387. .IP \(bu 2
  253388. a7154e7471 Merge pull request \fI\%#25011\fP from notpeter/s3_2014.7_backport
  253389. .INDENT 2.0
  253390. .IP \(bu 2
  253391. 8b8af640f6 Add s3 to protocols for remote source_hash
  253392. .UNINDENT
  253393. .UNINDENT
  253394. .IP \(bu 2
  253395. \fBPR\fP \fI\%#25038\fP: (\fI\%jfindlay\fP) versionadded
  253396. @ \fI2015\-06\-29 19:49:27 UTC\fP
  253397. .INDENT 2.0
  253398. .IP \(bu 2
  253399. \fBPR\fP \fI\%#24747\fP: (\fI\%msciciel\fP) add get_route function to network module (refs: \fI\%#25038\fP)
  253400. .IP \(bu 2
  253401. c7003d4951 Merge pull request \fI\%#25038\fP from jfindlay/versionadded
  253402. .IP \(bu 2
  253403. d6dc6f97b5 versionadded
  253404. .UNINDENT
  253405. .IP \(bu 2
  253406. \fBPR\fP \fI\%#24747\fP: (\fI\%msciciel\fP) add get_route function to network module (refs: \fI\%#25038\fP)
  253407. @ \fI2015\-06\-29 16:51:43 UTC\fP
  253408. .INDENT 2.0
  253409. .IP \(bu 2
  253410. 28c87cab17 Merge pull request \fI\%#24747\fP from msciciel/2015.5
  253411. .IP \(bu 2
  253412. 79b4ec2da8 network module lint fix
  253413. .IP \(bu 2
  253414. 0b6ef784b2 network module: fix for ipv6
  253415. .IP \(bu 2
  253416. f3d184c478 add get_route function to network module
  253417. .UNINDENT
  253418. .IP \(bu 2
  253419. \fBPR\fP \fI\%#24975\fP: (\fI\%ryan\-lane\fP) Fix update of undefined env var in npm module
  253420. @ \fI2015\-06\-29 16:45:05 UTC\fP
  253421. .INDENT 2.0
  253422. .IP \(bu 2
  253423. 46a96773aa Merge pull request \fI\%#24975\fP from lyft/npm\-module\-fix
  253424. .IP \(bu 2
  253425. 6fde58182f Try byte literals rather than unicode strings in the env
  253426. .IP \(bu 2
  253427. c8514de334 Fix update of undefined env var in npm module
  253428. .UNINDENT
  253429. .IP \(bu 2
  253430. \fBPR\fP \fI\%#24986\fP: (\fI\%heewa\fP) Don\(aqt modify empty change
  253431. @ \fI2015\-06\-29 16:44:17 UTC\fP
  253432. .INDENT 2.0
  253433. .IP \(bu 2
  253434. 9cf8550cd8 Merge pull request \fI\%#24986\fP from heewa/fix\-pkg\-hold\-when\-errored
  253435. .IP \(bu 2
  253436. d47a448a80 Don\(aqt modify empty change
  253437. .UNINDENT
  253438. .IP \(bu 2
  253439. \fBISSUE\fP \fI\%#24969\fP: (\fI\%bradthurber\fP) salt\-cloud 2015.5.0: missing azure dependency results in misleading error (refs: \fI\%#24999\fP)
  253440. .IP \(bu 2
  253441. \fBPR\fP \fI\%#24999\fP: (\fI\%rallytime\fP) Provide a less confusing error when cloud provider is misconfigured
  253442. @ \fI2015\-06\-29 16:43:31 UTC\fP
  253443. .INDENT 2.0
  253444. .IP \(bu 2
  253445. ece897d8d6 Merge pull request \fI\%#24999\fP from rallytime/cloud_error_help
  253446. .IP \(bu 2
  253447. 1e81a88625 Clean up
  253448. .IP \(bu 2
  253449. be19a6730e Provide a less confusing error when cloud provider is misconfigured
  253450. .UNINDENT
  253451. .IP \(bu 2
  253452. \fBPR\fP \fI\%#24987\fP: (\fI\%heewa\fP) Don\(aqt try to cache a template when it\(aqs not a file
  253453. @ \fI2015\-06\-29 14:02:59 UTC\fP
  253454. .INDENT 2.0
  253455. .IP \(bu 2
  253456. 4af15cfb90 Merge pull request \fI\%#24987\fP from heewa/fix\-trying\-to\-cache\-no\-file
  253457. .IP \(bu 2
  253458. 9ae0c78ffc Don\(aqt try to cache a template when it\(aqs not a file
  253459. .UNINDENT
  253460. .IP \(bu 2
  253461. \fBPR\fP \fI\%#25022\fP: (\fI\%jfindlay\fP) revise label and milestone documentation
  253462. @ \fI2015\-06\-29 13:51:24 UTC\fP
  253463. .INDENT 2.0
  253464. .IP \(bu 2
  253465. 8eeaddbff4 Merge pull request \fI\%#25022\fP from jfindlay/label_docs
  253466. .IP \(bu 2
  253467. 8575192cc4 revise label and milestone documentation
  253468. .UNINDENT
  253469. .IP \(bu 2
  253470. \fBPR\fP \fI\%#25029\fP: (\fI\%jayeshka\fP) adding redismod unit test case.
  253471. @ \fI2015\-06\-29 13:50:33 UTC\fP
  253472. .INDENT 2.0
  253473. .IP \(bu 2
  253474. 89c2e01ac1 Merge pull request \fI\%#25029\fP from jayeshka/redismod\-unit\-test
  253475. .IP \(bu 2
  253476. e3045be5a9 adding redismod unit test case.
  253477. .UNINDENT
  253478. .IP \(bu 2
  253479. \fBPR\fP \fI\%#24995\fP: (\fI\%rallytime\fP) Fix deprecated pymongo usage causing errors in latest pymongo
  253480. @ \fI2015\-06\-27 22:28:56 UTC\fP
  253481. .INDENT 2.0
  253482. .IP \(bu 2
  253483. \fBPR\fP \fI\%#24175\fP: (\fI\%trevor\-h\fP) fix deprecated pymongo usage causing errors in latest pymongo (refs: \fI\%#24995\fP)
  253484. .IP \(bu 2
  253485. 642525298c Merge pull request \fI\%#24995\fP from rallytime/tops_mongo
  253486. .IP \(bu 2
  253487. a3c1063a37 fix deprecated pymongo usage causing errors in latest pymongo
  253488. .UNINDENT
  253489. .IP \(bu 2
  253490. \fBISSUE\fP \fI\%#24862\fP: (\fI\%dkatsanikakis\fP) gpg.import_key returns error after succesfully completed (refs: \fI\%#24994\fP, \fI\%#24966\fP)
  253491. .IP \(bu 2
  253492. \fBPR\fP \fI\%#24994\fP: (\fI\%garethgreenaway\fP) Another Fix to gpg.py in 2015.5
  253493. @ \fI2015\-06\-27 22:28:15 UTC\fP
  253494. .INDENT 2.0
  253495. .IP \(bu 2
  253496. e9aaa11b68 Merge pull request \fI\%#24994\fP from garethgreenaway/2015_5_24862_gpg_import_key
  253497. .IP \(bu 2
  253498. d2f0d8fa96 variable was referenced before assignment. Just removing the variable and checking the return from distutils.version.LooseVersion directly.
  253499. .UNINDENT
  253500. .IP \(bu 2
  253501. \fBPR\fP \fI\%#24988\fP: (\fI\%jayeshka\fP) adding states/supervisord unit test case.
  253502. @ \fI2015\-06\-27 22:24:42 UTC\fP
  253503. .INDENT 2.0
  253504. .IP \(bu 2
  253505. ebd666e5ee Merge pull request \fI\%#24988\fP from jayeshka/supervisord\-states\-unit\-test
  253506. .IP \(bu 2
  253507. bb0a6d5625 adding states/supervisord unit test case.
  253508. .UNINDENT
  253509. .IP \(bu 2
  253510. \fBPR\fP \fI\%#25007\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253511. @ \fI2015\-06\-26 21:28:57 UTC\fP
  253512. .INDENT 2.0
  253513. .IP \(bu 2
  253514. 0487c3c59b Merge pull request \fI\%#25007\fP from basepi/merge\-forward\-2015.5
  253515. .IP \(bu 2
  253516. 4980fd547b Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253517. .IP \(bu 2
  253518. a11e4c6eea Merge pull request \fI\%#24944\fP from techhat/issue24915
  253519. .INDENT 2.0
  253520. .IP \(bu 2
  253521. 59c3081e49 Double\-check main_cloud_config
  253522. .UNINDENT
  253523. .IP \(bu 2
  253524. d26a5447ba Merge pull request \fI\%#24936\fP from jtand/psutil
  253525. .INDENT 2.0
  253526. .IP \(bu 2
  253527. bdb7a19c36 Fixed ps module to not use depreciated psutil commands
  253528. .UNINDENT
  253529. .UNINDENT
  253530. .IP \(bu 2
  253531. \fBPR\fP \fI\%#25003\fP: (\fI\%jacobhammons\fP) Updated man pages
  253532. @ \fI2015\-06\-26 19:13:41 UTC\fP
  253533. .INDENT 2.0
  253534. .IP \(bu 2
  253535. 91a60e198e Merge pull request \fI\%#25003\fP from jacobhammons/man\-pages
  253536. .IP \(bu 2
  253537. cf97a4ab17 Updated man pages
  253538. .UNINDENT
  253539. .IP \(bu 2
  253540. \fBPR\fP \fI\%#25002\fP: (\fI\%jacobhammons\fP) sphinx html theme updates
  253541. @ \fI2015\-06\-26 18:39:14 UTC\fP
  253542. .INDENT 2.0
  253543. .IP \(bu 2
  253544. a60a2c4222 Merge pull request \fI\%#25002\fP from jacobhammons/doc\-announcements
  253545. .IP \(bu 2
  253546. f88f344a28 sphinx html theme updates
  253547. .UNINDENT
  253548. .IP \(bu 2
  253549. \fBPR\fP \fI\%#24977\fP: (\fI\%rallytime\fP) Only warn about digital ocean deprecation if digital ocean is configured
  253550. @ \fI2015\-06\-25 23:54:46 UTC\fP
  253551. .INDENT 2.0
  253552. .IP \(bu 2
  253553. a791b23ff9 Merge pull request \fI\%#24977\fP from rallytime/do_move_warning
  253554. .IP \(bu 2
  253555. 6b544227ab Only warn about digital ocean deprecation if digital ocean is configured
  253556. .UNINDENT
  253557. .IP \(bu 2
  253558. \fBISSUE\fP \fI\%#24862\fP: (\fI\%dkatsanikakis\fP) gpg.import_key returns error after succesfully completed (refs: \fI\%#24994\fP, \fI\%#24966\fP)
  253559. .IP \(bu 2
  253560. \fBPR\fP \fI\%#24966\fP: (\fI\%garethgreenaway\fP) Fixes to gpg.py in 2015.5
  253561. @ \fI2015\-06\-25 19:58:49 UTC\fP
  253562. .INDENT 2.0
  253563. .IP \(bu 2
  253564. a71c1b7c8b Merge pull request \fI\%#24966\fP from garethgreenaway/2015_5_24862_gpg_import_key
  253565. .IP \(bu 2
  253566. 55eb73b0c9 fixing unit tests.
  253567. .IP \(bu 2
  253568. 80c24be4fe Fixing an issue with the import_key method. Different results depending on which gnupg python module is installed.
  253569. .UNINDENT
  253570. .IP \(bu 2
  253571. \fBISSUE\fP \fI\%#24846\fP: (\fI\%mavenAtHouzz\fP) Memory leak issue in rest_tornado EventListener (refs: \fI\%#24965\fP)
  253572. .IP \(bu 2
  253573. \fBPR\fP \fI\%#24965\fP: (\fI\%jacksontj\fP) Fix memory leak in saltnado
  253574. @ \fI2015\-06\-25 18:48:03 UTC\fP
  253575. .INDENT 2.0
  253576. .IP \(bu 2
  253577. 86221846ac Merge pull request \fI\%#24965\fP from jacksontj/2015.5
  253578. .IP \(bu 2
  253579. 48b5e1653e pylint
  253580. .IP \(bu 2
  253581. 87adca46e0 Fix memory leak in saltnado
  253582. .UNINDENT
  253583. .IP \(bu 2
  253584. \fBPR\fP \fI\%#24948\fP: (\fI\%jfindlay\fP) fix some malformed doc links and anchors
  253585. @ \fI2015\-06\-25 15:51:38 UTC\fP
  253586. .INDENT 2.0
  253587. .IP \(bu 2
  253588. 773c4cf8e4 Merge pull request \fI\%#24948\fP from jfindlay/doc_links
  253589. .IP \(bu 2
  253590. 152a9b2a12 fix some malformed doc links and anchors
  253591. .UNINDENT
  253592. .IP \(bu 2
  253593. \fBISSUE\fP \fI\%#24885\fP: (\fI\%anlutro\fP) Master config \- Directories starting with a dot have the dot stripped when root_dir is . (refs: \fI\%#24886\fP)
  253594. .IP \(bu 2
  253595. \fBPR\fP \fI\%#24886\fP: (\fI\%anlutro\fP) Be more careful about stripping away root_dir from directory options
  253596. @ \fI2015\-06\-25 15:50:11 UTC\fP
  253597. .INDENT 2.0
  253598. .IP \(bu 2
  253599. 4ebc01e662 Merge pull request \fI\%#24886\fP from alprs/fix\-root_dir_bug
  253600. .IP \(bu 2
  253601. 52ccafded3 os.sep is the correct directory separator constant
  253602. .IP \(bu 2
  253603. 0ecbf261ad Be more careful about stripping away root_dir from directory options
  253604. .UNINDENT
  253605. .IP \(bu 2
  253606. \fBPR\fP \fI\%#24930\fP: (\fI\%jacksontj\fP) Don\(aqt refetch file templates 100% of the time\-\- Performance optimization for templated files
  253607. @ \fI2015\-06\-24 21:22:47 UTC\fP
  253608. .INDENT 2.0
  253609. .IP \(bu 2
  253610. f52f7e1d20 Merge pull request \fI\%#24930\fP from jacksontj/2015.5
  253611. .IP \(bu 2
  253612. 5fb75346ef Only parse the source if we have one
  253613. .IP \(bu 2
  253614. c03a6fa9d1 Add support for sources of managed files to be local
  253615. .IP \(bu 2
  253616. 4cf78a0a95 pylint
  253617. .IP \(bu 2
  253618. d70914e473 Don\(aqt refetch the template 100% of the time\-\- Performance optimization for templated files
  253619. .UNINDENT
  253620. .IP \(bu 2
  253621. \fBPR\fP \fI\%#24935\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253622. @ \fI2015\-06\-24 18:17:54 UTC\fP
  253623. .INDENT 2.0
  253624. .IP \(bu 2
  253625. 925a4d91ba Merge pull request \fI\%#24935\fP from basepi/merge\-forward\-2015.5
  253626. .IP \(bu 2
  253627. 8d8bf3476f Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253628. .IP \(bu 2
  253629. eeb05a1b10 Merge pull request \fI\%#24918\fP from BretFisher/minion\-start\-smartos\-smf\-fix
  253630. .INDENT 2.0
  253631. .IP \(bu 2
  253632. d7bfb0c7fd Smartos smf minion fix
  253633. .UNINDENT
  253634. .UNINDENT
  253635. .IP \(bu 2
  253636. \fBISSUE\fP \fI\%#24826\fP: (\fI\%rakai93\fP) rh_service.py: \(aqint\(aq object has no attribute \(aqstartswith\(aq (refs: \fI\%#24873\fP)
  253637. .IP \(bu 2
  253638. \fBPR\fP \fI\%#24873\fP: (\fI\%jfindlay\fP) convert osrelease grain to str before str op
  253639. @ \fI2015\-06\-24 16:43:08 UTC\fP
  253640. .INDENT 2.0
  253641. .IP \(bu 2
  253642. 4e8ed0d8ed Merge pull request \fI\%#24873\fP from jfindlay/rh_service
  253643. .IP \(bu 2
  253644. febe6efab7 convert osrelease grain to str before str op
  253645. .UNINDENT
  253646. .IP \(bu 2
  253647. \fBPR\fP \fI\%#24923\fP: (\fI\%jayeshka\fP) adding states/status unit test case.
  253648. @ \fI2015\-06\-24 15:50:07 UTC\fP
  253649. .INDENT 2.0
  253650. .IP \(bu 2
  253651. 90819f9c37 Merge pull request \fI\%#24923\fP from jayeshka/status\-states\-unit\-test
  253652. .IP \(bu 2
  253653. baec650674 adding states/status unit test case.
  253654. .UNINDENT
  253655. .IP \(bu 2
  253656. \fBPR\fP \fI\%#24902\fP: (\fI\%cro\fP) Fix minion failover, document same
  253657. @ \fI2015\-06\-24 15:20:43 UTC\fP
  253658. .INDENT 2.0
  253659. .IP \(bu 2
  253660. 2dd24ece71 Merge pull request \fI\%#24902\fP from cro/fixfo2
  253661. .IP \(bu 2
  253662. 90c73ff446 References to documentation.
  253663. .IP \(bu 2
  253664. f0c9204d8b Add references to failover parameters in conf
  253665. .IP \(bu 2
  253666. 9da96a8b95 Docs
  253667. .IP \(bu 2
  253668. e2314f0e49 Move comment.
  253669. .IP \(bu 2
  253670. b9a756ff5f Fix master failover and add documentation for same. Factor in syndics. Syndics will not failover (yet).
  253671. .UNINDENT
  253672. .IP \(bu 2
  253673. \fBPR\fP \fI\%#24926\fP: (\fI\%rallytime\fP) Back\-port \fI\%#22263\fP to 2015.5
  253674. @ \fI2015\-06\-24 15:09:40 UTC\fP
  253675. .INDENT 2.0
  253676. .IP \(bu 2
  253677. \fBPR\fP \fI\%#22263\fP: (\fI\%cachedout\fP) Prevent a load from being written if one already exists (refs: \fI\%#24926\fP)
  253678. .IP \(bu 2
  253679. 087ee09f46 Merge pull request \fI\%#24926\fP from rallytime/bp\-22263
  253680. .IP \(bu 2
  253681. 8c92d9c677 Prevent a load from being written if one already exists
  253682. .UNINDENT
  253683. .IP \(bu 2
  253684. \fBPR\fP \fI\%#24900\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24848\fP to 2015.5
  253685. @ \fI2015\-06\-24 15:09:18 UTC\fP
  253686. .INDENT 2.0
  253687. .IP \(bu 2
  253688. \fBPR\fP \fI\%#24848\fP: (\fI\%nmadhok\fP) Correcting bash code blocks (refs: \fI\%#24900\fP)
  253689. .IP \(bu 2
  253690. b34a74fe89 Merge pull request \fI\%#24900\fP from rallytime/bp\-24848
  253691. .IP \(bu 2
  253692. d2b5456f5d Correcting bash code blocks
  253693. .UNINDENT
  253694. .IP \(bu 2
  253695. \fBPR\fP \fI\%#24899\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24847\fP to 2015.5
  253696. @ \fI2015\-06\-24 15:09:01 UTC\fP
  253697. .INDENT 2.0
  253698. .IP \(bu 2
  253699. \fBPR\fP \fI\%#24847\fP: (\fI\%borutmrak\fP) unset size parameter for lxc.create when backing=zfs (refs: \fI\%#24899\fP)
  253700. .IP \(bu 2
  253701. a546e8e326 Merge pull request \fI\%#24899\fP from rallytime/bp\-24847
  253702. .IP \(bu 2
  253703. 1e4ec7a56b unset size parameter for lxc.create when backing=zfs
  253704. .UNINDENT
  253705. .IP \(bu 2
  253706. \fBPR\fP \fI\%#24898\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24845\fP to 2015.5
  253707. @ \fI2015\-06\-24 15:06:09 UTC\fP
  253708. .INDENT 2.0
  253709. .IP \(bu 2
  253710. \fBPR\fP \fI\%#24845\fP: (\fI\%porterjamesj\fP) fix bug in docker.loaded (refs: \fI\%#24898\fP)
  253711. .IP \(bu 2
  253712. d4dd8d288d Merge pull request \fI\%#24898\fP from rallytime/bp\-24845
  253713. .IP \(bu 2
  253714. 071049ae7a fix bug in docker.loaded
  253715. .UNINDENT
  253716. .IP \(bu 2
  253717. \fBISSUE\fP \fI\%#24799\fP: (\fI\%infestdead\fP) Forced remount because options changed when no options changed (glusterfs) (refs: \fI\%#24839\fP)
  253718. .IP \(bu 2
  253719. \fBPR\fP \fI\%#24897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24839\fP to 2015.5
  253720. @ \fI2015\-06\-24 15:05:35 UTC\fP
  253721. .INDENT 2.0
  253722. .IP \(bu 2
  253723. \fBPR\fP \fI\%#24839\fP: (\fI\%infestdead\fP) fix for issue \fI\%#24799\fP (refs: \fI\%#24897\fP)
  253724. .IP \(bu 2
  253725. 693085520f Merge pull request \fI\%#24897\fP from rallytime/bp\-24839
  253726. .IP \(bu 2
  253727. f3b20d5445 fix for issue \fI\%#24799\fP
  253728. .UNINDENT
  253729. .IP \(bu 2
  253730. \fBPR\fP \fI\%#24891\fP: (\fI\%jayeshka\fP) adding states/ssh_known_hosts unit test case.
  253731. @ \fI2015\-06\-23 16:46:58 UTC\fP
  253732. .INDENT 2.0
  253733. .IP \(bu 2
  253734. 1650233be9 Merge pull request \fI\%#24891\fP from jayeshka/ssh_known_hosts\-states\-unit\-test
  253735. .IP \(bu 2
  253736. ef1347f2b3 adding states/ssh_known_hosts unit test case.
  253737. .UNINDENT
  253738. .IP \(bu 2
  253739. \fBISSUE\fP \fI\%#24870\fP: (\fI\%dkiser\fP) salt\-cloud fails on sudo password prompt when using ssh key to auth (refs: \fI\%#24874\fP)
  253740. .IP \(bu 2
  253741. \fBPR\fP \fI\%#24874\fP: (\fI\%dkiser\fP) Fix for salt\-cloud when ssh key used to auth and using sudo.
  253742. @ \fI2015\-06\-22 23:46:08 UTC\fP
  253743. .INDENT 2.0
  253744. .IP \(bu 2
  253745. c32aae96aa Merge pull request \fI\%#24874\fP from dkiser/salt\-cloud\-24870
  253746. .IP \(bu 2
  253747. 6c31143b22 Fix key error for the PR to fix \fI\%#24870\fP\&.
  253748. .IP \(bu 2
  253749. bdcf7d88c1 Fix pylint for \fI\%#24874\fP\&.
  253750. .IP \(bu 2
  253751. 8f66d193e0 Fix for salt\-cloud when ssh key used to auth and using sudo.
  253752. .UNINDENT
  253753. .IP \(bu 2
  253754. \fBISSUE\fP \fI\%#24871\fP: (\fI\%dkiser\fP) salt\-cloud fails to honor \(aqpassword\(aq in cloud options before raising an exception (refs: \fI\%#24880\fP)
  253755. .IP \(bu 2
  253756. \fBPR\fP \fI\%#24880\fP: (\fI\%dkiser\fP) Fix to allow password for salt\-cloud to be set outside of a vm specif…
  253757. @ \fI2015\-06\-22 23:44:59 UTC\fP
  253758. .INDENT 2.0
  253759. .IP \(bu 2
  253760. ddaa21c0ae Merge pull request \fI\%#24880\fP from dkiser/salt\-cloud\-24871
  253761. .IP \(bu 2
  253762. 4f6c035673 Fix to allow password for salt\-cloud to be set outside of a vm specific context.
  253763. .UNINDENT
  253764. .IP \(bu 2
  253765. \fBPR\fP \fI\%#24852\fP: (\fI\%pruiz\fP) Fix issue 24851: regular expression so it now matches packages with \(aq.\(aq or \(aq\-\(aq at pkg name
  253766. @ \fI2015\-06\-22 20:37:13 UTC\fP
  253767. .INDENT 2.0
  253768. .IP \(bu 2
  253769. 3902b162a9 Merge pull request \fI\%#24852\fP from pruiz/issue\-24851
  253770. .IP \(bu 2
  253771. 73adb1df50 Fix regular expression so it now matches packages with \(aq.\(aq or \(aq\-\(aq at pkg name.
  253772. .UNINDENT
  253773. .IP \(bu 2
  253774. \fBPR\fP \fI\%#24861\fP: (\fI\%jayeshka\fP) adding states/ssh_auth unit test case.
  253775. @ \fI2015\-06\-22 16:20:01 UTC\fP
  253776. .INDENT 2.0
  253777. .IP \(bu 2
  253778. 6c5b788afd Merge pull request \fI\%#24861\fP from jayeshka/ssh_auth\-states\-unit\-test
  253779. .IP \(bu 2
  253780. e5d7b0de80 adding states/ssh_auth unit test case.
  253781. .UNINDENT
  253782. .IP \(bu 2
  253783. \fBISSUE\fP \fI\%#23478\fP: (\fI\%calvinhp\fP) grains.get virtual reports "physical" on bhyve FreeBSD VM (refs: \fI\%#24824\fP)
  253784. .IP \(bu 2
  253785. \fBPR\fP \fI\%#24824\fP: (\fI\%kev009\fP) Detect bhyve virtual type for FreeBSD guests
  253786. @ \fI2015\-06\-22 15:24:35 UTC\fP
  253787. .INDENT 2.0
  253788. .IP \(bu 2
  253789. 9e3321c18e Merge pull request \fI\%#24824\fP from kev009/grains\-bhyve\-bsd
  253790. .IP \(bu 2
  253791. a2262097a1 Detect bhyve virtual type for freebsd guests
  253792. .UNINDENT
  253793. .IP \(bu 2
  253794. \fBISSUE\fP \fI\%#24746\fP: (\fI\%anlutro\fP) state.apply doesn\(aqt seem to work (refs: \fI\%#24795\fP)
  253795. .IP \(bu 2
  253796. \fBPR\fP \fI\%#24795\fP: (\fI\%anlutro\fP) Fix state.apply for salt\-ssh
  253797. @ \fI2015\-06\-22 15:23:57 UTC\fP
  253798. .INDENT 2.0
  253799. .IP \(bu 2
  253800. 7b07ef9f44 Merge pull request \fI\%#24795\fP from alprs/fix\-salt_ssh_state_apply
  253801. .IP \(bu 2
  253802. 905840b1fa Fix state.apply for salt\-ssh
  253803. .UNINDENT
  253804. .IP \(bu 2
  253805. \fBPR\fP \fI\%#24832\fP: (\fI\%jacksontj\fP) Don\(aqt incur a "_load_all" of the lazy_loader while looking for mod_init.
  253806. @ \fI2015\-06\-22 15:17:10 UTC\fP
  253807. .INDENT 2.0
  253808. .IP \(bu 2
  253809. \fBPR\fP \fI\%#20540\fP: (\fI\%jacksontj\fP) Loader nomerge: Don\(aqt allow modules to "merge" (refs: \fI\%#24832\fP)
  253810. .IP \(bu 2
  253811. \fBPR\fP \fI\%#20481\fP: (\fI\%jacksontj\fP) Add submodule support to LazyLoader (refs: \fI\%#20540\fP)
  253812. .IP \(bu 2
  253813. \fBPR\fP \fI\%#20473\fP: (\fI\%jacksontj\fP) Add "disabled" support (refs: \fI\%#20481\fP)
  253814. .IP \(bu 2
  253815. \fBPR\fP \fI\%#20274\fP: (\fI\%jacksontj\fP) Loader overhaul to LazyLoader (refs: \fI\%#20473\fP)
  253816. .IP \(bu 2
  253817. \fBPR\fP \fI\%#12327\fP: (\fI\%jacksontj\fP) Add a LazyLoader class which will lazily load modules (with the given lo... (refs: \fI\%#20274\fP)
  253818. .IP \(bu 2
  253819. 31d4c131e9 Merge pull request \fI\%#24832\fP from jacksontj/2015.5
  253820. .IP \(bu 2
  253821. cfa7c0a699 pylint
  253822. .IP \(bu 2
  253823. be18439736 Don\(aqt incur a "_load_all" of the lazy_loader while looking for mod_init.
  253824. .UNINDENT
  253825. .IP \(bu 2
  253826. \fBISSUE\fP \fI\%#14666\fP: (\fI\%luciddr34m3r\fP) salt\-cloud GoGrid exception when using map file (refs: \fI\%#24811\fP)
  253827. .IP \(bu 2
  253828. \fBPR\fP \fI\%#24834\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24811\fP to 2015.5
  253829. @ \fI2015\-06\-19 18:43:49 UTC\fP
  253830. .INDENT 2.0
  253831. .IP \(bu 2
  253832. \fBPR\fP \fI\%#24811\fP: (\fI\%rallytime\fP) Add notes to map and gogrid docs \-\- don\(aqt use \-P with map files (refs: \fI\%#24834\fP)
  253833. .IP \(bu 2
  253834. 2d8148fb4d Merge pull request \fI\%#24834\fP from rallytime/bp\-24811
  253835. .IP \(bu 2
  253836. e2684ecf0b Add notes to map and gogrid docs \-\- don\(aqt use \-P with map files
  253837. .UNINDENT
  253838. .IP \(bu 2
  253839. \fBPR\fP \fI\%#24790\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24741\fP to 2015.5
  253840. @ \fI2015\-06\-19 17:25:58 UTC\fP
  253841. .INDENT 2.0
  253842. .IP \(bu 2
  253843. \fBPR\fP \fI\%#24741\fP: (\fI\%CameronNemo\fP) Improve Upstart enable/disable handling (refs: \fI\%#24790\fP)
  253844. .IP \(bu 2
  253845. d2edb63cff Merge pull request \fI\%#24790\fP from rallytime/bp\-24741
  253846. .IP \(bu 2
  253847. a54245f080 Add missing import
  253848. .IP \(bu 2
  253849. 4ce6370d6e salt.modules.upstart: fix lint errors
  253850. .IP \(bu 2
  253851. aec53ec32a Improve Upstart enable/disable handling
  253852. .UNINDENT
  253853. .IP \(bu 2
  253854. \fBPR\fP \fI\%#24789\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24717\fP to 2015.5
  253855. @ \fI2015\-06\-19 17:17:00 UTC\fP
  253856. .INDENT 2.0
  253857. .IP \(bu 2
  253858. \fBPR\fP \fI\%#24717\fP: (\fI\%gthb\fP) virtualenv.managed: document user and no_chown (refs: \fI\%#24789\fP)
  253859. .IP \(bu 2
  253860. 645e62a43c Merge pull request \fI\%#24789\fP from rallytime/bp\-24717
  253861. .IP \(bu 2
  253862. 95ac4eba13 virtualenv.managed: document user and no_chown
  253863. .UNINDENT
  253864. .IP \(bu 2
  253865. \fBPR\fP \fI\%#24823\fP: (\fI\%jayeshka\fP) adding states/splunk_search unit test case.
  253866. @ \fI2015\-06\-19 17:14:12 UTC\fP
  253867. .INDENT 2.0
  253868. .IP \(bu 2
  253869. 0a6c70f062 Merge pull request \fI\%#24823\fP from jayeshka/splunk_search\-states\-unit\-test
  253870. .IP \(bu 2
  253871. 98831a8cb0 adding states/splunk_search unit test case.
  253872. .UNINDENT
  253873. .IP \(bu 2
  253874. \fBPR\fP \fI\%#24809\fP: (\fI\%jodv\fP) Correctly create single item list for failover master type with string value for master opt
  253875. @ \fI2015\-06\-19 15:22:20 UTC\fP
  253876. .INDENT 2.0
  253877. .IP \(bu 2
  253878. 4c5a708599 Merge pull request \fI\%#24809\fP from jodv/single_item_master_list
  253879. .IP \(bu 2
  253880. 18ceebc77f single item list vs. list of characters
  253881. .UNINDENT
  253882. .IP \(bu 2
  253883. \fBPR\fP \fI\%#24802\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  253884. @ \fI2015\-06\-18 20:11:58 UTC\fP
  253885. .INDENT 2.0
  253886. .IP \(bu 2
  253887. ae05e70e94 Merge pull request \fI\%#24802\fP from basepi/merge\-forward\-2015.5
  253888. .IP \(bu 2
  253889. 5b7a65d6d9 Merge pull request \fI\%#19\fP from twangboy/merge\-forward\-fixes
  253890. .INDENT 2.0
  253891. .IP \(bu 2
  253892. 98e7e90299 Fixed test failures for Colton
  253893. .UNINDENT
  253894. .IP \(bu 2
  253895. b949856ae6 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  253896. .INDENT 2.0
  253897. .IP \(bu 2
  253898. 4281dfff0b Merge pull request \fI\%#24780\fP from nmadhok/backport\-2014.7\-24777
  253899. .INDENT 2.0
  253900. .IP \(bu 2
  253901. c53b0d9a22 Backporting PR \fI\%#24777\fP to 2014.7 branch
  253902. .UNINDENT
  253903. .IP \(bu 2
  253904. f3c5cb2d41 Merge pull request \fI\%#24769\fP from msteed/issue\-21318
  253905. .INDENT 2.0
  253906. .IP \(bu 2
  253907. f40a9d5cc0 Fix stacktrace in get_cli_returns()
  253908. .UNINDENT
  253909. .IP \(bu 2
  253910. 59db24602f Merge pull request \fI\%#24690\fP from twangboy/fix_17041
  253911. .INDENT 2.0
  253912. .IP \(bu 2
  253913. 7a015389af Added additional reporting
  253914. .IP \(bu 2
  253915. d84ad5d519 Fixed capitalization... Failed and Already
  253916. .IP \(bu 2
  253917. e9552455c4 Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_17041
  253918. .IP \(bu 2
  253919. 144bff2f67 Report powershell output instead of error
  253920. .UNINDENT
  253921. .UNINDENT
  253922. .IP \(bu 2
  253923. \fBPR\fP \fI\%saltstack/salt#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case. (refs: \fI\%#24798\fP)
  253924. .UNINDENT
  253925. .IP \(bu 2
  253926. \fBPR\fP \fI\%#24798\fP: (\fI\%justinta\fP) Revert "adding states/postgres_database unit test case."
  253927. @ \fI2015\-06\-18 17:56:17 UTC\fP
  253928. .INDENT 2.0
  253929. .IP \(bu 2
  253930. daa76c34e4 Merge pull request \fI\%#24798\fP from saltstack/revert\-24329\-postgres_database\-states\-unit\-test
  253931. .IP \(bu 2
  253932. 179ce03d93 Revert "adding states/postgres_database unit test case."
  253933. .UNINDENT
  253934. .IP \(bu 2
  253935. \fBPR\fP \fI\%#24791\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24749\fP to 2015.5
  253936. @ \fI2015\-06\-18 17:43:15 UTC\fP
  253937. .INDENT 2.0
  253938. .IP \(bu 2
  253939. \fBPR\fP \fI\%#24749\fP: (\fI\%obestwalter\fP) add windows specfic default for multiprocessing (refs: \fI\%#24791\fP)
  253940. .IP \(bu 2
  253941. 7073a9f850 Merge pull request \fI\%#24791\fP from rallytime/bp\-24749
  253942. .IP \(bu 2
  253943. be43b2b394 add windows specfic default for multiprocessing
  253944. .UNINDENT
  253945. .IP \(bu 2
  253946. \fBPR\fP \fI\%#24792\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24757\fP to 2015.5
  253947. @ \fI2015\-06\-18 15:58:35 UTC\fP
  253948. .INDENT 2.0
  253949. .IP \(bu 2
  253950. \fBPR\fP \fI\%#24757\fP: (\fI\%cachedout\fP) Fix loader call in pyobjects (refs: \fI\%#24792\fP)
  253951. .IP \(bu 2
  253952. \fBPR\fP \fI\%#24668\fP: (\fI\%grischa\fP) enable virtual package names in pyobjects renderer (refs: \fI\%#24721\fP, \fI\%#24757\fP)
  253953. .IP \(bu 2
  253954. 1a158e8a3b Merge pull request \fI\%#24792\fP from rallytime/bp\-24757
  253955. .IP \(bu 2
  253956. 6c804f0789 Fix loader call in pyobjects
  253957. .UNINDENT
  253958. .IP \(bu 2
  253959. \fBPR\fP \fI\%#24768\fP: (\fI\%jfindlay\fP) fix yum versionlock on RHEL/CentOS 5, disable corresponding test
  253960. @ \fI2015\-06\-18 15:13:12 UTC\fP
  253961. .INDENT 2.0
  253962. .IP \(bu 2
  253963. 0f9298263b Merge pull request \fI\%#24768\fP from jfindlay/pkg_mod
  253964. .IP \(bu 2
  253965. 7a26c2b5b9 disable pkg.hold test for RHEL/CentOS 5
  253966. .IP \(bu 2
  253967. 4cacd93c22 use correct yum versionlock pkg name on centos 5
  253968. .UNINDENT
  253969. .IP \(bu 2
  253970. \fBISSUE\fP \fI\%#24776\fP: (\fI\%nmadhok\fP) \-\-static option in salt raises ValueError and has been broken for a very long time (refs: \fI\%#24777\fP)
  253971. .INDENT 2.0
  253972. .IP \(bu 2
  253973. \fBPR\fP \fI\%#24779\fP: (\fI\%nmadhok\fP) Backporting Changes to 2014.7 branch (refs: \fI\%#24777\fP)
  253974. .UNINDENT
  253975. .IP \(bu 2
  253976. \fBPR\fP \fI\%#24778\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2015.2 branch (refs: \fI\%#24777\fP)
  253977. @ \fI2015\-06\-18 14:53:04 UTC\fP
  253978. .INDENT 2.0
  253979. .IP \(bu 2
  253980. \fBPR\fP \fI\%#24777\fP: (\fI\%nmadhok\fP) Fixing issue where \-\-static option fails with ValueError Fixes \fI\%#24776\fP (refs: \fI\%#24778\fP, \fI\%#24780\fP)
  253981. .IP \(bu 2
  253982. 39f088a74c Merge pull request \fI\%#24778\fP from nmadhok/backport\-2015.2\-24777
  253983. .IP \(bu 2
  253984. ae3701f639 Backporting PR \fI\%#24777\fP to 2015.2 branch
  253985. .UNINDENT
  253986. .IP \(bu 2
  253987. \fBPR\fP \fI\%#24774\fP: (\fI\%zefrog\fP) Fix lxc lvname parameter command
  253988. @ \fI2015\-06\-18 14:49:06 UTC\fP
  253989. .INDENT 2.0
  253990. .IP \(bu 2
  253991. 2a4f65f3f7 Merge pull request \fI\%#24774\fP from zefrog/fix\-lxc\-lvname\-param
  253992. .IP \(bu 2
  253993. 21e0cd4a5e Fixed typo in lxc module: lvname parameter typo
  253994. .IP \(bu 2
  253995. 283d86ec12 Fixed bug in lxc module: lvname using wrong parameter in cmd
  253996. .UNINDENT
  253997. .IP \(bu 2
  253998. \fBPR\fP \fI\%#24782\fP: (\fI\%jayeshka\fP) adding states/slack unit test case.
  253999. @ \fI2015\-06\-18 14:33:55 UTC\fP
  254000. .INDENT 2.0
  254001. .IP \(bu 2
  254002. fd7339014b Merge pull request \fI\%#24782\fP from jayeshka/slack\-states\-unit\-test
  254003. .IP \(bu 2
  254004. e2b6214764 adding states/slack unit test case.
  254005. .UNINDENT
  254006. .IP \(bu 2
  254007. \fBISSUE\fP \fI\%#24770\fP: (\fI\%jacksontj\fP) \fIRequisite\fP and \fIRequisite_in\fP don\(aqt play nice together (refs: \fI\%#24771\fP)
  254008. .IP \(bu 2
  254009. \fBPR\fP \fI\%#24771\fP: (\fI\%jacksontj\fP) Always extend requisites, instead of replacing them
  254010. @ \fI2015\-06\-18 14:29:09 UTC\fP
  254011. .INDENT 2.0
  254012. .IP \(bu 2
  254013. c9c90af512 Merge pull request \fI\%#24771\fP from jacksontj/2015.5
  254014. .IP \(bu 2
  254015. b1211c5422 Re\-enable tests for complex prereq and prereq_in
  254016. .IP \(bu 2
  254017. 378f6bfc36 Only merge when the merge is of requisites
  254018. .UNINDENT
  254019. .IP \(bu 2
  254020. \fBPR\fP \fI\%#24766\fP: (\fI\%msteed\fP) Remove doc references to obsolete minion opt
  254021. @ \fI2015\-06\-17 21:36:55 UTC\fP
  254022. .INDENT 2.0
  254023. .IP \(bu 2
  254024. 5fe4de8f62 Merge pull request \fI\%#24766\fP from msteed/undoc\-dns_check
  254025. .IP \(bu 2
  254026. f92a769d35 Remove doc references to obsolete minion opt
  254027. .UNINDENT
  254028. .IP \(bu 2
  254029. \fBPR\fP \fI\%#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case.
  254030. @ \fI2015\-06\-17 19:11:02 UTC\fP
  254031. .INDENT 2.0
  254032. .IP \(bu 2
  254033. a407ab7c51 Merge pull request \fI\%#24329\fP from jayeshka/postgres_database\-states\-unit\-test
  254034. .IP \(bu 2
  254035. ee06f1ad57 adding states/postgres_database unit test case.
  254036. .UNINDENT
  254037. .IP \(bu 2
  254038. \fBISSUE\fP \fI\%#24560\fP: (\fI\%hydrosine\fP) Documentation missing on parameter (refs: \fI\%#24632\fP)
  254039. .IP \(bu 2
  254040. \fBISSUE\fP \fI\%#24547\fP: (\fI\%dragonpaw\fP) Artifactory docs say module is \(aqjboss7\(aq. (refs: \fI\%#24632\fP)
  254041. .IP \(bu 2
  254042. \fBISSUE\fP \fI\%#24375\fP: (\fI\%companykitchen\-dev\fP) Custom grain won\(aqt sync under any circumstances (refs: \fI\%#24632\fP)
  254043. .IP \(bu 2
  254044. \fBISSUE\fP \fI\%#24275\fP: (\fI\%kartiksubbarao\fP) augeas issue with apache and recognizing changes that have been already made (refs: \fI\%#24632\fP)
  254045. .IP \(bu 2
  254046. \fBISSUE\fP \fI\%#24163\fP: (\fI\%tbaker57\fP) enable_gpu_grains default value confusion (refs: \fI\%#24632\fP)
  254047. .IP \(bu 2
  254048. \fBPR\fP \fI\%#24632\fP: (\fI\%jacobhammons\fP) Doc bug fixes
  254049. @ \fI2015\-06\-17 18:40:02 UTC\fP
  254050. .INDENT 2.0
  254051. .IP \(bu 2
  254052. 3ff6eff546 Merge pull request \fI\%#24632\fP from jacobhammons/bug\-fixes
  254053. .IP \(bu 2
  254054. 7c52012e31 Fixed typos
  254055. .IP \(bu 2
  254056. c7cdd416a2 Doc bug fixes Refs \fI\%#24547\fP Refs \fI\%#24275\fP Refs \fI\%#24375\fP Refs \fI\%#24560\fP Refs \fI\%#24163\fP
  254057. .UNINDENT
  254058. .IP \(bu 2
  254059. \fBISSUE\fP \fI\%#24198\fP: (\fI\%ahammond\fP) salt\-call event.send doesn\(aqt send events from minion (refs: \fI\%#24607\fP)
  254060. .IP \(bu 2
  254061. \fBPR\fP \fI\%#24607\fP: (\fI\%garethgreenaway\fP) fixes to minion.py
  254062. @ \fI2015\-06\-17 18:16:42 UTC\fP
  254063. .INDENT 2.0
  254064. .IP \(bu 2
  254065. 9995f64428 Merge pull request \fI\%#24607\fP from garethgreenaway/2015_5_sending_events_multi_master
  254066. .IP \(bu 2
  254067. 8abd3f0ee1 A fix if you have multiple masters configured and try to fire events to the minion. Currently they fail silently. Might be the cause of \fI\%#24198\fP\&.
  254068. .UNINDENT
  254069. .IP \(bu 2
  254070. \fBPR\fP \fI\%#24755\fP: (\fI\%rallytime\fP) Remove SALT_CLOUD_REQS from setup.py
  254071. @ \fI2015\-06\-17 17:42:25 UTC\fP
  254072. .INDENT 2.0
  254073. .IP \(bu 2
  254074. bf2dd94389 Merge pull request \fI\%#24755\fP from rallytime/fix_setup_15
  254075. .IP \(bu 2
  254076. 48769a544d Remove SALT_CLOUD_REQS from setup.py
  254077. .UNINDENT
  254078. .IP \(bu 2
  254079. \fBPR\fP \fI\%#24740\fP: (\fI\%rallytime\fP) Backport \fI\%#24720\fP to 2015.5
  254080. @ \fI2015\-06\-17 16:43:37 UTC\fP
  254081. .INDENT 2.0
  254082. .IP \(bu 2
  254083. \fBPR\fP \fI\%#24720\fP: (\fI\%TheScriptSage\fP) Issue 24621 \- AD/LDAP Group Auth Issue (refs: \fI\%#24740\fP)
  254084. .IP \(bu 2
  254085. 3d53d79476 Merge pull request \fI\%#24740\fP from rallytime/bp\-24720
  254086. .IP \(bu 2
  254087. a9bcdb5b77 Updating master.py to properly check against groups when user is only authed against group. Tested against unit.auth_test.
  254088. .UNINDENT
  254089. .IP \(bu 2
  254090. \fBPR\fP \fI\%#24723\fP: (\fI\%rallytime\fP) Back\-port \fI\%#20124\fP to 2015.5
  254091. @ \fI2015\-06\-17 16:43:20 UTC\fP
  254092. .INDENT 2.0
  254093. .IP \(bu 2
  254094. \fBPR\fP \fI\%#20124\fP: (\fI\%cgtx\fP) add init system to default grains (refs: \fI\%#24723\fP)
  254095. .IP \(bu 2
  254096. ac2851be55 Merge pull request \fI\%#24723\fP from rallytime/bp\-20124
  254097. .IP \(bu 2
  254098. 4d0061b832 fix infinite loop introduced by \fI\%#20124\fP when the init system is not in the supported_inits list
  254099. .IP \(bu 2
  254100. 0c7fa0fca2 Optimizations for \fI\%#20124\fP
  254101. .IP \(bu 2
  254102. f353454327 add init system to default grains (resolve \fI\%#20124\fP)
  254103. .UNINDENT
  254104. .IP \(bu 2
  254105. \fBPR\fP \fI\%#24754\fP: (\fI\%anlutro\fP) salt\-cloud documentation \- Add information about linode location
  254106. @ \fI2015\-06\-17 16:04:48 UTC\fP
  254107. .INDENT 2.0
  254108. .IP \(bu 2
  254109. 78cd09b6e9 Merge pull request \fI\%#24754\fP from alprs/docs\-add_linode_location_option
  254110. .IP \(bu 2
  254111. d88e071e98 add information about linode location
  254112. .UNINDENT
  254113. .IP \(bu 2
  254114. \fBPR\fP \fI\%#24748\fP: (\fI\%jayeshka\fP) adding states/serverdensity_device unit test case.
  254115. @ \fI2015\-06\-17 15:39:07 UTC\fP
  254116. .INDENT 2.0
  254117. .IP \(bu 2
  254118. d5554f76ec Merge pull request \fI\%#24748\fP from jayeshka/serverdensity_device\-states\-unit\-test
  254119. .IP \(bu 2
  254120. 1a4c241050 adding states/serverdensity_device unit test case.
  254121. .UNINDENT
  254122. .IP \(bu 2
  254123. \fBPR\fP \fI\%#24739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24735\fP to 2015.5
  254124. @ \fI2015\-06\-17 15:16:47 UTC\fP
  254125. .INDENT 2.0
  254126. .IP \(bu 2
  254127. \fBPR\fP \fI\%#24735\fP: (\fI\%notpeter\fP) Add 2015.5 codename to version numbers docs (refs: \fI\%#24739\fP)
  254128. .IP \(bu 2
  254129. 0b7e7ef879 Merge pull request \fI\%#24739\fP from rallytime/bp\-24735
  254130. .IP \(bu 2
  254131. 64c565d9be Add .0 to version number
  254132. .IP \(bu 2
  254133. 5ed801b98f Add codenames for 2015.5 and future versions. Trailing newline.
  254134. .UNINDENT
  254135. .IP \(bu 2
  254136. \fBISSUE\fP \fI\%#24111\fP: (\fI\%yermulnik\fP) cli option \(aq\-\-summary\(aq got broken after upgrade to 2015.5.1 (refs: \fI\%#24732\fP)
  254137. .IP \(bu 2
  254138. \fBPR\fP \fI\%#24732\fP: (\fI\%msteed\fP) Fix stacktrace when \fI\-\-summary\fP is used
  254139. @ \fI2015\-06\-17 03:27:57 UTC\fP
  254140. .INDENT 2.0
  254141. .IP \(bu 2
  254142. c8713f2d00 Merge pull request \fI\%#24732\fP from msteed/issue\-24111
  254143. .IP \(bu 2
  254144. 54b33dd359 Fix stacktrace when \-\-summary is used
  254145. .UNINDENT
  254146. .IP \(bu 2
  254147. \fBPR\fP \fI\%#24721\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24668\fP to 2015.5
  254148. @ \fI2015\-06\-17 03:23:47 UTC\fP
  254149. .INDENT 2.0
  254150. .IP \(bu 2
  254151. \fBPR\fP \fI\%#24668\fP: (\fI\%grischa\fP) enable virtual package names in pyobjects renderer (refs: \fI\%#24721\fP, \fI\%#24757\fP)
  254152. .IP \(bu 2
  254153. 70d37816bf Merge pull request \fI\%#24721\fP from rallytime/bp\-24668
  254154. .IP \(bu 2
  254155. 68fb5af970 fixing other test
  254156. .IP \(bu 2
  254157. ba4f262b9c fixing text for virtual support in pyobjects
  254158. .IP \(bu 2
  254159. b349d91a5f enable virtual package names in pyobjects renderer
  254160. .UNINDENT
  254161. .IP \(bu 2
  254162. \fBISSUE\fP \fI\%#21923\fP: (\fI\%Fluro\fP) Salt cloud not running provisioning script as root (refs: \fI\%#24718\fP)
  254163. .IP \(bu 2
  254164. \fBISSUE\fP \fI\%#17241\fP: (\fI\%hasues\fP) Salt\-Cloud for vSphere needs additional documentation (refs: \fI\%#24718\fP)
  254165. .IP \(bu 2
  254166. \fBPR\fP \fI\%#24718\fP: (\fI\%rallytime\fP) Added some missing config documentation to the vsphere driver
  254167. @ \fI2015\-06\-17 03:19:35 UTC\fP
  254168. .INDENT 2.0
  254169. .IP \(bu 2
  254170. 1b9d6895c7 Merge pull request \fI\%#24718\fP from rallytime/update_vsphere_docs
  254171. .IP \(bu 2
  254172. bfdebb6e18 Added some missing config documentation to the vsphere driver
  254173. .UNINDENT
  254174. .IP \(bu 2
  254175. \fBPR\fP \fI\%#24714\fP: (\fI\%rallytime\fP) Remove cloud\-requirements.txt
  254176. @ \fI2015\-06\-17 03:17:04 UTC\fP
  254177. .INDENT 2.0
  254178. .IP \(bu 2
  254179. 64857c706d Merge pull request \fI\%#24714\fP from rallytime/remove_cloud_reqs_15
  254180. .IP \(bu 2
  254181. 67b796d01e Remove cloud\-requirements.txt
  254182. .UNINDENT
  254183. .IP \(bu 2
  254184. \fBISSUE\fP \fI\%#24439\fP: (\fI\%bechtoldt\fP) Add tornado version to versions report (refs: \fI\%#24733\fP)
  254185. .IP \(bu 2
  254186. \fBPR\fP \fI\%#24733\fP: (\fI\%msteed\fP) Include Tornado in versions report
  254187. @ \fI2015\-06\-17 03:13:53 UTC\fP
  254188. .INDENT 2.0
  254189. .IP \(bu 2
  254190. f96b1d68cd Merge pull request \fI\%#24733\fP from msteed/issue\-24439
  254191. .IP \(bu 2
  254192. 76cfef05ec Include Tornado in versions report
  254193. .UNINDENT
  254194. .IP \(bu 2
  254195. \fBPR\fP \fI\%#24737\fP: (\fI\%jacksontj\fP) Move AES command logging to trace
  254196. @ \fI2015\-06\-17 01:48:11 UTC\fP
  254197. .INDENT 2.0
  254198. .IP \(bu 2
  254199. a861fe0f4f Merge pull request \fI\%#24737\fP from jacksontj/2015.5
  254200. .IP \(bu 2
  254201. a4ed41ae82 Move AES command logging to trace
  254202. .UNINDENT
  254203. .IP \(bu 2
  254204. \fBPR\fP \fI\%#24724\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254205. @ \fI2015\-06\-16 22:46:27 UTC\fP
  254206. .INDENT 2.0
  254207. .IP \(bu 2
  254208. 0d2dc46648 Merge pull request \fI\%#24724\fP from basepi/merge\-forward\-2015.5
  254209. .IP \(bu 2
  254210. 4641028464 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254211. .IP \(bu 2
  254212. a18dadad71 Merge pull request \fI\%#24646\fP from twangboy/fix_24196
  254213. .INDENT 2.0
  254214. .IP \(bu 2
  254215. a208e1d60f Fixed user.present on existing user
  254216. .UNINDENT
  254217. .UNINDENT
  254218. .IP \(bu 2
  254219. \fBPR\fP \fI\%#24701\fP: (\fI\%jayeshka\fP) adding states/selinux unit test case.
  254220. @ \fI2015\-06\-16 15:27:29 UTC\fP
  254221. .INDENT 2.0
  254222. .IP \(bu 2
  254223. 3d33fe7676 Merge pull request \fI\%#24701\fP from jayeshka/selinux\-states\-unit\-test
  254224. .IP \(bu 2
  254225. 0c136fd9c2 adding states/selinux unit test case.
  254226. .UNINDENT
  254227. .IP \(bu 2
  254228. \fBPR\fP \fI\%#24687\fP: (\fI\%cachedout\fP) Note about minimum worker_threads
  254229. @ \fI2015\-06\-15 20:46:23 UTC\fP
  254230. .INDENT 2.0
  254231. .IP \(bu 2
  254232. 2e287a9e33 Merge pull request \fI\%#24687\fP from cachedout/min_worker_threads
  254233. .IP \(bu 2
  254234. b7bb7eaeb2 Note about minimum worker_threads
  254235. .UNINDENT
  254236. .IP \(bu 2
  254237. \fBPR\fP \fI\%#24688\fP: (\fI\%cachedout\fP) Update AUTHORS
  254238. @ \fI2015\-06\-15 20:46:03 UTC\fP
  254239. .INDENT 2.0
  254240. .IP \(bu 2
  254241. 432478ccb7 Merge pull request \fI\%#24688\fP from cachedout/update_authors
  254242. .IP \(bu 2
  254243. 3f6880e291 Better email
  254244. .IP \(bu 2
  254245. 6c7b773eae Update AUTHORS
  254246. .UNINDENT
  254247. .IP \(bu 2
  254248. \fBISSUE\fP \fI\%#22385\fP: (\fI\%cachedout\fP) States which require unavailable modules should display the reason (refs: \fI\%#24649\fP)
  254249. .IP \(bu 2
  254250. \fBPR\fP \fI\%#24649\fP: (\fI\%cachedout\fP) Improved error reporting for failed states
  254251. @ \fI2015\-06\-15 16:04:20 UTC\fP
  254252. .INDENT 2.0
  254253. .IP \(bu 2
  254254. 9a2b50d59f Merge pull request \fI\%#24649\fP from cachedout/issue_22385
  254255. .IP \(bu 2
  254256. b9fe792534 States will now return the reason behind failure if a module could not be loaded
  254257. .UNINDENT
  254258. .IP \(bu 2
  254259. \fBPR\fP \fI\%#24673\fP: (\fI\%jayeshka\fP) adding states/schedule unit test case.
  254260. @ \fI2015\-06\-15 15:24:52 UTC\fP
  254261. .INDENT 2.0
  254262. .IP \(bu 2
  254263. 66e9e16753 Merge pull request \fI\%#24673\fP from jayeshka/schedule\-states\-unit\-test
  254264. .IP \(bu 2
  254265. 54aaaa5f12 adding states/schedule unit test case.
  254266. .UNINDENT
  254267. .IP \(bu 2
  254268. \fBISSUE\fP \fI\%#24661\fP: (\fI\%kartiksubbarao\fP) augeas.change doesn\(aqt support setting empty values (refs: \fI\%#24663\fP)
  254269. .IP \(bu 2
  254270. \fBPR\fP \fI\%#24663\fP: (\fI\%kartiksubbarao\fP) Update augeas_cfg.py
  254271. @ \fI2015\-06\-15 15:18:48 UTC\fP
  254272. .INDENT 2.0
  254273. .IP \(bu 2
  254274. 5eb19c4e4d Merge pull request \fI\%#24663\fP from kartiksubbarao/patch\-2
  254275. .IP \(bu 2
  254276. e18db50e0c Update augeas_cfg.py
  254277. .UNINDENT
  254278. .IP \(bu 2
  254279. \fBISSUE\fP \fI\%#24583\fP: (\fI\%dkiser\fP) salt\-cloud keyring password referenced before assignment (refs: \fI\%#24667\fP)
  254280. .IP \(bu 2
  254281. \fBPR\fP \fI\%#24667\fP: (\fI\%dkiser\fP) fix for \fI\%#24583\fP clouds/openstack.py kerying first time succeeds
  254282. @ \fI2015\-06\-14 21:58:58 UTC\fP
  254283. .INDENT 2.0
  254284. .IP \(bu 2
  254285. 4450432161 Merge pull request \fI\%#24667\fP from dkiser/fix\-cloud\-keyring
  254286. .IP \(bu 2
  254287. c92c05fac0 fix for \fI\%#24583\fP clouds/openstack.py kerying first time succeeds
  254288. .UNINDENT
  254289. .IP \(bu 2
  254290. \fBISSUE\fP \fI\%#24537\fP: (\fI\%kartiksubbarao\fP) alias.present doesn\(aqt update alias values that are substrings of the existing value (refs: \fI\%#24659\fP)
  254291. .IP \(bu 2
  254292. \fBPR\fP \fI\%#24659\fP: (\fI\%kartiksubbarao\fP) Update aliases.py
  254293. @ \fI2015\-06\-13 17:31:42 UTC\fP
  254294. .INDENT 2.0
  254295. .IP \(bu 2
  254296. 4c64ee9d94 Merge pull request \fI\%#24659\fP from kartiksubbarao/patch\-1
  254297. .IP \(bu 2
  254298. d6834749e2 Update aliases.py
  254299. .UNINDENT
  254300. .IP \(bu 2
  254301. \fBPR\fP \fI\%#24644\fP: (\fI\%cro\fP) Merge forward 2014.7\->2015.5
  254302. @ \fI2015\-06\-12 21:31:41 UTC\fP
  254303. .INDENT 2.0
  254304. .IP \(bu 2
  254305. 89eb616c29 Merge pull request \fI\%#24644\fP from cro/2014.7\-2015.5\-20150612
  254306. .IP \(bu 2
  254307. 4136dc3160 Merge forward from 2014.7 to 2015.5
  254308. .IP \(bu 2
  254309. b99484fde2 Merge pull request \fI\%#24643\fP from cro/saltannounce
  254310. .INDENT 2.0
  254311. .IP \(bu 2
  254312. ecb0623d7f Add salt\-announce mailing list.
  254313. .UNINDENT
  254314. .IP \(bu 2
  254315. 635121e85d Merge pull request \fI\%#24620\fP from twangboy/fix_24215
  254316. .INDENT 2.0
  254317. .IP \(bu 2
  254318. d7a9999be1 Fixed comment and uncomment functions in file.py
  254319. .UNINDENT
  254320. .IP \(bu 2
  254321. \fBPR\fP \fI\%saltstack/salt#24595\fP: (\fI\%tankywoo\fP) fix target rule, remove unneeded quotation mark (refs: \fI\%#24642\fP)
  254322. .UNINDENT
  254323. .IP \(bu 2
  254324. \fBPR\fP \fI\%#24642\fP: (\fI\%basepi\fP) Revert "fix target rule, remove unneeded quotation mark"
  254325. @ \fI2015\-06\-12 20:14:26 UTC\fP
  254326. .INDENT 2.0
  254327. .IP \(bu 2
  254328. b896a0d0e9 Merge pull request \fI\%#24642\fP from saltstack/revert\-24595\-fix\-iptables\-target
  254329. .IP \(bu 2
  254330. 5ff3224ae1 Revert "fix target rule, remove unneeded quotation mark"
  254331. .UNINDENT
  254332. .IP \(bu 2
  254333. \fBPR\fP \fI\%#24628\fP: (\fI\%jayeshka\fP) adding states/reg unit test case.
  254334. @ \fI2015\-06\-12 17:29:11 UTC\fP
  254335. .INDENT 2.0
  254336. .IP \(bu 2
  254337. 01092c2337 Merge pull request \fI\%#24628\fP from jayeshka/reg_states\-unit\-test
  254338. .IP \(bu 2
  254339. af1bd8f9ff adding states/reg unit test case.
  254340. .UNINDENT
  254341. .IP \(bu 2
  254342. \fBISSUE\fP \fI\%#24494\fP: (\fI\%arount\fP) Computed comments in jinja states (refs: \fI\%#24591\fP)
  254343. .IP \(bu 2
  254344. \fBISSUE\fP \fI\%#23359\fP: (\fI\%BalintSzigeti\fP) init.sls parsing issue (refs: \fI\%#24591\fP)
  254345. .IP \(bu 2
  254346. \fBISSUE\fP \fI\%#21217\fP: (\fI\%Colstuwjx\fP) Maybe a bug for jinja render? (refs: \fI\%#24591\fP)
  254347. .IP \(bu 2
  254348. \fBPR\fP \fI\%#24631\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24591\fP to 2015.5
  254349. @ \fI2015\-06\-12 16:54:32 UTC\fP
  254350. .INDENT 2.0
  254351. .IP \(bu 2
  254352. \fBPR\fP \fI\%#24591\fP: (\fI\%tbaker57\fP) Add some documentation surrounding Jinja vs yaml comments \- (refs: \fI\%#24631\fP)
  254353. .IP \(bu 2
  254354. 5f491f911d Merge pull request \fI\%#24631\fP from rallytime/bp\-24591
  254355. .IP \(bu 2
  254356. f13cd418bc Add extra clarification why jinja comments are needed.
  254357. .IP \(bu 2
  254358. 23749718bb Fix typo
  254359. .IP \(bu 2
  254360. 6a917471d4 Add some documentation surrounding Jinja comments \- refs \fI\%#24492\fP, \fI\%#21217\fP, \fI\%#23359\fP
  254361. .UNINDENT
  254362. .IP \(bu 2
  254363. \fBPR\fP \fI\%#24616\fP: (\fI\%garethgreenaway\fP) additional logging in state.py module
  254364. @ \fI2015\-06\-12 16:25:39 UTC\fP
  254365. .INDENT 2.0
  254366. .IP \(bu 2
  254367. f23f99ec35 Merge pull request \fI\%#24616\fP from garethgreenaway/2015_5_logging_disabled_states
  254368. .IP \(bu 2
  254369. 4dbf0ef160 Adding some logging statement to give feedback when states, including highstate, are disabled. Useful when running from scheduler.
  254370. .UNINDENT
  254371. .IP \(bu 2
  254372. \fBPR\fP \fI\%#24595\fP: (\fI\%tankywoo\fP) fix target rule, remove unneeded quotation mark
  254373. @ \fI2015\-06\-12 16:23:22 UTC\fP
  254374. .INDENT 2.0
  254375. .IP \(bu 2
  254376. 6dccbb04a1 Merge pull request \fI\%#24595\fP from tankywoo/fix\-iptables\-target
  254377. .IP \(bu 2
  254378. 10a5160d7c fix target rule, remove unneeded quotation mark
  254379. .UNINDENT
  254380. .IP \(bu 2
  254381. \fBPR\fP \fI\%#24604\fP: (\fI\%jfindlay\fP) fix pkg module integration tests
  254382. @ \fI2015\-06\-12 16:04:26 UTC\fP
  254383. .INDENT 2.0
  254384. .IP \(bu 2
  254385. 8ac3d94785 Merge pull request \fI\%#24604\fP from jfindlay/pkg_tests
  254386. .IP \(bu 2
  254387. d88fb22fdc fix pkg module integration tests on CentOS 5
  254388. .IP \(bu 2
  254389. fb91b40ba0 fix pkg module integration tests on ubuntu 12
  254390. .UNINDENT
  254391. .IP \(bu 2
  254392. \fBPR\fP \fI\%#24600\fP: (\fI\%basepi\fP) [2015.5] Remove __kwarg__ from salt\-ssh keyword args
  254393. @ \fI2015\-06\-12 04:21:29 UTC\fP
  254394. .INDENT 2.0
  254395. .IP \(bu 2
  254396. 0ff545c549 Merge pull request \fI\%#24600\fP from basepi/salt\-ssh.orchestrate.20615
  254397. .IP \(bu 2
  254398. 9b55683f6a Remove __kwarg__ from salt\-ssh keyword args
  254399. .UNINDENT
  254400. .IP \(bu 2
  254401. \fBISSUE\fP \fI\%#22843\fP: (\fI\%Xiol\fP) salt\-ssh roster doesn\(aqt support integers as host keys (refs: \fI\%#24608\fP)
  254402. .IP \(bu 2
  254403. \fBPR\fP \fI\%#24608\fP: (\fI\%basepi\fP) [2015.5] Normalize salt\-ssh flat roster minion IDs to strings
  254404. @ \fI2015\-06\-11 21:35:07 UTC\fP
  254405. .INDENT 2.0
  254406. .IP \(bu 2
  254407. 832916f49f Merge pull request \fI\%#24608\fP from basepi/salt\-ssh.flat.roster.integers.22843
  254408. .IP \(bu 2
  254409. 381820f051 Normalize salt\-ssh flat roster minion IDs to strings
  254410. .UNINDENT
  254411. .IP \(bu 2
  254412. \fBPR\fP \fI\%#24605\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254413. @ \fI2015\-06\-11 19:15:21 UTC\fP
  254414. .INDENT 2.0
  254415. .IP \(bu 2
  254416. 4eb5bb253b Merge pull request \fI\%#24605\fP from basepi/merge\-forward\-2015.5
  254417. .IP \(bu 2
  254418. f96c5029bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254419. .IP \(bu 2
  254420. d83928a7f9 Merge pull request \fI\%#24589\fP from BretFisher/patch\-1
  254421. .INDENT 2.0
  254422. .IP \(bu 2
  254423. 65a11336dc Fixed Mine example for jinja code block
  254424. .UNINDENT
  254425. .UNINDENT
  254426. .IP \(bu 2
  254427. \fBISSUE\fP \fI\%#24457\fP: (\fI\%ryan\-lane\fP) When selecting the version of docs on the docs site, it brings you to the homepage (refs: \fI\%#24598\fP)
  254428. .IP \(bu 2
  254429. \fBISSUE\fP \fI\%#24250\fP: (\fI\%jfindlay\fP) have version links on docs page link to that version of the current page (refs: \fI\%#24598\fP)
  254430. .IP \(bu 2
  254431. \fBPR\fP \fI\%#24598\fP: (\fI\%jacobhammons\fP) 2015.5.2 release changes
  254432. @ \fI2015\-06\-11 17:24:11 UTC\fP
  254433. .INDENT 2.0
  254434. .IP \(bu 2
  254435. e0bb177823 Merge pull request \fI\%#24598\fP from jacobhammons/doc\-fixes
  254436. .IP \(bu 2
  254437. f3f34ddff6 2015.5.2 release changes Refs \fI\%#24250\fP Refs \fI\%#24457\fP
  254438. .UNINDENT
  254439. .IP \(bu 2
  254440. \fBISSUE\fP \fI\%#20615\fP: (\fI\%aurynn\fP) 2014.7.1: salt/states/saltmod using incorrect return dict for orchestrate (refs: \fI\%#24588\fP)
  254441. .IP \(bu 2
  254442. \fBPR\fP \fI\%#24588\fP: (\fI\%basepi\fP) Fixes for saltmod.function for salt\-ssh
  254443. @ \fI2015\-06\-11 16:15:21 UTC\fP
  254444. .INDENT 2.0
  254445. .IP \(bu 2
  254446. 26930b45bd Merge pull request \fI\%#24588\fP from basepi/salt\-ssh.orchestrate.20615
  254447. .IP \(bu 2
  254448. 826936ce57 Move documentation into docstring instead of comments
  254449. .IP \(bu 2
  254450. de052e7135 Assign \(aqreturn\(aq to \(aqret\(aq if necessary in saltmod.function
  254451. .IP \(bu 2
  254452. 34ff989d66 Convert keyword args to key=value strings in salt\-ssh
  254453. .UNINDENT
  254454. .IP \(bu 2
  254455. \fBPR\fP \fI\%#24593\fP: (\fI\%jayeshka\fP) adding states/redismod unit test case.
  254456. @ \fI2015\-06\-11 15:55:27 UTC\fP
  254457. .INDENT 2.0
  254458. .IP \(bu 2
  254459. 5a21ad152e Merge pull request \fI\%#24593\fP from jayeshka/redismod_states\-unit\-test
  254460. .IP \(bu 2
  254461. 3b95744840 adding states/redismod unit test case.
  254462. .UNINDENT
  254463. .IP \(bu 2
  254464. \fBISSUE\fP \fI\%#40\fP: (\fI\%thatch45\fP) Clean up timeouts (refs: \fI\%#22857\fP)
  254465. .IP \(bu 2
  254466. \fBPR\fP \fI\%#24581\fP: (\fI\%rallytime\fP) Disabled some flaky tests until we can figure out how to make them more reliable
  254467. @ \fI2015\-06\-11 15:51:41 UTC\fP
  254468. .INDENT 2.0
  254469. .IP \(bu 2
  254470. \fBPR\fP \fI\%#24217\fP: (\fI\%jfindlay\fP) disable intermittently failing tests (refs: \fI\%#24581\fP)
  254471. .IP \(bu 2
  254472. \fBPR\fP \fI\%#23623\fP: (\fI\%jfindlay\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#24217\fP)
  254473. .IP \(bu 2
  254474. \fBPR\fP \fI\%#22857\fP: (\fI\%jacksontj\fP) Fix /jobs endpoint\(aqs return (refs: \fI\%#23623\fP)
  254475. .IP \(bu 2
  254476. 8ffb86edd0 Merge pull request \fI\%#24581\fP from rallytime/disable_some_flaky_tests
  254477. .IP \(bu 2
  254478. c82f135d2e Disabled some flaky tests until we can figure out how to make them more reliable
  254479. .UNINDENT
  254480. .IP \(bu 2
  254481. \fBPR\fP \fI\%#24566\fP: (\fI\%jayeshka\fP) adding states/rdp unit test case.
  254482. @ \fI2015\-06\-11 02:14:39 UTC\fP
  254483. .INDENT 2.0
  254484. .IP \(bu 2
  254485. a570d7f967 Merge pull request \fI\%#24566\fP from jayeshka/rdp_states\-unit\-test
  254486. .IP \(bu 2
  254487. 273b994e91 adding states/rdp unit test case.
  254488. .UNINDENT
  254489. .IP \(bu 2
  254490. \fBISSUE\fP \fI\%#24480\fP: (\fI\%kiorky\fP) [CRITICAL] [2015.5] tls breaks tzinfo (refs: \fI\%#24551\fP)
  254491. .IP \(bu 2
  254492. \fBPR\fP \fI\%#24551\fP: (\fI\%joejulian\fP) 2015.5 dont pollute environment
  254493. @ \fI2015\-06\-11 02:13:06 UTC\fP
  254494. .INDENT 2.0
  254495. .IP \(bu 2
  254496. 20ada1f8a1 Merge pull request \fI\%#24551\fP from joejulian/2015.5_dont_pollute_environment
  254497. .IP \(bu 2
  254498. cfc3b43ba2 Don\(aqt pollute the TZ environment variable
  254499. .IP \(bu 2
  254500. cba8d3f923 pep8
  254501. .IP \(bu 2
  254502. 9cb7015568 Mark keyword version adds
  254503. .IP \(bu 2
  254504. 76e2583265 Merge tls changes from develop
  254505. .UNINDENT
  254506. .IP \(bu 2
  254507. \fBISSUE\fP \fI\%#19901\fP: (\fI\%clinta\fP) State cache is not documented (refs: \fI\%#24574\fP, \fI\%#24468\fP)
  254508. .IP \(bu 2
  254509. \fBPR\fP \fI\%#24574\fP: (\fI\%jacobhammons\fP) Refs \fI\%#19901\fP
  254510. @ \fI2015\-06\-10 20:09:23 UTC\fP
  254511. .INDENT 2.0
  254512. .IP \(bu 2
  254513. bb2fd6a970 Merge pull request \fI\%#24574\fP from jacobhammons/19901
  254514. .IP \(bu 2
  254515. e2a2946dc7 Refs \fI\%#19901\fP
  254516. .UNINDENT
  254517. .IP \(bu 2
  254518. \fBPR\fP \fI\%#24577\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254519. @ \fI2015\-06\-10 19:46:22 UTC\fP
  254520. .INDENT 2.0
  254521. .IP \(bu 2
  254522. b03166cde3 Merge pull request \fI\%#24577\fP from basepi/merge\-forward\-2015.5
  254523. .IP \(bu 2
  254524. e1d45ccf3b Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254525. .IP \(bu 2
  254526. d376390f76 Merge pull request \fI\%#24530\fP from twangboy/fix_24427
  254527. .INDENT 2.0
  254528. .IP \(bu 2
  254529. 673e1d809e Added missing panel.bmp for installer
  254530. .IP \(bu 2
  254531. cc50218b01 Start Minion Service on Silent Install
  254532. .UNINDENT
  254533. .UNINDENT
  254534. .IP \(bu 2
  254535. \fBISSUE\fP \fI\%#24235\fP: (\fI\%tomasfejfar\fP) Difference between running from minion and from master (refs: \fI\%#24571\fP, \fI\%#24468\fP)
  254536. .IP \(bu 2
  254537. \fBPR\fP \fI\%#24571\fP: (\fI\%jacobhammons\fP) Refs \fI\%#24235\fP
  254538. @ \fI2015\-06\-10 17:02:18 UTC\fP
  254539. .INDENT 2.0
  254540. .IP \(bu 2
  254541. 3ec457beef Merge pull request \fI\%#24571\fP from jacobhammons/24235
  254542. .IP \(bu 2
  254543. 8df5d53bb8 Refs \fI\%#24235\fP
  254544. .UNINDENT
  254545. .IP \(bu 2
  254546. \fBPR\fP \fI\%#24565\fP: (\fI\%pille\fP) fix backtrace, when listing plugins
  254547. @ \fI2015\-06\-10 16:33:11 UTC\fP
  254548. .INDENT 2.0
  254549. .IP \(bu 2
  254550. fe07eb5653 Merge pull request \fI\%#24565\fP from pille/munin\-ignore\-broken\-symlinks
  254551. .IP \(bu 2
  254552. 8511a6c0a6 fix backtrace, when listing plugins
  254553. .UNINDENT
  254554. .IP \(bu 2
  254555. \fBPR\fP \fI\%#24554\fP: (\fI\%ryan\-lane\fP) Fix yes usage for pecl defaults
  254556. @ \fI2015\-06\-09 23:59:49 UTC\fP
  254557. .INDENT 2.0
  254558. .IP \(bu 2
  254559. 251c8f9f5f Merge pull request \fI\%#24554\fP from lyft/pecl\-module\-fix
  254560. .IP \(bu 2
  254561. 56a9cfcf24 Fix yes usage for pecl defaults
  254562. .UNINDENT
  254563. .IP \(bu 2
  254564. \fBPR\fP \fI\%#24535\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24518\fP to 2015.5
  254565. @ \fI2015\-06\-09 20:06:18 UTC\fP
  254566. .INDENT 2.0
  254567. .IP \(bu 2
  254568. \fBPR\fP \fI\%#24518\fP: (\fI\%rallytime\fP) Merge \fI\%#24448\fP with Pylint Fixes (refs: \fI\%#24535\fP)
  254569. .IP \(bu 2
  254570. \fBPR\fP \fI\%#24448\fP: (\fI\%codertux\fP) Update modules path for operating systems using systemd (refs: \fI\%#24518\fP)
  254571. .IP \(bu 2
  254572. dbd49b4acb Merge pull request \fI\%#24535\fP from rallytime/bp\-24518
  254573. .IP \(bu 2
  254574. fc75197616 Pylint fix
  254575. .IP \(bu 2
  254576. 3e08840988 Update modules path for operating systems using systemd
  254577. .UNINDENT
  254578. .IP \(bu 2
  254579. \fBPR\fP \fI\%#24538\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254580. @ \fI2015\-06\-09 17:27:20 UTC\fP
  254581. .INDENT 2.0
  254582. .IP \(bu 2
  254583. 485ed3cff9 Merge pull request \fI\%#24538\fP from basepi/merge\-forward\-2015.5
  254584. .IP \(bu 2
  254585. 6a8039d468 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254586. .IP \(bu 2
  254587. 6ebc476bb3 Merge pull request \fI\%#24513\fP from jquast/2014.7\-bugfix\-iteritem
  254588. .INDENT 2.0
  254589. .IP \(bu 2
  254590. 2be0180e5e bugfix use of \(aqiteritem\(aq in 2014.7 branch
  254591. .UNINDENT
  254592. .UNINDENT
  254593. .IP \(bu 2
  254594. \fBPR\fP \fI\%#24495\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_vhost unit test case.
  254595. @ \fI2015\-06\-09 15:33:23 UTC\fP
  254596. .INDENT 2.0
  254597. .IP \(bu 2
  254598. 73e6388acd Merge pull request \fI\%#24495\fP from jayeshka/rabbitmq_vhost_states\-unit\-test
  254599. .IP \(bu 2
  254600. 31889e38eb cosmetic change.
  254601. .IP \(bu 2
  254602. cf501cf60d resolved error.
  254603. .IP \(bu 2
  254604. 4bb6087722 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into rabbitmq_vhost_states\-unit\-test
  254605. .IP \(bu 2
  254606. 3ad77143a8 adding states/rabbitmq_vhost unit test case.
  254607. .UNINDENT
  254608. .IP \(bu 2
  254609. \fBPR\fP \fI\%#24445\fP: (\fI\%jayeshka\fP) adding states/pyrax_queues unit test case.
  254610. @ \fI2015\-06\-09 15:28:45 UTC\fP
  254611. .INDENT 2.0
  254612. .IP \(bu 2
  254613. bf1abccebe Merge pull request \fI\%#24445\fP from jayeshka/pyrax_queues_states\-unit\-test
  254614. .IP \(bu 2
  254615. ea27cefb10 adding states/pyrax_queues unit test case.
  254616. .UNINDENT
  254617. .IP \(bu 2
  254618. \fBPR\fP \fI\%#24490\fP: (\fI\%aneeshusa\fP) Fix pacman.list_upgrades for new python_shell default.
  254619. @ \fI2015\-06\-09 15:13:16 UTC\fP
  254620. .INDENT 2.0
  254621. .IP \(bu 2
  254622. 0247e8d10d Merge pull request \fI\%#24490\fP from aneeshusa/fix\-pacman\-list\-upgrades
  254623. .IP \(bu 2
  254624. 980e1cb4dc Lint fix.
  254625. .IP \(bu 2
  254626. dca33f1112 Fix pacman.list_upgrades for new python_shell default.
  254627. .UNINDENT
  254628. .IP \(bu 2
  254629. \fBPR\fP \fI\%#24517\fP: (\fI\%steverweber\fP) small fixes to the ipmi docs
  254630. @ \fI2015\-06\-09 15:10:14 UTC\fP
  254631. .INDENT 2.0
  254632. .IP \(bu 2
  254633. 6268ddb43a Merge pull request \fI\%#24517\fP from steverweber/ipmi_doc
  254634. .IP \(bu 2
  254635. 6413712844 lint
  254636. .IP \(bu 2
  254637. e78aea9b01 more small fixes to the ipmi docs
  254638. .UNINDENT
  254639. .IP \(bu 2
  254640. \fBPR\fP \fI\%#24524\fP: (\fI\%jayeshka\fP) any() takes list oy tuple.
  254641. @ \fI2015\-06\-09 13:49:42 UTC\fP
  254642. .INDENT 2.0
  254643. .IP \(bu 2
  254644. 3728b3f327 Merge pull request \fI\%#24524\fP from jayeshka/rabbitmq_vhost_states\-module
  254645. .IP \(bu 2
  254646. 01c99ad767 any() takes list oy tuple.
  254647. .UNINDENT
  254648. .IP \(bu 2
  254649. \fBPR\fP \fI\%#24482\fP: (\fI\%eliasp\fP) \(aqdocker.running\(aq needs now the \(aqimage\(aq param.
  254650. @ \fI2015\-06\-09 04:43:04 UTC\fP
  254651. .INDENT 2.0
  254652. .IP \(bu 2
  254653. dd23de885b Merge pull request \fI\%#24482\fP from eliasp/2015.5\-states.dockerio\-docker.running\-doc
  254654. .IP \(bu 2
  254655. 5de741d626 \(aqdocker.running\(aq needs now the \(aqimage\(aq param.
  254656. .UNINDENT
  254657. .IP \(bu 2
  254658. \fBISSUE\fP \fI\%#23503\fP: (\fI\%jfindlay\fP) salt\-ssh fails on CentOS 7 when python\-zmq is not installed (refs: \fI\%#24515\fP)
  254659. .IP \(bu 2
  254660. \fBPR\fP \fI\%#24515\fP: (\fI\%basepi\fP) [2015.5] Add xml library to the salt\-thin
  254661. @ \fI2015\-06\-09 04:10:06 UTC\fP
  254662. .INDENT 2.0
  254663. .IP \(bu 2
  254664. 2a727c3f55 Merge pull request \fI\%#24515\fP from basepi/susexml23503
  254665. .IP \(bu 2
  254666. 078b33eaaf Add xml library to the thin
  254667. .UNINDENT
  254668. .IP \(bu 2
  254669. \fBPR\fP \fI\%#24497\fP: (\fI\%jayeshka\fP) adding states/rbenv unit test case.
  254670. @ \fI2015\-06\-09 03:56:10 UTC\fP
  254671. .INDENT 2.0
  254672. .IP \(bu 2
  254673. fce998a58b Merge pull request \fI\%#24497\fP from jayeshka/rbenv_states\-unit\-test
  254674. .IP \(bu 2
  254675. 79d343a62b adding states/rbenv unit test case.
  254676. .UNINDENT
  254677. .IP \(bu 2
  254678. \fBPR\fP \fI\%#24496\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_user unit test case.
  254679. @ \fI2015\-06\-09 03:55:23 UTC\fP
  254680. .INDENT 2.0
  254681. .IP \(bu 2
  254682. 2bcb4b1eed Merge pull request \fI\%#24496\fP from jayeshka/rabbitmq_user_states\-unit\-test
  254683. .IP \(bu 2
  254684. 7d96f27f91 adding states/rabbitmq_user unit test case.
  254685. .UNINDENT
  254686. .IP \(bu 2
  254687. \fBPR\fP \fI\%#24481\fP: (\fI\%eliasp\fP) Fix typo (licnese → license).
  254688. @ \fI2015\-06\-09 03:30:25 UTC\fP
  254689. .INDENT 2.0
  254690. .IP \(bu 2
  254691. 02a597bf49 Merge pull request \fI\%#24481\fP from eliasp/2015.5\-salt.states.powerpath\-license_typo
  254692. .IP \(bu 2
  254693. 1280054bce Fix typo (licnese → license).
  254694. .UNINDENT
  254695. .IP \(bu 2
  254696. \fBPR\fP \fI\%#24467\fP: (\fI\%thenewwazoo\fP) Fix dockerio bound volumes
  254697. @ \fI2015\-06\-09 01:40:23 UTC\fP
  254698. .INDENT 2.0
  254699. .IP \(bu 2
  254700. 5ad3db5ffb Merge pull request \fI\%#24467\fP from thenewwazoo/fix\-dockerio\-bound\-volumes
  254701. .IP \(bu 2
  254702. db4e3dc69b Let\(aqs raise an exception if create fails
  254703. .IP \(bu 2
  254704. d1d85dd685 Add logging
  254705. .IP \(bu 2
  254706. ddc63f0f30 Fix volume handling when creating containers
  254707. .UNINDENT
  254708. .IP \(bu 2
  254709. \fBPR\fP \fI\%#24504\fP: (\fI\%rallytime\fP) Move vsphere deprecation to 2015.5
  254710. @ \fI2015\-06\-08 22:43:05 UTC\fP
  254711. .INDENT 2.0
  254712. .IP \(bu 2
  254713. \fBPR\fP \fI\%#24487\fP: (\fI\%nmadhok\fP) Deprecating vsphere cloud driver in favor of vmware cloud driver (refs: \fI\%#24504\fP)
  254714. .IP \(bu 2
  254715. d236fbd38f Merge pull request \fI\%#24504\fP from rallytime/move_vsphere_deprecation_2015.5
  254716. .IP \(bu 2
  254717. d876535d71 Add Getting Started with VSphere doc to 2015.5
  254718. .IP \(bu 2
  254719. b685ebc104 Add vSphere deprecation warnings to 2015.5
  254720. .UNINDENT
  254721. .IP \(bu 2
  254722. \fBPR\fP \fI\%#24506\fP: (\fI\%rallytime\fP) Backport \fI\%#24450\fP to 2015.5
  254723. @ \fI2015\-06\-08 22:42:14 UTC\fP
  254724. .INDENT 2.0
  254725. .IP \(bu 2
  254726. \fBPR\fP \fI\%#24450\fP: (\fI\%ruzarowski\fP) Fix salt cli runs with batch\-size set (refs: \fI\%#24506\fP)
  254727. .IP \(bu 2
  254728. cb5546085c Merge pull request \fI\%#24506\fP from rallytime/bp\-24450
  254729. .IP \(bu 2
  254730. 1c0fca2b9d Backport \fI\%#24450\fP to 2015.5
  254731. .UNINDENT
  254732. .IP \(bu 2
  254733. \fBPR\fP \fI\%#24498\fP: (\fI\%rallytime\fP) Added "CLI Example" to make failing test happy on 2015.5
  254734. @ \fI2015\-06\-08 15:48:40 UTC\fP
  254735. .INDENT 2.0
  254736. .IP \(bu 2
  254737. 3173fd17ad Merge pull request \fI\%#24498\fP from rallytime/fix_doc_failure_fifteen
  254738. .IP \(bu 2
  254739. d992ef4777 Added "CLI Example" to make failing test happy on 2015.5
  254740. .UNINDENT
  254741. .IP \(bu 2
  254742. \fBPR\fP \fI\%#24471\fP: (\fI\%anlutro\fP) Set up salt\-ssh file logging
  254743. @ \fI2015\-06\-08 15:26:49 UTC\fP
  254744. .INDENT 2.0
  254745. .IP \(bu 2
  254746. 3639e411bd Merge pull request \fI\%#24471\fP from alprs/fix\-salt_ssh_logging
  254747. .IP \(bu 2
  254748. 6a11ec87b8 set up salt\-ssh file logging
  254749. .UNINDENT
  254750. .IP \(bu 2
  254751. \fBISSUE\fP \fI\%#24231\fP: (\fI\%tarwich\fP) npm.bootstrap (refs: \fI\%#24469\fP)
  254752. .IP \(bu 2
  254753. \fBPR\fP \fI\%#24469\fP: (\fI\%jfindlay\fP) correctly handle user environment info for npm
  254754. @ \fI2015\-06\-08 15:26:02 UTC\fP
  254755. .INDENT 2.0
  254756. .IP \(bu 2
  254757. 551e70f3fb Merge pull request \fI\%#24469\fP from jfindlay/npm_env
  254758. .IP \(bu 2
  254759. 8140c96949 update npm\(aqs user info envs
  254760. .IP \(bu 2
  254761. cb572f8c41 add \fIenv\fP parameter to npm.uninstall
  254762. .UNINDENT
  254763. .IP \(bu 2
  254764. \fBISSUE\fP \fI\%#24268\fP: (\fI\%tkent\-xetus\fP) Ability to specify revision for win_gitrepos undocumented (refs: \fI\%#24468\fP)
  254765. .IP \(bu 2
  254766. \fBISSUE\fP \fI\%#24235\fP: (\fI\%tomasfejfar\fP) Difference between running from minion and from master (refs: \fI\%#24571\fP, \fI\%#24468\fP)
  254767. .IP \(bu 2
  254768. \fBISSUE\fP \fI\%#24193\fP: (\fI\%abng88\fP) Update ext_pillar docs to mention that this feature is supported masterless as well (refs: \fI\%#24468\fP)
  254769. .IP \(bu 2
  254770. \fBISSUE\fP \fI\%#24172\fP: (\fI\%zhujinhe\fP) Can lists be passed in the pillar on the command line on version 2015.5.0? (refs: \fI\%#24468\fP)
  254771. .IP \(bu 2
  254772. \fBISSUE\fP \fI\%#23211\fP: (\fI\%lloesche\fP) Document that salt://| escapes special characters in filenames (refs: \fI\%#24468\fP)
  254773. .IP \(bu 2
  254774. \fBISSUE\fP \fI\%#19901\fP: (\fI\%clinta\fP) State cache is not documented (refs: \fI\%#24574\fP, \fI\%#24468\fP)
  254775. .IP \(bu 2
  254776. \fBISSUE\fP \fI\%#19801\fP: (\fI\%ksalman\fP) How are grains static? (refs: \fI\%#24468\fP)
  254777. .IP \(bu 2
  254778. \fBPR\fP \fI\%#24468\fP: (\fI\%jacobhammons\fP) Bug fixes and build errors
  254779. @ \fI2015\-06\-08 15:25:40 UTC\fP
  254780. .INDENT 2.0
  254781. .IP \(bu 2
  254782. 0d9e0c2b8c Merge pull request \fI\%#24468\fP from jacobhammons/doc\-fixes
  254783. .IP \(bu 2
  254784. 1035959459 Appended .0 to version added
  254785. .IP \(bu 2
  254786. d45c4ed11f Bug fixes and build errors Refs \fI\%#23211\fP Refs \fI\%#24268\fP Refs \fI\%#24235\fP Refs \fI\%#24193\fP Refs \fI\%#24172\fP Refs \fI\%#19901\fP Refs \fI\%#19801\fP
  254787. .UNINDENT
  254788. .IP \(bu 2
  254789. \fBISSUE\fP \fI\%#24318\fP: (\fI\%favadi\fP) uncaught exception for pkgrepo.absent for invalid PPA (refs: \fI\%#24465\fP)
  254790. .IP \(bu 2
  254791. \fBPR\fP \fI\%#24465\fP: (\fI\%jfindlay\fP) catch exception from softwarerepositories
  254792. @ \fI2015\-06\-08 15:25:19 UTC\fP
  254793. .INDENT 2.0
  254794. .IP \(bu 2
  254795. be6905a545 Merge pull request \fI\%#24465\fP from jfindlay/unknown_ppa
  254796. .IP \(bu 2
  254797. 19c912866d catch exception from softwarerepositories
  254798. .UNINDENT
  254799. .IP \(bu 2
  254800. \fBISSUE\fP \fI\%#24296\fP: (\fI\%objectx\fP) mount.mount calls file.mkdir with incorrect named argument (refs: \fI\%#24464\fP)
  254801. .IP \(bu 2
  254802. \fBPR\fP \fI\%#24464\fP: (\fI\%jfindlay\fP) fix typo in modules/mount.py
  254803. @ \fI2015\-06\-08 15:25:07 UTC\fP
  254804. .INDENT 2.0
  254805. .IP \(bu 2
  254806. 58d1ea8fe8 Merge pull request \fI\%#24464\fP from jfindlay/file_mkdir
  254807. .IP \(bu 2
  254808. 6e8cd44500 fix typo in modules/mount.py
  254809. .UNINDENT
  254810. .IP \(bu 2
  254811. \fBISSUE\fP \fI\%#24434\fP: (\fI\%dkiser\fP) multimaster failover fails due to logic from issue #23611 (refs: \fI\%#24461\fP)
  254812. .IP \(bu 2
  254813. \fBPR\fP \fI\%#24461\fP: (\fI\%dkiser\fP) fix for \fI\%#24434\fP
  254814. @ \fI2015\-06\-08 15:24:53 UTC\fP
  254815. .INDENT 2.0
  254816. .IP \(bu 2
  254817. 4f332a71c6 Merge pull request \fI\%#24461\fP from dkiser/multimaster_minion_fix
  254818. .IP \(bu 2
  254819. 1944a743d7 fix for \fI\%#24434\fP
  254820. .UNINDENT
  254821. .IP \(bu 2
  254822. \fBPR\fP \fI\%#24479\fP: (\fI\%ahus1\fP) change "path" to "name" for "file" operations
  254823. @ \fI2015\-06\-07 17:56:11 UTC\fP
  254824. .INDENT 2.0
  254825. .IP \(bu 2
  254826. 8917416d39 Merge pull request \fI\%#24479\fP from ahus1/patch\-1
  254827. .IP \(bu 2
  254828. 7d6b60c79d change "path" to "name" for "file" operations
  254829. .UNINDENT
  254830. .IP \(bu 2
  254831. \fBPR\fP \fI\%#24475\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24454\fP to 2015.5
  254832. @ \fI2015\-06\-07 01:29:32 UTC\fP
  254833. .INDENT 2.0
  254834. .IP \(bu 2
  254835. \fBPR\fP \fI\%#24454\fP: (\fI\%rhertzog\fP) Strip extraneous newline character added in last environment variable (refs: \fI\%#24475\fP)
  254836. .IP \(bu 2
  254837. 8618d5b6ea Merge pull request \fI\%#24475\fP from rallytime/bp\-24454
  254838. .IP \(bu 2
  254839. a793c192a6 Avoid extraneous newline character added in last environment variable
  254840. .UNINDENT
  254841. .IP \(bu 2
  254842. \fBISSUE\fP \fI\%#24407\fP: (\fI\%aboe76\fP) Please expand salt module random (refs: \fI\%#24420\fP)
  254843. .IP \(bu 2
  254844. \fBPR\fP \fI\%#24474\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24420\fP to 2015.5
  254845. @ \fI2015\-06\-07 01:29:11 UTC\fP
  254846. .INDENT 2.0
  254847. .IP \(bu 2
  254848. \fBPR\fP \fI\%#24420\fP: (\fI\%aboe76\fP) added random integer module to mod_random.py (refs: \fI\%#24474\fP)
  254849. .IP \(bu 2
  254850. 61658ffef7 Merge pull request \fI\%#24474\fP from rallytime/bp\-24420
  254851. .IP \(bu 2
  254852. 4219b404ad Fix lint error and update versionadded to 2015.5.3
  254853. .IP \(bu 2
  254854. 3613cc9659 added random integer module to mod_random.py
  254855. .UNINDENT
  254856. .IP \(bu 2
  254857. \fBISSUE\fP \fI\%#24233\fP: (\fI\%variia\fP) yumpkg.group_install keeps returning state change
  254858. .IP \(bu 2
  254859. \fBPR\fP \fI\%#24472\fP: (\fI\%variia\fP) ensure {} output is not treated as change in module.py state, fixes #…
  254860. @ \fI2015\-06\-06 14:45:44 UTC\fP
  254861. .INDENT 2.0
  254862. .IP \(bu 2
  254863. 508d7ddb91 Merge pull request \fI\%#24472\fP from variia/Fix\-yumpkg_group_install\-return\-change\-\fI\%#24233\fP
  254864. .IP \(bu 2
  254865. 37e8827ce8 ensure {} output is not treated as change in module.py state, fixes \fI\%#24233\fP
  254866. .UNINDENT
  254867. .IP \(bu 2
  254868. \fBISSUE\fP \fI\%#8585\fP: (\fI\%UtahDave\fP) \(aq#\(aq in single quoted option on cli not making it into the execution module (refs: \fI\%#24466\fP)
  254869. .IP \(bu 2
  254870. \fBISSUE\fP \fI\%#18045\fP: (\fI\%dstokes\fP) Pillar kwargs parse error with # (refs: \fI\%#24466\fP)
  254871. .IP \(bu 2
  254872. \fBPR\fP \fI\%#24466\fP: (\fI\%basepi\fP) [2015.5] Fix for # in inner strings in yaml arguments
  254873. @ \fI2015\-06\-06 14:35:56 UTC\fP
  254874. .INDENT 2.0
  254875. .IP \(bu 2
  254876. 0292e67c8a Merge pull request \fI\%#24466\fP from basepi/fixhashinargs18045
  254877. .IP \(bu 2
  254878. 2e0609f09e Fix for # in inner strings in yaml arguments
  254879. .UNINDENT
  254880. .IP \(bu 2
  254881. \fBPR\fP \fI\%#24456\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24441\fP to 2015.5
  254882. @ \fI2015\-06\-05 22:32:25 UTC\fP
  254883. .INDENT 2.0
  254884. .IP \(bu 2
  254885. \fBPR\fP \fI\%#24441\fP: (\fI\%arthurlogilab\fP) [doc] Alignement fix on external_auth documentation (refs: \fI\%#24456\fP)
  254886. .IP \(bu 2
  254887. ced558a6e6 Merge pull request \fI\%#24456\fP from rallytime/bp\-24441
  254888. .IP \(bu 2
  254889. 70028553c1 yaml indentations should be 2 spaces
  254890. .IP \(bu 2
  254891. 21b51abf25 [doc] Alignement fix on external_auth documentation
  254892. .UNINDENT
  254893. .IP \(bu 2
  254894. \fBISSUE\fP \fI\%#24397\fP: (\fI\%kiorky\fP) on debian: states.apt should use virtualname as it shadows system apt module (refs: \fI\%#24398\fP, \fI\%#24400\fP, \fI\%#24399\fP)
  254895. .INDENT 2.0
  254896. .IP \(bu 2
  254897. \fBPR\fP \fI\%#24399\fP: (\fI\%kiorky\fP) Versionvirtual (refs: \fI\%#24398\fP)
  254898. .UNINDENT
  254899. .IP \(bu 2
  254900. \fBPR\fP \fI\%#24398\fP: (\fI\%kiorky\fP) VirtualName for states.apt (refs: \fI\%#24399\fP)
  254901. @ \fI2015\-06\-05 17:40:04 UTC\fP
  254902. .INDENT 2.0
  254903. .IP \(bu 2
  254904. c0ff4110ab Merge pull request \fI\%#24398\fP from makinacorpus/aptv
  254905. .IP \(bu 2
  254906. 785d27707f VirtualName for states.apt
  254907. .UNINDENT
  254908. .IP \(bu 2
  254909. \fBPR\fP \fI\%#24447\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_policy unit test case.
  254910. @ \fI2015\-06\-05 15:26:11 UTC\fP
  254911. .INDENT 2.0
  254912. .IP \(bu 2
  254913. 36263405be Merge pull request \fI\%#24447\fP from jayeshka/rabbitmq_policy_states\-unit\-test
  254914. .IP \(bu 2
  254915. 9b038abd63 adding states/rabbitmq_policy unit test case.
  254916. .UNINDENT
  254917. .IP \(bu 2
  254918. \fBPR\fP \fI\%#24446\fP: (\fI\%jayeshka\fP) adding states/rabbitmq_plugin unit test case.
  254919. @ \fI2015\-06\-05 15:25:33 UTC\fP
  254920. .INDENT 2.0
  254921. .IP \(bu 2
  254922. 8445a3f28d Merge pull request \fI\%#24446\fP from jayeshka/rabbitmq_plugin_states\-unit\-test
  254923. .IP \(bu 2
  254924. cb0c99a012 adding states/rabbitmq_plugin unit test case.
  254925. .UNINDENT
  254926. .IP \(bu 2
  254927. \fBPR\fP \fI\%#24426\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  254928. @ \fI2015\-06\-05 03:59:11 UTC\fP
  254929. .INDENT 2.0
  254930. .IP \(bu 2
  254931. 9cc3808758 Merge pull request \fI\%#24426\fP from basepi/merge\-forward\-2015.5
  254932. .IP \(bu 2
  254933. eafa20cdfb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  254934. .INDENT 2.0
  254935. .IP \(bu 2
  254936. 83f853b6ea Merge pull request \fI\%#24405\fP from jacksontj/2014.7
  254937. .INDENT 2.0
  254938. .IP \(bu 2
  254939. 2c7afaeebf Fix for \fI\%#24276\fP
  254940. .UNINDENT
  254941. .IP \(bu 2
  254942. cef919c602 Merge pull request \fI\%#24395\fP from hvnsweeting/handle\-exception\-get\-file
  254943. .INDENT 2.0
  254944. .IP \(bu 2
  254945. bb798a0224 handle exceptions when received data is not in good shape
  254946. .UNINDENT
  254947. .IP \(bu 2
  254948. efba1a94b4 Merge pull request \fI\%#24305\fP from twangboy/win_path_docs
  254949. .IP \(bu 2
  254950. 36804253e6 Fixed pylint error caused by P... added r
  254951. .IP \(bu 2
  254952. bc42a4bb11 triple double quotes to triple single quotes
  254953. .IP \(bu 2
  254954. 77cd930bba Added documentation, fixed formatting
  254955. .UNINDENT
  254956. .UNINDENT
  254957. .IP \(bu 2
  254958. \fBISSUE\fP \fI\%#24309\fP: (\fI\%steverweber\fP) missing docs (refs: \fI\%#24429\fP)
  254959. .IP \(bu 2
  254960. \fBPR\fP \fI\%#24429\fP: (\fI\%jacobhammons\fP) Salt cloud doc updates, build errors and bug fixes
  254961. @ \fI2015\-06\-05 00:27:38 UTC\fP
  254962. .INDENT 2.0
  254963. .IP \(bu 2
  254964. 5d738b8dab Merge pull request \fI\%#24429\fP from jacobhammons/cloud\-doc\-updates
  254965. .IP \(bu 2
  254966. 1f7a13d6f9 Salt cloud doc updates, build errors and bug fixes Refs \fI\%#24309\fP
  254967. .UNINDENT
  254968. .IP \(bu 2
  254969. \fBPR\fP \fI\%#24408\fP: (\fI\%rallytime\fP) Backport \fI\%#24392\fP to 2015.5
  254970. @ \fI2015\-06\-04 20:22:09 UTC\fP
  254971. .INDENT 2.0
  254972. .IP \(bu 2
  254973. \fBPR\fP \fI\%#24392\fP: (\fI\%quixoten\fP) Fix "No such file or directory" in grains/core.py (refs: \fI\%#24408\fP)
  254974. .IP \(bu 2
  254975. cdffc02cfe Merge pull request \fI\%#24408\fP from rallytime/bp\-24392
  254976. .IP \(bu 2
  254977. ff7461b3cd Use path found by salt.utils.which
  254978. .UNINDENT
  254979. .IP \(bu 2
  254980. \fBPR\fP \fI\%#24380\fP: (\fI\%rallytime\fP) Backport \fI\%#24357\fP to 2015.5
  254981. @ \fI2015\-06\-04 20:13:51 UTC\fP
  254982. .INDENT 2.0
  254983. .IP \(bu 2
  254984. \fBPR\fP \fI\%#24357\fP: (\fI\%zhujinhe\fP) fix invoke issues of Jinja Macros example (refs: \fI\%#24380\fP)
  254985. .IP \(bu 2
  254986. a6a1f87cd9 Merge pull request \fI\%#24380\fP from rallytime/bp\-24357
  254987. .IP \(bu 2
  254988. f08c875015 fix invoke issues of Jinja Macros example
  254989. .UNINDENT
  254990. .IP \(bu 2
  254991. \fBISSUE\fP \fI\%#24358\fP: (\fI\%pengyao\fP) Netapi SSH client don\(aqt support ssh_user and ssh_passwd arguments (refs: \fI\%#24388\fP)
  254992. .IP \(bu 2
  254993. \fBPR\fP \fI\%#24388\fP: (\fI\%pengyao\fP) fixes \fI\%#24358\fP
  254994. @ \fI2015\-06\-04 20:07:40 UTC\fP
  254995. .INDENT 2.0
  254996. .IP \(bu 2
  254997. 86ce9dbbdf Merge pull request \fI\%#24388\fP from pengyao/sshclient\-kwargs
  254998. .IP \(bu 2
  254999. 5c08ca48b4 fixes \fI\%#24358\fP
  255000. .UNINDENT
  255001. .IP \(bu 2
  255002. \fBISSUE\fP \fI\%#22958\fP: (\fI\%highlyunavailable\fP) Weird error when typoing a command (refs: \fI\%#24367\fP)
  255003. .IP \(bu 2
  255004. \fBPR\fP \fI\%#24367\fP: (\fI\%terminalmage\fP) Improve error message when module does not exist
  255005. @ \fI2015\-06\-04 20:07:12 UTC\fP
  255006. .INDENT 2.0
  255007. .IP \(bu 2
  255008. 72d2eaeda9 Merge pull request \fI\%#24367\fP from terminalmage/issue22958
  255009. .IP \(bu 2
  255010. d0d7a5481c Improve error message when module does not exist
  255011. .UNINDENT
  255012. .IP \(bu 2
  255013. \fBISSUE\fP \fI\%#23101\fP: (\fI\%gravyboat\fP) Create a docs page for labels (refs: \fI\%#23387\fP)
  255014. .IP \(bu 2
  255015. \fBPR\fP \fI\%#24412\fP: (\fI\%jfindlay\fP) backport \fI\%#23387\fP
  255016. @ \fI2015\-06\-04 20:06:03 UTC\fP
  255017. .INDENT 2.0
  255018. .IP \(bu 2
  255019. \fBPR\fP \fI\%#23387\fP: (\fI\%rallytime\fP) Add some "What are all these labels for?" documentation (refs: \fI\%#24412\fP)
  255020. .IP \(bu 2
  255021. a628778e3c Merge pull request \fI\%#24412\fP from jfindlay/bp\-23387
  255022. .IP \(bu 2
  255023. bf85772042 Make sure the parameters are in the correct order
  255024. .IP \(bu 2
  255025. 9f53809cde Add "* Change" label parameters
  255026. .IP \(bu 2
  255027. b27a15e774 Remove "workaround" wording
  255028. .IP \(bu 2
  255029. 9fff35a959 Some small fixes
  255030. .IP \(bu 2
  255031. 54a7089fd6 Link the new labels doc in contributing and hacking docs
  255032. .IP \(bu 2
  255033. 375695e696 Add pull request label definitions
  255034. .IP \(bu 2
  255035. de945638d3 Add Feature Request label definition
  255036. .IP \(bu 2
  255037. 684f291bd4 Add issue definition and augment functional areas section
  255038. .IP \(bu 2
  255039. 2da13dd525 Start a "what are all of these labels for?" doc
  255040. .UNINDENT
  255041. .IP \(bu 2
  255042. \fBISSUE\fP \fI\%#24154\fP: (\fI\%ssgward\fP) Exception when running cp.get_url (refs: \fI\%#24336\fP)
  255043. .IP \(bu 2
  255044. \fBPR\fP \fI\%#24336\fP: (\fI\%twangboy\fP) Added line to give more descriptive error
  255045. @ \fI2015\-06\-04 19:56:00 UTC\fP
  255046. .INDENT 2.0
  255047. .IP \(bu 2
  255048. 485116c2cc Merge pull request \fI\%#24336\fP from twangboy/fix_cp_get_url
  255049. .IP \(bu 2
  255050. 37b11f931c Added line to give more descriptive error
  255051. .UNINDENT
  255052. .IP \(bu 2
  255053. \fBPR\fP \fI\%#24413\fP: (\fI\%techhat\fP) Add more namespaced functions to GoGrid driver
  255054. @ \fI2015\-06\-04 19:51:22 UTC\fP
  255055. .INDENT 2.0
  255056. .IP \(bu 2
  255057. b3d39cc0e8 Merge pull request \fI\%#24413\fP from techhat/gogridnamespace
  255058. .IP \(bu 2
  255059. 1b397cb6fe Adding blank line
  255060. .IP \(bu 2
  255061. da08cc9aac Add more namespaced functions to GoGrid driver
  255062. .UNINDENT
  255063. .IP \(bu 2
  255064. \fBISSUE\fP \fI\%#24397\fP: (\fI\%kiorky\fP) on debian: states.apt should use virtualname as it shadows system apt module (refs: \fI\%#24398\fP, \fI\%#24400\fP, \fI\%#24399\fP)
  255065. .IP \(bu 2
  255066. \fBPR\fP \fI\%#24399\fP: (\fI\%kiorky\fP) Versionvirtual (refs: \fI\%#24398\fP)
  255067. @ \fI2015\-06\-04 18:02:22 UTC\fP
  255068. .INDENT 2.0
  255069. .IP \(bu 2
  255070. \fBPR\fP \fI\%#24398\fP: (\fI\%kiorky\fP) VirtualName for states.apt (refs: \fI\%#24399\fP)
  255071. .IP \(bu 2
  255072. 27f109bd76 Merge pull request \fI\%#24399\fP from makinacorpus/versionvirtual
  255073. .IP \(bu 2
  255074. 235c78ddfe Use apt_pkg.version_compare if available
  255075. .IP \(bu 2
  255076. 1c0cd459f8 reindent block to isolate conflict on merge forward
  255077. .IP \(bu 2
  255078. 699eceab64 use var to isolate conflict on merge forward
  255079. .UNINDENT
  255080. .IP \(bu 2
  255081. \fBPR\fP \fI\%#24371\fP: (\fI\%joejulian\fP) 2015.5 tls module tests
  255082. @ \fI2015\-06\-04 15:20:16 UTC\fP
  255083. .INDENT 2.0
  255084. .IP \(bu 2
  255085. deaee68b89 Merge pull request \fI\%#24371\fP from joejulian/2015.5_tls_module_tests
  255086. .IP \(bu 2
  255087. 4c5dee1e25 Add @destructiveTest decorator to destructive tests
  255088. .IP \(bu 2
  255089. 274bbd4d43 Accept results from older pyOpenSSL
  255090. .IP \(bu 2
  255091. 161f913522 All cert info should be in UTC always
  255092. .IP \(bu 2
  255093. 9affcca766 See the whole diff if dict compare fails
  255094. .IP \(bu 2
  255095. 94f620857c Ignore extensions for now. Resolve this as part of fixing issue 24338.
  255096. .IP \(bu 2
  255097. 84904d31f1 Mask lint warning for unused imported module
  255098. .IP \(bu 2
  255099. 5675b78459 Do not test if PyOpenSSL is not installed
  255100. .IP \(bu 2
  255101. 563cc66311 Add tls tests
  255102. .UNINDENT
  255103. .IP \(bu 2
  255104. \fBPR\fP \fI\%#24403\fP: (\fI\%jayeshka\fP) adding states/process unit test case.
  255105. @ \fI2015\-06\-04 15:19:01 UTC\fP
  255106. .INDENT 2.0
  255107. .IP \(bu 2
  255108. 84686ee695 Merge pull request \fI\%#24403\fP from jayeshka/process_states\-unit\-test
  255109. .IP \(bu 2
  255110. fcb71fb35e adding states/process unit test case.
  255111. .UNINDENT
  255112. .IP \(bu 2
  255113. \fBPR\fP \fI\%#24402\fP: (\fI\%jayeshka\fP) adding states/pyenv unit test case.
  255114. @ \fI2015\-06\-04 15:18:11 UTC\fP
  255115. .INDENT 2.0
  255116. .IP \(bu 2
  255117. 35de8d72db Merge pull request \fI\%#24402\fP from jayeshka/pyenv_states\-unit\-test
  255118. .IP \(bu 2
  255119. 5f263ab48b adding states/pyenc unit test case.
  255120. .UNINDENT
  255121. .IP \(bu 2
  255122. \fBPR\fP \fI\%#24401\fP: (\fI\%jayeshka\fP) adding states/powerpath unit test case.
  255123. @ \fI2015\-06\-04 15:17:46 UTC\fP
  255124. .INDENT 2.0
  255125. .IP \(bu 2
  255126. 632f838838 Merge pull request \fI\%#24401\fP from jayeshka/powerpath\-states\-unit\-test
  255127. .IP \(bu 2
  255128. 49ff9272ce adding states/powerpath unit test case.
  255129. .UNINDENT
  255130. .IP \(bu 2
  255131. \fBISSUE\fP \fI\%#24397\fP: (\fI\%kiorky\fP) on debian: states.apt should use virtualname as it shadows system apt module (refs: \fI\%#24398\fP, \fI\%#24400\fP, \fI\%#24399\fP)
  255132. .IP \(bu 2
  255133. \fBPR\fP \fI\%#24400\fP: (\fI\%kiorky\fP) Aptversion
  255134. @ \fI2015\-06\-04 15:17:19 UTC\fP
  255135. .INDENT 2.0
  255136. .IP \(bu 2
  255137. 0a6e5e0d96 Merge pull request \fI\%#24400\fP from makinacorpus/aptversion
  255138. .IP \(bu 2
  255139. e15cb936b5 Use apt_pkg.version_compare if available
  255140. .IP \(bu 2
  255141. 953725a563 Fix too much quoting in apt.version_cmp
  255142. .UNINDENT
  255143. .IP \(bu 2
  255144. \fBPR\fP \fI\%#24385\fP: (\fI\%jeanpralo\fP) Fix salt.modules.dockerio.start method
  255145. @ \fI2015\-06\-04 15:00:22 UTC\fP
  255146. .INDENT 2.0
  255147. .IP \(bu 2
  255148. a904055d28 Merge pull request \fI\%#24385\fP from jeanpralo/Fix\-binds\-dockerio.start
  255149. .IP \(bu 2
  255150. a0fed313fa binds dict if not specified should remain to none otherwise docker\-py will try to create a new host config and all volume and ports binds are lost. config should be done at the creation of the container not when we start it
  255151. .UNINDENT
  255152. .IP \(bu 2
  255153. \fBPR\fP \fI\%#24381\fP: (\fI\%justinta\fP) Disabled flaky test to review later
  255154. @ \fI2015\-06\-04 14:57:43 UTC\fP
  255155. .INDENT 2.0
  255156. .IP \(bu 2
  255157. 9890bc4e43 Merge pull request \fI\%#24381\fP from jtand/seed_test
  255158. .IP \(bu 2
  255159. 7570ae9132 Disabled flaky test to review later
  255160. .UNINDENT
  255161. .IP \(bu 2
  255162. \fBISSUE\fP \fI\%#23342\fP: (\fI\%philipsd6\fP) salt\-ssh 2015.2.0rc2 fails when target doesn\(aqt have lspci available (refs: \fI\%#24382\fP)
  255163. .IP \(bu 2
  255164. \fBPR\fP \fI\%#24382\fP: (\fI\%basepi\fP) [2015.5] Handle CommandExecutionError in grains commands, Fixes \fI\%#23342\fP
  255165. @ \fI2015\-06\-04 12:44:04 UTC\fP
  255166. .INDENT 2.0
  255167. .IP \(bu 2
  255168. b3fa8fefcb Merge pull request \fI\%#24382\fP from basepi/grainscommandnotfound23342
  255169. .IP \(bu 2
  255170. 85b91d64cc Handle CommandExecutionError in grains commands
  255171. .UNINDENT
  255172. .IP \(bu 2
  255173. \fBPR\fP \fI\%#24379\fP: (\fI\%Starblade42\fP) Fixes an issue where Pagerduty states/modules couldn\(aqt find their profile in the Pillar
  255174. @ \fI2015\-06\-04 12:41:13 UTC\fP
  255175. .INDENT 2.0
  255176. .IP \(bu 2
  255177. 52587a4fc1 Merge pull request \fI\%#24379\fP from Starblade42/2015.5
  255178. .IP \(bu 2
  255179. b93dc5ef6c Linting!
  255180. .IP \(bu 2
  255181. 2dd5904119 Fixes an issue where Pagerduty states/modules couldn\(aqt find its profile in the Pillar
  255182. .UNINDENT
  255183. .IP \(bu 2
  255184. \fBPR\fP \fI\%#24366\fP: (\fI\%terminalmage\fP) Use yes $\(aq\en\(aq instead of printf \(aq\en\(aq for pecl commands
  255185. @ \fI2015\-06\-03 21:28:58 UTC\fP
  255186. .INDENT 2.0
  255187. .IP \(bu 2
  255188. 3ca35d1ec3 Merge pull request \fI\%#24366\fP from terminalmage/pecl\-yes
  255189. .IP \(bu 2
  255190. dcd9ad8b6e Use yes $\(aqn\(aq instead of printf \(aqn\(aq for pecl commands
  255191. .UNINDENT
  255192. .IP \(bu 2
  255193. \fBISSUE\fP \fI\%#24284\fP: (\fI\%kiorky\fP) systemd lxc containers need use_vt=True at lxc\-start stage (refs: \fI\%#24348\fP)
  255194. .INDENT 2.0
  255195. .IP \(bu 2
  255196. \fBPR\fP \fI\%#548\fP: (\fI\%Lanzaa\fP) Salt is now platform dependent. Use get_python_lib(1) (refs: \fI\%#24348\fP)
  255197. .UNINDENT
  255198. .IP \(bu 2
  255199. \fBPR\fP \fI\%#24348\fP: (\fI\%kiorky\fP) Try to close input pipes before calling lxc\-start
  255200. @ \fI2015\-06\-03 19:38:07 UTC\fP
  255201. .INDENT 2.0
  255202. .IP \(bu 2
  255203. 86a3b317c6 Merge pull request \fI\%#24348\fP from makinacorpus/lxcpre
  255204. .IP \(bu 2
  255205. 0cb11a2767 lxc: typo
  255206. .IP \(bu 2
  255207. d71efa6d66 Try to close input pipes before calling lxc\-start
  255208. .UNINDENT
  255209. .UNINDENT
  255210. .SS Salt 2015.5.4 Release Notes
  255211. .INDENT 0.0
  255212. .TP
  255213. .B release
  255214. 2015\-08\-13
  255215. .UNINDENT
  255216. .sp
  255217. Version 2015.5.4 is a bugfix release for 2015.5.0\&.
  255218. .SS Statistics
  255219. .INDENT 0.0
  255220. .IP \(bu 2
  255221. Total Merges: \fB247\fP
  255222. .IP \(bu 2
  255223. Total Issue References: \fB138\fP
  255224. .IP \(bu 2
  255225. Total PR References: \fB312\fP
  255226. .IP \(bu 2
  255227. Contributors: \fB92\fP (\fI\%0xf10e\fP, \fI\%AkhterAli\fP, \fI\%BretFisher\fP, \fI\%DmitryKuzmenko\fP, \fI\%EvaSDK\fP, \fI\%GideonRed\-zz\fP, \fI\%JohannesEbke\fP, \fI\%Oro\fP, \fI\%TheBigBear\fP, \fI\%TronPaul\fP, \fI\%UtahDave\fP, \fI\%ahus1\fP, \fI\%alekti\fP, \fI\%alexandrsushko\fP, \fI\%amontalban\fP, \fI\%andre\-luiz\-dos\-santos\fP, \fI\%aneeshusa\fP, \fI\%anlutro\fP, \fI\%asyncsrc\fP, \fI\%attiasr\fP, \fI\%babilen\fP, \fI\%basepi\fP, \fI\%bbinet\fP, \fI\%bclermont\fP, \fI\%bechtoldt\fP, \fI\%blackduckx\fP, \fI\%bobrik\fP, \fI\%cachedout\fP, \fI\%colekowalski\fP, \fI\%cro\fP, \fI\%d\-\-j\fP, \fI\%davidjb\fP, \fI\%denmat\fP, \fI\%derBroBro\fP, \fI\%dkiser\fP, \fI\%driskell\fP, \fI\%egarbi\fP, \fI\%fleaflicker\fP, \fI\%garethgreenaway\fP, \fI\%gmcwhistler\fP, \fI\%gtmanfred\fP, \fI\%hasues\fP, \fI\%isbm\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jahamn\fP, \fI\%jarpy\fP, \fI\%jasonkeene\fP, \fI\%jayeshka\fP, \fI\%jfindlay\fP, \fI\%jleroy\fP, \fI\%jmdcal\fP, \fI\%jodv\fP, \fI\%joejulian\fP, \fI\%jquast\fP, \fI\%justinta\fP, \fI\%kev009\fP, \fI\%klyr\fP, \fI\%l2ol33rt\fP, \fI\%loa\fP, \fI\%lomeroe\fP, \fI\%martinhoefling\fP, \fI\%mgwilliams\fP, \fI\%nicholascapo\fP, \fI\%niq000\fP, \fI\%nmadhok\fP, \fI\%nyushi\fP, \fI\%oeuftete\fP, \fI\%opdude\fP, \fI\%pcdummy\fP, \fI\%pcn\fP, \fI\%peterdemin\fP, \fI\%puneetk\fP, \fI\%rallytime\fP, \fI\%rmatulat\fP, \fI\%s0undt3ch\fP, \fI\%silenius\fP, \fI\%sjorge\fP, \fI\%stanislavb\fP, \fI\%steverweber\fP, \fI\%supertom\fP, \fI\%t0rrant\fP, \fI\%tankywoo\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%tony\-cocco\fP, \fI\%twangboy\fP, \fI\%uvsmtid\fP, \fI\%vr\-jack\fP, \fI\%yanatan16\fP, \fI\%zyio\fP)
  255228. .UNINDENT
  255229. .SS Bug Fixes
  255230. .INDENT 0.0
  255231. .IP \(bu 2
  255232. The \fBcron.present\fP state now correctly
  255233. defaults to state ID as identifier.
  255234. .UNINDENT
  255235. .SS Salt\-Cloud Changes
  255236. .INDENT 0.0
  255237. .IP \(bu 2
  255238. When querying for VMs in the \fBdigital_ocean_v2\fP cloud driver, the number of
  255239. VMs to include in a page was changed from 20 (default) to 200 to reduce the
  255240. number of API calls to Digital Ocean.
  255241. .IP \(bu 2
  255242. The \fBvmware\fP salt\-cloud driver was back\-ported from the develop branch in
  255243. order for installations of Salt that are older than 2015.8.0 to be able to
  255244. use the \fBvmware\fP driver without stack\-tracing on various deprecation paths
  255245. that were implemented in the 2015.8.0 release.
  255246. .UNINDENT
  255247. .SS Changelog for v2015.5.3..v2015.5.4
  255248. .sp
  255249. \fIGenerated at: 2018\-05\-27 21:59:14 UTC\fP
  255250. .INDENT 0.0
  255251. .IP \(bu 2
  255252. \fBPR\fP \fI\%#26292\fP: (\fI\%jquast\fP) Rabbitmq 3.2.4 on Ubuntu has "...done.", not "...done"
  255253. @ \fI2015\-08\-13 19:53:29 UTC\fP
  255254. .INDENT 2.0
  255255. .IP \(bu 2
  255256. 0a5d1307c4 Merge pull request \fI\%#26292\fP from jquast/backport\-ubuntu\-rabbitmq\-fix
  255257. .IP \(bu 2
  255258. 39ef653bc2 Rabbitmq 3.2.4 on Ubuntu has ...done. not ...done, change the if to be more portable
  255259. .UNINDENT
  255260. .IP \(bu 2
  255261. \fBPR\fP \fI\%#26296\fP: (\fI\%jquast\fP) bugfix missing \(aqrunas=None\(aq for rabbitmqctl cmds (backport to 2015.5)
  255262. @ \fI2015\-08\-13 19:52:40 UTC\fP
  255263. .INDENT 2.0
  255264. .IP \(bu 2
  255265. 21cc3c3bf6 Merge pull request \fI\%#26296\fP from jquast/bugfix\-runas\-rabbitmqctl\-2015.5
  255266. .IP \(bu 2
  255267. eb77320786 bugfix missing \(aqrunas=None\(aq for rabbitmqctl cmds
  255268. .UNINDENT
  255269. .IP \(bu 2
  255270. \fBISSUE\fP \fI\%#25618\fP: (\fI\%twangboy\fP) Fix reg.py to work with the registry properly (refs: \fI\%#26268\fP)
  255271. .IP \(bu 2
  255272. \fBPR\fP \fI\%#26293\fP: (\fI\%jfindlay\fP) Fix \fI\%#26268\fP
  255273. @ \fI2015\-08\-13 19:48:06 UTC\fP
  255274. .INDENT 2.0
  255275. .IP \(bu 2
  255276. \fBPR\fP \fI\%#26268\fP: (\fI\%twangboy\fP) Multiple improvements to reg executionmod and state mod (refs: \fI\%#26293\fP)
  255277. .IP \(bu 2
  255278. ee59d154d7 Merge pull request \fI\%#26293\fP from jfindlay/reggie
  255279. .IP \(bu 2
  255280. 91ea964556 add versionadded to reg exec and state mods
  255281. .IP \(bu 2
  255282. 3348b726c9 fix state/reg unit tests
  255283. .IP \(bu 2
  255284. 3f74a389ce return test results when test=True
  255285. .IP \(bu 2
  255286. a1274c438d I might have fixed some tests... I might have made them worse
  255287. .IP \(bu 2
  255288. 7393adf5a8 Fixed some lint
  255289. .IP \(bu 2
  255290. 787c88a283 Multiple improvements to reg executionmod and state mod
  255291. .UNINDENT
  255292. .IP \(bu 2
  255293. \fBISSUE\fP \fI\%#25192\fP: (\fI\%deuscapturus\fP) 2015.5.2 boto_cloudwatch_alarm.present not working. (refs: \fI\%#26290\fP)
  255294. .IP \(bu 2
  255295. \fBPR\fP \fI\%#26290\fP: (\fI\%rallytime\fP) Only call convert_to_arn when action name is provided
  255296. @ \fI2015\-08\-13 18:48:58 UTC\fP
  255297. .INDENT 2.0
  255298. .IP \(bu 2
  255299. 5dd5ac1198 Merge pull request \fI\%#26290\fP from rallytime/fix\-25192
  255300. .IP \(bu 2
  255301. a1f90fa070 Only call convert_to_arn when action name is provided
  255302. .UNINDENT
  255303. .IP \(bu 2
  255304. \fBPR\fP \fI\%#26288\fP: (\fI\%bbinet\fP) allow to delete grains which value is False
  255305. @ \fI2015\-08\-13 18:24:36 UTC\fP
  255306. .INDENT 2.0
  255307. .IP \(bu 2
  255308. c81dc0b62f Merge pull request \fI\%#26288\fP from bbinet/grains\-absent\-fix
  255309. .IP \(bu 2
  255310. f46722aaeb allow to delete grains which value is False
  255311. .UNINDENT
  255312. .IP \(bu 2
  255313. \fBISSUE\fP \fI\%#24882\fP: (\fI\%nmadhok\fP) salt.states.openstack_config.present and salt.states.openstack_config.absent make changes when test=True (refs: \fI\%#26263\fP)
  255314. .IP \(bu 2
  255315. \fBPR\fP \fI\%#26263\fP: (\fI\%rallytime\fP) Don\(aqt make changes when test=True for openstack present/absent funcs
  255316. @ \fI2015\-08\-13 16:30:31 UTC\fP
  255317. .INDENT 2.0
  255318. .IP \(bu 2
  255319. 65ab5aa495 Merge pull request \fI\%#26263\fP from rallytime/fix\-24882
  255320. .IP \(bu 2
  255321. 86b8161d22 Mock test key in __opts__ dict
  255322. .IP \(bu 2
  255323. 298685bbb2 Don\(aqt make changes when test=True for openstack present/absent funcs
  255324. .UNINDENT
  255325. .IP \(bu 2
  255326. \fBISSUE\fP \fI\%#24484\fP: (\fI\%bailsman\fP) clouds/ec2.py: create_snapshot throws exception (refs: \fI\%#26265\fP)
  255327. .IP \(bu 2
  255328. \fBPR\fP \fI\%#26265\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on query return in ec2.create_snapshot
  255329. @ \fI2015\-08\-13 16:28:48 UTC\fP
  255330. .INDENT 2.0
  255331. .IP \(bu 2
  255332. 3d1a9cfedd Merge pull request \fI\%#26265\fP from rallytime/fix\-24484
  255333. .IP \(bu 2
  255334. 4975300591 Don\(aqt stacktrace on query return in ec2.create_snapshot
  255335. .UNINDENT
  255336. .IP \(bu 2
  255337. \fBPR\fP \fI\%#26285\fP: (\fI\%stanislavb\fP) Remove explicit version from instance identity URL
  255338. @ \fI2015\-08\-13 16:25:32 UTC\fP
  255339. .INDENT 2.0
  255340. .IP \(bu 2
  255341. 5778cb3f01 Merge pull request \fI\%#26285\fP from stanislavb/2015.5
  255342. .IP \(bu 2
  255343. 1f18f4f91e Remove explicit version from instance identity URL
  255344. .UNINDENT
  255345. .IP \(bu 2
  255346. \fBPR\fP \fI\%#26275\fP: (\fI\%cachedout\fP) Re\-init modules on multi\-master reconnect
  255347. @ \fI2015\-08\-13 15:52:50 UTC\fP
  255348. .INDENT 2.0
  255349. .IP \(bu 2
  255350. 679dc089c0 Merge pull request \fI\%#26275\fP from cachedout/mm_reinit
  255351. .IP \(bu 2
  255352. 1e0473c04a Re\-init modules on multi\-master reconnect
  255353. .UNINDENT
  255354. .IP \(bu 2
  255355. \fBPR\fP \fI\%#26273\fP: (\fI\%garethgreenaway\fP) Fixes to schedule module in 2015.5
  255356. @ \fI2015\-08\-13 15:34:43 UTC\fP
  255357. .INDENT 2.0
  255358. .IP \(bu 2
  255359. 75fff28779 Merge pull request \fI\%#26273\fP from garethgreenaway/2015_5_schedule_list_show_jobs_enabled
  255360. .IP \(bu 2
  255361. 1aad4b1b4f Jobs are enabled by default but schedule.list does not show an enabled jobs as being enabled by default. This change fixes that.
  255362. .UNINDENT
  255363. .IP \(bu 2
  255364. \fBISSUE\fP \fI\%#24483\fP: (\fI\%bailsman\fP) clouds/ec2.py: del_root_vol_on_destroy and del_all_vols_on_destroy not working (refs: \fI\%#26271\fP)
  255365. .IP \(bu 2
  255366. \fBPR\fP \fI\%#26271\fP: (\fI\%rallytime\fP) Fix del_root_vol_on_destroy and del_all_vols_on_destroy functionality on ec2
  255367. @ \fI2015\-08\-12 23:22:47 UTC\fP
  255368. .INDENT 2.0
  255369. .IP \(bu 2
  255370. 10af22775a Merge pull request \fI\%#26271\fP from rallytime/fix\-24483
  255371. .IP \(bu 2
  255372. 139fbb93bc Fix del_root_vol_on_destroy and del_all_vols_on_destroy functionality on ec2
  255373. .UNINDENT
  255374. .IP \(bu 2
  255375. \fBISSUE\fP \fI\%#25958\fP: (\fI\%anlutro\fP) Cron identifier does not default to state ID as documented (refs: \fI\%#26219\fP)
  255376. .IP \(bu 2
  255377. \fBPR\fP \fI\%#26219\fP: (\fI\%anlutro\fP) cron: make identifier default to state ID
  255378. @ \fI2015\-08\-12 18:42:33 UTC\fP
  255379. .INDENT 2.0
  255380. .IP \(bu 2
  255381. 8e1b5da2e0 Merge pull request \fI\%#26219\fP from alprs/fix\-cron_identifier_default
  255382. .IP \(bu 2
  255383. 1f02e1671b cron: fix a typo in the tests
  255384. .IP \(bu 2
  255385. a86b1b7f94 add release note about cron state changes
  255386. .IP \(bu 2
  255387. 9511e392ce cron: read full length of multi\-line comments
  255388. .IP \(bu 2
  255389. 9b18cd9050 cron: more descriptive tests, updated to reflect new behavior
  255390. .IP \(bu 2
  255391. f22ad837c3 cron: change identifier default value to False
  255392. .IP \(bu 2
  255393. ad444b6e7b cron identifier: default to state id
  255394. .UNINDENT
  255395. .IP \(bu 2
  255396. \fBISSUE\fP \fI\%#26207\fP: (\fI\%fullermd\fP) group members setting fails with obscure error message on FreeBSD (refs: \fI\%#26237\fP)
  255397. .IP \(bu 2
  255398. \fBPR\fP \fI\%#26257\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26237\fP to 2015.5
  255399. @ \fI2015\-08\-12 18:40:35 UTC\fP
  255400. .INDENT 2.0
  255401. .IP \(bu 2
  255402. \fBPR\fP \fI\%#26237\fP: (\fI\%silenius\fP) fix issue \fI\%#26207\fP (refs: \fI\%#26257\fP)
  255403. .IP \(bu 2
  255404. eebcade533 Merge pull request \fI\%#26257\fP from rallytime/bp\-26237
  255405. .IP \(bu 2
  255406. d57fdbc6a0 Add versionadded to new members function
  255407. .IP \(bu 2
  255408. dad1920626 fix issue \fI\%#26207\fP
  255409. .UNINDENT
  255410. .IP \(bu 2
  255411. \fBPR\fP \fI\%#26258\fP: (\fI\%nmadhok\fP) Fix permission on tests/runtests.py on 2015.5 branch
  255412. @ \fI2015\-08\-12 18:40:04 UTC\fP
  255413. .INDENT 2.0
  255414. .IP \(bu 2
  255415. d7c8169dfb Merge pull request \fI\%#26258\fP from nmadhok/fix\-permission
  255416. .IP \(bu 2
  255417. d94485d336 Fix permission on tests/runtests.py on 2015.5 branch
  255418. .UNINDENT
  255419. .IP \(bu 2
  255420. \fBPR\fP \fI\%#26261\fP: (\fI\%nmadhok\fP) Correct spelling of integration in docs
  255421. @ \fI2015\-08\-12 18:14:48 UTC\fP
  255422. .INDENT 2.0
  255423. .IP \(bu 2
  255424. 74b70c37b7 Merge pull request \fI\%#26261\fP from nmadhok/doc\-fix\-2015.5
  255425. .IP \(bu 2
  255426. 714f9766e7 Correct spelling of integration in docs
  255427. .UNINDENT
  255428. .IP \(bu 2
  255429. \fBPR\fP \fI\%#26247\fP: (\fI\%nmadhok\fP) Initial commit of unit tests for vmware cloud driver
  255430. @ \fI2015\-08\-12 16:58:24 UTC\fP
  255431. .INDENT 2.0
  255432. .IP \(bu 2
  255433. de00c181f8 Merge pull request \fI\%#26247\fP from nmadhok/vmware\-cloud\-test\-2015.5
  255434. .IP \(bu 2
  255435. 6cc5f97e92 Lint Fix
  255436. .IP \(bu 2
  255437. a8bfe5ec1f Initial commit of unit tests for vmware cloud driver
  255438. .UNINDENT
  255439. .IP \(bu 2
  255440. \fBPR\fP \fI\%#26246\fP: (\fI\%nmadhok\fP) Backport additions to VMware cloud driver from develop to 2015.5 branch
  255441. @ \fI2015\-08\-12 15:11:26 UTC\fP
  255442. .INDENT 2.0
  255443. .IP \(bu 2
  255444. d14d7b2c0e Merge pull request \fI\%#26246\fP from nmadhok/vmware\-cloud\-driver\-additions\-2015.5
  255445. .IP \(bu 2
  255446. 5227aa94bc Backport additions to VMware cloud driver from develop to 2015.5 branch
  255447. .UNINDENT
  255448. .IP \(bu 2
  255449. \fBPR\fP \fI\%#26239\fP: (\fI\%opdude\fP) Fixed documentation to match function name
  255450. @ \fI2015\-08\-12 14:48:52 UTC\fP
  255451. .INDENT 2.0
  255452. .IP \(bu 2
  255453. 87b300d7b3 Merge pull request \fI\%#26239\fP from Unity\-Technologies/2015.5
  255454. .IP \(bu 2
  255455. fc18751710 Fixed documentation to match function name
  255456. .UNINDENT
  255457. .IP \(bu 2
  255458. \fBPR\fP \fI\%#26232\fP: (\fI\%garethgreenaway\fP) Fix to trust_key in gpg module for 2015.5.
  255459. @ \fI2015\-08\-12 04:48:27 UTC\fP
  255460. .INDENT 2.0
  255461. .IP \(bu 2
  255462. a93b96c9ba Merge pull request \fI\%#26232\fP from garethgreenaway/2015_5_gpg_trust_key_fix
  255463. .IP \(bu 2
  255464. e174c41887 Fix to trust_key in gpg module for 2015.5.
  255465. .UNINDENT
  255466. .IP \(bu 2
  255467. \fBISSUE\fP \fI\%#25802\fP: (\fI\%jefftucker\fP) Running module "npm.list" fails on Windows for masterless minion (refs: \fI\%#26084\fP)
  255468. .IP \(bu 2
  255469. \fBPR\fP \fI\%#26084\fP: (\fI\%twangboy\fP) Added python_shell=True, quoted user input
  255470. @ \fI2015\-08\-10 21:29:35 UTC\fP
  255471. .INDENT 2.0
  255472. .IP \(bu 2
  255473. b57da552ff Merge pull request \fI\%#26084\fP from twangboy/fix_25802
  255474. .IP \(bu 2
  255475. 4503ed5b34 Fixed but with multiple packages, was causing tests to fail
  255476. .IP \(bu 2
  255477. f05e3e72a3 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25802
  255478. .UNINDENT
  255479. .IP \(bu 2
  255480. \fBPR\fP \fI\%#26183\fP: (\fI\%cro\fP) Fix LDAP configuration issue.
  255481. @ \fI2015\-08\-10 19:09:41 UTC\fP
  255482. .INDENT 2.0
  255483. .IP \(bu 2
  255484. c3814137a3 Merge pull request \fI\%#26183\fP from cro/anonldap2
  255485. .IP \(bu 2
  255486. aa5e9c80b5 Lint roller
  255487. .IP \(bu 2
  255488. 79833e3f8a Cherry pick index.rst change.
  255489. .IP \(bu 2
  255490. 99f2c27399 Documentation update for anonymous bind issue.
  255491. .IP \(bu 2
  255492. 793eed7b96 Cherry pick master.py groups check
  255493. .UNINDENT
  255494. .IP \(bu 2
  255495. \fBPR\fP \fI\%#26186\fP: (\fI\%jacobhammons\fP) regenerated man pages
  255496. @ \fI2015\-08\-10 19:07:44 UTC\fP
  255497. .INDENT 2.0
  255498. .IP \(bu 2
  255499. 3233ed4675 Merge pull request \fI\%#26186\fP from jacobhammons/man\-page\-updates
  255500. .IP \(bu 2
  255501. bf2dad913f regenerated man pages
  255502. .UNINDENT
  255503. .IP \(bu 2
  255504. \fBPR\fP \fI\%#26182\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  255505. @ \fI2015\-08\-10 19:00:10 UTC\fP
  255506. .INDENT 2.0
  255507. .IP \(bu 2
  255508. d48bcf7598 Merge pull request \fI\%#26182\fP from basepi/merge\-forward\-2015.5
  255509. .IP \(bu 2
  255510. 32f5345d7d Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  255511. .INDENT 2.0
  255512. .IP \(bu 2
  255513. abdf2935c4 Merge pull request \fI\%#26116\fP from corux/fix\-escape\-content
  255514. .INDENT 2.0
  255515. .IP \(bu 2
  255516. fd913ddc36 Append/prepend: search for full line with escaped content
  255517. .UNINDENT
  255518. .IP \(bu 2
  255519. 106356d98d Merge pull request \fI\%#26088\fP from jacobhammons/master\-finger
  255520. .INDENT 2.0
  255521. .IP \(bu 2
  255522. 133d5f7885 some small changes
  255523. .IP \(bu 2
  255524. d220c83f77 master_finger configuration docs switch a script to use \fI\%https://\fP instead of \fI\%http://\fP Refs \fI\%#25751\fP
  255525. .UNINDENT
  255526. .IP \(bu 2
  255527. 4bd4bc41f2 Merge pull request \fI\%#26047\fP from jacobhammons/win\-downloads
  255528. .INDENT 2.0
  255529. .IP \(bu 2
  255530. 7c162d181c Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP Refs \fI\%#25961\fP
  255531. .UNINDENT
  255532. .UNINDENT
  255533. .UNINDENT
  255534. .IP \(bu 2
  255535. \fBISSUE\fP \fI\%#25998\fP: (\fI\%driskell\fP) Event subsystem discarding required events during \-\-batch breaking it for slow running commands (refs: \fI\%#26000\fP)
  255536. .IP \(bu 2
  255537. \fBPR\fP \fI\%#26000\fP: (\fI\%driskell\fP) Implement full event caching for subscribed tags
  255538. @ \fI2015\-08\-10 18:57:17 UTC\fP
  255539. .INDENT 2.0
  255540. .IP \(bu 2
  255541. f39780f8ce Merge pull request \fI\%#26000\fP from driskell/fix_discarded_events
  255542. .IP \(bu 2
  255543. 65acf975dd Implement full event caching for subscribed tags Require all multitasking contexts to subscribe to their events so one call to get_event for one tag does not discard events that should be saved for a subsequent call to get_event with another tag. Use blocking get_event in batching with very small timeout. Fixes \fI\%#25998\fP
  255544. .UNINDENT
  255545. .IP \(bu 2
  255546. \fBPR\fP \fI\%#26175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26153\fP to 2015.5
  255547. @ \fI2015\-08\-10 18:22:32 UTC\fP
  255548. .INDENT 2.0
  255549. .IP \(bu 2
  255550. \fBPR\fP \fI\%#26153\fP: (\fI\%loa\fP) Fix dockerio state documentation typo (refs: \fI\%#26175\fP)
  255551. .IP \(bu 2
  255552. c01b4cf150 Merge pull request \fI\%#26175\fP from rallytime/bp\-26153
  255553. .IP \(bu 2
  255554. 9a263067e9 Fix dockerio state documentation typo
  255555. .UNINDENT
  255556. .IP \(bu 2
  255557. \fBISSUE\fP \fI\%#26024\fP: (\fI\%jpic\fP) lxc_conf_unset in cloud.profile is ignored (refs: \fI\%#26147\fP)
  255558. .IP \(bu 2
  255559. \fBPR\fP \fI\%#26177\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26147\fP to 2015.5
  255560. @ \fI2015\-08\-10 18:22:01 UTC\fP
  255561. .INDENT 2.0
  255562. .IP \(bu 2
  255563. \fBPR\fP \fI\%#26147\fP: (\fI\%martinhoefling\fP) Fixes \fI\%#26024\fP (refs: \fI\%#26177\fP)
  255564. .IP \(bu 2
  255565. ca80f33bfd Merge pull request \fI\%#26177\fP from rallytime/bp\-26147
  255566. .IP \(bu 2
  255567. 323c3ab53c Fixes \fI\%#26024\fP
  255568. .UNINDENT
  255569. .IP \(bu 2
  255570. \fBISSUE\fP \fI\%#21082\fP: (\fI\%clinta\fP) master_type failover does not failover on DNS errors (refs: \fI\%#25404\fP)
  255571. .IP \(bu 2
  255572. \fBPR\fP \fI\%#26179\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25404\fP to 2015.5
  255573. @ \fI2015\-08\-10 18:21:50 UTC\fP
  255574. .INDENT 2.0
  255575. .IP \(bu 2
  255576. \fBPR\fP \fI\%#25404\fP: (\fI\%DmitryKuzmenko\fP) Fixed minion failover to next master on DNS errors. (refs: \fI\%#26179\fP)
  255577. .IP \(bu 2
  255578. 1213b8d706 Merge pull request \fI\%#26179\fP from rallytime/bp\-25404
  255579. .IP \(bu 2
  255580. 52ab9fc1fb Fixed minion failover to next master on DNS errors.
  255581. .UNINDENT
  255582. .IP \(bu 2
  255583. \fBISSUE\fP \fI\%#26112\fP: (\fI\%wt\fP) state.template fails with unclear error with template with only an include (refs: \fI\%#26180\fP)
  255584. .IP \(bu 2
  255585. \fBPR\fP \fI\%#26180\fP: (\fI\%jfindlay\fP) fix processing of state.template
  255586. @ \fI2015\-08\-10 18:21:38 UTC\fP
  255587. .INDENT 2.0
  255588. .IP \(bu 2
  255589. b319c5ec04 Merge pull request \fI\%#26180\fP from jfindlay/templ_env
  255590. .IP \(bu 2
  255591. 5e46ea4441 check type of matches in render_state before iterating
  255592. .IP \(bu 2
  255593. c80299b918 insert saltenv to render_state args in state.template
  255594. .UNINDENT
  255595. .IP \(bu 2
  255596. \fBISSUE\fP \fI\%#26162\fP: (\fI\%nmadhok\fP) VMware cloud driver create function failing with traceback on latest develop (refs: \fI\%#26172\fP)
  255597. .IP \(bu 2
  255598. \fBPR\fP \fI\%#26172\fP: (\fI\%nmadhok\fP) [Backport] Make sure variable is a dictionary before popping something from it.
  255599. @ \fI2015\-08\-10 16:42:50 UTC\fP
  255600. .INDENT 2.0
  255601. .IP \(bu 2
  255602. ef5a4a47f6 Merge pull request \fI\%#26172\fP from nmadhok/backport\-cloud\-fix\-26163\-2015.5
  255603. .IP \(bu 2
  255604. 0f2b5f8ac8 Make sure variable is a dictionary before popping something from it.
  255605. .UNINDENT
  255606. .IP \(bu 2
  255607. \fBISSUE\fP \fI\%#26098\fP: (\fI\%rdinoff\fP) SALT.STATES.SLACK Doc update (refs: \fI\%#26168\fP)
  255608. .IP \(bu 2
  255609. \fBPR\fP \fI\%#26168\fP: (\fI\%cachedout\fP) Fix slack docs
  255610. @ \fI2015\-08\-10 14:57:18 UTC\fP
  255611. .INDENT 2.0
  255612. .IP \(bu 2
  255613. 2545df052a Merge pull request \fI\%#26168\fP from cachedout/fix_slack_docs
  255614. .IP \(bu 2
  255615. f421a936dc Fix slack docs
  255616. .UNINDENT
  255617. .IP \(bu 2
  255618. \fBISSUE\fP \fI\%#24106\fP: (\fI\%nvx\fP) fileclient.py#get_url ignores HTTP Auth again (2015.5 regression) (refs: \fI\%#26127\fP)
  255619. .IP \(bu 2
  255620. \fBPR\fP \fI\%#26127\fP: (\fI\%garethgreenaway\fP) Fixes to salt.utils.http related to cp.get_file_str bug.
  255621. @ \fI2015\-08\-10 14:38:25 UTC\fP
  255622. .INDENT 2.0
  255623. .IP \(bu 2
  255624. 9e6b0d6165 Merge pull request \fI\%#26127\fP from garethgreenaway/2015_5_24106
  255625. .IP \(bu 2
  255626. 66f640086a one more lint error
  255627. .IP \(bu 2
  255628. 317a8ec75c Disabling pylint for W0633, auth should only ever be a sequence at this location.
  255629. .IP \(bu 2
  255630. 08eaca4fe4 lint fixes.
  255631. .IP \(bu 2
  255632. 7046b84ac8 Fixing a bug where cp.get_file_str would not work if using http(s) URLs with authentication. The salt.utils.http library in 2015.5 defaults to using urllib instead of requests and there was no authenitication support added. This PR adds authentication support. \fI\%#24106\fP
  255633. .UNINDENT
  255634. .IP \(bu 2
  255635. \fBISSUE\fP \fI\%#26141\fP: (\fI\%nmadhok\fP) salt\-cloud VMware driver fails with error in parsing configuration file (refs: \fI\%#26140\fP)
  255636. .IP \(bu 2
  255637. \fBISSUE\fP \fI\%#25809\fP: (\fI\%o\-sleep\fP) vmware cloud module error message (refs: \fI\%#26140\fP)
  255638. .IP \(bu 2
  255639. \fBISSUE\fP \fI\%#25625\fP: (\fI\%steverweber\fP) cloud vmware driver does not provide mac_address unless vmware tools is running (refs: \fI\%#26137\fP, \fI\%#26140\fP)
  255640. .IP \(bu 2
  255641. \fBPR\fP \fI\%#26140\fP: (\fI\%nmadhok\fP) VMware cloud driver fixes
  255642. @ \fI2015\-08\-10 13:15:58 UTC\fP
  255643. .INDENT 2.0
  255644. .IP \(bu 2
  255645. 3b65e1dd91 Merge pull request \fI\%#26140\fP from nmadhok/vmware\-cloud\-fixes
  255646. .IP \(bu 2
  255647. a1899b436c Correct provider name in profile example
  255648. .IP \(bu 2
  255649. 1f21876d21 Lint fixes
  255650. .IP \(bu 2
  255651. 0bd4fce9c1 Additional fixes to format_instance functions to display more information available
  255652. .IP \(bu 2
  255653. 4ee1b777e9 Change double quotes to single quotes in add_host config example
  255654. .IP \(bu 2
  255655. e132f06a5c Change double quotes to single quotes in provider configuration example
  255656. .IP \(bu 2
  255657. ad9895de07 Display error in else condition if connection is unsuccessful and does not have msg attribute. Fixes \fI\%#25809\fP
  255658. .UNINDENT
  255659. .IP \(bu 2
  255660. \fBISSUE\fP \fI\%#25625\fP: (\fI\%steverweber\fP) cloud vmware driver does not provide mac_address unless vmware tools is running (refs: \fI\%#26137\fP, \fI\%#26140\fP)
  255661. .IP \(bu 2
  255662. \fBPR\fP \fI\%#26137\fP: (\fI\%steverweber\fP) use device mac address if vmtools not active
  255663. @ \fI2015\-08\-09 03:05:36 UTC\fP
  255664. .INDENT 2.0
  255665. .IP \(bu 2
  255666. 474a250414 Merge pull request \fI\%#26137\fP from steverweber/vmware_macaddress_fix
  255667. .IP \(bu 2
  255668. 2589e389f0 use device mac address if vmtools not active
  255669. .UNINDENT
  255670. .IP \(bu 2
  255671. \fBPR\fP \fI\%#26119\fP: (\fI\%jodv\fP) Backport eauth bugfix to 2015.5
  255672. @ \fI2015\-08\-09 02:19:52 UTC\fP
  255673. .INDENT 2.0
  255674. .IP \(bu 2
  255675. 8a33797737 Merge pull request \fI\%#26119\fP from jodv/backport_eauth_bugfix
  255676. .IP \(bu 2
  255677. e1a7bb5e7b fix pylint error (unnecessary \(aqfinally\(aq clause may swallow exceptions unintentionally)
  255678. .IP \(bu 2
  255679. 5b5b4d8fe9 Fix issue with mixed user and group eauth perms
  255680. .IP \(bu 2
  255681. 0d2c6a67a5 Return all relevant perms on login
  255682. .UNINDENT
  255683. .IP \(bu 2
  255684. \fBPR\fP \fI\%#26135\fP: (\fI\%cro\fP) Fix proxy minions in 2015.5 and significantly update documentation.
  255685. @ \fI2015\-08\-09 02:19:21 UTC\fP
  255686. .INDENT 2.0
  255687. .IP \(bu 2
  255688. 2b8dcce0ca Merge pull request \fI\%#26135\fP from cro/pm20155_2
  255689. .IP \(bu 2
  255690. 28329fff55 These tests make no sense now that the proxy interface is module based and not object based.
  255691. .IP \(bu 2
  255692. b17b65d4de Fix lint.
  255693. .IP \(bu 2
  255694. f4263c8f17 Fix lint.
  255695. .IP \(bu 2
  255696. 6927251c09 Fix lint.
  255697. .IP \(bu 2
  255698. 08f1a43ff0 Fix lint.
  255699. .IP \(bu 2
  255700. 8261158b5a Fix lint.
  255701. .IP \(bu 2
  255702. b5e643b9cd Whoops...Don\(aqt log the entire proxy dictionary\-\-might have sensitive stuff in it.
  255703. .IP \(bu 2
  255704. 2acf3c5aa3 Remove some debugging statements, change some others to \(aqinfo\(aq level.
  255705. .IP \(bu 2
  255706. 37de6af686 More proxy minion updates
  255707. .IP \(bu 2
  255708. e79a182108 More proxy minion updates
  255709. .IP \(bu 2
  255710. 3b746ac2f6 Update to reflect refactor to LazyLoader
  255711. .IP \(bu 2
  255712. 5d390d3a5f Updates post meeting with Rick
  255713. .IP \(bu 2
  255714. d1213ce4a0 Updates post meeting with Rick
  255715. .IP \(bu 2
  255716. dd0b7c6937 Fix proxyobject confusion, now called proxymodule
  255717. .IP \(bu 2
  255718. 9b1599d436 Update to reflect refactor to LazyLoader
  255719. .UNINDENT
  255720. .IP \(bu 2
  255721. \fBPR\fP \fI\%#26132\fP: (\fI\%TheBigBear\fP) minor edit
  255722. @ \fI2015\-08\-08 21:05:34 UTC\fP
  255723. .INDENT 2.0
  255724. .IP \(bu 2
  255725. 2705b4a36a Merge pull request \fI\%#26132\fP from TheBigBear/patch\-5
  255726. .IP \(bu 2
  255727. 1d624d77bc minor edit
  255728. .UNINDENT
  255729. .IP \(bu 2
  255730. \fBISSUE\fP \fI\%#25915\fP: (\fI\%ari\fP) FreeBSD pkg install fails (refs: \fI\%#26133\fP)
  255731. .IP \(bu 2
  255732. \fBPR\fP \fI\%#26133\fP: (\fI\%amontalban\fP) Fixed \fI\%#25915\fP in salt/modules/pkgng.py and salt/states/pkg.py
  255733. @ \fI2015\-08\-08 21:05:05 UTC\fP
  255734. .INDENT 2.0
  255735. .IP \(bu 2
  255736. 3eac28f0f9 Merge pull request \fI\%#26133\fP from amontalban/fix\-bug\-25915
  255737. .IP \(bu 2
  255738. 6b0f4fca05 Fixed \fI\%#25915\fP in salt/modules/pkgng.py and salt/states/pkg.py
  255739. .UNINDENT
  255740. .IP \(bu 2
  255741. \fBPR\fP \fI\%#26111\fP: (\fI\%anlutro\fP) Better error messages when virtualenv creation fails
  255742. @ \fI2015\-08\-07 21:42:09 UTC\fP
  255743. .INDENT 2.0
  255744. .IP \(bu 2
  255745. 19c42b8b3a Merge pull request \fI\%#26111\fP from alprs/fix\-virtualenv_fail_message
  255746. .IP \(bu 2
  255747. b2913acc48 virtualenv: better error messages when creation fails
  255748. .UNINDENT
  255749. .IP \(bu 2
  255750. \fBISSUE\fP \fI\%#26093\fP: (\fI\%freedba\fP) archive.tar bug (refs: \fI\%#26110\fP)
  255751. .IP \(bu 2
  255752. \fBPR\fP \fI\%#26110\fP: (\fI\%jfindlay\fP) check for sources before adding them to cmd str
  255753. @ \fI2015\-08\-07 21:33:23 UTC\fP
  255754. .INDENT 2.0
  255755. .IP \(bu 2
  255756. 6d2835b464 Merge pull request \fI\%#26110\fP from jfindlay/tar_sources
  255757. .IP \(bu 2
  255758. 1b2f8905eb check for sources before adding them to cmd str
  255759. .UNINDENT
  255760. .IP \(bu 2
  255761. \fBPR\fP \fI\%#26106\fP: (\fI\%vr\-jack\fP) Update __init__.py
  255762. @ \fI2015\-08\-07 21:15:55 UTC\fP
  255763. .INDENT 2.0
  255764. .IP \(bu 2
  255765. 2d271b3612 Merge pull request \fI\%#26106\fP from vr\-jack/2015.5
  255766. .IP \(bu 2
  255767. 5664de6610 Update __init__.py
  255768. .UNINDENT
  255769. .IP \(bu 2
  255770. \fBISSUE\fP \fI\%#25983\fP: (\fI\%jmdcal\fP) Trying to get md5 of local zip (refs: \fI\%#25984\fP)
  255771. .IP \(bu 2
  255772. \fBPR\fP \fI\%#26101\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25984\fP to 2015.5
  255773. @ \fI2015\-08\-07 18:56:26 UTC\fP
  255774. .INDENT 2.0
  255775. .IP \(bu 2
  255776. \fBPR\fP \fI\%#25984\fP: (\fI\%jmdcal\fP) Support local files without md5sum (refs: \fI\%#26101\fP)
  255777. .IP \(bu 2
  255778. 40d41741c1 Merge pull request \fI\%#26101\fP from rallytime/bp\-25984
  255779. .IP \(bu 2
  255780. 3d279c0713 Pylint Fix
  255781. .IP \(bu 2
  255782. cced16a9f4 Support local files without md5sum
  255783. .UNINDENT
  255784. .IP \(bu 2
  255785. \fBPR\fP \fI\%#26080\fP: (\fI\%techhat\fP) Fix string checking in s3fs
  255786. @ \fI2015\-08\-06 23:36:09 UTC\fP
  255787. .INDENT 2.0
  255788. .IP \(bu 2
  255789. 0d3c2d549e Merge pull request \fI\%#26080\fP from techhat/fixlower
  255790. .IP \(bu 2
  255791. 8717a36963 Fix string checking in s3fs
  255792. .UNINDENT
  255793. .IP \(bu 2
  255794. \fBISSUE\fP \fI\%#26039\fP: (\fI\%basepi\fP) Update scheduler docs to use orchestrate instead of overstate (refs: \fI\%#26079\fP)
  255795. .IP \(bu 2
  255796. \fBPR\fP \fI\%#26079\fP: (\fI\%cachedout\fP) Update docs to remove state.over
  255797. @ \fI2015\-08\-06 23:35:26 UTC\fP
  255798. .INDENT 2.0
  255799. .IP \(bu 2
  255800. dc9c9b5a34 Merge pull request \fI\%#26079\fP from cachedout/issue_26039
  255801. .IP \(bu 2
  255802. f03f460af2 Update docs to remove state.over
  255803. .INDENT 2.0
  255804. .INDENT 3.5
  255805. .INDENT 0.0
  255806. .IP \(bu 2
  255807. 89d8faaeb1 Added python_shell=True, quoted user input
  255808. .UNINDENT
  255809. .UNINDENT
  255810. .UNINDENT
  255811. .UNINDENT
  255812. .IP \(bu 2
  255813. \fBPR\fP \fI\%#26058\fP: (\fI\%opdude\fP) Fix choco version on chocolatey versions below 0.9.9
  255814. @ \fI2015\-08\-06 18:50:10 UTC\fP
  255815. .INDENT 2.0
  255816. .IP \(bu 2
  255817. aa023f25b8 Merge pull request \fI\%#26058\fP from Unity\-Technologies/hotfix/fix\-choco\-pkg\-version\-2015\-5
  255818. .IP \(bu 2
  255819. beddb96b2b Fix choco version on chocolatey versions below 0.9.9
  255820. .UNINDENT
  255821. .IP \(bu 2
  255822. \fBPR\fP \fI\%#26068\fP: (\fI\%jfindlay\fP) fix autoruns.list looking in wrong directory
  255823. @ \fI2015\-08\-06 18:49:48 UTC\fP
  255824. .INDENT 2.0
  255825. .IP \(bu 2
  255826. fbe2584abe Merge pull request \fI\%#26068\fP from jfindlay/auto_fix
  255827. .IP \(bu 2
  255828. 1e9a850e23 fix autoruns.list looking in wrong directory
  255829. .UNINDENT
  255830. .IP \(bu 2
  255831. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#640\fP: (\fI\%Deshke\fP) salt\-minion install bug on ubuntu 14.04 tornado>=4.0 (refs: \fI\%#26065\fP)
  255832. .IP \(bu 2
  255833. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#633\fP: (\fI\%neilmb\fP) Bootstrap install fails on python\-requests dependency (refs: \fI\%#26065\fP)
  255834. .IP \(bu 2
  255835. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#632\fP: (\fI\%JulianGindi\fP) python\-requests : Depends: python\-urllib3 (>= 1.7.1) but it is not installable (refs: \fI\%#26065\fP)
  255836. .IP \(bu 2
  255837. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#631\fP: (\fI\%DavidJFelix\fP) Stable broken in 15.04 even with \-P (refs: \fI\%#26065\fP)
  255838. .IP \(bu 2
  255839. \fBISSUE\fP \fI\%#636\fP: (\fI\%pille\fP) restict access to salt:// filesystem (refs: #\(gasaltstack/salt\-bootstrap#638\(ga_)
  255840. .IP \(bu 2
  255841. \fBISSUE\fP \fI\%#613\fP: (\fI\%thatch45\fP) Add timeout option to publish.publish (refs: #\(gasaltstack/salt\-bootstrap#634\(ga_)
  255842. .INDENT 2.0
  255843. .IP \(bu 2
  255844. \fBPR\fP \fI\%saltstack/salt\-bootstrap#638\fP: (\fI\%stanislavb\fP) Use prefix /usr for centos git install (refs: \fI\%#26065\fP)
  255845. .IP \(bu 2
  255846. \fBPR\fP \fI\%saltstack/salt\-bootstrap#634\fP: (\fI\%BretFisher\fP) bugfix: exit git root before removing it (refs: \fI\%#26065\fP)
  255847. .UNINDENT
  255848. .IP \(bu 2
  255849. \fBPR\fP \fI\%#26065\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap stable release v2015.06.08
  255850. @ \fI2015\-08\-06 17:09:35 UTC\fP
  255851. .INDENT 2.0
  255852. .IP \(bu 2
  255853. 5570408597 Merge pull request \fI\%#26065\fP from s0undt3ch/hotfix/bootstrap\-script\-2015.5
  255854. .IP \(bu 2
  255855. a430a62b01 Update to latest bootstrap stable release v2015.06.08
  255856. .UNINDENT
  255857. .IP \(bu 2
  255858. \fBISSUE\fP \fI\%#25994\fP: (\fI\%gmcwhistler\fP) module.ilo tempfile creation in __execute_cmd results in TypeError: cannot concatenate \(aqstr\(aq and \(aqint\(aq objects (refs: \fI\%#26061\fP)
  255859. .IP \(bu 2
  255860. \fBPR\fP \fI\%#26061\fP: (\fI\%gmcwhistler\fP) Patch for issue \fI\%#25994\fP
  255861. @ \fI2015\-08\-06 17:07:34 UTC\fP
  255862. .INDENT 2.0
  255863. .IP \(bu 2
  255864. 83a1922196 Merge pull request \fI\%#26061\fP from gmcwhistler/2015.5
  255865. .IP \(bu 2
  255866. b9e89d0f2d Patch for issue \fI\%#25994\fP
  255867. .UNINDENT
  255868. .IP \(bu 2
  255869. \fBISSUE\fP \fI\%#26063\fP: (\fI\%saltstack\-bot\fP) not working with salt\-cloud shows unknown locale error (refs: \fI\%#26064\fP)
  255870. .IP \(bu 2
  255871. \fBPR\fP \fI\%#26064\fP: (\fI\%s0undt3ch\fP) Don\(aqt stacktrace when trying to get the default locale.
  255872. @ \fI2015\-08\-06 16:11:05 UTC\fP
  255873. .INDENT 2.0
  255874. .IP \(bu 2
  255875. 073fb2bdea Merge pull request \fI\%#26064\fP from s0undt3ch/issues/26063\-unknown\-locale
  255876. .IP \(bu 2
  255877. 8c6ab78b1d Don\(aqt stacktrace when trying to get the default locale.
  255878. .UNINDENT
  255879. .IP \(bu 2
  255880. \fBPR\fP \fI\%#26048\fP: (\fI\%jacobhammons\fP) Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  255881. @ \fI2015\-08\-05 22:59:50 UTC\fP
  255882. .INDENT 2.0
  255883. .IP \(bu 2
  255884. 0f44761d6e Merge pull request \fI\%#26048\fP from jacobhammons/win\-downloads2
  255885. .IP \(bu 2
  255886. 75243b61cf Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  255887. .UNINDENT
  255888. .IP \(bu 2
  255889. \fBISSUE\fP \fI\%#25616\fP: (\fI\%rallytime\fP) [2015.5] Provisioning Linodes Stacktraces (refs: \fI\%#26044\fP)
  255890. .IP \(bu 2
  255891. \fBPR\fP \fI\%#26044\fP: (\fI\%rallytime\fP) Make sure the key we\(aqre comparing is also lowercase
  255892. @ \fI2015\-08\-05 19:23:54 UTC\fP
  255893. .INDENT 2.0
  255894. .IP \(bu 2
  255895. dedcadc37e Merge pull request \fI\%#26044\fP from rallytime/fix\-25616
  255896. .IP \(bu 2
  255897. c2e3803810 Make sure the key we\(aqre comparing is also lowercase
  255898. .UNINDENT
  255899. .IP \(bu 2
  255900. \fBPR\fP \fI\%#26042\fP: (\fI\%jfindlay\fP) fix test mode logic in state docs
  255901. @ \fI2015\-08\-05 19:23:07 UTC\fP
  255902. .INDENT 2.0
  255903. .IP \(bu 2
  255904. f005bdfce6 Merge pull request \fI\%#26042\fP from jfindlay/result
  255905. .IP \(bu 2
  255906. a83059ca01 fix test mode logic in state docs
  255907. .UNINDENT
  255908. .IP \(bu 2
  255909. \fBISSUE\fP \fI\%#24460\fP: (\fI\%nicholascapo\fP) Survey runner does not follow \fI\-\-out\fP flag (refs: \fI\%#26036\fP)
  255910. .IP \(bu 2
  255911. \fBPR\fP \fI\%#26036\fP: (\fI\%nicholascapo\fP) survey.hash: Remove manually printed text
  255912. @ \fI2015\-08\-05 19:21:59 UTC\fP
  255913. .INDENT 2.0
  255914. .IP \(bu 2
  255915. 51ab6864b7 Merge pull request \fI\%#26036\fP from nicholascapo/survey.hash_follow_out_flag
  255916. .IP \(bu 2
  255917. 439ee9831c survey.hash: Remove manually printed text
  255918. .UNINDENT
  255919. .IP \(bu 2
  255920. \fBPR\fP \fI\%#26030\fP: (\fI\%opdude\fP) Fix a bug in choco version that returned odd data
  255921. @ \fI2015\-08\-05 16:30:25 UTC\fP
  255922. .INDENT 2.0
  255923. .IP \(bu 2
  255924. 6a4d18eba6 Merge pull request \fI\%#26030\fP from Unity\-Technologies/hotfix/fix\-choco\-pkg\-version\-2015\-5
  255925. .IP \(bu 2
  255926. 3dd96c0638 Fix a bug in choco version that returned odd data
  255927. .UNINDENT
  255928. .IP \(bu 2
  255929. \fBPR\fP \fI\%#26032\fP: (\fI\%jfindlay\fP) add test logic to state reult doc
  255930. @ \fI2015\-08\-05 16:28:32 UTC\fP
  255931. .INDENT 2.0
  255932. .IP \(bu 2
  255933. c96d3bb55e Merge pull request \fI\%#26032\fP from jfindlay/result
  255934. .IP \(bu 2
  255935. 0fd180e106 add test logic to state reult doc
  255936. .UNINDENT
  255937. .IP \(bu 2
  255938. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#26031\fP, \fI\%#25750\fP)
  255939. .IP \(bu 2
  255940. \fBPR\fP \fI\%#26031\fP: (\fI\%alekti\fP) Revert "Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP"
  255941. @ \fI2015\-08\-05 15:32:01 UTC\fP
  255942. .INDENT 2.0
  255943. .IP \(bu 2
  255944. bd14d85636 Merge pull request \fI\%#26031\fP from alekti/merge\-pull\-25750\-to\-2015.5
  255945. .IP \(bu 2
  255946. 5a7cab4dcc Revert "Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&."
  255947. .UNINDENT
  255948. .IP \(bu 2
  255949. \fBPR\fP \fI\%#26021\fP: (\fI\%anlutro\fP) Documentation: Specify versionadded for git.present shared argument
  255950. @ \fI2015\-08\-05 14:17:38 UTC\fP
  255951. .INDENT 2.0
  255952. .IP \(bu 2
  255953. d55e6e5fe9 Merge pull request \fI\%#26021\fP from alprs/docs\-git_present_shared_versionadded
  255954. .IP \(bu 2
  255955. 8fa678aaa7 specify versionadded for git.present shared argument
  255956. .UNINDENT
  255957. .IP \(bu 2
  255958. \fBISSUE\fP \fI\%#25701\fP: (\fI\%alekti\fP) Issue \fI\%#23764\fP regression (refs: \fI\%#25750\fP)
  255959. .IP \(bu 2
  255960. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#26031\fP, \fI\%#25750\fP)
  255961. .IP \(bu 2
  255962. \fBPR\fP \fI\%#26020\fP: (\fI\%alekti\fP) Correctly resolve conflict merging pull 25750 to 2015.5
  255963. @ \fI2015\-08\-05 14:16:58 UTC\fP
  255964. .INDENT 2.0
  255965. .IP \(bu 2
  255966. \fBPR\fP \fI\%#25750\fP: (\fI\%alekti\fP) Add file as supported protocol for file source_hash. Fixes \fI\%#25701\fP\&. (refs: \fI\%#26020\fP)
  255967. .IP \(bu 2
  255968. 5e17c5d230 Merge pull request \fI\%#26020\fP from alekti/merge\-pull\-25750\-to\-2015.5
  255969. .IP \(bu 2
  255970. 4b9d7426cc Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  255971. .UNINDENT
  255972. .IP \(bu 2
  255973. \fBISSUE\fP \fI\%#22241\fP: (\fI\%masterkorp\fP) Salt master not properly generating the map (refs: \fI\%#25358\fP)
  255974. .IP \(bu 2
  255975. \fBPR\fP \fI\%#26016\fP: (\fI\%basepi\fP) Revert "Deep merge of pillar lists"
  255976. @ \fI2015\-08\-05 04:59:52 UTC\fP
  255977. .INDENT 2.0
  255978. .IP \(bu 2
  255979. \fBPR\fP \fI\%#25358\fP: (\fI\%dkiser\fP) Deep merge of pillar lists (refs: \fI\%#26016\fP)
  255980. .IP \(bu 2
  255981. 53f7aadcd7 Merge pull request \fI\%#26016\fP from basepi/revert.25358
  255982. .IP \(bu 2
  255983. 8a0e8e0460 Revert "Deep merge of pillar lists"
  255984. .UNINDENT
  255985. .IP \(bu 2
  255986. \fBISSUE\fP \fI\%#12255\fP: (\fI\%eliasp\fP) \(aqsystem.set_computer_desc\(aq fails with non\-ASCII chars (refs: \fI\%#25992\fP)
  255987. .IP \(bu 2
  255988. \fBPR\fP \fI\%#25992\fP: (\fI\%twangboy\fP) Refactor win_system.py
  255989. @ \fI2015\-08\-05 04:54:18 UTC\fP
  255990. .INDENT 2.0
  255991. .IP \(bu 2
  255992. 200bff7538 Merge pull request \fI\%#25992\fP from twangboy/fix_12255
  255993. .IP \(bu 2
  255994. 0502897635 Fixed the lint... again
  255995. .IP \(bu 2
  255996. 6f85d6b9af Fixed some lint
  255997. .IP \(bu 2
  255998. 4195803e56 Merge pull request \fI\%#3\fP from jfindlay/win_sys
  255999. .INDENT 2.0
  256000. .IP \(bu 2
  256001. 9156bbd33e update win_system exec mod unit tests
  256002. .UNINDENT
  256003. .IP \(bu 2
  256004. c92add95b5 Gated ctypes import, fixed some lint
  256005. .IP \(bu 2
  256006. d7670fda0a Refactor win_service.py
  256007. .UNINDENT
  256008. .IP \(bu 2
  256009. \fBISSUE\fP \fI\%#25948\fP: (\fI\%twangboy\fP) Fix uncomment function to handle spaces (refs: \fI\%#26002\fP)
  256010. .IP \(bu 2
  256011. \fBPR\fP \fI\%#26002\fP: (\fI\%twangboy\fP) Fixed regex to account for comment character followed by whitespace
  256012. @ \fI2015\-08\-04 22:28:11 UTC\fP
  256013. .INDENT 2.0
  256014. .IP \(bu 2
  256015. c168159750 Merge pull request \fI\%#26002\fP from twangboy/fix_25948
  256016. .IP \(bu 2
  256017. ba1a57e582 Fixed regex to account for comment character followed by whitespace
  256018. .UNINDENT
  256019. .IP \(bu 2
  256020. \fBISSUE\fP \fI\%#25949\fP: (\fI\%godlike64\fP) layman.add does not work with unofficial overlays (refs: \fI\%#25970\fP)
  256021. .IP \(bu 2
  256022. \fBPR\fP \fI\%#25970\fP: (\fI\%jfindlay\fP) accept addition of layman overlay
  256023. @ \fI2015\-08\-04 15:42:28 UTC\fP
  256024. .INDENT 2.0
  256025. .IP \(bu 2
  256026. 4ad2422da1 Merge pull request \fI\%#25970\fP from jfindlay/layman
  256027. .IP \(bu 2
  256028. 237a9e18b3 accept addition of layman overlay
  256029. .UNINDENT
  256030. .IP \(bu 2
  256031. \fBPR\fP \fI\%#25971\fP: (\fI\%basepi\fP) [2015.5] salt.modules.reg Add spaces for strings split across multiple lines
  256032. @ \fI2015\-08\-04 15:39:48 UTC\fP
  256033. .INDENT 2.0
  256034. .IP \(bu 2
  256035. f136c6c1c0 Merge pull request \fI\%#25971\fP from basepi/reg.typos
  256036. .IP \(bu 2
  256037. bb001a6c0e Add spaces for strings split across multiple lines
  256038. .UNINDENT
  256039. .IP \(bu 2
  256040. \fBPR\fP \fI\%#25990\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25976\fP to 2015.5
  256041. @ \fI2015\-08\-04 14:36:53 UTC\fP
  256042. .INDENT 2.0
  256043. .IP \(bu 2
  256044. \fBPR\fP \fI\%#25976\fP: (\fI\%fleaflicker\fP) Typo in help output (refs: \fI\%#25990\fP)
  256045. .IP \(bu 2
  256046. 6383dd8a7d Merge pull request \fI\%#25990\fP from rallytime/bp\-25976
  256047. .IP \(bu 2
  256048. 5f6dc0cc85 Typo in help output
  256049. .UNINDENT
  256050. .IP \(bu 2
  256051. \fBPR\fP \fI\%#25996\fP: (\fI\%attiasr\fP) fix msiexec package remove
  256052. @ \fI2015\-08\-04 14:36:31 UTC\fP
  256053. .INDENT 2.0
  256054. .IP \(bu 2
  256055. 9f8bf75dc0 Merge pull request \fI\%#25996\fP from attiasr/patch\-1
  256056. .IP \(bu 2
  256057. 5fbc5fcd94 fix msiexec package remove
  256058. .UNINDENT
  256059. .IP \(bu 2
  256060. \fBISSUE\fP \fI\%#25863\fP: (\fI\%peterdemin\fP) pkg.installed fails on already installed package if it is in versionlock.list (refs: \fI\%#25864\fP)
  256061. .IP \(bu 2
  256062. \fBPR\fP \fI\%#25966\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25864\fP to 2015.5
  256063. @ \fI2015\-08\-03 18:48:26 UTC\fP
  256064. .INDENT 2.0
  256065. .IP \(bu 2
  256066. \fBPR\fP \fI\%#25864\fP: (\fI\%peterdemin\fP) \fI\%#25863\fP state.pkg.installed fix (refs: \fI\%#25966\fP)
  256067. .IP \(bu 2
  256068. 2dca8d959b Merge pull request \fI\%#25966\fP from rallytime/bp\-25864
  256069. .IP \(bu 2
  256070. 0f7f9637b4 \fI\%#25863\fP fix \- state.pkg: do preflight check only for non\-installed packages
  256071. .UNINDENT
  256072. .IP \(bu 2
  256073. \fBPR\fP \fI\%#25967\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25917\fP to 2015.5
  256074. @ \fI2015\-08\-03 18:48:02 UTC\fP
  256075. .INDENT 2.0
  256076. .IP \(bu 2
  256077. \fBPR\fP \fI\%#25917\fP: (\fI\%jmdcal\fP) adding missing format string (refs: \fI\%#25967\fP)
  256078. .IP \(bu 2
  256079. a6d8e541ed Merge pull request \fI\%#25967\fP from rallytime/bp\-25917
  256080. .IP \(bu 2
  256081. 82b7e14a1f adding missing format string
  256082. .UNINDENT
  256083. .IP \(bu 2
  256084. \fBPR\fP \fI\%#25895\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  256085. @ \fI2015\-08\-03 17:12:37 UTC\fP
  256086. .INDENT 2.0
  256087. .IP \(bu 2
  256088. 87d028b302 Merge pull request \fI\%#25895\fP from basepi/merge\-forward\-2015.5
  256089. .IP \(bu 2
  256090. 56e43c8f88 Fix lint
  256091. .IP \(bu 2
  256092. 93a182d9ea Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  256093. .INDENT 2.0
  256094. .IP \(bu 2
  256095. d93eb87c16 Merge pull request \fI\%#25750\fP from alekti/2014.7
  256096. .INDENT 2.0
  256097. .IP \(bu 2
  256098. 9ec3ae96d4 Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  256099. .UNINDENT
  256100. .IP \(bu 2
  256101. 3a15df22ac Merge pull request \fI\%#25704\fP from cachedout/master_type_2014_7
  256102. .INDENT 2.0
  256103. .IP \(bu 2
  256104. c95886c9a7 Ensure prior alignment with master_type in 2014.7
  256105. .UNINDENT
  256106. .IP \(bu 2
  256107. d1b9362a73 Merge pull request \fI\%#25657\fP from MrCitron/pattern\-carbon\-returner\-2014.7
  256108. .INDENT 2.0
  256109. .IP \(bu 2
  256110. f8b2f8079f Add the ability to specify a base pattern for metrics path used by the carbon returner
  256111. .UNINDENT
  256112. .IP \(bu 2
  256113. 9634351fc2 Merge pull request \fI\%#25633\fP from AkhterAli/2014.7
  256114. .INDENT 2.0
  256115. .IP \(bu 2
  256116. 29be4bbe11 Update loader.py
  256117. .UNINDENT
  256118. .UNINDENT
  256119. .UNINDENT
  256120. .IP \(bu 2
  256121. \fBISSUE\fP \fI\%#25850\fP: (\fI\%ssgward\fP) Need to add packages to \-\-versions\-report (refs: \fI\%#25941\fP)
  256122. .IP \(bu 2
  256123. \fBPR\fP \fI\%#25941\fP: (\fI\%jfindlay\fP) add timelib to dependency versions
  256124. @ \fI2015\-08\-03 12:23:42 UTC\fP
  256125. .INDENT 2.0
  256126. .IP \(bu 2
  256127. 98955057e0 Merge pull request \fI\%#25941\fP from jfindlay/time_lib
  256128. .IP \(bu 2
  256129. 464f7a404c add timelib to dependency versions
  256130. .UNINDENT
  256131. .IP \(bu 2
  256132. \fBPR\fP \fI\%#25951\fP: (\fI\%garethgreenaway\fP) Log when event.fire and event.fire_master fail.
  256133. @ \fI2015\-08\-03 00:19:45 UTC\fP
  256134. .INDENT 2.0
  256135. .IP \(bu 2
  256136. dcc6883b24 Merge pull request \fI\%#25951\fP from garethgreenaway/event_fire_failed_log_why
  256137. .IP \(bu 2
  256138. 7f20454427 If we\(aqre unable to fire an event, log the cause so we know what happened
  256139. .UNINDENT
  256140. .IP \(bu 2
  256141. \fBISSUE\fP \fI\%#25838\fP: (\fI\%grep4linux\fP) docs disable_modules documentation typo (refs: \fI\%#25942\fP)
  256142. .IP \(bu 2
  256143. \fBPR\fP \fI\%#25942\fP: (\fI\%jfindlay\fP) typo in minion doc
  256144. @ \fI2015\-07\-31 23:34:55 UTC\fP
  256145. .INDENT 2.0
  256146. .IP \(bu 2
  256147. 4143cec3bf Merge pull request \fI\%#25942\fP from saltstack/lover
  256148. .IP \(bu 2
  256149. 7e121de907 Update minion.rst
  256150. .UNINDENT
  256151. .IP \(bu 2
  256152. \fBPR\fP \fI\%#25938\fP: (\fI\%jacobhammons\fP) Doc on using syndic with multimaster
  256153. @ \fI2015\-07\-31 23:05:05 UTC\fP
  256154. .INDENT 2.0
  256155. .IP \(bu 2
  256156. \fBPR\fP \fI\%#14690\fP: (\fI\%jacksontj\fP) Multi syndic (refs: \fI\%#25938\fP)
  256157. .IP \(bu 2
  256158. 1f20c065b8 Merge pull request \fI\%#25938\fP from jacobhammons/syndic\-multimaster
  256159. .IP \(bu 2
  256160. ac0a8ff711 Doc on using syndic with multimaster
  256161. .UNINDENT
  256162. .IP \(bu 2
  256163. \fBISSUE\fP \fI\%#25839\fP: (\fI\%twangboy\fP) ALLUSERS="1" should be a default when installing MSI\(aqs (refs: \fI\%#25848\fP)
  256164. .IP \(bu 2
  256165. \fBPR\fP \fI\%#25848\fP: (\fI\%twangboy\fP) Added allusers="1" when installing msi
  256166. @ \fI2015\-07\-31 20:33:17 UTC\fP
  256167. .INDENT 2.0
  256168. .IP \(bu 2
  256169. 18a9e65e1f Merge pull request \fI\%#25848\fP from twangboy/fix_25839
  256170. .IP \(bu 2
  256171. e797739a1b Removed normalize_name function
  256172. .IP \(bu 2
  256173. ad7fdda68b Adder allusers="1" when installing msi
  256174. .UNINDENT
  256175. .IP \(bu 2
  256176. \fBPR\fP \fI\%#25898\fP: (\fI\%jfindlay\fP) clarify and expand syndic docs
  256177. @ \fI2015\-07\-31 20:01:23 UTC\fP
  256178. .INDENT 2.0
  256179. .IP \(bu 2
  256180. de0a0593c2 Merge pull request \fI\%#25898\fP from jfindlay/syndic_doc
  256181. .IP \(bu 2
  256182. 4795952847 rework syndic doc
  256183. .IP \(bu 2
  256184. a25d0eabef update syndic doc to conform to style
  256185. .UNINDENT
  256186. .IP \(bu 2
  256187. \fBISSUE\fP \fI\%#25852\fP: (\fI\%UtahDave\fP) Salt loader is not loading Salt vars in reactor python renderer (refs: \fI\%#25927\fP)
  256188. .IP \(bu 2
  256189. \fBPR\fP \fI\%#25927\fP: (\fI\%jacksontj\fP) Pass actual renderers to the Reactor\(aqs Compiler
  256190. @ \fI2015\-07\-31 20:00:17 UTC\fP
  256191. .INDENT 2.0
  256192. .IP \(bu 2
  256193. d1f3da548a Merge pull request \fI\%#25927\fP from jacksontj/2015.5
  256194. .IP \(bu 2
  256195. cf7479aa0a Pass actual renderers to the Reactor\(aqs Compiler
  256196. .UNINDENT
  256197. .IP \(bu 2
  256198. \fBISSUE\fP \fI\%#25810\fP: (\fI\%nvx\fP) winpkg highstate fails when a new package name contains a unicide character (refs: \fI\%#25921\fP)
  256199. .IP \(bu 2
  256200. \fBPR\fP \fI\%#25921\fP: (\fI\%cachedout\fP) Handle non\-ascii in state log
  256201. @ \fI2015\-07\-31 17:41:30 UTC\fP
  256202. .INDENT 2.0
  256203. .IP \(bu 2
  256204. 331fc121a8 Merge pull request \fI\%#25921\fP from cachedout/issue_25810
  256205. .IP \(bu 2
  256206. 8074c545ea Handle non\-ascii in state log
  256207. .UNINDENT
  256208. .IP \(bu 2
  256209. \fBPR\fP \fI\%#25919\fP: (\fI\%TheBigBear\fP) Minor update to msi un\-installer info
  256210. @ \fI2015\-07\-31 17:39:48 UTC\fP
  256211. .INDENT 2.0
  256212. .IP \(bu 2
  256213. 20fb8da8d4 Merge pull request \fI\%#25919\fP from TheBigBear/patch\-4
  256214. .IP \(bu 2
  256215. c994d22696 Minor update to msi un\-installer info
  256216. .IP \(bu 2
  256217. \fBPR\fP \fI\%#25982\fP: (\fI\%sjorge\fP) salt.modules.smartos_* limit to global zone only (refs: \fI\%#25905\fP)
  256218. .UNINDENT
  256219. .IP \(bu 2
  256220. \fBPR\fP \fI\%#25905\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25982\fP to 2015.5
  256221. @ \fI2015\-07\-30 23:24:19 UTC\fP
  256222. .INDENT 2.0
  256223. .IP \(bu 2
  256224. \fBPR\fP \fI\%#25892\fP: (\fI\%TheBigBear\fP) Update 7\-zip msi un\-installer instructions (refs: \fI\%#25905\fP)
  256225. .IP \(bu 2
  256226. 9a569da4ee Merge pull request \fI\%#25905\fP from rallytime/bp\-25892
  256227. .IP \(bu 2
  256228. 333fbdde30 Update 7\-zip msi un\-installer instructions
  256229. .UNINDENT
  256230. .IP \(bu 2
  256231. \fBISSUE\fP \fI\%#25577\fP: (\fI\%yellow1912\fP) Wrong indentation in document (refs: \fI\%#25696\fP)
  256232. .IP \(bu 2
  256233. \fBPR\fP \fI\%#25890\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25698\fP to 2015.5
  256234. @ \fI2015\-07\-30 23:12:09 UTC\fP
  256235. .INDENT 2.0
  256236. .IP \(bu 2
  256237. \fBPR\fP \fI\%#25698\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25659\fP to 2015.8 (refs: \fI\%#25890\fP)
  256238. .IP \(bu 2
  256239. \fBPR\fP \fI\%#25696\fP: (\fI\%AkhterAli\fP) Update schedule.py
  256240. .IP \(bu 2
  256241. \fBPR\fP \fI\%#25659\fP: (\fI\%isbm\fP) Bugfix: crash at getting non\-existing repo (refs: \fI\%#25698\fP)
  256242. .IP \(bu 2
  256243. 6a738c5c41 Merge pull request \fI\%#25890\fP from rallytime/bp\-25696
  256244. .IP \(bu 2
  256245. 7d68e49d98 Update schedule.py
  256246. .UNINDENT
  256247. .IP \(bu 2
  256248. \fBISSUE\fP \fI\%#25650\fP: (\fI\%jacksontj\fP) state.running documentation is incorrect (refs: \fI\%#25894\fP)
  256249. .IP \(bu 2
  256250. \fBISSUE\fP \fI\%#24042\fP: (\fI\%whiteinge\fP) The state_events setting is not documented (refs: \fI\%#25894\fP)
  256251. .IP \(bu 2
  256252. \fBISSUE\fP \fI\%#23788\fP: (\fI\%k5jj\fP) functions in drac.py module do not match documentation (refs: \fI\%#25894\fP)
  256253. .IP \(bu 2
  256254. \fBISSUE\fP \fI\%#21296\fP: (\fI\%Lothiraldan\fP) Possible minion enumeration using saltutil.find_job and eauth (refs: \fI\%#25894\fP)
  256255. .IP \(bu 2
  256256. \fBPR\fP \fI\%#25894\fP: (\fI\%jacobhammons\fP) Minor doc bug fixes
  256257. @ \fI2015\-07\-30 23:02:34 UTC\fP
  256258. .INDENT 2.0
  256259. .IP \(bu 2
  256260. 8abb21e206 Merge pull request \fI\%#25894\fP from jacobhammons/bug\-fixes
  256261. .IP \(bu 2
  256262. 3f3db4bd8e Additions for \fI\%#24042\fP
  256263. .IP \(bu 2
  256264. db2129b199 Minor doc bug fixes Refs \fI\%#24042\fP Refs \fI\%#25650\fP Refs \fI\%#21296\fP Refs \fI\%#23788\fP
  256265. .UNINDENT
  256266. .IP \(bu 2
  256267. \fBISSUE\fP \fI\%#24036\fP: (\fI\%arthurlogilab\fP) [salt\-cloud] Protect against passing command line arguments as names for the \-\-destroy command in map files (refs: \fI\%#25877\fP)
  256268. .IP \(bu 2
  256269. \fBPR\fP \fI\%#25877\fP: (\fI\%rallytime\fP) Protect against passing a map file in addition to VM names with \-\-destroy
  256270. @ \fI2015\-07\-30 21:55:45 UTC\fP
  256271. .INDENT 2.0
  256272. .IP \(bu 2
  256273. 59e1680182 Merge pull request \fI\%#25877\fP from rallytime/fix\-24036
  256274. .IP \(bu 2
  256275. 0211972fd7 Whitespace fix
  256276. .IP \(bu 2
  256277. c6715e0404 Protect against passing a map file in addition to VM names with \-\-destroy
  256278. .IP \(bu 2
  256279. 3aa5045138 Clean up stacktrace when referenced map file doesn\(aqt exist
  256280. .UNINDENT
  256281. .IP \(bu 2
  256282. \fBPR\fP \fI\%#25870\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25824\fP to 2015.5
  256283. @ \fI2015\-07\-30 21:54:35 UTC\fP
  256284. .INDENT 2.0
  256285. .IP \(bu 2
  256286. \fBPR\fP \fI\%#25824\fP: (\fI\%klyr\fP) Fix get_managed() in file.py module for local files (refs: \fI\%#25870\fP)
  256287. .IP \(bu 2
  256288. c4c9e40be6 Merge pull request \fI\%#25870\fP from rallytime/bp\-25824
  256289. .IP \(bu 2
  256290. 1fd4837beb Fix get_managed() in file.py module for local files
  256291. .UNINDENT
  256292. .IP \(bu 2
  256293. \fBPR\fP \fI\%#25885\fP: (\fI\%t0rrant\fP) Update Debian changelog
  256294. @ \fI2015\-07\-30 20:05:59 UTC\fP
  256295. .INDENT 2.0
  256296. .IP \(bu 2
  256297. af2326af68 Merge pull request \fI\%#25885\fP from t0rrant/patch\-3
  256298. .IP \(bu 2
  256299. 3f73900c61 Update Debian changelog
  256300. .UNINDENT
  256301. .IP \(bu 2
  256302. \fBISSUE\fP \fI\%#25478\fP: (\fI\%zyio\fP) salt\-ssh \- Unable to locate current thin version (refs: \fI\%#25862\fP)
  256303. .IP \(bu 2
  256304. \fBISSUE\fP \fI\%#25026\fP: (\fI\%sylvia\-wang\fP) salt\-ssh "Failure deploying thin" when using salt module functions (refs: \fI\%#25862\fP)
  256305. .IP \(bu 2
  256306. \fBPR\fP \fI\%#25875\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25862\fP to 2015.5
  256307. @ \fI2015\-07\-30 17:34:02 UTC\fP
  256308. .INDENT 2.0
  256309. .IP \(bu 2
  256310. \fBPR\fP \fI\%#25862\fP: (\fI\%zyio\fP) Adding SCP_NOT_FOUND exit code (refs: \fI\%#25875\fP)
  256311. .IP \(bu 2
  256312. 6ce0b3e5b8 Merge pull request \fI\%#25875\fP from rallytime/bp\-25862
  256313. .IP \(bu 2
  256314. d7f448d501 Needed popen.wait().
  256315. .IP \(bu 2
  256316. 25f8042e41 Checking for scp existance. Using command \-v should be POSIX
  256317. .IP \(bu 2
  256318. 6b2100a30b New exitcode for SCP not found Re: \fI\%https://github.com/saltstack/salt/issues/25478\fP and \fI\%https://github.com/saltstack/salt/issues/25026\fP
  256319. .UNINDENT
  256320. .IP \(bu 2
  256321. \fBPR\fP \fI\%#25873\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25855\fP to 2015.5
  256322. @ \fI2015\-07\-30 17:33:55 UTC\fP
  256323. .INDENT 2.0
  256324. .IP \(bu 2
  256325. \fBPR\fP \fI\%#25855\fP: (\fI\%puneetk\fP) Patch 3 (refs: \fI\%#25873\fP)
  256326. .IP \(bu 2
  256327. 66dcc5525e Merge pull request \fI\%#25873\fP from rallytime/bp\-25855
  256328. .IP \(bu 2
  256329. f1f7ce25b7 Update saltmod.py
  256330. .IP \(bu 2
  256331. 23a6806008 Update saltmod.py
  256332. .UNINDENT
  256333. .IP \(bu 2
  256334. \fBPR\fP \fI\%#25871\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25829\fP to 2015.5
  256335. @ \fI2015\-07\-30 17:33:43 UTC\fP
  256336. .INDENT 2.0
  256337. .IP \(bu 2
  256338. \fBPR\fP \fI\%#25829\fP: (\fI\%peterdemin\fP) Fixed typo in salt.states.saltmod.function doc string (refs: \fI\%#25871\fP)
  256339. .IP \(bu 2
  256340. bf8bd38da7 Merge pull request \fI\%#25871\fP from rallytime/bp\-25829
  256341. .IP \(bu 2
  256342. a80c47ee10 Fixed typo in salt.states.saltmod.function doc string
  256343. .UNINDENT
  256344. .IP \(bu 2
  256345. \fBISSUE\fP \fI\%#24002\fP: (\fI\%csakoda\fP) File lock contention on windows minions causing highstate crash (refs: \fI\%#25788\fP)
  256346. .IP \(bu 2
  256347. \fBPR\fP \fI\%#25869\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25788\fP to 2015.5
  256348. @ \fI2015\-07\-30 17:33:33 UTC\fP
  256349. .INDENT 2.0
  256350. .IP \(bu 2
  256351. \fBPR\fP \fI\%#25788\fP: (\fI\%opdude\fP) Catch a hard crash when running highstate on windows (refs: \fI\%#25869\fP)
  256352. .IP \(bu 2
  256353. f26310ff0b Merge pull request \fI\%#25869\fP from rallytime/bp\-25788
  256354. .IP \(bu 2
  256355. 65b18e3b34 Catch a hard crash when running highstate on windows
  256356. .UNINDENT
  256357. .IP \(bu 2
  256358. \fBISSUE\fP \fI\%#19532\fP: (\fI\%stolendog\fP) salt\-ssh running git clone with not root user (refs: \fI\%#25853\fP)
  256359. .IP \(bu 2
  256360. \fBPR\fP \fI\%#25853\fP: (\fI\%davidjb\fP) Make ssh\-id\-wrapper accessible to non\-root users
  256361. @ \fI2015\-07\-30 16:49:47 UTC\fP
  256362. .INDENT 2.0
  256363. .IP \(bu 2
  256364. 810fbb8bfb Merge pull request \fI\%#25853\fP from davidjb/ssh\-id\-wrapper\-non\-root
  256365. .IP \(bu 2
  256366. 6492bde192 Make ssh\-id\-wrapper accessible to non\-root users
  256367. .UNINDENT
  256368. .IP \(bu 2
  256369. \fBISSUE\fP \fI\%#25447\fP: (\fI\%spo0nman\fP) SaltMaster is crippled with Minion Re\-Authentication (refs: \fI\%#25856\fP)
  256370. .IP \(bu 2
  256371. \fBPR\fP \fI\%#25856\fP: (\fI\%jfindlay\fP) expand minion reauth scalability documentation
  256372. @ \fI2015\-07\-30 15:33:17 UTC\fP
  256373. .INDENT 2.0
  256374. .IP \(bu 2
  256375. b6805b068a Merge pull request \fI\%#25856\fP from jfindlay/intro_scale
  256376. .IP \(bu 2
  256377. 5921461bb1 style and usage consistency in intro_scale
  256378. .IP \(bu 2
  256379. 51dc7cacfb whitespace adjustments in intro_scale
  256380. .IP \(bu 2
  256381. 39a82467f1 expand minion reauth scalability documentation
  256382. .UNINDENT
  256383. .IP \(bu 2
  256384. \fBISSUE\fP \fI\%#25801\fP: (\fI\%themalkolm\fP) Update docs that salt.states.winrepo requires \fIroles:salt\-master\fP in grains. (refs: \fI\%#25840\fP)
  256385. .IP \(bu 2
  256386. \fBPR\fP \fI\%#25840\fP: (\fI\%jfindlay\fP) add note to winrepo state docs about required grain
  256387. @ \fI2015\-07\-30 14:38:27 UTC\fP
  256388. .INDENT 2.0
  256389. .IP \(bu 2
  256390. 423d528b73 Merge pull request \fI\%#25840\fP from jfindlay/winrepo_master
  256391. .IP \(bu 2
  256392. b6cfd54f3b add note to winrepo state docs about required grain
  256393. .UNINDENT
  256394. .IP \(bu 2
  256395. \fBISSUE\fP \fI\%#25827\fP: (\fI\%0xf10e\fP) "Deprecating Code" doesn\(aqt mention Usage of warn_until() w/ Release Names (refs: \fI\%#25846\fP)
  256396. .IP \(bu 2
  256397. \fBPR\fP \fI\%#25846\fP: (\fI\%jfindlay\fP) rework deprecation documentation for release names
  256398. @ \fI2015\-07\-30 13:26:21 UTC\fP
  256399. .INDENT 2.0
  256400. .IP \(bu 2
  256401. 754c8be719 Merge pull request \fI\%#25846\fP from jfindlay/depr_code
  256402. .IP \(bu 2
  256403. d377f42c48 rework deprecation documentation for release names
  256404. .UNINDENT
  256405. .IP \(bu 2
  256406. \fBISSUE\fP \fI\%#23288\fP: (\fI\%UtahDave\fP) cp.push fails to recreate empty files. (refs: \fI\%#25833\fP)
  256407. .IP \(bu 2
  256408. \fBPR\fP \fI\%#25833\fP: (\fI\%jahamn\fP) Allows cp.push to recreate empty files
  256409. @ \fI2015\-07\-29 16:14:48 UTC\fP
  256410. .INDENT 2.0
  256411. .IP \(bu 2
  256412. d9ab4bb989 Merge pull request \fI\%#25833\fP from jahamn/fix\-cp.push\-not\-recreating\-empty\-files
  256413. .IP \(bu 2
  256414. eac19fbf33 Allows cp.push to recreate empty files
  256415. .UNINDENT
  256416. .IP \(bu 2
  256417. \fBISSUE\fP \fI\%#11474\fP: (\fI\%JensRantil\fP) pkgrepo.managed key_url: salt:// always use \fIbase\fP env (refs: \fI\%#25831\fP)
  256418. .IP \(bu 2
  256419. \fBPR\fP \fI\%#25831\fP: (\fI\%rallytime\fP) Add salt:// to key_url options to docs for pkgrepo.managed
  256420. @ \fI2015\-07\-29 15:38:43 UTC\fP
  256421. .INDENT 2.0
  256422. .IP \(bu 2
  256423. 6f93d64784 Merge pull request \fI\%#25831\fP from rallytime/fix\-11474
  256424. .IP \(bu 2
  256425. 067ea788e9 Add salt:// to key_url options to docs for pkgrepo.managed
  256426. .UNINDENT
  256427. .IP \(bu 2
  256428. \fBISSUE\fP \fI\%#22699\fP: (\fI\%arthurlogilab\fP) salt\-cloud fails on KeyError when given a nonexistant action (refs: \fI\%#25807\fP)
  256429. .IP \(bu 2
  256430. \fBPR\fP \fI\%#25807\fP: (\fI\%rallytime\fP) Provide helpful error when using actions with a mapfile
  256431. @ \fI2015\-07\-29 15:30:15 UTC\fP
  256432. .INDENT 2.0
  256433. .IP \(bu 2
  256434. 72b3633383 Merge pull request \fI\%#25807\fP from rallytime/fix\-22699
  256435. .IP \(bu 2
  256436. 3f3005c746 Use handle_exception function in cloud cli.py
  256437. .IP \(bu 2
  256438. f91edf3a33 Provide helpful error when using actions with a mapfile
  256439. .UNINDENT
  256440. .IP \(bu 2
  256441. \fBPR\fP \fI\%#25818\fP: (\fI\%jfindlay\fP) fix autoruns list
  256442. @ \fI2015\-07\-29 15:29:20 UTC\fP
  256443. .INDENT 2.0
  256444. .IP \(bu 2
  256445. 71497adc0d Merge pull request \fI\%#25818\fP from jfindlay/autoruns_users
  256446. .IP \(bu 2
  256447. c2dbb65982 fix autoruns list for modern windowsen
  256448. .UNINDENT
  256449. .IP \(bu 2
  256450. \fBPR\fP \fI\%#25826\fP: (\fI\%anlutro\fP) Check that "onchanges" is a list
  256451. @ \fI2015\-07\-29 15:00:28 UTC\fP
  256452. .INDENT 2.0
  256453. .IP \(bu 2
  256454. 98b324c5f8 Merge pull request \fI\%#25826\fP from alprs/fix\-onchanges_type_check
  256455. .IP \(bu 2
  256456. 7992a3f0f4 state.py: check that "onchanges" is a list
  256457. .UNINDENT
  256458. .IP \(bu 2
  256459. \fBISSUE\fP \fI\%#25258\fP: (\fI\%nickw8\fP) windows minion repo not updating (refs: \fI\%#25798\fP)
  256460. .IP \(bu 2
  256461. \fBPR\fP \fI\%#25798\fP: (\fI\%twangboy\fP) Fixed stacktrace on package name not found
  256462. @ \fI2015\-07\-28 22:40:14 UTC\fP
  256463. .INDENT 2.0
  256464. .IP \(bu 2
  256465. ad07dc1e27 Merge pull request \fI\%#25798\fP from twangboy/fix_25258
  256466. .IP \(bu 2
  256467. aa19c2bf8f Fixed stacktrace on package name not found
  256468. .UNINDENT
  256469. .IP \(bu 2
  256470. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  256471. .IP \(bu 2
  256472. \fBPR\fP \fI\%#25797\fP: (\fI\%twangboy\fP) Changed repocache back to cached_repo
  256473. @ \fI2015\-07\-28 22:39:32 UTC\fP
  256474. .INDENT 2.0
  256475. .IP \(bu 2
  256476. \fBPR\fP \fI\%#25763\fP: (\fI\%twangboy\fP) Fix 25437 (refs: \fI\%#25797\fP)
  256477. .IP \(bu 2
  256478. 4a38d4a606 Merge pull request \fI\%#25797\fP from twangboy/fix_revert_in_25763
  256479. .IP \(bu 2
  256480. 81d5b5ee55 Changed repocache back to cached_repo
  256481. .UNINDENT
  256482. .IP \(bu 2
  256483. \fBPR\fP \fI\%#25793\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25730\fP to 2015.5
  256484. @ \fI2015\-07\-28 19:37:34 UTC\fP
  256485. .INDENT 2.0
  256486. .IP \(bu 2
  256487. \fBPR\fP \fI\%#25730\fP: (\fI\%sjorge\fP) patchelf lives in pkgsrc (refs: \fI\%#25793\fP)
  256488. .IP \(bu 2
  256489. 823f0ce350 Merge pull request \fI\%#25793\fP from rallytime/bp\-25730
  256490. .IP \(bu 2
  256491. 937779eb51 patchelf lives in pkgsrc
  256492. .UNINDENT
  256493. .IP \(bu 2
  256494. \fBPR\fP \fI\%#25792\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25688\fP to 2015.5
  256495. @ \fI2015\-07\-28 19:37:17 UTC\fP
  256496. .INDENT 2.0
  256497. .IP \(bu 2
  256498. \fBPR\fP \fI\%#25688\fP: (\fI\%bclermont\fP) Don\(aqt acquire lock if there is no formatter (refs: \fI\%#25792\fP)
  256499. .IP \(bu 2
  256500. 4109ae55f9 Merge pull request \fI\%#25792\fP from rallytime/bp\-25688
  256501. .IP \(bu 2
  256502. 0aa1416b6b Don\(aqt acquire lock if there is no formatter
  256503. .UNINDENT
  256504. .IP \(bu 2
  256505. \fBPR\fP \fI\%#25796\fP: (\fI\%cachedout\fP) Remove debug from docs
  256506. @ \fI2015\-07\-28 17:35:59 UTC\fP
  256507. .INDENT 2.0
  256508. .IP \(bu 2
  256509. 737fb1410c Merge pull request \fI\%#25796\fP from cachedout/debug_doc
  256510. .IP \(bu 2
  256511. 33bfdf3b0b Remove debug from docs
  256512. .UNINDENT
  256513. .IP \(bu 2
  256514. \fBISSUE\fP \fI\%#24920\fP: (\fI\%voileux\fP) module.zpool.create on character device is not possible by salt (refs: \fI\%#25749\fP)
  256515. .IP \(bu 2
  256516. \fBPR\fP \fI\%#25749\fP: (\fI\%jahamn\fP) Allow zpool.create on character devices
  256517. @ \fI2015\-07\-28 16:01:40 UTC\fP
  256518. .INDENT 2.0
  256519. .IP \(bu 2
  256520. a658753eff Merge pull request \fI\%#25749\fP from jahamn/fix\-zpool\-special\-char\-device\-support
  256521. .IP \(bu 2
  256522. 361f6cc23f Allow zpool.create on character devices
  256523. .UNINDENT
  256524. .IP \(bu 2
  256525. \fBPR\fP \fI\%#25685\fP: (\fI\%twangboy\fP) Fixed regex issues with comment and uncomment
  256526. @ \fI2015\-07\-28 15:29:49 UTC\fP
  256527. .INDENT 2.0
  256528. .IP \(bu 2
  256529. 1fae76d53c Merge pull request \fI\%#25685\fP from twangboy/fix_25594
  256530. .IP \(bu 2
  256531. a904e8329b Fixed another test failure...
  256532. .IP \(bu 2
  256533. aa077d3a86 Fixed more tests... justin findlay helped me...
  256534. .IP \(bu 2
  256535. 87c8f8dfb5 Fixed some tests... maybe...
  256536. .IP \(bu 2
  256537. 3c1a73f16c Fixed some lint
  256538. .IP \(bu 2
  256539. b3e44e342c Fixed states to work with comment_line
  256540. .IP \(bu 2
  256541. b1cedd1153 Fixed regex issues with comment and uncomment
  256542. .UNINDENT
  256543. .IP \(bu 2
  256544. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  256545. .IP \(bu 2
  256546. \fBPR\fP \fI\%#25763\fP: (\fI\%twangboy\fP) Fix 25437 (refs: \fI\%#25797\fP)
  256547. @ \fI2015\-07\-28 15:29:27 UTC\fP
  256548. .INDENT 2.0
  256549. .IP \(bu 2
  256550. 0bdb29402a Merge pull request \fI\%#25763\fP from twangboy/fix_25437
  256551. .IP \(bu 2
  256552. 9e70c800b9 The real fix for 25437 that doesn\(aqt break other crap
  256553. .IP \(bu 2
  256554. d7347e01e5 Revert "Fixed problem trying to load file with name of boolean type"
  256555. .IP \(bu 2
  256556. cf57712eeb Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25437
  256557. .UNINDENT
  256558. .IP \(bu 2
  256559. \fBPR\fP \fI\%#25752\fP: (\fI\%thatch45\fP) State top saltenv
  256560. @ \fI2015\-07\-28 01:02:10 UTC\fP
  256561. .INDENT 2.0
  256562. .IP \(bu 2
  256563. c1236595f9 Merge pull request \fI\%#25752\fP from thatch45/state_top_saltenv
  256564. .IP \(bu 2
  256565. 65d6ec0659 don\(aqt override the minion config unless requested
  256566. .IP \(bu 2
  256567. 26c858361c Add state_top_saltenv to the config chain
  256568. .IP \(bu 2
  256569. 36a3b674a7 Add raet support for state_top_saltnev
  256570. .IP \(bu 2
  256571. f6fa025b13 Add saltenv top file support to salt master_opts
  256572. .IP \(bu 2
  256573. 4a1c53309b Add state_top_saltenv support
  256574. .UNINDENT
  256575. .IP \(bu 2
  256576. \fBISSUE\fP \fI\%#25717\fP: (\fI\%twangboy\fP) Problem with chocolatey module not loading (refs: \fI\%#25755\fP)
  256577. .IP \(bu 2
  256578. \fBPR\fP \fI\%#25755\fP: (\fI\%twangboy\fP) Fixed problem with dunder functions not being passed
  256579. @ \fI2015\-07\-27 19:31:22 UTC\fP
  256580. .INDENT 2.0
  256581. .IP \(bu 2
  256582. f367acb253 Merge pull request \fI\%#25755\fP from twangboy/fix_25717
  256583. .IP \(bu 2
  256584. 10e410504d Fixed problem with dunder functions not being passed
  256585. .UNINDENT
  256586. .IP \(bu 2
  256587. \fBISSUE\fP \fI\%#25352\fP: (\fI\%m03\fP) reg.absent reporting incorrect results (refs: \fI\%#25648\fP)
  256588. .IP \(bu 2
  256589. \fBPR\fP \fI\%#25648\fP: (\fI\%twangboy\fP) Clarified functionality of reg module, fixed state to work with new module
  256590. @ \fI2015\-07\-27 19:30:33 UTC\fP
  256591. .INDENT 2.0
  256592. .IP \(bu 2
  256593. f05ae95f9c Merge pull request \fI\%#25648\fP from twangboy/fix_25352
  256594. .IP \(bu 2
  256595. d6496ce814 Merge pull request \fI\%#1\fP from jfindlay/reg
  256596. .INDENT 2.0
  256597. .IP \(bu 2
  256598. 3b0cc6592a fix reg unit tests
  256599. .UNINDENT
  256600. .IP \(bu 2
  256601. b473fb7827 Fixed some tests... maybe...
  256602. .IP \(bu 2
  256603. ff7296d983 Fixed some more lint
  256604. .IP \(bu 2
  256605. 7a71f5ea6a Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25352
  256606. .IP \(bu 2
  256607. f57b2b8e7a Fixed some line, added documentation
  256608. .IP \(bu 2
  256609. d78fa97a71 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_25352
  256610. .IP \(bu 2
  256611. 99d9518af8 Clarified functionality of reg module, fixed state to work with new module
  256612. .UNINDENT
  256613. .IP \(bu 2
  256614. \fBISSUE\fP \fI\%#25154\fP: (\fI\%uvsmtid\fP) All data mixed on STDOUT together should generate valid JSON output (refs: \fI\%#25722\fP)
  256615. .IP \(bu 2
  256616. \fBISSUE\fP \fI\%#25153\fP: (\fI\%uvsmtid\fP) Multiple results should generate valid JSON output (refs: \fI\%#25722\fP)
  256617. .IP \(bu 2
  256618. \fBPR\fP \fI\%#25740\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25722\fP to 2015.5
  256619. @ \fI2015\-07\-27 16:08:40 UTC\fP
  256620. .INDENT 2.0
  256621. .IP \(bu 2
  256622. \fBPR\fP \fI\%#25722\fP: (\fI\%uvsmtid\fP) Minor docs changes to emphasize JSON output problems without \fI\-\-static\fP option (refs: \fI\%#25740\fP)
  256623. .IP \(bu 2
  256624. 29c66d85a4 Merge pull request \fI\%#25740\fP from rallytime/bp\-25722
  256625. .IP \(bu 2
  256626. c33eb813ea Change docs for \-\-static option with JSON \- text B
  256627. .IP \(bu 2
  256628. 89dd2ec8fb Change docs for \-\-static option with JSON \- text A
  256629. .UNINDENT
  256630. .IP \(bu 2
  256631. \fBPR\fP \fI\%#25739\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25709\fP to 2015.5
  256632. @ \fI2015\-07\-27 16:08:27 UTC\fP
  256633. .INDENT 2.0
  256634. .IP \(bu 2
  256635. \fBPR\fP \fI\%#25709\fP: (\fI\%colekowalski\fP) add direct\-io\-mode to mount_invisible_options (refs: \fI\%#25739\fP)
  256636. .IP \(bu 2
  256637. \fBPR\fP \fI\%#25699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25660\fP to 2015.5 (refs: \fI\%#25709\fP)
  256638. .IP \(bu 2
  256639. \fBPR\fP \fI\%#25660\fP: (\fI\%colekowalski\fP) add glusterfs\(aq direct\-io\-mode to mount_invisible_keys (refs: \fI\%#25699\fP, \fI\%#25709\fP)
  256640. .IP \(bu 2
  256641. 135b03e53b Merge pull request \fI\%#25739\fP from rallytime/bp\-25709
  256642. .IP \(bu 2
  256643. fda2ffa44e add direct\-io\-mode to mount_invisible_options
  256644. .UNINDENT
  256645. .IP \(bu 2
  256646. \fBPR\fP \fI\%#25738\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25671\fP to 2015.5
  256647. @ \fI2015\-07\-27 16:08:23 UTC\fP
  256648. .INDENT 2.0
  256649. .IP \(bu 2
  256650. \fBPR\fP \fI\%#25671\fP: (\fI\%niq000\fP) added a parameter so verifying SSL is now optional instead of hard\-coded (refs: \fI\%#25738\fP)
  256651. .IP \(bu 2
  256652. 095a923b6e Merge pull request \fI\%#25738\fP from rallytime/bp\-25671
  256653. .IP \(bu 2
  256654. 525cd70589 added a parameter so verifying SSL is now optional instead of hard\-coded
  256655. .UNINDENT
  256656. .IP \(bu 2
  256657. \fBISSUE\fP \fI\%#25229\fP: (\fI\%rmatulat\fP) Module git.latest kills target directory when test=True (refs: \fI\%#25608\fP)
  256658. .IP \(bu 2
  256659. \fBPR\fP \fI\%#25737\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25608\fP to 2015.5
  256660. @ \fI2015\-07\-27 16:08:18 UTC\fP
  256661. .INDENT 2.0
  256662. .IP \(bu 2
  256663. \fBPR\fP \fI\%#25608\fP: (\fI\%rmatulat\fP) Fix: prevent git.latest from removing target (refs: \fI\%#25737\fP)
  256664. .IP \(bu 2
  256665. 05fbfe64e9 Merge pull request \fI\%#25737\fP from rallytime/bp\-25608
  256666. .IP \(bu 2
  256667. df85d734bc Fix: prevent git.latest from removing target Fixes \fI\%#25229\fP While force=True and test=True git.latest should not remove the target directory.
  256668. .UNINDENT
  256669. .IP \(bu 2
  256670. \fBPR\fP \fI\%#25733\fP: (\fI\%davidjb\fP) Avoid IndexError when listing mounts if mount output ends in newline
  256671. @ \fI2015\-07\-27 16:08:05 UTC\fP
  256672. .INDENT 2.0
  256673. .IP \(bu 2
  256674. 9817fc5556 Merge pull request \fI\%#25733\fP from davidjb/mount\-fix
  256675. .IP \(bu 2
  256676. 6d0bce2418 Test length of comps when listing mounts
  256677. .UNINDENT
  256678. .IP \(bu 2
  256679. \fBISSUE\fP \fI\%#22460\fP: (\fI\%onmeac\fP) Command setm is not supported (yet) (refs: \fI\%#25705\fP)
  256680. .IP \(bu 2
  256681. \fBPR\fP \fI\%#25705\fP: (\fI\%blackduckx\fP) Support for setm augeas command.
  256682. @ \fI2015\-07\-27 16:07:10 UTC\fP
  256683. .INDENT 2.0
  256684. .IP \(bu 2
  256685. 82ba390b7b Merge pull request \fI\%#25705\fP from blackduckx/augeas\-setm
  256686. .IP \(bu 2
  256687. cad0f2b46e Augeas: fix pylint and documentation
  256688. .IP \(bu 2
  256689. ee97896cba Support for setm augeas command.
  256690. .UNINDENT
  256691. .IP \(bu 2
  256692. \fBPR\fP \fI\%#25703\fP: (\fI\%cachedout\fP) Return to \fIstr\fP for master_type for 2015.5
  256693. @ \fI2015\-07\-27 16:06:22 UTC\fP
  256694. .INDENT 2.0
  256695. .IP \(bu 2
  256696. f732be365d Merge pull request \fI\%#25703\fP from cachedout/master_type_2015_5
  256697. .IP \(bu 2
  256698. 0dc28ad3e4 Return to \fIstr\fP for master_type for 2015.5
  256699. .UNINDENT
  256700. .IP \(bu 2
  256701. \fBISSUE\fP \fI\%#25144\fP: (\fI\%johnccfm\fP) user.present on Windows fails to add user to groups if group name contains a space (refs: \fI\%#25702\fP)
  256702. .IP \(bu 2
  256703. \fBPR\fP \fI\%#25702\fP: (\fI\%twangboy\fP) Fixed win_user module for groups with spaces in the name
  256704. @ \fI2015\-07\-27 15:06:33 UTC\fP
  256705. .INDENT 2.0
  256706. .IP \(bu 2
  256707. dea3d31578 Merge pull request \fI\%#25702\fP from twangboy/fix_25144
  256708. .IP \(bu 2
  256709. d5be7a2fdf Fixed win_user moduele for groups with spaces in the name
  256710. .UNINDENT
  256711. .IP \(bu 2
  256712. \fBISSUE\fP \fI\%#25351\fP: (\fI\%m03\fP) win_servermanager.list_installed failing with "IndexError: list index out of range" (refs: \fI\%#25711\fP)
  256713. .IP \(bu 2
  256714. \fBPR\fP \fI\%#25711\fP: (\fI\%twangboy\fP) Fixed problem with win_servermanager.list_installed
  256715. @ \fI2015\-07\-27 15:05:48 UTC\fP
  256716. .INDENT 2.0
  256717. .IP \(bu 2
  256718. 186af9b54d Merge pull request \fI\%#25711\fP from twangboy/fix_25351
  256719. .IP \(bu 2
  256720. 82fa911931 Fixed problem with win_servermanager.list_installed
  256721. .UNINDENT
  256722. .IP \(bu 2
  256723. \fBISSUE\fP \fI\%#25435\fP: (\fI\%yee379\fP) progressbar dependency missing (refs: \fI\%#25714\fP)
  256724. .IP \(bu 2
  256725. \fBPR\fP \fI\%#25714\fP: (\fI\%cachedout\fP) Display warning when progressbar can\(aqt be loaded
  256726. @ \fI2015\-07\-25 00:10:13 UTC\fP
  256727. .INDENT 2.0
  256728. .IP \(bu 2
  256729. ad8456eeed Merge pull request \fI\%#25714\fP from cachedout/issue_25435
  256730. .IP \(bu 2
  256731. 44f34684ef Included note in help docs
  256732. .IP \(bu 2
  256733. 4e2fee17cc Display warning when progressbar can\(aqt be loaded
  256734. .UNINDENT
  256735. .IP \(bu 2
  256736. \fBPR\fP \fI\%#25699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25660\fP to 2015.5 (refs: \fI\%#25709\fP)
  256737. @ \fI2015\-07\-24 22:11:40 UTC\fP
  256738. .INDENT 2.0
  256739. .IP \(bu 2
  256740. \fBPR\fP \fI\%#25660\fP: (\fI\%colekowalski\fP) add glusterfs\(aq direct\-io\-mode to mount_invisible_keys (refs: \fI\%#25699\fP, \fI\%#25709\fP)
  256741. .IP \(bu 2
  256742. a0969ff74a Merge pull request \fI\%#25699\fP from rallytime/bp\-25660
  256743. .IP \(bu 2
  256744. 85c636d7a1 add glusterfs\(aq direct\-io\-mode to mount_invisible_keys
  256745. .UNINDENT
  256746. .IP \(bu 2
  256747. \fBISSUE\fP \fI\%#25689\fP: (\fI\%anlutro\fP) Minion log in salt\-ssh (refs: \fI\%#25694\fP)
  256748. .IP \(bu 2
  256749. \fBPR\fP \fI\%#25694\fP: (\fI\%s0undt3ch\fP) Salt\-SSH fix for \fI\%#25689\fP
  256750. @ \fI2015\-07\-24 21:41:57 UTC\fP
  256751. .INDENT 2.0
  256752. .IP \(bu 2
  256753. fe829564f4 Merge pull request \fI\%#25694\fP from s0undt3ch/2015.5
  256754. .IP \(bu 2
  256755. afba3bde90 Use a relative un\-nested path to the salt\-call logfile.
  256756. .IP \(bu 2
  256757. 6309f22a65 Fix wrong variable assignment
  256758. .IP \(bu 2
  256759. c312592c81 Have cookie JAR\(aqs respect the configured \fIcachedir\fP
  256760. .UNINDENT
  256761. .IP \(bu 2
  256762. \fBISSUE\fP \fI\%#25250\fP: (\fI\%wipfs\fP) \(aqforce\(aq option in copy state deletes target file (refs: \fI\%#25461\fP, \fI\%#25710\fP)
  256763. .IP \(bu 2
  256764. \fBPR\fP \fI\%#25710\fP: (\fI\%jahamn\fP) Integration Testcase for Issue 25250
  256765. @ \fI2015\-07\-24 20:57:33 UTC\fP
  256766. .INDENT 2.0
  256767. .IP \(bu 2
  256768. fb4744b2f8 Merge pull request \fI\%#25710\fP from jahamn/integration\-test\-for\-issue\-25250
  256769. .IP \(bu 2
  256770. 24f653e963 Integration Test for Issue 25250
  256771. .UNINDENT
  256772. .IP \(bu 2
  256773. \fBPR\fP \fI\%#25680\fP: (\fI\%basepi\fP) [2015.5] Move cmd.run jinja aliasing to a wrapper class to prevent side effects
  256774. @ \fI2015\-07\-24 19:52:10 UTC\fP
  256775. .INDENT 2.0
  256776. .IP \(bu 2
  256777. \fBPR\fP \fI\%#25049\fP: (\fI\%terminalmage\fP) Fix cmd.run when cross\-called in a state/execution module (refs: \fI\%#25680\fP)
  256778. .IP \(bu 2
  256779. 18c9d5454d Merge pull request \fI\%#25680\fP from basepi/jinja.alias.25049
  256780. .IP \(bu 2
  256781. e83a0f9b2b Use new\-style classes
  256782. .IP \(bu 2
  256783. 4a50bac1c2 Fix typo
  256784. .IP \(bu 2
  256785. 36410389dc Name the Nitrogen release
  256786. .IP \(bu 2
  256787. 77679596f9 Make ALIASES global
  256788. .IP \(bu 2
  256789. 01c209efd9 Fix some aliases references
  256790. .IP \(bu 2
  256791. 1644641c57 Move cmd.run aliasing to a wrapper class to prevent side effects
  256792. .UNINDENT
  256793. .IP \(bu 2
  256794. \fBPR\fP \fI\%#25682\fP: (\fI\%basepi\fP) [2015.5] Fix parsing args with just a hash (#)
  256795. @ \fI2015\-07\-24 19:52:01 UTC\fP
  256796. .INDENT 2.0
  256797. .IP \(bu 2
  256798. 6a5c6dcd04 Merge pull request \fI\%#25682\fP from basepi/fix.hash.parsing
  256799. .IP \(bu 2
  256800. 8d75c1b882 Fix parsing args with just a hash (#)
  256801. .UNINDENT
  256802. .IP \(bu 2
  256803. \fBPR\fP \fI\%#25695\fP: (\fI\%stanislavb\fP) Configurable AWS region & region from IAM metadata
  256804. @ \fI2015\-07\-24 19:36:40 UTC\fP
  256805. .INDENT 2.0
  256806. .IP \(bu 2
  256807. d330ef0d81 Merge pull request \fI\%#25695\fP from stanislavb/expose\-aws\-region\-config\-and\-fetch\-region\-from\-metadata
  256808. .IP \(bu 2
  256809. 595da6252e Configurable AWS region & region from IAM metadata
  256810. .UNINDENT
  256811. .IP \(bu 2
  256812. \fBPR\fP \fI\%#25645\fP: (\fI\%kev009\fP) Fix pkgng provider to work with a sources list and the underlying pkg…
  256813. @ \fI2015\-07\-24 16:33:18 UTC\fP
  256814. .INDENT 2.0
  256815. .IP \(bu 2
  256816. ea0d295d49 Merge pull request \fI\%#25645\fP from kev009/freebsd\-pkgng\-add
  256817. .IP \(bu 2
  256818. ee2cbb574a Fix pkgng provider to work with a sources list and the underlying pkg\-add(8)
  256819. .UNINDENT
  256820. .IP \(bu 2
  256821. \fBPR\fP \fI\%#25677\fP: (\fI\%aneeshusa\fP) Fix pacman.list_upgrades when refresh=True.
  256822. @ \fI2015\-07\-24 16:30:06 UTC\fP
  256823. .INDENT 2.0
  256824. .IP \(bu 2
  256825. 2cad79c2f0 Merge pull request \fI\%#25677\fP from aneeshusa/fix\-pacman\-list\-upgrades\-when\-refreshing
  256826. .IP \(bu 2
  256827. 7062ae4eae Fix pacman.list_upgrades when refresh=True.
  256828. .UNINDENT
  256829. .IP \(bu 2
  256830. \fBISSUE\fP \fI\%#25674\fP: (\fI\%UtahDave\fP) file.managed with contents parameter uses wrong line endings on Windows (refs: \fI\%#25675\fP)
  256831. .IP \(bu 2
  256832. \fBPR\fP \fI\%#25675\fP: (\fI\%UtahDave\fP) Use OS line endings with contents on file.managed
  256833. @ \fI2015\-07\-24 16:29:50 UTC\fP
  256834. .INDENT 2.0
  256835. .IP \(bu 2
  256836. 18e739b812 Merge pull request \fI\%#25675\fP from UtahDave/2015.5local
  256837. .IP \(bu 2
  256838. d0f9d001db Use OS line endings with contents on file.managed
  256839. .UNINDENT
  256840. .IP \(bu 2
  256841. \fBPR\fP \fI\%#25676\fP: (\fI\%basepi\fP) Update release candidate docs to 2015.8.0rc2
  256842. @ \fI2015\-07\-23 20:29:37 UTC\fP
  256843. .INDENT 2.0
  256844. .IP \(bu 2
  256845. 7914f51636 Merge pull request \fI\%#25676\fP from basepi/2015.8.0rc2releasedocs
  256846. .IP \(bu 2
  256847. 882d11836b Update release candidate docs to 2015.8.0rc2
  256848. .UNINDENT
  256849. .IP \(bu 2
  256850. \fBISSUE\fP \fI\%#25665\fP: (\fI\%nmadhok\fP) salt\-cloud VMware driver fails with KeyErrors if there\(aqs any existing machine in the VMware infrastructure in (invalid state) (refs: \fI\%#25666\fP)
  256851. .IP \(bu 2
  256852. \fBPR\fP \fI\%#25666\fP: (\fI\%nmadhok\fP) Check if the properties exist before looping over them causing KeyError
  256853. @ \fI2015\-07\-23 17:55:40 UTC\fP
  256854. .INDENT 2.0
  256855. .IP \(bu 2
  256856. c36b714401 Merge pull request \fI\%#25666\fP from nmadhok/vmware\-cloud\-fix_2015.5
  256857. .IP \(bu 2
  256858. 8e812296ef Check if the properties exist before looping over them causing KeyErrors Fixes \fI\%#25665\fP
  256859. .UNINDENT
  256860. .IP \(bu 2
  256861. \fBPR\fP \fI\%#25656\fP: (\fI\%anlutro\fP) Fix locale detection in debian/gentoo
  256862. @ \fI2015\-07\-23 16:46:40 UTC\fP
  256863. .INDENT 2.0
  256864. .IP \(bu 2
  256865. 36d04b2954 Merge pull request \fI\%#25656\fP from alprs/fix\-locale_detection
  256866. .IP \(bu 2
  256867. a260236942 change variable name
  256868. .IP \(bu 2
  256869. dd2a188c05 fix tests
  256870. .IP \(bu 2
  256871. aefd0fb374 code formatting
  256872. .IP \(bu 2
  256873. e58d222fb0 fix locale detection in debian/gentoo
  256874. .UNINDENT
  256875. .IP \(bu 2
  256876. \fBPR\fP \fI\%#25661\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25624\fP to 2015.5
  256877. @ \fI2015\-07\-23 16:26:48 UTC\fP
  256878. .INDENT 2.0
  256879. .IP \(bu 2
  256880. \fBPR\fP \fI\%#25624\fP: (\fI\%bobrik\fP) Fix typo in get_routes example for debian_ip (refs: \fI\%#25661\fP)
  256881. .IP \(bu 2
  256882. b1c1735aae Merge pull request \fI\%#25661\fP from rallytime/bp\-25624
  256883. .IP \(bu 2
  256884. 4e1fcfa15e Fix typo in get_routes example for debian_ip
  256885. .UNINDENT
  256886. .IP \(bu 2
  256887. \fBISSUE\fP \fI\%#15209\fP: (\fI\%hubez\fP) file.manage: source_hash not working with s3:// (2014.7.0rc1) (refs: \fI\%#25638\fP)
  256888. .IP \(bu 2
  256889. \fBPR\fP \fI\%#25662\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25638\fP to 2015.5
  256890. @ \fI2015\-07\-23 16:26:40 UTC\fP
  256891. .INDENT 2.0
  256892. .IP \(bu 2
  256893. \fBPR\fP \fI\%#25638\fP: (\fI\%TronPaul\fP) fix bad merge in 99fc7ec (refs: \fI\%#25662\fP)
  256894. .IP \(bu 2
  256895. 6a2843dee2 Merge pull request \fI\%#25662\fP from rallytime/bp\-25638
  256896. .IP \(bu 2
  256897. 90d833d5dc fix bad merge 99fc7ec
  256898. .UNINDENT
  256899. .IP \(bu 2
  256900. \fBISSUE\fP \fI\%#25413\fP: (\fI\%zizkebab\fP) pillar_opts default behavior is not reflected in the docs (refs: \fI\%#25644\fP)
  256901. .IP \(bu 2
  256902. \fBPR\fP \fI\%#25644\fP: (\fI\%cachedout\fP) pillar doc fix
  256903. @ \fI2015\-07\-22 22:57:23 UTC\fP
  256904. .INDENT 2.0
  256905. .IP \(bu 2
  256906. 00f4689fe3 Merge pull request \fI\%#25644\fP from cachedout/issue_25413
  256907. .IP \(bu 2
  256908. 8cef61e6cc pillar doc fix
  256909. .UNINDENT
  256910. .IP \(bu 2
  256911. \fBISSUE\fP \fI\%#25540\fP: (\fI\%dennisjac\fP) salt highstate schedule cannot be removed (refs: \fI\%#25642\fP)
  256912. .IP \(bu 2
  256913. \fBPR\fP \fI\%#25642\fP: (\fI\%cachedout\fP) Warn on pillar schedule delete
  256914. @ \fI2015\-07\-22 22:04:12 UTC\fP
  256915. .INDENT 2.0
  256916. .IP \(bu 2
  256917. aeaeb53ed6 Merge pull request \fI\%#25642\fP from cachedout/issue_25540
  256918. .IP \(bu 2
  256919. 74f6b6930c Warn on pillar schedule delete
  256920. .UNINDENT
  256921. .IP \(bu 2
  256922. \fBISSUE\fP \fI\%#25437\fP: (\fI\%lorengordon\fP) Stacktrace on Windows when running pkg.list_pkgs (refs: \fI\%#25598\fP, \fI\%#25763\fP)
  256923. .IP \(bu 2
  256924. \fBPR\fP \fI\%#25598\fP: (\fI\%twangboy\fP) Fixed problem trying to load file with name of boolean type
  256925. @ \fI2015\-07\-22 17:07:49 UTC\fP
  256926. .INDENT 2.0
  256927. .IP \(bu 2
  256928. 7b79e433f1 Merge pull request \fI\%#25598\fP from twangboy/fix_25437
  256929. .IP \(bu 2
  256930. c53e11d42c Fixed problem trying to load file with name of boolean type
  256931. .UNINDENT
  256932. .IP \(bu 2
  256933. \fBISSUE\fP \fI\%#25323\fP: (\fI\%terminalmage\fP) unit.modules.tls_test fails with older mock (refs: \fI\%#25604\fP)
  256934. .IP \(bu 2
  256935. \fBPR\fP \fI\%#25604\fP: (\fI\%terminalmage\fP) Move patching of mock_open to within test
  256936. @ \fI2015\-07\-22 16:53:55 UTC\fP
  256937. .INDENT 2.0
  256938. .IP \(bu 2
  256939. f4a38a8aee Merge pull request \fI\%#25604\fP from terminalmage/fix\-mock_open
  256940. .IP \(bu 2
  256941. 123b8ee1cb Fix mock_open patch
  256942. .IP \(bu 2
  256943. af82835f42 Move patching of mock_open to within test
  256944. .UNINDENT
  256945. .IP \(bu 2
  256946. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#630\fP: (\fI\%jf\fP) Ubuntu 12.04 (and maybe 12.x?): apt\-get installing python\-requests causes digital_ocean_v2 to fail with "[ERROR ] Failed to get the output of \(aqdigital_ocean.avail_sizes()\(aq: \(aqResponse\(aq object has no attribute \(aqtext\(aq" (refs: \fI\%#25609\fP)
  256947. .INDENT 2.0
  256948. .IP \(bu 2
  256949. \fBPR\fP \fI\%saltstack/salt\-bootstrap#627\fP: (\fI\%nyushi\fP) Fix tornado installation on ubuntu (refs: \fI\%#25609\fP)
  256950. .UNINDENT
  256951. .IP \(bu 2
  256952. \fBPR\fP \fI\%#25609\fP: (\fI\%s0undt3ch\fP) [2015.5] Update the bootstrap script to latest release v2015.07.22
  256953. @ \fI2015\-07\-22 16:28:52 UTC\fP
  256954. .INDENT 2.0
  256955. .IP \(bu 2
  256956. 224484df7e Merge pull request \fI\%#25609\fP from s0undt3ch/hotfix/bootstrap\-script\-2015.5
  256957. .IP \(bu 2
  256958. 96a8568336 Update the bootstrap script to latest release v2015.07.22
  256959. .UNINDENT
  256960. .IP \(bu 2
  256961. \fBISSUE\fP \fI\%#21912\fP: (\fI\%rvora\fP) pkg.latest not updating the package on CentOS though yum reports an update available (refs: \fI\%#25603\fP)
  256962. .IP \(bu 2
  256963. \fBPR\fP \fI\%#25603\fP: (\fI\%terminalmage\fP) Add version_cmp function to yumpkg.py
  256964. @ \fI2015\-07\-22 15:42:29 UTC\fP
  256965. .INDENT 2.0
  256966. .IP \(bu 2
  256967. 07eb78c79f Merge pull request \fI\%#25603\fP from terminalmage/issue21912
  256968. .IP \(bu 2
  256969. 99e532ba74 Add versionadded directive
  256970. .IP \(bu 2
  256971. 8a1765fc6f Add version_cmp function to yumpkg.py
  256972. .IP \(bu 2
  256973. 457e72e273 Fix refernces to __salt__[\(aqversion_cmp\(aq]
  256974. .IP \(bu 2
  256975. a19fa2296a Avoid using single\-letter variable
  256976. .UNINDENT
  256977. .IP \(bu 2
  256978. \fBISSUE\fP \fI\%#25560\fP: (\fI\%dennisjac\fP) scheduled highstate runs don\(aqt return results to the job cache (refs: \fI\%#25590\fP)
  256979. .IP \(bu 2
  256980. \fBPR\fP \fI\%#25590\fP: (\fI\%garethgreenaway\fP) 2015.5 scheduled jobs return data
  256981. @ \fI2015\-07\-21 21:57:42 UTC\fP
  256982. .INDENT 2.0
  256983. .IP \(bu 2
  256984. 69ef81caba Merge pull request \fI\%#25590\fP from garethgreenaway/25560_2015_5_schedule_return_data
  256985. .IP \(bu 2
  256986. 19ca0c0b40 Switching default in 2015.5 for whether job data in returned to the mater job_cache.
  256987. .UNINDENT
  256988. .IP \(bu 2
  256989. \fBPR\fP \fI\%#25584\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24054\fP and \fI\%#25576\fP to 2015.5
  256990. @ \fI2015\-07\-21 21:16:38 UTC\fP
  256991. .INDENT 2.0
  256992. .IP \(bu 2
  256993. \fBPR\fP \fI\%#25576\fP: (\fI\%pcn\fP) s3fs breaks when fetching files from s3 (refs: \fI\%#25584\fP)
  256994. .IP \(bu 2
  256995. \fBPR\fP \fI\%#24054\fP: (\fI\%mgwilliams\fP) s3.head: return useful data (refs: \fI\%#25584\fP)
  256996. .IP \(bu 2
  256997. 9ffefc867e Merge pull request \fI\%#25584\fP from rallytime/bp\-24054\-and\-25576
  256998. .IP \(bu 2
  256999. aa9598e3a5 s3fs breaks when fetching files from s3
  257000. .IP \(bu 2
  257001. 1667d67c3e s3.head: return useful data
  257002. .UNINDENT
  257003. .IP \(bu 2
  257004. \fBISSUE\fP \fI\%#23626\fP: (\fI\%mirko\fP) salt state \(aqssh_known_hosts\(aq doesn\(aqt take \(aqport\(aq into account (refs: \fI\%#25589\fP)
  257005. .IP \(bu 2
  257006. \fBPR\fP \fI\%#25589\fP: (\fI\%jahamn\fP) Fixes ssh_known_host not taking port into account
  257007. @ \fI2015\-07\-21 21:15:06 UTC\fP
  257008. .INDENT 2.0
  257009. .IP \(bu 2
  257010. a966e439d1 Merge pull request \fI\%#25589\fP from jahamn/Fix\-ssh_known_host\-not\-taking\-port\-into\-account
  257011. .IP \(bu 2
  257012. 8db7ada82d Fixed pylint e8303 errors
  257013. .IP \(bu 2
  257014. 6abad29f66 Fixed pylint errors
  257015. .IP \(bu 2
  257016. 8ae6ba1290 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into Fix\-ssh_known_host\-not\-taking\-port\-into\-account
  257017. .UNINDENT
  257018. .IP \(bu 2
  257019. \fBPR\fP \fI\%#25573\fP: (\fI\%EvaSDK\fP) Do not execute bootstrap script twice
  257020. @ \fI2015\-07\-21 18:20:04 UTC\fP
  257021. .INDENT 2.0
  257022. .IP \(bu 2
  257023. \fBPR\fP \fI\%#25465\fP: (\fI\%EvaSDK\fP) 2015.5.3 LXC module fixes (refs: \fI\%#25573\fP)
  257024. .IP \(bu 2
  257025. df74f2c3ad Merge pull request \fI\%#25573\fP from EvaSDK/2015.5.3\-lxc\-fixes
  257026. .IP \(bu 2
  257027. 49cec9f9a1 Use a more persistent tmp directory
  257028. .IP \(bu 2
  257029. 96a672f8e0 Do not execute bootstrap script twice
  257030. .UNINDENT
  257031. .IP \(bu 2
  257032. \fBISSUE\fP \fI\%#25532\fP: (\fI\%attiasr\fP) salt/modules/win_pkg.py list_pkgs is broken (encoding issues) (refs: \fI\%#25580\fP, \fI\%#25556\fP)
  257033. .IP \(bu 2
  257034. \fBPR\fP \fI\%#25580\fP: (\fI\%attiasr\fP) use explicit utf\-8 decoding (\fI\%#25532\fP)
  257035. @ \fI2015\-07\-21 15:40:49 UTC\fP
  257036. .INDENT 2.0
  257037. .IP \(bu 2
  257038. 79a809dd79 Merge pull request \fI\%#25580\fP from attiasr/patch\-1
  257039. .IP \(bu 2
  257040. 4b7dc96919 use explicit utf\-8 decoding (\fI\%#25532\fP)
  257041. .UNINDENT
  257042. .IP \(bu 2
  257043. \fBISSUE\fP \fI\%#25206\fP: (\fI\%jfindlay\fP) fullname issues with user.add state on windows (refs: \fI\%#25568\fP)
  257044. .IP \(bu 2
  257045. \fBPR\fP \fI\%#25568\fP: (\fI\%twangboy\fP) Fixed win_useradd module to add fullname
  257046. @ \fI2015\-07\-21 14:30:25 UTC\fP
  257047. .INDENT 2.0
  257048. .IP \(bu 2
  257049. 6edf196533 Merge pull request \fI\%#25568\fP from twangboy/fix_25206
  257050. .IP \(bu 2
  257051. fbee445c6d Commented out a pylint error
  257052. .IP \(bu 2
  257053. 4b56dc3893 Fixed win_useradd module to add fullname
  257054. .UNINDENT
  257055. .IP \(bu 2
  257056. \fBISSUE\fP \fI\%#21041\fP: (\fI\%deuscapturus\fP) state module gem.installed not working on Windows. (refs: \fI\%#25430\fP, \fI\%#25561\fP, \fI\%#25428\fP)
  257057. .IP \(bu 2
  257058. \fBPR\fP \fI\%#25561\fP: (\fI\%twangboy\fP) Fixed the gem module to work on windows... without injection
  257059. @ \fI2015\-07\-20 21:12:15 UTC\fP
  257060. .INDENT 2.0
  257061. .IP \(bu 2
  257062. \fBPR\fP \fI\%#25428\fP: (\fI\%twangboy\fP) Fixed the gem module to work on windows (refs: \fI\%#25561\fP)
  257063. .IP \(bu 2
  257064. 3c32b0b669 Merge pull request \fI\%#25561\fP from twangboy/fix_21041_again
  257065. .IP \(bu 2
  257066. aaf3f3dcd0 Fixed some line and style issues
  257067. .IP \(bu 2
  257068. e6d0e5cda7 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_21041_again
  257069. .UNINDENT
  257070. .IP \(bu 2
  257071. \fBPR\fP \fI\%#25521\fP: (\fI\%cachedout\fP) Fix outputter for state.orch
  257072. @ \fI2015\-07\-20 19:30:14 UTC\fP
  257073. .INDENT 2.0
  257074. .IP \(bu 2
  257075. 9e19142c35 Merge pull request \fI\%#25521\fP from cachedout/orch_outputter
  257076. .IP \(bu 2
  257077. ea40816621 Try/except
  257078. .IP \(bu 2
  257079. dd609eb440 Fix outputter for state.orch
  257080. .UNINDENT
  257081. .IP \(bu 2
  257082. \fBPR\fP \fI\%#25563\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  257083. @ \fI2015\-07\-20 19:27:36 UTC\fP
  257084. .INDENT 2.0
  257085. .IP \(bu 2
  257086. 2117ac8022 Merge pull request \fI\%#25563\fP from basepi/merge\-forward\-2015.5
  257087. .IP \(bu 2
  257088. 3bf2f1a722 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  257089. .IP \(bu 2
  257090. 09ebaceca8 Merge pull request \fI\%#25416\fP from cachedout/str_2014_7
  257091. .INDENT 2.0
  257092. .IP \(bu 2
  257093. cc514938a8 Fix broken keyword
  257094. .INDENT 2.0
  257095. .IP \(bu 2
  257096. d67491bb80 Removed the logger as it\(aqs not used anymore
  257097. .IP \(bu 2
  257098. 5008bfee96 Merge branch \(aq2015.5\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_21041_again
  257099. .UNINDENT
  257100. .UNINDENT
  257101. .UNINDENT
  257102. .IP \(bu 2
  257103. \fBPR\fP \fI\%#25559\fP: (\fI\%cachedout\fP) Lint win_pkg
  257104. @ \fI2015\-07\-20 17:46:29 UTC\fP
  257105. .INDENT 2.0
  257106. .IP \(bu 2
  257107. 50c257b1d5 Merge pull request \fI\%#25559\fP from cachedout/lint_win_pkg
  257108. .IP \(bu 2
  257109. 53a00add99 Lint win_pkg
  257110. .UNINDENT
  257111. .IP \(bu 2
  257112. \fBISSUE\fP \fI\%#25532\fP: (\fI\%attiasr\fP) salt/modules/win_pkg.py list_pkgs is broken (encoding issues) (refs: \fI\%#25580\fP, \fI\%#25556\fP)
  257113. .IP \(bu 2
  257114. \fBPR\fP \fI\%#25556\fP: (\fI\%attiasr\fP) fix for \fI\%#25532\fP
  257115. @ \fI2015\-07\-20 17:45:11 UTC\fP
  257116. .INDENT 2.0
  257117. .IP \(bu 2
  257118. 7c7015ccda Merge pull request \fI\%#25556\fP from attiasr/patch\-1
  257119. .IP \(bu 2
  257120. 9b224e8d4e fix for \fI\%#25532\fP
  257121. .UNINDENT
  257122. .IP \(bu 2
  257123. \fBISSUE\fP \fI\%#25538\fP: (\fI\%stanislavb\fP) S3 ext_pillar configuration requires verify_ssl (refs: \fI\%#25554\fP)
  257124. .IP \(bu 2
  257125. \fBPR\fP \fI\%#25554\fP: (\fI\%jfindlay\fP) verify_ssl=True for s3 ext pillar
  257126. @ \fI2015\-07\-20 17:43:38 UTC\fP
  257127. .INDENT 2.0
  257128. .IP \(bu 2
  257129. 3c73dab2ce Merge pull request \fI\%#25554\fP from jfindlay/verify_ssl
  257130. .IP \(bu 2
  257131. ca3ab4e737 verify_ssl=True for s3 ext pillar
  257132. .UNINDENT
  257133. .IP \(bu 2
  257134. \fBPR\fP \fI\%#25551\fP: (\fI\%rallytime\fP) Backport \fI\%#25530\fP to 2015.5
  257135. @ \fI2015\-07\-20 17:43:00 UTC\fP
  257136. .INDENT 2.0
  257137. .IP \(bu 2
  257138. \fBPR\fP \fI\%#25530\fP: (\fI\%andre\-luiz\-dos\-santos\fP) The variable name must be last (refs: \fI\%#25551\fP)
  257139. .IP \(bu 2
  257140. e3e2e6718e Merge pull request \fI\%#25551\fP from rallytime/bp\-25530
  257141. .IP \(bu 2
  257142. df5003d7f9 The variable name must be last
  257143. .UNINDENT
  257144. .IP \(bu 2
  257145. \fBPR\fP \fI\%#25533\fP: (\fI\%attiasr\fP) port 445 for windows bootstraping
  257146. @ \fI2015\-07\-20 15:13:06 UTC\fP
  257147. .INDENT 2.0
  257148. .IP \(bu 2
  257149. 3e3441937f Merge pull request \fI\%#25533\fP from attiasr/patch\-2
  257150. .IP \(bu 2
  257151. c7fbf68597 fix windows bootstrapping
  257152. .UNINDENT
  257153. .IP \(bu 2
  257154. \fBISSUE\fP \fI\%#25432\fP: (\fI\%gtmanfred\fP) [2015.5.3][raet] raet error with SaltRaetRoadStackJoiner (refs: \fI\%#25525\fP)
  257155. .IP \(bu 2
  257156. \fBPR\fP \fI\%#25525\fP: (\fI\%gtmanfred\fP) add make _prepare an alias for postinitio
  257157. @ \fI2015\-07\-20 15:12:38 UTC\fP
  257158. .INDENT 2.0
  257159. .IP \(bu 2
  257160. 7fc051f56d Merge pull request \fI\%#25525\fP from gtmanfred/2015.5
  257161. .IP \(bu 2
  257162. 43950a5bc5 add make _prepare an alias for postinitio
  257163. .UNINDENT
  257164. .IP \(bu 2
  257165. \fBISSUE\fP \fI\%#25511\fP: (\fI\%rallytime\fP) Make provider \-\-> driver change backward compatible (refs: \fI\%#25519\fP)
  257166. .IP \(bu 2
  257167. \fBISSUE\fP \fI\%#23574\fP: (\fI\%CedNantes\fP) Failed to Deploy Salt\-Minion on a Win 2012 R2 using wmware Cloud Driver from Develop branch (refs: \fI\%#25519\fP)
  257168. .IP \(bu 2
  257169. \fBPR\fP \fI\%#25519\fP: (\fI\%rallytime\fP) Backport vmware driver to 2015.5 branch
  257170. @ \fI2015\-07\-20 15:11:26 UTC\fP
  257171. .INDENT 2.0
  257172. .IP \(bu 2
  257173. 725d1a40d0 Merge pull request \fI\%#25519\fP from rallytime/backport_vmware
  257174. .IP \(bu 2
  257175. 35e13eef1d Don\(aqt reference driver in older salt versions
  257176. .IP \(bu 2
  257177. f011890217 Add vmware back\-port change to release notes
  257178. .IP \(bu 2
  257179. 0f4f560b38 Backport vmware driver to 2015.5 branch
  257180. .UNINDENT
  257181. .IP \(bu 2
  257182. \fBPR\fP \fI\%#25542\fP: (\fI\%Oro\fP) Fix hipchat.send_message when using API v2
  257183. @ \fI2015\-07\-20 15:09:13 UTC\fP
  257184. .INDENT 2.0
  257185. .IP \(bu 2
  257186. 2f0d695bc0 Merge pull request \fI\%#25542\fP from Oro/fix\-hipchat\-v2\-sendmessage
  257187. .IP \(bu 2
  257188. 3a9f5b037f Fix hipchat.send_message when using API v2
  257189. .UNINDENT
  257190. .IP \(bu 2
  257191. \fBPR\fP \fI\%#25531\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25529\fP to 2015.5
  257192. @ \fI2015\-07\-18 19:16:10 UTC\fP
  257193. .INDENT 2.0
  257194. .IP \(bu 2
  257195. \fBPR\fP \fI\%#25529\fP: (\fI\%davidjb\fP) Fix minor typo in best practice example (refs: \fI\%#25531\fP)
  257196. .IP \(bu 2
  257197. 390aa7d28f Merge pull request \fI\%#25531\fP from rallytime/bp\-25529
  257198. .IP \(bu 2
  257199. 3e24381439 Fix minor typo in best practice example
  257200. .UNINDENT
  257201. .IP \(bu 2
  257202. \fBPR\fP \fI\%#25528\fP: (\fI\%davidjb\fP) Fix typo in extend declaration doco
  257203. @ \fI2015\-07\-18 14:22:06 UTC\fP
  257204. .INDENT 2.0
  257205. .IP \(bu 2
  257206. 6e811bfdd2 Merge pull request \fI\%#25528\fP from davidjb/patch\-7
  257207. .IP \(bu 2
  257208. bfc4f9fd85 Fix typo in extend declaration doco
  257209. .UNINDENT
  257210. .IP \(bu 2
  257211. \fBISSUE\fP \fI\%#25486\fP: (\fI\%whiteinge\fP) Highstate outputter not used for state.apply (refs: \fI\%#25517\fP)
  257212. .IP \(bu 2
  257213. \fBPR\fP \fI\%#25517\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25486\fP to 2015.5
  257214. @ \fI2015\-07\-17 21:49:26 UTC\fP
  257215. .INDENT 2.0
  257216. .IP \(bu 2
  257217. \fBPR\fP \fI\%#25485\fP: (\fI\%attiasr\fP) fix file downloads on windows
  257218. .IP \(bu 2
  257219. b9abd723a7 Merge pull request \fI\%#25517\fP from rallytime/bp\-25485
  257220. .IP \(bu 2
  257221. 6c2f3180c2 fix file downloads on windows
  257222. .UNINDENT
  257223. .IP \(bu 2
  257224. \fBISSUE\fP \fI\%#25479\fP: (\fI\%alexandrsushko\fP) multiple mount.mounted of one device (refs: \fI\%#25483\fP)
  257225. .IP \(bu 2
  257226. \fBPR\fP \fI\%#25516\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25483\fP to 2015.5
  257227. @ \fI2015\-07\-17 21:49:05 UTC\fP
  257228. .INDENT 2.0
  257229. .IP \(bu 2
  257230. \fBPR\fP \fI\%#25483\fP: (\fI\%alexandrsushko\fP) Added \(aqnone\(aq to the set of specialFSes (refs: \fI\%#25516\fP)
  257231. .IP \(bu 2
  257232. 9cb436fbae Merge pull request \fI\%#25516\fP from rallytime/bp\-25483
  257233. .IP \(bu 2
  257234. e0af6e3478 Added \(aqnone\(aq to the set of specialFSes
  257235. .UNINDENT
  257236. .IP \(bu 2
  257237. \fBISSUE\fP \fI\%#25493\fP: (\fI\%blackduckx\fP) Issue with job_args on schedule.add command (refs: \fI\%#25513\fP)
  257238. .IP \(bu 2
  257239. \fBPR\fP \fI\%#25513\fP: (\fI\%garethgreenaway\fP) fixes to schedule.add documentation in 2015.5
  257240. @ \fI2015\-07\-17 17:03:24 UTC\fP
  257241. .INDENT 2.0
  257242. .IP \(bu 2
  257243. daf03efb7c Merge pull request \fI\%#25513\fP from garethgreenaway/25493_2015_5_schedule_add_documentation
  257244. .IP \(bu 2
  257245. bc2414bc4d Fixing documentation for schedule.add when using the job_args parameter, value needs to be be in quotes for the value to be passed in as an array.
  257246. .UNINDENT
  257247. .IP \(bu 2
  257248. \fBPR\fP \fI\%#25465\fP: (\fI\%EvaSDK\fP) 2015.5.3 LXC module fixes (refs: \fI\%#25573\fP)
  257249. @ \fI2015\-07\-17 15:57:54 UTC\fP
  257250. .INDENT 2.0
  257251. .IP \(bu 2
  257252. 48050cd287 Merge pull request \fI\%#25465\fP from EvaSDK/2015.5.3\-lxc\-fixes
  257253. .IP \(bu 2
  257254. 170eb52cc4 Fix use of undefined cmd when install of boostrap script fails
  257255. .IP \(bu 2
  257256. 86118f4a7b Install bootstrap script like dns and systemd check scripts in container
  257257. .IP \(bu 2
  257258. 978e6d56e2 Error out if configdir could not be created when preparing LXC container
  257259. .IP \(bu 2
  257260. 41b6c3c2bf Fix typo in redirecting shell output to /dev/null
  257261. .IP \(bu 2
  257262. 456393d4db Fix DNS script cleanup
  257263. .UNINDENT
  257264. .IP \(bu 2
  257265. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#611\fP: (\fI\%BretFisher\fP) SmartOS doesn\(aqt detect missing git, fails install (refs: \fI\%#25506\fP)
  257266. .IP \(bu 2
  257267. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#607\fP: (\fI\%bechtoldt\fP) (git install) change source of init scripts for debian based systems (refs: \fI\%#25506\fP)
  257268. .IP \(bu 2
  257269. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#602\fP: (\fI\%rallytime\fP) Ubuntu 14.10 Won\(aqt Bootstrap with Latest Stable (refs: \fI\%#25506\fP)
  257270. .IP \(bu 2
  257271. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#598\fP: (\fI\%babilen\fP) Installation fails on Debian 7 due to missing easy_install (refs: \fI\%#25506\fP)
  257272. .IP \(bu 2
  257273. \fBISSUE\fP \fI\%saltstack/salt#25456\fP: (\fI\%julienlavergne\fP) [2015.8.0rc1] salt\-bootstrap fails to install salt master (refs: \fI\%#25506\fP)
  257274. .IP \(bu 2
  257275. \fBISSUE\fP \fI\%saltstack/salt#25270\fP: (\fI\%iggy\fP) [2015.8.0rc1] salt\-bootstrap fails to properly install a minion (refs: \fI\%#25506\fP)
  257276. .IP \(bu 2
  257277. \fBISSUE\fP \fI\%#619\fP: (\fI\%syphernl\fP) Only send over changed files during state.highstate (refs: #\(gasaltstack/salt\-bootstrap#621\(ga_)
  257278. .INDENT 2.0
  257279. .IP \(bu 2
  257280. \fBPR\fP \fI\%saltstack/salt\-bootstrap#625\fP: (\fI\%hasues\fP) Modify bootstrap\-salt.sh unbound error with CONFIG_PROTECT_MASK for Gentoo (refs: \fI\%#25506\fP)
  257281. .IP \(bu 2
  257282. \fBPR\fP \fI\%saltstack/salt\-bootstrap#624\fP: (\fI\%BretFisher\fP) fix config and etc path on SmartOS (refs: \fI\%#25506\fP)
  257283. .IP \(bu 2
  257284. \fBPR\fP \fI\%saltstack/salt\-bootstrap#621\fP: (\fI\%lomeroe\fP) python\-jinja2 has been moved to rhui\-...server\-releases\-optional repo… (refs: \fI\%#25506\fP)
  257285. .IP \(bu 2
  257286. \fBPR\fP \fI\%saltstack/salt\-bootstrap#606\fP: (\fI\%babilen\fP) Switch to httpredir.debian.org as default Debian mirror (refs: \fI\%#25506\fP)
  257287. .IP \(bu 2
  257288. \fBPR\fP \fI\%saltstack/salt\-bootstrap#455\fP: (\fI\%denmat\fP) PR: Issue 394 (refs: \fI\%#25506\fP)
  257289. .UNINDENT
  257290. .IP \(bu 2
  257291. \fBPR\fP \fI\%#25506\fP: (\fI\%s0undt3ch\fP) [2015.5] Update bootstrap script to latest stable release, v2015.07.17
  257292. @ \fI2015\-07\-17 15:40:38 UTC\fP
  257293. .INDENT 2.0
  257294. .IP \(bu 2
  257295. f85f2b49fd Merge pull request \fI\%#25506\fP from s0undt3ch/hotfix/bootstrap\-script
  257296. .IP \(bu 2
  257297. ab6aaa6e60 Update bootstrap script to latest stable release, v2015.07.17
  257298. .UNINDENT
  257299. .IP \(bu 2
  257300. \fBISSUE\fP \fI\%#25454\fP: (\fI\%mschiff\fP) Regression: salt 2015.5 not working in secure chroot anymore. (refs: \fI\%#25498\fP)
  257301. .IP \(bu 2
  257302. \fBPR\fP \fI\%#25498\fP: (\fI\%jfindlay\fP) only read /proc/1/cmdline if it exists
  257303. @ \fI2015\-07\-17 15:35:33 UTC\fP
  257304. .INDENT 2.0
  257305. .IP \(bu 2
  257306. c8caf406b2 Merge pull request \fI\%#25498\fP from jfindlay/jail_init
  257307. .IP \(bu 2
  257308. c63a6c206f only read /proc/1/cmdline if it exists
  257309. .UNINDENT
  257310. .IP \(bu 2
  257311. \fBPR\fP \fI\%#25487\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25464\fP to 2015.5
  257312. @ \fI2015\-07\-16 16:58:36 UTC\fP
  257313. .INDENT 2.0
  257314. .IP \(bu 2
  257315. \fBPR\fP \fI\%#25464\fP: (\fI\%jquast\fP) docfix: "cache_jobs: False" => grains_cache: False" (refs: \fI\%#25487\fP)
  257316. .IP \(bu 2
  257317. 3f695a17cf Merge pull request \fI\%#25487\fP from rallytime/bp\-25464
  257318. .IP \(bu 2
  257319. e947d8ec5a docfix: "cache_jobs: False" => grains_cache: False"
  257320. .UNINDENT
  257321. .IP \(bu 2
  257322. \fBPR\fP \fI\%#25482\fP: (\fI\%oeuftete\fP) Fix docker.running detection of running container
  257323. @ \fI2015\-07\-16 16:58:29 UTC\fP
  257324. .INDENT 2.0
  257325. .IP \(bu 2
  257326. 331808eb7d Merge pull request \fI\%#25482\fP from oeuftete/docker\-running\-is\-running\-fix\-2015\-5
  257327. .IP \(bu 2
  257328. b69379ba50 Fix docker.running detection of running container
  257329. .UNINDENT
  257330. .IP \(bu 2
  257331. \fBISSUE\fP \fI\%#25384\fP: (\fI\%rickh563\fP) pyopenssl 0.14 requirement in 2015.5.3 does not work in RHEL6 : ZD\-364 (refs: \fI\%#25468\fP)
  257332. .IP \(bu 2
  257333. \fBPR\fP \fI\%#25468\fP: (\fI\%joejulian\fP) Add support for pyOpenSSL > 0.10
  257334. @ \fI2015\-07\-16 15:10:30 UTC\fP
  257335. .INDENT 2.0
  257336. .IP \(bu 2
  257337. 7a20ecbf46 Merge pull request \fI\%#25468\fP from joejulian/use_pyopenssl_0_10
  257338. .IP \(bu 2
  257339. 1b7a56aa38 Add support for pyOpenSSL > 0.10
  257340. .UNINDENT
  257341. .IP \(bu 2
  257342. \fBPR\fP \fI\%#25467\fP: (\fI\%rallytime\fP) Add lxml dependency to opennebula docs
  257343. @ \fI2015\-07\-16 15:09:57 UTC\fP
  257344. .INDENT 2.0
  257345. .IP \(bu 2
  257346. d169905170 Merge pull request \fI\%#25467\fP from rallytime/lxml_dep
  257347. .IP \(bu 2
  257348. d326f4f686 Add lxml dependency to opennebula docs
  257349. .UNINDENT
  257350. .IP \(bu 2
  257351. \fBISSUE\fP \fI\%#25250\fP: (\fI\%wipfs\fP) \(aqforce\(aq option in copy state deletes target file (refs: \fI\%#25461\fP, \fI\%#25710\fP)
  257352. .IP \(bu 2
  257353. \fBISSUE\fP \fI\%#24647\fP: (\fI\%nmadhok\fP) salt.states.file.copy does not copy the file if it already exists with force=True (refs: \fI\%#25461\fP)
  257354. .IP \(bu 2
  257355. \fBPR\fP \fI\%#25461\fP: (\fI\%jahamn\fP) Update file, if force option and content not same
  257356. @ \fI2015\-07\-15 20:15:07 UTC\fP
  257357. .INDENT 2.0
  257358. .IP \(bu 2
  257359. 89649456e0 Merge pull request \fI\%#25461\fP from jahamn/fixed\-file.copy\-force\-option\-deleting\-files\-without\-updating\-them
  257360. .IP \(bu 2
  257361. 32cf1ebbb5 Update file, if force option and content not same
  257362. .UNINDENT
  257363. .IP \(bu 2
  257364. \fBISSUE\fP \fI\%#25431\fP: (\fI\%namcois\fP) Digital Ocean v2 reducing API calls by adding per_page (refs: \fI\%#25438\fP)
  257365. .IP \(bu 2
  257366. \fBPR\fP \fI\%#25438\fP: (\fI\%rallytime\fP) Reduce digital_ocean_v2 API call frequency
  257367. @ \fI2015\-07\-15 19:40:18 UTC\fP
  257368. .INDENT 2.0
  257369. .IP \(bu 2
  257370. 146a81b7c3 Merge pull request \fI\%#25438\fP from rallytime/do_v2
  257371. .IP \(bu 2
  257372. faf49ea2a3 Add page number change release notes
  257373. .IP \(bu 2
  257374. da6ab82837 Reduce digital_ocean_v2 API call frequency
  257375. .UNINDENT
  257376. .IP \(bu 2
  257377. \fBPR\fP \fI\%#25457\fP: (\fI\%jacksontj\fP) Saltnado
  257378. @ \fI2015\-07\-15 17:50:12 UTC\fP
  257379. .INDENT 2.0
  257380. .IP \(bu 2
  257381. \fBPR\fP \fI\%#25427\fP: (\fI\%tony\-cocco\fP) Saltnado runner client results in blocking call despite being set\-up as Runner.async (refs: \fI\%#25457\fP)
  257382. .IP \(bu 2
  257383. cb98d79cdd Merge pull request \fI\%#25457\fP from jacksontj/saltnado
  257384. .IP \(bu 2
  257385. bc32f66b98 Add runner_async endpoint to salnado
  257386. .IP \(bu 2
  257387. b043fa9b05 Better name of method process manager is starting
  257388. .UNINDENT
  257389. .IP \(bu 2
  257390. \fBPR\fP \fI\%#25459\fP: (\fI\%jahamn\fP) Fixed \(aqdefulats\(aq typo in verify.py
  257391. @ \fI2015\-07\-15 16:53:06 UTC\fP
  257392. .INDENT 2.0
  257393. .IP \(bu 2
  257394. 3f72eb5486 Merge pull request \fI\%#25459\fP from jahamn/fix\-defulats\-typo\-in\-verify.py
  257395. .IP \(bu 2
  257396. 9bafd19f67 Fixed \(aqdefulats\(aq typo in verify.py
  257397. .UNINDENT
  257398. .IP \(bu 2
  257399. \fBPR\fP \fI\%#25426\fP: (\fI\%jquast\fP) bugfix: trailing "...done" in rabbitmq output (backport from \(aqdevelop\(aq to 2015.5)
  257400. @ \fI2015\-07\-15 14:48:05 UTC\fP
  257401. .INDENT 2.0
  257402. .IP \(bu 2
  257403. 73566188cf Merge pull request \fI\%#25426\fP from jquast/2015.5
  257404. .IP \(bu 2
  257405. 005a7ca2a3 bugfix: trailing "...done" in rabbitmq output
  257406. .UNINDENT
  257407. .IP \(bu 2
  257408. \fBPR\fP \fI\%#25433\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (ifconfig)
  257409. @ \fI2015\-07\-15 14:44:09 UTC\fP
  257410. .INDENT 2.0
  257411. .IP \(bu 2
  257412. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  257413. .IP \(bu 2
  257414. cfec990062 Merge pull request \fI\%#25433\fP from jleroy/ipv6\-scope\-support\-ifconfig
  257415. .IP \(bu 2
  257416. bc36d05c0c Support for IPv6 addresses scopes in network.interfaces (ifconfig)
  257417. .UNINDENT
  257418. .IP \(bu 2
  257419. \fBISSUE\fP \fI\%#21041\fP: (\fI\%deuscapturus\fP) state module gem.installed not working on Windows. (refs: \fI\%#25430\fP, \fI\%#25561\fP, \fI\%#25428\fP)
  257420. .IP \(bu 2
  257421. \fBPR\fP \fI\%#25430\fP: (\fI\%twangboy\fP) Disabled rbenv execution module for Windows
  257422. @ \fI2015\-07\-15 14:41:18 UTC\fP
  257423. .INDENT 2.0
  257424. .IP \(bu 2
  257425. a425230c19 Merge pull request \fI\%#25430\fP from twangboy/fix_21041_2
  257426. .IP \(bu 2
  257427. 242fc21765 Disabled rbenv execution module for Windows
  257428. .INDENT 2.0
  257429. .INDENT 3.5
  257430. .INDENT 0.0
  257431. .IP \(bu 2
  257432. 8b2dc681f9 Fixed the gem module to work on windows... without injection
  257433. .IP \(bu 2
  257434. c7466e7894 Fixes ssh_known_host to take port into account
  257435. .UNINDENT
  257436. .UNINDENT
  257437. .UNINDENT
  257438. .UNINDENT
  257439. .IP \(bu 2
  257440. \fBISSUE\fP \fI\%#1846\fP: (\fI\%seanchannel\fP) development dependencies
  257441. .IP \(bu 2
  257442. \fBPR\fP \fI\%#25420\fP: (\fI\%techhat\fP) Move S3 to use AWS Signature Version 4
  257443. @ \fI2015\-07\-14 22:03:09 UTC\fP
  257444. .INDENT 2.0
  257445. .IP \(bu 2
  257446. 9313804e27 Merge pull request \fI\%#25420\fP from techhat/s3sig4
  257447. .IP \(bu 2
  257448. 3edf3a14e2 Linting
  257449. .IP \(bu 2
  257450. c63c2356be Move S3 to use AWS Signature Version 4
  257451. .UNINDENT
  257452. .IP \(bu 2
  257453. \fBISSUE\fP \fI\%#20441\fP: (\fI\%deuscapturus\fP) State module file.managed returns an error on Windows and test=Test (refs: \fI\%#25418\fP)
  257454. .IP \(bu 2
  257455. \fBPR\fP \fI\%#25418\fP: (\fI\%twangboy\fP) Fixed problem with file.managed test=True
  257456. @ \fI2015\-07\-14 21:26:59 UTC\fP
  257457. .INDENT 2.0
  257458. .IP \(bu 2
  257459. 30a41d3f51 Merge pull request \fI\%#25418\fP from twangboy/fix_20441
  257460. .IP \(bu 2
  257461. d8957856cd Fixed problem with file.managed test=True
  257462. .UNINDENT
  257463. .IP \(bu 2
  257464. \fBPR\fP \fI\%#25417\fP: (\fI\%ahus1\fP) extended documentation about dependencies for dig module
  257465. @ \fI2015\-07\-14 20:49:51 UTC\fP
  257466. .INDENT 2.0
  257467. .IP \(bu 2
  257468. 3805677e93 Merge pull request \fI\%#25417\fP from ahus1/patch\-1
  257469. .IP \(bu 2
  257470. 3cd194ebaf Update dig.py
  257471. .IP \(bu 2
  257472. 287f8f76e3 extended documentation about dependencies
  257473. .UNINDENT
  257474. .IP \(bu 2
  257475. \fBPR\fP \fI\%#25411\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  257476. @ \fI2015\-07\-14 17:55:26 UTC\fP
  257477. .INDENT 2.0
  257478. .IP \(bu 2
  257479. 4d929071e1 Merge pull request \fI\%#25411\fP from basepi/merge\-forward\-2015.5
  257480. .IP \(bu 2
  257481. 33d2451fef Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  257482. .IP \(bu 2
  257483. 2a1dd1113f Merge pull request \fI\%#25375\fP from cachedout/config_fix_2014_7
  257484. .INDENT 2.0
  257485. .IP \(bu 2
  257486. c041f2905f Fix error in config.py for master_type
  257487. .UNINDENT
  257488. .IP \(bu 2
  257489. 2590e23d48 Merge pull request \fI\%#25324\fP from jacobhammons/doc\-theme\-updates
  257490. .INDENT 2.0
  257491. .IP \(bu 2
  257492. 88f5fcf58d Latest help theme updates
  257493. .UNINDENT
  257494. .UNINDENT
  257495. .IP \(bu 2
  257496. \fBPR\fP \fI\%#25406\fP: (\fI\%anlutro\fP) Force arguments to aptpkg.version_cmp into strings
  257497. @ \fI2015\-07\-14 16:15:41 UTC\fP
  257498. .INDENT 2.0
  257499. .IP \(bu 2
  257500. 81bed62d16 Merge pull request \fI\%#25406\fP from alprs/fix\-apt_version_cmp_types
  257501. .IP \(bu 2
  257502. d56efd1341 force arguments to apt_pkg.version_compare into strings
  257503. .UNINDENT
  257504. .IP \(bu 2
  257505. \fBPR\fP \fI\%#25408\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25399\fP to 2015.5
  257506. @ \fI2015\-07\-14 16:09:06 UTC\fP
  257507. .INDENT 2.0
  257508. .IP \(bu 2
  257509. \fBPR\fP \fI\%#25399\fP: (\fI\%jarpy\fP) Demonstrate per\-minion client_acl. (refs: \fI\%#25408\fP)
  257510. .IP \(bu 2
  257511. cd9ea63ff2 Merge pull request \fI\%#25408\fP from rallytime/bp\-25399
  257512. .IP \(bu 2
  257513. da9c0eb673 Typo in client_acl ref doc.
  257514. .IP \(bu 2
  257515. 50e0baf270 Demonstrate per\-minion client_acl.
  257516. .UNINDENT
  257517. .IP \(bu 2
  257518. \fBPR\fP \fI\%#25240\fP: (\fI\%tankywoo\fP) file make os.walk only be called one
  257519. @ \fI2015\-07\-14 16:04:49 UTC\fP
  257520. .INDENT 2.0
  257521. .IP \(bu 2
  257522. ef9f6b0ce0 Merge pull request \fI\%#25240\fP from tankywoo/fix\-files\-os\-walk\-multiple\-times
  257523. .IP \(bu 2
  257524. 8044def1c0 file make os.walk only be called one
  257525. .UNINDENT
  257526. .IP \(bu 2
  257527. \fBPR\fP \fI\%#25395\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25389\fP to 2015.5
  257528. @ \fI2015\-07\-14 03:26:34 UTC\fP
  257529. .INDENT 2.0
  257530. .IP \(bu 2
  257531. \fBPR\fP \fI\%#25389\fP: (\fI\%l2ol33rt\fP) Adding entropy note for gpg renderer (refs: \fI\%#25395\fP)
  257532. .IP \(bu 2
  257533. d02f388b08 Merge pull request \fI\%#25395\fP from rallytime/bp\-25389
  257534. .IP \(bu 2
  257535. a086e5ad35 Adding entropy note
  257536. .UNINDENT
  257537. .IP \(bu 2
  257538. \fBPR\fP \fI\%#25392\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25256\fP to 2015.5
  257539. @ \fI2015\-07\-14 03:25:13 UTC\fP
  257540. .INDENT 2.0
  257541. .IP \(bu 2
  257542. \fBPR\fP \fI\%#25256\fP: (\fI\%yanatan16\fP) Dont assume source_hash exists (refs: \fI\%#25392\fP)
  257543. .IP \(bu 2
  257544. 008e3295c6 Merge pull request \fI\%#25392\fP from rallytime/bp\-25256
  257545. .IP \(bu 2
  257546. 6b2da4d582 Dont assume source_hash exists
  257547. .UNINDENT
  257548. .IP \(bu 2
  257549. \fBPR\fP \fI\%#25398\fP: (\fI\%twangboy\fP) Fix date
  257550. @ \fI2015\-07\-14 03:21:17 UTC\fP
  257551. .INDENT 2.0
  257552. .IP \(bu 2
  257553. 3f278963ae Merge pull request \fI\%#25398\fP from twangboy/fix_date
  257554. .IP \(bu 2
  257555. 52824f9602 Added /V1 /Z to remove scheduled task after run
  257556. .IP \(bu 2
  257557. a055cca79f Changed date of scheduled task to work in other locales
  257558. .UNINDENT
  257559. .IP \(bu 2
  257560. \fBPR\fP \fI\%#25397\fP: (\fI\%GideonRed\-zz\fP) Introduce standard error output when cli exits with non\-zero status
  257561. @ \fI2015\-07\-14 03:20:24 UTC\fP
  257562. .INDENT 2.0
  257563. .IP \(bu 2
  257564. 978d9f7117 Merge pull request \fI\%#25397\fP from GideonRed/2015.5
  257565. .IP \(bu 2
  257566. ea7ab27f31 Introduce standard error output when cli exits with non\-zero status
  257567. .UNINDENT
  257568. .IP \(bu 2
  257569. \fBISSUE\fP \fI\%#24444\fP: (\fI\%michaelkrupp\fP) file.managed does not handle dead symlinks (refs: \fI\%#25383\fP)
  257570. .IP \(bu 2
  257571. \fBPR\fP \fI\%#25386\fP: (\fI\%cachedout\fP) Lint \fI\%#25383\fP
  257572. @ \fI2015\-07\-13 21:01:10 UTC\fP
  257573. .INDENT 2.0
  257574. .IP \(bu 2
  257575. \fBPR\fP \fI\%#25383\fP: (\fI\%jahamn\fP) Fix manage_file function in salt/modules/file.py to handle broken sym… (refs: \fI\%#25386\fP)
  257576. .IP \(bu 2
  257577. 09442abbde Merge pull request \fI\%#25386\fP from cachedout/lint_25383
  257578. .IP \(bu 2
  257579. 7694299170 Lint \fI\%#25383\fP
  257580. .UNINDENT
  257581. .IP \(bu 2
  257582. \fBISSUE\fP \fI\%#24444\fP: (\fI\%michaelkrupp\fP) file.managed does not handle dead symlinks (refs: \fI\%#25383\fP)
  257583. .IP \(bu 2
  257584. \fBPR\fP \fI\%#25383\fP: (\fI\%jahamn\fP) Fix manage_file function in salt/modules/file.py to handle broken sym… (refs: \fI\%#25386\fP)
  257585. @ \fI2015\-07\-13 20:58:23 UTC\fP
  257586. .INDENT 2.0
  257587. .IP \(bu 2
  257588. 47bcc61f55 Merge pull request \fI\%#25383\fP from jahamn/Fix\-file.managed_not_handling_dead_symlinks
  257589. .IP \(bu 2
  257590. ab17aa160e Fix manage_file function in salt/modules/file.py to handle broken symlinks
  257591. .UNINDENT
  257592. .IP \(bu 2
  257593. \fBPR\fP \fI\%#25369\fP: (\fI\%anlutro\fP) Fix aptpkg.version_cmp
  257594. @ \fI2015\-07\-13 20:18:45 UTC\fP
  257595. .INDENT 2.0
  257596. .IP \(bu 2
  257597. c9fe10e7aa Merge pull request \fI\%#25369\fP from alprs/fix\-apt_version_cmp
  257598. .IP \(bu 2
  257599. 6391b15b3e fix aptpkg.version_cmp
  257600. .UNINDENT
  257601. .IP \(bu 2
  257602. \fBISSUE\fP \fI\%#25337\fP: (\fI\%eliasp\fP) \fIsalt\-call\fP from non\-existend cwd backtraces (refs: \fI\%#25379\fP)
  257603. .IP \(bu 2
  257604. \fBPR\fP \fI\%#25379\fP: (\fI\%jfindlay\fP) check for cwd before getting it
  257605. @ \fI2015\-07\-13 19:50:27 UTC\fP
  257606. .INDENT 2.0
  257607. .IP \(bu 2
  257608. beb0238392 Merge pull request \fI\%#25379\fP from jfindlay/check_wd
  257609. .IP \(bu 2
  257610. 6e4547ff38 check for cwd before getting it
  257611. .UNINDENT
  257612. .IP \(bu 2
  257613. \fBISSUE\fP \fI\%#25320\fP: (\fI\%podloucky\-init\fP) zypper module list_upgrades broken (2015.5.2) (refs: \fI\%#25334\fP)
  257614. .IP \(bu 2
  257615. \fBPR\fP \fI\%#25334\fP: (\fI\%jfindlay\fP) return all cmd info back to zypper fcn
  257616. @ \fI2015\-07\-13 17:03:29 UTC\fP
  257617. .INDENT 2.0
  257618. .IP \(bu 2
  257619. 274622ad9b Merge pull request \fI\%#25334\fP from jfindlay/fix_zyp
  257620. .IP \(bu 2
  257621. c1e633903e return all cmd info back to zypper fcn
  257622. .UNINDENT
  257623. .IP \(bu 2
  257624. \fBPR\fP \fI\%#25339\fP: (\fI\%jfindlay\fP) update orchestration docs
  257625. @ \fI2015\-07\-13 16:04:26 UTC\fP
  257626. .INDENT 2.0
  257627. .IP \(bu 2
  257628. 71859c6593 Merge pull request \fI\%#25339\fP from jfindlay/orch_doc
  257629. .IP \(bu 2
  257630. 0447808d95 clarify, motivate orchestration docs
  257631. .UNINDENT
  257632. .IP \(bu 2
  257633. \fBISSUE\fP \fI\%#22241\fP: (\fI\%masterkorp\fP) Salt master not properly generating the map (refs: \fI\%#25358\fP)
  257634. .IP \(bu 2
  257635. \fBPR\fP \fI\%#25358\fP: (\fI\%dkiser\fP) Deep merge of pillar lists (refs: \fI\%#26016\fP)
  257636. @ \fI2015\-07\-13 15:51:01 UTC\fP
  257637. .INDENT 2.0
  257638. .IP \(bu 2
  257639. 90a1ca02a3 Merge pull request \fI\%#25358\fP from dkiser/22241_pillar_merge_lists
  257640. .IP \(bu 2
  257641. d030e289b3 Deep merge of pillar lists
  257642. .UNINDENT
  257643. .IP \(bu 2
  257644. \fBISSUE\fP \fI\%#25281\fP: (\fI\%shinshenjs\fP) Unless usage in Official Doc syntax error? (refs: \fI\%#25346\fP)
  257645. .IP \(bu 2
  257646. \fBPR\fP \fI\%#25346\fP: (\fI\%bechtoldt\fP) set correct indention in states/requisites.rst (docs), fixes \fI\%#25281\fP
  257647. @ \fI2015\-07\-13 15:34:45 UTC\fP
  257648. .INDENT 2.0
  257649. .IP \(bu 2
  257650. 66c619fd71 Merge pull request \fI\%#25346\fP from bechtoldt/issue25281
  257651. .IP \(bu 2
  257652. 8eb2ac1dbe set correct indention in states/requisites.rst (docs), fixes \fI\%#25281\fP
  257653. .UNINDENT
  257654. .IP \(bu 2
  257655. \fBPR\fP \fI\%#25336\fP: (\fI\%terminalmage\fP) Don\(aqt try to read init binary if it wasn\(aqt found
  257656. @ \fI2015\-07\-13 09:45:30 UTC\fP
  257657. .INDENT 2.0
  257658. .IP \(bu 2
  257659. b122ed931d Merge pull request \fI\%#25336\fP from terminalmage/fix\-init\-grain
  257660. .IP \(bu 2
  257661. f473918a53 Don\(aqt try to read init binary if it wasn\(aqt found
  257662. .UNINDENT
  257663. .IP \(bu 2
  257664. \fBPR\fP \fI\%#25350\fP: (\fI\%davidjb\fP) Fix documentation for file.blockreplace
  257665. @ \fI2015\-07\-13 03:41:20 UTC\fP
  257666. .INDENT 2.0
  257667. .IP \(bu 2
  257668. 1805bafc89 Merge pull request \fI\%#25350\fP from davidjb/patch\-4
  257669. .IP \(bu 2
  257670. e13a9fd74e Fix documentation for file.blockreplace
  257671. .UNINDENT
  257672. .IP \(bu 2
  257673. \fBISSUE\fP \fI\%#19288\fP: (\fI\%oba11\fP) AssociatePublicIpAddress doesnt work with salt\-cloud 2014.7.0 (refs: \fI\%#25326\fP, \fI\%#20972\fP)
  257674. .IP \(bu 2
  257675. \fBPR\fP \fI\%#25326\fP: (\fI\%rallytime\fP) Back\-port \fI\%#20972\fP to 2015.5
  257676. @ \fI2015\-07\-10 18:49:44 UTC\fP
  257677. .INDENT 2.0
  257678. .IP \(bu 2
  257679. \fBPR\fP \fI\%#20972\fP: (\fI\%JohannesEbke\fP) Fix interface cleanup when using AssociatePublicIpAddress in \fI\%#19288\fP (refs: \fI\%#25326\fP)
  257680. .IP \(bu 2
  257681. b0196fccb7 Merge pull request \fI\%#25326\fP from rallytime/bp\-20972
  257682. .IP \(bu 2
  257683. 51c941f59d Also fix cleanup of interfaces when using AssociatePublicIpAddress in \fI\%#19288\fP
  257684. .UNINDENT
  257685. .IP \(bu 2
  257686. \fBISSUE\fP \fI\%#24433\fP: (\fI\%chrimi\fP) Salt locale state fails, if locale has not been generated (refs: \fI\%#25290\fP)
  257687. .IP \(bu 2
  257688. \fBPR\fP \fI\%#25327\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25290\fP to 2015.5
  257689. @ \fI2015\-07\-10 18:49:37 UTC\fP
  257690. .INDENT 2.0
  257691. .IP \(bu 2
  257692. \fBPR\fP \fI\%#25290\fP: (\fI\%pcdummy\fP) Simple fix for locale.present on Ubuntu. (refs: \fI\%#25327\fP)
  257693. .IP \(bu 2
  257694. 28450d124e Merge pull request \fI\%#25327\fP from rallytime/bp\-25290
  257695. .IP \(bu 2
  257696. 20032c55f3 Simple fix for locale.present on Ubuntu.
  257697. .UNINDENT
  257698. .IP \(bu 2
  257699. \fBISSUE\fP \fI\%#24827\fP: (\fI\%yermulnik\fP) locale.present doesn\(aqt generate locales (refs: \fI\%#25309\fP)
  257700. .IP \(bu 2
  257701. \fBPR\fP \fI\%#25328\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25309\fP to 2015.5
  257702. @ \fI2015\-07\-10 17:22:59 UTC\fP
  257703. .INDENT 2.0
  257704. .IP \(bu 2
  257705. \fBPR\fP \fI\%#25309\fP: (\fI\%davidjb\fP) Format /etc/locale.gen correctly in salt.modules.localemod.gen_locale (refs: \fI\%#25328\fP)
  257706. .IP \(bu 2
  257707. 8f666a24f3 Merge pull request \fI\%#25328\fP from rallytime/bp\-25309
  257708. .IP \(bu 2
  257709. 44d44ec574 Format /etc/locale.gen correctly on gen_locale
  257710. .UNINDENT
  257711. .IP \(bu 2
  257712. \fBPR\fP \fI\%#25322\fP: (\fI\%jacobhammons\fP) version change to 2015.5.3
  257713. @ \fI2015\-07\-10 16:11:24 UTC\fP
  257714. .INDENT 2.0
  257715. .IP \(bu 2
  257716. 0a33a1d8bb Merge pull request \fI\%#25322\fP from jacobhammons/release\-2015.5.3
  257717. .IP \(bu 2
  257718. 19f88920fa version change to 2015.5.3
  257719. .UNINDENT
  257720. .IP \(bu 2
  257721. \fBPR\fP \fI\%#25308\fP: (\fI\%jacksontj\fP) Make clear commands trace level logging
  257722. @ \fI2015\-07\-10 14:20:06 UTC\fP
  257723. .INDENT 2.0
  257724. .IP \(bu 2
  257725. \fBPR\fP \fI\%#24737\fP: (\fI\%jacksontj\fP) Move AES command logging to trace (refs: \fI\%#25308\fP)
  257726. .IP \(bu 2
  257727. 2f0f59b6cb Merge pull request \fI\%#25308\fP from jacksontj/2015.5
  257728. .IP \(bu 2
  257729. 60fc770ba2 Make clear commands trace level logging
  257730. .UNINDENT
  257731. .IP \(bu 2
  257732. \fBISSUE\fP \fI\%#24520\fP: (\fI\%nvx\fP) Tomcat module fails to extract version number from snapshot builds (2015.5 regression) (refs: \fI\%#24927\fP)
  257733. .IP \(bu 2
  257734. \fBPR\fP \fI\%#25269\fP: (\fI\%jfindlay\fP) Extract tomcat war version
  257735. @ \fI2015\-07\-10 01:28:21 UTC\fP
  257736. .INDENT 2.0
  257737. .IP \(bu 2
  257738. \fBPR\fP \fI\%#24927\fP: (\fI\%egarbi\fP) Tomcat module fails to extract version number from snapshot builds #2… (refs: \fI\%#25269\fP)
  257739. .IP \(bu 2
  257740. 9b6646d578 Merge pull request \fI\%#25269\fP from jfindlay/tomcat
  257741. .IP \(bu 2
  257742. fd4fca172d consolidate tomcat exec and state version extract
  257743. .IP \(bu 2
  257744. 59dc833567 update tomcat war_deployed state tests
  257745. .IP \(bu 2
  257746. edca458b6c Fixed 2 blank lines around import re
  257747. .IP \(bu 2
  257748. 7e528d1050 Tomcat module fails to extract version number from snapshot builds \fI\%#24520\fP
  257749. .UNINDENT
  257750. .IP \(bu 2
  257751. \fBISSUE\fP \fI\%#18808\fP: (\fI\%amendlik\fP) Add command line argument to select pillar environment (refs: \fI\%#25238\fP)
  257752. .IP \(bu 2
  257753. \fBPR\fP \fI\%#25238\fP: (\fI\%DmitryKuzmenko\fP) Pillarenv backport 2015.5
  257754. @ \fI2015\-07\-10 01:25:07 UTC\fP
  257755. .INDENT 2.0
  257756. .IP \(bu 2
  257757. 0f82ac3e30 Merge pull request \fI\%#25238\fP from DSRCompany/pillarenv_backport_2015.5
  257758. .IP \(bu 2
  257759. 98792eb179 Pillarenv support in minion config, cp and cmdmod modules.
  257760. .IP \(bu 2
  257761. 88ff576f39 Support pillarenv cmdline in state.sls. Backport of PR \fI\%#23719\fP
  257762. .UNINDENT
  257763. .IP \(bu 2
  257764. \fBISSUE\fP \fI\%#13943\fP: (\fI\%Supermathie\fP) Powershell commands that expect input hang forever (refs: \fI\%#25299\fP)
  257765. .IP \(bu 2
  257766. \fBPR\fP \fI\%#25299\fP: (\fI\%twangboy\fP) Added \-NonInteractive so powershell doesn\(aqt hang waiting for input
  257767. @ \fI2015\-07\-09 21:00:16 UTC\fP
  257768. .INDENT 2.0
  257769. .IP \(bu 2
  257770. 219d4cad9c Merge pull request \fI\%#25299\fP from twangboy/fix_13943
  257771. .IP \(bu 2
  257772. c05889031f Added \-NonInteractive so powershell doesn\(aqt hang waiting for input
  257773. .UNINDENT
  257774. .IP \(bu 2
  257775. \fBPR\fP \fI\%#25301\fP: (\fI\%jacobhammons\fP) bug fix for module function display in help
  257776. @ \fI2015\-07\-09 20:46:34 UTC\fP
  257777. .INDENT 2.0
  257778. .IP \(bu 2
  257779. 1c43892a80 Merge pull request \fI\%#25301\fP from jacobhammons/doc\-bugs
  257780. .IP \(bu 2
  257781. f6561289af bug fix for module function display in help
  257782. .UNINDENT
  257783. .IP \(bu 2
  257784. \fBISSUE\fP \fI\%#25277\fP: (\fI\%jacobhammons\fP) CherryPy recommended versions (refs: \fI\%#25279\fP)
  257785. .IP \(bu 2
  257786. \fBPR\fP \fI\%#25279\fP: (\fI\%jacobhammons\fP) Additional docs on external and master job cache, assorted doc fixes
  257787. @ \fI2015\-07\-09 16:46:26 UTC\fP
  257788. .INDENT 2.0
  257789. .IP \(bu 2
  257790. 68149bc686 Merge pull request \fI\%#25279\fP from jacobhammons/job\-cache\-docs
  257791. .IP \(bu 2
  257792. 57dfa92d5a Fixed typos
  257793. .IP \(bu 2
  257794. 2f9e5b9125 Additional docs on external and master job cache, assorted doc fixes Refs \fI\%#25277\fP
  257795. .UNINDENT
  257796. .IP \(bu 2
  257797. \fBISSUE\fP \fI\%#25268\fP: (\fI\%lichtamberg\fP) Salt not working anymore in 2015.8/develop: ValueError: \(aqscope\(aq is not in list (refs: \fI\%#25274\fP)
  257798. .IP \(bu 2
  257799. \fBPR\fP \fI\%#25274\fP: (\fI\%jleroy\fP) Fix for issue \fI\%#25268\fP
  257800. @ \fI2015\-07\-09 13:36:26 UTC\fP
  257801. .INDENT 2.0
  257802. .IP \(bu 2
  257803. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  257804. .IP \(bu 2
  257805. 972fa2fb54 Merge pull request \fI\%#25274\fP from jleroy/25268\-fix
  257806. .IP \(bu 2
  257807. 2c698d204b Fix for issue \fI\%#25268\fP
  257808. .UNINDENT
  257809. .IP \(bu 2
  257810. \fBPR\fP \fI\%#25272\fP: (\fI\%twangboy\fP) Fixed problem with service not starting
  257811. @ \fI2015\-07\-08 23:29:48 UTC\fP
  257812. .INDENT 2.0
  257813. .IP \(bu 2
  257814. 8ebb73df2d Merge pull request \fI\%#25272\fP from twangboy/service
  257815. .IP \(bu 2
  257816. e61eeba48b Fixed problem with service not starting
  257817. .UNINDENT
  257818. .IP \(bu 2
  257819. \fBISSUE\fP \fI\%#25223\fP: (\fI\%nmadhok\fP) Runner occasionally fails with a RuntimeError when fired by a reactor (refs: \fI\%#25225\fP)
  257820. .IP \(bu 2
  257821. \fBPR\fP \fI\%#25225\fP: (\fI\%nmadhok\fP) Backporting fix for issue \fI\%#25223\fP on 2015.5 branch
  257822. @ \fI2015\-07\-08 15:16:18 UTC\fP
  257823. .INDENT 2.0
  257824. .IP \(bu 2
  257825. c6efd2356c Merge pull request \fI\%#25225\fP from nmadhok/client\-runtime\-fix\-backport\-2015\-2
  257826. .IP \(bu 2
  257827. 391b7d6730 Backporting fix for issue \fI\%#25223\fP on 2015.2 branch
  257828. .UNINDENT
  257829. .IP \(bu 2
  257830. \fBPR\fP \fI\%#25214\fP: (\fI\%rallytime\fP) A couple of doc fixes for the http tutorial
  257831. @ \fI2015\-07\-07 22:23:07 UTC\fP
  257832. .INDENT 2.0
  257833. .IP \(bu 2
  257834. 207fbaeac4 Merge pull request \fI\%#25214\fP from rallytime/http_doc
  257835. .IP \(bu 2
  257836. d0b61f3fc1 A couple of doc fixes for the http tutorial
  257837. .UNINDENT
  257838. .IP \(bu 2
  257839. \fBISSUE\fP \fI\%#24272\fP: (\fI\%rallytime\fP) Fix boto_vpc_test moto version check (refs: \fI\%#25194\fP)
  257840. .IP \(bu 2
  257841. \fBPR\fP \fI\%#25194\fP: (\fI\%rallytime\fP) Update moto version check in boto_vpc_test and update min version
  257842. @ \fI2015\-07\-07 18:27:32 UTC\fP
  257843. .INDENT 2.0
  257844. .IP \(bu 2
  257845. 9dd5cd8a8e Merge pull request \fI\%#25194\fP from rallytime/fix\-24272
  257846. .IP \(bu 2
  257847. f959e165a1 Clean up imports
  257848. .IP \(bu 2
  257849. fbc9c0d6bf Fix Pylint
  257850. .IP \(bu 2
  257851. fe2561f415 Update moto version check in boto_vpc_test and update min version
  257852. .UNINDENT
  257853. .IP \(bu 2
  257854. \fBPR\fP \fI\%#25205\fP: (\fI\%basepi\fP) Update releasecandidate docs
  257855. @ \fI2015\-07\-07 15:25:24 UTC\fP
  257856. .INDENT 2.0
  257857. .IP \(bu 2
  257858. a3e9486c28 Merge pull request \fI\%#25205\fP from basepi/releasecandidatedocs
  257859. .IP \(bu 2
  257860. 452880d4aa Update releasecandidate docs
  257861. .UNINDENT
  257862. .IP \(bu 2
  257863. \fBPR\fP \fI\%#25187\fP: (\fI\%UtahDave\fP) Doc fixes: Fix misspelling and remove extraneous double spaces
  257864. @ \fI2015\-07\-07 01:07:04 UTC\fP
  257865. .INDENT 2.0
  257866. .IP \(bu 2
  257867. fbafd39a46 Merge pull request \fI\%#25187\fP from UtahDave/fix_misspelling
  257868. .IP \(bu 2
  257869. 65abb63003 remove some extraneous double spaces
  257870. .IP \(bu 2
  257871. c423b62aa5 fix misspelling
  257872. .UNINDENT
  257873. .IP \(bu 2
  257874. \fBPR\fP \fI\%#25182\fP: (\fI\%cachedout\fP) Try to re\-pack long floats as strs
  257875. @ \fI2015\-07\-07 01:06:43 UTC\fP
  257876. .INDENT 2.0
  257877. .IP \(bu 2
  257878. ddee90ce23 Merge pull request \fI\%#25182\fP from cachedout/pack_long_floats
  257879. .IP \(bu 2
  257880. a192ecfd74 Try to re\-pack long ints as strs
  257881. .UNINDENT
  257882. .IP \(bu 2
  257883. \fBISSUE\fP \fI\%#23822\fP: (\fI\%sidcarter\fP) Zip file extracted permissions are incorrect (refs: \fI\%#25128\fP)
  257884. .IP \(bu 2
  257885. \fBPR\fP \fI\%#25185\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25128\fP to 2015.5
  257886. @ \fI2015\-07\-07 00:58:00 UTC\fP
  257887. .INDENT 2.0
  257888. .IP \(bu 2
  257889. \fBPR\fP \fI\%#25128\fP: (\fI\%stanislavb\fP) Use cmd_unzip to preserve permissions (refs: \fI\%#25185\fP)
  257890. .IP \(bu 2
  257891. df9982b836 Merge pull request \fI\%#25185\fP from rallytime/bp\-25128
  257892. .IP \(bu 2
  257893. 1726057c8a Use cmd_unzip to preserve permissions
  257894. .UNINDENT
  257895. .IP \(bu 2
  257896. \fBPR\fP \fI\%#25181\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25102\fP to 2015.5
  257897. @ \fI2015\-07\-07 00:57:13 UTC\fP
  257898. .INDENT 2.0
  257899. .IP \(bu 2
  257900. \fBPR\fP \fI\%#25102\fP: (\fI\%derBroBro\fP) Update win_network.py (refs: \fI\%#25181\fP)
  257901. .IP \(bu 2
  257902. df0bb8c831 Merge pull request \fI\%#25181\fP from rallytime/bp\-25102
  257903. .IP \(bu 2
  257904. 64d8f14417 Update win_network.py
  257905. .IP \(bu 2
  257906. 6789c5b8e8 Update win_network.py
  257907. .UNINDENT
  257908. .IP \(bu 2
  257909. \fBISSUE\fP \fI\%#24301\fP: (\fI\%iggy\fP) influxdb_user and influxdb_database states need virtual functions (refs: \fI\%#25059\fP)
  257910. .IP \(bu 2
  257911. \fBPR\fP \fI\%#25179\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25059\fP to 2015.5
  257912. @ \fI2015\-07\-07 00:56:44 UTC\fP
  257913. .INDENT 2.0
  257914. .IP \(bu 2
  257915. \fBPR\fP \fI\%#25059\fP: (\fI\%babilen\fP) Add virtual functions to influxdb state modules (refs: \fI\%#25179\fP)
  257916. .IP \(bu 2
  257917. 04fdd7b0ee Merge pull request \fI\%#25179\fP from rallytime/bp\-25059
  257918. .IP \(bu 2
  257919. 1eeefbd2ab Add virtual functions to influxdb state modules
  257920. .UNINDENT
  257921. .IP \(bu 2
  257922. \fBISSUE\fP \fI\%#18919\fP: (\fI\%giner\fP) Windows: pkg.refresh_db returns false\-positive success (refs: \fI\%#25196\fP)
  257923. .IP \(bu 2
  257924. \fBPR\fP \fI\%#25196\fP: (\fI\%twangboy\fP) Fixed \fI\%#18919\fP false\-positive on pkg.refresh
  257925. @ \fI2015\-07\-07 00:24:13 UTC\fP
  257926. .INDENT 2.0
  257927. .IP \(bu 2
  257928. 58b7d0e653 Merge pull request \fI\%#25196\fP from twangboy/pkg_refresh
  257929. .IP \(bu 2
  257930. 12ffcd1062 Fixed \fI\%#18919\fP false\-positive on pkg.refresh
  257931. .UNINDENT
  257932. .IP \(bu 2
  257933. \fBPR\fP \fI\%#25180\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25088\fP to 2015.5
  257934. @ \fI2015\-07\-06 20:33:45 UTC\fP
  257935. .INDENT 2.0
  257936. .IP \(bu 2
  257937. \fBPR\fP \fI\%#25088\fP: (\fI\%supertom\fP) Update (refs: \fI\%#25180\fP)
  257938. .IP \(bu 2
  257939. 4a406aca45 Merge pull request \fI\%#25180\fP from rallytime/bp\-25088
  257940. .IP \(bu 2
  257941. 4078c8db25 added message recommending JSON file be used if the libcloud version is >= 0.17.0
  257942. .UNINDENT
  257943. .IP \(bu 2
  257944. \fBPR\fP \fI\%#25191\fP: (\fI\%basepi\fP) Add extrndest back to fileclient.is_cached in 2015.5
  257945. @ \fI2015\-07\-06 19:35:24 UTC\fP
  257946. .INDENT 2.0
  257947. .IP \(bu 2
  257948. \fBPR\fP \fI\%#25117\fP: (\fI\%basepi\fP) Fix fileclient.is_cached (refs: \fI\%#25191\fP)
  257949. .IP \(bu 2
  257950. 01ed062ca7 Merge pull request \fI\%#25191\fP from basepi/fix.fileclient.is_cached
  257951. .IP \(bu 2
  257952. 5fa74f4408 Add back in the extrndest stuff (which is now in develop)
  257953. .UNINDENT
  257954. .IP \(bu 2
  257955. \fBISSUE\fP \fI\%#25016\fP: (\fI\%martinhoefling\fP) salt\-run doc.execution fails with AttributeError (refs: \fI\%#25020\fP)
  257956. .IP \(bu 2
  257957. \fBPR\fP \fI\%#25175\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25020\fP to 2015.5
  257958. @ \fI2015\-07\-06 18:53:19 UTC\fP
  257959. .INDENT 2.0
  257960. .IP \(bu 2
  257961. \fBPR\fP \fI\%#25020\fP: (\fI\%martinhoefling\fP) Fix for issue \fI\%#25016\fP (refs: \fI\%#25175\fP)
  257962. .IP \(bu 2
  257963. a9404aea5c Merge pull request \fI\%#25175\fP from rallytime/bp\-25020
  257964. .IP \(bu 2
  257965. da2e1704ea Fix for issue \fI\%#25016\fP
  257966. .UNINDENT
  257967. .IP \(bu 2
  257968. \fBISSUE\fP \fI\%#21879\fP: (\fI\%bechtoldt\fP) Reference pages in documentation are outdated again (refs: \fI\%#25019\fP, \fI\%#21880\fP)
  257969. .IP \(bu 2
  257970. \fBISSUE\fP \fI\%#19262\fP: (\fI\%bechtoldt\fP) salt.pillar.file_tree doesn\(aqt appear in the documentation (refs: \fI\%#25019\fP)
  257971. .IP \(bu 2
  257972. \fBPR\fP \fI\%#25173\fP: (\fI\%rallytime\fP) Partial back\-port of \fI\%#25019\fP
  257973. @ \fI2015\-07\-06 18:52:59 UTC\fP
  257974. .INDENT 2.0
  257975. .IP \(bu 2
  257976. \fBPR\fP \fI\%#25019\fP: (\fI\%bechtoldt\fP) add missing module documentation to references (refs: \fI\%#25173\fP)
  257977. .IP \(bu 2
  257978. \fBPR\fP \fI\%#24421\fP: (\fI\%bechtoldt\fP) add missing module documentation (refs: \fI\%#25019\fP)
  257979. .IP \(bu 2
  257980. \fBPR\fP \fI\%#21880\fP: (\fI\%bechtoldt\fP) update references, fixes \fI\%#21879\fP (refs: \fI\%#25019\fP)
  257981. .IP \(bu 2
  257982. \fBPR\fP \fI\%#20039\fP: (\fI\%bechtoldt\fP) completing some doc references (refs: \fI\%#25019\fP)
  257983. .IP \(bu 2
  257984. c70fec65b8 Merge pull request \fI\%#25173\fP from rallytime/partial\-bp\-25019
  257985. .IP \(bu 2
  257986. c0c2463b64 Partial backport of \fI\%#25019\fP
  257987. .UNINDENT
  257988. .IP \(bu 2
  257989. \fBPR\fP \fI\%#25171\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25001\fP to 2015.5
  257990. @ \fI2015\-07\-06 18:51:53 UTC\fP
  257991. .INDENT 2.0
  257992. .IP \(bu 2
  257993. \fBPR\fP \fI\%#25001\fP: (\fI\%jasonkeene\fP) Add docs for key arg in ssh_known_hosts.present (refs: \fI\%#25171\fP)
  257994. .IP \(bu 2
  257995. c5ba9a90ba Merge pull request \fI\%#25171\fP from rallytime/bp\-25001
  257996. .IP \(bu 2
  257997. a891108793 Add docs for key arg in ssh_known_hosts.present
  257998. .UNINDENT
  257999. .IP \(bu 2
  258000. \fBPR\fP \fI\%#25170\fP: (\fI\%rallytime\fP) Back\-port \fI\%#24982\fP to 2015.5
  258001. @ \fI2015\-07\-06 16:34:43 UTC\fP
  258002. .INDENT 2.0
  258003. .IP \(bu 2
  258004. \fBPR\fP \fI\%#24982\fP: (\fI\%asyncsrc\fP) ec2 network_interfaces fix (refs: \fI\%#25170\fP)
  258005. .IP \(bu 2
  258006. 3e06602545 Merge pull request \fI\%#25170\fP from rallytime/bp\-24982
  258007. .IP \(bu 2
  258008. 3e6eab3ae9 ec2 network_interfaces fix
  258009. .UNINDENT
  258010. .IP \(bu 2
  258011. \fBPR\fP \fI\%#25161\fP: (\fI\%aneeshusa\fP) Allow checking for non\-normalized systemd units.
  258012. @ \fI2015\-07\-06 15:15:31 UTC\fP
  258013. .INDENT 2.0
  258014. .IP \(bu 2
  258015. 09602808a0 Merge pull request \fI\%#25161\fP from aneeshusa/allow\-checking\-non\-normalized\-systemd\-service\-availability
  258016. .IP \(bu 2
  258017. b4d544fe70 Allow checking for non\-normalized systemd units.
  258018. .UNINDENT
  258019. .IP \(bu 2
  258020. \fBPR\fP \fI\%#25151\fP: (\fI\%jleroy\fP) Support for IPv6 addresses scopes in network.interfaces (refs: \fI\%#25274\fP, \fI\%#25433\fP)
  258021. @ \fI2015\-07\-06 14:43:03 UTC\fP
  258022. .INDENT 2.0
  258023. .IP \(bu 2
  258024. 3599b8abab Merge pull request \fI\%#25151\fP from jleroy/ipv6\-scope\-support
  258025. .IP \(bu 2
  258026. edce034e6c Support for IPv6 addresses scopes in network.interfaces
  258027. .UNINDENT
  258028. .IP \(bu 2
  258029. \fBISSUE\fP \fI\%#24979\fP: (\fI\%mavenAtHouzz\fP) [Discussion] Support for more than 1 netapi.rest_tornado server process (refs: \fI\%#25149\fP)
  258030. .IP \(bu 2
  258031. \fBPR\fP \fI\%#25166\fP: (\fI\%cachedout\fP) Lint \fI\%#25149\fP
  258032. @ \fI2015\-07\-06 14:40:29 UTC\fP
  258033. .INDENT 2.0
  258034. .IP \(bu 2
  258035. \fBPR\fP \fI\%#25149\fP: (\fI\%jacksontj\fP) Saltnado multiprocess support (refs: \fI\%#25166\fP)
  258036. .IP \(bu 2
  258037. 66d6365a9f Merge pull request \fI\%#25166\fP from cachedout/lint_saltnado
  258038. .IP \(bu 2
  258039. 2fe167edf8 Lint \fI\%#25149\fP
  258040. .UNINDENT
  258041. .IP \(bu 2
  258042. \fBISSUE\fP \fI\%#24979\fP: (\fI\%mavenAtHouzz\fP) [Discussion] Support for more than 1 netapi.rest_tornado server process (refs: \fI\%#25149\fP)
  258043. .IP \(bu 2
  258044. \fBPR\fP \fI\%#25149\fP: (\fI\%jacksontj\fP) Saltnado multiprocess support (refs: \fI\%#25166\fP)
  258045. @ \fI2015\-07\-06 14:38:43 UTC\fP
  258046. .INDENT 2.0
  258047. .IP \(bu 2
  258048. 2f1bad1c01 Merge pull request \fI\%#25149\fP from jacksontj/saltnado
  258049. .IP \(bu 2
  258050. 6aa5548e2d Enable multiprocess support in saltnado
  258051. .IP \(bu 2
  258052. 9a1351eada Change print to logger, so we can set a level and log exc_info
  258053. .UNINDENT
  258054. .IP \(bu 2
  258055. \fBPR\fP \fI\%#25120\fP: (\fI\%d\-\-j\fP) add missing continue for exception case
  258056. @ \fI2015\-07\-02 19:38:45 UTC\fP
  258057. .INDENT 2.0
  258058. .IP \(bu 2
  258059. a723af0f10 Merge pull request \fI\%#25120\fP from d\-\-j/patch\-2
  258060. .IP \(bu 2
  258061. 81d5d15dce add missing continue for error case
  258062. .UNINDENT
  258063. .IP \(bu 2
  258064. \fBPR\fP \fI\%#25117\fP: (\fI\%basepi\fP) Fix fileclient.is_cached (refs: \fI\%#25191\fP)
  258065. @ \fI2015\-07\-02 19:38:26 UTC\fP
  258066. .INDENT 2.0
  258067. .IP \(bu 2
  258068. 6e2222241a Merge pull request \fI\%#25117\fP from basepi/fix.fileclient.is_cached
  258069. .IP \(bu 2
  258070. 38e243fdfb Add fix from merge forward
  258071. .IP \(bu 2
  258072. 52f35f761a Add import
  258073. .IP \(bu 2
  258074. 23c32a7518 Backport develop version of salt.fileclient.is_cached
  258075. .UNINDENT
  258076. .IP \(bu 2
  258077. \fBPR\fP \fI\%#25087\fP: (\fI\%0xf10e\fP) Fix execution module for glance \- now based on 2015.5!
  258078. @ \fI2015\-07\-02 19:36:27 UTC\fP
  258079. .INDENT 2.0
  258080. .IP \(bu 2
  258081. c80990ba4f Merge pull request \fI\%#25087\fP from 0xf10e/fix_glance_2015.5
  258082. .IP \(bu 2
  258083. 7749cc081c PEP8 W601...
  258084. .IP \(bu 2
  258085. bbda079fa5 fix pylint E302, E502, E713, E1305
  258086. .IP \(bu 2
  258087. 3baacc72b4 use Glance API v1 for image_create
  258088. .IP \(bu 2
  258089. c3d6134da1 making pylint marginally happier
  258090. .IP \(bu 2
  258091. 19a20bf228 get valid properties for image_show() from the schema for "image"
  258092. .IP \(bu 2
  258093. 0c6a61173a add some debugging, fix a few AttributeErrors
  258094. .IP \(bu 2
  258095. aceca0e20d fix return of glance.image_show()
  258096. .IP \(bu 2
  258097. a47509e7dd fix return of image_list
  258098. .IP \(bu 2
  258099. 9f923edfab Change confusing "nt_ks" to "g_client"
  258100. .IP \(bu 2
  258101. fa2bd1a79c bit of docs/comments in image_create()
  258102. .IP \(bu 2
  258103. 5c34d0c494 merge 439b1e42053239b into 2015.5
  258104. .IP \(bu 2
  258105. 7a3cf27948 update attributes for image_show output
  258106. .IP \(bu 2
  258107. b1bec0f1a1 fix retry w/ user/pass if token fails
  258108. .IP \(bu 2
  258109. 2f4ef6683c update attributes for image_list output
  258110. .IP \(bu 2
  258111. eef3bc7048 use _auth() from neutron plus keystoneclient,
  258112. .UNINDENT
  258113. .IP \(bu 2
  258114. \fBPR\fP \fI\%#25129\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258115. @ \fI2015\-07\-02 17:37:40 UTC\fP
  258116. .INDENT 2.0
  258117. .IP \(bu 2
  258118. 549ee47420 Merge pull request \fI\%#25129\fP from basepi/merge\-forward\-2015.5
  258119. .IP \(bu 2
  258120. 187268d879 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258121. .IP \(bu 2
  258122. 36d53ef59e Merge pull request \fI\%#25093\fP from jaybocc2/2014.7
  258123. .INDENT 2.0
  258124. .IP \(bu 2
  258125. c6a501ebda quick fix for issue \fI\%#18447\fP
  258126. .UNINDENT
  258127. .IP \(bu 2
  258128. 38903a94a1 Merge pull request \fI\%#25069\fP from puneetk/patch\-1
  258129. .IP \(bu 2
  258130. f0b4e600e6 Update Documentation to clarify version added
  258131. .IP \(bu 2
  258132. f8dc6030e7 Pylint updates , removing whitespace
  258133. .IP \(bu 2
  258134. 532d315dd1 [Code Review update] renamed function to is_enaled from list_enabled
  258135. .IP \(bu 2
  258136. 20b0462289 Update schedule.py
  258137. .IP \(bu 2
  258138. 4f1471d7fb Add a helper module function called list_enabled
  258139. .IP \(bu 2
  258140. \fBPR\fP \fI\%saltstack/salt#24798\fP: (\fI\%justinta\fP) Revert "adding states/postgres_database unit test case." (refs: \fI\%#25114\fP)
  258141. .IP \(bu 2
  258142. \fBPR\fP \fI\%saltstack/salt#24329\fP: (\fI\%jayeshka\fP) adding states/postgres_database unit test case. (refs: #\(gasaltstack/salt#24798\(ga_)
  258143. .UNINDENT
  258144. .IP \(bu 2
  258145. \fBPR\fP \fI\%#25114\fP: (\fI\%jfindlay\fP) Revert "Revert "adding states/postgres_database unit test case.""
  258146. @ \fI2015\-07\-02 01:01:29 UTC\fP
  258147. .INDENT 2.0
  258148. .IP \(bu 2
  258149. 86f2791fdb Merge pull request \fI\%#25114\fP from saltstack/revert\-24798\-revert\-24329\-postgres_database\-states\-unit\-test
  258150. .IP \(bu 2
  258151. 071ee44d41 Revert "Revert "adding states/postgres_database unit test case.""
  258152. .UNINDENT
  258153. .IP \(bu 2
  258154. \fBPR\fP \fI\%#24362\fP: (\fI\%jayeshka\fP) adding states/postgres_user unit test case.
  258155. @ \fI2015\-07\-01 21:45:31 UTC\fP
  258156. .INDENT 2.0
  258157. .IP \(bu 2
  258158. bf8c7e7a9d Merge pull request \fI\%#24362\fP from jayeshka/postgres_user\-states\-unit\-test
  258159. .IP \(bu 2
  258160. fd1d834688 adding states/postgres_user unit test case.
  258161. .UNINDENT
  258162. .IP \(bu 2
  258163. \fBPR\fP \fI\%#24361\fP: (\fI\%jayeshka\fP) adding states/postgres_schema unit test case.
  258164. @ \fI2015\-07\-01 21:44:56 UTC\fP
  258165. .INDENT 2.0
  258166. .IP \(bu 2
  258167. 4195cea512 Merge pull request \fI\%#24361\fP from jayeshka/postgres_schema\-states\-unit\-test
  258168. .IP \(bu 2
  258169. 0558b0d744 adding states/postgres_schema unit test case.
  258170. .UNINDENT
  258171. .IP \(bu 2
  258172. \fBPR\fP \fI\%#24331\fP: (\fI\%jayeshka\fP) adding states/postgres_extension unit test case.
  258173. @ \fI2015\-07\-01 21:43:58 UTC\fP
  258174. .INDENT 2.0
  258175. .IP \(bu 2
  258176. ada8fe57d4 Merge pull request \fI\%#24331\fP from jayeshka/postgres_extension\-states\-unit\-test
  258177. .IP \(bu 2
  258178. 3d465a574a adding states/postgres_extension unit test case.
  258179. .UNINDENT
  258180. .UNINDENT
  258181. .SS Salt 2015.5.5 Release Notes
  258182. .INDENT 0.0
  258183. .TP
  258184. .B release
  258185. 2015\-08\-20
  258186. .UNINDENT
  258187. .sp
  258188. Version 2015.5.5 is a bugfix release for 2015.5.0\&.
  258189. .SS Statistics
  258190. .INDENT 0.0
  258191. .IP \(bu 2
  258192. Total Merges: \fB33\fP
  258193. .IP \(bu 2
  258194. Total Issue References: \fB28\fP
  258195. .IP \(bu 2
  258196. Total PR References: \fB39\fP
  258197. .IP \(bu 2
  258198. Contributors: \fB20\fP (\fI\%TheBigBear\fP, \fI\%arthurlogilab\fP, \fI\%basepi\fP, \fI\%bastiaanb\fP, \fI\%cachedout\fP, \fI\%driskell\fP, \fI\%garethgreenaway\fP, \fI\%jacobhammons\fP, \fI\%jahamn\fP, \fI\%jfindlay\fP, \fI\%rallytime\fP, \fI\%s0undt3ch\fP, \fI\%scottjpack\fP, \fI\%silenius\fP, \fI\%sixninetynine\fP, \fI\%stanislavb\fP, \fI\%terminalmage\fP, \fI\%thusoy\fP, \fI\%twangboy\fP, \fI\%vr\-jack\fP)
  258199. .UNINDENT
  258200. .SS Changelog for v2015.5.4..v2015.5.5
  258201. .sp
  258202. \fIGenerated at: 2018\-05\-27 22:04:18 UTC\fP
  258203. .INDENT 0.0
  258204. .IP \(bu 2
  258205. \fBISSUE\fP \fI\%#26484\fP: (\fI\%thusoy\fP) Git state leaks HTTPS user/pw to log (refs: \fI\%#26486\fP)
  258206. .IP \(bu 2
  258207. \fBISSUE\fP \fI\%#26482\fP: (\fI\%thusoy\fP) Git states doesn\(aqt allow user\-only auth (refs: \fI\%#26483\fP)
  258208. .IP \(bu 2
  258209. \fBPR\fP \fI\%#26486\fP: (\fI\%thusoy\fP) Git: Don\(aqt leak https user/pw to log
  258210. @ \fI2015\-08\-20 16:04:52 UTC\fP
  258211. .INDENT 2.0
  258212. .IP \(bu 2
  258213. \fBPR\fP \fI\%#26483\fP: (\fI\%thusoy\fP) Handle user\-only http auth in git module (refs: \fI\%#26486\fP)
  258214. .IP \(bu 2
  258215. 28aa9b1058 Merge pull request \fI\%#26486\fP from thusoy/git\-confidential\-auth
  258216. .IP \(bu 2
  258217. 5289165487 Git: Don\(aqt leak https user/pw to log
  258218. .UNINDENT
  258219. .IP \(bu 2
  258220. \fBISSUE\fP \fI\%#26432\fP: (\fI\%centromere\fP) Documentation incorrectly references salt\-key on the minion (refs: \fI\%#26476\fP)
  258221. .IP \(bu 2
  258222. \fBISSUE\fP \fI\%#26403\fP: (\fI\%adelcast\fP) Grains documentation incorrectly states they are static (refs: \fI\%#26476\fP)
  258223. .IP \(bu 2
  258224. \fBISSUE\fP \fI\%#26329\fP: (\fI\%cro\fP) Add note to eauth docs indicating default PAM service. (refs: \fI\%#26476\fP)
  258225. .IP \(bu 2
  258226. \fBISSUE\fP \fI\%#26264\fP: (\fI\%grep4linux\fP) state trees cannot have \(aqdots\(aq in the name (refs: \fI\%#26476\fP)
  258227. .IP \(bu 2
  258228. \fBISSUE\fP \fI\%#26233\fP: (\fI\%dove\-young\fP) pip install salt, then start master failed on Fedora 22 (refs: \fI\%#26476\fP)
  258229. .IP \(bu 2
  258230. \fBPR\fP \fI\%#26476\fP: (\fI\%jacobhammons\fP) Minor doc bug fixes
  258231. @ \fI2015\-08\-19 22:52:35 UTC\fP
  258232. .INDENT 2.0
  258233. .IP \(bu 2
  258234. 679ba5ee0a Merge pull request \fI\%#26476\fP from jacobhammons/doc\-bugs
  258235. .IP \(bu 2
  258236. 499bd66378 Minor doc bug fixes Refs \fI\%#26403\fP Refs \fI\%#26432\fP Refs \fI\%#26233\fP Refs \fI\%#26264\fP Refs \fI\%#26329\fP
  258237. .UNINDENT
  258238. .IP \(bu 2
  258239. \fBISSUE\fP \fI\%#26366\fP: (\fI\%GreatSnoopy\fP) The development tree produces hanging, 100%cpu salt\-master processes (refs: \fI\%#26443\fP)
  258240. .IP \(bu 2
  258241. \fBISSUE\fP \fI\%#26301\fP: (\fI\%waynew\fP) CPU pegged out running salt\-master (after running command) (refs: \fI\%#26443\fP)
  258242. .IP \(bu 2
  258243. \fBISSUE\fP \fI\%#25998\fP: (\fI\%driskell\fP) Event subsystem discarding required events during \-\-batch breaking it for slow running commands (refs: \fI\%#26000\fP)
  258244. .IP \(bu 2
  258245. \fBPR\fP \fI\%#26443\fP: (\fI\%cachedout\fP) Fix connect issue in event init
  258246. @ \fI2015\-08\-19 22:50:22 UTC\fP
  258247. .INDENT 2.0
  258248. .IP \(bu 2
  258249. \fBPR\fP \fI\%#26000\fP: (\fI\%driskell\fP) Implement full event caching for subscribed tags (refs: \fI\%#26443\fP)
  258250. .IP \(bu 2
  258251. 42b8c1b3f4 Merge pull request \fI\%#26443\fP from cachedout/fix_event_sub
  258252. .IP \(bu 2
  258253. 560977bc7e Fix connect issue in event init
  258254. .UNINDENT
  258255. .IP \(bu 2
  258256. \fBISSUE\fP \fI\%#26343\fP: (\fI\%jfindlay\fP) batch error when no minions match target (refs: \fI\%#26445\fP)
  258257. .IP \(bu 2
  258258. \fBPR\fP \fI\%#26445\fP: (\fI\%cachedout\fP) Raise clean error when no minions targeted in batch mode
  258259. @ \fI2015\-08\-19 22:50:07 UTC\fP
  258260. .INDENT 2.0
  258261. .IP \(bu 2
  258262. d2df1a86ad Merge pull request \fI\%#26445\fP from cachedout/issue_26343
  258263. .IP \(bu 2
  258264. 1600f3eccd Raise clean error when no minions targeted in batch mode
  258265. .UNINDENT
  258266. .IP \(bu 2
  258267. \fBISSUE\fP \fI\%#26482\fP: (\fI\%thusoy\fP) Git states doesn\(aqt allow user\-only auth (refs: \fI\%#26483\fP)
  258268. .IP \(bu 2
  258269. \fBPR\fP \fI\%#26483\fP: (\fI\%thusoy\fP) Handle user\-only http auth in git module (refs: \fI\%#26486\fP)
  258270. @ \fI2015\-08\-19 22:47:41 UTC\fP
  258271. .INDENT 2.0
  258272. .IP \(bu 2
  258273. a9b28e9577 Merge pull request \fI\%#26483\fP from thusoy/git\-user\-only\-auth
  258274. .IP \(bu 2
  258275. 09fc934acc Handle user\-only http auth in git module
  258276. .UNINDENT
  258277. .IP \(bu 2
  258278. \fBPR\fP \fI\%#26496\fP: (\fI\%jfindlay\fP) add dateutil dependency reporting
  258279. @ \fI2015\-08\-19 22:46:31 UTC\fP
  258280. .INDENT 2.0
  258281. .IP \(bu 2
  258282. edc04930ae Merge pull request \fI\%#26496\fP from jfindlay/dateutil
  258283. .IP \(bu 2
  258284. cbe330e78b add dateutil dependency reporting
  258285. .UNINDENT
  258286. .IP \(bu 2
  258287. \fBPR\fP \fI\%#26494\fP: (\fI\%cachedout\fP) Remove unecessary debug statements
  258288. @ \fI2015\-08\-19 20:46:00 UTC\fP
  258289. .INDENT 2.0
  258290. .IP \(bu 2
  258291. 4fff53b842 Merge pull request \fI\%#26494\fP from cachedout/remove_debug_statements
  258292. .IP \(bu 2
  258293. d717a43dcc Remove unecessary debug statements
  258294. .UNINDENT
  258295. .IP \(bu 2
  258296. \fBPR\fP \fI\%#26465\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26457\fP to 2015.5
  258297. @ \fI2015\-08\-19 16:08:16 UTC\fP
  258298. .INDENT 2.0
  258299. .IP \(bu 2
  258300. \fBPR\fP \fI\%#26457\fP: (\fI\%arthurlogilab\fP) docstring improvement for network.ping module execution (refs: \fI\%#26465\fP)
  258301. .IP \(bu 2
  258302. f46a0dab5d Merge pull request \fI\%#26465\fP from rallytime/bp\-26457
  258303. .IP \(bu 2
  258304. b3f638ff0f docstring improvement for network.ping module execution
  258305. .UNINDENT
  258306. .IP \(bu 2
  258307. \fBPR\fP \fI\%#26434\fP: (\fI\%s0undt3ch\fP) Fix missed typo
  258308. @ \fI2015\-08\-18 18:14:29 UTC\fP
  258309. .INDENT 2.0
  258310. .IP \(bu 2
  258311. c1458980f3 Merge pull request \fI\%#26434\fP from s0undt3ch/2015.5
  258312. .IP \(bu 2
  258313. 06dcaefcaa Fix missed typo
  258314. .UNINDENT
  258315. .IP \(bu 2
  258316. \fBISSUE\fP \fI\%#26426\fP: (\fI\%alxbse\fP) Private/public IPs are interchanged when listing nova driver cloud nodes (refs: \fI\%#26430\fP)
  258317. .IP \(bu 2
  258318. \fBPR\fP \fI\%#26430\fP: (\fI\%rallytime\fP) List public and private ips under the correct label
  258319. @ \fI2015\-08\-18 16:20:32 UTC\fP
  258320. .INDENT 2.0
  258321. .IP \(bu 2
  258322. 0f64be710f Merge pull request \fI\%#26430\fP from rallytime/fix\-26426
  258323. .IP \(bu 2
  258324. 2ba97316c9 List public and private ips under the correct label
  258325. .UNINDENT
  258326. .IP \(bu 2
  258327. \fBPR\fP \fI\%#26431\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26417\fP to 2015.5
  258328. @ \fI2015\-08\-18 15:41:58 UTC\fP
  258329. .INDENT 2.0
  258330. .IP \(bu 2
  258331. \fBPR\fP \fI\%#26417\fP: (\fI\%scottjpack\fP) Changed t1 \-> t2 micro (refs: \fI\%#26431\fP)
  258332. .IP \(bu 2
  258333. 913451a414 Merge pull request \fI\%#26431\fP from rallytime/bp\-26417
  258334. .IP \(bu 2
  258335. 0254a2e90e Changed t1 \-> t2 micro
  258336. .UNINDENT
  258337. .IP \(bu 2
  258338. \fBPR\fP \fI\%#26378\fP: (\fI\%stanislavb\fP) Fix EC2 credentials from IAM roles for s3fs and s3 ext_pillar in 2015.5
  258339. @ \fI2015\-08\-18 14:01:53 UTC\fP
  258340. .INDENT 2.0
  258341. .IP \(bu 2
  258342. 952da7abaf Merge pull request \fI\%#26378\fP from stanislavb/2015.5
  258343. .IP \(bu 2
  258344. 39ce3127cd Let utils.aws query instance metadata
  258345. .UNINDENT
  258346. .IP \(bu 2
  258347. \fBISSUE\fP \fI\%#26245\fP: (\fI\%bradthurber\fP) salt v2015.5.3 gitfs.py using newer pygit2 feature than required minimum (refs: \fI\%#26420\fP)
  258348. .IP \(bu 2
  258349. \fBPR\fP \fI\%#26420\fP: (\fI\%terminalmage\fP) Only use pygit2.errors if it exists (2015.5 branch)
  258350. @ \fI2015\-08\-18 14:00:01 UTC\fP
  258351. .INDENT 2.0
  258352. .IP \(bu 2
  258353. 09e96dce39 Merge pull request \fI\%#26420\fP from terminalmage/issue26245\-2015.5
  258354. .IP \(bu 2
  258355. 19a1149067 Only use pygit2.errors if it exists (2015.5 branch)
  258356. .UNINDENT
  258357. .IP \(bu 2
  258358. \fBPR\fP \fI\%#26409\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258359. @ \fI2015\-08\-17 23:19:56 UTC\fP
  258360. .INDENT 2.0
  258361. .IP \(bu 2
  258362. c5eb6bbd3e Merge pull request \fI\%#26409\fP from basepi/merge\-forward\-2015.5
  258363. .IP \(bu 2
  258364. dafed10a9e Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258365. .IP \(bu 2
  258366. da8bca09aa Merge pull request \fI\%#26242\fP from cro/anonldap4
  258367. .INDENT 2.0
  258368. .IP \(bu 2
  258369. a0d2ab1eed Remove dead code
  258370. .UNINDENT
  258371. .IP \(bu 2
  258372. 1ecf23773e Merge pull request \fI\%#26216\fP from cro/anonldap3
  258373. .IP \(bu 2
  258374. af132d7b89 Documentation update for anonymous bind issue.
  258375. .IP \(bu 2
  258376. 2ef54b6b13 Documentation update for anonymous bind issue.
  258377. .IP \(bu 2
  258378. 5b1836bb00 Fix issue with LDAP anonymous binds.
  258379. .UNINDENT
  258380. .IP \(bu 2
  258381. \fBISSUE\fP \fI\%#26404\fP: (\fI\%ssgward\fP) Syntax error in lvm.vg_absent state causing failure (refs: \fI\%#26406\fP)
  258382. .IP \(bu 2
  258383. \fBPR\fP \fI\%#26406\fP: (\fI\%jfindlay\fP) fix syntax error in lvm exec module
  258384. @ \fI2015\-08\-17 21:18:25 UTC\fP
  258385. .INDENT 2.0
  258386. .IP \(bu 2
  258387. 741ca6b4db Merge pull request \fI\%#26406\fP from jfindlay/lvm
  258388. .IP \(bu 2
  258389. 81d351ff8f fix syntax error in lvm exec module
  258390. .UNINDENT
  258391. .IP \(bu 2
  258392. \fBPR\fP \fI\%#26405\fP: (\fI\%TheBigBear\fP) dependency zip files moved to new site
  258393. @ \fI2015\-08\-17 21:17:24 UTC\fP
  258394. .INDENT 2.0
  258395. .IP \(bu 2
  258396. a7e2d30e2a Merge pull request \fI\%#26405\fP from TheBigBear/patch\-8
  258397. .IP \(bu 2
  258398. 8898d64918 dependency zip files moved to new site
  258399. .UNINDENT
  258400. .IP \(bu 2
  258401. \fBPR\fP \fI\%#26298\fP: (\fI\%vr\-jack\fP) Keep $HOME from being interpretted by Master shell
  258402. @ \fI2015\-08\-17 21:15:11 UTC\fP
  258403. .INDENT 2.0
  258404. .IP \(bu 2
  258405. cf0523a12e Merge pull request \fI\%#26298\fP from vr\-jack/2015.5
  258406. .IP \(bu 2
  258407. 1fd6fc6ce3 Keep $HOME from being interpretted by Master shell
  258408. .UNINDENT
  258409. .IP \(bu 2
  258410. \fBPR\fP \fI\%#26324\fP: (\fI\%s0undt3ch\fP) Salt is now pip install\(aqable in windows
  258411. @ \fI2015\-08\-17 20:41:34 UTC\fP
  258412. .INDENT 2.0
  258413. .IP \(bu 2
  258414. c0811d3302 Merge pull request \fI\%#26324\fP from s0undt3ch/2015.5
  258415. .IP \(bu 2
  258416. e7cb3be2a0 Document the added options
  258417. .IP \(bu 2
  258418. 92af1c9572 Fix argument name
  258419. .IP \(bu 2
  258420. 72d2fdb512 Add \fIpypiwin32 >= 219\fP as a windows install requires.
  258421. .IP \(bu 2
  258422. b1105fc706 Allow mimicking the install setup command for develop/editable installations.
  258423. .IP \(bu 2
  258424. 26246a72ee Allow writing Salt\(aqs _version.py when installing in develop mode.
  258425. .IP \(bu 2
  258426. 71928f2194 Prefer HTTPS, fix url argument
  258427. .IP \(bu 2
  258428. 7b25430cc7 Download the necessary DLLs for windows
  258429. .IP \(bu 2
  258430. 86692a92cd Install PyCrypto from a wheel in repo.saltstack.com under Windows
  258431. .IP \(bu 2
  258432. 915da594c2 Skip M2Crypto in Windows.
  258433. .IP \(bu 2
  258434. 1ea426e299 Move code to properly handle default requirements.
  258435. .IP \(bu 2
  258436. 8fda8c0db3 M2CryptoWin{32,64} should only be installed on Salt < 2015.8.0
  258437. .IP \(bu 2
  258438. 0ff2f19aee Override the develop command in cmdclass
  258439. .IP \(bu 2
  258440. a5aa752a85 Override the develop command when WITH_SETUPTOOLS is set
  258441. .IP \(bu 2
  258442. 4d6841c761 Install M2CryptoWin{32,64} while installing Salt
  258443. .UNINDENT
  258444. .IP \(bu 2
  258445. \fBISSUE\fP \fI\%#26161\fP: (\fI\%bastiaanb\fP) salt initscripts do not set lock file in /var/lock/subsys as required on RedHat family OSes (refs: \fI\%#26371\fP)
  258446. .IP \(bu 2
  258447. \fBPR\fP \fI\%#26371\fP: (\fI\%bastiaanb\fP) fix issue \fI\%#26161\fP: on RedHat family systems touch /var/lock/subsys/$SE…
  258448. @ \fI2015\-08\-17 20:39:28 UTC\fP
  258449. .INDENT 2.0
  258450. .IP \(bu 2
  258451. 87151736c5 Merge pull request \fI\%#26371\fP from bastiaanb/fix/issue\-26161\-salt\-initscripts\-dont\-set\-lockfile
  258452. .IP \(bu 2
  258453. ec8d4b0470 test wether RETVAL is 0 with \-eq rather than =.
  258454. .IP \(bu 2
  258455. a83a5de41e fix issue \fI\%#26161\fP: on RedHat family systems touch /var/lock/subsys/$SERVICE to ensure the daemon will be stopped on shutdown.
  258456. .UNINDENT
  258457. .IP \(bu 2
  258458. \fBISSUE\fP \fI\%#25801\fP: (\fI\%themalkolm\fP) Update docs that salt.states.winrepo requires \fIroles:salt\-master\fP in grains. (refs: \fI\%#26328\fP)
  258459. .IP \(bu 2
  258460. \fBISSUE\fP \fI\%#25562\fP: (\fI\%jefftucker\fP) winrepo state does not run on masterless minion (refs: \fI\%#26328\fP)
  258461. .IP \(bu 2
  258462. \fBPR\fP \fI\%#26402\fP: (\fI\%twangboy\fP) Removed documentation no longer required
  258463. @ \fI2015\-08\-17 20:35:37 UTC\fP
  258464. .INDENT 2.0
  258465. .IP \(bu 2
  258466. \fBPR\fP \fI\%#26328\fP: (\fI\%twangboy\fP) Removed salt\-master role requirement (refs: \fI\%#26402\fP)
  258467. .IP \(bu 2
  258468. 89602f56ad Merge pull request \fI\%#26402\fP from twangboy/fix_26328
  258469. .IP \(bu 2
  258470. ad5fa03b76 Removed documentation no longer required
  258471. .UNINDENT
  258472. .IP \(bu 2
  258473. \fBPR\fP \fI\%#26392\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26376\fP to 2015.5
  258474. @ \fI2015\-08\-17 19:39:51 UTC\fP
  258475. .INDENT 2.0
  258476. .IP \(bu 2
  258477. \fBPR\fP \fI\%#26376\fP: (\fI\%TheBigBear\fP) minor edit spelling (refs: \fI\%#26392\fP)
  258478. .IP \(bu 2
  258479. eb373e5904 Merge pull request \fI\%#26392\fP from rallytime/bp\-26376
  258480. .IP \(bu 2
  258481. a013bb5b3d minor edit
  258482. .UNINDENT
  258483. .IP \(bu 2
  258484. \fBISSUE\fP \fI\%#16049\fP: (\fI\%ryan\-lane\fP) boto_elb.present state requires attributes argument (refs: \fI\%#26342\fP)
  258485. .IP \(bu 2
  258486. \fBPR\fP \fI\%#26342\fP: (\fI\%rallytime\fP) Don\(aqt call boto_elb._attributes_present if no attributes were provided
  258487. @ \fI2015\-08\-17 19:19:08 UTC\fP
  258488. .INDENT 2.0
  258489. .IP \(bu 2
  258490. 8bb57d1631 Merge pull request \fI\%#26342\fP from rallytime/fix\-16049
  258491. .IP \(bu 2
  258492. 211f6feaf5 Fix test failures \- get_attributes shouldn\(aqt be called if none are provided
  258493. .IP \(bu 2
  258494. d8ad023e88 Don\(aqt call boto_elb._attributes_present if no attributes were provided
  258495. .UNINDENT
  258496. .IP \(bu 2
  258497. \fBISSUE\fP \fI\%#26155\fP: (\fI\%silenius\fP) pip availability in states/pip_state (refs: \fI\%#26160\fP)
  258498. .IP \(bu 2
  258499. \fBPR\fP \fI\%#26389\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26160\fP to 2015.5
  258500. @ \fI2015\-08\-17 19:09:16 UTC\fP
  258501. .INDENT 2.0
  258502. .IP \(bu 2
  258503. \fBPR\fP \fI\%#26160\fP: (\fI\%silenius\fP) proposed fix for \fI\%#26155\fP (refs: \fI\%#26389\fP)
  258504. .IP \(bu 2
  258505. 2fd1e06343 Merge pull request \fI\%#26389\fP from rallytime/bp\-26160
  258506. .IP \(bu 2
  258507. f0bc3765d9 No logging should happen on __virtual__
  258508. .IP \(bu 2
  258509. ca406eaf3c proposed fix for \fI\%#26155\fP
  258510. .UNINDENT
  258511. .IP \(bu 2
  258512. \fBISSUE\fP \fI\%#26266\fP: (\fI\%o\-sleep\fP) limit pw_user.getent() from returning entire corporate list (refs: \fI\%#26300\fP)
  258513. .IP \(bu 2
  258514. \fBPR\fP \fI\%#26300\fP: (\fI\%jfindlay\fP) mock pwd function calls in pw_user exec module
  258515. @ \fI2015\-08\-17 18:56:41 UTC\fP
  258516. .INDENT 2.0
  258517. .IP \(bu 2
  258518. 0046c6cfed Merge pull request \fI\%#26300\fP from jfindlay/pw_test
  258519. .IP \(bu 2
  258520. 7e94989403 mock pwd calls in pw_user exec mod test
  258521. .IP \(bu 2
  258522. 26f5b466f5 check for pwd on linux and BSD user exec mods
  258523. .UNINDENT
  258524. .IP \(bu 2
  258525. \fBISSUE\fP \fI\%#24334\fP: (\fI\%afletch\fP) autosign_timeout not honoured (refs: \fI\%#26386\fP)
  258526. .IP \(bu 2
  258527. \fBPR\fP \fI\%#26386\fP: (\fI\%jahamn\fP) Fixes autosign_timeout usage in check_autosign_dir
  258528. @ \fI2015\-08\-17 18:34:40 UTC\fP
  258529. .INDENT 2.0
  258530. .IP \(bu 2
  258531. 709499438b Merge pull request \fI\%#26386\fP from jahamn/fix\-autosign_timeout
  258532. .IP \(bu 2
  258533. b2fa2ac9d3 Fixes autosign_timeout usage in check_autosign_dir
  258534. .UNINDENT
  258535. .IP \(bu 2
  258536. \fBISSUE\fP \fI\%#25801\fP: (\fI\%themalkolm\fP) Update docs that salt.states.winrepo requires \fIroles:salt\-master\fP in grains. (refs: \fI\%#26328\fP)
  258537. .IP \(bu 2
  258538. \fBISSUE\fP \fI\%#25562\fP: (\fI\%jefftucker\fP) winrepo state does not run on masterless minion (refs: \fI\%#26328\fP)
  258539. .IP \(bu 2
  258540. \fBPR\fP \fI\%#26328\fP: (\fI\%twangboy\fP) Removed salt\-master role requirement (refs: \fI\%#26402\fP)
  258541. @ \fI2015\-08\-17 18:30:17 UTC\fP
  258542. .INDENT 2.0
  258543. .IP \(bu 2
  258544. 8d901d7b15 Merge pull request \fI\%#26328\fP from twangboy/fix_25562
  258545. .IP \(bu 2
  258546. d4ca1dccbf Removed salt\-master role requirement
  258547. .UNINDENT
  258548. .IP \(bu 2
  258549. \fBISSUE\fP \fI\%#26327\fP: (\fI\%bradthurber\fP) mount.mounted opts incorrect "forced unmount and mount because options (tcp) changed" (refs: \fI\%#26362\fP)
  258550. .IP \(bu 2
  258551. \fBPR\fP \fI\%#26362\fP: (\fI\%garethgreenaway\fP) Fixes to mount state.
  258552. @ \fI2015\-08\-17 17:44:55 UTC\fP
  258553. .INDENT 2.0
  258554. .IP \(bu 2
  258555. 74558f5743 Merge pull request \fI\%#26362\fP from garethgreenaway/2015_5_26327_more_invisible_mount_options
  258556. .IP \(bu 2
  258557. cf532d46dd Some mount options are translated to different options once a share has been mounted, eg. when specifying a protocol for NFS as either tcp or udp this option is translated into either proto=tcp or proto=udp. Change adds a lookup dictionary for these options so that a re\-mount isn\(aqt forced each time.
  258558. .UNINDENT
  258559. .IP \(bu 2
  258560. \fBPR\fP \fI\%#26379\fP: (\fI\%s0undt3ch\fP) [2015.5] Backport \fI\%#26353\fP
  258561. @ \fI2015\-08\-17 17:19:29 UTC\fP
  258562. .INDENT 2.0
  258563. .IP \(bu 2
  258564. \fBPR\fP \fI\%#26353\fP: (\fI\%sixninetynine\fP) fixed a typo in setup.py (refs: \fI\%#26379\fP)
  258565. .IP \(bu 2
  258566. 7dbbd90c98 Merge pull request \fI\%#26379\fP from s0undt3ch/issues/backport\-26353
  258567. .IP \(bu 2
  258568. 33ed315c85 fixed Packaing \-> Packaging typo and added a couple comments on the setuptools/distutils abstract methods
  258569. .UNINDENT
  258570. .IP \(bu 2
  258571. \fBISSUE\fP \fI\%#26240\fP: (\fI\%0xf10e\fP) keystone.user_get raises exception when user is not found (refs: \fI\%#26277\fP)
  258572. .IP \(bu 2
  258573. \fBPR\fP \fI\%#26277\fP: (\fI\%rallytime\fP) Handle exception when user is not found in keystone.user_get
  258574. @ \fI2015\-08\-14 19:41:59 UTC\fP
  258575. .INDENT 2.0
  258576. .IP \(bu 2
  258577. bcca1b4c5a Merge pull request \fI\%#26277\fP from rallytime/fix\-26240
  258578. .IP \(bu 2
  258579. 0b6977335e Clean it up
  258580. .IP \(bu 2
  258581. 5edabfd271 It\(aqs a dict \- git problems...
  258582. .IP \(bu 2
  258583. 39d3eb66f0 Log error and return error \- make returns consistent.
  258584. .IP \(bu 2
  258585. 496474d862 Handle exception when user is not found in keystone.get_user
  258586. .UNINDENT
  258587. .IP \(bu 2
  258588. \fBISSUE\fP \fI\%#24484\fP: (\fI\%bailsman\fP) clouds/ec2.py: create_snapshot throws exception (refs: \fI\%#26326\fP)
  258589. .IP \(bu 2
  258590. \fBPR\fP \fI\%#26326\fP: (\fI\%rallytime\fP) Make ec2.create_snapshot return less unweildly and more relevant
  258591. @ \fI2015\-08\-14 19:40:47 UTC\fP
  258592. .INDENT 2.0
  258593. .IP \(bu 2
  258594. 78be3a826f Merge pull request \fI\%#26326\fP from rallytime/create_snapshot_return
  258595. .IP \(bu 2
  258596. c5395db851 Make ec2.create_snapshot return less unweildly and more relevant
  258597. .UNINDENT
  258598. .IP \(bu 2
  258599. \fBISSUE\fP \fI\%#16179\fP: (\fI\%UtahDave\fP) Salt Cloud \-l debug includes the entire bootstrap script twice in its output (refs: \fI\%#26306\fP)
  258600. .IP \(bu 2
  258601. \fBPR\fP \fI\%#26306\fP: (\fI\%rallytime\fP) Move VM creation details dict to log.trace
  258602. @ \fI2015\-08\-14 17:39:52 UTC\fP
  258603. .INDENT 2.0
  258604. .IP \(bu 2
  258605. 44c9d3063b Merge pull request \fI\%#26306\fP from rallytime/fix\-16179
  258606. .IP \(bu 2
  258607. 670464258f Move VM creation details dict to log.trace
  258608. .UNINDENT
  258609. .UNINDENT
  258610. .SS Salt 2015.5.6 Release Notes
  258611. .INDENT 0.0
  258612. .TP
  258613. .B release
  258614. 2015\-10\-13
  258615. .UNINDENT
  258616. .sp
  258617. Version 2015.5.6 is a bugfix release for 2015.5.0\&.
  258618. .SS Statistics
  258619. .INDENT 0.0
  258620. .IP \(bu 2
  258621. Total Merges: \fB145\fP
  258622. .IP \(bu 2
  258623. Total Issue References: \fB71\fP
  258624. .IP \(bu 2
  258625. Total PR References: \fB178\fP
  258626. .IP \(bu 2
  258627. Contributors: \fB53\fP (\fI\%Arabus\fP, \fI\%JensRantil\fP, \fI\%PierreR\fP, \fI\%SaltyCharles\fP, \fI\%TheBigBear\fP, \fI\%abh\fP, \fI\%aboe76\fP, \fI\%anlutro\fP, \fI\%arthurlogilab\fP, \fI\%aspyatkin\fP, \fI\%basepi\fP, \fI\%benhosmer\fP, \fI\%bersace\fP, \fI\%cachedout\fP, \fI\%carlpett\fP, \fI\%damonzheng\fP, \fI\%derphilipp\fP, \fI\%dmyerscough\fP, \fI\%dsumsky\fP, \fI\%efficks\fP, \fI\%eguven\fP, \fI\%garethgreenaway\fP, \fI\%hexedpackets\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%joejulian\fP, \fI\%johanek\fP, \fI\%julianbrost\fP, \fI\%kev009\fP, \fI\%lorengordon\fP, \fI\%madprog\fP, \fI\%marccardinal\fP, \fI\%netroby\fP, \fI\%nmadhok\fP, \fI\%plastikos\fP, \fI\%rallytime\fP, \fI\%serge\-p\fP, \fI\%spudfkc\fP, \fI\%stanislavb\fP, \fI\%styro\fP, \fI\%systembell\fP, \fI\%tankywoo\fP, \fI\%techhat\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%tjstansell\fP, \fI\%twangboy\fP, \fI\%vakulich\fP, \fI\%vtek21\fP, \fI\%whiteinge\fP, \fI\%zmalone\fP, \fI\%zyio\fP)
  258628. .UNINDENT
  258629. .SS Security Fixes
  258630. .sp
  258631. \fBCVE\-2015\-6941\fP The Windows \fBuser\fP module and
  258632. \fBsalt\-cloud\fP display passwords in log when log level is set to \fBdebug\fP
  258633. or more verbose.
  258634. .sp
  258635. For the Windows \fBuser\fP module, the password is
  258636. now replaced with the string \fBXXX\-REDACTED\-XXX\fP\&.
  258637. .sp
  258638. For salt\-cloud, debug logging no longer displays \fBwin_password\fP and
  258639. \fBsudo_password\fP authentication credentials.
  258640. .sp
  258641. \fBCVE\-2015\-6918\fP Git state/execution modules log HTTPS auth credentials when
  258642. log level is set to \fBdebug\fP or more verbose.
  258643. .sp
  258644. These credentials are now replaced with \fBREDACTED\fP in the debug output.
  258645. Thanks to Andreas Stieger <\fI\%asteiger@suse.com\fP> for bringing this to our
  258646. attention.
  258647. .SS Changelog for v2015.5.5..v2015.5.6
  258648. .sp
  258649. \fIGenerated at: 2018\-05\-27 22:13:00 UTC\fP
  258650. .INDENT 0.0
  258651. .IP \(bu 2
  258652. \fBPR\fP \fI\%#27582\fP: (\fI\%jfindlay\fP) add 2015.5.6 release notes
  258653. @ \fI2015\-09\-30 22:33:48 UTC\fP
  258654. .INDENT 2.0
  258655. .IP \(bu 2
  258656. 304dc68f7f Merge pull request \fI\%#27582\fP from jfindlay/2015.5
  258657. .IP \(bu 2
  258658. 4f0d55cda6 add 2015.5.6 release notes
  258659. .UNINDENT
  258660. .IP \(bu 2
  258661. \fBISSUE\fP \fI\%#27518\fP: (\fI\%srkunze\fP) [Docs] Relationship between Mine and Grains (refs: \fI\%#27557\fP)
  258662. .IP \(bu 2
  258663. \fBPR\fP \fI\%#27557\fP: (\fI\%jfindlay\fP) add doc motivating mine vs grains
  258664. @ \fI2015\-09\-30 17:49:46 UTC\fP
  258665. .INDENT 2.0
  258666. .IP \(bu 2
  258667. 7201ce71e4 Merge pull request \fI\%#27557\fP from jfindlay/mine_doc
  258668. .IP \(bu 2
  258669. 3727d79bad edit mine doc for style and markup
  258670. .IP \(bu 2
  258671. 7e037a4666 add doc motivating mine vs grains
  258672. .UNINDENT
  258673. .IP \(bu 2
  258674. \fBISSUE\fP \fI\%#27478\fP: (\fI\%rominf\fP) iptables state fails to save rules (refs: \fI\%#27515\fP)
  258675. .IP \(bu 2
  258676. \fBPR\fP \fI\%#27515\fP: (\fI\%jfindlay\fP) save iptables rules on SuSE
  258677. @ \fI2015\-09\-30 16:09:42 UTC\fP
  258678. .INDENT 2.0
  258679. .IP \(bu 2
  258680. 59c3d5f93e Merge pull request \fI\%#27515\fP from jfindlay/suse_fire
  258681. .IP \(bu 2
  258682. 4460ad2785 save iptables rules on SuSE
  258683. .UNINDENT
  258684. .IP \(bu 2
  258685. \fBISSUE\fP \fI\%#27460\fP: (\fI\%llevar\fP) Orchestrate runner not resolving reference to a built in state (refs: \fI\%#27509\fP)
  258686. .IP \(bu 2
  258687. \fBPR\fP \fI\%#27509\fP: (\fI\%jfindlay\fP) tell the user why the gluster module does not work
  258688. @ \fI2015\-09\-30 15:49:16 UTC\fP
  258689. .INDENT 2.0
  258690. .IP \(bu 2
  258691. 9b26357b19 Merge pull request \fI\%#27509\fP from jfindlay/gluster_reason
  258692. .IP \(bu 2
  258693. 1ccda538d2 tell the user why the gluster module does not work
  258694. .UNINDENT
  258695. .IP \(bu 2
  258696. \fBISSUE\fP \fI\%#27372\fP: (\fI\%GregMeno\fP) pip.installed state fails when env_vars is not a dict (refs: \fI\%#27379\fP)
  258697. .IP \(bu 2
  258698. \fBPR\fP \fI\%#27379\fP: (\fI\%jfindlay\fP) document and check dict type for pip env_vars
  258699. @ \fI2015\-09\-30 02:56:52 UTC\fP
  258700. .INDENT 2.0
  258701. .IP \(bu 2
  258702. 989733ea86 Merge pull request \fI\%#27379\fP from jfindlay/pip_vars
  258703. .IP \(bu 2
  258704. aee51ffdef document and check dict type for pip env_vars
  258705. .UNINDENT
  258706. .IP \(bu 2
  258707. \fBPR\fP \fI\%#27516\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258708. @ \fI2015\-09\-29 17:53:33 UTC\fP
  258709. .INDENT 2.0
  258710. .IP \(bu 2
  258711. 6d773f66c3 Merge pull request \fI\%#27516\fP from basepi/merge\-forward\-2015.5
  258712. .IP \(bu 2
  258713. a08951f0fa Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258714. .IP \(bu 2
  258715. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  258716. .INDENT 2.0
  258717. .IP \(bu 2
  258718. adeb1dcad4 Pylint Fix
  258719. .IP \(bu 2
  258720. 588c13783c Salt\-cloud logging clean up for windows functions
  258721. .IP \(bu 2
  258722. 9b6000135c [2014.7] Fixup salt\-cloud logging
  258723. .UNINDENT
  258724. .UNINDENT
  258725. .IP \(bu 2
  258726. \fBISSUE\fP \fI\%#27447\fP: (\fI\%junster1\fP) Fix mysql table size for salt_events (refs: \fI\%#27472\fP)
  258727. .IP \(bu 2
  258728. \fBPR\fP \fI\%#27472\fP: (\fI\%cachedout\fP) Change recommeded schema for data field in mysql event table
  258729. @ \fI2015\-09\-29 15:49:37 UTC\fP
  258730. .INDENT 2.0
  258731. .IP \(bu 2
  258732. 68d784c3dd Merge pull request \fI\%#27472\fP from cachedout/fix_27447
  258733. .IP \(bu 2
  258734. 5e745ad6da Change recommeded schema for data field in mysql event table
  258735. .UNINDENT
  258736. .IP \(bu 2
  258737. \fBPR\fP \fI\%#27468\fP: (\fI\%cachedout\fP) Fix 27351
  258738. @ \fI2015\-09\-29 15:35:29 UTC\fP
  258739. .INDENT 2.0
  258740. .IP \(bu 2
  258741. \fBPR\fP \fI\%#27351\fP: (\fI\%SaltyCharles\fP) fix sysctl truncating newline on os x (refs: \fI\%#27468\fP)
  258742. .IP \(bu 2
  258743. ee6e0ed057 Merge pull request \fI\%#27468\fP from cachedout/fix_27351
  258744. .IP \(bu 2
  258745. 0bc37c0d41 Fix test
  258746. .IP \(bu 2
  258747. f9a19720de fix sysctl truncating newline on os x
  258748. .UNINDENT
  258749. .IP \(bu 2
  258750. \fBISSUE\fP \fI\%#27438\fP: (\fI\%aboe76\fP) can\(aqt set system locale on OpenSuse SUse (refs: \fI\%#27479\fP)
  258751. .IP \(bu 2
  258752. \fBPR\fP \fI\%#27479\fP: (\fI\%aboe76\fP) fix locale on opensuse and suse \fI\%#27438\fP
  258753. @ \fI2015\-09\-29 15:34:48 UTC\fP
  258754. .INDENT 2.0
  258755. .IP \(bu 2
  258756. a214c7f84e Merge pull request \fI\%#27479\fP from aboe76/fix_locale_suse
  258757. .IP \(bu 2
  258758. a8f2dad1be fix locale on opensuse and suse \fI\%#27438\fP
  258759. .UNINDENT
  258760. .IP \(bu 2
  258761. \fBISSUE\fP \fI\%#17103\fP: (\fI\%arthurlogilab\fP) salt is looking for outputters in /var/cache/salt/minion/extmods/output not /var/cache/salt/minion/extmods/outputputters (refs: \fI\%#27483\fP)
  258762. .IP \(bu 2
  258763. \fBPR\fP \fI\%#27483\fP: (\fI\%rallytime\fP) Outputters should sync to output, not outputters, on the minion.
  258764. @ \fI2015\-09\-29 15:33:08 UTC\fP
  258765. .INDENT 2.0
  258766. .IP \(bu 2
  258767. 931f593b51 Merge pull request \fI\%#27483\fP from rallytime/fix\-17103
  258768. .IP \(bu 2
  258769. 441241eb90 Change sync_outputters to sync_output for consistency, but alias sync_outputters
  258770. .IP \(bu 2
  258771. 105528720b Outputters should sync to output, not outputters, on the minion.
  258772. .UNINDENT
  258773. .IP \(bu 2
  258774. \fBPR\fP \fI\%#27484\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27434\fP and \fI\%#27470\fP to 2015.5
  258775. @ \fI2015\-09\-29 15:32:03 UTC\fP
  258776. .INDENT 2.0
  258777. .IP \(bu 2
  258778. \fBPR\fP \fI\%#27470\fP: (\fI\%cachedout\fP) Minor doc fixup. (refs: \fI\%#27484\fP)
  258779. .IP \(bu 2
  258780. \fBPR\fP \fI\%#27434\fP: (\fI\%netroby\fP) Doc: copy key to server via ssh\-copy\-id (refs: \fI\%#27484\fP, \fI\%#27470\fP)
  258781. .IP \(bu 2
  258782. 9c2c028953 Merge pull request \fI\%#27484\fP from rallytime/bp\-27434\-and\-27470
  258783. .IP \(bu 2
  258784. 5de2ee35ab Minor doc fixup.
  258785. .IP \(bu 2
  258786. af656c7e87 Doc: copy key to server via ssh\-copy\-id
  258787. .UNINDENT
  258788. .IP \(bu 2
  258789. \fBISSUE\fP \fI\%#27433\fP: (\fI\%TheBigBear\fP) winrepo \- drops "trailing zeroes" from version numbers on un\-install? (refs: \fI\%#27469\fP)
  258790. .IP \(bu 2
  258791. \fBPR\fP \fI\%#27469\fP: (\fI\%twangboy\fP) Added quotes to version numbers example
  258792. @ \fI2015\-09\-28 21:54:43 UTC\fP
  258793. .INDENT 2.0
  258794. .IP \(bu 2
  258795. 927874d316 Merge pull request \fI\%#27469\fP from twangboy/fix_27433
  258796. .IP \(bu 2
  258797. a996ea46e2 Added quotes to version numbers example
  258798. .UNINDENT
  258799. .IP \(bu 2
  258800. \fBISSUE\fP \fI\%#27342\fP: (\fI\%ariscn\fP) File.managed silent fail for contents_pillar (refs: \fI\%#27375\fP, \fI\%#27467\fP)
  258801. .IP \(bu 2
  258802. \fBPR\fP \fI\%#27467\fP: (\fI\%cachedout\fP) file.managed: check contents_{pillar|grain} result
  258803. @ \fI2015\-09\-28 20:22:16 UTC\fP
  258804. .INDENT 2.0
  258805. .IP \(bu 2
  258806. \fBPR\fP \fI\%#27375\fP: (\fI\%jfindlay\fP) file.managed: check contents_{pillar|grain} result (refs: \fI\%#27467\fP)
  258807. .IP \(bu 2
  258808. 382a53403f Merge pull request \fI\%#27467\fP from cachedout/lint_27375
  258809. .IP \(bu 2
  258810. 4e54a98f5e Lint \fI\%#27375\fP
  258811. .IP \(bu 2
  258812. 278ade52d2 file.managed: check contents_{pillar|grain} result
  258813. .UNINDENT
  258814. .IP \(bu 2
  258815. \fBISSUE\fP \fI\%#9856\fP: (\fI\%jeremyBass\fP) for grant in grants: TypeError: \(aqbool\(aq object is not iterable (refs: \fI\%#27419\fP)
  258816. .IP \(bu 2
  258817. \fBPR\fP \fI\%#27419\fP: (\fI\%rallytime\fP) Amend error log to include multiple tips for troubleshooting.
  258818. @ \fI2015\-09\-28 17:53:19 UTC\fP
  258819. .INDENT 2.0
  258820. .IP \(bu 2
  258821. ed6207a438 Merge pull request \fI\%#27419\fP from rallytime/fix\-9856
  258822. .IP \(bu 2
  258823. 551396564a Ammend error log to include multiple tips for troubleshooting.
  258824. .UNINDENT
  258825. .IP \(bu 2
  258826. \fBISSUE\fP \fI\%#16753\fP: (\fI\%johtso\fP) Duplicate selector in top file gives unhelpful traceback (refs: \fI\%#27426\fP)
  258827. .IP \(bu 2
  258828. \fBPR\fP \fI\%#27426\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if there are conflicting id errors in highstate
  258829. @ \fI2015\-09\-28 14:52:51 UTC\fP
  258830. .INDENT 2.0
  258831. .IP \(bu 2
  258832. 73fa89edf7 Merge pull request \fI\%#27426\fP from rallytime/fix\-16753
  258833. .IP \(bu 2
  258834. f6cbd81e66 Don\(aqt stacktrace if there are conflicting id errors in highstate
  258835. .UNINDENT
  258836. .IP \(bu 2
  258837. \fBISSUE\fP \fI\%#27406\fP: (\fI\%s\-iraheta\fP) salt\-cloud error with Softlayer (Bare Metal Instance): TypeError: \(aqbool\(aq object is not iterable and with \-\-list\-locations: Failed to get the output of \(aqsoftlayer_hw.avail_locations()\(aq: 142776 (refs: \fI\%#27408\fP)
  258838. .IP \(bu 2
  258839. \fBPR\fP \fI\%#27408\fP: (\fI\%rallytime\fP) Fix avail_locations function for the softlayer_hw driver in 2015.5
  258840. @ \fI2015\-09\-25 23:34:50 UTC\fP
  258841. .INDENT 2.0
  258842. .IP \(bu 2
  258843. 5dd1b70475 Merge pull request \fI\%#27408\fP from rallytime/fix\-27406\-for\-2015.5
  258844. .IP \(bu 2
  258845. 39a4ae5a6c Remove hdd: 19 refs from SL docs \- no longer available from SoftLayer.
  258846. .IP \(bu 2
  258847. de2f9234d3 Use correct default for bandwith
  258848. .IP \(bu 2
  258849. 42d8127f79 Don\(aqt set the optional_products default to a boolean, and then try to loop.
  258850. .IP \(bu 2
  258851. 9d8a3d8303 Fix avail_locations function for the softlayer_hw driver in 2015.5
  258852. .UNINDENT
  258853. .IP \(bu 2
  258854. \fBISSUE\fP \fI\%#27389\fP: (\fI\%ryan\-lane\fP) Docs layout issue (refs: \fI\%#27410\fP)
  258855. .IP \(bu 2
  258856. \fBPR\fP \fI\%#27410\fP: (\fI\%jacobhammons\fP) Fix css layout Refs \fI\%#27389\fP
  258857. @ \fI2015\-09\-25 22:38:48 UTC\fP
  258858. .INDENT 2.0
  258859. .IP \(bu 2
  258860. 8f9a3cfbaf Merge pull request \fI\%#27410\fP from jacobhammons/doc\-updates
  258861. .IP \(bu 2
  258862. a9fdecada1 Fix css layout Refs \fI\%#27389\fP sample typo fix in linux_acl additional module folders listed in dynamic\-modules
  258863. .UNINDENT
  258864. .IP \(bu 2
  258865. \fBPR\fP \fI\%#27336\fP: (\fI\%rallytime\fP) [2015.5] Fixup salt\-cloud logging
  258866. @ \fI2015\-09\-24 15:02:52 UTC\fP
  258867. .INDENT 2.0
  258868. .IP \(bu 2
  258869. 3746085587 Merge pull request \fI\%#27336\fP from rallytime/cloud\-logging\-five
  258870. .IP \(bu 2
  258871. 7956b36076 [2015.5] Fixup salt\-cloud logging
  258872. .UNINDENT
  258873. .IP \(bu 2
  258874. \fBISSUE\fP \fI\%#27356\fP: (\fI\%lorengordon\fP) file.replace fails if \fIrepl\fP contains special regex characters and \fIappend_if_not_found=True\fP (refs: \fI\%#27358\fP)
  258875. .IP \(bu 2
  258876. \fBPR\fP \fI\%#27358\fP: (\fI\%lorengordon\fP) Escape search replacement text, fixes \fI\%#27356\fP
  258877. @ \fI2015\-09\-24 13:52:46 UTC\fP
  258878. .INDENT 2.0
  258879. .IP \(bu 2
  258880. 5a3be10a3e Merge pull request \fI\%#27358\fP from lorengordon/escape\-search\-replacement\-text
  258881. .IP \(bu 2
  258882. 88bb1fbfff Escape search replacement text, fixes \fI\%#27356\fP
  258883. .UNINDENT
  258884. .IP \(bu 2
  258885. \fBISSUE\fP \fI\%#19236\fP: (\fI\%bramhg\fP) salt\-cloud : Unable to add SSD disk and unable to auto\-delete disk on instance termination on GCE (refs: \fI\%#27345\fP)
  258886. .IP \(bu 2
  258887. \fBPR\fP \fI\%#27345\fP: (\fI\%rallytime\fP) Allow use of rst header links by separating options out from yaml example
  258888. @ \fI2015\-09\-23 19:48:56 UTC\fP
  258889. .INDENT 2.0
  258890. .IP \(bu 2
  258891. 6759f79d6d Merge pull request \fI\%#27345\fP from rallytime/docs\-for\-19236
  258892. .IP \(bu 2
  258893. 1d3925bbfb Added version tag for ex_disk_type option
  258894. .IP \(bu 2
  258895. f23369300c Allow use of rst header links by separating options out from yaml example
  258896. .UNINDENT
  258897. .IP \(bu 2
  258898. \fBPR\fP \fI\%#26903\fP: (\fI\%bersace\fP) Review defaults.get
  258899. @ \fI2015\-09\-23 14:52:20 UTC\fP
  258900. .INDENT 2.0
  258901. .IP \(bu 2
  258902. c2efb291e2 Merge pull request \fI\%#26903\fP from bersace/fix\-defaults\-modules
  258903. .IP \(bu 2
  258904. 474d7afc95 fixup! Review defaults loading
  258905. .IP \(bu 2
  258906. 36141d226e fixup! Review defaults loading
  258907. .IP \(bu 2
  258908. 62b6495358 fixup! Review defaults loading
  258909. .IP \(bu 2
  258910. cf0624e8b8 fixup! Review defaults loading
  258911. .IP \(bu 2
  258912. 2c58bab977 fixup! Review defaults loading
  258913. .IP \(bu 2
  258914. 82c5b1d8fd Review defaults loading
  258915. .UNINDENT
  258916. .IP \(bu 2
  258917. \fBISSUE\fP \fI\%#27316\fP: (\fI\%efficks\fP) Extracted state with zip format failed on Windows (refs: \fI\%#27317\fP)
  258918. .IP \(bu 2
  258919. \fBPR\fP \fI\%#27317\fP: (\fI\%efficks\fP) State unzip should use unzip command instead of unzip_cmd.
  258920. @ \fI2015\-09\-23 14:41:36 UTC\fP
  258921. .INDENT 2.0
  258922. .IP \(bu 2
  258923. a372466922 Merge pull request \fI\%#27317\fP from efficks/fix27316
  258924. .IP \(bu 2
  258925. bf216c101e State unzip should use unzip command instead of unzip_cmd. Issue \fI\%#27316\fP
  258926. .UNINDENT
  258927. .IP \(bu 2
  258928. \fBISSUE\fP \fI\%#15514\fP: (\fI\%flyaruu\fP) Calling a boto_route53.present state fails if the record is already there (refs: \fI\%#27309\fP)
  258929. .IP \(bu 2
  258930. \fBPR\fP \fI\%#27309\fP: (\fI\%rallytime\fP) Change a value list to a comma\-separated string in boto_route53.present
  258931. @ \fI2015\-09\-23 14:30:50 UTC\fP
  258932. .INDENT 2.0
  258933. .IP \(bu 2
  258934. bd3771e80f Merge pull request \fI\%#27309\fP from rallytime/fix\-15514
  258935. .IP \(bu 2
  258936. 9383d91ff8 Change a value list to a comma\-separated string in boto_route53.present
  258937. .UNINDENT
  258938. .IP \(bu 2
  258939. \fBISSUE\fP \fI\%#27297\fP: (\fI\%JensRantil\fP) file.replace documentation improvement (refs: \fI\%#27311\fP)
  258940. .IP \(bu 2
  258941. \fBPR\fP \fI\%#27311\fP: (\fI\%jfindlay\fP) discuss replacement occurrences in file doc
  258942. @ \fI2015\-09\-22 22:23:10 UTC\fP
  258943. .INDENT 2.0
  258944. .IP \(bu 2
  258945. b5fe944875 Merge pull request \fI\%#27311\fP from jfindlay/maxoc
  258946. .IP \(bu 2
  258947. 8ec2e921bd discuss replacement occurrences in file doc
  258948. .UNINDENT
  258949. .IP \(bu 2
  258950. \fBPR\fP \fI\%#27310\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  258951. @ \fI2015\-09\-22 21:08:41 UTC\fP
  258952. .INDENT 2.0
  258953. .IP \(bu 2
  258954. ca4597b93a Merge pull request \fI\%#27310\fP from basepi/merge\-forward\-2015.5
  258955. .IP \(bu 2
  258956. 7b75e4aed1 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  258957. .IP \(bu 2
  258958. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  258959. .INDENT 2.0
  258960. .IP \(bu 2
  258961. 3d28307a00 2014.7 \-> 2014.7.0
  258962. .UNINDENT
  258963. .UNINDENT
  258964. .IP \(bu 2
  258965. \fBISSUE\fP \fI\%#27307\fP: (\fI\%terminalmage\fP) Regression in yumpkg\(aqs refresh_db function (refs: \fI\%#27308\fP)
  258966. .IP \(bu 2
  258967. \fBPR\fP \fI\%#27308\fP: (\fI\%terminalmage\fP) Fix refresh_db regression in yumpkg.py
  258968. @ \fI2015\-09\-22 21:07:28 UTC\fP
  258969. .INDENT 2.0
  258970. .IP \(bu 2
  258971. 982c21c79f Merge pull request \fI\%#27308\fP from terminalmage/fix\-refresh_db\-regression
  258972. .IP \(bu 2
  258973. 77686fb7ce Fix refresh_db regression in yumpkg.py
  258974. .UNINDENT
  258975. .IP \(bu 2
  258976. \fBPR\fP \fI\%#27286\fP: (\fI\%terminalmage\fP) Add a configurable timer for minion return retries
  258977. @ \fI2015\-09\-22 16:35:07 UTC\fP
  258978. .INDENT 2.0
  258979. .IP \(bu 2
  258980. 775a4f9ad0 Merge pull request \fI\%#27286\fP from terminalmage/return_retry_timer
  258981. .IP \(bu 2
  258982. 540a7dfcf1 Add default values for new minion config options
  258983. .IP \(bu 2
  258984. 453b883820 Add a configurable timer for minion return retries
  258985. .UNINDENT
  258986. .IP \(bu 2
  258987. \fBPR\fP \fI\%#27278\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27256\fP to 2015.5
  258988. @ \fI2015\-09\-21 19:27:51 UTC\fP
  258989. .INDENT 2.0
  258990. .IP \(bu 2
  258991. \fBPR\fP \fI\%#27256\fP: (\fI\%julianbrost\fP) Fix error handling in salt.modules.file.statvfs (refs: \fI\%#27278\fP)
  258992. .IP \(bu 2
  258993. 02482c0572 Merge pull request \fI\%#27278\fP from rallytime/bp\-27256
  258994. .IP \(bu 2
  258995. 1beddf6311 Fix error handling in salt.modules.file.statvfs
  258996. .UNINDENT
  258997. .IP \(bu 2
  258998. \fBPR\fP \fI\%#27277\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27230\fP to 2015.5
  258999. @ \fI2015\-09\-21 19:06:14 UTC\fP
  259000. .INDENT 2.0
  259001. .IP \(bu 2
  259002. \fBPR\fP \fI\%#27230\fP: (\fI\%benhosmer\fP) Fix typo in AWS doc config (refs: \fI\%#27277\fP)
  259003. .IP \(bu 2
  259004. e36c019c37 Merge pull request \fI\%#27277\fP from rallytime/bp\-27230
  259005. .IP \(bu 2
  259006. 3ce77db1bc Fix typo in AWS doc config
  259007. .UNINDENT
  259008. .IP \(bu 2
  259009. \fBPR\fP \fI\%#27253\fP: (\fI\%jfindlay\fP) 2015.5 \-> 2015.5.0
  259010. @ \fI2015\-09\-18 23:44:43 UTC\fP
  259011. .INDENT 2.0
  259012. .IP \(bu 2
  259013. b22286476e Merge pull request \fI\%#27253\fP from jfindlay/version.2015.5
  259014. .IP \(bu 2
  259015. 967e3bb72a 2015.5 \-> 2015.5.0
  259016. .UNINDENT
  259017. .IP \(bu 2
  259018. \fBPR\fP \fI\%#27244\fP: (\fI\%garethgreenaway\fP) Exception in cloud.ec2.create_snapshot
  259019. @ \fI2015\-09\-18 21:41:11 UTC\fP
  259020. .INDENT 2.0
  259021. .IP \(bu 2
  259022. 51a0193b54 Merge pull request \fI\%#27244\fP from garethgreenaway/ec2_create_snapshot_no_return_data_exception
  259023. .IP \(bu 2
  259024. 820fd576b9 Fixing the cause when the r_data from aws.query is empty and an exception happens when looking for the snapshotID
  259025. .UNINDENT
  259026. .IP \(bu 2
  259027. \fBISSUE\fP \fI\%#27215\fP: (\fI\%wfhu\fP) cron.file override the crontab file even if there\(aqs no change (refs: \fI\%#27231\fP)
  259028. .IP \(bu 2
  259029. \fBPR\fP \fI\%#27231\fP: (\fI\%jfindlay\fP) only write cron file if it is changed
  259030. @ \fI2015\-09\-18 18:23:10 UTC\fP
  259031. .INDENT 2.0
  259032. .IP \(bu 2
  259033. 26540f15bc Merge pull request \fI\%#27231\fP from jfindlay/cronchange
  259034. .IP \(bu 2
  259035. 1e335297e2 only write cron file if it is changed
  259036. .UNINDENT
  259037. .IP \(bu 2
  259038. \fBPR\fP \fI\%#27233\fP: (\fI\%basepi\fP) [2015.5] Add stub release notes for 2015.5.6
  259039. @ \fI2015\-09\-18 16:55:40 UTC\fP
  259040. .INDENT 2.0
  259041. .IP \(bu 2
  259042. 579f375f74 Merge pull request \fI\%#27233\fP from basepi/release.notes.stubs
  259043. .IP \(bu 2
  259044. f4563ea9b7 Add stub release notes for 2015.5.6
  259045. .UNINDENT
  259046. .IP \(bu 2
  259047. \fBISSUE\fP \fI\%#25423\fP: (\fI\%tweenk\fP) Impossible to define a file.managed for use only as a template in "use" requisites (refs: \fI\%#27208\fP)
  259048. .IP \(bu 2
  259049. \fBPR\fP \fI\%#27208\fP: (\fI\%basepi\fP) [2015.5] Add test.nop state
  259050. @ \fI2015\-09\-18 16:50:17 UTC\fP
  259051. .INDENT 2.0
  259052. .IP \(bu 2
  259053. f5a322e3f2 Merge pull request \fI\%#27208\fP from basepi/nop.state.25423
  259054. .IP \(bu 2
  259055. 9414b05b2c Add test.nop example
  259056. .IP \(bu 2
  259057. a84ce67b8f Add test.nop state
  259058. .UNINDENT
  259059. .IP \(bu 2
  259060. \fBISSUE\fP \fI\%#27187\fP: (\fI\%SeverinLeonhardt\fP) ssh_known_hosts.present hashes other entries even with hash_hostname: false (refs: \fI\%#27201\fP)
  259061. .IP \(bu 2
  259062. \fBPR\fP \fI\%#27201\fP: (\fI\%jfindlay\fP) rename hash_hostname to hash_known_hosts
  259063. @ \fI2015\-09\-18 15:45:03 UTC\fP
  259064. .INDENT 2.0
  259065. .IP \(bu 2
  259066. 59a07cae68 Merge pull request \fI\%#27201\fP from jfindlay/sshhash
  259067. .IP \(bu 2
  259068. 1b620b77cd rename hash_host arg to hash_known_hosts
  259069. .IP \(bu 2
  259070. 12f14ae37c update hash_known_hosts docs in ssh module
  259071. .UNINDENT
  259072. .IP \(bu 2
  259073. \fBPR\fP \fI\%#27214\fP: (\fI\%jacksontj\fP) Correctly support https, port 443 is not a requirement
  259074. @ \fI2015\-09\-18 15:43:05 UTC\fP
  259075. .INDENT 2.0
  259076. .IP \(bu 2
  259077. 560545c4c5 Merge pull request \fI\%#27214\fP from jacksontj/2015.5
  259078. .IP \(bu 2
  259079. e7526bdb44 Correctly support https, port 443 is not a requirement
  259080. .UNINDENT
  259081. .IP \(bu 2
  259082. \fBISSUE\fP \fI\%#18582\fP: (\fI\%mainframe\fP) Allow merging file_roots and pillar_roots from different config files included from master.d (refs: \fI\%#27150\fP)
  259083. .IP \(bu 2
  259084. \fBPR\fP \fI\%#27172\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27150\fP to 2015.5
  259085. @ \fI2015\-09\-17 17:25:51 UTC\fP
  259086. .INDENT 2.0
  259087. .IP \(bu 2
  259088. \fBPR\fP \fI\%#27150\fP: (\fI\%cachedout\fP) Merge config values from master.d/minion.d conf files (refs: \fI\%#27172\fP)
  259089. .IP \(bu 2
  259090. 7a34c7742d Merge pull request \fI\%#27172\fP from rallytime/bp\-27150
  259091. .IP \(bu 2
  259092. 0d7ee4b209 Merge config values from master.d/minion.d conf files
  259093. .UNINDENT
  259094. .IP \(bu 2
  259095. \fBPR\fP \fI\%#27194\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27180\fP to 2015.5
  259096. @ \fI2015\-09\-17 16:17:24 UTC\fP
  259097. .INDENT 2.0
  259098. .IP \(bu 2
  259099. \fBPR\fP \fI\%#27180\fP: (\fI\%tankywoo\fP) file copy ret result True if no change in test mode (refs: \fI\%#27194\fP)
  259100. .IP \(bu 2
  259101. e956d88f5f Merge pull request \fI\%#27194\fP from rallytime/bp\-27180
  259102. .IP \(bu 2
  259103. 327d343fef file copy ret result True if no change in test mode
  259104. .UNINDENT
  259105. .IP \(bu 2
  259106. \fBPR\fP \fI\%#27176\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  259107. @ \fI2015\-09\-17 15:00:40 UTC\fP
  259108. .INDENT 2.0
  259109. .IP \(bu 2
  259110. a02d043309 Merge pull request \fI\%#27176\fP from basepi/merge\-forward\-2015.5
  259111. .IP \(bu 2
  259112. 66f4641be3 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  259113. .IP \(bu 2
  259114. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  259115. .INDENT 2.0
  259116. .IP \(bu 2
  259117. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  259118. .UNINDENT
  259119. .IP \(bu 2
  259120. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  259121. .INDENT 2.0
  259122. .IP \(bu 2
  259123. 507fb04683 Issue warning that some log levels may contain sensitive data
  259124. .UNINDENT
  259125. .IP \(bu 2
  259126. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  259127. .INDENT 2.0
  259128. .IP \(bu 2
  259129. c0689e3215 Replaced password with redacted when displayed
  259130. .UNINDENT
  259131. .UNINDENT
  259132. .IP \(bu 2
  259133. \fBPR\fP \fI\%#27170\fP: (\fI\%rallytime\fP) Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  259134. @ \fI2015\-09\-16 22:23:51 UTC\fP
  259135. .INDENT 2.0
  259136. .IP \(bu 2
  259137. de2027426e Merge pull request \fI\%#27170\fP from rallytime/gce\-docs
  259138. .IP \(bu 2
  259139. a07db909bd Update Getting Started with GCE docs to use cloud.profiles or cloud.profiles.d examples
  259140. .UNINDENT
  259141. .IP \(bu 2
  259142. \fBPR\fP \fI\%#27167\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27148\fP to 2015.5
  259143. @ \fI2015\-09\-16 19:56:01 UTC\fP
  259144. .INDENT 2.0
  259145. .IP \(bu 2
  259146. \fBPR\fP \fI\%#27148\fP: (\fI\%hexedpackets\fP) Pass file pointers to the serialize load functions. (refs: \fI\%#27167\fP)
  259147. .IP \(bu 2
  259148. 28cfdfd067 Merge pull request \fI\%#27167\fP from rallytime/bp\-27148
  259149. .IP \(bu 2
  259150. d12be52355 Pass filepointers to the serialize load functions.
  259151. .UNINDENT
  259152. .IP \(bu 2
  259153. \fBISSUE\fP \fI\%#27157\fP: (\fI\%alxbse\fP) salt.util.smb loads even when impacket library is missing (refs: \fI\%#27168\fP)
  259154. .IP \(bu 2
  259155. \fBPR\fP \fI\%#27168\fP: (\fI\%techhat\fP) Add further gating of impacket library
  259156. @ \fI2015\-09\-16 18:55:56 UTC\fP
  259157. .INDENT 2.0
  259158. .IP \(bu 2
  259159. 4495f4f4d0 Merge pull request \fI\%#27168\fP from techhat/gateimpacket
  259160. .IP \(bu 2
  259161. cc448bfdc1 Add further gating of impacket library
  259162. .UNINDENT
  259163. .IP \(bu 2
  259164. \fBISSUE\fP \fI\%#27100\fP: (\fI\%hexedpackets\fP) salt\-cloud \-\-full\-query does nothing when no VM profiles are configured (refs: \fI\%#27166\fP)
  259165. .IP \(bu 2
  259166. \fBPR\fP \fI\%#27166\fP: (\fI\%rallytime\fP) Allow a full\-query for EC2, even if there are no profiles defined
  259167. @ \fI2015\-09\-16 17:41:40 UTC\fP
  259168. .INDENT 2.0
  259169. .IP \(bu 2
  259170. 3e5ef0dc30 Merge pull request \fI\%#27166\fP from rallytime/fix\-27100
  259171. .IP \(bu 2
  259172. 50fb3a489a Allow a full\-query for EC2, even if there are no profiles defined
  259173. .UNINDENT
  259174. .IP \(bu 2
  259175. \fBPR\fP \fI\%#27162\fP: (\fI\%rallytime\fP) Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  259176. @ \fI2015\-09\-16 16:43:26 UTC\fP
  259177. .INDENT 2.0
  259178. .IP \(bu 2
  259179. f1c9de7ed9 Merge pull request \fI\%#27162\fP from rallytime/softlayer\-service
  259180. .IP \(bu 2
  259181. d281068c70 Be explicit in using "SoftLayer" for service queries in SoftLayer drivers
  259182. .UNINDENT
  259183. .IP \(bu 2
  259184. \fBISSUE\fP \fI\%#27133\fP: (\fI\%deniswal\fP) win_path.add causes the value data to be set as the value and vice versa (refs: \fI\%#27149\fP)
  259185. .IP \(bu 2
  259186. \fBPR\fP \fI\%#27149\fP: (\fI\%twangboy\fP) Fixed problem with add/remove path
  259187. @ \fI2015\-09\-16 15:01:48 UTC\fP
  259188. .INDENT 2.0
  259189. .IP \(bu 2
  259190. 59e9dfd8de Merge pull request \fI\%#27149\fP from twangboy/fix_27133
  259191. .IP \(bu 2
  259192. 7992b7e20a Fixed some tests... hopefully...
  259193. .IP \(bu 2
  259194. d4c8e30f5d Fixed problem with add/remove path
  259195. .UNINDENT
  259196. .IP \(bu 2
  259197. \fBISSUE\fP \fI\%#11669\fP: (\fI\%jcockhren\fP) salt.cloud is out of date for new google compute engine dashboard and API (refs: \fI\%#27147\fP)
  259198. .IP \(bu 2
  259199. \fBPR\fP \fI\%#27147\fP: (\fI\%rallytime\fP) Enforce bounds in the GCE Regex
  259200. @ \fI2015\-09\-15 21:51:55 UTC\fP
  259201. .INDENT 2.0
  259202. .IP \(bu 2
  259203. 097fcd1017 Merge pull request \fI\%#27147\fP from rallytime/fix\-11669
  259204. .IP \(bu 2
  259205. 55312ea03f Provide a more friendly error message.
  259206. .IP \(bu 2
  259207. 36555856c7 Enforce bounds in the GCE Regex
  259208. .UNINDENT
  259209. .IP \(bu 2
  259210. \fBPR\fP \fI\%#27128\fP: (\fI\%eguven\fP) don\(aqt show diff for test run if show_diff=False
  259211. @ \fI2015\-09\-15 14:11:55 UTC\fP
  259212. .INDENT 2.0
  259213. .IP \(bu 2
  259214. f5c3f157dd Merge pull request \fI\%#27128\fP from eguven/2015.5\-fix\-test\-diff
  259215. .IP \(bu 2
  259216. ec2d68a84a don\(aqt show diff for test run if show_diff=False
  259217. .UNINDENT
  259218. .IP \(bu 2
  259219. \fBPR\fP \fI\%#27116\fP: (\fI\%jacobhammons\fP) Update latest to 2015.8, 2015.5 is now previous
  259220. @ \fI2015\-09\-15 07:34:28 UTC\fP
  259221. .INDENT 2.0
  259222. .IP \(bu 2
  259223. 088b1dbb3e Merge pull request \fI\%#27116\fP from jacobhammons/release\-docs\-2015.5
  259224. .IP \(bu 2
  259225. 6e323b6dd3 Update latest to 2015.8, 2015.5 is now previous Assorted style and minor updates
  259226. .UNINDENT
  259227. .IP \(bu 2
  259228. \fBISSUE\fP \fI\%#25352\fP: (\fI\%m03\fP) reg.absent reporting incorrect results (refs: \fI\%#27019\fP)
  259229. .IP \(bu 2
  259230. \fBPR\fP \fI\%#27033\fP: (\fI\%jfindlay\fP) Merge \fI\%#27019\fP
  259231. @ \fI2015\-09\-15 07:32:17 UTC\fP
  259232. .INDENT 2.0
  259233. .IP \(bu 2
  259234. \fBPR\fP \fI\%#27019\fP: (\fI\%twangboy\fP) Fixed reg state module for None, 0, and \(aq\(aq values (refs: \fI\%#27033\fP)
  259235. .IP \(bu 2
  259236. 440855b182 Merge pull request \fI\%#27033\fP from jfindlay/n0ne
  259237. .IP \(bu 2
  259238. 3334b9d548 fix comment and unit test for reg state
  259239. .IP \(bu 2
  259240. 391a09d5ac update reg state unit tests
  259241. .IP \(bu 2
  259242. ebbf2b05ca Fixed reg state module for None, 0, and \(aq\(aq values
  259243. .UNINDENT
  259244. .IP \(bu 2
  259245. \fBISSUE\fP \fI\%#17088\fP: (\fI\%umireon\fP) state.dockerio.run: docked_onlyif and docked_unless do not work (refs: \fI\%#26942\fP)
  259246. .IP \(bu 2
  259247. \fBPR\fP \fI\%#26942\fP: (\fI\%Arabus\fP) Fix docker.run
  259248. @ \fI2015\-09\-14 18:10:54 UTC\fP
  259249. .INDENT 2.0
  259250. .IP \(bu 2
  259251. 35fc74132a Merge pull request \fI\%#26942\fP from Arabus/fix\-docker.run
  259252. .IP \(bu 2
  259253. e61e1de1f5 Fixes value typo for dockerio.loaded state
  259254. .IP \(bu 2
  259255. 39fa11b696 further linting
  259256. .IP \(bu 2
  259257. 4aec37397c Further Linting to quiet the linter
  259258. .IP \(bu 2
  259259. 7eff8ad070 Code Linting and cmd call fix
  259260. .IP \(bu 2
  259261. a51676e0eb Fixes \fI\%#17088\fP olyif and unless should run on the host
  259262. .IP \(bu 2
  259263. d0c6128b8f Fixes \fI\%#17088\fP retcode now returns True or False based on return status
  259264. .IP \(bu 2
  259265. 8b2e7cc4f5 Syntax clarification
  259266. .UNINDENT
  259267. .IP \(bu 2
  259268. \fBPR\fP \fI\%#26977\fP: (\fI\%abh\fP) Add support for PEERNTP network interface configuration
  259269. @ \fI2015\-09\-14 17:59:00 UTC\fP
  259270. .INDENT 2.0
  259271. .IP \(bu 2
  259272. 59f2a0c7ae Merge pull request \fI\%#26977\fP from abh/2015.5\-ntppeer
  259273. .IP \(bu 2
  259274. df3d6e817f Add support for PEERNTP network interface configuration on RH derived systems
  259275. .UNINDENT
  259276. .IP \(bu 2
  259277. \fBISSUE\fP \fI\%#27021\fP: (\fI\%SEJeff\fP) webutil.user_exists state does not respect test=true (refs: \fI\%#27023\fP)
  259278. .IP \(bu 2
  259279. \fBISSUE\fP \fI\%#21533\fP: (\fI\%aspyatkin\fP) Add option specifying user to run htpasswd module functions (refs: \fI\%#21649\fP)
  259280. .IP \(bu 2
  259281. \fBPR\fP \fI\%#27023\fP: (\fI\%jfindlay\fP) add test support for htpasswd state mod
  259282. @ \fI2015\-09\-14 17:48:00 UTC\fP
  259283. .INDENT 2.0
  259284. .IP \(bu 2
  259285. \fBPR\fP \fI\%#21649\fP: (\fI\%aspyatkin\fP) Make enhancements to htpasswd modules (refs: \fI\%#27023\fP)
  259286. .IP \(bu 2
  259287. e05b1f3951 Merge pull request \fI\%#27023\fP from jfindlay/htwebutilpass
  259288. .IP \(bu 2
  259289. 9f3d7890a6 add test support for htpasswd state mod
  259290. .UNINDENT
  259291. .IP \(bu 2
  259292. \fBPR\fP \fI\%#27074\fP: (\fI\%twangboy\fP) Replaced password with redacted when displayed
  259293. @ \fI2015\-09\-14 16:27:26 UTC\fP
  259294. .INDENT 2.0
  259295. .IP \(bu 2
  259296. 9f999c0027 Merge pull request \fI\%#27074\fP from twangboy/fix_password_2015.5
  259297. .IP \(bu 2
  259298. fdd3537456 Replaced password with redacted when displayed
  259299. .UNINDENT
  259300. .IP \(bu 2
  259301. \fBPR\fP \fI\%#27073\fP: (\fI\%rallytime\fP) Remove "use develop branch" warning from LXC tutorial
  259302. @ \fI2015\-09\-11 23:51:06 UTC\fP
  259303. .INDENT 2.0
  259304. .IP \(bu 2
  259305. 46b44f85ed Merge pull request \fI\%#27073\fP from rallytime/remove\-lxc\-warning
  259306. .IP \(bu 2
  259307. 76c056d02b Remove "use develop branch" warning from LXC tutorial now that 2015.5.0 has been released
  259308. .UNINDENT
  259309. .IP \(bu 2
  259310. \fBPR\fP \fI\%#27054\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27029\fP to 2015.5
  259311. @ \fI2015\-09\-11 22:29:45 UTC\fP
  259312. .INDENT 2.0
  259313. .IP \(bu 2
  259314. \fBPR\fP \fI\%#27029\fP: (\fI\%spudfkc\fP) Removed check for no package name (refs: \fI\%#27054\fP)
  259315. .IP \(bu 2
  259316. caab21d99c Merge pull request \fI\%#27054\fP from rallytime/bp\-27029
  259317. .IP \(bu 2
  259318. 0be393be22 Removed check for no package name
  259319. .UNINDENT
  259320. .IP \(bu 2
  259321. \fBPR\fP \fI\%#27053\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26992\fP to 2015.5
  259322. @ \fI2015\-09\-11 22:29:30 UTC\fP
  259323. .INDENT 2.0
  259324. .IP \(bu 2
  259325. \fBPR\fP \fI\%#26992\fP: (\fI\%plastikos\fP) Summary requires full return information. (refs: \fI\%#27053\fP)
  259326. .IP \(bu 2
  259327. 0227e1cb57 Merge pull request \fI\%#27053\fP from rallytime/bp\-26992
  259328. .IP \(bu 2
  259329. 83798aff3c Do not use full return for documentation.
  259330. .IP \(bu 2
  259331. d9d5bbaa68 Summary requires full return information.
  259332. .UNINDENT
  259333. .IP \(bu 2
  259334. \fBPR\fP \fI\%#27052\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26930\fP to 2015.5
  259335. @ \fI2015\-09\-11 22:28:11 UTC\fP
  259336. .INDENT 2.0
  259337. .IP \(bu 2
  259338. \fBPR\fP \fI\%#26930\fP: (\fI\%madprog\fP) aptpkg.mod_repo: Raise when key_url doesn\(aqt exist (refs: \fI\%#27052\fP)
  259339. .IP \(bu 2
  259340. b72a0ef86d Merge pull request \fI\%#27052\fP from rallytime/bp\-26930
  259341. .IP \(bu 2
  259342. d9787aa318 aptpkg.mod_repo: Raise when key_url doesn\(aqt exist
  259343. .UNINDENT
  259344. .IP \(bu 2
  259345. \fBPR\fP \fI\%#27049\fP: (\fI\%johanek\fP) Run repoquery less
  259346. @ \fI2015\-09\-11 22:26:12 UTC\fP
  259347. .INDENT 2.0
  259348. .IP \(bu 2
  259349. 8b554dd16f Merge pull request \fI\%#27049\fP from johanek/repoquery\-dedupe
  259350. .IP \(bu 2
  259351. c113916a23 When running repoquery to check for available versions of packages, run once for all packages rather than once per package
  259352. .UNINDENT
  259353. .IP \(bu 2
  259354. \fBPR\fP \fI\%#27070\fP: (\fI\%stanislavb\fP) Deprecate salt.utils.iam in Carbon
  259355. @ \fI2015\-09\-11 22:01:57 UTC\fP
  259356. .INDENT 2.0
  259357. .IP \(bu 2
  259358. \fBPR\fP \fI\%#26561\fP: (\fI\%stanislavb\fP) Leave salt.utils.s3 location fallback to salt.utils.aws (refs: \fI\%#27070\fP)
  259359. .IP \(bu 2
  259360. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  259361. .IP \(bu 2
  259362. \fBPR\fP \fI\%#26378\fP: (\fI\%stanislavb\fP) Fix EC2 credentials from IAM roles for s3fs and s3 ext_pillar in 2015.5 (refs: \fI\%#26446\fP)
  259363. .IP \(bu 2
  259364. cc2cbf9869 Merge pull request \fI\%#27070\fP from stanislavb/2015.5
  259365. .IP \(bu 2
  259366. 1e6e5ddc9c Deprecate salt.utils.iam in Carbon
  259367. .UNINDENT
  259368. .IP \(bu 2
  259369. \fBPR\fP \fI\%#27030\fP: (\fI\%jfindlay\fP) Backport \fI\%#26938\fP
  259370. @ \fI2015\-09\-11 15:10:46 UTC\fP
  259371. .INDENT 2.0
  259372. .IP \(bu 2
  259373. \fBPR\fP \fI\%#27004\fP: (\fI\%vtek21\fP) Fix \(aqdict\(aq object has no attribute split (refs: \fI\%#27024\fP, \fI\%#27030\fP)
  259374. .IP \(bu 2
  259375. \fBPR\fP \fI\%#26938\fP: (\fI\%derphilipp\fP) Fixes win_path module, migrates from reg.(set|get)_key to reg.(set|get)_value (refs: \fI\%#27030\fP)
  259376. .IP \(bu 2
  259377. e23caa8ccf Merge pull request \fI\%#27030\fP from jfindlay/winreg
  259378. .IP \(bu 2
  259379. 120fbe78e0 remove trailing line in win_path exec module
  259380. .IP \(bu 2
  259381. b36a7107b2 update win_path exec module unit tests
  259382. .IP \(bu 2
  259383. a2dc6f2dd7 Fixes win_path module, migrates from reg.(set|get)_key to reg.(set|get)_value
  259384. .UNINDENT
  259385. .IP \(bu 2
  259386. \fBISSUE\fP \fI\%#25581\fP: (\fI\%b18\fP) Salt 2015.5.2 \- Could not deserialize msgpack message error. (refs: \fI\%#27025\fP)
  259387. .IP \(bu 2
  259388. \fBPR\fP \fI\%#27025\fP: (\fI\%cachedout\fP) Better try and error handling for prep_jid
  259389. @ \fI2015\-09\-11 07:40:10 UTC\fP
  259390. .INDENT 2.0
  259391. .IP \(bu 2
  259392. 843c28b435 Merge pull request \fI\%#27025\fP from cachedout/issue_25581
  259393. .IP \(bu 2
  259394. ecc09d9b93 Lint
  259395. .IP \(bu 2
  259396. bfcaab9ef4 Better try and error handling for prep_jid
  259397. .UNINDENT
  259398. .IP \(bu 2
  259399. \fBPR\fP \fI\%#27035\fP: (\fI\%terminalmage\fP) useradd.py: Use contextmanager to prevent leaked filehandles
  259400. @ \fI2015\-09\-11 07:39:41 UTC\fP
  259401. .INDENT 2.0
  259402. .IP \(bu 2
  259403. b9baa0b39a Merge pull request \fI\%#27035\fP from terminalmage/useradd\-contextmanager
  259404. .IP \(bu 2
  259405. e430e97f6c Update user states to reflect changes to login class handling
  259406. .IP \(bu 2
  259407. f24b979c7c useradd.py: Use contextmanager to prevent leaked filehandles
  259408. .UNINDENT
  259409. .IP \(bu 2
  259410. \fBPR\fP \fI\%#27034\fP: (\fI\%rallytime\fP) Update softlayer docs for where to find apikey
  259411. @ \fI2015\-09\-10 22:29:56 UTC\fP
  259412. .INDENT 2.0
  259413. .IP \(bu 2
  259414. 1cdfdf7a92 Merge pull request \fI\%#27034\fP from rallytime/softlayer\-doc\-fix
  259415. .IP \(bu 2
  259416. cb641f8145 Update softlayer docs for where to find apikey
  259417. .UNINDENT
  259418. .IP \(bu 2
  259419. \fBPR\fP \fI\%#27024\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27004\fP to 2015.5
  259420. @ \fI2015\-09\-10 21:14:21 UTC\fP
  259421. .INDENT 2.0
  259422. .IP \(bu 2
  259423. \fBPR\fP \fI\%#27004\fP: (\fI\%vtek21\fP) Fix \(aqdict\(aq object has no attribute split (refs: \fI\%#27024\fP, \fI\%#27030\fP)
  259424. .IP \(bu 2
  259425. 9e06d3f01a Merge pull request \fI\%#27024\fP from rallytime/bp\-27004
  259426. .IP \(bu 2
  259427. 54d6fcf4c7 Fix \(aqdict\(aq object has no attribute split
  259428. .IP \(bu 2
  259429. bb29d73c71 Fix \(aqdict\(aq object has no attribute split
  259430. .IP \(bu 2
  259431. 5f1a9c46aa Fix \(aqdict\(aq object has no attribute split
  259432. .IP \(bu 2
  259433. 2bfdd9724e Fix \(aqdict\(aq object has no attribute split
  259434. .UNINDENT
  259435. .IP \(bu 2
  259436. \fBPR\fP \fI\%#27027\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27013\fP to 2015.5
  259437. @ \fI2015\-09\-10 21:13:52 UTC\fP
  259438. .INDENT 2.0
  259439. .IP \(bu 2
  259440. \fBPR\fP \fI\%#27013\fP: (\fI\%nmadhok\fP) Remove unwanted debug statement (refs: \fI\%#27027\fP)
  259441. .IP \(bu 2
  259442. 9ab2cae1e4 Merge pull request \fI\%#27027\fP from rallytime/bp\-27013
  259443. .IP \(bu 2
  259444. 19a6e9cb1c Remove unwanted debug statement.
  259445. .UNINDENT
  259446. .IP \(bu 2
  259447. \fBPR\fP \fI\%#27026\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27011\fP to 2015.5
  259448. @ \fI2015\-09\-10 21:13:45 UTC\fP
  259449. .INDENT 2.0
  259450. .IP \(bu 2
  259451. \fBPR\fP \fI\%#27011\fP: (\fI\%whiteinge\fP) Move giant eventlisten.sh example out of the state.event docstring (refs: \fI\%#27026\fP)
  259452. .IP \(bu 2
  259453. 2c8beb238f Merge pull request \fI\%#27026\fP from rallytime/bp\-27011
  259454. .IP \(bu 2
  259455. f8518d545f Move giant eventlisten.sh example out of the state.event docstring
  259456. .UNINDENT
  259457. .IP \(bu 2
  259458. \fBISSUE\fP \fI\%#20522\fP: (\fI\%eliasp\fP) \fImodules.win_pkg.install()\fP blindly trusts \fIfileclient.get_url()\fP/unhandled exceptions (refs: \fI\%#26972\fP)
  259459. .IP \(bu 2
  259460. \fBPR\fP \fI\%#26972\fP: (\fI\%twangboy\fP) Catch the 404 error from fileclient
  259461. @ \fI2015\-09\-10 20:53:12 UTC\fP
  259462. .INDENT 2.0
  259463. .IP \(bu 2
  259464. e8cdcc62f7 Merge pull request \fI\%#26972\fP from twangboy/fix_20522
  259465. .IP \(bu 2
  259466. 0110786fa9 Catch the 404 error from fileclient
  259467. .UNINDENT
  259468. .IP \(bu 2
  259469. \fBPR\fP \fI\%#26951\fP: (\fI\%terminalmage\fP) Fix timezone module for CentOS
  259470. @ \fI2015\-09\-10 20:46:07 UTC\fP
  259471. .INDENT 2.0
  259472. .IP \(bu 2
  259473. fbc95f4685 Merge pull request \fI\%#26951\fP from terminalmage/fix\-timezone
  259474. .IP \(bu 2
  259475. 30a4915762 Update tests to reflect changes to timezone module
  259476. .IP \(bu 2
  259477. b6f926919f Fix timezone module for CentOS
  259478. .UNINDENT
  259479. .IP \(bu 2
  259480. \fBPR\fP \fI\%#26875\fP: (\fI\%marccardinal\fP) LXC gateway provisioned only when IP is provided
  259481. @ \fI2015\-09\-10 19:31:32 UTC\fP
  259482. .INDENT 2.0
  259483. .IP \(bu 2
  259484. f2ad3c333c Merge pull request \fI\%#26875\fP from marccardinal/patch\-2
  259485. .IP \(bu 2
  259486. 36d5a62262 LXC gateway provisioned only when IP is provided
  259487. .UNINDENT
  259488. .IP \(bu 2
  259489. \fBISSUE\fP \fI\%#26730\fP: (\fI\%styro\fP) __opts__[\(aquser\(aq] on Windows minion incorrect (eg for file.symlink) (refs: \fI\%#26997\fP, #\(gasaltstack/salt\(ga#26899\(ga_\(ga_, \fI\%#26899\fP)
  259490. .IP \(bu 2
  259491. \fBPR\fP \fI\%#26997\fP: (\fI\%twangboy\fP) Fixed symlinks for windows (don\(aqt use user root)
  259492. @ \fI2015\-09\-10 18:54:50 UTC\fP
  259493. .INDENT 2.0
  259494. .IP \(bu 2
  259495. \fBPR\fP \fI\%#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26997\fP)
  259496. .IP \(bu 2
  259497. 7b2e7b1b37 Merge pull request \fI\%#26997\fP from twangboy/fix_symlink_windows
  259498. .IP \(bu 2
  259499. 89cc02d4e0 Added \fIversionadded\fP
  259500. .IP \(bu 2
  259501. 835177b0c8 Fixed symlinks for windows (don\(aqt use user root)
  259502. .UNINDENT
  259503. .IP \(bu 2
  259504. \fBPR\fP \fI\%#27001\fP: (\fI\%twangboy\fP) Added CLI Example for reg.delete_key_recursive
  259505. @ \fI2015\-09\-10 17:19:43 UTC\fP
  259506. .INDENT 2.0
  259507. .IP \(bu 2
  259508. 5389a85894 Merge pull request \fI\%#27001\fP from twangboy/fix_reg_docs
  259509. .IP \(bu 2
  259510. 2980bbda17 Minor clarification
  259511. .IP \(bu 2
  259512. 4684b2ddd1 Added CLI example for reg.delete_key_recursive
  259513. .UNINDENT
  259514. .IP \(bu 2
  259515. \fBPR\fP \fI\%#26996\fP: (\fI\%jacobhammons\fP) Beacon doc updates
  259516. @ \fI2015\-09\-10 16:47:49 UTC\fP
  259517. .INDENT 2.0
  259518. .IP \(bu 2
  259519. 37814f5dff Merge pull request \fI\%#26996\fP from jacobhammons/beacon\-doc
  259520. .IP \(bu 2
  259521. e475ea688e Fixed typo
  259522. .IP \(bu 2
  259523. 2401533d9e New content added to beacon docs.
  259524. .UNINDENT
  259525. .IP \(bu 2
  259526. \fBISSUE\fP \fI\%#26867\fP: (\fI\%joejulian\fP) lvm pv\(aqs can show as not belonging to their vg if symlink is used (refs: \fI\%#26868\fP)
  259527. .IP \(bu 2
  259528. \fBPR\fP \fI\%#26868\fP: (\fI\%joejulian\fP) Use the actual device name when checking vgdisplay
  259529. @ \fI2015\-09\-10 16:08:16 UTC\fP
  259530. .INDENT 2.0
  259531. .IP \(bu 2
  259532. 4ba7eed711 Merge pull request \fI\%#26868\fP from joejulian/2015.5_lvm_vg_symlink_fix
  259533. .IP \(bu 2
  259534. 3dfb33849a Use the actual device name when checking vgdisplay
  259535. .UNINDENT
  259536. .IP \(bu 2
  259537. \fBPR\fP \fI\%#26955\fP: (\fI\%dsumsky\fP) S3 ext_pillar module has broken caching mechanism (backport to 2015.5)
  259538. @ \fI2015\-09\-10 14:54:01 UTC\fP
  259539. .INDENT 2.0
  259540. .IP \(bu 2
  259541. 1537e945be Merge pull request \fI\%#26955\fP from dsumsky/s3\-pillar\-module\-cache\-fix\-2015.5
  259542. .IP \(bu 2
  259543. 8219acffe7 \- fixed pylint warnings
  259544. .IP \(bu 2
  259545. a3b10e8ab1 \- fixed broken caching in S3 ext_pillar module (file_md5 was a list) \- added debugging messages \- static parameters are available as module parameters now
  259546. .UNINDENT
  259547. .IP \(bu 2
  259548. \fBPR\fP \fI\%#26987\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26966\fP to 2015.5
  259549. @ \fI2015\-09\-09 18:42:51 UTC\fP
  259550. .INDENT 2.0
  259551. .IP \(bu 2
  259552. \fBPR\fP \fI\%#26966\fP: (\fI\%TheBigBear\fP) URL has changed (refs: \fI\%#26987\fP)
  259553. .IP \(bu 2
  259554. 3e902e86b1 Merge pull request \fI\%#26987\fP from rallytime/bp\-26966
  259555. .IP \(bu 2
  259556. 6a29eac003 URL has changed
  259557. .UNINDENT
  259558. .IP \(bu 2
  259559. \fBPR\fP \fI\%#26915\fP: (\fI\%rallytime\fP) Update Joyent Cloud Tests
  259560. @ \fI2015\-09\-09 15:04:50 UTC\fP
  259561. .INDENT 2.0
  259562. .IP \(bu 2
  259563. eddb532713 Merge pull request \fI\%#26915\fP from rallytime/joyent\-tests
  259564. .IP \(bu 2
  259565. d4ad42d697 Update Joyent Cloud Tests
  259566. .UNINDENT
  259567. .IP \(bu 2
  259568. \fBPR\fP \fI\%#26971\fP: (\fI\%rallytime\fP) Fix a couple of typos in reactor docs
  259569. @ \fI2015\-09\-09 15:03:54 UTC\fP
  259570. .INDENT 2.0
  259571. .IP \(bu 2
  259572. f86814b2a4 Merge pull request \fI\%#26971\fP from rallytime/reactor\-doc\-fix
  259573. .IP \(bu 2
  259574. 0214daad19 Fix a couple of typos in reactor docs
  259575. .UNINDENT
  259576. .IP \(bu 2
  259577. \fBISSUE\fP \fI\%#26730\fP: (\fI\%styro\fP) __opts__[\(aquser\(aq] on Windows minion incorrect (eg for file.symlink) (refs: \fI\%#26997\fP, #\(gasaltstack/salt\(ga#26899\(ga_\(ga_, \fI\%#26899\fP)
  259578. .INDENT 2.0
  259579. .IP \(bu 2
  259580. \fBPR\fP \fI\%saltstack/salt#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26976\fP)
  259581. .UNINDENT
  259582. .IP \(bu 2
  259583. \fBPR\fP \fI\%#26976\fP: (\fI\%thatch45\fP) Revert "file.symlink gets windows account instead of root"
  259584. @ \fI2015\-09\-08 22:44:19 UTC\fP
  259585. .INDENT 2.0
  259586. .IP \(bu 2
  259587. 57b1080f94 Merge pull request \fI\%#26976\fP from saltstack/revert\-26899\-fix_26730
  259588. .IP \(bu 2
  259589. 6dd54e6bec Revert "file.symlink gets windows account instead of root"
  259590. .UNINDENT
  259591. .IP \(bu 2
  259592. \fBPR\fP \fI\%#26975\fP: (\fI\%whiteinge\fP) Remove mocks from rest_cherrypy integration tests; fix groups check bug
  259593. @ \fI2015\-09\-08 22:34:08 UTC\fP
  259594. .INDENT 2.0
  259595. .IP \(bu 2
  259596. 67be01f5fe Merge pull request \fI\%#26975\fP from whiteinge/rest_cherrypy\-integration
  259597. .IP \(bu 2
  259598. 9a0989585b Add additional \(aqgroups\(aq check to rest_cherrypy if groups are not used
  259599. .IP \(bu 2
  259600. d68aefcfde Remove mocks from rest_cherrypy integration tests
  259601. .IP \(bu 2
  259602. 2aa3da8911 Rename the rest_cherrypy tests to conform to our convention
  259603. .UNINDENT
  259604. .IP \(bu 2
  259605. \fBISSUE\fP \fI\%#26730\fP: (\fI\%styro\fP) __opts__[\(aquser\(aq] on Windows minion incorrect (eg for file.symlink) (refs: \fI\%#26997\fP, #\(gasaltstack/salt\(ga#26899\(ga_\(ga_, \fI\%#26899\fP)
  259606. .IP \(bu 2
  259607. \fBPR\fP \fI\%#26899\fP: (\fI\%twangboy\fP) file.symlink gets windows account instead of root (refs: \fI\%#26997\fP)
  259608. @ \fI2015\-09\-08 21:14:30 UTC\fP
  259609. .INDENT 2.0
  259610. .IP \(bu 2
  259611. 20a48f7f2e Merge pull request \fI\%#26899\fP from twangboy/fix_26730
  259612. .IP \(bu 2
  259613. 9d9b3bb47a file.symlink gets windows account instead of root
  259614. .UNINDENT
  259615. .IP \(bu 2
  259616. \fBPR\fP \fI\%#26960\fP: (\fI\%rallytime\fP) Fix bash code block formatting in CherryPy netapi docs
  259617. @ \fI2015\-09\-08 18:14:11 UTC\fP
  259618. .INDENT 2.0
  259619. .IP \(bu 2
  259620. dbc6b862f4 Merge pull request \fI\%#26960\fP from rallytime/cherrypy\-docs
  259621. .IP \(bu 2
  259622. c1420711db Fix bash code block formatting
  259623. .UNINDENT
  259624. .IP \(bu 2
  259625. \fBPR\fP \fI\%#26940\fP: (\fI\%rallytime\fP) Fix minor doc typo in client api
  259626. @ \fI2015\-09\-08 04:15:00 UTC\fP
  259627. .INDENT 2.0
  259628. .IP \(bu 2
  259629. f733e048c9 Merge pull request \fI\%#26940\fP from rallytime/api\-doc\-fix
  259630. .IP \(bu 2
  259631. 00fe6a225c Fix minor doc typo in client api
  259632. .UNINDENT
  259633. .IP \(bu 2
  259634. \fBISSUE\fP \fI\%#26850\fP: (\fI\%jfindlay\fP) salt\-ssh error on 2015.8 (refs: \fI\%#26852\fP)
  259635. .IP \(bu 2
  259636. \fBPR\fP \fI\%#26871\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26852\fP to 2015.5
  259637. @ \fI2015\-09\-08 03:43:08 UTC\fP
  259638. .INDENT 2.0
  259639. .IP \(bu 2
  259640. \fBPR\fP \fI\%#26852\fP: (\fI\%basepi\fP) [2015.8] Only reference msgpack if it imported successfully (refs: \fI\%#26871\fP)
  259641. .IP \(bu 2
  259642. de9350466e Merge pull request \fI\%#26871\fP from rallytime/bp\-26852
  259643. .IP \(bu 2
  259644. 5a4c8dd2f5 Only reference msgpack if it imported successfully
  259645. .UNINDENT
  259646. .IP \(bu 2
  259647. \fBISSUE\fP \fI\%#26644\fP: (\fI\%gravyboat\fP) pkgrepo should note that for ubuntu/debian all options should not be used (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  259648. .IP \(bu 2
  259649. \fBISSUE\fP \fI\%#26638\fP: (\fI\%WackyOne\fP) Suse install documentation (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  259650. .IP \(bu 2
  259651. \fBPR\fP \fI\%#26851\fP: (\fI\%jacobhammons\fP) states/pkgrepo examples, suse installation updates
  259652. @ \fI2015\-09\-02 18:29:09 UTC\fP
  259653. .INDENT 2.0
  259654. .IP \(bu 2
  259655. a563af29d3 Merge pull request \fI\%#26851\fP from jacobhammons/doc\-bugs
  259656. .IP \(bu 2
  259657. ac3bd47440 states/pkgrepo examples, suse installation updates Refs \fI\%#26644\fP Refs \fI\%#26638\fP
  259658. .UNINDENT
  259659. .IP \(bu 2
  259660. \fBISSUE\fP \fI\%#26804\fP: (\fI\%lrhazi\fP) gpasswd error on RHEL 5 (refs: \fI\%#26817\fP)
  259661. .IP \(bu 2
  259662. \fBPR\fP \fI\%#26817\fP: (\fI\%jfindlay\fP) modify groupadd for rhel 5
  259663. @ \fI2015\-09\-02 14:52:53 UTC\fP
  259664. .INDENT 2.0
  259665. .IP \(bu 2
  259666. 5b1b934192 Merge pull request \fI\%#26817\fP from jfindlay/grouparg
  259667. .IP \(bu 2
  259668. 82d33939f3 modify groupadd for rhel 5
  259669. .UNINDENT
  259670. .IP \(bu 2
  259671. \fBISSUE\fP \fI\%#22724\fP: (\fI\%ty2u\fP) digital_ocean_v2.py doesn\(aqt restore snapshot (refs: \fI\%#26824\fP)
  259672. .IP \(bu 2
  259673. \fBPR\fP \fI\%#26824\fP: (\fI\%systembell\fP) [salt\-cloud] Fix creating droplet from snapshot in digital_ocean provider
  259674. @ \fI2015\-09\-02 05:18:37 UTC\fP
  259675. .INDENT 2.0
  259676. .IP \(bu 2
  259677. cdc0ea2fe3 Merge pull request \fI\%#26824\fP from pravka/fix\-droplet\-creation\-from\-snapshot\-in\-dov2
  259678. .IP \(bu 2
  259679. 00e3192536 removing log
  259680. .IP \(bu 2
  259681. e4a82d78d9 removing stringification of every value in the image dict
  259682. .IP \(bu 2
  259683. cdc2b4584a fixing condition for slug check
  259684. .UNINDENT
  259685. .IP \(bu 2
  259686. \fBISSUE\fP \fI\%#26805\fP: (\fI\%joejulian\fP) cur_param referenced before assignment (refs: \fI\%#26823\fP, \fI\%#26820\fP)
  259687. .IP \(bu 2
  259688. \fBPR\fP \fI\%#26823\fP: (\fI\%joejulian\fP) use dbus instead of localectl
  259689. @ \fI2015\-09\-02 00:25:25 UTC\fP
  259690. .INDENT 2.0
  259691. .IP \(bu 2
  259692. 4af6951a4c Merge pull request \fI\%#26823\fP from joejulian/ctlfix
  259693. .IP \(bu 2
  259694. a9928cb143 pep8 fixes
  259695. .IP \(bu 2
  259696. 6108ec4280 Gated dbus for os families that use it
  259697. .IP \(bu 2
  259698. e154c7b16f remove trailing spaces
  259699. .IP \(bu 2
  259700. c1c1266cc3 fix indent change
  259701. .IP \(bu 2
  259702. 0a35320aa7 Use dbus directly
  259703. .UNINDENT
  259704. .IP \(bu 2
  259705. \fBISSUE\fP \fI\%#26805\fP: (\fI\%joejulian\fP) cur_param referenced before assignment (refs: \fI\%#26823\fP, \fI\%#26820\fP)
  259706. .IP \(bu 2
  259707. \fBPR\fP \fI\%#26820\fP: (\fI\%jfindlay\fP) add default param in _parse_localectl in locale mod
  259708. @ \fI2015\-09\-01 22:02:17 UTC\fP
  259709. .INDENT 2.0
  259710. .IP \(bu 2
  259711. a1749b76b8 Merge pull request \fI\%#26820\fP from jfindlay/ctlfix
  259712. .IP \(bu 2
  259713. 3a2c0d5fbb add default param in _parse_localectl in locale mod
  259714. .UNINDENT
  259715. .IP \(bu 2
  259716. \fBISSUE\fP \fI\%#26788\fP: (\fI\%ssgward\fP) Windows minion user.rename gives exception (refs: \fI\%#26821\fP)
  259717. .IP \(bu 2
  259718. \fBPR\fP \fI\%#26821\fP: (\fI\%twangboy\fP) Fixed user.rename function in windows
  259719. @ \fI2015\-09\-01 22:01:50 UTC\fP
  259720. .INDENT 2.0
  259721. .IP \(bu 2
  259722. ff733547c4 Merge pull request \fI\%#26821\fP from twangboy/fix_26788
  259723. .IP \(bu 2
  259724. cf979e4877 Fixed user.rename function in windows
  259725. .UNINDENT
  259726. .IP \(bu 2
  259727. \fBISSUE\fP \fI\%#26754\fP: (\fI\%jefftucker\fP) MySQLdb\-python package should be included with windows minion installer (refs: \fI\%#26803\fP)
  259728. .IP \(bu 2
  259729. \fBPR\fP \fI\%#26803\fP: (\fI\%twangboy\fP) Added check for PyMySQL if MySQLdb import fails
  259730. @ \fI2015\-09\-01 21:44:41 UTC\fP
  259731. .INDENT 2.0
  259732. .IP \(bu 2
  259733. c892be3255 Merge pull request \fI\%#26803\fP from twangboy/fix_26754
  259734. .IP \(bu 2
  259735. 23576c65eb Added check for PyMySQL if MySQLdb import fails
  259736. .UNINDENT
  259737. .IP \(bu 2
  259738. \fBISSUE\fP \fI\%#26798\fP: (\fI\%jfindlay\fP) stack trace from linode driver (refs: \fI\%#26815\fP)
  259739. .IP \(bu 2
  259740. \fBPR\fP \fI\%#26815\fP: (\fI\%jfindlay\fP) stringify linode id before performing str actions
  259741. @ \fI2015\-09\-01 17:56:29 UTC\fP
  259742. .INDENT 2.0
  259743. .IP \(bu 2
  259744. 6edfa36083 Merge pull request \fI\%#26815\fP from jfindlay/linstr
  259745. .IP \(bu 2
  259746. 2ff5823944 stringify linode id before performing str actions
  259747. .UNINDENT
  259748. .IP \(bu 2
  259749. \fBISSUE\fP \fI\%#26644\fP: (\fI\%gravyboat\fP) pkgrepo should note that for ubuntu/debian all options should not be used (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  259750. .IP \(bu 2
  259751. \fBISSUE\fP \fI\%#26638\fP: (\fI\%WackyOne\fP) Suse install documentation (refs: \fI\%#26800\fP, \fI\%#26851\fP)
  259752. .IP \(bu 2
  259753. \fBISSUE\fP \fI\%#26192\fP: (\fI\%jefftucker\fP) Logging documentation does not exist (refs: \fI\%#26800\fP)
  259754. .IP \(bu 2
  259755. \fBISSUE\fP \fI\%#26108\fP: (\fI\%ahammond\fP) documentation around scheduling and orchestration is unclear (refs: \fI\%#26800\fP)
  259756. .IP \(bu 2
  259757. \fBISSUE\fP \fI\%#24510\fP: (\fI\%ahammond\fP) lack of documentation around Denied Keys (refs: \fI\%#26800\fP)
  259758. .IP \(bu 2
  259759. \fBPR\fP \fI\%#26800\fP: (\fI\%jacobhammons\fP) Doc bug fixes
  259760. @ \fI2015\-09\-01 05:40:09 UTC\fP
  259761. .INDENT 2.0
  259762. .IP \(bu 2
  259763. 135a8a64af Merge pull request \fI\%#26800\fP from jacobhammons/doc\-fixes
  259764. .IP \(bu 2
  259765. 5cca52a3c1 Fixed windows installer paths Refs \fI\%#25567\fP
  259766. .IP \(bu 2
  259767. 0ec036350d Updates to salt\-ssh and salt\-key \fI\%#24510\fP
  259768. .IP \(bu 2
  259769. 992edc3bb8 Doc bug fixes Refs \fI\%#26192\fP Refs \fI\%#26638\fP Refs \fI\%#26644\fP Refs \fI\%#26108\fP
  259770. .UNINDENT
  259771. .IP \(bu 2
  259772. \fBISSUE\fP \fI\%#24021\fP: (\fI\%arthurlogilab\fP) [salt\-cloud saltify] AttributeError: \(aqstr\(aq object has no attribute \(aqsetdefault\(aq (refs: \fI\%#26793\fP)
  259773. .IP \(bu 2
  259774. \fBPR\fP \fI\%#26793\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if "name" is specified as a minion id in a map file
  259775. @ \fI2015\-08\-31 19:24:25 UTC\fP
  259776. .INDENT 2.0
  259777. .IP \(bu 2
  259778. da161b9516 Merge pull request \fI\%#26793\fP from rallytime/fix\-name\-stacktrace
  259779. .IP \(bu 2
  259780. 8601e4b341 Don\(aqt stacktrace if "name" is specified as a minion id in a map file
  259781. .UNINDENT
  259782. .IP \(bu 2
  259783. \fBISSUE\fP \fI\%#24020\fP: (\fI\%arthurlogilab\fP) [salt\-cloud saltify] cannot use \-\-profile saltify machine{1..3} without a map (refs: \fI\%#26790\fP)
  259784. .IP \(bu 2
  259785. \fBPR\fP \fI\%#26790\fP: (\fI\%rallytime\fP) Update Saltify docs to be more accurate and helpful
  259786. @ \fI2015\-08\-31 18:17:31 UTC\fP
  259787. .INDENT 2.0
  259788. .IP \(bu 2
  259789. 7c8d0a09f6 Merge pull request \fI\%#26790\fP from rallytime/saltify_docs
  259790. .IP \(bu 2
  259791. d53754f2b7 Update Saltify docs to be more accurate and helpful
  259792. .UNINDENT
  259793. .IP \(bu 2
  259794. \fBISSUE\fP \fI\%#26773\fP: (\fI\%styro\fP) salt\-call minor breakage on Windows (refs: \fI\%#26775\fP)
  259795. .IP \(bu 2
  259796. \fBPR\fP \fI\%#26787\fP: (\fI\%jfindlay\fP) merge \fI\%#26775\fP
  259797. @ \fI2015\-08\-31 17:52:45 UTC\fP
  259798. .INDENT 2.0
  259799. .IP \(bu 2
  259800. \fBPR\fP \fI\%#26775\fP: (\fI\%styro\fP) Fix some leftover non portable exitcodes. (refs: \fI\%#26787\fP)
  259801. .IP \(bu 2
  259802. 70d0268c83 Merge pull request \fI\%#26787\fP from jfindlay/imp
  259803. .IP \(bu 2
  259804. e5bbf59ec7 disable import lint in run.py
  259805. .IP \(bu 2
  259806. 8aef725243 Restore blank lines again.
  259807. .IP \(bu 2
  259808. 1710070f61 Restore blank line.
  259809. .IP \(bu 2
  259810. 59d61a8dea os module no longer required.
  259811. .IP \(bu 2
  259812. f1b8d0d509 Add missing imports.
  259813. .IP \(bu 2
  259814. 7bd8809e23 Fix some non portable exitcodes. Fixes \fI\%#26773\fP
  259815. .UNINDENT
  259816. .IP \(bu 2
  259817. \fBPR\fP \fI\%#26759\fP: (\fI\%terminalmage\fP) Backport PR \fI\%#26726\fP to 2015.5 branch
  259818. @ \fI2015\-08\-31 14:39:20 UTC\fP
  259819. .INDENT 2.0
  259820. .IP \(bu 2
  259821. \fBPR\fP \fI\%#26726\fP: (\fI\%terminalmage\fP) Redact HTTPS Basic Auth in states/funcs which deal with git remotes (refs: \fI\%#26759\fP)
  259822. .IP \(bu 2
  259823. 645998dbd3 Merge pull request \fI\%#26759\fP from terminalmage/bp\-26726
  259824. .IP \(bu 2
  259825. d7f7fca7e5 More cleanup from moving auth redaction to salt.utils.url
  259826. .IP \(bu 2
  259827. 07db5a7038 fix redaction
  259828. .IP \(bu 2
  259829. 399871e6dd Add auth redaction flags to git exec module and use them in git state
  259830. .IP \(bu 2
  259831. 776dc38d73 check for ValueError when adding http basic auth
  259832. .IP \(bu 2
  259833. d2eb1f4340 Rename arguments in salt.utils.url.add_http_basic_auth
  259834. .IP \(bu 2
  259835. b45f37a467 Add http basic auth tests
  259836. .IP \(bu 2
  259837. 1ed42ea4fd Remove git unit tests, moving them to salt.utils.url tests
  259838. .IP \(bu 2
  259839. 96a55cdb59 Remove unused imports
  259840. .IP \(bu 2
  259841. 1f25a859bd Redact HTTPS Basic Auth data from remote URLs in comments and changes dict
  259842. .IP \(bu 2
  259843. eafeb6c7bf Automatically redact HTTPS basic auth
  259844. .IP \(bu 2
  259845. 6be3f8f9e1 Add support for callbacks to influence what information about commands is logged
  259846. .IP \(bu 2
  259847. c36f240a87 Add HTTPS Basic Auth funcs to salt.utils.url
  259848. .UNINDENT
  259849. .IP \(bu 2
  259850. \fBISSUE\fP \fI\%#26628\fP: (\fI\%MadsRC\fP) state.ipset tries to parse wrong data (refs: \fI\%#26768\fP)
  259851. .IP \(bu 2
  259852. \fBPR\fP \fI\%#26768\fP: (\fI\%garethgreenaway\fP) Fixes to ipset in 2015.5 for \fI\%#26628\fP
  259853. @ \fI2015\-08\-29 03:24:07 UTC\fP
  259854. .INDENT 2.0
  259855. .IP \(bu 2
  259856. 46a4bbd0e7 Merge pull request \fI\%#26768\fP from garethgreenaway/26628_2015_5_ipset_fixes
  259857. .IP \(bu 2
  259858. f0c6090c7e Fixing issue when information returned from ipset isn\(aqt in the format we expect and it causes an exception.
  259859. .UNINDENT
  259860. .IP \(bu 2
  259861. \fBISSUE\fP \fI\%#26732\fP: (\fI\%saltstack\-bot\fP) SmartOS pkgsrc dependency (refs: \fI\%#26753\fP)
  259862. .IP \(bu 2
  259863. \fBPR\fP \fI\%#26753\fP: (\fI\%jfindlay\fP) import elementree from _compat in ilo exec mod
  259864. @ \fI2015\-08\-28 20:56:45 UTC\fP
  259865. .INDENT 2.0
  259866. .IP \(bu 2
  259867. 7a58878ea8 Merge pull request \fI\%#26753\fP from jfindlay/iloet
  259868. .IP \(bu 2
  259869. 211a02754f import elementree from _compat in ilo exec mod
  259870. .UNINDENT
  259871. .IP \(bu 2
  259872. \fBISSUE\fP \fI\%#21256\fP: (\fI\%dhs\-rec\fP) win.exe package for RH 6 (refs: \fI\%#26736\fP)
  259873. .IP \(bu 2
  259874. \fBPR\fP \fI\%#26736\fP: (\fI\%twangboy\fP) Changed import from smbconnection to smb3
  259875. @ \fI2015\-08\-28 17:23:42 UTC\fP
  259876. .INDENT 2.0
  259877. .IP \(bu 2
  259878. 22dbce8d61 Merge pull request \fI\%#26736\fP from twangboy/fix_21256
  259879. .IP \(bu 2
  259880. 86f425c669 Changed import from smbconnection to smb3
  259881. .UNINDENT
  259882. .IP \(bu 2
  259883. \fBISSUE\fP \fI\%#26705\fP: (\fI\%Galser\fP) Salt\-Master 2015.5.5\-1 on Scientific Linux 6 fails loading some primitive pillars from YAML (refs: \fI\%#26714\fP)
  259884. .IP \(bu 2
  259885. \fBPR\fP \fI\%#26714\fP: (\fI\%jfindlay\fP) add exception placeholder for older msgpacks
  259886. @ \fI2015\-08\-28 16:02:35 UTC\fP
  259887. .INDENT 2.0
  259888. .IP \(bu 2
  259889. 16d4e0350d Merge pull request \fI\%#26714\fP from jfindlay/pack_except
  259890. .IP \(bu 2
  259891. ebcfaf9050 add exception placeholder for older msgpacks
  259892. .UNINDENT
  259893. .IP \(bu 2
  259894. \fBPR\fP \fI\%#26710\fP: (\fI\%rallytime\fP) Update GCE driver to return True, False or a new name in __virtual__()
  259895. @ \fI2015\-08\-27 20:08:17 UTC\fP
  259896. .INDENT 2.0
  259897. .IP \(bu 2
  259898. 47faa8cc16 Merge pull request \fI\%#26710\fP from rallytime/gce_virtual_return
  259899. .IP \(bu 2
  259900. e6b74879d7 Remove unused import
  259901. .IP \(bu 2
  259902. 78e31585cf Update GCE driver to return True, False or a new name in __virtual__()
  259903. .UNINDENT
  259904. .IP \(bu 2
  259905. \fBISSUE\fP \fI\%#14612\fP: (\fI\%cachedout\fP) Catch provider errors in salt cloud (refs: \fI\%#26709\fP)
  259906. .IP \(bu 2
  259907. \fBPR\fP \fI\%#26709\fP: (\fI\%rallytime\fP) Ensure VM name is valid before trying to create Linode VM
  259908. @ \fI2015\-08\-27 20:07:49 UTC\fP
  259909. .INDENT 2.0
  259910. .IP \(bu 2
  259911. cf487cf0f5 Merge pull request \fI\%#26709\fP from rallytime/fix\-14612
  259912. .IP \(bu 2
  259913. bc21094ea0 versionadded and more efficient checks
  259914. .IP \(bu 2
  259915. a3ac8e7008 Whitespace fix
  259916. .IP \(bu 2
  259917. 9a4228d906 Added unit tests for new _validate_name function and adjusted regex
  259918. .IP \(bu 2
  259919. 388815112c Ensure VM name is valid before trying to create Linode VM
  259920. .UNINDENT
  259921. .IP \(bu 2
  259922. \fBISSUE\fP \fI\%#9592\fP: (\fI\%otrempe\fP) pip module fails on Windows because of quoting (refs: \fI\%#26617\fP)
  259923. .IP \(bu 2
  259924. \fBPR\fP \fI\%#26617\fP: (\fI\%terminalmage\fP) Fix Windows failures in pip module due to raw string formatting
  259925. @ \fI2015\-08\-27 19:24:53 UTC\fP
  259926. .INDENT 2.0
  259927. .IP \(bu 2
  259928. c3a6280f8c Merge pull request \fI\%#26617\fP from terminalmage/issue9592
  259929. .IP \(bu 2
  259930. 96c3df1ed5 Don\(aqt accept non\-list input for pkgs arg
  259931. .IP \(bu 2
  259932. 419221535b Lint fix
  259933. .IP \(bu 2
  259934. ede057eebc Fix tests to reflect args being passed as lists instead of strings
  259935. .IP \(bu 2
  259936. 03250dbd9f Pass command to cmd.run_all as list instead of joining
  259937. .IP \(bu 2
  259938. 1c90cdb07e salt/modules/pip.py: Remove raw string format flags
  259939. .IP \(bu 2
  259940. cd35df5ff8 Catch TypeErrors in timed_subprocess
  259941. .UNINDENT
  259942. .IP \(bu 2
  259943. \fBPR\fP \fI\%#26700\fP: (\fI\%kev009\fP) Ignore the first element of kern.disks split, which is the sysctl name
  259944. @ \fI2015\-08\-27 17:48:02 UTC\fP
  259945. .INDENT 2.0
  259946. .IP \(bu 2
  259947. 24a4f54f39 Merge pull request \fI\%#26700\fP from kev009/fbsd\-disks\-fix\-2015.5
  259948. .IP \(bu 2
  259949. 3ac97f9de4 Ignore the first element of kern.disks split, which is the sysctl name
  259950. .UNINDENT
  259951. .IP \(bu 2
  259952. \fBPR\fP \fI\%#26695\fP: (\fI\%terminalmage\fP) Better HTTPS basic auth redaction for 2015.5 branch
  259953. @ \fI2015\-08\-27 15:10:38 UTC\fP
  259954. .INDENT 2.0
  259955. .IP \(bu 2
  259956. 58945131b5 Merge pull request \fI\%#26695\fP from terminalmage/better\-https\-auth\-redaction\-2015.5
  259957. .IP \(bu 2
  259958. 752d260209 Use versioninfo tuple for comparison
  259959. .IP \(bu 2
  259960. b1d253483e Better HTTPS basic auth redaction for 2015.5 branch
  259961. .UNINDENT
  259962. .IP \(bu 2
  259963. \fBPR\fP \fI\%#26694\fP: (\fI\%terminalmage\fP) Backport \fI\%#26693\fP to 2015.5
  259964. @ \fI2015\-08\-27 08:16:30 UTC\fP
  259965. .INDENT 2.0
  259966. .IP \(bu 2
  259967. \fBPR\fP \fI\%#26693\fP: (\fI\%serge\-p\fP) Update openbsdpkg.py (refs: \fI\%#26694\fP)
  259968. .IP \(bu 2
  259969. 4040a312f9 Merge pull request \fI\%#26694\fP from terminalmage/bp\-26693
  259970. .IP \(bu 2
  259971. 4aec926476 Update openbsdpkg.py
  259972. .UNINDENT
  259973. .IP \(bu 2
  259974. \fBPR\fP \fI\%#26681\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  259975. @ \fI2015\-08\-26 22:03:07 UTC\fP
  259976. .INDENT 2.0
  259977. .IP \(bu 2
  259978. 0b17f80fe9 Merge pull request \fI\%#26681\fP from basepi/merge\-forward\-2015.5
  259979. .IP \(bu 2
  259980. 64cad371f0 Remove overmocked test
  259981. .IP \(bu 2
  259982. 40718af1d5 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  259983. .IP \(bu 2
  259984. c2c7fe06c8 Merge pull request \fI\%#26667\fP from nmadhok/doc\-fix\-2014.7
  259985. .INDENT 2.0
  259986. .IP \(bu 2
  259987. 26be189689 Doc fix. Fixes \fI\%#26656\fP
  259988. .UNINDENT
  259989. .IP \(bu 2
  259990. 6bd3dccae8 Merge pull request \fI\%#26663\fP from jacobhammons/2014.7\-version
  259991. .INDENT 2.0
  259992. .IP \(bu 2
  259993. b6af538070 version change for latest branch
  259994. .UNINDENT
  259995. .IP \(bu 2
  259996. 071a6112e5 Merge pull request \fI\%#26636\fP from rallytime/cloud\-test\-fixes
  259997. .INDENT 2.0
  259998. .IP \(bu 2
  259999. c0d83d558d Don\(aqt use id as variable
  260000. .IP \(bu 2
  260001. 2b4bc1679d Keep ec2 instance creation test the same \- it works better for the ec2 output
  260002. .IP \(bu 2
  260003. b5b58eb31f Skip digital ocean tests since we can\(aqt use API v1 with v2 tests
  260004. .IP \(bu 2
  260005. 9ae1539c62 Update cloud tests to be more efficient and accurate
  260006. .UNINDENT
  260007. .IP \(bu 2
  260008. 304542b4c6 Merge pull request \fI\%#26640\fP from efficks/fixws2014
  260009. .INDENT 2.0
  260010. .IP \(bu 2
  260011. ebe5d9d85c Fix function spacing
  260012. .UNINDENT
  260013. .UNINDENT
  260014. .IP \(bu 2
  260015. \fBPR\fP \fI\%#26676\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26648\fP to 2015.5
  260016. @ \fI2015\-08\-26 19:46:01 UTC\fP
  260017. .INDENT 2.0
  260018. .IP \(bu 2
  260019. \fBPR\fP \fI\%#26648\fP: (\fI\%whiteinge\fP) Free \(aqfun\(aq from the function signature namespace (refs: \fI\%#26676\fP)
  260020. .IP \(bu 2
  260021. 75675a6ba9 Merge pull request \fI\%#26676\fP from rallytime/bp\-26648
  260022. .IP \(bu 2
  260023. 1af42eed36 Free \(aqfun\(aq from the function signature namespace
  260024. .UNINDENT
  260025. .IP \(bu 2
  260026. \fBPR\fP \fI\%#26677\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26653\fP to 2015.5
  260027. @ \fI2015\-08\-26 19:45:54 UTC\fP
  260028. .INDENT 2.0
  260029. .IP \(bu 2
  260030. \fBPR\fP \fI\%#26653\fP: (\fI\%dmyerscough\fP) You can provide a X\-Auth\-Token when requesting jobs (refs: \fI\%#26677\fP)
  260031. .IP \(bu 2
  260032. d7f682cb5b Merge pull request \fI\%#26677\fP from rallytime/bp\-26653
  260033. .IP \(bu 2
  260034. 497ca96039 You can provide a X\-Auth\-Token when requesting jobs
  260035. .UNINDENT
  260036. .IP \(bu 2
  260037. \fBPR\fP \fI\%#26675\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26631\fP to 2015.5
  260038. @ \fI2015\-08\-26 19:44:59 UTC\fP
  260039. .INDENT 2.0
  260040. .IP \(bu 2
  260041. \fBPR\fP \fI\%#26631\fP: (\fI\%PierreR\fP) Fix get_load in postgres returner (refs: \fI\%#26675\fP)
  260042. .IP \(bu 2
  260043. 960dbba7ed Merge pull request \fI\%#26675\fP from rallytime/bp\-26631
  260044. .IP \(bu 2
  260045. 20eecdc7be Fix get_load
  260046. .UNINDENT
  260047. .IP \(bu 2
  260048. \fBPR\fP \fI\%#26655\fP: (\fI\%damonzheng\fP) Update win_dns_client.py
  260049. @ \fI2015\-08\-26 16:05:26 UTC\fP
  260050. .INDENT 2.0
  260051. .IP \(bu 2
  260052. db30926ac9 Merge pull request \fI\%#26655\fP from cheng0919/2015.5
  260053. .IP \(bu 2
  260054. fdebc01def Update win_dns_client.py
  260055. .IP \(bu 2
  260056. 1d23d5e797 Update win_dns_client.py
  260057. .IP \(bu 2
  260058. 1a45db0fb7 Update win_dns_client.py
  260059. .UNINDENT
  260060. .IP \(bu 2
  260061. \fBPR\fP \fI\%#26662\fP: (\fI\%jacobhammons\fP) update version to 2015.5
  260062. @ \fI2015\-08\-26 13:45:44 UTC\fP
  260063. .INDENT 2.0
  260064. .IP \(bu 2
  260065. a04d243471 Merge pull request \fI\%#26662\fP from jacobhammons/version
  260066. .IP \(bu 2
  260067. 4e5766fdde update version to 2015.5
  260068. .UNINDENT
  260069. .IP \(bu 2
  260070. \fBPR\fP \fI\%#26651\fP: (\fI\%jfindlay\fP) add 2015.5.4 notes to 2015.5.5 notes
  260071. @ \fI2015\-08\-26 00:25:28 UTC\fP
  260072. .INDENT 2.0
  260073. .IP \(bu 2
  260074. 8a9a076ad4 Merge pull request \fI\%#26651\fP from jfindlay/2015.5
  260075. .IP \(bu 2
  260076. dc5cee5f8f add 2015.5.4 notes to 2015.5.5 notes
  260077. .UNINDENT
  260078. .IP \(bu 2
  260079. \fBISSUE\fP \fI\%#26497\fP: (\fI\%JensRantil\fP) Feature request: Make salt.states.managed support local file \fIsource\fP (refs: \fI\%#26525\fP)
  260080. .IP \(bu 2
  260081. \fBPR\fP \fI\%#26525\fP: (\fI\%jfindlay\fP) document check_file_meta args, remove unused arg
  260082. @ \fI2015\-08\-25 21:43:46 UTC\fP
  260083. .INDENT 2.0
  260084. .IP \(bu 2
  260085. 5bdefdc234 Merge pull request \fI\%#26525\fP from jfindlay/sum
  260086. .IP \(bu 2
  260087. 0297d49aa0 remove unused check_file_meta arg
  260088. .IP \(bu 2
  260089. 6a3cb1c0aa document args to file.check_file_meta exec fcn
  260090. .UNINDENT
  260091. .IP \(bu 2
  260092. \fBPR\fP \fI\%#26561\fP: (\fI\%stanislavb\fP) Leave salt.utils.s3 location fallback to salt.utils.aws (refs: \fI\%#27070\fP)
  260093. @ \fI2015\-08\-25 21:40:30 UTC\fP
  260094. .INDENT 2.0
  260095. .IP \(bu 2
  260096. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  260097. .IP \(bu 2
  260098. \fBPR\fP \fI\%#26378\fP: (\fI\%stanislavb\fP) Fix EC2 credentials from IAM roles for s3fs and s3 ext_pillar in 2015.5 (refs: \fI\%#26446\fP)
  260099. .IP \(bu 2
  260100. 84e96458b3 Merge pull request \fI\%#26561\fP from stanislavb/2015.5
  260101. .IP \(bu 2
  260102. 50332895a1 Leave salt.utils.s3 location fallback to salt.utils.aws
  260103. .UNINDENT
  260104. .IP \(bu 2
  260105. \fBISSUE\fP \fI\%#22550\fP: (\fI\%amendlik\fP) Error deleting SSH keys using salt\-cloud \-\-destroy (refs: \fI\%#26573\fP)
  260106. .IP \(bu 2
  260107. \fBPR\fP \fI\%#26573\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace if using private_ips and delete_sshkeys together
  260108. @ \fI2015\-08\-25 20:00:23 UTC\fP
  260109. .INDENT 2.0
  260110. .IP \(bu 2
  260111. 1d729734cc Merge pull request \fI\%#26573\fP from rallytime/destroy_ssh_keys_private_ips
  260112. .IP \(bu 2
  260113. 4267509c25 Don\(aqt stacktrace if using private_ips and delete_sshkeys
  260114. .UNINDENT
  260115. .IP \(bu 2
  260116. \fBISSUE\fP \fI\%#20169\fP: (\fI\%flavianh\fP) [salt\-cloud] Add a meaningful error when /etc/salt/cloud is missing the master\(aqs address (refs: \fI\%#26563\fP)
  260117. .IP \(bu 2
  260118. \fBPR\fP \fI\%#26563\fP: (\fI\%rallytime\fP) Fix error detection when salt\-cloud config is missing a master\(aqs address
  260119. @ \fI2015\-08\-25 20:00:11 UTC\fP
  260120. .INDENT 2.0
  260121. .IP \(bu 2
  260122. 000e5a2acf Merge pull request \fI\%#26563\fP from rallytime/fix\-20169
  260123. .IP \(bu 2
  260124. 65b285d02d Only warn if master IP is unset \- must be compatible with masterless minions
  260125. .IP \(bu 2
  260126. a4c87fcf57 Simplify logic
  260127. .IP \(bu 2
  260128. 593ead08cf Fix error detection when salt\-cloud config is missing a master\(aqs address
  260129. .UNINDENT
  260130. .IP \(bu 2
  260131. \fBPR\fP \fI\%#26641\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260132. @ \fI2015\-08\-25 18:17:46 UTC\fP
  260133. .INDENT 2.0
  260134. .IP \(bu 2
  260135. 19c7a6d575 Merge pull request \fI\%#26641\fP from basepi/merge\-forward\-2015.5
  260136. .IP \(bu 2
  260137. a5dafa436c Already fixed on 2015.5
  260138. .IP \(bu 2
  260139. 71c0898fb5 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260140. .IP \(bu 2
  260141. 4532f98a76 Merge pull request \fI\%#26515\fP from bersace/salt\-env\-local\-sls
  260142. .IP \(bu 2
  260143. 0727af9e3d Defaults to current saltenv in state.sls
  260144. .UNINDENT
  260145. .IP \(bu 2
  260146. \fBPR\fP \fI\%#26620\fP: (\fI\%rallytime\fP) Also add \-Z to script args for cloud tests
  260147. @ \fI2015\-08\-24 22:03:24 UTC\fP
  260148. .INDENT 2.0
  260149. .IP \(bu 2
  260150. 2927859c8a Merge pull request \fI\%#26620\fP from rallytime/more_script_args
  260151. .IP \(bu 2
  260152. 9ae27193d8 Also add \-Z to script args for cloud tests
  260153. .UNINDENT
  260154. .IP \(bu 2
  260155. \fBPR\fP \fI\%#26618\fP: (\fI\%rallytime\fP) Add script_args: \(aq\-P\(aq to Ubuntu 14 profiles for nightly cloud tests
  260156. @ \fI2015\-08\-24 21:15:24 UTC\fP
  260157. .INDENT 2.0
  260158. .IP \(bu 2
  260159. ed166ebd4f Merge pull request \fI\%#26618\fP from rallytime/pip\-undate\-cloud\-tests
  260160. .IP \(bu 2
  260161. 5a2c8825ba Extra lines
  260162. .IP \(bu 2
  260163. d28672b69e Add script_args: \(aq\-P\(aq to Ubuntu 14 profiles for nightly cloud tests
  260164. .UNINDENT
  260165. .IP \(bu 2
  260166. \fBPR\fP \fI\%#26612\fP: (\fI\%rallytime\fP) Use an available image to test against
  260167. @ \fI2015\-08\-24 19:09:18 UTC\fP
  260168. .INDENT 2.0
  260169. .IP \(bu 2
  260170. 6d3927bed5 Merge pull request \fI\%#26612\fP from rallytime/fix\-do\-list\-images\-test
  260171. .IP \(bu 2
  260172. 1401255287 Use an available image to test against
  260173. .UNINDENT
  260174. .IP \(bu 2
  260175. \fBISSUE\fP \fI\%#15590\fP: (\fI\%jtratner\fP) salt\-cloud gce configuration check incorrect (refs: \fI\%#26576\fP)
  260176. .IP \(bu 2
  260177. \fBPR\fP \fI\%#26576\fP: (\fI\%rallytime\fP) Ensure GCE and EC2 configuration checks are correct
  260178. @ \fI2015\-08\-23 18:59:46 UTC\fP
  260179. .INDENT 2.0
  260180. .IP \(bu 2
  260181. 991bbf63fe Merge pull request \fI\%#26576\fP from rallytime/fix\-14604
  260182. .IP \(bu 2
  260183. ac67a1d238 Ensure GCE configuration check is correct
  260184. .IP \(bu 2
  260185. 421f1fde1e Ensure EC2 configuration check is correct
  260186. .UNINDENT
  260187. .IP \(bu 2
  260188. \fBISSUE\fP \fI\%#12225\fP: (\fI\%arthurlogilab\fP) [salt\-cloud] Attribution of floating IPs works partially in parallel mode (refs: \fI\%#26580\fP)
  260189. .IP \(bu 2
  260190. \fBPR\fP \fI\%#26580\fP: (\fI\%rallytime\fP) Avoid race condition when assigning floating IPs to new VMs
  260191. @ \fI2015\-08\-23 18:58:48 UTC\fP
  260192. .INDENT 2.0
  260193. .IP \(bu 2
  260194. 746c0008a9 Merge pull request \fI\%#26580\fP from rallytime/fix\-12225
  260195. .IP \(bu 2
  260196. e3f7db17cc Avoid race condition when assigning floating IPs to new VMs
  260197. .IP \(bu 2
  260198. afda31be74 Create _assign_floating_ips function for DRY
  260199. .UNINDENT
  260200. .IP \(bu 2
  260201. \fBPR\fP \fI\%#26581\fP: (\fI\%terminalmage\fP) Skip tests that don\(aqt work with older mock
  260202. @ \fI2015\-08\-22 23:06:27 UTC\fP
  260203. .INDENT 2.0
  260204. .IP \(bu 2
  260205. 965a4ba7cf Merge pull request \fI\%#26581\fP from terminalmage/fix\-tests
  260206. .IP \(bu 2
  260207. 49d8bd1dbe Remove unused import
  260208. .IP \(bu 2
  260209. 81a0d4c915 Skip tests that don\(aqt work with older mock
  260210. .UNINDENT
  260211. .IP \(bu 2
  260212. \fBISSUE\fP \fI\%#25478\fP: (\fI\%zyio\fP) salt\-ssh \- Unable to locate current thin version (refs: \fI\%#25862\fP)
  260213. .IP \(bu 2
  260214. \fBISSUE\fP \fI\%#25026\fP: (\fI\%sylvia\-wang\fP) salt\-ssh "Failure deploying thin" when using salt module functions (refs: \fI\%#25862\fP)
  260215. .IP \(bu 2
  260216. \fBPR\fP \fI\%#26591\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26554\fP to 2015.5
  260217. @ \fI2015\-08\-22 21:19:02 UTC\fP
  260218. .INDENT 2.0
  260219. .IP \(bu 2
  260220. \fBPR\fP \fI\%#26554\fP: (\fI\%tjstansell\fP) /bin/sh is more portable than /bin/bash (refs: \fI\%#26591\fP)
  260221. .IP \(bu 2
  260222. \fBPR\fP \fI\%#25862\fP: (\fI\%zyio\fP) Adding SCP_NOT_FOUND exit code (refs: \fI\%#26554\fP)
  260223. .IP \(bu 2
  260224. 19992c1450 Merge pull request \fI\%#26591\fP from rallytime/bp\-26554
  260225. .IP \(bu 2
  260226. 6f8bed88cb /bin/sh is more portable than /bin/bash
  260227. .UNINDENT
  260228. .IP \(bu 2
  260229. \fBPR\fP \fI\%#26565\fP: (\fI\%cachedout\fP) Fix many errors with __virtual__ in tests
  260230. @ \fI2015\-08\-21 21:37:54 UTC\fP
  260231. .INDENT 2.0
  260232. .IP \(bu 2
  260233. 2cd36c7ed4 Merge pull request \fI\%#26565\fP from cachedout/fix_virtual_warnings
  260234. .IP \(bu 2
  260235. 41541e4e2b Fix many errors with __virtual__ in tests
  260236. .UNINDENT
  260237. .IP \(bu 2
  260238. \fBISSUE\fP \fI\%#19249\fP: (\fI\%ahetmanski\fP) Cannot create cache_dir salt master exception. (refs: \fI\%#26548\fP)
  260239. .IP \(bu 2
  260240. \fBPR\fP \fI\%#26553\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26548\fP to 2015.5
  260241. @ \fI2015\-08\-21 17:40:21 UTC\fP
  260242. .INDENT 2.0
  260243. .IP \(bu 2
  260244. \fBPR\fP \fI\%#26548\fP: (\fI\%vakulich\fP) Catch OSError during cache directories creation, fixes \fI\%#19249\fP (refs: \fI\%#26553\fP)
  260245. .IP \(bu 2
  260246. 5a32664efd Merge pull request \fI\%#26553\fP from rallytime/bp\-26548
  260247. .IP \(bu 2
  260248. ec2b2c3e40 Catch OSError during cache directories creation, fixes \fI\%#19249\fP
  260249. .UNINDENT
  260250. .IP \(bu 2
  260251. \fBPR\fP \fI\%#26552\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26542\fP to 2015.5
  260252. @ \fI2015\-08\-21 17:40:11 UTC\fP
  260253. .INDENT 2.0
  260254. .IP \(bu 2
  260255. \fBPR\fP \fI\%#26542\fP: (\fI\%arthurlogilab\fP) [doc] reactor documentation fix : returners (refs: \fI\%#26552\fP)
  260256. .IP \(bu 2
  260257. 7e67e48656 Merge pull request \fI\%#26552\fP from rallytime/bp\-26542
  260258. .IP \(bu 2
  260259. 0976b1e23b [doc] reactor documentation fix : returners
  260260. .UNINDENT
  260261. .IP \(bu 2
  260262. \fBPR\fP \fI\%#26551\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26539\fP to 2015.5
  260263. @ \fI2015\-08\-21 17:39:22 UTC\fP
  260264. .INDENT 2.0
  260265. .IP \(bu 2
  260266. \fBPR\fP \fI\%#26539\fP: (\fI\%carlpett\fP) Doc\-fix: Escape backslash in domain\e\eusername (refs: \fI\%#26551\fP)
  260267. .IP \(bu 2
  260268. bcd462545d Merge pull request \fI\%#26551\fP from rallytime/bp\-26539
  260269. .IP \(bu 2
  260270. 94ff4cff40 Doc\-fix: Escape backslash in domainusername
  260271. .UNINDENT
  260272. .IP \(bu 2
  260273. \fBPR\fP \fI\%#26549\fP: (\fI\%rallytime\fP) Back\-port \fI\%#26524\fP to 2015.5
  260274. @ \fI2015\-08\-21 17:38:50 UTC\fP
  260275. .INDENT 2.0
  260276. .IP \(bu 2
  260277. \fBPR\fP \fI\%#26524\fP: (\fI\%JensRantil\fP) Gracefully handle package comparison not in (\-1, 0, 1) (refs: \fI\%#26549\fP)
  260278. .IP \(bu 2
  260279. \fBPR\fP \fI\%#25369\fP: (\fI\%anlutro\fP) Fix aptpkg.version_cmp (refs: \fI\%#26524\fP)
  260280. .IP \(bu 2
  260281. 4dbf61c5af Merge pull request \fI\%#26549\fP from rallytime/bp\-26524
  260282. .IP \(bu 2
  260283. 4763f28725 logging(cmp_version): output assertion
  260284. .IP \(bu 2
  260285. 673b6c683d utils(version_cmp): handle comparison not in (0,1,\-1)
  260286. .UNINDENT
  260287. .IP \(bu 2
  260288. \fBISSUE\fP \fI\%#26502\fP: (\fI\%ryan\-lane\fP) Adding a listener with None as ports doesn\(aqt result in an invocation error in boto_elb (refs: \fI\%#26527\fP)
  260289. .IP \(bu 2
  260290. \fBPR\fP \fI\%#26527\fP: (\fI\%jfindlay\fP) check exists and values in boto_elb listeners
  260291. @ \fI2015\-08\-21 15:27:52 UTC\fP
  260292. .INDENT 2.0
  260293. .IP \(bu 2
  260294. 1ac8287588 Merge pull request \fI\%#26527\fP from jfindlay/elb
  260295. .IP \(bu 2
  260296. 343e47f00c check exists and values in boto_elb listeners
  260297. .UNINDENT
  260298. .IP \(bu 2
  260299. \fBPR\fP \fI\%#26446\fP: (\fI\%stanislavb\fP) Fetch AWS region from EC2 instance metadata (refs: \fI\%#26561\fP)
  260300. @ \fI2015\-08\-21 15:11:08 UTC\fP
  260301. .INDENT 2.0
  260302. .IP \(bu 2
  260303. \fBPR\fP \fI\%#26378\fP: (\fI\%stanislavb\fP) Fix EC2 credentials from IAM roles for s3fs and s3 ext_pillar in 2015.5 (refs: \fI\%#26446\fP)
  260304. .IP \(bu 2
  260305. e4b2534aa8 Merge pull request \fI\%#26446\fP from stanislavb/2015.5\-ec2\-metadata\-region
  260306. .IP \(bu 2
  260307. 57943ff4f7 Fetch AWS region from EC2 instance metadata
  260308. .UNINDENT
  260309. .IP \(bu 2
  260310. \fBPR\fP \fI\%#26546\fP: (\fI\%nmadhok\fP) Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  260311. @ \fI2015\-08\-21 14:17:49 UTC\fP
  260312. .INDENT 2.0
  260313. .IP \(bu 2
  260314. d721b7b2be Merge pull request \fI\%#26546\fP from nmadhok/vmware\-key\-error\-patch\-2015.5
  260315. .IP \(bu 2
  260316. 1dcf157256 Do not raise KeyError when calling avail_images if VM/template is in disconnected state
  260317. .UNINDENT
  260318. .IP \(bu 2
  260319. \fBISSUE\fP \fI\%#25360\fP: (\fI\%BretFisher\fP) file.replace removes line feed if using YAML\(aqs multiline string syntax (refs: \fI\%#26481\fP)
  260320. .IP \(bu 2
  260321. \fBPR\fP \fI\%#26537\fP: (\fI\%jfindlay\fP) Merge \fI\%#26481\fP
  260322. @ \fI2015\-08\-21 05:37:24 UTC\fP
  260323. .INDENT 2.0
  260324. .IP \(bu 2
  260325. \fBPR\fP \fI\%#26481\fP: (\fI\%TheBigBear\fP) minor note: added (refs: \fI\%#26537\fP)
  260326. .IP \(bu 2
  260327. 7da87fabf1 Merge pull request \fI\%#26537\fP from jfindlay/note
  260328. .IP \(bu 2
  260329. 662e723ae0 fixup note lint in file.replace state mod
  260330. .IP \(bu 2
  260331. 332535f2e6 Update file.py
  260332. .IP \(bu 2
  260333. 598500034f Update file.py
  260334. .IP \(bu 2
  260335. ec7c7d738d minor note: added
  260336. .UNINDENT
  260337. .IP \(bu 2
  260338. \fBPR\fP \fI\%#26528\fP: (\fI\%zmalone\fP) Fixing encrypt to instructions in the 2015.5 branch
  260339. @ \fI2015\-08\-20 21:49:06 UTC\fP
  260340. .INDENT 2.0
  260341. .IP \(bu 2
  260342. c6d8e34730 Merge pull request \fI\%#26528\fP from zmalone/2015.5
  260343. .IP \(bu 2
  260344. 39b111c465 Fixing encrypt to instructions in the 2015.5 branch, \-\-homedir is not necessary here.
  260345. .UNINDENT
  260346. .UNINDENT
  260347. .SS Salt 2015.5.7 Release Notes
  260348. .INDENT 0.0
  260349. .TP
  260350. .B release
  260351. 2015\-10\-13
  260352. .UNINDENT
  260353. .sp
  260354. Version 2015.5.7 is a bugfix release for 2015.5.0\&.
  260355. .SS Statistics
  260356. .INDENT 0.0
  260357. .IP \(bu 2
  260358. Total Merges: \fB103\fP
  260359. .IP \(bu 2
  260360. Total Issue References: \fB66\fP
  260361. .IP \(bu 2
  260362. Total PR References: \fB135\fP
  260363. .IP \(bu 2
  260364. Contributors: \fB46\fP (\fI\%0xf10e\fP, \fI\%JaseFace\fP, \fI\%MasterNayru\fP, \fI\%MrCitron\fP, \fI\%Sacro\fP, \fI\%ajacoutot\fP, \fI\%arthurlogilab\fP, \fI\%basepi\fP, \fI\%belvedere\-trading\fP, \fI\%beverlcl\fP, \fI\%blast\-hardcheese\fP, \fI\%blueyed\fP, \fI\%bogdanr\fP, \fI\%cachedout\fP, \fI\%cbuechler\fP, \fI\%chrigl\fP, \fI\%dmyerscough\fP, \fI\%eguven\fP, \fI\%eliasp\fP, \fI\%erchn\fP, \fI\%eyj\fP, \fI\%garethgreenaway\fP, \fI\%gashev\fP, \fI\%gnubyexample\fP, \fI\%gracinet\fP, \fI\%gravyboat\fP, \fI\%gwaters\fP, \fI\%hedinfaok\fP, \fI\%iggy\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%lorengordon\fP, \fI\%mbologna\fP, \fI\%msciciel\fP, \fI\%nmadhok\fP, \fI\%pass\-by\-value\fP, \fI\%plastikos\fP, \fI\%rallytime\fP, \fI\%rominf\fP, \fI\%s0undt3ch\fP, \fI\%silenius\fP, \fI\%sjmh\fP, \fI\%stephen144\fP, \fI\%terminalmage\fP, \fI\%twangboy\fP)
  260365. .UNINDENT
  260366. .sp
  260367. \fBIMPORTANT:\fP
  260368. .INDENT 0.0
  260369. .INDENT 3.5
  260370. A significant orchestrate issue (\fI\%issue ##29110\fP) was discovered during the
  260371. release process of 2015.5.7, so it has not been officially released.
  260372. Please use 2015.5.8 instead.
  260373. .UNINDENT
  260374. .UNINDENT
  260375. .SS Changelog for v2015.5.6..v2015.5.7
  260376. .sp
  260377. \fIGenerated at: 2018\-05\-27 22:16:54 UTC\fP
  260378. .INDENT 0.0
  260379. .IP \(bu 2
  260380. \fBPR\fP \fI\%#28864\fP: (\fI\%jfindlay\fP) add 2015.5.7 release notes
  260381. @ \fI2015\-11\-13 17:15:00 UTC\fP
  260382. .INDENT 2.0
  260383. .IP \(bu 2
  260384. ec7fdc539b Merge pull request \fI\%#28864\fP from jfindlay/2015.5
  260385. .IP \(bu 2
  260386. 648b697951 add 2015.5.7 release notes
  260387. .UNINDENT
  260388. .IP \(bu 2
  260389. \fBISSUE\fP \fI\%#27392\fP: (\fI\%ahammond\fP) schedule running state.orchestrate fails (refs: \fI\%#28731\fP)
  260390. .IP \(bu 2
  260391. \fBPR\fP \fI\%#28731\fP: (\fI\%garethgreenaway\fP) Fixes to salt scheduler in 2015.5, ensuring that return_job is only used on minion scheduler
  260392. @ \fI2015\-11\-13 16:58:06 UTC\fP
  260393. .INDENT 2.0
  260394. .IP \(bu 2
  260395. bed45f4208 Merge pull request \fI\%#28731\fP from garethgreenaway/27392_2015_5_scheduler_return_job_master
  260396. .IP \(bu 2
  260397. 771e9f7b6f Fixing the salt scheduler so that it only attempts to return the job data to the master if the scheduled job is running from a minion\(aqs scheduler.
  260398. .UNINDENT
  260399. .IP \(bu 2
  260400. \fBPR\fP \fI\%#28857\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28851\fP to 2015.5
  260401. @ \fI2015\-11\-13 13:56:53 UTC\fP
  260402. .INDENT 2.0
  260403. .IP \(bu 2
  260404. \fBPR\fP \fI\%#28851\fP: (\fI\%rominf\fP) [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs (refs: \fI\%#28857\fP)
  260405. .IP \(bu 2
  260406. 06f4932876 Merge pull request \fI\%#28857\fP from rallytime/bp\-28851
  260407. .IP \(bu 2
  260408. aa4b193f87 [states/schedule] docstring: args, kwargs \-> job_args, job_kwargs
  260409. .UNINDENT
  260410. .IP \(bu 2
  260411. \fBPR\fP \fI\%#28856\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28853\fP to 2015.5
  260412. @ \fI2015\-11\-13 13:46:10 UTC\fP
  260413. .INDENT 2.0
  260414. .IP \(bu 2
  260415. \fBPR\fP \fI\%#28853\fP: (\fI\%eliasp\fP) Typo (with → which) (refs: \fI\%#28856\fP)
  260416. .IP \(bu 2
  260417. 0934a52b34 Merge pull request \fI\%#28856\fP from rallytime/bp\-28853
  260418. .IP \(bu 2
  260419. 37eeab2683 Typo (with → which)
  260420. .UNINDENT
  260421. .IP \(bu 2
  260422. \fBISSUE\fP \fI\%#28828\fP: (\fI\%basepi\fP) salt\-ssh doesn\(aqt package tornado\(aqs new deps in the thin (refs: \fI\%#28826\fP)
  260423. .IP \(bu 2
  260424. \fBPR\fP \fI\%#28832\fP: (\fI\%basepi\fP) [2015.5] Backport \fI\%#28826\fP
  260425. @ \fI2015\-11\-12 19:32:03 UTC\fP
  260426. .INDENT 2.0
  260427. .IP \(bu 2
  260428. \fBPR\fP \fI\%#28826\fP: (\fI\%basepi\fP) [2015.8] Add new tornado deps to salt\-ssh thin (refs: \fI\%#28832\fP)
  260429. .IP \(bu 2
  260430. eb904665dc Merge pull request \fI\%#28832\fP from basepi/backport.28826
  260431. .IP \(bu 2
  260432. 57be72eb91 Add backports_abc and singledispatch_helpers to thin as well
  260433. .IP \(bu 2
  260434. 897cad627b Add singledispatch to the thin
  260435. .UNINDENT
  260436. .IP \(bu 2
  260437. \fBISSUE\fP \fI\%#8647\fP: (\fI\%Mrten\fP) salt \(aq*\(aq highstate returns \(aqminion did not return\(aq, salt [minion] highstate works (refs: \fI\%#28833\fP)
  260438. .IP \(bu 2
  260439. \fBPR\fP \fI\%#28833\fP: (\fI\%basepi\fP) [2015.5] Increase the default gather_job_timeout
  260440. @ \fI2015\-11\-12 19:31:58 UTC\fP
  260441. .INDENT 2.0
  260442. .IP \(bu 2
  260443. eff811a0ad Merge pull request \fI\%#28833\fP from basepi/increase.gather_job_timeout.8647
  260444. .IP \(bu 2
  260445. c09243dd01 Increase the default gather_job_timeout
  260446. .UNINDENT
  260447. .IP \(bu 2
  260448. \fBPR\fP \fI\%#28829\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260449. @ \fI2015\-11\-12 18:50:51 UTC\fP
  260450. .INDENT 2.0
  260451. .IP \(bu 2
  260452. e4a036365d Merge pull request \fI\%#28829\fP from basepi/merge\-forward\-2015.5
  260453. .IP \(bu 2
  260454. f8b8441485 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260455. .IP \(bu 2
  260456. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  260457. .INDENT 2.0
  260458. .IP \(bu 2
  260459. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  260460. .UNINDENT
  260461. .IP \(bu 2
  260462. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  260463. .INDENT 2.0
  260464. .IP \(bu 2
  260465. 32e7bd3ea0 Account for new headers class in tornado 4.3
  260466. .UNINDENT
  260467. .IP \(bu 2
  260468. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  260469. .INDENT 2.0
  260470. .IP \(bu 2
  260471. 1874300e08 Add note about recommended umask
  260472. .UNINDENT
  260473. .UNINDENT
  260474. .IP \(bu 2
  260475. \fBISSUE\fP \fI\%#25775\fP: (\fI\%trimbleagvendoraccounta\fP) blockdev.formatted formats but fails. Second highstate shows success. (refs: \fI\%#28756\fP)
  260476. .IP \(bu 2
  260477. \fBISSUE\fP \fI\%#20235\fP: (\fI\%joejulian\fP) blockdev.format state can fail even if it succeeds (refs: \fI\%#28756\fP)
  260478. .IP \(bu 2
  260479. \fBPR\fP \fI\%#28756\fP: (\fI\%MrCitron\fP) Fix \fI\%#25775\fP
  260480. @ \fI2015\-11\-12 17:47:51 UTC\fP
  260481. .INDENT 2.0
  260482. .IP \(bu 2
  260483. 93562631aa Merge pull request \fI\%#28756\fP from MrCitron/fix\-25775
  260484. .IP \(bu 2
  260485. 82075c809c Add logs and correct pylint error
  260486. .IP \(bu 2
  260487. e31e22d96a Fix 25775
  260488. .UNINDENT
  260489. .IP \(bu 2
  260490. \fBISSUE\fP \fI\%#28783\fP: (\fI\%chrigl\fP) iptables.get_saved_rules does not handle family=ipv6 (refs: \fI\%#28786\fP)
  260491. .IP \(bu 2
  260492. \fBPR\fP \fI\%#28786\fP: (\fI\%chrigl\fP) closes \fI\%#28783\fP
  260493. @ \fI2015\-11\-11 21:01:19 UTC\fP
  260494. .INDENT 2.0
  260495. .IP \(bu 2
  260496. 30cc48e37f Merge pull request \fI\%#28786\fP from chrigl/fix\-28783
  260497. .IP \(bu 2
  260498. ba6d814553 closes \fI\%#28783\fP
  260499. .UNINDENT
  260500. .IP \(bu 2
  260501. \fBPR\fP \fI\%#28776\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2015.5
  260502. @ \fI2015\-11\-11 18:02:03 UTC\fP
  260503. .INDENT 2.0
  260504. .IP \(bu 2
  260505. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28776\fP, \fI\%#28777\fP)
  260506. .IP \(bu 2
  260507. 8f1d0b636e Merge pull request \fI\%#28776\fP from rallytime/bp\-28740\-2015.5
  260508. .IP \(bu 2
  260509. 49256b7d90 Back\-port \fI\%#28740\fP to 2015.5
  260510. .UNINDENT
  260511. .IP \(bu 2
  260512. \fBISSUE\fP \fI\%#28732\fP: (\fI\%dmyerscough\fP) cherrypy API endpoint (refs: \fI\%#28760\fP)
  260513. .IP \(bu 2
  260514. \fBISSUE\fP \fI\%#22452\fP: (\fI\%whiteinge\fP) rest_cherrypy /keys URL returns empty keys for minion IDs that already exist (refs: \fI\%#28760\fP)
  260515. .IP \(bu 2
  260516. \fBISSUE\fP \fI\%#22451\fP: (\fI\%whiteinge\fP) rest_cherrypy /keys URL throws a 500 on the first request (refs: \fI\%#28760\fP)
  260517. .IP \(bu 2
  260518. \fBISSUE\fP \fI\%#22442\fP: (\fI\%allanliu\fP) rest_cherrypy /keys URL does not handle JSON requests (refs: \fI\%#28760\fP)
  260519. .IP \(bu 2
  260520. \fBPR\fP \fI\%#28760\fP: (\fI\%dmyerscough\fP) Fixing CherryPy key bug
  260521. @ \fI2015\-11\-11 15:11:18 UTC\fP
  260522. .INDENT 2.0
  260523. .IP \(bu 2
  260524. 77d4b980f1 Merge pull request \fI\%#28760\fP from dmyerscough/28732\-Fix\-cherrypi\-api\-keys\-endpoint
  260525. .IP \(bu 2
  260526. 206d1684b2 Fixing CherryPy key bug
  260527. .UNINDENT
  260528. .IP \(bu 2
  260529. \fBISSUE\fP \fI\%#28714\fP: (\fI\%gravyboat\fP) Salt\-api doesn\(aqt work with post unless data is included. (refs: \fI\%#28718\fP)
  260530. .IP \(bu 2
  260531. \fBPR\fP \fI\%#28746\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28718\fP to 2015.5
  260532. @ \fI2015\-11\-10 18:16:40 UTC\fP
  260533. .INDENT 2.0
  260534. .IP \(bu 2
  260535. \fBPR\fP \fI\%#28718\fP: (\fI\%sjmh\fP) Account for no POST data (refs: \fI\%#28746\fP)
  260536. .IP \(bu 2
  260537. 6f8f04975f Merge pull request \fI\%#28746\fP from rallytime/bp\-28718
  260538. .IP \(bu 2
  260539. 092f441cad Account for no POST data
  260540. .UNINDENT
  260541. .IP \(bu 2
  260542. \fBPR\fP \fI\%#28705\fP: (\fI\%cachedout\fP) Account for new headers class in tornado 4.3 (refs: \fI\%#28716\fP)
  260543. @ \fI2015\-11\-09 19:24:34 UTC\fP
  260544. .INDENT 2.0
  260545. .IP \(bu 2
  260546. f40c617bad Merge pull request \fI\%#28705\fP from cachedout/tornado_http_headers
  260547. .IP \(bu 2
  260548. 7ac6cde1ee Account for new headers class in tornado 4.3
  260549. .UNINDENT
  260550. .IP \(bu 2
  260551. \fBPR\fP \fI\%#28699\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28670\fP to 2015.5
  260552. @ \fI2015\-11\-09 18:10:58 UTC\fP
  260553. .INDENT 2.0
  260554. .IP \(bu 2
  260555. \fBPR\fP \fI\%#28670\fP: (\fI\%plastikos\fP) psutil can fail to look\-up a uid and raise a KeyError (refs: \fI\%#28699\fP)
  260556. .IP \(bu 2
  260557. 604a7b4199 Merge pull request \fI\%#28699\fP from rallytime/bp\-28670
  260558. .IP \(bu 2
  260559. e436b23296 psutil can fail to look\-up a uid and raise a KeyError
  260560. .UNINDENT
  260561. .IP \(bu 2
  260562. \fBPR\fP \fI\%#28703\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28690\fP to 2015.5
  260563. @ \fI2015\-11\-09 18:01:57 UTC\fP
  260564. .INDENT 2.0
  260565. .IP \(bu 2
  260566. \fBPR\fP \fI\%#28690\fP: (\fI\%MrCitron\fP) Fix 28689 : Check s3 ext pillar cache file before calculating expiration (refs: \fI\%#28703\fP)
  260567. .IP \(bu 2
  260568. 7bd3eb8370 Merge pull request \fI\%#28703\fP from rallytime/bp\-28690
  260569. .IP \(bu 2
  260570. a0988dab58 Fix 28689 : Check s3 ext pillar cache file before calculating expiration
  260571. .IP \(bu 2
  260572. \fBPR\fP \fI\%saltstack/salt\-bootstrap#868\fP: (\fI\%cachedout\fP) Always refresh the Arch Linux keyring if needed (refs: \fI\%#28694\fP)
  260573. .UNINDENT
  260574. .IP \(bu 2
  260575. \fBPR\fP \fI\%#28694\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap script v2015.11.09
  260576. @ \fI2015\-11\-09 17:49:53 UTC\fP
  260577. .INDENT 2.0
  260578. .IP \(bu 2
  260579. 2a40f57b93 Merge pull request \fI\%#28694\fP from s0undt3ch/2015.5
  260580. .IP \(bu 2
  260581. 0910c6ffe4 Update to latest bootstrap script v2015.11.09
  260582. .UNINDENT
  260583. .IP \(bu 2
  260584. \fBISSUE\fP \fI\%#26592\fP: (\fI\%centromere\fP) rabbitmq.list_vhosts removes final line from rabbitmqctl output (refs: \fI\%#28669\fP)
  260585. .IP \(bu 2
  260586. \fBPR\fP \fI\%#28669\fP: (\fI\%rallytime\fP) Use the \-q argument to strip extraneous messages from rabbitmq
  260587. @ \fI2015\-11\-08 01:07:25 UTC\fP
  260588. .INDENT 2.0
  260589. .IP \(bu 2
  260590. 3249b322e8 Merge pull request \fI\%#28669\fP from rallytime/fix\-26592
  260591. .IP \(bu 2
  260592. 098fb815af Use the \-q argument to strip extraneous messages from rabbitmq
  260593. .UNINDENT
  260594. .IP \(bu 2
  260595. \fBISSUE\fP \fI\%#28577\fP: (\fI\%jacksontj\fP) Increase in master CPU usage after upgrading to 2015.8 (refs: \fI\%#28645\fP)
  260596. .IP \(bu 2
  260597. \fBPR\fP \fI\%#28645\fP: (\fI\%jacksontj\fP) Rework minion return_retry_timer
  260598. @ \fI2015\-11\-07 03:40:28 UTC\fP
  260599. .INDENT 2.0
  260600. .IP \(bu 2
  260601. \fBPR\fP \fI\%#27286\fP: (\fI\%terminalmage\fP) Add a configurable timer for minion return retries (refs: \fI\%#28645\fP)
  260602. .IP \(bu 2
  260603. 29e8250d0c Merge pull request \fI\%#28645\fP from jacksontj/2015.5
  260604. .IP \(bu 2
  260605. f63c2d70a7 Rework minion return_retry_timer
  260606. .UNINDENT
  260607. .IP \(bu 2
  260608. \fBISSUE\fP \fI\%#15177\fP: (\fI\%baskinomics\fP) system.join_domain() does not join domain on Windows Server 2012 R2 (refs: \fI\%#28668\fP)
  260609. .IP \(bu 2
  260610. \fBPR\fP \fI\%#28668\fP: (\fI\%twangboy\fP) Fixed join_domain and unjoin_domain for Windows
  260611. @ \fI2015\-11\-07 03:40:04 UTC\fP
  260612. .INDENT 2.0
  260613. .IP \(bu 2
  260614. 1bbaea8aad Merge pull request \fI\%#28668\fP from twangboy/fix_15177
  260615. .IP \(bu 2
  260616. 745b8f75f6 Fixed some lint
  260617. .IP \(bu 2
  260618. a43eb53f28 Added version added notes in docs
  260619. .IP \(bu 2
  260620. 6b537c8640 Fixed join_domain and unjoin_domain for Windows
  260621. .UNINDENT
  260622. .IP \(bu 2
  260623. \fBISSUE\fP \fI\%#8051\fP: (\fI\%regilero\fP) Problems with fileinput.input inplace editing in salt.states.file.replace (refs: \fI\%#28174\fP)
  260624. .IP \(bu 2
  260625. \fBISSUE\fP \fI\%#7999\fP: (\fI\%regilero\fP) MULTILINE pattern cannot work in file.replace, fileinput always reads line by line. (refs: \fI\%#28174\fP)
  260626. .IP \(bu 2
  260627. \fBPR\fP \fI\%#28666\fP: (\fI\%jfindlay\fP) define r_data before using it in file module
  260628. @ \fI2015\-11\-07 00:46:27 UTC\fP
  260629. .INDENT 2.0
  260630. .IP \(bu 2
  260631. \fBPR\fP \fI\%#28174\fP: (\fI\%lorengordon\fP) Add support for multiline regex in file.replace (refs: \fI\%#28666\fP)
  260632. .IP \(bu 2
  260633. 4ad5056066 Merge pull request \fI\%#28666\fP from jfindlay/r_data
  260634. .IP \(bu 2
  260635. 29228f445f define r_data before using it in file module
  260636. .UNINDENT
  260637. .IP \(bu 2
  260638. \fBISSUE\fP \fI\%#24758\fP: (\fI\%zerthimon\fP) salt\-minion uses 100% CPU for periodic status.master task on a server with a lot of TCP connections (a LB). (refs: \fI\%#28662\fP)
  260639. .IP \(bu 2
  260640. \fBPR\fP \fI\%#28662\fP: (\fI\%cachedout\fP) Add note about disabling master_alive_interval
  260641. @ \fI2015\-11\-07 00:38:12 UTC\fP
  260642. .INDENT 2.0
  260643. .IP \(bu 2
  260644. e129e889ad Merge pull request \fI\%#28662\fP from cachedout/issue_24758
  260645. .IP \(bu 2
  260646. 78f4894333 Add note about disabling master_alive_interval
  260647. .UNINDENT
  260648. .IP \(bu 2
  260649. \fBPR\fP \fI\%#28627\fP: (\fI\%twangboy\fP) Backport win_useradd
  260650. @ \fI2015\-11\-06 16:57:49 UTC\fP
  260651. .INDENT 2.0
  260652. .IP \(bu 2
  260653. df121d0cec Merge pull request \fI\%#28627\fP from twangboy/backport_win_useradd
  260654. .IP \(bu 2
  260655. 87282b6354 Backport win_useradd
  260656. .UNINDENT
  260657. .IP \(bu 2
  260658. \fBISSUE\fP \fI\%#28398\fP: (\fI\%L4rS6\fP) Permissions /var/cache/salt/minion/extmods (refs: \fI\%#28617\fP)
  260659. .IP \(bu 2
  260660. \fBPR\fP \fI\%#28617\fP: (\fI\%cachedout\fP) Set restrictive umask on module sync
  260661. @ \fI2015\-11\-05 23:43:28 UTC\fP
  260662. .INDENT 2.0
  260663. .IP \(bu 2
  260664. 64a20228c6 Merge pull request \fI\%#28617\fP from cachedout/umask_module_sync
  260665. .IP \(bu 2
  260666. 227792e158 Set restrictive umask on module sync
  260667. .UNINDENT
  260668. .IP \(bu 2
  260669. \fBISSUE\fP \fI\%#28621\fP: (\fI\%gravyboat\fP) Puppet module documentation should be less insulting (refs: \fI\%#28622\fP)
  260670. .IP \(bu 2
  260671. \fBPR\fP \fI\%#28622\fP: (\fI\%gravyboat\fP) Update puppet module wording
  260672. @ \fI2015\-11\-05 20:34:07 UTC\fP
  260673. .INDENT 2.0
  260674. .IP \(bu 2
  260675. 065f8c7fb3 Merge pull request \fI\%#28622\fP from gravyboat/update_puppet_module_docs
  260676. .IP \(bu 2
  260677. 4ea28bed30 Update puppet module wording
  260678. .UNINDENT
  260679. .IP \(bu 2
  260680. \fBISSUE\fP \fI\%#655\fP: (\fI\%thatch45\fP) Add general command management to service (refs: #\(gasaltstack/salt\-bootstrap#656\(ga_)
  260681. .INDENT 2.0
  260682. .IP \(bu 2
  260683. \fBPR\fP \fI\%saltstack/salt\-bootstrap#674\fP: (\fI\%jfindlay\fP) add support for repo.saltstack.com (refs: \fI\%#28563\fP)
  260684. .IP \(bu 2
  260685. \fBPR\fP \fI\%saltstack/salt\-bootstrap#665\fP: (\fI\%mbologna\fP) Change to \(aqdnf\(aq as package manager for Fedora 22\-> (refs: \fI\%#28563\fP)
  260686. .IP \(bu 2
  260687. \fBPR\fP \fI\%saltstack/salt\-bootstrap#656\fP: (\fI\%eyj\fP) Add bootstrap \-b flag (don\(aqt install dependencies) (refs: \fI\%#28563\fP)
  260688. .IP \(bu 2
  260689. \fBPR\fP \fI\%saltstack/salt\-bootstrap#654\fP: (\fI\%hedinfaok\fP) Fixes error finding python\-jinja2 in RHEL 7 (refs: \fI\%#28563\fP)
  260690. .IP \(bu 2
  260691. \fBPR\fP \fI\%saltstack/salt\-bootstrap#653\fP: (\fI\%cbuechler\fP) Make bootstrap work with FreeBSD 11\-CURRENT. (refs: \fI\%#28563\fP)
  260692. .UNINDENT
  260693. .IP \(bu 2
  260694. \fBPR\fP \fI\%#28563\fP: (\fI\%s0undt3ch\fP) [2015.5] Update to latest bootstrap script v2015.11.04
  260695. @ \fI2015\-11\-04 15:16:31 UTC\fP
  260696. .INDENT 2.0
  260697. .IP \(bu 2
  260698. 08295de5a5 Merge pull request \fI\%#28563\fP from s0undt3ch/2015.5
  260699. .IP \(bu 2
  260700. 16f4db79a0 Update to latest bootstrap script v2015.11.04
  260701. .UNINDENT
  260702. .IP \(bu 2
  260703. \fBISSUE\fP \fI\%#28173\fP: (\fI\%twangboy\fP) system.computer_name does not work in windows (refs: \fI\%#28541\fP)
  260704. .IP \(bu 2
  260705. \fBPR\fP \fI\%#28541\fP: (\fI\%twangboy\fP) Fixed problem with system.set_computer_name
  260706. @ \fI2015\-11\-04 14:48:54 UTC\fP
  260707. .INDENT 2.0
  260708. .IP \(bu 2
  260709. 1e09f186ce Merge pull request \fI\%#28541\fP from twangboy/fix_28173
  260710. .IP \(bu 2
  260711. 7edf5ce370 Fixed problem with system.set_computer_name
  260712. .UNINDENT
  260713. .IP \(bu 2
  260714. \fBISSUE\fP \fI\%#28524\fP: (\fI\%bmcorser\fP) UnicodeDecodeError in states.file (refs: \fI\%#28538\fP, \fI\%#28537\fP)
  260715. .INDENT 2.0
  260716. .IP \(bu 2
  260717. \fBPR\fP \fI\%#28538\fP: (\fI\%jfindlay\fP) decode path and url to utf\-8 in url.create (refs: \fI\%#28537\fP)
  260718. .UNINDENT
  260719. .IP \(bu 2
  260720. \fBPR\fP \fI\%#28537\fP: (\fI\%jfindlay\fP) decode filename to utf\-8 in file.recurse state
  260721. @ \fI2015\-11\-04 14:48:18 UTC\fP
  260722. .INDENT 2.0
  260723. .IP \(bu 2
  260724. f44ed780b5 Merge pull request \fI\%#28537\fP from jfindlay/decode_state_2015.5
  260725. .IP \(bu 2
  260726. 06e514940c decode filename to utf\-8 in file.recurse state
  260727. .UNINDENT
  260728. .IP \(bu 2
  260729. \fBISSUE\fP \fI\%#28272\fP: (\fI\%gravyboat\fP) Update documentation contributing docs to explain how to PR against different releases (refs: \fI\%#28529\fP)
  260730. .IP \(bu 2
  260731. \fBPR\fP \fI\%#28529\fP: (\fI\%rallytime\fP) Update contributing and documentation pages to recommend submitting against branches
  260732. @ \fI2015\-11\-04 14:47:21 UTC\fP
  260733. .INDENT 2.0
  260734. .IP \(bu 2
  260735. 6acf87593f Merge pull request \fI\%#28529\fP from rallytime/fix\-28272
  260736. .IP \(bu 2
  260737. a959681858 Add link to Sending a GH PR to documentation docs
  260738. .IP \(bu 2
  260739. 1c612e2772 Update contributing and documentation pages to recommend submitting against branches
  260740. .UNINDENT
  260741. .IP \(bu 2
  260742. \fBISSUE\fP \fI\%#28511\fP: (\fI\%nghgd\fP) vmware clone task fails instead of waiting to completion (refs: \fI\%#28546\fP)
  260743. .IP \(bu 2
  260744. \fBPR\fP \fI\%#28548\fP: (\fI\%nmadhok\fP) [Backport] [2015.5] Tasks can be in queued state instead of running
  260745. @ \fI2015\-11\-04 04:14:25 UTC\fP
  260746. .INDENT 2.0
  260747. .IP \(bu 2
  260748. \fBPR\fP \fI\%#28546\fP: (\fI\%nmadhok\fP) Tasks can be in queued state instead of running. (refs: \fI\%#28548\fP)
  260749. .IP \(bu 2
  260750. 025bff2bf0 Merge pull request \fI\%#28548\fP from nmadhok/2015.5\-task\-error
  260751. .IP \(bu 2
  260752. 804a0a6537 Tasks can be in queued state instead of running. Fixes \fI\%#28511\fP
  260753. .UNINDENT
  260754. .IP \(bu 2
  260755. \fBISSUE\fP \fI\%#24585\fP: (\fI\%utahcon\fP) No version data for SALT.STATES.VIRTUALENV in wiki (refs: \fI\%#28531\fP)
  260756. .IP \(bu 2
  260757. \fBPR\fP \fI\%#28531\fP: (\fI\%rallytime\fP) Add versionadded directives to virtualenv_mod state/module
  260758. @ \fI2015\-11\-03 21:34:49 UTC\fP
  260759. .INDENT 2.0
  260760. .IP \(bu 2
  260761. 63bd3e52b3 Merge pull request \fI\%#28531\fP from rallytime/fix\-24585
  260762. .IP \(bu 2
  260763. bc577b2531 Add versionadded directives to virtualenv_mod state/module
  260764. .UNINDENT
  260765. .IP \(bu 2
  260766. \fBPR\fP \fI\%#28508\fP: (\fI\%twangboy\fP) Fixed windows tests
  260767. @ \fI2015\-11\-03 19:31:12 UTC\fP
  260768. .INDENT 2.0
  260769. .IP \(bu 2
  260770. ea3bf972c4 Merge pull request \fI\%#28508\fP from twangboy/fix_unit_tests_windows
  260771. .IP \(bu 2
  260772. 0da6ff7c50 Fixed some logic
  260773. .IP \(bu 2
  260774. cf1e059be5 Fixed windows tests
  260775. .UNINDENT
  260776. .IP \(bu 2
  260777. \fBPR\fP \fI\%#28525\fP: (\fI\%rallytime\fP) Fix spacing in doc examples for boto_route53 state and module
  260778. @ \fI2015\-11\-03 19:30:24 UTC\fP
  260779. .INDENT 2.0
  260780. .IP \(bu 2
  260781. 73c5735fc1 Merge pull request \fI\%#28525\fP from rallytime/route53_spacing
  260782. .IP \(bu 2
  260783. 6ab2ce615c Fix spacing in doc examples for boto_route53 state and module
  260784. .UNINDENT
  260785. .IP \(bu 2
  260786. \fBISSUE\fP \fI\%#28243\fP: (\fI\%guettli\fP) Docs: default value of state_auto_order ? (refs: \fI\%#28517\fP)
  260787. .IP \(bu 2
  260788. \fBPR\fP \fI\%#28517\fP: (\fI\%rallytime\fP) Add state_auto_order defaults to True note to ordering docs
  260789. @ \fI2015\-11\-03 14:04:40 UTC\fP
  260790. .INDENT 2.0
  260791. .IP \(bu 2
  260792. 2d7f934f67 Merge pull request \fI\%#28517\fP from rallytime/fix\-28243
  260793. .IP \(bu 2
  260794. be8f650901 Punctuation.
  260795. .IP \(bu 2
  260796. fd846822c1 Add state_auto_order defaults to True note to ordering docs
  260797. .UNINDENT
  260798. .IP \(bu 2
  260799. \fBPR\fP \fI\%#28512\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  260800. @ \fI2015\-11\-03 00:38:08 UTC\fP
  260801. .INDENT 2.0
  260802. .IP \(bu 2
  260803. 63ce8f78d5 Merge pull request \fI\%#28512\fP from basepi/merge\-forward\-2015.5
  260804. .IP \(bu 2
  260805. 61c382133a Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  260806. .IP \(bu 2
  260807. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  260808. .INDENT 2.0
  260809. .IP \(bu 2
  260810. 097838ec0c Wrap all cache calls in state.sls in correct umask
  260811. .UNINDENT
  260812. .IP \(bu 2
  260813. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  260814. .INDENT 2.0
  260815. .IP \(bu 2
  260816. b7b5bec309 Don\(aqt request creds if auth with key.
  260817. .UNINDENT
  260818. .UNINDENT
  260819. .IP \(bu 2
  260820. \fBPR\fP \fI\%#28448\fP: (\fI\%gwaters\fP) added a note to the tutorial for redhat derivatives
  260821. @ \fI2015\-10\-30 18:49:53 UTC\fP
  260822. .INDENT 2.0
  260823. .IP \(bu 2
  260824. 37ceae1e88 Merge pull request \fI\%#28448\fP from gwaters/add\-redhat\-notes
  260825. .IP \(bu 2
  260826. e70990704a added a note to the tutorial for those that redhat so they can use the state file too.
  260827. .UNINDENT
  260828. .IP \(bu 2
  260829. \fBPR\fP \fI\%#28406\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28381\fP to 2015.5
  260830. @ \fI2015\-10\-29 19:10:37 UTC\fP
  260831. .INDENT 2.0
  260832. .IP \(bu 2
  260833. \fBPR\fP \fI\%#28381\fP: (\fI\%JaseFace\fP) Add FreeBSD detection for VirtualBox (refs: \fI\%#28406\fP)
  260834. .IP \(bu 2
  260835. 5ef50d60cd Merge pull request \fI\%#28406\fP from rallytime/bp\-28381
  260836. .IP \(bu 2
  260837. e5322d2c44 Add FreeBSD detection for VirtualBox
  260838. .UNINDENT
  260839. .IP \(bu 2
  260840. \fBPR\fP \fI\%#28413\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28400\fP to 2015.5
  260841. @ \fI2015\-10\-29 18:06:46 UTC\fP
  260842. .INDENT 2.0
  260843. .IP \(bu 2
  260844. \fBPR\fP \fI\%#28400\fP: (\fI\%msciciel\fP) State pkg.installed: do not execute _preflight_check if not_installed list is empty in _find_install_targets (refs: \fI\%#28413\fP)
  260845. .IP \(bu 2
  260846. 30d5f7bbae Merge pull request \fI\%#28413\fP from rallytime/bp\-28400
  260847. .IP \(bu 2
  260848. ae1921b922 Do not execute _preflight_check if not_installed list is empty in _find_install_targets. Calling with empty list on rhel/centos cause execution of repoquery \-\-whatprovides without pkg list which is memory consumptive task for host and also for red hat satellite server.
  260849. .UNINDENT
  260850. .IP \(bu 2
  260851. \fBPR\fP \fI\%#28366\fP: (\fI\%erchn\fP) mark repo not enabled when pkgrepo state passes in disable: True
  260852. @ \fI2015\-10\-29 15:55:54 UTC\fP
  260853. .INDENT 2.0
  260854. .IP \(bu 2
  260855. 045d540aff Merge pull request \fI\%#28366\fP from erchn/fix_yumpkg_mod_repo_disabled
  260856. .IP \(bu 2
  260857. 8187a4ce20 re\-arrange things a bit to have less overall changes
  260858. .IP \(bu 2
  260859. f1d570ff18 move todelete above disabled check, add comment
  260860. .IP \(bu 2
  260861. 64feec413f also remove disabled key from repo_opts
  260862. .IP \(bu 2
  260863. 2f2ebb7bb6 mark repo not enabled when pkgrepo state passes in disable: True
  260864. .UNINDENT
  260865. .IP \(bu 2
  260866. \fBISSUE\fP \fI\%#28372\fP: (\fI\%beverlcl\fP) use_carrier option for bonding network interfaces are setting invalid values (refs: \fI\%#28373\fP)
  260867. .IP \(bu 2
  260868. \fBPR\fP \fI\%#28373\fP: (\fI\%beverlcl\fP) Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  260869. @ \fI2015\-10\-29 14:45:57 UTC\fP
  260870. .INDENT 2.0
  260871. .IP \(bu 2
  260872. 3923f4a569 Merge pull request \fI\%#28373\fP from beverlcl/fix\-use_carrier\-28372
  260873. .IP \(bu 2
  260874. 32cffeceb6 Fixing bug \fI\%#28372\fP for use_carrier option on bonding network interfaces.
  260875. .UNINDENT
  260876. .IP \(bu 2
  260877. \fBPR\fP \fI\%#28359\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28358\fP to 2015.5
  260878. @ \fI2015\-10\-28 20:43:05 UTC\fP
  260879. .INDENT 2.0
  260880. .IP \(bu 2
  260881. \fBPR\fP \fI\%#28358\fP: (\fI\%arthurlogilab\fP) docstring typo fix \- list returners not runners (refs: \fI\%#28359\fP)
  260882. .IP \(bu 2
  260883. e07e3f257b Merge pull request \fI\%#28359\fP from rallytime/bp\-28358
  260884. .IP \(bu 2
  260885. 9cacbf582b docstring typo fix \- list returners not runners
  260886. .UNINDENT
  260887. .IP \(bu 2
  260888. \fBISSUE\fP \fI\%#28000\fP: (\fI\%hrumph\fP) No option to stop windows minion installer from starting service in silent mode. (refs: \fI\%#28346\fP)
  260889. .IP \(bu 2
  260890. \fBISSUE\fP \fI\%#27923\fP: (\fI\%twangboy\fP) Salt Windows Installer fails to grab existing config (refs: \fI\%#28346\fP)
  260891. .IP \(bu 2
  260892. \fBPR\fP \fI\%#28346\fP: (\fI\%twangboy\fP) Fix installer
  260893. @ \fI2015\-10\-28 14:21:34 UTC\fP
  260894. .INDENT 2.0
  260895. .IP \(bu 2
  260896. 282be7ba5a Merge pull request \fI\%#28346\fP from twangboy/fix_installer
  260897. .IP \(bu 2
  260898. f65e3e5275 Updated documentation to reflect the new parameter
  260899. .IP \(bu 2
  260900. a0c5223554 Fixes \fI\%#27923\fP and \fI\%#28000\fP
  260901. .UNINDENT
  260902. .IP \(bu 2
  260903. \fBPR\fP \fI\%#28315\fP: (\fI\%gwaters\fP) Adding a working example of setting pillar data on the cli
  260904. @ \fI2015\-10\-27 15:27:49 UTC\fP
  260905. .INDENT 2.0
  260906. .IP \(bu 2
  260907. 7858f04ebc Merge pull request \fI\%#28315\fP from gwaters/update\-pillar\-doc
  260908. .IP \(bu 2
  260909. b15285c0b4 adding a working example of setting pillar data on the cli
  260910. .UNINDENT
  260911. .IP \(bu 2
  260912. \fBISSUE\fP \fI\%#28209\fP: (\fI\%basepi\fP) Legacy git_pillar configs cause duplicate ext_pillar calls (refs: \fI\%#28210\fP)
  260913. .IP \(bu 2
  260914. \fBPR\fP \fI\%#28211\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  260915. @ \fI2015\-10\-26 14:14:02 UTC\fP
  260916. .INDENT 2.0
  260917. .IP \(bu 2
  260918. \fBPR\fP \fI\%#28210\fP: (\fI\%terminalmage\fP) Fix for ext_pillar being compiled twice in legacy git_pillar code (refs: \fI\%#28211\fP)
  260919. .IP \(bu 2
  260920. 45305ccf29 Merge pull request \fI\%#28211\fP from terminalmage/legacy_git_pillar\-2015.5
  260921. .IP \(bu 2
  260922. 0d6a4ac115 Remove non\-functional test
  260923. .IP \(bu 2
  260924. ab991d61d9 Fix for ext_pillar being compiled twice in legacy git_pillar code (2015.5 branch)
  260925. .UNINDENT
  260926. .IP \(bu 2
  260927. \fBISSUE\fP \fI\%#26411\fP: (\fI\%whiteinge\fP) salt\-call cannot send custom events without Minion daemon running (refs: \fI\%#28263\fP)
  260928. .IP \(bu 2
  260929. \fBPR\fP \fI\%#28263\fP: (\fI\%cachedout\fP) New channel for event.send
  260930. @ \fI2015\-10\-26 14:07:06 UTC\fP
  260931. .INDENT 2.0
  260932. .IP \(bu 2
  260933. a6cc84c407 Merge pull request \fI\%#28263\fP from cachedout/issue_26411\-1
  260934. .IP \(bu 2
  260935. 3b880a5f07 New channel for event.fire_master
  260936. .IP \(bu 2
  260937. 29e9533aab Stand up a new channel if using salt\-call
  260938. .UNINDENT
  260939. .IP \(bu 2
  260940. \fBPR\fP \fI\%#28293\fP: (\fI\%cachedout\fP) Minor grammar changes
  260941. @ \fI2015\-10\-26 12:15:42 UTC\fP
  260942. .INDENT 2.0
  260943. .IP \(bu 2
  260944. \fBPR\fP \fI\%#28271\fP: (\fI\%gwaters\fP) Update tutorial documentation (refs: \fI\%#28293\fP)
  260945. .IP \(bu 2
  260946. 788e1463d8 Merge pull request \fI\%#28293\fP from cachedout/fix_28271
  260947. .IP \(bu 2
  260948. 499ed8519b Minor grammar changes to \fI\%#28271\fP
  260949. .UNINDENT
  260950. .IP \(bu 2
  260951. \fBPR\fP \fI\%#28271\fP: (\fI\%gwaters\fP) Update tutorial documentation (refs: \fI\%#28293\fP)
  260952. @ \fI2015\-10\-26 12:12:37 UTC\fP
  260953. .INDENT 2.0
  260954. .IP \(bu 2
  260955. e178af0b90 Merge pull request \fI\%#28271\fP from gwaters/update\-tutorial\-documentation
  260956. .IP \(bu 2
  260957. f96d39483d updated the tutorial with gravyboat\(aqs suggestions
  260958. .IP \(bu 2
  260959. b1f4a2bdf4 i think i changed the wrong header, updated to fix
  260960. .IP \(bu 2
  260961. 846b3aece1 I found you can not run the cp.push commands until after enabling the feature in the conf, so I wanted to update the docs so others who try these commands wont bump into the same issue I had.
  260962. .UNINDENT
  260963. .IP \(bu 2
  260964. \fBISSUE\fP \fI\%#28248\fP: (\fI\%0xf10e\fP) conventions/formula.rst: "Gather external data" suggests unavailable jinja functionality (refs: \fI\%#28280\fP)
  260965. .IP \(bu 2
  260966. \fBPR\fP \fI\%#28280\fP: (\fI\%0xf10e\fP) Correct Jinja function load_* to import_*
  260967. @ \fI2015\-10\-25 04:11:10 UTC\fP
  260968. .INDENT 2.0
  260969. .IP \(bu 2
  260970. e3eff9b909 Merge pull request \fI\%#28280\fP from 0xf10e/patch\-1
  260971. .IP \(bu 2
  260972. 6d4316b0ac Correct Jinja function load_* to import_*
  260973. .UNINDENT
  260974. .IP \(bu 2
  260975. \fBPR\fP \fI\%#28255\fP: (\fI\%cachedout\fP) Add __cli opt
  260976. @ \fI2015\-10\-23 18:44:30 UTC\fP
  260977. .INDENT 2.0
  260978. .IP \(bu 2
  260979. 909fa3dc97 Merge pull request \fI\%#28255\fP from cachedout/cli_opt
  260980. .IP \(bu 2
  260981. a2408157de Add __cli opt
  260982. .UNINDENT
  260983. .IP \(bu 2
  260984. \fBISSUE\fP \fI\%#27374\fP: (\fI\%mool\fP) boto_route53 state doesn\(aqt create a record (refs: \fI\%#28213\fP)
  260985. .IP \(bu 2
  260986. \fBPR\fP \fI\%#28213\fP: (\fI\%rallytime\fP) If record returned None, don\(aqt continue with the state. Something went wrong
  260987. @ \fI2015\-10\-23 13:54:50 UTC\fP
  260988. .INDENT 2.0
  260989. .IP \(bu 2
  260990. 0fa094ae11 Merge pull request \fI\%#28213\fP from rallytime/boto_route53_state
  260991. .IP \(bu 2
  260992. 237d64ff11 If record returned None, don\(aqt continue with the state. Something went wrong.
  260993. .UNINDENT
  260994. .IP \(bu 2
  260995. \fBISSUE\fP \fI\%#28217\fP: (\fI\%Ch3LL\fP) Scheduler.present tries to add the scheudler each time (refs: \fI\%#28238\fP)
  260996. .IP \(bu 2
  260997. \fBPR\fP \fI\%#28238\fP: (\fI\%basepi\fP) [2015.5] Fix schedule.present always diffing
  260998. @ \fI2015\-10\-23 13:31:32 UTC\fP
  260999. .INDENT 2.0
  261000. .IP \(bu 2
  261001. 1768014705 Merge pull request \fI\%#28238\fP from basepi/fix.schedule.present.28217
  261002. .IP \(bu 2
  261003. 087a8dc3c2 Only insert enabled if it\(aqs a dict
  261004. .IP \(bu 2
  261005. 5b49f41fab Fix schedule comparison to adjust for \(aqenabled\(aq being added in schedule.list
  261006. .IP \(bu 2
  261007. 2dc1226ab8 Build new item with \(aqenabled\(aq if available
  261008. .UNINDENT
  261009. .IP \(bu 2
  261010. \fBISSUE\fP \fI\%#8051\fP: (\fI\%regilero\fP) Problems with fileinput.input inplace editing in salt.states.file.replace (refs: \fI\%#28174\fP)
  261011. .IP \(bu 2
  261012. \fBISSUE\fP \fI\%#7999\fP: (\fI\%regilero\fP) MULTILINE pattern cannot work in file.replace, fileinput always reads line by line. (refs: \fI\%#28174\fP)
  261013. .IP \(bu 2
  261014. \fBPR\fP \fI\%#28174\fP: (\fI\%lorengordon\fP) Add support for multiline regex in file.replace (refs: \fI\%#28666\fP)
  261015. @ \fI2015\-10\-22 14:02:43 UTC\fP
  261016. .INDENT 2.0
  261017. .IP \(bu 2
  261018. bdd48c92de Merge pull request \fI\%#28174\fP from lorengordon/file\-replace\-multiline
  261019. .IP \(bu 2
  261020. acdef2da60 Update docstrings with new guidance
  261021. .IP \(bu 2
  261022. 0835b005b7 Use a test that makes the extra file read unnecessary
  261023. .IP \(bu 2
  261024. 6d6121a6e5 Use \fIflags\fP when checking whether content was added previously
  261025. .IP \(bu 2
  261026. b25e609e9e Set \fIflags=8\fP since now the file is read as a MULTILINE string by default
  261027. .IP \(bu 2
  261028. 89e8dcdffd Use \fIfinally\fP block to ensure mmap object is closed
  261029. .IP \(bu 2
  261030. 5aea6647c9 Add support for multiline regex in file.replace
  261031. .UNINDENT
  261032. .IP \(bu 2
  261033. \fBISSUE\fP \fI\%#19673\fP: (\fI\%holyzhou\fP) partition.mkpart in parted modules doesn\(aqt work (refs: \fI\%#28175\fP)
  261034. .IP \(bu 2
  261035. \fBPR\fP \fI\%#28175\fP: (\fI\%twangboy\fP) Fixes \fI\%#19673\fP
  261036. @ \fI2015\-10\-21 20:48:24 UTC\fP
  261037. .INDENT 2.0
  261038. .IP \(bu 2
  261039. 2225925fb5 Merge pull request \fI\%#28175\fP from twangboy/fix_19673
  261040. .IP \(bu 2
  261041. ae8fbb208f Fixes \fI\%#19673\fP
  261042. .UNINDENT
  261043. .IP \(bu 2
  261044. \fBPR\fP \fI\%#28140\fP: (\fI\%rallytime\fP) Add OpenBSD installation documentation to 2015.5 branch
  261045. @ \fI2015\-10\-20 16:31:34 UTC\fP
  261046. .INDENT 2.0
  261047. .IP \(bu 2
  261048. \fBPR\fP \fI\%#28103\fP: (\fI\%ajacoutot\fP) OpenBSD salt package: update list of dependencies. (refs: \fI\%#28140\fP)
  261049. .IP \(bu 2
  261050. ab18dcf637 Merge pull request \fI\%#28140\fP from rallytime/bsd\-installation\-doc
  261051. .IP \(bu 2
  261052. 458a544d83 Add OpenBSD installation documentation to 2015.5 branch
  261053. .UNINDENT
  261054. .IP \(bu 2
  261055. \fBISSUE\fP \fI\%#28101\fP: (\fI\%bogdanr\fP) salt\-cloud ec2 list\-sizes doesn\(aqt show all available sizes (refs: \fI\%#28138\fP)
  261056. .IP \(bu 2
  261057. \fBPR\fP \fI\%#28138\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28130\fP EC2 Sizes Only portion to 2015.5
  261058. @ \fI2015\-10\-20 16:29:09 UTC\fP
  261059. .INDENT 2.0
  261060. .IP \(bu 2
  261061. \fBPR\fP \fI\%#28130\fP: (\fI\%bogdanr\fP) Ec2 upload public key and updated instances size list (refs: \fI\%#28138\fP)
  261062. .IP \(bu 2
  261063. fad38eb3c3 Merge pull request \fI\%#28138\fP from rallytime/bp\-28130\-sizes\-only
  261064. .IP \(bu 2
  261065. 6ab31e1886 Pylint
  261066. .IP \(bu 2
  261067. 37e4ed58a9 Added missing comma
  261068. .IP \(bu 2
  261069. 667f5e669f Added a bunch of instance sizes and updated some outdated ones
  261070. .UNINDENT
  261071. .IP \(bu 2
  261072. \fBISSUE\fP \fI\%#26844\fP: (\fI\%double\-yaya\fP) The function "state.sls" is running as PID XXXX and was started at .... with jid XXXX always shows the current jid (refs: \fI\%#28097\fP)
  261073. .IP \(bu 2
  261074. \fBPR\fP \fI\%#28097\fP: (\fI\%jacksontj\fP) For all multi\-part messages, check the headers. If the header is not …
  261075. @ \fI2015\-10\-20 15:00:18 UTC\fP
  261076. .INDENT 2.0
  261077. .IP \(bu 2
  261078. ce8f858536 Merge pull request \fI\%#28097\fP from jacksontj/2015.5
  261079. .IP \(bu 2
  261080. 75e04bcbbc For all multi\-part messages, check the headers. If the header is not your minion_id, skip the message
  261081. .UNINDENT
  261082. .IP \(bu 2
  261083. \fBISSUE\fP \fI\%#23655\fP: (\fI\%arthurlogilab\fP) salt\-cloud with lxc should not traceback when minion is unreacheable (refs: \fI\%#28117\fP)
  261084. .IP \(bu 2
  261085. \fBPR\fP \fI\%#28117\fP: (\fI\%rallytime\fP) Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  261086. @ \fI2015\-10\-20 12:41:12 UTC\fP
  261087. .INDENT 2.0
  261088. .IP \(bu 2
  261089. 9cdb970289 Merge pull request \fI\%#28117\fP from rallytime/fix\-23655
  261090. .IP \(bu 2
  261091. dfb908e405 Clean up stacktrace when master can\(aqt be reached in lxc cloud driver
  261092. .UNINDENT
  261093. .IP \(bu 2
  261094. \fBPR\fP \fI\%#28110\fP: (\fI\%terminalmage\fP) Add explanation of file_client: local setting masterless mode
  261095. @ \fI2015\-10\-20 12:28:05 UTC\fP
  261096. .INDENT 2.0
  261097. .IP \(bu 2
  261098. bf7ed0a397 Merge pull request \fI\%#28110\fP from terminalmage/masterless\-mode
  261099. .IP \(bu 2
  261100. ed90103124 Add explanation of file_client: local setting masterless mode
  261101. .UNINDENT
  261102. .IP \(bu 2
  261103. \fBISSUE\fP \fI\%#27940\fP: (\fI\%multani\fP) salt\-cloud creating lxc containers doesn\(aqt fire "salt/cloud/*/created" event (refs: \fI\%#28109\fP)
  261104. .IP \(bu 2
  261105. \fBPR\fP \fI\%#28109\fP: (\fI\%rallytime\fP) Add created reactor event to lxc cloud driver
  261106. @ \fI2015\-10\-19 20:32:41 UTC\fP
  261107. .INDENT 2.0
  261108. .IP \(bu 2
  261109. a569ef4980 Merge pull request \fI\%#28109\fP from rallytime/fix\-27940
  261110. .IP \(bu 2
  261111. 18b2245611 Add created reactor event to lxc cloud driver
  261112. .UNINDENT
  261113. .IP \(bu 2
  261114. \fBISSUE\fP \fI\%#21845\fP: (\fI\%kitsemets\fP) pip.install: fails in v2015.2.0rc1 when the package is already installed (pip v1.0) (refs: \fI\%#27996\fP)
  261115. .IP \(bu 2
  261116. \fBPR\fP \fI\%#27996\fP: (\fI\%rallytime\fP) Don\(aqt fail if pip package is already present and pip1 is installed
  261117. @ \fI2015\-10\-19 12:59:17 UTC\fP
  261118. .INDENT 2.0
  261119. .IP \(bu 2
  261120. d4604fdb26 Merge pull request \fI\%#27996\fP from rallytime/fix\-21845
  261121. .IP \(bu 2
  261122. f8380d751e Provide empty string as default stdout instead of None
  261123. .IP \(bu 2
  261124. f9406b5828 Don\(aqt fail if pip package is already present and pip1 is installed
  261125. .UNINDENT
  261126. .IP \(bu 2
  261127. \fBPR\fP \fI\%#28056\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28033\fP to 2015.5
  261128. @ \fI2015\-10\-19 12:55:10 UTC\fP
  261129. .INDENT 2.0
  261130. .IP \(bu 2
  261131. \fBPR\fP \fI\%#28033\fP: (\fI\%twangboy\fP) Fixed win_useradd.py (refs: \fI\%#28056\fP)
  261132. .IP \(bu 2
  261133. 28b97c514f Merge pull request \fI\%#28056\fP from rallytime/bp\-28033
  261134. .IP \(bu 2
  261135. af2c5ab759 Fixed win_useradd.py
  261136. .UNINDENT
  261137. .IP \(bu 2
  261138. \fBPR\fP \fI\%#28059\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28040\fP to 2015.5
  261139. @ \fI2015\-10\-18 16:17:29 UTC\fP
  261140. .INDENT 2.0
  261141. .IP \(bu 2
  261142. \fBPR\fP \fI\%#28040\fP: (\fI\%erchn\fP) Swift rackspace fixes (refs: \fI\%#28059\fP)
  261143. .IP \(bu 2
  261144. dfc3aaec74 Merge pull request \fI\%#28059\fP from rallytime/bp\-28040
  261145. .IP \(bu 2
  261146. 76a0d4937b Revert "Allow passing in auth_version, defaulting to 2."
  261147. .IP \(bu 2
  261148. 63d5675d34 default auth_version = 2
  261149. .IP \(bu 2
  261150. 8072716888 remove extra spaces
  261151. .IP \(bu 2
  261152. 9770f56f04 cleanup whitespace, default to None to be consistent with profile
  261153. .IP \(bu 2
  261154. f4adfe98c0 Allow passing in auth_version, defaulting to 2.
  261155. .IP \(bu 2
  261156. fab1ad39af Rackspace support for switft module.
  261157. .UNINDENT
  261158. .IP \(bu 2
  261159. \fBISSUE\fP \fI\%#27534\fP: (\fI\%llevar\fP) file.managed can\(aqt retrieve file via ftp (refs: \fI\%#28047\fP)
  261160. .IP \(bu 2
  261161. \fBPR\fP \fI\%#28047\fP: (\fI\%cachedout\fP) Restore FTP functionality to file client
  261162. @ \fI2015\-10\-18 16:16:46 UTC\fP
  261163. .INDENT 2.0
  261164. .IP \(bu 2
  261165. d1fa036b55 Merge pull request \fI\%#28047\fP from cachedout/issue_27534
  261166. .IP \(bu 2
  261167. 6ea37ddbca Context manager
  261168. .IP \(bu 2
  261169. 4d6f6bb371 Lint
  261170. .IP \(bu 2
  261171. 59018289dc Restore FTP functionality to file client
  261172. .UNINDENT
  261173. .IP \(bu 2
  261174. \fBPR\fP \fI\%#28032\fP: (\fI\%twangboy\fP) Fixed win_path.py
  261175. @ \fI2015\-10\-17 15:16:15 UTC\fP
  261176. .INDENT 2.0
  261177. .IP \(bu 2
  261178. fd2ca2df1b Merge pull request \fI\%#28032\fP from twangboy/fix_win_path
  261179. .IP \(bu 2
  261180. 2bcac93314 Fixed win_path.py
  261181. .UNINDENT
  261182. .IP \(bu 2
  261183. \fBISSUE\fP \fI\%#26336\fP: (\fI\%jfindlay\fP) windows user.present broken (refs: \fI\%#28003\fP)
  261184. .IP \(bu 2
  261185. \fBPR\fP \fI\%#28037\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28003\fP to 2015.5
  261186. @ \fI2015\-10\-16 20:59:52 UTC\fP
  261187. .INDENT 2.0
  261188. .IP \(bu 2
  261189. \fBPR\fP \fI\%#28003\fP: (\fI\%twangboy\fP) Fix \fI\%#26336\fP (refs: \fI\%#28037\fP)
  261190. .IP \(bu 2
  261191. 88c1770be4 Merge pull request \fI\%#28037\fP from rallytime/bp\-28003
  261192. .IP \(bu 2
  261193. 4fcf51fb1e Fix PR \fI\%#26336\fP
  261194. .UNINDENT
  261195. .IP \(bu 2
  261196. \fBPR\fP \fI\%#28031\fP: (\fI\%jacobhammons\fP) Updated release notes with additional CVE information
  261197. @ \fI2015\-10\-16 16:19:37 UTC\fP
  261198. .INDENT 2.0
  261199. .IP \(bu 2
  261200. de727d8bd2 Merge pull request \fI\%#28031\fP from jacobhammons/relnotes6
  261201. .IP \(bu 2
  261202. 05927bb6f0 Updated release notes with additional CVE information
  261203. .UNINDENT
  261204. .IP \(bu 2
  261205. \fBISSUE\fP \fI\%#27897\fP: (\fI\%Inveracity\fP) request to add \e\er escape character for salt.states.host for windows (refs: \fI\%#28008\fP)
  261206. .IP \(bu 2
  261207. \fBPR\fP \fI\%#28008\fP: (\fI\%jfindlay\fP) platform independent line endings in hosts mod
  261208. @ \fI2015\-10\-16 13:20:28 UTC\fP
  261209. .INDENT 2.0
  261210. .IP \(bu 2
  261211. 16c0272849 Merge pull request \fI\%#28008\fP from jfindlay/host_path
  261212. .IP \(bu 2
  261213. 9f7047dd3c platform independent line endings in hosts mod
  261214. .UNINDENT
  261215. .IP \(bu 2
  261216. \fBISSUE\fP \fI\%#28010\fP: (\fI\%vakulich\fP) Error "KeyError: \(aqret\(aq" appeared during salt.state run in orchestrate module if minion had an exception (refs: \fI\%#28012\fP)
  261217. .IP \(bu 2
  261218. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output
  261219. @ \fI2015\-10\-16 12:40:59 UTC\fP
  261220. .INDENT 2.0
  261221. .IP \(bu 2
  261222. d41018fa8e Merge pull request \fI\%#28012\fP from rallytime/fix\-28010
  261223. .IP \(bu 2
  261224. 0d7059e0c2 Clean up stack trace when something goes wrong with minion output
  261225. .UNINDENT
  261226. .IP \(bu 2
  261227. \fBPR\fP \fI\%#27995\fP: (\fI\%jacobhammons\fP) added link to grains security FAQ to targeting and pillar topics.
  261228. @ \fI2015\-10\-15 21:15:31 UTC\fP
  261229. .INDENT 2.0
  261230. .IP \(bu 2
  261231. f728307001 Merge pull request \fI\%#27995\fP from jacobhammons/pillar\-doc
  261232. .IP \(bu 2
  261233. 2870af2ba3 added link to grains security FAQ to targeting and pillar topics.
  261234. .UNINDENT
  261235. .IP \(bu 2
  261236. \fBPR\fP \fI\%#27986\fP: (\fI\%jacobhammons\fP) Changed current release to 5.6 and added CVE to release notes
  261237. @ \fI2015\-10\-15 17:25:41 UTC\fP
  261238. .INDENT 2.0
  261239. .IP \(bu 2
  261240. efede904a7 Merge pull request \fI\%#27986\fP from jacobhammons/dot6
  261241. .IP \(bu 2
  261242. bb61c68c11 Changed current release to 5.6 and added CVE to release notes
  261243. .UNINDENT
  261244. .IP \(bu 2
  261245. \fBPR\fP \fI\%#27913\fP: (\fI\%pass\-by\-value\fP) Set default
  261246. @ \fI2015\-10\-14 14:03:36 UTC\fP
  261247. .INDENT 2.0
  261248. .IP \(bu 2
  261249. 831ec680d9 Merge pull request \fI\%#27913\fP from pass\-by\-value/proxmox_verify_ssl
  261250. .IP \(bu 2
  261251. 0b721efe37 Set default
  261252. .UNINDENT
  261253. .IP \(bu 2
  261254. \fBPR\fP \fI\%#27876\fP: (\fI\%terminalmage\fP) 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  261255. @ \fI2015\-10\-13 14:58:45 UTC\fP
  261256. .INDENT 2.0
  261257. .IP \(bu 2
  261258. 41cccb3a30 Merge pull request \fI\%#27876\fP from terminalmage/git_pillar\-AttributeError\-2015.5
  261259. .IP \(bu 2
  261260. 07794c837a 2015.5 branch: Fix traceback when 2015.8 git ext_pillar config schema used
  261261. .UNINDENT
  261262. .IP \(bu 2
  261263. \fBISSUE\fP \fI\%#27610\fP: (\fI\%benburkert\fP) PR \fI\%#27201\fP broke ssh_known_hosts with :port (refs: \fI\%#27726\fP)
  261264. .IP \(bu 2
  261265. \fBISSUE\fP \fI\%#27187\fP: (\fI\%SeverinLeonhardt\fP) ssh_known_hosts.present hashes other entries even with hash_hostname: false (refs: \fI\%#27201\fP)
  261266. .IP \(bu 2
  261267. \fBPR\fP \fI\%#27726\fP: (\fI\%jfindlay\fP) deprecate hash_hostname in favor of hash_known_hosts
  261268. @ \fI2015\-10\-12 16:19:09 UTC\fP
  261269. .INDENT 2.0
  261270. .IP \(bu 2
  261271. \fBPR\fP \fI\%#27201\fP: (\fI\%jfindlay\fP) rename hash_hostname to hash_known_hosts (refs: \fI\%#27726\fP)
  261272. .IP \(bu 2
  261273. c9c3b7760e Merge pull request \fI\%#27726\fP from jfindlay/hashhosts
  261274. .IP \(bu 2
  261275. ebce47de7c add docs to ssh.recv_known_host exec module fcn
  261276. .IP \(bu 2
  261277. b6ee16b1e5 deprecate hash_hostname in favor of hash_known_hosts
  261278. .UNINDENT
  261279. .IP \(bu 2
  261280. \fBISSUE\fP \fI\%#27735\fP: (\fI\%go8ose\fP) saltutils.find_cached_job doesn\(aqt work (refs: \fI\%#27776\fP)
  261281. .IP \(bu 2
  261282. \fBPR\fP \fI\%#27776\fP: (\fI\%jfindlay\fP) return message when local jobs_cache not found
  261283. @ \fI2015\-10\-12 16:11:41 UTC\fP
  261284. .INDENT 2.0
  261285. .IP \(bu 2
  261286. 18e31584b0 Merge pull request \fI\%#27776\fP from jfindlay/local_msg
  261287. .IP \(bu 2
  261288. 03afa3cffa return message when local jobs_cache not found
  261289. .UNINDENT
  261290. .IP \(bu 2
  261291. \fBISSUE\fP \fI\%#27665\fP: (\fI\%ahammond\fP) user.absent should not "fail" if /var/spool/mail/<user> already does not exist. (refs: \fI\%#27766\fP)
  261292. .IP \(bu 2
  261293. \fBPR\fP \fI\%#27766\fP: (\fI\%jfindlay\fP) better check for debian userdel error
  261294. @ \fI2015\-10\-12 15:14:33 UTC\fP
  261295. .INDENT 2.0
  261296. .IP \(bu 2
  261297. 86cc7b5537 Merge pull request \fI\%#27766\fP from jfindlay/debmail
  261298. .IP \(bu 2
  261299. ee78da2c27 better check for debian userdel error
  261300. .UNINDENT
  261301. .IP \(bu 2
  261302. \fBISSUE\fP \fI\%#27756\fP: (\fI\%iggy\fP) syslog returner formats line incorrectly (refs: \fI\%#27758\fP)
  261303. .IP \(bu 2
  261304. \fBPR\fP \fI\%#27758\fP: (\fI\%iggy\fP) Remove redundant text from syslog returner
  261305. @ \fI2015\-10\-12 15:09:49 UTC\fP
  261306. .INDENT 2.0
  261307. .IP \(bu 2
  261308. c224386c9a Merge pull request \fI\%#27758\fP from iggy/patch\-1
  261309. .IP \(bu 2
  261310. 0994fb6a8c Remove redundant text from syslog returner
  261311. .UNINDENT
  261312. .IP \(bu 2
  261313. \fBISSUE\fP \fI\%#27832\fP: (\fI\%viking60\fP) Salt fails to recognize Manjaro (as an Arch derivate) (refs: \fI\%#27841\fP)
  261314. .IP \(bu 2
  261315. \fBPR\fP \fI\%#27841\fP: (\fI\%terminalmage\fP) Detect Manjaro Linux as Arch derivative
  261316. @ \fI2015\-10\-12 14:53:46 UTC\fP
  261317. .INDENT 2.0
  261318. .IP \(bu 2
  261319. 34a005041f Merge pull request \fI\%#27841\fP from terminalmage/issue27832
  261320. .IP \(bu 2
  261321. 8e09fbd6a3 Detect Manjaro Linux as Arch derivative
  261322. .UNINDENT
  261323. .IP \(bu 2
  261324. \fBISSUE\fP \fI\%#26538\fP: (\fI\%seanjnkns\fP) salt.states.file.managed generates warning when used in place of salt.states.file.touch (refs: \fI\%#27806\fP)
  261325. .IP \(bu 2
  261326. \fBPR\fP \fI\%#27852\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27806\fP to 2015.5
  261327. @ \fI2015\-10\-12 14:53:17 UTC\fP
  261328. .INDENT 2.0
  261329. .IP \(bu 2
  261330. \fBPR\fP \fI\%#27806\fP: (\fI\%blast\-hardcheese\fP) Empty string is falsy (refs: \fI\%#27852\fP)
  261331. .IP \(bu 2
  261332. 3944a498ad Merge pull request \fI\%#27852\fP from rallytime/bp\-27806
  261333. .IP \(bu 2
  261334. a84bf18bc4 Empty string is falsy
  261335. .UNINDENT
  261336. .IP \(bu 2
  261337. \fBISSUE\fP \fI\%#27831\fP: (\fI\%basepi\fP) v2015.5.5 highstate outputter stacktracing for jobs.lookup_jid (refs: \fI\%#27838\fP)
  261338. .IP \(bu 2
  261339. \fBPR\fP \fI\%#27838\fP: (\fI\%basepi\fP) [2015.5] Fix highstate outputter for jobs.lookup_jid
  261340. @ \fI2015\-10\-09 22:26:28 UTC\fP
  261341. .INDENT 2.0
  261342. .IP \(bu 2
  261343. \fBPR\fP \fI\%#25521\fP: (\fI\%cachedout\fP) Fix outputter for state.orch (refs: \fI\%#27838\fP)
  261344. .IP \(bu 2
  261345. 7508a1c474 Merge pull request \fI\%#27838\fP from basepi/fix.runner.highstate.outputter.27831
  261346. .IP \(bu 2
  261347. 8ae9b66fd9 Don\(aqt pop \(aqoutputter\(aq, we expect it further down
  261348. .UNINDENT
  261349. .IP \(bu 2
  261350. \fBPR\fP \fI\%#27791\fP: (\fI\%eguven\fP) 2015.5 postgres_user groups backport
  261351. @ \fI2015\-10\-08 23:59:08 UTC\fP
  261352. .INDENT 2.0
  261353. .IP \(bu 2
  261354. d178315f93 Merge pull request \fI\%#27791\fP from eguven/2015.5\-postgres\-user\-groups\-backport
  261355. .IP \(bu 2
  261356. 2caf1d21d6 fix test
  261357. .IP \(bu 2
  261358. bc90c5bffe improve change reporting for postgres_user groups
  261359. .IP \(bu 2
  261360. 8712bce91a backport postgres_user groups
  261361. .UNINDENT
  261362. .IP \(bu 2
  261363. \fBPR\fP \fI\%#27759\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  261364. @ \fI2015\-10\-07 18:01:54 UTC\fP
  261365. .INDENT 2.0
  261366. .IP \(bu 2
  261367. b2937b6a16 Merge pull request \fI\%#27759\fP from basepi/merge\-forward\-2015.5
  261368. .IP \(bu 2
  261369. 792ee084bb Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  261370. .IP \(bu 2
  261371. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  261372. .IP \(bu 2
  261373. 563db71bfd Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  261374. .UNINDENT
  261375. .IP \(bu 2
  261376. \fBISSUE\fP \fI\%#26673\fP: (\fI\%robkinyon\fP) __virtual__() doesn\(aqt work without __virtualname__ (refs: \fI\%#27732\fP)
  261377. .IP \(bu 2
  261378. \fBPR\fP \fI\%#27732\fP: (\fI\%jacobhammons\fP) update docs for __virtual__ and __virtualname__
  261379. @ \fI2015\-10\-07 17:29:31 UTC\fP
  261380. .INDENT 2.0
  261381. .IP \(bu 2
  261382. 4b9128b491 Merge pull request \fI\%#27732\fP from jacobhammons/26673
  261383. .IP \(bu 2
  261384. 75cc07cf10 noted that __virtual__ can return False and an error string
  261385. .IP \(bu 2
  261386. b928e1afa8 update docs for __virtual__ and __virtualname__ Refs \fI\%#26673\fP
  261387. .UNINDENT
  261388. .IP \(bu 2
  261389. \fBPR\fP \fI\%#27747\fP: (\fI\%Sacro\fP) Chocolatey doesn\(aqt have a help command.
  261390. @ \fI2015\-10\-07 16:06:53 UTC\fP
  261391. .INDENT 2.0
  261392. .IP \(bu 2
  261393. a130896d1c Merge pull request \fI\%#27747\fP from Sacro/fix\-chocolatey\-version
  261394. .IP \(bu 2
  261395. 8f1fa9e78e Chocolatey doesn\(aqt have a help command.
  261396. .UNINDENT
  261397. .IP \(bu 2
  261398. \fBPR\fP \fI\%#27733\fP: (\fI\%jacobhammons\fP) hardening topic \- updates to docs.saltstack.com theme
  261399. @ \fI2015\-10\-07 01:44:00 UTC\fP
  261400. .INDENT 2.0
  261401. .IP \(bu 2
  261402. 4e48651de0 Merge pull request \fI\%#27733\fP from jacobhammons/bug\-fixes
  261403. .IP \(bu 2
  261404. cbecd4f553 Updated saltstack2 theme to add SaltConf16 banner
  261405. .IP \(bu 2
  261406. 117e0c2bcc Added hardening topic based on the information in Refs \fI\%#27088\fP
  261407. .UNINDENT
  261408. .IP \(bu 2
  261409. \fBISSUE\fP \fI\%#9051\fP: (\fI\%olenz\fP) Add bash completion to the docs (refs: \fI\%#27706\fP)
  261410. .IP \(bu 2
  261411. \fBISSUE\fP \fI\%#27005\fP: (\fI\%johanek\fP) grains precedence (refs: \fI\%#27706\fP)
  261412. .IP \(bu 2
  261413. \fBISSUE\fP \fI\%#21475\fP: (\fI\%quantonganh\fP) Targeting with pillar should be added in to the main targeting page (refs: \fI\%#27706\fP)
  261414. .IP \(bu 2
  261415. \fBISSUE\fP \fI\%#14876\fP: (\fI\%whiteinge\fP) Create a pre\-Salted tutorial VM (refs: \fI\%#27706\fP)
  261416. .IP \(bu 2
  261417. \fBISSUE\fP \fI\%#13407\fP: (\fI\%gravyboat\fP) Create page explaining how to pass variables on the command line (refs: \fI\%#27706\fP)
  261418. .IP \(bu 2
  261419. \fBPR\fP \fI\%#27706\fP: (\fI\%jacobhammons\fP) Assorted doc bugs
  261420. @ \fI2015\-10\-06 05:35:29 UTC\fP
  261421. .INDENT 2.0
  261422. .IP \(bu 2
  261423. c58da846bf Merge pull request \fI\%#27706\fP from jacobhammons/bug\-fixes
  261424. .IP \(bu 2
  261425. 76dc8de71b Assorted doc bugs Refs \fI\%#9051\fP Refs \fI\%#13407\fP Refs \fI\%#21475\fP Refs \fI\%#14876\fP Refs \fI\%#27005\fP
  261426. .UNINDENT
  261427. .IP \(bu 2
  261428. \fBPR\fP \fI\%#27695\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27671\fP to 2015.5
  261429. @ \fI2015\-10\-05 21:57:36 UTC\fP
  261430. .INDENT 2.0
  261431. .IP \(bu 2
  261432. \fBPR\fP \fI\%#27671\fP: (\fI\%gashev\fP) Added skip test_ext_pillar_env_mapping if git module does not exist. (refs: \fI\%#27695\fP)
  261433. .IP \(bu 2
  261434. 43fba89865 Merge pull request \fI\%#27695\fP from rallytime/bp\-27671
  261435. .IP \(bu 2
  261436. 2a88028595 Added skip test_ext_pillar_env_mapping if git module does not exist.
  261437. .UNINDENT
  261438. .IP \(bu 2
  261439. \fBISSUE\fP \fI\%#27501\fP: (\fI\%yermulnik\fP) [FreeBSD] "pkg search" behavior changed since 1.5 series (refs: \fI\%#27524\fP)
  261440. .IP \(bu 2
  261441. \fBPR\fP \fI\%#27524\fP: (\fI\%jfindlay\fP) parse pkgng output in quiet mode for >= 1.6.1
  261442. @ \fI2015\-10\-05 21:22:40 UTC\fP
  261443. .INDENT 2.0
  261444. .IP \(bu 2
  261445. cb3d92676e Merge pull request \fI\%#27524\fP from jfindlay/pkgng_quiet
  261446. .IP \(bu 2
  261447. 5e9107b970 parse pkgng output in quiet mode for >= 1.6.0
  261448. .UNINDENT
  261449. .IP \(bu 2
  261450. \fBPR\fP \fI\%#27686\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27476\fP to 2015.5
  261451. @ \fI2015\-10\-05 21:17:59 UTC\fP
  261452. .INDENT 2.0
  261453. .IP \(bu 2
  261454. \fBPR\fP \fI\%#27476\fP: (\fI\%belvedere\-trading\fP) fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP (refs: \fI\%#27686\fP)
  261455. .IP \(bu 2
  261456. 5b88c55cc3 Merge pull request \fI\%#27686\fP from rallytime/bp\-27476
  261457. .IP \(bu 2
  261458. 3e08d3de8a fix for: \fI\%https://github.com/saltstack/salt/issues/27373\fP
  261459. .UNINDENT
  261460. .IP \(bu 2
  261461. \fBISSUE\fP \fI\%#27655\fP: (\fI\%gracinet\fP) postgres_local_cache handling of success (refs: \fI\%#27656\fP)
  261462. .IP \(bu 2
  261463. \fBPR\fP \fI\%#27684\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27656\fP to 2015.5
  261464. @ \fI2015\-10\-05 21:17:55 UTC\fP
  261465. .INDENT 2.0
  261466. .IP \(bu 2
  261467. \fBPR\fP \fI\%#27656\fP: (\fI\%gracinet\fP) Fix \fI\%#27655\fP: handling of success in postgres_local_cache (refs: \fI\%#27684\fP)
  261468. .IP \(bu 2
  261469. f9ddd4647f Merge pull request \fI\%#27684\fP from rallytime/bp\-27656
  261470. .IP \(bu 2
  261471. d3780cba00 Fix \fI\%#27655\fP: handling of success in postgres_local_cache
  261472. .UNINDENT
  261473. .IP \(bu 2
  261474. \fBPR\fP \fI\%#27683\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27659\fP to 2015.5
  261475. @ \fI2015\-10\-05 21:17:30 UTC\fP
  261476. .INDENT 2.0
  261477. .IP \(bu 2
  261478. \fBPR\fP \fI\%#27659\fP: (\fI\%gnubyexample\fP) .pub as public key is what we should send to remote (refs: \fI\%#27683\fP)
  261479. .IP \(bu 2
  261480. 7ca6f854ff Merge pull request \fI\%#27683\fP from rallytime/bp\-27659
  261481. .IP \(bu 2
  261482. 84b6ee0c58 .pub as public key is what we should send to remote
  261483. .UNINDENT
  261484. .IP \(bu 2
  261485. \fBPR\fP \fI\%#27682\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27566\fP to 2015.5
  261486. @ \fI2015\-10\-05 21:17:26 UTC\fP
  261487. .INDENT 2.0
  261488. .IP \(bu 2
  261489. \fBPR\fP \fI\%#27566\fP: (\fI\%blueyed\fP) returners.local_cache: fix endless loop on OSError (refs: \fI\%#27682\fP)
  261490. .IP \(bu 2
  261491. a0f3e34656 Merge pull request \fI\%#27682\fP from rallytime/bp\-27566
  261492. .IP \(bu 2
  261493. 2a44255748 minor: fix/format doc for returners.local_cache.prep_jid
  261494. .IP \(bu 2
  261495. fd485e2396 returners.local_cache: fix endless loop on OSError
  261496. .UNINDENT
  261497. .IP \(bu 2
  261498. \fBISSUE\fP \fI\%#25813\fP: (\fI\%whytewolf\fP) debconf.set throwing exception in 2015.8.0rc2 (refs: \fI\%#25928\fP)
  261499. .IP \(bu 2
  261500. \fBPR\fP \fI\%#27681\fP: (\fI\%rallytime\fP) Back\-port \fI\%#25928\fP to 2015.5
  261501. @ \fI2015\-10\-05 21:17:19 UTC\fP
  261502. .INDENT 2.0
  261503. .IP \(bu 2
  261504. \fBPR\fP \fI\%#25928\fP: (\fI\%cachedout\fP) Fix stacktrace for non\-existant states (refs: \fI\%#27681\fP)
  261505. .IP \(bu 2
  261506. 0b9ba911c4 Merge pull request \fI\%#27681\fP from rallytime/bp\-25928
  261507. .IP \(bu 2
  261508. 17e1ddf137 Fix stacktrace for non\-existant states
  261509. .UNINDENT
  261510. .IP \(bu 2
  261511. \fBISSUE\fP \fI\%#27505\fP: (\fI\%silenius\fP) [FreeBSD] state.service + provider daemontools is broken (refs: \fI\%#27535\fP)
  261512. .IP \(bu 2
  261513. \fBPR\fP \fI\%#27680\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27535\fP to 2015.5
  261514. @ \fI2015\-10\-05 21:17:10 UTC\fP
  261515. .INDENT 2.0
  261516. .IP \(bu 2
  261517. \fBPR\fP \fI\%#27535\fP: (\fI\%silenius\fP) Issue 27505 (refs: \fI\%#27680\fP)
  261518. .IP \(bu 2
  261519. 23da0d316a Merge pull request \fI\%#27680\fP from rallytime/bp\-27535
  261520. .IP \(bu 2
  261521. 04aed5e105 Versionadded change since 2015.5.6 has already been tagged
  261522. .IP \(bu 2
  261523. 579f2646ba .. versionadded:: 2015.5.6
  261524. .IP \(bu 2
  261525. cbaf46e066 python <2.7 compability (pylint issue)
  261526. .IP \(bu 2
  261527. ecde499478 s/bin/b to avoid confusion with bin()
  261528. .IP \(bu 2
  261529. 4237c5db80 add a __virtual__ to check that daemontools is installed properly
  261530. .IP \(bu 2
  261531. 623935a1bc fix doc
  261532. .IP \(bu 2
  261533. 573de3abd6 fix pylint issue
  261534. .IP \(bu 2
  261535. 5eb6a30d40 fix pep8 issues
  261536. .IP \(bu 2
  261537. 298cf4f5c0 import missing logging module
  261538. .IP \(bu 2
  261539. fe0ad36609 log was missing
  261540. .IP \(bu 2
  261541. e457083465 s/systemd/FreeBSD
  261542. .IP \(bu 2
  261543. 3512712e89 forgot service name..
  261544. .IP \(bu 2
  261545. 8f193a7bcc fixes \fI\%#27505\fP
  261546. .UNINDENT
  261547. .IP \(bu 2
  261548. \fBPR\fP \fI\%#27442\fP: (\fI\%JaseFace\fP) Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item()
  261549. @ \fI2015\-10\-05 18:01:29 UTC\fP
  261550. .INDENT 2.0
  261551. .IP \(bu 2
  261552. 7d7b97eab6 Merge pull request \fI\%#27442\fP from JaseFace/fix\-27391\-for\-2015.5
  261553. .IP \(bu 2
  261554. bfbf63e1cc Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  261555. .UNINDENT
  261556. .IP \(bu 2
  261557. \fBISSUE\fP \fI\%#26320\fP: (\fI\%schlagify\fP) pkg & diskusage beacons not sending alerts (refs: \fI\%#27641\fP)
  261558. .IP \(bu 2
  261559. \fBPR\fP \fI\%#27641\fP: (\fI\%rallytime\fP) Gate the psutil import and add depends doc for diskusage beacon
  261560. @ \fI2015\-10\-05 17:00:48 UTC\fP
  261561. .INDENT 2.0
  261562. .IP \(bu 2
  261563. ccbba8656b Merge pull request \fI\%#27641\fP from rallytime/gate\-psutil\-diskusage
  261564. .IP \(bu 2
  261565. da2d93a3dd Gate the psutil import and add depends doc for diskusage beacon
  261566. .UNINDENT
  261567. .IP \(bu 2
  261568. \fBPR\fP \fI\%#27644\fP: (\fI\%rallytime\fP) Back\-port \fI\%#27640\fP to 2015.5
  261569. @ \fI2015\-10\-05 14:55:31 UTC\fP
  261570. .INDENT 2.0
  261571. .IP \(bu 2
  261572. \fBPR\fP \fI\%#27640\fP: (\fI\%stephen144\fP) fix typo in default pillar path (refs: \fI\%#27644\fP)
  261573. .IP \(bu 2
  261574. 09183994f9 Merge pull request \fI\%#27644\fP from rallytime/bp\-27640
  261575. .IP \(bu 2
  261576. a9063a9745 fix typo in default pillar path
  261577. .UNINDENT
  261578. .IP \(bu 2
  261579. \fBISSUE\fP \fI\%#27609\fP: (\fI\%rallytime\fP) GCE with various external_ip settings cause stacktraces (refs: \fI\%#27612\fP)
  261580. .IP \(bu 2
  261581. \fBPR\fP \fI\%#27612\fP: (\fI\%rallytime\fP) Fix GCE external_ip stacktraces in 2015.5
  261582. @ \fI2015\-10\-02 15:42:20 UTC\fP
  261583. .INDENT 2.0
  261584. .IP \(bu 2
  261585. 27fcecccbe Merge pull request \fI\%#27612\fP from rallytime/fix\-27609
  261586. .IP \(bu 2
  261587. 8dc047dc18 If external_up is set to None, don\(aqt stacktrace, just use the private ip.
  261588. .IP \(bu 2
  261589. 2ebf790f9f [salt\-cloud] gce: don\(aqt stacktrace if Ephemeral is given instead of ephemeral
  261590. .UNINDENT
  261591. .IP \(bu 2
  261592. \fBPR\fP \fI\%#27568\fP: (\fI\%jacobhammons\fP) regenerated man pages
  261593. @ \fI2015\-10\-01 15:39:37 UTC\fP
  261594. .INDENT 2.0
  261595. .IP \(bu 2
  261596. c84a1edc1b Merge pull request \fI\%#27568\fP from jacobhammons/man\-pages\-five
  261597. .IP \(bu 2
  261598. b59c03d20d regenerated man pages
  261599. .UNINDENT
  261600. .UNINDENT
  261601. .SS Salt 2015.5.8 Release Notes
  261602. .INDENT 0.0
  261603. .TP
  261604. .B release
  261605. 2015\-12\-01
  261606. .UNINDENT
  261607. .sp
  261608. Version 2015.5.8 is a bugfix release for 2015.5.0\&.
  261609. .SS Statistics
  261610. .INDENT 0.0
  261611. .IP \(bu 2
  261612. Total Merges: \fB17\fP
  261613. .IP \(bu 2
  261614. Total Issue References: \fB12\fP
  261615. .IP \(bu 2
  261616. Total PR References: \fB27\fP
  261617. .IP \(bu 2
  261618. Contributors: \fB12\fP (\fI\%MasterNayru\fP, \fI\%TronPaul\fP, \fI\%basepi\fP, \fI\%cachedout\fP, \fI\%cxmcc\fP, \fI\%jfindlay\fP, \fI\%kevinlondon\fP, \fI\%messa\fP, \fI\%rallytime\fP, \fI\%tehmaspc\fP, \fI\%twangboy\fP, \fI\%whiteinge\fP)
  261619. .UNINDENT
  261620. .SS Security Fix
  261621. .sp
  261622. \fBCVE\-2015\-8034\fP Saving \fBstate.sls\fP cache
  261623. data to disk with insecure permissions
  261624. .sp
  261625. This affects users of the \fBstate.sls\fP
  261626. function. The state run cache on the minion was being created with incorrect
  261627. permissions. This file could potentially contain sensitive data that was
  261628. inserted via jinja into the state SLS files. The permissions for this file are
  261629. now being set correctly. Thanks to \fI\%zmalone\fP for bringing this issue to our
  261630. attention.
  261631. .SS Changelog for v2015.5.7..v2015.5.8
  261632. .sp
  261633. \fIGenerated at: 2018\-05\-27 22:25:07 UTC\fP
  261634. .INDENT 0.0
  261635. .IP \(bu 2
  261636. \fBISSUE\fP \fI\%#28883\fP: (\fI\%ldelossa\fP) Issues running select states \- local variable \(aqsalt\(aq referenced before assignment (refs: \fI\%#29113\fP)
  261637. .IP \(bu 2
  261638. \fBPR\fP \fI\%#29164\fP: (\fI\%jfindlay\fP) Backport \fI\%#29113\fP
  261639. @ \fI2015\-11\-24 21:26:17 UTC\fP
  261640. .INDENT 2.0
  261641. .IP \(bu 2
  261642. \fBPR\fP \fI\%#29113\fP: (\fI\%TronPaul\fP) Kill unneeded import (refs: \fI\%#29164\fP)
  261643. .IP \(bu 2
  261644. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28839\fP, \fI\%#29113\fP)
  261645. .IP \(bu 2
  261646. a26c10a811 Merge pull request \fI\%#29164\fP from jfindlay/bp\-29113
  261647. .IP \(bu 2
  261648. 50fab35188 kill unneeded import
  261649. .UNINDENT
  261650. .IP \(bu 2
  261651. \fBPR\fP \fI\%#29138\fP: (\fI\%jfindlay\fP) add 2015.5.8 release notes
  261652. @ \fI2015\-11\-23 23:22:48 UTC\fP
  261653. .INDENT 2.0
  261654. .IP \(bu 2
  261655. 4f03196e7d Merge pull request \fI\%#29138\fP from jfindlay/2015.5
  261656. .IP \(bu 2
  261657. be045f5cb1 add 2015.5.8 release notes
  261658. .UNINDENT
  261659. .IP \(bu 2
  261660. \fBISSUE\fP \fI\%#29110\fP: (\fI\%mohshami\fP) 2015.8.2 broke orchestration (refs: \fI\%#29122\fP)
  261661. .IP \(bu 2
  261662. \fBISSUE\fP \fI\%#28010\fP: (\fI\%vakulich\fP) Error "KeyError: \(aqret\(aq" appeared during salt.state run in orchestrate module if minion had an exception (refs: \fI\%#28012\fP)
  261663. .IP \(bu 2
  261664. \fBPR\fP \fI\%#29128\fP: (\fI\%cachedout\fP) Set a safer default value for ret in saltmod
  261665. @ \fI2015\-11\-23 17:07:40 UTC\fP
  261666. .INDENT 2.0
  261667. .IP \(bu 2
  261668. \fBPR\fP \fI\%#29122\fP: (\fI\%cachedout\fP) Fix broken state orchestration (refs: \fI\%#29128\fP)
  261669. .IP \(bu 2
  261670. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output (refs: \fI\%#29122\fP)
  261671. .IP \(bu 2
  261672. 219367a23d Merge pull request \fI\%#29128\fP from cachedout/tweak_29122
  261673. .IP \(bu 2
  261674. b08858b040 Missed check
  261675. .IP \(bu 2
  261676. 584efe81ee Set a safer default value for ret in saltmod
  261677. .UNINDENT
  261678. .IP \(bu 2
  261679. \fBISSUE\fP \fI\%#29110\fP: (\fI\%mohshami\fP) 2015.8.2 broke orchestration (refs: \fI\%#29122\fP)
  261680. .IP \(bu 2
  261681. \fBISSUE\fP \fI\%#28010\fP: (\fI\%vakulich\fP) Error "KeyError: \(aqret\(aq" appeared during salt.state run in orchestrate module if minion had an exception (refs: \fI\%#28012\fP)
  261682. .IP \(bu 2
  261683. \fBPR\fP \fI\%#29122\fP: (\fI\%cachedout\fP) Fix broken state orchestration (refs: \fI\%#29128\fP)
  261684. @ \fI2015\-11\-23 16:24:18 UTC\fP
  261685. .INDENT 2.0
  261686. .IP \(bu 2
  261687. \fBPR\fP \fI\%#28012\fP: (\fI\%rallytime\fP) Clean up stack trace when something goes wrong with minion output (refs: \fI\%#29122\fP)
  261688. .IP \(bu 2
  261689. 2250a36647 Merge pull request \fI\%#29122\fP from cachedout/issue_29110
  261690. .IP \(bu 2
  261691. 4b9302d794 Fix broken state orchestration
  261692. .UNINDENT
  261693. .IP \(bu 2
  261694. \fBPR\fP \fI\%#29096\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29093\fP to 2015.5
  261695. @ \fI2015\-11\-22 17:02:51 UTC\fP
  261696. .INDENT 2.0
  261697. .IP \(bu 2
  261698. \fBPR\fP \fI\%#29093\fP: (\fI\%cxmcc\fP) Compare gem versions as a string. (refs: \fI\%#29096\fP)
  261699. .IP \(bu 2
  261700. 200e771efb Merge pull request \fI\%#29096\fP from rallytime/bp\-29093
  261701. .IP \(bu 2
  261702. f5734423a4 Compare gem versions as a string.
  261703. .UNINDENT
  261704. .IP \(bu 2
  261705. \fBPR\fP \fI\%#29084\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29055\fP to 2015.5
  261706. @ \fI2015\-11\-20 20:57:54 UTC\fP
  261707. .INDENT 2.0
  261708. .IP \(bu 2
  261709. \fBPR\fP \fI\%#29055\fP: (\fI\%cachedout\fP) Add section to style guide (refs: \fI\%#29084\fP)
  261710. .IP \(bu 2
  261711. d8a2018bc8 Merge pull request \fI\%#29084\fP from rallytime/bp\-29055
  261712. .IP \(bu 2
  261713. 52e650aed9 Add section to style guide
  261714. .UNINDENT
  261715. .IP \(bu 2
  261716. \fBPR\fP \fI\%#29083\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29053\fP to 2015.5
  261717. @ \fI2015\-11\-20 20:57:38 UTC\fP
  261718. .INDENT 2.0
  261719. .IP \(bu 2
  261720. \fBPR\fP \fI\%#29053\fP: (\fI\%kevinlondon\fP) Update rabbitmq_user.py (refs: \fI\%#29083\fP)
  261721. .IP \(bu 2
  261722. b5cff1a351 Merge pull request \fI\%#29083\fP from rallytime/bp\-29053
  261723. .IP \(bu 2
  261724. f1884de0e7 Update rabbitmq_user.py
  261725. .UNINDENT
  261726. .IP \(bu 2
  261727. \fBISSUE\fP \fI\%#28928\fP: (\fI\%twangboy\fP) Fix user.present 2015.5 (refs: \fI\%#28932\fP)
  261728. .IP \(bu 2
  261729. \fBPR\fP \fI\%#28932\fP: (\fI\%twangboy\fP) Fixed user.present / user.absent in windows
  261730. @ \fI2015\-11\-18 21:45:53 UTC\fP
  261731. .INDENT 2.0
  261732. .IP \(bu 2
  261733. \fBPR\fP \fI\%#28627\fP: (\fI\%twangboy\fP) Backport win_useradd (refs: \fI\%#28932\fP)
  261734. .IP \(bu 2
  261735. b3e3bebef0 Merge pull request \fI\%#28932\fP from twangboy/fix_28928
  261736. .IP \(bu 2
  261737. 0653a04887 Fixed user.present / user.absent in windows
  261738. .UNINDENT
  261739. .IP \(bu 2
  261740. \fBISSUE\fP \fI\%#26911\fP: (\fI\%dsumsky\fP) file.manage state does not work with Amazon S3 URLs on Windows (refs: \fI\%#28630\fP)
  261741. .IP \(bu 2
  261742. \fBISSUE\fP \fI\%#13850\fP: (\fI\%ryan\-lane\fP) s3:// urls in file.managed (and likely elsewhere) require s3.key and s3.keyid to be in minion config (refs: \fI\%#28630\fP)
  261743. .IP \(bu 2
  261744. \fBPR\fP \fI\%#29011\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28630\fP to 2015.5
  261745. @ \fI2015\-11\-18 17:50:05 UTC\fP
  261746. .INDENT 2.0
  261747. .IP \(bu 2
  261748. \fBPR\fP \fI\%#28630\fP: (\fI\%messa\fP) Use S3 credentials from Pillar (refs: \fI\%#29011\fP)
  261749. .IP \(bu 2
  261750. a2e4a227e0 Merge pull request \fI\%#29011\fP from rallytime/bp\-28630
  261751. .IP \(bu 2
  261752. 7baccc1b05 Lint \- newline before def
  261753. .IP \(bu 2
  261754. 9e5c16d4da Reading S3 credentials from Pillar
  261755. .IP \(bu 2
  261756. a3216f813d Fixed requests HTTPError handler, it was still in urllib2 style
  261757. .UNINDENT
  261758. .IP \(bu 2
  261759. \fBPR\fP \fI\%#28982\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  261760. @ \fI2015\-11\-18 00:49:32 UTC\fP
  261761. .INDENT 2.0
  261762. .IP \(bu 2
  261763. 1a4cd6002f Merge pull request \fI\%#28982\fP from basepi/merge\-forward\-2015.5
  261764. .IP \(bu 2
  261765. bfbb109fbd Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  261766. .IP \(bu 2
  261767. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  261768. .IP \(bu 2
  261769. 215b26c06f Revert \fI\%#28740\fP
  261770. .UNINDENT
  261771. .IP \(bu 2
  261772. \fBISSUE\fP \fI\%#28947\fP: (\fI\%dmyerscough\fP) sdb modules are not synced out (refs: \fI\%#28949\fP)
  261773. .IP \(bu 2
  261774. \fBPR\fP \fI\%#28949\fP: (\fI\%whiteinge\fP) Add sync_sdb execution function
  261775. @ \fI2015\-11\-17 15:35:38 UTC\fP
  261776. .INDENT 2.0
  261777. .IP \(bu 2
  261778. edd26d763a Merge pull request \fI\%#28949\fP from whiteinge/sync\-sdb
  261779. .IP \(bu 2
  261780. b0ec9ab25b Add sync_sdb execution function
  261781. .UNINDENT
  261782. .IP \(bu 2
  261783. \fBISSUE\fP \fI\%#28888\fP: (\fI\%twangboy\fP) Fix file.comment (refs: \fI\%#28930\fP)
  261784. .IP \(bu 2
  261785. \fBPR\fP \fI\%#28930\fP: (\fI\%twangboy\fP) Added missing import mmap required by file.py
  261786. @ \fI2015\-11\-16 23:17:23 UTC\fP
  261787. .INDENT 2.0
  261788. .IP \(bu 2
  261789. 43da1bc4ce Merge pull request \fI\%#28930\fP from twangboy/fix_28888
  261790. .IP \(bu 2
  261791. f5c489eaad Added missing import mmap required by file.py
  261792. .UNINDENT
  261793. .IP \(bu 2
  261794. \fBPR\fP \fI\%#28908\fP: (\fI\%rallytime\fP) A couple of spelling fixes for doc conventions page.
  261795. @ \fI2015\-11\-16 02:29:35 UTC\fP
  261796. .INDENT 2.0
  261797. .IP \(bu 2
  261798. 2488b873b8 Merge pull request \fI\%#28908\fP from rallytime/doc\-convention\-spelling
  261799. .IP \(bu 2
  261800. 60e6eddb77 A couple of spelling fixes for doc conventions page.
  261801. .UNINDENT
  261802. .IP \(bu 2
  261803. \fBISSUE\fP \fI\%#22442\fP: (\fI\%allanliu\fP) rest_cherrypy /keys URL does not handle JSON requests (refs: \fI\%#28902\fP)
  261804. .IP \(bu 2
  261805. \fBPR\fP \fI\%#28902\fP: (\fI\%whiteinge\fP) Fix missing JSON support for /keys endpoint
  261806. @ \fI2015\-11\-15 15:36:05 UTC\fP
  261807. .INDENT 2.0
  261808. .IP \(bu 2
  261809. 827a1ae020 Merge pull request \fI\%#28902\fP from whiteinge/json\-keys
  261810. .IP \(bu 2
  261811. 9745903301 Fix missing JSON support for /keys endpoint
  261812. .UNINDENT
  261813. .IP \(bu 2
  261814. \fBPR\fP \fI\%#28897\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28873\fP to 2015.5
  261815. @ \fI2015\-11\-15 00:43:35 UTC\fP
  261816. .INDENT 2.0
  261817. .IP \(bu 2
  261818. \fBPR\fP \fI\%#28873\fP: (\fI\%tehmaspc\fP) Fix salt\-cloud help output typo (refs: \fI\%#28897\fP)
  261819. .IP \(bu 2
  261820. d23bd49130 Merge pull request \fI\%#28897\fP from rallytime/bp\-28873
  261821. .IP \(bu 2
  261822. 077e671ead Fix salt\-cloud help output typo
  261823. .UNINDENT
  261824. .IP \(bu 2
  261825. \fBISSUE\fP \fI\%#28870\fP: (\fI\%basepi\fP) mdadm commands failing (refs: \fI\%#28871\fP)
  261826. .IP \(bu 2
  261827. \fBPR\fP \fI\%#28871\fP: (\fI\%basepi\fP) [2015.5] Fix command generation for mdadm.assemble
  261828. @ \fI2015\-11\-13 21:54:33 UTC\fP
  261829. .INDENT 2.0
  261830. .IP \(bu 2
  261831. a9dc8b6ca6 Merge pull request \fI\%#28871\fP from basepi/mdadm.fix.28870
  261832. .IP \(bu 2
  261833. 323bc2d2ac Fix command generation for mdadm.assemble
  261834. .UNINDENT
  261835. .UNINDENT
  261836. .SS Salt 2015.5.9 Release Notes
  261837. .INDENT 0.0
  261838. .TP
  261839. .B release
  261840. 2016\-01\-11
  261841. .UNINDENT
  261842. .sp
  261843. Version 2015.5.9 is a bugfix release for 2015.5.0\&.
  261844. .SS Statistics
  261845. .INDENT 0.0
  261846. .IP \(bu 2
  261847. Total Merges: \fB45\fP
  261848. .IP \(bu 2
  261849. Total Issue References: \fB21\fP
  261850. .IP \(bu 2
  261851. Total PR References: \fB48\fP
  261852. .IP \(bu 2
  261853. Contributors: \fB21\fP (\fI\%abednarik\fP, \fI\%aletourneau\fP, \fI\%attiasr\fP, \fI\%basepi\fP, \fI\%cachedout\fP, \fI\%clan\fP, \fI\%clarkperkins\fP, \fI\%cro\fP, \fI\%dmyerscough\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP, \fI\%jsutton\fP, \fI\%justinta\fP, \fI\%lorengordon\fP, \fI\%markckimball\fP, \fI\%mpreziuso\fP, \fI\%rallytime\fP, \fI\%terminalmage\fP, \fI\%titilambert\fP, \fI\%twangboy\fP, \fI\%zmalone\fP)
  261854. .UNINDENT
  261855. .SS Changelog for v2015.5.8..v2015.5.9
  261856. .sp
  261857. \fIGenerated at: 2018\-05\-27 22:31:06 UTC\fP
  261858. .INDENT 0.0
  261859. .IP \(bu 2
  261860. \fBPR\fP \fI\%#30248\fP: (\fI\%jfindlay\fP) add 2015.5.9 release notes
  261861. @ \fI2016\-01\-08 23:13:10 UTC\fP
  261862. .INDENT 2.0
  261863. .IP \(bu 2
  261864. 92889db638 Merge pull request \fI\%#30248\fP from jfindlay/2015.5
  261865. .IP \(bu 2
  261866. 741f7aba31 add 2015.5.9 release notes
  261867. .UNINDENT
  261868. .IP \(bu 2
  261869. \fBPR\fP \fI\%#30237\fP: (\fI\%jacobhammons\fP) Updated man pages and doc version for 2015.5.9
  261870. @ \fI2016\-01\-08 18:10:05 UTC\fP
  261871. .INDENT 2.0
  261872. .IP \(bu 2
  261873. 7a329d89d7 Merge pull request \fI\%#30237\fP from jacobhammons/man\-pages\-prev
  261874. .IP \(bu 2
  261875. 2431c4c5c3 Updated man page and doc conf.py copyright year to 2016
  261876. .IP \(bu 2
  261877. fe3da1c174 Updated man pages and doc version for 2015.5.9
  261878. .UNINDENT
  261879. .IP \(bu 2
  261880. \fBPR\fP \fI\%#30207\fP: (\fI\%rallytime\fP) Use correct spacing in rabbitmq state examples
  261881. @ \fI2016\-01\-07 18:37:35 UTC\fP
  261882. .INDENT 2.0
  261883. .IP \(bu 2
  261884. 2c0b725924 Merge pull request \fI\%#30207\fP from rallytime/rabbitmq_states_doc_fix
  261885. .IP \(bu 2
  261886. 8d48c24182 Use correct spacing in rabbitmq state examples
  261887. .UNINDENT
  261888. .IP \(bu 2
  261889. \fBPR\fP \fI\%#30191\fP: (\fI\%jacobhammons\fP) Updated doc site banners
  261890. @ \fI2016\-01\-06 22:37:40 UTC\fP
  261891. .INDENT 2.0
  261892. .IP \(bu 2
  261893. b49cf910f4 Merge pull request \fI\%#30191\fP from jacobhammons/banner\-prev
  261894. .IP \(bu 2
  261895. c3390955b0 Updated doc site banners
  261896. .UNINDENT
  261897. .IP \(bu 2
  261898. \fBISSUE\fP \fI\%#29633\fP: (\fI\%twellspring\fP) user.present does not modify home directory (refs: \fI\%#30125\fP)
  261899. .IP \(bu 2
  261900. \fBPR\fP \fI\%#30125\fP: (\fI\%abednarik\fP) Update user home event when createhome is set to False
  261901. @ \fI2016\-01\-05 18:15:38 UTC\fP
  261902. .INDENT 2.0
  261903. .IP \(bu 2
  261904. 9363d6f5b6 Merge pull request \fI\%#30125\fP from abednarik/update_user_home
  261905. .IP \(bu 2
  261906. 56544a77f6 Update user home event when createhome is set to False
  261907. .UNINDENT
  261908. .IP \(bu 2
  261909. \fBISSUE\fP \fI\%#10155\fP: (\fI\%jhenry82\fP) Option to select a random master in multi\-master mode (refs: \fI\%#30127\fP)
  261910. .IP \(bu 2
  261911. \fBPR\fP \fI\%#30127\fP: (\fI\%jsutton\fP) Updating documentation and example minion config for random_master/master_shuffle.
  261912. @ \fI2016\-01\-04 19:30:50 UTC\fP
  261913. .INDENT 2.0
  261914. .IP \(bu 2
  261915. 1a5d585d91 Merge pull request \fI\%#30127\fP from jsutton/clarify\-documenation\-for\-random_master
  261916. .IP \(bu 2
  261917. 01dbf385ef Adding random_master to reference and updating master_shuffle. Adding master_shuffle to the minion example config file as it is needed for multi\-master PKI.
  261918. .UNINDENT
  261919. .IP \(bu 2
  261920. \fBPR\fP \fI\%#30110\fP: (\fI\%markckimball\fP) Fixed flag sent to salt.utils.http in order for verify_ssl to work correctly
  261921. @ \fI2015\-12\-31 21:17:53 UTC\fP
  261922. .INDENT 2.0
  261923. .IP \(bu 2
  261924. 28b1bbbe77 Merge pull request \fI\%#30110\fP from markckimball/fix\-verify_ssl\-in\-joyent\-cloud
  261925. .IP \(bu 2
  261926. e1c08cb269 Fixed flag sent to salt.utils.http in order for verify_ssl to work appropriately.
  261927. .UNINDENT
  261928. .IP \(bu 2
  261929. \fBPR\fP \fI\%#30093\fP: (\fI\%zmalone\fP) Noting that file_roots and "state tree" should both be avoided
  261930. @ \fI2015\-12\-30 22:40:05 UTC\fP
  261931. .INDENT 2.0
  261932. .IP \(bu 2
  261933. 040412b0b1 Merge pull request \fI\%#30093\fP from zmalone/pillar\-notes
  261934. .IP \(bu 2
  261935. cfbfd58afe Noting that file_roots and "state tree" should both be avoided, because in some environments, the actual states show up another level down. Adding notes about why this is undesirable.
  261936. .UNINDENT
  261937. .IP \(bu 2
  261938. \fBISSUE\fP \fI\%#28120\fP: (\fI\%jtylers\fP) Clear text passwords (refs: \fI\%#30097\fP)
  261939. .IP \(bu 2
  261940. \fBPR\fP \fI\%#30097\fP: (\fI\%cachedout\fP) Note concern about cleartext password in docs for shadow.gen_password
  261941. @ \fI2015\-12\-30 22:37:33 UTC\fP
  261942. .INDENT 2.0
  261943. .IP \(bu 2
  261944. 25edefc93a Merge pull request \fI\%#30097\fP from cachedout/note_on_password_process_list
  261945. .IP \(bu 2
  261946. 58aec884ef Note concern about cleartext password in docs for shadow.gen_password
  261947. .UNINDENT
  261948. .IP \(bu 2
  261949. \fBPR\fP \fI\%#30089\fP: (\fI\%mpreziuso\fP) Fixes terminology and adds more accurate details about the algorithms
  261950. @ \fI2015\-12\-30 20:02:18 UTC\fP
  261951. .INDENT 2.0
  261952. .IP \(bu 2
  261953. 6b1c3a6bf2 Merge pull request \fI\%#30089\fP from mpreziuso/patch\-1
  261954. .IP \(bu 2
  261955. 50533add40 Fixes terminology and adds more accurate details about the algorithms
  261956. .UNINDENT
  261957. .IP \(bu 2
  261958. \fBISSUE\fP \fI\%#29921\fP: (\fI\%anlutro\fP) pygit 0.21 not fully supported? (refs: \fI\%#30086\fP)
  261959. .IP \(bu 2
  261960. \fBPR\fP \fI\%#30086\fP: (\fI\%cachedout\fP) Document that gitfs needs recent libs
  261961. @ \fI2015\-12\-30 19:26:05 UTC\fP
  261962. .INDENT 2.0
  261963. .IP \(bu 2
  261964. 200d09385d Merge pull request \fI\%#30086\fP from cachedout/issue_29921
  261965. .IP \(bu 2
  261966. 8c29e2dd6a Document that gitfs needs recent libs
  261967. .UNINDENT
  261968. .IP \(bu 2
  261969. \fBISSUE\fP \fI\%#27835\fP: (\fI\%bertjwregeer\fP) [FreeBSD] salt\-ssh hangs forever (refs: \fI\%#30070\fP)
  261970. .IP \(bu 2
  261971. \fBPR\fP \fI\%#30070\fP: (\fI\%cachedout\fP) Add documentation on debugging salt\-ssh
  261972. @ \fI2015\-12\-29 23:00:06 UTC\fP
  261973. .INDENT 2.0
  261974. .IP \(bu 2
  261975. 404414bf57 Merge pull request \fI\%#30070\fP from cachedout/issue_27835
  261976. .IP \(bu 2
  261977. 60431e342a Add documentation on debugging salt\-ssh
  261978. .UNINDENT
  261979. .IP \(bu 2
  261980. \fBPR\fP \fI\%#30059\fP: (\fI\%mpreziuso\fP) Fixes wrong function scope
  261981. @ \fI2015\-12\-29 16:12:06 UTC\fP
  261982. .INDENT 2.0
  261983. .IP \(bu 2
  261984. 84db12212d Merge pull request \fI\%#30059\fP from mpreziuso/patch\-1
  261985. .IP \(bu 2
  261986. 1cb1c2da07 Fixes wrong function scope
  261987. .UNINDENT
  261988. .IP \(bu 2
  261989. \fBPR\fP \fI\%#30025\fP: (\fI\%justinta\fP) Skipping some Boto tests until resolved moto issue
  261990. @ \fI2015\-12\-28 15:21:45 UTC\fP
  261991. .INDENT 2.0
  261992. .IP \(bu 2
  261993. \fBPR\fP \fI\%#29725\fP: (\fI\%cachedout\fP) Disable some boto tests per resolution of moto issue (refs: \fI\%#30025\fP)
  261994. .IP \(bu 2
  261995. 1c6c9b1a06 Merge pull request \fI\%#30025\fP from jtand/boto_tests
  261996. .IP \(bu 2
  261997. e706642152 Skipping some Boto tests until resolved moto issue
  261998. .UNINDENT
  261999. .IP \(bu 2
  262000. \fBISSUE\fP \fI\%#28956\fP: (\fI\%racooper\fP) Netscaler module doc enhancements (refs: \fI\%#29949\fP)
  262001. .IP \(bu 2
  262002. \fBPR\fP \fI\%#29949\fP: (\fI\%aletourneau\fP) Enhanced netscaler docstring
  262003. @ \fI2015\-12\-22 20:26:52 UTC\fP
  262004. .INDENT 2.0
  262005. .IP \(bu 2
  262006. 0f91021c59 Merge pull request \fI\%#29949\fP from aletourneau/2015.5
  262007. .IP \(bu 2
  262008. cf855fe262 Fixed trailing white spaces
  262009. .IP \(bu 2
  262010. 864801e002 fixed version
  262011. .IP \(bu 2
  262012. 041d9346c4 Enhanced netscaler docstring
  262013. .UNINDENT
  262014. .IP \(bu 2
  262015. \fBPR\fP \fI\%#29941\fP: (\fI\%cachedout\fP) Fix spelling error in boto_vpc
  262016. @ \fI2015\-12\-22 15:49:54 UTC\fP
  262017. .INDENT 2.0
  262018. .IP \(bu 2
  262019. 229d3eb60b Merge pull request \fI\%#29941\fP from cachedout/boto_spelling
  262020. .IP \(bu 2
  262021. b11bfd07b8 Fix spelling error in boto_vpc
  262022. .UNINDENT
  262023. .IP \(bu 2
  262024. \fBISSUE\fP \fI\%#29880\fP: (\fI\%githubcdr\fP) Salt pkg.uptodate fails on Arch linux (refs: \fI\%#29908\fP)
  262025. .IP \(bu 2
  262026. \fBPR\fP \fI\%#29908\fP: (\fI\%cachedout\fP) Allow kwargs to be passed to pacman provide for update func
  262027. @ \fI2015\-12\-22 15:04:18 UTC\fP
  262028. .INDENT 2.0
  262029. .IP \(bu 2
  262030. 69c5ada636 Merge pull request \fI\%#29908\fP from cachedout/issue_29880
  262031. .IP \(bu 2
  262032. 4cd77b4118 Allow kwargs to be passed to pacman provide for update func
  262033. .UNINDENT
  262034. .IP \(bu 2
  262035. \fBISSUE\fP \fI\%#27056\fP: (\fI\%oogali\fP) pkgng provider on FreeBSD does not do BATCH=yes (refs: \fI\%#29909\fP)
  262036. .IP \(bu 2
  262037. \fBPR\fP \fI\%#29909\fP: (\fI\%abednarik\fP) FreeBSD pkgng fix for non\-interactive install.
  262038. @ \fI2015\-12\-22 15:03:50 UTC\fP
  262039. .INDENT 2.0
  262040. .IP \(bu 2
  262041. ad0de4d563 Merge pull request \fI\%#29909\fP from abednarik/freebsd_pkgng_non_interactive_fix
  262042. .IP \(bu 2
  262043. 8ac213001a FreeBSD pkgng fix for non\-interactive install.
  262044. .UNINDENT
  262045. .IP \(bu 2
  262046. \fBISSUE\fP \fI\%#24698\fP: (\fI\%cmhe\fP) docker.installed not working (salt 2015.5.0, docker 1.6.2, dockerpy 0.5.3) (refs: \fI\%#29730\fP)
  262047. .IP \(bu 2
  262048. \fBPR\fP \fI\%#29730\fP: (\fI\%rallytime\fP) Update docker\-py version requirement to 0.6.0 for dockerio.py files
  262049. @ \fI2015\-12\-16 14:44:40 UTC\fP
  262050. .INDENT 2.0
  262051. .IP \(bu 2
  262052. f43f3d166c Merge pull request \fI\%#29730\fP from rallytime/fix\-24698
  262053. .IP \(bu 2
  262054. 120fd5fdf0 Update docker\-py version requirement to 0.6.0 for dockerio.py files
  262055. .UNINDENT
  262056. .IP \(bu 2
  262057. \fBISSUE\fP \fI\%#23343\fP: (\fI\%micaelbergeron\fP) npm state ignore the requested version (refs: \fI\%#29715\fP)
  262058. .IP \(bu 2
  262059. \fBISSUE\fP \fI\%#18647\fP: (\fI\%hundt\fP) Version number in npm state name does not result in correct version being installed (refs: \fI\%#29715\fP)
  262060. .IP \(bu 2
  262061. \fBPR\fP \fI\%#29715\fP: (\fI\%rallytime\fP) Install correct package version, if provided, for npm state.
  262062. @ \fI2015\-12\-15 23:19:45 UTC\fP
  262063. .INDENT 2.0
  262064. .IP \(bu 2
  262065. c393a4175a Merge pull request \fI\%#29715\fP from rallytime/fix\-23343
  262066. .IP \(bu 2
  262067. a0ed857c37 Install correct package version, if provided, for npm state.
  262068. .UNINDENT
  262069. .IP \(bu 2
  262070. \fBPR\fP \fI\%#29721\fP: (\fI\%terminalmage\fP) Fix display of multiline strings when iterating over a list
  262071. @ \fI2015\-12\-15 22:16:10 UTC\fP
  262072. .INDENT 2.0
  262073. .IP \(bu 2
  262074. 1310afbbc2 Merge pull request \fI\%#29721\fP from terminalmage/nested\-output\-multiline\-fix
  262075. .IP \(bu 2
  262076. 761be9cb93 Fix display of multiline strings when iterating over a list
  262077. .UNINDENT
  262078. .IP \(bu 2
  262079. \fBISSUE\fP \fI\%#29488\fP: (\fI\%Shad0w1nk\fP) salt.cloud.clouds.vmware.revert_to_snapshot crash when using the default value (refs: \fI\%#29646\fP)
  262080. .IP \(bu 2
  262081. \fBPR\fP \fI\%#29646\fP: (\fI\%rallytime\fP) Don\(aqt stacktrace on kwargs.get if kwargs=None
  262082. @ \fI2015\-12\-15 19:02:58 UTC\fP
  262083. .INDENT 2.0
  262084. .IP \(bu 2
  262085. 52cc07cec9 Merge pull request \fI\%#29646\fP from rallytime/fix\-29488
  262086. .IP \(bu 2
  262087. c5fa9e9351 Don\(aqt stacktrace on kwargs.get if kwargs=None
  262088. .UNINDENT
  262089. .IP \(bu 2
  262090. \fBISSUE\fP \fI\%#29661\fP: (\fI\%mosuowhq\fP) bug report when creating VM in /salt/cloud/clouds/nova.py (refs: \fI\%#29673\fP)
  262091. .IP \(bu 2
  262092. \fBPR\fP \fI\%#29673\fP: (\fI\%rallytime\fP) Default value should be False and not \(aqFalse\(aq
  262093. @ \fI2015\-12\-14 18:08:44 UTC\fP
  262094. .INDENT 2.0
  262095. .IP \(bu 2
  262096. f606c23ea8 Merge pull request \fI\%#29673\fP from rallytime/fix\-29661
  262097. .IP \(bu 2
  262098. e4af7a1157 Default value should be False and not \(aqFalse\(aq
  262099. .UNINDENT
  262100. .IP \(bu 2
  262101. \fBPR\fP \fI\%#29527\fP: (\fI\%jfindlay\fP) 2015.5.7 notes: add note about not being released
  262102. @ \fI2015\-12\-08 21:08:26 UTC\fP
  262103. .INDENT 2.0
  262104. .IP \(bu 2
  262105. f77c8e7baf Merge pull request \fI\%#29527\fP from jfindlay/2015.5
  262106. .IP \(bu 2
  262107. 1a8044f0c9 2015.5.7 notes: add note about not being released
  262108. .UNINDENT
  262109. .IP \(bu 2
  262110. \fBPR\fP \fI\%#29539\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  262111. @ \fI2015\-12\-08 19:14:51 UTC\fP
  262112. .INDENT 2.0
  262113. .IP \(bu 2
  262114. 867d550271 Merge pull request \fI\%#29539\fP from basepi/merge\-forward\-2015.5
  262115. .IP \(bu 2
  262116. 2c9c4ba430 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  262117. .IP \(bu 2
  262118. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  262119. .INDENT 2.0
  262120. .IP \(bu 2
  262121. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  262122. .UNINDENT
  262123. .UNINDENT
  262124. .IP \(bu 2
  262125. \fBISSUE\fP \fI\%#12072\fP: (\fI\%vk00226\fP) Passing user\-data when provisioning ec2 instances (refs: \fI\%#29504\fP)
  262126. .IP \(bu 2
  262127. \fBPR\fP \fI\%#29504\fP: (\fI\%rallytime\fP) Document userdata_file option for EC2 driver
  262128. @ \fI2015\-12\-08 16:54:33 UTC\fP
  262129. .INDENT 2.0
  262130. .IP \(bu 2
  262131. de7f3d5a59 Merge pull request \fI\%#29504\fP from rallytime/fix\-12072
  262132. .IP \(bu 2
  262133. 8357c95dc2 Document userdata_file option for EC2 driver
  262134. .UNINDENT
  262135. .IP \(bu 2
  262136. \fBISSUE\fP \fI\%#29101\fP: (\fI\%jessbreckenridge\fP) Salt\-cloud 2015.8.0 \- del_*_vols_on_destroy does not work according to docs (refs: \fI\%#29507\fP)
  262137. .IP \(bu 2
  262138. \fBPR\fP \fI\%#29507\fP: (\fI\%rallytime\fP) Switch volumes and del_*_on_destroy example ordering
  262139. @ \fI2015\-12\-08 16:50:11 UTC\fP
  262140. .INDENT 2.0
  262141. .IP \(bu 2
  262142. 65deba8bb5 Merge pull request \fI\%#29507\fP from rallytime/ec2\-doc\-fix
  262143. .IP \(bu 2
  262144. 90b4823bc2 Switch volumes and del_*_on_destroy example ordering
  262145. .UNINDENT
  262146. .IP \(bu 2
  262147. \fBISSUE\fP \fI\%#28862\fP: (\fI\%trevor\-h\fP) salt\-cloud uppercase timeout options no longer recognized (refs: \fI\%#29469\fP)
  262148. .IP \(bu 2
  262149. \fBPR\fP \fI\%#29469\fP: (\fI\%abednarik\fP) Added Documentation note in salt cloud.
  262150. @ \fI2015\-12\-07 18:27:46 UTC\fP
  262151. .INDENT 2.0
  262152. .IP \(bu 2
  262153. 0918c9294f Merge pull request \fI\%#29469\fP from abednarik/doc_note_for_saltcloud_connection_timeout
  262154. .IP \(bu 2
  262155. 8e5c3e366a Added Documentation note in salt cloud.
  262156. .UNINDENT
  262157. .IP \(bu 2
  262158. \fBPR\fP \fI\%#29461\fP: (\fI\%dmyerscough\fP) Fix resource limits, systemd sets the default too small
  262159. @ \fI2015\-12\-05 16:26:34 UTC\fP
  262160. .INDENT 2.0
  262161. .IP \(bu 2
  262162. e43c7c05a6 Merge pull request \fI\%#29461\fP from dmyerscough/fix\-resource\-limits
  262163. .IP \(bu 2
  262164. 85a8a3b033 Fix resource limits, systemd sets the default number of open files to 4096 causing te master to complain about limits when you have a large number of keys
  262165. .UNINDENT
  262166. .IP \(bu 2
  262167. \fBISSUE\fP \fI\%#28526\fP: (\fI\%clarkperkins\fP) yumpkg.installed broken in salt v2015.8.1 on CentOS 6 minions (refs: \fI\%#28656\fP)
  262168. .IP \(bu 2
  262169. \fBPR\fP \fI\%#29439\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28656\fP to 2015.5
  262170. @ \fI2015\-12\-04 22:56:17 UTC\fP
  262171. .INDENT 2.0
  262172. .IP \(bu 2
  262173. \fBPR\fP \fI\%#28656\fP: (\fI\%clarkperkins\fP) \fI\%#28526\fP fixed yumpkg module issue with pkg.installed (refs: \fI\%#29439\fP)
  262174. .IP \(bu 2
  262175. 730f02fbdf Merge pull request \fI\%#29439\fP from rallytime/bp\-28656
  262176. .IP \(bu 2
  262177. 2f11bb021f \fI\%#28526\fP fixed yumpkg module
  262178. .UNINDENT
  262179. .IP \(bu 2
  262180. \fBPR\fP \fI\%#29418\fP: (\fI\%jacobhammons\fP) Added CVE 2015\-8034 to 2015.5.8 release notes
  262181. @ \fI2015\-12\-04 03:02:53 UTC\fP
  262182. .INDENT 2.0
  262183. .IP \(bu 2
  262184. 197210d52e Merge pull request \fI\%#29418\fP from jacobhammons/dot8
  262185. .IP \(bu 2
  262186. 4f51a737f9 Added CVE 2015\-8034 to 2015.5.8 release notes
  262187. .UNINDENT
  262188. .IP \(bu 2
  262189. \fBPR\fP \fI\%#29389\fP: (\fI\%jacobhammons\fP) updated version numbers in documentation
  262190. @ \fI2015\-12\-03 16:27:23 UTC\fP
  262191. .INDENT 2.0
  262192. .IP \(bu 2
  262193. b3452f2a1a Merge pull request \fI\%#29389\fP from jacobhammons/2015.5
  262194. .IP \(bu 2
  262195. 824721ff36 updated version numbers
  262196. .UNINDENT
  262197. .IP \(bu 2
  262198. \fBISSUE\fP \fI\%#26898\fP: (\fI\%twangboy\fP) Symlinks in Windows (2015.8) (refs: \fI\%#28191\fP)
  262199. .IP \(bu 2
  262200. \fBPR\fP \fI\%#28501\fP: (\fI\%twangboy\fP) Requested fixes for 26898
  262201. @ \fI2015\-12\-03 01:12:12 UTC\fP
  262202. .INDENT 2.0
  262203. .IP \(bu 2
  262204. \fBPR\fP \fI\%#28420\fP: (\fI\%jfindlay\fP) fix removal of symbolic links on windows in the file state (refs: \fI\%#28501\fP)
  262205. .IP \(bu 2
  262206. \fBPR\fP \fI\%#28191\fP: (\fI\%twangboy\fP) Fix 26898 (refs: \fI\%#28420\fP, \fI\%#28501\fP)
  262207. .IP \(bu 2
  262208. 6a7a95f28a Merge pull request \fI\%#28501\fP from twangboy/jmoney_26898
  262209. .IP \(bu 2
  262210. c0cf33332c Fixed some Lint...
  262211. .IP \(bu 2
  262212. df17fc59d3 Merge pull request \fI\%#6\fP from jfindlay/twang_test
  262213. .INDENT 2.0
  262214. .IP \(bu 2
  262215. bc7e0cfe64 add file.symlink unit tests
  262216. .IP \(bu 2
  262217. 9381dc7215 orthogonalize file.symlink unit tests
  262218. .UNINDENT
  262219. .IP \(bu 2
  262220. 8f462ba044 Merge pull request \fI\%#5\fP from cachedout/fix_twangboy_test
  262221. .INDENT 2.0
  262222. .IP \(bu 2
  262223. 5293150d25 Fix tests
  262224. .UNINDENT
  262225. .IP \(bu 2
  262226. 7d39091c91 Fixed some more lint
  262227. .IP \(bu 2
  262228. 3dbd62af2c Fixed some tests... hopefully
  262229. .IP \(bu 2
  262230. f187db3288 Removed unnecessary logic
  262231. .IP \(bu 2
  262232. 89ebd268e6 Added file attributes restore on fail
  262233. .IP \(bu 2
  262234. 9ec72ca724 fix file state unit tests for win symlink feature
  262235. .IP \(bu 2
  262236. 69c32a663e Fixed some lint
  262237. .IP \(bu 2
  262238. 638dec5027 Fixed some tests... let\(aqs see if they\(aqre really are
  262239. .IP \(bu 2
  262240. 5ed7a99792 Replaced instances of shutil.rmtree in file state
  262241. .IP \(bu 2
  262242. 2651ce509f Fix file.remove for windows
  262243. .UNINDENT
  262244. .IP \(bu 2
  262245. \fBISSUE\fP \fI\%#29344\fP: (\fI\%justinta\fP) file.search broken on python 2.6 with empty files (refs: \fI\%#29348\fP)
  262246. .IP \(bu 2
  262247. \fBPR\fP \fI\%#29348\fP: (\fI\%justinta\fP) Fixes an file.search on python2.6
  262248. @ \fI2015\-12\-02 23:26:36 UTC\fP
  262249. .INDENT 2.0
  262250. .IP \(bu 2
  262251. 760a521603 Merge pull request \fI\%#29348\fP from jtand/file_search_fix
  262252. .IP \(bu 2
  262253. 04f82bd4fd Fixes an file.search on python2.6
  262254. .UNINDENT
  262255. .IP \(bu 2
  262256. \fBISSUE\fP \fI\%#29206\fP: (\fI\%mschiff\fP) ssh_known_hosts.present creates wrong known_hosts lines (refs: \fI\%#29276\fP)
  262257. .IP \(bu 2
  262258. \fBPR\fP \fI\%#29336\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29276\fP to 2015.5
  262259. @ \fI2015\-12\-02 19:37:42 UTC\fP
  262260. .INDENT 2.0
  262261. .IP \(bu 2
  262262. \fBPR\fP \fI\%#29276\fP: (\fI\%abednarik\fP) Prevent adding port twice when adding entry in known hosts (refs: \fI\%#29336\fP)
  262263. .IP \(bu 2
  262264. 51ea88d489 Merge pull request \fI\%#29336\fP from rallytime/bp\-29276
  262265. .IP \(bu 2
  262266. 3a0e19debb Prevent adding port twice when adding entry in known hosts
  262267. .UNINDENT
  262268. .IP \(bu 2
  262269. \fBPR\fP \fI\%#29333\fP: (\fI\%rallytime\fP) Back\-port \fI\%#29280\fP to 2015.5
  262270. @ \fI2015\-12\-02 19:37:05 UTC\fP
  262271. .INDENT 2.0
  262272. .IP \(bu 2
  262273. \fBPR\fP \fI\%#29280\fP: (\fI\%cachedout\fP) [Doc] Add note for SVN state (refs: \fI\%#29333\fP)
  262274. .IP \(bu 2
  262275. \fBPR\fP \fI\%#29165\fP: (\fI\%titilambert\fP) [Doc] Add note for SVN state (refs: \fI\%#29280\fP, \fI\%#29333\fP)
  262276. .IP \(bu 2
  262277. 28255af52a Merge pull request \fI\%#29333\fP from rallytime/bp\-29280
  262278. .IP \(bu 2
  262279. 722d02ff4a Lint
  262280. .IP \(bu 2
  262281. 4a0040c1b4 [Doc] Add note for SVN state
  262282. .UNINDENT
  262283. .IP \(bu 2
  262284. \fBPR\fP \fI\%#29316\fP: (\fI\%basepi\fP) [2015.5] Merge forward from 2014.7 to 2015.5
  262285. @ \fI2015\-12\-01 20:20:23 UTC\fP
  262286. .INDENT 2.0
  262287. .IP \(bu 2
  262288. 14e94b3593 Merge pull request \fI\%#29316\fP from basepi/merge\-forward\-2015.5
  262289. .IP \(bu 2
  262290. 33f40b3c47 Merge remote\-tracking branch \(aqupstream/2014.7\(aq into merge\-forward\-2015.5
  262291. .IP \(bu 2
  262292. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  262293. .IP \(bu 2
  262294. d2885390f4 Use process KillMode on Debian systems also
  262295. .UNINDENT
  262296. .IP \(bu 2
  262297. \fBPR\fP \fI\%#29216\fP: (\fI\%clan\fP) size is 0 doesn\(aqt mean no data, e.g, /proc/version
  262298. @ \fI2015\-11\-30 20:01:43 UTC\fP
  262299. .INDENT 2.0
  262300. .IP \(bu 2
  262301. 6a2ffbfb7c Merge pull request \fI\%#29216\fP from clan/file_search_on_proc_file
  262302. .IP \(bu 2
  262303. 91a20c07a1 try mmap first
  262304. .IP \(bu 2
  262305. 8aa4f2053e remove extra space to fix lint failure
  262306. .IP \(bu 2
  262307. d34e6b1a9a use read only if has read() method
  262308. .IP \(bu 2
  262309. 3209c1cdb5 size is 0 doesn\(aqt mean no data, e.g, /proc/version
  262310. .UNINDENT
  262311. .IP \(bu 2
  262312. \fBPR\fP \fI\%#29261\fP: (\fI\%attiasr\fP) fix incorrect reinstallation of windows pkg
  262313. @ \fI2015\-11\-30 18:28:42 UTC\fP
  262314. .INDENT 2.0
  262315. .IP \(bu 2
  262316. d6aaae8d7b Merge pull request \fI\%#29261\fP from attiasr/patch\-1
  262317. .IP \(bu 2
  262318. 7a99b90596 add log and return if pkg already installed
  262319. .IP \(bu 2
  262320. 1843c7ab8e fix incorrect reinstallation of windows pkg
  262321. .UNINDENT
  262322. .IP \(bu 2
  262323. \fBPR\fP \fI\%#29214\fP: (\fI\%cro\fP) Doc for salt.utils.http should say verify_ssl not ssl_verify.
  262324. @ \fI2015\-11\-25 23:55:38 UTC\fP
  262325. .INDENT 2.0
  262326. .IP \(bu 2
  262327. 9236188867 Merge pull request \fI\%#29214\fP from cro/ssl_verify_ssl
  262328. .IP \(bu 2
  262329. e9c13c561b Doc bug\-\-salt.utils.http takes verify_ssl not ssl_verify.
  262330. .UNINDENT
  262331. .IP \(bu 2
  262332. \fBISSUE\fP \fI\%#29202\fP: (\fI\%lorengordon\fP) Broken ca bundle lookup in \fIsalt.utils.http.get_ca_bundle\fP (refs: \fI\%#29204\fP)
  262333. .IP \(bu 2
  262334. \fBPR\fP \fI\%#29204\fP: (\fI\%lorengordon\fP) Use os.path.join to return full path to ca bundle
  262335. @ \fI2015\-11\-25 20:00:42 UTC\fP
  262336. .INDENT 2.0
  262337. .IP \(bu 2
  262338. df7b35a86b Merge pull request \fI\%#29204\fP from lorengordon/fix\-29202
  262339. .IP \(bu 2
  262340. b1dae5e6fe Use os.path.join to return full path to ca bundle
  262341. .UNINDENT
  262342. .UNINDENT
  262343. .SS Salt 2014.7.0 Release Notes \- Codename Helium
  262344. .sp
  262345. This release is the largest Salt release ever, with more features and commits
  262346. then any previous release of Salt. Everything from the new RAET transport to
  262347. major updates in Salt Cloud and the merging of Salt API into the main project.
  262348. .sp
  262349. \fBIMPORTANT:\fP
  262350. .INDENT 0.0
  262351. .INDENT 3.5
  262352. The Fedora/RHEL/CentOS \fBsalt\-master\fP package has been modified for this
  262353. release. The following components of Salt have been broken out and placed
  262354. into their own packages:
  262355. .INDENT 0.0
  262356. .IP \(bu 2
  262357. salt\-syndic
  262358. .IP \(bu 2
  262359. salt\-cloud
  262360. .IP \(bu 2
  262361. salt\-ssh
  262362. .UNINDENT
  262363. .sp
  262364. When the \fBsalt\-master\fP package is upgraded, these components will be
  262365. removed, and they will need to be manually installed.
  262366. .UNINDENT
  262367. .UNINDENT
  262368. .sp
  262369. \fBIMPORTANT:\fP
  262370. .INDENT 0.0
  262371. .INDENT 3.5
  262372. Compound/pillar matching have been temporarily disabled for the \fBmine\fP
  262373. and \fBpublish\fP modules for this release due to the possibility of
  262374. inferring pillar data using pillar glob matching. A proper fix is now in
  262375. the 2014.7 branch and scheduled for the 2014.7.1 release, and compound
  262376. matching and non\-globbing pillar matching will be re\-enabled at that point.
  262377. .sp
  262378. Compound and pillar matching for normal salt commands are unaffected.
  262379. .UNINDENT
  262380. .UNINDENT
  262381. .SS New Transport!
  262382. .SS RAET Transport Option
  262383. .sp
  262384. This has been a HUGE amount of work, but the beta release of Salt with RAET is
  262385. ready to go. RAET is a reliable queuing transport system that has been
  262386. developed in partnership with a number of large enterprises to give Salt an
  262387. alternative to ZeroMQ and a way to get Salt to scale well beyond tens of
  262388. thousands of servers. Unlike ZeroMQ, RAET is completely asynchronous in every
  262389. aspect of its operation and has been developed using the flow programming
  262390. paradigm. This allows for many new capabilities to be added to Salt in the
  262391. upcoming releases.
  262392. .sp
  262393. Please keep in mind that this is a beta release of RAET and we hope for bugs to
  262394. be worked out, performance to be better realized and more in the 2015.5.0
  262395. release.
  262396. .sp
  262397. Simply stated, users running Salt with RAET should expect some hiccups as we
  262398. hammer out the update. This is a BETA release of Salt RAET.
  262399. .SS Salt SSH Enhancements
  262400. .sp
  262401. Salt SSH has just entered a new league, with substantial updates and
  262402. improvements to make salt\-ssh more reliable and easier then ever! From new
  262403. features like the ansible roster and fileserver backends to the new pypi
  262404. salt\-ssh installer to lowered deps and a swath of bugfixes, salt\-ssh is
  262405. basically reborn!
  262406. .SS Install salt\-ssh Using pip
  262407. .sp
  262408. Salt\-ssh is now pip\-installable!
  262409. .sp
  262410. \fI\%https://pypi.org/project/salt\-ssh/\fP
  262411. .sp
  262412. Pip will bring in all of the required deps, and while some deps are compiled,
  262413. they all include pure python implementations, meaning that any compile errors
  262414. which may be seen can be safely ignored.
  262415. .INDENT 0.0
  262416. .INDENT 3.5
  262417. .sp
  262418. .nf
  262419. .ft C
  262420. pip install salt\-ssh
  262421. .ft P
  262422. .fi
  262423. .UNINDENT
  262424. .UNINDENT
  262425. .SS Fileserver Backends
  262426. .sp
  262427. Salt\-ssh can now use the salt fileserver backend system. This allows for
  262428. the gitfs, hgfs, s3, and many more ways to centrally store states to be easily
  262429. used with salt\-ssh. This also allows for a distributed team to easily use
  262430. a centralized source.
  262431. .SS Saltfile Support
  262432. .sp
  262433. The new saltfile system makes it easy to have a user specific custom extended
  262434. configuration.
  262435. .SS Ext Pillar
  262436. .sp
  262437. Salt\-ssh can now use the external pillar system. Making it easier then ever
  262438. to use salt\-ssh with teams.
  262439. .SS No More sshpass
  262440. .sp
  262441. Thanks to the enhancements in the salt vt system, salt\-ssh no longer requires
  262442. sshpass to send passwords to ssh. This also makes the manipulation of ssh
  262443. calls substantially more flexible, allowing for intercepting ssh calls in
  262444. a much more fluid way.
  262445. .SS Pure Python Shim
  262446. .sp
  262447. The salt\-ssh call originally used a shell script to discover what version of
  262448. python to execute with and determine the state of the ssh code deployment.
  262449. This shell script has been replaced with a pure python version making it easy
  262450. to increase the capability of the code deployment without causing platform
  262451. inconsistency issues with different shell interpreters.
  262452. .SS Custom Module Delivery
  262453. .sp
  262454. Custom modules are now seamlessly delivered. This makes the deployment of
  262455. custom grains, states, execution modules and returners a seamless process.
  262456. .SS CP Module Support
  262457. .sp
  262458. Salt\-ssh now makes simple file transfers easier then ever! The \fIcp\fP
  262459. module allows for files to be conveniently sent from the salt fileserver
  262460. system down to systems.
  262461. .SS More Thin Directory Options
  262462. .sp
  262463. Salt ssh functions by copying a subset of the salt code, or \fIsalt thin\fP down
  262464. to the target system. In the past this was always transferred to /tmp/.salt
  262465. and cached there for subsequent commands.
  262466. .sp
  262467. Now, salt thin can be sent to a random directory and removed when the call
  262468. is complete with the \fI\-W\fP option. The new \fI\-W\fP option still uses a static
  262469. location but will clean up that location when finished.
  262470. .sp
  262471. The default \fIsalt thin\fP location is now user defined, allowing multiple users
  262472. to cleanly access the same systems.
  262473. .SS State System Enhancements
  262474. .SS New Imperative State Keyword "Listen"
  262475. .sp
  262476. The new \fBlisten\fP and \fBlisten_in\fP keywords allow for completely imperative
  262477. states by calling the \fBmod_watch()\fP routine after all states have run instead
  262478. of re\-ordering the states.
  262479. .SS Mod Aggregate Runtime Manipulator
  262480. .sp
  262481. The new \fBmod_aggregate\fP system allows for the state system to rewrite the
  262482. state data during execution. This allows for state definitions to be aggregated
  262483. dynamically at runtime.
  262484. .sp
  262485. The best example is found in the \fBpkg\fP state. If
  262486. \fBmod_aggregate\fP is turned on, then when the first pkg state is reached, the
  262487. state system will scan all of the other running states for pkg states and take
  262488. all other packages set for install and install them all at once in the first
  262489. pkg state.
  262490. .sp
  262491. These runtime modifications make it easy to run groups of states together. In
  262492. future versions, we hope to fill out the \fBmod_aggregate\fP system to build in
  262493. more and more optimizations.
  262494. .sp
  262495. For more documentation on \fBmod_aggregate\fP, see the documentation\&.
  262496. .SS New Requisites: onchanges and onfail
  262497. .sp
  262498. The new \fBonchanges\fP and \fBonchanges_in\fP requisites make a state apply only if
  262499. there are changes in the required state. This is useful to execute post hooks
  262500. after changes occur on a system.
  262501. .sp
  262502. The other new requisites, \fBonfail\fP, and \fBonfail_in\fP, allow for a state to run
  262503. in reaction to the failure of another state.
  262504. .sp
  262505. For more information about these new requisites, see the
  262506. requisites documentation\&.
  262507. .SS Global onlyif and unless
  262508. .sp
  262509. The \fBonlyif\fP and \fBunless\fP options can now be used for any state declaration.
  262510. .SS Use \fBnames\fP to expand and override values
  262511. .sp
  262512. The names declaration in Salt\(aqs state system can now
  262513. override or add values to the expanded data structure. For example:
  262514. .INDENT 0.0
  262515. .INDENT 3.5
  262516. .sp
  262517. .nf
  262518. .ft C
  262519. my_users:
  262520. user.present:
  262521. \- names:
  262522. \- larry
  262523. \- curly
  262524. \- moe:
  262525. \- shell: /bin/zsh
  262526. \- groups:
  262527. \- wheel
  262528. \- shell: /bin/bash
  262529. .ft P
  262530. .fi
  262531. .UNINDENT
  262532. .UNINDENT
  262533. .SS Major Features
  262534. .SS Scheduler Additions
  262535. .sp
  262536. The Salt scheduler system has received MAJOR enhancements, allowing for
  262537. cron\-like scheduling and much more granular timing routines. See \fBhere\fP for more info.
  262538. .SS Red Hat 7 Family Support
  262539. .sp
  262540. All the needed additions have been made to run Salt on RHEL 7 and derived OSes
  262541. like CentOS and Scientific.
  262542. .SS Fileserver Backends in salt\-call
  262543. .sp
  262544. Fileserver backends like gitfs can now be used without a salt master! Just add
  262545. the fileserver backend configuration to the minion config and execute
  262546. salt\-call. This has been a much\-requested feature and we are happy to finally
  262547. bring it to our users.
  262548. .SS Amazon Execution Modules
  262549. .sp
  262550. An entire family of execution modules further enhancing Salt\(aqs Amazon Cloud
  262551. support. They include the following:
  262552. .INDENT 0.0
  262553. .IP \(bu 2
  262554. \fBAutoscale Groups\fP (includes \fBstate support\fP) \-\- related: \fBLaunch Control\fP states
  262555. .IP \(bu 2
  262556. \fBCloud Watch\fP (includes \fBstate support\fP)
  262557. .IP \(bu 2
  262558. \fBElastic Cache\fP (includes \fBstate support\fP)
  262559. .IP \(bu 2
  262560. \fBElastic Load Balancer\fP (includes \fBstate support\fP)
  262561. .IP \(bu 2
  262562. \fBIAM Identity and Access Management\fP (includes \fBstate support\fP)
  262563. .IP \(bu 2
  262564. \fBRoute53 DNS\fP (includes \fBstate support\fP)
  262565. .IP \(bu 2
  262566. \fBSecurity Groups\fP (includes \fBstate support\fP)
  262567. .IP \(bu 2
  262568. \fBSimple Queue Service\fP (includes \fBstate support\fP)
  262569. .UNINDENT
  262570. .SS LXC Runner Enhancements
  262571. .sp
  262572. BETA
  262573. The Salt LXC management system has received a number of enhancements which make
  262574. running an LXC cloud entirely from Salt an easy proposition.
  262575. .SS Next Gen Docker Management
  262576. .sp
  262577. The Docker support in Salt has been increased at least ten fold. The Docker API
  262578. is now completely exposed and Salt ships with Docker data tracking systems
  262579. which make automating Docker deployments very easy.
  262580. .SS Peer System Performance Improvements
  262581. .sp
  262582. The peer system communication routines have been refined to make the peer
  262583. system substantially faster.
  262584. .SS SDB
  262585. .sp
  262586. Encryption at rest for configs
  262587. .SS GPG Renderer
  262588. .sp
  262589. Encrypted pillar at rest
  262590. .SS OpenStack Expansion
  262591. .sp
  262592. Lots of new OpenStack stuff
  262593. .SS Queues System
  262594. .sp
  262595. Ran change external queue systems into Salt events
  262596. .SS Multi Master Failover Additions
  262597. .sp
  262598. Connecting to multiple masters is more dynamic then ever
  262599. .SS Chef Execution Module
  262600. .sp
  262601. Managing Chef with Salt just got even easier!
  262602. .SS salt\-api Project Merge
  262603. .sp
  262604. The \fBsalt\-api\fP project has been merged into Salt core and is now available as
  262605. part of the regular \fBsalt\-master\fP package install. No API changes were made,
  262606. the \fBsalt\-api\fP script and init scripts remain intact.
  262607. .sp
  262608. \fBsalt\-api\fP has always provided Yet Another Pluggable Interface to Salt (TM)
  262609. in the form of "netapi" modules. These are modules that bind to a port and
  262610. start a service. Like many of Salt\(aqs other module types, netapi modules often
  262611. have library and configuration dependencies. See the documentation for each
  262612. module for instructions.
  262613. .sp
  262614. \fBSEE ALSO:\fP
  262615. .INDENT 0.0
  262616. .INDENT 3.5
  262617. The full list of netapi modules.
  262618. .UNINDENT
  262619. .UNINDENT
  262620. .SS Synchronous and Asynchronous Execution of Runner and Wheel Modules
  262621. .sp
  262622. \fBsalt.runner.RunnerClient\fP and \fBsalt.wheel.WheelClient\fP
  262623. have both gained complimentary \fBcmd_sync\fP and \fBcmd_async\fP methods allowing
  262624. for synchronous and asynchronous execution of any Runner or Wheel module
  262625. function, all protected using Salt\(aqs external authentication
  262626. system. \fBsalt\-api\fP benefits from this addition as well.
  262627. .SS \fBrest_cherrypy\fP Additions
  262628. .sp
  262629. The \fBrest_cherrypy\fP netapi module
  262630. provides the main REST API for Salt.
  262631. .SS Web Hooks
  262632. .sp
  262633. This release of course includes the Web Hook additions from the most recent
  262634. \fBsalt\-api\fP release, which allows external services to signal actions within a
  262635. Salt infrastructure. External services such as Amazon SNS, Travis\-CI, or
  262636. GitHub, as well as internal services that cannot or should not run a Salt
  262637. minion daemon can be used as first\-class components in Salt\(aqs rich
  262638. orchestration capabilities.
  262639. .sp
  262640. The raw HTTP request body is now available in the event data. This is sometimes
  262641. required information for checking an HMAC signature in order to verify a HTTP
  262642. request. As an example, Amazon or GitHub requests are signed this way.
  262643. .SS Generating and Accepting Minion Keys
  262644. .sp
  262645. The \fB/key\fP convenience URL
  262646. generates a public and private key for a minion, automatically pre\-accepts the
  262647. public key on the Salt Master, and returns both keys as a tarball for download.
  262648. .sp
  262649. This allows for easily bootstrapping the key on a new minion with a single HTTP
  262650. call, such as with a Kickstart script, all using regular shell tools.
  262651. .INDENT 0.0
  262652. .INDENT 3.5
  262653. .sp
  262654. .nf
  262655. .ft C
  262656. curl \-sS http://salt\-api.example.com:8000/keys \e
  262657. \-d mid=jerry \e
  262658. \-d username=kickstart \e
  262659. \-d password=kickstart \e
  262660. \-d eauth=pam \e
  262661. \-o jerry\-salt\-keys.tar
  262662. .ft P
  262663. .fi
  262664. .UNINDENT
  262665. .UNINDENT
  262666. .SS Fileserver Backend Enhancements
  262667. .sp
  262668. All of the fileserver backends have been overhauled to be faster, lighter, and
  262669. more reliable. The VCS backends (\fBgitfs\fP,
  262670. \fBhgfs\fP, and \fBsvnfs\fP)
  262671. have also received a \fBlot\fP of new features.
  262672. .sp
  262673. Additionally, most config parameters for the VCS backends can now be configured
  262674. on a per\-remote basis, allowing for global config parameters to be overridden
  262675. for a specific gitfs/hgfs/svnfs remote.
  262676. .SS New \fBgitfs\fP Features
  262677. .SS Pygit2 and Dulwich
  262678. .sp
  262679. In addition to supporting GitPython, support for \fI\%pygit2\fP (0.20.3 and newer) and
  262680. \fI\%dulwich\fP have been added. Provided a compatible version of \fI\%pygit2\fP is
  262681. installed, it will now be the default provider. The config parameter
  262682. \fBgitfs_provider\fP has been added to allow one to choose a specific
  262683. provider for gitfs.
  262684. .SS Mountpoints
  262685. .sp
  262686. Prior to this release, to serve a file from gitfs at a salt fileserver URL of
  262687. \fBsalt://foo/bar/baz.txt\fP, it was necessary to ensure that the parent
  262688. directories existed in the repository. A new config parameter
  262689. \fBgitfs_mountpoint\fP allows gitfs remotes to be exposed starting at
  262690. a user\-defined \fBsalt://\fP URL.
  262691. .SS Environment Whitelisting/Blacklisting
  262692. .sp
  262693. By default, gitfs will expose all branches and tags as Salt fileserver
  262694. environments. Two new config parameters, \fBgitfs_env_whitelist\fP, and
  262695. \fBgitfs_env_blacklist\fP, allow more control over which branches and
  262696. tags are exposed. More detailed information on how these two options work can
  262697. be found in the Gitfs Walkthrough\&.
  262698. .SS Expanded Authentication Support
  262699. .sp
  262700. As of \fI\%pygit2\fP 0.20.3, both http(s) and SSH key authentication are supported,
  262701. and Salt now also supports both authentication methods when using \fI\%pygit2\fP\&. Keep
  262702. in mind that \fI\%pygit2\fP 0.20.3 is not yet available on many platforms, so those
  262703. who had been using authenticated git repositories with a passphraseless key
  262704. should stick to GitPython if a new enough \fI\%pygit2\fP is not yet available for the
  262705. platform on which the master is running.
  262706. .sp
  262707. A full explanation of how to use authentication can be found in the Gitfs
  262708. Walkthrough\&.
  262709. .SS New \fBhgfs\fP Features
  262710. .SS Mountpoints
  262711. .sp
  262712. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  262713. \fBhgfs_mountpoint\fP\&.
  262714. .SS Environment Whitelisting/Blacklisting
  262715. .sp
  262716. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameters are called
  262717. \fBhgfs_env_whitelist\fP and \fBhgfs_env_blacklist\fP\&.
  262718. .SS New \fBsvnfs\fP Features
  262719. .SS Mountpoints
  262720. .sp
  262721. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  262722. \fBsvnfs_mountpoint\fP\&.
  262723. .SS Environment Whitelisting/Blacklisting
  262724. .sp
  262725. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameters are called
  262726. \fBsvnfs_env_whitelist\fP and \fBsvnfs_env_blacklist\fP\&.
  262727. .SS Configurable Trunk/Branches/Tags Paths
  262728. .sp
  262729. Prior to this release, the paths where trunk, branches, and tags were located
  262730. could only be in directories named "trunk", "branches", and "tags" directly
  262731. under the root of the repository. Three new config parameters
  262732. (\fBsvnfs_trunk\fP, \fBsvnfs_branches\fP, and
  262733. \fBsvnfs_tags\fP) allow SVN repositories which are laid out
  262734. differently to be used with svnfs.
  262735. .SS New \fBminionfs\fP Features
  262736. .SS Mountpoint
  262737. .sp
  262738. This feature works exactly like its \fI\%gitfs counterpart\fP\&. The new config parameter is called
  262739. \fBminionfs_mountpoint\fP\&. The one major difference is that, as
  262740. minionfs doesn\(aqt use multiple remotes (it just serves up files pushed to the
  262741. master using \fBcp.push\fP) there is no such thing as a
  262742. per\-remote configuration for \fBminionfs_mountpoint\fP\&.
  262743. .SS Changing the Saltenv from Which Files are Served
  262744. .sp
  262745. A new config parameter (\fBminionfs_env\fP) allows minionfs files to
  262746. be served from a Salt fileserver environment other than \fBbase\fP\&.
  262747. .SS Minion Whitelisting/Blacklisting
  262748. .sp
  262749. By default, minionfs will expose the pushed files from all minions. Two new
  262750. config parameters, \fBminionfs_whitelist\fP, and
  262751. \fBminionfs_blacklist\fP, allow minionfs to be restricted to serve
  262752. files from only the desired minions.
  262753. .SS Pyobjects Renderer
  262754. .sp
  262755. Salt now ships with with the \fBPyobjects Renderer\fP that allows for construction of States using pure
  262756. Python with an idiomatic object interface.
  262757. .SS New Modules
  262758. .sp
  262759. In addition to the Amazon modules mentioned above, there are also several other
  262760. new execution modules:
  262761. .INDENT 0.0
  262762. .IP \(bu 2
  262763. \fBOracle\fP
  262764. .IP \(bu 2
  262765. \fBRandom\fP
  262766. .IP \(bu 2
  262767. \fBRedis\fP
  262768. .IP \(bu 2
  262769. \fBAmazon Simple Queue Service\fP
  262770. .IP \(bu 2
  262771. \fBBlock Device Management\fP
  262772. .IP \(bu 2
  262773. \fBCoreOS etcd\fP
  262774. .IP \(bu 2
  262775. \fBGenesis\fP
  262776. .IP \(bu 2
  262777. \fBInfluxDB\fP
  262778. .IP \(bu 2
  262779. \fBServer Density\fP
  262780. .IP \(bu 2
  262781. \fBTwilio Notifications\fP
  262782. .IP \(bu 2
  262783. \fBVarnish\fP
  262784. .IP \(bu 2
  262785. \fBZNC IRC Bouncer\fP
  262786. .IP \(bu 2
  262787. \fBSMTP\fP
  262788. .UNINDENT
  262789. .SS New Runners
  262790. .INDENT 0.0
  262791. .IP \(bu 2
  262792. \fBMap/Reduce Style\fP
  262793. .IP \(bu 2
  262794. \fBQueue\fP
  262795. .UNINDENT
  262796. .SS New External Pillars
  262797. .INDENT 0.0
  262798. .IP \(bu 2
  262799. \fBCoreOS etcd\fP
  262800. .UNINDENT
  262801. .SS New Salt\-Cloud Providers
  262802. .INDENT 0.0
  262803. .IP \(bu 2
  262804. \fBAliyun ECS Cloud\fP
  262805. .IP \(bu 2
  262806. \fBLXC Containers\fP
  262807. .IP \(bu 2
  262808. \fBProxmox (OpenVZ containers & KVM)\fP
  262809. .UNINDENT
  262810. .SS Salt Call Change
  262811. .sp
  262812. When used with a returner, salt\-call now contacts a master if \fB\-\-local\fP
  262813. is not specicified.
  262814. .SS Deprecations
  262815. .SS \fBsalt.modules.virtualenv_mod\fP
  262816. .INDENT 0.0
  262817. .IP \(bu 2
  262818. Removed deprecated \fBmemoize\fP function from \fBsalt/utils/__init__.py\fP (deprecated)
  262819. .IP \(bu 2
  262820. Removed deprecated \fBno_site_packages\fP argument from \fBcreate\fP function (deprecated)
  262821. .IP \(bu 2
  262822. Removed deprecated \fBcheck_dns\fP argument from \fBminion_config\fP and \fBapply_minion_config\fP functions (deprecated)
  262823. .IP \(bu 2
  262824. Removed deprecated \fBOutputOptionsWithTextMixIn\fP class from \fBsalt/utils/parsers.py\fP (deprecated)
  262825. .IP \(bu 2
  262826. Removed the following deprecated functions from \fBsalt/modules/ps.py\fP:
  262827. \- \fBphysical_memory_usage\fP (deprecated)
  262828. \- \fBvirtual_memory_usage\fP (deprecated)
  262829. \- \fBcached_physical_memory\fP (deprecated)
  262830. \- \fBphysical_memory_buffers\fP (deprecated)
  262831. .IP \(bu 2
  262832. Removed deprecated cloud arguments from \fBcloud_config\fP function in \fBsalt/config.py\fP:
  262833. \- \fBvm_config\fP (deprecated)
  262834. \- \fBvm_config_path\fP (deprecated)
  262835. .IP \(bu 2
  262836. Removed deprecated \fBlibcloud_version\fP function from \fBsalt/cloud/libcloudfuncs.py\fP (deprecated)
  262837. .IP \(bu 2
  262838. Removed deprecated \fBCloudConfigMixIn\fP class from \fBsalt/utils/parsers.py\fP (deprecated)
  262839. .UNINDENT
  262840. .SS Salt 2014.7.1 Release Notes
  262841. .INDENT 0.0
  262842. .TP
  262843. .B release
  262844. 2015\-01\-12
  262845. .UNINDENT
  262846. .sp
  262847. Version 2014.7.1 is a bugfix release for 2014.7.0\&.
  262848. .sp
  262849. The changes include:
  262850. .INDENT 0.0
  262851. .IP \(bu 2
  262852. Fixed gitfs serving symlinks in \fBfile.recurse\fP states (\fI\%issue #17700\fP)
  262853. .IP \(bu 2
  262854. Fixed holding of multiple packages (YUM) when combined with version pinning
  262855. (\fI\%issue #18468\fP)
  262856. .IP \(bu 2
  262857. Fixed use of Jinja templates in masterless mode with non\-roots fileserver
  262858. backend (\fI\%issue #17963\fP)
  262859. .IP \(bu 2
  262860. Re\-enabled pillar and compound matching for mine and publish calls. Note that
  262861. pillar globbing is still disabled for those modes, for security reasons.
  262862. (\fI\%issue #17194\fP)
  262863. .IP \(bu 2
  262864. Fix for \fBtty: True\fP in salt\-ssh (\fI\%issue #16847\fP)
  262865. .IP \(bu 2
  262866. Fix for supervisord states when supervisor not installed to system python
  262867. (\fI\%issue #18044\fP)
  262868. .IP \(bu 2
  262869. Fix for logging when \fBlog_level=\(aqquiet\(aq\fP for \fBcmd.run\fP (\fI\%issue #19479\fP)
  262870. .UNINDENT
  262871. .SS Salt 2014.7.2 Release Notes
  262872. .INDENT 0.0
  262873. .TP
  262874. .B release
  262875. 2015\-02\-09
  262876. .UNINDENT
  262877. .sp
  262878. Version 2014.7.2 is a bugfix release for 2014.7.0\&.
  262879. .sp
  262880. The changes include:
  262881. .INDENT 0.0
  262882. .IP \(bu 2
  262883. Fix erroneous warnings for systemd service enabled check (\fI\%issue #19606\fP)
  262884. .IP \(bu 2
  262885. Fix FreeBSD kernel module loading, listing, and persistence
  262886. \fBkmod\fP (\fI\%issue #197151\fP, \fI\%issue #19682\fP)
  262887. .IP \(bu 2
  262888. Allow case\-sensitive npm package names in the \fBnpm state\fP\&. This may break behavior for people expecting the state
  262889. to lowercase their npm package names for them. The \fBnpm module\fP was never affected by mandatory lowercasing.
  262890. (\fI\%issue #20329\fP)
  262891. .IP \(bu 2
  262892. Deprecate the \fBactivate\fP parameter for pip.install for both the
  262893. \fBmodule\fP and the \fBstate\fP\&.
  262894. If \fBbin_env\fP is given and points to a virtualenv, there is no need to
  262895. activate that virtualenv in a shell for pip to install to the virtualenv.
  262896. .IP \(bu 2
  262897. Fix a file\-locking bug in gitfs (\fI\%issue #18839\fP)
  262898. .IP \(bu 2
  262899. Deprecated \fBarchive_user\fP in favor of standardized \fBuser\fP parameter in
  262900. \fBstate\fP and added \fBgroup\fP parameter.
  262901. .UNINDENT
  262902. .SS Salt 2014.7.3 Release Notes
  262903. .INDENT 0.0
  262904. .TP
  262905. .B release
  262906. 2015\-03\-25
  262907. .UNINDENT
  262908. .sp
  262909. Version 2014.7.3 is a bugfix release for 2014.7.0\&.
  262910. .sp
  262911. Changes:
  262912. .INDENT 0.0
  262913. .IP \(bu 2
  262914. Multi\-master minions mode no longer route fileclient operations asymetrically.
  262915. This fixes the source of many multi\-master bugs where the minion would
  262916. become unrepsonsive from one or more masters.
  262917. .IP \(bu 2
  262918. Fix bug wherein network.iface could produce stack traces.
  262919. .IP \(bu 2
  262920. net.arp will no longer be made available unless arp is installed on the
  262921. system.
  262922. .IP \(bu 2
  262923. Major performance improvements to Saltnado
  262924. .IP \(bu 2
  262925. Allow KVM module to operate under KVM itself or VMware Fusion
  262926. .IP \(bu 2
  262927. Various fixes to the Windows installation scripts
  262928. .IP \(bu 2
  262929. Fix issue where the syndic would not correctly propagate loads to the master
  262930. job cache.
  262931. .IP \(bu 2
  262932. Improve error handling on invalid /etc/network/interfaces file in salt
  262933. networking modules
  262934. .IP \(bu 2
  262935. Fix bug where a response status was not checked for in fileclient.get_url
  262936. .IP \(bu 2
  262937. Enable eauth when running salt in batch mode
  262938. .IP \(bu 2
  262939. Increase timeout in Boto Route53 module
  262940. .IP \(bu 2
  262941. Fix bugs with Salt\(aqs \(aqtar\(aq module option parsing
  262942. .IP \(bu 2
  262943. Fix parsing of NTP servers on Windows
  262944. .IP \(bu 2
  262945. Fix issue with blockdev tuning not reporting changes correctly
  262946. .IP \(bu 2
  262947. Update to the latest Salt bootstrap script
  262948. .IP \(bu 2
  262949. Update Linode salt\-cloud driver to use either linode\-python or
  262950. apache\-libcloud
  262951. .IP \(bu 2
  262952. Fix for s3.query function to return correct headers
  262953. .IP \(bu 2
  262954. Fix for s3.head returning None for files that exist
  262955. .IP \(bu 2
  262956. Fix the disable function in win_service module so that the service is
  262957. disabled correctly
  262958. .IP \(bu 2
  262959. Fix race condition between master and minion when making a directory when
  262960. both daemons are on the same host
  262961. .IP \(bu 2
  262962. Fix an issue where file.recurse would fail at the root of an svn repo
  262963. when the repo has a mountpoint
  262964. .IP \(bu 2
  262965. Fix an issue where file.recurse would fail at the root of an hgfs repo
  262966. when the repo has a mountpoint
  262967. .IP \(bu 2
  262968. Fix an issue where file.recurse would fail at the root of an gitfs repo
  262969. when the repo has a mountpoint
  262970. .IP \(bu 2
  262971. Add status.master capability for Windows.
  262972. .IP \(bu 2
  262973. Various fixes to ssh_known_hosts
  262974. .IP \(bu 2
  262975. Various fixes to states.network bonding for Debian
  262976. .IP \(bu 2
  262977. The debian_ip.get_interfaces module no longer removes nameservers.
  262978. .IP \(bu 2
  262979. Better integration between grains.virtual and systemd\-detect\-virt and
  262980. virt\-what
  262981. .IP \(bu 2
  262982. Fix traceback in sysctl.present state output
  262983. .IP \(bu 2
  262984. Fix for issue where mount.mounted would fail when superopts were not a part
  262985. of mount.active (extended=True). Also mount.mounted various fixes for Solaris
  262986. and FreeBSD.
  262987. .IP \(bu 2
  262988. Fix error where datetimes were not correctly safeguarded before being passed
  262989. into msgpack.
  262990. .IP \(bu 2
  262991. Fix file.replace regressions. If the pattern is not found, and if dry run is False,
  262992. and if \fIbackup\fP is False, and if a pre\-existing file exists with extension \fI\&.bak\fP,
  262993. then that backup file will be overwritten. This backup behavior is a result of how \fIfileinput\fP
  262994. works. Fixing it requires either passing through the file twice (the
  262995. first time only to search for content and set a flag), or rewriting
  262996. \fIfile.replace\fP so it doesn\(aqt use \fIfileinput\fP
  262997. .IP \(bu 2
  262998. VCS filreserver fixes/optimizations
  262999. .IP \(bu 2
  263000. Catch fileserver configuration errors on master start
  263001. .IP \(bu 2
  263002. Raise errors on invalid gitfs configurations
  263003. .IP \(bu 2
  263004. set_locale when locale file does not exist (Redhat family)
  263005. .IP \(bu 2
  263006. Fix to correctly count active devices when created mdadm array with spares
  263007. .IP \(bu 2
  263008. Fix to correctly target minions in batch mode
  263009. .IP \(bu 2
  263010. Support \fI\%ssh://\fP urls using the gitfs dulwhich backend
  263011. .IP \(bu 2
  263012. New fileserver runner
  263013. .IP \(bu 2
  263014. Fix various bugs with argument parsing to the publish module.
  263015. .IP \(bu 2
  263016. Fix disk.usage for Synology OS
  263017. .IP \(bu 2
  263018. Fix issue with tags occurring twice with docker.pulled
  263019. .IP \(bu 2
  263020. Fix incorrect key error in SMTP returner
  263021. .IP \(bu 2
  263022. Fix condition which would remount loopback filesystems on every state run
  263023. .IP \(bu 2
  263024. Remove requsites from listens after they are called in the state system
  263025. .IP \(bu 2
  263026. Make system implementation of service.running aware of legacy service calls
  263027. .IP \(bu 2
  263028. Fix issue where publish.publish would not handle duplicate responses gracefully.
  263029. .IP \(bu 2
  263030. Accept Kali Linux for aptpkg salt execution module
  263031. .IP \(bu 2
  263032. Fix bug where cmd.which could not handle a dirname as an argument
  263033. .IP \(bu 2
  263034. Fix issue in ps.pgrep where exceptions were thrown on Windows.
  263035. .UNINDENT
  263036. .sp
  263037. Known issues:
  263038. .INDENT 0.0
  263039. .IP \(bu 2
  263040. In multimaster mode, a minion may become temporarily unresponsive
  263041. if modules or pillars are refreshed at the same time that one
  263042. or more masters are down. This can be worked around by setting
  263043. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263044. .UNINDENT
  263045. .SS Salt 2014.7.4 Release Notes
  263046. .INDENT 0.0
  263047. .TP
  263048. .B release
  263049. 2015\-03\-30
  263050. .UNINDENT
  263051. .sp
  263052. Version 2014.7.4 is a bugfix release for 2014.7.0\&.
  263053. .sp
  263054. This is a security release. The security issues fixed have only been present
  263055. since 2014.7.0, and only users of the two listed modules are vulnerable. The
  263056. following CVEs have been resolved:
  263057. .INDENT 0.0
  263058. .IP \(bu 2
  263059. CVE\-2015\-1838 SaltStack: insecure /tmp file handling in
  263060. salt/modules/serverdensity_device.py
  263061. .IP \(bu 2
  263062. CVE\-2015\-1839 SaltStack: insecure /tmp file handling in salt/modules/chef.py
  263063. .UNINDENT
  263064. .sp
  263065. Changes:
  263066. .INDENT 0.0
  263067. .IP \(bu 2
  263068. Multi\-master minions mode no longer route fileclient operations asymetrically.
  263069. This fixes the source of many multi\-master bugs where the minion would
  263070. become unrepsonsive from one or more masters.
  263071. .IP \(bu 2
  263072. Fix bug wherein network.iface could produce stack traces.
  263073. .IP \(bu 2
  263074. net.arp will no longer be made available unless arp is installed on the
  263075. system.
  263076. .IP \(bu 2
  263077. Major performance improvements to Saltnado
  263078. .IP \(bu 2
  263079. Allow KVM module to operate under KVM itself or VMware Fusion
  263080. .IP \(bu 2
  263081. Various fixes to the Windows installation scripts
  263082. .IP \(bu 2
  263083. Fix issue where the syndic would not correctly propagate loads to the master
  263084. job cache.
  263085. .IP \(bu 2
  263086. Improve error handling on invalid /etc/network/interfaces file in salt
  263087. networking modules
  263088. .IP \(bu 2
  263089. Fix bug where a response status was not checked for in fileclient.get_url
  263090. .IP \(bu 2
  263091. Enable eauth when running salt in batch mode
  263092. .IP \(bu 2
  263093. Increase timeout in Boto Route53 module
  263094. .IP \(bu 2
  263095. Fix bugs with Salt\(aqs \(aqtar\(aq module option parsing
  263096. .IP \(bu 2
  263097. Fix parsing of NTP servers on Windows
  263098. .IP \(bu 2
  263099. Fix issue with blockdev tuning not reporting changes correctly
  263100. .IP \(bu 2
  263101. Update to the latest Salt bootstrap script
  263102. .IP \(bu 2
  263103. Update Linode salt\-cloud driver to use either linode\-python or
  263104. apache\-libcloud
  263105. .IP \(bu 2
  263106. Fix for s3.query function to return correct headers
  263107. .IP \(bu 2
  263108. Fix for s3.head returning None for files that exist
  263109. .IP \(bu 2
  263110. Fix the disable function in win_service module so that the service is
  263111. disabled correctly
  263112. .IP \(bu 2
  263113. Fix race condition between master and minion when making a directory when
  263114. both daemons are on the same host
  263115. .IP \(bu 2
  263116. Fix an issue where file.recurse would fail at the root of an svn repo
  263117. when the repo has a mountpoint
  263118. .IP \(bu 2
  263119. Fix an issue where file.recurse would fail at the root of an hgfs repo
  263120. when the repo has a mountpoint
  263121. .IP \(bu 2
  263122. Fix an issue where file.recurse would fail at the root of an gitfs repo
  263123. when the repo has a mountpoint
  263124. .IP \(bu 2
  263125. Add status.master capability for Windows.
  263126. .IP \(bu 2
  263127. Various fixes to ssh_known_hosts
  263128. .IP \(bu 2
  263129. Various fixes to states.network bonding for Debian
  263130. .IP \(bu 2
  263131. The debian_ip.get_interfaces module no longer removes nameservers.
  263132. .IP \(bu 2
  263133. Better integration between grains.virtual and systemd\-detect\-virt and
  263134. virt\-what
  263135. .IP \(bu 2
  263136. Fix traceback in sysctl.present state output
  263137. .IP \(bu 2
  263138. Fix for issue where mount.mounted would fail when superopts were not a part
  263139. of mount.active (extended=True). Also mount.mounted various fixes for Solaris
  263140. and FreeBSD.
  263141. .IP \(bu 2
  263142. Fix error where datetimes were not correctly safeguarded before being passed
  263143. into msgpack.
  263144. .IP \(bu 2
  263145. Fix file.replace regressions. If the pattern is not found, and if dry run is False,
  263146. and if \fIbackup\fP is False, and if a pre\-existing file exists with extension \fI\&.bak\fP,
  263147. then that backup file will be overwritten. This backup behavior is a result of how \fIfileinput\fP
  263148. works. Fixing it requires either passing through the file twice (the
  263149. first time only to search for content and set a flag), or rewriting
  263150. \fIfile.replace\fP so it doesn\(aqt use \fIfileinput\fP
  263151. .IP \(bu 2
  263152. VCS filreserver fixes/optimizations
  263153. .IP \(bu 2
  263154. Catch fileserver configuration errors on master start
  263155. .IP \(bu 2
  263156. Raise errors on invalid gitfs configurations
  263157. .IP \(bu 2
  263158. set_locale when locale file does not exist (Redhat family)
  263159. .IP \(bu 2
  263160. Fix to correctly count active devices when created mdadm array with spares
  263161. .IP \(bu 2
  263162. Fix to correctly target minions in batch mode
  263163. .IP \(bu 2
  263164. Support \fI\%ssh://\fP urls using the gitfs dulwhich backend
  263165. .IP \(bu 2
  263166. New fileserver runner
  263167. .IP \(bu 2
  263168. Fix various bugs with argument parsing to the publish module.
  263169. .IP \(bu 2
  263170. Fix disk.usage for Synology OS
  263171. .IP \(bu 2
  263172. Fix issue with tags occurring twice with docker.pulled
  263173. .IP \(bu 2
  263174. Fix incorrect key error in SMTP returner
  263175. .IP \(bu 2
  263176. Fix condition which would remount loopback filesystems on every state run
  263177. .IP \(bu 2
  263178. Remove requsites from listens after they are called in the state system
  263179. .IP \(bu 2
  263180. Make system implementation of service.running aware of legacy service calls
  263181. .IP \(bu 2
  263182. Fix issue where publish.publish would not handle duplicate responses gracefully.
  263183. .IP \(bu 2
  263184. Accept Kali Linux for aptpkg salt execution module
  263185. .IP \(bu 2
  263186. Fix bug where cmd.which could not handle a dirname as an argument
  263187. .IP \(bu 2
  263188. Fix issue in ps.pgrep where exceptions were thrown on Windows.
  263189. .UNINDENT
  263190. .sp
  263191. Known issues:
  263192. .INDENT 0.0
  263193. .IP \(bu 2
  263194. In multimaster mode, a minion may become temporarily unresponsive
  263195. if modules or pillars are refreshed at the same time that one
  263196. or more masters are down. This can be worked around by setting
  263197. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263198. .IP \(bu 2
  263199. There are known issues with batch mode operating on the incorrect number of minions.
  263200. This bug can be patched with the change in \fI\%Pull Request #22464\fP\&.
  263201. .IP \(bu 2
  263202. The \fIfun\fP, \fIstate\fP, and \fIunless\fP keywords are missing from the state internals, which
  263203. can cause problems running some states. This bug can be patched with the change in
  263204. \fI\%Pull Request #22365\fP\&.
  263205. .UNINDENT
  263206. .SS Salt 2014.7.5 Release Notes
  263207. .INDENT 0.0
  263208. .TP
  263209. .B release
  263210. 2015\-04\-16
  263211. .UNINDENT
  263212. .sp
  263213. Version 2014.7.5 is a bugfix release for 2014.7.0\&.
  263214. .sp
  263215. Changes:
  263216. .INDENT 0.0
  263217. .IP \(bu 2
  263218. Fixed a key error bug in salt\-cloud
  263219. .IP \(bu 2
  263220. Updated man pages to better match documentation
  263221. .IP \(bu 2
  263222. Fixed bug concerning high CPU usage with salt\-ssh
  263223. .IP \(bu 2
  263224. Fixed bugs with remounting cvfs and fuse filesystems
  263225. .IP \(bu 2
  263226. Fixed bug with alowing requisite tracking of entire sls files
  263227. .IP \(bu 2
  263228. Fixed bug with aptpkg.mod_repo returning OK even if apt\-add\-repository fails
  263229. .IP \(bu 2
  263230. Increased frequency of ssh terminal output checking
  263231. .IP \(bu 2
  263232. Fixed malformed locale string in localmod module
  263233. .IP \(bu 2
  263234. Fixed checking of available version of package when accept_keywords were changed
  263235. .IP \(bu 2
  263236. Fixed bug to make git.latest work with empty repositories
  263237. .IP \(bu 2
  263238. Added **kwargs to service.mod_watch which removes warnings about \fIenable\fP and \fI__reqs__\fP not being supported by the function
  263239. .IP \(bu 2
  263240. Improved state comments to not grow so quickly on failed requisites
  263241. .IP \(bu 2
  263242. Added force argument to service to trigger force_reload
  263243. .IP \(bu 2
  263244. Fixed bug to andle pkgrepo keyids that have been converted to int
  263245. .IP \(bu 2
  263246. Fixed module.portage_config bug with appending accept_keywords
  263247. .IP \(bu 2
  263248. Fixed bug to correctly report disk usage on windows minion
  263249. .IP \(bu 2
  263250. Added the ability to specify key prefix for S3 ext_pillar
  263251. .IP \(bu 2
  263252. Fixed issues with batch mode operating on the incorrect number of minions
  263253. .IP \(bu 2
  263254. Fixed a bug with the proxmox cloud provider stacktracing on disk definition
  263255. .IP \(bu 2
  263256. Fixed a bug with the changes dictionary in the file state
  263257. .IP \(bu 2
  263258. Fixed the TCP keep alive settings to work better with SREQ caching
  263259. .IP \(bu 2
  263260. Fixed many bugs within the iptables state and module
  263261. .IP \(bu 2
  263262. Fixed bug with states by adding \fIfun\fP, \fIstate\fP, and \fIunless\fP to the state runtime internal keywords listing
  263263. .IP \(bu 2
  263264. Added ability to eAuth against Active Directory
  263265. .IP \(bu 2
  263266. Fixed some salt\-ssh issues when running on Fedora 21
  263267. .IP \(bu 2
  263268. Fixed grains.get_or_set_hash to work with multiple entries under same key
  263269. .IP \(bu 2
  263270. Added better explanations and more examples of how the Reactor calls functions to docs
  263271. .IP \(bu 2
  263272. Fixed bug to not pass \fIex_config_drive\fP to libcloud unless it\(aqs explicitly enabled
  263273. .IP \(bu 2
  263274. Fixed bug with pip.install on windows
  263275. .IP \(bu 2
  263276. Fixed bug where puppet.run always returns a 0 retcode
  263277. .IP \(bu 2
  263278. Fixed race condition bug with minion scheduling via pillar
  263279. .IP \(bu 2
  263280. Made efficiency improvements and bug fixes to the windows installer
  263281. .IP \(bu 2
  263282. Updated environment variables to fix bug with pygit2 when running salt as non\-root user
  263283. .IP \(bu 2
  263284. Fixed cas behavior on data module \-\- data.cas was not saving changes
  263285. .IP \(bu 2
  263286. Fixed GPG rendering error
  263287. .IP \(bu 2
  263288. Fixed strace error in virt.query
  263289. .IP \(bu 2
  263290. Fixed stacktrace when running chef\-solo command
  263291. .IP \(bu 2
  263292. Fixed possible bug wherein uncaught exceptions seem to make zmq3 tip over when threading is involved
  263293. .IP \(bu 2
  263294. Fixed argument passing to the reactor
  263295. .IP \(bu 2
  263296. Fixed glibc caching to prevent bug where salt\-minion getaddrinfo in dns_check() never got updated nameservers
  263297. .UNINDENT
  263298. .sp
  263299. Known issues:
  263300. .INDENT 0.0
  263301. .IP \(bu 2
  263302. In multimaster mode, a minion may become temporarily unresponsive
  263303. if modules or pillars are refreshed at the same time that one
  263304. or more masters are down. This can be worked around by setting
  263305. \(aqauth_timeout\(aq and \(aqauth_tries\(aq down to shorter periods.
  263306. .UNINDENT
  263307. .SS Salt 2014.7.6 Release Notes
  263308. .INDENT 0.0
  263309. .TP
  263310. .B release
  263311. 2015\-05\-18
  263312. .UNINDENT
  263313. .sp
  263314. Version 2014.7.6 is a bugfix release for 2014.7.0\&.
  263315. .SS Statistics
  263316. .INDENT 0.0
  263317. .IP \(bu 2
  263318. Total Merges: \fB122\fP
  263319. .IP \(bu 2
  263320. Total Issue References: \fB66\fP
  263321. .IP \(bu 2
  263322. Total PR References: \fB166\fP
  263323. .IP \(bu 2
  263324. Contributors: \fB49\fP (\fI\%0xf10e\fP, \fI\%Azidburn\fP, \fI\%F30\fP, \fI\%JaseFace\fP, \fI\%JohannesEbke\fP, \fI\%aletourneau\fP, \fI\%aneeshusa\fP, \fI\%basepi\fP, \fI\%bastichelaar\fP, \fI\%bersace\fP, \fI\%cachedout\fP, \fI\%cedwards\fP, \fI\%cellscape\fP, \fI\%chris\-prince\fP, \fI\%clan\fP, \fI\%clinta\fP, \fI\%cr1st1p\fP, \fI\%cro\fP, \fI\%dr4Ke\fP, \fI\%ericfode\fP, \fI\%ether42\fP, \fI\%garethgreenaway\fP, \fI\%gtmanfred\fP, \fI\%hvnsweeting\fP, \fI\%jfindlay\fP, \fI\%jleroy\fP, \fI\%joejulian\fP, \fI\%justinta\fP, \fI\%kaithar\fP, \fI\%lorengordon\fP, \fI\%martinhoefling\fP, \fI\%mguegan\fP, \fI\%multani\fP, \fI\%notpeter\fP, \fI\%panticz\fP, \fI\%rallytime\fP, \fI\%rominf\fP, \fI\%rubic\fP, \fI\%s0undt3ch\fP, \fI\%skizunov\fP, \fI\%slinu3d\fP, \fI\%t0rrant\fP, \fI\%techhat\fP, \fI\%teizz\fP, \fI\%terminalmage\fP, \fI\%thatch45\fP, \fI\%twangboy\fP, \fI\%vdesjardins\fP, \fI\%vr\-jack\fP)
  263325. .UNINDENT
  263326. .SS Security Fix
  263327. .sp
  263328. \fBCVE\-2015\-4017\fP Certificates are not verified when connecting to server in
  263329. the Aliyun and Proxmox modules
  263330. .sp
  263331. Only users of the Aliyun or Proxmox cloud modules are at risk. The
  263332. vulnerability does not exist in the latest 2015.5.0 release of Salt.
  263333. .SS Changelog for v2014.7.5..v2014.7.6
  263334. .sp
  263335. \fIGenerated at: 2018\-05\-27 20:42:49 UTC\fP
  263336. .INDENT 0.0
  263337. .IP \(bu 2
  263338. \fBPR\fP \fI\%#23810\fP: (\fI\%rallytime\fP) Backport \fI\%#23757\fP to 2014.7
  263339. @ \fI2015\-05\-18 15:30:21 UTC\fP
  263340. .INDENT 2.0
  263341. .IP \(bu 2
  263342. \fBPR\fP \fI\%#23757\fP: (\fI\%clan\fP) use abspath, do not eliminating symlinks (refs: \fI\%#23810\fP)
  263343. .IP \(bu 2
  263344. aee00c83df Merge pull request \fI\%#23810\fP from rallytime/bp\-23757
  263345. .IP \(bu 2
  263346. fb32c32065 use abspath, do not eliminating symlinks
  263347. .UNINDENT
  263348. .IP \(bu 2
  263349. \fBISSUE\fP \fI\%#20198\fP: (\fI\%jcftang\fP) virt.get_graphics, virt.get_nics are broken, in turn breaking other things (refs: \fI\%#23809\fP, \fI\%#21469\fP)
  263350. .IP \(bu 2
  263351. \fBPR\fP \fI\%#23809\fP: (\fI\%rallytime\fP) Fix virtualport section of virt.get_nics loop
  263352. @ \fI2015\-05\-18 15:30:09 UTC\fP
  263353. .INDENT 2.0
  263354. .IP \(bu 2
  263355. \fBPR\fP \fI\%#21487\fP: (\fI\%rallytime\fP) Backport \fI\%#21469\fP to 2014.7 (refs: \fI\%#23809\fP)
  263356. .IP \(bu 2
  263357. \fBPR\fP \fI\%#21469\fP: (\fI\%vdesjardins\fP) fixes \fI\%#20198\fP: virt.get_graphics and virt.get_nics calls in module virt (refs: \fI\%#21487\fP)
  263358. .IP \(bu 2
  263359. 6b3352bb1a Merge pull request \fI\%#23809\fP from rallytime/virt_get_nics_fix
  263360. .IP \(bu 2
  263361. 0616fb7884 Fix virtualport section of virt.get_nics loop
  263362. .UNINDENT
  263363. .IP \(bu 2
  263364. \fBPR\fP \fI\%#23823\fP: (\fI\%gtmanfred\fP) add link local for ipv6
  263365. @ \fI2015\-05\-17 12:48:25 UTC\fP
  263366. .INDENT 2.0
  263367. .IP \(bu 2
  263368. 188f03f567 Merge pull request \fI\%#23823\fP from gtmanfred/2014.7
  263369. .IP \(bu 2
  263370. 5ef006d59d add link local for ipv6
  263371. .UNINDENT
  263372. .IP \(bu 2
  263373. \fBPR\fP \fI\%#23802\fP: (\fI\%gtmanfred\fP) if it is ipv6 ip_to_int will fail
  263374. @ \fI2015\-05\-16 04:06:59 UTC\fP
  263375. .INDENT 2.0
  263376. .IP \(bu 2
  263377. \fBPR\fP \fI\%#23573\fP: (\fI\%techhat\fP) Scan all available networks for public and private IPs (refs: \fI\%#23802\fP)
  263378. .IP \(bu 2
  263379. f3ca682f92 Merge pull request \fI\%#23802\fP from gtmanfred/2014.7
  263380. .IP \(bu 2
  263381. 2da98b58c8 if it is ipv6 ip_to_int will fail
  263382. .UNINDENT
  263383. .IP \(bu 2
  263384. \fBPR\fP \fI\%#23488\fP: (\fI\%cellscape\fP) LXC cloud fixes
  263385. @ \fI2015\-05\-15 18:09:35 UTC\fP
  263386. .INDENT 2.0
  263387. .IP \(bu 2
  263388. d9af0c3e82 Merge pull request \fI\%#23488\fP from cellscape/lxc\-cloud\-fixes
  263389. .IP \(bu 2
  263390. 64250a67e5 Remove profile from opts after creating LXC container
  263391. .IP \(bu 2
  263392. c4047d2a71 Set destroy=True in opts when destroying cloud instance
  263393. .IP \(bu 2
  263394. 9e1311a7cd Store instance names in opts when performing cloud action
  263395. .IP \(bu 2
  263396. 934bc57c73 Correctly pass custom env to lxc\-attach
  263397. .IP \(bu 2
  263398. 7fb85f7be1 Preserve test=True option in cloud states
  263399. .IP \(bu 2
  263400. 9771b5a313 Fix detection of absent LXC container in cloud state
  263401. .IP \(bu 2
  263402. fb24f0cf02 Report failure when failed to create/clone LXC container
  263403. .IP \(bu 2
  263404. 2d9aa2bb97 Avoid shadowing variables in lxc module
  263405. .IP \(bu 2
  263406. 792e1021f2 Allow to override profile options in lxc.cloud_init_interface
  263407. .IP \(bu 2
  263408. 42bd64b9b3 Return changes on successful lxc.create from salt\-cloud
  263409. .IP \(bu 2
  263410. 4409eabb83 Return correct result when creating cloud LXC container
  263411. .IP \(bu 2
  263412. 377015c881 Issue \fI\%#16424\fP: List all providers when creating salt\-cloud instance without profile
  263413. .UNINDENT
  263414. .IP \(bu 2
  263415. \fBISSUE\fP \fI\%#22332\fP: (\fI\%rallytime\fP) [salt\-ssh] Add a check for host in /etc/salt/roster (refs: \fI\%#23748\fP)
  263416. .IP \(bu 2
  263417. \fBPR\fP \fI\%#23748\fP: (\fI\%basepi\fP) [2014.7] Log salt\-ssh roster render errors more assertively and verbosely
  263418. @ \fI2015\-05\-14 22:38:10 UTC\fP
  263419. .INDENT 2.0
  263420. .IP \(bu 2
  263421. 808bbe1cb2 Merge pull request \fI\%#23748\fP from basepi/salt\-ssh.roster.host.check
  263422. .IP \(bu 2
  263423. bc53e049e0 Log entire exception for render errors in roster
  263424. .IP \(bu 2
  263425. 753de6a621 Log render errors in roster to error level
  263426. .IP \(bu 2
  263427. e01a7a90b3 Always let the real YAML error through
  263428. .UNINDENT
  263429. .IP \(bu 2
  263430. \fBISSUE\fP \fI\%#22959\fP: (\fI\%highlyunavailable\fP) Windows Salt hangs if file.directory is trying to write to a drive that doesn\(aqt exist (refs: \fI\%#23731\fP)
  263431. .IP \(bu 2
  263432. \fBPR\fP \fI\%#23731\fP: (\fI\%twangboy\fP) Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  263433. @ \fI2015\-05\-14 21:59:14 UTC\fP
  263434. .INDENT 2.0
  263435. .IP \(bu 2
  263436. 72cf360255 Merge pull request \fI\%#23731\fP from twangboy/fix_22959
  263437. .IP \(bu 2
  263438. 88e5495b2d Fixes \fI\%#22959\fP: Trying to add a directory to an unmapped drive in windows
  263439. .UNINDENT
  263440. .IP \(bu 2
  263441. \fBPR\fP \fI\%#23730\fP: (\fI\%rallytime\fP) Backport \fI\%#23729\fP to 2014.7
  263442. @ \fI2015\-05\-14 21:58:34 UTC\fP
  263443. .INDENT 2.0
  263444. .IP \(bu 2
  263445. \fBPR\fP \fI\%#23729\fP: (\fI\%rallytime\fP) Partially merge \fI\%#23437\fP (grains fix) (refs: \fI\%#23730\fP)
  263446. .IP \(bu 2
  263447. \fBPR\fP \fI\%#23437\fP: (\fI\%cedwards\fP) Grains item patch (refs: \fI\%#23729\fP)
  263448. .IP \(bu 2
  263449. 2610195262 Merge pull request \fI\%#23730\fP from rallytime/bp\-23729
  263450. .IP \(bu 2
  263451. 1877caecba adding support for nested grains to grains.item
  263452. .UNINDENT
  263453. .IP \(bu 2
  263454. \fBPR\fP \fI\%#23688\fP: (\fI\%twangboy\fP) Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  263455. @ \fI2015\-05\-14 16:15:56 UTC\fP
  263456. .INDENT 2.0
  263457. .IP \(bu 2
  263458. 3e9df883d6 Merge pull request \fI\%#23688\fP from twangboy/fix_23415
  263459. .IP \(bu 2
  263460. 6a91169bae Fixed unused\-import pylint error
  263461. .IP \(bu 2
  263462. 5e25b3f355 fixed pylint errors
  263463. .IP \(bu 2
  263464. 1a9676626f Added inet_pton to utils/validate/net.py for ip.set_static_ip in windows
  263465. .UNINDENT
  263466. .IP \(bu 2
  263467. \fBISSUE\fP \fI\%#23403\fP: (\fI\%iamfil\fP) salt.runners.cloud.action fun parameter is replaced (refs: \fI\%#23680\fP)
  263468. .IP \(bu 2
  263469. \fBPR\fP \fI\%#23680\fP: (\fI\%cachedout\fP) Rename kwarg in cloud runner
  263470. @ \fI2015\-05\-13 19:44:02 UTC\fP
  263471. .INDENT 2.0
  263472. .IP \(bu 2
  263473. 1b86460d73 Merge pull request \fI\%#23680\fP from cachedout/issue_23403
  263474. .IP \(bu 2
  263475. d5986c21b4 Rename kwarg in cloud runner
  263476. .UNINDENT
  263477. .IP \(bu 2
  263478. \fBISSUE\fP \fI\%#23548\fP: (\fI\%kkaig\fP) grains.list_present produces incorrect (?) output (refs: \fI\%#23674\fP)
  263479. .IP \(bu 2
  263480. \fBPR\fP \fI\%#23674\fP: (\fI\%cachedout\fP) Handle lists correctly in grains.list_prsesent
  263481. @ \fI2015\-05\-13 18:34:58 UTC\fP
  263482. .INDENT 2.0
  263483. .IP \(bu 2
  263484. cd64af0ce4 Merge pull request \fI\%#23674\fP from cachedout/issue_23548
  263485. .IP \(bu 2
  263486. da8a2f5cb3 Handle lists correctly in grains.list_prsesent
  263487. .UNINDENT
  263488. .IP \(bu 2
  263489. \fBPR\fP \fI\%#23672\fP: (\fI\%twangboy\fP) Fix user present
  263490. @ \fI2015\-05\-13 18:30:09 UTC\fP
  263491. .INDENT 2.0
  263492. .IP \(bu 2
  263493. d322a19213 Merge pull request \fI\%#23672\fP from twangboy/fix_user_present
  263494. .IP \(bu 2
  263495. 731e7af3dd Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_user_present
  263496. .IP \(bu 2
  263497. d6f70a4545 Fixed user.present to create password in windows
  263498. .UNINDENT
  263499. .IP \(bu 2
  263500. \fBISSUE\fP \fI\%#23604\fP: (\fI\%Azidburn\fP) service.dead on systemd Minion create an Error Message (refs: \fI\%#23607\fP)
  263501. .IP \(bu 2
  263502. \fBPR\fP \fI\%#23670\fP: (\fI\%rallytime\fP) Backport \fI\%#23607\fP to 2014.7
  263503. @ \fI2015\-05\-13 18:27:17 UTC\fP
  263504. .INDENT 2.0
  263505. .IP \(bu 2
  263506. \fBPR\fP \fI\%#23607\fP: (\fI\%Azidburn\fP) Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok (refs: \fI\%#23670\fP)
  263507. .IP \(bu 2
  263508. 43f7025000 Merge pull request \fI\%#23670\fP from rallytime/bp\-23607
  263509. .IP \(bu 2
  263510. ed30dc4642 Fix for \fI\%#23604\fP\&. No error reporting. Exitcode !=0 are ok
  263511. .UNINDENT
  263512. .IP \(bu 2
  263513. \fBISSUE\fP \fI\%#22141\fP: (\fI\%Deshke\fP) grains.get_or_set_hash render error if hash begins with "%" (refs: \fI\%#23640\fP)
  263514. .IP \(bu 2
  263515. \fBPR\fP \fI\%#23661\fP: (\fI\%rallytime\fP) Merge \fI\%#23640\fP with whitespace fix
  263516. @ \fI2015\-05\-13 15:47:30 UTC\fP
  263517. .INDENT 2.0
  263518. .IP \(bu 2
  263519. \fBPR\fP \fI\%#23640\fP: (\fI\%cachedout\fP) Add warning to get_or_set_hash about reserved chars (refs: \fI\%#23661\fP)
  263520. .IP \(bu 2
  263521. 0f006ac1d8 Merge pull request \fI\%#23661\fP from rallytime/merge\-23640
  263522. .IP \(bu 2
  263523. 4427f42bb6 Whitespace fix
  263524. .IP \(bu 2
  263525. dd9115466e Add warning to get_or_set_hash about reserved chars
  263526. .UNINDENT
  263527. .IP \(bu 2
  263528. \fBISSUE\fP \fI\%#23452\fP: (\fI\%landergate\fP) minion crashed with empty grain (refs: \fI\%#23639\fP)
  263529. .IP \(bu 2
  263530. \fBPR\fP \fI\%#23639\fP: (\fI\%cachedout\fP) Handle exceptions raised by __virtual__
  263531. @ \fI2015\-05\-13 15:11:12 UTC\fP
  263532. .INDENT 2.0
  263533. .IP \(bu 2
  263534. 84e2ef88fc Merge pull request \fI\%#23639\fP from cachedout/issue_23452
  263535. .IP \(bu 2
  263536. d418b49a77 Syntax error!
  263537. .IP \(bu 2
  263538. 45b4015d7d Handle exceptions raised by __virtual__
  263539. .UNINDENT
  263540. .IP \(bu 2
  263541. \fBISSUE\fP \fI\%#23611\fP: (\fI\%hubez\fP) master_type set to \(aqfailover\(aq but \(aqmaster\(aq is not of type list but of type <type \(aqstr\(aq> (refs: \fI\%#23637\fP)
  263542. .IP \(bu 2
  263543. \fBPR\fP \fI\%#23637\fP: (\fI\%cachedout\fP) Convert str master to list
  263544. @ \fI2015\-05\-13 15:08:19 UTC\fP
  263545. .INDENT 2.0
  263546. .IP \(bu 2
  263547. bd9b94ba8c Merge pull request \fI\%#23637\fP from cachedout/issue_23611
  263548. .IP \(bu 2
  263549. 56cb1f52e3 Fix typo
  263550. .IP \(bu 2
  263551. f6fcf19a7f Convert str master to list
  263552. .UNINDENT
  263553. .IP \(bu 2
  263554. \fBPR\fP \fI\%#23595\fP: (\fI\%rallytime\fP) Backport \fI\%#23549\fP to 2014.7
  263555. @ \fI2015\-05\-12 21:19:40 UTC\fP
  263556. .INDENT 2.0
  263557. .IP \(bu 2
  263558. \fBPR\fP \fI\%#23549\fP: (\fI\%vr\-jack\fP) Update __init__.py (refs: \fI\%#23595\fP)
  263559. .IP \(bu 2
  263560. f20c0e42ce Merge pull request \fI\%#23595\fP from rallytime/bp\-23549
  263561. .IP \(bu 2
  263562. 6efcac09ad Update __init__.py
  263563. .UNINDENT
  263564. .IP \(bu 2
  263565. \fBISSUE\fP \fI\%#23110\fP: (\fI\%martinhoefling\fP) Copying files from gitfs in file.recurse state fails (refs: \fI\%#23496\fP)
  263566. .IP \(bu 2
  263567. \fBPR\fP \fI\%#23594\fP: (\fI\%rallytime\fP) Backport \fI\%#23496\fP to 2014.7
  263568. @ \fI2015\-05\-12 21:19:34 UTC\fP
  263569. .INDENT 2.0
  263570. .IP \(bu 2
  263571. \fBPR\fP \fI\%#23496\fP: (\fI\%martinhoefling\fP) Fix for issue \fI\%#23110\fP (refs: \fI\%#23594\fP)
  263572. .IP \(bu 2
  263573. 1acaf86da7 Merge pull request \fI\%#23594\fP from rallytime/bp\-23496
  263574. .IP \(bu 2
  263575. d5ae1d268a Fix for issue \fI\%#23110\fP This resolves issues when the freshly created directory is removed by fileserver.update.
  263576. .UNINDENT
  263577. .IP \(bu 2
  263578. \fBPR\fP \fI\%#23593\fP: (\fI\%rallytime\fP) Backport \fI\%#23442\fP to 2014.7
  263579. @ \fI2015\-05\-12 21:19:26 UTC\fP
  263580. .INDENT 2.0
  263581. .IP \(bu 2
  263582. \fBPR\fP \fI\%#23442\fP: (\fI\%clan\fP) add directory itself to keep list (refs: \fI\%#23593\fP)
  263583. .IP \(bu 2
  263584. 2c221c7332 Merge pull request \fI\%#23593\fP from rallytime/bp\-23442
  263585. .IP \(bu 2
  263586. 39869a15bd check w/ low[\(aqname\(aq] only
  263587. .IP \(bu 2
  263588. 304cc499e9 another fix for file defined w/ id, but require name
  263589. .IP \(bu 2
  263590. 8814d4180e add directory itself to keep list
  263591. .UNINDENT
  263592. .IP \(bu 2
  263593. \fBPR\fP \fI\%#23606\fP: (\fI\%twangboy\fP) Fixed checkbox for starting service and actually starting it
  263594. @ \fI2015\-05\-12 21:18:50 UTC\fP
  263595. .INDENT 2.0
  263596. .IP \(bu 2
  263597. fadd1ef63c Merge pull request \fI\%#23606\fP from twangboy/fix_installer
  263598. .IP \(bu 2
  263599. 038331edab Fixed checkbox for starting service and actually starting it
  263600. .UNINDENT
  263601. .IP \(bu 2
  263602. \fBISSUE\fP \fI\%#22908\fP: (\fI\%karanjad\fP) Add failhard option to salt orchestration (refs: \fI\%#23389\fP)
  263603. .IP \(bu 2
  263604. \fBPR\fP \fI\%#23592\fP: (\fI\%rallytime\fP) Backport \fI\%#23389\fP to 2014.7
  263605. @ \fI2015\-05\-12 16:44:42 UTC\fP
  263606. .INDENT 2.0
  263607. .IP \(bu 2
  263608. \fBPR\fP \fI\%#23389\fP: (\fI\%cachedout\fP) Correct fail_hard typo (refs: \fI\%#23592\fP)
  263609. .IP \(bu 2
  263610. 10b3f0f643 Merge pull request \fI\%#23592\fP from rallytime/bp\-23389
  263611. .IP \(bu 2
  263612. 734cc43801 Correct fail_hard typo
  263613. .UNINDENT
  263614. .IP \(bu 2
  263615. \fBPR\fP \fI\%#23573\fP: (\fI\%techhat\fP) Scan all available networks for public and private IPs (refs: \fI\%#23802\fP)
  263616. @ \fI2015\-05\-12 15:22:22 UTC\fP
  263617. .INDENT 2.0
  263618. .IP \(bu 2
  263619. cd34b9b6c4 Merge pull request \fI\%#23573\fP from techhat/novaquery
  263620. .IP \(bu 2
  263621. f92db5e92f Linting
  263622. .IP \(bu 2
  263623. 26e00d3ccc Scan all available networks for public and private IPs
  263624. .UNINDENT
  263625. .IP \(bu 2
  263626. \fBISSUE\fP \fI\%#23479\fP: (\fI\%danielmorlock\fP) Typo in pkg.removed for Gentoo? (refs: \fI\%#23558\fP)
  263627. .IP \(bu 2
  263628. \fBPR\fP \fI\%#23558\fP: (\fI\%jfindlay\fP) reorder emerge command line
  263629. @ \fI2015\-05\-12 15:17:46 UTC\fP
  263630. .INDENT 2.0
  263631. .IP \(bu 2
  263632. 2a72cd71c2 Merge pull request \fI\%#23558\fP from jfindlay/fix_ebuild
  263633. .IP \(bu 2
  263634. 45404fb2a6 reorder emerge command line
  263635. .UNINDENT
  263636. .IP \(bu 2
  263637. \fBISSUE\fP \fI\%#23355\fP: (\fI\%dr4Ke\fP) salt\-ssh: \(aqsources: salt://\(aq files from \(aqpkg\(aq state are not included in salt_state.tgz (refs: \fI\%#23530\fP)
  263638. .IP \(bu 2
  263639. \fBPR\fP \fI\%#23530\fP: (\fI\%dr4Ke\fP) salt\-ssh state: fix including all salt:// references
  263640. @ \fI2015\-05\-12 15:13:43 UTC\fP
  263641. .INDENT 2.0
  263642. .IP \(bu 2
  263643. a664a3c6fd Merge pull request \fI\%#23530\fP from dr4Ke/fix_salt\-ssh_to_include_pkg_sources
  263644. .IP \(bu 2
  263645. 5df6a8008c fix pylint warning
  263646. .IP \(bu 2
  263647. d0549e56ba salt\-ssh state: fix including all salt:// references
  263648. .UNINDENT
  263649. .IP \(bu 2
  263650. \fBISSUE\fP \fI\%#23004\fP: (\fI\%b18\fP) 2014.7.5 \- Windows \- pkg.list_pkgs \- "nxlog" never shows up in output. (refs: \fI\%#23433\fP)
  263651. .IP \(bu 2
  263652. \fBPR\fP \fI\%#23433\fP: (\fI\%twangboy\fP) Obtain all software from the registry
  263653. @ \fI2015\-05\-11 22:47:52 UTC\fP
  263654. .INDENT 2.0
  263655. .IP \(bu 2
  263656. 55c3869861 Merge pull request \fI\%#23433\fP from twangboy/list_pkgs_fix
  263657. .IP \(bu 2
  263658. 8ab5b1b86f Fix pylint error
  263659. .IP \(bu 2
  263660. 2d11d6545e Obtain all software from the registry
  263661. .UNINDENT
  263662. .IP \(bu 2
  263663. \fBPR\fP \fI\%#23554\fP: (\fI\%jleroy\fP) Debian: Hostname always updated
  263664. @ \fI2015\-05\-11 21:57:00 UTC\fP
  263665. .INDENT 2.0
  263666. .IP \(bu 2
  263667. 755bed0abd Merge pull request \fI\%#23554\fP from jleroy/debian\-hostname\-fix
  263668. .IP \(bu 2
  263669. 5ff749e487 Debian: Hostname always updated
  263670. .UNINDENT
  263671. .IP \(bu 2
  263672. \fBISSUE\fP \fI\%#23411\fP: (\fI\%dr4Ke\fP) grains.append should work at any level of a grain (refs: \fI\%#23440\fP, \fI\%#23474\fP)
  263673. .IP \(bu 2
  263674. \fBPR\fP \fI\%#23551\fP: (\fI\%dr4Ke\fP) grains.append unit tests, related to \fI\%#23474\fP
  263675. @ \fI2015\-05\-11 21:54:25 UTC\fP
  263676. .INDENT 2.0
  263677. .IP \(bu 2
  263678. \fBPR\fP \fI\%#23474\fP: (\fI\%dr4Ke\fP) Fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23551\fP)
  263679. .IP \(bu 2
  263680. \fBPR\fP \fI\%#23440\fP: (\fI\%dr4Ke\fP) fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23474\fP)
  263681. .IP \(bu 2
  263682. 6ec87ce9f5 Merge pull request \fI\%#23551\fP from dr4Ke/grains.append_unit_tests
  263683. .IP \(bu 2
  263684. ebff9df5b2 fix pylint errors
  263685. .IP \(bu 2
  263686. c4954046ad unit tests for grains.append module function
  263687. .IP \(bu 2
  263688. 0c9a32326c use MagickMock
  263689. .IP \(bu 2
  263690. c838a22377 unit tests for grains.append module function
  263691. .UNINDENT
  263692. .IP \(bu 2
  263693. \fBISSUE\fP \fI\%#23411\fP: (\fI\%dr4Ke\fP) grains.append should work at any level of a grain (refs: \fI\%#23440\fP, \fI\%#23474\fP)
  263694. .IP \(bu 2
  263695. \fBPR\fP \fI\%#23474\fP: (\fI\%dr4Ke\fP) Fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23551\fP)
  263696. @ \fI2015\-05\-11 18:00:21 UTC\fP
  263697. .INDENT 2.0
  263698. .IP \(bu 2
  263699. \fBPR\fP \fI\%#23440\fP: (\fI\%dr4Ke\fP) fix grains.append in nested dictionnary grains \fI\%#23411\fP (refs: \fI\%#23474\fP)
  263700. .IP \(bu 2
  263701. e96c5c5bf3 Merge pull request \fI\%#23474\fP from dr4Ke/fix_grains.append_nested
  263702. .IP \(bu 2
  263703. a01a5bb51e grains.get, parameter delimititer, versionadded: 2014.7.6
  263704. .IP \(bu 2
  263705. b39f50475d remove debugging output
  263706. .IP \(bu 2
  263707. b6e15e295c fix grains.append in nested dictionnary grains \fI\%#23411\fP
  263708. .UNINDENT
  263709. .IP \(bu 2
  263710. \fBPR\fP \fI\%#23537\fP: (\fI\%t0rrant\fP) Update changelog
  263711. @ \fI2015\-05\-11 17:02:16 UTC\fP
  263712. .INDENT 2.0
  263713. .IP \(bu 2
  263714. ab7e1aed8e Merge pull request \fI\%#23537\fP from t0rrant/patch\-1
  263715. .IP \(bu 2
  263716. 8e03cc99d3 Update changelog
  263717. .UNINDENT
  263718. .IP \(bu 2
  263719. \fBPR\fP \fI\%#23538\fP: (\fI\%cro\fP) Update date in LICENSE file
  263720. @ \fI2015\-05\-11 15:19:25 UTC\fP
  263721. .INDENT 2.0
  263722. .IP \(bu 2
  263723. b79fed3a92 Merge pull request \fI\%#23538\fP from cro/licupdate
  263724. .IP \(bu 2
  263725. 345efe25c9 Update date in LICENSE file
  263726. .UNINDENT
  263727. .IP \(bu 2
  263728. \fBISSUE\fP \fI\%#23159\fP: (\fI\%aneeshusa\fP) Unused validator (refs: \fI\%#23505\fP)
  263729. .IP \(bu 2
  263730. \fBPR\fP \fI\%#23505\fP: (\fI\%aneeshusa\fP) Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  263731. @ \fI2015\-05\-09 13:24:15 UTC\fP
  263732. .INDENT 2.0
  263733. .IP \(bu 2
  263734. a123a36f05 Merge pull request \fI\%#23505\fP from aneeshusa/remove\-unused\-ssh\-config\-validator
  263735. .IP \(bu 2
  263736. 90af1672ca Remove unused ssh config validator. Fixes \fI\%#23159\fP\&.
  263737. .UNINDENT
  263738. .IP \(bu 2
  263739. \fBISSUE\fP \fI\%#20518\fP: (\fI\%ekle\fP) module s3.get does not support eu\-central\-1 (refs: \fI\%#23467\fP)
  263740. .IP \(bu 2
  263741. \fBPR\fP \fI\%#23467\fP: (\fI\%slinu3d\fP) Added AWS v4 signature support
  263742. @ \fI2015\-05\-08 14:36:19 UTC\fP
  263743. .INDENT 2.0
  263744. .IP \(bu 2
  263745. ca2c21a63c Merge pull request \fI\%#23467\fP from slinu3d/2014.7
  263746. .IP \(bu 2
  263747. 0b4081d8f4 Fixed pylint error at line 363
  263748. .IP \(bu 2
  263749. 5be5eb5b14 Fixed pylink errors
  263750. .IP \(bu 2
  263751. e64f374ffa Fixed lint errors
  263752. .IP \(bu 2
  263753. b9d1ac4f1f Added AWS v4 signature support
  263754. .UNINDENT
  263755. .IP \(bu 2
  263756. \fBPR\fP \fI\%#23444\fP: (\fI\%techhat\fP) Add create_attach_volume to nova driver
  263757. @ \fI2015\-05\-07 19:51:32 UTC\fP
  263758. .INDENT 2.0
  263759. .IP \(bu 2
  263760. e6f9eec02e Merge pull request \fI\%#23444\fP from techhat/novacreateattach
  263761. .IP \(bu 2
  263762. ebdb7eae2d Add create_attach_volume to nova driver
  263763. .UNINDENT
  263764. .IP \(bu 2
  263765. \fBISSUE\fP \fI\%#529\fP: (\fI\%rubic\fP) run salt in user space (refs: \fI\%#543\fP)
  263766. .INDENT 2.0
  263767. .IP \(bu 2
  263768. \fBPR\fP \fI\%saltstack/salt\-bootstrap#563\fP: (\fI\%notpeter\fP) Ubuntu alternate ppas (refs: \fI\%#23460\fP)
  263769. .IP \(bu 2
  263770. \fBPR\fP \fI\%#543\fP: (\fI\%rubic\fP) updated documentation for user, fixed configuration template links (refs: #\(gasaltstack/salt\-bootstrap#563\(ga_)
  263771. .UNINDENT
  263772. .IP \(bu 2
  263773. \fBPR\fP \fI\%#23460\fP: (\fI\%s0undt3ch\fP) [2014.7] Update to latest stable bootstrap script v2015.05.07
  263774. @ \fI2015\-05\-07 19:10:54 UTC\fP
  263775. .INDENT 2.0
  263776. .IP \(bu 2
  263777. e331463319 Merge pull request \fI\%#23460\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  263778. .IP \(bu 2
  263779. edcd0c41f2 Update to latest stable bootstrap script v2015.05.07
  263780. .UNINDENT
  263781. .IP \(bu 2
  263782. \fBPR\fP \fI\%#23439\fP: (\fI\%techhat\fP) Add wait_for_passwd_maxtries variable
  263783. @ \fI2015\-05\-07 07:28:56 UTC\fP
  263784. .INDENT 2.0
  263785. .IP \(bu 2
  263786. 7a8ce1a954 Merge pull request \fI\%#23439\fP from techhat/maxtries
  263787. .IP \(bu 2
  263788. 0ad3ff2c88 Add wait_for_passwd_maxtries variable
  263789. .UNINDENT
  263790. .IP \(bu 2
  263791. \fBPR\fP \fI\%#23422\fP: (\fI\%cro\fP) $HOME should not be used, some shells don\(aqt set it.
  263792. @ \fI2015\-05\-06 21:02:36 UTC\fP
  263793. .INDENT 2.0
  263794. .IP \(bu 2
  263795. 644eb75fec Merge pull request \fI\%#23422\fP from cro/gce_sh_home
  263796. .IP \(bu 2
  263797. 4ef9e6ba06 Don\(aqt use $HOME to find user\(aqs directory, some shells don\(aqt set it
  263798. .UNINDENT
  263799. .IP \(bu 2
  263800. \fBPR\fP \fI\%#23425\fP: (\fI\%basepi\fP) [2014.7] Fix typo in FunctionWrapper
  263801. @ \fI2015\-05\-06 20:38:03 UTC\fP
  263802. .INDENT 2.0
  263803. .IP \(bu 2
  263804. ef17ab4b2a Merge pull request \fI\%#23425\fP from basepi/functionwrapper_typo
  263805. .IP \(bu 2
  263806. c390737f3e Fix typo in FunctionWrapper
  263807. .UNINDENT
  263808. .IP \(bu 2
  263809. \fBPR\fP \fI\%#23385\fP: (\fI\%rallytime\fP) Backport \fI\%#23346\fP to 2014.7
  263810. @ \fI2015\-05\-06 20:12:29 UTC\fP
  263811. .INDENT 2.0
  263812. .IP \(bu 2
  263813. \fBPR\fP \fI\%#23346\fP: (\fI\%ericfode\fP) Allow file_map in salt\-cloud to handle folders. (refs: \fI\%#23385\fP)
  263814. .IP \(bu 2
  263815. 1b13ec04c2 Merge pull request \fI\%#23385\fP from rallytime/bp\-23346
  263816. .IP \(bu 2
  263817. 9efc13c810 more linting fixes
  263818. .IP \(bu 2
  263819. cf131c9a5a cleaned up some pylint errors
  263820. .IP \(bu 2
  263821. f981699c75 added logic to sftp_file and file_map to allow folder uploads using file_map
  263822. .UNINDENT
  263823. .IP \(bu 2
  263824. \fBPR\fP \fI\%#23414\fP: (\fI\%jfindlay\fP) 2015.2 \-> 2015.5
  263825. @ \fI2015\-05\-06 20:04:02 UTC\fP
  263826. .INDENT 2.0
  263827. .IP \(bu 2
  263828. f8c7a62089 Merge pull request \fI\%#23414\fP from jfindlay/update_branch
  263829. .IP \(bu 2
  263830. 8074d16d52 2015.2 \-> 2015.5
  263831. .UNINDENT
  263832. .IP \(bu 2
  263833. \fBPR\fP \fI\%#23404\fP: (\fI\%hvnsweeting\fP) saltapi cherrypy: initialize var when POST body is empty
  263834. @ \fI2015\-05\-06 17:35:56 UTC\fP
  263835. .INDENT 2.0
  263836. .IP \(bu 2
  263837. 54b3bd43e4 Merge pull request \fI\%#23404\fP from hvnsweeting/cherrypy\-post\-emptybody\-fix
  263838. .IP \(bu 2
  263839. f85f8f954c initialize var when POST body is empty
  263840. .UNINDENT
  263841. .IP \(bu 2
  263842. \fBPR\fP \fI\%#23409\fP: (\fI\%terminalmage\fP) Update Lithium docstrings in 2014.7 branch
  263843. @ \fI2015\-05\-06 16:20:46 UTC\fP
  263844. .INDENT 2.0
  263845. .IP \(bu 2
  263846. 160f703296 Merge pull request \fI\%#23409\fP from terminalmage/update\-lithium\-docstrings\-2014.7
  263847. .IP \(bu 2
  263848. bc97d011ba Fix sphinx typo
  263849. .IP \(bu 2
  263850. 20006b06f6 Update Lithium docstrings in 2014.7 branch
  263851. .UNINDENT
  263852. .IP \(bu 2
  263853. \fBISSUE\fP \fI\%#17245\fP: (\fI\%tomashavlas\fP) localemod does not generate locale for Arch (refs: \fI\%#23397\fP, \fI\%#23307\fP)
  263854. .IP \(bu 2
  263855. \fBPR\fP \fI\%#23397\fP: (\fI\%jfindlay\fP) add more flexible whitespace to locale_gen search
  263856. @ \fI2015\-05\-06 03:44:11 UTC\fP
  263857. .INDENT 2.0
  263858. .IP \(bu 2
  263859. aa5fb0aa46 Merge pull request \fI\%#23397\fP from jfindlay/fix_locale_gen
  263860. .IP \(bu 2
  263861. 0941fefd2b add more flexible whitespace to locale_gen search
  263862. .UNINDENT
  263863. .IP \(bu 2
  263864. \fBPR\fP \fI\%#23368\fP: (\fI\%kaithar\fP) Backport \fI\%#23367\fP to 2014.7
  263865. @ \fI2015\-05\-05 21:42:26 UTC\fP
  263866. .INDENT 2.0
  263867. .IP \(bu 2
  263868. \fBPR\fP \fI\%#23367\fP: (\fI\%kaithar\fP) Put the sed insert statement back in to the output. (refs: \fI\%#23368\fP)
  263869. .IP \(bu 2
  263870. \fBPR\fP \fI\%#18368\fP: (\fI\%basepi\fP) Merge forward from 2014.7 to develop (refs: \fI\%#23368\fP, \fI\%#23367\fP)
  263871. .IP \(bu 2
  263872. 0c76dd4d8a Merge pull request \fI\%#23368\fP from kaithar/bp\-23367
  263873. .IP \(bu 2
  263874. 577f41972e Pylint fix
  263875. .IP \(bu 2
  263876. 8d9acd1f89 Put the sed insert statement back in to the output.
  263877. .UNINDENT
  263878. .IP \(bu 2
  263879. \fBISSUE\fP \fI\%#23294\fP: (\fI\%variia\fP) file.replace fails to append if repl string partially available (refs: \fI\%#23350\fP)
  263880. .IP \(bu 2
  263881. \fBPR\fP \fI\%#23350\fP: (\fI\%lorengordon\fP) Append/prepend: search for full line
  263882. @ \fI2015\-05\-05 21:42:11 UTC\fP
  263883. .INDENT 2.0
  263884. .IP \(bu 2
  263885. 3493cc1fca Merge pull request \fI\%#23350\fP from lorengordon/file.replace_assume_line
  263886. .IP \(bu 2
  263887. b60e224beb Append/prepend: search for full line
  263888. .UNINDENT
  263889. .IP \(bu 2
  263890. \fBISSUE\fP \fI\%#23026\fP: (\fI\%adelcast\fP) Incorrect salt\-syndic logfile and pidfile locations (refs: \fI\%#23341\fP)
  263891. .IP \(bu 2
  263892. \fBPR\fP \fI\%#23341\fP: (\fI\%cachedout\fP) Fix syndic pid and logfile path
  263893. @ \fI2015\-05\-05 21:29:10 UTC\fP
  263894. .INDENT 2.0
  263895. .IP \(bu 2
  263896. 7be5c48ad5 Merge pull request \fI\%#23341\fP from cachedout/issue_23026
  263897. .IP \(bu 2
  263898. e98e65e787 Fix tests
  263899. .IP \(bu 2
  263900. 6011b437ca Fix syndic pid and logfile path
  263901. .UNINDENT
  263902. .IP \(bu 2
  263903. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  263904. .IP \(bu 2
  263905. \fBPR\fP \fI\%#23272\fP: (\fI\%basepi\fP) [2014.7] Allow salt\-ssh minion config overrides via master config and roster (refs: \fI\%#23347\fP)
  263906. @ \fI2015\-05\-05 21:28:47 UTC\fP
  263907. .INDENT 2.0
  263908. .IP \(bu 2
  263909. \fBPR\fP \fI\%#23188\fP: (\fI\%basepi\fP) [2014.7] Work around bug in salt\-ssh in config.get for gpg renderer (refs: \fI\%#23272\fP)
  263910. .IP \(bu 2
  263911. ea61abfa68 Merge pull request \fI\%#23272\fP from basepi/salt\-ssh.minion.config.19114
  263912. .IP \(bu 2
  263913. c223309bb7 Add versionadded
  263914. .IP \(bu 2
  263915. be7407feae Lint
  263916. .IP \(bu 2
  263917. c2c337567e Missing comma
  263918. .IP \(bu 2
  263919. 8e3e8e073a Pass the minion_opts through the FunctionWrapper
  263920. .IP \(bu 2
  263921. cb69cd07de Match the master config template in the master config reference
  263922. .IP \(bu 2
  263923. 87fc3161f9 Add Salt\-SSH section to master config template
  263924. .IP \(bu 2
  263925. 91dd9dcbdc Add ssh_minion_opts to master config ref
  263926. .IP \(bu 2
  263927. c273ea14c6 Add minion config to salt\-ssh doc
  263928. .IP \(bu 2
  263929. a0b6b760c3 Add minion_opts to roster docs
  263930. .IP \(bu 2
  263931. 5212c35260 Accept minion_opts from the target information
  263932. .IP \(bu 2
  263933. e2099b6e1b Process \fIssh_minion_opts\fP from master config
  263934. .IP \(bu 2
  263935. 3b64214377 Revert "Work around bug in salt\-ssh in config.get for gpg renderer"
  263936. .IP \(bu 2
  263937. 494953a208 Remove the strip (embracing multi\-line YAML dump)
  263938. .IP \(bu 2
  263939. fe87f0fe39 Dump multi\-line yaml into the SHIM
  263940. .IP \(bu 2
  263941. b751a7281c Inject local minion config into shim if available
  263942. .UNINDENT
  263943. .IP \(bu 2
  263944. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  263945. .IP \(bu 2
  263946. \fBPR\fP \fI\%#23347\fP: (\fI\%basepi\fP) [2014.7] Salt\-SSH Backport FunctionWrapper.__contains__
  263947. @ \fI2015\-05\-05 14:13:21 UTC\fP
  263948. .INDENT 2.0
  263949. .IP \(bu 2
  263950. \fBPR\fP \fI\%#23272\fP: (\fI\%basepi\fP) [2014.7] Allow salt\-ssh minion config overrides via master config and roster (refs: \fI\%#23347\fP)
  263951. .IP \(bu 2
  263952. \fBPR\fP \fI\%#23188\fP: (\fI\%basepi\fP) [2014.7] Work around bug in salt\-ssh in config.get for gpg renderer (refs: \fI\%#23272\fP)
  263953. .IP \(bu 2
  263954. 4f760dd9cb Merge pull request \fI\%#23347\fP from basepi/salt\-ssh.functionwrapper.contains.19114
  263955. .IP \(bu 2
  263956. 30595e3ff7 Backport FunctionWrapper.__contains__
  263957. .UNINDENT
  263958. .IP \(bu 2
  263959. \fBISSUE\fP \fI\%#22742\fP: (\fI\%hvnsweeting\fP) salt\-master says: "This master address: \(aqsalt\(aq was previously resolvable but now fails to resolve!" (refs: \fI\%#23344\fP)
  263960. .IP \(bu 2
  263961. \fBPR\fP \fI\%#23344\fP: (\fI\%cachedout\fP) Explicitely set file_client on master
  263962. @ \fI2015\-05\-04 23:21:48 UTC\fP
  263963. .INDENT 2.0
  263964. .IP \(bu 2
  263965. 02658b1e60 Merge pull request \fI\%#23344\fP from cachedout/issue_22742
  263966. .IP \(bu 2
  263967. 5adc96ce7f Explicitely set file_client on master
  263968. .UNINDENT
  263969. .IP \(bu 2
  263970. \fBPR\fP \fI\%#23318\fP: (\fI\%cellscape\fP) Honor seed argument in LXC container initializaton
  263971. @ \fI2015\-05\-04 20:58:12 UTC\fP
  263972. .INDENT 2.0
  263973. .IP \(bu 2
  263974. \fBPR\fP \fI\%#23311\fP: (\fI\%cellscape\fP) Fix new container initialization in LXC runner (refs: \fI\%#23318\fP)
  263975. .IP \(bu 2
  263976. ba7605d1cb Merge pull request \fI\%#23318\fP from cellscape/honor\-seed\-argument
  263977. .IP \(bu 2
  263978. 228b1be299 Honor seed argument in LXC container initializaton
  263979. .UNINDENT
  263980. .IP \(bu 2
  263981. \fBISSUE\fP \fI\%#17245\fP: (\fI\%tomashavlas\fP) localemod does not generate locale for Arch (refs: \fI\%#23397\fP, \fI\%#23307\fP)
  263982. .IP \(bu 2
  263983. \fBPR\fP \fI\%#23307\fP: (\fI\%jfindlay\fP) check for /etc/locale.gen
  263984. @ \fI2015\-05\-04 20:56:32 UTC\fP
  263985. .INDENT 2.0
  263986. .IP \(bu 2
  263987. 4ac4509c57 Merge pull request \fI\%#23307\fP from jfindlay/fix_locale_gen
  263988. .IP \(bu 2
  263989. 101199ac14 check for /etc/locale.gen
  263990. .UNINDENT
  263991. .IP \(bu 2
  263992. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#580\fP: (\fI\%bradthurber\fP) git develop broken in centos6/rhel6/others? due to missing python tornado dep (refs: \fI\%#23324\fP)
  263993. .IP \(bu 2
  263994. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#560\fP: (\fI\%bradthurber\fP) param to avoid git install on CentOS/RHEL? (refs: \fI\%#23324\fP)
  263995. .IP \(bu 2
  263996. \fBISSUE\fP \fI\%#552\fP: (\fI\%jhutchins\fP) Support require and watch under the same state dec (refs: \fI\%#23324\fP)
  263997. .INDENT 2.0
  263998. .IP \(bu 2
  263999. \fBPR\fP \fI\%saltstack/salt\-bootstrap#589\fP: (\fI\%panticz\fP) Fix Debian Squeeze backports mirror (refs: \fI\%#23324\fP)
  264000. .IP \(bu 2
  264001. \fBPR\fP \fI\%saltstack/salt\-bootstrap#504\fP: (\fI\%rominf\fP) opensuse 13.2: fix installation (refs: \fI\%#23324\fP)
  264002. .IP \(bu 2
  264003. \fBPR\fP \fI\%#567\fP: (\fI\%bastichelaar\fP) Added upstart module (refs: \fI\%#23324\fP)
  264004. .UNINDENT
  264005. .IP \(bu 2
  264006. \fBPR\fP \fI\%#23324\fP: (\fI\%s0undt3ch\fP) [2014.7] Update to the latest stable release of the bootstrap script v2015.05.04
  264007. @ \fI2015\-05\-04 16:28:30 UTC\fP
  264008. .INDENT 2.0
  264009. .IP \(bu 2
  264010. f790f42ed6 Merge pull request \fI\%#23324\fP from s0undt3ch/hotfix/bootstrap\-script\-2014.7
  264011. .IP \(bu 2
  264012. 6643e47ce5 Update to the latest stable release of the bootstrap script v2015.05.04
  264013. .UNINDENT
  264014. .IP \(bu 2
  264015. \fBPR\fP \fI\%#23329\fP: (\fI\%cro\fP) Require requests to verify cert when talking to aliyun and proxmox cloud providers
  264016. @ \fI2015\-05\-04 16:18:17 UTC\fP
  264017. .INDENT 2.0
  264018. .IP \(bu 2
  264019. 5487367baa Merge pull request \fI\%#23329\fP from cro/cloud_verify_cert
  264020. .IP \(bu 2
  264021. 860d4b7338 Turn on ssl verify for requests.
  264022. .UNINDENT
  264023. .IP \(bu 2
  264024. \fBPR\fP \fI\%#23311\fP: (\fI\%cellscape\fP) Fix new container initialization in LXC runner (refs: \fI\%#23318\fP)
  264025. @ \fI2015\-05\-04 09:55:29 UTC\fP
  264026. .INDENT 2.0
  264027. .IP \(bu 2
  264028. ea2017672d Merge pull request \fI\%#23311\fP from cellscape/fix\-salt\-cloud\-lxc\-init
  264029. .IP \(bu 2
  264030. 76fbb34e7d Fix new container initialization in LXC runner
  264031. .UNINDENT
  264032. .IP \(bu 2
  264033. \fBISSUE\fP \fI\%#18880\fP: (\fI\%johtso\fP) npm installed breaks when a module is missing (refs: \fI\%#23298\fP)
  264034. .IP \(bu 2
  264035. \fBPR\fP \fI\%#23298\fP: (\fI\%chris\-prince\fP) Fixed issue \fI\%#18880\fP in 2014.7 branch
  264036. @ \fI2015\-05\-03 15:49:41 UTC\fP
  264037. .INDENT 2.0
  264038. .IP \(bu 2
  264039. c399b8f568 Merge pull request \fI\%#23298\fP from chris\-prince/2014.7
  264040. .IP \(bu 2
  264041. 0fa25dbb58 Fixed issue \fI\%#18880\fP in 2014.7 branch
  264042. .UNINDENT
  264043. .IP \(bu 2
  264044. \fBISSUE\fP \fI\%#23148\fP: (\fI\%cr1st1p\fP) virt \- error handling bogus if machine image location is wrong (refs: \fI\%#23151\fP)
  264045. .IP \(bu 2
  264046. \fBPR\fP \fI\%#23292\fP: (\fI\%rallytime\fP) Merge \fI\%#23151\fP with pylint fixes
  264047. @ \fI2015\-05\-02 03:54:12 UTC\fP
  264048. .INDENT 2.0
  264049. .IP \(bu 2
  264050. \fBPR\fP \fI\%#23151\fP: (\fI\%cr1st1p\fP) Fixes \fI\%#23148\fP (refs: \fI\%#23292\fP)
  264051. .IP \(bu 2
  264052. 16ecefd466 Merge pull request \fI\%#23292\fP from rallytime/merge\-23151
  264053. .IP \(bu 2
  264054. 8ff852a23a Merge \fI\%#23151\fP with pylint fixes
  264055. .IP \(bu 2
  264056. 8ffa12e82d Fixes \fI\%#23148\fP
  264057. .UNINDENT
  264058. .IP \(bu 2
  264059. \fBPR\fP \fI\%#23274\fP: (\fI\%basepi\fP) [2014.7] Reduce salt\-ssh debug log verbosity
  264060. @ \fI2015\-05\-01 20:19:23 UTC\fP
  264061. .INDENT 2.0
  264062. .IP \(bu 2
  264063. ce24315a4b Merge pull request \fI\%#23274\fP from basepi/salt\-ssh.debug.verbosity
  264064. .IP \(bu 2
  264065. ecee6c68f4 Log stdout and stderr to trace
  264066. .IP \(bu 2
  264067. 08f54d79c6 Log stdout and stderr to trace as well
  264068. .IP \(bu 2
  264069. 9b9c30f5ad Reduce salt\-ssh debug log verbosity
  264070. .UNINDENT
  264071. .IP \(bu 2
  264072. \fBISSUE\fP \fI\%#22605\fP: (\fI\%mavenAtHouzz\fP) Tornado websockets event Handlers registration are incorrect (refs: \fI\%#23261\fP)
  264073. .IP \(bu 2
  264074. \fBPR\fP \fI\%#23261\fP: (\fI\%rallytime\fP) Fix tornado websocket event handler registration
  264075. @ \fI2015\-05\-01 18:20:31 UTC\fP
  264076. .INDENT 2.0
  264077. .IP \(bu 2
  264078. 7b55e4310f Merge pull request \fI\%#23261\fP from rallytime/fix\-22605
  264079. .IP \(bu 2
  264080. 4950fbf2b3 Fix tornado websocket event handler registration
  264081. .UNINDENT
  264082. .IP \(bu 2
  264083. \fBPR\fP \fI\%#23258\fP: (\fI\%teizz\fP) TCP keepalives on the ret side, Revisited.
  264084. @ \fI2015\-05\-01 16:13:49 UTC\fP
  264085. .INDENT 2.0
  264086. .IP \(bu 2
  264087. 83ef7cb114 Merge pull request \fI\%#23258\fP from teizz/ret_keepalive_2014_7_5
  264088. .IP \(bu 2
  264089. 0b9fb6f9be The fixes by cachedout which were backported into 2015_2 were missing a single parameter thus not setting up the TCP keepalive for the ZeroMQ Channel by default.
  264090. .UNINDENT
  264091. .IP \(bu 2
  264092. \fBISSUE\fP \fI\%#23224\fP: (\fI\%twellspring\fP) iptables.append \-\-log parameters must be after \-\-jump LOG (refs: \fI\%#23241\fP)
  264093. .IP \(bu 2
  264094. \fBPR\fP \fI\%#23241\fP: (\fI\%techhat\fP) Move iptables log options after the jump
  264095. @ \fI2015\-05\-01 01:31:59 UTC\fP
  264096. .INDENT 2.0
  264097. .IP \(bu 2
  264098. 8de3c83956 Merge pull request \fI\%#23241\fP from techhat/issue23224
  264099. .IP \(bu 2
  264100. 87f7948c99 Move iptables log options after the jump
  264101. .UNINDENT
  264102. .IP \(bu 2
  264103. \fBPR\fP \fI\%#23228\fP: (\fI\%rallytime\fP) Backport \fI\%#23171\fP to 2014.7
  264104. @ \fI2015\-04\-30 21:09:45 UTC\fP
  264105. .INDENT 2.0
  264106. .IP \(bu 2
  264107. \fBPR\fP \fI\%#23171\fP: (\fI\%skizunov\fP) Bugfix: \(aqclean_proc_dir\(aq is broken (refs: \fI\%#23228\fP)
  264108. .IP \(bu 2
  264109. f20210e499 Merge pull request \fI\%#23228\fP from rallytime/bp\-23171
  264110. .IP \(bu 2
  264111. e670e99506 Bugfix: \(aqclean_proc_dir\(aq is broken
  264112. .UNINDENT
  264113. .IP \(bu 2
  264114. \fBISSUE\fP \fI\%#22703\fP: (\fI\%Xiol\fP) salt\-ssh does not work with list matcher (refs: \fI\%#22808\fP)
  264115. .IP \(bu 2
  264116. \fBPR\fP \fI\%#23227\fP: (\fI\%rallytime\fP) Backport \fI\%#22808\fP to 2014.7
  264117. @ \fI2015\-04\-30 21:09:14 UTC\fP
  264118. .INDENT 2.0
  264119. .IP \(bu 2
  264120. \fBPR\fP \fI\%#22808\fP: (\fI\%basepi\fP) [2015.2] Add list targeting to salt\-ssh flat roster (refs: \fI\%#23227\fP)
  264121. .IP \(bu 2
  264122. 721cc285ee Merge pull request \fI\%#23227\fP from rallytime/bp\-22808
  264123. .IP \(bu 2
  264124. d208a00b2a Dict, not list
  264125. .IP \(bu 2
  264126. a3f529e003 It\(aqs already been converted to a list
  264127. .IP \(bu 2
  264128. dd57f2d1c1 Add list targeting to salt\-ssh flat roster
  264129. .UNINDENT
  264130. .IP \(bu 2
  264131. \fBPR\fP \fI\%#22823\fP: (\fI\%hvnsweeting\fP) 22822 file directory clean
  264132. @ \fI2015\-04\-30 15:25:51 UTC\fP
  264133. .INDENT 2.0
  264134. .IP \(bu 2
  264135. 82c22afacc Merge pull request \fI\%#22823\fP from hvnsweeting/22822\-file\-directory\-clean
  264136. .IP \(bu 2
  264137. c749c276b4 fix lint \- remove unnecessary parenthesis
  264138. .IP \(bu 2
  264139. cb3dfee969 refactor
  264140. .IP \(bu 2
  264141. 8924b5a911 refactor: use relpath instead of do it manually
  264142. .IP \(bu 2
  264143. d3060a51a3 refactor
  264144. .IP \(bu 2
  264145. 5759a0e8f0 bugfix: fix file.directory clean=True when it require parent dir
  264146. .UNINDENT
  264147. .IP \(bu 2
  264148. \fBISSUE\fP \fI\%saltstack/salt#22941\fP: (\fI\%bersace\fP) \fI_pillar\fP func breaks fileserver globals (refs: \fI\%#22942\fP)
  264149. .IP \(bu 2
  264150. \fBISSUE\fP \fI\%#22941\fP: (\fI\%bersace\fP) \fI_pillar\fP func breaks fileserver globals (refs: \fI\%#22977\fP)
  264151. .IP \(bu 2
  264152. \fBPR\fP \fI\%#22977\fP: (\fI\%bersace\fP) Fix fileserver backends __opts__ overwritten by _pillar
  264153. @ \fI2015\-04\-30 15:24:56 UTC\fP
  264154. .INDENT 2.0
  264155. .IP \(bu 2
  264156. \fBPR\fP \fI\%#22942\fP: (\fI\%bersace\fP) Fix fileserver backends global overwritten by _pillar (refs: \fI\%#22977\fP)
  264157. .IP \(bu 2
  264158. f6c0728bfb Merge pull request \fI\%#22977\fP from bersace/fix\-fileserver\-backends\-pillar\-side\-effect
  264159. .IP \(bu 2
  264160. 5f451f63cf Fix fileserver backends __opts__ overwritten by _pillar
  264161. .UNINDENT
  264162. .IP \(bu 2
  264163. \fBISSUE\fP \fI\%#23166\fP: (\fI\%claudiupopescu\fP) "Error in function _minion_event" resulting in modules not loaded (refs: \fI\%#23180\fP)
  264164. .IP \(bu 2
  264165. \fBPR\fP \fI\%#23180\fP: (\fI\%jfindlay\fP) fix typos from 36841bdd in masterapi.py
  264166. @ \fI2015\-04\-30 15:22:41 UTC\fP
  264167. .INDENT 2.0
  264168. .IP \(bu 2
  264169. 34206f7ae3 Merge pull request \fI\%#23180\fP from jfindlay/remote_event
  264170. .IP \(bu 2
  264171. 72066e1073 fix typos from 36841bdd in masterapi.py
  264172. .UNINDENT
  264173. .IP \(bu 2
  264174. \fBISSUE\fP \fI\%#23153\fP: (\fI\%cr1st1p\fP) cmdmod : run_chroot \- broken in 2014.7.5 \- missing kwargs (refs: \fI\%#23176\fP)
  264175. .IP \(bu 2
  264176. \fBPR\fP \fI\%#23176\fP: (\fI\%jfindlay\fP) copy standard cmd.run* kwargs into cmd.run_chroot
  264177. @ \fI2015\-04\-30 15:22:12 UTC\fP
  264178. .INDENT 2.0
  264179. .IP \(bu 2
  264180. b6b82165c8 Merge pull request \fI\%#23176\fP from jfindlay/run_chroot
  264181. .IP \(bu 2
  264182. 7dc3417b44 copy standard cmd.run* kwargs into cmd.run_chroot
  264183. .UNINDENT
  264184. .IP \(bu 2
  264185. \fBISSUE\fP \fI\%#23192\fP: (\fI\%joejulian\fP) supervisord mod_watch does not accept sfun (refs: \fI\%#23193\fP)
  264186. .IP \(bu 2
  264187. \fBPR\fP \fI\%#23193\fP: (\fI\%joejulian\fP) supervisord.mod_watch should accept sfun
  264188. @ \fI2015\-04\-30 04:34:21 UTC\fP
  264189. .INDENT 2.0
  264190. .IP \(bu 2
  264191. effacbe294 Merge pull request \fI\%#23193\fP from joejulian/2014.7_supervisord_accept_sfun
  264192. .IP \(bu 2
  264193. efb59f9d9d supervisord.mod_watch should accept sfun
  264194. .UNINDENT
  264195. .IP \(bu 2
  264196. \fBISSUE\fP \fI\%#19114\fP: (\fI\%pykler\fP) salt\-ssh and gpg pillar renderer (refs: \fI\%#23347\fP, \fI\%#23272\fP, \fI\%#23188\fP)
  264197. .IP \(bu 2
  264198. \fBPR\fP \fI\%#23188\fP: (\fI\%basepi\fP) [2014.7] Work around bug in salt\-ssh in config.get for gpg renderer (refs: \fI\%#23272\fP)
  264199. @ \fI2015\-04\-30 04:34:10 UTC\fP
  264200. .INDENT 2.0
  264201. .IP \(bu 2
  264202. 72fe88e5c6 Merge pull request \fI\%#23188\fP from basepi/salt\-ssh.function.wrapper.gpg.19114
  264203. .IP \(bu 2
  264204. d73979ee12 Work around bug in salt\-ssh in config.get for gpg renderer
  264205. .UNINDENT
  264206. .IP \(bu 2
  264207. \fBISSUE\fP \fI\%#21480\fP: (\fI\%msciciel\fP) TypeError: string indices must be integers, not str (refs: \fI\%#23154\fP)
  264208. .IP \(bu 2
  264209. \fBPR\fP \fI\%#23154\fP: (\fI\%cachedout\fP) Re\-establish channel on interruption in fileclient
  264210. @ \fI2015\-04\-29 16:18:59 UTC\fP
  264211. .INDENT 2.0
  264212. .IP \(bu 2
  264213. 168508ec2a Merge pull request \fI\%#23154\fP from cachedout/refresh_channel
  264214. .IP \(bu 2
  264215. 9f8dd80c38 Re\-establish channel on interruption in fileclient
  264216. .UNINDENT
  264217. .IP \(bu 2
  264218. \fBISSUE\fP \fI\%#20647\fP: (\fI\%ryan\-lane\fP) file.serialize fails to serialize due to ordered dicts (refs: \fI\%#20779\fP)
  264219. .IP \(bu 2
  264220. \fBPR\fP \fI\%#23146\fP: (\fI\%rallytime\fP) Backport \fI\%#20779\fP to 2014.7
  264221. @ \fI2015\-04\-28 20:45:06 UTC\fP
  264222. .INDENT 2.0
  264223. .IP \(bu 2
  264224. \fBPR\fP \fI\%#20779\fP: (\fI\%cachedout\fP) Use declared yaml options (refs: \fI\%#23146\fP)
  264225. .IP \(bu 2
  264226. 3b53e04534 Merge pull request \fI\%#23146\fP from rallytime/bp\-20779
  264227. .IP \(bu 2
  264228. ffd18493e8 compare OrderedDicts in serializer unit test
  264229. .IP \(bu 2
  264230. a22170627c Just change serialize
  264231. .IP \(bu 2
  264232. a111798e8e Use declared yaml options
  264233. .UNINDENT
  264234. .IP \(bu 2
  264235. \fBPR\fP \fI\%#23145\fP: (\fI\%rallytime\fP) Backport \fI\%#23089\fP to 2014.7
  264236. @ \fI2015\-04\-28 20:44:56 UTC\fP
  264237. .INDENT 2.0
  264238. .IP \(bu 2
  264239. \fBPR\fP \fI\%#23089\fP: (\fI\%cachedout\fP) Stringify version number before lstrip (refs: \fI\%#23145\fP)
  264240. .IP \(bu 2
  264241. 8bb4664bf9 Merge pull request \fI\%#23145\fP from rallytime/bp\-23089
  264242. .IP \(bu 2
  264243. 93c41afd23 Stringify version number before lstrip
  264244. .UNINDENT
  264245. .IP \(bu 2
  264246. \fBISSUE\fP \fI\%#16188\fP: (\fI\%drawks\fP) salt.modules.parted has various functions with bogus input validation. (refs: \fI\%#23124\fP)
  264247. .IP \(bu 2
  264248. \fBPR\fP \fI\%#23144\fP: (\fI\%rallytime\fP) Backport \fI\%#23124\fP to 2014.7
  264249. @ \fI2015\-04\-28 20:44:46 UTC\fP
  264250. .INDENT 2.0
  264251. .IP \(bu 2
  264252. \fBPR\fP \fI\%#23124\fP: (\fI\%ether42\fP) fix parsing the output of parted in parted.list_() (refs: \fI\%#23144\fP)
  264253. .IP \(bu 2
  264254. c85d36fd29 Merge pull request \fI\%#23144\fP from rallytime/bp\-23124\-2014\-7
  264255. .IP \(bu 2
  264256. 6b64da706c fix parsing the output of parted
  264257. .UNINDENT
  264258. .IP \(bu 2
  264259. \fBPR\fP \fI\%#23120\fP: (\fI\%terminalmage\fP) Don\(aqt run os.path.relpath() if repo doesn\(aqt have a "root" param set
  264260. @ \fI2015\-04\-28 15:46:54 UTC\fP
  264261. .INDENT 2.0
  264262. .IP \(bu 2
  264263. a27b158153 Merge pull request \fI\%#23120\fP from terminalmage/fix\-gitfs\-relpath
  264264. .IP \(bu 2
  264265. 1860fffd68 Don\(aqt run os.path.relpath() if repo doesn\(aqt have a "root" param set
  264266. .UNINDENT
  264267. .IP \(bu 2
  264268. \fBPR\fP \fI\%#23132\fP: (\fI\%clinta\fP) Backport b27c176
  264269. @ \fI2015\-04\-28 15:00:30 UTC\fP
  264270. .INDENT 2.0
  264271. .IP \(bu 2
  264272. fcba607978 Merge pull request \fI\%#23132\fP from clinta/patch\-2
  264273. .IP \(bu 2
  264274. a824d727d1 Backport b27c176
  264275. .UNINDENT
  264276. .IP \(bu 2
  264277. \fBISSUE\fP \fI\%#18476\fP: (\fI\%Auha\fP) Upgrading salt on my master caused dependency issues (refs: \fI\%#18610\fP, \fI\%#23114\fP)
  264278. .IP \(bu 2
  264279. \fBPR\fP \fI\%#23114\fP: (\fI\%rallytime\fP) Adjust ZeroMQ 4 docs to reflect changes to Ubuntu 12 packages
  264280. @ \fI2015\-04\-28 03:59:24 UTC\fP
  264281. .INDENT 2.0
  264282. .IP \(bu 2
  264283. \fBPR\fP \fI\%#18610\fP: (\fI\%rallytime\fP) Make ZMQ 4 installation docs for ubuntu more clear (refs: \fI\%#23114\fP)
  264284. .IP \(bu 2
  264285. b0f4b28487 Merge pull request \fI\%#23114\fP from rallytime/remove_ubuntu_zmq4_docs
  264286. .IP \(bu 2
  264287. f6cc7c8f8a Adjust ZeroMQ 4 docs to reflect changes to Ubuntu 12 packages
  264288. .UNINDENT
  264289. .IP \(bu 2
  264290. \fBISSUE\fP \fI\%#23085\fP: (\fI\%xenophonf\fP) Use "s3fs" (not "s3") in fileserver_roots (refs: \fI\%#23097\fP)
  264291. .IP \(bu 2
  264292. \fBPR\fP \fI\%#23108\fP: (\fI\%rallytime\fP) Backport \fI\%#23097\fP to 2014.7
  264293. @ \fI2015\-04\-28 03:58:05 UTC\fP
  264294. .INDENT 2.0
  264295. .IP \(bu 2
  264296. \fBPR\fP \fI\%#23097\fP: (\fI\%rallytime\fP) Change s3 to s3fs in fileserver_roots docs example (refs: \fI\%#23108\fP)
  264297. .IP \(bu 2
  264298. 399857f20b Merge pull request \fI\%#23108\fP from rallytime/bp\-23097
  264299. .IP \(bu 2
  264300. fa889845df Change s3 to s3fs in fileserver_roots docs example
  264301. .UNINDENT
  264302. .IP \(bu 2
  264303. \fBISSUE\fP \fI\%#22171\fP: (\fI\%basepi\fP) We should only call returner.save_load once per jid (refs: \fI\%#22199\fP)
  264304. .IP \(bu 2
  264305. \fBPR\fP \fI\%#23112\fP: (\fI\%basepi\fP) [2014.7] Backport \fI\%#22199\fP to fix mysql returner save_load errors
  264306. @ \fI2015\-04\-28 03:55:44 UTC\fP
  264307. .INDENT 2.0
  264308. .IP \(bu 2
  264309. \fBPR\fP \fI\%#22199\fP: (\fI\%basepi\fP) [2015.2] Put a bandaid on the save_load duplicate issue (mysql returner) (refs: \fI\%#23112\fP)
  264310. .IP \(bu 2
  264311. 5541537c32 Merge pull request \fI\%#23112\fP from basepi/mysql_returner_save_load
  264312. .IP \(bu 2
  264313. 0127012ed3 Put a bandaid on the save_load duplicate issue
  264314. .IP \(bu 2
  264315. \fBPR\fP \fI\%saltstack/salt#22925\fP: (\fI\%rallytime\fP) Backport \fI\%#22895\fP to 2014.7 (refs: \fI\%#23113\fP)
  264316. .UNINDENT
  264317. .IP \(bu 2
  264318. \fBPR\fP \fI\%#23113\fP: (\fI\%rallytime\fP) Revert "Backport \fI\%#22895\fP to 2014.7"
  264319. @ \fI2015\-04\-28 03:27:29 UTC\fP
  264320. .INDENT 2.0
  264321. .IP \(bu 2
  264322. \fBPR\fP \fI\%#22895\fP: (\fI\%aletourneau\fP) pam_tally counter was not reset to 0 after a succesfull login (refs: \fI\%#23113\fP, \fI\%#22925\fP, #saltstack/salt\(ga#22925\(ga_)
  264323. .IP \(bu 2
  264324. dfe2066b25 Merge pull request \fI\%#23113\fP from saltstack/revert\-22925\-bp\-22895
  264325. .IP \(bu 2
  264326. b957ea8977 Revert "Backport \fI\%#22895\fP to 2014.7"
  264327. .UNINDENT
  264328. .IP \(bu 2
  264329. \fBISSUE\fP \fI\%#23013\fP: (\fI\%ghost\fP) gitfs regression with authenticated repos (refs: \fI\%#23094\fP)
  264330. .IP \(bu 2
  264331. \fBPR\fP \fI\%#23094\fP: (\fI\%terminalmage\fP) pygit2: disable cleaning of stale refs for authenticated remotes
  264332. @ \fI2015\-04\-27 20:51:28 UTC\fP
  264333. .INDENT 2.0
  264334. .IP \(bu 2
  264335. 21515f3c23 Merge pull request \fI\%#23094\fP from terminalmage/issue23013
  264336. .IP \(bu 2
  264337. aaf7b04f79 pygit2: disable cleaning of stale refs for authenticated remotes
  264338. .UNINDENT
  264339. .IP \(bu 2
  264340. \fBPR\fP \fI\%#23048\fP: (\fI\%jfindlay\fP) py\-2.6 compat for utils/boto.py ElementTree exception
  264341. @ \fI2015\-04\-25 16:56:45 UTC\fP
  264342. .INDENT 2.0
  264343. .IP \(bu 2
  264344. d45aa21dca Merge pull request \fI\%#23048\fP from jfindlay/ET_error
  264345. .IP \(bu 2
  264346. 64c42ccb5f py\-2.6 compat for utils/boto.py ElementTree exception
  264347. .UNINDENT
  264348. .IP \(bu 2
  264349. \fBISSUE\fP \fI\%#22981\fP: (\fI\%syphernl\fP) Locale state throwing traceback when generating not (yet) existing locale (refs: \fI\%#23025\fP)
  264350. .IP \(bu 2
  264351. \fBPR\fP \fI\%#23025\fP: (\fI\%jfindlay\fP) catch exceptions on bad system locales/encodings
  264352. @ \fI2015\-04\-25 16:56:30 UTC\fP
  264353. .INDENT 2.0
  264354. .IP \(bu 2
  264355. d25a5c102f Merge pull request \fI\%#23025\fP from jfindlay/fix_sys_locale
  264356. .IP \(bu 2
  264357. 9c4d62bb00 catch exceptions on bad system locales/encodings
  264358. .UNINDENT
  264359. .IP \(bu 2
  264360. \fBPR\fP \fI\%#22932\fP: (\fI\%hvnsweeting\fP) bugfix: also manipulate dir_mode when source not defined
  264361. @ \fI2015\-04\-25 16:54:58 UTC\fP
  264362. .INDENT 2.0
  264363. .IP \(bu 2
  264364. 5e44b59a14 Merge pull request \fI\%#22932\fP from hvnsweeting/file\-append\-bugfix
  264365. .IP \(bu 2
  264366. 3f368de14a do not use assert in execution module
  264367. .IP \(bu 2
  264368. 9d4fd4a8c8 bugfix: also manipulate dir_mode when source not defined
  264369. .UNINDENT
  264370. .IP \(bu 2
  264371. \fBISSUE\fP \fI\%#23021\fP: (\fI\%ether42\fP) ps.pgrep raises NoSuchProcess (refs: \fI\%#23055\fP)
  264372. .IP \(bu 2
  264373. \fBPR\fP \fI\%#23055\fP: (\fI\%jfindlay\fP) prevent ps module errors on accessing dead procs
  264374. @ \fI2015\-04\-24 22:39:49 UTC\fP
  264375. .INDENT 2.0
  264376. .IP \(bu 2
  264377. c2416a425f Merge pull request \fI\%#23055\fP from jfindlay/fix_ps
  264378. .IP \(bu 2
  264379. c2dc7adeb1 prevent ps module errors on accessing dead procs
  264380. .UNINDENT
  264381. .IP \(bu 2
  264382. \fBPR\fP \fI\%#23031\fP: (\fI\%jfindlay\fP) convert exception e.message to just e
  264383. @ \fI2015\-04\-24 18:38:13 UTC\fP
  264384. .INDENT 2.0
  264385. .IP \(bu 2
  264386. bfd9158a83 Merge pull request \fI\%#23031\fP from jfindlay/exception
  264387. .IP \(bu 2
  264388. 856bad1c31 convert exception e.message to just e
  264389. .UNINDENT
  264390. .IP \(bu 2
  264391. \fBPR\fP \fI\%#23015\fP: (\fI\%hvnsweeting\fP) if status of service is stop, there is not an error with it
  264392. @ \fI2015\-04\-24 14:35:10 UTC\fP
  264393. .INDENT 2.0
  264394. .IP \(bu 2
  264395. 7747f3342e Merge pull request \fI\%#23015\fP from hvnsweeting/set\-non\-error\-lvl\-for\-service\-status\-log
  264396. .IP \(bu 2
  264397. 92ea163513 if status of service is stop, there is not an error with it
  264398. .UNINDENT
  264399. .IP \(bu 2
  264400. \fBISSUE\fP \fI\%#22993\fP: (\fI\%jetpak\fP) salt\-minion restart causes all spawned daemons to die on centos7 (systemd) (refs: \fI\%#23000\fP)
  264401. .IP \(bu 2
  264402. \fBPR\fP \fI\%#23000\fP: (\fI\%jfindlay\fP) set systemd service killMode to process for minion
  264403. @ \fI2015\-04\-24 03:42:39 UTC\fP
  264404. .INDENT 2.0
  264405. .IP \(bu 2
  264406. 2e09789156 Merge pull request \fI\%#23000\fP from jfindlay/systemd_kill
  264407. .IP \(bu 2
  264408. 3d575e29c4 set systemd service killMode to process for minion
  264409. .UNINDENT
  264410. .IP \(bu 2
  264411. \fBISSUE\fP \fI\%#22707\fP: (\fI\%arthurlogilab\fP) retry_dns of master configuration is missing from the documentation (refs: \fI\%#22999\fP)
  264412. .IP \(bu 2
  264413. \fBPR\fP \fI\%#22999\fP: (\fI\%justinta\fP) Added retry_dns to minion doc.
  264414. @ \fI2015\-04\-24 03:30:24 UTC\fP
  264415. .INDENT 2.0
  264416. .IP \(bu 2
  264417. b5c059ab26 Merge pull request \fI\%#22999\fP from jtand/fix_22707
  264418. .IP \(bu 2
  264419. 8486e17ab3 Added retry_dns to minion doc.
  264420. .UNINDENT
  264421. .IP \(bu 2
  264422. \fBPR\fP \fI\%#22990\fP: (\fI\%techhat\fP) Use the proper cloud conf variable
  264423. @ \fI2015\-04\-23 17:48:07 UTC\fP
  264424. .INDENT 2.0
  264425. .IP \(bu 2
  264426. 27dc877bfd Merge pull request \fI\%#22990\fP from techhat/2014.7
  264427. .IP \(bu 2
  264428. d33bcbc2c1 Use the proper cloud conf variable
  264429. .UNINDENT
  264430. .IP \(bu 2
  264431. \fBPR\fP \fI\%#22976\fP: (\fI\%multani\fP) Improve state_output documentation
  264432. @ \fI2015\-04\-23 12:24:22 UTC\fP
  264433. .INDENT 2.0
  264434. .IP \(bu 2
  264435. 13dff652c6 Merge pull request \fI\%#22976\fP from multani/fix/state\-output\-doc
  264436. .IP \(bu 2
  264437. 19efd419b5 Improve state_output documentation
  264438. .UNINDENT
  264439. .IP \(bu 2
  264440. \fBPR\fP \fI\%#22955\fP: (\fI\%terminalmage\fP) Fix regression introduced yesterday in dockerio module
  264441. @ \fI2015\-04\-22 18:56:39 UTC\fP
  264442. .INDENT 2.0
  264443. .IP \(bu 2
  264444. 89fa18500c Merge pull request \fI\%#22955\fP from terminalmage/dockerio\-run\-fix
  264445. .IP \(bu 2
  264446. b4472ad1b2 Fix regression introduced yesterday in dockerio module
  264447. .UNINDENT
  264448. .IP \(bu 2
  264449. \fBPR\fP \fI\%#22954\fP: (\fI\%rallytime\fP) Backport \fI\%#22909\fP to 2014.7
  264450. @ \fI2015\-04\-22 18:56:20 UTC\fP
  264451. .INDENT 2.0
  264452. .IP \(bu 2
  264453. \fBPR\fP \fI\%#22909\fP: (\fI\%mguegan\fP) Fix compatibility with pkgin > 0.7 (refs: \fI\%#22954\fP)
  264454. .IP \(bu 2
  264455. 46ef227911 Merge pull request \fI\%#22954\fP from rallytime/bp\-22909
  264456. .IP \(bu 2
  264457. 70c1cd3969 Fix compatibility with pkgin > 0.7
  264458. .UNINDENT
  264459. .IP \(bu 2
  264460. \fBISSUE\fP \fI\%#18720\fP: (\fI\%Reiner030\fP) timeouts when setting Route53 records (refs: \fI\%#22856\fP)
  264461. .IP \(bu 2
  264462. \fBPR\fP \fI\%#22856\fP: (\fI\%jfindlay\fP) increase timeout and decrease tries for route53 records
  264463. @ \fI2015\-04\-22 16:47:01 UTC\fP
  264464. .INDENT 2.0
  264465. .IP \(bu 2
  264466. c9ae593461 Merge pull request \fI\%#22856\fP from jfindlay/route53_timeout
  264467. .IP \(bu 2
  264468. ba4a786984 add route53 record sync wait, default=False
  264469. .IP \(bu 2
  264470. ea2fd50660 increase timeout and tries for route53 records
  264471. .UNINDENT
  264472. .IP \(bu 2
  264473. \fBPR\fP \fI\%#22946\fP: (\fI\%s0undt3ch\fP) Test with a more recent pip version to avoid a traceback
  264474. @ \fI2015\-04\-22 16:25:17 UTC\fP
  264475. .INDENT 2.0
  264476. .IP \(bu 2
  264477. a178d444b8 Merge pull request \fI\%#22946\fP from s0undt3ch/2014.7
  264478. .IP \(bu 2
  264479. bc87749e2c Test with a more recent pip version to avoid a traceback
  264480. .UNINDENT
  264481. .IP \(bu 2
  264482. \fBISSUE\fP \fI\%#22571\fP: (\fI\%BoomerB\fP) same error message as on issue #18504 (refs: \fI\%#22945\fP)
  264483. .IP \(bu 2
  264484. \fBPR\fP \fI\%#22945\fP: (\fI\%garethgreenaway\fP) Fixes to scheduler
  264485. @ \fI2015\-04\-22 16:25:00 UTC\fP
  264486. .INDENT 2.0
  264487. .IP \(bu 2
  264488. de339bef0a Merge pull request \fI\%#22945\fP from garethgreenaway/22571_2014_7_schedule_pillar_refresh_seconds_exceptions
  264489. .IP \(bu 2
  264490. bfa6d25ed8 Fixing a reported issue when using a scheduled job from pillar with splay. _seconds element that acted as a backup of the actual seconds was being removed when pillar was refreshed and causing exceptions. This fix moves some splay related code out of the if else condition so it\(aqs checked whether the job is in the job queue or not.
  264491. .UNINDENT
  264492. .IP \(bu 2
  264493. \fBISSUE\fP \fI\%#18843\fP: (\fI\%calvinhp\fP) State user.present will fail to create home if user exists and homedir doesn\(aqt (refs: \fI\%#22933\fP, \fI\%#22887\fP)
  264494. .IP \(bu 2
  264495. \fBPR\fP \fI\%#22887\fP: (\fI\%hvnsweeting\fP) fix \fI\%#18843\fP
  264496. @ \fI2015\-04\-22 15:47:05 UTC\fP
  264497. .INDENT 2.0
  264498. .IP \(bu 2
  264499. 12d2b91d85 Merge pull request \fI\%#22887\fP from hvnsweeting/18843\-fix\-user\-present\-home
  264500. .IP \(bu 2
  264501. 7fe7b089fd run user.chhome once to avoid any side\-effect when run it twice
  264502. .IP \(bu 2
  264503. 19de9954ee clarify the usage of home arg
  264504. .IP \(bu 2
  264505. d6dc09af64 enhance doc, as usermod on ubuntu 12.04 will not CREATE home
  264506. .IP \(bu 2
  264507. 0ce4d7feb6 refactor: force to use boolean
  264508. .IP \(bu 2
  264509. 849d19edd7 log debug the creating dir process
  264510. .IP \(bu 2
  264511. c4e95b9f48 fix \fI\%#18843\fP: usermod won\(aqt create a dir if old home does not exist
  264512. .UNINDENT
  264513. .IP \(bu 2
  264514. \fBISSUE\fP \fI\%#2417\fP: (\fI\%ffa\fP) Module standards (refs: \fI\%#22829\fP)
  264515. .IP \(bu 2
  264516. \fBISSUE\fP \fI\%#21140\fP: (\fI\%holms\fP) locale.present state executed successfully, although originally fails (refs: \fI\%#22930\fP, \fI\%#22829\fP)
  264517. .IP \(bu 2
  264518. \fBPR\fP \fI\%#22930\fP: (\fI\%jfindlay\fP) localemod.gen_locale now always returns a boolean
  264519. @ \fI2015\-04\-22 15:37:39 UTC\fP
  264520. .INDENT 2.0
  264521. .IP \(bu 2
  264522. \fBPR\fP \fI\%#22829\fP: (\fI\%F30\fP) Always return a boolean in gen_locale() (refs: \fI\%#22930\fP)
  264523. .IP \(bu 2
  264524. b7de7bdf47 Merge pull request \fI\%#22930\fP from jfindlay/localegen_bool
  264525. .IP \(bu 2
  264526. 399399f89e localemod.gen_locale now always returns a boolean
  264527. .UNINDENT
  264528. .IP \(bu 2
  264529. \fBISSUE\fP \fI\%#18843\fP: (\fI\%calvinhp\fP) State user.present will fail to create home if user exists and homedir doesn\(aqt (refs: \fI\%#22933\fP, \fI\%#22887\fP)
  264530. .IP \(bu 2
  264531. \fBPR\fP \fI\%#22933\fP: (\fI\%hvnsweeting\fP) add test for \fI\%#18843\fP
  264532. @ \fI2015\-04\-22 15:27:18 UTC\fP
  264533. .INDENT 2.0
  264534. .IP \(bu 2
  264535. 11bcf14979 Merge pull request \fI\%#22933\fP from hvnsweeting/18843\-test
  264536. .IP \(bu 2
  264537. b13db32fde add test for \fI\%#18843\fP
  264538. .UNINDENT
  264539. .IP \(bu 2
  264540. \fBPR\fP \fI\%#22925\fP: (\fI\%rallytime\fP) Backport \fI\%#22895\fP to 2014.7
  264541. @ \fI2015\-04\-22 02:30:26 UTC\fP
  264542. .INDENT 2.0
  264543. .IP \(bu 2
  264544. \fBPR\fP \fI\%#22895\fP: (\fI\%aletourneau\fP) pam_tally counter was not reset to 0 after a succesfull login (refs: \fI\%#23113\fP, \fI\%#22925\fP, #saltstack/salt\(ga#22925\(ga_)
  264545. .IP \(bu 2
  264546. 6890752dd3 Merge pull request \fI\%#22925\fP from rallytime/bp\-22895
  264547. .IP \(bu 2
  264548. 3852d96213 Pylint fix
  264549. .IP \(bu 2
  264550. 90f7829ad3 Fixed pylint issues
  264551. .IP \(bu 2
  264552. 5ebf159554 Cleaned up pull request
  264553. .IP \(bu 2
  264554. a08ac478f6 pam_tally counter was not reset to 0 after a succesfull login
  264555. .UNINDENT
  264556. .IP \(bu 2
  264557. \fBISSUE\fP \fI\%#22790\fP: (\fI\%whiteinge\fP) jobs.list_jobs runner tracebacks on \(aqmissing\(aq argument (refs: \fI\%#22914\fP)
  264558. .IP \(bu 2
  264559. \fBPR\fP \fI\%#22914\fP: (\fI\%cachedout\fP) Call proper returner function in jobs.list_jobs
  264560. @ \fI2015\-04\-22 00:49:01 UTC\fP
  264561. .INDENT 2.0
  264562. .IP \(bu 2
  264563. eca37ebc11 Merge pull request \fI\%#22914\fP from cachedout/issue_22790
  264564. .IP \(bu 2
  264565. d828d6fd58 Call proper returner function in jobs.list_jobs
  264566. .UNINDENT
  264567. .IP \(bu 2
  264568. \fBPR\fP \fI\%#22918\fP: (\fI\%JaseFace\fP) Add a note to the git_pillar docs stating that GitPython is the only currently supported provider
  264569. @ \fI2015\-04\-22 00:48:26 UTC\fP
  264570. .INDENT 2.0
  264571. .IP \(bu 2
  264572. 44f3409b01 Merge pull request \fI\%#22918\fP from JaseFace/git\-pillar\-provider\-doc\-note
  264573. .IP \(bu 2
  264574. 0aee5c23d4 Add a note to the git_pillar docs stating that GitPython is the only currently supported provider
  264575. .UNINDENT
  264576. .IP \(bu 2
  264577. \fBPR\fP \fI\%#22907\fP: (\fI\%techhat\fP) Properly merge cloud configs to create profiles
  264578. @ \fI2015\-04\-21 22:02:44 UTC\fP
  264579. .INDENT 2.0
  264580. .IP \(bu 2
  264581. 31c461f573 Merge pull request \fI\%#22907\fP from techhat/cloudconfig
  264582. .IP \(bu 2
  264583. 3bf4e66112 Properly merge cloud configs to create profiles
  264584. .UNINDENT
  264585. .IP \(bu 2
  264586. \fBISSUE\fP \fI\%#22782\fP: (\fI\%0xf10e\fP) Turning everything into OrderedDicts broke states.keystone.user_present() (refs: \fI\%#22894\fP)
  264587. .IP \(bu 2
  264588. \fBPR\fP \fI\%#22894\fP: (\fI\%0xf10e\fP) Fix issue \fI\%#22782\fP
  264589. @ \fI2015\-04\-21 18:55:18 UTC\fP
  264590. .INDENT 2.0
  264591. .IP \(bu 2
  264592. f0939754a0 Merge pull request \fI\%#22894\fP from 0xf10e/2014.7
  264593. .IP \(bu 2
  264594. 58fa24c7fa Clarify doc on kwarg \(aqroles\(aq for user_present().
  264595. .IP \(bu 2
  264596. f0ae2eb84f Improve readability by renaming tenant_role
  264597. .UNINDENT
  264598. .IP \(bu 2
  264599. \fBISSUE\fP \fI\%#12003\fP: (\fI\%MarkusMuellerAU\fP) [state.dockerio] docker.run TypeError: run() argument after ** must be a mapping, not str (refs: \fI\%#22902\fP)
  264600. .IP \(bu 2
  264601. \fBPR\fP \fI\%#22902\fP: (\fI\%rallytime\fP) Change state example to use proper kwarg
  264602. @ \fI2015\-04\-21 18:50:47 UTC\fP
  264603. .INDENT 2.0
  264604. .IP \(bu 2
  264605. c802ba7514 Merge pull request \fI\%#22902\fP from rallytime/docker_doc_fix
  264606. .IP \(bu 2
  264607. 8f703461b0 Change state example to use proper kwarg
  264608. .UNINDENT
  264609. .IP \(bu 2
  264610. \fBPR\fP \fI\%#22898\fP: (\fI\%terminalmage\fP) dockerio: better error message for native exec driver
  264611. @ \fI2015\-04\-21 18:02:58 UTC\fP
  264612. .INDENT 2.0
  264613. .IP \(bu 2
  264614. 81771a7769 Merge pull request \fI\%#22898\fP from terminalmage/issue12003
  264615. .IP \(bu 2
  264616. c375309434 dockerio: better error message for native exec driver
  264617. .UNINDENT
  264618. .IP \(bu 2
  264619. \fBISSUE\fP \fI\%#22825\fP: (\fI\%paolodina\fP) Issue using file.replace in state file (refs: \fI\%#22897\fP)
  264620. .IP \(bu 2
  264621. \fBPR\fP \fI\%#22897\fP: (\fI\%rallytime\fP) Add param documentation for file.replace state
  264622. @ \fI2015\-04\-21 17:31:04 UTC\fP
  264623. .INDENT 2.0
  264624. .IP \(bu 2
  264625. e2ec4ecc55 Merge pull request \fI\%#22897\fP from rallytime/fix\-22825
  264626. .IP \(bu 2
  264627. 9c51630002 Add param documentation for file.replace state
  264628. .UNINDENT
  264629. .IP \(bu 2
  264630. \fBISSUE\fP \fI\%saltstack/salt#22844\fP: (\fI\%bersace\fP) LocalClient file cache confuse pillar and state files (refs: \fI\%#22850\fP)
  264631. .IP \(bu 2
  264632. \fBPR\fP \fI\%#22850\fP: (\fI\%bersace\fP) Fix pillar and salt fileserver mixed
  264633. @ \fI2015\-04\-21 17:04:33 UTC\fP
  264634. .INDENT 2.0
  264635. .IP \(bu 2
  264636. fd53889f0e Merge pull request \fI\%#22850\fP from bersace/fix\-pillar\-salt\-mixed
  264637. .IP \(bu 2
  264638. 31b98e72eb Initialize state file client after pillar loading
  264639. .IP \(bu 2
  264640. f6bebb7a31 Use saltenv
  264641. .UNINDENT
  264642. .IP \(bu 2
  264643. \fBPR\fP \fI\%#22818\fP: (\fI\%twangboy\fP) Added documentation regarding pip in windows
  264644. @ \fI2015\-04\-21 03:58:59 UTC\fP
  264645. .INDENT 2.0
  264646. .IP \(bu 2
  264647. 1380fec1b9 Merge pull request \fI\%#22818\fP from twangboy/upd_pip_docs
  264648. .IP \(bu 2
  264649. cb999c7d70 Update pip.py
  264650. .IP \(bu 2
  264651. 3cc5c970ad Added documentation regarding pip in windows
  264652. .UNINDENT
  264653. .IP \(bu 2
  264654. \fBPR\fP \fI\%#22872\fP: (\fI\%rallytime\fP) Prevent stacktrace on os.path.exists in hosts module
  264655. @ \fI2015\-04\-21 02:54:40 UTC\fP
  264656. .INDENT 2.0
  264657. .IP \(bu 2
  264658. b2bf17f5d5 Merge pull request \fI\%#22872\fP from rallytime/fix_hosts_stacktrace
  264659. .IP \(bu 2
  264660. c88a1ea243 Prevent stacktrace on os.path.exists in hosts module
  264661. .UNINDENT
  264662. .IP \(bu 2
  264663. \fBPR\fP \fI\%#22853\fP: (\fI\%s0undt3ch\fP) Don\(aqt assume package installation order.
  264664. @ \fI2015\-04\-21 02:42:41 UTC\fP
  264665. .INDENT 2.0
  264666. .IP \(bu 2
  264667. 03af523de9 Merge pull request \fI\%#22853\fP from s0undt3ch/2014.7
  264668. .IP \(bu 2
  264669. b62df62151 Don\(aqt assume package installation order.
  264670. .UNINDENT
  264671. .IP \(bu 2
  264672. \fBPR\fP \fI\%#22877\fP: (\fI\%s0undt3ch\fP) Don\(aqt fail on \fImake clean\fP just because the directory does not exist
  264673. @ \fI2015\-04\-21 02:40:47 UTC\fP
  264674. .INDENT 2.0
  264675. .IP \(bu 2
  264676. 9211e36564 Merge pull request \fI\%#22877\fP from s0undt3ch/hotfix/clean\-docs\-fix
  264677. .IP \(bu 2
  264678. 95d6887949 Don\(aqt fail on \fImake clean\fP just because the directory does not exist
  264679. .UNINDENT
  264680. .IP \(bu 2
  264681. \fBPR\fP \fI\%#22873\fP: (\fI\%thatch45\fP) Type check the version since it will often be numeric
  264682. @ \fI2015\-04\-21 02:38:11 UTC\fP
  264683. .INDENT 2.0
  264684. .IP \(bu 2
  264685. 5bdbd08bbd Merge pull request \fI\%#22873\fP from thatch45/type_check
  264686. .IP \(bu 2
  264687. 53b8376626 Type check the version since it will often be numeric
  264688. .UNINDENT
  264689. .IP \(bu 2
  264690. \fBPR\fP \fI\%#22870\fP: (\fI\%twangboy\fP) Added ability to send a version with a space in it
  264691. @ \fI2015\-04\-20 23:18:28 UTC\fP
  264692. .INDENT 2.0
  264693. .IP \(bu 2
  264694. c965b0a035 Merge pull request \fI\%#22870\fP from twangboy/fix_installer_again
  264695. .IP \(bu 2
  264696. 3f180cfaae Added ability to send a version with a space in it
  264697. .UNINDENT
  264698. .IP \(bu 2
  264699. \fBPR\fP \fI\%#22863\fP: (\fI\%rallytime\fP) Backport \fI\%#20974\fP to 2014.7
  264700. @ \fI2015\-04\-20 19:29:37 UTC\fP
  264701. .INDENT 2.0
  264702. .IP \(bu 2
  264703. \fBPR\fP \fI\%#20974\fP: (\fI\%JohannesEbke\fP) Fix expr_match usage in salt.utils.check_whitelist_blacklist (refs: \fI\%#22863\fP)
  264704. .IP \(bu 2
  264705. 2973eb18bc Merge pull request \fI\%#22863\fP from rallytime/bp\-20974
  264706. .IP \(bu 2
  264707. 14913a4cb4 Fix expr_match usage in salt.utils.check_whitelist_blacklist
  264708. .UNINDENT
  264709. .IP \(bu 2
  264710. \fBPR\fP \fI\%#22578\fP: (\fI\%hvnsweeting\fP) gracefully handle when salt\-minion cannot decrypt key
  264711. @ \fI2015\-04\-20 15:24:45 UTC\fP
  264712. .INDENT 2.0
  264713. .IP \(bu 2
  264714. c45b92bb4b Merge pull request \fI\%#22578\fP from hvnsweeting/2014\-7\-fix\-compile\-pillar
  264715. .IP \(bu 2
  264716. f75b24ad68 gracefully handle when salt\-minion cannot decrypt key
  264717. .UNINDENT
  264718. .IP \(bu 2
  264719. \fBISSUE\fP \fI\%#21979\fP: (\fI\%yrdevops\fP) gitfs: error message not descriptive enough when libgit2 was compiled without libssh2 (refs: \fI\%#22800\fP)
  264720. .IP \(bu 2
  264721. \fBPR\fP \fI\%#22800\fP: (\fI\%terminalmage\fP) Improve error logging for pygit2 SSH\-based remotes
  264722. @ \fI2015\-04\-18 17:18:55 UTC\fP
  264723. .INDENT 2.0
  264724. .IP \(bu 2
  264725. 900c7a510f Merge pull request \fI\%#22800\fP from terminalmage/issue21979
  264726. .IP \(bu 2
  264727. 8f1c0084cd Clarify that for pygit2, receiving 0 objects means repo is up\-to\-date
  264728. .IP \(bu 2
  264729. 98885f71d6 Add information about libssh2 requirement for pygit2 ssh auth
  264730. .IP \(bu 2
  264731. 09468d2607 Fix incorrect log message
  264732. .IP \(bu 2
  264733. 2093bf8d96 Adjust loglevels for gitfs errors
  264734. .IP \(bu 2
  264735. 9d394dfe46 Improve error logging for pygit2 SSH\-based remotes
  264736. .UNINDENT
  264737. .IP \(bu 2
  264738. \fBPR\fP \fI\%#22813\fP: (\fI\%twangboy\fP) Updated instructions for building salt
  264739. @ \fI2015\-04\-18 04:10:07 UTC\fP
  264740. .INDENT 2.0
  264741. .IP \(bu 2
  264742. e99f2fdb28 Merge pull request \fI\%#22813\fP from twangboy/win_doc_fix
  264743. .IP \(bu 2
  264744. adc421acdd Fixed some formatting issues
  264745. .IP \(bu 2
  264746. 8901b3b5a6 Updated instructions for building salt
  264747. .UNINDENT
  264748. .IP \(bu 2
  264749. \fBISSUE\fP \fI\%#22708\fP: (\fI\%Bilge\fP) salt\-ssh file.accumulated error: NameError: global name \(aqmsgpack\(aq is not defined (refs: \fI\%#22810\fP)
  264750. .IP \(bu 2
  264751. \fBPR\fP \fI\%#22810\fP: (\fI\%basepi\fP) [2014.7] More msgpack gating for salt\-ssh
  264752. @ \fI2015\-04\-17 22:28:24 UTC\fP
  264753. .INDENT 2.0
  264754. .IP \(bu 2
  264755. fe1de89ad7 Merge pull request \fI\%#22810\fP from basepi/salt\-ssh.more.msgpack.gating
  264756. .IP \(bu 2
  264757. d4da8e66a4 Gate msgpack in salt/modules/saltutil.py
  264758. .IP \(bu 2
  264759. 02303b22ce Gate msgpack in salt/modules/data.py
  264760. .IP \(bu 2
  264761. d7e8741f02 Gate salt.states.file.py msgpack
  264762. .UNINDENT
  264763. .IP \(bu 2
  264764. \fBISSUE\fP \fI\%#17144\fP: (\fI\%xpender\fP) salt\-cloud \-m fails with softlayer (refs: \fI\%#22803\fP)
  264765. .IP \(bu 2
  264766. \fBPR\fP \fI\%#22803\fP: (\fI\%rallytime\fP) Allow map file to work with softlayer
  264767. @ \fI2015\-04\-17 20:34:42 UTC\fP
  264768. .INDENT 2.0
  264769. .IP \(bu 2
  264770. 11df71e16d Merge pull request \fI\%#22803\fP from rallytime/fix\-17144
  264771. .IP \(bu 2
  264772. ce88b6ad41 Allow map file to work with softlayer
  264773. .UNINDENT
  264774. .IP \(bu 2
  264775. \fBPR\fP \fI\%#22807\fP: (\fI\%rallytime\fP) Add 2014.7.5 links to windows installation docs
  264776. @ \fI2015\-04\-17 20:32:13 UTC\fP
  264777. .INDENT 2.0
  264778. .IP \(bu 2
  264779. cd43a95212 Merge pull request \fI\%#22807\fP from rallytime/windows_docs_update
  264780. .IP \(bu 2
  264781. 5931a582d1 Replace all 4s with 5s
  264782. .IP \(bu 2
  264783. eadaead755 Add 2014.7.5 links to windows installation docs
  264784. .UNINDENT
  264785. .IP \(bu 2
  264786. \fBPR\fP \fI\%#22795\fP: (\fI\%rallytime\fP) Added release note for 2014.7.5 release
  264787. @ \fI2015\-04\-17 18:05:36 UTC\fP
  264788. .INDENT 2.0
  264789. .IP \(bu 2
  264790. 0b295e2c87 Merge pull request \fI\%#22795\fP from rallytime/release_notes
  264791. .IP \(bu 2
  264792. fde1feed46 Remove extra line
  264793. .IP \(bu 2
  264794. b19b95d992 Added release note for 2014.7.5 release
  264795. .UNINDENT
  264796. .IP \(bu 2
  264797. \fBISSUE\fP \fI\%#22740\fP: (\fI\%lorengordon\fP) New Windows installer assumes salt is installed to the current directory (refs: \fI\%#22759\fP)
  264798. .IP \(bu 2
  264799. \fBPR\fP \fI\%#22759\fP: (\fI\%twangboy\fP) Final edits to the batch files for running salt
  264800. @ \fI2015\-04\-17 04:31:15 UTC\fP
  264801. .INDENT 2.0
  264802. .IP \(bu 2
  264803. \fBPR\fP \fI\%#22754\fP: (\fI\%twangboy\fP) Removed redundant \e\e and " (refs: \fI\%#22759\fP)
  264804. .IP \(bu 2
  264805. 3c91459de2 Merge pull request \fI\%#22759\fP from twangboy/fix_bat_one_last_time
  264806. .IP \(bu 2
  264807. 075f82e046 Final edits to the batch files for running salt
  264808. .UNINDENT
  264809. .IP \(bu 2
  264810. \fBPR\fP \fI\%#22760\fP: (\fI\%thatch45\fP) Fix issues with the syndic
  264811. @ \fI2015\-04\-17 04:30:48 UTC\fP
  264812. .INDENT 2.0
  264813. .IP \(bu 2
  264814. 20d3f2bb83 Merge pull request \fI\%#22760\fP from thatch45/syndic_fix
  264815. .IP \(bu 2
  264816. e2db624b37 Fix issues with the syndic not resolving the master when the interface is set
  264817. .UNINDENT
  264818. .IP \(bu 2
  264819. \fBPR\fP \fI\%#22762\fP: (\fI\%twangboy\fP) Fixed version not showing in Add/Remove Programs
  264820. @ \fI2015\-04\-17 04:29:46 UTC\fP
  264821. .INDENT 2.0
  264822. .IP \(bu 2
  264823. 54c45845ab Merge pull request \fI\%#22762\fP from twangboy/fix_installer
  264824. .IP \(bu 2
  264825. 4d25af8acf Fixed version not showing in Add/Remove Programs
  264826. .UNINDENT
  264827. .UNINDENT
  264828. .SS Salt 2014.7.7 Release Notes
  264829. .INDENT 0.0
  264830. .TP
  264831. .B release
  264832. 2015\-10\-13
  264833. .UNINDENT
  264834. .sp
  264835. Version 2014.7.7 is a bugfix release for 2014.7.0\&.
  264836. .SS Statistics
  264837. .INDENT 0.0
  264838. .IP \(bu 2
  264839. Total Merges: \fB54\fP
  264840. .IP \(bu 2
  264841. Total Issue References: \fB20\fP
  264842. .IP \(bu 2
  264843. Total PR References: \fB60\fP
  264844. .IP \(bu 2
  264845. Contributors: \fB28\fP (\fI\%AkhterAli\fP, \fI\%BretFisher\fP, \fI\%MrCitron\fP, \fI\%alekti\fP, \fI\%basepi\fP, \fI\%bersace\fP, \fI\%cachedout\fP, \fI\%corux\fP, \fI\%cro\fP, \fI\%davidjb\fP, \fI\%dumol\fP, \fI\%efficks\fP, \fI\%garethgreenaway\fP, \fI\%hvnsweeting\fP, \fI\%jacksontj\fP, \fI\%jacobhammons\fP, \fI\%jaybocc2\fP, \fI\%jfindlay\fP, \fI\%jquast\fP, \fI\%justinta\fP, \fI\%msteed\fP, \fI\%nmadhok\fP, \fI\%notpeter\fP, \fI\%puneetk\fP, \fI\%rallytime\fP, \fI\%techhat\fP, \fI\%trevor\-h\fP, \fI\%twangboy\fP)
  264846. .UNINDENT
  264847. .SS Changelog for v2014.7.6..v2014.7.7
  264848. .sp
  264849. \fIGenerated at: 2018\-05\-27 20:45:04 UTC\fP
  264850. .INDENT 0.0
  264851. .IP \(bu 2
  264852. \fBPR\fP \fI\%#27335\fP: (\fI\%rallytime\fP) [2014.7] Fixup salt\-cloud logging
  264853. @ \fI2015\-09\-24 20:33:53 UTC\fP
  264854. .INDENT 2.0
  264855. .IP \(bu 2
  264856. 5262f01325 Merge pull request \fI\%#27335\fP from rallytime/cloud\-logging\-7
  264857. .IP \(bu 2
  264858. adeb1dcad4 Pylint Fix
  264859. .IP \(bu 2
  264860. 588c13783c Salt\-cloud logging clean up for windows functions
  264861. .IP \(bu 2
  264862. 9b6000135c [2014.7] Fixup salt\-cloud logging
  264863. .UNINDENT
  264864. .IP \(bu 2
  264865. \fBPR\fP \fI\%#27252\fP: (\fI\%jfindlay\fP) 2014.7 \-> 2014.7.0
  264866. @ \fI2015\-09\-18 23:44:39 UTC\fP
  264867. .INDENT 2.0
  264868. .IP \(bu 2
  264869. e90412d3b8 Merge pull request \fI\%#27252\fP from jfindlay/version.2014.7
  264870. .IP \(bu 2
  264871. 3d28307a00 2014.7 \-> 2014.7.0
  264872. .UNINDENT
  264873. .IP \(bu 2
  264874. \fBPR\fP \fI\%#27117\fP: (\fI\%jacobhammons\fP) made 2014.7 an archived release
  264875. @ \fI2015\-09\-15 07:35:12 UTC\fP
  264876. .INDENT 2.0
  264877. .IP \(bu 2
  264878. c186e51764 Merge pull request \fI\%#27117\fP from jacobhammons/release\-docs\-2014.7
  264879. .IP \(bu 2
  264880. b69e11e0a4 made 2014.7 an archived release minor doc site updates
  264881. .UNINDENT
  264882. .IP \(bu 2
  264883. \fBPR\fP \fI\%#27114\fP: (\fI\%cachedout\fP) Issue warning that some log levels may contain sensitive data
  264884. @ \fI2015\-09\-15 07:30:43 UTC\fP
  264885. .INDENT 2.0
  264886. .IP \(bu 2
  264887. 69d758ee2b Merge pull request \fI\%#27114\fP from cachedout/warn_on_insecure_log
  264888. .IP \(bu 2
  264889. 507fb04683 Issue warning that some log levels may contain sensitive data
  264890. .UNINDENT
  264891. .IP \(bu 2
  264892. \fBPR\fP \fI\%#27075\fP: (\fI\%twangboy\fP) Replaced password with redacted when displayed
  264893. @ \fI2015\-09\-14 18:36:10 UTC\fP
  264894. .INDENT 2.0
  264895. .IP \(bu 2
  264896. aa71bae8aa Merge pull request \fI\%#27075\fP from twangboy/fix_password_2014.7
  264897. .IP \(bu 2
  264898. c0689e3215 Replaced password with redacted when displayed
  264899. .UNINDENT
  264900. .IP \(bu 2
  264901. \fBISSUE\fP \fI\%#26656\fP: (\fI\%ari\fP) [documentation] error in example for salt.runner.pillar (refs: \fI\%#26667\fP)
  264902. .IP \(bu 2
  264903. \fBPR\fP \fI\%#26667\fP: (\fI\%nmadhok\fP) [doc\-fix] Removing special character from salt.runners.pillar and other changes
  264904. @ \fI2015\-08\-26 18:24:37 UTC\fP
  264905. .INDENT 2.0
  264906. .IP \(bu 2
  264907. c2c7fe06c8 Merge pull request \fI\%#26667\fP from nmadhok/doc\-fix\-2014.7
  264908. .IP \(bu 2
  264909. 26be189689 Doc fix. Fixes \fI\%#26656\fP
  264910. .UNINDENT
  264911. .IP \(bu 2
  264912. \fBPR\fP \fI\%#26663\fP: (\fI\%jacobhammons\fP) version change for latest branch
  264913. @ \fI2015\-08\-26 14:03:35 UTC\fP
  264914. .INDENT 2.0
  264915. .IP \(bu 2
  264916. 6bd3dccae8 Merge pull request \fI\%#26663\fP from jacobhammons/2014.7\-version
  264917. .IP \(bu 2
  264918. b6af538070 version change for latest branch
  264919. .UNINDENT
  264920. .IP \(bu 2
  264921. \fBPR\fP \fI\%#26636\fP: (\fI\%rallytime\fP) Refactor cloud provider tests to be more accurate
  264922. @ \fI2015\-08\-25 21:28:34 UTC\fP
  264923. .INDENT 2.0
  264924. .IP \(bu 2
  264925. 071a6112e5 Merge pull request \fI\%#26636\fP from rallytime/cloud\-test\-fixes
  264926. .IP \(bu 2
  264927. c0d83d558d Don\(aqt use id as variable
  264928. .IP \(bu 2
  264929. 2b4bc1679d Keep ec2 instance creation test the same \- it works better for the ec2 output
  264930. .IP \(bu 2
  264931. b5b58eb31f Skip digital ocean tests since we can\(aqt use API v1 with v2 tests
  264932. .IP \(bu 2
  264933. 9ae1539c62 Update cloud tests to be more efficient and accurate
  264934. .UNINDENT
  264935. .IP \(bu 2
  264936. \fBISSUE\fP \fI\%#26630\fP: (\fI\%efficks\fP) win_service: Function has_powershell does not works on Windows XP (refs: \fI\%#26640\fP)
  264937. .IP \(bu 2
  264938. \fBPR\fP \fI\%#26640\fP: (\fI\%efficks\fP) Fix function spacing
  264939. @ \fI2015\-08\-25 20:01:39 UTC\fP
  264940. .INDENT 2.0
  264941. .IP \(bu 2
  264942. 304542b4c6 Merge pull request \fI\%#26640\fP from efficks/fixws2014
  264943. .IP \(bu 2
  264944. ebe5d9d85c Fix function spacing
  264945. .UNINDENT
  264946. .IP \(bu 2
  264947. \fBPR\fP \fI\%#26515\fP: (\fI\%bersace\fP) Defaults to current saltenv in state.sls
  264948. @ \fI2015\-08\-25 16:35:50 UTC\fP
  264949. .INDENT 2.0
  264950. .IP \(bu 2
  264951. 4532f98a76 Merge pull request \fI\%#26515\fP from bersace/salt\-env\-local\-sls
  264952. .IP \(bu 2
  264953. 0727af9e3d Defaults to current saltenv in state.sls
  264954. .UNINDENT
  264955. .IP \(bu 2
  264956. \fBPR\fP \fI\%#26242\fP: (\fI\%cro\fP) Remove dead code
  264957. @ \fI2015\-08\-12 15:14:20 UTC\fP
  264958. .INDENT 2.0
  264959. .IP \(bu 2
  264960. da8bca09aa Merge pull request \fI\%#26242\fP from cro/anonldap4
  264961. .IP \(bu 2
  264962. a0d2ab1eed Remove dead code
  264963. .UNINDENT
  264964. .IP \(bu 2
  264965. \fBPR\fP \fI\%#26216\fP: (\fI\%cro\fP) Fix LDAP configuration issue.
  264966. @ \fI2015\-08\-11 18:33:43 UTC\fP
  264967. .INDENT 2.0
  264968. .IP \(bu 2
  264969. 1ecf23773e Merge pull request \fI\%#26216\fP from cro/anonldap3
  264970. .IP \(bu 2
  264971. af132d7b89 Documentation update for anonymous bind issue.
  264972. .IP \(bu 2
  264973. 2ef54b6b13 Documentation update for anonymous bind issue.
  264974. .IP \(bu 2
  264975. 5b1836bb00 Fix issue with LDAP anonymous binds.
  264976. .UNINDENT
  264977. .IP \(bu 2
  264978. \fBPR\fP \fI\%#26116\fP: (\fI\%corux\fP) file.replace fails if repl string is an invalid regex and append/prepend is used
  264979. @ \fI2015\-08\-10 16:44:12 UTC\fP
  264980. .INDENT 2.0
  264981. .IP \(bu 2
  264982. abdf2935c4 Merge pull request \fI\%#26116\fP from corux/fix\-escape\-content
  264983. .IP \(bu 2
  264984. fd913ddc36 Append/prepend: search for full line with escaped content
  264985. .UNINDENT
  264986. .IP \(bu 2
  264987. \fBISSUE\fP \fI\%#25751\fP: (\fI\%basepi\fP) Document \fImaster_finger\fP more prominently (refs: \fI\%#26088\fP)
  264988. .IP \(bu 2
  264989. \fBPR\fP \fI\%#26088\fP: (\fI\%jacobhammons\fP) Master finger
  264990. @ \fI2015\-08\-07 14:31:33 UTC\fP
  264991. .INDENT 2.0
  264992. .IP \(bu 2
  264993. 106356d98d Merge pull request \fI\%#26088\fP from jacobhammons/master\-finger
  264994. .IP \(bu 2
  264995. 133d5f7885 some small changes
  264996. .IP \(bu 2
  264997. d220c83f77 master_finger configuration docs switch a script to use \fI\%https://\fP instead of \fI\%http://\fP Refs \fI\%#25751\fP
  264998. .UNINDENT
  264999. .IP \(bu 2
  265000. \fBISSUE\fP \fI\%#25961\fP: (\fI\%getabc\fP) [2015.5.3\-2] salt\-winrepo.git/salt\-minion.sls fails certificate \(aq*.wpengine.com\(aq or \(aqwpengine.com\(aq (refs: \fI\%#26047\fP)
  265001. .IP \(bu 2
  265002. \fBPR\fP \fI\%#26047\fP: (\fI\%jacobhammons\fP) Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP
  265003. @ \fI2015\-08\-05 22:59:44 UTC\fP
  265004. .INDENT 2.0
  265005. .IP \(bu 2
  265006. 4bd4bc41f2 Merge pull request \fI\%#26047\fP from jacobhammons/win\-downloads
  265007. .IP \(bu 2
  265008. 7c162d181c Updated windows download links in the docs to \fI\%https://repo.saltstack.com\fP Refs \fI\%#25961\fP
  265009. .UNINDENT
  265010. .IP \(bu 2
  265011. \fBISSUE\fP \fI\%#25701\fP: (\fI\%alekti\fP) Issue \fI\%#23764\fP regression (refs: \fI\%#25750\fP)
  265012. .IP \(bu 2
  265013. \fBISSUE\fP \fI\%#23764\fP: (\fI\%es1o\fP) source_hash from local file is not supported. (refs: \fI\%#25750\fP)
  265014. .IP \(bu 2
  265015. \fBPR\fP \fI\%#25750\fP: (\fI\%alekti\fP) Add file as supported protocol for file source_hash. Fixes \fI\%#25701\fP\&.
  265016. @ \fI2015\-07\-29 02:31:27 UTC\fP
  265017. .INDENT 2.0
  265018. .IP \(bu 2
  265019. d93eb87c16 Merge pull request \fI\%#25750\fP from alekti/2014.7
  265020. .IP \(bu 2
  265021. 9ec3ae96d4 Add file as supported protocol for file source_hash. Fixes \fI\%#23764\fP\&.
  265022. .UNINDENT
  265023. .IP \(bu 2
  265024. \fBPR\fP \fI\%#25704\fP: (\fI\%cachedout\fP) Ensure prior alignment with master_type in 2014.7
  265025. @ \fI2015\-07\-27 16:06:35 UTC\fP
  265026. .INDENT 2.0
  265027. .IP \(bu 2
  265028. 3a15df22ac Merge pull request \fI\%#25704\fP from cachedout/master_type_2014_7
  265029. .IP \(bu 2
  265030. c95886c9a7 Ensure prior alignment with master_type in 2014.7
  265031. .UNINDENT
  265032. .IP \(bu 2
  265033. \fBPR\fP \fI\%#25657\fP: (\fI\%MrCitron\fP) Add the ability to specify a base pattern for carbon returner
  265034. @ \fI2015\-07\-24 16:32:58 UTC\fP
  265035. .INDENT 2.0
  265036. .IP \(bu 2
  265037. d1b9362a73 Merge pull request \fI\%#25657\fP from MrCitron/pattern\-carbon\-returner\-2014.7
  265038. .IP \(bu 2
  265039. f8b2f8079f Add the ability to specify a base pattern for metrics path used by the carbon returner
  265040. .UNINDENT
  265041. .IP \(bu 2
  265042. \fBPR\fP \fI\%#25633\fP: (\fI\%AkhterAli\fP) Update loader.py
  265043. @ \fI2015\-07\-22 20:02:41 UTC\fP
  265044. .INDENT 2.0
  265045. .IP \(bu 2
  265046. 9634351fc2 Merge pull request \fI\%#25633\fP from AkhterAli/2014.7
  265047. .IP \(bu 2
  265048. 29be4bbe11 Update loader.py
  265049. .UNINDENT
  265050. .IP \(bu 2
  265051. \fBPR\fP \fI\%#25416\fP: (\fI\%cachedout\fP) Fix broken keyword
  265052. @ \fI2015\-07\-14 19:47:10 UTC\fP
  265053. .INDENT 2.0
  265054. .IP \(bu 2
  265055. 09ebaceca8 Merge pull request \fI\%#25416\fP from cachedout/str_2014_7
  265056. .IP \(bu 2
  265057. cc514938a8 Fix broken keyword
  265058. .UNINDENT
  265059. .IP \(bu 2
  265060. \fBPR\fP \fI\%#25375\fP: (\fI\%cachedout\fP) Fix error in config.py for master_type
  265061. @ \fI2015\-07\-13 16:49:27 UTC\fP
  265062. .INDENT 2.0
  265063. .IP \(bu 2
  265064. 2a1dd1113f Merge pull request \fI\%#25375\fP from cachedout/config_fix_2014_7
  265065. .IP \(bu 2
  265066. c041f2905f Fix error in config.py for master_type
  265067. .UNINDENT
  265068. .IP \(bu 2
  265069. \fBPR\fP \fI\%#25324\fP: (\fI\%jacobhammons\fP) Latest help theme updates
  265070. @ \fI2015\-07\-10 16:11:31 UTC\fP
  265071. .INDENT 2.0
  265072. .IP \(bu 2
  265073. 2590e23d48 Merge pull request \fI\%#25324\fP from jacobhammons/doc\-theme\-updates
  265074. .IP \(bu 2
  265075. 88f5fcf58d Latest help theme updates
  265076. .UNINDENT
  265077. .IP \(bu 2
  265078. \fBISSUE\fP \fI\%#18447\fP: (\fI\%ryan\-lane\fP) Can\(aqt install salt with raet using pip \-e git (refs: \fI\%#25093\fP)
  265079. .IP \(bu 2
  265080. \fBPR\fP \fI\%#25093\fP: (\fI\%jaybocc2\fP) quick fix for issue \fI\%#18447\fP
  265081. @ \fI2015\-07\-01 15:56:53 UTC\fP
  265082. .INDENT 2.0
  265083. .IP \(bu 2
  265084. 36d53ef59e Merge pull request \fI\%#25093\fP from jaybocc2/2014.7
  265085. .IP \(bu 2
  265086. c6a501ebda quick fix for issue \fI\%#18447\fP
  265087. .UNINDENT
  265088. .IP \(bu 2
  265089. \fBPR\fP \fI\%#25069\fP: (\fI\%puneetk\fP) Add a helper module function called list_enabled
  265090. @ \fI2015\-06\-30 20:53:51 UTC\fP
  265091. .INDENT 2.0
  265092. .IP \(bu 2
  265093. 38903a94a1 Merge pull request \fI\%#25069\fP from puneetk/patch\-1
  265094. .IP \(bu 2
  265095. f0b4e600e6 Update Documentation to clarify version added
  265096. .IP \(bu 2
  265097. f8dc6030e7 Pylint updates , removing whitespace
  265098. .IP \(bu 2
  265099. 532d315dd1 [Code Review update] renamed function to is_enaled from list_enabled
  265100. .IP \(bu 2
  265101. 20b0462289 Update schedule.py
  265102. .IP \(bu 2
  265103. 4f1471d7fb Add a helper module function called list_enabled
  265104. .UNINDENT
  265105. .IP \(bu 2
  265106. \fBISSUE\fP \fI\%#15209\fP: (\fI\%hubez\fP) file.manage: source_hash not working with s3:// (2014.7.0rc1) (refs: \fI\%#25011\fP)
  265107. .IP \(bu 2
  265108. \fBPR\fP \fI\%#25011\fP: (\fI\%notpeter\fP) Add s3 to protocols for remote source_hash (2014.7 backport)
  265109. @ \fI2015\-06\-27 22:35:44 UTC\fP
  265110. .INDENT 2.0
  265111. .IP \(bu 2
  265112. a7154e7471 Merge pull request \fI\%#25011\fP from notpeter/s3_2014.7_backport
  265113. .IP \(bu 2
  265114. 8b8af640f6 Add s3 to protocols for remote source_hash
  265115. .UNINDENT
  265116. .IP \(bu 2
  265117. \fBISSUE\fP \fI\%#24915\fP: (\fI\%justinta\fP) Salt\-cloud not working in 2014.7.6 (refs: \fI\%#24944\fP)
  265118. .IP \(bu 2
  265119. \fBPR\fP \fI\%#24944\fP: (\fI\%techhat\fP) Double\-check main_cloud_config
  265120. @ \fI2015\-06\-25 12:29:55 UTC\fP
  265121. .INDENT 2.0
  265122. .IP \(bu 2
  265123. a11e4c6eea Merge pull request \fI\%#24944\fP from techhat/issue24915
  265124. .IP \(bu 2
  265125. 59c3081e49 Double\-check main_cloud_config
  265126. .UNINDENT
  265127. .IP \(bu 2
  265128. \fBPR\fP \fI\%#24936\fP: (\fI\%justinta\fP) Fixed ps module to not use depreciated psutil commands
  265129. @ \fI2015\-06\-24 22:38:19 UTC\fP
  265130. .INDENT 2.0
  265131. .IP \(bu 2
  265132. d26a5447ba Merge pull request \fI\%#24936\fP from jtand/psutil
  265133. .IP \(bu 2
  265134. bdb7a19c36 Fixed ps module to not use depreciated psutil commands
  265135. .UNINDENT
  265136. .IP \(bu 2
  265137. \fBISSUE\fP \fI\%saltstack/salt\-bootstrap#473\fP: (\fI\%s1kbr0\fP) salt\-bootstrap.sh [...] git v2014.1.11 on SmartOS base64 is broken (refs: \fI\%#24918\fP)
  265138. .IP \(bu 2
  265139. \fBPR\fP \fI\%#24918\fP: (\fI\%BretFisher\fP) SmartOS SMF minion startup fix
  265140. @ \fI2015\-06\-24 15:44:26 UTC\fP
  265141. .INDENT 2.0
  265142. .IP \(bu 2
  265143. eeb05a1b10 Merge pull request \fI\%#24918\fP from BretFisher/minion\-start\-smartos\-smf\-fix
  265144. .IP \(bu 2
  265145. d7bfb0c7fd Smartos smf minion fix
  265146. .UNINDENT
  265147. .IP \(bu 2
  265148. \fBISSUE\fP \fI\%#24776\fP: (\fI\%nmadhok\fP) \-\-static option in salt raises ValueError and has been broken for a very long time (refs: \fI\%#24777\fP)
  265149. .IP \(bu 2
  265150. \fBPR\fP \fI\%#24780\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2014.7 branch
  265151. @ \fI2015\-06\-18 14:52:56 UTC\fP
  265152. .INDENT 2.0
  265153. .IP \(bu 2
  265154. \fBPR\fP \fI\%#24779\fP: (\fI\%nmadhok\fP) Backporting Changes to 2014.7 branch (refs: \fI\%#24777\fP)
  265155. .IP \(bu 2
  265156. \fBPR\fP \fI\%#24778\fP: (\fI\%nmadhok\fP) Backporting PR \fI\%#24777\fP to 2015.2 branch (refs: \fI\%#24777\fP)
  265157. .IP \(bu 2
  265158. \fBPR\fP \fI\%#24777\fP: (\fI\%nmadhok\fP) Fixing issue where \-\-static option fails with ValueError Fixes \fI\%#24776\fP (refs: \fI\%#24778\fP, \fI\%#24780\fP)
  265159. .IP \(bu 2
  265160. 4281dfff0b Merge pull request \fI\%#24780\fP from nmadhok/backport\-2014.7\-24777
  265161. .IP \(bu 2
  265162. c53b0d9a22 Backporting PR \fI\%#24777\fP to 2014.7 branch
  265163. .UNINDENT
  265164. .IP \(bu 2
  265165. \fBISSUE\fP \fI\%#21318\fP: (\fI\%thanatos\fP) get_full_returns raises KeyError (refs: \fI\%#24769\fP)
  265166. .IP \(bu 2
  265167. \fBISSUE\fP \fI\%#18994\fP: (\fI\%njhartwell\fP) salt.client.get_cli_returns errors when called immediately after run_job (refs: \fI\%#24769\fP)
  265168. .IP \(bu 2
  265169. \fBPR\fP \fI\%#24769\fP: (\fI\%msteed\fP) Fix stacktrace in get_cli_returns()
  265170. @ \fI2015\-06\-18 14:31:46 UTC\fP
  265171. .INDENT 2.0
  265172. .IP \(bu 2
  265173. f3c5cb2d41 Merge pull request \fI\%#24769\fP from msteed/issue\-21318
  265174. .IP \(bu 2
  265175. f40a9d5cc0 Fix stacktrace in get_cli_returns()
  265176. .UNINDENT
  265177. .IP \(bu 2
  265178. \fBISSUE\fP \fI\%#17041\fP: (\fI\%xenophonf\fP) Confusing Salt error messages due to limited/incomplete PowerShell command error handling (refs: \fI\%#24690\fP)
  265179. .IP \(bu 2
  265180. \fBPR\fP \fI\%#24690\fP: (\fI\%twangboy\fP) Report powershell output instead of error
  265181. @ \fI2015\-06\-17 16:33:49 UTC\fP
  265182. .INDENT 2.0
  265183. .IP \(bu 2
  265184. 59db24602f Merge pull request \fI\%#24690\fP from twangboy/fix_17041
  265185. .IP \(bu 2
  265186. 7a015389af Added additional reporting
  265187. .IP \(bu 2
  265188. d84ad5d519 Fixed capitalization... Failed and Already
  265189. .IP \(bu 2
  265190. e9552455c4 Merge branch \(aq2014.7\(aq of \fI\%https://github.com/saltstack/salt\fP into fix_17041
  265191. .UNINDENT
  265192. .IP \(bu 2
  265193. \fBISSUE\fP \fI\%#24196\fP: (\fI\%johnccfm\fP) Exception when using user.present with Windows (refs: \fI\%#24646\fP)
  265194. .IP \(bu 2
  265195. \fBPR\fP \fI\%#24646\fP: (\fI\%twangboy\fP) Fixed user.present on existing user
  265196. @ \fI2015\-06\-15 15:04:43 UTC\fP
  265197. .INDENT 2.0
  265198. .IP \(bu 2
  265199. a18dadad71 Merge pull request \fI\%#24646\fP from twangboy/fix_24196
  265200. .IP \(bu 2
  265201. a208e1d60f Fixed user.present on existing user
  265202. .IP \(bu 2
  265203. 144bff2f67 Report powershell output instead of error
  265204. .UNINDENT
  265205. .IP \(bu 2
  265206. \fBPR\fP \fI\%#24643\fP: (\fI\%cro\fP) Add reference to salt\-announce mailing list
  265207. @ \fI2015\-06\-12 20:21:15 UTC\fP
  265208. .INDENT 2.0
  265209. .IP \(bu 2
  265210. b99484fde2 Merge pull request \fI\%#24643\fP from cro/saltannounce
  265211. .IP \(bu 2
  265212. ecb0623d7f Add salt\-announce mailing list.
  265213. .UNINDENT
  265214. .IP \(bu 2
  265215. \fBPR\fP \fI\%#24620\fP: (\fI\%twangboy\fP) Fixed comment and uncomment functions in file.py
  265216. @ \fI2015\-06\-12 19:36:26 UTC\fP
  265217. .INDENT 2.0
  265218. .IP \(bu 2
  265219. 635121e85d Merge pull request \fI\%#24620\fP from twangboy/fix_24215
  265220. .IP \(bu 2
  265221. d7a9999be1 Fixed comment and uncomment functions in file.py
  265222. .UNINDENT
  265223. .IP \(bu 2
  265224. \fBPR\fP \fI\%#24589\fP: (\fI\%BretFisher\fP) Fixed Mine example for jinja code block
  265225. @ \fI2015\-06\-11 15:48:02 UTC\fP
  265226. .INDENT 2.0
  265227. .IP \(bu 2
  265228. d83928a7f9 Merge pull request \fI\%#24589\fP from BretFisher/patch\-1
  265229. .IP \(bu 2
  265230. 65a11336dc Fixed Mine example for jinja code block
  265231. .UNINDENT
  265232. .IP \(bu 2
  265233. \fBISSUE\fP \fI\%#24427\fP: (\fI\%fayetted\fP) 2015.5.1\-3 Windows 64Bit Minion fails to start after install (refs: \fI\%#24530\fP)
  265234. .IP \(bu 2
  265235. \fBPR\fP \fI\%#24530\fP: (\fI\%twangboy\fP) Start Minion Service on Silent Install
  265236. @ \fI2015\-06\-09 21:30:08 UTC\fP
  265237. .INDENT 2.0
  265238. .IP \(bu 2
  265239. d376390f76 Merge pull request \fI\%#24530\fP from twangboy/fix_24427
  265240. .IP \(bu 2
  265241. 673e1d809e Added missing panel.bmp for installer
  265242. .IP \(bu 2
  265243. cc50218b01 Start Minion Service on Silent Install
  265244. .UNINDENT
  265245. .IP \(bu 2
  265246. \fBPR\fP \fI\%#24513\fP: (\fI\%jquast\fP) bugfix use of \(aqiteritem\(aq in 2014.7 branch
  265247. @ \fI2015\-06\-09 04:06:36 UTC\fP
  265248. .INDENT 2.0
  265249. .IP \(bu 2
  265250. \fBPR\fP \fI\%#24511\fP: (\fI\%jquast\fP) bugfix: trailing "...done" in rabbitmq output (refs: \fI\%#24513\fP)
  265251. .IP \(bu 2
  265252. 6ebc476bb3 Merge pull request \fI\%#24513\fP from jquast/2014.7\-bugfix\-iteritem
  265253. .IP \(bu 2
  265254. 2be0180e5e bugfix use of \(aqiteritem\(aq in 2014.7 branch
  265255. .UNINDENT
  265256. .IP \(bu 2
  265257. \fBISSUE\fP \fI\%#24276\fP: (\fI\%markuskramerIgitt\fP) Live salt\-master Profiling with SIGUSR2 fails (refs: \fI\%#24405\fP)
  265258. .IP \(bu 2
  265259. \fBPR\fP \fI\%#24405\fP: (\fI\%jacksontj\fP) Fix for \fI\%#24276\fP
  265260. @ \fI2015\-06\-04 20:50:42 UTC\fP
  265261. .INDENT 2.0
  265262. .IP \(bu 2
  265263. 83f853b6ea Merge pull request \fI\%#24405\fP from jacksontj/2014.7
  265264. .IP \(bu 2
  265265. 2c7afaeebf Fix for \fI\%#24276\fP
  265266. .UNINDENT
  265267. .IP \(bu 2
  265268. \fBPR\fP \fI\%#24395\fP: (\fI\%hvnsweeting\fP) handle exceptions when received data is not in good shape
  265269. @ \fI2015\-06\-04 20:08:22 UTC\fP
  265270. .INDENT 2.0
  265271. .IP \(bu 2
  265272. cef919c602 Merge pull request \fI\%#24395\fP from hvnsweeting/handle\-exception\-get\-file
  265273. .IP \(bu 2
  265274. bb798a0224 handle exceptions when received data is not in good shape
  265275. .UNINDENT
  265276. .IP \(bu 2
  265277. \fBPR\fP \fI\%#24305\fP: (\fI\%twangboy\fP) Added documentation, fixed formatting
  265278. @ \fI2015\-06\-04 19:40:54 UTC\fP
  265279. .INDENT 2.0
  265280. .IP \(bu 2
  265281. efba1a94b4 Merge pull request \fI\%#24305\fP from twangboy/win_path_docs
  265282. .IP \(bu 2
  265283. 36804253e6 Fixed pylint error caused by P... added r
  265284. .IP \(bu 2
  265285. bc42a4bb11 triple double quotes to triple single quotes
  265286. .IP \(bu 2
  265287. 77cd930bba Added documentation, fixed formatting
  265288. .UNINDENT
  265289. .IP \(bu 2
  265290. \fBPR\fP \fI\%#24178\fP: (\fI\%rallytime\fP) Backport \fI\%#24118\fP to 2014.7, too.
  265291. @ \fI2015\-05\-27 17:49:45 UTC\fP
  265292. .INDENT 2.0
  265293. .IP \(bu 2
  265294. \fBPR\fP \fI\%#24118\fP: (\fI\%trevor\-h\fP) removed deprecated pymongo usage (refs: \fI\%#24178\fP)
  265295. .IP \(bu 2
  265296. 9d7331c87d Merge pull request \fI\%#24178\fP from rallytime/bp\-24118
  265297. .IP \(bu 2
  265298. e2217a09e8 removed deprecated pymongo usage as no longer functional with pymongo > 3.x
  265299. .UNINDENT
  265300. .IP \(bu 2
  265301. \fBPR\fP \fI\%#24159\fP: (\fI\%rallytime\fP) Fill out modules/keystone.py CLI Examples
  265302. @ \fI2015\-05\-27 15:07:11 UTC\fP
  265303. .INDENT 2.0
  265304. .IP \(bu 2
  265305. 4e8c5031b0 Merge pull request \fI\%#24159\fP from rallytime/keystone_doc_examples
  265306. .IP \(bu 2
  265307. dadac8d076 Fill out modules/keystone.py CLI Examples
  265308. .UNINDENT
  265309. .IP \(bu 2
  265310. \fBPR\fP \fI\%#24158\fP: (\fI\%rallytime\fP) Fix test_valid_docs test for tls module
  265311. @ \fI2015\-05\-27 15:06:05 UTC\fP
  265312. .INDENT 2.0
  265313. .IP \(bu 2
  265314. fc10ee8ed5 Merge pull request \fI\%#24158\fP from rallytime/fix_doc_error
  265315. .IP \(bu 2
  265316. 49a517e2ca Fix test_valid_docs test for tls module
  265317. .UNINDENT
  265318. .IP \(bu 2
  265319. \fBPR\fP \fI\%#24125\fP: (\fI\%hvnsweeting\fP) Fix rabbitmq test mode
  265320. @ \fI2015\-05\-26 15:40:18 UTC\fP
  265321. .INDENT 2.0
  265322. .IP \(bu 2
  265323. c0d32e0b5e Merge pull request \fI\%#24125\fP from hvnsweeting/fix\-rabbitmq\-test\-mode
  265324. .IP \(bu 2
  265325. 71862c69b9 enhance log
  265326. .IP \(bu 2
  265327. 28e2594162 change according to new output of rabbitmq module functions
  265328. .IP \(bu 2
  265329. cd0212e8ed processes and returns better output for rabbitmq module
  265330. .UNINDENT
  265331. .IP \(bu 2
  265332. \fBISSUE\fP \fI\%#23464\fP: (\fI\%tibold\fP) cmd_iter_no_block() blocks (refs: \fI\%#24093\fP)
  265333. .IP \(bu 2
  265334. \fBPR\fP \fI\%#24093\fP: (\fI\%msteed\fP) Make LocalClient.cmd_iter_no_block() not block
  265335. @ \fI2015\-05\-25 15:56:42 UTC\fP
  265336. .INDENT 2.0
  265337. .IP \(bu 2
  265338. 39a8f30f06 Merge pull request \fI\%#24093\fP from msteed/issue\-23464
  265339. .IP \(bu 2
  265340. fd35903d75 Fix failing test
  265341. .IP \(bu 2
  265342. 41b344c7d3 Make LocalClient.cmd_iter_no_block() not block
  265343. .UNINDENT
  265344. .IP \(bu 2
  265345. \fBPR\fP \fI\%#24008\fP: (\fI\%davidjb\fP) Correct reST formatting for states.cmd documentation
  265346. @ \fI2015\-05\-21 04:19:01 UTC\fP
  265347. .INDENT 2.0
  265348. .IP \(bu 2
  265349. 5bffd3045e Merge pull request \fI\%#24008\fP from davidjb/2014.7
  265350. .IP \(bu 2
  265351. 8b8d0293d4 Correct reST formatting for documentation
  265352. .UNINDENT
  265353. .IP \(bu 2
  265354. \fBPR\fP \fI\%#23933\fP: (\fI\%jacobhammons\fP) sphinx saltstack2 doc theme
  265355. @ \fI2015\-05\-20 18:19:19 UTC\fP
  265356. .INDENT 2.0
  265357. .IP \(bu 2
  265358. 1aa0420040 Merge pull request \fI\%#23933\fP from jacobhammons/2014.7
  265359. .IP \(bu 2
  265360. a3613e68e4 removed numbering from doc TOC
  265361. .IP \(bu 2
  265362. 78b737c5e6 removed 2015.* release from release notes, updated index page to remove PDF/epub links
  265363. .IP \(bu 2
  265364. e867f7df77 Changed build settings to use saltstack2 theme and update release versions.
  265365. .IP \(bu 2
  265366. 81ed9c9f59 sphinx saltstack2 doc theme
  265367. .UNINDENT
  265368. .IP \(bu 2
  265369. \fBPR\fP \fI\%#23965\fP: (\fI\%hvnsweeting\fP) handle all exceptions gitpython can raise
  265370. @ \fI2015\-05\-20 15:08:03 UTC\fP
  265371. .INDENT 2.0
  265372. .IP \(bu 2
  265373. 314e4db512 Merge pull request \fI\%#23965\fP from hvnsweeting/20147\-fix\-gitfs\-gitpython\-exception
  265374. .IP \(bu 2
  265375. 2576301631 handle all exception gitpython can raise
  265376. .UNINDENT
  265377. .IP \(bu 2
  265378. \fBPR\fP \fI\%#23939\fP: (\fI\%basepi\fP) Add extended changelog to 2014.7.6 release notes
  265379. @ \fI2015\-05\-19 21:21:00 UTC\fP
  265380. .INDENT 2.0
  265381. .IP \(bu 2
  265382. 913391207a Merge pull request \fI\%#23939\fP from basepi/v2014.7.6release
  265383. .IP \(bu 2
  265384. 32b65dc2a9 Add extended changelog to 2014.7.6 release notes
  265385. .UNINDENT
  265386. .IP \(bu 2
  265387. \fBISSUE\fP \fI\%#23820\fP: (\fI\%UtahDave\fP) 2014.7.5 schedule error (refs: \fI\%#23881\fP)
  265388. .IP \(bu 2
  265389. \fBPR\fP \fI\%#23881\fP: (\fI\%garethgreenaway\fP) Fixes to schedule module in 2014.7
  265390. @ \fI2015\-05\-19 15:46:30 UTC\fP
  265391. .INDENT 2.0
  265392. .IP \(bu 2
  265393. 0031ca2631 Merge pull request \fI\%#23881\fP from garethgreenaway/23820_2014_7_schedule_list_issue
  265394. .IP \(bu 2
  265395. b207f2a433 Missing continue in the list function when deleting unused attributes.
  265396. .UNINDENT
  265397. .IP \(bu 2
  265398. \fBISSUE\fP \fI\%#22131\fP: (\fI\%quixoten\fP) "unexpected keyword argument \(aqmerge\(aq" on 2014.7.2 (salt\-ssh) (refs: \fI\%#23887\fP)
  265399. .IP \(bu 2
  265400. \fBPR\fP \fI\%#23887\fP: (\fI\%basepi\fP) [2014.7] Bring salt\-ssh pillar.get in line with mainline pillar.get
  265401. @ \fI2015\-05\-18 23:11:34 UTC\fP
  265402. .INDENT 2.0
  265403. .IP \(bu 2
  265404. 63bd21ecd2 Merge pull request \fI\%#23887\fP from basepi/salt\-ssh.pillar.get.22131
  265405. .IP \(bu 2
  265406. bc84502f46 Bring salt\-ssh pillar.get in line with mainline pillar.get
  265407. .UNINDENT
  265408. .IP \(bu 2
  265409. \fBPR\fP \fI\%#23891\fP: (\fI\%basepi\fP) Update the release notes index page
  265410. @ \fI2015\-05\-18 23:06:52 UTC\fP
  265411. .INDENT 2.0
  265412. .IP \(bu 2
  265413. 17c5810c04 Merge pull request \fI\%#23891\fP from basepi/releasenotes
  265414. .IP \(bu 2
  265415. dec153bcea Update the release notes index page
  265416. .UNINDENT
  265417. .IP \(bu 2
  265418. \fBPR\fP \fI\%#23888\fP: (\fI\%basepi\fP) Update the 2014.7.6 release notes with CVE details
  265419. @ \fI2015\-05\-18 22:35:51 UTC\fP
  265420. .INDENT 2.0
  265421. .IP \(bu 2
  265422. a93e58f80f Merge pull request \fI\%#23888\fP from basepi/v2014.7.6release
  265423. .IP \(bu 2
  265424. 49921b6cb2 Update the 2014.7.6 release notes with CVE details
  265425. .UNINDENT
  265426. .IP \(bu 2
  265427. \fBPR\fP \fI\%#23871\fP: (\fI\%rallytime\fP) Backport \fI\%#23848\fP to 2014.7
  265428. @ \fI2015\-05\-18 20:34:04 UTC\fP
  265429. .INDENT 2.0
  265430. .IP \(bu 2
  265431. \fBPR\fP \fI\%#23848\fP: (\fI\%dumol\fP) Updated installation docs for SLES 12. (refs: \fI\%#23871\fP)
  265432. .IP \(bu 2
  265433. 50730287bb Merge pull request \fI\%#23871\fP from rallytime/bp\-23848
  265434. .IP \(bu 2
  265435. 379c09c3a5 Updated for SLES 12.
  265436. .UNINDENT
  265437. .UNINDENT
  265438. .SS Salt 2014.7.8 Release Notes
  265439. .INDENT 0.0
  265440. .TP
  265441. .B release
  265442. 2015\-11\-13
  265443. .UNINDENT
  265444. .sp
  265445. Version 2014.7.8 is a bugfix release for 2014.7.0\&.
  265446. .SS Statistics
  265447. .INDENT 0.0
  265448. .IP \(bu 2
  265449. Total Merges: \fB7\fP
  265450. .IP \(bu 2
  265451. Total Issue References: \fB3\fP
  265452. .IP \(bu 2
  265453. Total PR References: \fB10\fP
  265454. .IP \(bu 2
  265455. Contributors: \fB5\fP (\fI\%DmitryKuzmenko\fP, \fI\%JaseFace\fP, \fI\%MasterNayru\fP, \fI\%cachedout\fP, \fI\%rallytime\fP)
  265456. .UNINDENT
  265457. .SS Changelog for v2014.7.7..v2014.7.8
  265458. .sp
  265459. \fIGenerated at: 2018\-05\-27 20:47:34 UTC\fP
  265460. .INDENT 0.0
  265461. .IP \(bu 2
  265462. \fBPR\fP \fI\%#28839\fP: (\fI\%cachedout\fP) Revert \fI\%#28740\fP
  265463. @ \fI2015\-11\-12 22:54:28 UTC\fP
  265464. .INDENT 2.0
  265465. .IP \(bu 2
  265466. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28839\fP)
  265467. .IP \(bu 2
  265468. 4b8bdd0afb Merge pull request \fI\%#28839\fP from cachedout/revert_28740
  265469. .IP \(bu 2
  265470. 215b26c06f Revert \fI\%#28740\fP
  265471. .UNINDENT
  265472. .IP \(bu 2
  265473. \fBPR\fP \fI\%#28777\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28740\fP to 2014.7
  265474. @ \fI2015\-11\-11 18:00:00 UTC\fP
  265475. .INDENT 2.0
  265476. .IP \(bu 2
  265477. \fBPR\fP \fI\%#28740\fP: (\fI\%MasterNayru\fP) Add missing S3 module import (refs: \fI\%#28777\fP, \fI\%#28839\fP)
  265478. .IP \(bu 2
  265479. 76e69b4bff Merge pull request \fI\%#28777\fP from rallytime/bp\-28740\-2014.7
  265480. .IP \(bu 2
  265481. da5fac2b36 Back\-port \fI\%#28740\fP to 2014.7
  265482. .UNINDENT
  265483. .IP \(bu 2
  265484. \fBPR\fP \fI\%#28716\fP: (\fI\%rallytime\fP) Back\-port \fI\%#28705\fP to 2014.7
  265485. @ \fI2015\-11\-10 16:15:03 UTC\fP
  265486. .INDENT 2.0
  265487. .IP \(bu 2
  265488. \fBPR\fP \fI\%#28705\fP: (\fI\%cachedout\fP) Account for new headers class in tornado 4.3 (refs: \fI\%#28716\fP)
  265489. .IP \(bu 2
  265490. 45c73ebf2f Merge pull request \fI\%#28716\fP from rallytime/bp\-28705
  265491. .IP \(bu 2
  265492. 32e7bd3ea0 Account for new headers class in tornado 4.3
  265493. .UNINDENT
  265494. .IP \(bu 2
  265495. \fBISSUE\fP \fI\%#28199\fP: (\fI\%felskrone\fP) Non\-standard umasks might break the master (refs: \fI\%#28717\fP)
  265496. .IP \(bu 2
  265497. \fBPR\fP \fI\%#28717\fP: (\fI\%cachedout\fP) Add note about recommended umask
  265498. @ \fI2015\-11\-09 23:26:20 UTC\fP
  265499. .INDENT 2.0
  265500. .IP \(bu 2
  265501. f4fe921965 Merge pull request \fI\%#28717\fP from cachedout/umask_note
  265502. .IP \(bu 2
  265503. 1874300e08 Add note about recommended umask
  265504. .UNINDENT
  265505. .IP \(bu 2
  265506. \fBISSUE\fP \fI\%#28455\fP: (\fI\%zmalone\fP) highstate.cache is world readable, and contains secrets (refs: \fI\%#28461\fP)
  265507. .IP \(bu 2
  265508. \fBPR\fP \fI\%#28461\fP: (\fI\%cachedout\fP) Wrap all cache calls in state.sls in correct umask
  265509. @ \fI2015\-11\-02 17:11:02 UTC\fP
  265510. .INDENT 2.0
  265511. .IP \(bu 2
  265512. 4bf56cad3f Merge pull request \fI\%#28461\fP from cachedout/issue_28455
  265513. .IP \(bu 2
  265514. 097838ec0c Wrap all cache calls in state.sls in correct umask
  265515. .UNINDENT
  265516. .IP \(bu 2
  265517. \fBISSUE\fP \fI\%#24910\fP: (\fI\%bocig\fP) \-T, \-\-make\-token flag does NOT work\- LDAP Groups (refs: \fI\%#28407\fP)
  265518. .IP \(bu 2
  265519. \fBPR\fP \fI\%#28407\fP: (\fI\%DmitryKuzmenko\fP) Don\(aqt request creds if auth with key.
  265520. @ \fI2015\-10\-29 16:12:30 UTC\fP
  265521. .INDENT 2.0
  265522. .IP \(bu 2
  265523. f3e61db045 Merge pull request \fI\%#28407\fP from DSRCompany/issues/24910_token_auth_fix_2014
  265524. .IP \(bu 2
  265525. b7b5bec309 Don\(aqt request creds if auth with key.
  265526. .UNINDENT
  265527. .IP \(bu 2
  265528. \fBPR\fP \fI\%#27390\fP: (\fI\%JaseFace\fP) Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item()
  265529. @ \fI2015\-10\-05 18:09:33 UTC\fP
  265530. .INDENT 2.0
  265531. .IP \(bu 2
  265532. d284eb165b Merge pull request \fI\%#27390\fP from JaseFace/schedule\-missing\-enabled
  265533. .IP \(bu 2
  265534. 563db71bfd Ensure we pass on the enable setting if present, or use the default of True if not in build_schedule_item() Prior to this, when schedule.present compares the existing schedule to the one crafted by this function, enabled will actually be removed at each run. schedule.present sees a modification needs to be made, and invokes schedule.modify, which does so with enabled: True, creating and endless loop of an \(aqenabled\(aq removal and addition.
  265535. .UNINDENT
  265536. .UNINDENT
  265537. .SS Salt 2014.7.9 Release Notes
  265538. .INDENT 0.0
  265539. .TP
  265540. .B release
  265541. 2016\-03\-11
  265542. .UNINDENT
  265543. .sp
  265544. Version 2014.7.9 is a bugfix release for 2014.7.0\&.
  265545. .SS Statistics
  265546. .INDENT 0.0
  265547. .IP \(bu 2
  265548. Total Merges: \fB5\fP
  265549. .IP \(bu 2
  265550. Total Issue References: \fB1\fP
  265551. .IP \(bu 2
  265552. Total PR References: \fB5\fP
  265553. .IP \(bu 2
  265554. Contributors: \fB4\fP (\fI\%douardda\fP, \fI\%gtmanfred\fP, \fI\%jacobhammons\fP, \fI\%jfindlay\fP)
  265555. .UNINDENT
  265556. .SS Changelog for v2014.7.8..v2014.7.9
  265557. .sp
  265558. \fIGenerated at: 2018\-05\-27 20:55:35 UTC\fP
  265559. .INDENT 0.0
  265560. .IP \(bu 2
  265561. \fBPR\fP \fI\%#31834\fP: (\fI\%jfindlay\fP) add 2014.7.8 release notes
  265562. @ \fI2016\-03\-11 21:35:42 UTC\fP
  265563. .INDENT 2.0
  265564. .IP \(bu 2
  265565. 218c902091 Merge pull request \fI\%#31834\fP from jfindlay/2014.7
  265566. .IP \(bu 2
  265567. 358fdad0c8 add 2014.7.8 release notes
  265568. .UNINDENT
  265569. .IP \(bu 2
  265570. \fBPR\fP \fI\%#31833\fP: (\fI\%jfindlay\fP) add 2014.7.9 release notes
  265571. @ \fI2016\-03\-11 21:19:55 UTC\fP
  265572. .INDENT 2.0
  265573. .IP \(bu 2
  265574. a423c6cd04 Merge pull request \fI\%#31833\fP from jfindlay/2014.7
  265575. .IP \(bu 2
  265576. 6910fcc584 add 2014.7.9 release notes
  265577. .UNINDENT
  265578. .IP \(bu 2
  265579. \fBPR\fP \fI\%#31826\fP: (\fI\%gtmanfred\fP) Remove ability of authenticating user to specify pam service
  265580. @ \fI2016\-03\-11 20:41:01 UTC\fP
  265581. .INDENT 2.0
  265582. .IP \(bu 2
  265583. c5e7c03953 Merge pull request \fI\%#31826\fP from gtmanfred/2014.7
  265584. .IP \(bu 2
  265585. d73f70ebb2 Remove ability of authenticating user to specify pam service
  265586. .UNINDENT
  265587. .IP \(bu 2
  265588. \fBPR\fP \fI\%#29392\fP: (\fI\%jacobhammons\fP) updated version number to not reference a specific build from the lat…
  265589. @ \fI2015\-12\-03 15:54:31 UTC\fP
  265590. .INDENT 2.0
  265591. .IP \(bu 2
  265592. 85aa70a6cb Merge pull request \fI\%#29392\fP from jacobhammons/2014.7
  265593. .IP \(bu 2
  265594. d7f0db1dd8 updated version number to not reference a specific build from the latest branch
  265595. .UNINDENT
  265596. .IP \(bu 2
  265597. \fBISSUE\fP \fI\%#29295\fP: (\fI\%douardda\fP) systemd\(aqs service file should use the \(aqprocess\(aq KillMode option on Debian also (refs: \fI\%#29296\fP)
  265598. .IP \(bu 2
  265599. \fBPR\fP \fI\%#29296\fP: (\fI\%douardda\fP) Use process KillMode on Debian systems also
  265600. @ \fI2015\-12\-01 16:00:16 UTC\fP
  265601. .INDENT 2.0
  265602. .IP \(bu 2
  265603. d2fb2109a3 Merge pull request \fI\%#29296\fP from douardda/patch\-3
  265604. .IP \(bu 2
  265605. d2885390f4 Use process KillMode on Debian systems also
  265606. .UNINDENT
  265607. .UNINDENT
  265608. .SS Salt 2014.1.0 Release Notes \- Codename Hydrogen
  265609. .sp
  265610. \fBNOTE:\fP
  265611. .INDENT 0.0
  265612. .INDENT 3.5
  265613. Due to a change in master to minion communication, 2014.1.0 minions are not
  265614. compatible with older\-version masters. Please upgrade masters first.
  265615. More info on backwards\-compatibility policy here, under the "Upgrading Salt" subheading.
  265616. .UNINDENT
  265617. .UNINDENT
  265618. .sp
  265619. \fBNOTE:\fP
  265620. .INDENT 0.0
  265621. .INDENT 3.5
  265622. A change in the grammar in the state compiler makes \fBmodule.run\fP in
  265623. requisites illegal syntax. Its use is replaced simply with the word
  265624. \fBmodule\fP\&. In other words you will need to change requisites like this:
  265625. .INDENT 0.0
  265626. .INDENT 3.5
  265627. .sp
  265628. .nf
  265629. .ft C
  265630. require:
  265631. module.run: some_module_name
  265632. .ft P
  265633. .fi
  265634. .UNINDENT
  265635. .UNINDENT
  265636. .sp
  265637. to:
  265638. .INDENT 0.0
  265639. .INDENT 3.5
  265640. .sp
  265641. .nf
  265642. .ft C
  265643. require:
  265644. module: some_module_name
  265645. .ft P
  265646. .fi
  265647. .UNINDENT
  265648. .UNINDENT
  265649. .sp
  265650. This is a breaking change. We apologize for the inconvenience, we needed to
  265651. do this to remove some ambiguity in parsing requisites.
  265652. .UNINDENT
  265653. .UNINDENT
  265654. .INDENT 0.0
  265655. .TP
  265656. .B release
  265657. 2014\-02\-24
  265658. .UNINDENT
  265659. .sp
  265660. The 2014.1.0 release of Salt is a major release which not only increases
  265661. stability but also brings new capabilities in virtualization, cloud
  265662. integration, and more. This release brings a great focus on the expansion of
  265663. testing making roughly double the coverage in the Salt tests, and comes with
  265664. many new features.
  265665. .sp
  265666. 2014.1.0 is the first release to follow the new date\-based release naming
  265667. system. See the version numbers
  265668. page for more details.
  265669. .SS Major Features
  265670. .SS Salt Cloud Merged into Salt
  265671. .sp
  265672. Salt Cloud is a tool for provisioning salted minions across various cloud
  265673. providers. Prior to this release, Salt Cloud was a separate project but this
  265674. marks its full integration with the Salt distribution. A Getting Started guide
  265675. and additional documentation for Salt Cloud can be found here:
  265676. .SS Google Compute Engine
  265677. .sp
  265678. Alongside Salt Cloud comes new support for the Google Compute Engine. Salt Stack
  265679. can now deploy and control GCE virtual machines and the application stacks that
  265680. they run.
  265681. .sp
  265682. For more information on Salt Stack and GCE, please see \fI\%this blog post\fP\&.
  265683. .sp
  265684. Documentation for Salt and GCE can be found here\&.
  265685. .SS Salt Virt
  265686. .sp
  265687. Salt Virt is a cloud controller that supports virtual machine deployment,
  265688. inspection, migration, and integration with many aspects of Salt.
  265689. .sp
  265690. Salt Virt has undergone a major overhaul with this release and now supports
  265691. many more features and includes a number of critical improvements.
  265692. .SS Docker Integration
  265693. .sp
  265694. Salt now ships with \fBstates\fP and an \fBexecution
  265695. module\fP to manage Docker containers.
  265696. .SS Substantial Testing Expansion
  265697. .sp
  265698. Salt continues to increase its unit/regression test coverage. This release
  265699. includes over 300 new tests.
  265700. .SS BSD Package Management
  265701. .sp
  265702. BSD package management has been entirely rewritten. FreeBSD 9 and older now
  265703. default to using pkg_add, while FreeBSD 10 and newer will use pkgng. FreeBSD 9
  265704. can be forced to use pkgng, however, by specifying the following option in the
  265705. minion config file:
  265706. .INDENT 0.0
  265707. .INDENT 3.5
  265708. .sp
  265709. .nf
  265710. .ft C
  265711. providers:
  265712. pkg: pkgng
  265713. .ft P
  265714. .fi
  265715. .UNINDENT
  265716. .UNINDENT
  265717. .sp
  265718. In addition, support for installing software from the ports tree has been
  265719. added. See the documentation for the ports \fBstate\fP and
  265720. \fBexecution module\fP for more information.
  265721. .SS Network Management for Debian/Ubuntu
  265722. .sp
  265723. Initial support for management of network interfaces on Debian\-based distros
  265724. has been added. See the documentation for the \fBnetwork state\fP and the \fBdebian_ip\fP for
  265725. more information.
  265726. .SS IPv6 Support for iptables State/Module
  265727. .sp
  265728. The iptables \fBstate\fP and \fBmodule\fP now have IPv6 support. A new parameter \fBfamily\fP has
  265729. been added to the states and execution functions, to distinguish between IPv4
  265730. and IPv6. The default value for this parameter is \fBipv4\fP, specifying \fBipv6\fP
  265731. will use ip6tables to manage firewall rules.
  265732. .SS GitFS Improvements
  265733. .sp
  265734. Several performance improvements have been made to the \fBGit fileserver
  265735. backend\fP\&. Additionally, file states can now use any
  265736. SHA1 commit hash as a fileserver environment:
  265737. .INDENT 0.0
  265738. .INDENT 3.5
  265739. .sp
  265740. .nf
  265741. .ft C
  265742. /etc/httpd/httpd.conf:
  265743. file.managed:
  265744. \- source: salt://webserver/files/httpd.conf
  265745. \- saltenv: 45af879
  265746. .ft P
  265747. .fi
  265748. .UNINDENT
  265749. .UNINDENT
  265750. .sp
  265751. This applies to the functions in the \fBcp module\fP as
  265752. well:
  265753. .INDENT 0.0
  265754. .INDENT 3.5
  265755. .sp
  265756. .nf
  265757. .ft C
  265758. salt \(aq*\(aq cp.get_file salt://readme.txt /tmp/readme.txt saltenv=45af879
  265759. .ft P
  265760. .fi
  265761. .UNINDENT
  265762. .UNINDENT
  265763. .SS MinionFS
  265764. .sp
  265765. This new fileserver backend allows files which have been pushed from the minion
  265766. to the master (using \fBcp.push\fP) to be served up
  265767. from the salt fileserver. The path for these files takes the following format:
  265768. .INDENT 0.0
  265769. .INDENT 3.5
  265770. .sp
  265771. .nf
  265772. .ft C
  265773. salt://minion\-id/path/to/file
  265774. .ft P
  265775. .fi
  265776. .UNINDENT
  265777. .UNINDENT
  265778. .sp
  265779. \fBminion\-id\fP is the id of the "source" minion, the one from which the files
  265780. were pushed to the master. \fB/path/to/file\fP is the full path of the file.
  265781. .sp
  265782. The MinionFS Walkthrough contains a more
  265783. thorough example of how to use this backend.
  265784. .SS saltenv
  265785. .sp
  265786. To distinguish between fileserver environments and execution functions which
  265787. deal with environment variables, fileserver environments are now specified
  265788. using the \fBsaltenv\fP parameter. \fBenv\fP will continue to work, but is
  265789. deprecated and will be removed in a future release.
  265790. .SS Grains Caching
  265791. .sp
  265792. A caching layer has been added to the Grains system, which can help speed up
  265793. minion startup. Disabled by default, it can be enabled by setting the minion
  265794. config option \fBgrains_cache\fP:
  265795. .INDENT 0.0
  265796. .INDENT 3.5
  265797. .sp
  265798. .nf
  265799. .ft C
  265800. grains_cache: True
  265801. # Seconds before grains cache is considered to be stale.
  265802. grains_cache_expiration: 300
  265803. .ft P
  265804. .fi
  265805. .UNINDENT
  265806. .UNINDENT
  265807. .sp
  265808. If set to \fBTrue\fP, the grains loader will read from/write to a
  265809. msgpack\-serialized file containing the grains data.
  265810. .sp
  265811. Additional command\-line parameters have been added to salt\-call, mainly for
  265812. testing purposes:
  265813. .INDENT 0.0
  265814. .IP \(bu 2
  265815. \fB\-\-skip\-grains\fP will completely bypass the grains loader when salt\-call is
  265816. invoked.
  265817. .IP \(bu 2
  265818. \fB\-\-refresh\-grains\-cache\fP will force the grains loader to bypass the grains
  265819. cache and refresh the grains, writing a new grains cache file.
  265820. .UNINDENT
  265821. .SS Improved Command Logging Control
  265822. .sp
  265823. When using the \fBcmd module\fP, either on the CLI or
  265824. when developing Salt execution modules, a new keyword argument
  265825. \fBoutput_loglevel\fP allows for greater control over how (or even if) the
  265826. command and its output are logged. For example:
  265827. .INDENT 0.0
  265828. .INDENT 3.5
  265829. .sp
  265830. .nf
  265831. .ft C
  265832. salt \(aq*\(aq cmd.run \(aqtail /var/log/messages\(aq output_loglevel=debug
  265833. .ft P
  265834. .fi
  265835. .UNINDENT
  265836. .UNINDENT
  265837. .sp
  265838. The package management modules (\fBapt\fP, \fByumpkg\fP, etc.) have been updated to
  265839. log the copious output generated from these commands at loglevel \fBdebug\fP\&.
  265840. .sp
  265841. \fBNOTE:\fP
  265842. .INDENT 0.0
  265843. .INDENT 3.5
  265844. To keep a command from being logged, \fBoutput_loglevel=quiet\fP can be used.
  265845. .sp
  265846. Prior to this release, this could be done using \fBquiet=True\fP\&. This
  265847. argument is still supported, but will be removed in a future Salt release.
  265848. .UNINDENT
  265849. .UNINDENT
  265850. .SS PagerDuty Support
  265851. .sp
  265852. Initial support for firing events via \fI\%PagerDuty\fP has been added. See the
  265853. documentation for the \fBpagerduty\fP module.
  265854. .SS Virtual Terminal
  265855. .sp
  265856. Sometimes the subprocess module is not good enough, and, in fact, not even
  265857. \fBaskpass\fP is. This virtual terminal is still in its infant childhood, needs
  265858. quite some love, and was originally created to replace \fBaskpass\fP, but, while
  265859. developing it, it immediately proved that it could do so much more. It\(aqs
  265860. currently used by salt\-cloud when bootstrapping salt on clouds which require
  265861. the use of a password.
  265862. .SS Proxy Minions
  265863. .sp
  265864. Initial basic support for Proxy Minions is in this release. Documentation can
  265865. be found here\&.
  265866. .sp
  265867. Proxy minions are a developing feature in Salt that enables control of devices
  265868. that cannot run a minion. Examples include network gear like switches and
  265869. routers that run a proprietary OS but offer an API, or "dumb" devices that just
  265870. don\(aqt have the horsepower or ability to handle a Python VM.
  265871. .sp
  265872. Proxy minions can be difficult to write, so a simple REST\-based example proxy
  265873. is included. A Python bottle\-based webserver can be found at
  265874. \fI\%https://github.com/cro/salt\-proxy\-rest\fP as an endpoint for this proxy.
  265875. .sp
  265876. This is an ALPHA\-quality feature. There are a number of issues with it
  265877. currently, mostly centering around process control, logging, and inability to
  265878. work in a masterless configuration.
  265879. .SS Additional Bugfixes (Release Candidate Period)
  265880. .sp
  265881. Below are many of the fixes that were implemented in salt during the release
  265882. candidate phase.
  265883. .INDENT 0.0
  265884. .IP \(bu 2
  265885. Fix mount.mounted leaving conflicting entries in fstab (\fI\%issue #7079\fP)
  265886. .IP \(bu 2
  265887. Fix mysql returner serialization to use json (\fI\%issue #9590\fP)
  265888. .IP \(bu 2
  265889. Fix \fBZMQError: Operation cannot be accomplished in current state\fP errors (\fI\%issue #6306\fP)
  265890. .IP \(bu 2
  265891. Rbenv and ruby improvements
  265892. .IP \(bu 2
  265893. Fix quoting issues with mysql port (\fI\%issue #9568\fP)
  265894. .IP \(bu 2
  265895. Update mount module/state to support multiple swap partitions (\fI\%issue #9520\fP)
  265896. .IP \(bu 2
  265897. Fix \fBarchive\fP state to work with \fBbsdtar\fP
  265898. .IP \(bu 2
  265899. Clarify logs for minion ID caching
  265900. .IP \(bu 2
  265901. Add numeric revision support to git state (\fI\%issue #9718\fP)
  265902. .IP \(bu 2
  265903. Update \fBmaster_uri\fP with \fBmaster_ip\fP (\fI\%issue #9694\fP)
  265904. .IP \(bu 2
  265905. Add comment to Debian \fBmod_repo\fP (\fI\%issue #9923\fP)
  265906. .IP \(bu 2
  265907. Fix potential undefined loop variable in rabbitmq state (\fI\%issue #8703\fP)
  265908. .IP \(bu 2
  265909. Fix for salt\-virt runner to delete key on VM deletion
  265910. .IP \(bu 2
  265911. Fix for \fBsalt\-run \-d\fP to limit results to specific runner or function (\fI\%issue #9975\fP)
  265912. .IP \(bu 2
  265913. Add tracebacks to jinja renderer when applicable (\fI\%issue #10010\fP)
  265914. .IP \(bu 2
  265915. Fix parsing in monit module (\fI\%issue #10041\fP)
  265916. .IP \(bu 2
  265917. Fix highstate output from syndic minions (\fI\%issue #9732\fP)
  265918. .IP \(bu 2
  265919. Quiet logging when dealing with passwords/hashes (\fI\%issue #10000\fP)
  265920. .IP \(bu 2
  265921. Fix for multiple remotes in git_pillar (\fI\%issue #9932\fP)
  265922. .IP \(bu 2
  265923. Fix npm installed command (\fI\%issue #10109\fP)
  265924. .IP \(bu 2
  265925. Add safeguards for utf8 errors in zcbuildout module
  265926. .IP \(bu 2
  265927. Fix compound commands (\fI\%issue #9746\fP)
  265928. .IP \(bu 2
  265929. Add systemd notification when master is started
  265930. .IP \(bu 2
  265931. Many doc improvements
  265932. .UNINDENT
  265933. .SS Salt 2014.1.1 Release Notes
  265934. .INDENT 0.0
  265935. .TP
  265936. .B release
  265937. 2014\-03\-18
  265938. .UNINDENT
  265939. .sp
  265940. Version 2014.1.1 is a bugfix release for 2014.1.0\&. The changes include:
  265941. .INDENT 0.0
  265942. .IP \(bu 2
  265943. Various doc fixes, including up\-to\-date Salt Cloud installation documentation.
  265944. .IP \(bu 2
  265945. Renamed state.sls runner to state.orchestrate, to reduce confusion with the \fBstate.sls\fP execution function
  265946. .IP \(bu 2
  265947. Fix various bugs in the \fBdig\fP module (\fI\%issue #10367\fP)
  265948. .IP \(bu 2
  265949. Add retry for query on certain EC2 status codes (\fI\%issue #10154\fP)
  265950. .IP \(bu 2
  265951. Fix various bugs in mongodb_user state module (\fI\%issue #10430\fP)
  265952. .IP \(bu 2
  265953. Fix permissions on \fB~/.salt_token\fP (\fI\%issue #10422\fP)
  265954. .IP \(bu 2
  265955. Add PyObjects support
  265956. .IP \(bu 2
  265957. Fix launchctl module crash with missing files
  265958. .IP \(bu 2
  265959. Fix \fBsaltutil.find_job\fP for Windows (\fI\%issue #10581\fP)
  265960. .IP \(bu 2
  265961. Fix OS detection for OpenSolaris (\fI\%issue #10601\fP)
  265962. .IP \(bu 2
  265963. Fix broken salt\-ssh key_deploy
  265964. .IP \(bu 2
  265965. Add support for multiline cron comments (\fI\%issue #10721\fP)
  265966. .IP \(bu 2
  265967. Fix timezone module for Arch (\fI\%issue #10789\fP)
  265968. .IP \(bu 2
  265969. Fix symlink support for \fBfile.recurse\fP (\fI\%issue #10809\fP)
  265970. .IP \(bu 2
  265971. Fix multi\-master bugs (\fI\%issue #10732\fP and \fI\%issue #10969\fP)
  265972. .IP \(bu 2
  265973. Fix file.patch to error when source file is unavailable (\fI\%issue #10380\fP)
  265974. .IP \(bu 2
  265975. Fix pkg to handle packages set as \fBpurge\fP in \fBpkg.installed\fP (\fI\%issue #10719\fP)
  265976. .IP \(bu 2
  265977. Add \fBzmqversion\fP grain
  265978. .IP \(bu 2
  265979. Fix highstate summary for masterless minions (\fI\%issue #10945\fP)
  265980. .IP \(bu 2
  265981. Fix \fBsaltutil.find_job\fP for 2014.1 masters talking to 0.17 minions (\fI\%issue #11020\fP)
  265982. .IP \(bu 2
  265983. Fix \fBfile.recurse\fP states with trailing slashes in source (\fI\%issue #11002\fP)
  265984. .IP \(bu 2
  265985. Fix \fBpkg states\fP to allow \fBpkgname.x86_64\fP (\fI\%issue #7306\fP)
  265986. .IP \(bu 2
  265987. Make \fBiptables states\fP set a default table for flush (\fI\%issue #11037\fP)
  265988. .IP \(bu 2
  265989. Added iptables \fB\-\-reject\-with\fP after final iptables call in \fBiptables states\fP (issue:\fI10757\fP)
  265990. .IP \(bu 2
  265991. Fix improper passing of “family” in \fBiptables states\fP (\fI\%issue #10774\fP)
  265992. .IP \(bu 2
  265993. Fix traceback in \fBiptables.insert\fP states (\fI\%issue #10988\fP)
  265994. .IP \(bu 2
  265995. Fix zombie processes (\fI\%issue #10867\fP and others)
  265996. .IP \(bu 2
  265997. Fix batch mode to obey \fB\-\-return\fP settings (\fI\%issue #9146\fP)
  265998. .IP \(bu 2
  265999. Fix localclient issue that was causing batch mode breakage (\fI\%issue #11094\fP, \fI\%issue #10470\fP, and others)
  266000. .IP \(bu 2
  266001. Multiple salt\-ssh fixes
  266002. .IP \(bu 2
  266003. FreeBSD: look in /usr/local/etc/salt for configuration by default, if installed using \fBpip \-\-editable\fP\&.
  266004. .IP \(bu 2
  266005. Add a \fBskip_suggestions\fP parameter to pkg.installed states which allows pre\-flight check to be skipped (\fI\%issue #11106\fP)
  266006. .IP \(bu 2
  266007. Fixed tag\-based gitfs fileserver environments regression (\fI\%issue #10956\fP)
  266008. .IP \(bu 2
  266009. Yum: fix cache of available pkgs not cleared when repos are changed (\fI\%issue #11001\fP)
  266010. .IP \(bu 2
  266011. Yum: fix for plugin\-provided repositories (i.e. RHN/Spacewalk) (\fI\%issue #11145\fP)
  266012. .IP \(bu 2
  266013. Fix regression in \fBchocolatey.bootstrap\fP (\fI\%issue #10541\fP)
  266014. .IP \(bu 2
  266015. Fix fail on unknown target in \fBjobs runner\fP (\fI\%issue #11151\fP)
  266016. .IP \(bu 2
  266017. Don’t log errors for commands which are expected to sometimes exit with non\-zero exit status (\fI\%issue #11154\fP, \fI\%issue #11090\fP)
  266018. .IP \(bu 2
  266019. Fix \fBtest=True\fP CLI override of config option (\fI\%issue #10877\fP)
  266020. .IP \(bu 2
  266021. Log sysctl key listing at loglevel TRACE (\fI\%issue #10931\fP)
  266022. .UNINDENT
  266023. .SS Salt 2014.1.10 Release Notes
  266024. .INDENT 0.0
  266025. .TP
  266026. .B release
  266027. 2014\-08\-01
  266028. .UNINDENT
  266029. .sp
  266030. \fBNOTE:\fP
  266031. .INDENT 0.0
  266032. .INDENT 3.5
  266033. Version 2014.1.9 contained a regression which caused inaccurate Salt version
  266034. detection, and thus was never packaged for general release. This version
  266035. contains the version detection fix, but is otherwise identical to 2014.1.9.
  266036. .UNINDENT
  266037. .UNINDENT
  266038. .sp
  266039. Version 2014.1.10 is another bugfix release for 2014.1.0\&. Changes include:
  266040. .INDENT 0.0
  266041. .IP \(bu 2
  266042. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266043. not correct.
  266044. .IP \(bu 2
  266045. Use the bootstrap script distributed with Salt instead of relying on an
  266046. external resource
  266047. .IP \(bu 2
  266048. Remove unused testing code
  266049. .IP \(bu 2
  266050. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266051. .IP \(bu 2
  266052. Use a randomized path for temporary files in a salt\-cloud deployment
  266053. .IP \(bu 2
  266054. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266055. deployment
  266056. .UNINDENT
  266057. .sp
  266058. Salt 2014.1.10 fixes security issues documented by CVE\-2014\-3563: "Insecure
  266059. tmp\-file creation in seed.py, salt\-ssh, and salt\-cloud." Upgrading is
  266060. recommended.
  266061. .SS Salt 2014.1.11 Release Notes
  266062. .INDENT 0.0
  266063. .TP
  266064. .B release
  266065. 2014\-08\-29
  266066. .UNINDENT
  266067. .sp
  266068. Version 2014.1.11 is another bugfix release for 2014.1.0\&. Changes include:
  266069. .INDENT 0.0
  266070. .IP \(bu 2
  266071. Fix for minion_id with byte\-order mark (BOM) (\fI\%issue #12296\fP)
  266072. .IP \(bu 2
  266073. Fix \fBrunas\fP deprecation in \fBat\fP module
  266074. .IP \(bu 2
  266075. Fix trailing slash befhavior for \fBfile.makedirs_\fP (\fI\%issue #14019\fP)
  266076. .IP \(bu 2
  266077. Fix chocolatey path (\fI\%issue #13870\fP)
  266078. .IP \(bu 2
  266079. Fix git_pillar infinite loop issues (\fI\%issue #14671\fP)
  266080. .IP \(bu 2
  266081. Fix json outputter \fBnull\fP case
  266082. .IP \(bu 2
  266083. Fix for minion error if one of multiple masters are down (\fI\%issue #14099\fP)
  266084. .UNINDENT
  266085. .SS Salt 2014.1.12 Release Notes
  266086. .INDENT 0.0
  266087. .TP
  266088. .B release
  266089. 2014\-10\-08
  266090. .UNINDENT
  266091. .sp
  266092. Version 2014.1.12 is another bugfix release for 2014.1.0\&. Changes include:
  266093. .INDENT 0.0
  266094. .IP \(bu 2
  266095. Fix \fBscp_file\fP always failing (which broke salt\-cloud) (\fI\%issue #16437\fP)
  266096. .IP \(bu 2
  266097. Fix regression in pillar in masterless (\fI\%issue #16210\fP, \fI\%issue #16416\fP,
  266098. \fI\%issue #16428\fP)
  266099. .UNINDENT
  266100. .SS Salt 2014.1.13 Release Notes
  266101. .INDENT 0.0
  266102. .TP
  266103. .B release
  266104. 2014\-10\-14
  266105. .UNINDENT
  266106. .sp
  266107. Version 2014.1.13 is another bugfix release for 2014.1.0\&. Changes include:
  266108. .INDENT 0.0
  266109. .IP \(bu 2
  266110. Fix \fBsftp_file\fP by checking the exit status code of scp (which broke salt\-cloud) (\fI\%issue #16599\fP)
  266111. .UNINDENT
  266112. .SS Salt 2014.1.2 Release Notes
  266113. .INDENT 0.0
  266114. .TP
  266115. .B release
  266116. 2014\-04\-15
  266117. .UNINDENT
  266118. .sp
  266119. Version 2014.1.2 is another bugfix release for 2014.1.0\&. The changes include:
  266120. .INDENT 0.0
  266121. .IP \(bu 2
  266122. Fix username detection when su\(aqed to root on FreeBSD (\fI\%issue #11628\fP)
  266123. .IP \(bu 2
  266124. Fix minionfs backend for file.recurse states
  266125. .IP \(bu 2
  266126. Fix 32\-bit packages of different arches than the CPU arch, on 32\-bit
  266127. RHEL/CentOS (\fI\%issue #11822\fP)
  266128. .IP \(bu 2
  266129. Fix bug with specifying alternate home dir on user creation (FreeBSD)
  266130. (\fI\%issue #11790\fP)
  266131. .IP \(bu 2
  266132. Don’t reload \fBsite\fP module on module refresh for MacOS
  266133. .IP \(bu 2
  266134. Fix regression with running execution functions in Pillar SLS
  266135. (\fI\%issue #11453\fP)
  266136. .IP \(bu 2
  266137. Fix some modules missing from Windows installer
  266138. .IP \(bu 2
  266139. Don’t log an error for yum commands that return nonzero exit status on
  266140. non\-failure (\fI\%issue #11645\fP)
  266141. .IP \(bu 2
  266142. Fix bug in rabbitmq state (\fI\%issue #8703\fP)
  266143. .IP \(bu 2
  266144. Fix missing ssh config options (\fI\%issue #10604\fP)
  266145. .IP \(bu 2
  266146. Fix top.sls ordering (\fI\%issue #10810\fP and \fI\%issue #11691\fP)
  266147. .IP \(bu 2
  266148. Fix \fBsalt\-key \-\-list all\fP (\fI\%issue #10982\fP)
  266149. .IP \(bu 2
  266150. Fix win_servermanager install/remove function (\fI\%issue #11038\fP)
  266151. .IP \(bu 2
  266152. Fix interaction with tokens when running commands as root (\fI\%issue #11223\fP)
  266153. .IP \(bu 2
  266154. Fix overstate bug with \fBfind_job\fP and \fB**kwargs\fP (\fI\%issue #10503\fP)
  266155. .IP \(bu 2
  266156. Fix \fBsaltenv\fP for \fBaptpkg.mod_repo\fP from \fBpkgrepo\fP state
  266157. .IP \(bu 2
  266158. Fix environment issue causing file caching problems (\fI\%issue #11189\fP)
  266159. .IP \(bu 2
  266160. Fix bug in \fB__parse_key\fP in registry state (\fI\%issue #11408\fP)
  266161. .IP \(bu 2
  266162. Add minion auth retry on rejection (\fI\%issue #10763\fP)
  266163. .IP \(bu 2
  266164. Fix publish_session updating the encryption key (\fI\%issue #11493\fP)
  266165. .IP \(bu 2
  266166. Fix for bad \fBAssertionError\fP raised by GitPython (\fI\%issue #11473\fP)
  266167. .IP \(bu 2
  266168. Fix \fBdebian_ip\fP to allow disabling and enabling networking on Ubuntu (\fI\%issue #11164\fP)
  266169. .IP \(bu 2
  266170. Fix potential memory leak caused by saved (and unused) events (\fI\%issue #11582\fP)
  266171. .IP \(bu 2
  266172. Fix exception handling in the MySQL module (\fI\%issue #11616\fP)
  266173. .IP \(bu 2
  266174. Fix environment\-related error (\fI\%issue #11534\fP)
  266175. .IP \(bu 2
  266176. Include \fBpsutil\fP on Windows
  266177. .IP \(bu 2
  266178. Add \fBfile.replace\fP and \fBfile.search\fP to Windows (\fI\%issue #11471\fP)
  266179. .IP \(bu 2
  266180. Add additional \fBfile\fP module helpers to Windows (\fI\%issue #11235\fP)
  266181. .IP \(bu 2
  266182. Add \fBpid\fP to netstat output on Windows (\fI\%issue #10782\fP)
  266183. .IP \(bu 2
  266184. Fix Windows not caching new versions of installers in winrepo (\fI\%issue #10597\fP)
  266185. .IP \(bu 2
  266186. Fix hardcoded md5 hashing
  266187. .IP \(bu 2
  266188. Fix kwargs in salt\-ssh (\fI\%issue #11609\fP)
  266189. .IP \(bu 2
  266190. Fix file backup timestamps (\fI\%issue #11745\fP)
  266191. .IP \(bu 2
  266192. Fix stacktrace on \fBsys.doc\fP with invalid eauth (\fI\%issue #11293\fP)
  266193. .IP \(bu 2
  266194. Fix \fBgit.latest\fP with \fBtest=True\fP (\fI\%issue #11595\fP)
  266195. .IP \(bu 2
  266196. Fix \fBfile.check_perms\fP hardcoded \fBfollow_symlinks\fP (\fI\%issue #11387\fP)
  266197. .IP \(bu 2
  266198. Fix certain \fBpkg\fP states for RHEL5/Cent5 machines (\fI\%issue #11719\fP)
  266199. .UNINDENT
  266200. .SS Salt 2014.1.3 Release Notes
  266201. .INDENT 0.0
  266202. .TP
  266203. .B release
  266204. 2014\-04\-15
  266205. .UNINDENT
  266206. .sp
  266207. Version 2014.1.3 is another bugfix release for 2014.1.0\&. It was created as a hotfix for a regression
  266208. found in 2014.1.2, which was not distributed. The only change made was as
  266209. follows:
  266210. .INDENT 0.0
  266211. .IP \(bu 2
  266212. Fix regression that caused \fBsaltutil.find_job\fP to fail, causing premature
  266213. terminations of salt CLI commands.
  266214. .UNINDENT
  266215. .sp
  266216. Changes in the not\-distributed 2014.1.2, also included in 2014.1.3:
  266217. .INDENT 0.0
  266218. .IP \(bu 2
  266219. Fix username detection when su\(aqed to root on FreeBSD (\fI\%issue #11628\fP)
  266220. .IP \(bu 2
  266221. Fix minionfs backend for file.recurse states
  266222. .IP \(bu 2
  266223. Fix 32\-bit packages of different arches than the CPU arch, on 32\-bit
  266224. RHEL/CentOS (\fI\%issue #11822\fP)
  266225. .IP \(bu 2
  266226. Fix bug with specifying alternate home dir on user creation (FreeBSD)
  266227. (\fI\%issue #11790\fP)
  266228. .IP \(bu 2
  266229. Don’t reload \fBsite\fP module on module refresh for MacOS
  266230. .IP \(bu 2
  266231. Fix regression with running execution functions in Pillar SLS
  266232. (\fI\%issue #11453\fP)
  266233. .IP \(bu 2
  266234. Fix some modules missing from Windows installer
  266235. .IP \(bu 2
  266236. Don’t log an error for yum commands that return nonzero exit status on
  266237. non\-failure (\fI\%issue #11645\fP)
  266238. .IP \(bu 2
  266239. Fix bug in rabbitmq state (\fI\%issue #8703\fP)
  266240. .IP \(bu 2
  266241. Fix missing ssh config options (\fI\%issue #10604\fP)
  266242. .IP \(bu 2
  266243. Fix top.sls ordering (\fI\%issue #10810\fP and \fI\%issue #11691\fP)
  266244. .IP \(bu 2
  266245. Fix \fBsalt\-key \-\-list all\fP (\fI\%issue #10982\fP)
  266246. .IP \(bu 2
  266247. Fix win_servermanager install/remove function (\fI\%issue #11038\fP)
  266248. .IP \(bu 2
  266249. Fix interaction with tokens when running commands as root (\fI\%issue #11223\fP)
  266250. .IP \(bu 2
  266251. Fix overstate bug with \fBfind_job\fP and \fB**kwargs\fP (\fI\%issue #10503\fP)
  266252. .IP \(bu 2
  266253. Fix \fBsaltenv\fP for \fBaptpkg.mod_repo\fP from \fBpkgrepo\fP state
  266254. .IP \(bu 2
  266255. Fix environment issue causing file caching problems (\fI\%issue #11189\fP)
  266256. .IP \(bu 2
  266257. Fix bug in \fB__parse_key\fP in registry state (\fI\%issue #11408\fP)
  266258. .IP \(bu 2
  266259. Add minion auth retry on rejection (\fI\%issue #10763\fP)
  266260. .IP \(bu 2
  266261. Fix publish_session updating the encryption key (\fI\%issue #11493\fP)
  266262. .IP \(bu 2
  266263. Fix for bad \fBAssertionError\fP raised by GitPython (\fI\%issue #11473\fP)
  266264. .IP \(bu 2
  266265. Fix \fBdebian_ip\fP to allow disabling and enabling networking on Ubuntu (\fI\%issue #11164\fP)
  266266. .IP \(bu 2
  266267. Fix potential memory leak caused by saved (and unused) events (\fI\%issue #11582\fP)
  266268. .IP \(bu 2
  266269. Fix exception handling in the MySQL module (\fI\%issue #11616\fP)
  266270. .IP \(bu 2
  266271. Fix environment\-related error (\fI\%issue #11534\fP)
  266272. .IP \(bu 2
  266273. Include \fBpsutil\fP on Windows
  266274. .IP \(bu 2
  266275. Add \fBfile.replace\fP and \fBfile.search\fP to Windows (\fI\%issue #11471\fP)
  266276. .IP \(bu 2
  266277. Add additional \fBfile\fP module helpers to Windows (\fI\%issue #11235\fP)
  266278. .IP \(bu 2
  266279. Add \fBpid\fP to netstat output on Windows (\fI\%issue #10782\fP)
  266280. .IP \(bu 2
  266281. Fix Windows not caching new versions of installers in winrepo (\fI\%issue #10597\fP)
  266282. .IP \(bu 2
  266283. Fix hardcoded md5 hashing
  266284. .IP \(bu 2
  266285. Fix kwargs in salt\-ssh (\fI\%issue #11609\fP)
  266286. .IP \(bu 2
  266287. Fix file backup timestamps (\fI\%issue #11745\fP)
  266288. .IP \(bu 2
  266289. Fix stacktrace on \fBsys.doc\fP with invalid eauth (\fI\%issue #11293\fP)
  266290. .IP \(bu 2
  266291. Fix \fBgit.latest\fP with \fBtest=True\fP (\fI\%issue #11595\fP)
  266292. .IP \(bu 2
  266293. Fix \fBfile.check_perms\fP hardcoded \fBfollow_symlinks\fP (\fI\%issue #11387\fP)
  266294. .IP \(bu 2
  266295. Fix certain \fBpkg\fP states for RHEL5/Cent5 machines (\fI\%issue #11719\fP)
  266296. .UNINDENT
  266297. .SS Salt 2014.1.4 Release Notes
  266298. .INDENT 0.0
  266299. .TP
  266300. .B release
  266301. 2014\-05\-05
  266302. .UNINDENT
  266303. .sp
  266304. Version 2014.1.4 is another bugfix release for 2014.1.0\&. Changes include:
  266305. .INDENT 0.0
  266306. .IP \(bu 2
  266307. Fix setup.py dependency issue (\fI\%issue #12031\fP)
  266308. .IP \(bu 2
  266309. Fix handling for IOErrors under certain circumstances (\fI\%issue #11783\fP and
  266310. \fI\%issue #11853\fP)
  266311. .IP \(bu 2
  266312. Fix fatal exception when \fB/proc/1/cgroup\fP is not readable (\fI\%issue #11619\fP)
  266313. .IP \(bu 2
  266314. Fix os grains for OpenSolaris (\fI\%issue #11907\fP)
  266315. .IP \(bu 2
  266316. Fix \fBlvs.zero\fP module argument pass\-through (\fI\%issue #9001\fP)
  266317. .IP \(bu 2
  266318. Fix bug in \fBdebian_ip\fP interaction with \fBnetwork.system\fP state (\fI\%issue #11164\fP)
  266319. .IP \(bu 2
  266320. Remove bad binary package verification code (\fI\%issue #12177\fP)
  266321. .IP \(bu 2
  266322. Fix traceback in solaris package installation (\fI\%issue #12237\fP)
  266323. .IP \(bu 2
  266324. Fix \fBfile.directory\fP state symlink handling
  266325. (\fI\%issue #12209\fP)
  266326. .IP \(bu 2
  266327. Remove \fBexternal_ip\fP grain
  266328. .IP \(bu 2
  266329. Fix \fBfile.managed\fP makedirs issues
  266330. (\fI\%issue #10446\fP)
  266331. .IP \(bu 2
  266332. Fix hang on non\-existent Windows drive letter for \fBfile\fP module (\fI\%issue #9880\fP)
  266333. .IP \(bu 2
  266334. Fix salt minion caching all users on the server (\fI\%issue #9743\fP)
  266335. .IP \(bu 2
  266336. Add strftime formatting for \fBps.boot_time\fP
  266337. (\fI\%issue #12428\fP)
  266338. .UNINDENT
  266339. .SS Salt 2014.1.5 Release Notes
  266340. .INDENT 0.0
  266341. .TP
  266342. .B release
  266343. 2014\-06\-11
  266344. .UNINDENT
  266345. .sp
  266346. Version 2014.1.5 is another bugfix release for 2014.1.0\&. Changes include:
  266347. .INDENT 0.0
  266348. .IP \(bu 2
  266349. Add function for finding cached job on the minion
  266350. .IP \(bu 2
  266351. Fix iptables save file location for Debian (\fI\%issue #11730\fP)
  266352. .IP \(bu 2
  266353. Fix for minion caching jobs when master is down
  266354. .IP \(bu 2
  266355. Bump default \fBsyndic_wait\fP to 5 to fix syndic\-related problems
  266356. (\fI\%issue #12262\fP)
  266357. .IP \(bu 2
  266358. Add OpenBSD, FreeBSD, and NetBSD support for \fBnetwork.netstat\fP
  266359. (\fI\%issue #12121\fP)
  266360. .IP \(bu 2
  266361. Fix false positive error in logs for \fBmakeconf\fP state (\fI\%issue #9762\fP)
  266362. .IP \(bu 2
  266363. Fix for yum \fBfromrepo\fP package installs when repo is disabled by default
  266364. (\fI\%issue #12466\fP)
  266365. .IP \(bu 2
  266366. Fix for extra blank lines in \fBfile.blockreplace\fP (\fI\%issue #12422\fP)
  266367. .IP \(bu 2
  266368. Fix grain detection for OpenVZ guests (\fI\%issue #11877\fP)
  266369. .IP \(bu 2
  266370. Fix \fBget_dns_servers\fP function for Windows \fBwin_dns_client\fP
  266371. .IP \(bu 2
  266372. Use system locale for ports package installations
  266373. .IP \(bu 2
  266374. Use correct stop/restart procedure for Debian networking in \fBdebian_ip\fP
  266375. (\fI\%issue #12614\fP)
  266376. .IP \(bu 2
  266377. Fix for \fBcmd_iter\fP/\fBcmd_iter_no_block\fP blocking issues (\fI\%issue #12617\fP)
  266378. .IP \(bu 2
  266379. Fix traceback when syncing custom types (\fI\%issue #12883\fP)
  266380. .IP \(bu 2
  266381. Fix cleaning directory symlinks in \fBfile.directory\fP
  266382. .IP \(bu 2
  266383. Add performance optimizations for \fBsaltutil.sync_all\fP and
  266384. \fBstate.highstate\fP
  266385. .IP \(bu 2
  266386. Fix possible error in \fBsaltutil.running\fP
  266387. .IP \(bu 2
  266388. Fix for kmod modules with dashes (\fI\%issue #13239\fP)
  266389. .IP \(bu 2
  266390. Fix possible race condition for Windows minions in state module reloading
  266391. (\fI\%issue #12370\fP)
  266392. .IP \(bu 2
  266393. Fix bug with roster for \fBpasswd\fP option that is loaded as a non\-string object
  266394. (\fI\%issue #13249\fP)
  266395. .IP \(bu 2
  266396. Keep duplicate version numbers from showing up in \fBpkg.list_pkgs\fP output
  266397. .IP \(bu 2
  266398. Fixes for Jinja renderer, timezone \fBmodule\fP/\fBstate\fP (\fI\%issue #12724\fP)
  266399. .IP \(bu 2
  266400. Fix timedatectl parsing for systemd>=210 (\fI\%issue #12728\fP)
  266401. .IP \(bu 2
  266402. Fix \fBsaltenv\fP being written to YUM repo config files (\fI\%issue #12887\fP)
  266403. .IP \(bu 2
  266404. Removed the deprecated external nodes classifier (originally accessible by
  266405. setting a value for external_nodes in the master configuration file). Note
  266406. that this functionality has been marked deprecated for some time and was
  266407. replaced by the more general master tops
  266408. system.
  266409. .IP \(bu 2
  266410. More robust escaping of ldap filter strings.
  266411. .IP \(bu 2
  266412. Fix trailing slash in \fBgitfs_root\fP causing files not to be
  266413. available (\fI\%issue #13185\fP)
  266414. .UNINDENT
  266415. .SS Salt 2014.1.6 Release Notes
  266416. .INDENT 0.0
  266417. .TP
  266418. .B release
  266419. 2014\-07\-08
  266420. .UNINDENT
  266421. .sp
  266422. Version 2014.1.6 is another bugfix release for 2014.1.0\&. Changes include:
  266423. .INDENT 0.0
  266424. .IP \(bu 2
  266425. Fix extra \fBiptables \-\-help\fP output (Sorry!) (\fI\%issue #13648\fP,
  266426. \fI\%issue #13507\fP, \fI\%issue #13527\fP, \fI\%issue #13607\fP)
  266427. .IP \(bu 2
  266428. Fix \fBmount.active\fP for Solaris
  266429. .IP \(bu 2
  266430. Fix support for \fBallow\-hotplug\fP statement in debian_ip network module
  266431. .IP \(bu 2
  266432. Add sqlite3 to esky builds
  266433. .IP \(bu 2
  266434. Fix \fBjobs.active\fP output (\fI\%issue #9526\fP)
  266435. .IP \(bu 2
  266436. Fix the \fBvirtual\fP grain for Xen (\fI\%issue #13534\fP)
  266437. .IP \(bu 2
  266438. Fix _ext_nodes unavailable on master (\fI\%issue #13535\fP)
  266439. .IP \(bu 2
  266440. Fix eauth for batch mode (\fI\%issue #9605\fP)
  266441. .IP \(bu 2
  266442. Fix force\-related issues with \fBtomcat\fP support (\fI\%issue #12889\fP)
  266443. .IP \(bu 2
  266444. Fix KeyError when cloud mapping
  266445. .IP \(bu 2
  266446. Fix salt\-minion restart loop in Windows (\fI\%issue #12086\fP)
  266447. .IP \(bu 2
  266448. Fix detection of \fBservice\fP virtual module on Fedora minions
  266449. .IP \(bu 2
  266450. Fix traceback with missing ipv4 grain (\fI\%issue #13838\fP)
  266451. .IP \(bu 2
  266452. Fix issue in roots backend with invalid data in mtime_map (\fI\%issue #13836\fP)
  266453. .IP \(bu 2
  266454. Fix traceback in \fBjobs.active\fP (\fI\%issue #11151\fP)
  266455. .IP \(bu 2
  266456. Fix \fBmaster_tops\fP and \fB_ext_nodes\fP issue (\fI\%issue #13535\fP, \fI\%issue #13673\fP)
  266457. .UNINDENT
  266458. .SS Salt 2014.1.7 Release Notes
  266459. .INDENT 0.0
  266460. .TP
  266461. .B release
  266462. 2014\-07\-09
  266463. .UNINDENT
  266464. .sp
  266465. Version 2014.1.7 is another bugfix release for 2014.1.0\&. Changes include:
  266466. .INDENT 0.0
  266467. .IP \(bu 2
  266468. Fix batch mode regression (\fI\%issue #14046\fP)
  266469. .UNINDENT
  266470. .sp
  266471. This release was a hotfix release for the regression listed above which was
  266472. present in the 2014.1.6 release. The changes included in 2014.1.6 are listed
  266473. below:
  266474. .INDENT 0.0
  266475. .IP \(bu 2
  266476. Fix extra \fBiptables \-\-help\fP output (Sorry!) (\fI\%issue #13648\fP,
  266477. \fI\%issue #13507\fP, \fI\%issue #13527\fP, \fI\%issue #13607\fP)
  266478. .IP \(bu 2
  266479. Fix \fBmount.active\fP for Solaris
  266480. .IP \(bu 2
  266481. Fix support for \fBallow\-hotplug\fP statement in debian_ip network module
  266482. .IP \(bu 2
  266483. Add sqlite3 to esky builds
  266484. .IP \(bu 2
  266485. Fix \fBjobs.active\fP output (\fI\%issue #9526\fP)
  266486. .IP \(bu 2
  266487. Fix the \fBvirtual\fP grain for Xen (\fI\%issue #13534\fP)
  266488. .IP \(bu 2
  266489. Fix eauth for batch mode (\fI\%issue #9605\fP)
  266490. .IP \(bu 2
  266491. Fix force\-related issues with \fBtomcat\fP support (\fI\%issue #12889\fP)
  266492. .IP \(bu 2
  266493. Fix KeyError when cloud mapping
  266494. .IP \(bu 2
  266495. Fix salt\-minion restart loop in Windows (\fI\%issue #12086\fP)
  266496. .IP \(bu 2
  266497. Fix detection of \fBservice\fP virtual module on Fedora minions
  266498. .IP \(bu 2
  266499. Fix traceback with missing ipv4 grain (\fI\%issue #13838\fP)
  266500. .IP \(bu 2
  266501. Fix issue in roots backend with invalid data in mtime_map (\fI\%issue #13836\fP)
  266502. .IP \(bu 2
  266503. Fix traceback in \fBjobs.active\fP (\fI\%issue #11151\fP)
  266504. .IP \(bu 2
  266505. Fix \fBmaster_tops\fP and \fB_ext_nodes\fP issue (\fI\%issue #13535\fP, \fI\%issue #13673\fP)
  266506. .UNINDENT
  266507. .SS Salt 2014.1.8 Release Notes
  266508. .INDENT 0.0
  266509. .TP
  266510. .B release
  266511. 2014\-07\-30
  266512. .UNINDENT
  266513. .sp
  266514. \fBNOTE:\fP
  266515. .INDENT 0.0
  266516. .INDENT 3.5
  266517. This release contained a regression which caused inaccurate Salt version
  266518. detection, and thus was never packaged for general release. Please use
  266519. version 2014.1.10 instead.
  266520. .UNINDENT
  266521. .UNINDENT
  266522. .sp
  266523. Version 2014.1.8 is another bugfix release for 2014.1.0\&. Changes include:
  266524. .INDENT 0.0
  266525. .IP \(bu 2
  266526. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266527. not correct.
  266528. .IP \(bu 2
  266529. Use the bootstrap script distributed with Salt instead of relying on an
  266530. external resource
  266531. .IP \(bu 2
  266532. Remove unused testing code
  266533. .IP \(bu 2
  266534. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266535. .IP \(bu 2
  266536. Use a randomized path for temporary files in a salt\-cloud deployment
  266537. .IP \(bu 2
  266538. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266539. deployment
  266540. .UNINDENT
  266541. .SS Salt 2014.1.9 Release Notes
  266542. .INDENT 0.0
  266543. .TP
  266544. .B release
  266545. 2014\-07\-31
  266546. .UNINDENT
  266547. .sp
  266548. \fBNOTE:\fP
  266549. .INDENT 0.0
  266550. .INDENT 3.5
  266551. This release contained a regression which caused inaccurate Salt version
  266552. detection, and thus was never packaged for general release. Please use
  266553. version 2014.1.10 instead.
  266554. .UNINDENT
  266555. .UNINDENT
  266556. .sp
  266557. \fBNOTE:\fP
  266558. .INDENT 0.0
  266559. .INDENT 3.5
  266560. Version 2014.1.8 contained a regression which caused inaccurate Salt version
  266561. detection, and thus was never packaged for general release. This version
  266562. contains the version detection fix, but is otherwise identical to 2014.1.8.
  266563. .UNINDENT
  266564. .UNINDENT
  266565. .sp
  266566. Version 2014.1.9 is another bugfix release for 2014.1.0\&. Changes include:
  266567. .INDENT 0.0
  266568. .IP \(bu 2
  266569. Ensure salt\-ssh will not continue if permissions on a temporary directory are
  266570. not correct.
  266571. .IP \(bu 2
  266572. Use the bootstrap script distributed with Salt instead of relying on an
  266573. external resource
  266574. .IP \(bu 2
  266575. Remove unused testing code
  266576. .IP \(bu 2
  266577. Ensure salt states are placed into the \fB\&.salt\fP directory in salt\-ssh
  266578. .IP \(bu 2
  266579. Use a randomized path for temporary files in a salt\-cloud deployment
  266580. .IP \(bu 2
  266581. Clean any stale directories to ensure a fresh copy of salt\-ssh during a
  266582. deployment
  266583. .UNINDENT
  266584. .SS Salt 0.10.0 Release Notes
  266585. .INDENT 0.0
  266586. .TP
  266587. .B release
  266588. 2012\-06\-16
  266589. .UNINDENT
  266590. .sp
  266591. 0.10.0 has arrived! This release comes with MANY bug fixes, and new
  266592. capabilities which greatly enhance performance and reliability. This
  266593. release is primarily a bug fix release with many new tests and many repaired
  266594. bugs. This release also introduces a few new key features which were brought
  266595. in primarily to repair bugs and some limitations found in some of the
  266596. components of the original architecture.
  266597. .SS Major Features
  266598. .SS Event System
  266599. .sp
  266600. The Salt Master now comes equipped with a new event system. This event system
  266601. has replaced some of the back end of the Salt client and offers the beginning of
  266602. a system which will make plugging external applications into Salt. The event
  266603. system relies on a local ZeroMQ publish socket and other processes can connect
  266604. to this socket and listen for events. The new events can be easily managed via
  266605. Salt\(aqs event library.
  266606. .SS Unprivileged User Updates
  266607. .sp
  266608. Some enhancements have been added to Salt for running as a user other than
  266609. root. These new additions should make switching the user that the Salt Master
  266610. is running as very painless, simply change the \fBuser\fP option in the master
  266611. configuration and restart the master, Salt will take care of all of the
  266612. particulars for you.
  266613. .SS Peer Runner Execution
  266614. .sp
  266615. Salt has long had the peer communication system used to allow minions to send
  266616. commands via the salt master. 0.10.0 adds a new capability here, now the
  266617. master can be configured to allow for minions to execute Salt runners via
  266618. the \fBpeer_run\fP option in the salt master configuration.
  266619. .SS YAML Parsing Updates
  266620. .sp
  266621. In the past the YAML parser for sls files would return the incorrect numbers
  266622. when the file mode was set with a preceding 0. The YAML parser used in Salt
  266623. has been modified to no longer convert these number into octal but to keep
  266624. them as the correct value so that sls files can be a little cleaner to write.
  266625. .SS State Call Data Files
  266626. .sp
  266627. It was requested that the minion keep a local cache of the most recent executed
  266628. state run. This has been added and now with state runs the data is stored in a
  266629. msgpack file in the minion\(aqs cachedir.
  266630. .SS Turning Off the Job Cache
  266631. .sp
  266632. A new option has been added to the master configuration file. In previous
  266633. releases the Salt client would look over the Salt job cache to read in
  266634. the minion return data. With the addition of the event system the Salt client
  266635. can now watch for events directly from the master worker processes.
  266636. .sp
  266637. This means that the job cache is no longer a hard requirement. Keep in mind
  266638. though, that turning off the job cache means that historic job execution data
  266639. cannot be retrieved.
  266640. .SS Test Updates
  266641. .SS Minion Swarms Are Faster
  266642. .sp
  266643. To continue our efforts with testing Salt\(aqs ability to scale the minionswarm
  266644. script has been updated. The minionswarm can now start up minions much faster
  266645. than it could before and comes with a new feature allowing modules to be
  266646. disabled, thus lowering the minion\(aqs footprint when making a swarm. These new
  266647. updates have allows us to test
  266648. .INDENT 0.0
  266649. .INDENT 3.5
  266650. .sp
  266651. .nf
  266652. .ft C
  266653. # python minionswarm.py \-m 20 \-\-master salt\-master
  266654. .ft P
  266655. .fi
  266656. .UNINDENT
  266657. .UNINDENT
  266658. .SS Many Fixes
  266659. .sp
  266660. To get a good idea for the number of bugfixes this release offers take a look
  266661. at the closed tickets for 0.10.0, this is a very substantial update:
  266662. .sp
  266663. \fI\%https://github.com/saltstack/salt/issues?milestone=12&state=closed\fP
  266664. .SS Master and Minion Stability Fixes
  266665. .sp
  266666. As Salt deployments grow new ways to break Salt are discovered. 0.10.0 comes
  266667. with a number of fixes for the minions and master greatly improving Salt
  266668. stability.
  266669. .SS Salt 0.10.1 Release Notes
  266670. .INDENT 0.0
  266671. .TP
  266672. .B release
  266673. 2012\-06\-19
  266674. .UNINDENT
  266675. .SS Salt 0.10.2 Release Notes
  266676. .INDENT 0.0
  266677. .TP
  266678. .B release
  266679. 2012\-07\-30
  266680. .UNINDENT
  266681. .sp
  266682. 0.10.2 is out! This release comes with enhancements to the pillar interface,
  266683. cleaner ways to access the salt\-call capabilities in the API, minion data
  266684. caching and the event system has been added to salt minions.
  266685. .sp
  266686. There have also been updates to the ZeroMQ functions, many more tests
  266687. (thanks to sponsors, the code sprint and many contributors) and a swath
  266688. of bug fixes.
  266689. .SS Major Features
  266690. .SS Ext Pillar Modules
  266691. .sp
  266692. The ranks of available Salt modules directories sees a new member in 0.10.2.
  266693. With the popularity of pillar a higher demand has arisen for \fBext_pillar\fP
  266694. interfaces to be more like regular Salt module additions. Now ext_pillar
  266695. interfaces can be added in the same way as other modules, just drop it into
  266696. the pillar directory in the salt source.
  266697. .SS Minion Events
  266698. .sp
  266699. In 0.10.0 an event system was added to the Salt master. 0.10.2 adds the event
  266700. system to the minions as well. Now event can be published on a local minion
  266701. as well.
  266702. .sp
  266703. The minions can also send events back up to the master. This means that Salt is
  266704. able to communicate individual events from the minions back up to the Master
  266705. which are not associated with command.
  266706. .SS Minion Data Caching
  266707. .sp
  266708. When pillar was introduced the landscape for available data was greatly
  266709. enhanced. The minion\(aqs began sending grain data back to the master on a
  266710. regular basis.
  266711. .sp
  266712. The new config option on the master called \fBminion_data_cache\fP instructs the
  266713. Salt master to maintain a cache of the minion\(aqs grains and pillar data in the
  266714. cachedir. This option is turned off by default to avoid hitting the disk more,
  266715. but when enabled the cache is used to make grain matching from the salt command
  266716. more powerful, since the minions that will match can be predetermined.
  266717. .SS Backup Files
  266718. .sp
  266719. By default all files replaced by the file.managed and file.recurse states we
  266720. simply deleted. 0.10.2 adds a new option. By setting the backup option to
  266721. \fBminion\fP the files are backed up before they are replaced.
  266722. .sp
  266723. The backed up files are located in the cachedir under the file_backup
  266724. directory. On a default system this will be at:
  266725. \fB/var/cache/salt/file_backup\fP
  266726. .SS Configuration files
  266727. .sp
  266728. \fBsalt\-master\fP and \fBsalt\-minion\fP automatically load additional configuration
  266729. files from \fBmaster.d/*.conf\fP respective \fBminion.d/*.conf\fP where
  266730. \fBmaster.d\fP/\fBminion.d\fP is a directory in the same directory as the main
  266731. configuration file.
  266732. .SS Salt Key Verification
  266733. .sp
  266734. A number of users complained that they had inadvertently deleted the wrong salt
  266735. authentication keys. 0.10.2 now displays what keys are going to be deleted
  266736. and verifies that they are the keys that are intended for deletion.
  266737. .SS Key auto\-signing
  266738. .sp
  266739. If \fBautosign_file\fP is specified in the configuration file incoming keys
  266740. will be compared to the list of keynames in \fBautosign_file\fP\&. Regular
  266741. expressions as well as globbing is supported.
  266742. .sp
  266743. The file must only be writable by the user otherwise the file will be
  266744. ignored. To relax the permission and allow group write access set the
  266745. \fBpermissive_pki_access\fP option.
  266746. .SS Module changes
  266747. .SS Improved OpenBSD support
  266748. .sp
  266749. New modules for managing services and packages were provided by Joshua
  266750. Elsasser to further improve the support for OpenBSD.
  266751. .sp
  266752. Existing modules like the \fIdisk\fP module were also improved to support
  266753. OpenBSD.
  266754. .SS SQL Modules
  266755. .sp
  266756. The MySQL and PostgreSQL modules have both received a number of additions thanks
  266757. to the work of Avi Marcus and Roman Imankulov.
  266758. .SS ZFS Support on FreeBSD
  266759. .sp
  266760. A new ZFS module has been added by Kurtis Velarde for FreeBSD supporting
  266761. various ZFS operations like creating, extending or removing zpools.
  266762. .SS Augeas
  266763. .sp
  266764. A new Augeas module by Ulrich Dangel for editing and verifying config files.
  266765. .SS Native Debian Service module
  266766. .sp
  266767. The support for the Debian was further improved with an new service module
  266768. for Debian by Ahmad Khayyat supporting \fIdisable\fP and \fIenable\fP\&.
  266769. .SS Cassandra
  266770. .sp
  266771. Cassandra support has been added by Adam Garside. Currently only
  266772. status and diagnostic information are supported.
  266773. .SS Networking
  266774. .sp
  266775. The networking support for \fIRHEL\fP has been improved and supports bonding
  266776. support as well as zeroconf configuration.
  266777. .SS Monit
  266778. .sp
  266779. Basic monit support by Kurtis Velarde to control services via monit.
  266780. .SS nzbget
  266781. .sp
  266782. Basic support for controlling nzbget by Joseph Hall
  266783. .SS Bluetooth
  266784. .sp
  266785. Baisc \fBbluez\fP support for managing and controlling Bluetooth devices.
  266786. Supports scanning as well as pairing/unpairing by Joseph Hall.
  266787. .SS Test Updates
  266788. .SS Consistency Testing
  266789. .sp
  266790. Another testing script has been added. A bug was found in pillar when many
  266791. minions generated pillar data at the same time. The new \fBconsist.py\fP script
  266792. is the tests directory was created to reproduce bugs where data should always
  266793. be consistent.
  266794. .SS Many Fixes
  266795. .sp
  266796. To get a good idea for the number of bugfixes this release offers take a look
  266797. at the closed tickets for 0.10.2, this is a very substantial update:
  266798. .sp
  266799. \fI\%https://github.com/saltstack/salt/issues?milestone=24&page=1&state=closed\fP
  266800. .SS Master and Minion Stability Fixes
  266801. .sp
  266802. As Salt deployments grow new ways to break Salt are discovered. 0.10.2 comes
  266803. with a number of fixes for the minions and master greatly improving Salt
  266804. stability.
  266805. .SS Salt 0.10.3 Release Notes
  266806. .INDENT 0.0
  266807. .TP
  266808. .B release
  266809. 2012\-09\-30
  266810. .UNINDENT
  266811. .sp
  266812. The latest taste of Salt has come, this release has many fixes and feature
  266813. additions. Modifications have been made to make ZeroMQ connections more
  266814. reliable, the beginning of the ACL system is in place, a new command line
  266815. parsing system has been added, dynamic module distribution has become more
  266816. environment aware, the new \fImaster_finger\fP option and many more!
  266817. .SS Major Features
  266818. .SS ACL System
  266819. .sp
  266820. The new ACL system has been introduced. The ACL system allows for system users
  266821. other than root to execute salt commands. Users can be allowed to execute
  266822. specific commands in the same way that minions are opened up to the peer
  266823. system.
  266824. .sp
  266825. The configuration value to open up the ACL system is called \fBclient_acl\fP
  266826. and is configured like so:
  266827. .INDENT 0.0
  266828. .INDENT 3.5
  266829. .sp
  266830. .nf
  266831. .ft C
  266832. client_acl:
  266833. fred:
  266834. \- test..*
  266835. \- pkg.list_pkgs
  266836. .ft P
  266837. .fi
  266838. .UNINDENT
  266839. .UNINDENT
  266840. .sp
  266841. Where \fIfred\fP is allowed access to functions in the test module and to the
  266842. \fBpkg.list_pkgs\fP function.
  266843. .SS Master Finger Option
  266844. .sp
  266845. The \fImaster_finger\fP option has been added to improve the security of minion
  266846. provisioning. The \fImaster_finger\fP option allows for the fingerprint of the
  266847. master public key to be set in the configuration file to double verify that the
  266848. master is valid. This option was added in response to a motivation to
  266849. pre\-authenticate the master when provisioning new minions to help prevent
  266850. man in the middle attacks in some situations.
  266851. .SS Salt Key Fingerprint Generation
  266852. .sp
  266853. The ability to generate fingerprints of keys used by Salt has been added to
  266854. \fBsalt\-key\fP\&. The new option \fIfinger\fP accepts the name of the key to generate
  266855. and display a fingerprint for.
  266856. .INDENT 0.0
  266857. .INDENT 3.5
  266858. .sp
  266859. .nf
  266860. .ft C
  266861. salt\-key \-F master
  266862. .ft P
  266863. .fi
  266864. .UNINDENT
  266865. .UNINDENT
  266866. .sp
  266867. Will display the fingerprints for the master public and private keys.
  266868. .SS Parsing System
  266869. .sp
  266870. Pedro Algavio, aka s0undt3ch, has added a substantial update to the command
  266871. line parsing system that makes the help message output much cleaner and easier
  266872. to search through. Salt parsers now have \fI\-\-versions\-report\fP besides usual
  266873. \fI\-\-version\fP info which you can provide when reporting any issues found.
  266874. .SS Key Generation
  266875. .sp
  266876. We have reduced the requirements needed for \fIsalt\-key\fP to generate minion keys.
  266877. You\(aqre no longer required to have salt configured and its common directories
  266878. created just to generate keys. This might prove useful if you\(aqre batch creating
  266879. keys to pre\-load on minions.
  266880. .SS Startup States
  266881. .sp
  266882. A few configuration options have been added which allow for states to be run
  266883. when the minion daemon starts. This can be a great advantage when deploying
  266884. with Salt because the minion can apply states right when it first runs. To
  266885. use startup states set the \fBstartup_states\fP configuration option on the
  266886. minion to \fIhighstate\fP\&.
  266887. .SS New Exclude Declaration
  266888. .sp
  266889. Some users have asked about adding the ability to ensure that other sls files
  266890. or ids are excluded from a state run. The exclude statement will delete all of
  266891. the data loaded from the specified sls file or will delete the specified id:
  266892. .INDENT 0.0
  266893. .INDENT 3.5
  266894. .sp
  266895. .nf
  266896. .ft C
  266897. exclude:
  266898. \- sls: http
  266899. \- id: /etc/vimrc
  266900. .ft P
  266901. .fi
  266902. .UNINDENT
  266903. .UNINDENT
  266904. .SS Max Open Files
  266905. .sp
  266906. While we\(aqre currently unable to properly handle ZeroMQ\(aqs abort signals when the
  266907. max open files is reached, due to the way that\(aqs handled on ZeroMQ\(aqs, we have
  266908. minimized the chances of this happening without at least warning the user.
  266909. .SS More State Output Options
  266910. .sp
  266911. Some major changes have been made to the state output system. In the past state
  266912. return data was printed in a very verbose fashion and only states that failed
  266913. or made changes were printed by default. Now two options can be passed to the
  266914. master and minion configuration files to change the behavior of the state
  266915. output. State output can be set to verbose (default) or non\-verbose with the
  266916. \fBstate_verbose\fP option:
  266917. .INDENT 0.0
  266918. .INDENT 3.5
  266919. .sp
  266920. .nf
  266921. .ft C
  266922. state_verbose: False
  266923. .ft P
  266924. .fi
  266925. .UNINDENT
  266926. .UNINDENT
  266927. .sp
  266928. It is noteworthy that the state_verbose option used to be set to \fIFalse\fP by
  266929. default but has been changed to \fITrue\fP by default in 0.10.3 due to many
  266930. requests for the change.
  266931. .sp
  266932. Te next option to be aware of new and called \fBstate_output\fP\&. This option
  266933. allows for the state output to be set to \fIfull\fP (default) or \fIterse\fP\&.
  266934. .sp
  266935. The \fIfull\fP output is the standard state output, but the new \fIterse\fP output
  266936. will print only one line per state making the output much easier to follow when
  266937. executing a large state system.
  266938. .INDENT 0.0
  266939. .INDENT 3.5
  266940. .sp
  266941. .nf
  266942. .ft C
  266943. state_output: terse
  266944. .ft P
  266945. .fi
  266946. .UNINDENT
  266947. .UNINDENT
  266948. .SS \fIstate.file.append\fP Improvements
  266949. .sp
  266950. The salt state \fIfile.append()\fP tries \fInot\fP to append existing text. Previously
  266951. the matching check was being made line by line. While this kind of check might
  266952. be enough for most cases, if the text being appended was multi\-line, the check
  266953. would not work properly. This issue is now properly handled, the match is done
  266954. as a whole ignoring any white space addition or removal except inside commas.
  266955. For those thinking that, in order to properly match over multiple lines, salt
  266956. will load the whole file into memory, that\(aqs not true. For most cases this is
  266957. not important but an erroneous order to read a 4GB file, if not properly
  266958. handled, like salt does, could make salt chew that amount of memory. Salt has
  266959. a buffered file reader which will keep in memory a maximum of 256KB and
  266960. iterates over the file in chunks of 32KB to test for the match, more than
  266961. enough, if not, explain your usage on a ticket. With this change, also
  266962. \fIsalt.modules.file.contains()\fP, \fIsalt.modules.file.contains_regex()\fP,
  266963. \fIsalt.modules.file.contains_glob()\fP and \fIsalt.utils.find\fP now do the searching
  266964. and/or matching using the buffered chunks approach explained above.
  266965. .sp
  266966. Two new keyword arguments were also added, \fImakedirs\fP, and \fIsource\fP\&.
  266967. The first, \fImakedirs\fP will create the necessary directories in order to append
  266968. to the specified file, of course, it only applies if we\(aqre trying to append to
  266969. a non\-existing file on a non\-existing directory:
  266970. .INDENT 0.0
  266971. .INDENT 3.5
  266972. .sp
  266973. .nf
  266974. .ft C
  266975. /tmp/salttest/file\-append\-makedirs:
  266976. file.append:
  266977. text: foo
  266978. makedirs: True
  266979. .ft P
  266980. .fi
  266981. .UNINDENT
  266982. .UNINDENT
  266983. .sp
  266984. The second, \fIsource\fP, allows one to append the contents of a file instead of
  266985. specifying the text.
  266986. .INDENT 0.0
  266987. .INDENT 3.5
  266988. .sp
  266989. .nf
  266990. .ft C
  266991. /tmp/salttest/file\-append\-source:
  266992. file.append:
  266993. \- source: salt://testfile
  266994. .ft P
  266995. .fi
  266996. .UNINDENT
  266997. .UNINDENT
  266998. .SS Security Fix
  266999. .sp
  267000. A timing vulnerability was uncovered in the code which decrypts the AES
  267001. messages sent over the network. This has been fixed and upgrading is
  267002. strongly recommended.
  267003. .SS Salt 0.10.4 Release Notes
  267004. .INDENT 0.0
  267005. .TP
  267006. .B release
  267007. 2012\-10\-23
  267008. .UNINDENT
  267009. .sp
  267010. Salt 0.10.4 is a monumental release for the Salt team, with two new module
  267011. systems, many additions to allow granular access to Salt, improved platform
  267012. support and much more.
  267013. .sp
  267014. This release is also exciting because we have been able to shorten the release
  267015. cycle back to under a month. We are working hard to keep up the aggressive pace
  267016. and look forward to having releases happen more frequently!
  267017. .sp
  267018. This release also includes a serious security fix and all users are very
  267019. strongly recommended to upgrade. As usual, upgrade the master first, and then
  267020. the minion to ensure that the process is smooth.
  267021. .SS Major Features
  267022. .SS External Authentication System
  267023. .sp
  267024. The new external authentication system allows for Salt to pass through
  267025. authentication to any authentication system to determine if a user has
  267026. permission to execute a Salt command. The Unix PAM system is the first
  267027. supported system with more to come!
  267028. .sp
  267029. The external authentication system allows for specific users to be granted
  267030. access to execute specific functions on specific minions. Access is configured
  267031. in the master configuration file, and uses the new access control system:
  267032. .INDENT 0.0
  267033. .INDENT 3.5
  267034. .sp
  267035. .nf
  267036. .ft C
  267037. external_auth:
  267038. pam:
  267039. thatch:
  267040. \- \(aqweb*\(aq:
  267041. \- test.*
  267042. \- network.*
  267043. .ft P
  267044. .fi
  267045. .UNINDENT
  267046. .UNINDENT
  267047. .sp
  267048. The configuration above allows the user \fIthatch\fP to execute functions in the
  267049. test and network modules on minions that match the web* target.
  267050. .SS Access Control System
  267051. .sp
  267052. All Salt systems can now be configured to grant access to non\-administrative
  267053. users in a granular way. The old configuration continues to work. Specific
  267054. functions can be opened up to specific minions from specific users in the case
  267055. of external auth and client ACLs, and for specific minions in the case of the
  267056. peer system.
  267057. .sp
  267058. Access controls are configured like this:
  267059. .INDENT 0.0
  267060. .INDENT 3.5
  267061. .sp
  267062. .nf
  267063. .ft C
  267064. client_acl:
  267065. fred:
  267066. \- web\e*:
  267067. \- pkg.list_pkgs
  267068. \- test.*
  267069. \- apache.*
  267070. .ft P
  267071. .fi
  267072. .UNINDENT
  267073. .UNINDENT
  267074. .SS Target by Network
  267075. .sp
  267076. A new matcher has been added to the system which allows for minions to be
  267077. targeted by network. This new matcher can be called with the \fI\-S\fP flag on the
  267078. command line and is available in all places that the matcher system is
  267079. available. Using it is simple:
  267080. .INDENT 0.0
  267081. .INDENT 3.5
  267082. .sp
  267083. .nf
  267084. .ft C
  267085. $ salt \-S \(aq192.168.1.0/24\(aq test.ping
  267086. $ salt \-S \(aq192.168.1.100\(aq test.ping
  267087. .ft P
  267088. .fi
  267089. .UNINDENT
  267090. .UNINDENT
  267091. .SS Nodegroup Nesting
  267092. .sp
  267093. Previously a nodegroup was limited by not being able to include another
  267094. nodegroup, this restraint has been lifted and now nodegroups will be expanded
  267095. within other nodegroups with the \fIN@\fP classifier.
  267096. .SS Salt Key Delete by Glob
  267097. .sp
  267098. The ability to delete minion keys by glob has been added to \fBsalt\-key\fP\&. To
  267099. delete all minion keys whose minion name starts with \(aqweb\(aq:
  267100. .INDENT 0.0
  267101. .INDENT 3.5
  267102. .sp
  267103. .nf
  267104. .ft C
  267105. $ salt\-key \-d \(aqweb*\(aq
  267106. .ft P
  267107. .fi
  267108. .UNINDENT
  267109. .UNINDENT
  267110. .SS Master Tops System
  267111. .sp
  267112. The \fIexternal_nodes\fP system has been upgraded to allow for modular subsystems
  267113. to be used to generate the top file data for a highstate run.
  267114. .sp
  267115. The \fIexternal_nodes\fP option still works but will be deprecated in the future in
  267116. favor of the new \fImaster_tops\fP option.
  267117. .sp
  267118. Example of using \fImaster_tops\fP:
  267119. .INDENT 0.0
  267120. .INDENT 3.5
  267121. .sp
  267122. .nf
  267123. .ft C
  267124. master_tops:
  267125. ext_nodes: cobbler\-external\-nodes
  267126. .ft P
  267127. .fi
  267128. .UNINDENT
  267129. .UNINDENT
  267130. .SS Next Level Solaris Support
  267131. .sp
  267132. A lot of work has been put into improved Solaris support by Romeo Theriault.
  267133. Packaging modules (pkgadd/pkgrm and pkgutil) and states, cron support and user
  267134. and group management have all been added and improved upon. These additions
  267135. along with SMF (Service Management Facility) service support and improved
  267136. Solaris grain detection in 0.10.3 add up to Salt becoming a great tool
  267137. to manage Solaris servers with.
  267138. .SS Security
  267139. .sp
  267140. A vulnerability in the security handshake was found and has been repaired, old
  267141. minions should be able to connect to a new master, so as usual, the master
  267142. should be updated first and then the minions.
  267143. .SS Pillar Updates
  267144. .sp
  267145. The pillar communication has been updated to add some extra levels of
  267146. verification so that the intended minion is the only one allowed to gather the
  267147. data. Once all minions and the master are updated to salt 0.10.4 please
  267148. activate pillar \fI2\fP by changing the \fIpillar_version\fP in the master config to
  267149. \fI2\fP\&. This will be set to \fI2\fP by default in a future release.
  267150. .SS Salt 0.10.5 Release Notes
  267151. .INDENT 0.0
  267152. .TP
  267153. .B release
  267154. 2012\-11\-15
  267155. .UNINDENT
  267156. .sp
  267157. Salt 0.10.5 is ready, and comes with some great new features. A few more
  267158. interfaces have been modularized, like the outputter system. The job cache
  267159. system has been made more powerful and can now store and retrieve jobs archived
  267160. in external databases. The returner system has been extended to allow minions
  267161. to easily retrieve data from a returner interface.
  267162. .sp
  267163. As usual, this is an exciting release, with many noteworthy additions!
  267164. .SS Major Features
  267165. .SS External Job Cache
  267166. .sp
  267167. The external job cache is a system which allows for a returner interface to
  267168. also act as a job cache. This system is intended to allow users to store
  267169. job information in a central location for longer periods of time and to make
  267170. the act of looking up information from jobs executed on other minions easier.
  267171. .sp
  267172. Currently the external job cache is supported via the mongo and redis
  267173. returners:
  267174. .INDENT 0.0
  267175. .INDENT 3.5
  267176. .sp
  267177. .nf
  267178. .ft C
  267179. ext_job_cache: redis
  267180. redis.host: salt
  267181. .ft P
  267182. .fi
  267183. .UNINDENT
  267184. .UNINDENT
  267185. .sp
  267186. Once the external job cache is turned on the new \fIret\fP module can be used on
  267187. the minions to retrieve return information from the job cache. This can be a
  267188. great way for minions to respond and react to other minions.
  267189. .SS OpenStack Additions
  267190. .sp
  267191. OpenStack integration with Salt has been moving forward at a blistering pace.
  267192. The new \fInova\fP, \fIglance\fP, and \fIkeystone\fP modules represent the beginning of
  267193. ongoing OpenStack integration.
  267194. .sp
  267195. The Salt team has had many conversations with core OpenStack developers and
  267196. is working on linking to OpenStack in powerful new ways.
  267197. .SS Wheel System
  267198. .sp
  267199. A new API was added to the Salt Master which allows the master to be managed
  267200. via an external API. This new system allows Salt API to easily hook into the
  267201. Salt Master and manage configs, modify the state tree, manage the pillar and
  267202. more. The main motivation for the wheel system is to enable features needed
  267203. in the upcoming web UI so users can manage the master just as easily as they
  267204. manage minions.
  267205. .sp
  267206. The wheel system has also been hooked into the external auth system. This
  267207. allows specific users to have granular access to manage components of the
  267208. Salt Master.
  267209. .SS Render Pipes
  267210. .sp
  267211. Jack Kuan has added a substantial new feature. The render pipes system allows
  267212. Salt to treat the render system like unix pipes. This new system enables sls
  267213. files to be passed through specific render engines. While the default renderer
  267214. is still recommended, different engines can now be more easily merged. So to
  267215. pipe the output of Mako used in YAML use this shebang line:
  267216. .sp
  267217. #!mako|yaml
  267218. .SS Salt Key Overhaul
  267219. .sp
  267220. The Salt Key system was originally developed as only a CLI interface, but as
  267221. time went on it was pressed into becoming a clumsy API. This release marks a
  267222. complete overhaul of Salt Key. Salt Key has been rewritten to function purely
  267223. from an API and to use the outputter system. The benefit here is that the
  267224. outputter system works much more cleanly with Salt Key now, and the internals
  267225. of Salt Key can be used much more cleanly.
  267226. .SS Modular Outputters
  267227. .sp
  267228. The outputter system is now loaded in a modular way. This means that output
  267229. systems can be more easily added by dropping a python file down on the master
  267230. that contains the function \fIoutput\fP\&.
  267231. .SS Gzip from Fileserver
  267232. .sp
  267233. Gzip compression has been added as an option to the cp.get_file and cp.get_dir
  267234. commands. This will make file transfers more efficient and faster, especially
  267235. over slower network links.
  267236. .SS Unified Module Configuration
  267237. .sp
  267238. In past releases of Salt, the minions needed to be configured for certain
  267239. modules to function. This was difficult because it required pre\-configuring the
  267240. minions. 0.10.5 changes this by making all module configs on minions search the
  267241. master config file for values.
  267242. .sp
  267243. Now if a single database server is needed, then it can be defined in the master
  267244. config and all minions will become aware of the configuration value.
  267245. .SS Salt Call Enhancements
  267246. .sp
  267247. The \fBsalt\-call\fP command has been updated in a few ways. Now, \fBsalt\-call\fP
  267248. can take the \-\-return option to send the data to a returner. Also,
  267249. \fBsalt\-call\fP now reports executions in the minion proc system, this allows the
  267250. master to be aware of the operation salt\-call is running.
  267251. .SS Death to pub_refresh and sub_timeout
  267252. .sp
  267253. The old configuration values \fIpub_refresh\fP and \fIsub_timeout\fP have been removed.
  267254. These options were in place to alleviate problems found in earlier versions of
  267255. ZeroMQ which have since been fixed. The continued use of these options has
  267256. proven to cause problems with message passing and have been completely removed.
  267257. .SS Git Revision Versions
  267258. .sp
  267259. When running Salt directly from git (for testing or development, of course)
  267260. it has been difficult to know exactly what code is being executed. The new
  267261. versioning system will detect the git revision when building and how many
  267262. commits have been made since the last release. A release from git will look
  267263. like this:
  267264. .sp
  267265. 0.10.4\-736\-gec74d69
  267266. .SS Svn Module Addition
  267267. .sp
  267268. Anthony Cornehl (twinshadow) contributed a module that adds Subversion support
  267269. to Salt. This great addition helps round out Salt\(aqs VCS support.
  267270. .SS Noteworthy Changes
  267271. .SS Arch Linux Defaults to Systemd
  267272. .sp
  267273. Arch Linux recently changed to use systemd by default and discontinued support
  267274. for init scripts. Salt has followed suit and defaults to systemd now for
  267275. managing services in Arch.
  267276. .SS Salt, Salt Cloud and Openstack
  267277. .sp
  267278. With the releases of Salt 0.10.5 and Salt Cloud 0.8.2, OpenStack becomes the
  267279. first (non\-OS) piece of software to include support both on the user level
  267280. (with Salt Cloud) and the admin level (with Salt). We are excited to continue
  267281. to extend support of other platforms at this level.
  267282. .SS Salt 0.11.0 Release Notes
  267283. .INDENT 0.0
  267284. .TP
  267285. .B release
  267286. 2012\-12\-14
  267287. .UNINDENT
  267288. .sp
  267289. Salt 0.11.0 is here, with some highly sought after and exciting features.
  267290. These features include the new overstate system, the reactor system, a new
  267291. state run scope component called __context__, the beginning of the search
  267292. system (still needs a great deal of work), multiple package states, the MySQL
  267293. returner and a better system to arbitrarily reference outputters.
  267294. .sp
  267295. It is also noteworthy that we are changing how we mark release numbers. For the
  267296. life of the project we have been pushing every release with features and fixes
  267297. as point releases. We will now be releasing point releases for only bug fixes
  267298. on a more regular basis and major feature releases on a slightly less regular
  267299. basis. This means that the next release will be a bugfix only release with a
  267300. version number of 0.11.1. The next feature release will be named 0.12.0 and
  267301. will mark the end of life for the 0.11 series.
  267302. .SS Major Features
  267303. .SS OverState
  267304. .sp
  267305. The overstate system is a simple way to manage rolling state executions across
  267306. many minions. The overstate allows for a state to depend on the successful
  267307. completion of another state.
  267308. .SS Reactor System
  267309. .sp
  267310. The new reactor system allows for a reactive logic engine to be created which
  267311. can respond to events within a salted environment. The reactor system uses sls
  267312. files to match events fired on the master with actions, enabling Salt
  267313. to react to problems in an infrastructure.
  267314. .sp
  267315. Your load\-balanced group of webservers is under extra load? Spin up a new VM
  267316. and add it to the group. Your fileserver is filling up? Send a notification to
  267317. your sysadmin on call. The possibilities are endless!
  267318. .SS Module Context
  267319. .sp
  267320. A new component has been added to the module loader system. The module context
  267321. is a data structure that can hold objects for a given scope within the module.
  267322. .sp
  267323. This allows for components that are initialized to be stored in a persistent
  267324. context which can greatly speed up ongoing connections. Right now the best
  267325. example can be found in the \fIcp\fP execution module.
  267326. .SS Multiple Package Management
  267327. .sp
  267328. A long desired feature has been added to package management. By definition Salt
  267329. States have always installed packages one at a time. On most platforms this is
  267330. not the fastest way to install packages. Erik Johnson, aka terminalmage, has
  267331. modified the package modules for many providers and added new capabilities to
  267332. install groups of packages. These package groups can be defined as a list of
  267333. packages available in repository servers:
  267334. .INDENT 0.0
  267335. .INDENT 3.5
  267336. .sp
  267337. .nf
  267338. .ft C
  267339. python_pkgs:
  267340. pkg.installed:
  267341. \- pkgs:
  267342. \- python\-mako
  267343. \- whoosh
  267344. \- python\-git
  267345. .ft P
  267346. .fi
  267347. .UNINDENT
  267348. .UNINDENT
  267349. .sp
  267350. or specify based on the location of specific packages:
  267351. .INDENT 0.0
  267352. .INDENT 3.5
  267353. .sp
  267354. .nf
  267355. .ft C
  267356. python_pkgs:
  267357. pkg.installed:
  267358. \- sources:
  267359. \- python\-mako: http://some\-rpms.org/python\-mako.rpm
  267360. \- whoosh: salt://whoosh/whoosh.rpm
  267361. \- python\-git: ftp://companyserver.net/python\-git.rpm
  267362. .ft P
  267363. .fi
  267364. .UNINDENT
  267365. .UNINDENT
  267366. .SS Search System
  267367. .sp
  267368. The bones to the search system have been added. This is a very basic interface
  267369. that allows for search backends to be added as search modules. The first
  267370. supported search module is the whoosh search backend. Right now only the basic
  267371. paths for the search system are in place, making this very experimental.
  267372. Further development will involve improving the search routines and index
  267373. routines for whoosh and other search backends.
  267374. .sp
  267375. The search system has been made to allow for searching through all of the state
  267376. and pillar files, configuration files and all return data from minion
  267377. executions.
  267378. .SS Notable Changes
  267379. .sp
  267380. All previous versions of Salt have shared many directories between the master
  267381. and minion. The default locations for keys, cached data and sockets has been
  267382. shared by master and minion. This has created serious problems with running a
  267383. master and a minion on the same systems. 0.11.0 changes the defaults to be
  267384. separate directories. Salt will also attempt to migrate all of the old key data
  267385. into the correct new directories, but if it is not successful it may need to be
  267386. done manually. If your keys exhibit issues after updating make sure that they
  267387. have been moved from \fB/etc/salt/pki\fP to \fB/etc/salt/pki/{master,minion}\fP\&.
  267388. .sp
  267389. The old setup will look like this:
  267390. .INDENT 0.0
  267391. .INDENT 3.5
  267392. .sp
  267393. .nf
  267394. .ft C
  267395. /etc/salt/pki
  267396. |\-\- master.pem
  267397. |\-\- master.pub
  267398. |\-\- minions
  267399. | \(ga\-\- ragnarok.saltstack.net
  267400. |\-\- minions_pre
  267401. |\-\- minion.pem
  267402. |\-\- minion.pub
  267403. |\-\- minion_master.pub
  267404. |\-\- minions_pre
  267405. \(ga\-\- minions_rejected
  267406. .ft P
  267407. .fi
  267408. .UNINDENT
  267409. .UNINDENT
  267410. .sp
  267411. With the accepted minion keys in \fB/etc/salt/pki/minions\fP, the new setup
  267412. places the accepted minion keys in \fB/etc/salt/pki/master/minions\fP\&.
  267413. .INDENT 0.0
  267414. .INDENT 3.5
  267415. .sp
  267416. .nf
  267417. .ft C
  267418. /etc/salt/pki
  267419. |\-\- master
  267420. | |\-\- master.pem
  267421. | |\-\- master.pub
  267422. | |\-\- minions
  267423. | | \(ga\-\- ragnarok.saltstack.net
  267424. | |\-\- minions_pre
  267425. | \(ga\-\- minions_rejected
  267426. |\-\- minion
  267427. | |\-\- minion.pem
  267428. | |\-\- minion.pub
  267429. | \(ga\-\- minion_master.pub
  267430. .ft P
  267431. .fi
  267432. .UNINDENT
  267433. .UNINDENT
  267434. .SS Salt 0.11.1 Release Notes
  267435. .INDENT 0.0
  267436. .TP
  267437. .B release
  267438. 2012\-12\-19
  267439. .UNINDENT
  267440. .SS Salt 0.12.0 Release Notes
  267441. .INDENT 0.0
  267442. .TP
  267443. .B release
  267444. 2013\-01\-15
  267445. .UNINDENT
  267446. .sp
  267447. Another feature release of Salt is here! Some exciting additions are included
  267448. with more ways to make salt modular and even easier management of the salt
  267449. file server.
  267450. .SS Major Features
  267451. .SS Modular Fileserver Backend
  267452. .sp
  267453. The new modular fileserver backend allows for any external system to be used as
  267454. a salt file server. The main benefit here is that it is now possible to tell
  267455. the master to directly use a git remote location, or many git remote locations,
  267456. automatically mapping git branches and tags to salt environments.
  267457. .SS Windows is First Class!
  267458. .sp
  267459. A new Salt Windows installer is now available! Much work has been put in to
  267460. improve Windows support. With this much easier method of getting Salt on your
  267461. Windows machines, we hope even more development and progress will occur. Please
  267462. file bug reports on the Salt GitHub repo issue tracker so we can continue
  267463. improving.
  267464. .sp
  267465. One thing that is missing on Windows that Salt uses extensively is a software
  267466. package manager and a software package repository. The Salt pkg state allows
  267467. sys admins to install software across their infrastructure and across operating
  267468. systems. Software on Windows can now be managed in the same way. The SaltStack
  267469. team built a package manager that interfaces with the standard Salt pkg module
  267470. to allow for installing and removing software on Windows. In addition, a
  267471. software package repository has been built on top of the Salt fileserver. A
  267472. small YAML file provides the information necessary for the package manager to
  267473. install and remove software.
  267474. .sp
  267475. An interesting feature of the new Salt Windows software package repository is
  267476. that one or more remote git repositories can supplement the master\(aqs local
  267477. repository. The repository can point to software on the master\(aqs fileserver or
  267478. on an HTTP, HTTPS, or ftp server.
  267479. .SS New Default Outputter
  267480. .sp
  267481. Salt displays data to the terminal via the outputter system. For a long time
  267482. the default outputter for Salt has been the python pretty print library. While
  267483. this has been a generally reasonable outputter, it did have many failings. The
  267484. new default outputter is called "nested", it recursively scans return data
  267485. structures and prints them out cleanly.
  267486. .sp
  267487. If the result of the new nested outputter is not desired any other outputter
  267488. can be used via the \-\-out option, or the output option can be set in the master
  267489. and minion configs to change the default outputter.
  267490. .SS Internal Scheduler
  267491. .sp
  267492. The internal Salt scheduler is a new capability which allows for functions to
  267493. be executed at given intervals on the minion, and for runners to be executed
  267494. at given intervals on the master. The scheduler allows for sequences
  267495. such as executing state runs (locally on the minion or remotely via an
  267496. overstate) or continually gathering system data to be run at given intervals.
  267497. .sp
  267498. The configuration is simple, add the schedule option to the master or minion
  267499. config and specify jobs to run, this in the master config will execute the
  267500. state.over runner every 60 minutes:
  267501. .INDENT 0.0
  267502. .INDENT 3.5
  267503. .sp
  267504. .nf
  267505. .ft C
  267506. schedule:
  267507. overstate:
  267508. function: state.over
  267509. minutes: 60
  267510. .ft P
  267511. .fi
  267512. .UNINDENT
  267513. .UNINDENT
  267514. .sp
  267515. This example for the minion configuration will execute a highstate every 30
  267516. minutes:
  267517. .INDENT 0.0
  267518. .INDENT 3.5
  267519. .sp
  267520. .nf
  267521. .ft C
  267522. schedule:
  267523. highstate:
  267524. function: state.highstate
  267525. minutes: 30
  267526. .ft P
  267527. .fi
  267528. .UNINDENT
  267529. .UNINDENT
  267530. .SS Optional DSL for SLS Formulas
  267531. .sp
  267532. Jack Kuan, our renderer expert, has created something that is astonishing.
  267533. Salt, now comes with an optional Python based DSL, this is a very powerful
  267534. interface that makes writing SLS files in pure python easier than it was
  267535. with the raw py renderer. As usual this can be used with the renderer shebang
  267536. line, so a single sls can be written with the DSL if pure python power is
  267537. needed while keeping other sls files simple with YAML.
  267538. .SS Set Grains Remotely
  267539. .sp
  267540. A new execution function and state module have been added that allows for
  267541. grains to be set on the minion. Now grains can be set via a remote execution or
  267542. via states. Use the \fIgrains.present\fP state or the \fIgrains.setval\fP execution
  267543. functions.
  267544. .SS Gentoo Additions
  267545. .sp
  267546. Major additions to Gentoo specific components have been made. The encompasses
  267547. executions modules and states ranging from supporting the make.conf file to
  267548. tools like layman.
  267549. .SS Salt 0.12.1 Release Notes
  267550. .INDENT 0.0
  267551. .TP
  267552. .B release
  267553. 2013\-01\-21
  267554. .UNINDENT
  267555. .SS Salt 0.13.0 Release Notes
  267556. .INDENT 0.0
  267557. .TP
  267558. .B release
  267559. 2013\-02\-12
  267560. .UNINDENT
  267561. .sp
  267562. The lucky number 13 has turned the corner! From CLI notifications when quitting
  267563. a salt command, to substantial improvements on Windows, Salt 0.13.0 has
  267564. arrived!
  267565. .SS Major Features
  267566. .SS Improved file.recurse Performance
  267567. .sp
  267568. The file.recurse system has been deployed and used in a vast array of
  267569. situations. Fixes to the file state and module have led towards opening up
  267570. new ways of running file.recurse to make it faster. Now the file.recurse
  267571. state will download fewer files and will run substantially faster.
  267572. .SS Windows Improvements
  267573. .sp
  267574. Minion stability on Windows has improved. Many file operations, including
  267575. file.recurse, have been fixed and improved. The network module works better, to
  267576. include network.interfaces. Both 32bit and 64bit installers are now available.
  267577. .SS Nodegroup Targeting in Peer System
  267578. .sp
  267579. In the past, nodegroups were not available for targeting via the peer system.
  267580. This has been fixed, allowing the new nodegroup expr_form argument for the
  267581. publish.publish function:
  267582. .INDENT 0.0
  267583. .INDENT 3.5
  267584. salt\-call publish.publish group1 test.ping expr_form=nodegroup
  267585. .UNINDENT
  267586. .UNINDENT
  267587. .SS Blacklist Additions
  267588. .sp
  267589. Additions allowing more granular blacklisting are available in 0.13.0. The
  267590. ability to blacklist users and functions in client_acl have been added, as
  267591. well as the ability to exclude state formulas from the command line.
  267592. .SS Command Line Pillar Embedding
  267593. .sp
  267594. Pillar data can now be embedded on the command line when calling \fBstate.sls\fP
  267595. and \fBstate.highstate\fP\&. This allows for on the fly changes or settings to
  267596. pillar and makes parameterizing state formulas even easier. This is done via
  267597. the keyword argument:
  267598. .INDENT 0.0
  267599. .INDENT 3.5
  267600. .sp
  267601. .nf
  267602. .ft C
  267603. salt \(aq*\(aq state.highstate pillar=\(aq{"cheese": "spam"}\(aq
  267604. .ft P
  267605. .fi
  267606. .UNINDENT
  267607. .UNINDENT
  267608. .sp
  267609. The above example will extend the existing pillar to hold the \fBcheese\fP key
  267610. with a value of \fBspam\fP\&. If the \fBcheese\fP key is already specified in the
  267611. minion\(aqs pillar then it will be overwritten.
  267612. .SS CLI Notifications
  267613. .sp
  267614. In the past hitting ctrl\-C and quitting from the \fBsalt\fP command would just
  267615. drop to a shell prompt, this caused confusion with users who expected the
  267616. remote executions to also quit. Now a message is displayed showing what
  267617. command can be used to track the execution and what the job id is for the
  267618. execution.
  267619. .SS Version Specification in Multiple\-Package States
  267620. .sp
  267621. Versions can now be specified within multiple\-package \fBpkg.installed\fP states. An example can be found below:
  267622. .INDENT 0.0
  267623. .INDENT 3.5
  267624. .sp
  267625. .nf
  267626. .ft C
  267627. mypkgs:
  267628. pkg.installed:
  267629. \- pkgs:
  267630. \- foo
  267631. \- bar: 1.2.3\-4
  267632. \- baz
  267633. .ft P
  267634. .fi
  267635. .UNINDENT
  267636. .UNINDENT
  267637. .SS Noteworthy Changes
  267638. .sp
  267639. The configuration subsystem in Salt has been overhauled to make the \fBopts\fP
  267640. dict used by Salt applications more portable, the problem is that this is an
  267641. incompatible change with salt\-cloud, and salt\-cloud will need to be updated
  267642. to the latest git to work with Salt 0.13.0. Salt Cloud 0.8.5 will also require
  267643. Salt 0.13.0 or later to function.
  267644. .sp
  267645. The SaltStack team is sorry for the inconvenience here, we work hard to make
  267646. sure these sorts of things do not happen, but sometimes hard changes get in.
  267647. .SS Salt 0.13.1 Release Notes
  267648. .INDENT 0.0
  267649. .TP
  267650. .B release
  267651. 2013\-02\-15
  267652. .UNINDENT
  267653. .SS Salt 0.13.2 Release Notes
  267654. .INDENT 0.0
  267655. .TP
  267656. .B release
  267657. 2013\-03\-13
  267658. .UNINDENT
  267659. .SS Salt 0.13.3 Release Notes
  267660. .INDENT 0.0
  267661. .TP
  267662. .B release
  267663. 2013\-03\-18
  267664. .UNINDENT
  267665. .SS Salt 0.14.0 Release Notes
  267666. .INDENT 0.0
  267667. .TP
  267668. .B release
  267669. 2013\-03\-23
  267670. .UNINDENT
  267671. .sp
  267672. Salt 0.14.0 is here! This release was held up primarily by PyCon, Scale, and
  267673. illness, but has arrived! 0.14.0 comes with many new features and is breaking
  267674. ground for Salt in the area of cloud management with the introduction of Salt
  267675. providing basic cloud controller functionality.
  267676. .SS Major Features
  267677. .SS Salt \- As a Cloud Controller
  267678. .sp
  267679. This is the first primitive inroad to using Salt as a cloud controller is
  267680. available in 0.14.0. Be advised that this is alpha, only tested in a few very
  267681. small environments.
  267682. .sp
  267683. The cloud controller is built using kvm and libvirt for the hypervisors.
  267684. Hypervisors are autodetected as minions and only need to have libvirt running
  267685. and kvm installed to function. The features of the Salt cloud controller are
  267686. as follows:
  267687. .INDENT 0.0
  267688. .INDENT 3.5
  267689. .INDENT 0.0
  267690. .IP \(bu 2
  267691. Basic vm discovery and reporting
  267692. .IP \(bu 2
  267693. Creation of new virtual machines
  267694. .IP \(bu 2
  267695. Seeding virtual machines with Salt via qemu\-nbd or libguestfs
  267696. .IP \(bu 2
  267697. Live migration (shared and non shared storage)
  267698. .IP \(bu 2
  267699. Delete existing VMs
  267700. .UNINDENT
  267701. .UNINDENT
  267702. .UNINDENT
  267703. .sp
  267704. It is noteworthy that this feature is still Alpha, meaning that all rights
  267705. are reserved to change the interface if needs be in future releases!
  267706. .SS Libvirt State
  267707. .sp
  267708. One of the problems with libvirt is management of certificates needed for live
  267709. migration and cross communication between hypervisors. The new \fBlibvirt\fP
  267710. state makes the Salt Master hold a CA and manage the signing and distribution
  267711. of keys onto hypervisors, just add a call to the libvirt state in the sls
  267712. formulas used to set up a hypervisor:
  267713. .INDENT 0.0
  267714. .INDENT 3.5
  267715. .sp
  267716. .nf
  267717. .ft C
  267718. libvirt_keys:
  267719. libvirt.keys
  267720. .ft P
  267721. .fi
  267722. .UNINDENT
  267723. .UNINDENT
  267724. .SS New get Functions
  267725. .sp
  267726. An easier way to manage data has been introduced. The pillar, grains, and config
  267727. execution modules have been extended with the new \fBget\fP function. This
  267728. function works much in the same way as the get method in a python dict, but with
  267729. an enhancement, nested dict components can be extracted using a \fI:\fP delimiter.
  267730. .sp
  267731. If a structure like this is in pillar:
  267732. .INDENT 0.0
  267733. .INDENT 3.5
  267734. .sp
  267735. .nf
  267736. .ft C
  267737. foo:
  267738. bar:
  267739. baz: quo
  267740. .ft P
  267741. .fi
  267742. .UNINDENT
  267743. .UNINDENT
  267744. .sp
  267745. Extracting it from the raw pillar in an sls formula or file template is done
  267746. this way:
  267747. .INDENT 0.0
  267748. .INDENT 3.5
  267749. .sp
  267750. .nf
  267751. .ft C
  267752. {{ pillar[\(aqfoo\(aq][\(aqbar\(aq][\(aqbaz\(aq] }}
  267753. .ft P
  267754. .fi
  267755. .UNINDENT
  267756. .UNINDENT
  267757. .sp
  267758. Now with the new get function the data can be safely gathered and a default
  267759. can be set allowing the template to fall back if the value is not available:
  267760. .INDENT 0.0
  267761. .INDENT 3.5
  267762. .sp
  267763. .nf
  267764. .ft C
  267765. {{ salt[\(aqpillar.get\(aq](\(aqfoo:bar:baz\(aq, \(aqqux\(aq) }}
  267766. .ft P
  267767. .fi
  267768. .UNINDENT
  267769. .UNINDENT
  267770. .sp
  267771. This makes handling nested structures much easier, and defaults can be cleanly
  267772. set. This new function is being used extensively in the new formulae repository
  267773. of salt sls formulas.
  267774. .SS Salt 0.14.1 Release Notes
  267775. .INDENT 0.0
  267776. .TP
  267777. .B release
  267778. 2013\-04\-13
  267779. .UNINDENT
  267780. .SS Salt 0.15.0 Release Notes
  267781. .INDENT 0.0
  267782. .TP
  267783. .B release
  267784. 2013\-05\-03
  267785. .UNINDENT
  267786. .sp
  267787. The many new features of Salt 0.15.0 have arrived! Salt 0.15.0 comes with many
  267788. smaller features and a few larger ones.
  267789. .sp
  267790. These features range from better debugging tools to the new Salt Mine system.
  267791. .SS Major Features
  267792. .SS The Salt Mine
  267793. .sp
  267794. First there was the peer system, allowing for commands to be executed from a
  267795. minion to other minions to gather data live. Then there was the external job
  267796. cache for storing and accessing long term data. Now the middle ground is being
  267797. filled in with the Salt Mine. The Salt Mine is a system used to execute
  267798. functions on a regular basis on minions and then store only the most recent
  267799. data from the functions on the master, then the data is looked up via targets.
  267800. .sp
  267801. The mine caches data that is public to all minions, so when a minion posts
  267802. data to the mine all other minions can see it.
  267803. .SS IPV6 Support
  267804. .sp
  267805. 0.13.0 saw the addition of initial IPV6 support but errors were encountered and
  267806. it needed to be stripped out. This time the code covers more cases and must be
  267807. explicitly enabled. But the support is much more extensive than before.
  267808. .SS Copy Files From Minions to the Master
  267809. .sp
  267810. Minions have long been able to copy files down from the master file server, but
  267811. until now files could not be easily copied from the minion up to the master.
  267812. .sp
  267813. A new function called \fBcp.push\fP can push files from the minions up to the
  267814. master server. The uploaded files are then cached on the master in the master
  267815. cachedir for each minion.
  267816. .SS Better Template Debugging
  267817. .sp
  267818. Template errors have long been a burden when writing states and pillar. 0.15.0
  267819. will now send the compiled template data to the debug log, this makes tracking
  267820. down the intermittent stage templates much easier. So running state.sls or
  267821. state.highstate with \fI\-l debug\fP will now print out the rendered templates in
  267822. the debug information.
  267823. .SS State Event Firing
  267824. .sp
  267825. The state system is now more closely tied to the master\(aqs event bus. Now when
  267826. a state fails the failure will be fired on the master event bus so that the
  267827. reactor can respond to it.
  267828. .SS Major Syndic Updates
  267829. .sp
  267830. The Syndic system has been basically re\-written. Now it runs in a completely
  267831. asynchronous way and functions primarily as an event broker. This means that
  267832. the events fired on the syndic are now pushed up to the higher level master
  267833. instead of the old method used which waited for the client libraries to
  267834. return.
  267835. .sp
  267836. This makes the syndic much more accurate and powerful, it also means that
  267837. all events fired on the syndic master make it up the pipe as well making a
  267838. reactor on the higher level master able to react to minions further
  267839. downstream.
  267840. .SS Peer System Updates
  267841. .sp
  267842. The Peer System has been updated to run using the client libraries instead
  267843. of firing directly over the publish bus. This makes the peer system much more
  267844. consistent and reliable.
  267845. .SS Minion Key Revocation
  267846. .sp
  267847. In the past when a minion was decommissioned the key needed to be manually
  267848. deleted on the master, but now a function on the minion can be used to revoke
  267849. the calling minion\(aqs key:
  267850. .INDENT 0.0
  267851. .INDENT 3.5
  267852. .sp
  267853. .nf
  267854. .ft C
  267855. $ salt\-call saltutil.revoke_auth
  267856. .ft P
  267857. .fi
  267858. .UNINDENT
  267859. .UNINDENT
  267860. .SS Function Return Codes
  267861. .sp
  267862. Functions can now be assigned numeric return codes to determine if the function
  267863. executed successfully. While not all functions have been given return codes,
  267864. many have and it is an ongoing effort to fill out all functions that might
  267865. return a non\-zero return code.
  267866. .SS Functions in Overstate
  267867. .sp
  267868. The overstate system was originally created to just manage the execution of
  267869. states, but with the addition of return codes to functions, requisite logic can
  267870. now be used with respect to the overstate. This means that an overstate stage
  267871. can now run single functions instead of just state executions.
  267872. .SS Pillar Error Reporting
  267873. .sp
  267874. Previously if errors surfaced in pillar, then the pillar would consist of only
  267875. an empty dict. Now all data that was successfully rendered stays in pillar and
  267876. the render error is also made available. If errors are found in the pillar,
  267877. states will refuse to run.
  267878. .SS Using Cached State Data
  267879. .sp
  267880. Sometimes states are executed purely to maintain a specific state rather than
  267881. to update states with new configs. This is grounds for the new cached state
  267882. system. By adding \fIcache=True\fP to a state call the state will not be generated
  267883. fresh from the master but the last state data to be generated will be used.
  267884. If no previous state data is available then fresh data will be generated.
  267885. .SS Monitoring States
  267886. .sp
  267887. The new monitoring states system has been started. This is very young but
  267888. allows for states to be used to configure monitoring routines. So far only one
  267889. monitoring state is available, the \fBdisk.status\fP state. As more capabilities
  267890. are added to Salt UI the monitoring capabilities of Salt will continue to be
  267891. expanded.
  267892. .SS Salt 0.15.1 Release Notes
  267893. .INDENT 0.0
  267894. .TP
  267895. .B release
  267896. 2013\-05\-08
  267897. .UNINDENT
  267898. .sp
  267899. The 0.15.1 release has been posted, this release includes fixes to a number of
  267900. bugs in 0.15.1 and a three security patches.
  267901. .SS Security Updates
  267902. .sp
  267903. A number of security issues have been resolved via the 0.15.1 release.
  267904. .SS Path Injection in Minion IDs
  267905. .sp
  267906. Salt masters did not properly validate the id of a connecting minion. This can
  267907. lead to an attacker uploading files to the master in arbitrary locations.
  267908. In particular this can be used to bypass the manual validation of new unknown
  267909. minions. Exploiting this vulnerability does not require authentication.
  267910. .sp
  267911. This issue affects all known versions of Salt.
  267912. .sp
  267913. This issue was reported by Ronald Volgers.
  267914. .SS Patch
  267915. .sp
  267916. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual
  267917. locations.
  267918. .sp
  267919. Specific commits:
  267920. .sp
  267921. \fI\%https://github.com/saltstack/salt/commit/5427b9438e452a5a8910d9128c6aafb45d8fd5d3\fP
  267922. .sp
  267923. \fI\%https://github.com/saltstack/salt/commit/7560908ee62351769c3cd43b03d74c1ca772cc52\fP
  267924. .sp
  267925. \fI\%https://github.com/saltstack/salt/commit/e200b8a7ff53780124e08d2bdefde7587e52bfca\fP
  267926. .SS RSA Key Generation Fault
  267927. .sp
  267928. RSA key generation was done incorrectly, leading to very insecure keys. It is
  267929. recommended to regenerate all RSA keys.
  267930. .sp
  267931. This issue can be used to impersonate Salt masters or minions, or decrypt any
  267932. transferred data.
  267933. .sp
  267934. This issue can only be exploited by attackers who are able to observe or modify
  267935. traffic between Salt minions and the legitimate Salt master.
  267936. .sp
  267937. A tool was included in 0.15.1 to assist in mass key regeneration, the
  267938. manage.regen_keys runner.
  267939. .sp
  267940. This issue affects all known versions of Salt.
  267941. .sp
  267942. This issue was reported by Ronald Volgers.
  267943. .SS Patch
  267944. .sp
  267945. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual
  267946. locations.
  267947. .sp
  267948. Specific commits:
  267949. .sp
  267950. \fI\%https://github.com/saltstack/salt/commit/5dd304276ba5745ec21fc1e6686a0b28da29e6fc\fP
  267951. .SS Command Injection Via ext_pillar
  267952. .sp
  267953. Arbitrary shell commands could be executed on the master by an authenticated
  267954. minion through options passed when requesting a pillar.
  267955. .sp
  267956. Ext pillar options have been restricted to only allow safe external pillars to
  267957. be called when prompted by the minion.
  267958. .sp
  267959. This issue affects Salt versions from 0.14.0 to 0.15.0.
  267960. .sp
  267961. This issue was reported by Ronald Volgers.
  267962. .SS Patch
  267963. .sp
  267964. The issue is fixed in Salt 0.15.1. Updated packages are available in the usual locations.
  267965. .sp
  267966. Specific commits:
  267967. .sp
  267968. \fI\%https://github.com/saltstack/salt/commit/43d8c16bd26159d827d1a945c83ac28159ec5865\fP
  267969. .SS Salt 0.15.2 Release Notes
  267970. .INDENT 0.0
  267971. .TP
  267972. .B release
  267973. 2013\-05\-29
  267974. .UNINDENT
  267975. .SS Salt 0.15.3 Release Notes
  267976. .INDENT 0.0
  267977. .TP
  267978. .B release
  267979. 2013\-06\-01
  267980. .UNINDENT
  267981. .SS Salt 0.16.0 Release Notes
  267982. .INDENT 0.0
  267983. .TP
  267984. .B release
  267985. 2013\-07\-01
  267986. .UNINDENT
  267987. .sp
  267988. The 0.16.0 release is an exciting one, with new features in master redundancy,
  267989. and a new, powerful requisite.
  267990. .SS Major Features
  267991. .SS Multi\-Master
  267992. .sp
  267993. This new capability allows for a minion to be actively connected to multiple
  267994. salt masters at the same time. This allows for multiple masters to send out commands
  267995. to minions and for minions to automatically reconnect to masters that have gone
  267996. down. A tutorial is available to help get started here:
  267997. .sp
  267998. Multi Master Tutorial
  267999. .SS Prereq, the New Requisite
  268000. .sp
  268001. The new \fIprereq\fP requisite is very powerful! It allows for states to execute
  268002. based on a state that is expected to make changes in the future. This allows
  268003. for a change on the system to be preempted by another execution. A good example
  268004. is needing to shut down a service before modifying files associated with it,
  268005. allowing, for instance, a webserver to be shut down allowing a load balancer to
  268006. stop sending requests while server side code is updated. In this case, the
  268007. prereq will only run if changes are expected to happen in the prerequired
  268008. state, and the prerequired state will always run after the prereq state and
  268009. only if the prereq state succeeds.
  268010. .SS Peer System Improvements
  268011. .sp
  268012. The peer system has been revamped to make it more reliable, faster, and like
  268013. the rest of Salt, async. The peer calls when an updated minion and master are
  268014. used together will be much faster!
  268015. .SS Relative Includes
  268016. .sp
  268017. The ability to include an sls relative to the defined sls has been added, the
  268018. new syntax id documented here:
  268019. .sp
  268020. Includes
  268021. .SS More State Output Options
  268022. .sp
  268023. The \fBstate_output\fP option in the past only supported \fIfull\fP and \fIterse\fP,
  268024. 0.16.0 add the \fImixed\fP and \fIchanges\fP modes further refining how states are sent
  268025. to users\(aq eyes.
  268026. .SS Improved Windows Support
  268027. .sp
  268028. Support for Salt on Windows continues to improve. Software management on
  268029. Windows has become more seamless with Linux/UNIX/BSD software management.
  268030. Installed software is now recognized by the short names defined in the
  268031. repository SLS\&. This makes it
  268032. possible to run \fBsalt \(aq*\(aq pkg.version firefox\fP and get back results from
  268033. Windows and non\-Windows minions alike.
  268034. .sp
  268035. When templating files on Windows, Salt will now correctly use Windows
  268036. appropriate line endings. This makes it much easier to edit and consume files
  268037. on Windows.
  268038. .sp
  268039. When using the cmd state the \fBshell\fP option now allows for specifying
  268040. Windows Powershell as an alternate shell to execute cmd.run and cmd.script.
  268041. This opens up Salt to all the power of Windows Powershell and its advanced
  268042. Windows management capabilities.
  268043. .sp
  268044. Several fixes and optimizations were added for the Windows networking modules,
  268045. especially when working with IPv6.
  268046. .sp
  268047. A system module was added that makes it easy to restart and shutdown Windows
  268048. minions.
  268049. .sp
  268050. The Salt Minion will now look for its config file in \fBc:\esalt\econf\fP by
  268051. default. This means that it\(aqs no longer necessary to specify the \fB\-c\fP option
  268052. to specify the location of the config file when starting the Salt Minion on
  268053. Windows in a terminal.
  268054. .SS Multiple Targets for pkg.removed, pkg.purged States
  268055. .sp
  268056. Both \fBpkg.removed\fP and \fBpkg.purged\fP now support the \fBpkgs\fP argument, which allow for
  268057. multiple packages to be targeted in a single state. This, as in
  268058. \fBpkg.installed\fP, helps speed up these
  268059. states by reducing the number of times that the package management tools (apt,
  268060. yum, etc.) need to be run.
  268061. .SS Random Times in Cron States
  268062. .sp
  268063. The temporal parameters in \fBcron.present\fP
  268064. states (minute, hour, etc.) can now be randomized by using \fBrandom\fP instead
  268065. of a specific value. For example, by using the \fBrandom\fP keyword in the
  268066. \fBminute\fP parameter of a cron state, the same cron job can be pushed to
  268067. hundreds or thousands of hosts, and they would each use a randomly\-generated
  268068. minute. This can be helpful when the cron job accesses a network resource, and
  268069. it is not desirable for all hosts to run the job concurrently.
  268070. .INDENT 0.0
  268071. .INDENT 3.5
  268072. .sp
  268073. .nf
  268074. .ft C
  268075. /path/to/cron/script:
  268076. cron.present:
  268077. \- user: root
  268078. \- minute: random
  268079. \- hour: 2
  268080. .ft P
  268081. .fi
  268082. .UNINDENT
  268083. .UNINDENT
  268084. .sp
  268085. Since Salt assumes a value of \fB*\fP for unspecified temporal parameters, adding
  268086. a parameter to the state and setting it to \fBrandom\fP will change that value
  268087. from \fB*\fP to a randomized numeric value. However, if that field in the cron
  268088. entry on the minion already contains a numeric value, then using the \fBrandom\fP
  268089. keyword will not modify it.
  268090. .SS Confirmation Prompt on Key Acceptance
  268091. .sp
  268092. When accepting new keys with \fBsalt\-key \-a minion\-id\fP or \fBsalt\-key \-A\fP,
  268093. there is now a prompt that will show the affected keys and ask for confirmation
  268094. before proceeding. This prompt can be bypassed using the \fB\-y\fP or \fB\-\-yes\fP
  268095. command line argument, as with other \fBsalt\-key\fP commands.
  268096. .SS Support for Setting Password Hashes on BSD Minions
  268097. .sp
  268098. FreeBSD, NetBSD, and OpenBSD all now support setting passwords in
  268099. \fBuser.present\fP states.
  268100. .SS Salt 0.16.1 Release Notes
  268101. .INDENT 0.0
  268102. .TP
  268103. .B release
  268104. 2013\-07\-29
  268105. .UNINDENT
  268106. .SS Salt 0.16.2 Release Notes
  268107. .INDENT 0.0
  268108. .TP
  268109. .B release
  268110. 2013\-08\-01
  268111. .UNINDENT
  268112. .sp
  268113. Version 0.16.2 is a bugfix release for 0.16.0,
  268114. and contains a number of fixes.
  268115. .SS Windows
  268116. .INDENT 0.0
  268117. .IP \(bu 2
  268118. Only allow Administrator\(aqs group and SYSTEM user access to C:\esalt. This
  268119. eliminates a race condition where a non\-admin user could modify a template or
  268120. managed file before it is executed by the minion (which is running as an
  268121. elevated user), thus avoiding a potential escalation of privileges. (\fI\%issue #6361\fP)
  268122. .UNINDENT
  268123. .SS Grains
  268124. .INDENT 0.0
  268125. .IP \(bu 2
  268126. Fixed detection of \fBvirtual\fP grain on OpenVZ hardware nodes
  268127. .IP \(bu 2
  268128. Gracefully handle lsb_release data when it is enclosed in quotes
  268129. .IP \(bu 2
  268130. LSB grains are now prefixed with \fBlsb_distrib_\fP instead of simply \fBlsb_\fP\&.
  268131. The old naming is not preserved, so SLS may be affected.
  268132. .IP \(bu 2
  268133. Improved grains detection on MacOS
  268134. .UNINDENT
  268135. .SS Pillar
  268136. .INDENT 0.0
  268137. .IP \(bu 2
  268138. Don\(aqt try to load \fBgit_pillar\fP
  268139. if not enabled in master config (\fI\%issue #6052\fP)
  268140. .IP \(bu 2
  268141. Functions \fBpillar.item\fP and
  268142. \fBpillar.items\fP added for parity with
  268143. \fBgrains.item\fP/\fBgrains.items\fP\&. The old function \fBpillar.data\fP is preserved
  268144. for backwards compatibility.
  268145. .IP \(bu 2
  268146. Fixed minion traceback when Pillar SLS is malformed (\fI\%issue #5910\fP)
  268147. .UNINDENT
  268148. .SS Peer Publishing
  268149. .INDENT 0.0
  268150. .IP \(bu 2
  268151. More gracefully handle improperly quoted publish commands (\fI\%issue #5958\fP)
  268152. .IP \(bu 2
  268153. Fixed traceback when timeout specified via the CLI fo \fBpublish.publish\fP, \fBpublish.full_data\fP (\fI\%issue #5959\fP)
  268154. .IP \(bu 2
  268155. Fixed unintended change in output of \fBpublish.publish\fP (\fI\%issue #5928\fP)
  268156. .UNINDENT
  268157. .SS Minion
  268158. .INDENT 0.0
  268159. .IP \(bu 2
  268160. Fixed salt\-key usage in minionswarm script
  268161. .IP \(bu 2
  268162. Quieted warning about \fBSALT_MINION_CONFIG\fP environment variable on
  268163. minion startup and for CLI commands run via \fBsalt\-call\fP (\fI\%issue #5956\fP)
  268164. .IP \(bu 2
  268165. Added minion config parameter \fBrandom_reauth_delay\fP to stagger
  268166. re\-auth attempts when the minion is waiting for the master to approve its
  268167. public key. This helps prevent SYN flooding in larger environments.
  268168. .UNINDENT
  268169. .SS User/Group Management
  268170. .INDENT 0.0
  268171. .IP \(bu 2
  268172. Implement previously\-ignored \fBunique\fP option for \fBuser.present\fP states in FreeBSD
  268173. .IP \(bu 2
  268174. Report in state output when a \fBgroup.present\fP state attempts to use a gid in use by another
  268175. group
  268176. .IP \(bu 2
  268177. Fixed regression that prevents a \fBuser.present\fP state to set the password hash to the system
  268178. default (i.e. an unset password)
  268179. .IP \(bu 2
  268180. Fixed multiple \fBgroup.present\fP states with
  268181. the same group (\fI\%issue #6439\fP)
  268182. .UNINDENT
  268183. .SS File Management
  268184. .INDENT 0.0
  268185. .IP \(bu 2
  268186. Fixed file.mkdir setting incorrect permissions (\fI\%issue #6033\fP)
  268187. .IP \(bu 2
  268188. Fixed cleanup of source files for templates when \fB/tmp\fP is in file_roots
  268189. (\fI\%issue #6118\fP)
  268190. .IP \(bu 2
  268191. Fixed caching of zero\-byte files when a non\-empty file was previously cached
  268192. at the same path
  268193. .IP \(bu 2
  268194. Added HTTP authentication support to the cp module (\fI\%issue #5641\fP)
  268195. .IP \(bu 2
  268196. Diffs are now suppressed when binary files are changed
  268197. .UNINDENT
  268198. .SS Package/Repository Management
  268199. .INDENT 0.0
  268200. .IP \(bu 2
  268201. Fixed traceback when there is only one target for \fBpkg.latest\fP states
  268202. .IP \(bu 2
  268203. Fixed regression in detection of virtual packages (apt)
  268204. .IP \(bu 2
  268205. Limit number of pkg database refreshes to once per \fBstate.sls\fP/\fBstate.highstate\fP
  268206. .IP \(bu 2
  268207. YUM: Allow 32\-bit packages with arches other than i686 to be managed on
  268208. 64\-bit systems (\fI\%issue #6299\fP)
  268209. .IP \(bu 2
  268210. Fixed incorrect reporting in pkgrepo.managed states (\fI\%issue #5517\fP)
  268211. .IP \(bu 2
  268212. Fixed 32\-bit binary package installs on 64\-bit RHEL\-based distros, and added
  268213. proper support for 32\-bit packages on 64\-bit Debian\-based distros
  268214. (\fI\%issue #6303\fP)
  268215. .IP \(bu 2
  268216. Fixed issue where requisites were inadvertently being put into YUM repo files
  268217. (\fI\%issue #6471\fP)
  268218. .UNINDENT
  268219. .SS Service Management
  268220. .INDENT 0.0
  268221. .IP \(bu 2
  268222. Fixed inaccurate reporting of results in \fBservice.running\fP states when the service fails to start
  268223. (\fI\%issue #5894\fP)
  268224. .IP \(bu 2
  268225. Fixed handling of custom initscripts in RHEL\-based distros so that they are
  268226. immediately available, negating the need for a second state run to manage the
  268227. service that the initscript controls
  268228. .UNINDENT
  268229. .SS Networking
  268230. .INDENT 0.0
  268231. .IP \(bu 2
  268232. Function network.hwaddr renamed to \fBnetwork.hw_addr\fP to match \fBnetwork.ip_addrs\fP and \fBnetwork.ip_addrs6\fP\&. All three functions also now work without
  268233. the underscore in the name, as well.
  268234. .IP \(bu 2
  268235. Fixed traceback in \fBbridge.show\fP when
  268236. interface is not present (\fI\%issue #6326\fP)
  268237. .UNINDENT
  268238. .SS SSH
  268239. .INDENT 0.0
  268240. .IP \(bu 2
  268241. Fixed incorrect result reporting for some \fBssh_known_hosts.present\fP states
  268242. .IP \(bu 2
  268243. Fixed inaccurate reporting when \fBssh_auth.present\fP states are run with \fBtest=True\fP, when
  268244. rsa/dss is used for the \fBenc\fP param instead of ssh\-rsa/ssh\-dss
  268245. (\fI\%issue #5374\fP)
  268246. .UNINDENT
  268247. .SS pip
  268248. .INDENT 0.0
  268249. .IP \(bu 2
  268250. Properly handle \fB\-f\fP lines in pip freeze output
  268251. .IP \(bu 2
  268252. Fixed regression in pip.installed states with specifying a requirements file
  268253. (\fI\%issue #6003\fP)
  268254. .IP \(bu 2
  268255. Fixed use of \fBeditable\fP argument in \fBpip.installed\fP states (\fI\%issue #6025\fP)
  268256. .IP \(bu 2
  268257. Deprecated \fBrunas\fP parameter in execution function calls, in favor of
  268258. \fBuser\fP
  268259. .UNINDENT
  268260. .SS MySQL
  268261. .INDENT 0.0
  268262. .IP \(bu 2
  268263. Allow specification of \fBMySQL\fP
  268264. connection arguments via the CLI, overriding/bypassing minion config params
  268265. .IP \(bu 2
  268266. Allow \fBmysql_user.present\fP states to
  268267. set a passwordless login (\fI\%issue #5550\fP)
  268268. .IP \(bu 2
  268269. Fixed endless loop when \fBmysql.processlist\fP is run (\fI\%issue #6297\fP)
  268270. .UNINDENT
  268271. .SS PostgreSQL
  268272. .INDENT 0.0
  268273. .IP \(bu 2
  268274. Fixed traceback in \fBpostgres.user_list\fP (\fI\%issue #6352\fP)
  268275. .UNINDENT
  268276. .SS Miscellaneous
  268277. .INDENT 0.0
  268278. .IP \(bu 2
  268279. Don\(aqt allow \fBnpm states\fP to be used if
  268280. \fBnpm module\fP is not available
  268281. .IP \(bu 2
  268282. Fixed \fBalternatives.install\fP states
  268283. for which the target is a symlink (\fI\%issue #6162\fP)
  268284. .IP \(bu 2
  268285. Fixed traceback in \fBsysbench module\fP (\fI\%issue #6175\fP)
  268286. .IP \(bu 2
  268287. Fixed traceback in job cache
  268288. .IP \(bu 2
  268289. Fixed tempfile cleanup for windows
  268290. .IP \(bu 2
  268291. Fixed issue where SLS files using the \fBpydsl renderer\fP were not being run
  268292. .IP \(bu 2
  268293. Fixed issue where returners were being passed incorrect information
  268294. (\fI\%issue #5518\fP)
  268295. .IP \(bu 2
  268296. Fixed traceback when numeric args are passed to \fBcmd.script\fP states
  268297. .IP \(bu 2
  268298. Fixed bug causing \fBcp.get_dir\fP to return more
  268299. directories than expected (\fI\%issue #6048\fP)
  268300. .IP \(bu 2
  268301. Fixed traceback when \fBsupervisord.running\fP states are run with \fBtest=True\fP
  268302. (\fI\%issue #6053\fP)
  268303. .IP \(bu 2
  268304. Fixed tracebacks when Salt encounters problems running rbenv (\fI\%issue #5888\fP)
  268305. .IP \(bu 2
  268306. Only make the \fBmonit module\fP
  268307. available if monit binary is present (\fI\%issue #5871\fP)
  268308. .IP \(bu 2
  268309. Fixed incorrect behavior of \fBimg.mount_image\fP
  268310. .IP \(bu 2
  268311. Fixed traceback in \fBtomcat.deploy_war\fP
  268312. in Windows
  268313. .IP \(bu 2
  268314. Don\(aqt re\-write /etc/fstab if mount fails
  268315. .IP \(bu 2
  268316. Fixed tracebacks when Salt encounters problems running gem (\fI\%issue #5886\fP)
  268317. .IP \(bu 2
  268318. Fixed incorrect behavior of \fBselinux.boolean\fP states (\fI\%issue #5912\fP)
  268319. .IP \(bu 2
  268320. \fBRabbitMQ\fP: Quote passwords to
  268321. avoid symbols being interpolated by the shell (\fI\%issue #6338\fP)
  268322. .IP \(bu 2
  268323. Fixed tracebacks in \fBextfs.mkfs\fP and
  268324. \fBextfs.tune\fP (\fI\%issue #6462\fP)
  268325. .IP \(bu 2
  268326. Fixed a regression with the \fBmodule.run\fP state
  268327. where the \fBm_name\fP and \fBm_fun\fP arguments were being ignored (\fI\%issue #6464\fP)
  268328. .UNINDENT
  268329. .SS Salt 0.16.3 Release Notes
  268330. .INDENT 0.0
  268331. .TP
  268332. .B release
  268333. 2013\-08\-09
  268334. .UNINDENT
  268335. .sp
  268336. Version 0.16.3 is another bugfix release for 0.16.0\&. The changes include:
  268337. .INDENT 0.0
  268338. .IP \(bu 2
  268339. Various documentation fixes
  268340. .IP \(bu 2
  268341. Fix proc directory regression (\fI\%issue #6502\fP)
  268342. .IP \(bu 2
  268343. Properly detect \fI\%Linaro\fP Linux (\fI\%issue #6496\fP)
  268344. .IP \(bu 2
  268345. Fix regressions in \fBmount.mounted\fP
  268346. (\fI\%issue #6522\fP, \fI\%issue #6545\fP)
  268347. .IP \(bu 2
  268348. Skip malformed state requisites (\fI\%issue #6521\fP)
  268349. .IP \(bu 2
  268350. Fix regression in gitfs from bad import
  268351. .IP \(bu 2
  268352. Fix for watching prereq states (including recursive requisite error)
  268353. (\fI\%issue #6057\fP)
  268354. .IP \(bu 2
  268355. Fix mod_watch not overriding prereq (\fI\%issue #6520\fP)
  268356. .IP \(bu 2
  268357. Don\(aqt allow functions which compile states to be called within states
  268358. (\fI\%issue #5623\fP)
  268359. .IP \(bu 2
  268360. Return error for malformed top.sls (\fI\%issue #6544\fP)
  268361. .IP \(bu 2
  268362. Fix traceback in \fBmysql.query\fP
  268363. .IP \(bu 2
  268364. Fix regression in binary package installation for 64\-bit packages
  268365. on Debian\-based Linux distros (\fI\%issue #6563\fP)
  268366. .IP \(bu 2
  268367. Fix traceback caused by running \fBcp.push\fP without
  268368. having set \fBfile_recv\fP in the master config file
  268369. .IP \(bu 2
  268370. Fix scheduler configuration in pillar (\fI\%issue #6201\fP)
  268371. .UNINDENT
  268372. .SS Salt 0.16.4 Release Notes
  268373. .INDENT 0.0
  268374. .TP
  268375. .B release
  268376. 2013\-09\-07
  268377. .UNINDENT
  268378. .sp
  268379. Version 0.16.4 is another bugfix release for 0.16.0, likely to be the last before 0.17.0 is released.
  268380. The changes include:
  268381. .INDENT 0.0
  268382. .IP \(bu 2
  268383. Multiple documentation improvements/additions
  268384. .IP \(bu 2
  268385. Added the \fBosfinger\fP and \fBosarch\fP grains
  268386. .IP \(bu 2
  268387. Properly handle 32\-bit packages for debian32 on x86_64 (\fI\%issue #6607\fP)
  268388. .IP \(bu 2
  268389. Fix regression in yum package installation in CentOS 5 (\fI\%issue #6677\fP)
  268390. .IP \(bu 2
  268391. Fix bug in \fBhg.latest\fP state that would
  268392. erroneously delete directories (\fI\%issue #6661\fP)
  268393. .IP \(bu 2
  268394. Fix bug related to pid not existing for \fBps.top\fP
  268395. (\fI\%issue #6679\fP)
  268396. .IP \(bu 2
  268397. Fix regression in \fBMySQL returner\fP
  268398. (\fI\%issue #6695\fP)
  268399. .IP \(bu 2
  268400. Fix IP addresses grains (\fBipv4\fP and \fBipv6\fP) to include all addresses
  268401. (\fI\%issue #6656\fP)
  268402. .IP \(bu 2
  268403. Fix regression preventing authenticated FTP (\fI\%issue #6733\fP)
  268404. .IP \(bu 2
  268405. Fix setting password for windows users (\fI\%issue #6824\fP)
  268406. .IP \(bu 2
  268407. Fix \fBfile.contains\fP on values YAML parses
  268408. as non\-string (\fI\%issue #6817\fP)
  268409. .IP \(bu 2
  268410. Fix \fBfile.get_gid\fP, \fBfile.get_uid\fP, and \fBfile.chown\fP
  268411. for broken symlinks (\fI\%issue #6826\fP)
  268412. .IP \(bu 2
  268413. Fix comment for service reloads in service state (\fI\%issue #6851\fP)
  268414. .UNINDENT
  268415. .SS Salt 0.17.0 Release Notes
  268416. .INDENT 0.0
  268417. .TP
  268418. .B release
  268419. 2013\-09\-26
  268420. .UNINDENT
  268421. .sp
  268422. The 0.17.0 release is a very exciting release of Salt, this brings to Salt
  268423. some very powerful new features and advances. The advances range from the
  268424. state system to the test suite, covering new transport capabilities and
  268425. making states easier and more powerful, to extending Salt Virt and much more!
  268426. .sp
  268427. The 0.17.0 release will also be the last release of Salt to follow the old
  268428. 0.XX.X numbering system, the next release of Salt will change the numbering to
  268429. be date based following this format:
  268430. .sp
  268431. <Year>.<Month>.<Minor>
  268432. .sp
  268433. So if the release happens in November of 2013 the number will be 13.11.0, the
  268434. first bugfix release will be 13.11.1 and so forth.
  268435. .SS Major Features
  268436. .SS Halite
  268437. .sp
  268438. The new Halite web GUI is now available on PyPI. A great deal of work has
  268439. been put into Halite to make it fully event driven and amazingly fast. The
  268440. Halite UI can be started from within the Salt Master (after being installed
  268441. from PyPI), or standalone, and does not require an external database to run.
  268442. It is very lightweight!
  268443. .sp
  268444. This initial release of Halite is primarily the framework for the UI and the
  268445. communication systems, making it easy to extend and build the UI up. It
  268446. presently supports watching the event bus and firing commands over Salt.
  268447. .sp
  268448. At this time, Halite is not available as a package, but installation
  268449. documentation is available at:
  268450. \fI\%http://docs.saltstack.com/topics/tutorials/halite.html\fP
  268451. .sp
  268452. Halite is, like the rest of Salt, Open Source!
  268453. .sp
  268454. Much more will be coming in the future of Halite!
  268455. .SS Salt SSH
  268456. .sp
  268457. The new \fBsalt\-ssh\fP command has been added to Salt. This system allows for
  268458. remote execution and states to be run over ssh. The benefit here being, that
  268459. salt can run relying only on the ssh agent, rather than requiring a minion
  268460. to be deployed.
  268461. .sp
  268462. The \fBsalt\-ssh\fP system runs states in a compatible way as Salt and states
  268463. created and run with salt\-ssh can be moved over to a standard salt deployment
  268464. without modification.
  268465. .sp
  268466. Since this is the initial release of salt\-ssh, there is plenty of room for
  268467. improvement, but it is fully operational, not just a bootstrap tool.
  268468. .SS Rosters
  268469. .sp
  268470. Salt is designed to have the minions be aware of the master and the master does
  268471. not need to be aware of the location of the minions. The new salt roster system
  268472. was created and designed to facilitate listing the targets for salt\-ssh.
  268473. .sp
  268474. The roster system, like most of Salt, is a plugin system, allowing for the list
  268475. of systems to target to be derived from any pluggable backend. The rosters
  268476. shipping with 0.17.0 are flat and scan. Flat is a file which is read in via the
  268477. salt render system and the scan roster does simple network scanning to discover
  268478. ssh servers.
  268479. .SS State Auto Order
  268480. .sp
  268481. This is a major change in how states are evaluated in Salt. State Auto Order
  268482. is a new feature that makes states get evaluated and executed in the order in
  268483. which they are defined in the sls file. This feature makes it very easy to
  268484. see the finite order in which things will be executed, making Salt now, fully
  268485. imperative AND fully declarative.
  268486. .sp
  268487. The requisite system still takes precedence over the order in which states are
  268488. defined, so no existing states should break with this change. But this new
  268489. feature can be turned off by setting \fBstate_auto_order: False\fP in the master
  268490. config, thus reverting to the old lexicographical order.
  268491. .SS state.sls Runner
  268492. .sp
  268493. The \fBstate.sls\fP runner has been created to allow for a more powerful system
  268494. for orchestrating state runs and function calls across the salt minions. This
  268495. new system uses the state system for organizing executions.
  268496. .sp
  268497. This allows for states to be defined that are executed on the master to call
  268498. states on minions via \fBsalt\-run state.sls\fP\&.
  268499. .SS Salt Thin
  268500. .sp
  268501. Salt Thin is an exciting new component of Salt, this is the ability to execute
  268502. Salt routines without any transport mechanisms installed, it is a pure python
  268503. subset of Salt.
  268504. .sp
  268505. Salt Thin does not have any networking capability, but can be dropped into any
  268506. system with Python installed and then \fBsalt\-call\fP can be called directly. The
  268507. Salt Thin system, is used by the \fBsalt\-ssh\fP command, but can still be used to
  268508. just drop salt somewhere for easy use.
  268509. .SS Event Namespacing
  268510. .sp
  268511. Events have been updated to be much more flexible. The tags in events have all
  268512. been namespaced allowing easier tracking of event names.
  268513. .SS Mercurial Fileserver Backend
  268514. .sp
  268515. The popular git fileserver backend has been joined by the mercurial fileserver
  268516. backend, allowing the state tree to be managed entirely via mercurial.
  268517. .SS External Logging Handlers
  268518. .sp
  268519. The external logging handler system allows for Salt to directly hook into any
  268520. external logging system. Currently supported are sentry and logstash.
  268521. .SS Jenkins Testing
  268522. .sp
  268523. The testing systems in Salt have been greatly enhanced, tests for salt are now
  268524. executed, via jenkins.saltstack.com, across many supported platforms. Jenkins
  268525. calls out to salt\-cloud to create virtual machines on Rackspace, then the
  268526. minion on the virtual machine checks into the master running on Jenkins where
  268527. a state run is executed that sets up the minion to run tests and executes the
  268528. test suite.
  268529. .sp
  268530. This now automates the sequence of running platform tests and allows for
  268531. continuous destructive tests to be run.
  268532. .SS Salt Testing Project
  268533. .sp
  268534. The testing libraries for salt have been moved out of the main salt code base
  268535. and into a standalone codebase. This has been done to ease the use of the
  268536. testing systems being used in salt based projects other than Salt itself.
  268537. .SS StormPath External Authentication
  268538. .sp
  268539. The external auth system now supports the fantastic Stormpath cloud based
  268540. authentication system.
  268541. .SS LXC Support
  268542. .sp
  268543. Extensive additions have been added to Salt for LXC support. This included
  268544. the backend libs for managing LXC containers. Addition into the salt\-virt
  268545. system is still in the works.
  268546. .SS macOS User/Group Support
  268547. .sp
  268548. Salt is now able to manage users and groups on Minions running macOS.
  268549. However, at this time user passwords cannot be managed.
  268550. .SS Django ORM External Pillar
  268551. .sp
  268552. Pillar data can now be derived from Django managed databases.
  268553. .SS Fixes from RC to release
  268554. .INDENT 0.0
  268555. .IP \(bu 2
  268556. Multiple documentation fixes
  268557. .IP \(bu 2
  268558. Add multiple source files + templating for \fBfile.append\fP (\fI\%issue #6905\fP)
  268559. .IP \(bu 2
  268560. Support sysctl configuration files in systemd>=207 (\fI\%issue #7351\fP)
  268561. .IP \(bu 2
  268562. Add \fBfile.search\fP and \fBfile.replace\fP
  268563. .IP \(bu 2
  268564. Fix cross\-calling execution functions in provider overrides
  268565. .IP \(bu 2
  268566. Fix locale override for postgres (\fI\%issue #4543\fP)
  268567. .IP \(bu 2
  268568. Fix Raspbian identification for service/pkg support (\fI\%issue #7371\fP)
  268569. .IP \(bu 2
  268570. Fix \fBcp.push\fP file corruption (\fI\%issue #6495\fP)
  268571. .IP \(bu 2
  268572. Fix ALT Linux password hash specification (\fI\%issue #3474\fP)
  268573. .IP \(bu 2
  268574. Multiple salt\-ssh\-related fixes and improvements
  268575. .UNINDENT
  268576. .SS Salt 0.17.1 Release Notes
  268577. .INDENT 0.0
  268578. .TP
  268579. .B release
  268580. 2013\-10\-17
  268581. .UNINDENT
  268582. .sp
  268583. \fBNOTE:\fP
  268584. .INDENT 0.0
  268585. .INDENT 3.5
  268586. THIS RELEASE IS NOT COMPATIBLE WITH PREVIOUS VERSIONS. If you update your
  268587. master to 0.17.1, you must update your minions as well. Sorry for the
  268588. inconvenience \-\- this is a result of one of the security fixes listed
  268589. below.
  268590. .UNINDENT
  268591. .UNINDENT
  268592. .sp
  268593. The 0.17.1 release comes with a number of improvements to salt\-ssh, many
  268594. bugfixes, and a number of security updates.
  268595. .sp
  268596. Salt SSH has been improved to be faster, more featureful and more secure.
  268597. Since the original release of Salt SSH was primarily a proof of concept, it has
  268598. been very exciting to see its rapid adoption. We appreciate the willingness of
  268599. security experts to review Salt SSH and help discover oversights and ensure
  268600. that security issues only exist for such a tiny window of time.
  268601. .SS SSH Enhancements
  268602. .SS Shell Improvements
  268603. .sp
  268604. Improvements to Salt SSH\(aqs communication have been added that improve routine
  268605. execution regardless of the target system\(aqs login shell.
  268606. .SS Performance
  268607. .sp
  268608. Deployment of routines is now faster and takes fewer commands to execute.
  268609. .SS Security Updates
  268610. .sp
  268611. Be advised that these security issues all apply to a small subset of Salt
  268612. users and mostly apply to Salt SSH.
  268613. .SS Insufficient Argument Validation
  268614. .sp
  268615. This issue allowed for a user with limited privileges to embed executions
  268616. inside of routines to execute routines that should be restricted. This applies
  268617. to users using external auth or client ACL and opening up specific routines.
  268618. .sp
  268619. Be advised that these patches address the direct issue. Additional commits have
  268620. been applied to help mitigate this issue from resurfacing.
  268621. .SS CVE
  268622. .sp
  268623. CVE\-2013\-4435
  268624. .SS Affected Versions
  268625. .sp
  268626. 0.15.0 \- 0.17.0
  268627. .SS Patches
  268628. .sp
  268629. \fI\%https://github.com/saltstack/salt/commit/6d8ef68b605fd63c36bb8ed96122a75ad2e80269\fP
  268630. \fI\%https://github.com/saltstack/salt/commit/ebdef37b7e5d2b95a01d34b211c61c61da67e46a\fP
  268631. \fI\%https://github.com/saltstack/salt/commit/7f190ff890e47cdd591d9d7cefa5126574660824\fP
  268632. \fI\%https://github.com/saltstack/salt/commit/8e5afe59cef6743fe5dbd510dcf463dbdfca1ced\fP
  268633. \fI\%https://github.com/saltstack/salt/commit/aca78f314481082862e96d4f0c1b75fa382bb885\fP
  268634. \fI\%https://github.com/saltstack/salt/commit/6a9752cdb1e8df2c9505ea910434c79d132eb1e2\fP
  268635. \fI\%https://github.com/saltstack/salt/commit/b73677435ba54ecfc93c1c2d840a7f9ba6f53410\fP
  268636. \fI\%https://github.com/saltstack/salt/commit/07972eb0a6f985749a55d8d4a2e471596591c80d\fP
  268637. \fI\%https://github.com/saltstack/salt/commit/1e3f197726aa13ac5c3f2416000089f477f489b5\fP
  268638. .SS Found By
  268639. .sp
  268640. Feth Arezki, of Majerti
  268641. .SS MITM SSH attack in salt\-ssh
  268642. .sp
  268643. SSH host keys were being accepted by default and not enforced on future SSH
  268644. connections. These patches set SSH host key checking by default and can be
  268645. overridden by passing the \-i flag to \fIsalt\-ssh\fP\&.
  268646. .SS CVE
  268647. .sp
  268648. CVE\-2013\-4436
  268649. .SS Affected Versions
  268650. .sp
  268651. 0.17.0
  268652. .SS Found By
  268653. .sp
  268654. Michael Scherer, Red Hat
  268655. .SS Insecure Usage of /tmp in salt\-ssh
  268656. .sp
  268657. The initial release of salt\-ssh used the /tmp directory in an insecure way.
  268658. These patches not only secure usage of files under /tmp in salt\-ssh, but
  268659. also add checksum validation for all packages sent into the now secure
  268660. locations on target systems.
  268661. .SS CVE
  268662. .sp
  268663. CVE\-2013\-4438
  268664. .SS Affected Versions
  268665. .sp
  268666. 0.17.0
  268667. .SS Patches
  268668. .sp
  268669. \fI\%https://github.com/saltstack/salt/commit/aa4bb77ef230758cad84381dde0ec660d2dc340a\fP
  268670. \fI\%https://github.com/saltstack/salt/commit/8f92b6b2cb2e4ec3af8783eb6bf4ff06f5a352cf\fP
  268671. \fI\%https://github.com/saltstack/salt/commit/c58e56811d5a50c908df0597a0ba0b643b45ebfd\fP
  268672. \fI\%https://github.com/saltstack/salt/commit/0359db9b46e47614cff35a66ea6a6a76846885d2\fP
  268673. \fI\%https://github.com/saltstack/salt/commit/4348392860e0fd43701c331ac3e681cf1a8c17b0\fP
  268674. \fI\%https://github.com/saltstack/salt/commit/664d1a1cac05602fad2693f6f97092d98a72bf61\fP
  268675. \fI\%https://github.com/saltstack/salt/commit/bab92775a576e28ff9db262f32db9cf2375bba87\fP
  268676. \fI\%https://github.com/saltstack/salt/commit/c6d34f1acf64900a3c87a2d37618ff414e5a704e\fP
  268677. .SS Found By
  268678. .sp
  268679. Michael Scherer, Red Hat
  268680. .SS YAML Calling Unsafe Loading Routine
  268681. .sp
  268682. It has been argued that this is not a valid security issue, as the YAML loading
  268683. that was happening was only being called after an initial gateway filter in
  268684. Salt has already safely loaded the YAML and would fail if non\-safe routines
  268685. were embedded. Nonetheless, the CVE was filed and patches applied.
  268686. .SS CVE
  268687. .sp
  268688. CVE\-2013\-4438
  268689. .SS Patches
  268690. .sp
  268691. \fI\%https://github.com/saltstack/salt/commit/339b0a51befae6b6b218ebcb55daa9cd3329a1c5\fP
  268692. .SS Found By
  268693. .sp
  268694. Michael Scherer, Red Hat
  268695. .SS Failure to Drop Supplementary Group on Salt Master
  268696. .sp
  268697. If a salt master was started as a non\-root user by the root user, root\(aqs
  268698. groups would still be applied to the running process. This fix changes the
  268699. process to have only the groups of the running user.
  268700. .SS CVE
  268701. .sp
  268702. CVE not considered necessary by submitter.
  268703. .SS Affected Versions
  268704. .sp
  268705. 0.11.0 \- 0.17.0
  268706. .SS Patches
  268707. .sp
  268708. \fI\%https://github.com/saltstack/salt/commit/b89fa9135822d029795ab1eecd68cce2d1ced715\fP
  268709. .SS Found By
  268710. .sp
  268711. Michael Scherer, Red Hat
  268712. .SS Failure to Validate Minions Posting Data
  268713. .sp
  268714. This issue allowed a minion to pose as another authorized minion when posting
  268715. data such as the mine data. All minions now pass through the id challenge
  268716. before posting such data.
  268717. .SS CVE
  268718. .sp
  268719. CVE\-2013\-4439
  268720. .SS Affected Versions
  268721. .sp
  268722. 0.15.0 \- 0.17.0
  268723. .SS Patches
  268724. .sp
  268725. \fI\%https://github.com/saltstack/salt/commit/7b850ff3d07ef6782888914ac4556c01e8a1c482\fP
  268726. \fI\%https://github.com/saltstack/salt/commit/151759b2a1e1c6ce29277aa81b054219147f80fd\fP
  268727. .SS Found By
  268728. .sp
  268729. David Anderson
  268730. .SS Fix Reference
  268731. .sp
  268732. Version 0.17.1 is the first bugfix release for 0.17.0\&. The changes include:
  268733. .INDENT 0.0
  268734. .IP \(bu 2
  268735. Fix symbolic links in thin.tgz (\fI\%issue #7482\fP)
  268736. .IP \(bu 2
  268737. Pass env through to file.patch state (\fI\%issue #7452\fP)
  268738. .IP \(bu 2
  268739. Service provider fixes and reporting improvements (\fI\%issue #7361\fP)
  268740. .IP \(bu 2
  268741. Add \fB\-\-priv\fP option for specifying salt\-ssh private key
  268742. .IP \(bu 2
  268743. Fix salt\-thin\(aqs salt\-call on setuptools installations (\fI\%issue #7516\fP)
  268744. .IP \(bu 2
  268745. Fix salt\-ssh to support passwords with spaces (\fI\%issue #7480\fP)
  268746. .IP \(bu 2
  268747. Fix regression in wildcard includes (\fI\%issue #7455\fP)
  268748. .IP \(bu 2
  268749. Fix salt\-call outputter regression (\fI\%issue #7456\fP)
  268750. .IP \(bu 2
  268751. Fix custom returner support for startup states (\fI\%issue #7540\fP)
  268752. .IP \(bu 2
  268753. Fix value handling in augeas (\fI\%issue #7605\fP)
  268754. .IP \(bu 2
  268755. Fix regression in apt (\fI\%issue #7624\fP)
  268756. .IP \(bu 2
  268757. Fix minion ID guessing to use \fBsocket.getfqdn()\fP first (\fI\%issue #7558\fP)
  268758. .IP \(bu 2
  268759. Add minion ID caching (\fI\%issue #7558\fP)
  268760. .IP \(bu 2
  268761. Fix salt\-key race condition (\fI\%issue #7304\fP)
  268762. .IP \(bu 2
  268763. Add \fB\-\-include\-all\fP flag to salt\-key (\fI\%issue #7399\fP)
  268764. .IP \(bu 2
  268765. Fix custom grains in pillar (part of \fI\%issue #5716\fP, \fI\%issue #6083\fP)
  268766. .IP \(bu 2
  268767. Fix race condition in salt\-key (\fI\%issue #7304\fP)
  268768. .IP \(bu 2
  268769. Fix regression in minion ID guessing, prioritize \fBsocket.getfqdn()\fP
  268770. (\fI\%issue #7558\fP)
  268771. .IP \(bu 2
  268772. Cache minion ID on first guess (\fI\%issue #7558\fP)
  268773. .IP \(bu 2
  268774. Allow trailing slash in \fBfile.directory\fP state
  268775. .IP \(bu 2
  268776. Fix reporting of file_roots in pillar return (\fI\%issue #5449\fP and
  268777. \fI\%issue #5951\fP)
  268778. .IP \(bu 2
  268779. Remove pillar matching for mine.get (\fI\%issue #7197\fP)
  268780. .IP \(bu 2
  268781. Sanitize args for multiple execution modules
  268782. .IP \(bu 2
  268783. Fix yumpkg mod_repo functions to filter hidden args (\fI\%issue #7656\fP)
  268784. .IP \(bu 2
  268785. Fix conflicting IDs in state includes (\fI\%issue #7526\fP)
  268786. .IP \(bu 2
  268787. Fix mysql_grants.absent string formatting issue (\fI\%issue #7827\fP)
  268788. .IP \(bu 2
  268789. Fix postgres.version so it won\(aqt return None (\fI\%issue #7695\fP)
  268790. .IP \(bu 2
  268791. Fix for trailing slashes in mount.mounted state
  268792. .IP \(bu 2
  268793. Fix rogue AttributErrors in the outputter system (\fI\%issue #7845\fP)
  268794. .IP \(bu 2
  268795. Fix for incorrect ssh key encodings resulting in incorrect key added
  268796. (\fI\%issue #7718\fP)
  268797. .IP \(bu 2
  268798. Fix for pillar/grains naming regression in python renderer (\fI\%issue #7693\fP)
  268799. .IP \(bu 2
  268800. Fix args/kwargs handling in the scheduler (\fI\%issue #7422\fP)
  268801. .IP \(bu 2
  268802. Fix logfile handling for \fIfile://\fP, \fItcp://\fP, and \fIudp://\fP (\fI\%issue #7754\fP)
  268803. .IP \(bu 2
  268804. Fix error handling in config file parsing (\fI\%issue #6714\fP)
  268805. .IP \(bu 2
  268806. Fix RVM using sudo when running as non\-root user (\fI\%issue #2193\fP)
  268807. .IP \(bu 2
  268808. Fix client ACL and underlying logging bugs (\fI\%issue #7706\fP)
  268809. .IP \(bu 2
  268810. Fix scheduler bug with returner (\fI\%issue #7367\fP)
  268811. .IP \(bu 2
  268812. Fix user management bug related to default groups (\fI\%issue #7690\fP)
  268813. .IP \(bu 2
  268814. Fix various salt\-ssh bugs (\fI\%issue #7528\fP)
  268815. .IP \(bu 2
  268816. Many various documentation fixes
  268817. .UNINDENT
  268818. .SS Salt 0.17.2 Release Notes
  268819. .INDENT 0.0
  268820. .TP
  268821. .B release
  268822. 2013\-11\-14
  268823. .UNINDENT
  268824. .sp
  268825. Version 0.17.2 is another bugfix release for 0.17.0\&. The changes include:
  268826. .INDENT 0.0
  268827. .IP \(bu 2
  268828. Add ability to delete key with grains.delval (\fI\%issue #7872\fP)
  268829. .IP \(bu 2
  268830. Fix possible state compiler stack trace (\fI\%issue #5767\fP)
  268831. .IP \(bu 2
  268832. Fix architecture regression in yumpkg (\fI\%issue #7813\fP)
  268833. .IP \(bu 2
  268834. Use correct \fBps\fP on Debian to prevent truncating (\fI\%issue #5646\fP)
  268835. .IP \(bu 2
  268836. Fix grains targeting for new grains (\fI\%issue #5737\fP)
  268837. .IP \(bu 2
  268838. Fix bug with merging in git_pillar (\fI\%issue #6992\fP)
  268839. .IP \(bu 2
  268840. Fix print_jobs duplicate results
  268841. .IP \(bu 2
  268842. Fix apt version specification for pkg.install
  268843. .IP \(bu 2
  268844. Fix possible KeyError from ext_job_cache missing option
  268845. .IP \(bu 2
  268846. Fix auto_order for \fB\- names\fP states (\fI\%issue #7649\fP)
  268847. .IP \(bu 2
  268848. Fix regression in new gitfs installs (directory not found error)
  268849. .IP \(bu 2
  268850. Fix escape pipe issue on Windows for file.recurse (\fI\%issue #7967\fP)
  268851. .IP \(bu 2
  268852. Fix fileclient in case of master restart (\fI\%issue #7987\fP)
  268853. .IP \(bu 2
  268854. Try to output warning if CLI command malformed (\fI\%issue #6538\fP)
  268855. .IP \(bu 2
  268856. Fix \fB\-\-out=quiet\fP to actually be quiet (\fI\%issue #8000\fP)
  268857. .IP \(bu 2
  268858. Fix for state.sls in salt\-ssh (\fI\%issue #7991\fP)
  268859. .IP \(bu 2
  268860. Fix for MySQL grants ordering issue (\fI\%issue #5817\fP)
  268861. .IP \(bu 2
  268862. Fix traceback for certain missing CLI args (\fI\%issue #8016\fP)
  268863. .IP \(bu 2
  268864. Add ability to disable lspci queries on master (\fI\%issue #4906\fP)
  268865. .IP \(bu 2
  268866. Fail if sls defined in topfile does not exist (\fI\%issue #5998\fP)
  268867. .IP \(bu 2
  268868. Add ability to downgrade MySQL grants (\fI\%issue #6606\fP)
  268869. .IP \(bu 2
  268870. Fix ssh_auth.absent traceback (\fI\%issue #8043\fP)
  268871. .IP \(bu 2
  268872. Add upstart detection for Debian/Raspbian (\fI\%issue #8039\fP)
  268873. .IP \(bu 2
  268874. Fix ID\-related issues (\fI\%issue #8052\fP, \fI\%issue #8050\fP, and others)
  268875. .IP \(bu 2
  268876. Fix for jinja rendering issues (\fI\%issue #8066\fP and \fI\%issue #8079\fP)
  268877. .IP \(bu 2
  268878. Fix argument parsing in salt\-ssh (\fI\%issue #7928\fP)
  268879. .IP \(bu 2
  268880. Fix some GPU detection instances (\fI\%issue #6945\fP)
  268881. .IP \(bu 2
  268882. Fix bug preventing includes from other environments in SLS files
  268883. .IP \(bu 2
  268884. Fix for kwargs with dashes (\fI\%issue #8102\fP)
  268885. .IP \(bu 2
  268886. Fix salt.utils.which for windows \(aq.exe\(aq (\fI\%issue #7904\fP)
  268887. .IP \(bu 2
  268888. Fix apache.adduser without apachectl (\fI\%issue #8123\fP)
  268889. .IP \(bu 2
  268890. Fix issue with evaluating \fBtest\fP kwarg in states (\fI\%issue #7788\fP)
  268891. .IP \(bu 2
  268892. Fix regression in \fBsalt.client.Caller()\fP (\fI\%issue #8078\fP)
  268893. .IP \(bu 2
  268894. Fix apt\-key silent failure
  268895. .IP \(bu 2
  268896. Fix bug where cmd.script would try to run even if caching failed (\fI\%issue #7601\fP)
  268897. .IP \(bu 2
  268898. Fix apt \fBpkg.latest\fP regression (\fI\%issue #8067\fP)
  268899. .IP \(bu 2
  268900. Fix for mine data not being updated (\fI\%issue #8144\fP)
  268901. .IP \(bu 2
  268902. Fix for noarch packages in yum
  268903. .IP \(bu 2
  268904. Fix a Xen detection edge case (\fI\%issue #7839\fP)
  268905. .IP \(bu 2
  268906. Fix windows \fB__opts__\fP dictionary persistence (\fI\%issue #7714\fP)
  268907. .IP \(bu 2
  268908. Fix version generation for when it\(aqs part of another git repo (\fI\%issue #8090\fP)
  268909. .IP \(bu 2
  268910. Fix _handle_iorder stacktrace so that the real syntax error is shown (\fI\%issue #8114\fP and \fI\%issue #7905\fP)
  268911. .IP \(bu 2
  268912. Fix \fBgit.latest\fP state when a commit SHA is used (\fI\%issue #8163\fP)
  268913. .IP \(bu 2
  268914. Fix various small bugs in yumpkg.py (\fI\%issue #8201\fP)
  268915. .IP \(bu 2
  268916. Fix for specifying identify file in git.latest (\fI\%issue #8094\fP)
  268917. .IP \(bu 2
  268918. Fix for \fB\-\-output\-file\fP CLI arg (\fI\%issue #8205\fP)
  268919. .IP \(bu 2
  268920. Add ability to specify shutdown time for system.shutdown (\fI\%issue #7833\fP)
  268921. .IP \(bu 2
  268922. Fix for salt version using non\-salt git repo info (\fI\%issue #8266\fP)
  268923. .IP \(bu 2
  268924. Add additional hints at impact of \fBpkgrepo\fP states when \fBtest=True\fP (\fI\%issue #8247\fP)
  268925. .IP \(bu 2
  268926. Fix for salt\-ssh files not being owned by root (\fI\%issue #8216\fP)
  268927. .IP \(bu 2
  268928. Fix retry logic and error handling in fileserver (related to \fI\%issue #7755\fP)
  268929. .IP \(bu 2
  268930. Fix file.replace with \fBtest=True\fP (\fI\%issue #8279\fP)
  268931. .IP \(bu 2
  268932. Add flag for limiting file traversal in fileserver (\fI\%issue #6928\fP)
  268933. .IP \(bu 2
  268934. Fix for extra mine processes (\fI\%issue #5729\fP)
  268935. .IP \(bu 2
  268936. Fix for unloading custom modules (\fI\%issue #7691\fP)
  268937. .IP \(bu 2
  268938. Fix for salt\-ssh opts (\fI\%issue #8005\fP and \fI\%issue #8271\fP)
  268939. .IP \(bu 2
  268940. Fix compound matcher for grains (\fI\%issue #7944\fP)
  268941. .IP \(bu 2
  268942. Improve error reporting in ebuild module (related to \fI\%issue #5393\fP)
  268943. .IP \(bu 2
  268944. Add \fBdir_mode\fP to \fBfile.managed\fP (\fI\%issue #7860\fP)
  268945. .IP \(bu 2
  268946. Improve traceroute support for FreeBSD and macOS (\fI\%issue #4927\fP)
  268947. .IP \(bu 2
  268948. Fix for matching minions under syndics (\fI\%issue #7671\fP)
  268949. .IP \(bu 2
  268950. Improve exception handling for missing ID (\fI\%issue #8259\fP)
  268951. .IP \(bu 2
  268952. Fix grain mismatch for ScientificLinux (\fI\%issue #8338\fP)
  268953. .IP \(bu 2
  268954. Add configuration option for minion_id_caching
  268955. .IP \(bu 2
  268956. Fix open mode auth errors (\fI\%issue #8402\fP)
  268957. .UNINDENT
  268958. .SS Salt 0.17.3 Release Notes
  268959. .INDENT 0.0
  268960. .TP
  268961. .B release
  268962. 2013\-12\-08
  268963. .UNINDENT
  268964. .sp
  268965. \fBNOTE:\fP
  268966. .INDENT 0.0
  268967. .INDENT 3.5
  268968. 0.17.3 had some regressions which were promptly fixed in the 0.17.4
  268969. release. Please use 0.17.4 instead.
  268970. .UNINDENT
  268971. .UNINDENT
  268972. .sp
  268973. Version 0.17.3 is another bugfix release for 0.17.0\&. The changes include:
  268974. .INDENT 0.0
  268975. .IP \(bu 2
  268976. Fix some jinja render errors (\fI\%issue #8418\fP)
  268977. .IP \(bu 2
  268978. Fix \fBfile.replace\fP state changing file ownership (\fI\%issue #8399\fP)
  268979. .IP \(bu 2
  268980. Fix state ordering with the PyDSL renderer (\fI\%issue #8446\fP)
  268981. .IP \(bu 2
  268982. Fix for new npm version (\fI\%issue #8517\fP)
  268983. .IP \(bu 2
  268984. Fix for pip state requiring \fBname\fP even with requirements file (\fI\%issue #8519\fP)
  268985. .IP \(bu 2
  268986. Fix yum logging to open terminals (\fI\%issue #3855\fP)
  268987. .IP \(bu 2
  268988. Add sane maxrunning defaults for scheduler (\fI\%issue #8563\fP)
  268989. .IP \(bu 2
  268990. Fix states duplicate key detection (\fI\%issue #8053\fP)
  268991. .IP \(bu 2
  268992. Fix SUSE patch level reporting (\fI\%issue #8428\fP)
  268993. .IP \(bu 2
  268994. Fix managed file creation umask (\fI\%issue #8590\fP)
  268995. .IP \(bu 2
  268996. Fix logstash exception (\fI\%issue #8635\fP)
  268997. .IP \(bu 2
  268998. Improve argument exception handling for salt command (\fI\%issue #8016\fP)
  268999. .IP \(bu 2
  269000. Fix pecl success reporting (\fI\%issue #8750\fP)
  269001. .IP \(bu 2
  269002. Fix launchctl module exceptions (\fI\%issue #8759\fP)
  269003. .IP \(bu 2
  269004. Fix argument order in pw_user module
  269005. .IP \(bu 2
  269006. Add warnings for failing grains (\fI\%issue #8690\fP)
  269007. .IP \(bu 2
  269008. Fix hgfs problems caused by connections left open (\fI\%issue #8811\fP and \fI\%issue #8810\fP)
  269009. .IP \(bu 2
  269010. Add Debian iptables default for iptables\-persistent package (\fI\%issue #8889\fP)
  269011. .IP \(bu 2
  269012. Fix installation of packages with dots in pkg name (\fI\%issue #8614\fP)
  269013. .IP \(bu 2
  269014. Fix noarch package installation on CentOS 6 (\fI\%issue #8945\fP)
  269015. .IP \(bu 2
  269016. Fix portage_config.enforce_nice_config (\fI\%issue #8252\fP)
  269017. .IP \(bu 2
  269018. Fix salt.util.copyfile umask usage (\fI\%issue #8590\fP)
  269019. .IP \(bu 2
  269020. Fix rescheduling of failed jobs (\fI\%issue #8941\fP)
  269021. .IP \(bu 2
  269022. Fix pkg on Amazon Linux (uses yumpkg5 now) (\fI\%issue #8226\fP)
  269023. .IP \(bu 2
  269024. Fix conflicting options in postgres module (\fI\%issue #8717\fP)
  269025. .IP \(bu 2
  269026. Fix ps modules for psutil >= 0.3.0 (\fI\%issue #7432\fP)
  269027. .IP \(bu 2
  269028. Fix postgres module to return False on failure (\fI\%issue #8778\fP)
  269029. .IP \(bu 2
  269030. Fix argument passing for args with pound signs (\fI\%issue #8585\fP)
  269031. .IP \(bu 2
  269032. Fix pid of salt CLi command showing in status.pid output (\fI\%issue #8720\fP)
  269033. .IP \(bu 2
  269034. Fix rvm to run gem as the correct user (\fI\%issue #8951\fP)
  269035. .IP \(bu 2
  269036. Fix namespace issue in win_file module (\fI\%issue #9060\fP)
  269037. .IP \(bu 2
  269038. Fix masterless state paths on windows (\fI\%issue #9021\fP)
  269039. .IP \(bu 2
  269040. Fix timeout option in master config (\fI\%issue #9040\fP)
  269041. .UNINDENT
  269042. .SS Salt 0.17.4 Release Notes
  269043. .INDENT 0.0
  269044. .TP
  269045. .B release
  269046. 2013\-12\-10
  269047. .UNINDENT
  269048. .sp
  269049. Version 0.17.4 is another bugfix release for 0.17.0\&. The changes include:
  269050. .INDENT 0.0
  269051. .IP \(bu 2
  269052. Fix file.replace bug when replacement str is numeric (\fI\%issue #9101\fP)
  269053. .IP \(bu 2
  269054. Fix regression in file.managed (\fI\%issue #9131\fP)
  269055. .IP \(bu 2
  269056. Prevent traceback when job is None. (\fI\%issue #9145\fP)
  269057. .UNINDENT
  269058. .SS Salt 0.17.5 Release Notes
  269059. .INDENT 0.0
  269060. .TP
  269061. .B release
  269062. 2014\-01\-27
  269063. .UNINDENT
  269064. .sp
  269065. Version 0.17.5 is another bugfix release for 0.17.0\&. The changes include:
  269066. .INDENT 0.0
  269067. .IP \(bu 2
  269068. Fix \fBuser.present\fP states with non\-string fullname (\fI\%issue #9085\fP)
  269069. .IP \(bu 2
  269070. Fix \fBvirt.init\fP return value on failure (\fI\%issue #6870\fP)
  269071. .IP \(bu 2
  269072. Fix reporting of \fBfile.blockreplace\fP state when \fBtest=True\fP
  269073. .IP \(bu 2
  269074. Fix \fBnetwork.interfaces\fP when used in cron (\fI\%issue #7990\fP)
  269075. .IP \(bu 2
  269076. Fix bug in pkgrepo when switching to/from mirrorlist\-based repo def (\fI\%issue #9121\fP)
  269077. .IP \(bu 2
  269078. Fix infinite recursion when cache file is corrupted
  269079. .IP \(bu 2
  269080. Add checking for rev and mirror/bare args in \fBgit.latest\fP (\fI\%issue #9107\fP)
  269081. .IP \(bu 2
  269082. Add \fBcmd.watch\fP alias (points to \fBcmd.wait\fP) (\fI\%issue #8612\fP)
  269083. .IP \(bu 2
  269084. Fix stacktrace when prereq is not formed as a list (\fI\%issue #8235\fP)
  269085. .IP \(bu 2
  269086. Fix stdin issue with lvdisplay command (\fI\%issue #9128\fP)
  269087. .IP \(bu 2
  269088. Add pre\-check function for range matcher (\fI\%issue #9236\fP)
  269089. .IP \(bu 2
  269090. Add exception handling for psutil for processes that go missing (\fI\%issue #9274\fP)
  269091. .IP \(bu 2
  269092. Allow \fB_in\fP requisites to match both on ID and name (\fI\%issue #9061\fP)
  269093. .IP \(bu 2
  269094. Fix multiple client timeout issues (\fI\%issue #7157\fP and \fI\%issue #9302\fP, probably others)
  269095. .IP \(bu 2
  269096. Fix \fBZMQError: Operation cannot be accomplished in current state\fP errors (\fI\%issue #6306\fP)
  269097. .IP \(bu 2
  269098. Multiple optimization in minion auth routines
  269099. .IP \(bu 2
  269100. Clarify logs for minion ID caching
  269101. .UNINDENT
  269102. .SS Salt 0.6.0 release notes
  269103. .sp
  269104. The Salt remote execution manager has reached initial functionality! Salt is a
  269105. management application which can be used to execute commands on remote sets of
  269106. servers.
  269107. .sp
  269108. The whole idea behind Salt is to create a system where a group of servers can
  269109. be remotely controlled from a single master, not only can commands be executed
  269110. on remote systems, but salt can also be used to gather information about your
  269111. server environment.
  269112. .sp
  269113. Unlike similar systems, like Func and MCollective, Salt is extremely simple to
  269114. setup and use, the entire application is contained in a single package, and the
  269115. master and minion daemons require no running dependencies in the way that Func
  269116. requires Certmaster and MCollective requires activeMQ.
  269117. .sp
  269118. Salt also manages authentication and encryption. Rather than using SSL for
  269119. encryption, salt manages encryption on a payload level, so the data sent across
  269120. the network is encrypted with fast AES encryption, and authentication uses RSA
  269121. keys. This means that Salt is fast, secure, and very efficient.
  269122. .sp
  269123. Messaging in Salt is executed with ZeroMQ, so the message passing interface is
  269124. built into salt and does not require an external ZeroMQ server. This also adds
  269125. speed to Salt since there is no additional bloat on the networking layer, and
  269126. ZeroMQ has already proven itself as a very fast networking system.
  269127. .sp
  269128. The remote execution in Salt is "Lazy Execution", in that once the command is
  269129. sent the requesting network connection is closed. This makes it easier to
  269130. detach the execution from the calling process on the master, it also means that
  269131. replies are cached, so that information gathered from historic commands can be
  269132. queried in the future.
  269133. .sp
  269134. Salt also allows users to make execution modules in Python. Writers of these
  269135. modules should also be pleased to know that they have access to the impressive
  269136. information gathered from PuppetLabs\(aq Facter application, making Salt module
  269137. more flexible. In the future I hope to also allow Salt to group servers based
  269138. on Facter information as well.
  269139. .sp
  269140. All in all Salt is fast, efficient, and clean, can be used from a simple command
  269141. line client or through an API, uses message queue technology to make network
  269142. execution extremely fast, and encryption is handled in a very fast and
  269143. efficient manner. Salt is also VERY easy to use and VERY easy to extend.
  269144. .sp
  269145. You can find the source code for Salt on my GitHub page, I have also set up a
  269146. few wiki pages explaining how to use and set up Salt. If you are using Arch
  269147. Linux there is a package available in the Arch Linux AUR.
  269148. .sp
  269149. GitHub page: \fI\%https://github.com/saltstack/salt\fP
  269150. .sp
  269151. Wiki: \fI\%https://github.com/saltstack/salt/wiki\fP
  269152. .sp
  269153. Arch Linux Package: \fI\%https://aur.archlinux.org/packages/salt\-git/\fP
  269154. .sp
  269155. I am very open to contributions, for instance I need packages for more Linux
  269156. distributions as well as BSD packages and testers.
  269157. .sp
  269158. Give Salt a try, this is the initial release and is not a 1.0 quality release,
  269159. but it has been working well for me! I am eager to get your feedback!
  269160. .SS Salt 0.7.0 release notes
  269161. .sp
  269162. I am pleased to announce the release of Salt 0.7.0!
  269163. .sp
  269164. This release marks what is the first stable release of salt, 0.7.0 should be
  269165. suitable for general use.
  269166. .sp
  269167. 0.7.0 Brings the following new features to Salt:
  269168. .INDENT 0.0
  269169. .IP \(bu 2
  269170. Integration with Facter data from puppet labs
  269171. .IP \(bu 2
  269172. Allow for matching minions from the salt client via Facter information
  269173. .IP \(bu 2
  269174. Minion job threading, many jobs can be executed from the master at once
  269175. .IP \(bu 2
  269176. Preview of master clustering support \- Still experimental
  269177. .IP \(bu 2
  269178. Introduce new minion modules for stats, virtualization, service management and more
  269179. .IP \(bu 2
  269180. Add extensive logging to the master and minion daemons
  269181. .IP \(bu 2
  269182. Add sys.reload_functions for dynamic function reloading
  269183. .IP \(bu 2
  269184. Greatly improve authentication
  269185. .IP \(bu 2
  269186. Introduce the saltkey command for managing public keys
  269187. .IP \(bu 2
  269188. Begin backend development preparatory to introducing butter
  269189. .IP \(bu 2
  269190. Addition of man pages for the core commands
  269191. .IP \(bu 2
  269192. Extended and cleaned configuration
  269193. .UNINDENT
  269194. .sp
  269195. 0.7.0 Fixes the following major bugs:
  269196. .INDENT 0.0
  269197. .IP \(bu 2
  269198. Fix crash in minions when matching failed
  269199. .IP \(bu 2
  269200. Fix configuration file lookups for the local client
  269201. .IP \(bu 2
  269202. Repair communication bugs in encryption
  269203. .IP \(bu 2
  269204. Numerous fixes in the minion modules
  269205. .UNINDENT
  269206. .sp
  269207. The next release of Salt should see the following features:
  269208. .INDENT 0.0
  269209. .IP \(bu 2
  269210. Stabilize the cluster support
  269211. .IP \(bu 2
  269212. Introduce a remote client for salt command tiers
  269213. .IP \(bu 2
  269214. salt\-ftp system for distributed file copies
  269215. .IP \(bu 2
  269216. Initial support for "butter"
  269217. .UNINDENT
  269218. .sp
  269219. Coming up next is a higher level management framework for salt called
  269220. Butter. I want salt to stay as a simple and effective communication
  269221. framework, and allow for more complicated executions to be managed via
  269222. Butter.
  269223. .sp
  269224. Right now Butter is being developed to act as a cloud controller using salt
  269225. as the communication layer, but features like system monitoring and advanced
  269226. configuration control (a puppet manager) are also in the pipe.
  269227. .sp
  269228. Special thanks to Joseph Hall for the status and network modules, and thanks
  269229. to Matthias Teege for tracking down some configuration bugs!
  269230. .sp
  269231. Salt can be downloaded from the following locations;
  269232. .sp
  269233. Arch Linux Package:
  269234. .sp
  269235. \fI\%https://aur.archlinux.org/packages/salt\-git/\fP
  269236. .sp
  269237. Please enjoy the latest Salt release!
  269238. .SS Salt 0.8.0 release notes
  269239. .sp
  269240. Salt 0.8.0 is ready for general consumption!
  269241. The source tarball is available on GitHub for download:
  269242. .sp
  269243. A lot of work has gone into salt since the last release just 2 weeks ago, and
  269244. salt has improved a great deal. A swath of new features are here along with
  269245. performance and threading improvements!
  269246. .sp
  269247. The main new features of salt 0.8.0 are:
  269248. .sp
  269249. Salt\-cp
  269250. .sp
  269251. Cython minion modules
  269252. .sp
  269253. Dynamic returners
  269254. .sp
  269255. Faster return handling
  269256. .sp
  269257. Lowered required Python version to 2.6
  269258. .sp
  269259. Advanced minion threading
  269260. .sp
  269261. Configurable minion modules
  269262. .SS Salt\-cp
  269263. .sp
  269264. The salt\-cp command introduces the ability to copy simple files via salt to
  269265. targeted servers. Using salt\-cp is very simple, just call salt\-cp with a target
  269266. specification, the source file(s) and where to copy the files on the minions.
  269267. For instance:
  269268. .sp
  269269. # salt\-cp ‘*’ /etc/hosts /etc/hosts
  269270. .sp
  269271. Will copy the local /etc/hosts file to all of the minions.
  269272. .sp
  269273. Salt\-cp is very young, in the future more advanced features will be added, and
  269274. the functionality will much more closely resemble the cp command.
  269275. .SS Cython minion modules
  269276. .sp
  269277. Cython is an amazing tool used to compile Python modules down to c. This is
  269278. arguably the fastest way to run Python code, and since pyzmq requires cython,
  269279. adding support to salt for cython adds no new dependencies.
  269280. .sp
  269281. Cython minion modules allow minion modules to be written in cython and
  269282. therefore executed in compiled c. Simply write the salt module in cython and
  269283. use the file extension “.pyx” and the minion module will be compiled when
  269284. the minion is started. An example cython module is included in the main
  269285. distribution called cytest.pyx:
  269286. .sp
  269287. \fI\%https://github.com/saltstack/salt/blob/master/salt/modules/cytest.pyx\fP
  269288. .SS Dynamic Returners
  269289. .sp
  269290. By default salt returns command data back to the salt master, but now salt can
  269291. return command data to any system. This is enabled via the new returners
  269292. modules feature for salt. The returners modules take the return data and sends
  269293. it to a specific module. The returner modules work like minion modules, so any
  269294. returner can be added to the minions.
  269295. .sp
  269296. This means that a custom data returner can be added to communicate the return
  269297. data so anything from MySQL, Redis, MongoDB, and more!
  269298. .sp
  269299. There are 2 simple stock returners in the returners directory:
  269300. .sp
  269301. \fI\%https://github.com/saltstack/salt/blob/master/salt/returners\fP
  269302. .sp
  269303. The documentation on writing returners will be added to the wiki shortly, and
  269304. returners can be written in pure Python, or in cython.
  269305. .SS Configurable Minion Modules
  269306. .sp
  269307. Minion modules may need to be configured, now the options passed to the minion
  269308. configuration file can be accessed inside of the minion modules via the __opt__
  269309. dict.
  269310. .sp
  269311. Information on how to use this simple addition has been added to the wiki:
  269312. Writing modules
  269313. .sp
  269314. The test module has an example of using the __opts__ dict, and how to set
  269315. default options:
  269316. .sp
  269317. \fI\%https://github.com/saltstack/salt/blob/master/salt/modules/test.py\fP
  269318. .SS Advanced Minion Threading
  269319. .sp
  269320. In 0.7.0 the minion would block after receiving a command from the master, now
  269321. the minion will spawn a thread or multiprocess. By default Python threads are
  269322. used because for general use they have proved to be faster, but the minion can
  269323. now be configured to use the Python multiprocessing module instead. Using
  269324. multiprocessing will cause executions that are CPU bound or would otherwise
  269325. exploit the negative aspects of the Python GIL to run faster and more reliably,
  269326. but simple calls will still be faster with Python threading.
  269327. The configuration option can be found in the minion configuration file:
  269328. .sp
  269329. \fI\%https://github.com/saltstack/salt/blob/master/conf/minion\fP
  269330. .SS Lowered Supported Python to 2.6
  269331. .sp
  269332. The requirement for Python 2.7 has been removed to support Python 2.6. I have
  269333. received requests to take the minimum Python version back to 2.4, but
  269334. unfortunately this will not be possible, since the ZeroMQ Python bindings do
  269335. not support Python 2.4.
  269336. .sp
  269337. Salt 0.8.0 is a very major update, it also changes the network protocol slightly
  269338. which makes communication with older salt daemons impossible, your master and
  269339. minions need to be upgraded together!
  269340. .sp
  269341. I could use some help bringing salt to the people! Right now I only have
  269342. packages for Arch Linux, Fedora 14 and Gentoo. We need packages for Debian and
  269343. people willing to help test on more platforms. We also need help writing more
  269344. minion modules and returner modules. If you want to contribute to salt please
  269345. hop on the mailing list and send in patches, make a fork on GitHub and send in
  269346. pull requests! If you want to help but are not sure where you can, please email
  269347. me directly or post tot he mailing list!
  269348. .sp
  269349. I hope you enjoy salt, while it is not yet 1.0 salt is completely viable and
  269350. usable!
  269351. .sp
  269352. \-Thomas S. Hatch
  269353. .SS Salt 0.8.7 release notes
  269354. .sp
  269355. It has been a month since salt 0.8.0, and it has been a long month! But Salt is
  269356. still coming along strong. 0.8.7 has a lot of changes and a lot of updates.
  269357. This update makes Salt’s ZeroMQ back end better, strips Facter from the
  269358. dependencies, and introduces interfaces to handle more capabilities.
  269359. .sp
  269360. Many of the major updates are in the background, but the changes should shine
  269361. through to the surface. A number of the new features are still a little thin,
  269362. but the back end to support expansion is in place.
  269363. .sp
  269364. I also recently gave a presentation to the Utah Python users group in Salt Lake
  269365. City, the slides from this presentation are available here:
  269366. .sp
  269367. The video from this presentation will be available shortly.
  269368. .sp
  269369. The major new features and changes in Salt 0.8.7 are:
  269370. .INDENT 0.0
  269371. .IP \(bu 2
  269372. Revamp ZeroMQ topology on the master for better scalability
  269373. .IP \(bu 2
  269374. State enforcement
  269375. .IP \(bu 2
  269376. Dynamic state enforcement managers
  269377. .IP \(bu 2
  269378. Extract the module loader into salt.loader
  269379. .IP \(bu 2
  269380. Make Job ids more granular
  269381. .IP \(bu 2
  269382. Replace Facter functionality with the new salt grains interface
  269383. .IP \(bu 2
  269384. Support for “virtual” salt modules
  269385. .IP \(bu 2
  269386. Introduce the salt\-call command
  269387. .IP \(bu 2
  269388. Better debugging for minion modules
  269389. .UNINDENT
  269390. .sp
  269391. The new ZeroMQ topology allows for better scalability, this will be required by
  269392. the need to execute massive file transfers to multiple machines in parallel and
  269393. state management. The new ZeroMQ topology is available in the aforementioned
  269394. presentation.
  269395. .sp
  269396. 0.8.7 introduces the capability to declare states, this is similar to the
  269397. capabilities of Puppet. States in salt are declared via state data structures.
  269398. This system is very young, but the core feature set is available. Salt states
  269399. work around rendering files which represent Salt high data. More on the Salt
  269400. state system will be documented in the near future.
  269401. .sp
  269402. The system for loading salt modules has been pulled out of the minion class to
  269403. be a standalone module, this has enabled more dynamic loading of Salt modules
  269404. and enables many of the updates in 0.8.7 –
  269405. .sp
  269406. \fI\%https://github.com/saltstack/salt/blob/master/salt/loader.py\fP
  269407. .sp
  269408. Salt Job ids are now microsecond precise, this was needed to repair a race
  269409. condition unveiled by the speed improvements in the new ZeroMQ topology.
  269410. .sp
  269411. The new grains interface replaces the functionality of Facter, the idea behind
  269412. grains differs from Facter in that the grains are only used for static system
  269413. data, dynamic data needs to be derived from a call to a salt module. This makes
  269414. grains much faster to use, since the grains data is generated when the minion
  269415. starts.
  269416. .sp
  269417. Virtual salt modules allows for a salt module to be presented as something
  269418. other than its module name. The idea here is that based on information from the
  269419. minion decisions about which module should be presented can be made. The best
  269420. example is the pacman module. The pacman module will only load on Arch Linux
  269421. minions, and will be called pkg. Similarly the yum module will be presented as
  269422. pkg when the minion starts on a Fedora/RedHat system.
  269423. .sp
  269424. The new salt\-call command allows for minion modules to be executed from the
  269425. minion. This means that on the minion a salt module can be executed, this is a
  269426. great tool for testing Salt modules. The salt\-call command can also be used to
  269427. view the grains data.
  269428. .sp
  269429. In previous releases when a minion module threw an exception very little data
  269430. was returned to the master. Now the stack trace from the failure is returned
  269431. making debugging of minion modules MUCH easier.
  269432. .sp
  269433. Salt is nearing the goal of 1.0, where the core feature set and capability is
  269434. complete!
  269435. .sp
  269436. \-Thomas S Hatch
  269437. .SS Salt 0.8.8 release notes
  269438. .sp
  269439. Salt 0.8.8 is here! This release adds a great deal of code and some serious new
  269440. features.
  269441. .sp
  269442. Improved Documentation has been set up for salt using sphinx thanks to the
  269443. efforts of Seth House. This new documentation system will act as the back end
  269444. to the salt website which is still under heavy development. The new sphinx
  269445. documentation system has also been used to greatly clean up the salt manpages.
  269446. The salt 7 manpage in particular now contains extensive information which was
  269447. previously only in the wiki. The new documentation can be found at:
  269448. \fI\%http://docs.saltstack.com/\fP
  269449. We still have a lot to add, and when the domain is set up I will post another
  269450. announcement.
  269451. .sp
  269452. More additions have been made to the ZeroMQ setup, particularly in the realm
  269453. of file transfers. Salt 0.8.8 introduces a built in, stateless, encrypted file
  269454. server which allows salt minions to download files from the salt master using
  269455. the same encryption system used for all other salt communications. The main
  269456. motivation for the salt file server has been to facilitate the new salt state
  269457. system.
  269458. .sp
  269459. Much of the salt code has been cleaned up and a new cleaner logging system has
  269460. been introduced thanks to the efforts of Pedro Algarvio. These additions will
  269461. allow for much more flexible logging to be executed by salt, and fixed a great
  269462. deal of my poor spelling in the salt docstrings! Pedro Algarvio has also
  269463. cleaned up the API, making it easier to embed salt into another application.
  269464. .sp
  269465. The biggest addition to salt found in 0.8.8 is the new state system. The salt
  269466. module system has received a new front end which allows salt to be used as a
  269467. configuration management system. The configuration management system allows for
  269468. system configuration to be defined in data structures. The configuration
  269469. management system, or as it is called in salt, the “salt state system” supports
  269470. many of the features found in other configuration managers, but allows for
  269471. system states to be written in a far simpler format, executes at blazing speeds,
  269472. and operates via the salt minion matching system. The state system also operates
  269473. within the normal scope of salt, and requires no additional configuration to
  269474. use.
  269475. .sp
  269476. The salt state system can enforce the following states with many more to come:
  269477. Packages
  269478. Files
  269479. Services
  269480. Executing commands
  269481. Hosts
  269482. .sp
  269483. The system used to define the salt states is based on a data structure, the
  269484. data structure used to define the salt states has been made to be as easy to
  269485. use as possible. The data structure is defined by default using a YAML file
  269486. rendered via a Jinja template. This means that the state definition language
  269487. supports all of the data structures that YAML supports, and all of the
  269488. programming constructs and logic that Jinja supports. If the user does not
  269489. like YAML or Jinja the states can be defined in yaml\-mako, json\-jinja, or
  269490. json\-mako. The system used to render the states is completely dynamic, and any
  269491. rendering system can be added to the capabilities of Salt, this means that a
  269492. rendering system that renders XML data in a cheetah template, or whatever you
  269493. can imagine, can be easily added to the capabilities of salt.
  269494. .sp
  269495. The salt state system also supports isolated environments, as well as matching
  269496. code from several environments to a single salt minion.
  269497. .sp
  269498. The feature base for Salt has grown quite a bit since my last serious
  269499. documentation push. As we approach 0.9.0 the goals are becoming very clear, and
  269500. the documentation needs a lot of work. The main goals for 0.9.0 are to further
  269501. refine the state system, fix any bugs we find, get Salt running on as many
  269502. platforms as we can, and get the documentation filled out. There is a lot more
  269503. to come as Salt moves forward to encapsulate a much larger scope, while
  269504. maintaining supreme usability and simplicity.
  269505. .sp
  269506. If you would like a more complete overview of Salt please watch the Salt
  269507. presentation:
  269508. Slides:
  269509. .sp
  269510. \-Thomas S Hatch
  269511. .SS Salt 0.8.9 Release Notes
  269512. .sp
  269513. Salt 0.8.9 has finally arrived! Unfortunately this is much later than I had
  269514. hoped to release 0.8.9, life has been very crazy over the last month. But
  269515. despite challenges, Salt has moved forward!
  269516. .sp
  269517. This release, as expected, adds few new features and many refinements. One
  269518. of the most exciting aspect of this release is that the development community
  269519. for salt has grown a great deal and much of the code is from contributors.
  269520. .sp
  269521. Also, I have filled out the documentation a great deal. So information on
  269522. States is properly documented, and much of the documentation that was out of
  269523. date has been filled in.
  269524. .SS Download!
  269525. .sp
  269526. The Salt source can be downloaded from PyPI:
  269527. .sp
  269528. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.8.9.tar.gz\fP
  269529. .sp
  269530. Here s the md5sum:
  269531. .sp
  269532. 7d5aca4633bc22f59045f59e82f43b56
  269533. .sp
  269534. For instructions on how to set up Salt please see the installation
  269535. instructions.
  269536. .SS New Features
  269537. .SS Salt Run
  269538. .sp
  269539. A big feature is the addition of Salt run, the \fBsalt\-run\fP command allows for
  269540. master side execution modules to be made that gather specific information or
  269541. execute custom routines from the master.
  269542. .sp
  269543. Documentation for salt\-run can be found here
  269544. .SS Refined Outputters
  269545. .sp
  269546. One problem often complained about in salt was the fact that the output was
  269547. so messy. Thanks to help from Jeff Schroeder a cleaner interface for the
  269548. command output for the Salt CLI has been made. This new interface makes
  269549. adding new printout formats easy and additions to the capabilities of minion
  269550. modules makes it possible to set the printout mode or \fBoutputter\fP for
  269551. functions in minion modules.
  269552. .SS Cross Calling Salt Modules
  269553. .sp
  269554. Salt modules can now call each other, the \fB__salt__\fP dict has been added to
  269555. the predefined references in minion modules. This new feature is documented in
  269556. the modules documentation\&.
  269557. .SS Watch Option Added to Salt State System
  269558. .sp
  269559. Now in Salt states you can set the watch option, this will allow watch enabled
  269560. states to change based on a change in the other defined states. This is similar
  269561. to subscribe and notify statements in puppet.
  269562. .SS Root Dir Option
  269563. .sp
  269564. Travis Cline has added the ability to define the option \fBroot_dir\fP which
  269565. allows the salt minion to operate in a subdir. This is a strong move in
  269566. supporting the minion running as an unprivileged user
  269567. .SS Config Files Defined in Variables
  269568. .sp
  269569. Thanks again to Travis Cline, the master and minion configuration file locations
  269570. can be defined in environment variables now.
  269571. .SS New Modules
  269572. .sp
  269573. Quite a few new modules, states, returners, and runners have been made.
  269574. .SS New Minion Modules
  269575. .SS apt
  269576. .sp
  269577. Support for apt\-get has been added, this adds greatly improved Debian and
  269578. Ubuntu support to Salt!
  269579. .SS useradd and groupadd
  269580. .sp
  269581. Support for manipulating users and groups on Unix\-like systems.
  269582. .SS moosefs
  269583. .sp
  269584. Initial support for reporting on aspects of the distributed file system,
  269585. MooseFS. For more information on MooseFS please see: \fI\%http://www.moosefs.org\fP
  269586. .sp
  269587. Thanks to Joseph Hall for his work on MooseFS support.
  269588. .SS mount
  269589. .sp
  269590. Manage mounts and the fstab.
  269591. .SS puppet
  269592. .sp
  269593. Execute puppet on remote systems.
  269594. .SS shadow
  269595. .sp
  269596. Manipulate and manage the user password file.
  269597. .SS ssh
  269598. .sp
  269599. Interact with ssh keys.
  269600. .SS New States
  269601. .SS user and group
  269602. .sp
  269603. Support for managing users and groups in Salt States.
  269604. .SS mount
  269605. .sp
  269606. Enforce mounts and the fstab.
  269607. .SS New Returners
  269608. .SS mongo_return
  269609. .sp
  269610. Send the return information to a MongoDB server.
  269611. .SS New Runners
  269612. .SS manage
  269613. .sp
  269614. Display minions that are up or down.
  269615. .SS Salt 0.9.0 Release Notes
  269616. .INDENT 0.0
  269617. .TP
  269618. .B release
  269619. 2011\-08\-27
  269620. .UNINDENT
  269621. .sp
  269622. Salt 0.9.0 is here. This is an exciting release, 0.9.0 includes the new network
  269623. topology features allowing peer salt commands and masters of masters via the
  269624. syndic interface.
  269625. .sp
  269626. 0.9.0 also introduces many more modules, improvements to the API and
  269627. improvements to the ZeroMQ systems.
  269628. .SS Download!
  269629. .sp
  269630. The Salt source can be downloaded from PyPI:
  269631. .sp
  269632. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.0.tar.gz\fP
  269633. .sp
  269634. Here is the md5sum:
  269635. .sp
  269636. 9a925da04981e65a0f237f2e77ddab37
  269637. .sp
  269638. For instructions on how to set up Salt please see the installation
  269639. instructions.
  269640. .SS New Features
  269641. .SS Salt Syndic
  269642. .sp
  269643. The new Syndic interface allows a master to be
  269644. commanded via another higher level salt master. This is a powerful solution
  269645. allowing a master control structure to exist, allowing salt to scale to much
  269646. larger levels then before.
  269647. .SS Peer Communication
  269648. .sp
  269649. 0.9.0 introduces the capability for a minion to call a publication on the
  269650. master and receive the return from another set of minions. This allows salt
  269651. to act as a communication channel between minions and as a general
  269652. infrastructure message bus.
  269653. .sp
  269654. Peer communication is turned off by default but can be enabled via the \fBpeer\fP
  269655. option in the master configuration file. Documentation on the new Peer
  269656. interface\&.
  269657. .SS Easily Extensible API
  269658. .sp
  269659. The minion and master classes have been redesigned to allow for specialized
  269660. minion and master servers to be easily created. An example on how this is done
  269661. for the master can be found in the \fBmaster.py\fP salt module:
  269662. .sp
  269663. \fI\%https://github.com/saltstack/salt/blob/master/salt/master.py\fP
  269664. .sp
  269665. The \fBMaster\fP class extends the \fBSMaster\fP class and set up the main master
  269666. server.
  269667. .sp
  269668. The minion functions can now also be easily added to another application via
  269669. the \fBSMinion\fP class, this class can be found in the \fBminion.py\fP module:
  269670. .sp
  269671. \fI\%https://github.com/saltstack/salt/blob/master/salt/minion.py\fP
  269672. .SS Cleaner Key Management
  269673. .sp
  269674. This release changes some of the key naming to allow for multiple master keys
  269675. to be held based on the type of minion gathering the master key.
  269676. .sp
  269677. The \-d option has also been added to the salt\-key command allowing for easy
  269678. removal of accepted public keys.
  269679. .sp
  269680. The \-\-gen\-keys option is now available as well for salt\-key, this allows
  269681. for a salt specific RSA key pair to be easily generated from the command line.
  269682. .SS Improved 0MQ Master Workers
  269683. .sp
  269684. The 0MQ worker system has been further refined to be faster and more robust.
  269685. This new system has been able to handle a much larger load than the previous
  269686. setup. The new system uses the IPC protocol in 0MQ instead of TCP.
  269687. .SS New Modules
  269688. .sp
  269689. Quite a few new modules have been made.
  269690. .SS New Minion Modules
  269691. .SS apache
  269692. .sp
  269693. Work directly with apache servers, great for managing balanced web servers
  269694. .SS cron
  269695. .sp
  269696. Read out the contents of a systems crontabs
  269697. .SS mdadm
  269698. .sp
  269699. Module to manage raid devices in Linux, appears as the \fBraid\fP module
  269700. .SS mysql
  269701. .sp
  269702. Gather simple data from MySQL databases
  269703. .SS ps
  269704. .sp
  269705. Extensive utilities for managing processes
  269706. .SS publish
  269707. .sp
  269708. Used by the peer interface to allow minions to make publications
  269709. .SS Salt 0.9.1 Release Notes
  269710. .INDENT 0.0
  269711. .TP
  269712. .B release
  269713. 2011\-08\-29
  269714. .UNINDENT
  269715. .SS Salt 0.9.2 Release Notes
  269716. .INDENT 0.0
  269717. .TP
  269718. .B release
  269719. 2011\-09\-17
  269720. .UNINDENT
  269721. .sp
  269722. Salt 0.9.2 has arrived! 0.9.2 is primarily a bugfix release, the exciting
  269723. component in 0.9.2 is greatly improved support for salt states. All of the
  269724. salt states interfaces have been more thoroughly tested and the new salt\-states
  269725. git repo is growing with example of how to use states.
  269726. .sp
  269727. This release introduces salt states for early developers and testers to start
  269728. helping us clean up the states interface and make it ready for the world!
  269729. .sp
  269730. 0.9.2 also fixes a number of bugs found on Python 2.6.
  269731. .SS Download!
  269732. .sp
  269733. The Salt source can be downloaded from PyPI:
  269734. .sp
  269735. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.2.tar.gz\fP
  269736. .sp
  269737. For instructions on how to set up Salt please see the installation
  269738. instructions.
  269739. .SS New Features
  269740. .SS Salt\-Call Additions
  269741. .sp
  269742. The salt\-call command has received an overhaul, it now hooks into the outputter
  269743. system so command output looks clean, and the logging system has been hooked
  269744. into salt\-call, so the \-l option allows the logging output from salt minion
  269745. functions to be displayed.
  269746. .sp
  269747. The end result is that the salt\-call command can execute the state system and
  269748. return clean output:
  269749. .INDENT 0.0
  269750. .INDENT 3.5
  269751. .sp
  269752. .nf
  269753. .ft C
  269754. # salt\-call state.highstate
  269755. .ft P
  269756. .fi
  269757. .UNINDENT
  269758. .UNINDENT
  269759. .SS State System Fixes
  269760. .sp
  269761. The state system has been tested and better refined. As of this release the
  269762. state system is ready for early testers to start playing with. If you are
  269763. interested in working with the state system please check out the (still very
  269764. small) salt\-states GitHub repo:
  269765. .sp
  269766. \fI\%https://github.com/SS\-archive/salt\-states\fP
  269767. .sp
  269768. This git repo is the active development branch for determining how a clean
  269769. salt\-state database should look and act. Since the salt state system is still
  269770. very young a lot of help is still needed here. Please fork the salt\-states
  269771. repo and help us develop a truly large and scalable system for configuration
  269772. management!
  269773. .SS Notable Bug Fixes
  269774. .SS Python 2.6 String Formatting
  269775. .sp
  269776. Python 2.6 does not support format strings without an index identifier, all of
  269777. them have been repaired.
  269778. .SS Cython Loading Disabled by Default
  269779. .sp
  269780. Cython loading requires a development tool chain to be installed on the minion,
  269781. requiring this by default can cause problems for most Salt deployments. If
  269782. Cython auto loading is desired it will need to be turned on in the minion
  269783. config.
  269784. .SS Salt 0.9.3 Release Notes
  269785. .INDENT 0.0
  269786. .TP
  269787. .B release
  269788. 2011\-11\-05
  269789. .UNINDENT
  269790. .sp
  269791. Salt 0.9.3 is finally arrived. This is another big step forward for Salt, new
  269792. features range from proper FreeBSD support to fixing issues seen when
  269793. attaching a minion to a master over the Internet.
  269794. .sp
  269795. The biggest improvements in 0.9.3 though can be found in the state system, it
  269796. has progressed from something ready for early testers to a system ready to
  269797. compete with platforms such as Puppet and Chef. The backbone of the state
  269798. system has been greatly refined and many new features are available.
  269799. .SS Download!
  269800. .sp
  269801. The Salt source can be downloaded from PyPI:
  269802. .sp
  269803. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.3.tar.gz\fP
  269804. .sp
  269805. For instructions on how to set up Salt please see the installation
  269806. instructions.
  269807. .SS New Features
  269808. .SS WAN Support
  269809. .sp
  269810. Recently more people have been testing Salt minions connecting to Salt Masters
  269811. over the Internet. It was found that Minions would commonly loose their
  269812. connection to the master when working over the internet. The minions can now
  269813. detect if the connection has been lost and reconnect to the master, making
  269814. WAN connections much more reliable.
  269815. .SS State System Fixes
  269816. .sp
  269817. Substantial testing has gone into the state system and it is ready for real
  269818. world usage. A great deal has been added to the documentation for states and
  269819. the modules and functions available to states have been cleanly documented.
  269820. .sp
  269821. A number of State System bugs have also been founds and repaired, the output
  269822. from the state system has also been refined to be extremely clear and concise.
  269823. .sp
  269824. Error reporting has also been introduced, issues found in sls files will now
  269825. be clearly reported when executing Salt States.
  269826. .SS Extend Declaration
  269827. .sp
  269828. The Salt States have also gained the \fBextend\fP declaration. This declaration
  269829. allows for states to be cleanly modified in a post environment. Simply said,
  269830. if there is an apache.sls file that declares the apache service, then another
  269831. sls can include apache and then extend it:
  269832. .INDENT 0.0
  269833. .INDENT 3.5
  269834. .sp
  269835. .nf
  269836. .ft C
  269837. include:
  269838. \- apache
  269839. extend:
  269840. apache:
  269841. service:
  269842. \- require:
  269843. \- pkg: mod_python
  269844. mod_python:
  269845. pkg:
  269846. \- installed
  269847. .ft P
  269848. .fi
  269849. .UNINDENT
  269850. .UNINDENT
  269851. .sp
  269852. The notable behavior with the extend functionality is that it literally extends
  269853. or overwrites a declaration set up in another sls module. This means that Salt
  269854. will behave as though the modifications were made directly to the apache sls.
  269855. This ensures that the apache service in this example is directly tied to all
  269856. requirements.
  269857. .SS Highstate Structure Specification
  269858. .sp
  269859. This release comes with a clear specification of the Highstate data structure
  269860. that is used to declare Salt States. This specification explains everything
  269861. that can be declared in the Salt SLS modules.
  269862. .sp
  269863. The specification is extremely simple, and illustrates how Salt has been able
  269864. to fulfill the requirements of a central configuration manager within a simple
  269865. and easy to understand format and specification.
  269866. .SS SheBang Renderer Switch
  269867. .sp
  269868. It came to our attention that having many renderers means that there may be a
  269869. situation where more than one State Renderer should be available within a
  269870. single State Tree.
  269871. .sp
  269872. The method chosen to accomplish this was something already familiar to
  269873. developers and systems administrators, a SheBang. The Python State Renderer
  269874. displays this new capability.
  269875. .SS Python State Renderer
  269876. .sp
  269877. Until now Salt States could only be declared in yaml or json using Jinja or
  269878. Mako. A new, very powerful, renderer has been added, making it possible to
  269879. write Salt States in pure Python:
  269880. .INDENT 0.0
  269881. .INDENT 3.5
  269882. .sp
  269883. .nf
  269884. .ft C
  269885. #!py
  269886. def run():
  269887. \(aq\(aq\(aq
  269888. Install the python\-mako package
  269889. \(aq\(aq\(aq
  269890. return {\(aqinclude\(aq: [\(aqpython\(aq],
  269891. \(aqpython\-mako\(aq: {\(aqpkg\(aq: [\(aqinstalled\(aq]}}
  269892. .ft P
  269893. .fi
  269894. .UNINDENT
  269895. .UNINDENT
  269896. .sp
  269897. This renderer is used by making a run function that returns the Highstate data
  269898. structure. Any capabilities of Python can be used in pure Python sls modules.
  269899. .sp
  269900. This example of a pure Python sls module is the same as this example in yaml:
  269901. .INDENT 0.0
  269902. .INDENT 3.5
  269903. .sp
  269904. .nf
  269905. .ft C
  269906. include:
  269907. \- python
  269908. python\-mako:
  269909. pkg:
  269910. \- installed
  269911. .ft P
  269912. .fi
  269913. .UNINDENT
  269914. .UNINDENT
  269915. .SS FreeBSD Support
  269916. .sp
  269917. Additional support has been added for FreeBSD, this is Salt\(aqs first branch out
  269918. of the Linux world and proves the viability of Salt on non\-Linux platforms.
  269919. .sp
  269920. Salt remote execution already worked on FreeBSD, and should work without issue
  269921. on any Unix\-like platform. But this support comes in the form of package
  269922. management and user support, so Salt States also work on FreeBSD now.
  269923. .sp
  269924. The new freebsdpkg module provides package management support for FreeBSD
  269925. and the new pw_user and pw_group provide user and group management.
  269926. .SS Module and State Additions
  269927. .SS Cron Support
  269928. .sp
  269929. Support for managing the system crontab has been added, declaring a cron state
  269930. can be done easily:
  269931. .INDENT 0.0
  269932. .INDENT 3.5
  269933. .sp
  269934. .nf
  269935. .ft C
  269936. date > /tmp/datestamp:
  269937. cron:
  269938. \- present
  269939. \- user: fred
  269940. \- minute: 5
  269941. \- hour: 3
  269942. .ft P
  269943. .fi
  269944. .UNINDENT
  269945. .UNINDENT
  269946. .SS File State Additions
  269947. .sp
  269948. The file state has been given a number of new features, primarily the
  269949. directory, recurse, symlink, and absent functions.
  269950. .INDENT 0.0
  269951. .TP
  269952. .B file.directory
  269953. Make sure that a directory exists and has the right permissions.
  269954. .INDENT 7.0
  269955. .INDENT 3.5
  269956. .sp
  269957. .nf
  269958. .ft C
  269959. /srv/foo:
  269960. file:
  269961. \- directory
  269962. \- user: root
  269963. \- group: root
  269964. \- mode: 1755
  269965. .ft P
  269966. .fi
  269967. .UNINDENT
  269968. .UNINDENT
  269969. .TP
  269970. .B file.symlink
  269971. Make a symlink.
  269972. .INDENT 7.0
  269973. .INDENT 3.5
  269974. .sp
  269975. .nf
  269976. .ft C
  269977. /var/lib/www:
  269978. file:
  269979. \- symlink
  269980. \- target: /srv/www
  269981. \- force: True
  269982. .ft P
  269983. .fi
  269984. .UNINDENT
  269985. .UNINDENT
  269986. .TP
  269987. .B file.recurse
  269988. The recurse state function will recursively download a directory on the
  269989. master file server and place it on the minion. Any change in the files on
  269990. the master will be pushed to the minion. The recurse function is very
  269991. powerful and has been tested by pushing out the full Linux kernel source.
  269992. .INDENT 7.0
  269993. .INDENT 3.5
  269994. .sp
  269995. .nf
  269996. .ft C
  269997. /opt/code:
  269998. file:
  269999. \- recurse
  270000. \- source: salt://linux
  270001. .ft P
  270002. .fi
  270003. .UNINDENT
  270004. .UNINDENT
  270005. .TP
  270006. .B file.absent
  270007. Make sure that the file is not on the system, recursively deletes
  270008. directories, files, and symlinks.
  270009. .INDENT 7.0
  270010. .INDENT 3.5
  270011. .sp
  270012. .nf
  270013. .ft C
  270014. /etc/httpd/conf.d/somebogusfile.conf:
  270015. file:
  270016. \- absent
  270017. .ft P
  270018. .fi
  270019. .UNINDENT
  270020. .UNINDENT
  270021. .UNINDENT
  270022. .SS Sysctl Module and State
  270023. .sp
  270024. The sysctl module and state allows for sysctl components in the kernel to be
  270025. managed easily. the sysctl module contains the following functions:
  270026. .INDENT 0.0
  270027. .TP
  270028. .B sysctl.show
  270029. Return a list of sysctl parameters for this minion
  270030. .TP
  270031. .B sysctl.get
  270032. Return a single sysctl parameter for this minion
  270033. .TP
  270034. .B sysctl.assign
  270035. Assign a single sysctl parameter for this minion
  270036. .TP
  270037. .B sysctl.persist
  270038. Assign and persist a simple sysctl parameter for this minion
  270039. .UNINDENT
  270040. .sp
  270041. The sysctl state allows for sysctl parameters to be assigned:
  270042. .INDENT 0.0
  270043. .INDENT 3.5
  270044. .sp
  270045. .nf
  270046. .ft C
  270047. vm.swappiness:
  270048. sysctl:
  270049. \- present
  270050. \- value: 20
  270051. .ft P
  270052. .fi
  270053. .UNINDENT
  270054. .UNINDENT
  270055. .SS Kernel Module Management
  270056. .sp
  270057. A module for managing Linux kernel modules has been added. The new functions
  270058. are as follows:
  270059. .INDENT 0.0
  270060. .TP
  270061. .B kmod.available
  270062. Return a list of all available kernel modules
  270063. .TP
  270064. .B kmod.check_available
  270065. Check to see if the specified kernel module is available
  270066. .TP
  270067. .B kmod.lsmod
  270068. Return a dict containing information about currently loaded modules
  270069. .TP
  270070. .B kmod.load
  270071. Load the specified kernel module
  270072. .TP
  270073. .B kmod.remove
  270074. Unload the specified kernel module
  270075. .UNINDENT
  270076. .sp
  270077. The kmod state can enforce modules be either present or absent:
  270078. .INDENT 0.0
  270079. .INDENT 3.5
  270080. .sp
  270081. .nf
  270082. .ft C
  270083. kvm_intel:
  270084. kmod:
  270085. \- present
  270086. .ft P
  270087. .fi
  270088. .UNINDENT
  270089. .UNINDENT
  270090. .SS Ssh Authorized Keys
  270091. .sp
  270092. The ssh_auth state can distribute ssh authorized keys out to minions. Ssh
  270093. authorized keys can be present or absent.
  270094. .INDENT 0.0
  270095. .INDENT 3.5
  270096. .sp
  270097. .nf
  270098. .ft C
  270099. AAAAB3NzaC1kc3MAAACBAL0sQ9fJ5bYTEyYvlRBsJdDOo49CNfhlWHWXQRqul6rwL4KIuPrhY7hBw0tV7UNC7J9IZRNO4iGod9C+OYutuWGJ2x5YNf7P4uGhH9AhBQGQ4LKOLxhDyT1OrDKXVFw3wgY3rHiJYAbd1PXNuclJHOKL27QZCRFjWSEaSrUOoczvAAAAFQD9d4jp2dCJSIseSkk4Lez3LqFcqQAAAIAmovHIVSrbLbXAXQE8eyPoL9x5C+x2GRpEcA7AeMH6bGx/xw6NtnQZVMcmZIre5Elrw3OKgxcDNomjYFNHuOYaQLBBMosyO++tJe1KTAr3A2zGj2xbWO9JhEzu8xvSdF8jRu0N5SRXPpzSyU4o1WGIPLVZSeSq1VFTHRT4lXB7PQAAAIBXUz6ZO0bregF5xtJRuxUN583HlfQkXvxLqHAGY8WSEVlTnuG/x75wolBDbVzeTlxWxgxhafj7P6Ncdv25Wz9wvc6ko/puww0b3rcLNqK+XCNJlsM/7lB8Q26iK5mRZzNsGeGwGTyzNIMBekGYQ5MRdIcPv5dBIP/1M6fQDEsAXQ==:
  270100. ssh_auth:
  270101. \- present
  270102. \- user: frank
  270103. \- enc: dsa
  270104. \- comment: \(aqFrank\(aqs key\(aq
  270105. .ft P
  270106. .fi
  270107. .UNINDENT
  270108. .UNINDENT
  270109. .SS Salt 0.9.4 Release Notes
  270110. .INDENT 0.0
  270111. .TP
  270112. .B release
  270113. 2011\-11\-27
  270114. .UNINDENT
  270115. .sp
  270116. Salt 0.9.4 has arrived. This is a critical update that repairs a number of
  270117. key bugs found in 0.9.3. But this update is not without feature additions
  270118. as well! 0.9.4 adds support for Gentoo portage to the pkg module and state
  270119. system. Also there are 2 major new state additions, the failhard option and
  270120. the ability to set up finite state ordering with the \fBorder\fP option.
  270121. .sp
  270122. This release also sees our largest increase in community contributions.
  270123. These contributors have and continue to be the life blood of the Salt
  270124. project, and the team continues to grow. I want to put out a big thanks to
  270125. our new and existing contributors.
  270126. .SS Download!
  270127. .sp
  270128. The Salt source can be downloaded from PyPI:
  270129. .sp
  270130. \fI\%https://pypi.python.org/packages/source/s/salt/salt\-0.9.4.tar.gz\fP
  270131. .sp
  270132. For instructions on how to set up Salt please see the installation
  270133. instructions.
  270134. .SS New Features
  270135. .SS Failhard State Option
  270136. .sp
  270137. Normally, when a state fails Salt continues to execute the remainder of the
  270138. defined states and will only refuse to execute states that require the failed
  270139. state.
  270140. .sp
  270141. But the situation may exist, where you would want all state execution to stop
  270142. if a single state execution fails. The capability to do this is called
  270143. \fBfailing hard\fP\&.
  270144. .SS State Level Failhard
  270145. .sp
  270146. A single state can have a failhard set, this means that if this individual
  270147. state fails that all state execution will immediately stop. This is a great
  270148. thing to do if there is a state that sets up a critical config file and
  270149. setting a require for each state that reads the config would be cumbersome.
  270150. A good example of this would be setting up a package manager early on:
  270151. .INDENT 0.0
  270152. .INDENT 3.5
  270153. .sp
  270154. .nf
  270155. .ft C
  270156. /etc/yum.repos.d/company.repo:
  270157. file:
  270158. \- managed
  270159. \- source: salt://company/yumrepo.conf
  270160. \- user: root
  270161. \- group: root
  270162. \- mode: 644
  270163. \- order: 1
  270164. \- failhard: True
  270165. .ft P
  270166. .fi
  270167. .UNINDENT
  270168. .UNINDENT
  270169. .sp
  270170. In this situation, the yum repo is going to be configured before other states,
  270171. and if it fails to lay down the config file, than no other states will be
  270172. executed.
  270173. .SS Global Failhard
  270174. .sp
  270175. It may be desired to have failhard be applied to every state that is executed,
  270176. if this is the case, then failhard can be set in the master configuration
  270177. file. Setting failhard in the master configuration file will result in failing
  270178. hard when any minion gathering states from the master have a state fail.
  270179. .sp
  270180. This is NOT the default behavior, normally Salt will only fail states that
  270181. require a failed state.
  270182. .sp
  270183. Using the global failhard is generally not recommended, since it can result
  270184. in states not being executed or even checked. It can also be confusing to
  270185. see states failhard if an admin is not actively aware that the failhard has
  270186. been set.
  270187. .sp
  270188. To use the global failhard set failhard: True in the master configuration
  270189. .SS Finite Ordering of State Execution
  270190. .sp
  270191. When creating salt sls files, it is often important to ensure that they run in
  270192. a specific order. While states will always execute in the same order, that
  270193. order is not necessarily defined the way you want it.
  270194. .sp
  270195. A few tools exist in Salt to set up the correct state ordering, these tools
  270196. consist of requisite declarations and order options.
  270197. .SS The Order Option
  270198. .sp
  270199. Before using the order option, remember that the majority of state ordering
  270200. should be done with requisite statements, and that a requisite statement
  270201. will override an order option.
  270202. .sp
  270203. The order option is used by adding an order number to a state declaration
  270204. with the option \fIorder\fP:
  270205. .INDENT 0.0
  270206. .INDENT 3.5
  270207. .sp
  270208. .nf
  270209. .ft C
  270210. vim:
  270211. pkg:
  270212. \- installed
  270213. \- order: 1
  270214. .ft P
  270215. .fi
  270216. .UNINDENT
  270217. .UNINDENT
  270218. .sp
  270219. By adding the order option to \fI1\fP this ensures that the vim package will be
  270220. installed in tandem with any other state declaration set to the order \fI1\fP\&.
  270221. .sp
  270222. Any state declared without an order option will be executed after all states
  270223. with order options are executed.
  270224. .sp
  270225. But this construct can only handle ordering states from the beginning.
  270226. Sometimes you may want to send a state to the end of the line, to do this
  270227. set the order to last:
  270228. .INDENT 0.0
  270229. .INDENT 3.5
  270230. .sp
  270231. .nf
  270232. .ft C
  270233. vim:
  270234. pkg:
  270235. \- installed
  270236. \- order: last
  270237. .ft P
  270238. .fi
  270239. .UNINDENT
  270240. .UNINDENT
  270241. .sp
  270242. Substantial testing has gone into the state system and it is ready for real
  270243. world usage. A great deal has been added to the documentation for states and
  270244. the modules and functions available to states have been cleanly documented.
  270245. .sp
  270246. A number of State System bugs have also been founds and repaired, the output
  270247. from the state system has also been refined to be extremely clear and concise.
  270248. .sp
  270249. Error reporting has also been introduced, issues found in sls files will now
  270250. be clearly reported when executing Salt States.
  270251. .SS Gentoo Support
  270252. .sp
  270253. Additional experimental support has been added for Gentoo. This is found in
  270254. the contribution from Doug Renn, aka nestegg.
  270255. .SS Salt 0.9.5 Release Notes
  270256. .INDENT 0.0
  270257. .TP
  270258. .B release
  270259. 2012\-01\-15
  270260. .UNINDENT
  270261. .sp
  270262. Salt 0.9.5 is one of the largest steps forward in the development of Salt.
  270263. .sp
  270264. 0.9.5 comes with many milestones, this release has seen the community of
  270265. developers grow out to an international team of 46 code contributors and has
  270266. many feature additions, feature enhancements, bug fixes and speed improvements.
  270267. .sp
  270268. \fBWARNING:\fP
  270269. .INDENT 0.0
  270270. .INDENT 3.5
  270271. Be sure to \fI\%read the upgrade instructions\fP about the
  270272. switch to msgpack before upgrading!
  270273. .UNINDENT
  270274. .UNINDENT
  270275. .SS Community
  270276. .sp
  270277. Nothing has proven to have more value to the development of Salt that the
  270278. outstanding community that has been growing at such a great pace around Salt.
  270279. This has proven not only that Salt has great value, but also the
  270280. expandability of Salt is as exponential as I originally intended.
  270281. .sp
  270282. 0.9.5 has received over 600 additional commits since 0.9.4 with a swath of new
  270283. committers. The following individuals have contributed to the development of
  270284. 0.9.5:
  270285. .INDENT 0.0
  270286. .IP \(bu 2
  270287. Aaron Bull Schaefer
  270288. .IP \(bu 2
  270289. Antti Kaihola
  270290. .IP \(bu 2
  270291. Bas Tichelaar
  270292. .IP \(bu 2
  270293. Brad Barden
  270294. .IP \(bu 2
  270295. Brian Wagner
  270296. .IP \(bu 2
  270297. Byron Clark
  270298. .IP \(bu 2
  270299. Chris Scheller
  270300. .IP \(bu 2
  270301. Christer Edwards
  270302. .IP \(bu 2
  270303. Clint Savage
  270304. .IP \(bu 2
  270305. Corey Quinn
  270306. .IP \(bu 2
  270307. David Boucha
  270308. .IP \(bu 2
  270309. Eivind Uggedal
  270310. .IP \(bu 2
  270311. Eric Poelke
  270312. .IP \(bu 2
  270313. Evan Borgstrom
  270314. .IP \(bu 2
  270315. Jed Glazner
  270316. .IP \(bu 2
  270317. Jeff Schroeder
  270318. .IP \(bu 2
  270319. Jeffrey C. Ollie
  270320. .IP \(bu 2
  270321. Jonas Buckner
  270322. .IP \(bu 2
  270323. Kent Tenney
  270324. .IP \(bu 2
  270325. Martin Schnabel
  270326. .IP \(bu 2
  270327. Maxim Burgerhout
  270328. .IP \(bu 2
  270329. Mitch Anderson
  270330. .IP \(bu 2
  270331. Nathaniel Whiteinge
  270332. .IP \(bu 2
  270333. Seth House
  270334. .IP \(bu 2
  270335. Thomas S Hatch
  270336. .IP \(bu 2
  270337. Thomas Schreiber
  270338. .IP \(bu 2
  270339. Tor Hveem
  270340. .IP \(bu 2
  270341. lzyeval
  270342. .IP \(bu 2
  270343. syphernl
  270344. .UNINDENT
  270345. .sp
  270346. This makes 21 new developers since 0.9.4 was released!
  270347. .sp
  270348. To keep up with the growing community follow Salt on Black Duck Open Hub
  270349. (\fI\%https://www.openhub.net/p/salt\fP), to join the Salt development community, fork
  270350. Salt on GitHub, and get coding (\fI\%https://github.com/saltstack/salt\fP)!
  270351. .SS Major Features
  270352. .SS SPEED! Pickle to msgpack
  270353. .sp
  270354. For a few months now we have been talking about moving away from Python
  270355. pickles for network serialization, but a preferred serialization format
  270356. had not yet been found. After an extensive performance testing period
  270357. involving everything from JSON to protocol buffers, a clear winner emerged.
  270358. Message Pack (\fI\%https://msgpack.org/\fP) proved to not only be the fastest and most
  270359. compact, but also the most "salt like". Message Pack is simple, and the code
  270360. involved is very small. The msgpack library for Python has been added directly
  270361. to Salt.
  270362. .sp
  270363. This move introduces a few changes to Salt. First off, Salt is no longer a
  270364. "noarch" package, since the msgpack lib is written in C. Salt 0.9.5 will also
  270365. have compatibility issues with 0.9.4 with the default configuration.
  270366. .sp
  270367. We have gone through great lengths to avoid backwards compatibility issues with
  270368. Salt, but changing the serialization medium was going to create issues
  270369. regardless. Salt 0.9.5 is somewhat backwards compatible with earlier minions. A
  270370. 0.9.5 master can command older minions, but only if the \fBserial\fP
  270371. config value in the master is set to \fBpickle\fP\&. This will tell the master to
  270372. publish messages in pickle format and will allow the master to receive messages
  270373. in both msgpack and pickle formats.
  270374. .sp
  270375. Therefore \fBthe suggested methods for upgrading\fP are either to just upgrade
  270376. everything at once, or:
  270377. .INDENT 0.0
  270378. .IP 1. 3
  270379. Upgrade the master to 0.9.5
  270380. .IP 2. 3
  270381. Set \fBserial\fP to \fBpickle\fP in the master config
  270382. .IP 3. 3
  270383. Upgrade the minions
  270384. .IP 4. 3
  270385. Remove the \fBserial\fP option from the master config
  270386. .UNINDENT
  270387. .sp
  270388. Since pickles can be used as a security exploit the ability for a master to
  270389. accept pickles from minions at all will be removed in a future release.
  270390. .SS C Bindings for YAML
  270391. .sp
  270392. All of the YAML rendering is now done with the YAML C bindings. This speeds up
  270393. all of the sls files when running states.
  270394. .SS Experimental Windows Support
  270395. .sp
  270396. David Boucha has worked tirelessly to bring initial support to Salt for
  270397. Microsoft Windows operating systems. Right now the Salt Minion can run as a
  270398. native Windows service and accept commands.
  270399. .sp
  270400. In the weeks and months to come Windows will receive the full treatment and
  270401. will have support for Salt States and more robust support for managing Windows
  270402. systems. This is a big step forward for Salt to move entirely outside of the
  270403. Unix world, and proves Salt is a viable cross platform solution. Big Thanks
  270404. to Dave for his contribution here!
  270405. .SS Dynamic Module Distribution
  270406. .sp
  270407. Many Salt users have expressed the desire to have Salt distribute in\-house
  270408. modules, states, renderers, returners, and grains. This support has been added
  270409. in a number of ways:
  270410. .SS Modules via States
  270411. .sp
  270412. Now when salt modules are deployed to a minion via the state system as a file,
  270413. then the modules will be automatically loaded into the active running minion
  270414. \- no restart required \- and into the active running state. So custom state
  270415. modules can be deployed and used in the same state run.
  270416. .SS Modules via Module Environment Directories
  270417. .sp
  270418. Under the file_roots each environment can now have directories that are used
  270419. to deploy large groups of modules. These directories sync modules at the
  270420. beginning of a state run on the minion, or can be manually synced via the Salt
  270421. module \fBsalt.modules.saltutil.sync_all\fP\&.
  270422. .sp
  270423. The directories are named:
  270424. .INDENT 0.0
  270425. .IP \(bu 2
  270426. \fB_modules\fP
  270427. .IP \(bu 2
  270428. \fB_states\fP
  270429. .IP \(bu 2
  270430. \fB_grains\fP
  270431. .IP \(bu 2
  270432. \fB_renderers\fP
  270433. .IP \(bu 2
  270434. \fB_returners\fP
  270435. .UNINDENT
  270436. .sp
  270437. The modules are pushed to their respective scopes on the minions.
  270438. .SS Module Reloading
  270439. .sp
  270440. Modules can now be reloaded without restarting the minion, this is done by
  270441. calling the \fBsalt.modules.sys.reload_modules\fP function.
  270442. .sp
  270443. But wait, there\(aqs more! Now when a salt module of any type is added via
  270444. states the modules will be automatically reloaded, allowing for modules to be
  270445. laid down with states and then immediately used.
  270446. .sp
  270447. Finally, all modules are reloaded when modules are dynamically distributed
  270448. from the salt master.
  270449. .SS Enable / Disable Added to Service
  270450. .sp
  270451. A great deal of demand has existed for adding the capability to set services
  270452. to be started at boot in the service module. This feature also comes with an
  270453. overhaul of the service modules and initial systemd support.
  270454. .sp
  270455. This means that the \fBservice state\fP can now
  270456. accept \fB\- enable: True\fP to make sure a service is enabled at boot, and \fB\-
  270457. enable: False\fP to make sure it is disabled.
  270458. .SS Compound Target
  270459. .sp
  270460. A new target type has been added to the lineup, the compound target. In
  270461. previous versions the desired minions could only be targeted via a single
  270462. specific target type, but now many target specifications can be declared.
  270463. .sp
  270464. These targets can also be separated by and/or operators, so certain properties
  270465. can be used to omit a node:
  270466. .INDENT 0.0
  270467. .INDENT 3.5
  270468. .sp
  270469. .nf
  270470. .ft C
  270471. salt \-C \(aqwebserv* and G@os:Debian or E@db.*\(aq test.ping
  270472. .ft P
  270473. .fi
  270474. .UNINDENT
  270475. .UNINDENT
  270476. .sp
  270477. will match all minions with ids starting with webserv via a glob and minions
  270478. matching the \fBos:Debian\fP grain. Or minions that match the \fBdb.*\fP regular
  270479. expression.
  270480. .SS Node Groups
  270481. .sp
  270482. Often the convenience of having a predefined group of minions to execute
  270483. targets on is desired. This can be accomplished with the new nodegroups
  270484. feature. Nodegroups allow for predefined compound targets to be declared in
  270485. the master configuration file:
  270486. .INDENT 0.0
  270487. .INDENT 3.5
  270488. .sp
  270489. .nf
  270490. .ft C
  270491. nodegroups:
  270492. group1: \(aqL@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com\(aq
  270493. group2: \(aqG@os:Debian and foo.domain.com\(aq
  270494. .ft P
  270495. .fi
  270496. .UNINDENT
  270497. .UNINDENT
  270498. .sp
  270499. And then used via the \fB\-N\fP option:
  270500. .INDENT 0.0
  270501. .INDENT 3.5
  270502. .sp
  270503. .nf
  270504. .ft C
  270505. salt \-N group1 test.ping
  270506. .ft P
  270507. .fi
  270508. .UNINDENT
  270509. .UNINDENT
  270510. .SS Minion Side Data Store
  270511. .sp
  270512. The data module introduces the initial approach into storing persistent data on
  270513. the minions, specific to the minions. This allows for data to be stored on
  270514. minions that can be accessed from the master or from the minion.
  270515. .sp
  270516. The Minion datastore is young, and will eventually provide an interface similar
  270517. to a more mature key/value pair server.
  270518. .SS Major Grains Improvement
  270519. .sp
  270520. The Salt grains have been overhauled to include a massive amount of extra data.
  270521. this includes hardware data, os data and salt specific data.
  270522. .SS Salt \-Q is Useful Now
  270523. .sp
  270524. In the past the salt query system, which would display the data from recent
  270525. executions would be displayed in pure Python, and it was unreadable.
  270526. .sp
  270527. 0.9.5 has added the outputter system to the \fB\-Q\fP option, thus enabling the
  270528. salt query system to return readable output.
  270529. .SS Packaging Updates
  270530. .sp
  270531. Huge strides have been made in packaging Salt for distributions. These
  270532. additions are thanks to our wonderful community where the work to set up
  270533. packages has proceeded tirelessly.
  270534. .SS FreeBSD
  270535. .sp
  270536. Salt on FreeBSD? There a port for that:
  270537. .sp
  270538. \fI\%https://svnweb.freebsd.org/ports/head/sysutils/py\-salt/\fP
  270539. .sp
  270540. This port was developed and added by Christer Edwards. This also marks the
  270541. first time Salt has been included in an upstream packaging system!
  270542. .SS Fedora and Red Hat Enterprise
  270543. .sp
  270544. Salt packages have been prepared for inclusion in the Fedora Project and in
  270545. EPEL for Red Hat Enterprise 5 and 6. These packages are the result of the
  270546. efforts made by Clint Savage (herlo).
  270547. .SS Debian/Ubuntu
  270548. .sp
  270549. A team of many contributors have assisted in developing packages for Debian
  270550. and Ubuntu. Salt is still actively seeking inclusion in upstream Debian and
  270551. Ubuntu and the package data that has been prepared is being pushed through
  270552. the needed channels for inclusion.
  270553. .sp
  270554. These packages have been prepared with the help of:
  270555. .INDENT 0.0
  270556. .IP \(bu 2
  270557. Corey
  270558. .IP \(bu 2
  270559. Aaron Toponce
  270560. .IP \(bu 2
  270561. and\(ga
  270562. .UNINDENT
  270563. .SS More to Come
  270564. .sp
  270565. We are actively seeking inclusion in more distributions. Primarily getting
  270566. Salt into Gentoo, SUSE, OpenBSD, and preparing Solaris support are all turning
  270567. into higher priorities.
  270568. .SS Refinement
  270569. .sp
  270570. Salt continues to be refined into a faster, more stable and more usable
  270571. application. 0.9.5 comes with more debug logging, more bug fixes and more
  270572. complete support.
  270573. .SS More Testing, More BugFixes
  270574. .sp
  270575. 0.9.5 comes with more bugfixes due to more testing than any previous release.
  270576. The growing community and the introduction a dedicated QA environment have
  270577. unearthed many issues that were hiding under the covers. This has further
  270578. refined and cleaned the state interface, taking care of things from minor
  270579. visual issues to repairing misleading data.
  270580. .SS Custom Exceptions
  270581. .sp
  270582. A custom exception module has been added to throw salt specific exceptions.
  270583. This allows Salt to give much more granular error information.
  270584. .SS New Modules
  270585. .SS \fBdata\fP
  270586. .sp
  270587. The new data module manages a persistent datastore on the minion.
  270588. Big thanks to bastichelaar for his help refining this module
  270589. .SS \fBfreebsdkmod\fP
  270590. .sp
  270591. FreeBSD kernel modules can now be managed in the same way Salt handles Linux
  270592. kernel modules.
  270593. .sp
  270594. This module was contributed thanks to the efforts of Christer Edwards
  270595. .SS \fBgentoo_service\fP
  270596. .sp
  270597. Support has been added for managing services in Gentoo. Now Gentoo services
  270598. can be started, stopped, restarted, enabled, disabled, and viewed.
  270599. .SS \fBpip\fP
  270600. .sp
  270601. The pip module introduces management for pip installed applications.
  270602. Thanks goes to whitinge for the addition of the pip module
  270603. .SS \fBrh_service\fP
  270604. .sp
  270605. The rh_service module enables Red Hat and Fedora specific service management.
  270606. Now Red Hat like systems come with extensive management of the classic init
  270607. system used by Red Hat
  270608. .SS \fBsaltutil\fP
  270609. .sp
  270610. The saltutil module has been added as a place to hold functions used in the
  270611. maintenance and management of salt itself. Saltutil is used to salt the salt
  270612. minion. The saltutil module is presently used only to sync extension modules
  270613. from the master server.
  270614. .SS \fBsystemd\fP
  270615. .sp
  270616. Systemd support has been added to Salt, now systems using this next generation
  270617. init system are supported on systems running systemd.
  270618. .SS \fBvirtualenv\fP
  270619. .sp
  270620. The virtualenv module has been added to allow salt to create virtual Python
  270621. environments.
  270622. Thanks goes to whitinge for the addition of the virtualenv module
  270623. .SS \fBwin_disk\fP
  270624. .sp
  270625. Support for gathering disk information on Microsoft Windows minions
  270626. The windows modules come courtesy of Utah_Dave
  270627. .SS \fBwin_service\fP
  270628. .sp
  270629. The win_service module adds service support to Salt for Microsoft Windows
  270630. services
  270631. .SS \fBwin_useradd\fP
  270632. .sp
  270633. Salt can now manage local users on Microsoft Windows Systems
  270634. .SS \fByumpkg5\fP
  270635. .sp
  270636. The yumpkg module introduces in 0.9.4 uses the yum API to interact with the
  270637. yum package manager. Unfortunately, on Red Hat 5 systems salt does not have
  270638. access to the yum API because the yum API is running under Python 2.4 and Salt
  270639. needs to run under Python 2.6.
  270640. .sp
  270641. The yumpkg5 module bypasses this issue by shelling out to yum on systems where
  270642. the yum API is not available.
  270643. .SS New States
  270644. .SS \fBmysql_database\fP
  270645. .sp
  270646. The new mysql_database state adds the ability to systems running a mysql
  270647. server to manage the existence of mysql databases.
  270648. .sp
  270649. The mysql states are thanks to syphernl
  270650. .SS \fBmysql_user\fP
  270651. .sp
  270652. The mysql_user state enables mysql user management.
  270653. .SS \fBvirtualenv\fP
  270654. .sp
  270655. The virtualenv state can manage the state of Python virtual environments.
  270656. Thanks to Whitinge for the virtualenv state
  270657. .SS New Returners
  270658. .SS \fBcassandra_returner\fP
  270659. .sp
  270660. A returner allowing Salt to send data to a cassandra server.
  270661. Thanks to Byron Clark for contributing this returner
  270662. .SS Salt 0.9.6 Release Notes
  270663. .INDENT 0.0
  270664. .TP
  270665. .B release
  270666. 2012\-01\-21
  270667. .UNINDENT
  270668. .sp
  270669. Salt 0.9.6 is a release targeting a few bugs and changes. This is primarily
  270670. targeting an issue found in the names declaration in the state system. But a
  270671. few other bugs were also repaired, like missing support for grains in extmods.
  270672. .sp
  270673. Due to a conflict in distribution packaging msgpack will no longer be bundled
  270674. with Salt, and is required as a dependency.
  270675. .SS New Features
  270676. .SS HTTP and ftp support in files.managed
  270677. .sp
  270678. Now under the source option in the file.managed state a HTTP or ftp address
  270679. can be used instead of a file located on the salt master.
  270680. .SS Allow Multiple Returners
  270681. .sp
  270682. Now the returner interface can define multiple returners, and will also return
  270683. data back to the master, making the process less ambiguous.
  270684. .SS Minion Memory Improvements
  270685. .sp
  270686. A number of modules have been taken out of the minion if the underlying
  270687. systems required by said modules are not present on the minion system.
  270688. A number of other modules need to be stripped out in this same way which
  270689. should continue to make the minion more efficient.
  270690. .SS Minions Can Locally Cache Return Data
  270691. .sp
  270692. A new option, cache_jobs, has been added to the minion to allow for all of the
  270693. historically run jobs to cache on the minion, allowing for looking up historic
  270694. returns. By default cache_jobs is set to False.
  270695. .SS Pure Python Template Support For file.managed
  270696. .sp
  270697. Templates in the file.managed state can now be defined in a Python script.
  270698. This script needs to have a run function that returns the string that needs to
  270699. be in the named file.
  270700. .SS Salt 0.9.7 Release Notes
  270701. .INDENT 0.0
  270702. .TP
  270703. .B release
  270704. 2012\-02\-15
  270705. .UNINDENT
  270706. .sp
  270707. Salt 0.9.7 is here! The latest iteration of Salt brings more features and many
  270708. fixes. This release is a great refinement over 0.9.6, adding many conveniences
  270709. under the hood, as well as some features that make working with Salt much
  270710. better.
  270711. .sp
  270712. A few highlights include the new Job system, refinements to the requisite
  270713. system in states, the \fBmod_init\fP interface for states, external node
  270714. classification, search path to managed files in the file state, and refinements
  270715. and additions to dynamic module loading.
  270716. .sp
  270717. 0.9.7 also introduces the long developed (and oft changed) unit test framework
  270718. and the initial unit tests.
  270719. .SS Major Features
  270720. .SS Salt Jobs Interface
  270721. .sp
  270722. The new jobs interface makes the management of running executions much cleaner
  270723. and more transparent. Building on the existing execution framework the jobs
  270724. system allows clear introspection into the active running state of the
  270725. running Salt interface.
  270726. .sp
  270727. The Jobs interface is centered in the new minion side proc system. The
  270728. minions now store msgpack serialized files under \fB/var/cache/salt/proc\fP\&.
  270729. These files keep track of the active state of processes on the minion.
  270730. .SS Functions in the saltutil Module
  270731. .sp
  270732. A number of functions have been added to the saltutil module to manage and
  270733. view the jobs:
  270734. .sp
  270735. \fBrunning\fP \- Returns the data of all running jobs that are found in the proc
  270736. directory.
  270737. .sp
  270738. \fBfind_job\fP \- Returns specific data about a certain job based on job id.
  270739. .sp
  270740. \fBsignal_job\fP \- Allows for a given jid to be sent a signal.
  270741. .sp
  270742. \fBterm_job\fP \- Sends a termination signal (\fBSIGTERM, 15\fP) to the process
  270743. controlling the specified job.
  270744. .sp
  270745. \fBkill_job\fP Sends a kill signal (\fBSIGKILL, 9\fP) to the process controlling the
  270746. specified job.
  270747. .SS The jobs Runner
  270748. .sp
  270749. A convenience runner front end and reporting system has been added as well.
  270750. The jobs runner contains functions to make viewing data easier and cleaner.
  270751. .sp
  270752. The jobs runner contains a number of functions...
  270753. .SS active
  270754. .sp
  270755. The active function runs \fBsaltutil.running\fP on all minions and formats the
  270756. return data about all running jobs in a much more usable and compact format.
  270757. The active function will also compare jobs that have returned and jobs that
  270758. are still running, making it easier to see what systems have completed a job
  270759. and what systems are still being waited on.
  270760. .SS lookup_jid
  270761. .sp
  270762. When jobs are executed the return data is sent back to the master and cached.
  270763. By default is cached for 24 hours, but this can be configured via the
  270764. \fBkeep_jobs\fP option in the master configuration.
  270765. .sp
  270766. Using the \fBlookup_jid\fP runner will display the same return data that the
  270767. initial job invocation with the salt command would display.
  270768. .SS list_jobs
  270769. .sp
  270770. Before finding a historic job, it may be required to find the job id.
  270771. \fBlist_jobs\fP will parse the cached execution data and display all of the job
  270772. data for jobs that have already, or partially returned.
  270773. .SS External Node Classification
  270774. .sp
  270775. Salt can now use external node classifiers like Cobbler\(aqs
  270776. \fBcobbler\-ext\-nodes\fP\&.
  270777. .sp
  270778. Salt uses specific data from the external node classifier. In particular the
  270779. classes value denotes which sls modules to run, and the environment value sets
  270780. to another environment.
  270781. .sp
  270782. An external node classification can be set in the master configuration file via
  270783. the \fBexternal_nodes\fP option:
  270784. \fI\%https://salt.readthedocs.io/en/latest/ref/configuration/master.html#external\-nodes\fP
  270785. .sp
  270786. External nodes are loaded in addition to the top files. If it is intended to
  270787. only use external nodes, do not deploy any top files.
  270788. .SS State Mod Init System
  270789. .sp
  270790. An issue arose with the pkg state. Every time a package was run Salt would
  270791. need to refresh the package database. This made systems with slower package
  270792. metadata refresh speeds much slower to work with. To alleviate this issue the
  270793. \fBmod_init\fP interface has been added to salt states.
  270794. .sp
  270795. The \fBmod_init\fP interface is a function that can be added to a state file.
  270796. This function is called with the first state called. In the case of the pkg
  270797. state, the \fBmod_init\fP function sets up a tag which makes the package database
  270798. only refresh on the first attempt to install a package.
  270799. .sp
  270800. In a nutshell, the \fBmod_init\fP interface allows a state to run any command that
  270801. only needs to be run once, or can be used to set up an environment for working
  270802. with the state.
  270803. .SS Source File Search Path
  270804. .sp
  270805. The file state continues to be refined, adding speed and capabilities. This
  270806. release adds the ability to pass a list to the source option. This list is then
  270807. iterated over until the source file is found, and the first found file is used.
  270808. .sp
  270809. The new syntax looks like this:
  270810. .INDENT 0.0
  270811. .INDENT 3.5
  270812. .sp
  270813. .nf
  270814. .ft C
  270815. /etc/httpd/conf/httpd.conf:
  270816. file:
  270817. \- managed
  270818. \- source:
  270819. \- salt://httpd/httpd.conf
  270820. \- http://myserver/httpd.conf: md5=8c1fe119e6f1fd96bc06614473509bf1
  270821. .ft P
  270822. .fi
  270823. .UNINDENT
  270824. .UNINDENT
  270825. .sp
  270826. The source option can take sources in the list from the salt file server
  270827. as well as an arbitrary web source. If using an arbitrary web source the
  270828. checksum needs to be passed as well for file verification.
  270829. .SS Refinements to the Requisite System
  270830. .sp
  270831. A few discrepancies were still lingering in the requisite system, in
  270832. particular, it was not possible to have a \fBrequire\fP and a \fBwatch\fP requisite
  270833. declared in the same state declaration.
  270834. .sp
  270835. This issue has been alleviated, as well as making the requisite system run
  270836. more quickly.
  270837. .SS Initial Unit Testing Framework
  270838. .sp
  270839. Because of the module system, and the need to test real scenarios, the
  270840. development of a viable unit testing system has been difficult, but unit
  270841. testing has finally arrived. Only a small amount of unit testing coverage
  270842. has been developed, much more coverage will be in place soon.
  270843. .sp
  270844. A huge thanks goes out to those who have helped with unit testing, and the
  270845. contributions that have been made to get us where we are. Without these
  270846. contributions unit tests would still be in the dark.
  270847. .SS Compound Targets Expanded
  270848. .sp
  270849. Originally only support for \fBand\fP and \fBor\fP were available in the compound
  270850. target. 0.9.7 adds the capability to negate compound targets with \fBnot\fP\&.
  270851. .SS Nodegroups in the Top File
  270852. .sp
  270853. Previously the nodegroups defined in the master configuration file could not
  270854. be used to match nodes for states. The nodegroups support has been expanded
  270855. and the nodegroups defined in the master configuration can now be used to
  270856. match minions in the top file.
  270857. .SS Salt 0.9.8 Release Notes
  270858. .INDENT 0.0
  270859. .TP
  270860. .B release
  270861. 2012\-03\-21
  270862. .UNINDENT
  270863. .sp
  270864. Salt 0.9.8 is a big step forward, with many additions and enhancements, as
  270865. well as a number of precursors to advanced future developments.
  270866. .sp
  270867. This version of Salt adds much more power to the command line, making the
  270868. old hard timeout issues a thing of the past and adds keyword argument
  270869. support. These additions are also available in the salt client API, making
  270870. the available API tools much more powerful.
  270871. .sp
  270872. The new pillar system allows for data to be stored on the master and
  270873. assigned to minions in a granular way similar to the state system. It also
  270874. allows flexibility for users who want to keep data out of their state tree
  270875. similar to \(aqexternal lookup\(aq functionality in other tools.
  270876. .sp
  270877. A new way to extend requisites was added, the "requisite in" statement.
  270878. This makes adding requires or watch statements to external state decs
  270879. much easier.
  270880. .sp
  270881. Additions to requisites making them much more powerful have been added as well
  270882. as improved error checking for sls files in the state system. A new provider
  270883. system has been added to allow for redirecting what modules run in the
  270884. background for individual states.
  270885. .sp
  270886. Support for openSUSE has been added and support for Solaris has begun
  270887. serious development. Windows support has been significantly enhanced as well.
  270888. .sp
  270889. The matcher and target systems have received a great deal of attention. The
  270890. default behavior of grain matching has changed slightly to reflect the rest
  270891. of salt and the compound matcher system has been refined.
  270892. .sp
  270893. A number of impressive features with keyword arguments have been added to both
  270894. the CLI and to the state system. This makes states much more powerful and
  270895. flexible while maintaining the simple configuration everyone loves.
  270896. .sp
  270897. The new batch size capability allows for executions to be rolled through a
  270898. group of targeted minions a percentage or specific number at a time. This
  270899. was added to prevent the "thundering herd" problem when targeting large
  270900. numbers of minions for things like service restarts or file downloads.
  270901. .SS Upgrade Considerations
  270902. .SS Upgrade Issues
  270903. .sp
  270904. There was a previously missed oversight which could cause a newer minion to
  270905. crash an older master. That oversight has been resolved so the version
  270906. incompatibility issue will no longer occur. When upgrading to 0.9.8 make
  270907. sure to upgrade the master first, followed by the minions.
  270908. .SS Debian/Ubuntu Packages
  270909. .sp
  270910. The original Debian/Ubuntu packages were called salt and included all salt
  270911. applications. New packages in the ppa are split by function. If an old salt
  270912. package is installed then it should be manually removed and the new split
  270913. packages need to be freshly installed.
  270914. .sp
  270915. On the master:
  270916. .INDENT 0.0
  270917. .INDENT 3.5
  270918. .sp
  270919. .nf
  270920. .ft C
  270921. # apt\-get purge salt
  270922. # apt\-get install salt\-{master,minion}
  270923. .ft P
  270924. .fi
  270925. .UNINDENT
  270926. .UNINDENT
  270927. .sp
  270928. On the minions:
  270929. .INDENT 0.0
  270930. .INDENT 3.5
  270931. .sp
  270932. .nf
  270933. .ft C
  270934. # apt\-get purge salt
  270935. # apt\-get install salt\-minion
  270936. .ft P
  270937. .fi
  270938. .UNINDENT
  270939. .UNINDENT
  270940. .sp
  270941. And on any Syndics:
  270942. .INDENT 0.0
  270943. .INDENT 3.5
  270944. .sp
  270945. .nf
  270946. .ft C
  270947. # apt\-get install salt\-syndic
  270948. .ft P
  270949. .fi
  270950. .UNINDENT
  270951. .UNINDENT
  270952. .sp
  270953. The official Salt PPA for Ubuntu is located at:
  270954. \fI\%https://launchpad.net/~saltstack/+archive/ubuntu/salt\fP
  270955. .SS Major Features
  270956. .SS Pillar
  270957. .sp
  270958. Pillar offers an interface to declare variable data on the master that is then
  270959. assigned to the minions. The pillar data is made available to all modules,
  270960. states, sls files etc. It is compiled on the master and is declared using the
  270961. existing renderer system. This means that learning pillar should be fairly
  270962. trivial to those already familiar with salt states.
  270963. .SS CLI Additions
  270964. .sp
  270965. The \fBsalt\fP command has received a serious overhaul and is more powerful
  270966. than ever. Data is returned to the terminal as it is received, and the salt
  270967. command will now wait for all running minions to return data before stopping.
  270968. This makes adding very large \fI\-\-timeout\fP arguments completely unnecessary and
  270969. gets rid of long running operations returning empty \fB{}\fP when the timeout is
  270970. exceeded.
  270971. .sp
  270972. When calling salt via sudo, the user originally running salt is saved to the
  270973. log for auditing purposes. This makes it easy to see who ran what by just
  270974. looking through the minion logs.
  270975. .sp
  270976. The \fIsalt\-key\fP command gained the \fI\-D\fP and \fI\-\-delete\-all\fP arguments for
  270977. removing all keys. Be careful with this one!
  270978. .SS Running States Without a Master
  270979. .sp
  270980. The addition of running states without a salt\-master has been added
  270981. to 0.9.8. This feature allows for the unmodified salt state tree to be
  270982. read locally from a minion. The result is that the UNMODIFIED state tree
  270983. has just become portable, allowing minions to have a local copy of states
  270984. or to manage states without a master entirely.
  270985. .sp
  270986. This is accomplished via the new file client interface in Salt that allows
  270987. for the \fBsalt://\fP URI to be redirected to custom interfaces. This means that
  270988. there are now two interfaces for the salt file server, calling the master
  270989. or looking in a local, minion defined \fBfile_roots\fP\&.
  270990. .sp
  270991. This new feature can be used by modifying the minion config to point to a
  270992. local \fBfile_roots\fP and setting the \fBfile_client\fP option to \fBlocal\fP\&.
  270993. .SS Keyword Arguments and States
  270994. .sp
  270995. State modules now accept the \fB**kwargs\fP argument. This results in all data
  270996. in a sls file assigned to a state being made available to the state function.
  270997. .sp
  270998. This passes data in a transparent way back to the modules executing the logic.
  270999. In particular, this allows adding arguments to the \fBpkg.install\fP module that
  271000. enable more advanced and granular controls with respect to what the state is
  271001. capable of.
  271002. .sp
  271003. An example of this along with the new debconf module for installing ldap
  271004. client packages on Debian:
  271005. .INDENT 0.0
  271006. .INDENT 3.5
  271007. .sp
  271008. .nf
  271009. .ft C
  271010. ldap\-client\-packages:
  271011. pkg:
  271012. \- debconf: salt://debconf/ldap\-client.ans
  271013. \- installed
  271014. \- names:
  271015. \- nslcd
  271016. \- libpam\-ldapd
  271017. \- libnss\-ldapd
  271018. .ft P
  271019. .fi
  271020. .UNINDENT
  271021. .UNINDENT
  271022. .SS Keyword Arguments and the CLI
  271023. .sp
  271024. In the past it was required that all arguments be passed in the proper order to
  271025. the \fIsalt\fP and \fIsalt\-call\fP commands. As of 0.9.8, keyword arguments can be
  271026. passed in the form of \fBkwarg=argument\fP\&.
  271027. .INDENT 0.0
  271028. .INDENT 3.5
  271029. .sp
  271030. .nf
  271031. .ft C
  271032. # salt \-G \(aqtype:dev\(aq git.clone \e
  271033. repository=https://github.com/saltstack/salt.git cwd=/tmp/salt user=jeff
  271034. .ft P
  271035. .fi
  271036. .UNINDENT
  271037. .UNINDENT
  271038. .SS Matcher Refinements and Changes
  271039. .sp
  271040. A number of fixes and changes have been applied to the Matcher system. The
  271041. most noteworthy is the change in the grain matcher. The grain matcher used to
  271042. use a regular expression to match the passed data to a grain, but now defaults
  271043. to a shell glob like the majority of match interfaces in Salt. A new option
  271044. is available that still uses the old style regex matching to grain data called
  271045. \fBgrain\-pcre\fP\&. To use regex matching in compound matches use the letter \fIP\fP\&.
  271046. .sp
  271047. For example, this would match any ArchLinux or Fedora minions:
  271048. .INDENT 0.0
  271049. .INDENT 3.5
  271050. .sp
  271051. .nf
  271052. .ft C
  271053. # salt \-\-grain\-pcre \(aqos:(Arch:Fed).*\(aq test.ping
  271054. .ft P
  271055. .fi
  271056. .UNINDENT
  271057. .UNINDENT
  271058. .sp
  271059. And the associated compound matcher suitable for \fBtop.sls\fP is \fIP\fP:
  271060. .INDENT 0.0
  271061. .INDENT 3.5
  271062. .sp
  271063. .nf
  271064. .ft C
  271065. P@os:(Arch|Fed).*
  271066. .ft P
  271067. .fi
  271068. .UNINDENT
  271069. .UNINDENT
  271070. .sp
  271071. \fBNOTE\fP: Changing the grains matcher from pcre to glob is backwards
  271072. incompatible.
  271073. .sp
  271074. Support has been added for matching minions with Yahoo\(aqs range library. This
  271075. is handled by passing range syntax with \fI\-R\fP or \fI\-\-range\fP arguments to salt.
  271076. .sp
  271077. More information at:
  271078. \fI\%https://github.com/ytoolshed/range/wiki/%22yamlfile%22\-module\-file\-spec\fP
  271079. .SS Requisite "in"
  271080. .sp
  271081. A new means to updating requisite statements has been added to make adding
  271082. watchers and requires to external states easier. Before 0.9.8 the only way
  271083. to extend the states that were watched by a state outside of the sls was to
  271084. use an extend statement:
  271085. .INDENT 0.0
  271086. .INDENT 3.5
  271087. .sp
  271088. .nf
  271089. .ft C
  271090. include:
  271091. \- http
  271092. extend:
  271093. apache:
  271094. service:
  271095. \- watch:
  271096. \- pkg: tomcat
  271097. tomcat:
  271098. pkg:
  271099. \- installed
  271100. .ft P
  271101. .fi
  271102. .UNINDENT
  271103. .UNINDENT
  271104. .sp
  271105. But the new \fBRequisite in\fP statement allows for easier extends for
  271106. requisites:
  271107. .INDENT 0.0
  271108. .INDENT 3.5
  271109. .sp
  271110. .nf
  271111. .ft C
  271112. include:
  271113. \- http
  271114. tomcat:
  271115. pkg:
  271116. \- installed
  271117. \- watch_in:
  271118. \- service: apache
  271119. .ft P
  271120. .fi
  271121. .UNINDENT
  271122. .UNINDENT
  271123. .sp
  271124. Requisite in is part of the extend system, so still remember to always include
  271125. the sls that is being extended!
  271126. .SS Providers
  271127. .sp
  271128. Salt predetermines what modules should be mapped to what uses based on the
  271129. properties of a system. These determinations are generally made for modules
  271130. that provide things like package and service management. The apt module
  271131. maps to pkg on Debian and the yum module maps to pkg on Fedora for instance.
  271132. .sp
  271133. Sometimes in states, it may be necessary for a non\-default module to be used
  271134. for the desired functionality. For instance, an Arch Linux system may have
  271135. been set up with systemd support. Instead of using the default service module
  271136. detected for Arch Linux, the systemd module can be used:
  271137. .INDENT 0.0
  271138. .INDENT 3.5
  271139. .sp
  271140. .nf
  271141. .ft C
  271142. http:
  271143. service:
  271144. \- running
  271145. \- enable: True
  271146. \- provider: systemd
  271147. .ft P
  271148. .fi
  271149. .UNINDENT
  271150. .UNINDENT
  271151. .sp
  271152. Default providers can also be defined in the minion config file:
  271153. .INDENT 0.0
  271154. .INDENT 3.5
  271155. .sp
  271156. .nf
  271157. .ft C
  271158. providers:
  271159. service: systemd
  271160. .ft P
  271161. .fi
  271162. .UNINDENT
  271163. .UNINDENT
  271164. .sp
  271165. When default providers are passed in the minion config, then those providers
  271166. will be applied to all functionality in Salt, this means that the functions
  271167. called by the minion will use these modules, as well as states.
  271168. .SS Requisite Glob Matching
  271169. .sp
  271170. Requisites can now be defined with glob expansion. This means that if there are
  271171. many requisites, they can be defined on a single line.
  271172. .sp
  271173. To watch all files in a directory:
  271174. .INDENT 0.0
  271175. .INDENT 3.5
  271176. .sp
  271177. .nf
  271178. .ft C
  271179. http:
  271180. service:
  271181. \- running
  271182. \- enable: True
  271183. \- watch:
  271184. \- file: /etc/http/conf.d/*
  271185. .ft P
  271186. .fi
  271187. .UNINDENT
  271188. .UNINDENT
  271189. .sp
  271190. This example will watch all defined files that match the glob
  271191. \fB/etc/http/conf.d/*\fP
  271192. .SS Batch Size
  271193. .sp
  271194. The new batch size option allows commands to be executed while maintaining that
  271195. only so many hosts are executing the command at one time. This option can
  271196. take a percentage or a finite number:
  271197. .INDENT 0.0
  271198. .INDENT 3.5
  271199. .sp
  271200. .nf
  271201. .ft C
  271202. salt \(aq*\(aq \-b 10 test.ping
  271203. salt \-G \(aqos:RedHat\(aq \-\-batch\-size 25% apache.signal restart
  271204. .ft P
  271205. .fi
  271206. .UNINDENT
  271207. .UNINDENT
  271208. .sp
  271209. This will only run test.ping on 10 of the targeted minions at a time and then
  271210. restart apache on 25% of the minions matching \fBos:RedHat\fP at a time and work
  271211. through them all until the task is complete. This makes jobs like rolling web
  271212. server restarts behind a load balancer or doing maintenance on BSD firewalls
  271213. using carp much easier with salt.
  271214. .SS Module Updates
  271215. .sp
  271216. This is a list of notable, but non\-exhaustive updates with new and existing
  271217. modules.
  271218. .sp
  271219. Windows support has seen a flurry of support this release cycle. We\(aqve gained
  271220. all new \fBfile\fP,
  271221. \fBnetwork\fP, and
  271222. \fBshadow\fP modules. Please note
  271223. that these are still a work in progress.
  271224. .sp
  271225. For our ruby users, new \fBrvm\fP and
  271226. \fBgem\fP modules have been added along
  271227. with the \fBassociated\fP
  271228. \fBstates\fP
  271229. .sp
  271230. The \fBvirt\fP module gained basic Xen support.
  271231. .sp
  271232. The \fByum\fP module gained
  271233. Scientific Linux support.
  271234. .sp
  271235. The \fBpkg\fP module on Debian, Ubuntu,
  271236. and derivatives force apt to run in a non\-interactive mode. This prevents
  271237. issues when package installation waits for confirmation.
  271238. .sp
  271239. A \fBpkg\fP module for OpenSUSE\(aqs
  271240. zypper was added.
  271241. .sp
  271242. The \fBservice\fP module on Ubuntu
  271243. natively supports upstart.
  271244. .sp
  271245. A new \fBdebconf\fP module was
  271246. contributed by our community for more advanced control over deb package
  271247. deployments on Debian based distributions.
  271248. .sp
  271249. The \fBmysql.user\fP state and
  271250. \fBmysql\fP module gained a
  271251. \fIpassword_hash\fP argument.
  271252. .sp
  271253. The \fBcmd\fP module and state gained
  271254. a \fIshell\fP keyword argument for specifying a shell other than \fB/bin/sh\fP on
  271255. Linux / Unix systems.
  271256. .sp
  271257. New \fBgit\fP and
  271258. \fBmercurial\fP modules have been added
  271259. for fans of distributed version control.
  271260. .SS In Progress Development
  271261. .SS Master Side State Compiling
  271262. .sp
  271263. While we feel strongly that the advantages gained with minion side state
  271264. compiling are very critical, it does prevent certain features that may be
  271265. desired. 0.9.8 has support for initial master side state compiling, but many
  271266. more components still need to be developed, it is hoped that these can be
  271267. finished for 0.9.9.
  271268. .sp
  271269. The goal is that states can be compiled on both the master and the minion
  271270. allowing for compilation to be split between master and minion. Why will
  271271. this be great? It will allow storing sensitive data on the master and sending
  271272. it to some minions without all minions having access to it. This will be
  271273. good for handling ssl certificates on front\-end web servers for instance.
  271274. .SS Solaris Support
  271275. .sp
  271276. Salt 0.9.8 sees the introduction of basic Solaris support. The daemon runs
  271277. well, but grains and more of the modules need updating and testing.
  271278. .SS Windows Support
  271279. .sp
  271280. Salt states on windows are now much more viable thanks to contributions from
  271281. our community! States for file, service, local user, and local group management are more fully
  271282. fleshed out along with network and disk modules. Windows users can also now manage
  271283. registry entries using the new "reg" module.
  271284. .SS Salt 0.9.9 Release Notes
  271285. .INDENT 0.0
  271286. .TP
  271287. .B release
  271288. 2012\-04\-27
  271289. .UNINDENT
  271290. .sp
  271291. 0.9.9 is out and comes with some serious bug fixes and even more serious
  271292. features. This release is the last major feature release before 1.0.0 and
  271293. could be considered the 1.0.0 release candidate.
  271294. .sp
  271295. A few updates include more advanced kwargs support, the ability for salt
  271296. states to more safely configure a running salt minion, better job directory
  271297. management and the new state test interface.
  271298. .sp
  271299. Many new tests have been added as well, including the new minion swarm test
  271300. that allows for easier testing of Salt working with large groups of minions.
  271301. This means that if you have experienced stability issues with Salt before,
  271302. particularly in larger deployments, that these bugs have been tested for,
  271303. found, and killed.
  271304. .SS Major Features
  271305. .SS State Test Interface
  271306. .sp
  271307. Until 0.9.9 the only option when running states to see what was going to be
  271308. changed was to print out the highstate with state.show_highstate and manually
  271309. look it over. But now states can be run to discover what is going to be
  271310. changed.
  271311. .sp
  271312. Passing the option \fBtest=True\fP to many of the state functions will now cause
  271313. the salt state system to only check for what is going to be changed and report
  271314. on those changes.
  271315. .INDENT 0.0
  271316. .INDENT 3.5
  271317. .sp
  271318. .nf
  271319. .ft C
  271320. salt \(aq*\(aq state.highstate test=True
  271321. .ft P
  271322. .fi
  271323. .UNINDENT
  271324. .UNINDENT
  271325. .sp
  271326. Now states that would have made changes report them back in yellow.
  271327. .SS State Syntax Update
  271328. .sp
  271329. A shorthand syntax has been added to sls files, and it will be the default
  271330. syntax in documentation going forward. The old syntax is still fully supported
  271331. and will not be deprecated, but it is recommended to move to the new syntax in
  271332. the future. This change moves the state function up into the state name using
  271333. a dot notation. This is in\-line with how state functions are generally referred
  271334. to as well:
  271335. .sp
  271336. The new way:
  271337. .INDENT 0.0
  271338. .INDENT 3.5
  271339. .sp
  271340. .nf
  271341. .ft C
  271342. /etc/sudoers:
  271343. file.present:
  271344. \- source: salt://sudo/sudoers
  271345. \- user: root
  271346. \- mode: 400
  271347. .ft P
  271348. .fi
  271349. .UNINDENT
  271350. .UNINDENT
  271351. .SS Use and Use_in Requisites
  271352. .sp
  271353. Two new requisite statements are available in 0.9.9. The use and use_in
  271354. requisite and requisite\-in allow for the transparent duplication of data
  271355. between states. When a state "uses" another state it copies the other state\(aqs
  271356. arguments as defaults. This was created in direct response to the new network
  271357. state, and allows for many network interfaces to be configured in the same way
  271358. easily. A simple example:
  271359. .INDENT 0.0
  271360. .INDENT 3.5
  271361. .sp
  271362. .nf
  271363. .ft C
  271364. root_file:
  271365. file.absent:
  271366. \- name: /tmp/nothing
  271367. \- user: root
  271368. \- mode: 644
  271369. \- group: root
  271370. \- use_in:
  271371. \- file: /etc/vimrc
  271372. fred_file:
  271373. file.absent:
  271374. \- name: /tmp/nothing
  271375. \- user: fred
  271376. \- group: marketing
  271377. \- mode: 660
  271378. /files/marketing/district7.rst:
  271379. file.present:
  271380. \- source: salt://marketing/district7.rst
  271381. \- template: jinja
  271382. \- use:
  271383. \- file: fred_file
  271384. /etc/vimrc:
  271385. file.present:
  271386. \- source: salt://edit/vimrc
  271387. .ft P
  271388. .fi
  271389. .UNINDENT
  271390. .UNINDENT
  271391. .sp
  271392. This makes the 2 lower state decs inherit the options from their respectively
  271393. "used" state decs.
  271394. .SS Network State
  271395. .sp
  271396. The new network state allows for the configuration of network devices via salt
  271397. states and the ip salt module. This addition has been given to the project by
  271398. Jeff Hutchins and Bret Palsson from Jive Communications.
  271399. .sp
  271400. Currently the only network configuration backend available is for Red Hat
  271401. based systems, like Red Hat Enterprise, CentOS, and Fedora.
  271402. .SS Exponential Jobs
  271403. .sp
  271404. Originally the jobs executed were stored on the master in the format:
  271405. \fB<cachedir>/jobs/jid/{minion ids}\fP
  271406. But this format restricted the number of jobs in the cache to the number of
  271407. subdirectories allowed on the filesystem. Ext3 for instance limits
  271408. subdirectories to 32000. To combat this the new format for 0.9.9 is:
  271409. \fB<cachedir>/jobs/jid_hash[:2]/jid_hash[2:]/{minion ids}\fP
  271410. So that now the number of maximum jobs that can be run before the cleanup
  271411. cycle hits the job directory is substantially higher.
  271412. .SS ssh_auth Additions
  271413. .sp
  271414. The original ssh_auth state was limited to accepting only arguments to apply
  271415. to a public key, and the key itself. This was restrictive due to the way the
  271416. we learned that many people were using the state, so the key section has been
  271417. expanded to accept options and arguments to the key that over ride arguments
  271418. passed in the state. This gives substantial power to using ssh_auth with names:
  271419. .INDENT 0.0
  271420. .INDENT 3.5
  271421. .sp
  271422. .nf
  271423. .ft C
  271424. sshkeys:
  271425. ssh_auth:
  271426. \- present
  271427. \- user: backup
  271428. \- enc: ssh\-dss
  271429. \- options:
  271430. \- option1="value1"
  271431. \- option2="value2 flag2"
  271432. \- comment: backup
  271433. \- names:
  271434. \- AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0111==
  271435. \- AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0222== override
  271436. \- ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0333== override
  271437. \- ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0444==
  271438. \- option3="value3",option4="value4 flag4" ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0555== override
  271439. \- option3="value3" ssh\-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAlyE26SMFFVY5YJvnL7AF5CRTPtAigSW1U887ASfBt6FDa7Qr1YdO5ochiLoz8aSiMKd5h4dhB6ymHbmntMPjQena29jQjXAK4AK0500rMShG1Y1HYEjTXjQxIy/SMjq2aycHI+abiVDn3sciQjsLsNW59t48Udivl2RjWG7Eo+LYiB17MKD5M40r5CP2K4B8nuL+r4oAZEHKOJUF3rzA20MZXHRQuki7vVeWcW7ie8JHNBcq8iObVSoruylXav4aKG02d/I4bz/l0UdGh18SpMB8zVnT3YF5nukQQ/ATspmhpU66s4ntMehULC+ljLvZL40ByNmF0TZc2sdSkA0666==
  271440. .ft P
  271441. .fi
  271442. .UNINDENT
  271443. .UNINDENT
  271444. .SS LocalClient Additions
  271445. .sp
  271446. To follow up the recent additions in 0.9.8 of additional kwargs support,
  271447. 0.9.9 also adds the capability to send kwargs into commands via a dict.
  271448. This addition to the LocalClient api can be used like so:
  271449. .INDENT 0.0
  271450. .INDENT 3.5
  271451. .sp
  271452. .nf
  271453. .ft C
  271454. import salt.client
  271455. client = salt.client.LocalClient(\(aq/etc/salt/master\(aq)
  271456. ret = client.cmd(\(aq*\(aq, \(aqcmd.run\(aq, [\(aqls \-l\(aq], kwarg={\(aqcwd\(aq: \(aq/etc\(aq})
  271457. .ft P
  271458. .fi
  271459. .UNINDENT
  271460. .UNINDENT
  271461. .sp
  271462. This update has been added to all cmd methods in the LocalClient class.
  271463. .SS Better Self Salting
  271464. .sp
  271465. One problem faced with running Salt states, is that it has been difficult
  271466. to manage the Salt minion via states, this is due to the fact that if the
  271467. minion is called to restart while a state run is happening then the state
  271468. run would be killed. 0.9.9 slightly changes the process scope of the state
  271469. runs, so now when salt is executing states it can safely restart the
  271470. salt\-minion daemon.
  271471. .sp
  271472. In addition to daemonizing the state run, the apt module also daemonizes.
  271473. This update makes it possible to cleanly update the salt\-minion package on
  271474. Debian/Ubuntu systems without leaving apt in an inconsistent state or killing
  271475. the active minion process mid\-execution.
  271476. .SS Wildcards for SLS Modules
  271477. .sp
  271478. Now, when including sls modules in include statements or in the top file,
  271479. shell globs can be used. This can greatly simplify listing matched sls
  271480. modules in the top file and include statements:
  271481. .INDENT 0.0
  271482. .INDENT 3.5
  271483. .sp
  271484. .nf
  271485. .ft C
  271486. base:
  271487. \(aq*\(aq:
  271488. \- files*
  271489. \- core*
  271490. .ft P
  271491. .fi
  271492. .UNINDENT
  271493. .UNINDENT
  271494. .INDENT 0.0
  271495. .INDENT 3.5
  271496. .sp
  271497. .nf
  271498. .ft C
  271499. include:
  271500. \- users.dev.*
  271501. \- apache.ser*
  271502. .ft P
  271503. .fi
  271504. .UNINDENT
  271505. .UNINDENT
  271506. .SS External Pillar
  271507. .sp
  271508. Since the pillar data is just, data, it does not need to come expressly from
  271509. the pillar interface. The external pillar system allows for hooks to be added
  271510. making it possible to extract pillar data from any arbitrary external
  271511. interface. The external pillar interface is configured via the \fBext_pillar\fP
  271512. option. Currently interfaces exist to gather external pillar data via hiera
  271513. or via a shell command that sends yaml data to the terminal:
  271514. .INDENT 0.0
  271515. .INDENT 3.5
  271516. .sp
  271517. .nf
  271518. .ft C
  271519. ext_pillar:
  271520. \- cmd_yaml: cat /etc/salt/ext.yaml
  271521. \- hiera: /etc/hirea.yaml
  271522. .ft P
  271523. .fi
  271524. .UNINDENT
  271525. .UNINDENT
  271526. .sp
  271527. The initial external pillar interfaces and extra interfaces can be added to
  271528. the file salt/pillar.py, it is planned to add more external pillar interfaces.
  271529. If the need arises a new module loader interface will be created in the future
  271530. to manage external pillar interfaces.
  271531. .SS Single State Executions
  271532. .sp
  271533. The new state.single function allows for single states to be cleanly executed.
  271534. This is a great tool for setting up a small group of states on a system or for
  271535. testing out the behavior of single states:
  271536. .INDENT 0.0
  271537. .INDENT 3.5
  271538. .sp
  271539. .nf
  271540. .ft C
  271541. salt \(aq*\(aq state.single user.present name=wade uid=2000
  271542. .ft P
  271543. .fi
  271544. .UNINDENT
  271545. .UNINDENT
  271546. .sp
  271547. The test interface functions here as well, so changes can also be tested
  271548. against as:
  271549. .INDENT 0.0
  271550. .INDENT 3.5
  271551. .sp
  271552. .nf
  271553. .ft C
  271554. salt \(aq*\(aq state.single user.present name=wade uid=2000 test=True
  271555. .ft P
  271556. .fi
  271557. .UNINDENT
  271558. .UNINDENT
  271559. .SS New Tests
  271560. .sp
  271561. A few exciting new test interfaces have been added, the minion swarm allows
  271562. not only testing of larger loads, but also allows users to see how Salt behaves
  271563. with large groups of minions without having to create a large deployment.
  271564. .SS Minion Swarm
  271565. .sp
  271566. The minion swarm test system allows for large groups of minions to be tested
  271567. against easily without requiring large numbers of servers or virtual
  271568. machines. The minion swarm creates as many minions as a system can handle and
  271569. roots them in the /tmp directory and connects them to a master.
  271570. .sp
  271571. The benefit here is that we were able to replicate issues that happen only
  271572. when there are large numbers of minions. A number of elusive bugs which were
  271573. causing stability issues in masters and minions have since been hunted down.
  271574. Bugs that used to take careful watch by users over several days can now be
  271575. reliably replicated in minutes, and fixed in minutes.
  271576. .sp
  271577. Using the swarm is easy, make sure a master is up for the swarm to connect to,
  271578. and then use the minionswarm.py script in the tests directory to spin up
  271579. as many minions as you want. Remember, this is a fork bomb, don\(aqt spin up more
  271580. than your hardware can handle!
  271581. .INDENT 0.0
  271582. .INDENT 3.5
  271583. .sp
  271584. .nf
  271585. .ft C
  271586. python minionswarm.py \-m 20 \-\-master salt\-master
  271587. .ft P
  271588. .fi
  271589. .UNINDENT
  271590. .UNINDENT
  271591. .SS Shell Tests
  271592. .sp
  271593. The new Shell testing system allows us to test the behavior of commands
  271594. executed from a high level. This allows for the high level testing of salt
  271595. runners and commands like salt\-key.
  271596. .SS Client Tests
  271597. .sp
  271598. Tests have been added to test the aspects of the client APIs and ensure that
  271599. the client calls work, and that they manage passed data, in a desirable way.
  271600. .sp
  271601. \fBSEE ALSO:\fP
  271602. .INDENT 0.0
  271603. .INDENT 3.5
  271604. Legacy salt\-cloud release docs
  271605. .UNINDENT
  271606. .UNINDENT
  271607. .sp
  271608. \fBSEE ALSO:\fP
  271609. .INDENT 0.0
  271610. .INDENT 3.5
  271611. Legacy salt\-api release docs
  271612. .UNINDENT
  271613. .UNINDENT
  271614. .SH VENAFI TOOLS FOR SALT
  271615. .SS Introduction
  271616. .sp
  271617. First, you need to configure the \fBmaster\fP file. This is because
  271618. all module functions require either a configured \fBapi_key\fP (for Cloud) or
  271619. \fBa ttp_user\fP with a \fBtpp_password\fP and a \fBbase_url\fP (for Trust Platform).
  271620. .sp
  271621. For Venafi Cloud:
  271622. .INDENT 0.0
  271623. .INDENT 3.5
  271624. .sp
  271625. .nf
  271626. .ft C
  271627. venafi:
  271628. api_key: abcdef01\-2345\-6789\-abcd\-ef0123456789
  271629. base_url: "https://cloud.venafi.example.com/" (optional)
  271630. .ft P
  271631. .fi
  271632. .UNINDENT
  271633. .UNINDENT
  271634. .sp
  271635. If you don\(aqt have a Venafi Cloud account, you can sign up for one on the \fI\%enrollment page\fP\&.
  271636. .sp
  271637. For Venafi Platform:
  271638. .INDENT 0.0
  271639. .INDENT 3.5
  271640. .sp
  271641. .nf
  271642. .ft C
  271643. venafi:
  271644. base_url: "https://tpp.example.com/"
  271645. tpp_user: admin
  271646. tpp_password: "Str0ngPa$$w0rd"
  271647. trust_bundle: "/opt/venafi/bundle.pem"
  271648. .ft P
  271649. .fi
  271650. .UNINDENT
  271651. .UNINDENT
  271652. .sp
  271653. \fIIt is not common for the Venafi Platform\(aqs REST API (WebSDK) to be secured using a certificate issued by a publicly trusted CA, therefore establishing trust for that server certificate is a critical part of your configuration. Ideally this is done by obtaining the root CA certificate in the issuing chain in PEM format and copying that file to your Salt Master (e.g. /opt/venafi/bundle.pem). You then reference that file using the \(aqtrust_bundle\(aq parameter as shown above.\fP
  271654. .sp
  271655. For the Venafi module to create keys and certificates it is necessary to enable external pillars. This is done by adding the following to the \fB/etc/salt/master\fP file:
  271656. .INDENT 0.0
  271657. .INDENT 3.5
  271658. .sp
  271659. .nf
  271660. .ft C
  271661. ext_pillar:
  271662. \- venafi: True
  271663. .ft P
  271664. .fi
  271665. .UNINDENT
  271666. .UNINDENT
  271667. .SS Runner Functions
  271668. .SS request
  271669. .sp
  271670. This command is used to enroll a certificate from Venafi Cloud or Venafi Platform.
  271671. .INDENT 0.0
  271672. .TP
  271673. .B \fBminion_id\fP
  271674. ID of the minion for which the certificate is being issued. Required.
  271675. .TP
  271676. .B \fBdns_name\fP
  271677. DNS subject name for the certificate. Required if \fBcsr_path\fP is not specified.
  271678. .TP
  271679. .B \fBcsr_path\fP
  271680. Full path name of certificate signing request file to enroll. Required if \fBdns_name\fP is not specified.
  271681. .TP
  271682. .B \fBzone\fP
  271683. Venafi Cloud zone ID or Venafi Platform folder that specify key and certificate policy. Defaults to "Default". For Venafi Cloud, the Zone ID can be found in the Zone page for your Venafi Cloud project.
  271684. .TP
  271685. .B \fBorg_unit\fP
  271686. Business Unit, Department, etc. Do not specify if it does not apply.
  271687. .TP
  271688. .B \fBorg\fP
  271689. Exact legal name of your organization. Do not abbreviate.
  271690. .TP
  271691. .B \fBloc\fP
  271692. City/locality where your organization is legally located.
  271693. .TP
  271694. .B \fBstate\fP
  271695. State or province where your organization is legally located. Must not be abbreviated.
  271696. .TP
  271697. .B \fBcountry\fP
  271698. Country where your organization is legally located; two\-letter ISO code.
  271699. .TP
  271700. .B \fBkey_password\fP
  271701. Password for encrypting the private key.
  271702. .UNINDENT
  271703. .sp
  271704. The syntax for requesting a new certificate with private key generation looks like this:
  271705. .INDENT 0.0
  271706. .INDENT 3.5
  271707. .sp
  271708. .nf
  271709. .ft C
  271710. salt\-run venafi.request minion.example.com dns_name=www.example.com \e
  271711. country=US state=California loc=Sacramento org="Company Name" org_unit=DevOps \e
  271712. zone=Internet key_password=SecretSauce
  271713. .ft P
  271714. .fi
  271715. .UNINDENT
  271716. .UNINDENT
  271717. .sp
  271718. And the syntax for requesting a new certificate using a previously generated CSR looks like this:
  271719. .INDENT 0.0
  271720. .INDENT 3.5
  271721. .sp
  271722. .nf
  271723. .ft C
  271724. salt\-run venafi.request minion.example.com csr_path=/tmp/minion.req zone=Internet
  271725. .ft P
  271726. .fi
  271727. .UNINDENT
  271728. .UNINDENT
  271729. .SS show_cert
  271730. .sp
  271731. This command is used to show last issued certificate for domain.
  271732. .INDENT 0.0
  271733. .TP
  271734. .B \fBdns_name\fP
  271735. DNS subject name of the certificate to look up.
  271736. .UNINDENT
  271737. .INDENT 0.0
  271738. .INDENT 3.5
  271739. .sp
  271740. .nf
  271741. .ft C
  271742. salt\-run venafi.show_cert www.example.com
  271743. .ft P
  271744. .fi
  271745. .UNINDENT
  271746. .UNINDENT
  271747. .SS list_domain_cache
  271748. .sp
  271749. This command lists domains that have been cached on this Salt Master.
  271750. .INDENT 0.0
  271751. .INDENT 3.5
  271752. .sp
  271753. .nf
  271754. .ft C
  271755. salt\-run venafi.list_domain_cache
  271756. .ft P
  271757. .fi
  271758. .UNINDENT
  271759. .UNINDENT
  271760. .SS del_cached_domain
  271761. .sp
  271762. This command deletes a domain from the Salt Master\(aqs cache.
  271763. .INDENT 0.0
  271764. .TP
  271765. .B \fBdomains\fP
  271766. A domain name, or a comma\-separated list of domain names, to delete from this master\(aqs cache.
  271767. .UNINDENT
  271768. .INDENT 0.0
  271769. .INDENT 3.5
  271770. .sp
  271771. .nf
  271772. .ft C
  271773. salt\-run venafi.del_cached_domain www.example.com
  271774. .ft P
  271775. .fi
  271776. .UNINDENT
  271777. .UNINDENT
  271778. .SS Transfer certificate to a minion
  271779. .sp
  271780. To transfer a cached certificate to a minion, you can use Venafi pillar.
  271781. .sp
  271782. Example state (SLS) file:
  271783. .INDENT 0.0
  271784. .INDENT 3.5
  271785. .sp
  271786. .nf
  271787. .ft C
  271788. /etc/ssl/cert/www.example.com.crt:
  271789. file.managed:
  271790. \- contents_pillar: venafi:www.example.com:cert
  271791. \- replace: True
  271792. /etc/ssl/cert/www.example.com.key:
  271793. file.managed:
  271794. \- contents_pillar: venafi:www.example.com:pkey
  271795. \- replace: True
  271796. /etc/ssl/cert/www.example.com\-chain.pem:
  271797. file.managed:
  271798. \- contents_pillar: venafi:www.example.com:chain
  271799. \- replace: True
  271800. .ft P
  271801. .fi
  271802. .UNINDENT
  271803. .UNINDENT
  271804. .SH GLOSSARY
  271805. .INDENT 0.0
  271806. .TP
  271807. .B Auto\-Order
  271808. The evaluation of states in the order that they are defined in a SLS
  271809. file. \fISee also\fP: ordering\&.
  271810. .TP
  271811. .B Bootstrap
  271812. A stand\-alone Salt project which can download and install a Salt master
  271813. and/or a Salt minion onto a host. \fISee also\fP: \fI\%salt\-bootstrap\fP\&.
  271814. .TP
  271815. .B Compound Matcher
  271816. A combination of many target definitions that can be combined with
  271817. boolean operators. \fISee also\fP: targeting\&.
  271818. .TP
  271819. .B EAuth
  271820. Shorthand for \(aqexternal authentication\(aq. A system for calling to a
  271821. system outside of Salt in order to authenticate users and determine if
  271822. they are allowed to issue particular commands to Salt. \fISee also\fP:
  271823. external auth\&.
  271824. .TP
  271825. .B Environment
  271826. A directory tree containing state files which can be applied to
  271827. minions. \fISee also\fP: top file\&.
  271828. .TP
  271829. .B Execution Function
  271830. A Python function inside an Execution Module that may take arguments
  271831. and performs specific system\-management tasks. \fISee also\fP: the
  271832. list of execution modules\&.
  271833. .TP
  271834. .B External Job Cache
  271835. An external data\-store that can archive information about jobs that
  271836. have been run. A default returner. \fISee also\fP:
  271837. \fBext_job_cache\fP, the list of returners\&.
  271838. .TP
  271839. .B Execution Module
  271840. A Python module that contains execution functions which directly
  271841. perform various system\-management tasks on a server. Salt ships with a
  271842. number of execution modules but users can also write their own
  271843. execution modules to perform specialized tasks. \fISee also\fP: the
  271844. list of execution modules\&.
  271845. .TP
  271846. .B External Pillar
  271847. A module that accepts arbitrary arguments and returns a dictionary.
  271848. The dictionary is automatically added to a pillar for a minion.
  271849. .TP
  271850. .B Event
  271851. A notice emitted onto an event bus. Events are often driven by requests
  271852. for actions to occur on a minion or master and the results of those
  271853. actions. \fISee also\fP: Salt Reactor\&.
  271854. .TP
  271855. .B File Server
  271856. A local or remote location for storing both Salt\-specific files such as
  271857. top files or SLS files as well as files that can be distributed to
  271858. minions, such as system configuration files. \fISee also\fP: Salt\(aqs
  271859. file server\&.
  271860. .TP
  271861. .B Grain
  271862. A key\-value pair which contains a fact about a system, such as its
  271863. hostname, network addresses. \fISee also\fP: targeting with grains\&.
  271864. .TP
  271865. .B Highdata
  271866. The data structure in a SLS file the represents a set of state
  271867. declarations. \fISee also\fP: state layers\&.
  271868. .TP
  271869. .B Highstate
  271870. The collection of states to be applied to a system. \fISee also\fP:
  271871. state layers\&.
  271872. .TP
  271873. .B Idempotent
  271874. An action that ensures the system is in a well\-known state regardless
  271875. of the system\(aqs state before the action is applied. A corollary to
  271876. this is that applying the action multiple times results in no changes
  271877. to the system. State module functions should be idempotent. Some
  271878. state module functions, such as \fBcmd.run\fP
  271879. are not idempotent by default but can be made idempotent with the
  271880. proper use of requisites such as unless
  271881. and onlyif\&. For more information, \fIsee\fP
  271882. \fI\%wikipedia\fP\&.
  271883. .TP
  271884. .B Jinja
  271885. A templating language which allows variables and simple logic to be
  271886. dynamically inserted into static text files when they are rendered.
  271887. \fISee also\fP: \fBSalt\(aqs Jinja documentation\fP\&.
  271888. .TP
  271889. .B Job
  271890. The complete set of tasks to be performed by the execution of a Salt
  271891. command are a single job. \fISee also\fP: \fBjobs runner\fP\&.
  271892. .TP
  271893. .B Job Cache
  271894. A storage location for job results, which may then be queried by a
  271895. salt runner or an external system. May be local to a salt master
  271896. or stored externally.
  271897. .TP
  271898. .B Job ID
  271899. A unique identifier to represent a given \fI\%job\fP\&. This is often
  271900. shortened to JID.
  271901. .TP
  271902. .B Low State
  271903. The collection of processed states after requisites and order are
  271904. evaluated. \fISee also\fP: state layers\&.
  271905. .TP
  271906. .B Master
  271907. A central Salt daemon from which commands can be issued to listening
  271908. minions.
  271909. .TP
  271910. .B Masterless
  271911. A minion which does not require a Salt master to operate. All
  271912. configuration is local. \fISee also\fP: \fBfile_client\fP\&.
  271913. .TP
  271914. .B Master Tops
  271915. A system for the master that allows hooks into external systems to
  271916. generate top file data.
  271917. .TP
  271918. .B Mine
  271919. A facility to collect arbitrary data from minions and store that data
  271920. on the master. This data is then available to all other minions.
  271921. (Sometimes referred to as Salt Mine.) \fISee also\fP: Salt Mine\&.
  271922. .TP
  271923. .B Minion
  271924. A server running a Salt minion daemon which can listen to commands from
  271925. a master and perform the requested tasks. Generally, minions are
  271926. servers which are to be controlled using Salt.
  271927. .TP
  271928. .B Minion ID
  271929. A globally unique identifier for a minion. \fISee also\fP:
  271930. \fBid\fP\&.
  271931. .TP
  271932. .B Multi\-Master
  271933. The ability for a minion to be actively connected to multiple Salt
  271934. masters at the same time in high\-availability environments.
  271935. .TP
  271936. .B Node Group
  271937. A pre\-defined group of minions declared in the master configuration
  271938. file. \fISee also\fP: targeting\&.
  271939. .TP
  271940. .B Outputter
  271941. A formatter for defining the characteristics of output data from a Salt
  271942. command. \fISee also\fP: list of outputters\&.
  271943. .TP
  271944. .B Peer Communication
  271945. The ability for minions to communicate directly with other minions
  271946. instead of brokering commands through the Salt master. \fISee also\fP:
  271947. peer communication\&.
  271948. .TP
  271949. .B Pillar
  271950. A simple key\-value store for user\-defined data to be made available to
  271951. a minion. Often used to store and distribute sensitive data to minions.
  271952. \fISee also\fP: Pillar, list of Pillar
  271953. modules\&.
  271954. .TP
  271955. .B Proxy Minion
  271956. A minion which can control devices that are unable to run a Salt minion
  271957. locally, such as routers and switches.
  271958. .TP
  271959. .B PyDSL
  271960. A Pythonic domain\-specific\-language used as a Salt renderer. PyDSL can
  271961. be used in cases where adding pure Python into SLS files is beneficial.
  271962. \fISee also\fP: \fBPyDSL\fP\&.
  271963. .TP
  271964. .B Reactor
  271965. An interface for listening to events and defining actions that Salt
  271966. should taken upon receipt of given events. \fISee also\fP: Reactor\&.
  271967. .TP
  271968. .B Render Pipe
  271969. Allows SLS files to be rendered by multiple renderers, with each
  271970. renderer receiving the output of the previous. \fISee also\fP:
  271971. composing renderers\&.
  271972. .TP
  271973. .B Renderer
  271974. Responsible for translating a given data serialization format such as
  271975. YAML or JSON into a Python data structure that can be consumed by Salt.
  271976. \fISee also\fP: list of renderers\&.
  271977. .TP
  271978. .B Returner
  271979. Allows for the results of a Salt command to be sent to a given
  271980. data\-store such as a database or log file for archival. \fISee also\fP:
  271981. list of returners\&.
  271982. .TP
  271983. .B Roster
  271984. A flat\-file list of target hosts. (Currently only used by salt\-ssh.)
  271985. .TP
  271986. .B Runner Module
  271987. A module containing a set of runner functions. \fISee also\fP: list
  271988. of runner modules\&.
  271989. .TP
  271990. .B Runner Function
  271991. A function which is called by the \fBsalt\-run\fP command and
  271992. executes on the master instead of on a minion. \fISee also\fP:
  271993. \fI\%Runner Module\fP\&.
  271994. .TP
  271995. .B Salt Cloud
  271996. A suite of tools used to create and deploy systems on many hosted cloud
  271997. providers. \fISee also\fP: salt\-cloud\&.
  271998. .TP
  271999. .B Salt SSH
  272000. A configuration management and remote orchestration system that does
  272001. not require that any software besides SSH be installed on systems to be
  272002. controlled.
  272003. .TP
  272004. .B Salt Thin
  272005. A subset of the normal Salt distribution that does not include any
  272006. transport routines. A Salt Thin bundle can be dropped onto a host and
  272007. used directly without any requirement that the host be connected to a
  272008. network. Used by Salt SSH. \fISee also\fP: \fBthin runner\fP\&.
  272009. .TP
  272010. .B Salt Virt
  272011. Used to manage the creation and deployment of virtual machines onto a
  272012. set of host machines. Often used to create and deploy private clouds.
  272013. \fISee also\fP: \fBvirt runner\fP\&.
  272014. .TP
  272015. .B SLS Module
  272016. Contains a set of \fI\%state declarations\fP\&.
  272017. .TP
  272018. .B State Compiler
  272019. Translates \fI\%highdata\fP into lowdata.
  272020. .TP
  272021. .B State Declaration
  272022. A data structure which contains a unique ID and describes one or more
  272023. states of a system such as ensuring that a package is installed or a
  272024. user is defined. \fISee also\fP: highstate structure\&.
  272025. .TP
  272026. .B State Function
  272027. A function contained inside a \fI\%state module\fP which
  272028. can manages the application of a particular state to a system. State
  272029. functions frequently call out to one or more \fI\%execution modules\fP to perform a given task.
  272030. .TP
  272031. .B State Module
  272032. A module which contains a set of state functions. \fISee also\fP:
  272033. list of state modules\&.
  272034. .TP
  272035. .B State Run
  272036. The application of a set of states on a set of systems.
  272037. .TP
  272038. .B Syndic
  272039. A forwarder which can relay messages between tiered masters. \fBSee
  272040. also\fP: Syndic\&.
  272041. .TP
  272042. .B Target
  272043. Minion(s) to which a given salt command will apply. \fISee also\fP:
  272044. targeting\&.
  272045. .TP
  272046. .B Top File
  272047. Determines which SLS files should be applied to various systems and
  272048. organizes those groups of systems into environments. \fISee also\fP:
  272049. top file, list of master top modules\&.
  272050. .TP
  272051. .B __virtual__
  272052. A function in a module that is called on module load to determine
  272053. whether or not the module should be available to a minion. This
  272054. function commonly contains logic to determine if all requirements
  272055. for a module are available, such as external libraries.
  272056. .TP
  272057. .B Worker
  272058. A master process which can send notices and receive replies from
  272059. minions. \fISee also\fP:
  272060. \fBworker_threads\fP\&.
  272061. .UNINDENT
  272062. .SH AUTHOR
  272063. Thomas S. Hatch <thatch45@gmail.com> and many others, please see the Authors file
  272064. .\" Generated by docutils manpage writer.
  272065. .